$extrastylesheet
Olena  User documentation 2.1
An Image Processing Platform
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
mln::graph_window_piter< S, W, I > Class Template Reference

#include <mln/core/image/graph_window_piter.hh>

Public Member Functions

const W::center_t & center () const
void center_at (const P &c)
void change_target (const W &s)
void change_target_site_set (const S &s)
void do_start_ ()
void invalidate ()
bool is_valid () const
void next ()
void next_ ()
const W::psite & p_hook_ () const
const W & site_set () const
void start ()
void start_ ()
const W::psite & subj_ ()
const W *& target_ ()
const S & target_site_set () const
const W::site & to_site () const
graph_window_piter< S, W, I > & update ()
 graph_window_piter ()
template<typename Pref >
 graph_window_piter (const Window< W > &win, const Pref &p_ref)
template<typename Pref >
 graph_window_piter (const Window< W > &win, const Site_Set< S > &target_site_set, const Pref &p_ref)
template<typename Pref >
void init_ (const Window< W > &win, const Pref &p_ref)
template<typename Pref >
void init_ (const Window< W > &win, const Site_Set< S > &target_site_set, const Pref &p_ref)
bool is_valid_ () const
void invalidate_ ()
void do_next_ ()
template<typename Pref >
void center_at_ (const Pref &c)
template<typename S2 , typename I2 >
void center_at_ (const p_graph_piter< S2, I2 > &c)
W::psite compute_p_ () const
const graph_elementelement () const
unsigned id () const

Protected Attributes

const W::center_t * c_

Public Types

typedef Site_Proxy< void > category
typedef graph_window_piter< S,
W, I > 
exact_t
typedef W::site site
typedef W target
typedef S::fun_t::result P
typedef W::center_t center_t
typedef W::graph_element graph_element

Detailed Description

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

Definition at line 107 of file graph_window_piter.hh.

Constructor & Destructor Documentation

template<typename S , typename W , typename I >
mln::graph_window_piter< S, W, I >::graph_window_piter ( )

Construction.

template<typename S , typename W , typename I >
template<typename Pref >
mln::graph_window_piter< S, W, I >::graph_window_piter ( const Window< W > &  win,
const Pref &  p_ref 
)

To be used in case the center and neighbor sites have the same type and belong to the same site set.

Parameters
winThe underlying window.
p_refWindow center.
template<typename S , typename W , typename I >
template<typename Pref >
mln::graph_window_piter< S, W, I >::graph_window_piter ( const Window< W > &  win,
const Site_Set< S > &  target_site_set,
const Pref &  p_ref 
)

To be used in case center and neighbors sites do not have the same type and do not belong to the same site set.

Parameters
winThe underlying window.
target_site_setSite set in which neighbor sites are extracted.
p_refWindow center.

Member Function Documentation

const W::center_t & mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > , W::center_t >::center ( ) const
inherited

The psite around which this iterator moves.

void mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > , W::center_t >::center_at ( const P &  c)
inherited
template<typename S , typename W , typename I >
template<typename Pref >
void mln::graph_window_piter< S, W, I >::center_at_ ( const Pref &  c)

Do some work while setting the reference site.

template<typename S , typename W , typename I >
template<typename S2 , typename I2 >
void mln::graph_window_piter< S, W, I >::center_at_ ( const p_graph_piter< S2, I2 > &  c)

Do some work while setting the reference site.

void mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > , W::center_t >::change_target ( const W &  s)
inherited

Change the site set targeted by this iterator.

template<typename S , typename W , typename I >
void mln::graph_window_piter< S, W, I >::change_target_site_set ( const S &  s)

Change the target site set.

Window elements different from the center come from the target site set.

template<typename S , typename W , typename I >
W ::psite mln::graph_window_piter< S, W, I >::compute_p_ ( ) const

Compute the current psite.

template<typename S , typename W , typename I >
void mln::graph_window_piter< S, W, I >::do_next_ ( )

Go to the next point.

void mln::internal::impl_selector< W::center_t , W::psite , graph_window_piter< S, W, I > >::do_start_ ( )
inlineinherited

Definition at line 60 of file graph_window_piter.hh.

template<typename S , typename W , typename I >
const graph_element& mln::graph_window_piter< S, W, I >::element ( ) const

Return the graph element pointed by this iterator.

template<typename S , typename W , typename I >
unsigned mln::graph_window_piter< S, W, I >::id ( ) const

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.

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

INTERNAL_API Delayed initialization.

template<typename S , typename W , typename I >
template<typename Pref >
void mln::graph_window_piter< S, W, I >::init_ ( const Window< W > &  win,
const Site_Set< S > &  target_site_set,
const Pref &  p_ref 
)
void mln::Site_Iterator< graph_window_piter< S, W, I > >::invalidate ( )
inherited
template<typename S , typename W , typename I >
void mln::graph_window_piter< S, W, I >::invalidate_ ( )

Invalidate the iterator.

bool mln::Site_Iterator< graph_window_piter< S, W, I > >::is_valid ( ) const
inherited
template<typename S , typename W , typename I >
bool mln::graph_window_piter< S, W, I >::is_valid_ ( ) const

Manipulation.

Test if the iterator is valid.

void mln::Site_Iterator< graph_window_piter< S, W, I > >::next ( )
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.
void mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > , W::center_t >::next_ ( )
inherited

Go to the next point.

const W ::psite& mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > , W::center_t >::p_hook_ ( ) const
inherited

Hook to the current location.

const W & mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > , W::center_t >::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 > , W::center_t >::start_ ( )
inherited

INTERNAL_API Start an iteration.

const W ::psite& mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > , W::center_t >::subj_ ( )
inherited

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< 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.

template<typename S , typename W , typename I >
const S& mln::graph_window_piter< S, W, I >::target_site_set ( ) const

Return the target site set.

Window elements different from the center come from the target site set.

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 > , W::center_t >::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.

Member Data Documentation

const W::center_t * mln::internal::site_relative_iterator_base< W , graph_window_piter< S, W, I > , W::center_t >::c_
protectedinherited

A pointer to the center psite around which this iterator moves.

Definition at line 113 of file site_relative_iterator_base.hh.

Member Typedef Documentation

typedef Site_Proxy<void> mln::Site_Proxy< graph_window_piter< S, W, I > >::category
inherited

Definition at line 68 of file site_proxy.hh.

template<typename S , typename W , typename I >
typedef W::center_t mln::graph_window_piter< S, W, I >::center_t

Type of the window center.

Definition at line 128 of file graph_window_piter.hh.

typedef graph_window_piter< S, W, I > mln::Object< graph_window_piter< S, W, I > >::exact_t
inherited

Definition at line 105 of file object.hh.

template<typename S , typename W , typename I >
typedef W::graph_element mln::graph_window_piter< S, W, I >::graph_element

Type of the graph element pointed by this iterator.

Definition at line 130 of file graph_window_piter.hh.

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

Associated typesType of the window elements.

Definition at line 126 of file graph_window_piter.hh.

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).

Definition at line 64 of file site_iterator_base.hh.

typedef W mln::internal::site_iterator_base< W , graph_window_piter< S, W, I > >::target
inherited

The associated target type.

Definition at line 61 of file site_iterator_base.hh.