[Bf-blender-cvs] [3e4a7f4] master: Fix T45275: F-Curve normalization might corrupt animation

Sergey Sharybin noreply at git.blender.org
Wed Aug 26 15:09:42 CEST 2015


Commit: 3e4a7f4366433842880dc06895d699a54838ad5d
Author: Sergey Sharybin
Date:   Wed Aug 26 15:06:21 2015 +0200
Branches: master
https://developer.blender.org/rB3e4a7f4366433842880dc06895d699a54838ad5d

Fix T45275: F-Curve normalization might corrupt animation

===================================================================

M	source/blender/editors/animation/anim_draw.c

===================================================================

diff --git a/source/blender/editors/animation/anim_draw.c b/source/blender/editors/animation/anim_draw.c
index 33a5447..ed3d228 100644
--- a/source/blender/editors/animation/anim_draw.c
+++ b/source/blender/editors/animation/anim_draw.c
@@ -289,12 +289,22 @@ static float normalization_factor_get(Scene *scene, FCurve *fcu, short flag, flo
 	if (flag & ANIM_UNITCONV_NORMALIZE_FREEZE) {
 		if (r_offset)
 			*r_offset = fcu->prev_offset;
+		if (fcu->prev_norm_factor == 0.0f) {
+			/* Happens when Auto Normalize was disabled before
+			 * any curves were displayed.
+			 */
+			return 1.0f;
+		}
 		return fcu->prev_norm_factor;
 	}
 
 	if (G.moving & G_TRANSFORM_FCURVES) {
 		if (r_offset)
 			*r_offset = fcu->prev_offset;
+		if (fcu->prev_norm_factor == 0.0f) {
+			/* Same as above. */
+			return 1.0f;
+		}
 		return fcu->prev_norm_factor;
 	}
 
@@ -342,7 +352,7 @@ static float normalization_factor_get(Scene *scene, FCurve *fcu, short flag, flo
 		}
 		offset = -min_coord - range / 2.0f;
 	}
-
+	BLI_assert(factor != 0.0f);
 	if (r_offset) {
 		*r_offset = offset;
 	}




More information about the Bf-blender-cvs mailing list