27 #ifndef MLN_TOPO_ATTIC_FACES_ITER_HH
28 # define MLN_TOPO_ATTIC_FACES_ITER_HH
34 # include <mln/topo/internal/complex_set_iterator_base.hh>
35 # include <mln/topo/n_face.hh>
54 template <
unsigned N,
unsigned D>
57 faces_fwd_iter_<N, D> >
104 template <
unsigned N,
unsigned D>
107 faces_bkd_iter_<N, D> >
144 # ifndef MLN_INCLUDE_ONLY
150 template <
unsigned N,
unsigned D>
156 metal::bool_< N <= D >::check();
160 template <
unsigned N,
unsigned D>
166 metal::bool_< N <= D >::check();
170 template <
unsigned N,
unsigned D>
175 face_.set_face_id(0u);
178 template <
unsigned N,
unsigned D>
185 unsigned face_id = face_.face_id();
186 if (face_id + 1 < face_.cplx().template nfaces_of_static_dim<N>())
193 face_.set_face_id(face_id + 1);
204 template <
unsigned N,
unsigned D>
210 metal::bool_< N <= D >::check();
214 template <
unsigned N,
unsigned D>
220 metal::bool_< N <= D >::check();
224 template <
unsigned N,
unsigned D>
229 face_.set_face_id(face_.cplx().template nfaces_of_static_dim<N>() - 1);
232 template <
unsigned N,
unsigned D>
239 unsigned face_id = face_.face_id();
247 face_.set_face_id(face_id - 1);
253 # endif // ! MLN_INCLUDE_ONLY
259 #endif // ! MLN_TOPO_ATTIC_FACES_ITER_HH