$extrastylesheet
Olena  User documentation 2.1
An Image Processing Platform
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
mln::util::line_graph< G > Class Template Reference

#include <mln/util/line_graph.hh>

Public Member Functions

 line_graph ()
 line_graph (const G &g)
const util::tracked_ptr
< mln::internal::data
< line_graph< G > > > & 
data_hook_ () const
template<typename G2 >
bool has (const util::vertex< G2 > &v) const
bool has_v (const vertex_id_t &id_v) const
void print_debug (std::ostream &ostr) const
edge_id_t v_ith_nbh_edge (const vertex_id_t &id_v, unsigned i) const
vertex_id_t v_ith_nbh_vertex (const vertex_id_t &id_v, unsigned i) const
size_t v_nmax () const
size_t v_nmax_nbh_edges (const vertex_id_t &id_v) const
size_t v_nmax_nbh_vertices (const vertex_id_t &id_v) const
vertex_t vertex (const vertex_id_t &id_v) const
edge_t edge (const edge_id_t &e) const
size_t e_nmax () const
bool has_e (const util::edge_id_t &id_e) const
template<typename G2 >
bool has (const util::edge< G2 > &e) const
vertex_id_t v1 (const edge_id_t &id_e) const
vertex_id_t v2 (const edge_id_t &id_e) const
size_t e_nmax_nbh_edges (const edge_id_t &id_e) const
edge_id_t e_ith_nbh_edge (const edge_id_t &id_e, unsigned i) const
template<typename G2 >
bool is_subgraph_of (const G2 &g) const
const G & graph () const
const void * id () const
bool has (const util::vertex< line_graph< G > > &v) const
bool has (const util::edge< line_graph< G > > &e) const
vertex_id_t v_other (const edge_id_t &id_e, const vertex_id_t &id_v) const
bool is_valid () const
void invalidate ()

Protected Attributes

util::tracked_ptr
< mln::internal::data
< line_graph< G > > > 
data_

Public Types

typedef Graph< void > category
typedef std::vector< edge_data_tedges_t
typedef line_graph< G > exact_t
typedef std::vector
< vertex_data_t > 
vertices_t
typedef
mln::internal::vertex_fwd_iterator
< line_graph< G > > 
vertex_fwd_iter
typedef
mln::internal::vertex_bkd_iterator
< line_graph< G > > 
vertex_bkd_iter
typedef vertex_fwd_iter vertex_iter
typedef
mln::internal::edge_fwd_iterator
< line_graph< G > > 
edge_fwd_iter
typedef
mln::internal::edge_bkd_iterator
< line_graph< G > > 
edge_bkd_iter
typedef edge_fwd_iter edge_iter
typedef
mln::internal::edge_nbh_edge_fwd_iterator
< line_graph< G > > 
edge_nbh_edge_fwd_iter
typedef
mln::internal::edge_nbh_edge_bkd_iterator
< line_graph< G > > 
edge_nbh_edge_bkd_iter
typedef edge_nbh_edge_fwd_iter edge_nbh_edge_iter
typedef
mln::internal::vertex_nbh_vertex_fwd_iterator
< line_graph< G > > 
vertex_nbh_vertex_fwd_iter
typedef
mln::internal::vertex_nbh_vertex_bkd_iterator
< line_graph< G > > 
vertex_nbh_vertex_bkd_iter
typedef vertex_nbh_vertex_fwd_iter vertex_nbh_vertex_iter
typedef
mln::internal::vertex_nbh_edge_fwd_iterator
< line_graph< G > > 
vertex_nbh_edge_fwd_iter
typedef
mln::internal::vertex_nbh_edge_bkd_iterator
< line_graph< G > > 
vertex_nbh_edge_bkd_iter
typedef vertex_nbh_edge_fwd_iter vertex_nbh_edge_iter

Detailed Description

template<typename G>
class mln::util::line_graph< G >

Undirected line graph of a graph of type G.

Definition at line 85 of file line_graph.hh.

Constructor & Destructor Documentation

template<typename G >
mln::util::line_graph< G >::line_graph ( )
template<typename G >
mln::util::line_graph< G >::line_graph ( const G &  g)

Member Function Documentation

const util::tracked_ptr< mln::internal::data<line_graph< G > > >& mln::util::internal::graph_base< line_graph< G > >::data_hook_ ( ) const
inherited

Hook to data; for debugging purpose.

template<typename G >
edge_id_t mln::util::line_graph< G >::e_ith_nbh_edge ( const edge_id_t id_e,
unsigned  i 
) const

Return the i th edge adjacent to the edge id_e.

template<typename G >
size_t mln::util::line_graph< G >::e_nmax ( ) const

Return the number of edges in the graph.

template<typename G >
size_t mln::util::line_graph< G >::e_nmax_nbh_edges ( const edge_id_t id_e) const

Return the number max of adjacent edge, given an edge id_e.

template<typename G >
edge_t mln::util::line_graph< G >::edge ( const edge_id_t e) const

Edge oriented.

Return the edge whose id is e.

template<typename G >
const G& mln::util::line_graph< G >::graph ( ) const

Return the underlying graph.

bool mln::util::internal::graph_base< line_graph< G > >::has ( const util::vertex< line_graph< G > > &  v) const
inherited

Vertex oriented methodsCheck whether a vertex v exists in the graph.

bool mln::util::internal::graph_base< line_graph< G > >::has ( const util::edge< line_graph< G > > &  e) const
inherited

Edge oriented methodsCheck whether an edge e exists in the graph.

template<typename G >
template<typename G2 >
bool mln::util::line_graph< G >::has ( const util::vertex< G2 > &  v) const

Check whether a vertex v exists in the line graph.

template<typename G >
template<typename G2 >
bool mln::util::line_graph< G >::has ( const util::edge< G2 > &  e) const

Return whether e is in the line graph.

template<typename G >
bool mln::util::line_graph< G >::has_e ( const util::edge_id_t id_e) const

Return whether id_e is in the line graph.

template<typename G >
bool mln::util::line_graph< G >::has_v ( const vertex_id_t id_v) const

Check whether a vertex id id_v exists in the line graph.

const void* mln::util::internal::graph_base< line_graph< G > >::id ( ) const
inherited

Misc.

methods

Returns the graph id, the "this" pointer.

void mln::util::internal::graph_base< line_graph< G > >::invalidate ( )
inherited

Invalidate the graph.

template<typename G >
template<typename G2 >
bool mln::util::line_graph< G >::is_subgraph_of ( const G2 &  g) const

Return whether this graph is a subgraph Return true if g and *this have the same graph_id.

bool mln::util::internal::graph_base< line_graph< G > >::is_valid ( ) const
inherited

Return true if this graph is valid.

void mln::util::internal::graph_base< line_graph< G > >::print_debug ( std::ostream &  ostr) const
inherited

Print on ostr the graph.

Parameters
[in]ostrThe output stream.
template<typename G >
vertex_id_t mln::util::line_graph< G >::v1 ( const edge_id_t id_e) const

Return the first vertex associated to the edge id_e.

template<typename G >
vertex_id_t mln::util::line_graph< G >::v2 ( const edge_id_t id_e) const

Return the second vertex associated to edge id_e.

template<typename G >
edge_id_t mln::util::line_graph< G >::v_ith_nbh_edge ( const vertex_id_t id_v,
unsigned  i 
) const

Returns the i th edge adjacent to the vertex id_v.

template<typename G >
vertex_id_t mln::util::line_graph< G >::v_ith_nbh_vertex ( const vertex_id_t id_v,
unsigned  i 
) const

Returns the i th vertex adjacent to the vertex id_v.

template<typename G >
size_t mln::util::line_graph< G >::v_nmax ( ) const

Return the number of vertices in the graph.

template<typename G >
size_t mln::util::line_graph< G >::v_nmax_nbh_edges ( const vertex_id_t id_v) const

Return the number of adjacent edges of vertex id_v.

template<typename G >
size_t mln::util::line_graph< G >::v_nmax_nbh_vertices ( const vertex_id_t id_v) const

Return the number of adjacent vertices of vertex id_v.

vertex_id_t mln::util::internal::graph_base< line_graph< G > >::v_other ( const edge_id_t id_e,
const vertex_id_t id_v 
) const
inherited

Vertex and edge oriented methods.

Returns the other adjacent vertex id of a given edge id id_e.

template<typename G >
vertex_t mln::util::line_graph< G >::vertex ( const vertex_id_t id_v) const

Vertex oriented.

Shortcuts factoring the insertion of vertices and edges.

Return the vertex whose id is v.

Member Data Documentation

util::tracked_ptr< mln::internal::data<line_graph< G > > > mln::util::internal::graph_base< line_graph< G > >::data_
protectedinherited

Internal data, sharable by several graphs.

Definition at line 129 of file graph_base.hh.

Member Typedef Documentation

typedef Graph<void> mln::Graph< line_graph< G > >::category
inherited

Definition at line 62 of file core/concept/graph.hh.

Definition at line 119 of file line_graph.hh.

Edge iterators.

Definition at line 117 of file line_graph.hh.

template<typename G >
typedef edge_fwd_iter mln::util::line_graph< G >::edge_iter

Definition at line 120 of file line_graph.hh.

Definition at line 128 of file line_graph.hh.

Edge nbh edge iterators.

Definition at line 126 of file line_graph.hh.

Definition at line 129 of file line_graph.hh.

template<typename G >
typedef std::vector<edge_data_t> mln::util::line_graph< G >::edges_t

The type of the set of edges.

Definition at line 101 of file line_graph.hh.

typedef line_graph< G > mln::Object< line_graph< G > >::exact_t
inherited

Definition at line 105 of file object.hh.

Definition at line 110 of file line_graph.hh.

Iterator typesVertex iterators.

Definition at line 108 of file line_graph.hh.

template<typename G >
typedef vertex_fwd_iter mln::util::line_graph< G >::vertex_iter

Definition at line 111 of file line_graph.hh.

Definition at line 146 of file line_graph.hh.

Vertex nbh edge iterators.

Definition at line 144 of file line_graph.hh.

Definition at line 147 of file line_graph.hh.

Vertex nbh vertex iterators.

Definition at line 135 of file line_graph.hh.

Definition at line 138 of file line_graph.hh.

template<typename G >
typedef std::vector<vertex_data_t> mln::util::line_graph< G >::vertices_t

The type of the set of vertices.

Definition at line 98 of file line_graph.hh.