SoDecomposeMatrix(3IV)

SoDecomposeMatrix - 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 - decomposes transformation matrices into values for
     translation, rotation, and scale

INHERITS FROM
     SoBase > SoFieldContainer > SoEngine > SoDecomposeMatrix

SYNOPSIS
     #include <Inventor/engines/SoCompose.h>

          Inputs from class SoDecomposeMatrix:

     SoMFMatrix          matrix
     SoMFVec3f           center

          Outputs from class SoDecomposeMatrix:

     (SoMFVec3f)         translation
     (SoMFRotation)      rotation
     (SoMFVec3f)         scaleFactor
     (SoMFRotation)      scaleOrientation

          Methods from class SoDecomposeMatrix:

                         SoDecomposeMatrix()

          Methods from class SoEngine:

     static SoType       getClassTypeId()
     virtual int         getOutputs(SoEngineOutputList &list) const
     SoEngineOutput *    getOutput(const SbName &outputName) const
     SbBool              getOutputName(const SoEngineOutput *output, SbName
                              &outputName) const
     SoEngine *          copy() const
     static SoEngine *   getByName(const SbName &name)
     static int          getByName(const SbName &name, SoEngineList &list)

          Methods from class SoFieldContainer:

     void                setToDefaults()
     SbBool              hasDefaultValues() const
     SbBool              fieldsAreEqual(const SoFieldContainer *fc) const
     void                copyFieldValues(const SoFieldContainer *fc, SbBool
                              copyConnections = FALSE)
     SbBool              set(const char *fieldDataString)
     void                get(SbString &fieldDataString)
     virtual int         getFields(SoFieldList &resultList) const
     virtual SoField *   getField(const SbName &fieldName) const
     SbBool              getFieldName(const SoField *field, SbName &fieldName)
                              const
     SbBool              isNotifyEnabled() const
     SbBool              enableNotify(SbBool flag)

          Methods from class SoBase:

     void                ref()
     void                unref() const
     void                unrefNoDelete() const
     void                touch()
     virtual SoType      getTypeId() const
     SbBool              isOfType(SoType type) const
     virtual void        setName(const SbName &name)
     virtual SbName      getName() const


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.


METHODS
                         SoDecomposeMatrix()
          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