SoOneShotSensor(3IV)

SoOneShotSensor - sensor for one-time only callbacks

As shipped in IRIX 6.5.30. Added in IRIX 6.5.22.

NAME
     SoOneShotSensor - sensor for one-time only callbacks

INHERITS FROM
     SoSensor > SoDelayQueueSensor > SoOneShotSensor

SYNOPSIS
     #include <Inventor/sensors/SoOneShotSensor.h>

          Methods from class SoOneShotSensor:

                         SoOneShotSensor()
                         SoOneShotSensor(SoSensorCB *func, void *data)
                         ~SoOneShotSensor()

          Methods from class SoDelayQueueSensor:

     void                setPriority(uint32_t pri)
     uint32_t            getPriority()
     static uint32_t     getDefaultPriority()
     virtual void        schedule()
     virtual void        unschedule()
     virtual SbBool      isScheduled()

          Methods from class SoSensor:

     void                setFunction(SoSensorCB *callbackFunction)
     SoSensorCB *        getFunction() const
     void                setData(void *callbackData)
     void *              getData() const


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.
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.


SEE ALSO
     SoIdleSensor, SoDelayQueueSensor