Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
SolarMerger.h
Go to the documentation of this file.
1
32#pragma once
33
34#include <ogdf/basic/Graph.h>
35#include <ogdf/basic/basic.h>
37
38#include <map>
39#include <vector>
40
41namespace ogdf {
42class MultilevelGraph;
43
45
49 struct PathData {
50 explicit PathData(int targetSunParam = 0, double len = 0.0f, int num = 0)
51 : targetSun(targetSunParam), length(len), number(num) { }
52
54 double length;
55 int number;
56 };
57
62 NodeArray<int> m_celestial; // 0 = unknown, 1 = sun, 2 = planet, 3 = moon
66 std::map<int, std::map<int, PathData>> m_interSystemPaths;
67
68 node sunOf(node object);
69 double distanceToSun(node object, MultilevelGraph& MLG);
70 void addPath(node sourceSun, node targetSun, double distance);
73 bool collapseSolarSystem(MultilevelGraph& MLG, node sun, int level);
74 bool buildOneLevel(MultilevelGraph& MLG) override;
75 std::vector<node> selectSuns(MultilevelGraph& MLG);
76
77public:
78 explicit SolarMerger(bool simple = false, bool massAsNodeRadius = false);
79
80 void buildAllLevels(MultilevelGraph& MLG) override;
81};
82
83}
Includes declaration of graph class.
Declaration of MultilevelBuilder.
Basic declarations, included by all source files.
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:866
Base class for merger modules.
Class for the representation of nodes.
Definition Graph_d.h:241
The solar merger for multilevel layout.
Definition SolarMerger.h:48
bool collapseSolarSystem(MultilevelGraph &MLG, node sun, int level)
std::vector< node > selectSuns(MultilevelGraph &MLG)
int calcSystemMass(node v)
NodeArray< std::vector< PathData > > m_pathDistances
Definition SolarMerger.h:65
double distanceToSun(node object, MultilevelGraph &MLG)
void addPath(node sourceSun, node targetSun, double distance)
void findInterSystemPaths(Graph &G, MultilevelGraph &MLG)
bool buildOneLevel(MultilevelGraph &MLG) override
This method constructs one more level on top of an existing MultilevelGraph.
NodeArray< int > m_celestial
Definition SolarMerger.h:62
SolarMerger(bool simple=false, bool massAsNodeRadius=false)
std::map< int, std::map< int, PathData > > m_interSystemPaths
Definition SolarMerger.h:66
void buildAllLevels(MultilevelGraph &MLG) override
NodeArray< node > m_orbitalCenter
Definition SolarMerger.h:63
NodeArray< unsigned int > m_mass
Definition SolarMerger.h:60
NodeArray< double > m_distanceToOrbit
Definition SolarMerger.h:64
node sunOf(node object)
NodeArray< double > m_radius
Definition SolarMerger.h:61
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition Graph_d.h:659
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
Definition config.h:117
The namespace for all OGDF objects.
PathData(int targetSunParam=0, double len=0.0f, int num=0)
Definition SolarMerger.h:50