VR-Forces 4.0.4 Class Documentation
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]

List of all members.

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

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.

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.

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 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]

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.

Determine if the specified distance unit is supported.

Add support for a new distance unit type.

Remove support for a distance unit type.

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.

Determine if the specified distance unit is supported.

Add support for a new distance unit type.

Remove support for a distance unit type.

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

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

Add grid line support for a coordinate system.

Remove grid line support for a coordinate system.


Member Data Documentation


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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)