SoOneShotSensor(3IV)
SoOneShotSensor (SoOneShotSens) - sensor for one-time only callbacks
Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.22.
NAME SoOneShotSensor (SoOneShotSens) - sensor for one-time only callbacks INHERITS FROM SoSensor > SoDelayQueueSensor > SoOneShotSensor SYNOPSIS #include <Inventor_c/sensors/SoOneShotSensor.h> typedef SoOneShotSensor SoOneShotSens Functions from class SoOneShotSensor: SoOneShotSensor * SoOneShotSensCreate() SoOneShotSensor * SoOneShotSensCreateCB(SoSensorCB *func, void *data) void SoOneShotSensDelete(SoOneShotSens *this) Functions from class SoDelayQueueSensor: void SoOneShotSensSetPri(SoOneShotSens *this, uint32_t pri) uint32_t SoOneShotSensGetPri(SoOneShotSens *this) uint32_t SoOneShotSensGetDefaultPriority() void SoOneShotSensSched(SoOneShotSens *this) void SoOneShotSensUnsched(SoOneShotSens *this) SbBool SoOneShotSensIsSched(SoOneShotSens *this) Functions from class SoSensor: void SoOneShotSensSetFunc(SoOneShotSens *this, SoSensorCB *callbackFunction) SoSensorCB * SoOneShotSensGetFunc(const SoOneShotSens *this) void SoOneShotSensSetData(SoOneShotSens *this, void *callbackData) void * SoOneShotSensGetData(const SoOneShotSens *this) 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. FUNCTIONS SoOneShotSensor * SoOneShotSensCreate() SoOneShotSensor * SoOneShotSensCreateCB(SoSensorCB *func, void *data) Creation methods. The second method takes the callback function and data to be called when the sensor is triggered. void SoOneShotSensDelete(SoOneShotSens *this) Destroys the sensor, freeing up any memory associated with it after unscheduling it. SEE ALSO SoIdleSensor, SoDelayQueueSensor