VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtModelSemanticsMapper.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtModelSemanticsMapper.h,v $ $Revision: 1.10 $ $State: Exp $
7 ******************************************************************************/
8 
12 
13 #ifndef DtModelSemanticsMapper_H_
14 #define DtModelSemanticsMapper_H_
15 
16 #include <vrvCore/vrvCore.h>
18 
19 #include <map>
20 #include <string>
21 
22 namespace makVrv
23 {
24  class DtDe;
25  class DtBaseConnection;
31  {
32  public:
33 
35 
39  struct States
40  {
41  //The default state ids, note using a string of the exact text of an enumeration
42  //is a valid name for the id.
43  enum Id
44  {
45  invalidId = 0,
46  mobility = 1,
47  fire_power = 2,
48  damage = 3,
49  trailing_effects = 4,
50  hatch = 5,
51  moving = 6,
52  paint_scheme = 7,
53  density = 8,
54  frozen_status = 9,
55  power_plant_status = 10,
56  launcher = 11,
57  camouflage_type = 12,
58  concealed = 13,
59  head_lights = 14,
60  tail_lights = 15,
61  brake_lights = 16,
62  blackout_lights = 17,
63  blackout_brake_lights = 18,
64  spot_lights = 19,
65  interior_lights = 20,
66  afterburner = 21,
67  landing_lights = 22,
68  navigation_lights = 23,
69  anticollision_lights = 24,
70  formation_lights = 25,
71  launch_flash = 26,
72  smoke = 27,
73  flaming = 28,
74  running_lights = 29,
75  lights = 30,
76  life_form_state = 31,
77  weapon_1 = 32,
78  weapon_2 = 33,
79  flashlight = 34,
80  compliance = 35,
81  health = 36,
82  masked_cloaked = 37,
83  internal_heat_status = 38,
84  exterior_lights = 39,
85  mission = 40,
86  antenna = 41,
87  tent = 42,
88  ramp = 43,
89  wind_effect = 50, // things that change state due to wind
90  light_color = 51, // switch for light color on buoys and beacons
91  daymark = 52, // switch for daymark sign on beacons
92  daymark_shape = 53, // switch for daymark sign shape on beacons
93  topmark = 54, // switch for topmarks on beacons or buoys
94  topmark_shape = 55, // switch for topmark shapes on beacons or buoys
95  label_char_count = 56, // switch for number of characters on a label,
96  // with characters determined by UV offset into an atlas
97  shadow_polygon = 57, // switch for shadow polygon underneath cars and other objects
98  segment_count = 58, // switch for number of characters on a taxiway sign,
99  // with characters determined by UV offset into an atlas
100  // switch for the color of the expendable
101  exp_color = 59,
102  user_start = 500
103  };
104  };
105 
109  struct Parts
110  {
111  enum Id
112  {
113  rudder = 1024,
114  left_flap = 1056,
115  right_flap = 1088,
116  left_aileron = 1120,
117  right_aileron = 1152,
118  helicopter_main_rotor = 1184,
119  helicopter_tail_rotor = 1216,
120  other_aircraft_control_surfaces_defined_as_needed = 1248,
121  periscope = 2048,
122  generic_antenna = 2080,
123  snorkel = 2112,
124  other_extendible_parts_defined_as_needed = 2144,
125  landing_gear = 3072,
126  tail_hook = 3104,
127  speed_brake = 3136,
128  left_weapon_bay_door = 3168,
129  right_weapon_bay_doors = 3200,
130  tank_or_apc_hatch = 3232,
131  wingsweep = 3264,
132  bridge_launcher = 3296,
133  bridge_section_1 = 3328,
134  bridge_section_2 = 3360,
135  bridge_section_3 = 3392,
136  primary_blade_1 = 3424,
137  primary_blade_2 = 3456,
138  primary_boom = 3488,
139  primary_launcher_arm = 3520,
140  other_fixed_position_parts_defined_as_needed = 3552,
141  primary_turret_number_1 = 4096,
142  primary_turret_number_2 = 4128,
143  primary_turret_number_3 = 4160,
144  primary_turret_number_4 = 4192,
145  primary_turret_number_5 = 4224,
146  primary_turret_number_6 = 4256,
147  primary_turret_number_7 = 4288,
148  primary_turret_number_8 = 4320,
149  primary_turret_number_9 = 4352,
150  primary_turret_number_10 = 4384,
151  primary_gun_number_1 = 4416,
152  primary_gun_number_2 = 4448,
153  primary_gun_number_3 = 4480,
154  primary_gun_number_4 = 4512,
155  primary_gun_number_5 = 4544,
156  primary_gun_number_6 = 4576,
157  primary_gun_number_7 = 4608,
158  primary_gun_number_8 = 4640,
159  primary_gun_number_9 = 4672,
160  primary_gun_number_10 = 4704,
161  primary_launcher_1 = 4736,
162  primary_launcher_2 = 4768,
163  primary_launcher_3 = 4800,
164  primary_launcher_4 = 4832,
165  primary_launcher_5 = 4864,
166  primary_launcher_6 = 4896,
167  primary_launcher_7 = 4928,
168  primary_launcher_8 = 4960,
169  primary_launcher_9 = 4992,
170  primary_launcher_10 = 5024,
171  primary_defense_systems_13 = 5056,
172  primary_defense_systems_2 = 5088,
173  primary_defense_systems_3 = 5120,
174  primary_defense_systems_4 = 5152,
175  primary_defense_systems_5 = 5184,
176  primary_defense_systems_6 = 5216,
177  primary_defense_systems_7 = 5248,
178  primary_defense_systems_8 = 5280,
179  primary_defense_systems_9 = 5312,
180  primary_defense_systems_10 = 5344,
181  primary_radar_14 = 5376,
182  primary_radar_2 = 5408,
183  primary_radar_3 = 5440,
184  primary_radar_4 = 5472,
185  primary_radar_5 = 5504,
186  primary_radar_6 = 5536,
187  primary_radar_7 = 5568,
188  primary_radar_8 = 5600,
189  primary_radar_9 = 5632,
190  primary_radar_10 = 5664,
191  secondary_turret_number_1 = 5696,
192  secondary_turret_number_2 = 5728,
193  secondary_turret_number_3 = 5760,
194  secondary_turret_number_4 = 5792,
195  secondary_turret_number_5 = 5824,
196  secondary_turret_number_6 = 5856,
197  secondary_turret_number_7 = 5888,
198  secondary_turret_number_8 = 5920,
199  secondary_turret_number_9 = 5952,
200  secondary_turret_number_10 = 5984,
201  secondary_gun_number_1 = 6016,
202  secondary_gun_number_2 = 6048,
203  secondary_gun_number_3 = 6080,
204  secondary_gun_number_4 = 6112,
205  secondary_gun_number_5 = 6144,
206  secondary_gun_number_6 = 6176,
207  secondary_gun_number_7 = 6208,
208  secondary_gun_number_8 = 6240,
209  secondary_gun_number_9 = 6272,
210  secondary_gun_number_10 = 6304,
211  secondary_launcher_1 = 6336,
212  secondary_launcher_2 = 6368,
213  secondary_launcher_3 = 6400,
214  secondary_launcher_4 = 6432,
215  secondary_launcher_5 = 6464,
216  secondary_launcher_6 = 6496,
217  secondary_launcher_7 = 6528,
218  secondary_launcher_8 = 6560,
219  secondary_launcher_9 = 6592,
220  secondary_launcher_10 = 6624,
221  secondary_defense_systems_1 = 6656,
222  secondary_defense_systems_2 = 6688,
223  secondary_defense_systems_3 = 6720,
224  secondary_defense_systems_4 = 6752,
225  secondary_defense_systems_5 = 6784,
226  secondary_defense_systems_6 = 6816,
227  secondary_defense_systems_7 = 6848,
228  secondary_defense_systems_8 = 6880,
229  secondary_defense_systems_9 = 6912,
230  secondary_defense_systems_10 = 6944,
231  secondary_radar_1 = 6976,
232  secondary_radar_2 = 7008,
233  secondary_radar_3 = 7040,
234  secondary_radar_4 = 7072,
235  secondary_radar_5 = 7104,
236  secondary_radar_6 = 7136,
237  secondary_radar_7 = 7168,
238  secondary_radar_8 = 7200,
239  secondary_radar_9 = 7232,
240  secondary_radar_10 = 7264,
241  deck_Elevator_1 = 7296,
242  deck_Elevator_2 = 7328,
243  catapult_1 = 7360,
244  catapult_2 = 7392,
245  jet_blast_deflector_1 = 7424,
246  jet_blast_deflector_2 = 7456,
247  arrestor_wires_1 = 7488,
248  arrestor_wires_2 = 7520,
249  arrestor_wires_3 = 7552,
250  wing__fold = 7584,
251  rotor_fold = 7584,
252  fuselage_fold = 7616,
253  wind_direction = 7872, // parts that rotate into the wind direction
254  wind_blades = 7904, // parts that rotate based on wind speed, like turbine blades
255  };
256  };
257 
258 
260  static DtModelSemanticsMapper& instance(DtDe&);
261 
263  static void copyInstance( DtBaseConnection& con, DtDe& de);
264 
266  static DtModelSemanticsMapper& instance( DtBaseConnection& con );
267 
268  virtual ~DtModelSemanticsMapper();
269 
276  const std::string* findStateName(States::Id id) const;
277 
285  const States::Id* findStateId(const std::string& name) const;
286 
293  const std::string* findPartName(Parts::Id id) const;
294 
302  const Parts::Id* findPartId(const std::string& name) const;
303 
305  void addState(const std::string& name, States::Id id);
306 
308  void removeState(const std::string& name);
309 
311  void addPart(const std::string& name, Parts::Id id);
312 
314  void removePart( const std::string& name);
315 
316  protected:
317 
321  virtual std::string cleanUpName(const std::string&) const;
322 
324 
326  virtual void initialize();
327 
328  typedef std::map<std::string,States::Id> StateNameToIdMap;
329  typedef std::map<States::Id,std::string> StateIdToNameMap;
330 
331  typedef std::map<std::string,Parts::Id> PartNameToIdMap;
332  typedef std::map<Parts::Id,std::string> PartIdToNameMap;
333 
336 
339  };
340 
344  {
345  public:
346 
348  static void registerInstance(DtDe& de,DtModelSemanticsMapperCreator*);
349 
350 
353  static DtModelSemanticsMapperCreator& instance(DtDe& de);
354 
357 
360 
362  virtual DtModelSemanticsMapper* create();
363 
364  };
365 
366 }
367 
368 #endif
369 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)