26 #ifndef APPS_GRAPH_MORPHO_CONVERT_HH
27 # define APPS_GRAPH_MORPHO_CONVERT_HH
32 # include <mln/core/alias/complex_image.hh>
33 # include <mln/core/image/image2d.hh>
35 # include <mln/math/abs.hh>
37 # include "apps/graph-morpho/make.hh"
50 const unsigned dim = 1;
58 mln_site_(geom_t) s(v);
61 mln_invariant(s.size() == 1);
67 point2d box_p_min(support.pmin().row() * 2, support.pmin().col() * 2);
68 point2d box_p_max(support.pmax().row() * 2, support.pmax().col() * 2);
75 mln_site_(geom_t) s(v);
78 mln_invariant(s.size() == 1);
80 point2d p_out(p_in.row() * 2, p_in.col() * 2);
81 output(p_out) = input(v);
88 mln_site_(geom_t) s(e);
91 mln_invariant(s.size() == 2);
94 if (p1.row() == p2.
row())
99 output(p_out) = input(e);
101 else if (p1.col() == p2.
col())
106 output(p_out) = input(e);
127 mln_precondition(input_box.nrows() % 2 == 1);
128 mln_precondition(input_box.ncols() % 2 == 1);
132 box2d output_box(input_box.nrows() / 2 + 1,
133 input_box.ncols() / 2 + 1);
136 const unsigned dim = 1;
143 mln_site_(geom_t) s(v);
146 mln_invariant(s.size() == 1);
148 point2d q(p.row() * 2, p.col() * 2);
149 output(v) = input(q);
156 mln_site_(geom_t) s(e);
159 mln_invariant(s.size() == 2);
165 output(e) = input(q);
174 #endif // ! APPS_GRAPH_MORPHO_CONVERT_HH