From Maria Ten, "The constructor method of the EllipsoidLocator of osgTerrain assumes
that the terrain is always the Earth planet. I changed the constructor method to accept the Equator radius and the Polar radius like parameters. By default, it assumes the Earth radius for the EllipsoidLocator. I added a setEllipsoidModel method, too. Now, we are developing some libraries for a GIS applicacion, and our libraries can visualize terrains of planets like Mars. I think that is a interesting change."
This commit is contained in:
parent
c913f00d21
commit
b92ebca928
@ -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(); }
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user