3 #ifndef _ELEMENTO_PLANTA_H_
4 #define _ELEMENTO_PLANTA_H_
14 class PlantItem:public IConector {
17 PlantItem(const std::string &_name);
18 PlantItem(unsigned ins, unsigned outs);
21 // FIXME: ver que parametros seran necesarios
22 virtual void send_fluid() {}
23 virtual void receive_fluid() {}
25 /// Hace que los elementos de la plata actualicen su flujo en esta etapa
26 virtual void update() = 0;
27 /// Hace la simulación de esta iteración
28 virtual void simulate() = 0;
30 /// Setea el nuevo color del fluido
31 void setColor(const RGB &c) { fluid_color = c; }
32 /// Retorna el actual color del fluido
33 const RGB &getColor() { return fluid_color; }
35 virtual void recieve_msg(int msg, IConector *who, void *data);
37 /// Mensages manejados por los elementos de la planta
39 MSG_QUERY_MAX_FLOW = IConector::MSG_LAST, ///< pregunta por el maximo flujo
40 MSG_RESPONSE_MAX_FLOW, ///< responde al mensage QUERY_MAX_FLOW. data == float
44 /// Devuelve el nombre de la instancia
45 std::string get_name() const { return name; }
52 // Hago que no se puedan copiar objetos ElementosPlanta
53 PlantItem(const PlantItem &):IConector(0,0) {}
54 PlantItem &operator = (const PlantItem &) { return (*this); }