Public Types | Public Member Functions | Private Member Functions | Private Attributes | Related Functions

mln::window< D > Class Template Reference

Generic window class. More...

#include <window.hh>

Inheritance diagram for mln::window< D >:
Inheritance graph

List of all members.

Public Types

typedef dpsites_bkd_piter
< window< D > > 
bkd_qiter
 Site_Iterator type to browse the points of a basic window w.r.t. the reverse ordering of delta-points.
typedef Window< void > category
typedef psite center_t
 Type of the window center.
typedef D dpsite
 DPsite associated type.
typedef window< D > exact_t
typedef dpsites_fwd_piter
< window< D > > 
fwd_qiter
 Site_Iterator type to browse the points of a basic window w.r.t. the ordering of delta-points.
typedef D::psite psite
 Psite associated type.
typedef fwd_qiter qiter
 Site_Iterator type to browse the points of a basic window whatever the ordering of delta-points.
typedef window< D > regular
 Regular window associated type.
typedef D::site site
 Site associated type.

Public Member Functions

void clear ()
 Clear the window.
unsigned delta () const
 Give the maximum coordinate gap between the window center and a window point.
const D & dp (unsigned i) const
 Give the i-th delta-point.
const mln::util::set< D > & dps_hook_ () const
 Hook to the set of D.
bool has (const D &dp) const
 Test if dp is in this window definition.
window< D > & insert (const D &dp)
 Insert a delta-point dp.
template<typename W >
window< D > & insert (const Window< W > &win)
 Insert another window win.
bool is_centered () const
 Test if the window is centered.
bool is_empty () const
 Test if the window is empty (null size; no delta-point).
bool is_neighbable_ () const
 Test if this window can be a neighborhood.
bool is_symmetric () const
bool is_valid () const
 return true by default.
void print (std::ostream &ostr) const
 Print the window definition into ostr.
unsigned size () const
 Give the window size, i.e., the number of delta-sites.
const std::vector< D > & std_vector () const
 Give the std vector of delta-points.
void sym ()
 Apply a central symmetry to the target window.
 window ()
 Constructor without argument.

window< D > & insert (const typename D::coord &dind)
window< D > & insert (const typename D::coord &drow, const typename D::coord &dcol)
window< D > & insert (const typename D::coord &dsli, const typename D::coord &drow, const typename D::coord &dcol)

Private Member Functions

unsigned delta_ (int i) const
unsigned delta_ (const Gdpoint< D > &dp) const

Private Attributes

util::set< D > dps_

Related Functions

(Note that these are not member functions.)



template<typename D >
bool operator== (const window< D > &lhs, const window< D > &rhs)
 Equality comparison between windows lhs and rhs.

Detailed Description

template<typename D>
class mln::window< D >

Generic window class.

This type of window is just like a set of delta-points. The parameter is D, type of delta-point.

Definition at line 85 of file window.hh.


Member Typedef Documentation

template<typename D>
typedef dpsites_bkd_piter< window<D> > mln::window< D >::bkd_qiter

Site_Iterator type to browse the points of a basic window w.r.t. the reverse ordering of delta-points.

Definition at line 124 of file window.hh.

typedef Window<void> mln::Window< window< D > >::category [inherited]

Reimplemented from mln::Object< window< D > >.

Definition at line 89 of file concept/window.hh.

typedef psite mln::internal::window_base< D, window< D > >::center_t [inherited]

Type of the window center.

Definition at line 62 of file window_base.hh.

typedef D mln::internal::window_base< D, window< D > >::dpsite [inherited]

DPsite associated type.

Definition at line 53 of file window_base.hh.

typedef window< D > mln::Object< window< D > >::exact_t [inherited]

Definition at line 173 of file object.hh.

template<typename D>
typedef dpsites_fwd_piter< window<D> > mln::window< D >::fwd_qiter

Site_Iterator type to browse the points of a basic window w.r.t. the ordering of delta-points.

Definition at line 119 of file window.hh.

typedef D ::psite mln::internal::window_base< D, window< D > >::psite [inherited]

Psite associated type.

Definition at line 56 of file window_base.hh.

template<typename D>
typedef fwd_qiter mln::window< D >::qiter

Site_Iterator type to browse the points of a basic window whatever the ordering of delta-points.

Definition at line 129 of file window.hh.

template<typename D>
typedef window<D> mln::window< D >::regular

Regular window associated type.

Definition at line 90 of file window.hh.

typedef D ::site mln::internal::window_base< D, window< D > >::site [inherited]

Site associated type.

Definition at line 59 of file window_base.hh.


Constructor & Destructor Documentation

template<typename D >
mln::window< D >::window (  )  [inline]

Constructor without argument.

The constructed window is empty.

Definition at line 207 of file window.hh.


Member Function Documentation

template<typename D >
void mln::window< D >::clear (  )  [inline]

Clear the window.

Definition at line 254 of file window.hh.

References mln::util::set< T >::clear(), and mln::window< D >::dps_.

Referenced by mln::convert::over_load::from_to_().

template<typename D >
unsigned mln::window< D >::delta (  )  const [inline]

Give the maximum coordinate gap between the window center and a window point.

Definition at line 262 of file window.hh.

References mln::window< D >::delta_(), mln::window< D >::dp(), and mln::window< D >::size().

template<typename D >
unsigned mln::window< D >::delta_ ( int  i  )  const [inline, private]

Definition at line 278 of file window.hh.

Referenced by mln::window< D >::delta().

template<typename D>
unsigned mln::window< D >::delta_ ( const Gdpoint< D > &  dp  )  const [inline, private]

Definition at line 286 of file window.hh.

References mln::exact(), and mln::norm::linfty().

template<typename D >
const D & mln::window< D >::dp ( unsigned  i  )  const [inline]

Give the i-th delta-point.

Definition at line 302 of file window.hh.

References mln::window< D >::dps_, and mln::window< D >::size().

Referenced by mln::window< D >::delta(), and mln::window< D >::insert().

template<typename D >
const util::set< D > & mln::window< D >::dps_hook_ (  )  const [inline]

Hook to the set of D.

Definition at line 382 of file window.hh.

References mln::window< D >::dps_.

Referenced by mln::operator==().

template<typename D>
bool mln::window< D >::has ( const D &  dp  )  const [inline]

Test if dp is in this window definition.

Definition at line 311 of file window.hh.

References mln::window< D >::dps_, and mln::util::set< T >::has().

template<typename D>
window< D > & mln::window< D >::insert ( const D &  dp  )  [inline]
template<typename D >
template<typename W >
window< D > & mln::window< D >::insert ( const Window< W > &  win  )  [inline]

Insert another window win.

Definition at line 337 of file window.hh.

References mln::window< D >::dps_, mln::exact(), and mln::util::set< T >::insert().

template<typename D>
window< D > & mln::window< D >::insert ( const typename D::coord &  dind  )  [inline]

Insertion of a delta-point with different numbers of arguments (coordinates) w.r.t. the dimension.

Definition at line 349 of file window.hh.

References mln::window< D >::dp(), and mln::window< D >::insert().

template<typename D>
window< D > & mln::window< D >::insert ( const typename D::coord &  drow,
const typename D::coord &  dcol 
) [inline]

Definition at line 359 of file window.hh.

References mln::window< D >::dp(), and mln::window< D >::insert().

template<typename D>
window< D > & mln::window< D >::insert ( const typename D::coord &  dsli,
const typename D::coord &  drow,
const typename D::coord &  dcol 
) [inline]

Definition at line 370 of file window.hh.

References mln::window< D >::dp(), and mln::window< D >::insert().

template<typename D >
bool mln::window< D >::is_centered (  )  const [inline]

Test if the window is centered.

Returns:
True if the delta-point 0 belongs to the window.

Definition at line 226 of file window.hh.

References mln::window< D >::dps_, mln::util::set< T >::has(), and mln::literal::zero.

template<typename D >
bool mln::window< D >::is_empty (  )  const [inline]

Test if the window is empty (null size; no delta-point).

Definition at line 246 of file window.hh.

References mln::window< D >::dps_, and mln::util::set< T >::is_empty().

bool mln::internal::window_base< D, window< D > >::is_neighbable_ (  )  const [inherited]

Test if this window can be a neighborhood.

template<typename D >
bool mln::window< D >::is_symmetric (  )  const [inline]

Test if the window is symmetric.

Returns:
True if for every dp of this window, -dp is also in this window.

Definition at line 216 of file window.hh.

References mln::window< D >::sym().

bool mln::internal::window_base< D, window< D > >::is_valid (  )  const [inherited]

return true by default.

template<typename D >
void mln::window< D >::print ( std::ostream &  ostr  )  const [inline]

Print the window definition into ostr.

Definition at line 390 of file window.hh.

References mln::window< D >::dps_.

template<typename D >
unsigned mln::window< D >::size (  )  const [inline]

Give the window size, i.e., the number of delta-sites.

Definition at line 294 of file window.hh.

References mln::window< D >::dps_, and mln::util::set< T >::nelements().

Referenced by mln::window< D >::delta(), mln::window< D >::dp(), mln::window< D >::sym(), mln::win_c4p(), mln::win_c4p_3d(), mln::win_c8p(), and mln::win_c8p_3d().

template<typename D >
const std::vector< D > & mln::window< D >::std_vector (  )  const [inline]

Give the std vector of delta-points.

Definition at line 319 of file window.hh.

References mln::window< D >::dps_, and mln::util::set< T >::std_vector().

Referenced by mln::win::rectangle2d::std_vector().

template<typename D >
void mln::window< D >::sym (  )  [inline]

Apply a central symmetry to the target window.

Definition at line 234 of file window.hh.

References mln::window< D >::insert(), and mln::window< D >::size().

Referenced by mln::window< D >::is_symmetric().


Friends And Related Function Documentation

template<typename D >
bool operator== ( const window< D > &  lhs,
const window< D > &  rhs 
) [related]

Equality comparison between windows lhs and rhs.

Definition at line 400 of file window.hh.


Member Data Documentation

template<typename D>
util::set<D> mln::window< D >::dps_ [private]