---
name: "SoNodeSensor"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoNodeSensor/3iv"
---

# SoNodeSensor(3iv)

sensor class that can be attached to Inventor nodes

## NAME

SoNodeSensor — sensor class that can be attached to Inventor nodes

## INHERITS FROM

SoSensor \> SoDelayQueueSensor \> SoDataSensor \> SoNodeSensor

## SYNOPSIS

**#include \<Inventor/sensors/SoNodeSensor.h\>**

Methods from class SoNodeSensor:

	**SoNodeSensor()**\
 	**SoNodeSensor(SoSensorCB \*func, void \*data)**\
 	**~SoNodeSensor()**\
 **void**	**attach(SoNode \*node)**\
 **void**	**detach()**\
 **SoNode \***	**getAttachedNode() const**

Methods from class SoDataSensor:

**void**	**setDeleteCallback(SoSensorCB \*function, void \*data)**\
 **SoNode \***	**getTriggerNode() const**\
 **SoField \***	**getTriggerField() const**\
 **SoPath \***	**getTriggerPath() const**\
 **void**	**setTriggerPathFlag(SbBool flag)**\
 **SbBool**	**getTriggerPathFlag() const**

Methods from class SoDelayQueueSensor:

**void**	**setPriority(uint32\_t pri)**\
 **uint32\_t**	**getPriority()**\
 **static uint32\_t**	**getDefaultPriority()**\
 **virtual void**	**schedule()**\
 **virtual void**	**unschedule()**\
 **virtual SbBool**	**isScheduled()**

Methods from class SoSensor:

**void**	**setFunction(SoSensorCB \*callbackFunction)**\
 **SoSensorCB \***	**getFunction() const**\
 **void**	**setData(void \*callbackData)**\
 **void \***	**getData() const**

## DESCRIPTION

**Node sensors detect changes to nodes, calling a callback function whenever any field of the node or, if the node is a group node, any children of the node change.**

## METHODS

	**SoNodeSensor()**\
 	**SoNodeSensor(SoSensorCB \*func, void \*data)**\
 Creation methods. The second method takes the callback function and data to be called when the sensor is triggered.

	**~SoNodeSensor()**\
 Destroys the sensor, freeing up any memory associated with it after unscheduling it.

**void**	**attach(SoNode \*node)**\
 **void**	**detach()**\
 **SoNode \***	**getAttachedNode() const**\
 The **attach()** method makes this sensor detect changes to the given node. The **detach()** method unschedules this sensor (if it is scheduled) and makes it ignore changes to the scene graph. The **getAttachedNode()** method returns the node that this sensor is sensing, or NULL if it is not attached to any node.

## SEE ALSO

**SoFieldSensor, SoPathSensor, SoDataSensor**
