VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
firePdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #if DtDIS
12 
13 #include "hostStructs.h"
14 #include "eventId.h"
15 #include "interaction.h"
16 #include "packets/fireP.h"
17 #include <matrix/vlMath.h>
18 
19 
20 
22 class DT_DLL_VL DtFirePdu;
23 
25 typedef DtFirePdu DtFireInteraction;
26 
27 typedef void (*DtFireInteractionCb)(DtFireInteraction *inter, void *usr);
28 
34 class DT_DLL_VL DtFirePdu : public DtInteraction
35 {
36 public:
37 
38  enum { PduStaticSize=96 };
39 
40 public:
41 
42  DtFirePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
43 
44  DtFirePdu(const DtNetFirePdu *initial,
45  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
46 
47  DtFirePdu(const DtEntityIdentifier &attacker,
48  const DtEntityIdentifier &target,
49  const DtEntityIdentifier &munition,
50  const DtEventID &eventId,
51  const DtVector& location,
52  const DtBurstDescriptor &burst,
53  const DtVector32& linVelocity,
54  const double range,
56 
57  virtual const DtObjectId &attackerId() const;
58  virtual void setAttackerId(const DtObjectId &id);
59 
60  virtual const DtObjectId &targetId() const;
61  virtual void setTargetId(const DtObjectId &id);
62 
63  virtual const DtObjectId &munitionId() const;
64  virtual void setMunitionId(const DtObjectId &id);
65 
66  virtual const DtEventID &eventId() const;
67  virtual void setEventId(const DtEventID &id);
68 
69  virtual unsigned long fireMissionIndex() const;
70  virtual void setFireMissionIndex(unsigned long i);
71 
72  virtual const DtVector& location() const;
73  virtual void setLocation(const DtVector& location);
74 
75  virtual const DtVector32& velocity() const;
76  virtual void setVelocity(const DtVector32& velocity);
77 
78  virtual double range() const;
79  virtual void setRange(double range);
80 
81  virtual DtDetonatorFuze fuseType() const;
82  virtual void setFuseType(DtDetonatorFuze f);
83 
84  virtual const DtEntityType &munitionType() const;
85  virtual void setMunitionType(const DtEntityType &t);
86 
87  virtual int quantity() const;
88  virtual void setQuantity(int q);
89 
90  virtual int rate() const;
91  virtual void setRate(int r);
92 
93  virtual DtWarheadType warheadType() const;
94  virtual void setWarheadType(DtWarheadType t);
95 
97  virtual const DtBurstDescriptor &burst() const;
98  virtual void setBurst(const DtBurstDescriptor &burst);
99 
100  virtual void printData() const;
101  virtual void printDataToStream(std::ostream& stream) const;
102  virtual void printDataToString(DtString& str) const;
103 
104 public:
105 
106  static DtPdu *create(const DtNetPacket *initial,
107  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
108 
109  static void addCallback(DtExerciseConn *conn,
110  DtFireInteractionCb cb, void *usr);
111  static void removeCallback(DtExerciseConn *conn,
112  DtFireInteractionCb cb, void *usr);
113 
114 protected:
115 
116  DtPduKind internalGetPduKind() const {return DtFirePduKind;}
117  DtObjectId att;
118  DtObjectId tar;
119  DtObjectId mun;
120  DtEventID event;
121  DtVector loc;
122  DtVector32 vel;
123  DtBurstDescriptor theBurst;
124  DtEntityType myMunType;
125 };
126 
127 #endif

Document ID: Generated on Mon Feb 6 18:36:34 EST 2017 from SVN revision 173107
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)