]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Model/include/simulator.h
* Se mejora la deteccion de conexiones en el constructor
[z.facultad/75.42/plaqui.git] / Model / include / simulator.h
index cb86d15b869a33234b408e8d9a641157dbfb3242..38026026050d44cccb2040f3e90ec3b5dea00229 100644 (file)
@@ -24,12 +24,12 @@ public:
        Simulator(const std::string &filename);
        ~Simulator();
 
-       void add_pump(const std::string &name);
-       void add_union(const std::string &name);
-       void add_splitter(const std::string &name);
-       void add_conduct(const std::string &name);
-       void add_exclusa(const std::string &name);
-       void add_tank(const std::string &name);
+       void add_pump(const std::string &name, float max_flow, RGB color);
+       void add_union(const std::string &name, float max_flow);
+       void add_splitter(const std::string &name, float max_flow);
+       void add_conduct(const std::string &name, float max_flow);
+       void add_exclusa(const std::string &name, bool open);
+       void add_tank(const std::string &name, float capacity, float initial, RGB color);
        void add_drainage(const std::string &name);
 
        /** Retorna el estado de todos los items como un XML */
@@ -50,7 +50,10 @@ public:
        /// Tipos de elementos
        enum {PUMP, UNION, SPLITTER, CONDUCT, EXCLUSA, TANK, DRAINAGE};
 
-       bool pump_deactivate(const std::string &name);
+       bool set_open(const std::string &name, bool open = true);
+
+       /// Dice si el simulador está simulando una planta
+       bool is_ok() { return is_load_ok; }
 protected:
        // Los mantengo en listas separadas para ahorrar
        // CPU y no tener que usar dinamic_cast
@@ -68,16 +71,22 @@ protected:
        // Utilidades
        IConector *find(const std::string &name);
 
+       // Conecta todos los items desde el XML
+       void do_connections(xmlNodePtr nodo);
+
        // Carga del XML
        void loadBomba(xmlNodePtr nodo);
-       void loadCodo(xmlNodePtr nodo);
        void loadConduct(xmlNodePtr nodo);
        void loadExclusa(xmlNodePtr nodo);
        void loadTank(xmlNodePtr nodo);
        void loadUnion(xmlNodePtr nodo);
+       void loadDrain(xmlNodePtr nodo);
+
+       RGB loadRGB(xmlNodePtr nodo);
 
        // Frame. Define el orden para los cuadros del XML
        unsigned long int frame;
+       bool is_load_ok;
 };
 
 }