diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-10-17 17:15:34 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-10-17 17:20:14 +0300 |
commit | ade2129f14dbc7a7e60b9fcde7381a5ab53b0035 (patch) | |
tree | ccad4f81a9c49fb154a99fad7c93443788b8cd03 /source | |
parent | 9054b834028fc5c0e67f5225ad09dd7107484951 (diff) |
Fix T70901: Pose bone with Armature Constraint moves in wrong direction
A regression since previous fix for proxy. Restore old code for copying
values to an original pose channel.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/armature_update.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/armature_update.c b/source/blender/blenkernel/intern/armature_update.c index 7c68c8319a5..e30accf6279 100644 --- a/source/blender/blenkernel/intern/armature_update.c +++ b/source/blender/blenkernel/intern/armature_update.c @@ -740,7 +740,12 @@ static void pose_channel_flush_to_orig_if_needed(struct Depsgraph *depsgraph, return; } bPoseChannel *pchan_orig = pchan->orig_pchan; - BKE_pose_copy_pchan_result(pchan_orig, pchan); + /* TODO(sergey): Using BKE_pose_copy_pchan_result() introduces T70901, but why? */ + copy_m4_m4(pchan_orig->pose_mat, pchan->pose_mat); + copy_m4_m4(pchan_orig->chan_mat, pchan->chan_mat); + copy_v3_v3(pchan_orig->pose_head, pchan->pose_mat[3]); + copy_m4_m4(pchan_orig->constinv, pchan->constinv); + copy_v3_v3(pchan_orig->pose_tail, pchan->pose_tail); } void BKE_pose_bone_done(struct Depsgraph *depsgraph, struct Object *object, int pchan_index) |