VR-Forces 4.7 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*);
73  const DtVariableBindingsSharedPtr& variableBindings() const
74  {
75  return myVariableBindings;
76  }
77 
79  virtual void setSearchPaths(const DtReaderWriter::SearchPaths&);
80  const DtReaderWriter::SearchPaths& searchPaths() const
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 bool loadFromDataFiles(const DtFilename& entities, const DtFilename& platforms, std::set<DtString>& iconLists, bool signal = true, DtModelSet* preloadModelSet = 0);
103 
105  virtual void mergeFavorites(const DtModelSet* f);
106 
108  virtual bool hasComponentDescriptor(const DtEntityMapperKey&, const DtString& type);
109 
111  virtual std::vector<DtComponentDescriptor*> componentDescriptorsFrom(const DtEntityMapperKey&, const DtString& type);
112 
114  virtual DtEntityType nameToType(const DtString&) const;
115 
117  virtual DtModelSetEntry* modelSetEntry(const DtEntityMapperKey& key) const;
118 
121  virtual std::string additionalKeywords(const DtEntityMapperKey&) const;
122  virtual void setAdditionalKeywords(const DtEntityMapperKey&, const std::string&, bool replace = false);
123 
125  virtual DtModelSetEntry* exactModelSetEntry(const DtEntityMapperKey& key) const;
126 
128  virtual bool canHoldSubordinates(const DtEntityMapperKey& key) const;
129 
131  virtual DtModelSetEntry* addModelSetEntry(const DtString& label, const DtEntityMapperKey&,
132  const DtRwNLengthStringVector& cats);
133 
135  virtual void removeModelSetEntry(const DtEntityMapperKey& e);
136 
138  virtual std::string nameFor(const DtEntityMapperKey&) const;
139 
141  virtual std::string keywordsFor(const DtEntityMapperKey&) const;
142 
144  virtual DtModelSet* modelSet() const;
145 
147  virtual void statePropertiesFor(const DtEntityType&, DtRwProperties&) const;
148 
150  virtual void parameterPropertiesFor(const DtEntityType&, DtRwProperties&);
151 
153  virtual void statePropertiesForPlatform(const DtString&, DtRwProperties&) const;
154 
156  virtual void parameterPropertiesForPlatform(const DtString&, DtRwProperties&) const;
157 
161  virtual void parameterPropertiesFor(
163 
165  virtual boost::shared_ptr<DtReaderWriter> rwProperty(const DtEntityType&, const std::string& prop) const;
166 
168  virtual void loadPlatforms(const DtString&);
169 
171  virtual void clearPlatforms();
172 
174  virtual DtRwDIGuyCharacterInfo getDIGuyCharacterInformation(const DtEntityMapperKey&);
175 
177  virtual DtVrfObjectParameters* lookupParametersFor(DtModelSetEntry* entry);
178  virtual DtVrfObjectParameters* lookupParametersFor(const DtEntityType&);
179 
182  virtual DtObjectType nextAvailableSimulationObjectGroupObjectType() const;
183 
185  virtual bool enabledRadarCoverageDescriptors(const DtEntityMapperKey&, std::vector<DtObjectSensorDescriptor*>&);
186 
187  typedef std::pair<DtString, unsigned> EquipmentTypeCountPair;
189  {
192  const DtString& c = DtString::nullString())
193  : objectType(ot), label(l), category(c) {};
194 
195  DtObjectType objectType;
198  };
199  typedef std::multimap<EquipmentTypeCountPair, ObjectTypeAndLabel> EquipmentTypeMap;
200 
201  virtual EquipmentTypeMap baseEquipment(const DtObjectType&);
202 
203  virtual void signalLoaded();
204 
205  protected:
207 
208  protected:
210  typedef std::map<std::string, boost::shared_ptr<DtReaderWriter> > PropertiesMap;
211 
213  {
216  };
217 
218  typedef std::map<DtString, PlatformStruct> PlatformsMap;
220 
221  typedef std::map<DtModelSetEntry*, DtVrfObjectParameters*> ParameterData;
225 
227 
228  protected:
230  {
231  public:
233  AdditionalKey(const AdditionalKey& orig) : DtEntityMapperKey(orig), myAdditionalKeywords(orig.myAdditionalKeywords) {};
234 
235  std::string myAdditionalKeywords;
236  };
237 
240 
242  tbb::recursive_mutex mySimulationModelSetLock;
243  };
244 
247  {
248  public:
249 
254 
258 
262  static DtSharedModelSetSignaler* findInstance(
264 
266  virtual ~DtSharedModelSetSignaler();
267 
271 
272  protected:
274 
275  private:
278  };
279 }

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)