VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
physicalWorld.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 #include <geometry/point.h>
15 #include <vlutil/vlConfig.h>
16 #include <vlutil/vlFilename.h>
17 #include <matrix/vlVector.h>
18 #include <list>
19 #include <map>
20 #include <boost/unordered_set.hpp>
26 #include "features/areaFeature.h"
28 #include "geometry/surface.h"
29 
30 class DtSimManager;
31 
32 class DtFilename;
33 class DtGeodeticCoord;
34 class Coordinate_System;
35 class DtVrfObjectManager;
39 class DtExtent;
40 class DtChord;
41 class DtSurface;
42 
43 class DtPoint;
44 
46 
47 class DtVrfObject;
48 class DtDcm;
51 class DtSimMessage;
56 
58 class DtVrfCallbackQueue;
59 
88 {
89 public:
90 
92  DtPhysicalWorld(DtSimManager* simManager);
93 
95  virtual ~DtPhysicalWorld();
96 
97 private:
99  DtPhysicalWorld(const DtPhysicalWorld& orig);
100 
102  DtPhysicalWorld& operator=(const DtPhysicalWorld& orig);
103 
104 public:
105  typedef std::list<DtVrfLineOfSightFunctorSP> DtLineOfSightTestContainer;
106 
115  virtual bool initialize();
116 
125  virtual bool reinitialize();
126 
128  virtual bool reset();
129 
135  virtual bool loadParametersFromFile(const DtFilename& filename);
136 
142  virtual bool loadPhysicalWorldFile(const DtFilename& filename);
143 
145  virtual void processParameters();
146 
149  const DtFilename& physicalWorldFile() const;
150 
152  virtual bool parametersLoaded() const;
153 
173  virtual bool isValidState() const;
174 
180  virtual void tick();
181 
182 
186 
192 
193  virtual Coordinate_System* coordinateSystem();
194  virtual const Coordinate_System* coordinateSystem() const;
195 
197  virtual void geocentricToDatabase(const DtVector& in, DtVector& out) const;
198 
200  virtual void geocentricToDatabase(const DtDcm& in, DtDcm& out) const;
201 
203  virtual void geocentricToDatabase(const DtVector& vIn, const DtDcm& dIn,
204  DtVector& vOut, DtDcm& dOut) const;
205 
207  virtual void geocentricToDatabase(const DtExtent& in, DtExtent& out) const;
208 
210  virtual void databaseToGeocentric(const DtVector& in, DtVector& out) const;
211 
213  virtual void databaseToGeocentric(const DtDcm& in, DtDcm& out) const;
214 
216  virtual void databaseToGeocentric(const DtVector& vIn, const DtDcm& dIn,
217  DtVector& vOut, DtDcm& dOut) const;
218 
220  virtual void databaseToGeocentric(const DtExtent& in, DtExtent& out) const;
221 
223  virtual void databaseToGeodetic(const DtVector& databasePosition, DtGeodeticCoord& geodeticPosition) const;
226  virtual void databaseToGeodetic(const DtVector& databasePosition, DtVector& geodeticPosition) const;
228  virtual void databaseToGeodetic(const DtExtent& extent, DtExtent& destExtent) const;
229 
231  virtual void geodeticToDatabase(const DtExtent& extent, DtExtent& destExtent) const;
233  virtual void geodeticToDatabase(const DtGeodeticCoord& geodeticPosition,
234  DtVector& databasePosition) const;
237  virtual void geodeticToDatabase(const DtVector& geodeticPosition,
238  DtVector& databasePosition) const;
239 
242  virtual void topoToDatabase(const DtVector& databasePosition, DtDcm& topoToDatabase) const;
245  virtual void databaseToTopo(const DtVector& databasePosition, DtDcm& databaseToTopo) const;
246 
254  virtual DtVector down(const DtVector& databasePosition) const;
255 
257 
258 
259 
260 
261 
262 
263 
264 
265 
266 
267 
268 
269 
270 
271 
272 
273 
274 
275 
276 
277 
278 
279 
280 
281 
282 
283 
284 
285  virtual double terrainHeight(const DtPoint& databaseLocation,
286  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
287  virtual double terrainHeight(double lat, double lon, bool* dataAvailable = 0,
288  bool overrideBlockingAssert = false) const;
289  virtual double terrainHeight(const DtVector& databaseLocation,
290  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
292 
294 
295 
296 
297 
298 
299 
300 
301 
302 
303 
304 
305 
306 
307 
308 
309 
310 
311 
312 
313 
314 
315  virtual bool terrainHeight(const DtPoint& databaseLocation, double& height,
316  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
317  virtual bool terrainHeight(double lat, double lon, double& height,
318  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
319  virtual bool terrainHeight(const DtVector& databaseLocation, double& height,
320  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
322 
324 
325 
326 
327 
328 
329 
330 
331 
332 
333 
334 
335 
336 
337 
338 
339 
340 
341 
342 
343 
344 
345 
346 
347 
348 
349 
350 
351 
352 
353 
354 
355 
356 
357 
358 
359 
360  virtual bool terrainHeightAndSurface(const DtPoint& databaseLocation,
361  double& height, DtSurface& surface, bool* dataAvailable = 0,
362  bool overrideBlockingAssert = false) const;
363  virtual bool terrainHeightAndSurface(double lat, double lon, double& height,
364  DtSurface& surface, bool* dataAvailable = 0,
365  bool overrideBlockingAssert = false) const;
366  virtual bool terrainHeightAndSurface(const DtVector& databaseLocation,
367  double& height, DtSurface& surface, bool* dataAvailable = 0,
368  bool overrideBlockingAssert = false) const;
369  virtual bool terrainHeightAndSurface(const DtVector& databaseLocation,
370  double& heightAtLocation, DtVrfChordIntersectionRecord& intersectionRec,
373  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
375 
379  virtual bool terrainHeightAndSurfaceBelow(const DtVector& databaseLocation,
380  double& heightAtLocation, DtSurface& surfaceAtLocation,
381  bool* dataAvailable = 0,
382  bool overrideBlockingAssert = false) const;
383 
385 
386 
387 
388 
389 
390 
391 
392 
393 
394 
395 
396 
397 
398 
399 
400 
401 
402 
403 
404 
405 
406 
407 
408 
409 
410 
411 
412 
413 
414 
415 
416 
417 
418 
419 
420 
421 
422 
423 
424 
425 
426 
427 
428 
429 
430 
431 
432 
433 
434 
435 
436 
437 
438 
439 
440 
441 
442 
443 
444  virtual bool terrainHeightUnderWater(const DtVector& databaseLocation,
445  double& groundHeight, DtSurface& groundSurface, DtVector& groundNormal,
446  double& waterHeight, DtSurface::DtMedium & topSurfaceMedium,
447  bool* dataAvailable = 0, bool overrideBlockingAssert = false);
449 
451 
452 
453 
454 
455 
456 
457 
458 
459 
460 
461 
462 
463 
464 
465 
466 
467 
468 
469 
470 
471 
472 
473 
474 
475 
476 
477 
478 
479 
480 
481  virtual bool terrainSurface(const DtPoint& databaseLocation,
482  DtSurface& surface, bool* dataAvailable = 0,
483  bool overrideBlockingAssert = false) const;
484  virtual bool terrainSurface(double lat, double lon, DtSurface& surface,
485  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
486  virtual bool terrainSurface(const DtVector& databaseLocation,
487  DtSurface& surface, bool* dataAvailable = 0,
488  bool overrideBlockingAssert = false) const;
489 
490  virtual DtSurface terrainSurface(const DtPoint& databaseLocation,
491  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
492  virtual DtSurface terrainSurface(double lat, double lon,
493  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
494  virtual DtSurface terrainSurface(const DtVector& databaseLocation,
495  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
497 
528  virtual bool closestTerrainLocation(const DtPoint& databaseLocation,
529  DtPoint& intersectionPoint, bool* dataAvailable = 0,
530  bool overrideBlockingAssert = false) const;
531 
534  virtual bool closestTerrainLocation(double lat, double lon,
535  DtPoint& intersectionPoint, bool* dataAvailable = 0,
536  bool overrideBlockingAssert = false) const;
537 
539  virtual bool closestTerrainLocation(const DtVector& databaseLocation,
540  DtPoint& intersectionPoint, bool* dataAvailable = 0,
541  bool overrideBlockingAssert = false) const;
542 
545  virtual bool closestTerrainLocation(const DtPoint& databaseLocation,
548  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
549 
551  virtual bool closestTerrainLocation(const DtPoint& databaseLocation,
552  DtVrfChordIntersectionRecord& record, const DtString& vectorFeatureLookup,
554  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
555 
558  virtual bool closestTerrainLocation(double lat, double lon,
561  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
562 
564  virtual bool closestTerrainLocation(const DtVector& databaseLocation,
567  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
568 
597  virtual bool closestTerrainLocation(const DtVector& curPosition,
598  DtVector& intersection, bool ignoreWater, bool* dataAvailable = 0,
599  bool overrideBlockingAssert = false) const;
600 
631  virtual bool intersect(const DtChord& chord, DtPoint& intersectionPoint,
632  double& intersectionTime, bool* dataAvailable = 0,
633  bool overrideBlockingAssert = false) const;
634 
663  virtual bool intersect(const DtChord& chord,
667  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
668 
694  virtual bool allIntersectsAlongChord(const DtChord& chord,
697  DtIntersectionRecord::INT_ALL_DATA, bool* dataAvailable = 0,
698  bool overrideBlockingAssert = false) const;
699 
701 
702 
703 
704 
705 
706 
707 
708 
709 
710 
711  typedef boost::unordered_set<DtVrfObject*> DtVrfObjectUniqueContainer;
712  typedef boost::unordered_set<const DtVrfObject*> DtVrfConstObjectUniqueContainer;
713 
714  bool getVrfObjects(DtExtent& extent, DtVrfObjectUniqueContainer& objects);
715  bool getVrfObjects(DtExtent& extent, DtVrfConstObjectUniqueContainer& objects) const;
716 
717 
718  bool getVrfObjects(DtVrfObjectPredicate& predicate, DtExtent& extent,
719  DtVrfObjectUniqueContainer& objects);
720 
721  bool getVrfObjects(DtVrfObjectPredicate& predicate, DtExtent& extent,
722  DtVrfConstObjectUniqueContainer& objects) const;
723 
724  bool getVrfObjects(DtChord& chord, std::list<DtVrfObject*>& objects);
725  bool getVrfObjects(DtChord& chord, std::list<const DtVrfObject*>& objects) const;
726 
727  bool getVrfObjects(DtVrfObjectPredicate& predicate, DtChord& chord,
728  std::list<DtVrfObject*>& objects);
729  bool getVrfObjects(DtVrfObjectPredicate& predicate, DtChord& chord,
730  std::list<const DtVrfObject*>& objects) const;
732 
734 
735 
736 
737 
738 
739 
740 
741 
742 
743 
744  void visitVrfObjects(const DtExtent& extent, class DtSpatialSelectionFunctor& callback) const;
745  void visitVrfObjects(const DtChord& chord, class DtSpatialSelectionFunctor& callback) const;
747 
765  virtual void groundClamp(DtPoint& databaseCoord, float const offset = 0,
766  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
767 
785  virtual void groundClamp(DtVector& databaseCoord, float const offset = 0,
786  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
787 
792  virtual void getVrfObjectsAlongChord(const DtVector& databaseStart,
793  const DtVector& databaseEnd, std::list<const DtVrfObject*>& orderedList) const;
794 
802  virtual DtManagedObjectListConstPtr getSpatiallyManagedVrfObjectList();
803 
809  virtual bool initializeSpatialVrfObjectOrganization();
810 
822  virtual void calcSpatialMgrResolution(const DtManagedObjectListConstPtr& vrfObjList);
823 
830  virtual DtFilterFunctionPredicate getSpatialOrganizationPredicate();
831 
834  static bool spatialOrganizationObjectFilterFcn(const DtVrfObject* obj, void* usr);
835 
846  virtual bool processSpatialOrganizationObjectFilterFcn(const DtVrfObject* obj);
847 
849  static void querySpatialSubdivisionConfigurationCallback(DtSimMessage* msg, void* usr);
850  static void setSpatialSubdivisionConfigurationCallback(DtSimMessage* msg, void* usr);
851 
853  static void requestSensorDomainsCallback(DtSimMessage* msg, void* usr);
854  virtual void sendSensorDomains();
855 
858  virtual void processQuerySpatialSubdivisionConfiguration(DtSimMessage* msg);
859  virtual void processSetSpatialSubdivisionConfiguration(DtSimMessage* msg);
860 
863  virtual bool useVrfObjectSpatialSub() const;
864  virtual void setUseVrfObjectSpatialSub(bool yesOrNo);
865 
866 
869  virtual bool isSpatialMgrResolutionUserSpecified() const;
870  virtual void setSpatialMgrResolutionUserSpecified(bool yesOrNo);
871 
874  virtual unsigned int vrfObjectSpatialSubXResolution() const;
875  virtual unsigned int vrfObjectSpatialSubYResolution() const;
876  virtual unsigned int vrfObjectSpatialSubZResolution() const;
878 
883  virtual void setVrfObjectSpatialSubXResolution(unsigned int newXResolution);
884  virtual void setVrfObjectSpatialSubYResolution(unsigned int newYResolution);
885  virtual void setVrfObjectSpatialSubZResolution(unsigned int newZResolution);
887 
889 
891  virtual DtTerrainInterface* terrainInterface();
893  virtual const DtTerrainInterface* terrainInterface() const;
894 
897  virtual void setTerrainInterface(DtTerrainInterface* newTerrainDatabase);
898 
899  virtual DtSimManager* simManager();
900  virtual const DtSimManager* simManager() const;
901  virtual void setSimManager(DtSimManager* newSimManager);
902 
903  virtual DtVrfObjectManager* objectManager();
904  virtual const DtVrfObjectManager* objectManager() const;
905  virtual void setVrfObjectManager(DtVrfObjectManager* newObjectMgr);
906 
907 
908  virtual DtEnvironmentalStateManager * environmentalStateManager();
909  virtual const DtEnvironmentalStateManager * environmentalStateManager() const;
910  virtual void setEnvironmentalStateManager(DtEnvironmentalStateManager * manager);
911 
912 
914  virtual DtDynamicTerrainManager * dynamicTerrainManager();
915  virtual const DtDynamicTerrainManager * dynamicTerrainManager() const;
916  virtual void setDynamicTerrainManager(DtDynamicTerrainManager* manager);
917 
920  virtual MAKVRinTerra::DtDynamicFeatureSet* dynamicObjectFeatures() const;
921 
923 
924  virtual DtPhysicalWorldParams* parameters();
925  virtual const DtPhysicalWorldParams* parameters() const;
926 
927 
931 
932  virtual DtSensorSignatureManager* sensorSignatureManager();
933  virtual const DtSensorSignatureManager* sensorSignatureManager() const;
934 
935 
956  virtual bool checkLineOfSight(const DtVrfObject& viewingObject,
957  const DtVector& databaseViewingPoint, const DtVrfObject& targetObject,
958  bool* terrainDataAvailable = 0,
959  const DtString& featureQueryName = "default",
960  DtVector* intersectionPoint = 0) const;
961 
975  virtual bool checkLineOfSight(const DtVrfObject& viewingObject,
976  const DtVector& databaseViewingPoint, const DtVector& databaseTargetPoint,
977  bool* terrainDataAvailable = 0,
978  const DtString& featureQueryName = "default",
979  DtVector* intersectionPoint = 0) const;
980 
994  virtual bool checkLineOfSight(const DtVector& databaseViewingPoint,
995  const DtVrfObject& targetObject, bool* terrainDataAvailable = 0,
996  const DtString& featureQueryName = "default",
997  DtVector* intersectionPoint = 0) const;
998 
1009  virtual bool checkLineOfSightWithoutObjects(
1010  const DtVector& databaseViewingPoint,
1011  const DtVector& databaseTargetPoint,
1012  bool* terrainDataAvailable = 0,
1013  const DtString& featureQueryName = "default",
1014  DtVector* intersectionPoint = 0);
1015 
1016 
1033  virtual bool checkLineOfFire(const DtVrfObject& viewingObject,
1034  const DtVector& databaseViewingPoint, const DtVrfObject& targetObject,
1035  const DtVector& databaseTargetPoint,
1036  bool* terrainDataAvailable = 0,
1037  double* normIntersectDistance = 0,
1038  DtVrfObject** intersectObject = 0,
1039  DtVector* intersectingPoint = 0);
1040 
1042  virtual bool checkLineOfFire(const DtVrfObject& viewingObject,
1043  const DtVector& databaseViewingPoint, const DtVector& databaseTargetPoint,
1044  bool* terrainDataAvailable = 0,
1045  double* normIntersectDistance = 0,
1046  DtVrfObject** intersectionObject = 0,
1047  DtVector* intersectingPoint = 0);
1048 
1050  virtual bool checkLineOfFire(const DtVector& databaseViewingPoint,
1051  const DtVector& databaseTargetPoint,
1052  bool* terrainDataAvailable = 0,
1053  double* normIntersectDistance = 0,
1054  DtVrfObject** intersectionObject = 0,
1055  DtVector* intersectingPoint = 0);
1056 
1069  virtual bool checkLineOfFireWithoutObjects(
1070  const DtVector& databaseViewingPoint,
1071  const DtVector& databaseTargetPoint,
1072  bool* terrainDataAvailable = 0,
1073  double* normIntersectDistance = 0,
1074  DtVrfObject** intersectionObject = 0,
1075  DtVector* intersectingPoint = 0);
1076 
1082  static void objectAboutToBeRemovedCb(DtVrfObject * vrfObject, void * usr);
1083 
1084  virtual void expireDataLoadRequestsBeforeTime(const double& time);
1085 
1089  virtual double thermoclinePermeability(
1090  const DtPoint& startPoint, const DtPoint& endPoint) const;
1091 
1094  virtual bool checkLineOfSight(const DtLineOfSightTestContainer& losTests,
1095  DtVrfLineOfSightCheckParams& losCheckParams) const;
1096 
1097  const DtLineOfSightTestContainer& lineOfSightTestsToPerform() const
1098  {
1099  return myLineOfSightTestsToPerform;
1100  }
1101 
1106  const DtChord createWorldIntersectionChord(const DtVector& databaseLocation) const;
1107 
1108 protected:
1109 
1110 
1115 
1116  typedef std::map<DtLosTestKey, DtVrfLineOfSightFunctorSP> DtKeyedLineOfSightTestContainer;
1117  typedef DtKeyedLineOfSightTestContainer::iterator DtMasterLosTestIter;
1118  typedef DtKeyedLineOfSightTestContainer::const_iterator DtMasterLosTestConstIter;
1119 
1121 
1122  typedef DtLineOfSightTestContainer::iterator DtLosTestIter;
1123  typedef DtLineOfSightTestContainer::const_iterator DtLosTestConstIter;
1124 
1126 
1127  virtual void addInitialLosChecks();
1128 
1134 
1135  virtual void setDefaultLineOfSightTestOrder(
1136  const DtRwNLengthStringVector& lineOfSightTestsAndOrder);
1137  virtual void setLineOfSightTestOrder(
1138  const DtRwNLengthStringVector& lineOfSightTestsAndOrder);
1139 
1140 
1146  virtual void addLineOfSightTest(const DtLosTestKey&, DtVrfLineOfSightFunctorSP losTest);
1147 
1150  virtual void removeLineOfSightTest(const DtLosTestKey& testKey);
1151 
1156  virtual void performTest(const DtLosTestKey& testToRun);
1157 
1161  virtual void doNotPerformTest(const DtLosTestKey& testToRun);
1162 
1166  virtual void doNotPerformTest(DtVrfLineOfSightFunctorSP losTest);
1167 
1168 
1173  static bool canBlockLineOfSight(const DtVrfObject* object, void* usr);
1174 
1179  virtual DtVector localLineOfSightTestLocation(const DtVrfObject& object) const;
1180 
1191 
1194  virtual bool checkVrfObjectsForLOS(
1195  const DtVrfLineOfSightCheckParams& losCheckParams) const;
1196 
1199  virtual bool checkFeaturesForLOS(
1200  const DtVrfLineOfSightCheckParams& losCheckParams) const;
1201 
1204  virtual bool checkTerrainForLOS(
1205  const DtVrfLineOfSightCheckParams& losCheckParams) const;
1207 
1208 public:
1217  virtual bool intersectVrfObjects(const DtVrfObject* const primaryVrfObject,
1218  const DtVector& databaseStartPoint,
1219  const DtVrfObject* const secondaryVrfObject,
1220  const DtVector& databaseEndPoint,
1221  double& interxTime,
1222  DtVrfObject** intersectedObject = 0,
1223  DtVector* intersectNormal = 0,
1224  const std::list<DtUUID>& ignoreList = std::list<DtUUID>()) const;
1225 
1230  virtual bool intersectVrfObjects(const DtVrfObject* const primaryVrfObject,
1231  const DtVector& databaseStartPoint, const DtVector& databaseEndPoint,
1232  double& interxTime,
1233  DtVrfObject** intersectedObject = 0,
1234  DtVector* intersectNormal = 0,
1235  const std::list<DtUUID>& ignoreList = std::list<DtUUID>()) const;
1236 
1240  virtual bool intersectsVrfObject(const DtVrfObject& vrfObjectToTest,
1241  const DtVector& databaseStartPoint, const DtVector& databaseEndPoint,
1242  double& distToIntersect, DtVector* surfaceNormal = 0) const;
1243 
1244 public:
1246  virtual void cacheInformationForTerrainArea(int requestId, int lowestLOD, int highestLOD, const DtExtent& cacheArea,
1247  double& estimatedTime, double& estimatedSize, std::vector<std::string>& elevationLayers, std::vector<std::string>& modelLayers) const;
1248 
1251  virtual void cacheTerrainArea(int requestId, int lowestLOD, int highestLOD, const DtExtent& cacheArea, DtCacheProgressCallbackFunction fcn = 0, void* usr = 0);
1252 
1254  virtual void cancelCacheTerrainArea(int requestId);
1255 
1256 protected:
1257 
1258  bool testInvariant() const;
1259 
1262  virtual DtSpatialVrfObjectManagerInterface* spatialVrfObjectManager();
1263  virtual const DtSpatialVrfObjectManagerInterface* spatialVrfObjectManager() const;
1264  virtual void setSpatialVrfObjectManager(DtSpatialVrfObjectManagerInterface* newSpatialVrfObjectMgr);
1265 
1269  virtual DtPhysicalWorldParams* createParameters();
1270 
1273  virtual DtSensorSignatureManager* createSensorSignatureManager();
1274 
1280  virtual void processObjectAboutToBeRemoved(DtVrfObject * vrfObject);
1281 
1284  virtual void performTerrainPreload();
1285 
1286 protected:
1287 
1289  boost::shared_ptr<MAKVRinTerra::DtDynamicFeatureSet> myDynamicObjectFeatures;
1290 
1296 
1298 
1300 
1305 
1308 
1310 
1312 
1314 
1316 
1318 
1320 
1321  boost::shared_ptr<DtVrfCallbackQueue> mySoilTypeLookupQueue;
1322 
1323  friend class IntersectVrfObjectFunctor;
1324 };
1325 
1326 inline const DtFilename& DtPhysicalWorld::physicalWorldFile() const
1327 {
1328  return myPhysicalWorldFile;
1329 }
1330 
1332 {
1333 public:
1334  DtExpireOlderThanCommand(DtPhysicalWorld* physicalWorld);
1335  virtual bool execute(const DtString& parameters);
1336  virtual DtString help(const DtString& parameters);
1337  virtual bool showInHelp() const { return true; };
1338 protected:
1339  DtPhysicalWorld* myPhysicalWorld;
1340 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)