UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

28 lines (24 loc) 769 B
import { v3_length } from "./v3_length.js"; /** * Perform rotation on a direction vector using 3x3 portion of a 4x4 matrix * @param {number[]|Float32Array} output * @param {number} output_offset * @param {number} x * @param {number} y * @param {number} z * @param {number[]|Float32Array} m4 */ export function v3_matrix4_rotate( output, output_offset, x, y, z, m4 ) { const _x = m4[0] * x + m4[4] * y + m4[8] * z; const _y = m4[1] * x + m4[5] * y + m4[9] * z; const _z = m4[2] * x + m4[6] * y + m4[10] * z; // perform normalization const norm = 1 / v3_length(_x, _y, _z); output[output_offset] = _x * norm; output[output_offset + 1] = _y * norm; output[output_offset + 2] = _z * norm; }