27 #ifndef MLN_TOPO_ADJ_HIGHER_FACE_ITER_HH
28 # define MLN_TOPO_ADJ_HIGHER_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;
73 :
public internal::forward_complex_relative_iterator_base< topo::face<D>,
75 adj_higher_face_fwd_iter<D> >
78 typedef internal::forward_complex_relative_iterator_base< topo::face<D>,
87 template <
typename Fref>
92 void update_adj_faces_();
105 template <
unsigned D>
107 :
public internal::backward_complex_relative_iterator_base< topo::face<D>,
109 adj_higher_face_bkd_iter<D> >
112 typedef internal::backward_complex_relative_iterator_base< topo::face<D>,
121 template <
typename Fref>
126 void update_adj_faces_();
131 # ifndef MLN_INCLUDE_ONLY
137 template <
unsigned D>
143 template <
unsigned D>
144 template <
typename Fref>
151 template <
unsigned D>
154 adj_higher_face_fwd_iter<D>::update_adj_faces_()
156 mln_precondition(this->c_);
157 this->adj_faces_ = this->c_->higher_dim_adj_faces();
165 template <
unsigned D>
171 template <
unsigned D>
172 template <
typename Fref>
179 template <
unsigned D>
182 adj_higher_face_bkd_iter<D>::update_adj_faces_()
184 mln_precondition(this->c_);
185 this->adj_faces_ = this->c_->higher_dim_adj_faces();
188 # endif // ! MLN_INCLUDE_ONLY
194 #endif // ! MLN_TOPO_ADJ_HIGHER_FACE_ITER_HH