diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c index a2699e767e9..7fe3842e3e4 100644 --- a/source/blender/blenkernel/intern/shrinkwrap.c +++ b/source/blender/blenkernel/intern/shrinkwrap.c @@ -659,6 +659,7 @@ static void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *calc) /* Prepare data to retrieve the direction in which we should project each vertex */ if (calc->smd->projAxis == MOD_SHRINKWRAP_PROJECT_OVER_NORMAL) { if (calc->vert == NULL) { + /* this will happen for curves. */ return; } } diff --git a/source/blender/modifiers/intern/MOD_shrinkwrap.c b/source/blender/modifiers/intern/MOD_shrinkwrap.c index b8d0b19b7bf..48bdb5361aa 100644 --- a/source/blender/modifiers/intern/MOD_shrinkwrap.c +++ b/source/blender/modifiers/intern/MOD_shrinkwrap.c @@ -108,8 +108,11 @@ static void deformVerts(ModifierData *md, struct Scene *scene = DEG_get_evaluated_scene(ctx->depsgraph); Mesh *mesh_src = NULL; - if (ctx->object->type == OB_MESH) { + /* rB4cde92303f3db9286b38d65d835db3e358b595f4 made this MESH only */ + /* Seems to work fine for curves though. */ + if (ELEM(ctx->object->type, OB_MESH, OB_CURVE)) { /* mesh_src is only needed for vgroups. */ + /* Nope, also needed for MOD_SHRINKWRAP_PROJECT 'calc.vert' in shrinkwrapModifier_deform() */ mesh_src = MOD_deform_mesh_eval_get(ctx->object, NULL, mesh, NULL, numVerts, false, false); }