From a5cd1799fc5a1d458a8d985776d829ce4eab0c23 Mon Sep 17 00:00:00 2001 From: Antonio Vazquez Date: Sun, 13 Mar 2022 15:50:41 +0100 Subject: Cleanup: Deduplicate code in Multiply modifier --- .../gpencil_modifiers/intern/MOD_gpencilmultiply.c | 61 +++++----------------- 1 file changed, 14 insertions(+), 47 deletions(-) (limited to 'source') diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c index 487ff956da6..d80e32feb2e 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c @@ -175,53 +175,6 @@ static void duplicateStroke(Object *ob, MEM_freeN(t2_array); } -static void bakeModifier(Main *UNUSED(bmain), - Depsgraph *UNUSED(depsgraph), - GpencilModifierData *md, - Object *ob) -{ - bGPdata *gpd = ob->data; - - LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) { - LISTBASE_FOREACH (bGPDframe *, gpf, &gpl->frames) { - ListBase duplicates = {0}; - MultiplyGpencilModifierData *mmd = (MultiplyGpencilModifierData *)md; - bGPDstroke *gps; - for (gps = gpf->strokes.first; gps; gps = gps->next) { - if (!is_stroke_affected_by_modifier(ob, - mmd->layername, - mmd->material, - mmd->pass_index, - mmd->layer_pass, - 1, - gpl, - gps, - mmd->flag & GP_MIRROR_INVERT_LAYER, - mmd->flag & GP_MIRROR_INVERT_PASS, - mmd->flag & GP_MIRROR_INVERT_LAYERPASS, - mmd->flag & GP_MIRROR_INVERT_MATERIAL)) { - continue; - } - if (mmd->duplications > 0) { - duplicateStroke(ob, - gps, - mmd->duplications, - mmd->distance, - mmd->offset, - &duplicates, - mmd->flags & GP_MULTIPLY_ENABLE_FADING, - mmd->fading_center, - mmd->fading_thickness, - mmd->fading_opacity); - } - } - if (!BLI_listbase_is_empty(&duplicates)) { - BLI_movelisttolist(&gpf->strokes, &duplicates); - } - } - } -} - /* -------------------------------- */ static void generate_geometry(GpencilModifierData *md, Object *ob, bGPDlayer *gpl, bGPDframe *gpf) { @@ -261,6 +214,20 @@ static void generate_geometry(GpencilModifierData *md, Object *ob, bGPDlayer *gp } } +static void bakeModifier(Main *UNUSED(bmain), + Depsgraph *UNUSED(depsgraph), + GpencilModifierData *md, + Object *ob) +{ + bGPdata *gpd = ob->data; + + LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) { + LISTBASE_FOREACH (bGPDframe *, gpf, &gpl->frames) { + generate_geometry(md, ob, gpl, gpf); + } + } +} + /* Generic "generateStrokes" callback */ static void generateStrokes(GpencilModifierData *md, Depsgraph *depsgraph, Object *ob) { -- cgit v1.2.3