![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef DtLeDetonationPdu_H_ 00007 #define DtLeDetonationPdu_H_ 00008 00009 00010 00011 00012 #if DtDIS 00013 00014 #include <vlutil/vlMachineTypes.h> 00015 #include "hostStructs.h" 00016 #include "dInteraction.h" 00017 #include <matrix/vlMath.h> 00018 #include "exerciseConn.h" 00019 00020 #include "packets/leDetonP.h" 00021 00022 #include "leEntityID.h" 00023 #include "leLocWorld.h" 00024 #include "leLocEntity.h" 00025 #include "leEntityVel.h" 00026 #include "leEntityOri.h" 00027 00028 class DT_DLL_VL DtLeDetonationPdu; 00029 00031 typedef void (*DtLeDetonationPduCb)(DtLeDetonationPdu* pdu, void* usr); 00032 00033 00037 class DT_DLL_VL DtLeDetonationPdu : public DtInteraction 00038 { 00039 00040 public: 00041 00043 DtLeDetonationPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00044 DtLeDetonationPdu(const DtNetLeDetonationPdu* initial, 00045 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00046 DtLeDetonationPdu(const DtLeDetonationPdu& orig); 00047 00049 virtual ~DtLeDetonationPdu(); 00050 00052 DtLeDetonationPdu& operator=(const DtLeDetonationPdu& orig); 00053 00055 virtual void setSubProtocol(DtSubProtocol value); 00056 virtual DtSubProtocol subProtocol() const; 00057 00059 virtual void setFiringEntityID(const DtLeEntityID& id); 00060 virtual const DtLeEntityID& firingEntityID() const; 00061 00064 virtual DtU8 detonFlagsField() const; 00065 00069 virtual bool getDeton2FlagsField(DtU8& field) const; 00070 00072 virtual bool detonFlag(DtLE_DetonFieldFlag flag) const; 00073 00076 virtual bool getDeton2Flag( 00077 DtLE_DetonField2Flag flag, bool& value) const; 00078 00082 00084 virtual void setTargetEntityID(const DtLeEntityID& id); 00085 virtual bool getTargetEntityID(DtLeEntityID& id) const; 00086 00088 virtual void setMunitionID_Site(DtU8 value); 00089 virtual bool getMunitionID_Site(DtU8& value) const; 00090 00092 virtual void setMunitionID_Application(DtU8 value); 00093 virtual bool getMunitionID_Application(DtU8& value) const; 00094 00096 virtual void setMunitionID_Entity(DtU16 value); 00097 virtual bool getMunitionID_Entity(DtU16& value) const; 00098 00100 virtual void setEventID_Site(DtU8 value); 00101 virtual bool getEventID_Site(DtU8& value) const; 00102 00104 virtual void setEventID_Application(DtU8 value); 00105 virtual bool getEventID_Application(DtU8& value) const; 00106 00108 virtual void setEventID_Event(DtU16 value); 00109 virtual bool getEventID_Event(DtU16& value) const; 00110 00115 virtual void setLocationWorld( 00116 const DtLeEntityLocationWorldCoordinates& value); 00117 virtual bool getLocationWorld( 00118 DtLeEntityLocationWorldCoordinates& value) const; 00119 00124 virtual void setLocationEntity( 00125 const DtLeEntityLocationEntityCoordinates& value); 00126 virtual bool getLocationEntity( 00127 DtLeEntityLocationEntityCoordinates& value) const; 00128 00130 virtual void setVelocity(const DtLeEntityLinearVelocity& value); 00131 virtual const DtLeEntityLinearVelocity& velocity() const; 00132 00134 virtual void setOrientation(const DtLeEntityOrientation& value); 00135 virtual bool getOrientation(DtLeEntityOrientation& value) const; 00136 00138 virtual void setBurstMunitionType(DtEntityType& type); 00139 virtual const DtEntityType& burstMunitionType() const; 00140 00142 virtual void setBurstWarhead(DtU16 value); 00143 virtual bool getBurstWarhead(DtU16& value) const; 00144 00146 virtual void setBurstFuse(DtU16 value); 00147 virtual bool getBurstFuse(DtU16& value) const; 00148 00150 virtual void setBurstQuantity(DtU16 value); 00151 virtual bool getBurstQuantity(DtU16& value) const; 00152 00154 virtual void setBurstRate(DtU16 value); 00155 virtual bool getBurstRate(DtU16& value) const; 00156 00158 virtual void setDetonationResult(DtU8 value); 00159 virtual DtU8 detonationResult() const; 00160 00162 virtual void printData() const; 00163 00165 virtual void printDataToStream(std::ostream& stream) const; 00166 00168 virtual void printHeader() const; 00169 00171 virtual void printHeaderToStream(std::ostream& stream) const; 00172 00173 public: 00174 00177 static DtPdu* create(const DtNetPacket* initial, 00178 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00179 00182 static void addCallback(DtExerciseConn* conn, 00183 DtLeDetonationPduCb cb, void* usr); 00184 static void removeCallback(DtExerciseConn* conn, 00185 DtLeDetonationPduCb cb, void* usr); 00186 00187 protected: 00188 00190 virtual DtPduKind internalGetPduKind() const; 00191 00193 virtual DtNetLeDetonationPdu* netPduStruct() const; 00194 00197 DtLeDetonationPdu* self() const; 00198 00200 virtual char* var() const; 00201 00203 virtual void setDetonFlagsField(DtU8 value); 00204 00206 virtual void setDeton2FlagsField(DtU8 value); 00207 00209 virtual void setDetonFlag(DtLE_DetonFieldFlag flag); 00210 00212 virtual void setDeton2Flag(DtLE_DetonField2Flag flag); 00213 00217 virtual int detonFlagFieldOffset() const; 00218 virtual int deton2FlagFieldOffset() const; 00219 virtual int targetEntityID_Offset() const; 00220 virtual int munitionID_Offset1() const; 00221 virtual int munitionID_Offset2() const; 00222 virtual int eventID_Offset1() const; 00223 virtual int eventID_Offset2() const; 00224 virtual int locationWorldOffset() const; 00225 virtual int velocityOffset() const; 00226 virtual int munitionOrientationOffset() const; 00227 virtual int burstOffset1() const; 00228 virtual int burstOffset2() const; 00229 virtual int burstOffset3() const; 00230 virtual int locationEntityOffset() const; 00231 virtual int resultOffset() const; 00232 00233 protected: 00234 00236 static const int theStaticSize; 00237 00238 protected: 00239 00241 DtLeEntityID myEntityID; 00242 DtLeEntityLinearVelocity myVelocity; 00243 DtEntityType myEntityType; 00244 00245 }; 00246 00247 #endif 00248 #endif 00249