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)
45 , mySharedMapper(nullptr)
78 myDefinitionDirectory = f;
88 bool autoS = myAutoSave;
100 const NameList* findMappings(
const DtEntityType& type,
bool exact =
false )
const;
107 virtual void addMapping(
const DtEntityType& type,
111 virtual void removeMapping(
const DtEntityType& type,
114 virtual void removeMappings(
const DtEntityType& type )
override;
120 return (myDefinitionsMap.find(def) != myDefinitionsMap.end());
125 DefinitionsMap::const_iterator iter = myDefinitionsMap.find(def);
127 if (iter != myDefinitionsMap.end())
135 virtual void addMappingFileLocation(
const DtEntityType& type,
const std::string& definitionFileName)
override;
142 return (mySharedMapper !=
nullptr);
147 return mySharedMapper;
151 virtual void setupDefinitionsMap();
152 virtual void internalAddMapping(
const DtEntityType& type,
154 virtual void internalRemoveMapping(
const DtEntityType& type,
188 virtual bool loadVisuals(
DtSimulationModelSet*,
bool createIfMissing =
false,
bool editMode =
false);
191 virtual bool loadVisuals(
const DtFilename&,
const DtString& rootName =
"");
199 Visuals* visualsToUpgradeFrom = 0,
const DtFilename& sourceDefinitionsDir = DtFilename::nullFilename());
203 virtual bool getSystemVisualizerDefinitionAndElementTypeMap(
const DtEntityType&,
makVrv::DtUnicode&,
207 virtual bool isUnknown(
const std::vector<makVrv::DtUnicode>& entities)
const;
214 virtual void updateUnknowns();
223 virtual void clear();
226 virtual void setupAdditionalVisualizers();
229 virtual void upgradeSpotReportsDictionary(
const DtFilename& toDirectory, Visuals&,
bool force =
false,
bool mergeAttributes =
false);
238 virtual bool loadVisuals(
const DtScenarioExplorer& explorer,
bool createIfMissing =
false,
bool force =
false,
bool editMode =
false);
243 virtual Visuals* visualsFor(
const std::string&);
244 virtual const Visuals* visualsFor(
const std::string&)
const;
250 virtual bool pruneVRFSpecificVisualizers();
256 virtual void pruneFromSystemVisuals(
const Visuals*);
259 virtual void merge(
const DtEntityType&,
const Visuals*,
bool toSystem =
true,
const DtString& newElementDefName =
"",
const DtEntityType& newType = DtEntityType());
262 virtual void mergeElementDefinitionToSystem(
const DtEntityType&);
266 virtual bool saveSystemVisualsAsAppData(
const DtFilename& directory,
bool saveHierarchyData =
true);
270 virtual void createSpotReportDefinitionFor(
const DtEntityType&);
274 virtual bool updateAndAddMatchTypeVisuals(
const DtEntityType& sourceType,
const DtEntityType& matchType,
bool andSystem =
true);
277 virtual void updateVisualsFor(
const DtEntityType&);
282 virtual void removeVisualsFor(
const DtEntityType&,
bool andSystem =
true);
285 virtual bool removeMappingsFor(
const DtEntityType&,
bool andSystem =
true);
288 virtual void removeElementDefinition(
const DtEntityType&,
bool andSystem =
true);
291 virtual Visuals* visualsFor(
const DtEntityType&);
294 virtual void setDefaultVisuals(
const std::string&);
295 const std::string& defaultVisuals()
const;
298 virtual void setCoreRootName(
const std::string&);
299 virtual const std::string& coreRootName()
const;
303 virtual int setDebugLevel(
int);
307 typedef boost::unordered_map<makVrv::DtSharedSimulationSettings::MapperType, DtVrfEntityTypeMapper*> MappersMap;
327 void initializeDefaults(
const DtFilename& appDataDir = DtFilename::nullFilename());
330 void initializeFrom(
const DtFilename&);
337 const std::string& extension );
344 bool getSystemVisualizerDefinitionAndElementTypeMap(
const DtEntityType&,
makVrv::DtUnicode&,
352 void initializeSpotReportsHierarchy(
const DtFilename& directory);
354 void loadOrCreateSpotReports(
const DtFilename&,
const DtString& root);
357 bool save(
const DtFilename& directory,
bool spotReportsOnly);
365 bool intoManagerSubDirectory =
false,
const DtFilename& definitionSubDirectory =
"",
bool mappedOnly =
true);
367 bool intoManagerSubDirectory =
false,
const DtFilename& definitionSubDirectory =
"",
bool mappedOnly =
true);
376 void setDirectory(
const DtFilename&);
380 bool load(
const DtFilename&,
const DtString& rootName);
389 DtFilename modelDefinitionsPath();
397 int mappedDefinitionCount(
const DtEntityType&)
const;
403 bool upgradeSpotReportsFromDictionary(
const DtFilename&,
bool force =
false,
bool mergeAttributes =
false);
405 const makVrv::DtUnicode& unknownName,
bool force =
false,
bool mergeAttributes =
false,
const std::string& possibleMergeName =
"");
408 bool addElementDefinitionToSameDictionary(
const DtEntityType& sourceType,
const makVrv::DtUnicode& elementDefinition,
const DtString& newDefinitionName,
409 bool toSystem =
false);
413 bool createVisualCopyOf(
const DtEntityType& sourceType,
const DtEntityType& destinationType,
const DtString& newDefinitionName,
414 bool toSystem =
false);
420 const std::vector<makVrv::DtModelSetId>& supportedSets,
bool mergeSymbolDecoration =
false,
const std::set<std::string>& ignore = std::set<std::string>());
422 const std::vector<makVrv::DtModelSetId>& supportedSets);
424 const std::vector<makVrv::DtModelSetId>& supportedSets);
442 bool needsLoading()
const;
447 bool updateAndAddMatchTypeVisuals(
const DtEntityType& sourceType,
const DtEntityType& matchType,
bool andSystem =
true);
456 std::set<std::string> hierarchyElementsForVisuals();
462 bool haveMappings =
false);
468 void merge(
const DtEntityType&,
const Visuals*,
bool toSystem =
true,
const DtString& newElementDefName =
"",
const DtEntityType& newType = DtEntityType());
471 void mergeElementDefinitionToSystem(
const DtEntityType&);
475 virtual bool saveAsAppData(
const DtFilename& definitionsDirectory,
bool saveHierarchyData =
true);
495 void saveMappersTo(
const DtFilename&);
506 void saveModelDefinitions();
509 void changeMappingType(
const DtEntityType& from,
const DtEntityType& to,
bool toSystem =
true,
bool removeOld =
true);
512 void associateMappingTypes(
const DtEntityType& from,
const DtEntityType& to,
bool toSystem =
true);
526 void install(
const DtEntityType&,
bool mapOnly =
false);
529 void createSpotReportDefinitionFor(
const DtEntityType&);
537 void removeVisualsFor(
const DtEntityType&,
bool fromSystem =
true);
540 bool removeMappingsFor(
const DtEntityType&,
bool andSystem =
true);
546 void removeElementDefinition(
const DtEntityType&,
bool fromSystem =
true);
548 bool fromSystem =
true);
555 bool hasType(
const DtEntityType&)
const;
570 typedef std::map<makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes, int>
LastWriteTimes;
584 virtual bool setupBoundingVolumes();
587 virtual void initializeSystemVisuals(
const DtFilename& definitionsDir = DtFilename::nullFilename(),
bool setupSpotReports =
true);
595 virtual void initializeSpotReports(
const DtFilename& definitionsDir);
598 virtual void setupObjectConsoleWarningVisualizer();
604 virtual void setupAdditionalTacticalGraphicsVisualizers();
607 virtual void setupNavigationAreaVisualizer();
610 virtual void setupObjectConsoleWarngForTacticalGraphics();
613 virtual bool setupBoundingVolumes(
const std::string& root);
616 virtual void setupObjectConsoleWarningVisualizer(
const std::string& root,
const DtVector&
offset = DtVector::zero(),
620 virtual void setupAdditionalSpotReportVisualizers();
627 virtual void setupRangeRings();
628 virtual void addRangeRingsFor(
int managerType);
631 virtual void setupSensorContactLines();
632 virtual void addSensorContactLinesFor(
int managerType);
634 virtual void setupAdditionalAggregateVisualizers();
DtString myRootName
Definition: vrfVisualsManager.h:578
Contains the DtSharedSimulationSettings class declaration.
BuiltInElementTypes
These types are all automatically registered when the manager is created. This enum is linked with Dt...
Definition: DtElementDefinitionManager.h:562
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
Definition: vrfVisualsManager.h:641
bool isSharedMapper() const
Definition: vrfVisualsManager.h:140
The model definition manager is responsible to managing all of the model definitions the IG knows abo...
Definition: DtModelDefinitionManager.h:78
DtFilename myDirectory
Definition: vrfVisualsManager.h:158
An EntityType to Definition mapper.
Definition: DtEntityTypeMapper.h:34
ModelSetVisual(const DtFilename &f, const Visuals &v)
Definition: vrfVisualsManager.h:644
boost::signals2::signal< void(DtSimulationModelSet *)> signal_visualsLoadedFromSMS
Definition: vrfVisualsManager.h:592
MapperType
Definition: DtSharedSimulationSettings.h:52
std::vector< DtUnicode > NameList
Definition: DtEntityTypeMapper.h:38
DtFilename filename
Definition: vrfVisualsManager.h:646
Visuals * systemDefaultVisuals() const
Definition: vrfVisualsManager.h:305
void setDefinitionDirectory(const DtFilename &f)
Definition: vrfVisualsManager.h:76
void setDirectory(const DtFilename &f)
Definition: vrfVisualsManager.h:66
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
makVrv::DtEntityTypeMapper * sharedMapper() const
Definition: vrfVisualsManager.h:145
const char * filename
Definition: ioapi.h:38
bool myInAppData
Definition: vrfVisualsManager.h:579
std::string myDefaultVisuals
Definition: vrfVisualsManager.h:655
boost::signals2::signal< void(const DtFilename &)> signal_visualsLoadedFrom
Definition: vrfVisualsManager.h:590
const std::string & extension() const
Definition: vrfVisualsManager.h:61
The makVrv::DtVisualizerDefinitionSet is a collection of makVrv::DtVisualizerDefinition instances...
Definition: DtVisualizerDefinitionSet.h:28
const std::set< makVrv::DtUnicode > unknownStrings() const
Definition: vrfVisualsManager.h:216
std::set< makVrv::DtUnicode > myUnknowns
Definition: vrfVisualsManager.h:660
Visuals visuals
Definition: vrfVisualsManager.h:649
Visuals * mySystemDefaultVisuals
Definition: vrfVisualsManager.h:639
makVrv::DtSignalConnectionManager myConnections
Definition: vrfVisualsManager.h:161
#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:73
makVrv::DtDe * myDe
Definition: vrfVisualsManager.h:576
SimulationModelSetVisuals mySimulationModelSetVisuals
Definition: vrfVisualsManager.h:653
std::string myCoreRootName
Definition: vrfVisualsManager.h:656
Record for a visualization definition.
Definition: DtElementDefinitionRecord.h:23
boost::unordered_map< makVrv::DtSharedSimulationSettings::MapperType, DtVrfEntityTypeMapper * > MappersMap
Definition: vrfVisualsManager.h:305
bool isMappedDefinition(const makVrv::DtUnicode &def) const
Definition: vrfVisualsManager.h:118
std::map< makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes, int > LastWriteTimes
Definition: vrfVisualsManager.h:570
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. It will also provide routines to create visual mappings from a model set.
Definition: vrfVisualsManager.h:170
makVrv::DtDe & myDe
Definition: vrfVisualsManager.h:637
LastWriteTimes myLastWriteTimes
Definition: vrfVisualsManager.h:571
void setInAppData(bool b)
Definition: vrfVisualsManager.h:71
Definition: DtElementDefinitionManager.h:564
DtFilename myDirectory
Definition: vrfVisualsManager.h:577
bool autoSave() const
Definition: vrfVisualsManager.h:81
boost::signals2::signal< void(DtSimulationModelSet *)> signal_spotReportVisualsLoadedFromSMS
Definition: vrfVisualsManager.h:591
bool setAutoSave(bool b)
Definition: vrfVisualsManager.h:86
void setExtension(const std::string &e)
Definition: vrfVisualsManager.h:56
DtVrfVisualsManager * myVisualsManager
Definition: vrfVisualsManager.h:580
DefinitionsMap myDefinitionsMap
Definition: vrfVisualsManager.h:160
The element definition class contains the element definition information. The makVrv::DtElementDefini...
Definition: DtElementDefinition.h:26
std::vector< MappersMap > pushedMappers
Definition: vrfVisualsManager.h:575
boost::signals2::signal< void()> signal_visualsLoaded
Definition: vrfVisualsManager.h:589
std::map< makVrv::DtUnicode, int > DefinitionsMap
Definition: vrfVisualsManager.h:137
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtVrfEntityTypeMapper(const std::string &name, const std::string &ext)
Definition: vrfVisualsManager.h:43
ModelSetVisual()
Definition: vrfVisualsManager.h:643
const char * source
Definition: lz4.h:442
DtVrfElementDefinitionTypeManager * elementDefinitionManager
Definition: vrfVisualsManager.h:573
Definition: vrfVisualsManager.h:309
const DefinitionsMap & definitionsMapped() const
Definition: vrfVisualsManager.h:138
std::vector< ModelSetVisual > SimulationModelSetVisuals
Definition: vrfVisualsManager.h:652
Subclass to allow for setting of filename.
Definition: vrfVisualsManager.h:40
ModelSetVisual(const ModelSetVisual &orig)
Definition: vrfVisualsManager.h:645
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:17
Record of a mappings from an entity type to some number.
Definition: DtEntityTypeMappingRecord.h:22
const DtFilename & directory() const
Definition: vrfVisualsManager.h:95
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:26
std::string myExtension
Definition: vrfVisualsManager.h:165
int mappedDefinitionCount(const makVrv::DtUnicode &def) const
Definition: vrfVisualsManager.h:123
bool myAutoSave
Definition: vrfVisualsManager.h:163
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
The DtVrfElementDefinitionTypeManager class is a class that allows for the loading of a minimal set o...
Definition: vrfElementDefinitionTypeManager.h:25
std::vector< const DtElementDefinition * > ElementDefinitions
List of new element definitions.
Definition: DtElementDefinitionManager.h:92
MappersMap mappers
Definition: vrfVisualsManager.h:574
static tbb::recursive_mutex theVisualMutexLock
Definition: vrfVisualsManager.h:33
voidpf uLong offset
Definition: ioapi.h:42
Contains makVrv::DtEntityTypeMapper class.
makVrv::DtEntityTypeMapper * mySharedMapper
Definition: vrfVisualsManager.h:162
std::set< DtFilename > mySystemVisuals
Definition: vrfVisualsManager.h:658
bool myInAppData
Definition: vrfVisualsManager.h:164
DtFilename myDefinitionDirectory
Definition: vrfVisualsManager.h:159
ModelSetVisual & operator=(const ModelSetVisual &orig)
Definition: vrfVisualsManager.h:646