point_in_polygon_overkill = function point_in_polygon_overkill(point, vertices) {
const n = vertices.length - 1;
const [px, py] = point;
let winding_number = 0;
let bx = vertices[0][0] - px, by = vertices[0][1] - py;
let b_below_p = by <= 0;
for (let i = 1; i <= n; i++) {
const ax = bx, ay = by, a_below_p = b_below_p;
bx = vertices[i][0] - px, by = vertices[i][1] - py;
b_below_p = by <= 0;
const axby = ax*by, aybx = ay*bx;
const p_left_of_ab = axby > aybx;
winding_number += (
(a_below_p ^ b_below_p) * (b_below_p ^ p_left_of_ab)
* (p_left_of_ab - (axby < aybx)));
}
return winding_number;
}