---
name: "SoProfilerStats"
section: "3"
platform: "linux"
package: "coin"
version: "1:4.0.10-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SoProfilerStats"
---

# SoProfilerStats(3)

The SoProfilerStats class is a node for exposing profiling results gathered by SoProfilerElement.

## NAME

SoProfilerStats - The **SoProfilerStats** class is a node for exposing profiling results gathered by **SoProfilerElement.**

## SYNOPSIS

\#include \<Inventor/annex/Profiler/nodes/SoProfilerStats.h\>

**Inherits SoNode.**

### Public Member Functions

virtual **SoType** **getTypeId** (void) const\
 **SoProfilerStats** (void)\
 virtual void **GLRender** (**SoGLRenderAction** \*action)\
 virtual void **handleEvent** (**SoHandleEventAction** \*action)\
 virtual void **rayPick** (**SoRayPickAction** \*action)\
 virtual void **getBoundingBox** (**SoGetBoundingBoxAction** \*action)\
 virtual void **getPrimitiveCount** (**SoGetPrimitiveCountAction** \*action)\
 virtual void **audioRender** (**SoAudioRenderAction** \*action)\
 virtual void **callback** (**SoCallbackAction** \*action)\
 virtual void **getMatrix** (**SoGetMatrixAction** \*action)\
 virtual void **pick** (**SoPickAction** \*action)\
 virtual void **search** (**SoSearchAction** \*action)\
 virtual void **write** (**SoWriteAction** \*action)\
 const **SbProfilingData** & **getProfilingData** (**SoType** actiontype) const\

**Public Member Functions inherited from SoNode** void **setOverride** (const SbBool state)\
 SbBool **isOverride** (void) const\
 void **setNodeType** (const **NodeType** type)\
 **NodeType** **getNodeType** (void) const\
 virtual **SoNode** \* **copy** (SbBool copyconnections=FALSE) const\
 virtual SbBool **affectsState** (void) const\
 virtual void **doAction** (**SoAction** \*action)\
 virtual void **GLRenderBelowPath** (**SoGLRenderAction** \*action)\
 virtual void **GLRenderInPath** (**SoGLRenderAction** \*action)\
 virtual void **GLRenderOffPath** (**SoGLRenderAction** \*action)\
 virtual void **grabEventsSetup** (void)\
 virtual void **grabEventsCleanup** (void)\
 virtual void **startNotify** (void)\
 SbUniqueId **getNodeId** (void) const\
 virtual **SoChildList** \* **getChildren** (void) const\
 virtual void **writeInstance** (**SoOutput** \*out)\
 virtual **SoNode** \* **addToCopyDict** (void) const\
 virtual void **copyContents** (const **SoFieldContainer** \*from, SbBool copyconnections)\
 virtual **SoFieldContainer** \* **copyThroughConnection** (void) const\

**Public Member Functions inherited from SoFieldContainer** void **setToDefaults** (void)\
 SbBool **hasDefaultValues** (void) const\
 SbBool **fieldsAreEqual** (const **SoFieldContainer** \*container) const\
 void **copyFieldValues** (const **SoFieldContainer** \*container, SbBool copyconnections=FALSE)\
 SbBool **set** (const char \*const fielddata)\
 void **get** (**SbString** &fielddata)\
 virtual int **getFields** (**SoFieldList** &l) const\
 virtual int **getAllFields** (**SoFieldList** &l) const\
 virtual **SoField** \* **getField** (const **SbName** &name) const\
 virtual **SoField** \* **getEventIn** (const **SbName** &name) const\
 virtual **SoField** \* **getEventOut** (const **SbName** &name) const\
 SbBool **getFieldName** (const **SoField** \*const field, **SbName** &name) const\
 SbBool **enableNotify** (const SbBool flag)\
 SbBool **isNotifyEnabled** (void) const\
 SbBool **set** (const char \*fielddata, **SoInput** \*input)\
 void **get** (**SbString** &fielddata, **SoOutput** \*out)\
 virtual SbBool **validateNewFieldValue** (**SoField** \*field, void \*newval)\
 virtual void **addWriteReference** (**SoOutput** \*out, SbBool isfromfield=FALSE)\
 SbBool **getIsBuiltIn** (void) const\
 virtual void **getFieldsMemorySize** (size\_t &managed, size\_t &unmanaged) const\
 void **setUserData** (void \*userdata) const\
 void \* **getUserData** (void) const\

**Public Member Functions inherited from SoBase** void **ref** (void) const\
 void **unref** (void) const\
 void **unrefNoDelete** (void) const\
 int32\_t **getRefCount** (void) const\
 void **touch** (void)\
 SbBool **isOfType** (**SoType** type) const\
 Returns TRUE if the type of this object is either of the same type or inherited from *type*.  virtual **SbName** **getName** (void) const\
 virtual void **setName** (const **SbName** &newname)\
 void **addAuditor** (void \*const auditor, const **SoNotRec::Type** type)\
 void **removeAuditor** (void \*const auditor, const **SoNotRec::Type** type)\
 const **SoAuditorList** & **getAuditors** (void) const\
 SbBool **shouldWrite** (void)\
 void **assertAlive** (void) const\

### Static Public Member Functions

static **SoType** **getClassTypeId** (void)\
 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 Public Member Functions inherited from SoNode** static uint32\_t **getCompatibilityTypes** (const **SoType** &nodetype)\
 static **SoType** **getClassTypeId** (void)\
 static **SoNode** \* **getByName** (const **SbName** &name)\
 static int **getByName** (const **SbName** &name, **SoNodeList** &l)\
 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)\
 static SbUniqueId **getNextNodeId** (void)\
 static int **getActionMethodIndex** (const **SoType** type)\
 static void **getBoundingBoxS** (**SoAction** \*action, **SoNode** \*node)\
 static void **GLRenderS** (**SoAction** \*action, **SoNode** \*node)\
 static void **callbackS** (**SoAction** \*action, **SoNode** \*node)\
 static void **getMatrixS** (**SoAction** \*action, **SoNode** \*node)\
 static void **handleEventS** (**SoAction** \*action, **SoNode** \*node)\
 static void **pickS** (**SoAction** \*action, **SoNode** \*node)\
 static void **rayPickS** (**SoAction** \*action, **SoNode** \*node)\
 static void **searchS** (**SoAction** \*action, **SoNode** \*node)\
 static void **writeS** (**SoAction** \*action, **SoNode** \*node)\
 static void **audioRenderS** (**SoAction** \*action, **SoNode** \*node)\
 static void **getPrimitiveCountS** (**SoAction** \*action, **SoNode** \*node)\

**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 the **SoType** object associated with objects of this class.     static void **cleanupClass** (void)\
 static void **initCopyDict** (void)\
 static void **addCopy** (const **SoFieldContainer** \*orig, const **SoFieldContainer** \*copy)\
 static **SoFieldContainer** \* **checkCopy** (const **SoFieldContainer** \*orig)\
 static **SoFieldContainer** \* **findCopy** (const **SoFieldContainer** \*orig, const SbBool copyconnections)\
 static void **copyDone** (void)\

**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 the **SoType** object associated with objects of this class.  static void **addName** (**SoBase** \*const base, const char \*const name)\
 static void **removeName** (**SoBase** \*const base, const char \*const name)\
 static void **incrementCurrentWriteCounter** (void)\
 static void **decrementCurrentWriteCounter** (void)\
 static **SoBase** \* **getNamedBase** (const **SbName** &name, **SoType** type)\
 static int **getNamedBases** (const **SbName** &name, **SoBaseList** &baselist, **SoType** type)\
 static SbBool **read** (**SoInput** \*input, **SoBase** \*&base, **SoType** expectedtype)\
 static void **setInstancePrefix** (const **SbString** &c)\
 static void **setTraceRefs** (SbBool trace)\
 static SbBool **getTraceRefs** (void)\
 static SbBool **connectRoute** (**SoInput** \*input, const **SbName** &fromnodename, const **SbName** &fromfieldname, const **SbName** &tonodename, const **SbName** &tofieldname)\
 static SbBool **readRoute** (**SoInput** \*input)\

### Public Attributes

**SoMFName** **renderedNodeType**\
 **SoMFTime** **renderingTimePerNodeType**\
 **SoMFTime** **renderingTimeMaxPerNodeType**\
 **SoMFUInt32** **renderedNodeTypeCount**\
 **SoMFName** **profiledAction**\
 **SoMFTime** **profiledActionTime**\
 **SoMFNode** **separatorsCullRoots**\
 **SoSFTrigger** **profilingUpdate**\

### Protected Member Functions

virtual const **SoFieldData** \* **getFieldData** (void) const\
 virtual **~SoProfilerStats** ()\
 virtual void **notify** (**SoNotList** \*l)\

**Protected Member Functions inherited from SoNode** **SoNode** (void)\
 virtual **~SoNode** ()\
 virtual SbBool **readInstance** (**SoInput** \*in, unsigned short flags)\

**Protected Member Functions inherited from SoFieldContainer** **SoFieldContainer** (void)\
 virtual **~SoFieldContainer** ()\

**Protected Member Functions inherited from SoBase** **SoBase** (void)\
 virtual **~SoBase** ()\
 virtual void **destroy** (void)\
 SbBool **hasMultipleWriteRefs** (void) const\
 SbBool **writeHeader** (**SoOutput** \*out, SbBool isgroup, SbBool isengine) const\
 void **writeFooter** (**SoOutput** \*out) const\
 virtual const char \* **getFileFormatName** (void) const\
 virtual **SoNotRec** **createNotRec** (void)\

### Static Protected Member Functions

static const **SoFieldData** \*\* **getFieldDataPtr** (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)\

### Additional Inherited Members

**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 }\

**Protected Attributes inherited from SoNode** SbUniqueId **uniqueId**\

**Protected Attributes inherited from SoFieldContainer** SbBool **isBuiltIn**\

**Static Protected Attributes inherited from SoNode** static SbUniqueId **nextUniqueId** = 1\
 static int **nextActionMethodIndex** = 0\

## Detailed Description

**The SoProfilerStats class is a node for exposing profiling results gathered by SoProfilerElement.**

**TODO: Describe functionality and provide usage example.**

**See also**

**SoProfilerElement**

## Constructor & Destructor Documentation

### SoProfilerStats::SoProfilerStats (void )

**Constructor**

### SoProfilerStats::~SoProfilerStats () \[protected\], \[virtual\]

**Destructor**

## Member Function Documentation

### SoType SoProfilerStats::getClassTypeId (void ) \[static\]

**This static method returns the SoType object associated with objects of this class.**

### SoType SoProfilerStats::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.**

**Implements SoBase.**

### const SoFieldData \*\* SoProfilerStats::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.*\

 **Returns the SoFieldData class which holds information about fields in this node.**

### const SoFieldData \* SoProfilerStats::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 SoFieldContainer.**

### void SoProfilerStats::GLRender (SoGLRenderAction \* action) \[virtual\]

**Action method for the SoGLRenderAction.**

**This is called during rendering traversals. Nodes influencing the rendering state in any way or want to throw geometry primitives at OpenGL override this method.**

**Reimplemented from SoNode.**

### void SoProfilerStats::handleEvent (SoHandleEventAction \* action) \[virtual\]

**Action method for SoHandleEventAction.**

**Inspects the event data from** *action***, and processes it if it is something which this node should react to.**

**Nodes influencing relevant state variables for how event handling is done also override this method.**

**Reimplemented from SoNode.**

### void SoProfilerStats::rayPick (SoRayPickAction \* action) \[virtual\]

**Action method for SoRayPickAction.**

**Checks the ray specification of the** *action* **and tests for intersection with the data of the node.**

**Nodes influencing relevant state variables for how picking is done also override this method.**

**Reimplemented from SoNode.**

### void SoProfilerStats::getBoundingBox (SoGetBoundingBoxAction \* action) \[virtual\]

**Action method for the SoGetBoundingBoxAction.**

**Calculates bounding box and center coordinates for node and modifies the values of the** *action* **to encompass the bounding box for this node and to shift the center point for the scene more towards the one for this node.**

**Nodes influencing how geometry nodes calculate their bounding box also override this method to change the relevant state variables.**

**Reimplemented from SoNode.**

### void SoProfilerStats::getPrimitiveCount (SoGetPrimitiveCountAction \* action) \[virtual\]

**Action method for the SoGetPrimitiveCountAction.**

**Calculates the number of triangle, line segment and point primitives for the node and adds these to the counters of the** *action***.**

**Nodes influencing how geometry nodes calculate their primitive count also override this method to change the relevant state variables.**

**Reimplemented from SoNode.**

### void SoProfilerStats::audioRender (SoAudioRenderAction \* action) \[virtual\]

**Action method for SoAudioRenderAction.**

**Does common processing for SoAudioRenderAction** *action* **instances.**

**Reimplemented from SoNode.**

### void SoProfilerStats::callback (SoCallbackAction \* action) \[virtual\]

**Action method for SoCallbackAction.**

**Simply updates the state according to how the node behaves for the render action, so the application programmer can use the SoCallbackAction for extracting information about the scene graph.**

**Reimplemented from SoNode.**

### void SoProfilerStats::getMatrix (SoGetMatrixAction \* action) \[virtual\]

**Action method for SoGetMatrixAction.**

**Updates** *action* **by accumulating with the transformation matrix of this node (if any).**

**Reimplemented from SoNode.**

### void SoProfilerStats::pick (SoPickAction \* action) \[virtual\]

**Action method for SoPickAction.**

**Does common processing for SoPickAction** *action* **instances.**

**Reimplemented from SoNode.**

### void SoProfilerStats::search (SoSearchAction \* action) \[virtual\]

**Action method for SoSearchAction.**

**Compares the search criteria from the** *action* **to see if this node is a match. Searching is done by matching up** *all* **criteria set up in the SoSearchAction -- if** *any* **of the requested criteria is a miss, the search is not deemed successful for the node.**

**See also**

**SoSearchAction**

**Reimplemented from SoNode.**

### void SoProfilerStats::write (SoWriteAction \* action) \[virtual\]

**Action method for SoWriteAction.**

**Writes out a node object, and any connected nodes, engines etc, if necessary.**

**Reimplemented from SoNode.**

### void SoProfilerStats::notify (SoNotList \* l) \[protected\], \[virtual\]

**Notifies all auditors for this instance when changes are made.**

**Reimplemented from SoNode.**

## Member Data Documentation

### SoMFName SoProfilerStats::renderedNodeType

**Name of types traversed during the current render traversal.**

**This field is tightly connected to the** *renderingTimePerNodeType* **field as it will contain the same number of elements, and each value in** *renderingTimePerNodeType* **matches the node type with the same index in this field.**

**See also**

**SoProfilerStats::renderingTimePerNodeType**

### SoMFTime SoProfilerStats::renderingTimePerNodeType

**Time spent, during the current render traversal, per node type.**

**This field is tightly connected to the** *renderedNodeType* **field as it will contain the same number of elements, and each value in this field matches the node type with the same index in** *renderedNodeType***.**

**See also**

**SoProfilerStats::renderedNodeType**

## Author

**Generated automatically by Doxygen for Coin from the source code.**
