The graph base class template.
|
typedef graph_traits::adjacency_iterator | adjacency_iter |
|
typedef std::pair< adjacency_iter, adjacency_iter > | adjacency_vertex_range_t |
|
enum | AdjacencyFlags {
OutboundEdges = 1 << 0
, InboundEdges = 1 << 1
, EdgesToLeaf = 1 << 2
, EdgesToRoot = 1 << 3
,
AllEdges = InboundEdges | OutboundEdges
} |
|
typedef boost::property_map< GraphContainer, edge_properties_t >::const_type | const_edge_property_map_t |
|
typedef boost::property_map< GraphContainer, boost::vertex_index_t >::const_type | const_vertex_index_map_t |
|
typedef boost::property_map< GraphContainer, vertex_properties_t >::const_type | const_vertex_property_map_t |
|
typedef graph_traits::degree_size_type | degree_t |
|
typedef graph_traits::edge_iterator | edge_iter |
|
typedef boost::property_map< GraphContainer, edge_properties_t >::type | edge_property_map_t |
|
typedef std::pair< edge_iter, edge_iter > | edge_range_t |
|
typedef graph_traits::edge_descriptor | edge_t |
|
typedef QPair< Edge, Edge > | EdgePair |
|
typedef boost::graph_traits< GraphContainer > | graph_traits |
| a bunch of graph-specific typedefs that make the long boost types manageable.
|
|
typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, boost::property< boost::vertex_index_t, int, boost::property< vertex_properties_t, VertexProperties > >, boost::property< edge_properties_t, EdgeProperties > > | GraphContainer |
|
enum | GraphCopyFlags { CopyVertexProperties = 1 << 0
, CopyEdgeProperties = 1 << 1
, CopyAllProperties = CopyVertexProperties | CopyEdgeProperties
} |
|
typedef graph_traits::in_edge_iterator | in_edge_iter |
|
typedef boost::inv_adjacency_iterator_generator< GraphContainer, vertex_t, in_edge_iter >::type | inv_adjacency_iter |
|
typedef std::pair< inv_adjacency_iter, inv_adjacency_iter > | inv_adjacency_vertex_range_t |
|
typedef graph_traits::out_edge_iterator | out_edge_iter |
|
typedef std::pair< out_edge_iter, out_edge_iter > | out_edge_range_t |
|
enum | ReturnOrder { BreadthFirstOrder
, DepthFirstOrder
} |
|
typedef boost::property_map< GraphContainer, boost::vertex_index_t >::type | vertex_index_map_t |
|
typedef graph_traits::vertex_iterator | vertex_iter |
|
typedef boost::property_map< GraphContainer, vertex_properties_t >::type | vertex_property_map_t |
|
typedef std::pair< vertex_iter, vertex_iter > | vertex_range_t |
|
typedef graph_traits::vertex_descriptor | vertex_t |
|
typedef QMapForAdaptors< Vertex, int > | VertexIntMap |
|
typedef boost::associative_property_map< VertexIntMap > | VertexIntMapAdaptor |
|
typedef QPair< Vertex, Vertex > | VertexPair |
|
typedef QMapForAdaptors< Vertex, Vertex > | VertexVertexMap |
|
typedef boost::associative_property_map< VertexVertexMap > | VertexVertexMapAdaptor |
|
|
| Graph (const Graph &g) |
|
| Graph (MeaningOfDirection dir=ParentToChild) |
|
Edge | addEdge (const Vertex &v1, const Vertex &v2) |
|
Vertex | addVertex () |
|
Vertex | addVertex (const VertexProperties &properties) |
|
QList< Vertex > | adjacentVertices (const Vertex &v, AdjacencyFlags flags=AllEdges) const |
|
void | clear () |
|
Edge | edge (const Vertex &v1, const Vertex &v2) const |
|
int | edgeCount () const |
|
QList< VertexPair > | edgePairs () const |
|
QList< Edge > | edges () const |
|
QList< Edge > | edges (const Vertex &v, AdjacencyFlags flags=AllEdges) const |
|
template<class T > |
Vertex | findVertexByProperties (const T &value) const |
|
const GraphContainer & | getGraph () const |
| Accessing vertices and edges.
|
|
bool | hasEdge (const Vertex &v1, const Vertex &v2) const |
|
bool | hasEdges () const |
|
bool | hasEdges (const Vertex &v, AdjacencyFlags flags=AllEdges) const |
|
int | inDegree (const Vertex &v) const |
|
bool | isConnected (const Vertex &v1, const Vertex &v2) const |
|
bool | isEmpty () const |
|
bool | isLeaf (const Vertex &v) const |
|
bool | isRoot (const Vertex &v) const |
|
QList< Vertex > | leaves () const |
| Returns all leaves, i.e.
|
|
QList< Vertex > | leavesFrom (const Vertex &v) const |
|
QList< Vertex > | longestPathTouching (const Vertex &v) const |
| Returns the longest path through the graph, starting from a vertex in roots(), ending on a vertex in leaves(), and passing vertex v.
|
|
template<typename LessThan > |
QList< Vertex > | longestPathTouching (const Vertex &v, LessThan lessThan) const |
|
MeaningOfDirection | meaningOfDirection () const |
|
Graph & | operator= (const Graph &other) |
|
int | outDegree (const Vertex &v) const |
|
EdgeProperties & | properties (const Edge &e) |
|
const EdgeProperties & | properties (const Edge &e) const |
|
VertexProperties & | properties (const Vertex &v) |
|
const VertexProperties & | properties (const Vertex &v) const |
|
EdgeProperties | properties (const Vertex &v1, const Vertex &v2) const |
|
void | remove (const Vertex &v) |
|
QList< Vertex > | roots () const |
| Returns all roots, i.e.
|
|
QList< Vertex > | rootsOf (const Vertex &v) const |
| Returns all roots of vertex v.
|
|
void | setProperties (const Edge &e, const EdgeProperties &props) |
|
void | setProperties (const Vertex &v, const VertexProperties &props) |
|
QMap< Vertex, int > | shortestDistancesFrom (const Vertex &v) const |
| Returns the shortest distances from Vertex to all vertices in the graph.
|
|
QList< Vertex > | shortestPath (const Vertex &v1, const Vertex &v2) const |
| Returns the shortestPath between id1 and id2.
|
|
Vertex | source (const Edge &e) const |
|
Vertex | target (const Edge &e) const |
|
QList< Vertex > | topologicalSort () const |
| Returns the vertex ids of this graph, in topological order.
|
|
Graph | transitiveClosure (GraphCopyFlags flags=CopyAllProperties) const |
| Returns a copy of this graph with all edges added to form the transitive closure.
|
|
Graph | transitiveReduction (QList< Edge > *removedEdges=0, GraphCopyFlags flags=CopyAllProperties) const |
| Returns a copy of this graph, with edges removed so that the transitive reduction is formed.
|
|
int | vertexCount () const |
|
QList< Vertex > | vertices () const |
|
QList< Vertex > | verticesBreadthFirst (const Vertex &givenRef=Vertex()) const |
| Orders all vertices of the graph in a breadth-first manner.
|
|
template<typename LessThan > |
QList< Vertex > | verticesDepthFirstSorted (const Vertex &givenRef, LessThan lessThan) const |
| Orders all vertices of the graph in a depth-first manner.
|
|
QList< Vertex > | verticesDominatedBy (const Vertex &v, const Vertex &root, const QList< Vertex > &presortedVertices) const |
| For a vertex v reachable from a vertex root returns all vertices dominated by v starting from root.
|
|
QList< Vertex > | verticesDominatedBy (const Vertex &v, const Vertex &root, ReturnOrder order=BreadthFirstOrder) const |
| For a vertex v reachable from a vertex root, returns, in depth-first or breadth-first order, all vertices dominated by v starting from root.
|
|
template<typename LessThan > |
QList< Vertex > | verticesDominatedByDepthFirstSorted (const Vertex &v, const Vertex &root, LessThan lessThan) const |
| For a vertex v reachable from a vertex root all vertices dominated by v starting from root.
|
|
|
void | copyProperties (Graph &other, GraphCopyFlags flags, const std::vector< vertex_t > &copiedVertices) const |
| According to the given flags and based on the map, copies vertex and edge properties from this to the other graph.
|
|
QList< Edge > | edgeDifference (const Graph &other, const std::vector< vertex_t > &copiedVertices) const |
| Returns a list of edges of this graph that have been removed in other.
|
|
QList< Vertex > | findZeroDegree (bool inOrOut) const |
| Finds vertex ids of all vertices with zero in- our out-degree.
|
|
QList< Vertex > | findZeroDegreeFrom (const Vertex &v, bool inOrOut) const |
|
QList< Vertex > | listPath (const Vertex &root, const Vertex &target, const VertexVertexMap &predecessors, MeaningOfDirection dir=ParentToChild) const |
| Get a list of vertex ids for the path from root to target, using the given predecessors.
|
|
QList< Vertex > | mostRemoteNodes (const VertexIntMap &distances) const |
| Get the list of vertices with the largest value in the given distance map.
|
|
QList< Vertex > | treeFromPredecessors (const Vertex &v, const VertexVertexMap &predecessors) const |
|
void | treeFromPredecessorsRecursive (const Vertex &v, QList< Vertex > &vertices, const VertexVertexMap &predecessors) const |
|