26 #ifndef MLN_DATA_FILL_WITH_IMAGE_HH
27 # define MLN_DATA_FILL_WITH_IMAGE_HH
35 # include <mln/core/concept/image.hh>
39 # include <mln/data/fill_with_image.spe.hh>
58 template <
typename I,
typename J>
63 # ifndef MLN_INCLUDE_ONLY
68 template <
typename I,
typename J>
70 void fill_with_image_tests(Image<I>& ima,
const Image<J>&
data)
77 mlc_is(mln_trait_image_pw_io(I),
78 mln::trait::image::pw_io::read_write)::check();
79 mlc_converts_to(mln_value(J), mln_value(I))::check();
80 mln_precondition(
exact(ima).is_valid());
81 mln_precondition(
exact(data).is_valid());
99 template <
typename I,
typename J>
102 mln_trace(
"data::impl::generic::fill_with_image");
103 I& ima =
exact(ima_);
104 const J& data =
exact(data_);
106 data::internal::fill_with_image_tests(ima, data);
108 mln_piter(I)
p(ima.domain());
110 ima(
p) = static_cast<mln_value(I)>(data(
p));
121 template <typename I, typename J>
125 mln_trace(
"data::fill_with_image");
127 internal::fill_with_image_(ima, data);
131 # endif // ! MLN_INCLUDE_ONLY
138 #endif // ! MLN_DATA_FILL_WITH_IMAGE_HH