From 2a578b37b3144ab4df7c605a95fabb699799b0dd Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Tue, 27 Nov 2018 20:10:41 +0100 Subject: Modifiers: cleanup/harmonize deform modifiers code re. mesh source. Also fixes a few issues (like meshdeform's EM variant not using editmesh data), and adds a few optimizations (like only generating that source mesh when we do have a vgroup defined in parameters, for modifiers only using it to access vgroup)... --- source/blender/modifiers/intern/MOD_curve.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'source/blender/modifiers/intern/MOD_curve.c') diff --git a/source/blender/modifiers/intern/MOD_curve.c b/source/blender/modifiers/intern/MOD_curve.c index 6a0b276f0d5..e9a3dd3810b 100644 --- a/source/blender/modifiers/intern/MOD_curve.c +++ b/source/blender/modifiers/intern/MOD_curve.c @@ -114,10 +114,9 @@ static void deformVerts( CurveModifierData *cmd = (CurveModifierData *) md; Mesh *mesh_src = NULL; - if (ctx->object->type == OB_MESH) { + if (ctx->object->type == OB_MESH && cmd->name[0] != '\0') { /* mesh_src is only needed for vgroups. */ mesh_src = MOD_deform_mesh_eval_get(ctx->object, NULL, mesh, NULL, numVerts, false, false); - BLI_assert(mesh_src->totvert == numVerts); } struct MDeformVert *dvert = NULL; @@ -143,11 +142,9 @@ static void deformVertsEM( { Mesh *mesh_src = MOD_deform_mesh_eval_get(ctx->object, em, mesh, NULL, numVerts, false, false); - BLI_assert(mesh_src->totvert == numVerts); - deformVerts(md, ctx, mesh_src, vertexCos, numVerts); - if (mesh_src != mesh) { + if (!ELEM(mesh_src, NULL, mesh)) { BKE_id_free(NULL, mesh_src); } } -- cgit v1.2.3