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

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGermano Cavalcante <germano.costa@ig.com.br>2019-10-25 22:12:03 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2019-10-25 22:12:03 +0300
commit742b8663af7ca79808d672310f4d6f2730946230 (patch)
treedb3ffdf2ca190f693644d6ea418f4f1cdda31923 /mesh_snap_utilities_line
parent91fc865d8df563d82a4c31bbe44aa4bb9b1d0eee (diff)
Fix T71104: Addon: snap utilites line. Errors with some cuts
Normalize normal for more precision in `intersect_line_plane`.
Diffstat (limited to 'mesh_snap_utilities_line')
-rw-r--r--mesh_snap_utilities_line/common_utilities.py2
-rw-r--r--mesh_snap_utilities_line/snap_context_l/__init__.py6
2 files changed, 6 insertions, 2 deletions
diff --git a/mesh_snap_utilities_line/common_utilities.py b/mesh_snap_utilities_line/common_utilities.py
index 5a11a4c4..9c63c3f2 100644
--- a/mesh_snap_utilities_line/common_utilities.py
+++ b/mesh_snap_utilities_line/common_utilities.py
@@ -143,6 +143,8 @@ def get_snap_bm_geom(sctx, main_snap_obj, mcursor):
if l.link_loop_next.vert == tri[i] or l.link_loop_prev.vert == tri[i - 2]:
r_bm_geom = l.face
break
+ if r_loc is None:
+ r_loc = r_elem_co[0]
return r_snp_obj, r_loc, r_elem, r_elem_co, r_view_vector, r_orig, r_bm, r_bm_geom
diff --git a/mesh_snap_utilities_line/snap_context_l/__init__.py b/mesh_snap_utilities_line/snap_context_l/__init__.py
index 9d879a82..3c09e537 100644
--- a/mesh_snap_utilities_line/snap_context_l/__init__.py
+++ b/mesh_snap_utilities_line/snap_context_l/__init__.py
@@ -331,8 +331,10 @@ class SnapContext():
if index < num_tris:
tri_verts = gpu_data.get_tri_verts(index)
tri_co = [snap_obj.mat @ Vector(v) for v in gpu_data.get_tri_co(index)]
- nor = (tri_co[1] - tri_co[0]).cross(tri_co[2] - tri_co[0])
- return _Internal.intersect_line_plane(self.last_ray[1], self.last_ray[1] + self.last_ray[0], tri_co[0], nor), tri_verts, tri_co
+ #loc = _Internal.intersect_ray_tri(*tri_co, self.last_ray[0], self.last_ray[1], False)
+ nor = (tri_co[1] - tri_co[0]).cross(tri_co[2] - tri_co[0]).normalized()
+ loc = _Internal.intersect_line_plane(self.last_ray[1], self.last_ray[1] + self.last_ray[0], tri_co[0], nor)
+ return loc, tri_verts, tri_co
index -= num_tris