@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
30 lines (23 loc) • 714 B
JavaScript
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;
}