![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************** 00002 * Copyright (c) 2011 MaK Technologies, Inc. 00003 * All rights reserved. 00004 ********************************************************************/ 00005 /******************************************************************** 00006 * $RCSfile: DtMgrsCoordinateDisplay.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 ********************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvUtil/DtUtmCoordinateDisplay.h> 00015 00016 class DtSpheroid; 00017 00018 namespace makVrv 00019 { 00020 00024 class DT_DLL_VRVUTIL DtMgrsCoordinateDisplay : public DtUtmCoordinateDisplay 00025 { 00026 public: 00027 00028 DtMgrsCoordinateDisplay( const DtCoordinateSystem& cs ); 00029 00030 virtual ~DtMgrsCoordinateDisplay(); 00031 00032 DtCoordinateDisplay* clone() const; 00033 00034 virtual DtUnicode name(); 00035 00036 virtual makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits 00037 xUnitsFor( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits units ); 00038 00039 virtual makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits 00040 yUnitsFor( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits units ); 00041 00042 virtual makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits 00043 zUnitsFor( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits units ); 00044 00045 virtual DtUnicode xAxisLabel(); 00046 virtual DtUnicode yAxisLabel(); 00047 virtual DtUnicode zAxisLabel(); 00048 00053 virtual DtUnicode gridBoxLabel(const DtVector& lowerLeftGeocPos, 00054 const DtVector& upperRightGeocPos ); 00055 00057 virtual DtUnicode northSouthGridLabel( 00058 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit, 00059 const DtVector& geocPos, int decimals, double gridSpacing ); 00060 00062 virtual DtUnicode eastWestGridLabel( 00063 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit, 00064 const DtVector& geocPos, int decimals, double gridSpacing ); 00065 00066 virtual bool clipXToGrid( double inStartX, double inEndX, double constantY, 00067 double& clippedStartX, double& clippedEndX ); 00068 00070 virtual bool clipYToGrid( double inStartY, double inEndY, double constantX, 00071 double& clippedStartY, double& clippedEndY ); 00072 00073 // Maximum grid spacing allowed. Constrain to 100,000 (one map sheet) 00074 virtual double maxGridSpacing() const; 00075 00076 // Minimum grid spacing allowed. Constrain to 1 meter 00077 virtual double minGridSpacing() const; 00078 00079 virtual std::vector<std::string> convertPositionToStringList( 00080 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit, 00081 const DtVector& geocPos, int decimals ); 00082 00086 virtual void convertToGeocentric( 00087 const std::string& x, const std::string& y, const std::string& z, 00088 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits distUnits, 00089 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits altUnits, 00090 DtVector& vector ); 00091 00094 virtual void regularExpressionValidator( std::string& x, 00095 std::string& y, std::string& z ); 00096 00097 protected: 00098 00100 virtual void initializeMilGridEllipsoid(); 00101 00102 protected: 00103 00105 static bool spheroidsEqual( const DtSpheroid& sph1, const DtSpheroid& sph2 ); 00106 00107 }; 00108 00109 }