Open
Graph Drawing
Framework

 v.2012.05
 

Cluster_EdgeVar.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  
00044 #ifndef OGDF_MAX_CPLANAR_EDGE_H
00045 #define OGDF_MAX_CPLANAR_EDGE_H
00046 
00047 #include <ogdf/basic/Graph_d.h>
00048 #include <ogdf/basic/Logger.h>
00049 
00050 #include <abacus/variable.h>
00051 
00052 namespace ogdf {
00053     
00054 
00055 class EdgeVar : public ABA_VARIABLE {
00056     friend class Sub;
00057 public:
00058 enum edgeType {ORIGINAL, CONNECT};
00059     
00060     EdgeVar(ABA_MASTER *master, double obj, edgeType eType, node source, node target);
00062     EdgeVar(ABA_MASTER *master, double obj, node source, node target);
00064     EdgeVar(ABA_MASTER *master, double obj, double lbound, node source, node target);
00065 
00066     virtual ~EdgeVar();
00067         
00068     edge theEdge() const {return m_edge;}
00069     node sourceNode() const {return m_source;}
00070     node targetNode() const {return m_target;}
00071     edgeType theEdgeType() const {return m_eType;}
00072     //double objCoeff() const {return m_objCoeff;}
00073     
00074     virtual void printMe(ostream& out) {
00075         out << "[Var: " << sourceNode() << "->" << targetNode() << " (" << ((theEdgeType()==EdgeVar::ORIGINAL)?"original":"connect") << ") ZF=" << obj() << "]";
00076     }
00077         
00078 private:
00079         
00080     // The edge type of the variable
00081     edgeType m_eType;
00082         
00083     // The corresponding nodes and edge
00084     node m_source;
00085     node m_target;
00086     edge m_edge;
00087         
00088 };
00089 
00090 }
00091 
00092 #endif
00093