Open
Graph Drawing
Framework

 v.2012.05
 

Skeleton.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  
00043 #ifdef _MSC_VER
00044 #pragma once
00045 #endif
00046 
00047 
00048 #ifndef OGDF_SKELETON_H
00049 #define OGDF_SKELETON_H
00050 
00051 
00052 #include <ogdf/basic/NodeArray.h>
00053 #include <ogdf/basic/EdgeArray.h>
00054 
00055 
00056 namespace ogdf {
00057 
00058     class OGDF_EXPORT SPQRTree;
00059 
00060 
00062 
00077 class OGDF_EXPORT Skeleton
00078 {
00079 public:
00080 
00081     // constructor
00082 
00084 
00090     Skeleton(node vT) : m_treeNode(vT) { }
00091 
00092 
00093     // destructor
00094     virtual ~Skeleton() { }
00095 
00096 
00098     virtual const SPQRTree &owner() const=0;
00099 
00101     node treeNode() const {
00102         return m_treeNode;
00103     }
00104 
00106 
00110     edge referenceEdge() const {
00111         return m_referenceEdge;
00112     }
00113 
00115     const Graph &getGraph() const {
00116         return m_M;
00117     }
00118 
00120     Graph &getGraph() {
00121         return m_M;
00122     }
00123 
00125 
00128     virtual node original (node v) const=0;
00129 
00131 
00134     virtual bool isVirtual (edge e) const=0;
00135 
00137 
00141     virtual edge realEdge (edge e) const=0;
00142 
00144 
00148     virtual edge twinEdge (edge e) const=0;
00149 
00151 
00155     virtual node twinTreeNode (edge e) const=0;
00156 
00157     OGDF_NEW_DELETE
00158 
00159 protected:
00160     node  m_treeNode;       
00161     edge  m_referenceEdge;  
00162     Graph m_M;              
00163 };
00164 
00165 
00166 } // end namespace ogdf
00167 
00168 
00169 #endif