VR-Link API Documentation for HLA 1.3
mineStatePdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
9 
10 #ifndef DtMinefieldStatePdu_H_
11 #define DtMinefieldStatePdu_H_
12 
13 #if DtDIS
14 
15 #include <vlutil/vlMachineTypes.h>
16 #include "hostStructs.h"
17 #include "pdu.h"
18 #include <matrix/vlMath.h>
19 #include "exerciseConn.h"
20 
21 #include "packets/mineStateP.h"
22 
23 #include "minePerimeter.h"
24 
25 
26 class DT_DLL_VL DtMinefieldStatePdu;
27 
29 typedef void (*DtMinefieldStatePduCb)(DtMinefieldStatePdu* pdu, void* usr);
30 
35 
36 class DT_DLL_VL DtMinefieldStatePdu : public DtPdu
37 {
38 
39 public:
40 
42  DtMinefieldStatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
43  DtMinefieldStatePdu(const DtNetMinefieldStatePdu* initial,
45  DtMinefieldStatePdu(const DtMinefieldStatePdu& orig);
46 
48  virtual ~DtMinefieldStatePdu();
49 
51  DtMinefieldStatePdu& operator=(const DtMinefieldStatePdu& orig);
52 
54  virtual void setMinefieldID(const DtEntityIdentifier& id);
55  virtual const DtEntityIdentifier& minefieldID() const;
56 
58  virtual void setSequenceNumber(DtU16 field);
59  virtual DtU16 sequenceNumber() const;
60 
62  virtual void setForceID(DtForceType force);
63  virtual DtForceType forceID() const;
64 
66  virtual bool setNumPerimeterPoints(DtU8 num);
67  virtual DtU8 numPerimeterPoints() const;
68 
70  virtual void setMinefieldType(const DtEntityType& type);
71  virtual const DtEntityType& minefieldType() const;
72 
74  virtual bool setNumMineTypes(DtU16 num);
75  virtual DtU16 numMineTypes() const;
76 
78  virtual void setLocation(const DtVector& coords);
79  virtual const DtVector& location() const;
80 
82  virtual void setOrientation(const DtTaitBryan& orientation);
83  virtual const DtTaitBryan& orientation() const;
84 
86  virtual void setAppearance(DtU16 app);
87  virtual DtU16 appearance() const;
88 
90  virtual void setAppearanceAttribute(
92  virtual DtAppearAttrVal appearanceAttribute(
93  DtAppearAttribute attr) const;
94 
97  virtual void setMinefieldProtocolMode(DtMinefieldProtocol mode);
98  virtual DtMinefieldProtocol minefieldProtocolMode() const;
99 
102  virtual bool setPerimeterPoint(int index,
103  const DtMinefieldPerimeterRecord& init);
104  virtual bool getPerimeterPoint(int index,
105  DtMinefieldPerimeterRecord& record) const;
106 
109  virtual bool setMineType(int index,
110  const DtEntityType& init);
111  virtual bool getMineType(int index,
112  DtEntityType& record) const;
113 
115  virtual void printData() const;
116 
118  virtual void printDataToStream(std::ostream& stream) const;
119 
120 public:
121 
124  static DtPdu* create(const DtNetPacket* initial,
126 
129  static void addCallback(DtExerciseConn* conn,
130  DtMinefieldStatePduCb cb, void* usr);
131  static void removeCallback(DtExerciseConn* conn,
132  DtMinefieldStatePduCb cb, void* usr);
133 
134 protected:
135 
137  virtual DtPduKind internalGetPduKind() const;
138 
140  virtual DtNetMinefieldStatePdu* netPduStruct() const;
141 
144  DtMinefieldStatePdu* self() const;
145 
147  virtual char* var() const;
148 
150  virtual int perimeterPointRecordOffset(int recordIndex) const;
151 
153  virtual int mineTypeRecordOffset(int recordIndex) const;
154 
155 protected:
156 
158  static const int theStaticSize;
159 
160 protected:
161 
163  DtEntityIdentifier myEntityID;
164  DtEntityType myEntityType;
165  DtTaitBryan myEulerAngles;
166  DtVector myVector;
167  DtMinefieldPerimeterRecord myPerimeterRecord;
168 
169 };
170 
171 #endif
172 #endif
173 

Document ID: Generated on Wed Aug 14 15:35:11 EDT 2013 from SVN revision 130445
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)