Undirected line graph of a graph of type G
.
More...
#include <line_graph.hh>
Public Types | |
typedef Graph< void > | category |
typedef std::vector< edge_data_t > | edges_t |
The type of the set of edges. | |
typedef line_graph< G > | exact_t |
typedef std::vector < vertex_data_t > | vertices_t |
The type of the set of vertices. | |
typedef mln::internal::vertex_fwd_iterator < line_graph< G > > | vertex_fwd_iter |
Iterator typesVertex iterators. | |
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 |
Edge iterators. | |
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 |
Edge nbh edge iterators. | |
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 |
Vertex nbh vertex iterators. | |
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 |
Vertex nbh edge iterators. | |
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 |
Public Member Functions | |
template<typename G2 > | |
bool | has (const util::vertex< G2 > &v) const |
Check whether an edge v exists in the graph. | |
bool | has_v (const vertex_id_t &id_v) const |
Check whether a vertex id id_v exists in the graph. | |
void | invalidate () |
Invalidate the graph. | |
bool | is_valid () const |
Return true if this graph is valid. | |
line_graph (const G &g) | |
line_graph () | |
void | print_debug (std::ostream &ostr) const |
Print on ostr the graph. | |
edge_id_t | v_ith_nbh_edge (const vertex_id_t &id_v, unsigned i) const |
Returns the i th edge adjacent to the vertex id_v . | |
vertex_id_t | v_ith_nbh_vertex (const vertex_id_t &id_v, unsigned i) const |
Returns the i th vertex adjacent to the vertex id_v . | |
size_t | v_nmax () const |
Return the number of vertices in the graph. | |
size_t | v_nmax_nbh_edges (const vertex_id_t &id_v) const |
Return the number of adjacent edges of vertex id_v . | |
size_t | v_nmax_nbh_vertices (const vertex_id_t &id_v) const |
Return the number of adjacent vertices of vertex id_v . | |
vertex_t | vertex (const vertex_id_t &id_v) const |
Vertex oriented. | |
edge_t | edge (const edge_id_t &e) const |
Edge oriented. | |
size_t | e_nmax () const |
Return the number of edges in the graph. | |
bool | has_e (const util::edge_id_t &id_e) const |
Return whether id_e is in the graph. | |
template<typename G2 > | |
bool | has (const util::edge< G2 > &e) const |
Return whether e is in the graph. | |
vertex_id_t | v1 (const edge_id_t &id_e) const |
Return the first vertex associated to the edge id_e . | |
vertex_id_t | v2 (const edge_id_t &id_e) const |
Return the second vertex associated to edge id_e . | |
size_t | e_nmax_nbh_edges (const edge_id_t &id_e) const |
Return the number max of adjacent edge, given an edge id_e . | |
edge_id_t | 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 G2 > | |
bool | 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. | |
const G & | graph () const |
Return the underlying graph. | |
const void * | id () const |
Misc. | |
bool | has (const util::vertex< line_graph< G > > &v) const |
Vertex oriented methodsCheck whether a vertex v exists in the graph. | |
bool | has (const util::edge< line_graph< G > > &e) const |
Edge oriented methodsCheck whether an edge e exists in the graph. | |
vertex_id_t | v_other (const edge_id_t &id_e, const vertex_id_t &id_v) const |
Vertex and edge oriented methods. | |
Protected Attributes | |
util::tracked_ptr < mln::internal::data < line_graph< G > > > | data_ |
Internal data, sharable by several graphs. | |
Private Types | |
typedef super::edge_data_t | edge_data_t |
Internal edge data type. | |
typedef super::edge_t | edge_t |
The type of an edge. | |
typedef internal::graph_base < line_graph< G > > | super |
The super class. | |
typedef super::vertex_data_t | vertex_data_t |
Internal vertex data type. | |
typedef super::vertex_t | vertex_t |
The type of a vertex. |
Undirected line graph of a graph of type G
.
typedef Graph<void> mln::Graph< line_graph< G > >::category [inherited] |
Reimplemented from mln::Object< line_graph< G > >.
typedef mln::internal::edge_bkd_iterator< line_graph<G> > mln::util::line_graph< G >::edge_bkd_iter |
typedef super::edge_data_t mln::util::line_graph< G >::edge_data_t [private] |
Internal edge data type.
Reimplemented from mln::util::internal::graph_base< line_graph< G > >.
typedef mln::internal::edge_fwd_iterator< line_graph<G> > mln::util::line_graph< G >::edge_fwd_iter |
Edge iterators.
typedef edge_fwd_iter mln::util::line_graph< G >::edge_iter |
typedef mln::internal::edge_nbh_edge_bkd_iterator< line_graph<G> > mln::util::line_graph< G >::edge_nbh_edge_bkd_iter |
typedef mln::internal::edge_nbh_edge_fwd_iterator< line_graph<G> > mln::util::line_graph< G >::edge_nbh_edge_fwd_iter |
Edge nbh edge iterators.
typedef edge_nbh_edge_fwd_iter mln::util::line_graph< G >::edge_nbh_edge_iter |
typedef super::edge_t mln::util::line_graph< G >::edge_t [private] |
The type of an edge.
Reimplemented from mln::util::internal::graph_base< line_graph< G > >.
typedef std::vector<edge_data_t> mln::util::line_graph< G >::edges_t |
The type of the set of edges.
typedef line_graph< G > mln::Object< line_graph< G > >::exact_t [inherited] |
typedef internal::graph_base< line_graph<G> > mln::util::line_graph< G >::super [private] |
The super class.
typedef mln::internal::vertex_bkd_iterator< line_graph<G> > mln::util::line_graph< G >::vertex_bkd_iter |
typedef super::vertex_data_t mln::util::line_graph< G >::vertex_data_t [private] |
Internal vertex data type.
Reimplemented from mln::util::internal::graph_base< line_graph< G > >.
typedef mln::internal::vertex_fwd_iterator< line_graph<G> > mln::util::line_graph< G >::vertex_fwd_iter |
typedef vertex_fwd_iter mln::util::line_graph< G >::vertex_iter |
typedef mln::internal::vertex_nbh_edge_bkd_iterator< line_graph<G> > mln::util::line_graph< G >::vertex_nbh_edge_bkd_iter |
typedef mln::internal::vertex_nbh_edge_fwd_iterator< line_graph<G> > mln::util::line_graph< G >::vertex_nbh_edge_fwd_iter |
Vertex nbh edge iterators.
typedef vertex_nbh_edge_fwd_iter mln::util::line_graph< G >::vertex_nbh_edge_iter |
typedef mln::internal::vertex_nbh_vertex_bkd_iterator< line_graph<G> > mln::util::line_graph< G >::vertex_nbh_vertex_bkd_iter |
typedef mln::internal::vertex_nbh_vertex_fwd_iterator< line_graph<G> > mln::util::line_graph< G >::vertex_nbh_vertex_fwd_iter |
Vertex nbh vertex iterators.
typedef vertex_nbh_vertex_fwd_iter mln::util::line_graph< G >::vertex_nbh_vertex_iter |
typedef super::vertex_t mln::util::line_graph< G >::vertex_t [private] |
The type of a vertex.
Reimplemented from mln::util::internal::graph_base< line_graph< G > >.
typedef std::vector<vertex_data_t> mln::util::line_graph< G >::vertices_t |
The type of the set of vertices.
mln::util::line_graph< G >::line_graph | ( | ) | [inline] |
mln::util::line_graph< G >::line_graph | ( | const G & | g | ) | [inline] |
edge_id_t mln::util::line_graph< G >::e_ith_nbh_edge | ( | const edge_id_t & | id_e, | |
unsigned | i | |||
) | const [inline] |
Return the i
th edge adjacent to the edge id_e
.
References mln::util::line_graph< G >::e_nmax(), mln::util::line_graph< G >::e_nmax_nbh_edges(), mln::util::line_graph< G >::has_e(), mln::util::line_graph< G >::v1(), mln::util::line_graph< G >::v2(), mln::util::line_graph< G >::v_ith_nbh_edge(), and mln::util::line_graph< G >::v_nmax_nbh_edges().
size_t mln::util::line_graph< G >::e_nmax | ( | ) | const [inline] |
Return the number of edges in the graph.
References mln::util::internal::graph_base< line_graph< G > >::data_.
Referenced by mln::util::line_graph< G >::e_ith_nbh_edge(), and mln::util::line_graph< G >::edge().
size_t mln::util::line_graph< G >::e_nmax_nbh_edges | ( | const edge_id_t & | id_e | ) | const [inline] |
Return the number max of adjacent edge, given an edge id_e
.
References mln::util::line_graph< G >::has_e(), mln::util::line_graph< G >::v1(), mln::util::line_graph< G >::v2(), and mln::util::line_graph< G >::v_nmax_nbh_edges().
Referenced by mln::util::line_graph< G >::e_ith_nbh_edge().
line_graph< G >::edge_t mln::util::line_graph< G >::edge | ( | const edge_id_t & | e | ) | const [inline] |
const G & mln::util::line_graph< G >::graph | ( | ) | const [inline] |
Return the underlying graph.
References mln::util::internal::graph_base< line_graph< G > >::data_.
bool mln::util::line_graph< G >::has | ( | const util::vertex< G2 > & | v | ) | const [inline] |
Check whether an edge v
exists in the graph.
References mln::util::vertex< G >::graph(), mln::util::line_graph< G >::has_v(), and mln::util::vertex< G >::id().
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.
bool mln::util::line_graph< G >::has | ( | const util::edge< G2 > & | e | ) | const [inline] |
Return whether e
is in the graph.
References mln::util::edge< G >::graph(), mln::util::line_graph< G >::has_e(), and mln::util::edge< G >::id().
bool mln::util::line_graph< G >::has_e | ( | const util::edge_id_t & | id_e | ) | const [inline] |
Return whether id_e
is in the graph.
References mln::util::internal::graph_base< line_graph< G > >::data_.
Referenced by mln::util::line_graph< G >::e_ith_nbh_edge(), mln::util::line_graph< G >::e_nmax_nbh_edges(), mln::util::line_graph< G >::has(), mln::util::line_graph< G >::v1(), and mln::util::line_graph< G >::v2().
bool mln::util::line_graph< G >::has_v | ( | const vertex_id_t & | id_v | ) | const [inline] |
Check whether a vertex id id_v
exists in the graph.
References mln::util::internal::graph_base< line_graph< G > >::data_.
Referenced by mln::util::line_graph< G >::has(), mln::util::line_graph< G >::v_ith_nbh_edge(), mln::util::line_graph< G >::v_ith_nbh_vertex(), mln::util::line_graph< G >::v_nmax_nbh_edges(), mln::util::line_graph< G >::v_nmax_nbh_vertices(), and mln::util::line_graph< G >::vertex().
const void* mln::util::internal::graph_base< line_graph< G > >::id | ( | ) | const [inherited] |
Misc.
methods
Returns the graph id, the "this" pointer.
Referenced by mln::util::line_graph< G >::is_subgraph_of().
void mln::Graph< line_graph< G > >::invalidate | ( | ) | [inherited] |
Invalidate the graph.
FIXME: does nothing!
bool mln::util::line_graph< G >::is_subgraph_of | ( | const G2 & | g | ) | const [inline] |
Return whether this graph is a subgraph Return true if g and *this have the same graph_id.
References mln::util::internal::graph_base< line_graph< G > >::id().
bool mln::Graph< line_graph< G > >::is_valid | ( | ) | const [inherited] |
Return true if this graph is valid.
FIXME: currently it always returns true.
void mln::util::internal::graph_base< line_graph< G > >::print_debug | ( | std::ostream & | ostr | ) | const [inherited] |
Print on ostr
the graph.
[in] | ostr | The output stream. |
vertex_id_t mln::util::line_graph< G >::v1 | ( | const edge_id_t & | id_e | ) | const [inline] |
Return the first vertex associated to the edge id_e
.
References mln::util::internal::graph_base< line_graph< G > >::data_, and mln::util::line_graph< G >::has_e().
Referenced by mln::util::line_graph< G >::e_ith_nbh_edge(), and mln::util::line_graph< G >::e_nmax_nbh_edges().
vertex_id_t mln::util::line_graph< G >::v2 | ( | const edge_id_t & | id_e | ) | const [inline] |
Return the second vertex associated to edge id_e
.
References mln::util::internal::graph_base< line_graph< G > >::data_, and mln::util::line_graph< G >::has_e().
Referenced by mln::util::line_graph< G >::e_ith_nbh_edge(), and mln::util::line_graph< G >::e_nmax_nbh_edges().
edge_id_t mln::util::line_graph< G >::v_ith_nbh_edge | ( | const vertex_id_t & | id_v, | |
unsigned | i | |||
) | const [inline] |
Returns the i
th edge adjacent to the vertex id_v
.
References mln::util::internal::graph_base< line_graph< G > >::data_, mln::util::line_graph< G >::has_v(), mln::util::line_graph< G >::v_nmax(), and mln::util::line_graph< G >::v_nmax_nbh_edges().
Referenced by mln::util::line_graph< G >::e_ith_nbh_edge(), and mln::util::line_graph< G >::v_ith_nbh_vertex().
vertex_id_t mln::util::line_graph< G >::v_ith_nbh_vertex | ( | const vertex_id_t & | id_v, | |
unsigned | i | |||
) | const [inline] |
Returns the i
th vertex adjacent to the vertex id_v
.
References mln::util::line_graph< G >::has_v(), mln::util::line_graph< G >::v_ith_nbh_edge(), and mln::util::internal::graph_base< line_graph< G > >::v_other().
size_t mln::util::line_graph< G >::v_nmax | ( | ) | const [inline] |
Return the number of vertices in the graph.
References mln::util::internal::graph_base< line_graph< G > >::data_.
Referenced by mln::util::line_graph< G >::v_ith_nbh_edge().
size_t mln::util::line_graph< G >::v_nmax_nbh_edges | ( | const vertex_id_t & | id_v | ) | const [inline] |
Return the number of adjacent edges of vertex id_v
.
References mln::util::internal::graph_base< line_graph< G > >::data_, and mln::util::line_graph< G >::has_v().
Referenced by mln::util::line_graph< G >::e_ith_nbh_edge(), mln::util::line_graph< G >::e_nmax_nbh_edges(), mln::util::line_graph< G >::v_ith_nbh_edge(), and mln::util::line_graph< G >::v_nmax_nbh_vertices().
size_t mln::util::line_graph< G >::v_nmax_nbh_vertices | ( | const vertex_id_t & | id_v | ) | const [inline] |
Return the number of adjacent vertices of vertex id_v
.
References mln::util::line_graph< G >::has_v(), and mln::util::line_graph< G >::v_nmax_nbh_edges().
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
.
Referenced by mln::util::line_graph< G >::v_ith_nbh_vertex().
line_graph< G >::vertex_t mln::util::line_graph< G >::vertex | ( | const vertex_id_t & | id_v | ) | const [inline] |
Vertex oriented.
Shortcuts factoring the insertion of vertices and edges.
Return the vertex whose id is v.
References mln::util::line_graph< G >::has_v().
util::tracked_ptr< mln::internal::data<line_graph< G > > > mln::util::internal::graph_base< line_graph< G > >::data_ [protected, inherited] |
Internal data, sharable by several graphs.
Referenced by mln::util::line_graph< G >::e_nmax(), mln::util::line_graph< G >::graph(), mln::util::line_graph< G >::has_e(), mln::util::line_graph< G >::has_v(), mln::util::line_graph< G >::line_graph(), mln::util::line_graph< G >::v1(), mln::util::line_graph< G >::v2(), mln::util::line_graph< G >::v_ith_nbh_edge(), mln::util::line_graph< G >::v_nmax(), and mln::util::line_graph< G >::v_nmax_nbh_edges().