VR-Forces 5.0.2 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:
1363  virtual bool intersectVrfObjects(const DtSimObject* const primaryVrfObject,
1364  const DtVector& databaseStartPoint,
1365  const DtSimObject* const secondaryVrfObject,
1366  const DtVector& databaseEndPoint,
1367  double& interxTime,
1368  const DtSimObject** intersectedObject = 0,
1369  DtVector* intersectNormal = 0,
1370  const std::list<DtUUID>& ignoreList = std::list<DtUUID>(),
1371  int* ignoredForceType = 0) const;
1372 
1377  virtual bool intersectVrfObjects(const DtSimObject* const primaryVrfObject,
1378  const DtVector& databaseStartPoint, const DtVector& databaseEndPoint,
1379  double& interxTime,
1380  const DtSimObject** intersectedObject = 0,
1381  DtVector* intersectNormal = 0,
1382  const std::list<DtUUID>& ignoreList = std::list<DtUUID>(),
1383  int* ignoredForceType = 0) const;
1384 
1388  virtual bool intersectsVrfObject(const DtSimObject& vrfObjectToTest,
1389  const DtVector& databaseStartPoint, const DtVector& databaseEndPoint,
1390  double& distToIntersect, DtVector* surfaceNormal = 0) const;
1391 
1393  virtual bool embarkedOnSameLowFidelityObject(const DtSimObject& primaryVrfObject,
1394  const DtSimObject& secondaryVrfObject) const;
1395 
1397  virtual void tickDynamicTerrainManager(DtVrfCallbackQueue*);
1398 
1399 protected:
1400 
1401  bool testInvariant() const;
1402 
1405  virtual DtSpatialVrfObjectManagerInterface* spatialVrfObjectManager();
1406  virtual const DtSpatialVrfObjectManagerInterface* spatialVrfObjectManager() const;
1407  virtual void setSpatialVrfObjectManager(DtSpatialVrfObjectManagerInterface* newSpatialVrfObjectMgr);
1408 
1412  virtual DtPhysicalWorldParams* createParameters();
1413 
1416  virtual DtSensorSignatureManager* createSensorSignatureManager();
1417 
1423  virtual void processObjectDeleted(DtSimObjectReference);
1424 
1427  virtual void performTerrainPreload();
1428 
1429 protected:
1430 
1432  boost::shared_ptr<MAKVRinTerra::DtDynamicFeatureSet> myDynamicObjectFeatures;
1433 
1439 
1441 
1443 
1445 
1449 
1452 
1454 
1456 
1458 
1460 
1462 
1464 
1465  boost::shared_ptr<DtVrfCallbackQueue> mySoilTypeLookupQueue;
1466 
1469 
1470  boost::signals2::scoped_connection mySimObjectDeletedConnection;
1471 
1472  friend class IntersectVrfObjectFunctor;
1473 
1474 public:
1477  VRF4API_METHOD bool checkLineOfFire(const DtLocalObject& viewingObject,
1478  const DtVector& databaseViewingPoint, const DtLocalObject& targetObject,
1479  const DtVector& databaseTargetPoint,
1480  bool* terrainDataAvailable = 0,
1481  double* normIntersectDistance = 0,
1482  const DtSimObject** intersectObject = 0,
1483  DtVector* intersectingPoint = 0,
1484  int* ignoredForceType = 0) const;
1485 
1486  VRF4API_METHOD bool checkLineOfFire(const DtLocalObject& viewingObject,
1487  const DtVector& databaseViewingPoint, const DtVector& databaseTargetPoint,
1488  bool* terrainDataAvailable = 0,
1489  double* normIntersectDistance = 0,
1490  const DtSimObject** intersectionObject = 0,
1491  DtVector* intersectingPoint = 0,
1492  int* ignoredForceType = 0) const;
1493 
1494  VRF4API_METHOD DtSimulationServices* simManager();
1495  VRF4API_METHOD const DtSimulationServices* simManager() const;
1496  VRF4API_METHOD DtSimObjectManager* objectManager();
1497 
1499 };
1500 
1501 inline const DtFilename& DtPhysicalWorld::physicalWorldFile() const
1502 {
1503  return myPhysicalWorldFile;
1504 }
1505 
1507 {
1508 public:
1509  DtExpireOlderThanCommand(DtPhysicalWorld* physicalWorld);
1510  virtual bool execute(const DtString& parameters);
1511  virtual DtString help(const DtString& parameters);
1512  virtual bool showInHelp() const { return true; };
1513 protected:
1514  DtPhysicalWorld* myPhysicalWorld;
1515 };
virtual bool showInHelp() const
Definition: physicalWorld.h:1512
boost::shared_ptr< MAKVRinTerra::DtDynamicFeatureSet > myDynamicObjectFeatures
Definition: physicalWorld.h:1432
DtEnvironmentalStateManager * myEnvironmentalStateManager
Definition: physicalWorld.h:1455
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:1459
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:1453
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:20
const DtLineOfSightTestContainer & lineOfSightTestsToPerform() const
Definition: physicalWorld.h:1247
DtVrfWorldMagneticModel * myWMM
Definition: physicalWorld.h:1442
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:1440
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:1435
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:1468
Definition: surface.h:179
DtLineOfSightTestContainer::iterator DtLosTestIter
Definition: physicalWorld.h:1285
boost::signals2::scoped_connection mySimObjectDeletedConnection
Definition: physicalWorld.h:1470
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:1506
DtPhysicalWorldParams * myParameters
Parameters for this physical world.
Definition: physicalWorld.h:1451
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:1448
Central manager for calculating apparent signatures in all the sensor domains. Apparent signatures ar...
Definition: sensorSignatureManager.h:41
#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. There is only one environmental state for the whole s...
Definition: dynamicTerrainManager.h:45
DtExpireOlderThanCommand * myExpireOlderThanCommand
Definition: physicalWorld.h:1463
system includes
Definition: consoleCommandManager.h:28
DtTerrainInterface allows access to common terrain calls without having to know the terrain implement...
Definition: terrainInterface.h:99
boost::shared_ptr< DtVrfCallbackQueue > mySoilTypeLookupQueue
Definition: physicalWorld.h:1465
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:1434
DtSimulationServices * mySimulationServices
Not owned, just used for reference.
Definition: physicalWorld.h:1447
DtTerrainInterface * myTerrainInterface
Definition: physicalWorld.h:1431
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:90
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:1501
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:79
DtDynamicTerrainManager * myDynamicTerrainManager
Definition: physicalWorld.h:1457
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:1436
DtNoArgumentCallbackList myPreLoadParametersCallbacks
Definition: physicalWorld.h:1467
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:59
DtManagedObjectListConstPtr mySpatiallyManagedVrfObjectList
Definition: physicalWorld.h:1444
DtMedium
Definition: surface.h:185
DtKeyedLineOfSightTestContainer::const_iterator DtMasterLosTestConstIter
Definition: physicalWorld.h:1281
voidpf uLong offset
Definition: ioapi.h:42
DtTime myLastPreloadTerrainTime
Definition: physicalWorld.h:1461
Contains the interface to the world magnetic model.
Definition: vrfWorldMagneticModel.h:21
#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:1438
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:1437

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)