From 0913dc7ed6ddbf30a74a5acf56e9191c227dfdfd Mon Sep 17 00:00:00 2001
From: David Blyth <dblyth@anl.gov>
Date: Mon, 26 Jun 2017 23:11:50 +0000
Subject: [PATCH] Modified AbstractPolyhedron to quit looping over surfaces to
 check if point is inside as soon as it finds that point is outside

---
 .../java/org/lcsim/detector/solids/AbstractPolyhedron.java     | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/detector-framework/src/main/java/org/lcsim/detector/solids/AbstractPolyhedron.java b/detector-framework/src/main/java/org/lcsim/detector/solids/AbstractPolyhedron.java
index 7a642c8..2734e7d 100644
--- a/detector-framework/src/main/java/org/lcsim/detector/solids/AbstractPolyhedron.java
+++ b/detector-framework/src/main/java/org/lcsim/detector/solids/AbstractPolyhedron.java
@@ -36,7 +36,8 @@ public abstract class AbstractPolyhedron extends AbstractSolid implements IPolyh
         for (Polygon3D face : getFaces())
         {
             if (GeomOp3D.intersects(point,face)) return Inside.SURFACE;
-            inside = inside && (GeomOp3D.distanceBetween(point,face.getPlane()) < 0);
+            if (!(inside = inside && GeomOp3D.distanceBetween(point,face.getPlane()) < 0))
+		break;
         }
         
         if (inside) return Inside.INSIDE;
-- 
GitLab