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 . | |
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. | |
P | pcenter () const |
Return the approximated central site of this box. | |
P & | pmax () |
Reference to the maximum point. | |
P | pmax () const |
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.
Definition at line 81 of file core/site_set/box.hh.
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.
typedef Site_Set<void> mln::Site_Set< box< P > >::category [inherited] |
Reimplemented from mln::Object< box< P > >.
Definition at line 67 of file mln/core/concept/site_set.hh.
Element associated type.
Definition at line 90 of file core/site_set/box.hh.
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.
Definition at line 99 of file core/site_set/box.hh.
Site_Iterator associated type.
Definition at line 102 of file core/site_set/box.hh.
Psite associated type.
Definition at line 93 of file core/site_set/box.hh.
Definition at line 64 of file core/concept/box.hh.
Site associated type.
Definition at line 96 of file core/site_set/box.hh.
anonymous enum |
Constructor without argument.
Definition at line 275 of file core/site_set/box.hh.
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().
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, mln::box< P >::pmax_, and mln::box< P >::pmin_.
mln::box< P >::box | ( | typename P::coord | nrows, | |
typename P::coord | ncols | |||
) | [inline] |
Definition at line 302 of file core/site_set/box.hh.
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] |
Definition at line 314 of file core/site_set/box.hh.
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.
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(), mln::box< P >::pmax_, mln::box< P >::pmin(), and mln::box< P >::pmin_.
Referenced by mln::debug::draw_graph(), and mln::make_debug_graph_image().
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.
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
.
Definition at line 351 of file core/site_set/box.hh.
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. |
Definition at line 325 of file core/site_set/box.hh.
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.
Definition at line 195 of file core/site_set/box.hh.
References mln::util::ord_weak(), mln::box< P >::pmax_, and mln::box< P >::pmin_.
Referenced by mln::subsampling::impl::antialiased_2d_fastest_rgb(), mln::subsampling::impl::antialiased_2d_fastest_scalar(), mln::box< P >::box(), 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 >::merge(), mln::box< P >::pcenter(), 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.
Definition at line 407 of file core/site_set/box.hh.
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(), mln::box< P >::pmax_, mln::box< P >::pmin(), and mln::box< P >::pmin_.
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 >::pcenter | ( | ) | const [inline] |
Return the approximated central site of this box.
Definition at line 395 of file core/site_set/box.hh.
References mln::box< P >::is_valid(), mln::box< P >::pmax_, and mln::box< P >::pmin_.
Referenced by mln::geom::rotate().
P mln::box< P >::pmax | ( | ) | const [inline] |
Maximum point.
Definition at line 259 of file core/site_set/box.hh.
References mln::box< P >::is_valid(), and mln::box< P >::pmax_.
Referenced by make::complex1d_image(), 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::io::fld::load(), mln::io::fld::internal::make_header(), mln::geom::max_col(), mln::geom::max_row(), mln::geom::max_sli(), mln::box< P >::merge(), mln::world::binary_2d::reduce(), mln::io::plot::save(), and mln::accu::shape::bbox< P >::take().
P & mln::box< P >::pmax | ( | ) | [inline] |
Reference to the maximum point.
Definition at line 268 of file core/site_set/box.hh.
References mln::box< P >::pmax_.
P & mln::box< P >::pmin | ( | ) | [inline] |
Reference to the minimum point.
Definition at line 251 of file core/site_set/box.hh.
References mln::box< P >::pmin_.
P mln::box< P >::pmin | ( | ) | const [inline] |
Minimum point.
Definition at line 242 of file core/site_set/box.hh.
References mln::box< P >::is_valid(), and mln::box< P >::pmin_.
Referenced by make::complex1d_image(), 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::io::fld::load(), mln::io::fld::internal::make_header(), mln::box< P >::merge(), mln::geom::min_col(), mln::geom::min_row(), mln::geom::min_sli(), mln::world::binary_2d::reduce(), mln::io::plot::save(), and mln::accu::shape::bbox< P >::take().
Give a larger box.
Definition at line 378 of file core/site_set/box.hh.
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
.Definition at line 414 of file core/site_set/box.hh.
Definition at line 165 of file core/site_set/box.hh.
Referenced by mln::box< P >::box(), mln::box< P >::crop_wrt(), mln::box< P >::enlarge(), mln::box< P >::has(), mln::box< P >::is_valid(), mln::box< P >::merge(), mln::box< P >::pcenter(), mln::box< P >::pmax(), and mln::box< P >::to_larger().
Definition at line 165 of file core/site_set/box.hh.
Referenced by mln::box< P >::box(), mln::box< P >::crop_wrt(), mln::box< P >::enlarge(), mln::box< P >::has(), mln::box< P >::is_valid(), mln::box< P >::merge(), mln::box< P >::pcenter(), mln::box< P >::pmin(), and mln::box< P >::to_larger().