VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
terrainInterface.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 
10 
11 #pragma once
12 
18 
19 #include "vrfutil/asyncJobServer.h"
23 
24 #include <features/feature.h>
25 #include <features/pathFeature.h>
26 #include <features/aStarGraph.h>
27 #include <features/areaFeature.h>
30 
31 #include <fstream>
32 
33 #include <boost/scoped_ptr.hpp>
34 #include <boost/ptr_container/ptr_list.hpp>
35 #include <boost/signals2.hpp>
36 
37 #include <vector>
38 
40 class DtTerrainImplementationDescriptor;
44 class DtVrfCallbackQueue;
46 class Dt3dBoundingVolume;
47 class DtTerrainIndexParameters;
48 class DtEntityType;
49 class DtScenarioExplorer;
50 
51 namespace makArchives
52 {
53  class DtTerrainRecord;
54  class DtGenericTerrainRecord;
55 }
56 
58  makArchives::DtGenericTerrainRecord* record, void* userData);
59 
61 typedef boost::shared_ptr<DtGenericTerrainRecordCallbackList> DtGenericTerrainRecordCallbackListPtr;
62 
65 typedef void(*DtTerrainChangeNotificationCallbackFcn)(const DtExtent& spatExtent, void* userData);
66 
67 typedef boost::signals2::signal<void ()> DtTerrainUnloadSignalType;
68 
100 {
101 public:
103  {
104  VrfSimulationBackEnd = 1,
105  NavGenerationTool = 2
106  };
107 
109 
111  struct OceanLayer
112  {
115  bool present;
116  double seaLevel;
120  };
121 
122 public:
125 
127  virtual ~DtTerrainInterface();
128 
132  virtual bool init(bool createConsoleManager = true);
133 
135  virtual void setConfigFile(const std::string&, bool reload=true);
136 
138  virtual const DtTerrainInterfaceConfig& configOptions() const;
139 
141  virtual void tick();
142 
144  virtual bool isSameTerrain(const DtFilename&) const;
145 
148  {
149  return myTerrainImpl;
150  }
151 
154  virtual void addTerrainImplementation(const DtString& implementationName,
156 
158  virtual void addFeatureLayer(MAKVRinTerra::DtFeatureSet*);
159  virtual void addFeatureLayer(boost::shared_ptr<MAKVRinTerra::DtFeatureSet>);
160 
161  virtual void addGenericTerrainRecordCallback(
162  const DtString& recordType,
164  void* user);
165 
166  virtual void removeGenericTerrainRecordCallback(
167  const DtString& recordType,
169  void* user);
170 
171  virtual void invokeGenericTerrainRecordCallbacks(
173 
175  virtual void addTerrainChangeNotificationCallback(DtTerrainChangeNotificationCallbackFcn fcn,
176  void* user);
177 
179  virtual void removeTerrainChangeNotificationCallback(DtTerrainChangeNotificationCallbackFcn fcn,
180  void* user);
181 
183  virtual bool loadTerrain(const DtString& filename, LoadContext context = VrfSimulationBackEnd);
184 
186  virtual bool unloadTerrain(bool block = true);
187 
192  virtual bool loadModel(const DtFilename& f, const DtEntityType& t = DtEntityType(), bool hasOceanLayer = true);
193 
196  virtual double modelHeightDifferencesFromAppearances(int oldApp, int newApp) const;
197 
199  virtual bool terrainIsLoaded();
202  virtual DtString loadedFilename() const;
203 
204  virtual const Coordinate_System* coordinateSystem() const;
205  virtual Coordinate_System* coordinateSystem();
206 
210  virtual std::auto_ptr<MAKVRinTerra::DtAreaFeatureSet> areas(
211  const std::string& type,
212  const boost::shared_ptr<DtVrfCallbackQueue>& = boost::shared_ptr<DtVrfCallbackQueue>()) const;
213 
216  virtual std::auto_ptr<MAKVRinTerra::DtAreaFeatureSet> areas(
218  const boost::shared_ptr<DtVrfCallbackQueue>& = boost::shared_ptr<DtVrfCallbackQueue>()) const;
219 
220  virtual std::auto_ptr<MAKVRinTerra::DtPathFeatureSet> paths(const std::string& type) const;
221 
224  virtual std::auto_ptr<MAKVRinTerra::DtFeatureSet> features(
225  const std::string& queryName) const;
226 
228  virtual std::auto_ptr<MAKVRinTerra::DtFeatureSet> allFeatures() const;
229 
232  virtual std::auto_ptr<MAKVRinTerra::DtFeatureSet> featuresRaw(
233  const std::string& queryName) const;
234 
236  virtual std::auto_ptr<MAKVRinTerra::DtFeatureSet> allFeaturesRaw() const;
237 
257  virtual double terrainHeightAboveSeaLevel(const DtPoint& databaseLocation,
258  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
259 
260  virtual double terrainHeightAboveSeaLevel(DtTerrainIntersectStatus& status,
261  const DtPoint& databaseLocation,
262  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
264 
291  virtual bool terrainHeightAndIntersection(const DtVector& localLocation,
292  double& height, DtVrfChordIntersectionRecord& record,
294  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
295 
296  virtual bool terrainHeightAndIntersection(DtTerrainIntersectStatus& status,
297  const DtVector& localLocation,
298  double& height, DtVrfChordIntersectionRecord& record,
299  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
301 
305  virtual bool terrainHeightAndIntersectionBelow(const DtVector& localLocation,
306  double& height, DtVrfChordIntersectionRecord& record,
308  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
309 
310  virtual bool terrainHeightAndIntersectionBelow(DtTerrainIntersectStatus& status,
311  const DtVector& localLocation,
312  double& height, DtVrfChordIntersectionRecord& record,
313  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
315 
446  virtual bool terrainHeightUnderWater(const DtVector& databaseLocation,
447  double& groundHeight, DtSurface& groundSurface, DtVector& groundNormal,
448  double& waterHeight, DtSurface::DtMedium &topSurfaceMedium,
449  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) ;
450 
451  virtual bool terrainHeightUnderWater(DtTerrainIntersectStatus& status,
452  const DtVector& databaseLocation,
453  double& groundHeight, DtSurface& groundSurface, DtVector& groundNormal,
454  double& waterHeight, DtSurface::DtMedium &topSurfaceMedium,
457 
504  virtual bool closestIntersection(const DtVector& localLocation,
505  DtPoint& intersectionPoint, bool* dataAvailable = 0,
506  bool overrideBlockingAssert = false, bool doNotAddDefaultRecord = false, int flags = 0) const;
507 
508  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
509  const DtVector& localLocation, DtPoint& intersectionPoint,
510  bool doNotAddDefaultRecord = false,
511  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
513 
536  virtual bool closestIntersection(double lat, double lon,
537  DtPoint& intersectionPoint, bool* dataAvailable = 0,
538  bool overrideBlockingAssert = false, bool doNotAddDefaultRecord = false, int flags = 0) const;
539 
540  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
541  double lat, double lon,
542  DtPoint& intersectionPoint,
543  bool doNotAddDefaultRecord = false,
544  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
546 
576  virtual bool closestIntersection(const DtVector& localLocation,
579  bool* dataAvailable = 0, bool overrideBlockingAssert = false,
580  bool doNotAddDefaultRecord = false, int flags = 0) const;
581 
582  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
583  const DtVector& localLocation,
585  bool doNotAddDefaultRecord = false,
586  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
588 
618  virtual bool closestIntersection(double lat, double lon,
621  DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
622  bool overrideBlockingAssert = false, bool doNotAddDefaultRecord = false, int flags = 0) const;
623 
624  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
625  double lat, double lon,
627  bool doNotAddDefaultRecord = false,
628  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
630 
663  virtual bool closestIntersection(const std::list<DtVector>& localLocationList,
664  DtVrfChordIntersectRecordList& recordList, int& numIntersections,
666  bool* dataAvailable = 0, bool overrideBlockingAssert = false,
667  bool doNotAddDefaultRecord = false, int flags = 0) const;
668 
669  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
670  const std::list<DtVector>& localLocationList,
671  DtVrfChordIntersectRecordList& recordList, int& numIntersections,
672  bool doNotAddDefaultRecord = false,
673  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
675 
706  virtual bool intersect(const DtChord& chord, DtPoint& intersectionPoint,
707  double& intersectionTime, bool* dataAvailable = 0,
708  bool overrideBlockingAssert = false, int flags = 0) const;
709 
710  virtual bool intersect(DtTerrainIntersectStatus& status,
711  const DtChord& chord, DtPoint& intersectionPoint,
712  double& intersectionTime,
713  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
715 
750  virtual bool intersect(const DtChord& chord,
753  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
754 
755  virtual bool intersect(DtTerrainIntersectStatus& status,
756  const DtChord& chord,
758  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
760 
790  virtual bool allIntersectsAlongChord(const DtChord& chord,
793  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
794 
795  virtual bool allIntersectsAlongChord(DtTerrainIntersectStatus& status,
796  const DtChord& chord,
798  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
800 
805  virtual bool allIntersectsAlongChordDebug(const DtChord& chord,
807  bool* dataAvailable = 0,
808  bool overrideBlockingAssert = false, int flags = 0) const;
809 
810  virtual bool allIntersectsAlongChordDebug(DtTerrainIntersectStatus& status,
811  const DtChord& chord,
813  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
815 
850  virtual bool intersectList(const std::list<DtChord>& chordList,
851  DtVrfChordIntersectRecordList& recordList, int& numTerrainIntersections,
853  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
854 
855  virtual bool intersectList(DtTerrainIntersectStatus& status,
856  const std::list<DtChord>& chordList,
857  DtVrfChordIntersectRecordList& recordList, int& numTerrainIntersections,
858  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
860 
875  virtual void preloadTerrainAreas(
876  const DtTerrainPagingGeometryList& preloadGeometry);
877 
883  virtual void forceLoadTerrainAreas(
884  const DtTerrainPagingGeometryList& forceLoadGeometry);
885 
887  virtual bool dataAvailable(const DtTerrainPagingGeometryList& geometry);
888 
894  virtual const DtTerrainCapabilities* terrainCapabilities() const;
895 
899  virtual bool addTerrainPassThroughLayer(const DtString& layerType);
900 
910  virtual void setAssertOnBlockingTerrainCalls(bool assertBlock);
911  virtual bool assertOnBlockingTerrainCalls() const;
913 
916  virtual void setWarnOnBlockingTerrainCalls(bool warnBlock);
917  virtual bool warnOnBlockingTerrainCalls() const;
919 
924  virtual void setIntersectDataLoadExpireTime(const double& expireTime);
925  virtual void expireDataLoadRequestsBeforeTime(const double& currentTime);
926 
937  virtual void trianglesInArea(DtTriangleCallbackFcn func,
938  DtTriangleCallbackFinalizeFcn finalize, DtTerrainProcessPolygonsBox& box, void* usr) const;
939 
946  virtual void trianglesInArea(DtTriangleOutputInterface& func, DtTerrainProcessPolygonsBox& box) const;
947 
950  virtual DtTerrainInformation* terrainInformation();
951 
955  virtual boost::shared_ptr<DtAsyncJobMapEntry> makePathAsync(
956  const DtPoint& localStart,
957  const DtPoint& localDestination,
958  const std::string& type,
959  const double& maxSearchRadius,
960  const double& startProximityThreshold,
961  const DtAStarGraph::DtWeightFactorsList& weightFactors
962  = DtAStarGraph::DtWeightFactorsList());
963 
977  virtual DtAStarGraph::Path makePath(
978  const DtPoint& localStart,
979  const DtPoint& localDestination,
980  const std::string& type,
981  const double& maxSearchRadius,
982  const double& startProximityThreshold,
983  boost::function<bool ()> cancelCheck,
984  const DtAStarGraph::DtWeightFactorsList& weightFactors
985  = DtAStarGraph::DtWeightFactorsList()) const;
986 
989  virtual bool onPathFeature(
990  const DtPoint& location, const DtString& type, double buffer = 0.5);
991 
993  virtual DtAStarGraph::Ptr pathFinder(const std::string&) const;
994 
998  virtual boost::shared_ptr<DtAsyncJobMapEntry> addAsyncJob(DtAsyncJob* job);
999 
1001  MAKVRinTerra::DtProj::CPtr localProj() const;
1002 
1003  MAKVRinTerra::DtFeaturesDebugger& debugger() const;
1004 
1005  MAKVRinTerra::DtQuery findQuery(const std::string& name) const;
1006 
1007  const double topoDistance(const DtPoint& start, const DtPoint& end,
1008  const MAKVRinTerra::DtProj& localProj);
1009 
1019  MAKVRinTerra::DtClosestPathFeatureFinder closestFeatureOnNetwork(
1020  const std::string& type, const DtPoint& startingLocation,
1021  const double& searchRadius, bool* dataAvailable = NULL);
1022 
1023  void breakUpChord(const MAKVRinTerra::DtProj&, const DtChord& chord,
1024  std::vector<DtChord>& chords) const;
1025 
1026  void breakUpChord(const DtChord& chord, std::vector<DtChord>& chords) const;
1027 
1029  virtual DtTerrainGeometryHandle* createEntityGeometry(const DtFilename& file);
1030 
1033  virtual DtTerrainGeometryHandle* createEntityGeometry(const DtEntityType& file);
1034 
1036  virtual void loadVisuals(const DtScenarioExplorer&);
1037 
1039  virtual void clearCache();
1040 
1047  virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(
1048  double time,
1049  const std::map<DtString, DtString>& keyValueChanges,
1050  const DtVector& centerLocation, double radius);
1051 
1058  virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(
1059  double time,
1060  const std::map<DtString, DtString>& keyValueChanges,
1061  const std::list<DtVector>& vertices, double width);
1062 
1068  virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(
1069  double time,
1070  const std::map<DtString, DtString>& keyValueChanges,
1071  const std::list<DtVector>& vertices);
1072 
1078  virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(
1079  double time,
1081 
1094  virtual void dynamicTerrainFeaturesInArea(
1095  const DtVector& centerLocation, double radius,
1096  std::list<DtRwDynamicTerrainInformation>& dynamicTerrainInfo, bool* dataAvailable = NULL,
1097  const DtString& filterKey = DtString::nullString());
1098 
1111  virtual void dynamicTerrainFeaturesInArea(
1112  const std::list<DtVector>& vertices, double width,
1113  std::list<DtRwDynamicTerrainInformation>& dynamicTerrainInfo, bool* dataAvailable = NULL,
1114  const DtString& filterKey = DtString::nullString());
1115 
1127  virtual void dynamicTerrainFeaturesInArea(
1128  const std::list<DtVector>& vertices,
1129  std::list<DtRwDynamicTerrainInformation>& dynamicTerrainInfo, bool* dataAvailable = NULL,
1130  const DtString& filterKey = DtString::nullString());
1131 
1139  virtual bool extractDynamicTerrainFeatureInformation(const makVrv::DtDynamicTerrainFeature& feature,
1140  DtRwDynamicTerrainInformation& dynamicTerrainInfo, const DtString& filterKey = DtString::nullString()) const;
1141 
1145  virtual DtDynamicTerrainQueryHandle queryDynamicTerrainFeatures(
1146  const DtDynamicTerrainQueryCallback& callback,
1147  makVrv::DtDynamicTerrainGeometry* geometry = 0,
1148  bool useOriginalGeometry = false);
1149 
1150  virtual void queryCurrentDynamicTerrainFeatures(
1151  const DtDynamicTerrainQueryCallback& callback,
1152  makVrv::DtDynamicTerrainGeometry* geometry = 0,
1153  bool useOriginalGeometry = false);
1154 
1157  virtual void cacheTerrainArea(int requestId,
1158  unsigned minLOD, unsigned maxLOD, const DtExtent& cacheArea,
1159  DtCacheProgressCallbackFunction fcn = 0, void* usr = 0);
1160 
1162  virtual void cancelCacheTerrainArea(int requestId);
1163 
1168  virtual void writeTerrainIndex(const DtString& name = DtString());
1169 
1171  virtual bool oceanLayerPresent() const;
1172 
1174  virtual void setOceanLayerPresent(bool b);
1175 
1187  virtual bool nonPolygonalWaterHeight(
1188  const DtChord& localLocation,
1189  double& height) const;
1190 
1192  virtual void setNonPolygonalWaterHeight(double d);
1193 
1197  virtual double defaultWaterDepth(const DtVector& localLocation) const;
1198 
1200  virtual void setDefaultWaterDepth(double);
1201 
1205  virtual double defaultSurfaceElevation(const DtVector& localLocation) const;
1206 
1222  virtual DtSurface::DtMedium mediumForUnspecPolygonsUnderWater() const;
1223 
1225  virtual void setMediumForUnspecPolygonsUnderWater(DtSurface::DtMedium m);
1226 
1238  virtual double landAboveWaterMinimumSeparation() const;
1239 
1241  virtual void setLandAboveWaterMinimumSeparation(double);
1242 
1244  virtual void setAccumulateIntersections(bool value);
1245 
1247  virtual bool accumulateIntersections() const;
1248 
1250  virtual void getIntersections(std::vector<DtChord>& accumulatedChords, std::vector<DtPoint>& accumulatedIntersections) const;
1251 
1252  virtual boost::signals2::connection connectToUnloadTerrain(const DtTerrainUnloadSignalType::slot_type & slotIn);
1253 
1254 protected:
1257  void insertNonPolyWaterIntoIntersectionList(
1258  DtVrfChordIntersectionRecord& waterInterx,
1259  DtVrfChordIntersectRecordList& intrxList) const;
1260 
1268  virtual DtVrfChordIntersectionRecord blankSurfaceIntersectionRecord(
1269  const DtVector& localLocation, const double height) const;
1270 
1275  virtual bool nonPolygonalWaterIntersect(
1276  const DtChord& chord,
1277  DtVrfChordIntersectRecordList& waterRecords,
1279 
1280  typedef std::map<DtString, DtGenericTerrainRecordCallbackListPtr >
1282 
1286  const DtString& recordType);
1287 
1289  virtual void accumulateIntersections(const DtChord& chord, const DtVrfChordIntersectionRecord& record) const;
1290  virtual void accumulateIntersections(const DtChord& chord, const DtVrfChordIntersectRecordList& intList) const;
1291  virtual void accumulateIntersections(const std::list<DtChord>& chordList, const DtVrfChordIntersectRecordList& recordList) const;
1292 
1293 protected:
1300 
1301  typedef boost::ptr_list<MAKVRinTerra::DtFeatureSet> FeatureSetList;
1303 
1305 
1309 
1315 
1317 
1320 
1322 
1324 
1327 
1329 
1330  std::ofstream myDebugOutputFile;
1331  tbb::tick_count myLastDebugOutputTick;
1332 
1334 
1335 
1337 
1338  //DtTerrainChangeNotificationCallbackList myTerrainChangeNotificationCallbackList;
1339 
1342 
1343  std::vector<DtChord> myAccumulatedChords;
1344  std::vector<DtPoint> myAccumulatedIntersectionPoints;
1345 
1347 };
1348 
1349 #define DtRegisterTerrainImplementationFunctionName "DtRegisterTerrainImplementation"
1350 
1354 
1355 
1356 #define DtDeregisterTerrainImplementationFunctionName "DtDeregisterTerrainImplementation"
1357 
Represents a set of DtFeature objects or others which conform to the DtFeature concept.
Definition: featureSet.h:101
DtString myLoadedFilename
The last filename that was passed to loadTerrain()
Definition: terrainInterface.h:1313
tbb::tick_count myLastDebugOutputTick
Definition: terrainInterface.h:1331
std::vector< DtPoint > myAccumulatedIntersectionPoints
Definition: terrainInterface.h:1344
boost::function< void(const makVrv::DtDynamicTerrainFeature &)> DtDynamicTerrainQueryCallback
Definition: terrainImplementation.h:137
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
Class DtTerrainInterfaceConfig is a readable-writable class holding terrain interface configuration o...
Definition: terrainInterfaceConfig.h:32
This is the abstract base class for all terrain implementations. A terrain implementation is used by ...
Definition: terrainImplementation.h:170
DtCallbackList< makArchives::DtGenericTerrainRecord * > DtGenericTerrainRecordCallbackList
Definition: terrainInterface.h:60
void(* DtDeregisterTerrainImplementationLibFcn)()
This function signature is used for terrain implementation shared libraries that deregister themselve...
Definition: terrainInterface.h:1360
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords. This is useful for followi...
Definition: vrfChordIntersectRecordList.h:31
An asynchronous job that can be added to and executed by a job server. Since this class derives from ...
Definition: asyncJob.h:48
DtGenericTerrainRecords allow the VR-Forces terrainInterface library to instantiate and configure the...
Definition: DtGenericTerrainRecord.h:34
void(* DtGenericTerrainRecordCallbackFunction)(makArchives::DtGenericTerrainRecord *record, void *userData)
Definition: terrainInterface.h:57
std::list< std::pair< DtPagingMetaDataPtr, DtTerrainPagingGeometryPtr > > DtTerrainPagingGeometryList
Definition: terrainPagingGeometry.h:104
bool present
False unless there is ocean layer data in the .mtf file. If false, the sea level and depth should not...
Definition: terrainInterface.h:115
double landAboveWaterMinimumSeparation
Definition: terrainInterface.h:119
Represents (possibly infinite) area of space.
Definition: DtDynamicTerrainGeometry.h:20
std::vector< DtChord > myAccumulatedChords
Definition: terrainInterface.h:1343
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
Allows manipulating a terrain object. Returned by functions which create terrain objects.
Definition: terrainImplementation.h:141
DtGenericTerrainRecordCallbackListMap myGenericTerrainRecordCallbacklists
Definition: terrainInterface.h:1336
This class manages a set of DtTerrainImplementation subclasses by maintaining a factory for creating ...
Definition: terrainImplementationManager.h:30
double defaultSeaDepth
Global, implicit sea surface elevation.
Definition: terrainInterface.h:117
boost::shared_ptr< DtGenericTerrainRecordCallbackList > DtGenericTerrainRecordCallbackListPtr
Definition: terrainInterface.h:61
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:32
This is a class which maintains a list of string command names and the callback functions that are to...
Definition: consoleCommandManager.h:56
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
MAKVRinTerra::DtAStarGraph DtAStarGraph
Definition: terrainInterface.h:108
Information on what dynamic changes are possible for a particular geometry feature in the terrain...
Definition: rwDynamicTerrainInformation.h:23
DtTerrainImplementationManager * myTerrainImplManager
Definition: terrainInterface.h:1310
Definition: surface.h:179
Definition: aStarGraph.h:79
static double theTerrainPagingMaxHeight
Definition: terrainInterface.h:1321
DtTerrainIntersectOptions Passed to terrain intersect functions to modify how intersect acts...
Definition: terrainIntersectOptions.h:15
bool myTerrainIsLoaded
Status publisher needs to keep track of when terrain is loaded and unloaded.
Definition: terrainInterface.h:1308
DtConsoleCommandManager * myConsoleCommandManager
Definition: terrainInterface.h:1311
Definition: coordSystem.h:54
bool(* DtRegisterTerrainImplementationLibFcn)(DtTerrainInterface *)
This function signature is used for terrain implementation shared libraries that register themselves ...
Definition: terrainInterface.h:1353
Feature system config file.
Record of a VR-Vantage terrain Contains: Terrain coordinate system Terrain patches Feature layers Ter...
Definition: DtTerrainRecord.h:29
DtString myUnresolvedFilename
Definition: terrainInterface.h:1314
Represents some coordinate system. The terms &quot;coordinate system&quot;, &quot;projection&quot;, &quot;spatial reference&quot;...
Definition: proj.h:44
Represents a set of characeters a DtFeature object can have. DtQuery objects are the way to communica...
Definition: query.h:38
void(* DtTerrainChangeNotificationCallbackFcn)(const DtExtent &spatExtent, void *userData)
Definition: terrainImplementation.h:48
double seaLevel
Definition: terrainInterface.h:116
#define DT_DLL_terrainInterface
This file is used to determine how to build.
Definition: terrainInterfaceDefines.h:25
DtFilename myTerrainOptionsFilename
Default config loaded in init Loading terrains will have a copy of this and may set their own specifi...
Definition: terrainInterface.h:1298
This class holds parameters which define the capabilities of the current terrain. The terrain impleme...
Definition: terrainCapabilities.h:28
Definition: noArgumentCallbackList.h:91
boost::shared_ptr< const DtProj > CPtr
Definition: proj.h:48
DtTerrainInterface allows access to common terrain calls without having to know the terrain implement...
Definition: terrainInterface.h:99
DtTerrainImplementation * terrainImplementation() const
Returns the current terrain implementation.
Definition: terrainInterface.h:147
DtTerrainImplementationFactory::DtCreatorFcn DtTerrainImplementationCreatorFcn
Definition: terrainImplementation.h:398
DtTerrainUnloadSignalType myUnloadTerrainSignal
Definition: terrainInterface.h:1346
Interface which abstracts the concept of a individually identifiable &quot;thing&quot; in the terrain...
Definition: DtDynamicTerrainFeature.h:83
LoadContext
Definition: terrainInterface.h:102
makArchives::DtTerrainRecord * myTerrainRecord
Definition: terrainInterface.h:1333
OceanLayer myGlobalOceanLayer
Definition: terrainInterface.h:1328
Definition: pathFeature.h:106
Definition: vrfChordIntersectionRecord.h:19
Definition: intersectionRecord.h:60
DtTerrainImplementation * myTerrainImpl
Definition: terrainInterface.h:1304
bool myAccumulateIntersections
check if we need to accumulate terrain intersections results for debug purpose
Definition: terrainInterface.h:1341
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtTerrainInterfaceConfig myFileConfig
Definition: terrainInterface.h:1299
MAKVRinTerra::DtProj::CPtr myProjObject
Definition: terrainInterface.h:1323
std::map< DtString, DtGenericTerrainRecordCallbackListPtr > DtGenericTerrainRecordCallbackListMap
Definition: terrainInterface.h:1281
void(* DtTriangleCallbackFcn)(DtTerrainTriangleStruct &triangle, void *usr)
Definition: terrainProcessPolygonsBox.h:109
boost::ptr_list< MAKVRinTerra::DtFeatureSet > FeatureSetList
Definition: terrainInterface.h:1301
DtAsyncJobServer myAsyncJobServer
Manages asynchronous path planning tasks.
Definition: terrainInterface.h:1326
Command which can be given to the dynamic terrain system to perform some change. This class is a simp...
Definition: DtDynamicTerrainChange.h:42
DtSurface::DtMedium defaultSurfaceMedium
Default depth. Positive, m below surface.
Definition: terrainInterface.h:118
void(* DtCacheProgressCallbackFunction)(int requestId, int current, bool completed, double elapsedTime, void *usr)
Callback for terrain caching.
Definition: terrainImplementation.h:46
Resource handle for a query which has been added to the system. Returned from DtTerrainImplementation...
Definition: terrainImplementation.h:106
Interface for getting terrain triangle data out of DtTerrainInterface::trianglesInArea. This object should always be created on the stack.
Definition: terrainProcessPolygonsBox.h:113
Manages async job objects.
Definition: asyncJobServer.h:75
DtMedium
Definition: surface.h:185
std::ofstream myDebugOutputFile
Definition: terrainInterface.h:1330
boost::signals2::signal< void()> DtTerrainUnloadSignalType
Definition: terrainInterface.h:67
Definition: featuresDebugger.h:33
Global ocean layer info; used in conjunction with the polygon data.
Definition: terrainInterface.h:111
Resource handle for a dynamic terrain change request which has been added to the system. Returned from DtTerrainImplementation::addDynamicTerrainChangeRequest(). Allows caller to manage request.
Definition: terrainImplementation.h:71
double myLastFileTime
Needed in case file is saved with same name and then reloaded.
Definition: terrainInterface.h:1319
TODO Put this in the makTerrainLib.
Definition: terrainInformation.h:17
Configuration object for processing areas.
Definition: areaFeature.h:47
Definition: point.h:34
DtTerrainIntersectStatus Contains information about result of terrain intersection.
Definition: terrainIntersectStatus.h:16
void(* DtTriangleCallbackFinalizeFcn)(int status, void *usr)
Definition: terrainProcessPolygonsBox.h:108
DtTerrainPagingGeometryList myForceLoadAreas
Definition: terrainInterface.h:1316
DtIntersectionType
Definition: intersectionRecord.h:41
Represents an area query which can be used to extract triangles from DtTerrainInterface. The box points are in local but the box is always projected against the local topo at the center point of the box.
Definition: terrainProcessPolygonsBox.h:39
FeatureSetList myFeatureLayers
Definition: terrainInterface.h:1302

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)