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
type EuclideanModulo = utils.euclideanModulo;Type Parameters
| Type Parameter |
|---|
DegreesToRadians
type DegreesToRadians = utils.degToRad;Type Parameters
| Type Parameter |
|---|
RadiansToDegrees
type RadiansToDegrees = utils.radToDeg;Type Parameters
| Type Parameter |
|---|
InverseLerp
type InverseLerp = utils.inverseLerp;Type Parameters
| Type Parameter |
|---|
SetEpsilon
type SetEpsilon = utils.setEpsilon;Type Parameters
| Type Parameter |
|---|
EPSILON
type EPSILON = utils.EPSILON;Type Parameters
| Type Parameter |
|---|
Lerp
type Lerp = utils.lerp;Type Parameters
| Type Parameter |
|---|
Quat
type Quat = quat;Type Parameters
| Type Parameter |
|---|
Mat3
type Mat3 = mat3;Type Parameters
| Type Parameter |
|---|
Mat4
type Mat4 = mat4;Type Parameters
| Type Parameter |
|---|
Vec2
type Vec2 = vec2;Type Parameters
| Type Parameter |
|---|
Vec3
type Vec3 = vec3;Type Parameters
| Type Parameter |
|---|
Vec4
type Vec4 = vec4;Type Parameters
| Type Parameter |
|---|
Variables
HPI
const HPI: number;Half PI, defined as Math.PI / 2.
TAU
const TAU: number;Double PI, defined as Math.PI * 2.
Functions
Clamp()
function Clamp(
value,
min?,
max?): number;Constrain a number between min and max values (inclusive).
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
value | number | undefined | Number to clamp |
min? | number | 0 | Lower limit |
max? | number | 1 | Upper limit |
Returns
number
Random()
function Random(min?, max?): number;Get a pseudorandom float between min (inclusive) and max (exclusive).
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
min? | number | 0 | Lower limit |
max? | number | 1 | Upper limit |
Returns
number
RandomInt()
function RandomInt(min, max): number;Get a pseudorandom integer between min (inclusive) and max (exclusive).
Parameters
| Parameter | Type | Description |
|---|---|---|
min | number | Lower limit |
max | number | Upper limit |
Returns
number
SmoothStep()
function SmoothStep(
value,
min?,
max?): number;Perform Hermite interpolation between two values. Adapted from GLSL's smoothstep function.
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
value | number | undefined | Value to interpolate |
min? | number | 0 | Lower limit |
max? | number | 1 | Upper limit |
Returns
number
SmootherStep()
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
| Parameter | Type | Default value | Description |
|---|---|---|---|
value | number | undefined | Value to interpolate |
min? | number | 0 | Lower limit |
max? | number | 1 | Upper limit |
Returns
number
CopyMat4Rotation()
function CopyMat4Rotation(src, dst?): Float32Array<ArrayBufferLike>;Copy matrix rotation component into the given 4x4 matrix. Adapted from three.js' extractRotation method.
Parameters
| Parameter | Type | Description |
|---|---|---|
src | Float32Array<ArrayBufferLike> | Matrix to extract rotation |
dst? | Float32Array<ArrayBufferLike> | Destination matrix |
Returns
Float32Array<ArrayBufferLike>
GetMat4Rotation()
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
| Parameter | Type | Default value | Description |
|---|---|---|---|
src | Float32Array<ArrayBufferLike> | undefined | Matrix 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()
function GetMat4Scale(src): number;Get maximum scale on a matrix axis. Adapted from ogl's getMaxScaleOnAxis function.
Parameters
| Parameter | Type | Description |
|---|---|---|
src | Float32Array<ArrayBufferLike> | Matrix to extract scale |
Returns
number