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)
51 void setFilename(
const DtFilename& f)
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();
156 const std::set<makVrv::DtUnicode> unknownStrings()
const
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;
245 typedef boost::unordered_map<makVrv::DtSharedSimulationSettings::MapperType, DtVrfEntityTypeMapper*> MappersMap;
266 void initializeDefaults(
const DtFilename& appDataDir = DtFilename::nullFilename());
269 void initializeFrom(
const DtFilename&,
bool useNewStructure);
276 const std::string& extension );
283 bool getSystemVisualizerDefinitionAndElementTypeMap(
const DtEntityType&,
makVrv::DtUnicode&,
292 bool save(
const DtFilename& directory);
298 bool intoManagerSubDirectory =
false,
const DtFilename& definitionSubDirectory =
"",
bool mappedOnly =
true);
307 void setDirectory(
const DtFilename&);
311 bool load(
const DtFilename&,
const DtString& rootName);
315 bool useManagerSubStructure =
false);
321 void loadOrCreateSpotReports(
const DtFilename&,
const DtString& root,
bool install =
true);
332 bool upgradeSpotReportsFromDictionary(
const DtFilename&,
bool force =
false,
bool mergeAttributes =
false);
334 const makVrv::DtUnicode& unknownName,
bool force =
false,
bool mergeAttributes =
false,
const std::string& possibleMergeName =
"");
337 bool addElementDefinitionToSameDictionary(
const DtEntityType& sourceType,
const makVrv::DtUnicode& elementDefinition,
const DtString& newDefinitionName,
338 bool toSystem =
false);
342 bool createVisualCopyOf(
const DtEntityType& sourceType,
const DtEntityType& destinationType,
const DtString& newDefinitionName,
343 bool toSystem =
false);
345 void initializeSpotReportsHierarchy();
351 const std::vector<int>& supportedSets,
bool mergeSymbolDecoration =
false,
const std::set<std::string>& ignore = std::set<std::string>());
353 const std::vector<int>& supportedSets);
355 const std::vector<int>& supportedSets);
373 bool needsLoading()
const;
378 bool updateAndAddMatchTypeVisuals(
const DtEntityType& sourceType,
const DtEntityType& matchType,
bool andSystem =
true);
381 DtFilename modelDefinitionsPath(
const DtFilename& root)
const;
390 std::set<std::string> hierarchyElementsForVisuals();
396 bool haveMappings =
false);
402 void merge(
const DtEntityType&,
const Visuals*,
bool toSystem =
true,
const DtString& newElementDefName =
"",
const DtEntityType& newType = DtEntityType());
405 void mergeElementDefinitionToSystem(
const DtEntityType&);
409 virtual bool saveAsAppData(
const DtFilename& definitionsDirectory,
bool saveHierarchyData =
true);
430 void saveMappersTo(
const DtFilename&,
bool useNewDirectoryStructure =
false);
439 void saveModelDefinitions();
442 void changeMappingType(
const DtEntityType& from,
const DtEntityType& to,
bool toSystem =
true);
456 void install(
const DtEntityType&,
bool mapOnly =
false);
459 void createSpotReportDefinitionFor(
const DtEntityType&);
467 void removeVisualsFor(
const DtEntityType&,
bool fromSystem =
true);
470 bool removeMappingsFor(
const DtEntityType&,
bool andSystem =
true);
476 void removeElementDefinition(
const DtEntityType&,
bool fromSystem =
true);
478 bool fromSystem =
true);
481 bool hasType(
const DtEntityType&)
const;
494 typedef std::map<makVrv::DtElementDefinitionTypeManager::BuiltInElementTypes, int>
LastWriteTimes;
514 virtual void initializeSystemVisuals(
const DtFilename& definitionsDir = DtFilename::nullFilename(),
bool andInstall =
true,
515 bool setupSpotReports =
true);
525 virtual void setupAdditionalTacticalGraphicsVisualizers();
528 virtual void setupCloudLayers();
529 virtual void setupCloudDisplayLayer(
const std::string&,
const DtEntityType&,
int r,
int g,
int b,
int a);
532 virtual void setupNavigationAreaVisualizer();
535 virtual void setupBoundingVolumes();
538 virtual void setupObjectConsoleWarngForTacticalGraphics();
541 virtual void setupBoundingVolumes(
const std::string& root);
544 virtual void setupAdditionalSpotReportVisualizers();
551 virtual void setupRangeRings();
552 virtual void addRangeRingsFor(
int managerType);
555 virtual void setupSensorContactLines();
556 virtual void addSensorContactLinesFor(
int managerType);
558 virtual void setupAdditionalAggregateVisualizers();