VR-Forces 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) 2024 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>
31 
32 #include <fstream>
33 
34 #include <boost/ptr_container/ptr_list.hpp>
35 #include <boost/signals2.hpp>
36 
37 #include <vector>
38 
39 class DtTerrainImplementationDescriptor;
43 class DtVrfCallbackQueue;
44 class Dt3dBoundingVolume;
45 class DtTerrainIndexParameters;
46 class DtEntityType;
47 class DtScenarioExplorer;
48 
49 namespace makArchives
50 {
51  class DtTerrainRecord;
52  class DtGenericTerrainRecord;
53 }
54 
56  makArchives::DtGenericTerrainRecord* record, void* userData);
57 
59 typedef std::shared_ptr<DtGenericTerrainRecordCallbackList> DtGenericTerrainRecordCallbackListPtr;
60 
61 typedef boost::signals2::signal<void ()> DtTerrainUnloadSignalType;
62 
94 {
95 public:
97  {
98  VrfSimulationBackEnd = 1,
99  NavGenerationTool = 2
100  };
101 
103 
105  struct OceanLayer
106  {
109  bool present;
110  double seaLevel;
114  };
115 
116 public:
119 
121  virtual ~DtTerrainInterface();
122 
126  virtual bool init(bool createConsoleManager = true, unsigned maxThreads = 0);
127 
129  virtual void setConfigFile(const std::string&, bool reload=true);
130 
132  virtual const DtTerrainInterfaceConfig& configOptions() const;
133 
135  virtual void tick();
136 
138  virtual bool isSameTerrain(const DtFilename&) const;
139 
142  {
143  return myTerrainImpl;
144  }
145 
148  virtual void addTerrainImplementation(const DtString& implementationName,
150 
152  virtual void addFeatureLayer(MAKVRinTerra::DtFeatureSet*);
153  virtual void addFeatureLayer(std::shared_ptr<MAKVRinTerra::DtFeatureSet>);
154 
155  virtual void addGenericTerrainRecordCallback(
156  const DtString& recordType,
158  void* user);
159 
160  virtual void removeGenericTerrainRecordCallback(
161  const DtString& recordType,
163  void* user);
164 
165  virtual void invokeGenericTerrainRecordCallbacks(
167 
169  virtual void addTerrainChangeNotificationCallback(DtTerrainChangeNotificationCallbackFcn fcn,
170  void* user);
171 
173  virtual void removeTerrainChangeNotificationCallback(DtTerrainChangeNotificationCallbackFcn fcn,
174  void* user);
175 
177  virtual void cancelAllJobsAndWait();
178 
180  virtual bool loadTerrain(const DtString& filename, LoadContext context = VrfSimulationBackEnd);
181 
183  virtual bool unloadTerrain(bool block = true);
184 
189  virtual bool loadModel(const DtFilename& f, const DtEntityType& t = DtEntityType(), bool hasOceanLayer = true);
190 
193  virtual double modelHeightDifferencesFromAppearances(int oldApp, int newApp) const;
194 
196  virtual bool terrainIsLoaded();
199  virtual DtString loadedFilename() const;
200 
201  virtual const Coordinate_System* coordinateSystem() const;
202  virtual Coordinate_System* coordinateSystem();
203 
207  virtual std::unique_ptr<MAKVRinTerra::DtAreaFeatureSet> areas(
208  const std::string& type,
209  const std::shared_ptr<DtVrfCallbackQueue>& = std::shared_ptr<DtVrfCallbackQueue>()) const;
210 
213  virtual std::unique_ptr<MAKVRinTerra::DtAreaFeatureSet> areas(
215  const std::shared_ptr<DtVrfCallbackQueue>& = std::shared_ptr<DtVrfCallbackQueue>()) const;
216 
217  virtual std::unique_ptr<MAKVRinTerra::DtPathFeatureSet> paths(const std::string& type) const;
218 
221  virtual std::unique_ptr<MAKVRinTerra::DtFeatureSet> features(
222  const std::string& queryName) const;
223 
225  virtual std::unique_ptr<MAKVRinTerra::DtFeatureSet> allFeatures() const;
226 
229  virtual std::unique_ptr<MAKVRinTerra::DtFeatureSet> featuresRaw(
230  const std::string& queryName) const;
231 
233  virtual std::unique_ptr<MAKVRinTerra::DtFeatureSet> allFeaturesRaw() const;
234 
236  virtual bool hasAerodromes() const;
237 
239  virtual MAKVRinTerra::DtAerodromeLoader::AerodromeData aerodromeData(const std::string& airportCode) const;
240 
242  virtual std::vector<MAKVRinTerra::DtAerodromeLoader::AerodromeData> aerodromesWithinRange(const DtVector& center, double range) const;
243 
245  virtual std::vector<MAKVRinTerra::DtAerodromeLoader::AerodromeData> aerodromesInArea(const std::vector<DtVector>&) const;
246 
248  virtual std::vector<MAKVRinTerra::DtAerodromeLoader::AerodromeData> aerodromesAtLocation(const DtVector& location) const;
249 
251  virtual std::vector<MAKVRinTerra::DtAerodromeLoader::RunwayData> runwayAtLocation(const DtVector& location) const;
252 
272  virtual double terrainHeightAboveSeaLevel(const DtPoint& databaseLocation,
273  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
274 
275  virtual double terrainHeightAboveSeaLevel(DtTerrainIntersectStatus& status,
276  const DtPoint& databaseLocation,
277  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
279 
306  virtual bool terrainHeightAndIntersection(const DtVector& localLocation,
307  double& height, DtVrfChordIntersectionRecord& record,
309  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
310 
311  virtual bool terrainHeightAndIntersection(DtTerrainIntersectStatus& status,
312  const DtVector& localLocation,
313  double& height, DtVrfChordIntersectionRecord& record,
314  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
316 
320  virtual bool terrainHeightAndIntersectionBelow(const DtVector& localLocation,
321  double& height, DtVrfChordIntersectionRecord& record,
323  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
324 
325  virtual bool terrainHeightAndIntersectionBelow(DtTerrainIntersectStatus& status,
326  const DtVector& localLocation,
327  double& height, DtVrfChordIntersectionRecord& record,
328  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
330 
461  virtual bool terrainHeightUnderWater(const DtVector& databaseLocation,
462  double& groundHeight, DtSurface& groundSurface, DtVector& groundNormal,
463  double& waterHeight, DtSurface::DtMedium &topSurfaceMedium,
464  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) ;
465 
466  virtual bool terrainHeightUnderWater(DtTerrainIntersectStatus& status,
467  const DtVector& databaseLocation,
468  double& groundHeight, DtSurface& groundSurface, DtVector& groundNormal,
469  double& waterHeight, DtSurface::DtMedium &topSurfaceMedium,
472 
519  virtual bool closestIntersection(const DtVector& localLocation,
520  DtPoint& intersectionPoint, bool* dataAvailable = 0,
521  bool overrideBlockingAssert = false, bool doNotAddDefaultRecord = false, int flags = 0) const;
522 
523  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
524  const DtVector& localLocation, DtPoint& intersectionPoint,
525  bool doNotAddDefaultRecord = false,
526  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
528 
551  virtual bool closestIntersection(double lat, double lon,
552  DtPoint& intersectionPoint, bool* dataAvailable = 0,
553  bool overrideBlockingAssert = false, bool doNotAddDefaultRecord = false, int flags = 0) const;
554 
555  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
556  double lat, double lon,
557  DtPoint& intersectionPoint,
558  bool doNotAddDefaultRecord = false,
559  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
561 
591  virtual bool closestIntersection(const DtVector& localLocation,
594  bool* dataAvailable = 0, bool overrideBlockingAssert = false,
595  bool doNotAddDefaultRecord = false, int flags = 0) const;
596 
597  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
598  const DtVector& localLocation,
600  bool doNotAddDefaultRecord = false,
601  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
603 
633  virtual bool closestIntersection(double lat, double lon,
636  DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
637  bool overrideBlockingAssert = false, bool doNotAddDefaultRecord = false, int flags = 0) const;
638 
639  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
640  double lat, double lon,
642  bool doNotAddDefaultRecord = false,
643  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
645 
678  virtual bool closestIntersection(const std::list<DtVector>& localLocationList,
679  DtVrfChordIntersectRecordList& recordList, int& numIntersections,
681  bool* dataAvailable = 0, bool overrideBlockingAssert = false,
682  bool doNotAddDefaultRecord = false, int flags = 0) const;
683 
684  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
685  const std::list<DtVector>& localLocationList,
686  DtVrfChordIntersectRecordList& recordList, int& numIntersections,
687  bool doNotAddDefaultRecord = false,
688  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
690 
721  virtual bool intersect(const DtChord& chord, DtPoint& intersectionPoint,
722  double& intersectionTime, bool* dataAvailable = 0,
723  bool overrideBlockingAssert = false, int flags = 0) const;
724 
725  virtual bool intersect(DtTerrainIntersectStatus& status,
726  const DtChord& chord, DtPoint& intersectionPoint,
727  double& intersectionTime,
728  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
730 
765  virtual bool intersect(const DtChord& chord,
768  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
769 
770  virtual bool intersect(DtTerrainIntersectStatus& status,
771  const DtChord& chord,
773  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
775 
805  virtual bool allIntersectsAlongChord(const DtChord& chord,
808  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
809 
810  virtual bool allIntersectsAlongChord(DtTerrainIntersectStatus& status,
811  const DtChord& chord,
813  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
815 
820  virtual bool allIntersectsAlongChordDebug(const DtChord& chord,
822  bool* dataAvailable = 0,
823  bool overrideBlockingAssert = false, int flags = 0) const;
824 
825  virtual bool allIntersectsAlongChordDebug(DtTerrainIntersectStatus& status,
826  const DtChord& chord,
828  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
830 
865  virtual bool intersectList(const std::list<DtChord>& chordList,
866  DtVrfChordIntersectRecordList& recordList, int& numTerrainIntersections,
868  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
869 
870  virtual bool intersectList(DtTerrainIntersectStatus& status,
871  const std::list<DtChord>& chordList,
872  DtVrfChordIntersectRecordList& recordList, int& numTerrainIntersections,
873  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
875 
890  virtual void preloadTerrainAreas(
891  const DtTerrainPagingGeometryList& preloadGeometry);
892 
898  virtual void forceLoadTerrainAreas(
899  const DtTerrainPagingGeometryList& forceLoadGeometry);
900 
902  virtual bool dataAvailable(const DtTerrainPagingGeometryList& geometry);
903 
909  virtual const DtTerrainCapabilities* terrainCapabilities() const;
910 
914  virtual bool addTerrainPassThroughLayer(const DtString& layerType);
915 
925  virtual void setAssertOnBlockingTerrainCalls(bool assertBlock);
926  virtual bool assertOnBlockingTerrainCalls() const;
928 
931  virtual void setWarnOnBlockingTerrainCalls(bool warnBlock);
932  virtual bool warnOnBlockingTerrainCalls() const;
934 
939  virtual void setIntersectDataLoadExpireTime(const double& expireTime);
940  virtual void expireDataLoadRequestsBeforeTime(const double& currentTime);
941 
954  virtual void trianglesInArea(DtTriangleCallbackFcn func,
956  DtTerrainCategoryMask terrainCategoryMask, void* usr) const;
957 
966  virtual void trianglesInArea(DtTriangleOutputInterface& func, DtTerrainProcessPolygonsBox& box,
968 
973  virtual void trianglesForGeometry(DtTriangleOutputInterface& outputIf, DtTerrainGeometryId geometryId) const;
974 
977  virtual DtTerrainInformation* terrainInformation();
978 
982  virtual std::shared_ptr<DtAsyncJobMapEntry> makePathAsync(
983  const DtPoint& localStart
984  , const DtPoint& localDestination
985  , const std::string& type
986  , const double& maxSearchRadius
987  , const double& startProximityThreshold
988  , const DtAStarGraph::DtWeightFactorsList& weightFactors = DtAStarGraph::DtWeightFactorsList()
989  , const double& offRoadPathWeight = 10.0);
990 
1004  virtual DtAStarGraph::Path makePath(
1005  const DtPoint& localStart,
1006  const DtPoint& localDestination,
1007  const std::string& type,
1008  const double& maxSearchRadius,
1009  const double& startProximityThreshold,
1010  boost::function<bool ()> cancelCheck,
1011  const DtAStarGraph::DtWeightFactorsList& weightFactors
1012  = DtAStarGraph::DtWeightFactorsList()) const;
1013 
1016  virtual bool onPathFeature(
1017  const DtPoint& location, const DtString& type, double buffer = 0.5);
1018 
1020  virtual DtAStarGraph::Ptr pathFinder(const std::string&) const;
1021 
1025  virtual std::shared_ptr<DtAsyncJobMapEntry> addAsyncJob(DtAsyncJob* job);
1026 
1028  MAKVRinTerra::DtProj::CPtr localProj() const;
1029 
1030  MAKVRinTerra::DtFeaturesDebugger& debugger() const;
1031 
1032  MAKVRinTerra::DtQuery findQuery(const std::string& name) const;
1033 
1034  const double topoDistance(const DtPoint& start, const DtPoint& end,
1035  const MAKVRinTerra::DtProj& localProj);
1036 
1046  MAKVRinTerra::DtClosestPathFeatureFinder closestFeatureOnNetwork(
1047  const std::string& type, const DtPoint& startingLocation,
1048  const double& searchRadius, bool* dataAvailable = NULL);
1049 
1050  void breakUpChord(const MAKVRinTerra::DtProj&, const DtChord& chord,
1051  std::vector<DtChord>& chords) const;
1052 
1053  void breakUpChord(const DtChord& chord, std::vector<DtChord>& chords) const;
1054 
1056  virtual DtTerrainGeometryHandle* createEntityGeometry(const DtFilename& file);
1057 
1060  virtual DtTerrainGeometryHandle* createEntityGeometry(const DtEntityType& file);
1061 
1063  virtual void loadVisuals(const DtScenarioExplorer&);
1064 
1066  virtual void clearCache();
1067 
1074  virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(
1075  double time,
1076  const std::map<DtString, DtString>& keyValueChanges,
1077  const DtVector& centerLocation, double radius);
1078 
1085  virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(
1086  double time,
1087  const std::map<DtString, DtString>& keyValueChanges,
1088  const std::vector<DtVector>& vertices, double width);
1089 
1095  virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(
1096  double time,
1097  const std::map<DtString, DtString>& keyValueChanges,
1098  const std::list<DtVector>& vertices);
1099 
1105  virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(
1106  double time,
1108 
1121  virtual void dynamicTerrainFeaturesInArea(
1122  const DtVector& centerLocation, double radius,
1123  std::list<DtRwDynamicTerrainInformation>& dynamicTerrainInfo, bool* dataAvailable = NULL,
1124  const DtString& filterKey = DtString::nullString());
1125 
1138  virtual void dynamicTerrainFeaturesInArea(
1139  const std::list<DtVector>& vertices, double width,
1140  std::list<DtRwDynamicTerrainInformation>& dynamicTerrainInfo, bool* dataAvailable = NULL,
1141  const DtString& filterKey = DtString::nullString());
1142 
1154  virtual void dynamicTerrainFeaturesInArea(
1155  const std::list<DtVector>& vertices,
1156  std::list<DtRwDynamicTerrainInformation>& dynamicTerrainInfo, bool* dataAvailable = NULL,
1157  const DtString& filterKey = DtString::nullString());
1158 
1166  virtual bool extractDynamicTerrainFeatureInformation(const makVrv::DtDynamicTerrainFeature& feature,
1167  DtRwDynamicTerrainInformation& dynamicTerrainInfo, const DtString& filterKey = DtString::nullString()) const;
1168 
1172  virtual DtDynamicTerrainQueryHandle queryDynamicTerrainFeatures(
1173  const DtDynamicTerrainQueryCallback& callback,
1174  makVrv::DtDynamicTerrainGeometry* geometry = 0,
1175  bool useOriginalGeometry = false);
1176 
1177  virtual void queryCurrentDynamicTerrainFeatures(
1178  const DtDynamicTerrainQueryCallback& callback,
1179  makVrv::DtDynamicTerrainGeometry* geometry = 0,
1180  bool useOriginalGeometry = false);
1181 
1184  virtual void cacheTerrainArea(int requestId,
1185  unsigned minLOD, unsigned maxLOD, const DtExtent& cacheArea,
1186  DtCacheProgressCallbackFunction fcn = 0, void* usr = 0);
1187 
1189  virtual void cancelCacheTerrainArea(int requestId);
1190 
1195  virtual void writeTerrainIndex(const DtString& name = DtString());
1196 
1198  virtual bool oceanLayerPresent() const;
1199 
1201  virtual void setOceanLayerPresent(bool b);
1202 
1214  virtual bool nonPolygonalWaterHeight(
1215  const DtChord& localLocation,
1216  double& height) const;
1217 
1219  virtual void setNonPolygonalWaterHeight(double d);
1220 
1224  virtual double defaultWaterDepth(const DtVector& localLocation) const;
1225 
1227  virtual void setDefaultWaterDepth(double);
1228 
1232  virtual double defaultSurfaceElevation(const DtVector& localLocation) const;
1233 
1249  virtual DtSurface::DtMedium mediumForUnspecPolygonsUnderWater() const;
1250 
1252  virtual void setMediumForUnspecPolygonsUnderWater(DtSurface::DtMedium m);
1253 
1265  virtual double landAboveWaterMinimumSeparation() const;
1266 
1268  virtual void setLandAboveWaterMinimumSeparation(double);
1269 
1271  virtual void setAccumulateIntersections(bool value);
1272 
1274  virtual bool accumulateIntersections() const;
1275 
1277  virtual void getIntersections(std::vector<DtChord>& accumulatedChords, std::vector<DtPoint>& accumulatedIntersections) const;
1278 
1279  virtual boost::signals2::connection connectToUnloadTerrain(const DtTerrainUnloadSignalType::slot_type & slotIn);
1280 
1282  boost::signals2::signal<void(bool)> signal_terrainPaging;
1283 
1285  boost::signals2::signal<void(bool)> signal_jobQueueStatusChanged;
1286 
1288  void setBlockOnAsynchronousOperations(bool shouldBlock);
1289 
1290 protected:
1293  void insertNonPolyWaterIntoIntersectionList(
1294  DtVrfChordIntersectionRecord& waterInterx,
1295  DtVrfChordIntersectRecordList& intrxList) const;
1296 
1304  virtual DtVrfChordIntersectionRecord blankSurfaceIntersectionRecord(
1305  const DtVector& localLocation, const double height) const;
1306 
1311  virtual bool nonPolygonalWaterIntersect(
1312  const DtChord& chord,
1313  DtVrfChordIntersectRecordList& waterRecords,
1315 
1316  typedef std::map<DtString, DtGenericTerrainRecordCallbackListPtr >
1318 
1322  const DtString& recordType);
1323 
1325  virtual void accumulateIntersections(const DtChord& chord, const DtVrfChordIntersectionRecord& record) const;
1326  virtual void accumulateIntersections(const DtChord& chord, const DtVrfChordIntersectRecordList& intList) const;
1327  virtual void accumulateIntersections(const std::list<DtChord>& chordList, const DtVrfChordIntersectRecordList& recordList) const;
1328 
1329 protected:
1331  virtual void terrainPaging(bool);
1332 
1333 protected:
1340 
1341  typedef boost::ptr_list<MAKVRinTerra::DtFeatureSet> FeatureSetList;
1343 
1345 
1349 
1355 
1357 
1360 
1362 
1364 
1367 
1369 
1370  std::ofstream myDebugOutputFile;
1371  tbb::tick_count myLastDebugOutputTick;
1372 
1374 
1375 
1377 
1378  //DtTerrainChangeNotificationCallbackList myTerrainChangeNotificationCallbackList;
1379 
1382 
1383  std::vector<DtChord> myAccumulatedChords;
1384  std::vector<DtPoint> myAccumulatedIntersectionPoints;
1385 
1387  bool myActive = false;
1388 
1390 
1391 };
1392 
1393 #define DtRegisterTerrainImplementationFunctionName "DtRegisterTerrainImplementation"
1394 
1398 
1399 
1400 #define DtDeregisterTerrainImplementationFunctionName "DtDeregisterTerrainImplementation"
1401 
Represents a set of DtFeature objects or others which conform to the DtFeature concept.
Definition: featureSet.h:105
DtString myLoadedFilename
The last filename that was passed to loadTerrain()
Definition: terrainInterface.h:1353
tbb::tick_count myLastDebugOutputTick
Definition: terrainInterface.h:1371
void(* DtTerrainChangeNotificationCallbackFcn)(const DtTerrainChangeNotificationInfo &terrainChangeInfo, void *userData)
Callback function for terrain change notifications.
Definition: terrainImplementation.h:121
std::vector< DtPoint > myAccumulatedIntersectionPoints
Definition: terrainInterface.h:1384
boost::function< void(const makVrv::DtDynamicTerrainFeature &)> DtDynamicTerrainQueryCallback
Definition: terrainImplementation.h:211
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:33
This is the abstract base class for all terrain implementations. A terrain implementation is used by ...
Definition: terrainImplementation.h:244
DtCallbackList< makArchives::DtGenericTerrainRecord * > DtGenericTerrainRecordCallbackList
Definition: terrainInterface.h:58
DtAsyncJobServer * myAsyncJobServer
Manages asynchronous path planning tasks.
Definition: terrainInterface.h:1366
void(* DtDeregisterTerrainImplementationLibFcn)()
This function signature is used for terrain implementation shared libraries that deregister themselve...
Definition: terrainInterface.h:1404
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:46
std::shared_ptr< const DtProj > CPtr
Definition: proj.h:56
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:55
std::list< std::pair< DtPagingMetaDataPtr, DtTerrainPagingGeometryPtr > > DtTerrainPagingGeometryList
Definition: terrainPagingGeometry.h:111
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:109
boost::signals2::signal< void(bool)> signal_jobQueueStatusChanged
If the implementation is currently making a path plan (using the async job server) and the status cha...
Definition: terrainInterface.h:1285
Definition: aerodromeLoader.h:63
double landAboveWaterMinimumSeparation
Definition: terrainInterface.h:113
Represents (possibly infinite) area of space.
Definition: DtDynamicTerrainGeometry.h:20
std::vector< DtChord > myAccumulatedChords
Definition: terrainInterface.h:1383
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
Allows manipulating a terrain object. Returned by functions which create terrain objects.
Definition: terrainImplementation.h:215
DtGenericTerrainRecordCallbackListMap myGenericTerrainRecordCallbacklists
Definition: terrainInterface.h:1376
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:111
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:29
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:102
Information on what dynamic changes are possible for a particular geometry feature in the terrain...
Definition: rwDynamicTerrainInformation.h:23
DtTerrainImplementationManager * myTerrainImplManager
Definition: terrainInterface.h:1350
Definition: surface.h:181
Definition: aStarGraph.h:86
static double theTerrainPagingMaxHeight
Definition: terrainInterface.h:1361
std::shared_ptr< DtGenericTerrainRecordCallbackList > DtGenericTerrainRecordCallbackListPtr
Definition: terrainInterface.h:59
unsigned int DtTerrainGeometryId
Unique ID numbers that reference a specific geometry (or set of triangles) in the terrain...
Definition: terrainProcessPolygonsBox.h:38
DtTerrainIntersectOptions Passed to terrain intersect functions to modify how intersect acts...
Definition: terrainIntersectOptions.h:22
bool myTerrainIsLoaded
Status publisher needs to keep track of when terrain is loaded and unloaded.
Definition: terrainInterface.h:1348
DtConsoleCommandManager * myConsoleCommandManager
Definition: terrainInterface.h:1351
Definition: coordSystem.h:54
bool(* DtRegisterTerrainImplementationLibFcn)(DtTerrainInterface *)
This function signature is used for terrain implementation shared libraries that register themselves ...
Definition: terrainInterface.h:1397
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:1354
Represents some coordinate system. The terms &quot;coordinate system&quot;, &quot;projection&quot;, &quot;spatial reference&quot;...
Definition: proj.h:52
Represents a set of characeters a DtFeature object can have. DtQuery objects are the way to communica...
Definition: query.h:37
double seaLevel
Definition: terrainInterface.h:110
#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:1338
This class holds parameters which define the capabilities of the current terrain. The terrain impleme...
Definition: terrainCapabilities.h:28
Definition: noArgumentCallbackList.h:90
DtTerrainInterface allows access to common terrain calls without having to know the terrain implement...
Definition: terrainInterface.h:93
DtTerrainImplementation * terrainImplementation() const
Returns the current terrain implementation.
Definition: terrainInterface.h:141
Terrain which represents buildings and other structures. There should be terrain skin under these...
Definition: rwTerrainCategoryMask.h:23
DtTerrainImplementationFactory::DtCreatorFcn DtTerrainImplementationCreatorFcn
Definition: terrainImplementation.h:484
DtTerrainUnloadSignalType myUnloadTerrainSignal
Definition: terrainInterface.h:1386
Interface which abstracts the concept of a individually identifiable &quot;thing&quot; in the terrain...
Definition: DtDynamicTerrainFeature.h:83
LoadContext
Definition: terrainInterface.h:96
makArchives::DtTerrainRecord * myTerrainRecord
Definition: terrainInterface.h:1373
OceanLayer myGlobalOceanLayer
Definition: terrainInterface.h:1368
Definition: pathFeature.h:99
Definition: vrfChordIntersectionRecord.h:19
Definition: intersectionRecord.h:60
DtTerrainImplementation * myTerrainImpl
Definition: terrainInterface.h:1344
unsigned int DtTerrainCategoryMask
This bitmask is made using DtTerrainCategory values.
Definition: rwTerrainCategoryMask.h:27
bool myAccumulateIntersections
check if we need to accumulate terrain intersections results for debug purpose
Definition: terrainInterface.h:1381
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtTerrainInterfaceConfig myFileConfig
Definition: terrainInterface.h:1339
MAKVRinTerra::DtProj::CPtr myProjObject
Definition: terrainInterface.h:1363
std::map< DtString, DtGenericTerrainRecordCallbackListPtr > DtGenericTerrainRecordCallbackListMap
Definition: terrainInterface.h:1317
void(* DtTriangleCallbackFcn)(DtTerrainTriangleStruct &triangle, void *usr)
Definition: terrainProcessPolygonsBox.h:130
boost::ptr_list< MAKVRinTerra::DtFeatureSet > FeatureSetList
Definition: terrainInterface.h:1341
boost::signals2::signal< void(bool)> signal_terrainPaging
If the implementation is currently paging in terrain, this signal will be sent for the start/stop of ...
Definition: terrainInterface.h:1282
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:112
void(* DtCacheProgressCallbackFunction)(int requestId, int current, bool completed, double elapsedTime, void *usr)
Callback for terrain caching.
Definition: terrainImplementation.h:117
Resource handle for a query which has been added to the system. Returned from DtTerrainImplementation...
Definition: terrainImplementation.h:180
Interface for getting terrain triangle data out of DtTerrainInterface::trianglesInArea. This object should always be created on the stack.
Definition: terrainProcessPolygonsBox.h:134
Manages async job objects.
Definition: asyncJobServer.h:61
DtMedium
Definition: surface.h:187
std::ofstream myDebugOutputFile
Definition: terrainInterface.h:1370
boost::signals2::signal< void()> DtTerrainUnloadSignalType
Definition: terrainInterface.h:61
Definition: featuresDebugger.h:33
Global ocean layer info; used in conjunction with the polygon data.
Definition: terrainInterface.h:105
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:145
bool myBlockOnAsynchronousOperations
Definition: terrainInterface.h:1389
double myLastFileTime
Needed in case file is saved with same name and then reloaded.
Definition: terrainInterface.h:1359
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 status of &quot;data available&quot; when an intersection c...
Definition: terrainIntersectStatus.h:23
void(* DtTriangleCallbackFinalizeFcn)(int status, void *usr)
Definition: terrainProcessPolygonsBox.h:129
DtTerrainPagingGeometryList myForceLoadAreas
Definition: terrainInterface.h:1356
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:60
FeatureSetList myFeatureLayers
Definition: terrainInterface.h:1342

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)