VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 DtModelSetEntry* exactModelSetEntry(const DtEntityMapperKey& key) const;
69 
71  virtual void getSupportPoints(const DtEntityType& et,
72  DtVector& left, DtVector& right, DtVector& other);
73 
75  virtual Dt3dBoundingVolume getBoundingVolume(const DtEntityMapperKey& et);
76 
78  virtual DtEntityType nameToType(const DtString&) const;
79 
81  virtual bool isFavorite(const DtEntityMapperKey& key, int force) const;
82 
84  virtual std::set<DtString> categories() const;
85 
87  virtual std::set<DtString> categoriesForPalette(const DtString& palette) const;
88 
90  virtual DtModelSetEntry* findByLabel(const DtString&) const;
91 
93  virtual DtModelSetEntry* addModelSetEntry(const DtString& label, const DtEntityMapperKey&,
94  const DtRwNLengthStringVector& cats);
95 
98  virtual void addSimulationObjectGroupModelSetEntry(DtSimulationObjectGroupModelSetEntry* entry);
99 
101  virtual DtSimulationObjectGroupModelSetEntry findSimulationObjectGroup(const std::string& sogName) const;
102 
104  virtual DtObjectType nextAvailableSimulationObjectGroupObjectType() const;
105 
107  virtual void removeModelSetEntry(const DtEntityMapperKey& e);
108 
110  virtual std::string nameFor(const DtEntityMapperKey&) const;
111 
113  virtual std::string keywordsFor(const DtEntityMapperKey&) const;
114 
116  virtual bool canEmbark(const DtEntityMapperKey&) const;
117 
119  virtual bool canAttachTo(const DtEntityMapperKey&) const;
120 
122  virtual bool canEmbarkUpon(const DtEntityMapperKey&) const;
123 
126  virtual std::string additionalKeywords(const DtEntityMapperKey&) const;
127  virtual void setAdditionalKeywords(const DtEntityMapperKey&, const std::string&, bool replace = false);
128 
130  template <class T>
131  boost::optional<T> parameterPropertyFor(const DtEntityMapperKey& e,
132  const std::string& propertyName) const
133  {
134  DtRwProperties props("");
135 
137  settings->parameterPropertiesFor(DtEntityMapperKey(e), props);
138 
139  return findPropertyValue<T>(props, propertyName.c_str());
140  }
141 
144  virtual void setModelSet(DtModelSet*);
145 
148  virtual void setFavorite(const DtEntityMapperKey& key, bool b);
149 
152  virtual DtModelSet* loadFavoritesFor(const std::string&);
153 
156  virtual void mergeFavoritesInto(DtModelSet* favorite, DtModelSet* modelSet);
157 
159  virtual void mergeFavorites(DtModelSet* favorites);
160 
162  virtual DtModelSetEntry* favoriteFor(DtModelSetEntry*) const;
163 
165  virtual DtModelSet* modelSet();
166 
168  virtual DtModelSet modelSet() const;
169 
170  void setAutoSave(bool b)
171  {
172  myAutoSave = b;
173  }
174 
175  bool autoSave() const
176  {
177  return myAutoSave;
178  }
179 
180  protected:
182  virtual void clearModelSets();
183 
184  public:
185  boost::signal<void ()> signal_modelSetChanged;
186 
187  protected:
190 
191  typedef std::map<std::string, DtModelSet*> Favorites;
193 
195  };
196 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)