VR-Vantage 3.1.1 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtScene.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 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 <vrvUtil/signalslib.h>
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  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  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 
167  std::string myTerrainFileName;
168  std::string myEnviromentFileName;
169  std::string myDescription;
170  };
171 
175  {
176  public:
177 
179  static DtSceneSignaler& instance(DtDe& de);
180 
182  virtual ~DtSceneSignaler();
183 
185  boost::signalslib::signal<void ()> signal_sceneCreated;
186 
188  boost::signalslib::signal<void (DtScene&)> signal_sceneToBeCleared;
189 
191  boost::signalslib::signal<void (DtScene&)> signal_sceneCleared;
192 
194  boost::signalslib::signal<void ()> signal_sceneToBeDeleted;
195 
198  boost::signalslib::signal<void (const DtUnicode&, bool reload)> signal_sceneTerrainLoaded;
199 
201  boost::signalslib::signal<void (const std::string&)> signal_sceneTerrainSaved;
202 
204  boost::signalslib::signal<void (const std::string&)> signal_sceneToBeLoaded;
205 
207  boost::signalslib::signal<void (const std::string&)> signal_sceneLoaded;
208 
210  boost::signalslib::signal<void (const std::string&)> signal_sceneSaved;
211 
212  protected:
213 
214  DtSceneSignaler();
215 
216  };
217 }
boost::signalslib::signal< void(DtScene &)> signal_sceneToBeCleared
This signal is emitted when the scene is about to be deleted.
Definition: DtScene.h:188
Virtual base class.
Definition: DtVirtualBaseClass.h:19
A unicode string.
Definition: DtUnicode.h:33
An object that represents everything that is visible in the scene.
Definition: DtScene.h:44
DtDe & myDe
Definition: DtScene.h:160
Record of application-wide date/time settings.
Definition: DtDateTimeRecord.h:19
the Signals for DtScene
Definition: DtScene.h:174
The DtTerrainlayer is the base implementation of a layer of data which makes up the terrain...
Definition: DtTerrainLayer.h:33
boost::signalslib::signal< void(DtScene &)> signal_sceneCleared
This signal is emitted when the scene is about to be deleted.
Definition: DtScene.h:191
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
The DtEnvironment configures the environmental effects for a scene.
Definition: DtEnvironment.h:58
const DtEnvironment & environment() const
accessor for the DtEnvironment object
Definition: DtScene.h:88
std::string myTerrainFileName
Definition: DtScene.h:167
DtEnvironment * myEnvironment
Definition: DtScene.h:163
DtTerrain * myTerrain
Definition: DtScene.h:162
Facade object for a scene prop.
Definition: DtProp.h:34
Contains makVrv::DtVirtualBaseClass class.
Record of a VR-Vantage terrain Contains: Terrain coordinate system Terrain patches Feature layers Ter...
Definition: DtTerrainRecord.h:29
A record for describing a scene.
Definition: DtSceneRecord.h:21
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
std::string myDescription
Definition: DtScene.h:169
boost::signalslib::signal< void(const std::string &)> signal_sceneLoaded
This signal is emitted after the scene is loaded.
Definition: DtScene.h:207
Record of environment/weather settings Includes precipitation, air, and clouds.
Definition: DtEnvironmentRecord.h:36
boost::signalslib::signal< void()> signal_sceneCreated
This signal is emitted when the scene has been created.
Definition: DtScene.h:185
boost::signalslib::signal< void(const std::string &)> signal_sceneTerrainSaved
This signal is emitted after the scene saves a terrain.
Definition: DtScene.h:201
std::string myEnviromentFileName
Definition: DtScene.h:168
DtStreamedFeatureManager * myStreamedFeatureManager
Definition: DtScene.h:165
The StreamedFeatureManager allows users to register creator functions for streamed features from spec...
Definition: DtStreamedFeatureManager.h:31
Contains makVrv::DtUniqueID type.
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
This is the base Terrain Feature class which all specific feature types extend.
Definition: DtFeature.h:32
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:72
boost::signalslib::signal< void(const std::string &)> signal_sceneToBeLoaded
This signal is emitted after the scene is about to be loaded.
Definition: DtScene.h:204
boost::signalslib::signal< void(const DtUnicode &, bool reload)> signal_sceneTerrainLoaded
This signal is emitted after the scene loaded a terrain.
Definition: DtScene.h:198
std::vector< DtProp * > ScenePropReferences
Prop functions.
Definition: DtScene.h:117
const DtTerrain & terrain() const
accessor for the DtTerrain object
Definition: DtScene.h:57
boost::signalslib::signal< void(const std::string &)> signal_sceneSaved
This signal is emitted after the scene is saved.
Definition: DtScene.h:210
DtTerrain is a facade around terrain functionality.
Definition: DtTerrain.h:58
DtSceneSignaler & mySignaler
Definition: DtScene.h:164
boost::signalslib::signal< void()> signal_sceneToBeDeleted
This signal is emitted when the scene is about to be deleted.
Definition: DtScene.h:194
Contains DLL export macros.


Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)