Milena (Olena)  User documentation 2.0a Id
 All Classes Namespaces Functions Variables Typedefs Enumerator Groups Pages
mln::p_vertices< G, F > Class Template Reference

Site set based mapping graph vertices to sites. More...

#include <p_vertices.hh>

Inherits mln::internal::site_set_base_< F::result, p_vertices< G, F > >.

Public Types

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 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_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 ()
 Constructor without argument.
 
 p_vertices (const Graph< G > &gr)
 Construct a graph psite set from a graph of points.
 
 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.
 
F::result operator() (const psite &p) const
 Return the value associated to an element of this site set.
 
const G & graph () const
 Accessors.
 
const F & function () const
 Return the association function.
 

Detailed Description

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
class mln::p_vertices< G, F >

Site set based mapping graph vertices to sites.

Definition at line 71 of file p_vertices.hh.

Member Typedef Documentation

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef p_graph_piter< self_, mln_vertex_bkd_iter(G) > mln::p_vertices< G, F >::bkd_piter

Backward Site_Iterator associated type.

Definition at line 132 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef super_ ::site mln::p_vertices< G, F >::element

Associated types.

Element associated type.

Definition at line 123 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef F mln::p_vertices< G, F >::fun_t

Function associated type.

Definition at line 84 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef p_graph_piter< self_, mln_vertex_fwd_iter(G) > mln::p_vertices< G, F >::fwd_piter

Forward Site_Iterator associated type.

Definition at line 129 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef util::vertex<G> mln::p_vertices< G, F >::graph_element

Type of graph element this site set focuses on.

Definition at line 91 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef G mln::p_vertices< G, F >::graph_t

Graph associated type.

Definition at line 81 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef fwd_piter mln::p_vertices< G, F >::piter

Site_Iterator associated type.

Definition at line 135 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef p_vertices_psite<G,F> mln::p_vertices< G, F >::psite

Point_Site associated type.

Definition at line 126 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef util::vertex<G> mln::p_vertices< G, F >::vertex

Type of graph vertex.

Definition at line 87 of file p_vertices.hh.

Constructor & Destructor Documentation

template<typename G , typename F >
p_vertices< G, F >::p_vertices ( )
inline

Constructor without argument.

Definition at line 220 of file p_vertices.hh.

template<typename G , typename F >
p_vertices< G, F >::p_vertices ( const Graph< G > &  gr)
inline

Construct a graph psite set from a graph of points.

Parameters
grThe graph upon which the graph psite set is built. The identity function is used.

Definition at line 226 of file p_vertices.hh.

References mln::p_vertices< G, F >::is_valid().

template<typename G , typename F >
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.

Parameters
grThe graph upon which the graph psite set is built.
fthe function which maps a vertex to a site.

Definition at line 238 of file p_vertices.hh.

References mln::p_vertices< G, F >::is_valid().

template<typename G , typename F >
template<typename F2 >
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.

Parameters
grThe graph upon which the graph psite set is built.
fthe function which maps a vertex to a site. It must be convertible to the function type F.

Definition at line 248 of file p_vertices.hh.

References mln::p_vertices< G, F >::is_valid().

template<typename G , typename F >
template<typename F2 >
p_vertices< G, F >::p_vertices ( const p_vertices< G, F2 > &  other)
inline

Member Function Documentation

template<typename G , typename F >
const F & p_vertices< G, F >::function ( ) const
inline

Return the association function.

Definition at line 385 of file p_vertices.hh.

Referenced by mln::p_vertices< G, F >::p_vertices().

template<typename G , typename F >
const G & p_vertices< G, F >::graph ( ) const
inline

Accessors.

Return the graph associated to this site set (const version)

Definition at line 376 of file p_vertices.hh.

References mln::p_vertices< G, F >::is_valid().

Referenced by mln::debug::draw_graph(), mln::operator==(), and mln::p_vertices< G, F >::p_vertices().

template<typename G , typename F >
bool p_vertices< G, F >::has ( const psite p) const
inline

Does this site set has p?

Definition at line 304 of file p_vertices.hh.

References mln::p_vertices< G, F >::is_valid().

template<typename G , typename F >
template<typename G2 >
bool p_vertices< G, F >::has ( const util::vertex< G2 > &  v) const
inline

Does this site set has v?

Definition at line 314 of file p_vertices.hh.

References mln::util::vertex< G >::graph(), mln::util::vertex< G >::is_valid(), and mln::p_vertices< G, F >::is_valid().

template<typename G , typename F >
void p_vertices< G, F >::invalidate ( )
inline

Invalidate this site set.

Definition at line 296 of file p_vertices.hh.

template<typename G , typename F >
bool p_vertices< G, F >::is_valid ( ) const
inline

Test this site set validity.

Definition at line 288 of file p_vertices.hh.

Referenced by mln::p_vertices< G, F >::graph(), mln::p_vertices< G, F >::has(), and mln::p_vertices< G, F >::p_vertices().

template<typename G , typename F >
std::size_t 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;.

Definition at line 339 of file p_vertices.hh.

template<typename G , typename F >
unsigned 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.

Definition at line 272 of file p_vertices.hh.

References mln::p_vertices< G, F >::nvertices().

template<typename G , typename F >
unsigned p_vertices< G, F >::nvertices ( ) const
inline

Return The number of vertices in the graph.

Definition at line 280 of file p_vertices.hh.

Referenced by mln::p_vertices< G, F >::nsites().

template<typename G , typename F >
F::result p_vertices< G, F >::operator() ( const psite p) const
inline

Return the value associated to an element of this site set.

Definition at line 349 of file p_vertices.hh.