From 5977ed34709ce56823ef755d9c702b8cebba1edd Mon Sep 17 00:00:00 2001 From: Philipp Oeser Date: Wed, 8 Jan 2020 13:25:38 +0100 Subject: Fix T68489: Shrinkwrap modifier with project not working for curves rB4cde92303f3d made a MESH-only check (but that is no longer mandatory since the Mesh is fetched by MOD_deform_mesh_eval_get instead of ctx- >object->data now...). This would fail for projecting beveled curves (resulting mesh missing), now also get the mesh for curves if we use MOD_SHRINKWRAP_PROJECT (and only then). Maniphest Tasks: T68489 Differential Revision: https://developer.blender.org/D6548 --- source/blender/modifiers/intern/MOD_shrinkwrap.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender/modifiers/intern/MOD_shrinkwrap.c') diff --git a/source/blender/modifiers/intern/MOD_shrinkwrap.c b/source/blender/modifiers/intern/MOD_shrinkwrap.c index b8d0b19b7bf..6e4b0edb004 100644 --- a/source/blender/modifiers/intern/MOD_shrinkwrap.c +++ b/source/blender/modifiers/intern/MOD_shrinkwrap.c @@ -108,8 +108,10 @@ static void deformVerts(ModifierData *md, struct Scene *scene = DEG_get_evaluated_scene(ctx->depsgraph); Mesh *mesh_src = NULL; - if (ctx->object->type == OB_MESH) { - /* mesh_src is only needed for vgroups. */ + if (ELEM(ctx->object->type, OB_MESH, OB_LATTICE) || + (swmd->shrinkType == MOD_SHRINKWRAP_PROJECT)) { + /* mesh_src is needed for vgroups, but also used as ShrinkwrapCalcData.vert when projecting. + * Avoid time-consuming mesh conversion for curves when not projecting. */ mesh_src = MOD_deform_mesh_eval_get(ctx->object, NULL, mesh, NULL, numVerts, false, false); } -- cgit v1.2.3