diff options
author | Ton Roosendaal <ton@blender.org> | 2006-12-13 11:50:11 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-12-13 11:50:11 +0300 |
commit | ae7fcb58bccec94f5e72c5019402d66764352198 (patch) | |
tree | 9ef2bfbfa9e51dee400e608394430026b8327a2c /source/blender/blenkernel/intern/action.c | |
parent | 1031caafc1c5c956e070165840207aca2d402e77 (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.c | 17 |
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; + } } } |