Unigine::GeodeticPivot Class
Header: | #include <UnigineGeodetics.h> |
Inherits: | Node |
This class is used to create and modify a geodetic pivot object that is used to place world objects on their real world positions (latitude, longitude and altitude).
Notice
The geodetic pivot contains an ellipsoid with a pivot point.
Geodetic pivot object works only in Sim version of Unigine Engine. In other editions it's equivalent to NodeDummy.
GeodeticPivot Class
Members
static GeodeticPivotPtr create()
GeodeticPivot constructor. Creates a GeodeticPivot instance with the default settings:- The origin is set to dvec3(0.0,0.0,0.0).
- The size of the curving region is 2048000×2048000 km.
- The resolution of the region texture is 2048.
Ptr<GeodeticPivot> cast(const Ptr<Node> & node)
Casts a GeodeticPivot out of the Node instance.Arguments
- const Ptr<Node> & node - Pointer to Node.
Return value
Pointer to GeodeticPivot.void setEllipsoid(const Ptr<Ellipsoid> & ellipsoid)
Sets an Ellipsoid for the GeodeticPivot object.Arguments
- const Ptr<Ellipsoid> & ellipsoid - An Ellipsoid.
const Ptr<Ellipsoid> & getEllipsoid()
Returns the Ellipsoid set for the GeodeticPivot object.void setOrigin(const Math::dvec3 & origin)
Sets a new position (latitude, longitude and altitude) on the ellipsoid.Source code (C++)
// the GeodeticPivot will use WGS84 reference ellipsoid by default
GeodeticPivotPtr pivot = GeodeticPivot::create();
// update the origin
dvec3 new_york_origin = dvec3(40.71427,-74.00597,57.0);
pivot->setOrigin(new_york_origin);
ObjectMeshStaticPtr flat_new_york_ground = ObjectMeshStatic::create("flat_new_york_ground.mesh");
pivot->addChild(flat_new_york_ground); // the mesh will be bent once ObjectMeshStatic become a child of GeodeticPivot
Arguments
- const Math::dvec3 & origin - Origin vector in ellipsoid coordinates.
Math::dvec3 getOrigin()
Returns the position (latitude, longitude and altitude) on the ellipsoid.Return value
Origin vector in ellipsoid coordinates.void setOriginBasis(int basis)
Sets a new origin basis for the GeodeticPivot object:- If ORIGIN_BASIS_LOCAL is set, the binding to geo-coordinates is disabled. GeodeticPivot can be placed everywhere.
- If ORIGIN_BASIS_ENU is set, GeodeticPivot is placed to the world ECF position with ENU (East - North - Up) orientation according to the given latitude / longitude / altitude. The GeodeticPivot position is blocked.
Arguments
- int basis - One of the ORIGIN_BASIS_* variables.
int getOriginBasis()
Returns the origin basis set for the GeodeticPivot object:- If ORIGIN_BASIS_LOCAL is set, the binding to geo-coordinates is disabled. GeodeticPivot can be placed everywhere.
- If ORIGIN_BASIS_ENU is set, GeodeticPivot is placed to the world ECF position with ENU (East - North - Up) orientation according to the given latitude / longitude / altitude. The GeodeticPivot position is blocked.
Return value
One of the ORIGIN_BASIS_* variables.int type()
Returns the type of the object.Return value
GeodeticPivot type identifier.int ORIGIN_BASIS_ENU
Description
The origin basis East - North - Up (Earth-Centric) is used for the GeodeticPivot object. It is used to place the pivot to the world ECF position with ENU orientation according to latitude / longitude / altitude. The position of the GeodeticPivot object is blocked when this basis is used.int ORIGIN_BASIS_LOCAL
Description
The local (X - Y - Z) origin basis is used for the GeodeticPivot object. The pivot doesn't bind to geo-coordinates and can be placed anywhere.int STATUS_CURVED
Description
The status of the child nodes of the GeodeticPivot object is Curved (nodes' geometry is "curved" to simulate the contorted Earth's surface).int STATUS_FLAT
Description
The status of the child nodes of the GeodeticPivot object is Flat (nodes' geometry isn't "curved" to simulate the contorted Earth's surface).int STATUS_NEED_UPDATE
Description
The status of the child nodes of the GeodeticPivot object is Require Update.Last update: 2017-07-03
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)