VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
aggregateStatePdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 #include <vlutil/vlMachineTypes.h>
15 #include "hostStructs.h"
16 #include "stateMsg.h"
17 #include "exerciseConn.h"
18 #include "silentEntityList.h"
19 #include "silentAggregateList.h"
20 #include "variableDatumRecord.h"
21 
22 #include <matrix/vlMath.h>
23 
24 #include "packets/aggStateP.h"
25 
26 class DT_DLL_VL DtAggregateStatePdu;
27 
28 
30 typedef void (*DtAggregateStatePduCb)(DtAggregateStatePdu* pdu, void* usr);
31 
32 
36 class DT_DLL_VL DtAggregateStatePdu : public DtStateMsg
37 {
38 
39 public:
40 
42  DtAggregateStatePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
43  DtAggregateStatePdu(const DtNetAggregateStatePdu* initial,
44  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
45  DtAggregateStatePdu(const DtAggregateStatePdu& orig);
46 
48  virtual ~DtAggregateStatePdu();
49 
51  DtAggregateStatePdu& operator=(const DtAggregateStatePdu& orig);
52 
54  virtual void setAggregateID(const DtEntityIdentifier& entity);
55  virtual const DtEntityIdentifier& aggregateID() const;
56 
58  virtual void setForceID(DtForceType force);
59  virtual DtForceType forceID() const;
60 
62  virtual void setAggregateState(DtAggregateState value);
63  virtual DtAggregateState aggregateState() const;
64 
66  virtual void setAggregateType(const DtEntityType& type);
67  virtual const DtEntityType& aggregateType() const;
68 
70  virtual void setFormation(DtAggregateFormation value);
71  virtual DtAggregateFormation formation() const;
72 
74  virtual void setMarkingCharacterSet(DtCharacterSet value);
75  virtual DtCharacterSet markingCharacterSet() const;
76 
78  virtual void setMarkingText(DtU8* copyFrom);
79  virtual void getMarkingText(DtU8* copyTo) const;
80 
82  virtual void setDimensions(const DtVector& dims);
83  virtual const DtVector& dimensions() const;
84 
86  virtual void setOrientation(const DtTaitBryan& orientation);
87  virtual const DtTaitBryan& orientation() const;
88 
90  virtual void setLocation(const DtVector& coords);
91  virtual const DtVector& location() const;
92 
94  virtual void setVelocity(const DtVector& coords);
95  virtual const DtVector& velocity() const;
96 
99  virtual bool setNumberOfDIS_Subaggregates(DtU16 newNumberOfAggregates);
100  virtual DtU16 numberOfDIS_Subaggregates() const;
101 
104  virtual bool setNumberOfDIS_Entities(DtU16 newNumberOfEntities);
105  virtual DtU16 numberOfDIS_Entities() const;
106 
109  virtual bool setNumberOfSilentSubaggregates(
110  DtU16 newNumberOfAggregates);
111  virtual DtU16 numberOfSilentSubaggregates() const;
112 
115  virtual bool setNumberOfSilentEntities(DtU16 newNumberOfEntities);
116  virtual DtU16 numberOfSilentEntities() const;
117 
120  virtual bool setSubaggregateID(int index,
121  const DtEntityIdentifier& aggID);
122  virtual bool getSubaggregateID(int index,
123  DtEntityIdentifier& aggID) const;
124 
126  virtual bool setEntityID(int index,
127  const DtEntityIdentifier& entID);
128  virtual bool getEntityID(int index,
129  DtEntityIdentifier& entID) const;
130 
133  virtual bool setSilentAggregateList(int index,
134  const DtSilentAggregateList& aggList);
135  virtual bool getSilentAggregateList(int index,
136  DtSilentAggregateList& aggList) const;
137 
140  virtual bool setSilentEntityList(int index,
141  const DtSilentEntityList& entList);
142  virtual bool getSilentEntityList(int index,
143  DtSilentEntityList& entList) const;
144 
147  virtual bool setNumberOfDatumRecords(DtU32 newNumberOfRecords);
148  virtual DtU32 numberOfDatumRecords() const;
149 
152  virtual bool setVariableDatumRecord(int index,
153  const DtVariableDatumRecord& rec);
154  virtual bool getVariableDatumRecord(int index,
155  DtVariableDatumRecord& rec) const;
156 
158  virtual const DtVariableDatumRecord& variableDatumRecordConstRef(
159  int index) const;
160 
162  virtual void printData() const;
163 
165  virtual void printDataToStream(std::ostream& stream) const;
166 
167 
172 
175  virtual bool setDatumBitLength(int index, DtU32 newRecordBitLength);
176  virtual bool getDatumBitLength(int index, DtU32& length) const;
177 
180  virtual bool setDatumID(int index, DtDatumParam value);
181  virtual bool getDatumID(int index, DtDatumParam& value) const;
182 
185  virtual bool setDatumValFloat64(int index, DtFloat64 value);
186  virtual bool getDatumValFloat64(int index, DtFloat64& value) const;
187 
190  virtual bool setDatumValFloat32(int index, DtFloat32 value);
191  virtual bool getDatumValFloat32(int index, DtFloat32& value) const;
192 
195  virtual bool setDatumValInt32(int index, DtInt32 value);
196  virtual bool getDatumValInt32(int index, DtInt32& value) const;
197 
200  virtual bool setDatumValU32(int index, DtU32 value);
201  virtual bool getDatumValU32(int index, DtU32& value) const;
202 
205  virtual bool setDatumValInt16(int index, DtInt16 value);
206  virtual bool getDatumValInt16(int index, DtInt16& value) const;
207 
210  virtual bool setDatumValU16(int index, DtU16 value);
211  virtual bool getDatumValU16(int index, DtU16& value) const;
212 
215  virtual bool setDatumValU8(int index, DtU8 value);
216  virtual bool getDatumValU8(int index, DtU8& value) const;
217 
221  virtual bool setDatumValByteArray(int index, const DtU8* setFrom);
222  virtual bool getDatumValByteArray(int index, DtU8* copyTo) const;
223 
225  virtual bool getDatumValPtr(int index, DtNetU8*& datumPtr);
226 
227 public:
228 
231  static DtPdu* create(const DtNetPacket* initial,
232  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
233 
236  static void addCallback(DtExerciseConn* conn,
237  DtAggregateStatePduCb cb, void* usr);
238  static void removeCallback(DtExerciseConn* conn,
239  DtAggregateStatePduCb cb, void* usr);
240 
241 protected:
242 
244  virtual DtPduKind internalGetPduKind() const;
245 
248  virtual DtNetAggregateStatePdu* netPduStruct() const;
249 
252  DtAggregateStatePdu* self() const;
253 
255  virtual char* var() const;
256 
259  virtual int subaggregateID_Offset(int index) const;
260 
263  virtual int entityID_Offset(int index) const;
264 
267  virtual int paddingOffset() const;
268 
271  virtual int paddingBytes() const;
272 
275  virtual int silentAggregateOffset(int index) const;
276 
279  virtual int silentEntityOffset(int index) const;
280 
283  virtual int numberOfDatumRecordsOffset() const;
284 
287  virtual int datumRecordOffset(int index) const;
288 
289 protected:
290 
292  static const int theStaticSize;
293 
294 protected:
295 
297  DtEntityIdentifier myEntityID;
298  DtEntityType myEntityType;
299  DtVector myVector;
300  DtTaitBryan myAngles;
301  DtVariableDatumRecord myRefRec;
302  DtVariableDatumRecord myDumRec;
303 };
304 
305 #endif

Document ID: Generated on Wed Jan 7 13:31:29 EST 2015 from SVN revision 149162
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)