UNPKG

@vicimpa/lib-vec2

Version:

A comprehensive TypeScript library for 2D vector manipulation, compatible with CanvasRenderingContext2D.

425 lines (422 loc) 8.21 kB
// Generated by dts-bundle-generator v9.5.1 export type Vec2Point = { x: number; y: number; }; export type Vec2Tuple = [ x: number, y: number ]; export type Vec2Size = { width: number; height: number; }; export type Vec2PageXY = { pageX: number; pageY: number; }; export type Vec2OffsetXY = { offsetX: number; offsetY: number; }; export type Vec2DeltaXY = { deltaX: number; deltaY: number; }; export type Vec2OffsetSize = { offsetWidth: number; offsetHeight: number; }; export type Vec2InnerSize = { innerWidth: number; innerHeight: number; }; export type Vec2Args = [ xy: number | Vec2Point ] | [ x: number, y: number ]; export type Vec2Clamp = [ min: Vec2Args[0], max: Vec2Args[0] ] | [ minX: number, minY: number, maxX: number, maxY: number ]; export declare function vec2(...args: Vec2Args | [ ]): Vec2; export declare class Vec2 { x: number; y: number; get point(): Vec2Point; get tuple(): Vec2Tuple; get size(): Vec2Size; get p(): Vec2Point; get t(): Vec2Tuple; get s(): Vec2Size; [Symbol.iterator](): Iterator<number>; toString(): string; constructor(...args: Vec2Args | [ ]); equal(...args: Vec2Args): boolean; set(...args: Vec2Args): this; toObject(o: Vec2Point): this; toObjectSize(o: Vec2Size): this; toTuple(o: Vec2Tuple): this; clone(): Vec2; min(): number; max(): number; angle(): number; length(): number; distance(...args: Vec2Args): number; dot(...args: Vec2Args): number; scalar(...args: Vec2Args): number; plus(...args: Vec2Args): this; minus(...args: Vec2Args): this; times(...args: Vec2Args): this; div(...args: Vec2Args): this; rem(...args: Vec2Args): this; pow(...args: Vec2Args): this; abs(): this; sign(): this; round(): this; ceil(): this; floor(): this; normalize(): this; inverse(): this; clampMin(...args: Vec2Args): this; clampMax(...args: Vec2Args): this; clamp(...args: Vec2Clamp): this; cplus(...args: Vec2Args): Vec2; cminus(...args: Vec2Args): Vec2; ctimes(...args: Vec2Args): Vec2; cdiv(...args: Vec2Args): Vec2; crem(...args: Vec2Args): Vec2; cpow(...args: Vec2Args): Vec2; cabs(): Vec2; csign(): Vec2; cround(): Vec2; cceil(): Vec2; cfloor(): Vec2; cnormalize(): Vec2; cinverse(): Vec2; cclampMin(...args: Vec2Args): Vec2; cclampMax(...args: Vec2Args): Vec2; cclamp(...args: Vec2Clamp): Vec2; static fromAngle(angle: number, vec?: Vec2): Vec2; static fromRandom(vec?: Vec2): Vec2; static fromSrandom(vec?: Vec2): Vec2; static fromSize(size: Vec2Size, vec?: Vec2): Vec2; static fromDeltaXY(page: Vec2DeltaXY, vec?: Vec2): Vec2; static fromPageXY(page: Vec2PageXY, vec?: Vec2): Vec2; static fromOffsetXY(offset: Vec2OffsetXY, vec?: Vec2): Vec2; static fromInnerSize(offsetSize: Vec2InnerSize, vec?: Vec2): Vec2; static fromOffsetSize(offsetSize: Vec2OffsetSize, vec?: Vec2): Vec2; static fromSvgLength(x: SVGAnimatedLength, y: SVGAnimatedLength, vec?: Vec2): Vec2; } export declare class Vec2Map<T> { private _data; private _keys; private _vectors; get size(): number; has(...args: Vec2Args): boolean; get(...args: Vec2Args): T | undefined; set(...args: [ ...Vec2Args, value: T ]): this; delete(...args: Vec2Args): boolean; clear(): this; forEach(callback: (value: T, key: Vec2) => any): void; [Symbol.iterator](): Iterator<[ key: Vec2, value: T ]>; } export declare class Vec2Set { private _data; private _keys; private _vectors; get size(): number; has(...args: Vec2Args): boolean; add(...args: Vec2Args): this; delete(...args: Vec2Args): boolean; clear(): this; forEach(callback: (value: Vec2) => any): void; [Symbol.iterator](): Iterator<Vec2>; } declare global { type TXY = [ x: number, y: number ] | [ xy: Vec2 ]; type TAB = [ a: number, b: number ] | [ ab: Vec2 ]; type TCD = [ c: number, d: number ] | [ cd: Vec2 ]; type TEF = [ e: number, f: number ] | [ cd: Vec2 ]; type TSXY = [ sx: number, sy: number ] | [ xy: Vec2 ]; type TXY0 = [ x0: number, y0: number ] | [ xy0: Vec2 ]; type TXY1 = [ x1: number, y1: number ] | [ xy1: Vec2 ]; type TXY2 = [ x2: number, y2: number ] | [ xy2: Vec2 ]; type TCP = [ cpx: number, cpy: number ] | [ cp: Vec2 ]; type TCP1 = [ cp1x: number, cp1y: number ] | [ cp1: Vec2 ]; type TCP2 = [ cp2x: number, cp2y: number ] | [ cp2: Vec2 ]; type TDXY = [ dx: number, dy: number ] | [ dxy: Vec2 ]; type TWH = [ w: number, h: number ] | [ wh: Vec2 ]; type TSWH = [ sw: number, sh: number ] | [ wh: Vec2 ]; type TDWH = [ dw: number, dh: number ] | [ dwh: Vec2 ]; type TAngles = [ startAngle: number, endAngle: number ] | [ startEndAngle: Vec2 ]; type TRadius = [ radiusX: number, radiusY: number ] | [ radiusXY: Vec2 ]; type TDirtyXY = [ dirtyX: number, dirtyY: number ] | [ dirtyXY: Vec2 ]; type TDirtyWidthHeight = [ dirtyWidth: number, dirtyHeight: number ] | [ dirtyWidthHeight: Vec2 ]; type TABCDEF = [ ...TAB, ...TCD, ...TEF ]; type TXY01 = [ ...TXY0, ...TXY1 ]; type TXY01R = [ ...TXY0, r0: number, ...TXY1, r1: number ]; type TXYMaxWidth = [ ...TXY, maxWidth?: number ]; type TXYFillRule = [ ...TXY, fillRule?: CanvasFillRule ]; type TXYWH = [ ...TXY, ...TWH ]; type TDXYWH = [ ...TDXY, ...TDWH ]; type TDSXYWH = [ ...TSXY, ...TSWH, ...TDXYWH ]; interface CanvasRect { clearRect(...args: TXYWH): void; fillRect(...args: TXYWH): void; strokeRect(...args: TXYWH): void; } interface CanvasPath { arc(...args: [ ...TXY, radius: number, ...TAngles, counterclockwise?: boolean ]): void; arcTo(...args: [ ...TXY1, ...TXY2, radius: number ]): void; bezierCurveTo(...args: [ ...TCP1, ...TCP2, ...TXY ]): void; ellipse(...args: [ ...TXY, ...TRadius, rotation: number, ...TAngles, counterclockwise?: boolean ]): void; lineTo(...args: TXY): void; moveTo(...args: TXY): void; quadraticCurveTo(...args: [ ...TCP, ...TXY ]): void; rect(...args: TXYWH): void; roundRect(...args: [ ...TXYWH, radii?: number | DOMPointInit | (number | DOMPointInit)[] ]): void; } interface Path2D { arc(...args: [ ...TXY, radius: number, ...TAngles, counterclockwise?: boolean ]): void; arcTo(...args: [ ...TXY1, ...TXY2, radius: number ]): void; bezierCurveTo(...args: [ ...TCP1, ...TCP2, ...TXY ]): void; ellipse(...args: [ ...TXY, ...TRadius, rotation: number, ...TAngles, counterclockwise?: boolean ]): void; lineTo(...args: TXY): void; moveTo(...args: TXY): void; quadraticCurveTo(...args: [ ...TCP, ...TXY ]): void; rect(...args: TXYWH): void; roundRect(...args: [ ...TXYWH, radii?: number | DOMPointInit | (number | DOMPointInit)[] ]): void; } interface CanvasDrawImage { drawImage(image: CanvasImageSource, ...args: TDXY): void; drawImage(image: CanvasImageSource, ...args: TDXYWH): void; drawImage(image: CanvasImageSource, ...args: TDSXYWH): void; } interface CanvasImageData { createImageData(...args: [ ...TSWH, settings?: ImageDataSettings ]): ImageData; getImageData(...args: [ ...TXYWH, settings?: ImageDataSettings ]): ImageData; putImageData(imagedata: ImageData, ...args: TDXY): void; putImageData(imagedata: ImageData, ...args: [ ...TDXY, ...TDirtyXY, ...TDirtyWidthHeight ]): void; } interface CanvasDrawPath { isPointInPath(...args: TXYFillRule): boolean; isPointInPath(path: Path2D, ...args: TXYFillRule): boolean; isPointInStroke(...args: TXY): boolean; isPointInStroke(path: Path2D, ...args: TXY): boolean; } interface CanvasFillStrokeStyles { createConicGradient(startAngle: number, ...args: TXY): CanvasGradient; createLinearGradient(...args: TXY01): CanvasGradient; createRadialGradient(...args: TXY01R): CanvasGradient; } interface CanvasText { fillText(text: string, ...args: TXYMaxWidth): void; strokeText(text: string, ...args: TXYMaxWidth): void; } interface CanvasTransform { scale(...args: TXY): void; setTransform(...args: TABCDEF): void; transform(...args: TABCDEF): void; translate(...args: TXY): void; } } export {};