= Math = [[TracNav(TracNav/TOC_Development)]] Math defines several useful functions for mathematical purpose. The following list gives a short overview: * '''sgn('''''value''''')''': Returns the sign of the given value. * Example: sgn(10) = 1, sgn(-3) = -1 * '''min('''''value1''''', '''''value2''''')''': Returns the smaller of two values. * Example: min(3, 10) = 3, min(2, -2) = -2 * This is useful, if you don't want a value to be greater than a threshold. Use min(value, threshold). * '''max('''''value1''''', '''''value2''''')''': Returns the greater of two values. * Example: max(3, 10) = 10, max(2, -2) = 2 * This is useful, if you don't want a value to be smaller than a threshold. Use max(value, threshold). * '''clamp('''''value''''', '''''min''''', '''''max''''')''': Keeps a value between a lower and an upper limit. * Example: clamp(5, 0, 10) = 5, clamp(100, 0, 10) = 10, clamp(-1, 0, 10) = 0 * This is like a combination of max and min, used for thresholds * '''square('''''value''''')''': Returns the square value (x^2^). * Example: square(3) = 9 * '''cube('''''value''''')''': Returns the cube value (x^3^). * Example: cube(3) = 27 * '''floor('''''value''''')''': Rounds the value down. * Example: floor(0.2) = 0, floor(0.7) = 0 * '''ceil('''''value''''')''': Rounds the value up. * Example: floor(0.2) = 1, floor(0.7) = 1 * '''round('''''value''''')''': Rounds the value. * Example: floor(0.2) = 0, floor(0.7) = 1 * '''mod('''''value''''', '''''max''''')''': The modulo operation, enhanced to work properly with negative values. * Example: mod(8, 10) = 8, mod(14, 10) = 4, mod(-8, 10) = 2, mod(-14, 10) = 6 * '''rnd()''': Returns a random number between 0 and almost 1: 0 <= rnd < 1. * '''rnd('''''max''''')''': Returns a random number between 0 and almost max: 0 <= rnd < max. * '''rnd('''''min''''', '''''max''''')''': Returns a random number between min and almost max: min <= rnd < max. * '''interpolate('''''time''''', '''''start''''', '''''end''''')''': Interpolates between two values for a time between 0 and 1. * Example: [[Image(interpolation.png)]] * '''interpolateSmooth('''''time''''', '''''start''''', '''''end''''')''': Interpolates smoothly between two values for a time between 0 and 1. The function starts slowly, increases faster and stops slowly again. * Example: [[Image(interpolation_smooth.png)]]