]> git.llucax.com Git - z.facultad/75.42/figuras.git/blob - figura.h
Se agrega documentacion.
[z.facultad/75.42/figuras.git] / figura.h
1 /* vim: set et sts=4 sw=4 fdm=marker fmr={,} fdn=1 fo+=t tw=80:
2  *
3  * Taller de Programación (75.42).
4  *
5  * Ejercicio Número 5:
6  * Graficador de figuras.
7  *
8  * Copyleft 2003 - Leandro Lucarella <llucare@fi.uba.ar>
9  * Puede copiar, modificar y distribuir este programa bajo los términos de
10  * la licencia GPL (http://www.gnu.org/).
11  *
12  * Creado: Thu Sep 18 21:34:56 ART 2003
13  *
14  * $Id$
15  */
16
17 #ifndef FIGURA_H
18 #define FIGURA_H
19
20 #include "punto.h"
21 #include <cstdlib>
22 #include <gtk/gtk.h>
23
24 /**
25  * Figura dibujable.
26  */
27 class Figura {
28
29     protected:
30
31         /// Color.
32         size_t color;
33
34         /// Grosor.
35         size_t grosor;
36
37         /// Centro.
38         Punto centro;
39
40         /// Nombre.
41         char nombre[30];
42
43         /**
44          * Modifica el contexto gráfico.
45          * Modifica el contexto gráfico según las propiedades de la figura
46          * (color y grosor).
47          *
48          * \param gc Contexto gráfico a modificar.
49          */
50         virtual void set_gc(GdkGC* gc) const;
51
52         /**
53          * Traduce los 4 bits de colores en 24 bits de colores.
54          * La traducción es simple. Los 3 bits menos significativos son
55          * usados como indicador del pigmento. El bit menos significativo
56          * indica la presencia de pigmento azul, el siguiente verde
57          * y el siguiente rojo. El bit más significativo representa
58          * la saturación del color, si está activado, el color será
59          * más saturado.
60          */
61         GdkColor* traducir_color(GdkColor* c) const;
62
63     public:
64
65         /**
66          * Constructor.
67          */
68         Figura(size_t color, size_t grosor, const Punto& centro,
69                 const char* nombre);
70
71         /**
72          * Destructor.
73          */
74         virtual ~Figura(void);
75
76         /**
77          * Dibuja.
78          * Modifica el contexto gráfico según las propiedades de la figura
79          * (color y grosor).
80          *
81          * \param gc Contexto gráfico a modificar.
82          */
83         virtual void dibujar(GtkWidget* widget) const = 0;
84
85 };
86
87 #endif /* FIGURA_H */