]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Model/include/elementoplanta.h
- Agrego los primeros archivos pertenecientes al modelo. Nada funcional ni
[z.facultad/75.42/plaqui.git] / Model / include / elementoplanta.h
1
2
3 #ifndef _ELEMENTO_PLANTA_H_
4 #define _ELEMENTO_PLANTA_H_
5
6 #include "iconector.h"
7 #include "rgb.h"
8
9 namespace PlaQui {
10
11 class ElementoPlanta:public IConector {
12 public:
13         /// Constructor
14         ElementoPlanta();
15         virtual ~ElementoPlanta();
16
17         // FIXME: ver que parametros seran necesarios
18         virtual void send_fluid() {}
19         virtual void receive_fluid() {}
20
21         /// Hace que los elementos de la plata actualicen su flujo en esta etapa
22         virtual void update() = 0;
23         /// Hace la simulación de esta iteración
24         virtual void simulate() = 0;
25
26         /// Setea el nuevo color del fluido
27         void setColor(const RGB &c) { fluid_color = c; }
28         /// Retorna el actual color del fluido
29         const RGB &getColor() { return fluid_color; }
30
31         /// Recibe un mensage
32         virtual void recieve_msg(int msg, IConector *who);
33
34         /// Mensages manejados por los elementos de la planta
35         enum {
36                 MSG_QUERY_MAX_FLOW = IConector::MSG_LAST, ///< pregunta por el maximo flujo
37                 MSG_LAST
38         };
39 protected:
40         RGB fluid_color;
41 };
42
43 }
44
45 #endif
46