![]() |
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 00008 #include <string> 00009 #include <vector> 00010 #include <vrvCore/vrvCore.h> 00011 00012 namespace makVrv 00013 { 00014 class DtVisualizerDefinition; 00015 class DtElementDefinition; 00016 00020 class DT_DLL_VRVCORE DtVisualizerDefinitionSet 00021 { 00022 public: 00023 00026 int numberOfVisualizerDefinitions() const; 00027 00031 DtVisualizerDefinition* findVisualizerDefinition(unsigned int index); 00032 00038 const DtVisualizerDefinition* findVisualizerDefinition( 00039 unsigned int index) const; 00040 00043 void findVisualizerDefinitions(const std::string& schemaName, 00044 std::vector<const DtVisualizerDefinition*>& defs) const; 00045 00048 void findVisualizerDefinitions(const std::string& schemaName, 00049 std::vector<DtVisualizerDefinition*>& defs); 00050 00056 int indexOfVisualizerDefinition(const DtVisualizerDefinition* def) const; 00057 00061 DtVisualizerDefinition* createVisualizerDefinition( 00062 const std::string& schemaName); 00063 00070 DtVisualizerDefinition* createVisualizerDefinition( 00071 DtVisualizerDefinition* parent); 00072 00078 void destroyVisualizerDefinition(DtVisualizerDefinition* def); 00079 00083 bool visualizerDefinitionLocal(const DtVisualizerDefinition* def) const; 00084 00091 bool visualizerDefinitionInherited(const DtVisualizerDefinition* def) const; 00092 00098 bool visualizerDefinitionOverridden(const DtVisualizerDefinition* def) const; 00099 00102 DtVisualizerDefinitionSet* findParent(); 00103 00106 const DtVisualizerDefinitionSet* findParent() const; 00107 00110 unsigned int numberOfChildren() const; 00111 00114 DtVisualizerDefinitionSet* findChild(unsigned int index); 00115 00118 const DtVisualizerDefinitionSet* findChild(unsigned int index) const; 00119 00123 int findChildIndex(const DtVisualizerDefinitionSet* child) const; 00124 00125 protected: 00126 00129 friend class DtElementDefinitionNew; 00130 00132 DtVisualizerDefinitionSet(); 00133 00135 DtVisualizerDefinitionSet(DtVisualizerDefinitionSet* parent); 00136 00138 DtVisualizerDefinitionSet* clone(DtVisualizerDefinitionSet* parent) const; 00139 00141 ~DtVisualizerDefinitionSet(); 00142 00144 void addChild(DtVisualizerDefinitionSet* defSet); 00145 00147 void removeChild(DtVisualizerDefinitionSet* defSet); 00148 00150 void addOwnership(DtVisualizerDefinition* definition); 00151 00155 bool removeOwnership(DtVisualizerDefinition* definition); 00156 00159 int inheritenceIndex(DtVisualizerDefinition* definition); 00160 00162 void addInheritance(DtVisualizerDefinition* definition, 00163 int inheritenceIndex); 00164 00166 void replaceInheritance(DtVisualizerDefinition* oldDef, 00167 DtVisualizerDefinition* newDef); 00168 00170 void removeInheritance(DtVisualizerDefinition* oldDef); 00171 00176 DtVisualizerDefinitionSet* findOwnerOfVisualizerDefinition( 00177 const DtVisualizerDefinition* def, unsigned int& indexToDef); 00178 00183 const DtVisualizerDefinitionSet* findOwnerOfVisualizerDefinition( 00184 const DtVisualizerDefinition* def, unsigned int& indexToDef) const; 00185 00188 DtVisualizerDefinition* findEquivalentDefinition( 00189 const DtVisualizerDefinition* def, 00190 DtVisualizerDefinitionSet* equivalentToThis) const; 00191 00195 int level() const; 00196 00201 DtVisualizerDefinitionSet* findParent(int level); 00202 00204 void replaceDefinitionParents(DtVisualizerDefinition* oldDef, 00205 DtVisualizerDefinition* newDef); 00206 00208 void destroyVisualizerDefinitionsWithParent(DtVisualizerDefinition* parent); 00209 00210 protected: 00211 00212 typedef std::vector<DtVisualizerDefinition*> DefinitionList; 00213 typedef std::vector<DtVisualizerDefinitionSet*> VisualizerDefinitionSetList; 00214 00215 DtVisualizerDefinitionSet* myParent; 00216 VisualizerDefinitionSetList myChildren; 00217 00218 DefinitionList myDefinitions; 00219 DefinitionList myInheritedDefintions; 00220 }; 00221 }