SODECOMPOSEROTATION(3iv)

πŸ’– SoDecomposeRotation(3IV) πŸ’–

okay bestie, buckle up β€” this is the manual page for SoDecomposeRotation from the <Inventor/engines/SoCompose.h> crew, and it's genuinely so cute once you get it. she takes a rotation and splits it into the two things hiding inside it. that's the whole vibe. slay.


✨ NAME ✨

SoDecomposeRotation β€” decomposes rotation values πŸ’…

🌸 INHERITS FROM 🌸

SoBase > SoFieldContainer > SoEngine > SoDecomposeRotation

so yeah she's a whole four-generation lineage, main character energy runs in the family 🫢

πŸŽ€ SYNOPSIS πŸŽ€

#include <Inventor/engines/SoCompose.h>

Inputs from class SoDecomposeRotation:

SoMFRotation        rotation

Outputs from class SoDecomposeRotation:

(SoMFVec3f)         axis
(SoMFFloat)         angle

Methods from class SoDecomposeRotation:

                     SoDecomposeRotation()

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

no cap, that's the full inheritance glow-up right there πŸ‘‘


🌈 DESCRIPTION 🌈

okay so picture this: this engine takes a rotation as input, and it decomposes it β€” splits it apart β€” into an axis value and a rotation angle. and the angle? it's in radians. periodt. πŸ”₯

and here's the part that's lowkey iconic: the input can hold multiple values, which means the engine can decompose several rotations in parallel. it's giving multitasking queen. she's not doing one rotation at a time, she's doing all of them. obsessed. ✨


πŸ’œ INPUTS πŸ’œ

  • SoMFRotation rotation β€” the rotation that's about to get decomposed, bestie. send her in πŸ¦‹

πŸ’– OUTPUTS πŸ’–

  • (SoMFVec3f) axis β€” the axis of rotation, derived from the input. that's the "which way are we spinning" of it all 🌸
  • (SoMFFloat) angle β€” the angle (in radians, don't forget) derived from the input. the "how much are we spinning" πŸŽ€

🧚 METHODS 🧚

  • SoDecomposeRotation() β€” Constructor. she's born πŸ’«

πŸ’… FILE FORMAT/DEFAULTS πŸ’…

DecomposeRotation {
   rotation  0 0 1  0
}

that's the default right there β€” rotation starting out as 0 0 1 0. as she should. πŸ“


⭐ SEE ALSO ⭐

SoDecomposeRotationFromTo, SoComposeRotation, SoEngineOutput

go read those too, iykyk, they're all part of the same friend group 🫢


and that's the whole page bestie!! this was SoDecomposeRotation(3IV) from the SoDecomposeRotation(3IV)() manual β€” go decompose something cute today, mwah πŸ’–πŸ’…βœ¨