public:
/**Constructor
*/
- Cistern();
+ Cistern(int orientacion=0);
/**Destructor
*/
virtual ~Cistern();
void set_capacidad(double _cap);
void set_contenido_inicial(double _ini);
void set_liquid_color(Gdk::Color _color);
+ void set_flotante_sup (double _s);
+ void set_flotante_inf(double _i);
double get_contenido_inicial();
double get_capacidad();
+ double get_flotante_sup();
+ double get_flotante_inf();
Gdk::Color get_liquid_color();
/**El item se guarda en formato xml en el archivo pasado por parametro
*/
/**Devuelve el tipo de conector que posee en las coordenadas (_a, _b) segun su orientacion
*/
virtual ConnectorType get_connector_type(int _a, int _b);
+
+ /**Setea las coordenadas _a, _b en la posicion donde se deben conectar los cables logicos a la entrada.
+ */
+ virtual void get_in_logic_connect_position(int& _a, int& _b);
+
+ /**Setea las coordenadas _a, _b en la posicion donde se deben conectar los cables logicos a la salida.
+ */
+ virtual void get_out_logic_connect_position(int& _a, int& _b);
+
+ /**Actualiza la posicion de los conectores logicos ante un movimiento.
+ */
+ virtual void update_logic_position();
+
+ /**Detecta si el click fue en el area de entrada o salida logica, devuelve UNDEF si no fue ninguna de las dos
+ */
+ ConnectorType detect_click_position(int _a, int _b);
+ /**Dibuja los conectores logicos, que seran ambos azules pues son salidas.
+ */
+ virtual void draw_connectors();
protected:
/**Atributos que definen su comportamiento
*/
- double capacidad, contenido_inicial;
+ double capacidad, contenido_inicial, flotante_sup, flotante_inf;
/**Color del liquido almacenado
*/
Gdk::Color liquid_color;