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
| 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. |
Methods
| 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. |