#pragma once #include "fluid_holder.hpp" namespace sim::coolant { class valve { const double max; fluid_holder* const src; fluid_holder* const dst; double speed = 0; double state = 0; double flow = 0; // L/s public: valve(fluid_holder* src, fluid_holder* dst, double state, double max); valve(const Json::Value& node, fluid_holder* src, fluid_holder* dst); void update(double secs); void add_open_speed(double v); void clear_open_speed(); operator Json::Value() const; constexpr double get_state() const { return state; } constexpr double get_flow() const { return flow; } }; };