VR-Forces 4.0.4 Class Documentation
include/vrfutil/rwSensorContactInfo.h
Go to the documentation of this file.
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

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)