Public Member Functions | Private Types | Private Attributes

mln::util::branch_iter< T > Class Template Reference

Basic 2D image class. More...

#include <branch_iter.hh>

List of all members.

Public Member Functions

 branch_iter (branch< T > branch)
unsigned deepness () const
 Give how deep is the iterator in the branch.
void invalidate ()
 Invalidate the iterator.
bool is_valid () const
 Test the iterator validity.
void next ()
 Go to the next point.
 operator util::tree_node< T > & () const
 Conversion to node.
util::tree_node< T > & operator* ()
void start ()
 Start an iteration.

Private Types

typedef std::vector
< util::tree_node< T >
* >::iterator 
child_iter
typedef std::pair< child_iter,
child_iter
iter_pair

Private Attributes

util::branch< T > branch_
 The branch to iter.
util::tree_node< T > * n_
std::stack< iter_pairs_
 Store child().begin() and child().end().

Detailed Description

template<typename T>
class mln::util::branch_iter< T >

Basic 2D image class.

The parameter T is the type of node's data. branch_iter is used to pre-order walk a branch.

Definition at line 52 of file branch_iter.hh.


Member Typedef Documentation

template<typename T >
typedef std::vector< util::tree_node<T>* >::iterator mln::util::branch_iter< T >::child_iter [private]

Definition at line 79 of file branch_iter.hh.

template<typename T >
typedef std::pair<child_iter, child_iter> mln::util::branch_iter< T >::iter_pair [private]

Definition at line 80 of file branch_iter.hh.


Constructor & Destructor Documentation

template<typename T >
mln::util::branch_iter< T >::branch_iter ( branch< T >  branch  )  [inline]

Definition at line 93 of file branch_iter.hh.

References mln::util::branch_iter< T >::invalidate().


Member Function Documentation

template<typename T >
unsigned mln::util::branch_iter< T >::deepness (  )  const [inline]

Give how deep is the iterator in the branch.

Definition at line 119 of file branch_iter.hh.

References mln::util::branch_iter< T >::is_valid(), mln::util::branch_iter< T >::n_, and mln::util::tree_node< T >::parent().

template<typename T >
void mln::util::branch_iter< T >::invalidate (  )  [inline]

Invalidate the iterator.

Definition at line 143 of file branch_iter.hh.

References mln::util::branch_iter< T >::n_.

Referenced by mln::util::branch_iter< T >::branch_iter(), and mln::util::branch_iter< T >::next().

template<typename T >
bool mln::util::branch_iter< T >::is_valid (  )  const [inline]

Test the iterator validity.

Definition at line 135 of file branch_iter.hh.

References mln::util::branch_iter< T >::n_.

Referenced by mln::util::branch_iter< T >::deepness().

template<typename T >
void mln::util::branch_iter< T >::next (  )  [inline]
template<typename T >
mln::util::branch_iter< T >::operator util::tree_node< T > & (  )  const [inline]

Conversion to node.

Definition at line 101 of file branch_iter.hh.

References mln::util::branch_iter< T >::n_.

template<typename T >
util::tree_node< T > & mln::util::branch_iter< T >::operator* (  )  [inline]

Definition at line 110 of file branch_iter.hh.

References mln::util::branch_iter< T >::n_.

template<typename T >
void mln::util::branch_iter< T >::start (  )  [inline]

Member Data Documentation

template<typename T >
util::branch<T> mln::util::branch_iter< T >::branch_ [private]

The branch to iter.

Definition at line 77 of file branch_iter.hh.

Referenced by mln::util::branch_iter< T >::start().

template<typename T >
util::tree_node<T>* mln::util::branch_iter< T >::n_ [private]
template<typename T >
std::stack< iter_pair > mln::util::branch_iter< T >::s_ [private]

Store child().begin() and child().end().

Definition at line 82 of file branch_iter.hh.

Referenced by mln::util::branch_iter< T >::next(), and mln::util::branch_iter< T >::start().