UNPKG

babylon-mmd

Version:
21 lines (20 loc) 494 B
/** * Quaternion to axis angle * @param q quaternion * @param outAxis output axis * @param tempQuaternion temporary quaternion * @returns angle */ export function QuaternionToAxisAngle(q, outAxis) { outAxis.set(q.x, q.y, q.z); const length = outAxis.length(); if (length >= 1.0e-8) { const angle = 2.0 * Math.atan2(length, q.w); outAxis.scaleInPlace(1.0 / length); return angle; } else { outAxis.set(1, 0, 0); return 0; } }