phaser - v4.0.0-rc.4
    Preparing search index...

    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.

    Index

    Constructors

    • Parameters

      • Optionalpoints: string | number[] | Vector2Like[]

        List of points defining the perimeter of this Polygon. Several formats are supported:

        • A string containing paired x y values separated by a single space: '40 0 40 20 100 20 100 80 40 80 40 100 0 50'
        • An array of Point objects: [new Phaser.Point(x1, y1), ...]
        • An array of objects with public x y properties: [obj1, obj2, ...]
        • An array of paired numbers that represent point coordinates: [x1,y1, x2,y2, ...]
        • An array of arrays with two elements representing x/y coordinates: [[x1, y1], [x2, y2], ...]

      Returns Geom.Polygon

    Properties

    area: number

    The area of this Polygon.

    points: Math.Vector2[]

    An array of number pair objects that make up this polygon. I.e. [ {x,y}, {x,y}, {x,y} ]

    type: number

    The geometry constant type of this object: GEOM_CONST.POLYGON. Used for fast type comparisons.

    Methods

    • Calculates the area of the Polygon. This is available in the property Polygon.area

      Returns number

    • Check to see if the Polygon contains the given x / y coordinates.

      Parameters

      • x: number

        The x coordinate to check within the polygon.

      • y: number

        The y coordinate to check within the polygon.

      Returns boolean

    • 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.

      Type Parameters

      Parameters

      • quantity: number

        The amount of points to return. If a falsey value the quantity will be derived from the stepRate instead.

      • OptionalstepRate: number

        Sets the quantity by getting the perimeter of the Polygon and dividing it by the stepRate.

      • Optionaloutput: O

        An array to insert the points in to. If not provided a new array will be created.

      Returns O

    • Sets this Polygon to the given points.

      The points can be set from a variety of formats:

      • A string containing paired values separated by a single space: '40 0 40 20 100 20 100 80 40 80 40 100 0 50'
      • An array of Point objects: [new Phaser.Point(x1, y1), ...]
      • An array of objects with public x/y properties: [obj1, obj2, ...]
      • An array of paired numbers that represent point coordinates: [x1,y1, x2,y2, ...]
      • An array of arrays with two elements representing x/y coordinates: [[x1, y1], [x2, y2], ...]

      setTo may also be called without any arguments to remove all points.

      Parameters

      • Optionalpoints: string | number[] | Vector2Like[]

        Points defining the perimeter of this polygon. Please check function description above for the different supported formats.

      Returns this

    • Checks if a point is within the bounds of a Polygon.

      Parameters

      • polygon: Geom.Polygon

        The Polygon to check against.

      • x: number

        The X coordinate of the point to check.

      • y: number

        The Y coordinate of the point to check.

      Returns boolean

    • This 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

      Parameters

      • data: number[]

        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: number

        The number of coordinates per vertex in the input array (2 by default). Default 2.

      Returns number[]

    • Calculates the bounding AABB rectangle of a polygon.

      Type Parameters

      Parameters

      • polygon: Geom.Polygon

        The polygon that should be calculated.

      • Optionalout: O

        The rectangle or object that has x, y, width, and height properties to store the result. Optional.

      Returns O

    • Stores 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.

      Type Parameters

      • O extends number[]

      Parameters

      • polygon: Geom.Polygon

        The Polygon whose points to export.

      • Optionaloutput: O

        An array to which the points' coordinates should be appended.

      Returns O

    • 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.

      Parameters

      • polygon: Geom.Polygon

        The Polygon to get the points from.

      • quantity: number

        The amount of points to return. If a falsey value the quantity will be derived from the stepRate instead.

      • OptionalstepRate: number

        Sets 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.

      Returns Math.Vector2[]

    • Takes 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.

      Type Parameters

      Parameters

      • polygon: O

        The polygon to be simplified. The polygon will be modified in-place and returned.

      • Optionaltolerance: number

        Affects the amount of simplification (in the same metric as the point coordinates). Default 1.

      • OptionalhighestQuality: boolean

        Excludes distance-based preprocessing step which leads to highest quality simplification but runs ~10-20 times slower. Default false.

      Returns O

    • Takes a Polygon object and applies Chaikin's smoothing algorithm on its points.

      Type Parameters

      Parameters

      • polygon: O

        The polygon to be smoothed. The polygon will be modified in-place and returned.

      Returns O

    • Tranlates the points of the given Polygon.

      Type Parameters

      Parameters

      • polygon: O

        The Polygon to modify.

      • x: number

        The amount to horizontally translate the points by.

      • y: number

        The amount to vertically translate the points by.

      Returns O