VR-Forces 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>
20 #include <vrfutil/rwColor.h>
24 #include <matrix/3dBoundingVolume.h>
26 
27 #include <QtCore/QString>
28 
29 #include <string>
30 #include <map>
31 #include <boost/function.hpp>
32 #include <boost/signals2.hpp>
33 
34 class DtModelSet;
35 class DtModelSetEntry;
36 class DtString;
39 class DtScenarioExplorer;
43 class DtMtlParameterDb;
44 
45 namespace makVrv
46 {
47  class DtDe;
48 }
49 
50 namespace makVrf
51 {
52  class DtEntityMapperKey;
53 
65  {
66  public:
68  virtual ~DtVrfModelSetManager() override;
69 
71  static DtVrfModelSetManager& instance(makVrv::DtDe& de);
72  static void registerInstance(makVrv::DtDe& de, DtVrfModelSetManager* messager);
73 
74  public:
77  virtual void setVariableBindings(const DtRwVariableBindings*);
78 
81  virtual void setSearchPaths(const DtReaderWriter::SearchPaths&);
82 
84  virtual bool load(const std::string&, bool reset = true, bool signal = true);
85 
87  virtual bool taskWillNotAbandonPlan(const DtEntityType& key, const DtSimTaskMessageType& taskType) const;
88 
90  virtual QString parameterTranslation(const DtString& name) const;
91 
94  virtual bool loadFromDirectory(const std::string& dataDirectory, const std::string& guiDirectory,
95  const std::string& platformsDirectory, bool reset = true, bool signal = true, bool preloadParameters = false);
96 
98  virtual DtModelSetEntry* modelSetEntry(const DtEntityMapperKey& key) const;
99 
101  virtual DtRwColor getDefaultColor(const DtEntityType&) const;
102 
104  virtual bool canHoldSubordinates(const DtEntityMapperKey& key) const;
105 
107  virtual std::vector<DtFilename> searchPaths() const;
108 
110  virtual std::vector<DtEntityType> subordinateObjects(const DtEntityMapperKey&) const;
111 
113  virtual bool isRandomized(const DtEntityMapperKey&) const;
114 
116  virtual bool hasComponentDescriptor(const DtEntityMapperKey&, const DtString& type);
117 
119  virtual void setSimulationModelSets(const std::vector<DtSimulationModelSet*>& sets);
120  virtual std::vector<DtSimulationModelSet*> simulationModelSets() const;
121 
123  virtual DtModelSetEntry* exactModelSetEntry(const DtEntityMapperKey& key) const;
124 
126  virtual void getSupportPoints(const DtEntityType& et,
127  DtVector& left, DtVector& right, DtVector& other);
128 
130  virtual Dt3dBoundingVolume getBoundingVolume(const DtEntityMapperKey& et);
131 
133  virtual DtEntityType nameToType(const DtString&) const;
134 
136  virtual DtFilename iconForList(const DtEntityType&, const DtString& list) const;
137 
139  virtual bool isFavorite(const DtEntityMapperKey& key, int force) const;
140 
142  virtual std::set<DtString> categories() const;
143 
145  virtual DtModelSetEntry* findByLabel(const DtString&) const;
146 
148  virtual DtModelSetEntry* addModelSetEntry(const DtString& label, const DtEntityMapperKey&,
149  const DtRwNLengthStringVector& cats);
150 
152  virtual std::vector<DtString> taskGroupsForTask(const DtEntityType& key, const DtSimTaskMessageType&) const;
153 
156  virtual void addSimulationObjectGroupModelSetEntry(DtSimulationObjectGroupModelSetEntry* entry);
157 
159  virtual DtSimulationObjectGroupModelSetEntry findSimulationObjectGroup(const std::string& sogName) const;
160 
162  virtual DtEntityType nextAvailableSimulationObjectGroupObjectType() const;
163 
165  virtual void removeModelSetEntry(const DtEntityMapperKey& e);
166 
168  virtual std::string nameFor(const DtEntityMapperKey&) const;
169 
171  virtual std::string keywordsFor(const DtEntityMapperKey&) const;
172 
174  virtual bool canEmbedIntoTerrain(const DtEntityMapperKey&) const;
175 
177  virtual bool canEmbark(const DtEntityMapperKey&) const;
178 
180  virtual bool canAttachTo(const DtEntityMapperKey&) const;
181 
183  virtual bool canEmbarkUpon(const DtEntityMapperKey&) const;
184 
186  virtual bool organized(const DtEntityMapperKey&) const;
187 
189  virtual int displayObjectImage(const DtEntityMapperKey&) const;
190 
193  virtual std::string additionalKeywords(const DtEntityMapperKey&) const;
194  virtual void setAdditionalKeywords(const DtEntityMapperKey&, const std::string&, bool replace = false);
195 
197  virtual void statePropertiesForPlatform(const DtString&, DtRwProperties&) const;
198 
200  virtual void parameterPropertiesForPlatform(const DtString&, DtRwProperties&) const;
201 
203  virtual void statePropertiesFor(const DtEntityType&, DtRwProperties&) const;
204 
206  virtual void parameterPropertiesFor(const DtEntityType&, DtRwProperties&);
207 
209  template <class T>
210  boost::optional<T> parameterPropertyFor(const DtEntityMapperKey& e,
211  const std::string& propertyName) const
212  {
213  DtRwProperties props("");
214 
216  settings->parameterPropertiesFor(DtEntityMapperKey(e), props);
217 
218  return findPropertyValue<T>(props, propertyName.c_str());
219  }
220 
223  virtual DtString defaultDescriptionFor(const DtEntityType&) const;
224  virtual DtString defaultDescriptionFor(const DtVrfObjectParameters*) const;
225 
227  virtual DtString systemDescriptionFor(const DtVrfObjectParameters*, const DtString& systemCategory) const;
228 
229  typedef boost::function<DtString (const DtVrfObjectParameters*)> DefaultDescriptionFunciton;
230  virtual void setDefaultDescriptionProvider(const DtString& parameterType, DefaultDescriptionFunciton);
231 
233  virtual DtString defaultDescriptionFunction(const DtVrfObjectParameters*) const;
234 
237  virtual void setModelSet(DtModelSet*);
238 
241  virtual void setFavorite(const DtEntityMapperKey& key, bool b);
242 
245  virtual DtModelSet* loadFavoritesFor(const std::string&);
246 
249  virtual void mergeFavoritesInto(DtModelSet* favorite, DtModelSet* modelSet);
250 
252  virtual void mergeFavorites(DtModelSet* favorites);
253 
255  virtual DtModelSetEntry* favoriteFor(DtModelSetEntry*) const;
256 
258  virtual DtModelSet* modelSet();
259 
261  virtual DtModelSet modelSet() const;
262 
264  virtual DtRwVisualMetaData visualMetaData(const DtEntityType&);
265 
266  void setAutoSave(bool b)
267  {
268  myAutoSave = b;
269  }
270 
271  bool autoSave() const
272  {
273  return myAutoSave;
274  }
275 
277  virtual DtSharedModelSet::EquipmentTypeMap baseEquipment(const DtEntityType&);
278 
280  virtual bool load(const DtScenarioExplorer&, bool = true);
281 
283  virtual void initializeCountries();
284 
285  virtual void setTags(const DtSimulationObjectCategoryInformation&);
287  {
288  return myTags;
289  }
290 
292  {
293  return myParameterDatabase;
294  }
295 
296  boost::signals2::signal<void ()> signal_tagsSet;
297 
298  protected:
300  virtual void clearModelSets();
301 
303  virtual DtString systemDescriptionFor(const DtComponentSystemDescriptorList&, const DtString& systemCategory) const;
304  virtual DtString systemDescriptionFor(const DtComponentSystemDescriptor*, const DtString& systemCategory) const;
305 
306  virtual void loadParameterDatabase();
307 
308  public:
309  boost::signals2::signal<void ()> signal_modelSetChanged;
310 
311  protected:
314 
315  typedef std::map<std::string, DtModelSet*> Favorites;
317 
319 
320  typedef std::map<std::string, DefaultDescriptionFunciton> DefaultDescriptionFuncitons;
324  DtMtlParameterDb* myParameterDatabase = nullptr;
325  };
326 }
DtModelSet * myModelSet
Definition: vrfModelSetManager.h:318
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:64
boost::signals2::signal< void()> signal_tagsSet
Definition: vrfModelSetManager.h:296
Definition: entityMapperKey.h:19
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
The DtSimulationObjectCategoryInformation class is a class that will read the comma delimited categor...
Definition: simulationObjectCategoryInformation.h:24
std::map< std::string, DefaultDescriptionFunciton > DefaultDescriptionFuncitons
Definition: vrfModelSetManager.h:320
void setAutoSave(bool b)
Definition: vrfModelSetManager.h:266
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
List of DtComponentSystemDescriptor instances.
Definition: componentSystemDescriptorList.h:20
std::multimap< EquipmentTypeCountPair, ObjectTypeAndLabel > EquipmentTypeMap
Definition: sharedModelSet.h:250
std::map< std::string, DtModelSet * > Favorites
Definition: vrfModelSetManager.h:315
#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:157
The DtVrfModelSetManager class is the main entry point to find parameter data for objects in the simu...
Definition: vrfModelSetManager.h:64
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
Reader-Writer color specified by red, green, blue components.
Definition: rwColor.h:19
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:313
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfModelSetManager.h:322
Definition: sharedModelSet.h:49
static DtSharedSettingsManager & instance(DtDe &)
Get an instance of the shared settings manager from the DtDe;.
boost::function< DtString(const DtVrfObjectParameters *)> DefaultDescriptionFunciton
Definition: vrfModelSetManager.h:229
Contains makVrv::DtReadSettingsLock class.
const DtSimulationObjectCategoryInformation & tags() const
Definition: vrfModelSetManager.h:286
DtMtlParameterDb * parameterDatabase() const
Definition: vrfModelSetManager.h:291
Instances of DtMtlParameterDb are a database of DtVrfObjectParameters* entries that are loaded from a...
Definition: mtlParameterDb.h:40
Descriptor for a DtComponentSystem. Specified a system being added to an entity. This does not actual...
Definition: componentSystemDescriptor.h:23
Base class to provide boost signal/slot management.
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:210
DefaultDescriptionFuncitons myDefaultDescriptionFunctions
Definition: vrfModelSetManager.h:321
boost::signals2::signal< void()> signal_modelSetChanged
Definition: vrfModelSetManager.h:309
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:122
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:76
DtSimulationObjectCategoryInformation myTags
Definition: vrfModelSetManager.h:323
Favorites myFavorites
Definition: vrfModelSetManager.h:316
bool autoSave() const
Definition: vrfModelSetManager.h:271
makVrv::DtDe & myDe
Definition: vrfModelSetManager.h:312
Definition: modelSet.h:35

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)