$extrastylesheet
#include <mln/core/internal/site_relative_iterator_base.hh>
Public Member Functions | |
site_relative_iterator_base () | |
const C & | center () const |
template<typename P > | |
void | center_at (const P &c) |
void | change_target (const S &s) |
void | invalidate () |
bool | is_valid () const |
void | next () |
void | next_ () |
const S::psite & | p_hook_ () const |
const S & | site_set () const |
void | start () |
void | start_ () |
const S::psite & | subj_ () |
const S *& | target_ () |
const S::site & | to_site () const |
E & | update () |
Protected Attributes | |
const C * | c_ |
const S * | s_ |
Public Types | |
typedef Site_Proxy< void > | category |
typedef E | exact_t |
typedef S::site | site |
typedef S | target |
A generic iterator on points of windows and of neighborhoods.
Parameter S
is the targeted "site set definition" type. It can be either a Window, or a Neighborhood.
IMPORTANT: Sub-classes have to define center_at_, do_start_, do_next_, is_valid_, invalidate_ and compute_p_. They shall define NEITHER start_ NOR next_.
Definition at line 62 of file site_relative_iterator_base.hh.
mln::internal::site_relative_iterator_base< S, E, C >::site_relative_iterator_base | ( | ) |
Constructor witout argument.
const C& mln::internal::site_relative_iterator_base< S, E, C >::center | ( | ) | const |
The psite around which this iterator moves.
void mln::internal::site_relative_iterator_base< S, E, C >::center_at | ( | const P & | c | ) |
void mln::internal::site_relative_iterator_base< S, E, C >::change_target | ( | const S & | s | ) |
Change the site set targeted by this iterator.
|
inherited |
|
inherited |
|
inherited |
Go to the next element.
void mln::internal::site_relative_iterator_base< S, E, C >::next_ | ( | ) |
Go to the next point.
const S ::psite& mln::internal::site_relative_iterator_base< S, E, C >::p_hook_ | ( | ) | const |
Hook to the current location.
const S& mln::internal::site_relative_iterator_base< S, E, C >::site_set | ( | ) | const |
Give the site set (neighborhood or window) that this iterator browses.
|
inherited |
Reimplemented in mln::hexa_fwd_piter_< S >.
void mln::internal::site_relative_iterator_base< S, E, C >::start_ | ( | ) |
INTERNAL_API Start an iteration.
const S ::psite& mln::internal::site_relative_iterator_base< S, E, C >::subj_ | ( | ) |
INTERNAL_API 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 >.
|
inherited |
Give the target address. It might be 0.
|
inherited |
Return the site it points to (as a Site_Proxy).
E& mln::internal::site_relative_iterator_base< S, E, C >::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.
|
protected |
A pointer to the center psite around which this iterator moves.
Definition at line 113 of file site_relative_iterator_base.hh.
|
protectedinherited |
The target.
Definition at line 91 of file site_iterator_base.hh.
|
inherited |
Definition at line 68 of file site_proxy.hh.
|
inherited |
|
inherited |
The associated site type (as a Site_Proxy).
Definition at line 64 of file site_iterator_base.hh.
|
inherited |
The associated target type.
Definition at line 61 of file site_iterator_base.hh.