Unigine::Plugins::IG::Converter Class

Warning
You should upgrade to Sim SDK edition to use it.

This utility class is used to perform conversions between different coordinate systems for the IG (e.g. ENU <-> NED, Euler rotation <-> quaternion, etc.).

Notice

COORDINATE_SYSTEM#

ИмяОписание
COORDINATE_SYSTEM::ENU = 0ENU (East-North-Up) coordinate system. X - right, Y - front, Z - up, default in Unigine. Rotation order: Z -> X -> Y (Yaw-Roll-Pitch)
COORDINATE_SYSTEM::NED = 1NED (North-East-Down) coordinate system. X - front, Y - right, Z - down, default in Unigine. Rotation order: Z -> Y -> X (Yaw-Pitch-Roll)

Math::dvec3worldToGeodetic ( const Math::dvec3& world_pos ) #

Returns geodetic coordinates of a point with the specified world coordinates.

Arguments

• const Math::dvec3& world_pos - World coordinates of the point to be converted (X, Y, Z).

Return value

Geodetic coordinates of the point (lat, lon, alt).

Math::dvec3geodeticToWorld ( const Math::dvec3& geo_pos ) const#

Returns world coordinates of a point with the specified geodetic coordinates.

Arguments

• const Math::dvec3& geo_pos - Geodetic coordinates of the point to be converted (lat, lon, alt).

Return value

World coordinates of the point (X, Y, Z).

Math::dvec3ENUtoNED ( const Math::dvec3& enu_pos ) const#

Converts the coordinates of a point specified in the ENU (East-North-Up) system to NED (North-East-Down).

Arguments

• const Math::dvec3& enu_pos - Coordinates of a point in the ENU (East-North-Up) system.

Return value

Coordinates of the point in the NED (North-East-Down) system.

Math::dvec3NEDtoENU ( const Math::dvec3& ned_pos ) const#

Converts the coordinates of a point specified in the NED (North-East-Down) system to ENU (East-North-Up).

Arguments

• const Math::dvec3& ned_pos - Coordinates of a point in the NED (North-East-Down) system.

Return value

Coordinates of the point in the ENU (East-North-Up) system.

Math::dvec3IGtoENU ( const Math::dvec3& ig_pos ) const#

Converts the coordinates of a point specified in the IG system to ENU (East-North-Up).

Arguments

• const Math::dvec3& ig_pos - Coordinates of the point in the IG system.

Return value

Coordinates of a point in the ENU (East-North-Up) system.

Math::dvec3ENUtoIG ( const Math::dvec3& enu_pos ) const#

Converts the coordinates of a point specified in the ENU (East-North-Up) system to IG.

Arguments

• const Math::dvec3& enu_pos - Coordinates of a point in the ENU (East-North-Up) system.

Return value

Coordinates of the point in the IG system.

Math::vec3ENUtoNED ( const Math::vec3& enu_pos ) const#

Converts the coordinates of a point specified in the ENU (East-North-Up) system to NED (North-East-Down).

Arguments

• const Math::vec3& enu_pos - Coordinates of a point in the ENU (East-North-Up) system.

Return value

Coordinates of the point in the NED (North-East-Down) system.

Math::vec3NEDtoENU ( const Math::vec3& ned_pos ) const#

Converts the coordinates of a point specified in the NED (North-East-Down) system to ENU (East-North-Up).

Arguments

• const Math::vec3& ned_pos - Coordinates of the point in the NED (North-East-Down) system.

Return value

Coordinates of a point in the ENU (East-North-Up) system.

Math::vec3IGtoENU ( const Math::vec3& ig_pos ) const#

Converts the coordinates of a point specified in the IG system to ENU (East-North-Up).

Arguments

• const Math::vec3& ig_pos - Coordinates of the point in the IG system.

Return value

Coordinates of a point in the ENU (East-North-Up) system.

Math::vec3ENUtoIG ( const Math::vec3& enu_pos ) const#

Converts the coordinates of a point specified in the IG system to ENU (East-North-Up).

Arguments

• const Math::vec3& enu_pos - Coordinates of a point in the ENU (East-North-Up) system.

Return value

Coordinates of the point in the IG system.

Math::quatgetZeroRotation ( const Math::dvec3& geo_pos ) const#

Returns the zero-rotation for the specified target geodetic position.
Notice

Unigine uses ENU orientation!

• final_rotation = zero_rotation * entity_local_rotation
• entity_local_rotation = final_rotation * inverse(zero_rotation)

Arguments

• const Math::dvec3& geo_pos - Target geodetic position coordinates (lat, lon, alt).

Return value

Zero-rotation quaternion for the specified target geodetic position.

Math::vec3&getZeroUpDirection ( const Math::dvec3& geo_pos ) const#

Returns the zero "up"-vector coordinates for the specified target geodetic position.

Arguments

• const Math::dvec3& geo_pos - Target geodetic position coordinates (lat, lon, alt).

Return value

Zero "up"-vector coordinates for the specified target geodetic position.

Math::dmat4getZeroBasis ( const Math::dvec3& geo_pos ) const#

Returns the whole zero basis for the specified target geodetic position.

Arguments

• const Math::dvec3& geo_pos - Target geodetic position coordinates (lat, lon, alt).

Return value

Zero basis for the specified target geodetic position.

Math::quateulerENUToRotation ( const Math::vec3& euler ) const#

Converts the specified Euler rotation vector in ENU (East-North-Up) coordinates to a rotation quaternion.
Notice

Unigine uses ENU orientation!

Axis order: Yaw -> Pitch -> Roll (ENU: Z -> X -> Y, NED: Z -> Y -> X)

Arguments

• const Math::vec3& euler - Vector representing rotation (roll, pitch, yaw) in ENU (East-North-Up) coordinates.

Return value

Rotation quaternion.

Math::quateulerNEDToRotation ( const Math::vec3& euler ) const#

Converts the specified Euler rotation vector in NED (North-East-Down) coordinates to a rotation quaternion.
Notice

Unigine uses ENU orientation!

Axis order: Yaw -> Pitch -> Roll (ENU: Z -> X -> Y, NED: Z -> Y -> X)

Arguments

• const Math::vec3& euler - Vector representing Euler rotation (roll, pitch, yaw) in NED (North-East-Down) coordinates.

Return value

Rotation quaternion.

Math::quateulerIGToRotation ( const Math::vec3& euler ) const#

Converts the specified Euler rotation vector in IG coordinates to a rotation quaternion.

Arguments

• const Math::vec3& euler - Vector representing Euler rotation (roll, pitch, yaw) in IG coordinates.

Return value

Rotation quaternion.

Math::vec3rotationToEulerENU ( const Math::quat& rotation ) const#

Converts the specified rotation quaternion to Euler rotation vector in ENU (East-North-Up) coordinates.
Notice

Unigine uses ENU orientation!

Axis order: Yaw -> Pitch -> Roll (ENU: Z -> X -> Y, NED: Z -> Y -> X)

Arguments

• const Math::quat& rotation - Rotation quaternion.

Return value

Vector representing rotation (roll, pitch, yaw) in ENU (East-North-Up) coordinates.

Math::vec3rotationToEulerNED ( const Math::quat& rotation ) const#

Converts the specified rotation quaternion to Euler rotation vector in NED (North-East-Down) coordinates.
Notice

Unigine uses ENU orientation!

Axis order: Yaw -> Pitch -> Roll (ENU: Z -> X -> Y, NED: Z -> Y -> X)

Arguments

• const Math::quat& rotation - Rotation quaternion.

Return value

Vector representing Euler rotation (roll, pitch, yaw) in NED (North-East-Down) coordinates.

Math::vec3rotationToEulerIG ( const Math::quat& rotation ) const#

Converts the specified rotation quaternion to Euler rotation vector in IG coordinates.

Arguments

• const Math::quat& rotation - Rotation quaternion.

Return value

Vector representing Euler rotation (roll, pitch, yaw) in IG coordinates.

voidsetCoordinateSystem ( Converter::COORDINATE_SYSTEM coord_system ) #

Sets the specified coordinate system to be used.

Converter::COORDINATE_SYSTEMgetCoordinateSystem ( ) const#

Returns the currently used coordinate system.

Return value

Coordinate system currently used.
Last update: 15.03.2023