obj2gltf/lib/util.js

42 lines
877 B
JavaScript

"use strict";
module.exports = {
defined : defined,
defaultValue : defaultValue,
normalize : normalize,
faceNormal : faceNormal
};
function defined(value) {
return value !== undefined;
}
function defaultValue(a, b) {
if (a !== undefined) {
return a;
}
return b;
}
var result = [0, 0, 0];
function normalize(x, y, z) {
var magnitude = Math.sqrt(x * x + y * y + z * z);
result[0] = x / magnitude;
result[1] = y / magnitude;
result[2] = z / magnitude;
return result;
}
function faceNormal(x1, y1, z1, x2, y2, z2, x3, y3, z3) {
var e1x = x2 - x1;
var e1y = y2 - y1;
var e1z = z2 - z1;
var e2x = x3 - x1;
var e2y = y3 - y1;
var e2z = z3 - z1;
result[0] = (e1y * e2z) - (e1z * e2y);
result[1] = (e1z * e2x) - (e1x * e2z);
result[2] = (e1x * e2y) - (e1y * e2x);
return result;
}