planck
Version:
2D JavaScript/TypeScript physics engine for cross-platform HTML5 game development
298 lines (149 loc) • 3.83 kB
Markdown
# Class: AABB
Axis-aligned bounding box
## Constructors
### new AABB()
> **new AABB**(`lower`?, `upper`?): [`AABB`](/api/classes/AABB)
#### Parameters
• **lower?**: [`Vec2Value`](/api/interfaces/Vec2Value)
• **upper?**: [`Vec2Value`](/api/interfaces/Vec2Value)
#### Returns
[`AABB`](/api/classes/AABB)
## Properties
### lowerBound
> **lowerBound**: [`Vec2`](/api/classes/Vec2)
***
### upperBound
> **upperBound**: [`Vec2`](/api/classes/Vec2)
## Methods
### combine()
> **combine**(`a`, `b`?): `void`
Combine one or two AABB into this one.
#### Parameters
• **a**: [`AABBValue`](/api/interfaces/AABBValue)
• **b?**: [`AABBValue`](/api/interfaces/AABBValue)
#### Returns
`void`
***
### combinePoints()
> **combinePoints**(`a`, `b`): `void`
#### Parameters
• **a**: [`Vec2Value`](/api/interfaces/Vec2Value)
• **b**: [`Vec2Value`](/api/interfaces/Vec2Value)
#### Returns
`void`
***
### contains()
> **contains**(`aabb`): `boolean`
#### Parameters
• **aabb**: [`AABBValue`](/api/interfaces/AABBValue)
#### Returns
`boolean`
***
### extend()
> **extend**(`value`): [`AABB`](/api/classes/AABB)
#### Parameters
• **value**: `number`
#### Returns
[`AABB`](/api/classes/AABB)
***
### getCenter()
> **getCenter**(): [`Vec2`](/api/classes/Vec2)
Get the center of the AABB.
#### Returns
[`Vec2`](/api/classes/Vec2)
***
### getExtents()
> **getExtents**(): [`Vec2`](/api/classes/Vec2)
Get the extents of the AABB (half-widths).
#### Returns
[`Vec2`](/api/classes/Vec2)
***
### getPerimeter()
> **getPerimeter**(): `number`
Get the perimeter length.
#### Returns
`number`
***
### isValid()
> **isValid**(): `boolean`
Verify that the bounds are sorted.
#### Returns
`boolean`
***
### rayCast()
> **rayCast**(`output`, `input`): `boolean`
#### Parameters
• **output**: [`RayCastOutput`](/api/interfaces/RayCastOutput)
• **input**: [`RayCastInput`](/api/interfaces/RayCastInput)
#### Returns
`boolean`
***
### set()
> **set**(`aabb`): `void`
#### Parameters
• **aabb**: [`AABBValue`](/api/interfaces/AABBValue)
#### Returns
`void`
***
### areEqual()
> `static` **areEqual**(`a`, `b`): `boolean`
#### Parameters
• **a**: [`AABBValue`](/api/interfaces/AABBValue)
• **b**: [`AABBValue`](/api/interfaces/AABBValue)
#### Returns
`boolean`
***
### assert()
> `static` **assert**(`o`): `void`
#### Parameters
• **o**: `any`
#### Returns
`void`
***
### combinedPerimeter()
> `static` **combinedPerimeter**(`a`, `b`): `number`
#### Parameters
• **a**: [`AABBValue`](/api/interfaces/AABBValue)
• **b**: [`AABBValue`](/api/interfaces/AABBValue)
#### Returns
`number`
***
### combinePoints()
> `static` **combinePoints**(`out`, `a`, `b`): [`AABBValue`](/api/interfaces/AABBValue)
#### Parameters
• **out**: [`AABBValue`](/api/interfaces/AABBValue)
• **a**: [`Vec2Value`](/api/interfaces/Vec2Value)
• **b**: [`Vec2Value`](/api/interfaces/Vec2Value)
#### Returns
[`AABBValue`](/api/interfaces/AABBValue)
***
### diff()
> `static` **diff**(`a`, `b`): `number`
#### Parameters
• **a**: [`AABBValue`](/api/interfaces/AABBValue)
• **b**: [`AABBValue`](/api/interfaces/AABBValue)
#### Returns
`number`
***
### extend()
> `static` **extend**(`out`, `value`): [`AABBValue`](/api/interfaces/AABBValue)
#### Parameters
• **out**: [`AABBValue`](/api/interfaces/AABBValue)
• **value**: `number`
#### Returns
[`AABBValue`](/api/interfaces/AABBValue)
***
### isValid()
> `static` **isValid**(`obj`): `boolean`
#### Parameters
• **obj**: `any`
#### Returns
`boolean`
***
### testOverlap()
> `static` **testOverlap**(`a`, `b`): `boolean`
#### Parameters
• **a**: [`AABBValue`](/api/interfaces/AABBValue)
• **b**: [`AABBValue`](/api/interfaces/AABBValue)
#### Returns
`boolean`