Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

EmbedderOptimalFlexDraw.h
Go to the documentation of this file.
1 
32 #pragma once
33 
37 
38 #include <memory>
39 
40 namespace ogdf {
41 
43 
50 public:
52 
53  virtual void doCall(Graph& G, adjEntry& adjExternal) override;
54 
56  void setMinCostFlowComputer(MinCostFlowModule<int>* pMinCostFlowComputer) {
57  m_minCostFlowComputer.reset(pMinCostFlowComputer);
58  }
59 
61  void cost(EdgeArray<int>* cost) { m_cost = cost; }
62 
63 private:
64  std::unique_ptr<MinCostFlowModule<int>> m_minCostFlowComputer;
65 
67 
68  void createNetwork(node parent, node mu, int bends, NodeArray<int> cost[], Skeleton& skeleton,
69  EdgeArray<node>& edgeNode, Graph& N, EdgeArray<int>& upper, EdgeArray<int>& perUnitCost,
70  NodeArray<int>& supply);
71 
72  void optimizeOverEmbeddings(StaticPlanarSPQRTree& T, node parent, node mu, int bends,
73  NodeArray<int> cost[], NodeArray<long long> embedding[]);
74 
75  void computePrincipalSplitComponentCost(StaticPlanarSPQRTree& T, NodeArray<int> cost[],
76  NodeArray<long long> embedding[], node parent, node mu);
77 };
78 
79 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::EmbedderOptimalFlexDraw
The algorithm computes a planar embedding with minimum cost.
Definition: EmbedderOptimalFlexDraw.h:49
StaticPlanarSPQRTree.h
Declaration of class StaticPlanarSPQRTree.
ogdf::EmbedderOptimalFlexDraw::setMinCostFlowComputer
void setMinCostFlowComputer(MinCostFlowModule< int > *pMinCostFlowComputer)
Sets the module option to compute min-cost flow.
Definition: EmbedderOptimalFlexDraw.h:56
ogdf::AdjElement
Class for adjacency list elements.
Definition: Graph_d.h:135
ogdf::MinCostFlowModule
Interface for min-cost flow algorithms.
Definition: MinCostFlowModule.h:48
ogdf::EmbedderOptimalFlexDraw::m_minCostFlowComputer
std::unique_ptr< MinCostFlowModule< int > > m_minCostFlowComputer
Definition: EmbedderOptimalFlexDraw.h:64
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:651
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
ogdf::EmbedderOptimalFlexDraw::cost
void cost(EdgeArray< int > *cost)
Sets bend costs for each edge.
Definition: EmbedderOptimalFlexDraw.h:61
ogdf::StaticPlanarSPQRTree
SPQR-trees of planar graphs.
Definition: StaticPlanarSPQRTree.h:56
ogdf::EmbedderModule
Base class for embedder algorithms.
Definition: EmbedderModule.h:49
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
EmbedderModule.h
Defines ogdf::EmbedderModule.
ogdf::Skeleton
Skeleton graphs of nodes in an SPQR-tree.
Definition: Skeleton.h:59
MinCostFlowModule.h
Definition of ogdf::MinCostFlowModule class template.
ogdf::EmbedderOptimalFlexDraw::m_cost
EdgeArray< int > * m_cost
Definition: EmbedderOptimalFlexDraw.h:66
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:709