X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaImageIOTree.h;fp=src%2FcreaImageIOTree.h;h=de5b94a062c84b57a4b42f913e71ff6dcfbf44df;hb=3a22e19184c369b130d4caa992a8e98e50c7a0ee;hp=0000000000000000000000000000000000000000;hpb=916a5e3008de7387aaf45e9d4e4ebbe6503205c3;p=creaImageIO.git diff --git a/src/creaImageIOTree.h b/src/creaImageIOTree.h new file mode 100644 index 0000000..de5b94a --- /dev/null +++ b/src/creaImageIOTree.h @@ -0,0 +1,76 @@ +#ifndef __creaImageIOTree_h_INCLUDED__ +#define __creaImageIOTree_h_INCLUDED__ + +#include + +namespace creaImageIO +{ + + namespace tree + { + /** + * \ingroup Tree + */ + //===================================================================== + /// Abstract class to store user data on a Tree + struct TreeData + { + TreeData() {} + virtual ~TreeData() {} + }; + //===================================================================== + + //===================================================================== + /// An attributed Tree structure + /** \ingroup Tree + */ + class Tree : public Node + { + public: + /// Ctor + Tree(); + /// Virtual destructor + virtual ~Tree(); + + /// Returns the descriptor of the tree + + /// Returns the tree to which the node belongs + virtual Tree* GetTree() { return this; } + /// Returns the tree to which the node belongs + virtual const Tree* GetTree() const { return this; } + /// Returns the level of the node in the tree + virtual int GetLevel() const { return 0; } + + /// Returns the Descriptor of the tree (const) + const Descriptor& GetDescriptor() const { return mDescriptor; } + /// Returns the descriptor of the tree + Descriptor& GetDescriptor() { return mDescriptor; } + + /// Returns the number of levels of the tree + unsigned int GetNumberOfLevels() + { return GetDescriptor().GetNumberOfLevels(); } + + /// Returns the LevelDescriptor of a given level (const ref) + const LevelDescriptor& GetLevelDescriptor(int level) const + { return GetDescriptor().GetLevelDescriptor(level); } + + /// Returns the AttributeDescriptorList of a given level (const ref) + const LevelDescriptor::AttributeDescriptorListType& + GetAttributeDescriptorList(int level) const + { return GetDescriptor().GetAttributeDescriptorList(level); } + + virtual void Print() const; + + private: + Descriptor mDescriptor; + + }; + // EO class Tree + //===================================================================== + + } // EO namespace tree + +} // EO namespace creaImageIO + +// EOF +#endif