The fast multipole multilevel embedder approach for force-directed multilevel layout. More...
#include <ogdf/energybased/FastMultipoleEmbedder.h>
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< float > | m_adjustedNodeSize |
int | m_iCurrentLevelNr |
int | m_iMaxNumThreads |
int | m_iNumLevels |
int | m_multiLevelNumNodesBound |
GalaxyMultilevel * | m_pCoarsestLevel = nullptr |
EdgeArray< float > * | m_pCurrentEdgeLength = nullptr |
Graph * | m_pCurrentGraph = nullptr |
GalaxyMultilevel * | m_pCurrentLevel = nullptr |
NodeArray< float > * | m_pCurrentNodeSize = nullptr |
NodeArray< float > * | m_pCurrentNodeXPos = nullptr |
NodeArray< float > * | m_pCurrentNodeYPos = nullptr |
GalaxyMultilevel * | m_pFinestLevel = nullptr |
NodeArray< float > * | m_pLastNodeXPos = nullptr |
NodeArray< float > * | m_pLastNodeYPos = nullptr |
The fast multipole multilevel embedder approach for force-directed multilevel layout.
Definition at line 138 of file FastMultipoleEmbedder.h.
|
private |
Definition at line 139 of file FastMultipoleEmbedder.h.
|
private |
Definition at line 140 of file FastMultipoleEmbedder.h.
|
inline |
Constructor, just sets number of maximum threads.
Definition at line 144 of file FastMultipoleEmbedder.h.
|
private |
assigns the nodes in the current level coords by coarser level
|
overridevirtual |
Calls the algorithm for graph GA
and returns the layout information in GA
.
Implements ogdf::LayoutModule.
|
private |
internal function to compute a good edgelength
|
private |
creates all multilevels
|
private |
clean up the multilevel graphs
for debugging only
|
private |
initialize datastructure by current level
|
private |
init the original graphs multilevel
|
private |
calls the fast multipole embedder on current level
Definition at line 153 of file FastMultipoleEmbedder.h.
sets the bound for the number of nodes for multilevel step
Definition at line 151 of file FastMultipoleEmbedder.h.
|
private |
refine
|
private |
computes the maximum number of iterations by level nr
|
private |
internal main function for the multilevel layout
|
private |
writes the current level to graph attributes. used for output
Definition at line 207 of file FastMultipoleEmbedder.h.
|
private |
Definition at line 208 of file FastMultipoleEmbedder.h.
|
private |
Definition at line 194 of file FastMultipoleEmbedder.h.
|
private |
Definition at line 195 of file FastMultipoleEmbedder.h.
|
private |
Definition at line 196 of file FastMultipoleEmbedder.h.
|
private |
Definition at line 200 of file FastMultipoleEmbedder.h.
Definition at line 205 of file FastMultipoleEmbedder.h.
Definition at line 202 of file FastMultipoleEmbedder.h.
|
private |
Definition at line 198 of file FastMultipoleEmbedder.h.
Definition at line 206 of file FastMultipoleEmbedder.h.
Definition at line 203 of file FastMultipoleEmbedder.h.
Definition at line 204 of file FastMultipoleEmbedder.h.
|
private |
Definition at line 199 of file FastMultipoleEmbedder.h.
Definition at line 210 of file FastMultipoleEmbedder.h.
Definition at line 211 of file FastMultipoleEmbedder.h.