VR-Link API Documentation for DIS
leDetonPdu.h
Go to the documentation of this file.
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 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)