Edge insertion algorithm for clustered graphs. More...
#include <ogdf/cluster/CPlanarEdgeInserter.h>
Public Member Functions | |
CPlanarEdgeInserter () | |
virtual | ~CPlanarEdgeInserter () |
void | call (ClusterPlanRep &CPR, CombinatorialEmbedding &E, const Graph &G, const List< edge > &origEdges) |
PostProcessType | getPostProcessing () |
void | setPostProcessing (PostProcessType p) |
Protected Member Functions | |
void | constructDualGraph (ClusterPlanRep &CPR, CombinatorialEmbedding &E, EdgeArray< edge > &arcRightToLeft, EdgeArray< edge > &arcLeftToRight, FaceArray< node > &nodeOfFace, EdgeArray< edge > &arcTwin) |
void | findShortestPath (const CombinatorialEmbedding &E, node s, node t, node sDummy, node tDummy, SList< adjEntry > &crossed, FaceArray< node > &nodeOfFace) |
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 | postProcess () |
Use heuristics to improve the result if possible. | |
void | setArcStatus (edge eArc, node oSrc, node oTgt, const ClusterGraph &CG, NodeArray< cluster > &clusterOfFaceNode, EdgeArray< edge > &arcTwin) |
Private Types | |
enum class | PostProcessType { None , RemoveReinsert } |
Postprocessing options. More... | |
Private Member Functions | |
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 | writeDual (const char *fileName) |
void | writeGML (std::ostream &os, const Layout &drawing) |
Private Attributes | |
EdgeArray< adjEntry > | m_arcOrig |
Original edges adj entry. | |
Graph | m_dualGraph |
EdgeArray< int > | m_eStatus |
Status of dual graph arcs. | |
const Graph * | m_originalGraph = nullptr |
PostProcessType | m_ppType = PostProcessType::None |
Defines which kind of postprocessing to use. | |
Edge insertion algorithm for clustered graphs.
Definition at line 47 of file CPlanarEdgeInserter.h.
|
strongprivate |
Postprocessing options.
Enumerator | |
---|---|
None | |
RemoveReinsert |
Definition at line 49 of file CPlanarEdgeInserter.h.
|
inline |
Definition at line 52 of file CPlanarEdgeInserter.h.
|
inlinevirtual |
Definition at line 54 of file CPlanarEdgeInserter.h.
void ogdf::CPlanarEdgeInserter::call | ( | ClusterPlanRep & | CPR, |
CombinatorialEmbedding & | E, | ||
const Graph & | G, | ||
const List< edge > & | origEdges | ||
) |
|
protected |
|
private |
Compute for every face the cluster that surrounds it.
|
protected |
|
inline |
Definition at line 61 of file CPlanarEdgeInserter.h.
|
protected |
|
protected |
Use heuristics to improve the result if possible.
|
protected |
|
inline |
Definition at line 59 of file CPlanarEdgeInserter.h.
Original edges adj entry.
Definition at line 92 of file CPlanarEdgeInserter.h.
|
private |
Definition at line 90 of file CPlanarEdgeInserter.h.
Status of dual graph arcs.
Definition at line 91 of file CPlanarEdgeInserter.h.
Definition at line 89 of file CPlanarEdgeInserter.h.
|
private |
Defines which kind of postprocessing to use.
Definition at line 93 of file CPlanarEdgeInserter.h.