Open
Graph Drawing
Framework

 v.2012.05
 

KuratowskiConstraint.h
Go to the documentation of this file.
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