"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SPolygonUtil = void 0; var SPolygonUtil = (function () { function SPolygonUtil() { } SPolygonUtil.pointIn = function (x, y, pointList) { var crossNum = 0; for (var i = 0; i < pointList.length; i++) { var p1 = pointList[i]; var p2 = pointList[(i + 1) % pointList.length]; if (p1.y == p2.y) { continue; } if (y < Math.min(p1.y, p2.y) || y >= Math.max(p1.y, p2.y)) { continue; } var x0 = ((y - p1.y) * (p2.x - p1.x)) / (p2.y - p1.y) + p1.x; if (x0 > x) { crossNum++; } } return crossNum % 2 == 1; }; SPolygonUtil.clockDir = function (pointList) { if (pointList.length < 3) { return 0; } var index = 0; var len = pointList.length; for (var i = 1; i < len; i++) { if (pointList[i].x > pointList[index].x) { index = i; } } var p1 = pointList[index == 0 ? len - 1 : index - 1]; var p2 = pointList[index]; var p3 = pointList[(index + 1) % len]; return (p2.x - p1.x) * (p3.y - p2.y) - (p2.y - p1.y) * (p3.x - p2.x); }; return SPolygonUtil; }()); exports.SPolygonUtil = SPolygonUtil;