-
Notifications
You must be signed in to change notification settings - Fork 5
/
RotationMatrix.java
31 lines (24 loc) · 1.07 KB
/
RotationMatrix.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.mcmiddleearth.entities.util;
import org.bukkit.util.Vector;
public class RotationMatrix {
private final Vector first, second, third;
public RotationMatrix(Vector first, Vector second, Vector third) {
this.first = first;
this.second = second;
this.third = third;
}
public static Vector fastRotateY(Vector vector, float angle) {
double radian = angle/180*Math.PI;
double sin = Math.sin(radian);
double cos = Math.cos(radian);
return new Vector(cos*vector.getX()+sin*vector.getZ(),vector.getY(),-sin*vector.getX()+cos*vector.getZ());
}
public Vector multiply(Vector vector) {
return new Vector(first.getX()*vector.getX()+second.getX()*vector.getY()+third.getX()*vector.getZ(),
first.getY()*vector.getX()+second.getY()*vector.getY()+third.getY()*vector.getZ(),
first.getZ()*vector.getZ()+second.getZ()*vector.getY()+third.getZ()*vector.getZ());
}
public RotationMatrix multiply(RotationMatrix other) {
return null;
}
}