1 //
2 // Computergraphik I
3 // Prof. Dr. Juergen Doellner
4 // Sommersemester 2001
5 //
6 // Rahmenprogramm fuer Aufgabenzettel 4
7 //
8
9 // Stephan Brumme, 702544
10 // last changes: May 20, 2001
11
12
13 #ifndef CG_TESSELATOR_H
14 #define CG_TESSELATOR_H
15
16 #include "cgapplication.h"
17
18 class CGTessellator : public CGApplication {
19 public:
20 CGTessellator();
21 ~CGTessellator();
22
23 virtual void defineStar();
24
25 virtual void onInit();
26 virtual void onDraw();
27 virtual void onSize(unsigned int newWidth, unsigned int newHeight);
28 virtual void onKey(unsigned char key);
29 virtual void onButton(MouseButton button, MouseButtonEvent event, int x, int y);
30
31 private:
32 // zeichnet das Polygon mit den GLU-Routinen
33 void drawPolygon();
34
35 // GLUtesselator Objekt
36 GLUtesselator* tobj_;
37
38 // Hilfsklasse fuer Punkte
39 class Point {
40 public:
41 Point(double x = 0, double y = 0) {
42 dta_[0] = x;
43 dta_[1] = y;
44 dta_[2] = 0;
45 }
46 GLdouble dta_[3];
47 };
48
49 // interne Arrays zum speichern der Punkte und
50 // der Konturen
51 Point pts_[1000]; // alle Punkte
52 int pos_; // Array-Position in pts_
53 int contourSize_[50]; // Anzahl der Punkte innerhalb einer Kontur
54 int contours_; // Anzahl der Konturen
55
56 };
57
58 #endif // CG_TESSELATOR_H
59
60