27 #ifndef SCRIBO_FILTER_SEPARATORS_IN_BORDERS_HH
28 # define SCRIBO_FILTER_SEPARATORS_IN_BORDERS_HH
36 # include <mln/core/concept/image.hh>
37 # include <scribo/core/component_set.hh>
38 # include <scribo/core/document.hh>
39 # include <scribo/util/box_is_included.hh>
85 # ifndef MLN_INCLUDE_ONLY
91 mln_trace(
"scribo::filter::separators_in_borders");
93 mln_precondition(doc.is_valid());
98 if (doc.has_hline_seps())
100 unsigned border_size = hratio *
std::min(ima.domain().width(), ima.domain().height());
114 ptl = ima.domain().pmin(),
117 pbr = ima.domain().pmax(),
128 component_set<L> hline = doc.hline_seps_comps().duplicate();
129 for_all_comps(c, hline)
130 if (hline(c).is_valid())
131 if (util::box_is_included(hline(c).
bbox(), bt)
132 || util::box_is_included(hline(c).bbox(), br)
133 || util::box_is_included(hline(c).bbox(), bb)
134 || util::box_is_included(hline(c).bbox(), bl))
141 doc.set_hline_separators(doc.hline_seps(), hline);
146 if (doc.has_vline_seps())
148 unsigned border_size = vratio *
std::min(ima.domain().width(), ima.domain().height());
162 ptl = ima.domain().pmin(),
165 pbr = ima.domain().pmax(),
176 component_set<L> vline = doc.vline_seps_comps().duplicate();
177 for_all_comps(c, vline)
178 if (vline(c).is_valid())
180 if (util::box_is_included(vline(c).
bbox(), bt)
181 || util::box_is_included(vline(c).
bbox(), br)
182 || util::box_is_included(vline(c).
bbox(), bb)
183 || util::box_is_included(vline(c).
bbox(), bl))
190 doc.set_vline_separators(doc.vline_seps(), vline);
195 # endif // ! MLN_INCLUDE_ONLY
201 #endif // ! SCRIBO_FILTER_SEPARATORS_IN_BORDERS_HH