Open
Graph Drawing
Framework

 v. 2022.02 (Dogwood)
 

ogdf::FastMultipoleMultilevelEmbedder Class Reference

The fast multipole multilevel embedder approach for force-directed multilevel layout. More...

#include <ogdf/energybased/FastMultipoleEmbedder.h>

+ Inheritance diagram for ogdf::FastMultipoleMultilevelEmbedder:

Public Member Functions

 FastMultipoleMultilevelEmbedder ()
 Constructor, just sets number of maximum threads. More...
 
void call (GraphAttributes &GA) override
 Calls the algorithm for graph GA and returns the layout information in GA. More...
 
void maxNumThreads (int numThreads)
 
void multilevelUntilNumNodesAreLess (int nodesBound)
 sets the bound for the number of nodes for multilevel step More...
 
- Public Member Functions inherited from ogdf::LayoutModule
 LayoutModule ()
 Initializes a layout module. More...
 
virtual ~LayoutModule ()
 
void operator() (GraphAttributes &GA)
 Computes a layout of graph GA. More...
 

Private Types

using GalaxyMultilevel = fast_multipole_embedder::GalaxyMultilevel
 
using GalaxyMultilevelBuilder = fast_multipole_embedder::GalaxyMultilevelBuilder
 

Private Member Functions

void assignPositionsFromPrevLevel ()
 assigns the nodes in the current level coords by coarser level More...
 
void computeAutoEdgeLength (const GraphAttributes &GA, EdgeArray< float > &edgeLength, float factor=1.0f)
 internal function to compute a good edgelength More...
 
void createMultiLevelGraphs (Graph *pGraph, GraphAttributes &GA, const EdgeArray< float > &edgeLength)
 creates all multilevels More...
 
void deleteMultiLevelGraphs ()
 clean up the multilevel graphs More...
 
void dumpCurrentLevel (const char *filename)
 for debugging only More...
 
void initCurrentLevel ()
 initialize datastructure by current level More...
 
void initFinestLevel (GraphAttributes &GA, const EdgeArray< float > &edgeLength)
 init the original graphs multilevel More...
 
void layoutCurrentLevel ()
 calls the fast multipole embedder on current level More...
 
void nextLevel ()
 refine More...
 
uint32_t numberOfIterationsByLevelNr (uint32_t levelNr)
 computes the maximum number of iterations by level nr More...
 
void run (GraphAttributes &GA, const EdgeArray< float > &edgeLength)
 internal main function for the multilevel layout More...
 
void writeCurrentToGraphAttributes (GraphAttributes &GA)
 writes the current level to graph attributes. used for output More...
 

Private Attributes

NodeArray< float > m_adjustedNodeSize
 
int m_iCurrentLevelNr
 
int m_iMaxNumThreads
 
int m_iNumLevels
 
int m_multiLevelNumNodesBound
 
GalaxyMultilevelm_pCoarsestLevel = nullptr
 
EdgeArray< float > * m_pCurrentEdgeLength = nullptr
 
Graphm_pCurrentGraph = nullptr
 
GalaxyMultilevelm_pCurrentLevel = nullptr
 
NodeArray< float > * m_pCurrentNodeSize = nullptr
 
NodeArray< float > * m_pCurrentNodeXPos = nullptr
 
NodeArray< float > * m_pCurrentNodeYPos = nullptr
 
GalaxyMultilevelm_pFinestLevel = nullptr
 
NodeArray< float > * m_pLastNodeXPos = nullptr
 
NodeArray< float > * m_pLastNodeYPos = nullptr
 

Detailed Description

The fast multipole multilevel embedder approach for force-directed multilevel layout.

Definition at line 143 of file FastMultipoleEmbedder.h.

Member Typedef Documentation

◆ GalaxyMultilevel

◆ GalaxyMultilevelBuilder

Constructor & Destructor Documentation

◆ FastMultipoleMultilevelEmbedder()

ogdf::FastMultipoleMultilevelEmbedder::FastMultipoleMultilevelEmbedder ( )
inline

Constructor, just sets number of maximum threads.

Definition at line 150 of file FastMultipoleEmbedder.h.

Member Function Documentation

◆ assignPositionsFromPrevLevel()

void ogdf::FastMultipoleMultilevelEmbedder::assignPositionsFromPrevLevel ( )
private

assigns the nodes in the current level coords by coarser level

◆ call()

void ogdf::FastMultipoleMultilevelEmbedder::call ( GraphAttributes GA)
overridevirtual

Calls the algorithm for graph GA and returns the layout information in GA.

Implements ogdf::LayoutModule.

◆ computeAutoEdgeLength()

void ogdf::FastMultipoleMultilevelEmbedder::computeAutoEdgeLength ( const GraphAttributes GA,
EdgeArray< float > &  edgeLength,
float  factor = 1.0f 
)
private

internal function to compute a good edgelength

◆ createMultiLevelGraphs()

void ogdf::FastMultipoleMultilevelEmbedder::createMultiLevelGraphs ( Graph pGraph,
GraphAttributes GA,
const EdgeArray< float > &  edgeLength 
)
private

creates all multilevels

◆ deleteMultiLevelGraphs()

void ogdf::FastMultipoleMultilevelEmbedder::deleteMultiLevelGraphs ( )
private

clean up the multilevel graphs

◆ dumpCurrentLevel()

void ogdf::FastMultipoleMultilevelEmbedder::dumpCurrentLevel ( const char *  filename)
private

for debugging only

◆ initCurrentLevel()

void ogdf::FastMultipoleMultilevelEmbedder::initCurrentLevel ( )
private

initialize datastructure by current level

◆ initFinestLevel()

void ogdf::FastMultipoleMultilevelEmbedder::initFinestLevel ( GraphAttributes GA,
const EdgeArray< float > &  edgeLength 
)
private

init the original graphs multilevel

◆ layoutCurrentLevel()

void ogdf::FastMultipoleMultilevelEmbedder::layoutCurrentLevel ( )
private

calls the fast multipole embedder on current level

◆ maxNumThreads()

void ogdf::FastMultipoleMultilevelEmbedder::maxNumThreads ( int  numThreads)
inline

Definition at line 162 of file FastMultipoleEmbedder.h.

◆ multilevelUntilNumNodesAreLess()

void ogdf::FastMultipoleMultilevelEmbedder::multilevelUntilNumNodesAreLess ( int  nodesBound)
inline

sets the bound for the number of nodes for multilevel step

Definition at line 160 of file FastMultipoleEmbedder.h.

◆ nextLevel()

void ogdf::FastMultipoleMultilevelEmbedder::nextLevel ( )
private

refine

◆ numberOfIterationsByLevelNr()

uint32_t ogdf::FastMultipoleMultilevelEmbedder::numberOfIterationsByLevelNr ( uint32_t  levelNr)
private

computes the maximum number of iterations by level nr

◆ run()

void ogdf::FastMultipoleMultilevelEmbedder::run ( GraphAttributes GA,
const EdgeArray< float > &  edgeLength 
)
private

internal main function for the multilevel layout

◆ writeCurrentToGraphAttributes()

void ogdf::FastMultipoleMultilevelEmbedder::writeCurrentToGraphAttributes ( GraphAttributes GA)
private

writes the current level to graph attributes. used for output

Member Data Documentation

◆ m_adjustedNodeSize

NodeArray<float> ogdf::FastMultipoleMultilevelEmbedder::m_adjustedNodeSize
private

Definition at line 213 of file FastMultipoleEmbedder.h.

◆ m_iCurrentLevelNr

int ogdf::FastMultipoleMultilevelEmbedder::m_iCurrentLevelNr
private

Definition at line 214 of file FastMultipoleEmbedder.h.

◆ m_iMaxNumThreads

int ogdf::FastMultipoleMultilevelEmbedder::m_iMaxNumThreads
private

Definition at line 200 of file FastMultipoleEmbedder.h.

◆ m_iNumLevels

int ogdf::FastMultipoleMultilevelEmbedder::m_iNumLevels
private

Definition at line 201 of file FastMultipoleEmbedder.h.

◆ m_multiLevelNumNodesBound

int ogdf::FastMultipoleMultilevelEmbedder::m_multiLevelNumNodesBound
private

Definition at line 202 of file FastMultipoleEmbedder.h.

◆ m_pCoarsestLevel

GalaxyMultilevel* ogdf::FastMultipoleMultilevelEmbedder::m_pCoarsestLevel = nullptr
private

Definition at line 206 of file FastMultipoleEmbedder.h.

◆ m_pCurrentEdgeLength

EdgeArray<float>* ogdf::FastMultipoleMultilevelEmbedder::m_pCurrentEdgeLength = nullptr
private

Definition at line 211 of file FastMultipoleEmbedder.h.

◆ m_pCurrentGraph

Graph* ogdf::FastMultipoleMultilevelEmbedder::m_pCurrentGraph = nullptr
private

Definition at line 208 of file FastMultipoleEmbedder.h.

◆ m_pCurrentLevel

GalaxyMultilevel* ogdf::FastMultipoleMultilevelEmbedder::m_pCurrentLevel = nullptr
private

Definition at line 204 of file FastMultipoleEmbedder.h.

◆ m_pCurrentNodeSize

NodeArray<float>* ogdf::FastMultipoleMultilevelEmbedder::m_pCurrentNodeSize = nullptr
private

Definition at line 212 of file FastMultipoleEmbedder.h.

◆ m_pCurrentNodeXPos

NodeArray<float>* ogdf::FastMultipoleMultilevelEmbedder::m_pCurrentNodeXPos = nullptr
private

Definition at line 209 of file FastMultipoleEmbedder.h.

◆ m_pCurrentNodeYPos

NodeArray<float>* ogdf::FastMultipoleMultilevelEmbedder::m_pCurrentNodeYPos = nullptr
private

Definition at line 210 of file FastMultipoleEmbedder.h.

◆ m_pFinestLevel

GalaxyMultilevel* ogdf::FastMultipoleMultilevelEmbedder::m_pFinestLevel = nullptr
private

Definition at line 205 of file FastMultipoleEmbedder.h.

◆ m_pLastNodeXPos

NodeArray<float>* ogdf::FastMultipoleMultilevelEmbedder::m_pLastNodeXPos = nullptr
private

Definition at line 216 of file FastMultipoleEmbedder.h.

◆ m_pLastNodeYPos

NodeArray<float>* ogdf::FastMultipoleMultilevelEmbedder::m_pLastNodeYPos = nullptr
private

Definition at line 217 of file FastMultipoleEmbedder.h.


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