Utilities
MN_utils_curve_resample
Outputs
| Description | Socket |
|---|---|
Geometry |
|
Position |
|
Tangent |
|
Normal |
|
Field Float |
|
Field Int |
|
Field Vec |
Inputs
| Socket | Default | Description |
|---|---|---|
Geometry |
None | |
Offset |
2.3 | |
Length |
0.36 | |
Field Float |
0.0 | |
Field Int |
0 | |
Field Vec |
[0.0, 0.0, 0.0] |
Attribute Remap
Remap the range of values of the attribute on from the target atoms, to the range from min to max
Sample an attribute from the mesh and remap from the minimum to the maximum to the specified values
Outputs
| Description | Socket |
|---|---|
| The remapped attribute values | Value |
Inputs
| Socket | Default | Description |
|---|---|---|
Sample |
None | The geometry to calculate the field overall min and max values |
Attribute |
b_factor | The attribute name to summarise and them remap |
Value Min |
0.0 | The minimum for the remapped values |
Value Max |
1.0 | The maxiumum for the remapped values |
Field Remap
Maps the range of values of the attribute on from the target atoms, to the range from min to max
Sample a field from the mesh and remap from the minimum to the maximum to the specified values
Outputs
| Description | Socket |
|---|---|
| The remapped values between the new min and max | Value |
Inputs
| Socket | Default | Description |
|---|---|---|
Sample |
None | The geometry to calculate the field overall min and max values |
Field |
0.0 | The field to summarise and remap |
Value Min |
0.0 | The new minimum value of the field |
Value Max |
1.0 | The new maximum value of the field |
Angstrom to World
Outputs
| Description | Socket |
|---|---|
World |
Inputs
| Socket | Default | Description |
|---|---|---|
Angstrom |
3.0 |
Nanometre to World
Outputs
| Description | Socket |
|---|---|
World |
Inputs
| Socket | Default | Description |
|---|---|---|
Nanometre |
3.0 |
World to Angstrom
Outputs
| Description | Socket |
|---|---|
Angstrom |
Inputs
| Socket | Default | Description |
|---|---|---|
World |
0.5 |
World to Nanometre
Outputs
| Description | Socket |
|---|---|
Nanometre |
Inputs
| Socket | Default | Description |
|---|---|---|
World |
0.5 |
Between Integer
Test if an integer is between (and including) the upper and lower bounds
Outputs
| Description | Socket |
|---|---|
Whether the input Value is between (and including) the lower and upper bounds |
Boolean |
Inputs
| Socket | Default | Description |
|---|---|---|
Value |
0 | The value to test if it exists within the bounds |
Lower |
0 | The lower bounds for the test |
Upper |
19 | The upper bounds for the test |
Between Float
Test if a float is between the upper and lower bounds
Outputs
| Description | Socket |
|---|---|
Whether the input Value is between (and including) the lower and upper bounds |
Boolean |
Inputs
| Socket | Default | Description |
|---|---|---|
Value |
0.0 | The value to test if it is between the lower and upper bounds |
Lower |
0.0 | Test if the Value is greater than or equal to this |
Upper |
0.0 | Test if the Value is less than or equal to this |
Between Vector
Test if a vector is element-wise between the upper and lower bounds.
Outputs
| Description | Socket |
|---|---|
| If the value is between (and including) the lower the upper bounds | Boolean |
Inputs
| Socket | Default | Description |
|---|---|---|
Value |
[0.0, 0.0, 0.0] | The value to test element-wise |
Lower |
[0.0, 0.0, 0.0] | The lower bounds (including) for the comparison |
Upper |
[0.0, 0.0, 0.0] | The upper bounds (including) for the comparison |
Vector from Point
Calculate the vector from the current point’s position to the input vector
Outputs
| Description | Socket |
|---|---|
| Vector from the current point’s position to the given vector | Vector |
| Normalized output vector | Direction |
| Length of the output vector | Length |
Rotation |
Inputs
| Socket | Default | Description |
|---|---|---|
Target |
[0.0, 0.0, 0.0] | Vector that is the target |
Position |
[0.0, 0.0, 0.0] | Position of the current point |
Mix Position
Mix the current point’s Position with the input vector. A convenience wrapper around a Mix Vector using Position as the first attribute
Outputs
| Description | Socket |
|---|---|
| The resulting mixed vector, based on the factor | Result |
Inputs
| Socket | Default | Description |
|---|---|---|
Position |
[0.0, 0.0, 0.0] | The position vector to mix from |
Factor |
0.5 | The amount to mix between the Position (0) and the input vector B (1) |
B |
[0.0, 0.0, 0.0] | The vector to mix to |
Fractionate Float
Split a float into the floor, ceiling and fraction of Value
Outputs
| Description | Socket |
|---|---|
| Fractional component of the value, between 0 and 1 | Fraction |
| The floor of the value; the integer rounded down | Floor |
| The ceiling of the value, the integer rounded up | Ceiling |
Inputs
| Socket | Default | Description |
|---|---|---|
Value |
0.0 | The value to fractionate |
Fraction Smoother
Use smoothstep to ease the fractionon of a float between the floor and ceiling of Value
Outputs
| Description | Socket |
|---|---|
Value |
Inputs
| Socket | Default | Description |
|---|---|---|
Value |
0.0 | The value to fractionate |
Rotation from ZYZ
Combine a rotation defined as ZYZ common in electron tomography
Combine a rotation defined as ZYZ,common in electron tomography
Outputs
| Description | Socket |
|---|---|
| The combined Rotation | Rotation |
Inputs
| Socket | Default | Description |
|---|---|---|
Phi |
0.0 | First rotation around the Z axis |
Theta |
0.0 | Second rotation around the Y axis |
Psi |
0.0 | Third rotation around the Z axis |
Transform Scale
Scale the components of a transform individually with between 0 and their value
Outputs
| Description | Socket |
|---|---|
The scaled Transform |
Transform |
Inputs
| Socket | Default | Description |
|---|---|---|
Transform |
Identity([4x4]) | The Transform to split and scale |
Translation |
1.0 | Mix the Translation component of the transform with 0 |
Rotation |
1.0 | Mix the Rotation component of the transform with 0 |
Scale |
1.0 | Mix the Scale component of the transform with 0 |
Transform Relative
The transform to get from B to A, relative to the CB axis
Outputs
| Description | Socket |
|---|---|
The Transform to move from B to A, relative to the axis of C to B |
Transform |
Inputs
| Socket | Default | Description |
|---|---|---|
A |
[0.0, 0.0, 0.0] | The final position |
B |
[0.0, 0.0, 0.0] | The position moving from |
C |
[0.0, 0.0, 0.0] | The position defining the axis of CB |
Transform Mix
Mix between two transformations
Mix between two transforms, controlling the translation, rotation and scale independently
Outputs
| Description | Socket |
|---|---|
| The final mixed Transform | Transform |
Inputs
| Socket | Default | Description |
|---|---|---|
A |
Identity([4x4]) | Transform A to mix from at 0.0 |
B |
Identity([4x4]) | Transform B which will be mixed to at 1.0 |
Translation |
0.5 | Amount to mix the Translation between A and B |
Rotation |
0.5 | Amount to mix the Rotation between A and B |
Scale |
0.5 | Amount to mix the Scale between A and B |
Transform Local
Apply the transform after first moving to world origin, then returning to original position
Outputs
| Description | Socket |
|---|---|
| The final transform | Transform |
Inputs
| Socket | Default | Description |
|---|---|---|
Origin |
[0.0, 0.0, 0.0] | Vector that defines the local space origin, defaults to Position |
Transform |
Identity([4x4]) | Transform to apply in local space |
Transform Local Axis
Create a transform around an axis in local space defined by the Origin point
Create a transform that is rotation around an axis in local space, with local space defined by the origin point which defaults to Position
Outputs
| Description | Socket |
|---|---|
| The Transform around the axis | Transform |
Inputs
| Socket | Default | Description |
|---|---|---|
Origin |
[0.0, 0.0, 0.0] | The vector defining the local space. Defaults to Position |
Axis |
[0.0, 0.0, 1.0] | The axis to rotate around |
Angle |
0.0 | Amount to rotate around the axis |
Transform Accumulate
Accumulate transforms on the domain if selected
Outputs
| Description | Socket |
|---|---|
| The accumulating Transform field | Transform |
Inputs
| Socket | Default | Description |
|---|---|---|
Domain |
None | Domain on which to accumulate transforms |
Accumulate |
True | Selected transforms are included in the accumulation, non-selected transforms become identity matrices |
Transform |
Identity([4x4]) | Transform field to accumulate |
Group ID |
0 | Transform field is accumulated individually for each Group ID |
Transform Accumulate Point
Accumulate transforms on the point domain
Accumulate transforms on a domain, applying these transforms to the Position
Outputs
| Description | Socket |
|---|---|
| Transformed vector | Vector |
Inputs
| Socket | Default | Description |
|---|---|---|
Domain |
None | Domain on which to accumulate the transforms |
Accumulate |
True | Include the transform in the final accumlation |
Position |
[0.0, 0.0, 0.0] | Point to transform, defaults to Position |
Transform |
Identity([4x4]) | Transform field to accumulate |
Group ID |
0 | Transform field is accumulated individually for each Group ID |
Accumulate Axis Rotation
Accumulate transforms that are rotations around an axis in local space. The axis is defined by the current Position to the position of the last True point for the Pivot input.
Outputs
| Description | Socket |
|---|---|
| Transformed vector | Position |
The accumlated transform, not yet applied to the Position vector |
Trasnform |
Inputs
| Socket | Default | Description |
|---|---|---|
Position |
[0.0, 0.0, 0.0] | Position vector to transform |
Selection |
True | |
Pivot |
False | The points at which points where Accumulate is true will look to for their axis of transformation. |
Angle |
0.0 | Amount to rotate around the axis |
Group ID |
0 | Transform field is accumulated individually for each Group ID |
Transform Index |
0 | Index at which to evaluate the final transform for the positon. For most cases this will be Index, but it might be that some points need to use the accumulated transform from another point instead |
Transform from Object
Outputs
| Description | Socket |
|---|---|
Vector |
Inputs
| Socket | Default | Description |
|---|---|---|
Position |
[0.0, 0.0, 0.0] | |
Object |
None | |
Translation |
[0.0, 0.0, 0.0] | |
Rotation |
Euler(0.0, 0.0, 0.0), ‘XYZ’) |
Centroid
Calculate the centroid point for the selection for each group in the Group ID. The centroid is the average position of all points in each Group ID. If a selection is given, then only the selected points contribute towards the overall centroid calculation, but the result is still available on the other points in the Group ID
Outputs
| Description | Socket |
|---|---|
The computed average vector for each Group ID |
Centroid |
Inputs
| Socket | Default | Description |
|---|---|---|
Position |
[0.0, 0.0, 0.0] | The Position vector to use for the centroid calculation |
Selection |
True | Selected points contribute to the computation of the centroid, unselected points do not contribute but still return the centroid for their Group ID |
Group ID |
0 | Compute the centroid on for each unique Group ID |
Vector Direction
Direction from one point to another, optionally normalized
Outputs
| Description | Socket |
|---|---|
| Vector between the points, potentially normalized | Direction |
| Distance between the points before normalization | Distance |
Inputs
| Socket | Default | Description |
|---|---|---|
Normalize |
True | |
To |
[0.0, 0.0, 0.0] | |
From |
[0.0, 0.0, 0.0] |
Vector Angle
The angle between two vectors, in radians
Compute the angle in radians between two vectors.
Outputs
| Description | Socket |
|---|---|
| The angle between the two vectors in radians | Angle |
| Axis around which the angle rotates (cross product of A and B) | A×B |
Inputs
| Socket | Default | Description |
|---|---|---|
A |
[0.0, 0.0, 0.0] | The first vector for angle calculation |
B |
[0.0, 0.0, 0.0] | The second vector for the angle calculation |
Dihedral Angle
Computes the angle between two vectors, AB & CD around around the axis of BC. The first vector AB is treated as the “12 O’clock” up position, looking down the axis towards C, with angles being return in the range of (-Pi, Pi). Clockwise angles are positive and anti-clockwise angles are negative.
Outputs
| Description | Socket |
|---|---|
| The angle between the vectors AB and CD, when made perpendicular to BC. | Angle |
| The vector BA when made perpendicular to the axis BC | BA⟂(BC) |
| The Vector CD when makde perpendicular to the axis BC | CD⟂(BC) |
| The axis vector BC | BC |
Inputs
| Socket | Default | Description |
|---|---|---|
A |
[0.0, 0.0, 0.0] | First vector for the calculation, which draws a line to B |
B |
[0.0, 0.0, 0.0] | Second vector for the calculation, which receives a line from A and draws a line to C |
C |
[0.0, 0.0, 0.0] | Third vector for the calculation, which receives a line from B and draws a line to D |
D |
[0.0, 0.0, 0.0] | Last vector for the calculation, which is the end point of the line from D |
3 Point Angle
Calculate the angle between 3 different points. These points are selected based on their index in the point domain, with Index B being the centre of the calculation. In the video example, the same calculation that is occurring internally inside of the MN_topo_edge_angle node, is being handled explicity by this node. If the Index is being used as Index B then the current point that is being evaluated is the centre of the angle calculation. If this value is changed, then the point at the corresponding index is used, which results in a smaller angle in the example video.
Outputs
| Description | Socket |
|---|---|
| Angle between the points around Index B in radians | Angle |
Inputs
| Socket | Default | Description |
|---|---|---|
Index A |
0 | First of the points for the angle calculation |
Index B |
1 | The middle point for the angle calculation |
Index C |
2 | Last of the points for the angle calculation |
2 Point Angle
Calculate the angle that two points make, relative to the current point being evaluated. Points are selected based on their index, with the centre of the angle calculation being the current point’s position. Equivalent to using 3-Point angle and using Index as the Index B. In the example video, the angle calculation is similar to that of the 3-Point Angle node, but the middle point is always the current point.
Outputs
| Description | Socket |
|---|---|
| Angle of the line A -> Self -> C in radians | Angle |
Inputs
| Socket | Default | Description |
|---|---|---|
Position |
[0.0, 0.0, 0.0] | The Position vectors to use for the angle calculation |
Index A |
0 | First end point for the angle calculation around the current point |
Index B |
0 | The Index for the middle point in the angle calculation, defaulting to the current point |
Index C |
2 | Last end point for the angle calculation around the current point |
Point Distance
Calculate the distance and the vector between the evaluating point and the point selected via the Index. In the example video, each point is calculating a vector and a distance between itself and the indexed point. When the Point Mask node is used, this index is then on a per-group basis, so each point in the group points to just the group’s corresponding point.
Outputs
| Description | Socket |
|---|---|
| Vector from the current point to the indexed point | Vector |
| Normalized vector from the current point to the indexed point | Direction |
| Distance from the current point to the indexed point | Distance |
Rotation |
Inputs
| Socket | Default | Description |
|---|---|---|
Index |
0 | |
Target Index |
100 | Index for the selected point to measure to |