26 #ifndef MLN_CANVAS_CHAMFER_HH
27 # define MLN_CANVAS_CHAMFER_HH
34 # include <mln/core/internal/image_morpher.hh>
35 # include <mln/win/sym.hh>
49 typedef typename F::I I;
50 typedef typename F::W W;
51 typedef mln_psite(I) point;
60 # ifndef MLN_INCLUDE_ONLY
83 mln_fwd_piter(I) p(f.input.domain());
84 mln_qiter(W) q(f.win, p);
86 for_all(p) if (f.handles (p))
87 for_all(q) if (f.input.domain().has(q))
88 if (f.output(q) != f.max
89 && f.output(q) + q.w() < f.output(p))
90 f.output(p) = f.output(q) + q.w();
97 mln_bkd_piter(I) p(f.input.domain());
98 mln_qiter(W) q(w_win_b, p);
100 for_all(p) if (f.handles (p))
101 for_all(q) if (f.input.domain().has(q))
102 if (f.output(q) != f.max
103 && f.output(q) + q.w() < f.output(p))
104 f.output(p) = f.output(q) + q.w();
109 # endif // ! MLN_INCLUDE_ONLY
115 #endif // ! MLN_CANVAS_CHAMFER_HH