diff options
author | Ton Roosendaal <ton@blender.org> | 2007-11-22 23:25:59 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2007-11-22 23:25:59 +0300 |
commit | a8aaec6f210626d2beb2d23f297c1a412b047e8e (patch) | |
tree | 95c8b7cce58431b7928a3e0a12b527d8f0828cb5 /source/blender/blenkernel/intern/action.c | |
parent | a03836312463813e366f1043093625dafd3ebd2b (diff) |
Bugfix #7573
NLA Window, Strip blending mode "Add" didn't work at all.
It was using very bad quaternion addition. Replaced with proper code.
For devs; new is the function QuatMulFac(quat, factor) which allows to
multiply a rotation with a value (make it rotate more or less)
Diffstat (limited to 'source/blender/blenkernel/intern/action.c')
-rw-r--r-- | source/blender/blenkernel/intern/action.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index bd5e5d612c6..e30d7dd4ac9 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -607,8 +607,10 @@ void blend_poses(bPose *dst, bPose *src, float srcweight, short mode) QUATCOPY(squat, schan->quat); if(mode==ACTSTRIPMODE_BLEND) QuatInterpol(dchan->quat, dquat, squat, srcweight); - else - QuatAdd(dchan->quat, dquat, squat, srcweight); + else { + QuatMulFac(squat, srcweight); + QuatMul(dchan->quat, dquat, squat); + } NormalQuat (dchan->quat); } |