VR-Forces 4.1.1 Class Documentation
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 
14 #include <vrvCore/vrvCore.h>
19 #include <string>
20 #include <boost/signal.hpp>
21 
22 namespace makVrv
23 {
24  class DtDe;
25  class DtModelDefinitionManagerSignaler;
26  class DtModelDefinitionBackup;
27  class DtModelDefinitionManager;
28 
33  {
34  public:
37 
38  protected:
41  virtual void restore(const DtSettingsBackup* from);
42 
45  virtual std::string backupClassType() const;
46  virtual std::string backupName() const;
47 
50  virtual DtSettingsBackup* create() const;
51 
54  virtual void write(boost::archive::xml_oarchive& ar);
55 
58  virtual void read(boost::archive::xml_iarchive& ar);
59 
60  const DtModelDefinitionManager* restoredManager() const
61  {
62  return myRestoredManager;
63  }
64 
65  protected:
69  };
70 
76  {
77  public:
79 
80  typedef std::map<std::string,DtModelDefinition> DefinitionMap;
81 
83  virtual ~DtModelDefinitionManager();
84 
86  virtual void loadDefinitions();
87 
89  virtual void saveDefinitions();
90  virtual void saveDefinitions(const std::string&);
91 
95  virtual void addDefinition(const DtModelDefinition& definition, bool autoSave = true);
96 
100  virtual void destroyDefinition(const DtModelDefinition& def);
101 
105  DtModelDefinition* findDefinition(const std::string& modelName) const;
106 
108  const DefinitionMap& definitions() const;
109  DefinitionMap& definitions();
110 
112  const std::string& modelFilename() const;
113 
115  void setModelFilename(const std::string& extension);
116 
118  bool modelInstancingEnabled() const;
119 
121  void setModelInstancingEnabled(bool enabled);
122 
124  void clearModelInstancingCache();
125 
127  void clear();
128 
132  virtual void merge(const DtModelDefinitionManager&);
133 
139  virtual bool loadModelDefinitions(const std::string& filename, bool merge = true);
140 
145  virtual bool loadModelDefinition(const std::string& filename);
146 
149  virtual bool exportToFile(const std::vector<std::string>& defs, const std::string& filename) const;
150 
152  virtual bool schemaInUse(const std::string&) const;
153 
155  virtual bool schemaInUse(const std::string&, std::vector<std::string>&) const;
156 
158  virtual void backup();
159 
160  const DtSettingsBackup* settingsBackup() const
161  {
162  return myBackup;
163  }
164 
165  DtSettingsBackup* settingsBackup()
166  {
167  return myBackup;
168  }
169 
171  virtual DtModelDefinitionManager& operator=(const DtModelDefinitionManager&);
172 
174  void setAutoSave(bool b)
175  {
176  myAutoSave = b;
177  }
178 
179  bool autoSave() const
180  {
181  return myAutoSave;
182  }
183 
185  virtual void removeNonPersistentItems();
186 
187  protected:
188 
190 
194 
195  protected:
196  friend class boost::serialization::access;
197 
198  template <typename Archive>
199  void serialize(Archive& ar,unsigned int version)
200  {
201  ar & BOOST_SERIALIZATION_NVP(myDefinitions);
202  }
203 
204  protected:
205 
208  std::string myModelFileName;
210 
214  };
215 
219  {
220  public:
221 
223  static DtModelDefinitionManagerSignaler& instance(DtDe& de);
224 
227 
229  boost::signal<void ()> signal_modelDefinitionManagerReset;
230 
232  boost::signal<void (const DtModelDefinition&)> signal_modelDefinitionAdded;
233 
235  boost::signal<void (const DtModelDefinition&)> signal_modelDefinitionToBeRemoved;
236 
237  protected:
238 
240 
241  };
242 
246  {
247  public:
250 
253 
257  static DtModelDefinitionManagerCreator& instance(DtDe& de);
258 
260  virtual DtModelDefinitionManager* create(DtDe&);
261  };
262 }
263 
265 

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)