From 5d7ac749c5f9246e1d33197ca97f697a24b8a039 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 18 Jan 2022 21:17:43 +1100 Subject: Fix T94197: Applying boolean with fast solver clears bevel weights For boolean operations only one of the meshes was checked to determine if bevel weights should be created. Now initialize custom data from both meshes flag. Note that this is a localized fix to be back-ported, further changes will be made so edit-mode conversion accounts for this without the caller needing explicit checks for custom-data flags. --- source/blender/modifiers/intern/MOD_boolean.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/blender/modifiers/intern/MOD_boolean.cc b/source/blender/modifiers/intern/MOD_boolean.cc index f8c181905b5..2a303c7741c 100644 --- a/source/blender/modifiers/intern/MOD_boolean.cc +++ b/source/blender/modifiers/intern/MOD_boolean.cc @@ -252,6 +252,10 @@ static BMesh *BMD_mesh_bm_create( * otherwise the wrong active render layer is used, see T92384. */ BM_mesh_copy_init_customdata_from_mesh(bm, mesh, &allocsize); + /* NOTE(@campbellbarton): Handle in #BM_mesh_bm_from_me, this is a local fix for T94197. */ + BM_mesh_cd_flag_apply(bm, + mesh->cd_flag | mesh_operand_ob->cd_flag | BM_mesh_cd_flag_from_bmesh(bm)); + BMeshFromMeshParams bmesh_from_mesh_params{}; bmesh_from_mesh_params.calc_face_normal = true; BM_mesh_bm_from_me(bm, mesh_operand_ob, &bmesh_from_mesh_params); -- cgit v1.2.3