[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27742] trunk/blender/source/blender/ editors/animation/keyframes_edit.c: Bugfix #21738: Flatten keys doesn' t work

Joshua Leung aligorith at gmail.com
Thu Mar 25 13:35:53 CET 2010


Revision: 27742
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27742
Author:   aligorith
Date:     2010-03-25 13:35:53 +0100 (Thu, 25 Mar 2010)

Log Message:
-----------
Bugfix #21738: Flatten keys doesn't work

Flatten handles option was an ugly mix of snap to nearest integer values and set the handles to have the same values as the key. Removed the nearest integer snapping from this, since it doesn't seem that useful in retrospect. It could be restored later if there's any demand for it.

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

Modified: trunk/blender/source/blender/editors/animation/keyframes_edit.c
===================================================================
--- trunk/blender/source/blender/editors/animation/keyframes_edit.c	2010-03-25 12:02:03 UTC (rev 27741)
+++ trunk/blender/source/blender/editors/animation/keyframes_edit.c	2010-03-25 12:35:53 UTC (rev 27742)
@@ -604,6 +604,7 @@
 /* ******************************************* */
 /* Transform */
 
+/* snaps the keyframe to the nearest frame */
 static short snap_bezier_nearest(BeztEditData *bed, BezTriple *bezt)
 {
 	if (bezt->f2 & SELECT)
@@ -611,6 +612,7 @@
 	return 0;
 }
 
+/* snaps the keyframe to the neares second */
 static short snap_bezier_nearestsec(BeztEditData *bed, BezTriple *bezt)
 {
 	const Scene *scene= bed->scene;
@@ -621,6 +623,7 @@
 	return 0;
 }
 
+/* snaps the keyframe to the current frame */
 static short snap_bezier_cframe(BeztEditData *bed, BezTriple *bezt)
 {
 	const Scene *scene= bed->scene;
@@ -629,6 +632,7 @@
 	return 0;
 }
 
+/* snaps the keyframe time to the nearest marker's frame */
 static short snap_bezier_nearmarker(BeztEditData *bed, BezTriple *bezt)
 {
 	if (bezt->f2 & SELECT)
@@ -636,20 +640,21 @@
 	return 0;
 }
 
+/* make the handles have the same value as the key */
 static short snap_bezier_horizontal(BeztEditData *bed, BezTriple *bezt)
 {
 	if (bezt->f2 & SELECT) {
-		// XXX currently this snaps both handles to the nearest horizontal value, but perhaps user just wants to level out handles instead?
-		bezt->vec[0][1]= bezt->vec[2][1]= (float)floor(bezt->vec[1][1] + 0.5f);
+		bezt->vec[0][1]= bezt->vec[2][1]= bezt->vec[1][1];
+		
 		if ((bezt->h1==HD_AUTO) || (bezt->h1==HD_VECT)) bezt->h1= HD_ALIGN;
 		if ((bezt->h2==HD_AUTO) || (bezt->h2==HD_VECT)) bezt->h2= HD_ALIGN;
 	}
 	return 0;	
 }
 
+/* value to snap to is stored in the custom data -> first float value slot */
 static short snap_bezier_value(BeztEditData *bed, BezTriple *bezt)
 {
-	/* value to snap to is stored in the custom data -> first float value slot */
 	if (bezt->f2 & SELECT)
 		bezt->vec[1][1]= bed->f1;
 	return 0;





More information about the Bf-blender-cvs mailing list