Open
Graph Drawing
Framework

 v.2010.10
 

DfsAcyclicSubgraph.h

Go to the documentation of this file.
00001 /*
00002  * $Revision: 2027 $
00003  * 
00004  * last checkin:
00005  *   $Author: gutwenger $ 
00006  *   $Date: 2010-09-01 11:55:17 +0200 (Wed, 01 Sep 2010) $ 
00007  ***************************************************************/
00008  
00052 #ifdef _MSC_VER
00053 #pragma once
00054 #endif
00055 
00056 #ifndef OGDF_DFS_ACYCLIC_SUBGRAPH_H
00057 #define OGDF_DFS_ACYCLIC_SUBGRAPH_H
00058 
00059 
00060 
00061 #include <ogdf/module/AcyclicSubgraphModule.h>
00062 
00063 
00064 namespace ogdf {
00065 
00066 class OGDF_EXPORT GraphAttributes;
00067 
00068 
00069 
00071 
00074 class OGDF_EXPORT DfsAcyclicSubgraph : public AcyclicSubgraphModule {
00075 public:
00077     void call (const Graph &G, List<edge> &arcSet);
00078 
00080 
00084     void callUML (const GraphAttributes &AG, List<edge> &arcSet);
00085 
00086 private:
00087     int dfsFindHierarchies(
00088         const GraphAttributes &AG,
00089         NodeArray<int> &hierarchy,
00090         int i,
00091         node v);
00092 
00093     void dfsBackedgesHierarchies(
00094         const GraphAttributes &AG,
00095         node v,
00096         NodeArray<int> &number,
00097         NodeArray<int> &completion,
00098         int &nNumber,
00099         int &nCompletion);
00100 
00101 };
00102 
00103 
00104 } // end namespace ogdf
00105 
00106 
00107 #endif