A base class for site iterator identity adaptors. More...
#include <piter_identity.hh>
Public Types | |
typedef Site_Proxy< void > | category |
typedef E | exact_t |
typedef S::site | site |
The associated site type (as a Site_Proxy). | |
typedef S | target |
The associated target type. | |
Public Member Functions | |
void | change_target (const S &s) |
Change the site set targeted by this iterator. | |
void | invalidate () |
void | invalidate_ () |
Invalidate the iterator. | |
bool | is_valid () const |
bool | is_valid_ () const |
Test the iterator validity. | |
void | next () |
Go to the next element. | |
void | next_ () |
Go to the next point. | |
const S::psite & | p_hook_ () const |
Hook to the current location. | |
void | pi_change_target_ (const S &s) |
Change the site set targeted by pi_. | |
void | start () |
void | start_ () |
Start an iteration. | |
const S::psite & | subj_ () |
Give the subject (required by the Proxy interface). | |
const S *& | target_ () |
Give the target address. It might be 0. | |
const S::site & | to_site () const |
Return the site it points to (as a Site_Proxy). | |
Protected Member Functions | |
piter_identity_ () | |
Constructor without argument. | |
piter_identity_ (const Pi &piter) | |
Constructor from a point iterator piter . | |
Protected Attributes | |
Pi | pi_ |
The adaptee site iterator. | |
const S * | s_ |
The target. | |
Private Types | |
typedef piter_adaptor_< Pi, mln_pset(Pi), E > | super_ |
A base class for site iterator identity adaptors.
Parameter Pi
is the type of the site iterator adaptee; parameter E is the exact type.
Definition at line 48 of file piter_identity.hh.
typedef Site_Proxy<void> mln::Site_Proxy< E >::category [inherited] |
Reimplemented from mln::Proxy< E >.
Reimplemented in mln::Pseudo_Site< E >, mln::Pseudo_Site< complex_psite< D, G > >, mln::Pseudo_Site< p_edges_psite< G, F > >, mln::Pseudo_Site< p_indexed_psite< S > >, mln::Pseudo_Site< p_double_psite< S, Sp > >, mln::Pseudo_Site< faces_psite< N, D, P > >, mln::Pseudo_Site< p_run_psite< P > >, and mln::Pseudo_Site< p_vertices_psite< G, F > >.
Definition at line 63 of file site_proxy.hh.
typedef E mln::Object< E >::exact_t [inherited] |
typedef S ::site mln::internal::site_iterator_base< S, E >::site [inherited] |
The associated site type (as a Site_Proxy).
Definition at line 64 of file site_iterator_base.hh.
typedef piter_adaptor_< Pi, mln_pset(Pi), E > mln::internal::piter_identity_< Pi, E >::super_ [private] |
Reimplemented from mln::internal::site_iterator_base< S, E >.
Reimplemented in mln::morpho::tree::up_site_piter< T >, mln::morpho::tree::dn_site_piter< T >, mln::morpho::tree::up_node_piter< T >, mln::morpho::tree::dn_node_piter< T >, mln::morpho::tree::up_leaf_piter< T >, and mln::morpho::tree::dn_leaf_piter< T >.
Definition at line 52 of file piter_identity.hh.
typedef S mln::internal::site_iterator_base< S, E >::target [inherited] |
The associated target type.
Definition at line 61 of file site_iterator_base.hh.
mln::internal::piter_identity_< Pi, E >::piter_identity_ | ( | ) | [inline, protected] |
Constructor without argument.
Definition at line 68 of file piter_identity.hh.
mln::internal::piter_identity_< Pi, E >::piter_identity_ | ( | const Pi & | piter | ) | [inline, protected] |
Constructor from a point iterator piter
.
Definition at line 74 of file piter_identity.hh.
void mln::internal::piter_adaptor_< Pi, S, E >::change_target | ( | const S & | s | ) | [inline, inherited] |
Change the site set targeted by this iterator.
Definition at line 151 of file piter_adaptor.hh.
References mln::exact(), mln::Site_Iterator< E >::invalidate(), and mln::internal::site_iterator_base< S, E >::s_.
Referenced by mln::morpho::tree::dn_leaf_piter< T >::dn_leaf_piter(), mln::morpho::tree::dn_node_piter< T >::dn_node_piter(), mln::morpho::tree::dn_site_piter< T >::dn_site_piter(), mln::p_if_piter_< Pi, S, F >::p_if_piter_(), mln::morpho::tree::up_leaf_piter< T >::up_leaf_piter(), and mln::morpho::tree::up_node_piter< T >::up_node_piter().
void mln::Site_Iterator< E >::invalidate | ( | ) | [inline, inherited] |
Definition at line 112 of file site_iterator.hh.
References mln::exact(), and mln::Site_Iterator< E >::is_valid().
Referenced by mln::internal::site_relative_iterator_base< S, E, C >::center_at(), mln::internal::site_set_iterator_base< S, E >::change_target(), mln::internal::site_relative_iterator_base< S, E, C >::change_target(), mln::internal::piter_adaptor_< Pi, S, E >::change_target(), and mln::p_transformed_piter< Pi, S, F >::change_target().
void mln::internal::piter_adaptor_< Pi, S, E >::invalidate_ | ( | ) | [inline, inherited] |
Invalidate the iterator.
Definition at line 119 of file piter_adaptor.hh.
References mln::internal::piter_adaptor_< Pi, S, E >::pi_.
Referenced by mln::internal::piter_adaptor_< Pi, S, E >::piter_adaptor_().
bool mln::Site_Iterator< E >::is_valid | ( | ) | const [inline, inherited] |
Definition at line 101 of file site_iterator.hh.
References mln::exact().
Referenced by mln::Site_Iterator< E >::invalidate(), mln::Site_Iterator< E >::next(), mln::internal::site_relative_iterator_base< S, E, C >::next_(), mln::internal::p_complex_piter_base_< I, S, P, E >::next_(), mln::internal::p_complex_piter_base_< I, S, P, E >::p_complex_piter_base_(), mln::internal::site_relative_iterator_base< S, E, C >::start_(), mln::internal::p_complex_piter_base_< I, S, P, E >::start_(), mln::internal::site_relative_iterator_base< S, E, C >::update(), and mln::internal::p_complex_piter_base_< I, S, P, E >::update_().
bool mln::internal::piter_adaptor_< Pi, S, E >::is_valid_ | ( | ) | const [inline, inherited] |
Test the iterator validity.
Definition at line 111 of file piter_adaptor.hh.
References mln::internal::piter_adaptor_< Pi, S, E >::pi_.
void mln::Site_Iterator< E >::next | ( | ) | [inline, inherited] |
Go to the next element.
Definition at line 92 of file site_iterator.hh.
References mln::exact(), and mln::Site_Iterator< E >::is_valid().
void mln::internal::piter_adaptor_< Pi, S, E >::next_ | ( | ) | [inline, inherited] |
Go to the next point.
Reimplemented in mln::hexa_fwd_piter_< S >, and mln::p_if_piter_< Pi, S, F >.
Definition at line 135 of file piter_adaptor.hh.
References mln::internal::piter_adaptor_< Pi, S, E >::pi_.
const S::psite & mln::internal::piter_adaptor_< Pi, S, E >::p_hook_ | ( | ) | const [inline, inherited] |
Hook to the current location.
Definition at line 143 of file piter_adaptor.hh.
References mln::internal::piter_adaptor_< Pi, S, E >::pi_.
void mln::internal::piter_adaptor_< Pi, S, E >::pi_change_target_ | ( | const S & | s | ) | [inline, inherited] |
Change the site set targeted by pi_.
This default impl is a no-op. This method might be overridden.
Definition at line 164 of file piter_adaptor.hh.
References mln::internal::piter_adaptor_< Pi, S, E >::pi_.
void mln::Site_Iterator< E >::start | ( | ) | [inline, inherited] |
Definition at line 123 of file site_iterator.hh.
References mln::exact().
void mln::internal::piter_adaptor_< Pi, S, E >::start_ | ( | ) | [inline, inherited] |
Start an iteration.
Reimplemented in mln::p_if_piter_< Pi, S, F >.
Definition at line 127 of file piter_adaptor.hh.
References mln::internal::piter_adaptor_< Pi, S, E >::pi_.
const S::psite & mln::internal::site_iterator_base< S, E >::subj_ | ( | ) | [inline, inherited] |
Give the subject (required by the Proxy interface).
Reimplemented in mln::internal::site_relative_iterator_base< S, E, C >, mln::internal::site_relative_iterator_base< mixed_neighb< W >, neighb_bkd_niter< W >, mixed_neighb< W >::psite >, mln::internal::site_relative_iterator_base< W, graph_window_piter< S, W, I >, W::center_t >, mln::internal::site_relative_iterator_base< neighb< W >, neighb_bkd_niter< W >, neighb< W >::psite >, mln::internal::site_relative_iterator_base< multiple< W, F >, multiple_qiter< W, F > >, mln::internal::site_relative_iterator_base< V, dpsites_bkd_piter< V > >, mln::internal::site_relative_iterator_base< neighb< W >, neighb_fwd_niter< W >, neighb< W >::psite >, mln::internal::site_relative_iterator_base< W, graph_window_if_piter< S, W, I > >, mln::internal::site_relative_iterator_base< mixed_neighb< W >, neighb_fwd_niter< W >, mixed_neighb< W >::psite >, mln::internal::site_relative_iterator_base< W, complex_window_fwd_piter< I, G, W > >, mln::internal::site_relative_iterator_base< W, complex_window_bkd_piter< I, G, W > >, mln::internal::site_relative_iterator_base< N, E, N::psite >, mln::internal::site_relative_iterator_base< multiple_size< n, W, F >, multiple_size_qiter< n, W, F > >, mln::internal::site_relative_iterator_base< N, complex_neighborhood_bkd_piter< I, G, N > >, mln::internal::site_relative_iterator_base< N, complex_neighborhood_fwd_piter< I, G, N > >, and mln::internal::site_relative_iterator_base< V, dpsites_fwd_piter< V > >.
Definition at line 119 of file site_iterator_base.hh.
References mln::exact().
const S *& mln::internal::site_iterator_base< S, E >::target_ | ( | ) | [inline, inherited] |
Give the target address. It might be 0.
Definition at line 127 of file site_iterator_base.hh.
const S::site & mln::internal::site_iterator_base< S, E >::to_site | ( | ) | const [inline, inherited] |
Return the site it points to (as a Site_Proxy).
Definition at line 110 of file site_iterator_base.hh.
References mln::exact().
Referenced by mln::morpho::watershed::topo_wst< I, N >::BuildComponentTree(), mln::morpho::watershed::topo_wst< I, N >::highest_fork(), and mln::morpho::watershed::w_constructible().
Pi mln::internal::piter_adaptor_< Pi, S, E >::pi_ [protected, inherited] |
The adaptee site iterator.
Definition at line 88 of file piter_adaptor.hh.
Referenced by mln::internal::piter_adaptor_< Pi, S, E >::invalidate_(), mln::internal::piter_adaptor_< Pi, S, E >::is_valid_(), mln::internal::piter_adaptor_< Pi, S, E >::next_(), mln::p_if_piter_< Pi, S, F >::next_(), mln::internal::piter_adaptor_< Pi, S, E >::p_hook_(), mln::internal::piter_adaptor_< Pi, S, E >::pi_change_target_(), mln::p_if_piter_< Pi, S, F >::pi_change_target_(), mln::internal::piter_adaptor_< Pi, S, E >::start_(), and mln::p_if_piter_< Pi, S, F >::start_().
const S* mln::internal::site_iterator_base< S, E >::s_ [protected, inherited] |
The target.
Definition at line 90 of file site_iterator_base.hh.
Referenced by mln::internal::site_set_iterator_base< S, E >::change_target(), mln::internal::site_relative_iterator_base< S, E, C >::change_target(), mln::internal::piter_adaptor_< Pi, S, E >::change_target(), mln::p_transformed_piter< Pi, S, F >::change_target(), mln::p_transformed_piter< Pi, S, F >::next_(), mln::p_if_piter_< Pi, S, F >::next_(), mln::internal::site_set_iterator_base< S, E >::site_set(), mln::internal::site_relative_iterator_base< S, E, C >::site_set(), mln::p_transformed_piter< Pi, S, F >::start_(), mln::p_if_piter_< Pi, S, F >::start_(), and mln::internal::site_relative_iterator_base< S, E, C >::update().