![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef DtLeFirePdu_H_ 00008 #define DtLeFirePdu_H_ 00009 00013 00014 #if DtDIS 00015 00016 #include <vlutil/vlMachineTypes.h> 00017 #include "hostStructs.h" 00018 #include "dInteraction.h" 00019 #include <matrix/vlMath.h> 00020 #include "exerciseConn.h" 00021 00022 #include "packets/leFireP.h" 00023 00024 #include "leDeadReck.h" 00025 #include "leEntityID.h" 00026 #include "leLocWorld.h" 00027 #include "leEntityVel.h" 00028 00029 00030 class DT_DLL_VL DtLeFirePdu; 00031 00033 typedef void (*DtLeFirePduCb)(DtLeFirePdu* pdu, void* usr); 00034 00035 00039 class DT_DLL_VL DtLeFirePdu : public DtInteraction 00040 { 00041 00042 public: 00043 00045 DtLeFirePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00046 DtLeFirePdu(const DtNetLeFirePdu* initial, 00047 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00048 DtLeFirePdu(const DtLeFirePdu& orig); 00049 00051 virtual ~DtLeFirePdu(); 00052 00054 DtLeFirePdu& operator=(const DtLeFirePdu& orig); 00055 00057 virtual void setSubProtocol(DtSubProtocol value); 00058 virtual DtSubProtocol subProtocol() const; 00059 00061 virtual void setFiringEntityID(const DtLeEntityID& id); 00062 virtual const DtLeEntityID& firingEntityID() const; 00063 00066 virtual DtU8 fireFlagsField() const; 00067 00069 virtual bool fireFlag(DtLE_FireFieldFlag flag) const; 00070 00074 00076 virtual void setTargetEntityID(const DtLeEntityID& id); 00077 virtual bool getTargetEntityID(DtLeEntityID& id) const; 00078 00080 virtual void setMunitionID_Site(DtU8 value); 00081 virtual bool getMunitionID_Site(DtU8& value) const; 00082 00084 virtual void setMunitionID_Application(DtU8 value); 00085 virtual bool getMunitionID_Application(DtU8& value) const; 00086 00088 virtual void setMunitionID_Entity(DtU16 value); 00089 virtual bool getMunitionID_Entity(DtU16& value) const; 00090 00092 virtual void setEventID_Site(DtU8 value); 00093 virtual bool getEventID_Site(DtU8& value) const; 00094 00096 virtual void setEventID_Application(DtU8 value); 00097 virtual bool getEventID_Application(DtU8& value) const; 00098 00100 virtual void setEventID_Event(DtU16 value); 00101 virtual DtU16 eventID_Event() const; 00102 00104 virtual void setLocation(const DtLeEntityLocationWorldCoordinates& value); 00105 virtual bool getLocation( 00106 DtLeEntityLocationWorldCoordinates& value) const; 00107 00109 virtual void setBurstMunitionType(DtEntityType& type); 00110 virtual const DtEntityType& burstMunitionType() const; 00111 00113 virtual void setBurstWarhead(DtU16 value); 00114 virtual bool getBurstWarhead(DtU16& value) const; 00115 00117 virtual void setBurstFuse(DtU16 value); 00118 virtual bool getBurstFuse(DtU16& value) const; 00119 00121 virtual void setBurstQuantity(DtU16 value); 00122 virtual bool getBurstQuantity(DtU16& value) const; 00123 00125 virtual void setBurstRate(DtU16 value); 00126 virtual bool getBurstRate(DtU16& value) const; 00127 00129 virtual void setVelocity(const DtLeEntityLinearVelocity& value); 00130 virtual const DtLeEntityLinearVelocity& velocity() const; 00131 00133 virtual void setRange(DtU16 value); 00134 virtual DtU16 range() const; 00135 00137 virtual void printData() const; 00138 00140 virtual void printDataToStream(std::ostream& stream) const; 00141 00143 virtual void printHeader() const; 00144 00146 virtual void printHeaderToStream(std::ostream& stream) const; 00147 00148 public: 00149 00152 static DtPdu* create(const DtNetPacket* initial, 00153 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00154 00157 static void addCallback(DtExerciseConn* conn, 00158 DtLeFirePduCb cb, void* usr); 00159 static void removeCallback(DtExerciseConn* conn, 00160 DtLeFirePduCb cb, void* usr); 00161 00162 protected: 00163 00165 virtual DtPduKind internalGetPduKind() const; 00166 00168 virtual DtNetLeFirePdu* netPduStruct() const; 00169 00172 DtLeFirePdu* self() const; 00173 00175 virtual char* var() const; 00176 00178 virtual void setFireFlagsField(DtU8 value); 00179 00181 virtual void setFireFlag(DtLE_FireFieldFlag flag); 00182 00184 virtual void clearFireFlags(DtLE_FireFieldFlag flag); 00185 00189 virtual int fireFlagFieldOffset() const; 00190 virtual int targetEntityID_Offset() const; 00191 virtual int munitionID_Offset1() const; 00192 virtual int munitionID_Offset2() const; 00193 virtual int eventID_Offset1() const; 00194 virtual int eventID_Offset2() const; 00195 virtual int locationOffset() const; 00196 virtual int burstOffset1() const; 00197 virtual int burstOffset2() const; 00198 virtual int burstOffset3() const; 00199 virtual int velocityOffset() const; 00200 virtual int rangeOffset() const; 00201 00202 protected: 00203 00205 static const int theStaticSize; 00206 00207 protected: 00208 00210 DtLeEntityID myEntityID; 00211 DtLeEntityLinearVelocity myVelocity; 00212 DtEntityType myEntityType; 00213 00214 }; 00215 00216 #endif 00217 #endif 00218