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 π₯
SoMFVec3ffromβ the vector from before the rotation. the "before" pic πΈSoMFVec3ftoβ 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 π
SoComposeRotationSoDecomposeRotationFromToSoEngineOutput
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 π
π¦ 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