2525: Simplify face iterators using the new accessors of face handles.

* mln/topo/face_iter.hh (mln::topo::face_fwd_iter<D>::next_) (mln::topo::face_bkd_iter<D>::next_) * mln/topo/n_face_iter.hh (mln::topo::n_face_fwd_iter<D>::next_) (mln::topo::n_face_bkd_iter<D>::next_) * mln/topo/static_n_face_iter.hh (mln::topo::static_n_face_fwd_iter<N, D>::next_) (mln::topo::static_n_face_bkd_iter<N, D>::next_): Here. --- milena/ChangeLog | 15 +++++++++++ milena/mln/topo/face_iter.hh | 42 +++++++------------------------- milena/mln/topo/n_face_iter.hh | 28 +++------------------ milena/mln/topo/static_n_face_iter.hh | 30 +++-------------------- 4 files changed, 32 insertions(+), 83 deletions(-) diff --git a/milena/ChangeLog b/milena/ChangeLog index d647d7e..18b410e 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,5 +1,20 @@ 2008-10-06 Roland Levillain <roland@lrde.epita.fr> + Simplify face iterators using the new accessors of face handles. + + * mln/topo/face_iter.hh + (mln::topo::face_fwd_iter<D>::next_) + (mln::topo::face_bkd_iter<D>::next_) + * mln/topo/n_face_iter.hh + (mln::topo::n_face_fwd_iter<D>::next_) + (mln::topo::n_face_bkd_iter<D>::next_) + * mln/topo/static_n_face_iter.hh + (mln::topo::static_n_face_fwd_iter<N, D>::next_) + (mln::topo::static_n_face_bkd_iter<N, D>::next_): + Here. + +2008-10-06 Roland Levillain <roland@lrde.epita.fr> + Add extra accessors for topo::face<D> and topo::n_face<N, D>. * mln/topo/face.hh diff --git a/milena/mln/topo/face_iter.hh b/milena/mln/topo/face_iter.hh index b34bfbd..2c0df92 100644 --- a/milena/mln/topo/face_iter.hh +++ b/milena/mln/topo/face_iter.hh @@ -169,26 +169,14 @@ namespace mln { if (is_valid()) { - unsigned n = f_.n(); - unsigned face_id = f_.face_id(); - - if (face_id + 1 < f_.cplx().nfaces(n)) - /* FIXME: Provide accessor face::face_id() returning - a mutable reference? This way, we could just write - - ++f_.face_id(); - - instead of the following. - - Or add {inc,add}_face_id() services. */ - f_.set_face_id(face_id + 1); + if (f_.face_id() + 1 < f_.cplx().nfaces(f_.n())) + f_.inc_face_id(); else // Start to iterate on the faces of the next dimension if // possible. - if (n <= D) + if (f_.n() <= D) { - // FIXME: Same remark as above. - f_.set_n(n + 1); + f_.inc_n(); f_.set_face_id(0u); } else @@ -233,27 +221,15 @@ namespace mln { if (is_valid()) { - unsigned n = f_.n(); - unsigned face_id = f_.face_id(); - - if (face_id > 0) - /* FIXME: Provide accessor face::face_id() returning - a mutable reference? This way, we could just write - - ++f_.face_id(); - - instead of the following. - - Or add {inc,add}_face_id() services. */ - f_.set_face_id(face_id - 1); + if (f_.face_id() > 0) + f_.dec_face_id(); else // Start to iterate on the faces of the previous dimension // if it exists. - if (n > 0) + if (f_.n() > 0) { - // FIXME: Same remark as above. - f_.set_n(n - 1); - f_.set_face_id(f_.cplx().nfaces(n - 1) - 1); + f_.dec_n(); + f_.set_face_id(f_.cplx().nfaces(f_.n()) - 1); } else invalidate(); diff --git a/milena/mln/topo/n_face_iter.hh b/milena/mln/topo/n_face_iter.hh index eaf9ef9..4b658bb 100644 --- a/milena/mln/topo/n_face_iter.hh +++ b/milena/mln/topo/n_face_iter.hh @@ -191,19 +191,8 @@ namespace mln { if (is_valid()) { - unsigned face_id = f_.face_id(); - // The number of faces of dimension N in cplx_. - unsigned nn_faces = f_.cplx().nfaces(n()); - if (face_id + 1 < nn_faces) - /* FIXME: Provide accessor face::face_id() returning - a mutable reference? This way, we could just write - - ++f_.face_id(); - - instead of the following. - - Or add {inc,add}_face_id() services. */ - f_.set_face_id(face_id + 1); + if (f_.face_id() + 1 < f_.cplx().nfaces(n())) + f_.inc_face_id(); else invalidate(); } @@ -265,17 +254,8 @@ namespace mln { if (is_valid()) { - unsigned face_id = f_.face_id(); - if (face_id > 0) - /* FIXME: Provide accessor face::face_id() returning - a mutable reference? This way, we could just write - - ++f_.face_id(); - - instead of the following. - - Or add {inc,add}_face_id() services. */ - f_.set_face_id(face_id - 1); + if (f_.face_id() > 0) + f_.dec_face_id(); else invalidate(); } diff --git a/milena/mln/topo/static_n_face_iter.hh b/milena/mln/topo/static_n_face_iter.hh index 3868e01..db184ba 100644 --- a/milena/mln/topo/static_n_face_iter.hh +++ b/milena/mln/topo/static_n_face_iter.hh @@ -174,20 +174,8 @@ namespace mln { if (is_valid()) { - unsigned face_id = f_.face_id(); - // The number of faces of dimension N in cplx_. - unsigned nn_faces = f_.cplx().template nfaces<N>(); - if (face_id + 1 < nn_faces) - /* FIXME: Provide accessor face::face_id() - returning a mutable reference? This way, we could just - write - - ++f_.face_id(); - - instead of the following. - - Or add {inc,add}_face_id() services. */ - f_.set_face_id(face_id + 1); + if (f_.face_id() + 1 < f_.cplx().template nfaces<N>()) + f_.inc_face_id(); else invalidate(); } @@ -235,18 +223,8 @@ namespace mln { if (is_valid()) { - unsigned face_id = f_.face_id(); - if (face_id > 0) - /* FIXME: Provide accessor face::face_id() - returning a mutable reference? This way, we could just - write - - ++f_.face_id(); - - instead of the following. - - Or add {inc,add}_face_id() services. */ - f_.set_face_id(face_id - 1); + if (f_.face_id() > 0) + f_.dec_face_id(); else invalidate(); } -- 1.5.6.5
participants (1)
-
Roland Levillain