Visualisierung2
Visualisation Class Reference

#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...
 
myListgraphOrder
 Die Reihenfolge der Knoten nach der Tiefensuche im Clustering. More...
 
L_Systemlindenmeyer
 Das L-System zum errechnen der Kurvenpunkte. More...
 

Detailed Description

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.

Constructor & Destructor Documentation

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.

Member Function Documentation

void Visualisation::calcPoints ( int  iteration)
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.

void Visualisation::initPoints ( myList order,
int  n,
int  max 
)
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.

glm::vec3 Visualisation::mapping ( double  value,
int  order 
)
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.

Member Data Documentation

std::vector<unsigned int> Visualisation::edgeList
private

Kantenliste aus dem Graphen.

Definition at line 35 of file Visualisation.h.

myList* Visualisation::graphOrder
private

Die Reihenfolge der Knoten nach der Tiefensuche im Clustering.

Definition at line 43 of file Visualisation.h.

int Visualisation::height
private

Fensterhoehe.

Definition at line 38 of file Visualisation.h.

GLuint Visualisation::indexBuffer
private

Buffer fuer die Reihenfolge der Knoten.

Definition at line 31 of file Visualisation.h.

L_System* Visualisation::lindenmeyer
private

Das L-System zum errechnen der Kurvenpunkte.

Definition at line 45 of file Visualisation.h.

int Visualisation::maximum
private

Maximaler Index der Graphknoten.

Definition at line 40 of file Visualisation.h.

std::vector<glm::vec3> Visualisation::points
private

Koordinatenliste der Knoten auf der Geraden.

Definition at line 33 of file Visualisation.h.

GLuint Visualisation::positionBuffer
private

Buffer fuer die Positionen der Knoten.

Definition at line 30 of file Visualisation.h.

int Visualisation::positioncount
private

Anzahl der Knotenpositionen.

Definition at line 36 of file Visualisation.h.

GLuint Visualisation::vao
private

Vertex Attribute Object zum Zeichnen der Visualisierung.

Definition at line 29 of file Visualisation.h.

int Visualisation::vertexCount
private

Anzahl der Knoten im Graph.

Definition at line 41 of file Visualisation.h.

int Visualisation::visuorder
private

Iterationsstufe die gerade gezeichnet werden soll.

Definition at line 39 of file Visualisation.h.

std::vector<glm::vec3> Visualisation::visupoints
private

Koordinatenliste der Knoten auf der Kurve.

Definition at line 34 of file Visualisation.h.

int Visualisation::width
private

Fensterbreite.

Definition at line 37 of file Visualisation.h.


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