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

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)