SOSFMATRIX(3iv)
π SoSFMatrix π
okay bestie, so this is a page from the SoSFMatrix(3IV) manual β yes the section number is literally 3IV, iconic, don't question it β and we're about to get into a field that holds a whole 4x4 matrix. yes. the entire grid. slay.
β¨ NAME β¨
SoSFMatrix β a field containing a 4x4 matrix π§
πΈ INHERITS FROM πΈ
it's giving a whole family tree, periodt:
SoField > SoSField > SoSFMatrix
π¦ SYNOPSIS π¦
first things first, you gotta include the header, no cap:
#include <Inventor/fields/SoSFMatrix.h>
π
Methods from class SoSFMatrix
void setValue(float a11, float a12, float a13, float a14,
float a21, float a22, float a23, float a24, float
a31, float a32, float a33, float a34, float a41,
float a42, float a43, float a44)
static SoType getClassTypeId()
virtual void getTypeId() const
const SbMatrix & getValue() const
const SbMatrix & operator =(const SbMatrix & newValue)
void setValue(const SbMatrix & newValue)
int operator ==(const SoSFMatrix &f) const
int operator !=(const SoSFMatrix &f) const
π«Ά Methods from class SoField
(she inherited these, she didn't have to do a thing, main character energy fr fr)
void setIgnored(SbBool ignore)
SbBool isIgnored() const
SbBool isDefault() const
virtual SbBool isOfType(SoType type) const
SbBool set(const char *valueString)
void get(SbString &valueString)
void touch()
SbBool connectFrom(SoField *fromField)
SbBool connectFrom(SoEngineOutput *fromEngine)
void disconnect()
SbBool isConnected() const
SbBool isConnectedFromField() const
SbBool getConnectedField(SoField *&writingField) const
SbBool isConnectedFromEngine() const
SbBool getConnectedEngine(SoEngineOutput *&engineOutput)
const
void enableConnection(SbBool flag)
SbBool isConnectionEnabled() const
int getForwardConnections(SoFieldList &list) const
SoFieldContainer * getContainer() const
π DESCRIPTION π
so basically, this field holds a transformation matrix β an SbMatrix, to be exact. that's the whole vibe. π
when SoSFMatrix fields get written to a file, they show up as 16 floating point numbers separated by whitespace. sixteen!! like a little number army. π
for example, an identity matrix is written as:
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
look at her. perfect. symmetrical. the moment. β¨
π METHODS π
π void setValue(float a11, float a12, float a13, float a14, float a21, float a22, float a23, float a24, float a31, float a32, float a33, float a34, float a41, float a42, float a43, float a44)
sets this field to contain the matrix you build out of those 16 values. that's it, that's the job. π
β pro tip straight from the docs, bestie: if you're building a translation matrix, the x, y and z translations belong in thea41,a42, anda43arguments. not a11, not a22 βa41,a42,a43. write that down. π
π static SoType getClassTypeId() and virtual void getTypeId() const
these two give you back the type β either for the class as a whole (getClassTypeId()), or for one specific object of this class (getTypeId()). type check yourself before you wreck yourself. β
π¦ const SbMatrix & getValue() const
hands you this field's value. that's the whole thing, no notes. π€²
π const SbMatrix & operator =(const SbMatrix & newValue) and void setValue(const SbMatrix & newValue)
both of these set this field to newValue. two doors, same room, pick whichever. πͺπͺ
π int operator ==(const SoSFMatrix &f) const and int operator !=(const SoSFMatrix &f) const
returns TRUE if f is the same type as this field and has the same value as this field. same type AND same value. both. no shortcuts. π€
π₯ SEE ALSO π₯
go read these next, bestie, they're all in the family:
SoFieldSoSFieldSoMFMatrixSbMatrix
k that's the whole page!! ty for reading my little manual rant, ily, go forth and multiply your matrices πβ¨ππ¦πΈπ π«Ά
this has been SoSFMatrix(3IV) β version/date slot is empty on this one (SoSFMatrix(3IV)(), she left it blank, mysterious of her ngl) β ok bye bestie, hydrate and check your indices!! ππ§β
π¦ 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