![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtModelSemanticsMapper.h,v $ $Revision: 1.10 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtModelSemanticsMapper_H_ 00014 #define DtModelSemanticsMapper_H_ 00015 00016 #include <vrvCore/vrvCore.h> 00017 #include <vrvUtil/DtVirtualBaseClass.h> 00018 00019 #include <map> 00020 #include <string> 00021 00022 namespace makVrv 00023 { 00024 class DtDe; 00025 00030 class DT_DLL_VRVCORE DtModelSemanticsMapper : public DtVirtualBaseClass 00031 { 00032 public: 00033 00034 friend class DtModelSemanticsMapperCreator; 00035 00039 struct States 00040 { 00041 //The default state ids, note using a string of the exact text of an enumeration 00042 //is a valid name for the id. 00043 enum Id 00044 { 00045 invalidId = 0, 00046 mobility = 1, 00047 fire_power = 2, 00048 damage = 3, 00049 trailing_effects = 4, 00050 hatch = 5, 00051 moving = 6, 00052 paint_scheme = 7, 00053 density = 8, 00054 frozen_status = 9, 00055 power_plant_status = 10, 00056 launcher = 11, 00057 camouflage_type = 12, 00058 concealed = 13, 00059 head_lights = 14, 00060 tail_lights = 15, 00061 brake_lights = 16, 00062 blackout_lights = 17, 00063 blackout_brake_lights = 18, 00064 spot_lights = 19, 00065 interior_lights = 20, 00066 afterburner = 21, 00067 landing_lights = 22, 00068 navigation_lights = 23, 00069 anticollision_lights = 24, 00070 formation_lights = 25, 00071 launch_flash = 26, 00072 smoke = 27, 00073 flaming = 28, 00074 running_lights = 29, 00075 lights = 30, 00076 life_form_state = 31, 00077 weapon_1 = 32, 00078 weapon_2 = 33, 00079 flashlight = 34, 00080 compliance = 35, 00081 health = 36, 00082 masked_cloaked = 37, 00083 internal_heat_status = 38, 00084 exterior_lights = 39, 00085 mission = 40, 00086 antenna = 41, 00087 tent = 42, 00088 ramp = 43, 00089 user_start = 500 00090 }; 00091 }; 00092 00096 struct Parts 00097 { 00098 enum Id 00099 { 00100 rudder = 1024, 00101 left_flap = 1056, 00102 right_flap = 1088, 00103 left_aileron = 1120, 00104 right_aileron = 1152, 00105 helicopter_main_rotor = 1184, 00106 helicopter_tail_rotor = 1216, 00107 other_aircraft_control_surfaces_defined_as_needed = 1248, 00108 periscope = 2048, 00109 generic_antenna = 2080, 00110 snorkel = 2112, 00111 other_extendible_parts_defined_as_needed = 2144, 00112 landing_gear = 3072, 00113 tail_hook = 3104, 00114 speed_brake = 3136, 00115 left_weapon_bay_door = 3168, 00116 right_weapon_bay_doors = 3200, 00117 tank_or_apc_hatch = 3232, 00118 wingsweep = 3264, 00119 bridge_launcher = 3296, 00120 bridge_section_1 = 3328, 00121 bridge_section_2 = 3360, 00122 bridge_section_3 = 3392, 00123 primary_blade_1 = 3424, 00124 primary_blade_2 = 3456, 00125 primary_boom = 3488, 00126 primary_launcher_arm = 3520, 00127 other_fixed_position_parts_defined_as_needed = 3552, 00128 primary_turret_number_1 = 4096, 00129 primary_turret_number_2 = 4128, 00130 primary_turret_number_3 = 4160, 00131 primary_turret_number_4 = 4192, 00132 primary_turret_number_5 = 4224, 00133 primary_turret_number_6 = 4256, 00134 primary_turret_number_7 = 4288, 00135 primary_turret_number_8 = 4320, 00136 primary_turret_number_9 = 4352, 00137 primary_turret_number_10 = 4384, 00138 primary_gun_number_1 = 4416, 00139 primary_gun_number_2 = 4448, 00140 primary_gun_number_3 = 4480, 00141 primary_gun_number_4 = 4512, 00142 primary_gun_number_5 = 4544, 00143 primary_gun_number_6 = 4576, 00144 primary_gun_number_7 = 4608, 00145 primary_gun_number_8 = 4640, 00146 primary_gun_number_9 = 4672, 00147 primary_gun_number_10 = 4704, 00148 primary_launcher_1 = 4736, 00149 primary_launcher_2 = 4768, 00150 primary_launcher_3 = 4800, 00151 primary_launcher_4 = 4832, 00152 primary_launcher_5 = 4864, 00153 primary_launcher_6 = 4896, 00154 primary_launcher_7 = 4928, 00155 primary_launcher_8 = 4960, 00156 primary_launcher_9 = 4992, 00157 primary_launcher_10 = 5024, 00158 primary_defense_systems_13 = 5056, 00159 primary_defense_systems_2 = 5088, 00160 primary_defense_systems_3 = 5120, 00161 primary_defense_systems_4 = 5152, 00162 primary_defense_systems_5 = 5184, 00163 primary_defense_systems_6 = 5216, 00164 primary_defense_systems_7 = 5248, 00165 primary_defense_systems_8 = 5280, 00166 primary_defense_systems_9 = 5312, 00167 primary_defense_systems_10 = 5344, 00168 primary_radar_14 = 5376, 00169 primary_radar_2 = 5408, 00170 primary_radar_3 = 5440, 00171 primary_radar_4 = 5472, 00172 primary_radar_5 = 5504, 00173 primary_radar_6 = 5536, 00174 primary_radar_7 = 5568, 00175 primary_radar_8 = 5600, 00176 primary_radar_9 = 5632, 00177 primary_radar_10 = 5664, 00178 secondary_turret_number_1 = 5696, 00179 secondary_turret_number_2 = 5728, 00180 secondary_turret_number_3 = 5760, 00181 secondary_turret_number_4 = 5792, 00182 secondary_turret_number_5 = 5824, 00183 secondary_turret_number_6 = 5856, 00184 secondary_turret_number_7 = 5888, 00185 secondary_turret_number_8 = 5920, 00186 secondary_turret_number_9 = 5952, 00187 secondary_turret_number_10 = 5984, 00188 secondary_gun_number_1 = 6016, 00189 secondary_gun_number_2 = 6048, 00190 secondary_gun_number_3 = 6080, 00191 secondary_gun_number_4 = 6112, 00192 secondary_gun_number_5 = 6144, 00193 secondary_gun_number_6 = 6176, 00194 secondary_gun_number_7 = 6208, 00195 secondary_gun_number_8 = 6240, 00196 secondary_gun_number_9 = 6272, 00197 secondary_gun_number_10 = 6304, 00198 secondary_launcher_1 = 6336, 00199 secondary_launcher_2 = 6368, 00200 secondary_launcher_3 = 6400, 00201 secondary_launcher_4 = 6432, 00202 secondary_launcher_5 = 6464, 00203 secondary_launcher_6 = 6496, 00204 secondary_launcher_7 = 6528, 00205 secondary_launcher_8 = 6560, 00206 secondary_launcher_9 = 6592, 00207 secondary_launcher_10 = 6624, 00208 secondary_defense_systems_1 = 6656, 00209 secondary_defense_systems_2 = 6688, 00210 secondary_defense_systems_3 = 6720, 00211 secondary_defense_systems_4 = 6752, 00212 secondary_defense_systems_5 = 6784, 00213 secondary_defense_systems_6 = 6816, 00214 secondary_defense_systems_7 = 6848, 00215 secondary_defense_systems_8 = 6880, 00216 secondary_defense_systems_9 = 6912, 00217 secondary_defense_systems_10 = 6944, 00218 secondary_radar_1 = 6976, 00219 secondary_radar_2 = 7008, 00220 secondary_radar_3 = 7040, 00221 secondary_radar_4 = 7072, 00222 secondary_radar_5 = 7104, 00223 secondary_radar_6 = 7136, 00224 secondary_radar_7 = 7168, 00225 secondary_radar_8 = 7200, 00226 secondary_radar_9 = 7232, 00227 secondary_radar_10 = 7264, 00228 deck_Elevator_1 = 7296, 00229 deck_Elevator_2 = 7328, 00230 catapult_1 = 7360, 00231 catapult_2 = 7392, 00232 jet_blast_deflector_1 = 7424, 00233 jet_blast_deflector_2 = 7456, 00234 arrestor_wires_1 = 7488, 00235 arrestor_wires_2 = 7520, 00236 arrestor_wires_3 = 7552, 00237 wing__fold = 7584, 00238 rotor_fold = 7584, 00239 fuselage_fold = 7616 00240 }; 00241 }; 00242 00243 00245 static DtModelSemanticsMapper& instance(DtDe&); 00246 00247 virtual ~DtModelSemanticsMapper(); 00248 00255 const std::string* findStateName(States::Id id) const; 00256 00264 const States::Id* findStateId(const std::string& name) const; 00265 00272 const std::string* findPartName(Parts::Id id) const; 00273 00281 const Parts::Id* findPartId(const std::string& name) const; 00282 00284 void addState(const std::string& name, States::Id id); 00285 00287 void removeState(const std::string& name); 00288 00290 void addPart(const std::string& name, Parts::Id id); 00291 00293 void removePart( const std::string& name); 00294 00295 protected: 00296 00300 virtual std::string cleanUpName(const std::string&) const; 00301 00302 DtModelSemanticsMapper(); 00303 00305 virtual void initialize(); 00306 00307 typedef std::map<std::string,States::Id> StateNameToIdMap; 00308 typedef std::map<States::Id,std::string> StateIdToNameMap; 00309 00310 typedef std::map<std::string,Parts::Id> PartNameToIdMap; 00311 typedef std::map<Parts::Id,std::string> PartIdToNameMap; 00312 00313 StateNameToIdMap myStateNamesToIds; 00314 StateIdToNameMap myStateIdsToNames; 00315 00316 PartNameToIdMap myPartNamesToIds; 00317 PartIdToNameMap myPartIdsToNames; 00318 }; 00319 00322 class DtModelSemanticsMapperCreator : public DtVirtualBaseClass 00323 { 00324 public: 00325 00327 static void registerInstance(DtDe& de,DtModelSemanticsMapperCreator*); 00328 00329 00332 static DtModelSemanticsMapperCreator& instance(DtDe& de); 00333 00335 DtModelSemanticsMapperCreator(); 00336 00338 virtual ~DtModelSemanticsMapperCreator(); 00339 00341 virtual DtModelSemanticsMapper* create(); 00342 00343 }; 00344 00345 } 00346 00347 #endif 00348