From 9fba1e21b83fcdc47e6c23644ff59f65e9c22d43 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Thu, 14 Feb 2013 01:59:47 +0100 Subject: [PATCH] add point-in-poly function --- src/org/oscim/utils/GeometryUtils.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/org/oscim/utils/GeometryUtils.java b/src/org/oscim/utils/GeometryUtils.java index 884a4de4..99df4ae6 100644 --- a/src/org/oscim/utils/GeometryUtils.java +++ b/src/org/oscim/utils/GeometryUtils.java @@ -315,4 +315,19 @@ public final class GeometryUtils { return Math.toDegrees(BCA); } + // from www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html + public static boolean pointInPoly(int nvert, float[] vert, float testx, float testy) { + int i, j; + boolean inside = false; + for (i = 0, j = (nvert - 1) * 2; i < nvert * 2; j = i++) { + if (((vert[i * 2 + 1] > testy) != (vert[j * j + 1] > testy)) && + (testx < (vert[j * 2] - vert[i * 2]) + * (testy - vert[i * 2 + 1]) + / (vert[j * 2 + 1] - vert[i * 2 + 1]) + vert[i * 2])) + inside = !inside; + } + return inside; + } + + }