mln::graph_window_if_piter< S, W, I > Class Template Reference

Forward iterator on line graph window. More...

#include <graph_window_if_piter.hh>

Inheritance diagram for mln::graph_window_if_piter< S, W, I >:

Inheritance graph

List of all members.

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.
typedef S::fun_t::result P
 Associated types.

Public Member Functions

const C & center () const
 The psite around which this iterator moves.
template<typename P>
void center_at (const P &c)
void change_target (const S &s)
 Change the site set targeted by this iterator.
template<typename Pref>
void init_ (const Window< W > &win, const Pref &p_ref)
 Delayed initialization.
void invalidate ()
bool is_masked (const typename S::graph_element &center, const typename S::graph_element &element) const
 Return wheter a graph element must be masked by this window.
bool is_valid () const
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.
const S & site_set () const
 Give the site set (neighborhood or window) that this iterator browses.
void start ()
void start_ ()
 Start an iteration.
const S::psite & subj_ ()
 This overriding is very useful: it adds a test to prevent getting an invalid iterator when its center has moved.
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).
E & update ()
 Warning: this method is an advanced tool provided for very special occasions; if you are a regular user, you should never use it! Calling this method forces this relative iterator to synchronize with its center when it has just moved and when the relative iterator still makes sense.
template<typename I2>
void center_at_ (const p_graph_piter< S, I2 > &c)
 Do some work while setting the reference site.
template<typename Pref>
void center_at_ (const Pref &c)
 Do some work while setting the reference site.
W::psite compute_p_ () const
 Compute the current psite.
void do_next_ ()
 Go to the next point.
void do_start_ ()
 Start an iteration.
const S::graph_element & element () const
 Return the graph element pointed by this iterator.
unsigned id () const
 Return the graph element id.
void invalidate_ ()
 Invalidate the iterator.
bool is_valid_ () const
 Manipulation.
template<typename Pref>
 graph_window_if_piter (const Window< W > &win, const Pref &p_ref)
 graph_window_if_piter ()
 Construction.

Protected Attributes

const C * c_
 A pointer to the center psite around which this iterator moves.
const S * s_
 The target.

Package Attributes

 __pad0__:site_relative_iterator_base<W
self_ super_

Private Types

typedef graph_window_if_piter
< S, W, I > 
self_

Private Attributes

iter_


Detailed Description

template<typename S, typename W, typename I>
class mln::graph_window_if_piter< S, W, I >

Forward iterator on line graph window.

Definition at line 47 of file graph_window_if_piter.hh.


Member Typedef Documentation

template<typename E>
typedef Site_Proxy<void> mln::Site_Proxy< E >::category [inherited]

template<typename E>
typedef E mln::Object< E >::exact_t [inherited]

Definition at line 172 of file object.hh.

template<typename S, typename W, typename I>
typedef S::fun_t ::result mln::graph_window_if_piter< S, W, I >::P

Associated types.

Definition at line 60 of file graph_window_if_piter.hh.

template<typename S, typename W, typename I>
typedef graph_window_if_piter<S,W,I> mln::graph_window_if_piter< S, W, I >::self_ [private]

Definition at line 54 of file graph_window_if_piter.hh.

template<typename S, typename E>
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.

template<typename S, typename E>
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.


Constructor & Destructor Documentation

template<typename S, typename W, typename I>
mln::graph_window_if_piter< S, W, I >::graph_window_if_piter (  )  [inline]

Construction.

Definition at line 122 of file graph_window_if_piter.hh.

template<typename S, typename W, typename I>
template<typename Pref>
mln::graph_window_if_piter< S, W, I >::graph_window_if_piter ( const Window< W > &  win,
const Pref &  p_ref 
) [inline]


Member Function Documentation

template<typename S, typename E, typename C>
const C & mln::internal::site_relative_iterator_base< S, E, C >::center (  )  const [inline, inherited]

template<typename S, typename E, typename C>
template<typename P>
void mln::internal::site_relative_iterator_base< S, E, C >::center_at ( const P &  c  )  [inline, inherited]

template<typename S, typename W, typename I>
template<typename I2>
void mln::graph_window_if_piter< S, W, I >::center_at_ ( const p_graph_piter< S, I2 > &  c  )  [inline]

Do some work while setting the reference site.

Definition at line 197 of file graph_window_if_piter.hh.

References mln::p_graph_piter< S, I >::hook_elt_().

template<typename S, typename W, typename I>
template<typename Pref>
void mln::graph_window_if_piter< S, W, I >::center_at_ ( const Pref &  c  )  [inline]

Do some work while setting the reference site.

Definition at line 188 of file graph_window_if_piter.hh.

template<typename S, typename E, typename C>
void mln::internal::site_relative_iterator_base< S, E, C >::change_target ( const S &  s  )  [inline, inherited]

template<typename S, typename W, typename I>
W::psite mln::graph_window_if_piter< S, W, I >::compute_p_ (  )  const [inline]

Compute the current psite.

Definition at line 205 of file graph_window_if_piter.hh.

References mln::internal::site_relative_iterator_base< S, E, C >::center().

template<typename S, typename W, typename I>
void mln::graph_window_if_piter< S, W, I >::do_next_ (  )  [inline]

template<typename S, typename W, typename I>
void mln::graph_window_if_piter< S, W, I >::do_start_ (  )  [inline]

template<typename S, typename W, typename I>
const S::graph_element & mln::graph_window_if_piter< S, W, I >::element (  )  const [inline]

Return the graph element pointed by this iterator.

Definition at line 213 of file graph_window_if_piter.hh.

template<typename S, typename W, typename I>
unsigned mln::graph_window_if_piter< S, W, I >::id (  )  const [inline]

Return the graph element id.

FIXME: we do not want to have this member since there is an automatic conversion to the graph element. C++ does not seem to use this conversion operator.

Definition at line 221 of file graph_window_if_piter.hh.

template<typename S, typename W, typename I>
template<typename Pref>
void mln::graph_window_if_piter< S, W, I >::init_ ( const Window< W > &  win,
const Pref &  p_ref 
) [inline]

template<typename E>
void mln::Site_Iterator< E >::invalidate (  )  [inline, inherited]

template<typename S, typename W, typename I>
void mln::graph_window_if_piter< S, W, I >::invalidate_ (  )  [inline]

Invalidate the iterator.

Definition at line 159 of file graph_window_if_piter.hh.

template<typename S, typename I, typename E>
bool mln::internal::is_masked_impl_selector< S, I, E >::is_masked ( const typename S::graph_element &  center,
const typename S::graph_element &  element 
) const [inline, inherited]

Return wheter a graph element must be masked by this window.

Definition at line 87 of file is_masked_impl_selector.hh.

Referenced by mln::graph_window_if_piter< S, W, I >::do_next_(), and mln::graph_window_if_piter< S, W, I >::do_start_().

template<typename E>
bool mln::Site_Iterator< E >::is_valid (  )  const [inline, inherited]

template<typename S, typename W, typename I>
bool mln::graph_window_if_piter< S, W, I >::is_valid_ (  )  const [inline]

Manipulation.

Test if the iterator is valid.

Definition at line 151 of file graph_window_if_piter.hh.

template<typename E>
void mln::Site_Iterator< E >::next (  )  [inline, inherited]

Go to the next element.

Warning:
This is a final method; iterator classes should not re-defined this method. The actual "next" operation has to be defined through the next_ method.
Precondition:
The iterator is valid.

Definition at line 92 of file site_iterator.hh.

References mln::exact(), and mln::Site_Iterator< E >::is_valid().

Referenced by mln::morpho::tree::depth1st_piter< T >::start_().

template<typename S, typename E, typename C>
void mln::internal::site_relative_iterator_base< S, E, C >::next_ (  )  [inline, inherited]

Go to the next point.

Definition at line 163 of file site_relative_iterator_base.hh.

References mln::exact(), and mln::Site_Iterator< E >::is_valid().

template<typename S, typename E, typename C>
const S::psite & mln::internal::site_relative_iterator_base< S, E, C >::p_hook_ (  )  const [inline, inherited]

Hook to the current location.

Definition at line 200 of file site_relative_iterator_base.hh.

template<typename S, typename E, typename C>
const S & mln::internal::site_relative_iterator_base< S, E, C >::site_set (  )  const [inline, inherited]

template<typename E>
void mln::Site_Iterator< E >::start (  )  [inline, inherited]

Reimplemented in mln::hexa_fwd_piter_< S >.

Definition at line 123 of file site_iterator.hh.

References mln::exact().

template<typename S, typename E, typename C>
void mln::internal::site_relative_iterator_base< S, E, C >::start_ (  )  [inline, inherited]

Start an iteration.

Definition at line 153 of file site_relative_iterator_base.hh.

References mln::exact(), and mln::Site_Iterator< E >::is_valid().

template<typename S, typename E, typename C>
const S::psite & mln::internal::site_relative_iterator_base< S, E, C >::subj_ (  )  [inline, inherited]

This overriding is very useful: it adds a test to prevent getting an invalid iterator when its center has moved.

Some sub-classes provide an update() method for the client to say that she really want to read the iterator just after the center has changed.

Reimplemented from mln::internal::site_iterator_base< S, E >.

Definition at line 191 of file site_relative_iterator_base.hh.

References mln::exact().

template<typename S, typename E>
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.

template<typename S, typename E>
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().

template<typename S, typename E, typename C>
E & mln::internal::site_relative_iterator_base< S, E, C >::update (  )  [inline, inherited]

Warning: this method is an advanced tool provided for very special occasions; if you are a regular user, you should never use it! Calling this method forces this relative iterator to synchronize with its center when it has just moved and when the relative iterator still makes sense.

Definition at line 221 of file site_relative_iterator_base.hh.

References mln::internal::site_relative_iterator_base< S, E, C >::c_, mln::exact(), mln::Site_Iterator< E >::is_valid(), and mln::internal::site_iterator_base< S, E >::s_.


Member Data Documentation

template<typename S, typename W, typename I>
mln::graph_window_if_piter< S, W, I >::__pad0__ [package]

Definition at line 55 of file graph_window_if_piter.hh.

template<typename S, typename E, typename C = typename S ::psite>
const C* mln::internal::site_relative_iterator_base< S, E, C >::c_ [protected, inherited]

template<typename S, typename W, typename I>
I mln::graph_window_if_piter< S, W, I >::iter_ [private]

Definition at line 109 of file graph_window_if_piter.hh.

template<typename S, typename E>
const S* mln::internal::site_iterator_base< S, E >::s_ [protected, inherited]

The target.

Reimplemented in mln::graph_window_piter< S, W, I >.

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::win::multiple_size_qiter< n, W, F >::compute_p_(), mln::win::multiple_qiter< W, F >::compute_p_(), mln::dpsites_bkd_piter< V >::compute_p_(), mln::dpsites_fwd_piter< V >::compute_p_(), mln::dpsites_bkd_piter< V >::do_start_(), mln::p_run_fwd_piter_< P >::invalidate_(), mln::p_indexed_fwd_piter< S >::invalidate_(), mln::dpsites_fwd_piter< V >::invalidate_(), mln::box_runstart_piter< P >::invalidate_(), mln::box_runend_piter< P >::invalidate_(), mln::box_bkd_piter_< P >::invalidate_(), mln::box_fwd_piter_< P >::invalidate_(), mln::p_run_bkd_piter_< P >::is_valid_(), mln::p_run_fwd_piter_< P >::is_valid_(), mln::p_indexed_bkd_piter< S >::is_valid_(), mln::p_indexed_fwd_piter< S >::is_valid_(), mln::dpsites_fwd_piter< V >::is_valid_(), mln::box_runstart_piter< P >::is_valid_(), mln::box_runend_piter< P >::is_valid_(), mln::box_bkd_piter_< P >::is_valid_(), mln::box_fwd_piter_< P >::is_valid_(), mln::p_transformed_piter< Pi, S, F >::next_(), mln::p_if_piter_< Pi, S, F >::next_(), mln::morpho::tree::depth1st_piter< T >::next_(), mln::box_runstart_piter< P >::next_(), mln::box_runend_piter< P >::next_(), mln::box_bkd_piter_< P >::next_(), mln::box_fwd_piter_< P >::next_(), mln::p_double_piter< S, I1, I2 >::progress_(), mln::box_runstart_piter< P >::run_length(), mln::box_runend_piter< P >::run_length(), mln::internal::site_set_iterator_base< S, E >::site_set(), mln::internal::site_relative_iterator_base< S, E, C >::site_set(), mln::win::multiple_size_qiter< n, W, F >::size_(), mln::morpho::tree::depth1st_piter< T >::skip_children(), mln::p_transformed_piter< Pi, S, F >::start_(), mln::p_run_bkd_piter_< P >::start_(), mln::p_if_piter_< Pi, S, F >::start_(), mln::p_double_piter< S, I1, I2 >::start_(), mln::p_indexed_bkd_piter< S >::start_(), mln::morpho::tree::depth1st_piter< T >::start_(), mln::box_runstart_piter< P >::start_(), mln::box_runend_piter< P >::start_(), mln::box_bkd_piter_< P >::start_(), mln::box_fwd_piter_< P >::start_(), and mln::internal::site_relative_iterator_base< S, E, C >::update().

template<typename S, typename W, typename I>
self_ mln::graph_window_if_piter< S, W, I >::super_ [package]

Reimplemented from mln::internal::site_iterator_base< S, E >.

Definition at line 55 of file graph_window_if_piter.hh.


Generated on Sun Apr 25 01:55:25 2010 for Milena (Olena) by  doxygen 1.5.6