20 #include <boost/scoped_ptr.hpp>
31 class DtTerrainImplementationDescriptor;
35 class DtGenericTerrainRecord;
85 virtual void addTerrainImplementation(
const DtString& implementationName,
92 virtual bool loadTerrain(
const DtString& filename,
95 virtual bool unloadTerrain();
96 virtual bool terrainIsLoaded();
99 virtual DtString loadedFilename()
const;
106 virtual std::auto_ptr<MAKVRinTerra::DtObstacleFeatureSet> obstacles(
const std::string& type)
const;
108 virtual std::auto_ptr<MAKVRinTerra::DtPathFeatureSet> paths(
const std::string& type)
const;
110 virtual std::auto_ptr<MAKVRinTerra::DtFeatureSet> allFeatures()
const;
128 virtual double terrainHeightAboveSeaLevel(
const DtPoint& databaseLocation,
129 bool* dataAvailable = 0,
bool overrideBlockingAssert =
false)
const;
154 virtual bool terrainHeightAndIntersection(
const DtVector& localLocation,
158 bool overrideBlockingAssert =
false)
const;
201 virtual bool closestIntersection(
const DtVector& localLocation,
202 DtPoint& intersectionPoint,
bool* dataAvailable = 0,
203 bool overrideBlockingAssert =
false)
const;
226 virtual bool closestIntersection(
double lat,
double lon,
227 DtPoint& intersectionPoint,
bool* dataAvailable = 0,
228 bool overrideBlockingAssert =
false)
const;
254 virtual bool closestIntersection(
const DtVector& localLocation,
258 bool overrideBlockingAssert =
false)
const;
284 virtual bool closestIntersection(
double lat,
double lon,
288 bool overrideBlockingAssert =
false)
const;
317 virtual bool closestIntersection(
const std::list<DtVector>& localLocationList,
321 bool overrideBlockingAssert =
false)
const;
350 virtual bool intersect(
const DtChord& chord,
DtPoint& intersectionPoint,
351 double& intersectionTime,
bool* dataAvailable = 0,
352 bool overrideBlockingAssert =
false)
const;
380 virtual bool intersect(
const DtChord& chord,
384 bool overrideBlockingAssert =
false)
const;
409 virtual bool intersect(
const DtSphere& sphere,
413 bool overrideBlockingAssert =
false)
const;
441 virtual bool allIntersectsAlongChord(
const DtChord& chord,
445 bool overrideBlockingAssert =
false)
const;
478 virtual bool intersectList(
const std::list<DtChord>& chordList,
482 bool overrideBlockingAssert =
false)
const;
498 virtual void preloadTerrainAreas(
511 virtual bool addTerrainPassThroughLayer(
const DtString& layerType);
522 virtual void setAssertOnBlockingTerrainCalls(
bool assertBlock);
523 virtual bool assertOnBlockingTerrainCalls()
const;
530 virtual void setIntersectDataLoadExpireTime(
const double& expireTime);
531 virtual void expireDataLoadRequestsBeforeTime(
const double& currentTime);
536 virtual void setDataPath(
const std::string&);
537 virtual std::string dataPath()
const;
542 virtual void setUserDataPath(
const std::string&);
543 virtual std::string userDataPath()
const;
555 static void setModelDefinitionFilePath(
const DtString& fullFilePath);
556 static DtString modelDefinitionFilePath();
562 const DtPoint& localDestination,
const std::string& type,
563 const double& maxSearchRadius,
const double& startProximityThreshold,
569 virtual bool onPathFeature(
579 const double topoDistance(
const DtPoint& start,
const DtPoint& end,
592 const std::string& type,
const DtPoint& startingLocation,
593 const double& searchRadius,
bool* dataAvailable = NULL);
596 std::vector<DtChord>& chords)
const;
598 void breakUpChord(
const DtChord& chord, std::vector<DtChord>& chords)
const;
600 virtual boost::shared_ptr<DtTerrainInterfaceConfig> config()
const;
618 const std::string& type,
const double& maxSearchRadius,
619 const double& startProximityThreshold,
620 boost::function<
bool ()> cancelCheck,
625 virtual void loadConfigurationFile(
const DtFilename& filename);
653 boost::shared_ptr<DtTerrainInterfaceConfig>
myConfig;
657 #define DtRegisterTerrainImplementationFunctionName "DtRegisterTerrainImplementation"