New fix for [#29543] Hook modifier: falloff + vgroup influence broken
Don't know why, but creating a dm when there was none broke multi hooks on curves (see #29567)... So as a valid dm is only mandatory for meshes when a vgroup is set, only create it in those cases!
This commit is contained in:
@@ -249,15 +249,25 @@ static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
int UNUSED(useRenderParams), int UNUSED(isFinalCalc))
|
||||
{
|
||||
HookModifierData *hmd = (HookModifierData*) md;
|
||||
|
||||
deformVerts_do(hmd, ob, derivedData, vertexCos, numVerts);
|
||||
DerivedMesh *dm = derivedData;
|
||||
/* We need a valid dm for meshes when a vgroup is set... */
|
||||
if(!dm && ob->type == OB_MESH && hmd->name[0] != '\0')
|
||||
dm = get_dm(ob, NULL, dm, NULL, 0);
|
||||
|
||||
deformVerts_do(hmd, ob, dm, vertexCos, numVerts);
|
||||
|
||||
if(derivedData != dm)
|
||||
dm->release(dm);
|
||||
}
|
||||
|
||||
static void deformVertsEM(ModifierData *md, Object *ob, struct EditMesh *editData,
|
||||
DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
|
||||
{
|
||||
HookModifierData *hmd = (HookModifierData*) md;
|
||||
DerivedMesh *dm = get_dm(ob, editData, derivedData, NULL, 0);
|
||||
DerivedMesh *dm = derivedData;
|
||||
/* We need a valid dm for meshes when a vgroup is set... */
|
||||
if(!dm && ob->type == OB_MESH && hmd->name[0] != '\0')
|
||||
dm = get_dm(ob, editData, dm, NULL, 0);
|
||||
|
||||
deformVerts_do(hmd, ob, dm, vertexCos, numVerts);
|
||||
|
||||
|
Reference in New Issue
Block a user