00001 #ifndef __creaImageIOTree_h_INCLUDED__ 00002 #define __creaImageIOTree_h_INCLUDED__ 00003 00004 #include <creaImageIOTreeNode.h> 00005 00006 namespace creaImageIO 00007 { 00008 00009 namespace tree 00010 { 00014 //===================================================================== 00016 struct TreeData 00017 { 00018 TreeData() {} 00019 virtual ~TreeData() {} 00020 }; 00021 //===================================================================== 00022 00023 //===================================================================== 00025 00027 class Tree : public Node 00028 { 00029 public: 00031 Tree(); 00033 virtual ~Tree(); 00034 00036 00038 virtual Tree* GetTree() { return this; } 00040 virtual const Tree* GetTree() const { return this; } 00042 virtual int GetLevel() const { return 0; } 00043 00045 const Descriptor& GetDescriptor() const { return mDescriptor; } 00047 Descriptor& GetDescriptor() { return mDescriptor; } 00048 00050 unsigned int GetNumberOfLevels() 00051 { return GetDescriptor().GetNumberOfLevels(); } 00052 00054 const LevelDescriptor& GetLevelDescriptor(int level) const 00055 { return GetDescriptor().GetLevelDescriptor(level); } 00056 00060 const LevelDescriptor::AttributeDescriptorListType& 00061 GetAttributeDescriptorList(int level, int type = 0) const 00062 { return GetDescriptor().GetAttributeDescriptorList(level, type); } 00063 00064 virtual void Print() const; 00065 00066 00068 void CopyAttributeDescriptorList(int level) 00069 { 00070 GetDescriptor().CopyAttributeDescriptorList(level); 00071 } 00072 00074 const std::string isAttributeExist(const std::string i_attr) 00075 { 00076 return mDescriptor.isExist(i_attr); 00077 } 00078 00079 private: 00080 Descriptor mDescriptor; 00081 00082 }; 00083 // EO class Tree 00084 //===================================================================== 00085 00086 } // EO namespace tree 00087 00088 } // EO namespace creaImageIO 00089 00090 // EOF 00091 #endif