SoNodeVisualize(3)
π SoNodeVisualize(3) π β straight outta the Coin manual, section 3
okay so bestie, welcome to the SoNodeVisualize(3) page. it's giving β¨profiler annex nodekit energyβ¨ and we're gonna read the whole thing together, no skimming, no skipping. let's go π
πΈ NAME πΈ
SoNodeVisualize β the class that is, and I quote, yet to be documented. yes really. iconic mystery behavior. we still love her π«Ά
π¦ SYNOPSIS π¦
okay first things first, you gotta pull in the header, like:
#include <Inventor/annex/Profiler/nodekits/SoNodeVisualize.h>
and fun fact: she Inherits SoBaseKit. so everything SoBaseKit can do, she can do too (and SoBaseKit itself is inheriting from SoNode, SoFieldContainer and SoBase, so it's a whole chain of slay π
).
π Public Member Functions π
these are the ones that are all hers, the main character moves π
virtual SoType getTypeId (void) constβ hands you the SoType of this thing.virtual const SoNodekitCatalog * getNodekitCatalog (void) constβ gives you back the nodekit catalog pointer.SoNodeVisualize * visualize (SoNode *)β takes aSoNode *and visualizes it, returning aSoNodeVisualize *.bool clicked ()β tells you if something got clicked, as a bool.void setAlternate (bool alternating=true)β sets the alternate thing; defaults totrueif you don't pass anything.bool nodeHasChildren ()β bool answer to "does this node have children tho?"unsigned int nodeNumChildren ()β how many children, as anunsigned int.bool isAlternating () constβ are we alternating? bool, const, no notes.virtual void handleEvent (SoHandleEventAction *action)β handles an event via aSoHandleEventAction *.void traverse (SoProfilerStats *stats)β traverses, taking aSoProfilerStats *.
π§ Public Member Functions inherited from SoBaseKit π§
she didn't invent these, she just vibes with them:
SoBaseKit (void)β constructor, no args.virtual SoNode * getPart (const SbName &partname, SbBool makeifneeded)β grabs a part by name.SbString getPartString (const SoBase *part)β gives you the part string.virtual SoNodeKitPath * createPathToPart (const SbName &partname, SbBool makeifneeded, const SoPath *pathtoextend=NULL)β builds a nodekit path to a part;pathtoextenddefaults toNULL.virtual SbBool setPart (const SbName &partname, SoNode *from)β sets a part.SbBool set (const char *namevaluepairliststring)β sets from a name/value pair list string.SbBool set (const char *partnamestring, const char *parameterstring)β sets from a part name string plus a parameter string.virtual void doAction (SoAction *action)β runs the action.virtual void callback (SoCallbackAction *action)β the callback action one.virtual void GLRender (SoGLRenderAction *action)β GL render time.virtual void getBoundingBox (SoGetBoundingBoxAction *action)β bounding box action.virtual void getMatrix (SoGetMatrixAction *action)β matrix action.virtual void rayPick (SoRayPickAction *action)β ray pick action.virtual void search (SoSearchAction *action)β search action.virtual void write (SoWriteAction *action)β write action.virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)β primitive count action.virtual SoChildList * getChildren (void) constβ children list, const.void printDiagram (void)β prints the diagram.void printSubDiagram (const SbName &rootname, int level)β prints a sub-diagram from a root name and a level.void printTable (void)β prints the table.virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)β adds a write reference;isfromfielddefaults toFALSE.SbBool forceChildDrivenWriteRefs (SoOutput *out)β forces child-driven write refs.
β Public Member Functions inherited from SoNode β
void setOverride (const SbBool state)β sets the override state.SbBool isOverride (void) constβ are we overridden? const bool.void setNodeType (const NodeType type)β sets the node type.NodeType getNodeType (void) constβ gets the node type.virtual SoNode * copy (SbBool copyconnections=FALSE) constβ copies;copyconnectionsdefaults toFALSE.virtual SbBool affectsState (void) constβ does it affect state?virtual void GLRenderBelowPath (SoGLRenderAction *action)β GL render below path.virtual void GLRenderInPath (SoGLRenderAction *action)β GL render in path.virtual void GLRenderOffPath (SoGLRenderAction *action)β GL render off path.virtual void pick (SoPickAction *action)β pick action.virtual void audioRender (SoAudioRenderAction *action)β audio render action.virtual void grabEventsSetup (void)β sets up event grabbing.virtual void grabEventsCleanup (void)β cleans up event grabbing.virtual void startNotify (void)β starts notify.virtual void notify (SoNotList *l)β notifies with aSoNotList *.SbUniqueId getNodeId (void) constβ grabs the node id.virtual void writeInstance (SoOutput *out)β writes the instance.virtual SoFieldContainer * copyThroughConnection (void) constβ copies through connection.
π Public Member Functions inherited from SoFieldContainer π
void setToDefaults (void)β resets everything to defaults.SbBool hasDefaultValues (void) constβ does it have default values?SbBool fieldsAreEqual (const SoFieldContainer *container) constβ are the fields equal to another container's?void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)β copies field values;copyconnectionsdefaults toFALSE.SbBool set (const char *const fielddata)β sets from field data.void get (SbString &fielddata)β gets field data into anSbString &.virtual int getFields (SoFieldList &l) constβ fills a field list.virtual int getAllFields (SoFieldList &l) constβ fills a list with all the fields.virtual SoField * getField (const SbName &name) constβ grabs a field by name.virtual SoField * getEventIn (const SbName &name) constβ grabs an event in by name.virtual SoField * getEventOut (const SbName &name) constβ grabs an event out by name.SbBool getFieldName (const SoField *const field, SbName &name) constβ gets the name of a field.SbBool enableNotify (const SbBool flag)β toggles notify.SbBool isNotifyEnabled (void) constβ is notify on?SbBool set (const char *fielddata, SoInput *input)β sets from field data with an input.void get (SbString &fielddata, SoOutput *out)β gets field data with an output.virtual SbBool validateNewFieldValue (SoField *field, void *newval)β validates a new field value.SbBool getIsBuiltIn (void) constβ is it built in?virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) constβ reports field memory size in managed and unmanaged buckets.void setUserData (void *userdata) constβ sets user data.void * getUserData (void) constβ gets user data back.
π Public Member Functions inherited from SoBase π
void ref (void) constβ refs it up.void unref (void) constβ unrefs it.void unrefNoDelete (void) constβ unrefs without deleting.int32_t getRefCount (void) constβ how many refs we got, as anint32_t.void touch (void)β touches it.SbBool isOfType (SoType type) constβ ReturnsTRUEif the type of this object is either of the same type or inherited fromtype.virtual SbName getName (void) constβ gets the name.virtual void setName (const SbName &newname)β sets the name.void addAuditor (void *const auditor, const SoNotRec::Type type)β adds an auditor of a given type.void removeAuditor (void *const auditor, const SoNotRec::Type type)β removes that auditor.const SoAuditorList & getAuditors (void) constβ hands you the auditor list.SbBool shouldWrite (void)β should it write?void assertAlive (void) constβ asserts it's alive.
π₯ Static Public Member Functions π₯
static SoType getClassTypeId (void)β class type id, static style.static const SoNodekitCatalog * getClassNodekitCatalog (void)β the class-level nodekit catalog.static void initClass (void)β initializes the class.static void cleanClass (void)β cleans up the class.static SoNodeVisualize * visualizeTree (SoNode *node, int depth=-1)β visualizes a whole tree;depthdefaults to-1.
π Static Public Member Functions inherited from SoBaseKit π
static SoType getClassTypeId (void)β class type id.static void initClass (void)β initializes the class.static const SoNodekitCatalog * getClassNodekitCatalog (void)β the class nodekit catalog.static SbBool isSearchingChildren (void)β is it searching children?static void setSearchingChildren (const SbBool newval)β sets the searching-children flag.
π Static Public Member Functions inherited from SoNode π
static uint32_t getCompatibilityTypes (const SoType &nodetype)β compatibility types, as auint32_t.static SoType getClassTypeId (void)β class type id.static SoNode * getByName (const SbName &name)β grab a node by name.static int getByName (const SbName &name, SoNodeList &l)β grab nodes by name into a list, returns anint.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)β plural version, inits all the classes.static SbUniqueId getNextNodeId (void)β the next node id.static int getActionMethodIndex (const SoType type)β the action method index for a type.static void getBoundingBoxS (SoAction *action, SoNode *node)β static bounding box.static void GLRenderS (SoAction *action, SoNode *node)β static GL render.static void callbackS (SoAction *action, SoNode *node)β static callback.static void getMatrixS (SoAction *action, SoNode *node)β static matrix.static void handleEventS (SoAction *action, SoNode *node)β static handle event.static void pickS (SoAction *action, SoNode *node)β static pick.static void rayPickS (SoAction *action, SoNode *node)β static ray pick.static void searchS (SoAction *action, SoNode *node)β static search.static void writeS (SoAction *action, SoNode *node)β static write.static void audioRenderS (SoAction *action, SoNode *node)β static audio render.static void getPrimitiveCountS (SoAction *action, SoNode *node)β static primitive count.
π¦ 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)β cleans up the class.static void initCopyDict (void)β inits the copy dictionary.static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)β registers an original and its copy.static SoFieldContainer * checkCopy (const SoFieldContainer *orig)β checks a copy.static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)β finds a copy, with acopyconnectionsflag.static void copyDone (void)β copying is 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)β adds a name to a base.static void removeName (SoBase *const base, const char *const name)β removes that name.static void incrementCurrentWriteCounter (void)β bumps the current write counter.static void decrementCurrentWriteCounter (void)β bumps it back down.static SoBase * getNamedBase (const SbName &name, SoType type)β grabs a named base of a type.static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)β grabs named bases into a list, returns anint.static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)β reads a base.static void setInstancePrefix (const SbString &c)β sets the instance prefix.static void setTraceRefs (SbBool trace)β toggles ref tracing.static SbBool getTraceRefs (void)β are refs being traced?static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)β connects a route from one node/field to another.static SbBool readRoute (SoInput *input)β reads a route.
π§ Protected Member Functions π§
these are the backstage ones, for the class and her subclasses only, iykyk π€«
virtual const SoFieldData * getFieldData (void) constβ gets the field data.SoNodeVisualize (void)β the constructor.virtual ~SoNodeVisualize ()β the destructor.SbVec2s getWidth ()β gets the width as anSbVec2s.void setupChildCatalog (SoNode *node, int depth)β sets up the child catalog for a node at a depth.void visualizeSubTree (SoNode *node, int depth=-1)β visualizes a sub-tree;depthdefaults to-1.void recalculate ()β recalcs.SbVec2s recalculateWidth ()β recalcs the width, returnsSbVec2s.SoNodeVisualize * getSoNodeVisualizeRoot ()β gets the rootSoNodeVisualize.void internalAlternating (bool alternating, int direction)β internal alternating with a direction.void reset ()β resets.SoNodeList * getChildGeometry ()β gets the child geometry list.
πΈ Protected Member Functions inherited from SoBaseKit πΈ
virtual ~SoBaseKit ()β destructor.virtual SoNode * addToCopyDict (void) constβ adds to the copy dictionary.virtual void copyContents (const SoFieldContainer *fromfc, SbBool copyconnections)β copies contents from another field container.SoGroup * getContainerNode (const SbName &listname, SbBool makeifneeded=TRUE)β gets a container node;makeifneededdefaults toTRUE.virtual SoNode * getAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE)β gets any part;leafcheckandpubliccheckdefault toFALSE.virtual SoNodeKitPath * createPathToAnyPart (const SbName &partname, SbBool makeifneeded, SbBool leafcheck=FALSE, SbBool publiccheck=FALSE, const SoPath *pathtoextend=NULL)β builds a path to any part;leafcheckandpubliccheckdefault toFALSE,pathtoextenddefaults toNULL.virtual SbBool setAnyPart (const SbName &partname, SoNode *from, SbBool anypart=TRUE)β sets any part;anypartdefaults toTRUE.void createNodekitPartsList (void)β creates the nodekit parts list.void createFieldList (void)β creates the field list.virtual void createDefaultParts (void)β creates the default parts.const SoNodekitParts * getNodekitPartsList (void) constβ gets the nodekit parts list.const SbList< SoSFNode * > & getCatalogInstances (void) constβ gets the catalog instances list.void catalogError (void)β a catalog oopsie handler.virtual SbBool setUpConnections (SbBool onoff, SbBool doitalways=FALSE)β sets up connections;doitalwaysdefaults toFALSE.virtual SbBool readInstance (SoInput *in, unsigned short flags)β reads an instance.virtual void setDefaultOnNonWritingFields (void)β sets defaults on non-writing fields.void countMyFields (SoOutput *out)β counts my fields.virtual SbBool setPart (const int partNum, SoNode *node)β sets 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)β destroys it.SbBool hasMultipleWriteRefs (void) constβ does it have multiple write refs?SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) constβ writes the header.void writeFooter (SoOutput *out) constβ writes the footer.virtual const char * getFileFormatName (void) constβ gets the file format name.virtual SoNotRec createNotRec (void)β creates a notification record.
π₯ Static Protected Member Functions π₯
static const SoFieldData ** getFieldDataPtr (void)β pointer to the field data pointer, yes really.static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void)β pointer to the class nodekit catalog pointer.
okay bestie that's the whole SYNOPSIS section and we are not done β there's more page coming π don't go anywhere π«Ά
Static Protected Member Functions inherited from SoBaseKit
static const SoFieldData ** getFieldDataPtr (void)static const SoNodekitCatalog ** getClassNodekitCatalogPtr (void)
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
Bestie these are the internals, the behind-the-scenes girlies. All twelve of them, no skips:
SoSFNode topSeparatorSoSFNode childrenVisibleSoSFNode colorSoSFNode textureSoSFNode textureTransformSoSFNode shapeSoSFNode rotSwitchSoSFNode rotationSoSFNode childGeometrySoSFNode translationSoSFNode linesSoSFNode lineSep
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 β¨
The lore your girl carries with her from the ancestors π
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 }
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 so the SoNodeVisualize class is yet to be documented. That's it. That's the whole vibe rn. π
FIXME: write doc.
Not me reading a manual page that just says "yeah idk yet" π iconic honestly.
π Constructor & Destructor Documentation π
SoNodeVisualize::SoNodeVisualize (void ) [protected]
Constructor π
Girl, heads up: this constructor is not public, because it sets the class up in an internally inconsistent way. That's on purpose though β it's also what makes sure we don't try to analyze ourself, which, as we all know, may do strange things to our state. Very "don't look at your own reflection in the mirror at 3am" of it, lowkey.
FIXME: Should perhaps make a public constructor which takes the same parameters as visualize tree
SoNodeVisualize::~SoNodeVisualize () [protected], [virtual]
Destructor β¨ bye bestie, you slayed while you were here π«Ά
πΈ Member Function Documentation πΈ
SoType SoNodeVisualize::getClassTypeId (void ) [static]
This static method returns the SoType object associated with objects of this class. It's the "which one of the girlies are you" question, answered at compile-time-ish speed π
SoType SoNodeVisualize::getTypeId (void ) const [virtual]
Returns the type identification of an object derived from a class inheriting SoBase. This is what makes runtime type checking and "downward" casting work.
Reimplemented from SoBaseKit.
const SoFieldData ** SoNodeVisualize::getFieldDataPtr (void ) [static], [protected]
Okay so this API member is considered internal to the library β it is not likely to be of interest to the application programmer. That's not me being shady, that's literally what it says. π«£
Returns the SoFieldData class which holds information about fields in this node.
const SoFieldData * SoNodeVisualize::getFieldData (void ) const [protected], [virtual]
Returns a pointer to the class-wide field data storage object for this instance. And if there are no fields present? Returns NULL. Yes bestie, NULL. That's the whole answer, no notes. πΈ
Reimplemented from SoBaseKit.
const SoNodekitCatalog * SoNodeVisualize::getClassNodekitCatalog (void ) [static]
Returns the nodekit catalog which defines the layout of this class' kit. It's the blueprint, the floor plan, the Pinterest board π
const SoNodekitCatalog * SoNodeVisualize::getNodekitCatalog (void ) const [virtual]
Returns the nodekit catalog which defines the layout of this class' kit. (Same energy, but for this instance instead of the whole class, iykyk.)
Reimplemented from SoBaseKit.
const SoNodekitCatalog ** SoNodeVisualize::getClassNodekitCatalogPtr (void ) [static], [protected]
Returns the pointer to the pointer of the nodekit catalog for this class. Pointer to a pointer. P to the P. It's giving inception, it's giving layers, it's giving don't-touch-this-unless-you-know π
void SoNodeVisualize::initClass (void ) [static]
Standard initialization for node catalog. Do the setup, get the girl ready for the party β¨
void SoNodeVisualize::cleanClass (void ) [static]
Static cleanup. We love a girl who cleans up after herself π§Ήπ
bool SoNodeVisualize::clicked ()
Changes the state of a node with children. Click, and the whole family reacts. Very main character of it π
void SoNodeVisualize::setAlternate (bool alternate = true)
Turns on the alternating direction state for all children. Every single one of them. No child left behind π
bool SoNodeVisualize::nodeHasChildren ()
Does the associated node have any children? Yes or no, that's the whole question, very direct, we respect it β
unsigned int SoNodeVisualize::nodeNumChildren ()
Number of children of the associated node. A count. A number. A census of the little ones π¦
void SoNodeVisualize::handleEvent (SoHandleEventAction * action) [virtual]
Checks for intersection with the shape part of the node. Is somebody clicking on this? We're checking, bestie. We're always checking. π
Reimplemented from SoBaseKit.
SbVec2s SoNodeVisualize::getWidth () [protected]
Returns the size of a bounding box for this subtree. How big is the whole situation? This big. π
void SoNodeVisualize::visualizeSubTree (SoNode * node, int depth = -1) [protected]
Visualizes a subtree, stops at depth 1. (Yes, literally "stops at depth 1" β that's what it says, and I'm not about to change a manual page's mind on it, fr fr.)
If no argument given, visualizes everything. The whole tree. Every branch. The audacity. π³
β οΈ WARNING: Although the default is to visualize everything, it is recommended to set a limit on how deep you want to traverse. If you go to deep, the memory requirements, and recalculation may become so heavy it grinds to a halt. Additionally it is difficult to see, when there is too much information on the screen at once.
No cap on that warning either. Unlimited depth is not the flex you think it is β your machine will simply pass away ππ
SbVec2s SoNodeVisualize::recalculateWidth () [protected]
Calculates the size of a bounding box for this subtree. Like getWidth() but doing the math fresh, the girl is doing the work herself πͺ
SoNodeVisualize * SoNodeVisualize::getSoNodeVisualizeRoot () [protected]
Returns the uppermost connected parent. The top of the family tree. The original. The mother of the house π
void SoNodeVisualize::internalAlternating (bool alternate, int direction) [protected]
Traverses all nodes, and turns on the alternating state,
May need a recalculation afterwards π
void SoNodeVisualize::reset () [protected]
Resets the data structure in anticipation of a reanalysis.
This puts the structure in the same inconsistent state as the empty constructor. Yeah, the weird inconsistent one from earlier. It's intentional. It's a feature. It's giving controlled chaos π
π Author
Generated automatically by Doxygen for Coin from the source code. Not a human, not a bestie, just a very diligent robot who does not know how to write docs for SoNodeVisualize yet. Respect tho π
That's the whole page babes β this was Coin version 4.0.10, dated Thu Jun 25 2026 00:00:00, filed under SoNodeVisualize(3). Go visualize responsibly, and please set a depth limit, I am begging πβ¨π«Ά
π¦ 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