VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtVisualizerDefinition.h
Go to the documentation of this file.
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 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)