SOROTATIONXYZ(3iv)

✨ SoRotationXYZ(3IV) ✨

okay bestie, sit down, hydrate, because today we're talking about SoRotationXYZ from the (3IV) manual β€” it's a node that represents a 3D rotation about the x-, y-, or z-axis and honestly? she's simple, she's elegant, she rotates. πŸ’…


πŸ¦‹ NAME πŸ¦‹

SoRotationXYZ β€” a node representing a 3D rotation about the x-, y-, or z-axis. that's it, that's the whole gig, and she does it flawlessly. periodt. πŸ‘‘


🌸 INHERITS FROM 🌸

SoBase > SoFieldContainer > SoNode > SoTransformation > SoRotationXYZ

look at that lineage. five generations of iconic behavior. she got it from her mamas. πŸ’–


πŸŽ€ SYNOPSIS πŸŽ€

#include <Inventor/nodes/SoRotationXYZ.h>

enum Axis {
     SoRotationXYZ::X    The x-axis
     SoRotationXYZ::Y    The y-axis
     SoRotationXYZ::Z    The z-axis
}

Fields from class SoRotationXYZ:

SoSFEnum            axis
SoSFFloat           angle

Methods from class SoRotationXYZ:

                    SoRotationXYZ()
SbRotation          getRotation() const
static SoType       getClassTypeId()

Methods from class SoNode:

void                setOverride(SbBool state)
SbBool              isOverride() const
SoNode *            copy(SbBool copyConnections = FALSE) const
virtual SbBool      affectsState() const
static SoNode *     getByName(const SbName &name)
static int          getByName(const SbName &name, SoNodeList &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

like… that's a LOT of inherited methods and she earned every single one. no cap. 🌈


πŸ’– DESCRIPTION πŸ’–

so basically? this node defines a 3D rotation about one of the three principal axes. one of the three principal axes, bestie, not a random vibe axis.

and the way it works is: the rotation gets accumulated into the current transformation, which is then applied to all the subsequent shapes. it's giving "everything after me is gonna be rotated, and that's on periodt." ✨


🫢 FIELDS 🫢

  • SoSFEnum axis β€” the rotation axis. which way are we spinning, queen? pick your lane. πŸŒ€
  • SoSFFloat angle β€” the rotation angle, measured in radians, using the right-hand rule. yes, radians. not degrees. i know. i know. it's fine. right-hand rule, no arguments, that's the law. βœ‹

πŸ’… METHODS πŸ’…

  • SoRotationXYZ() β€” creates a rotation node with default settings. a fresh baby rotation node, unrotated, innocent, ready to be somebody. πŸŽ€
  • SbRotation getRotation() const β€” returns an SbRotation that's equivalent to the rotation you specified. same rotation, different packaging, slay. πŸ¦‹
  • static SoType getClassTypeId() β€” returns the type identifier for this class. her little ID card. πŸ‘‘

πŸ”₯ ACTION BEHAVIOR πŸ”₯

SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction

  • accumulates the rotation transformation into the current transformation. all four of them. same energy, same glow-up. ✨

SoGetMatrixAction

  • returns the matrix corresponding to the rotation. she said "here's your matrix bestie" and handed it over. πŸ’œ

πŸ“ FILE FORMAT/DEFAULTS πŸ“

RotationXYZ {
     axis   X
     angle  0
}

so out of the box: axis is X, angle is 0. she's not rotating yet. she's resting. main character pre-transformation era. 😌


⭐ SEE ALSO ⭐

  • SoRotation
  • SoTransform

go read those too, they're her cousins, they're also iconic, iykyk. πŸ’–


bestie reminder: angle is in radians. i'm not gonna bring it up again. (i will bring it up again.)

mwah πŸ’‹ and that's the whole page β€” this was SoRotationXYZ(3IV), straight from the SoRotationXYZ(3IV) manual, dated with that lil empty date field, so like, timeless, ageless, eternal. she doesn't need a timestamp. she's forever. 🌈✨πŸ’