Restrain dragging for link-to-bline ducks in tools
authorNikita Kitaev <nikitakit@gmail.com>
Tue, 1 Dec 2009 03:00:55 +0000 (19:00 -0800)
committerNikita Kitaev <nikitakit@gmail.com>
Tue, 1 Dec 2009 03:00:55 +0000 (19:00 -0800)
synfig-studio/src/gtkmm/mod_mirror/state_mirror.cpp
synfig-studio/src/gtkmm/state_smoothmove.cpp
synfig-studio/src/gtkmm/state_transform.cpp

index b9688d0..cf2b827 100644 (file)
@@ -267,6 +267,8 @@ DuckDrag_Mirror::duck_drag(Duckmatic* duckmatic, const synfig::Vector& vector)
        const DuckList selected_ducks(duckmatic->get_selected_ducks());
        DuckList::const_iterator iter;
 
+       Time time(duckmatic->get_time());
+
        // do the Vertex and Position ducks first
        for(i=0,iter=selected_ducks.begin();iter!=selected_ducks.end();++iter,i++)
                if ((*iter)->get_type() == Duck::TYPE_VERTEX ||
@@ -277,7 +279,7 @@ DuckDrag_Mirror::duck_drag(Duckmatic* duckmatic, const synfig::Vector& vector)
                        if              (axis==AXIS_X) p[0] = -(p[0]-center[0]) + center[0];
                        else if (axis==AXIS_Y) p[1] = -(p[1]-center[1]) + center[1];
 
-                       (*iter)->set_trans_point(p);
+                       (*iter)->set_trans_point(p, time);
                }
 
        // then do the other ducks
@@ -294,7 +296,7 @@ DuckDrag_Mirror::duck_drag(Duckmatic* duckmatic, const synfig::Vector& vector)
                        if              (axis==AXIS_X) p[0] = -(p[0]-center[0]) + center[0];
                        else if (axis==AXIS_Y) p[1] = -(p[1]-center[1]) + center[1];
 
-                       (*iter)->set_trans_point(p);
+                       (*iter)->set_trans_point(p, time);
                }
 }
 
index 56ca977..5cc7f1e 100644 (file)
@@ -262,6 +262,8 @@ DuckDrag_SmoothMove::duck_drag(Duckmatic* duckmatic, const synfig::Vector& vecto
 
        int i;
 
+       Time time(duckmatic->get_time());
+
        // process vertex and position ducks first
        for(i=0,iter=selected_ducks.begin();iter!=selected_ducks.end();++iter,i++)
        {
@@ -276,7 +278,7 @@ DuckDrag_SmoothMove::duck_drag(Duckmatic* duckmatic, const synfig::Vector& vecto
                        dist=0;
 
                last_[i]=vect*dist;
-               (*iter)->set_trans_point(p+last_[i]);
+               (*iter)->set_trans_point(p+last_[i], time);
        }
 
        // then process non vertex and non position ducks
@@ -293,7 +295,7 @@ DuckDrag_SmoothMove::duck_drag(Duckmatic* duckmatic, const synfig::Vector& vecto
                        dist=0;
 
                last_[i]=vect*dist;
-               (*iter)->set_trans_point(p+last_[i]);
+               (*iter)->set_trans_point(p+last_[i], time);
        }
 
        last_translate_=vect;
index 64a1efa..0a9f2ae 100644 (file)
@@ -731,7 +731,7 @@ DuckDrag_Combo::duck_drag(Duckmatic* duckmatic, const synfig::Vector& vector)
                        p[1]=-sine*x[0]+cosine*x[1];
                        if(scale)p*=mag;
                        p+=center;
-                       (*iter)->set_trans_point(p);
+                       (*iter)->set_trans_point(p, time);
                }
                for(i=0,iter=selected_ducks.begin();iter!=selected_ducks.end();++iter,i++)
                {
@@ -743,7 +743,7 @@ DuckDrag_Combo::duck_drag(Duckmatic* duckmatic, const synfig::Vector& vector)
                        p[1]=-sine*x[0]+cosine*x[1];
                        if(scale)p*=mag;
                        p+=center;
-                       (*iter)->set_trans_point(p);
+                       (*iter)->set_trans_point(p, time);
                }
        } else if (scale)
        {
@@ -779,7 +779,7 @@ DuckDrag_Combo::duck_drag(Duckmatic* duckmatic, const synfig::Vector& vector)
                        p[0]*=vect[0];
                        p[1]*=vect[1];
                        p+=center;
-                       (*iter)->set_trans_point(p);
+                       (*iter)->set_trans_point(p, time);
                }
                for(i=0,iter=selected_ducks.begin();iter!=selected_ducks.end();++iter,i++)
                {
@@ -790,7 +790,7 @@ DuckDrag_Combo::duck_drag(Duckmatic* duckmatic, const synfig::Vector& vector)
                        p[0]*=vect[0];
                        p[1]*=vect[1];
                        p+=center;
-                       (*iter)->set_trans_point(p);
+                       (*iter)->set_trans_point(p, time);
                }
        }
        last_move=vect;