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 00048 #ifndef OGDF_KURATOWSKI_CONSTRAINT_H 00049 #define OGDF_KURATOWSKI_CONSTRAINT_H 00050 00051 #include <ogdf/planarity/BoyerMyrvold.h> 00052 #include <ogdf/internal/cluster/Cluster_EdgeVar.h> 00053 #include <ogdf/internal/cluster/basics.h> 00054 //#include <ogdf/internal/cluster/MaxCPlanar_Master.h> 00055 //#include <abacus/master.h> 00056 00057 #include <abacus/constraint.h> 00058 00059 namespace ogdf { 00060 00061 00062 class KuratowskiConstraint : public ABA_CONSTRAINT { 00063 00064 public: 00065 00066 KuratowskiConstraint(ABA_MASTER *master, int nEdges, SListPure<nodePair> &ks); 00067 00068 virtual ~KuratowskiConstraint(); 00069 00070 // Computes and returns the coefficient for the given variable 00071 virtual double coeff(ABA_VARIABLE *v); 00072 00073 void printMe(ostream& out) { 00074 out << "[KuraCon: "; 00075 forall_listiterators(nodePair, it, m_subdivision) { 00076 (*it).printMe(out); 00077 out << ","; 00078 } 00079 out << "]"; 00080 } 00081 00082 private: 00083 00084 // The subdivision containing edges forming a SubGraph that is not planar 00085 List<nodePair> m_subdivision; 00086 00087 }; 00088 00089 } 00090 00091 #endif