SoDataSensor(3)

πŸ“¦ version 2.5.0, in fedora 43, fedora 44

okay so bestie, welcome to the SoDataSensor(3) manual page πŸ’– this one lives in the Library Functions Manual and it's all about the abstract base class for sensors monitoring changes in a scene graph. it's giving "I'm the blueprint, you make the subclasses" energy, and we're gonna go through every single function, reference, and inherited member because we do not skip. periodt. ✨

🌸 NAME 🌸

SoDataSensor β€” the abstract base class for sensors monitoring changes in a scene graph. like, it's the mother of all data sensors, fr fr. πŸ’…

✨ SYNOPSIS ✨

okay so you start with this include, no cap:

#include <Inventor/sensors/SoDataSensor.h>

Inherits SoDelayQueueSensor.

Inherited by SoFieldSensor, SoNodeSensor, and SoPathSensor.

πŸ‘‘ Public Member Functions πŸ‘‘

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
virtual void trigger (void)
virtual void notify (SoNotList *l)
virtual void dyingReference (void)=0

πŸ’– 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 πŸŽ€

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 SoDataSensor class is the abstract base class for sensors monitoring changes in a scene graph.

If you need to know when a particular entity (as a field or a node) changes, subclasses of SoDataSensor can be used to monitor the entity and notify you when it changes.

πŸ› οΈ Constructor & Destructor Documentation πŸ› οΈ

SoDataSensor::SoDataSensor (void )

Default constructor. just your basic no-args setup, bestie. πŸ’…

SoDataSensor::SoDataSensor (SoSensorCB * func, void * data)

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

See also: setFunction(), setData().

References SoSensor::func.

SoDataSensor::~SoDataSensor (void ) [virtual]

Destructor. it's the goodbye kiss, but make it C++. πŸ’‹

πŸ“š Member Function Documentation πŸ“š

void SoDataSensor::setDeleteCallback (SoSensorCB * function, void * data = NULL)

If an object monitored by a data sensor is deleted, the given callback function will be called with the given userdata.

SoNode * SoDataSensor::getTriggerNode (void ) const

Returns a pointer to the node causing the sensor to trigger, or NULL if there was no such node.

NULL will also be returned for sensors which are not immediate sensors (i.e. with priority equal to 0), as the result could otherwise be misleading (non-immediate sensors could have been scheduled and rescheduled multiple times, so there wouldn't be a single node responsible for the sensor triggering).

The result is only valid within the scope of a trigger(), so if you need to use the pointer outside your sensor callback, you must store it.

See also: getTriggerField().

SoField * SoDataSensor::getTriggerField (void ) const

Returns a pointer to the field causing the sensor to trigger, or NULL if the change didn't start at a field.

Only valid for immediate sensors (will return NULL otherwise), for the same reason as described for SoDataSensor::getTriggerNode().

The result is only valid within the scope of a trigger(), so if you need to use the pointer outside your sensor callback, you must store it.

SoPath * SoDataSensor::getTriggerPath (void ) const

Returns a pointer to the path from the node under the surveillance of this sensor (either directly or indirectly through a field watch) down to the node which caused the sensor to be triggered.

Will only work for immediate mode sensors, for the same reason explained under getTriggerNode().

The resulting path is only valid within the scope of trigger(), so if you need to use the path outside your sensor callback, you must store the pointer and call SoPath::ref() to avoid its destruction at the end of SoDataSensor::trigger().

void SoDataSensor::setTriggerPathFlag (SbBool flag)

This flag indicates whether or not the path should be queried whenever a node triggers the data sensor.

This flag is provided because finding a node path through a scene graph is an expensive operation.

See also: getTriggerPathFlag(), getTriggerPath().

SbBool SoDataSensor::getTriggerPathFlag (void ) const

Returns whether or not any node induced trigger operations will make the sensor find the path of the node which caused it.

See also: setTriggerPathFlag(), getTriggerPath().

void SoDataSensor::trigger (void ) [virtual]

Trigger the sensor's callback function.

Reimplemented from SoDelayQueueSensor.

Reimplemented in SoFieldSensor.

References SoDelayQueueSensor::trigger().

Referenced by SoFieldSensor::trigger().

void SoDataSensor::notify (SoNotList * l) [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 triggerpath flag has been set, the path down to the node is also found and stored for later retrieval by getTriggerPath().

See also: setTriggerPathFlag().

Reimplemented in SoPathSensor.

References SoNotRec::getBase(), SoNotList::getFirstRecAtNode(), SoNotList::getLastField(), SoNotList::getLastRec(), SoNotRec::getPrevious(), SoDelayQueueSensor::getPriority(), SoBase::isOfType(), and SoDelayQueueSensor::schedule().

Referenced by SoPathSensor::notify().

virtual void SoDataSensor::dyingReference (void ) [pure virtual]

This method is called when the entity we are connected to is about to be deleted.

References invokeDeleteCallback().

void SoDataSensor::invokeDeleteCallback (void ) [protected]

Runs the callback set in setDeleteCallback().

Called from subclasses when the entity we're monitoring is about to be deleted.

Referenced by dyingReference().

✍️ Author ✍️

Generated automatically by Doxygen for Coin from the source code. not a human author, just doxygen doing its thing. πŸ€–


okay that's the whole page, bestie. this footer was brought to you by Coin, Version 2.5.0, and the SoDataSensor(3) manual page β€” no date on the page, but still iconic. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from