Open
Graph Drawing
Framework

 v.2015.05
 

ogdf::FMMMLayout Class Reference

The fast multipole multilevel layout algorithm. More...

#include <ogdf/energybased/FMMMLayout.h>

+ Inheritance diagram for ogdf::FMMMLayout:

Public Types

enum  AllowedPositions { apAll, apInteger, apExponent }
 Specifies which positions for a node are allowed. More...
 
enum  EdgeLengthMeasurement { elmMidpoint, elmBoundingCircle }
 Specifies how the length of an edge is measured. More...
 
enum  ForceModel { fmFruchtermanReingold, fmEades, fmNew }
 Specifies the force model. More...
 
enum  GalaxyChoice { gcUniformProb, gcNonUniformProbLowerMass, gcNonUniformProbHigherMass }
 Specifies how sun nodes of galaxies are selected. More...
 
enum  InitialPlacementForces { ipfUniformGrid, ipfRandomTime, ipfRandomRandIterNr, ipfKeepPositions }
 Specifies how the initial placement is done. More...
 
enum  InitialPlacementMult { ipmSimple, ipmAdvanced }
 Specifies how the initial placement is generated. More...
 
enum  MaxIterChange { micConstant, micLinearlyDecreasing, micRapidlyDecreasing }
 Specifies how MaxIterations is changed in subsequent multilevels. More...
 
enum  PageFormatType { pfPortrait, pfLandscape, pfSquare }
 Possible page formats. More...
 
enum  PreSort { psNone, psDecreasingHeight, psDecreasingWidth }
 Specifies how connected components are sorted before the packing algorithm is applied. More...
 
enum  QualityVsSpeed { qvsGorgeousAndEfficient, qvsBeautifulAndFast, qvsNiceAndIncredibleSpeed }
 Trade-off between run-time and quality. More...
 
enum  ReducedTreeConstruction { rtcPathByPath, rtcSubtreeBySubtree }
 Specifies how the reduced bucket quadtree is constructed. More...
 
enum  RepulsiveForcesMethod { rfcExact, rfcGridApproximation, rfcNMM }
 Specifies how to calculate repulsive forces. More...
 
enum  SmallestCellFinding { scfIteratively, scfAluru }
 Specifies how to calculate the smallest quadratic cell surrounding particles of a node in the reduced bucket quadtree. More...
 
enum  StopCriterion { scFixedIterations, scThreshold, scFixedIterationsOrThreshold }
 Specifies the stop criterion. More...
 
enum  TipOver { toNone, toNoGrowingRow, toAlways }
 Specifies in which case it is allowed to tip over drawings of connected components. More...
 

Public Member Functions

 FMMMLayout ()
 Creates an instance of the layout algorithm. More...
 
virtual ~FMMMLayout ()
 
The algorithm call
void call (GraphAttributes &GA)
 Calls the algorithm for graph GA and returns the layout information in AG. More...
 
void call (ClusterGraphAttributes &GA)
 
void call (GraphAttributes &GA, GraphConstraints &GC)
 Computes a layout of graph GA wrt the constraints in GC (if applicable). More...
 
void call (GraphAttributes &GA, const EdgeArray< double > &edgeLength)
 Extended algorithm call: Allows to pass desired lengths of the edges. More...
 
void call (GraphAttributes &AG, char *ps_file)
 Extended algorithm call: Calls the algorithm for graph AG. More...
 
void call (GraphAttributes &AG, 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.

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...
 
PageFormatType pageFormat () const
 Returns the current setting of option pageFormat. More...
 
void pageFormat (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...
 
QualityVsSpeed qualityVersusSpeed () const
 Returns the current setting of option qualityVersusSpeed. More...
 
void qualityVersusSpeed (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...
 
EdgeLengthMeasurement edgeLengthMeasurement () const
 Returns the current setting of option edgeLengthMeasurement. More...
 
void edgeLengthMeasurement (EdgeLengthMeasurement elm)
 Sets the option edgeLengthMeasurement to elm. More...
 
AllowedPositions allowedPositions () const
 Returns the current setting of option allowedPositions. More...
 
void allowedPositions (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...
 
TipOver tipOverCCs () const
 Returns the current setting of option tipOverCCs. More...
 
void tipOverCCs (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...
 
PreSort presortCCs () const
 Returns the current setting of option presortCCs. More...
 
void presortCCs (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...
 
GalaxyChoice galaxyChoice () const
 Returns the current setting of option galaxyChoice. More...
 
void galaxyChoice (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...
 
MaxIterChange maxIterChange () const
 Returns the current setting of option maxIterChange. More...
 
void maxIterChange (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...
 
InitialPlacementMult initialPlacementMult () const
 Returns the current setting of option initialPlacementMult. More...
 
void initialPlacementMult (InitialPlacementMult ipm)
 Sets the option initialPlacementMult to ipm. More...
 
Options for the force calculation step
ForceModel forceModel () const
 Returns the used force model. More...
 
void forceModel (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...
 
RepulsiveForcesMethod repulsiveForcesCalculation () const
 Returns the current setting of option repulsiveForcesCalculation. More...
 
void repulsiveForcesCalculation (RepulsiveForcesMethod rfc)
 Sets the option repulsiveForcesCalculation to rfc. More...
 
StopCriterion stopCriterion () const
 Returns the stop criterion. More...
 
void stopCriterion (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...
 
InitialPlacementForces initialPlacementForces () const
 Returns the current setting of option initialPlacementForces. More...
 
void initialPlacementForces (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...
 
ReducedTreeConstruction nmTreeConstruction () const
 Returns the current setting of option nmTreeConstruction. More...
 
void nmTreeConstruction (ReducedTreeConstruction rtc)
 Sets the option nmTreeConstruction to rtc. More...
 
SmallestCellFinding nmSmallCell () const
 Returns the current setting of option nmSmallCell. More...
 
void nmSmallCell (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 Member Functions

void adapt_drawing_to_ideal_average_edgelength (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E)
 
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...
 
double angle (DPoint &P, DPoint &Q, DPoint &R)
 Calculates the angle between PQ and PS in [0,2pi). More...
 
double calculate_area (double width, double height, int comp_nr)
 
void calculate_attractive_forces (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, NodeArray< DPoint > &F_attr)
 Calculates attractive forces for each node. 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 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...
 
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 calculate_repulsive_forces (Graph &G, NodeArray< NodeAttributes > &A, NodeArray< DPoint > &F_rep)
 Calculates repulsive forces for each node. More...
 
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_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_MULTILEVEL_step_for_subGraph (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, int comp_index)
 Calls the multilevel step for subGraph G. 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...
 
void create_initial_placement (Graph &G, NodeArray< NodeAttributes > &A)
 The initial placements of the nodes are created by using initialPlacementForces(). More...
 
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 create_postscript_drawing (GraphAttributes &AG, char *ps_file)
 Creates a simple drawing of AG in postscript format and saves it in file ps_file. More...
 
void deallocate_memory_for_rep_calc_classes ()
 Deallocates dynamically allocated memory of the choosen rep. calculation class. 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...
 
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 export_node_positions (NodeArray< NodeAttributes > &A, List< Rectangle > &R, Graph G_sub[], NodeArray< NodeAttributes > A_sub[])
 
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 G. More...
 
double f_attr_scalar (double d, double ind_ideal_edge_length)
 Returns the attractive force scalar. More...
 
double get_average_forcevector_length (Graph &G, NodeArray< DPoint > &F)
 
int get_max_mult_iter (int act_level, int max_level, int node_nr)
 
double get_post_rep_force_strength (int n)
 Returns the value for the strength of the repulsive forces. 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 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 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 init_F (Graph &G, NodeArray< DPoint > &F)
 Sets all entries of F to (0,0). 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 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 init_time ()
 Sets time_total to zero. More...
 
void initialize_all_options ()
 All parameter options are set to the default values. 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 make_positions_integer (Graph &G, NodeArray< NodeAttributes > &A)
 Makes the node positions integers. 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...
 
double max_radius (int iter)
 Describes the max. radius of a move in one time step, depending on the number of iterations. More...
 
void move_nodes (Graph &G, NodeArray< NodeAttributes > &A, NodeArray< DPoint > &F)
 Move the nodes. More...
 
void pack_subGraph_drawings (NodeArray< NodeAttributes > &A, Graph G_sub[], NodeArray< NodeAttributes > A_sub[])
 The drawings of the subgraphs are packed. More...
 
void prevent_oscilations (Graph &G, NodeArray< DPoint > &F, NodeArray< DPoint > &last_node_movement, int iter)
 
void restrict_force_to_comp_box (DPoint &force)
 
void rotate_components_and_calculate_bounding_rectangles (List< Rectangle > &R, Graph G_sub[], NodeArray< NodeAttributes > A_sub[])
 
void set_average_ideal_edgelength (Graph &G, EdgeArray< EdgeAttributes > &E)
 The average_ideal_edgelength for all edges is computed. More...
 
void set_radii (const Graph &G, NodeArray< NodeAttributes > &A)
 The radii of the surrounding circles of the bounding boxes are computed. More...
 
void update_boxlength_and_cornercoordinate (Graph &G, NodeArray< NodeAttributes > &A)
 Computes a new tight computational square-box. 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...
 
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...
 

Private Attributes

double average_ideal_edgelength
 Measured from center to center. More...
 
double boxlength
 Holds the length of the quadratic comput. box. 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. box. More...
 
FruchtermanReingold FR
 Class for repulsive force calculation (Fruchterman, Reingold). More...
 
bool m_adjustPostRepStrengthDynamically
 The option adjustPostRepStrengthDynamically. More...
 
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...
 
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...
 
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...
 
GalaxyChoice m_galaxyChoice
 The selection of galaxy nodes. More...
 
InitialPlacementForces m_initialPlacementForces
 The option for how the initial placement is done. More...
 
InitialPlacementMult m_initialPlacementMult
 The option for creating initial placement. More...
 
int m_maxIntPosExponent
 The option for the used exponent. More...
 
MaxIterChange m_maxIterChange
 
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...
 
SmallestCellFinding m_NMSmallCell
 The option for how to calculate smallest quadtratic cells. More...
 
ReducedTreeConstruction m_NMTreeConstruction
 The option for how to construct reduced bucket quadtree. More...
 
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...
 
PreSort m_presortCCs
 The option for presorting connected components. More...
 
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...
 
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...
 
StopCriterion m_stopCriterion
 The stop criterion. More...
 
double m_threshold
 The threshold for the stop criterion. More...
 
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...
 
NMM 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.
pageFormatPageFormatType pfSquare The desired aspect ratio of the layout.
unitEdgeLengthdouble100.0 The unit edge length.
newInitialPlacementboolfalse Specifies if initial placement of nodes is varied.
qualityVersusSpeedQualityVsSpeed qvsBeautifulAndFast 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.
edgeLengthMeasurementEdgeLengthMeasurement elmBoundingCircle Indicates how the length of an edge is measured.
allowedPositionsAllowedPositions apInteger Defines which positions for a node are allowed.
maxIntPosExponentint40 Defines the exponent used if allowedPositions == apExponent.
Divide et impera step
pageRatiodouble1.0 The desired page ratio.
stepsForRotatingComponentsint10 The number of rotations per connected component.
tipOverCCsTipOver toNoGrowingRow Specifies when it is allowed to tip over drawings.
minDistCCdouble100 The minimal distance between connected components.
presortCCsPreSort psDecreasingHeight 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.
galaxyChoiceGalaxyChoice gcNonUniformProbLowerMass Defines how sun nodes of galaxies are selected.
randomTriesint20 Defines the number of tries to get a random node with minimal star mass.
maxIterChangeMaxIterChange micLinearlyDecreasing Defines how MaxIterations is changed in subsequent multilevels.
maxIterFactorint10 Defines the factor used for decreasing MaxIterations.
initialPlacementMultInitialPlacementMult ipmAdvanced Defines how the initial placement is generated.
Force calculation step
forceModelForceModel fmNew The used force model.
springStrengthdouble1.0 The strength of the springs.
repForcesStrengthdouble1.0 The strength of the repulsive forces.
repulsiveForcesCalculationRepulsiveForcesMethod rfcNMM Defines how to calculate repulsive forces.
stopCriterionStopCriterion scFixedIterationsOrThreshold 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.
initialPlacementForcesInitialPlacementForces ipfRandomRandIterNr 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.
nmTreeConstructionReducedTreeConstruction rtcSubtreeBySubtree Defines how the reduced bucket quadtree is constructed.
nmSmallCellSmallestCellFinding scfIteratively 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 250 of file FMMMLayout.h.

Member Enumeration Documentation

Specifies which positions for a node are allowed.

Enumerator
apAll 
apInteger 
apExponent 

Definition at line 274 of file FMMMLayout.h.

Specifies how the length of an edge is measured.

Enumerator
elmMidpoint 

Measure from center point of edge end points.

elmBoundingCircle 

Measure from border of circle s surrounding edge end points.

Definition at line 268 of file FMMMLayout.h.

Specifies the force model.

Enumerator
fmFruchtermanReingold 

The force-model by Fruchterman, Reingold.

fmEades 

The force-model by Eades.

fmNew 

The new force-model.

Definition at line 315 of file FMMMLayout.h.

Specifies how sun nodes of galaxies are selected.

Enumerator
gcUniformProb 
gcNonUniformProbLowerMass 
gcNonUniformProbHigherMass 

Definition at line 295 of file FMMMLayout.h.

Specifies how the initial placement is done.

Enumerator
ipfUniformGrid 

Uniform placement on a grid.

ipfRandomTime 

Random placement (based on current time).

ipfRandomRandIterNr 

Random placement (based on randIterNr()).

ipfKeepPositions 

No change in placement.

Definition at line 336 of file FMMMLayout.h.

Specifies how the initial placement is generated.

Enumerator
ipmSimple 
ipmAdvanced 

Definition at line 309 of file FMMMLayout.h.

Specifies how MaxIterations is changed in subsequent multilevels.

Enumerator
micConstant 
micLinearlyDecreasing 
micRapidlyDecreasing 

Definition at line 302 of file FMMMLayout.h.

Possible page formats.

Enumerator
pfPortrait 

A4 portrait page.

pfLandscape 

A4 landscape page.

pfSquare 

Square format.

Definition at line 254 of file FMMMLayout.h.

Specifies how connected components are sorted before the packing algorithm is applied.

Enumerator
psNone 

Do not presort.

psDecreasingHeight 

Presort by decreasing height of components.

psDecreasingWidth 

Presort by decreasing width of components.

Definition at line 288 of file FMMMLayout.h.

Trade-off between run-time and quality.

Enumerator
qvsGorgeousAndEfficient 

Best quality.

qvsBeautifulAndFast 

Medium quality and speed.

qvsNiceAndIncredibleSpeed 

Best speed.

Definition at line 261 of file FMMMLayout.h.

Specifies how the reduced bucket quadtree is constructed.

Enumerator
rtcPathByPath 

Path-by-path construction.

rtcSubtreeBySubtree 

Subtree-by-subtree construction.

Definition at line 344 of file FMMMLayout.h.

Specifies how to calculate repulsive forces.

Enumerator
rfcExact 

Exact calculation.

rfcGridApproximation 

Grid approximation.

rfcNMM 

Calculation as for new multipole method.

Definition at line 322 of file FMMMLayout.h.

Specifies how to calculate the smallest quadratic cell surrounding particles of a node in the reduced bucket quadtree.

Enumerator
scfIteratively 

Iteratively (in constant time).

scfAluru 

According to formula by Aluru et al. (in constant time).

Definition at line 350 of file FMMMLayout.h.

Specifies the stop criterion.

Enumerator
scFixedIterations 

Stop if fixedIterations() is reached.

scThreshold 

Stop if threshold() is reached.

scFixedIterationsOrThreshold 

Stop if fixedIterations() or threshold() is reached.

Definition at line 329 of file FMMMLayout.h.

Specifies in which case it is allowed to tip over drawings of connected components.

Enumerator
toNone 
toNoGrowingRow 
toAlways 

Definition at line 281 of file FMMMLayout.h.

Constructor & Destructor Documentation

ogdf::FMMMLayout::FMMMLayout ( )

Creates an instance of the layout algorithm.

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

Definition at line 360 of file FMMMLayout.h.

Member Function Documentation

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.

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.

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 848 of file FMMMLayout.h.

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

Sets the option adjustPostRepStrengthDynamically to b.

Definition at line 853 of file FMMMLayout.h.

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

Returns the current setting of option allowedPositions.

This option defines which positions for a node are allowed. Possibly values:

  • apAll: every position is allowed
  • apInteger: only integer positions in the range depending on the number of nodes
  • apExponent: only integer positions in the range of -2^MaxIntPosExponent to 2^MaxIntPosExponent

Definition at line 518 of file FMMMLayout.h.

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

Sets the option allowedPositions to ap.

Definition at line 521 of file FMMMLayout.h.

double ogdf::FMMMLayout::angle ( DPoint P,
DPoint Q,
DPoint R 
)
private

Calculates the angle between PQ and PS in [0,2pi).

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 1190 of file FMMMLayout.h.

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.

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.

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.

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.

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 1269 of file FMMMLayout.h.

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

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

Implements ogdf::LayoutModule.

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

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

void ogdf::FMMMLayout::call ( GraphAttributes GA,
GraphConstraints GC 
)
inlinevirtual

Computes a layout of graph GA wrt the constraints in GC (if applicable).

Reimplemented from ogdf::LayoutModule.

Definition at line 376 of file FMMMLayout.h.

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.
void ogdf::FMMMLayout::call ( GraphAttributes AG,
char *  ps_file 
)

Extended algorithm call: Calls the algorithm for graph AG.

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

void ogdf::FMMMLayout::call ( GraphAttributes AG,
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 AG.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).

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.

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.

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

Calls the multilevel step for subGraph G.

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.

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 766 of file FMMMLayout.h.

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

Sets the option coolTemperature to b.

Definition at line 769 of file FMMMLayout.h.

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 776 of file FMMMLayout.h.

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

Sets the option coolValue to x.

Definition at line 779 of file FMMMLayout.h.

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

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

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).

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

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

void ogdf::FMMMLayout::deallocate_memory_for_rep_calc_classes ( )
inlineprivate

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

Definition at line 1284 of file FMMMLayout.h.

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 1217 of file FMMMLayout.h.

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 ogdf::FMMMLayout::edgeLengthMeasurement ( ) const
inline

Returns the current setting of option edgeLengthMeasurement.

This option indicates how the length of an edge is measured. Possible values:

  • elmMidpoint: from center to center
  • elmBoundingCircle: the distance between the two tight circles bounding the graphics of two adjacent nodes

Definition at line 501 of file FMMMLayout.h.

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

Sets the option edgeLengthMeasurement to elm.

Definition at line 506 of file FMMMLayout.h.

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)

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 G.

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

Returns the attractive force scalar.

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 837 of file FMMMLayout.h.

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

Sets the option fineTuneScalar to s.

Definition at line 840 of file FMMMLayout.h.

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

Returns the number of iterations for fine tuning.

Definition at line 827 of file FMMMLayout.h.

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

Sets the number of iterations for fine tuning to n.

Definition at line 830 of file FMMMLayout.h.

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

Returns the fixed number of iterations for the stop criterion.

Definition at line 750 of file FMMMLayout.h.

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

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

Definition at line 753 of file FMMMLayout.h.

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

Returns the used force model.

Possibly values:

  • fmFruchtermanReingold: model of Fruchterman and Reingold
  • fmEades: model of Eades
  • fmNew: new model

Definition at line 692 of file FMMMLayout.h.

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

Sets the used force model to fm.

Definition at line 695 of file FMMMLayout.h.

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

Returns the scaling factor for the forces.

Definition at line 756 of file FMMMLayout.h.

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

Sets the scaling factor for the forces to \ f.

Definition at line 759 of file FMMMLayout.h.

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 882 of file FMMMLayout.h.

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

Sets the option frGridQuotient to p.

Definition at line 885 of file FMMMLayout.h.

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

Returns the current setting of option galaxyChoice.

This option defines how sun nodes of galaxies are selected. Possible values:

  • gcUniformProb: selecting by uniform random probability
  • gcNonUniformProbLowerMass: selecting by non-uniform probability depending on the star masses (prefering nodes with lower star mass)
  • gcNonUniformProbHigherMass: as above but prefering nodes with higher star mass

Definition at line 620 of file FMMMLayout.h.

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

Sets the option galaxyChoice to gc.

Definition at line 623 of file FMMMLayout.h.

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().

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.

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 1121 of file FMMMLayout.h.

double ogdf::FMMMLayout::getCpuTime ( )
inline

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

Definition at line 413 of file FMMMLayout.h.

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.

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.

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).

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

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

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.

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).

void ogdf::FMMMLayout::init_time ( )
inlineprivate

Sets time_total to zero.

Definition at line 1384 of file FMMMLayout.h.

void ogdf::FMMMLayout::initialize_all_options ( )
private

All parameter options are set to the default values.

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

Returns the current setting of option initialPlacementForces.

This option defines how the initial placement is done. Possible values:

  • ipfUniformGrid: uniform on a grid
  • ipfRandomTime: random based on actual time
  • ipfRandomRandIterNr: random based on randIterNr()
  • ipfKeepPositions: no change in placement

Definition at line 791 of file FMMMLayout.h.

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

Sets the option initialPlacementForces to ipf.

Definition at line 796 of file FMMMLayout.h.

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

Returns the current setting of option initialPlacementMult.

This option defines how the initial placement is generated. Possible values:

  • ipmSimple: only using information about placement of nodes on higher levels
  • ipmAdvanced: using additional information about the placement of all inter
  • solar system nodes

Definition at line 670 of file FMMMLayout.h.

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

Sets the option initialPlacementMult to ipm.

Definition at line 675 of file FMMMLayout.h.

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.

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

Makes the node positions integers.

If allowedPositions == apInteger the values are in a range depending on G.number_of_nodes() and the average_ideal_edgelength. If allowed_positions == apExponent the values are integers in a bounded integer range.

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.

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 1319 of file FMMMLayout.h.

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

Returns the current setting of option maxIntPosExponent.

This option defines the exponent used if allowedPositions() == apExponent.

Definition at line 527 of file FMMMLayout.h.

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

Sets the option maxIntPosExponent to e.

Definition at line 530 of file FMMMLayout.h.

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

Returns the current setting of option maxIterChange.

This option defines how MaxIterations is changed in subsequent multilevels. Possible values:

  • micConstant: kept constant at the force calculation step at every level
  • micLinearlyDecreasing: linearly decreasing from MaxIterFactor*FixedIterations to FixedIterations
  • micRapidlyDecreasing: rapdily decreasing from MaxIterFactor*FixedIterations to FixedIterations

Definition at line 646 of file FMMMLayout.h.

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

Sets the option maxIterChange to mic.

Definition at line 649 of file FMMMLayout.h.

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() == micLinearlyDecreasing or maxIterChange() == micRapidlyDecreasing).

Definition at line 657 of file FMMMLayout.h.

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

Sets the option maxIterFactor to f.

Definition at line 660 of file FMMMLayout.h.

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

Returns the minimal distance between connected components.

Definition at line 575 of file FMMMLayout.h.

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

Sets the minimal distance between connected components to x.

Definition at line 578 of file FMMMLayout.h.

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 606 of file FMMMLayout.h.

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

Sets the option minGraphSize to n.

Definition at line 609 of file FMMMLayout.h.

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

Move the nodes.

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.

Definition at line 462 of file FMMMLayout.h.

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

Sets the option newInitialPlacement to nip.

Definition at line 465 of file FMMMLayout.h.

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 917 of file FMMMLayout.h.

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

Sets the option nmParticlesInLeaves to n.

Definition at line 920 of file FMMMLayout.h.

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

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

Definition at line 923 of file FMMMLayout.h.

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

Sets the precision for the multipole expansions to \ p.

Definition at line 926 of file FMMMLayout.h.

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

Returns the current setting of option nmSmallCell.

This option defines how the smallest quadratic cell that surrounds the particles of a node in the reduced bucket quadtree is calculated. Possible values:

  • scfIteratively: iteratively (in constant time)
  • scfAluru: by the formula by Aluru et al. (in constant time)

Definition at line 907 of file FMMMLayout.h.

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

Sets the option nmSmallCell to scf.

Definition at line 910 of file FMMMLayout.h.

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

Returns the current setting of option nmTreeConstruction.

This option defines how the reduced bucket quadtree is constructed. Possible values:

  • rtcPathByPath: path by path construction
  • rtcSubtreeBySubtree: subtree by subtree construction

Definition at line 894 of file FMMMLayout.h.

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

Sets the option nmTreeConstruction to rtc.

Definition at line 897 of file FMMMLayout.h.

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.

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

Returns the current setting of option pageFormat.

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

  • pfPortrait: A4 page in portrait orientation
  • pfLandscape: A4 page in landscape orientation
  • pfSquare: square page format

Definition at line 445 of file FMMMLayout.h.

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

Sets the option pageRatio to t.

Definition at line 448 of file FMMMLayout.h.

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 544 of file FMMMLayout.h.

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

Sets the option pageRatio to r.

Definition at line 547 of file FMMMLayout.h.

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

Returns the strength of the springs in the postprocessing step.

Definition at line 858 of file FMMMLayout.h.

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

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

Definition at line 861 of file FMMMLayout.h.

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

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

Definition at line 864 of file FMMMLayout.h.

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

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

Definition at line 867 of file FMMMLayout.h.

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

Returns the current setting of option presortCCs.

This option defines if the connected components are sorted before the packing algorithm is applied. Possible values:

  • psNone: no sorting
  • psDecreasingHeight: sorted by decreasing height
  • psDecreasingWidth: sorted by decreasing width

Definition at line 589 of file FMMMLayout.h.

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

Sets the option presortCCs to ps.

Definition at line 592 of file FMMMLayout.h.

void ogdf::FMMMLayout::prevent_oscilations ( 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.

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

Returns the current setting of option qualityVersusSpeed.

Indicates if the algorithm is tuned either for best quality or best speed.

  • qvsGorgeousAndEfficient: gorgeous quality and efficient speed
  • qvsBeautifulAndFast: beautiful quality and fast speed
  • qvsNiceAndIncredibleSpeed: nice quality and incredible speed

Definition at line 474 of file FMMMLayout.h.

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

Sets the option qualityVersusSpeed to qvs.

Definition at line 477 of file FMMMLayout.h.

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() == gcNonUniformProbLowerMass and galaxyChoice() == gcNonUniformProbHigherMass).

Definition at line 631 of file FMMMLayout.h.

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

Sets the option randomTries to n.

Definition at line 634 of file FMMMLayout.h.

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

Sets the seed of the random number generator.

Definition at line 488 of file FMMMLayout.h.

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

Returns the seed of the random number generator.

Definition at line 491 of file FMMMLayout.h.

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

Returns the strength of the repulsive forces.

Definition at line 704 of file FMMMLayout.h.

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

Sets the strength of the repulsive forces to x.

Definition at line 707 of file FMMMLayout.h.

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

Returns the current setting of option repulsiveForcesCalculation.

This option defines how to calculate repulsive forces. Possible values:

  • rfcExact: exact calculation (slow)
  • rfcGridApproximation: grid approxiamtion (inaccurate)
  • rfcNMM: like in NMM (= New Multipole Method; fast and accurate)

Definition at line 717 of file FMMMLayout.h.

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

Sets the option repulsiveForcesCalculation to rfc.

Definition at line 722 of file FMMMLayout.h.

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 811 of file FMMMLayout.h.

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

Sets the option resizeDrawing to b.

Definition at line 814 of file FMMMLayout.h.

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 821 of file FMMMLayout.h.

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

Sets the option resizingScalar to s.

Definition at line 824 of file FMMMLayout.h.

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 1365 of file FMMMLayout.h.

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.

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

The average_ideal_edgelength for all edges is computed.

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

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

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

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

Definition at line 436 of file FMMMLayout.h.

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

Returns the strength of the springs.

Definition at line 698 of file FMMMLayout.h.

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

Sets the strength of the springs to x.

Definition at line 701 of file FMMMLayout.h.

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 554 of file FMMMLayout.h.

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

Sets the option stepsForRotatingComponents to n.

Definition at line 557 of file FMMMLayout.h.

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

Returns the stop criterion.

Possible values:

Definition at line 734 of file FMMMLayout.h.

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

Sets the stop criterion to rsc.

Definition at line 737 of file FMMMLayout.h.

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 744 of file FMMMLayout.h.

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

Sets the threshold for the stop criterion to x.

Definition at line 747 of file FMMMLayout.h.

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

Returns the current setting of option tipOverCCs.

Defines in which case it is allowed to tip over drawings of connected components. Possible values:

  • toNone: not allowed at all
  • toNoGrowingRow: only if the height of the packing row does not grow
  • toAlways: always allowed

Definition at line 569 of file FMMMLayout.h.

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

Sets the option tipOverCCs to to.

Definition at line 572 of file FMMMLayout.h.

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

Returns the current setting of option unitEdgeLength.

Definition at line 451 of file FMMMLayout.h.

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

Sets the option unitEdgeLength to x.

Definition at line 454 of file FMMMLayout.h.

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.)

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.

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.

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 all low-level options. Usually, it is sufficient just to set high-level options; if you want to be more specific, set this parameter to false and set the low level options.

Definition at line 430 of file FMMMLayout.h.

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

Sets the option useHighLevelOptions to uho.

Definition at line 433 of file FMMMLayout.h.

Member Data Documentation

double ogdf::FMMMLayout::average_ideal_edgelength
private

Measured from center to center.

Definition at line 997 of file FMMMLayout.h.

double ogdf::FMMMLayout::boxlength
private

Holds the length of the quadratic comput. box.

Definition at line 998 of file FMMMLayout.h.

double ogdf::FMMMLayout::cool_factor
private

Needed for scaling the forces if coolTemperature is true.

Definition at line 996 of file FMMMLayout.h.

DPoint ogdf::FMMMLayout::down_left_corner
private

Holds down left corner of the comput. box.

Definition at line 1000 of file FMMMLayout.h.

FruchtermanReingold ogdf::FMMMLayout::FR
private

Class for repulsive force calculation (Fruchterman, Reingold).

Definition at line 1004 of file FMMMLayout.h.

bool ogdf::FMMMLayout::m_adjustPostRepStrengthDynamically
private

The option adjustPostRepStrengthDynamically.

Definition at line 983 of file FMMMLayout.h.

AllowedPositions ogdf::FMMMLayout::m_allowedPositions
private

The option for allowed positions.

Definition at line 943 of file FMMMLayout.h.

bool ogdf::FMMMLayout::m_coolTemperature
private

The option for how to scale forces.

Definition at line 974 of file FMMMLayout.h.

double ogdf::FMMMLayout::m_coolValue
private

The value by which forces are decreased.

Definition at line 975 of file FMMMLayout.h.

EdgeLengthMeasurement ogdf::FMMMLayout::m_edgeLengthMeasurement
private

The option for edge length measurement.

Definition at line 942 of file FMMMLayout.h.

double ogdf::FMMMLayout::m_fineTuneScalar
private

Parameter for scaling forces during fine tuning.

Definition at line 982 of file FMMMLayout.h.

int ogdf::FMMMLayout::m_fineTuningIterations
private

The number of iterations for fine tuning.

Definition at line 981 of file FMMMLayout.h.

int ogdf::FMMMLayout::m_fixedIterations
private

The fixed number of iterations for the stop criterion.

Definition at line 972 of file FMMMLayout.h.

ForceModel ogdf::FMMMLayout::m_forceModel
private

The used force model.

Definition at line 966 of file FMMMLayout.h.

double ogdf::FMMMLayout::m_forceScalingFactor
private

The scaling factor for the forces.

Definition at line 973 of file FMMMLayout.h.

int ogdf::FMMMLayout::m_frGridQuotient
private

The grid quotient.

Definition at line 988 of file FMMMLayout.h.

GalaxyChoice ogdf::FMMMLayout::m_galaxyChoice
private

The selection of galaxy nodes.

Definition at line 956 of file FMMMLayout.h.

InitialPlacementForces ogdf::FMMMLayout::m_initialPlacementForces
private

The option for how the initial placement is done.

Definition at line 976 of file FMMMLayout.h.

InitialPlacementMult ogdf::FMMMLayout::m_initialPlacementMult
private

The option for creating initial placement.

Definition at line 963 of file FMMMLayout.h.

int ogdf::FMMMLayout::m_maxIntPosExponent
private

The option for the used exponent.

Definition at line 944 of file FMMMLayout.h.

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 958 of file FMMMLayout.h.

int ogdf::FMMMLayout::m_maxIterFactor
private

The factor used for decreasing MaxIterations.

Definition at line 962 of file FMMMLayout.h.

double ogdf::FMMMLayout::m_minDistCC
private

The separation between connected components.

Definition at line 950 of file FMMMLayout.h.

int ogdf::FMMMLayout::m_minGraphSize
private

The option for minimal graph size.

Definition at line 955 of file FMMMLayout.h.

bool ogdf::FMMMLayout::m_newInitialPlacement
private

The option for new initial placement.

Definition at line 936 of file FMMMLayout.h.

int ogdf::FMMMLayout::m_NMParticlesInLeaves
private

The maximal number of particles in a leaf.

Definition at line 991 of file FMMMLayout.h.

int ogdf::FMMMLayout::m_NMPrecision
private

The precision for multipole expansions.

Definition at line 992 of file FMMMLayout.h.

SmallestCellFinding ogdf::FMMMLayout::m_NMSmallCell
private

The option for how to calculate smallest quadtratic cells.

Definition at line 990 of file FMMMLayout.h.

ReducedTreeConstruction ogdf::FMMMLayout::m_NMTreeConstruction
private

The option for how to construct reduced bucket quadtree.

Definition at line 989 of file FMMMLayout.h.

PageFormatType ogdf::FMMMLayout::m_pageFormat
private

The option for the page format.

Definition at line 934 of file FMMMLayout.h.

double ogdf::FMMMLayout::m_pageRatio
private

The desired page ratio.

Definition at line 947 of file FMMMLayout.h.

double ogdf::FMMMLayout::m_postSpringStrength
private

The strength of springs during postprocessing.

Definition at line 984 of file FMMMLayout.h.

double ogdf::FMMMLayout::m_postStrengthOfRepForces
private

The strength of repulsive forces during postprocessing.

Definition at line 985 of file FMMMLayout.h.

PreSort ogdf::FMMMLayout::m_presortCCs
private

The option for presorting connected components.

Definition at line 951 of file FMMMLayout.h.

QualityVsSpeed ogdf::FMMMLayout::m_qualityVersusSpeed
private

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

Definition at line 937 of file FMMMLayout.h.

int ogdf::FMMMLayout::m_randomTries
private

The number of random tries.

Definition at line 957 of file FMMMLayout.h.

int ogdf::FMMMLayout::m_randSeed
private

The random seed.

Definition at line 941 of file FMMMLayout.h.

double ogdf::FMMMLayout::m_repForcesStrength
private

The strength of repulsive forces.

Definition at line 968 of file FMMMLayout.h.

RepulsiveForcesMethod ogdf::FMMMLayout::m_repulsiveForcesCalculation
private

Option for how to calculate repulsive forces.

Definition at line 969 of file FMMMLayout.h.

bool ogdf::FMMMLayout::m_resizeDrawing
private

The option for resizing the drawing.

Definition at line 979 of file FMMMLayout.h.

double ogdf::FMMMLayout::m_resizingScalar
private

Parameter for resizing the drawing.

Definition at line 980 of file FMMMLayout.h.

bool ogdf::FMMMLayout::m_singleLevel
private

Option for pure single level.

Definition at line 954 of file FMMMLayout.h.

double ogdf::FMMMLayout::m_springStrength
private

The strengths of springs.

Definition at line 967 of file FMMMLayout.h.

int ogdf::FMMMLayout::m_stepsForRotatingComponents
private

The number of rotations.

Definition at line 948 of file FMMMLayout.h.

StopCriterion ogdf::FMMMLayout::m_stopCriterion
private

The stop criterion.

Definition at line 970 of file FMMMLayout.h.

double ogdf::FMMMLayout::m_threshold
private

The threshold for the stop criterion.

Definition at line 971 of file FMMMLayout.h.

TipOver ogdf::FMMMLayout::m_tipOverCCs
private

Option for tip-over of connected components.

Definition at line 949 of file FMMMLayout.h.

double ogdf::FMMMLayout::m_unitEdgeLength
private

The unit edge length.

Definition at line 935 of file FMMMLayout.h.

bool ogdf::FMMMLayout::m_useHighLevelOptions
private

The option for using high-level options.

Definition at line 933 of file FMMMLayout.h.

double ogdf::FMMMLayout::max_integer_position
private

The maximum value for an integer position.

Definition at line 995 of file FMMMLayout.h.

NMM ogdf::FMMMLayout::NM
private

Class for repulsive force calculation.

Definition at line 1005 of file FMMMLayout.h.

int ogdf::FMMMLayout::number_of_components
private

The number of components of the graph.

Definition at line 999 of file FMMMLayout.h.

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

Holds the radius of the surrounding circle for each node.

Definition at line 1001 of file FMMMLayout.h.

double ogdf::FMMMLayout::time_total
private

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

Definition at line 1002 of file FMMMLayout.h.


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