UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

30 lines (23 loc) 714 B
import { v2_length_sqr } from "./v2_length_sqr.js"; /** * * @param {number[]|Float32Array} output * @param {number} output_offset * @param {number[]|Float32Array} input * @param {number} input_offset */ export function v2_array_normalize( output, output_offset, input, input_offset, ) { // extract vector components const x = input[input_offset]; const y = input[input_offset + 1]; // compute vector inverse magnitude const length_sqr = v2_length_sqr(x, y); // avoid division by 0 const n = length_sqr !== 0 ? 1.0 / Math.sqrt(length_sqr) : 1; // write back output[output_offset] = x * n; output[output_offset + 1] = y * n; }