VR-Vantage 2.5 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) 2017 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  class DtUnicode;
41 
45  {
46  public:
47 
49  DtScene(DtDe& de,DtAgentManagerInterface& agentManager);
50 
52  virtual ~DtScene();
53 
55 
56  inline DtTerrain& terrain() { return *myTerrain; }
57  inline const DtTerrain& terrain() const { return *myTerrain; }
59 
61  void getRecord(makArchives::DtSceneRecord& record) const;
62 
64  void setFromRecord(const makArchives::DtSceneRecord& record);
65 
71  bool saveTerrain( const std::string& filePath, bool saveAs = true );
72 
74  bool loadTerrain( const DtUnicode& filePath );
75 
77  bool loadTerrain(const std::string& filePath);
78 
80  bool loadTerrain( const makArchives::DtTerrainRecord& terrainRecord );
81 
83  void reloadTerrain();
84 
86 
87  inline DtEnvironment& environment() { return *myEnvironment; }
88  inline const DtEnvironment& environment() const { return *myEnvironment; }
90 
96  bool saveEnvironment( const std::string& filePath, bool saveAs = true );
97 
99  bool loadEnvironment( const std::string& filePath );
100 
102  bool loadEnvironment( const makArchives::DtEnvironmentRecord& envRecord );
103 
105  bool loadDateAndTime( const makArchives::DtDateTimeRecord& dateTimeRecord );
106 
108  virtual void resetScene();
109 
111  virtual void resetTerrain();
112 
114 
115 
117  typedef std::vector<DtProp*> ScenePropReferences;
118 
120  virtual void getScenePropReferences(ScenePropReferences& props);
121 
124  virtual DtProp* findProp(DtElementID id);
125 
128  virtual bool destroyProp(DtElementID id);
129 
131 
133  virtual DtFeature* findFeature(DtElementID id);
134 
137  virtual bool destroyFeature(DtElementID id);
138 
140  const std::string& terrainFileName() const;
141 
143  const std::string& enviromentFileName() const;
144 
145  DtStreamedFeatureManager* const streamedFeatureManager() const;
146  DtStreamedFeatureManager* streamedFeatureManager();
147 
149  virtual const std::string& description();
150 
152  virtual void setDescription(const std::string& description);
153 
154 
155  protected:
156 
157  void copyPropReferences( DtTerrainLayer* patch, DtScene::ScenePropReferences &spRefs );
158 
159  protected:
161 
166 
170  };
171 
175  {
176  public:
177 
179  static DtSceneSignaler& instance(DtDe& de);
180 
182  virtual ~DtSceneSignaler();
183 
185  boost::signal<void ()> signal_sceneCreated;
186 
188  boost::signal<void (DtScene&)> signal_sceneToBeCleared;
189 
191  boost::signal<void (DtScene&)> signal_sceneCleared;
192 
194  boost::signal<void ()> signal_sceneToBeDeleted;
195 
198  boost::signal<void (const DtUnicode&, bool reload)> signal_sceneTerrainLoaded;
199 
201  boost::signal<void (const std::string&)> signal_sceneTerrainSaved;
202 
204  boost::signal<void (const std::string&)> signal_sceneToBeLoaded;
205 
207  boost::signal<void (const std::string&)> signal_sceneLoaded;
208 
210  boost::signal<void (const std::string&)> signal_sceneSaved;
211 
212  protected:
213 
214  DtSceneSignaler();
215 
216  };
217 }


Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)