[Bf-blender-cvs] [ce56088bcdd] blender2.8: Gizmo: use ED_view3d_win_to_3d_on_plane

Campbell Barton noreply at git.blender.org
Thu Sep 20 03:27:12 CEST 2018


Commit: ce56088bcdd2e5ea14918bd1fe491c3bb2e7c0dc
Author: Campbell Barton
Date:   Thu Sep 20 11:38:11 2018 +1000
Branches: blender2.8
https://developer.blender.org/rBce56088bcdd2e5ea14918bd1fe491c3bb2e7c0dc

Gizmo: use ED_view3d_win_to_3d_on_plane

===================================================================

M	source/blender/editors/gizmo_library/gizmo_types/dial3d_gizmo.c
M	source/blender/editors/mesh/editmesh_extrude_spin_gizmo.c

===================================================================

diff --git a/source/blender/editors/gizmo_library/gizmo_types/dial3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/dial3d_gizmo.c
index ffb043ee01f..6b1a76c47ee 100644
--- a/source/blender/editors/gizmo_library/gizmo_types/dial3d_gizmo.c
+++ b/source/blender/editors/gizmo_library/gizmo_types/dial3d_gizmo.c
@@ -197,10 +197,9 @@ static void dial_ghostarc_draw(
 }
 
 static void dial_ghostarc_get_angles(
-        struct Depsgraph *depsgraph,
         const wmGizmo *gz,
         const wmEvent *event,
-        const ARegion *ar, const View3D *v3d,
+        const ARegion *ar,
         float mat[4][4], const float co_outer[3],
         float *r_start, float *r_delta)
 {
@@ -220,25 +219,17 @@ static void dial_ghostarc_get_angles(
 	float proj_mval_new_rel[3];
 	float proj_mval_init_rel[3];
 	float dial_plane[4];
-	float ray_co[3], ray_no[3];
-	float ray_lambda;
 
 	plane_from_point_normal_v3(dial_plane, gz->matrix_basis[3], axis_vec);
 
-	if (!ED_view3d_win_to_ray(depsgraph, ar, v3d, inter->init.mval, ray_co, ray_no, false) ||
-	    !isect_ray_plane_v3(ray_co, ray_no, dial_plane, &ray_lambda, false))
-	{
+	if (!ED_view3d_win_to_3d_on_plane(ar, dial_plane, inter->init.mval, proj_mval_init_rel)) {
 		goto fail;
 	}
-	madd_v3_v3v3fl(proj_mval_init_rel, ray_co, ray_no, ray_lambda);
 	sub_v3_v3(proj_mval_init_rel, gz->matrix_basis[3]);
 
-	if (!ED_view3d_win_to_ray(depsgraph, ar, v3d, mval, ray_co, ray_no, false) ||
-	    !isect_ray_plane_v3(ray_co, ray_no, dial_plane, &ray_lambda, false))
-	{
+	if (!ED_view3d_win_to_3d_on_plane(ar, dial_plane, mval, proj_mval_new_rel)) {
 		goto fail;
 	}
-	madd_v3_v3v3fl(proj_mval_new_rel, ray_co, ray_no, ray_lambda);
 	sub_v3_v3(proj_mval_new_rel, gz->matrix_basis[3]);
 
 	const int draw_options = RNA_enum_get(gz->ptr, "draw_options");
@@ -429,8 +420,7 @@ static int gizmo_dial_modal(
 	float angle_ofs, angle_delta;
 
 	dial_ghostarc_get_angles(
-	        CTX_data_depsgraph(C),
-	        gz, event, CTX_wm_region(C), CTX_wm_view3d(C), gz->matrix_basis, co_outer, &angle_ofs, &angle_delta);
+	        gz, event, CTX_wm_region(C), gz->matrix_basis, co_outer, &angle_ofs, &angle_delta);
 
 	if (tweak_flag & WM_GIZMO_TWEAK_SNAP) {
 		const double snap = DEG2RAD(5);
diff --git a/source/blender/editors/mesh/editmesh_extrude_spin_gizmo.c b/source/blender/editors/mesh/editmesh_extrude_spin_gizmo.c
index c5d948a7a2e..038a45650bf 100644
--- a/source/blender/editors/mesh/editmesh_extrude_spin_gizmo.c
+++ b/source/blender/editors/mesh/editmesh_extrude_spin_gizmo.c
@@ -537,15 +537,12 @@ static void gizmo_mesh_spin_redo_modal_from_setup(
 		float plane_co[3], plane_no[3];
 		RNA_property_float_get_array(op->ptr, ggd->data.prop_axis_co, plane_co);
 		RNA_property_float_get_array(op->ptr, ggd->data.prop_axis_no, plane_no);
-		float cursor_co[3], cursor_no[3];
+		float cursor_co[3];
 		const int mval[2] = {event->x - ar->winrct.xmin, event->y - ar->winrct.ymin};
-		ED_view3d_win_to_3d_int(v3d, ar, plane_co, mval, cursor_co);
-		ED_view3d_global_to_vector(ar->regiondata, cursor_co, cursor_no);
-
-		float lambda, plane[4];
+		float plane[4];
 		plane_from_point_normal_v3(plane, plane_co, plane_no);
-		if (isect_ray_plane_v3(cursor_co, cursor_no, plane, &lambda, false)) {
-			madd_v3_v3fl(cursor_co, cursor_no, lambda);
+		if (UNLIKELY(!ED_view3d_win_to_3d_on_plane_int(ar, plane, mval, cursor_co))) {
+			ED_view3d_win_to_3d_int(v3d, ar, plane, mval, cursor_co);
 		}
 		sub_v3_v3v3(ggd->data.orient_axis, cursor_co, plane_co);
 		normalize_v3(ggd->data.orient_axis);



More information about the Bf-blender-cvs mailing list