VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtElementDefinition.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 #pragma once
7 
11 #include <vector>
12 #include <vrvUtil/DtUnicode.h>
14 #include <vrvCore/vrvCore.h>
15 
16 namespace makVrv
17 {
18  class DtVisualizerAttribute;
19  class DtVisualizerDefinition;
20  class DtElementDefinitionManager;
21  enum class DtModelSetId;
22 
27  {
28  public:
31  const DtUnicode& name() const;
32 
35  const std::string& fileName() const;
36 
38  const std::vector<std::string>& duplicateNames() const;
39 
41  void setFileName(const std::string&);
42 
46  bool isEqual(const DtElementDefinition&) const;
47 
49  int numberOfVisualizerDefinitionSets() const;
50 
53  DtVisualizerDefinitionSet& visualizerDefinitionSet(DtModelSetId modelSet);
54 
58  const DtVisualizerDefinitionSet& visualizerDefinitionSet(DtModelSetId modelSet) const;
59 
62  DtElementDefinition* findParent();
63 
66  const DtElementDefinition* findParent() const;
67 
70  unsigned int numberOfChildren() const;
71 
74  DtElementDefinition* findChild(unsigned int index);
75 
78  const DtElementDefinition* findChild(unsigned int index) const;
79 
83  int findChildIndex(const DtElementDefinition* child) const;
84 
86  std::vector<DtElementDefinition*> getChildren();
87 
92  DtVisualizerDefinition* findOrCreateLocalVisualizer(DtModelSetId modelSet,
93  int visualizerIndex);
94  DtVisualizerDefinition* findOrCreateLocalVisualizer(DtModelSetId modelSet,
95  const std::string& uuidString);
96 
101  DtVisualizerAttribute* findOrCreateLocalAttribute(DtModelSetId modelSet,
102  int visualizerIndex, const std::string& attributeName);
103 
105  bool isHier() const;
106 
108  void setIsHier(bool isHier);
109 
112  bool isDuplicate() const;
113 
115  void addDuplicateName(const std::string& duplicateName);
116 
118  void setDuplicateFlag(bool duplicate);
119 
121  DtElementDefinition* clone() const;
122 
124  virtual void clearAllVisualizerSets();
125 
126  protected:
127 
131 
133  DtElementDefinition(const DtUnicode& name);
134 
136  DtElementDefinition(const DtUnicode& name, DtElementDefinition* parent);
137 
138  public:
141 
142  private:
150  DtElementDefinition& operator=(const DtElementDefinition&);
151 
152  public:
155  DtElementDefinition* clone(const DtUnicode& name,
156  DtElementDefinition* newParent) const;
157 
159  void setName(const DtUnicode& name);
160 
162  void addChild(DtElementDefinition* child);
163 
165  void removeChild(DtElementDefinition* child);
166 
167  protected:
168 
169  typedef std::vector<DtElementDefinition*> DefinitionList;
170  typedef std::vector<DtVisualizerDefinitionSet*> DefinitionSetList;
171 
173  std::string myFileName;
175  std::vector<std::string> myDuplicateNames;
176  bool myIsHier;
178 
181  };
182 }
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
DefinitionList myChildren
Definition: DtElementDefinition.h:180
bool myDuplicateFlag
Definition: DtElementDefinition.h:177
The makVrv::DtVisualizerDefinitionSet is a collection of makVrv::DtVisualizerDefinition instances...
Definition: DtVisualizerDefinitionSet.h:28
std::vector< DtElementDefinition * > DefinitionList
Definition: DtElementDefinition.h:169
Manager which owns element definitions.for one type of element Use the makVrv::DtElementDefinitionTyp...
Definition: DtElementDefinitionManager.h:73
std::vector< std::string > myDuplicateNames
Definition: DtElementDefinition.h:175
DtElementDefinition * myParent
Definition: DtElementDefinition.h:179
std::vector< DtVisualizerDefinitionSet * > DefinitionSetList
Definition: DtElementDefinition.h:170
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DefinitionSetList mySets
Definition: DtElementDefinition.h:174
The element definition class contains the element definition information. The makVrv::DtElementDefini...
Definition: DtElementDefinition.h:26
bool myIsHier
Definition: DtElementDefinition.h:176
The abstract base visualizer attribute class.
Definition: DtVisualizerAttribute.h:27
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:26
std::string myFileName
Definition: DtElementDefinition.h:173
DtUnicode myName
Definition: DtElementDefinition.h:172
DtModelSetId
Definition: DtModelSetEnums.h:19
Contains DLL export macros.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)