VR-Engage  2.2
Loading...
Searching...
No Matches
makVre::DtCoordinateConvert Class Reference

Detailed Description

The DtCoordinateConvert class provides methods for converting positions, vectors, and orientations between different coordinate systems, including geocentric, topographic, UTM, and flat-earth coordinates. It also supports axis remapping and flipping to handle different coordinate system conventions.

#include <coordConverter.h>

Classes

struct  DtCoordConvertInitData
 

Public Types

enum  AxisType { X , Y , Z }
 
enum  CoordinateType { FLATEARTH , TOPOGRAPHIC , UTM , GEOCENTRIC }
 

Public Member Functions

 DtCoordinateConvert ()
 
virtual ~DtCoordinateConvert ()
 
virtual void init (DtCoordConvertInitData data)
 
virtual void init (DtInitTable &init)
 
virtual DtVector toGeocPos (const DtVector &pos) const
 
virtual DtVector toGeocVec (const DtVector &vec, const DtVector &localPos) const
 
virtual DtTaitBryan toGeocOri (float heading, float pitch, float roll, const DtVector &localPos) const
 
virtual DtTaitBryan toGeocOri (const DtTaitBryan &localOri, const DtVector &localPos) const
 
virtual DtVector fromGeocPos (const DtVector &pos) const
 
virtual DtVector fromGeocVec (const DtVector &geocVec, const DtVector &geocPos) const
 
virtual DtTaitBryan fromGeocOri (const DtTaitBryan &geocOri, const DtVector &geocLoc) const
 
const DtGeodeticCoord & origin () const
 

Static Public Member Functions

static double calcHeading (DtVector geocLoc, DtTaitBryan geocOri)
 
static double calcPitch (DtVector geocLoc, DtTaitBryan geocOri)
 
static double calcRoll (DtVector geocLoc, DtTaitBryan geocOri)
 
static void calcHeadingPitchRoll (DtVector geocLoc, DtTaitBryan geocOri, double &heading, double &pitch, double &roll)
 
static DtTaitBryan calcTaitBryan (double heading, double pitch, double roll, DtVector geocLoc)
 

Protected Member Functions

DtVector handleRemapping (const DtVector &vec, AxisType x, AxisType y, AxisType z) const
 
DtVector handleFlipping (const DtVector &vec, bool x, bool y, bool z) const
 
double convertToDouble (const std::string &str) const
 

Protected Attributes

CoordinateType myCoordinateType
 
DtCoordTransform myTopoTransform
 
DtCoordTransform myInverseTopoTransform
 
DtUtmReferencePoint myUtmReference
 
AxisType myRemapX
 
AxisType myRemapY
 
AxisType myRemapZ
 
bool myFlipX
 
bool myFlipY
 
bool myFlipZ
 
DtVector myOffset
 
DtGeodeticCoord myOrigin
 

Member Enumeration Documentation

◆ AxisType

Enumeration of axis types.

Enumerator

X axis.

Y axis.

Z axis.

◆ CoordinateType

Enumeration of coordinate system types.

Enumerator
FLATEARTH 

Flat earth coordinates (local tangent plane approximation)

TOPOGRAPHIC 

Topographic coordinates (local NED coordinate system)

UTM 

Universal Transverse Mercator coordinates.

GEOCENTRIC 

Earth-centered Earth-fixed coordinates.

Constructor & Destructor Documentation

◆ DtCoordinateConvert()

makVre::DtCoordinateConvert::DtCoordinateConvert ( )

Default constructor.

Creates a coordinate converter with default settings (GEOCENTRIC coordinates)

◆ ~DtCoordinateConvert()

virtual makVre::DtCoordinateConvert::~DtCoordinateConvert ( )
virtual

Virtual destructor.

Member Function Documentation

◆ init() [1/2]

virtual void makVre::DtCoordinateConvert::init ( DtCoordConvertInitData data)
virtual

Initialize the converter with explicit settings.

Parameters
dataThe initialization data structure containing converter settings

Referenced by init().

◆ init() [2/2]

virtual void makVre::DtCoordinateConvert::init ( DtInitTable & init)
virtual

Initialize the converter from a configuration table.

Parameters
initA Lua configuration table containing converter settings

References init().

◆ toGeocPos()

virtual DtVector makVre::DtCoordinateConvert::toGeocPos ( const DtVector & pos) const
virtual

Convert a position from local to geocentric coordinates.

Parameters
posThe position in local coordinates
Returns
The position in geocentric coordinates

◆ toGeocVec()

virtual DtVector makVre::DtCoordinateConvert::toGeocVec ( const DtVector & vec,
const DtVector & localPos ) const
virtual

Convert a vector from local to geocentric coordinates.

Parameters
vecThe vector in local coordinates
localPosThe local position where the vector is applied
Returns
The vector in geocentric coordinates

◆ toGeocOri() [1/2]

virtual DtTaitBryan makVre::DtCoordinateConvert::toGeocOri ( float heading,
float pitch,
float roll,
const DtVector & localPos ) const
virtual

Convert an orientation from local heading/pitch/roll to geocentric orientation.

Parameters
headingThe heading (yaw) angle in radians
pitchThe pitch angle in radians
rollThe roll angle in radians
localPosThe local position associated with the orientation
Returns
The orientation in geocentric coordinates as a Tait-Bryan representation

◆ toGeocOri() [2/2]

virtual DtTaitBryan makVre::DtCoordinateConvert::toGeocOri ( const DtTaitBryan & localOri,
const DtVector & localPos ) const
virtual

Convert an orientation from local to geocentric coordinates.

Parameters
localOriThe orientation in local coordinates
localPosThe local position associated with the orientation
Returns
The orientation in geocentric coordinates

◆ fromGeocPos()

virtual DtVector makVre::DtCoordinateConvert::fromGeocPos ( const DtVector & pos) const
virtual

Convert a position from geocentric to local coordinates.

Parameters
posThe position in geocentric coordinates
Returns
The position in local coordinates

◆ fromGeocVec()

virtual DtVector makVre::DtCoordinateConvert::fromGeocVec ( const DtVector & geocVec,
const DtVector & geocPos ) const
virtual

Convert a vector from geocentric to local coordinates.

Parameters
geocVecThe vector in geocentric coordinates
geocPosThe geocentric position where the vector is applied
Returns
The vector in local coordinates

◆ fromGeocOri()

virtual DtTaitBryan makVre::DtCoordinateConvert::fromGeocOri ( const DtTaitBryan & geocOri,
const DtVector & geocLoc ) const
virtual

Convert an orientation from geocentric to local coordinates.

Parameters
geocOriThe orientation in geocentric coordinates
geocLocThe geocentric position associated with the orientation
Returns
The orientation in local coordinates

◆ calcHeading()

static double makVre::DtCoordinateConvert::calcHeading ( DtVector geocLoc,
DtTaitBryan geocOri )
static

Calculate heading from geocentric location and orientation.

Parameters
geocLocThe geocentric location
geocOriThe geocentric orientation
Returns
The heading angle in radians

◆ calcPitch()

static double makVre::DtCoordinateConvert::calcPitch ( DtVector geocLoc,
DtTaitBryan geocOri )
static

Calculate pitch from geocentric location and orientation.

Parameters
geocLocThe geocentric location
geocOriThe geocentric orientation
Returns
The pitch angle in radians

◆ calcRoll()

static double makVre::DtCoordinateConvert::calcRoll ( DtVector geocLoc,
DtTaitBryan geocOri )
static

Calculate roll from geocentric location and orientation.

Parameters
geocLocThe geocentric location
geocOriThe geocentric orientation
Returns
The roll angle in radians

◆ calcHeadingPitchRoll()

static void makVre::DtCoordinateConvert::calcHeadingPitchRoll ( DtVector geocLoc,
DtTaitBryan geocOri,
double & heading,
double & pitch,
double & roll )
static

Calculate heading, pitch, and roll from geocentric location and orientation.

Parameters
geocLocThe geocentric location
geocOriThe geocentric orientation
[out]headingThe calculated heading angle in radians
[out]pitchThe calculated pitch angle in radians
[out]rollThe calculated roll angle in radians

◆ calcTaitBryan()

static DtTaitBryan makVre::DtCoordinateConvert::calcTaitBryan ( double heading,
double pitch,
double roll,
DtVector geocLoc )
static

Calculate Tait-Bryan orientation from heading, pitch, roll and geocentric location.

Parameters
headingThe heading angle in radians
pitchThe pitch angle in radians
rollThe roll angle in radians
geocLocThe geocentric location
Returns
The Tait-Bryan orientation in geocentric coordinates

◆ origin()

const DtGeodeticCoord & makVre::DtCoordinateConvert::origin ( ) const

returns the geodetic coordinate origin

Returns
the geodetic coordinate. Can be zero if not using geocentric coordinate

◆ handleRemapping()

DtVector makVre::DtCoordinateConvert::handleRemapping ( const DtVector & vec,
AxisType x,
AxisType y,
AxisType z ) const
protected

Handle axis remapping for vector conversion.

Parameters
vecThe input vector
xThe axis to use for X
yThe axis to use for Y
zThe axis to use for Z
Returns
The remapped vector

◆ handleFlipping()

DtVector makVre::DtCoordinateConvert::handleFlipping ( const DtVector & vec,
bool x,
bool y,
bool z ) const
protected

Handle axis flipping for vector conversion.

Parameters
vecThe input vector
xWhether to flip the X axis
yWhether to flip the Y axis
zWhether to flip the Z axis
Returns
The flipped vector

◆ convertToDouble()

double makVre::DtCoordinateConvert::convertToDouble ( const std::string & str) const
protected

Convert a string to a double.

Parameters
strThe string to convert
Returns
The double value

Member Data Documentation

◆ myCoordinateType

CoordinateType makVre::DtCoordinateConvert::myCoordinateType
protected

The current coordinate system type.

◆ myTopoTransform

DtCoordTransform makVre::DtCoordinateConvert::myTopoTransform
protected

Transformation from topographic to geocentric coordinates.

◆ myInverseTopoTransform

DtCoordTransform makVre::DtCoordinateConvert::myInverseTopoTransform
protected

Transformation from geocentric to topographic coordinates.

◆ myUtmReference

DtUtmReferencePoint makVre::DtCoordinateConvert::myUtmReference
protected

UTM reference point for UTM conversions.

◆ myRemapX

AxisType makVre::DtCoordinateConvert::myRemapX
protected

The axis to use for X in remapping.

◆ myRemapY

AxisType makVre::DtCoordinateConvert::myRemapY
protected

The axis to use for Y in remapping.

◆ myRemapZ

AxisType makVre::DtCoordinateConvert::myRemapZ
protected

The axis to use for Z in remapping.

◆ myFlipX

bool makVre::DtCoordinateConvert::myFlipX
protected

Whether to flip the X axis.

◆ myFlipY

bool makVre::DtCoordinateConvert::myFlipY
protected

Whether to flip the Y axis.

◆ myFlipZ

bool makVre::DtCoordinateConvert::myFlipZ
protected

Whether to flip the Z axis.

◆ myOffset

DtVector makVre::DtCoordinateConvert::myOffset
protected

Offset to apply to coordinates.

◆ myOrigin

DtGeodeticCoord makVre::DtCoordinateConvert::myOrigin
protected

Geodetic origin (lat, lon, alt)


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