SoOneShotSensor — sensor for one-time only callbacks
Contents
Description
A one-shot sensor is triggered once after it is scheduled, when the delay queue is processed. Like all
delay queue sensors, one-shot sensors with a non-zero priority are just added to the delay queue when
scheduled; if they are scheduled again before the delay queue is processed nothing happens, and they are
guaranteed to be called only once when the delay queue is processed. For example, a one-shot sensor whose
callback function redraws the scene might be scheduled whenever the scene graph changes and whenever a
window-system event reporting that the window changed size occurs. By using a one-shot, the scene will
only be redrawn once even if a window-changed-size event occurs just after the scene graph is modified
(or if several window-changed-size events occur in a row).
Calling schedule() in the callback function is a useful way of getting something to happen repeatedly as
often as possible, while still handling events and timeouts.
A priority 0 one-shot sensor isn't very useful, since scheduling it is exactly the same as directly
calling its callback function.
Inherits From
SoSensor > SoDelayQueueSensor > SoOneShotSensor
Methods
SoOneShotSensor()SoOneShotSensor(SoSensorCB*func,void*data)
Creation methods. The second method takes the callback function and data to be called when the sensor
is triggered.
~SoOneShotSensor()
Destroys the sensor, freeing up any memory associated with it after unscheduling it.
Name
SoOneShotSensor — sensor for one-time only callbacks
See Also
SoIdleSensor,SoDelayQueueSensorSoOneShotSensor(3IV)()
Synopsis
#include<Inventor/sensors/SoOneShotSensor.h>
Methods from class SoOneShotSensor:
SoOneShotSensor()SoOneShotSensor(SoSensorCB*func,void*data)~SoOneShotSensor()
Methods from class SoDelayQueueSensor:
voidsetPriority(uint32_tpri)uint32_tgetPriority()staticuint32_tgetDefaultPriority()virtualvoidschedule()virtualvoidunschedule()virtualSbBoolisScheduled()
Methods from class SoSensor:
voidsetFunction(SoSensorCB*callbackFunction)SoSensorCB*getFunction()constvoidsetData(void*callbackData)void*getData()const