diff options
Diffstat (limited to 'source/blender/modifiers/intern/MOD_laplaciansmooth.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_laplaciansmooth.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/source/blender/modifiers/intern/MOD_laplaciansmooth.c b/source/blender/modifiers/intern/MOD_laplaciansmooth.c index e9f62713cd1..b683003baad 100644 --- a/source/blender/modifiers/intern/MOD_laplaciansmooth.c +++ b/source/blender/modifiers/intern/MOD_laplaciansmooth.c @@ -495,17 +495,17 @@ static CustomDataMask required_data_mask(Object *UNUSED(ob), ModifierData *md) return dataMask; } -static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts, ModifierApplyFlag UNUSED(flag)) +static void deformVerts(ModifierData *md, const ModifierEvalContext *ctx, DerivedMesh *derivedData, + float (*vertexCos)[3], int numVerts) { DerivedMesh *dm; if (numVerts == 0) return; - dm = get_dm(ob, NULL, derivedData, NULL, false, false); + dm = get_dm(ctx->object, NULL, derivedData, NULL, false, false); - laplaciansmoothModifier_do((LaplacianSmoothModifierData *)md, ob, dm, + laplaciansmoothModifier_do((LaplacianSmoothModifierData *)md, ctx->object, dm, vertexCos, numVerts); if (dm != derivedData) @@ -513,7 +513,7 @@ static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, } static void deformVertsEM( - ModifierData *md, Object *ob, struct BMEditMesh *editData, + ModifierData *md, const ModifierEvalContext *ctx, struct BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm; @@ -521,9 +521,9 @@ static void deformVertsEM( if (numVerts == 0) return; - dm = get_dm(ob, editData, derivedData, NULL, false, false); + dm = get_dm(ctx->object, editData, derivedData, NULL, false, false); - laplaciansmoothModifier_do((LaplacianSmoothModifierData *)md, ob, dm, + laplaciansmoothModifier_do((LaplacianSmoothModifierData *)md, ctx->object, dm, vertexCos, numVerts); if (dm != derivedData) @@ -539,18 +539,26 @@ ModifierTypeInfo modifierType_LaplacianSmooth = { /* flags */ eModifierTypeFlag_AcceptsMesh | eModifierTypeFlag_SupportsEditmode, - /* copy_data */ modifier_copyData_generic, - /* deformVerts */ deformVerts, + /* copyData */ modifier_copyData_generic, + + /* deformVerts_DM */ deformVerts, + /* deformMatrices_DM */ NULL, + /* deformVertsEM_DM */ deformVertsEM, + /* deformMatricesEM_DM*/NULL, + /* applyModifier_DM */ NULL, + /* applyModifierEM_DM */NULL, + + /* deformVerts */ NULL, /* deformMatrices */ NULL, - /* deformVertsEM */ deformVertsEM, + /* deformVertsEM */ NULL, /* deformMatricesEM */ NULL, /* applyModifier */ NULL, /* applyModifierEM */ NULL, + /* initData */ init_data, /* requiredDataMask */ required_data_mask, /* freeData */ NULL, /* isDisabled */ is_disabled, - /* updateDepgraph */ NULL, /* updateDepsgraph */ NULL, /* dependsOnTime */ NULL, /* dependsOnNormals */ NULL, |