![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00006 #pragma once 00007 #include <boost/unordered_map.hpp> 00008 #include <vector> 00009 #include <map> 00010 #include <vrvCore/vrvCore.h> 00011 00012 namespace makVrv 00013 { 00014 class DtVisualizerAttribute; 00015 class DtVisualizerDefinitionSet; 00016 00020 class DT_DLL_VRVCORE DtVisualizerDefinition 00021 { 00022 public: 00023 00025 typedef std::map<std::string,DtVisualizerAttribute*> SortedAttributeMap; 00026 00028 const std::string& schemaName() const; 00029 00032 int numberOfAttributes() const; 00033 00040 DtVisualizerAttribute* findAttribute(int index); 00041 00047 void getAttributes(SortedAttributeMap& map) const; 00048 00054 DtVisualizerAttribute* findAttribute(const std::string& name); 00055 00061 const DtVisualizerAttribute* findAttribute(const std::string& name) const; 00062 00067 DtVisualizerAttribute* findOrCreateLocalAttribute(const std::string& name); 00068 00070 void setAttribute(const std::string& name, 00071 std::auto_ptr<DtVisualizerAttribute> attribute ); 00072 00075 void removeAttribute(const std::string& name, bool localOnly); 00076 00081 bool attributeLocal(const std::string& name) const; 00082 00087 bool attributeInherited(const std::string& name) const; 00088 00093 bool attributeOverridden(const std::string& name) const; 00094 00095 00098 DtVisualizerDefinition* findParent(); 00099 00102 const DtVisualizerDefinition* findParent() const; 00103 00106 unsigned int numberOfChildren() const; 00107 00110 DtVisualizerDefinition* findChild(unsigned int index); 00111 00114 const DtVisualizerDefinition* findChild(unsigned int index) const; 00115 00119 int findChildIndex(const DtVisualizerDefinition* child) const; 00120 00121 protected: 00122 00125 friend class DtVisualizerDefinitionSet; 00126 00128 DtVisualizerDefinition(const std::string& schemaName); 00129 00131 DtVisualizerDefinition(const std::string& schemaName, 00132 DtVisualizerDefinition* parent); 00133 00135 DtVisualizerDefinition* clone(DtVisualizerDefinition* parent) const; 00136 00138 ~DtVisualizerDefinition(); 00139 00141 void setParent(DtVisualizerDefinition* parent); 00142 00144 void addChild(DtVisualizerDefinition*); 00145 00147 void removeChild(DtVisualizerDefinition*); 00148 00149 private: 00150 00151 typedef boost::unordered_map<std::string,DtVisualizerAttribute*> 00152 AttributeMap; 00153 00154 typedef std::vector<DtVisualizerDefinition*> DefinitionList; 00155 00156 DtVisualizerDefinition* myParent; 00157 DefinitionList myChildren; 00158 00159 std::string mySchemaName; 00160 AttributeMap myAttributes; 00161 }; 00162 }