VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfEnumerationExtensions.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #pragma once
7 
8 // DtEntityTypeEnumerations:
9 //
10 // This header file contains the extensions to the RPR/DIS enumeration,
11 // and are used to specify entity types. It contains enumerations to be
12 // used to specify individual, aggregate, and non-entity object types.
13 
15 #include <vlpi/entityType.h>
16 #include <vlpi/entityTypes.h>
17 
18 DT_DLL_vrfExtProtocol bool EntityTypeHasWildCard(const DtEntityType&);
19 DT_DLL_vrfExtProtocol void SetEntityTypeValue(DtEntityType&, int index, int value);
20 DT_DLL_vrfExtProtocol int EntityTypeValue(const DtEntityType&, int);
21 
22 inline bool EntityTypeHasWildCard(const DtEntityType& ot)
23 {
24  for (int i = 0; i < 7; i++)
25  {
26  if (EntityTypeValue(ot, i) == -1)
27  {
28  return true;
29  }
30  }
31 
32  return false;
33 }
34 
35 inline int EntityTypeValue(const DtEntityType& ot, int i)
36  {
37  switch (i)
38  {
39  case 0:
40  return ot.kind();
41  case 1:
42  return ot.domain();
43  case 2:
44  return ot.country();
45  case 3:
46  return ot.category();
47  case 4:
48  return ot.subCategory();
49  case 5:
50  return ot.specific();
51  case 6:
52  return ot.extra();
53  }
54 
55  return ot.kind();
56  }
57 
58 inline void SetEntityTypeValue(DtEntityType& ot, int i, int v)
59  {
60  switch (i)
61  {
62  case 0:
63  return ot.setKind(v);
64  case 1:
65  return ot.setDomain(v);
66  case 2:
67  return ot.setCountry(v);
68  case 3:
69  return ot.setCategory(v);
70  case 4:
71  return ot.setSubCategory(v);
72  case 5:
73  return ot.setSpecific(v);
74  case 6:
75  return ot.setExtra(v);
76  }
77  }
78 
79 // This is a deviation from the document "Enumerations and Bit-Encoded Values
80 // for Use with Protocols for Distributed Interactive Simulation", IST-CF-99-01.
81 // The enumeration for DtAggregateKind should start with 0, but I am starting with
82 // 10, to ensure that entity types will be unique.
83 // enum DtAggregateKind
84 // {
85 // DtAggregateKindOther = 0,
86 // DtAggregateKindMilitaryHierarchy = 1,
87 // DtAggregateKindCommonType = 2,
88 // DtAggregateKindCommonMission = 3,
89 // DtAggregateKindSimilarCapabilities = 4,
90 // DtAggregateKindCommonLocation = 5
91 //};
92 const DtEntityKind DtAggregateKindOther = DtEntityKind(10);
93 const DtEntityKind DtAggregateKindMilitaryHierarchy = DtEntityKind(11);
94 const DtEntityKind DtAggregateKindCommonType = DtEntityKind(12);
95 const DtEntityKind DtAggregateKindCommonMission = DtEntityKind(13);
96 const DtEntityKind DtAggregateKindSimilarCapabilities = DtEntityKind(14);
97 const DtEntityKind DtAggregateKindCommonLocation = DtEntityKind(15);
98 const DtEntityKind DtSimArtPartKind = DtEntityKind(20);
99 
100 // Extension of entity kind to represent non-entity objects, such as
101 // control objects (control points, routes, phase lines, obstacles, etc.)
102 const DtEntityKind DtPointObjectKind = DtEntityKind(16);
103 const DtEntityKind DtLinearObjectKind = DtEntityKind(17);
104 const DtEntityKind DtArealObjectKind = DtEntityKind(18);
105 const DtEntityKind DtCircleObjectKind = DtEntityKind(19);
106 const DtEntityKind DtTextObjectKind = DtEntityKind(20);
107 const DtEntityKind DtWeatherObjectKind = DtEntityKind(21);
108 const DtEntityKind DtCloudLayerObjectKind = DtEntityKind(25);
109 
110 // Extension of entity kind to represent remote graphic objects.
111 const DtEntityKind Dt2DGraphicalObjectKind = DtEntityKind(22);
112 const DtEntityKind Dt3DGraphicalObjectKind = DtEntityKind(23);
113 const DtEntityKind DtBulkGraphicalObjectKind = DtEntityKind(24);
114 
115 // The Domain and Country field enumerations are the same as used for Entity Type.
116 
117 // The Category field enumerations for Kind-field = Military Hierarchy specify
118 // the Echelon Level of the aggregate, and are enumerated as follows:
119 // Kind Domain Country Cat Scat Specific
120 // 1 1 225
121 // KRO - I have extended the enumeration to include DtAggregateCategoryForce,
122 // which represents the force level (i.e. friendly, opposing, neutral).
123 // All of the entries after (and including DtAggregateCategoryForce) are
124 // extensions to the standard.
125 
127 {
143 };
144 
145 // The Subcategory field enumerations for Kind field = Military Hierarchy
146 // specify the Echelon Type of the aggregate, and are enumerated as follows.
147 // Not all of the following echelon types are applicable to each of the above
148 // enumerated Categories.
149 
150 // Kind Domain Country Cat Scat Specific
151 // 1 1 225
152 // KRO - I have extended the enumeration to include entries for
153 // DtAggregateCategoryForce, consisting of DtAggregateSubcategoryForceFriendly,
154 // DtAggregateSubcategoryForceOpposing, DtAggregateSubcategoryForceNeutral,
155 // and DtAggregateSubcategoryForceOther.
157 {
190 };
191 
192 // The Specific field enumerations for Kind field = Military Hierarchy specify
193 // whether the aggregate unit contains a headquarters, and is enumerated as
194 // follows.
195 
196 // Kind Domain Country Cat Scat Specific
197 // 1 1 225
198 
200 {
203 };
204 
205 // Extended specific type for Dismounted Infantry aggregates.
207 {
209 };
210 
211 // Subcategories for use with the Kind field = DtPointObjectKind
213 {
218 };
219 
220 // Subcategories for use with the Kind field = DtLinearObjectKind
222 {
226 };
227 
228 // Subcategories for use with the Kind field = DtArealObjectKind
230 {
235 };
236 
237 //Kinds for Supertype interaction
239 {
243 };
244 
246 {
252 };
253 
255 {
258 };
259 
260 // More categories are added for the Remote Graphics API
262 {
269 };
270 
271 
273 {
284 };
285 
287 {
293 };
294 
295 static const char DtEnvironmentalFormattingData[] = "Environmental_Formatting_Data";
Definition: vrfEnumerationExtensions.h:173
Definition: vrfEnumerationExtensions.h:137
const DtEntityKind DtAggregateKindCommonMission
Definition: vrfEnumerationExtensions.h:95
Definition: vrfEnumerationExtensions.h:188
Definition: vrfEnumerationExtensions.h:128
Definition: vrfEnumerationExtensions.h:231
DtArealObjectCategory
Definition: vrfEnumerationExtensions.h:229
Definition: vrfEnumerationExtensions.h:292
const DtEntityKind DtSimArtPartKind
Definition: vrfEnumerationExtensions.h:98
Definition: vrfEnumerationExtensions.h:132
Definition: vrfEnumerationExtensions.h:214
Definition: vrfEnumerationExtensions.h:208
Definition: vrfEnumerationExtensions.h:159
Definition: vrfEnumerationExtensions.h:174
Definition: vrfEnumerationExtensions.h:223
Definition: vrfEnumerationExtensions.h:164
DT_DLL_vrfExtProtocol int EntityTypeValue(const DtEntityType &, int)
Definition: vrfEnumerationExtensions.h:35
Definition: vrfEnumerationExtensions.h:135
Definition: vrfEnumerationExtensions.h:186
Definition: vrfEnumerationExtensions.h:187
Definition: vrfEnumerationExtensions.h:277
Definition: vrfEnumerationExtensions.h:240
Definition: vrfEnumerationExtensions.h:282
Definition: vrfEnumerationExtensions.h:281
DtDismountedInfantryAggregateSpecific
Definition: vrfEnumerationExtensions.h:206
Definition: vrfEnumerationExtensions.h:178
Definition: vrfEnumerationExtensions.h:202
Definition: vrfEnumerationExtensions.h:289
Definition: vrfEnumerationExtensions.h:130
Definition: vrfEnumerationExtensions.h:162
Definition: vrfEnumerationExtensions.h:248
const DtEntityKind DtWeatherObjectKind
Definition: vrfEnumerationExtensions.h:107
Definition: vrfEnumerationExtensions.h:249
Definition: vrfEnumerationExtensions.h:241
const DtEntityKind DtAggregateKindSimilarCapabilities
Definition: vrfEnumerationExtensions.h:96
DT_DLL_vrfExtProtocol bool EntityTypeHasWildCard(const DtEntityType &)
Definition: vrfEnumerationExtensions.h:22
DtAggregateSpecific
Definition: vrfEnumerationExtensions.h:199
Definition: vrfEnumerationExtensions.h:276
Definition: vrfEnumerationExtensions.h:216
Definition: vrfEnumerationExtensions.h:233
Definition: vrfEnumerationExtensions.h:138
const DtEntityKind DtLinearObjectKind
Definition: vrfEnumerationExtensions.h:103
DtPointObjectCategory
Definition: vrfEnumerationExtensions.h:212
Definition: vrfEnumerationExtensions.h:268
const DtEntityKind DtBulkGraphicalObjectKind
Definition: vrfEnumerationExtensions.h:113
Definition: vrfEnumerationExtensions.h:215
Dt3DAttributeSubcategory
Definition: vrfEnumerationExtensions.h:286
Definition: vrfEnumerationExtensions.h:141
Definition: vrfEnumerationExtensions.h:183
Definition: vrfEnumerationExtensions.h:179
Definition: vrfEnumerationExtensions.h:265
Definition: vrfEnumerationExtensions.h:168
Definition: vrfEnumerationExtensions.h:264
Definition: vrfEnumerationExtensions.h:167
Definition: vrfEnumerationExtensions.h:266
Definition: vrfEnumerationExtensions.h:288
Definition: vrfEnumerationExtensions.h:182
Definition: vrfEnumerationExtensions.h:140
Definition: vrfEnumerationExtensions.h:274
const DtEntityKind DtTextObjectKind
Definition: vrfEnumerationExtensions.h:106
Definition: vrfEnumerationExtensions.h:163
Definition: vrfEnumerationExtensions.h:171
Definition: vrfEnumerationExtensions.h:136
Definition: vrfEnumerationExtensions.h:158
const DtEntityKind DtArealObjectKind
Definition: vrfEnumerationExtensions.h:104
Definition: vrfEnumerationExtensions.h:189
Definition: vrfEnumerationExtensions.h:172
Definition: vrfEnumerationExtensions.h:263
static const char DtEnvironmentalFormattingData[]
Definition: vrfEnumerationExtensions.h:295
DtInteractionKind
Definition: vrfEnumerationExtensions.h:238
Definition: vrfEnumerationExtensions.h:251
Definition: vrfEnumerationExtensions.h:279
const DtEntityKind DtAggregateKindCommonLocation
Definition: vrfEnumerationExtensions.h:97
Definition: vrfEnumerationExtensions.h:184
Definition: vrfEnumerationExtensions.h:185
Definition: vrfEnumerationExtensions.h:224
Definition: vrfEnumerationExtensions.h:161
Dt2DGraphicalObjectCategory
Definition: vrfEnumerationExtensions.h:261
Definition: vrfEnumerationExtensions.h:250
Definition: vrfEnumerationExtensions.h:142
Definition: vrfEnumerationExtensions.h:283
Definition: vrfEnumerationExtensions.h:181
DtLinearObjectRouteSubcategory
Definition: vrfEnumerationExtensions.h:245
DtAggregateCategory
Definition: vrfEnumerationExtensions.h:126
Definition: vrfEnumerationExtensions.h:232
Definition: vrfEnumerationExtensions.h:267
const DtEntityKind DtAggregateKindCommonType
Definition: vrfEnumerationExtensions.h:94
const DtEntityKind DtCircleObjectKind
Definition: vrfEnumerationExtensions.h:105
Definition: vrfEnumerationExtensions.h:290
#define DT_DLL_vrfExtProtocol
Definition: vrfExtProtocolDefines.h:23
Definition: vrfEnumerationExtensions.h:256
DtAggregateSubcategory
Definition: vrfEnumerationExtensions.h:156
Definition: vrfEnumerationExtensions.h:169
Dt3DGraphicalObjectCategory
Definition: vrfEnumerationExtensions.h:272
const DtEntityKind DtAggregateKindMilitaryHierarchy
Definition: vrfEnumerationExtensions.h:93
Definition: vrfEnumerationExtensions.h:139
DT_DLL_vrfExtProtocol void SetEntityTypeValue(DtEntityType &, int index, int value)
Definition: vrfEnumerationExtensions.h:58
Definition: vrfEnumerationExtensions.h:225
Definition: vrfEnumerationExtensions.h:176
Definition: vrfEnumerationExtensions.h:278
Definition: vrfEnumerationExtensions.h:242
Definition: vrfEnumerationExtensions.h:257
const DtEntityKind DtCloudLayerObjectKind
Definition: vrfEnumerationExtensions.h:108
Definition: vrfEnumerationExtensions.h:177
Definition: vrfEnumerationExtensions.h:280
Definition: vrfEnumerationExtensions.h:160
Definition: vrfEnumerationExtensions.h:175
const DtEntityKind DtAggregateKindOther
Definition: vrfEnumerationExtensions.h:92
Definition: vrfEnumerationExtensions.h:234
const DtEntityKind Dt2DGraphicalObjectKind
Definition: vrfEnumerationExtensions.h:111
Definition: vrfEnumerationExtensions.h:217
const DtEntityKind Dt3DGraphicalObjectKind
Definition: vrfEnumerationExtensions.h:112
Definition: vrfEnumerationExtensions.h:129
Definition: vrfEnumerationExtensions.h:165
Definition: vrfEnumerationExtensions.h:166
Definition: vrfEnumerationExtensions.h:247
Definition: vrfEnumerationExtensions.h:201
Definition: vrfEnumerationExtensions.h:291
Definition: vrfEnumerationExtensions.h:180
DtWeatherObjectCategory
Definition: vrfEnumerationExtensions.h:254
Definition: vrfEnumerationExtensions.h:170
Definition: vrfEnumerationExtensions.h:133
const DtEntityKind DtPointObjectKind
Definition: vrfEnumerationExtensions.h:102
DtLinearObjectCategory
Definition: vrfEnumerationExtensions.h:221
Definition: vrfEnumerationExtensions.h:131
Definition: vrfEnumerationExtensions.h:275
Definition: vrfEnumerationExtensions.h:134

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)