SOPICKSTYLE(3iv)

SoPickStyle β€” picking style node πŸ’…

okay bestie, so this is the SoPickStyle(3IV) page, from section 3IV of the manual, and it's literally about telling your scene graph how to get picked. not "picked" like chosen for the team, picked like ray-picked. stay with me 🫢


NAME

SoPickStyle β€” the picking style node ✨


INHERITS FROM

SoBase > SoFieldContainer > SoNode > SoPickStyle

it's giving legacy. it's giving lineage. πŸ‘‘


SYNOPSIS

#include <Inventor/nodes/SoPickStyle.h>

enum Style

enum Style {
     SoPickStyle::SHAPE         Points on the surfaces of shapes may be
                                     picked
     SoPickStyle::BOUNDING_BOX  Points on the surfaces of 3D bounding
                                     boxes of shapes may be picked
     SoPickStyle::UNPICKABLE    Subsequent objects are transparent to
                                     picks
}

no cap, those three enum values are the whole personality of this node 🌈

Fields from class SoPickStyle

SoSFEnum            style

Methods from class SoPickStyle

                    SoPickStyle()
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

DESCRIPTION

so this node decides how all the geometry nodes that come after it in the scene graph get picked. the whole vibe is controlled by the style field πŸ’«

🚨 real talk: this is the only way to change the pick behavior of shapes. drawing style? complexity? all those other rendering-related properties? they have no effect on picking. none. zero. they're not even in the group chat. periodt.

FIELDS

  • SoSFEnum style β€” the picking style. that's the field, that's the whole field, she's simple and she knows what she wants πŸŽ€

METHODS

  • SoPickStyle() β€” creates a pick style node with default settings. brand new, fresh out the box, defaults intact ✨
  • static SoType getClassTypeId() β€” returns the type identifier for this class. iykyk πŸ¦‹

ACTION BEHAVIOR

  • SoRayPickAction, SoCallbackAction β€” sets the current pick style in the state. so when these actions roll through, they pick up whatever style you declared πŸ’–

FILE FORMAT/DEFAULTS

PickStyle {
     style  SHAPE
}

see that? SHAPE is the default. she ships that way. 🌸


SEE ALSO

SoComplexity, SoDrawStyle, SoRayPickAction


and that's the whole page, bestie!! 🫢 this was SoPickStyle(3IV) β€” section 3IV energy, dated right there in the footer as SoPickStyle(3IV)() β€” go forth and pick responsibly πŸ’…βœ¨πŸŽ€πŸ¦‹πŸŒˆπŸ’œ