Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

SchnyderLayout.h
Go to the documentation of this file.
1 
33 #pragma once
34 
35 #include <ogdf/basic/Graph_d.h>
36 #include <ogdf/basic/List.h>
38 
39 namespace ogdf {
40 
61 public:
63 
69  enum class CombinatorialObjects {
70  VerticesMinusDepth,
71  Faces
75  };
78 
80  CombinatorialObjects getCombinatorialObjects() { return m_combinatorialObjects; }
81 
83  void setCombinatorialObjects(CombinatorialObjects combinatorialObjects) {
84  m_combinatorialObjects = combinatorialObjects;
85  }
86 
87 protected:
88  virtual void doCall(const Graph& G, adjEntry adjExternal, GridLayout& gridLayout,
89  IPoint& boundingBox, bool fixEmbedding) override;
90 
91 private:
92  void contract(Graph& G, node a, node b, node c, List<node>& L);
93 
94  void realizer(GraphCopy& G, const List<node>& L, node a, node b, node c,
95  EdgeArray<int>& rValues, GraphCopy& T);
96 
97  void subtreeSizes(EdgeArray<int>& rValues, int i, node r, NodeArray<int>& size);
98 
99  void prefixSum(EdgeArray<int>& rValues, int i, node r, const NodeArray<int>& val,
100  NodeArray<int>& sum);
101 
102  void schnyderEmbedding(GraphCopy& GC, GridLayout& gridLayout, adjEntry adjExternal);
103 
106 };
107 
108 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::GenericPoint< int >
ogdf::SchnyderLayout::m_combinatorialObjects
CombinatorialObjects m_combinatorialObjects
Determines how the barycentric coordinates of each node are computed.
Definition: SchnyderLayout.h:105
ogdf::GraphCopy
Copies of graphs supporting edge splitting.
Definition: GraphCopy.h:384
ogdf::SchnyderLayout::CombinatorialObjects
CombinatorialObjects
Each node in a Schnyder wood splits the graph into three regions.
Definition: SchnyderLayout.h:69
ogdf::AdjElement
Class for adjacency list elements.
Definition: Graph_d.h:135
ogdf::SchnyderLayout::setCombinatorialObjects
void setCombinatorialObjects(CombinatorialObjects combinatorialObjects)
Sets the type of combinatorial objects whose number corresponds to the node coordinates.
Definition: SchnyderLayout.h:83
r
int r[]
Definition: hierarchical-ranking.cpp:8
ogdf::PlanarGridLayoutModule
Base class for planar grid layout algorithms.
Definition: GridLayoutModule.h:133
ogdf::List
Doubly linked lists (maintaining the length of the list).
Definition: List.h:42
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_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
List.h
Declaration of doubly linked lists and iterators.
ogdf::GridLayout
Representation of a graph's grid layout.
Definition: GridLayout.h:46
Graph_d.h
Pure declaration header, find template implementation in Graph.h.
ogdf::SchnyderLayout::getCombinatorialObjects
CombinatorialObjects getCombinatorialObjects()
Returns the type of combinatorial objects whose number corresponds to the node coordinates.
Definition: SchnyderLayout.h:80
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
ogdf::SchnyderLayout
The class SchnyderLayout represents the layout algorithm by Schnyder [Sch90].
Definition: SchnyderLayout.h:60
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:709
GridLayoutModule.h
Declaration of interface for grid layout algorithms.