diff options
author | Henrik Dick <weasel> | 2021-09-17 14:29:05 +0300 |
---|---|---|
committer | Antonio Vazquez <blendergit@gmail.com> | 2021-09-17 14:29:48 +0300 |
commit | 9a41b44197a61622446be7b3b6bf59933f8f7694 (patch) | |
tree | 20a8b4db3be296d39a85226fb0eeef0746b1006b /source/blender/blenkernel/intern/gpencil.c | |
parent | e1d7ce005f9f9ca84befdd531014d498966f27fc (diff) |
Fix T91481: Grease Pencil Layer Double Transformations
Use the inverse of the grease pencil object. This patch fixes the issue for bones and objects.
Maniphest Tasks: T91481
Differential Revision: https://developer.blender.org/D12539
Diffstat (limited to 'source/blender/blenkernel/intern/gpencil.c')
-rw-r--r-- | source/blender/blenkernel/intern/gpencil.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index a143645c2ee..82a44afbbb1 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -3063,13 +3063,12 @@ void BKE_gpencil_update_layer_transforms(const Depsgraph *depsgraph, Object *ob) Object *ob_parent = DEG_get_evaluated_object(depsgraph, gpl->parent); /* calculate new matrix */ if (ELEM(gpl->partype, PAROBJECT, PARSKEL)) { - copy_m4_m4(cur_mat, ob_parent->obmat); + mul_m4_m4m4(cur_mat, ob->imat, ob_parent->obmat); } else if (gpl->partype == PARBONE) { bPoseChannel *pchan = BKE_pose_channel_find_name(ob_parent->pose, gpl->parsubstr); if (pchan != NULL) { - copy_m4_m4(cur_mat, ob->imat); - mul_m4_m4m4(cur_mat, ob_parent->obmat, pchan->pose_mat); + mul_m4_series(cur_mat, ob->imat, ob_parent->obmat, pchan->pose_mat); } else { unit_m4(cur_mat); |