SOBLINKER(3iv)

✨ SoBlinker(3IV) ✨

okay bestie, gather round, because we're talking about SoBlinker from the 3IV manual β€” she's an animated cycling switch node and honestly? she's iconic πŸ’…


🌸 NAME 🌸

SoBlinker β€” animated cycling switch node πŸŽ€


πŸ¦‹ INHERITS FROM πŸ¦‹

like, the whole family tree, no cap:

SoBase > SoFieldContainer > SoNode > SoGroup > SoSwitch > SoBlinker

she got it from her ancestors, periodt.


✨ SYNOPSIS ✨

first thing you gotta do, obviously:

#include <Inventor/nodes/SoBlinker.h>

πŸ’– Fields from class SoBlinker

SoSFFloat           speed
SoSFBool            on

πŸ’œ Fields from class SoSwitch

SoSFInt32           whichChild

🌈 Methods from class SoBlinker

                    SoBlinker()
static SoType       getClassTypeId()

🫢 Methods from class SoGroup

void                addChild(SoNode *child)
void                insertChild(SoNode *child, int newChildIndex)
SoNode *            getChild(int index) const
int                 findChild(const SoNode *child) const
int                 getNumChildren() const
void                removeChild(int index)
void                removeChild(SoNode *child)
void                removeAllChildren()
void                replaceChild(int index, SoNode *newChild)
void                replaceChild(SoNode *oldChild, SoNode *newChild)

⭐ 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

πŸ’– DESCRIPTION πŸ’–

so here's the tea, bestie πŸ“

SoBlinker is derived from SoSwitch, which means she selects one of her children to traverse. but here's the main character energy: using engines connected to the realTime global field, the whichChild field gets animated over time. literally living her life on a schedule πŸ’…

if the node has only one child, whichChild toggles between SO_SWITCH_NONE and 0, which means that child gets switched on and off repeatedly. blink blink blink ✨

if the node has more than one child, they get cycled through continuously. it's giving carousel. it's giving slideshow. it's giving rotation. πŸ”₯


πŸŽ€ FIELDS πŸŽ€

  • SoSFFloat speed β€” defines the speed of the blinker, in cycles per second. yes, cycles per second. numbers, bestie. 🌸
  • SoSFBool on β€” lets applications enable or disable the blinking easily. an on/off switch for the on/off switch, very meta of her πŸ’œ

🌈 METHODS 🌈

  • SoBlinker() β€” creates a blinker node with default settings. fresh out the box, defaults intact, ready to vibe 🫢
  • static SoType getClassTypeId() β€” returns type identifier for this class. it's her ID, she's never leaving home without it πŸ‘‘

⭐ ACTION BEHAVIOR ⭐

SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoGetMatrixAction, SoHandleEventAction, SoRayPickAction, SoSearchAction

Same as for SoSwitch. that's it, that's the whole vibe. she's not doing anything new here, she's just being her ancestor. respect the lineage πŸ’€

🧚 FILE FORMAT/DEFAULTS 🧚

Blinker {
    whichChild  -1
    speed       1
    on          TRUE
}

look at those defaults. whichChild -1, speed 1, on TRUE. slay ✨


and that's the whole page, bestie β€” no notes, no skips, every single option accounted for πŸ’–

this little love letter was brought to you by the SoBlinker(3IV)() source/version tag, dated whenever it was dated, and honestly? she ate. πŸŽ€βœ¨πŸ¦‹