package gl.animations;
import gl.Renderable;
import gl.scenegraph.MeshComponent;
import javax.microedition.khronos.opengles.GL10;
import util.Vec;
import worldData.Updateable;
import worldData.Visitor;
/**
* This animation rotates a {@link MeshComponent}
*
* @author Spobo
*
*/
public class AnimationRotate extends GLAnimation {
private float angle = 0;
private final float speed;
private final Vec rotVec;
/**
* @param speed
* something around 30 to 100
* @param rotationVector
*/
public AnimationRotate(float speed, Vec rotationVector) {
this.speed = speed;
rotVec = rotationVector;
}
@Override
public boolean update(float timeDelta, Updateable parent) {
if (angle > 360) {
angle = 0;
}
angle = angle + timeDelta * speed;
return true;
}
@Override
public void render(GL10 gl, Renderable parent) {
gl.glRotatef(angle, rotVec.x, rotVec.y, rotVec.z);
}
@Override
public boolean accept(Visitor visitor) {
return visitor.default_visit(this);
}
}