diff options
author | Germano Cavalcante <germano.costa@ig.com.br> | 2019-10-25 22:12:03 +0300 |
---|---|---|
committer | Germano Cavalcante <germano.costa@ig.com.br> | 2019-10-25 22:12:03 +0300 |
commit | 742b8663af7ca79808d672310f4d6f2730946230 (patch) | |
tree | db3ffdf2ca190f693644d6ea418f4f1cdda31923 /mesh_snap_utilities_line | |
parent | 91fc865d8df563d82a4c31bbe44aa4bb9b1d0eee (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.py | 2 | ||||
-rw-r--r-- | mesh_snap_utilities_line/snap_context_l/__init__.py | 6 |
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 |