pgRouting
pgRouting extends the PostGIS / PostgreSQL geospatial database to provide geospatial routing functionality.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
pgrouting::Pgr_linearContraction< G > Class Template Reference

#include "pgr_linearContraction.hpp"

Public Types

typedef G::degree_size_type degree_size_type
 
typedef G::E E
 
typedef G::E_i E_i
 
typedef G::EI_i EI_i
 
typedef G::EO_i EO_i
 
typedef G::V V
 
typedef G::V_i V_i
 

Public Member Functions

 Pgr_linearContraction ()
 
void calculateVertices (G &graph, std::ostringstream &debug)
 
void doContraction (G &graph, std::ostringstream &debug)
 
void setForbiddenVertices (G &graph, Identifiers< int64_t > forbidden_vertices, std::ostringstream &debug)
 
void setForbiddenVertices (G &graph, int64_t *forbidden_vertices, size_t size_forbidden_vertices, std::ostringstream &debug)
 

Private Member Functions

void add_edge_pair (V vertex, int64_t &incoming_eid, int64_t &outgoing_eid, std::ostringstream &debug)
 
void add_if_linear (G &graph, V v, std::ostringstream &debug)
 
void add_shortcut (G &graph, V vertex, E incoming_edge, E outgoing_edge, std::ostringstream &debug)
 
void add_shortcut (G &graph, pgrouting::contraction::Edge &shortcut, std::ostringstream &debug)
 
int64_t & get_next_id ()
 
bool is_linear (G &graph, V v, std::ostringstream &debug)
 

Private Attributes

Identifiers< VforbiddenVertices
 
int64_t last_edge_id
 
Identifiers< VlinearVertices
 

Detailed Description

template<class G>
class pgrouting::Pgr_linearContraction< G >

Definition at line 43 of file pgr_linearContraction.hpp.

Member Typedef Documentation

template<class G>
typedef G::degree_size_type pgrouting::Pgr_linearContraction< G >::degree_size_type

Definition at line 51 of file pgr_linearContraction.hpp.

template<class G>
typedef G::E pgrouting::Pgr_linearContraction< G >::E

Definition at line 46 of file pgr_linearContraction.hpp.

template<class G>
typedef G::E_i pgrouting::Pgr_linearContraction< G >::E_i

Definition at line 48 of file pgr_linearContraction.hpp.

template<class G>
typedef G::EI_i pgrouting::Pgr_linearContraction< G >::EI_i

Definition at line 50 of file pgr_linearContraction.hpp.

template<class G>
typedef G::EO_i pgrouting::Pgr_linearContraction< G >::EO_i

Definition at line 49 of file pgr_linearContraction.hpp.

template<class G>
typedef G::V pgrouting::Pgr_linearContraction< G >::V

Definition at line 45 of file pgr_linearContraction.hpp.

template<class G>
typedef G::V_i pgrouting::Pgr_linearContraction< G >::V_i

Definition at line 47 of file pgr_linearContraction.hpp.

Constructor & Destructor Documentation

template<class G>
pgrouting::Pgr_linearContraction< G >::Pgr_linearContraction ( )
inline

Definition at line 52 of file pgr_linearContraction.hpp.

Member Function Documentation

template<class G>
void pgrouting::Pgr_linearContraction< G >::add_edge_pair ( V  vertex,
int64_t &  incoming_eid,
int64_t &  outgoing_eid,
std::ostringstream &  debug 
)
private
template<class G>
void pgrouting::Pgr_linearContraction< G >::add_if_linear ( G &  graph,
V  v,
std::ostringstream &  debug 
)
private
template<class G >
void pgrouting::Pgr_linearContraction< G >::add_shortcut ( G &  graph,
V  vertex,
E  incoming_edge,
E  outgoing_edge,
std::ostringstream &  debug 
)
private
template<class G >
void pgrouting::Pgr_linearContraction< G >::add_shortcut ( G &  graph,
pgrouting::contraction::Edge shortcut,
std::ostringstream &  debug 
)
private

Definition at line 253 of file pgr_linearContraction.hpp.

template<class G >
void pgrouting::Pgr_linearContraction< G >::calculateVertices ( G &  graph,
std::ostringstream &  debug 
)

Definition at line 126 of file pgr_linearContraction.hpp.

Referenced by perform_linear().

template<class G >
void pgrouting::Pgr_linearContraction< G >::doContraction ( G &  graph,
std::ostringstream &  debug 
)

Definition at line 143 of file pgr_linearContraction.hpp.

References DIRECTED, pgassert, Identifiers< T >::size(), and UNDIRECTED.

Referenced by perform_linear().

template<class G>
int64_t& pgrouting::Pgr_linearContraction< G >::get_next_id ( )
inlineprivate
template<class G >
bool pgrouting::Pgr_linearContraction< G >::is_linear ( G &  graph,
V  v,
std::ostringstream &  debug 
)
private

Definition at line 109 of file pgr_linearContraction.hpp.

References Identifiers< T >::size().

template<class G >
void pgrouting::Pgr_linearContraction< G >::setForbiddenVertices ( G &  graph,
Identifiers< int64_t >  forbidden_vertices,
std::ostringstream &  debug 
)

Definition at line 88 of file pgr_linearContraction.hpp.

Referenced by perform_linear().

template<class G >
void pgrouting::Pgr_linearContraction< G >::setForbiddenVertices ( G &  graph,
int64_t *  forbidden_vertices,
size_t  size_forbidden_vertices,
std::ostringstream &  debug 
)

Definition at line 98 of file pgr_linearContraction.hpp.

Member Data Documentation

template<class G>
Identifiers<V> pgrouting::Pgr_linearContraction< G >::forbiddenVertices
private

Definition at line 66 of file pgr_linearContraction.hpp.

template<class G>
int64_t pgrouting::Pgr_linearContraction< G >::last_edge_id
private
template<class G>
Identifiers<V> pgrouting::Pgr_linearContraction< G >::linearVertices
private

Definition at line 65 of file pgr_linearContraction.hpp.


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