VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/physicalWorld.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2009 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00008 
00010 
00011 #pragma once
00012 
00013 #include <geometry/intersectionRecord.h>
00014 #include <geometry/point.h>
00015 #include <vlutil/vlConfig.h>
00016 #include <vlutil/vlFilename.h>
00017 #include <list>
00018 #include <set>
00019 #include <map>
00020 #include "vrfobjcore/filteredObjList.h"
00021 #include "vrfobjcore/fltrFcnPred.h"
00022 #include "vrfobjcore/vrfLineOfSightFunctor.h"
00023 #include "vrfutil/consoleCommandManager.h"
00024 
00025 class DtSimManager;
00026 
00027 class DtFilename;
00028 class DtGeodeticCoord;
00029 class Coordinate_System;
00030 class DtTerrainInterface;
00031 class DtVrfObjectManager;
00032 class DtSpatialVrfObjectManagerInterface;
00033 class DtVectorObstructionManager;
00034 class DtEnvironmentalStateManager;
00035 class DtExtent;
00036 class DtChord;
00037 class DtSurface;
00038 
00039 class DtVector;
00040 class DtPoint;
00041 
00042 class DtVrfObjectPredicate;
00043 
00044 class DtVrfObject;
00045 class DtDcm;
00046 class DtChordIntersectionRecord;
00047 class DtChordIntersectRecordList;
00048 class DtVectorNetworkIntersectionRecord;
00049 class DtVectorNetworkIntersectionRecordList;
00050 class DtVectorNetworkRecord;
00051 
00052 class DtSimMessage;
00053 class DtPhysicalWorldParams;
00054 class DtSensorSignatureManager;
00055 class DtVrfLineOfSightCheckParams;
00056 class DtRwNLengthStringVector;
00057 
00058 class DtExpireOlderThanCommand;
00059 
00086 #include "vrfobjcore/vrfobjcoreDefines.h"
00087 class DT_DLL_vrfobjcore DtPhysicalWorld
00088 {
00089 public:
00090 
00092    DtPhysicalWorld(DtSimManager* simManager);
00093    
00095    virtual ~DtPhysicalWorld();
00096 
00097 private:
00099    DtPhysicalWorld(const DtPhysicalWorld& orig);
00100 
00102    DtPhysicalWorld& operator=(const DtPhysicalWorld& orig);
00103 
00104 public:
00105 
00114    virtual bool initialize();
00115 
00124    virtual bool reinitialize();
00125 
00127    virtual bool reset();
00128 
00134    virtual bool loadParametersFromFile(const DtFilename& filename);
00135 
00141    virtual bool loadPhysicalWorldFile(const DtFilename& filename);
00142 
00144    virtual void processParameters();
00145 
00148    const DtFilename& physicalWorldFile() const;
00149 
00151    virtual bool parametersLoaded() const;
00152 
00172    virtual bool isValidState() const;
00173 
00179    virtual void tick();
00180 
00181    
00185 
00191 
00192    virtual Coordinate_System* coordinateSystem();
00193    virtual const Coordinate_System* coordinateSystem() const;
00194 
00196    virtual void geocentricToDatabase(const DtVector& in, DtVector&  out) const;
00197 
00199    virtual void geocentricToDatabase(const DtDcm& in, DtDcm& out) const;
00200 
00202    virtual void geocentricToDatabase(const DtVector& vIn, const DtDcm& dIn,
00203       DtVector&  vOut, DtDcm& dOut) const;
00204    
00206    virtual void geocentricToDatabase(const DtExtent& in, DtExtent& out) const;
00207 
00209    virtual void databaseToGeocentric(const DtVector& in, DtVector&  out) const;
00210 
00212    virtual void databaseToGeocentric(const DtDcm& in, DtDcm& out) const;
00213 
00215    virtual void databaseToGeocentric(const DtVector& vIn, const DtDcm& dIn,
00216       DtVector&  vOut, DtDcm& dOut) const;
00217 
00219    virtual void databaseToGeocentric(const DtExtent& in, DtExtent& out) const;
00220 
00222    virtual void databaseToGeodetic(const DtVector& databasePosition, DtGeodeticCoord& geodeticPosition) const;
00224    virtual void databaseToGeodetic(const DtVector& databasePosition, DtVector& geodeticPosition) const;
00226    virtual void databaseToGeodetic(const DtExtent& extent, DtExtent& destExtent) const;
00227 
00229    virtual void geodeticToDatabase(const DtExtent& extent, DtExtent& destExtent) const;
00231    virtual void geodeticToDatabase(const DtGeodeticCoord& geodeticPosition,
00232       DtVector& databasePosition) const;
00234    virtual void geodeticToDatabase(const DtVector& geodeticPosition,
00235       DtVector& databasePosition) const;
00236 
00239    virtual void topoToDatabase(const DtVector& databasePosition, DtDcm& topoToDatabase) const;
00242    virtual void databaseToTopo(const DtVector& databasePosition, DtDcm& databaseToTopo) const;
00243 
00251    virtual DtVector down(const DtVector& databasePosition) const;
00252  
00277    virtual bool intersect(const DtChord& chord,
00278       const std::list<const DtVrfObject*> objectsToIgnore = 
00279       std::list<const DtVrfObject*>(), bool* dataAvailable = 0,
00280       bool overrideBlockingAssert = false) const;
00281 
00283 
00284 
00285 
00286 
00287 
00288 
00289 
00290 
00291 
00292 
00293 
00294 
00295 
00296 
00297 
00298 
00299 
00300 
00301 
00302 
00303 
00304 
00305 
00306 
00307 
00308 
00309 
00310 
00311    virtual double terrainHeight(const DtPoint& databaseLocation, 
00312       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00313    virtual double terrainHeight(double lat, double lon, bool* dataAvailable = 0,
00314       bool overrideBlockingAssert = false) const;
00315    virtual double terrainHeight(const DtVector& databaseLocation, 
00316       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00318    
00320 
00321 
00322 
00323 
00324 
00325 
00326 
00327 
00328 
00329 
00330 
00331 
00332 
00333 
00334 
00335 
00336 
00337 
00338 
00339 
00340 
00341    virtual bool terrainHeight(const DtPoint& databaseLocation, double& height,
00342       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00343    virtual bool terrainHeight(double lat, double lon, double& height,
00344       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00345    virtual bool terrainHeight(const DtVector& databaseLocation, double& height,
00346       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00348 
00350 
00351 
00352 
00353 
00354 
00355 
00356 
00357 
00358 
00359 
00360 
00361 
00362 
00363 
00364 
00365 
00366 
00367 
00368 
00369 
00370 
00371 
00372 
00373 
00374 
00375 
00376 
00377 
00378 
00379 
00380 
00381 
00382 
00383 
00384 
00385 
00386    virtual bool terrainHeightAndSurface(const DtPoint& databaseLocation, 
00387       double& height, DtSurface& surface, bool* dataAvailable = 0,
00388       bool overrideBlockingAssert = false) const;
00389    virtual bool terrainHeightAndSurface(double lat, double lon, double& height, 
00390       DtSurface& surface, bool* dataAvailable = 0, 
00391       bool overrideBlockingAssert = false) const;
00392    virtual bool terrainHeightAndSurface(const DtVector& databaseLocation, 
00393       double& height, DtSurface& surface, bool* dataAvailable = 0,
00394       bool overrideBlockingAssert = false) const;
00395    virtual bool terrainHeightAndSurface(const DtVector& databaseLocation, 
00396       double& heightAtLocation, DtChordIntersectionRecord& intersectionRec,
00397       DtIntersectionRecord::DtIntersectionType irtFlag = 
00398       DtIntersectionRecord::INT_ALL_DATA,
00399       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00401 
00403 
00404 
00405 
00406 
00407 
00408 
00409 
00410 
00411 
00412 
00413 
00414 
00415 
00416 
00417 
00418 
00419 
00420 
00421 
00422 
00423 
00424 
00425 
00426 
00427 
00428 
00429 
00430 
00431 
00432 
00433    virtual bool terrainSurface(const DtPoint& databaseLocation, 
00434       DtSurface& surface, bool* dataAvailable = 0, 
00435       bool overrideBlockingAssert = false) const;
00436    virtual bool terrainSurface(double lat, double lon, DtSurface& surface, 
00437       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00438    virtual bool terrainSurface(const DtVector& databaseLocation, 
00439       DtSurface& surface, bool* dataAvailable = 0, 
00440       bool overrideBlockingAssert = false) const;
00441 
00442    virtual DtSurface terrainSurface(const DtPoint& databaseLocation,
00443       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00444    virtual DtSurface terrainSurface(double lat, double lon, 
00445       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00446    virtual DtSurface terrainSurface(const DtVector& databaseLocation, 
00447       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00449 
00486    virtual bool closestTerrainLocation(const DtPoint& databaseLocation, 
00487       DtPoint& intersectionPoint, DtVectorNetworkRecord* vectorNetworkRecord =0, 
00488       DtVectorNetworkIntersectionRecord* vecNetworkIntersectionRecord = 0,
00489       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00490 
00493    virtual bool closestTerrainLocation(double lat, double lon, 
00494       DtPoint& intersectionPoint, DtVectorNetworkRecord* vectorNetworkRecord =0, 
00495       DtVectorNetworkIntersectionRecord* vecNetworkIntersectionRecord = 0,
00496       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00497 
00499    virtual bool closestTerrainLocation(const DtVector& databaseLocation, 
00500       DtPoint& intersectionPoint, DtVectorNetworkRecord* vectorNetworkRecord =0, 
00501       DtVectorNetworkIntersectionRecord* vecNetworkIntersectionRecord = 0,
00502       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00503 
00506    virtual bool closestTerrainLocation(const DtPoint& databaseLocation, 
00507       DtChordIntersectionRecord& record, 
00508       DtIntersectionRecord::DtIntersectionType irtFlag = DtIntersectionRecord::INT_ALL_DATA,
00509       DtVectorNetworkRecord* vectorDatarecord = 0, 
00510       DtVectorNetworkIntersectionRecord* vectorIntersectionRecord = 0,
00511       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00512 
00515    virtual bool closestTerrainLocation(double lat, double lon, 
00516       DtChordIntersectionRecord& record,
00517       DtIntersectionRecord::DtIntersectionType irtFlag = DtIntersectionRecord::INT_ALL_DATA,
00518       DtVectorNetworkRecord* vectorDatarecord = 0, 
00519       DtVectorNetworkIntersectionRecord* vectorIntersectionRecord = 0,
00520       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00521 
00523    virtual bool closestTerrainLocation(const DtVector& databaseLocation, 
00524       DtChordIntersectionRecord& record, 
00525       DtIntersectionRecord::DtIntersectionType irtFlag = DtIntersectionRecord::INT_ALL_DATA,
00526       DtVectorNetworkRecord* vectorDatarecord = 0, 
00527       DtVectorNetworkIntersectionRecord* vectorIntersectionRecord = 0,
00528       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00529 
00558    virtual bool closestTerrainLocation(const DtVector& curPosition, 
00559       DtVector& intersection, bool ignoreWater, bool* dataAvailable = 0,
00560       bool overrideBlockingAssert = false) const;
00561 
00592    virtual bool intersect(const DtChord& chord, DtPoint& intersectionPoint, 
00593       double& intersectionTime, DtVectorNetworkRecord *record = 0, 
00594       DtVectorNetworkIntersectionRecord *intersectionRecord = 0,
00595       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00596     
00625    virtual bool intersect(const DtChord& chord, 
00626       DtChordIntersectionRecord& record,
00627       DtIntersectionRecord::DtIntersectionType irtFlag = 
00628       DtIntersectionRecord::INT_ALL_DATA,
00629       DtVectorNetworkRecord *vectorDataRecord = 0, 
00630       DtVectorNetworkIntersectionRecord *vectorIntersectionRecord = 0,
00631       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00632 
00634 
00635 
00636 
00637 
00638 
00639 
00640 
00641 
00642 
00643 
00644    bool getVrfObjects(DtExtent& extent, std::set<const DtVrfObject*>& objects) const;
00645    bool getVrfObjects(DtExtent& extent, std::set<DtVrfObject*>& objects);
00646    
00647    bool getVrfObjects(DtVrfObjectPredicate& predicate, DtExtent& extent,
00648       std::set<DtVrfObject*>& objects);
00649 
00650    bool getVrfObjects(DtVrfObjectPredicate& predicate, DtExtent& extent,
00651       std::set<const DtVrfObject*>& objects) const;
00652 
00653    bool getVrfObjects(DtChord& chord, std::list<DtVrfObject*>& objects);
00654    bool getVrfObjects(DtChord& chord, std::list<const DtVrfObject*>& objects) const;
00655    
00656    bool getVrfObjects(DtVrfObjectPredicate& predicate, DtChord& chord,
00657       std::list<DtVrfObject*>& objects);
00658    bool getVrfObjects(DtVrfObjectPredicate& predicate, DtChord& chord,
00659       std::list<const DtVrfObject*>& objects) const;
00661 
00663 
00664 
00665 
00666 
00667 
00668 
00669 
00670 
00671 
00672 
00673    void visitVrfObjects(const DtExtent& extent, class DtSpatialSelectionFunctor& callback) const;
00674    void visitVrfObjects(const DtChord& chord, class DtSpatialSelectionFunctor& callback) const;
00676 
00694    virtual void groundClamp(DtPoint& databaseCoord, float const offset = 0,
00695       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00696 
00714    virtual void groundClamp(DtVector& databaseCoord, float const offset = 0,
00715       bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
00716 
00721    virtual void getVrfObjectsAlongChord(const DtVector& databaseStart,
00722       const DtVector& databaseEnd, std::list<const DtVrfObject*>& orderedList) const;
00723 
00731    virtual DtManagedObjectListConstPtr getSpatiallyManagedVrfObjectList();
00732 
00738    virtual bool initializeSpatialVrfObjectOrganization();
00739 
00751    virtual void calcSpatialMgrResolution(const DtManagedObjectListConstPtr& vrfObjList);
00752 
00759    virtual DtFilterFunctionPredicate getSpatialOrganizationPredicate();
00760 
00763    static bool spatialOrganizationObjectFilterFcn(const DtVrfObject* obj, void* usr);
00764 
00775    virtual bool processSpatialOrganizationObjectFilterFcn(const DtVrfObject* obj);
00776 
00778    static void querySpatialSubdivisionConfigurationCallback(DtSimMessage* msg, void* usr);
00779    static void setSpatialSubdivisionConfigurationCallback(DtSimMessage* msg, void* usr);
00780 
00783    virtual void processQuerySpatialSubdivisionConfiguration(DtSimMessage* msg);
00784    virtual void processSetSpatialSubdivisionConfiguration(DtSimMessage* msg);
00785 
00788    virtual bool useVrfObjectSpatialSub() const;
00789    virtual void setUseVrfObjectSpatialSub(bool yesOrNo);
00790 
00791 
00794    virtual bool isSpatialMgrResolutionUserSpecified() const;
00795    virtual void setSpatialMgrResolutionUserSpecified(bool yesOrNo);
00796 
00799    virtual unsigned int vrfObjectSpatialSubXResolution() const; 
00800    virtual unsigned int vrfObjectSpatialSubYResolution() const;
00801    virtual unsigned int vrfObjectSpatialSubZResolution() const;
00803 
00808    virtual void setVrfObjectSpatialSubXResolution(unsigned int newXResolution);
00809    virtual void setVrfObjectSpatialSubYResolution(unsigned int newYResolution);
00810    virtual void setVrfObjectSpatialSubZResolution(unsigned int newZResolution);
00812    
00814 
00815 
00819    virtual DtVectorObstructionManager* vectorObstructionManager();
00820    virtual const DtVectorObstructionManager* vectorObstructionManager() const;
00821 
00823    virtual DtTerrainInterface* terrainInterface();
00825    virtual const DtTerrainInterface* terrainInterface() const;
00826 
00829    virtual void setTerrainInterface(DtTerrainInterface* newTerrainDatabase);
00830 
00831    virtual DtSimManager* simManager();
00832    virtual const DtSimManager* simManager() const;
00833    virtual void setSimManager(DtSimManager* newSimManager);
00834    
00835    virtual DtVrfObjectManager* objectManager();
00836    virtual const DtVrfObjectManager* objectManager() const;
00837    virtual void setVrfObjectManager(DtVrfObjectManager* newObjectMgr);
00838 
00839 
00840    virtual DtEnvironmentalStateManager * environmentalStateManager();
00841    virtual const DtEnvironmentalStateManager * environmentalStateManager() const;
00842    virtual void setEnvironmentalStateManager(DtEnvironmentalStateManager * manager);
00843 
00844 
00846 
00847    virtual DtPhysicalWorldParams* parameters();
00848    virtual const DtPhysicalWorldParams* parameters() const;
00849 
00850 
00854 
00855    virtual DtSensorSignatureManager* sensorSignatureManager();
00856    virtual const DtSensorSignatureManager* sensorSignatureManager() const;
00857 
00858 
00867    virtual bool checkLineOfSight(const DtVrfObject& viewingObject, 
00868       const DtVector& databaseViewingPoint, const DtVrfObject& targetObject,
00869       bool* terrainDataAvailable = 0) const;
00870 
00878    virtual bool checkLineOfSight(const DtVector& databaseViewingPoint, 
00879       const DtVrfObject& targetObject, bool* terrainDataAvailable = 0) const;
00880 
00886    static void objectAboutToBeRemovedCb(DtVrfObject * vrfObject, void * usr);
00887 
00888    virtual void expireDataLoadRequestsBeforeTime(const double& time);
00889 
00890 protected:
00891 
00892 
00896    typedef DtString DtLosTestKey;
00897 
00898    typedef std::map<DtLosTestKey, DtVrfLineOfSightFunctorSP> DtKeyedLineOfSightTestContainer;
00899    typedef DtKeyedLineOfSightTestContainer::iterator DtMasterLosTestIter;
00900    typedef DtKeyedLineOfSightTestContainer::const_iterator DtMasterLosTestConstIter;
00901 
00902    DtKeyedLineOfSightTestContainer myMasterLineOfSightTestContainer;
00903 
00904    typedef std::list<DtVrfLineOfSightFunctorSP> DtLineOfSightTestContainer;
00905    typedef DtLineOfSightTestContainer::iterator DtLosTestIter;
00906    typedef DtLineOfSightTestContainer::const_iterator DtLosTestConstIter;
00907 
00908    DtLineOfSightTestContainer myLineOfSightTestsToPerform;
00909 
00910    virtual void addInitialLosChecks();
00911 
00917 
00918    virtual void setDefaultLineOfSightTestOrder(
00919       const DtRwNLengthStringVector& lineOfSightTestsAndOrder);
00920    virtual void setLineOfSightTestOrder(
00921       const DtRwNLengthStringVector& lineOfSightTestsAndOrder);
00922 
00923 
00929    virtual void addLineOfSightTest(const DtLosTestKey&, DtVrfLineOfSightFunctorSP losTest);
00930 
00933    virtual void removeLineOfSightTest(const DtLosTestKey& testKey);
00934 
00939    virtual void performTest(const DtLosTestKey& testToRun);
00940 
00944    virtual void doNotPerformTest(const DtLosTestKey& testToRun);
00945 
00949    virtual void doNotPerformTest(DtVrfLineOfSightFunctorSP losTest);
00950 
00951 
00953    static bool lineOfSightFilter(const DtVrfObject* object, void* usr);
00954 
00955    virtual void createFeatureSpecificationList(DtVectorNetworkRecord& vecNetworkRecord) const;
00956 
00959    virtual bool checkLineOfSight(const DtLineOfSightTestContainer& losTests, 
00960    const DtVrfLineOfSightCheckParams& losCheckParams) const;
00961 
00966    virtual DtVector localLineOfSightTestLocation(const DtVrfObject& object) const;
00967 
00970    virtual bool checkVrfObjectsForLOS(
00971       const DtVrfLineOfSightCheckParams& losCheckParams) const;
00972 
00975    virtual bool checkVectorNetworkForLOS(
00976       const DtVrfLineOfSightCheckParams& losCheckParams) const;
00977 
00980    virtual bool checkTerrainForLOS(
00981       const DtVrfLineOfSightCheckParams& losCheckParams) const;
00982 
00983    virtual bool intersectVrfObjects(const DtVrfObject& primaryVrfObject, 
00984       const DtVector& databaseStartPoint, const DtVrfObject& secondaryVrfObject) const;
00985 
00989    virtual bool intersectsVrfObject(const DtVrfObject& vrfObjectToTest, 
00990       const DtVector& databaseStartPoint, const DtVector& databaseEndPoint,
00991       double& distToIntersect) const;
00992 
00994    DtManagedObjectListConstPtr  myLineOfSightFilterList;
00995 
00996 protected:
00997 
00998    bool testInvariant() const;
00999 
01004    const DtChord createWorldIntersectionChord(const DtVector& databaseLocation) const;
01005 
01006 
01008    virtual DtSpatialVrfObjectManagerInterface* spatialVrfObjectManager();
01009    virtual const DtSpatialVrfObjectManagerInterface* spatialVrfObjectManager() const;
01010    virtual void setSpatialVrfObjectManager(DtSpatialVrfObjectManagerInterface* newSpatialVrfObjectMgr);
01011 
01015    virtual DtPhysicalWorldParams* createParameters();
01016 
01019    virtual DtSensorSignatureManager* createSensorSignatureManager();
01020 
01026    virtual void processObjectAboutToBeRemoved(DtVrfObject * vrfObject);
01027 
01030    virtual void performTerrainPreload();
01031 
01032 protected:
01033 
01034    DtTerrainInterface*            myTerrainInterface;
01035 
01036    DtVectorObstructionManager*   myVectorObstructionManager;
01037 
01038    bool                          myUseVrfObjectSpatialManager;
01039    bool                          mySpatialMgrResolutionUserSpecified;
01040    unsigned int                  myVrfObjectSpatialSubXResolution;
01041    unsigned int                  myVrfObjectSpatialSubYResolution;
01042    unsigned int                  myVrfObjectSpatialSubZResolution;
01043    
01044    DtSpatialVrfObjectManagerInterface*    mySpatialVrfObjectManager;
01045 
01046    DtManagedObjectListConstPtr   mySpatiallyManagedVrfObjectList;
01047 
01049    DtSimManager*                 mySimManager;
01051    DtVrfObjectManager*           myVrfObjectManager;
01052 
01054    DtPhysicalWorldParams*        myParameters;
01055 
01056    DtSensorSignatureManager*     mySensorSignatureManager;
01057 
01058    DtEnvironmentalStateManager * myEnvironmentalStateManager;
01059 
01060    DtFilename                    myPhysicalWorldFile;
01061 
01062    DtTime                        myLastPreloadTerrainTime;
01063 
01064    DtExpireOlderThanCommand*     myExpireOlderThanCommand;
01065 
01066    friend class IntersectVrfObjectFunctor;
01067 };
01068 
01069 inline const DtFilename& DtPhysicalWorld::physicalWorldFile() const
01070 {
01071    return myPhysicalWorldFile;
01072 }
01073 
01074 class DT_DLL_vrfobjcore DtExpireOlderThanCommand : public DtConsoleCommand
01075 {
01076 public:
01077    DtExpireOlderThanCommand(DtPhysicalWorld* physicalWorld);
01078    virtual bool execute(const DtString& parameters);
01079    virtual DtString help(const DtString& parameters);
01080    virtual bool showInHelp() const { return true; };
01081 protected:
01082    DtPhysicalWorld* myPhysicalWorld;
01083 };

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)