Don't import ogdf namespace
[TortoiseGit.git] / ext / OGDF / ogdf / energybased / MultilevelLayout.h
blob83512a6e2327c17895a793faea39c6988ac38836
1 /*
2 * $Revision: 2523 $
4 * last checkin:
5 * $Author: gutwenger $
6 * $Date: 2012-07-02 20:59:27 +0200 (Mon, 02 Jul 2012) $
7 ***************************************************************/
9 /** \file
10 * \brief Declaration of class MultilevelLayout which realizes a
11 * wrapper for the multilevel layout computation using the
12 * Modular Multilevel Mixer.
14 * \author Karsten Klein
16 * \par License:
17 * This file is part of the Open Graph Drawing Framework (OGDF).
19 * \par
20 * Copyright (C)<br>
21 * See README.txt in the root directory of the OGDF installation for details.
23 * \par
24 * This program is free software; you can redistribute it and/or
25 * modify it under the terms of the GNU General Public License
26 * Version 2 or 3 as published by the Free Software Foundation;
27 * see the file LICENSE.txt included in the packaging of this file
28 * for details.
30 * \par
31 * This program is distributed in the hope that it will be useful,
32 * but WITHOUT ANY WARRANTY; without even the implied warranty of
33 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
34 * GNU General Public License for more details.
36 * \par
37 * You should have received a copy of the GNU General Public
38 * License along with this program; if not, write to the Free
39 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
40 * Boston, MA 02110-1301, USA.
42 * \see http://www.gnu.org/copyleft/gpl.html
43 ***************************************************************/
46 #ifdef _MSC_VER
47 #pragma once
48 #endif
50 #ifndef OGDF_MULTILEVEL_LAYOUT_H
51 #define OGDF_MULTILEVEL_LAYOUT_H
54 #include "ogdf/basic/NodeArray.h"
55 #include "ogdf/basic/GraphAttributes.h"
56 #include "ogdf/energybased/multilevelmixer/ModularMultilevelMixer.h"
57 #include "ogdf/energybased/multilevelmixer/InitialPlacer.h"
58 #include "ogdf/energybased/multilevelmixer/ScalingLayout.h"
59 #include "ogdf/packing/ComponentSplitterLayout.h"
60 #include "ogdf/basic/PreprocessorLayout.h"
61 #include "ogdf/basic/Constraints.h"
63 namespace ogdf {
65 class OGDF_EXPORT MultilevelLayout : public LayoutModule
67 public:
68 //! Constructor
69 MultilevelLayout();
71 //! Destructor
72 virtual ~MultilevelLayout() {delete m_pp;}
74 //! Calculates a drawing for the Graph GA.
75 void call(GraphAttributes &GA);
77 //! Calculates a drawing for the Graph GA and tries to satisfy
78 //! the constraints in CG if supported.
79 virtual void call(GraphAttributes &GA, GraphConstraints &GC);
81 //Setting of the three main phases' methods
82 //! Sets the single level layout
83 void setLayout(LayoutModule* L);
84 //! Sets the method used for coarsening
85 void setMultilevelBuilder(MultilevelBuilder* B);
86 //! Sets the placement method used when refining the levels again.
87 void setPlacer(InitialPlacer* P);
90 private:
91 ModularMultilevelMixer* m_mmm;
92 ScalingLayout* m_sc;
93 ComponentSplitterLayout* m_cs;
94 PreprocessorLayout* m_pp;
96 } //end namespace ogdf
97 #endif