ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkTreeIteratorBase.h>
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.
Public Types | |
using | ChildIdentifier = typename TreeNodeType::ChildIdentifier |
enum | NodeType { UNDEFIND = 0, PREORDER = 1, INORDER = 2, POSTORDER = 3, LEVELORDER = 4, CHILD = 5, ROOT = 6, LEAF = 7 } |
using | Self = TreeIteratorBase |
using | TreeNodeType = typename TTreeType::TreeNodeType |
using | ValueType = typename TTreeType::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 ValueType & | Get () const |
virtual TreeIteratorBase < TTreeType > * | GetChild (int number) const |
virtual TreeNodeType * | GetNode () |
virtual const TreeNodeType * | GetNode () const |
const TreeNodeType * | GetParent () const |
TreeNodeType * | GetRoot () |
const TreeNodeType * | GetRoot () 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 () const |
bool | IsAtEnd () const |
virtual bool | IsLeaf () const |
virtual bool | IsRoot () const |
void | operator++ (int) |
virtual TreeIteratorBase < TTreeType > * | Parents () |
bool | Remove () |
virtual bool | RemoveChild (int number) |
void | Set (ValueType element) |
virtual | ~TreeIteratorBase ()=default |
Self & | operator++ () |
Self & | operator= (const Self &iterator) |
Protected Member Functions | |
virtual bool | HasNext () const =0 |
virtual const ValueType & | Next ()=0 |
TreeIteratorBase (TTreeType *tree, const TreeNodeType *start) | |
TreeIteratorBase (const TTreeType *tree, const TreeNodeType *start) | |
Protected Attributes | |
TreeNodeType * | m_Begin |
TreeNodeType * | m_End |
TreeNodeType * | m_Position |
const TreeNodeType * | m_Root |
TTreeType * | m_Tree |
using itk::TreeIteratorBase< TTreeType >::ChildIdentifier = typename TreeNodeType::ChildIdentifier |
Definition at line 50 of file itkTreeIteratorBase.h.
using itk::TreeIteratorBase< TTreeType >::Self = TreeIteratorBase |
Typedefs
Definition at line 47 of file itkTreeIteratorBase.h.
using itk::TreeIteratorBase< TTreeType >::TreeNodeType = typename TTreeType::TreeNodeType |
Definition at line 49 of file itkTreeIteratorBase.h.
using itk::TreeIteratorBase< TTreeType >::ValueType = typename TTreeType::ValueType |
Definition at line 48 of file itkTreeIteratorBase.h.
enum itk::TreeIteratorBase::NodeType |
Enumerations
Enumerator | |
---|---|
UNDEFIND | |
PREORDER | |
INORDER | |
POSTORDER | |
LEVELORDER | |
CHILD | |
ROOT | |
LEAF |
Definition at line 53 of file itkTreeIteratorBase.h.
|
virtualdefault |
|
protected |
Constructors
|
protected |
Constructors
|
virtual |
Add an element to the tree
|
virtual |
Add an element at a given position
|
virtual |
Add a subtree
|
virtual |
Return the current ChildPosition of an element
|
virtual |
Return a list of children
|
pure virtual |
Clone the iterator
Implemented in itk::LevelOrderTreeIterator< TTreeType >, itk::ChildTreeIterator< TTreeType >, itk::LeafTreeIterator< TTreeType >, itk::InOrderTreeIterator< TTreeType >, itk::PreOrderTreeIterator< TTreeType >, itk::PostOrderTreeIterator< TTreeType >, and itk::RootTreeIterator< TTreeType >.
|
virtual |
Count the number of nodes
|
virtual |
Count the number of children
|
virtual |
Disconnect the tree
|
virtual |
Get a value
|
virtual |
Return a list of child
|
virtual |
Get the current node
Referenced by itk::LeafTreeIterator< TTreeType >::FindNextNode().
|
virtual |
const TreeNodeType* itk::TreeIteratorBase< TTreeType >::GetParent | ( | ) | const |
Return the first parent found
TreeNodeType* itk::TreeIteratorBase< TTreeType >::GetRoot | ( | ) |
Get the root
const TreeNodeType* itk::TreeIteratorBase< TTreeType >::GetRoot | ( | ) | const |
|
virtual |
Get the subtree
TTreeType* itk::TreeIteratorBase< TTreeType >::GetTree | ( | ) | const |
Get the tree
|
pure virtual |
Get the type of iterator
Implemented in itk::LevelOrderTreeIterator< TTreeType >, itk::LeafTreeIterator< TTreeType >, itk::ChildTreeIterator< TTreeType >, itk::InOrderTreeIterator< TTreeType >, itk::PreOrderTreeIterator< TTreeType >, itk::PostOrderTreeIterator< TTreeType >, and itk::RootTreeIterator< TTreeType >.
|
inline |
Move an iterator to the beginning of the tree
Definition at line 149 of file itkTreeIteratorBase.h.
|
virtual |
Go to the specified child
Reimplemented in itk::ChildTreeIterator< TTreeType >.
|
inline |
Move an iterator to the end of the tree.
Definition at line 152 of file itkTreeIteratorBase.h.
|
virtual |
Go to the parent
Reimplemented in itk::ChildTreeIterator< TTreeType >.
|
virtual |
Return true if the current node has a child
Referenced by itk::LeafTreeIterator< TTreeType >::FindNextNode().
|
protectedpure virtual |
|
virtual |
Return true if the current node has a parent
|
inline |
Is the iterator at the beginning of the tree?
Definition at line 155 of file itkTreeIteratorBase.h.
|
inline |
Is the iterator at the end of the tree?. The iterator is at the end if it points to nullptr
Definition at line 159 of file itkTreeIteratorBase.h.
Referenced by itk::LeafTreeIterator< TTreeType >::FindNextNode().
|
virtual |
Return true if the current node is a leaf
|
virtual |
Return true if the current node is a root
|
protectedpure virtual |
|
inline |
operator++
Definition at line 166 of file itkTreeIteratorBase.h.
|
inline |
operator++
Definition at line 175 of file itkTreeIteratorBase.h.
|
inline |
operator =
Definition at line 181 of file itkTreeIteratorBase.h.
References itk::TreeIteratorBase< TTreeType >::m_Begin, itk::TreeIteratorBase< TTreeType >::m_End, itk::TreeIteratorBase< TTreeType >::m_Position, itk::TreeIteratorBase< TTreeType >::m_Root, and itk::TreeIteratorBase< TTreeType >::m_Tree.
|
virtual |
Return a list of parents
bool itk::TreeIteratorBase< TTreeType >::Remove | ( | ) |
Remove the current node from the tree
|
virtual |
Remove a child
void itk::TreeIteratorBase< TTreeType >::Set | ( | ValueType | element | ) |
Set the current value of the node
|
mutableprotected |
|
mutableprotected |
Definition at line 206 of file itkTreeIteratorBase.h.
Referenced by itk::TreeIteratorBase< TTreeType >::operator=().
|
mutableprotected |
Definition at line 204 of file itkTreeIteratorBase.h.
Referenced by itk::TreeIteratorBase< TTreeType >::operator=(), itk::PostOrderTreeIterator< TTreeType >::PostOrderTreeIterator(), and itk::RootTreeIterator< TTreeType >::RootTreeIterator().
|
protected |
Definition at line 207 of file itkTreeIteratorBase.h.
Referenced by itk::LeafTreeIterator< TTreeType >::FindNextNode(), itk::TreeIteratorBase< TTreeType >::operator=(), and itk::RootTreeIterator< TTreeType >::RootTreeIterator().
|
protected |
Definition at line 208 of file itkTreeIteratorBase.h.
Referenced by itk::TreeIteratorBase< TTreeType >::operator=().