Fix: 'V3D_SNAPCURSOR_OCCLUSION_ALWAYS_TRUE' flag not working
The name `use_occlusion_test` was misleading and led to errors. If this variable is false, objects will be considered to always be occluders. Not a serious problem, since the flag is not being used.
This commit is contained in:
@@ -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<const RegionView3D *>(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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user