diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2019-02-11 22:20:12 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2019-02-11 22:24:07 +0300 |
commit | 7cca0f9998a3d12e0046009c643038c9faa45767 (patch) | |
tree | 2178763ed908b018c29408268a612559fab8ad34 /source/blender/modifiers/intern/MOD_meshdeform.c | |
parent | d8888b2f48bc3146eeb490de4544fadd5fc37386 (diff) |
Fix T61391: MeshDeform Modifier does not work on a solidified planar mesh.
`BKE_modifier_get_evaluated_mesh_from_evaluated_object()` used by
modifiers needing access to other objects' geometry probably skipped out
of the radar when cage and final evaluated meshes were added to
BMEditMesh? In any case, we do not need to duplicate (and then free!) a
temp mesh from editdata anymore, and we can even add instead a parameter
to get cage instead of final. Also makes modifiers code a bit simpler.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_meshdeform.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_meshdeform.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c index d789f964b6e..8013a015997 100644 --- a/source/blender/modifiers/intern/MOD_meshdeform.c +++ b/source/blender/modifiers/intern/MOD_meshdeform.c @@ -279,7 +279,6 @@ static void meshdeformModifier_do( int a, totvert, totcagevert, defgrp_index; float (*cagecos)[3] = NULL; MeshdeformUserdata data; - bool free_cagemesh = false; static int recursive_bind_sentinel = 0; @@ -297,7 +296,7 @@ static void meshdeformModifier_do( * We'll support this case once granular dependency graph is landed. */ Object *ob_target = DEG_get_evaluated_object(ctx->depsgraph, mmd->object); - cagemesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(ob_target, &free_cagemesh); + cagemesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(ob_target, false); #if 0 /* This shall not be needed if we always get evaluated target object... */ if (cagemesh == NULL && mmd->bindcagecos == NULL && ob == DEG_get_original_object(ob)) { /* Special case, binding happens outside of depsgraph evaluation, so we can build our own @@ -399,9 +398,6 @@ static void meshdeformModifier_do( finally: MEM_SAFE_FREE(dco); MEM_SAFE_FREE(cagecos); - if (cagemesh != NULL && free_cagemesh) { - BKE_id_free(NULL, cagemesh); - } } static void deformVerts( |