![]() |
VR-Link API Documentation for DIS
|
00001 //******************************************************************** 00004 //******************************************************************** 00005 //******************************************************************** 00007 //******************************************************************** 00008 00009 #ifndef geodeticRegion_H_ 00010 #define geodeticRegion_H_ 00011 00012 00013 00014 #if DtHLA 00015 00016 #include "region.h" 00017 #include <vlutil/vlExceptions.h> 00018 #include <matrix/geodCoord.h> 00019 #include <vlutil/vlTime.h> 00020 #include <matrix/coordTransform.h> 00021 00025 00026 class DT_DLL_VL DtGeodeticRegion; 00027 00028 typedef DtBoost::shared_ptr<DtGeodeticRegion> DtGeodeticRegionSP; 00029 00038 class DT_DLL_VL DtGeodeticRegion : public DtDDMRegion 00039 { 00040 public: 00048 DtGeodeticRegion(DtExerciseConn* exConn); 00049 00055 DtGeodeticRegion(DtExerciseConn* exConn, 00056 const std::vector<DtString>& dimensionNamesVector); 00057 00063 DtGeodeticRegion(DtExerciseConn* conn, 00064 const std::vector<DtString>& dimensionNamesVector, 00065 const DtGeodeticCoord& ddmPlayboxLowerBound, 00066 const DtGeodeticCoord& ddmPlayboxUpperBound); 00067 00069 virtual ~DtGeodeticRegion(); 00070 00073 virtual void setRegionBounds(const DtGeodeticCoord& lowerBound, 00074 const DtGeodeticCoord& upperBound); 00075 00078 virtual void setRegionBounds(const DtVector& point, double metersNorth, 00079 double metersEast); 00080 00086 virtual void setApproximateUpdateTime(DtTime updateTime); 00087 00090 virtual DtTime approximateUpdateTime() const; 00091 00094 virtual void updateRegionWithVelocity(const DtVector& geocentricPosition, 00095 const DtVector& geocentricVelocity); 00096 00099 virtual bool needToUpdateRegion(const DtVector& geocentricPosition) const; 00100 00101 protected: 00103 DtGeodeticRegion(const DtGeodeticRegion& orig); 00104 00106 const DtGeodeticRegion& operator=(const DtGeodeticRegion& orig); 00107 00108 protected: 00109 DtGeodeticNormalizer* myNormalizer; 00110 DtTime myApproximateUpdateTime; 00111 00113 double myNorthSouthThreshold; 00114 double myEastWestThreshold; 00115 00118 DtVector myLastLocation; 00119 00122 DtCoordTransform myLastGeocToTopoTransform; 00123 00124 00125 }; 00126 00127 #endif 00128 00129 #endif 00130