pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/pex-gl/pex-math

15370f045c7e0.css" /> GitHub - pex-gl/pex-math: Array-based vector, quaternion and matrix math with utils for PEX. · GitHub
Skip to content

pex-gl/pex-math

pex-math

npm version stability-stable npm minzipped size dependencies types Conventional Commits styled with prettier linted with eslint license

Array-based vector, quaternion and matrix math with utils for PEX.

Installation

npm install pex-math

Usage

import { mat4 } from "pex-math";

const identityMatrix = mat4.create();
// => [1, 0, 0, 0,
//     0, 1, 0, 0,
//     0, 0, 1, 0,
//     0, 0, 0, 1]

API

Modules

pex-math
avec2
avec3
avec4
eases
euler
mat2x3
mat3
mat4
quat
utils
vec2
vec3
vec4

Typedefs

TypedArray : Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array
avec2 : TypedArray
avec3 : TypedArray
avec4 : TypedArray
amat4 : TypedArray
aquat : TypedArray
euler : Array.<number>
mat2x3 : Array.<number>
mat3 : Array.<number>
mat4 : Array.<number>
quat : Array.<number>
vec2 : Array.<number>
vec3 : Array.<number>
vec4 : Array.<number>
Degrees : number
Radians : number
iterativeCallback : function

Callback for iterating typed arrays.

easeFnnumber

Ease functions signature.

easeStepFnnumber

Ease step functions signature.

pex-math

pex-math.mat2x3 : mat2x3

Kind: static property of pex-math

pex-math.mat3 : mat3

Kind: static property of pex-math

pex-math.mat4 : mat4

Kind: static property of pex-math

pex-math.vec2 : vec2

Kind: static property of pex-math

pex-math.vec3 : vec3

Kind: static property of pex-math

pex-math.vec4 : vec4

Kind: static property of pex-math

pex-math.avec2 : avec2

Kind: static property of pex-math

pex-math.avec3 : avec3

Kind: static property of pex-math

pex-math.avec4 : avec4

Kind: static property of pex-math

pex-math.quat : quat

Kind: static property of pex-math

pex-math.euler : euler

Kind: static property of pex-math

pex-math.eases : eases

Kind: static property of pex-math

pex-math.utils : utils

Kind: static property of pex-math

avec2

avec2.set2(a, i, x, y)

Sets a vector components.

Kind: static method of avec2

Param Type
a avec2
i number
x number
y number

avec2.set(a, i, b, j)

Sets a vector to another vector.

Kind: static method of avec2

Param Type
a avec2
i number
b avec2
j number

avec2.equals(a, i, b, j) ⇒ boolean

Compares two vectors.

Kind: static method of avec2

Param Type
a avec2
i number
b avec2
j number

avec2.add(a, i, b, j)

Adds a vector to another.

Kind: static method of avec2

Param Type
a avec2
i number
b avec2
j number

avec2.sub(a, i, b, j)

Subtracts a vector from another.

Kind: static method of avec2

Param Type
a avec2
i number
b avec2
j number

avec2.scale(a, i, s)

Scales a vector by a number.

Kind: static method of avec2

Param Type
a avec2
i number
s number

avec2.addScaled(a, i, b, j, s)

Adds two vectors after scaling the second one.

Kind: static method of avec2

Param Type
a avec2
i number
b avec2
j number
s number

avec2.dot(a, i, b, j) ⇒ number

Calculates the dot product of two vectors.

Kind: static method of avec2

Param Type
a avec2
i number
b avec2
j number

avec2.length(a, i) ⇒ number

Calculates the length of a vector.

Kind: static method of avec2

Param Type
a avec2
i number

avec2.lengthSq(a, i) ⇒ number

Calculates the squared length of a vector.

Kind: static method of avec2

Param Type
a avec2
i number

avec2.normalize(a, i)

Normalises a vector.

Kind: static method of avec2

Param Type
a avec2
i number

avec2.distance(a, i, b, j) ⇒ number

Calculates the distance between two vectors.

Kind: static method of avec2

Param Type
a avec2
i number
b avec2
j number

avec2.distanceSq(a, i, b, j) ⇒ number

Calculates the squared distance between two vectors.

Kind: static method of avec2

Param Type
a avec2
i number
b avec2
j number

avec2.limit(a, i, len)

Limits a vector to a length.

Kind: static method of avec2

Param Type
a avec2
i number
len number

avec2.lerp(a, i, b, j, t)

Linearly interpolates between two vectors.

Kind: static method of avec2

Param Type
a avec2
i number
b avec2
j number
t number

avec2.forEach(a, callbackFn)

Executes a function once for each array element.

Kind: static method of avec2

Param Type
a avec2
callbackFn iterativeCallback

avec2.map(a, callbackFn) ⇒ avec2

Creates a new array populated with the results of calling a provided function on every element in the calling array.

Kind: static method of avec2

Param Type
a avec2
callbackFn iterativeCallback

avec2.toString(a, i, [precision]) ⇒ string

Prints a vector to a string.

Kind: static method of avec2

Param Type Default
a avec2
i number
[precision] number 4

avec3

avec3.set3(a, i, x, y, z)

Sets a vector components.

Kind: static method of avec3

Param Type
a avec3
i number
x number
y number
z number

avec3.set(a, i, b, j)

Sets a vector to another vector.

Kind: static method of avec3

Param Type
a avec3
i number
b avec3
j number

avec3.equals(a, i, b, j) ⇒ boolean

Compares two vectors.

Kind: static method of avec3

Param Type
a avec3
i number
b avec3
j number

avec3.add(a, i, b, j)

Adds a vector to another.

Kind: static method of avec3

Param Type
a avec3
i number
b avec3
j number

avec3.sub(a, i, b, j)

Subtracts a vector from another.

Kind: static method of avec3

Param Type
a avec3
i number
b avec3
j number

avec3.scale(a, i, s)

Scales a vector by a number.

Kind: static method of avec3

Param Type
a avec3
i number
s number

avec3.addScaled(a, i, b, j, s)

Adds two vectors after scaling the second one.

Kind: static method of avec3

Param Type
a avec3
i number
b avec3
j number
s number

avec3.multMat4(a, i, m, j)

Multiplies a vector by a matrix.

Kind: static method of avec3

Param Type
a avec3
i number
m amat4
j number

avec3.multQuat(a, i, q, j)

Multiplies a vector by a quaternion.

Kind: static method of avec3

Param Type
a avec3
i number
q aquat
j number

avec3.dot(a, i, b, j) ⇒ number

Calculates the dot product of two vectors.

Kind: static method of avec3

Param Type
a avec3
i number
b avec3
j number

avec3.cross(a, i, b, j)

Calculates the cross product of two vectors.

Kind: static method of avec3

Param Type
a avec3
i number
b avec3
j number

avec3.length(a, i) ⇒ number

Calculates the length of a vector.

Kind: static method of avec3

Param Type
a avec3
i number

avec3.lengthSq(a, i) ⇒ number

Calculates the squared length of a vector.

Kind: static method of avec3

Param Type
a avec3
i number

avec3.normalize(a, i)

Normalises a vector.

Kind: static method of avec3

Param Type
a avec3
i number

avec3.distance(a, i, b, j) ⇒ number

Calculates the distance between two vectors.

Kind: static method of avec3

Param Type
a avec3
i number
b avec3
j number

avec3.distanceSq(a, i, b, j) ⇒ number

Calculates the squared distance between two vectors.

Kind: static method of avec3

Param Type
a avec3
i number
b avec3
j number

avec3.limit(a, i, len)

Limits a vector to a length.

Kind: static method of avec3

Param Type
a avec3
i number
len number

avec3.lerp(a, i, b, j, t)

Linearly interpolates between two vectors.

Kind: static method of avec3

Param Type
a avec3
i number
b avec3
j number
t number

avec3.forEach(a, callbackFn)

Executes a function once for each array element.

Kind: static method of avec3

Param Type
a avec3
callbackFn iterativeCallback

avec3.map(a, callbackFn) ⇒ avec3

Creates a new array populated with the results of calling a provided function on every element in the calling array.

Kind: static method of avec3

Param Type
a avec3
callbackFn iterativeCallback

avec3.toString(a, i, [precision]) ⇒ string

Prints a vector to a string.

Kind: static method of avec3

Param Type Default
a avec3
i number
[precision] number 4

avec4

avec4.set4(a, i, x, y, z, w)

Sets a vector components.

Kind: static method of avec4

Param Type
a avec4
i number
x number
y number
z number
w number

avec4.set(a, i, b, j)

Sets a vector to another vector.

Kind: static method of avec4

Param Type
a avec4
i number
b avec4
j number

avec4.equals(a, i, b, j) ⇒ boolean

Compares two vectors.

Kind: static method of avec4

Param Type
a avec4
i number
b avec4
j number

avec4.add(a, i, b, j)

Adds a vector to another.

Kind: static method of avec4

Param Type
a avec4
i number
b avec4
j number

avec4.sub(a, i, b, j)

Subtracts a vector from another.

Kind: static method of avec4

Param Type
a avec4
i number
b avec4
j number

avec4.scale(a, i, s)

Scales a vector by a number.

Kind: static method of avec4

Param Type
a avec4
i number
s number

avec4.addScaled(a, i, b, j, s)

Adds two vectors after scaling the second one.

Kind: static method of avec4

Param Type
a avec4
i number
b avec4
j number
s number

avec4.multMat4(a, i, m, j)

Multiplies a vector with a matrix.

Kind: static method of avec4

Param Type
a avec4
i number
m amat4
j number

avec4.lerp(a, i, b, j, t)

Linearly interpolates between two vectors.

Kind: static method of avec4

Param Type
a avec4
i number
b avec4
j number
t number

avec4.forEach(a, callbackFn)

Executes a function once for each array element.

Kind: static method of avec4

Param Type
a avec4
callbackFn iterativeCallback

avec4.map(a, callbackFn) ⇒ avec4

Creates a new array populated with the results of calling a provided function on every element in the calling array.

Kind: static method of avec4

Param Type
a avec4
callbackFn iterativeCallback

avec4.toString(a, i, [precision]) ⇒ string

Prints a vector to a string.

Kind: static method of avec4

Param Type Default
a avec4
i number
[precision] number 4

eases

eases.linear() : easeFn

Kind: static method of eases

eases.sineIn() : easeFn

Kind: static method of eases

eases.sineOut() : easeFn

Kind: static method of eases

eases.sineInOut() : easeFn

Kind: static method of eases

eases.quadIn() : easeFn

Kind: static method of eases

eases.quadOut() : easeFn

Kind: static method of eases

eases.quadInOut() : easeFn

Kind: static method of eases

eases.cubicIn() : easeFn

Kind: static method of eases

eases.cubicOut() : easeFn

Kind: static method of eases

eases.cubicInOut() : easeFn

Kind: static method of eases

eases.quartIn() : easeFn

Kind: static method of eases

eases.quartOut() : easeFn

Kind: static method of eases

eases.quartInOut() : easeFn

Kind: static method of eases

eases.quintIn() : easeFn

Kind: static method of eases

eases.quintOut() : easeFn

Kind: static method of eases

eases.quintInOut() : easeFn

Kind: static method of eases

eases.expoIn() : easeFn

Kind: static method of eases

eases.expoOut() : easeFn

Kind: static method of eases

eases.expoInOut() : easeFn

Kind: static method of eases

eases.circIn() : easeFn

Kind: static method of eases

eases.circOut() : easeFn

Kind: static method of eases

eases.circInOut() : easeFn

Kind: static method of eases

eases.backIn() : easeFn

Kind: static method of eases

eases.backOut() : easeFn

Kind: static method of eases

eases.backInOut() : easeFn

Kind: static method of eases

eases.elasticIn() : easeFn

Kind: static method of eases

eases.elasticOut() : easeFn

Kind: static method of eases

eases.elasticInOut() : easeFn

Kind: static method of eases

eases.bounceIn() : easeFn

Kind: static method of eases

eases.bounceOut() : easeFn

Kind: static method of eases

eases.bounceInOut() : easeFn

Kind: static method of eases

eases.stepStart() : easeStepFn

Kind: static method of eases

eases.stepEnd() : easeStepFn

Kind: static method of eases

eases.stepNone() : easeStepFn

Kind: static method of eases

eases.stepBoth() : easeStepFn

Kind: static method of eases

euler

euler.create() ⇒ euler

Create a new euler angles [0, 0, 0]: vec3 array of [x, y, z] rotation [yaw, pitch, roll] in radians.

Kind: static method of euler

euler.fromQuat(a, q) ⇒ euler

Creates euler angles from quaternion. Assumes XYZ order of rotations.

Kind: static method of euler

Param Type
a euler
q quat

mat2x3

mat2x3.create() ⇒ mat2x3

Returns a 2x3 identity matrix, a short form for a 3x3 matrix with the last row ignored.

Row major memory layout:

0   1
2   3
4   5

Equivalent to the column major OpenGL spec:

0   3
1   4
2   5

m00 m10
m01 m11
m02 m12

Kind: static method of mat2x3

mat2x3.identity(a) ⇒ mat2x3

Sets a matrix to the identity matrix.

Kind: static method of mat2x3

Param Type
a mat2x3

mat2x3.copy(a) ⇒ mat2x3

Returns a copy of a matrix.

Kind: static method of mat2x3

Param Type
a mat2x3

mat2x3.set(a, b) ⇒ mat2x3

Sets a matrix from another matrix.

Kind: static method of mat2x3

Param Type
a mat2x3
b mat2x3

mat2x3.equals(a, b) ⇒ boolean

Compares two matrices.

Kind: static method of mat2x3

Param Type
a mat2x3
b mat2x3

mat2x3.mult(a, b) ⇒ mat2x3

Multiplies two matrices.

Kind: static method of mat2x3

Param Type
a mat2x3
b mat2x3

mat2x3.translate(a, v) ⇒ mat2x3

Translates a matrix by a vector.

Kind: static method of mat2x3

Param Type
a mat2x3
v vec2

mat2x3.rotate(a, rad) ⇒ mat2x3

Rotates a matrix by an angle.

Kind: static method of mat2x3

Param Type
a mat2x3
rad Radians

mat2x3.scale(a, v) ⇒ mat2x3

Scales a matrix by a vector.

Kind: static method of mat2x3

Param Type
a mat2x3
v vec2

mat3

mat3.create() ⇒ mat3

Returns a 3x3 identity matrix.

Row major memory layout:

 0   1   2
 3   4   5
 6   7   8

Equivalent to the column major OpenGL spec:

  0   3   6
  1   4   7
  2   5   8

 m00 m10 m20
 m01 m11 m21
 m02 m12 m22

Kind: static method of mat3

mat3.identity(a) ⇒ mat3

Sets a matrix to the identity matrix.

Kind: static method of mat3

Param Type
a mat3

mat3.copy(a) ⇒ mat3

Returns a copy of a matrix.

Kind: static method of mat3

Param Type
a mat3

mat3.set(a, b) ⇒ mat3

Sets a matrix from another matrix.

Kind: static method of mat3

Param Type
a mat3
b mat3

mat3.equals(a, b) ⇒ boolean

Compares two matrices.

Kind: static method of mat3

Param Type
a mat3
b mat3

mat3.mult(a, b) ⇒ mat3

Multiplies two matrices.

Kind: static method of mat3

Param Type
a mat3
b mat3

mat3.transpose(a) ⇒ mat3

Transposes a matrix.

Kind: static method of mat3

Param Type
a mat3

mat3.fromQuat(a, q) ⇒ mat3

Sets matrix to a quaternion.

Kind: static method of mat3

Param Type
a mat3
q quat

mat3.fromMat2x3(a, b) ⇒ mat3

Sets a 3x3 matrix from a 2x3 matrix.

Kind: static method of mat3

Param Type
a mat3
b mat2x3

mat3.fromMat4(a, b) ⇒ mat3

Sets a 3x3 matrix to a 4x4 matrix.

Kind: static method of mat3

Param Type
a mat3
b mat4

mat4

mat4.create() ⇒ mat4

Returns a 4x4 identity matrix.

Row major memory layout:

 0   1   2   3
 4   5   6   7
 8   9  10  11
12  13  14  15

Equivalent to the column major OpenGL spec:

 0   4   8  12
 1   5   9  13
 2   6  10  14
 3   7  11  15

 m00 m10 m20 m30
 m01 m11 m21 m31
 m02 m12 m22 m32
 m03 m13 m23 m33

Kind: static method of mat4

mat4.identity(a) ⇒ mat4

Sets a matrix to the identity matrix.

Kind: static method of mat4

Param Type
a mat4

mat4.copy(a) ⇒ mat4

Returns a copy of a matrix.

Kind: static method of mat4

Param Type
a mat4

mat4.set(a, b) ⇒ mat4

Sets a matrix from another matrix.

Kind: static method of mat4

Param Type
a mat4
b mat4

mat4.equals(a, b) ⇒ boolean

Compares two matrices.

Kind: static method of mat4

Param Type
a mat4
b mat4

mat4.mult(a, b) ⇒ mat4

Multiplies two matrices.

Kind: static method of mat4

Param Type
a mat4
b mat4

mat4.invert(a) ⇒ mat4

Inverts a matrix.

Kind: static method of mat4

Param Type
a mat4

mat4.transpose(a) ⇒ mat4

Transposes a matrix.

Kind: static method of mat4

Param Type
a mat4

mat4.translate(a, v) ⇒ mat4

Translates a matrix by a vector.

Kind: static method of mat4

Param Type
a mat4
v vec3

mat4.rotate(a, r, v) ⇒ mat4

Rotates a matrix by an angle at an axis.

Kind: static method of mat4

Param Type
a mat4
r Radians
v vec3

mat4.scale(a, v) ⇒ mat4

Scales a matrix by a vector.

Kind: static method of mat4

Param Type
a mat4
v vec3

mat4.fromQuat(a, q) ⇒ mat4

Sets a matrix to a quaternion.

Kind: static method of mat4

Param Type
a mat4
q quat

mat4.fromTranslationRotationScale(a, v, q, s) ⇒ mat4

Sets a matrix to the TRS matrix.

Kind: static method of mat4

Param Type
a mat4
v vec3
q quat
s vec3

mat4.fromMat3(a, b) ⇒ mat4

Sets a 4x4 matrix to a 3x3 matrix.

Kind: static method of mat4

Param Type
a mat4
b mat3

mat4.frustum(a, left, right, bottom, top, near, far) ⇒ mat4

Creates a frustum matrix.

Kind: static method of mat4

Param Type
a mat4
left number
right number
bottom number
top number
near number
far number

mat4.perspective(a, fovy, aspectRatio, near, far) ⇒ mat4

Creates a perspective matrix.

Kind: static method of mat4

Param Type
a mat4
fovy Radians
aspectRatio number
near number
far number

mat4.ortho(a, left, right, bottom, top, near, far) ⇒ mat4

Creates an orthographic matrix.

Kind: static method of mat4

Param Type
a mat4
left number
right number
bottom number
top number
near number
far number

mat4.lookAt(a, from, to, [up]) ⇒ mat4

Calculates a lookAt matrix from position, target and up vectors.

Kind: static method of mat4

Param Type Default
a mat4
from vec3
to vec3
[up] vec3 Y_UP

mat4.fromDirection(a, direction, [up]) ⇒ mat4

Sets a matrix from a direction. Note: we assume +Z facing models.

Kind: static method of mat4

Param Type Default
a mat4
direction vec3
[up] vec3 Y_UP

mat4.fromPointToPoint(a, from, to, [up]) ⇒ mat4

Sets a matrix from a point to another.

Kind: static method of mat4

Param Type Default
a mat4
from vec3
to vec3
[up] vec3 Y_UP

quat

quat.set ⇒ quat

Sets a quaternion to another quaternion.

Kind: static constant of quat

Param Type
a quat
b quat

quat.equals ⇒ boolean

Compares two quaternions.

Kind: static constant of quat

Param Type
a quat
b quat

quat.toString ⇒ quat

Prints a quaternion to a string.

Kind: static constant of quat

Param Type
a quat
precision number

quat.create() ⇒ quat

Returns a new quat at 0, 0, 0, 1.

Kind: static method of quat

quat.identity(a) ⇒ quat

Sets a quaternion to the identity quaternion.

Kind: static method of quat

Param Type
a quat

quat.copy(a) ⇒ quat

Returns a copy of a quaternion.

Kind: static method of quat

Param Type
a quat

quat.mult(a, b) ⇒ quat

Multiplies one quaternion by another.

Kind: static method of quat

Param Type
a quat
b quat

quat.invert(a) ⇒ quat

Inverts a quaternion.

Kind: static method of quat

Param Type
a quat

quat.conjugate(a) ⇒ quat

Conjugates a quaternion.

Kind: static method of quat

Param Type
a quat

quat.length(a) ⇒ quat

Calculates the length of a quaternion.

Kind: static method of quat

Param Type
a quat

quat.normalize(a) ⇒ quat

Normalizes a quaternion.

Kind: static method of quat

Param Type
a quat

quat.dot(a, b) ⇒ quat

Calculates the dot product of two quaternions.

Kind: static method of quat

Param Type
a quat
b quat

quat.fromEuler(a, e) ⇒ quat

Set euler angles to a quaternion. Assumes XYZ rotation order.

Kind: static method of quat

Param Type
a quat
e euler

quat.fromAxisAngle(a, v, r) ⇒ quat

Set the angle at an axis of a quaternion.

Kind: static method of quat

Param Type
a quat
v vec3
r Radians

quat.fromAxes(a, x, y, z) ⇒ quat

Sets a quaternion from orthonormal base xyz.

Kind: static method of quat

Param Type
a quat
x vec3
y vec3
z vec3

quat.fromMat3(a, m) ⇒ quat

Sets a quaternion to a 3x3 matrix.

Kind: static method of quat

Param Type
a quat
m mat3

quat.fromMat4(a, m) ⇒ quat

Sets a quaternion to a 4x4 matrix.

Kind: static method of quat

Param Type
a quat
m mat4

quat.fromDirection(a, direction, [up]) ⇒ quat

Sets a quaternion from a direction Note: we assume +Z facing models.

Kind: static method of quat

Param Type Default
a quat
direction vec3
[up] vec3 Y_UP

quat.fromPointToPoint(a, from, to, [up]) ⇒ quat

Sets a quaternion from a point to another.

Kind: static method of quat

Param Type Default
a quat
from vec3
to vec3
[up] vec3 Y_UP

quat.slerp(a, b, t) ⇒ quat

Spherical linear interpolates between two quaternions.

Kind: static method of quat

Param Type
a quat
b quat
t number

utils

utils.EPSILON : number

Kind: static constant of utils

utils.HALF_PI : number

Kind: static constant of utils

utils.Y_UP : vec3

Kind: static constant of utils

utils.lerp(a, b, t) ⇒ number

Linear interpolation between two numbers.

Kind: static method of utils

Param Type
a number
b number
t number

utils.clamp(n, min, max) ⇒ number

Clamps a number between two numbers.

Kind: static method of utils

Param Type
n number
min number
max number

utils.smoothstep(n, min, max) ⇒ number

Smooth Hermite interpolation between 0 and 1

Kind: static method of utils

Param Type
n number
min number
max number

utils.remap(n, inStart, inEnd, outStart, outEnd) ⇒ number

Maps a number from one range to another.

Kind: static method of utils

Param Type
n number
inStart number
inEnd number
outStart number
outEnd number

utils.toRadians(degrees) ⇒ Radians

Transforms degrees into radians.

Kind: static method of utils

Param Type
degrees Degrees

utils.toDegrees(radians) ⇒ Degrees

Transforms radians into degrees.

Kind: static method of utils

Param Type
radians Radians

utils.isPowerOfTwo(a) ⇒ boolean

Check if a number is a power of two

Kind: static method of utils

Param Type
a number

utils.nextPowerOfTwo(n) ⇒ number

Returns the next highest power of two.

Kind: static method of utils

Param Type
n number

utils.prevPowerOfTwo(n) ⇒ number

Returns the previous power of two.

Kind: static method of utils

Param Type
n number

vec2

vec2.create() ⇒ vec2

Returns a new vec2 at 0, 0.

Kind: static method of vec2

vec2.copy(a) ⇒ vec2

Returns a copy of a vector.

Kind: static method of vec2

Param Type
a vec2

vec2.set(a, b) ⇒ vec2

Sets a vector to another vector.

Kind: static method of vec2

Param Type
a vec2
b vec2

vec2.equals(a, b) ⇒ boolean

Compares two vectors.

Kind: static method of vec2

Param Type
a vec2
b vec2

vec2.add(a, b) ⇒ vec2

Add a vector to another.

Kind: static method of vec2

Param Type
a vec2
b vec2

vec2.sub(a, b) ⇒ vec2

Subtracts a vector from another.

Kind: static method of vec2

Param Type
a vec2
b vec2

vec2.scale(a, s) ⇒ vec2

Scales a vector by a number.

Kind: static method of vec2

Param Type
a vec2
s number

vec2.addScaled(a, b, s) ⇒ vec2

Adds two vectors after scaling the second one.

Kind: static method of vec2

Param Type
a vec2
b vec2
s number

vec2.dot(a, b) ⇒ number

Calculates the dot product of two vectors.

Kind: static method of vec2

Param Type
a vec2
b vec2

vec2.length(a) ⇒ number

Calculates the length of a vector.

Kind: static method of vec2

Param Type
a vec2

vec2.lengthSq(a) ⇒ number

Calculates the squared length of a vector.

Kind: static method of vec2

Param Type
a vec2

vec2.normalize(a) ⇒ vec2

Normalises a vector.

Kind: static method of vec2

Param Type
a vec2

vec2.distance(a, b) ⇒ number

Calculates the distance between two vectors.

Kind: static method of vec2

Param Type
a vec2
b vec2

vec2.distanceSq(a, b) ⇒ number

Calculates the squared distance between two vectors.

Kind: static method of vec2

Param Type
a vec2
b vec2

vec2.limit(a, len) ⇒ vec2

Limits a vector to a length.

Kind: static method of vec2

Param Type
a vec2
len number

vec2.lerp(a, b, t) ⇒ vec2

Linearly interpolates between two vectors.

Kind: static method of vec2

Param Type
a vec2
b vec2
t number

vec2.toString(a, [precision]) ⇒ string

Prints a vector to a string.

Kind: static method of vec2

Param Type Default
a vec2
[precision] number 4

vec3

vec3.create() ⇒ vec3

Returns a new vec3 at 0, 0, 0.

Kind: static method of vec3

vec3.copy(a) ⇒ vec3

Returns a copy of a vector.

Kind: static method of vec3

Param Type
a vec3

vec3.set(a, b) ⇒ vec3

Sets a vector to another vector.

Kind: static method of vec3

Param Type
a vec3
b vec3

vec3.equals(a, b) ⇒ boolean

Compares two vectors.

Kind: static method of vec3

Param Type
a vec3
b vec3

vec3.add(a, b) ⇒ vec3

Adds a vector to another.

Kind: static method of vec3

Param Type
a vec3
b vec3

vec3.sub(a, b) ⇒ vec3

Subtracts a vector from another.

Kind: static method of vec3

Param Type
a vec3
b vec3

vec3.scale(a, s) ⇒ vec3

Scales a vector by a number.

Kind: static method of vec3

Param Type
a vec3
s number

vec3.addScaled(a, b, s) ⇒ vec3

Adds two vectors after scaling the second one.

Kind: static method of vec3

Param Type
a vec3
b vec3
s number

vec3.multMat4(a, m) ⇒ vec3

Multiplies a vector by a matrix.

Kind: static method of vec3

Param Type
a vec3
m mat4

vec3.multQuat(a, q) ⇒ vec3

Multiplies a vector by a quaternion.

Kind: static method of vec3

Param Type
a vec3
q quat

vec3.dot(a, b) ⇒ number

Calculates the dot product of two vectors.

Kind: static method of vec3

Param Type
a vec3
b vec3

vec3.cross(a, b) ⇒ vec3

Calculates the cross product of two vectors.

Kind: static method of vec3

Param Type
a vec3
b vec3

vec3.length(a) ⇒ number

Calculates the length of a vector.

Kind: static method of vec3

Param Type
a vec3

vec3.lengthSq(a) ⇒ number

Calculates the squared length of a vector.

Kind: static method of vec3

Param Type
a vec3

vec3.normalize(a) ⇒ vec3

Normalises a vector.

Kind: static method of vec3

Param Type
a vec3

vec3.distance(a, b) ⇒ number

Calculates the distance between two vectors.

Kind: static method of vec3

Param Type
a vec3
b vec3

vec3.distanceSq(a, b) ⇒ number

Calculates the squared distance between two vectors.

Kind: static method of vec3

Param Type
a vec3
b vec3

vec3.limit(a, len) ⇒ vec3

Limits a vector to a length.

Kind: static method of vec3

Param Type
a vec3
len number

vec3.lerp(a, b, t) ⇒ vec3

Linearly interpolates between two vectors.

Kind: static method of vec3

Param Type
a vec3
b vec3
t number

vec3.toString(a, [precision]) ⇒ string

Prints a vector to a string.

Kind: static method of vec3

Param Type Default
a vec3
[precision] number 4

vec4

vec4.create() ⇒ vec4

Returns a new vec4 at 0, 0, 0, 1.

Kind: static method of vec4

vec4.copy(a) ⇒ vec4

Returns a copy of a vector.

Kind: static method of vec4

Param Type
a vec4

vec4.set(a, b) ⇒ vec4

Sets a vector to another vector.

Kind: static method of vec4

Param Type
a vec4
b vec4

vec4.equals(a, b) ⇒ boolean

Compares two vectors.

Kind: static method of vec4

Param Type
a vec4
b vec4

vec4.add(a, b) ⇒ vec4

Adds a vector to another.

Kind: static method of vec4

Param Type
a vec4
b vec4

vec4.sub(a, b) ⇒ vec4

Subtracts a vector from another.

Kind: static method of vec4

Param Type
a vec4
b vec4

vec4.scale(a, s) ⇒ vec4

Scales a vector by a number.

Kind: static method of vec4

Param Type
a vec4
s number

vec4.addScaled(a, b, s) ⇒ vec4

Adds two vectors after scaling the second one.

Kind: static method of vec4

Param Type
a vec4
b vec4
s number

vec4.fromVec3(a, b) ⇒ vec4

Create a vec4 from vec3.

Kind: static method of vec4

Param Type
a vec4
b vec3

vec4.multMat4(a, m) ⇒ vec4

Multiplies a vector with a matrix.

Kind: static method of vec4

Param Type
a vec4
m mat4

vec4.lerp(a, b, t) ⇒ vec4

Linearly interpolates between two vectors.

Kind: static method of vec4

Param Type
a vec4
b vec4
t number

vec4.toString(a, [precision]) ⇒ string

Prints a vector to a string.

Kind: static method of vec4

Param Type Default
a vec4
[precision] number 4

TypedArray : Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array

Kind: global typedef

avec2 : TypedArray

Kind: global typedef

avec3 : TypedArray

Kind: global typedef

avec4 : TypedArray

Kind: global typedef

amat4 : TypedArray

Kind: global typedef

aquat : TypedArray

Kind: global typedef

euler : Array.<number>

Kind: global typedef

mat2x3 : Array.<number>

Kind: global typedef

mat3 : Array.<number>

Kind: global typedef

mat4 : Array.<number>

Kind: global typedef

quat : Array.<number>

Kind: global typedef

vec2 : Array.<number>

Kind: global typedef

vec3 : Array.<number>

Kind: global typedef

vec4 : Array.<number>

Kind: global typedef

Degrees : number

Kind: global typedef

Radians : number

Kind: global typedef

iterativeCallback : function

Callback for iterating typed arrays.

Kind: global typedef

Param Type
element vec2 | vec3 | vec4
index number
array avec2 | avec3 | avec4

easeFn ⇒ number

Ease functions signature.

Kind: global typedef

Param Type Description
t number Interpolant value

easeStepFn ⇒ number

Ease step functions signature.

Kind: global typedef

Param Type Default Description
t number Interpolant value
[step] number 1 Number of steps

License

MIT. See license file.

About

Array-based vector, quaternion and matrix math with utils for PEX.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy