The fast multipole multilevel layout algorithm. More...
#include <ogdf/energybased/FMMMLayout.h>
Public Member Functions | |
FMMMLayout () | |
Creates an instance of the layout algorithm. More... | |
virtual | ~FMMMLayout () |
The algorithm call | |
virtual void | call (GraphAttributes &GA) override |
Calls the algorithm for graph GA and returns the layout information in GA . More... | |
void | call (ClusterGraphAttributes &GA) |
Calls the algorithm for clustered graph GA and returns the layout information in GA . Models cluster by simple edge length adaption based on least common ancestor cluster of end vertices. More... | |
void | call (GraphAttributes &GA, const EdgeArray< double > &edgeLength) |
Extended algorithm call: Allows to pass desired lengths of the edges. More... | |
void | call (GraphAttributes &GA, char *ps_file) |
Extended algorithm call: Calls the algorithm for graph GA . More... | |
void | call (GraphAttributes &GA, const EdgeArray< double > &edgeLength, char *ps_file) |
Extend algorithm call: Allows to pass desired lengths of the edges. More... | |
Further information. | |
double | getCpuTime () |
Returns the runtime (=CPU-time) of the layout algorithm in seconds. More... | |
High-level options | |
Allow to specify the most relevant parameters. | |
void | resetOptions () |
All parameter options (both low- and high-level) are set to the default values. More... | |
bool | useHighLevelOptions () const |
Returns the current setting of option useHighLevelOptions. More... | |
void | useHighLevelOptions (bool uho) |
Sets the option useHighLevelOptions to uho . More... | |
void | setSingleLevel (bool b) |
Sets single level option, no multilevel hierarchy is created if b == true. More... | |
FMMMOptions::PageFormatType | pageFormat () const |
Returns the current setting of option pageFormat. More... | |
void | pageFormat (FMMMOptions::PageFormatType t) |
Sets the option pageRatio to t . More... | |
double | unitEdgeLength () const |
Returns the current setting of option unitEdgeLength. More... | |
void | unitEdgeLength (double x) |
Sets the option unitEdgeLength to x . More... | |
bool | newInitialPlacement () const |
Returns the current setting of option newInitialPlacement. More... | |
void | newInitialPlacement (bool nip) |
Sets the option newInitialPlacement to nip . More... | |
FMMMOptions::QualityVsSpeed | qualityVersusSpeed () const |
Returns the current setting of option qualityVersusSpeed. More... | |
void | qualityVersusSpeed (FMMMOptions::QualityVsSpeed qvs) |
Sets the option qualityVersusSpeed to qvs . More... | |
General low-level options | |
The low-level options in this and the following sections are meant for experts or interested people only. | |
void | randSeed (int p) |
Sets the seed of the random number generator. More... | |
int | randSeed () const |
Returns the seed of the random number generator. More... | |
FMMMOptions::EdgeLengthMeasurement | edgeLengthMeasurement () const |
Returns the current setting of option edgeLengthMeasurement. More... | |
void | edgeLengthMeasurement (FMMMOptions::EdgeLengthMeasurement elm) |
Sets the option edgeLengthMeasurement to elm . More... | |
FMMMOptions::AllowedPositions | allowedPositions () const |
Returns the current setting of option allowedPositions. More... | |
void | allowedPositions (FMMMOptions::AllowedPositions ap) |
Sets the option allowedPositions to ap . More... | |
int | maxIntPosExponent () const |
Returns the current setting of option maxIntPosExponent. More... | |
void | maxIntPosExponent (int e) |
Sets the option maxIntPosExponent to e . More... | |
Options for the divide et impera step | |
double | pageRatio () const |
Returns the current setting of option pageRatio. More... | |
void | pageRatio (double r) |
Sets the option pageRatio to r . More... | |
int | stepsForRotatingComponents () const |
Returns the current setting of option stepsForRotatingComponents. More... | |
void | stepsForRotatingComponents (int n) |
Sets the option stepsForRotatingComponents to n . More... | |
FMMMOptions::TipOver | tipOverCCs () const |
Returns the current setting of option tipOverCCs. More... | |
void | tipOverCCs (FMMMOptions::TipOver to) |
Sets the option tipOverCCs to to . More... | |
double | minDistCC () const |
Returns the minimal distance between connected components. More... | |
void | minDistCC (double x) |
Sets the minimal distance between connected components to x . More... | |
FMMMOptions::PreSort | presortCCs () const |
Returns the current setting of option presortCCs. More... | |
void | presortCCs (FMMMOptions::PreSort ps) |
Sets the option presortCCs to ps . More... | |
Options for the multilevel step | |
int | minGraphSize () const |
Returns the current setting of option minGraphSize. More... | |
void | minGraphSize (int n) |
Sets the option minGraphSize to n . More... | |
FMMMOptions::GalaxyChoice | galaxyChoice () const |
Returns the current setting of option galaxyChoice. More... | |
void | galaxyChoice (FMMMOptions::GalaxyChoice gc) |
Sets the option galaxyChoice to gc . More... | |
int | randomTries () const |
Returns the current setting of option randomTries. More... | |
void | randomTries (int n) |
Sets the option randomTries to n . More... | |
FMMMOptions::MaxIterChange | maxIterChange () const |
Returns the current setting of option maxIterChange. More... | |
void | maxIterChange (FMMMOptions::MaxIterChange mic) |
Sets the option maxIterChange to mic . More... | |
int | maxIterFactor () const |
Returns the current setting of option maxIterFactor. More... | |
void | maxIterFactor (int f) |
Sets the option maxIterFactor to f . More... | |
FMMMOptions::InitialPlacementMult | initialPlacementMult () const |
Returns the current setting of option initialPlacementMult. More... | |
void | initialPlacementMult (FMMMOptions::InitialPlacementMult ipm) |
Sets the option initialPlacementMult to ipm . More... | |
Options for the force calculation step | |
FMMMOptions::ForceModel | forceModel () const |
Returns the used force model. More... | |
void | forceModel (FMMMOptions::ForceModel fm) |
Sets the used force model to fm . More... | |
double | springStrength () const |
Returns the strength of the springs. More... | |
void | springStrength (double x) |
Sets the strength of the springs to x . More... | |
double | repForcesStrength () const |
Returns the strength of the repulsive forces. More... | |
void | repForcesStrength (double x) |
Sets the strength of the repulsive forces to x . More... | |
FMMMOptions::RepulsiveForcesMethod | repulsiveForcesCalculation () const |
Returns the current setting of option repulsiveForcesCalculation. More... | |
void | repulsiveForcesCalculation (FMMMOptions::RepulsiveForcesMethod rfc) |
Sets the option repulsiveForcesCalculation to rfc . More... | |
FMMMOptions::StopCriterion | stopCriterion () const |
Returns the stop criterion. More... | |
void | stopCriterion (FMMMOptions::StopCriterion rsc) |
Sets the stop criterion to rsc . More... | |
double | threshold () const |
Returns the threshold for the stop criterion. More... | |
void | threshold (double x) |
Sets the threshold for the stop criterion to x . More... | |
int | fixedIterations () const |
Returns the fixed number of iterations for the stop criterion. More... | |
void | fixedIterations (int n) |
Sets the fixed number of iterations for the stop criterion to n . More... | |
double | forceScalingFactor () const |
Returns the scaling factor for the forces. More... | |
void | forceScalingFactor (double f) |
Sets the scaling factor for the forces to f . More... | |
bool | coolTemperature () const |
Returns the current setting of option coolTemperature. More... | |
void | coolTemperature (bool b) |
Sets the option coolTemperature to b . More... | |
double | coolValue () const |
Returns the current setting of option coolValue. More... | |
void | coolValue (double x) |
Sets the option coolValue to x . More... | |
FMMMOptions::InitialPlacementForces | initialPlacementForces () const |
Returns the current setting of option initialPlacementForces. More... | |
void | initialPlacementForces (FMMMOptions::InitialPlacementForces ipf) |
Sets the option initialPlacementForces to ipf . More... | |
Options for the postprocessing step | |
bool | resizeDrawing () const |
Returns the current setting of option resizeDrawing. More... | |
void | resizeDrawing (bool b) |
Sets the option resizeDrawing to b . More... | |
double | resizingScalar () const |
Returns the current setting of option resizingScalar. More... | |
void | resizingScalar (double s) |
Sets the option resizingScalar to s . More... | |
int | fineTuningIterations () const |
Returns the number of iterations for fine tuning. More... | |
void | fineTuningIterations (int n) |
Sets the number of iterations for fine tuning to n . More... | |
double | fineTuneScalar () const |
Returns the curent setting of option fineTuneScalar. More... | |
void | fineTuneScalar (double s) |
Sets the option fineTuneScalar to s . More... | |
bool | adjustPostRepStrengthDynamically () const |
Returns the current setting of option adjustPostRepStrengthDynamically. More... | |
void | adjustPostRepStrengthDynamically (bool b) |
Sets the option adjustPostRepStrengthDynamically to b . More... | |
double | postSpringStrength () const |
Returns the strength of the springs in the postprocessing step. More... | |
void | postSpringStrength (double x) |
Sets the strength of the springs in the postprocessing step to x . More... | |
double | postStrengthOfRepForces () const |
Returns the strength of the repulsive forces in the postprocessing step. More... | |
void | postStrengthOfRepForces (double x) |
Sets the strength of the repulsive forces in the postprocessing step to x . More... | |
Options for repulsive force approximation methods | |
int | frGridQuotient () const |
Returns the current setting of option frGridQuotient. More... | |
void | frGridQuotient (int p) |
Sets the option frGridQuotient to p . More... | |
FMMMOptions::ReducedTreeConstruction | nmTreeConstruction () const |
Returns the current setting of option nmTreeConstruction. More... | |
void | nmTreeConstruction (FMMMOptions::ReducedTreeConstruction rtc) |
Sets the option nmTreeConstruction to rtc . More... | |
FMMMOptions::SmallestCellFinding | nmSmallCell () const |
Returns the current setting of option nmSmallCell. More... | |
void | nmSmallCell (FMMMOptions::SmallestCellFinding scf) |
Sets the option nmSmallCell to scf . More... | |
int | nmParticlesInLeaves () const |
Returns the current setting of option nmParticlesInLeaves. More... | |
void | nmParticlesInLeaves (int n) |
Sets the option nmParticlesInLeaves to n . More... | |
int | nmPrecision () const |
Returns the precision p for the p-term multipole expansions. More... | |
void | nmPrecision (int p) |
Sets the precision for the multipole expansions to p . More... | |
Public Member Functions inherited from ogdf::LayoutModule | |
LayoutModule () | |
Initializes a layout module. More... | |
virtual | ~LayoutModule () |
void | operator() (GraphAttributes &GA) |
Computes a layout of graph GA . More... | |
Private Types | |
using | EdgeAttributes = energybased::fmmm::EdgeAttributes |
using | NodeAttributes = energybased::fmmm::NodeAttributes |
using | Rectangle = energybased::fmmm::Rectangle |
Private Member Functions | |
Most important functions | |
void | call_DIVIDE_ET_IMPERA_step (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E) |
Calls the divide (decomposition into connected components) and impera (drawing and packing of the componenets) step. More... | |
void | call_MULTILEVEL_step_for_subGraph (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E) |
Calls the multilevel step for subGraph G . More... | |
bool | running (int iter, int max_mult_iter, double actforcevectorlength) |
Returns true iff stopCriterion() is not met. More... | |
void | call_FORCE_CALCULATION_step (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, int act_level, int max_level) |
Calls the force calculation step for G , A , E . More... | |
void | call_POSTPROCESSING_step (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, NodeArray< DPoint > &F, NodeArray< DPoint > &F_attr, NodeArray< DPoint > &F_rep, NodeArray< DPoint > &last_node_movement) |
Calls the postprocessing step. More... | |
Functions for pre- and post-processing | |
void | update_low_level_options_due_to_high_level_options_settings () |
Updates several low level parameter options due to the settings of the high level parameter options. More... | |
void | import_NodeAttributes (const Graph &G, GraphAttributes &GA, NodeArray< NodeAttributes > &A) |
Imports for each node v of G its width, height and position (given from GA ) in A . More... | |
void | import_EdgeAttributes (const Graph &G, const EdgeArray< double > &edgeLength, EdgeArray< EdgeAttributes > &E) |
Imports for each edge e of G its desired length given via edgeLength. More... | |
void | init_ind_ideal_edgelength (const Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E) |
Sets the individual ideal edge length for each edge e. More... | |
void | set_radii (const Graph &G, NodeArray< NodeAttributes > &A) |
The radii of the surrounding circles of the bounding boxes are computed. More... | |
void | export_NodeAttributes (Graph &G_reduced, NodeArray< NodeAttributes > &A_reduced, GraphAttributes &GA) |
Exports for each node v in G_reduced the position of the original_node in GA . More... | |
void | make_simple_loopfree (const Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > E, Graph &G_reduced, NodeArray< NodeAttributes > &A_reduced, EdgeArray< EdgeAttributes > &E_reduced) |
Creates a simple and loopfree copy of G and stores the corresponding node / edge attributes. More... | |
void | delete_parallel_edges (const Graph &G, EdgeArray< EdgeAttributes > &E, Graph &G_reduced, List< edge > &S, EdgeArray< double > &new_edgelength) |
Deletes parallel edges of G_reduced . More... | |
void | update_edgelength (List< edge > &S, EdgeArray< double > &new_edgelength, EdgeArray< EdgeAttributes > &E_reduced) |
Sets for each edge e of G_reduced in S its edgelength to new_edgelength [e]. More... | |
double | get_post_rep_force_strength (int n) |
Returns the value for the strength of the repulsive forces. More... | |
void | adjust_positions (const Graph &G, NodeArray< NodeAttributes > &A) |
Adjust positions according to allowedPositions() More... | |
void | create_postscript_drawing (GraphAttributes &GA, char *ps_file) |
Creates a simple drawing of GA in postscript format and saves it in file ps_file . More... | |
Functions for divide et impera step | |
void | create_maximum_connected_subGraphs (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, Graph G_sub[], NodeArray< NodeAttributes > A_sub[], EdgeArray< EdgeAttributes > E_sub[], NodeArray< int > &component) |
Constructs the list of connected components of G. More... | |
void | pack_subGraph_drawings (NodeArray< NodeAttributes > &A, Graph G_sub[], NodeArray< NodeAttributes > A_sub[]) |
The drawings of the subgraphs are packed. More... | |
void | calculate_bounding_rectangles_of_components (List< Rectangle > &R, Graph G_sub[], NodeArray< NodeAttributes > A_sub[]) |
The bounding rectangles of all connected componenents of G are calculated and stored in R . More... | |
Rectangle | calculate_bounding_rectangle (Graph &G, NodeArray< NodeAttributes > &A, int componenet_index) |
The bounding rectangle of the componenet_index-th. component of G is returned. More... | |
void | rotate_components_and_calculate_bounding_rectangles (List< Rectangle > &R, Graph G_sub[], NodeArray< NodeAttributes > A_sub[]) |
If number_of_components > 1, the subgraphs G_sub are rotated and skipped to find bounding rectangles with minimum area. More... | |
double | calculate_area (double width, double height, int comp_nr) |
Returns the area (aspect ratio area) of a rectangle with width w and height h if comp_nr > 1 ( comp_nr == 1). More... | |
void | export_node_positions (NodeArray< NodeAttributes > &A, List< Rectangle > &R, Graph G_sub[], NodeArray< NodeAttributes > A_sub[]) |
The positions of the nodes in the subgraphs are calculated by using the information stored in R and are exported to A. More... | |
void | delete_all_subGraphs (Graph G_sub[], NodeArray< NodeAttributes > A_sub[], EdgeArray< EdgeAttributes > E_sub[]) |
Frees dynamically allocated memory for the connected component subgraphs. More... | |
Functions for multilevel step | |
int | get_max_mult_iter (int act_level, int max_level, int node_nr) |
Returns the maximum number of iterations for the force calc. More... | |
Functions for force calculation | |
void | calculate_forces (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, NodeArray< DPoint > &F, NodeArray< DPoint > &F_attr, NodeArray< DPoint > &F_rep, NodeArray< DPoint > &last_node_movement, int iter, int fine_tuning_step) |
The forces are calculated here. More... | |
void | init_boxlength_and_cornercoordinate (Graph &G, NodeArray< NodeAttributes > &A) |
The length of the computational box in the first iteration is set (down left corner is at (0,0). More... | |
void | create_initial_placement (Graph &G, NodeArray< NodeAttributes > &A) |
The initial placements of the nodes are created by using initialPlacementForces(). More... | |
void | create_initial_placement_uniform_grid (const Graph &G, NodeArray< NodeAttributes > &A) |
Places nodes uniformly in a grid. More... | |
void | create_initial_placement_random (const Graph &G, NodeArray< NodeAttributes > &A) |
Places nodes randomly. More... | |
void | init_F (Graph &G, NodeArray< DPoint > &F) |
Sets all entries of F to (0,0). More... | |
void | make_initialisations_for_rep_calc_classes (Graph &G) |
Make initializations for the data structures that are used in the choosen class for rep. force calculation. More... | |
void | calculate_repulsive_forces (Graph &G, NodeArray< NodeAttributes > &A, NodeArray< DPoint > &F_rep) |
Calculates repulsive forces for each node. More... | |
void | deallocate_memory_for_rep_calc_classes () |
Deallocates dynamically allocated memory of the choosen rep. calculation class. More... | |
void | calculate_attractive_forces (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, NodeArray< DPoint > &F_attr) |
Calculates attractive forces for each node. More... | |
double | f_attr_scalar (double d, double ind_ideal_edge_length) |
Returns the attractive force scalar. More... | |
void | add_attr_rep_forces (Graph &G, NodeArray< DPoint > &F_attr, NodeArray< DPoint > &F_rep, NodeArray< DPoint > &F, int iter, int fine_tuning_step) |
Add attractive and repulsive forces for each node. More... | |
void | move_nodes (Graph &G, NodeArray< NodeAttributes > &A, NodeArray< DPoint > &F) |
Move the nodes. More... | |
void | update_boxlength_and_cornercoordinate (Graph &G, NodeArray< NodeAttributes > &A) |
Computes a new tight computational square-box. More... | |
double | max_radius (int iter) |
Describes the max. radius of a move in one time step, depending on the number of iterations. More... | |
void | set_average_ideal_edgelength (Graph &G, EdgeArray< EdgeAttributes > &E) |
The average_ideal_edgelength for all edges is computed. More... | |
double | get_average_forcevector_length (Graph &G, NodeArray< DPoint > &F) |
Calculates the average force on each node in the actual iteration, which is needed if StopCriterion is scThreshold() or scFixedIterationsOrThreshold(). More... | |
void | prevent_oscillations (Graph &G, NodeArray< DPoint > &F, NodeArray< DPoint > &last_node_movement, int iter) |
Depending on the direction of last_node_movement [v], the length of the next displacement of node v is restricted. More... | |
void | init_last_node_movement (Graph &G, NodeArray< DPoint > &F, NodeArray< DPoint > &last_node_movement) |
last_node_movement is initialized to F (used after first iteration). More... | |
void | adapt_drawing_to_ideal_average_edgelength (Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E) |
If resizeDrawing is true, the drawing is adapted to the ideal average edge length by shrinking respectively expanding the drawing area. More... | |
void | restrict_force_to_comp_box (DPoint &force) |
The force is restricted to have values within the comp. More... | |
Functions for analytic information | |
void | init_time () |
Sets time_total to zero. More... | |
Private Attributes | |
double | average_ideal_edgelength |
Measured from center to center. More... | |
double | boxlength |
Holds the length of the quadratic comput. More... | |
double | cool_factor |
Needed for scaling the forces if coolTemperature is true. More... | |
DPoint | down_left_corner |
Holds down left corner of the comput. More... | |
energybased::fmmm::FruchtermanReingold | FR |
Class for repulsive force calculation (Fruchterman, Reingold). More... | |
bool | m_adjustPostRepStrengthDynamically |
The option adjustPostRepStrengthDynamically. More... | |
FMMMOptions::AllowedPositions | m_allowedPositions |
The option for allowed positions. More... | |
bool | m_coolTemperature |
The option for how to scale forces. More... | |
double | m_coolValue |
The value by which forces are decreased. More... | |
FMMMOptions::EdgeLengthMeasurement | m_edgeLengthMeasurement |
The option for edge length measurement. More... | |
double | m_fineTuneScalar |
Parameter for scaling forces during fine tuning. More... | |
int | m_fineTuningIterations |
The number of iterations for fine tuning. More... | |
int | m_fixedIterations |
The fixed number of iterations for the stop criterion. More... | |
FMMMOptions::ForceModel | m_forceModel |
The used force model. More... | |
double | m_forceScalingFactor |
The scaling factor for the forces. More... | |
int | m_frGridQuotient |
The grid quotient. More... | |
FMMMOptions::GalaxyChoice | m_galaxyChoice |
The selection of galaxy nodes. More... | |
FMMMOptions::InitialPlacementForces | m_initialPlacementForces |
The option for how the initial placement is done. More... | |
FMMMOptions::InitialPlacementMult | m_initialPlacementMult |
The option for creating initial placement. More... | |
int | m_maxIntPosExponent |
The option for the used exponent. More... | |
FMMMOptions::MaxIterChange | m_maxIterChange |
The option for how to change MaxIterations. If maxIterChange != micConstant, the iterations are decreased depending on the level, starting from ((maxIterFactor()-1) * fixedIterations()) More... | |
int | m_maxIterFactor |
The factor used for decreasing MaxIterations. More... | |
double | m_minDistCC |
The separation between connected components. More... | |
int | m_minGraphSize |
The option for minimal graph size. More... | |
bool | m_newInitialPlacement |
The option for new initial placement. More... | |
int | m_NMParticlesInLeaves |
The maximal number of particles in a leaf. More... | |
int | m_NMPrecision |
The precision for multipole expansions. More... | |
FMMMOptions::SmallestCellFinding | m_NMSmallCell |
The option for how to calculate smallest quadtratic cells. More... | |
FMMMOptions::ReducedTreeConstruction | m_NMTreeConstruction |
The option for how to construct reduced bucket quadtree. More... | |
FMMMOptions::PageFormatType | m_pageFormat |
The option for the page format. More... | |
double | m_pageRatio |
The desired page ratio. More... | |
double | m_postSpringStrength |
The strength of springs during postprocessing. More... | |
double | m_postStrengthOfRepForces |
The strength of repulsive forces during postprocessing. More... | |
FMMMOptions::PreSort | m_presortCCs |
The option for presorting connected components. More... | |
FMMMOptions::QualityVsSpeed | m_qualityVersusSpeed |
The option for quality-vs-speed trade-off. More... | |
int | m_randomTries |
The number of random tries. More... | |
int | m_randSeed |
The random seed. More... | |
double | m_repForcesStrength |
The strength of repulsive forces. More... | |
FMMMOptions::RepulsiveForcesMethod | m_repulsiveForcesCalculation |
Option for how to calculate repulsive forces. More... | |
bool | m_resizeDrawing |
The option for resizing the drawing. More... | |
double | m_resizingScalar |
Parameter for resizing the drawing. More... | |
bool | m_singleLevel |
Option for pure single level. More... | |
double | m_springStrength |
The strengths of springs. More... | |
int | m_stepsForRotatingComponents |
The number of rotations. More... | |
FMMMOptions::StopCriterion | m_stopCriterion |
The stop criterion. More... | |
double | m_threshold |
The threshold for the stop criterion. More... | |
FMMMOptions::TipOver | m_tipOverCCs |
Option for tip-over of connected components. More... | |
double | m_unitEdgeLength |
The unit edge length. More... | |
bool | m_useHighLevelOptions |
The option for using high-level options. More... | |
double | max_integer_position |
The maximum value for an integer position. More... | |
energybased::fmmm::NewMultipoleMethod | NM |
Class for repulsive force calculation. More... | |
int | number_of_components |
The number of components of the graph. More... | |
NodeArray< double > | radius |
Holds the radius of the surrounding circle for each node. More... | |
double | time_total |
The runtime (=CPU-time) of the algorithm in seconds. More... | |
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 242 of file FMMMLayout.h.
|
private |
Definition at line 245 of file FMMMLayout.h.
|
private |
Definition at line 244 of file FMMMLayout.h.
|
private |
Definition at line 243 of file FMMMLayout.h.
ogdf::FMMMLayout::FMMMLayout | ( | ) |
Creates an instance of the layout algorithm.
|
inlinevirtual |
Definition at line 252 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 654 of file FMMMLayout.h.
|
inline |
Sets the option adjustPostRepStrengthDynamically to b
.
Definition at line 657 of file FMMMLayout.h.
|
inline |
Returns the current setting of option allowedPositions.
Definition at line 400 of file FMMMLayout.h.
|
inline |
Sets the option allowedPositions to ap
.
Definition at line 403 of file FMMMLayout.h.
|
inlineprivate |
Returns the area (aspect ratio area) of a rectangle with width w and height h if comp_nr > 1 ( comp_nr == 1).
Definition at line 934 of file FMMMLayout.h.
|
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 1010 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 582 of file FMMMLayout.h.
|
inline |
Sets the option coolTemperature to b
.
Definition at line 585 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 592 of file FMMMLayout.h.
|
inline |
Sets the option coolValue to x
.
Definition at line 595 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 1025 of file FMMMLayout.h.
|
inlineprivate |
Frees dynamically allocated memory for the connected component subgraphs.
Definition at line 960 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 390 of file FMMMLayout.h.
|
inline |
Sets the option edgeLengthMeasurement to elm
.
Definition at line 395 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
.
|
private |
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 643 of file FMMMLayout.h.
|
inline |
Sets the option fineTuneScalar to s
.
Definition at line 646 of file FMMMLayout.h.
|
inline |
Returns the number of iterations for fine tuning.
Definition at line 633 of file FMMMLayout.h.
|
inline |
Sets the number of iterations for fine tuning to n
.
Definition at line 636 of file FMMMLayout.h.
|
inline |
Returns the fixed number of iterations for the stop criterion.
Definition at line 566 of file FMMMLayout.h.
|
inline |
Sets the fixed number of iterations for the stop criterion to n
.
Definition at line 569 of file FMMMLayout.h.
|
inline |
Returns the used force model.
Definition at line 522 of file FMMMLayout.h.
|
inline |
Sets the used force model to fm
.
Definition at line 525 of file FMMMLayout.h.
|
inline |
Returns the scaling factor for the forces.
Definition at line 572 of file FMMMLayout.h.
|
inline |
Sets the scaling factor for the forces to f
.
Definition at line 575 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 681 of file FMMMLayout.h.
|
inline |
Sets the option frGridQuotient to p
.
Definition at line 684 of file FMMMLayout.h.
|
inline |
Returns the current setting of option galaxyChoice.
Definition at line 473 of file FMMMLayout.h.
|
inline |
Sets the option galaxyChoice to gc
.
Definition at line 476 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().
|
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.
|
inlineprivate |
Returns the value for the strength of the repulsive forces.
Used in the postprocessing step; depending on n
= G.numberOfNodes().
Definition at line 880 of file FMMMLayout.h.
|
inline |
Returns the runtime (=CPU-time) of the layout algorithm in seconds.
Definition at line 300 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 1107 of file FMMMLayout.h.
|
inline |
Returns the current setting of option initialPlacementForces.
Definition at line 598 of file FMMMLayout.h.
|
inline |
Sets the option initialPlacementForces to ipf
.
Definition at line 603 of file FMMMLayout.h.
|
inline |
Returns the current setting of option initialPlacementMult.
Definition at line 507 of file FMMMLayout.h.
|
inline |
Sets the option initialPlacementMult to ipm
.
Definition at line 512 of file FMMMLayout.h.
|
private |
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.
|
inlineprivate |
Describes the max. radius of a move in one time step, depending on the number of iterations.
Definition at line 1052 of file FMMMLayout.h.
|
inline |
Returns the current setting of option maxIntPosExponent.
This option defines the exponent used if allowedPositions() == FMMMOptions::AllowedPositions::Exponent.
Definition at line 409 of file FMMMLayout.h.
|
inline |
Sets the option maxIntPosExponent to e
.
Definition at line 412 of file FMMMLayout.h.
|
inline |
Returns the current setting of option maxIterChange.
Definition at line 490 of file FMMMLayout.h.
|
inline |
Sets the option maxIterChange to mic
.
Definition at line 493 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 501 of file FMMMLayout.h.
|
inline |
Sets the option maxIterFactor to f
.
Definition at line 504 of file FMMMLayout.h.
|
inline |
Returns the minimal distance between connected components.
Definition at line 445 of file FMMMLayout.h.
|
inline |
Sets the minimal distance between connected components to x
.
Definition at line 448 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 467 of file FMMMLayout.h.
|
inline |
Sets the option minGraphSize to n
.
Definition at line 470 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 361 of file FMMMLayout.h.
|
inline |
Sets the option newInitialPlacement to nip
.
Definition at line 364 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 705 of file FMMMLayout.h.
|
inline |
Sets the option nmParticlesInLeaves to n
.
Definition at line 708 of file FMMMLayout.h.
|
inline |
Returns the precision p for the p-term multipole expansions.
Definition at line 711 of file FMMMLayout.h.
|
inline |
Sets the precision for the multipole expansions to p
.
Definition at line 714 of file FMMMLayout.h.
|
inline |
Returns the current setting of option nmSmallCell.
Definition at line 695 of file FMMMLayout.h.
|
inline |
Sets the option nmSmallCell to scf
.
Definition at line 698 of file FMMMLayout.h.
|
inline |
Returns the current setting of option nmTreeConstruction.
Definition at line 687 of file FMMMLayout.h.
|
inline |
Sets the option nmTreeConstruction to rtc
.
Definition at line 690 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 341 of file FMMMLayout.h.
|
inline |
Sets the option pageRatio to t
.
Definition at line 344 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 423 of file FMMMLayout.h.
|
inline |
Sets the option pageRatio to r
.
Definition at line 426 of file FMMMLayout.h.
|
inline |
Returns the strength of the springs in the postprocessing step.
Definition at line 660 of file FMMMLayout.h.
|
inline |
Sets the strength of the springs in the postprocessing step to x
.
Definition at line 663 of file FMMMLayout.h.
|
inline |
Returns the strength of the repulsive forces in the postprocessing step.
Definition at line 666 of file FMMMLayout.h.
|
inline |
Sets the strength of the repulsive forces in the postprocessing step to x
.
Definition at line 669 of file FMMMLayout.h.
|
inline |
Returns the current setting of option presortCCs.
Definition at line 451 of file FMMMLayout.h.
|
inline |
Sets the option presortCCs to ps
.
Definition at line 454 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 371 of file FMMMLayout.h.
|
inline |
Sets the option qualityVersusSpeed to qvs
.
Definition at line 374 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 484 of file FMMMLayout.h.
|
inline |
Sets the option randomTries to n
.
Definition at line 487 of file FMMMLayout.h.
|
inline |
Returns the seed of the random number generator.
Definition at line 387 of file FMMMLayout.h.
|
inline |
Sets the seed of the random number generator.
Definition at line 384 of file FMMMLayout.h.
|
inline |
Returns the strength of the repulsive forces.
Definition at line 534 of file FMMMLayout.h.
|
inline |
Sets the strength of the repulsive forces to x
.
Definition at line 537 of file FMMMLayout.h.
|
inline |
Returns the current setting of option repulsiveForcesCalculation.
Definition at line 540 of file FMMMLayout.h.
|
inline |
Sets the option repulsiveForcesCalculation to rfc
.
Definition at line 545 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 617 of file FMMMLayout.h.
|
inline |
Sets the option resizeDrawing to b
.
Definition at line 620 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 627 of file FMMMLayout.h.
|
inline |
Sets the option resizingScalar to s
.
Definition at line 630 of file FMMMLayout.h.
|
inlineprivate |
The force is restricted to have values within the comp.
box (needed for exception handling, if the force is too large for further calculations).
Definition at line 1085 of file FMMMLayout.h.
|
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.
|
private |
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.
|
inline |
Sets single level option, no multilevel hierarchy is created if b == true.
Definition at line 335 of file FMMMLayout.h.
|
inline |
Returns the strength of the springs.
Definition at line 528 of file FMMMLayout.h.
|
inline |
Sets the strength of the springs to x
.
Definition at line 531 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 433 of file FMMMLayout.h.
|
inline |
Sets the option stepsForRotatingComponents to n
.
Definition at line 436 of file FMMMLayout.h.
|
inline |
Returns the stop criterion.
Definition at line 550 of file FMMMLayout.h.
|
inline |
Sets the stop criterion to rsc
.
Definition at line 553 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 560 of file FMMMLayout.h.
|
inline |
Sets the threshold for the stop criterion to x
.
Definition at line 563 of file FMMMLayout.h.
|
inline |
Returns the current setting of option tipOverCCs.
Definition at line 439 of file FMMMLayout.h.
|
inline |
Sets the option tipOverCCs to to
.
Definition at line 442 of file FMMMLayout.h.
|
inline |
Returns the current setting of option unitEdgeLength.
Definition at line 347 of file FMMMLayout.h.
|
inline |
Sets the option unitEdgeLength to x
.
Definition at line 350 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 329 of file FMMMLayout.h.
|
inline |
Sets the option useHighLevelOptions to uho
.
Definition at line 332 of file FMMMLayout.h.
|
private |
Measured from center to center.
Definition at line 788 of file FMMMLayout.h.
|
private |
|
private |
Needed for scaling the forces if coolTemperature is true.
Definition at line 787 of file FMMMLayout.h.
|
private |
|
private |
Class for repulsive force calculation (Fruchterman, Reingold).
Definition at line 795 of file FMMMLayout.h.
|
private |
The option adjustPostRepStrengthDynamically.
Definition at line 773 of file FMMMLayout.h.
|
private |
The option for allowed positions.
Definition at line 730 of file FMMMLayout.h.
|
private |
The option for how to scale forces.
Definition at line 764 of file FMMMLayout.h.
|
private |
The value by which forces are decreased.
Definition at line 765 of file FMMMLayout.h.
|
private |
The option for edge length measurement.
Definition at line 729 of file FMMMLayout.h.
|
private |
Parameter for scaling forces during fine tuning.
Definition at line 772 of file FMMMLayout.h.
|
private |
The number of iterations for fine tuning.
Definition at line 771 of file FMMMLayout.h.
|
private |
The fixed number of iterations for the stop criterion.
Definition at line 762 of file FMMMLayout.h.
|
private |
The used force model.
Definition at line 756 of file FMMMLayout.h.
|
private |
The scaling factor for the forces.
Definition at line 763 of file FMMMLayout.h.
|
private |
The grid quotient.
Definition at line 778 of file FMMMLayout.h.
|
private |
The selection of galaxy nodes.
Definition at line 743 of file FMMMLayout.h.
|
private |
The option for how the initial placement is done.
Definition at line 766 of file FMMMLayout.h.
|
private |
The option for creating initial placement.
Definition at line 753 of file FMMMLayout.h.
|
private |
The option for the used exponent.
Definition at line 731 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 750 of file FMMMLayout.h.
|
private |
The factor used for decreasing MaxIterations.
Definition at line 752 of file FMMMLayout.h.
|
private |
The separation between connected components.
Definition at line 737 of file FMMMLayout.h.
|
private |
The option for minimal graph size.
Definition at line 742 of file FMMMLayout.h.
|
private |
The option for new initial placement.
Definition at line 723 of file FMMMLayout.h.
|
private |
The maximal number of particles in a leaf.
Definition at line 782 of file FMMMLayout.h.
|
private |
The precision for multipole expansions.
Definition at line 783 of file FMMMLayout.h.
|
private |
The option for how to calculate smallest quadtratic cells.
Definition at line 781 of file FMMMLayout.h.
|
private |
The option for how to construct reduced bucket quadtree.
Definition at line 780 of file FMMMLayout.h.
|
private |
The option for the page format.
Definition at line 721 of file FMMMLayout.h.
|
private |
The desired page ratio.
Definition at line 734 of file FMMMLayout.h.
|
private |
The strength of springs during postprocessing.
Definition at line 774 of file FMMMLayout.h.
|
private |
The strength of repulsive forces during postprocessing.
Definition at line 775 of file FMMMLayout.h.
|
private |
The option for presorting connected components.
Definition at line 738 of file FMMMLayout.h.
|
private |
The option for quality-vs-speed trade-off.
Definition at line 724 of file FMMMLayout.h.
|
private |
The number of random tries.
Definition at line 744 of file FMMMLayout.h.
|
private |
The random seed.
Definition at line 728 of file FMMMLayout.h.
|
private |
The strength of repulsive forces.
Definition at line 758 of file FMMMLayout.h.
|
private |
Option for how to calculate repulsive forces.
Definition at line 759 of file FMMMLayout.h.
|
private |
The option for resizing the drawing.
Definition at line 769 of file FMMMLayout.h.
|
private |
Parameter for resizing the drawing.
Definition at line 770 of file FMMMLayout.h.
|
private |
Option for pure single level.
Definition at line 741 of file FMMMLayout.h.
|
private |
The strengths of springs.
Definition at line 757 of file FMMMLayout.h.
|
private |
The number of rotations.
Definition at line 735 of file FMMMLayout.h.
|
private |
The stop criterion.
Definition at line 760 of file FMMMLayout.h.
|
private |
The threshold for the stop criterion.
Definition at line 761 of file FMMMLayout.h.
|
private |
Option for tip-over of connected components.
Definition at line 736 of file FMMMLayout.h.
|
private |
The unit edge length.
Definition at line 722 of file FMMMLayout.h.
|
private |
The option for using high-level options.
Definition at line 720 of file FMMMLayout.h.
|
private |
The maximum value for an integer position.
Definition at line 786 of file FMMMLayout.h.
|
private |
Class for repulsive force calculation.
Definition at line 796 of file FMMMLayout.h.
|
private |
The number of components of the graph.
Definition at line 790 of file FMMMLayout.h.
|
private |
Holds the radius of the surrounding circle for each node.
Definition at line 792 of file FMMMLayout.h.
|
private |
The runtime (=CPU-time) of the algorithm in seconds.
Definition at line 793 of file FMMMLayout.h.