![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2005 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: signatureObjectSensor.h,v $ $Revision: 1.16 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef signatureObjectSensor_H_ 00016 #define signatureObjectSensor_H_ 00017 00018 #include "vrfmodel/objectSensor.h" 00019 #include "tdbutil/symStr.h" 00020 00021 class DtSignatureObjectSensorDescriptor; 00022 class DtSignatureDetectLevelDeterminator; 00023 00039 #include "vrfmodel/vrfmodelDefines.h" 00040 class DT_DLL_vrfmodel DtSignatureObjectSensor : public DtObjectSensor 00041 { 00042 private: 00044 DtSignatureObjectSensor(); 00045 00047 DtSignatureObjectSensor(const DtSignatureObjectSensor & 00048 orig); 00049 00051 const DtSignatureObjectSensor & operator=(const 00052 DtSignatureObjectSensor & orig); 00053 00054 public: 00055 00058 DtSignatureObjectSensor(const DtString& name, 00059 DtVrfObject* owner, 00060 DtSimManager* simManager, 00061 DtComponentDescriptor* desc = 0, 00062 DtReaderWriterRegistry* parentRegistry = 0); 00063 00065 virtual ~DtSignatureObjectSensor(); 00066 00067 virtual bool init(); 00068 00071 virtual DtString type() const; 00072 00080 virtual int sensorType() const; 00081 00085 virtual void tick(); 00086 00091 virtual int determineForceType(DtVrfObject * object,DtRwSensorContactInfo * contactInfo); 00092 00096 static DtSimComponent * creator(const DtString& name, 00097 DtVrfObject* owner, 00098 DtSimManager* simManager, 00099 DtComponentDescriptor* desc = 0, 00100 DtReaderWriterRegistry* parentRegistry = 0); 00101 00102 protected: 00109 virtual bool detectObject(DtVrfObject* object, DtRwSensorContactInfo* contactInfo); 00110 00115 virtual bool continueDetectingObject(DtVrfObject* object, DtRwSensorContactInfo* contactInfo, 00116 bool& contactInfoModified); 00117 00120 virtual double minimumSignatureThreshold() const; 00121 00134 virtual double apparentSignature(DtVrfObject* object, 00135 bool losValueIfTerrainUnavailable) const; 00136 00145 virtual bool determineIdentificationLevel(DtVrfObject * object, 00146 DtRwSensorContactInfo * contactInfo, double appSignature,int & level,bool& contactInfoModified); 00147 00148 virtual void updateSensorContactInfo( DtVrfObject * object, 00149 DtRwSensorContactInfo * contactInfo,int updateLevel); 00150 00154 virtual void addDetectionError(DtRwSensorContactInfo * info,int level); 00155 00159 virtual bool objectInSector(const DtVrfObject * object) const; 00160 //End deprecation 00161 00164 virtual DtVector localSensorPosition() const; 00165 00166 protected: 00167 const DtSignatureObjectSensorDescriptor* mySignatureObjectSensorDescriptor; 00168 DtSymbolString mySensorDomain; 00169 DtVector myLocalSensorPosition; 00170 DtSignatureDetectLevelDeterminator * myDetectionLevelDeterminator; 00171 }; 00172 00173 #endif 00174