SOMATRIXTRANSFORM(3iv)

🌸 NAME 🌸

SoMatrixTransform β€” a node that specifies a 3D geometric transformation as a matrix πŸ’…

And yeah bestie, this entire page is SoMatrixTransform(3IV), so you're literally in the right place πŸ’– no wrong tab, no vibe mismatch, we're good.


πŸ‘‘ INHERITS FROM πŸ‘‘

Okay so the whole family tree, and she did NOT skip generations:

SoBase > SoFieldContainer > SoNode > SoTransformation > SoMatrixTransform

✨ SYNOPSIS ✨

#include <Inventor/nodes/SoMatrixTransform.h>

πŸŽ€ Fields from class SoMatrixTransform:

SoSFMatrix          matrix

πŸŽ€ Methods from class SoMatrixTransform:

                     SoMatrixTransform()
static SoType       getClassTypeId()

πŸŽ€ Methods from class SoNode:

void                setOverride(SbBool state)
SbBool              isOverride() const
SoNode *            copy(SbBool copyConnections = FALSE) const
virtual SbBool      affectsState() const
static SoNode *     getByName(const SbName &name)
static int          getByName(const SbName &name, SoNodeList &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 node defines a geometric 3D transformation using a single SbMatrix ✨ like, one matrix, that's the whole personality, and honestly? iconic.

⚠️ But listen, bestie, real talk for a sec: some matrices (such as singular ones) may result in errors in bounding boxes, picking, and lighting. So don't be out here feeding her a singular matrix and then acting surprised, okay? 🫢

πŸ“ FIELDS πŸ“

  • SoSFMatrix matrix β€” the transformation matrix. That's it. That's the field. She's simple, she's powerful πŸ’…

🌈 METHODS 🌈

  • SoMatrixTransform() β€” creates a matrix transformation node with default settings. Fresh out the box, all defaults, ready to go ✨
  • static SoType getClassTypeId() β€” returns the type identifier for this class. iykyk πŸ”₯

πŸ’€ ACTION BEHAVIOR πŸ’€

  • SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction β€” concatenates the matrix given in the matrix field with the current transformation matrix. She's stacking on top of whatever's already happening, no cap 🧚
  • SoGetMatrixAction β€” returns the transformation matrix specified in the matrix field. Just hands it right back to you, no drama πŸ’–

πŸŽ€ FILE FORMAT/DEFAULTS πŸŽ€

Look at her, the default identity matrix, the main character of "do nothing, beautifully":

MatrixTransform {
   matrix  1 0 0 0
           0 1 0 0
           0 0 1 0
           0 0 0 1
}

🌟 SEE ALSO 🌟

Go give these two a follow, they run in the same circles:

  • SoTransform
  • SoMultipleCopy

okay that's the whole SoMatrixTransform(3IV)() page, straight out of the 3IV manual β€” go transform something, you absolute legend πŸ«Άβœ¨πŸ’œ