![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: rwSensorContactInfo.h,v $ $Revision: 1.14 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef sensorContactInfo_H_ 00013 #define sensorContactInfo_H_ 00014 00015 #include "vrfutil/rdrWritr.h" 00016 #include "vrfutil/rwReal.h" 00017 #include "vrfutil/rwList.h" 00018 #include "vrfutil/rwString.h" 00019 #include "vrfutil/rwVector.h" 00020 #include "vrfutil/rwInt.h" 00021 #include "vrfutil/nLenIntVec.h" 00022 #include <vlutil/vlTime.h> 00023 #include "vrfutil/rwFormType.h" 00024 #include "vrfutil/rwTaitBryan.h" 00025 #include "vrfutil/rwObjType.h" 00026 #include "vrfutil/rwForce.h" 00027 #include "vrfutil/rwAppearance.h" 00028 #include <vl/hostStructs.h> 00029 #include "vrfutil/vrfutilDefines.h" 00030 00031 class DtReaderWriterRegistry; 00032 00034 enum DtCIDLevelType 00035 { 00036 LEVEL_N0_DETECTION = 0, 00037 LEVEL_DETECTED, 00038 LEVEL_CLASSIFIED, 00039 LEVEL_IDENTIFIED, 00040 LEVEL_FULL_KNOWLEDGE 00041 }; 00042 00043 00045 typedef enum 00046 { 00047 DtSensorTypeUnknown = 0, 00048 DtSensorTypeVisual = 1, 00049 DtSensorTypeRadar = 2, 00050 DtSensorTypeSonar = 3, 00051 DtSensorTypeInfrared = 4, 00052 DtSensorTypeSpotReport = 5 00053 } DtSensorTypeEnum; 00054 00062 00063 class DT_DLL_vrfutil DtRwSensorContactInfo : public DtReaderWriter 00064 { 00065 public: 00066 DtRwSensorContactInfo(); 00067 00068 DtRwSensorContactInfo(const DtString& name, 00069 DtReaderWriterRegistry* const parentRegistry = NULL); 00070 DtRwSensorContactInfo(const DtSymbolString& name, 00071 DtReaderWriterRegistry* const parentRegistry = NULL); 00072 00073 DtRwSensorContactInfo(const DtRwSensorContactInfo& orig, 00074 DtReaderWriterRegistry* const parentRegistry = NULL); 00075 00076 virtual ~DtRwSensorContactInfo(); 00077 00078 DtRwSensorContactInfo& operator=(const DtRwSensorContactInfo& orig); 00079 00082 00083 virtual const DtEntityIdentifier& id() const { return myId; }; 00084 virtual void setId(const DtEntityIdentifier& id) { myId = id; }; 00086 00088 00089 virtual double originalDetectionTime() const { return myOriginalTimeOfDetection; }; 00090 virtual void setOriginalDetectionTime(DtReal origTime) { myOriginalTimeOfDetection = origTime; }; 00092 00094 00095 virtual void setLastTimeOfDetection(double time) { myLastTimeOfDetection = time; }; 00096 virtual double lastDetectionTime() const { return myLastTimeOfDetection; }; 00098 00100 00101 virtual DtString contactName() const { return myContactName; }; 00102 virtual void setContactName(const DtString& name) { myContactName = name; }; 00104 00106 00107 virtual int combatIdentificationLevel() const {return myCombatIdentificationLevel; }; 00108 virtual void setCombatIdentificationLevel(int level) { myCombatIdentificationLevel = level; }; 00110 00113 00114 virtual double detectionError() const {return myDetectionError; }; 00115 virtual void setDetectionError(double level) { myDetectionError = level; }; 00117 00120 00121 virtual void setContactPosition(const DtVector& vector); 00122 virtual DtVector contactPosition() const; 00124 00127 00128 virtual void setContactOrientation( const DtTaitBryan& orientation ); 00129 virtual DtTaitBryan contactOrientation() const; 00131 00134 00135 virtual void setContactVelocity( const DtVector& velocity ); 00136 virtual DtVector contactVelocity() const; 00138 00143 00144 virtual void setContactType(const DtObjectType& type); 00145 virtual DtObjectType contactType() const; 00147 00150 00151 virtual void setContactForce(const DtForceType& force); 00152 virtual DtForceType contactForce() const; 00154 00157 00158 virtual void setContactFormation(const DtAggregateFormation formation); 00159 virtual DtAggregateFormation contactFormation() const; 00160 virtual DtString contactFormationString() const; 00162 00163 00169 00170 virtual void setContactActivity(DtU32 activityEnum); 00171 virtual DtU32 contactActivity() const; 00173 00175 00176 virtual void setContactAppearance(const DtAppearance & app); 00177 virtual const DtAppearance& contactAppearance() const; 00178 virtual DtAppearance& contactAppearance() ; 00180 00182 virtual const DtNLengthIntegerVector& contactSources() const; 00183 virtual void setContactSources(const DtNLengthIntegerVector& sources); 00184 00188 virtual bool addContactSource(int source); 00189 00193 virtual bool addContactSources(const DtNLengthIntegerVector& sources); 00194 00196 00197 virtual void removeContactSource(int source); 00199 00202 00203 virtual int findContactSource( int source); 00205 00207 virtual DtRwSensorContactInfo* clone() const; 00208 00209 protected: 00210 DtRwString myContactName; 00211 DtEntityIdentifier myId; 00212 DtRwReal myOriginalTimeOfDetection; 00213 DtRwReal myLastTimeOfDetection; 00214 DtRwInt myCombatIdentificationLevel; 00217 DtRwReal myDetectionError; 00219 DtRwVector myContactPosition; 00221 DtRwTaitBryan myContactOrientation; 00223 DtRwVector myContactVelocity; 00224 DtRwObjectType myContactType; 00225 DtRwForceType myContactForce; 00226 DtNLengthIntegerVector myContactSourceTypes; 00228 DtRwFormationType myContactFormation; 00229 DtRwInt myContactActivity; 00230 DtRwAppearance myContactAppearance; 00231 }; 00232 00237 DT_DLL_vrfutil bool mergeContactInfo(DtRwSensorContactInfo & info, const DtRwSensorContactInfo & sourceInfo); 00238 00239 namespace DtBufferSerialize 00240 { 00242 DT_DLL_vrfutil int getSize(const DtRwSensorContactInfo& data); 00243 00249 DT_DLL_vrfutil char *encode(const DtRwSensorContactInfo& data, char *buffer); 00250 00256 DT_DLL_vrfutil const char *decode(DtRwSensorContactInfo &data, const char *buffer) ; 00257 } 00258 00259 #endif