UNPKG

shaka-player

Version:
46 lines (41 loc) 936 B
/*! @license * glMatrix: https://github.com/toji/gl-matrix/ * Copyright 2015-2021, Brandon Jones, Colin MacKenzie IV * SPDX-License-Identifier: MIT */ goog.provide('shaka.ui.MatrixQuaternion'); /** * Quaternion in the format XYZW */ shaka.ui.MatrixQuaternion = class { /** * Creates a new identity quaternion * * @return {!Float32Array} a new quaternion */ static create() { const out = new Float32Array(4); out[3] = 1; return out; } /** * Normalize a quaternion * * @param {!Float32Array} out the receiving quaternion * @param {!Float32Array} a quaternion to normalize */ static normalize(out, a) { const x = a[0]; const y = a[1]; const z = a[2]; const w = a[3]; let len = x * x + y * y + z * z + w * w; if (len > 0) { len = 1 / Math.sqrt(len); } out[0] = x * len; out[1] = y * len; out[2] = z * len; out[3] = w * len; } };