diff options
author | Antonio Vazquez <blendergit@gmail.com> | 2022-03-13 17:50:41 +0300 |
---|---|---|
committer | Antonio Vazquez <blendergit@gmail.com> | 2022-03-14 13:35:26 +0300 |
commit | a5cd1799fc5a1d458a8d985776d829ce4eab0c23 (patch) | |
tree | 1ee2e789a682f4aa5da2d5b22b7ded45280d544e /source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c | |
parent | 8eb189925e028a480d13e43d60216b98b73cfa16 (diff) |
Cleanup: Deduplicate code in Multiply modifier
Diffstat (limited to 'source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c')
-rw-r--r-- | source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c | 61 |
1 files changed, 14 insertions, 47 deletions
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) { |