Forward iterator on line graph window. More...
#include <graph_window_piter.hh>
Public Types | |
typedef Site_Proxy< void > | category |
typedef graph_window_piter< S, W, I > | exact_t |
typedef W::site | site |
The associated site type (as a Site_Proxy). | |
typedef W | target |
The associated target type. | |
typedef S::fun_t::result | P |
Associated types. | |
Public Member Functions | |
const W::psite & | center () const |
The psite around which this iterator moves. | |
void | center_at (const P &c) |
void | change_target (const W &s) |
Change the site set targeted by this iterator. | |
void | invalidate () |
bool | is_valid () const |
void | next () |
Go to the next element. | |
void | next_ () |
Go to the next point. | |
const W::psite & | p_hook_ () const |
Hook to the current location. | |
const W & | site_set () const |
Give the site set (neighborhood or window) that this iterator browses. | |
void | start () |
void | start_ () |
Start an iteration. | |
const W::psite & | subj_ () |
This overriding is very useful: it adds a test to prevent getting an invalid iterator when its center has moved. | |
const W *& | target_ () |
Give the target address. It might be 0. | |
const W::site & | to_site () const |
Return the site it points to (as a Site_Proxy). | |
graph_window_piter< S, W, I > & | 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. | |
graph_window_piter () | |
Construction. | |
template<typename Pref > | |
graph_window_piter (const Window< W > &win, const Pref &p_ref) | |
bool | is_valid_ () const |
Manipulation. | |
void | invalidate_ () |
Invalidate the iterator. | |
void | do_start_ () |
Start an iteration. | |
void | do_next_ () |
Go to the next point. | |
template<typename Pref > | |
void | center_at_ (const Pref &c) |
Do some work while setting the reference site. | |
template<typename I2 > | |
void | center_at_ (const p_graph_piter< S, I2 > &c) |
Do some work while setting the reference site. | |
const S::graph_element & | element () const |
Return the graph element pointed by this iterator. | |
W::psite | compute_p_ () const |
Compute the current psite. | |
unsigned | id () const |
Return the graph element id. | |
Protected Attributes | |
const W::psite * | c_ |
A pointer to the center psite around which this iterator moves. | |
const W * | s_ |
The target. | |
Private Types | |
typedef graph_window_piter< S, W, I > | self_ |
typedef internal::site_relative_iterator_base < W, self_ > | super_ |
Private Attributes | |
I | iter_ |
Forward iterator on line graph window.
typedef Site_Proxy<void> mln::Site_Proxy< graph_window_piter< S, W, I > >::category [inherited] |
Reimplemented from mln::Proxy< graph_window_piter< S, W, I > >.
typedef graph_window_piter< S, W, I > mln::Object< graph_window_piter< S, W, I > >::exact_t [inherited] |
typedef S::fun_t ::result mln::graph_window_piter< S, W, I >::P |
Associated types.
typedef graph_window_piter<S,W,I> mln::graph_window_piter< S, W, I >::self_ [private] |
typedef W ::site mln::internal::site_iterator_base< W , graph_window_piter< S, W, I > >::site [inherited] |
The associated site type (as a Site_Proxy).
typedef internal::site_relative_iterator_base<W,self_> mln::graph_window_piter< S, W, I >::super_ [private] |
Reimplemented from mln::internal::site_iterator_base< W, graph_window_piter< S, W, I > >.
typedef W mln::internal::site_iterator_base< W , graph_window_piter< S, W, I > >::target [inherited] |
The associated target type.
mln::graph_window_piter< S, W, I >::graph_window_piter | ( | ) | [inline] |
Construction.
mln::graph_window_piter< S, W, I >::graph_window_piter | ( | const Window< W > & | win, | |
const Pref & | p_ref | |||
) | [inline] |
const W ::psite& mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > >::center | ( | ) | const [inherited] |
The psite around which this iterator moves.
void mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > >::center_at | ( | const P & | c | ) | [inherited] |
Referenced by mln::graph_window_piter< S, W, I >::graph_window_piter().
void mln::graph_window_piter< S, W, I >::center_at_ | ( | const Pref & | c | ) | [inline] |
Do some work while setting the reference site.
void mln::graph_window_piter< S, W, I >::center_at_ | ( | const p_graph_piter< S, I2 > & | c | ) | [inline] |
Do some work while setting the reference site.
References mln::p_graph_piter< S, I >::hook_elt_().
void mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > >::change_target | ( | const W & | s | ) | [inherited] |
Change the site set targeted by this iterator.
Referenced by mln::graph_window_piter< S, W, I >::graph_window_piter().
W::psite mln::graph_window_piter< S, W, I >::compute_p_ | ( | ) | const [inline] |
Compute the current psite.
void mln::graph_window_piter< S, W, I >::do_next_ | ( | ) | [inline] |
Go to the next point.
void mln::graph_window_piter< S, W, I >::do_start_ | ( | ) | [inline] |
Start an iteration.
const S::graph_element & mln::graph_window_piter< S, W, I >::element | ( | ) | const [inline] |
Return the graph element pointed by this iterator.
unsigned mln::graph_window_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.
void mln::Site_Iterator< graph_window_piter< S, W, I > >::invalidate | ( | ) | [inherited] |
void mln::graph_window_piter< S, W, I >::invalidate_ | ( | ) | [inline] |
Invalidate the iterator.
bool mln::Site_Iterator< graph_window_piter< S, W, I > >::is_valid | ( | ) | const [inherited] |
Referenced by mln::graph_window_piter< S, W, I >::graph_window_piter().
bool mln::graph_window_piter< S, W, I >::is_valid_ | ( | ) | const [inline] |
Manipulation.
Test if the iterator is valid.
void mln::Site_Iterator< graph_window_piter< S, W, I > >::next | ( | ) | [inherited] |
Go to the next element.
void mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > >::next_ | ( | ) | [inherited] |
Go to the next point.
const W ::psite& mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > >::p_hook_ | ( | ) | const [inherited] |
Hook to the current location.
const W & mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > >::site_set | ( | ) | const [inherited] |
Give the site set (neighborhood or window) that this iterator browses.
void mln::Site_Iterator< graph_window_piter< S, W, I > >::start | ( | ) | [inherited] |
void mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > >::start_ | ( | ) | [inherited] |
Start an iteration.
const W ::psite& mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > >::subj_ | ( | ) | [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< W, graph_window_piter< S, W, I > >.
const W *& mln::internal::site_iterator_base< W , graph_window_piter< S, W, I > >::target_ | ( | ) | [inherited] |
Give the target address. It might be 0.
const W ::site& mln::internal::site_iterator_base< W , graph_window_piter< S, W, I > >::to_site | ( | ) | const [inherited] |
Return the site it points to (as a Site_Proxy).
graph_window_piter< S, W, I > & mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > >::update | ( | ) | [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.
const W ::psite* mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > >::c_ [protected, inherited] |
A pointer to the center psite around which this iterator moves.
I mln::graph_window_piter< S, W, I >::iter_ [private] |
const W * mln::internal::site_iterator_base< W , graph_window_piter< S, W, I > >::s_ [protected, inherited] |
The target.