The fast multipole multilevel layout algorithm. More...
#include <ogdf/energybased/FMMMLayout.h>
Public Member Functions | |
FMMMLayout () | |
Creates an instance of the layout algorithm. | |
virtual | ~FMMMLayout () |
The algorithm call | |
virtual void | call (GraphAttributes &GA) override |
Calls the algorithm for graph GA and returns the layout information in GA . | |
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. | |
void | call (GraphAttributes &GA, const EdgeArray< double > &edgeLength) |
Extended algorithm call: Allows to pass desired lengths of the edges. | |
void | call (GraphAttributes &GA, char *ps_file) |
Extended algorithm call: Calls the algorithm for graph GA . | |
void | call (GraphAttributes &GA, const EdgeArray< double > &edgeLength, char *ps_file) |
Extend algorithm call: Allows to pass desired lengths of the edges. | |
Further information. | |
double | getCpuTime () |
Returns the runtime (=CPU-time) of the layout algorithm in seconds. | |
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. | |
bool | useHighLevelOptions () const |
Returns the current setting of option useHighLevelOptions. | |
void | useHighLevelOptions (bool uho) |
Sets the option useHighLevelOptions to uho . | |
void | setSingleLevel (bool b) |
Sets single level option, no multilevel hierarchy is created if b == true. | |
FMMMOptions::PageFormatType | pageFormat () const |
Returns the current setting of option pageFormat. | |
void | pageFormat (FMMMOptions::PageFormatType t) |
Sets the option pageRatio to t . | |
double | unitEdgeLength () const |
Returns the current setting of option unitEdgeLength. | |
void | unitEdgeLength (double x) |
Sets the option unitEdgeLength to x . | |
bool | newInitialPlacement () const |
Returns the current setting of option newInitialPlacement. | |
void | newInitialPlacement (bool nip) |
Sets the option newInitialPlacement to nip . | |
FMMMOptions::QualityVsSpeed | qualityVersusSpeed () const |
Returns the current setting of option qualityVersusSpeed. | |
void | qualityVersusSpeed (FMMMOptions::QualityVsSpeed qvs) |
Sets the option qualityVersusSpeed to qvs . | |
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. | |
int | randSeed () const |
Returns the seed of the random number generator. | |
FMMMOptions::EdgeLengthMeasurement | edgeLengthMeasurement () const |
Returns the current setting of option edgeLengthMeasurement. | |
void | edgeLengthMeasurement (FMMMOptions::EdgeLengthMeasurement elm) |
Sets the option edgeLengthMeasurement to elm . | |
FMMMOptions::AllowedPositions | allowedPositions () const |
Returns the current setting of option allowedPositions. | |
void | allowedPositions (FMMMOptions::AllowedPositions ap) |
Sets the option allowedPositions to ap . | |
int | maxIntPosExponent () const |
Returns the current setting of option maxIntPosExponent. | |
void | maxIntPosExponent (int e) |
Sets the option maxIntPosExponent to e . | |
Options for the divide et impera step | |
double | pageRatio () const |
Returns the current setting of option pageRatio. | |
void | pageRatio (double r) |
Sets the option pageRatio to r . | |
int | stepsForRotatingComponents () const |
Returns the current setting of option stepsForRotatingComponents. | |
void | stepsForRotatingComponents (int n) |
Sets the option stepsForRotatingComponents to n . | |
FMMMOptions::TipOver | tipOverCCs () const |
Returns the current setting of option tipOverCCs. | |
void | tipOverCCs (FMMMOptions::TipOver to) |
Sets the option tipOverCCs to to . | |
double | minDistCC () const |
Returns the minimal distance between connected components. | |
void | minDistCC (double x) |
Sets the minimal distance between connected components to x . | |
FMMMOptions::PreSort | presortCCs () const |
Returns the current setting of option presortCCs. | |
void | presortCCs (FMMMOptions::PreSort ps) |
Sets the option presortCCs to ps . | |
Options for the multilevel step | |
int | minGraphSize () const |
Returns the current setting of option minGraphSize. | |
void | minGraphSize (int n) |
Sets the option minGraphSize to n . | |
FMMMOptions::GalaxyChoice | galaxyChoice () const |
Returns the current setting of option galaxyChoice. | |
void | galaxyChoice (FMMMOptions::GalaxyChoice gc) |
Sets the option galaxyChoice to gc . | |
int | randomTries () const |
Returns the current setting of option randomTries. | |
void | randomTries (int n) |
Sets the option randomTries to n . | |
FMMMOptions::MaxIterChange | maxIterChange () const |
Returns the current setting of option maxIterChange. | |
void | maxIterChange (FMMMOptions::MaxIterChange mic) |
Sets the option maxIterChange to mic . | |
int | maxIterFactor () const |
Returns the current setting of option maxIterFactor. | |
void | maxIterFactor (int f) |
Sets the option maxIterFactor to f . | |
FMMMOptions::InitialPlacementMult | initialPlacementMult () const |
Returns the current setting of option initialPlacementMult. | |
void | initialPlacementMult (FMMMOptions::InitialPlacementMult ipm) |
Sets the option initialPlacementMult to ipm . | |
Options for the force calculation step | |
FMMMOptions::ForceModel | forceModel () const |
Returns the used force model. | |
void | forceModel (FMMMOptions::ForceModel fm) |
Sets the used force model to fm . | |
double | springStrength () const |
Returns the strength of the springs. | |
void | springStrength (double x) |
Sets the strength of the springs to x . | |
double | repForcesStrength () const |
Returns the strength of the repulsive forces. | |
void | repForcesStrength (double x) |
Sets the strength of the repulsive forces to x . | |
FMMMOptions::RepulsiveForcesMethod | repulsiveForcesCalculation () const |
Returns the current setting of option repulsiveForcesCalculation. | |
void | repulsiveForcesCalculation (FMMMOptions::RepulsiveForcesMethod rfc) |
Sets the option repulsiveForcesCalculation to rfc . | |
FMMMOptions::StopCriterion | stopCriterion () const |
Returns the stop criterion. | |
void | stopCriterion (FMMMOptions::StopCriterion rsc) |
Sets the stop criterion to rsc . | |
double | threshold () const |
Returns the threshold for the stop criterion. | |
void | threshold (double x) |
Sets the threshold for the stop criterion to x . | |
int | fixedIterations () const |
Returns the fixed number of iterations for the stop criterion. | |
void | fixedIterations (int n) |
Sets the fixed number of iterations for the stop criterion to n . | |
double | forceScalingFactor () const |
Returns the scaling factor for the forces. | |
void | forceScalingFactor (double f) |
Sets the scaling factor for the forces to f . | |
bool | coolTemperature () const |
Returns the current setting of option coolTemperature. | |
void | coolTemperature (bool b) |
Sets the option coolTemperature to b . | |
double | coolValue () const |
Returns the current setting of option coolValue. | |
void | coolValue (double x) |
Sets the option coolValue to x . | |
FMMMOptions::InitialPlacementForces | initialPlacementForces () const |
Returns the current setting of option initialPlacementForces. | |
void | initialPlacementForces (FMMMOptions::InitialPlacementForces ipf) |
Sets the option initialPlacementForces to ipf . | |
Options for the postprocessing step | |
bool | resizeDrawing () const |
Returns the current setting of option resizeDrawing. | |
void | resizeDrawing (bool b) |
Sets the option resizeDrawing to b . | |
double | resizingScalar () const |
Returns the current setting of option resizingScalar. | |
void | resizingScalar (double s) |
Sets the option resizingScalar to s . | |
int | fineTuningIterations () const |
Returns the number of iterations for fine tuning. | |
void | fineTuningIterations (int n) |
Sets the number of iterations for fine tuning to n . | |
double | fineTuneScalar () const |
Returns the curent setting of option fineTuneScalar. | |
void | fineTuneScalar (double s) |
Sets the option fineTuneScalar to s . | |
bool | adjustPostRepStrengthDynamically () const |
Returns the current setting of option adjustPostRepStrengthDynamically. | |
void | adjustPostRepStrengthDynamically (bool b) |
Sets the option adjustPostRepStrengthDynamically to b . | |
double | postSpringStrength () const |
Returns the strength of the springs in the postprocessing step. | |
void | postSpringStrength (double x) |
Sets the strength of the springs in the postprocessing step to x . | |
double | postStrengthOfRepForces () const |
Returns the strength of the repulsive forces in the postprocessing step. | |
void | postStrengthOfRepForces (double x) |
Sets the strength of the repulsive forces in the postprocessing step to x . | |
Options for repulsive force approximation methods | |
int | frGridQuotient () const |
Returns the current setting of option frGridQuotient. | |
void | frGridQuotient (int p) |
Sets the option frGridQuotient to p . | |
FMMMOptions::ReducedTreeConstruction | nmTreeConstruction () const |
Returns the current setting of option nmTreeConstruction. | |
void | nmTreeConstruction (FMMMOptions::ReducedTreeConstruction rtc) |
Sets the option nmTreeConstruction to rtc . | |
FMMMOptions::SmallestCellFinding | nmSmallCell () const |
Returns the current setting of option nmSmallCell. | |
void | nmSmallCell (FMMMOptions::SmallestCellFinding scf) |
Sets the option nmSmallCell to scf . | |
int | nmParticlesInLeaves () const |
Returns the current setting of option nmParticlesInLeaves. | |
void | nmParticlesInLeaves (int n) |
Sets the option nmParticlesInLeaves to n . | |
int | nmPrecision () const |
Returns the precision p for the p-term multipole expansions. | |
void | nmPrecision (int p) |
Sets the precision for the multipole expansions to p . | |
Public Member Functions inherited from ogdf::LayoutModule | |
LayoutModule () | |
Initializes a layout module. | |
virtual | ~LayoutModule () |
void | operator() (GraphAttributes &GA) |
Computes a layout of graph GA . | |
Private Types | |
using | 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. | |
void | call_MULTILEVEL_step_for_subGraph (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E) |
Calls the multilevel step for subGraph G . | |
bool | running (int iter, int max_mult_iter, double actforcevectorlength) |
Returns true iff stopCriterion() is not met. | |
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 . | |
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. | |
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. | |
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 . | |
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. | |
void | init_ind_ideal_edgelength (const Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E) |
Sets the individual ideal edge length for each edge e. | |
void | set_radii (const Graph &G, NodeArray< NodeAttributes > &A) |
The radii of the surrounding circles of the bounding boxes are computed. | |
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 . | |
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. | |
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 . | |
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]. | |
double | get_post_rep_force_strength (int n) |
Returns the value for the strength of the repulsive forces. | |
void | adjust_positions (const Graph &G, NodeArray< NodeAttributes > &A) |
Adjust positions according to allowedPositions() | |
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 . | |
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. | |
void | pack_subGraph_drawings (NodeArray< NodeAttributes > &A, Graph G_sub[], NodeArray< NodeAttributes > A_sub[]) |
The drawings of the subgraphs are packed. | |
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 . | |
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. | |
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. | |
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). | |
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. | |
void | delete_all_subGraphs (Graph G_sub[], NodeArray< NodeAttributes > A_sub[], EdgeArray< EdgeAttributes > E_sub[]) |
Frees dynamically allocated memory for the connected component subgraphs. | |
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. | |
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. | |
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). | |
void | create_initial_placement (Graph &G, NodeArray< NodeAttributes > &A) |
The initial placements of the nodes are created by using initialPlacementForces(). | |
void | create_initial_placement_uniform_grid (const Graph &G, NodeArray< NodeAttributes > &A) |
Places nodes uniformly in a grid. | |
void | create_initial_placement_random (const Graph &G, NodeArray< NodeAttributes > &A) |
Places nodes randomly. | |
void | init_F (Graph &G, NodeArray< DPoint > &F) |
Sets all entries of F to (0,0). | |
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. | |
void | calculate_repulsive_forces (Graph &G, NodeArray< NodeAttributes > &A, NodeArray< DPoint > &F_rep) |
Calculates repulsive forces for each node. | |
void | deallocate_memory_for_rep_calc_classes () |
Deallocates dynamically allocated memory of the choosen rep. calculation class. | |
void | calculate_attractive_forces (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, NodeArray< DPoint > &F_attr) |
Calculates attractive forces for each node. | |
double | f_attr_scalar (double d, double ind_ideal_edge_length) |
Returns the attractive force scalar. | |
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. | |
void | move_nodes (Graph &G, NodeArray< NodeAttributes > &A, NodeArray< DPoint > &F) |
Move the nodes. | |
void | update_boxlength_and_cornercoordinate (Graph &G, NodeArray< NodeAttributes > &A) |
Computes a new tight computational square-box. | |
double | max_radius (int iter) |
Describes the max. radius of a move in one time step, depending on the number of iterations. | |
void | set_average_ideal_edgelength (Graph &G, EdgeArray< EdgeAttributes > &E) |
The average_ideal_edgelength for all edges is computed. | |
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(). | |
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. | |
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). | |
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. | |
void | restrict_force_to_comp_box (DPoint &force) |
The force is restricted to have values within the comp. | |
Functions for analytic information | |
void | init_time () |
Sets time_total to zero. | |
Private Attributes | |
double | average_ideal_edgelength |
Measured from center to center. | |
double | boxlength |
Holds the length of the quadratic comput. | |
double | cool_factor |
Needed for scaling the forces if coolTemperature is true. | |
DPoint | down_left_corner |
Holds down left corner of the comput. | |
energybased::fmmm::FruchtermanReingold | FR |
Class for repulsive force calculation (Fruchterman, Reingold). | |
bool | m_adjustPostRepStrengthDynamically |
The option adjustPostRepStrengthDynamically. | |
FMMMOptions::AllowedPositions | m_allowedPositions |
The option for allowed positions. | |
bool | m_coolTemperature |
The option for how to scale forces. | |
double | m_coolValue |
The value by which forces are decreased. | |
FMMMOptions::EdgeLengthMeasurement | m_edgeLengthMeasurement |
The option for edge length measurement. | |
double | m_fineTuneScalar |
Parameter for scaling forces during fine tuning. | |
int | m_fineTuningIterations |
The number of iterations for fine tuning. | |
int | m_fixedIterations |
The fixed number of iterations for the stop criterion. | |
FMMMOptions::ForceModel | m_forceModel |
The used force model. | |
double | m_forceScalingFactor |
The scaling factor for the forces. | |
int | m_frGridQuotient |
The grid quotient. | |
FMMMOptions::GalaxyChoice | m_galaxyChoice |
The selection of galaxy nodes. | |
FMMMOptions::InitialPlacementForces | m_initialPlacementForces |
The option for how the initial placement is done. | |
FMMMOptions::InitialPlacementMult | m_initialPlacementMult |
The option for creating initial placement. | |
int | m_maxIntPosExponent |
The option for the used exponent. | |
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()) | |
int | m_maxIterFactor |
The factor used for decreasing MaxIterations. | |
double | m_minDistCC |
The separation between connected components. | |
int | m_minGraphSize |
The option for minimal graph size. | |
bool | m_newInitialPlacement |
The option for new initial placement. | |
int | m_NMParticlesInLeaves |
The maximal number of particles in a leaf. | |
int | m_NMPrecision |
The precision for multipole expansions. | |
FMMMOptions::SmallestCellFinding | m_NMSmallCell |
The option for how to calculate smallest quadtratic cells. | |
FMMMOptions::ReducedTreeConstruction | m_NMTreeConstruction |
The option for how to construct reduced bucket quadtree. | |
FMMMOptions::PageFormatType | m_pageFormat |
The option for the page format. | |
double | m_pageRatio |
The desired page ratio. | |
double | m_postSpringStrength |
The strength of springs during postprocessing. | |
double | m_postStrengthOfRepForces |
The strength of repulsive forces during postprocessing. | |
FMMMOptions::PreSort | m_presortCCs |
The option for presorting connected components. | |
FMMMOptions::QualityVsSpeed | m_qualityVersusSpeed |
The option for quality-vs-speed trade-off. | |
int | m_randomTries |
The number of random tries. | |
int | m_randSeed |
The random seed. | |
double | m_repForcesStrength |
The strength of repulsive forces. | |
FMMMOptions::RepulsiveForcesMethod | m_repulsiveForcesCalculation |
Option for how to calculate repulsive forces. | |
bool | m_resizeDrawing |
The option for resizing the drawing. | |
double | m_resizingScalar |
Parameter for resizing the drawing. | |
bool | m_singleLevel |
Option for pure single level. | |
double | m_springStrength |
The strengths of springs. | |
int | m_stepsForRotatingComponents |
The number of rotations. | |
FMMMOptions::StopCriterion | m_stopCriterion |
The stop criterion. | |
double | m_threshold |
The threshold for the stop criterion. | |
FMMMOptions::TipOver | m_tipOverCCs |
Option for tip-over of connected components. | |
double | m_unitEdgeLength |
The unit edge length. | |
bool | m_useHighLevelOptions |
The option for using high-level options. | |
double | max_integer_position |
The maximum value for an integer position. | |
energybased::fmmm::NewMultipoleMethod | NM |
Class for repulsive force calculation. | |
int | number_of_components |
The number of components of the graph. | |
NodeArray< double > | radius |
Holds the radius of the surrounding circle for each node. | |
double | time_total |
The runtime (=CPU-time) of the algorithm in seconds. | |
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.
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.
Option | Type | Default | Description |
---|---|---|---|
useHighLevelOptions | bool | false | Whether high-level options are used or not. |
pageFormat | FMMMOptions::PageFormatType | Square | The desired aspect ratio of the layout. |
unitEdgeLength | double | 100.0 | The unit edge length. |
newInitialPlacement | bool | false | Specifies if initial placement of nodes is varied. |
qualityVersusSpeed | FMMMOptions::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 | |||
---|---|---|---|
randSeed | int | 100 | The seed of the random number generator. |
edgeLengthMeasurement | FMMMOptions::EdgeLengthMeasurement | BoundingCircle | Indicates how the length of an edge is measured. |
allowedPositions | FMMMOptions::AllowedPositions | Integer | Defines which positions for a node are allowed. |
maxIntPosExponent | int | 40 | Defines the exponent used if allowedPositions == Exponent. |
Divide et impera step | |||
pageRatio | double | 1.0 | The desired page ratio. |
stepsForRotatingComponents | int | 10 | The number of rotations per connected component. |
tipOverCCs | FMMMOptions::TipOver | NoGrowingRow | Specifies when it is allowed to tip over drawings. |
minDistCC | double | 100 | The minimal distance between connected components. |
presortCCs | FMMMOptions::PreSort | DecreasingHeight | Defines if the connected components are sorted before the packing algorithm is applied. |
Multilevel step | |||
minGraphSize | int | 50 | Determines the number of nodes of a graph for which no more collapsing of galaxies is performed. |
galaxyChoice | FMMMOptions::GalaxyChoice | NonUniformProbLowerMass | Defines how sun nodes of galaxies are selected. |
randomTries | int | 20 | Defines the number of tries to get a random node with minimal star mass. |
maxIterChange | FMMMOptions::MaxIterChange | LinearlyDecreasing | Defines how MaxIterations is changed in subsequent multilevels. |
maxIterFactor | int | 10 | Defines the factor used for decreasing MaxIterations. |
initialPlacementMult | FMMMOptions::InitialPlacementMult | Advanced | Defines how the initial placement is generated. |
Force calculation step | |||
forceModel | FMMMOptions::ForceModel | New | The used force model. |
springStrength | double | 1.0 | The strength of the springs. |
repForcesStrength | double | 1.0 | The strength of the repulsive forces. |
repulsiveForcesCalculation | FMMMOptions::RepulsiveForcesMethod | NMM | Defines how to calculate repulsive forces. |
stopCriterion | FMMMOptions::StopCriterion | FixedIterationsOrThreshold | The stop criterion. |
threshold | double | 0.01 | The threshold for the stop criterion. |
fixedIterations | int | 30 | The fixed number of iterations for the stop criterion. |
forceScalingFactor | double | 0.05 | The scaling factor for the forces. |
coolTemperature | bool | false | Use coolValue for scaling forces. |
coolValue | double | 0.99 | The value by which forces are decreased. |
initialPlacementForces | FMMMOptions::InitialPlacementForces | RandomRandIterNr | Defines how the initial placement is done. |
Force calculation step | |||
resizeDrawing | bool | true | Specifies if the resulting drawing is resized. |
resizingScalar | double | 1 | Defines a parameter to scale the drawing if resizeDrawing is true. |
fineTuningIterations | int | 20 | The number of iterations for fine tuning. |
fineTuneScalar | double | 0.2 | Defines a parameter for scaling the forces in the fine-tuning iterations. |
adjustPostRepStrengthDynamically | bool | true | If set to true, the strength of the repulsive force field is calculated. |
postSpringStrength | double | 2.0 | The strength of the springs in the postprocessing step. |
postStrengthOfRepForces | double | 0.01 | The strength of the repulsive forces in the postprocessing step. |
Repulsive force approximation methods | |||
frGridQuotient | int | 2 | The grid quotient. |
nmTreeConstruction | FMMMOptions::ReducedTreeConstruction | SubtreeBySubtree | Defines how the reduced bucket quadtree is constructed. |
nmSmallCell | FMMMOptions::SmallestCellFinding | Iteratively | Defines how the smallest quadratic cell that surrounds the particles of a node in the reduced bucket quadtree is calculated. |
nmParticlesInLeaves | int | 25 | The maximal number of particles that are contained in a leaf of the reduced bucket quadtree. |
nmPrecision | int | 4 | The precision p for the p-term multipole expansions. |
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 232 of file FMMMLayout.h.
Definition at line 235 of file FMMMLayout.h.
Definition at line 234 of file FMMMLayout.h.
Definition at line 233 of file FMMMLayout.h.
ogdf::FMMMLayout::FMMMLayout | ( | ) |
Creates an instance of the layout algorithm.
|
inlinevirtual |
Definition at line 242 of file FMMMLayout.h.
|
private |
If resizeDrawing is true, the drawing is adapted to the ideal average edge length by shrinking respectively expanding the drawing area.
|
private |
Add attractive and repulsive forces for each node.
|
private |
Adjust positions according to allowedPositions()
|
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 644 of file FMMMLayout.h.
Sets the option adjustPostRepStrengthDynamically to b
.
Definition at line 647 of file FMMMLayout.h.
|
inline |
Returns the current setting of option allowedPositions.
Definition at line 390 of file FMMMLayout.h.
|
inline |
Sets the option allowedPositions to ap
.
Definition at line 393 of file FMMMLayout.h.
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 924 of file FMMMLayout.h.
|
private |
Calculates attractive forces for each node.
|
private |
The bounding rectangle of the componenet_index-th. component of G is returned.
|
private |
The bounding rectangles of all connected componenents of G are calculated and stored in R
.
|
private |
The forces are calculated here.
|
inlineprivate |
Calculates repulsive forces for each node.
Definition at line 1000 of file FMMMLayout.h.
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.
|
overridevirtual |
Calls the algorithm for graph GA
and returns the layout information in GA
.
Implements ogdf::LayoutModule.
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).
void ogdf::FMMMLayout::call | ( | GraphAttributes & | GA, |
const EdgeArray< double > & | edgeLength | ||
) |
Extended algorithm call: Allows to pass desired lengths of the edges.
GA | represents the input graph and is assigned the computed layout. |
edgeLength | is an edge array of the graph associated with GA of positive edge length. |
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).
|
private |
Calls the divide (decomposition into connected components) and impera (drawing and packing of the componenets) step.
|
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.
|
private |
Calls the multilevel step for subGraph G
.
|
private |
Calls the postprocessing step.
|
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 572 of file FMMMLayout.h.
Sets the option coolTemperature to b
.
Definition at line 575 of file FMMMLayout.h.
|
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 582 of file FMMMLayout.h.
Sets the option coolValue to x
.
Definition at line 585 of file FMMMLayout.h.
|
private |
The initial placements of the nodes are created by using initialPlacementForces().
|
private |
Places nodes randomly.
|
private |
Places nodes uniformly in a grid.
|
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).
|
private |
Creates a simple drawing of GA
in postscript format and saves it in file ps_file
.
|
inlineprivate |
Deallocates dynamically allocated memory of the choosen rep. calculation class.
Definition at line 1015 of file FMMMLayout.h.
|
inlineprivate |
Frees dynamically allocated memory for the connected component subgraphs.
Definition at line 950 of file FMMMLayout.h.
|
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
.
|
inline |
Returns the current setting of option edgeLengthMeasurement.
Definition at line 380 of file FMMMLayout.h.
|
inline |
Sets the option edgeLengthMeasurement to elm
.
Definition at line 385 of file FMMMLayout.h.
|
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)
|
private |
Exports for each node v in G_reduced
the position of the original_node in GA
.
Returns the attractive force scalar.
|
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 633 of file FMMMLayout.h.
Sets the option fineTuneScalar to s
.
Definition at line 636 of file FMMMLayout.h.
|
inline |
Returns the number of iterations for fine tuning.
Definition at line 623 of file FMMMLayout.h.
Sets the number of iterations for fine tuning to n
.
Definition at line 626 of file FMMMLayout.h.
|
inline |
Returns the fixed number of iterations for the stop criterion.
Definition at line 556 of file FMMMLayout.h.
Sets the fixed number of iterations for the stop criterion to n
.
Definition at line 559 of file FMMMLayout.h.
|
inline |
Returns the used force model.
Definition at line 512 of file FMMMLayout.h.
|
inline |
Sets the used force model to fm
.
Definition at line 515 of file FMMMLayout.h.
|
inline |
Returns the scaling factor for the forces.
Definition at line 562 of file FMMMLayout.h.
Sets the scaling factor for the forces to f
.
Definition at line 565 of file FMMMLayout.h.
|
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 671 of file FMMMLayout.h.
Sets the option frGridQuotient to p
.
Definition at line 674 of file FMMMLayout.h.
|
inline |
Returns the current setting of option galaxyChoice.
Definition at line 463 of file FMMMLayout.h.
|
inline |
Sets the option galaxyChoice to gc
.
Definition at line 466 of file FMMMLayout.h.
|
private |
Calculates the average force on each node in the actual iteration, which is needed if StopCriterion is scThreshold() or scFixedIterationsOrThreshold().
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.
Returns the value for the strength of the repulsive forces.
Used in the postprocessing step; depending on n
= G.numberOfNodes().
Definition at line 870 of file FMMMLayout.h.
|
inline |
Returns the runtime (=CPU-time) of the layout algorithm in seconds.
Definition at line 290 of file FMMMLayout.h.
|
private |
Imports for each edge e of G its desired length given via edgeLength.
|
private |
Imports for each node v of G
its width, height and position (given from GA
) in A
.
|
private |
The length of the computational box in the first iteration is set (down left corner is at (0,0).
Sets all entries of F
to (0,0).
|
private |
Sets the individual ideal edge length for each edge e.
|
private |
last_node_movement
is initialized to F
(used after first iteration).
|
inlineprivate |
Sets time_total to zero.
Definition at line 1097 of file FMMMLayout.h.
|
inline |
Returns the current setting of option initialPlacementForces.
Definition at line 588 of file FMMMLayout.h.
|
inline |
Sets the option initialPlacementForces to ipf
.
Definition at line 593 of file FMMMLayout.h.
|
inline |
Returns the current setting of option initialPlacementMult.
Definition at line 497 of file FMMMLayout.h.
|
inline |
Sets the option initialPlacementMult to ipm
.
Definition at line 502 of file FMMMLayout.h.
Make initializations for the data structures that are used in the choosen class for rep. force calculation.
|
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.
Describes the max. radius of a move in one time step, depending on the number of iterations.
Definition at line 1042 of file FMMMLayout.h.
|
inline |
Returns the current setting of option maxIntPosExponent.
This option defines the exponent used if allowedPositions() == FMMMOptions::AllowedPositions::Exponent.
Definition at line 399 of file FMMMLayout.h.
Sets the option maxIntPosExponent to e
.
Definition at line 402 of file FMMMLayout.h.
|
inline |
Returns the current setting of option maxIterChange.
Definition at line 480 of file FMMMLayout.h.
|
inline |
Sets the option maxIterChange to mic
.
Definition at line 483 of file FMMMLayout.h.
|
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 491 of file FMMMLayout.h.
Sets the option maxIterFactor to f
.
Definition at line 494 of file FMMMLayout.h.
|
inline |
Returns the minimal distance between connected components.
Definition at line 435 of file FMMMLayout.h.
Sets the minimal distance between connected components to x
.
Definition at line 438 of file FMMMLayout.h.
|
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 457 of file FMMMLayout.h.
Sets the option minGraphSize to n
.
Definition at line 460 of file FMMMLayout.h.
|
private |
Move the nodes.
|
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 351 of file FMMMLayout.h.
Sets the option newInitialPlacement to nip
.
Definition at line 354 of file FMMMLayout.h.
|
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 695 of file FMMMLayout.h.
Sets the option nmParticlesInLeaves to n
.
Definition at line 698 of file FMMMLayout.h.
|
inline |
Returns the precision p for the p-term multipole expansions.
Definition at line 701 of file FMMMLayout.h.
Sets the precision for the multipole expansions to p
.
Definition at line 704 of file FMMMLayout.h.
|
inline |
Returns the current setting of option nmSmallCell.
Definition at line 685 of file FMMMLayout.h.
|
inline |
Sets the option nmSmallCell to scf
.
Definition at line 688 of file FMMMLayout.h.
|
inline |
Returns the current setting of option nmTreeConstruction.
Definition at line 677 of file FMMMLayout.h.
|
inline |
Sets the option nmTreeConstruction to rtc
.
Definition at line 680 of file FMMMLayout.h.
|
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.
|
inline |
Returns the current setting of option pageFormat.
This setting determines the setting of the low-level option pageRatio().
Definition at line 331 of file FMMMLayout.h.
|
inline |
Sets the option pageRatio to t
.
Definition at line 334 of file FMMMLayout.h.
|
inline |
Returns the current setting of option pageRatio.
This option defines the desired aspect ratio of the rectangular drawing area.
Definition at line 413 of file FMMMLayout.h.
Sets the option pageRatio to r
.
Definition at line 416 of file FMMMLayout.h.
|
inline |
Returns the strength of the springs in the postprocessing step.
Definition at line 650 of file FMMMLayout.h.
Sets the strength of the springs in the postprocessing step to x
.
Definition at line 653 of file FMMMLayout.h.
|
inline |
Returns the strength of the repulsive forces in the postprocessing step.
Definition at line 656 of file FMMMLayout.h.
Sets the strength of the repulsive forces in the postprocessing step to x
.
Definition at line 659 of file FMMMLayout.h.
|
inline |
Returns the current setting of option presortCCs.
Definition at line 441 of file FMMMLayout.h.
|
inline |
Sets the option presortCCs to ps
.
Definition at line 444 of file FMMMLayout.h.
|
private |
Depending on the direction of last_node_movement
[v], the length of the next displacement of node v is restricted.
|
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 361 of file FMMMLayout.h.
|
inline |
Sets the option qualityVersusSpeed to qvs
.
Definition at line 364 of file FMMMLayout.h.
|
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 474 of file FMMMLayout.h.
Sets the option randomTries to n
.
Definition at line 477 of file FMMMLayout.h.
|
inline |
Returns the seed of the random number generator.
Definition at line 377 of file FMMMLayout.h.
Sets the seed of the random number generator.
Definition at line 374 of file FMMMLayout.h.
|
inline |
Returns the strength of the repulsive forces.
Definition at line 524 of file FMMMLayout.h.
Sets the strength of the repulsive forces to x
.
Definition at line 527 of file FMMMLayout.h.
|
inline |
Returns the current setting of option repulsiveForcesCalculation.
Definition at line 530 of file FMMMLayout.h.
|
inline |
Sets the option repulsiveForcesCalculation to rfc
.
Definition at line 535 of file FMMMLayout.h.
void ogdf::FMMMLayout::resetOptions | ( | ) |
All parameter options (both low- and high-level) are set to the default values.
useHighLevelOptions() is also set to false.
|
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 607 of file FMMMLayout.h.
Sets the option resizeDrawing to b
.
Definition at line 610 of file FMMMLayout.h.
|
inline |
Returns the current setting of option resizingScalar.
This option defines a parameter to scale the drawing if resizeDrawing() is true.
Definition at line 617 of file FMMMLayout.h.
Sets the option resizingScalar to s
.
Definition at line 620 of file FMMMLayout.h.
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 1075 of file FMMMLayout.h.
|
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.
Returns true iff stopCriterion() is not met.
|
private |
The average_ideal_edgelength for all edges is computed.
|
private |
The radii of the surrounding circles of the bounding boxes are computed.
Sets single level option, no multilevel hierarchy is created if b == true.
Definition at line 325 of file FMMMLayout.h.
|
inline |
Returns the strength of the springs.
Definition at line 518 of file FMMMLayout.h.
Sets the strength of the springs to x
.
Definition at line 521 of file FMMMLayout.h.
|
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 423 of file FMMMLayout.h.
Sets the option stepsForRotatingComponents to n
.
Definition at line 426 of file FMMMLayout.h.
|
inline |
Returns the stop criterion.
Definition at line 540 of file FMMMLayout.h.
|
inline |
Sets the stop criterion to rsc
.
Definition at line 543 of file FMMMLayout.h.
|
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 550 of file FMMMLayout.h.
Sets the threshold for the stop criterion to x
.
Definition at line 553 of file FMMMLayout.h.
|
inline |
Returns the current setting of option tipOverCCs.
Definition at line 429 of file FMMMLayout.h.
|
inline |
Sets the option tipOverCCs to to
.
Definition at line 432 of file FMMMLayout.h.
|
inline |
Returns the current setting of option unitEdgeLength.
Definition at line 337 of file FMMMLayout.h.
Sets the option unitEdgeLength to x
.
Definition at line 340 of file FMMMLayout.h.
|
private |
Computes a new tight computational square-box.
(Guaranteeing, that all midpoints are inside the square.)
|
private |
Sets for each edge e of G_reduced in S
its edgelength to new_edgelength
[e].
Also stores this information in E_reduced
.
|
private |
Updates several low level parameter options due to the settings of the high level parameter options.
|
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:
It might be useful to resetOptions() first if you use the same FMMMLayout multiple times.
Definition at line 319 of file FMMMLayout.h.
Sets the option useHighLevelOptions to uho
.
Definition at line 322 of file FMMMLayout.h.
|
private |
Measured from center to center.
Definition at line 778 of file FMMMLayout.h.
|
private |
|
private |
Needed for scaling the forces if coolTemperature is true.
Definition at line 777 of file FMMMLayout.h.
|
private |
|
private |
Class for repulsive force calculation (Fruchterman, Reingold).
Definition at line 785 of file FMMMLayout.h.
|
private |
The option adjustPostRepStrengthDynamically.
Definition at line 763 of file FMMMLayout.h.
|
private |
The option for allowed positions.
Definition at line 720 of file FMMMLayout.h.
|
private |
The option for how to scale forces.
Definition at line 754 of file FMMMLayout.h.
|
private |
The value by which forces are decreased.
Definition at line 755 of file FMMMLayout.h.
|
private |
The option for edge length measurement.
Definition at line 719 of file FMMMLayout.h.
|
private |
Parameter for scaling forces during fine tuning.
Definition at line 762 of file FMMMLayout.h.
|
private |
The number of iterations for fine tuning.
Definition at line 761 of file FMMMLayout.h.
|
private |
The fixed number of iterations for the stop criterion.
Definition at line 752 of file FMMMLayout.h.
|
private |
The used force model.
Definition at line 746 of file FMMMLayout.h.
|
private |
The scaling factor for the forces.
Definition at line 753 of file FMMMLayout.h.
|
private |
The grid quotient.
Definition at line 768 of file FMMMLayout.h.
|
private |
The selection of galaxy nodes.
Definition at line 733 of file FMMMLayout.h.
|
private |
The option for how the initial placement is done.
Definition at line 756 of file FMMMLayout.h.
|
private |
The option for creating initial placement.
Definition at line 743 of file FMMMLayout.h.
|
private |
The option for the used exponent.
Definition at line 721 of file FMMMLayout.h.
|
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 740 of file FMMMLayout.h.
|
private |
The factor used for decreasing MaxIterations.
Definition at line 742 of file FMMMLayout.h.
|
private |
The separation between connected components.
Definition at line 727 of file FMMMLayout.h.
|
private |
The option for minimal graph size.
Definition at line 732 of file FMMMLayout.h.
|
private |
The option for new initial placement.
Definition at line 713 of file FMMMLayout.h.
|
private |
The maximal number of particles in a leaf.
Definition at line 772 of file FMMMLayout.h.
|
private |
The precision for multipole expansions.
Definition at line 773 of file FMMMLayout.h.
|
private |
The option for how to calculate smallest quadtratic cells.
Definition at line 771 of file FMMMLayout.h.
|
private |
The option for how to construct reduced bucket quadtree.
Definition at line 770 of file FMMMLayout.h.
|
private |
The option for the page format.
Definition at line 711 of file FMMMLayout.h.
|
private |
The desired page ratio.
Definition at line 724 of file FMMMLayout.h.
|
private |
The strength of springs during postprocessing.
Definition at line 764 of file FMMMLayout.h.
|
private |
The strength of repulsive forces during postprocessing.
Definition at line 765 of file FMMMLayout.h.
|
private |
The option for presorting connected components.
Definition at line 728 of file FMMMLayout.h.
|
private |
The option for quality-vs-speed trade-off.
Definition at line 714 of file FMMMLayout.h.
|
private |
The number of random tries.
Definition at line 734 of file FMMMLayout.h.
|
private |
The random seed.
Definition at line 718 of file FMMMLayout.h.
|
private |
The strength of repulsive forces.
Definition at line 748 of file FMMMLayout.h.
|
private |
Option for how to calculate repulsive forces.
Definition at line 749 of file FMMMLayout.h.
|
private |
The option for resizing the drawing.
Definition at line 759 of file FMMMLayout.h.
|
private |
Parameter for resizing the drawing.
Definition at line 760 of file FMMMLayout.h.
|
private |
Option for pure single level.
Definition at line 731 of file FMMMLayout.h.
|
private |
The strengths of springs.
Definition at line 747 of file FMMMLayout.h.
|
private |
The number of rotations.
Definition at line 725 of file FMMMLayout.h.
|
private |
The stop criterion.
Definition at line 750 of file FMMMLayout.h.
|
private |
The threshold for the stop criterion.
Definition at line 751 of file FMMMLayout.h.
|
private |
Option for tip-over of connected components.
Definition at line 726 of file FMMMLayout.h.
|
private |
The unit edge length.
Definition at line 712 of file FMMMLayout.h.
|
private |
The option for using high-level options.
Definition at line 710 of file FMMMLayout.h.
|
private |
The maximum value for an integer position.
Definition at line 776 of file FMMMLayout.h.
|
private |
Class for repulsive force calculation.
Definition at line 786 of file FMMMLayout.h.
|
private |
The number of components of the graph.
Definition at line 780 of file FMMMLayout.h.
Holds the radius of the surrounding circle for each node.
Definition at line 782 of file FMMMLayout.h.
|
private |
The runtime (=CPU-time) of the algorithm in seconds.
Definition at line 783 of file FMMMLayout.h.