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);