]> git.llucax.com Git - z.facultad/75.42/plaqui.git/commitdiff
ahora hay que arreglar muchos bugs, pero hay circuitos simples que andan
authorNicolás Dimov <ndimov@gmail.com>
Mon, 17 Nov 2003 01:14:53 +0000 (01:14 +0000)
committerNicolás Dimov <ndimov@gmail.com>
Mon, 17 Nov 2003 01:14:53 +0000 (01:14 +0000)
23 files changed:
Constructor/and.cpp
Constructor/and.h
Constructor/cistern.cpp
Constructor/cistern.h
Constructor/conduct.cpp
Constructor/conduct.h
Constructor/constructor.cpp
Constructor/drain.cpp
Constructor/drain.h
Constructor/exclusa.cpp
Constructor/exclusa.h
Constructor/item.cpp
Constructor/item.h
Constructor/not.cpp
Constructor/not.h
Constructor/or.cpp
Constructor/or.h
Constructor/pump.cpp
Constructor/pump.h
Constructor/splitter.cpp
Constructor/splitter.h
Constructor/union.cpp
Constructor/union.h

index 768390a5792a38048e5d79e731a2e1d2a0b27e00..01f8ac023fcc9ae70026a81ac72f454fd7f2b9f9 100644 (file)
@@ -87,24 +87,3 @@ bool And::check_connection()
        return false;*/
        return true;
 }
        return false;*/
        return true;
 }
-
-/*
-bool And::is_connection_area(int _a, int _b)
-{
-       switch (imgActual) {
-               case 0: if ( ( (_a <= x+10)&&(_a > x) && (_b <=y+22)&&(_b>=y+10) ) ||
-                                                ( (_a <= x+image->get_width()-10)&&(_a>=x+image->get_width()-22)&&(_b<=y+image->get_height()-1)&&(_b>=y+image->get_height()-10) ) )
-                                               return true;
-               case 1: if ( ( (_a <= x+image->get_width()-10)&&(_a >= x+image->get_width()-22) && (_b <=y+10)&&(_b > y) ) ||
-                                                ( (_a <= x+10)&&(_a > x)&&(_b<=y+image->get_height()-10)&&(_b>=y+image->get_height()-22) ) )
-                                               return true;
-               case 2: if ( ( (_a <= x+22)&&(_a >= x+10) && (_b <=y+10)&&(_b > y) ) ||
-                                                ( (_a <= x+image->get_width()-1)&&(_a>=x+image->get_width()-10)&&(_b<=y+image->get_height()-10)&&(_b>=y+image->get_height()-22) ) )
-                                               return true;
-               case 3: if ( ( (_a <= x+image->get_width()-1)&&(_a >= x+image->get_width()-10) && (_b <=y+22)&&(_b>=y+10) ) ||
-                                                ( (_a <= x+22)&&(_a>=x+10)&&(_b<=y+image->get_height()-1)&&(_b>=y+image->get_height()-10) ) )
-                                               return true;
-       }
-       return false;
-}
-*/
index 28956687f458777755d0656a18a340eb63eede8d..4ab0f1738d11dfca48b1d1cf8a16099ceafde720 100644 (file)
@@ -11,7 +11,6 @@ class And : public CItem {
                virtual void on_menu_popup_rotar();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
                virtual void on_menu_popup_rotar();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
-//             virtual bool is_connection_area(int _a, int _b);
        private:
                Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
                Glib::RefPtr<Gdk::Pixbuf> imageS; // 1
        private:
                Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
                Glib::RefPtr<Gdk::Pixbuf> imageS; // 1
index b42f690dba6a90d968207cbd0a71ccd019ba7936..fd49a6eb4d0c88b9c71b5603f0c4bab01ef3cf26 100644 (file)
@@ -171,24 +171,9 @@ ConnectorType Cistern::get_connector_type(int _a, int _b)
        }
        return UNDEF;
 }
        }
        return UNDEF;
 }
-       
-/*
-ConnectorType Cistern::is_connection_area(int _a, int _b)
+
+void Cistern::set_default_connector()
 {
 {
-       switch (imgActual) {
-               case 0: 
-                       if ( (_a <= x+22)&&(_a>=x+10)&&(_b<=y+10)&&(_b > y) )
-                               return connect_vec[0].type;
-                       if ( (_a <= x+image->get_width()-1)&&(_a >=x+image->get_width()-10)&&(_b<=y+image->get_height()-10)&&(_b >=y+image->get_height()-22) )
-                               return connect_vec[1].type;
-                       break;
-               case 1: 
-                       if ( (_a <= x+image->get_width()-10)&&(_a>=x+image->get_width()-22)&&(_b<=y+10)&&(_b > y) )
-                               return connect_vec[0].type;
-                       if ( (_a <= x +10)&&(_a > x)&&(_b<=y+image->get_height()-10)&&(_b >=y+image->get_height()-22) )
-                               return connect_vec[1].type;
-                       break;
-       }
-       return UNDEF;
+       connect_vec[0].type = IN;
+       connect_vec[1].type = OUT;
 }
 }
-*/
index 67184c2841de892d08e7650d4cd971e72828e1bf..330d239a9db72f6df25e0db5c55e54d156e02842 100644 (file)
@@ -21,7 +21,7 @@ class Cistern : public CItem {
                Gdk::Color get_liquid_color();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
                Gdk::Color get_liquid_color();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
-//             virtual ConnectorType is_connection_area(int _a, int _b);
+               virtual void set_default_connector();
                virtual ConnectorType get_connector_type(int _a, int _b);       
        protected:
                double capacidad, contenido_inicial;
                virtual ConnectorType get_connector_type(int _a, int _b);       
        protected:
                double capacidad, contenido_inicial;
index c2ca140992ac9995c3b0bfb0ea33c42cd4c9ec5d..1e5bde343e3691d544ae0ea3769b9103796499b7 100644 (file)
@@ -144,19 +144,9 @@ ConnectorType Conduct::get_connector_type(int _a, int _b)
 /*si no estoy conectado pregunto por el del otro lado, y ahi puedo setear los dos
  *si ya estoy devuelvo.
 */
 /*si no estoy conectado pregunto por el del otro lado, y ahi puedo setear los dos
  *si ya estoy devuelvo.
 */
-/*
-bool Conduct::is_connection_area(int _a, int _b)
+
+void Conduct::set_default_connector()
 {
 {
-       switch (imgActual){
-               case 0:
-                       if ( ((_a <= x+image->get_width()-10 )&&(_a >= x + 10) && (_b <= y+10) &&(_b > 0 )) ||
-                                ((_a <= x+22 )&&(_a >= x + 10) && (_b <= y+image->get_height()-1) &&(_b >= y+image->get_height()-10 )) )
-                               return true;
-               case 1:
-                       if ( ((_a <= x+10 )&&(_a > 0) && (_b <= y+image->get_height()-10) &&(_b >= y+10 )) ||
-                                ((_a <= x+image->get_width()-1)&&(_a >= x+image->get_width()-10) && (_b <= y+image->get_height()-10) &&(_b >= y +10 )) )
-                               return true;
-       }
-       return false;
+       connect_vec[0].type = UNDEF;
+       connect_vec[1].type = UNDEF;
 }
 }
-*/
index 21773ed414b1473570f2e3353728a9ed18468ef7..3ba3ab6ee072b122bd2d8f5851f64256e4a6cbd4 100644 (file)
@@ -12,7 +12,7 @@ class Conduct : public CItem {
                virtual void on_menu_popup_propiedades();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
                virtual void on_menu_popup_propiedades();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
-//             virtual bool is_connection_area(int _a, int _b);
+               virtual void set_default_connector();
                virtual ConnectorType get_connector_type(int _a, int _b);
        private:
                Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
                virtual ConnectorType get_connector_type(int _a, int _b);
        private:
                Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
index 8aa6655ecfa92f64a998a259bf07adf369ebdab0..aa162e92f67c90acd0de27a4a7de06fbc7a1bb9c 100644 (file)
@@ -110,32 +110,32 @@ Constructor::~Constructor()
 
 void Constructor::on_btn_canio_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 {
 
 void Constructor::on_btn_canio_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 {
-       gtk_selection_data_set (selection_data, selection_data->target, 8, (const guchar*)"canio_n.png", 14);
+       gtk_selection_data_set (selection_data, selection_data->target, 8, (const guchar*)"canio_n.png", 12);
 }
 
 void Constructor::on_btn_y_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 {
 }
 
 void Constructor::on_btn_y_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 {
-       gtk_selection_data_set(selection_data, selection_data->target, 8,(const guchar*)"y_n.png",10);
+       gtk_selection_data_set(selection_data, selection_data->target, 8,(const guchar*)"y_n.png",8);
 }
 
 void Constructor::on_btn_codo_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 {
 }
 
 void Constructor::on_btn_codo_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 {
-       gtk_selection_data_set(selection_data, selection_data->target, 8 ,(const guchar*)"codo_o.png",13);
+       gtk_selection_data_set(selection_data, selection_data->target, 8 ,(const guchar*)"codo_o.png",10);
 }
 
 void Constructor::on_btn_tanque_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 {
 }
 
 void Constructor::on_btn_tanque_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 {
-       gtk_selection_data_set(selection_data, selection_data->target, 8,(const guchar*)"tanque_e.png",15);
+       gtk_selection_data_set(selection_data, selection_data->target, 8,(const guchar*)"tanque_e.png",12);
 }
 
 void Constructor::on_btn_bomba_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 {
 }
 
 void Constructor::on_btn_bomba_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 {
-       gtk_selection_data_set(selection_data, selection_data->target, 8,(const guchar*)"bomba_e.png",15);
+       gtk_selection_data_set(selection_data, selection_data->target, 8,(const guchar*)"bomba_e.png",11);
 }
 
 void Constructor::on_btn_exclusa_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 {
 }
 
 void Constructor::on_btn_exclusa_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 {
-       gtk_selection_data_set(selection_data, selection_data->target, 8,(const guchar*)"exclusa_h.png",15);
+       gtk_selection_data_set(selection_data, selection_data->target, 8,(const guchar*)"exclusa_h.png",13);
 }
 
 void Constructor::on_btn_drain_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 }
 
 void Constructor::on_btn_drain_drag_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
@@ -272,6 +272,11 @@ void Constructor::on_not_drag_begin(const Glib::RefPtr<Gdk::DragContext>& contex
 void Constructor::on_item_drag_begin(const Glib::RefPtr<Gdk::DragContext>& context, CItem *item)
 {
        context->set_icon(item->get_image(), 5, 5);
 void Constructor::on_item_drag_begin(const Glib::RefPtr<Gdk::DragContext>& context, CItem *item)
 {
        context->set_icon(item->get_image(), 5, 5);
+       std::list<CItem *>::iterator i = listaItems.begin();
+       while ( i != listaItems.end() ){
+               (*i)->set_default_connector();
+               i++;
+       }
 }
 
 void Constructor::on_item_drag_data_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
 }
 
 void Constructor::on_item_drag_data_get(const Glib::RefPtr<Gdk::DragContext>& context, GtkSelectionData* selection_data, guint info, guint time)
index e1f07928e47c4ede215dfdfd416784cbfe493b02..cd4ee57d73f591ea306a297c669b541514969a44 100644 (file)
@@ -138,3 +138,8 @@ ConnectorType Drain::get_connector_type(int _a, int _b)
        }
        return UNDEF;   
 }
        }
        return UNDEF;   
 }
+
+void Drain::set_default_connector()
+{
+       connect_vec[0].type = IN;
+}
index 2c6ab7bef2229e21d00b00621ddb273d19948bd5..697a2172ad7b146ec7b69abfc8eb54d35b7904c3 100644 (file)
@@ -16,7 +16,7 @@ class Drain : public CItem {
                double get_capacidad();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
                double get_capacidad();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
-               //virtual ConnectorType is_connection_area(int _a, int _b);
+               virtual void set_default_connector();
                virtual ConnectorType get_connector_type(int _a, int _b);
        protected:
                Glib::RefPtr<Gdk::Pixbuf> imageE; // 0 
                virtual ConnectorType get_connector_type(int _a, int _b);
        protected:
                Glib::RefPtr<Gdk::Pixbuf> imageE; // 0 
index 6a386d14d2fc0509bd12be4429427b964b872581..b759ea7649450e25c5bf48465126740336deffa7 100644 (file)
@@ -14,6 +14,12 @@ Exclusa::Exclusa()
        ref->get_widget_derived("exclusa_pty_wnd",exclusa_pty_wnd);
        exclusa_pty_wnd->exclusa = this;
        name = "exclusa";
        ref->get_widget_derived("exclusa_pty_wnd",exclusa_pty_wnd);
        exclusa_pty_wnd->exclusa = this;
        name = "exclusa";
+       
+       Connector temp;
+       temp.id_dest = -1;
+       temp.type = UNDEF;
+       connect_vec.push_back(temp);
+       connect_vec.push_back(temp);
 }
 
 Exclusa::~Exclusa()
 }
 
 Exclusa::~Exclusa()
@@ -153,21 +159,9 @@ ConnectorType Exclusa::get_connector_type(int _a, int _b)
        }
        return UNDEF;
 }
        }
        return UNDEF;
 }
-/*si no estoy conectado pregunto por el del otro lado, y ahi puedo setear los dos
- *si ya estoy devuelvo.
-*/
-/*bool Exclusa::is_connection_area(int _a, int _b)
+
+void Exclusa::set_default_connector()
 {
 {
-       switch (imgActual){
-               case 0: 
-                       if ( ((_a <= x+10 )&&(_a > 0) && (_b <= y+image->get_height()-10) &&(_b >= y+10 )) ||
-                                ((_a <= x+image->get_width()-1)&&(_a >= x+image->get_width()-10) && (_b <= y+image->get_height()-10) &&(_b >= y +10 )) )
-                               return true;
-               case 1:
-                       if ( ((_a <= x+image->get_width()-10 )&&(_a >= x + 10) && (_b <= y+10) &&(_b > 0 )) ||
-                                ((_a <= x+22 )&&(_a >= x + 10) && (_b <= y+image->get_height()-1) &&(_b >= y+image->get_height()-10 )) )
-                               return true;
-       }
-       return false;
+       connect_vec[0].type = UNDEF;
+       connect_vec[1].type = UNDEF;
 }
 }
-*/
index b65e6168147d10953c1035ef0ac1215ff3efc0f3..5ea2ddd64fffe33298ccc7ea9177a68a2866f9c8 100644 (file)
@@ -14,7 +14,7 @@ class Exclusa : public CItem {
                virtual void on_menu_popup_propiedades();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
                virtual void on_menu_popup_propiedades();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
-//             virtual ConnectorType is_connection_area(int _a, int _b);
+               virtual void set_default_connector();
                virtual ConnectorType get_connector_type(int _a, int _b);
                void set_estado(bool _state);
                bool get_estado();
                virtual ConnectorType get_connector_type(int _a, int _b);
                void set_estado(bool _state);
                bool get_estado();
index 72f63930554a284452052d2515d066aede363fb6..de9c4cd6ee5ab04a6a5a83d5fcfcf9268204211b 100644 (file)
@@ -126,11 +126,10 @@ ConnectorType CItem::is_other_connection_area(int _a, int _b)
        std::list<CItem *>::iterator i = listaItems->begin();
        while ( i != listaItems->end() ) {
                CItem *temp = *i;
        std::list<CItem *>::iterator i = listaItems->begin();
        while ( i != listaItems->end() ) {
                CItem *temp = *i;
-               if (temp != this) {
+               if (temp != this) 
                        if ( (temp2 = temp->get_connector_type(_a,_b)) != UNDEF )
                                return temp2;
                        if ( (temp2 = temp->get_connector_type(_a,_b)) != UNDEF )
                                return temp2;
-                       i++;
-               }
+               i++;
        }
        return UNDEF;
 }
        }
        return UNDEF;
 }
@@ -138,3 +137,6 @@ ConnectorType CItem::get_connector_type( int _a, int _b )
 {
        return UNDEF;
 }
 {
        return UNDEF;
 }
+void CItem::set_default_connector()
+{
+}
index 1654bf3dfda7171931e50136542f1e25da359ecd..10070b8b30379f00208447c54f2f62bf17ced0b5 100644 (file)
@@ -52,7 +52,7 @@ public:
        ConnectorType is_other_connection_area(int _a, int _b);
        virtual void save(FILE *archivo) = 0;
        virtual bool check_connection()=0;
        ConnectorType is_other_connection_area(int _a, int _b);
        virtual void save(FILE *archivo) = 0;
        virtual bool check_connection()=0;
-//     virtual ConnectorType is_connection_area(int _a, int _b)=0;
+       virtual void set_default_connector();   
        virtual ConnectorType get_connector_type( int _a, int _b );
        WorkPlace *workplace;
        Gtk::Entry *combo_entry;
        virtual ConnectorType get_connector_type( int _a, int _b );
        WorkPlace *workplace;
        Gtk::Entry *combo_entry;
index ca112fe5133f72ecebb92c71239b0e92af80615b..04e8ffc6f702d37baa8c2d3606c3e49edd0ce9d8 100644 (file)
@@ -90,25 +90,3 @@ bool Not::check_connection()
        return false;*/
        return true;
 }
        return false;*/
        return true;
 }
-
-/*
-bool Not::is_connection_area(int _a, int _b)
-{
-       /*switch (imgActual) {
-               case 0: if ( ( (_a <= x+10)&&(_a > x) && (_b <=y+22)&&(_b>=y+10) ) ||
-                                                ( (_a <= x+image->get_width()-10)&&(_a>=x+image->get_width()-22)&&(_b<=y+image->get_height()-1)&&(_b>=y+image->get_height()-10) ) )
-                                               return true;
-               case 1: if ( ( (_a <= x+image->get_width()-10)&&(_a >= x+image->get_width()-22) && (_b <=y+10)&&(_b > y) ) ||
-                                                ( (_a <= x+10)&&(_a > x)&&(_b<=y+image->get_height()-10)&&(_b>=y+image->get_height()-22) ) )
-                                               return true;
-               case 2: if ( ( (_a <= x+22)&&(_a >= x+10) && (_b <=y+10)&&(_b > y) ) ||
-                                                ( (_a <= x+image->get_width()-1)&&(_a>=x+image->get_width()-10)&&(_b<=y+image->get_height()-10)&&(_b>=y+image->get_height()-22) ) )
-                                               return true;
-               case 3: if ( ( (_a <= x+image->get_width()-1)&&(_a >= x+image->get_width()-10) && (_b <=y+22)&&(_b>=y+10) ) ||
-                                                ( (_a <= x+22)&&(_a>=x+10)&&(_b<=y+image->get_height()-1)&&(_b>=y+image->get_height()-10) ) )
-                                               return true;
-       }
-       return false;
-       return true;
-}
-*/
index 4e0480ca6c12176ed2e8f7fc7daa6bc48318be5d..6b427fecb43d82f58a93900083bbaf26cae71f61 100644 (file)
@@ -11,7 +11,6 @@ class Not : public CItem {
                virtual void on_menu_popup_rotar();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
                virtual void on_menu_popup_rotar();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
-               //virtual bool is_connection_area(int _a, int _b);
        private:
                Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
                Glib::RefPtr<Gdk::Pixbuf> imageS; // 1
        private:
                Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
                Glib::RefPtr<Gdk::Pixbuf> imageS; // 1
index c162ecb45b6cd65932a49577e4327db75fd08e81..cd86e235c792a484b810b5bf6e200ce83523b0b3 100644 (file)
@@ -66,48 +66,5 @@ void Or::save(FILE *archivo)
 // CAMBIAR TODO ESTO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 bool Or::check_connection()
 {
 // CAMBIAR TODO ESTO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 bool Or::check_connection()
 {
-       /*switch (get_img_actual()) {
-                       case 0:
-                               if ( is_other_connection_area( get_position_x()-5, get_position_y()+16) && 
-                                        is_other_connection_area( get_position_x()+get_image()->get_width()-16, +get_position_y()+get_image()->get_height() + 5) )
-                                       return true;                            
-                               break;  
-                       case 1:
-                               if ( is_other_connection_area( get_position_x()+get_image()->get_width() - 16, get_position_y() -5) && 
-                                        is_other_connection_area( get_position_x()-5, get_position_y()+get_image()->get_height()-16) )
-                                       return true;
-                               break;
-                       case 2:
-                               if ( is_other_connection_area( get_position_x() + 16, get_position_y() -5) &&
-                                        is_other_connection_area( get_position_x()+get_image()->get_width()+5, get_position_y()+get_image()->get_height()-16) )
-                                       return true;
-                               break;
-                       case 3:
-                               if ( is_other_connection_area( get_position_x()+get_image()->get_width()+5, get_position_y() +16) &&
-                                        is_other_connection_area( get_position_x() + 16, get_position_y()+get_image()->get_height() + 5) )
-                                       return true;
-       }
-       return false;*/
        return true;
 }
        return true;
 }
-
-/*
-bool Or::is_connection_area(int _a, int _b)
-{
-       /*switch (imgActual) {
-               case 0: if ( ( (_a <= x+10)&&(_a > x) && (_b <=y+22)&&(_b>=y+10) ) ||
-                                                ( (_a <= x+image->get_width()-10)&&(_a>=x+image->get_width()-22)&&(_b<=y+image->get_height()-1)&&(_b>=y+image->get_height()-10) ) )
-                                               return true;
-               case 1: if ( ( (_a <= x+image->get_width()-10)&&(_a >= x+image->get_width()-22) && (_b <=y+10)&&(_b > y) ) ||
-                                                ( (_a <= x+10)&&(_a > x)&&(_b<=y+image->get_height()-10)&&(_b>=y+image->get_height()-22) ) )
-                                               return true;
-               case 2: if ( ( (_a <= x+22)&&(_a >= x+10) && (_b <=y+10)&&(_b > y) ) ||
-                                                ( (_a <= x+image->get_width()-1)&&(_a>=x+image->get_width()-10)&&(_b<=y+image->get_height()-10)&&(_b>=y+image->get_height()-22) ) )
-                                               return true;
-               case 3: if ( ( (_a <= x+image->get_width()-1)&&(_a >= x+image->get_width()-10) && (_b <=y+22)&&(_b>=y+10) ) ||
-                                                ( (_a <= x+22)&&(_a>=x+10)&&(_b<=y+image->get_height()-1)&&(_b>=y+image->get_height()-10) ) )
-                                               return true;
-       }
-       return false;
-}
-*/
index 617ab1b1b2c121b8938cece1585e6c8958bce69a..9da1cd2a0f429bfe34f17f8b74ddac626f2a6be9 100644 (file)
@@ -11,7 +11,6 @@ class Or : public CItem {
                virtual void on_menu_popup_rotar();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
                virtual void on_menu_popup_rotar();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
-               //virtual ConnectorType is_connection_area(int _a, int _b);
        private:
                Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
                Glib::RefPtr<Gdk::Pixbuf> imageS; // 1
        private:
                Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
                Glib::RefPtr<Gdk::Pixbuf> imageS; // 1
index fbc09376ede292e6f4f25974bbbdba42cb75b5ed..515dc908d848c2df294bd75eab9fc10c99693bc5 100644 (file)
@@ -149,15 +149,8 @@ ConnectorType Pump::get_connector_type(int _a, int _b)
        }
        return UNDEF;
 }
        }
        return UNDEF;
 }
-/*
-bool Pump::is_connection_area(int _a, int _b)
+
+void Pump::set_default_connector()
 {
 {
-       switch (imgActual) {
-               case 0: if ( (_a <= x+image->get_width()-1)&&(_a>=x+image->get_width()-10)&&(_b<=y+22)&&(_b > y) ) 
-                                               return true;
-               case 1: if ( (_a <= x+10)&&(_a > x)&&(_b<=y+22)&&(_b > y) ) 
-                                               return true;
-       }
-       return false;
+       connect_vec[0].type = OUT;
 }
 }
-*/
index 201475fbb433d5b58bdd3c446981e3030facb68e..cdf8bba06573cb6257a19416f8765726fd7c2e06 100644 (file)
@@ -19,6 +19,7 @@ class Pump : public CItem {
                Gdk::Color get_liquid_color();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
                Gdk::Color get_liquid_color();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
+               virtual void set_default_connector();
                virtual ConnectorType get_connector_type(int _a, int _b);
        protected:
                double entrega;
                virtual ConnectorType get_connector_type(int _a, int _b);
        protected:
                double entrega;
index 2e11992c5839e09999e50d434677b39bcce96129..4804849f998c131bb09e2463e5e13bc05c5a4497 100644 (file)
@@ -179,23 +179,8 @@ ConnectorType Splitter::get_connector_type(int _a, int _b)
        return UNDEF;
 }      
 
        return UNDEF;
 }      
 
-/*
-bool Splitter::is_connection_area(int _a, int _b)
+void Splitter::set_default_connector()
 {
 {
-       switch (imgActual) {
-               case 0: if ( ( (_a <= x+10)&&(_a > x) && (_b <=y+22)&&(_b>=y+10) ) ||
-                                                ( (_a <= x+image->get_width()-10)&&(_a>=x+image->get_width()-22)&&(_b<=y+image->get_height()-1)&&(_b>=y+image->get_height()-10) ) )
-                                               return true;
-               case 1: if ( ( (_a <= x+image->get_width()-10)&&(_a >= x+image->get_width()-22) && (_b <=y+10)&&(_b > y) ) ||
-                                                ( (_a <= x+10)&&(_a > x)&&(_b<=y+image->get_height()-10)&&(_b>=y+image->get_height()-22) ) )
-                                               return true;
-               case 2: if ( ( (_a <= x+22)&&(_a >= x+10) && (_b <=y+10)&&(_b > y) ) ||
-                                                ( (_a <= x+image->get_width()-1)&&(_a>=x+image->get_width()-10)&&(_b<=y+image->get_height()-10)&&(_b>=y+image->get_height()-22) ) )
-                                               return true;
-               case 3: if ( ( (_a <= x+image->get_width()-1)&&(_a >= x+image->get_width()-10) && (_b <=y+22)&&(_b>=y+10) ) ||
-                                                ( (_a <= x+22)&&(_a>=x+10)&&(_b<=y+image->get_height()-1)&&(_b>=y+image->get_height()-10) ) )
-                                               return true;
-       }
-       return false;
+       connect_vec[0].type = UNDEF;
+       connect_vec[1].type = UNDEF;
 }
 }
-*/
index bcd13e43c4107b56d9be8c6efd66d1797e4141ff..ef526d50a50a82e31bf24b8b8e2bd20958e3c159 100644 (file)
@@ -12,7 +12,7 @@ class Splitter : public CItem {
                virtual void on_menu_popup_propiedades();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
                virtual void on_menu_popup_propiedades();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
-//             virtual ConnectorType is_connection_area(int _a, int _b);
+               virtual void set_default_connector();
                virtual ConnectorType get_connector_type(int _a, int _b);
        private:
                Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
                virtual ConnectorType get_connector_type(int _a, int _b);
        private:
                Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
index b7b97bd3d9e64bd322b7695676c68a87601e8437..1311bd509c7336bb479da53d58ae1de6d140a7f1 100644 (file)
@@ -176,27 +176,15 @@ ConnectorType Union::get_connector_type(int _a, int _b)
        return UNDEF;
 }
 
        return UNDEF;
 }
 
-/*
-ConnectorType Union::is_connection_area(int _a, int _b)
+void Union::set_default_connector()
 {
 {
-       switch ( imgActual) {
-               case 0: if ( ((_a <= x+10) && (_a > x+1) && (_b<= y + 22) && (_b >= y+10))
-                                               retur
-                                                 ((_a <= x+image->get_width()-1) && (_a >= x+image->get_width()-10)&&(_b <= y+22) && (_b >= y+10)) ||
-                                                 ((_a <= x+image->get_width()/2 + 5)&&( _a>= x+image->get_width()/2 - 5) && (_b<=y+image->get_height()-1)&&(_b >= y+image->get_height()-10)) )
-                                               return true;
-               case 1: if ( ((_a <= x+image->get_width()-10) && (_a >= x+image->get_width() -22) && (_b<= y + 10) && (_b > y )) ||
-                                                 ((_a <= x +10) && (_a > x )&&(_b <= y+image->get_height()/2+5 ) && (_b >= y+image->get_height()/2-5)) ||
-                                                 ((_a <= x+image->get_width() - 10)&&( _a>= x+image->get_width()-22) && (_b<=y+image->get_height()-1)&&(_b >= y+image->get_height()-10)) )
-                                               return true;
-               case 2: if ( ((_a <= x+10) && (_a > x) && (_b<= y+image->get_height()-10) && (_b >= y+image->get_height()-22)) ||
-                                                 ((_a <= x+image->get_width()-1) && (_a >= x+image->get_width()-10)&&(_b <= y+image->get_height()-10) && (_b >= y+image->get_height()-22)) ||
-                                                 ((_a <= x+image->get_width()/2 + 5)&&( _a>= x+image->get_width()/2 - 5) && (_b<=y+10)&&(_b > y)) )
-                                               return true;
-               case 3: if ( ((_a <= x+22) && (_a >= x+10) && (_b<= y + 10) && (_b > y )) ||
-                                                 ((_a <= x+22) && (_a >= x+10 )&&(_b <= y+image->get_height()-1 ) && (_b >= y+image->get_height()-10)) ||
-                                                 ((_a <= x+image->get_width() -1)&&( _a>= x+image->get_width()-10) && (_b<=y+image->get_height()/2+5)&&(_b >= y+image->get_height()/2-5)) )
-                                               return true;
+       if (is_union) {
+               connect_vec[0].type = IN;
+               connect_vec[1].type = IN;
+               connect_vec[2].type = OUT;
+       } else {
+               connect_vec[0].type = OUT;
+               connect_vec[1].type = OUT;
+               connect_vec[2].type = IN;
        }
        }
-       return false;
-}*/
+}
index 18aba4f7056936e33c3797a9f55a9290a31398be..e58a5d0babbd569927646ccb29009a2eb617f23c 100644 (file)
@@ -13,7 +13,7 @@ class Union : public CItem {
                virtual void on_menu_popup_propiedades();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
                virtual void on_menu_popup_propiedades();
                virtual void save(FILE *archivo);
                virtual bool check_connection();
-               //virtual ConnectorType is_connection_area(int _a, int _b);
+               virtual void set_default_connector();
                virtual ConnectorType get_connector_type(int _a, int _b);
        private:
                Glib::RefPtr<Gdk::Pixbuf> imageN; // 0 
                virtual ConnectorType get_connector_type(int _a, int _b);
        private:
                Glib::RefPtr<Gdk::Pixbuf> imageN; // 0