/** * Some docs * @namespace wgpu-matrix */ import { MutableNumberArray, BaseArgType } from './types'; import { Mat3Arg, Mat3Type } from './mat3-impl'; import { Mat4Arg, Mat4Type } from './mat4-impl'; import { QuatArg, QuatType, RotationOrder } from './quat-impl'; import { Vec2Arg, Vec2Type } from './vec2-impl'; import { Vec3Arg, Vec3Type } from './vec3-impl'; import { Vec4Arg, Vec4Type } from './vec4-impl'; import * as utils from './utils'; export { RotationOrder, utils, MutableNumberArray, BaseArgType, Mat3Arg, Mat4Arg, QuatArg, Vec2Arg, Vec3Arg, Vec4Arg, Mat3Type, Mat4Type, QuatType, Vec2Type, Vec3Type, Vec4Type, }; export type BaseCtor = new (n: number) => T; export type Mat3 = Mat3Type; export type Mat4 = Mat4Type; export type Quat = QuatType; export type Vec2 = Vec2Type; export type Vec3 = Vec3Type; export type Vec4 = Vec4Type; export type Mat3d = Mat3Type; export type Mat4d = Mat4Type; export type Quatd = QuatType; export type Vec2d = Vec2Type; export type Vec3d = Vec3Type; export type Vec4d = Vec4Type; export type Mat3n = Mat3Type; export type Mat4n = Mat4Type; export type Quatn = QuatType; export type Vec2n = Vec2Type; export type Vec3n = Vec3Type; export type Vec4n = Vec4Type; export declare const /** * 3x3 Matrix functions that default to returning `Float32Array` * @namespace */ mat3: { add: >(a: Mat3Arg, b: Mat3Arg, dst?: T | undefined) => T; clone: >(m: Mat3Arg, dst?: T | undefined) => T; copy: >(m: Mat3Arg, dst?: T | undefined) => T; create: (v0?: number, v1?: number, v2?: number, v3?: number, v4?: number, v5?: number, v6?: number, v7?: number, v8?: number) => Float32Array; determinant: (m: Mat3Arg) => number; equals: (a: Mat3Arg, b: Mat3Arg) => boolean; equalsApproximately: (a: Mat3Arg, b: Mat3Arg) => boolean; fromMat4: >(m4: Mat4Arg, dst?: T | undefined) => T; fromQuat: >(q: QuatArg, dst?: T | undefined) => T; get3DScaling: >(m: Mat3Arg, dst?: T | undefined) => Float32Array | T; getAxis: >(m: Mat3Arg, axis: number, dst?: T | undefined) => T; getScaling: >(m: Mat3Arg, dst?: T | undefined) => Float32Array | T; getTranslation: >(m: Mat3Arg, dst?: T | undefined) => T; identity: >(dst?: T | undefined) => T; inverse: >(m: Mat3Arg, dst?: T | undefined) => T; invert: >(m: Mat3Arg, dst?: T | undefined) => T; mul: >(a: Mat3Arg, b: Mat3Arg, dst?: T | undefined) => T; mulScalar: >(m: Mat3Arg, s: number, dst?: T | undefined) => T; multiply: >(a: Mat3Arg, b: Mat3Arg, dst?: T | undefined) => T; multiplyScalar: >(m: Mat3Arg, s: number, dst?: T | undefined) => T; negate: >(m: Mat3Arg, dst?: T | undefined) => T; rotate: >(m: Mat3Arg, angleInRadians: number, dst?: T | undefined) => T; rotateX: >(m: Mat3Arg, angleInRadians: number, dst?: T | undefined) => T; rotateY: >(m: Mat3Arg, angleInRadians: number, dst?: T | undefined) => T; rotateZ: >(m: Mat3Arg, angleInRadians: number, dst?: T | undefined) => T; rotation: >(angleInRadians: number, dst?: T | undefined) => T; rotationX: >(angleInRadians: number, dst?: T | undefined) => T; rotationY: >(angleInRadians: number, dst?: T | undefined) => T; rotationZ: >(angleInRadians: number, dst?: T | undefined) => T; scale: >(m: Mat3Arg, v: Vec2Arg, dst?: T | undefined) => T; scale3D: >(m: Mat3Arg, v: Vec3Arg, dst?: T | undefined) => T; scaling: >(v: Vec2Arg, dst?: T | undefined) => T; scaling3D: >(v: Vec3Arg, dst?: T | undefined) => T; set: >(v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number, v8: number, dst?: T | undefined) => T; setAxis: >(m: Mat3Arg, v: Vec2Arg, axis: number, dst?: T | undefined) => T; setTranslation: >(a: Mat3Arg, v: Vec2Arg, dst?: T | undefined) => T; translate: >(m: Mat3Arg, v: Vec2Arg, dst?: T | undefined) => T; translation: >(v: Vec2Arg, dst?: T | undefined) => T; transpose: >(m: Mat3Arg, dst?: T | undefined) => T; uniformScale: >(m: Mat3Arg, s: number, dst?: T | undefined) => T; uniformScale3D: >(m: Mat3Arg, s: number, dst?: T | undefined) => T; uniformScaling: >(s: number, dst?: T | undefined) => T; uniformScaling3D: >(s: number, dst?: T | undefined) => T; }, /** * 4x4 Matrix functions that default to returning `Float32Array` * @namespace */ mat4: { add: >(a: Mat4Arg, b: Mat4Arg, dst?: T | undefined) => T; aim: >(position: Vec3Arg, target: Vec3Arg, up: Vec3Arg, dst?: T | undefined) => T; axisRotate: >(m: Mat4Arg, axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; axisRotation: >(axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; cameraAim: >(eye: Vec3Arg, target: Vec3Arg, up: Vec3Arg, dst?: T | undefined) => T; clone: >(m: Mat4Arg, dst?: T | undefined) => T; copy: >(m: Mat4Arg, dst?: T | undefined) => T; create: (v0?: number, v1?: number, v2?: number, v3?: number, v4?: number, v5?: number, v6?: number, v7?: number, v8?: number, v9?: number, v10?: number, v11?: number, v12?: number, v13?: number, v14?: number, v15?: number) => Float32Array; determinant: (m: Mat4Arg) => number; equals: (a: Mat4Arg, b: Mat4Arg) => boolean; equalsApproximately: (a: Mat4Arg, b: Mat4Arg) => boolean; fromMat3: >(m3: Mat3Arg, dst?: T | undefined) => T; fromQuat: >(q: QuatArg, dst?: T | undefined) => T; frustum: >(left: number, right: number, bottom: number, top: number, near: number, far: number, dst?: T | undefined) => T; frustumReverseZ: >(left: number, right: number, bottom: number, top: number, near: number, far?: number, dst?: T | undefined) => T; getAxis: >(m: Mat4Arg, axis: number, dst?: T | undefined) => Float32Array | T; getScaling: >(m: Mat4Arg, dst?: T | undefined) => T; getTranslation: >(m: Mat4Arg, dst?: T | undefined) => T; identity: >(dst?: T | undefined) => T; inverse: >(m: Mat4Arg, dst?: T | undefined) => T; invert: >(m: Mat4Arg, dst?: T | undefined) => T; lookAt: >(eye: Vec3Arg, target: Vec3Arg, up: Vec3Arg, dst?: T | undefined) => T; mul: >(a: Mat4Arg, b: Mat4Arg, dst?: T | undefined) => T; mulScalar: >(m: Mat4Arg, s: number, dst?: T | undefined) => T; multiply: >(a: Mat4Arg, b: Mat4Arg, dst?: T | undefined) => T; multiplyScalar: >(m: Mat4Arg, s: number, dst?: T | undefined) => T; negate: >(m: Mat4Arg, dst?: T | undefined) => T; ortho: >(left: number, right: number, bottom: number, top: number, near: number, far: number, dst?: T | undefined) => T; perspective: >(fieldOfViewYInRadians: number, aspect: number, zNear: number, zFar: number, dst?: T | undefined) => T; perspectiveReverseZ: >(fieldOfViewYInRadians: number, aspect: number, zNear: number, zFar?: number, dst?: T | undefined) => T; rotate: >(m: Mat4Arg, axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; rotateX: >(m: Mat4Arg, angleInRadians: number, dst?: T | undefined) => T; rotateY: >(m: Mat4Arg, angleInRadians: number, dst?: T | undefined) => T; rotateZ: >(m: Mat4Arg, angleInRadians: number, dst?: T | undefined) => T; rotation: >(axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; rotationX: >(angleInRadians: number, dst?: T | undefined) => T; rotationY: >(angleInRadians: number, dst?: T | undefined) => T; rotationZ: >(angleInRadians: number, dst?: T | undefined) => T; scale: >(m: Mat4Arg, v: Vec3Arg, dst?: T | undefined) => T; scaling: >(v: Vec3Arg, dst?: T | undefined) => T; set: >(v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number, v8: number, v9: number, v10: number, v11: number, v12: number, v13: number, v14: number, v15: number, dst?: T | undefined) => T; setAxis: >(m: Mat4Arg, v: Vec3Arg, axis: number, dst: T) => T; setTranslation: >(a: Mat4Arg, v: Vec3Arg, dst?: T | undefined) => T; translate: >(m: Mat4Arg, v: Vec3Arg, dst?: T | undefined) => T; translation: >(v: Vec3Arg, dst?: T | undefined) => T; transpose: >(m: Mat4Arg, dst?: T | undefined) => T; uniformScale: >(m: Mat4Arg, s: number, dst?: T | undefined) => T; uniformScaling: >(s: number, dst?: T | undefined) => T; }, /** * Quaternion functions that default to returning `Float32Array` * @namespace */ quat: { create: (x?: number, y?: number, z?: number, w?: number) => Float32Array; fromValues: (x?: number, y?: number, z?: number, w?: number) => Float32Array; set: >(x: number, y: number, z: number, w: number, dst?: T | undefined) => T; fromAxisAngle: >(axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; toAxisAngle: >(q: QuatArg, dst?: T | undefined) => { angle: number; axis: T; }; angle: (a: QuatArg, b: QuatArg) => number; multiply: >(a: QuatArg, b: QuatArg, dst?: T | undefined) => T; mul: >(a: QuatArg, b: QuatArg, dst?: T | undefined) => T; rotateX: >(q: QuatArg, angleInRadians: number, dst?: T | undefined) => T; rotateY: >(q: QuatArg, angleInRadians: number, dst?: T | undefined) => T; rotateZ: >(q: QuatArg, angleInRadians: number, dst?: T | undefined) => T; slerp: >(a: QuatArg, b: QuatArg, t: number, dst?: T | undefined) => T; inverse: >(q: QuatArg, dst?: T | undefined) => T; conjugate: >(q: QuatArg, dst?: T | undefined) => T; fromMat: >(m: Mat3Arg | Mat4Arg, dst?: T | undefined) => T; fromEuler: >(xAngleInRadians: number, yAngleInRadians: number, zAngleInRadians: number, order: RotationOrder, dst?: T | undefined) => T; copy: >(q: QuatArg, dst?: T | undefined) => T; clone: >(q: QuatArg, dst?: T | undefined) => T; add: >(a: QuatArg, b: QuatArg, dst?: T | undefined) => T; subtract: >(a: QuatArg, b: QuatArg, dst?: T | undefined) => T; sub: >(a: QuatArg, b: QuatArg, dst?: T | undefined) => T; mulScalar: >(v: QuatArg, k: number, dst?: T | undefined) => T; scale: >(v: QuatArg, k: number, dst?: T | undefined) => T; divScalar: >(v: QuatArg, k: number, dst?: T | undefined) => T; dot: (a: QuatArg, b: QuatArg) => number; lerp: >(a: QuatArg, b: QuatArg, t: number, dst?: T | undefined) => T; length: (v: QuatArg) => number; len: (v: QuatArg) => number; lengthSq: (v: QuatArg) => number; lenSq: (v: QuatArg) => number; normalize: >(v: QuatArg, dst?: T | undefined) => T; equalsApproximately: (a: QuatArg, b: QuatArg) => boolean; equals: (a: QuatArg, b: QuatArg) => boolean; identity: >(dst?: T | undefined) => T; rotationTo: >(aUnit: Vec3Arg, bUnit: Vec3Arg, dst?: T | undefined) => T; sqlerp: >(a: QuatArg, b: QuatArg, c: QuatArg, d: QuatArg, t: number, dst?: T | undefined) => T; }, /** * Vec2 functions that default to returning `Float32Array` * @namespace */ vec2: { create: (x?: number, y?: number) => Float32Array; fromValues: (x?: number, y?: number) => Float32Array; set: >(x: number, y: number, dst?: T | undefined) => T; ceil: >(v: Vec2Arg, dst?: T | undefined) => T; floor: >(v: Vec2Arg, dst?: T | undefined) => T; round: >(v: Vec2Arg, dst?: T | undefined) => T; clamp: >(v: Vec2Arg, min?: number, max?: number, dst?: T | undefined) => T; add: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; addScaled: >(a: Vec2Arg, b: Vec2Arg, scale: number, dst?: T | undefined) => T; angle: (a: Vec2Arg, b: Vec2Arg) => number; subtract: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; sub: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; equalsApproximately: (a: Vec2Arg, b: Vec2Arg) => boolean; equals: (a: Vec2Arg, b: Vec2Arg) => boolean; lerp: >(a: Vec2Arg, b: Vec2Arg, t: number, dst?: T | undefined) => T; lerpV: >(a: Vec2Arg, b: Vec2Arg, t: Vec2Arg, dst?: T | undefined) => T; max: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; min: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; mulScalar: >(v: Vec2Arg, k: number, dst?: T | undefined) => T; scale: >(v: Vec2Arg, k: number, dst?: T | undefined) => T; divScalar: >(v: Vec2Arg, k: number, dst?: T | undefined) => T; inverse: >(v: Vec2Arg, dst?: T | undefined) => T; invert: >(v: Vec2Arg, dst?: T | undefined) => T; cross: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; dot: (a: Vec2Arg, b: Vec2Arg) => number; length: (v: Vec2Arg) => number; len: (v: Vec2Arg) => number; lengthSq: (v: Vec2Arg) => number; lenSq: (v: Vec2Arg) => number; distance: (a: Vec2Arg, b: Vec2Arg) => number; dist: (a: Vec2Arg, b: Vec2Arg) => number; distanceSq: (a: Vec2Arg, b: Vec2Arg) => number; distSq: (a: Vec2Arg, b: Vec2Arg) => number; normalize: >(v: Vec2Arg, dst?: T | undefined) => T; negate: >(v: Vec2Arg, dst?: T | undefined) => T; copy: >(v: Vec2Arg, dst?: T | undefined) => T; clone: >(v: Vec2Arg, dst?: T | undefined) => T; multiply: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; mul: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; divide: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; div: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; random: >(scale?: number, dst?: T | undefined) => T; zero: >(dst?: T | undefined) => T; transformMat4: >(v: Vec2Arg, m: Mat4Arg, dst?: T | undefined) => T; transformMat3: >(v: Vec2Arg, m: Mat3Arg, dst?: T | undefined) => T; rotate: >(a: Vec2Arg, b: Vec2Arg, rad: number, dst?: T | undefined) => T; setLength: >(a: Vec2Arg, len: number, dst?: T | undefined) => T; truncate: >(a: Vec2Arg, maxLen: number, dst?: T | undefined) => T; midpoint: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; }, /** * Vec3 functions that default to returning `Float32Array` * @namespace */ vec3: { create: (x?: number, y?: number, z?: number) => Float32Array; fromValues: (x?: number, y?: number, z?: number) => Float32Array; set: >(x: number, y: number, z: number, dst?: T | undefined) => T; ceil: >(v: Vec3Arg, dst?: T | undefined) => T; floor: >(v: Vec3Arg, dst?: T | undefined) => T; round: >(v: Vec3Arg, dst?: T | undefined) => T; clamp: >(v: Vec3Arg, min?: number, max?: number, dst?: T | undefined) => T; add: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; addScaled: >(a: Vec3Arg, b: Vec3Arg, scale: number, dst?: T | undefined) => T; angle: (a: Vec3Arg, b: Vec3Arg) => number; subtract: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; sub: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; equalsApproximately: (a: Vec3Arg, b: Vec3Arg) => boolean; equals: (a: Vec3Arg, b: Vec3Arg) => boolean; lerp: >(a: Vec3Arg, b: Vec3Arg, t: number, dst?: T | undefined) => T; lerpV: >(a: Vec3Arg, b: Vec3Arg, t: Vec3Arg, dst?: T | undefined) => T; max: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; min: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; mulScalar: >(v: Vec3Arg, k: number, dst?: T | undefined) => T; scale: >(v: Vec3Arg, k: number, dst?: T | undefined) => T; divScalar: >(v: Vec3Arg, k: number, dst?: T | undefined) => T; inverse: >(v: Vec3Arg, dst?: T | undefined) => T; invert: >(v: Vec3Arg, dst?: T | undefined) => T; cross: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; dot: (a: Vec3Arg, b: Vec3Arg) => number; length: (v: Vec3Arg) => number; len: (v: Vec3Arg) => number; lengthSq: (v: Vec3Arg) => number; lenSq: (v: Vec3Arg) => number; distance: (a: Vec3Arg, b: Vec3Arg) => number; dist: (a: Vec3Arg, b: Vec3Arg) => number; distanceSq: (a: Vec3Arg, b: Vec3Arg) => number; distSq: (a: Vec3Arg, b: Vec3Arg) => number; normalize: >(v: Vec3Arg, dst?: T | undefined) => T; negate: >(v: Vec3Arg, dst?: T | undefined) => T; copy: >(v: Vec3Arg, dst?: T | undefined) => T; clone: >(v: Vec3Arg, dst?: T | undefined) => T; multiply: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; mul: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; divide: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; div: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; random: >(scale?: number, dst?: T | undefined) => T; zero: >(dst?: T | undefined) => T; transformMat4: >(v: Vec3Arg, m: Mat4Arg, dst?: T | undefined) => T; transformMat4Upper3x3: >(v: Vec3Arg, m: Mat4Arg, dst?: T | undefined) => T; transformMat3: >(v: Vec3Arg, m: Mat3Arg, dst?: T | undefined) => T; transformQuat: >(v: Vec3Arg, q: QuatArg, dst?: T | undefined) => T; getTranslation: >(m: Mat3Arg, dst?: T | undefined) => T; getAxis: >(m: Mat4Arg, axis: number, dst?: T | undefined) => T; getScaling: >(m: Mat4Arg, dst?: T | undefined) => T; rotateX: >(a: Vec3Arg, b: Vec3Arg, rad: number, dst?: T | undefined) => T; rotateY: >(a: Vec3Arg, b: Vec3Arg, rad: number, dst?: T | undefined) => T; rotateZ: >(a: Vec3Arg, b: Vec3Arg, rad: number, dst?: T | undefined) => T; setLength: >(a: Vec3Arg, len: number, dst?: T | undefined) => T; truncate: >(a: Vec3Arg, maxLen: number, dst?: T | undefined) => T; midpoint: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; }, /** * Vec3 functions that default to returning `Float32Array` * @namespace */ vec4: { create: (x?: number, y?: number, z?: number, w?: number) => Float32Array; fromValues: (x?: number, y?: number, z?: number, w?: number) => Float32Array; set: >(x: number, y: number, z: number, w: number, dst?: T | undefined) => T; ceil: >(v: Vec4Arg, dst?: T | undefined) => T; floor: >(v: Vec4Arg, dst?: T | undefined) => T; round: >(v: Vec4Arg, dst?: T | undefined) => T; clamp: >(v: Vec4Arg, min?: number, max?: number, dst?: T | undefined) => T; add: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; addScaled: >(a: Vec4Arg, b: Vec4Arg, scale: number, dst?: T | undefined) => T; subtract: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; sub: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; equalsApproximately: (a: Vec4Arg, b: Vec4Arg) => boolean; equals: (a: Vec4Arg, b: Vec4Arg) => boolean; lerp: >(a: Vec4Arg, b: Vec4Arg, t: number, dst?: T | undefined) => T; lerpV: >(a: Vec4Arg, b: Vec4Arg, t: Vec4Arg, dst?: T | undefined) => T; max: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; min: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; mulScalar: >(v: Vec4Arg, k: number, dst?: T | undefined) => T; scale: >(v: Vec4Arg, k: number, dst?: T | undefined) => T; divScalar: >(v: Vec4Arg, k: number, dst?: T | undefined) => T; inverse: >(v: Vec4Arg, dst?: T | undefined) => T; invert: >(v: Vec4Arg, dst?: T | undefined) => T; dot: (a: Vec4Arg, b: Vec4Arg) => number; length: (v: Vec4Arg) => number; len: (v: Vec4Arg) => number; lengthSq: (v: Vec4Arg) => number; lenSq: (v: Vec4Arg) => number; distance: (a: Vec4Arg, b: Vec4Arg) => number; dist: (a: Vec4Arg, b: Vec4Arg) => number; distanceSq: (a: Vec4Arg, b: Vec4Arg) => number; distSq: (a: Vec4Arg, b: Vec4Arg) => number; normalize: >(v: Vec4Arg, dst?: T | undefined) => T; negate: >(v: Vec4Arg, dst?: T | undefined) => T; copy: >(v: Vec4Arg, dst?: T | undefined) => T; clone: >(v: Vec4Arg, dst?: T | undefined) => T; multiply: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; mul: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; divide: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; div: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; zero: >(dst?: T | undefined) => T; transformMat4: >(v: Vec4Arg, m: Mat4Arg, dst?: T | undefined) => T; setLength: >(a: Vec4Arg, len: number, dst?: T | undefined) => T; truncate: >(a: Vec4Arg, maxLen: number, dst?: T | undefined) => T; midpoint: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; }; export declare const mat3d: { add: >(a: Mat3Arg, b: Mat3Arg, dst?: T | undefined) => T; clone: >(m: Mat3Arg, dst?: T | undefined) => T; copy: >(m: Mat3Arg, dst?: T | undefined) => T; create: (v0?: number, v1?: number, v2?: number, v3?: number, v4?: number, v5?: number, v6?: number, v7?: number, v8?: number) => Float64Array; determinant: (m: Mat3Arg) => number; equals: (a: Mat3Arg, b: Mat3Arg) => boolean; equalsApproximately: (a: Mat3Arg, b: Mat3Arg) => boolean; fromMat4: >(m4: Mat4Arg, dst?: T | undefined) => T; fromQuat: >(q: QuatArg, dst?: T | undefined) => T; get3DScaling: >(m: Mat3Arg, dst?: T | undefined) => Float64Array | T; getAxis: >(m: Mat3Arg, axis: number, dst?: T | undefined) => T; getScaling: >(m: Mat3Arg, dst?: T | undefined) => Float64Array | T; getTranslation: >(m: Mat3Arg, dst?: T | undefined) => T; identity: >(dst?: T | undefined) => T; inverse: >(m: Mat3Arg, dst?: T | undefined) => T; invert: >(m: Mat3Arg, dst?: T | undefined) => T; mul: >(a: Mat3Arg, b: Mat3Arg, dst?: T | undefined) => T; mulScalar: >(m: Mat3Arg, s: number, dst?: T | undefined) => T; multiply: >(a: Mat3Arg, b: Mat3Arg, dst?: T | undefined) => T; multiplyScalar: >(m: Mat3Arg, s: number, dst?: T | undefined) => T; negate: >(m: Mat3Arg, dst?: T | undefined) => T; rotate: >(m: Mat3Arg, angleInRadians: number, dst?: T | undefined) => T; rotateX: >(m: Mat3Arg, angleInRadians: number, dst?: T | undefined) => T; rotateY: >(m: Mat3Arg, angleInRadians: number, dst?: T | undefined) => T; rotateZ: >(m: Mat3Arg, angleInRadians: number, dst?: T | undefined) => T; rotation: >(angleInRadians: number, dst?: T | undefined) => T; rotationX: >(angleInRadians: number, dst?: T | undefined) => T; rotationY: >(angleInRadians: number, dst?: T | undefined) => T; rotationZ: >(angleInRadians: number, dst?: T | undefined) => T; scale: >(m: Mat3Arg, v: Vec2Arg, dst?: T | undefined) => T; scale3D: >(m: Mat3Arg, v: Vec3Arg, dst?: T | undefined) => T; scaling: >(v: Vec2Arg, dst?: T | undefined) => T; scaling3D: >(v: Vec3Arg, dst?: T | undefined) => T; set: >(v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number, v8: number, dst?: T | undefined) => T; setAxis: >(m: Mat3Arg, v: Vec2Arg, axis: number, dst?: T | undefined) => T; setTranslation: >(a: Mat3Arg, v: Vec2Arg, dst?: T | undefined) => T; translate: >(m: Mat3Arg, v: Vec2Arg, dst?: T | undefined) => T; translation: >(v: Vec2Arg, dst?: T | undefined) => T; transpose: >(m: Mat3Arg, dst?: T | undefined) => T; uniformScale: >(m: Mat3Arg, s: number, dst?: T | undefined) => T; uniformScale3D: >(m: Mat3Arg, s: number, dst?: T | undefined) => T; uniformScaling: >(s: number, dst?: T | undefined) => T; uniformScaling3D: >(s: number, dst?: T | undefined) => T; }, mat4d: { add: >(a: Mat4Arg, b: Mat4Arg, dst?: T | undefined) => T; aim: >(position: Vec3Arg, target: Vec3Arg, up: Vec3Arg, dst?: T | undefined) => T; axisRotate: >(m: Mat4Arg, axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; axisRotation: >(axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; cameraAim: >(eye: Vec3Arg, target: Vec3Arg, up: Vec3Arg, dst?: T | undefined) => T; clone: >(m: Mat4Arg, dst?: T | undefined) => T; copy: >(m: Mat4Arg, dst?: T | undefined) => T; create: (v0?: number, v1?: number, v2?: number, v3?: number, v4?: number, v5?: number, v6?: number, v7?: number, v8?: number, v9?: number, v10?: number, v11?: number, v12?: number, v13?: number, v14?: number, v15?: number) => Float64Array; determinant: (m: Mat4Arg) => number; equals: (a: Mat4Arg, b: Mat4Arg) => boolean; equalsApproximately: (a: Mat4Arg, b: Mat4Arg) => boolean; fromMat3: >(m3: Mat3Arg, dst?: T | undefined) => T; fromQuat: >(q: QuatArg, dst?: T | undefined) => T; frustum: >(left: number, right: number, bottom: number, top: number, near: number, far: number, dst?: T | undefined) => T; frustumReverseZ: >(left: number, right: number, bottom: number, top: number, near: number, far?: number, dst?: T | undefined) => T; getAxis: >(m: Mat4Arg, axis: number, dst?: T | undefined) => Float64Array | T; getScaling: >(m: Mat4Arg, dst?: T | undefined) => T; getTranslation: >(m: Mat4Arg, dst?: T | undefined) => T; identity: >(dst?: T | undefined) => T; inverse: >(m: Mat4Arg, dst?: T | undefined) => T; invert: >(m: Mat4Arg, dst?: T | undefined) => T; lookAt: >(eye: Vec3Arg, target: Vec3Arg, up: Vec3Arg, dst?: T | undefined) => T; mul: >(a: Mat4Arg, b: Mat4Arg, dst?: T | undefined) => T; mulScalar: >(m: Mat4Arg, s: number, dst?: T | undefined) => T; multiply: >(a: Mat4Arg, b: Mat4Arg, dst?: T | undefined) => T; multiplyScalar: >(m: Mat4Arg, s: number, dst?: T | undefined) => T; negate: >(m: Mat4Arg, dst?: T | undefined) => T; ortho: >(left: number, right: number, bottom: number, top: number, near: number, far: number, dst?: T | undefined) => T; perspective: >(fieldOfViewYInRadians: number, aspect: number, zNear: number, zFar: number, dst?: T | undefined) => T; perspectiveReverseZ: >(fieldOfViewYInRadians: number, aspect: number, zNear: number, zFar?: number, dst?: T | undefined) => T; rotate: >(m: Mat4Arg, axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; rotateX: >(m: Mat4Arg, angleInRadians: number, dst?: T | undefined) => T; rotateY: >(m: Mat4Arg, angleInRadians: number, dst?: T | undefined) => T; rotateZ: >(m: Mat4Arg, angleInRadians: number, dst?: T | undefined) => T; rotation: >(axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; rotationX: >(angleInRadians: number, dst?: T | undefined) => T; rotationY: >(angleInRadians: number, dst?: T | undefined) => T; rotationZ: >(angleInRadians: number, dst?: T | undefined) => T; scale: >(m: Mat4Arg, v: Vec3Arg, dst?: T | undefined) => T; scaling: >(v: Vec3Arg, dst?: T | undefined) => T; set: >(v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number, v8: number, v9: number, v10: number, v11: number, v12: number, v13: number, v14: number, v15: number, dst?: T | undefined) => T; setAxis: >(m: Mat4Arg, v: Vec3Arg, axis: number, dst: T) => T; setTranslation: >(a: Mat4Arg, v: Vec3Arg, dst?: T | undefined) => T; translate: >(m: Mat4Arg, v: Vec3Arg, dst?: T | undefined) => T; translation: >(v: Vec3Arg, dst?: T | undefined) => T; transpose: >(m: Mat4Arg, dst?: T | undefined) => T; uniformScale: >(m: Mat4Arg, s: number, dst?: T | undefined) => T; uniformScaling: >(s: number, dst?: T | undefined) => T; }, quatd: { create: (x?: number, y?: number, z?: number, w?: number) => Float64Array; fromValues: (x?: number, y?: number, z?: number, w?: number) => Float64Array; set: >(x: number, y: number, z: number, w: number, dst?: T | undefined) => T; fromAxisAngle: >(axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; toAxisAngle: >(q: QuatArg, dst?: T | undefined) => { angle: number; axis: T; }; angle: (a: QuatArg, b: QuatArg) => number; multiply: >(a: QuatArg, b: QuatArg, dst?: T | undefined) => T; mul: >(a: QuatArg, b: QuatArg, dst?: T | undefined) => T; rotateX: >(q: QuatArg, angleInRadians: number, dst?: T | undefined) => T; rotateY: >(q: QuatArg, angleInRadians: number, dst?: T | undefined) => T; rotateZ: >(q: QuatArg, angleInRadians: number, dst?: T | undefined) => T; slerp: >(a: QuatArg, b: QuatArg, t: number, dst?: T | undefined) => T; inverse: >(q: QuatArg, dst?: T | undefined) => T; conjugate: >(q: QuatArg, dst?: T | undefined) => T; fromMat: >(m: Mat3Arg | Mat4Arg, dst?: T | undefined) => T; fromEuler: >(xAngleInRadians: number, yAngleInRadians: number, zAngleInRadians: number, order: RotationOrder, dst?: T | undefined) => T; copy: >(q: QuatArg, dst?: T | undefined) => T; clone: >(q: QuatArg, dst?: T | undefined) => T; add: >(a: QuatArg, b: QuatArg, dst?: T | undefined) => T; subtract: >(a: QuatArg, b: QuatArg, dst?: T | undefined) => T; sub: >(a: QuatArg, b: QuatArg, dst?: T | undefined) => T; mulScalar: >(v: QuatArg, k: number, dst?: T | undefined) => T; scale: >(v: QuatArg, k: number, dst?: T | undefined) => T; divScalar: >(v: QuatArg, k: number, dst?: T | undefined) => T; dot: (a: QuatArg, b: QuatArg) => number; lerp: >(a: QuatArg, b: QuatArg, t: number, dst?: T | undefined) => T; length: (v: QuatArg) => number; len: (v: QuatArg) => number; lengthSq: (v: QuatArg) => number; lenSq: (v: QuatArg) => number; normalize: >(v: QuatArg, dst?: T | undefined) => T; equalsApproximately: (a: QuatArg, b: QuatArg) => boolean; equals: (a: QuatArg, b: QuatArg) => boolean; identity: >(dst?: T | undefined) => T; rotationTo: >(aUnit: Vec3Arg, bUnit: Vec3Arg, dst?: T | undefined) => T; sqlerp: >(a: QuatArg, b: QuatArg, c: QuatArg, d: QuatArg, t: number, dst?: T | undefined) => T; }, vec2d: { create: (x?: number, y?: number) => Float64Array; fromValues: (x?: number, y?: number) => Float64Array; set: >(x: number, y: number, dst?: T | undefined) => T; ceil: >(v: Vec2Arg, dst?: T | undefined) => T; floor: >(v: Vec2Arg, dst?: T | undefined) => T; round: >(v: Vec2Arg, dst?: T | undefined) => T; clamp: >(v: Vec2Arg, min?: number, max?: number, dst?: T | undefined) => T; add: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; addScaled: >(a: Vec2Arg, b: Vec2Arg, scale: number, dst?: T | undefined) => T; angle: (a: Vec2Arg, b: Vec2Arg) => number; subtract: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; sub: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; equalsApproximately: (a: Vec2Arg, b: Vec2Arg) => boolean; equals: (a: Vec2Arg, b: Vec2Arg) => boolean; lerp: >(a: Vec2Arg, b: Vec2Arg, t: number, dst?: T | undefined) => T; lerpV: >(a: Vec2Arg, b: Vec2Arg, t: Vec2Arg, dst?: T | undefined) => T; max: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; min: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; mulScalar: >(v: Vec2Arg, k: number, dst?: T | undefined) => T; scale: >(v: Vec2Arg, k: number, dst?: T | undefined) => T; divScalar: >(v: Vec2Arg, k: number, dst?: T | undefined) => T; inverse: >(v: Vec2Arg, dst?: T | undefined) => T; invert: >(v: Vec2Arg, dst?: T | undefined) => T; cross: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; dot: (a: Vec2Arg, b: Vec2Arg) => number; length: (v: Vec2Arg) => number; len: (v: Vec2Arg) => number; lengthSq: (v: Vec2Arg) => number; lenSq: (v: Vec2Arg) => number; distance: (a: Vec2Arg, b: Vec2Arg) => number; dist: (a: Vec2Arg, b: Vec2Arg) => number; distanceSq: (a: Vec2Arg, b: Vec2Arg) => number; distSq: (a: Vec2Arg, b: Vec2Arg) => number; normalize: >(v: Vec2Arg, dst?: T | undefined) => T; negate: >(v: Vec2Arg, dst?: T | undefined) => T; copy: >(v: Vec2Arg, dst?: T | undefined) => T; clone: >(v: Vec2Arg, dst?: T | undefined) => T; multiply: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; mul: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; divide: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; div: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; random: >(scale?: number, dst?: T | undefined) => T; zero: >(dst?: T | undefined) => T; transformMat4: >(v: Vec2Arg, m: Mat4Arg, dst?: T | undefined) => T; transformMat3: >(v: Vec2Arg, m: Mat3Arg, dst?: T | undefined) => T; rotate: >(a: Vec2Arg, b: Vec2Arg, rad: number, dst?: T | undefined) => T; setLength: >(a: Vec2Arg, len: number, dst?: T | undefined) => T; truncate: >(a: Vec2Arg, maxLen: number, dst?: T | undefined) => T; midpoint: >(a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; }, vec3d: { create: (x?: number, y?: number, z?: number) => Float64Array; fromValues: (x?: number, y?: number, z?: number) => Float64Array; set: >(x: number, y: number, z: number, dst?: T | undefined) => T; ceil: >(v: Vec3Arg, dst?: T | undefined) => T; floor: >(v: Vec3Arg, dst?: T | undefined) => T; round: >(v: Vec3Arg, dst?: T | undefined) => T; clamp: >(v: Vec3Arg, min?: number, max?: number, dst?: T | undefined) => T; add: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; addScaled: >(a: Vec3Arg, b: Vec3Arg, scale: number, dst?: T | undefined) => T; angle: (a: Vec3Arg, b: Vec3Arg) => number; subtract: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; sub: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; equalsApproximately: (a: Vec3Arg, b: Vec3Arg) => boolean; equals: (a: Vec3Arg, b: Vec3Arg) => boolean; lerp: >(a: Vec3Arg, b: Vec3Arg, t: number, dst?: T | undefined) => T; lerpV: >(a: Vec3Arg, b: Vec3Arg, t: Vec3Arg, dst?: T | undefined) => T; max: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; min: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; mulScalar: >(v: Vec3Arg, k: number, dst?: T | undefined) => T; scale: >(v: Vec3Arg, k: number, dst?: T | undefined) => T; divScalar: >(v: Vec3Arg, k: number, dst?: T | undefined) => T; inverse: >(v: Vec3Arg, dst?: T | undefined) => T; invert: >(v: Vec3Arg, dst?: T | undefined) => T; cross: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; dot: (a: Vec3Arg, b: Vec3Arg) => number; length: (v: Vec3Arg) => number; len: (v: Vec3Arg) => number; lengthSq: (v: Vec3Arg) => number; lenSq: (v: Vec3Arg) => number; distance: (a: Vec3Arg, b: Vec3Arg) => number; dist: (a: Vec3Arg, b: Vec3Arg) => number; distanceSq: (a: Vec3Arg, b: Vec3Arg) => number; distSq: (a: Vec3Arg, b: Vec3Arg) => number; normalize: >(v: Vec3Arg, dst?: T | undefined) => T; negate: >(v: Vec3Arg, dst?: T | undefined) => T; copy: >(v: Vec3Arg, dst?: T | undefined) => T; clone: >(v: Vec3Arg, dst?: T | undefined) => T; multiply: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; mul: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; divide: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; div: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; random: >(scale?: number, dst?: T | undefined) => T; zero: >(dst?: T | undefined) => T; transformMat4: >(v: Vec3Arg, m: Mat4Arg, dst?: T | undefined) => T; transformMat4Upper3x3: >(v: Vec3Arg, m: Mat4Arg, dst?: T | undefined) => T; transformMat3: >(v: Vec3Arg, m: Mat3Arg, dst?: T | undefined) => T; transformQuat: >(v: Vec3Arg, q: QuatArg, dst?: T | undefined) => T; getTranslation: >(m: Mat3Arg, dst?: T | undefined) => T; getAxis: >(m: Mat4Arg, axis: number, dst?: T | undefined) => T; getScaling: >(m: Mat4Arg, dst?: T | undefined) => T; rotateX: >(a: Vec3Arg, b: Vec3Arg, rad: number, dst?: T | undefined) => T; rotateY: >(a: Vec3Arg, b: Vec3Arg, rad: number, dst?: T | undefined) => T; rotateZ: >(a: Vec3Arg, b: Vec3Arg, rad: number, dst?: T | undefined) => T; setLength: >(a: Vec3Arg, len: number, dst?: T | undefined) => T; truncate: >(a: Vec3Arg, maxLen: number, dst?: T | undefined) => T; midpoint: >(a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; }, vec4d: { create: (x?: number, y?: number, z?: number, w?: number) => Float64Array; fromValues: (x?: number, y?: number, z?: number, w?: number) => Float64Array; set: >(x: number, y: number, z: number, w: number, dst?: T | undefined) => T; ceil: >(v: Vec4Arg, dst?: T | undefined) => T; floor: >(v: Vec4Arg, dst?: T | undefined) => T; round: >(v: Vec4Arg, dst?: T | undefined) => T; clamp: >(v: Vec4Arg, min?: number, max?: number, dst?: T | undefined) => T; add: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; addScaled: >(a: Vec4Arg, b: Vec4Arg, scale: number, dst?: T | undefined) => T; subtract: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; sub: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; equalsApproximately: (a: Vec4Arg, b: Vec4Arg) => boolean; equals: (a: Vec4Arg, b: Vec4Arg) => boolean; lerp: >(a: Vec4Arg, b: Vec4Arg, t: number, dst?: T | undefined) => T; lerpV: >(a: Vec4Arg, b: Vec4Arg, t: Vec4Arg, dst?: T | undefined) => T; max: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; min: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; mulScalar: >(v: Vec4Arg, k: number, dst?: T | undefined) => T; scale: >(v: Vec4Arg, k: number, dst?: T | undefined) => T; divScalar: >(v: Vec4Arg, k: number, dst?: T | undefined) => T; inverse: >(v: Vec4Arg, dst?: T | undefined) => T; invert: >(v: Vec4Arg, dst?: T | undefined) => T; dot: (a: Vec4Arg, b: Vec4Arg) => number; length: (v: Vec4Arg) => number; len: (v: Vec4Arg) => number; lengthSq: (v: Vec4Arg) => number; lenSq: (v: Vec4Arg) => number; distance: (a: Vec4Arg, b: Vec4Arg) => number; dist: (a: Vec4Arg, b: Vec4Arg) => number; distanceSq: (a: Vec4Arg, b: Vec4Arg) => number; distSq: (a: Vec4Arg, b: Vec4Arg) => number; normalize: >(v: Vec4Arg, dst?: T | undefined) => T; negate: >(v: Vec4Arg, dst?: T | undefined) => T; copy: >(v: Vec4Arg, dst?: T | undefined) => T; clone: >(v: Vec4Arg, dst?: T | undefined) => T; multiply: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; mul: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; divide: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; div: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; zero: >(dst?: T | undefined) => T; transformMat4: >(v: Vec4Arg, m: Mat4Arg, dst?: T | undefined) => T; setLength: >(a: Vec4Arg, len: number, dst?: T | undefined) => T; truncate: >(a: Vec4Arg, maxLen: number, dst?: T | undefined) => T; midpoint: >(a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; }; export declare const mat3n: { add: (a: Mat3Arg, b: Mat3Arg, dst?: T | undefined) => T; clone: (m: Mat3Arg, dst?: T | undefined) => T; copy: (m: Mat3Arg, dst?: T | undefined) => T; create: (v0?: number, v1?: number, v2?: number, v3?: number, v4?: number, v5?: number, v6?: number, v7?: number, v8?: number) => number[]; determinant: (m: Mat3Arg) => number; equals: (a: Mat3Arg, b: Mat3Arg) => boolean; equalsApproximately: (a: Mat3Arg, b: Mat3Arg) => boolean; fromMat4: (m4: Mat4Arg, dst?: T | undefined) => T; fromQuat: (q: QuatArg, dst?: T | undefined) => T; get3DScaling: (m: Mat3Arg, dst?: T | undefined) => number[] | T; getAxis: (m: Mat3Arg, axis: number, dst?: T | undefined) => T; getScaling: (m: Mat3Arg, dst?: T | undefined) => number[] | T; getTranslation: (m: Mat3Arg, dst?: T | undefined) => T; identity: (dst?: T | undefined) => T; inverse: (m: Mat3Arg, dst?: T | undefined) => T; invert: (m: Mat3Arg, dst?: T | undefined) => T; mul: (a: Mat3Arg, b: Mat3Arg, dst?: T | undefined) => T; mulScalar: (m: Mat3Arg, s: number, dst?: T | undefined) => T; multiply: (a: Mat3Arg, b: Mat3Arg, dst?: T | undefined) => T; multiplyScalar: (m: Mat3Arg, s: number, dst?: T | undefined) => T; negate: (m: Mat3Arg, dst?: T | undefined) => T; rotate: (m: Mat3Arg, angleInRadians: number, dst?: T | undefined) => T; rotateX: (m: Mat3Arg, angleInRadians: number, dst?: T | undefined) => T; rotateY: (m: Mat3Arg, angleInRadians: number, dst?: T | undefined) => T; rotateZ: (m: Mat3Arg, angleInRadians: number, dst?: T | undefined) => T; rotation: (angleInRadians: number, dst?: T | undefined) => T; rotationX: (angleInRadians: number, dst?: T | undefined) => T; rotationY: (angleInRadians: number, dst?: T | undefined) => T; rotationZ: (angleInRadians: number, dst?: T | undefined) => T; scale: (m: Mat3Arg, v: Vec2Arg, dst?: T | undefined) => T; scale3D: (m: Mat3Arg, v: Vec3Arg, dst?: T | undefined) => T; scaling: (v: Vec2Arg, dst?: T | undefined) => T; scaling3D: (v: Vec3Arg, dst?: T | undefined) => T; set: (v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number, v8: number, dst?: T | undefined) => T; setAxis: (m: Mat3Arg, v: Vec2Arg, axis: number, dst?: T | undefined) => T; setTranslation: (a: Mat3Arg, v: Vec2Arg, dst?: T | undefined) => T; translate: (m: Mat3Arg, v: Vec2Arg, dst?: T | undefined) => T; translation: (v: Vec2Arg, dst?: T | undefined) => T; transpose: (m: Mat3Arg, dst?: T | undefined) => T; uniformScale: (m: Mat3Arg, s: number, dst?: T | undefined) => T; uniformScale3D: (m: Mat3Arg, s: number, dst?: T | undefined) => T; uniformScaling: (s: number, dst?: T | undefined) => T; uniformScaling3D: (s: number, dst?: T | undefined) => T; }, mat4n: { add: (a: Mat4Arg, b: Mat4Arg, dst?: T | undefined) => T; aim: (position: Vec3Arg, target: Vec3Arg, up: Vec3Arg, dst?: T | undefined) => T; axisRotate: (m: Mat4Arg, axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; axisRotation: (axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; cameraAim: (eye: Vec3Arg, target: Vec3Arg, up: Vec3Arg, dst?: T | undefined) => T; clone: (m: Mat4Arg, dst?: T | undefined) => T; copy: (m: Mat4Arg, dst?: T | undefined) => T; create: (v0?: number, v1?: number, v2?: number, v3?: number, v4?: number, v5?: number, v6?: number, v7?: number, v8?: number, v9?: number, v10?: number, v11?: number, v12?: number, v13?: number, v14?: number, v15?: number) => number[]; determinant: (m: Mat4Arg) => number; equals: (a: Mat4Arg, b: Mat4Arg) => boolean; equalsApproximately: (a: Mat4Arg, b: Mat4Arg) => boolean; fromMat3: (m3: Mat3Arg, dst?: T | undefined) => T; fromQuat: (q: QuatArg, dst?: T | undefined) => T; frustum: (left: number, right: number, bottom: number, top: number, near: number, far: number, dst?: T | undefined) => T; frustumReverseZ: (left: number, right: number, bottom: number, top: number, near: number, far?: number, dst?: T | undefined) => T; getAxis: (m: Mat4Arg, axis: number, dst?: T | undefined) => number[] | T; getScaling: (m: Mat4Arg, dst?: T | undefined) => T; getTranslation: (m: Mat4Arg, dst?: T | undefined) => T; identity: (dst?: T | undefined) => T; inverse: (m: Mat4Arg, dst?: T | undefined) => T; invert: (m: Mat4Arg, dst?: T | undefined) => T; lookAt: (eye: Vec3Arg, target: Vec3Arg, up: Vec3Arg, dst?: T | undefined) => T; mul: (a: Mat4Arg, b: Mat4Arg, dst?: T | undefined) => T; mulScalar: (m: Mat4Arg, s: number, dst?: T | undefined) => T; multiply: (a: Mat4Arg, b: Mat4Arg, dst?: T | undefined) => T; multiplyScalar: (m: Mat4Arg, s: number, dst?: T | undefined) => T; negate: (m: Mat4Arg, dst?: T | undefined) => T; ortho: (left: number, right: number, bottom: number, top: number, near: number, far: number, dst?: T | undefined) => T; perspective: (fieldOfViewYInRadians: number, aspect: number, zNear: number, zFar: number, dst?: T | undefined) => T; perspectiveReverseZ: (fieldOfViewYInRadians: number, aspect: number, zNear: number, zFar?: number, dst?: T | undefined) => T; rotate: (m: Mat4Arg, axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; rotateX: (m: Mat4Arg, angleInRadians: number, dst?: T | undefined) => T; rotateY: (m: Mat4Arg, angleInRadians: number, dst?: T | undefined) => T; rotateZ: (m: Mat4Arg, angleInRadians: number, dst?: T | undefined) => T; rotation: (axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; rotationX: (angleInRadians: number, dst?: T | undefined) => T; rotationY: (angleInRadians: number, dst?: T | undefined) => T; rotationZ: (angleInRadians: number, dst?: T | undefined) => T; scale: (m: Mat4Arg, v: Vec3Arg, dst?: T | undefined) => T; scaling: (v: Vec3Arg, dst?: T | undefined) => T; set: (v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number, v8: number, v9: number, v10: number, v11: number, v12: number, v13: number, v14: number, v15: number, dst?: T | undefined) => T; setAxis: (m: Mat4Arg, v: Vec3Arg, axis: number, dst: T) => T; setTranslation: (a: Mat4Arg, v: Vec3Arg, dst?: T | undefined) => T; translate: (m: Mat4Arg, v: Vec3Arg, dst?: T | undefined) => T; translation: (v: Vec3Arg, dst?: T | undefined) => T; transpose: (m: Mat4Arg, dst?: T | undefined) => T; uniformScale: (m: Mat4Arg, s: number, dst?: T | undefined) => T; uniformScaling: (s: number, dst?: T | undefined) => T; }, quatn: { create: (x?: number, y?: number, z?: number, w?: number) => number[]; fromValues: (x?: number, y?: number, z?: number, w?: number) => number[]; set: (x: number, y: number, z: number, w: number, dst?: T | undefined) => T; fromAxisAngle: (axis: Vec3Arg, angleInRadians: number, dst?: T | undefined) => T; toAxisAngle: (q: QuatArg, dst?: T | undefined) => { angle: number; axis: T; }; angle: (a: QuatArg, b: QuatArg) => number; multiply: (a: QuatArg, b: QuatArg, dst?: T | undefined) => T; mul: (a: QuatArg, b: QuatArg, dst?: T | undefined) => T; rotateX: (q: QuatArg, angleInRadians: number, dst?: T | undefined) => T; rotateY: (q: QuatArg, angleInRadians: number, dst?: T | undefined) => T; rotateZ: (q: QuatArg, angleInRadians: number, dst?: T | undefined) => T; slerp: (a: QuatArg, b: QuatArg, t: number, dst?: T | undefined) => T; inverse: (q: QuatArg, dst?: T | undefined) => T; conjugate: (q: QuatArg, dst?: T | undefined) => T; fromMat: (m: Mat3Arg | Mat4Arg, dst?: T | undefined) => T; fromEuler: (xAngleInRadians: number, yAngleInRadians: number, zAngleInRadians: number, order: RotationOrder, dst?: T | undefined) => T; copy: (q: QuatArg, dst?: T | undefined) => T; clone: (q: QuatArg, dst?: T | undefined) => T; add: (a: QuatArg, b: QuatArg, dst?: T | undefined) => T; subtract: (a: QuatArg, b: QuatArg, dst?: T | undefined) => T; sub: (a: QuatArg, b: QuatArg, dst?: T | undefined) => T; mulScalar: (v: QuatArg, k: number, dst?: T | undefined) => T; scale: (v: QuatArg, k: number, dst?: T | undefined) => T; divScalar: (v: QuatArg, k: number, dst?: T | undefined) => T; dot: (a: QuatArg, b: QuatArg) => number; lerp: (a: QuatArg, b: QuatArg, t: number, dst?: T | undefined) => T; length: (v: QuatArg) => number; len: (v: QuatArg) => number; lengthSq: (v: QuatArg) => number; lenSq: (v: QuatArg) => number; normalize: (v: QuatArg, dst?: T | undefined) => T; equalsApproximately: (a: QuatArg, b: QuatArg) => boolean; equals: (a: QuatArg, b: QuatArg) => boolean; identity: (dst?: T | undefined) => T; rotationTo: (aUnit: Vec3Arg, bUnit: Vec3Arg, dst?: T | undefined) => T; sqlerp: (a: QuatArg, b: QuatArg, c: QuatArg, d: QuatArg, t: number, dst?: T | undefined) => T; }, vec2n: { create: (x?: number, y?: number) => number[]; fromValues: (x?: number, y?: number) => number[]; set: (x: number, y: number, dst?: T | undefined) => T; ceil: (v: Vec2Arg, dst?: T | undefined) => T; floor: (v: Vec2Arg, dst?: T | undefined) => T; round: (v: Vec2Arg, dst?: T | undefined) => T; clamp: (v: Vec2Arg, min?: number, max?: number, dst?: T | undefined) => T; add: (a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; addScaled: (a: Vec2Arg, b: Vec2Arg, scale: number, dst?: T | undefined) => T; angle: (a: Vec2Arg, b: Vec2Arg) => number; subtract: (a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; sub: (a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; equalsApproximately: (a: Vec2Arg, b: Vec2Arg) => boolean; equals: (a: Vec2Arg, b: Vec2Arg) => boolean; lerp: (a: Vec2Arg, b: Vec2Arg, t: number, dst?: T | undefined) => T; lerpV: (a: Vec2Arg, b: Vec2Arg, t: Vec2Arg, dst?: T | undefined) => T; max: (a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; min: (a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; mulScalar: (v: Vec2Arg, k: number, dst?: T | undefined) => T; scale: (v: Vec2Arg, k: number, dst?: T | undefined) => T; divScalar: (v: Vec2Arg, k: number, dst?: T | undefined) => T; inverse: (v: Vec2Arg, dst?: T | undefined) => T; invert: (v: Vec2Arg, dst?: T | undefined) => T; cross: (a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; dot: (a: Vec2Arg, b: Vec2Arg) => number; length: (v: Vec2Arg) => number; len: (v: Vec2Arg) => number; lengthSq: (v: Vec2Arg) => number; lenSq: (v: Vec2Arg) => number; distance: (a: Vec2Arg, b: Vec2Arg) => number; dist: (a: Vec2Arg, b: Vec2Arg) => number; distanceSq: (a: Vec2Arg, b: Vec2Arg) => number; distSq: (a: Vec2Arg, b: Vec2Arg) => number; normalize: (v: Vec2Arg, dst?: T | undefined) => T; negate: (v: Vec2Arg, dst?: T | undefined) => T; copy: (v: Vec2Arg, dst?: T | undefined) => T; clone: (v: Vec2Arg, dst?: T | undefined) => T; multiply: (a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; mul: (a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; divide: (a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; div: (a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; random: (scale?: number, dst?: T | undefined) => T; zero: (dst?: T | undefined) => T; transformMat4: (v: Vec2Arg, m: Mat4Arg, dst?: T | undefined) => T; transformMat3: (v: Vec2Arg, m: Mat3Arg, dst?: T | undefined) => T; rotate: (a: Vec2Arg, b: Vec2Arg, rad: number, dst?: T | undefined) => T; setLength: (a: Vec2Arg, len: number, dst?: T | undefined) => T; truncate: (a: Vec2Arg, maxLen: number, dst?: T | undefined) => T; midpoint: (a: Vec2Arg, b: Vec2Arg, dst?: T | undefined) => T; }, vec3n: { create: (x?: number, y?: number, z?: number) => number[]; fromValues: (x?: number, y?: number, z?: number) => number[]; set: (x: number, y: number, z: number, dst?: T | undefined) => T; ceil: (v: Vec3Arg, dst?: T | undefined) => T; floor: (v: Vec3Arg, dst?: T | undefined) => T; round: (v: Vec3Arg, dst?: T | undefined) => T; clamp: (v: Vec3Arg, min?: number, max?: number, dst?: T | undefined) => T; add: (a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; addScaled: (a: Vec3Arg, b: Vec3Arg, scale: number, dst?: T | undefined) => T; angle: (a: Vec3Arg, b: Vec3Arg) => number; subtract: (a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; sub: (a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; equalsApproximately: (a: Vec3Arg, b: Vec3Arg) => boolean; equals: (a: Vec3Arg, b: Vec3Arg) => boolean; lerp: (a: Vec3Arg, b: Vec3Arg, t: number, dst?: T | undefined) => T; lerpV: (a: Vec3Arg, b: Vec3Arg, t: Vec3Arg, dst?: T | undefined) => T; max: (a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; min: (a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; mulScalar: (v: Vec3Arg, k: number, dst?: T | undefined) => T; scale: (v: Vec3Arg, k: number, dst?: T | undefined) => T; divScalar: (v: Vec3Arg, k: number, dst?: T | undefined) => T; inverse: (v: Vec3Arg, dst?: T | undefined) => T; invert: (v: Vec3Arg, dst?: T | undefined) => T; cross: (a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; dot: (a: Vec3Arg, b: Vec3Arg) => number; length: (v: Vec3Arg) => number; len: (v: Vec3Arg) => number; lengthSq: (v: Vec3Arg) => number; lenSq: (v: Vec3Arg) => number; distance: (a: Vec3Arg, b: Vec3Arg) => number; dist: (a: Vec3Arg, b: Vec3Arg) => number; distanceSq: (a: Vec3Arg, b: Vec3Arg) => number; distSq: (a: Vec3Arg, b: Vec3Arg) => number; normalize: (v: Vec3Arg, dst?: T | undefined) => T; negate: (v: Vec3Arg, dst?: T | undefined) => T; copy: (v: Vec3Arg, dst?: T | undefined) => T; clone: (v: Vec3Arg, dst?: T | undefined) => T; multiply: (a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; mul: (a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; divide: (a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; div: (a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; random: (scale?: number, dst?: T | undefined) => T; zero: (dst?: T | undefined) => T; transformMat4: (v: Vec3Arg, m: Mat4Arg, dst?: T | undefined) => T; transformMat4Upper3x3: (v: Vec3Arg, m: Mat4Arg, dst?: T | undefined) => T; transformMat3: (v: Vec3Arg, m: Mat3Arg, dst?: T | undefined) => T; transformQuat: (v: Vec3Arg, q: QuatArg, dst?: T | undefined) => T; getTranslation: (m: Mat3Arg, dst?: T | undefined) => T; getAxis: (m: Mat4Arg, axis: number, dst?: T | undefined) => T; getScaling: (m: Mat4Arg, dst?: T | undefined) => T; rotateX: (a: Vec3Arg, b: Vec3Arg, rad: number, dst?: T | undefined) => T; rotateY: (a: Vec3Arg, b: Vec3Arg, rad: number, dst?: T | undefined) => T; rotateZ: (a: Vec3Arg, b: Vec3Arg, rad: number, dst?: T | undefined) => T; setLength: (a: Vec3Arg, len: number, dst?: T | undefined) => T; truncate: (a: Vec3Arg, maxLen: number, dst?: T | undefined) => T; midpoint: (a: Vec3Arg, b: Vec3Arg, dst?: T | undefined) => T; }, vec4n: { create: (x?: number, y?: number, z?: number, w?: number) => number[]; fromValues: (x?: number, y?: number, z?: number, w?: number) => number[]; set: (x: number, y: number, z: number, w: number, dst?: T | undefined) => T; ceil: (v: Vec4Arg, dst?: T | undefined) => T; floor: (v: Vec4Arg, dst?: T | undefined) => T; round: (v: Vec4Arg, dst?: T | undefined) => T; clamp: (v: Vec4Arg, min?: number, max?: number, dst?: T | undefined) => T; add: (a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; addScaled: (a: Vec4Arg, b: Vec4Arg, scale: number, dst?: T | undefined) => T; subtract: (a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; sub: (a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; equalsApproximately: (a: Vec4Arg, b: Vec4Arg) => boolean; equals: (a: Vec4Arg, b: Vec4Arg) => boolean; lerp: (a: Vec4Arg, b: Vec4Arg, t: number, dst?: T | undefined) => T; lerpV: (a: Vec4Arg, b: Vec4Arg, t: Vec4Arg, dst?: T | undefined) => T; max: (a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; min: (a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; mulScalar: (v: Vec4Arg, k: number, dst?: T | undefined) => T; scale: (v: Vec4Arg, k: number, dst?: T | undefined) => T; divScalar: (v: Vec4Arg, k: number, dst?: T | undefined) => T; inverse: (v: Vec4Arg, dst?: T | undefined) => T; invert: (v: Vec4Arg, dst?: T | undefined) => T; dot: (a: Vec4Arg, b: Vec4Arg) => number; length: (v: Vec4Arg) => number; len: (v: Vec4Arg) => number; lengthSq: (v: Vec4Arg) => number; lenSq: (v: Vec4Arg) => number; distance: (a: Vec4Arg, b: Vec4Arg) => number; dist: (a: Vec4Arg, b: Vec4Arg) => number; distanceSq: (a: Vec4Arg, b: Vec4Arg) => number; distSq: (a: Vec4Arg, b: Vec4Arg) => number; normalize: (v: Vec4Arg, dst?: T | undefined) => T; negate: (v: Vec4Arg, dst?: T | undefined) => T; copy: (v: Vec4Arg, dst?: T | undefined) => T; clone: (v: Vec4Arg, dst?: T | undefined) => T; multiply: (a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; mul: (a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; divide: (a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; div: (a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; zero: (dst?: T | undefined) => T; transformMat4: (v: Vec4Arg, m: Mat4Arg, dst?: T | undefined) => T; setLength: (a: Vec4Arg, len: number, dst?: T | undefined) => T; truncate: (a: Vec4Arg, maxLen: number, dst?: T | undefined) => T; midpoint: (a: Vec4Arg, b: Vec4Arg, dst?: T | undefined) => T; };