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; + } + + }