VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtModelDefinitionManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtModelDefinitionManager.h,v $ $Revision: 1.16 $ $State: Exp $
7 ******************************************************************************/
8 
11 
12 #pragma once
13 
16 #include <string>
17 #include <boost/signal.hpp>
18 
19 namespace makVrv
20 {
21  class DtDe;
22  class DtModelDefinitionManagerSignaler;
23  class DtModelDefinitionBackup;
24  class DtModelDefinitionManager;
25 
30  {
31  public:
34 
35  protected:
38  virtual void restore(const DtSettingsBackup* from);
39 
42  virtual std::string backupClassType() const;
43  virtual std::string backupName() const;
44 
47  virtual DtSettingsBackup* create() const;
48 
51  virtual void write(boost::archive::xml_oarchive& ar);
52 
55  virtual void read(boost::archive::xml_iarchive& ar);
56 
59  virtual void readIncremental(boost::archive::xml_iarchive& ar);
60 
61  const DtModelDefinitionManager* restoredManager() const
62  {
63  return myRestoredManager;
64  }
65 
66  protected:
70  };
71 
77  {
78  public:
80 
81  typedef std::map<std::string,DtModelDefinition> DefinitionMap;
82 
84  virtual ~DtModelDefinitionManager();
85 
87  virtual void loadDefinitions();
88 
91  virtual bool skipDefaultDefinitions();
92 
94  virtual void saveDefinitions();
95  virtual void saveDefinitions(const std::string&);
96 
100  virtual void addDefinition(const DtModelDefinition& definition, bool autoSave = true);
101 
105  virtual void destroyDefinition(const DtModelDefinition& def);
106 
110  DtModelDefinition* findDefinition(const std::string& modelName) const;
111 
113  const DefinitionMap& definitions() const;
114  DefinitionMap& definitions();
115 
117  const std::string& modelFilename() const;
118 
120  void setModelFilename(const std::string& extension);
121 
123  bool modelInstancingEnabled() const;
124 
126  void setModelInstancingEnabled(bool enabled);
127 
129  void clearModelInstancingCache();
130 
132  void clear();
133 
137  virtual void merge(const DtModelDefinitionManager&);
138 
144  virtual bool loadModelDefinitions(const std::string& filename, bool merge = true);
145 
150  virtual bool loadModelDefinition(const std::string& filename);
151 
154  virtual bool exportToFile(const std::vector<std::string>& defs, const std::string& filename) const;
155 
157  virtual bool schemaInUse(const std::string&) const;
158 
160  virtual bool schemaInUse(const std::string&, std::vector<std::string>&) const;
161 
163  virtual void backup();
164 
166  virtual bool mergeModelDefinitions(const std::string& fileOrDirName);
167 
169  virtual bool modifiedSinceStartup();
170 
172  virtual void addToModifiedDefinitionsMap(DtModelDefinition modelDefinition);
173 
175  virtual void addToAddedDefinitionsMap(DtModelDefinition modelDefinition);
176 
178  virtual void addToDeletedDefinitionsMap(DtModelDefinition modelDefinition);
179 
181  virtual void resetModifiedFlags();
182 
184  virtual int getNumOfDefinitionsExcludeTerrain();
185 
186  const DtSettingsBackup* settingsBackup() const
187  {
188  return myBackup;
189  }
190 
191  DtSettingsBackup* settingsBackup()
192  {
193  return myBackup;
194  }
195 
197  virtual DtModelDefinitionManager& operator=(const DtModelDefinitionManager&);
198 
200  void setAutoSave(bool b)
201  {
202  myAutoSave = b;
203  }
204 
205  bool autoSave() const
206  {
207  return myAutoSave;
208  }
209 
211  virtual void removeNonPersistentItems();
212 
213  protected:
214 
216 
220 
221  protected:
222  friend class boost::serialization::access;
223 
224  template <typename Archive>
225  void serialize(Archive& ar,unsigned int version)
226  {
227  ar & BOOST_SERIALIZATION_NVP(myDefinitions);
228  }
229 
230  protected:
231 
234  std::string myModelFileName;
235  std::string myModelFileExtension;
237 
245 
246  private:
247  bool loadModelDefinitionsFromXML(const std::string& filename, bool shouldMerge);
248  bool loadModelDefinitionsFromBinary(const std::string& filename, bool shouldMerge);
249  };
250 
254  {
255  public:
256 
258  static DtModelDefinitionManagerSignaler& instance(DtDe& de);
259 
262 
264  boost::signal<void ()> signal_modelDefinitionManagerReset;
265 
267  boost::signal<void (const DtModelDefinition&)> signal_modelDefinitionAdded;
268 
270  boost::signal<void (const DtModelDefinition&)> signal_modelDefinitionToBeRemoved;
271 
272  protected:
273 
275 
276  };
277 
281  {
282  public:
285 
288 
292  static DtModelDefinitionManagerCreator& instance(DtDe& de);
293 
295  virtual DtModelDefinitionManager* create(DtDe&);
296  };
297 }
298 
300 

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)