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.