Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-06-09 11:43:56 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-06-09 11:43:56 +0400
commit0b5cd4b8090aa63bd5517483d0c19309eee7b121 (patch)
treedd03b3c0b32b7fc5f6e24552137e580be1477a99
parent04c2e5d5931976a7029b4dcc8d8e745a0cb8d85a (diff)
Fix T40529: Euler Rotation F-Curve Handlers wrong behaviour on moving keyframes
-rw-r--r--source/blender/editors/transform/transform_conversions.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 96e75471c15..92899fc4116 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -4101,8 +4101,8 @@ void flushTransGraphData(TransInfo *t)
a++, td++, td2d++, tdg++)
{
AnimData *adt = (AnimData *)td->extra; /* pointers to relevant AnimData blocks are stored in the td->extra pointers */
- float unit_scale = tdg->unit_scale;
-
+ float inv_unit_scale = 1.0f / tdg->unit_scale;
+
/* handle snapping for time values
* - we should still be in NLA-mapping timespace
* - only apply to keyframes (but never to handles)
@@ -4159,16 +4159,16 @@ void flushTransGraphData(TransInfo *t)
if (td->flag & TD_INTVALUES)
td2d->loc2d[1] = floorf(td2d->loc[1] + 0.5f);
else
- td2d->loc2d[1] = td2d->loc[1] / unit_scale;
+ td2d->loc2d[1] = td2d->loc[1] * inv_unit_scale;
if ((td->flag & TD_MOVEHANDLE1) && td2d->h1) {
td2d->h1[0] = td2d->ih1[0] + td->loc[0] - td->iloc[0];
- td2d->h1[1] = td2d->ih1[1] + td->loc[1] - td->iloc[1];
+ td2d->h1[1] = td2d->ih1[1] + (td->loc[1] - td->iloc[1]) * inv_unit_scale;
}
if ((td->flag & TD_MOVEHANDLE2) && td2d->h2) {
td2d->h2[0] = td2d->ih2[0] + td->loc[0] - td->iloc[0];
- td2d->h2[1] = td2d->ih2[1] + td->loc[1] - td->iloc[1];
+ td2d->h2[1] = td2d->ih2[1] + (td->loc[1] - td->iloc[1]) * inv_unit_scale;
}
}
}