Site set based mapping graph vertices to sites. More...
#include <p_vertices.hh>
Public Types | |
typedef Site_Set< void > | category |
typedef p_vertices< G, F > | exact_t |
typedef F | fun_t |
Function associated type. | |
typedef util::vertex< G > | graph_element |
Type of graph element this site set focuses on. | |
typedef G | graph_t |
Graph associated type. | |
typedef subject< F::result >::ret | site |
Site associated type. | |
typedef util::vertex< G > | vertex |
Type of graph vertex. | |
typedef super_::site | element |
Associated types. | |
typedef p_vertices_psite< G, F > | psite |
Point_Site associated type. | |
typedef p_graph_piter< self_, mln_vertex_fwd_iter(G) > | fwd_piter |
Forward Site_Iterator associated type. | |
typedef p_graph_piter< self_, mln_vertex_bkd_iter(G) > | bkd_piter |
Backward Site_Iterator associated type. | |
typedef fwd_piter | piter |
Site_Iterator associated type. | |
Public Member Functions | |
bool | has (const psite &p) const |
Does this site set has p? | |
template<typename G2 > | |
bool | has (const util::vertex< G2 > &v) const |
Does this site set has v? | |
void | invalidate () |
Invalidate this site set. | |
bool | is_empty () const |
Test if the site set is empty. | |
bool | is_valid () const |
Test this site set validity. | |
std::size_t | memory_size () const |
Does this site set has vertex_id? FIXME: causes ambiguities while calling has(mln::neighb_fwd_niter<>); bool has(unsigned vertex_id) const;. | |
unsigned | nsites () const |
Return The number of points (sites) of the set, i.e., the number of vertices. | |
unsigned | nvertices () const |
Return The number of vertices in the graph. | |
p_vertices (const Graph< G > &gr, const Function< F > &f) | |
Construct a graph psite set from a graph of points. | |
template<typename F2 > | |
p_vertices (const Graph< G > &gr, const Function< F2 > &f) | |
Construct a graph psite set from a graph of points. | |
template<typename F2 > | |
p_vertices (const p_vertices< G, F2 > &other) | |
Copy constructor. | |
p_vertices (const Graph< G > &gr) | |
Construct a graph psite set from a graph of points. | |
p_vertices () | |
Constructor without argument. | |
F::result | operator() (const psite &p) const |
Return the value associated to an element of this site set. | |
F::result | operator() (const util::vertex< G > &p) const |
F::result | operator() (unsigned id_v) const |
const G & | graph () const |
Accessors. | |
const F & | function () const |
Return the association function. | |
Private Types | |
typedef p_vertices< G, F > | self_ |
typedef internal::site_set_base_ < typename F::result, self_ > | super_ |
Private Attributes | |
F | f_ |
G | g_ |
Site set based mapping graph vertices to sites.
typedef p_graph_piter< self_, mln_vertex_bkd_iter(G) > mln::p_vertices< G, F >::bkd_piter |
Backward Site_Iterator associated type.
typedef Site_Set<void> mln::Site_Set< p_vertices< G, F > >::category [inherited] |
Reimplemented from mln::Object< p_vertices< G, F > >.
typedef super_ ::site mln::p_vertices< G, F >::element |
Associated types.
Element associated type.
typedef p_vertices< G, F > mln::Object< p_vertices< G, F > >::exact_t [inherited] |
typedef F mln::p_vertices< G, F >::fun_t |
Function associated type.
typedef p_graph_piter< self_, mln_vertex_fwd_iter(G) > mln::p_vertices< G, F >::fwd_piter |
Forward Site_Iterator associated type.
typedef util::vertex<G> mln::p_vertices< G, F >::graph_element |
Type of graph element this site set focuses on.
typedef G mln::p_vertices< G, F >::graph_t |
Graph associated type.
typedef fwd_piter mln::p_vertices< G, F >::piter |
Site_Iterator associated type.
typedef p_vertices_psite<G,F> mln::p_vertices< G, F >::psite |
Point_Site associated type.
typedef p_vertices<G,F> mln::p_vertices< G, F >::self_ [private] |
typedef subject<F::result >::ret mln::internal::site_set_base_< F::result , p_vertices< G, F > >::site [inherited] |
Site associated type.
typedef internal::site_set_base_< typename F ::result, self_ > mln::p_vertices< G, F >::super_ [private] |
typedef util::vertex<G> mln::p_vertices< G, F >::vertex |
Type of graph vertex.
mln::p_vertices< G, F >::p_vertices | ( | ) | [inline] |
Constructor without argument.
mln::p_vertices< G, F >::p_vertices | ( | const Graph< G > & | gr | ) | [inline] |
Construct a graph psite set from a graph of points.
gr | The graph upon which the graph psite set is built. The identity function is used. |
References mln::exact(), and mln::p_vertices< G, F >::is_valid().
mln::p_vertices< G, F >::p_vertices | ( | const Graph< G > & | gr, | |
const Function< F > & | f | |||
) | [inline] |
Construct a graph psite set from a graph of points.
gr | The graph upon which the graph psite set is built. | |
f | the function which maps a vertex to a site. |
References mln::exact(), and mln::p_vertices< G, F >::is_valid().
mln::p_vertices< G, F >::p_vertices | ( | const Graph< G > & | gr, | |
const Function< F2 > & | f | |||
) | [inline] |
Construct a graph psite set from a graph of points.
gr | The graph upon which the graph psite set is built. | |
f | the function which maps a vertex to a site. It must be convertible to the function type F . |
References mln::exact(), mln::convert::from_to(), and mln::p_vertices< G, F >::is_valid().
mln::p_vertices< G, F >::p_vertices | ( | const p_vertices< G, F2 > & | other | ) | [inline] |
Copy constructor.
References mln::convert::from_to(), mln::p_vertices< G, F >::function(), mln::p_vertices< G, F >::graph(), and mln::p_vertices< G, F >::is_valid().
const F & mln::p_vertices< G, F >::function | ( | ) | const [inline] |
Return the association function.
Referenced by mln::p_vertices< G, F >::p_vertices().
const G & mln::p_vertices< G, F >::graph | ( | ) | const [inline] |
Accessors.
Return the graph associated to this site set (const version)
References mln::p_vertices< G, F >::is_valid().
Referenced by mln::debug::draw_graph(), mln::operator==(), and mln::p_vertices< G, F >::p_vertices().
bool mln::p_vertices< G, F >::has | ( | const psite & | p | ) | const [inline] |
Does this site set has p?
References mln::p_vertices< G, F >::is_valid(), and mln::p_vertices_psite< G, F >::v().
bool mln::p_vertices< G, F >::has | ( | const util::vertex< G2 > & | v | ) | const [inline] |
Does this site set has v?
References mln::util::vertex< G >::graph(), mln::util::vertex< G >::is_valid(), and mln::p_vertices< G, F >::is_valid().
void mln::p_vertices< G, F >::invalidate | ( | ) | [inline] |
Invalidate this site set.
bool mln::internal::site_set_base_< F::result , p_vertices< G, F > >::is_empty | ( | ) | const [inherited] |
Test if the site set is empty.
This final method dispatches to is_empty_ whose default implementation relies on the 'nsites' method.
bool mln::p_vertices< G, F >::is_valid | ( | ) | const [inline] |
Test this site set validity.
Referenced by mln::p_vertices< G, F >::graph(), mln::p_vertices< G, F >::has(), and mln::p_vertices< G, F >::p_vertices().
std::size_t mln::p_vertices< G, F >::memory_size | ( | ) | const [inline] |
Does this site set has vertex_id? FIXME: causes ambiguities while calling has(mln::neighb_fwd_niter<>); bool has(unsigned vertex_id) const;.
unsigned mln::p_vertices< G, F >::nsites | ( | ) | const [inline] |
Return The number of points (sites) of the set, i.e., the number of vertices.
Required by the mln::Point_Set concept.
References mln::p_vertices< G, F >::nvertices().
unsigned mln::p_vertices< G, F >::nvertices | ( | ) | const [inline] |
Return The number of vertices in the graph.
Referenced by mln::p_vertices< G, F >::nsites().
F::result mln::p_vertices< G, F >::operator() | ( | const psite & | p | ) | const [inline] |
Return the value associated to an element of this site set.
F::result mln::p_vertices< G, F >::operator() | ( | const util::vertex< G > & | p | ) | const [inline] |
F::result mln::p_vertices< G, F >::operator() | ( | unsigned | id_v | ) | const [inline] |
F mln::p_vertices< G, F >::f_ [private] |
G mln::p_vertices< G, F >::g_ [private] |