VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Protected Attributes
makVrv::DtCoordinateDisplay Class Reference

Abstract interface class for all coordinate system displays. More...

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

Public Types

typedef
makArchives::DtDisplayUnitsSettingsRecord::CoordSys 
CoordSys
typedef
makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits 
DistanceUnits
typedef
makArchives::DtDisplayUnitsSettingsRecord::VelocityUnits 
VelocityUnits
typedef
makArchives::DtDisplayUnitsSettingsRecord::AccelerationUnits 
AccelerationUnits
typedef
makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits 
OrientationUnits
typedef
makArchives::DtDisplayUnitsSettingsRecord::RotVelocityUnits 
RotVelocityUnits
typedef std::list< DistanceUnitsSupportedPositionDistanceUnits
typedef std::list
< OrientationUnits
SupportedPositionAngularUnits
typedef std::list< std::string > SupportedCSForGridLines

Public Member Functions

 DtCoordinateDisplay (const DtCoordinateSystem &coordSys)
 CTOR DtUnitConverterCollection is a collection of classes used to convert between different units (meters, feet, miles, etc.) DtCoordinateSystem is used to do coordinate system conversions, when possible.
virtual ~DtCoordinateDisplay ()
 DTOR.
virtual DtCoordinateDisplayclone () const =0
 Virtual clone function.
virtual DtUnicode name ()=0
virtual DtUnicode gridBoxLabel (const DtVector &lowerLeftGeocPos, const DtVector &upperRightGeocPos)
 Some systems (such as MGRS) are not just positions but boxes with grid designators.
virtual DtUnicode northSouthGridLabel (DistanceUnits unit, const DtVector &geocPos, int decimals, double gridSpacing)
 Get a north / south label with linear units.
virtual DtUnicode northSouthGridLabel (OrientationUnits unit, const DtVector &geocPos, int decimals, double gridSpacing)
 Get a north / south label with angular units.
virtual DtUnicode eastWestGridLabel (DistanceUnits unit, const DtVector &geocPos, int decimals, double gridSpacing)
 Get an east / west label with linear units.
virtual DtUnicode eastWestGridLabel (OrientationUnits unit, const DtVector &geocPos, int decimals, double gridSpacing)
 Get an east / west label with angular units.
virtual bool clipXToGrid (double inStartX, double inEndX, double constantY, double &clippedStartX, double &clippedEndX)
 Clip a line segment in LOCAL coordinates to an existing grid defined by this coord system, if any.
virtual bool clipYToGrid (double inStartY, double inEndY, double constantX, double &clippedStartY, double &clippedEndY)
 Returns false if entire segment is outside grid.
virtual void shiftGridLineAnchors (double xSpacing, double ySpacing, double &shiftX, double &shifY)
 Normally, grid lines are started at database 0,0.
virtual bool usesDecimalsOnGridLines () const
 Enable/disable the decimals spinbox on grid settings dialog.
virtual double maxGridSpacing () const
 Maximum grid spacing allowed. 0. returned if unlimited.
virtual double minGridSpacing () const
 Minimum grid spacing allowed. 0. returned if unlimited.
virtual DistanceUnits xUnitsFor (DistanceUnits unit)=0
virtual DistanceUnits yUnitsFor (DistanceUnits unit)=0
virtual DistanceUnits zUnitsFor (DistanceUnits unit)=0
virtual DtUnicode xAxisLabel ()=0
virtual DtUnicode yAxisLabel ()=0
virtual DtUnicode zAxisLabel ()=0
virtual std::vector< std::string > convertPositionToStringList (DistanceUnits unit, const DtVector &geocPos, int decimals)=0
 Takes the x, y, z values that comes in and creates a string array of three strings that represent the values.
virtual void convertToGeocentric (const std::string &x, const std::string &y, const std::string &z, DistanceUnits distUnits, DistanceUnits altUnits, DtVector &vector)=0
 Converts the given coordinates (in string rep) from the base units to geocentric.
virtual DtVector convertFromGeocentric (const DtVector &vector) const =0
 Converts the vector from geocentric to local.
virtual DtTaitBryan headingPitchRollFor (const DtVector &geocPos, const DtTaitBryan &geocOri) const =0
 Return heading, pitch, roll in radians given local orientation.
virtual DtTaitBryan localOrientationFor (const DtVector &location, const DtTaitBryan &geocOri) const =0
 Return local orientation given geocentric orientation.
virtual void regularExpressionValidator (std::string &x, std::string &y, std::string &z)=0
 Returns a the regexes for validating the XYZ values for this coordsys.
virtual DtTaitBryan topoOrientationFor (const DtVector &geocPos, const DtTaitBryan &geocOri) const
virtual DtVector geocToLocalVector (const DtVector &geocLoc, const DtVector &geocVec) const
const
SupportedPositionDistanceUnits
supportedPositionDistanceUnits () const
 Retrieve the the list of DistanceUnits supported by this cs display for displaying positions (coordnates).Different coordinate displays can support different distance units for position display (or, in some cases, none).
bool isSupportedPositionUnit (DistanceUnits unit) const
 Determine if the specified distance unit is supported.
void addSupportedPositionUnit (DistanceUnits unitToSupport)
 Add support for a new distance unit type.
void removeSupportedPositionUnit (DistanceUnits unitToRemove)
 Remove support for a distance unit type.
const
SupportedPositionAngularUnits
supportedPositionAngularUnits () const
 Retrieve the the list of OrientationUnits supported by this cs display.
bool isSupportedPositionUnit (OrientationUnits unit) const
 Determine if the specified distance unit is supported.
void addSupportedPositionUnit (OrientationUnits unitToSupport)
 Add support for a new distance unit type.
void removeSupportedPositionUnit (OrientationUnits unitToRemove)
 Remove support for a distance unit type.
const SupportedCSForGridLinessupportedCSForGridLines () const
 Retrieve the the list of coordinate systems that can have grid lines drawn using this display type.
bool isSupportedCSForGridLines (const std::string &cs) const
 Determine if this display supports grid lines for the specified coordinate system.
void addSupportedCSForGridLines (const std::string &cs)
 Add grid line support for a coordinate system.
void removeSupportedCSForGridLines (const std::string &cs)
 Remove grid line support for a coordinate system.

Protected Attributes

const DtCoordinateSystemmyCoordinateSystem
SupportedPositionDistanceUnits mySupportedPositionDistanceUnits
SupportedPositionAngularUnits mySupportedPositionAngularUnits
SupportedCSForGridLines mySupportedCSForGridLines

Detailed Description

Abstract interface class for all coordinate system displays.

Member Typedef Documentation

Constructor & Destructor Documentation

makVrv::DtCoordinateDisplay::DtCoordinateDisplay ( const DtCoordinateSystem coordSys)

CTOR DtUnitConverterCollection is a collection of classes used to convert between different units (meters, feet, miles, etc.) DtCoordinateSystem is used to do coordinate system conversions, when possible.

virtual makVrv::DtCoordinateDisplay::~DtCoordinateDisplay ( )
virtual

DTOR.

Member Function Documentation

virtual DtCoordinateDisplay* makVrv::DtCoordinateDisplay::clone ( ) const
pure virtual
virtual DtUnicode makVrv::DtCoordinateDisplay::name ( )
pure virtual
virtual DtUnicode makVrv::DtCoordinateDisplay::gridBoxLabel ( const DtVector lowerLeftGeocPos,
const DtVector upperRightGeocPos 
)
virtual

Some systems (such as MGRS) are not just positions but boxes with grid designators.

This function should return "" if a system has no grid boxes, otherwise return a label suitable for the lower left-hand corner of that box

Reimplemented in makVrv::DtMgrsCoordinateDisplay, and makVrv::DtUtmCoordinateDisplay.

virtual DtUnicode makVrv::DtCoordinateDisplay::northSouthGridLabel ( DistanceUnits  unit,
const DtVector geocPos,
int  decimals,
double  gridSpacing 
)
virtual
virtual DtUnicode makVrv::DtCoordinateDisplay::northSouthGridLabel ( OrientationUnits  unit,
const DtVector geocPos,
int  decimals,
double  gridSpacing 
)
virtual

Get a north / south label with angular units.

Reimplemented in makVrv::DtGeodeticDmsCoordinateDisplay, and makVrv::DtGeodeticDecCoordinateDisplay.

virtual DtUnicode makVrv::DtCoordinateDisplay::eastWestGridLabel ( DistanceUnits  unit,
const DtVector geocPos,
int  decimals,
double  gridSpacing 
)
virtual
virtual DtUnicode makVrv::DtCoordinateDisplay::eastWestGridLabel ( OrientationUnits  unit,
const DtVector geocPos,
int  decimals,
double  gridSpacing 
)
virtual

Get an east / west label with angular units.

Reimplemented in makVrv::DtGeodeticDmsCoordinateDisplay, and makVrv::DtGeodeticDecCoordinateDisplay.

virtual bool makVrv::DtCoordinateDisplay::clipXToGrid ( double  inStartX,
double  inEndX,
double  constantY,
double &  clippedStartX,
double &  clippedEndX 
)
virtual

Clip a line segment in LOCAL coordinates to an existing grid defined by this coord system, if any.

Returns false if entire segment is outside grid

Reimplemented in makVrv::DtMgrsCoordinateDisplay.

virtual bool makVrv::DtCoordinateDisplay::clipYToGrid ( double  inStartY,
double  inEndY,
double  constantX,
double &  clippedStartY,
double &  clippedEndY 
)
virtual

Returns false if entire segment is outside grid.

Reimplemented in makVrv::DtMgrsCoordinateDisplay.

virtual void makVrv::DtCoordinateDisplay::shiftGridLineAnchors ( double  xSpacing,
double  ySpacing,
double &  shiftX,
double &  shifY 
)
virtual

Normally, grid lines are started at database 0,0.

This allows a shift to start them somewhere else (like a UTM zone origin)

Reimplemented in makVrv::DtUtmCoordinateDisplay, and makVrv::DtGeodeticDmsCoordinateDisplay.

virtual bool makVrv::DtCoordinateDisplay::usesDecimalsOnGridLines ( ) const
virtual

Enable/disable the decimals spinbox on grid settings dialog.

Reimplemented in makVrv::DtUtmCoordinateDisplay.

virtual double makVrv::DtCoordinateDisplay::maxGridSpacing ( ) const
virtual

Maximum grid spacing allowed. 0. returned if unlimited.

Reimplemented in makVrv::DtMgrsCoordinateDisplay.

virtual double makVrv::DtCoordinateDisplay::minGridSpacing ( ) const
virtual

Minimum grid spacing allowed. 0. returned if unlimited.

Reimplemented in makVrv::DtMgrsCoordinateDisplay.

virtual DistanceUnits makVrv::DtCoordinateDisplay::xUnitsFor ( DistanceUnits  unit)
pure virtual
virtual DistanceUnits makVrv::DtCoordinateDisplay::yUnitsFor ( DistanceUnits  unit)
pure virtual
virtual DistanceUnits makVrv::DtCoordinateDisplay::zUnitsFor ( DistanceUnits  unit)
pure virtual
virtual DtUnicode makVrv::DtCoordinateDisplay::xAxisLabel ( )
pure virtual
virtual DtUnicode makVrv::DtCoordinateDisplay::yAxisLabel ( )
pure virtual
virtual DtUnicode makVrv::DtCoordinateDisplay::zAxisLabel ( )
pure virtual
virtual std::vector<std::string> makVrv::DtCoordinateDisplay::convertPositionToStringList ( DistanceUnits  unit,
const DtVector geocPos,
int  decimals 
)
pure virtual

Takes the x, y, z values that comes in and creates a string array of three strings that represent the values.

This call assumes the values being passed in are in geocentric values

Implemented in makVrv::DtMgrsCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, makVrv::DtGeodeticDmsCoordinateDisplay, makVrv::DtGeocentricCoordinateDisplay, SngCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, and makVrv::DtGeodeticDecCoordinateDisplay.

virtual void makVrv::DtCoordinateDisplay::convertToGeocentric ( const std::string &  x,
const std::string &  y,
const std::string &  z,
DistanceUnits  distUnits,
DistanceUnits  altUnits,
DtVector vector 
)
pure virtual

Converts the given coordinates (in string rep) from the base units to geocentric.

Note that the coordinates must be in the units of this collection

Implemented in makVrv::DtMgrsCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, makVrv::DtGeodeticDmsCoordinateDisplay, makVrv::DtGeocentricCoordinateDisplay, SngCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, and makVrv::DtGeodeticDecCoordinateDisplay.

virtual DtVector makVrv::DtCoordinateDisplay::convertFromGeocentric ( const DtVector vector) const
pure virtual

Converts the vector from geocentric to local.

Assumes the vector is in geocentric coordinates.

Implemented in makVrv::DtUtmCoordinateDisplay, makVrv::DtGeodeticDmsCoordinateDisplay, SngCoordinateDisplay, makVrv::DtGeocentricCoordinateDisplay, and makVrv::DtDatabaseCoordinateDisplay.

virtual DtTaitBryan makVrv::DtCoordinateDisplay::headingPitchRollFor ( const DtVector geocPos,
const DtTaitBryan &  geocOri 
) const
pure virtual
virtual DtTaitBryan makVrv::DtCoordinateDisplay::localOrientationFor ( const DtVector location,
const DtTaitBryan &  geocOri 
) const
pure virtual
virtual void makVrv::DtCoordinateDisplay::regularExpressionValidator ( std::string &  x,
std::string &  y,
std::string &  z 
)
pure virtual

Returns a the regexes for validating the XYZ values for this coordsys.

Need X, Y and Z because they may be different for a given coordinate system.

Implemented in makVrv::DtUtmCoordinateDisplay, makVrv::DtMgrsCoordinateDisplay, makVrv::DtGeodeticDmsCoordinateDisplay, SngCoordinateDisplay, makVrv::DtGeocentricCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, and makVrv::DtGeodeticDecCoordinateDisplay.

virtual DtTaitBryan makVrv::DtCoordinateDisplay::topoOrientationFor ( const DtVector geocPos,
const DtTaitBryan &  geocOri 
) const
virtual
virtual DtVector makVrv::DtCoordinateDisplay::geocToLocalVector ( const DtVector geocLoc,
const DtVector geocVec 
) const
virtual
const SupportedPositionDistanceUnits& makVrv::DtCoordinateDisplay::supportedPositionDistanceUnits ( ) const

Retrieve the the list of DistanceUnits supported by this cs display for displaying positions (coordnates).Different coordinate displays can support different distance units for position display (or, in some cases, none).

For example, UTM only xupports meters. On the other hand, Local Cartesian Coordinates can be displayed in any DistanceUnit.

bool makVrv::DtCoordinateDisplay::isSupportedPositionUnit ( DistanceUnits  unit) const

Determine if the specified distance unit is supported.

void makVrv::DtCoordinateDisplay::addSupportedPositionUnit ( DistanceUnits  unitToSupport)

Add support for a new distance unit type.

void makVrv::DtCoordinateDisplay::removeSupportedPositionUnit ( DistanceUnits  unitToRemove)

Remove support for a distance unit type.

const SupportedPositionAngularUnits& makVrv::DtCoordinateDisplay::supportedPositionAngularUnits ( ) const

Retrieve the the list of OrientationUnits supported by this cs display.

for displaying positions (coordnates). Different coordinate displays can support different angular units for position display (or, in some cases, none). For example, Geodetic currently supports degrees.

bool makVrv::DtCoordinateDisplay::isSupportedPositionUnit ( OrientationUnits  unit) const

Determine if the specified distance unit is supported.

void makVrv::DtCoordinateDisplay::addSupportedPositionUnit ( OrientationUnits  unitToSupport)

Add support for a new distance unit type.

void makVrv::DtCoordinateDisplay::removeSupportedPositionUnit ( OrientationUnits  unitToRemove)

Remove support for a distance unit type.

const SupportedCSForGridLines& makVrv::DtCoordinateDisplay::supportedCSForGridLines ( ) const

Retrieve the the list of coordinate systems that can have grid lines drawn using this display type.

bool makVrv::DtCoordinateDisplay::isSupportedCSForGridLines ( const std::string &  cs) const

Determine if this display supports grid lines for the specified coordinate system.

void makVrv::DtCoordinateDisplay::addSupportedCSForGridLines ( const std::string &  cs)

Add grid line support for a coordinate system.

void makVrv::DtCoordinateDisplay::removeSupportedCSForGridLines ( const std::string &  cs)

Remove grid line support for a coordinate system.

Member Data Documentation

const DtCoordinateSystem& makVrv::DtCoordinateDisplay::myCoordinateSystem
protected
SupportedPositionDistanceUnits makVrv::DtCoordinateDisplay::mySupportedPositionDistanceUnits
protected
SupportedPositionAngularUnits makVrv::DtCoordinateDisplay::mySupportedPositionAngularUnits
protected
SupportedCSForGridLines makVrv::DtCoordinateDisplay::mySupportedCSForGridLines
protected

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

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)