Renderer/src/main/java/electrosphere/renderer/anim/Keyframe.java
austin f4f288c8d5
Some checks reported errors
studiorailgun/Renderer/pipeline/head Something is wrong with the build of this commit
recoil on attack block
2024-09-09 17:08:02 -04:00

74 lines
1.5 KiB
Java

package electrosphere.renderer.anim;
import org.joml.Quaterniond;
import org.joml.Vector3f;
/**
* A single keyframe of a single node within an animation
*/
public class Keyframe implements Comparable<Keyframe>{
/**
* The time the keyframe occurs at
*/
double time;
/**
* The position of the keyframe
*/
Vector3f position;
/**
* The rotation of the keyframe
*/
Quaterniond rotation;
/**
* The scale of the keyframe
*/
Vector3f scale;
/**
* Creates a keyframe
* @param time The time the keyframe occurs at
*/
public Keyframe(double time){
this.time = time;
}
@Override
public int compareTo(Keyframe frame) {
if(time > frame.getTime()){
return 1;
} else if(time < frame.getTime()){
return -1;
} else {
return 0;
}
}
/**
* Gets the time of the keyframe
* @return The time
*/
public double getTime(){
return time;
}
@Override
public String toString(){
String rVal = "hash[" + this.hashCode() + "] ";
rVal = rVal + "time[" + time + "]";
if(position != null){
rVal = rVal + " position:" + position.toString();
}
if(rotation != null){
rVal = rVal + " rotation:" + rotation.toString();
}
if(scale != null){
rVal = rVal + " scale:" + scale.toString();
}
return rVal;
}
}