Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

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.