Static Methods
.ceilPowerOfTwo( value : number ) : number
Returns the smallest power of two that is greater than or equal to the given number.
value |
The value to find a POT for. |
- Returns: The smallest power of two that is greater than or equal to the given number.
.clamp( value : number, min : number, max : number ) : number
Clamps the given value between min and max.
value |
The value to clamp. |
min |
The min value. |
max |
The max value. |
- Returns: The clamped value.
.damp( x : number, y : number, lambda : number, dt : number ) : number
Smoothly interpolate a number from x to y in a spring-like manner using a delta
time to maintain frame rate independent movement. For details, see
Frame rate independent damping using lerp.
x |
The current point. |
y |
The target point. |
lambda |
A higher lambda value will make the movement more sudden, and a lower value will make the movement more gradual. |
dt |
Delta time in seconds. |
- Returns: The interpolated value.
.degToRad( degrees : number ) : number
Converts degrees to radians.
degrees |
A value in degrees. |
- Returns: The converted value in radians.
.denormalize( value : number, array : TypedArray ) : number
Denormalizes the given value according to the given typed array.
value |
The value to denormalize. |
array |
The typed array that defines the data type of the value. |
- Returns: The denormalize (float) value in the range
[0,1].
.euclideanModulo( n : number, m : number ) : number
Computes the Euclidean modulo of the given parameters that
is ( ( n % m ) + m ) % m.
n |
The first parameter. |
m |
The second parameter. |
- Returns: The Euclidean modulo.
.floorPowerOfTwo( value : number ) : number
Returns the largest power of two that is less than or equal to the given number.
value |
The value to find a POT for. |
- Returns: The largest power of two that is less than or equal to the given number.
.generateUUID() : string
Generate a UUID (universally unique identifier).
- Returns: The UUID.
.inverseLerp( x : number, y : number, value : number ) : number
Returns the percentage in the closed interval [0, 1] of the given value
between the start and end point.
x |
The start point |
y |
The end point. |
value |
A value between start and end. |
- Returns: The interpolation factor.
.isPowerOfTwo( value : number ) : boolean
Returns true if the given number is a power of two.
value |
The value to check. |
- Returns: Whether the given number is a power of two or not.
.lerp( x : number, y : number, t : number ) : number
Returns a value linearly interpolated from two known points based on the given interval -
t = 0 will return x and t = 1 will return y.
x |
The start point |
y |
The end point. |
t |
The interpolation factor in the closed interval |
- Returns: The interpolated value.
.mapLinear( x : number, a1 : number, a2 : number, b1 : number, b2 : number ) : number
Performs a linear mapping from range <a1, a2> to range <b1, b2>
for the given value.
x |
The value to be mapped. |
a1 |
Minimum value for range A. |
a2 |
Maximum value for range A. |
b1 |
Minimum value for range B. |
b2 |
Maximum value for range B. |
- Returns: The mapped value.
.normalize( value : number, array : TypedArray ) : number
Normalizes the given value according to the given typed array.
value |
The float value in the range |
array |
The typed array that defines the data type of the value. |
- Returns: The normalize value.
.pingpong( x : number, length : number ) : number
Returns a value that alternates between 0 and the given length parameter.
x |
The value to pingpong. |
length |
The positive value the function will pingpong to. |
- Returns: The alternated value.
.radToDeg( radians : number ) : number
Converts radians to degrees.
radians |
A value in radians. |
- Returns: The converted value in degrees.
.randFloat( low : number, high : number ) : number
Returns a random float from <low, high> interval.
low |
The lower value boundary. |
high |
The upper value boundary |
- Returns: A random float.
.randFloatSpread( range : number ) : number
Returns a random integer from <-range/2, range/2> interval.
range |
Defines the value range. |
- Returns: A random float.
.randInt( low : number, high : number ) : number
Returns a random integer from <low, high> interval.
low |
The lower value boundary. |
high |
The upper value boundary |
- Returns: A random integer.
.seededRandom( s : number ) : number
Returns a deterministic pseudo-random float in the interval [0, 1].
s |
The integer seed. |
- Returns: A random float.
.setQuaternionFromProperEuler( q : Quaternion, a : number, b : number, c : number, order : 'XYX' | 'XZX' | 'YXY' | 'YZY' | 'ZXZ' | 'ZYZ' )
Sets the given quaternion from the Intrinsic Proper Euler Angles defined by the given angles and order.
Rotations are applied to the axes in the order specified by order:
rotation by angle a is applied first, then by angle b, then by angle c.
q |
The quaternion to set. |
a |
The rotation applied to the first axis, in radians. |
b |
The rotation applied to the second axis, in radians. |
c |
The rotation applied to the third axis, in radians. |
order |
A string specifying the axes order. |
.smootherstep( x : number, min : number, max : number ) : number
A variation on smoothstep that has zero 1st and 2nd order derivatives at x=0 and x=1.
x |
The value to evaluate based on its position between min and max. |
min |
The min value. Any x value below min will be |
max |
The max value. Any x value above max will be |
- Returns: The alternated value.
.smoothstep( x : number, min : number, max : number ) : number
Returns a value in the range [0,1] that represents the percentage that x has
moved between min and max, but smoothed or slowed down the closer x is to
the min and max.
See Smoothstep for more details.
x |
The value to evaluate based on its position between min and max. |
min |
The min value. Any x value below min will be |
max |
The max value. Any x value above max will be |
- Returns: The alternated value.