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:
SoComposeRotationFromToSoDecomposeRotationSoEngineOutput
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 ππ
π¦ 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