Murl Engine Lua Addon API  Version 1.0 beta
Murl.Math

Namespace containing mathematic related interfaces.


Table members

Classes


Murl.Math.BigInteger
Murl.Math.Box
Murl.Math.Cone
Murl.Math.Cylinder
Murl.Math.Easing
Murl.Math.Frustum
Murl.Math.Limits
Murl.Math.Matrix
Murl.Math.MinMax
Murl.Math.Plane
Murl.Math.Quaternion
Murl.Math.Ray
Murl.Math.Rectangle
Murl.Math.Sphere
Murl.Math.StaticMatrix
Murl.Math.StaticVector
Murl.Math.Vector

Members


Murl.Math.E

Definition of e.

Returns
Number

Murl.Math.PI

Definition of pi.

Returns
Number

Murl.Math.TWO_PI

Definition of two pi.

Returns
Number

Murl.Math.HALF_PI

Definition of halve pi.

Returns
Number

Murl.Math.INV_PI

Definition of inverse pi.

Returns
Number

Murl.Math.INV_TWO_PI

Definition of inverse 2*pi.

Returns
Number

Murl.Math.INV_HALF_PI

Definition of inverse pi/2.

Returns
Number

Murl.Math.DEG_TO_RAD

Definition of degrees to radians factor.

Returns
Number

Murl.Math.RAD_TO_DEG

Definition of radians to degrees factor.

Returns
Number

Murl.Math.MM_TO_CM

Definition of millimeters to centimeters factor.

Returns
Number

Murl.Math.CM_TO_MM

Definition of centimeters to millimeters factor.

Returns
Number

Murl.Math.MM_TO_INCHES

Definition of millimeters to inches factor.

Returns
Number

Murl.Math.CM_TO_INCHES

Definition of centimeters to inches factor.

Returns
Number

Murl.Math.INCHES_TO_MM

Definition of inches to millimeters factor.

Returns
Number

Murl.Math.INCHES_TO_CM

Definition of inches to centimeters factor.

Returns
Number


Functions


Murl.Math.Lerp(startValue, endValue, t)

The linear interpolation template function for Double.

Number Lerp(Number startValue, Number endValue, Number t)

Parameters
startValueThe start value to interpolate.
endValueThe end value to interpolate.
tThe parameter to interpolate in range [0 .. 1].
Returns
Number The interpolation between the inputs startValue and endValue for a parameter t in the closed unit interval [0 .. 1].

Murl.Math.CubicBezierAt(x0, x1, x2, x3, y0, y1, y2, y3, x)

Evaluate a cubic bezier curve at a given X value. This function returns the interpolated Y value of a cubic bezier curve defined via four (X,Y) control point pairs and a given target X value. If the target X value is outside the range [x0..x3], it is clamped to that range.

Number CubicBezierAt(Number x0, Number x1, Number x2, Number x3, Number y0, Number y1, Number y2, Number y3, Number x)

Parameters
x0The X value of the starting point (first control point)
x1The X value of the second control point
x2The X value of the third control point
x3The X value of the end point (fourth control point)
y0The Y value of the starting point (first control point)
y1The Y value of the second control point
y2The Y value of the third control point
y3The Y value of the end point (fourth control point)
xThe target X value
Returns
Number The interpolated Y value

Murl.Math.Interpolation(interpolation, x)

The interpolation template function calculates the IEnums::Interpolation curve (easing function).

Number Interpolation(Murl.IEnums.Interpolation interpolation, Number x)

Parameters
interpolationThe interpolation.
xThe value to interpolate in range [0 .. 1].
Returns
Number The easing function result.

Murl.Math.Abs(value)

Get the absolute value.

Number Abs(Number value)

Parameters
valueThe input value.
Returns
Number The absolute value.

Murl.Math.Sgn(value)

Get the sign of a value.

Number Sgn(Number value)

Parameters
valueThe input value.
Returns
Number 1 if the value is positive, -1 if the value is negative or zero if the value is zero.

Murl.Math.Min(x, y)

Get the minimum of two values. If both are equivalent, x is returned.

Number Min(Number x, Number y)

Parameters
xThe 1st value.
yThe 2nd value.
Returns
Number The lesser value of x and y.

Murl.Math.Min(x, y, z)

Get the minimum of three values. If all are equivalent, x is returned.

Number Min(Number x, Number y, Number z)

Parameters
xThe 1st value.
yThe 2nd value.
zThe 3rd value.
Returns
Number The lowest value of x, y and z.

Murl.Math.Min(x, y, z, w)

Get the minimum of four values. If all are equivalent, x is returned.

Number Min(Number x, Number y, Number z, Number w)

Parameters
xThe 1st value.
yThe 2nd value.
zThe 3rd value.
wThe 4th value.
Returns
Number The lowest value of x, y, z and w.

Murl.Math.Max(x, y)

Get the maximum of two values. If both are equivalent, x is returned.

Number Max(Number x, Number y)

Parameters
xThe 1st value.
yThe 2nd value.
Returns
Number The greater value of x and y.

Murl.Math.Max(x, y, z)

Get the maximum of three values. If all are equivalent, x is returned.

Number Max(Number x, Number y, Number z)

Parameters
xThe 1st value.
yThe 2nd value.
zThe 3rd value.
Returns
Number The highest value of x, y and z.

Murl.Math.Max(x, y, z, w)

Get the maximum of four values. If all are equivalent, x is returned.

Number Max(Number x, Number y, Number z, Number w)

Parameters
xThe 1st value.
yThe 2nd value.
zThe 3rd value.
wThe 4th value.
Returns
Number The highest value of x, y, z and w.

Murl.Math.Clamp(val, min, max)

Clamp a value.

Number Clamp(Number val, Number min, Number max)

Parameters
valThe value to clamp.
minThe minimum value.
maxThe maximum value.
Returns
Number The value clamped in range [min .. max].

Murl.Math.IsNaN(value)

Check if a value is not a number (NaN). The NaN values are used to identify undefined or non-representable values for floating-point elements, such as the result of 0/0.

Boolean IsNaN(Number value)

Parameters
valueThe value to check.
Returns
Boolean true if the value is not a number (NaN).

Murl.Math.IsInfinite(value)

Check if a value is infinite (either positive infinity or negative infinity).

Boolean IsInfinite(Number value)

Parameters
valueThe value to check.
Returns
Boolean true if the value is an infinity value.

Murl.Math.IsFinite(value)

Check if a value is finite. A finite value is any floating-point value that is neither infinite nor NaN.

Boolean IsFinite(Number value)

Parameters
valueThe value to check.
Returns
Boolean true if the value is finite.

Murl.Math.Exp(value)

Get the the e number raised to the power of a value.

Number Exp(Number value)

Parameters
valueThe input value.
Returns
Number The the e number raised to the power of the value.

Murl.Math.Log(value)

Get the natural logarithm of a value.

Number Log(Number value)

Parameters
valueThe input value.
Returns
Number The natural logarithm of the value.

Murl.Math.Log2(value)

Get the base 2 logarithm of a value.

Number Log2(Number value)

Parameters
valueThe input value.
Returns
Number The base 2 logarithm of the value.

Murl.Math.Log10(value)

Get the base 10 logarithm of a value.

Number Log10(Number value)

Parameters
valueThe input value.
Returns
Number The base 10 logarithm of the value.

Murl.Math.Sqrt(value)

Get the square root of a value.

Number Sqrt(Number value)

Parameters
valueThe input value.
Returns
Number The square root of the value.

Murl.Math.Pow(base, exponent)

Get a base raised to the power of an exponent.

Number Pow(Number base, Number exponent)

Parameters
baseThe base input value.
exponentThe exponent input value.
Returns
Number The base raised to the power of the exponent.

Murl.Math.Fmod(numerator, denominator)

Get the remainder of a numerator divided by a denominator.

Number Fmod(Number numerator, Number denominator)

Parameters
numeratorThe numerator input value.
denominatorThe denominator input value.
Returns
Number The remainder of the numerator divided by the denominator.

Murl.Math.ModF(value, intPart)

Get the integer part and the fractional part of a value.

Number, Number ModF(Number value, Number intPart)

Parameters
valueThe input value.
intPartThe integer part return value.
Returns
Number The fractional part of the value.
Number intPart The integer part return value.

Murl.Math.Remainder(numerator, denominator)

Get the IEEE remainder of a numerator divided by a denominator.

Number Remainder(Number numerator, Number denominator)

Parameters
numeratorThe numerator input value.
denominatorThe denominator input value.
Returns
Number The IEEE remainder of the numerator divided by the denominator.

Murl.Math.Sin(radAngle)

Get the sine of an angle value.

Number Sin(Number radAngle)

Parameters
radAngleThe angle value in radiants.
Returns
Number The sine of the angle value.

Murl.Math.Cos(radAngle)

Get the cosine of an angle value.

Number Cos(Number radAngle)

Parameters
radAngleThe angle value in radiants.
Returns
Number The cosine of the angle value.

Murl.Math.Tan(radAngle)

Get the tangent of an angle value.

Number Tan(Number radAngle)

Parameters
radAngleThe angle value in radiants.
Returns
Number The tangent of the angle value.

Murl.Math.ArcSin(value)

Get the arc sine of a value.

Number ArcSin(Number value)

Parameters
valueThe input value.
Returns
Number The arc sine of the value in radiants.

Murl.Math.ArcCos(value)

Get the arc cosine of a value.

Number ArcCos(Number value)

Parameters
valueThe input value.
Returns
Number The arc cosine of the value in radiants.

Murl.Math.ArcTan(value)

Get the arc tangent of a value.

Number ArcTan(Number value)

Parameters
valueThe input value.
Returns
Number The arc tangent of the value in radiants.

Murl.Math.ArcTan2(y, x)

Get the arc tangent of y divided by x. The function uses the sign of both arguments to determine the quadrant.

Number ArcTan2(Number y, Number x)

Parameters
yThe y input value.
xThe x input value.
Returns
Number The arc tangent of y divided by x in radiants.

Murl.Math.SinHyp(value)

Get the hyperbolic sine of an value.

Number SinHyp(Number value)

Parameters
valueThe input value.
Returns
Number The hyperbolic sine of the value.

Murl.Math.CosHyp(value)

Get the hyperbolic cosine of an value.

Number CosHyp(Number value)

Parameters
valueThe input value.
Returns
Number The hyperbolic cosine of the value.

Murl.Math.TanHyp(value)

Get the hyperbolic tangent of an value.

Number TanHyp(Number value)

Parameters
valueThe input value.
Returns
Number The hyperbolic tangent of the value.

Murl.Math.ArcSinHyp(value)

Get the hyperbolic arc sine of an value.

Number ArcSinHyp(Number value)

Parameters
valueThe input value.
Returns
Number The hyperbolic arc sine of the value.

Murl.Math.ArcCosHyp(value)

Get the hyperbolic arc cosine of an value.

Number ArcCosHyp(Number value)

Parameters
valueThe input value.
Returns
Number The hyperbolic arc cosine of the value.

Murl.Math.ArcTanHyp(value)

Get the hyperbolic arc tangent of an value.

Number ArcTanHyp(Number value)

Parameters
valueThe input value.
Returns
Number The hyperbolic arc tangent of the value.

Murl.Math.Floor(value)

Round down to an integral value.

Number Floor(Number value)

Parameters
valueThe input value.
Returns
Number The round down integral value.

Murl.Math.Ceil(value)

Round up to an integral value.

Number Ceil(Number value)

Parameters
valueThe input value.
Returns
Number The round up integral value.

Murl.Math.Round(value)

Round to an integral value, regardless of the rounding direction. Rounding half-way cases away from zero.

Number Round(Number value)

Parameters
valueThe input value.
Returns
Number The rounded integral value.

Murl.Math.IsEqual(a, b, epsilon)

Check if two values are equal within an epsilon range.

Boolean IsEqual(Number a, Number b, Number epsilon)

Parameters
aThe 1st value.
bThe 2nd value.
epsilonThe epsilon value.
Returns
Boolean true if Abs(a - b) is within epsilon range.

Murl.Math.DegToRad(degrees)

Convert degrees into radiants.

Number DegToRad(Number degrees)

Parameters
degreesThe degrees to convert.
Returns
Number The radiants.

Murl.Math.RadToDeg(radiants)

Convert radiants into degrees.

Number RadToDeg(Number radiants)

Parameters
radiantsThe radiants to convert.
Returns
Number The degrees.

Murl.Math.MapAngle(angle)

Map an angle into range [-PI .. PI).

Number MapAngle(Number angle)

Parameters
angleThe angle value in radiants.
Returns
Number The mapped angle in range [-PI .. PI).

Murl.Math.AddAngle(angle1, angle2)

Calculate the sum of two angles.

Number AddAngle(Number angle1, Number angle2)

Parameters
angle1The first angle value in radiants.
angle2The second angle value in radiants.
Returns
Number The result of (angle1 + angle2) in range [-PI .. PI).

Murl.Math.SubAngle(angle1, angle2)

Calculate the difference between two angles.

Number SubAngle(Number angle1, Number angle2)

Parameters
angle1The first angle value in radiants.
angle2The second angle value in radiants.
Returns
Number The result of (angle1 - angle2) in range [-PI .. PI).

Murl.Math.FloatToHalfFloat(value)

Convert a given 32bit float value to 16bit ("half float"), represented by a UInt16 integer.

Integer FloatToHalfFloat(Number value)

Parameters
valueThe 32bit float value to convert
Returns
Integer The half float value as an UInt16.

Murl.Math.IntToHalfFloat(value)

Convert a given 8bit unsigned integer value to a 16bit floating point value ("half float"), represented by a UInt16 integer. The input value is divided by 255.

Integer IntToHalfFloat(Integer value)

Parameters
valueThe 8bit unsigned integer value to convert
Returns
Integer The half float value as an UInt16.

Murl.Math.HalfFloatToFloat(value)

Convert a given 16bit half float value stored in a UInt16 to a 32bit float value.

Number HalfFloatToFloat(Integer value)

Parameters
valueThe 16bit float value to convert
Returns
Number The converted 32bit float value

Murl.Math.HalfFloatToInt(value)

Convert a given 16bit half float value stored in a UInt16 to a 8bit unsigned integer value. The output value is multiplied by 255.

Integer HalfFloatToInt(Integer value)

Parameters
valueThe 16bit float value to convert
Returns
Integer The converted 8bit unsigned integer value