|
Open Graph Drawing Framework |
v. 2023.09 (Elderberry)
|
|
|
Go to the documentation of this file.
48 namespace energybased {
57 int min_Graph_size,
int rand_tries,
Array<Graph*>& G_mult_ptr,
82 int& bad_edgenr_counter);
The namespace for all OGDF objects.
Includes declaration of graph class.
Declaration of classes GenericPoint, GenericPolyline, GenericLine, GenericSegment,...
GalaxyChoice
Specifies how sun nodes of galaxies are selected.
void find_initial_placement_for_level(int level, FMMMOptions::InitialPlacementMult init_placement_way, Array< Graph * > &G_mult_ptr, Array< NodeArray< NodeAttributes > * > &A_mult_ptr, Array< EdgeArray< EdgeAttributes > * > &E_mult_ptr)
The initial placement of the nodes at multilevel level are created by the placements of the nodes of ...
void delete_multilevel_representations(Array< Graph * > &G_mult_ptr, Array< NodeArray< NodeAttributes > * > &A_mult_ptr, Array< EdgeArray< EdgeAttributes > * > &E_mult_ptr, int max_level)
Free dynamically allocated memory.
InitialPlacementMult
Specifies how the initial placement is generated.
void delete_parallel_edges_and_update_edgelength(Array< Graph * > &G_mult_ptr, Array< EdgeArray< EdgeAttributes > * > &E_mult_ptr, EdgeArray< double > &new_edgelength, int act_level)
Parallel edges at level act_level+1 are deleted and the edgelength of the remaining edge is set to th...
void create_edges_edgedistances_and_lambda_Lists(Array< Graph * > &G_mult_ptr, Array< NodeArray< NodeAttributes > * > &A_mult_ptr, Array< EdgeArray< EdgeAttributes > * > &E_mult_ptr, EdgeArray< double > &new_edgelength, int act_level)
The edges , new_edgelength and the lambda lists at level act_level+1 are created (the graph may conta...
bool edgenumbersum_of_all_levels_is_linear(Array< Graph * > &G_mult_ptr, int act_level, int &bad_edgenr_counter)
This function returns true if act_level = 0 or if act_level >0 and the number of edges at the actual ...
DPoint get_barycenter_position(List< DPoint > &L)
Returns the barycenter position of all points in L (the mass of all point is regarded as equal).
The parameterized class Array implements dynamic arrays of type E.
void set_initial_positions_of_planet_and_moon_nodes(int level, FMMMOptions::InitialPlacementMult init_placement_way, Array< Graph * > &G_mult_ptr, Array< NodeArray< NodeAttributes > * > &A_mult_ptr, Array< EdgeArray< EdgeAttributes > * > &E_mult_ptr, List< node > &pm_nodes)
The initial positions of the planet/moon_nodes at level level are calculated here and a list of all p...
void collaps_solar_systems(Array< Graph * > &G_mult_ptr, Array< NodeArray< NodeAttributes > * > &A_mult_ptr, Array< EdgeArray< EdgeAttributes > * > &E_mult_ptr, int act_level)
Using information generated in partition_galaxy_into_solar_systems we create the edge set of *G_mult_...
void set_initial_positions_of_pm_nodes(int level, FMMMOptions::InitialPlacementMult init_placement_way, Array< NodeArray< NodeAttributes > * > &A_mult_ptr, Array< EdgeArray< EdgeAttributes > * > &E_mult_ptr, List< node > &pm_nodes)
The initial positions of the pm nodes are calculated by the position of the dedicated sun and moon_no...
void create_multilevel_representations(Graph &G, NodeArray< NodeAttributes > &A, EdgeArray< EdgeAttributes > &E, int rand_seed, FMMMOptions::GalaxyChoice galaxy_choice, int min_Graph_size, int rand_tries, Array< Graph * > &G_mult_ptr, Array< NodeArray< NodeAttributes > * > &A_mult_ptr, Array< EdgeArray< EdgeAttributes > * > &E_mult_ptr, int &max_level)
The multilevel representations *G_mult_ptr/*A_mult_ptr/*E_mult_ptr for G/A/E are created....
Doubly linked lists (maintaining the length of the list).
RegisteredArray for nodes, edges and adjEntries of a graph.
Data type for general directed graphs (adjacency list representation).
void init_multilevel_values(const Graph &G_mult, NodeArray< NodeAttributes > &A_mult, EdgeArray< EdgeAttributes > &E_mult)
Sets the default multilevel values for all nodes and edges in G_mult.
void create_all_placement_sectors(Array< Graph * > &G_mult_ptr, Array< NodeArray< NodeAttributes > * > &A_mult_ptr, Array< EdgeArray< EdgeAttributes > * > &E_mult_ptr, int level)
The values of angle_1 and angle_2 that restrict the area of the placement for all nodes that are not ...
Declaration and implementation of Array class and Array algorithms.
DPoint create_random_pos(DPoint center, double radius, double angle_1, double angle_2)
Returns a random point with radius radius between angle_1 and angle_2.
void calculate_mass_of_collapsed_nodes(Array< Graph * > &G_mult_ptr, Array< NodeArray< NodeAttributes > * > &A_mult_ptr, int act_level)
The mass of all nodes at level act_level+1 is set to the mass of its dedicated solar_system at level ...
DPoint get_waggled_inbetween_position(DPoint s, DPoint t, double lambda)
Returns roughtly the position s +lambda*(t-s) + some random waggling.
void set_initial_positions_of_sun_nodes(int level, Array< Graph * > &G_mult_ptr, Array< NodeArray< NodeAttributes > * > &A_mult_ptr)
The initial positions of all sun_nodes at level level are set.
void create_moon_nodes_and_pm_nodes(const Graph &G_mult, NodeArray< NodeAttributes > &A_mult, EdgeArray< EdgeAttributes > &E_mult)
Partitions the nodes of G_mult that have not been assigned yet, to moon nodes of a nearest planet or ...
void partition_galaxy_into_solar_systems(Array< Graph * > &G_mult_ptr, Array< NodeArray< NodeAttributes > * > &A_mult_ptr, Array< EdgeArray< EdgeAttributes > * > &E_mult_ptr, int rand_seed, FMMMOptions::GalaxyChoice galaxy_choice, int random_tries, int act_level)
The nodeset(galaxy) of *G_mult_ptr[act_level] is partitioned in s,p,pm,m nodes. The dedicated s,...
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
DPoint calculate_position(DPoint P, DPoint Q, double dist_P, double dist_Q)
Creates a waggled position on the line PQ, depending on dist_P and dist_Q needed in case init_placeme...
void create_suns_and_planets(Array< Graph * > &G_mult_ptr, Array< NodeArray< NodeAttributes > * > &A_mult_ptr, Array< EdgeArray< EdgeAttributes > * > &E_mult_ptr, int rand_seed, FMMMOptions::GalaxyChoice galaxy_choice, int random_tries, int act_level)
The sun and planet nodes are created by choosing the sun nodes randomly with uniform or weighted prob...
Declaration of Fast Multipole Multilevel Method (FM^3) options.