logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SoDecomposeMatrix — decomposes transformation matrices into values for translation, rotation, and scale

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

See Also