Milena (Olena)  User documentation 2.0a Id
mln::box< P > Class Template Reference

Generic box class: site set containing points of a regular grid. More...

#include <box.hh>

Inheritance diagram for mln::box< P >:
Inheritance graph

List of all members.

Public Types

enum  
 Dimension. More...
typedef box_bkd_piter_< P > bkd_piter
 Backward Site_Iterator associated type.
typedef P element
 Element associated type.
typedef box_fwd_piter_< P > fwd_piter
 Forward Site_Iterator associated type.
typedef fwd_piter piter
 Site_Iterator associated type.
typedef P psite
 Psite associated type.
typedef P site
 Site associated type.

Public Member Functions

const box< P > & bbox () const
 Give the bounding box of this site set.
 box ()
 Constructor without argument.
 box (const site &pmin, const site &pmax)
 Constructor of a box going from pmin to pmax.
void crop_wrt (const box< P > &b)
 Crop this bbox in order to fit in the reference box b.
void enlarge (unsigned b)
 Enlarge the box with a border b.
void enlarge (unsigned dim, unsigned b)
 Enlarge the box with a border b for dimension dim.
bool has (const P &p) const
 Test if p belongs to the box.
bool is_empty () const
 Test if this box is empty.
bool is_valid () const
 Test that the box owns valid data, i.e., is initialized and with pmin being 'less-than' pmax.
unsigned len (unsigned i) const
 Give the length of the i-th side of the box.
std::size_t memory_size () const
 Return the size of this site set in memory.
void merge (const box< P > &b)
 Merge inplace with another box.
unsigned nsites () const
 Give the number of sites of this box.
pcenter () const
 Return the approximated central site of this box.
pmax () const
 Maximum point.
P & pmax ()
 Reference to the maximum point.
pmin () const
 Minimum point.
P & pmin ()
 Reference to the minimum point.
box< P > to_larger (unsigned b) const
 Give a larger box.
 box (typename P::coord ninds)

Related Functions

(Note that these are not member functions.)

template<typename P >
std::ostream & operator<< (std::ostream &ostr, const box< P > &b)
 Print a generic box b into the output stream ostr.

Detailed Description

template<typename P>
class mln::box< P >

Generic box class: site set containing points of a regular grid.

Parameter P is the corresponding type of point.

Definition at line 81 of file core/site_set/box.hh.


Member Typedef Documentation

template<typename P>
typedef box_bkd_piter_<P> mln::box< P >::bkd_piter

Backward Site_Iterator associated type.

Definition at line 105 of file core/site_set/box.hh.

template<typename P>
typedef P mln::box< P >::element

Element associated type.

Definition at line 90 of file core/site_set/box.hh.

template<typename P>
typedef box_fwd_piter_<P> mln::box< P >::fwd_piter

Forward Site_Iterator associated type.

Definition at line 99 of file core/site_set/box.hh.

template<typename P>
typedef fwd_piter mln::box< P >::piter

Site_Iterator associated type.

Definition at line 102 of file core/site_set/box.hh.

template<typename P>
typedef P mln::box< P >::psite

Psite associated type.

Definition at line 93 of file core/site_set/box.hh.

template<typename P>
typedef P mln::box< P >::site

Site associated type.

Definition at line 96 of file core/site_set/box.hh.


Member Enumeration Documentation

template<typename P>
anonymous enum

Dimension.

Definition at line 87 of file core/site_set/box.hh.


Constructor & Destructor Documentation

template<typename P >
mln::box< P >::box ( ) [inline]

Constructor without argument.

Definition at line 275 of file core/site_set/box.hh.

template<typename P >
mln::box< P >::box ( const site pmin,
const site pmax 
) [inline]

Constructor of a box going from pmin to pmax.

Definition at line 284 of file core/site_set/box.hh.

References mln::box< P >::is_valid().

template<typename P >
mln::box< P >::box ( typename P::coord  ninds) [inline, explicit]

Constructors with different numbers of arguments (sizes) w.r.t. the dimension.

Definition at line 293 of file core/site_set/box.hh.

References mln::literal::origin.


Member Function Documentation

const box< P > & mln::Box< box< P > >::bbox ( ) const [inherited]

Give the bounding box of this site set.

Return the bounding box of this site set, so that is itself. This method is declared by the mln::Site_Set concept.

Warning:
This method is final for all box classes.
template<typename P >
void mln::box< P >::crop_wrt ( const box< P > &  b) [inline]

Crop this bbox in order to fit in the reference box b.

Definition at line 205 of file core/site_set/box.hh.

References mln::box< P >::pmax(), and mln::box< P >::pmin().

Referenced by mln::debug::draw_graph(), and mln::make_debug_graph_image().

template<typename P >
void mln::box< P >::enlarge ( unsigned  b) [inline]

Enlarge the box with a border b.

Definition at line 337 of file core/site_set/box.hh.

template<typename P >
void mln::box< P >::enlarge ( unsigned  dim,
unsigned  b 
) [inline]

Enlarge the box with a border b for dimension dim.

Definition at line 351 of file core/site_set/box.hh.

template<typename P >
bool mln::box< P >::has ( const P &  p) const [inline]

Test if p belongs to the box.

Parameters:
[in]pA point site.

Definition at line 325 of file core/site_set/box.hh.

bool mln::Box< box< P > >::is_empty ( ) const [inherited]

Test if this box is empty.

template<typename P >
bool mln::box< P >::is_valid ( ) const [inline]

Test that the box owns valid data, i.e., is initialized and with pmin being 'less-than' pmax.

Definition at line 195 of file core/site_set/box.hh.

References mln::util::ord_weak().

Referenced by mln::box< P >::box(), mln::transform::distance_and_closest_point_geodesic(), mln::box< P >::merge(), and mln::box< P >::to_larger().

unsigned mln::Box< box< P > >::len ( unsigned  i) const [inherited]

Give the length of the i-th side of the box.

Precondition:
i < site::dim
Warning:
This method is final for all box classes.
template<typename P >
std::size_t mln::box< P >::memory_size ( ) const [inline]

Return the size of this site set in memory.

Definition at line 407 of file core/site_set/box.hh.

template<typename P >
void mln::box< P >::merge ( const box< P > &  b) [inline]

Merge inplace with another box.

Definition at line 221 of file core/site_set/box.hh.

References mln::box< P >::is_valid(), mln::box< P >::pmax(), and mln::box< P >::pmin().

unsigned mln::Box< box< P > >::nsites ( ) const [inherited]

Give the number of sites of this box.

Return the number of sites of this box. This method is declared by the mln::Site_Set concept.

Warning:
This method is final for all box classes.
template<typename P >
P mln::box< P >::pcenter ( ) const [inline]

Return the approximated central site of this box.

Definition at line 395 of file core/site_set/box.hh.

template<typename P >
P mln::box< P >::pmax ( ) const [inline]
template<typename P >
P & mln::box< P >::pmax ( ) [inline]

Reference to the maximum point.

Definition at line 268 of file core/site_set/box.hh.

template<typename P >
P mln::box< P >::pmin ( ) const [inline]
template<typename P >
P & mln::box< P >::pmin ( ) [inline]

Reference to the minimum point.

Definition at line 251 of file core/site_set/box.hh.

template<typename P >
box< P > mln::box< P >::to_larger ( unsigned  b) const [inline]

Give a larger box.

Definition at line 378 of file core/site_set/box.hh.

References mln::box< P >::is_valid().


Friends And Related Function Documentation

template<typename P >
std::ostream & operator<< ( std::ostream &  ostr,
const box< P > &  b 
) [related]

Print a generic box b into the output stream ostr.

Parameters:
[in,out]ostrAn output stream.
[in]bA generic box.
Returns:
The modified output stream ostr.

Definition at line 414 of file core/site_set/box.hh.

 All Classes Namespaces Functions Variables Typedefs Enumerator