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 00058 const LevelDescriptor::AttributeDescriptorListType& 00059 GetAttributeDescriptorList(int level) const 00060 { return GetDescriptor().GetAttributeDescriptorList(level); } 00061 00062 virtual void Print() const; 00063 00064 private: 00065 Descriptor mDescriptor; 00066 00067 }; 00068 // EO class Tree 00069 //===================================================================== 00070 00071 } // EO namespace tree 00072 00073 } // EO namespace creaImageIO 00074 00075 // EOF 00076 #endif