DOKK / manpages / debian 12 / inventor-doc / SoDecomposeMatrix.3iv.en
SoDecomposeMatrix(3IV)() SoDecomposeMatrix(3IV)()

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

SoBase > SoFieldContainer > SoEngine > SoDecomposeMatrix

#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

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.


SoMFMatrix matrix

The 4x4 transformation matrix.



SoMFVec3f center

The center of transformations.



(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.



SoDecomposeMatrix()

Constructor


DecomposeMatrix {

matrix 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 center 0 0 0
}

SoComposeMatrix, SoEngineOutput