Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

EdgeChain.h
Go to the documentation of this file.
1 
33 #pragma once
34 
35 #include <ogdf/basic/basic.h>
36 
37 #include <cstdint>
38 #include <functional>
39 
40 namespace ogdf {
41 namespace fast_multipole_embedder {
42 
44 class NodeAdjInfo {
45 public:
46  uint32_t degree;
47  uint32_t firstEntry;
48  uint32_t lastEntry;
49  uint32_t unused;
50 };
51 
53 class EdgeAdjInfo {
54 public:
55  uint32_t a;
56  uint32_t b;
57  uint32_t a_next;
58  uint32_t b_next;
59 
61  inline uint32_t twinNode(uint32_t index) const {
62  OGDF_ASSERT(a == index || b == index);
63  return a == index ? b : a;
64  }
65 
67  inline uint32_t nextEdgeAdjIndex(uint32_t index) const {
68  OGDF_ASSERT(a == index || b == index);
69  return a == index ? a_next : b_next;
70  }
71 };
72 
74 void pushBackEdge(uint32_t a, uint32_t b, std::function<EdgeAdjInfo&(uint32_t)> edgeInform,
75  std::function<NodeAdjInfo&(uint32_t)> nodeInform, int e_index);
76 
77 }
78 }
ogdf
The namespace for all OGDF objects.
Definition: multilevelmixer.cpp:39
ogdf::fast_multipole_embedder::EdgeAdjInfo::nextEdgeAdjIndex
uint32_t nextEdgeAdjIndex(uint32_t index) const
Returns the index of the next pair of index.
Definition: EdgeChain.h:67
ogdf::fast_multipole_embedder::EdgeAdjInfo::twinNode
uint32_t twinNode(uint32_t index) const
Returns the other node (not index).
Definition: EdgeChain.h:61
OGDF_ASSERT
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
Definition: basic.h:66
ogdf::fast_multipole_embedder::EdgeAdjInfo::b_next
uint32_t b_next
Next pair in the chain of the second node.
Definition: EdgeChain.h:58
ogdf::fast_multipole_embedder::NodeAdjInfo
Information about incident edges (16 bytes).
Definition: EdgeChain.h:44
ogdf::fast_multipole_embedder::EdgeAdjInfo::a
uint32_t a
First node of the pair.
Definition: EdgeChain.h:55
ogdf::fast_multipole_embedder::NodeAdjInfo::firstEntry
uint32_t firstEntry
The first pair in the edges chain.
Definition: EdgeChain.h:47
ogdf::fast_multipole_embedder::EdgeAdjInfo::a_next
uint32_t a_next
Next pair in the chain of the first node.
Definition: EdgeChain.h:57
ogdf::fast_multipole_embedder::pushBackEdge
void pushBackEdge(uint32_t a, uint32_t b, std::function< EdgeAdjInfo &(uint32_t)> edgeInform, std::function< NodeAdjInfo &(uint32_t)> nodeInform, int e_index)
Helper method used by ArrayGraph and WSPD.
ogdf::fast_multipole_embedder::NodeAdjInfo::lastEntry
uint32_t lastEntry
The last pair in the edges chain.
Definition: EdgeChain.h:48
ogdf::fast_multipole_embedder::NodeAdjInfo::degree
uint32_t degree
Total count of pairs where is either the first or second node.
Definition: EdgeChain.h:46
basic.h
Basic declarations, included by all source files.
ogdf::fast_multipole_embedder::EdgeAdjInfo
Information about an edge (16 bytes).
Definition: EdgeChain.h:53
ogdf::fast_multipole_embedder::NodeAdjInfo::unused
uint32_t unused
Not used yet.
Definition: EdgeChain.h:49
ogdf::fast_multipole_embedder::EdgeAdjInfo::b
uint32_t b
Second node of the pair.
Definition: EdgeChain.h:56