// This file is part of meshoptimizer library and is distributed under the terms of MIT License. // Copyright (C) 2016-2019, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) var MeshoptDecoder = (function() { "use strict"; var wasm = "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"; var memory = new WebAssembly.Memory({ initial: 1 }); var heap = new Uint8Array(memory.buffer); var brk = 32768; // stack top var sbrk = function(size) { var old = brk; brk += size; if (brk > heap.length) { memory.grow(Math.ceil((brk - heap.length) / 65536)); heap = new Uint8Array(memory.buffer); } return old; }; var imports = { env: { memory: memory, _emscripten_memcpy_big: function(d, s, n) { heap.set(heap.subarray(s, s + n), d); }, } }; var instance = {}; var promise = (typeof fetch === 'function' ? fetch('data:application/octet-stream;base64,' + wasm) .then(response => response.arrayBuffer()) : Promise.resolve(Buffer.from(wasm, 'base64').buffer)) .then(bytes => WebAssembly.instantiate(bytes, imports)) .then(result => instance = result.instance); var decode = function(fun, target, count, size, source) { var tp = sbrk(count * size); var sp = sbrk(source.length); heap.set(source, sp); var res = fun(tp, count, size, sp, source.length); target.set(heap.subarray(tp, tp + count * size), 0); sbrk(tp - sbrk(0)); if (res != 0) { throw new Error("Malformed buffer data: " + res); } }; return { ready: promise, decodeVertexBuffer: function(target, count, size, source) { decode(instance.exports["_meshopt_decodeVertexBuffer"], target, count, size, source); }, decodeIndexBuffer: function(target, count, size, source) { decode(instance.exports["_meshopt_decodeIndexBuffer"], target, count, size, source); } } })(); if (typeof exports === 'object' && typeof module === 'object') module.exports = MeshoptDecoder; else if (typeof define === 'function' && define['amd']) define([], function() { return MeshoptDecoder; }); else if (typeof exports === 'object') exports["MeshoptDecoder"] = MeshoptDecoder;