26 #ifndef MLN_CORE_IMAGE_COMPLEX_WINDOWS_HH
27 # define MLN_CORE_IMAGE_COMPLEX_WINDOWS_HH
32 # include <mln/core/internal/complex_window_base.hh>
33 # include <mln/core/internal/complex_window_p_base.hh>
35 # include <mln/topo/complex_iterators.hh>
51 # define mln_gen_complex_window_with_base(Win, Fwd_Complex_Iter, Bkd_Complex_Iter, Base) \
53 template <unsigned D, typename G> struct Win; \
58 template <unsigned D, typename G> \
59 struct window_< Win <D, G> > \
60 : window_< Base < D, G, \
61 Fwd_Complex_Iter<D>, \
62 Bkd_Complex_Iter <D>, \
69 template <unsigned D, typename G> \
72 Fwd_Complex_Iter <D>, \
73 Bkd_Complex_Iter <D>, \
94 # define mln_gen_complex_window(Win, Fwd_Complex_Iter, Bkd_Complex_Iter) \
95 mln_gen_complex_window_with_base(Win, \
98 mln::internal::complex_window_base)
115 # define mln_gen_complex_window_p(Win, Fwd_Complex_Iter, Bkd_Complex_Iter) \
116 mln_gen_complex_window_with_base(Win, \
119 mln::internal::complex_window_p_base)
133 topo::adj_lower_face_fwd_iter,
134 topo::adj_lower_face_bkd_iter);
139 topo::adj_higher_face_fwd_iter,
140 topo::adj_higher_face_bkd_iter);
145 topo::adj_lower_higher_face_fwd_iter,
146 topo::adj_lower_higher_face_bkd_iter);
151 topo::adj_lower_dim_connected_n_face_fwd_iter,
152 topo::adj_lower_dim_connected_n_face_bkd_iter);
157 topo::adj_higher_dim_connected_n_face_fwd_iter,
158 topo::adj_higher_dim_connected_n_face_bkd_iter);
163 topo::adj_m_face_fwd_iter,
164 topo::adj_m_face_bkd_iter);
174 topo::adj_lower_face_fwd_iter,
175 topo::adj_lower_face_bkd_iter);
180 topo::adj_higher_face_fwd_iter,
181 topo::adj_higher_face_bkd_iter);
187 topo::adj_lower_higher_face_fwd_iter,
188 topo::adj_lower_higher_face_bkd_iter);
194 topo::adj_lower_dim_connected_n_face_fwd_iter,
195 topo::adj_lower_dim_connected_n_face_bkd_iter);
201 topo::adj_higher_dim_connected_n_face_fwd_iter,
202 topo::adj_higher_dim_connected_n_face_bkd_iter);
208 topo::adj_m_face_fwd_iter,
209 topo::adj_m_face_bkd_iter);
213 # undef mln_gen_complex_window_p
214 # undef mln_gen_complex_window
215 # undef mln_gen_complex_window_from_base
217 #endif // ! MLN_CORE_IMAGE_COMPLEX_WINDOWS_HH