UNPKG

pocket-physics

Version:

Verlet physics extracted from pocket-ces demos

42 lines 2.25 kB
export declare type Vector2<V extends number = number> = { x: V; y: V; }; export declare function v2<V extends number>(x?: V, y?: V): Vector2<V>; export declare const copy: <V extends number>(out: Vector2<V>, a: Vector2<V>) => Vector2<V>; export declare const set: <V extends number>(out: Vector2<V>, x: V, y: V) => Vector2<V>; export declare const add: <V extends number>(out: Vector2<V>, a: Vector2<V>, b: Vector2<V>) => Vector2<V>; export declare const sub: <V extends number>(out: Vector2<V>, a: Vector2<V>, b: Vector2<V>) => Vector2<V>; export declare const dot: <V extends number>(a: Vector2<V>, b: Vector2<V>) => number; export declare const scale: <V extends number>(out: Vector2<V>, a: Vector2<V>, factor: number) => Vector2<V>; export declare const distance: <V extends number>(v1: Vector2<V>, v2: Vector2<V>) => number; export declare const distance2: <V extends number>(v1: Vector2<V>, v2: Vector2<V>) => number; export declare const magnitude: <V extends number>(v1: Vector2<V>) => number; export declare const normalize: <V extends number>(out: Vector2<V>, a: Vector2<V>) => Vector2<V>; /** * Compute the normal pointing away perpendicular from two vectors. * Given v1(0,0) -> v2(10, 0), the normal will be (0, 1) * */ export declare const normal: <V extends number>(out: Vector2<V>, v1: Vector2<V>, v2: Vector2<V>) => Vector2<V>; export declare const perpDot: <V extends number>(v1: Vector2<V>, v2: Vector2<V>) => number; /** * This is mostly useful for moving a verlet-style [current, previous] * by the same amount, translating them while preserving velocity. * @param by the vector to add to each subsequent vector * @param vN any number of vectors to translate */ export declare const translate: <V extends number>(by: Vector2<V>, ...vN: Vector2<V>[]) => void; /** * * @param v Print this vector for nice logs */ export declare function vd(v: Vector2): string; /** * Rotate a vector around another point. Taken nearly verbatim from gl-matrix */ export declare const rotate2d: <V extends Vector2<number>>(out: V, target: V, origin: V, rad: number) => V; /** * Compute the Theta angle between a vector and the origin. */ export declare function angleOf(v: Vector2): number; //# sourceMappingURL=v2.d.ts.map