7 #define _USE_MATH_DEFINES
30 std::vector<glm::vec3>
getPoints(
int order);
46 std::vector<GLuint>
vao;
49 std::vector<std::vector<glm::vec3>>
points;
71 state(
double xPos,
double yPos,
double newangle)
std::vector< std::vector< glm::vec3 > > points
Liste von Positionslisten. An der Stelle i sind die Knotenpositionen der Kurve von Grad i-1...
std::string type
Aktueller Kurventyp.
void decreaseDrawingIteration()
veringere die zu zeichnende Iterationsstufe um 1.
std::string currentString
Aktueller String der zu berechnenden Iterationsstufe.
std::vector< glm::vec3 > getPoints(int order)
Gibt die Kurveneckpunkte in der Iterationstiefe order zurueck. Sollte order groesser als die aktuell ...
std::vector< int > positioncount
Liste von Anzahl der Knoten. An der Stelle i ist die Knotenanzahl der Kurve von Grad i-1...
int segmentcount
Anzahl der Segmente der aktuell maximalen Iterationsstufe.
state(double xPos, double yPos, double newangle)
L_System(int width, int height, std::string t)
Dem Konstruktor wird die Breite und Hoehe des Fensters uebergeben. Diese werden nur fuer die Initialk...
int getDrawingIteration()
Gibt die Iterationstiefe zurueck die aktuell gezeichnet wird.
double delta
Winkel der bei einer Winkelaenderung auf den aktuellen Winkel ab oder angerechnet wird...
std::string getRule(char var)
Ueberprueft ob es fuer den uebergebenen char eine Ersetzungsregel gibt und gibt diese, falls vorhanden, zurueck.
int drawingIteration
Aktuell zu zeichnende Iterationsstufe.
std::string getType()
Gibt den Typ der Kurve zurueck ("hilbert" oder "gosper").
double x
Aktuelle x Koordinate.
std::vector< GLuint > vao
Liste von Vertex Array Objects. An der Stelle i ist das vao der Kurve von Grad i-1.
void draw(GLuint shader)
Zeichnet die aktuelle Kurve.
double distance
Laenge eines Kurvensegments.
void initHilbert()
Setzt den Startstring und die Kurveneigenschaften der Hilbertkurve.
void initCurve(int w, int h)
Initialisiert eine Standartkurve als Order 0 Kurve und allgemeine Parameter.
void iterate()
Die maximale Iterationsstufe wird um 1 erhoeht und die Punkte der naechsten Iterationsstufe berechnet...
int iteration
Aktuell maximale Iterationsstufe.
void initGosper()
Setzt den Startstring und die Kurveneigenschaften der Gosperkurve.
int height
Hoehe des Anzeigefensters.
int getSegmentCount()
Gibt die aktuelle Anzahl der Kurvensegmente zurueck.
void setDrawingIteration(int order)
Setzt die zu zeichnende Iterationsstufe auf order falls order kleiner als die maximale Iterationsstuf...
double y
Aktuelle y Koordinate.
double angle
Aktueller Winkel.
void increaseDrawingIteration()
erhoehe die zu zeichnende Iterationsstufe um 1.
GLuint shader
Enthaellt den Zeichenshader.
int width
Breite des Anzeigefensters.
std::vector< GLuint > positionBuffer
Liste von Positionsbuffern. An der Stelle i ist der Buffer der Kurve von Grad i-1.
std::vector< std::string > rules
Liste von Ersetzungsregeln.
int getIteration()
Gibt die aktuell maximale Iterationstiefe zurueck.
double degToRad(double angle)
Rechnet Gradwinkel in Radiant um.