VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
sharedModelSet.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
16 #include <vlutil/vlFilename.h>
20 #include <vrvUtil/event_signal.h>
21 #include <vrvCore/DtStateView.h>
22 #include <vrvCore/DtEntityState.h>
23 #include <matrix/3dBoundingVolume.h>
24 #include <tbb/recursive_mutex.h>
25 
26 #include <map>
27 
28 class DtModelSet;
29 class DtModelSetEntry;
37 
38 namespace makVrf
39 {
40  class DtEntityMapperKey;
41 
45  {
46  public:
52 
56  static std::string className();
57 
59  virtual ~DtSharedModelSet();
60 
62  virtual void setModelSet(DtModelSet*);
63 
65  virtual void clearModelSet();
66 
68  virtual bool load(const DtFilename&, std::set<DtString>& iconLists, bool signal = false);
69 
72  virtual void setVariableBindings(const DtRwVariableBindings*);
74  {
75  return myVariableBindings;
76  }
77 
79  virtual void setSearchPaths(const DtReaderWriter::SearchPaths&);
81  {
82  return mySearchPaths;
83  }
84 
87  virtual void addSimulationObjectGroupModelSetEntry(DtSimulationObjectGroupModelSetEntry* entry);
88 
90  virtual DtSimulationObjectGroupModelSetEntry findSimulationObjectGroup(const std::string& sogName) const;
91 
93  virtual void getSupportPoints(const DtEntityType& et,
94  DtVector& left, DtVector& right, DtVector& other);
95 
96  virtual std::string getNavDataPath(const DtEntityType& et);
97 
99  virtual Dt3dBoundingVolume getBoundingVolume(const DtEntityMapperKey& et);
100 
102  virtual double getMaximumSpeed(const DtEntityType& et);
103 
106  virtual double getMinimumSpeed(const DtEntityType& et);
107 
109  virtual double getDefaultOrderedSpeed(const DtEntityType& et);
110 
112  virtual double getMaximumAcceleration(const DtEntityType& et);
113 
115  virtual double getMaximumDeceleration(const DtEntityType& et);
116 
118  virtual bool loadFromDataFiles(const DtFilename& entities, const DtFilename& platforms, std::set<DtString>& iconLists, bool signal = true, DtModelSet* preloadModelSet = 0);
119 
121  virtual void mergeFavorites(const DtModelSet* f);
122 
124  virtual bool hasComponentDescriptor(const DtEntityMapperKey&, const DtString& type);
125 
127  virtual std::vector<DtComponentDescriptor*> componentDescriptorsFrom(const DtEntityMapperKey&, const DtString& type);
128 
130  virtual DtEntityType nameToType(const DtString&) const;
131 
133  virtual DtModelSetEntry* modelSetEntry(const DtEntityMapperKey& key) const;
134 
137  virtual std::string additionalKeywords(const DtEntityMapperKey&) const;
138  virtual void setAdditionalKeywords(const DtEntityMapperKey&, const std::string&, bool replace = false);
139 
141  virtual DtModelSetEntry* exactModelSetEntry(const DtEntityMapperKey& key) const;
142 
144  virtual bool canHoldSubordinates(const DtEntityMapperKey& key) const;
145 
147  virtual DtModelSetEntry* addModelSetEntry(const DtString& label, const DtEntityMapperKey&,
148  const DtRwNLengthStringVector& cats);
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 DtModelSet* modelSet() const;
161 
163  virtual void statePropertiesFor(const DtEntityType&, DtRwProperties&) const;
164 
166  virtual void parameterPropertiesFor(const DtEntityType&, DtRwProperties&);
167 
169  virtual void statePropertiesForPlatform(const DtString&, DtRwProperties&) const;
170 
172  virtual void parameterPropertiesForPlatform(const DtString&, DtRwProperties&) const;
173 
177  virtual void parameterPropertiesFor(
179 
181  virtual boost::shared_ptr<DtReaderWriter> rwProperty(const DtEntityType&, const std::string& prop) const;
182 
185  bool addStateProperty(const DtEntityType& key, DtPropertyInterface* prop) const;
186 
188  virtual void loadPlatforms(const DtString&);
189 
191  virtual void clearPlatforms();
192 
194  virtual DtRwDIGuyCharacterInfo getDIGuyCharacterInformation(const DtEntityMapperKey&);
195 
197  virtual DtVrfObjectParameters* lookupParametersFor(DtModelSetEntry* entry);
198  virtual DtVrfObjectParameters* lookupParametersFor(const DtEntityType&);
199 
202  virtual DtObjectType nextAvailableSimulationObjectGroupObjectType() const;
203 
205  virtual bool enabledRadarCoverageDescriptors(const DtEntityMapperKey&, std::vector<DtObjectSensorDescriptor*>&);
206 
207  typedef std::pair<DtString, unsigned> EquipmentTypeCountPair;
209  {
212  const DtString& c = DtString::nullString())
213  : objectType(ot), label(l), category(c) {};
214 
218  };
219  typedef std::multimap<EquipmentTypeCountPair, ObjectTypeAndLabel> EquipmentTypeMap;
220 
221  virtual EquipmentTypeMap baseEquipment(const DtObjectType&);
222 
223  virtual void signalLoaded();
224 
225  protected:
227 
228  protected:
230  typedef std::map<std::string, boost::shared_ptr<DtReaderWriter> > PropertiesMap;
231 
233  {
236  };
237 
238  typedef std::map<DtString, PlatformStruct> PlatformsMap;
240 
241  typedef std::map<DtModelSetEntry*, DtVrfObjectParameters*> ParameterData;
245 
247 
248  protected:
250  {
251  public:
253  AdditionalKey(const AdditionalKey& orig) : DtEntityMapperKey(orig), myAdditionalKeywords(orig.myAdditionalKeywords) {};
254 
255  std::string myAdditionalKeywords;
256  };
257 
260 
262  tbb::recursive_mutex mySimulationModelSetLock;
263  };
264 
267  {
268  public:
269 
274 
278 
282  static DtSharedModelSetSignaler* findInstance(
284 
286  virtual ~DtSharedModelSetSignaler();
287 
291 
292  protected:
294 
295  private:
298  };
299 }
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:59
std::pair< DtString, unsigned > EquipmentTypeCountPair
Definition: sharedModelSet.h:207
a read settings lock on a setting object.
Definition: DtReadSettingsLock.h:51
Definition: entityMapperKey.h:23
DtOrderedKeyList< AdditionalKey * > AdditionalKeywords
Definition: sharedModelSet.h:258
Virtual base class.
Definition: DtVirtualBaseClass.h:22
DtModelSet * myModelSet
Definition: sharedModelSet.h:229
A signaler for the shared model set changes.
Definition: sharedModelSet.h:266
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
DtReaderWriter::SearchPaths mySearchPaths
Definition: sharedModelSet.h:246
AdditionalKey(const DtEntityMapperKey &kw)
Definition: sharedModelSet.h:252
DtVariableBindingsSharedPtr myVariableBindings
Definition: sharedModelSet.h:261
ObjectTypeAndLabel(const DtObjectType &ot, const DtString &l, const DtString &c=DtString::nullString())
Definition: sharedModelSet.h:211
List of DtComponentSystemDescriptor instances.
Definition: componentSystemDescriptorList.h:20
std::map< DtString, PlatformStruct > PlatformsMap
Definition: sharedModelSet.h:238
std::multimap< EquipmentTypeCountPair, ObjectTypeAndLabel > EquipmentTypeMap
Definition: sharedModelSet.h:219
Contains makVrv::DtStateView class.
Instances of DtComponentDescriptorList are readable/writeable lists of DtComponentDescriptor objects...
Definition: componentDescriptorList.h:22
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
*virtual const DtObjectType & objectType() const
DtObjectSensorDescriptor; descriptor for the DtObjectSensor component.
Definition: objectSensorDescriptor.h:26
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:45
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
std::map< std::string, boost::shared_ptr< DtReaderWriter > > PropertiesMap
Definition: sharedModelSet.h:230
DtBoost::shared_ptr< DtRwVariableBindings > DtVariableBindingsSharedPtr
Definition: rwVariableBindings.h:149
Contains makVrv::event_signal class.
The base class for all shared settings.
Definition: DtSharedSettings.h:45
Description: A model is a set of items that defines a model to create in the back-end from the front-...
Definition: simulationObjectGroupModelSetEntry.h:138
Interface class used to define minimal interface for a property.
Definition: propertyInterface.h:48
Definition: objectType.h:27
AdditionalKeywords myAdditionalKeywords
Definition: sharedModelSet.h:259
The event queue interface is a cross thread event queue used to emit event_signal across thread bound...
Definition: DtEventQueueInterface.h:29
ReaderWriter object that maintains a list of reader-writer variable bindings.
Definition: rwVariableBindings.h:27
Description: A model is a set of items that defines a model to create in the back-end from the front-...
Definition: modelSetEntry.h:24
tbb::recursive_mutex mySimulationModelSetLock
Definition: sharedModelSet.h:262
makVrv::event_signal< void()> signal_modelSetLoaded
Definition: sharedModelSet.h:289
DtVrfObjectParameters * parameters
Definition: sharedModelSet.h:235
ParameterData myParameterData
Parameter data is mutable so that we can cache retrieved data in paramegerDataFor().
Definition: sharedModelSet.h:244
Contains the DtSharedSettings class declaration.
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DtString category
Definition: sharedModelSet.h:217
Shared information about the current model set and entities/platforms that are available to it...
Definition: sharedModelSet.h:44
Contains makVrv::DtEntityState class.
a write settings lock on a setting object.
Definition: DtWriteSettingsLock.h:50
ObjectTypeAndLabel()
Definition: sharedModelSet.h:210
Definition: sharedModelSet.h:232
The DtRwDIGuyCharactertInfo class is a readable/writable class that can store itself and read itself ...
Definition: rwDIGuyCharacterInfo.h:31
Definition: sharedModelSet.h:249
Definition: sharedModelSet.h:208
PropertiesMap properties
Definition: sharedModelSet.h:234
const DtVariableBindingsSharedPtr & variableBindings() const
Definition: sharedModelSet.h:73
const DtReaderWriter::SearchPaths & searchPaths() const
Definition: sharedModelSet.h:80
A list of properties.
Definition: rwProperties.h:126
std::map< DtModelSetEntry *, DtVrfObjectParameters * > ParameterData
Definition: sharedModelSet.h:241
PlatformsMap myAvailablePlatforms
Definition: sharedModelSet.h:239
Definition: modelSet.h:28
DtString label
Definition: sharedModelSet.h:216

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)