26 #ifndef SCRIBO_IO_IMG_INTERNAL_FULL_IMG_VISITOR_HH
27 # define SCRIBO_IO_IMG_INTERNAL_FULL_IMG_VISITOR_HH
35 # include <mln/core/image/image2d.hh>
36 # include <mln/value/rgb8.hh>
37 # include <mln/draw/polygon.hh>
38 # include <mln/draw/box.hh>
40 # include <scribo/core/internal/doc_serializer.hh>
41 # include <scribo/core/document.hh>
42 # include <scribo/core/paragraph_set.hh>
43 # include <scribo/core/line_info.hh>
45 # include <scribo/text/paragraphs_closing.hh>
46 # include <scribo/io/img/internal/draw_edges.hh>
47 # include <scribo/util/component_precise_outline.hh>
86 # ifndef MLN_INCLUDE_ONLY
101 full_img_visitor<L>::visit(
const document<L>& doc)
const
105 doc.paragraphs().accept(*
this);
108 if (doc.has_elements())
111 for_all_comps(e, elts)
114 if (elts(e).is_valid())
121 if (doc.has_vline_seps())
123 lbl_ = doc.vline_seps_comps().labeled_image();
124 for_all_comps(c, doc.vline_seps_comps())
125 if (doc.vline_seps_comps()(c).is_valid())
126 doc.vline_seps_comps()(c).accept(*
this);
128 if (doc.has_hline_seps())
130 lbl_ = doc.hline_seps_comps().labeled_image();
131 for_all_comps(c, doc.hline_seps_comps())
132 if (doc.hline_seps_comps()(c).is_valid())
133 doc.hline_seps_comps()(c).accept(*
this);
141 template <
typename L>
143 full_img_visitor<L>::visit(
const component_info<L>&
info)
const
149 par = scribo::util::component_precise_outline(lbl_ | info.bbox(), id);
177 template <
typename L>
179 full_img_visitor<L>::visit(
const paragraph_set<L>& parset)
const
184 L par_clo = text::paragraphs_closing(parset);
186 for_all_paragraphs(p, parset)
187 if (parset(p).is_valid())
190 | parset(p).
bbox(), p);
197 template <
typename L>
199 full_img_visitor<L>::visit(
const line_info<L>&
line)
const
204 pmin = line.bbox().pmin(),
205 pmax = line.bbox().pmax();
206 pmax.
row() = line.baseline();
207 pmin.
row() = line.baseline();
212 #endif // MLN_INCLUDE_ONLY
222 #endif // SCRIBO_IO_IMG_INTERNAL_FULL_IMG_VISITOR_HH