Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGermano <germano.costa@ig.com.br>2018-05-17 04:04:41 +0300
committerGermano <germano.costa@ig.com.br>2018-05-17 04:04:41 +0300
commitefe3042368cfeff6004ccc08f9df3b2b21087722 (patch)
treeba6c7c1af72b37a8cdc87f4e72a7a37e37615370
parent4b18858660f4e7068e8345315fa04b3215c85548 (diff)
Transform: Use `isect_ray_seg_v3` instead `dist_squared_ray_to_seg_v3` in the function that tests the snap on edges.
-rw-r--r--source/blender/editors/transform/transform_snap_object.c20
1 files changed, 17 insertions, 3 deletions
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,