From 0c89e2d60eb335c8f5eac0ea9d3bb8fcecd3b5fb Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 11 Jan 2024 12:44:14 +1100 Subject: [PATCH] Fix #115169: Loop Cut overlay broken with Mirror Bisect Modifier Oversight in [0] which assumed the cage meshes vertices were aligned with the edit-mesh vertices which isn't always the case. Check the cage mesh only has deformations applied before using it. [0]: 29a338811cf28e86f2e32d7a291834c444e9b067 --- source/blender/blenkernel/intern/editmesh.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/editmesh.cc b/source/blender/blenkernel/intern/editmesh.cc index 191ea59068f..7e4990866ae 100644 --- a/source/blender/blenkernel/intern/editmesh.cc +++ b/source/blender/blenkernel/intern/editmesh.cc @@ -230,8 +230,10 @@ const float (*BKE_editmesh_vert_coords_when_deformed(Depsgraph *depsgraph, Object *object_eval = DEG_get_evaluated_object(depsgraph, ob); Mesh *editmesh_eval_final = BKE_object_get_editmesh_eval_final(object_eval); + Mesh *mesh_cage = BKE_object_get_editmesh_eval_cage(ob); - if (Mesh *mesh_cage = BKE_object_get_editmesh_eval_cage(ob)) { + if (mesh_cage && mesh_cage->runtime->deformed_only) { + BLI_assert(BKE_mesh_wrapper_vert_len(mesh_cage) == em->bm->totvert); /* Deformed, and we have deformed coords already. */ coords = BKE_mesh_wrapper_vert_coords(mesh_cage); }