VR-Link API Documentation for HLA 1.3
minefieldStatePdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 #include <vlutil/vlMachineTypes.h>
15 #include "hostStructs.h"
16 #include "pdu.h"
17 #include <matrix/vlMath.h>
18 #include "exerciseConn.h"
19 
20 #include "packets/mineStateP.h"
21 
23 
24 
25 class DT_DLL_VL DtMinefieldStatePdu;
26 
28 typedef void (*DtMinefieldStatePduCb)(DtMinefieldStatePdu* pdu, void* usr);
29 
34 
35 class DT_DLL_VL DtMinefieldStatePdu : public DtStateMsg
36 {
37 
38 public:
39 
41  DtMinefieldStatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
42  DtMinefieldStatePdu(const DtNetMinefieldStatePdu* initial,
43  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
44  DtMinefieldStatePdu(const DtMinefieldStatePdu& orig);
45 
47  virtual ~DtMinefieldStatePdu();
48 
50  DtMinefieldStatePdu& operator=(const DtMinefieldStatePdu& orig);
51 
53  virtual void setMinefieldID(const DtEntityIdentifier& id);
54  virtual const DtEntityIdentifier& minefieldID() const;
55 
57  virtual void setSequenceNumber(DtU16 field);
58  virtual DtU16 sequenceNumber() const;
59 
61  virtual void setForceID(DtForceType force);
62  virtual DtForceType forceID() const;
63 
65  virtual bool setNumPerimeterPoints(DtU8 num);
66  virtual DtU8 numPerimeterPoints() const;
67 
69  virtual void setMinefieldType(const DtEntityType& type);
70  virtual const DtEntityType& minefieldType() const;
71 
73  virtual bool setNumMineTypes(DtU16 num);
74  virtual DtU16 numMineTypes() const;
75 
77  virtual void setLocation(const DtVector& coords);
78  virtual const DtVector& location() const;
79 
81  virtual void setOrientation(const DtTaitBryan& orientation);
82  virtual const DtTaitBryan& orientation() const;
83 
85  virtual void setAppearance(DtU16 app);
86  virtual DtU16 appearance() const;
87 
89  virtual void setAppearanceAttribute(
91  virtual DtAppearAttrVal appearanceAttribute(
92  DtAppearAttribute attr) const;
93 
96  virtual void setMinefieldProtocolMode(DtMinefieldProtocol mode);
97  virtual DtMinefieldProtocol minefieldProtocolMode() const;
98 
101  virtual bool setPerimeterPoint(int index,
102  const DtMinefieldPerimeterRecord& init);
103  virtual bool getPerimeterPoint(int index,
104  DtMinefieldPerimeterRecord& record) const;
105 
108  virtual bool setMineType(int index,
109  const DtEntityType& init);
110  virtual bool getMineType(int index,
111  DtEntityType& record) const;
112 
114  virtual void printData() const;
115 
117  virtual void printDataToStream(std::ostream& stream) const;
118 
119 public:
120 
123  static DtPdu* create(const DtNetPacket* initial,
124  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
125 
128  static void addCallback(DtExerciseConn* conn,
129  DtMinefieldStatePduCb cb, void* usr);
130  static void removeCallback(DtExerciseConn* conn,
131  DtMinefieldStatePduCb cb, void* usr);
132 
133 protected:
134 
136  virtual DtPduKind internalGetPduKind() const;
137 
139  virtual DtNetMinefieldStatePdu* netPduStruct() const;
140 
143  DtMinefieldStatePdu* self() const;
144 
146  virtual char* var() const;
147 
149  virtual int perimeterPointRecordOffset(int recordIndex) const;
150 
152  virtual int mineTypeRecordOffset(int recordIndex) const;
153 
154 protected:
155 
157  static const int theStaticSize;
158 
159 protected:
160 
162  DtEntityIdentifier myEntityID;
163  DtEntityType myEntityType;
164  DtTaitBryan myEulerAngles;
165  DtVector myVector;
166  DtMinefieldPerimeterRecord myPerimeterRecord;
167 
168 };
169 
170 #endif

Document ID: Generated on Wed Oct 23 22:25:48 EDT 2013 from SVN revision 132765
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)