//{{FIELDS AND EVENTS eventIn SFRotation rotation eventOut SFVec3f translationOut eventOut SFRotation rotationOut field SFInt32 incr 0 field SFRotation tmp 0 0 1 0 //}}FIELDS AND EVENTS //value[3] = value[3] + Math.abs(Math.sin(value[3]*3/2)); //translationOut[1] = -0.27 - 2*Math.abs(Math.cos(value[3]*3/2)); function rotation (value, timestamp) { translationOut[0] = 3; translationOut[2] = 0; tmp[0] = (Math.abs(value[3]))%6.2832; if(tmp[0] < 1.05){ translationOut[1] = -0.81 - Math.cos(tmp[0]*1.5)*1.46; } else if((tmp[0] >= 1.05)&&(tmp[0] < 2.10)){ translationOut[1] = -0.81 + Math.cos(tmp[0]*1.5)*1.08; } else if((tmp[0] >= 2.10)&&(tmp[0] < 3.142)){ translationOut[1] = -0.27 + Math.cos(tmp[0]*1.5)*1.62; } else if((tmp[0] >= 3.142)&&(tmp[0] < 4.19)){ translationOut[1] = -0.27 - Math.cos(tmp[0]*1.5)*1.62; } else if((tmp[0] >= 4.19)&&(tmp[0] < 5.24)){ translationOut[1] = -0.81 - Math.cos(tmp[0]*1.5)*1.08; } else if((tmp[0] >= 5.24)&&(tmp[0] < 6.28)){ translationOut[1] = -0.81 + Math.cos(tmp[0]*1.5)*1.08; } rotationOut = value; }