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_DYNAMIC_SKELETON_H 00049 #define OGDF_DYNAMIC_SKELETON_H 00050 00051 00052 #include <ogdf/decomposition/Skeleton.h> 00053 00054 00055 namespace ogdf { 00056 00057 class DynamicSPQRTree; 00058 00059 00061 00076 class OGDF_EXPORT DynamicSkeleton : public Skeleton 00077 { 00078 friend class DynamicSPQRTree; 00079 00080 public: 00081 00082 // constructor 00083 00085 00091 DynamicSkeleton(const DynamicSPQRTree *T, node vT); 00092 00093 00094 // destructor 00095 ~DynamicSkeleton() { } 00096 00097 00099 const SPQRTree &owner() const; 00100 00102 00105 node original (node v) const; 00106 00108 00112 edge realEdge (edge e) const; 00113 00115 00118 bool isVirtual (edge e) const { 00119 return !realEdge(e); 00120 } 00121 00123 00127 edge twinEdge (edge e) const; 00128 00130 00134 node twinTreeNode (edge e) const; 00135 00136 OGDF_NEW_DELETE 00137 00138 protected: 00139 const DynamicSPQRTree *m_owner; 00140 NodeArray<node> m_origNode; 00141 EdgeArray<edge> m_origEdge; 00142 }; 00143 00144 00145 } // end namespace ogdf 00146 00147 00148 #endif