Phaser Class: AABB

## Phaser.Physics.Ninja. AABB

#### new AABB(body, x, y, width, height)

  Ninja Physics AABB constructor.
  Note: This class could be massively optimised and reduced in size. I leave that challenge up to you.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `body` | Phaser.Physics.Ninja.Body | The body that owns this shape.
  `x` | number | The x coordinate to create this shape at.
  `y` | number | The y coordinate to create this shape at.
  `width` | number | The width of this AABB.
  `height` | number | The height of this AABB.

  Source - physics/ninja/AABB.js, line 20

### Members

#### aabbTileProjections :object

  All of the collision response handlers.

  Source - physics/ninja/AABB.js, line 86

#### body

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `system` | Phaser.Physics.Ninja.Body | A reference to the body that owns this shape.

  Source - physics/ninja/AABB.js, line 25

#### <readonly> height :number

  The height.

  Source - physics/ninja/AABB.js, line 64

#### oldpos :Phaser.Point

  The position of this object in the previous update.

  Source - physics/ninja/AABB.js, line 40

#### pos :Phaser.Point

  The position of this object.

  Source - physics/ninja/AABB.js, line 35

#### system :Phaser.Physics.Ninja

  A reference to the physics system.

  Source - physics/ninja/AABB.js, line 30

#### velocity :Phaser.Point

  The velocity of this object.

  Source - physics/ninja/AABB.js, line 81

#### <readonly> width :number

  The width.

  Source - physics/ninja/AABB.js, line 58

#### <readonly> xw :number

  Half the width.

  Source - physics/ninja/AABB.js, line 46

#### <readonly> yw

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `xw` | number | Half the height.

  Source - physics/ninja/AABB.js, line 52

### Methods

#### collideAABBVsAABB(aabb)

  Collides this AABB against a AABB.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `aabb` | Phaser.Physics.Ninja.AABB | The AABB to collide against.

  Source - physics/ninja/AABB.js, line 336

#### collideAABBVsTile(tile)

  Collides this AABB against a Tile.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tile` | Phaser.Physics.Ninja.Tile | The Tile to collide against.

  Source - physics/ninja/AABB.js, line 408

#### collideWorldBounds()

  Collides this AABB against the world bounds.

  Source - physics/ninja/AABB.js, line 295

#### destroy()

  Destroys this AABB's reference to Body and System

  Source - physics/ninja/AABB.js, line 993

#### integrate()

  Updates this AABBs position.

  Source - physics/ninja/AABB.js, line 108

#### projAABB_22DegB(x, y, obj, t) → {number}

  Resolves 22 Degree tile collision.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | Penetration depth on the x axis.
  `y` | number | Penetration depth on the y axis.
  `obj` | Phaser.Physics.Ninja.AABB | The AABB involved in the collision.
  `t` | Phaser.Physics.Ninja.Tile | The Tile involved in the collision.

  ##### Returns:

  number -

  The result of the collision.

  Source - physics/ninja/AABB.js, line 702

#### projAABB_22DegS(x, y, obj, t) → {number}

  Resolves 22 Degree tile collision.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | Penetration depth on the x axis.
  `y` | number | Penetration depth on the y axis.
  `obj` | Phaser.Physics.Ninja.AABB | The AABB involved in the collision.
  `t` | Phaser.Physics.Ninja.Tile | The Tile involved in the collision.

  ##### Returns:

  number -

  The result of the collision.

  Source - physics/ninja/AABB.js, line 622

#### projAABB_45Deg(x, y, obj, t) → {number}

  Resolves 45 Degree tile collision.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | Penetration depth on the x axis.
  `y` | number | Penetration depth on the y axis.
  `obj` | Phaser.Physics.Ninja.AABB | The AABB involved in the collision.
  `t` | Phaser.Physics.Ninja.Tile | The Tile involved in the collision.

  ##### Returns:

  number -

  The result of the collision.

  Source - physics/ninja/AABB.js, line 569

#### projAABB_67DegB(x, y, obj, t) → {number}

  Resolves 67 Degree tile collision.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | Penetration depth on the x axis.
  `y` | number | Penetration depth on the y axis.
  `obj` | Phaser.Physics.Ninja.AABB | The AABB involved in the collision.
  `t` | Phaser.Physics.Ninja.Tile | The Tile involved in the collision.

  ##### Returns:

  number -

  The result of the collision.

  Source - physics/ninja/AABB.js, line 834

#### projAABB_67DegS(x, y, obj, t) → {number}

  Resolves 67 Degree tile collision.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | Penetration depth on the x axis.
  `y` | number | Penetration depth on the y axis.
  `obj` | Phaser.Physics.Ninja.AABB | The AABB involved in the collision.
  `t` | Phaser.Physics.Ninja.Tile | The Tile involved in the collision.

  ##### Returns:

  number -

  The result of the collision.

  Source - physics/ninja/AABB.js, line 755

#### projAABB_Concave(x, y, obj, t) → {number}

  Resolves Concave tile collision.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | Penetration depth on the x axis.
  `y` | number | Penetration depth on the y axis.
  `obj` | Phaser.Physics.Ninja.AABB | The AABB involved in the collision.
  `t` | Phaser.Physics.Ninja.Tile | The Tile involved in the collision.

  ##### Returns:

  number -

  The result of the collision.

  Source - physics/ninja/AABB.js, line 935

#### projAABB_Convex(x, y, obj, t) → {number}

  Resolves Convex tile collision.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | Penetration depth on the x axis.
  `y` | number | Penetration depth on the y axis.
  `obj` | Phaser.Physics.Ninja.AABB | The AABB involved in the collision.
  `t` | Phaser.Physics.Ninja.Tile | The Tile involved in the collision.

  ##### Returns:

  number -

  The result of the collision.

  Source - physics/ninja/AABB.js, line 885

#### projAABB_Full(x, y, obj, t) → {number}

  Resolves Full tile collision.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | Penetration depth on the x axis.
  `y` | number | Penetration depth on the y axis.
  `obj` | Phaser.Physics.Ninja.AABB | The AABB involved in the collision.
  `t` | Phaser.Physics.Ninja.Tile | The Tile involved in the collision.

  ##### Returns:

  number -

  The result of the collision.

  Source - physics/ninja/AABB.js, line 491

#### projAABB_Half(x, y, obj, t) → {number}

  Resolves Half tile collision.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | Penetration depth on the x axis.
  `y` | number | Penetration depth on the y axis.
  `obj` | Phaser.Physics.Ninja.AABB | The AABB involved in the collision.
  `t` | Phaser.Physics.Ninja.Tile | The Tile involved in the collision.

  ##### Returns:

  number -

  The result of the collision.

  Source - physics/ninja/AABB.js, line 510

#### render(context, xOffset, yOffset, color, filled)

  Render this AABB for debugging purposes.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `context` | object | The context to render to.
  `xOffset` | number | X offset from AABB's position to render at.
  `yOffset` | number | Y offset from AABB's position to render at.
  `color` | string | color of the debug shape to be rendered. (format is css color string).
  `filled` | boolean | Render the shape as solid (true) or hollow (false).

  Source - physics/ninja/AABB.js, line 1003

#### reportCollision(px, py, dx, dy)

  Process a collision partner-agnostic collision response and apply the resulting forces.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `px` | number | The tangent velocity
  `py` | number | The tangent velocity
  `dx` | number | Collision normal
  `dy` | number | Collision normal

  Source - physics/ninja/AABB.js, line 128

#### reportCollisionVsBody(px, py, dx, dy, obj)

  Process a body collision and apply the resulting forces. Still very much WIP and doesn't work fully. Feel free to fix!

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `px` | number | The tangent velocity
  `py` | number | The tangent velocity
  `dx` | number | Collision normal
  `dy` | number | Collision normal
  `obj` | number | Object this AABB collided with

  Source - physics/ninja/AABB.js, line 248

#### reportCollisionVsWorld(px, py, dx, dy)

  Process a world collision and apply the resulting forces.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `px` | number | The tangent velocity
  `py` | number | The tangent velocity
  `dx` | number | Collision normal
  `dy` | number | Collision normal

  Source - physics/ninja/AABB.js, line 202

#### resolveTile(x, y, body, tile) → {boolean}

  Resolves tile collision.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | Penetration depth on the x axis.
  `y` | number | Penetration depth on the y axis.
  `body` | Phaser.Physics.Ninja.AABB | The AABB involved in the collision.
  `tile` | Phaser.Physics.Ninja.Tile | The Tile involved in the collision.

  ##### Returns:

  boolean -

  True if the collision was processed, otherwise false.

  Source - physics/ninja/AABB.js, line 467

#### reverse()

  Source - physics/ninja/AABB.js, line 216