Class: MathUtils
Defined in: src/sdk/math/MathUtils.ts:13
A utitlity class for basic math.
Constructors
Constructor
new MathUtils():
MathUtils
Returns
MathUtils
Properties
HALF_PI
readonlystaticHALF_PI:number
Defined in: src/sdk/math/MathUtils.ts:18
Half the value of pi.
SQRT1_3
readonlystaticSQRT1_3:number
Defined in: src/sdk/math/MathUtils.ts:24
Square root of 1/3.
SQRT3
readonlystaticSQRT3:number
Defined in: src/sdk/math/MathUtils.ts:21
Square root of 3.
TWO_PI
readonlystaticTWO_PI:number
Defined in: src/sdk/math/MathUtils.ts:15
Twice the value of pi.
Methods
ceil()
staticceil(value,precision):number
Defined in: src/sdk/math/MathUtils.ts:54
Ceils a number.
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
value | number | undefined | The number to ceil. |
precision | number | 1 | The precision with which to ceil. Defaults to 1. |
Returns
number
The ceiled number.
clamp()
staticclamp(value,min,max):number
Defined in: src/sdk/math/MathUtils.ts:34
Clamps a numerical value to the min/max range.
Parameters
| Parameter | Type | Description |
|---|---|---|
value | number | The value to be clamped. |
min | number | The minimum. |
max | number | The maximum. |
Returns
number
The clamped numerical value..
diffAngle()
staticdiffAngle(start,end,directional):number
Defined in: src/sdk/math/MathUtils.ts:78
Calculates the angular difference between two angles in the range [0, 2 * pi). The calculation supports both
directional and non-directional differences. The directional difference is the angle swept from the start angle
to the end angle proceeding in the direction of increasing angle. The non-directional difference is the smaller
of the two angles swept from the start angle to the end angle proceeding in either direction.
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
start | number | undefined | The starting angle, in radians. |
end | number | undefined | The ending angle, in radians. |
directional | boolean | true | Whether to calculate the directional difference. Defaults to true. |
Returns
number
The angular difference between the two angles, in radians, in the range [0, 2 * pi).
diffAngleDeg()
staticdiffAngleDeg(start,end,directional):number
Defined in: src/sdk/math/MathUtils.ts:93
Calculates the angular difference between two angles in the range [0, 360). The calculation supports both
directional and non-directional differences. The directional difference is the angle swept from the start angle
to the end angle proceeding in the direction of increasing angle. The non-directional difference is the smaller
of the two angles swept from the start angle to the end angle proceeding in either direction.
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
start | number | undefined | The starting angle, in degrees. |
end | number | undefined | The ending angle, in degrees. |
directional | boolean | true | Whether to calculate the directional difference. Defaults to true. |
Returns
number
The angular difference between the two angles, in degrees, in the range [0, 360).
driveExp()
staticdriveExp(initialValue,targetValue,timeConstant,dt):number
Defined in: src/sdk/math/MathUtils.ts:190
Drives an initial value toward a target value via an exponential decay curve over a period of time.
Parameters
| Parameter | Type | Description |
|---|---|---|
initialValue | number | The initial value. |
targetValue | number | The target value. |
timeConstant | number | The exponential decay time constant, in the same units as dt. Must be a positive number. |
dt | number | The amount of time over which to drive the value. |
Returns
number
The final driven value after the specified amount of time has elapsed.
driveLinear()
staticdriveLinear(initialValue,targetValue,rate,dt,clampStart,clampEnd):number
Defined in: src/sdk/math/MathUtils.ts:166
Drives an initial value toward a target value linearly over a period of time.
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
initialValue | number | undefined | The initial value. |
targetValue | number | undefined | The target value. |
rate | number | undefined | The rate at which to drive the value, in the same units as dt. |
dt | number | undefined | The amount of time over which to drive the value. |
clampStart | boolean | true | Whether to clamp the driven value such that it cannot be driven in the opposite direction from the target value. Defaults to true. |
clampEnd | boolean | true | Whether to clamp the driven value such that it cannot be driven past the target value. Defaults to true. |
Returns
number
The final driven value after the specified amount of time has elapsed.
floor()
staticfloor(value,precision):number
Defined in: src/sdk/math/MathUtils.ts:64
Floors a number.
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
value | number | undefined | The number to floor. |
precision | number | 1 | The precision with which to floor. Defaults to 1. |
Returns
number
The floored number.
hardSign()
statichardSign(n):number
Defined in: src/sdk/math/MathUtils.ts:150
Gets the sign of a number, including 0.
Parameters
| Parameter | Type | Description |
|---|---|---|
n | number | The number to get the sign of. |
Returns
number
1.0 if the number is positive, +0 or Infinity; -1.0 if the number is negative, -0 or -Infinity; NaN if the number is NaN
lerp()
staticlerp(x,x0,x1,y0,y1,clampStart,clampEnd):number
Defined in: src/sdk/math/MathUtils.ts:109
Linearly interpolates a keyed value along one dimension.
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
x | number | undefined | The key of the value to interpolate. |
x0 | number | undefined | The key of the first known value. |
x1 | number | undefined | The key of the second known value. |
y0 | number | undefined | The first known value. |
y1 | number | undefined | The second known value. |
clampStart | boolean | false | Whether to clamp the interpolated value to the first known value. Defaults to false. |
clampEnd | boolean | false | Whether to clamp the interpolated value to the second known value. Defaults to false. |
Returns
number
The interpolated value corresponding to the specified key.
lerpVector()
staticlerpVector(out,x,x0,x1,y0,y1,clampStart,clampEnd):Float64Array
Defined in: src/sdk/math/MathUtils.ts:133
Linearly interpolates a keyed vector along one dimension. If the known vectors and the result vector have unequal lengths, then only the components shared by all vectors are interpolated in the result.
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
out | Float64Array | undefined | The object to which to write the result. |
x | number | undefined | The key of the vector to interpolate. |
x0 | number | undefined | The key of the first known vector. |
x1 | number | undefined | The key of the second known vector. |
y0 | ArrayLike<number> | undefined | The first known vector. |
y1 | ArrayLike<number> | undefined | The second known vector. |
clampStart | boolean | false | Whether to clamp the components of the interpolated vector to those of the first known vector. Defaults to false. |
clampEnd | boolean | false | Whether to clamp the components of the interpolated vector to those of the second known vector. Defaults to false. |
Returns
Float64Array
The interpolated vector corresponding to the specified key.
round()
staticround(value,precision):number
Defined in: src/sdk/math/MathUtils.ts:44
Rounds a number.
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
value | number | undefined | The number to round. |
precision | number | 1 | The precision with which to round. Defaults to 1. |
Returns
number
The rounded number.