SOSFTRIGGER(3iv)

πŸ’– SoSFTrigger β€” the field that goes "boom, everybody wake up" πŸ’–

okay bestie, gather round, because we're about to talk about SoSFTrigger from the <Inventor/fields/SoSFTrigger.h> cinematic universe (that's manual section 3IV, iykyk). she's the queen of "just do it already" and honestly? iconic. πŸ‘‘


✨ INHERITS FROM ✨

SoField > SoSField > SoSFTrigger

the family tree is giving very much legacy royalty, no cap πŸ’…


🌸 SYNOPSIS 🌸

#include <Inventor/fields/SoSFTrigger.h>

Methods from class SoSFTrigger:

void                setValue()
void                getValue()
int                 operator ==(const SoSFTrigger &t) const
int                 operator !=(const SoSFTrigger &t) const

Methods from class SoSField:

static SoType       getClassTypeId()

Methods from class SoField:

void                setIgnored(SbBool ignore)
SbBool              isIgnored() const
SbBool              isDefault() const
virtual SoType      getTypeId() const
virtual SbBool      isOfType(SoType type) const
SbBool              set(const char *valueString)
void                get(SbString &valueString)
void                touch()
SbBool              connectFrom(SoField *fromField)
SbBool              connectFrom(SoEngineOutput *fromEngine)
void                disconnect()
SbBool              isConnected() const
SbBool              isConnectedFromField() const
SbBool              getConnectedField(SoField *&writingField) const
SbBool              isConnectedFromEngine() const
SbBool              getConnectedEngine(SoEngineOutput *&engineOutput)
                         const
void                enableConnection(SbBool flag)
SbBool              isConnectionEnabled() const
int                 getForwardConnections(SoFieldList &list) const
SoFieldContainer *  getContainer() const

πŸ¦‹ DESCRIPTION πŸ¦‹

so this class is literally the start button. you use it to kick off or sync up a whole network of field connections. 🎬

it's the "null" field β€” a field with no values. zero. zilch. she said "I don't do values, I do vibes." πŸŽ€

typically she gets used as the "start button" for engines that change over time. like, time-based engines need somebody to yell "GO" and that somebody is her.

Triggers can be connected from any other type of field, and she will notify any engines or nodes she's part of (or any other triggers she's connected to) whenever the value of the field is set β€” even if it is set to its current value β€” or the field is touch()'ed. so basically any little nudge gets a full notification rollout. she does not gatekeep. 🫢

since they have no value, SoSFTriggers are not written to file. a node or engine containing an SoSFTrigger field will write only the field's name. periodt. πŸ’…


πŸ‘‘ METHODS πŸ‘‘

  • void setValue() β€” starts the notification process; this is equivalent to calling touch(). it's the "hey bestie wake up" of method calls ✨
  • void getValue() β€” forces any connected engines or fields to evaluate themselves. like dragging everyone out of bed for a group photo πŸ“Έ
  • int operator ==(const SoSFTrigger &t) const
  • int operator !=(const SoSFTrigger &t) const

all trigger fields are equal; these methods always return TRUE and FALSE, respectively. not "usually", not "sometimes" β€” always. they have no drama, they're consistent, we love that for them πŸ’œ


🌈 SEE ALSO 🌈

SoSFBool, SoMFBool


lowkey the most emotionally stable field in the whole library and she has literally no value. not me taking notes. πŸ˜­πŸ’€

and that's the whole page bestie, from the SoSFTrigger(3IV) header energy down to the SoSFTrigger(3IV)() footer (version/date fields doing the classic empty-string slay, fr fr). now go touch() something. πŸŽ€πŸ¦‹πŸ’–