SoDecomposeMatrix(3IV)

SoDecomposeMatrix (SoDecmpsMx) - decomposes transformation matrices into values for translation, rotation, and scale

Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.22.

NAME
     SoDecomposeMatrix (SoDecmpsMx) - decomposes transformation matrices into
     values for translation, rotation, and scale

INHERITS FROM
     SoBase > SoFieldContainer > SoEngine > SoDecomposeMatrix

SYNOPSIS
     #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)
     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.
     (SoMFRotation)      scaleOrientation
          Derived rotational space for scaling.


FUNCTIONS
     SoDecomposeMatrix *  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