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

Now the layer transformation is applied before the merge.
This commit is contained in:
Antonio Vazquez
2021-07-26 17:20:00 +02:00
parent 231b313c55
commit a14ee85ccd

View File

@@ -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);