UNPKG

phaser

Version:

A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers.

44 lines (36 loc) 1.22 kB
/** * @author Richard Davey <rich@photonstorm.com> * @copyright 2018 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ // Checks whether the x and y coordinates are contained within this polygon. // Adapted from http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html by Jonas Raoni Soares Silva /** * [description] * * @function Phaser.Geom.Polygon.Contains * @since 3.0.0 * * @param {Phaser.Geom.Polygon} polygon - [description] * @param {number} x - [description] * @param {number} y - [description] * * @return {boolean} [description] */ var Contains = function (polygon, x, y) { var inside = false; for (var i = -1, j = polygon.points.length - 1; ++i < polygon.points.length; j = i) { var ix = polygon.points[i].x; var iy = polygon.points[i].y; var jx = polygon.points[j].x; var jy = polygon.points[j].y; if (((iy <= y && y < jy) || (jy <= y && y < iy)) && (x < (jx - ix) * (y - iy) / (jy - iy) + ix)) { inside = !inside; } } return inside; }; module.exports = Contains;