Open
Graph Drawing
Framework

 v.2012.05
 

PlanarizationGridLayout.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 #ifndef OGDF_PLANARIZATION_GRID_LAYOUT_H
00048 #define OGDF_PLANARIZATION_GRID_LAYOUT_H
00049 
00050 
00051 
00052 #include <ogdf/module/GridLayoutModule.h>
00053 #include <ogdf/basic/ModuleOption.h>
00054 #include <ogdf/module/PlanarSubgraphModule.h>
00055 #include <ogdf/module/EdgeInsertionModule.h>
00056 #include <ogdf/module/GridLayoutModule.h>
00057 #include <ogdf/module/CCLayoutPackModule.h>
00058 
00059 
00060 namespace ogdf {
00061 
00062 
00121 class OGDF_EXPORT PlanarizationGridLayout : public GridLayoutModule
00122 {
00123 public:
00125     PlanarizationGridLayout();
00126 
00127     ~PlanarizationGridLayout() { }
00128 
00140     double pageRatio() const {
00141         return m_pageRatio;
00142     }
00143 
00145     void pageRatio(double ratio) {
00146         m_pageRatio = ratio;
00147     }
00148 
00160     void setSubgraph(PlanarSubgraphModule *pSubgraph) {
00161         m_subgraph.set(pSubgraph);
00162     }
00163 
00172     void setInserter(EdgeInsertionModule *pInserter) {
00173         m_inserter.set(pInserter);
00174     }
00175 
00186     void setPlanarLayouter(GridLayoutPlanRepModule *pPlanarLayouter) {
00187         m_planarLayouter.set(pPlanarLayouter);
00188     }
00189 
00197     void setPacker(CCLayoutPackModule *pPacker) {
00198         m_packer.set(pPacker);
00199     }
00200 
00201 
00207 
00208     int numberOfCrossings() const {
00209         return m_nCrossings;
00210     }
00211 
00213 
00214 protected:
00215     void doCall(const Graph &G, GridLayout &gridLayout, IPoint &boundingBox);
00216 
00217 
00218 private:
00220     ModuleOption<PlanarSubgraphModule>    m_subgraph;
00221 
00223     ModuleOption<EdgeInsertionModule>     m_inserter;
00224 
00226     ModuleOption<GridLayoutPlanRepModule> m_planarLayouter;
00227 
00229     ModuleOption<CCLayoutPackModule>      m_packer;
00230 
00231     double m_pageRatio; 
00232 
00233     int m_nCrossings; 
00234 };
00235 
00236 
00237 } // end namespace ogdf
00238 
00239 
00240 #endif