Generic box class: site set containing points of a regular grid. More...
#include <box.hh>
Public Types | |
enum | { dim = P::dim } |
Dimension. More... | |
typedef box_bkd_piter_< P > | bkd_piter |
Backward Site_Iterator associated type. | |
typedef Site_Set< void > | category |
typedef P | element |
Element associated type. | |
typedef box< P > | exact_t |
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 const box< P > & | q_box |
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 . | |
P | center () const |
Return the approximated central site of this box. | |
void | crop_wrt (const box< P > &b) |
Crop this bbox in order to fit in the reference box b . | |
void | enlarge (unsigned dim, unsigned b) |
Enlarge the box with a border b for dimension dim . | |
void | enlarge (unsigned b) |
Enlarge the box with a border b . | |
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. | |
unsigned | nsites () const |
Give the number of sites of this box. | |
P | pmax () const |
Maximum point. | |
P & | pmax () |
Reference to the maximum point. | |
P | 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) | |
box (typename P::coord nrows, typename P::coord ncols) | |
box (typename P::coord nslis, typename P::coord nrows, typename P::coord ncols) | |
Protected Attributes | |
P | pmax_ |
P | pmin_ |
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 . |
Generic box class: site set containing points of a regular grid.
Parameter P
is the corresponding type of point.
typedef box_bkd_piter_<P> mln::box< P >::bkd_piter |
Backward Site_Iterator associated type.
typedef Site_Set<void> mln::Site_Set< box< P > >::category [inherited] |
Reimplemented from mln::Object< box< P > >.
typedef box< P > mln::Object< box< P > >::exact_t [inherited] |
typedef box_fwd_piter_<P> mln::box< P >::fwd_piter |
Forward Site_Iterator associated type.
Site_Iterator associated type.
Constructor of a box going from pmin
to pmax
.
References mln::box< P >::is_valid().
Constructors with different numbers of arguments (sizes) w.r.t. the dimension.
References mln::literal::origin, mln::box< P >::pmax_, and mln::box< P >::pmin_.
mln::box< P >::box | ( | typename P::coord | nrows, | |
typename P::coord | ncols | |||
) | [inline] |
References mln::box< P >::is_valid(), mln::literal::origin, mln::box< P >::pmax_, and mln::box< P >::pmin_.
mln::box< P >::box | ( | typename P::coord | nslis, | |
typename P::coord | nrows, | |||
typename P::coord | ncols | |||
) | [inline] |
References mln::box< P >::is_valid(), mln::literal::origin, mln::box< P >::pmax_, and mln::box< P >::pmin_.
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.
P mln::box< P >::center | ( | ) | const [inline] |
Return the approximated central site of this box.
References mln::box< P >::is_valid(), mln::box< P >::pmax_, and mln::box< P >::pmin_.
Referenced by mln::geom::rotate().
Crop this bbox in order to fit in the reference box b
.
References mln::box< P >::pmax(), mln::box< P >::pmax_, mln::box< P >::pmin(), and mln::box< P >::pmin_.
Referenced by mln::make_debug_graph_image().
void mln::box< P >::enlarge | ( | unsigned | b | ) | [inline] |
Enlarge the box with a border b
.
References mln::box< P >::is_valid(), mln::box< P >::pmax_, and mln::box< P >::pmin_.
Referenced by mln::registration::closest_point_with_map< P >::closest_point_with_map(), and mln::registration::icp().
void mln::box< P >::enlarge | ( | unsigned | dim, | |
unsigned | b | |||
) | [inline] |
Enlarge the box with a border b
for dimension dim
.
References mln::box< P >::is_valid(), mln::box< P >::pmax_, and mln::box< P >::pmin_.
bool mln::box< P >::has | ( | const P & | p | ) | const [inline] |
Test if p
belongs to the box.
[in] | p | A point site. |
References mln::box< P >::is_valid(), mln::box< P >::pmax_, and mln::box< P >::pmin_.
Referenced by mln::morpho::line_gradient(), my_box2d::operator()(), f_box3d_t::operator()(), f_box2d_t::operator()(), and f_box1d_t::operator()().
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.
References mln::util::ord_weak(), mln::box< P >::pmax_, and mln::box< P >::pmin_.
Referenced by mln::box< P >::box(), mln::box< P >::center(), mln::registration::closest_point_with_map< P >::closest_point_with_map(), mln::transform::distance_and_closest_point_geodesic(), mln::box< P >::enlarge(), mln::box< P >::has(), mln::p_line2d::is_valid(), mln::box< P >::pmax(), mln::box< P >::pmin(), mln::accu::shape::bbox< P >::take(), and mln::box< P >::to_larger().
Give the length of the i-th
side of the box.
Referenced by mln::fun::p2p::internal::do_fold_helper< 3, fold< P, dir_0, dir_1, dir_2 > >::run(), mln::fun::p2p::internal::do_fold_helper< 2, fold< P, dir_0, dir_1,-1 > >::run(), and mln::fun::p2p::internal::do_fold_helper< 1, fold< P,-1,-1,-1 > >::run().
std::size_t mln::box< P >::memory_size | ( | ) | const [inline] |
Return the size of this site set in memory.
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.
P mln::box< P >::pmax | ( | ) | const [inline] |
Maximum point.
References mln::box< P >::is_valid(), and mln::box< P >::pmax_.
Referenced by mln::p_line2d::compute_(), mln::box< P >::crop_wrt(), mln::world::inter_pixel::display_edge(), mln::hexa_fwd_piter_< S >::hexa_fwd_piter_(), mln::make::image3d(), mln::hexa< I >::init_(), mln::larger_than(), mln::geom::max_col(), mln::geom::max_row(), mln::world::binary_2d::reduce(), and mln::accu::shape::bbox< P >::take().
P & mln::box< P >::pmax | ( | ) | [inline] |
Reference to the maximum point.
References mln::box< P >::pmax_.
P & mln::box< P >::pmin | ( | ) | [inline] |
Reference to the minimum point.
References mln::box< P >::pmin_.
P mln::box< P >::pmin | ( | ) | const [inline] |
Minimum point.
References mln::box< P >::is_valid(), and mln::box< P >::pmin_.
Referenced by mln::p_line2d::compute_(), mln::box< P >::crop_wrt(), mln::world::inter_pixel::display_edge(), mln::hexa_fwd_piter_< S >::hexa_fwd_piter_(), mln::make::image3d(), mln::hexa< I >::init_(), mln::larger_than(), mln::geom::min_col(), mln::geom::min_row(), mln::world::binary_2d::reduce(), and mln::accu::shape::bbox< P >::take().
Give a larger box.
References mln::box< P >::is_valid(), mln::box< P >::pmax_, and mln::box< P >::pmin_.
std::ostream & operator<< | ( | std::ostream & | ostr, | |
const box< P > & | b | |||
) | [related] |
Print a generic box b
into the output stream ostr
.
[in,out] | ostr | An output stream. |
[in] | b | A generic box. |
ostr
.