@stringsync/vexml
Version:
MusicXML to Vexflow
29 lines (28 loc) • 940 B
TypeScript
import { Shape } from './types';
/** Represents a collision between two shapes. */
export declare class Collision {
/** Creates a CollisionSubject for fluent APIs. */
static is(shape: Shape): CollisionSubject;
}
/**
* A collision calculator that enables fluent APIs.
*
* This is done to reduce ambiguity of the semantics behind the collision checks.
*
* @example Collision.is(rect).collidingWith(circle); // boolean
* @example Collision.is(circle).surroundedBy(rect); // boolean
*/
declare class CollisionSubject {
private shape;
constructor(shape: Shape);
collidingWith(shape: Shape): boolean;
surrounding(shape: Shape): boolean;
private isRectCollidingWithRect;
private isCircleCollidingWithCircle;
private isRectCollidingWithCircle;
private isRectSurroundingRect;
private isCircleSurroundingCircle;
private isRectSurroundingCircle;
private isCircleSurroundingRect;
}
export {};