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