VR-Forces Developer's Guide
 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) 2022 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>
24 #include "vrfobjcore/simObject.h"
28 #include "features/areaFeature.h"
30 #include "geometry/surface.h"
31 #include <vrfutil/vrf4XAPI.h>
33 
35 class DtLocalObject;
36 class DtFilename;
37 class DtGeodeticCoord;
38 class Coordinate_System;
43 class DtExtent;
44 class DtChord;
45 class DtSurface;
46 
47 class DtPoint;
48 
50 
51 class DtDcm;
54 class DtSimMessage;
59 
61 class DtVrfCallbackQueue;
62 
103 {
104 public:
105 
108 
110  virtual ~DtPhysicalWorld();
111 
112 private:
114  DtPhysicalWorld(const DtPhysicalWorld& orig);
115 
117  DtPhysicalWorld& operator=(const DtPhysicalWorld& orig);
118 
119 public:
120  typedef std::list<DtVrfLineOfSightFunctorSP> DtLineOfSightTestContainer;
121 
130  virtual bool initialize();
131 
140  virtual bool reinitialize();
141 
143  virtual bool reset();
144 
150  virtual bool loadParametersFromFile(const DtFilename& filename);
151 
157  virtual bool loadPhysicalWorldFile(const DtFilename& filename);
158 
160  virtual void processParameters();
161 
164  const DtFilename& physicalWorldFile() const;
165 
167  virtual bool parametersLoaded() const;
168 
171 
172  virtual void addPreLoadParametersCallback(
174  virtual void removePreLoadParametersCallback(
177 
180 
181  virtual void addPostLoadParametersCallback(
183  virtual void removePostLoadParametersCallback(
186 
206  virtual bool isValidState() const;
207 
213  virtual void tick();
214 
215 
222 
223 
225  virtual Coordinate_System* coordinateSystem();
226 
228  virtual const Coordinate_System* coordinateSystem() const;
229 
231  virtual void geocentricToDatabase(const DtVector& in, DtVector& out) const;
232 
234  virtual void geocentricToDatabase(const DtDcm& in, DtDcm& out) const;
235 
237  virtual void geocentricToDatabase(const DtVector& vIn, const DtDcm& dIn,
238  DtVector& vOut, DtDcm& dOut) const;
239 
241  virtual void geocentricToDatabase(const DtExtent& in, DtExtent& out) const;
242 
244  virtual void databaseToGeocentric(const DtVector& in, DtVector& out) const;
245 
247  virtual void databaseToGeocentric(const DtDcm& in, DtDcm& out) const;
248 
250  virtual void databaseToGeocentric(const DtVector& vIn, const DtDcm& dIn,
251  DtVector& vOut, DtDcm& dOut) const;
252 
254  virtual void databaseToGeocentric(const DtExtent& in, DtExtent& out) const;
255 
257  virtual void databaseToGeodetic(const DtVector& databasePosition, DtGeodeticCoord& geodeticPosition) const;
260  virtual void databaseToGeodetic(const DtVector& databasePosition, DtVector& geodeticPosition) const;
262  virtual void databaseToGeodetic(const DtExtent& extent, DtExtent& destExtent) const;
263 
265  virtual void geodeticToDatabase(const DtExtent& extent, DtExtent& destExtent) const;
267  virtual void geodeticToDatabase(const DtGeodeticCoord& geodeticPosition,
268  DtVector& databasePosition) const;
271  virtual void geodeticToDatabase(const DtVector& geodeticPosition,
272  DtVector& databasePosition) const;
273 
276  virtual void topoToDatabase(const DtVector& databasePosition, DtDcm& topoToDatabase) const;
279  virtual void databaseToTopo(const DtVector& databasePosition, DtDcm& databaseToTopo) const;
280 
289  virtual DtVector down(const DtVector& databasePosition) const;
290 
294  virtual double magneticNorth(const DtSimObject* obj);
295 
298  virtual double magneticNorth(const DtVector& point);
300 
330 
331  virtual double terrainHeight(const DtPoint& databaseLocation,
332  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
333  virtual double terrainHeight(double lat, double lon, bool* dataAvailable = 0,
334  bool overrideBlockingAssert = false) const;
335  virtual double terrainHeight(const DtVector& databaseLocation,
336  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
338 
361 
362  virtual bool terrainHeight(const DtPoint& databaseLocation, double& height,
363  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
364  virtual bool terrainHeight(double lat, double lon, double& height,
365  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
366  virtual bool terrainHeight(const DtVector& databaseLocation, double& height,
367  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
369 
408 
409  virtual bool terrainHeightAndSurface(const DtPoint& databaseLocation,
410  double& height, DtSurface& surface, bool* dataAvailable = 0,
411  bool overrideBlockingAssert = false) const;
412  virtual bool terrainHeightAndSurface(double lat, double lon, double& height,
413  DtSurface& surface, bool* dataAvailable = 0,
414  bool overrideBlockingAssert = false) const;
415  virtual bool terrainHeightAndSurface(const DtVector& databaseLocation,
416  double& height, DtSurface& surface, bool* dataAvailable = 0,
417  bool overrideBlockingAssert = false) const;
418  virtual bool terrainHeightAndSurface(const DtVector& databaseLocation,
419  double& heightAtLocation, DtVrfChordIntersectionRecord& intersectionRec,
422  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
424 
429  virtual bool terrainHeightAndSurfaceBelow(const DtVector& databaseLocation,
430  double& heightAtLocation, DtSurface& surfaceAtLocation,
431  bool* dataAvailable = 0,
432  bool overrideBlockingAssert = false) const;
433 
435  virtual bool terrainHeightUnderWater(const DtVector& databaseLocation,
496  double& groundHeight, DtSurface& groundSurface, DtVector& groundNormal,
497  double& waterHeight, DtSurface::DtMedium & topSurfaceMedium,
498  bool* dataAvailable = 0, bool overrideBlockingAssert = false);
500 
533 
534  virtual bool terrainSurface(const DtPoint& databaseLocation,
535  DtSurface& surface, bool* dataAvailable = 0,
536  bool overrideBlockingAssert = false) const;
537  virtual bool terrainSurface(double lat, double lon, DtSurface& surface,
538  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
539  virtual bool terrainSurface(const DtVector& databaseLocation,
540  DtSurface& surface, bool* dataAvailable = 0,
541  bool overrideBlockingAssert = false) const;
542 
543  virtual DtSurface terrainSurface(const DtPoint& databaseLocation,
544  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
545  virtual DtSurface terrainSurface(double lat, double lon,
546  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
547  virtual DtSurface terrainSurface(const DtVector& databaseLocation,
548  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
550 
583 
584  virtual bool closestTerrainLocation(const DtPoint& databaseLocation,
586  DtPoint& intersectionPoint, bool* dataAvailable = 0,
587  bool overrideBlockingAssert = false) const;
588 
591  virtual bool closestTerrainLocation(double lat, double lon,
592  DtPoint& intersectionPoint, bool* dataAvailable = 0,
593  bool overrideBlockingAssert = false) const;
594 
596  virtual bool closestTerrainLocation(const DtVector& databaseLocation,
597  DtPoint& intersectionPoint, bool* dataAvailable = 0,
598  bool overrideBlockingAssert = false) const;
599 
602  virtual bool closestTerrainLocation(const DtPoint& databaseLocation,
605  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
606 
608  virtual bool closestTerrainLocation(const DtPoint& databaseLocation,
609  DtVrfChordIntersectionRecord& record, const DtString& vectorFeatureLookup,
611  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
612 
615  virtual bool closestTerrainLocation(double lat, double lon,
618  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
619 
621  virtual bool closestTerrainLocation(const DtVector& databaseLocation,
624  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
625 
654  virtual bool closestTerrainLocation(const DtVector& curPosition,
655  DtVector& intersection, bool ignoreWater, bool* dataAvailable = 0,
656  bool overrideBlockingAssert = false) const;
658 
662 
663  virtual bool intersect(const DtChord& chord, DtPoint& intersectionPoint,
694  double& intersectionTime, bool* dataAvailable = 0,
695  bool overrideBlockingAssert = false) const;
696 
725  virtual bool intersect(const DtChord& chord,
729  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
730 
757  virtual bool allIntersectsAlongChord(const DtChord& chord,
760  DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
761  bool overrideBlockingAssert = false) const;
763 
766 
767 
785  virtual void groundClamp(DtPoint& databaseCoord, float const offset = 0,
786  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
787 
805  virtual void groundClamp(DtVector& databaseCoord, float const offset = 0,
806  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
808 
810 
811  static void requestSensorDomainsCallback(DtSimMessage* msg, void* usr);
812  virtual void sendSensorDomains();
814 
816 
825 
827  virtual DtTerrainInterface* terrainInterface();
829  virtual const DtTerrainInterface* terrainInterface() const;
830 
833  virtual void setTerrainInterface(DtTerrainInterface* newTerrainDatabase);
834 
836 
857  virtual DtEnvironmentalStateManager* environmentalStateManager();
858  virtual const DtEnvironmentalStateManager* environmentalStateManager() const;
859 
861  virtual void setEnvironmentalStateManager(DtEnvironmentalStateManager * manager);
862 
864 
865 
866 
889 
901 
902 
903  typedef std::vector<const DtSimObject*> DtVrfConstObjectUniqueContainer;
904 
905  bool getVrfObjects(const DtExtent& extent, DtVrfConstObjectUniqueContainer& objects) const;
906 
907  bool getVrfObjects(const DtVrfObjectPredicate& predicate, const DtExtent& extent,
908  DtVrfConstObjectUniqueContainer& objects) const;
909 
910  bool getVrfObjects(const DtChord& chord, std::vector<const DtSimObject*>& objects) const;
911 
912  bool getVrfObjects(const DtVrfObjectPredicate& predicate, const DtChord& chord,
913  std::vector<const DtSimObject*>& objects) const;
915 
928 
929  void visitVrfObjects(const DtExtent& extent, class DtSpatialSelectionFunctor& callback) const;
930  void visitVrfObjects(const DtChord& chord, class DtSpatialSelectionFunctor& callback) const;
932 
937  virtual void getVrfObjectsAlongChord(const DtVector& databaseStart,
938  const DtVector& databaseEnd, std::vector<const DtSimObject*>& orderedList) const;
939 
947  virtual DtManagedObjectListConstPtr getSpatiallyManagedVrfObjectList();
948 
954  virtual bool initializeSpatialVrfObjectOrganization();
955 
967  virtual void calcSpatialMgrResolution(const DtManagedObjectListConstPtr& vrfObjList);
968 
975  virtual DtFilterFunctionPredicate getSpatialOrganizationPredicate();
976 
979  static bool spatialOrganizationObjectFilterFcn(const DtSimObject* obj, void* usr);
980 
991  virtual bool processSpatialOrganizationObjectFilterFcn(const DtSimObject* obj);
992 
994 
995  static void querySpatialSubdivisionConfigurationCallback(DtSimMessage* msg, void* usr);
996  static void setSpatialSubdivisionConfigurationCallback(DtSimMessage* msg, void* usr);
998 
1001 
1002  virtual void processQuerySpatialSubdivisionConfiguration(DtSimMessage* msg);
1003  virtual void processSetSpatialSubdivisionConfiguration(DtSimMessage* msg);
1005 
1007 
1008  virtual bool useVrfObjectSpatialSub() const;
1009  virtual void setUseVrfObjectSpatialSub(bool yesOrNo);
1011 
1014 
1015  virtual bool isSpatialMgrResolutionUserSpecified() const;
1016  virtual void setSpatialMgrResolutionUserSpecified(bool yesOrNo);
1018 
1021  virtual unsigned int vrfObjectSpatialSubXResolution() const;
1022  virtual unsigned int vrfObjectSpatialSubYResolution() const;
1023  virtual unsigned int vrfObjectSpatialSubZResolution() const;
1025 
1030  virtual void setVrfObjectSpatialSubXResolution(unsigned int newXResolution);
1031  virtual void setVrfObjectSpatialSubYResolution(unsigned int newYResolution);
1032  virtual void setVrfObjectSpatialSubZResolution(unsigned int newZResolution);
1035 
1055 
1059  virtual DtSensorSignatureManager* sensorSignatureManager();
1060  virtual const DtSensorSignatureManager* sensorSignatureManager() const;
1063 
1066  virtual const DtSimulationServices* simulationServices() const;
1067  virtual DtSimulationServices* simulationServices();
1069 
1073  virtual DtDynamicTerrainManager * dynamicTerrainManager();
1074  virtual const DtDynamicTerrainManager * dynamicTerrainManager() const;
1075  virtual void setDynamicTerrainManager(DtDynamicTerrainManager* manager);
1077 
1080  virtual MAKVRinTerra::DtDynamicFeatureSet* dynamicObjectFeatures() const;
1081 
1084  virtual DtPhysicalWorldParams* parameters();
1085  virtual const DtPhysicalWorldParams* parameters() const;
1087 
1109  virtual bool checkLineOfSight(const DtSimObject& viewingObject,
1110  const DtVector& databaseViewingPoint, const DtSimObject& targetObject,
1111  bool* terrainDataAvailable = 0,
1112  const DtString& featureQueryName = "default",
1113  DtVector* intersectionPoint = 0) const;
1114 
1128  virtual bool checkLineOfSight(const DtSimObject& viewingObject,
1129  const DtVector& databaseViewingPoint, const DtVector& databaseTargetPoint,
1130  bool* terrainDataAvailable = 0,
1131  const DtString& featureQueryName = "default",
1132  DtVector* intersectionPoint = 0) const;
1133 
1147  virtual bool checkLineOfSight(const DtVector& databaseViewingPoint,
1148  const DtSimObject& targetObject, bool* terrainDataAvailable = 0,
1149  const DtString& featureQueryName = "default",
1150  DtVector* intersectionPoint = 0) const;
1151 
1163  virtual bool checkLineOfSightWithoutObjects(
1164  const DtVector& databaseViewingPoint,
1165  const DtVector& databaseTargetPoint,
1166  bool* terrainDataAvailable = 0,
1167  const DtString& featureQueryName = "default",
1168  DtVector* intersectionPoint = 0) const;
1169 
1170 
1189  virtual bool checkLineOfFire(const DtSimObject& viewingObject,
1190  const DtVector& databaseViewingPoint, const DtSimObject& targetObject,
1191  const DtVector& databaseTargetPoint,
1192  bool* terrainDataAvailable = 0,
1193  double* normIntersectDistance = 0,
1194  const DtSimObject** intersectObject = 0,
1195  DtVector* intersectingPoint = 0,
1196  int* ignoredForceType = 0) const;
1197 
1199  virtual bool checkLineOfFire(const DtSimObject& viewingObject,
1200  const DtVector& databaseViewingPoint, const DtVector& databaseTargetPoint,
1201  bool* terrainDataAvailable = 0,
1202  double* normIntersectDistance = 0,
1203  const DtSimObject** intersectionObject = 0,
1204  DtVector* intersectingPoint = 0,
1205  int* ignoredForceType = 0) const;
1206 
1208  virtual bool checkLineOfFire(const DtVector& databaseViewingPoint,
1209  const DtVector& databaseTargetPoint,
1210  bool* terrainDataAvailable = 0,
1211  double* normIntersectDistance = 0,
1212  const DtSimObject** intersectionObject = 0,
1213  DtVector* intersectingPoint = 0,
1214  int* ignoredForceType = 0) const;
1215 
1226  virtual bool checkLineOfFireWithoutObjects(
1227  const DtVector& databaseViewingPoint,
1228  const DtVector& databaseTargetPoint,
1229  bool* terrainDataAvailable = 0,
1230  double* normIntersectDistance = 0,
1231  const DtSimObject** intersectionObject = 0,
1232  DtVector* intersectingPoint = 0) const;
1233 
1234  virtual void expireDataLoadRequestsBeforeTime(const double& time);
1235 
1239  virtual double thermoclinePermeability(
1240  const DtPoint& startPoint, const DtPoint& endPoint) const;
1241 
1244  virtual bool checkLineOfSight(const DtLineOfSightTestContainer& losTests,
1245  DtVrfLineOfSightCheckParams& losCheckParams) const;
1246 
1248  {
1249  return myLineOfSightTestsToPerform;
1250  }
1251 
1256  const DtChord createWorldIntersectionChord(const DtVector& databaseLocation) const;
1257 
1262 
1268  virtual void addLineOfSightTest(const DtLosTestKey&, DtVrfLineOfSightFunctorSP losTest);
1269 
1271  virtual DtVrfLineOfSightFunctorSP lineOfSightTest(const DtLosTestKey&) const;
1272 
1275  virtual void removeLineOfSightTest(const DtLosTestKey& testKey);
1276 
1277 protected:
1278 
1279  typedef std::map<DtLosTestKey, DtVrfLineOfSightFunctorSP> DtKeyedLineOfSightTestContainer;
1280  typedef DtKeyedLineOfSightTestContainer::iterator DtMasterLosTestIter;
1281  typedef DtKeyedLineOfSightTestContainer::const_iterator DtMasterLosTestConstIter;
1282 
1284 
1285  typedef DtLineOfSightTestContainer::iterator DtLosTestIter;
1286  typedef DtLineOfSightTestContainer::const_iterator DtLosTestConstIter;
1287 
1289 
1290  virtual void addInitialLosChecks();
1291 
1297 
1298  virtual void setDefaultLineOfSightTestOrder(
1299  const DtRwNLengthStringVector& lineOfSightTestsAndOrder);
1300  virtual void setLineOfSightTestOrder(
1301  const DtRwNLengthStringVector& lineOfSightTestsAndOrder);
1302 
1307  virtual void performTest(const DtLosTestKey& testToRun);
1308 
1312  virtual void doNotPerformTest(DtLineOfSightTestContainer& testContainer, const DtLosTestKey& testToRun) const;
1313 
1317  virtual void doNotPerformTest(DtLineOfSightTestContainer& testContainer, DtVrfLineOfSightFunctorSP losTest) const;
1318 
1319 
1324  static bool canBlockLineOfSight(const DtSimObject* object, void* usr);
1325 
1330  virtual DtVector localLineOfSightTestLocation(const DtSimObject& object) const;
1331 
1342 
1345  virtual bool checkVrfObjectsForLOS(
1346  const DtVrfLineOfSightCheckParams& losCheckParams) const;
1347 
1350  virtual bool checkTerrainForLOS(
1351  const DtVrfLineOfSightCheckParams& losCheckParams) const;
1353 
1354 public:
1381  virtual bool intersectVrfObjects(const DtSimObject* const primaryVrfObject,
1382  const DtVector& databaseStartPoint,
1383  const DtSimObject* const secondaryVrfObject,
1384  const DtVector& databaseEndPoint,
1385  double& interxTime,
1386  const DtSimObject** intersectedObject = 0,
1387  DtVector* intersectNormal = 0,
1388  const std::list<DtUUID>& ignoreList = std::list<DtUUID>(),
1389  int* ignoredForceType = 0) const;
1390 
1395  virtual bool intersectVrfObjects(const DtSimObject* const primaryVrfObject,
1396  const DtVector& databaseStartPoint, const DtVector& databaseEndPoint,
1397  double& interxTime,
1398  const DtSimObject** intersectedObject = 0,
1399  DtVector* intersectNormal = 0,
1400  const std::list<DtUUID>& ignoreList = std::list<DtUUID>(),
1401  int* ignoredForceType = 0) const;
1402 
1406  virtual bool intersectsVrfObject(const DtSimObject& vrfObjectToTest,
1407  const DtVector& databaseStartPoint, const DtVector& databaseEndPoint,
1408  double& distToIntersect, DtVector* surfaceNormal = 0) const;
1409 
1411  virtual bool embarkedOnSameLowFidelityObject(const DtSimObject& primaryVrfObject,
1412  const DtSimObject& secondaryVrfObject) const;
1413 
1415  virtual void tickDynamicTerrainManager(DtVrfCallbackQueue*);
1416 
1417 protected:
1418 
1445  virtual void intersectEntityBvPlanes(const DtChord& losChord,
1446  const DtSimObject* blockingObj, const bool isObserverBlocked,
1447  const DtVector& targetLocation,
1448  double& interxTime, DtVector& interxNormal) const;
1449 
1450  protected:
1451 
1452  bool testInvariant() const;
1453 
1456  virtual DtSpatialVrfObjectManagerInterface* spatialVrfObjectManager();
1457  virtual const DtSpatialVrfObjectManagerInterface* spatialVrfObjectManager() const;
1458  virtual void setSpatialVrfObjectManager(DtSpatialVrfObjectManagerInterface* newSpatialVrfObjectMgr);
1459 
1463  virtual DtPhysicalWorldParams* createParameters();
1464 
1467  virtual DtSensorSignatureManager* createSensorSignatureManager();
1468 
1474  virtual void processObjectDeleted(DtSimObjectReference);
1475 
1478  virtual void performTerrainPreload();
1479 
1480 protected:
1481 
1483  boost::shared_ptr<MAKVRinTerra::DtDynamicFeatureSet> myDynamicObjectFeatures;
1484 
1490 
1492 
1494 
1496 
1500 
1503 
1505 
1507 
1509 
1511 
1513 
1515 
1516  boost::shared_ptr<DtVrfCallbackQueue> mySoilTypeLookupQueue;
1517 
1520 
1521  boost::signals2::scoped_connection mySimObjectDeletedConnection;
1522 
1523  friend class IntersectVrfObjectFunctor;
1524 
1525 public:
1528  VRF4API_METHOD bool checkLineOfFire(const DtLocalObject& viewingObject,
1529  const DtVector& databaseViewingPoint, const DtLocalObject& targetObject,
1530  const DtVector& databaseTargetPoint,
1531  bool* terrainDataAvailable = 0,
1532  double* normIntersectDistance = 0,
1533  const DtSimObject** intersectObject = 0,
1534  DtVector* intersectingPoint = 0,
1535  int* ignoredForceType = 0) const;
1536 
1537  VRF4API_METHOD bool checkLineOfFire(const DtLocalObject& viewingObject,
1538  const DtVector& databaseViewingPoint, const DtVector& databaseTargetPoint,
1539  bool* terrainDataAvailable = 0,
1540  double* normIntersectDistance = 0,
1541  const DtSimObject** intersectionObject = 0,
1542  DtVector* intersectingPoint = 0,
1543  int* ignoredForceType = 0) const;
1544 
1545  VRF4API_METHOD DtSimulationServices* simManager();
1546  VRF4API_METHOD const DtSimulationServices* simManager() const;
1547  VRF4API_METHOD DtSimObjectManager* objectManager();
1548 
1550 };
1551 
1552 inline const DtFilename& DtPhysicalWorld::physicalWorldFile() const
1553 {
1554  return myPhysicalWorldFile;
1555 }
1556 
1558 {
1559 public:
1560  DtExpireOlderThanCommand(DtPhysicalWorld* physicalWorld);
1561  virtual bool execute(const DtString& parameters);
1562  virtual DtString help(const DtString& parameters);
1563  virtual bool showInHelp() const { return true; };
1564 protected:
1565  DtPhysicalWorld* myPhysicalWorld;
1566 };
virtual bool showInHelp() const
Definition: physicalWorld.h:1563
boost::shared_ptr< MAKVRinTerra::DtDynamicFeatureSet > myDynamicObjectFeatures
Definition: physicalWorld.h:1483
DtEnvironmentalStateManager * myEnvironmentalStateManager
Definition: physicalWorld.h:1506
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
class DtLocalObjectManager:
Definition: localObjectManager.h:151
DtFilename myPhysicalWorldFile
Definition: physicalWorld.h:1510
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords. This is useful for followi...
Definition: vrfChordIntersectRecordList.h:31
DtLineOfSightTestContainer myLineOfSightTestsToPerform
Definition: physicalWorld.h:1288
std::map< DtLosTestKey, DtVrfLineOfSightFunctorSP > DtKeyedLineOfSightTestContainer
Definition: physicalWorld.h:1279
DtSensorSignatureManager * mySensorSignatureManager
Definition: physicalWorld.h:1504
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:155
Contains the DtFilterFunctionPredicate class declaration.
Definition: filterFunctionPredicate.h:20
const DtLineOfSightTestContainer & lineOfSightTestsToPerform() const
Definition: physicalWorld.h:1247
DtVrfWorldMagneticModel * myWMM
Definition: physicalWorld.h:1493
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
DtSpatialVrfObjectManagerInterface * mySpatialVrfObjectManager
Definition: physicalWorld.h:1491
The DtSpatialVrfObjectManager is responsible for maintaining a spatial organization of all specified ...
Definition: spatialVrfObjectManager.h:31
DtKeyedLineOfSightTestContainer myMasterLineOfSightTestContainer
Definition: physicalWorld.h:1283
bool mySpatialMgrResolutionUserSpecified
Definition: physicalWorld.h:1486
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:32
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
std::vector< const DtSimObject * > DtVrfConstObjectUniqueContainer
Used to get the relevant DtSimObjects from the object manager. If a primitive is specified, the function returns a container of DtSimObjects that is guaranteed to contain at least all the DtSimObjects that intersect the specified geometric primitive.
Definition: physicalWorld.h:903
DtNoArgumentCallbackList myPostLoadParametersCallbacks
Definition: physicalWorld.h:1519
Definition: surface.h:181
DtLineOfSightTestContainer::iterator DtLosTestIter
Definition: physicalWorld.h:1285
boost::signals2::scoped_connection mySimObjectDeletedConnection
Definition: physicalWorld.h:1521
virtual DtString help(const DtString &parameters)
Definition: consoleCommandManager.h:37
DtString DtLosTestKey
The following typedefs, functions, and other code are all related to the Line Of Sight calculations...
Definition: physicalWorld.h:1261
std::list< DtVrfLineOfSightFunctorSP > DtLineOfSightTestContainer
Definition: physicalWorld.h:120
Definition: physicalWorld.h:1557
DtPhysicalWorldParams * myParameters
Parameters for this physical world.
Definition: physicalWorld.h:1502
Contains the DtVrfObjectPredicate class declaration.
Definition: vrfObjectPredicate.h:20
DtLineOfSightTestContainer::const_iterator DtLosTestConstIter
Definition: physicalWorld.h:1286
The DtPhysicalWorld is the primary interface to and manager of all of the &quot;physical&quot; aspects of the s...
Definition: physicalWorld.h:102
Definition: coordSystem.h:54
DtLocalObjectManager * myObjectManager
Definition: physicalWorld.h:1499
Central manager for calculating apparent signatures in all the sensor domains. Apparent signatures ar...
Definition: sensorSignatureManager.h:42
#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:151
Handles the any dynamic changes to the terrain. There is only one environmental state for the whole s...
Definition: dynamicTerrainManager.h:45
DtExpireOlderThanCommand * myExpireOlderThanCommand
Definition: physicalWorld.h:1514
system includes
Definition: consoleCommandManager.h:28
DtTerrainInterface allows access to common terrain calls without having to know the terrain implement...
Definition: terrainInterface.h:100
boost::shared_ptr< DtVrfCallbackQueue > mySoilTypeLookupQueue
Definition: physicalWorld.h:1516
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:43
Dynamic feature set object.
Definition: dynamicFeatureSet.h:24
bool myUseVrfObjectSpatialManager
Definition: physicalWorld.h:1485
DtSimulationServices * mySimulationServices
Not owned, just used for reference.
Definition: physicalWorld.h:1498
DtTerrainInterface * myTerrainInterface
Definition: physicalWorld.h:1482
Readable-writable class holding all parameters for to configure the DtPhysicalWorld.
Definition: physicalWorldParams.h:26
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:95
Definition: vrfChordIntersectionRecord.h:19
This class is the central access point for all current-frame state of all objects in the simulation i...
Definition: simObjectManager.h:42
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:1552
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:88
DtDynamicTerrainManager * myDynamicTerrainManager
Definition: physicalWorld.h:1508
DtBoost::shared_ptr< const DtManagedObjectList > DtManagedObjectListConstPtr
Typedef for a shared pointer to a const DtOrgViewManagedObjectList. These lists are used within VR-Fo...
Definition: managedObjectList.h:35
unsigned int myVrfObjectSpatialSubXResolution
Definition: physicalWorld.h:1487
DtNoArgumentCallbackList myPreLoadParametersCallbacks
Definition: physicalWorld.h:1518
Maintains the environmental state of the simulation, such as time of day, illumination, and various aspects of the weather. All access to this data from any behavior or dynamics model should be made to this class.
Definition: environmentalStateManager.h:67
DtManagedObjectListConstPtr mySpatiallyManagedVrfObjectList
Definition: physicalWorld.h:1495
DtMedium
Definition: surface.h:187
DtKeyedLineOfSightTestContainer::const_iterator DtMasterLosTestConstIter
Definition: physicalWorld.h:1281
voidpf uLong offset
Definition: ioapi.h:42
DtTime myLastPreloadTerrainTime
Definition: physicalWorld.h:1512
Contains the interface to the world magnetic model.
Definition: vrfWorldMagneticModel.h:23
#define VRF4API_METHOD
Include this header file to allow for the definition/usage of the ability to mark something as deprec...
Definition: vrf4XAPI.h:22
DtKeyedLineOfSightTestContainer::iterator DtMasterLosTestIter
Definition: physicalWorld.h:1280
Definition: point.h:34
virtual bool execute(const DtString &parameters)=0
Execute the command.
unsigned int myVrfObjectSpatialSubZResolution
Definition: physicalWorld.h:1489
DtIntersectionType
Definition: intersectionRecord.h:41
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86
DtBoost::shared_ptr< DtVrfLineOfSightFunctor > DtVrfLineOfSightFunctorSP
Typedefs for shared pointer to the Functors.
Definition: vrfLineOfSightFunctor.h:35
unsigned int myVrfObjectSpatialSubYResolution
Definition: physicalWorld.h:1488

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)