X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/a8803d96a8a33195ae9234b5e6ea84d7eefa0fd9..cdce7c32e0b3dd06973cd4cbeb5e4f6eb38391ab:/Model/include/plantitem.h diff --git a/Model/include/plantitem.h b/Model/include/plantitem.h index 5c3e762..ff35727 100644 --- a/Model/include/plantitem.h +++ b/Model/include/plantitem.h @@ -6,6 +6,9 @@ #include #include "iconector.h" #include "rgb.h" +#include + +#define INFINITO 99999999 namespace PlaQui { @@ -23,22 +26,20 @@ public: * \param _name Nombre único que identifica el objeto */ PlantItem(const std::string &_name); - /// FIXME : agregar el nombre! PlantItem(unsigned ins, unsigned outs); /// 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 @@ -62,6 +63,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, ///< Consulta por el color del elemento adyacente + MSG_RESPONSE_COLOR, ///< Recibe una respuesta sobre color MSG_LAST }; @@ -70,12 +73,18 @@ public: /// Retorna el flujo actual que maneja el objeto. float get_actual_flow() { return actual_flow; } - virtual void get_state_as_xml(std::stringstream &out) { } + + /** 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