26 #ifndef MLN_TOPO_STATIC_N_FACE_ITER_HH
27 # define MLN_TOPO_STATIC_N_FACE_ITER_HH
34 # include <mln/topo/internal/complex_set_iterator_base.hh>
35 # include <mln/topo/face.hh>
54 template <
unsigned N,
unsigned D>
56 :
public internal::complex_set_iterator_base< topo::face<D>,
57 static_n_face_fwd_iter<N, D> >
62 typedef internal::complex_set_iterator_base< topo::face<D>,
self_ > super_;
65 using super_::is_valid;
66 using super_::invalidate;
100 template <
unsigned N,
unsigned D>
102 :
public internal::complex_set_iterator_base< topo::face<D>,
103 static_n_face_bkd_iter<N, D> >
108 typedef internal::complex_set_iterator_base< topo::face<D>,
self_ > super_;
111 using super_::is_valid;
112 using super_::invalidate;
137 # ifndef MLN_INCLUDE_ONLY
143 template <
unsigned N,
unsigned D>
149 metal::bool_< N <= D >::check();
151 mln_postcondition(!is_valid());
154 template <
unsigned N,
unsigned D>
160 metal::bool_< N <= D >::check();
162 mln_postcondition(!is_valid());
165 template <
unsigned N,
unsigned D>
173 template <
unsigned N,
unsigned D>
180 if (f_.face_id() + 1 < f_.cplx().template nfaces_of_static_dim<N>())
192 template <
unsigned N,
unsigned D>
198 metal::bool_< N <= D >::check();
200 mln_postcondition(!is_valid());
203 template <
unsigned N,
unsigned D>
209 metal::bool_< N <= D >::check();
211 mln_postcondition(!is_valid());
214 template <
unsigned N,
unsigned D>
219 f_.set_face_id(f_.cplx().template nfaces_of_static_dim<N>() - 1);
222 template <
unsigned N,
unsigned D>
229 if (f_.face_id() > 0)
236 # endif // ! MLN_INCLUDE_ONLY
242 #endif // ! MLN_TOPO_STATIC_N_FACE_ITER_HH