0,timeSlowRotation,0,0,0,0,0);
//The slow rotation.
RotationInterpolator bladeRotationStart = new RotationInterpolator(
bladeRotationStartAlpha,tgmRotor,
bladeRotationAxis,0.0f,(float) Math.PI*2);
BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0),Double.MAX_VALUE);
bladeRotationStart.setSchedulingBounds(bounds);
int timeFastRotation = 500; //A fast rotation takes 0.5 seconds.
int timeOneWayFlight = 2000;//The helicopter rises within 2 seconds.
int timeHovering = 1000;//It shall hover for one second.
int timeStartWait = 1000;//The helicopter should start its flight when the rotor
//blade has been rotating fast for one second.
//The overall time when the helicopter should start its flight.
int timeFlightStart = timeStartRotor+timeSlowRotation*noStartRotations+timeStartWait;
//Number of fast rotations.
int noFastRotations = 1+ ((timeStartWait+2*timeOneWayFlight+timeHovering)/timeFastRotation);
//The Alpha for the fast rotations.
Alpha bladeRotationAlpha = new Alpha(noFastRotations,Alpha.INCREASING_ENABLE,
timeStartRotor+timeSlowRotation*noStartRotations,
0,timeFastRotation,0,0,0,0,0);
//The fast rotation.
RotationInterpolator bladeRotation = new RotationInterpolator(
bladeRotationAlpha,tgmRotor,
bladeRotationAxis,0.0f,(float) Math.PI*2);
bladeRotation.setSchedulingBounds(bounds);
//The slow and the fast rotation are assigned to the transformation group
//of the rotor blade. These rotations are carried out in the origin so far.
//The later transformations will place everything correctly.