# Class: Point

## Phaser. Point

The Point object represents a location in a two-dimensional coordinate system, where x represents the horizontal axis and y represents the vertical axis. The following code creates a point at (0,0): `var myPoint = new Phaser.Point();` You can also use them as 2D Vectors and you'll find different vector related methods in this class.

#### new Point()

  Source:
    - geom/Point.js, line 3

### Members

#### x

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The x value of the point.

  Source:
    - geom/Point.js, line 32

#### y

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `y` | number | The y value of the point.

  Source:
    - geom/Point.js, line 37

### Methods

#### <static> add(a, b, out) → {Phaser.Point}

  Adds the coordinates of two points together to create a new point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 480

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> angle(a, b) → {number}

  Returns the angle between two Point objects.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | The first Point object.
  `b` | Phaser.Point | The second Point object.

  Source:
    - geom/Point.js, line 574

  ##### Returns:

  The angle between the two Points.

  Type
    number

#### <static> angleSq(a, b) → {number}

  Returns the angle squared between two Point objects.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | The first Point object.
  `b` | Phaser.Point | The second Point object.

  Source:
    - geom/Point.js, line 589

  ##### Returns:

  The angle squared between the two Points.

  Type
    number

#### <static> centroid(points, out) → {Phaser.Point}

  Calculates centroid (or midpoint) from an array of points. If only one point is provided, that point is returned.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `points` | Phaser.Point[] |  | The array of one or more points.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 830

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> distance(a, b, round) → {number}

  Returns the distance of this Point object to the given object (can be a Circle, Point or anything with x/y properties).

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | object |  | The target object. Must have visible x and y properties that represent the center of the object.
  `b` | object |  | The target object. Must have visible x and y properties that represent the center of the object.
  `round` | boolean | <optional> | Round the distance to the nearest integer (default false).

  Source:
    - geom/Point.js, line 687

  ##### Returns:

  The distance between this Point object and the destination Point object.

  Type
    number

#### <static> divide(a, b, out) → {Phaser.Point}

  Divides the coordinates of two points to create a new point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 540

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> equals(a, b) → {boolean}

  Determines whether the two given Point objects are equal. They are considered equal if they have the same x and y values.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | The first Point object.
  `b` | Phaser.Point | The second Point object.

  Source:
    - geom/Point.js, line 560

  ##### Returns:

  A value of true if the Points are equal, otherwise false.

  Type
    boolean

#### <static> interpolate(a, b, f, out) → {Phaser.Point}

  Interpolates the two given Points, based on the `f` value (between 0 and 1) and returns a new Point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `f` | number |  | The level of interpolation between the two points. Indicates where the new point will be, along the line between pt1 and pt2. If f=1, pt1 is returned; if f=0, pt2 is returned.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 637

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> multiply(a, b, out) → {Phaser.Point}

  Multiplies the coordinates of two points to create a new point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 520

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> multiplyAdd(a, b, s, out) → {Phaser.Point}

  Adds two 2D Points together and multiplies the result by the given scalar.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `s` | number |  | The scaling value.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 619

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> negative(a, out) → {Phaser.Point}

  Creates a negative Point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 603

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> normalize(a, out) → {Phaser.Point}

  Normalize (make unit length) a Point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 775

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> normalRightHand(a, out) → {Phaser.Point}

  Right-hand normalize (make unit length) a Point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 759

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> perp(a, out) → {Phaser.Point}

  Return a perpendicular vector (90 degrees rotation)

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 655

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> project(a, b, out) → {Phaser.Point}

  Project two Points onto another Point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 711

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> projectUnit(a, b, out) → {Phaser.Point}

  Project two Points onto a Point of unit length.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 735

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> rotate(a, x, y, angle, asDegrees, distance) → {Phaser.Point}

  Rotates a Point around the x/y coordinates given to the desired angle.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `a` | Phaser.Point |  |  | The Point object to rotate.
  `x` | number |  |  | The x coordinate of the anchor point
  `y` | number |  |  | The y coordinate of the anchor point
  `angle` | number |  |  | The angle in radians (unless asDegrees is true) to rotate the Point to.
  `asDegrees` | boolean | <optional> | false | Is the given rotation in radians (false) or degrees (true)?
  `distance` | number | <optional> |  | An optional distance constraint between the Point and the anchor.

  Source:
    - geom/Point.js, line 798

  ##### Returns:

  The modified point object.

  Type
    Phaser.Point

#### <static> rperp(a, out) → {Phaser.Point}

  Return a perpendicular vector (-90 degrees rotation)

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 671

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> subtract(a, b, out) → {Phaser.Point}

  Subtracts the coordinates of two points to create a new point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 500

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### add(x, y) → {Phaser.Point}

  Adds the given x and y values to this Point.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The value to add to Point.x.
  `y` | number | The value to add to Point.y.

  Source:
    - geom/Point.js, line 106

  ##### Returns:

  This Point object. Useful for chaining method calls.

  Type
    Phaser.Point

#### angle(a, asDegrees) → {number}

  Returns the angle between this Point object and another object with public x and y properties.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `a` | Phaser.Point | any |  |  | The object to get the angle from this Point to.
  `asDegrees` | boolean | <optional> | false | Is the given angle in radians (false) or degrees (true)?

  Source:
    - geom/Point.js, line 281

  ##### Returns:

  The angle between the two objects.

  Type
    number

#### angleSq(a) → {number}

  Returns the angle squared between this Point object and another object with public x and y properties.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | any | The object to get the angleSq from this Point to.

  Source:
    - geom/Point.js, line 304

  ##### Returns:

  The angleSq between the two objects.

  Type
    number

#### clamp(min, max) → {Phaser.Point}

  Clamps this Point object values to be between the given min and max.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `min` | number | The minimum value to clamp this Point to.
  `max` | number | The maximum value to clamp this Point to.

  Source:
    - geom/Point.js, line 200

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### clampX(min, max) → {Phaser.Point}

  Clamps the x value of this Point to be between the given min and max.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `min` | number | The minimum value to clamp this Point to.
  `max` | number | The maximum value to clamp this Point to.

  Source:
    - geom/Point.js, line 170

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### clampY(min, max) → {Phaser.Point}

  Clamps the y value of this Point to be between the given min and max

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `min` | number | The minimum value to clamp this Point to.
  `max` | number | The maximum value to clamp this Point to.

  Source:
    - geom/Point.js, line 185

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### clone(output) → {Phaser.Point}

  Creates a copy of the given Point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `output` | Phaser.Point | <optional> | Optional Point object. If given the values will be set into this object, otherwise a brand new Point object will be created and returned.

  Source:
    - geom/Point.js, line 216

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### copyFrom(source) → {Phaser.Point}

  Copies the x and y properties from any given object to this Point.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `source` | any | The object to copy from.

  Source:
    - geom/Point.js, line 43

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### copyTo(dest) → {Object}

  Copies the x and y properties from this Point to any given object.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `dest` | any | The object to copy to.

  Source:
    - geom/Point.js, line 238

  ##### Returns:

  The dest object.

  Type
    Object

#### cross(a) → {number}

  The cross product of this and another Point object.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | The Point object to get the cross product combined with this Point.

  Source:
    - geom/Point.js, line 415

  ##### Returns:

  The result.

  Type
    number

#### distance(dest, round) → {number}

  Returns the distance of this Point object to the given object (can be a Circle, Point or anything with x/y properties)

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `dest` | object |  | The target object. Must have visible x and y properties that represent the center of the object.
  `round` | boolean | <optional> | Round the distance to the nearest integer (default false).

  Source:
    - geom/Point.js, line 254

  ##### Returns:

  The distance between this Point object and the destination Point object.

  Type
    number

#### divide(x, y) → {Phaser.Point}

  Divides Point.x and Point.y by the given x and y values.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The value to divide Point.x by.
  `y` | number | The value to divide Point.x by.

  Source:
    - geom/Point.js, line 154

  ##### Returns:

  This Point object. Useful for chaining method calls.

  Type
    Phaser.Point

#### dot(a) → {number}

  The dot product of this and another Point object.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | The Point object to get the dot product combined with this Point.

  Source:
    - geom/Point.js, line 402

  ##### Returns:

  The result.

  Type
    number

#### equals(a) → {boolean}

  Determines whether the given objects x/y values are equal to this Point object.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | any | The object to compare with this Point.

  Source:
    - geom/Point.js, line 268

  ##### Returns:

  A value of true if the x and y points are equal, otherwise false.

  Type
    boolean

#### getMagnitude() → {number}

  Calculates the length of the Point object.

  Source:
    - geom/Point.js, line 334

  ##### Returns:

  The length of the Point.

  Type
    number

#### getMagnitudeSq() → {number}

  Calculates the length squared of the Point object.

  Source:
    - geom/Point.js, line 346

  ##### Returns:

  The length ^ 2 of the Point.

  Type
    number

#### invert() → {Phaser.Point}

  Inverts the x and y values of this Point

  Source:
    - geom/Point.js, line 56

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### isZero() → {boolean}

  Determine if this point is at 0,0.

  Source:
    - geom/Point.js, line 390

  ##### Returns:

  True if this Point is 0,0, otherwise false.

  Type
    boolean

#### multiply(x, y) → {Phaser.Point}

  Multiplies Point.x and Point.y by the given x and y values. Sometimes known as `Scale`.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The value to multiply Point.x by.
  `y` | number | The value to multiply Point.x by.

  Source:
    - geom/Point.js, line 138

  ##### Returns:

  This Point object. Useful for chaining method calls.

  Type
    Phaser.Point

#### normalize() → {Phaser.Point}

  Alters the Point object so that its length is 1, but it retains the same direction.

  Source:
    - geom/Point.js, line 371

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### normalRightHand() → {Phaser.Point}

  Right-hand normalize (make unit length) this Point.

  Source:
    - geom/Point.js, line 452

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### perp() → {Phaser.Point}

  Make this Point perpendicular (90 degrees rotation)

  Source:
    - geom/Point.js, line 428

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### rotate(x, y, angle, asDegrees, distance) → {Phaser.Point}

  Rotates this Point around the x/y coordinates given to the desired angle.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `x` | number |  | The x coordinate of the anchor point.
  `y` | number |  | The y coordinate of the anchor point.
  `angle` | number |  | The angle in radians (unless asDegrees is true) to rotate the Point to.
  `asDegrees` | boolean |  | Is the given rotation in radians (false) or degrees (true)?
  `distance` | number | <optional> | An optional distance constraint between the Point and the anchor.

  Source:
    - geom/Point.js, line 317

  ##### Returns:

  The modified point object.

  Type
    Phaser.Point

#### rperp() → {Phaser.Point}

  Make this Point perpendicular (-90 degrees rotation)

  Source:
    - geom/Point.js, line 440

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### set(x, y) → {Phaser.Point}

  Sets the `x` and `y` values of this Point object to the given values. If you omit the `y` value then the `x` value will be applied to both, for example: `Point.setTo(2)` is the same as `Point.setTo(2, 2)`

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `x` | number |  | The horizontal value of this point.
  `y` | number | <optional> | The vertical value of this point. If not given the x value will be used in its place.

  Source:
    - geom/Point.js, line 87

  ##### Returns:

  This Point object. Useful for chaining method calls.

  Type
    Phaser.Point

#### setMagnitude(magnitude) → {Phaser.Point}

  Alters the length of the Point without changing the direction.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `magnitude` | number | The desired magnitude of the resulting Point.

  Source:
    - geom/Point.js, line 358

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### setTo(x, y) → {Phaser.Point}

  Sets the `x` and `y` values of this Point object to the given values. If you omit the `y` value then the `x` value will be applied to both, for example: `Point.setTo(2)` is the same as `Point.setTo(2, 2)`

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `x` | number |  | The horizontal value of this point.
  `y` | number | <optional> | The vertical value of this point. If not given the x value will be used in its place.

  Source:
    - geom/Point.js, line 68

  ##### Returns:

  This Point object. Useful for chaining method calls.

  Type
    Phaser.Point

#### subtract(x, y) → {Phaser.Point}

  Subtracts the given x and y values from this Point.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The value to subtract from Point.x.
  `y` | number | The value to subtract from Point.y.

  Source:
    - geom/Point.js, line 122

  ##### Returns:

  This Point object. Useful for chaining method calls.

  Type
    Phaser.Point

#### toString() → {string}

  Returns a string representation of this object.

  Source:
    - geom/Point.js, line 464

  ##### Returns:

  A string representation of the instance.

  Type
    string

# Class: Point

## Phaser. Point

#### new Point(x, y)

  Creates a new Point object. If you pass no parameters a Point is created set to (0, 0).

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `x` | number | <optional> | 0 | The horizontal position of this Point.
  `y` | number | <optional> | 0 | The vertical position of this Point.

  Source:
    - geom/Point.js, line 24

### Members

#### x

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The x value of the point.

  Source:
    - geom/Point.js, line 32

#### y

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `y` | number | The y value of the point.

  Source:
    - geom/Point.js, line 37

### Methods

#### <static> add(a, b, out) → {Phaser.Point}

  Adds the coordinates of two points together to create a new point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 480

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> angle(a, b) → {number}

  Returns the angle between two Point objects.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | The first Point object.
  `b` | Phaser.Point | The second Point object.

  Source:
    - geom/Point.js, line 574

  ##### Returns:

  The angle between the two Points.

  Type
    number

#### <static> angleSq(a, b) → {number}

  Returns the angle squared between two Point objects.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | The first Point object.
  `b` | Phaser.Point | The second Point object.

  Source:
    - geom/Point.js, line 589

  ##### Returns:

  The angle squared between the two Points.

  Type
    number

#### <static> centroid(points, out) → {Phaser.Point}

  Calculates centroid (or midpoint) from an array of points. If only one point is provided, that point is returned.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `points` | Phaser.Point[] |  | The array of one or more points.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 830

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> distance(a, b, round) → {number}

  Returns the distance of this Point object to the given object (can be a Circle, Point or anything with x/y properties).

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | object |  | The target object. Must have visible x and y properties that represent the center of the object.
  `b` | object |  | The target object. Must have visible x and y properties that represent the center of the object.
  `round` | boolean | <optional> | Round the distance to the nearest integer (default false).

  Source:
    - geom/Point.js, line 687

  ##### Returns:

  The distance between this Point object and the destination Point object.

  Type
    number

#### <static> divide(a, b, out) → {Phaser.Point}

  Divides the coordinates of two points to create a new point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 540

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> equals(a, b) → {boolean}

  Determines whether the two given Point objects are equal. They are considered equal if they have the same x and y values.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | The first Point object.
  `b` | Phaser.Point | The second Point object.

  Source:
    - geom/Point.js, line 560

  ##### Returns:

  A value of true if the Points are equal, otherwise false.

  Type
    boolean

#### <static> interpolate(a, b, f, out) → {Phaser.Point}

  Interpolates the two given Points, based on the `f` value (between 0 and 1) and returns a new Point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `f` | number |  | The level of interpolation between the two points. Indicates where the new point will be, along the line between pt1 and pt2. If f=1, pt1 is returned; if f=0, pt2 is returned.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 637

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> multiply(a, b, out) → {Phaser.Point}

  Multiplies the coordinates of two points to create a new point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 520

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> multiplyAdd(a, b, s, out) → {Phaser.Point}

  Adds two 2D Points together and multiplies the result by the given scalar.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `s` | number |  | The scaling value.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 619

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> negative(a, out) → {Phaser.Point}

  Creates a negative Point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 603

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> normalize(a, out) → {Phaser.Point}

  Normalize (make unit length) a Point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 775

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> normalRightHand(a, out) → {Phaser.Point}

  Right-hand normalize (make unit length) a Point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 759

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> perp(a, out) → {Phaser.Point}

  Return a perpendicular vector (90 degrees rotation)

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 655

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> project(a, b, out) → {Phaser.Point}

  Project two Points onto another Point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 711

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> projectUnit(a, b, out) → {Phaser.Point}

  Project two Points onto a Point of unit length.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 735

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> rotate(a, x, y, angle, asDegrees, distance) → {Phaser.Point}

  Rotates a Point around the x/y coordinates given to the desired angle.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `a` | Phaser.Point |  |  | The Point object to rotate.
  `x` | number |  |  | The x coordinate of the anchor point
  `y` | number |  |  | The y coordinate of the anchor point
  `angle` | number |  |  | The angle in radians (unless asDegrees is true) to rotate the Point to.
  `asDegrees` | boolean | <optional> | false | Is the given rotation in radians (false) or degrees (true)?
  `distance` | number | <optional> |  | An optional distance constraint between the Point and the anchor.

  Source:
    - geom/Point.js, line 798

  ##### Returns:

  The modified point object.

  Type
    Phaser.Point

#### <static> rperp(a, out) → {Phaser.Point}

  Return a perpendicular vector (-90 degrees rotation)

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 671

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### <static> subtract(a, b, out) → {Phaser.Point}

  Subtracts the coordinates of two points to create a new point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `a` | Phaser.Point |  | The first Point object.
  `b` | Phaser.Point |  | The second Point object.
  `out` | Phaser.Point | <optional> | Optional Point to store the value in, if not supplied a new Point object will be created.

  Source:
    - geom/Point.js, line 500

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### add(x, y) → {Phaser.Point}

  Adds the given x and y values to this Point.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The value to add to Point.x.
  `y` | number | The value to add to Point.y.

  Source:
    - geom/Point.js, line 106

  ##### Returns:

  This Point object. Useful for chaining method calls.

  Type
    Phaser.Point

#### angle(a, asDegrees) → {number}

  Returns the angle between this Point object and another object with public x and y properties.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `a` | Phaser.Point | any |  |  | The object to get the angle from this Point to.
  `asDegrees` | boolean | <optional> | false | Is the given angle in radians (false) or degrees (true)?

  Source:
    - geom/Point.js, line 281

  ##### Returns:

  The angle between the two objects.

  Type
    number

#### angleSq(a) → {number}

  Returns the angle squared between this Point object and another object with public x and y properties.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | any | The object to get the angleSq from this Point to.

  Source:
    - geom/Point.js, line 304

  ##### Returns:

  The angleSq between the two objects.

  Type
    number

#### clamp(min, max) → {Phaser.Point}

  Clamps this Point object values to be between the given min and max.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `min` | number | The minimum value to clamp this Point to.
  `max` | number | The maximum value to clamp this Point to.

  Source:
    - geom/Point.js, line 200

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### clampX(min, max) → {Phaser.Point}

  Clamps the x value of this Point to be between the given min and max.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `min` | number | The minimum value to clamp this Point to.
  `max` | number | The maximum value to clamp this Point to.

  Source:
    - geom/Point.js, line 170

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### clampY(min, max) → {Phaser.Point}

  Clamps the y value of this Point to be between the given min and max

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `min` | number | The minimum value to clamp this Point to.
  `max` | number | The maximum value to clamp this Point to.

  Source:
    - geom/Point.js, line 185

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### clone(output) → {Phaser.Point}

  Creates a copy of the given Point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `output` | Phaser.Point | <optional> | Optional Point object. If given the values will be set into this object, otherwise a brand new Point object will be created and returned.

  Source:
    - geom/Point.js, line 216

  ##### Returns:

  The new Point object.

  Type
    Phaser.Point

#### copyFrom(source) → {Phaser.Point}

  Copies the x and y properties from any given object to this Point.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `source` | any | The object to copy from.

  Source:
    - geom/Point.js, line 43

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### copyTo(dest) → {Object}

  Copies the x and y properties from this Point to any given object.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `dest` | any | The object to copy to.

  Source:
    - geom/Point.js, line 238

  ##### Returns:

  The dest object.

  Type
    Object

#### cross(a) → {number}

  The cross product of this and another Point object.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | The Point object to get the cross product combined with this Point.

  Source:
    - geom/Point.js, line 415

  ##### Returns:

  The result.

  Type
    number

#### distance(dest, round) → {number}

  Returns the distance of this Point object to the given object (can be a Circle, Point or anything with x/y properties)

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `dest` | object |  | The target object. Must have visible x and y properties that represent the center of the object.
  `round` | boolean | <optional> | Round the distance to the nearest integer (default false).

  Source:
    - geom/Point.js, line 254

  ##### Returns:

  The distance between this Point object and the destination Point object.

  Type
    number

#### divide(x, y) → {Phaser.Point}

  Divides Point.x and Point.y by the given x and y values.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The value to divide Point.x by.
  `y` | number | The value to divide Point.x by.

  Source:
    - geom/Point.js, line 154

  ##### Returns:

  This Point object. Useful for chaining method calls.

  Type
    Phaser.Point

#### dot(a) → {number}

  The dot product of this and another Point object.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | The Point object to get the dot product combined with this Point.

  Source:
    - geom/Point.js, line 402

  ##### Returns:

  The result.

  Type
    number

#### equals(a) → {boolean}

  Determines whether the given objects x/y values are equal to this Point object.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | Phaser.Point | any | The object to compare with this Point.

  Source:
    - geom/Point.js, line 268

  ##### Returns:

  A value of true if the x and y points are equal, otherwise false.

  Type
    boolean

#### getMagnitude() → {number}

  Calculates the length of the Point object.

  Source:
    - geom/Point.js, line 334

  ##### Returns:

  The length of the Point.

  Type
    number

#### getMagnitudeSq() → {number}

  Calculates the length squared of the Point object.

  Source:
    - geom/Point.js, line 346

  ##### Returns:

  The length ^ 2 of the Point.

  Type
    number

#### invert() → {Phaser.Point}

  Inverts the x and y values of this Point

  Source:
    - geom/Point.js, line 56

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### isZero() → {boolean}

  Determine if this point is at 0,0.

  Source:
    - geom/Point.js, line 390

  ##### Returns:

  True if this Point is 0,0, otherwise false.

  Type
    boolean

#### multiply(x, y) → {Phaser.Point}

  Multiplies Point.x and Point.y by the given x and y values. Sometimes known as `Scale`.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The value to multiply Point.x by.
  `y` | number | The value to multiply Point.x by.

  Source:
    - geom/Point.js, line 138

  ##### Returns:

  This Point object. Useful for chaining method calls.

  Type
    Phaser.Point

#### normalize() → {Phaser.Point}

  Alters the Point object so that its length is 1, but it retains the same direction.

  Source:
    - geom/Point.js, line 371

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### normalRightHand() → {Phaser.Point}

  Right-hand normalize (make unit length) this Point.

  Source:
    - geom/Point.js, line 452

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### perp() → {Phaser.Point}

  Make this Point perpendicular (90 degrees rotation)

  Source:
    - geom/Point.js, line 428

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### rotate(x, y, angle, asDegrees, distance) → {Phaser.Point}

  Rotates this Point around the x/y coordinates given to the desired angle.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `x` | number |  | The x coordinate of the anchor point.
  `y` | number |  | The y coordinate of the anchor point.
  `angle` | number |  | The angle in radians (unless asDegrees is true) to rotate the Point to.
  `asDegrees` | boolean |  | Is the given rotation in radians (false) or degrees (true)?
  `distance` | number | <optional> | An optional distance constraint between the Point and the anchor.

  Source:
    - geom/Point.js, line 317

  ##### Returns:

  The modified point object.

  Type
    Phaser.Point

#### rperp() → {Phaser.Point}

  Make this Point perpendicular (-90 degrees rotation)

  Source:
    - geom/Point.js, line 440

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### set(x, y) → {Phaser.Point}

  Sets the `x` and `y` values of this Point object to the given values. If you omit the `y` value then the `x` value will be applied to both, for example: `Point.setTo(2)` is the same as `Point.setTo(2, 2)`

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `x` | number |  | The horizontal value of this point.
  `y` | number | <optional> | The vertical value of this point. If not given the x value will be used in its place.

  Source:
    - geom/Point.js, line 87

  ##### Returns:

  This Point object. Useful for chaining method calls.

  Type
    Phaser.Point

#### setMagnitude(magnitude) → {Phaser.Point}

  Alters the length of the Point without changing the direction.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `magnitude` | number | The desired magnitude of the resulting Point.

  Source:
    - geom/Point.js, line 358

  ##### Returns:

  This Point object.

  Type
    Phaser.Point

#### setTo(x, y) → {Phaser.Point}

  Sets the `x` and `y` values of this Point object to the given values. If you omit the `y` value then the `x` value will be applied to both, for example: `Point.setTo(2)` is the same as `Point.setTo(2, 2)`

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `x` | number |  | The horizontal value of this point.
  `y` | number | <optional> | The vertical value of this point. If not given the x value will be used in its place.

  Source:
    - geom/Point.js, line 68

  ##### Returns:

  This Point object. Useful for chaining method calls.

  Type
    Phaser.Point

#### subtract(x, y) → {Phaser.Point}

  Subtracts the given x and y values from this Point.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The value to subtract from Point.x.
  `y` | number | The value to subtract from Point.y.

  Source:
    - geom/Point.js, line 122

  ##### Returns:

  This Point object. Useful for chaining method calls.

  Type
    Phaser.Point

#### toString() → {string}

  Returns a string representation of this object.

  Source:
    - geom/Point.js, line 464

  ##### Returns:

  A string representation of the instance.

  Type
    string