![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************** 00002 * Copyright (c) 2011 MaK Technologies, Inc. 00003 * All rights reserved. 00004 ********************************************************************/ 00005 /******************************************************************** 00006 * $RCSfile: DtUtmCoordinateDisplay.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 ********************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvUtil/DtGeocentricCoordinateDisplay.h> 00015 00016 class DtDcm; 00017 00018 namespace makVrv 00019 { 00020 00023 class DT_DLL_VRVUTIL DtUtmCoordinateDisplay : public DtGeocentricCoordinateDisplay 00024 { 00025 public: 00026 00027 DtUtmCoordinateDisplay( const DtCoordinateSystem& cs ); 00028 00029 virtual ~DtUtmCoordinateDisplay(); 00030 00031 DtCoordinateDisplay* clone() const; 00032 00033 virtual DtUnicode name(); 00034 00035 virtual makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits 00036 xUnitsFor( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit ); 00037 00038 virtual makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits 00039 yUnitsFor( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit ); 00040 00041 virtual makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits 00042 zUnitsFor( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit ); 00043 00044 virtual DtUnicode xAxisLabel(); 00045 virtual DtUnicode yAxisLabel(); 00046 virtual DtUnicode zAxisLabel(); 00047 00052 virtual DtUnicode gridBoxLabel(const DtVector& lowerLeftGeocPos, 00053 const DtVector& upperRightGeocPos ); 00054 00056 virtual DtUnicode northSouthGridLabel( 00057 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit, 00058 const DtVector& geocPos, int decimals, double gridSpacing ); 00059 00061 virtual DtUnicode eastWestGridLabel( 00062 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit, 00063 const DtVector& geocPos, int decimals, double gridSpacing ); 00064 00065 virtual void shiftGridLineAnchors( double xSpacing, double ySpacing, 00066 double& shiftX, double& shifY ); 00067 00068 virtual bool usesDecimalsOnGridLines() const; 00069 00071 virtual std::vector<std::string> convertPositionToStringList( 00072 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit, 00073 const DtVector& geocPos, int decimals ); 00074 00078 virtual void convertToGeocentric( 00079 const std::string& x, const std::string& y, const std::string& z, 00080 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits distUnits, 00081 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits altUnits, 00082 DtVector& vector ); 00083 00086 virtual DtVector convertFromGeocentric( const DtVector& geoc ) const; 00087 00089 virtual DtTaitBryan localOrientationFor( 00090 const DtVector& location, const DtTaitBryan& geocOri ) const; 00091 virtual DtTaitBryan headingPitchRollFor( 00092 const DtVector& location, const DtTaitBryan& geocOri ) const; 00093 00095 virtual DtDcm geocToUtmMatrix( const DtVector& geocLoc ) const; 00096 virtual DtDcm utmToGeocMatrix( const DtVector& geocLoc ) const; 00097 00099 virtual bool isNonUtmDatabase() const; 00100 virtual bool isGlobalUtmInitialized() const; 00101 00102 virtual double scaleFactor() const; 00103 00106 virtual void regularExpressionValidator( std::string& x, 00107 std::string& y, std::string& z ); 00108 00109 protected: 00110 // Helper to convert geoc position to utm ([0], [1]) and altitude ([2]) 00111 void geocToUtm( const DtVector& geocPos, DtVector& utmPos, DtUnicode& zone, 00112 int zoneToUse=0 ); 00113 00114 DtUnicode formatGridLabel( double value ); 00115 }; 00116 00117 }