27 #ifndef SCRIBO_PRIMITIVE_EXTRACT_LINES_V_DISCONTINUED_HH
28 # define SCRIBO_PRIMITIVE_EXTRACT_LINES_V_DISCONTINUED_HH
34 # include <mln/core/concept/image.hh>
35 # include <mln/core/concept/neighborhood.hh>
37 # include <scribo/primitive/extract/lines_discontinued.hh>
65 template <
typename I,
typename N,
typename V>
66 component_set<mln_ch_value(I,V)>
68 const Neighborhood<N>& nbh, V& nlines,
69 unsigned line_length,
unsigned rank_k);
72 # ifndef MLN_INCLUDE_ONLY
78 template <
typename I,
typename N,
typename V>
80 lines_v_discontinued_tests(
const Image<I>& input,
81 const Neighborhood<N>& nbh, V& nlines,
82 unsigned line_length,
unsigned rank_k)
84 mlc_equal(mln_value(I),
bool)::check();
85 mlc_bool(mln_site_(I)::dim == 2)::check();
88 mln_precondition(
exact(input).is_valid());
89 mln_precondition(
exact(nbh).is_valid());
90 mln_precondition(line_length % 2);
103 template <
typename I,
typename N,
typename V>
104 component_set<mln_ch_value(I,V)>
106 const Neighborhood<N>& nbh, V& nlines,
107 unsigned line_length,
unsigned rank_k)
109 mln_trace(
"scribo::primitive::lines_v_discontinued");
111 internal::lines_v_discontinued_tests(input, nbh, nlines,
112 line_length, rank_k);
114 win::vline2d
win(line_length);
116 component_set<mln_ch_value(I,V)>
123 # endif // ! MLN_INCLUDE_ONLY
132 #endif // ! SCRIBO_PRIMITIVE_EXTRACT_LINES_V_DISCONTINUED_HH