00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SOROTOR_H
00021
#define COIN_SOROTOR_H
00022
00023
#include <Inventor/nodes/SoSubNode.h>
00024
#include <Inventor/nodes/SoRotation.h>
00025
#include <Inventor/fields/SoSFFloat.h>
00026
#include <Inventor/fields/SoSFBool.h>
00027
#include <Inventor/SbVec3f.h>
00028
#include <Inventor/SbTime.h>
00029
00030
class SoSensor;
00031
class SoOneShotSensor;
00032
class SoFieldSensor;
00033
00034 class COIN_DLL_API SoRotor :
public SoRotation {
00035
typedef SoRotation inherited;
00036
00037 SO_NODE_HEADER(SoRotor);
00038
00039
public:
00040
static void initClass(
void);
00041 SoRotor(
void);
00042
00043
SoSFFloat speed;
00044
SoSFBool on;
00045
00046
protected:
00047
virtual ~SoRotor();
00048
00049
private:
00050
SbTime starttime;
00051
SbVec3f startaxis;
00052
float startangle;
00053
SoOneShotSensor * oneshotsensor;
00054
SoFieldSensor * onfieldsensor;
00055
SoFieldSensor * rotfieldsensor;
00056
SoFieldSensor * speedfieldsensor;
00057
static void oneshotSensorCB(
void * d,
SoSensor * s);
00058
static void fieldSensorCB(
void * d,
SoSensor * s);
00059
00060
void setRotation(
void);
00061 };
00062
00063
#endif // !COIN_SOROTOR_H