Added support for compute the extents on local NDC coordiantes of the

elevation and colour layers
This commit is contained in:
Robert Osfield
2007-03-28 16:28:20 +00:00
parent b7967b7007
commit cb811aa7cd
4 changed files with 123 additions and 11 deletions

View File

@@ -34,7 +34,18 @@ class OSGTERRAIN_EXPORT Locator : public osg::Object
META_Object(osgTerrain, Locator);
virtual bool convertLocalToModel(const osg::Vec3d& /*local*/, osg::Vec3d& /*world*/) const { return false; }
virtual bool convertModelToWorld(const osg::Vec3d& /*world*/, osg::Vec3d& /*local*/) const { return false; }
virtual bool convertModelToLocal(const osg::Vec3d& /*world*/, osg::Vec3d& /*local*/) const { return false; }
static bool convertLocalCoordBetween(const Locator& source, const osg::Vec3d& sourceNDC,
const Locator& destination, osg::Vec3d& destinationNDC)
{
osg::Vec3d model;
if (!source.convertLocalToModel(sourceNDC, model)) return false;
if (!destination.convertModelToLocal(model, destinationNDC)) return false;
return true;
}
bool computeLocalBounds(Locator& source, osg::Vec3d& bottomLeft, osg::Vec3d& topRight);
protected:
@@ -63,7 +74,7 @@ public:
const osg::EllipsoidModel* getEllipsoidModel() const { return _em.get(); }
bool convertLocalToModel(const osg::Vec3d& local, osg::Vec3d& world) const;
bool convertModelToWorld(const osg::Vec3d& world, osg::Vec3d& local) const;
bool convertModelToLocal(const osg::Vec3d& world, osg::Vec3d& local) const;
protected: