From: Leandro Lucarella Date: Fri, 19 Sep 2003 03:42:18 +0000 (+0000) Subject: Versiones preliminares de Dibujo y Figura. X-Git-Tag: svn_import~22 X-Git-Url: https://git.llucax.com/z.facultad/75.42/euler-oo.git/commitdiff_plain/2ad7702430009b7adee71c280ad23a7c184fa0c8?ds=inline Versiones preliminares de Dibujo y Figura. --- diff --git a/dibujo.cpp b/dibujo.cpp new file mode 100644 index 0000000..23ac3b3 --- /dev/null +++ b/dibujo.cpp @@ -0,0 +1,42 @@ +/* vim: set et sts=4 sw=4 fdm=indent fdl=1 fdn=0 fo+=t tw=80: + * + * Taller de Programación (75.42). + * + * Ejercicio Número 2: + * TODO + * + * Copyleft 2003 - Leandro Lucarella + * Puede copiar, modificar y distribuir este programa bajo los términos de + * la licencia GPL (http://www.gnu.org/). + * + * Creado: Thu Sep 18 21:07:44 ART 2003 + * + * $Id$ + */ + +#include "dllist.h" +#include "dibujo.h" + +Dibujo::Dibujo(void): figuras() {} + +Dibujo::~Dibujo(void) { +} + +bool Dibujo::agregar_figura(const Figura& figura) { + return figuras.push(&figura); +} + +void Dibujo::borrar_todo(void) { + // Saco cada elemento de la lista, liberando su memoria. + while (!figuras.empty()) { + delete figuras.pop(); + } +} + +void Dibujo::dibujar(void) { + // Dibujo cada elemento. + for (Figura* f = figuras.begin(); figuras.have_more(); f = figuras.next()) { + cout << f << endl; // FIXME + } +} + diff --git a/dibujo.h b/dibujo.h new file mode 100644 index 0000000..9a23165 --- /dev/null +++ b/dibujo.h @@ -0,0 +1,60 @@ +/* vim: set et sts=4 sw=4 fdm=indent fdl=1 fdn=1 fo+=t tw=80: + * + * Taller de Programación (75.42). + * + * Ejercicio Número 3: + * TODO + * + * Copyleft 2003 - Leandro Lucarella + * Puede copiar, modificar y distribuir este programa bajo los términos de + * la licencia GPL (http://www.gnu.org/). + * + * Creado: Wed Sep 17 21:07:54 ART 2003 + * + * $Id$ + */ + +#ifndef DIBUJO_H +#define DIBUJO_H + +/** + * Representa un conjunto de figuras. + */ +class Dibujo { + + protected: + /// Lista de figuras. + DLList figuras; + + public: + /** + * Constructor. + */ + Dibujo(void); + + /** + * Destructor. + * Elimina todas las figuras en el Dibujo. + */ + virtual ~Dibujo(void); + + /** + * Agrega una figura. + * + * \return true si se pudo agregar, false si no. + */ + bool agregar_figura(const Figura& figura); + + /** + * Borra todas las figuras. + */ + void borrar_todo(void); + + /** + * Dibuja. + */ + virtual void dibujar(void) const; + +} + +#endif /* DIBUJO_H */ diff --git a/figura.h b/figura.h new file mode 100644 index 0000000..3b681dd --- /dev/null +++ b/figura.h @@ -0,0 +1,58 @@ +/* vim: set et sts=4 sw=4 fdm=indent fdl=1 fdn=1 fo+=t tw=80: + * + * Taller de Programación (75.42). + * + * Ejercicio Número 3: + * TODO + * + * Copyleft 2003 - Leandro Lucarella + * Puede copiar, modificar y distribuir este programa bajo los términos de + * la licencia GPL (http://www.gnu.org/). + * + * Creado: Thu Sep 18 21:34:56 ART 2003 + * + * $Id$ + */ + +#ifndef FIGURA_H +#define FIGURA_H + +/** + * Figura dibujable. + */ +class Figura { + protected: + + /// Color. + size_t color; + + /// Grosor. + size_t grosor; + + /// Centro. + Punto centro; + + /// Nombre. + string nombre; + + public: + + /** + * Constructor. + */ + Figura(size_t color, size_t grosor, const Punto& centro, + const std::string& nombre); + + /** + * Destructor. + */ + virtual ~Figura(void); + + /** + * Dibuja. + */ + virtual void dibujar(void) const; + +} + +#endif /* FIGURA_H */