VR-Forces 5.0.3 Developer's Guide
 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>
23 
24 #include <QtCore/QString>
25 
26 
27 
28 #include <string>
29 #include <map>
30 
31 class DtModelSet;
32 class DtModelSetEntry;
33 class DtString;
36 class DtScenarioExplorer;
37 
38 namespace makVrv
39 {
40  class DtDe;
41 }
42 
43 namespace makVrf
44 {
45  class DtEntityMapperKey;
46 
58  {
59  public:
61  virtual ~DtVrfModelSetManager();
62 
64  static DtVrfModelSetManager& instance(makVrv::DtDe& de);
65  static void registerInstance(makVrv::DtDe& de, DtVrfModelSetManager* messager);
66 
67  public:
70  virtual void setVariableBindings(const DtRwVariableBindings*);
71 
74  virtual void setSearchPaths(const DtReaderWriter::SearchPaths&);
75 
77  virtual bool load(const std::string&, bool reset = true, bool signal = true);
78 
80  virtual QString parameterTranslation(const DtString& name) const;
81 
84  virtual bool loadFromDirectory(const std::string& dataDirectory, const std::string& guiDirectory,
85  const std::string& platformsDirectory, bool reset = true, bool signal = true, bool preloadParameters = false);
86 
88  virtual DtModelSetEntry* modelSetEntry(const DtEntityMapperKey& key) const;
89 
91  virtual bool canHoldSubordinates(const DtEntityMapperKey& key) const;
92 
94  virtual std::vector<DtFilename> searchPaths() const;
95 
97  virtual std::vector<DtObjectType> subordinateObjects(const DtEntityMapperKey&) const;
98 
100  virtual bool isRandomized(const DtEntityMapperKey&) const;
101 
103  virtual bool hasComponentDescriptor(const DtEntityMapperKey&, const DtString& type);
104 
106  virtual DtModelSetEntry* exactModelSetEntry(const DtEntityMapperKey& key) const;
107 
109  virtual void getSupportPoints(const DtEntityType& et,
110  DtVector& left, DtVector& right, DtVector& other);
111 
113  virtual Dt3dBoundingVolume getBoundingVolume(const DtEntityMapperKey& et);
114 
116  virtual DtEntityType nameToType(const DtString&) const;
117 
119  virtual DtFilename iconForList(const DtEntityType&, const DtString& list) const;
120 
122  virtual bool isFavorite(const DtEntityMapperKey& key, int force) const;
123 
125  virtual std::set<DtString> categories() const;
126 
128  virtual std::set<DtString> categoriesForPalette(const DtString& palette) const;
129 
131  virtual DtModelSetEntry* findByLabel(const DtString&) const;
132 
134  virtual DtModelSetEntry* addModelSetEntry(const DtString& label, const DtEntityMapperKey&,
135  const DtRwNLengthStringVector& cats);
136 
138  virtual std::vector<DtString> taskGroupsForTask(const DtEntityType& key, const DtSimTaskMessageType&) const;
139 
142  virtual void addSimulationObjectGroupModelSetEntry(DtSimulationObjectGroupModelSetEntry* entry);
143 
145  virtual DtSimulationObjectGroupModelSetEntry findSimulationObjectGroup(const std::string& sogName) const;
146 
148  virtual DtObjectType nextAvailableSimulationObjectGroupObjectType() const;
149 
151  virtual void removeModelSetEntry(const DtEntityMapperKey& e);
152 
154  virtual std::string nameFor(const DtEntityMapperKey&) const;
155 
157  virtual std::string keywordsFor(const DtEntityMapperKey&) const;
158 
160  virtual bool canEmbedIntoTerrain(const DtEntityMapperKey&) const;
161 
163  virtual bool canEmbark(const DtEntityMapperKey&) const;
164 
166  virtual bool canAttachTo(const DtEntityMapperKey&) const;
167 
169  virtual bool canEmbarkUpon(const DtEntityMapperKey&) const;
170 
172  virtual bool organized(const DtEntityMapperKey&) const;
173 
176  virtual std::string additionalKeywords(const DtEntityMapperKey&) const;
177  virtual void setAdditionalKeywords(const DtEntityMapperKey&, const std::string&, bool replace = false);
178 
180  virtual void statePropertiesForPlatform(const DtString&, DtRwProperties&) const;
181 
183  virtual void parameterPropertiesForPlatform(const DtString&, DtRwProperties&) const;
184 
186  virtual void statePropertiesFor(const DtEntityType&, DtRwProperties&) const;
187 
189  virtual void parameterPropertiesFor(const DtEntityType&, DtRwProperties&);
190 
192  template <class T>
193  boost::optional<T> parameterPropertyFor(const DtEntityMapperKey& e,
194  const std::string& propertyName) const
195  {
196  DtRwProperties props("");
197 
199  settings->parameterPropertiesFor(DtEntityMapperKey(e), props);
200 
201  return findPropertyValue<T>(props, propertyName.c_str());
202  }
203 
206  virtual void setModelSet(DtModelSet*);
207 
210  virtual void setFavorite(const DtEntityMapperKey& key, bool b);
211 
214  virtual DtModelSet* loadFavoritesFor(const std::string&);
215 
218  virtual void mergeFavoritesInto(DtModelSet* favorite, DtModelSet* modelSet);
219 
221  virtual void mergeFavorites(DtModelSet* favorites);
222 
224  virtual DtModelSetEntry* favoriteFor(DtModelSetEntry*) const;
225 
227  virtual DtModelSet* modelSet();
228 
230  virtual DtModelSet modelSet() const;
231 
233  virtual DtRwVisualMetaData visualMetaData(const DtEntityType&);
234 
235  void setAutoSave(bool b)
236  {
237  myAutoSave = b;
238  }
239 
240  bool autoSave() const
241  {
242  return myAutoSave;
243  }
244 
246  virtual DtSharedModelSet::EquipmentTypeMap baseEquipment(const DtObjectType&);
247 
249  virtual bool load(const DtScenarioExplorer&, bool = true);
250 
252  virtual void initializeCountries();
253 
254  protected:
256  virtual void clearModelSets();
257 
258  public:
259  boost::signals2::signal<void ()> signal_modelSetChanged;
260 
261  protected:
264 
265  typedef std::map<std::string, DtModelSet*> Favorites;
267 
269  };
270 }
DtModelSet * myModelSet
Definition: vrfModelSetManager.h:268
Definition: entityMapperKey.h:23
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
void setAutoSave(bool b)
Definition: vrfModelSetManager.h:235
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
std::multimap< EquipmentTypeCountPair, ObjectTypeAndLabel > EquipmentTypeMap
Definition: sharedModelSet.h:246
std::map< std::string, DtModelSet * > Favorites
Definition: vrfModelSetManager.h:265
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
Description: A model is a set of items that defines a model to create in the back-end from the front-...
Definition: simulationObjectGroupModelSetEntry.h:161
The DtVrfModelSetManager class is the main entry point to find parameter data for objects in the simu...
Definition: vrfModelSetManager.h:57
Definition: objectType.h:27
ReaderWriter object that maintains a list of reader-writer variable bindings. It keeps a list of name...
Definition: rwVariableBindings.h:27
Definition: modelSetEntry.h:34
Contains makVrv::DtVirtualBaseClass class.
DtRwVisualMetaData is a container for a visual meta data file, and, with the meta data within that fi...
Definition: rwVisualMetaData.h:18
bool myAutoSave
Definition: vrfModelSetManager.h:263
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
Definition: sharedModelSet.h:48
static DtSharedSettingsManager & instance(DtDe &)
Get an instance of the shared settings manager from the DtDe;.
Contains makVrv::DtReadSettingsLock class.
boost::optional< T > parameterPropertyFor(const DtEntityMapperKey &e, const std::string &propertyName) const
Returns the parameter property for the given entity type and property name. Return NULL object if pro...
Definition: vrfModelSetManager.h:193
boost::signals2::signal< void()> signal_modelSetChanged
Definition: vrfModelSetManager.h:259
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:126
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
Favorites myFavorites
Definition: vrfModelSetManager.h:266
bool autoSave() const
Definition: vrfModelSetManager.h:240
makVrv::DtDe & myDe
Definition: vrfModelSetManager.h:262
Definition: modelSet.h:34

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)