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:
@@ -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);
|
||||
|
Reference in New Issue
Block a user