Open
Graph Drawing
Framework

 v. 2022.02 (Dogwood)
 

The solar merger for multilevel layout. More...

#include <ogdf/energybased/multilevel_mixer/SolarMerger.h>

+ Inheritance diagram for ogdf::SolarMerger:

Classes

struct  PathData
 

Public Member Functions

 SolarMerger (bool simple=false, bool massAsNodeRadius=false)
 
void buildAllLevels (MultilevelGraph &MLG) override
 
- Public Member Functions inherited from ogdf::MultilevelBuilder
 MultilevelBuilder ()
 
virtual ~MultilevelBuilder ()
 
int getNumLevels ()
 
void setEdgeLengthAdjustment (int factor)
 

Private Member Functions

void addPath (node sourceSun, node targetSun, double distance)
 
bool buildOneLevel (MultilevelGraph &MLG) override
 This method constructs one more level on top of an existing MultilevelGraph. More...
 
int calcSystemMass (node v)
 
bool collapseSolarSystem (MultilevelGraph &MLG, node sun, int level)
 
double distanceToSun (node object, MultilevelGraph &MLG)
 
void findInterSystemPaths (Graph &G, MultilevelGraph &MLG)
 
std::vector< nodeselectSuns (MultilevelGraph &MLG)
 
node sunOf (node object)
 

Private Attributes

NodeArray< int > m_celestial
 
NodeArray< double > m_distanceToOrbit
 
std::map< int, std::map< int, PathData > > m_interSystemPaths
 
NodeArray< unsigned int > m_mass
 
bool m_massAsNodeRadius
 
NodeArray< nodem_orbitalCenter
 
NodeArray< std::vector< PathData > > m_pathDistances
 
NodeArray< double > m_radius
 
bool m_sunSelectionSimple
 

Additional Inherited Members

- Protected Attributes inherited from ogdf::MultilevelBuilder
int m_adjustEdgeLengths
 
int m_numLevels
 stores number of levels for statistics purposes More...
 

Detailed Description

The solar merger for multilevel layout.

Definition at line 43 of file SolarMerger.h.

Constructor & Destructor Documentation

◆ SolarMerger()

ogdf::SolarMerger::SolarMerger ( bool  simple = false,
bool  massAsNodeRadius = false 
)
explicit

Member Function Documentation

◆ addPath()

void ogdf::SolarMerger::addPath ( node  sourceSun,
node  targetSun,
double  distance 
)
private

◆ buildAllLevels()

void ogdf::SolarMerger::buildAllLevels ( MultilevelGraph MLG)
overridevirtual

Reimplemented from ogdf::MultilevelBuilder.

◆ buildOneLevel()

bool ogdf::SolarMerger::buildOneLevel ( MultilevelGraph MLG)
overrideprivatevirtual

This method constructs one more level on top of an existing MultilevelGraph.

It must be implemented in any MultilevelBuilder. A level is built by adding node-merges to the MultilevelGraph and updating the graph accordingly. This is achieved by calling MLG.

Parameters
MLGis the MultilevelGraph for which a new gevel will be built.
Returns
true if the Graph was changed or false if no level can be built.

Implements ogdf::MultilevelBuilder.

◆ calcSystemMass()

int ogdf::SolarMerger::calcSystemMass ( node  v)
private

◆ collapseSolarSystem()

bool ogdf::SolarMerger::collapseSolarSystem ( MultilevelGraph MLG,
node  sun,
int  level 
)
private

◆ distanceToSun()

double ogdf::SolarMerger::distanceToSun ( node  object,
MultilevelGraph MLG 
)
private

◆ findInterSystemPaths()

void ogdf::SolarMerger::findInterSystemPaths ( Graph G,
MultilevelGraph MLG 
)
private

◆ selectSuns()

std::vector<node> ogdf::SolarMerger::selectSuns ( MultilevelGraph MLG)
private

◆ sunOf()

node ogdf::SolarMerger::sunOf ( node  object)
private

Member Data Documentation

◆ m_celestial

NodeArray<int> ogdf::SolarMerger::m_celestial
private

Definition at line 58 of file SolarMerger.h.

◆ m_distanceToOrbit

NodeArray<double> ogdf::SolarMerger::m_distanceToOrbit
private

Definition at line 60 of file SolarMerger.h.

◆ m_interSystemPaths

std::map< int, std::map<int, PathData> > ogdf::SolarMerger::m_interSystemPaths
private

Definition at line 62 of file SolarMerger.h.

◆ m_mass

NodeArray<unsigned int> ogdf::SolarMerger::m_mass
private

Definition at line 56 of file SolarMerger.h.

◆ m_massAsNodeRadius

bool ogdf::SolarMerger::m_massAsNodeRadius
private

Definition at line 55 of file SolarMerger.h.

◆ m_orbitalCenter

NodeArray<node> ogdf::SolarMerger::m_orbitalCenter
private

Definition at line 59 of file SolarMerger.h.

◆ m_pathDistances

NodeArray< std::vector<PathData> > ogdf::SolarMerger::m_pathDistances
private

Definition at line 61 of file SolarMerger.h.

◆ m_radius

NodeArray<double> ogdf::SolarMerger::m_radius
private

Definition at line 57 of file SolarMerger.h.

◆ m_sunSelectionSimple

bool ogdf::SolarMerger::m_sunSelectionSimple
private

Definition at line 54 of file SolarMerger.h.


The documentation for this class was generated from the following file: