26 #ifndef SCRIBO_PRIMITIVE_EXTRACT_CANVAS_HH
27 # define SCRIBO_PRIMITIVE_EXTRACT_CANVAS_HH
33 # include <mln/core/concept/image.hh>
34 # include <mln/labeling/background.hh>
35 # include <mln/util/array.hh>
36 # include <mln/util/couple.hh>
37 # include <mln/value/label_8.hh>
38 # include <mln/util/couple.hh>
40 # include <scribo/table/align_lines_verticaly.hh>
41 # include <scribo/table/align_lines_horizontaly.hh>
42 # include <scribo/table/connect_vertical_lines.hh>
43 # include <scribo/table/connect_horizontal_lines.hh>
44 # include <scribo/table/repair_horizontal_lines.hh>
45 # include <scribo/table/repair_vertical_lines.hh>
47 # include <scribo/debug/save_table_image.hh>
72 template <
typename I,
typename V>
75 const mln::util::array<
box<mln_site(I)> >& hlines_,
76 const mln::util::array<
box<mln_site(I)> >& vlines_,
77 unsigned max_dist_lines);
80 # ifndef MLN_INCLUDE_ONLY
83 template <
typename I,
typename V>
86 const mln::util::array<
box<mln_site(I)> >& hlines,
87 const mln::util::array<
box<mln_site(I)> >& vlines,
88 unsigned max_dist_lines)
90 mln_trace(
"scribo::primitive::canvas");
91 const I& input =
exact(input_);
93 mlc_equal(mln_value(I),
bool)::check();
94 mln_precondition(input.is_valid());
111 initialize(res, input);
113 for_all_elements(i, lines.first())
114 mln::draw::
box(res, lines.first()[i], true);
115 for_all_elements(i, lines.second())
116 mln::draw::
box(res, lines.second()[i], true);
122 # endif // ! MLN_INCLUDE_ONLY
130 #endif // ! SCRIBO_PRIMITIVE_EXTRACT_CANVAS_HH