![]() |
VR-Link API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef DtFirePdu_H_ 00007 #define DtFirePdu_H_ 00008 00011 00012 #if DtDIS 00013 00014 #include "hostStructs.h" 00015 #include "eventId.h" 00016 #include "interaction.h" 00017 #include "packets/fireP.h" 00018 #include <matrix/vlMath.h> 00019 00020 00021 00022 class DT_DLL_VL DtExerciseConn; 00023 class DT_DLL_VL DtFirePdu; 00024 00026 typedef DtFirePdu DtFireInteraction; 00027 00028 typedef void (*DtFireInteractionCb)(DtFireInteraction *inter, void *usr); 00029 00035 class DT_DLL_VL DtFirePdu : public DtInteraction 00036 { 00037 public: 00038 00039 enum { PduStaticSize=96 }; 00040 00041 public: 00042 00043 DtFirePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00044 00045 DtFirePdu(const DtNetFirePdu *initial, 00046 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00047 00048 DtFirePdu(const DtEntityIdentifier &attacker, 00049 const DtEntityIdentifier &target, 00050 const DtEntityIdentifier &munition, 00051 const DtEventID &eventId, 00052 const DtVector& location, 00053 const DtBurstDescriptor &burst, 00054 const DtVector& linVelocity, 00055 const double range, 00056 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00057 00058 virtual const DtObjectId &attackerId() const; 00059 virtual void setAttackerId(const DtObjectId &id); 00060 00061 virtual const DtObjectId &targetId() const; 00062 virtual void setTargetId(const DtObjectId &id); 00063 00064 virtual const DtObjectId &munitionId() const; 00065 virtual void setMunitionId(const DtObjectId &id); 00066 00067 virtual const DtEventID &eventId() const; 00068 virtual void setEventId(const DtEventID &id); 00069 00070 virtual unsigned long fireMissionIndex() const; 00071 virtual void setFireMissionIndex(unsigned long i); 00072 00073 virtual const DtVector& location() const; 00074 virtual void setLocation(const DtVector& location); 00075 00076 virtual const DtVector& velocity() const; 00077 virtual void setVelocity(const DtVector& velocity); 00078 00079 virtual double range() const; 00080 virtual void setRange(double range); 00081 00082 virtual DtDetonatorFuze fuseType() const; 00083 virtual void setFuseType(DtDetonatorFuze f); 00084 00085 virtual const DtEntityType &munitionType() const; 00086 virtual void setMunitionType(const DtEntityType &t); 00087 00088 virtual int quantity() const; 00089 virtual void setQuantity(int q); 00090 00091 virtual int rate() const; 00092 virtual void setRate(int r); 00093 00094 virtual DtWarheadType warheadType() const; 00095 virtual void setWarheadType(DtWarheadType t); 00096 00098 virtual const DtBurstDescriptor &burst() const; 00099 virtual void setBurst(const DtBurstDescriptor &burst); 00100 00101 virtual void printData() const; 00102 virtual void printDataToStream(std::ostream& stream) const; 00103 virtual void printDataToString(DtString& str) const; 00104 00105 public: 00106 00107 static DtPdu *create(const DtNetPacket *initial, 00108 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00109 00110 static void addCallback(DtExerciseConn *conn, 00111 DtFireInteractionCb cb, void *usr); 00112 static void removeCallback(DtExerciseConn *conn, 00113 DtFireInteractionCb cb, void *usr); 00114 00115 protected: 00116 00117 DtPduKind internalGetPduKind() const {return DtFirePduKind;} 00118 DtObjectId att; 00119 DtObjectId tar; 00120 DtObjectId mun; 00121 DtEventID event; 00122 DtVector loc; 00123 DtVector vel; 00124 DtBurstDescriptor theBurst; 00125 DtEntityType myMunType; 00126 }; 00127 00128 #endif 00129 #endif 00130 00131 00132 00133 00134