From 5a77748e470df308cd325311bab9bf21beb6f77e Mon Sep 17 00:00:00 2001 From: Germano Cavalcante Date: Mon, 2 Mar 2020 18:44:47 -0300 Subject: Fix T74377: Weld Modifier destroys vertex groups Differential Revision: https://developer.blender.org/D6997 --- source/blender/modifiers/intern/MOD_weld.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'source/blender/modifiers/intern/MOD_weld.c') diff --git a/source/blender/modifiers/intern/MOD_weld.c b/source/blender/modifiers/intern/MOD_weld.c index 1f641e56c76..803c8e1853f 100644 --- a/source/blender/modifiers/intern/MOD_weld.c +++ b/source/blender/modifiers/intern/MOD_weld.c @@ -1890,6 +1890,18 @@ static void initData(ModifierData *md) wmd->defgrp_name[0] = '\0'; } +static void requiredDataMask(Object *UNUSED(ob), + ModifierData *md, + CustomData_MeshMasks *r_cddata_masks) +{ + WeldModifierData *wmd = (WeldModifierData *)md; + + /* Ask for vertexgroups if we need them. */ + if (wmd->defgrp_name[0] != '\0') { + r_cddata_masks->vmask |= CD_MASK_MDEFORMVERT; + } +} + ModifierTypeInfo modifierType_Weld = { /* name */ "Weld", /* structName */ "WeldModifierData", @@ -1908,7 +1920,7 @@ ModifierTypeInfo modifierType_Weld = { /* applyModifier */ applyModifier, /* initData */ initData, - /* requiredDataMask */ NULL, + /* requiredDataMask */ requiredDataMask, /* freeData */ NULL, /* isDisabled */ NULL, /* updateDepsgraph */ NULL, -- cgit v1.2.3