package org.pollux3d.animation.cam;
import org.pollux3d.animation.AbstractAnimation;
import com.jme3.math.Vector2f;
public class CamRotationOffsetAnimation extends AbstractAnimation {
private Vector2f start = Vector2f.ZERO;
private Vector2f rotationOffset = Vector2f.ZERO;
private Vector2f target = Vector2f.ZERO;
public CamRotationOffsetAnimation(float defaultAnimationTime, float minAnimationTime) {
super(defaultAnimationTime, minAnimationTime);
}
public void animate(float vertical, float horizontal) {
this.animate(vertical, horizontal, 0); //default time
}
public void animate(float vertical, float horizontal, float time) {
setAnimationTime(time);
this.start = rotationOffset;
this.target = new Vector2f(vertical, horizontal);
}
public void update(float tpf) {
if (!isFinished()) {
updateTimer(tpf);
float p = getProgress();
rotationOffset = start.add(target.subtract(start).mult(p));
}
}
public Vector2f getRotationOffset() {
return rotationOffset;
}
}