Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

SolarMerger.h
Go to the documentation of this file.
1 
32 #pragma once
33 
35 
36 namespace ogdf {
37 
39 
43  struct PathData {
44  explicit PathData(int targetSunParam = 0, double len = 0.0f, int num = 0)
45  : targetSun(targetSunParam), length(len), number(num) { }
46 
47  int targetSun;
48  double length;
49  int number;
50  };
51 
56  NodeArray<int> m_celestial; // 0 = unknown, 1 = sun, 2 = planet, 3 = moon
60  std::map<int, std::map<int, PathData>> m_interSystemPaths;
61 
62  node sunOf(node object);
63  double distanceToSun(node object, MultilevelGraph& MLG);
64  void addPath(node sourceSun, node targetSun, double distance);
65  void findInterSystemPaths(Graph& G, MultilevelGraph& MLG);
66  int calcSystemMass(node v);
67  bool collapseSolarSystem(MultilevelGraph& MLG, node sun, int level);
68  bool buildOneLevel(MultilevelGraph& MLG) override;
69  std::vector<node> selectSuns(MultilevelGraph& MLG);
70 
71 public:
72  explicit SolarMerger(bool simple = false, bool massAsNodeRadius = false);
73 
74  void buildAllLevels(MultilevelGraph& MLG) override;
75 };
76 
77 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::SolarMerger::m_pathDistances
NodeArray< std::vector< PathData > > m_pathDistances
Definition: SolarMerger.h:59
ogdf::SolarMerger::PathData::PathData
PathData(int targetSunParam=0, double len=0.0f, int num=0)
Definition: SolarMerger.h:44
ogdf::SolarMerger
The solar merger for multilevel layout.
Definition: SolarMerger.h:42
ogdf::SolarMerger::m_mass
NodeArray< unsigned int > m_mass
Definition: SolarMerger.h:54
ogdf::MultilevelGraph
Definition: MultilevelGraph.h:66
ogdf::SolarMerger::PathData::length
double length
Definition: SolarMerger.h:48
ogdf::SolarMerger::m_sunSelectionSimple
bool m_sunSelectionSimple
Definition: SolarMerger.h:52
ogdf::SolarMerger::m_radius
NodeArray< double > m_radius
Definition: SolarMerger.h:55
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:651
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
ogdf::SolarMerger::m_distanceToOrbit
NodeArray< double > m_distanceToOrbit
Definition: SolarMerger.h:58
ogdf::MultilevelBuilder
Base class for merger modules.
Definition: MultilevelBuilder.h:43
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::SolarMerger::m_celestial
NodeArray< int > m_celestial
Definition: SolarMerger.h:56
ogdf::SolarMerger::PathData::targetSun
int targetSun
Definition: SolarMerger.h:47
ogdf::SolarMerger::m_interSystemPaths
std::map< int, std::map< int, PathData > > m_interSystemPaths
Definition: SolarMerger.h:60
ogdf::SolarMerger::m_massAsNodeRadius
bool m_massAsNodeRadius
Definition: SolarMerger.h:53
ogdf::SolarMerger::PathData
Definition: SolarMerger.h:43
MultilevelBuilder.h
Declaration of MultilevelBuilder.
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
ogdf::SolarMerger::PathData::number
int number
Definition: SolarMerger.h:49
ogdf::SolarMerger::m_orbitalCenter
NodeArray< node > m_orbitalCenter
Definition: SolarMerger.h:57