00001 /* 00002 * $Revision: 2299 $ 00003 * 00004 * last checkin: 00005 * $Author: gutwenger $ 00006 * $Date: 2012-05-07 15:57:08 +0200 (Mon, 07 May 2012) $ 00007 ***************************************************************/ 00008 00042 #ifdef _MSC_VER 00043 #pragma once 00044 #endif 00045 00046 #ifndef OGDF_SPLIT_HEURISTIC_H 00047 #define OGDF_SPLIT_HEURISTIC_H 00048 00049 00050 #include <ogdf/basic/EdgeArray.h> 00051 #include <ogdf/layered/CrossingsMatrix.h> 00052 #include <ogdf/simultaneous/TwoLayerCrossMinSimDraw.h> 00053 00054 namespace ogdf { 00055 00056 00058 class OGDF_EXPORT SplitHeuristic : public TwoLayerCrossMinSimDraw 00059 { 00060 public: 00062 void init (const Hierarchy &H); 00063 00065 void call (Level &L); 00066 00068 void call (Level &L, const EdgeArray<unsigned int> *edgeSubGraph); 00069 00071 void cleanup (); 00072 00073 private: 00074 CrossingsMatrix *m_cm; 00075 Array<node> buffer; 00076 00077 void recCall(Level&, int low, int high); 00078 }; 00079 00080 }// end namespace ogdf 00081 00082 #endif