MathUtils

MathUtils
THREE: THREE.MathUtils

Static math utilities: clamping, angle conversion, power-of-2 checks, and RuneTek-specific helpers like tileDistance and HSL16 packing.

Differs from THREE.js

Not a class - a plain object. Includes RuneTek-specific helpers: tileDistance, packHsl16, unpackHsl16, fastAtan2. No generateUUID or lerp.

Properties

NameTypeDescription
EPSILON

number

Small float threshold for comparisons.

TAU

number

2 * Math.PI.

DEG2RAD

number

Degrees-to-radians conversion factor.

RAD2DEG

number

Radians-to-degrees conversion factor.

Methods

MethodDescription
clamp(x: number, min: number, max: number): number

Clamps x to [min, max].

toRadians(degrees: number): number

Converts degrees to radians.

toDegrees(radians: number): number

Converts radians to degrees.

isPowerOf2(n: number): boolean

Returns true if n is a power of two.

tileDistance(a: Vector3, b: Vector3): number

Returns the RuneTek tile distance between two points (Chebyshev distance on XZ).

packHsl16(h: number, s: number, l: number): number

Packs HSL values into a 16-bit integer (6H/3S/7L).

unpackHsl16(value: number): { h: number, s: number, l: number }

Unpacks a 16-bit HSL integer to h/s/l components.