1 // Computergraphik I
2 // Prof. Dr. Juergen Doellner
3 // Sommersemester 2001
4 //
5 // Rahmenprogramm fuer Aufgabenzettel 8
6
7 #ifndef SHAPE_H
8 #define SHAPE_H
9
10 #include "vector.h"
11
12 //
13 // Shape
14 //
15
16 class Shape {
17 public:
18 // Jedes Shape kann sich selbst mit Hilfe von
19 // OpenGL-Befehlen rendern.
20 virtual void render() = 0;
21 };
22
23 //
24 // Triangle
25 //
26
27 class Triangle : public Shape {
28 public:
29 Triangle(const Vector& p0, const Vector& p1, const Vector& p2);
30 // Zeichnet das angegebene Dreieck. Die Normale zum Dreieck wird
31 // automatisch berechnet. Das Dreieck muss im Gegenuhrzeigersinn
32 // spezifiziert werden.
33
34 virtual void render();
35
36 private:
37 Vector points_[3];
38 };
39
40 //
41 // Box
42 //
43
44 class Box : public Shape {
45 public:
46 Box(const Vector& lowerLeftFront, const Vector& upperRightBack);
47 // Zeichnet den angegebenen Quader.
48
49 virtual void render();
50
51 private:
52 Vector lowerLeftFront_;
53 Vector upperRightBack_;
54 };
55
56 #endif // SHAPE_H
57
58