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

# SoPathSensor(3)

The SoPathSensor class detects changes to paths.

## NAME

SoPathSensor - The **SoPathSensor** class detects changes to paths.

## SYNOPSIS

\#include \<Inventor/sensors/SoPathSensor.h\>

Inherits **SoDataSensor**.

### Public Types

enum **TriggerFilter** { **PATH** = 0x1, **NODES** = 0x2, **PATH\_AND\_NODES** = 0x3 }\

### Public Member Functions

**SoPathSensor** (void)\
 **SoPathSensor** (SoSensorCB \***func**, void \*data)\
 virtual **~SoPathSensor** (void)\
 void **setTriggerFilter** (const **TriggerFilter** type)\
 **TriggerFilter** **getTriggerFilter** (void) const\
 void **attach** (**SoPath** \*path)\
 void **detach** (void)\
 **SoPath** \* **getAttachedPath** (void) const\

Public Member Functions inherited from **SoDataSensor** **SoDataSensor** (void)\
 **SoDataSensor** (SoSensorCB \***func**, void \*data)\
 virtual **~SoDataSensor** (void)\
 void **setDeleteCallback** (SoSensorCB \*function, void \*data=NULL)\
 **SoNode** \* **getTriggerNode** (void) const\
 **SoField** \* **getTriggerField** (void) const\
 **SoPath** \* **getTriggerPath** (void) const\
 void **setTriggerPathFlag** (SbBool flag)\
 SbBool **getTriggerPathFlag** (void) const\
 **SoNotRec::OperationType** **getTriggerOperationType** (void) const\
 int **getTriggerIndex** (void) const\
 int **getTriggerFieldNumIndices** (void) const\
 **SoNode** \* **getTriggerGroupChild** (void) const\
 **SoNode** \* **getTriggerReplacedGroupChild** (void) const\
 virtual void **trigger** (void)\

Public Member Functions inherited from **SoDelayQueueSensor** **SoDelayQueueSensor** (void)\
 **SoDelayQueueSensor** (SoSensorCB \***func**, void \*data)\
 virtual **~SoDelayQueueSensor** (void)\
 void **setPriority** (uint32\_t pri)\
 uint32\_t **getPriority** (void) const\
 virtual void **schedule** (void)\
 virtual void **unschedule** (void)\
 virtual SbBool **isScheduled** (void) const\
 virtual SbBool **isIdleOnly** (void) const\

Public Member Functions inherited from **SoSensor** **SoSensor** (void)\
 **SoSensor** (SoSensorCB \***func**, void \*data)\
 virtual **~SoSensor** (void)\
 void **setFunction** (SoSensorCB \*callbackfunction)\
 SoSensorCBPtr **getFunction** (void) const\
 void **setData** (void \*callbackdata)\
 void \* **getData** (void) const\
 void **setNextInQueue** (**SoSensor** \*next)\
 **SoSensor** \* **getNextInQueue** (void) const\

### Protected Member Functions

virtual void **notify** (**SoNotList** \*l)\

Protected Member Functions inherited from **SoDataSensor** void **invokeDeleteCallback** (void)\

### Additional Inherited Members

Static Public Member Functions inherited from **SoDelayQueueSensor** static uint32\_t **getDefaultPriority** (void)\

Static Public Member Functions inherited from **SoSensor** static void **initClass** (void)\

Protected Attributes inherited from **SoDelayQueueSensor** SbBool **scheduled**\

Protected Attributes inherited from **SoSensor** SoSensorCB \* **func**\
 void \* **funcData**\

## Detailed Description

The **SoPathSensor** class detects changes to paths.

If you need to know when a path changes (i.e. nodes in the path have been removed, or new nodes are added), use this sensor to get a notification.

You can also use this sensor to detect when some node in the path is changed.

An **SoPathSensor** can also act for delete-callback purposes alone and does not need a regular notification-based callback. The delete callback will be invoked for when the **SoPath** instance is deleted, not for anything you would be monitoring in a path.

## Member Enumeration Documentation

### enum SoPathSensor::TriggerFilter

Trigger filter, which decides if the sensor should trigger on path changes, changes on nodes in the path, or both.

**Enumerator**

- ***PATH***

  Trigger on path changes only.

- ***NODES***

  Trigger on node changes only. This can be nodes in the path, or nodes affecting the nodes in the path (nodes that updates the state and are left of the node in the path).

- ***PATH\_AND\_NODES***

  Trigger on both path changes and node changes.

## Constructor & Destructor Documentation

### SoPathSensor::SoPathSensor (void )

Default constructor. Use **setFunction()** to set up a callback function later.

### SoPathSensor::SoPathSensor (SoSensorCB \* func, void \* data)

Constructor taking as parameters the sensor callback function and the userdata which will be passed to the callback.

**See also**

**setFunction()**, **setData()**

### SoPathSensor::~SoPathSensor (void ) \[virtual\]

Destructor.

## Member Function Documentation

### void SoPathSensor::setTriggerFilter (const TriggerFilter filter)

Set the **TriggerFilter** for this sensor.

The default is PATH\_AND\_NODES.

**Since**

Coin 2.0

### SoPathSensor::TriggerFilter SoPathSensor::getTriggerFilter (void ) const

Return the **TriggerFilter** for this sensor.

**Since**

Coin 2.0

### void SoPathSensor::attach (SoPath \* path)

Attach sensor to a path. Whenever the path changes, the sensor will be triggered and call the callback function.

When the **SoPath** instance is deleted, the sensor will automatically be detached.

**See also**

**detach()**

### void SoPathSensor::detach (void )

Detach sensor from path. As long as an **SoPathSensor** is detached, it will never invoke its callback function.

**See also**

**attach()**

### SoPath \* SoPathSensor::getAttachedPath (void ) const

Returns a pointer to the path connected to the sensor.

**See also**

**attach()**, **detach()**

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

Called from entity we are monitoring when it changes.

If this is an immediate sensor, the field and node (if any) causing the change will be stored and can be fetched by **getTriggerField()** and **getTriggerNode()**. If the trigger path flag has been set, the path down to the node is also found and stored for later retrieval by **getTriggerPath()**.

**See also**

**setTriggerPathFlag()**

Reimplemented from **SoDataSensor**.

## Author

Generated automatically by Doxygen for Coin from the source code.
