Public Types | Public Member Functions | Private Attributes

mln::geom::complex_geometry< D, P > Class Template Reference

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>

List of all members.

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_

Detailed Description

template<unsigned D, typename P>
class mln::geom::complex_geometry< D, P >

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.

Template Parameters:
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.

Definition at line 88 of file geom/complex_geometry.hh.


Member Typedef Documentation

template<unsigned D, typename P >
typedef P mln::geom::complex_geometry< D, P >::location

Definition at line 91 of file geom/complex_geometry.hh.

template<unsigned D, typename P >
typedef util::multi_site<P> mln::geom::complex_geometry< D, P >::site

Definition at line 92 of file geom/complex_geometry.hh.


Constructor & Destructor Documentation

template<unsigned D, typename P >
mln::geom::complex_geometry< D, P >::complex_geometry (  )  [inline]

Build a complex geometry object.

Definition at line 132 of file geom/complex_geometry.hh.


Member Function Documentation

template<unsigned D, typename P >
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).

Definition at line 140 of file geom/complex_geometry.hh.

References mln::geom::complex_geometry< D, P >::data_.

template<unsigned D, typename P >
util::multi_site< P > mln::geom::complex_geometry< D, P >::operator() ( const mln::topo::face< D > &  f  )  const [inline]

Member Data Documentation

template<unsigned D, typename P >
mln::util::tracked_ptr< internal::complex_geometry_data<P> > mln::geom::complex_geometry< D, P >::data_ [private]