Skip to content

UWAL / MathUtils

Description

A set of mathematical objects and functions for general-purpose usage. Type Aliases are namespaces and utils re-exported from wgpu-matrix, so their original documentation is completely relevant for this module.

Type Aliases

EuclideanModulo

ts
type EuclideanModulo = utils.euclideanModulo;

Type Parameters

Type Parameter

DegreesToRadians

ts
type DegreesToRadians = utils.degToRad;

Type Parameters

Type Parameter

RadiansToDegrees

ts
type RadiansToDegrees = utils.radToDeg;

Type Parameters

Type Parameter

InverseLerp

ts
type InverseLerp = utils.inverseLerp;

Type Parameters

Type Parameter

SetEpsilon

ts
type SetEpsilon = utils.setEpsilon;

Type Parameters

Type Parameter

EPSILON

ts
type EPSILON = utils.EPSILON;

Type Parameters

Type Parameter

Lerp

ts
type Lerp = utils.lerp;

Type Parameters

Type Parameter

Quat

ts
type Quat = quat;

Type Parameters

Type Parameter

Mat3

ts
type Mat3 = mat3;

Type Parameters

Type Parameter

Mat4

ts
type Mat4 = mat4;

Type Parameters

Type Parameter

Vec2

ts
type Vec2 = vec2;

Type Parameters

Type Parameter

Vec3

ts
type Vec3 = vec3;

Type Parameters

Type Parameter

Vec4

ts
type Vec4 = vec4;

Type Parameters

Type Parameter

Variables

HPI

ts
const HPI: number;

Half PI, defined as Math.PI / 2.


TAU

ts
const TAU: number;

Double PI, defined as Math.PI * 2.

Functions

Clamp()

ts
function Clamp(
   value, 
   min?, 
   max?): number;

Constrain a number between min and max values (inclusive).

Parameters

ParameterTypeDefault valueDescription
valuenumberundefinedNumber to clamp
min?number0Lower limit
max?number1Upper limit

Returns

number


Random()

ts
function Random(min?, max?): number;

Get a pseudorandom float between min (inclusive) and max (exclusive).

Parameters

ParameterTypeDefault valueDescription
min?number0Lower limit
max?number1Upper limit

Returns

number


RandomInt()

ts
function RandomInt(min, max): number;

Get a pseudorandom integer between min (inclusive) and max (exclusive).

Parameters

ParameterTypeDescription
minnumberLower limit
maxnumberUpper limit

Returns

number


SmoothStep()

ts
function SmoothStep(
   value, 
   min?, 
   max?): number;

Perform Hermite interpolation between two values. Adapted from GLSL's smoothstep function.

Parameters

ParameterTypeDefault valueDescription
valuenumberundefinedValue to interpolate
min?number0Lower limit
max?number1Upper limit

Returns

number


SmootherStep()

ts
function SmootherStep(
   value, 
   min?, 
   max?): number;

A variation on the SmoothStep function that has zero 1st and 2nd order derivatives at x = 0 and x = 1. Adapted from three.js' smootherstep function.

Parameters

ParameterTypeDefault valueDescription
valuenumberundefinedValue to interpolate
min?number0Lower limit
max?number1Upper limit

Returns

number


CopyMat4Rotation()

ts
function CopyMat4Rotation(src, dst?): Float32Array<ArrayBufferLike>;

Copy matrix rotation component into the given 4x4 matrix. Adapted from three.js' extractRotation method.

Parameters

ParameterTypeDescription
srcFloat32Array<ArrayBufferLike>Matrix to extract rotation
dst?Float32Array<ArrayBufferLike>Destination matrix

Returns

Float32Array<ArrayBufferLike>


GetMat4Rotation()

ts
function GetMat4Rotation(
   src, 
   dst?, 
order?): Float32Array<ArrayBufferLike>;

Get matrix rotation as Euler angles assuming the upper 3x3 matrix is a pure rotation matrix. Adapted from ogl's fromRotationMatrix function.

Parameters

ParameterTypeDefault valueDescription
srcFloat32Array<ArrayBufferLike>undefinedMatrix to extract rotation
dst?Float32Array<ArrayBufferLike>...Destination vector
order?string"XYZ"Rotation order

Returns

Float32Array<ArrayBufferLike>

Throws

ERROR.INVALID_ROTATION_ORDER if order argument is not valid.


GetMat4Scale()

ts
function GetMat4Scale(src): number;

Get maximum scale on a matrix axis. Adapted from ogl's getMaxScaleOnAxis function.

Parameters

ParameterTypeDescription
srcFloat32Array<ArrayBufferLike>Matrix to extract scale

Returns

number

Released under the MIT License.