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) 2023 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/scoped_ptr.hpp>
35 #include <boost/ptr_container/ptr_list.hpp>
36 #include <boost/signals2.hpp>
37 
38 #include <vector>
39 
41 class DtTerrainImplementationDescriptor;
45 class DtVrfCallbackQueue;
47 class Dt3dBoundingVolume;
48 class DtTerrainIndexParameters;
49 class DtEntityType;
50 class DtScenarioExplorer;
51 
52 namespace makArchives
53 {
54  class DtTerrainRecord;
55  class DtGenericTerrainRecord;
56 }
57 
59  makArchives::DtGenericTerrainRecord* record, void* userData);
60 
62 typedef boost::shared_ptr<DtGenericTerrainRecordCallbackList> DtGenericTerrainRecordCallbackListPtr;
63 
66 typedef void(*DtTerrainChangeNotificationCallbackFcn)(const DtExtent& spatExtent, void* userData);
67 
68 typedef boost::signals2::signal<void ()> DtTerrainUnloadSignalType;
69 
101 {
102 public:
104  {
105  VrfSimulationBackEnd = 1,
106  NavGenerationTool = 2
107  };
108 
110 
112  struct OceanLayer
113  {
116  bool present;
117  double seaLevel;
121  };
122 
123 public:
126 
128  virtual ~DtTerrainInterface();
129 
133  virtual bool init(bool createConsoleManager = true);
134 
136  virtual void setConfigFile(const std::string&, bool reload=true);
137 
139  virtual const DtTerrainInterfaceConfig& configOptions() const;
140 
142  virtual void tick();
143 
145  virtual bool isSameTerrain(const DtFilename&) const;
146 
149  {
150  return myTerrainImpl;
151  }
152 
155  virtual void addTerrainImplementation(const DtString& implementationName,
157 
159  virtual void addFeatureLayer(MAKVRinTerra::DtFeatureSet*);
160  virtual void addFeatureLayer(boost::shared_ptr<MAKVRinTerra::DtFeatureSet>);
161 
162  virtual void addGenericTerrainRecordCallback(
163  const DtString& recordType,
165  void* user);
166 
167  virtual void removeGenericTerrainRecordCallback(
168  const DtString& recordType,
170  void* user);
171 
172  virtual void invokeGenericTerrainRecordCallbacks(
174 
176  virtual void addTerrainChangeNotificationCallback(DtTerrainChangeNotificationCallbackFcn fcn,
177  void* user);
178 
180  virtual void removeTerrainChangeNotificationCallback(DtTerrainChangeNotificationCallbackFcn fcn,
181  void* user);
182 
184  virtual bool loadTerrain(const DtString& filename, LoadContext context = VrfSimulationBackEnd);
185 
187  virtual bool unloadTerrain(bool block = true);
188 
193  virtual bool loadModel(const DtFilename& f, const DtEntityType& t = DtEntityType(), bool hasOceanLayer = true);
194 
197  virtual double modelHeightDifferencesFromAppearances(int oldApp, int newApp) const;
198 
200  virtual bool terrainIsLoaded();
203  virtual DtString loadedFilename() const;
204 
205  virtual const Coordinate_System* coordinateSystem() const;
206  virtual Coordinate_System* coordinateSystem();
207 
211  virtual std::auto_ptr<MAKVRinTerra::DtAreaFeatureSet> areas(
212  const std::string& type,
213  const boost::shared_ptr<DtVrfCallbackQueue>& = boost::shared_ptr<DtVrfCallbackQueue>()) const;
214 
217  virtual std::auto_ptr<MAKVRinTerra::DtAreaFeatureSet> areas(
219  const boost::shared_ptr<DtVrfCallbackQueue>& = boost::shared_ptr<DtVrfCallbackQueue>()) const;
220 
221  virtual std::auto_ptr<MAKVRinTerra::DtPathFeatureSet> paths(const std::string& type) const;
222 
225  virtual std::auto_ptr<MAKVRinTerra::DtFeatureSet> features(
226  const std::string& queryName) const;
227 
229  virtual std::auto_ptr<MAKVRinTerra::DtFeatureSet> allFeatures() const;
230 
233  virtual std::auto_ptr<MAKVRinTerra::DtFeatureSet> featuresRaw(
234  const std::string& queryName) const;
235 
237  virtual std::auto_ptr<MAKVRinTerra::DtFeatureSet> allFeaturesRaw() const;
238 
240  virtual bool hasAerodromes() const;
241 
243  virtual MAKVRinTerra::DtAerodromeLoader::AerodromeData aerodromeData(const std::string& airportCode) const;
244 
246  virtual std::vector<MAKVRinTerra::DtAerodromeLoader::AerodromeData> aerodromesWithinRange(const DtVector& center, double range) const;
247 
249  virtual std::vector<MAKVRinTerra::DtAerodromeLoader::AerodromeData> aerodromesInArea(const std::vector<DtVector>&) const;
250 
252  virtual std::vector<MAKVRinTerra::DtAerodromeLoader::AerodromeData> aerodromesAtLocation(const DtVector& location) const;
253 
255  virtual std::vector<MAKVRinTerra::DtAerodromeLoader::RunwayData> runwayAtLocation(const DtVector& location) const;
256 
276  virtual double terrainHeightAboveSeaLevel(const DtPoint& databaseLocation,
277  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
278 
279  virtual double terrainHeightAboveSeaLevel(DtTerrainIntersectStatus& status,
280  const DtPoint& databaseLocation,
281  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
283 
310  virtual bool terrainHeightAndIntersection(const DtVector& localLocation,
311  double& height, DtVrfChordIntersectionRecord& record,
313  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
314 
315  virtual bool terrainHeightAndIntersection(DtTerrainIntersectStatus& status,
316  const DtVector& localLocation,
317  double& height, DtVrfChordIntersectionRecord& record,
318  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
320 
324  virtual bool terrainHeightAndIntersectionBelow(const DtVector& localLocation,
325  double& height, DtVrfChordIntersectionRecord& record,
327  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
328 
329  virtual bool terrainHeightAndIntersectionBelow(DtTerrainIntersectStatus& status,
330  const DtVector& localLocation,
331  double& height, DtVrfChordIntersectionRecord& record,
332  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
334 
465  virtual bool terrainHeightUnderWater(const DtVector& databaseLocation,
466  double& groundHeight, DtSurface& groundSurface, DtVector& groundNormal,
467  double& waterHeight, DtSurface::DtMedium &topSurfaceMedium,
468  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) ;
469 
470  virtual bool terrainHeightUnderWater(DtTerrainIntersectStatus& status,
471  const DtVector& databaseLocation,
472  double& groundHeight, DtSurface& groundSurface, DtVector& groundNormal,
473  double& waterHeight, DtSurface::DtMedium &topSurfaceMedium,
476 
523  virtual bool closestIntersection(const DtVector& localLocation,
524  DtPoint& intersectionPoint, bool* dataAvailable = 0,
525  bool overrideBlockingAssert = false, bool doNotAddDefaultRecord = false, int flags = 0) const;
526 
527  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
528  const DtVector& localLocation, DtPoint& intersectionPoint,
529  bool doNotAddDefaultRecord = false,
530  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
532 
555  virtual bool closestIntersection(double lat, double lon,
556  DtPoint& intersectionPoint, bool* dataAvailable = 0,
557  bool overrideBlockingAssert = false, bool doNotAddDefaultRecord = false, int flags = 0) const;
558 
559  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
560  double lat, double lon,
561  DtPoint& intersectionPoint,
562  bool doNotAddDefaultRecord = false,
563  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
565 
595  virtual bool closestIntersection(const DtVector& localLocation,
598  bool* dataAvailable = 0, bool overrideBlockingAssert = false,
599  bool doNotAddDefaultRecord = false, int flags = 0) const;
600 
601  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
602  const DtVector& localLocation,
604  bool doNotAddDefaultRecord = false,
605  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
607 
637  virtual bool closestIntersection(double lat, double lon,
640  DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
641  bool overrideBlockingAssert = false, bool doNotAddDefaultRecord = false, int flags = 0) const;
642 
643  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
644  double lat, double lon,
646  bool doNotAddDefaultRecord = false,
647  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
649 
682  virtual bool closestIntersection(const std::list<DtVector>& localLocationList,
683  DtVrfChordIntersectRecordList& recordList, int& numIntersections,
685  bool* dataAvailable = 0, bool overrideBlockingAssert = false,
686  bool doNotAddDefaultRecord = false, int flags = 0) const;
687 
688  virtual bool closestIntersection(DtTerrainIntersectStatus& status,
689  const std::list<DtVector>& localLocationList,
690  DtVrfChordIntersectRecordList& recordList, int& numIntersections,
691  bool doNotAddDefaultRecord = false,
692  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
694 
725  virtual bool intersect(const DtChord& chord, DtPoint& intersectionPoint,
726  double& intersectionTime, bool* dataAvailable = 0,
727  bool overrideBlockingAssert = false, int flags = 0) const;
728 
729  virtual bool intersect(DtTerrainIntersectStatus& status,
730  const DtChord& chord, DtPoint& intersectionPoint,
731  double& intersectionTime,
732  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
734 
769  virtual bool intersect(const DtChord& chord,
772  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
773 
774  virtual bool intersect(DtTerrainIntersectStatus& status,
775  const DtChord& chord,
777  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
779 
809  virtual bool allIntersectsAlongChord(const DtChord& chord,
812  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
813 
814  virtual bool allIntersectsAlongChord(DtTerrainIntersectStatus& status,
815  const DtChord& chord,
817  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
819 
824  virtual bool allIntersectsAlongChordDebug(const DtChord& chord,
826  bool* dataAvailable = 0,
827  bool overrideBlockingAssert = false, int flags = 0) const;
828 
829  virtual bool allIntersectsAlongChordDebug(DtTerrainIntersectStatus& status,
830  const DtChord& chord,
832  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
834 
869  virtual bool intersectList(const std::list<DtChord>& chordList,
870  DtVrfChordIntersectRecordList& recordList, int& numTerrainIntersections,
872  bool* dataAvailable = 0, bool overrideBlockingAssert = false, int flags = 0) const;
873 
874  virtual bool intersectList(DtTerrainIntersectStatus& status,
875  const std::list<DtChord>& chordList,
876  DtVrfChordIntersectRecordList& recordList, int& numTerrainIntersections,
877  const DtTerrainIntersectOptions& options = DtTerrainIntersectOptions()) const;
879 
894  virtual void preloadTerrainAreas(
895  const DtTerrainPagingGeometryList& preloadGeometry);
896 
902  virtual void forceLoadTerrainAreas(
903  const DtTerrainPagingGeometryList& forceLoadGeometry);
904 
906  virtual bool dataAvailable(const DtTerrainPagingGeometryList& geometry);
907 
913  virtual const DtTerrainCapabilities* terrainCapabilities() const;
914 
918  virtual bool addTerrainPassThroughLayer(const DtString& layerType);
919 
929  virtual void setAssertOnBlockingTerrainCalls(bool assertBlock);
930  virtual bool assertOnBlockingTerrainCalls() const;
932 
935  virtual void setWarnOnBlockingTerrainCalls(bool warnBlock);
936  virtual bool warnOnBlockingTerrainCalls() const;
938 
943  virtual void setIntersectDataLoadExpireTime(const double& expireTime);
944  virtual void expireDataLoadRequestsBeforeTime(const double& currentTime);
945 
956  virtual void trianglesInArea(DtTriangleCallbackFcn func,
957  DtTriangleCallbackFinalizeFcn finalize, DtTerrainProcessPolygonsBox& box, void* usr) const;
958 
965  virtual void trianglesInArea(DtTriangleOutputInterface& func, DtTerrainProcessPolygonsBox& box) const;
966 
969  virtual DtTerrainInformation* terrainInformation();
970 
974  virtual boost::shared_ptr<DtAsyncJobMapEntry> makePathAsync(
975  const DtPoint& localStart,
976  const DtPoint& localDestination,
977  const std::string& type,
978  const double& maxSearchRadius,
979  const double& startProximityThreshold,
980  const DtAStarGraph::DtWeightFactorsList& weightFactors
981  = DtAStarGraph::DtWeightFactorsList());
982 
996  virtual DtAStarGraph::Path makePath(
997  const DtPoint& localStart,
998  const DtPoint& localDestination,
999  const std::string& type,
1000  const double& maxSearchRadius,
1001  const double& startProximityThreshold,
1002  boost::function<bool ()> cancelCheck,
1003  const DtAStarGraph::DtWeightFactorsList& weightFactors
1004  = DtAStarGraph::DtWeightFactorsList()) const;
1005 
1008  virtual bool onPathFeature(
1009  const DtPoint& location, const DtString& type, double buffer = 0.5);
1010 
1012  virtual DtAStarGraph::Ptr pathFinder(const std::string&) const;
1013 
1017  virtual boost::shared_ptr<DtAsyncJobMapEntry> addAsyncJob(DtAsyncJob* job);
1018 
1020  MAKVRinTerra::DtProj::CPtr localProj() const;
1021 
1022  MAKVRinTerra::DtFeaturesDebugger& debugger() const;
1023 
1024  MAKVRinTerra::DtQuery findQuery(const std::string& name) const;
1025 
1026  const double topoDistance(const DtPoint& start, const DtPoint& end,
1027  const MAKVRinTerra::DtProj& localProj);
1028 
1038  MAKVRinTerra::DtClosestPathFeatureFinder closestFeatureOnNetwork(
1039  const std::string& type, const DtPoint& startingLocation,
1040  const double& searchRadius, bool* dataAvailable = NULL);
1041 
1042  void breakUpChord(const MAKVRinTerra::DtProj&, const DtChord& chord,
1043  std::vector<DtChord>& chords) const;
1044 
1045  void breakUpChord(const DtChord& chord, std::vector<DtChord>& chords) const;
1046 
1048  virtual DtTerrainGeometryHandle* createEntityGeometry(const DtFilename& file);
1049 
1052  virtual DtTerrainGeometryHandle* createEntityGeometry(const DtEntityType& file);
1053 
1055  virtual void loadVisuals(const DtScenarioExplorer&);
1056 
1058  virtual void clearCache();
1059 
1066  virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(
1067  double time,
1068  const std::map<DtString, DtString>& keyValueChanges,
1069  const DtVector& centerLocation, double radius);
1070 
1077  virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(
1078  double time,
1079  const std::map<DtString, DtString>& keyValueChanges,
1080  const std::vector<DtVector>& vertices, double width);
1081 
1087  virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(
1088  double time,
1089  const std::map<DtString, DtString>& keyValueChanges,
1090  const std::list<DtVector>& vertices);
1091 
1097  virtual DtDynamicTerrainRequestHandle addDynamicTerrainChangeRequest(
1098  double time,
1100 
1113  virtual void dynamicTerrainFeaturesInArea(
1114  const DtVector& centerLocation, double radius,
1115  std::list<DtRwDynamicTerrainInformation>& dynamicTerrainInfo, bool* dataAvailable = NULL,
1116  const DtString& filterKey = DtString::nullString());
1117 
1130  virtual void dynamicTerrainFeaturesInArea(
1131  const std::list<DtVector>& vertices, double width,
1132  std::list<DtRwDynamicTerrainInformation>& dynamicTerrainInfo, bool* dataAvailable = NULL,
1133  const DtString& filterKey = DtString::nullString());
1134 
1146  virtual void dynamicTerrainFeaturesInArea(
1147  const std::list<DtVector>& vertices,
1148  std::list<DtRwDynamicTerrainInformation>& dynamicTerrainInfo, bool* dataAvailable = NULL,
1149  const DtString& filterKey = DtString::nullString());
1150 
1158  virtual bool extractDynamicTerrainFeatureInformation(const makVrv::DtDynamicTerrainFeature& feature,
1159  DtRwDynamicTerrainInformation& dynamicTerrainInfo, const DtString& filterKey = DtString::nullString()) const;
1160 
1164  virtual DtDynamicTerrainQueryHandle queryDynamicTerrainFeatures(
1165  const DtDynamicTerrainQueryCallback& callback,
1166  makVrv::DtDynamicTerrainGeometry* geometry = 0,
1167  bool useOriginalGeometry = false);
1168 
1169  virtual void queryCurrentDynamicTerrainFeatures(
1170  const DtDynamicTerrainQueryCallback& callback,
1171  makVrv::DtDynamicTerrainGeometry* geometry = 0,
1172  bool useOriginalGeometry = false);
1173 
1176  virtual void cacheTerrainArea(int requestId,
1177  unsigned minLOD, unsigned maxLOD, const DtExtent& cacheArea,
1178  DtCacheProgressCallbackFunction fcn = 0, void* usr = 0);
1179 
1181  virtual void cancelCacheTerrainArea(int requestId);
1182 
1187  virtual void writeTerrainIndex(const DtString& name = DtString());
1188 
1190  virtual bool oceanLayerPresent() const;
1191 
1193  virtual void setOceanLayerPresent(bool b);
1194 
1206  virtual bool nonPolygonalWaterHeight(
1207  const DtChord& localLocation,
1208  double& height) const;
1209 
1211  virtual void setNonPolygonalWaterHeight(double d);
1212 
1216  virtual double defaultWaterDepth(const DtVector& localLocation) const;
1217 
1219  virtual void setDefaultWaterDepth(double);
1220 
1224  virtual double defaultSurfaceElevation(const DtVector& localLocation) const;
1225 
1241  virtual DtSurface::DtMedium mediumForUnspecPolygonsUnderWater() const;
1242 
1244  virtual void setMediumForUnspecPolygonsUnderWater(DtSurface::DtMedium m);
1245 
1257  virtual double landAboveWaterMinimumSeparation() const;
1258 
1260  virtual void setLandAboveWaterMinimumSeparation(double);
1261 
1263  virtual void setAccumulateIntersections(bool value);
1264 
1266  virtual bool accumulateIntersections() const;
1267 
1269  virtual void getIntersections(std::vector<DtChord>& accumulatedChords, std::vector<DtPoint>& accumulatedIntersections) const;
1270 
1271  virtual boost::signals2::connection connectToUnloadTerrain(const DtTerrainUnloadSignalType::slot_type & slotIn);
1272 
1274  boost::signals2::signal<void(bool)> signal_terrainPaging;
1275 
1277  boost::signals2::signal<void(bool)> signal_jobQueueStatusChanged;
1278 
1279 protected:
1282  void insertNonPolyWaterIntoIntersectionList(
1283  DtVrfChordIntersectionRecord& waterInterx,
1284  DtVrfChordIntersectRecordList& intrxList) const;
1285 
1293  virtual DtVrfChordIntersectionRecord blankSurfaceIntersectionRecord(
1294  const DtVector& localLocation, const double height) const;
1295 
1300  virtual bool nonPolygonalWaterIntersect(
1301  const DtChord& chord,
1302  DtVrfChordIntersectRecordList& waterRecords,
1304 
1305  typedef std::map<DtString, DtGenericTerrainRecordCallbackListPtr >
1307 
1311  const DtString& recordType);
1312 
1314  virtual void accumulateIntersections(const DtChord& chord, const DtVrfChordIntersectionRecord& record) const;
1315  virtual void accumulateIntersections(const DtChord& chord, const DtVrfChordIntersectRecordList& intList) const;
1316  virtual void accumulateIntersections(const std::list<DtChord>& chordList, const DtVrfChordIntersectRecordList& recordList) const;
1317 
1318 protected:
1320  virtual void terrainPaging(bool);
1321 
1322 protected:
1329 
1330  typedef boost::ptr_list<MAKVRinTerra::DtFeatureSet> FeatureSetList;
1332 
1334 
1338 
1344 
1346 
1349 
1351 
1353 
1356 
1358 
1359  std::ofstream myDebugOutputFile;
1360  tbb::tick_count myLastDebugOutputTick;
1361 
1363 
1364 
1366 
1367  //DtTerrainChangeNotificationCallbackList myTerrainChangeNotificationCallbackList;
1368 
1371 
1372  std::vector<DtChord> myAccumulatedChords;
1373  std::vector<DtPoint> myAccumulatedIntersectionPoints;
1374 
1376  bool myActive = false;
1377 };
1378 
1379 #define DtRegisterTerrainImplementationFunctionName "DtRegisterTerrainImplementation"
1380 
1384 
1385 
1386 #define DtDeregisterTerrainImplementationFunctionName "DtDeregisterTerrainImplementation"
1387 
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:1342
tbb::tick_count myLastDebugOutputTick
Definition: terrainInterface.h:1360
std::vector< DtPoint > myAccumulatedIntersectionPoints
Definition: terrainInterface.h:1373
boost::function< void(const makVrv::DtDynamicTerrainFeature &)> DtDynamicTerrainQueryCallback
Definition: terrainImplementation.h:139
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:172
DtCallbackList< makArchives::DtGenericTerrainRecord * > DtGenericTerrainRecordCallbackList
Definition: terrainInterface.h:61
void(* DtDeregisterTerrainImplementationLibFcn)()
This function signature is used for terrain implementation shared libraries that deregister themselve...
Definition: terrainInterface.h:1390
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:58
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:116
boost::signals2::signal< void(bool)> signal_jobQueueStatusChanged
If the implementation is currently makeing a path plan (using the async job server) and the status ch...
Definition: terrainInterface.h:1277
Definition: aerodromeLoader.h:64
double landAboveWaterMinimumSeparation
Definition: terrainInterface.h:120
Represents (possibly infinite) area of space.
Definition: DtDynamicTerrainGeometry.h:20
std::vector< DtChord > myAccumulatedChords
Definition: terrainInterface.h:1372
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
Allows manipulating a terrain object. Returned by functions which create terrain objects.
Definition: terrainImplementation.h:143
DtGenericTerrainRecordCallbackListMap myGenericTerrainRecordCallbacklists
Definition: terrainInterface.h:1365
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:118
boost::shared_ptr< DtGenericTerrainRecordCallbackList > DtGenericTerrainRecordCallbackListPtr
Definition: terrainInterface.h:62
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:109
Information on what dynamic changes are possible for a particular geometry feature in the terrain...
Definition: rwDynamicTerrainInformation.h:23
DtTerrainImplementationManager * myTerrainImplManager
Definition: terrainInterface.h:1339
Definition: surface.h:181
Definition: aStarGraph.h:79
static double theTerrainPagingMaxHeight
Definition: terrainInterface.h:1350
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:1337
DtConsoleCommandManager * myConsoleCommandManager
Definition: terrainInterface.h:1340
Definition: coordSystem.h:54
bool(* DtRegisterTerrainImplementationLibFcn)(DtTerrainInterface *)
This function signature is used for terrain implementation shared libraries that register themselves ...
Definition: terrainInterface.h:1383
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:1343
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:49
double seaLevel
Definition: terrainInterface.h:117
#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:1327
This class holds parameters which define the capabilities of the current terrain. The terrain impleme...
Definition: terrainCapabilities.h:28
Definition: noArgumentCallbackList.h:90
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:100
DtTerrainImplementation * terrainImplementation() const
Returns the current terrain implementation.
Definition: terrainInterface.h:148
DtTerrainImplementationFactory::DtCreatorFcn DtTerrainImplementationCreatorFcn
Definition: terrainImplementation.h:408
DtTerrainUnloadSignalType myUnloadTerrainSignal
Definition: terrainInterface.h:1375
Interface which abstracts the concept of a individually identifiable &quot;thing&quot; in the terrain...
Definition: DtDynamicTerrainFeature.h:83
LoadContext
Definition: terrainInterface.h:103
makArchives::DtTerrainRecord * myTerrainRecord
Definition: terrainInterface.h:1362
OceanLayer myGlobalOceanLayer
Definition: terrainInterface.h:1357
Definition: pathFeature.h:106
Definition: vrfChordIntersectionRecord.h:19
Definition: intersectionRecord.h:60
DtTerrainImplementation * myTerrainImpl
Definition: terrainInterface.h:1333
bool myAccumulateIntersections
check if we need to accumulate terrain intersections results for debug purpose
Definition: terrainInterface.h:1370
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtTerrainInterfaceConfig myFileConfig
Definition: terrainInterface.h:1328
MAKVRinTerra::DtProj::CPtr myProjObject
Definition: terrainInterface.h:1352
std::map< DtString, DtGenericTerrainRecordCallbackListPtr > DtGenericTerrainRecordCallbackListMap
Definition: terrainInterface.h:1306
void(* DtTriangleCallbackFcn)(DtTerrainTriangleStruct &triangle, void *usr)
Definition: terrainProcessPolygonsBox.h:109
boost::ptr_list< MAKVRinTerra::DtFeatureSet > FeatureSetList
Definition: terrainInterface.h:1330
DtAsyncJobServer myAsyncJobServer
Manages asynchronous path planning tasks.
Definition: terrainInterface.h:1355
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:1274
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:119
void(* DtCacheProgressCallbackFunction)(int requestId, int current, bool completed, double elapsedTime, void *usr)
Callback for terrain caching.
Definition: terrainImplementation.h:47
Resource handle for a query which has been added to the system. Returned from DtTerrainImplementation...
Definition: terrainImplementation.h:108
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:187
std::ofstream myDebugOutputFile
Definition: terrainInterface.h:1359
boost::signals2::signal< void()> DtTerrainUnloadSignalType
Definition: terrainInterface.h:68
Definition: featuresDebugger.h:33
Global ocean layer info; used in conjunction with the polygon data.
Definition: terrainInterface.h:112
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:73
double myLastFileTime
Needed in case file is saved with same name and then reloaded.
Definition: terrainInterface.h:1348
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:1345
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:1331

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)