UNPKG

excalibur

Version:

Excalibur.js is a simple JavaScript game engine with TypeScript bindings for making 2D games in HTML5 Canvas. Our mission is to make web game development as simple as possible.

59 lines (58 loc) 1.85 kB
import { LineSegment } from '../../Math/line-segment'; import { Vector } from '../../Math/vector'; import { Collider } from './Collider'; import { CircleCollider } from './CircleCollider'; import { PolygonCollider } from './PolygonCollider'; import { Pool } from '../../Util/Pool'; /** * Specific information about a contact and it's separation */ export declare class SeparationInfo { /** * Collider A */ collider: Collider; /** * Signed value (negative means overlap, positive no overlap) */ separation: number; /** * Axis of separation from the collider's perspective */ axis: Vector; /** * Local axis of separation from the collider's perspective */ localAxis?: Vector; /** * Side of separation (reference) from the collider's perspective */ side?: LineSegment; /** * Local side of separation (reference) from the collider's perspective */ localSide?: LineSegment; /** * Index of the separation side (reference) from the collider's perspective */ sideId?: number; /** * Point on collider B (incident point) */ point: Vector; /** * Local point on collider B (incident point) */ localPoint?: Vector; } export declare class SeparatingAxis { static SeparationPool: Pool<SeparationInfo>; private static _ZERO; private static _SCRATCH_POINT; private static _SCRATCH_SUB_POINT; private static _SCRATCH_NORMAL; private static _SCRATCH_MATRIX; static findPolygonPolygonSeparation(polyA: PolygonCollider, polyB: PolygonCollider): SeparationInfo; static findCirclePolygonSeparation(circle: CircleCollider, polygon: PolygonCollider): Vector | null; static findPolygonPolygonSeparationDegenerate(polyA: PolygonCollider, polyB: PolygonCollider): SeparationInfo; }