]> git.llucax.com Git - z.facultad/75.42/euler-oo.git/blobdiff - dibujo.cpp
Se arregla la carátula.
[z.facultad/75.42/euler-oo.git] / dibujo.cpp
index 5ccd0d0beb0221f12731835b6b1a26f117d16205..8232f5f819d1f0d332c077782d8bc826a70493ea 100644 (file)
@@ -1,4 +1,4 @@
-/* vim: set et sts=4 sw=4 fdm=indent fdl=1 fdn=0 fo+=t tw=80:
+/* vim: set et sts=4 sw=4 fdm=indent fdn=1 fo+=t tw=80:
  *
  * Taller de Programación (75.42).
  *
  * $Id$
  */
 
-#include "dllist.h"
 #include "dibujo.h"
 
-Dibujo::Dibujo(void): figuras() {}
+#ifdef DEBUG
+#   include <iostream>
+#endif
+
+Dibujo::Dibujo(void): figuras() {
+#ifdef DEBUG
+    std::cerr << "En constructor de Dibujo." << std::endl;
+#endif
+}
 
 Dibujo::~Dibujo(void) {
+#ifdef DEBUG
+    std::cerr << "En destructor de Dibujo." << std::endl;
+#endif
 }
 
-bool Dibujo::agregar_figura(const Figura& figura) {
-    return figuras.push(&figura);
+bool Dibujo::agregar_figura(Figura* figura) {
+    return figuras.push(static_cast<void*>(figura));
 }
 
 void Dibujo::borrar_todo(void) {
     // Saco cada elemento de la lista, liberando su memoria.
     while (!figuras.empty()) {
-        delete figuras.pop();
+        delete static_cast<Figura*>(figuras.pop());
     }
 }
 
-void Dibujo::dibujar(void) {
+void Dibujo::dibujar(std::ostream& out) {
     // Dibujo cada elemento.
-    for (Figura* f = figuras.begin(); figuras.have_more(); f = figuras.next()) {
-        cout << f << endl; // FIXME
+    for (Figura* f = static_cast<Figura*>(figuras.begin());
+            figuras.have_more(); f = static_cast<Figura*>(figuras.next())) {
+        out << "Dibujando: ";
+        f->dibujar(out);
+        out << std::endl;
     }
 }