[Bf-blender-cvs] [8c616e8] master: Calculate auto normalization maximum from keyframes within range if preview is on
Antony Riakiotakis
noreply at git.blender.org
Mon Apr 13 12:44:11 CEST 2015
Commit: 8c616e86b5dccead43e78dc2f8a86978a6aec4e2
Author: Antony Riakiotakis
Date: Mon Apr 13 12:43:56 2015 +0200
Branches: master
https://developer.blender.org/rB8c616e86b5dccead43e78dc2f8a86978a6aec4e2
Calculate auto normalization maximum from keyframes within range if
preview is on
===================================================================
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 c0ac42f..ed294d7 100644
--- a/source/blender/editors/animation/anim_draw.c
+++ b/source/blender/editors/animation/anim_draw.c
@@ -37,6 +37,7 @@
#include "BLI_math.h"
#include "BLI_timecode.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -266,7 +267,7 @@ short ANIM_get_normalization_flags(bAnimContext *ac)
return 0;
}
-static float normalzation_factor_get(FCurve *fcu, short flag)
+static float normalization_factor_get(Scene *scene, FCurve *fcu, short flag)
{
float factor = 1.0f;
@@ -292,10 +293,21 @@ static float normalzation_factor_get(FCurve *fcu, short flag)
return 1.0f;
}
- for (i = 0, bezt = fcu->bezt; i < fcu->totvert; i++, bezt++) {
- max_coord = max_ff(max_coord, fabsf(bezt->vec[0][1]));
- max_coord = max_ff(max_coord, fabsf(bezt->vec[1][1]));
- max_coord = max_ff(max_coord, fabsf(bezt->vec[2][1]));
+ if (PRVRANGEON) {
+ for (i = 0, bezt = fcu->bezt; i < fcu->totvert; i++, bezt++) {
+ if (IN_RANGE_INCL(bezt->vec[1][0], scene->r.psfra, scene->r.pefra)) {
+ max_coord = max_ff(max_coord, fabsf(bezt->vec[0][1]));
+ max_coord = max_ff(max_coord, fabsf(bezt->vec[1][1]));
+ max_coord = max_ff(max_coord, fabsf(bezt->vec[2][1]));
+ }
+ }
+ }
+ else {
+ for (i = 0, bezt = fcu->bezt; i < fcu->totvert; i++, bezt++) {
+ max_coord = max_ff(max_coord, fabsf(bezt->vec[0][1]));
+ max_coord = max_ff(max_coord, fabsf(bezt->vec[1][1]));
+ max_coord = max_ff(max_coord, fabsf(bezt->vec[2][1]));
+ }
}
if (max_coord > FLT_EPSILON) {
@@ -310,7 +322,7 @@ static float normalzation_factor_get(FCurve *fcu, short flag)
float ANIM_unit_mapping_get_factor(Scene *scene, ID *id, FCurve *fcu, short flag)
{
if (flag & ANIM_UNITCONV_NORMALIZE) {
- return normalzation_factor_get(fcu, flag);
+ return normalization_factor_get(scene, fcu, flag);
}
/* sanity checks */
More information about the Bf-blender-cvs
mailing list