X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/f5a1e732bf3907cabd004932aba3256b31d9d282..49850f467dae860e12c7851a2f8a79132f87721e:/Model/include/simulator.h?ds=sidebyside diff --git a/Model/include/simulator.h b/Model/include/simulator.h index cb86d15..e19a038 100644 --- a/Model/include/simulator.h +++ b/Model/include/simulator.h @@ -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,7 @@ 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); protected: // Los mantengo en listas separadas para ahorrar // CPU y no tener que usar dinamic_cast @@ -68,13 +68,18 @@ 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;