Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

MinimumEdgeDistances.h
Go to the documentation of this file.
1 
34 #pragma once
35 
37 
38 namespace ogdf {
39 
40 
42 template<class ATYPE>
44 public:
45  // constructor
46  MinimumEdgeDistances(const Graph& G, ATYPE sep) : m_delta(G), m_epsilon(G) { m_sep = sep; }
47 
48  // returns delta_s(v)^i (with i = 0 => l, i = 1 => r)
49  const ATYPE& delta(node v, OrthoDir s, int i) const {
50  OGDF_ASSERT(0 <= int(s));
51  OGDF_ASSERT(int(s) <= 3);
52  OGDF_ASSERT(0 <= i);
53  OGDF_ASSERT(i <= 1);
54  return m_delta[v].info[static_cast<int>(s)][i];
55  }
56 
57  ATYPE& delta(node v, OrthoDir s, int i) {
58  OGDF_ASSERT(0 <= int(s));
59  OGDF_ASSERT(int(s) <= 3);
60  OGDF_ASSERT(0 <= i);
61  OGDF_ASSERT(i <= 1);
62  return m_delta[v].info[static_cast<int>(s)][i];
63  }
64 
65  // returns epsilon_s(v)^i (with i = 0 => l, i = 1 => r)
66  const ATYPE& epsilon(node v, OrthoDir s, int i) const {
67  OGDF_ASSERT(0 <= int(s));
68  OGDF_ASSERT(int(s) <= 3);
69  OGDF_ASSERT(0 <= i);
70  OGDF_ASSERT(i <= 1);
71  return m_epsilon[v].info[static_cast<int>(s)][i];
72  }
73 
74  ATYPE& epsilon(node v, OrthoDir s, int i) {
75  OGDF_ASSERT(0 <= int(s));
76  OGDF_ASSERT(int(s) <= 3);
77  OGDF_ASSERT(0 <= i);
78  OGDF_ASSERT(i <= 1);
79  return m_epsilon[v].info[static_cast<int>(s)][i];
80  }
81 
82  ATYPE separation() const { return m_sep; }
83 
84  void separation(ATYPE sep) { m_sep = sep; }
85 
86 
87 private:
88  struct InfoType {
89  ATYPE info[4][2];
90  };
91 
94  ATYPE m_sep;
95 };
96 
97 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::MinimumEdgeDistances::epsilon
ATYPE & epsilon(node v, OrthoDir s, int i)
Definition: MinimumEdgeDistances.h:74
OGDF_ASSERT
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
Definition: basic.h:54
ogdf::OrthoDir
OrthoDir
Definition: OrthoRep.h:50
ogdf::MinimumEdgeDistances::separation
ATYPE separation() const
Definition: MinimumEdgeDistances.h:82
ogdf::MinimumEdgeDistances::epsilon
const ATYPE & epsilon(node v, OrthoDir s, int i) const
Definition: MinimumEdgeDistances.h:66
ogdf::MinimumEdgeDistances::delta
ATYPE & delta(node v, OrthoDir s, int i)
Definition: MinimumEdgeDistances.h:57
ogdf::MinimumEdgeDistances::m_delta
NodeArray< InfoType > m_delta
Definition: MinimumEdgeDistances.h:92
ogdf::MinimumEdgeDistances::separation
void separation(ATYPE sep)
Definition: MinimumEdgeDistances.h:84
ogdf::MinimumEdgeDistances::m_epsilon
NodeArray< InfoType > m_epsilon
Definition: MinimumEdgeDistances.h:93
OrthoRep.h
Declaration of orthogonal representation of planar graphs.
ogdf::MinimumEdgeDistances::MinimumEdgeDistances
MinimumEdgeDistances(const Graph &G, ATYPE sep)
Definition: MinimumEdgeDistances.h:46
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::MinimumEdgeDistances::InfoType::info
ATYPE info[4][2]
Definition: MinimumEdgeDistances.h:89
ogdf::MinimumEdgeDistances::delta
const ATYPE & delta(node v, OrthoDir s, int i) const
Definition: MinimumEdgeDistances.h:49
ogdf::MinimumEdgeDistances
Maintains input sizes for improvement compaction (deltas and epsilons)
Definition: MinimumEdgeDistances.h:43
ogdf::MinimumEdgeDistances::InfoType
Definition: MinimumEdgeDistances.h:88
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
ogdf::MinimumEdgeDistances::m_sep
ATYPE m_sep
Definition: MinimumEdgeDistances.h:94