diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2020-01-08 15:25:38 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2020-01-15 11:56:56 +0300 |
commit | 5977ed34709ce56823ef755d9c702b8cebba1edd (patch) | |
tree | 85f45175c30d34a9611806f499262e1d28c98122 /source | |
parent | d68346eacfa8647b42882e2d588b9ef365c714c4 (diff) |
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
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/modifiers/intern/MOD_shrinkwrap.c | 6 |
1 files changed, 4 insertions, 2 deletions
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); } |