// Type definitions for gl-matrix 2.3.1 // Project: http://glmatrix.net/ // Definitions by: chuntaro // Definitions: https://github.com/chuntaro/gl-matrix.d.ts declare module "gl-matrix" { interface glMatrix { EPSILON: number; ARRAY_TYPE: number[]; RANDOM: () => number; setMatrixArrayType(type: T): void; toRadian(a: number): number; } export var glMatrix: glMatrix; export interface vec2 { create(): number[]; clone(a: number[]): number[]; fromValues(x: number, y: number): number[]; copy(out: number[], a: number[]): number[]; set(out: number[], x: number, y: number): number[]; add(out: number[], a: number[], b: number[]): number[]; subtract(out: number[], a: number[], b: number[]): number[]; sub(out: number[], a: number[], b: number[]): number[]; multiply(out: number[], a: number[], b: number[]): number[]; mul(out: number[], a: number[], b: number[]): number[]; divide(out: number[], a: number[], b: number[]): number[]; div(out: number[], a: number[], b: number[]): number[]; min(out: number[], a: number[], b: number[]): number[]; max(out: number[], a: number[], b: number[]): number[]; scale(out: number[], a: number[], b: number): number[]; scaleAndAdd(out: number[], a: number[], b: number[], scale: number): number[]; distance(a: number[], b: number[]): number; dist(a: number[], b: number[]): number; squaredDistance(a: number[], b: number[]): number; sqrDist(a: number[], b: number[]): number; length(a: number[]): number; len(a: number[]): number; squaredLength(a: number[]): number; sqrLen(a: number[]): number; negate(out: number[], a: number[]): number[]; inverse(out: number[], a: number[]): number[]; normalize(out: number[], a: number[]): number[]; dot(a: number[], b: number[]): number; cross(out: number[], a: number[], b: number[]): number[]; lerp(out: number[], a: number[], b: number[], t: number): number[]; random(out: number[], scale: number): number[]; transformMat2(out: number[], a: number[], m: number[]): number[]; transformMat2d(out: number[], a: number[], m: number[]): number[]; transformMat3(out: number[], a: number[], m: number[]): number[]; transformMat4(out: number[], a: number[], m: number[]): number[]; forEach(a: number[][], stride: number, offset: number, count: number, fn: (a: number[], b: number[], arg: T) => void, arg: T): number[][]; str(a: number[]): string; } export var vec2: vec2; interface vec3 { create(): number[]; clone(a: number[]): number[]; fromValues(x: number, y: number, z: number): number[]; copy(out: number[], a: number[]): number[]; set(out: number[], x: number, y: number, z: number): number[]; add(out: number[], a: number[], b: number[]): number[]; subtract(out: number[], a: number[], b: number[]): number[]; sub(out: number[], a: number[], b: number[]): number[]; multiply(out: number[], a: number[], b: number[]): number[]; mul(out: number[], a: number[], b: number[]): number[]; divide(out: number[], a: number[], b: number[]): number[]; div(out: number[], a: number[], b: number[]): number[]; min(out: number[], a: number[], b: number[]): number[]; max(out: number[], a: number[], b: number[]): number[]; scale(out: number[], a: number[], b: number): number[]; scaleAndAdd(out: number[], a: number[], b: number[], scale: number): number[]; distance(a: number[], b: number[]): number; dist(a: number[], b: number[]): number; squaredDistance(a: number[], b: number[]): number; sqrDist(a: number[], b: number[]): number; length(a: number[]): number; len(a: number[]): number; squaredLength(a: number[]): number; sqrLen(a: number[]): number; negate(out: number[], a: number[]): number[]; inverse(out: number[], a: number[]): number[]; normalize(out: number[], a: number[]): number[]; dot(a: number[], b: number[]): number; cross(out: number[], a: number[], b: number[]): number[]; lerp(out: number[], a: number[], b: number[], t: number): number[]; hermite(out: number[], a: number[], b: number[], c: number[], d: number[], t: number): number[]; bezier(out: number[], a: number[], b: number[], c: number[], d: number[], t: number): number[]; random(out: number[], scale: number): number[]; transformMat4(out: number[], a: number[], m: number[]): number[]; transformMat3(out: number[], a: number[], m: number[]): number[]; transformQuat(out: number[], a: number[], q: number[]): number[]; rotateX(out: number[], a: number[], b: number[], c: number): number[]; rotateY(out: number[], a: number[], b: number[], c: number): number[]; rotateZ(out: number[], a: number[], b: number[], c: number): number[]; forEach(a: number[][], stride: number, offset: number, count: number, fn: (a: number[], b: number[], arg: T) => void, arg: T): number[][]; angle(a: number[], b: number[]): number; str(a: number[]): string; } export var vec3: vec3; interface vec4 { create(): number[]; clone(a: number[]): number[]; fromValues(x: number, y: number, z: number, w: number): number[]; copy(out: number[], a: number[]): number[]; set(out: number[], x: number, y: number, z: number, w: number): number[]; add(out: number[], a: number[], b: number[]): number[]; subtract(out: number[], a: number[], b: number[]): number[]; sub(out: number[], a: number[], b: number[]): number[]; multiply(out: number[], a: number[], b: number[]): number[]; mul(out: number[], a: number[], b: number[]): number[]; divide(out: number[], a: number[], b: number[]): number[]; div(out: number[], a: number[], b: number[]): number[]; min(out: number[], a: number[], b: number[]): number[]; max(out: number[], a: number[], b: number[]): number[]; scale(out: number[], a: number[], b: number): number[]; scaleAndAdd(out: number[], a: number[], b: number[], scale: number): number[]; distance(a: number[], b: number[]): number; dist(a: number[], b: number[]): number; squaredDistance(a: number[], b: number[]): number; sqrDist(a: number[], b: number[]): number; length(a: number[]): number; len(a: number[]): number; squaredLength(a: number[]): number; sqrLen(a: number[]): number; negate(out: number[], a: number[]): number[]; inverse(out: number[], a: number[]): number[]; normalize(out: number[], a: number[]): number[]; dot(a: number[], b: number[]): number; lerp(out: number[], a: number[], b: number[], t: number): number[]; random(out: number[], scale: number): number[]; transformMat4(out: number[], a: number[], m: number[]): number[]; transformQuat(out: number[], a: number[], q: number[]): number[]; forEach(a: number[][], stride: number, offset: number, count: number, fn: (a: number[], b: number[], arg: T) => void, arg: T): number[][]; str(a: number[]): string; } export var vec4: vec4; interface mat2 { create(): number[]; clone(a: number[]): number[]; copy(out: number[], a: number[]): number[]; identity(out: number[]): number[]; transpose(out: number[], a: number[]): number[]; invert(out: number[], a: number[]): number[]; adjoint(out: number[], a: number[]): number[]; determinant(a: number[]): number; multiply(out: number[], a: number[], b: number[]): number[]; mul(out: number[], a: number[], b: number[]): number[]; rotate(out: number[], a: number[], rad: number): number[]; scale(out: number[], a: number[], v: number[]): number[]; fromRotation(out: number[], rad: number): number[]; fromScaling(out: number[], v: number[]): number[]; str(a: number[]): string; frob(a: number[]): number; LDU(L: number[], D: number[], U: number[], a: number[]): number[][]; } export var mat2: mat2; interface mat2d { create(): number[]; clone(a: number[]): number[]; copy(out: number[], a: number[]): number[]; identity(out: number[]): number[]; invert(out: number[], a: number[]): number[]; determinant(a: number[]): number; multiply(out: number[], a: number[], b: number[]): number[]; mul(out: number[], a: number[], b: number[]): number[]; rotate(out: number[], a: number[], rad: number): number[]; scale(out: number[], a: number[], v: number[]): number[]; translate(out: number[], a: number[], v: number[]): number[]; fromRotation(out: number[], rad: number): number[]; fromScaling(out: number[], v: number[]): number[]; fromTranslation(out: number[], v: number[]): number[]; str(a: number[]): string; frob(a: number[]): number; } export var mat2d: mat2d; interface mat3 { create(): number[]; fromMat4(out: number[], a: number[]): number[]; clone(a: number[]): number[]; copy(out: number[], a: number[]): number[]; identity(out: number[]): number[]; transpose(out: number[], a: number[]): number[]; invert(out: number[], a: number[]): number[]; adjoint(out: number[], a: number[]): number[]; determinant(a: number[]): number; multiply(out: number[], a: number[], b: number[]): number[]; mul(out: number[], a: number[], b: number[]): number[]; translate(out: number[], a: number[], v: number[]): number[]; rotate(out: number[], a: number[], rad: number): number[]; scale(out: number[], a: number[], v: number[]): number[]; fromTranslation(out: number[], v: number[]): number[]; fromRotation(out: number[], rad: number): number[]; fromScaling(out: number[], v: number[]): number[]; fromMat2d(out: number[], a: number[]): number[]; fromQuat(out: number[], q: number[]): number[]; normalFromMat4(out: number[], a: number[]): number[]; str(a: number[]): string; frob(a: number[]): number; } export var mat3: mat3; interface mat4 { create(): number[]; clone(a: number[]): number[]; copy(out: number[], a: number[]): number[]; identity(out: number[]): number[]; transpose(out: number[], a: number[]): number[]; invert(out: number[], a: number[]): number[]; adjoint(out: number[], a: number[]): number[]; determinant(a: number[]): number; multiply(out: number[], a: number[], b: number[]): number[]; mul(out: number[], a: number[], b: number[]): number[]; translate(out: number[], a: number[], v: number[]): number[]; scale(out: number[], a: number[], v: number[]): number[]; rotate(out: number[], a: number[], rad: number, axis: number[]): number[]; rotateX(out: number[], a: number[], rad: number): number[]; rotateY(out: number[], a: number[], rad: number): number[]; rotateZ(out: number[], a: number[], rad: number): number[]; fromTranslation(out: number[], v: number[]): number[]; fromScaling(out: number[], v: number[]): number[]; fromRotation(out: number[], rad: number, axis: number[]): number[]; fromXRotation(out: number[], rad: number): number[]; fromYRotation(out: number[], rad: number): number[]; fromZRotation(out: number[], rad: number): number[]; fromRotationTranslation(out: number[], q: number[], v: number[]): number[]; fromRotationTranslationScale(out: number[], q: number[], v: number[], s: number[]): number[]; fromRotationTranslationScaleOrigin(out: number[], q: number[], v: number[], s: number[], o: number[]): number[]; fromQuat(out: number[], q: number[]): number[]; frustum(out: number[], left: number, right: number, bottom: number, top: number, near: number, far: number): number[]; perspective(out: number[], fovy: number, aspect: number, near: number, far: number): number[]; perspectiveFromFieldOfView(out: number[], fov: number, near: number, far: number): number[]; ortho(out: number[], left: number, right: number, bottom: number, top: number, near: number, far: number): number[]; lookAt(out: number[], eye: number[], center: number[], up: number[]): number[]; str(a: number[]): string; frob(a: number[]): number; } export var mat4: mat4; interface quat { create(): number[]; rotationTo(out: number[], a: number[], b: number[]): number[]; setAxes(out: number[], view: number[], right: number[], up: number[]): number[]; clone(a: number[]): number[]; fromValues(x: number, y: number, z: number, w: number): number[]; copy(out: number[], a: number[]): number[]; set(out: number[], x: number, y: number, z: number, w: number): number[]; identity(out: number[]): number[]; setAxisAngle(out: number[], axis: number[], rad: number): number[]; add(out: number[], a: number[], b: number[]): number[]; multiply(out: number[], a: number[], b: number[]): number[]; mul(out: number[], a: number[], b: number[]): number[]; scale(out: number[], a: number[], b: number): number[]; rotateX(out: number[], a: number[], rad: number): number[]; rotateY(out: number[], a: number[], rad: number): number[]; rotateZ(out: number[], a: number[], rad: number): number[]; calculateW(out: number[], a: number[]): number[]; dot(a: number[], b: number[]): number; lerp(out: number[], a: number[], b: number[], t: number): number[]; slerp(out: number[], a: number[], b: number[], t: number): number[]; sqlerp(out: number[], a: number[], b: number[], c: number[], d: number[], t: number): number[]; invert(out: number[], a: number[]): number[]; conjugate(out: number[], a: number[]): number[]; length(a: number[]): number; len(a: number[]): number; squaredLength(a: number[]): number; sqrLen(a: number[]): number; normalize(out: number[], a: number[]): number[]; fromMat3(out: number[], m: number[]): number[]; str(a: number[]): string; } export var quat: quat; }