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