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

# SoSFTrigger(3)

The SoSFTrigger class is the "void" class used for detecting field changes.

## NAME

SoSFTrigger - The **SoSFTrigger** class is the "void" class used for detecting field changes.

## SYNOPSIS

\#include \<Inventor/fields/SoSFTrigger.h\>

Inherits **SoSField**.

### Public Member Functions

virtual **SoType** **getTypeId** (void) const\
 virtual void **copyFrom** (const **SoField** &field)\
 const **SoSFTrigger** & **operator=** (const **SoSFTrigger** &field)\
 virtual SbBool **isSame** (const **SoField** &field) const\
 void **setValue** (void)\
 void **getValue** (void) const\
 int **operator==** (const **SoSFTrigger** &trigger) const\
 int **operator!=** (const **SoSFTrigger** &trigger) const\
 virtual void **startNotify** (void)\
 virtual void **notify** (**SoNotList** \*l)\
 virtual void **touch** (void)\

Public Member Functions inherited from **SoSField** virtual **~SoSField** ()\

Public Member Functions inherited from **SoField** virtual **~SoField** ()\
 void **setIgnored** (SbBool ignore)\
 SbBool **isIgnored** (void) const\
 void **setDefault** (SbBool defaultVal)\
 SbBool **isDefault** (void) const\
 SbBool **isOfType** (const **SoType** type) const\
 void **enableConnection** (SbBool flag)\
 SbBool **isConnectionEnabled** (void) const\
 SbBool **connectFrom** (**SoEngineOutput** \*master, SbBool notnotify=FALSE, SbBool append=FALSE)\
 SbBool **appendConnection** (**SoEngineOutput** \*master, SbBool notnotify=FALSE)\
 void **disconnect** (**SoEngineOutput** \*engineoutput)\
 SbBool **isConnectedFromEngine** (void) const\
 SbBool **getConnectedEngine** (**SoEngineOutput** \*&master) const\
 SbBool **connectFrom** (**SoField** \*master, SbBool notnotify=FALSE, SbBool append=FALSE)\
 SbBool **appendConnection** (**SoField** \*master, SbBool notnotify=FALSE)\
 void **disconnect** (**SoField** \*field)\
 SbBool **isConnectedFromField** (void) const\
 SbBool **getConnectedField** (**SoField** \*&master) const\
 int **getNumConnections** (void) const\
 int **getForwardConnections** (**SoFieldList** &slavelist) const\
 int **getConnections** (**SoFieldList** &masterlist) const\
 void **disconnect** (void)\
 SbBool **isConnected** (void) const\
 void **setContainer** (**SoFieldContainer** \*cont)\
 **SoFieldContainer** \* **getContainer** (void) const\
 SbBool **set** (const char \*valuestring)\
 void **get** (**SbString** &valuestring)\
 SbBool **shouldWrite** (void) const\
 SbBool **enableNotify** (SbBool on)\
 SbBool **isNotifyEnabled** (void) const\
 void **addAuditor** (void \*f, **SoNotRec::Type** type)\
 void **removeAuditor** (void \*f, **SoNotRec::Type** type)\
 int **operator==** (const **SoField** &f) const\
 int **operator!=** (const **SoField** &f) const\
 virtual void **connectionStatusChanged** (int numconnections)\
 SbBool **isReadOnly** (void) const\
 virtual void **fixCopy** (SbBool copyconnections)\
 virtual SbBool **referencesCopy** (void) const\
 void **copyConnection** (const **SoField** \*fromfield)\
 virtual SbBool **read** (**SoInput** \*input, const **SbName** &name)\
 virtual void **write** (**SoOutput** \*out, const **SbName** &name) const\
 virtual void **countWriteRefs** (**SoOutput** \*out) const\
 void **setFieldType** (int type)\
 int **getFieldType** (void) const\
 SbBool **getDirty** (void) const\
 void **setDirty** (SbBool dirty)\
 void **evaluate** (void) const\

### Static Public Member Functions

static void \* **createInstance** (void)\
 static **SoType** **getClassTypeId** (void)\
 static void **initClass** (void)\

Static Public Member Functions inherited from **SoSField** static void **initClass** (void)\
 static **SoType** **getClassTypeId** (void)\
 static void **atexit\_cleanup** (void)\

Static Public Member Functions inherited from **SoField** static void **initClass** (void)\
 static void **initClasses** (void)\
 static void **cleanupClass** (void)\
 static **SoType** **getClassTypeId** (void)\

### Additional Inherited Members

Public Types inherited from **SoField** enum **FieldType** { **NORMAL\_FIELD** = 0, **EVENTIN\_FIELD**, **EVENTOUT\_FIELD**, **EXPOSED\_FIELD** }\

Protected Member Functions inherited from **SoSField** **SoSField** (void)\

Protected Member Functions inherited from **SoField** **SoField** (void)\
 void **valueChanged** (SbBool resetdefault=TRUE)\
 virtual void **evaluateConnection** (void) const\
 virtual SbBool **readConnection** (**SoInput** \*in)\
 virtual void **writeConnection** (**SoOutput** \*out) const\
 SbBool **isDestructing** (void) const\
 virtual **SoNotRec** **createNotRec** (**SoBase** \*cont)\

## Detailed Description

The **SoSFTrigger** class is the "void" class used for detecting field changes.

Connect this field to a master field (or engine output) to detect when the master field changes its value.

This is useful if you want to automatically trigger an update from the node or engine (or other field container) this field is part of whenever another field changes -- and you are not particularly interested in the actual value of the master field.

**See also**

**SoFieldSensor**

## Member Function Documentation

### void \* SoSFTrigger::createInstance (void ) \[static\]

*This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.*\

 Creates a new instance of the class type corresponding to the **SoType** object.

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

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

### SoType SoSFTrigger::getTypeId (void ) const \[virtual\]

Returns the type identification of an object derived from a class inheriting **SoField**. This is used for runtime type checking and "downward" casting.

Implements **SoField**.

### void SoSFTrigger::copyFrom (const SoField & f) \[virtual\]

Copy value(s) from *f* into this field. *f* must be of the same type as this field.

Implements **SoField**.

### SbBool SoSFTrigger::isSame (const SoField & f) const \[virtual\]

Check for equal type and value(s).

Implements **SoField**.

### void SoSFTrigger::initClass (void ) \[static\]

Internal method called upon initialization of the library (from **SoDB::init()**) to set up the type system.

### void SoSFTrigger::setValue (void )

This field class does not actually contain any value, so we just trigger an update by calling **touch()** within this method.

### void SoSFTrigger::getValue (void ) const

Field doesn't contain any value, so this method does nothing.

### int SoSFTrigger::operator== (const SoSFTrigger & trigger) const

Since **SoSFTrigger** fields doesn't have any value, they are all equal. So this method always returns TRUE.

### int SoSFTrigger::operator!= (const SoSFTrigger & trigger) const

Since **SoSFTrigger** fields doesn't have any value, they are all equal. So this method always returns FALSE.

### void SoSFTrigger::startNotify (void ) \[virtual\]

Trigger a notification sequence.

At the end of a notification sequence, all "immediate" sensors (i.e. sensors set up with a zero priority) are triggered.

Reimplemented from **SoField**.

### void SoSFTrigger::notify (SoNotList \* nlist) \[virtual\]

Notify auditors that this field has changed.

Reimplemented from **SoField**.

### void SoSFTrigger::touch (void ) \[virtual\]

Notify the field as well as the field's owner / container that it has been changed.

Touching a field which is part of any component (engine or node) in a scene graph will lead to a forced redraw. This is useful if you have been doing several updates to the field wrapped in a pair of **enableNotify()** calls to notify the field's auditors that its value has changed.

**See also**

**setValue()**, **enableNotify()**

Reimplemented from **SoField**.

## Author

Generated automatically by Doxygen for Coin from the source code.
