VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfModelSetManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
15 #include <vlpi/entityType.h>
18 #include <vrfutil/propertyUtils.h>
20 #include <matrix/3dBoundingVolume.h>
21 
22 #include <boost/signal.hpp>
23 
24 #include <string>
25 #include <map>
26 
27 class DtModelSet;
28 class DtModelSetEntry;
29 class DtString;
32 
33 namespace makVrv
34 {
35  class DtDe;
36 }
37 
38 namespace makVrf
39 {
40  class DtEntityMapperKey;
41 
44  {
45  public:
47  virtual ~DtVrfModelSetManager();
48 
50  static DtVrfModelSetManager& instance(makVrv::DtDe& de);
51 
52  public:
54  virtual bool load(const std::string&, bool reset = true, bool signal = true);
55 
58  virtual bool loadFromDirectory(const std::string& dataDirectory, const std::string& guiDirectory,
59  const std::string& platformsDirectory, bool reset = true, bool signal = true);
60 
62  virtual DtModelSetEntry* modelSetEntry(const DtEntityMapperKey& key) const;
63 
65  virtual bool canHoldSubordinates(const DtEntityMapperKey& key) const;
66 
68  virtual std::vector<DtObjectType> subordinateObjects(const DtEntityMapperKey&) const;
69 
71  virtual bool isRandomized(const DtEntityMapperKey&) const;
72 
74  virtual DtModelSetEntry* exactModelSetEntry(const DtEntityMapperKey& key) const;
75 
77  virtual void getSupportPoints(const DtEntityType& et,
78  DtVector& left, DtVector& right, DtVector& other);
79 
81  virtual Dt3dBoundingVolume getBoundingVolume(const DtEntityMapperKey& et);
82 
84  virtual DtEntityType nameToType(const DtString&) const;
85 
87  virtual bool isFavorite(const DtEntityMapperKey& key, int force) const;
88 
90  virtual std::set<DtString> categories() const;
91 
93  virtual std::set<DtString> categoriesForPalette(const DtString& palette) const;
94 
96  virtual DtModelSetEntry* findByLabel(const DtString&) const;
97 
99  virtual DtModelSetEntry* addModelSetEntry(const DtString& label, const DtEntityMapperKey&,
100  const DtRwNLengthStringVector& cats);
101 
104  virtual void addSimulationObjectGroupModelSetEntry(DtSimulationObjectGroupModelSetEntry* entry);
105 
107  virtual DtSimulationObjectGroupModelSetEntry findSimulationObjectGroup(const std::string& sogName) const;
108 
110  virtual DtObjectType nextAvailableSimulationObjectGroupObjectType() const;
111 
113  virtual void removeModelSetEntry(const DtEntityMapperKey& e);
114 
116  virtual std::string nameFor(const DtEntityMapperKey&) const;
117 
119  virtual std::string keywordsFor(const DtEntityMapperKey&) const;
120 
122  virtual bool canEmbedIntoTerrain(const DtEntityMapperKey&) const;
123 
125  virtual bool canEmbark(const DtEntityMapperKey&) const;
126 
128  virtual bool canAttachTo(const DtEntityMapperKey&) const;
129 
131  virtual bool canEmbarkUpon(const DtEntityMapperKey&) const;
132 
134  virtual bool organized(const DtEntityMapperKey&) const;
135 
138  virtual std::string additionalKeywords(const DtEntityMapperKey&) const;
139  virtual void setAdditionalKeywords(const DtEntityMapperKey&, const std::string&, bool replace = false);
140 
142  template <class T>
143  boost::optional<T> parameterPropertyFor(const DtEntityMapperKey& e,
144  const std::string& propertyName) const
145  {
146  DtRwProperties props("");
147 
149  settings->parameterPropertiesFor(DtEntityMapperKey(e), props);
150 
151  return findPropertyValue<T>(props, propertyName.c_str());
152  }
153 
156  virtual void setModelSet(DtModelSet*);
157 
160  virtual void setFavorite(const DtEntityMapperKey& key, bool b);
161 
164  virtual DtModelSet* loadFavoritesFor(const std::string&);
165 
168  virtual void mergeFavoritesInto(DtModelSet* favorite, DtModelSet* modelSet);
169 
171  virtual void mergeFavorites(DtModelSet* favorites);
172 
174  virtual DtModelSetEntry* favoriteFor(DtModelSetEntry*) const;
175 
177  virtual DtModelSet* modelSet();
178 
180  virtual DtModelSet modelSet() const;
181 
182  void setAutoSave(bool b)
183  {
184  myAutoSave = b;
185  }
186 
187  bool autoSave() const
188  {
189  return myAutoSave;
190  }
191 
192  protected:
194  virtual void clearModelSets();
195 
196  public:
197  boost::signal<void ()> signal_modelSetChanged;
198 
199  protected:
202 
203  typedef std::map<std::string, DtModelSet*> Favorites;
205 
207  };
208 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)