]> git.llucax.com Git - z.facultad/75.42/euler-oo.git/blob - dibujo.cpp
Se agrega el Círculo.
[z.facultad/75.42/euler-oo.git] / dibujo.cpp
1 /* vim: set et sts=4 sw=4 fdm=indent fdn=1 fo+=t tw=80:
2  *
3  * Taller de Programación (75.42).
4  *
5  * Ejercicio Número 3:
6  * Lista 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:07:44 ART 2003
13  *
14  * $Id$
15  */
16
17 #include "dibujo.h"
18
19 #ifdef DEBUG
20 #   include <iostream>
21 #endif
22
23 Dibujo::Dibujo(void): figuras() {
24 #ifdef DEBUG
25     std::cerr << "En constructor de Dibujo." << std::endl;
26 #endif
27 }
28
29 Dibujo::~Dibujo(void) {
30 #ifdef DEBUG
31     std::cerr << "En destructor de Dibujo." << std::endl;
32 #endif
33 }
34
35 bool Dibujo::agregar_figura(Figura* figura) {
36     return figuras.push(static_cast<void*>(figura));
37 }
38
39 void Dibujo::borrar_todo(void) {
40     // Saco cada elemento de la lista, liberando su memoria.
41     while (!figuras.empty()) {
42         delete static_cast<Figura*>(figuras.pop());
43     }
44 }
45
46 void Dibujo::dibujar(std::ostream& out) {
47     // Dibujo cada elemento.
48     for (Figura* f = static_cast<Figura*>(figuras.begin());
49             figuras.have_more(); f = static_cast<Figura*>(figuras.next())) {
50         f->dibujar(out);
51         out << std::endl;
52     }
53 }
54