From f215fad0d0612c7ef8666fbf5bfeda3b1b578816 Mon Sep 17 00:00:00 2001 From: notgiven688 Date: Mon, 1 Apr 2024 13:47:14 +0200 Subject: [PATCH] Skip origin enclosed checks if origin had been enclosed before --- src/GJKEPA.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/GJKEPA.cs b/src/GJKEPA.cs index ff783d3..a979778 100644 --- a/src/GJKEPA.cs +++ b/src/GJKEPA.cs @@ -310,6 +310,8 @@ public bool Solve(out JVector point1, out JVector point2, out JVector normal, ou // search for the closest triangle and check if the origin is enclosed int closestIndex = -1; double currentMin = double.MaxValue; + bool skipTest = originEnclosed; + originEnclosed = true; for (int i = 0; i < tCount; i++) @@ -320,7 +322,7 @@ public bool Solve(out JVector point1, out JVector point2, out JVector normal, ou closestIndex = i; } - if(!Triangles[i].FacingOrigin) originEnclosed = false; + if(!Triangles[i].FacingOrigin) originEnclosed = skipTest; } ctri = Triangles[closestIndex];