SOCOMPOSEROTATION(3iv)

✨ NAME ✨

SoComposeRotation β€” composes a rotation from axis and angle values πŸ’«


🧬 INHERITS FROM 🧬

okay so this girl comes from a whole line of ancestors, and you can trace it all the way up:

SoBase > SoFieldContainer > SoEngine > SoComposeRotation

πŸ“œ SYNOPSIS πŸ“œ

#include <Inventor/engines/SoCompose.h>

Inputs from class SoComposeRotation:

SoMFVec3f           axis
SoMFFloat           angle

Outputs from class SoComposeRotation:

(SoMFRotation)      rotation

Methods from class SoComposeRotation:

                     SoComposeRotation()

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 is literally the glow-up machine for rotations, bestie. She takes two inputs β€” an axis of rotation and a rotation angle in radians β€” and as output she composes those inputs into a rotation field. It's giving "two little ingredients, one gorgeous rotation" 🫢✨

And here's the part that's lowkey iconic: the input fields can hold multiple values, which means the engine can compose several rotations in parallel. Some inputs may have more values than others β€” and when that happens, the last value of the shorter inputs gets repeated as many times as needed. She's not gonna leave anyone hanging, she just reuses the vibe πŸ˜ŒπŸ’…


🌸 INPUTS 🌸

  • SoMFVec3f axis β€” the axis of rotation. The direction she spins around, periodt πŸŒ€
  • SoMFFloat angle β€” the angle of rotation. How much spin we're giving it πŸ“

πŸŽ€ OUTPUTS πŸŽ€

  • (SoMFRotation) rotation β€” the rotation field, defined by the inputs. That's the whole point, and she ate πŸ’…

🧚 METHODS 🧚

  • SoComposeRotation() β€” Constructor. Baby's first breath, no cap ✨

πŸ—‚οΈ FILE FORMAT/DEFAULTS πŸ—‚οΈ

Here's what she looks like when she rolls up with zero notes, defaults fully intact:

ComposeRotation {
   axis   0 0 1
   angle  0
}

πŸ‘€ SEE ALSO πŸ‘€

go read these next, iykyk:

  • SoComposeRotationFromTo
  • SoDecomposeRotation
  • SoEngineOutput

That's the whole page, bestie β€” SoComposeRotation(3IV) from the 3IV manual, straight from the SGI Open Inventor docs. Now go compose some rotations, you main character πŸ‘‘πŸ’œ