27 #ifndef MLN_DRAW_BOX_HH
28 # define MLN_DRAW_BOX_HH
37 # include <mln/core/concept/image.hh>
38 # include <mln/core/alias/box2d.hh>
39 # include <mln/data/paste.hh>
40 # include <mln/draw/line.hh>
41 # include <mln/pw/image.hh>
42 # include <mln/pw/cst.hh>
63 template <
typename I,
typename B>
64 void box(Image<I>& ima,
66 const mln_value(I)& v);
69 # ifndef MLN_INCLUDE_ONLY
71 template <
typename I,
typename B>
73 void box(Image<I>& ima,
75 const mln_value(I)& v)
77 mln_precondition(
exact(ima).is_valid());
79 mln_psite(I) pmin =
exact(b).pmin();
80 mln_psite(I) pmax =
exact(b).pmax();
82 mln_precondition(
exact(ima).has(pmin) &&
exact(ima).has(pmax));
84 mln_psite(I) p1 (pmin[0], pmin[1]);
85 mln_psite(I) p2 (pmax[0], pmin[1]);
86 mln_psite(I) p3 (pmin[0], pmax[1]);
87 mln_psite(I) p4 (pmax[0], pmax[1]);
89 draw::
line (ima, p1, p2, v);
90 draw::
line (ima, p2, p4, v);
91 draw::
line (ima, p4, p3, v);
92 draw::
line (ima, p3, p1, v);
95 # endif // ! MLN_INCLUDE_ONLY
102 #endif // ! MLN_DRAW_BOX_HH