Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ogdf::FMMMLayout Class Reference

The fast multipole multilevel layout algorithm. More...

#include <ogdf/energybased/FMMMLayout.h>

+ Inheritance diagram for ogdf::FMMMLayout:

Public Member Functions

 FMMMLayout ()
 Creates an instance of the layout algorithm. More...
 
virtual ~FMMMLayout ()
 
The algorithm call
virtual void call (GraphAttributes &GA) override
 Calls the algorithm for graph GA and returns the layout information in GA. More...
 
void call (ClusterGraphAttributes &GA)
 Calls the algorithm for clustered graph GA and returns the layout information in GA. Models cluster by simple edge length adaption based on least common ancestor cluster of end vertices. More...
 
void call (GraphAttributes &GA, const EdgeArray< double > &edgeLength)
 Extended algorithm call: Allows to pass desired lengths of the edges. More...
 
void call (GraphAttributes &GA, char *ps_file)
 Extended algorithm call: Calls the algorithm for graph GA. More...
 
void call (GraphAttributes &GA, const EdgeArray< double > &edgeLength, char *ps_file)
 Extend algorithm call: Allows to pass desired lengths of the edges. More...
 
Further information.
double getCpuTime ()
 Returns the runtime (=CPU-time) of the layout algorithm in seconds. More...
 
High-level options

Allow to specify the most relevant parameters.

void resetOptions ()
 All parameter options (both low- and high-level) are set to the default values. More...
 
bool useHighLevelOptions () const
 Returns the current setting of option useHighLevelOptions. More...
 
void useHighLevelOptions (bool uho)
 Sets the option useHighLevelOptions to uho. More...
 
void setSingleLevel (bool b)
 Sets single level option, no multilevel hierarchy is created if b == true. More...
 
FMMMOptions::PageFormatType pageFormat () const
 Returns the current setting of option pageFormat. More...
 
void pageFormat (FMMMOptions::PageFormatType t)
 Sets the option pageRatio to t. More...
 
double unitEdgeLength () const
 Returns the current setting of option unitEdgeLength. More...
 
void unitEdgeLength (double x)
 Sets the option unitEdgeLength to x. More...
 
bool newInitialPlacement () const
 Returns the current setting of option newInitialPlacement. More...
 
void newInitialPlacement (bool nip)
 Sets the option newInitialPlacement to nip. More...
 
FMMMOptions::QualityVsSpeed qualityVersusSpeed () const
 Returns the current setting of option qualityVersusSpeed. More...
 
void qualityVersusSpeed (FMMMOptions::QualityVsSpeed qvs)
 Sets the option qualityVersusSpeed to qvs. More...
 
General low-level options

The low-level options in this and the following sections are meant for experts or interested people only.

void randSeed (int p)
 Sets the seed of the random number generator. More...
 
int randSeed () const
 Returns the seed of the random number generator. More...
 
FMMMOptions::EdgeLengthMeasurement edgeLengthMeasurement () const
 Returns the current setting of option edgeLengthMeasurement. More...
 
void edgeLengthMeasurement (FMMMOptions::EdgeLengthMeasurement elm)
 Sets the option edgeLengthMeasurement to elm. More...
 
FMMMOptions::AllowedPositions allowedPositions () const
 Returns the current setting of option allowedPositions. More...
 
void allowedPositions (FMMMOptions::AllowedPositions ap)
 Sets the option allowedPositions to ap. More...
 
int maxIntPosExponent () const
 Returns the current setting of option maxIntPosExponent. More...
 
void maxIntPosExponent (int e)
 Sets the option maxIntPosExponent to e. More...
 
Options for the divide et impera step
double pageRatio () const
 Returns the current setting of option pageRatio. More...
 
void pageRatio (double r)
 Sets the option pageRatio to r. More...
 
int stepsForRotatingComponents () const
 Returns the current setting of option stepsForRotatingComponents. More...
 
void stepsForRotatingComponents (int n)
 Sets the option stepsForRotatingComponents to n. More...
 
FMMMOptions::TipOver tipOverCCs () const
 Returns the current setting of option tipOverCCs. More...
 
void tipOverCCs (FMMMOptions::TipOver to)
 Sets the option tipOverCCs to to. More...
 
double minDistCC () const
 Returns the minimal distance between connected components. More...
 
void minDistCC (double x)
 Sets the minimal distance between connected components to x. More...
 
FMMMOptions::PreSort presortCCs () const
 Returns the current setting of option presortCCs. More...
 
void presortCCs (FMMMOptions::PreSort ps)
 Sets the option presortCCs to ps. More...
 
Options for the multilevel step
int minGraphSize () const
 Returns the current setting of option minGraphSize. More...
 
void minGraphSize (int n)
 Sets the option minGraphSize to n. More...
 
FMMMOptions::GalaxyChoice galaxyChoice () const
 Returns the current setting of option galaxyChoice. More...
 
void galaxyChoice (FMMMOptions::GalaxyChoice gc)
 Sets the option galaxyChoice to gc. More...
 
int randomTries () const
 Returns the current setting of option randomTries. More...
 
void randomTries (int n)
 Sets the option randomTries to n. More...
 
FMMMOptions::MaxIterChange maxIterChange () const
 Returns the current setting of option maxIterChange. More...
 
void maxIterChange (FMMMOptions::MaxIterChange mic)
 Sets the option maxIterChange to mic. More...
 
int maxIterFactor () const
 Returns the current setting of option maxIterFactor. More...
 
void maxIterFactor (int f)
 Sets the option maxIterFactor to f. More...
 
FMMMOptions::InitialPlacementMult initialPlacementMult () const
 Returns the current setting of option initialPlacementMult. More...
 
void initialPlacementMult (FMMMOptions::InitialPlacementMult ipm)
 Sets the option initialPlacementMult to ipm. More...
 
Options for the force calculation step
FMMMOptions::ForceModel forceModel () const
 Returns the used force model. More...
 
void forceModel (FMMMOptions::ForceModel fm)
 Sets the used force model to fm. More...
 
double springStrength () const
 Returns the strength of the springs. More...
 
void springStrength (double x)
 Sets the strength of the springs to x. More...
 
double repForcesStrength () const
 Returns the strength of the repulsive forces. More...
 
void repForcesStrength (double x)
 Sets the strength of the repulsive forces to x. More...
 
FMMMOptions::RepulsiveForcesMethod repulsiveForcesCalculation () const
 Returns the current setting of option repulsiveForcesCalculation. More...
 
void repulsiveForcesCalculation (FMMMOptions::RepulsiveForcesMethod rfc)
 Sets the option repulsiveForcesCalculation to rfc. More...
 
FMMMOptions::StopCriterion stopCriterion () const
 Returns the stop criterion. More...
 
void stopCriterion (FMMMOptions::StopCriterion rsc)
 Sets the stop criterion to rsc. More...
 
double threshold () const
 Returns the threshold for the stop criterion. More...
 
void threshold (double x)
 Sets the threshold for the stop criterion to x. More...
 
int fixedIterations () const
 Returns the fixed number of iterations for the stop criterion. More...
 
void fixedIterations (int n)
 Sets the fixed number of iterations for the stop criterion to n. More...
 
double forceScalingFactor () const
 Returns the scaling factor for the forces. More...
 
void forceScalingFactor (double f)
 Sets the scaling factor for the forces to f. More...
 
bool coolTemperature () const
 Returns the current setting of option coolTemperature. More...
 
void coolTemperature (bool b)
 Sets the option coolTemperature to b. More...
 
double coolValue () const
 Returns the current setting of option coolValue. More...
 
void coolValue (double x)
 Sets the option coolValue to x. More...
 
FMMMOptions::InitialPlacementForces initialPlacementForces () const
 Returns the current setting of option initialPlacementForces. More...
 
void initialPlacementForces (FMMMOptions::InitialPlacementForces ipf)
 Sets the option initialPlacementForces to ipf. More...
 
Options for the postprocessing step
bool resizeDrawing () const
 Returns the current setting of option resizeDrawing. More...
 
void resizeDrawing (bool b)
 Sets the option resizeDrawing to b. More...
 
double resizingScalar () const
 Returns the current setting of option resizingScalar. More...
 
void resizingScalar (double s)
 Sets the option resizingScalar to s. More...
 
int fineTuningIterations () const
 Returns the number of iterations for fine tuning. More...
 
void fineTuningIterations (int n)
 Sets the number of iterations for fine tuning to n. More...
 
double fineTuneScalar () const
 Returns the curent setting of option fineTuneScalar. More...
 
void fineTuneScalar (double s)
 Sets the option fineTuneScalar to s. More...
 
bool adjustPostRepStrengthDynamically () const
 Returns the current setting of option adjustPostRepStrengthDynamically. More...
 
void adjustPostRepStrengthDynamically (bool b)
 Sets the option adjustPostRepStrengthDynamically to b. More...
 
double postSpringStrength () const
 Returns the strength of the springs in the postprocessing step. More...
 
void postSpringStrength (double x)
 Sets the strength of the springs in the postprocessing step to x. More...
 
double postStrengthOfRepForces () const
 Returns the strength of the repulsive forces in the postprocessing step. More...
 
void postStrengthOfRepForces (double x)
 Sets the strength of the repulsive forces in the postprocessing step to x. More...
 
Options for repulsive force approximation methods
int frGridQuotient () const
 Returns the current setting of option frGridQuotient. More...
 
void frGridQuotient (int p)
 Sets the option frGridQuotient to p. More...
 
FMMMOptions::ReducedTreeConstruction nmTreeConstruction () const
 Returns the current setting of option nmTreeConstruction. More...
 
void nmTreeConstruction (FMMMOptions::ReducedTreeConstruction rtc)
 Sets the option nmTreeConstruction to rtc. More...
 
FMMMOptions::SmallestCellFinding nmSmallCell () const
 Returns the current setting of option nmSmallCell. More...
 
void nmSmallCell (FMMMOptions::SmallestCellFinding scf)
 Sets the option nmSmallCell to scf. More...
 
int nmParticlesInLeaves () const
 Returns the current setting of option nmParticlesInLeaves. More...
 
void nmParticlesInLeaves (int n)
 Sets the option nmParticlesInLeaves to n. More...
 
int nmPrecision () const
 Returns the precision p for the p-term multipole expansions. More...
 
void nmPrecision (int p)
 Sets the precision for the multipole expansions to p. 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 EdgeAttributes = energybased::fmmm::EdgeAttributes
 
using NodeAttributes = energybased::fmmm::NodeAttributes
 
using Rectangle = energybased::fmmm::Rectangle
 

Private Member Functions

Most important functions
void call_DIVIDE_ET_IMPERA_step (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E)
 Calls the divide (decomposition into connected components) and impera (drawing and packing of the componenets) step. More...
 
void call_MULTILEVEL_step_for_subGraph (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E)
 Calls the multilevel step for subGraph G. More...
 
bool running (int iter, int max_mult_iter, double actforcevectorlength)
 Returns true iff stopCriterion() is not met. More...
 
void call_FORCE_CALCULATION_step (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, int act_level, int max_level)
 Calls the force calculation step for G, A, E. More...
 
void call_POSTPROCESSING_step (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, NodeArray< DPoint > &F, NodeArray< DPoint > &F_attr, NodeArray< DPoint > &F_rep, NodeArray< DPoint > &last_node_movement)
 Calls the postprocessing step. More...
 
Functions for pre- and post-processing
void update_low_level_options_due_to_high_level_options_settings ()
 Updates several low level parameter options due to the settings of the high level parameter options. More...
 
void import_NodeAttributes (const Graph &G, GraphAttributes &GA, NodeArray< NodeAttributes > &A)
 Imports for each node v of G its width, height and position (given from GA) in A. More...
 
void import_EdgeAttributes (const Graph &G, const EdgeArray< double > &edgeLength, EdgeArray< EdgeAttributes > &E)
 Imports for each edge e of G its desired length given via edgeLength. More...
 
void init_ind_ideal_edgelength (const Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E)
 Sets the individual ideal edge length for each edge e. More...
 
void set_radii (const Graph &G, NodeArray< NodeAttributes > &A)
 The radii of the surrounding circles of the bounding boxes are computed. More...
 
void export_NodeAttributes (Graph &G_reduced, NodeArray< NodeAttributes > &A_reduced, GraphAttributes &GA)
 Exports for each node v in G_reduced the position of the original_node in GA. More...
 
void make_simple_loopfree (const Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > E, Graph &G_reduced, NodeArray< NodeAttributes > &A_reduced, EdgeArray< EdgeAttributes > &E_reduced)
 Creates a simple and loopfree copy of G and stores the corresponding node / edge attributes. More...
 
void delete_parallel_edges (const Graph &G, EdgeArray< EdgeAttributes > &E, Graph &G_reduced, List< edge > &S, EdgeArray< double > &new_edgelength)
 Deletes parallel edges of G_reduced. More...
 
void update_edgelength (List< edge > &S, EdgeArray< double > &new_edgelength, EdgeArray< EdgeAttributes > &E_reduced)
 Sets for each edge e of G_reduced in S its edgelength to new_edgelength[e]. More...
 
double get_post_rep_force_strength (int n)
 Returns the value for the strength of the repulsive forces. More...
 
void adjust_positions (const Graph &G, NodeArray< NodeAttributes > &A)
 Adjust positions according to allowedPositions() More...
 
void create_postscript_drawing (GraphAttributes &GA, char *ps_file)
 Creates a simple drawing of GA in postscript format and saves it in file ps_file. More...
 
Functions for divide et impera step
void create_maximum_connected_subGraphs (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, Graph G_sub[], NodeArray< NodeAttributes > A_sub[], EdgeArray< EdgeAttributes > E_sub[], NodeArray< int > &component)
 Constructs the list of connected components of G. More...
 
void pack_subGraph_drawings (NodeArray< NodeAttributes > &A, Graph G_sub[], NodeArray< NodeAttributes > A_sub[])
 The drawings of the subgraphs are packed. More...
 
void calculate_bounding_rectangles_of_components (List< Rectangle > &R, Graph G_sub[], NodeArray< NodeAttributes > A_sub[])
 The bounding rectangles of all connected componenents of G are calculated and stored in R. More...
 
Rectangle calculate_bounding_rectangle (Graph &G, NodeArray< NodeAttributes > &A, int componenet_index)
 The bounding rectangle of the componenet_index-th. component of G is returned. More...
 
void rotate_components_and_calculate_bounding_rectangles (List< Rectangle > &R, Graph G_sub[], NodeArray< NodeAttributes > A_sub[])
 If number_of_components > 1, the subgraphs G_sub are rotated and skipped to find bounding rectangles with minimum area. More...
 
double calculate_area (double width, double height, int comp_nr)
 Returns the area (aspect ratio area) of a rectangle with width w and height h if comp_nr > 1 ( comp_nr == 1). More...
 
void export_node_positions (NodeArray< NodeAttributes > &A, List< Rectangle > &R, Graph G_sub[], NodeArray< NodeAttributes > A_sub[])
 The positions of the nodes in the subgraphs are calculated by using the information stored in R and are exported to A. More...
 
void delete_all_subGraphs (Graph G_sub[], NodeArray< NodeAttributes > A_sub[], EdgeArray< EdgeAttributes > E_sub[])
 Frees dynamically allocated memory for the connected component subgraphs. More...
 
Functions for multilevel step
int get_max_mult_iter (int act_level, int max_level, int node_nr)
 Returns the maximum number of iterations for the force calc. More...
 
Functions for force calculation
void calculate_forces (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, NodeArray< DPoint > &F, NodeArray< DPoint > &F_attr, NodeArray< DPoint > &F_rep, NodeArray< DPoint > &last_node_movement, int iter, int fine_tuning_step)
 The forces are calculated here. More...
 
void init_boxlength_and_cornercoordinate (Graph &G, NodeArray< NodeAttributes > &A)
 The length of the computational box in the first iteration is set (down left corner is at (0,0). More...
 
void create_initial_placement (Graph &G, NodeArray< NodeAttributes > &A)
 The initial placements of the nodes are created by using initialPlacementForces(). More...
 
void create_initial_placement_uniform_grid (const Graph &G, NodeArray< NodeAttributes > &A)
 Places nodes uniformly in a grid. More...
 
void create_initial_placement_random (const Graph &G, NodeArray< NodeAttributes > &A)
 Places nodes randomly. More...
 
void init_F (Graph &G, NodeArray< DPoint > &F)
 Sets all entries of F to (0,0). More...
 
void make_initialisations_for_rep_calc_classes (Graph &G)
 Make initializations for the data structures that are used in the choosen class for rep. force calculation. More...
 
void calculate_repulsive_forces (Graph &G, NodeArray< NodeAttributes > &A, NodeArray< DPoint > &F_rep)
 Calculates repulsive forces for each node. More...
 
void deallocate_memory_for_rep_calc_classes ()
 Deallocates dynamically allocated memory of the choosen rep. calculation class. More...
 
void calculate_attractive_forces (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, NodeArray< DPoint > &F_attr)
 Calculates attractive forces for each node. More...
 
double f_attr_scalar (double d, double ind_ideal_edge_length)
 Returns the attractive force scalar. More...
 
void add_attr_rep_forces (Graph &G, NodeArray< DPoint > &F_attr, NodeArray< DPoint > &F_rep, NodeArray< DPoint > &F, int iter, int fine_tuning_step)
 Add attractive and repulsive forces for each node. More...
 
void move_nodes (Graph &G, NodeArray< NodeAttributes > &A, NodeArray< DPoint > &F)
 Move the nodes. More...
 
void update_boxlength_and_cornercoordinate (Graph &G, NodeArray< NodeAttributes > &A)
 Computes a new tight computational square-box. More...
 
double max_radius (int iter)
 Describes the max. radius of a move in one time step, depending on the number of iterations. More...
 
void set_average_ideal_edgelength (Graph &G, EdgeArray< EdgeAttributes > &E)
 The average_ideal_edgelength for all edges is computed. More...
 
double get_average_forcevector_length (Graph &G, NodeArray< DPoint > &F)
 Calculates the average force on each node in the actual iteration, which is needed if StopCriterion is scThreshold() or scFixedIterationsOrThreshold(). More...
 
void prevent_oscillations (Graph &G, NodeArray< DPoint > &F, NodeArray< DPoint > &last_node_movement, int iter)
 Depending on the direction of last_node_movement[v], the length of the next displacement of node v is restricted. More...
 
void init_last_node_movement (Graph &G, NodeArray< DPoint > &F, NodeArray< DPoint > &last_node_movement)
 last_node_movement is initialized to F (used after first iteration). More...
 
void adapt_drawing_to_ideal_average_edgelength (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E)
 If resizeDrawing is true, the drawing is adapted to the ideal average edge length by shrinking respectively expanding the drawing area. More...
 
void restrict_force_to_comp_box (DPoint &force)
 The force is restricted to have values within the comp. More...
 
Functions for analytic information
void init_time ()
 Sets time_total to zero. More...
 

Private Attributes

double average_ideal_edgelength
 Measured from center to center. More...
 
double boxlength
 Holds the length of the quadratic comput. More...
 
double cool_factor
 Needed for scaling the forces if coolTemperature is true. More...
 
DPoint down_left_corner
 Holds down left corner of the comput. More...
 
energybased::fmmm::FruchtermanReingold FR
 Class for repulsive force calculation (Fruchterman, Reingold). More...
 
bool m_adjustPostRepStrengthDynamically
 The option adjustPostRepStrengthDynamically. More...
 
FMMMOptions::AllowedPositions m_allowedPositions
 The option for allowed positions. More...
 
bool m_coolTemperature
 The option for how to scale forces. More...
 
double m_coolValue
 The value by which forces are decreased. More...
 
FMMMOptions::EdgeLengthMeasurement m_edgeLengthMeasurement
 The option for edge length measurement. More...
 
double m_fineTuneScalar
 Parameter for scaling forces during fine tuning. More...
 
int m_fineTuningIterations
 The number of iterations for fine tuning. More...
 
int m_fixedIterations
 The fixed number of iterations for the stop criterion. More...
 
FMMMOptions::ForceModel m_forceModel
 The used force model. More...
 
double m_forceScalingFactor
 The scaling factor for the forces. More...
 
int m_frGridQuotient
 The grid quotient. More...
 
FMMMOptions::GalaxyChoice m_galaxyChoice
 The selection of galaxy nodes. More...
 
FMMMOptions::InitialPlacementForces m_initialPlacementForces
 The option for how the initial placement is done. More...
 
FMMMOptions::InitialPlacementMult m_initialPlacementMult
 The option for creating initial placement. More...
 
int m_maxIntPosExponent
 The option for the used exponent. More...
 
FMMMOptions::MaxIterChange m_maxIterChange
 The option for how to change MaxIterations. If maxIterChange != micConstant, the iterations are decreased depending on the level, starting from ((maxIterFactor()-1) * fixedIterations()) More...
 
int m_maxIterFactor
 The factor used for decreasing MaxIterations. More...
 
double m_minDistCC
 The separation between connected components. More...
 
int m_minGraphSize
 The option for minimal graph size. More...
 
bool m_newInitialPlacement
 The option for new initial placement. More...
 
int m_NMParticlesInLeaves
 The maximal number of particles in a leaf. More...
 
int m_NMPrecision
 The precision for multipole expansions. More...
 
FMMMOptions::SmallestCellFinding m_NMSmallCell
 The option for how to calculate smallest quadtratic cells. More...
 
FMMMOptions::ReducedTreeConstruction m_NMTreeConstruction
 The option for how to construct reduced bucket quadtree. More...
 
FMMMOptions::PageFormatType m_pageFormat
 The option for the page format. More...
 
double m_pageRatio
 The desired page ratio. More...
 
double m_postSpringStrength
 The strength of springs during postprocessing. More...
 
double m_postStrengthOfRepForces
 The strength of repulsive forces during postprocessing. More...
 
FMMMOptions::PreSort m_presortCCs
 The option for presorting connected components. More...
 
FMMMOptions::QualityVsSpeed m_qualityVersusSpeed
 The option for quality-vs-speed trade-off. More...
 
int m_randomTries
 The number of random tries. More...
 
int m_randSeed
 The random seed. More...
 
double m_repForcesStrength
 The strength of repulsive forces. More...
 
FMMMOptions::RepulsiveForcesMethod m_repulsiveForcesCalculation
 Option for how to calculate repulsive forces. More...
 
bool m_resizeDrawing
 The option for resizing the drawing. More...
 
double m_resizingScalar
 Parameter for resizing the drawing. More...
 
bool m_singleLevel
 Option for pure single level. More...
 
double m_springStrength
 The strengths of springs. More...
 
int m_stepsForRotatingComponents
 The number of rotations. More...
 
FMMMOptions::StopCriterion m_stopCriterion
 The stop criterion. More...
 
double m_threshold
 The threshold for the stop criterion. More...
 
FMMMOptions::TipOver m_tipOverCCs
 Option for tip-over of connected components. More...
 
double m_unitEdgeLength
 The unit edge length. More...
 
bool m_useHighLevelOptions
 The option for using high-level options. More...
 
double max_integer_position
 The maximum value for an integer position. More...
 
energybased::fmmm::NewMultipoleMethod NM
 Class for repulsive force calculation. More...
 
int number_of_components
 The number of components of the graph. More...
 
NodeArray< double > radius
 Holds the radius of the surrounding circle for each node. More...
 
double time_total
 The runtime (=CPU-time) of the algorithm in seconds. More...
 

Detailed Description

The fast multipole multilevel layout algorithm.

The class FMMMLayout implements a force-directed graph drawing method suited also for very large graphs. It is based on a combination of an efficient multilevel scheme and a strategy for approximating the repulsive forces in the system by rapidly evaluating potential fields.

The implementation is based on the following publication:

Stefan Hachul, Michael Jünger: Drawing Large Graphs with a Potential-Field-Based Multilevel Algorithm. 12th International Symposium on Graph Drawing 1998, New York (GD '04), LNCS 3383, pp. 285-295, 2004.

Optional parameters

The following options are the most important. You can set useHighLevelOptions to true and just need to adjust a few parameters. However, you can also adjust all parameters that the implementation uses (see below), but this requires good knowledge of the algorithm.

OptionTypeDefaultDescription
useHighLevelOptionsboolfalse Whether high-level options are used or not.
pageFormatFMMMOptions::PageFormatType Square The desired aspect ratio of the layout.
unitEdgeLengthdouble100.0 The unit edge length.
newInitialPlacementboolfalse Specifies if initial placement of nodes is varied.
qualityVersusSpeedFMMMOptions::QualityVsSpeed BeautifulAndFast Indicates if the algorithm is tuned either for best quality or best speed.

If you want to do more detailed fine-tuning, you can adjust all parameters used by the algorithm. Please refer to the paper cited above for better understanding of the algorithm.

General
randSeedint100 The seed of the random number generator.
edgeLengthMeasurementFMMMOptions::EdgeLengthMeasurement BoundingCircle Indicates how the length of an edge is measured.
allowedPositionsFMMMOptions::AllowedPositions Integer Defines which positions for a node are allowed.
maxIntPosExponentint40 Defines the exponent used if allowedPositions == Exponent.
Divide et impera step
pageRatiodouble1.0 The desired page ratio.
stepsForRotatingComponentsint10 The number of rotations per connected component.
tipOverCCsFMMMOptions::TipOver NoGrowingRow Specifies when it is allowed to tip over drawings.
minDistCCdouble100 The minimal distance between connected components.
presortCCsFMMMOptions::PreSort DecreasingHeight Defines if the connected components are sorted before the packing algorithm is applied.
Multilevel step
minGraphSizeint50 Determines the number of nodes of a graph for which no more collapsing of galaxies is performed.
galaxyChoiceFMMMOptions::GalaxyChoice NonUniformProbLowerMass Defines how sun nodes of galaxies are selected.
randomTriesint20 Defines the number of tries to get a random node with minimal star mass.
maxIterChangeFMMMOptions::MaxIterChange LinearlyDecreasing Defines how MaxIterations is changed in subsequent multilevels.
maxIterFactorint10 Defines the factor used for decreasing MaxIterations.
initialPlacementMultFMMMOptions::InitialPlacementMult Advanced Defines how the initial placement is generated.
Force calculation step
forceModelFMMMOptions::ForceModel New The used force model.
springStrengthdouble1.0 The strength of the springs.
repForcesStrengthdouble1.0 The strength of the repulsive forces.
repulsiveForcesCalculationFMMMOptions::RepulsiveForcesMethod NMM Defines how to calculate repulsive forces.
stopCriterionFMMMOptions::StopCriterion FixedIterationsOrThreshold The stop criterion.
thresholddouble0.01 The threshold for the stop criterion.
fixedIterationsint30 The fixed number of iterations for the stop criterion.
forceScalingFactordouble0.05 The scaling factor for the forces.
coolTemperatureboolfalse Use coolValue for scaling forces.
coolValuedouble0.99 The value by which forces are decreased.
initialPlacementForcesFMMMOptions::InitialPlacementForces RandomRandIterNr Defines how the initial placement is done.
Force calculation step
resizeDrawingbooltrue Specifies if the resulting drawing is resized.
resizingScalardouble1 Defines a parameter to scale the drawing if resizeDrawing is true.
fineTuningIterationsint20 The number of iterations for fine tuning.
fineTuneScalardouble0.2 Defines a parameter for scaling the forces in the fine-tuning iterations.
adjustPostRepStrengthDynamicallybooltrue If set to true, the strength of the repulsive force field is calculated.
postSpringStrengthdouble2.0 The strength of the springs in the postprocessing step.
postStrengthOfRepForcesdouble0.01 The strength of the repulsive forces in the postprocessing step.
Repulsive force approximation methods
frGridQuotientint2 The grid quotient.
nmTreeConstructionFMMMOptions::ReducedTreeConstruction SubtreeBySubtree Defines how the reduced bucket quadtree is constructed.
nmSmallCellFMMMOptions::SmallestCellFinding Iteratively Defines how the smallest quadratic cell that surrounds the particles of a node in the reduced bucket quadtree is calculated.
nmParticlesInLeavesint25 The maximal number of particles that are contained in a leaf of the reduced bucket quadtree.
nmPrecisionint4 The precision p for the p-term multipole expansions.

Running time

The running time of the algorithm is O(n log n + m) for graphs with n nodes and m edges. The required space is linear in the input size.

Definition at line 242 of file FMMMLayout.h.

Member Typedef Documentation

◆ EdgeAttributes

◆ NodeAttributes

◆ Rectangle

Definition at line 243 of file FMMMLayout.h.

Constructor & Destructor Documentation

◆ FMMMLayout()

ogdf::FMMMLayout::FMMMLayout ( )

Creates an instance of the layout algorithm.

◆ ~FMMMLayout()

virtual ogdf::FMMMLayout::~FMMMLayout ( )
inlinevirtual

Definition at line 252 of file FMMMLayout.h.

Member Function Documentation

◆ adapt_drawing_to_ideal_average_edgelength()

void ogdf::FMMMLayout::adapt_drawing_to_ideal_average_edgelength ( Graph G,
NodeArray< NodeAttributes > &  A,
EdgeArray< EdgeAttributes > &  E 
)
private

If resizeDrawing is true, the drawing is adapted to the ideal average edge length by shrinking respectively expanding the drawing area.

◆ add_attr_rep_forces()

void ogdf::FMMMLayout::add_attr_rep_forces ( Graph G,
NodeArray< DPoint > &  F_attr,
NodeArray< DPoint > &  F_rep,
NodeArray< DPoint > &  F,
int  iter,
int  fine_tuning_step 
)
private

Add attractive and repulsive forces for each node.

◆ adjust_positions()

void ogdf::FMMMLayout::adjust_positions ( const Graph G,
NodeArray< NodeAttributes > &  A 
)
private

Adjust positions according to allowedPositions()

See also
FMMMOptions::AllowedPositions

◆ adjustPostRepStrengthDynamically() [1/2]

bool ogdf::FMMMLayout::adjustPostRepStrengthDynamically ( ) const
inline

Returns the current setting of option adjustPostRepStrengthDynamically.

If set to true, the strength of the repulsive force field is calculated dynamically by a formula depending on the number of nodes; otherwise the strength are scaled by PostSpringStrength and PostStrengthOfRepForces.

Definition at line 654 of file FMMMLayout.h.

◆ adjustPostRepStrengthDynamically() [2/2]

void ogdf::FMMMLayout::adjustPostRepStrengthDynamically ( bool  b)
inline

Sets the option adjustPostRepStrengthDynamically to b.

Definition at line 657 of file FMMMLayout.h.

◆ allowedPositions() [1/2]

FMMMOptions::AllowedPositions ogdf::FMMMLayout::allowedPositions ( ) const
inline

Returns the current setting of option allowedPositions.

Definition at line 400 of file FMMMLayout.h.

◆ allowedPositions() [2/2]

void ogdf::FMMMLayout::allowedPositions ( FMMMOptions::AllowedPositions  ap)
inline

Sets the option allowedPositions to ap.

Definition at line 403 of file FMMMLayout.h.

◆ calculate_area()

double ogdf::FMMMLayout::calculate_area ( double  width,
double  height,
int  comp_nr 
)
inlineprivate

Returns the area (aspect ratio area) of a rectangle with width w and height h if comp_nr > 1 ( comp_nr == 1).

Definition at line 934 of file FMMMLayout.h.

◆ calculate_attractive_forces()

void ogdf::FMMMLayout::calculate_attractive_forces ( Graph G,
NodeArray< NodeAttributes > &  A,
EdgeArray< EdgeAttributes > &  E,
NodeArray< DPoint > &  F_attr 
)
private

Calculates attractive forces for each node.

◆ calculate_bounding_rectangle()

Rectangle ogdf::FMMMLayout::calculate_bounding_rectangle ( Graph G,
NodeArray< NodeAttributes > &  A,
int  componenet_index 
)
private

The bounding rectangle of the componenet_index-th. component of G is returned.

◆ calculate_bounding_rectangles_of_components()

void ogdf::FMMMLayout::calculate_bounding_rectangles_of_components ( List< Rectangle > &  R,
Graph  G_sub[],
NodeArray< NodeAttributes A_sub[] 
)
private

The bounding rectangles of all connected componenents of G are calculated and stored in R.

◆ calculate_forces()

void ogdf::FMMMLayout::calculate_forces ( Graph G,
NodeArray< NodeAttributes > &  A,
EdgeArray< EdgeAttributes > &  E,
NodeArray< DPoint > &  F,
NodeArray< DPoint > &  F_attr,
NodeArray< DPoint > &  F_rep,
NodeArray< DPoint > &  last_node_movement,
int  iter,
int  fine_tuning_step 
)
private

The forces are calculated here.

◆ calculate_repulsive_forces()

void ogdf::FMMMLayout::calculate_repulsive_forces ( Graph G,
NodeArray< NodeAttributes > &  A,
NodeArray< DPoint > &  F_rep 
)
inlineprivate

Calculates repulsive forces for each node.

Definition at line 1010 of file FMMMLayout.h.

◆ call() [1/5]

void ogdf::FMMMLayout::call ( ClusterGraphAttributes GA)

Calls the algorithm for clustered graph GA and returns the layout information in GA. Models cluster by simple edge length adaption based on least common ancestor cluster of end vertices.

◆ call() [2/5]

virtual void ogdf::FMMMLayout::call ( GraphAttributes GA)
overridevirtual

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

Implements ogdf::LayoutModule.

◆ call() [3/5]

void ogdf::FMMMLayout::call ( GraphAttributes GA,
char *  ps_file 
)

Extended algorithm call: Calls the algorithm for graph GA.

Returns layout information in GA and a simple drawing is saved in file ps_file in postscript format (Nodes are drawn as uniformly sized circles).

◆ call() [4/5]

void ogdf::FMMMLayout::call ( GraphAttributes GA,
const EdgeArray< double > &  edgeLength 
)

Extended algorithm call: Allows to pass desired lengths of the edges.

Parameters
GArepresents the input graph and is assigned the computed layout.
edgeLengthis an edge array of the graph associated with GA of positive edge length.

◆ call() [5/5]

void ogdf::FMMMLayout::call ( GraphAttributes GA,
const EdgeArray< double > &  edgeLength,
char *  ps_file 
)

Extend algorithm call: Allows to pass desired lengths of the edges.

The EdgeArray edgeLength must be valid for GA.constGraph() and its values must be positive. A simple drawing is saved in file ps_file in postscript format (Nodes are drawn as uniformly sized circles).

◆ call_DIVIDE_ET_IMPERA_step()

void ogdf::FMMMLayout::call_DIVIDE_ET_IMPERA_step ( Graph G,
NodeArray< NodeAttributes > &  A,
EdgeArray< EdgeAttributes > &  E 
)
private

Calls the divide (decomposition into connected components) and impera (drawing and packing of the componenets) step.

◆ call_FORCE_CALCULATION_step()

void ogdf::FMMMLayout::call_FORCE_CALCULATION_step ( Graph G,
NodeArray< NodeAttributes > &  A,
EdgeArray< EdgeAttributes > &  E,
int  act_level,
int  max_level 
)
private

Calls the force calculation step for G, A, E.

If act_level is 0 and resizeDrawing is true the drawing is resized. Furthermore, the maximum number of force calc. steps is calculated depending on MaxIterChange, act_level, and max_level.

◆ call_MULTILEVEL_step_for_subGraph()

void ogdf::FMMMLayout::call_MULTILEVEL_step_for_subGraph ( Graph G,
NodeArray< NodeAttributes > &  A,
EdgeArray< EdgeAttributes > &  E 
)
private

Calls the multilevel step for subGraph G.

◆ call_POSTPROCESSING_step()

void ogdf::FMMMLayout::call_POSTPROCESSING_step ( Graph G,
NodeArray< NodeAttributes > &  A,
EdgeArray< EdgeAttributes > &  E,
NodeArray< DPoint > &  F,
NodeArray< DPoint > &  F_attr,
NodeArray< DPoint > &  F_rep,
NodeArray< DPoint > &  last_node_movement 
)
private

Calls the postprocessing step.

◆ coolTemperature() [1/2]

bool ogdf::FMMMLayout::coolTemperature ( ) const
inline

Returns the current setting of option coolTemperature.

If set to true, forces are scaled by coolValue()^(actual iteration) * forceScalingFactor(); otherwise forces are scaled by forceScalingFactor().

Definition at line 582 of file FMMMLayout.h.

◆ coolTemperature() [2/2]

void ogdf::FMMMLayout::coolTemperature ( bool  b)
inline

Sets the option coolTemperature to b.

Definition at line 585 of file FMMMLayout.h.

◆ coolValue() [1/2]

double ogdf::FMMMLayout::coolValue ( ) const
inline

Returns the current setting of option coolValue.

This option defines the value by which forces are decreased if coolTemperature is true.

Definition at line 592 of file FMMMLayout.h.

◆ coolValue() [2/2]

void ogdf::FMMMLayout::coolValue ( double  x)
inline

Sets the option coolValue to x.

Definition at line 595 of file FMMMLayout.h.

◆ create_initial_placement()

void ogdf::FMMMLayout::create_initial_placement ( Graph G,
NodeArray< NodeAttributes > &  A 
)
private

The initial placements of the nodes are created by using initialPlacementForces().

◆ create_initial_placement_random()

void ogdf::FMMMLayout::create_initial_placement_random ( const Graph G,
NodeArray< NodeAttributes > &  A 
)
private

Places nodes randomly.

◆ create_initial_placement_uniform_grid()

void ogdf::FMMMLayout::create_initial_placement_uniform_grid ( const Graph G,
NodeArray< NodeAttributes > &  A 
)
private

Places nodes uniformly in a grid.

◆ create_maximum_connected_subGraphs()

void ogdf::FMMMLayout::create_maximum_connected_subGraphs ( Graph G,
NodeArray< NodeAttributes > &  A,
EdgeArray< EdgeAttributes > &  E,
Graph  G_sub[],
NodeArray< NodeAttributes A_sub[],
EdgeArray< EdgeAttributes E_sub[],
NodeArray< int > &  component 
)
private

Constructs the list of connected components of G.

Also constructs the corresponding lists with the node / edge attributes (containing a pointer to the original node in G for each node in a subgraph).

◆ create_postscript_drawing()

void ogdf::FMMMLayout::create_postscript_drawing ( GraphAttributes GA,
char *  ps_file 
)
private

Creates a simple drawing of GA in postscript format and saves it in file ps_file.

◆ deallocate_memory_for_rep_calc_classes()

void ogdf::FMMMLayout::deallocate_memory_for_rep_calc_classes ( )
inlineprivate

Deallocates dynamically allocated memory of the choosen rep. calculation class.

Definition at line 1025 of file FMMMLayout.h.

◆ delete_all_subGraphs()

void ogdf::FMMMLayout::delete_all_subGraphs ( Graph  G_sub[],
NodeArray< NodeAttributes A_sub[],
EdgeArray< EdgeAttributes E_sub[] 
)
inlineprivate

Frees dynamically allocated memory for the connected component subgraphs.

Definition at line 960 of file FMMMLayout.h.

◆ delete_parallel_edges()

void ogdf::FMMMLayout::delete_parallel_edges ( const Graph G,
EdgeArray< EdgeAttributes > &  E,
Graph G_reduced,
List< edge > &  S,
EdgeArray< double > &  new_edgelength 
)
private

Deletes parallel edges of G_reduced.

Saves for each set of parallel edges one representative edge in S and saves in new_edgelength the new edge length of this edge in G_reduced.

◆ edgeLengthMeasurement() [1/2]

FMMMOptions::EdgeLengthMeasurement ogdf::FMMMLayout::edgeLengthMeasurement ( ) const
inline

Returns the current setting of option edgeLengthMeasurement.

Definition at line 390 of file FMMMLayout.h.

◆ edgeLengthMeasurement() [2/2]

void ogdf::FMMMLayout::edgeLengthMeasurement ( FMMMOptions::EdgeLengthMeasurement  elm)
inline

Sets the option edgeLengthMeasurement to elm.

Definition at line 395 of file FMMMLayout.h.

◆ export_node_positions()

void ogdf::FMMMLayout::export_node_positions ( NodeArray< NodeAttributes > &  A,
List< Rectangle > &  R,
Graph  G_sub[],
NodeArray< NodeAttributes A_sub[] 
)
private

The positions of the nodes in the subgraphs are calculated by using the information stored in R and are exported to A.

(The coordinates of components which surrounding rectangles have been tipped over in the packing step are tipped over here,too)

◆ export_NodeAttributes()

void ogdf::FMMMLayout::export_NodeAttributes ( Graph G_reduced,
NodeArray< NodeAttributes > &  A_reduced,
GraphAttributes GA 
)
private

Exports for each node v in G_reduced the position of the original_node in GA.

◆ f_attr_scalar()

double ogdf::FMMMLayout::f_attr_scalar ( double  d,
double  ind_ideal_edge_length 
)
private

Returns the attractive force scalar.

◆ fineTuneScalar() [1/2]

double ogdf::FMMMLayout::fineTuneScalar ( ) const
inline

Returns the curent setting of option fineTuneScalar.

This option defines a parameter for scaling the forces in the fine-tuning iterations.

Definition at line 643 of file FMMMLayout.h.

◆ fineTuneScalar() [2/2]

void ogdf::FMMMLayout::fineTuneScalar ( double  s)
inline

Sets the option fineTuneScalar to s.

Definition at line 646 of file FMMMLayout.h.

◆ fineTuningIterations() [1/2]

int ogdf::FMMMLayout::fineTuningIterations ( ) const
inline

Returns the number of iterations for fine tuning.

Definition at line 633 of file FMMMLayout.h.

◆ fineTuningIterations() [2/2]

void ogdf::FMMMLayout::fineTuningIterations ( int  n)
inline

Sets the number of iterations for fine tuning to n.

Definition at line 636 of file FMMMLayout.h.

◆ fixedIterations() [1/2]

int ogdf::FMMMLayout::fixedIterations ( ) const
inline

Returns the fixed number of iterations for the stop criterion.

Definition at line 566 of file FMMMLayout.h.

◆ fixedIterations() [2/2]

void ogdf::FMMMLayout::fixedIterations ( int  n)
inline

Sets the fixed number of iterations for the stop criterion to n.

Definition at line 569 of file FMMMLayout.h.

◆ forceModel() [1/2]

FMMMOptions::ForceModel ogdf::FMMMLayout::forceModel ( ) const
inline

Returns the used force model.

Definition at line 522 of file FMMMLayout.h.

◆ forceModel() [2/2]

void ogdf::FMMMLayout::forceModel ( FMMMOptions::ForceModel  fm)
inline

Sets the used force model to fm.

Definition at line 525 of file FMMMLayout.h.

◆ forceScalingFactor() [1/2]

double ogdf::FMMMLayout::forceScalingFactor ( ) const
inline

Returns the scaling factor for the forces.

Definition at line 572 of file FMMMLayout.h.

◆ forceScalingFactor() [2/2]

void ogdf::FMMMLayout::forceScalingFactor ( double  f)
inline

Sets the scaling factor for the forces to f.

Definition at line 575 of file FMMMLayout.h.

◆ frGridQuotient() [1/2]

int ogdf::FMMMLayout::frGridQuotient ( ) const
inline

Returns the current setting of option frGridQuotient.

The number k of rows and columns of the grid is sqrt(|V|) / frGridQuotient(). (Note that in [Fruchterman,Reingold] frGridQuotient is 2.)

Definition at line 681 of file FMMMLayout.h.

◆ frGridQuotient() [2/2]

void ogdf::FMMMLayout::frGridQuotient ( int  p)
inline

Sets the option frGridQuotient to p.

Definition at line 684 of file FMMMLayout.h.

◆ galaxyChoice() [1/2]

FMMMOptions::GalaxyChoice ogdf::FMMMLayout::galaxyChoice ( ) const
inline

Returns the current setting of option galaxyChoice.

Definition at line 473 of file FMMMLayout.h.

◆ galaxyChoice() [2/2]

void ogdf::FMMMLayout::galaxyChoice ( FMMMOptions::GalaxyChoice  gc)
inline

Sets the option galaxyChoice to gc.

Definition at line 476 of file FMMMLayout.h.

◆ get_average_forcevector_length()

double ogdf::FMMMLayout::get_average_forcevector_length ( Graph G,
NodeArray< DPoint > &  F 
)
private

Calculates the average force on each node in the actual iteration, which is needed if StopCriterion is scThreshold() or scFixedIterationsOrThreshold().

◆ get_max_mult_iter()

int ogdf::FMMMLayout::get_max_mult_iter ( int  act_level,
int  max_level,
int  node_nr 
)
private

Returns the maximum number of iterations for the force calc.

step depending on act_level, max_level, FixedIterations, MaxIterChange, MaxIterFactor, and the number of nodes of the Graph in the actual mutilevel.

◆ get_post_rep_force_strength()

double ogdf::FMMMLayout::get_post_rep_force_strength ( int  n)
inlineprivate

Returns the value for the strength of the repulsive forces.

Used in the postprocessing step; depending on n = G.numberOfNodes().

Definition at line 880 of file FMMMLayout.h.

◆ getCpuTime()

double ogdf::FMMMLayout::getCpuTime ( )
inline

Returns the runtime (=CPU-time) of the layout algorithm in seconds.

Definition at line 300 of file FMMMLayout.h.

◆ import_EdgeAttributes()

void ogdf::FMMMLayout::import_EdgeAttributes ( const Graph G,
const EdgeArray< double > &  edgeLength,
EdgeArray< EdgeAttributes > &  E 
)
private

Imports for each edge e of G its desired length given via edgeLength.

◆ import_NodeAttributes()

void ogdf::FMMMLayout::import_NodeAttributes ( const Graph G,
GraphAttributes GA,
NodeArray< NodeAttributes > &  A 
)
private

Imports for each node v of G its width, height and position (given from GA) in A.

◆ init_boxlength_and_cornercoordinate()

void ogdf::FMMMLayout::init_boxlength_and_cornercoordinate ( Graph G,
NodeArray< NodeAttributes > &  A 
)
private

The length of the computational box in the first iteration is set (down left corner is at (0,0).

◆ init_F()

void ogdf::FMMMLayout::init_F ( Graph G,
NodeArray< DPoint > &  F 
)
private

Sets all entries of F to (0,0).

◆ init_ind_ideal_edgelength()

void ogdf::FMMMLayout::init_ind_ideal_edgelength ( const Graph G,
NodeArray< NodeAttributes > &  A,
EdgeArray< EdgeAttributes > &  E 
)
private

Sets the individual ideal edge length for each edge e.

◆ init_last_node_movement()

void ogdf::FMMMLayout::init_last_node_movement ( Graph G,
NodeArray< DPoint > &  F,
NodeArray< DPoint > &  last_node_movement 
)
private

last_node_movement is initialized to F (used after first iteration).

◆ init_time()

void ogdf::FMMMLayout::init_time ( )
inlineprivate

Sets time_total to zero.

Definition at line 1107 of file FMMMLayout.h.

◆ initialPlacementForces() [1/2]

FMMMOptions::InitialPlacementForces ogdf::FMMMLayout::initialPlacementForces ( ) const
inline

Returns the current setting of option initialPlacementForces.

Definition at line 598 of file FMMMLayout.h.

◆ initialPlacementForces() [2/2]

void ogdf::FMMMLayout::initialPlacementForces ( FMMMOptions::InitialPlacementForces  ipf)
inline

Sets the option initialPlacementForces to ipf.

Definition at line 603 of file FMMMLayout.h.

◆ initialPlacementMult() [1/2]

FMMMOptions::InitialPlacementMult ogdf::FMMMLayout::initialPlacementMult ( ) const
inline

Returns the current setting of option initialPlacementMult.

Definition at line 507 of file FMMMLayout.h.

◆ initialPlacementMult() [2/2]

void ogdf::FMMMLayout::initialPlacementMult ( FMMMOptions::InitialPlacementMult  ipm)
inline

Sets the option initialPlacementMult to ipm.

Definition at line 512 of file FMMMLayout.h.

◆ make_initialisations_for_rep_calc_classes()

void ogdf::FMMMLayout::make_initialisations_for_rep_calc_classes ( Graph G)
private

Make initializations for the data structures that are used in the choosen class for rep. force calculation.

◆ make_simple_loopfree()

void ogdf::FMMMLayout::make_simple_loopfree ( const Graph G,
NodeArray< NodeAttributes > &  A,
EdgeArray< EdgeAttributes E,
Graph G_reduced,
NodeArray< NodeAttributes > &  A_reduced,
EdgeArray< EdgeAttributes > &  E_reduced 
)
private

Creates a simple and loopfree copy of G and stores the corresponding node / edge attributes.

The corresponding node / edge attributes are stored in A_reduced and E_reduced; the links to the copy_node and original node are stored in A, A_reduced, too.

◆ max_radius()

double ogdf::FMMMLayout::max_radius ( int  iter)
inlineprivate

Describes the max. radius of a move in one time step, depending on the number of iterations.

Definition at line 1052 of file FMMMLayout.h.

◆ maxIntPosExponent() [1/2]

int ogdf::FMMMLayout::maxIntPosExponent ( ) const
inline

Returns the current setting of option maxIntPosExponent.

This option defines the exponent used if allowedPositions() == FMMMOptions::AllowedPositions::Exponent.

Definition at line 409 of file FMMMLayout.h.

◆ maxIntPosExponent() [2/2]

void ogdf::FMMMLayout::maxIntPosExponent ( int  e)
inline

Sets the option maxIntPosExponent to e.

Definition at line 412 of file FMMMLayout.h.

◆ maxIterChange() [1/2]

FMMMOptions::MaxIterChange ogdf::FMMMLayout::maxIterChange ( ) const
inline

Returns the current setting of option maxIterChange.

Definition at line 490 of file FMMMLayout.h.

◆ maxIterChange() [2/2]

void ogdf::FMMMLayout::maxIterChange ( FMMMOptions::MaxIterChange  mic)
inline

Sets the option maxIterChange to mic.

Definition at line 493 of file FMMMLayout.h.

◆ maxIterFactor() [1/2]

int ogdf::FMMMLayout::maxIterFactor ( ) const
inline

Returns the current setting of option maxIterFactor.

This option defines the factor used for decrasing MaxIterations (in case of maxIterChange() == LinearlyDecreasing or maxIterChange() == RapidlyDecreasing).

Definition at line 501 of file FMMMLayout.h.

◆ maxIterFactor() [2/2]

void ogdf::FMMMLayout::maxIterFactor ( int  f)
inline

Sets the option maxIterFactor to f.

Definition at line 504 of file FMMMLayout.h.

◆ minDistCC() [1/2]

double ogdf::FMMMLayout::minDistCC ( ) const
inline

Returns the minimal distance between connected components.

Definition at line 445 of file FMMMLayout.h.

◆ minDistCC() [2/2]

void ogdf::FMMMLayout::minDistCC ( double  x)
inline

Sets the minimal distance between connected components to x.

Definition at line 448 of file FMMMLayout.h.

◆ minGraphSize() [1/2]

int ogdf::FMMMLayout::minGraphSize ( ) const
inline

Returns the current setting of option minGraphSize.

This option determines the number of nodes of a graph in the multilevel representation for which no more collapsing of galaxies is performed (i.e. the graph at the highest level).

Definition at line 467 of file FMMMLayout.h.

◆ minGraphSize() [2/2]

void ogdf::FMMMLayout::minGraphSize ( int  n)
inline

Sets the option minGraphSize to n.

Definition at line 470 of file FMMMLayout.h.

◆ move_nodes()

void ogdf::FMMMLayout::move_nodes ( Graph G,
NodeArray< NodeAttributes > &  A,
NodeArray< DPoint > &  F 
)
private

Move the nodes.

◆ newInitialPlacement() [1/2]

bool ogdf::FMMMLayout::newInitialPlacement ( ) const
inline

Returns the current setting of option newInitialPlacement.

This option defines if the initial placement of the nodes at the coarsest multilevel is varied for each distinct call of FMMMLayout or keeps always the same.

This setting determines the setting of the low-level option initialPlacementForces().

Definition at line 361 of file FMMMLayout.h.

◆ newInitialPlacement() [2/2]

void ogdf::FMMMLayout::newInitialPlacement ( bool  nip)
inline

Sets the option newInitialPlacement to nip.

Definition at line 364 of file FMMMLayout.h.

◆ nmParticlesInLeaves() [1/2]

int ogdf::FMMMLayout::nmParticlesInLeaves ( ) const
inline

Returns the current setting of option nmParticlesInLeaves.

Defines the maximal number of particles that are contained in a leaf of the reduced bucket quadtree.

Definition at line 705 of file FMMMLayout.h.

◆ nmParticlesInLeaves() [2/2]

void ogdf::FMMMLayout::nmParticlesInLeaves ( int  n)
inline

Sets the option nmParticlesInLeaves to n.

Definition at line 708 of file FMMMLayout.h.

◆ nmPrecision() [1/2]

int ogdf::FMMMLayout::nmPrecision ( ) const
inline

Returns the precision p for the p-term multipole expansions.

Definition at line 711 of file FMMMLayout.h.

◆ nmPrecision() [2/2]

void ogdf::FMMMLayout::nmPrecision ( int  p)
inline

Sets the precision for the multipole expansions to p.

Definition at line 714 of file FMMMLayout.h.

◆ nmSmallCell() [1/2]

FMMMOptions::SmallestCellFinding ogdf::FMMMLayout::nmSmallCell ( ) const
inline

Returns the current setting of option nmSmallCell.

Definition at line 695 of file FMMMLayout.h.

◆ nmSmallCell() [2/2]

void ogdf::FMMMLayout::nmSmallCell ( FMMMOptions::SmallestCellFinding  scf)
inline

Sets the option nmSmallCell to scf.

Definition at line 698 of file FMMMLayout.h.

◆ nmTreeConstruction() [1/2]

FMMMOptions::ReducedTreeConstruction ogdf::FMMMLayout::nmTreeConstruction ( ) const
inline

Returns the current setting of option nmTreeConstruction.

Definition at line 687 of file FMMMLayout.h.

◆ nmTreeConstruction() [2/2]

void ogdf::FMMMLayout::nmTreeConstruction ( FMMMOptions::ReducedTreeConstruction  rtc)
inline

Sets the option nmTreeConstruction to rtc.

Definition at line 690 of file FMMMLayout.h.

◆ pack_subGraph_drawings()

void ogdf::FMMMLayout::pack_subGraph_drawings ( NodeArray< NodeAttributes > &  A,
Graph  G_sub[],
NodeArray< NodeAttributes A_sub[] 
)
private

The drawings of the subgraphs are packed.

This is done such that the subgraphs do not overlap and fit into a small box with the desired aspect ratio.

◆ pageFormat() [1/2]

FMMMOptions::PageFormatType ogdf::FMMMLayout::pageFormat ( ) const
inline

Returns the current setting of option pageFormat.

This setting determines the setting of the low-level option pageRatio().

Definition at line 341 of file FMMMLayout.h.

◆ pageFormat() [2/2]

void ogdf::FMMMLayout::pageFormat ( FMMMOptions::PageFormatType  t)
inline

Sets the option pageRatio to t.

Definition at line 344 of file FMMMLayout.h.

◆ pageRatio() [1/2]

double ogdf::FMMMLayout::pageRatio ( ) const
inline

Returns the current setting of option pageRatio.

This option defines the desired aspect ratio of the rectangular drawing area.

Definition at line 423 of file FMMMLayout.h.

◆ pageRatio() [2/2]

void ogdf::FMMMLayout::pageRatio ( double  r)
inline

Sets the option pageRatio to r.

Definition at line 426 of file FMMMLayout.h.

◆ postSpringStrength() [1/2]

double ogdf::FMMMLayout::postSpringStrength ( ) const
inline

Returns the strength of the springs in the postprocessing step.

Definition at line 660 of file FMMMLayout.h.

◆ postSpringStrength() [2/2]

void ogdf::FMMMLayout::postSpringStrength ( double  x)
inline

Sets the strength of the springs in the postprocessing step to x.

Definition at line 663 of file FMMMLayout.h.

◆ postStrengthOfRepForces() [1/2]

double ogdf::FMMMLayout::postStrengthOfRepForces ( ) const
inline

Returns the strength of the repulsive forces in the postprocessing step.

Definition at line 666 of file FMMMLayout.h.

◆ postStrengthOfRepForces() [2/2]

void ogdf::FMMMLayout::postStrengthOfRepForces ( double  x)
inline

Sets the strength of the repulsive forces in the postprocessing step to x.

Definition at line 669 of file FMMMLayout.h.

◆ presortCCs() [1/2]

FMMMOptions::PreSort ogdf::FMMMLayout::presortCCs ( ) const
inline

Returns the current setting of option presortCCs.

Definition at line 451 of file FMMMLayout.h.

◆ presortCCs() [2/2]

void ogdf::FMMMLayout::presortCCs ( FMMMOptions::PreSort  ps)
inline

Sets the option presortCCs to ps.

Definition at line 454 of file FMMMLayout.h.

◆ prevent_oscillations()

void ogdf::FMMMLayout::prevent_oscillations ( Graph G,
NodeArray< DPoint > &  F,
NodeArray< DPoint > &  last_node_movement,
int  iter 
)
private

Depending on the direction of last_node_movement[v], the length of the next displacement of node v is restricted.

◆ qualityVersusSpeed() [1/2]

FMMMOptions::QualityVsSpeed ogdf::FMMMLayout::qualityVersusSpeed ( ) const
inline

Returns the current setting of option qualityVersusSpeed.

This setting determines the settings of the low-level options fixedIterations(), fineTuningIterations(), and nmPrecision().

Definition at line 371 of file FMMMLayout.h.

◆ qualityVersusSpeed() [2/2]

void ogdf::FMMMLayout::qualityVersusSpeed ( FMMMOptions::QualityVsSpeed  qvs)
inline

Sets the option qualityVersusSpeed to qvs.

Definition at line 374 of file FMMMLayout.h.

◆ randomTries() [1/2]

int ogdf::FMMMLayout::randomTries ( ) const
inline

Returns the current setting of option randomTries.

This option defines the number of tries to get a random node with minimal star mass (used in case of galaxyChoice() == NonUniformProbLowerMass and galaxyChoice() == NonUniformProbHigherMass).

Definition at line 484 of file FMMMLayout.h.

◆ randomTries() [2/2]

void ogdf::FMMMLayout::randomTries ( int  n)
inline

Sets the option randomTries to n.

Definition at line 487 of file FMMMLayout.h.

◆ randSeed() [1/2]

int ogdf::FMMMLayout::randSeed ( ) const
inline

Returns the seed of the random number generator.

Definition at line 387 of file FMMMLayout.h.

◆ randSeed() [2/2]

void ogdf::FMMMLayout::randSeed ( int  p)
inline

Sets the seed of the random number generator.

Definition at line 384 of file FMMMLayout.h.

◆ repForcesStrength() [1/2]

double ogdf::FMMMLayout::repForcesStrength ( ) const
inline

Returns the strength of the repulsive forces.

Definition at line 534 of file FMMMLayout.h.

◆ repForcesStrength() [2/2]

void ogdf::FMMMLayout::repForcesStrength ( double  x)
inline

Sets the strength of the repulsive forces to x.

Definition at line 537 of file FMMMLayout.h.

◆ repulsiveForcesCalculation() [1/2]

FMMMOptions::RepulsiveForcesMethod ogdf::FMMMLayout::repulsiveForcesCalculation ( ) const
inline

Returns the current setting of option repulsiveForcesCalculation.

Definition at line 540 of file FMMMLayout.h.

◆ repulsiveForcesCalculation() [2/2]

void ogdf::FMMMLayout::repulsiveForcesCalculation ( FMMMOptions::RepulsiveForcesMethod  rfc)
inline

Sets the option repulsiveForcesCalculation to rfc.

Definition at line 545 of file FMMMLayout.h.

◆ resetOptions()

void ogdf::FMMMLayout::resetOptions ( )

All parameter options (both low- and high-level) are set to the default values.

useHighLevelOptions() is also set to false.

◆ resizeDrawing() [1/2]

bool ogdf::FMMMLayout::resizeDrawing ( ) const
inline

Returns the current setting of option resizeDrawing.

If set to true, the resulting drawing is resized so that the average edge length is the desired edge length times resizingScalar().

Definition at line 617 of file FMMMLayout.h.

◆ resizeDrawing() [2/2]

void ogdf::FMMMLayout::resizeDrawing ( bool  b)
inline

Sets the option resizeDrawing to b.

Definition at line 620 of file FMMMLayout.h.

◆ resizingScalar() [1/2]

double ogdf::FMMMLayout::resizingScalar ( ) const
inline

Returns the current setting of option resizingScalar.

This option defines a parameter to scale the drawing if resizeDrawing() is true.

Definition at line 627 of file FMMMLayout.h.

◆ resizingScalar() [2/2]

void ogdf::FMMMLayout::resizingScalar ( double  s)
inline

Sets the option resizingScalar to s.

Definition at line 630 of file FMMMLayout.h.

◆ restrict_force_to_comp_box()

void ogdf::FMMMLayout::restrict_force_to_comp_box ( DPoint force)
inlineprivate

The force is restricted to have values within the comp.

box (needed for exception handling, if the force is too large for further calculations).

Definition at line 1085 of file FMMMLayout.h.

◆ rotate_components_and_calculate_bounding_rectangles()

void ogdf::FMMMLayout::rotate_components_and_calculate_bounding_rectangles ( List< Rectangle > &  R,
Graph  G_sub[],
NodeArray< NodeAttributes A_sub[] 
)
private

If number_of_components > 1, the subgraphs G_sub are rotated and skipped to find bounding rectangles with minimum area.

The information is saved in R and the node positions in A_sub are updated. If number_of_components == 1 a rotation with minimal aspect ratio is found instead.

◆ running()

bool ogdf::FMMMLayout::running ( int  iter,
int  max_mult_iter,
double  actforcevectorlength 
)
private

Returns true iff stopCriterion() is not met.

◆ set_average_ideal_edgelength()

void ogdf::FMMMLayout::set_average_ideal_edgelength ( Graph G,
EdgeArray< EdgeAttributes > &  E 
)
private

The average_ideal_edgelength for all edges is computed.

◆ set_radii()

void ogdf::FMMMLayout::set_radii ( const Graph G,
NodeArray< NodeAttributes > &  A 
)
private

The radii of the surrounding circles of the bounding boxes are computed.

◆ setSingleLevel()

void ogdf::FMMMLayout::setSingleLevel ( bool  b)
inline

Sets single level option, no multilevel hierarchy is created if b == true.

Definition at line 335 of file FMMMLayout.h.

◆ springStrength() [1/2]

double ogdf::FMMMLayout::springStrength ( ) const
inline

Returns the strength of the springs.

Definition at line 528 of file FMMMLayout.h.

◆ springStrength() [2/2]

void ogdf::FMMMLayout::springStrength ( double  x)
inline

Sets the strength of the springs to x.

Definition at line 531 of file FMMMLayout.h.

◆ stepsForRotatingComponents() [1/2]

int ogdf::FMMMLayout::stepsForRotatingComponents ( ) const
inline

Returns the current setting of option stepsForRotatingComponents.

This options determines the number of times each connected component is rotated with angles between 0 and 90 degree to obtain a bounding rectangle with small area.

Definition at line 433 of file FMMMLayout.h.

◆ stepsForRotatingComponents() [2/2]

void ogdf::FMMMLayout::stepsForRotatingComponents ( int  n)
inline

Sets the option stepsForRotatingComponents to n.

Definition at line 436 of file FMMMLayout.h.

◆ stopCriterion() [1/2]

FMMMOptions::StopCriterion ogdf::FMMMLayout::stopCriterion ( ) const
inline

Returns the stop criterion.

Definition at line 550 of file FMMMLayout.h.

◆ stopCriterion() [2/2]

void ogdf::FMMMLayout::stopCriterion ( FMMMOptions::StopCriterion  rsc)
inline

Sets the stop criterion to rsc.

Definition at line 553 of file FMMMLayout.h.

◆ threshold() [1/2]

double ogdf::FMMMLayout::threshold ( ) const
inline

Returns the threshold for the stop criterion.

(If the average absolute value of all forces in an iteration is less then threshold() then stop.)

Definition at line 560 of file FMMMLayout.h.

◆ threshold() [2/2]

void ogdf::FMMMLayout::threshold ( double  x)
inline

Sets the threshold for the stop criterion to x.

Definition at line 563 of file FMMMLayout.h.

◆ tipOverCCs() [1/2]

FMMMOptions::TipOver ogdf::FMMMLayout::tipOverCCs ( ) const
inline

Returns the current setting of option tipOverCCs.

Definition at line 439 of file FMMMLayout.h.

◆ tipOverCCs() [2/2]

void ogdf::FMMMLayout::tipOverCCs ( FMMMOptions::TipOver  to)
inline

Sets the option tipOverCCs to to.

Definition at line 442 of file FMMMLayout.h.

◆ unitEdgeLength() [1/2]

double ogdf::FMMMLayout::unitEdgeLength ( ) const
inline

Returns the current setting of option unitEdgeLength.

Definition at line 347 of file FMMMLayout.h.

◆ unitEdgeLength() [2/2]

void ogdf::FMMMLayout::unitEdgeLength ( double  x)
inline

Sets the option unitEdgeLength to x.

Definition at line 350 of file FMMMLayout.h.

◆ update_boxlength_and_cornercoordinate()

void ogdf::FMMMLayout::update_boxlength_and_cornercoordinate ( Graph G,
NodeArray< NodeAttributes > &  A 
)
private

Computes a new tight computational square-box.

(Guaranteeing, that all midpoints are inside the square.)

◆ update_edgelength()

void ogdf::FMMMLayout::update_edgelength ( List< edge > &  S,
EdgeArray< double > &  new_edgelength,
EdgeArray< EdgeAttributes > &  E_reduced 
)
private

Sets for each edge e of G_reduced in S its edgelength to new_edgelength[e].

Also stores this information in E_reduced.

◆ update_low_level_options_due_to_high_level_options_settings()

void ogdf::FMMMLayout::update_low_level_options_due_to_high_level_options_settings ( )
private

Updates several low level parameter options due to the settings of the high level parameter options.

◆ useHighLevelOptions() [1/2]

bool ogdf::FMMMLayout::useHighLevelOptions ( ) const
inline

Returns the current setting of option useHighLevelOptions.

If set to true, the high-level options are used to set the most important low-level options (which are pageRatio(), initialPlacementForces(), fixedIterations(), fineTuningIterations(), and nmPrecision()).

Usually, it is sufficient just to set high-level options. If you want to be more specific, you have two options:

  1. Set this parameter to false and set all low-level options as you please.
  2. Set this parameter to true and only set the low-level options that are not affected by high-level options.

It might be useful to resetOptions() first if you use the same FMMMLayout multiple times.

Definition at line 329 of file FMMMLayout.h.

◆ useHighLevelOptions() [2/2]

void ogdf::FMMMLayout::useHighLevelOptions ( bool  uho)
inline

Sets the option useHighLevelOptions to uho.

Definition at line 332 of file FMMMLayout.h.

Member Data Documentation

◆ average_ideal_edgelength

double ogdf::FMMMLayout::average_ideal_edgelength
private

Measured from center to center.

Definition at line 788 of file FMMMLayout.h.

◆ boxlength

double ogdf::FMMMLayout::boxlength
private

Holds the length of the quadratic comput.

box.

Definition at line 789 of file FMMMLayout.h.

◆ cool_factor

double ogdf::FMMMLayout::cool_factor
private

Needed for scaling the forces if coolTemperature is true.

Definition at line 787 of file FMMMLayout.h.

◆ down_left_corner

DPoint ogdf::FMMMLayout::down_left_corner
private

Holds down left corner of the comput.

box.

Definition at line 791 of file FMMMLayout.h.

◆ FR

energybased::fmmm::FruchtermanReingold ogdf::FMMMLayout::FR
private

Class for repulsive force calculation (Fruchterman, Reingold).

Definition at line 795 of file FMMMLayout.h.

◆ m_adjustPostRepStrengthDynamically

bool ogdf::FMMMLayout::m_adjustPostRepStrengthDynamically
private

The option adjustPostRepStrengthDynamically.

Definition at line 773 of file FMMMLayout.h.

◆ m_allowedPositions

FMMMOptions::AllowedPositions ogdf::FMMMLayout::m_allowedPositions
private

The option for allowed positions.

Definition at line 730 of file FMMMLayout.h.

◆ m_coolTemperature

bool ogdf::FMMMLayout::m_coolTemperature
private

The option for how to scale forces.

Definition at line 764 of file FMMMLayout.h.

◆ m_coolValue

double ogdf::FMMMLayout::m_coolValue
private

The value by which forces are decreased.

Definition at line 765 of file FMMMLayout.h.

◆ m_edgeLengthMeasurement

FMMMOptions::EdgeLengthMeasurement ogdf::FMMMLayout::m_edgeLengthMeasurement
private

The option for edge length measurement.

Definition at line 729 of file FMMMLayout.h.

◆ m_fineTuneScalar

double ogdf::FMMMLayout::m_fineTuneScalar
private

Parameter for scaling forces during fine tuning.

Definition at line 772 of file FMMMLayout.h.

◆ m_fineTuningIterations

int ogdf::FMMMLayout::m_fineTuningIterations
private

The number of iterations for fine tuning.

Definition at line 771 of file FMMMLayout.h.

◆ m_fixedIterations

int ogdf::FMMMLayout::m_fixedIterations
private

The fixed number of iterations for the stop criterion.

Definition at line 762 of file FMMMLayout.h.

◆ m_forceModel

FMMMOptions::ForceModel ogdf::FMMMLayout::m_forceModel
private

The used force model.

Definition at line 756 of file FMMMLayout.h.

◆ m_forceScalingFactor

double ogdf::FMMMLayout::m_forceScalingFactor
private

The scaling factor for the forces.

Definition at line 763 of file FMMMLayout.h.

◆ m_frGridQuotient

int ogdf::FMMMLayout::m_frGridQuotient
private

The grid quotient.

Definition at line 778 of file FMMMLayout.h.

◆ m_galaxyChoice

FMMMOptions::GalaxyChoice ogdf::FMMMLayout::m_galaxyChoice
private

The selection of galaxy nodes.

Definition at line 743 of file FMMMLayout.h.

◆ m_initialPlacementForces

FMMMOptions::InitialPlacementForces ogdf::FMMMLayout::m_initialPlacementForces
private

The option for how the initial placement is done.

Definition at line 766 of file FMMMLayout.h.

◆ m_initialPlacementMult

FMMMOptions::InitialPlacementMult ogdf::FMMMLayout::m_initialPlacementMult
private

The option for creating initial placement.

Definition at line 753 of file FMMMLayout.h.

◆ m_maxIntPosExponent

int ogdf::FMMMLayout::m_maxIntPosExponent
private

The option for the used exponent.

Definition at line 731 of file FMMMLayout.h.

◆ m_maxIterChange

FMMMOptions::MaxIterChange ogdf::FMMMLayout::m_maxIterChange
private

The option for how to change MaxIterations. If maxIterChange != micConstant, the iterations are decreased depending on the level, starting from ((maxIterFactor()-1) * fixedIterations())

Definition at line 750 of file FMMMLayout.h.

◆ m_maxIterFactor

int ogdf::FMMMLayout::m_maxIterFactor
private

The factor used for decreasing MaxIterations.

Definition at line 752 of file FMMMLayout.h.

◆ m_minDistCC

double ogdf::FMMMLayout::m_minDistCC
private

The separation between connected components.

Definition at line 737 of file FMMMLayout.h.

◆ m_minGraphSize

int ogdf::FMMMLayout::m_minGraphSize
private

The option for minimal graph size.

Definition at line 742 of file FMMMLayout.h.

◆ m_newInitialPlacement

bool ogdf::FMMMLayout::m_newInitialPlacement
private

The option for new initial placement.

Definition at line 723 of file FMMMLayout.h.

◆ m_NMParticlesInLeaves

int ogdf::FMMMLayout::m_NMParticlesInLeaves
private

The maximal number of particles in a leaf.

Definition at line 782 of file FMMMLayout.h.

◆ m_NMPrecision

int ogdf::FMMMLayout::m_NMPrecision
private

The precision for multipole expansions.

Definition at line 783 of file FMMMLayout.h.

◆ m_NMSmallCell

FMMMOptions::SmallestCellFinding ogdf::FMMMLayout::m_NMSmallCell
private

The option for how to calculate smallest quadtratic cells.

Definition at line 781 of file FMMMLayout.h.

◆ m_NMTreeConstruction

FMMMOptions::ReducedTreeConstruction ogdf::FMMMLayout::m_NMTreeConstruction
private

The option for how to construct reduced bucket quadtree.

Definition at line 780 of file FMMMLayout.h.

◆ m_pageFormat

FMMMOptions::PageFormatType ogdf::FMMMLayout::m_pageFormat
private

The option for the page format.

Definition at line 721 of file FMMMLayout.h.

◆ m_pageRatio

double ogdf::FMMMLayout::m_pageRatio
private

The desired page ratio.

Definition at line 734 of file FMMMLayout.h.

◆ m_postSpringStrength

double ogdf::FMMMLayout::m_postSpringStrength
private

The strength of springs during postprocessing.

Definition at line 774 of file FMMMLayout.h.

◆ m_postStrengthOfRepForces

double ogdf::FMMMLayout::m_postStrengthOfRepForces
private

The strength of repulsive forces during postprocessing.

Definition at line 775 of file FMMMLayout.h.

◆ m_presortCCs

FMMMOptions::PreSort ogdf::FMMMLayout::m_presortCCs
private

The option for presorting connected components.

Definition at line 738 of file FMMMLayout.h.

◆ m_qualityVersusSpeed

FMMMOptions::QualityVsSpeed ogdf::FMMMLayout::m_qualityVersusSpeed
private

The option for quality-vs-speed trade-off.

Definition at line 724 of file FMMMLayout.h.

◆ m_randomTries

int ogdf::FMMMLayout::m_randomTries
private

The number of random tries.

Definition at line 744 of file FMMMLayout.h.

◆ m_randSeed

int ogdf::FMMMLayout::m_randSeed
private

The random seed.

Definition at line 728 of file FMMMLayout.h.

◆ m_repForcesStrength

double ogdf::FMMMLayout::m_repForcesStrength
private

The strength of repulsive forces.

Definition at line 758 of file FMMMLayout.h.

◆ m_repulsiveForcesCalculation

FMMMOptions::RepulsiveForcesMethod ogdf::FMMMLayout::m_repulsiveForcesCalculation
private

Option for how to calculate repulsive forces.

Definition at line 759 of file FMMMLayout.h.

◆ m_resizeDrawing

bool ogdf::FMMMLayout::m_resizeDrawing
private

The option for resizing the drawing.

Definition at line 769 of file FMMMLayout.h.

◆ m_resizingScalar

double ogdf::FMMMLayout::m_resizingScalar
private

Parameter for resizing the drawing.

Definition at line 770 of file FMMMLayout.h.

◆ m_singleLevel

bool ogdf::FMMMLayout::m_singleLevel
private

Option for pure single level.

Definition at line 741 of file FMMMLayout.h.

◆ m_springStrength

double ogdf::FMMMLayout::m_springStrength
private

The strengths of springs.

Definition at line 757 of file FMMMLayout.h.

◆ m_stepsForRotatingComponents

int ogdf::FMMMLayout::m_stepsForRotatingComponents
private

The number of rotations.

Definition at line 735 of file FMMMLayout.h.

◆ m_stopCriterion

FMMMOptions::StopCriterion ogdf::FMMMLayout::m_stopCriterion
private

The stop criterion.

Definition at line 760 of file FMMMLayout.h.

◆ m_threshold

double ogdf::FMMMLayout::m_threshold
private

The threshold for the stop criterion.

Definition at line 761 of file FMMMLayout.h.

◆ m_tipOverCCs

FMMMOptions::TipOver ogdf::FMMMLayout::m_tipOverCCs
private

Option for tip-over of connected components.

Definition at line 736 of file FMMMLayout.h.

◆ m_unitEdgeLength

double ogdf::FMMMLayout::m_unitEdgeLength
private

The unit edge length.

Definition at line 722 of file FMMMLayout.h.

◆ m_useHighLevelOptions

bool ogdf::FMMMLayout::m_useHighLevelOptions
private

The option for using high-level options.

Definition at line 720 of file FMMMLayout.h.

◆ max_integer_position

double ogdf::FMMMLayout::max_integer_position
private

The maximum value for an integer position.

Definition at line 786 of file FMMMLayout.h.

◆ NM

energybased::fmmm::NewMultipoleMethod ogdf::FMMMLayout::NM
private

Class for repulsive force calculation.

Definition at line 796 of file FMMMLayout.h.

◆ number_of_components

int ogdf::FMMMLayout::number_of_components
private

The number of components of the graph.

Definition at line 790 of file FMMMLayout.h.

◆ radius

NodeArray<double> ogdf::FMMMLayout::radius
private

Holds the radius of the surrounding circle for each node.

Definition at line 792 of file FMMMLayout.h.

◆ time_total

double ogdf::FMMMLayout::time_total
private

The runtime (=CPU-time) of the algorithm in seconds.

Definition at line 793 of file FMMMLayout.h.


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