19 #include <vlutil/vlFilename.h>
20 #include <tbb/recursive_mutex.h>
25 class DtModelDefinitionManager;
26 class DtModelDefinition;
27 class DtVisualizerDefinitionSet;
28 class DtVisualizerDefinition;
43 : makVrv::DtEntityTypeMapper(name)
50 void setFilename(
const DtFilename& f)
60 const NameList* findMappings(
const DtEntityType& type,
bool exact =
false )
const;
66 virtual void addMapping(
const DtEntityType& type,
70 virtual void removeMapping(
const DtEntityType& type,
77 return (myDefinitionsMap.find(def) != myDefinitionsMap.end());
82 DefinitionsMap::const_iterator iter = myDefinitionsMap.find(def);
84 if (iter != myDefinitionsMap.end())
96 virtual void mergeTypeMappingsFromPath(
makVrv::DtDe&,
const std::string& path);
99 virtual void setupDefinitionsMap();
127 virtual bool loadVisuals(
DtSimulationModelSet*,
bool createIfMissing =
false,
bool editMode =
false);
130 virtual bool loadVisuals(
const DtFilename&,
const DtString& rootName =
"");
138 Visuals* visualsToUpgradeFrom = 0,
const DtFilename& sourceDefinitionsDir = DtFilename::nullFilename());
142 virtual bool getSystemVisualizerDefinitionAndElementTypeMap(
const DtEntityType&,
makVrv::DtUnicode&,
146 virtual bool isUnknown(
const std::vector<makVrv::DtUnicode>& entities)
const;
153 virtual void updateUnknowns();
155 const std::set<makVrv::DtUnicode> unknownStrings()
const
162 virtual void clear();
165 virtual void clearSimulationModelSetVisuals();
168 virtual void setupAdditionalVisualizers();
171 virtual void upgradeSpotReportsDictionary(
const DtFilename& toDirectory, Visuals&,
bool force =
false,
bool mergeAttributes =
false);
180 virtual bool loadVisuals(
const DtScenarioExplorer& explorer,
bool createIfMissing =
false,
bool force =
false,
bool editMode =
false);
185 virtual Visuals* visualsFor(
const std::string&);
186 virtual const Visuals* visualsFor(
const std::string&)
const;
192 virtual void mergeVisualsIntoSystemVisuals(
const Visuals*);
195 virtual void pruneFromSystemVisuals(
const Visuals*);
198 virtual void merge(
const DtEntityType&,
const Visuals*,
bool toSystem =
true,
const DtString& newElementDefName =
"");
201 virtual void mergeElementDefinitionToSystem(
const DtEntityType&);
205 virtual bool saveSystemVisualsAsAppData(
const DtFilename& directory,
bool saveHierarchyData =
true);
209 virtual void createSpotReportDefinitionFor(
const DtEntityType&);
213 virtual bool updateAndAddMatchTypeVisuals(
const DtEntityType& sourceType,
const DtEntityType& matchType,
bool andSystem =
true);
216 virtual void updateVisualsFor(
const DtEntityType&);
221 virtual void removeVisualsFor(
const DtEntityType&,
bool andSystem =
true);
224 virtual bool removeMappingsFor(
const DtEntityType&,
bool andSystem =
true);
227 virtual void removeElementDefinition(
const DtEntityType&,
bool andSystem =
true);
230 virtual Visuals* visualsFor(
const DtEntityType&);
233 virtual void setDefaultVisuals(
const std::string&);
234 const std::string& defaultVisuals()
const;
237 virtual void setCoreRootName(
const std::string&);
238 virtual const std::string& coreRootName()
const;
244 typedef boost::unordered_map<makVrv::DtSharedSimulationSettings::MapperType, DtVrfEntityTypeMapper*> MappersMap;
265 void initializeDefaults(
const DtFilename& appDataDir = DtFilename::nullFilename());
268 void initializeFrom(
const DtFilename&,
bool useNewStructure);
275 const std::string& extension );
282 bool getSystemVisualizerDefinitionAndElementTypeMap(
const DtEntityType&,
makVrv::DtUnicode&,
291 bool save(
const DtFilename& directory);
297 bool intoManagerSubDirectory =
false,
const DtFilename& definitionSubDirectory =
"",
bool mappedOnly =
true);
306 void setDirectory(
const DtFilename&);
310 bool load(
const DtFilename&,
const DtString& rootName);
314 bool useManagerSubStructure =
false);
320 void loadOrCreateSpotReports(
const DtFilename&,
const DtString& root,
bool install =
true);
328 bool upgradeSpotReportsFromDictionary(
const DtFilename&,
bool force =
false,
bool mergeAttributes =
false);
330 const makVrv::DtUnicode& unknownName,
bool force =
false,
bool mergeAttributes =
false,
const std::string& possibleMergeName =
"");
333 bool addElementDefinitionToSameDictionary(
const DtEntityType& sourceType,
const makVrv::DtUnicode& elementDefinition,
const DtString& newDefinitionName,
334 bool toSystem =
false);
338 bool createVisualCopyOf(
const DtEntityType& sourceType,
const DtEntityType& destinationType,
const DtString& newDefinitionName,
339 bool toSystem =
false);
341 void initializeSpotReportsHierarchy();
347 const std::vector<int>& supportedSets,
bool mergeSymbolDecoration =
false,
const std::set<std::string>& ignore = std::set<std::string>());
349 const std::vector<int>& supportedSets);
351 const std::vector<int>& supportedSets);
369 bool needsLoading()
const;
374 bool updateAndAddMatchTypeVisuals(
const DtEntityType& sourceType,
const DtEntityType& matchType,
bool andSystem =
true);
377 DtFilename modelDefinitionsPath(
const DtFilename& root)
const;
386 std::set<std::string> hierarchyElementsForVisuals();
392 bool haveMappings =
false);
398 void merge(
const DtEntityType&,
const Visuals*,
bool toSystem =
true,
const DtString& newElementDefName =
"");
401 void mergeElementDefinitionToSystem(
const DtEntityType&);
405 virtual bool saveAsAppData(
const DtFilename& definitionsDirectory,
bool saveHierarchyData =
true);
426 void saveMappersTo(
const DtFilename&,
bool useNewDirectoryStructure =
false);
435 void saveModelDefinitions();
438 void changeMappingType(
const DtEntityType& from,
const DtEntityType& to,
bool toSystem =
true);
452 void install(
const DtEntityType&);
455 void createSpotReportDefinitionFor(
const DtEntityType&);
463 void removeVisualsFor(
const DtEntityType&,
bool fromSystem =
true);
466 bool removeMappingsFor(
const DtEntityType&,
bool andSystem =
true);
472 void removeElementDefinition(
const DtEntityType&,
bool fromSystem =
true);
474 bool fromSystem =
true);
477 bool hasType(
const DtEntityType&)
const;
489 typedef std::map<makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes, int>
LastWriteTimes;
509 virtual void initializeSystemVisuals(
const DtFilename& definitionsDir = DtFilename::nullFilename(),
bool andInstall =
true,
510 bool setupSpotReports =
true);
520 virtual void setupAdditionalTacticalGraphicsVisualizers();
523 virtual void setupNavigationAreaVisualizer();
526 virtual void setupBoundingVolumes();
529 virtual void setupObjectConsoleWarngForTacticalGraphics();
532 virtual void setupBoundingVolumes(
const std::string& root);
535 virtual void setupAdditionalSpotReportVisualizers();
542 virtual void setupRangeRings();
543 virtual void addRangeRingsFor(
int managerType);
546 virtual void setupSensorContactLines();
547 virtual void addSensorContactLinesFor(
int managerType);
549 virtual void setupAdditionalAggregateVisualizers();