Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Triple.h
Go to the documentation of this file.
1 
33 #pragma once
34 
35 #include <ogdf/basic/Graph.h>
36 
37 namespace ogdf {
38 namespace steiner_tree {
39 
43 template<typename T>
44 class Triple {
45 public:
46  explicit Triple(const node s0 = nullptr, const node s1 = nullptr, const node s2 = nullptr,
47  const node z = nullptr, T cost = 0, double win = 0)
48  : m_s0(s0), m_s1(s1), m_s2(s2), m_z(z), m_cost(cost), m_win(win) { }
49 
50  node s0() const { return m_s0; }
51 
52  node s1() const { return m_s1; }
53 
54  node s2() const { return m_s2; }
55 
56  node z() const { return m_z; }
57 
58  T cost() const { return m_cost; }
59 
60  double win() const { return m_win; }
61 
62  void s0(node u) { m_s0 = u; }
63 
64  void s1(node u) { m_s1 = u; }
65 
66  void s2(node u) { m_s2 = u; }
67 
68  void z(node u) { m_z = u; }
69 
70  void cost(T c) { m_cost = c; }
71 
72  void win(double w) { m_win = w; }
73 
74 private:
77  T m_cost;
78  double m_win;
79 };
80 
81 }
82 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::steiner_tree::Triple::win
double win() const
Definition: Triple.h:60
Graph.h
Includes declaration of graph class.
ogdf::steiner_tree::Triple::s2
void s2(node u)
Definition: Triple.h:66
ogdf::steiner_tree::Triple
This class represents a triple used by various contraction-based minimum Steiner tree approximations.
Definition: Triple.h:44
ogdf::steiner_tree::Triple::s2
node s2() const
Definition: Triple.h:54
ogdf::steiner_tree::Triple::Triple
Triple(const node s0=nullptr, const node s1=nullptr, const node s2=nullptr, const node z=nullptr, T cost=0, double win=0)
Definition: Triple.h:46
ogdf::steiner_tree::Triple::s1
node s1() const
Definition: Triple.h:52
ogdf::steiner_tree::Triple::m_s2
node m_s2
terminal nodes
Definition: Triple.h:75
ogdf::steiner_tree::Triple::s1
void s1(node u)
Definition: Triple.h:64
ogdf::steiner_tree::Triple::z
void z(node u)
Definition: Triple.h:68
ogdf::steiner_tree::Triple::cost
void cost(T c)
Definition: Triple.h:70
ogdf::steiner_tree::Triple::win
void win(double w)
Definition: Triple.h:72
ogdf::steiner_tree::Triple::m_s0
node m_s0
Definition: Triple.h:75
ogdf::steiner_tree::Triple::m_win
double m_win
the win of the triple at some point of time (used as cache)
Definition: Triple.h:78
ogdf::steiner_tree::Triple::m_z
node m_z
center node of the triple
Definition: Triple.h:76
ogdf::steiner_tree::Triple::s0
node s0() const
Definition: Triple.h:50
ogdf::steiner_tree::Triple::cost
T cost() const
Definition: Triple.h:58
ogdf::steiner_tree::Triple::s0
void s0(node u)
Definition: Triple.h:62
ogdf::steiner_tree::Triple::m_s1
node m_s1
Definition: Triple.h:75
ogdf::steiner_tree::Triple::m_cost
T m_cost
edge costs of the triple in the original graph
Definition: Triple.h:77
ogdf::steiner_tree::Triple::z
node z() const
Definition: Triple.h:56
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233