Make the linear interpolation linear. See http://dooglus.rincevent.net/synfig/linear...
authordooglus <dooglus@1f10aa63-cdf2-0310-b900-c93c546f37ac>
Mon, 1 Oct 2007 23:18:56 +0000 (23:18 +0000)
committerdooglus <dooglus@1f10aa63-cdf2-0310-b900-c93c546f37ac>
Mon, 1 Oct 2007 23:18:56 +0000 (23:18 +0000)
git-svn-id: http://svn.voria.com/code@809 1f10aa63-cdf2-0310-b900-c93c546f37ac

synfig-core/trunk/src/synfig/valuenode_animated.cpp

index 3bb0146..1c37cbe 100644 (file)
@@ -455,17 +455,16 @@ public:
                                        // Adjust for time
                                        const float timeadjust(0.5);
 
-                                       if(!curve_list.empty())
-                                               curve.second.t1()*=(curve.second.get_dt()*(timeadjust+1))/(curve.second.get_dt()*timeadjust+curve_list.back().second.get_dt());
-                                       if(after_next!=waypoint_list_.end())
-                                               curve.second.t2()*=(curve.second.get_dt()*(timeadjust+1))/(curve.second.get_dt()*timeadjust+(after_next->get_time()-next->get_time()));
-
                                        if(iter_get_after==INTERPOLATION_HALT)
                                                curve.second.t1()*=0;
+                                       else if(iter_get_after != INTERPOLATION_LINEAR && !curve_list.empty())
+                                               curve.second.t1()*=(curve.second.get_dt()*(timeadjust+1))/(curve.second.get_dt()*timeadjust+curve_list.back().second.get_dt());
 
                                        if(next_get_before==INTERPOLATION_HALT)
                                                curve.second.t2()*=0;
-                               }
+                                       else if(next_get_before != INTERPOLATION_LINEAR && after_next!=waypoint_list_.end())
+                                               curve.second.t2()*=(curve.second.get_dt()*(timeadjust+1))/(curve.second.get_dt()*timeadjust+(after_next->get_time()-next->get_time()));
+                               } // not CONSTANT
                        }
 
                        // Set up the time to the default stuff