@babylonjs/viewer
Version:
The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.
36 lines (34 loc) • 1.17 kB
JavaScript
function packMat4IntoF32WithOffset(view, mat, offsetFloats, srcOffsetFloats, offsetX, offsetY, offsetZ) {
const src = mat;
const s = srcOffsetFloats;
const o = offsetFloats;
view[o + 0] = src[s + 0];
view[o + 1] = src[s + 1];
view[o + 2] = src[s + 2];
view[o + 3] = src[s + 3];
view[o + 4] = src[s + 4];
view[o + 5] = src[s + 5];
view[o + 6] = src[s + 6];
view[o + 7] = src[s + 7];
view[o + 8] = src[s + 8];
view[o + 9] = src[s + 9];
view[o + 10] = src[s + 10];
view[o + 11] = src[s + 11];
view[o + 12] = src[s + 12] - offsetX;
view[o + 13] = src[s + 13] - offsetY;
view[o + 14] = src[s + 14] - offsetZ;
view[o + 15] = src[s + 15];
}
function makePackMeshWorld(scene) {
return (view, mat, offsetFloats, srcOffsetFloats) => {
const cam = scene.camera;
if (!cam) {
packMat4IntoF32WithOffset(view, mat, offsetFloats, srcOffsetFloats, 0, 0, 0);
return;
}
const w = cam.worldMatrix;
packMat4IntoF32WithOffset(view, mat, offsetFloats, srcOffsetFloats, w[12], w[13], w[14]);
};
}
export { makePackMeshWorld, packMat4IntoF32WithOffset };
//# sourceMappingURL=pack-mat4-with-offset-BPdKUZol.esm.js.map