27 #ifndef MLN_TOPO_ADJ_LOWER_DIM_CONNECTED_N_FACE_ITER_HH
28 # define MLN_TOPO_ADJ_LOWER_DIM_CONNECTED_N_FACE_ITER_HH
38 # include <mln/topo/internal/complex_relative_iterator_base.hh>
39 # include <mln/topo/algebraic_face.hh>
49 template <
unsigned D>
class complex;
52 template <
unsigned D>
class adj_lower_dim_connected_n_face_iterator;
71 adj_lower_dim_connected_n_face_fwd_iter<D> >,
85 template <
typename Fref>
108 template <
unsigned D>
112 adj_lower_dim_connected_n_face_bkd_iter<D> >,
126 template <
typename Fref>
145 template <
unsigned D>
159 # ifndef MLN_INCLUDE_ONLY
165 template <
unsigned D>
171 template <
unsigned D>
172 template <
typename Fref>
184 template <
unsigned D>
187 adj_lower_dim_connected_n_face_fwd_iter<D>::update_adj_faces_()
189 mln_precondition(this->c_);
191 this->update_adj_faces__(*this->c_, this->adj_faces_);
199 template <
unsigned D>
201 adj_lower_dim_connected_n_face_bkd_iter<D>::adj_lower_dim_connected_n_face_bkd_iter()
205 template <
unsigned D>
206 template <
typename Fref>
208 adj_lower_dim_connected_n_face_bkd_iter<D>::adj_lower_dim_connected_n_face_bkd_iter(
const Fref& f_ref)
213 template <
unsigned D>
216 adj_lower_dim_connected_n_face_bkd_iter<D>::update_adj_faces_()
218 mln_precondition(this->c_);
220 this->update_adj_faces__(*this->c_, this->adj_faces_);
235 template <
unsigned D>
238 adj_lower_dim_connected_n_face_iterator<D>::update_adj_faces__(
const topo::face<D>& center,
249 std::set< algebraic_face<D> > faces_set;
250 typedef std::vector< algebraic_face<D> > faces_t;
253 faces_t shared_lower_faces = center.lower_dim_adj_faces();
254 for (
typename faces_t::const_iterator slf = shared_lower_faces.begin();
255 slf != shared_lower_faces.end(); ++slf)
259 faces_t adj_n_faces = slf->higher_dim_adj_faces();
260 for (
typename faces_t::const_iterator af = adj_n_faces.begin();
261 af != adj_n_faces.end(); ++af)
267 faces_set.find(*af) == faces_set.end())
269 adj_faces.push_back(*af);
270 faces_set.insert(*af);
278 # endif // ! MLN_INCLUDE_ONLY
284 #endif // ! MLN_TOPO_ADJ_LOWER_DIM_CONNECTED_N_FACE_ITER_HH