Forward iterator on all the m-faces transitively adjacent to a (reference) n-face in a complex. More...
#include <adj_m_face_iter.hh>
Public Types | |
typedef Object< void > | category |
typedef topo::face< D > | center_type |
The type of the center face. | |
typedef adj_m_face_fwd_iter< D > | exact_t |
typedef algebraic_face< D > | face |
The type of the iterated faces. | |
typedef algebraic_face< D > | face_type |
The type of the iterated faces. | |
Public Member Functions | |
unsigned | m () const |
Get the target dimension. | |
void | next () |
Go to the next element. | |
void | set_m (unsigned m) |
Set the target dimension. | |
void | update_adj_faces_ () |
Compute the set of faces adjacent to the reference face. | |
adj_m_face_fwd_iter () | |
Construction. | |
template<typename Fref > | |
adj_m_face_fwd_iter (const Fref &f_ref, unsigned m) | |
Constructs an iterator, with f_ref as reference face, and a target dimension equal to m. | |
bool | is_valid () const |
ManipulationTest if the iterator is valid. | |
void | invalidate () |
Invalidate the iterator. | |
void | do_start_ () |
Start an iteration. | |
void | do_next_ () |
Go to the next point. | |
void | update_f_ () |
Update the target face. | |
void | center_at (const center_type &c) |
Manipulation. | |
void | start () |
Start an iteration. | |
void | next_ () |
Go to the next point. | |
const face & | subject () const |
Conversion. | |
operator const algebraic_face< D > & () const | |
Implicit conversion (conversion operator). | |
Protected Types | |
typedef std::vector< face_type > | adj_faces_t |
Protected Member Functions | |
void | update_adj_faces__ (const topo::face< D > ¢er, std::vector< algebraic_face< D > > &adj_faces) |
The actual implementation of the computation of the set of faces adjacent to the reference face. | |
Protected Attributes | |
adj_faces_t | adj_faces_ |
The set of faces adjacent to the reference face. | |
const center_type * | c_ |
A pointer to the center face around which this iterator moves. | |
face | f_ |
The face handle this iterator is pointing to. | |
super_::adj_faces_t::const_iterator | i_ |
An iterator on the set of adjacent edges. | |
unsigned | m_ |
The dimension of the iterated faces. | |
Private Types | |
typedef internal::adj_m_face_iterator < D > | impl_ |
typedef adj_m_face_fwd_iter< D > | self_ |
typedef internal::forward_complex_relative_iterator_base < topo::face< D > , algebraic_face< D >, self_ > | super_ |
Forward iterator on all the m-faces transitively adjacent to a (reference) n-face in a complex.
D | The dimension of the complex this iterator belongs to. |
The dimension parameter (m_) must be lower or equal to D.
If m_ is equal to the dimension of the reference face, then the iterated set is empty.
typedef std::vector<face_type> mln::topo::internal::complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::adj_faces_t [protected, inherited] |
typedef Object<void> mln::Object< adj_m_face_fwd_iter< D > >::category [inherited] |
typedef topo::face< D > mln::topo::internal::complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::center_type [inherited] |
The type of the center face.
typedef adj_m_face_fwd_iter< D > mln::Object< adj_m_face_fwd_iter< D > >::exact_t [inherited] |
typedef algebraic_face< D > mln::topo::internal::complex_iterator_base< algebraic_face< D > , adj_m_face_fwd_iter< D > >::face [inherited] |
The type of the iterated faces.
typedef algebraic_face< D > mln::topo::internal::forward_complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::face_type [inherited] |
The type of the iterated faces.
Reimplemented from mln::topo::internal::complex_relative_iterator_base< topo::face< D >, algebraic_face< D >, adj_m_face_fwd_iter< D > >.
typedef internal::adj_m_face_iterator<D> mln::topo::adj_m_face_fwd_iter< D >::impl_ [private] |
typedef adj_m_face_fwd_iter<D> mln::topo::adj_m_face_fwd_iter< D >::self_ [private] |
typedef internal::forward_complex_relative_iterator_base< topo::face<D>, algebraic_face<D>, self_ > mln::topo::adj_m_face_fwd_iter< D >::super_ [private] |
mln::topo::adj_m_face_fwd_iter< D >::adj_m_face_fwd_iter | ( | ) | [inline] |
Construction.
Construct an iterator, with an invalid reference face, and a target dimension equal to 0.
mln::topo::adj_m_face_fwd_iter< D >::adj_m_face_fwd_iter | ( | const Fref & | f_ref, | |
unsigned | m | |||
) | [inline] |
Constructs an iterator, with f_ref as reference face, and a target dimension equal to m.
void mln::topo::internal::complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::center_at | ( | const center_type & | c | ) | [inherited] |
Manipulation.
Change the center face.
void mln::topo::internal::forward_complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::do_next_ | ( | ) | [inherited] |
Go to the next point.
void mln::topo::internal::forward_complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::do_start_ | ( | ) | [inherited] |
Start an iteration.
void mln::topo::internal::forward_complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::invalidate | ( | ) | [inherited] |
Invalidate the iterator.
bool mln::topo::internal::forward_complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::is_valid | ( | ) | const [inherited] |
ManipulationTest if the iterator is valid.
unsigned mln::topo::internal::adj_m_face_iterator< D >::m | ( | ) | const [inherited] |
Get the target dimension.
References mln::topo::internal::adj_m_face_iterator< D >::m_.
void mln::Iterator< adj_m_face_fwd_iter< D > >::next | ( | ) | [inherited] |
Go to the next element.
void mln::topo::internal::complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::next_ | ( | ) | [inherited] |
Go to the next point.
mln::topo::internal::complex_iterator_base< algebraic_face< D > , adj_m_face_fwd_iter< D > >::operator const algebraic_face< D > & | ( | ) | const [inherited] |
Implicit conversion (conversion operator).
void mln::topo::internal::adj_m_face_iterator< D >::set_m | ( | unsigned | m | ) | [inherited] |
Set the target dimension.
References mln::topo::internal::adj_m_face_iterator< D >::m_.
void mln::topo::internal::complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::start | ( | ) | [inherited] |
Start an iteration.
const face& mln::topo::internal::complex_iterator_base< algebraic_face< D > , adj_m_face_fwd_iter< D > >::subject | ( | ) | const [inherited] |
Conversion.
Return a reference to the corresponding face handle.
Explicit conversion (accessor).
Referenced by mln::geom::complex_geometry< D, P >::operator()().
void mln::topo::adj_m_face_fwd_iter< D >::update_adj_faces_ | ( | ) | [inline] |
Compute the set of faces adjacent to the reference face.
The computation is delegated to mln::topo::internal::adj_m_face_iterator.
References mln::topo::internal::complex_relative_iterator_base< topo::face< D >, algebraic_face< D >, adj_m_face_fwd_iter< D > >::adj_faces_, mln::topo::internal::complex_relative_iterator_base< topo::face< D >, algebraic_face< D >, adj_m_face_fwd_iter< D > >::c_, and mln::topo::internal::adj_m_face_iterator< D >::update_adj_faces__().
void mln::topo::internal::adj_m_face_iterator< D >::update_adj_faces__ | ( | const topo::face< D > & | center, | |
std::vector< algebraic_face< D > > & | adj_faces | |||
) | [inline, protected, inherited] |
The actual implementation of the computation of the set of faces adjacent to the reference face.
References mln::topo::internal::adj_m_face_iterator< D >::m_, mln::topo::make_algebraic_face(), and mln::topo::face< D >::n().
Referenced by mln::topo::adj_m_face_bkd_iter< D >::update_adj_faces_(), and mln::topo::adj_m_face_fwd_iter< D >::update_adj_faces_().
void mln::topo::internal::forward_complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::update_f_ | ( | ) | [inherited] |
Update the target face.
adj_faces_t mln::topo::internal::complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::adj_faces_ [protected, inherited] |
The set of faces adjacent to the reference face.
Referenced by mln::topo::adj_m_face_fwd_iter< D >::update_adj_faces_().
const center_type* mln::topo::internal::complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::c_ [protected, inherited] |
A pointer to the center face around which this iterator moves.
Referenced by mln::topo::adj_m_face_fwd_iter< D >::update_adj_faces_().
face mln::topo::internal::complex_iterator_base< algebraic_face< D > , adj_m_face_fwd_iter< D > >::f_ [protected, inherited] |
The face handle this iterator is pointing to.
super_::adj_faces_t::const_iterator mln::topo::internal::forward_complex_relative_iterator_base< topo::face< D > , algebraic_face< D > , adj_m_face_fwd_iter< D > >::i_ [protected, inherited] |
An iterator on the set of adjacent edges.
unsigned mln::topo::internal::adj_m_face_iterator< D >::m_ [protected, inherited] |
The dimension of the iterated faces.
Referenced by mln::topo::internal::adj_m_face_iterator< D >::m(), mln::topo::internal::adj_m_face_iterator< D >::set_m(), and mln::topo::internal::adj_m_face_iterator< D >::update_adj_faces__().