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
TypeScript
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;
}