![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 #ifndef tacticalSmokeObjSR_H_ 00002 #define tacticalSmokeObjSR_H_ 00003 00004 #include <vrfExtObjects/vrfExtObjectsDefines.h> 00005 #include <vl/envProcessSR.h> 00006 00008 class DT_DLL_vrfExtObjects DtTacticalSmokeObjectRepository : public DtEnvironmentProcessRepository 00009 { 00010 public: 00011 DtTacticalSmokeObjectRepository(); 00012 static DtEnvironmentProcessRepository* create(); 00013 00015 virtual void setTranslationThreshold(double d); 00016 virtual double translationThreshold() const; 00017 00019 virtual void setRotationThreshold(double d); 00020 virtual double rotationThreshold() const; 00021 00023 virtual void setDensityThreshold(double d); 00024 virtual double densityThreshold() const; 00025 00027 virtual void setSigmaThreshold(double d); 00028 virtual double sigmaThreshold() const; 00029 00030 // Utility to compare this repository against a remote estimate 00031 // Returns True is an update should be sent; False otherwise 00032 virtual bool sendNeeded(const DtEnvironmentProcessRepository& asSeenByRemote); 00033 00034 void setClock(DtClock* clock); 00035 DtClock* clock() const; 00036 00037 double lastUpdateTime() const; 00038 void setLastUpdateTime(DtTime t); 00039 00040 protected: 00041 00042 virtual bool sendRecordsNeeded(const DtEnvironmentProcessRepository& asSeenByRemote); 00043 virtual bool sendGaussianNeeded(DtTime dt, DtNetEnvironmentalRecord* rec, DtNetEnvironmentalRecord* recRemote); 00044 virtual bool sendSmokeStateNeeded(DtTime dt, DtNetEnvironmentalRecord* rec, DtNetEnvironmentalRecord* recRemote); 00045 virtual bool sendNetRecNeeded(DtNetEnvironmentalRecord* rec1, DtNetEnvironmentalRecord* rec2); 00046 00047 protected: 00048 // Thresholds for send-side dead reckoning (used to limit #updates sent) 00049 double myTranslationThreshold; 00050 double myRotationThreshold; 00051 double myDensityThreshold; 00052 double mySigmaThreshold; 00053 00054 // Helpers for send-side dead reckoning (used to limit #updates sent) 00055 DtClock* myClock; 00056 DtTime myLastUpdateTime; 00057 }; 00058 00059 #endif 00060 00061