27 #ifndef MLN_GEOM_BBOX_HH
28 # define MLN_GEOM_BBOX_HH
43 # include <mln/core/site_set/box.hh>
44 # include <mln/core/concept/image.hh>
45 # include <mln/core/concept/window.hh>
46 # include <mln/core/concept/weighted_window.hh>
47 # include <mln/literal/zero.hh>
48 # include <mln/accu/shape/bbox.hh>
59 box<mln_site(S)>
bbox(
const Site_Set<S>& pset);
64 box<mln_site(I)>
bbox(
const Image<I>& ima);
69 box<mln_psite(W)>
bbox(
const Window<W>& win);
73 box<mln_psite(W)>
bbox(
const Weighted_Window<W>& win);
77 # ifndef MLN_INCLUDE_ONLY
83 box<mln_site(S)> bbox_(
const trait::site_set::bbox::known&,
90 box<mln_site(S)> bbox_(trait::site_set::bbox::unknown,
93 typedef mln_site(S) P;
99 mln_precondition(p.is_valid());
104 for (
unsigned i = 0; i < P::dim; ++i)
111 box<P> bb(pmin, pmax);
120 template <typename S>
132 template <
typename I>
135 const I& ima = exact(ima_);
136 mln_precondition(ima.is_valid());
142 template <
typename W>
145 typedef mln_psite(W) P;
148 mln_qiter(W) q(exact(win), O);
155 template <
typename W>
164 # endif // ! MLN_INCLUDE_ONLY
171 #endif // ! MLN_GEOM_BBOX_HH