88#ifndef OGDF_MEMORY_POOL_NTS
89 m_maxNumberOfThreads = numThreads;
145 : m_iMaxNumThreads(1), m_iNumLevels(0), m_multiLevelNumNodesBound(10), m_iCurrentLevelNr(-1) { }
158 float factor = 1.0f);
Definitions of various auxiliary classes for FME layout.
Declaration of class FMEThread.
Declaration of class GalaxyMultilevelBuilder.
Includes declaration of graph class.
Declaration of interface for layout algorithms (class LayoutModule)
Dynamic arrays indexed with edges.
The fast multipole embedder approach for force-directed layout.
float m_defaultEdgeLength
~FastMultipoleEmbedder()
destructor
void setNumberOfThreads(uint32_t numThreads)
void deallocate()
frees the memory
FMEThreadPool * m_threadPool
void call(GraphAttributes &GA, const EdgeArray< float > &edgeLength, const NodeArray< float > &nodeSize)
Calls the algorithm for graph GA with the given edgeLength and returns the layout information in GA.
virtual void call(GraphAttributes &GA) override
Calls the algorithm for graph GA and returns the layout information in GA.
uint32_t m_precisionParameter
uint32_t m_maxNumberOfThreads
uint32_t m_numberOfThreads
void setDefaultNodeSize(float nodeSize)
void run(uint32_t numIterations)
runs the simulation with the given number of iterations
FMEGlobalOptions * m_pOptions
void allocate(uint32_t numNodes, uint32_t numEdges)
allocates the memory
void setMultipolePrec(uint32_t precision)
sets the number of coefficients for the expansions. default = 4
void setDefaultEdgeLength(float edgeLength)
void setNumIterations(uint32_t numIterations)
sets the maximum number of iterations
void call(const Graph &G, NodeArray< float > &nodeXPosition, NodeArray< float > &nodeYPosition, const EdgeArray< float > &edgeLength, const NodeArray< float > &nodeSize)
Calls the algorithm for graph G with the given edgelength and returns the layout information in nodeX...
void setRandomize(bool b)
if true, layout algorithm will randomize the layout in the beginning
FastMultipoleEmbedder()
constructor
The fast multipole multilevel embedder approach for force-directed multilevel layout.
void deleteMultiLevelGraphs()
clean up the multilevel graphs
void assignPositionsFromPrevLevel()
assigns the nodes in the current level coords by coarser level
FastMultipoleMultilevelEmbedder()
Constructor, just sets number of maximum threads.
void dumpCurrentLevel(const char *filename)
for debugging only
void initCurrentLevel()
initialize datastructure by current level
void maxNumThreads(int numThreads)
void run(GraphAttributes &GA, const EdgeArray< float > &edgeLength)
internal main function for the multilevel layout
NodeArray< float > m_adjustedNodeSize
void computeAutoEdgeLength(const GraphAttributes &GA, EdgeArray< float > &edgeLength, float factor=1.0f)
internal function to compute a good edgelength
void multilevelUntilNumNodesAreLess(int nodesBound)
sets the bound for the number of nodes for multilevel step
int m_multiLevelNumNodesBound
uint32_t numberOfIterationsByLevelNr(uint32_t levelNr)
computes the maximum number of iterations by level nr
void layoutCurrentLevel()
calls the fast multipole embedder on current level
void writeCurrentToGraphAttributes(GraphAttributes &GA)
writes the current level to graph attributes. used for output
void createMultiLevelGraphs(Graph *pGraph, GraphAttributes &GA, const EdgeArray< float > &edgeLength)
creates all multilevels
void initFinestLevel(GraphAttributes &GA, const EdgeArray< float > &edgeLength)
init the original graphs multilevel
void call(GraphAttributes &GA) override
Calls the algorithm for graph GA and returns the layout information in GA.
Stores additional attributes of a graph (like layout information).
Data type for general directed graphs (adjacency list representation).
Interface of general layout algorithms.
Dynamic arrays indexed with nodes.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.
the main global options for a run