From 12bde317f4c94d48a154c8815ad910ccdd73be74 Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Fri, 24 Jun 2022 16:39:58 -0500 Subject: Fix T98949: Deleting vertex group in geometry nodes affects others The vertex group indices stored in the weights need to be accounted for when the vertex group list on the mesh changes. --- source/blender/blenkernel/intern/geometry_component_mesh.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/blender/blenkernel/intern/geometry_component_mesh.cc b/source/blender/blenkernel/intern/geometry_component_mesh.cc index 88ea1af8a8d..9e64acf218b 100644 --- a/source/blender/blenkernel/intern/geometry_component_mesh.cc +++ b/source/blender/blenkernel/intern/geometry_component_mesh.cc @@ -1092,6 +1092,11 @@ class VertexGroupsAttributeProvider final : public DynamicAttributesProvider { for (MDeformVert &dvert : MutableSpan(mesh->dvert, mesh->totvert)) { MDeformWeight *weight = BKE_defvert_find_index(&dvert, index); BKE_defvert_remove_group(&dvert, weight); + for (MDeformWeight &weight : MutableSpan(dvert.dw, dvert.totweight)) { + if (weight.def_nr > index) { + weight.def_nr--; + } + } } return true; } -- cgit v1.2.3