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-2025 MAK Technologies, Inc
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 DtVector32& dims);
83  virtual const DtVector32& 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 DtVector32& coords);
95  virtual const DtVector32& 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 myPosVector;
300  DtVector32 my32Vector;
301  DtTaitBryan myAngles;
302  DtVariableDatumRecord myRefRec;
303  DtVariableDatumRecord myDumRec;
304 };
305 
306 #endif
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: pduHeader.h:14
DtTaitBryans are used to represent orientation of an object, using a set of three Euler angles...
Definition: vlTaitBryan.h:43
This file declares the classes DtNetSilentAggregateList, DtNetSilentEntityList, DtNetSilentEntityList...
This file defines math constants and methods which may be useful in simulations.
DtStateMsg & operator=(const DtStateMsg &orig)
assignment operator
Definition: vlVector.h:224
DtU8 DtNetU8
Unsigned 8-bit value.
Definition: vlNetTypes.h:31
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
unsigned char DtU8
An eight bit unsigned integer value.
Definition: vlMachineTypes.h:137
Definition: vlVector.h:162
DtAggregateState
Aggregate State PDU enums.
Definition: disEnums.h:2866
This file provides a declaration of the class DtSilentAggregateList.
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file provides protocol to independence DtExerciseConn.
Instances of DtVariableDatumRecord are used to hold a single variable datum record and to provide acc...
Definition: variableDatumRecord.h:22
DtSilentEntityList is a class which contains the information needed to describe a list of silent enti...
Definition: silentEntityList.h:21
DtAggregateFormation
Definition: disEnums.h:2876
DtCharacterSet
Definition: disEnums.h:2766
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
DtForceType
Section 4.
Definition: disEnums.h:199
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
short int DtInt16
A sixteen bit integer value.
Definition: vlMachineTypes.h:206
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
long int DtInt32
A 32 bit integer value.
Definition: vlMachineTypes.h:156
This file provides a declaration of the class DtSilentEntityList.
DtDatumParam
([UID 66]) - Datum ID
Definition: disEnums.h:505
unsigned long DtU32
A 32 bit unsigned integer value.
Definition: vlMachineTypes.h:153
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
class DtStateMsg:
Definition: stateMsgHLA.h:32
double DtFloat64
A 64 bit floating point value.
Definition: vlMachineTypes.h:212
DtSilentAggregateList is a class which contains the information needed to describe a list of silent a...
Definition: silentAggregateList.h:23
This file contains typedefs for machine dependant types.
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)