SoWrapperKit(3)
๐ SoWrapperKit ๐ (Coin manual, section 3)
okay bestie, settle in ๐ซถ this is the SoWrapperKit(3) page from the Coin docs, and it is long, so it's split across multiple parts โ you're reading part 1 right now, and more parts are coming, so don't you dare scroll away ๐
โจ NAME โจ
SoWrapperKit โ bestie, the SoWrapperKit class is a simple kit for wrapping a transform and a subgraph. that's the whole job. iconic, focused, no notes ๐
๐ฆ SYNOPSIS ๐ฆ
#include <Inventor/nodekits/SoWrapperKit.h>
Inherits SoSeparatorKit. so yes, everything SoSeparatorKit can do, this one can do too โ it's giving inheritance, it's giving nepo baby but make it C++ ๐ธ
๐ Public Member Functions ๐
virtual SoType getTypeId (void) constโ the type-id getter, but for this instance's actual class โจvirtual const SoNodekitCatalog * getNodekitCatalog (void) constโ hands you the nodekit catalog for this instance ๐SoWrapperKit (void)โ the constructor, the origin story, the birth ๐
๐ซถ Public Member Functions inherited from SoSeparatorKit ๐ซถ
SoSeparatorKit (void)โ yep, the parent constructor ๐
๐ฆ Public Member Functions inherited from SoBaseKit ๐ฆ
SoBaseKit (void)โ grandparent constructor energy ๐virtual SoNode * getPart (const SbName &partname, SbBool makeifneeded)โ grab a part by name, and optionally make it if it isn't there yet โจSbString getPartString (const SoBase *part)โ turn a part into a string, name-wise ๐virtual SoNodeKitPath * createPathToPart (const SbName &partname, SbBool makeifneeded, const SoPath *pathtoextend=NULL)โ build a path that leads to a part ๐virtual SbBool setPart (const SbName &partname, SoNode *from)โ set a part by name ๐ซถSbBool set (const char *namevaluepairliststring)โ set stuff from a name/value pair string ๐ธSbBool set (const char *partnamestring, const char *parameterstring)โ set a part using a part-name string and a parameter string ๐virtual void doAction (SoAction *action)โ run the action ๐virtual void callback (SoCallbackAction *action)โ the callback-action hook ๐ฅvirtual void GLRender (SoGLRenderAction *action)โ render it, render it ๐virtual void getBoundingBox (SoGetBoundingBoxAction *action)โ bounding box action hook ๐ฆvirtual void getMatrix (SoGetMatrixAction *action)โ matrix action hook โญvirtual void handleEvent (SoHandleEventAction *action)โ event handling hook ๐virtual void rayPick (SoRayPickAction *action)โ ray pick hook โจvirtual void search (SoSearchAction *action)โ search action hook ๐virtual void write (SoWriteAction *action)โ write action hook ๐virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)โ primitive count action hook ๐ขvirtual SoChildList * getChildren (void) constโ the children, as a child list ๐ซถvoid printDiagram (void)โ print the diagram, very artsy of it ๐ธvoid printSubDiagram (const SbName &rootname, int level)โ print a sub-diagram starting atrootname, atlevel๐void printTable (void)โ print the table ๐virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)โ add a write reference ๐SbBool forceChildDrivenWriteRefs (SoOutput *out)โ force child-driven write refs ๐
๐ Public Member Functions inherited from SoNode ๐
void setOverride (const SbBool state)โ flip the override state โจSbBool isOverride (void) constโ is it overridden? asking for a friend ๐void setNodeType (const NodeType type)โ set the node type ๐ธNodeType getNodeType (void) constโ get the node type ๐virtual SoNode * copy (SbBool copyconnections=FALSE) constโ make a copy, optionally copying connections ๐ซถvirtual SbBool affectsState (void) constโ does it affect state? ๐virtual void GLRenderBelowPath (SoGLRenderAction *action)โ render below the path ๐ฅvirtual void GLRenderInPath (SoGLRenderAction *action)โ render in the path โญvirtual void GLRenderOffPath (SoGLRenderAction *action)โ render off the path ๐virtual void pick (SoPickAction *action)โ pick hook ๐ฏvirtual void audioRender (SoAudioRenderAction *action)โ audio render hook ๐virtual void grabEventsSetup (void)โ set up event grabbing ๐virtual void grabEventsCleanup (void)โ clean up event grabbing ๐งนvirtual void startNotify (void)โ kick off notification ๐ฃvirtual void notify (SoNotList *l)โ notify, with aSoNotList๐SbUniqueId getNodeId (void) constโ grab the node id ๐virtual void writeInstance (SoOutput *out)โ write out this instance ๐virtual SoFieldContainer * copyThroughConnection (void) constโ copy through a connection ๐ฆ
๐ธ Public Member Functions inherited from SoFieldContainer ๐ธ
void setToDefaults (void)โ reset everything to defaults ๐SbBool hasDefaultValues (void) constโ does it have all default values? โจSbBool fieldsAreEqual (const SoFieldContainer *container) constโ are the fields equal to another container's? ๐ซถvoid copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)โ copy field values over, optionally with connections ๐SbBool set (const char *const fielddata)โ set from field data ๐void get (SbString &fielddata)โ get field data into a string ๐ธvirtual int getFields (SoFieldList &l) constโ collect the fields into a list ๐virtual int getAllFields (SoFieldList &l) constโ collect all the fields into a list ๐virtual SoField * getField (const SbName &name) constโ get a field by name ๐virtual SoField * getEventIn (const SbName &name) constโ get an event-in by name ๐ฅvirtual SoField * getEventOut (const SbName &name) constโ get an event-out by name ๐คSbBool getFieldName (const SoField *const field, SbName &name) constโ look up a field's name โจSbBool enableNotify (const SbBool flag)โ turn notification on or off ๐SbBool isNotifyEnabled (void) constโ is notification enabled? ๐SbBool set (const char *fielddata, SoInput *input)โ set from field data with aSoInput๐ฅvoid get (SbString &fielddata, SoOutput *out)โ get field data with aSoOutput๐คvirtual SbBool validateNewFieldValue (SoField *field, void *newval)โ validate a new field value โSbBool getIsBuiltIn (void) constโ is it built in? ๐virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) constโ report field memory size, managed and unmanaged ๐งฎvoid setUserData (void *userdata) constโ stash some user data ๐ฆvoid * getUserData (void) constโ get that user data back out ๐
๐ Public Member Functions inherited from SoBase ๐
void ref (void) constโ bump the reference count โฌ๏ธvoid unref (void) constโ drop the reference count โฌ๏ธvoid unrefNoDelete (void) constโ drop the reference count but don't delete ๐ซint32_t getRefCount (void) constโ what's the ref count, bestie? ๐ขvoid touch (void)โ touch it, let the world know ๐SbBool isOfType (SoType type) constโ returnsTRUEif the type of this object is either of the same type or inherited from type ๐งฌvirtual SbName getName (void) constโ get the name ๐ท๏ธvirtual void setName (const SbName &newname)โ set a new name โ๏ธvoid addAuditor (void *const auditor, const SoNotRec::Type type)โ add an auditor ๐void removeAuditor (void *const auditor, const SoNotRec::Type type)โ remove an auditor ๐const SoAuditorList & getAuditors (void) constโ hand over the auditor list ๐SbBool shouldWrite (void)โ should this be written? ๐คvoid assertAlive (void) constโ assert that it's alive, dramatic but necessary ๐
๐ Static Public Member Functions ๐
static SoType getClassTypeId (void)โ the class type id, statically โจstatic const SoNodekitCatalog * getClassNodekitCatalog (void)โ the class's nodekit catalog ๐static void initClass (void)โ init the class ๐
๐ซถ Static Public Member Functions inherited from SoSeparatorKit ๐ซถ
static SoType getClassTypeId (void)โ class type id ๐ธstatic const SoNodekitCatalog * getClassNodekitCatalog (void)โ class nodekit catalog ๐static void initClass (void)โ init the class ๐
๐ฆ Static Public Member Functions inherited from SoBaseKit ๐ฆ
static SoType getClassTypeId (void)โ class type id โจstatic void initClass (void)โ init the class ๐static const SoNodekitCatalog * getClassNodekitCatalog (void)โ class nodekit catalog ๐static SbBool isSearchingChildren (void)โ is it searching children? ๐static void setSearchingChildren (const SbBool newval)โ set the searching-children flag ๐ซถ
โญ Static Public Member Functions inherited from SoNode โญ
static uint32_t getCompatibilityTypes (const SoType &nodetype)โ compatibility types for a node type ๐งฉstatic SoType getClassTypeId (void)โ class type id ๐static SoNode * getByName (const SbName &name)โ find a node by name ๐static int getByName (const SbName &name, SoNodeList &l)โ find nodes by name into a list ๐static void initClass (void)โ sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system โจstatic void initClasses (void)โ init all the classes ๐static SbUniqueId getNextNodeId (void)โ the next node id, please ๐static int getActionMethodIndex (const SoType type)โ the action method index ๐ฏstatic void getBoundingBoxS (SoAction *action, SoNode *node)โ static bounding box hook ๐ฆstatic void GLRenderS (SoAction *action, SoNode *node)โ static GL render hook ๐static void callbackS (SoAction *action, SoNode *node)โ static callback hook ๐static void getMatrixS (SoAction *action, SoNode *node)โ static matrix hook ๐งฎstatic void handleEventS (SoAction *action, SoNode *node)โ static event handling hook ๐static void pickS (SoAction *action, SoNode *node)โ static pick hook ๐ฏstatic void rayPickS (SoAction *action, SoNode *node)โ static ray pick hook โจstatic void searchS (SoAction *action, SoNode *node)โ static search hook ๐static void writeS (SoAction *action, SoNode *node)โ static write hook ๐static void audioRenderS (SoAction *action, SoNode *node)โ static audio render hook ๐static void getPrimitiveCountS (SoAction *action, SoNode *node)โ static primitive count hook ๐ข
๐ Static Public Member Functions inherited from SoFieldContainer ๐
static void initClass (void)โ sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system โจstatic SoType getClassTypeId (void)โ this static method returns theSoTypeobject associated with objects of this class ๐static void cleanupClass (void)โ clean up the class ๐งนstatic void initCopyDict (void)โ init the copy dictionary ๐static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)โ register a copy ๐ซถstatic SoFieldContainer * checkCopy (const SoFieldContainer *orig)โ check for a copy ๐static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)โ find a copy, connections and all ๐static void copyDone (void)โ copying's done, wrap it up ๐ฌ
๐ Static Public Member Functions inherited from SoBase ๐
static void initClass (void)โ sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system โจstatic SoType getClassTypeId (void)โ this static method returns theSoTypeobject associated with objects of this class ๐static void addName (SoBase *const base, const char *const name)โ add a name to a base ๐ท๏ธstatic void removeName (SoBase *const base, const char *const name)โ remove a name from a base ๐ซstatic void incrementCurrentWriteCounter (void)โ bump the current write counter โฌ๏ธstatic void decrementCurrentWriteCounter (void)โ drop the current write counter โฌ๏ธstatic SoBase * getNamedBase (const SbName &name, SoType type)โ get a named base ๐static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)โ get named bases into a base list ๐static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)โ read from input ๐ฅstatic void setInstancePrefix (const SbString &c)โ set the instance prefix ๐คstatic void setTraceRefs (SbBool trace)โ turn reference tracing on or off ๐ต๏ธstatic SbBool getTraceRefs (void)โ is reference tracing on? ๐static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)โ connect a route from one node+field to another ๐static SbBool readRoute (SoInput *input)โ read a route ๐ฅ
๐ Protected Member Functions ๐
virtual const SoFieldData * getFieldData (void) constโ the field data โจvirtual ~SoWrapperKit ()โ the destructor, protected ๐
๐ Protected Member Functions inherited from SoSeparatorKit ๐
virtual ~SoSeparatorKit ()โ destructor ๐ธvirtual void setDefaultOnNonWritingFields (void)โ set defaults on non-writing fields ๐virtual SbBool setUpConnections (SbBool onoff, SbBool doitalways=FALSE)โ set up connections, optionally always ๐ซถ
๐ฆ Protected Member Functions inherited from SoBaseKit ๐ฆ
virtual ~SoBaseKit ()โ destructor ๐virtual SoNode * addToCopyDict (void) constโ add to the copy dictionary ๐virtual void copyContents (const SoFieldContainer *fromfc, SbBool copyconnections)โ copy the contents, connections optional ๐SoGroup * getContainerNode (const SbName &listname, SbBool makeifneeded=TRUE)โ get a container node from a list name ๐virtual SoNode * getAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE)โ get any part, with leaf and public checks ๐virtual SoNodeKitPath * createPathToAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE, const SoPath *pathtoextend=NULL)โ build a path to any part ๐ค๏ธvirtual SbBool setAnyPart (const SbName &partname, SoNode *from, SbBool anypart=TRUE)โ set any part โ๏ธvoid createNodekitPartsList (void)โ create the nodekit parts list ๐void createFieldList (void)โ create the field list ๐virtual void createDefaultParts (void)โ create the default parts ๐const SoNodekitParts * getNodekitPartsList (void) constโ get the nodekit parts list โจconst SbList< SoSFNode * > & getCatalogInstances (void) constโ get the catalog instances ๐๏ธvoid catalogError (void)โ catalog error ๐จvirtual SbBool readInstance (SoInput *in, unsigned short flags)โ read an instance ๐ฅvoid countMyFields (SoOutput *out)โ count my fields ๐ขvirtual SbBool setPart (const int partNum, SoNode *node)โ set a part by number ๐
๐ Protected Member Functions inherited from SoNode ๐
SoNode (void)โ constructor ๐virtual ~SoNode ()โ destructor ๐ธ
๐ธ Protected Member Functions inherited from SoFieldContainer ๐ธ
SoFieldContainer (void)โ constructor โจvirtual ~SoFieldContainer ()โ destructor ๐
๐ Protected Member Functions inherited from SoBase ๐
SoBase (void)โ constructor ๐virtual ~SoBase ()โ destructor ๐ซถvirtual void destroy (void)โ destroy it ๐ฅSbBool hasMultipleWriteRefs (void) constโ does it have multiple write refs? ๐คSbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) constโ write the header ๐void writeFooter (SoOutput *out) constโ write the footer ๐virtual const char * getFileFormatName (void) constโ get the file format name ๐ท๏ธvirtual SoNotRec createNotRec (void)โ create a notification record ๐๏ธ
โญ Static Protected Member Functions โญ
static const SoFieldData ** getFieldDataPtr (void)โ pointer to the field data ๐static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void)โ pointer to the class nodekit catalog โจ
๐ซถ Static Protected Member Functions inherited from SoSeparatorKit ๐ซถ
static const SoFieldData ** getFieldDataPtr (void)โ pointer to the field data ๐static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void)โ pointer to the class nodekit catalog ๐
๐ Static Protected Member Functions inherited from SoBaseKit ๐
static const SoFieldData ** getFieldDataPtr (void)โ pointer to the field data ๐static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void)โ pointer to the class nodekit catalog ๐
ok bestie that's the end of part 1 ๐ธ there is more of this page coming, so hold that thought and keep reading โ we are not done yet ๐ โจ
๐ธ Static Protected Member Functions inherited from SoNode ๐ธ
static const SoFieldData ** getFieldDataPtr (void)static void setNextActionMethodIndex (int index)static int getNextActionMethodIndex (void)static void incNextActionMethodIndex (void)static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask)
๐ Static Protected Member Functions inherited from SoBase ๐
static uint32_t getCurrentWriteCounter (void)static void staticDataLock (void)static void staticDataUnlock (void)
๐ Protected Attributes ๐
SoSFNode contentsSoSFNode localTransform
Protected Attributes inherited from SoSeparatorKit
SoSFNode appearanceSoSFNode childListSoSFNode pickStyleSoSFNode texture2TransformSoSFNode topSeparatorSoSFNode transformSoSFNode units
Protected Attributes inherited from SoBaseKit
SoSFNode callbackListSoChildList * childrenSbBool connectionsSetUp
Protected Attributes inherited from SoNode
SbUniqueId uniqueId
Protected Attributes inherited from SoFieldContainer
SbBool isBuiltIn
โจ Additional Inherited Members โจ
Public Types inherited from SoSeparatorKit
enum CacheEnabled { OFF, ON, AUTO }
Public Types inherited from SoNode
enum NodeType { INVENTOR = 0x0000, VRML1 = 0x0001, VRML2 = 0x0002,
INVENTOR_1 = 0x0004, INVENTOR_2_0 = 0x0008, INVENTOR_2_1 = 0x0010,
INVENTOR_2_5 = 0x0020, INVENTOR_2_6 = 0x0040, COIN_1_0 = 0x0080,
COIN_2_0 = 0x0100, EXTENSION = 0x0200, COIN_2_2 = 0x0400, COIN_2_3 =
0x0800, COIN_2_4 = 0x1000, INVENTOR_5_0 = 0x2000, COIN_2_5 = 0x4000,
COIN_3_0 = 0x8000, INVENTOR_6_0 = 0x10000, COIN_4_0 = 0x20000 }
Public Attributes inherited from SoSeparatorKit
SoSFEnum renderCachingSoSFEnum boundingBoxCachingSoSFEnum renderCullingSoSFEnum pickCulling
Protected Types inherited from SoBase
enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }
Static Protected Attributes inherited from SoNode
static SbUniqueId nextUniqueId = 1static int nextActionMethodIndex = 0
๐ฆ Detailed Description ๐ฆ
okay bestie, listen โ the SoWrapperKit class is a simple kit for wrapping a transform and a subgraph. that's the whole vibe. it wraps. it transforms. it holds a subgraph. iconic behavior, honestly.
Nodekit structure โ new entries versus the parent class are marked with an arrow prefix, so keep an eye out for those little arrows ๐:
CLASS SoWrapperKit
-->"this"
"callbackList"
"topSeparator"
"pickStyle"
"appearance"
"units"
"transform"
"texture2Transform"
"childList"
--> "localTransform"
--> "contents"
(if you're wondering how the output formatting works, see SoBaseKit::printDiagram() โ that's where the magic lives ๐ซ)
Detailed information on catalog parts:
CLASS SoWrapperKit
PVT "this", SoWrapperKit ---
"callbackList", SoNodeKitListPart [ SoCallback, SoEventCallback ]
PVT "topSeparator", SoSeparator ---
"pickStyle", SoPickStyle ---
"appearance", SoAppearanceKit ---
"units", SoUnits ---
"transform", SoTransform ---
"texture2Transform", SoTexture2Transform ---
"childList", SoNodeKitListPart [ SoShapeKit, SoSeparatorKit ]
"localTransform", SoTransform ---
"contents", SoSeparator ---
(and for the output formatting on this one, see SoBaseKit::printTable() โ same energy, different table ๐)
๐ Constructor & Destructor Documentation ๐
SoWrapperKit::SoWrapperKit (void )
Constructor. it constructs. that's it, that's the job, and it does it beautifully ๐
SoWrapperKit::~SoWrapperKit () [protected], [virtual]
Destructor. protected, virtual, and lowkey dramatic about it.
๐ Member Function Documentation ๐
SoType SoWrapperKit::getClassTypeId (void ) [static]
This static method returns the SoType object associated with objects of this class. basically: "who am I, class edition" ๐ช
SoType SoWrapperKit::getTypeId (void ) const [virtual]
Returns the type identification of an object derived from a class inheriting SoBase. This is used for runtime type checking and "downward" casting.
Reimplemented from SoSeparatorKit.
const SoFieldData ** SoWrapperKit::getFieldDataPtr (void ) [static], [protected]
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer. (translation: not your business bestie, but we're still telling you it exists ๐ซถ)
Returns the SoFieldData class which holds information about fields in this node.
const SoFieldData * SoWrapperKit::getFieldData (void ) const [protected], [virtual]
Returns a pointer to the class-wide field data storage object for this instance. If no fields are present, returns NULL.
Reimplemented from SoSeparatorKit.
const SoNodekitCatalog * SoWrapperKit::getClassNodekitCatalog (void ) [static]
Returns the nodekit catalog which defines the layout of this class' kit. yes, the whole layout. the blueprint. the floor plan. ๐๏ธ
const SoNodekitCatalog * SoWrapperKit::getNodekitCatalog (void ) const [virtual]
Returns the nodekit catalog which defines the layout of this class' kit.
Reimplemented from SoSeparatorKit.
const SoNodekitCatalog ** SoWrapperKit::getClassNodekitCatalogPtr (void ) [static], [protected]
Returns the pointer to the pointer of the nodekit catalog for this class. double pointer moment. very meta. we love a pointer-to-pointer ๐
void SoWrapperKit::initClass (void ) [static]
๐ Author ๐
Generated automatically by Doxygen for Coin from the source code.
and that's a wrap, bestie!! ๐ this page is from Coin, version 4.0.10, and it was dated Thu Jun 25 2026 00:00:00 โ so go forth, wrap your transforms, hold your subgraphs, and slay โจ๐
๐ฆ where this page comes from
- fedora 43: Coin4-devel 4.0.10-1.fc43 ยท BSD-3-Clause AND GPL-3.0-or-later
- fedora 43: Coin4-devel 4.0.10-1.fc43 ยท BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 ยท BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 ยท BSD-3-Clause AND GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms