Package org.pollux3d.animation.cam

Source Code of org.pollux3d.animation.cam.CamPositionAnimation

package org.pollux3d.animation.cam;

import org.pollux3d.animation.AbstractAnimation;

import com.jme3.math.Vector3f;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;

public class CamPositionAnimation extends AbstractAnimation {
 
  private Vector3f start = Vector3f.ZERO;
  private Spatial position = new Node("PolluxCamPos");
  private Spatial target = new Node("PolluxCamTarget");

  public CamPositionAnimation(Spatial position, float defaultAnimationTime,  float minAnimationTime) {
    super(defaultAnimationTime, minAnimationTime);
    this.position = position;
  }
 
  public void animate(Spatial target) {
    this.animate(target, 0); //default time
  }
 
  public void animate(Spatial target, float time) {
    setAnimationTime(time);
    start = position.getLocalTranslation().clone();
    this.target = target;
  }
 
  public void update(float tpf) {
    if (!isFinished()) {
      updateTimer(tpf);
      float p = getProgress();
      Vector3f tar = target.getLocalTranslation();
      Vector3f route = tar.subtract(start);
      route.multLocal(p);
      Vector3f newPos = start.add(route);
      position.setLocalTranslation(newPos);
    }
  }

}
TOP

Related Classes of org.pollux3d.animation.cam.CamPositionAnimation

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.