[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42354] trunk/blender/source/blender/ editors/animation/keyframing.c: Fix #29073: keyframing integer properties now uses linear interpolation

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Dec 2 20:49:10 CET 2011


Revision: 42354
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42354
Author:   blendix
Date:     2011-12-02 19:49:09 +0000 (Fri, 02 Dec 2011)
Log Message:
-----------
Fix #29073: keyframing integer properties now uses linear interpolation
by default, and enums use constant interpolation. Bezier doesn't make
much sense for these.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/animation/keyframing.c

Modified: trunk/blender/source/blender/editors/animation/keyframing.c
===================================================================
--- trunk/blender/source/blender/editors/animation/keyframing.c	2011-12-02 19:46:20 UTC (rev 42353)
+++ trunk/blender/source/blender/editors/animation/keyframing.c	2011-12-02 19:49:09 UTC (rev 42354)
@@ -310,10 +310,17 @@
 	beztr.vec[1][1]= y;
 	beztr.vec[2][0]= x+1.0f;
 	beztr.vec[2][1]= y;
-	beztr.ipo= U.ipo_new; /* use default interpolation mode here... */
 	beztr.f1= beztr.f2= beztr.f3= SELECT;
 	beztr.h1= beztr.h2= U.keyhandles_new; /* use default handle type here */
 	//BEZKEYTYPE(&beztr)= scene->keytype; /* default keyframe type */
+
+	/* use default interpolation mode, with exceptions for int/discrete values */
+	beztr.ipo= U.ipo_new;
+
+	if(fcu->flag & FCURVE_DISCRETE_VALUES)
+		beztr.ipo = BEZT_IPO_CONST;
+	else if(beztr.ipo == BEZT_IPO_BEZ && (fcu->flag & FCURVE_INT_VALUES))
+		beztr.ipo = BEZT_IPO_LIN;
 	
 	/* add temp beztriple to keyframes */
 	a= insert_bezt_fcurve(fcu, &beztr, flag);




More information about the Bf-blender-cvs mailing list