Generic window class. More...
#include <window.hh>
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 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 . |
Generic window class.
This type of window is just like a set of delta-points. The parameter is D
, type of delta-point.
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.
typedef Window<void> mln::Window< window< D > >::category [inherited] |
Reimplemented from mln::Object< window< D > >.
typedef D mln::internal::window_base< D, window< D > >::dpsite [inherited] |
DPsite associated type.
typedef window< D > mln::Object< window< D > >::exact_t [inherited] |
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.
typedef D ::psite mln::internal::window_base< D, window< D > >::psite [inherited] |
Psite associated type.
typedef fwd_qiter mln::window< D >::qiter |
Site_Iterator type to browse the points of a basic window whatever the ordering of delta-points.
typedef window<D> mln::window< D >::regular |
Regular window associated type.
typedef D ::site mln::internal::window_base< D, window< D > >::site [inherited] |
Site associated type.
mln::window< D >::window | ( | ) | [inline] |
Constructor without argument.
The constructed window is empty.
void mln::window< D >::clear | ( | ) | [inline] |
Clear the window.
References mln::util::set< T >::clear(), and mln::window< D >::dps_.
Referenced by mln::convert::over_load::from_to_().
unsigned mln::window< D >::delta | ( | ) | const [inline] |
Give the maximum coordinate gap between the window center and a window point.
References mln::window< D >::delta_(), mln::window< D >::dp(), and mln::window< D >::size().
unsigned mln::window< D >::delta_ | ( | int | i | ) | const [inline, private] |
Referenced by mln::window< D >::delta().
unsigned mln::window< D >::delta_ | ( | const Gdpoint< D > & | dp | ) | const [inline, private] |
References mln::exact(), and mln::norm::linfty().
const D & mln::window< D >::dp | ( | unsigned | i | ) | const [inline] |
Give the i-th
delta-point.
References mln::window< D >::dps_, and mln::window< D >::size().
Referenced by mln::window< D >::delta(), and mln::window< D >::insert().
const util::set< D > & mln::window< D >::dps_hook_ | ( | ) | const [inline] |
bool mln::window< D >::has | ( | const D & | dp | ) | const [inline] |
Test if dp
is in this window definition.
References mln::window< D >::dps_, and mln::util::set< T >::has().
window< D > & mln::window< D >::insert | ( | const D & | dp | ) | [inline] |
Insert a delta-point dp
.
References mln::window< D >::dps_, and mln::util::set< T >::insert().
Referenced by mln::c18(), mln::c26(), mln::c4_3d(), mln::c6(), mln::convert::over_load::from_to_(), mln::window< D >::insert(), mln::morpho::line_gradient(), mln::window< D >::sym(), mln::convert::to_upper_window(), mln::convert::to_window(), mln::win_c4p(), mln::win_c4p_3d(), mln::win_c8p(), and mln::win_c8p_3d().
window< D > & mln::window< D >::insert | ( | const Window< W > & | win | ) | [inline] |
Insert another window win
.
References mln::window< D >::dps_, mln::exact(), and mln::util::set< T >::insert().
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.
References mln::window< D >::dp(), and mln::window< D >::insert().
window< D > & mln::window< D >::insert | ( | const typename D::coord & | drow, | |
const typename D::coord & | dcol | |||
) | [inline] |
References mln::window< D >::dp(), and mln::window< D >::insert().
window< D > & mln::window< D >::insert | ( | const typename D::coord & | dsli, | |
const typename D::coord & | drow, | |||
const typename D::coord & | dcol | |||
) | [inline] |
References mln::window< D >::dp(), and mln::window< D >::insert().
bool mln::window< D >::is_centered | ( | ) | const [inline] |
Test if the window is centered.
References mln::window< D >::dps_, mln::util::set< T >::has(), and mln::literal::zero.
bool mln::window< D >::is_empty | ( | ) | const [inline] |
Test if the window is empty (null size; no delta-point).
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.
bool mln::window< D >::is_symmetric | ( | ) | const [inline] |
Test if the window is symmetric.
References mln::window< D >::sym().
bool mln::internal::window_base< D, window< D > >::is_valid | ( | ) | const [inherited] |
return true by default.
void mln::window< D >::print | ( | std::ostream & | ostr | ) | const [inline] |
Print the window definition into ostr
.
References mln::window< D >::dps_.
unsigned mln::window< D >::size | ( | ) | const [inline] |
Give the window size, i.e., the number of delta-sites.
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().
const std::vector< D > & mln::window< D >::std_vector | ( | ) | const [inline] |
Give the std vector of delta-points.
References mln::window< D >::dps_, and mln::util::set< T >::std_vector().
Referenced by mln::win::rectangle2d::std_vector().
void mln::window< D >::sym | ( | ) | [inline] |
Apply a central symmetry to the target window.
References mln::window< D >::insert(), and mln::window< D >::size().
Referenced by mln::window< D >::is_symmetric().
bool operator== | ( | const window< D > & | lhs, | |
const window< D > & | rhs | |||
) | [related] |
Equality comparison between windows lhs
and rhs
.
util::set<D> mln::window< D >::dps_ [private] |
Referenced by mln::window< D >::clear(), mln::window< D >::dp(), mln::window< D >::dps_hook_(), mln::window< D >::has(), mln::window< D >::insert(), mln::window< D >::is_centered(), mln::window< D >::is_empty(), mln::window< D >::print(), mln::window< D >::size(), and mln::window< D >::std_vector().