Open
Graph Drawing
Framework

 v.2012.07
 

OptimalRanking.h
Go to the documentation of this file.
1 /*
2  * $Revision: 2523 $
3  *
4  * last checkin:
5  * $Author: gutwenger $
6  * $Date: 2012-07-02 20:59:27 +0200 (Mon, 02 Jul 2012) $
7  ***************************************************************/
8 
45 #ifdef _MSC_VER
46 #pragma once
47 #endif
48 
49 #ifndef OGDF_OPTIMAL_RANKING_H
50 #define OGDF_OPTIMAL_RANKING_H
51 
52 
53 
57 #include <ogdf/basic/NodeArray.h>
58 
59 
60 namespace ogdf {
61 
63 
93 
94  ModuleOption<AcyclicSubgraphModule> m_subgraph; // option for acyclic sugraph
96 
97 public:
100 
101 
107 
108  void call(const Graph &G, NodeArray<int> &rank);
109 
111 
116  void call(const Graph &G, const EdgeArray<int> &length, NodeArray<int> &rank);
117 
119 
125  void call(
126  const Graph &G,
127  const EdgeArray<int> &length,
128  const EdgeArray<int> &cost,
129  NodeArray<int> &rank);
130 
131 
137 
138 
143  bool separateMultiEdges() const { return m_separateMultiEdges; }
144 
146  void separateMultiEdges(bool b) { m_separateMultiEdges = b; }
147 
148 
154 
156  m_subgraph.set(pSubgraph);
157  }
158 
160 
161 private:
163  void doCall(const Graph& G,
164  NodeArray<int> &rank,
165  EdgeArray<bool> &reversed,
166  const EdgeArray<int> &length,
167  const EdgeArray<int> &cost);
168 };
169 
170 
171 } // end namespace ogdf
172 
173 
174 #endif