VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVisualizerDefinition.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 #pragma once
7 #include <boost/unordered_map.hpp>
8 #include <vector>
9 #include <map>
10 #include <vrvCore/vrvCore.h>
11 #include <matrix/vlVector.h>
12 #include <matrix/vlTaitBryan.h>
13 
14 namespace makVrv
15 {
16  class DtVisualizerAttribute;
17  class DtVisualizerDefinitionSet;
18 
23  {
24  public:
25 
27  typedef std::map<std::string,DtVisualizerAttribute*> SortedAttributeMap;
28 
32  bool isEqual(const DtVisualizerDefinition&) const;
33 
35  const std::string& schemaName() const;
36 
39  int numberOfAttributes() const;
40 
47  const DtVisualizerAttribute* findAttribute(int index) const;
48 
54  void getAttributes(SortedAttributeMap& map) const;
55 
61  DtVisualizerAttribute* findAttribute(const std::string& name);
62 
68  const DtVisualizerAttribute* findAttribute(const std::string& name) const;
69 
76  const DtVisualizerAttribute* findAttributeLowercase(const std::string& name) const;
77 
82  DtVisualizerAttribute* findOrCreateLocalAttribute(const std::string& name);
83 
85  void setAttribute(const std::string& name,
86  std::auto_ptr<DtVisualizerAttribute> attribute );
87 
90  void removeAttribute(const std::string& name, bool localOnly);
91 
96  bool attributeLocal(const std::string& name) const;
97 
102  bool attributeInherited(const std::string& name) const;
103 
109  bool attributeInheritedLowercase(const std::string& name) const;
110 
115  bool attributeOverridden(const std::string& name) const;
116 
122  bool attributeOverriddenLowercase(const std::string& name) const;
123 
126  DtVisualizerDefinition* findParent();
127 
130  const DtVisualizerDefinition* findParent() const;
131 
134  unsigned int numberOfChildren() const;
135 
138  DtVisualizerDefinition* findChild(unsigned int index);
139 
142  const DtVisualizerDefinition* findChild(unsigned int index) const;
143 
147  int findChildIndex(const DtVisualizerDefinition* child) const;
148 
149  public:
152  static DtVector toVector(const std::string& param);
153 
156  static DtTaitBryan toTaitBryan(const std::string& param);
157 
158  protected:
159 
163 
165  DtVisualizerDefinition(const std::string& schemaName);
166 
168  DtVisualizerDefinition(const std::string& schemaName,
169  DtVisualizerDefinition* parent);
170 
172  DtVisualizerDefinition* clone(DtVisualizerDefinition* parent) const;
173 
176 
178  void setParent(DtVisualizerDefinition* parent);
179 
181  void addChild(DtVisualizerDefinition*);
182 
184  void removeChild(DtVisualizerDefinition*);
185 
186  private:
187 
188  //typedef boost::unordered_map<std::string,DtVisualizerAttribute*>
189  typedef std::map<std::string,DtVisualizerAttribute*>
191 
192  typedef std::vector<DtVisualizerDefinition*> DefinitionList;
193 
196 
197  std::string mySchemaName;
199  };
200 }
std::map< std::string, DtVisualizerAttribute * > SortedAttributeMap
A map of sorted visualizer attributes.
Definition: DtVisualizerDefinition.h:27
The makVrv::DtVisualizerDefinitionSet is a collection of makVrv::DtVisualizerDefinition instances...
Definition: DtVisualizerDefinitionSet.h:20
AttributeMap myAttributes
Definition: DtVisualizerDefinition.h:198
std::vector< DtVisualizerDefinition * > DefinitionList
Definition: DtVisualizerDefinition.h:192
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
std::string mySchemaName
Definition: DtVisualizerDefinition.h:197
DefinitionList myChildren
Definition: DtVisualizerDefinition.h:195
std::map< std::string, DtVisualizerAttribute * > AttributeMap
Definition: DtVisualizerDefinition.h:190
The abstract base visualizer attribute class.
Definition: DtVisualizerAttribute.h:24
A definition of a visualizer.
Definition: DtVisualizerDefinition.h:22
DtVisualizerDefinition * myParent
Definition: DtVisualizerDefinition.h:194
Contains DLL export macros.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)