---
name: "SbProfilingData"
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/SbProfilingData"
---

# SbProfilingData(3)

Data structure for gathering scene graph traversal profiling information.

## NAME

SbProfilingData - Data structure for gathering scene graph traversal profiling information.

## SYNOPSIS

\#include \<Inventor/annex/SbProfilingData.h\>

### Public Types

enum **FootprintType** { **MEMORY\_SIZE**, **VIDEO\_MEMORY\_SIZE** }\
 enum **NodeFlag** { **GL\_CACHED\_FLAG**, **CULLED\_FLAG** }\
 enum **NodeDataQueryFlags** { **INCLUDE\_CHILDREN** = 0x01 }\
 typedef void **SbProfilingDataCB**(void \*userdata, const **SbProfilingData** &data, const **SbList**\< **SoNode** \* \> &pointers, **SbList**\< int \> &childindices, int idx)\

### Public Member Functions

**SbProfilingData** (void)\
 **SbProfilingData** (const **SbProfilingData** &rhs)\
 **~SbProfilingData** (void)\
 void **setActionType** (**SoType** actiontype)\
 **SoType** **getActionType** (void) const\
 void **setActionStartTime** (**SbTime** starttime)\
 **SbTime** **getActionStartTime** (void) const\
 void **setActionStopTime** (**SbTime** stoptime)\
 **SbTime** **getActionStopTime** (void) const\
 **SbTime** **getActionDuration** (void) const\
 void **setNodeTiming** (const **SoPath** \*path, **SbTime** timing)\
 void **setNodeTiming** (int idx, **SbTime** timing)\
 void **preOffsetNodeTiming** (int idx, **SbTime** timing)\
 **SbTime** **getNodeTiming** (const **SoPath** \*path, unsigned int queryflags=0) const\
 **SbTime** **getNodeTiming** (int idx, unsigned int queryflags=0) const\
 void **setNodeFootprint** (const **SoPath** \*path, FootprintType type, size\_t footprint)\
 void **setNodeFootprint** (int idx, FootprintType type, size\_t footprint)\
 size\_t **getNodeFootprint** (const **SoPath** \*path, FootprintType type, unsigned int queryflags=0) const\
 size\_t **getNodeFootprint** (int idx, FootprintType type, unsigned int queryflags=0) const\
 void **setNodeFlag** (const **SoPath** \*path, NodeFlag flag, SbBool on)\
 void **setNodeFlag** (int idx, NodeFlag flag, SbBool on)\
 SbBool **getNodeFlag** (const **SoPath** \*path, NodeFlag flag) const\
 SbBool **getNodeFlag** (int idx, NodeFlag flag) const\
 int **getIndex** (const **SoPath** \*path, SbBool create=FALSE)\
 int **getParentIndex** (int idx) const\
 **SoType** **getNodeType** (int idx) const\
 **SbName** **getNodeName** (int idx) const\
 int **getLongestNameLength** (void) const\
 int **getLongestTypeNameLength** (void) const\
 int **getNumNodeEntries** (void) const\
 void **reportAll** (SbProfilingDataCB \*callback, void \*userdata) const\
 void **getStatsForTypesKeyList** (**SbList**\< SbProfilingNodeTypeKey \> &keys\_out) const\
 void **getStatsForType** (SbProfilingNodeTypeKey type, **SbTime** &total, **SbTime** &max, uint32\_t &count) const\
 void **getStatsForNamesKeyList** (**SbList**\< SbProfilingNodeNameKey \> &keys\_out) const\
 void **getStatsForName** (SbProfilingNodeNameKey name, **SbTime** &total, **SbTime** &max, uint32\_t &count) const\
 void **reset** (void)\
 **SbProfilingData** & **operator=** (const **SbProfilingData** &rhs)\
 **SbProfilingData** & **operator+=** (const **SbProfilingData** &rhs)\
 int **operator==** (const **SbProfilingData** &rhs) const\
 int **operator!=** (const **SbProfilingData** &rhs) const\
 size\_t **getProfilingDataSize** (void) const\

### Protected Attributes

**SoType** **actionType**\
 **SbTime** **actionStartTime**\
 **SbTime** **actionStopTime**\

## Detailed Description

Data structure for gathering scene graph traversal profiling information.

## Constructor & Destructor Documentation

### SbProfilingData::SbProfilingData (void )

Constructor.

### SbProfilingData::SbProfilingData (const SbProfilingData & rhs)

Copy constructor.

### SbProfilingData::~SbProfilingData (void )

Destructor.

## Member Function Documentation

### void SbProfilingData::setActionType (SoType actiontype)

Register which type of action we are recording statistics for.

### SoType SbProfilingData::getActionType (void ) const

Return the action type set for this **SbProfilingData**.

### void SbProfilingData::setActionStartTime (SbTime starttime)

Set traversal start time.

### SbTime SbProfilingData::getActionStartTime (void ) const

Return the action start time.

### void SbProfilingData::setActionStopTime (SbTime stoptime)

Set traversal stop time.

### SbTime SbProfilingData::getActionStopTime (void ) const

Return the action stop time.

### SbTime SbProfilingData::getActionDuration (void ) const

Return the time the action has spent on the traversal that was profiled.

### void SbProfilingData::setNodeTiming (const SoPath \* path, SbTime timing)

This function calls the index version of setNodeTiming after having fetched the index.

### void SbProfilingData::setNodeTiming (int idx, SbTime timing)

This method sets the timing for a node, as if it was new data to be registered. This means that counters of various types are implicitly incremented and similar things. To avoid those side effects, use offsetNodeTiming, which leaves all the counters alone.

**See also**

offsetNodeTiming

### void SbProfilingData::preOffsetNodeTiming (int idx, SbTime timing)

This function will adjust node timings without touching traversal counters.

### SbTime SbProfilingData::getNodeTiming (const SoPath \* path, unsigned int flags = 0) const

Returns the timing for a node.

### int SbProfilingData::getIndex (const SoPath \* path, SbBool create = FALSE)

Return the index of the tail node in the path. If node is not registered, add it and return that index.

### int SbProfilingData::getParentIndex (int idx) const

Return the index of the parent of the node entry at index *idx*. If entry is a root entry, -1 is returned.

### void SbProfilingData::reset (void )

Remove all stored data.

### SbProfilingData & SbProfilingData::operator= (const SbProfilingData & rhs)

Assignment operator.

### SbProfilingData & SbProfilingData::operator+= (const SbProfilingData & rhs)

Add profiling data from another data set.

### size\_t SbProfilingData::getProfilingDataSize (void ) const

Returns the amount of memory allocated for this data structure.

## Author

Generated automatically by Doxygen for Coin from the source code.
