Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00043 #ifdef _MSC_VER
00044 #pragma once
00045 #endif
00046
00047
00048 #ifndef OGDF_PLANAR_SPQR_TREE_H
00049 #define OGDF_PLANAR_SPQR_TREE_H
00050
00051
00052 #include <ogdf/decomposition/SPQRTree.h>
00053
00054
00055 namespace ogdf {
00056
00057
00058
00059
00060
00061
00063
00075 class OGDF_EXPORT PlanarSPQRTree : public virtual SPQRTree
00076 {
00077 public:
00078
00079
00080
00081
00082
00084 double numberOfEmbeddings() const {
00085 return numberOfEmbeddings(rootNode());
00086 }
00087
00089
00092 double numberOfEmbeddings(node v) const;
00093
00094
00095
00096
00097
00098
00100
00104 void reverse(node vT);
00105
00107
00111 void swap(node vT, edge e1, edge e2);
00112
00114
00118 void swap(node vT, adjEntry adj1, adjEntry adj2);
00119
00121
00124 void embed(Graph &G);
00125
00127 void randomEmbed();
00128
00130
00133 void randomEmbed(Graph &G) {
00134 randomEmbed();
00135 embed(G);
00136 }
00137
00138
00139 protected:
00141 void init(bool isEmbedded);
00142 void adoptEmbedding();
00143 void setPosInEmbedding(
00144 NodeArray<SListPure<adjEntry> > &adjEdges,
00145 NodeArray<node> ¤tCopy,
00146 NodeArray<adjEntry> &lastAdj,
00147 SListPure<node> ¤t,
00148 const Skeleton &S,
00149 adjEntry adj);
00150
00151
00152 void expandVirtualEmbed(node vT,
00153 adjEntry adjVirt,
00154 SListPure<adjEntry> &adjEdges);
00155 void createInnerVerticesEmbed(Graph &G, node vT);
00156
00157 };
00158
00159
00160 }
00161
00162
00163 #endif