SOCUBE(3iv)

πŸ’– SoCube β€” the cube shape node πŸ’–

okay bestie, welcome to the SoCube(3IV) page, the lil manual entry that's about to make cubes your whole personality. buckle up πŸŽ€


🌈 NAME

SoCube β€” cube shape node. yes literally just a cube. and yet. iconic.


🧬 INHERITS FROM

SoBase > SoFieldContainer > SoNode > SoShape > SoCube

it's giving royal lineage fr fr, the whole family tree showed up πŸ‘‘


✨ SYNOPSIS

#include <Inventor/nodes/SoCube.h>

Fields from class SoCube:

SoSFFloat           width
SoSFFloat           height
SoSFFloat           depth

Methods from class SoCube:

                     SoCube()
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 the whole roster, no crumbs left behind πŸ’…


🌸 DESCRIPTION

so this node? it's a cuboid aligned with the coordinate axes. that's the whole job. by default the cube is centered at (0,0,0) and measures 2 units in each dimension, going from -1 to +1. cute, symmetrical, balanced, main character energy tbh ✨

the cube gets transformed by the current cumulative transformation, and it's drawn with the current lighting model, drawing style, material, and geometric complexity. so whatever vibe the scene has going on, the cube is matching it. slay.

now listen, if the current material binding is PER_PART, PER_PART_INDEXED, PER_FACE, or PER_FACE_INDEXED, then materials get bound to the faces of the cube in this order: front, back, left, right, top, and bottom. write that order down bestie, it matters πŸ“

textures? they're applied individually to each face of the cube β€” the entire texture goes on each face, no tiling shenanigans. and the orientation is very specific, so pay attention:

  • on the front, back, right, and left sides, the texture is applied right side up. easy.
  • on the top, the texture appears right side up when the top of the cube is tilted toward the camera.
  • on the bottom, the texture appears right side up when the top of the cube is tilted away from the camera.

that's the tea. no cap πŸ«–


πŸŽ€ FIELDS

  • SoSFFloat width, SoSFFloat height, SoSFFloat depth β€” sizes in the x, y, and z dimensions, respectively. so width = x, height = y, depth = z. that's it, that's the trio πŸ¦‹

πŸ’œ METHODS

  • SoCube() β€” creates a cube node with default settings. fresh cube, default settings, ready to go ✨
  • static SoType getClassTypeId() β€” returns the type identifier for this class. it's the "who am i" of classes πŸͺͺ

πŸ”₯ ACTION BEHAVIOR

  • SoGLRenderAction β€” draws the cube based on the current coordinates, materials, drawing style, and so on. the glow-up happens here πŸ’…
  • SoRayPickAction β€” intersects the ray with the cube. the face of the cube that was picked is available from the SoCubeDetail. so you can find out which face got clicked, obsessed 😭
  • SoGetBoundingBoxAction β€” computes the bounding box that encloses the cube. wrapping it up in a lil box 🎁
  • SoCallbackAction β€” if any triangle callbacks are registered with the action, they will be invoked for each successive triangle that approximates the cube. every single one. no skipping 🧚

🌟 FILE FORMAT/DEFAULTS

Cube {
    width   2
    height  2
    depth   2
}

yes bestie, everything defaults to 2. the symmetry. the consistency. periodt πŸ’–


πŸ‘‘ SEE ALSO

SoCone, SoCubeDetail, SoCylinder, SoSphere

the whole shape squad, go read them too 🫢


okay that's the whole page!! this was the SoCube(3IV) manual, so whenever you see SoCube(3IV)() floatin' around at the bottom of a manpage, that's just this exact vibe check, documented and dated and everything πŸŒˆπŸ’– go build a cube bestie, you got this πŸŽ€