]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Model/src/drainage.cpp
* Se agrega carga de lineas entre compuertas.
[z.facultad/75.42/plaqui.git] / Model / src / drainage.cpp
1
2 #include "drainage.h"
3 #include <iostream>
4
5 using namespace PlaQui::Model;
6
7 Drainage::Drainage(const std::string &_name):Drain(_name),Control(_name)
8 {
9         in_slots = 1;
10         out_slots = 0;
11         // FIXME hacer INFINITO!
12         capacity = 99999;
13         actual_flow = 0.0f;
14 }
15
16 Drainage::~Drainage()
17 {
18 }
19
20 void Drainage::update(int dir)
21 {
22         // El drenaje no tiene que actualizar
23         if (updated) return;
24         actual_flow = 0;
25         updated = true;
26 }
27
28 void Drainage::simulate()
29 {
30 #ifdef DEBUG
31         std::cout << name << "::Flujo recibido = " << actual_flow << std::endl;
32 #endif
33         updated = false;
34         color_updated = false;
35 }
36
37 void Drainage::recieve_msg(int msg, IConector *who, void *data)
38 {
39         float tmp;
40         switch (msg) {
41                 case MSG_QUERY_MAX_FLOW_OUT:
42                         // FIXME Hacer INFINITO !!!
43                         actual_flow = *((float *)data);
44                         tmp = 999999;
45                         who->recieve_msg(MSG_RESPONSE_MAX_FLOW, this, &tmp);
46                         updated = true;
47                 break;
48                 default:
49                         Drain::recieve_msg(msg, who, data);
50         }
51 }
52