Provided by: inventor-doc_2.1.5-10-18_all bug


       SoOneShotSensor — sensor for one-time only callbacks


       SoSensor > SoDelayQueueSensor > SoOneShotSensor


       #include <Inventor/sensors/SoOneShotSensor.h>

          Methods from class SoOneShotSensor:

                         SoOneShotSensor(SoSensorCB *func, void *data)

          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


       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.


                         SoOneShotSensor(SoSensorCB *func, void *data)
          Creation  methods.  The second method takes the callback function and data to be called
          when the sensor is triggered.

          Destroys the sensor, freeing up any memory associated with it after unscheduling it.


       SoIdleSensor, SoDelayQueueSensor