Mathematical operations can be seen as the core of a programming language - even if it is a node-based, visual system. With the nodes of the "Math" class you are able to perform calculations and produce a result. The interesting thing with the graph engine's "Math" nodes is that they do not only support single elements, for example basic operations like 7 + 5, or 3 * 8, but also predefined nodes for vector calculations, complex matrices, and even arrays (arrays can store more than one element, even millions). Aside from these convenient helpers, there is also a broad range of functions (sine, logarithms, square root etc.), and nodes for rounding operations. Another group of nodes provides ready-to-use methods for the interpolation of values from an array.
Nodes
Name | Description |
---|---|
Abs | Computes the absolute value of the input. |
Add | Computes the addition of the two input values. |
ArrayIndexBuildFromMask | This node returns an array containing the positions of the input 'mask' with a value of 1. |
ArrayIndices | This node returns an array filled with integers from 0 to the size of the input array (minus one). |
ArrayNumAverage | Computes the average value of all the input array elements. |
ArrayNumConcat | This node concatenates the inputs 'array0' and 'array1' into a single 'out' array. |
ArrayNumConstant | Returns an array of size 'size' for which all elements have 'constant' as value. |
ArrayNumFilterByMask | This node returns the elements of the input 'array' at positions specified by the 'mask' parameter. |
ArrayNumFindAllElementIndices | This node returns all positions in the input 'array', which fit to the input 'element' values. |
ArrayNumFindElement | This node returns the first position of appearance of the input 'element' within the input 'array'. If the array does not contain the element, -1 is returned. |
ArrayNumInsertElement | This node inserts all elements from the 'element' input into the input 'array' at the position specified by 'position'. If 'position' is equal or lower than 0 then the elements are inserted at the beginning of the array. If 'position' is greater or equal than the inputs 'array' size, elements are appended at the end. |
ArrayNumMinMax | Computes the minimum/maximum values of all the input array elements. |
ArrayNumMix | This node creates an output array based on the two inputs 'array0' and 'array1' and the input mask. If the mask value equals 0 then the value of 'array0' is used, if the mask value is 1 the value of 'array1' is used. |
ArrayNumPushElement | This node appends all the elements from the 'element' at the end of the input 'array'. |
ArrayNumRandom | Computes an array of the given input 'size' filled with random values in range from 'min' to 'max'. |
ArrayNumRange | Creates an array of size 'steps' which values are increased uniformly from 'start' to 'end'. |
ArrayNumRemoveElement | This node removes all elements of the 'by_value' from the input 'array'. The returned mask has the same size as the input 'array' and is set to 0 at removed positions. |
ArrayNumRemoveIndex | This node removes all input array positions by the 'index' input. |
ArrayNumRemoveRepeatedElements | This node removes all repetitions of elements from the input 'array'. The 'new_to_old' array can be used as an 'index' input for a GetArrayElement-Node to restore the original array. The returned mask has the same size as the input 'array' and is set to 0 at removed positions. |
ArrayNumResize | This node resizes the input 'array'. If the result is bigger than the input array, the last value is repeated accordingly. |
ArrayNumReverse | This node reverses the order of the input 'array'. |
ArrayNumSlice | This node returns an array containing the range of the input 'array' from the 'first' position with the given input 'size'.Thus, the output array is a subarray or slice of the input. |
ArrayNumSort | This node sorts the input 'array'. The 'old_to_new' array can be used as 'index' input of a GetArrayElement to sort a different array of the same size. The 'new_to_old' array can be used as 'index' input of a GetArrayElement to get the original array order if applied to the sorted one. to apply to other arrays of the same size. |
ArrayNumSum | Returns the summation of all the elements of the input 'array'. |
ArraySize | Returns the number of elements of the input array. |
ArrayVector3GridFromBox | Computes a three dimensional grid of Vector3 positions based on the input box and number of elements. |
ArrayVector3GridFromSize | Computes a three dimensional grid of Vector3 positions based on the input number of elements and step size. |
ArrayVector3RandomFromBox | Computes an array of three dimensional random positions within the input box. |
Atan2 | Computes the principal value of the arc tangent of y/x (in radians [-pi,+pi]). |
Ceil | Computes the ceil value of the input. Examples: ceil(2.3)=3; ceil(-2.3)=-2. |
Clamp | Clamps the input value according to the given min and max values. |
Cos | Evaluates the cos-function. |
Degrees | Converts radians to degrees. |
Div | Computes the division of the two input values. |
Exp | Computes the exponent value of the input. |
Floor | Computes the floor value of the input. Examples: floor(2.3)=2; floor(-1.3)=-2. |
GetArrayNum2DElement | This node returns the elements of the 2D input 'array' at positions specified by the x and y parameters. |
GetArrayNum2DElementByUV | This node returns the bilinearly interpolated element of the 2D-input 'array' with the given width at the normalized coordinates x,y (0<x |
GetArrayNum3DElement | Returns the element of the input array at position ('index x','index y','index z'). |
GetArrayNumElement | This node returns the elements of the input 'array' at positions specified by the 'index' parameter. |
GetNumGlobalVariable | This node returns a reference to previously stored variables in global memory (using the SetGlobalVariable-Nodes). |
GetSpline | This node gets the spline of the input node. |
IsNull | Returns for every element of the input 'array' if it is NULL or not. |
Log | Computes the natural logarithm value of the input. |
Log10 | Computes the common (base-10) logarithm value of the input. |
Matrix4CreateRotation | Set rotation matrix according to provided axis and angle given by input vector and input angle (in degrees). |
Matrix4CreateRotationEuler | Set rotation matrix according to euler angles (in degrees) given by input vector. |
Matrix4CreateScale | Set scale matrix according to input vector. Scaling in x,y and z-direction is defined by x,y and z components of the input vector. |
Matrix4CreateTranslation | Set translation matrix according to input vector. |
Matrix4Determinant | Computes the determinant of the given matrix. |
Matrix4GetEulerAngle | Computes the Euler angles (in degrees) of the given input matrix. |
Matrix4Inverse | Computes the inverse of the given matrix. |
Matrix4MulVector3 | Computes the product of the input matrix and the input vector. The vector is handled as four-dimensional vector (x,y,z,1). |
Matrix4Transpose | Computes the transposed of the given matrix. |
Mod | Computes module of the input value. |
Mul | Computes the product of the two input values. |
NumCopy | This node duplicates the value of 'in' to the output 'copy'. |
NumInterpolateBezier | Computes bezier interpolated value between the array of supporting points. |
NumInterpolateCubic | Computes cubic interpolated value between the array of supporting points. |
NumInterpolateHermite | Computes hermite interpolated value between the array of supporting points. |
NumInterpolateLinear | Computes linearly interpolated value between the first and second value given by the blend value. If the clamp value is set, the result is clamped according to the first and second value, otherwise not. |
NumMapRange | Tranforms the in value from 'range in' into the 'range out'. May be used, to normalize values within a given range (e.g. range out=0..1) or to determine image coordinates from a global position (e.g. range out=0..imageWidth). |
Pow | Computes the base raised to the power exponent. |
QuaternionConjugate | Computes the conjugate quaternion of the given quaternion. |
QuaternionDot | Computes the dot-product of the given quaternions. |
QuaternionInverse | Computes the inverse of the given quaternion. |
QuaternionNegate | Computes the negative of the given quaternion. |
QuaternionNormalize | Computes the norm of the given quaternion. |
QuaternionSlerp | Slerp-interpolation (spherical linear interpolation) between the two given input quaternions and the interpolation parameter (0..1). |
Radians | Converts degrees to radians. |
Round | Computes the round value of the input. Example: round(2.3)=2; round(2.7)=3. |
SetArrayNumElement | Returns an array equal to the input 'array' but changing the element at position 'index' to the value of 'element'. |
SetMatrix4FromComponents | Set transformation matrix according to the given inputs of translation, axis of rotation and angle (in degree), as well as scale. Take note, the rotation axis should not be set to a null vector - otherwise, the resulting matrix is zero. |
SetMatrix4FromQuaternion | Set transformation matrix according to the given rotation defined by the input quaternion. |
SetNumGlobalVariable | This node allows the user to create a reference or a copy of the input pin in global memory to be used within other RealFlow graph through the GetGlobalVariable nodes. |
SetSpline | This node replaces the spline with the input spline. |
Sin | Evaluates the sin-function. |
SplineAddControlPoint | This node adds control points to the spline. The new control points are added at the end of the spline. If you want to insert control points at specific locations use the node "SplineInsertControlPoint". |
SplineCreate | This node creates an empty spline inside the graph. |
SplineEvaluate | This node evaluates the spline at some specific location. The location is given as the index of the span and the normalized position inside that span. |
SplineGetControlPoint | This node gets the control points of the spline. |
SplineInsertControlPoint | This node inserts control points to the spline at some specific. The location is given as the index of the span and the normalized position inside that span. |
Sqrt | Computes the square root value of the input. |
Sub | Computes the substraction of the two input values. |
Tan | Evaluates the tan-function. |
TrigonometricFunctions | Returns trigonometrical function of given input value. |
Vector3Angle | Computes the angle defined by the input vectors (in degrees). |
Vector3AreParallel | Returns true, if both vectors are parallel, otherwise false. |
Vector3ArePerpendicular | Returns true, if both vectors are perpendicular, otherwise false. |
Vector3Cross | Computes the cross product of the input vectors. |
Vector3Distance | Computes the distance between the input vectors. |
Vector3Dot | Computes the dot product of the input vectors. |
Vector3Interpolate | Computes interpolated vector between the first and second vectors given by the blend value. If the clamp value is set, the result is clamped, otherwise not. |
Vector3Length | Computes the module of the input 'vector'. |
Vector3LengthSquared | Computes the squared length of the input vector. |
Vector3Normalize | Computes a normalized copy of the input 'vector'. |
Vector3Project | Computes the projection of vector 0 onto vector 1. |
Vector3Reorder | Reorders the components of the input 'vector'. |
Abs
This node is executed in parallel according to its input pins size.
Computes the absolute value of the input.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Value to get the absolute value of |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Absolute value of 'in' |
Add
This node is executed in parallel according to its input pins size.
Computes the addition of the two input values.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in0 | First operator | ||
in1 | Second operator |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Operation result |
ArrayIndexBuildFromMask
This node returns an array containing the positions of the input 'mask' with a value of 1.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
mask | Bit | through | The mask |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
index | Integer | The index | |
through | PassThrough | mask | The input 'mask' |
ArrayIndices
This node returns an array filled with integers from 0 to the size of the input array (minus one).
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | All | The array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
indices | Integer | Array with indices |
ArrayNumAverage
Computes the average value of all the input array elements.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
average | The average |
ArrayNumConcat
This node concatenates the inputs 'array0' and 'array1' into a single 'out' array.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array0 | The array0 | ||
array1 | The array1 |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out array | The out array |
ArrayNumConstant
Returns an array of size 'size' for which all elements have 'constant' as value.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
size | Integer (1) | The size of the output array | |
constant | The value of the output array elements |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array |
ArrayNumFilterByMask
This node returns the elements of the input 'array' at positions specified by the 'mask' parameter.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
mask | Bit | The mask |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | The result |
ArrayNumFindAllElementIndices
This node returns all positions in the input 'array', which fit to the input 'element' values. .
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
element | The value to find in the input array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
index | Integer | The index | |
mask | Bit | The mask |
ArrayNumFindElement
This node is executed in parallel according to its input pins size.
This node returns the first position of appearance of the input 'element' within the input 'array'. If the array does not contain the element, -1 is returned.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
element | The value to find in the input array | ||
start index | Integer | The first index to search the element from |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
index | Integer | The index |
ArrayNumInsertElement
This node inserts all elements from the 'element' input into the input 'array' at the position specified by 'position'. If 'position' is equal or lower than 0 then the elements are inserted at the beginning of the array. If 'position' is greater or equal than the inputs 'array' size, elements are appended at the end.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
element | The value to insert | ||
index | Integer (1) | The position to insert the input element on |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out array | The out array |
ArrayNumMinMax
Computes the minimum/maximum values of all the input array elements.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
min | The min | ||
index min | Integer | The position of the minimum value of the input 'array'. For vector types, it returns the index of the minimum of the first component! | |
max | The max | ||
index max | Integer | The position of the maximum value of the input 'array'. For vector types, it returns the index of the maximum of the first component! |
ArrayNumMix
This node creates an output array based on the two inputs 'array0' and 'array1' and the input mask. If the mask value equals 0 then the value of 'array0' is used, if the mask value is 1 the value of 'array1' is used.
The size of the output is the same as mask's size.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array0 | The array0 | ||
array1 | The array1 | ||
mask | Bit | The mask |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out array | The out array |
ArrayNumPushElement
This node appends all the elements from the 'element' at the end of the input 'array'.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
element | The value to append at the end |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out array | The out array |
ArrayNumRandom
Computes an array of the given input 'size' filled with random values in range from 'min' to 'max'.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
size | Integer (1) | The size of the output array | |
min | The minimum value of the random output values | ||
max | The maximum value of the random output values | ||
seed | Integer (1) | The seed of the random algorithm |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array |
ArrayNumRange
Creates an array of size 'steps' which values are increased uniformly from 'start' to 'end'.
If 'steps' is 1 the single element of the output 'array' is 'start'.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
start | The start value of the range | ||
end | The end (target) value of the range | ||
steps | Integer (1) | The size of the output 'array' |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array |
ArrayNumRemoveElement
This node removes all elements of the 'by_value' from the input 'array'. The returned mask has the same size as the input 'array' and is set to 0 at removed positions.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
element | The value to remove all its instances from the input array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out array | The out array | ||
mask | Bit | The mask |
ArrayNumRemoveIndex
This node removes all input array positions by the 'index' input. .
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
index | Integer | The positions of the input array to remove |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out array | The out array |
ArrayNumRemoveRepeatedElements
This node removes all repetitions of elements from the input 'array'. The 'new_to_old' array can be used as an 'index' input for a GetArrayElement-Node to restore the original array. The returned mask has the same size as the input 'array' and is set to 0 at removed positions.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
new to old | Integer | The new to old | |
mask | Bit | The mask | |
out array | The out array |
ArrayNumResize
This node resizes the input 'array'. If the result is bigger than the input array, the last value is repeated accordingly.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
size | Integer (1) | The size |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out array | The out array |
ArrayNumReverse
This node reverses the order of the input 'array'.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out array | The out array |
ArrayNumSlice
This node returns an array containing the range of the input 'array' from the 'first' position with the given input 'size'.Thus, the output array is a subarray or slice of the input.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
first | Integer (1) | The position of the element that will be the first of the output array | |
size | Integer (1) | The total number of elements to copy from the input array. If value is negative, all the elements from 'first' are copied to the output array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out array | The out array |
ArrayNumSort
This node sorts the input 'array'. The 'old_to_new' array can be used as 'index' input of a GetArrayElement to sort a different array of the same size. The 'new_to_old' array can be used as 'index' input of a GetArrayElement to get the original array order if applied to the sorted one. to apply to other arrays of the same size.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
old to new | Integer | The old to new | |
new to old | Integer | The new to old | |
out array | The out array |
ArrayNumSum
Returns the summation of all the elements of the input 'array'.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
sum | The sum |
ArraySize
Returns the number of elements of the input array.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | All | through | The array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
size | Integer | Array size | |
through | PassThrough | array | The input 'array' |
ArrayVector3GridFromBox
Computes a three dimensional grid of Vector3 positions based on the input box and number of elements.
The total number of elements of the output is 'count x' * 'count y' * 'count z'. Keep in mind that if any of them is 0 then the output array will be empty 0.
The order of the result is determined by the 'order' input. It determines the order in which the components grow.
For example, if the order is set to XYZ the output is the following:
000
001
010
011
100
101
110
111.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
box | Box (1) | The bounding box that will contain the generated positions | |
count x | Integer (1) | The number of elements to create in the X axis of the box | |
count y | Integer (1) | The number of elements to create in the Y axis of the box | |
count z | Integer (1) | The number of elements to create in the Z axis of the box | |
order | The order in which elements are stored in the output array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | Vector3 | The array |
ArrayVector3GridFromSize
Computes a three dimensional grid of Vector3 positions based on the input number of elements and step size.
The total number of elements of the output is 'count x' * 'count y' * 'count z'. Keep in mind that if any of them is 0 then the output array will be empty 0.
The first element is created at the 'origin' position.
The order of the result is determined by the 'order' input. It determines the order in which the components grow.
For example, if the order is set to XYZ the output is the following:
000
001
010
011
100
101
110
111.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
origin | Vector3 (1) | The position of the first element of the output array | |
count x | Integer (1) | The number of elements to create in the X direction | |
count y | Integer (1) | The number of elements to create in the Y direction | |
count z | Integer (1) | The number of elements to create in the Z direction | |
step | Vector3 (1) | The distance for every axis between every output position | |
order | The order in which elements are stored in the output array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | Vector3 | The array |
ArrayVector3RandomFromBox
Computes an array of three dimensional random positions within the input box.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
box | Box (1) | The bounding box that will contain the generated positions | |
size | Integer (1) | The number of positions to create for the output array | |
seed | Integer (1) | The seed for the random generated numbers |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | Vector3 | The array |
Atan2
This node is executed in parallel according to its input pins size.
Computes the principal value of the arc tangent of y/x (in radians [-pi,+pi]).
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
y | Real | Y-Coordinate | |
x | Real | X-Coordinate |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Real | Principal arc tangent of y/x |
Ceil
This node is executed in parallel according to its input pins size.
Computes the ceil value of the input. Examples: ceil(2.3)=3; ceil(-2.3)=-2.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Value to get the ceil value of |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Ceil value of 'in' |
Clamp
This node is executed in parallel according to its input pins size.
Clamps the input value according to the given min and max values.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | The in | ||
max | The max | ||
min | The min |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | The result |
Cos
This node is executed in parallel according to its input pins size.
Evaluates the cos-function.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Real | The in |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Real | The result |
Degrees
This node is executed in parallel according to its input pins size.
Converts radians to degrees.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Input in radians |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Output in degrees |
Div
This node is executed in parallel according to its input pins size.
Computes the division of the two input values.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in0 | First operator | ||
in1 | Second operator |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Operation result |
Exp
This node is executed in parallel according to its input pins size.
Computes the exponent value of the input.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Real | Value to get the exponent value of |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Real | Exponent value of 'in' |
Floor
This node is executed in parallel according to its input pins size.
Computes the floor value of the input. Examples: floor(2.3)=2; floor(-1.3)=-2.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Value to get the floor value of |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Floor value of 'in' |
GetArrayNum2DElement
This node returns the elements of the 2D input 'array' at positions specified by the x and y parameters.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
width | Integer | The width | |
x | Integer | The x | |
y | Integer | The y |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
element | The element | ||
index | Integer | The index |
GetArrayNum2DElementByUV
This node returns the bilinearly interpolated element of the 2D-input 'array' with the given width at the normalized coordinates x,y (0<x
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
width | Integer | The width | |
x | Real | The x | |
y | Real | The y |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
element | The element |
GetArrayNum3DElement
Returns the element of the input array at position ('index x','index y','index z').
The input array is a three dimensional array encoded into a one dimensional array. Therefore, the size of the 3D array is necessary to access its elements. 'size x' * 'size y' * 'size z' must be the size of the input array.
The order in which the elements are accessed is determined by the 'order' input.
For example, if the order is set to XYZ the input is as follows:
000
001
010
011
100
101
110
111
.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array with elements stored in a 3D grid | ||
index x | Integer | The X position of the element to query | |
index y | Integer | The Y position of the element to query | |
index z | Integer | The Z position of the element to query | |
size x | Integer (1) | The width of the input array | |
size y | Integer (1) | The height of the input array | |
size z | Integer (1) | The depth of the input array | |
order | The order in which elements are stored in the input array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
element | The element | ||
index | Integer | The index of the element for the one dimensional access |
GetArrayNumElement
This node returns the elements of the input 'array' at positions specified by the 'index' parameter.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
index | Integer | The index |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
element | The element |
GetNumGlobalVariable
This node returns a reference to previously stored variables in global memory (using the SetGlobalVariable-Nodes).
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
name | String (1) | The name |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out | The out |
GetSpline
This node gets the spline of the input node.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
node | RealFlow Node | The node |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
spline | Spline | The spline |
IsNull
Returns for every element of the input 'array' if it is NULL or not.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | All | through | The array |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
bit | Bit | True for elements that are NULL | |
through | PassThrough | array | The input 'array' |
Log
This node is executed in parallel according to its input pins size.
Computes the natural logarithm value of the input.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Real | Value to get the log value of |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Real | Log value of 'in' |
Log10
This node is executed in parallel according to its input pins size.
Computes the common (base-10) logarithm value of the input.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Real | Value to get the log10 value of |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Real | Log10 value of 'in' |
Matrix4CreateRotation
This node is executed in parallel according to its input pins size.
Set rotation matrix according to provided axis and angle given by input vector and input angle (in degrees).
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector | Vector3 | The vector | |
degree | Real | The degree |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
matrix | Matrix4 | The matrix |
Matrix4CreateRotationEuler
This node is executed in parallel according to its input pins size.
Set rotation matrix according to euler angles (in degrees) given by input vector.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
angle | Vector3 | The angle | |
order | The rotation order of the matrix | ||
clockwise | Bit (1) | The positive (counter clock wise) or negative (clock wise) rotation convention of the matrix |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
matrix | Matrix4 | The matrix |
Matrix4CreateScale
This node is executed in parallel according to its input pins size.
Set scale matrix according to input vector. Scaling in x,y and z-direction is defined by x,y and z components of the input vector.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector | Vector3 | The vector |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
matrix | Matrix4 | The matrix |
Matrix4CreateTranslation
This node is executed in parallel according to its input pins size.
Set translation matrix according to input vector.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector | Vector3 | The vector |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
matrix | Matrix4 | The matrix |
Matrix4Determinant
This node is executed in parallel according to its input pins size.
Computes the determinant of the given matrix.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
matrix | Matrix4 | The matrix |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
determinant | Real | The determinant |
Matrix4GetEulerAngle
This node is executed in parallel according to its input pins size.
Computes the Euler angles (in degrees) of the given input matrix. .
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
matrix | Matrix4 | The matrix | |
order | The rotation order of the matrix | ||
clockwise | Bit (1) | The positive (counter clock wise) or negative (clock wise) rotation convention of the matrix |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector | Vector3 | The vector |
Matrix4Inverse
This node is executed in parallel according to its input pins size.
Computes the inverse of the given matrix.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
matrix | Matrix4 | The matrix |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Matrix4 | The result |
Matrix4MulVector3
This node is executed in parallel according to its input pins size.
Computes the product of the input matrix and the input vector. The vector is handled as four-dimensional vector (x,y,z,1).
Additionally, this node can handle a single matrix and an array of vectors, which might be useful for transforming positions or velocities of particles.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector | Vector3 | The vector | |
matrix | Matrix4 | The matrix |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out vector | Vector3 | The out vector |
Matrix4Transpose
This node is executed in parallel according to its input pins size.
Computes the transposed of the given matrix.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
matrix | Matrix4 | The matrix |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Matrix4 | The result |
Mod
Computes module of the input value.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | The in | ||
mod | The mod |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | The result |
Mul
This node is executed in parallel according to its input pins size.
Computes the product of the two input values.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in0 | First operator | ||
in1 | Second operator |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Operation result |
NumCopy
This node duplicates the value of 'in' to the output 'copy'.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | The value to duplicate |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
copy | A copy of 'in' |
NumInterpolateBezier
Computes bezier interpolated value between the array of supporting points.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | Array of supporting points | ||
tangents | Array of same size as supporting points, defining the tangent per point | ||
t | Real | Parameter to access the curve (0..1) | |
tangent influence | Real (1) | The tangent influence |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | The result |
NumInterpolateCubic
Computes cubic interpolated value between the array of supporting points.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | Array of supporting points | ||
t | Real | Parameter to access he curve (0..1) | |
equal stepping | Bit (1) | Enables constant distances within the discretization of the curve. See also the following parameter, to tweak quality of equal distances.. | |
equal stepping param | Integer (1) | No of discretization steps to determine constant distances. Good values lie between (50...2000), depending on the length of the curve. Higher values mean higher precision, but may slow down the calculation |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | The result |
NumInterpolateHermite
Computes hermite interpolated value between the array of supporting points.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | Array of supporting points | ||
t | Real | Parameter to access he curve (0..1) | |
tension | Real (1) | Tension can be used to tighten up the curvature at the supporting points. 1 is high, 0 normal, -1 is low | |
bias | Real (1) | The bias can be used to twist the curve about the known points. 0 is even, >0 is towards first segment, <0 towards the other | |
equal stepping | Bit (1) | Enables constant distances within the discretization of the curve. See also the following parameter, to tweak quality of equal distances.. | |
equal stepping param | Integer (1) | No of discretization steps to determine constant distances. Good values lie between (50...2000), depending on the length of the curve. Higher values mean higher precision, but may slow down the calculation |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | The result |
NumInterpolateLinear
This node is executed in parallel according to its input pins size.
Computes linearly interpolated value between the first and second value given by the blend value. If the clamp value is set, the result is clamped according to the first and second value, otherwise not.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
first | First value to be interpolated | ||
second | Second Value to be interpolated | ||
blend | Real | The blending value between first and second value | |
clamp | Bit (1) | Determines if the values are clamped according to the first and second value |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | The result |
NumMapRange
This node is executed in parallel according to its input pins size.
Tranforms the in value from 'range in' into the 'range out'. May be used, to normalize values within a given range (e.g. range out=0..1) or to determine image coordinates from a global position (e.g. range out=0..imageWidth).
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
value | The value | ||
in range min | The in range min | ||
in range max | The in range max | ||
out range min | The out range min | ||
out range max | The out range max |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | The result |
Pow
This node is executed in parallel according to its input pins size.
Computes the base raised to the power exponent.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
base | Real | Base | |
exponent | Real | Exponent |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Real | Power |
QuaternionConjugate
This node is executed in parallel according to its input pins size.
Computes the conjugate quaternion of the given quaternion.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
quaternion | Quaternion | The quaternion |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
conjugate | Quaternion | The conjugate |
QuaternionDot
Computes the dot-product of the given quaternions.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in0 | Quaternion | The in0 | |
in1 | Quaternion | The in1 |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
dot | Real | The dot |
QuaternionInverse
This node is executed in parallel according to its input pins size.
Computes the inverse of the given quaternion.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
quaternion | Quaternion | The quaternion |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
inverse | Quaternion | The inverse |
QuaternionNegate
This node is executed in parallel according to its input pins size.
Computes the negative of the given quaternion.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
quaternion | Quaternion | The quaternion |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
negative | Quaternion | The negative |
QuaternionNormalize
This node is executed in parallel according to its input pins size.
Computes the norm of the given quaternion.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
quaternion | Quaternion | The quaternion |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
norm | Quaternion | The norm |
QuaternionSlerp
This node is executed in parallel according to its input pins size.
Slerp-interpolation (spherical linear interpolation) between the two given input quaternions and the interpolation parameter (0..1).
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in0 | Quaternion | The in0 | |
in1 | Quaternion | The in1 | |
param | Real | The param |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
slerp | Quaternion | The slerp |
Radians
This node is executed in parallel according to its input pins size.
Converts degrees to radians.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Input in degrees |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Output in radians |
Round
This node is executed in parallel according to its input pins size.
Computes the round value of the input. Example: round(2.3)=2; round(2.7)=3.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Value to get the round value of |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Round value of 'in' |
SetArrayNumElement
Returns an array equal to the input 'array' but changing the element at position 'index' to the value of 'element'.
If input 'array' is not internally connected to the output, the output 'outArray' is a copy of the input.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
array | The array | ||
index | Integer | The position of the array element to change | |
element | The value for the array element |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out array | The changed array |
SetMatrix4FromComponents
This node is executed in parallel according to its input pins size.
Set transformation matrix according to the given inputs of translation, axis of rotation and angle (in degree), as well as scale. Take note, the rotation axis should not be set to a null vector - otherwise, the resulting matrix is zero.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
translation | Vector3 | The translation | |
rotation axis | Vector3 | The rotation axis | |
rotation degree | Real | The rotation degree | |
scale | Vector3 | The scale |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
matrix | Matrix4 | The matrix |
SetMatrix4FromQuaternion
This node is executed in parallel according to its input pins size.
Set transformation matrix according to the given rotation defined by the input quaternion.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
quaternion | Quaternion | The quaternion |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
matrix | Matrix4 | The matrix |
SetNumGlobalVariable
This node allows the user to create a reference or a copy of the input pin in global memory to be used within other RealFlow graph through the GetGlobalVariable nodes.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
name | String (1) | The name | |
in | through | The in | |
store copy | Bit (1) | The store copy |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
through | PassThrough | in | The value connected to the input |
out copy | The value copied in memory in case a copy has been performed. The same input value otherwise |
SetSpline
This node replaces the spline with the input spline.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
node | RealFlow Node | out node | The node |
spline | Spline | The spline |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out node | PassThrough | node | The out node |
Sin
This node is executed in parallel according to its input pins size.
Evaluates the sin-function.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Real | The in |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Real | The result |
SplineAddControlPoint
This node adds control points to the spline. The new control points are added at the end of the spline. If you want to insert control points at specific locations use the node "SplineInsertControlPoint".
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
spline | Spline (1) | out spline | The spline |
position | Vector3 | The position of the control point | |
handle in position | Vector3 | The position of the control point handle in | |
handle out position | Vector3 | The position of the control point handle out |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out spline | PassThrough | spline | The out spline |
SplineCreate
This node creates an empty spline inside the graph.
This way it is possible to use splines inside graphs without getting them from an existing node.
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
spline | Spline | The spline |
SplineEvaluate
This node evaluates the spline at some specific location. The location is given as the index of the span and the normalized position inside that span.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
spline | Spline (1) | The spline to evaluate | |
span | Integer (1) | The index of the span of the spline starting at 0 | |
t | Real | The normalized position inside the span |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
point | Vector3 | The point at the location |
SplineGetControlPoint
This node gets the control points of the spline.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
spline | Spline (1) | The spline |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
position | Vector3 | The position of the control point. | |
handle in position | Vector3 | The position of the control point handle in | |
handle out position | Vector3 | The position of the control point handle out |
SplineInsertControlPoint
This node inserts control points to the spline at some specific. The location is given as the index of the span and the normalized position inside that span.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
spline | Spline (1) | out spline | The spline |
span | Integer (1) | The index of the span of the spline starting at 0 | |
t | Real | The normalized position inside the span |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
out spline | PassThrough | spline | The out spline |
Sqrt
This node is executed in parallel according to its input pins size.
Computes the square root value of the input.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Value to get the sqrt value of |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Real | Sqrt value of 'in' |
Sub
This node is executed in parallel according to its input pins size.
Computes the substraction of the two input values.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in0 | First operator | ||
in1 | Second operator |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Operation result |
Tan
This node is executed in parallel according to its input pins size.
Evaluates the tan-function.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
in | Real | The in |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Real | The result |
TrigonometricFunctions
This node is executed in parallel according to its input pins size.
Returns trigonometrical function of given input value.
Defined functions are:
cos, sin, tan, acos, asin, atan, cosh, sinh, tanh.
.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
function | The function | ||
in | Real | Input value for selected function |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Real | Result of the selected function (see below) |
Vector3Angle
This node is executed in parallel according to its input pins size.
Computes the angle defined by the input vectors (in degrees).
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector0 | Vector3 | The vector0 | |
vector1 | Vector3 | The vector1 |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
angle | Real | The angle |
Vector3AreParallel
This node is executed in parallel according to its input pins size.
Returns true, if both vectors are parallel, otherwise false.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector0 | Vector3 | The vector0 | |
vector1 | Vector3 | The vector1 |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
bit | Bit | The bit |
Vector3ArePerpendicular
This node is executed in parallel according to its input pins size.
Returns true, if both vectors are perpendicular, otherwise false.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector0 | Vector3 | The vector0 | |
vector1 | Vector3 | The vector1 |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
bit | Bit | The bit |
Vector3Cross
This node is executed in parallel according to its input pins size.
Computes the cross product of the input vectors.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector0 | Vector3 | The vector0 | |
vector1 | Vector3 | The vector1 |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
cross | Vector3 | The cross |
Vector3Distance
This node is executed in parallel according to its input pins size.
Computes the distance between the input vectors.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector0 | Vector3 | The vector0 | |
vector1 | Vector3 | The vector1 |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
distance | Real | The distance |
Vector3Dot
This node is executed in parallel according to its input pins size.
Computes the dot product of the input vectors.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector0 | Vector3 | The vector0 | |
vector1 | Vector3 | The vector1 |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
dot | Real | The dot |
Vector3Interpolate
This node is executed in parallel according to its input pins size.
Computes interpolated vector between the first and second vectors given by the blend value. If the clamp value is set, the result is clamped, otherwise not.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
first | Vector3 | First value to be interpolated | |
second | Vector3 | Second Value to be interpolated | |
blend | Real | The blending value between first and second value | |
clamp | Bit | Determines if the values are clamped according to the first and second value |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Vector3 | The result |
Vector3Length
This node is executed in parallel according to its input pins size.
Computes the module of the input 'vector'.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector | Vector3 | The vector |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
length | Real | The length |
Vector3LengthSquared
This node is executed in parallel according to its input pins size.
Computes the squared length of the input vector.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector | Vector3 | The vector |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
length squared | Real | The length squared |
Vector3Normalize
This node is executed in parallel according to its input pins size.
Computes a normalized copy of the input 'vector'.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector | Vector3 | The vector |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
normalized | Vector3 | The normalized |
Vector3Project
This node is executed in parallel according to its input pins size.
Computes the projection of vector 0 onto vector 1.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector0 | Vector3 | The vector0 | |
vector1 | Vector3 | The vector1 |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
projection | Vector3 | The projection |
Vector3Reorder
This node is executed in parallel according to its input pins size.
Reorders the components of the input 'vector'.
Inputs
Name | Types | PassThrough | Description |
---|---|---|---|
vector | Vector3 | The vector | |
reorder | The reorder |
Outputs
Name | Types | PassThrough | Description |
---|---|---|---|
result | Vector3 | The result |