VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtModelDefinitionManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #pragma once
10 
13 
15 
17 
18 #include <string>
19 #include <boost/signal.hpp>
20 
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 
62  virtual void readIncremental(boost::archive::xml_iarchive& ar);
63 
65  {
66  return myRestoredManager;
67  }
68 
69  protected:
73  };
74 
80  {
81  public:
83 
84  typedef std::map<std::string,DtModelDefinition> DefinitionMap;
85 
87  virtual ~DtModelDefinitionManager();
88 
90  virtual void loadDefinitions();
91 
94  virtual bool skipDefaultDefinitions();
95 
97  virtual void saveDefinitions();
98 
101  virtual void saveAllDefinitions();
102 
105  virtual void saveDefinitions(const std::string&);
106 
107 
111  virtual void addDefinition(const DtModelDefinition& definition, bool autoSave = true);
112 
116  virtual void destroyDefinition(const DtModelDefinition& def);
117 
121  DtModelDefinition* findDefinition(const std::string& modelName) const;
122 
124  const DefinitionMap& definitions() const;
125  DefinitionMap& definitions();
126 
128  void renameDefinition(const std::string& oldModelName, const std::string& newModelName);
129 
131  const std::string& modelFilename() const;
132 
134  void setModelFilename(const std::string& extension);
135 
137  bool modelInstancingEnabled() const;
138 
140  void setModelInstancingEnabled(bool enabled);
141 
143  void clearModelInstancingCache();
144 
146  void clear();
147 
151  virtual void merge(const DtModelDefinitionManager&);
152 
158  virtual bool loadModelDefinitions(const std::string& filename, bool merge = true);
159 
164  virtual bool loadModelDefinition(const std::string& filename);
165 
168  virtual bool exportToFile(const std::vector<std::string>& defs, const std::string& filename) const;
169 
171  virtual bool schemaInUse(const std::string&) const;
172 
174  virtual bool schemaInUse(const std::string&, std::vector<std::string>&) const;
175 
177  virtual void backup();
178 
180  virtual bool mergeModelDefinitions(const std::string& fileOrDirName);
181 
183  virtual bool modifiedSinceStartup();
184 
186  virtual void addToModifiedDefinitionsMap(DtModelDefinition modelDefinition);
187 
189  virtual void addToAddedDefinitionsMap(DtModelDefinition modelDefinition);
190 
192  virtual void addToDeletedDefinitionsMap(DtModelDefinition modelDefinition);
193 
195  virtual void resetModifiedFlags();
196 
198  virtual int getNumOfDefinitionsExcludeTerrain();
199 
201  {
202  return myBackup;
203  }
204 
206  {
207  return myBackup;
208  }
209 
211  virtual DtModelDefinitionManager& operator=(const DtModelDefinitionManager&);
212 
214  void setAutoSave(bool b)
215  {
216  myAutoSave = b;
217  }
218 
219  bool autoSave() const
220  {
221  return myAutoSave;
222  }
223 
225  virtual void removeNonPersistentItems();
226 
227  protected:
228 
230 
234 
235  protected:
236  friend class boost::serialization::access;
237 
238  template <typename Archive>
239  void serialize(Archive& ar,unsigned int version)
240  {
241  ar & BOOST_SERIALIZATION_NVP(myDefinitions);
242  }
243 
244  protected:
245 
248  std::string myModelFileName;
249  std::string myModelFileExtension;
251 
253 
261 
262  private:
263  bool loadModelDefinitionsFromXML(const std::string& filename, bool shouldMerge);
264  bool loadModelDefinitionsFromBinary(const std::string& filename, bool shouldMerge);
265  };
266 
270  {
271  public:
272 
274  static DtModelDefinitionManagerSignaler& instance(DtDe& de);
275 
278 
280  boost::signal<void ()> signal_modelDefinitionManagerReset;
281 
283  boost::signal<void (const DtModelDefinition&)> signal_modelDefinitionAdded;
284 
286  boost::signal<void (const DtModelDefinition&)> signal_modelDefinitionToBeRemoved;
287 
288  protected:
289 
291 
292  };
293 
297  {
298  public:
301 
304 
308  static DtModelDefinitionManagerCreator& instance(DtDe& de);
309 
311  virtual DtModelDefinitionManager* create(DtDe&);
312  };
313 }
314 
316 
the Signals for DtModelDefinitionManager
Definition: DtModelDefinitionManager.h:269
Virtual base class.
Definition: DtVirtualBaseClass.h:22
std::string myModelFileExtension
Definition: DtModelDefinitionManager.h:249
The model definition manager is responsible to managing all of the model definitions the IG knows abo...
Definition: DtModelDefinitionManager.h:79
boost::signal< void(const DtModelDefinition &)> signal_modelDefinitionToBeRemoved
Signal emitted when a model definition is to be destroyed.
Definition: DtModelDefinitionManager.h:286
void serialize(Archive &ar, unsigned int version)
Definition: DtModelDefinitionManager.h:239
DefinitionMap myDefinitions
Definition: DtModelDefinitionManager.h:247
const DtSettingsBackup * settingsBackup() const
Definition: DtModelDefinitionManager.h:200
DefinitionMap myModifiedDefinitions
Definition: DtModelDefinitionManager.h:258
bool myModelInstancingFlag
Definition: DtModelDefinitionManager.h:254
boost::signal< void()> signal_modelDefinitionManagerReset
Signal emitted when the model definition manager is reset.
Definition: DtModelDefinitionManager.h:280
DtModelDefinitionManagerBackup is the settings backup object for DtModelDefinitions.
Definition: DtModelDefinitionManager.h:32
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 2)
std::map< std::string, DtModelDefinition > DefinitionMap
Definition: DtModelDefinitionManager.h:84
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:33
bool myAutoSave
Definition: DtModelDefinitionManager.h:250
void setAutoSave(bool b)
Sets whether or not to automatically save model definition manager on any change. Default is true...
Definition: DtModelDefinitionManager.h:214
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool autoSave() const
Definition: DtModelDefinitionManager.h:219
DtModelDefinitionManager * myRestoredManager
Definition: DtModelDefinitionManager.h:72
std::string myModelFileName
Definition: DtModelDefinitionManager.h:248
Creator for DtModelDefinitionManager class.
Definition: DtModelDefinitionManager.h:296
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
DtSettingsBackup * settingsBackup()
Definition: DtModelDefinitionManager.h:205
Interaction makVrv::DtModelDefinition class.
Provides a method of doign settings backup.
Definition: DtSettingsBackup.h:26
int myStartupNumOfDefinition
Definition: DtModelDefinitionManager.h:257
DefinitionMap myDeletedDefinitions
Definition: DtModelDefinitionManager.h:260
const DtModelDefinitionManager * restoredManager() const
Definition: DtModelDefinitionManager.h:64
DtDe & myDe
Definition: DtModelDefinitionManager.h:246
boost::signal< void(const DtModelDefinition &)> signal_modelDefinitionAdded
Signal emitted when a model definition is added.
Definition: DtModelDefinitionManager.h:283
Base class to provide boost signal/slot management.
Contains makVrv::DtModelDefinitionRecord class.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtModelDefinitionManagerSignaler & mySignaler
Definition: DtModelDefinitionManager.h:255
DtModelDefinitionManager & mySourceManager
Definition: DtModelDefinitionManager.h:70
DefinitionMap myAddedDefinitions
Definition: DtModelDefinitionManager.h:259
DtDe & myDe
Definition: DtModelDefinitionManager.h:71
DtSignalConnectionManager myConnectionManager
Definition: DtModelDefinitionManager.h:252
DtModelDefinitionManagerBackup * myBackup
Definition: DtModelDefinitionManager.h:256

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)