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:
authorTon Roosendaal <ton@blender.org>2007-11-22 23:25:59 +0300
committerTon Roosendaal <ton@blender.org>2007-11-22 23:25:59 +0300
commita8aaec6f210626d2beb2d23f297c1a412b047e8e (patch)
tree95c8b7cce58431b7928a3e0a12b527d8f0828cb5 /source/blender/blenkernel/intern/action.c
parenta03836312463813e366f1043093625dafd3ebd2b (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.c6
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);
}