diff --git a/include/osgTerrain/Locator b/include/osgTerrain/Locator index 13a95eb2f..afccc208b 100644 --- a/include/osgTerrain/Locator +++ b/include/osgTerrain/Locator @@ -60,7 +60,7 @@ class OSGTERRAIN_EXPORT EllipsoidLocator : public osgTerrain::Locator public: - EllipsoidLocator(double longitude, double latitude, double deltaLongitude, double deltaLatitude, double height=0.0, double heightScale = 1.0f); + EllipsoidLocator(double longitude, double latitude, double deltaLongitude, double deltaLatitude, double height=0.0, double heightScale = 1.0f, double radiusEquator = osg::WGS_84_RADIUS_EQUATOR, double radiusPolar = osg::WGS_84_RADIUS_POLAR); void setExtents(double longitude, double latitude, double deltaLongitude, double deltaLatitude, double height=0.0, double heightScale = 1.0f); @@ -72,6 +72,7 @@ class OSGTERRAIN_EXPORT EllipsoidLocator : public osgTerrain::Locator double getHeight() const { return _height; } + void setEllipsoidModel(osg::EllipsoidModel* em) { _em=em; } osg::EllipsoidModel* getEllipsoidModel() { return _em.get(); } const osg::EllipsoidModel* getEllipsoidModel() const { return _em.get(); } diff --git a/src/osgTerrain/Locator.cpp b/src/osgTerrain/Locator.cpp index 15cc4c4f5..ed1d81524 100644 --- a/src/osgTerrain/Locator.cpp +++ b/src/osgTerrain/Locator.cpp @@ -80,13 +80,12 @@ bool Locator::computeLocalBounds(Locator& source, osg::Vec3d& bottomLeft, osg::V // // EllipsoidLocator // -EllipsoidLocator::EllipsoidLocator(double longitude, double latitude, double deltaLongitude, double deltaLatitude, double height, double heightScale) +EllipsoidLocator::EllipsoidLocator(double longitude, double latitude, double deltaLongitude, double deltaLatitude, double height, double heightScale, double radiusEquator, double radiusPolar) { setExtents(longitude, latitude, deltaLongitude, deltaLatitude, height, heightScale); - _em = new osg::EllipsoidModel; + _em = new osg::EllipsoidModel(radiusEquator, radiusPolar); } - void EllipsoidLocator::setExtents(double longitude, double latitude, double deltaLongitude, double deltaLatitude, double height, double heightScale) { _longitude = longitude;