VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfVisualsManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include <vrfGuiCore/vrfGuiCore.h>
12 #include <vrvUtil/signalslib.h>
15 #include <vlpi/entityType.h>
16 
20 #include <vlutil/vlFilename.h>
21 #include <tbb/recursive_mutex.h>
22 
23 namespace makVrv
24 {
25  class DtDe;
26  class DtModelDefinitionManager;
27  class DtModelDefinition;
28  class DtVisualizerDefinitionSet;
29  class DtVisualizerDefinition;
30 }
31 
34 
35 static tbb::recursive_mutex theVisualMutexLock;
36 
37 namespace makVrf
38 {
41  {
42  public:
44  : makVrv::DtEntityTypeMapper(name)
45  , myMapperType(t)
46  {
47  }
48 
49  virtual ~DtVrfEntityTypeMapper();
50 
51  void setFilename(const DtFilename& f)
52  {
53  myFilename = f;
54  }
55 
56  const DtFilename& filename() const
57  {
58  return myFilename;
59  }
60 
61  const NameList* findMappings( const DtEntityType& type, bool exact = false ) const;
62 
64  virtual void setFromRecord(const makArchives::DtEntityTypeMappingRecord& record);
65 
67  virtual void addMapping(const DtEntityType& type,
68  const makVrv::DtUnicode& definitionName);
69 
71  virtual void removeMapping(const DtEntityType& type,
72  const makVrv::DtUnicode& value);
73 
74  virtual void mergeFromRecord(const makArchives::DtEntityTypeMappingRecord& record);
75 
76  bool isMappedDefinition(const makVrv::DtUnicode& def) const
77  {
78  return (myDefinitionsMap.find(def) != myDefinitionsMap.end());
79  }
80 
82  {
83  DefinitionsMap::const_iterator iter = myDefinitionsMap.find(def);
84 
85  if (iter != myDefinitionsMap.end())
86  {
87  return iter->second;
88  }
89 
90  return 0;
91  }
92 
93  typedef std::map<makVrv::DtUnicode,int> DefinitionsMap;
94  const DefinitionsMap& definitionsMapped() const { return myDefinitionsMap; };
95 
97  virtual void mergeTypeMappingsFromPath(makVrv::DtDe&, const std::string& path);
98 
99  protected:
100  virtual void setupDefinitionsMap();
101 
102  protected:
103  DtFilename myFilename;
106  };
107 
111  {
112  public:
113  class Visuals;
114 
117 
119  virtual ~DtVrfVisualsManager();
120 
122  static DtVrfVisualsManager& instance(makVrv::DtDe&);
123  static void registerInstance(makVrv::DtDe&, DtVrfVisualsManager*);
124 
128  virtual bool loadVisuals(DtSimulationModelSet*, bool createIfMissing = false, bool editMode = false);
129 
131  virtual bool loadVisuals(const DtFilename&, const DtString& rootName = "");
132 
138  virtual bool createVisuals(const DtSimulationModelSet*, bool andLoad = true,
139  Visuals* visualsToUpgradeFrom = 0, const DtFilename& sourceDefinitionsDir = DtFilename::nullFilename());
140 
143  virtual bool getSystemVisualizerDefinitionAndElementTypeMap(const DtEntityType&, makVrv::DtUnicode&,
145 
147  virtual bool isUnknown(const std::vector<makVrv::DtUnicode>& entities) const;
148  virtual bool isUnknown(const makVrv::DtUnicode& entities) const;
149 
151  virtual makVrv::DtUnicode unknownString() const;
152 
154  virtual void updateUnknowns();
155 
156  const std::set<makVrv::DtUnicode> unknownStrings() const
157  {
158  return myUnknowns;
159  }
160 
161 
163  virtual void clear();
164 
166  virtual void clearSimulationModelSetVisuals();
167 
169  virtual void setupAdditionalVisualizers();
170 
172  virtual void upgradeSpotReportsDictionary(const DtFilename& toDirectory, Visuals&, bool force = false, bool mergeAttributes = false);
173 
177  virtual bool upgradeVisuals(const DtSimulationModelSet& oldSet, const DtSimulationModelSet& newSet);
178 
181  virtual bool loadVisuals(const DtScenarioExplorer& explorer, bool createIfMissing = false, bool force = false, bool editMode = false);
182 
184  virtual const Visuals* visualsFor(const DtSimulationModelSet&) const;
185  virtual Visuals* visualsFor(const DtSimulationModelSet&);
186  virtual Visuals* visualsFor(const std::string&);
187  virtual const Visuals* visualsFor(const std::string&) const;
188 
190  virtual makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes elementTypeFor(const DtEntityType&);
191 
193  virtual void mergeVisualsIntoSystemVisuals(const Visuals*);
194 
196  virtual void pruneFromSystemVisuals(const Visuals*);
197 
199  virtual void merge(const DtEntityType&, const Visuals*, bool toSystem = true, const DtString& newElementDefName = "", const DtEntityType& newType = DtEntityType());
200 
202  virtual void mergeElementDefinitionToSystem(const DtEntityType&);
203 
206  virtual bool saveSystemVisualsAsAppData(const DtFilename& directory, bool saveHierarchyData = true);
207 
210  virtual void createSpotReportDefinitionFor(const DtEntityType&);
211 
214  virtual bool updateAndAddMatchTypeVisuals(const DtEntityType& sourceType, const DtEntityType& matchType, bool andSystem = true);
215 
217  virtual void updateVisualsFor(const DtEntityType&);
218 
222  virtual void removeVisualsFor(const DtEntityType&, bool andSystem = true);
223 
225  virtual bool removeMappingsFor(const DtEntityType&, bool andSystem = true);
226 
228  virtual void removeElementDefinition(const DtEntityType&, bool andSystem = true);
229 
231  virtual Visuals* visualsFor(const DtEntityType&);
232 
234  virtual void setDefaultVisuals(const std::string&);
235  const std::string& defaultVisuals() const;
236 
238  virtual void setCoreRootName(const std::string&);
239  virtual const std::string& coreRootName() const;
240 
241  virtual void resetStartupCounts(makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes);
242 
243  virtual int setDebugLevel(int);
244 
245  Visuals* systemDefaulVisuals() const { return mySystemDefaultVisuals; };
246 
247  typedef boost::unordered_map<makVrv::DtSharedSimulationSettings::MapperType, DtVrfEntityTypeMapper*> MappersMap;
248 
250  {
251  public:
252  Visuals();
253  Visuals(makVrv::DtDe& de, bool useNewStructure, bool inAppData);
254  Visuals(const Visuals&);
255  virtual ~Visuals();
256 
257  Visuals& operator=(const Visuals&);
258  void addKeyForDefinition(const DtEntityType&, makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes,
259  const makVrv::DtUnicode&);
260 
263  const makVrv::DtUnicode&) const;
264  void mergeModelDefinitions(const makVrv::DtModelDefinitionManager*);
265  void pruneModelDefinitions(const makVrv::DtModelDefinitionManager*);
266 
268  void initializeDefaults(const DtFilename& appDataDir = DtFilename::nullFilename());
269 
271  void initializeFrom(const DtFilename&, bool useNewStructure);
272 
274  void cleanup();
275 
277  void addMapper( makVrv::DtSharedSimulationSettings::MapperType mapperType, const std::string& mapperName,
278  const std::string& extension );
279 
281  void initializeMapper( makVrv::DtSharedSimulationSettings::MapperType mapperType, bool fromNewStructure = true, const DtString& definitionsDirectory = DtFilename::nullFilename() );
282 
285  bool getSystemVisualizerDefinitionAndElementTypeMap(const DtEntityType&, makVrv::DtUnicode&,
287 
288  void modelDefinitionsFromVisualizerSet(makVrv::DtModelDefinitionManager*, const makVrv::DtVisualizerDefinitionSet&) const;
289 
292 
294  bool save(const DtFilename& directory);
295 
299  bool save(const DtFilename&, makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes, bool andSaveHierarchy = false,
300  bool intoManagerSubDirectory = false, const DtFilename& definitionSubDirectory = "", bool mappedOnly = true);
301 
303  makVrv::DtUnicode findValidElementDefinition(const makVrv::DtEntityTypeMapper::NameList*,
305 
307  void install();
308 
309  void setDirectory(const DtFilename&);
310  void setRootName(const DtString&);
311 
313  bool load(const DtFilename&, const DtString& rootName);
314 
316  bool load(const DtFilename&, makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes, bool andLoadHierarchy = false,
317  bool useManagerSubStructure = false);
318 
320  bool installDefinitionRecordsFrom(makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes);
321 
323  void loadOrCreateSpotReports(const DtFilename&, const DtString& root, bool install = true);
324 
325  void pushMappers();
326  void popMappers();
327 
328  bool loadMapFiles();
329 
331  void removeMappings(makVrv::DtEntityTypeMapper&, const makArchives::DtEntityTypeMappingRecord&) const;
332 
334  bool upgradeSpotReportsFromDictionary(const DtFilename&, bool force = false, bool mergeAttributes = false);
335  bool upgradeSpotReportsFromDictionary(const DtFilename&, makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes,
336  const makVrv::DtUnicode& unknownName, bool force = false, bool mergeAttributes = false, const std::string& possibleMergeName = "");
337 
339  bool addElementDefinitionToSameDictionary(const DtEntityType& sourceType, const makVrv::DtUnicode& elementDefinition, const DtString& newDefinitionName,
340  bool toSystem = false);
341 
344  bool createVisualCopyOf(const DtEntityType& sourceType, const DtEntityType& destinationType, const DtString& newDefinitionName,
345  bool toSystem = false);
346 
347  void initializeSpotReportsHierarchy();
348 
352  void mergeAttributesFrom(const makVrv::DtElementDefinitionNew* source, makVrv::DtElementDefinitionNew* spotReport,
353  const std::vector<int>& supportedSets, bool mergeSymbolDecoration = false, const std::set<std::string>& ignore = std::set<std::string>());
354  bool mergeItemsFrom(const makVrv::DtElementDefinitionNew* source, makVrv::DtElementDefinitionNew* spotReport,
355  const std::vector<int>& supportedSets);
356  void copyAttributesFrom(const makVrv::DtElementDefinitionNew* source, makVrv::DtElementDefinitionNew* spotReport,
357  const std::vector<int>& supportedSets);
358 
360  bool spotReportHierarchyNeedsUpgrade(makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes) const;
361 
362  bool isUnusedVisualizer(const makVrv::DtVisualizerDefinition* visDef) const;
363 
365  bool isMappedDefinition(const makVrv::DtUnicode&);
366 
369 
372  makArchives::DtElementsRecord* recHierRet = 0);
373 
375  bool needsLoading() const;
377 
380  bool updateAndAddMatchTypeVisuals(const DtEntityType& sourceType, const DtEntityType& matchType, bool andSystem = true);
381 
383  DtFilename modelDefinitionsPath(const DtFilename& root) const;
384 
386  DtFilename mapperDirectory(const DtFilename& root, makVrv::DtSharedSimulationSettings::MapperType type) const;
387 
389  DtFilename elementDefinitionDirectory(const DtFilename& root, makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes type) const;
390 
392  std::set<std::string> hierarchyElementsForVisuals();
393 
394  std::set<std::string> systemHierarchyElementsForVisuals(makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes);
395 
398  bool haveMappings = false);
399 
401  void merge(const Visuals*);
402 
404  void merge(const DtEntityType&, const Visuals*, bool toSystem = true, const DtString& newElementDefName = "", const DtEntityType& newType = DtEntityType());
405 
407  void mergeElementDefinitionToSystem(const DtEntityType&);
408 
411  virtual bool saveAsAppData(const DtFilename& definitionsDirectory, bool saveHierarchyData = true);
412 
414  bool installDefinitionRecordsFrom(makVrv::DtElementDefinitionManager* thisMgr,
416 
419  makArchives::DtElementsRecord& spoReportHierarchy);
420 
423  const Visuals* source);
424 
427 
430 
432  void saveMappersTo(const DtFilename&, bool useNewDirectoryStructure = false);
433 
435  void prune(const Visuals*);
436 
438  void saveVisualElementsFor(makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes type);
439 
441  void saveModelDefinitions();
442 
444  void changeMappingType(const DtEntityType& from, const DtEntityType& to, bool toSystem = true);
445 
448  void removeSymbolDecorationAttribute(makVrv::DtElementDefinitionNew*, const std::vector<int>& supportedSets);
449  void addSymbolDecorationAttribute(makVrv::DtElementDefinitionNew*, const std::vector<int>& supportedSets);
450 
452  void saveMapper(const DtFilename&, makVrv::DtSharedSimulationSettings::MapperType);
453 
456 
458  void install(const DtEntityType&, bool mapOnly = false);
459 
461  void createSpotReportDefinitionFor(const DtEntityType&);
462 
464  void upgradeElementsForDefinition(const makVrv::DtUnicode& defs, makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes);
465 
469  void removeVisualsFor(const DtEntityType&, bool fromSystem = true);
470 
472  bool removeMappingsFor(const DtEntityType&, bool andSystem = true);
473 
475  void updateElementDefinitions(makArchives::DtElementsRecord& destination, const makArchives::DtElementsRecord& source, const std::string& prepend);
476 
478  void removeElementDefinition(const DtEntityType&, bool fromSystem = true);
479  void removeElementsForDefinition(const makVrv::DtUnicode& defs, makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes,
480  bool fromSystem = true);
481 
483  bool hasType(const DtEntityType&) const;
484 
486  makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes elementTypeFor(const DtEntityType&);
487 
489  const makVrv::DtEntityTypeMapper::NameList* definitionsMapped(const DtEntityType&, makVrv::DtSharedSimulationSettings::MapperType&);
490  makVrv::DtSharedSimulationSettings::MapperType mapperTypeFor(const DtEntityType&) const;
491 
492  DtFilename rootDirectoryForMapper(makVrv::DtSharedSimulationSettings::MapperType mapper) const;
493  DtFilename rootDirectoryForManager(makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes mapper) const;
494  virtual bool containsUnknown(const makVrv::DtEntityTypeMapper::NameList* names) const;
495 
496  typedef std::map<makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes, int> LastWriteTimes;
498 
499  void setLoadAllModelDefinitions(bool b) { myLoadAllModelDefinitions = b; };
500  bool loadAllModelDefinitions() const { return myLoadAllModelDefinitions; };
501 
502  DtVrfElementDefinitionTypeManager* elementDefinitionManager;
505  std::vector<MappersMap> pushedMappers;
507  DtFilename myDirectory;
512  };
513 
514 
516  virtual void initializeSystemVisuals(const DtFilename& definitionsDir = DtFilename::nullFilename(), bool andInstall = true,
517  bool setupSpotReports = true);
518 
519  boost::signals2::signal<void ()> signal_visualsLoaded;
520  boost::signals2::signal<void (const DtFilename&)> signal_visualsLoadedFrom;
521  boost::signals2::signal<void (DtSimulationModelSet*)> signal_spotReportVisualsLoadedFromSMS;
522  boost::signals2::signal<void (DtSimulationModelSet*)> signal_visualsLoadedFromSMS;
523 
524  protected:
525 
527  virtual void setupAdditionalTacticalGraphicsVisualizers();
528 
530  virtual void setupCloudLayers();
531  virtual void setupCloudDisplayLayer(const std::string&, const DtEntityType&, int r, int g, int b, int a);
532 
534  virtual void setupNavigationAreaVisualizer();
535 
537  virtual void setupBoundingVolumes();
538 
540  virtual void setupObjectConsoleWarngForTacticalGraphics();
541 
543  virtual void setupBoundingVolumes(const std::string& root);
544 
546  virtual void setupAdditionalSpotReportVisualizers();
547 
550  virtual void setupAdditionalSpotReportVisualizers(const makVrv::DtUnicode&);
551 
553  virtual void setupRangeRings();
554  virtual void addRangeRingsFor(int managerType);
555 
557  virtual void setupSensorContactLines();
558  virtual void addSensorContactLinesFor(int managerType);
559 
560  virtual void setupAdditionalAggregateVisualizers();
561 
562  protected:
564 
566 
568  {
570  ModelSetVisual(const DtFilename& f, const Visuals& v) : filename(f), visuals(v) {};
571  ModelSetVisual(const ModelSetVisual& orig) : filename(orig.filename), visuals(orig.visuals) {};
572  ModelSetVisual& operator=(const ModelSetVisual& orig) { filename = orig.filename; visuals = orig.visuals; return *this; };
573 
574  DtFilename filename;
576  };
577 
578  typedef std::vector<ModelSetVisual> SimulationModelSetVisuals;
581 
582  std::string myDefaultVisuals;
583  std::string myCoreRootName;
584 
585  std::set<DtFilename> mySystemVisuals;
586 
587  std::set<makVrv::DtUnicode> myUnknowns;
588  };
589 }
DtString myRootName
Definition: vrfVisualsManager.h:508
Contains the DtSharedSimulationSettings class declaration.
BuiltInElementTypes
These types are all automatically registered when the manager is created.
Definition: DtElementDefinitionManager.h:505
Virtual base class.
Definition: DtVirtualBaseClass.h:22
A unicode string.
Definition: DtUnicode.h:33
Definition: vrfVisualsManager.h:567
The model definition manager is responsible to managing all of the model definitions the IG knows abo...
Definition: DtModelDefinitionManager.h:79
DtVrfEntityTypeMapper(const std::string &name, makVrv::DtSharedSimulationSettings::MapperType t)
Definition: vrfVisualsManager.h:43
An EntityType to Definition mapper.
Definition: DtEntityTypeMapper.h:33
ModelSetVisual(const DtFilename &f, const Visuals &v)
Definition: vrfVisualsManager.h:570
const DtFilename & filename() const
Definition: vrfVisualsManager.h:56
boost::signals2::signal< void(DtSimulationModelSet *)> signal_visualsLoadedFromSMS
Definition: vrfVisualsManager.h:522
MapperType
Definition: DtSharedSimulationSettings.h:47
std::vector< DtUnicode > NameList
Definition: DtEntityTypeMapper.h:37
DtFilename filename
Definition: vrfVisualsManager.h:572
DtFilename myFilename
Definition: vrfVisualsManager.h:103
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
const char * filename
Definition: ioapi.h:38
bool myInAppData
Definition: vrfVisualsManager.h:511
std::string myDefaultVisuals
Definition: vrfVisualsManager.h:582
void setLoadAllModelDefinitions(bool b)
Definition: vrfVisualsManager.h:499
boost::signals2::signal< void(const DtFilename &)> signal_visualsLoadedFrom
Definition: vrfVisualsManager.h:520
The makVrv::DtVisualizerDefinitionSet is a collection of makVrv::DtVisualizerDefinition instances...
Definition: DtVisualizerDefinitionSet.h:20
const std::set< makVrv::DtUnicode > unknownStrings() const
Definition: vrfVisualsManager.h:156
std::set< makVrv::DtUnicode > myUnknowns
Definition: vrfVisualsManager.h:587
Visuals visuals
Definition: vrfVisualsManager.h:575
Visuals * mySystemDefaultVisuals
Definition: vrfVisualsManager.h:565
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
Manager which owns element definitions.for one type of element Use the makVrv::DtElementDefinitionTyp...
Definition: DtElementDefinitionManager.h:44
void setFilename(const DtFilename &f)
Definition: vrfVisualsManager.h:51
makVrv::DtDe * myDe
Definition: vrfVisualsManager.h:506
makVrv::DtSharedSimulationSettings::MapperType myMapperType
Definition: vrfVisualsManager.h:105
SimulationModelSetVisuals mySimulationModelSetVisuals
Definition: vrfVisualsManager.h:579
std::string myCoreRootName
Definition: vrfVisualsManager.h:583
boost::unordered_map< makVrv::DtSharedSimulationSettings::MapperType, DtVrfEntityTypeMapper * > MappersMap
Definition: vrfVisualsManager.h:245
bool isMappedDefinition(const makVrv::DtUnicode &def) const
Definition: vrfVisualsManager.h:76
std::map< makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes, int > LastWriteTimes
Definition: vrfVisualsManager.h:496
Contains makVrv::DtVirtualBaseClass class.
The DtVrfVisualsManager class is a class that allows for the loading of visuals (definitions, mappings and model definitions) for a given simulation model set.
Definition: vrfVisualsManager.h:110
std::vector< const DtElementDefinitionNew * > ElementDefinitions
List of new element definitions.
Definition: DtElementDefinitionManager.h:52
makVrv::DtDe & myDe
Definition: vrfVisualsManager.h:563
LastWriteTimes myLastWriteTimes
Definition: vrfVisualsManager.h:497
DtFilename myDirectory
Definition: vrfVisualsManager.h:507
boost::signals2::signal< void(DtSimulationModelSet *)> signal_spotReportVisualsLoadedFromSMS
Definition: vrfVisualsManager.h:521
bool myUseNewSystemDataStructure
Definition: vrfVisualsManager.h:580
DefinitionsMap myDefinitionsMap
Definition: vrfVisualsManager.h:104
std::vector< MappersMap > pushedMappers
Definition: vrfVisualsManager.h:505
boost::signals2::signal< void()> signal_visualsLoaded
Definition: vrfVisualsManager.h:519
std::map< makVrv::DtUnicode, int > DefinitionsMap
Definition: vrfVisualsManager.h:93
The element definition class contains the element definition information.
Definition: DtElementDefinitionNew.h:25
bool myLoadAllModelDefinitions
Definition: vrfVisualsManager.h:510
ModelSetVisual()
Definition: vrfVisualsManager.h:569
const char * source
Definition: lz4.h:436
Definition: vrfVisualsManager.h:249
Visuals * systemDefaulVisuals() const
Definition: vrfVisualsManager.h:245
const DefinitionsMap & definitionsMapped() const
Definition: vrfVisualsManager.h:94
std::vector< ModelSetVisual > SimulationModelSetVisuals
Definition: vrfVisualsManager.h:578
Subclass to allow for setting of filename.
Definition: vrfVisualsManager.h:40
ModelSetVisual(const ModelSetVisual &orig)
Definition: vrfVisualsManager.h:571
A simulation model set contains all the information that can be used to support a scenario either for...
Definition: simulationModelSet.h:31
Record containing a collection of element definition records.
Definition: DtElementsRecord.h:16
makVrv::DtModelDefinitionManager * modelDefinitions
Definition: vrfVisualsManager.h:503
Record of a mappings from an entity type to some number.
Definition: DtEntityTypeMappingRecord.h:22
A definition of a visualizer.
Definition: DtVisualizerDefinition.h:22
int mappedDefinitionCount(const makVrv::DtUnicode &def) const
Definition: vrfVisualsManager.h:81
bool myUseNewSystemDataStructure
Definition: vrfVisualsManager.h:509
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
The DtVrfElementDefinitionTypeManager class is a class that allows for the loading of a minimal set o...
Definition: vrfElementDefinitionTypeManager.h:25
MappersMap mappers
Definition: vrfVisualsManager.h:504
static tbb::recursive_mutex theVisualMutexLock
Definition: vrfVisualsManager.h:33
Contains makVrv::DtEntityTypeMapper class.
std::set< DtFilename > mySystemVisuals
Definition: vrfVisualsManager.h:585
bool loadAllModelDefinitions() const
Definition: vrfVisualsManager.h:500
ModelSetVisual & operator=(const ModelSetVisual &orig)
Definition: vrfVisualsManager.h:572

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)