27 #ifndef MLN_TOPO_ADJ_LOWER_FACE_ITER_HH
28 # define MLN_TOPO_ADJ_LOWER_FACE_ITER_HH
35 # include <mln/topo/internal/complex_relative_iterator_base.hh>
36 # include <mln/topo/algebraic_face.hh>
46 template <
unsigned D>
class complex;
51 template <
typename C,
typename F,
typename E>
52 class forward_complex_relative_iterator_base;
54 template <
typename C,
typename F,
typename E>
55 class backward_complex_relative_iterator_base;
74 :
public internal::forward_complex_relative_iterator_base< topo::face<D>,
76 adj_lower_face_fwd_iter<D> >
81 typedef internal::forward_complex_relative_iterator_base< topo::face<D>,
89 template <
typename Fref>
94 void update_adj_faces_();
107 template <
unsigned D>
109 :
public internal::backward_complex_relative_iterator_base< topo::face<D>,
111 adj_lower_face_bkd_iter<D> >
116 typedef internal::backward_complex_relative_iterator_base< topo::face<D>,
123 template <
typename Fref>
128 void update_adj_faces_();
133 # ifndef MLN_INCLUDE_ONLY
139 template <
unsigned D>
145 template <
unsigned D>
146 template <
typename Fref>
153 template <
unsigned D>
156 adj_lower_face_fwd_iter<D>::update_adj_faces_()
158 mln_precondition(this->c_);
159 this->adj_faces_ = this->c_->lower_dim_adj_faces();
167 template <
unsigned D>
173 template <
unsigned D>
174 template <
typename Fref>
181 template <
unsigned D>
184 adj_lower_face_bkd_iter<D>::update_adj_faces_()
186 mln_precondition(this->c_);
187 this->adj_faces_ = this->c_->lower_dim_adj_faces();
190 # endif // ! MLN_INCLUDE_ONLY
196 #endif // ! MLN_TOPO_ADJ_LOWER_FACE_ITER_HH