PGROUTING  2.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
pgrouting::graph::Pgr_componentsGraph< G, T_V, T_E > Class Template Reference

#include "pgr_componentsGraph.hpp"

Inheritance diagram for pgrouting::graph::Pgr_componentsGraph< G, T_V, T_E >:
Collaboration diagram for pgrouting::graph::Pgr_componentsGraph< G, T_V, T_E >:

Public Types

Graph related types
Type boost meaning pgRouting meaning
G boost::adjacency_list Graph
V vertex_descriptor Think of it as local ID of a vertex
E edge_descriptor Think of it as local ID of an edge
V_i vertex_iterator To cycle the vertices of the Graph
E_i edge_iterator To cycle the edges of the Graph
EO_i out_edge_iterator To cycle the out going edges of a vertex
EI_i in_edge_iterator To cycle the in coming edges of a vertex (only in bidirectional graphs)
typedef G B_G
 
typedef T_E G_T_E
 
typedef T_V G_T_V
 
typedef boost::graph_traits< G >
::vertex_descriptor 
V
 
typedef boost::graph_traits< G >
::edge_descriptor 
E
 
typedef boost::graph_traits< G >
::vertex_iterator 
V_i
 
typedef boost::graph_traits< G >
::edge_iterator 
E_i
 
typedef boost::graph_traits< G >
::out_edge_iterator 
EO_i
 
typedef boost::graph_traits< G >
::in_edge_iterator 
EI_i
 
typedef boost::graph_traits< G >
::vertices_size_type 
vertices_size_type
 
typedef boost::graph_traits< G >
::edges_size_type 
edges_size_type
 
typedef boost::graph_traits< G >
::degree_size_type 
degree_size_type
 
Id handling related types
Type Meaning pgRouting Meaning
id_to_V maps id -> V given an id store the V
LI Left Iterator iterates over id_to_V
typedef std::map< int64_t, Vid_to_V
 
typedef id_to_V::const_iterator LI
 

Public Member Functions

 Pgr_componentsGraph (graphType gtype)
 
int64_t get_edge_id (V from, V to, double &distance) const
 
void graph_add_edge (const T_E &edge)
 
void graph_add_edge_no_create_vertex (const T &edge)
 Use this function when the vertices are already inserted in the graph. More...
 
template<typename T >
void insert_edges (const T *edges, int64_t count)
 
template<typename T >
void insert_edges (const std::vector< T > &edges)
 
size_t num_vertices () const
 
Insert edges
void insert_edges (T *edges, int64_t count, bool)
 
boost wrappers with original id
degree_size_type out_degree (int64_t vertex_id) const
 get the out-degree of a vertex More...
 
degree_size_type in_degree (int64_t vertex_id) const
 
V get_V (const T_V &vertex)
 get the vertex descriptor of the vertex More...
 
V get_V (int64_t vid) const
 get the vertex descriptor of the vid More...
 
bool has_vertex (int64_t vid) const
 True when vid is in the graph. More...
 
boost wrappers with V
degree_size_type out_degree (V &v) const
 out degree of a vertex More...
 
degree_size_type in_degree (V &v) const
 in degree of a vertex More...
 
T_E & operator[] (E e_idx)
 
const T_E & operator[] (E e_idx) const
 
T_V & operator[] (V v_idx)
 
const T_V & operator[] (V v_idx) const
 
V source (E e_idx) const
 
V target (E e_idx) const
 
V adjacent (V v_idx, E e_idx) const
 
to be or not to be
bool is_directed () const
 
bool is_undirected () const
 
bool is_source (V v_idx, E e_idx) const
 
bool is_target (V v_idx, E e_idx) const
 
edge disconection/reconnection
void disconnect_edge (int64_t p_from, int64_t p_to)
 Disconnects all edges from p_from to p_to. More...
 
void disconnect_out_going_edge (int64_t vertex_id, int64_t edge_id)
 Disconnects the outgoing edges of a vertex. More...
 
void disconnect_vertex (int64_t p_vertex)
 Disconnects all incoming and outgoing edges from the vertex. More...
 
void disconnect_vertex (V vertex)
 
void restore_graph ()
 Reconnects all edges that were removed. More...
 

Public Attributes

graph
 
The Graph
size_t m_num_vertices
 local count. More...
 
graphType m_gType
 type (DIRECTED or UNDIRECTED) More...
 
Graph Modification
std::deque< T_E > removed_edges
 Used for storing the removed_edges. More...
 

Private Member Functions

template<typename T >
void graph_add_edge (const T &edge)
 

Id mapping handling

id_to_V vertices_map
 id -> graph id More...
 
boost::property_map< G,
boost::vertex_index_t >::type 
vertIndex
 
IndexMap mapIndex
 
boost::associative_property_map
< IndexMap
propmapIndex
 
typedef std::map< V, size_t > IndexMap
 

Detailed Description

template<class G, typename T_V, typename T_E>
class pgrouting::graph::Pgr_componentsGraph< G, T_V, T_E >

Definition at line 45 of file pgr_componentsGraph.hpp.

Member Typedef Documentation

typedef G pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::B_G
inherited

Definition at line 273 of file pgr_base_graph.hpp.

typedef boost::graph_traits< G >::degree_size_type pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::degree_size_type
inherited

Definition at line 288 of file pgr_base_graph.hpp.

typedef boost::graph_traits< G >::edge_descriptor pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::E
inherited

Definition at line 277 of file pgr_base_graph.hpp.

typedef boost::graph_traits< G >::edge_iterator pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::E_i
inherited

Definition at line 279 of file pgr_base_graph.hpp.

typedef boost::graph_traits< G >::edges_size_type pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::edges_size_type
inherited

Definition at line 286 of file pgr_base_graph.hpp.

typedef boost::graph_traits< G >::in_edge_iterator pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::EI_i
inherited

Definition at line 281 of file pgr_base_graph.hpp.

typedef boost::graph_traits< G >::out_edge_iterator pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::EO_i
inherited

Definition at line 280 of file pgr_base_graph.hpp.

typedef T_E pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::G_T_E
inherited

Definition at line 274 of file pgr_base_graph.hpp.

typedef T_V pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::G_T_V
inherited

Definition at line 275 of file pgr_base_graph.hpp.

typedef std::map< int64_t, V > pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::id_to_V
inherited

Definition at line 300 of file pgr_base_graph.hpp.

typedef std::map<V, size_t> pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::IndexMap
inherited

Definition at line 319 of file pgr_base_graph.hpp.

typedef id_to_V::const_iterator pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::LI
inherited

Definition at line 301 of file pgr_base_graph.hpp.

typedef boost::graph_traits< G >::vertex_descriptor pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::V
inherited

Definition at line 276 of file pgr_base_graph.hpp.

typedef boost::graph_traits< G >::vertex_iterator pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::V_i
inherited

Definition at line 278 of file pgr_base_graph.hpp.

typedef boost::graph_traits< G >::vertices_size_type pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::vertices_size_type
inherited

Definition at line 284 of file pgr_base_graph.hpp.

Constructor & Destructor Documentation

template<class G , typename T_V , typename T_E >
pgrouting::graph::Pgr_componentsGraph< G, T_V, T_E >::Pgr_componentsGraph ( graphType  gtype)
inlineexplicit

Member Function Documentation

V pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::adjacent ( V  v_idx,
E  e_idx 
) const
inlineinherited
void pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::disconnect_edge ( int64_t  p_from,
int64_t  p_to 
)
inherited

Disconnects all edges from p_from to p_to.

  • No edge is disconnected if the vertices id's do not exist in the graph
  • All removed edges are stored for future reinsertion
  • All parallel edges are disconnected (automatically by boost)
disconnectEdgeUndirected.png
disconnect_edge(2,3) on an UNDIRECTED graph
disconnectEdgeDirected.png
disconnect_edge(2,3) on a DIRECTED graph
Parameters
[in]p_fromoriginal vertex id of the starting point of the edge
[in]p_tooriginal vertex id of the ending point of the edge
void pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::disconnect_out_going_edge ( int64_t  vertex_id,
int64_t  edge_id 
)
inherited

Disconnects the outgoing edges of a vertex.

  • No edge is disconnected if it doesn't exist in the graph
  • Removed edges are stored for future reinsertion
  • all outgoing edges with the edge_id are removed if they exist
Parameters
[in]vertex_idoriginal vertex
[in]edge_idoriginal edge_id
void pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::disconnect_vertex ( int64_t  p_vertex)
inherited

Disconnects all incoming and outgoing edges from the vertex.

boost::graph doesn't recommend th to insert/remove vertices, so a vertex removal is simulated by disconnecting the vertex from the graph

  • No edge is disconnected if the vertices id's do not exist in the graph
  • All removed edges are stored for future reinsertion
  • All parallel edges are disconnected (automatically by boost)
disconnectVertexUndirected.png
disconnect_vertex(2) on an UNDIRECTED graph
disconnectVertexDirected.png
disconnect_vertex(2) on a DIRECTED graph
Parameters
[in]p_vertexoriginal vertex id of the starting point of the edge
void pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::disconnect_vertex ( V  vertex)
inherited
int64_t pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::get_edge_id ( V  from,
V  to,
double &  distance 
) const
inherited
V pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::get_V ( const T_V &  vertex)
inlineinherited

get the vertex descriptor of the vertex

When the vertex does not exist

  • creates a new vetex
Returns
V: The vertex descriptor of the vertex

Definition at line 527 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::graph, pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::m_num_vertices, pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::propmapIndex, and pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::vertices_map.

Referenced by pgrouting::graph::Pgr_contractionGraph< G, T_V, T_E >::add_shortcut(), and pgrouting::graph::Pgr_contractionGraph< G, T_V, T_E >::get_contracted_vertices().

527  {
528  auto vm_s(vertices_map.find(vertex.id));
529  if (vm_s == vertices_map.end()) {
530  auto v = add_vertex(graph);
531  graph[v].cp_members(vertex);
532  vertices_map[vertex.id] = v;
533  put(propmapIndex, v, m_num_vertices++);
534  return v;
535  }
536  return vm_s->second;
537  }
boost::associative_property_map< IndexMap > propmapIndex

Here is the caller graph for this function:

V pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::get_V ( int64_t  vid) const
inlineinherited

get the vertex descriptor of the vid

Call has_vertex(vid) before calling this function

Returns
V: The vertex descriptor of the vertex

Definition at line 545 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::has_vertex(), pgassert, and pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::vertices_map.

545  {
546  pgassert(has_vertex(vid));
547  return vertices_map.find(vid)->second;
548  }
bool has_vertex(int64_t vid) const
True when vid is in the graph.
#define pgassert(expr)
Uses the standard assert syntax.
Definition: pgr_assert.h:81

Here is the call graph for this function:

template<class G , typename T_V , typename T_E >
template<typename T >
void pgrouting::graph::Pgr_componentsGraph< G, T_V, T_E >::graph_add_edge ( const T &  edge)
inlineprivate

Definition at line 81 of file pgr_componentsGraph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::get_V(), pgrouting::graph::Pgr_componentsGraph< G, T_V, T_E >::graph, and pgassert.

Referenced by pgrouting::graph::Pgr_componentsGraph< G, T_V, T_E >::insert_edges().

81  {
82  bool inserted;
84  if ((edge.cost < 0) && (edge.reverse_cost < 0))
85  return;
86 
87  /*
88  * true: for source
89  * false: for target
90  */
91  auto vm_s = Pgr_base_graph< G, T_V, T_E >::get_V(T_V(edge, true));
92  auto vm_t = Pgr_base_graph< G, T_V, T_E >::get_V(T_V(edge, false));
93 
95  !=
98  !=
100  if (edge.cost >= 0) {
101  boost::tie(e, inserted) =
102  boost::add_edge(vm_s, vm_t, graph);
103  graph[e].cost = edge.cost;
104  graph[e].id = edge.id;
105  } else if (edge.reverse_cost >= 0) {
106  boost::tie(e, inserted) =
107  boost::add_edge(vm_t, vm_s, graph);
108  graph[e].cost = edge.reverse_cost;
109  graph[e].id = edge.id;
110  }
111  }
float8 cost
Definition: trsp.h:35
Definition: trsp.h:31
boost::graph_traits< G >::edge_descriptor E
long id
Definition: trsp.h:32
V get_V(const T_V &vertex)
get the vertex descriptor of the vertex
#define pgassert(expr)
Uses the standard assert syntax.
Definition: pgr_assert.h:81
long target
Definition: trsp.h:34
float8 reverse_cost
Definition: trsp.h:36
long source
Definition: trsp.h:33

Here is the call graph for this function:

Here is the caller graph for this function:

void pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::graph_add_edge ( const T_E &  edge)
inherited
void pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::graph_add_edge_no_create_vertex ( const T &  edge)
inlineinherited

Use this function when the vertices are already inserted in the graph.

Definition at line 707 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::get_V(), pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::graph, pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::has_vertex(), pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::is_directed(), pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::is_undirected(), pgassert, pgassertwm, and pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::vertices_map.

707  {
708  bool inserted;
709  E e;
710  if ((edge.cost < 0) && (edge.reverse_cost < 0))
711  return;
712 
713 #if 0
714  std::ostringstream log;
715  for (auto iter = vertices_map.begin(); iter != vertices_map.end(); iter++) {
716  log << "Key: " << iter->first <<"\tValue:" << iter->second << "\n";
717  }
718  pgassertwm(has_vertex(edge.source), log.str().c_str());
720 #endif
721 
722  auto vm_s = get_V(edge.source);
723  auto vm_t = get_V(edge.target);
724 
725 
726  if (edge.cost >= 0) {
727  boost::tie(e, inserted) =
728  boost::add_edge(vm_s, vm_t, graph);
729  graph[e].cost = edge.cost;
730  graph[e].id = edge.id;
731  }
732 
733  if (edge.reverse_cost >= 0
734  && (is_directed() || (is_undirected() && edge.cost != edge.reverse_cost))) {
735  boost::tie(e, inserted) =
736  boost::add_edge(vm_t, vm_s, graph);
737  graph[e].cost = edge.reverse_cost;
738  graph[e].id = edge.id;
739  }
740  }
float8 cost
Definition: trsp.h:35
Definition: trsp.h:31
boost::graph_traits< G >::edge_descriptor E
#define pgassertwm(expr, msg)
Adds a message to the assertion.
Definition: pgr_assert.h:104
long id
Definition: trsp.h:32
bool has_vertex(int64_t vid) const
True when vid is in the graph.
V get_V(const T_V &vertex)
get the vertex descriptor of the vertex
#define pgassert(expr)
Uses the standard assert syntax.
Definition: pgr_assert.h:81
long target
Definition: trsp.h:34
float8 reverse_cost
Definition: trsp.h:36
long source
Definition: trsp.h:33

Here is the call graph for this function:

bool pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::has_vertex ( int64_t  vid) const
inlineinherited

True when vid is in the graph.

Definition at line 551 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::vertices_map.

Referenced by pgrouting::graph::Pgr_contractionGraph< G, T_V, T_E >::get_contracted_vertices().

551  {
552  return vertices_map.find(vid) != vertices_map.end();
553  }

Here is the caller graph for this function:

degree_size_type pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::in_degree ( int64_t  vertex_id) const
inlineinherited

Definition at line 510 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::get_V(), pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::has_vertex(), pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::in_degree(), pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::is_directed(), and pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::out_degree().

510  {
511  if (!has_vertex(vertex_id)) {
512  return 0;
513  }
514  return is_directed()?
515  in_degree(get_V(vertex_id))
516  : out_degree(get_V(vertex_id));
517  }
bool has_vertex(int64_t vid) const
True when vid is in the graph.
V get_V(const T_V &vertex)
get the vertex descriptor of the vertex
degree_size_type in_degree(int64_t vertex_id) const
degree_size_type out_degree(int64_t vertex_id) const
get the out-degree of a vertex

Here is the call graph for this function:

degree_size_type pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::in_degree ( V v) const
inlineinherited

in degree of a vertex

  • when its undirected there is no "concept" of in degree
    • out degree is returned
  • on directed in degree of vertex is returned

Definition at line 593 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::graph, and pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::is_directed().

593  {
594  return is_directed()?
595  boost::in_degree(v, graph) :
596  boost::out_degree(v, graph);
597  }
degree_size_type out_degree(int64_t vertex_id) const
get the out-degree of a vertex

Here is the call graph for this function:

template<class G , typename T_V , typename T_E >
template<typename T >
void pgrouting::graph::Pgr_componentsGraph< G, T_V, T_E >::insert_edges ( const T *  edges,
int64_t  count 
)
inline

Definition at line 67 of file pgr_componentsGraph.hpp.

Referenced by do_pgr_articulationPoints(), do_pgr_biconnectedComponents(), do_pgr_bridges(), and do_pgr_connectedComponents().

67  {
68  insert_edges(std::vector < T >(edges, edges + count));
69  }
static edge_t edges[22573]
void insert_edges(const T *edges, int64_t count)

Here is the caller graph for this function:

template<class G , typename T_V , typename T_E >
template<typename T >
void pgrouting::graph::Pgr_componentsGraph< G, T_V, T_E >::insert_edges ( const std::vector< T > &  edges)
inline

Definition at line 72 of file pgr_componentsGraph.hpp.

References pgrouting::graph::Pgr_componentsGraph< G, T_V, T_E >::graph_add_edge().

72  {
73  for (const auto edge : edges) {
75  }
76  }
Definition: trsp.h:31

Here is the call graph for this function:

void pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::insert_edges ( T *  edges,
int64_t  count,
bool   
)
inlineinherited

Definition at line 403 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::graph_add_edge_no_create_vertex(), pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::has_vertex(), pgassert, pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::source(), and pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::target().

403  {
404  for (int64_t i = 0; i < count; ++i) {
408  }
409  }
static edge_t edges[22573]
void graph_add_edge_no_create_vertex(const T &edge)
Use this function when the vertices are already inserted in the graph.
bool has_vertex(int64_t vid) const
True when vid is in the graph.
#define pgassert(expr)
Uses the standard assert syntax.
Definition: pgr_assert.h:81

Here is the call graph for this function:

bool pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::is_directed ( ) const
inlineinherited

Definition at line 560 of file pgr_base_graph.hpp.

References DIRECTED, and pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::m_gType.

Referenced by pgrouting::graph::Pgr_contractionGraph< G, T_V, T_E >::out_degree_to_vertex().

560 {return m_gType == DIRECTED;}
graphType m_gType
type (DIRECTED or UNDIRECTED)

Here is the caller graph for this function:

bool pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::is_source ( V  v_idx,
E  e_idx 
) const
inlineinherited

Definition at line 562 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::source().

Referenced by pgrouting::graph::Pgr_contractionGraph< G, T_V, T_E >::out_degree_to_vertex().

562 {return v_idx == source(e_idx);}

Here is the call graph for this function:

Here is the caller graph for this function:

bool pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::is_target ( V  v_idx,
E  e_idx 
) const
inlineinherited

Definition at line 563 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::target().

Referenced by pgrouting::graph::Pgr_contractionGraph< G, T_V, T_E >::out_degree_to_vertex().

563 {return v_idx == target(e_idx);}

Here is the call graph for this function:

Here is the caller graph for this function:

bool pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::is_undirected ( ) const
inlineinherited

Definition at line 561 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::m_gType, and UNDIRECTED.

Referenced by pgrouting::graph::Pgr_contractionGraph< G, T_V, T_E >::out_degree_to_vertex().

561 {return m_gType == UNDIRECTED;}
graphType m_gType
type (DIRECTED or UNDIRECTED)

Here is the caller graph for this function:

size_t pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::num_vertices ( ) const
inlineinherited

Definition at line 696 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::graph.

696 { return boost::num_vertices(graph);}
T_E& pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::operator[] ( E  e_idx)
inlineinherited
const T_E& pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::operator[] ( E  e_idx) const
inlineinherited
T_V& pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::operator[] ( V  v_idx)
inlineinherited
const T_V& pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::operator[] ( V  v_idx) const
inlineinherited
degree_size_type pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::out_degree ( int64_t  vertex_id) const
inlineinherited

get the out-degree of a vertex

Returns
0: The out degree of a vertex that its not in the graph
Parameters
[in]vertex_idoriginal vertex id

Definition at line 504 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::get_V(), pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::has_vertex(), and pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::out_degree().

504  {
505  if (!has_vertex(vertex_id)) {
506  return 0;
507  }
508  return out_degree(get_V(vertex_id));
509  }
bool has_vertex(int64_t vid) const
True when vid is in the graph.
V get_V(const T_V &vertex)
get the vertex descriptor of the vertex
degree_size_type out_degree(int64_t vertex_id) const
get the out-degree of a vertex

Here is the call graph for this function:

degree_size_type pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::out_degree ( V v) const
inlineinherited

out degree of a vertex

regardles of undirected or directed graph

  • out degree is returned

Definition at line 604 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::graph.

604  {
605  return boost::out_degree(v, graph);
606  }
void pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::restore_graph ( )
inherited

Reconnects all edges that were removed.

V pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::source ( E  e_idx) const
inlineinherited

Definition at line 577 of file pgr_base_graph.hpp.

References pgrouting::graph::Pgr_base_graph< G, Vertex, Edge >::graph.

Referenced by pgrouting::graph::Pgr_contractionGraph< G, T_V, T_E >::print_graph().

577 {return boost::source(e_idx, graph);}

Here is the caller graph for this function:

V pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::target ( E  e_idx) const
inlineinherited

Member Data Documentation

template<class G , typename T_V , typename T_E >
G pgrouting::graph::Pgr_componentsGraph< G, T_V, T_E >::graph
graphType pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::m_gType
inherited

type (DIRECTED or UNDIRECTED)

Definition at line 309 of file pgr_base_graph.hpp.

size_t pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::m_num_vertices
inherited

local count.

Definition at line 308 of file pgr_base_graph.hpp.

Referenced by pgrouting::graph::Pgr_contractionGraph< G, T_V, T_E >::print_graph().

IndexMap pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::mapIndex
inherited

Definition at line 320 of file pgr_base_graph.hpp.

boost::associative_property_map<IndexMap> pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::propmapIndex
inherited

Definition at line 321 of file pgr_base_graph.hpp.

std::deque< T_E > pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::removed_edges
inherited

Used for storing the removed_edges.

Definition at line 329 of file pgr_base_graph.hpp.

id_to_V pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::vertices_map
inherited

id -> graph id

Definition at line 315 of file pgr_base_graph.hpp.

Referenced by pgrouting::graph::Pgr_contractionGraph< G, T_V, T_E >::add_shortcut().

boost::property_map<G, boost::vertex_index_t>::type pgrouting::graph::Pgr_base_graph< G, T_V , T_E >::vertIndex
inherited

Definition at line 317 of file pgr_base_graph.hpp.


The documentation for this class was generated from the following file: