Cleanup: Deduplicate code in Multiply modifier

This commit is contained in:
Antonio Vazquez 2022-03-13 15:50:41 +01:00
parent 8eb189925e
commit a5cd1799fc
1 changed files with 14 additions and 47 deletions

View File

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