From 4bf6a2e564ad258aff995e030e5fba1094d5010a Mon Sep 17 00:00:00 2001 From: Germano Cavalcante Date: Mon, 19 Feb 2024 11:41:19 -0300 Subject: [PATCH] Fix #118445: crash when snapping to face nearest Caused by `dd1c12e4d0`. We need to be a little more restricted to calculate the occlusion plane. --- source/blender/editors/transform/transform_snap_object.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/blender/editors/transform/transform_snap_object.cc b/source/blender/editors/transform/transform_snap_object.cc index 5ee6ff4d218..a32f23db0b9 100644 --- a/source/blender/editors/transform/transform_snap_object.cc +++ b/source/blender/editors/transform/transform_snap_object.cc @@ -1269,9 +1269,13 @@ eSnapMode ED_transform_snap_object_project_view3d_ex(SnapObjectContext *sctx, { eSnapMode retval = SCE_SNAP_TO_NONE; float ray_depth_max = BVH_RAYCAST_DIST_MAX; + bool use_occlusion_plane = false; - const bool is_allways_occluded = !params->use_occlusion_test; - bool use_occlusion_plane = is_allways_occluded || !XRAY_ENABLED(v3d); + /* It is required `mval` to calculate the occlusion plane. */ + if (mval) { + const bool is_allways_occluded = !params->use_occlusion_test; + use_occlusion_plane = is_allways_occluded || !XRAY_ENABLED(v3d); + } if (use_occlusion_plane || (snap_to_flag & SCE_SNAP_TO_FACE)) { const RegionView3D *rv3d = static_cast(region->regiondata);