Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ogdf::LayerBasedUPRLayout Class Reference

#include <ogdf/upward/LayerBasedUPRLayout.h>

+ Inheritance diagram for ogdf::LayerBasedUPRLayout:

Public Member Functions

 LayerBasedUPRLayout ()
 
 ~LayerBasedUPRLayout ()
 
int maxLayerSize ()
 Return the max. number of elements on a layer. Not implemented if use methode callSimple(..). More...
 
int numberOfCrossings () const
 
int numberOfLayers ()
 Return the number of layers/levels. Not implemented if use methode callSimple(..). More...
 
void setLayout (HierarchyLayoutModule *pLayout)
 
void setRanking (RankingModule *pRanking)
 
void UPRLayoutSimple (const UpwardPlanRep &UPR, GraphAttributes &AG)
 Use only the 3. phase of Sugiyama' framework for layout. More...
 
- Public Member Functions inherited from ogdf::UPRLayoutModule
 UPRLayoutModule ()
 Initializes a upward planarized representation layout module. More...
 
virtual ~UPRLayoutModule ()
 
void call (const UpwardPlanRep &UPR, GraphAttributes &AG)
 Computes a upward layout of UPR in AG. More...
 

Protected Member Functions

virtual void doCall (const UpwardPlanRep &UPR, GraphAttributes &AG) override
 Implements the actual algorithm call. More...
 

Protected Attributes

int m_crossings
 
std::unique_ptr< HierarchyLayoutModulem_layout
 
std::unique_ptr< RankingModulem_ranking
 

Private Member Functions

void computeRanking (const UpwardPlanRep &UPR, NodeArray< int > &rank)
 
void post_processing_CopyInterval (Hierarchy &H, HierarchyLevels &levels, int i, int beginIdx, int endIdx, int pos)
 insert the interval [beginIdx,endIdx] of level i-1 to level i at position pos. More...
 
void post_processing_deleteInterval (Hierarchy &H, HierarchyLevels &levels, int beginIdx, int endIdx, int &j)
 delete the interval [beginIdx,endIdx] on the level j. More...
 
void post_processing_deleteLvl (Hierarchy &H, HierarchyLevels &levels, int i)
 delete level i of H. More...
 
void post_processing_reduce (Hierarchy &H, HierarchyLevels &levels, int &i, node s, int minIdx, int maxIdx, NodeArray< bool > &markedNodes)
 
void postProcessing_markUp (HierarchyLevels &levels, node sH, NodeArray< bool > &markedNodes)
 mark all the nodes dominated by sH. (Help method for postProcessing_reduceLED() ) More...
 
void postProcessing_reduceLED (Hierarchy &H, HierarchyLevels &levels, const List< node > &sources)
 reduce the long edge dummies (LED) More...
 
void postProcessing_reduceLED (Hierarchy &H, HierarchyLevels &levels, node vH)
 
void postProcessing_sourceReorder (HierarchyLevels &levels, List< node > &sources)
 rearanging the position of the sources in order to reduce some crossings. More...
 
UPRLayoutSimple methods
void callSimple (GraphAttributes &AG, adjEntry adj)
 
void dfsSortLevels (adjEntry adj1, const NodeArray< int > &rank, Array< SListPure< node >> &nodes)
 
void longestPathRanking (const Graph &G, NodeArray< int > &rank)
 

Private Attributes

ArrayBuffer< nodem_dummies
 
int m_maxLevelSize
 
int m_numLevels
 

Additional Inherited Members

- Public Attributes inherited from ogdf::UPRLayoutModule
int numberOfLevels
 

Detailed Description

Definition at line 101 of file LayerBasedUPRLayout.h.

Constructor & Destructor Documentation

◆ LayerBasedUPRLayout()

ogdf::LayerBasedUPRLayout::LayerBasedUPRLayout ( )
inline

Definition at line 104 of file LayerBasedUPRLayout.h.

◆ ~LayerBasedUPRLayout()

ogdf::LayerBasedUPRLayout::~LayerBasedUPRLayout ( )
inline

Definition at line 119 of file LayerBasedUPRLayout.h.

Member Function Documentation

◆ callSimple()

void ogdf::LayerBasedUPRLayout::callSimple ( GraphAttributes AG,
adjEntry  adj 
)
private

◆ computeRanking()

void ogdf::LayerBasedUPRLayout::computeRanking ( const UpwardPlanRep UPR,
NodeArray< int > &  rank 
)
private

◆ dfsSortLevels()

void ogdf::LayerBasedUPRLayout::dfsSortLevels ( adjEntry  adj1,
const NodeArray< int > &  rank,
Array< SListPure< node >> &  nodes 
)
private

◆ doCall()

virtual void ogdf::LayerBasedUPRLayout::doCall ( const UpwardPlanRep UPR,
GraphAttributes AG 
)
overrideprotectedvirtual

Implements the actual algorithm call.

Must be implemented by derived classes.

Parameters
UPRis the upward planarized representation of the input graph. The original graph of UPR muss be the input graph.
AGhas to be assigned the hierarchy layout.

Implements ogdf::UPRLayoutModule.

◆ longestPathRanking()

void ogdf::LayerBasedUPRLayout::longestPathRanking ( const Graph G,
NodeArray< int > &  rank 
)
private

◆ maxLayerSize()

int ogdf::LayerBasedUPRLayout::maxLayerSize ( )
inline

Return the max. number of elements on a layer. Not implemented if use methode callSimple(..).

Definition at line 137 of file LayerBasedUPRLayout.h.

◆ numberOfCrossings()

int ogdf::LayerBasedUPRLayout::numberOfCrossings ( ) const
inline

Definition at line 123 of file LayerBasedUPRLayout.h.

◆ numberOfLayers()

int ogdf::LayerBasedUPRLayout::numberOfLayers ( )
inline

Return the number of layers/levels. Not implemented if use methode callSimple(..).

Definition at line 134 of file LayerBasedUPRLayout.h.

◆ post_processing_CopyInterval()

void ogdf::LayerBasedUPRLayout::post_processing_CopyInterval ( Hierarchy H,
HierarchyLevels levels,
int  i,
int  beginIdx,
int  endIdx,
int  pos 
)
private

insert the interval [beginIdx,endIdx] of level i-1 to level i at position pos.

◆ post_processing_deleteInterval()

void ogdf::LayerBasedUPRLayout::post_processing_deleteInterval ( Hierarchy H,
HierarchyLevels levels,
int  beginIdx,
int  endIdx,
int &  j 
)
private

delete the interval [beginIdx,endIdx] on the level j.

◆ post_processing_deleteLvl()

void ogdf::LayerBasedUPRLayout::post_processing_deleteLvl ( Hierarchy H,
HierarchyLevels levels,
int  i 
)
private

delete level i of H.

◆ post_processing_reduce()

void ogdf::LayerBasedUPRLayout::post_processing_reduce ( Hierarchy H,
HierarchyLevels levels,
int &  i,
node  s,
int  minIdx,
int  maxIdx,
NodeArray< bool > &  markedNodes 
)
private

◆ postProcessing_markUp()

void ogdf::LayerBasedUPRLayout::postProcessing_markUp ( HierarchyLevels levels,
node  sH,
NodeArray< bool > &  markedNodes 
)
private

mark all the nodes dominated by sH. (Help method for postProcessing_reduceLED() )

◆ postProcessing_reduceLED() [1/2]

void ogdf::LayerBasedUPRLayout::postProcessing_reduceLED ( Hierarchy H,
HierarchyLevels levels,
const List< node > &  sources 
)
inlineprivate

reduce the long edge dummies (LED)

Definition at line 162 of file LayerBasedUPRLayout.h.

◆ postProcessing_reduceLED() [2/2]

void ogdf::LayerBasedUPRLayout::postProcessing_reduceLED ( Hierarchy H,
HierarchyLevels levels,
node  vH 
)
private

◆ postProcessing_sourceReorder()

void ogdf::LayerBasedUPRLayout::postProcessing_sourceReorder ( HierarchyLevels levels,
List< node > &  sources 
)
private

rearanging the position of the sources in order to reduce some crossings.

◆ setLayout()

void ogdf::LayerBasedUPRLayout::setLayout ( HierarchyLayoutModule pLayout)
inline

Definition at line 126 of file LayerBasedUPRLayout.h.

◆ setRanking()

void ogdf::LayerBasedUPRLayout::setRanking ( RankingModule pRanking)
inline

Definition at line 128 of file LayerBasedUPRLayout.h.

◆ UPRLayoutSimple()

void ogdf::LayerBasedUPRLayout::UPRLayoutSimple ( const UpwardPlanRep UPR,
GraphAttributes AG 
)

Use only the 3. phase of Sugiyama' framework for layout.

Member Data Documentation

◆ m_crossings

int ogdf::LayerBasedUPRLayout::m_crossings
protected

Definition at line 146 of file LayerBasedUPRLayout.h.

◆ m_dummies

ArrayBuffer<node> ogdf::LayerBasedUPRLayout::m_dummies
private

Definition at line 190 of file LayerBasedUPRLayout.h.

◆ m_layout

std::unique_ptr<HierarchyLayoutModule> ogdf::LayerBasedUPRLayout::m_layout
protected

Definition at line 150 of file LayerBasedUPRLayout.h.

◆ m_maxLevelSize

int ogdf::LayerBasedUPRLayout::m_maxLevelSize
private

Definition at line 189 of file LayerBasedUPRLayout.h.

◆ m_numLevels

int ogdf::LayerBasedUPRLayout::m_numLevels
private

Definition at line 188 of file LayerBasedUPRLayout.h.

◆ m_ranking

std::unique_ptr<RankingModule> ogdf::LayerBasedUPRLayout::m_ranking
protected

Definition at line 148 of file LayerBasedUPRLayout.h.


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