VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfGuiApplication.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 #include <vlpi/simulationAddress.h>
12 #include <boost/signals2.hpp>
13 
21 
22 namespace makVrv
23 {
24  class DtMenuConfiguration;
25  class DtDe;
26  class DtVrvApplicationConfiguration;
27  class DtElementDefinitionManager;
28  class DtVrlinkDriver;
29 }
30 
31 namespace makVrf
32 {
35 
37  class DtVrfGuiPluginManager;
38 
48  {
49  public:
50  typedef std::map<std::string, std::string> ObserverModeBindings;
51 
53  {
54  PvdAndStealthMode = 0,
56  StealthMode
57  };
58 
59  public:
63 
65  virtual ~DtVrfGuiApplication();
66 
68  static bool applicationIsTerminating(makVrv::DtDe&);
69 
74  virtual void initialize( int argc, char** argv);
75 
76  virtual void preInitialize(int argc, char** argv) override;
78  virtual void assemble() override;
79 
81  virtual void run();
82 
84  static DtVrfGuiApplication* app(makVrv::DtDe&);
85 
87  static makVrv::DtDe* theDe();
88 
90  static void SetQtDesignerMode(bool);
91  static bool QtDesignerMode();
92 
95  static void setNoSpotReportDefinitionLoading(bool val);
96  static bool noSpotReportDefinitionLoading();
97 
101  static void setSpotReportElementDefinitionHierFilesOrDirs(const std::vector<std::string>& filesOrDirs);
102  static const std::vector<std::string>& spotReportElementDefinitionHierFilesOrDirs();
103 
107  static void setSpotReportElementDefinitionLeafFilesOrDirs(const std::vector<std::string>& filesOrDirs);
108  static const std::vector<std::string>& spotReportElementDefinitionLeafFilesOrDirs();
109 
112  static void setIgnoreLayoutGeometryOnInitialLoad(bool);
113  static bool ignoreLayoutGeometryOnInitialLoad();
114 
119  static void setShowPerspective(const std::string&);
120 
122  static void setQtDesignerPluginSupport(bool);
123  static bool qtDesignerPluginSupport();
124 
129  static void setGuiConfiguration(const std::string&);
130 
133  static void setObserverModeBindings(const ObserverModeBindings& modes);
134 
137  static const ObserverModeBindings& observerModeBindings();
138 
141  static const std::vector<std::string>& additionalPluginsToLoad();
142 
145  static void setAdditionalPluginsToLoad(const std::vector<std::string>&);
146 
149  static bool loadDefaultPlugins();
150 
153  static void setLoadDefaultPlugins(bool);
154 
157  static bool checkPluginVersions();
158 
161  static void setCheckPluginVersions(bool);
162 
165  static const std::string& transport();
166 
169  static void setTransport(const std::string&);
170 
173  static const std::string& loadScenario();
174 
177  static void setLoadScenario(const std::string&);
178 
180  static const std::string& useFileCommChannel();
181  static void setUseFileCommChannel(const std::string&);
182 
184  static void setLayoutSettingsFile(const std::string&);
185  static std::string layoutSettingsFile();
186 
188  virtual DtString layoutSettingsFileClassName() const;
189 
192  static const std::string& loadSimulationObjectGroup();
193 
196  static void setLoadSimulationObjectGroup(const std::string&);
197 
199  static void setDefaultSimulationModelSet(const std::string&);
200  static const std::string& defaultSimulationModelSet();
201 
204  static ObserverMode observerMode();
205 
208  static void setObserverMode(ObserverMode);
209 
212  static void setUserScenarioDirectory(const std::string&);
213  virtual std::string userScenarioDirectory();
214 
217  void setPluginApplication(const std::string&);
218 
221  const std::string& pluginApplication() const;
222 
225  static void setShouldLoadGuiSavedState(bool);
226  static bool shouldLoadGuiSavedState();
227 
229  virtual void setLoadSystemPlugins(bool);
230  virtual bool loadSystemPlugins() const;
231 
233  virtual makVrv::DtUnicode applicationName() const;
234 
236  virtual void writeGuiConfiguration();
237 
239  virtual void loadSavedGuiState();
240 
242  virtual bool getShowStartupScreen() const;
243 
245  virtual bool usingAbsoluteTimeStamps() const;
246 
247  virtual std::string restoreDefaultLayout(const DtString& layoutTemplate = "Scenario_Creation");
248 
250  virtual bool usingAsynchIO() const;
251 
253  virtual makVrv::DtVrlinkDriver* getVrlinkDriver() const;
254 
256  virtual DtSimulationAddress frontEndSimulationAddress() const;
257 
258  virtual bool vrlDriverHasBooleanValue(const std::string&, bool* hasValue = NULL) const;
259  virtual bool vrlDriverHasBooleanValue(makVrv::DtVrlinkDriver*, const std::string&, bool* hasValue = NULL) const;
260  virtual int vrlDriverHasIntegerValue(const std::string&, bool* hasValue = NULL) const;
261  virtual int vrlDriverHasIntegerValue(makVrv::DtVrlinkDriver*, const std::string&, bool* hasValue = NULL) const;
262  virtual double vrlDriverHasDoubleValue(const std::string&, bool* hasValue = NULL) const;
263  virtual double vrlDriverHasDoubleValue(makVrv::DtVrlinkDriver*, const std::string&, bool* hasValue = NULL) const;
264  virtual std::string vrlDriverHasStringValue(const std::string&, bool* hasValue = NULL) const;
265  virtual std::string vrlDriverHasStringValue(makVrv::DtVrlinkDriver*, const std::string&, bool* hasValue = NULL) const;
266 
267  void setVrfSvnRevision(const std::string& s) { myVrfSvnRevision = s; };
268  const std::string& vrfSvnRevision() const { return myVrfSvnRevision; };
269 
270  void setVrvSvnRevision(const std::string& s) { myVrvSvnRevision = s; };
271  const std::string& vrvSvnRevision() const { return myVrvSvnRevision; };
272 
274  virtual bool terrainIsValid(int terrainPathOffset = 0);
275 
277  virtual std::string language() const;
278 
281  virtual void checkOrCreateModelDefinition(const std::string& definition, const std::string& filePath);
282 
285  virtual void addLoadVerifierFunction(const DtString&, DtVrfGuiPluginManagerExt::VerifierFunction f);
286 
287  protected:
290  virtual void loadPluginModules() override;
291 
295  virtual void loadPluginModulesExt();
296 
297  virtual void addPluginVerifierFunctions();
298 
299  virtual void delayedAssemble();
300 
301  public:
302  boost::signals2::signal<void (makVrv::DtDe&, makVrv::DtMenuConfiguration&)> signal_preAssemble;
303  boost::signals2::signal<void (makVrv::DtDe&, makVrv::DtMenuConfiguration&)> signal_postAssemble;
304  boost::signals2::signal<void (makVrv::DtDe&)> signal_deInitialized;
305  boost::signals2::signal<void ()> signal_preLoadPlugins;
306  boost::signals2::signal<void ()> signal_postLoadPlugins;
307  boost::signals2::signal<void ()> signal_preWriteGuiConfiguration;
308  boost::signals2::signal<void ()> signal_postWriteGuiConfiguration;
309  boost::signals2::signal<void (std::string)> signal_terrainSaved;
310  boost::signals2::signal<void (std::string)> signal_simTerrainSaved;
311  boost::signals2::signal<void ()> signal_defaultLayoutLoaded;
312  boost::signals2::signal<void ()> signal_vrfApplicationInitialized;
313  boost::signals2::signal<void ()> signal_dataDoesNotExist;
314 
316  boost::signals2::signal<void ()> signal_qtExtensionsPreInitialize;
317  boost::signals2::signal<void ()> signal_qtExtensionsPostInitialize;
318 
319  protected:
320  virtual void loadTranslationFiles(const std::string& lang);
321 
323  virtual void initializePluginManager();
324 
326  virtual void initializePluginsForCommandLineArguments(int argc, char** argv);
327 
330  virtual void bindObserverModes(const ObserverModeBindings& modes);
331 
336  virtual DtVrfGuiPluginManager* createPluginManager();
337 
340  virtual void dePostInitialize();
341 
344  virtual void setupForObserverMode();
345 
347  virtual void setupForPvdMode();
348 
350  virtual void setupForStealthMode();
351 
352  virtual bool updateCurrentGuiConfiguration();
353 
355  virtual void initializeWithVRFSymbolDecorations(const std::string&);
356 
357  protected:
359  static std::vector<std::string> theAdditionalPluginsToLoad;
362  static std::string theTransport;
363  static std::string theLoadScenario;
364  static std::string theLayoutSettingsFile;
365  static std::string theLoadSimulationObjectGroup;
366  static std::string theUseFileCommChannel;
367  static std::string theGuiConfiguration;
368  static std::string theShowPerspective;
369  static std::string theDefaultSimulationModelSet;
370  static std::string theUserScenarioDirectory;
372  static bool theLoadGuiSavedState;
376  static std::vector<std::string> theSpotReportElementDefinitionHierFilesOrDirs;
377  static std::vector<std::string> theSpotReportElementDefinitionLeafFilesOrDirs;
378  static bool theQtDesignerMode;
380 
382  std::string myPluginApplication;
383  std::string myVrfSvnRevision;
384  std::string myVrvSvnRevision;
385 
387  boost::signals2::scoped_connection myDelayedAssembleConnection;
388  };
389 }
static bool theLoadGuiSavedState
Definition: vrfGuiApplication.h:372
static std::vector< std::string > theSpotReportElementDefinitionHierFilesOrDirs
Definition: vrfGuiApplication.h:376
boost::signals2::scoped_connection myDelayedAssembleConnection
Definition: vrfGuiApplication.h:387
std::string myVrfSvnRevision
Definition: vrfGuiApplication.h:383
static std::vector< std::string > theAdditionalPluginsToLoad
Definition: vrfGuiApplication.h:359
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
static bool theLoadDefaultPlugins
Definition: vrfGuiApplication.h:360
DtVrfGuiPluginManager * myVrfGuiPluginManager
Definition: vrfGuiApplication.h:381
boost::signals2::signal< void(std::string)> signal_simTerrainSaved
Definition: vrfGuiApplication.h:310
Contains makVrv::DtVrvApplication implementation.
std::string myPluginApplication
Definition: vrfGuiApplication.h:382
static bool theIgnoreLayoutGeometryOnInitialLoad
Definition: vrfGuiApplication.h:373
ObserverMode
Definition: vrfGuiApplication.h:52
boost::signals2::signal< void()> signal_qtExtensionsPreInitialize
Signals sent via the qt extension initialization.
Definition: vrfGuiApplication.h:316
static std::string theLayoutSettingsFile
Definition: vrfGuiApplication.h:364
static ObserverMode theObserverMode
Definition: vrfGuiApplication.h:371
boost::signals2::signal< void()> signal_preWriteGuiConfiguration
Definition: vrfGuiApplication.h:307
boost::signals2::signal< void()> signal_dataDoesNotExist
Definition: vrfGuiApplication.h:313
bool myLoadSystemPlugins
Definition: vrfGuiApplication.h:386
static ObserverModeBindings theObserverModeBindings
Definition: vrfGuiApplication.h:358
static std::string theLoadSimulationObjectGroup
Definition: vrfGuiApplication.h:365
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
static std::string theTransport
Definition: vrfGuiApplication.h:362
static std::string theUserScenarioDirectory
Definition: vrfGuiApplication.h:370
const int MIN_VRF_USER_ELEMENT_DEFINITION_TYPE
Starting value for element definition types created by toolkit users to be registered with DtElementD...
Definition: vrfGuiApplication.h:20
boost::signals2::signal< void(makVrv::DtDe &)> signal_deInitialized
Definition: vrfGuiApplication.h:304
The root IG for VR-Forces. Inherits from makVrv::DtVrfApplication.
Definition: vrfGuiApplication.h:47
boost::signals2::signal< void()> signal_postLoadPlugins
Definition: vrfGuiApplication.h:306
static makVrv::DtDe * theAppDe
Definition: vrfGuiApplication.h:379
The Root IG Application object. To run the IG simply create one, initialize it and call run...
Definition: DtVrvApplication.h:57
boost::signals2::signal< void(makVrv::DtDe &, makVrv::DtMenuConfiguration &)> signal_preAssemble
Definition: vrfGuiApplication.h:302
boost::signals2::signal< void()> signal_vrfApplicationInitialized
Definition: vrfGuiApplication.h:312
boost::signals2::signal< void()> signal_preLoadPlugins
Definition: vrfGuiApplication.h:305
This owns a list of display engine configurations.
Definition: DtVrvApplicationConfiguration.h:32
const int MIN_VRF_ELEMENT_DEFINITION_TYPE
Starting value for VR-Forces element definition types to be registered with DtElementDefinitionTypeMa...
Definition: vrfGuiApplication.h:17
boost::signals2::signal< void()> signal_defaultLayoutLoaded
Definition: vrfGuiApplication.h:311
boost::signals2::signal< void()> signal_postWriteGuiConfiguration
Definition: vrfGuiApplication.h:308
boost::signals2::signal< void(std::string)> signal_terrainSaved
Definition: vrfGuiApplication.h:309
static std::vector< std::string > theSpotReportElementDefinitionLeafFilesOrDirs
Definition: vrfGuiApplication.h:377
boost::function< bool(void)> VerifierFunction
Before loading a plugin in the library, make this callback (by lowercase library name without the ext...
Definition: vrfGuiPluginManager.h:67
static std::string theDefaultSimulationModelSet
Definition: vrfGuiApplication.h:369
static bool theQtDesignerPluginSupport
Definition: vrfGuiApplication.h:374
static bool theQtDesignerMode
Definition: vrfGuiApplication.h:378
boost::signals2::signal< void(makVrv::DtDe &, makVrv::DtMenuConfiguration &)> signal_postAssemble
Definition: vrfGuiApplication.h:303
static bool theCheckPluginVersions
Definition: vrfGuiApplication.h:361
void setVrfSvnRevision(const std::string &s)
Definition: vrfGuiApplication.h:267
std::string myVrvSvnRevision
Definition: vrfGuiApplication.h:384
Definition: vrfGuiPluginManager.h:80
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
static std::string theUseFileCommChannel
Definition: vrfGuiApplication.h:366
static std::string theLoadScenario
Definition: vrfGuiApplication.h:363
const std::string & vrfSvnRevision() const
Definition: vrfGuiApplication.h:268
std::map< std::string, std::string > ObserverModeBindings
Definition: vrfGuiApplication.h:50
boost::signals2::signal< void()> signal_qtExtensionsPostInitialize
Definition: vrfGuiApplication.h:317
static bool theNoSpotDefinitionLoading
Definition: vrfGuiApplication.h:375
static std::string theShowPerspective
Definition: vrfGuiApplication.h:368
static std::string theGuiConfiguration
Definition: vrfGuiApplication.h:367
const std::string & vrvSvnRevision() const
Definition: vrfGuiApplication.h:271
void setVrvSvnRevision(const std::string &s)
Definition: vrfGuiApplication.h:270
Definition: vrfGuiApplication.h:55

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)