![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 00007 00008 #pragma once 00009 00010 #include <vrfGuiCore/vrfGuiCore.h> 00011 00012 #include <vrvCore/DtVrvApplication.h> 00013 #include <vrvUtil/signalslib.h> 00014 00018 const int MIN_VRF_ELEMENT_DEFINITION_TYPE = 26000; 00021 const int MIN_VRF_USER_ELEMENT_DEFINITION_TYPE = 27000; 00022 00023 namespace makVrv 00024 { 00025 class DtMenuConfiguration; 00026 class DtDe; 00027 class DtVrvApplicationConfiguration; 00028 class DtElementDefinitionManager; 00029 } 00030 00031 namespace makVrf 00032 { 00035 00037 class DtVrfGuiPluginManager; 00038 00040 class DT_DLL_VRFGUICORE DtVrfGuiApplication : public makVrv::DtVrvApplication 00041 { 00042 public: 00043 typedef std::map<std::string, std::string> ObserverModeBindings; 00044 00045 enum ObserverMode 00046 { 00047 PvdAndStealthMode = 0, 00048 PvdMode, 00049 StealthMode 00050 }; 00051 00052 public: 00055 DtVrfGuiApplication(makVrv::DtVrvApplicationConfiguration& config); 00056 00058 virtual ~DtVrfGuiApplication(); 00059 00063 virtual void initialize( int argc, char** argv ); 00064 00066 virtual void assemble(); 00067 00069 virtual void run(); 00070 00073 static void setObserverModeBindings(const ObserverModeBindings& modes); 00074 00077 static const ObserverModeBindings& observerModeBindings(); 00078 00081 static const std::vector<std::string>& additionalPluginsToLoad(); 00082 00085 static void setAdditionalPluginsToLoad(const std::vector<std::string>&); 00086 00089 static bool loadDefaultPlugins(); 00090 00093 static void setLoadDefaultPlugins(bool); 00094 00097 static bool checkPluginVersions(); 00098 00101 static void setCheckPluginVersions(bool); 00102 00105 static const std::string& transport(); 00106 00109 static void setTransport(const std::string&); 00110 00113 static const std::string& loadScenario(); 00114 00117 static void setLoadScenario(const std::string&); 00118 00121 static ObserverMode observerMode(); 00122 00125 static void setObserverMode(ObserverMode); 00126 00129 void setPluginApplication(const std::string&); 00130 00133 const std::string& pluginApplication() const; 00134 00135 protected: 00138 virtual void loadPluginModules(); 00139 00143 virtual void loadPluginModulesExt(); 00144 00145 public: 00146 boost::signal<void (makVrv::DtDe&, makVrv::DtMenuConfiguration&)> signal_preAssemble; 00147 boost::signal<void (makVrv::DtDe&, makVrv::DtMenuConfiguration&)> signal_postAssemble; 00148 boost::signal<void (makVrv::DtDe&)> signal_deInitialized; 00149 00150 protected: 00153 virtual void bindObserverModes(const ObserverModeBindings& modes); 00154 00159 virtual DtVrfGuiPluginManager* createPluginManager(); 00160 00163 virtual void dePostInitialize(); 00164 00167 virtual void setupForObserverMode(); 00168 00170 virtual void setupForPvdMode(); 00171 00173 virtual void setupForStealthMode(); 00174 00176 virtual void setupAdditionalVisualizers(); 00177 00179 virtual void setupIndirectFire(); 00180 00182 virtual void setupBoundingVolumes(); 00183 00185 virtual void setupBoundingVolumes(const std::string& root); 00186 00188 virtual void setupRangeRings(); 00189 00190 virtual void setupAdditionalAggregateVisualizers(); 00191 00192 protected: 00193 static ObserverModeBindings theObserverModeBindings; 00194 static std::vector<std::string> theAdditionalPluginsToLoad; 00195 static bool theLoadDefaultPlugins; 00196 static bool theCheckPluginVersions; 00197 static std::string theTransport; 00198 static std::string theLoadScenario; 00199 static ObserverMode theObserverMode; 00200 00201 DtVrfGuiPluginManager* myVrfGuiPluginManager; 00202 std::string myPluginApplication; 00203 00205 std::map<makVrv::DtElementDefinitionManager*, bool> myModifiedManagers; 00206 }; 00207 }