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 
44 namespace makVrv
45 {
46  class DtDe;
47 }
48 
49 namespace makVrf
50 {
51  class DtEntityMapperKey;
52 
64  {
65  public:
67  virtual ~DtVrfModelSetManager();
68 
70  static DtVrfModelSetManager& instance(makVrv::DtDe& de);
71  static void registerInstance(makVrv::DtDe& de, DtVrfModelSetManager* messager);
72 
73  public:
76  virtual void setVariableBindings(const DtRwVariableBindings*);
77 
80  virtual void setSearchPaths(const DtReaderWriter::SearchPaths&);
81 
83  virtual bool load(const std::string&, bool reset = true, bool signal = true);
84 
86  virtual bool taskWillNotAbandonPlan(const DtEntityType& key, const DtSimTaskMessageType& taskType) const;
87 
89  virtual QString parameterTranslation(const DtString& name) const;
90 
93  virtual bool loadFromDirectory(const std::string& dataDirectory, const std::string& guiDirectory,
94  const std::string& platformsDirectory, bool reset = true, bool signal = true, bool preloadParameters = false);
95 
97  virtual DtModelSetEntry* modelSetEntry(const DtEntityMapperKey& key) const;
98 
100  virtual DtRwColor getDefaultColor(const DtEntityType&) const;
101 
103  virtual bool canHoldSubordinates(const DtEntityMapperKey& key) const;
104 
106  virtual std::vector<DtFilename> searchPaths() const;
107 
109  virtual std::vector<DtObjectType> subordinateObjects(const DtEntityMapperKey&) const;
110 
112  virtual bool isRandomized(const DtEntityMapperKey&) const;
113 
115  virtual bool hasComponentDescriptor(const DtEntityMapperKey&, const DtString& type);
116 
118  virtual void setSimulationModelSets(const std::vector<DtSimulationModelSet*>& sets);
119  virtual std::vector<DtSimulationModelSet*> simulationModelSets() const;
120 
122  virtual DtModelSetEntry* exactModelSetEntry(const DtEntityMapperKey& key) const;
123 
125  virtual void getSupportPoints(const DtEntityType& et,
126  DtVector& left, DtVector& right, DtVector& other);
127 
129  virtual Dt3dBoundingVolume getBoundingVolume(const DtEntityMapperKey& et);
130 
132  virtual DtEntityType nameToType(const DtString&) const;
133 
135  virtual DtFilename iconForList(const DtEntityType&, const DtString& list) const;
136 
138  virtual bool isFavorite(const DtEntityMapperKey& key, int force) const;
139 
141  virtual std::set<DtString> categories() const;
142 
144  virtual DtModelSetEntry* findByLabel(const DtString&) const;
145 
147  virtual DtModelSetEntry* addModelSetEntry(const DtString& label, const DtEntityMapperKey&,
148  const DtRwNLengthStringVector& cats);
149 
151  virtual std::vector<DtString> taskGroupsForTask(const DtEntityType& key, const DtSimTaskMessageType&) const;
152 
155  virtual void addSimulationObjectGroupModelSetEntry(DtSimulationObjectGroupModelSetEntry* entry);
156 
158  virtual DtSimulationObjectGroupModelSetEntry findSimulationObjectGroup(const std::string& sogName) const;
159 
161  virtual DtObjectType nextAvailableSimulationObjectGroupObjectType() const;
162 
164  virtual void removeModelSetEntry(const DtEntityMapperKey& e);
165 
167  virtual std::string nameFor(const DtEntityMapperKey&) const;
168 
170  virtual std::string keywordsFor(const DtEntityMapperKey&) const;
171 
173  virtual bool canEmbedIntoTerrain(const DtEntityMapperKey&) const;
174 
176  virtual bool canEmbark(const DtEntityMapperKey&) const;
177 
179  virtual bool canAttachTo(const DtEntityMapperKey&) const;
180 
182  virtual bool canEmbarkUpon(const DtEntityMapperKey&) const;
183 
185  virtual bool organized(const DtEntityMapperKey&) const;
186 
188  virtual int displayObjectImage(const DtEntityMapperKey&) const;
189 
192  virtual std::string additionalKeywords(const DtEntityMapperKey&) const;
193  virtual void setAdditionalKeywords(const DtEntityMapperKey&, const std::string&, bool replace = false);
194 
196  virtual void statePropertiesForPlatform(const DtString&, DtRwProperties&) const;
197 
199  virtual void parameterPropertiesForPlatform(const DtString&, DtRwProperties&) const;
200 
202  virtual void statePropertiesFor(const DtEntityType&, DtRwProperties&) const;
203 
205  virtual void parameterPropertiesFor(const DtEntityType&, DtRwProperties&);
206 
208  template <class T>
209  boost::optional<T> parameterPropertyFor(const DtEntityMapperKey& e,
210  const std::string& propertyName) const
211  {
212  DtRwProperties props("");
213 
215  settings->parameterPropertiesFor(DtEntityMapperKey(e), props);
216 
217  return findPropertyValue<T>(props, propertyName.c_str());
218  }
219 
222  virtual DtString defaultDescriptionFor(const DtEntityType&) const;
223  virtual DtString defaultDescriptionFor(const DtVrfObjectParameters*) const;
224 
226  virtual DtString systemDescriptionFor(const DtVrfObjectParameters*, const DtString& systemCategory) const;
227 
228  typedef boost::function<DtString (const DtVrfObjectParameters*)> DefaultDescriptionFunciton;
229  virtual void setDefaultDescriptionProvider(const DtString& parameterType, DefaultDescriptionFunciton);
230 
232  virtual DtString defaultDescriptionFunction(const DtVrfObjectParameters*) const;
233 
236  virtual void setModelSet(DtModelSet*);
237 
240  virtual void setFavorite(const DtEntityMapperKey& key, bool b);
241 
244  virtual DtModelSet* loadFavoritesFor(const std::string&);
245 
248  virtual void mergeFavoritesInto(DtModelSet* favorite, DtModelSet* modelSet);
249 
251  virtual void mergeFavorites(DtModelSet* favorites);
252 
254  virtual DtModelSetEntry* favoriteFor(DtModelSetEntry*) const;
255 
257  virtual DtModelSet* modelSet();
258 
260  virtual DtModelSet modelSet() const;
261 
263  virtual DtRwVisualMetaData visualMetaData(const DtEntityType&);
264 
265  void setAutoSave(bool b)
266  {
267  myAutoSave = b;
268  }
269 
270  bool autoSave() const
271  {
272  return myAutoSave;
273  }
274 
276  virtual DtSharedModelSet::EquipmentTypeMap baseEquipment(const DtObjectType&);
277 
279  virtual bool load(const DtScenarioExplorer&, bool = true);
280 
282  virtual void initializeCountries();
283 
284  virtual void setTags(const DtSimulationObjectCategoryInformation&);
286  {
287  return myTags;
288  }
289 
290  boost::signals2::signal<void ()> signal_tagsSet;
291 
292  protected:
294  virtual void clearModelSets();
295 
297  virtual DtString systemDescriptionFor(const DtComponentSystemDescriptorList&, const DtString& systemCategory) const;
298  virtual DtString systemDescriptionFor(const DtComponentSystemDescriptor*, const DtString& systemCategory) const;
299 
300  public:
301  boost::signals2::signal<void ()> signal_modelSetChanged;
302 
303  protected:
306 
307  typedef std::map<std::string, DtModelSet*> Favorites;
309 
311 
312  typedef std::map<std::string, DefaultDescriptionFunciton> DefaultDescriptionFuncitons;
316  };
317 }
DtModelSet * myModelSet
Definition: vrfModelSetManager.h:310
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:63
boost::signals2::signal< void()> signal_tagsSet
Definition: vrfModelSetManager.h:290
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
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:312
void setAutoSave(bool b)
Definition: vrfModelSetManager.h:265
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:251
std::map< std::string, DtModelSet * > Favorites
Definition: vrfModelSetManager.h:307
#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:63
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
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:305
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:314
Definition: sharedModelSet.h:50
static DtSharedSettingsManager & instance(DtDe &)
Get an instance of the shared settings manager from the DtDe;.
boost::function< DtString(const DtVrfObjectParameters *)> DefaultDescriptionFunciton
Definition: vrfModelSetManager.h:228
Contains makVrv::DtReadSettingsLock class.
const DtSimulationObjectCategoryInformation & tags() const
Definition: vrfModelSetManager.h:285
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:209
DefaultDescriptionFuncitons myDefaultDescriptionFunctions
Definition: vrfModelSetManager.h:313
boost::signals2::signal< void()> signal_modelSetChanged
Definition: vrfModelSetManager.h:301
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:72
DtSimulationObjectCategoryInformation myTags
Definition: vrfModelSetManager.h:315
Favorites myFavorites
Definition: vrfModelSetManager.h:308
bool autoSave() const
Definition: vrfModelSetManager.h:270
makVrv::DtDe & myDe
Definition: vrfModelSetManager.h:304
Definition: modelSet.h:35

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)