VR-Forces 4.3 Class 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) 2013 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 
141  protected:
142 
143  void copyPropReferences( DtTerrainLayer* patch, DtScene::ScenePropReferences &spRefs );
144 
145  protected:
147 
152 
153  std::string myTerrainFileName;
154  std::string myEnviromentFileName;
155  };
156 
160  {
161  public:
162 
164  static DtSceneSignaler& instance(DtDe& de);
165 
167  virtual ~DtSceneSignaler();
168 
170  boost::signal<void ()> signal_sceneCreated;
171 
173  boost::signal<void (DtScene&)> signal_sceneToBeCleared;
174 
176  boost::signal<void (DtScene&)> signal_sceneCleared;
177 
179  boost::signal<void ()> signal_sceneToBeDeleted;
180 
181  protected:
182 
183  DtSceneSignaler();
184 
185  };
186 }

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)