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