From e628e2f67b4ad3df405e343e6577407265cecc9e Mon Sep 17 00:00:00 2001
From: amandaghassaei <amandaghassaei@gmail.com>
Date: Wed, 31 May 2017 10:01:31 -0400
Subject: [PATCH] catching errors

---
 index.html | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/index.html b/index.html
index db3c26c..4b37516 100755
--- a/index.html
+++ b/index.html
@@ -392,8 +392,12 @@
             vec3 node3 = texture2D(u_originalPosition, node3Index).xyz + texture2D(u_lastPosition, node3Index).xyz;
             vec3 node4 = texture2D(u_originalPosition, node4Index).xyz + texture2D(u_lastPosition, node4Index).xyz;
 
+            float tol = 0.001;
+
             vec3 creaseVector = node4-node3;
             float creaseLength = length(creaseVector);
+
+            if (abs(creaseLength)<tol) creaseLength = tol;
             creaseVector /= creaseLength;
 
             vec3 vector1 = node1-node3;
@@ -401,8 +405,12 @@
 
             float proj1Length = dot(creaseVector, vector1);
             float proj2Length = dot(creaseVector, vector2);
-            float dist1 = sqrt(vector1.x*vector1.x+vector1.y*vector1.y+vector1.z*vector1.z-proj1Length*proj1Length);
-            float dist2 = sqrt(vector2.x*vector2.x+vector2.y*vector2.y+vector2.z*vector2.z-proj2Length*proj2Length);
+
+            float dist1 = sqrt(abs(vector1.x*vector1.x+vector1.y*vector1.y+vector1.z*vector1.z-proj1Length*proj1Length));
+            float dist2 = sqrt(abs(vector2.x*vector2.x+vector2.y*vector2.y+vector2.z*vector2.z-proj2Length*proj2Length));
+
+            if (abs(dist1)<tol) dist1 = tol;
+            if (abs(dist2)<tol) dist2 = tol;
 
             gl_FragColor = vec4(dist1, dist2, proj1Length/creaseLength, proj2Length/creaseLength);
         }
-- 
GitLab