VR-Link API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
managedInterface/messages/entityState.h
Go to the documentation of this file.
1 /*********************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************************/
5 
10 #pragma once
11 
13 
14 #include <string>
15 #include <vlpi/entityType.h>
16 #include <matrix/vlVector.h>
17 #include <matrix/vlTaitBryan.h>
18 #include <vector>
19 
20 
22 {
23 public:
24  enum DeadReckoningAlgorithm {DeadReckoningAlgorithm_OTHER, DeadReckoningAlgorithm_STATIC, DeadReckoningAlgorithm_FPW, DeadReckoningAlgorithm_RPW, DeadReckoningAlgorithm_RVW, DeadReckoningAlgorithm_FVW, DeadReckoningAlgorithm_FPB, DeadReckoningAlgorithm_RPB, DeadReckoningAlgorithm_RVB, DeadReckoningAlgorithm_FVB};
25  enum ConstituentPartStationName {ConstituentPartStationName_OTHER=0, ConstituentPartStationName_AIRCRAFT_WINGSTATION=1, ConstituentPartStationName_SHIPS_FORWARD_GUNMOUNT_STARBOARD=2, ConstituentPartStationName_SHIPS_FORWARD_GUNMOUNT_PORT=3, ConstituentPartStationName_SHIPS_FORWARD_GUNMOUNT_CENTERLINE=4, ConstituentPartStationName_SHIPS_AFT_GUNMOUNT_STARBOARD=5, ConstituentPartStationName_SHIPS_AFT_GUNMOUNT_PORT=6, ConstituentPartStationName_SHIPS_AFT_GUNMOUNT_CENTERLINE=7, ConstituentPartStationName_FORWARD_TORPEDO_TUBE=8, ConstituentPartStationName_AFT_TORPEDO_TUBE=9, ConstituentPartStationName_BOMB_BAY=10, ConstituentPartStationName_CARGO_BAY=11, ConstituentPartStationName_TRUCK_BED=12, ConstituentPartStationName_TRAILER_BED=13, ConstituentPartStationName_WELL_DECk=14, ConstituentPartStationName_ON_STATION_RNG_BRG=15, ConstituentPartStationName_ON_STATION_XYZ=16};
26  enum TrailingEffects {TrailingEffects_NONE, TrailingEffects_SMALL, TrailingEffects_MEDIUM, TrailingEffects_LARGE};
27  enum ForceType {ForceType_OTHER, ForceType_FRIENDLY, ForceType_OPPOSING, ForceType_NEUTRAL};
28  enum LightType {LightType_LIGHTS=12, LightType_HEAD_LIGHTS=12, LightType_FLASH_LIGHTS=12, LightType_LANDING_LIGHTS=12, LightType_RUNNING_LIGHTS=12, LightType_TAIL_LIGHTS=13, LightType_NAVIGATION_LIGHTS=13, LightType_ANTI_COLLISION_LIGHTS=14, LightType_BRAKE_LIGHTS=14, LightType_FORMATION_LIGHTS=24, LightType_BLACK_OUT_LIGHTS=26, LightType_BLACK_OUT_BRAKE_LIGHTS=27, LightType_SPOT_LIGHTS=28, LightType_EXTERIOR_LIGHTS=28, LightType_EXTERNAL_LIGHTS=28, LightType_INTERIOR_LIGHTS=29, LightType_INTERNAL_LIGHTS=29};
29  enum ParameterTypes {ParameterTypes_POSITION= 1, ParameterTypes_POSITIONRATE= 2, ParameterTypes_EXTENSION= 3, ParameterTypes_EXTENSIONRATE = 4, ParameterTypes_X= 5, ParameterTypes_XRATE= 6, ParameterTypes_Y= 7, ParameterTypes_YRATE= 8, ParameterTypes_Z= 9, ParameterTypes_ZRATE= 10, ParameterTypes_AZIMUTH= 11, ParameterTypes_AZIMUTHRATE= 12, ParameterTypes_ELEVATION= 13, ParameterTypes_ELEVATIONRATE = 14, ParameterTypes_ROTATION= 15, ParameterTypes_ROTATIONRATE= 16};
30  enum WeaponState {WeaponState_NOWEAPON, WeaponState_STOWED, WeaponState_DEPLOYED, WeaponState_FIREPOSITION};
31  enum ConstituentPartNature {ConstituentPartNature_OTHER=0, ConstituentPartNature_HOST_FIREABLE_MUNITION=1, ConstituentPartNature_MUNITION_CARRIED_AS_CARGO=2, ConstituentPartNature_FUEL_CARRIED_AS_CARGO=3, ConstituentPartNature_GUNMOUNT_ATTACHED_TO_HOST=4, ConstituentPartNature_COMPUTER_GENERATED_FORCES_CARRIED_AS_CARGO=5, ConstituentPartNature_VEHICLE_CARRIED_AS_CARGO=6, ConstituentPartNature_EMITTER_MOUNTED_ON_HOST=7, ConstituentPartNature_MOBILE_COMMAND_AND_CONTROL_ENTITY_CARRIED_ABOARD_HOST=8, ConstituentPartNature_ENTITY_STATIONED_AT=9, ConstituentPartNature_TEAM_MEMBER_IN_FORMATION_WITH=10};
32  enum ComplianceState {ComplianceState_NA, ComplianceState_DETAINED, ComplianceState_SURRENDER, ComplianceState_USING_FISTS, ComplianceState_VERBAL_ABUSE1, ComplianceState_VERBAL_ABUSE2, ComplianceState_VERBAL_ABUSE3, ComplianceState_PASSIVE_RESISTANCE1, ComplianceState_PASSIVE_RESISTANCE2, ComplianceState_PASSIVE_RESISTANCE3, ComplianceState_NON_LETHAL_WEAPON1, ComplianceState_NON_LETHAL_WEAPON2, ComplianceState_NON_LETHAL_WEAPON3, ComplianceState_NON_LETHAL_WEAPON4, ComplianceState_NON_LETHAL_WEAPON5, ComplianceState_NON_LETHAL_WEAPON6};
33  enum ConstituentPartPosition {ConstituentPartPosition_OTHER=0, ConstituentPartPosition_ON_TOP_OF=1, ConstituentPartPosition_INSIDE=2};
34  enum DamageState {DamageState_NONE, DamageState_SLIGHT, DamageState_MODERATE, DamageState_DESTROYED};
35  enum LifeformState {LifeformState_NA, LifeformState_STANDING, LifeformState_WALKING, LifeformState_RUNNING, LifeformState_KNEELING, LifeformState_PRONE, LifeformState_CRAWLING, LifeformState_SWIMMING, LifeformState_PARACHUTING, LifeformState_JUMPING, LifeformState_SITTING, LifeformState_SQUATTING, LifeformState_CROUCHING, LifeformState_WADING, LifeformState_SURRENDERED, LifeformState_DETAINED};
36  enum HatchState {HatchState_NA, HatchState_CLOSED, HatchState_POPPED, HatchState_POPPEDANDPERSON, HatchState_OPEN, HatchState_OPENANDPERSON};
37  enum CamoflageType {CamoflageType_DESERT, CamoflageType_WINTER, CamoflageType_FOREST};
38 
39 
40  struct Parameter
41  {
42  float myValue;
44 
45 
46  int size()
47  {
48  int size=0;
49  size+=sizeof(float);
50  size+=sizeof(int);
51 
52  return size;
53  }
54 
55  void serialize(DtStreamWriter& writer)
56  {
57  writer.writeSingle(myValue);
58  writer.writeInt32((int)myParameter);
59 
60  }
61 
63  {
64  myValue=reader.readSingle();
65  myParameter=(ParameterTypes)reader.readInt32();
66 
67  }
68  };
69 
70 
71  struct ArtPart
72  {
73  int myId;
75  std::vector<Parameter> myParameters;
76 
77 
78  int size()
79  {
80  int size=0;
81  size+=sizeof(int);
82  size+=sizeof(int);
83  size+=4; //for the count of the items in the list
84  for(unsigned int i=0; i<myParameters.size(); i++)
85  {
86  size+=myParameters[i].size();
87  }
88 
89 
90  return size;
91  }
92 
93  void serialize(DtStreamWriter& writer)
94  {
95  writer.writeInt32(myId);
96  writer.writeInt32(myAttachedTo);
97  writer.writeInt32(myParameters.size()); //for the count of the items in the list
98  for(unsigned int i=0; i<myParameters.size(); i++)
99  {
100  myParameters[i].serialize(writer);
101  }
102 
103 
104  }
105 
107  {
108  myId=reader.readInt32();
109  myAttachedTo=reader.readInt32();
110  unsigned int myParameters_count=reader.readInt32(); //for the count of the items in the list
111  for(unsigned int i=0; i<myParameters_count; i++)
112  {
113  Parameter aParameter;
114  aParameter.deserialize(reader);
115  myParameters.push_back(aParameter);
116  }
117 
118  }
119  };
120 
121 
122  struct AttPart
123  {
126 
127 
128  int size()
129  {
130  int size=0;
131  size+=8;
132  size+=sizeof(int);
133 
134  return size;
135  }
136 
137  void serialize(DtStreamWriter& writer)
138  {
139  writer.writeInt8(myType.kind());
140  writer.writeInt8(myType.domain());
141  writer.writeInt16(myType.country());
142  writer.writeInt8(myType.category());
143  writer.writeInt8(myType.subCategory());
144  writer.writeInt8(myType.specific());
145  writer.writeInt8(myType.extra());
146 
147  writer.writeInt32(myStationId);
148 
149  }
150 
152  {
153  myType.setKind(reader.readInt8());
154  myType.setDomain(reader.readInt8());
155  myType.setCountry(reader.readInt16());
156  myType.setCategory(reader.readInt8());
157  myType.setSubCategory(reader.readInt8());
158  myType.setSpecific(reader.readInt8());
159  myType.setExtra(reader.readInt8());
160 
161  myStationId=reader.readInt32();
162 
163  }
164  };
165 
166 
167  struct PStruct
168  {
170  float myEngineRMP;
171 
172 
173  int size()
174  {
175  int size=0;
176  size+=sizeof(float);
177  size+=sizeof(float);
178 
179  return size;
180  }
181 
182  void serialize(DtStreamWriter& writer)
183  {
184  writer.writeSingle(myPowerSetting);
185  writer.writeSingle(myEngineRMP);
186 
187  }
188 
190  {
191  myPowerSetting=reader.readSingle();
192  myEngineRMP=reader.readSingle();
193 
194  }
195  };
196 
197 
198  struct VNStruct
199  {
202 
203 
204  int size()
205  {
206  int size=0;
207  size+=sizeof(float);
208  size+=sizeof(float);
209 
210  return size;
211  }
212 
213  void serialize(DtStreamWriter& writer)
214  {
215  writer.writeSingle(myHorizontalDeflectionAngle);
216  writer.writeSingle(myVerticalDeflectionAngle);
217 
218  }
219 
221  {
222  myHorizontalDeflectionAngle=reader.readSingle();
223  myVerticalDeflectionAngle=reader.readSingle();
224 
225  }
226  };
227 
228 
229 
230 
232  virtual ~EntityStateMessage();
233 
234  virtual std::string getId();
235  virtual void setId(std::string val);
236 
237  virtual std::string getEntityIdentifier();
238  virtual void setEntityIdentifier(std::string val);
239 
240  virtual DtEntityType getType();
241  virtual void setType(DtEntityType val);
242 
243  virtual DtEntityType getGuise();
244  virtual void setGuise(DtEntityType val);
245 
246  virtual double getLastSetTime();
247  virtual void setLastSetTime(double val);
248 
249  virtual DtVector getWorldPosition();
250  virtual void setWorldPosition(DtVector val);
251 
252  virtual DtVector32 getWorldVelocity();
253  virtual void setWorldVelocity(DtVector32 val);
254 
255  virtual DtVector32 getWorldAcceleration();
256  virtual void setWorldAcceleration(DtVector32 val);
257 
258  virtual DtTaitBryan getWorldOrientation();
259  virtual void setWorldOrientation(DtTaitBryan val);
260 
261  virtual DtVector32 getRotationalVelocity();
262  virtual void setRotationalVelocity(DtVector32 val);
263 
264  virtual DeadReckoningAlgorithm getDeadReckoningType();
265  virtual void setDeadReckoningType(DeadReckoningAlgorithm val);
266 
267  virtual bool getFrozenBit();
268  virtual void setFrozenBit(bool val);
269 
270  virtual ForceType getForceType();
271  virtual void setForceType(ForceType val);
272 
273  virtual std::string getMarkingText();
274  virtual void setMarkingText(std::string val);
275 
276  virtual unsigned int getAppearanceBits();
277  virtual void setAppearanceBits(unsigned int val);
278 
279  virtual unsigned int getCapabilityBits();
280  virtual void setCapabilityBits(unsigned int val);
281 
282  virtual LifeformState getLifeformState();
283  virtual void setLifeformState(LifeformState val);
284 
285  virtual std::vector<ArtPart> getArticulatedParts();
286  virtual void setArticulatedParts(std::vector<ArtPart> val);
287 
288  virtual std::vector<AttPart> getAttachedParts();
289  virtual void setAttachedParts(std::vector<AttPart> val);
290 
291  virtual unsigned short getInfraredSignatureIndex();
292  virtual void setInfraredSignatureIndex(unsigned short val);
293 
294  virtual unsigned short getAcousticSignatureIndex();
295  virtual void setAcousticSignatureIndex(unsigned short val);
296 
297  virtual unsigned short getLiveEntityMeasuredSpeed();
298  virtual void setLiveEntityMeasuredSpeed(unsigned short val);
299 
300  virtual std::string getHostGlobalId();
301  virtual void setHostGlobalId(std::string val);
302 
303  virtual ConstituentPartNature getPartNature();
304  virtual void setPartNature(ConstituentPartNature val);
305 
306  virtual ConstituentPartPosition getPartPosition();
307  virtual void setPartPosition(ConstituentPartPosition val);
308 
309  virtual ConstituentPartStationName getStationName();
310  virtual void setStationName(ConstituentPartStationName val);
311 
312  virtual unsigned short getStationNumber();
313  virtual void setStationNumber(unsigned short val);
314 
315  virtual DtVector32 getRelativePosition();
316  virtual void setRelativePosition(DtVector32 val);
317 
318  virtual float getRange();
319  virtual void setRange(float val);
320 
321  virtual float getBearing();
322  virtual void setBearing(float val);
323 
324  virtual std::vector<PStruct> getPropulsionSystemsData();
325  virtual void setPropulsionSystemsData(std::vector<PStruct> val);
326 
327  virtual std::vector<VNStruct> getVectoringNozzleSystemsData();
328  virtual void setVectoringNozzleSystemsData(std::vector<VNStruct> val);
329 
330 
331 
332  virtual int messageSize();
333 
334  static DtMessage* decode(unsigned char* buffer, int length);
335  static std::string theMessageName();
336 
337 protected:
338  static std::string theFullName;
339 
340  std::string myId;
341  std::string myEntityIdentifier;
353  std::string myMarkingText;
354  unsigned int myAppearanceBits;
355  unsigned int myCapabilityBits;
357  std::vector<ArtPart> myArticulatedParts;
358  std::vector<AttPart> myAttachedParts;
359  unsigned short myInfraredSignatureIndex;
360  unsigned short myAcousticSignatureIndex;
362  std::string myHostGlobalId;
366  unsigned short myStationNumber;
368  float myRange;
369  float myBearing;
370  std::vector<PStruct> myPropulsionSystemsData;
371  std::vector<VNStruct> myVectoringNozzleSystemsData;
372 
373  virtual void serialize(DtStreamWriter& writer);
374  virtual void deserialize(DtStreamReader& reader);
375 };
ConstituentPartPosition
Definition: managedInterface/messages/entityState.h:33
void serialize(DtStreamWriter &writer)
Definition: managedInterface/messages/entityState.h:182
DtEntityType myGuise
Definition: managedInterface/messages/entityState.h:343
unsigned int myAppearanceBits
Definition: managedInterface/messages/entityState.h:354
int size()
Definition: managedInterface/messages/entityState.h:173
Definition: managedInterface/messages/entityState.h:24
Definition: managedInterface/messages/entityState.h:167
unsigned int myCapabilityBits
Definition: managedInterface/messages/entityState.h:355
ParameterTypes myParameter
Definition: managedInterface/messages/entityState.h:43
DtVector32 myRotationalVelocity
Definition: managedInterface/messages/entityState.h:349
Contains the DtEntityType and DtRadioEntityType class declarations.
DtTaitBryan myWorldOrientation
Definition: managedInterface/messages/entityState.h:348
virtual int messageSize()
this function needs to be in each derived class for decoding
DeadReckoningAlgorithm myDeadReckoningType
Definition: managedInterface/messages/entityState.h:350
#define MANAGEDINTERFACE_DLL
Definition: plugin.h:15
void deserialize(DtStreamReader &reader)
Definition: managedInterface/messages/entityState.h:62
DtEntityType myType
Definition: managedInterface/messages/entityState.h:342
Definition: managedInterface/messages/entityState.h:71
float myEngineRMP
Definition: managedInterface/messages/entityState.h:170
ComplianceState
Definition: managedInterface/messages/entityState.h:32
char readInt8()
value readers return a value and increment the current position in the byte stream based on the size ...
int size()
Definition: managedInterface/messages/entityState.h:204
int size()
Definition: managedInterface/messages/entityState.h:128
std::vector< AttPart > myAttachedParts
Definition: managedInterface/messages/entityState.h:358
float myHorizontalDeflectionAngle
Definition: managedInterface/messages/entityState.h:200
CamoflageType
Definition: managedInterface/messages/entityState.h:37
double myLastSetTime
Definition: managedInterface/messages/entityState.h:344
Definition: managedInterface/messages/entityState.h:37
void deserialize(DtStreamReader &reader)
Definition: managedInterface/messages/entityState.h:106
Defines the base class for all messages that are sent to and from C#.
Definition: managedInterface/messages/entityState.h:21
Definition: managedInterface/messages/entityState.h:34
int myId
Definition: managedInterface/messages/entityState.h:73
This is the DtMessage class.
Definition: message.h:20
LifeformState myLifeformState
Definition: managedInterface/messages/entityState.h:356
int size()
Definition: managedInterface/messages/entityState.h:78
DtTaitBryans are used to represent orientation of an object, using a set of three Euler angles...
Definition: vlTaitBryan.h:43
std::string myHostGlobalId
Definition: managedInterface/messages/entityState.h:362
TrailingEffects
Definition: managedInterface/messages/entityState.h:26
void writeSingle(float num)
value readers return a value and increment the current position in the byte stream based on the size ...
This file declares DtVector and DtVector32.
Definition: managedInterface/messages/entityState.h:32
std::vector< Parameter > myParameters
Definition: managedInterface/messages/entityState.h:75
unsigned short myAcousticSignatureIndex
Definition: managedInterface/messages/entityState.h:360
ConstituentPartPosition myPartPosition
Definition: managedInterface/messages/entityState.h:364
Definition: vlVector.h:224
void serialize(DtStreamWriter &writer)
Definition: managedInterface/messages/entityState.h:55
Definition: managedInterface/messages/entityState.h:26
HatchState
Definition: managedInterface/messages/entityState.h:36
Definition: managedInterface/messages/entityState.h:198
This file declares DtTaitBryan.
LifeformState
Definition: managedInterface/messages/entityState.h:35
float myValue
Definition: managedInterface/messages/entityState.h:42
DtEntityType myType
Definition: managedInterface/messages/entityState.h:124
DtVector myWorldPosition
Definition: managedInterface/messages/entityState.h:345
void deserialize(DtStreamReader &reader)
Definition: managedInterface/messages/entityState.h:151
Definition: vlVector.h:162
std::string myId
Definition: managedInterface/messages/entityState.h:340
DtVector32 myWorldVelocity
Definition: managedInterface/messages/entityState.h:346
float myVerticalDeflectionAngle
Definition: managedInterface/messages/entityState.h:201
Definition: managedInterface/messages/entityState.h:35
int readInt32()
value readers return a value and increment the current position in the byte stream based on the size ...
void writeInt16(short num)
value readers return a value and increment the current position in the byte stream based on the size ...
ConstituentPartStationName
Definition: managedInterface/messages/entityState.h:25
float myBearing
Definition: managedInterface/messages/entityState.h:369
Instances of DtStreamWriter encode values into a byte array.
Definition: byteStream.h:74
LightType
Definition: managedInterface/messages/entityState.h:28
Definition: managedInterface/messages/entityState.h:122
int myAttachedTo
Definition: managedInterface/messages/entityState.h:74
std::vector< ArtPart > myArticulatedParts
Definition: managedInterface/messages/entityState.h:357
Definition: managedInterface/messages/entityState.h:40
std::vector< VNStruct > myVectoringNozzleSystemsData
Definition: managedInterface/messages/entityState.h:371
DtVector32 myRelativePosition
Definition: managedInterface/messages/entityState.h:367
unsigned short myStationNumber
Definition: managedInterface/messages/entityState.h:366
float myRange
Definition: managedInterface/messages/entityState.h:368
ForceType myForceType
Definition: managedInterface/messages/entityState.h:352
Instances of DtStreamReader decode values from a byte array.
Definition: byteStream.h:31
static std::string theFullName
Definition: managedInterface/messages/entityState.h:338
virtual void serialize(DtStreamWriter &writer)
ConstituentPartStationName myStationName
Definition: managedInterface/messages/entityState.h:365
float myPowerSetting
Definition: managedInterface/messages/entityState.h:169
std::string myEntityIdentifier
Definition: managedInterface/messages/entityState.h:341
ParameterTypes
Definition: managedInterface/messages/entityState.h:29
Definition: managedInterface/messages/entityState.h:30
DeadReckoningAlgorithm
Definition: managedInterface/messages/entityState.h:24
unsigned short myLiveEntityMeasuredSpeed
Definition: managedInterface/messages/entityState.h:361
Definition: managedInterface/messages/entityState.h:36
int myStationId
Definition: managedInterface/messages/entityState.h:125
void serialize(DtStreamWriter &writer)
Definition: managedInterface/messages/entityState.h:213
void deserialize(DtStreamReader &reader)
Definition: managedInterface/messages/entityState.h:220
DamageState
Definition: managedInterface/messages/entityState.h:34
ForceType
Definition: managedInterface/messages/entityState.h:27
float readSingle()
value readers return a value and increment the current position in the byte stream based on the size ...
void serialize(DtStreamWriter &writer)
Definition: managedInterface/messages/entityState.h:137
std::string myMarkingText
Definition: managedInterface/messages/entityState.h:353
void serialize(DtStreamWriter &writer)
Definition: managedInterface/messages/entityState.h:93
Definition: managedInterface/messages/entityState.h:27
bool myFrozenBit
Definition: managedInterface/messages/entityState.h:351
ConstituentPartNature myPartNature
Definition: managedInterface/messages/entityState.h:363
ConstituentPartNature
Definition: managedInterface/messages/entityState.h:31
std::vector< PStruct > myPropulsionSystemsData
Definition: managedInterface/messages/entityState.h:370
unsigned short myInfraredSignatureIndex
Definition: managedInterface/messages/entityState.h:359
void writeInt8(char num)
value readers return a value and increment the current position in the byte stream based on the size ...
short readInt16()
value readers return a value and increment the current position in the byte stream based on the size ...
WeaponState
Definition: managedInterface/messages/entityState.h:30
void deserialize(DtStreamReader &reader)
Definition: managedInterface/messages/entityState.h:189
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26
DtVector32 myWorldAcceleration
Definition: managedInterface/messages/entityState.h:347
int size()
Definition: managedInterface/messages/entityState.h:46
virtual void deserialize(DtStreamReader &reader)
void writeInt32(int num)
value readers return a value and increment the current position in the byte stream based on the size ...

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)