Open
Graph Drawing
Framework

 v.2012.05
 

PertinentGraph.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_PERTINENT_GRAPH_H
00049 #define OGDF_PERTINENT_GRAPH_H
00050 
00051 
00052 namespace ogdf {
00053 
00054     class OGDF_EXPORT SPQRTree;
00055 
00056 
00057 //---------------------------------------------------------
00058 // PertinentGraph
00059 // pertinent graph of a node in an SPQR-tree
00060 //---------------------------------------------------------
00062 
00079 class OGDF_EXPORT PertinentGraph
00080 {
00081     friend class OGDF_EXPORT SPQRTree;
00082 
00083 public:
00084 
00085     // constructor
00086     // Remark: Pertinent graphs are created by the pertinentGraph()
00087     //   function of SPQRTree.
00088 
00090 
00094     PertinentGraph() : m_vT(0) { }
00095 
00097     void init(node vT) {
00098         m_P = Graph();
00099         m_vT = vT;
00100         m_vEdge = m_skRefEdge = 0;
00101         m_origV.init(m_P,0);
00102         m_origE.init(m_P,0);
00103     }
00104 
00105 
00107     node treeNode() const {
00108         return m_vT;
00109     }
00110 
00112     const Graph &getGraph() const {
00113         return m_P;
00114     }
00115 
00117     Graph &getGraph() {
00118         return m_P;
00119     }
00120 
00122 
00125     edge referenceEdge() const {
00126         return m_vEdge;
00127     }
00128 
00130 
00134     edge skeletonReferenceEdge() const {
00135         return m_skRefEdge;
00136     }
00137 
00139 
00142     node original(node v) const {
00143         return m_origV[v];
00144     }
00145 
00147 
00151     edge original(edge e) const {
00152         return m_origE[e];
00153     }
00154 
00155 protected:
00156     node  m_vT;  
00157     Graph m_P;   
00158     edge  m_vEdge; 
00159     edge  m_skRefEdge; 
00160 
00161     NodeArray<node> m_origV; 
00162     EdgeArray<edge> m_origE; 
00163 };
00164 
00165 
00166 
00167 } // end namespace ogdf
00168 
00169 
00170 #endif