Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
MinimumEdgeDistances.h
Go to the documentation of this file.
1
34#pragma once
35
36#include <ogdf/basic/Graph.h>
37#include <ogdf/basic/basic.h>
38
39namespace ogdf {
40enum class OrthoDir;
41
43template<class ATYPE>
45public:
46 // constructor
47 MinimumEdgeDistances(const Graph& G, ATYPE sep) : m_delta(G), m_epsilon(G) { m_sep = sep; }
48
49 // returns delta_s(v)^i (with i = 0 => l, i = 1 => r)
50 const ATYPE& delta(node v, OrthoDir s, int i) const {
51 OGDF_ASSERT(0 <= int(s));
52 OGDF_ASSERT(int(s) <= 3);
53 OGDF_ASSERT(0 <= i);
54 OGDF_ASSERT(i <= 1);
55 return m_delta[v].info[static_cast<int>(s)][i];
56 }
57
58 ATYPE& delta(node v, OrthoDir s, int i) {
59 OGDF_ASSERT(0 <= int(s));
60 OGDF_ASSERT(int(s) <= 3);
61 OGDF_ASSERT(0 <= i);
62 OGDF_ASSERT(i <= 1);
63 return m_delta[v].info[static_cast<int>(s)][i];
64 }
65
66 // returns epsilon_s(v)^i (with i = 0 => l, i = 1 => r)
67 const ATYPE& epsilon(node v, OrthoDir s, int i) const {
68 OGDF_ASSERT(0 <= int(s));
69 OGDF_ASSERT(int(s) <= 3);
70 OGDF_ASSERT(0 <= i);
71 OGDF_ASSERT(i <= 1);
72 return m_epsilon[v].info[static_cast<int>(s)][i];
73 }
74
75 ATYPE& epsilon(node v, OrthoDir s, int i) {
76 OGDF_ASSERT(0 <= int(s));
77 OGDF_ASSERT(int(s) <= 3);
78 OGDF_ASSERT(0 <= i);
79 OGDF_ASSERT(i <= 1);
80 return m_epsilon[v].info[static_cast<int>(s)][i];
81 }
82
83 ATYPE separation() const { return m_sep; }
84
85 void separation(ATYPE sep) { m_sep = sep; }
86
87
88private:
89 struct InfoType {
90 ATYPE info[4][2];
91 };
92
95 ATYPE m_sep;
96};
97
98}
Includes declaration of graph class.
Basic declarations, included by all source files.
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:866
Maintains input sizes for improvement compaction (deltas and epsilons)
MinimumEdgeDistances(const Graph &G, ATYPE sep)
ATYPE & epsilon(node v, OrthoDir s, int i)
const ATYPE & epsilon(node v, OrthoDir s, int i) const
NodeArray< InfoType > m_epsilon
const ATYPE & delta(node v, OrthoDir s, int i) const
NodeArray< InfoType > m_delta
ATYPE & delta(node v, OrthoDir s, int i)
Class for the representation of nodes.
Definition Graph_d.h:241
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition Graph_d.h:659
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
Definition basic.h:52
The namespace for all OGDF objects.
OrthoDir
Definition OrthoRep.h:56