Loading [MathJax]/extensions/tex2jax.js

Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
CPlanarEdgeInserter.h
Go to the documentation of this file.
1
37#pragma once
38
40
41namespace ogdf {
42
44
49 enum class PostProcessType { None, RemoveReinsert };
50
51public:
53
55
57 const List<edge>& origEdges);
58
59 void setPostProcessing(PostProcessType p) { m_ppType = p; }
60
61 PostProcessType getPostProcessing() { return m_ppType; }
62
63protected:
67 //NodeArray<face>& faceOfNode,
69
71 node s, //edge startpoint
72 node t, //edge endpoint
73 node sDummy, //representing s in network
74 node tDummy, //representing t in network
76
81
84
87
88private:
89 const Graph* m_originalGraph = nullptr;
93 PostProcessType m_ppType = PostProcessType::None;
94
98
99
100 //debug
101 void writeDual(const char* fileName);
102 void writeGML(std::ostream& os, const Layout& drawing);
103};
104
105}
Declaration of ClusterPlanRep class, allowing cluster boundary insertion and shortest path edge inser...
Edge insertion algorithm for clustered graphs.
PostProcessType getPostProcessing()
void writeGML(std::ostream &os, const Layout &drawing)
EdgeArray< int > m_eStatus
Status of dual graph arcs.
EdgeArray< adjEntry > m_arcOrig
Original edges adj entry.
PostProcessType
Postprocessing options.
void setArcStatus(edge eArc, node oSrc, node oTgt, const ClusterGraph &CG, NodeArray< cluster > &clusterOfFaceNode, EdgeArray< edge > &arcTwin)
void setPostProcessing(PostProcessType p)
void constructDualGraph(ClusterPlanRep &CPR, CombinatorialEmbedding &E, EdgeArray< edge > &arcRightToLeft, EdgeArray< edge > &arcLeftToRight, FaceArray< node > &nodeOfFace, EdgeArray< edge > &arcTwin)
void writeDual(const char *fileName)
void deriveFaceCluster(ClusterPlanRep &CPR, CombinatorialEmbedding &E, const ClusterGraph &CG, FaceArray< node > &nodeOfFace, NodeArray< cluster > &clusterOfFaceNode)
Compute for every face the cluster that surrounds it.
void findShortestPath(const CombinatorialEmbedding &E, node s, node t, node sDummy, node tDummy, SList< adjEntry > &crossed, FaceArray< node > &nodeOfFace)
void postProcess()
Use heuristics to improve the result if possible.
void insertEdge(ClusterPlanRep &CPR, CombinatorialEmbedding &E, edge insertMe, FaceArray< node > &nodeOfFace, EdgeArray< edge > &arcRightToLeft, EdgeArray< edge > &arcLeftToRight, EdgeArray< edge > &arcTwin, NodeArray< cluster > &clusterOfFaceNode, const SList< adjEntry > &crossed)
void call(ClusterPlanRep &CPR, CombinatorialEmbedding &E, const Graph &G, const List< edge > &origEdges)
Representation of clustered graphs.
Planarized representations for clustered graphs.
Combinatorial embeddings of planar graphs with modification functionality.
Dynamic arrays indexed with edges.
Definition EdgeArray.h:125
Class for the representation of edges.
Definition Graph_d.h:300
Dynamic arrays indexed with faces of a combinatorial embedding.
Definition FaceArray.h:126
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:521
Stores a layout of a graph (coordinates of nodes, bend points of edges).
Definition Layout.h:46
Doubly linked lists (maintaining the length of the list).
Definition List.h:1435
Dynamic arrays indexed with nodes.
Definition NodeArray.h:125
Class for the representation of nodes.
Definition Graph_d.h:177
Singly linked lists (maintaining the length of the list).
Definition SList.h:833
#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.
@ None
Two geometric objects do not intersect.