diff options
Diffstat (limited to 'source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c')
-rw-r--r-- | source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c | 38 |
1 files changed, 17 insertions, 21 deletions
diff --git a/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c index 8b504befa16..4e41f95a063 100644 --- a/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c +++ b/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c @@ -239,7 +239,6 @@ static int gizmo_arrow_modal( } ArrowGizmo3D *arrow = (ArrowGizmo3D *)gz; GizmoInteraction *inter = gz->interaction_data; - View3D *v3d = CTX_wm_view3d(C); ARegion *ar = CTX_wm_region(C); RegionView3D *rv3d = ar->regiondata; @@ -264,31 +263,28 @@ static int gizmo_arrow_modal( int ok = 0; for (int j = 0; j < 2; j++) { - if (ED_view3d_win_to_ray_clipped( - CTX_data_depsgraph(C), - ar, v3d, proj[j].mval, - proj[j].ray_origin, proj[j].ray_direction, false)) - { - /* Force Y axis if we're view aligned */ - if (j == 0) { - if (RAD2DEGF(acosf(dot_v3v3(proj[j].ray_direction, arrow->gizmo.matrix_basis[2]))) < 5.0f) { - normalize_v3_v3(arrow_no, rv3d->viewinv[1]); - } + ED_view3d_win_to_ray( + ar, proj[j].mval, + proj[j].ray_origin, proj[j].ray_direction); + /* Force Y axis if we're view aligned */ + if (j == 0) { + if (RAD2DEGF(acosf(dot_v3v3(proj[j].ray_direction, arrow->gizmo.matrix_basis[2]))) < 5.0f) { + normalize_v3_v3(arrow_no, rv3d->viewinv[1]); } + } - float arrow_no_proj[3]; - project_plane_v3_v3v3(arrow_no_proj, arrow_no, proj[j].ray_direction); + float arrow_no_proj[3]; + project_plane_v3_v3v3(arrow_no_proj, arrow_no, proj[j].ray_direction); - normalize_v3(arrow_no_proj); + normalize_v3(arrow_no_proj); - float plane[4]; - plane_from_point_normal_v3(plane, proj[j].ray_origin, arrow_no_proj); + float plane[4]; + plane_from_point_normal_v3(plane, proj[j].ray_origin, arrow_no_proj); - float lambda; - if (isect_ray_plane_v3(arrow_co, arrow_no, plane, &lambda, false)) { - madd_v3_v3v3fl(proj[j].location, arrow_co, arrow_no, lambda); - ok++; - } + float lambda; + if (isect_ray_plane_v3(arrow_co, arrow_no, plane, &lambda, false)) { + madd_v3_v3v3fl(proj[j].location, arrow_co, arrow_no, lambda); + ok++; } } |