Open
Graph Drawing
Framework

 v. 2022.02 (Dogwood)
 

ogdf::CPlanarEdgeInserter Class Reference

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. More...
 
void setArcStatus (edge eArc, node oSrc, node oTgt, const ClusterGraph &CG, NodeArray< cluster > &clusterOfFaceNode, EdgeArray< edge > &arcTwin)
 

Private Types

enum  PostProcessType { PostProcessType::None, PostProcessType::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. More...
 
void writeDual (const char *fileName)
 
void writeGML (std::ostream &os, const Layout &drawing)
 

Private Attributes

EdgeArray< adjEntrym_arcOrig
 Original edges adj entry. More...
 
Graph m_dualGraph
 
EdgeArray< int > m_eStatus
 Status of dual graph arcs. More...
 
const Graphm_originalGraph = nullptr
 
PostProcessType m_ppType = PostProcessType::None
 Defines which kind of postprocessing to use. More...
 

Detailed Description

Edge insertion algorithm for clustered graphs.

Definition at line 47 of file CPlanarEdgeInserter.h.

Member Enumeration Documentation

◆ PostProcessType

Postprocessing options.

Enumerator
None 
RemoveReinsert 

Definition at line 50 of file CPlanarEdgeInserter.h.

Constructor & Destructor Documentation

◆ CPlanarEdgeInserter()

ogdf::CPlanarEdgeInserter::CPlanarEdgeInserter ( )
inline

Definition at line 54 of file CPlanarEdgeInserter.h.

◆ ~CPlanarEdgeInserter()

virtual ogdf::CPlanarEdgeInserter::~CPlanarEdgeInserter ( )
inlinevirtual

Definition at line 56 of file CPlanarEdgeInserter.h.

Member Function Documentation

◆ call()

void ogdf::CPlanarEdgeInserter::call ( ClusterPlanRep CPR,
CombinatorialEmbedding E,
const Graph G,
const List< edge > &  origEdges 
)

◆ constructDualGraph()

void ogdf::CPlanarEdgeInserter::constructDualGraph ( ClusterPlanRep CPR,
CombinatorialEmbedding E,
EdgeArray< edge > &  arcRightToLeft,
EdgeArray< edge > &  arcLeftToRight,
FaceArray< node > &  nodeOfFace,
EdgeArray< edge > &  arcTwin 
)
protected

◆ deriveFaceCluster()

void ogdf::CPlanarEdgeInserter::deriveFaceCluster ( ClusterPlanRep CPR,
CombinatorialEmbedding E,
const ClusterGraph CG,
FaceArray< node > &  nodeOfFace,
NodeArray< cluster > &  clusterOfFaceNode 
)
private

Compute for every face the cluster that surrounds it.

◆ findShortestPath()

void ogdf::CPlanarEdgeInserter::findShortestPath ( const CombinatorialEmbedding E,
node  s,
node  t,
node  sDummy,
node  tDummy,
SList< adjEntry > &  crossed,
FaceArray< node > &  nodeOfFace 
)
protected

◆ getPostProcessing()

PostProcessType ogdf::CPlanarEdgeInserter::getPostProcessing ( )
inline

Definition at line 69 of file CPlanarEdgeInserter.h.

◆ insertEdge()

void ogdf::CPlanarEdgeInserter::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 
)
protected

◆ postProcess()

void ogdf::CPlanarEdgeInserter::postProcess ( )
protected

Use heuristics to improve the result if possible.

◆ setArcStatus()

void ogdf::CPlanarEdgeInserter::setArcStatus ( edge  eArc,
node  oSrc,
node  oTgt,
const ClusterGraph CG,
NodeArray< cluster > &  clusterOfFaceNode,
EdgeArray< edge > &  arcTwin 
)
protected

◆ setPostProcessing()

void ogdf::CPlanarEdgeInserter::setPostProcessing ( PostProcessType  p)
inline

Definition at line 64 of file CPlanarEdgeInserter.h.

◆ writeDual()

void ogdf::CPlanarEdgeInserter::writeDual ( const char *  fileName)
private

◆ writeGML()

void ogdf::CPlanarEdgeInserter::writeGML ( std::ostream &  os,
const Layout drawing 
)
private

Member Data Documentation

◆ m_arcOrig

EdgeArray<adjEntry> ogdf::CPlanarEdgeInserter::m_arcOrig
private

Original edges adj entry.

Definition at line 118 of file CPlanarEdgeInserter.h.

◆ m_dualGraph

Graph ogdf::CPlanarEdgeInserter::m_dualGraph
private

Definition at line 116 of file CPlanarEdgeInserter.h.

◆ m_eStatus

EdgeArray<int> ogdf::CPlanarEdgeInserter::m_eStatus
private

Status of dual graph arcs.

Definition at line 117 of file CPlanarEdgeInserter.h.

◆ m_originalGraph

const Graph* ogdf::CPlanarEdgeInserter::m_originalGraph = nullptr
private

Definition at line 115 of file CPlanarEdgeInserter.h.

◆ m_ppType

PostProcessType ogdf::CPlanarEdgeInserter::m_ppType = PostProcessType::None
private

Defines which kind of postprocessing to use.

Definition at line 119 of file CPlanarEdgeInserter.h.


The documentation for this class was generated from the following file: