Public Types | Public Member Functions | Protected Member Functions | Related Functions

mln::Box< E > Struct Template Reference

Base class for implementation classes of boxes. More...

#include <box.hh>

Inheritance diagram for mln::Box< E >:
Inheritance graph

List of all members.

Public Types

typedef Site_Set< void > category
typedef E exact_t
typedef const E & q_box

Public Member Functions

const E & bbox () const
 Give the bounding box of this site set.
bool is_empty () const
 Test if this box is empty.
unsigned len (unsigned i) const
 Give the length of the i-th side of the box.
unsigned nsites () const
 Give the number of sites of this box.

Protected Member Functions

 Box ()

Related Functions

(Note that these are not member functions.)



template<typename Sl , typename Sr >
p_set< typename Sl::site > diff (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Set theoretic difference of lhs and rhs.
template<typename Sl , typename Sr >
p_set< typename Sl::site > inter (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Intersection between a couple of point sets.
template<typename Sl , typename Sr >
bool operator< (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Strict inclusion test between site sets lhs and rhs.
template<typename Bl , typename Br >
bool operator< (const Box< Bl > &lhs, const Box< Br > &rhs)
 Strict inclusion test between boxes lhs and rhs.
template<typename S >
std::ostream & operator<< (std::ostream &ostr, const Site_Set< S > &set)
 Print a site set set into the output stream ostr.
template<typename Sl , typename Sr >
bool operator<= (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Inclusion test between site sets lhs and rhs.
template<typename Bl , typename Br >
bool operator<= (const Box< Bl > &lhs, const Box< Br > &rhs)
 Inclusion test between boxes lhs and rhs.
template<typename Sl , typename Sr >
bool operator== (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Equality test between site sets lhs and rhs.
template<typename Sl , typename Sr >
p_set< typename Sl::site > sym_diff (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Set theoretic symmetrical difference of lhs and rhs.
template<typename Sl , typename Sr >
p_set< typename Sl::site > uni (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Union of a couple of point sets.
template<typename S >
p_set< typename S::site > unique (const Site_Set< S > &s)
 Give the unique set of s.

Detailed Description

template<typename E>
struct mln::Box< E >

Base class for implementation classes of boxes.

Boxes are particular site sets useful to bound any set of sites defined on a regular grid.

See also:
mln::doc::Box for a complete documentation of this class contents.

Definition at line 48 of file core/concept/box.hh.


Member Typedef Documentation

template<typename E>
typedef Site_Set<void> mln::Site_Set< E >::category [inherited]

Reimplemented from mln::Object< E >.

Definition at line 67 of file mln/core/concept/site_set.hh.

template<typename E>
typedef E mln::Object< E >::exact_t [inherited]

Definition at line 173 of file object.hh.

template<typename E>
typedef const E& mln::Box< E >::q_box

Definition at line 64 of file core/concept/box.hh.


Constructor & Destructor Documentation

template<typename E >
mln::Box< E >::Box (  )  [inline, protected]

Definition at line 141 of file core/concept/box.hh.


Member Function Documentation

template<typename E >
const E & mln::Box< E >::bbox (  )  const [inline]

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.

Definition at line 124 of file core/concept/box.hh.

References mln::exact().

Referenced by mln::geom::impl::bbox_().

template<typename E >
bool mln::Box< E >::is_empty (  )  const [inline]

Test if this box is empty.

Definition at line 167 of file core/concept/box.hh.

References mln::exact().

template<typename E >
unsigned mln::Box< E >::len ( unsigned  i  )  const [inline]

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

Precondition:
i < site::dim
Warning:
This method is final for all box classes.

Definition at line 131 of file core/concept/box.hh.

References mln::exact().

template<typename E >
unsigned mln::Box< E >::nsites (  )  const [inline]

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.

Definition at line 153 of file core/concept/box.hh.

References mln::exact().

Referenced by mln::morpho::line_gradient().


Friends And Related Function Documentation

template<typename Sl , typename Sr >
p_set< typename Sl::site > diff ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Set theoretic difference of lhs and rhs.

Definition at line 66 of file set/diff.hh.

template<typename Sl , typename Sr >
p_set< typename Sl::site > inter ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Intersection between a couple of point sets.

Definition at line 62 of file set/inter.hh.

template<typename Sl , typename Sr >
bool operator< ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Strict inclusion test between site sets lhs and rhs.

Parameters:
[in] lhs A site set (strictly included?).
[in] rhs Another site set (includer?).

Definition at line 479 of file operators.hh.

template<typename Bl , typename Br >
bool operator< ( const Box< Bl > &  lhs,
const Box< Br > &  rhs 
) [related]

Strict inclusion test between boxes lhs and rhs.

Parameters:
[in] lhs A box (strictly included?).
[in] rhs Another box (includor?).

Definition at line 193 of file core/concept/box.hh.

template<typename S >
std::ostream & operator<< ( std::ostream &  ostr,
const Site_Set< S > &  set 
) [related, inherited]

Print a site set set into the output stream ostr.

Parameters:
[in,out] ostr An output stream.
[in] set A site set.
Returns:
The modified output stream ostr.

Definition at line 505 of file operators.hh.

template<typename Sl , typename Sr >
bool operator<= ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Inclusion test between site sets lhs and rhs.

Parameters:
[in] lhs A site set (included?).
[in] rhs Another site set (includer?).

Definition at line 491 of file operators.hh.

template<typename Bl , typename Br >
bool operator<= ( const Box< Bl > &  lhs,
const Box< Br > &  rhs 
) [related]

Inclusion test between boxes lhs and rhs.

Parameters:
[in] lhs A box (included?).
[in] rhs Another box (includor?).

Definition at line 178 of file core/concept/box.hh.

template<typename Sl , typename Sr >
bool operator== ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Equality test between site sets lhs and rhs.

Parameters:
[in] lhs A site set.
[in] rhs Another site set.

Definition at line 467 of file operators.hh.

template<typename Sl , typename Sr >
p_set< typename Sl::site > sym_diff ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Set theoretic symmetrical difference of lhs and rhs.

Definition at line 65 of file sym_diff.hh.

template<typename Sl , typename Sr >
p_set< typename Sl::site > uni ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Union of a couple of point sets.

Definition at line 61 of file uni.hh.

template<typename S >
p_set< typename S::site > unique ( const Site_Set< S > &  s  )  [related, inherited]

Give the unique set of s.

Definition at line 61 of file unique.hh.