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