SoDecomposeMatrix(3IV)NAMESoDecomposeMatrix (SoDecmpsMx) - decomposes transformation matrices into
values for translation, rotation, and scale
INHERITS FROM
SoBase > SoFieldContainer > SoEngine > SoDecomposeMatrixSYNOPSIS
#include <Inventor_c/engines/SoCompose.h>
typedef SoDecomposeMatrix SoDecmpsMx
Inputs from class SoDecomposeMatrix:
SoMFMatrix matrix
SoMFVec3f center
Outputs from class SoDecomposeMatrix:
(SoMFVec3f) translation
(SoMFRotation) rotation
(SoMFVec3f) scaleFactor
(SoMFRotation) scaleOrientation
Functions from class SoDecomposeMatrix:
SoDecomposeMatrix * SoDecmpsMxCreate()
Functions from class SoEngine:
SoType SoDecmpsMxGetTypeId()
int SoDecmpsMxGetOuts(const SoDecmpsMx *this,
SoEngineOutputList *list)
SoEngineOutput * SoDecmpsMxGetOut(const SoDecmpsMx *this, const char
*outputName)
SbBool SoDecmpsMxGetOutName(const SoDecmpsMx *this, const
SoEngineOutput *output, SbName *outputName)
SoEngine * SoDecmpsMxCopy(const SoDecmpsMx *this)
SoEngine * SoDecmpsMxGetByName(const char *name)
int SoDecmpsMxGetByNameList(const char *name,
SoEngineList *list)
Functions from class SoFieldContainer:
SoType SoDecmpsMxGetClassTypeId()
void SoDecmpsMxSetToDflts(SoDecmpsMx *this)
SbBool SoDecmpsMxHasDfltVals(const SoDecmpsMx *this)
SbBool SoDecmpsMxFldsAreEq(const SoDecmpsMx *this, const
SoFieldContainer *fc)
void SoDecmpsMxCopyFieldVals(SoDecmpsMx *this, const
SoFieldContainer *fc, SbBool copyConnections =
FALSE)
Page 1SoDecomposeMatrix(3IV)
SbBool SoDecmpsMxSet(SoDecmpsMx *this, const char
*fieldDataString)
void SoDecmpsMxGet(SoDecmpsMx *this, SbString
*fieldDataString)
int SoDecmpsMxGetFields(const SoDecmpsMx *this,
SoFieldList *resultList)
SoField * SoDecmpsMxGetField(const SoDecmpsMx *this, const char
*fieldName)
SbBool SoDecmpsMxGetFieldName(const SoDecmpsMx *this, const
SoField *field, SbName *fieldName)
SbBool SoDecmpsMxIsNotifyEnabled(const SoDecmpsMx *this)
SbBool SoDecmpsMxEnableNotify(SoDecmpsMx *this, SbBool flag)
Functions from class SoBase:
void SoDecmpsMxRef(SoDecmpsMx *this)
void SoDecmpsMxUnref(const SoDecmpsMx *this)
void SoDecmpsMxUnrefNoDelete(const SoDecmpsMx *this)
void SoDecmpsMxTouch(SoDecmpsMx *this)
SbBool SoDecmpsMxIsOfType(const SoDecmpsMx *this, SoType
type)
void SoDecmpsMxSetName(SoDecmpsMx *this, const char *name)
SbName SoDecmpsMxGetName(const SoDecmpsMx *this)
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.
INPUTS
SoMFMatrix matrix
The 4x4 transformation matrix.
SoMFVec3f center
The center of transformations.
OUTPUTS
(SoMFVec3f) translation
Derived translation in x, y, and z.
(SoMFRotation) rotation
Derived rotation.
(SoMFVec3f) scaleFactor
Derived scale values in x, y, and z.
Page 2SoDecomposeMatrix(3IV)
(SoMFRotation) scaleOrientation
Derived rotational space for scaling.
FUNCTIONSSoDecomposeMatrix * SoDecmpsMxCreate()
Constructor
FILE FORMAT/DEFAULTS
DecomposeMatrix {
matrix 1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
center 0 0 0
}
SEE ALSO
SoComposeMatrix, SoEngineOutput
Page 3