UNPKG

soonspacejs

Version:
43 lines (42 loc) 1.13 kB
import { BufferGeometry as m, BufferAttribute as u } from "three"; import { MeshBVH as c } from "three-mesh-bvh"; onmessage = function({ data: n }) { let i = performance.now(); function p(e) { const o = performance.now(); (o - i >= 10 || e === 1) && (postMessage({ error: null, serialized: null, position: null, progress: e }), i = o); } try { if (!n) { postMessage(n); return; } const { index: e, position: o, options: r } = n, s = new m(); if (s.setAttribute("position", new u(o, 3, !1)), e && s.setIndex(new u(e, 1, !1)), r.includedProgressCallback && (r.onProgress = p), r.groups) { const f = r.groups; for (const g in f) { const t = f[g]; s.addGroup(t.start, t.count, t.materialIndex); } } const a = new c(s, r), l = c.serialize(a, { cloneBuffers: !1 }); postMessage({ error: null, serialized: l, position: o, progress: 1 }, [o.buffer, ...l.roots]); } catch (e) { postMessage({ error: e, serialized: null, position: null, progress: 1 }); } };