SOPATHSWITCH(3iv)

🌸 NAME 🌸

SoPathSwitch(3IV) β€” group node that traverses only when traversed along a given path. πŸ’–

πŸ¦‹ INHERITS FROM πŸ¦‹

SoBase > SoFieldContainer > SoNode > SoGroup > SoPathSwitch

✨ SYNOPSIS ✨

okay bestie, here's the whole synopsis, no skips, no cap:

       #include <Inventor/nodes/SoPathSwitch.h>

          Fields from class SoPathSwitch:

     SoSFPath            path

          Methods from class SoPathSwitch:

                         SoPathSwitch()
                         SoPathSwitch(int nChildren)
     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 πŸ’…

okay so bestie, SoPathSwitch is a group node that only traverses its children when the current traversal path matches the SoPath sitting in the path field. It's giving "only one instance of a subgraph gets affected" energy. ✨

The path field holds the path up to β€” but not including β€” the SoPathSwitch. The path does not have to go all the way back to the root; if it doesn't, then only the number of ancestors that are in the path get compared to decide whether the children should be traversed. 🧚

a NULL path means the children are never traversed. πŸ’€ periodt.

πŸŽ€ FIELDS πŸŽ€

  • SoSFPath path β€” the path that must match the current traversal path. 🌸

πŸ‘‘ METHODS πŸ‘‘

  • SoPathSwitch() β€” creates a path switch node with default settings. 🫢
  • SoPathSwitch(int nChildren) β€” constructor that takes approximate number of children. 🧚
  • static SoType getClassTypeId() β€” returns type identifier for this class. πŸ’œ

<orange>πŸ”₯ ACTION BEHAVIOR πŸ”₯</orange>

  • SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction, SoHandleEventAction β€” traverses the children if the paths match. πŸ‘‘

🌈 FILE FORMAT/DEFAULTS 🌈

PathSwitch {
   path  NULL
}

⭐ SEE ALSO ⭐

  • SoPath
  • SoSwitch

SoPathSwitch(3IV)() β€” that's the footer, bestie. No extra date or version stamp, just the manual name, and honestly? iconic. πŸ’…βœ¨