Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Oeser <info@graphics-engineer.com>2020-01-08 15:25:38 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2020-01-15 11:56:56 +0300
commit5977ed34709ce56823ef755d9c702b8cebba1edd (patch)
tree85f45175c30d34a9611806f499262e1d28c98122 /source/blender/modifiers/intern/MOD_shrinkwrap.c
parentd68346eacfa8647b42882e2d588b9ef365c714c4 (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/blender/modifiers/intern/MOD_shrinkwrap.c')
-rw-r--r--source/blender/modifiers/intern/MOD_shrinkwrap.c6
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);
}