VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVrvApplication.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtVrvApplication_H_
11 #define DtVrvApplication_H_
12 
16 
17 #include <string>
18 #include <map>
19 
20 #include <boost/function.hpp>
21 
22 namespace makArchives
23 {
24  class DtObserverStateRecordsList;
25  class DtRecentTerrainsRecord;
26 }
27 
28 namespace makVrv
29 {
30 
31  class DtDe;
32  class DtEventLoop;
33  class DtPluginManager;
34  class DtStartupDialog;
35  class DtSignalConnectionManager;
36  class DtDeSplashScreen;
58  {
59  public:
60  // constant for the maximum number of recent terrains saved at a time
61  const static int MAX_RECENT_TERRAIN_COUNT = 20;
62 
63  public:
64 
68 
70 
72  virtual ~DtVrvApplication();
73 
75  static DtVrvApplication *get_last_instance();
76 
81  static void ShowErrorMessage(const std::string& message, DtException* ex = 0);
82 
84  DtVrvApplicationConfiguration& configuration();
85 
87  DtPageConfiguration& masterModePageConfiguration();
88  DtPageConfiguration& slaveModePageConfiguration();
89 
91  DtMenuConfiguration& masterModeMenuConfiguration();
92  DtMenuConfiguration& slaveModeMenuConfiguration();
93 
95  DtToolbarConfiguration& masterModeToolbarConfiguration();
96  DtToolbarConfiguration& slaveModeToolbarConfiguration();
97 
99  DtDe& de();
100 
106  virtual void preInitialize( int argc, char** argv );
107 
112  virtual void initialize();
113 
118  virtual void run();
119 
123  static DtVrvApplication* findFromDe(DtDe&);
124 
128  static bool parseDisplayEngineParameter(const std::string& argument,
129  int& port,std::string& address, std::string& displayConfig);
130 
132  static std::string displayEngineParameterFormatting();
133 
135 
137  typedef boost::function<void (DtVrvApplicationConfiguration&, int argc, char** argv)> ConfigurationTransform;
138 
140  virtual void installCommandLineProcessor(DtVrvCommandLineProcessor* commandLineProcessor);
141 
144  typedef boost::function<void (DtDeInitializer&, DtDe&, DtVrvApplicationConfiguration&)> ApplicationTransform;
145 
147  virtual void installPrePluginTransform(const ApplicationTransform& transform, const std::string& id);
148 
150  virtual void installPostPluginTransform(const ApplicationTransform& transform, const std::string& id);
151 
153  virtual void installPostAssembleTransform(const ApplicationTransform& transform, const std::string& id);
154 
156 
158 
160  static void handleFileError( const std::string& filename, const std::string& fileType );
161 
163  static void bindViews(const std::vector<std::string>& filenames,
165 
167  static bool loadObserverStateRecords(const std::string& file,
169 
171  virtual bool loadRecentTerrains();
172 
174  static void loadViews(const std::vector<std::string>& filenames,
176 
178 
181  virtual void writeGuiConfiguration();
182 
184  virtual bool updateCurrentGuiConfiguration();
185 
187  virtual DtPluginManager& pluginManager();
188 
191  virtual void slot_sceneTerrainLoaded(const DtUnicode& terrain);
192  virtual void slot_sceneTerrainSaved(const std::string& terrain);
193  virtual void slot_sceneToBeLoaded(const std::string& terrain);
194  virtual void slot_sceneLoaded(const std::string& terrain);
195  virtual void slot_sceneSaved(const std::string& terrain);
196 
197  virtual std::list<std::string>& getRecentTerrains();
198 
199  virtual bool getShowStartupScreen() const;
200 
201  virtual void setShowStartupScreen(bool show);
202 
204  static void setShowErrorMessageDialog(bool show);
205 
207  static bool showErrorMessageDialog();
208 
209  protected:
210 
213  virtual void loadPluginModules();
214 
216  virtual void assemble();
217 
219  virtual void createDefaultDisplayEngineConfiguration();
220 
222  virtual DtDisplayConfiguration embeddedMasterDisplayConfig();
223 
225  virtual void createDefaultObserverConfiguration();
226 
228  virtual void loadSavedGuiState();
229 
231  virtual void addRecentTerrain(const std::string& terrain, bool forceSave = false);
232 
233  protected:
234 
241 
242  typedef std::list< std::pair<std::string, ApplicationTransform> > InitializerTransformList;
246 
249  std::list<std::string> myRecentTerrainsList;
250 
251  // The last instance of DtVrvApplication created (if any)
254 
255  };
256 
257 }
258 
259 #endif
DtVrvCommandLineProcessor * myCommandLineProcessor
Definition: DtVrvApplication.h:237
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
Loads plugins.
Definition: DtPluginManager.h:26
Contains makVrv::DtVrvCommandLineProcessor class.
InitializerTransformList myPostPluginTransforms
Definition: DtVrvApplication.h:244
static bool theShowErrorMessageDialog
Definition: DtVrvApplication.h:253
InitializerTransformList myPostAssembleTransforms
Definition: DtVrvApplication.h:245
DtVrvApplicationConfiguration myConfiguration
Definition: DtVrvApplication.h:235
DtDeInitializer myInitializer
Definition: DtVrvApplication.h:236
DtPluginManager * myPluginManager
Definition: DtVrvApplication.h:239
The DtVrvCommandLineProcessor is an interface for an application-specific command line parser...
Definition: DtVrvCommandLineProcessor.h:21
DtSignalConnectionManager * myConnections
Definition: DtVrvApplication.h:247
std::vector< std::pair< std::string, makArchives::DtObserverStateRecord > > ObserverStateMap
A map of observer names, to DtObserverStateRecords.
Definition: DtDeInitializer.h:77
Contains makVrv::DtVirtualBaseClass class.
DtEventLoop * myEventLoop
Definition: DtVrvApplication.h:240
DtObserverStateRecordsList class contains a collection of DtObserverStateRecord.
Definition: DtObserverStateRecordsList.h:21
DtDe * myDe
Definition: DtVrvApplication.h:238
The Root IG Application object. To run the IG simply create one, initialize it and call run...
Definition: DtVrvApplication.h:57
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
This owns a list of window configurations.
Definition: DtDisplayConfiguration.h:43
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
A configuration of the pages in the gui.
Definition: DtPageConfiguration.h:25
InitializerTransformList myPrePluginTransforms
Definition: DtVrvApplication.h:243
This owns a list of display engine configurations.
Definition: DtVrvApplicationConfiguration.h:32
bool myIsSceneLoading
Definition: DtVrvApplication.h:248
std::list< std::string > myRecentTerrainsList
Definition: DtVrvApplication.h:249
boost::function< void(DtDeInitializer &, DtDe &, DtVrvApplicationConfiguration &)> ApplicationTransform
Type for a function object that transforms an DtDeInitializer, DtDe or DtVrvApplicationConfiguration ...
Definition: DtVrvApplication.h:144
A configuration of the toolbar layout.
Definition: DtToolbarConfiguration.h:25
A configuration of a menu layout. A menu configuration manages an ordered collection of menu paths th...
Definition: DtMenuConfiguration.h:43
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 DtVrvApplication * sLastAppInstance
Definition: DtVrvApplication.h:252
std::list< std::pair< std::string, ApplicationTransform > > InitializerTransformList
Definition: DtVrvApplication.h:242
Contains makVrv:DtVrvApplicationConfiguration class.
boost::function< void(DtVrvApplicationConfiguration &, int argc, char **argv)> ConfigurationTransform
Type for a function object that transforms an app config in some way.
Definition: DtVrvApplication.h:137
The initialization configuration for the makVrv::DtDe.
Definition: DtDeInitializer.h:39
The abstract DtEventLoop class.
Definition: DtEventLoop.h:24

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)