26 #ifndef MLN_WORLD_INTER_PIXEL_IMMERSE_HH
27 # define MLN_WORLD_INTER_PIXEL_IMMERSE_HH
33 # include <mln/core/concept/image.hh>
34 # include <mln/data/paste_without_localization.hh>
35 # include <mln/geom/nsites.hh>
36 # include <mln/world/inter_pixel/is_pixel.hh>
54 image_if<mln_concrete(I), is_pixel>
55 immerse(
const Image<I>& input);
59 # ifndef MLN_INCLUDE_ONLY
63 image_if<mln_concrete(I), is_pixel>
64 immerse(
const Image<I>& input_)
66 trace::entering(
"world::inter_pixel::immerse");
68 mlc_is_a(mln_domain(I), Box)::check();
70 const I& input = exact(input_);
71 mln_precondition(input.is_valid());
73 mln_domain(I) b((2 * input.domain().pmin()),
74 (2 * input.domain().pmax()));
75 mln_concrete(I) output(b);
76 mln_assertion(geom::nsites(output | is_pixel()) == input.domain().nsites());
78 data::paste_without_localization(input, (output | is_pixel()).rw());
80 trace::exiting("world::inter_pixel::immerse");
81 return output | is_pixel();
84 # endif // ! MLN_INCLUDE_ONLY
92 #endif // ! MLN_WORLD_INTER_PIXEL_IMMERSE_HH