forked from bartvdbraak/blender
Fix T84757: feedback loop with when modifying vertex group with nodes
The issue was that the mesh shared its vertex weights with the original mesh (to reduce memory consumption). The solution is to make a local copy of the vertex weights in this case.
This commit is contained in:
parent
f7829961c6
commit
1e193a0b56
@ -1191,6 +1191,11 @@ WriteAttributePtr MeshComponent::attribute_try_get_for_write(const StringRef att
|
||||
if (mesh_->dvert == nullptr) {
|
||||
BKE_object_defgroup_data_create(&mesh_->id);
|
||||
}
|
||||
else {
|
||||
/* Copy the data layer if it is shared with some other mesh. */
|
||||
mesh_->dvert = (MDeformVert *)CustomData_duplicate_referenced_layer(
|
||||
&mesh_->vdata, CD_MDEFORMVERT, mesh_->totvert);
|
||||
}
|
||||
return std::make_unique<blender::bke::VertexWeightWriteAttribute>(
|
||||
mesh_->dvert, mesh_->totvert, vertex_group_index);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user