VR-Link API Documentation for DIS
 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) 2014 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 TrailingEffects {TrailingEffects_NONE, TrailingEffects_SMALL, TrailingEffects_MEDIUM, TrailingEffects_LARGE};
26  enum ForceType {ForceType_OTHER, ForceType_FRIENDLY, ForceType_OPPOSING, ForceType_NEUTRAL};
27  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};
28  enum WeaponState {WeaponState_NOWEAPON, WeaponState_STOWED, WeaponState_DEPLOYED, WeaponState_FIREPOSITION};
29  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};
30  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};
31  enum DamageState {DamageState_NONE, DamageState_SLIGHT, DamageState_MODERATE, DamageState_DESTROYED};
32  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};
33  enum HatchState {HatchState_NA, HatchState_CLOSED, HatchState_POPPED, HatchState_POPPEDANDPERSON, HatchState_OPEN, HatchState_OPENANDPERSON};
34  enum CamoflageType {CamoflageType_DESERT, CamoflageType_WINTER, CamoflageType_FOREST};
35 
36 
37  struct AttPart
38  {
41 
42 
43  int size()
44  {
45  int size=0;
46  size+=8;
47  size+=sizeof(int);
48 
49  return size;
50  }
51 
52  void serialize(DtStreamWriter& writer)
53  {
54  writer.writeInt8(myType.kind());
55  writer.writeInt8(myType.domain());
56  writer.writeInt16(myType.country());
57  writer.writeInt8(myType.category());
58  writer.writeInt8(myType.subCategory());
59  writer.writeInt8(myType.specific());
60  writer.writeInt8(myType.extra());
61 
62  writer.writeInt32(myStationId);
63 
64  }
65 
67  {
68  myType.setKind(reader.readInt8());
69  myType.setDomain(reader.readInt8());
70  myType.setCountry(reader.readInt16());
71  myType.setCategory(reader.readInt8());
72  myType.setSubCategory(reader.readInt8());
73  myType.setSpecific(reader.readInt8());
74  myType.setExtra(reader.readInt8());
75 
76  myStationId=reader.readInt32();
77 
78  }
79  };
80 
81 
82  struct Parameter
83  {
84  float myValue;
86 
87 
88  int size()
89  {
90  int size=0;
91  size+=sizeof(float);
92  size+=sizeof(int);
93 
94  return size;
95  }
96 
97  void serialize(DtStreamWriter& writer)
98  {
99  writer.writeSingle(myValue);
100  writer.writeInt32((int)myParameter);
101 
102  }
103 
105  {
106  myValue=reader.readSingle();
107  myParameter=(ParameterTypes)reader.readInt32();
108 
109  }
110  };
111 
112 
113  struct ArtPart
114  {
115  int myId;
117  std::vector<Parameter> myParameters;
118 
119 
120  int size()
121  {
122  int size=0;
123  size+=sizeof(int);
124  size+=sizeof(int);
125  size+=4; //for the count of the items in the list
126  for(unsigned int i=0; i<myParameters.size(); i++)
127  {
128  size+=myParameters[i].size();
129  }
130 
131 
132  return size;
133  }
134 
135  void serialize(DtStreamWriter& writer)
136  {
137  writer.writeInt32(myId);
138  writer.writeInt32(myAttachedTo);
139  writer.writeInt32(myParameters.size()); //for the count of the items in the list
140  for(unsigned int i=0; i<myParameters.size(); i++)
141  {
142  myParameters[i].serialize(writer);
143  }
144 
145 
146  }
147 
149  {
150  myId=reader.readInt32();
151  myAttachedTo=reader.readInt32();
152  unsigned int myParameters_count=reader.readInt32(); //for the count of the items in the list
153  for(unsigned int i=0; i<myParameters_count; i++)
154  {
155  Parameter aParameter;
156  aParameter.deserialize(reader);
157  myParameters.push_back(aParameter);
158  }
159 
160  }
161  };
162 
163 
164 
165 
167  virtual ~EntityStateMessage();
168 
169  virtual std::string getId();
170  virtual void setId(std::string val);
171 
172  virtual std::string getEntityIdentifier();
173  virtual void setEntityIdentifier(std::string val);
174 
175  virtual DtEntityType getType();
176  virtual void setType(DtEntityType val);
177 
178  virtual DtEntityType getGuise();
179  virtual void setGuise(DtEntityType val);
180 
181  virtual double getLastSetTime();
182  virtual void setLastSetTime(double val);
183 
184  virtual DtVector getWorldPosition();
185  virtual void setWorldPosition(DtVector val);
186 
187  virtual DtVector32 getWorldVelocity();
188  virtual void setWorldVelocity(DtVector32 val);
189 
190  virtual DtVector32 getWorldAcceleration();
191  virtual void setWorldAcceleration(DtVector32 val);
192 
193  virtual DtTaitBryan getWorldOrientation();
194  virtual void setWorldOrientation(DtTaitBryan val);
195 
196  virtual DtVector32 getRotationalVelocity();
197  virtual void setRotationalVelocity(DtVector32 val);
198 
199  virtual DeadReckoningAlgorithm getDeadReckoningType();
200  virtual void setDeadReckoningType(DeadReckoningAlgorithm val);
201 
202  virtual ForceType getForceType();
203  virtual void setForceType(ForceType val);
204 
205  virtual std::string getMarkingText();
206  virtual void setMarkingText(std::string val);
207 
208  virtual unsigned int getAppearanceBits();
209  virtual void setAppearanceBits(unsigned int val);
210 
211  virtual unsigned int getCapabilityBits();
212  virtual void setCapabilityBits(unsigned int val);
213 
214  virtual LifeformState getLifeformState();
215  virtual void setLifeformState(LifeformState val);
216 
217  virtual std::vector<ArtPart> getArticulatedParts();
218  virtual void setArticulatedParts(std::vector<ArtPart> val);
219 
220  virtual std::vector<AttPart> getAttachedParts();
221  virtual void setAttachedParts(std::vector<AttPart> val);
222 
223 
224 
225  virtual int messageSize();
226 
227  static DtMessage* decode(unsigned char* buffer, int length);
228  static std::string theMessageName();
229 
230 protected:
231  static std::string theFullName;
232 
233  std::string myId;
234  std::string myEntityIdentifier;
245  std::string myMarkingText;
246  unsigned int myAppearanceBits;
247  unsigned int myCapabilityBits;
249  std::vector<ArtPart> myArticulatedParts;
250  std::vector<AttPart> myAttachedParts;
251 
252  virtual void serialize(DtStreamWriter& writer);
253  virtual void deserialize(DtStreamReader& reader);
254 };
DtEntityType myGuise
Definition: managedInterface/messages/entityState.h:236
unsigned int myAppearanceBits
Definition: managedInterface/messages/entityState.h:246
Definition: managedInterface/messages/entityState.h:24
unsigned int myCapabilityBits
Definition: managedInterface/messages/entityState.h:247
ParameterTypes myParameter
Definition: managedInterface/messages/entityState.h:85
DtVector32 myRotationalVelocity
Definition: managedInterface/messages/entityState.h:242
Contains the DtEntityType and DtRadioEntityType class declarations.
DtTaitBryan myWorldOrientation
Definition: managedInterface/messages/entityState.h:241
virtual int messageSize()
this function needs to be in each derived class for decoding
DeadReckoningAlgorithm myDeadReckoningType
Definition: managedInterface/messages/entityState.h:243
#define MANAGEDINTERFACE_DLL
Definition: plugin.h:15
void deserialize(DtStreamReader &reader)
Definition: managedInterface/messages/entityState.h:104
DtEntityType myType
Definition: managedInterface/messages/entityState.h:235
Definition: managedInterface/messages/entityState.h:113
ComplianceState
Definition: managedInterface/messages/entityState.h:29
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:43
std::vector< AttPart > myAttachedParts
Definition: managedInterface/messages/entityState.h:250
CamoflageType
Definition: managedInterface/messages/entityState.h:34
double myLastSetTime
Definition: managedInterface/messages/entityState.h:237
Definition: managedInterface/messages/entityState.h:34
void deserialize(DtStreamReader &reader)
Definition: managedInterface/messages/entityState.h:148
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:31
int myId
Definition: managedInterface/messages/entityState.h:115
This is the DtMessage class.
Definition: message.h:20
LifeformState myLifeformState
Definition: managedInterface/messages/entityState.h:248
int size()
Definition: managedInterface/messages/entityState.h:120
DtTaitBryans are used to represent orientation of an object, using a set of three Euler angles...
Definition: vlTaitBryan.h:43
TrailingEffects
Definition: managedInterface/messages/entityState.h:25
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:29
std::vector< Parameter > myParameters
Definition: managedInterface/messages/entityState.h:117
Definition: vlVector.h:224
void serialize(DtStreamWriter &writer)
Definition: managedInterface/messages/entityState.h:97
Definition: managedInterface/messages/entityState.h:25
HatchState
Definition: managedInterface/messages/entityState.h:33
This file declares DtTaitBryan.
LifeformState
Definition: managedInterface/messages/entityState.h:32
float myValue
Definition: managedInterface/messages/entityState.h:84
DtEntityType myType
Definition: managedInterface/messages/entityState.h:39
DtVector myWorldPosition
Definition: managedInterface/messages/entityState.h:238
void deserialize(DtStreamReader &reader)
Definition: managedInterface/messages/entityState.h:66
Definition: vlVector.h:162
std::string myId
Definition: managedInterface/messages/entityState.h:233
DtVector32 myWorldVelocity
Definition: managedInterface/messages/entityState.h:239
Definition: managedInterface/messages/entityState.h:32
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 ...
Instances of DtStreamWriter encode values into a byte array.
Definition: byteStream.h:74
LightType
Definition: managedInterface/messages/entityState.h:30
Definition: managedInterface/messages/entityState.h:37
int myAttachedTo
Definition: managedInterface/messages/entityState.h:116
std::vector< ArtPart > myArticulatedParts
Definition: managedInterface/messages/entityState.h:249
Definition: managedInterface/messages/entityState.h:82
ForceType myForceType
Definition: managedInterface/messages/entityState.h:244
Instances of DtStreamReader decode values from a byte array.
Definition: byteStream.h:31
static std::string theFullName
Definition: managedInterface/messages/entityState.h:231
virtual void serialize(DtStreamWriter &writer)
std::string myEntityIdentifier
Definition: managedInterface/messages/entityState.h:234
ParameterTypes
Definition: managedInterface/messages/entityState.h:27
Definition: managedInterface/messages/entityState.h:28
DeadReckoningAlgorithm
Definition: managedInterface/messages/entityState.h:24
Definition: managedInterface/messages/entityState.h:33
int myStationId
Definition: managedInterface/messages/entityState.h:40
DamageState
Definition: managedInterface/messages/entityState.h:31
ForceType
Definition: managedInterface/messages/entityState.h:26
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:52
std::string myMarkingText
Definition: managedInterface/messages/entityState.h:245
void serialize(DtStreamWriter &writer)
Definition: managedInterface/messages/entityState.h:135
Definition: managedInterface/messages/entityState.h:26
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:28
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26
DtVector32 myWorldAcceleration
Definition: managedInterface/messages/entityState.h:240
int size()
Definition: managedInterface/messages/entityState.h:88
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 Tue Feb 2 21:02:17 EST 2021 from SVN revision 223668
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)