![]() |
VR-Forces 5.0.3 Developer's Guide
|
Abstract interface class for all coordinate system displays.

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< DistanceUnits > | SupportedPositionDistanceUnits |
| typedef std::list < OrientationUnits > | SupportedPositionAngularUnits |
| typedef std::list< std::string > | SupportedCSForGridLines |
Public Member Functions | |
| DtCoordinateDisplay (const DtCoordinateSystem &coordSys) | |
| virtual | ~DtCoordinateDisplay () |
| virtual DtCoordinateDisplay * | clone () const =0 |
| virtual DtUnicode | name () const =0 |
| virtual DtUnicode | gridBoxLabel (const DtVector &lowerLeftGeocPos, const DtVector &upperRightGeocPos) |
| virtual DtUnicode | northSouthGridLabel (DistanceUnits unit, const DtVector &geocPos, int decimals, double gridSpacing, bool minimal=false) |
| virtual DtUnicode | northSouthGridLabel (OrientationUnits unit, const DtVector &geocPos, int decimals, double gridSpacing, bool minimal=false) |
| virtual DtUnicode | eastWestGridLabel (DistanceUnits unit, const DtVector &geocPos, int decimals, double gridSpacing, bool minimal=false) |
| virtual DtUnicode | eastWestGridLabel (OrientationUnits unit, const DtVector &geocPos, int decimals, double gridSpacing, bool minimal=false) |
| virtual bool | clipXToGrid (double inStartX, double inEndX, double constantY, double &clippedStartX, double &clippedEndX) |
| virtual bool | clipYToGrid (double inStartY, double inEndY, double constantX, double &clippedStartY, double &clippedEndY) |
| virtual void | shiftGridLineAnchors (double xSpacing, double ySpacing, double &shiftX, double &shifY) |
| virtual bool | usesDecimalsOnGridLines () const |
| virtual double | maxGridSpacing () const |
| virtual double | minGridSpacing () const |
| virtual DistanceUnits | xUnitsFor (DistanceUnits unit) const =0 |
| virtual DistanceUnits | yUnitsFor (DistanceUnits unit) const =0 |
| virtual DistanceUnits | zUnitsFor (DistanceUnits unit) const =0 |
| virtual DtUnicode | xAxisLabel () const =0 |
| virtual DtUnicode | yAxisLabel () const =0 |
| virtual DtUnicode | zAxisLabel () const =0 |
| virtual std::vector< std::string > | convertPositionToStringList (DistanceUnits unit, const DtVector &geocPos, int decimals) const =0 |
| virtual std::vector< DtUnicode > | convertPositionToNotatedStringList (DistanceUnits unit, DtUnicode unitNotation, const DtVector &geocPos, int decimals, bool minimal=false) const =0 |
| virtual void | convertToGeocentric (const std::string &x, const std::string &y, const std::string &z, DistanceUnits distUnits, DistanceUnits altUnits, DtVector &vector)=0 |
| virtual DtVector | convertFromGeocentric (const DtVector &vector) const =0 |
| virtual DtTaitBryan | headingPitchRollFor (const DtVector &geocPos, const DtTaitBryan &geocOri) const =0 |
| virtual DtTaitBryan | localOrientationFor (const DtVector &location, const DtTaitBryan &geocOri) const =0 |
| virtual void | regularExpressionValidator (std::string &x, std::string &y, std::string &z)=0 |
| virtual DtTaitBryan | topoOrientationFor (const DtVector &geocPos, const DtTaitBryan &geocOri) const |
| virtual DtVector | geocToLocalVector (const DtVector &geocLoc, const DtVector &geocVec) const |
| const SupportedPositionDistanceUnits & | supportedPositionDistanceUnits () const |
| bool | isSupportedPositionUnit (DistanceUnits unit) const |
| void | addSupportedPositionUnit (DistanceUnits unitToSupport) |
| void | removeSupportedPositionUnit (DistanceUnits unitToRemove) |
| const SupportedPositionAngularUnits & | supportedPositionAngularUnits () const |
| bool | isSupportedPositionUnit (OrientationUnits unit) const |
| void | addSupportedPositionUnit (OrientationUnits unitToSupport) |
| void | removeSupportedPositionUnit (OrientationUnits unitToRemove) |
| const SupportedCSForGridLines & | supportedCSForGridLines () const |
| bool | isSupportedCSForGridLines (const std::string &cs) const |
| void | addSupportedCSForGridLines (const std::string &cs) |
| void | removeSupportedCSForGridLines (const std::string &cs) |
Static Public Member Functions | |
| static std::string | removeNegativeZeroIfNeeded (const char *ptr) |
| static std::string | cleanupNumericalString (const char *buffer, int decimals) |
| typedef makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits makVrv::DtCoordinateDisplay::DistanceUnits |
| typedef makArchives::DtDisplayUnitsSettingsRecord::VelocityUnits makVrv::DtCoordinateDisplay::VelocityUnits |
| typedef makArchives::DtDisplayUnitsSettingsRecord::AccelerationUnits makVrv::DtCoordinateDisplay::AccelerationUnits |
| typedef makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits makVrv::DtCoordinateDisplay::OrientationUnits |
| typedef makArchives::DtDisplayUnitsSettingsRecord::RotVelocityUnits makVrv::DtCoordinateDisplay::RotVelocityUnits |
| typedef std::list<DistanceUnits> makVrv::DtCoordinateDisplay::SupportedPositionDistanceUnits |
| typedef std::list<OrientationUnits> makVrv::DtCoordinateDisplay::SupportedPositionAngularUnits |
| typedef std::list<std::string> makVrv::DtCoordinateDisplay::SupportedCSForGridLines |
| 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 |
DTOR.
|
pure virtual |
Virtual clone function.
Implemented in SngCoordinateDisplay, makVrv::DtGeodeticDdmCoordinateDisplay, makVrv::DtGeodeticDmsCoordinateDisplay, makVrv::DtMgrsCoordinateDisplay, makVrv::DtGeodeticDecCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, and makVrv::DtGeocentricCoordinateDisplay.
|
pure virtual |
Implemented in SngCoordinateDisplay, makVrv::DtGeodeticDdmCoordinateDisplay, makVrv::DtGeodeticDmsCoordinateDisplay, makVrv::DtMgrsCoordinateDisplay, makVrv::DtGeodeticDecCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, and makVrv::DtGeocentricCoordinateDisplay.
|
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 |
Get a north / south label with linear units.
| unit | The linear distance unit being used |
| geocPos | The geocentric position to get a gridline label for |
| decimals | The number of decimals places to include in gridline label |
| gridSpacing | A spacing parameter for gridlines |
| minimal | Return a 'minimal' version of the grid label - behavior defined by the child class |
Reimplemented in makVrv::DtMgrsCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, makVrv::DtGeocentricCoordinateDisplay, and SngCoordinateDisplay.
|
virtual |
Get a north / south label with angular units.
| unit | The angular orientation unit being used |
| geocPos | The geocentric position to get a gridline label for |
| decimals | The number of decimals places to include in gridline label |
| gridSpacing | A spacing parameter for gridlines |
| minimal | Return a 'minimal' version of the grid label - behavior defined by the child class |
Reimplemented in makVrv::DtGeodeticDmsCoordinateDisplay, makVrv::DtGeodeticDdmCoordinateDisplay, and makVrv::DtGeodeticDecCoordinateDisplay.
|
virtual |
Get an east / west label with linear units.
| unit | The linear distance unit being used |
| geocPos | The geocentric position to get a gridline label for |
| decimals | The number of decimals places to include in gridline label |
| gridSpacing | A spacing parameter for gridlines |
| minimal | Return a 'minimal' version of the grid label - behavior defined by the child class |
Reimplemented in makVrv::DtMgrsCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, makVrv::DtGeocentricCoordinateDisplay, and SngCoordinateDisplay.
|
virtual |
Get an east / west label with angular units.
| unit | The angular orientation unit being used |
| geocPos | The geocentric position to get a gridline label for |
| decimals | The number of decimals places to include in gridline label |
| gridSpacing | A spacing parameter for gridlines |
| minimal | Return a 'minimal' version of the grid label - behavior defined by the child class |
Reimplemented in makVrv::DtGeodeticDmsCoordinateDisplay, makVrv::DtGeodeticDdmCoordinateDisplay, and makVrv::DtGeodeticDecCoordinateDisplay.
|
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 |
Returns false if entire segment is outside grid.
Reimplemented in makVrv::DtMgrsCoordinateDisplay.
|
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::DtGeodeticDmsCoordinateDisplay, and makVrv::DtUtmCoordinateDisplay.
|
virtual |
Enable/disable the decimals spinbox on grid settings dialog.
Reimplemented in makVrv::DtUtmCoordinateDisplay.
|
virtual |
Maximum grid spacing allowed. 0. returned if unlimited.
Reimplemented in makVrv::DtMgrsCoordinateDisplay.
|
virtual |
Minimum grid spacing allowed. 0. returned if unlimited.
Reimplemented in makVrv::DtMgrsCoordinateDisplay.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
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::DtGeodeticDmsCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, makVrv::DtGeodeticDdmCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, SngCoordinateDisplay, makVrv::DtGeocentricCoordinateDisplay, and makVrv::DtGeodeticDecCoordinateDisplay.
|
pure virtual |
Convert the geocentric position to a vector of notated strings.
| unit | The distance unit of the values passed in |
| unitNotation | The notation that corresponds to the distance unit |
| geocPos | The geocentric position to convert |
| decimals | The number of decimal places to include |
| minimal | Return a 'minimal' version of the grid label - behavior defined by the child class |
Implemented in makVrv::DtMgrsCoordinateDisplay, makVrv::DtGeodeticDmsCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, makVrv::DtGeodeticDdmCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, makVrv::DtGeocentricCoordinateDisplay, SngCoordinateDisplay, and makVrv::DtGeodeticDecCoordinateDisplay.
|
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::DtGeodeticDmsCoordinateDisplay, makVrv::DtMgrsCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, makVrv::DtGeocentricCoordinateDisplay, SngCoordinateDisplay, and makVrv::DtGeodeticDecCoordinateDisplay.
|
pure virtual |
Converts the vector from geocentric to local. Assumes the vector is in geocentric coordinates.
Implemented in makVrv::DtGeodeticDmsCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, SngCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, and makVrv::DtGeocentricCoordinateDisplay.
|
pure virtual |
Return heading, pitch, roll in radians given local orientation.
Implemented in makVrv::DtGeodeticDmsCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, SngCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, and makVrv::DtGeocentricCoordinateDisplay.
|
pure virtual |
Return local orientation given geocentric orientation.
Implemented in makVrv::DtGeodeticDmsCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, SngCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, and makVrv::DtGeocentricCoordinateDisplay.
|
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::DtGeodeticDmsCoordinateDisplay, makVrv::DtUtmCoordinateDisplay, makVrv::DtMgrsCoordinateDisplay, SngCoordinateDisplay, makVrv::DtGeocentricCoordinateDisplay, makVrv::DtDatabaseCoordinateDisplay, makVrv::DtGeodeticDdmCoordinateDisplay, and makVrv::DtGeodeticDecCoordinateDisplay.
|
virtual |
|
virtual |
Reimplemented in makVrv::DtGeocentricCoordinateDisplay.
| 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.
|
static |
Utility function to prevent the -0 case in numeric strings.
| ptr | A pointer to a C-style string representing a numeric value |
This function removes '-' from a c-style string, if a negative zero is found in the string, and returns the result as a std::string. If a negative zero is not found in the string, this function returns the std::string equivalent of ptr. It is assumed that if the string has a '-', it is at ptr[0].
For example,
|
static |
Cleans up a string representation of any numerical value.
| buff | The string representation of the numerical value to clean up |
| decimals | The maximum number of decimal places the numerical value will have This function cleans up a string representation by only keeping significant digits. Additionally, any "-0" values will be rounded to "0". For example,
|
|
protected |
|
protected |
|
protected |
|
protected |