VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
physicalWorld.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 #include <geometry/point.h>
15 #include <vlutil/vlConfig.h>
16 #include <vlutil/vlFilename.h>
17 #include <matrix/vlVector.h>
18 #include <list>
19 #include <map>
20 #include <boost/unordered_set.hpp>
27 #include "features/areaFeature.h"
29 #include "geometry/surface.h"
30 
31 class DtSimManager;
32 
33 class DtFilename;
34 class DtGeodeticCoord;
35 class Coordinate_System;
36 class DtVrfObjectManager;
40 class DtExtent;
41 class DtChord;
42 class DtSurface;
43 
44 class DtPoint;
45 
47 
48 class DtVrfObject;
49 class DtDcm;
52 class DtSimMessage;
57 
59 class DtVrfCallbackQueue;
60 
89 {
90 public:
91 
93  DtPhysicalWorld(DtSimManager* simManager);
94 
96  virtual ~DtPhysicalWorld();
97 
98 private:
100  DtPhysicalWorld(const DtPhysicalWorld& orig);
101 
103  DtPhysicalWorld& operator=(const DtPhysicalWorld& orig);
104 
105 public:
106  typedef std::list<DtVrfLineOfSightFunctorSP> DtLineOfSightTestContainer;
107 
116  virtual bool initialize();
117 
126  virtual bool reinitialize();
127 
129  virtual bool reset();
130 
136  virtual bool loadParametersFromFile(const DtFilename& filename);
137 
143  virtual bool loadPhysicalWorldFile(const DtFilename& filename);
144 
146  virtual void processParameters();
147 
150  const DtFilename& physicalWorldFile() const;
151 
153  virtual bool parametersLoaded() const;
154 
157 
158  virtual void addPreLoadParametersCallback(
160  virtual void removePreLoadParametersCallback(
163 
166 
167  virtual void addPostLoadParametersCallback(
169  virtual void removePostLoadParametersCallback(
172 
192  virtual bool isValidState() const;
193 
199  virtual void tick();
200 
201 
205 
211 
212  virtual Coordinate_System* coordinateSystem();
213  virtual const Coordinate_System* coordinateSystem() const;
214 
216  virtual void geocentricToDatabase(const DtVector& in, DtVector& out) const;
217 
219  virtual void geocentricToDatabase(const DtDcm& in, DtDcm& out) const;
220 
222  virtual void geocentricToDatabase(const DtVector& vIn, const DtDcm& dIn,
223  DtVector& vOut, DtDcm& dOut) const;
224 
226  virtual void geocentricToDatabase(const DtExtent& in, DtExtent& out) const;
227 
229  virtual void databaseToGeocentric(const DtVector& in, DtVector& out) const;
230 
232  virtual void databaseToGeocentric(const DtDcm& in, DtDcm& out) const;
233 
235  virtual void databaseToGeocentric(const DtVector& vIn, const DtDcm& dIn,
236  DtVector& vOut, DtDcm& dOut) const;
237 
239  virtual void databaseToGeocentric(const DtExtent& in, DtExtent& out) const;
240 
242  virtual void databaseToGeodetic(const DtVector& databasePosition, DtGeodeticCoord& geodeticPosition) const;
245  virtual void databaseToGeodetic(const DtVector& databasePosition, DtVector& geodeticPosition) const;
247  virtual void databaseToGeodetic(const DtExtent& extent, DtExtent& destExtent) const;
248 
250  virtual void geodeticToDatabase(const DtExtent& extent, DtExtent& destExtent) const;
252  virtual void geodeticToDatabase(const DtGeodeticCoord& geodeticPosition,
253  DtVector& databasePosition) const;
256  virtual void geodeticToDatabase(const DtVector& geodeticPosition,
257  DtVector& databasePosition) const;
258 
261  virtual void topoToDatabase(const DtVector& databasePosition, DtDcm& topoToDatabase) const;
264  virtual void databaseToTopo(const DtVector& databasePosition, DtDcm& databaseToTopo) const;
265 
273  virtual DtVector down(const DtVector& databasePosition) const;
274 
277  virtual double magneticNorth(const DtVrfObject* obj);
278 
281  virtual double magneticNorth(const DtVector& point);
282 
284  virtual double terrainHeight(const DtPoint& databaseLocation,
313  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
314  virtual double terrainHeight(double lat, double lon, bool* dataAvailable = 0,
315  bool overrideBlockingAssert = false) const;
316  virtual double terrainHeight(const DtVector& databaseLocation,
317  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
319 
321  virtual bool terrainHeight(const DtPoint& databaseLocation, double& height,
343  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
344  virtual bool terrainHeight(double lat, double lon, double& height,
345  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
346  virtual bool terrainHeight(const DtVector& databaseLocation, double& height,
347  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
349 
351  virtual bool terrainHeightAndSurface(const DtPoint& databaseLocation,
388  double& height, DtSurface& surface, bool* dataAvailable = 0,
389  bool overrideBlockingAssert = false) const;
390  virtual bool terrainHeightAndSurface(double lat, double lon, double& height,
391  DtSurface& surface, bool* dataAvailable = 0,
392  bool overrideBlockingAssert = false) const;
393  virtual bool terrainHeightAndSurface(const DtVector& databaseLocation,
394  double& height, DtSurface& surface, bool* dataAvailable = 0,
395  bool overrideBlockingAssert = false) const;
396  virtual bool terrainHeightAndSurface(const DtVector& databaseLocation,
397  double& heightAtLocation, DtVrfChordIntersectionRecord& intersectionRec,
400  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
402 
406  virtual bool terrainHeightAndSurfaceBelow(const DtVector& databaseLocation,
407  double& heightAtLocation, DtSurface& surfaceAtLocation,
408  bool* dataAvailable = 0,
409  bool overrideBlockingAssert = false) const;
410 
412  virtual bool terrainHeightUnderWater(const DtVector& databaseLocation,
472  double& groundHeight, DtSurface& groundSurface, DtVector& groundNormal,
473  double& waterHeight, DtSurface::DtMedium & topSurfaceMedium,
474  bool* dataAvailable = 0, bool overrideBlockingAssert = false);
476 
478  virtual bool terrainSurface(const DtPoint& databaseLocation,
509  DtSurface& surface, bool* dataAvailable = 0,
510  bool overrideBlockingAssert = false) const;
511  virtual bool terrainSurface(double lat, double lon, DtSurface& surface,
512  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
513  virtual bool terrainSurface(const DtVector& databaseLocation,
514  DtSurface& surface, bool* dataAvailable = 0,
515  bool overrideBlockingAssert = false) const;
516 
517  virtual DtSurface terrainSurface(const DtPoint& databaseLocation,
518  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
519  virtual DtSurface terrainSurface(double lat, double lon,
520  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
521  virtual DtSurface terrainSurface(const DtVector& databaseLocation,
522  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
524 
555  virtual bool closestTerrainLocation(const DtPoint& databaseLocation,
556  DtPoint& intersectionPoint, bool* dataAvailable = 0,
557  bool overrideBlockingAssert = false) const;
558 
561  virtual bool closestTerrainLocation(double lat, double lon,
562  DtPoint& intersectionPoint, bool* dataAvailable = 0,
563  bool overrideBlockingAssert = false) const;
564 
566  virtual bool closestTerrainLocation(const DtVector& databaseLocation,
567  DtPoint& intersectionPoint, bool* dataAvailable = 0,
568  bool overrideBlockingAssert = false) const;
569 
572  virtual bool closestTerrainLocation(const DtPoint& databaseLocation,
575  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
576 
578  virtual bool closestTerrainLocation(const DtPoint& databaseLocation,
579  DtVrfChordIntersectionRecord& record, const DtString& vectorFeatureLookup,
581  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
582 
585  virtual bool closestTerrainLocation(double lat, double lon,
588  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
589 
591  virtual bool closestTerrainLocation(const DtVector& databaseLocation,
594  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
595 
624  virtual bool closestTerrainLocation(const DtVector& curPosition,
625  DtVector& intersection, bool ignoreWater, bool* dataAvailable = 0,
626  bool overrideBlockingAssert = false) const;
627 
658  virtual bool intersect(const DtChord& chord, DtPoint& intersectionPoint,
659  double& intersectionTime, bool* dataAvailable = 0,
660  bool overrideBlockingAssert = false) const;
661 
690  virtual bool intersect(const DtChord& chord,
694  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
695 
721  virtual bool allIntersectsAlongChord(const DtChord& chord,
724  DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
725  bool overrideBlockingAssert = false) const;
726 
728  typedef boost::unordered_set<const DtVrfObject*> DtVrfConstObjectUniqueContainer;
739 
740  bool getVrfObjects(DtExtent& extent, DtVrfConstObjectUniqueContainer& objects) const;
741 
742  bool getVrfObjects(DtVrfObjectPredicate& predicate, DtExtent& extent,
743  DtVrfConstObjectUniqueContainer& objects) const;
744 
745  bool getVrfObjects(DtChord& chord, std::list<const DtVrfObject*>& objects) const;
746 
747  bool getVrfObjects(DtVrfObjectPredicate& predicate, DtChord& chord,
748  std::list<const DtVrfObject*>& objects) const;
750 
752  void visitVrfObjects(const DtExtent& extent, class DtSpatialSelectionFunctor& callback) const;
763  void visitVrfObjects(const DtChord& chord, class DtSpatialSelectionFunctor& callback) const;
765 
783  virtual void groundClamp(DtPoint& databaseCoord, float const offset = 0,
784  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
785 
803  virtual void groundClamp(DtVector& databaseCoord, float const offset = 0,
804  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
805 
810  virtual void getVrfObjectsAlongChord(const DtVector& databaseStart,
811  const DtVector& databaseEnd, std::list<const DtVrfObject*>& orderedList) const;
812 
820  virtual DtManagedObjectListConstPtr getSpatiallyManagedVrfObjectList();
821 
827  virtual bool initializeSpatialVrfObjectOrganization();
828 
840  virtual void calcSpatialMgrResolution(const DtManagedObjectListConstPtr& vrfObjList);
841 
848  virtual DtFilterFunctionPredicate getSpatialOrganizationPredicate();
849 
852  static bool spatialOrganizationObjectFilterFcn(const DtVrfObject* obj, void* usr);
853 
864  virtual bool processSpatialOrganizationObjectFilterFcn(const DtVrfObject* obj);
865 
867  static void querySpatialSubdivisionConfigurationCallback(DtSimMessage* msg, void* usr);
868  static void setSpatialSubdivisionConfigurationCallback(DtSimMessage* msg, void* usr);
869 
871  static void requestSensorDomainsCallback(DtSimMessage* msg, void* usr);
872  virtual void sendSensorDomains();
873 
876  virtual void processQuerySpatialSubdivisionConfiguration(DtSimMessage* msg);
877  virtual void processSetSpatialSubdivisionConfiguration(DtSimMessage* msg);
878 
881  virtual bool useVrfObjectSpatialSub() const;
882  virtual void setUseVrfObjectSpatialSub(bool yesOrNo);
883 
884 
887  virtual bool isSpatialMgrResolutionUserSpecified() const;
888  virtual void setSpatialMgrResolutionUserSpecified(bool yesOrNo);
889 
892  virtual unsigned int vrfObjectSpatialSubXResolution() const;
893  virtual unsigned int vrfObjectSpatialSubYResolution() const;
894  virtual unsigned int vrfObjectSpatialSubZResolution() const;
896 
901  virtual void setVrfObjectSpatialSubXResolution(unsigned int newXResolution);
902  virtual void setVrfObjectSpatialSubYResolution(unsigned int newYResolution);
903  virtual void setVrfObjectSpatialSubZResolution(unsigned int newZResolution);
905 
907 
909  virtual DtTerrainInterface* terrainInterface();
911  virtual const DtTerrainInterface* terrainInterface() const;
912 
915  virtual void setTerrainInterface(DtTerrainInterface* newTerrainDatabase);
916 
917  virtual DtSimManager* simManager();
918  virtual const DtSimManager* simManager() const;
919  virtual void setSimManager(DtSimManager* newSimManager);
920 
921  virtual DtVrfObjectManager* objectManager();
922  virtual const DtVrfObjectManager* objectManager() const;
923  virtual void setVrfObjectManager(DtVrfObjectManager* newObjectMgr);
924 
925 
926  virtual DtEnvironmentalStateManager * environmentalStateManager();
927  virtual const DtEnvironmentalStateManager * environmentalStateManager() const;
928  virtual void setEnvironmentalStateManager(DtEnvironmentalStateManager * manager);
929 
930 
932  virtual DtDynamicTerrainManager * dynamicTerrainManager();
933  virtual const DtDynamicTerrainManager * dynamicTerrainManager() const;
934  virtual void setDynamicTerrainManager(DtDynamicTerrainManager* manager);
935 
938  virtual MAKVRinTerra::DtDynamicFeatureSet* dynamicObjectFeatures() const;
939 
941 
942  virtual DtPhysicalWorldParams* parameters();
943  virtual const DtPhysicalWorldParams* parameters() const;
944 
945 
949 
950  virtual DtSensorSignatureManager* sensorSignatureManager();
951  virtual const DtSensorSignatureManager* sensorSignatureManager() const;
952 
953 
974  virtual bool checkLineOfSight(const DtVrfObject& viewingObject,
975  const DtVector& databaseViewingPoint, const DtVrfObject& targetObject,
976  bool* terrainDataAvailable = 0,
977  const DtString& featureQueryName = "default",
978  DtVector* intersectionPoint = 0) const;
979 
993  virtual bool checkLineOfSight(const DtVrfObject& viewingObject,
994  const DtVector& databaseViewingPoint, const DtVector& databaseTargetPoint,
995  bool* terrainDataAvailable = 0,
996  const DtString& featureQueryName = "default",
997  DtVector* intersectionPoint = 0) const;
998 
1012  virtual bool checkLineOfSight(const DtVector& databaseViewingPoint,
1013  const DtVrfObject& targetObject, bool* terrainDataAvailable = 0,
1014  const DtString& featureQueryName = "default",
1015  DtVector* intersectionPoint = 0) const;
1016 
1027  virtual bool checkLineOfSightWithoutObjects(
1028  const DtVector& databaseViewingPoint,
1029  const DtVector& databaseTargetPoint,
1030  bool* terrainDataAvailable = 0,
1031  const DtString& featureQueryName = "default",
1032  DtVector* intersectionPoint = 0) const;
1033 
1034 
1053  virtual bool checkLineOfFire(const DtVrfObject& viewingObject,
1054  const DtVector& databaseViewingPoint, const DtVrfObject& targetObject,
1055  const DtVector& databaseTargetPoint,
1056  bool* terrainDataAvailable = 0,
1057  double* normIntersectDistance = 0,
1058  DtVrfObject** intersectObject = 0,
1059  DtVector* intersectingPoint = 0,
1060  int* ignoredForceType = 0) const;
1061 
1063  virtual bool checkLineOfFire(const DtVrfObject& viewingObject,
1064  const DtVector& databaseViewingPoint, const DtVector& databaseTargetPoint,
1065  bool* terrainDataAvailable = 0,
1066  double* normIntersectDistance = 0,
1067  DtVrfObject** intersectionObject = 0,
1068  DtVector* intersectingPoint = 0,
1069  int* ignoredForceType = 0) const;
1070 
1072  virtual bool checkLineOfFire(const DtVector& databaseViewingPoint,
1073  const DtVector& databaseTargetPoint,
1074  bool* terrainDataAvailable = 0,
1075  double* normIntersectDistance = 0,
1076  DtVrfObject** intersectionObject = 0,
1077  DtVector* intersectingPoint = 0,
1078  int* ignoredForceType = 0) const;
1079 
1092  virtual bool checkLineOfFireWithoutObjects(
1093  const DtVector& databaseViewingPoint,
1094  const DtVector& databaseTargetPoint,
1095  bool* terrainDataAvailable = 0,
1096  double* normIntersectDistance = 0,
1097  DtVrfObject** intersectionObject = 0,
1098  DtVector* intersectingPoint = 0) const;
1099 
1105  static void objectAboutToBeRemovedCb(const DtVrfObject * vrfObject, void * usr);
1106 
1107  virtual void expireDataLoadRequestsBeforeTime(const double& time);
1108 
1112  virtual double thermoclinePermeability(
1113  const DtPoint& startPoint, const DtPoint& endPoint) const;
1114 
1117  virtual bool checkLineOfSight(const DtLineOfSightTestContainer& losTests,
1118  DtVrfLineOfSightCheckParams& losCheckParams) const;
1119 
1121  {
1122  return myLineOfSightTestsToPerform;
1123  }
1124 
1129  const DtChord createWorldIntersectionChord(const DtVector& databaseLocation) const;
1130 
1135 
1141  virtual void addLineOfSightTest(const DtLosTestKey&, DtVrfLineOfSightFunctorSP losTest);
1142 
1144  virtual DtVrfLineOfSightFunctorSP lineOfSightTest(const DtLosTestKey&) const;
1145 
1148  virtual void removeLineOfSightTest(const DtLosTestKey& testKey);
1149 
1150 protected:
1151 
1152  typedef std::map<DtLosTestKey, DtVrfLineOfSightFunctorSP> DtKeyedLineOfSightTestContainer;
1153  typedef DtKeyedLineOfSightTestContainer::iterator DtMasterLosTestIter;
1154  typedef DtKeyedLineOfSightTestContainer::const_iterator DtMasterLosTestConstIter;
1155 
1157 
1158  typedef DtLineOfSightTestContainer::iterator DtLosTestIter;
1159  typedef DtLineOfSightTestContainer::const_iterator DtLosTestConstIter;
1160 
1162 
1163  virtual void addInitialLosChecks();
1164 
1170 
1171  virtual void setDefaultLineOfSightTestOrder(
1172  const DtRwNLengthStringVector& lineOfSightTestsAndOrder);
1173  virtual void setLineOfSightTestOrder(
1174  const DtRwNLengthStringVector& lineOfSightTestsAndOrder);
1175 
1180  virtual void performTest(const DtLosTestKey& testToRun);
1181 
1185  virtual void doNotPerformTest(DtLineOfSightTestContainer& testContainer, const DtLosTestKey& testToRun) const;
1186 
1190  virtual void doNotPerformTest(DtLineOfSightTestContainer& testContainer, DtVrfLineOfSightFunctorSP losTest) const;
1191 
1192 
1197  static bool canBlockLineOfSight(const DtVrfObject* object, void* usr);
1198 
1203  virtual DtVector localLineOfSightTestLocation(const DtVrfObject& object) const;
1204 
1215 
1218  virtual bool checkVrfObjectsForLOS(
1219  const DtVrfLineOfSightCheckParams& losCheckParams) const;
1220 
1223  virtual bool checkFeaturesForLOS(
1224  const DtVrfLineOfSightCheckParams& losCheckParams) const;
1225 
1228  virtual bool checkTerrainForLOS(
1229  const DtVrfLineOfSightCheckParams& losCheckParams) const;
1231 
1232 public:
1241  virtual bool intersectVrfObjects(const DtVrfObject* const primaryVrfObject,
1242  const DtVector& databaseStartPoint,
1243  const DtVrfObject* const secondaryVrfObject,
1244  const DtVector& databaseEndPoint,
1245  double& interxTime,
1246  DtVrfObject** intersectedObject = 0,
1247  DtVector* intersectNormal = 0,
1248  const std::list<DtUUID>& ignoreList = std::list<DtUUID>(),
1249  int* ignoredForceType = 0) const;
1250 
1255  virtual bool intersectVrfObjects(const DtVrfObject* const primaryVrfObject,
1256  const DtVector& databaseStartPoint, const DtVector& databaseEndPoint,
1257  double& interxTime,
1258  DtVrfObject** intersectedObject = 0,
1259  DtVector* intersectNormal = 0,
1260  const std::list<DtUUID>& ignoreList = std::list<DtUUID>(),
1261  int* ignoredForceType = 0) const;
1262 
1266  virtual bool intersectsVrfObject(const DtVrfObject& vrfObjectToTest,
1267  const DtVector& databaseStartPoint, const DtVector& databaseEndPoint,
1268  double& distToIntersect, DtVector* surfaceNormal = 0) const;
1269 
1271  virtual bool embarkedOnSameLowFidelityObject(const DtVrfObject& primaryVrfObject,
1272  const DtVrfObject& secondaryVrfObject) const;
1273 
1274 protected:
1275 
1276  bool testInvariant() const;
1277 
1280  virtual DtSpatialVrfObjectManagerInterface* spatialVrfObjectManager();
1281  virtual const DtSpatialVrfObjectManagerInterface* spatialVrfObjectManager() const;
1282  virtual void setSpatialVrfObjectManager(DtSpatialVrfObjectManagerInterface* newSpatialVrfObjectMgr);
1283 
1287  virtual DtPhysicalWorldParams* createParameters();
1288 
1291  virtual DtSensorSignatureManager* createSensorSignatureManager();
1292 
1298  virtual void processObjectAboutToBeRemoved(const DtVrfObject * vrfObject);
1299 
1302  virtual void performTerrainPreload();
1303 
1304 protected:
1305 
1307  boost::shared_ptr<MAKVRinTerra::DtDynamicFeatureSet> myDynamicObjectFeatures;
1308 
1314 
1316 
1318 
1320 
1325 
1328 
1330 
1332 
1334 
1336 
1338 
1340 
1341  boost::shared_ptr<DtVrfCallbackQueue> mySoilTypeLookupQueue;
1342 
1345 
1346  friend class IntersectVrfObjectFunctor;
1347 };
1348 
1349 inline const DtFilename& DtPhysicalWorld::physicalWorldFile() const
1350 {
1351  return myPhysicalWorldFile;
1352 }
1353 
1355 {
1356 public:
1357  DtExpireOlderThanCommand(DtPhysicalWorld* physicalWorld);
1358  virtual bool execute(const DtString& parameters);
1359  virtual DtString help(const DtString& parameters);
1360  virtual bool showInHelp() const { return true; };
1361 protected:
1362  DtPhysicalWorld* myPhysicalWorld;
1363 };
virtual bool showInHelp() const
Definition: physicalWorld.h:1360
boost::shared_ptr< MAKVRinTerra::DtDynamicFeatureSet > myDynamicObjectFeatures
Definition: physicalWorld.h:1307
DtEnvironmentalStateManager * myEnvironmentalStateManager
Definition: physicalWorld.h:1331
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
DtFilename myPhysicalWorldFile
Definition: physicalWorld.h:1335
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords.
Definition: vrfChordIntersectRecordList.h:31
DtLineOfSightTestContainer myLineOfSightTestsToPerform
Definition: physicalWorld.h:1161
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
std::map< DtLosTestKey, DtVrfLineOfSightFunctorSP > DtKeyedLineOfSightTestContainer
Definition: physicalWorld.h:1152
DtSensorSignatureManager * mySensorSignatureManager
Definition: physicalWorld.h:1329
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
void(* DtCallbackFunctionType)(void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:156
Contains the DtFilterFunctionPredicate class declaration.
Definition: filterFunctionPredicate.h:23
const DtLineOfSightTestContainer & lineOfSightTestsToPerform() const
Definition: physicalWorld.h:1120
DtVrfWorldMagneticModel * myWMM
Definition: physicalWorld.h:1317
DtSpatialVrfObjectManagerInterface * mySpatialVrfObjectManager
Definition: physicalWorld.h:1315
The DtSpatialVrfObjectManager is responsible for maintaining a spatial organization of all specified ...
Definition: spatialVrfObjectManager.h:34
*bool testInvariant() const
DtKeyedLineOfSightTestContainer myMasterLineOfSightTestContainer
Definition: physicalWorld.h:1156
bool mySpatialMgrResolutionUserSpecified
Definition: physicalWorld.h:1310
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:32
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
DtNoArgumentCallbackList myPostLoadParametersCallbacks
Definition: physicalWorld.h:1344
Definition: surface.h:179
DtLineOfSightTestContainer::iterator DtLosTestIter
Definition: physicalWorld.h:1158
virtual DtString help(const DtString &parameters)
Definition: consoleCommandManager.h:36
DtString DtLosTestKey
The following typedefs, functions, and other code are all related to the Line Of Sight calculations...
Definition: physicalWorld.h:1134
std::list< DtVrfLineOfSightFunctorSP > DtLineOfSightTestContainer
Definition: physicalWorld.h:106
Definition: physicalWorld.h:1354
DtPhysicalWorldParams * myParameters
Parameters for this physical world.
Definition: physicalWorld.h:1327
Instances of DtVrfObjectPredicate are used to evaluate a condition, given a DtVrfObject as an argumen...
Definition: vrfObjectPredicate.h:21
DtLineOfSightTestContainer::const_iterator DtLosTestConstIter
Definition: physicalWorld.h:1159
The DtPhysicalWorld is the primary interface to and manager of all of the &quot;physical&quot; aspects of the s...
Definition: physicalWorld.h:88
Definition: coordSystem.h:54
Central manager for calculating apparent signatures of entities from various viewpoints.
Definition: sensorSignatureManager.h:35
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
File: simMsg.h.
Definition: simMessage.h:35
This class works just as DtCalllbackTable, but manages callbacks that have no arguments, and therefore don&#39;t fit in the template defined by DtCallbackList.
Definition: noArgumentCallbackList.h:152
Handles the any dynamic changes to the terrain.
Definition: dynamicTerrainManager.h:38
boost::unordered_set< const DtVrfObject * > DtVrfConstObjectUniqueContainer
Set of functions used to get the relevant DtVrfObjects from the object manager.
Definition: physicalWorld.h:738
DtExpireOlderThanCommand * myExpireOlderThanCommand
Definition: physicalWorld.h:1339
system includes
Definition: consoleCommandManager.h:27
DtTerrainInterface allows access to common terrain calls without having to know the terrain implement...
Definition: terrainInterface.h:88
boost::shared_ptr< DtVrfCallbackQueue > mySoilTypeLookupQueue
Definition: physicalWorld.h:1341
The DtVrfLineOfSightCheckParams class is used to configure the line of sight queries.
Definition: vrfLineOfSightCheckParams.h:27
Abstract interface for a spatial object manager.
Definition: spatialVrfObjectManager.h:46
Dynamic feature set object.
Definition: dynamicFeatureSet.h:24
bool myUseVrfObjectSpatialManager
Definition: physicalWorld.h:1309
DtTerrainInterface * myTerrainInterface
Definition: physicalWorld.h:1306
class DtVrfObjectManager:
Definition: vrfObjectManager.h:202
Readable-writable class holding all parameters for to configure the DtPhysicalWorld.
Definition: physicalWorldParams.h:26
Definition: vrfChordIntersectionRecord.h:19
DT_DLL_vrfutil bool intersection(const DtRailSegment *currentSegment, const DtRailSegment *nextSegment)
Given two segments, determine if where they meet is an intersection or just a bend in the road...
Definition: intersectionRecord.h:60
const DtFilename & physicalWorldFile() const
Returns the value of the last file loaded.
Definition: physicalWorld.h:1349
DtDynamicTerrainManager * myDynamicTerrainManager
Definition: physicalWorld.h:1333
DtBoost::shared_ptr< const DtManagedObjectList > DtManagedObjectListConstPtr
Typedef for a shared pointer to a const DtOrgViewManagedObjectList.
Definition: managedObjectList.h:31
unsigned int myVrfObjectSpatialSubXResolution
Definition: physicalWorld.h:1311
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
DtNoArgumentCallbackList myPreLoadParametersCallbacks
Definition: physicalWorld.h:1343
Handles the environmental state of the simulation.
Definition: environmentalStateManager.h:46
DtManagedObjectListConstPtr mySpatiallyManagedVrfObjectList
Definition: physicalWorld.h:1319
DtMedium
Definition: surface.h:185
DtKeyedLineOfSightTestContainer::const_iterator DtMasterLosTestConstIter
Definition: physicalWorld.h:1154
voidpf uLong offset
Definition: ioapi.h:42
DtVrfObjectManager * myVrfObjectManager
Not owned, just used for reference.
Definition: physicalWorld.h:1324
DtTime myLastPreloadTerrainTime
Definition: physicalWorld.h:1337
Contains the interface to the world magnetic model.
Definition: vrfWorldMagneticModel.h:21
DtKeyedLineOfSightTestContainer::iterator DtMasterLosTestIter
Definition: physicalWorld.h:1153
DtSimManager * mySimManager
Not owned, just used for reference.
Definition: physicalWorld.h:1322
Definition: point.h:34
virtual bool execute(const DtString &parameters)=0
Execute the command.
unsigned int myVrfObjectSpatialSubZResolution
Definition: physicalWorld.h:1313
DtIntersectionType
Definition: intersectionRecord.h:41
DtBoost::shared_ptr< DtVrfLineOfSightFunctor > DtVrfLineOfSightFunctorSP
Typedefs for shared pointer to the Functors.
Definition: vrfLineOfSightFunctor.h:35
unsigned int myVrfObjectSpatialSubYResolution
Definition: physicalWorld.h:1312

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)