Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
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.
 
void call (GraphAttributes &GA) override
 Calls the algorithm for graph GA and returns the layout information in GA.
 
void maxNumThreads (int numThreads)
 
void multilevelUntilNumNodesAreLess (int nodesBound)
 sets the bound for the number of nodes for multilevel step
 
- Public Member Functions inherited from ogdf::LayoutModule
 LayoutModule ()
 Initializes a layout module.
 
virtual ~LayoutModule ()
 
void operator() (GraphAttributes &GA)
 Computes a layout of graph GA.
 

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

Private Attributes

NodeArray< floatm_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 138 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 144 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 153 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 151 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 207 of file FastMultipoleEmbedder.h.

◆ m_iCurrentLevelNr

int ogdf::FastMultipoleMultilevelEmbedder::m_iCurrentLevelNr
private

Definition at line 208 of file FastMultipoleEmbedder.h.

◆ m_iMaxNumThreads

int ogdf::FastMultipoleMultilevelEmbedder::m_iMaxNumThreads
private

Definition at line 194 of file FastMultipoleEmbedder.h.

◆ m_iNumLevels

int ogdf::FastMultipoleMultilevelEmbedder::m_iNumLevels
private

Definition at line 195 of file FastMultipoleEmbedder.h.

◆ m_multiLevelNumNodesBound

int ogdf::FastMultipoleMultilevelEmbedder::m_multiLevelNumNodesBound
private

Definition at line 196 of file FastMultipoleEmbedder.h.

◆ m_pCoarsestLevel

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

Definition at line 200 of file FastMultipoleEmbedder.h.

◆ m_pCurrentEdgeLength

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

Definition at line 205 of file FastMultipoleEmbedder.h.

◆ m_pCurrentGraph

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

Definition at line 202 of file FastMultipoleEmbedder.h.

◆ m_pCurrentLevel

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

Definition at line 198 of file FastMultipoleEmbedder.h.

◆ m_pCurrentNodeSize

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

Definition at line 206 of file FastMultipoleEmbedder.h.

◆ m_pCurrentNodeXPos

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

Definition at line 203 of file FastMultipoleEmbedder.h.

◆ m_pCurrentNodeYPos

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

Definition at line 204 of file FastMultipoleEmbedder.h.

◆ m_pFinestLevel

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

Definition at line 199 of file FastMultipoleEmbedder.h.

◆ m_pLastNodeXPos

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

Definition at line 210 of file FastMultipoleEmbedder.h.

◆ m_pLastNodeYPos

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

Definition at line 211 of file FastMultipoleEmbedder.h.


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