VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
managedInterface/messages/detonate.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 <matrix/vlVector.h>
16 #include <vlpi/entityType.h>
17 #include <vector>
18 
19 
21 {
22 public:
23  enum FuzeType {FuzeType_OTHER=0, FuzeType_CONTACT=1000, FuzeType_CONTACTINSTANT=1100, FuzeType_CONTACTDELAYED=1200, FuzeType_TIMED=2000, FuzeType_PROXIMITY=3000, FuzeType_COMMAND=4000, FuzeType_ALTITUDE=5000, FuzeType_DEPTH=6000, FuzeType_ACOUSTIC=7000};
24  enum ResultType {ResultType_OTHER, ResultType_ENTITYIMPACT, ResultType_ENTITYPROXIMATE, ResultType_GROUNDIMPACT, ResultType_GROUNDPROXIMATE, ResultType_DETONATION, ResultType_NONE, ResultType_HE_SMALL, ResultType_HE_MEDIUM, ResultType_HE_LARGE, ResultType_ARMORPEIRCING, ResultType_DIRTBLAST_SMALL, ResultType_DIRTBLAST_MEDIUM, ResultType_DIRTBLAST_LARGE, ResultType_WATERBLAST_SMALL, ResultType_WATERBLAST_MEDIUM, ResultType_WATERBLAST_LARGE, ResultType_CLEARINGLINECHARGE, ResultType_ENVIRONMENTALOBJECTIMPACT, ResultType_ENVIRONMENTALOBJECTPROXIMATE, ResultType_WATERIMPACT, ResultType_AIRBURST};
25  enum WarheadType {WarheadType_OTHER=0, WarheadType_HIGHEXPLOSIVE=1000, WarheadType_HIGHEXPLOSIVEPLATIC=1100, WarheadType_HIGHEXPLOSIVEINCENDIARY=1200, WarheadType_HIGHEXPLOSIVEFRAGMENTATION=1300, WarheadType_HIGHEXPLOSIVEANTITANK=1400, WarheadType_HIGHEXPLOSIVEBOMBLETS=1500, WarheadType_HIGHEXPLOSIVESHAPEDCHARGE=1600, WarheadType_SMOKE=2000, WarheadType_ILLUMINATION=3000, WarheadType_PRACTICE=4000, WarheadType_KINETIC=5000, WarheadType_UNUSED=6000, WarheadType_NUCLEAR=7000, WarheadType_CHEMICALGENERAL=8000, WarheadType_CHEMICALBLISTER=8100, WarheadType_CHEMICALBLOOD=8200, WarheadType_CHEMICALNERVE=8300, WarheadType_BIOLOGICALGENERAL=9000};
26  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};
27 
28 
29  struct Parameter
30  {
31  float myValue;
33 
34 
35  int size()
36  {
37  int size=0;
38  size+=sizeof(float);
39  size+=sizeof(int);
40 
41  return size;
42  }
43 
44  void serialize(DtStreamWriter& writer)
45  {
46  writer.writeSingle(myValue);
47  writer.writeInt32((int)myParameter);
48 
49  }
50 
51  void deserialize(DtStreamReader& reader)
52  {
53  myValue=reader.readSingle();
54  myParameter=(ParameterTypes)reader.readInt32();
55 
56  }
57  };
58 
59 
60  struct ArtPart
61  {
62  int myId;
64  std::vector<Parameter> myParameters;
65 
66 
67  int size()
68  {
69  int size=0;
70  size+=sizeof(int);
71  size+=sizeof(int);
72  size+=4; //for the count of the items in the list
73  for(unsigned int i=0; i<myParameters.size(); i++)
74  {
75  size+=myParameters[i].size();
76  }
77 
78 
79  return size;
80  }
81 
82  void serialize(DtStreamWriter& writer)
83  {
84  writer.writeInt32(myId);
85  writer.writeInt32(myAttachedTo);
86  writer.writeInt32(myParameters.size()); //for the count of the items in the list
87  for(unsigned int i=0; i<myParameters.size(); i++)
88  {
89  myParameters[i].serialize(writer);
90  }
91 
92 
93  }
94 
95  void deserialize(DtStreamReader& reader)
96  {
97  myId=reader.readInt32();
98  myAttachedTo=reader.readInt32();
99  unsigned int myParameters_count=reader.readInt32(); //for the count of the items in the list
100  for(unsigned int i=0; i<myParameters_count; i++)
101  {
102  Parameter aParameter;
103  aParameter.deserialize(reader);
104  myParameters.push_back(aParameter);
105  }
106 
107  }
108  };
109 
110 
111 
112 
113  DetonateMessage();
114  virtual ~DetonateMessage();
115 
116  virtual std::string getFiringId();
117  virtual void setFiringId(std::string val);
118 
119  virtual std::string getTargetId();
120  virtual void setTargetId(std::string val);
121 
122  virtual std::string getMunitionId();
123  virtual void setMunitionId(std::string val);
124 
125  virtual DtVector getWorldPosition();
126  virtual void setWorldPosition(DtVector val);
127 
128  virtual DtVector32 getVelocity();
129  virtual void setVelocity(DtVector32 val);
130 
131  virtual int getEventId();
132  virtual void setEventId(int val);
133 
134  virtual DtEntityType getMunitionType();
135  virtual void setMunitionType(DtEntityType val);
136 
137  virtual FuzeType getFuzeType();
138  virtual void setFuzeType(FuzeType val);
139 
140  virtual WarheadType getWarheadType();
141  virtual void setWarheadType(WarheadType val);
142 
143  virtual int getQuantity();
144  virtual void setQuantity(int val);
145 
146  virtual int getRate();
147  virtual void setRate(int val);
148 
149  virtual DtVector32 getEntityLocation();
150  virtual void setEntityLocation(DtVector32 val);
151 
152  virtual ResultType getResult();
153  virtual void setResult(ResultType val);
154 
155  virtual std::vector<ArtPart> getArticulatedParts();
156  virtual void setArticulatedParts(std::vector<ArtPart> val);
157 
158 
159 
160  virtual int messageSize();
161 
162  static DtMessage* decode(unsigned char* buffer, int length);
163  static std::string theMessageName();
164 
165 protected:
166  static std::string theFullName;
167 
168  std::string myFiringId;
169  std::string myTargetId;
170  std::string myMunitionId;
178  int myRate;
181  std::vector<ArtPart> myArticulatedParts;
182 
183  virtual void serialize(DtStreamWriter& writer);
184  virtual void deserialize(DtStreamReader& reader);
185 };

Document ID: Generated on Fri Dec 2 02:42:08 EST 2016 from SVN revision 171416
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)