Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Cycle.h
Go to the documentation of this file.
1 
32 #pragma once
33 
34 #include <ogdf/basic/Graph.h>
35 #include <ogdf/basic/basic.h>
36 
37 #include <tuple>
38 #include <unordered_set>
39 #include <vector>
40 
41 namespace ogdf {
42 namespace matching_blossom {
43 
45 private:
46  std::unordered_set<node> m_nodes;
47 
48  std::vector<edge> m_edgeOrder;
49 
52  std::vector<long> indexOf(std::vector<node> nodesToFind);
53 
54 public:
55  Cycle(edge startEdge);
56 
57  /* Getters */
58 
59  const std::vector<edge>& edgeOrder();
60 
61  const std::unordered_set<node>& nodes();
62 
63  /* End of getters */
64 
66  void addEdge(edge e);
67 
69  node startNode();
70 
73  std::tuple<long, long> indexOf(node u, node v);
74 
77  long indexOf(node u);
78 
80  bool contains(node v);
81 };
82 
83 }
84 }
ogdf::matching_blossom::Cycle::m_edgeOrder
std::vector< edge > m_edgeOrder
Definition: Cycle.h:48
ogdf
The namespace for all OGDF objects.
Definition: multilevelmixer.cpp:39
Graph.h
Includes declaration of graph class.
ogdf::matching_blossom::Cycle
Definition: Cycle.h:44
basic.h
Basic declarations, included by all source files.
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::matching_blossom::Cycle::m_nodes
std::unordered_set< node > m_nodes
Definition: Cycle.h:46
ogdf::EdgeElement
Class for the representation of edges.
Definition: Graph_d.h:363
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:240