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

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)