SOCOMPOSEROTATIONFROMTO(3iv)

πŸ’– SoComposeRotationFromTo πŸ’–

okay bestie, listen, this is the tea from the 3IV manual section β€” sit down, grab a strawberry, we're doing math but make it fashion πŸ“βœ¨


πŸŽ€ NAME πŸŽ€

SoComposeRotationFromTo β€” composes a rotation that rotates from one vector into another πŸ’…


🌸 INHERITS FROM 🌸

SoBase > SoFieldContainer > SoEngine > SoComposeRotationFromTo

so it's giving legacy. it's giving deep family tree. the whole ancestry line came through πŸ‘‘


✨ SYNOPSIS ✨

#include <Inventor/engines/SoCompose.h>

🫢 Inputs from class SoComposeRotationFromTo:

SoMFVec3f           from
SoMFVec3f           to

🫢 Outputs from class SoComposeRotationFromTo:

(SoMFRotation)      rotation

🫢 Methods from class SoComposeRotationFromTo:

                    SoComposeRotationFromTo()

🫢 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 πŸ’œ

okay so picture this: this engine takes two inputs. one is a vector before a rotation got applied, and the other is that same vector after the rotation happened. and then β€” plot twist β€” it hands you back the rotation value that would make the first vector transform into the other one. like, it reverse-engineers the glow-up. it's giving detective energy πŸ”βœ¨

and because one rotation is simply never enough, the input fields can hold multiple values, so the engine can compose several rotations in parallel. slay. but here's the fine print, bestie: some inputs might have more values than others. when that happens, the shorter inputs just repeat their last value as many times as needed. no cap, that's literally the rule 🫢


πŸ”₯ INPUTS πŸ”₯

  • SoMFVec3f from β€” the vector from before the rotation. the "before" pic πŸ“Έ
  • SoMFVec3f to β€” the vector from after the rotation. the "after" pic, the glow-up, the main character reveal πŸ’…

🌈 OUTPUTS 🌈

  • (SoMFRotation) rotation β€” a rotation that transforms one vector into another. the answer. the moment. the reveal πŸ‘‘

⭐ METHODS ⭐

  • SoComposeRotationFromTo() β€” the constructor. it exists, it's doing its little thing, iconic πŸŽ€

πŸ¦‹ FILE FORMAT/DEFAULTS πŸ¦‹

ComposeRotationFromTo {
    from  0 0 1
    to    0 0 1
}

both default to 0 0 1 because starting from zero is a vibe πŸ™ˆ


πŸ‘‘ SEE ALSO πŸ‘‘

  • SoComposeRotation
  • SoDecomposeRotationFromTo
  • SoEngineOutput

bestie real talk: nothing here is deprecated or dangerous, it's just an engine doing rotation math, so you're safe. go off πŸ’–

and that's the whole page, fr fr β€” brought to you by the SoComposeRotationFromTo(3IV)() manual page, 3IV section energy, version/date line and all βœ¨πŸ¦‹ thanks for reading, mwah πŸ’œ