VR-Vantage API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtScene.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
14 #include <vrvCore/DtUniqueID.h>
15 
16 #include <boost/signal.hpp>
17 
18 #include <string>
19 #include <vector>
20 
21 namespace makArchives
22 {
23  class DtSceneRecord;
24  class DtTerrainRecord;
25  class DtEnvironmentRecord;
26  class DtDateTimeRecord;
27 }
28 
29 namespace makVrv
30 {
31  class DtAgentManagerInterface;
32  class DtDe;
33  class DtEnvironment;
34  class DtFeature;
35  class DtProp;
36  class DtSceneSignaler;
37  class DtTerrain;
38  class DtTerrainLayer;
39  class DtStreamedFeatureManager;
40 
44  {
45  public:
46 
48  DtScene(DtDe& de,DtAgentManagerInterface& agentManager);
49 
51  virtual ~DtScene();
52 
54 
55  inline DtTerrain& terrain() { return *myTerrain; }
56  inline const DtTerrain& terrain() const { return *myTerrain; }
58 
60  void getRecord(makArchives::DtSceneRecord& record) const;
61 
63  void setFromRecord(const makArchives::DtSceneRecord& record);
64 
70  bool saveTerrain( const std::string& filePath, bool saveAs = true );
71 
73  bool loadTerrain( const std::string& filePath );
74 
76  bool loadTerrain( const makArchives::DtTerrainRecord& terrainRecord );
77 
79 
80  inline DtEnvironment& environment() { return *myEnvironment; }
81  inline const DtEnvironment& environment() const { return *myEnvironment; }
83 
89  bool saveEnvironment( const std::string& filePath, bool saveAs = true );
90 
92  bool loadEnvironment( const std::string& filePath );
93 
95  bool loadEnvironment( const makArchives::DtEnvironmentRecord& envRecord );
96 
98  bool loadDateAndTime( const makArchives::DtDateTimeRecord& dateTimeRecord );
99 
101  virtual void resetScene();
102 
104  virtual void resetTerrain();
105 
107 
108 
110  typedef std::vector<DtProp*> ScenePropReferences;
111 
113  virtual void getScenePropReferences(ScenePropReferences& props);
114 
117  virtual DtProp* findProp(DtElementID id);
118 
121  virtual bool destroyProp(DtElementID id);
122 
124 
126  virtual DtFeature* findFeature(DtElementID id);
127 
130  virtual bool destroyFeature(DtElementID id);
131 
133  const std::string& terrainFileName() const;
134 
136  const std::string& enviromentFileName() const;
137 
138  DtStreamedFeatureManager* const streamedFeatureManager() const;
139  DtStreamedFeatureManager* streamedFeatureManager();
140 
142  virtual const std::string& description();
143 
145  virtual void setDescription(const std::string& description);
146 
147 
148  protected:
149 
150  void copyPropReferences( DtTerrainLayer* patch, DtScene::ScenePropReferences &spRefs );
151 
152  protected:
154 
159 
163  };
164 
168  {
169  public:
170 
172  static DtSceneSignaler& instance(DtDe& de);
173 
175  virtual ~DtSceneSignaler();
176 
178  boost::signal<void ()> signal_sceneCreated;
179 
181  boost::signal<void (DtScene&)> signal_sceneToBeCleared;
182 
184  boost::signal<void (DtScene&)> signal_sceneCleared;
185 
187  boost::signal<void ()> signal_sceneToBeDeleted;
188 
190  boost::signal<void (std::string)> signal_sceneTerrainLoaded;
191 
193  boost::signal<void (std::string)> signal_sceneTerrainSaved;
194 
196  boost::signal<void (std::string)> signal_sceneToBeLoaded;
197 
199  boost::signal<void (std::string)> signal_sceneLoaded;
200 
202  boost::signal<void (std::string)> signal_sceneSaved;
203 
204  protected:
205 
206  DtSceneSignaler();
207 
208  };
209 }


Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)