00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SOSENSOR_H
00021
#define COIN_SOSENSOR_H
00022
00023
#include <Inventor/SbBasic.h>
00024
00025
class SoSensor;
00026
00027
typedef void SoSensorCB(
void * data,
SoSensor * sensor);
00028
00029 class COIN_DLL_API SoSensor {
00030
public:
00031 SoSensor(
void);
00032 SoSensor(SoSensorCB * func,
void * data);
00033
virtual ~SoSensor(
void);
00034
00035
void setFunction(SoSensorCB * callbackfunction);
00036 SoSensorCB * getFunction(
void)
const;
00037
void setData(
void * callbackdata);
00038
void * getData(
void)
const;
00039
00040
virtual void schedule(
void) = 0;
00041
virtual void unschedule(
void) = 0;
00042
virtual SbBool isScheduled(
void)
const = 0;
00043
00044
virtual void trigger(
void);
00045
00046
virtual SbBool isBefore(
const SoSensor * s)
const = 0;
00047
void setNextInQueue(SoSensor * next);
00048 SoSensor * getNextInQueue(
void)
const;
00049
00050
static void initClass(
void);
00051
00052
protected:
00053 SoSensorCB * func;
00054
void * funcData;
00055 };
00056
00057
#endif // !COIN_SOSENSOR_H