SoOneShotSensor Class |
Sensor for one-time only callbacks.
Namespace: OIV.Inventor.Sensors
The SoOneShotSensor type exposes the following members.
Name | Description | |
---|---|---|
![]() | SoOneShotSensor | Default constructor. |
Name | Description | |
---|---|---|
![]() | Equals | (Inherited from Object.) |
![]() | GetHashCode |
Overrides GetHashCode().
(Inherited from SoNetBase.) |
![]() | GetPriority | Gets the priority of the sensor. |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | IsIdleOnly | (Inherited from SoDelayQueueSensor.) |
![]() | IsScheduled | Returns true if this sensor has been scheduled and is waiting in a sensor queue to be triggered. |
![]() | Schedule | (Inherited from SoSensor.) |
![]() | SetPriority | Sets the priority of the sensor. |
![]() | SetSensorCB(SoSensorSensorCB) | Obsolete.
Use Action property instead
Sets the delegate that is invoked when the sensor is triggered.
The function must take two arguments - user-supplied data (of type object)
and a reference to the sensor that is triggering the function (of type SoSensor).
(Inherited from SoSensor.) |
![]() | SetSensorCB(SoSensorSensorUserDataCB, Object) | Obsolete.
Use Action property instead
(Inherited from SoSensor.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
![]() | Unschedule | (Inherited from SoSensor.) |
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 delegateredraws 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 delegateis 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 delegate.