21 #ifndef __ctkDependencyGraph_h 22 #define __ctkDependencyGraph_h 25 #if !defined(NO_SYMBOL_EXPORT) 26 #include "ctkCoreExport.h" 28 #define CTK_CORE_EXPORT 33 class ctkDependencyGraphPrivate;
44 void printAdditionalInfo()
const;
45 void printGraph()
const;
48 int numberOfVertices()
const;
51 int numberOfEdges()
const;
57 bool cycleDetected()
const;
60 int cycleOrigin()
const;
71 void insertEdge(
int from,
int to);
75 void findPaths(
int from,
int to, std::list<std::list<int>* >& paths);
78 void findPath(
int from,
int to, std::list<int>& path);
82 void setEdgeListToExclude(
const std::list<int>& list);
86 virtual bool shouldExcludeEdge(
int edge)
const;
95 bool topologicalSort(std::list<int>& sorted,
int rootId = -1);
98 void sourceVertices(std::list<int>& sources);
ctkDependencyGraphPrivate * d_ptr
Class to implement a dependency graph, converted to STL instead of Qt.
virtual void processEdge(int, int)
Called each time an edge is visited.