VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions
makVrv::DtCoordinateConverter Class Referenceabstract

DtCoordinateConverter is the base class for 'local (cig) to geocentric' converters.

Inheritance diagram for makVrv::DtCoordinateConverter:
Inheritance graph
[legend]

Public Types

typedef DtCoordinateConverter *(* CreatorFn )()
 

Public Member Functions

virtual ~DtCoordinateConverter ()
 
virtual const std::string & type () const
 
virtual DtCoordinateConverterclone () const =0
 
virtual bool init (const std::string &originstring)=0
 
virtual std::string stringRep ()=0
 
virtual bool zIsAlt () const
 
virtual bool usesOffsetFile () const
 
virtual DtGeodeticCoord databaseOrigin () const
 
virtual void setGeocOriginOffset (const DtVector &offset)
 
virtual void reset ()
 
virtual const DtDcm & nedToCigDcm () const
 
virtual const DtDcm & cigToNedDcm () const
 
virtual const DtDcm & geocToCigDcm () const
 
virtual const DtDcm & cigToGeocDcm () const
 
virtual const DtDcm & geocToNedDcm () const
 
virtual const DtDcm & cigToEnuDcm () const
 
virtual const DtDcm & nedToGeocDcm () const
 
virtual void geocToCig (const DtVector &geoc, DtVector &out) const =0
 
virtual void cigToGeoc (const DtVector &in, DtVector &geoc) const =0
 
virtual void setupTopoFrame (const DtVector &truth)
 
virtual void cigToEnu_coordTrans (const DtVector &cigPos, DtVector &enuPos) const
 
virtual void cigToEnu_vecTrans (const DtVector &cigVec, DtVector &enuVec) const
 
virtual void enuToCig_coordTrans (const DtVector &enuPos, DtVector &cigPos) const
 
virtual void enuToCig_vecTrans (const DtVector &enuVec, DtVector &cigVec) const
 
virtual DtTaitBryan nedToCig_EulerTrans (const DtTaitBryan &topo) const
 
virtual DtVector up (const DtVector &orig) const
 
virtual void topoSurface (const DtVector &o, DtVector &surface) const
 
const DtDcm nedToEnuDcm () const
 
virtual bool isGeocentric (void) const
 

Static Public Member Functions

static double convertToDouble (const std::string &str)
 
static double convertToDouble (const DtDegMinSec &dms)
 
static DtDegMinSec convertToDmsLat (double deg, char hemisphere= '_')
 
static DtDegMinSec convertToDmsLon (double deg)
 
static bool isCoordinateSystemProjected (const std::string &csType)
 

Static Public Attributes

static const charNoOp
 
static const charGeocentric
 
static const charUTM
 
static const charLambert
 
static const charFlatEarth
 
static const charCartesian
 

Protected Member Functions

 DtCoordinateConverter (const std::string &t)
 
std::string polarDirectionToStr (int dir)
 
std::string parseLatLng (const DtDegMinSec &lat, const DtDegMinSec &lng)
 

Protected Attributes

std::string myType
 
bool myUsesWarbreaker
 
bool myZAlt
 
DtGeodeticCoord myGeodOrigin
 
DtDcm myNedToGeocDcm
 
DtDcm myGeocToNedDcm
 
DtDcm myNedToCigDcm
 
DtDcm myCigToNedDcm
 
DtDcm myGeocToCigDcm
 
DtDcm myCigToGeocDcm
 
DtDcm myCigToEnuDcm
 
const DtDcm myNedToEnuDcm
 
DtDcm myNed2CigEulerDcm
 
DtVector myLastLocation
 

Private Member Functions

 DtCoordinateConverter (const DtCoordinateConverter &orig)
 
DtCoordinateConverteroperator= (const DtCoordinateConverter &orig)
 

Member Typedef Documentation

typedef DtCoordinateConverter*(* makVrv::DtCoordinateConverter::CreatorFn)()

Converts between generic Cartesian and geocentri.

Constructor & Destructor Documentation

virtual makVrv::DtCoordinateConverter::~DtCoordinateConverter ( )
virtual

destructor

makVrv::DtCoordinateConverter::DtCoordinateConverter ( const std::string &  t)
protected

constructor

makVrv::DtCoordinateConverter::DtCoordinateConverter ( const DtCoordinateConverter orig)
private

copy constructor

Member Function Documentation

virtual const std::string& makVrv::DtCoordinateConverter::type ( ) const
virtual

Get converter type - this base class type is NoOp.

virtual DtCoordinateConverter* makVrv::DtCoordinateConverter::clone ( ) const
pure virtual
virtual bool makVrv::DtCoordinateConverter::init ( const std::string &  originstring)
pure virtual
virtual std::string makVrv::DtCoordinateConverter::stringRep ( )
pure virtual
virtual bool makVrv::DtCoordinateConverter::zIsAlt ( ) const
virtual

get whether 3rd element corresponds to altitude in this coordinate system

virtual bool makVrv::DtCoordinateConverter::usesOffsetFile ( ) const
virtual

get whether Warbreaker type file needed

virtual DtGeodeticCoord makVrv::DtCoordinateConverter::databaseOrigin ( ) const
virtual

get database origin (cig) Origin is (latitude, longitude, alt) in degrees and meters (alt = 0 always)

virtual void makVrv::DtCoordinateConverter::setGeocOriginOffset ( const DtVector offset)
inlinevirtual

set origin offset (geoc cig origin)

virtual void makVrv::DtCoordinateConverter::reset ( )
virtual

Reset the coordinate converter This function recalculates constants used for conversions.

Reimplemented in makVrv::DtLambertCoordinateConverter.

virtual const DtDcm& makVrv::DtCoordinateConverter::nedToCigDcm ( ) const
virtual

get ned to cig rotation matrix

virtual const DtDcm& makVrv::DtCoordinateConverter::cigToNedDcm ( ) const
virtual

get cig to ned rotation matrix

virtual const DtDcm& makVrv::DtCoordinateConverter::geocToCigDcm ( ) const
virtual

set/get geoc to cig rotation matrix

virtual const DtDcm& makVrv::DtCoordinateConverter::cigToGeocDcm ( ) const
virtual

get cig to geoc rotation matrix NOTE: returns a static reference, non-reentrant

virtual const DtDcm& makVrv::DtCoordinateConverter::geocToNedDcm ( ) const
virtual

set/get geoc to ned rotation matrix

Reimplemented in makVrv::DtGeocentricCoordinateConverter.

virtual const DtDcm& makVrv::DtCoordinateConverter::cigToEnuDcm ( ) const
virtual

get geoc to ned estimate rotation matrix

virtual const DtDcm& geocToNedEstDcm() const;

get cig to enu rotation matrix

virtual const DtDcm& makVrv::DtCoordinateConverter::nedToGeocDcm ( ) const
virtual

get ned to geoc rotation matrix

Reimplemented in makVrv::DtGeocentricCoordinateConverter.

virtual void makVrv::DtCoordinateConverter::geocToCig ( const DtVector geoc,
DtVector out 
) const
pure virtual
virtual void makVrv::DtCoordinateConverter::cigToGeoc ( const DtVector in,
DtVector geoc 
) const
pure virtual
virtual void makVrv::DtCoordinateConverter::setupTopoFrame ( const DtVector truth)
virtual

Update all our transformation matrices based on the current database position.

Reimplemented in makVrv::DtUtmCoordinateConverter, makVrv::DtCartesianCoordinateConverter, makVrv::DtGeocentricCoordinateConverter, and makVrv::DtNoOpCoordinateConverter.

virtual void makVrv::DtCoordinateConverter::cigToEnu_coordTrans ( const DtVector cigPos,
DtVector enuPos 
) const
virtual

convert to Enu coordinates from Cig coordinates

Reimplemented in makVrv::DtCartesianCoordinateConverter, and makVrv::DtGeocentricCoordinateConverter.

virtual void makVrv::DtCoordinateConverter::cigToEnu_vecTrans ( const DtVector cigVec,
DtVector enuVec 
) const
virtual

convert to Enu vector from Cig vector

Reimplemented in makVrv::DtCartesianCoordinateConverter, and makVrv::DtGeocentricCoordinateConverter.

virtual void makVrv::DtCoordinateConverter::enuToCig_coordTrans ( const DtVector enuPos,
DtVector cigPos 
) const
virtual

convert to Cig coordinates from Enu coordinates

Reimplemented in makVrv::DtCartesianCoordinateConverter, and makVrv::DtGeocentricCoordinateConverter.

virtual void makVrv::DtCoordinateConverter::enuToCig_vecTrans ( const DtVector enuVec,
DtVector cigVec 
) const
virtual

convert to Cig vector from Enu vector

Reimplemented in makVrv::DtCartesianCoordinateConverter, and makVrv::DtGeocentricCoordinateConverter.

virtual DtTaitBryan makVrv::DtCoordinateConverter::nedToCig_EulerTrans ( const DtTaitBryan &  topo) const
virtual

provide cig euler angles from topo euler

virtual DtVector makVrv::DtCoordinateConverter::up ( const DtVector orig) const
virtual

provide 'up' vector

virtual void makVrv::DtCoordinateConverter::topoSurface ( const DtVector o,
DtVector surface 
) const
virtual

fill surface with topographic coords, alt 0

const DtDcm makVrv::DtCoordinateConverter::nedToEnuDcm ( ) const
inline
virtual bool makVrv::DtCoordinateConverter::isGeocentric ( void  ) const
virtual

whether geocentric

static double makVrv::DtCoordinateConverter::convertToDouble ( const std::string &  str)
static
static double makVrv::DtCoordinateConverter::convertToDouble ( const DtDegMinSec &  dms)
static
static DtDegMinSec makVrv::DtCoordinateConverter::convertToDmsLat ( double  deg,
char  hemisphere = '_' 
)
static
static DtDegMinSec makVrv::DtCoordinateConverter::convertToDmsLon ( double  deg)
static
static bool makVrv::DtCoordinateConverter::isCoordinateSystemProjected ( const std::string &  csType)
static

Is the specified coordinate system type a projected type?

std::string makVrv::DtCoordinateConverter::polarDirectionToStr ( int  dir)
protected

Helper for converting polar direction to string representations.

std::string makVrv::DtCoordinateConverter::parseLatLng ( const DtDegMinSec &  lat,
const DtDegMinSec &  lng 
)
protected

Return string from lat long.

DtCoordinateConverter& makVrv::DtCoordinateConverter::operator= ( const DtCoordinateConverter orig)
private

assignment operator

Member Data Documentation

const char* makVrv::DtCoordinateConverter::NoOp
static
const char* makVrv::DtCoordinateConverter::Geocentric
static

Does no conversion.

const char* makVrv::DtCoordinateConverter::UTM
static

Converts between geocentric database coords and geocentric network coords.

const char* makVrv::DtCoordinateConverter::Lambert
static

Converts between UTM and geocentric.

const char* makVrv::DtCoordinateConverter::FlatEarth
static

Converts between Lambert and geocentric.

const char* makVrv::DtCoordinateConverter::Cartesian
static

Converts between Flat Earth and geocentric.

std::string makVrv::DtCoordinateConverter::myType
protected

flags

bool makVrv::DtCoordinateConverter::myUsesWarbreaker
protected
bool makVrv::DtCoordinateConverter::myZAlt
protected
DtGeodeticCoord makVrv::DtCoordinateConverter::myGeodOrigin
protected

initializing system

DtDcm makVrv::DtCoordinateConverter::myNedToGeocDcm
protected

topo frame DCM's

DtDcm makVrv::DtCoordinateConverter::myGeocToNedDcm
protected
DtDcm makVrv::DtCoordinateConverter::myNedToCigDcm
protected
DtDcm makVrv::DtCoordinateConverter::myCigToNedDcm
protected
DtDcm makVrv::DtCoordinateConverter::myGeocToCigDcm
protected
DtDcm makVrv::DtCoordinateConverter::myCigToGeocDcm
protected
DtDcm makVrv::DtCoordinateConverter::myCigToEnuDcm
protected
const DtDcm makVrv::DtCoordinateConverter::myNedToEnuDcm
protected
DtDcm makVrv::DtCoordinateConverter::myNed2CigEulerDcm
protected

to-euler DCM's

DtVector makVrv::DtCoordinateConverter::myLastLocation
protected

DtCoordTransform myGeocToNedTransform;.


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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)