mirror of
https://github.com/CesiumGS/obj2gltf.git
synced 2025-02-07 07:22:51 -05:00
42 lines
877 B
JavaScript
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;
|
|
}
|