SODECOMPOSEMATRIX(3iv)
π SoDecomposeMatrix(3IV) π
okay bestie, sit DOWN, because today we're talking about SoDecomposeMatrix from section (3IV) of the manual, and she is serving π«Ά
β¨ NAME β¨
SoDecomposeMatrix β decomposes transformation matrices into values for translation, rotation, and scale π
πΈ INHERITS FROM πΈ
SoBase > SoFieldContainer > SoEngine > SoDecomposeMatrix
like yes, she comes from a whole dynasty of classes, main character lineage fr fr π
β¨ 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 π
So this engine takes a transformation matrix and a center of transformation as input. And as output? She produces the translation, rotation and scale values that are derived from the matrix. it's giving math but make it β¨fashionβ¨
The input fields can hold multiple values, which means this engine can decompose several matrices in parallel β yes queen, multitasking π
One of the inputs might have more values than the other one. And in that case? The last value of the shorter input gets repeated as necessary. periodt π
π INPUTS π
SoMFMatrixmatrixβ the 4x4 transformation matrix π§SoMFVec3fcenterβ 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
okay that's the whole page bestie, you ate that, no cap ππ
signing off with the source/version line exactly as she appears, SoDecomposeMatrix(3IV)() β that's the flex, that's the whole vibe check πΈβ¨π
π¦ where this page comes from
- debian bookworm: inventor-doc 2.1.5-10+dfsg-2 Β· LGPL-2.0-or-later
- debian trixie: inventor-doc 2.1.6+ds-2 Β· LGPL-2.0-or-later
- ubuntu jammy: inventor-doc 2.1.5-10-24
- ubuntu noble: inventor-doc 2.1.5-10+dfsg-2.1build2 Β· LGPL-2.0-or-later
- ubuntu questing: inventor-doc 2.1.6+ds-2
- ubuntu resolute: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- ubuntu stonking: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms