SOWRAPPERKIT(3iv)

πŸ’– SoWrapperKit(3IV) πŸ’–

okay bestie, sit down, hydrate, because today we're talking about SoWrapperKit from section 3IV of the manuals β€” the wrapper nodekit class, and honestly? she's giving ✨glow-up✨ energy. πŸ¦‹


🌸 NAME 🌸

SoWrapperKit β€” the wrapper nodekit class. that's it, that's the name, she's literally just a little kit that wraps stuff. iconic. πŸ’…


🧬 INHERITS FROM 🧬

the family tree is long, bestie, buckle up:

SoBase > SoFieldContainer > SoNode > SoBaseKit > SoSeparatorKit > SoWrapperKit

so yeah, she comes from a whole dynasty. royalty, basically. πŸ‘‘


πŸ“œ SYNOPSIS πŸ“œ

first things first, you gotta let the compiler know she exists:

#include <Inventor/nodekits/SoWrapperKit.h>

✨ Fields from class SoSeparatorKit ✨

SoSFEnum            renderCaching
SoSFEnum            boundingBoxCaching
SoSFEnum            renderCulling
SoSFEnum            pickCulling

πŸŽ€ Parts from class SoWrapperKit πŸŽ€

(SoTransform)       localTransform
(SoSeparator)       contents

🧚 Parts from class SoSeparatorKit 🧚

(SoPickStyle)          pickStyle
(SoAppearanceKit)      appearance
(SoUnits)              units
(SoTransform)          transform
(SoTexture2Transform)  texture2Transform
(SoNodeKitListPart)    childList

🌈 Parts from class SoBaseKit 🌈

(SoNodeKitListPart)  callbackList

πŸ’œ Methods from class SoWrapperKit πŸ’œ

                     SoWrapperKit()
static const SoNodekitCatalog *
                     getClassNodekitCatalog() const
static SoType        getClassTypeId()

🫢 Methods from class SoBaseKit 🫢

virtual const SoNodekitCatalog *
                          getNodekitCatalog() const
virtual SoNode *          getPart(const SbName &partName, SbBool
                               makeIfNeeded)
SbString                  getPartString(const SoBase *part)
virtual SoNodeKitPath *   createPathToPart(const SbName &partName, SbBool
                               makeIfNeeded, const SoPath *pathToExtend =
                               NULL)
virtual SbBool            setPart(const SbName &partName, SoNode *newPart)
SbBool                    set(char *partName, char *parameters)
SbBool                    set(char *nameValuePairs)
static SbBool             isSearchingChildren()
static void               setSearchingChildren(SbBool newVal)

🌟 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)
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

πŸ”₯ Macros from class SoBaseKit πŸ”₯

SO_GET_PART(kit, partName, partClass)
SO_CHECK_PART(kit, partName, partClass)

πŸ’« DESCRIPTION πŸ’«

so. SoWrapperKit is derived from SoSeparatorKit, right? and what she adds β€” her whole main character moment β€” is the capability to wrap an arbitrary scene graph (non-nodekit, so like, the messy kind) within an SoSeparatorKit, so that it may be used along with other shape kits in a hierarchy. no cap. 🫢

there are two additional parts included in SoWrapperKit: localTransform and contents.

the part contents is an SoSeparator node beneath which any arbitrary scene graph can be added. this is especially useful for importing scene graphs of unknown structure (non-nodekits) into nodekit format. it's giving "let me translate your chaos into my aesthetic". πŸ’…

and since an SoWrapperKit is a class descended from SoSeparatorKit, it may be put into another SoSeparatorKit's childList. she's social like that. she fits in. πŸ¦‹


🧩 PARTS 🧩

  • (SoTransform) localTransform β€” this part is an SoTransform node that is used to affect the scene graph defined in the contents part. this part is NULL by default and is automatically created if requested. she's lowkey shy until you ask. πŸ™ˆ
  • (SoSeparator) contents β€” this part is an SoSeparator node that contains a user-supplied scene graph. this scene graph can contain any nodes. this part is NULL by default and an SoSeparator is automatically created if the user asks the nodekit to build the part. so she will show up, she's just waiting on you, bestie. ✨

πŸ› οΈ METHODS πŸ› οΈ

  • SoWrapperKit() β€” Constructor. the birth. the origin story. ⭐
  • static const SoNodekitCatalog * getClassNodekitCatalog() const β€” returns an SoNodekitCatalog for the class SoWrapperKit. it's the blueprint, the vibe check, the whole layout. πŸ’–
  • static SoType getClassTypeId() β€” returns the type identifier for this class. her ID card, fr fr. πŸŽ€

πŸ“š CATALOG PARTS πŸ“š

πŸ‘‘ All parts πŸ‘‘

every single one, and yes they're all NULL by default. all of them. periodt.

  • callbackList β€” part type NodeKitListPart, default type --, NULL by default: yes
  • pickStyle β€” part type PickStyle, default type --, NULL by default: yes
  • appearance β€” part type AppearanceKit, default type --, NULL by default: yes
  • units β€” part type Units, default type --, NULL by default: yes
  • transform β€” part type Transform, default type --, NULL by default: yes
  • texture2Transform β€” part type Texture2Transform, default type --, NULL by default: yes
  • childList β€” part type NodeKitListPart, default type --, NULL by default: yes
  • localTransform β€” part type Transform, default type --, NULL by default: yes
  • contents β€” part type Separator, default type --, NULL by default: yes

🌈 Extra information for list parts from the table above 🌈

the tea on the list parts specifically:

  • callbackList β€” container type: Separator, permissible types: Callback, EventCallback
  • childList β€” container type: Separator, permissible types: ShapeKit, SeparatorKit

πŸ“„ FILE FORMAT/DEFAULTS πŸ“„

here's exactly what she looks like on paper, don't change a single character:

WrapperKit {
   renderCaching       AUTO
   boundingBoxCaching  AUTO
   renderCulling       AUTO
   pickCulling         AUTO
   callbackList        NULL
   pickStyle           NULL
   appearance          NULL
   units               NULL
   transform           NULL
   texture2Transform   NULL
   childList           NULL
   localTransform      NULL
   contents            NULL
}

πŸ‘€ SEE ALSO πŸ‘€

go read these too, they're all in the friend group:

SoAppearanceKit, SoBaseKit, SoCameraKit, SoLightKit, SoNodeKit, SoNodeKitDetail, SoNodeKitListPart, SoNodeKitPath, SoNodekitCatalog, SoSceneKit, SoSeparatorKit, SoShapeKit


πŸ’€ reminder bestie: localTransform and contents are both NULL by default, and localTransform only gets auto-created if requested. don't come for me when your scene graph does nothing because you never asked her to build the part. 😭

and that's the whole page, no notes, you ate that. 🫢✨

SoWrapperKit(3IV) β€” that's the manual name, section 3IV, and this is the page footer energy: source SoWrapperKit(3IV), version tag (3IV)(), and no date listed on the page itself. byeee, go wrap something πŸ’…πŸŽ€πŸ¦‹