Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

SoSensor Class Reference

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

#include <Inventor/sensors/SoSensor.h>

Inheritance diagram for SoSensor::

SoDelayQueueSensor SoTimerQueueSensor SoDataSensor SoIdleSensor SoOneShotSensor SoAlarmSensor SoTimerSensor SoFieldSensor SoNodeSensor SoPathSensor List of all members.

Public Methods

 SoSensor (void)
 SoSensor (SoSensorCB *func, void *data)
virtual ~SoSensor (void)
void setFunction (SoSensorCB *callbackfunction)
SoSensorCB * 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 Methods

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 * func,
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()

Reimplemented in SoTimerQueueSensor, SoTimerSensor, SoAlarmSensor, and SoDelayQueueSensor.

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()

Reimplemented in SoTimerQueueSensor, SoTimerSensor, and SoDelayQueueSensor.

SbBool SoSensor::isScheduled void const [pure virtual]
 

Check if this sensor is scheduled for triggering.

See also:
schedule(), unschedule()

Reimplemented in SoTimerQueueSensor, and SoDelayQueueSensor.

void SoSensor::trigger void [virtual]
 

Trigger the callback function.

Reimplemented in SoTimerQueueSensor, SoDelayQueueSensor, SoDataSensor, 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
 

For internal use only.

SoSensor * SoSensor::getNextInQueue void const
 

For internal use only.

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.


The documentation for this class was generated from the following files:
Generated at Tue Mar 5 03:31:30 2002 for Coin by doxygen1.2.9 written by Dimitri van Heesch, © 1997-2001