// Computergraphik I // Prof. Dr. Juergen Doellner // Sommersemester 2001 // // Rahmenprogramm fuer Aufgabenzettel 8 #ifndef ATTRIBUTE_H #define ATTRIBUTE_H #include "vector.h" // // Attribute // class Attribute { public: // set() wird aufgerufen, wenn das Attribute gesetzt wird. // Man muss dafuer sorgen, dass man den aktuellen // Zustand zwischenspeichert, damit man diesen wieder her- // stellen kann, wenn mit unset() dieses Attribute wieder // "zurueckgenommen" wird. virtual void set() = 0; virtual void unset() = 0; }; // // Color // class Color : public Attribute { public: Color(double red = 0, double green = 0, double blue = 0); // Setzt die Farbe auf (red, green, blue) virtual void set(); virtual void unset(); private: double color_[3]; }; // // Style // class Style : public Attribute { public: enum FaceStyle { Filled, Outlined, Points }; Style(FaceStyle frontFace = Filled, FaceStyle backFace = Filled); // Setzt den Stiel, mit dem die Polygone gezeichnet werden: // Filled: das Polygon wird ausgefuellt dargestellt // Outlined: das Polygon wird umrandet dargestellt // Points: es werden nur die Polygon-Eckpunkte dargestellt // Man kann dieses fuer die Vorder- und Rueckseiten getrennt // einstellen (siehe hierzu auch GL_CW und GL_CCW). virtual void set(); virtual void unset(); private: FaceStyle frontFace_; FaceStyle backFace_; }; #endif // ATTRIBUTE_H