VR-Forces 4.7 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>
21 #include <matrix/3dBoundingVolume.h>
22 
23 #include <QtCore/QString>
24 
25 #include <boost/signal.hpp>
26 
27 #include <string>
28 #include <map>
29 
30 class DtModelSet;
31 class DtModelSetEntry;
32 class DtString;
35 class DtScenarioExplorer;
36 
37 namespace makVrv
38 {
39  class DtDe;
40 }
41 
42 namespace makVrf
43 {
44  class DtEntityMapperKey;
45 
48  {
49  public:
51  virtual ~DtVrfModelSetManager();
52 
54  static DtVrfModelSetManager& instance(makVrv::DtDe& de);
55 
56  public:
59  virtual void setVariableBindings(const DtRwVariableBindings*);
60 
63  virtual void setSearchPaths(const DtReaderWriter::SearchPaths&);
64 
66  virtual bool load(const std::string&, bool reset = true, bool signal = true);
67 
69  virtual QString parameterTranslation(const DtString& name) const;
70 
73  virtual bool loadFromDirectory(const std::string& dataDirectory, const std::string& guiDirectory,
74  const std::string& platformsDirectory, bool reset = true, bool signal = true, bool preloadParameters = false);
75 
77  virtual DtModelSetEntry* modelSetEntry(const DtEntityMapperKey& key) const;
78 
80  virtual bool canHoldSubordinates(const DtEntityMapperKey& key) const;
81 
83  virtual std::vector<DtObjectType> subordinateObjects(const DtEntityMapperKey&) const;
84 
86  virtual bool isRandomized(const DtEntityMapperKey&) const;
87 
89  virtual bool hasComponentDescriptor(const DtEntityMapperKey&, const DtString& type);
90 
92  virtual DtModelSetEntry* exactModelSetEntry(const DtEntityMapperKey& key) const;
93 
95  virtual void getSupportPoints(const DtEntityType& et,
96  DtVector& left, DtVector& right, DtVector& other);
97 
99  virtual Dt3dBoundingVolume getBoundingVolume(const DtEntityMapperKey& et);
100 
102  virtual DtEntityType nameToType(const DtString&) const;
103 
105  virtual DtFilename iconForList(const DtEntityType&, const DtString& list) const;
106 
108  virtual bool isFavorite(const DtEntityMapperKey& key, int force) const;
109 
111  virtual std::set<DtString> categories() const;
112 
114  virtual std::set<DtString> categoriesForPalette(const DtString& palette) const;
115 
117  virtual DtModelSetEntry* findByLabel(const DtString&) const;
118 
120  virtual DtModelSetEntry* addModelSetEntry(const DtString& label, const DtEntityMapperKey&,
121  const DtRwNLengthStringVector& cats);
122 
125  virtual void addSimulationObjectGroupModelSetEntry(DtSimulationObjectGroupModelSetEntry* entry);
126 
128  virtual DtSimulationObjectGroupModelSetEntry findSimulationObjectGroup(const std::string& sogName) const;
129 
131  virtual DtObjectType nextAvailableSimulationObjectGroupObjectType() const;
132 
134  virtual void removeModelSetEntry(const DtEntityMapperKey& e);
135 
137  virtual std::string nameFor(const DtEntityMapperKey&) const;
138 
140  virtual std::string keywordsFor(const DtEntityMapperKey&) const;
141 
143  virtual bool canEmbedIntoTerrain(const DtEntityMapperKey&) const;
144 
146  virtual bool canEmbark(const DtEntityMapperKey&) const;
147 
149  virtual bool canAttachTo(const DtEntityMapperKey&) const;
150 
152  virtual bool canEmbarkUpon(const DtEntityMapperKey&) const;
153 
155  virtual bool organized(const DtEntityMapperKey&) const;
156 
159  virtual std::string additionalKeywords(const DtEntityMapperKey&) const;
160  virtual void setAdditionalKeywords(const DtEntityMapperKey&, const std::string&, bool replace = false);
161 
163  virtual void statePropertiesForPlatform(const DtString&, DtRwProperties&) const;
164 
166  virtual void parameterPropertiesForPlatform(const DtString&, DtRwProperties&) const;
167 
169  virtual void statePropertiesFor(const DtEntityType&, DtRwProperties&) const;
170 
172  virtual void parameterPropertiesFor(const DtEntityType&, DtRwProperties&);
173 
175  template <class T>
176  boost::optional<T> parameterPropertyFor(const DtEntityMapperKey& e,
177  const std::string& propertyName) const
178  {
179  DtRwProperties props("");
180 
182  settings->parameterPropertiesFor(DtEntityMapperKey(e), props);
183 
184  return findPropertyValue<T>(props, propertyName.c_str());
185  }
186 
189  virtual void setModelSet(DtModelSet*);
190 
193  virtual void setFavorite(const DtEntityMapperKey& key, bool b);
194 
197  virtual DtModelSet* loadFavoritesFor(const std::string&);
198 
201  virtual void mergeFavoritesInto(DtModelSet* favorite, DtModelSet* modelSet);
202 
204  virtual void mergeFavorites(DtModelSet* favorites);
205 
207  virtual DtModelSetEntry* favoriteFor(DtModelSetEntry*) const;
208 
210  virtual DtModelSet* modelSet();
211 
213  virtual DtModelSet modelSet() const;
214 
216  virtual DtRwVisualMetaData visualMetaData(const DtEntityType&);
217 
218  void setAutoSave(bool b)
219  {
220  myAutoSave = b;
221  }
222 
223  bool autoSave() const
224  {
225  return myAutoSave;
226  }
227 
229  virtual DtSharedModelSet::EquipmentTypeMap baseEquipment(const DtObjectType&);
230 
232  virtual bool load(const DtScenarioExplorer&, bool = true);
233 
234  protected:
236  virtual void clearModelSets();
237 
238  public:
239  boost::signal<void ()> signal_modelSetChanged;
240 
241  protected:
244 
245  typedef std::map<std::string, DtModelSet*> Favorites;
247 
249  };
250 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)