[Bf-blender-cvs] [a14ee85ccda] master: Fix T90127: Merge Down layer doesn't take the transform location into account

Antonio Vazquez noreply at git.blender.org
Mon Jul 26 17:20:12 CEST 2021


Commit: a14ee85ccda63459395b6dc1b18c597e425b261a
Author: Antonio Vazquez
Date:   Mon Jul 26 17:20:00 2021 +0200
Branches: master
https://developer.blender.org/rBa14ee85ccda63459395b6dc1b18c597e425b261a

Fix T90127: Merge Down layer doesn't take the transform location into account

Now the layer transformation is applied before the merge.

===================================================================

M	source/blender/editors/gpencil/gpencil_data.c

===================================================================

diff --git a/source/blender/editors/gpencil/gpencil_data.c b/source/blender/editors/gpencil/gpencil_data.c
index b1e57079d28..48026ae1bda 100644
--- a/source/blender/editors/gpencil/gpencil_data.c
+++ b/source/blender/editors/gpencil/gpencil_data.c
@@ -1355,6 +1355,14 @@ static int gpencil_merge_layer_exec(bContext *C, wmOperator *op)
   LISTBASE_FOREACH (bGPDframe *, gpf_src, &gpl_src->frames) {
     /* Try to find frame in destination layer hash table. */
     bGPDframe *gpf_dst = BLI_ghash_lookup(gh_frames_dst, POINTER_FROM_INT(gpf_src->framenum));
+    /* Apply layer transformation. */
+    LISTBASE_FOREACH (bGPDstroke *, gps_src, &gpf_src->strokes) {
+      for (int p = 0; p < gps_src->totpoints; p++) {
+        const bGPDspoint *pt = &gps_src->points[p];
+        mul_v3_m4v3(&pt->x, gpl_src->layer_mat, &pt->x);
+      }
+    }
+
     /* Add to tail all strokes. */
     if (gpf_dst) {
       BLI_movelisttolist(&gpf_dst->strokes, &gpf_src->strokes);



More information about the Bf-blender-cvs mailing list