quaternionToOrientation function
Vector3
quaternionToOrientation(
- Quaternion q
Implementation
Vector3 quaternionToOrientation(Quaternion q) {
// final Matrix4 m = Matrix4.compose(Vector3.zero(), q, Vector3.all(1.0));
// final Vector v = motionSensors.getOrientation(m);
// return Vector3(v.z, v.y, v.x);
final storage = q.storage;
final double x = storage[0];
final double y = storage[1];
final double z = storage[2];
final double w = storage[3];
final double roll = math.atan2(-2 * (x * y - w * z), 1.0 - 2 * (x * x + z * z));
final double pitch = math.asin(2 * (y * z + w * x));
final double yaw = math.atan2(-2 * (x * z - w * y), 1.0 - 2 * (x * x + y * y));
return Vector3(yaw, pitch, roll);
}