Site set mapping graph edges and image sites. More...
#include <p_edges.hh>
Public Types | |
typedef Site_Set< void > | category |
typedef util::edge< G > | edge |
Type of graph edge. | |
typedef p_edges< G, F > | exact_t |
typedef F | fun_t |
Function associated type. | |
typedef util::edge< 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 super_::site | element |
Associated types. | |
typedef p_edges_psite< G, F > | psite |
Point_Site associated type. | |
typedef p_graph_piter< self_, mln_edge_fwd_iter(G) > | fwd_piter |
Forward Site_Iterator associated type. | |
typedef p_graph_piter< self_, mln_edge_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 site p? | |
template<typename G2 > | |
bool | has (const util::edge< G2 > &e) const |
Does this site set has edge e? | |
void | invalidate () |
Invalidate this site set. | |
bool | is_empty () const |
Test if the site set is empty. | |
bool | is_valid () const |
Is this site set valid? | |
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 | nedges () const |
Return The number of edges in the graph. | |
unsigned | nsites () const |
Return The number of points (sites) of the set, i.e., the number of edges. | |
p_edges () | |
ConstructorsDefault constructor. | |
p_edges (const Graph< G > &gr) | |
Construct a graph edge psite set from a graph. | |
p_edges (const Graph< G > &gr, const Function< F > &f) | |
Construct a graph edge psite set from a graph and a function. | |
template<typename F2 > | |
p_edges (const Graph< G > &gr, const Function< F2 > &f) | |
Construct a graph edge psite set from a graph and a function. | |
const G & | graph () const |
Accessors. | |
const F & | function () const |
Return the mapping function. | |
Private Types | |
typedef p_edges< G, F > | self_ |
typedef internal::site_set_base_ < typename F::result, self_ > | super_ |
Private Attributes | |
F | f_ |
G | g_ |
Site set mapping graph edges and image sites.
typedef p_graph_piter< self_, mln_edge_bkd_iter(G) > mln::p_edges< G, F >::bkd_piter |
Backward Site_Iterator associated type.
typedef Site_Set<void> mln::Site_Set< p_edges< G, F > >::category [inherited] |
Reimplemented from mln::Object< p_edges< G, F > >.
typedef util::edge<G> mln::p_edges< G, F >::edge |
Type of graph edge.
typedef super_ ::site mln::p_edges< G, F >::element |
Associated types.
Element associated type.
typedef p_edges< G, F > mln::Object< p_edges< G, F > >::exact_t [inherited] |
typedef F mln::p_edges< G, F >::fun_t |
Function associated type.
typedef p_graph_piter< self_, mln_edge_fwd_iter(G) > mln::p_edges< G, F >::fwd_piter |
Forward Site_Iterator associated type.
typedef util::edge<G> mln::p_edges< G, F >::graph_element |
Type of graph element this site set focuses on.
typedef G mln::p_edges< G, F >::graph_t |
Graph associated type.
typedef fwd_piter mln::p_edges< G, F >::piter |
Site_Iterator associated type.
typedef p_edges_psite<G, F> mln::p_edges< G, F >::psite |
Point_Site associated type.
typedef p_edges<G, F> mln::p_edges< G, F >::self_ [private] |
typedef subject<F::result >::ret mln::internal::site_set_base_< F::result , p_edges< G, F > >::site [inherited] |
Site associated type.
typedef internal::site_set_base_< typename F ::result, self_ > mln::p_edges< G, F >::super_ [private] |
mln::p_edges< G, F >::p_edges | ( | ) | [inline] |
ConstructorsDefault constructor.
mln::p_edges< G, F >::p_edges | ( | const Graph< G > & | gr | ) | [inline] |
Construct a graph edge psite set from a graph.
gr | The graph upon which the graph edge psite set is built. |
References mln::exact(), and mln::p_edges< G, F >::is_valid().
mln::p_edges< G, F >::p_edges | ( | const Graph< G > & | gr, | |
const Function< F > & | f | |||
) | [inline] |
Construct a graph edge psite set from a graph and a function.
gr | The graph upon which the graph edge psite set is built. | |
f | the function mapping edges and sites. |
References mln::exact(), and mln::p_edges< G, F >::is_valid().
mln::p_edges< G, F >::p_edges | ( | const Graph< G > & | gr, | |
const Function< F2 > & | f | |||
) | [inline] |
Construct a graph edge psite set from a graph and a function.
gr | The graph upon which the graph edge psite set is built. | |
f | the function mapping edges and sites. It must be convertible towards the function type F . |
References mln::exact(), mln::convert::from_to(), and mln::p_edges< G, F >::is_valid().
const F & mln::p_edges< G, F >::function | ( | ) | const [inline] |
Return the mapping function.
const G & mln::p_edges< G, F >::graph | ( | ) | const [inline] |
Accessors.
Return the graph associated to this site set
References mln::p_edges< G, F >::is_valid().
Referenced by mln::operator==().
bool mln::p_edges< G, F >::has | ( | const psite & | p | ) | const [inline] |
Does this site set has site p?
References mln::p_edges_psite< G, F >::e(), and mln::p_edges< G, F >::is_valid().
bool mln::p_edges< G, F >::has | ( | const util::edge< G2 > & | e | ) | const [inline] |
Does this site set has edge e?
References mln::util::edge< G >::graph(), mln::util::edge< G >::is_valid(), and mln::p_edges< G, F >::is_valid().
void mln::p_edges< G, F >::invalidate | ( | ) | [inline] |
Invalidate this site set.
bool mln::internal::site_set_base_< F::result , p_edges< 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_edges< G, F >::is_valid | ( | ) | const [inline] |
Is this site set valid?
Referenced by mln::p_edges< G, F >::graph(), mln::p_edges< G, F >::has(), and mln::p_edges< G, F >::p_edges().
std::size_t mln::p_edges< 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_edges< G, F >::nedges | ( | ) | const [inline] |
Return The number of edges in the graph.
Referenced by mln::p_edges< G, F >::nsites().
unsigned mln::p_edges< G, F >::nsites | ( | ) | const [inline] |
Return The number of points (sites) of the set, i.e., the number of edges.
References mln::p_edges< G, F >::nedges().
F mln::p_edges< G, F >::f_ [private] |
G mln::p_edges< G, F >::g_ [private] |