Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
ogdf::ClusterPlanarizationLayout Class Reference

The cluster planarization layout algorithm. More...

#include <ogdf/cluster/ClusterPlanarizationLayout.h>

Classes

struct  ClusterPosition
 

Public Member Functions

 ClusterPlanarizationLayout ()
 Creates an instance of cluster planarization layout.
 
virtual ~ClusterPlanarizationLayout ()
 Destruction.
 
virtual void call (Graph &G, ClusterGraphAttributes &acGraph, ClusterGraph &cGraph, bool simpleCConnect=true)
 Calls cluster planarization layout with cluster-graph attributes acGraph.
 
virtual void call (Graph &G, ClusterGraphAttributes &acGraph, ClusterGraph &cGraph, EdgeArray< double > &edgeWeight, bool simpleCConnect=true)
 Calls cluster planarization layout with cluster-graph attributes acGraph.
 
double pageRatio () const
 Returns the current page ratio (= desired width / height of layout).
 
void pageRatio (double ratio)
 Sets the page ratio to ratio.
 
void setPacker (CCLayoutPackModule *pPacker)
 Sets the module option for the arrangement of connected components to pPacker.
 
void setPlanarLayouter (LayoutClusterPlanRepModule *pPlanarLayouter)
 Sets the module option for the planar layout algorithm to pPlanarLayouter.
 

Protected Member Functions

void computeClusterPositions (ClusterPlanRep &CP, Layout drawing, HashArray< int, ClusterPosition > &CA)
 

Private Attributes

int m_nCrossings
 The number of crossings (not yet used!).
 
std::unique_ptr< CCLayoutPackModulem_packer
 The packing algorithm.
 
double m_pageRatio
 The page ratio.
 
std::unique_ptr< LayoutClusterPlanRepModulem_planarLayouter
 The planar layouter.
 

Detailed Description

The cluster planarization layout algorithm.

The class ClusterPlanarizationLayout implements the planarization approach for drawing clustered graphs. Its implementation is based on the following publication:

Giuseppe Di Battista, Walter Didimo, A. Marcandalli: Planarization of Clustered Graphs. LNCS 2265 (Proc. Graph Drawing 2001), pp. 60-74.

Optional parameters

OptionTypeDefaultDescription
pageRatiodouble1.0 Specifies the desired ration of width / height of the computed layout. It is currently only used when packing connected components.

Module options

The algorithm provides the following module options:

OptionTypeDefaultDescription
planarLayouterLayoutClusterPlanRepModuleClusterOrthoLayout The c-planar layout algorithm used to compute a c-planar layout of the c-planarized representation resulting from the crossing minimization step.
packerCCLayoutPackModuleTileToRowsCCPacker The packer module used for arranging connected components.

Definition at line 81 of file ClusterPlanarizationLayout.h.

Constructor & Destructor Documentation

◆ ClusterPlanarizationLayout()

ogdf::ClusterPlanarizationLayout::ClusterPlanarizationLayout ( )

Creates an instance of cluster planarization layout.

◆ ~ClusterPlanarizationLayout()

virtual ogdf::ClusterPlanarizationLayout::~ClusterPlanarizationLayout ( )
inlinevirtual

Destruction.

Definition at line 87 of file ClusterPlanarizationLayout.h.

Member Function Documentation

◆ call() [1/2]

virtual void ogdf::ClusterPlanarizationLayout::call ( Graph G,
ClusterGraphAttributes acGraph,
ClusterGraph cGraph,
bool  simpleCConnect = true 
)
virtual

Calls cluster planarization layout with cluster-graph attributes acGraph.

Parameters
Gis the input graph.
acGraphis assigned the computed layout.
cGraphis the input cluster graph.
simpleCConnectIf set to true, c-connectivity is achieved by adding arbitrary edges (fast).

◆ call() [2/2]

virtual void ogdf::ClusterPlanarizationLayout::call ( Graph G,
ClusterGraphAttributes acGraph,
ClusterGraph cGraph,
EdgeArray< double > &  edgeWeight,
bool  simpleCConnect = true 
)
virtual

Calls cluster planarization layout with cluster-graph attributes acGraph.

Parameters
Gis the input graph.
acGraphis assigned the computed layout.
cGraphis the input cluster graph.
edgeWeightallows to prefer lightweight edges for planar subgraph computation.
simpleCConnectIf set to true, c-connectivity is achieved by adding arbitrary edges (fast).

◆ computeClusterPositions()

void ogdf::ClusterPlanarizationLayout::computeClusterPositions ( ClusterPlanRep CP,
Layout  drawing,
HashArray< int, ClusterPosition > &  CA 
)
protected

◆ pageRatio() [1/2]

double ogdf::ClusterPlanarizationLayout::pageRatio ( ) const
inline

Returns the current page ratio (= desired width / height of layout).

Definition at line 110 of file ClusterPlanarizationLayout.h.

◆ pageRatio() [2/2]

void ogdf::ClusterPlanarizationLayout::pageRatio ( double  ratio)
inline

Sets the page ratio to ratio.

Definition at line 113 of file ClusterPlanarizationLayout.h.

◆ setPacker()

void ogdf::ClusterPlanarizationLayout::setPacker ( CCLayoutPackModule pPacker)
inline

Sets the module option for the arrangement of connected components to pPacker.

Definition at line 121 of file ClusterPlanarizationLayout.h.

◆ setPlanarLayouter()

void ogdf::ClusterPlanarizationLayout::setPlanarLayouter ( LayoutClusterPlanRepModule pPlanarLayouter)
inline

Sets the module option for the planar layout algorithm to pPlanarLayouter.

Definition at line 116 of file ClusterPlanarizationLayout.h.

Member Data Documentation

◆ m_nCrossings

int ogdf::ClusterPlanarizationLayout::m_nCrossings
private

The number of crossings (not yet used!).

Definition at line 146 of file ClusterPlanarizationLayout.h.

◆ m_packer

std::unique_ptr<CCLayoutPackModule> ogdf::ClusterPlanarizationLayout::m_packer
private

The packing algorithm.

Definition at line 142 of file ClusterPlanarizationLayout.h.

◆ m_pageRatio

double ogdf::ClusterPlanarizationLayout::m_pageRatio
private

The page ratio.

Definition at line 144 of file ClusterPlanarizationLayout.h.

◆ m_planarLayouter

std::unique_ptr<LayoutClusterPlanRepModule> ogdf::ClusterPlanarizationLayout::m_planarLayouter
private

The planar layouter.

Definition at line 141 of file ClusterPlanarizationLayout.h.


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