15 #include <vlpi/entityType.h>
20 #include <vlutil/vlFilename.h>
21 #include <tbb/recursive_mutex.h>
26 class DtModelDefinitionManager;
27 class DtModelDefinition;
28 class DtVisualizerDefinitionSet;
29 class DtVisualizerDefinition;
44 : makVrv::DtEntityTypeMapper(name)
61 const NameList* findMappings(
const DtEntityType& type,
bool exact =
false )
const;
67 virtual void addMapping(
const DtEntityType& type,
71 virtual void removeMapping(
const DtEntityType& type,
78 return (myDefinitionsMap.find(def) != myDefinitionsMap.end());
83 DefinitionsMap::const_iterator iter = myDefinitionsMap.find(def);
85 if (iter != myDefinitionsMap.end())
97 virtual void mergeTypeMappingsFromPath(
makVrv::DtDe&,
const std::string& path);
100 virtual void setupDefinitionsMap();
128 virtual bool loadVisuals(
DtSimulationModelSet*,
bool createIfMissing =
false,
bool editMode =
false);
131 virtual bool loadVisuals(
const DtFilename&,
const DtString& rootName =
"");
139 Visuals* visualsToUpgradeFrom = 0,
const DtFilename& sourceDefinitionsDir = DtFilename::nullFilename());
143 virtual bool getSystemVisualizerDefinitionAndElementTypeMap(
const DtEntityType&,
makVrv::DtUnicode&,
147 virtual bool isUnknown(
const std::vector<makVrv::DtUnicode>& entities)
const;
154 virtual void updateUnknowns();
163 virtual void clear();
166 virtual void clearSimulationModelSetVisuals();
169 virtual void setupAdditionalVisualizers();
172 virtual void upgradeSpotReportsDictionary(
const DtFilename& toDirectory, Visuals&,
bool force =
false,
bool mergeAttributes =
false);
181 virtual bool loadVisuals(
const DtScenarioExplorer& explorer,
bool createIfMissing =
false,
bool force =
false,
bool editMode =
false);
186 virtual Visuals* visualsFor(
const std::string&);
187 virtual const Visuals* visualsFor(
const std::string&)
const;
193 virtual void mergeVisualsIntoSystemVisuals(
const Visuals*);
196 virtual void pruneFromSystemVisuals(
const Visuals*);
199 virtual void merge(
const DtEntityType&,
const Visuals*,
bool toSystem =
true,
const DtString& newElementDefName =
"",
const DtEntityType& newType = DtEntityType());
202 virtual void mergeElementDefinitionToSystem(
const DtEntityType&);
206 virtual bool saveSystemVisualsAsAppData(
const DtFilename& directory,
bool saveHierarchyData =
true);
210 virtual void createSpotReportDefinitionFor(
const DtEntityType&);
214 virtual bool updateAndAddMatchTypeVisuals(
const DtEntityType& sourceType,
const DtEntityType& matchType,
bool andSystem =
true);
217 virtual void updateVisualsFor(
const DtEntityType&);
222 virtual void removeVisualsFor(
const DtEntityType&,
bool andSystem =
true);
225 virtual bool removeMappingsFor(
const DtEntityType&,
bool andSystem =
true);
228 virtual void removeElementDefinition(
const DtEntityType&,
bool andSystem =
true);
231 virtual Visuals* visualsFor(
const DtEntityType&);
234 virtual void setDefaultVisuals(
const std::string&);
235 const std::string& defaultVisuals()
const;
238 virtual void setCoreRootName(
const std::string&);
239 virtual const std::string& coreRootName()
const;
243 virtual int setDebugLevel(
int);
247 typedef boost::unordered_map<makVrv::DtSharedSimulationSettings::MapperType, DtVrfEntityTypeMapper*> MappersMap;
268 void initializeDefaults(
const DtFilename& appDataDir = DtFilename::nullFilename());
271 void initializeFrom(
const DtFilename&,
bool useNewStructure);
278 const std::string& extension );
285 bool getSystemVisualizerDefinitionAndElementTypeMap(
const DtEntityType&,
makVrv::DtUnicode&,
294 bool save(
const DtFilename& directory);
300 bool intoManagerSubDirectory =
false,
const DtFilename& definitionSubDirectory =
"",
bool mappedOnly =
true);
309 void setDirectory(
const DtFilename&);
313 bool load(
const DtFilename&,
const DtString& rootName);
317 bool useManagerSubStructure =
false);
323 void loadOrCreateSpotReports(
const DtFilename&,
const DtString& root,
bool install =
true);
334 bool upgradeSpotReportsFromDictionary(
const DtFilename&,
bool force =
false,
bool mergeAttributes =
false);
336 const makVrv::DtUnicode& unknownName,
bool force =
false,
bool mergeAttributes =
false,
const std::string& possibleMergeName =
"");
339 bool addElementDefinitionToSameDictionary(
const DtEntityType& sourceType,
const makVrv::DtUnicode& elementDefinition,
const DtString& newDefinitionName,
340 bool toSystem =
false);
344 bool createVisualCopyOf(
const DtEntityType& sourceType,
const DtEntityType& destinationType,
const DtString& newDefinitionName,
345 bool toSystem =
false);
347 void initializeSpotReportsHierarchy();
353 const std::vector<int>& supportedSets,
bool mergeSymbolDecoration =
false,
const std::set<std::string>& ignore = std::set<std::string>());
355 const std::vector<int>& supportedSets);
357 const std::vector<int>& supportedSets);
375 bool needsLoading()
const;
380 bool updateAndAddMatchTypeVisuals(
const DtEntityType& sourceType,
const DtEntityType& matchType,
bool andSystem =
true);
383 DtFilename modelDefinitionsPath(
const DtFilename& root)
const;
392 std::set<std::string> hierarchyElementsForVisuals();
398 bool haveMappings =
false);
404 void merge(
const DtEntityType&,
const Visuals*,
bool toSystem =
true,
const DtString& newElementDefName =
"",
const DtEntityType& newType = DtEntityType());
407 void mergeElementDefinitionToSystem(
const DtEntityType&);
411 virtual bool saveAsAppData(
const DtFilename& definitionsDirectory,
bool saveHierarchyData =
true);
432 void saveMappersTo(
const DtFilename&,
bool useNewDirectoryStructure =
false);
441 void saveModelDefinitions();
444 void changeMappingType(
const DtEntityType& from,
const DtEntityType& to,
bool toSystem =
true);
458 void install(
const DtEntityType&,
bool mapOnly =
false);
461 void createSpotReportDefinitionFor(
const DtEntityType&);
469 void removeVisualsFor(
const DtEntityType&,
bool fromSystem =
true);
472 bool removeMappingsFor(
const DtEntityType&,
bool andSystem =
true);
478 void removeElementDefinition(
const DtEntityType&,
bool fromSystem =
true);
480 bool fromSystem =
true);
483 bool hasType(
const DtEntityType&)
const;
496 typedef std::map<makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes, int>
LastWriteTimes;
516 virtual void initializeSystemVisuals(
const DtFilename& definitionsDir = DtFilename::nullFilename(),
bool andInstall =
true,
517 bool setupSpotReports =
true);
527 virtual void setupAdditionalTacticalGraphicsVisualizers();
530 virtual void setupCloudLayers();
531 virtual void setupCloudDisplayLayer(
const std::string&,
const DtEntityType&,
int r,
int g,
int b,
int a);
534 virtual void setupNavigationAreaVisualizer();
537 virtual void setupBoundingVolumes();
540 virtual void setupObjectConsoleWarngForTacticalGraphics();
543 virtual void setupBoundingVolumes(
const std::string& root);
546 virtual void setupAdditionalSpotReportVisualizers();
553 virtual void setupRangeRings();
554 virtual void addRangeRingsFor(
int managerType);
557 virtual void setupSensorContactLines();
558 virtual void addSensorContactLinesFor(
int managerType);
560 virtual void setupAdditionalAggregateVisualizers();
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