diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2020-03-30 14:06:09 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2020-03-30 14:26:26 +0300 |
commit | a6a9a12e8f32058a52d88a4846db906782f0cafe (patch) | |
tree | b5fe4bf4c17a166d435ae9bfe95015031b2a3772 /source/blender/editors/transform/transform_convert_armature.c | |
parent | ef7229d69a752d7caa529b4aefcb093d21d9e9d2 (diff) |
Fix T75142: No autokeying with pose mode X-Mirror
This was caused by the removal of some `BONE_TRANSFORM_MIRROR` flag
handling in rBde530a95dc7b482dc22c933b9b8b2a98c79b5663. I simply
restored those lines that caused this issue.
Diffstat (limited to 'source/blender/editors/transform/transform_convert_armature.c')
-rw-r--r-- | source/blender/editors/transform/transform_convert_armature.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform_convert_armature.c b/source/blender/editors/transform/transform_convert_armature.c index 4e8e0cc2369..53dd54d4b53 100644 --- a/source/blender/editors/transform/transform_convert_armature.c +++ b/source/blender/editors/transform/transform_convert_armature.c @@ -530,6 +530,12 @@ void pose_transform_mirror_update(TransInfo *t, TransDataContainer *tc, Object * unit_m4(flip_mtx); flip_mtx[0][0] = -1; + for (bPoseChannel *pchan_orig = ob->pose->chanbase.first; pchan_orig; + pchan_orig = pchan_orig->next) { + /* Clear the MIRROR flag from previous runs. */ + pchan_orig->bone->flag &= ~BONE_TRANSFORM_MIRROR; + } + bPose *pose = ob->pose; PoseInitData_Mirror *pid = NULL; if ((t->mode != TFM_BONESIZE) && (pose->flag & POSE_MIRROR_RELATIVE)) { @@ -565,6 +571,9 @@ void pose_transform_mirror_update(TransInfo *t, TransDataContainer *tc, Object * } BKE_pchan_apply_mat4(pchan, pchan_mtx_final, false); + /* Set flag to let autokeyframe know to keyframe the mirrred bone. */ + pchan->bone->flag |= BONE_TRANSFORM_MIRROR; + /* In this case we can do target-less IK grabbing. */ if (t->mode == TFM_TRANSLATION) { bKinematicConstraint *data = has_targetless_ik(pchan); |