From f418b293879f948f39cab8aef4c3ab47b2c1258b Mon Sep 17 00:00:00 2001
From: Germano Cavalcante <germano.costa@ig.com.br>
Date: Thu, 22 Jul 2021 10:17:46 -0300
Subject: [PATCH] Fix T89812: 'Snap_Utilities_Line' - Projection error in
 orthographic view

---
 mesh_snap_utilities_line/__init__.py                   |  2 +-
 .../snap_context_l/mesh_drawing.py                     | 10 +++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/mesh_snap_utilities_line/__init__.py b/mesh_snap_utilities_line/__init__.py
index c22c5b027..98f88e76b 100644
--- a/mesh_snap_utilities_line/__init__.py
+++ b/mesh_snap_utilities_line/__init__.py
@@ -21,7 +21,7 @@
 bl_info = {
     "name": "Snap_Utilities_Line",
     "author": "Germano Cavalcante",
-    "version": (6, 9, 22),
+    "version": (6, 9, 23),
     "blender": (2, 93, 0),
     "location": "View3D > TOOLS > Line Tool",
     "description": "Extends Blender Snap controls",
diff --git a/mesh_snap_utilities_line/snap_context_l/mesh_drawing.py b/mesh_snap_utilities_line/snap_context_l/mesh_drawing.py
index 219d73110..d05becec0 100644
--- a/mesh_snap_utilities_line/snap_context_l/mesh_drawing.py
+++ b/mesh_snap_utilities_line/snap_context_l/mesh_drawing.py
@@ -349,9 +349,13 @@ class GPU_Indices_Mesh():
 
             far_ += depth_offset
             near += depth_offset
-            fn = (far_ - near)
-            winmat[2][2] = -(far_ + near) / fn
-            winmat[2][3] = (-2 * far_ * near) / fn
+            range = (far_ - near)
+            if is_persp:
+                winmat[2][2] = -(far_ + near) / range
+                winmat[2][3] = (-2 * far_ * near) / range
+            else:
+                winmat[2][3] = -(far_ + near) / range
+
             gpu.matrix.load_projection_matrix(winmat)
 
         if self.draw_edges:
-- 
GitLab