Visualisierung2
|
#include <Visualisation.h>
Public Member Functions | |
Visualisation (int w, int h, myList *points, std::vector< unsigned int > eList, int n, int maxId) | |
den Konstruktor uebergeben wird: Laenge und Breite des Fensters, eine Liste mit den Geclusterten Graphknoten aus der Tiefensuche, eine Kantenliste des Graphen, die Anzahl der Knoten im Grapfen und der maximale Knotenwert. More... | |
~Visualisation (void) | |
void | draw (GLuint shader, bool drawPoints, bool drawCurve) |
Zeichnet den Graphen mit den uebergeben Shader. Die 2 anderen Parameter bestimmen ob zusaetzlich die Kurve und/oder die Gemappten Punkte mitgezeichnet werden. More... | |
void | decreaseOrder () |
Verringert die Kurvebordnung um 1. More... | |
void | increaseOrder () |
Erhoeht die Kurvenordnung um 1. More... | |
void | changeType (std::string type) |
Aendert den Typ der Visualisierungskurve auf den uebergeben Typ ("hilbert" oder "gosper"). More... | |
Private Member Functions | |
void | initPoints (myList *order, int n, int max) |
initialisiert die Punkte fuer die Visualisierung mit der Iterationsstufe order, der Knotenanzahl n und den maximalen Konotenindex max. More... | |
glm::vec3 | mapping (double value, int order) |
Berechnet die Knotenpositionen entlang der Kurve. Value ist die Position des Knotens auf der Geraden [0,1] und order ist die Iterationsstufe der Kurve. More... | |
void | calcPoints (int iteration) |
Private Attributes | |
GLuint | vao |
Vertex Attribute Object zum Zeichnen der Visualisierung. More... | |
GLuint | positionBuffer |
Buffer fuer die Positionen der Knoten. More... | |
GLuint | indexBuffer |
Buffer fuer die Reihenfolge der Knoten. More... | |
std::vector< glm::vec3 > | points |
Koordinatenliste der Knoten auf der Geraden. More... | |
std::vector< glm::vec3 > | visupoints |
Koordinatenliste der Knoten auf der Kurve. More... | |
std::vector< unsigned int > | edgeList |
Kantenliste aus dem Graphen. More... | |
int | positioncount |
Anzahl der Knotenpositionen. More... | |
int | width |
Fensterbreite. More... | |
int | height |
Fensterhoehe. More... | |
int | visuorder |
Iterationsstufe die gerade gezeichnet werden soll. More... | |
int | maximum |
Maximaler Index der Graphknoten. More... | |
int | vertexCount |
Anzahl der Knoten im Graph. More... | |
myList * | graphOrder |
Die Reihenfolge der Knoten nach der Tiefensuche im Clustering. More... | |
L_System * | lindenmeyer |
Das L-System zum errechnen der Kurvenpunkte. More... | |
Die Hauptklasse des Projekts. Diese berechnet die eigentliche Visualisierung. Die Linien werden mit zunaemender Anzahl mehr geblendet fuer eine bessere Sichtbarkeit.
Definition at line 14 of file Visualisation.h.
Visualisation::Visualisation | ( | int | w, |
int | h, | ||
myList * | order, | ||
std::vector< unsigned int > | eList, | ||
int | n, | ||
int | maxId | ||
) |
den Konstruktor uebergeben wird: Laenge und Breite des Fensters, eine Liste mit den Geclusterten Graphknoten aus der Tiefensuche, eine Kantenliste des Graphen, die Anzahl der Knoten im Grapfen und der maximale Knotenwert.
Konstruktor. Uebergeben wird die Fensterbreite, die Fensterhoehe, die Knotenreihenfolge nach dem Clustering, die Kantenliste aus dem Graphen, Die Anzahl der Knoten im Graphen und der maximale Knotenindex im Graphen.
Definition at line 7 of file Visualisation.cpp.
Visualisation::~Visualisation | ( | void | ) |
Definition at line 48 of file Visualisation.cpp.
|
private |
Berechnet die Positionen der Knoten entlang der flaechenfuellenden Kurve von gegebener Iterationsstufe.
Definition at line 129 of file Visualisation.cpp.
void Visualisation::changeType | ( | std::string | type | ) |
Aendert den Typ der Visualisierungskurve auf den uebergeben Typ ("hilbert" oder "gosper").
Aendert die Art der Kurve fuer die Visualisierung ("hilbert" oder "gosper");
Definition at line 107 of file Visualisation.cpp.
void Visualisation::decreaseOrder | ( | ) |
Verringert die Kurvebordnung um 1.
Verringert die Iterationsstufe der Visualisierung um 1 falls diese noch groesser als 1 ist. Die gemappten Punkte werden neu berechnet und die Kurve wird um eine Iteration abgestuft.
Definition at line 85 of file Visualisation.cpp.
void Visualisation::draw | ( | GLuint | shader, |
bool | drawPoints, | ||
bool | drawCurve | ||
) |
Zeichnet den Graphen mit den uebergeben Shader. Die 2 anderen Parameter bestimmen ob zusaetzlich die Kurve und/oder die Gemappten Punkte mitgezeichnet werden.
Zeichnet die Visualisierung mit den uebergebenen Shader. Ist DrwaPoints true werden auch die Vertexpunkte gezeichnet. Ist DrawCurve true wird auch die Kurve gezeichnet. Die Kanten werden geblendet gezeichnet. Sind mehr Knoten vorhanden werden die Linien auch transparenter.
Definition at line 239 of file Visualisation.cpp.
void Visualisation::increaseOrder | ( | ) |
Erhoeht die Kurvenordnung um 1.
Erhoet die Iterationsstufe der Visualisierung um 1 únd berechnet mappt die Knoten neu auf die Kurve mit hoeherer Iterationsstufe.
Definition at line 97 of file Visualisation.cpp.
|
private |
initialisiert die Punkte fuer die Visualisierung mit der Iterationsstufe order, der Knotenanzahl n und den maximalen Konotenindex max.
Initialisiert die Knotenpunkte fuer die weiteren Berechnungen. Diese werden der Clusteringordnung nach aequidistant auf einer Geraden zwischen 0 und 1 angeordnet und abgespeichert.
Definition at line 59 of file Visualisation.cpp.
|
private |
Berechnet die Knotenpositionen entlang der Kurve. Value ist die Position des Knotens auf der Geraden [0,1] und order ist die Iterationsstufe der Kurve.
Diese Funktion uebernimmt das eigentliche Mapping der Knoten auf die Kurve. Im Paper wird hierfuer ein rekursiever Pseudecode angegeben. Da in diesen Projekt die Kurvenpunkte aber fuer die Visualisierung der Punkte schon vorhanden sind, ist diese nicht unbedingt notwendig. und es kann zwischen den jeweiligen Segmentpunkten die das Lindenmeyer System liefert interpoliert werden. Die Struktur wurde aber beibehalten.
Definition at line 183 of file Visualisation.cpp.
|
private |
Kantenliste aus dem Graphen.
Definition at line 35 of file Visualisation.h.
|
private |
Die Reihenfolge der Knoten nach der Tiefensuche im Clustering.
Definition at line 43 of file Visualisation.h.
|
private |
Fensterhoehe.
Definition at line 38 of file Visualisation.h.
|
private |
Buffer fuer die Reihenfolge der Knoten.
Definition at line 31 of file Visualisation.h.
|
private |
Das L-System zum errechnen der Kurvenpunkte.
Definition at line 45 of file Visualisation.h.
|
private |
Maximaler Index der Graphknoten.
Definition at line 40 of file Visualisation.h.
|
private |
Koordinatenliste der Knoten auf der Geraden.
Definition at line 33 of file Visualisation.h.
|
private |
Buffer fuer die Positionen der Knoten.
Definition at line 30 of file Visualisation.h.
|
private |
Anzahl der Knotenpositionen.
Definition at line 36 of file Visualisation.h.
|
private |
Vertex Attribute Object zum Zeichnen der Visualisierung.
Definition at line 29 of file Visualisation.h.
|
private |
Anzahl der Knoten im Graph.
Definition at line 41 of file Visualisation.h.
|
private |
Iterationsstufe die gerade gezeichnet werden soll.
Definition at line 39 of file Visualisation.h.
|
private |
Koordinatenliste der Knoten auf der Kurve.
Definition at line 34 of file Visualisation.h.
|
private |
Fensterbreite.
Definition at line 37 of file Visualisation.h.