static void deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts, ModifierApplyFlag UNUSED(flag)) { DerivedMesh *dm = get_dm(ob, NULL, derivedData, NULL, false, false); correctivesmooth_modifier_do(md, ob, dm, vertexCos, (unsigned int)numVerts, NULL); if (dm != derivedData) { dm->release(dm); } }
static void deformVertsEM( ModifierData *md, Object *ob, struct BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { DerivedMesh *dm = get_dm(ob, editData, derivedData, NULL, false, false); correctivesmooth_modifier_do(md, ob, dm, vertexCos, (unsigned int)numVerts, editData); if (dm != derivedData) { dm->release(dm); } }
static void deformVerts(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh, float (*vertexCos)[3], int numVerts) { Mesh *mesh_src = MOD_deform_mesh_eval_get(ctx->object, NULL, mesh, NULL, numVerts, false, false); correctivesmooth_modifier_do( md, ctx->depsgraph, ctx->object, mesh_src, vertexCos, (unsigned int)numVerts, NULL); if (mesh_src != mesh) { BKE_id_free(NULL, mesh_src); } }