A functor returning the sites of the faces of a complex where the locations of each 0-face is stored. More...
#include <complex_geometry.hh>
Public Types | |
typedef P | location |
typedef util::multi_site< P > | site |
Public Member Functions | |
unsigned | add_location (const P &p) |
Populate the set of locations. | |
complex_geometry () | |
Build a complex geometry object. | |
site | operator() (const mln::topo::face< D > &f) const |
Retrieve the site associated to f. | |
Private Attributes | |
mln::util::tracked_ptr < internal::complex_geometry_data < P > > | data_ |
A functor returning the sites of the faces of a complex where the locations of each 0-face is stored.
Faces of higher dimensions are computed.
D | The dimension of the complex. | |
P | The type of the location of a 0-face. |
Locations of 0-face are usually points (hence the P
above), but can possibly be any (default-constructible) values.
The functor returns a std::vector of locations: 0-faces are singletons, 1-faces are (usually) pairs, faces of higher dimensions are arrays of locations.
Note that for consistency reasons w.r.t. the return type of operator(), returned sites are always arrays of locations attached to 0-faces; hence the returned singletons (of locations) for 0-faces.
typedef P mln::geom::complex_geometry< D, P >::location |
typedef util::multi_site<P> mln::geom::complex_geometry< D, P >::site |
mln::geom::complex_geometry< D, P >::complex_geometry | ( | ) | [inline] |
Build a complex geometry object.
unsigned mln::geom::complex_geometry< D, P >::add_location | ( | const P & | p | ) | [inline] |
Populate the set of locations.
Append a new location p. Return the index of the newly created location (which should semantically match the id of the corresonding 0-face in the complex).
References mln::geom::complex_geometry< D, P >::data_.
util::multi_site< P > mln::geom::complex_geometry< D, P >::operator() | ( | const mln::topo::face< D > & | f | ) | const [inline] |
Retrieve the site associated to f.
References mln::geom::complex_geometry< D, P >::data_, mln::topo::face< D >::face_id(), mln::topo::face< D >::n(), mln::util::multi_site< P >::push_back(), mln::util::multi_site< P >::reserve(), and mln::topo::internal::complex_iterator_base< algebraic_face< D >, adj_m_face_fwd_iter< D > >::subject().
mln::util::tracked_ptr< internal::complex_geometry_data<P> > mln::geom::complex_geometry< D, P >::data_ [private] |