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>2006-12-13 11:50:11 +0300
committerTon Roosendaal <ton@blender.org>2006-12-13 11:50:11 +0300
commitae7fcb58bccec94f5e72c5019402d66764352198 (patch)
tree9ef2bfbfa9e51dee400e608394430026b8327a2c /source/blender/blenkernel/intern/action.c
parent1031caafc1c5c956e070165840207aca2d402e77 (diff)
Armature Proxy bugfix: synchronizing the pose went wrong when the proxy
had new dependencies added internally (like constraints), changing the evaluation order for pose channels. My optimized code didn't like it, so now it falls back to a reliable slower method. Bug showed as totally messed up characters for proxies... Also: increased range for 3D Window properties clip-start/end, this is still a bad construct though...
Diffstat (limited to 'source/blender/blenkernel/intern/action.c')
-rw-r--r--source/blender/blenkernel/intern/action.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c
index 9f42e682e82..23f6fa28d76 100644
--- a/source/blender/blenkernel/intern/action.c
+++ b/source/blender/blenkernel/intern/action.c
@@ -730,14 +730,15 @@ void copy_pose_result(bPose *to, bPose *from)
return;
}
- pchanto= to->chanbase.first;
- pchanfrom= from->chanbase.first;
- for(; pchanto && pchanfrom; pchanto= pchanto->next, pchanfrom= pchanfrom->next) {
- Mat4CpyMat4(pchanto->pose_mat, pchanfrom->pose_mat);
- Mat4CpyMat4(pchanto->chan_mat, pchanfrom->chan_mat);
- VECCOPY(pchanto->pose_head, pchanfrom->pose_head);
- VECCOPY(pchanto->pose_tail, pchanfrom->pose_tail);
- pchanto->flag= pchanfrom->flag;
+ for(pchanfrom= from->chanbase.first; pchanfrom; pchanfrom= pchanfrom->next) {
+ pchanto= get_pose_channel(to, pchanfrom->name);
+ if(pchanto) {
+ Mat4CpyMat4(pchanto->pose_mat, pchanfrom->pose_mat);
+ Mat4CpyMat4(pchanto->chan_mat, pchanfrom->chan_mat);
+ VECCOPY(pchanto->pose_head, pchanfrom->pose_head);
+ VECCOPY(pchanto->pose_tail, pchanfrom->pose_tail);
+ pchanto->flag= pchanfrom->flag;
+ }
}
}