SoDecomposeMatrix — decomposes transformation matrices into values for translation, rotation, and scale
Contents
Description
This engine takes as input a transformation matrix and a center of transformation. As output the engine
produces the translation, rotation and scale values derived from the matrix.
The input fields can have multiple values, allowing the engine to decompose several matrices in parallel.
One of the inputs may have more values than the other. In that case, the last value of the shorter input
will be repeated as necessary.
File Format/Defaults
DecomposeMatrix{matrix1000010000100001center000}Inherits From
SoBase > SoFieldContainer > SoEngine > SoDecomposeMatrix
Inputs
SoMFMatrixmatrix
The 4x4 transformation matrix.
SoMFVec3fcenter
The center of transformations.
Methods
SoDecomposeMatrix()
Constructor
Name
SoDecomposeMatrix — decomposes transformation matrices into values for translation, rotation, and scale
Outputs
(SoMFVec3f)translation
Derived translation in x, y, and z.
(SoMFRotation)rotation
Derived rotation.
(SoMFVec3f)scaleFactor
Derived scale values in x, y, and z.
(SoMFRotation)scaleOrientation
Derived rotational space for scaling.
See Also
SoComposeMatrix,SoEngineOutputSoDecomposeMatrix(3IV)()
Synopsis
#include<Inventor/engines/SoCompose.h>
Inputs from class SoDecomposeMatrix:
SoMFMatrixmatrixSoMFVec3fcenter
Outputs from class SoDecomposeMatrix:
(SoMFVec3f)translation(SoMFRotation)rotation(SoMFVec3f)scaleFactor(SoMFRotation)scaleOrientation
Methods from class SoDecomposeMatrix:
SoDecomposeMatrix()
Methods from class SoEngine:
staticSoTypegetClassTypeId()virtualintgetOutputs(SoEngineOutputList&list)constSoEngineOutput*getOutput(constSbName&outputName)constSbBoolgetOutputName(constSoEngineOutput*output,SbName&outputName)constSoEngine*copy()conststaticSoEngine*getByName(constSbName&name)staticintgetByName(constSbName&name,SoEngineList&list)
Methods from class SoFieldContainer:
voidsetToDefaults()SbBoolhasDefaultValues()constSbBoolfieldsAreEqual(constSoFieldContainer*fc)constvoidcopyFieldValues(constSoFieldContainer*fc,SbBoolcopyConnections=FALSE)SbBoolset(constchar*fieldDataString)voidget(SbString&fieldDataString)virtualintgetFields(SoFieldList&resultList)constvirtualSoField*getField(constSbName&fieldName)constSbBoolgetFieldName(constSoField*field,SbName&fieldName)constSbBoolisNotifyEnabled()constSbBoolenableNotify(SbBoolflag)
Methods from class SoBase:
voidref()voidunref()constvoidunrefNoDelete()constvoidtouch()virtualSoTypegetTypeId()constSbBoolisOfType(SoTypetype)constvirtualvoidsetName(constSbName&name)virtualSbNamegetName()const