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_MIXED_MODEL_LAYOUT_H 00048 #define OGDF_MIXED_MODEL_LAYOUT_H 00049 00050 00051 #include <ogdf/module/GridLayoutModule.h> 00052 #include <ogdf/basic/ModuleOption.h> 00053 #include <ogdf/module/EmbedderModule.h> 00054 #include <ogdf/module/AugmentationModule.h> 00055 #include <ogdf/module/ShellingOrderModule.h> 00056 #include <ogdf/module/MixedModelCrossingsBeautifierModule.h> 00057 00058 00059 namespace ogdf { 00060 00061 00131 class OGDF_EXPORT MixedModelLayout : public GridLayoutPlanRepModule 00132 { 00133 public: 00135 MixedModelLayout(); 00136 00137 virtual ~MixedModelLayout() { } 00138 00150 void setAugmenter(AugmentationModule *pAugmenter) { 00151 m_augmenter.set(pAugmenter); 00152 } 00153 00155 void setShellingOrder(ShellingOrderModule *pOrder) { 00156 m_compOrder.set(pOrder); 00157 } 00158 00160 void setCrossingsBeautifier(MixedModelCrossingsBeautifierModule *pBeautifier) { 00161 m_crossingsBeautifier.set(pBeautifier); 00162 } 00163 00165 void setEmbedder(EmbedderModule *pEmbedder) { 00166 m_embedder.set(pEmbedder); 00167 } 00168 00170 00171 protected: 00173 void doCall( 00174 PlanRep &PG, 00175 adjEntry adjExternal, 00176 GridLayout &gridLayout, 00177 IPoint &boundingBox, 00178 bool fixEmbedding); 00179 00180 private: 00181 ModuleOption<EmbedderModule> m_embedder; 00182 ModuleOption<AugmentationModule> m_augmenter; 00183 ModuleOption<ShellingOrderModule> m_compOrder; 00184 ModuleOption<MixedModelCrossingsBeautifierModule> m_crossingsBeautifier; 00185 }; 00186 00187 00188 } // end namespace ogdf 00189 00190 00191 #endif