Provided by: libcoin80-doc_3.1.4~abc9f50-4ubuntu2_all bug

NAME

       SoSensor -

       The SoSensor class is the abstract base class for all sensors.

       Sensors is a mechanism in Coin for scheduling jobs to be run upon specific events. The
       events in question could be particular points in time, or changes to entities in the scene
       graph.

SYNOPSIS

       #include <Inventor/sensors/SoSensor.h>

       Inherited by SoDelayQueueSensor, and SoTimerQueueSensor.

   Public Member Functions
       SoSensor (void)
       SoSensor (SoSensorCB *func, void *data)
       virtual ~SoSensor (void)
       void setFunction (SoSensorCB *callbackfunction)
       SoSensorCBPtr getFunction (void) const
       void setData (void *callbackdata)
       void * getData (void) const
       virtual void schedule (void)=0
       virtual void unschedule (void)=0
       virtual SbBool isScheduled (void) const =0
       virtual void trigger (void)
       virtual SbBool isBefore (const SoSensor *s) const =0
       void setNextInQueue (SoSensor *next)
       SoSensor * getNextInQueue (void) const

   Static Public Member Functions
       static void initClass (void)

   Protected Attributes
       SoSensorCB * func
       void * funcData

Detailed Description

       The SoSensor class is the abstract base class for all sensors.

       Sensors is a mechanism in Coin for scheduling jobs to be run upon specific events. The
       events in question could be particular points in time, or changes to entities in the scene
       graph.

       See documentation of subclasses for insight into exactly for what types of events we can
       trigger sensor callbacks.

       For most tasks where application programmers can use sensors, it is also possible to
       achieve the same results by using engines. There are a few important differences between
       sensors and engines, though:

       Engines are considered part of the scene graph, and is written to file upon SoWriteAction
       export operations. Sensors, on the other hand, are not included in export operations.

       Engines basically connects fields (and comes with a lot of builtin functionality for
       combining and converting inputs and outputs), you just decide which engine you want,
       connect inputs and output and forgets about it. Sensors are a lot more flexible in what
       you can do when they trigger, as control is transfered internally from Coin to your
       registered callback functions.

       See Also:
           SoSensorManager, SoEngine

Constructor & Destructor Documentation

   SoSensor::SoSensor (void)
       Constructor.

   SoSensor::SoSensor (SoSensorCB *funcptr, void *data)
       Constructor taking as parameters the sensor callback function func and the user data
       pointer which will be passed the callback.

       See Also:
           setFunction(), setData()

   SoSensor::~SoSensor (void) [virtual]
       Destructor.

Member Function Documentation

   void SoSensor::setFunction (SoSensorCB *callbackfunction)
       Set the callback function pointer which will be used when the sensor is triggered.

       See Also:
           getFunction(), setData()

   SoSensorCB * SoSensor::getFunction (void) const
       Returns the callback function pointer.

       See Also:
           setFunction()

   void SoSensor::setData (void *callbackdata)
       Set the user-supplied data pointer which will be used as the first argument to the sensor
       callback function.

       See Also:
           getData(), setFunction()

   void * SoSensor::getData (void) const
       Returns the user-supplied callback function data pointer.

       See Also:
           setData()

   void SoSensor::schedule (void) [pure virtual]
       Put the sensor in a queue to be triggered at a later time.

       See Also:
           unschedule(), isScheduled()

       Implemented in SoDelayQueueSensor, SoTimerSensor, SoAlarmSensor, and SoTimerQueueSensor.

   void SoSensor::unschedule (void) [pure virtual]
       Remove sensor from queue. The sensor will not be triggered unless it is later rescheduled.

       See Also:
           schedule(), isScheduled()

       Implemented in SoDelayQueueSensor, SoTimerSensor, and SoTimerQueueSensor.

   SbBool SoSensor::isScheduled (void) const [pure virtual]
       Check if this sensor is scheduled for triggering.

       See Also:
           schedule(), unschedule()

       Implemented in SoDelayQueueSensor, and SoTimerQueueSensor.

   void SoSensor::trigger (void) [virtual]
       Trigger the sensor's callback function.

       Reimplemented in SoDataSensor, SoDelayQueueSensor, SoTimerQueueSensor, and SoFieldSensor.

   SbBool SoSensor::isBefore (const SoSensor *s) const [pure virtual]
       Returns TRUE if this sensor should precede sensor s in its sensor queue.

   void SoSensor::setNextInQueue (SoSensor *next)
       This API member is considered internal to the library, as it is not likely to be of
       interest to the application programmer. Open Inventor function not implemented in Coin.

   SoSensor * SoSensor::getNextInQueue (void) const
       This API member is considered internal to the library, as it is not likely to be of
       interest to the application programmer. Open Inventor function not implemented in Coin.

   void SoSensor::initClass (void) [static]
       Sets up initialization for static data for the sensors. Called by SoDB::init().

Member Data Documentation

   SoSensorCB * SoSensor::func [protected]
       Function to be called when a sensor triggers.

   void * SoSensor::funcData [protected]
       Data passed to the callback function.

Author

       Generated automatically by Doxygen for Coin from the source code.