Open Graph Drawing Framework
# Open Graph Drawing Framework

Das Open Graph Drawing Framework (OGDF) ist eine umfangreiche C++-Klassenbibliothek zur automatisierten Visualisierung von Graphen. Neben vielen Layout-Algorithmen bietet es ebenfalls eigene Datenstrukturen für Graphen unterschiedlicher Art sowie Schnittstellen zum Lesen und Schreiben einiger bekannter Datenformate zur Repräsentation von Graphen.

## Bestandteile

Das Framework lässt sich im Groben in folgende Bereiche unterteilen:

### Allgemeine Datenstrukturen

Datenstrukturen zur Speicherung von allgemeinen Datentypen. Diese umfassen unter anderem:
* Verkettete Listen
* Arrays
* Heaps

### Graph-Datenstrukturen

Klassen zur Speicherung unterschiedlicher Arten von Graphen, ihren Knoten und Kanten und weiteren Helferklassen. Mit den Graphklassen können dargestellt werden:
* Allgemeiner Graph (gerichtet oder ungerichtet), Attribute zu einem Graph (Beschriftungen, Knoten-Koordinaten, weitere grafische Attribute, …)
* Kombinatorische Einbettung eines planaren Graphs
* Dualgraph zu einer kombinatorischen Einbettung
* Graphreduktion, Graph-Clusterisierung
* Hypergraph

### Layout-Algorithmen

Diverse Algorithmen zur Visualisierung (Layoutgenerierung) von Graphen. Diese umfassen:
* Orthogonale und geradlinige Layouts
* Multilevel-Layouts (z. B. FM³)
* Kräftebasierte Layouts (z. B. Spring Embedder, GEM, Simulated Annealing)
* Aufwärts-Layouts (z. B. Sugiyama)
* Planare Layouts
* Baumlayouts

### Module

In Modulen sind wiederverwendbare Algorithmen ausgelagert, welche von den einzelnen Layoutalgorithmen verwendet werden.

### Unterstützte Dateiformate für Graphen

Als Schnittstelle zum Lesen und Schreiben von Graphen unterstützt OGDF unter anderem folgende Dateiformate:
* DOT
* GEXF (Graph Exchange XML Format) von Gephi
* Graph Modelling Language (GML)
* GraphML
* LEDAs natives Format für Graphen
* Rudy
* TLP von Tulip
* YGF, das Y-Graph-Format