![]() |
digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
|
Public Member Functions | |
ItemHistoryGraphData (const HistoryGraph &g) | |
void | addHistory (const DImageHistory &givenHistory, qlonglong extraCurrent=0) |
Vertex | addVertex (const HistoryImageId &id) |
Vertex | addVertex (const ItemInfo &info) |
Vertex | addVertex (const QList< HistoryImageId > &imageIds) |
Vertex | addVertex (qlonglong id) |
Vertex | addVertexScanned (qlonglong id) |
QHash< Vertex, HistoryImageId::Types > | categorize () const |
ItemHistoryGraphData & | operator= (const HistoryGraph &g) |
int | removeNextUnresolvedVertex (int begin) |
QList< ItemInfo > | toInfoList (const QList< Vertex > &vertices) const |
![]() | |
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. | |
Protected Member Functions | |
void | applyProperties (Vertex &v, const QList< ItemInfo > &infos, const QList< HistoryImageId > &ids) |
![]() | |
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 |
Additional Inherited Members | |
![]() | |
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 |
![]() | |
template<typename T > | |
static bool | alwaysFalse (const T &, const T &) |
![]() | |
template<typename range_t > | |
static bool | isEmptyRange (const range_t &range) |
template<typename range_t > | |
static QList< Edge > | toEdgeList (const range_t &range) |
template<typename Value , typename range_t > | |
static QList< Value > | toList (const range_t &range) |
Returns a list of vertex ids of vertices in the given range. | |
template<typename range_t > | |
static QList< Vertex > | toVertexList (const range_t &range) |
![]() | |
MeaningOfDirection | direction = ParentToChild |
GraphContainer | graph |