diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-02-28 05:09:17 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-02-28 05:11:09 +0400 |
commit | ba08031783a1aebc4559351454e3de1a9629b37a (patch) | |
tree | bcd1e701b39d94d8698baca880ff75a3fe9960f6 /source/blender | |
parent | 3a99fa5d7fa11a047bc873d0ef1825a8f389c88d (diff) |
Fix T38817: FCurve autoclamp error
Animating large values with auto handles didn't work well,
(large variations on the Y axis would shrink handles).
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/intern/curve.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index 01ddbc60b50..0d06313a6ef 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -2961,7 +2961,13 @@ static void calchandleNurb_intern(BezTriple *bezt, BezTriple *prev, BezTriple *n tvec[0] = dvec_b[0] / len_b + dvec_a[0] / len_a; tvec[1] = dvec_b[1] / len_b + dvec_a[1] / len_a; tvec[2] = dvec_b[2] / len_b + dvec_a[2] / len_a; - len = len_v3(tvec) * 2.5614f; + if (mode != 0) { + len = tvec[0]; + } + else { + len = len_v3(tvec); + } + len *= 2.5614f; if (len != 0.0f) { bool leftviolate = false, rightviolate = false; /* for mode==2 */ |