Skip to content

MathUtils

MathUtils

THREE equivalent: 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.

Name Type Description
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.
Method Description
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.