Open Inventor Reference
|
Abstract base class for sensors attached to parts of a scene. More...
#include <Inventor/sensors/SoDataSensor.h>
Public Member Functions | |
SoDataSensor () | |
Constructors. The second form takes standard callback function and data. More... | |
SoDataSensor (SoSensorCB *func, void *data) | |
virtual | ~SoDataSensor () |
Destructor. More... | |
void | setDeleteCallback (SoSensorCB *f, void *data=NULL) |
Sets a callback that will be called when the object the sensor is sensing is deleted. More... | |
SoNode * | getTriggerNode () const |
If this is a priority 0 data sensor, returns the node/field that was modified that caused this sensor to trigger. More... | |
SoField * | getTriggerField () const |
Like getTriggerNode(), but returns the field that started notification (NULL if the sensor isn't priority 0 or if notification didn't start at a field). More... | |
SoPath * | getTriggerPath () const |
Returns the path from the node to which this sensor is attached down to the child node that changed. More... | |
void | setTriggerPathFlag (bool flag) |
bool | getTriggerPathFlag () const |
virtual void | unschedule () |
Override unschedule() to reset trigNode and trigPath. More... | |
virtual void | trigger () |
Override trigger to reset trigNode and trigPath, if necessary. More... | |
virtual void | notify (SoNotList *list) |
Propagates modification notification through an instance. More... | |
virtual void | dyingReference ()=0 |
This is called when the base (path, field, node, whatever) is deleted. More... | |
![]() | |
SoDelayQueueSensor () | |
Constructors. The second form takes standard callback function and data. More... | |
SoDelayQueueSensor (SoSensorCB *func, void *data) | |
virtual | ~SoDelayQueueSensor () |
Destructor. More... | |
void | setPriority (uint32_t pri) |
Sets the priority of the sensor. More... | |
uint32_t | getPriority () const |
Gets the priority of the sensor. More... | |
virtual void | schedule () |
If this sensor's priority is non-zero, adds this sensor to the list of delay queue sensors ready to be triggered. More... | |
virtual bool | isScheduled () const |
Returns TRUE if this sensor has been scheduled and is waiting in the delay queue to be triggered. More... | |
virtual bool | isIdleOnly () const |
This method is overridden by IdleSensors to tell sensor manager that they should only be processed when there really is idle time (and not when the delay queue timeout expires). More... | |
void | setCounter (uint32_t c) |
Set/inquire counter when sensor was last triggered. More... | |
uint32_t | getCounter () const |
![]() | |
SoSensor () | |
Constructors. The second form takes callback function and data. More... | |
SoSensor (SoSensorCB *f, void *d) | |
virtual | ~SoSensor () |
Virtual destructor so that subclasses are deleted properly. More... | |
void | setFunction (SoSensorCB *f) |
Sets the callback function that is called when the sensor is triggered. More... | |
void | setData (void *d) |
Sets the callback data passed to the callback function. More... | |
SoSensorCB * | getFunction () const |
Returns the callback function that will be called when the sensor is triggered. More... | |
void * | getData () const |
Returns the user-supplied pointer that will be passed to the callback function. More... | |
void | setNextInQueue (SoSensor *next) |
Sets/returns the next sensor in whichever queue the sensor is in. More... | |
SoSensor * | getNextInQueue () const |
Protected Member Functions | |
void | invokeDeleteCallback () |
Invokes the delete callback. More... | |
Additional Inherited Members | |
![]() | |
static uint32_t | getDefaultPriority () |
Returns the default delay queue sensor priority, which is 100. More... | |
![]() | |
static void | initClass () |
Initialize static members, etc. More... | |
![]() | |
bool | scheduled |
Whether sensor is scheduled. More... | |
![]() | |
SoSensorCB * | func |
Callback function. More... | |
void * | funcData |
Data to pass to callback. More... | |
Data sensors detect changes to scene graph objects (paths, nodes, or fields) and trigger their callback function when the object changes.
Data sensors provide a delete callback that is called just before the object the data sensor is attached to is deleted; note that the callback should not attempt to modify the object in any way, or core dumps may result.
Priority zero data sensors also provide methods that can be called in the callback function to determine exactly which node, field, or path caused the sensor to be triggered.
Definition at line 93 of file SoDataSensor.h.
SoDataSensor::SoDataSensor | ( | ) |
SoDataSensor::SoDataSensor | ( | SoSensorCB * | func, |
void * | data | ||
) |
|
virtual |
|
pure virtual |
All subclasses must implement this to do the right thing.
SoField* SoDataSensor::getTriggerField | ( | ) | const |
SoNode* SoDataSensor::getTriggerNode | ( | ) | const |
Returns NULL if the sensor was not triggered because a node/field changed (for example, if schedule() is called on the sensor) or if this sensor is not a priority 0 sensor. Note that because one change to the scene graph may cause multiple nodes or fields to be modified (because of field-to-field connections), the node or field returned may not be the only one that changed.
SoPath* SoDataSensor::getTriggerPath | ( | ) | const |
setTriggerPathFlag(TRUE) must be called before the sensor is scheduled, or this will return NULL. It will also return NULL if the sensor is not immediate or if the notification doesn't go through a node
|
inline |
Definition at line 134 of file SoDataSensor.h.
|
protected |
|
virtual |
By default, this schedules the sensor to be triggered and saves some information from the notification list for use by the callback function. Called by SoBase.
Reimplemented in SoPathSensor.
|
inline |
Definition at line 105 of file SoDataSensor.h.
|
inline |
Definition at line 132 of file SoDataSensor.h.
|
virtual |
Reimplemented from SoDelayQueueSensor.
Reimplemented in SoFieldSensor.
|
virtual |
Reimplemented from SoDelayQueueSensor.