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
readonly
static
HALF_PI:number
Defined in: src/sdk/math/MathUtils.ts:18
Half the value of pi.
SQRT1_3
readonly
static
SQRT1_3:number
Defined in: src/sdk/math/MathUtils.ts:24
Square root of 1/3.
SQRT3
readonly
static
SQRT3:number
Defined in: src/sdk/math/MathUtils.ts:21
Square root of 3.
TWO_PI
readonly
static
TWO_PI:number
Defined in: src/sdk/math/MathUtils.ts:15
Twice the value of pi.
Methods
ceil()
static
ceil(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()
static
clamp(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()
static
diffAngle(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()
static
diffAngleDeg(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()
static
driveExp(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()
static
driveLinear(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()
static
floor(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()
static
hardSign(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()
static
lerp(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()
static
lerpVector(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()
static
round(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.