diff --git a/source/blender/editors/transform/transform_snap_object.cc b/source/blender/editors/transform/transform_snap_object.cc index 9f5e6256d09..5ee6ff4d218 100644 --- a/source/blender/editors/transform/transform_snap_object.cc +++ b/source/blender/editors/transform/transform_snap_object.cc @@ -1270,9 +1270,10 @@ 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_test = params->use_occlusion_test && !XRAY_ENABLED(v3d); + const bool is_allways_occluded = !params->use_occlusion_test; + bool use_occlusion_plane = is_allways_occluded || !XRAY_ENABLED(v3d); - if (use_occlusion_test || (snap_to_flag & SCE_SNAP_TO_FACE)) { + if (use_occlusion_plane || (snap_to_flag & SCE_SNAP_TO_FACE)) { const RegionView3D *rv3d = static_cast(region->regiondata); float3 ray_end; ED_view3d_win_to_ray_clipped_ex(depsgraph, @@ -1293,7 +1294,7 @@ eSnapMode ED_transform_snap_object_project_view3d_ex(SnapObjectContext *sctx, } else { snap_to_flag &= ~SCE_SNAP_TO_FACE; - use_occlusion_test = false; + use_occlusion_plane = false; } } } @@ -1312,7 +1313,7 @@ eSnapMode ED_transform_snap_object_project_view3d_ex(SnapObjectContext *sctx, prev_co, dist_px ? square_f(*dist_px) : FLT_MAX, nullptr, - use_occlusion_test)) + use_occlusion_plane)) { return retval; } @@ -1351,7 +1352,7 @@ eSnapMode ED_transform_snap_object_project_view3d_ex(SnapObjectContext *sctx, } } - if (use_occlusion_test || (snap_to_flag & SCE_SNAP_TO_FACE)) { + if (use_occlusion_plane || (snap_to_flag & SCE_SNAP_TO_FACE)) { has_hit = raycastObjects(sctx); if (has_hit) { @@ -1385,7 +1386,7 @@ eSnapMode ED_transform_snap_object_project_view3d_ex(SnapObjectContext *sctx, /* Remove what has already been computed. */ sctx->runtime.snap_to_flag &= ~(SCE_SNAP_TO_FACE | SCE_SNAP_INDIVIDUAL_NEAREST); - if (use_occlusion_test && has_hit && + if (use_occlusion_plane && has_hit && /* By convention we only snap to the original elements of a curve. */ sctx->ret.ob->type != OB_CURVES_LEGACY) {