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) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
16 #include <vrfobjcore/simObject.h>
20 
21 #include <features/areaFeature.h>
25 #include <vrfutil/vrf4XAPI.h>
26 
28 #include <matrix/vlVector.h>
29 #include <vlutil/vlConfig.h>
30 #include <vlutil/vlFilename.h>
31 
34 #include <geometry/point.h>
35 #include <geometry/surface.h>
36 
38 #include <list>
39 #include <map>
40 
41 
43 class DtLocalObject;
44 class DtFilename;
45 class DtGeodeticCoord;
46 class Coordinate_System;
51 class DtExtent;
52 class DtChord;
53 class DtSurface;
54 
55 class DtPoint;
56 
58 
59 class DtDcm;
62 class DtSimMessage;
67 
69 class DtVrfCallbackQueue;
70 
113 {
114 public:
115 
118 
120  virtual ~DtPhysicalWorld();
121 
122 private:
124  DtPhysicalWorld(const DtPhysicalWorld& orig);
125 
127  DtPhysicalWorld& operator=(const DtPhysicalWorld& orig);
128 
129 public:
130  typedef std::list<DtVrfLineOfSightFunctorSP> DtLineOfSightTestContainer;
131 
140  virtual bool initialize();
141 
150  virtual bool reinitialize();
151 
153  virtual bool reset();
154 
160  virtual bool loadParametersFromFile(const DtFilename& filename);
161 
167  virtual bool loadPhysicalWorldFile(const DtFilename& filename);
168 
170  virtual void processParameters();
171 
174  const DtFilename& physicalWorldFile() const;
175 
177  virtual bool parametersLoaded() const;
178 
181 
182  virtual void addPreLoadParametersCallback(
184  virtual void removePreLoadParametersCallback(
187 
190 
191  virtual void addPostLoadParametersCallback(
193  virtual void removePostLoadParametersCallback(
196 
216  virtual bool isValidState() const;
217 
223  virtual void tick();
224 
225 
232 
233 
235  virtual Coordinate_System* coordinateSystem();
236 
238  virtual const Coordinate_System* coordinateSystem() const;
239 
241  virtual void geocentricToDatabase(const DtVector& in, DtVector& out) const;
242 
244  virtual void geocentricToDatabase(const DtDcm& in, DtDcm& out) const;
245 
247  virtual void geocentricToDatabase(const DtVector& vIn, const DtDcm& dIn,
248  DtVector& vOut, DtDcm& dOut) const;
249 
251  virtual void geocentricToDatabase(const DtExtent& in, DtExtent& out) const;
252 
254  virtual void databaseToGeocentric(const DtVector& in, DtVector& out) const;
255 
257  virtual void databaseToGeocentric(const DtDcm& in, DtDcm& out) const;
258 
260  virtual void databaseToGeocentric(const DtVector& vIn, const DtDcm& dIn,
261  DtVector& vOut, DtDcm& dOut) const;
262 
264  virtual void databaseToGeocentric(const DtExtent& in, DtExtent& out) const;
265 
267  virtual void databaseToGeodetic(const DtVector& databasePosition, DtGeodeticCoord& geodeticPosition) const;
270  virtual void databaseToGeodetic(const DtVector& databasePosition, DtVector& geodeticPosition) const;
272  virtual void databaseToGeodetic(const DtExtent& extent, DtExtent& destExtent) const;
273 
275  virtual void geodeticToDatabase(const DtExtent& extent, DtExtent& destExtent) const;
277  virtual void geodeticToDatabase(const DtGeodeticCoord& geodeticPosition,
278  DtVector& databasePosition) const;
281  virtual void geodeticToDatabase(const DtVector& geodeticPosition,
282  DtVector& databasePosition) const;
283 
286  virtual void topoToDatabase(const DtVector& databasePosition, DtDcm& topoToDatabase) const;
289  virtual void databaseToTopo(const DtVector& databasePosition, DtDcm& databaseToTopo) const;
290 
299  virtual DtVector down(const DtVector& databasePosition) const;
300 
304  virtual double magneticNorth(const DtSimObject* obj);
305 
308  virtual double magneticNorth(const DtVector& point);
310 
330 
331  virtual double terrainHeight(const DtPoint& databaseLocation,
332  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
333 
334  virtual double terrainHeight(double lat, double lon, DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
335 
336  virtual double terrainHeight(const DtVector& databaseLocation,
337  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
339 
353 
354  virtual bool terrainHeight(const DtPoint& databaseLocation, double& height,
355  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
356  virtual bool terrainHeight(double lat, double lon, double& height,
357  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
358  virtual bool terrainHeight(const DtVector& databaseLocation, double& height,
359  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
361 
392 
393  virtual bool terrainHeightAndSurface(const DtPoint& databaseLocation,
394  double& height, DtSurface& surface, DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
395  virtual bool terrainHeightAndSurface(double lat, double lon, double& height,
396  DtSurface& surface, DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
397  virtual bool terrainHeightAndSurface(const DtVector& databaseLocation,
398  double& height, DtSurface& surface, DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
399  virtual bool terrainHeightAndSurface(const DtVector& databaseLocation,
400  double& heightAtLocation, DtVrfChordIntersectionRecord& intersectionRec,
401  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
403 
408  virtual bool terrainHeightAndSurfaceBelow(const DtVector& databaseLocation,
409  double& heightAtLocation, DtSurface& surfaceAtLocation,
410  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
411 
413  virtual bool terrainHeightUnderWater(const DtVector& databaseLocation,
467  double& groundHeight, DtSurface& groundSurface, DtVector& groundNormal,
468  double& waterHeight, DtSurface::DtMedium & topSurfaceMedium,
469  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options);
471 
495 
496  virtual bool terrainSurface(const DtPoint& databaseLocation,
497  DtSurface& surface, DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
498  virtual bool terrainSurface(double lat, double lon, DtSurface& surface,
499  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
500  virtual bool terrainSurface(const DtVector& databaseLocation, DtSurface& surfaceAtLocation,
501  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
503 
527 
528  virtual bool closestTerrainLocation(const DtPoint& databaseLocation,
530  DtPoint& intersectionPoint, DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
531 
534  virtual bool closestTerrainLocation(double lat, double lon,
535  DtPoint& intersectionPoint, DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
536 
538  virtual bool closestTerrainLocation(const DtVector& databaseLocation,
539  DtPoint& intersectionPoint, DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
540 
543  virtual bool closestTerrainLocation(const DtPoint& databaseLocation,
545  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
546 
549  virtual bool closestTerrainLocation(double lat, double lon,
551  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
552 
554  virtual bool closestTerrainLocation(const DtVector& databaseLocation,
556  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
557 
577  virtual bool closestTerrainLocation(const DtVector& curPosition,
578  DtVector& intersection, bool ignoreWater, DtTerrainIntersectStatus& status,
579  const DtTerrainIntersectOptions& options) const;
581 
585 
586  virtual bool intersect(const DtChord& chord, DtPoint& intersectionPoint,
608  double& intersectionTime, DtTerrainIntersectStatus& status,
609  const DtTerrainIntersectOptions& options) const;
610 
630  virtual bool intersect(const DtChord& chord,
632  DtTerrainIntersectStatus& status,
633  const DtTerrainIntersectOptions& options) const;
634 
649  virtual bool allIntersectsAlongChord(const DtChord& chord,
651  DtTerrainIntersectStatus& status,
652  const DtTerrainIntersectOptions& options) const;
654 
657 
658 
667  virtual void groundClamp(DtPoint& databaseCoord, float const offset,
668  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
669 
678  virtual void groundClamp(DtVector& databaseCoord, float const offset,
679  DtTerrainIntersectStatus& status, const DtTerrainIntersectOptions& options) const;
680 
682 
683  static void requestSensorDomainsCallback(DtSimMessage* msg, void* usr);
684  virtual void sendSensorDomains();
686 
688 
697 
699  virtual DtTerrainInterface* terrainInterface();
701  virtual const DtTerrainInterface* terrainInterface() const;
702 
705  virtual void setTerrainInterface(DtTerrainInterface* newTerrainDatabase);
706 
708 
729  virtual DtEnvironmentalStateManager* environmentalStateManager();
730  virtual const DtEnvironmentalStateManager* environmentalStateManager() const;
731 
733  virtual void setEnvironmentalStateManager(DtEnvironmentalStateManager * manager);
734 
736 
737 
738 
761 
773 
774 
775  typedef std::vector<const DtSimObject*> DtVrfConstObjectUniqueContainer;
776 
777  bool getVrfObjects(const DtExtent& extent, DtVrfConstObjectUniqueContainer& objects) const;
778 
779  bool getVrfObjects(const DtVrfObjectPredicate& predicate, const DtExtent& extent,
780  DtVrfConstObjectUniqueContainer& objects) const;
781 
782  bool getVrfObjects(const DtChord& chord, std::vector<const DtSimObject*>& objects) const;
783 
784  bool getVrfObjects(const DtVrfObjectPredicate& predicate, const DtChord& chord,
785  std::vector<const DtSimObject*>& objects) const;
787 
800 
801  void visitVrfObjects(const DtExtent& extent, class DtSpatialSelectionFunctor& callback) const;
802  void visitVrfObjects(const DtChord& chord, class DtSpatialSelectionFunctor& callback) const;
804 
809  virtual void getVrfObjectsAlongChord(const DtVector& databaseStart,
810  const DtVector& databaseEnd, std::vector<const DtSimObject*>& orderedList) const;
811 
819  virtual DtManagedObjectListConstPtr getSpatiallyManagedVrfObjectList();
820 
826  virtual bool initializeSpatialVrfObjectOrganization();
827 
839  virtual void calcSpatialMgrResolution(const DtManagedObjectListConstPtr& vrfObjList);
840 
847  virtual DtFilterFunctionPredicate getSpatialOrganizationPredicate();
848 
851  static bool spatialOrganizationObjectFilterFcn(const DtSimObject* obj, void* usr);
852 
863  virtual bool processSpatialOrganizationObjectFilterFcn(const DtSimObject* obj);
864 
866 
867  static void querySpatialSubdivisionConfigurationCallback(DtSimMessage* msg, void* usr);
868  static void setSpatialSubdivisionConfigurationCallback(DtSimMessage* msg, void* usr);
870 
873 
874  virtual void processQuerySpatialSubdivisionConfiguration(DtSimMessage* msg);
875  virtual void processSetSpatialSubdivisionConfiguration(DtSimMessage* msg);
877 
879 
880  virtual bool useVrfObjectSpatialSub() const;
881  virtual void setUseVrfObjectSpatialSub(bool yesOrNo);
883 
886 
887  virtual bool isSpatialMgrResolutionUserSpecified() const;
888  virtual void setSpatialMgrResolutionUserSpecified(bool yesOrNo);
890 
893  virtual unsigned int vrfObjectSpatialSubXResolution() const;
894  virtual unsigned int vrfObjectSpatialSubYResolution() const;
895  virtual unsigned int vrfObjectSpatialSubZResolution() const;
897 
902  virtual void setVrfObjectSpatialSubXResolution(unsigned int newXResolution);
903  virtual void setVrfObjectSpatialSubYResolution(unsigned int newYResolution);
904  virtual void setVrfObjectSpatialSubZResolution(unsigned int newZResolution);
907 
927 
931  virtual DtSensorSignatureManager* sensorSignatureManager();
932  virtual const DtSensorSignatureManager* sensorSignatureManager() const;
935 
938  virtual const DtSimulationServices* simulationServices() const;
939  virtual DtSimulationServices* simulationServices();
941 
945  virtual DtDynamicTerrainManager * dynamicTerrainManager();
946  virtual const DtDynamicTerrainManager * dynamicTerrainManager() const;
947  virtual void setDynamicTerrainManager(DtDynamicTerrainManager* manager);
949 
952  virtual MAKVRinTerra::DtDynamicFeatureSet* dynamicObjectFeatures() const;
953 
956  virtual DtPhysicalWorldParams* parameters();
957  virtual const DtPhysicalWorldParams* parameters() const;
959 
962  {
965  DtCheckLineOfSightOptions(DtTerrainCategoryMask mask) : terrainCategoryMask(mask) {};
966 
967 
970  DtVector* intersectionPoint = nullptr;
974  };
975 
993  virtual bool checkLineOfSight(const DtSimObject& viewingObject,
994  const DtVector& databaseViewingPoint, const DtSimObject& targetObject,
995  bool* terrainDataAvailable = 0,
997 
1011  virtual bool checkLineOfSight(const DtSimObject& viewingObject,
1012  const DtVector& databaseViewingPoint, const DtVector& databaseTargetPoint,
1013  bool* terrainDataAvailable = 0,
1015 
1029  virtual bool checkLineOfSight(const DtVector& databaseViewingPoint,
1030  const DtSimObject& targetObject, bool* terrainDataAvailable = 0,
1032 
1051  virtual bool checkLineOfFire(const DtSimObject& viewingObject,
1052  const DtVector& databaseViewingPoint, const DtSimObject& targetObject,
1053  const DtVector& databaseTargetPoint,
1054  bool* terrainDataAvailable = 0,
1055  double* normIntersectDistance = 0,
1056  const DtSimObject** intersectObject = 0,
1057  DtVector* intersectingPoint = 0,
1058  int* ignoredForceType = 0) const;
1059 
1061  virtual bool checkLineOfFire(const DtSimObject& viewingObject,
1062  const DtVector& databaseViewingPoint, const DtVector& databaseTargetPoint,
1063  bool* terrainDataAvailable = 0,
1064  double* normIntersectDistance = 0,
1065  const DtSimObject** intersectionObject = 0,
1066  DtVector* intersectingPoint = 0,
1067  int* ignoredForceType = 0) const;
1068 
1070  virtual bool checkLineOfFire(const DtVector& databaseViewingPoint,
1071  const DtVector& databaseTargetPoint,
1072  bool* terrainDataAvailable = 0,
1073  double* normIntersectDistance = 0,
1074  const DtSimObject** intersectionObject = 0,
1075  DtVector* intersectingPoint = 0,
1076  int* ignoredForceType = 0) const;
1077 
1088  virtual bool checkLineOfFireWithoutObjects(
1089  const DtVector& databaseViewingPoint,
1090  const DtVector& databaseTargetPoint,
1091  bool* terrainDataAvailable = 0,
1092  double* normIntersectDistance = 0,
1093  const DtSimObject** intersectionObject = 0,
1094  DtVector* intersectingPoint = 0) const;
1095 
1096  virtual void expireDataLoadRequestsBeforeTime(const double& time);
1097 
1101  virtual double thermoclinePermeability(
1102  const DtPoint& startPoint, const DtPoint& endPoint) const;
1103 
1106  virtual bool checkLineOfSight(const DtLineOfSightTestContainer& losTests,
1107  DtVrfLineOfSightCheckParams& losCheckParams) const;
1108 
1110  {
1111  return myLineOfSightTestsToPerform;
1112  }
1113 
1118  const DtChord createWorldIntersectionChord(const DtVector& databaseLocation) const;
1119 
1124 
1130  virtual void addLineOfSightTest(const DtLosTestKey&, DtVrfLineOfSightFunctorSP losTest);
1131 
1133  virtual DtVrfLineOfSightFunctorSP lineOfSightTest(const DtLosTestKey&) const;
1134 
1137  virtual void removeLineOfSightTest(const DtLosTestKey& testKey);
1138 
1139 protected:
1140 
1141  typedef std::map<DtLosTestKey, DtVrfLineOfSightFunctorSP> DtKeyedLineOfSightTestContainer;
1142  typedef DtKeyedLineOfSightTestContainer::iterator DtMasterLosTestIter;
1143  typedef DtKeyedLineOfSightTestContainer::const_iterator DtMasterLosTestConstIter;
1144 
1146 
1147  typedef DtLineOfSightTestContainer::iterator DtLosTestIter;
1148  typedef DtLineOfSightTestContainer::const_iterator DtLosTestConstIter;
1149 
1151 
1152  virtual void addInitialLosChecks();
1153 
1159 
1160  virtual void setDefaultLineOfSightTestOrder(
1161  const DtRwNLengthStringVector& lineOfSightTestsAndOrder);
1162  virtual void setLineOfSightTestOrder(
1163  const DtRwNLengthStringVector& lineOfSightTestsAndOrder);
1164 
1169  virtual void performTest(const DtLosTestKey& testToRun);
1170 
1174  virtual void doNotPerformTest(DtLineOfSightTestContainer& testContainer, const DtLosTestKey& testToRun) const;
1175 
1179  virtual void doNotPerformTest(DtLineOfSightTestContainer& testContainer, DtVrfLineOfSightFunctorSP losTest) const;
1180 
1181 
1186  static bool canBlockLineOfSight(const DtSimObject* object, void* usr);
1187 
1192  virtual DtVector localLineOfSightTestLocation(const DtSimObject& object) const;
1193 
1204 
1207  virtual bool checkVrfObjectsForLOS(
1208  const DtVrfLineOfSightCheckParams& losCheckParams) const;
1209 
1212  virtual bool checkTerrainForLOS(
1213  const DtVrfLineOfSightCheckParams& losCheckParams) const;
1215 
1216 public:
1243  virtual bool intersectVrfObjects(const DtSimObject* const primaryVrfObject,
1244  const DtVector& databaseStartPoint,
1245  const DtSimObject* const secondaryVrfObject,
1246  const DtVector& databaseEndPoint,
1247  double& interxTime,
1248  const DtSimObject** intersectedObject = 0,
1249  DtVector* intersectNormal = 0,
1250  const std::list<DtUUID>& ignoreList = std::list<DtUUID>(),
1251  int* ignoredForceType = 0,
1252  const std::list<DtEntityType>& ignoredEntityTypes = std::list<DtEntityType>()) const;
1253 
1258  virtual bool intersectVrfObjects(const DtSimObject* const primaryVrfObject,
1259  const DtVector& databaseStartPoint, const DtVector& databaseEndPoint,
1260  double& interxTime,
1261  const DtSimObject** intersectedObject = 0,
1262  DtVector* intersectNormal = 0,
1263  const std::list<DtUUID>& ignoreList = std::list<DtUUID>(),
1264  int* ignoredForceType = 0,
1265  const std::list<DtEntityType>& ignoredEntityTypes = std::list<DtEntityType>()) const;
1266 
1270  virtual bool intersectsVrfObject(const DtSimObject& vrfObjectToTest,
1271  const DtVector& databaseStartPoint, const DtVector& databaseEndPoint,
1272  double& distToIntersect, DtVector* surfaceNormal = 0) const;
1273 
1275  virtual bool embarkedOnSameLowFidelityObject(const DtSimObject& primaryVrfObject,
1276  const DtSimObject& secondaryVrfObject) const;
1277 
1279  virtual void tickDynamicTerrainManager(DtVrfCallbackQueue*);
1280 
1281 protected:
1282 
1309  virtual void intersectEntityBvPlanes(const DtChord& losChord,
1310  const DtSimObject* blockingObj, const bool isObserverBlocked,
1311  const DtVector& targetLocation,
1312  double& interxTime, DtVector& interxNormal) const;
1313 
1314  protected:
1315 
1316  bool testInvariant() const;
1317 
1320  virtual DtSpatialVrfObjectManagerInterface* spatialVrfObjectManager();
1321  virtual const DtSpatialVrfObjectManagerInterface* spatialVrfObjectManager() const;
1322  virtual void setSpatialVrfObjectManager(DtSpatialVrfObjectManagerInterface* newSpatialVrfObjectMgr);
1323 
1327  virtual DtPhysicalWorldParams* createParameters();
1328 
1331  virtual DtSensorSignatureManager* createSensorSignatureManager();
1332 
1338  virtual void processObjectDeleted(DtSimObjectReference);
1339 
1342  virtual void performTerrainPreload();
1343 
1344  const std::list<DtEntityType>& entityTypesIgnoredForLosChecks() const;
1345 
1346 protected:
1347 
1349  std::shared_ptr<MAKVRinTerra::DtDynamicFeatureSet> myDynamicObjectFeatures;
1350 
1356 
1358 
1360 
1362 
1366 
1369 
1371 
1373 
1375 
1377 
1379 
1381 
1382  std::shared_ptr<DtVrfCallbackQueue> mySoilTypeLookupQueue;
1383 
1386 
1387  boost::signals2::scoped_connection mySimObjectDeletedConnection;
1388 
1389  friend class IntersectVrfObjectFunctor;
1390 
1392  std::list<DtEntityType> myEntityTypesIgnoredForLosChecks;
1393 
1394 public:
1397  VRF4API_METHOD bool checkLineOfFire(const DtLocalObject& viewingObject,
1398  const DtVector& databaseViewingPoint, const DtLocalObject& targetObject,
1399  const DtVector& databaseTargetPoint,
1400  bool* terrainDataAvailable = 0,
1401  double* normIntersectDistance = 0,
1402  const DtSimObject** intersectObject = 0,
1403  DtVector* intersectingPoint = 0,
1404  int* ignoredForceType = 0) const;
1405 
1406  VRF4API_METHOD bool checkLineOfFire(const DtLocalObject& viewingObject,
1407  const DtVector& databaseViewingPoint, const DtVector& databaseTargetPoint,
1408  bool* terrainDataAvailable = 0,
1409  double* normIntersectDistance = 0,
1410  const DtSimObject** intersectionObject = 0,
1411  DtVector* intersectingPoint = 0,
1412  int* ignoredForceType = 0) const;
1413 
1414  VRF4API_METHOD DtSimulationServices* simManager();
1415  VRF4API_METHOD const DtSimulationServices* simManager() const;
1416  VRF4API_METHOD DtSimObjectManager* objectManager();
1417 
1419 };
1420 
1421 inline const DtFilename& DtPhysicalWorld::physicalWorldFile() const
1422 {
1423  return myPhysicalWorldFile;
1424 }
1425 
1427 {
1428 public:
1429  DtExpireOlderThanCommand(DtPhysicalWorld* physicalWorld);
1430  virtual bool execute(const DtString& parameters) override;
1431  virtual DtString help(const DtString& parameters) override;
1432  virtual bool showInHelp() const override { return true; };
1433 protected:
1434  DtPhysicalWorld* myPhysicalWorld;
1435 };
DtEnvironmentalStateManager * myEnvironmentalStateManager
Definition: physicalWorld.h:1372
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
class DtLocalObjectManager:
Definition: localObjectManager.h:157
Optional parameters which can be passed into the various checkLineOfSight functions.
Definition: physicalWorld.h:961
DtFilename myPhysicalWorldFile
Definition: physicalWorld.h:1376
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords. This is useful for followi...
Definition: vrfChordIntersectRecordList.h:31
DtLineOfSightTestContainer myLineOfSightTestsToPerform
Definition: physicalWorld.h:1150
std::map< DtLosTestKey, DtVrfLineOfSightFunctorSP > DtKeyedLineOfSightTestContainer
Definition: physicalWorld.h:1141
DtSensorSignatureManager * mySensorSignatureManager
Definition: physicalWorld.h:1370
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:1109
DtVrfWorldMagneticModel * myWMM
Definition: physicalWorld.h:1359
DtSpatialVrfObjectManagerInterface * mySpatialVrfObjectManager
Definition: physicalWorld.h:1357
The DtSpatialVrfObjectManager is responsible for maintaining a spatial organization of all specified ...
Definition: spatialVrfObjectManager.h:31
DtKeyedLineOfSightTestContainer myMasterLineOfSightTestContainer
Definition: physicalWorld.h:1145
bool mySpatialMgrResolutionUserSpecified
Definition: physicalWorld.h:1352
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:29
std::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
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:775
DtNoArgumentCallbackList myPostLoadParametersCallbacks
Definition: physicalWorld.h:1385
Definition: surface.h:181
DtLineOfSightTestContainer::iterator DtLosTestIter
Definition: physicalWorld.h:1147
boost::signals2::scoped_connection mySimObjectDeletedConnection
Definition: physicalWorld.h:1387
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:1123
DtCheckLineOfSightOptions()
Definition: physicalWorld.h:963
std::list< DtVrfLineOfSightFunctorSP > DtLineOfSightTestContainer
Definition: physicalWorld.h:130
virtual bool showInHelp() const override
Definition: physicalWorld.h:1432
Definition: physicalWorld.h:1426
DtPhysicalWorldParams * myParameters
Parameters for this physical world.
Definition: physicalWorld.h:1368
Contains the DtVrfObjectPredicate class declaration.
Definition: vrfObjectPredicate.h:20
DtCheckLineOfSightOptions(DtTerrainCategoryMask mask)
Convenience constructor when only setting the mask to a specific value.
Definition: physicalWorld.h:965
DtTerrainIntersectOptions Passed to terrain intersect functions to modify how intersect acts...
Definition: terrainIntersectOptions.h:22
DtLineOfSightTestContainer::const_iterator DtLosTestConstIter
Definition: physicalWorld.h:1148
The DtPhysicalWorld is the primary interface to and manager of all of the &quot;physical&quot; aspects of the s...
Definition: physicalWorld.h:112
Definition: coordSystem.h:54
DtLocalObjectManager * myObjectManager
Definition: physicalWorld.h:1365
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
std::list< DtEntityType > myEntityTypesIgnoredForLosChecks
Cached version of data from parameters in a format to pass to LOS checks.
Definition: physicalWorld.h:1392
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:97
DtExpireOlderThanCommand * myExpireOlderThanCommand
Definition: physicalWorld.h:1380
system includes
Definition: consoleCommandManager.h:28
DtTerrainInterface allows access to common terrain calls without having to know the terrain implement...
Definition: terrainInterface.h:93
The DtVrfLineOfSightCheckParams class is used to configure the line of sight queries.
Definition: vrfLineOfSightCheckParams.h:30
std::shared_ptr< MAKVRinTerra::DtDynamicFeatureSet > myDynamicObjectFeatures
Definition: physicalWorld.h:1349
Terrain which represents buildings and other structures. There should be terrain skin under these...
Definition: rwTerrainCategoryMask.h:23
std::shared_ptr< DtVrfLineOfSightFunctor > DtVrfLineOfSightFunctorSP
Typedefs for shared pointer to the Functors.
Definition: vrfLineOfSightFunctor.h:35
Abstract interface for a spatial object manager.
Definition: spatialVrfObjectManager.h:43
Dynamic feature set object.
Definition: dynamicFeatureSet.h:24
bool myUseVrfObjectSpatialManager
Definition: physicalWorld.h:1351
DtSimulationServices * mySimulationServices
Not owned, just used for reference.
Definition: physicalWorld.h:1364
DtTerrainInterface * myTerrainInterface
Definition: physicalWorld.h:1348
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:96
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:32
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...
const DtFilename & physicalWorldFile() const
Returns the value of the last file loaded.
Definition: physicalWorld.h:1421
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:80
DtDynamicTerrainManager * myDynamicTerrainManager
Definition: physicalWorld.h:1374
std::shared_ptr< DtVrfCallbackQueue > mySoilTypeLookupQueue
Definition: physicalWorld.h:1382
unsigned int DtTerrainCategoryMask
This bitmask is made using DtTerrainCategory values.
Definition: rwTerrainCategoryMask.h:27
unsigned int myVrfObjectSpatialSubXResolution
Definition: physicalWorld.h:1353
DtNoArgumentCallbackList myPreLoadParametersCallbacks
Definition: physicalWorld.h:1384
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:1361
DtMedium
Definition: surface.h:187
DtKeyedLineOfSightTestContainer::const_iterator DtMasterLosTestConstIter
Definition: physicalWorld.h:1143
voidpf uLong offset
Definition: ioapi.h:42
DtTime myLastPreloadTerrainTime
Definition: physicalWorld.h:1378
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:23
DtKeyedLineOfSightTestContainer::iterator DtMasterLosTestIter
Definition: physicalWorld.h:1142
Definition: point.h:34
virtual bool execute(const DtString &parameters)=0
Execute the command.
DtTerrainIntersectStatus Contains information about status of &quot;data available&quot; when an intersection c...
Definition: terrainIntersectStatus.h:23
unsigned int myVrfObjectSpatialSubZResolution
Definition: physicalWorld.h:1355
A locally simulated VRF object.
Definition: localObject.h:98
unsigned int myVrfObjectSpatialSubYResolution
Definition: physicalWorld.h:1354

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