Options
All
• Public
• Public/Protected
• All

# Class Scalar

Scalar computation library

• Scalar

## Properties

### Static TwoPi

TwoPi: number = Math.PI * 2

Two pi constants convenient for computation.

## Methods

### Static Clamp

• Clamp(value: number, min?: number, max?: number): number
• Returns the value itself if it's between min and max. Returns min if the value is lower than min. Returns max if the value is greater than max.

#### Parameters

• ##### value: number

the value to clmap

• ##### Default value min: number = 0

the min value to clamp to (default: 0)

• ##### Default value max: number = 1

the max value to clamp to (default: 1)

#### Returns number

the clamped value

### Static DeltaAngle

• DeltaAngle(current: number, target: number): number
• Calculates the shortest difference between two given angles given in degrees.

#### Parameters

• ##### current: number

current angle in degrees

• ##### target: number

target angle in degrees

the delta

### Static Denormalize

• Denormalize(normalized: number, min: number, max: number): number
• Denormalize the value from 0.0 and 1.0 using min and max values

#### Parameters

• ##### normalized: number

value to denormalize

• ##### min: number

max to denormalize between

• ##### max: number

min to denormalize between

#### Returns number

the denormalized value

### Static Hermite

• Hermite(value1: number, tangent1: number, value2: number, tangent2: number, amount: number): number
• Returns a new scalar located for "amount" (float) on the Hermite spline defined by the scalars "value1", "value3", "tangent1", "tangent2".

see

http://mathworld.wolfram.com/HermitePolynomial.html

#### Parameters

• ##### value1: number

spline value

• ##### tangent1: number

spline value

• ##### value2: number

spline value

• ##### tangent2: number

spline value

• ##### amount: number

input value

#### Returns number

hermite result

### Static InverseLerp

• InverseLerp(a: number, b: number, value: number): number
• Calculates the linear parameter t that produces the interpolant value within the range [a, b].

#### Parameters

• ##### a: number

start value

• ##### b: number

target value

• ##### value: number

value between a and b

#### Returns number

the inverseLerp value

### Static Lerp

• Lerp(start: number, end: number, amount: number): number
• Creates a new scalar with values linearly interpolated of "amount" between the start scalar and the end scalar.

#### Parameters

• ##### start: number

start value

• ##### end: number

target value

• ##### amount: number

amount to lerp between

#### Returns number

the lerped value

### Static LerpAngle

• LerpAngle(start: number, end: number, amount: number): number
• Same as Lerp but makes sure the values interpolate correctly when they wrap around 360 degrees. The parameter t is clamped to the range [0, 1]. Variables a and b are assumed to be in degrees.

#### Parameters

• ##### start: number

start value

• ##### end: number

target value

• ##### amount: number

amount to lerp between

#### Returns number

the lerped value

### Static Log2

• Log2(value: number): number
• the log2 of value.

#### Parameters

• ##### value: number

the value to compute log2 of

#### Returns number

the log2 of value.

### Static MoveTowards

• MoveTowards(current: number, target: number, maxDelta: number): number
• Moves a value current towards target.

This is essentially the same as Mathf.Lerp but instead the function will ensure that the speed never exceeds maxDelta. Negative values of maxDelta pushes the value away from target.

#### Parameters

• ##### current: number

current value

• ##### target: number

target value

• ##### maxDelta: number

max distance to move

#### Returns number

resulting value

### Static MoveTowardsAngle

• MoveTowardsAngle(current: number, target: number, maxDelta: number): number
• Same as MoveTowards but makes sure the values interpolate correctly when they wrap around 360 degrees.

Variables current and target are assumed to be in degrees. For optimization reasons, negative values of maxDelta are not supported and may cause oscillation. To push current away from a target angle, add 180 to that angle instead.

#### Parameters

• ##### current: number

current value

• ##### target: number

target value

• ##### maxDelta: number

max distance to move

#### Returns number

resulting angle

### Static Normalize

• Normalize(value: number, min: number, max: number): number
• Normalize the value between 0.0 and 1.0 using min and max values

#### Parameters

• ##### value: number

value to normalize

• ##### min: number

max to normalize between

• ##### max: number

min to normalize between

#### Returns number

the normalized value

• Returns the angle converted to equivalent value between -Math.PI and Math.PI radians.

#### Parameters

• ##### angle: number

The angle to normalize in radian.

#### Returns number

The converted angle.

### Static PercentToRange

• PercentToRange(percent: number, min: number, max: number): number
• This function returns number that corresponds to the percentage in a given range.

PercentToRange(0.34,0,100) will return 34.

#### Parameters

• ##### percent: number

to convert to number

min range

max range

the number

### Static PingPong

• PingPong(tx: number, length: number): number
• PingPongs the value t, so that it is never larger than length and never smaller than 0.

value

length

#### Returns number

The returned value will move back and forth between 0 and length

### Static RandomRange

• RandomRange(min: number, max: number): number
• Returns a random float number between and min and max values

#### Parameters

• ##### min: number

min value of random

• ##### max: number

max value of random

random value

### Static RangeToPercent

• RangeToPercent(num: number, min: number, max: number): number
• This function returns percentage of a number in a given range.

RangeToPercent(40,20,60) will return 0.5 (50%) RangeToPercent(34,0,100) will return 0.34 (34%)

#### Parameters

• ##### num: number

to convert to percentage

min range

max range

#### Returns number

the percentage

### Static Repeat

• Repeat(value: number, length: number): number
• Loops the value, so that it is never larger than length and never smaller than 0.

This is similar to the modulo operator but it works with floating point numbers. For example, using 3.0 for t and 2.5 for length, the result would be 0.5. With t = 5 and length = 2.5, the result would be 0.0. Note, however, that the behaviour is not defined for negative numbers as it is for the modulo operator

the value

the length

#### Returns number

the looped value

### Static Sign

• Sign(value: number): number
• Returns -1 if value is negative and +1 is value is positive.

the value

#### Returns number

the value itself if it's equal to zero.

### Static SmoothStep

• SmoothStep(from: number, to: number, tx: number): number
• Interpolates between min and max with smoothing at the limits.

This function interpolates between min and max in a similar way to Lerp. However, the interpolation will gradually speed up from the start and slow down toward the end. This is useful for creating natural-looking animation, fading and other transitions.

from

to

value

#### Returns number

the smooth stepped value

### Static ToHex

• ToHex(i: number): string
• Returns a string : the upper case translation of the number i to hexadecimal.

number

#### Returns string

the upper case translation of the number i to hexadecimal.

### Static WithinEpsilon

• WithinEpsilon(a: number, b: number, epsilon?: number): boolean
• Boolean : true if the absolute difference between a and b is lower than epsilon (default = 1.401298E-45)

#### Parameters

number

number

• ##### Default value epsilon: number = 1.401298e-45

(default = 1.401298E-45)

#### Returns boolean

true if the absolute difference between a and b is lower than epsilon (default = 1.401298E-45)