SOINFO(3iv)

πŸ’– SoInfo β€” the manual page, but make it make sense πŸ’–

okay bestie, this is SoInfo(3IV), straight from the 3IV manual section, and we're gonna get you comfy with it. no cap. πŸ¦‹


✨ NAME ✨

SoInfo β€” a node that's literally just holding an information text string. that's her whole job. iconic of her honestly. πŸ’…


🌸 INHERITS FROM 🌸

the family tree is giving royalty:

SoBase > SoFieldContainer > SoNode > SoInfo

so she gets everything from SoBase, SoFieldContainer, and SoNode too. main character with a whole lineage. πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

first things first, you gotta pull her in:

#include <Inventor/nodes/SoInfo.h>

Fields from class SoInfo:

SoSFString          string

Methods from class SoInfo:

                     SoInfo()
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(SbType type) const
virtual void         setName(const SbName &name)
virtual SbName       getName() const

πŸ’œ DESCRIPTION πŸ’œ

so like, this class defines an information node that lives in the scene graph. and here's the thing β€” it has literally no effect during traversal. she's not here to do anything. she's here to be. πŸ’€

she's used to store information in the scene graph, typically for application-specific purposes, copyright messages, or other strings. so basically a little note-to-self tucked into your scene. adorable. πŸŽ€

now, the tea: this node differs from the SoLabel node because it stores its info in an SbString instead of an SbName. and why do we care? because the SbString is more efficient for storing long strings that don't have to be accessed very often. so if your string is long and you're not checking on it constantly, SoInfo is your girl. ✨

and if you've got short strings that do get accessed a lot? use an SoLabel node instead. know the difference, bestie. πŸ’…


🌈 FIELDS 🌈

  • SoSFString string β€” defines the info string value as an SbString. that's it, that's the field. one (1) field, doing her best. 🫢

⭐ METHODS ⭐

  • SoInfo() β€” creates an info node with default settings. fresh out the box, ready to hold your random thoughts. πŸ’–
  • static SoType getClassTypeId() β€” returns the type identifier for this class. iykyk, every class has one. πŸ¦‹

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

this is what she looks like written down, and what she defaults to:

Info {
    string  "<Undefined info>"
}

so if you don't set string, she's out here literally saying "<Undefined info>". she's honest. she's transparent. she's undefining. 😭


πŸ”₯ SEE ALSO πŸ”₯

go read these next, bestie, they're the whole friend group:

  • SbString
  • SoLabel

quick vibe check: this node does nothing during traversal. if you were expecting her to render, or transform, or do literally anything visible β€” no. she is a text container and she is at peace with that. do not come for her. πŸ™ˆ

and that's the whole page, periodt. written up under the SoInfo(3IV) manual listing β€” no date stamped on it, no version drama, just her name in the corner like a little signature. πŸ’… 🌟