--- milena/ChangeLog | 7 +++- milena/mln/world/kn/fill_1_from_2_faces.hh | 55 +++++----------------------- 2 files changed, 16 insertions(+), 46 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog index fe23428..0a784ae 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,4 +1,9 @@ -2012-11-01 Guillaume Lazzara z@lrde.epita.fr +2012-11-01 Guilelaume Lazzara z@lrde.epita.fr + + * mln/world/kn/fill_1_from_2_faces.hh: Rely on + fill_1_from_aux_2_faces. + +2012-11-01 Guilelaume Lazzara z@lrde.epita.fr
Add world::kn::fill_2_from_aux_1_faces.hh.
diff --git a/milena/mln/world/kn/fill_1_from_2_faces.hh b/milena/mln/world/kn/fill_1_from_2_faces.hh index c190347..43dc6ac 100644 --- a/milena/mln/world/kn/fill_1_from_2_faces.hh +++ b/milena/mln/world/kn/fill_1_from_2_faces.hh @@ -30,11 +30,9 @@ #ifndef MLN_WORLD_KN_FILL_1_FROM_2_FACES_HH # define MLN_WORLD_KN_FILL_1_FROM_2_FACES_HH
-# include <mln/core/alias/point2d.hh> -# include <mln/world/kn/is_1_face_vertical.hh> -# include <mln/world/kn/is_1_face_horizontal.hh> -# include <mln/world/kn/border/compute_1_faces.hh> -# include <mln/world/kn/safe_cast.hh> +# include <mln/core/concept/image.hh> +# include <mln/core/concept/function.hh> +# include <mln/world/kn/fill_1_from_aux_2_faces.hh>
namespace mln { @@ -84,59 +82,26 @@ namespace mln
template <typename I, typename A> - void fill_1_from_2_faces(Image<I>& inout_, const Accumulator<A>& accu_) + void fill_1_from_2_faces(Image<I>& inout, const Accumulator<A>& accu) { trace::entering("mln::world::kn::fill_1_from_2_faces");
- I& inout = exact(inout_); - mln_precondition(inout.is_valid()); - - A accu = exact(accu_); - typedef mln_argument(A) arg; - mln_piter(I) p(inout.domain()); - for_all(p) - if (kn::is_1_face_vertical(p)) - { - accu.init(); - if (inout.domain().has(p + left)) - accu.take(safe_cast_to<arg>(inout(p + left))); - if (inout.domain().has(p + right)) - accu.take(safe_cast_to<arg>(inout(p + right))); - inout(p) = safe_cast(accu.to_result()); - } - else if (is_1_face_horizontal(p)) - { - accu.init(); - if (inout.domain().has(p + up)) - accu.take(safe_cast_to<arg>(inout(p + up))); - if (inout.domain().has(p + down)) - accu.take(safe_cast_to<arg>(inout(p + down))); - inout(p) = safe_cast(accu.to_result()); - } + mln_precondition(exact(inout).is_valid()); + + kn::fill_1_from_aux_2_faces(inout, inout, accu);
trace::exiting("mln::world::kn::fill_1_from_2_faces"); }
template <typename I, typename F> - void fill_1_from_2_faces(Image<I>& inout_, const Function_vv2v<F>& f_) + void fill_1_from_2_faces(Image<I>& inout, const Function_vv2v<F>& f) { trace::entering("mln::world::kn::fill_1_from_2_faces");
- I& inout = exact(inout_); - const F& f = exact(f_); - mln_precondition(inout.is_valid()); - - kn::border::compute_1_faces(inout, f); + mln_precondition(exact(inout).is_valid());
- mln_piter(I) p(inout.domain()); - for_all(p) - if (kn::is_1_face_vertical(p)) - inout(p) = safe_cast(f(safe_cast(inout(p + left)), - safe_cast(inout(p + right)))); - else if (is_1_face_horizontal(p)) - inout(p) = safe_cast(f(safe_cast(inout(p + up)), - safe_cast(inout(p + down)))); + kn::fill_1_from_aux_2_faces(inout, inout, f);
trace::exiting("mln::world::kn::fill_1_from_2_faces"); }