Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpencil_modifiers/intern/MOD_gpencilarray.c
| Show First 20 Lines • Show All 71 Lines • ▼ Show 20 Lines | static void initData(GpencilModifierData *md) | ||||
| gpmd->shift[0] = 1.0f; | gpmd->shift[0] = 1.0f; | ||||
| gpmd->shift[1] = 0.0f; | gpmd->shift[1] = 0.0f; | ||||
| gpmd->shift[2] = 0.0f; | gpmd->shift[2] = 0.0f; | ||||
| zero_v3(gpmd->offset); | zero_v3(gpmd->offset); | ||||
| zero_v3(gpmd->rnd_scale); | zero_v3(gpmd->rnd_scale); | ||||
| gpmd->object = NULL; | gpmd->object = NULL; | ||||
| gpmd->flag |= GP_ARRAY_USE_RELATIVE; | gpmd->flag |= GP_ARRAY_USE_RELATIVE; | ||||
| gpmd->seed = 1; | gpmd->seed = 1; | ||||
| gpmd->layername[0] = '\0'; | |||||
| gpmd->material = NULL; | |||||
| } | } | ||||
| static void copyData(const GpencilModifierData *md, GpencilModifierData *target) | static void copyData(const GpencilModifierData *md, GpencilModifierData *target) | ||||
| { | { | ||||
| BKE_gpencil_modifier_copydata_generic(md, target); | BKE_gpencil_modifier_copydata_generic(md, target); | ||||
| } | } | ||||
| /* -------------------------------- */ | /* -------------------------------- */ | ||||
| ▲ Show 20 Lines • Show All 70 Lines • ▼ Show 20 Lines | static void generate_geometry(GpencilModifierData *md, | ||||
| LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) { | LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) { | ||||
| bGPDframe *gpf = BKE_gpencil_frame_retime_get(depsgraph, scene, ob, gpl); | bGPDframe *gpf = BKE_gpencil_frame_retime_get(depsgraph, scene, ob, gpl); | ||||
| if (gpf == NULL) { | if (gpf == NULL) { | ||||
| continue; | continue; | ||||
| } | } | ||||
| LISTBASE_FOREACH (bGPDstroke *, gps, &gpf->strokes) { | LISTBASE_FOREACH (bGPDstroke *, gps, &gpf->strokes) { | ||||
| if (is_stroke_affected_by_modifier(ob, | if (is_stroke_affected_by_modifier(ob, | ||||
| mmd->layername, | mmd->layername, | ||||
| mmd->materialname, | mmd->material, | ||||
| mmd->pass_index, | mmd->pass_index, | ||||
| mmd->layer_pass, | mmd->layer_pass, | ||||
| 1, | 1, | ||||
| gpl, | gpl, | ||||
| gps, | gps, | ||||
| mmd->flag & GP_ARRAY_INVERT_LAYER, | mmd->flag & GP_ARRAY_INVERT_LAYER, | ||||
| mmd->flag & GP_ARRAY_INVERT_PASS, | mmd->flag & GP_ARRAY_INVERT_PASS, | ||||
| mmd->flag & GP_ARRAY_INVERT_LAYERPASS, | mmd->flag & GP_ARRAY_INVERT_LAYERPASS, | ||||
| ▲ Show 20 Lines • Show All 140 Lines • ▼ Show 20 Lines | static void foreachObjectLink(GpencilModifierData *md, | ||||
| ObjectWalkFunc walk, | ObjectWalkFunc walk, | ||||
| void *userData) | void *userData) | ||||
| { | { | ||||
| ArrayGpencilModifierData *mmd = (ArrayGpencilModifierData *)md; | ArrayGpencilModifierData *mmd = (ArrayGpencilModifierData *)md; | ||||
| walk(userData, ob, &mmd->object, IDWALK_CB_NOP); | walk(userData, ob, &mmd->object, IDWALK_CB_NOP); | ||||
| } | } | ||||
| static void foreachIDLink(GpencilModifierData *md, Object *ob, IDWalkFunc walk, void *userData) | |||||
| { | |||||
| ArrayGpencilModifierData *mmd = (ArrayGpencilModifierData *)md; | |||||
| walk(userData, ob, (ID **)&mmd->material, IDWALK_CB_NOP); | |||||
| foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData); | |||||
| } | |||||
| GpencilModifierTypeInfo modifierType_Gpencil_Array = { | GpencilModifierTypeInfo modifierType_Gpencil_Array = { | ||||
| /* name */ "Array", | /* name */ "Array", | ||||
| /* structName */ "ArrayGpencilModifierData", | /* structName */ "ArrayGpencilModifierData", | ||||
| /* structSize */ sizeof(ArrayGpencilModifierData), | /* structSize */ sizeof(ArrayGpencilModifierData), | ||||
| /* type */ eGpencilModifierTypeType_Gpencil, | /* type */ eGpencilModifierTypeType_Gpencil, | ||||
| /* flags */ eGpencilModifierTypeFlag_SupportsEditmode, | /* flags */ eGpencilModifierTypeFlag_SupportsEditmode, | ||||
| /* copyData */ copyData, | /* copyData */ copyData, | ||||
| /* deformStroke */ NULL, | /* deformStroke */ NULL, | ||||
| /* generateStrokes */ generateStrokes, | /* generateStrokes */ generateStrokes, | ||||
| /* bakeModifier */ bakeModifier, | /* bakeModifier */ bakeModifier, | ||||
| /* remapTime */ NULL, | /* remapTime */ NULL, | ||||
| /* initData */ initData, | /* initData */ initData, | ||||
| /* freeData */ NULL, | /* freeData */ NULL, | ||||
| /* isDisabled */ NULL, | /* isDisabled */ NULL, | ||||
| /* updateDepsgraph */ updateDepsgraph, | /* updateDepsgraph */ updateDepsgraph, | ||||
| /* dependsOnTime */ NULL, | /* dependsOnTime */ NULL, | ||||
| /* foreachObjectLink */ foreachObjectLink, | /* foreachObjectLink */ foreachObjectLink, | ||||
| /* foreachIDLink */ NULL, | /* foreachIDLink */ foreachIDLink, | ||||
| /* foreachTexLink */ NULL, | /* foreachTexLink */ NULL, | ||||
| }; | }; | ||||