VR-Forces 4.1 Class Documentation
DtScene.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2008 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtScene.h,v $ $Revision: 1.23 $ $State: Exp $
7 ******************************************************************************/
8 
12 
13 #ifndef DtScene_H_
14 #define DtScene_H_
15 
16 #include <vrvCore/vrvCore.h>
18 #include <vrvCore/DtUniqueID.h>
19 
20 #include <boost/signal.hpp>
21 
22 #include <string>
23 #include <vector>
24 
25 namespace makArchives
26 {
27  class DtSceneRecord;
28  class DtTerrainRecord;
29 }
30 
31 namespace makVrv
32 {
33  class DtAgentManagerInterface;
34  class DtDe;
35  class DtEnvironment;
36  class DtFeature;
37  class DtProp;
38  class DtSceneSignaler;
39  class DtTerrain;
40  class DtTerrainLayer;
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 std::string& filePath );
75 
77 
78  inline DtEnvironment& environment() { return *myEnvironment; }
79  inline const DtEnvironment& environment() const { return *myEnvironment; }
81 
87  bool saveEnvironment( const std::string& filePath, bool saveAs = true );
88 
90  bool loadEnvironment( const std::string& filePath );
91 
93  virtual void resetScene();
94 
96  virtual void resetTerrain();
97 
99 
100 
102  typedef std::vector<DtProp*> ScenePropReferences;
103 
105  virtual void getScenePropReferences(ScenePropReferences& props);
106 
109  virtual DtProp* findProp(DtElementID id);
110 
113  virtual bool destroyProp(DtElementID id);
114 
116 
118  virtual DtFeature* findFeature(DtElementID id);
119 
122  virtual bool destroyFeature(DtElementID id);
123 
125  const std::string& terrainFileName() const;
126 
128  const std::string& enviromentFileName() const;
129 
130  protected:
131 
132  void copyPropReferences( DtTerrainLayer* patch, DtScene::ScenePropReferences &spRefs );
133 
134  protected:
136 
140 
141  std::string myTerrainFileName;
142  std::string myEnviromentFileName;
143  };
144 
148  {
149  public:
150 
152  static DtSceneSignaler& instance(DtDe& de);
153 
155  virtual ~DtSceneSignaler();
156 
158  boost::signal<void ()> signal_sceneCreated;
159 
161  boost::signal<void (DtScene&)> signal_sceneToBeCleared;
162 
164  boost::signal<void (DtScene&)> signal_sceneCleared;
165 
167  boost::signal<void ()> signal_sceneToBeDeleted;
168 
170  boost::signal<void (const std::string&, const makArchives::DtTerrainRecord&)> signal_terrainAboutToBeSaved;
171 
173  boost::signal<void (const std::string&, const makArchives::DtTerrainRecord&)> signal_terrainSaved;
174 
175  protected:
176 
177  DtSceneSignaler();
178 
179  };
180 }
181 
182 #endif
183 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)