ExpressionMath (C++)¶
- group FnExpressionMath
 - 
class FnExpressionMath¶
 - #include <FnExpressionMath.h>
Class providing range common utility functions used in expression math.
Public Types
Public Static Functions
- 
static int clamp(int value, int a, int b)¶
 Clamp the value between
aandb. This function works for a>b and a<b.- Parameters:
 value – the value to be clamped
a – lower bound to clamp
valuetob – upper bound to clamp
valueto.
- Returns:
 aifvalueis less thana,bifvalueis greater thanvalueelsevalue.
- 
static float clamp(float value, float a, float b)¶
 
- 
static double clamp(double value, double a, double b)¶
 
- 
static float lerp(float mix, float a, float b)¶
 Linearly interpolate between
aandbusing the specified mix Mix values outside of [0,1] are not clamped. Mix value of zero returns ‘a’. This argument order is such to make it similar to fit and cfit- Returns:
 the value between a and b, using the specified mix
- 
static double lerp(double mix, double a, double b)¶
 
- 
static float smoothstep(float t)¶
 Compute a smoothstep (ease in, ease out) version of t: [0,1] This will clamp the output to between 0 and 1
- 
static double smoothstep(double t)¶
 
- 
static float fit(float value, float oldmin, float oldmax, float newmin, float newmax)¶
 Example:
fit(0.8, 0, 1, 0, 255) = 204. fit(3,1,4,5,20) = 15
- Returns:
 a number between
newminandnewmax, which is relative tovalin the range betweenoldminandoldmax.
- 
static double fit(double value, double oldmin, double oldmax, double newmin, double newmax)¶
 
- 
static float cfit(float value, float oldmin, float oldmax, float newmin, float newmax)¶
 Same as fit(), but clamps to new borders, works on both increasing / decreasing segments
See also
- 
static double cfit(double value, double oldmin, double oldmax, double newmin, double newmax)¶
 
- 
static float softcfit(float value, float oldmin, float oldmax, float newmin, float newmax)¶
 Like regular cfit(), only softer, specifically, uses SmoothStep to ease in and out of the fit.
- 
static double softcfit(double value, double oldmin, double oldmax, double newmin, double newmax)¶
 
- 
static double retime(double frame, double start, double end, RetimeHoldMode inMode, RetimeHoldMode outMode)¶
 
- 
static float randval(float min, float max, int seed)¶
 - Returns:
 a random value between
[min,max]
- 
static double randval(double min, double max, int seed)¶
 
- 
static float noise(float x)¶
 Improved Perlin noise (Siggraph 2002) Ranges from
[0,1]
- 
static float noise(float x, float y)¶
 
- 
static float noise(float x, float y, float z)¶
 
- 
static float noise(float x, float y, float z, float w)¶
 
- 
static float snoise(float x)¶
 Signed Improved Perlin noise (Siggraph 2002) Ranges from
[-1,1] Results are just a rescaled version of noise
- 
static float snoise(float x, float y)¶
 
- 
static float snoise(float x, float y, float z)¶
 
- 
static float snoise(float x, float y, float z, float w)¶
 
- 
static int32_t stablehash(const std::string &cacheID)¶
 We always return a 32-bit integer, no matter which architecture we’re on.
Note
Uses MD5 internally.
 - 
static int clamp(int value, int a, int b)¶
 
- 
class FnExpressionMath¶