Optionalpoints: string | number[] | Vector2Like[]List of points defining the perimeter of this Polygon. Several formats are supported:
'40 0 40 20 100 20 100 80 40 80 40 100 0 50'[new Phaser.Point(x1, y1), ...][obj1, obj2, ...][x1,y1, x2,y2, ...][[x1, y1], [x2, y2], ...]The area of this Polygon.
An array of number pair objects that make up this polygon. I.e. [ {x,y}, {x,y}, {x,y} ]
ReadonlytypeThe geometry constant type of this object: GEOM_CONST.POLYGON.
Used for fast type comparisons.
Calculates the area of the Polygon. This is available in the property Polygon.area
Check to see if the Polygon contains the given x / y coordinates.
The x coordinate to check within the polygon.
The y coordinate to check within the polygon.
Returns an array of Vector2 objects containing the coordinates of the points around the perimeter of the Polygon, based on the given quantity or stepRate values.
The amount of points to return. If a falsey value the quantity will be derived from the stepRate instead.
OptionalstepRate: numberSets the quantity by getting the perimeter of the Polygon and dividing it by the stepRate.
Optionaloutput: OAn array to insert the points in to. If not provided a new array will be created.
Sets this Polygon to the given points.
The points can be set from a variety of formats:
'40 0 40 20 100 20 100 80 40 80 40 100 0 50'[new Phaser.Point(x1, y1), ...][obj1, obj2, ...][x1,y1, x2,y2, ...][[x1, y1], [x2, y2], ...]setTo may also be called without any arguments to remove all points.
Optionalpoints: string | number[] | Vector2Like[]Points defining the perimeter of this polygon. Please check function description above for the different supported formats.
StaticCloneStaticContainsStaticContainsStaticEarcutThis module implements a modified ear slicing algorithm, optimized by z-order curve hashing and extended to handle holes, twisted polygons, degeneracies and self-intersections in a way that doesn't guarantee correctness of triangulation, but attempts to always produce acceptable results for practical data.
Example:
const triangles = Phaser.Geom.Polygon.Earcut([10,0, 0,50, 60,60, 70,10]); // returns [1,0,3, 3,2,1]
Each group of three vertex indices in the resulting array forms a triangle.
// triangulating a polygon with a hole
earcut([0,0, 100,0, 100,100, 0,100, 20,20, 80,20, 80,80, 20,80], [4]);
// [3,0,4, 5,4,0, 3,4,7, 5,0,1, 2,3,7, 6,5,1, 2,7,6, 6,1,2]
// triangulating a polygon with 3d coords
earcut([10,0,1, 0,50,2, 60,60,3, 70,10,4], null, 3);
// [1,0,3, 3,2,1]
If you pass a single vertex as a hole, Earcut treats it as a Steiner point.
If your input is a multi-dimensional array (e.g. GeoJSON Polygon), you can convert it to the format
expected by Earcut with Phaser.Geom.Polygon.Earcut.flatten:
var data = earcut.flatten(geojson.geometry.coordinates);
var triangles = earcut(data.vertices, data.holes, data.dimensions);
After getting a triangulation, you can verify its correctness with Phaser.Geom.Polygon.Earcut.deviation:
var deviation = earcut.deviation(vertices, holes, dimensions, triangles);
Returns the relative difference between the total area of triangles and the area of the input polygon. 0 means the triangulation is fully correct.
For more information see https://github.com/mapbox/earcut
A flat array of vertex coordinate, like [x0,y0, x1,y1, x2,y2, ...]
OptionalholeIndices: number[]An array of hole indices if any (e.g. [5, 8] for a 12-vertex input would mean one hole with vertices 5–7 and another with 8–11).
Optionaldimensions: numberThe number of coordinates per vertex in the input array (2 by default). Default 2.
StaticGetStaticGetStores all of the points of a Polygon into a flat array of numbers following the sequence [ x,y, x,y, x,y ], i.e. each point of the Polygon, in the order it's defined, corresponds to two elements of the resultant array for the point's X and Y coordinate.
StaticGetReturns an array of Vector2 objects containing the coordinates of the points around the perimeter of the Polygon, based on the given quantity or stepRate values.
The Polygon to get the points from.
The amount of points to return. If a falsey value the quantity will be derived from the stepRate instead.
OptionalstepRate: numberSets the quantity by getting the perimeter of the Polygon and dividing it by the stepRate.
Optionaloutput: any[]An array to insert the points in to. If not provided a new array will be created.
StaticPerimeterStaticReverseStaticSimplifyTakes a Polygon object and simplifies the points by running them through a combination of Douglas-Peucker and Radial Distance algorithms. Simplification dramatically reduces the number of points in a polygon while retaining its shape, giving a huge performance boost when processing it and also reducing visual noise.
The polygon to be simplified. The polygon will be modified in-place and returned.
Optionaltolerance: numberAffects the amount of simplification (in the same metric as the point coordinates). Default 1.
OptionalhighestQuality: booleanExcludes distance-based preprocessing step which leads to highest quality simplification but runs ~10-20 times slower. Default false.
StaticSmoothStaticTranslate
A Polygon object
The polygon is a closed shape consists of a series of connected straight lines defined by list of ordered points. Several formats are supported to define the list of points, check the setTo method for details. This is a geometry object allowing you to define and inspect the shape. It is not a Game Object, in that you cannot add it to the display list, and it has no texture. To render a Polygon you should look at the capabilities of the Graphics class.