22 #include <matrix/vlDcm.h>
26 #include <matrix/topoCoord.h>
27 #include <matrix/geodeticCoord.h>
28 #include <matrix/coordTransform.h>
29 #include <matrix/3dBoundingVolume.h>
31 #include <boost/shared_ptr.hpp>
32 #include <boost/optional.hpp>
77 static void objectAboutToBeRemovedCallback(
DtVrfObject * vrfObject,
void * usr);
78 virtual void processObjectAboutToBeRemovedCallback(
DtVrfObject * vrfObject);
89 virtual bool isHighFidelityTerrain()
const;
91 virtual bool skipThisObject()
const;
94 virtual void setStayAttachedEvenIfOff(
bool);
95 virtual bool stayAttachedEvenIfOff()
const;
97 void setFallThroughToPhysicalWorld(
bool val);
98 bool fallThroughToPhysicalWorld()
const;
100 virtual double terrainHeight(
const DtVector& localLocation,
101 bool* dataAvailable = 0,
bool overrideBlockingAssert =
false)
const;
102 virtual bool terrainHeight(
const DtVector& localLocation,
103 double& terrainHeight,
bool* dataAvailable = 0,
104 bool overrideBlockingAssert =
false)
const;
106 virtual bool terrainHeightAndSurface(
double lat,
double lon,
107 double& terrainHeight,
DtSurface& surface,
bool* dataAvailable = 0,
108 bool overrideBlockingAssert =
false)
const;
110 virtual bool terrainHeightAndSurface(
const DtVector& localLocation,
111 double& terrainHeight,
DtSurface& surface,
bool* dataAvailable = 0,
112 bool overrideBlockingAssert =
false)
const;
115 virtual bool closestIntersection(
const DtVector& localLocation,
117 bool* dataAvailable = 0,
bool overrideBlockingAssert =
false)
const;
119 virtual bool closestIntersection(
const DtVector& localLocation,
121 bool* dataAvailable = 0,
bool overrideBlockingAssert =
false)
const;
123 virtual bool closestIntersection(
const DtVector& localLocation,
127 bool* dataAvailable = 0,
bool overrideBlockingAssert =
false)
const;
129 virtual bool intersect(
const DtChord& chord,
DtPoint& intersectionPoint,
130 double& intersectionTime,
131 bool* dataAvailable = 0,
bool overrideBlockingAssert =
false)
const;
133 virtual bool intersect(
const DtChord& chord,
137 bool* dataAvailable = 0,
bool overrideBlockingAssert =
false)
const;
145 virtual bool closestIntersection(
const DtVector& curPosition,
147 bool overrideBlockingAssert =
false)
const;
174 virtual bool allIntersectsAlongChord(
const DtChord& chord,
178 bool overrideBlockingAssert =
false)
const;
181 bool testInvariant()
const;
184 virtual void updateCoordTransforms();
187 virtual void updateBoundingVolume();
190 virtual DtVector convertLocalPointToModelPoint(
const DtVector& source)
const;
194 virtual DtChord convertLocalChordToModelChord(
const DtChord& source)
const;
197 virtual DtVector convertModelPointToDatabasePoint(
const DtPoint&)
const;
203 virtual unsigned intersectChordWithBoundingVolume(
const DtChord& chord,
207 virtual unsigned intersectChordWithBoundingVolume(
const DtChord& chord,
bool calculateNormal,
211 virtual bool boundingVolumeAltitude(
const DtVector& p,
double& alt)
const;
216 virtual bool entityIsValidAndAttached()
const;
218 virtual int appearanceFlags()
const;
220 void setObjectGeometricModel(boost::shared_ptr<DtTerrainInterface> newObjGeomModel);
221 boost::shared_ptr<DtTerrainInterface> objectGeometricModel()
const;