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_array.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_array.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_array.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c index 5fdfe1ef7cf..e0ae1cc3500 100644 --- a/source/blender/modifiers/intern/MOD_array.c +++ b/source/blender/modifiers/intern/MOD_array.c @@ -359,7 +359,6 @@ static Mesh *arrayModifier_doArray( int first_chunk_start, first_chunk_nverts, last_chunk_start, last_chunk_nverts; Mesh *result, *start_cap_mesh = NULL, *end_cap_mesh = NULL; - bool start_cap_mesh_free, end_cap_mesh_free; int *vgroup_start_cap_remap = NULL; int vgroup_start_cap_remap_len = 0; @@ -378,7 +377,7 @@ static Mesh *arrayModifier_doArray( vgroup_start_cap_remap = BKE_object_defgroup_index_map_create( start_cap_ob, ctx->object, &vgroup_start_cap_remap_len); - start_cap_mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(start_cap_ob, &start_cap_mesh_free); + start_cap_mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(start_cap_ob, false); if (start_cap_mesh) { start_cap_nverts = start_cap_mesh->totvert; start_cap_nedges = start_cap_mesh->totedge; @@ -391,7 +390,7 @@ static Mesh *arrayModifier_doArray( vgroup_end_cap_remap = BKE_object_defgroup_index_map_create( end_cap_ob, ctx->object, &vgroup_end_cap_remap_len); - end_cap_mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(end_cap_ob, &end_cap_mesh_free); + end_cap_mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(end_cap_ob, false); if (end_cap_mesh) { end_cap_nverts = end_cap_mesh->totvert; end_cap_nedges = end_cap_mesh->totedge; @@ -727,12 +726,6 @@ static Mesh *arrayModifier_doArray( if (vgroup_end_cap_remap) { MEM_freeN(vgroup_end_cap_remap); } - if (start_cap_mesh != NULL && start_cap_mesh_free) { - BKE_id_free(NULL, start_cap_mesh); - } - if (end_cap_mesh != NULL && end_cap_mesh_free) { - BKE_id_free(NULL, end_cap_mesh); - } return result; } |