#include "rgb.h"
#include <sstream>
+#define INFINITO 99999999
+
namespace PlaQui {
namespace Model {
* \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
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
};
/// 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