table of contents
| SoOneShotSensor(3IV)() | SoOneShotSensor(3IV)() | 
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