VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtModelSemanticsMapper.h
Go to the documentation of this file.
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  

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)