Houdini 21.0 Nodes APEX nodes

rig::ExtractParmTransform 2.0

Extracts the transformation parameters from a local matrix with respect to a local rest matrix.

On this page
Since 21.0

Extracts the translation, rotation, scale, and shear parameters from a local space matrix with respect to a local space rest matrix. This node represents the inverse functionality of rig::CombineParmTransform. The parameters are extracted according to the transformation mode such that they represent the corresponding “Pre-transform”, “Post-transform”, or “Override” parameters that could be used to recreate the local matrix.

This node is useful in rig inversion workflows, where it can generate the parameter values needed to reproduce the pose described by the local matrix given an arbitrary rest matrix.

Inputs

localxform: Matrix4

The local space matrix from which to extract the transformation parameters with respect to the restlocal matrix.

restlocal: Matrix4

The local space rest matrix.

p: Vector3

The pivot position from which to extract the transformation parameters. The default is the origin.

pr: Vector3

The pivot orientation (represented as XYZ Euler angles, in degrees) from which to extract the transformation parameters. The default is no rotation.

xord: Int

The transformation order of the transformation parameters. The default is scale → rotate → translate. See transformation order.

rord: Int

The rotation order. The default is X → Y → Z. See rotation order.

mode: Int

The transformation mode, which affects how the transformation parameters are extracted from the rest matrix. The default is “Pre-transform”.

reflecthint: Vector3

When decomposing a matrix, if there is a reflection in the transformation represented by the matrix (a negative scale on 1 or all 3 axes), there are multiple solutions for the resulting translate, rotate, and scale components. Normally, the returned result doesn’t include negative scaling. If reflecthint is used, however, a solution that preserves negative scaling can be chosen. A reflecthint of (-1, 0, 0) preserves the negative scaling on the X axis, (0, -1, 0) on the Y axis, (0, 0, -1) on the Z axis, and (-1, -1, -1) on all 3 axes.

reflecthint only takes effect when there is a reflection in localxform, restlocal does not have a reflection, and reflecthint has 1 or 3 components with a negative number (since an even number of reflections doesn’t cause a reflection in the matrix). reflecthint's default value of (1, 1, 1) means negative scaling is not preserved.

Outputs

t: Vector3

The extracted translation.

r: Vector3

The extracted rotation represented as Euler angles, in degrees. The rotation order corresponds to the value of rord.

s: Vector3

The extracted scale.

sh: Vector3

The extracted shear.

See also

APEX nodes