VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVisualizerDefinitionSet.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
7 
8 
9 #pragma once
10 
11 #include <string>
12 #include <vector>
13 #include <vrvCore/vrvCore.h>
14 
15 #include <unordered_map>
16 
17 class DtVrlUuid;
18 
19 namespace makVrv
20 {
21  class DtVisualizerDefinition;
22  enum class DtModelSetId;
23 
24 
29  {
30 
31  protected:
34  friend class DtElementDefinition;
35 
38 
41 
44 
47 
48  public:
49 
51  DtModelSetId modelSet() const;
52 
56  bool isEqual(const DtVisualizerDefinitionSet&) const;
57 
60  int numberOfVisualizerDefinitions() const;
61 
65  DtVisualizerDefinition* findVisualizerDefinition(unsigned int index);
66  DtVisualizerDefinition* findVisualizerDefinition(const std::string& uuidString);
67 
73  const DtVisualizerDefinition* findVisualizerDefinition(unsigned int index) const;
74  const DtVisualizerDefinition* findVisualizerDefinition(const std::string& uuidString) const;
75 
78  void findVisualizerDefinitions(const std::string& schemaName,
79  std::vector<const DtVisualizerDefinition*>& defs) const;
80 
83  void findVisualizerDefinitions(const std::string& schemaName,
84  std::vector<DtVisualizerDefinition*>& defs);
85 
91  int indexOfVisualizerDefinition(const DtVisualizerDefinition* def) const;
92 
96  DtVisualizerDefinition* createVisualizerDefinition(const std::string& schemaName, bool setInheritance=true);
97 
101  DtVisualizerDefinition* createVisualizerDefinition(const std::string& schemaName, const std::string& uuidString,
102  bool setInheritance=true);
103 
110  DtVisualizerDefinition* createVisualizerDefinition(
111  DtVisualizerDefinition* parent, bool setInheritance=true);
112 
116  DtVisualizerDefinition* pasteAndReplaceVisualizerDefinition(
118 
122  DtVisualizerDefinition* pasteAndAddVisualizerDefinition(
124 
129  DtVisualizerDefinition* addVisualizerDefinition(const std::string& schemaName, DtVisualizerDefinition* parent=nullptr);
130 
136  void destroyVisualizerDefinition(DtVisualizerDefinition* def);
137 
141  bool visualizerDefinitionLocal(const DtVisualizerDefinition* def) const;
142 
143  bool visualizerDefinitionInherited(const DtVisualizerDefinition* def) const;
144 
150  bool visualizerDefinitionOverridden(const DtVisualizerDefinition* def) const;
151 
154  DtVisualizerDefinitionSet* findParent();
155 
158  const DtVisualizerDefinitionSet* findParent() const;
159 
162  unsigned int numberOfChildren() const;
163 
165  std::vector<DtVisualizerDefinition*> getDefinitionList();
166 
168  std::vector<DtVisualizerDefinition*> getInheritedDefinitionList();
169 
172  DtVisualizerDefinitionSet* findChild(unsigned int index);
173 
176  const DtVisualizerDefinitionSet* findChild(unsigned int index) const;
177 
181  int findChildIndex(const DtVisualizerDefinitionSet* child) const;
182 
184  const DtVisualizerDefinition* findKinematicStateDefinition() const;
185  protected:
186 
187 
189  void addChild(DtVisualizerDefinitionSet* defSet);
190 
192  void removeChild(DtVisualizerDefinitionSet* defSet);
193 
195  void addOwnership(DtVisualizerDefinition* definition);
196 
200  bool removeOwnership(DtVisualizerDefinition* definition);
201 
204  int inheritenceIndex(DtVisualizerDefinition* definition);
205 
207  void addInheritance(DtVisualizerDefinition* definition, int inheritenceIndex);
208 
210  void replaceInheritance(DtVisualizerDefinition* oldDef,
211  DtVisualizerDefinition* newDef);
212 
214  void removeInheritance(DtVisualizerDefinition* oldDef);
215 
220  DtVisualizerDefinitionSet* findOwnerOfVisualizerDefinition(
221  const DtVisualizerDefinition* def, unsigned int& indexToDef);
222 
227  const DtVisualizerDefinitionSet* findOwnerOfVisualizerDefinition(
228  const DtVisualizerDefinition* def, unsigned int& indexToDef) const;
229 
232  DtVisualizerDefinition* findEquivalentDefinition(
233  const DtVisualizerDefinition* def,
234  DtVisualizerDefinitionSet* equivalentToThis) const;
235 
236 
240  int level() const;
241 
246  DtVisualizerDefinitionSet* findParent(int level);
247 
249  void replaceDefinitionParents(DtVisualizerDefinition* oldDef,
250  DtVisualizerDefinition* newDef);
251 
253  void destroyVisualizerDefinitionsWithParent(DtVisualizerDefinition* parent);
254 
255  protected:
256 
257  static std::string generateUuidString();
258 
259  protected:
260 
261  typedef std::vector<DtVisualizerDefinition*> DefinitionList;
262  typedef std::vector<DtVisualizerDefinitionSet*> VisualizerDefinitionSetList;
263 
264  std::unordered_map<std::string, DtVisualizerDefinition*> myUuidToDefinitionMap;
265 
268 
273  };
274 }
DtVisualizerDefinitionSet * myParent
Definition: DtVisualizerDefinitionSet.h:266
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
DtVisualizerDefinition * myKinematicStateDefinition
Definition: DtVisualizerDefinitionSet.h:271
The makVrv::DtVisualizerDefinitionSet is a collection of makVrv::DtVisualizerDefinition instances...
Definition: DtVisualizerDefinitionSet.h:28
std::unordered_map< std::string, DtVisualizerDefinition * > myUuidToDefinitionMap
Definition: DtVisualizerDefinitionSet.h:264
DefinitionList myInheritedDefinitions
Definition: DtVisualizerDefinitionSet.h:270
DefinitionList myDefinitions
Definition: DtVisualizerDefinitionSet.h:269
DtModelSetId myModelSet
Definition: DtVisualizerDefinitionSet.h:272
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
std::vector< DtVisualizerDefinitionSet * > VisualizerDefinitionSetList
Definition: DtVisualizerDefinitionSet.h:262
The element definition class contains the element definition information. The makVrv::DtElementDefini...
Definition: DtElementDefinition.h:26
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:26
std::vector< DtVisualizerDefinition * > DefinitionList
Definition: DtVisualizerDefinitionSet.h:261
VisualizerDefinitionSetList myChildren
Definition: DtVisualizerDefinitionSet.h:267
DtModelSetId
Definition: DtModelSetEnums.h:19
Contains DLL export macros.

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)