]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Model/include/plantitem.h
Se agrega al EXAMPLE_PATH Constructor/doc para los ejemplos de XML.
[z.facultad/75.42/plaqui.git] / Model / include / plantitem.h
index 2cfb5b67fa235c43ea8999986ba9a7aace15f385..25b7eb2d53dd820c9311444cd6b94b58d5545fe2 100644 (file)
@@ -8,6 +8,8 @@
 #include "rgb.h"
 #include <sstream>
 
+#define INFINITO 99999999
+
 namespace PlaQui {
 
 namespace Model {
@@ -29,17 +31,16 @@ public:
        /// Destructor
        virtual ~PlantItem();
 
-       // FIXME: ver que parametros seran necesarios
-       // TODO : ver si no son inutiles!!!
-       virtual void send_fluid() {}
-       virtual void receive_fluid() {}
-
        /** Ejecuta la fase de actualización.
         *
         *  Durante la fase de actualización los objetos se comunican entre
         *  sí para determinar cual es el flujo que manejan en una iteración.
         */
        virtual void update(int dir=OUT) = 0;
+       
+       /** Actualiza el color de fluido */
+       virtual void update_color();
+       
        /** Hace la simulación de esta iteración
         *
         *  Por simulacion se entiende que el modelo debe avisar a las vistas
@@ -63,6 +64,8 @@ public:
                MSG_QUERY_MAX_FLOW_OUT = IConector::MSG_LAST, ///< flujo maximo a la salida
                MSG_QUERY_MAX_FLOW_IN, ///< flujo maximo a la entrada
                MSG_RESPONSE_MAX_FLOW, ///< responde al mensage QUERY_MAX_FLOW. data == float
+               MSG_QUERY_COLOR,
+               MSG_RESPONSE_COLOR,
                MSG_LAST
        };
 
@@ -71,12 +74,18 @@ public:
        
        /// Retorna el flujo actual que maneja el objeto.
        float get_actual_flow() { return actual_flow; }
+
+       /** Genera la salida XML del estado del componente
+        *
+        *  Esta función genera el estado actual de un objeto utilizando
+        *  el formato XML
+        */
        virtual void get_state_as_xml(std::stringstream &out); 
 protected:
        RGB fluid_color;
        // es de solo lectura
        std::string name;
-       bool updated;
+       bool updated, color_updated;
        float actual_flow;
 private:
        // Hago que no se puedan copiar objetos ElementosPlanta