Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpencil_modifiers/intern/MOD_gpencilsmooth.c
| Show All 40 Lines | |||||
| static void initData(GpencilModifierData *md) | static void initData(GpencilModifierData *md) | ||||
| { | { | ||||
| SmoothGpencilModifierData *gpmd = (SmoothGpencilModifierData *)md; | SmoothGpencilModifierData *gpmd = (SmoothGpencilModifierData *)md; | ||||
| gpmd->pass_index = 0; | gpmd->pass_index = 0; | ||||
| gpmd->flag |= GP_SMOOTH_MOD_LOCATION; | gpmd->flag |= GP_SMOOTH_MOD_LOCATION; | ||||
| gpmd->factor = 0.5f; | gpmd->factor = 0.5f; | ||||
| gpmd->layername[0] = '\0'; | gpmd->layername[0] = '\0'; | ||||
| gpmd->materialname[0] = '\0'; | |||||
| gpmd->vgname[0] = '\0'; | gpmd->vgname[0] = '\0'; | ||||
| gpmd->step = 1; | gpmd->step = 1; | ||||
| } | } | ||||
| 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); | ||||
| } | } | ||||
| /* aply smooth effect based on stroke direction */ | /* aply smooth effect based on stroke direction */ | ||||
| static void deformStroke(GpencilModifierData *md, | static void deformStroke(GpencilModifierData *md, | ||||
| Depsgraph *UNUSED(depsgraph), | Depsgraph *UNUSED(depsgraph), | ||||
| Object *ob, | Object *ob, | ||||
| bGPDlayer *gpl, | bGPDlayer *gpl, | ||||
| bGPDframe *UNUSED(gpf), | bGPDframe *UNUSED(gpf), | ||||
| bGPDstroke *gps) | bGPDstroke *gps) | ||||
| { | { | ||||
| SmoothGpencilModifierData *mmd = (SmoothGpencilModifierData *)md; | SmoothGpencilModifierData *mmd = (SmoothGpencilModifierData *)md; | ||||
| const int def_nr = defgroup_name_index(ob, mmd->vgname); | const int def_nr = defgroup_name_index(ob, mmd->vgname); | ||||
| if (!is_stroke_affected_by_modifier(ob, | if (!is_stroke_affected_by_modifier(ob, | ||||
| mmd->layername, | mmd->layername, | ||||
| mmd->materialname, | |||||
| mmd->pass_index, | mmd->pass_index, | ||||
| mmd->layer_pass, | mmd->layer_pass, | ||||
| 3, | 3, | ||||
| gpl, | gpl, | ||||
| gps, | gps, | ||||
| mmd->flag & GP_SMOOTH_INVERT_LAYER, | mmd->flag & GP_SMOOTH_INVERT_LAYER, | ||||
| mmd->flag & GP_SMOOTH_INVERT_PASS, | mmd->flag & GP_SMOOTH_INVERT_PASS, | ||||
| mmd->flag & GP_SMOOTH_INVERT_LAYERPASS)) { | mmd->flag & GP_SMOOTH_INVERT_LAYERPASS, | ||||
| mmd->flag & GP_SMOOTH_INVERT_MATERIAL)) { | |||||
| return; | return; | ||||
| } | } | ||||
| /* smooth stroke */ | /* smooth stroke */ | ||||
| if (mmd->factor > 0.0f) { | if (mmd->factor > 0.0f) { | ||||
| for (int r = 0; r < mmd->step; r++) { | for (int r = 0; r < mmd->step; r++) { | ||||
| for (int i = 0; i < gps->totpoints; i++) { | for (int i = 0; i < gps->totpoints; i++) { | ||||
| MDeformVert *dvert = gps->dvert != NULL ? &gps->dvert[i] : NULL; | MDeformVert *dvert = gps->dvert != NULL ? &gps->dvert[i] : NULL; | ||||
| ▲ Show 20 Lines • Show All 70 Lines • Show Last 20 Lines | |||||