16 #include <matrix/vlMath.h>
17 #include <matrix/utmCoord.h>
18 #include <vl/utmView.h>
21 #include <vlutil/vlMutex.h>
22 #include <vlutil/vlScopedLock.h>
24 #define GETLAT(dms) ((dms).lat())
25 #define GETLON(dms) ((dms).lon())
26 #define GETALT(dms) ((dms).alt())
27 #define SETLAT(dms,l) ((dms).setLat((l)))
28 #define SETLON(dms,l) ((dms).setLon((l)))
29 #define SETALT(dms,a) ((dms).setAlt((a)))
31 #define DtSQR(x) ((x)*(x))
33 namespace MAKVRinTerra {
class DtProj; }
61 double dynamicSceneOriginDeadband = 0.0);
77 virtual void dis2local(
const DtDcm& in, DtDcm& out)
const;
79 virtual void dis2local(
const DtVector& vIn,
const DtDcm& dIn,
84 virtual void disBody2localBody(
const DtDcm& in, DtDcm& out)
const;
88 virtual void local2dis(
const DtDcm& in, DtDcm& out)
const;
90 virtual void local2dis(
const DtVector& vIn,
const DtDcm& dIn,
95 virtual void localBody2disBody(
const DtDcm& in, DtDcm& out)
const;
98 virtual void localToGeodetic(
const DtVector& localPosition,
99 DtGeodeticCoord& geodeticPosition)
const;
100 virtual void localToGeodetic(
const DtVector& localPosition,
104 virtual void geodeticToLocal(
const DtGeodeticCoord& geodeticPosition,
107 virtual void geodeticToLocal(
const DtVector& geodeticPosition,
113 virtual void topoToLocal(
const DtVector& localPosition, DtDcm& topoToLocal)
const;
114 virtual void localToTopo(
const DtVector& localPosition, DtDcm& localToTopo)
const;
120 virtual DtDegMinSec latitudeOrigin()
const;
122 virtual DtDegMinSec longitudeOrigin()
const;
124 virtual CS_Type getCS_Type()
const;
129 virtual void updateDynamicSceneOrigin(
const DtVector& New_Origin);
142 virtual bool sceneOriginUpdatedThisFrame();
148 virtual bool useDynamicSceneOrigin();
150 virtual void localToGeodetic(
const DtExtent& extent,
DtExtent& destExtent)
const;
151 virtual void geodeticToLocal(
const DtExtent& extent,
DtExtent& destExtent)
const;
157 virtual DtString coordinateSystemName()
const;
160 virtual void setOrigin(
const DtGeodeticCoord&);
161 virtual DtGeodeticCoord
origin()
const;
168 virtual std::auto_ptr<ProjData> clone()
const = 0;
176 : myCS(cs), myLock(cs->myProjMutex) { }
179 return myCS->
myProjData.get() ? myCS->myProjData->proj() : 0;
182 void set(std::auto_ptr<ProjData> p) {
183 myCS->myProjData = p;
DtDegMinSec myLatitudeOrigin
Definition: coordSystem.h:192
void set(std::auto_ptr< ProjData > p)
Definition: coordSystem.h:182
boost::shared_ptr< ProjData > myProjData
Definition: proj.h:210
voidpf uLong int origin
Definition: ioapi.h:42
DtDegMinSec myLongitudeOrigin
Definition: coordSystem.h:193
DtVector myScenePosition
Definition: coordSystem.h:198
bool myDynamicSceneOriginInAffect
Definition: coordSystem.h:195
Definition: coordSystem.h:41
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
Definition: coordSystem.h:37
DtScopedLock myLock
Definition: coordSystem.h:188
Definition: coordSystem.h:54
Represents some coordinate system. The terms "coordinate system", "projection", "spatial reference"...
Definition: proj.h:44
bool myDynamicSceneOriginUpdatedThisFrame
Definition: coordSystem.h:196
Definition: coordSystem.h:43
Definition: coordSystem.h:39
Definition: coordSystem.h:40
CS_Type myCoordinateSystemType
Definition: coordSystem.h:194
ProjAccess(Coordinate_System *cs)
Definition: coordSystem.h:175
Definition: coordSystem.h:42
Definition: coordSystem.h:36
CS_Type
Definition: coordSystem.h:35
Contains the declaration of the DtExtent class.
bool myInitialized
Definition: coordSystem.h:197
Definition: coordSystem.h:38
Definition: coordSystem.h:173
#define DT_DLL_terrainCS
Definition: terrainCSDefines.h:23
Coordinate_System * myCS
Definition: coordSystem.h:187
std::auto_ptr< ProjData > myProjData
Definition: coordSystem.h:204
Definition: coordSystem.h:165
DtMutex myProjMutex
Definition: coordSystem.h:203
double myDynamicSceneOriginDeadbandRegion
Definition: coordSystem.h:199