00001 /* 00002 * $Revision: 1.3 $ 00003 * 00004 * last checkin: 00005 * $Author: gutwenger $ 00006 * $Date: 2007-11-08 21:07:51 +0100 (Do, 08 Nov 2007) $ 00007 ***************************************************************/ 00008 00051 #ifdef _MSC_VER 00052 #pragma once 00053 #endif 00054 00055 #ifndef OGDF_MIXED_MODEL_LAYOUT_H 00056 #define OGDF_MIXED_MODEL_LAYOUT_H 00057 00058 00059 #include <ogdf/module/GridLayoutModule.h> 00060 #include <ogdf/basic/ModuleOption.h> 00061 #include <ogdf/module/EmbedderModule.h> 00062 #include <ogdf/module/AugmentationModule.h> 00063 #include <ogdf/module/ShellingOrderModule.h> 00064 #include <ogdf/module/MixedModelCrossingsBeautifierModule.h> 00065 00066 00067 namespace ogdf { 00068 00069 00139 class MixedModelLayout : public GridLayoutPlanRepModule 00140 { 00141 public: 00143 MixedModelLayout(); 00144 00145 virtual ~MixedModelLayout() { } 00146 00158 void setAugmenter(AugmentationModule *pAugmenter) { 00159 m_augmenter.set(pAugmenter); 00160 } 00161 00163 void setShellingOrder(ShellingOrderModule *pOrder) { 00164 m_compOrder.set(pOrder); 00165 } 00166 00168 void setCrossingsBeautifier(MixedModelCrossingsBeautifierModule *pBeautifier) { 00169 m_crossingsBeautifier.set(pBeautifier); 00170 } 00171 00173 void setEmbedder(EmbedderModule *pEmbedder) { 00174 m_embedder.set(pEmbedder); 00175 } 00176 00178 00179 protected: 00181 void doCall( 00182 PlanRep &PG, 00183 adjEntry adjExternal, 00184 GridLayout &gridLayout, 00185 IPoint &boundingBox, 00186 bool fixEmbedding); 00187 00188 private: 00189 ModuleOption<EmbedderModule> m_embedder; 00190 ModuleOption<AugmentationModule> m_augmenter; 00191 ModuleOption<ShellingOrderModule> m_compOrder; 00192 ModuleOption<MixedModelCrossingsBeautifierModule> m_crossingsBeautifier; 00193 }; 00194 00195 00196 } // end namespace ogdf 00197 00198 00199 #endif