3 #ifndef _ELEMENTO_PLANTA_H_
4 #define _ELEMENTO_PLANTA_H_
12 class ElementoPlanta:public IConector {
15 ElementoPlanta(const std::string &_name);
16 ElementoPlanta(unsigned ins, unsigned outs);
17 virtual ~ElementoPlanta();
19 // FIXME: ver que parametros seran necesarios
20 virtual void send_fluid() {}
21 virtual void receive_fluid() {}
23 /// Hace que los elementos de la plata actualicen su flujo en esta etapa
24 virtual void update() = 0;
25 /// Hace la simulación de esta iteración
26 virtual void simulate() = 0;
28 /// Setea el nuevo color del fluido
29 void setColor(const RGB &c) { fluid_color = c; }
30 /// Retorna el actual color del fluido
31 const RGB &getColor() { return fluid_color; }
34 virtual void recieve_msg(int msg, IConector *who);
36 /// Mensages manejados por los elementos de la planta
38 MSG_QUERY_MAX_FLOW = IConector::MSG_LAST, ///< pregunta por el maximo flujo
46 // Hago que no se puedan copiar objetos ElementosPlanta
47 ElementoPlanta(const ElementoPlanta &):IConector(0,0) {}
48 ElementoPlanta &operator = (const ElementoPlanta &) { return (*this); }