Fix T79440: Deform modifiers fail in edit-mode when not first

Lattice, armature & curve only worked when an edit-mesh was passed in,
the mesh argument was being ignored.

Regression in 9f5833798caf9
This commit is contained in:
Campbell Barton 2020-08-03 17:52:53 +10:00
parent d406edf1ee
commit 8f22feefbc
3 changed files with 18 additions and 3 deletions

@ -165,10 +165,15 @@ static void deformVerts(ModifierData *md,
static void deformVertsEM(ModifierData *md, static void deformVertsEM(ModifierData *md,
const ModifierEvalContext *ctx, const ModifierEvalContext *ctx,
struct BMEditMesh *em, struct BMEditMesh *em,
Mesh *UNUSED(mesh), Mesh *mesh,
float (*vertexCos)[3], float (*vertexCos)[3],
int numVerts) int numVerts)
{ {
if (mesh != NULL) {
deformVerts(md, ctx, mesh, vertexCos, numVerts);
return;
}
ArmatureModifierData *amd = (ArmatureModifierData *)md; ArmatureModifierData *amd = (ArmatureModifierData *)md;
MOD_previous_vcos_store(md, vertexCos); /* if next modifier needs original vertices */ MOD_previous_vcos_store(md, vertexCos); /* if next modifier needs original vertices */

@ -150,10 +150,15 @@ static void deformVerts(ModifierData *md,
static void deformVertsEM(ModifierData *md, static void deformVertsEM(ModifierData *md,
const ModifierEvalContext *ctx, const ModifierEvalContext *ctx,
BMEditMesh *em, BMEditMesh *em,
Mesh *UNUSED(mesh), Mesh *mesh,
float (*vertexCos)[3], float (*vertexCos)[3],
int numVerts) int numVerts)
{ {
if (mesh != NULL) {
deformVerts(md, ctx, mesh, vertexCos, numVerts);
return;
}
CurveModifierData *cmd = (CurveModifierData *)md; CurveModifierData *cmd = (CurveModifierData *)md;
bool use_dverts = false; bool use_dverts = false;
int defgrp_index = -1; int defgrp_index = -1;

@ -130,10 +130,15 @@ static void deformVerts(ModifierData *md,
static void deformVertsEM(ModifierData *md, static void deformVertsEM(ModifierData *md,
const ModifierEvalContext *ctx, const ModifierEvalContext *ctx,
struct BMEditMesh *em, struct BMEditMesh *em,
struct Mesh *UNUSED(mesh), struct Mesh *mesh,
float (*vertexCos)[3], float (*vertexCos)[3],
int numVerts) int numVerts)
{ {
if (mesh != NULL) {
deformVerts(md, ctx, mesh, vertexCos, numVerts);
return;
}
LatticeModifierData *lmd = (LatticeModifierData *)md; LatticeModifierData *lmd = (LatticeModifierData *)md;
MOD_previous_vcos_store(md, vertexCos); /* if next modifier needs original vertices */ MOD_previous_vcos_store(md, vertexCos); /* if next modifier needs original vertices */