package org.saintandreas.vr;
import org.saintandreas.math.Matrix4f;
import org.saintandreas.math.Quaternion;
import org.saintandreas.math.Vector3f;
import com.oculusvr.capi.OvrMatrix4f;
import com.oculusvr.capi.OvrQuaternionf;
import com.oculusvr.capi.OvrVector3f;
import com.oculusvr.capi.Posef;
public class RiftUtils {
public static Vector3f toVector3f(OvrVector3f v) {
return new Vector3f(v.x, v.y, v.z);
}
public static Quaternion toQuaternion(OvrQuaternionf q) {
return new Quaternion(q.x, q.y, q.z, q.w);
}
public static Matrix4f toMatrix4f(Posef p) {
return new Matrix4f().rotate(toQuaternion(p.Orientation)).mult(new Matrix4f().translate(toVector3f(p.Position)));
}
public static Matrix4f toMatrix4f(OvrMatrix4f m) {
if (null == m) {
return new Matrix4f();
}
return new Matrix4f(m.M).transpose();
}
}