[Bf-blender-cvs] [efe3042368c] blender2.8: Transform: Use `isect_ray_seg_v3` instead `dist_squared_ray_to_seg_v3` in the function that tests the snap on edges.

Germano noreply at git.blender.org
Thu May 17 03:05:49 CEST 2018


Commit: efe3042368cfeff6004ccc08f9df3b2b21087722
Author: Germano
Date:   Wed May 16 22:04:41 2018 -0300
Branches: blender2.8
https://developer.blender.org/rBefe3042368cfeff6004ccc08f9df3b2b21087722

Transform: Use `isect_ray_seg_v3` instead `dist_squared_ray_to_seg_v3` in the function that tests the snap on edges.

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

M	source/blender/editors/transform/transform_snap_object.c

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

diff --git a/source/blender/editors/transform/transform_snap_object.c b/source/blender/editors/transform/transform_snap_object.c
index 5f6fafaeff3..84a4c7dbf14 100644
--- a/source/blender/editors/transform/transform_snap_object.c
+++ b/source/blender/editors/transform/transform_snap_object.c
@@ -916,11 +916,25 @@ static bool test_projected_edge_dist(
         const bool is_persp, const float va[3], const float vb[3],
         float *dist_px_sq, float r_co[3])
 {
-	float near_co[3], dummy_depth;
-	dist_squared_ray_to_seg_v3(
+	float near_co[3], lambda;
+	if (!isect_ray_seg_v3(
 	        precalc->ray_origin,
 	        precalc->ray_direction,
-	        va, vb, near_co, &dummy_depth);
+	        va, vb, &lambda))
+	{
+		copy_v3_v3(near_co, va);
+	}
+	else {
+		if (lambda <= 0.0f) {
+			copy_v3_v3(near_co, va);
+		}
+		else if (lambda >= 1.0f) {
+			copy_v3_v3(near_co, vb);
+		}
+		else {
+			interp_v3_v3v3(near_co, va, vb, lambda);
+		}
+	}
 
 	return test_projected_vert_dist(
 	        precalc, clip_plane, clip_plane_len,



More information about the Bf-blender-cvs mailing list