SoTimerQueueSensor(3) | Coin | SoTimerQueueSensor(3) |
NAME¶
SoTimerQueueSensor - The SoTimerQueueSensor class is the abstract base class for sensors triggering on certain timer events. Timer sensors triggers upon specific points in time.SYNOPSIS¶
#include <Inventor/sensors/SoTimerQueueSensor.h> Inherits SoSensor. Inherited by SoAlarmSensor, and SoTimerSensor.Public Member Functions¶
SoTimerQueueSensor (void)
Protected Member Functions¶
void setTriggerTime (const SbTime &time)
Protected Attributes¶
SbBool scheduled
Additional Inherited Members¶
Detailed Description¶
The SoTimerQueueSensor class is the abstract base class for sensors triggering on certain timer events. Timer sensors triggers upon specific points in time.real-time'. That is, you can not expect a timer to always trigger at the exact moment it was set up for. Delays in triggering could be due to other activities in Coin, a task suspended, or heavy load from other applications on the system. These situations could all cause the processing of sensor queues (from SoQt / SoWin / SoXt / whatever) to be slightly delayed, thereby causing delays in timer sensor triggering. On modern systems, a timer will usually trigger within a few milliseconds of it's designated time, though. If a timer sensor can not trigger at the exact moment it has been scheduled, it will be triggered at the first opportunity after the scheduled time has passed. Here's a simple usage example. It's a stand-alone example, which only demonstrates how to set up a repeating timer sensor with a callback:
#include <Inventor/Xt/SoXt.h> #include <Inventor/sensors/SoTimerSensor.h> #include <stdio.h> static void timeSensorCallback(void * data, SoSensor * sensor) { SbTime time = SbTime::getTimeOfDay(); SbString string = time.format('%S.%i'); (void)printf('%s0, string.getString()); } int main(int argc, char ** argv) { SoXt::init('test'); SoTimerSensor * timeSensor = new SoTimerSensor; timeSensor->setFunction(timeSensorCallback); timeSensor->setBaseTime(SbTime::getTimeOfDay()); timeSensor->setInterval(1.0f); timeSensor->schedule(); SoXt::mainLoop(); return 0; }
Constructor & Destructor Documentation¶
SoTimerQueueSensor::SoTimerQueueSensor (void)¶
Default constructor.SoTimerQueueSensor::SoTimerQueueSensor (SoSensorCB *func, void *data)¶
Constructor taking as arguments the sensor callback function and the userdata which will be passed the callback. See also:setFunction(), setData()
SoTimerQueueSensor::~SoTimerQueueSensor (void) [virtual]¶
Destructor.Member Function Documentation¶
const SbTime & SoTimerQueueSensor::getTriggerTime (void) const¶
Returns the time at which the sensor will trigger. See also:setTriggerTime()
void SoTimerQueueSensor::schedule (void) [virtual]¶
Put the sensor in the global timer queue. See also:unschedule(),
isScheduled()
void SoTimerQueueSensor::unschedule (void) [virtual]¶
Remove sensor from the timer queue, without triggering it first. See also:schedule(), isScheduled()
SbBool SoTimerQueueSensor::isScheduled (void) const [virtual]¶
Check if this sensor is scheduled for triggering. See also:schedule(), unschedule()
void SoTimerQueueSensor::trigger (void) [virtual]¶
Trigger the sensor's callback function. Reimplemented from SoSensor.void SoTimerQueueSensor::setTriggerTime (const SbTime &time) [protected]¶
Set absolute time at which to trigger sensor. See also:getTriggerTime()
Member Data Documentation¶
SbBool SoTimerQueueSensor::scheduled [protected]¶
TRUE if the sensor is currently scheduled.Author¶
Generated automatically by Doxygen for Coin from the source code.Wed May 23 2012 | Version 3.1.3 |