4
inputOutput SFBool enabled TRUE
5
inputOutput SFTime cycleInterval 1
6
inputOutput SFVec3f axis 0 0 1
7
inputOutput SFFloat angle 0
8
inputOutput SFBool loop FALSE
9
inputOutput SFTime startTime 0
10
inputOutput SFTime pauseTime 0
11
inputOutput SFTime resumeTime 0
12
inputOutput SFTime stopTime 0
13
outputOnly SFBool isActive
14
outputOnly SFTime cycleTime
15
outputOnly SFRotation rotation_changed
18
DEF Timer TimeSensor {
20
cycleInterval IS cycleInterval
22
startTime IS startTime
23
pauseTime IS pauseTime
24
resumeTime IS resumeTime
27
cycleTime IS cycleTime
30
DEF Interpolator OrientationInterpolator {
31
key [ 0, 0.25, 0.5, 0.75, 1 ]
32
keyValue [ 0 0 1 0, 0 0 1 1.5708, 0 0 1 3.14159, 0 0 1 4.71239, 0 0 1 0 ]
33
value_changed IS rotation_changed
37
inputOnly SFVec3f set_axis
38
inputOnly SFFloat set_angle
39
inputOutput SFVec3f axis IS axis
40
inputOutput SFFloat angle IS angle
41
initializeOnly SFNode interpolator USE Interpolator
45
function initialize ()
56
function eventsProcessed ()
58
var keyValue = interpolator .keyValue;
60
for (var i = 0; i < 4; ++ i)
61
keyValue [i] = new SFRotation (axis, angle + 2 * Math .PI / 4 * i);
63
keyValue [4] = keyValue [0];
68
ROUTE Timer.fraction_changed TO Interpolator.set_fraction