ITK  4.2.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
itk::TreeIteratorBase< TTreeType > Class Template Reference

#include <itkTreeIteratorBase.h>

+ Inheritance diagram for itk::TreeIteratorBase< TTreeType >:

List of all members.

Public Types

typedef
TreeNodeType::ChildIdentifier 
ChildIdentifier
enum  NodeType {
  UNDEFIND = 0,
  PREORDER = 1,
  INORDER = 2,
  POSTORDER = 3,
  LEVELORDER = 4,
  CHILD = 5,
  ROOT = 6,
  LEAF = 7
}
typedef TreeIteratorBase Self
typedef TTreeType::TreeNodeType TreeNodeType
typedef TTreeType::ValueType ValueType

Public Member Functions

virtual bool Add (ValueType element)
virtual bool Add (int position, ValueType element)
virtual bool Add (TTreeType &subTree)
virtual int ChildPosition (ValueType element) const
virtual TreeIteratorBase
< TTreeType > * 
Children ()
virtual TreeIteratorBase
< TTreeType > * 
Clone ()=0
virtual int Count ()
virtual int CountChildren () const
virtual bool Disconnect ()
virtual const ValueTypeGet () const
virtual TreeIteratorBase
< TTreeType > * 
GetChild (int number) const
virtual TreeNodeTypeGetNode ()
virtual const TreeNodeTypeGetNode () const
const TreeNodeTypeGetParent () const
TreeNodeTypeGetRoot ()
const TreeNodeTypeGetRoot () const
virtual TTreeType * GetSubTree () const
TTreeType * GetTree () const
virtual NodeType GetType () const =0
void GoToBegin ()
virtual bool GoToChild (ChildIdentifier number=0)
void GoToEnd ()
virtual bool GoToParent ()
virtual bool HasChild (int number=0) const
virtual bool HasParent () const
bool IsAtBegin (void) const
bool IsAtEnd (void) const
virtual bool IsLeaf () const
virtual bool IsRoot () const
const Selfoperator= (const Self &iterator)
virtual TreeIteratorBase
< TTreeType > * 
Parents ()
bool Remove ()
virtual bool RemoveChild (int number)
void Set (ValueType element)
virtual ~TreeIteratorBase ()
Selfoperator++ ()
void operator++ (int)

Protected Member Functions

virtual bool HasNext () const =0
virtual const ValueTypeNext ()=0
 TreeIteratorBase (TTreeType *tree, const TreeNodeType *start)
 TreeIteratorBase (const TTreeType *tree, const TreeNodeType *start)

Protected Attributes

TreeNodeTypem_Begin
TreeNodeTypem_End
TreeNodeTypem_Position
const TreeNodeTypem_Root
TTreeType * m_Tree

Detailed Description

template<class TTreeType>
class itk::TreeIteratorBase< TTreeType >

This class provides the base implementation for tree iterators.

Events will notify interested observers about tree changes. These events all derive from TreeChangeEvent. They are:

All those events have a member GetChangePosition(), which returns an iterator to the position that has changd. Please note that this iterator may not be fully functional, but you should always be able to use its Get() method to retrieve the thing it points to.

Definition at line 42 of file itkTreeIteratorBase.h.


Member Typedef Documentation

template<class TTreeType>
typedef TreeNodeType::ChildIdentifier itk::TreeIteratorBase< TTreeType >::ChildIdentifier

Reimplemented in itk::ChildTreeIterator< TTreeType >.

Definition at line 50 of file itkTreeIteratorBase.h.

template<class TTreeType>
typedef TreeIteratorBase itk::TreeIteratorBase< TTreeType >::Self
template<class TTreeType>
typedef TTreeType::TreeNodeType itk::TreeIteratorBase< TTreeType >::TreeNodeType
template<class TTreeType>
typedef TTreeType::ValueType itk::TreeIteratorBase< TTreeType >::ValueType

Member Enumeration Documentation

template<class TTreeType>
enum itk::TreeIteratorBase::NodeType

Constructor & Destructor Documentation

template<class TTreeType>
virtual itk::TreeIteratorBase< TTreeType >::~TreeIteratorBase ( )
inlinevirtual

Definition at line 193 of file itkTreeIteratorBase.h.

template<class TTreeType>
itk::TreeIteratorBase< TTreeType >::TreeIteratorBase ( TTreeType *  tree,
const TreeNodeType start 
)
protected

Constructors

template<class TTreeType>
itk::TreeIteratorBase< TTreeType >::TreeIteratorBase ( const TTreeType *  tree,
const TreeNodeType start 
)
protected

Constructors


Member Function Documentation

template<class TTreeType>
virtual bool itk::TreeIteratorBase< TTreeType >::Add ( ValueType  element)
virtual

Add an element to the tree

template<class TTreeType>
virtual bool itk::TreeIteratorBase< TTreeType >::Add ( int  position,
ValueType  element 
)
virtual

Add an element at a given position

template<class TTreeType>
virtual bool itk::TreeIteratorBase< TTreeType >::Add ( TTreeType &  subTree)
virtual

Add a subtree

template<class TTreeType>
virtual int itk::TreeIteratorBase< TTreeType >::ChildPosition ( ValueType  element) const
virtual

Return the current ChildPosition of an element

template<class TTreeType>
virtual TreeIteratorBase< TTreeType >* itk::TreeIteratorBase< TTreeType >::Children ( )
virtual

Return a list of children

template<class TTreeType>
virtual TreeIteratorBase< TTreeType >* itk::TreeIteratorBase< TTreeType >::Clone ( )
pure virtual
template<class TTreeType>
virtual int itk::TreeIteratorBase< TTreeType >::Count ( )
virtual

Count the number of nodes

template<class TTreeType>
virtual int itk::TreeIteratorBase< TTreeType >::CountChildren ( ) const
virtual

Count the number of children

template<class TTreeType>
virtual bool itk::TreeIteratorBase< TTreeType >::Disconnect ( )
virtual

Disconnect the tree

template<class TTreeType>
virtual const ValueType& itk::TreeIteratorBase< TTreeType >::Get ( ) const
virtual

Get a value

template<class TTreeType>
virtual TreeIteratorBase< TTreeType >* itk::TreeIteratorBase< TTreeType >::GetChild ( int  number) const
virtual

Return a list of child

template<class TTreeType>
virtual TreeNodeType* itk::TreeIteratorBase< TTreeType >::GetNode ( )
virtual

Get the current node

Referenced by itk::LeafTreeIterator< TTreeType >::FindNextNode().

template<class TTreeType>
virtual const TreeNodeType* itk::TreeIteratorBase< TTreeType >::GetNode ( ) const
virtual
template<class TTreeType>
const TreeNodeType* itk::TreeIteratorBase< TTreeType >::GetParent ( ) const

Return the first parent found

template<class TTreeType>
TreeNodeType* itk::TreeIteratorBase< TTreeType >::GetRoot ( )

Get the root

template<class TTreeType>
const TreeNodeType* itk::TreeIteratorBase< TTreeType >::GetRoot ( ) const
template<class TTreeType>
virtual TTreeType* itk::TreeIteratorBase< TTreeType >::GetSubTree ( ) const
virtual

Get the subtree

template<class TTreeType>
TTreeType* itk::TreeIteratorBase< TTreeType >::GetTree ( ) const

Get the tree

template<class TTreeType>
virtual NodeType itk::TreeIteratorBase< TTreeType >::GetType ( ) const
pure virtual
template<class TTreeType>
void itk::TreeIteratorBase< TTreeType >::GoToBegin ( void  )
inline

Move an iterator to the beginning of the tree

Definition at line 149 of file itkTreeIteratorBase.h.

References itk::TreeIteratorBase< TTreeType >::m_Begin, and itk::TreeIteratorBase< TTreeType >::m_Position.

template<class TTreeType>
virtual bool itk::TreeIteratorBase< TTreeType >::GoToChild ( ChildIdentifier  number = 0)
virtual

Go to the specified child

Reimplemented in itk::ChildTreeIterator< TTreeType >.

template<class TTreeType>
void itk::TreeIteratorBase< TTreeType >::GoToEnd ( void  )
inline

Move an iterator to the end of the tree.

Definition at line 152 of file itkTreeIteratorBase.h.

References itk::TreeIteratorBase< TTreeType >::m_End, and itk::TreeIteratorBase< TTreeType >::m_Position.

template<class TTreeType>
virtual bool itk::TreeIteratorBase< TTreeType >::GoToParent ( )
virtual

Go to the parent

Reimplemented in itk::ChildTreeIterator< TTreeType >.

template<class TTreeType>
virtual bool itk::TreeIteratorBase< TTreeType >::HasChild ( int  number = 0) const
virtual

Return true if the current node has a child

Referenced by itk::LeafTreeIterator< TTreeType >::FindNextNode().

template<class TTreeType>
virtual bool itk::TreeIteratorBase< TTreeType >::HasNext ( ) const
protectedpure virtual
template<class TTreeType>
virtual bool itk::TreeIteratorBase< TTreeType >::HasParent ( ) const
virtual

Return true if the current node has a parent

template<class TTreeType>
bool itk::TreeIteratorBase< TTreeType >::IsAtBegin ( void  ) const
inline

Is the iterator at the beginning of the tree?

Definition at line 155 of file itkTreeIteratorBase.h.

References itk::TreeIteratorBase< TTreeType >::m_Begin, and itk::TreeIteratorBase< TTreeType >::m_Position.

template<class TTreeType>
bool itk::TreeIteratorBase< TTreeType >::IsAtEnd ( void  ) const
inline

Is the iterator at the end of the tree?. The iterator is at the end if it points to NULL

Definition at line 159 of file itkTreeIteratorBase.h.

References itk::TreeIteratorBase< TTreeType >::m_End, and itk::TreeIteratorBase< TTreeType >::m_Position.

Referenced by itk::LeafTreeIterator< TTreeType >::FindNextNode().

template<class TTreeType>
virtual bool itk::TreeIteratorBase< TTreeType >::IsLeaf ( ) const
virtual

Return true if the current node is a leaf

template<class TTreeType>
virtual bool itk::TreeIteratorBase< TTreeType >::IsRoot ( ) const
virtual

Return true if the current node is a root

template<class TTreeType>
virtual const ValueType& itk::TreeIteratorBase< TTreeType >::Next ( )
protectedpure virtual
template<class TTreeType>
Self& itk::TreeIteratorBase< TTreeType >::operator++ ( )
inline

operator++

Definition at line 166 of file itkTreeIteratorBase.h.

References itk::TreeIteratorBase< TTreeType >::Next().

template<class TTreeType>
void itk::TreeIteratorBase< TTreeType >::operator++ ( int  )
inline

operator++

Definition at line 175 of file itkTreeIteratorBase.h.

References itk::TreeIteratorBase< TTreeType >::Next().

template<class TTreeType>
const Self& itk::TreeIteratorBase< TTreeType >::operator= ( const Self iterator)
inline
template<class TTreeType>
virtual TreeIteratorBase< TTreeType >* itk::TreeIteratorBase< TTreeType >::Parents ( )
virtual

Return a list of parents

template<class TTreeType>
bool itk::TreeIteratorBase< TTreeType >::Remove ( )

Remove the current node from the tree

template<class TTreeType>
virtual bool itk::TreeIteratorBase< TTreeType >::RemoveChild ( int  number)
virtual

Remove a child

template<class TTreeType>
void itk::TreeIteratorBase< TTreeType >::Set ( ValueType  element)

Set the current value of the node


Member Data Documentation

template<class TTreeType>
TreeNodeType* itk::TreeIteratorBase< TTreeType >::m_Begin
mutableprotected
template<class TTreeType>
TreeNodeType* itk::TreeIteratorBase< TTreeType >::m_End
mutableprotected
template<class TTreeType>
TreeNodeType* itk::TreeIteratorBase< TTreeType >::m_Position
mutableprotected
template<class TTreeType>
const TreeNodeType* itk::TreeIteratorBase< TTreeType >::m_Root
protected
template<class TTreeType>
TTreeType* itk::TreeIteratorBase< TTreeType >::m_Tree
protected

The documentation for this class was generated from the following file: