AE2 First Commit, the dawn of 1.7 hast arrived.
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
package appeng.util.math;
|
||||
|
||||
import org.lwjgl.util.vector.Quaternion;
|
||||
import org.lwjgl.util.vector.Vector3f;
|
||||
|
||||
public class Helper
|
||||
{
|
||||
|
||||
public static final Helper instance = new Helper();
|
||||
|
||||
public Quaternion getRotation(Vector3f vForward, Vector3f vUp)
|
||||
{
|
||||
Vector3f vRight = new Vector3f();
|
||||
Vector3f.cross( vUp, vForward, vRight );
|
||||
|
||||
/*
|
||||
* vRight.x vRight.y, vRight.z, vUp.x, vUp.y, vUp.z, vForward.x,
|
||||
* vForward.y, vForward.z
|
||||
*/
|
||||
|
||||
Quaternion qrot = new Quaternion();
|
||||
qrot.w = (float) Math.sqrt( 1.0f + vRight.x + vUp.y + vForward.z ) / 2.0f;
|
||||
double dfWScale = qrot.w * 4.0;
|
||||
qrot.x = (float) ((vForward.y - vUp.z) / dfWScale);
|
||||
qrot.y = (float) ((vRight.z - vForward.x) / dfWScale);
|
||||
qrot.z = (float) ((vUp.x - vRight.y) / dfWScale);
|
||||
|
||||
return qrot;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user