SoOneShotSensor(3IV)

SoOneShotSensor (SoOneShotSens) - sensor for one-time only callbacks

As shipped in IRIX 6.5.30. 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