Open
Graph Drawing
Framework

 v.2012.05
 

EmbedderMinDepthMaxFace.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  
00045 #ifdef _MSC_VER
00046 #pragma once
00047 #endif
00048 
00049 #ifndef OGDF_EMBEDDER_MIN_DEPTH_MAX_FACE_H
00050 #define OGDF_EMBEDDER_MIN_DEPTH_MAX_FACE_H
00051 
00052 #include <ogdf/module/EmbedderModule.h>
00053 #include <ogdf/decomposition/BCTree.h>
00054 #include <ogdf/internal/planarity/EmbedderMDMFLengthAttribute.h>
00055 
00056 namespace ogdf {
00057 
00059 class OGDF_EXPORT EmbedderMinDepthMaxFace : public EmbedderModule
00060 {
00061 public:
00062     //constructor:
00063     EmbedderMinDepthMaxFace() { }
00064 
00070     void call(PlanRep& PG, adjEntry& adjExternal);
00071 
00072 private:
00083     int md_bottomUpTraversal(const node& bT, const node& cH);
00084     
00096     void md_topDownTraversal(const node& bT);
00097 
00105     int mf_constraintMaxFace(const node& bT, const node& cH);
00106 
00115     void mf_maximumFaceRec(const node& bT, node& bT_opt, int& ell_opt);
00116 
00123   void embedBlock(const node& bT);
00124 
00135   void embedBlock(const node& bT, const node& cT, ListIterator<adjEntry>& after);
00136 
00137 private:
00139     BCTree* pBCTree;
00140 
00142     adjEntry* pAdjExternal;
00143     
00145     NodeArray<int> md_nodeLength;
00146 
00148     NodeArray<int> md_minDepth;
00149 
00151     EdgeArray<int> md_m_cB;
00152 
00155     NodeArray< List<node> > md_M_B;
00156 
00160     NodeArray< List<node> > md_M2;
00161 
00163     NodeArray<int> mf_nodeLength;
00164 
00166     NodeArray<int> mf_cstrLength;
00167 
00169     NodeArray<int> mf_maxFaceSize;
00170 
00172     NodeArray<mdmf_la> mdmf_nodeLength;
00173 
00175     EdgeArray<mdmf_la> mdmf_edgeLength;
00176 
00178     NodeArray< List<adjEntry> > newOrder;
00179 
00182     NodeArray<bool> treeNodeTreated;
00183 };
00184 
00185 } // end namespace ogdf
00186 
00187 #endif