Programming
Fundamentals
Setting Up Development Environment
UnigineScript
High-Level Systems
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
Rendering-Related Classes

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
Geodetic pivot object works only in Sim version of Unigine Engine. In other editions it's equivalent to NodeDummy.
The geodetic pivot contains an ellipsoid with a pivot point.

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 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