Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
PlanarSPQRTree.h
Go to the documentation of this file.
1
32#pragma once
33
35
36namespace ogdf {
37
39
52class OGDF_EXPORT PlanarSPQRTree : public virtual SPQRTree {
53public:
54 //
55 // a) Access operations
56 //
57
59 double numberOfEmbeddings() const { return numberOfEmbeddings(rootNode()); }
60
62
65 double numberOfEmbeddings(node v) const;
66
68
72 long long numberOfNodeEmbeddings(node vT) const;
73
74 //
75 // b) Update operations
76 //
77
79
84
86
91
93
98
100
103 void embed(Graph& G);
104
107
109
113 randomEmbed();
114 embed(G);
115 }
116
118
122
124
130
132
136 void embed(node& vT, long long x);
137
138
139protected:
141 void init(bool isEmbedded);
145
146 // Embeda original graph according to embeddings of skeletons.
149
150 // Enumeration of all embeddings
152 void reverse(node& nP, adjEntry& first, adjEntry& last);
155
157};
158
159}
Declaration of class SPQRTree.
Class for adjacency list elements.
Definition Graph_d.h:79
Class for the representation of edges.
Definition Graph_d.h:300
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:521
Encapsulates a pointer to a list element.
Definition List.h:103
Dynamic arrays indexed with nodes.
Definition NodeArray.h:125
Class for the representation of nodes.
Definition Graph_d.h:177
SPQR-trees of planar graphs.
void createInnerVerticesEmbed(Graph &G, node vT)
void setPosInEmbedding(NodeArray< SListPure< adjEntry > > &adjEdges, NodeArray< node > &currentCopy, NodeArray< adjEntry > &lastAdj, SListPure< node > &current, const Skeleton &S, adjEntry adj)
void embed(Graph &G)
Embeds G according to the current embeddings of the skeletons of T.
bool nextEmbedding(Graph &G)
Embeds the original graph G with the next embedding.
bool nextEmbedding(node &vT)
void reverse(node vT)
Flips the skeleton S of vT around its poles.
void randomEmbed(Graph &G)
Embeds all skeleton graphs randomly and embeds G according to the embeddings of the skeletons.
double numberOfEmbeddings(node v) const
Returns the number of possible embeddings of the pertinent graph of node v.
void reverse(node &nP, adjEntry &first, adjEntry &last)
void swap(node vT, adjEntry adj1, adjEntry adj2)
Exchanges the positions of the two edges corresponding to adj1 and adj2 in skeleton of vT.
long long numberOfNodeEmbeddings(node vT) const
Returns the number of possible embeddings of the skeleton of node vT.
bool nextEmbedding(ListIterator< node > it)
void firstEmbedding(node &vT)
void firstEmbedding(Graph &G)
Embeds the original graph G canonically by the indices of their adjEntries.
void randomEmbed()
Embeds all skeleton graphs randomly.
void swap(node vT, edge e1, edge e2)
Exchanges the positions of edges e1 and e2 in skeleton of vT.
double numberOfEmbeddings() const
Returns the number of possible embeddings of G.
void expandVirtualEmbed(node vT, adjEntry adjVirt, SListPure< adjEntry > &adjEdges)
void embed(node &vT, long long x)
Embeds the skeleton of the node vT with the specific embedding numbered by x.
void init(bool isEmbedded)
Initialization (adaption of embeding).
Singly linked lists.
Definition SList.h:179
Linear-time implementation of static SPQR-trees.
Definition SPQRTree.h:70
Skeleton graphs of nodes in an SPQR-tree.
Definition Skeleton.h:59
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition config.h:101
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.