Loading...
Searching...
No Matches
ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates Class Reference

Convert spherical coordinates for planetary surfaces. More...

#include <commmon/common.hh>

Public Types

enum  CoordinateType { SPHERICAL = 1 , ECEF = 2 , GLOBAL = 3 , LOCAL = 4 }
 Unique identifiers for coordinate types. More...
 
enum  SurfaceType { EARTH_WGS84 = 1 }
 Unique identifiers for planetary surface models. More...
 

Public Member Functions

 SphericalCoordinates ()
 Constructor.
 
 SphericalCoordinates (const SphericalCoordinates &_sc)
 Copy constructor.
 
 SphericalCoordinates (const SurfaceType _type)
 Constructor with surface type input.
 
 SphericalCoordinates (const SurfaceType _type, const ignition::math::Angle &_latitude, const ignition::math::Angle &_longitude, const double _elevation, const ignition::math::Angle &_heading)
 Constructor with surface type, angle, and elevation inputs.
 
 ~SphericalCoordinates ()
 Destructor.
 
double ElevationReference () const
 Get reference elevation in meters.
 
ignition::math::Vector3d GlobalFromLocalVelocity (const ignition::math::Vector3d &_xyz) const
 Convert a Cartesian velocity vector in the local frame to a global Cartesian frame with components East, North, Up.
 
ignition::math::Angle HeadingOffset () const
 Get heading offset for the reference frame, expressed as angle from East to x-axis, or equivalently from North to y-axis.
 
ignition::math::Angle LatitudeReference () const
 Get reference geodetic latitude.
 
ignition::math::Vector3d LocalFromGlobalVelocity (const ignition::math::Vector3d &_xyz) const
 Convert a Cartesian velocity vector with components East, North, Up to a local cartesian frame vector XYZ.
 
ignition::math::Vector3d LocalFromSphericalPosition (const ignition::math::Vector3d &_xyz) const
 Convert a geodetic position vector to Cartesian coordinates.
 
ignition::math::Angle LongitudeReference () const
 Get reference longitude.
 
bool operator!= (const SphericalCoordinates &_sc) const
 Inequality.
 
SphericalCoordinatesoperator= (const SphericalCoordinates &_sc)
 Assignment operator.
 
bool operator== (const SphericalCoordinates &_sc) const
 Equality operator, result = this == _sc.
 
ignition::math::Vector3d PositionTransform (const ignition::math::Vector3d &_pos, const CoordinateType &_in, const CoordinateType &_out) const
 Convert between positions in SPHERICAL/ECEF/LOCAL/GLOBAL frame.
 
void SetElevationReference (const double _elevation)
 Set reference elevation above sea level in meters.
 
void SetHeadingOffset (const ignition::math::Angle &_angle)
 Set heading angle offset for the frame.
 
void SetLatitudeReference (const ignition::math::Angle &_angle)
 Set reference geodetic latitude.
 
void SetLongitudeReference (const ignition::math::Angle &_angle)
 Set reference longitude.
 
void SetSurface (const SurfaceType &_type)
 Set SurfaceType for planetary surface model.
 
ignition::math::Vector3d SphericalFromLocalPosition (const ignition::math::Vector3d &_xyz) const
 Convert a Cartesian position vector to geodetic coordinates.
 
SurfaceType Surface () const
 Get SurfaceType currently in use.
 
void UpdateTransformationMatrix ()
 Update coordinate transformation matrix with reference location.
 
ignition::math::Vector3d VelocityTransform (const ignition::math::Vector3d &_vel, const CoordinateType &_in, const CoordinateType &_out) const
 Convert between velocity in SPHERICAL/ECEF/LOCAL/GLOBAL frame.
 

Static Public Member Functions

static SurfaceType Convert (const std::string &_str)
 Convert a string to a SurfaceType.
 
static double Distance (const ignition::math::Angle &_latA, const ignition::math::Angle &_lonA, const ignition::math::Angle &_latB, const ignition::math::Angle &_lonB)
 Get the distance between two points expressed in geographic latitude and longitude.
 

Detailed Description

Convert spherical coordinates for planetary surfaces.

Member Enumeration Documentation

◆ CoordinateType

Unique identifiers for coordinate types.

Enumerator
SPHERICAL 

Latitude, Longitude and Altitude by SurfaceType.

ECEF 

Earth centered, earth fixed Cartesian.

GLOBAL 

Local tangent plane (East, North, Up)

LOCAL 

Heading-adjusted tangent plane (X, Y, Z)

◆ SurfaceType

Unique identifiers for planetary surface models.

Enumerator
EARTH_WGS84 

Model of reference ellipsoid for earth, based on WGS 84 standard.

see wikipedia: World_Geodetic_System

Constructor & Destructor Documentation

◆ SphericalCoordinates() [1/4]

ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::SphericalCoordinates ( )

Constructor.

◆ SphericalCoordinates() [2/4]

ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::SphericalCoordinates ( const SurfaceType _type)
explicit

Constructor with surface type input.

Parameters
[in]_typeSurfaceType specification.

◆ SphericalCoordinates() [3/4]

ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::SphericalCoordinates ( const SurfaceType _type,
const ignition::math::Angle & _latitude,
const ignition::math::Angle & _longitude,
const double _elevation,
const ignition::math::Angle & _heading )

Constructor with surface type, angle, and elevation inputs.

Parameters
[in]_typeSurfaceType specification.
[in]_latitudeReference latitude.
[in]_longitudeReference longitude.
[in]_elevationReference elevation.
[in]_headingHeading offset.

◆ SphericalCoordinates() [4/4]

ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::SphericalCoordinates ( const SphericalCoordinates & _sc)

Copy constructor.

Parameters
[in]_scSpherical coordinates to copy.

◆ ~SphericalCoordinates()

ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::~SphericalCoordinates ( )

Destructor.

Member Function Documentation

◆ Convert()

static SurfaceType ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::Convert ( const std::string & _str)
static

Convert a string to a SurfaceType.

Allowed values: ["EARTH_WGS84"].

Parameters
[in]_strString to convert.
Returns
Conversion to SurfaceType.

◆ Distance()

static double ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::Distance ( const ignition::math::Angle & _latA,
const ignition::math::Angle & _lonA,
const ignition::math::Angle & _latB,
const ignition::math::Angle & _lonB )
static

Get the distance between two points expressed in geographic latitude and longitude.

It assumes that both points are at sea level. Example: _latA = 38.0016667 and _lonA = -123.0016667) represents the point with latitude 38d 0'6.00"N and longitude 123d 0'6.00"W.

Parameters
[in]_latALatitude of point A.
[in]_longALongitude of point A.
[in]_latBLatitude of point B.
[in]_longBLongitude of point B.
Returns
Distance in meters.

◆ ElevationReference()

double ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::ElevationReference ( ) const

Get reference elevation in meters.

Returns
Reference elevation.

◆ GlobalFromLocalVelocity()

ignition::math::Vector3d ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::GlobalFromLocalVelocity ( const ignition::math::Vector3d & _xyz) const

Convert a Cartesian velocity vector in the local frame to a global Cartesian frame with components East, North, Up.

Parameters
[in]_xyzCartesian velocity vector in the world frame.
Returns
Rotated vector with components (x,y,z): (East, North, Up).

◆ HeadingOffset()

ignition::math::Angle ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::HeadingOffset ( ) const

Get heading offset for the reference frame, expressed as angle from East to x-axis, or equivalently from North to y-axis.

Returns
Heading offset of reference frame.

◆ LatitudeReference()

ignition::math::Angle ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::LatitudeReference ( ) const

Get reference geodetic latitude.

Returns
Reference geodetic latitude.

◆ LocalFromGlobalVelocity()

ignition::math::Vector3d ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::LocalFromGlobalVelocity ( const ignition::math::Vector3d & _xyz) const

Convert a Cartesian velocity vector with components East, North, Up to a local cartesian frame vector XYZ.

Parameters
[in]Vectorwith components (x,y,z): (East, North, Up).
Returns
Cartesian vector in the world frame.

◆ LocalFromSphericalPosition()

ignition::math::Vector3d ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::LocalFromSphericalPosition ( const ignition::math::Vector3d & _xyz) const

Convert a geodetic position vector to Cartesian coordinates.

Parameters
[in]_xyzGeodetic position in the planetary frame of reference
Returns
Cartesian position vector in the world frame

◆ LongitudeReference()

ignition::math::Angle ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::LongitudeReference ( ) const

Get reference longitude.

Returns
Reference longitude.

◆ operator!=()

bool ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::operator!= ( const SphericalCoordinates & _sc) const

Inequality.

Parameters
[in]_scSpherical coordinates to check for inequality
Returns
true if this != _sc

◆ operator=()

SphericalCoordinates & ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::operator= ( const SphericalCoordinates & _sc)

Assignment operator.

Parameters
[in]_scThe spherical coordinates to copy from.
Returns
this

◆ operator==()

bool ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::operator== ( const SphericalCoordinates & _sc) const

Equality operator, result = this == _sc.

Parameters
[in]_scSpherical coordinates to check for equality
Returns
true if this == _sc

◆ PositionTransform()

ignition::math::Vector3d ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::PositionTransform ( const ignition::math::Vector3d & _pos,
const CoordinateType & _in,
const CoordinateType & _out ) const

Convert between positions in SPHERICAL/ECEF/LOCAL/GLOBAL frame.

Parameters
[in]_posPosition vector in frame defined by parameter _in
[in]_inCoordinateType for input
[in]_outCoordinateType for output
Returns
Transformed coordinate using cached orgin

◆ SetElevationReference()

void ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::SetElevationReference ( const double _elevation)

Set reference elevation above sea level in meters.

Parameters
[in]_elevationReference elevation.

◆ SetHeadingOffset()

void ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::SetHeadingOffset ( const ignition::math::Angle & _angle)

Set heading angle offset for the frame.

Parameters
[in]_angleHeading offset for the frame.

◆ SetLatitudeReference()

void ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::SetLatitudeReference ( const ignition::math::Angle & _angle)

Set reference geodetic latitude.

Parameters
[in]_angleReference geodetic latitude.

◆ SetLongitudeReference()

void ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::SetLongitudeReference ( const ignition::math::Angle & _angle)

Set reference longitude.

Parameters
[in]_angleReference longitude.

◆ SetSurface()

void ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::SetSurface ( const SurfaceType & _type)

Set SurfaceType for planetary surface model.

Parameters
[in]_typeSurfaceType value.

◆ SphericalFromLocalPosition()

ignition::math::Vector3d ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::SphericalFromLocalPosition ( const ignition::math::Vector3d & _xyz) const

Convert a Cartesian position vector to geodetic coordinates.

Parameters
[in]_xyzCartesian position vector in the world frame.
Returns
Cooordinates: geodetic latitude (deg), longitude (deg), altitude above sea level (m).

◆ Surface()

SurfaceType ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::Surface ( ) const

Get SurfaceType currently in use.

Returns
Current SurfaceType value.

◆ UpdateTransformationMatrix()

void ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::UpdateTransformationMatrix ( )

Update coordinate transformation matrix with reference location.

◆ VelocityTransform()

ignition::math::Vector3d ignition::math::IGNITION_MATH_VERSION_NAMESPACE::SphericalCoordinates::VelocityTransform ( const ignition::math::Vector3d & _vel,
const CoordinateType & _in,
const CoordinateType & _out ) const

Convert between velocity in SPHERICAL/ECEF/LOCAL/GLOBAL frame.

Parameters
[in]_velVelocity vector in frame defined by parameter _in
[in]_inCoordinateType for input
[in]_outCoordinateType for output
Returns
Transformed velocity vector

The documentation for this class was generated from the following file: