{"version":3,"file":"vendor.thatopen-979c346d.86f80a1df8f8307b.bundle.js","mappings":"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","sources":["webpack://client-app/./node_modules/@thatopen/fragments/dist/index.mjs"],"sourcesContent":["var Ke = Object.defineProperty;\nvar je = (a, t, s) => t in a ? Ke(a, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : a[t] = s;\nvar S = (a, t, s) => (je(a, typeof t != \"symbol\" ? t + \"\" : t, s), s);\nimport * as L from \"three\";\nimport { BufferAttribute as Me, Vector3 as T, Vector2 as Xt, Plane as Se, Line3 as dt, Triangle as is, Sphere as $e, Matrix4 as vt, Box3 as rt, BackSide as He, DoubleSide as Xe, FrontSide as re, Mesh as Be, Ray as Ye, BufferGeometry as ce } from \"three\";\nclass ae extends L.InstancedMesh {\n /**\n * Constructs a new FragmentMesh.\n *\n * @param geometry - The geometry for the mesh. Must be indexed.\n * @param material - The material(s) for the mesh. If a single material is provided, it will be wrapped in an array.\n * @param count - The number of instances to create.\n * @param fragment - The fragment associated with this mesh.\n */\n constructor(s, e, i, n) {\n super(s, e, i);\n /**\n * The fragment associated with this mesh.\n */\n S(this, \"fragment\");\n /**\n * The materials used by this mesh.\n * If a single material is provided, it will be wrapped in an array.\n */\n S(this, \"material\");\n /**\n * The geometry used by this mesh.\n * It must be an IndexedGeometry.\n */\n S(this, \"geometry\");\n if (Array.isArray(e) || (e = [e]), this.material = e, !s.index)\n throw new Error(\"The geometry for fragments must be indexed!\");\n this.geometry = s, this.fragment = n;\n const o = s.index.count;\n s.groups.length || s.groups.push({\n start: 0,\n count: o,\n materialIndex: 0\n });\n }\n /**\n * Exports the data of the fragment mesh to a serializable format.\n *\n * @returns An object containing the position, normal, index, groups, materials, matrices, and colors of the fragment mesh.\n */\n exportData() {\n const s = this.geometry.attributes.position.array, e = this.geometry.attributes.normal.array, i = Array.from(this.geometry.index.array), n = [];\n for (const f of this.geometry.groups) {\n const l = f.materialIndex || 0, { start: b, count: h } = f;\n n.push(b, h, l);\n }\n const o = [];\n if (Array.isArray(this.material))\n for (const f of this.material) {\n const l = f.opacity, b = f.transparent ? 1 : 0, h = new L.Color(f.color).toArray();\n o.push(l, b, ...h);\n }\n const r = Array.from(this.instanceMatrix.array);\n let c;\n return this.instanceColor !== null ? c = Array.from(this.instanceColor.array) : c = [], {\n position: s,\n normal: e,\n index: i,\n groups: n,\n materials: o,\n matrices: r,\n colors: c\n };\n }\n}\nconst Te = 0, Ze = 1, Je = 2, fe = 2, Ts = 1.25, le = 1, vs = 6 * 4 + 4 + 4, Ms = 65535, We = Math.pow(2, -24), Os = Symbol(\"SKIP_GENERATION\");\nfunction Qe(a) {\n return a.index ? a.index.count : a.attributes.position.count;\n}\nfunction Yt(a) {\n return Qe(a) / 3;\n}\nfunction ti(a, t = ArrayBuffer) {\n return a > 65535 ? new Uint32Array(new t(4 * a)) : new Uint16Array(new t(2 * a));\n}\nfunction si(a, t) {\n if (!a.index) {\n const s = a.attributes.position.count, e = t.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer, i = ti(s, e);\n a.setIndex(new Me(i, 1));\n for (let n = 0; n < s; n++)\n i[n] = n;\n }\n}\nfunction Oe(a) {\n const t = Yt(a), s = a.drawRange, e = s.start / 3, i = (s.start + s.count) / 3, n = Math.max(0, e), o = Math.min(t, i) - n;\n return [{\n offset: Math.floor(n),\n count: Math.floor(o)\n }];\n}\nfunction Le(a) {\n if (!a.groups || !a.groups.length)\n return Oe(a);\n const t = [], s = /* @__PURE__ */ new Set(), e = a.drawRange, i = e.start / 3, n = (e.start + e.count) / 3;\n for (const r of a.groups) {\n const c = r.start / 3, f = (r.start + r.count) / 3;\n s.add(Math.max(i, c)), s.add(Math.min(n, f));\n }\n const o = Array.from(s.values()).sort((r, c) => r - c);\n for (let r = 0; r < o.length - 1; r++) {\n const c = o[r], f = o[r + 1];\n t.push({\n offset: Math.floor(c),\n count: Math.floor(f - c)\n });\n }\n return t;\n}\nfunction ei(a) {\n if (a.groups.length === 0)\n return !1;\n const t = Yt(a), s = Le(a).sort((n, o) => n.offset - o.offset), e = s[s.length - 1];\n e.count = Math.min(t - e.offset, e.count);\n let i = 0;\n return s.forEach(({ count: n }) => i += n), t !== i;\n}\nfunction R(a, t, s) {\n return s.min.x = t[a], s.min.y = t[a + 1], s.min.z = t[a + 2], s.max.x = t[a + 3], s.max.y = t[a + 4], s.max.z = t[a + 5], s;\n}\nfunction ii(a) {\n a[0] = a[1] = a[2] = 1 / 0, a[3] = a[4] = a[5] = -1 / 0;\n}\nfunction he(a) {\n let t = -1, s = -1 / 0;\n for (let e = 0; e < 3; e++) {\n const i = a[e + 3] - a[e];\n i > s && (s = i, t = e);\n }\n return t;\n}\nfunction be(a, t) {\n t.set(a);\n}\nfunction ue(a, t, s) {\n let e, i;\n for (let n = 0; n < 3; n++) {\n const o = n + 3;\n e = a[n], i = t[n], s[n] = e < i ? e : i, e = a[o], i = t[o], s[o] = e > i ? e : i;\n }\n}\nfunction as(a, t, s) {\n for (let e = 0; e < 3; e++) {\n const i = t[a + 2 * e], n = t[a + 2 * e + 1], o = i - n, r = i + n;\n o < s[e] && (s[e] = o), r > s[e + 3] && (s[e + 3] = r);\n }\n}\nfunction Jt(a) {\n const t = a[3] - a[0], s = a[4] - a[1], e = a[5] - a[2];\n return 2 * (t * s + s * e + e * t);\n}\nfunction Ls(a, t, s, e, i = null) {\n let n = 1 / 0, o = 1 / 0, r = 1 / 0, c = -1 / 0, f = -1 / 0, l = -1 / 0, b = 1 / 0, h = 1 / 0, u = 1 / 0, _ = -1 / 0, w = -1 / 0, y = -1 / 0;\n const d = i !== null;\n for (let p = t * 6, I = (t + s) * 6; p < I; p += 6) {\n const m = a[p + 0], g = a[p + 1], A = m - g, F = m + g;\n A < n && (n = A), F > c && (c = F), d && m < b && (b = m), d && m > _ && (_ = m);\n const x = a[p + 2], C = a[p + 3], v = x - C, M = x + C;\n v < o && (o = v), M > f && (f = M), d && x < h && (h = x), d && x > w && (w = x);\n const V = a[p + 4], P = a[p + 5], B = V - P, O = V + P;\n B < r && (r = B), O > l && (l = O), d && V < u && (u = V), d && V > y && (y = V);\n }\n e[0] = n, e[1] = o, e[2] = r, e[3] = c, e[4] = f, e[5] = l, d && (i[0] = b, i[1] = h, i[2] = u, i[3] = _, i[4] = w, i[5] = y);\n}\nfunction ni(a, t, s, e) {\n let i = 1 / 0, n = 1 / 0, o = 1 / 0, r = -1 / 0, c = -1 / 0, f = -1 / 0;\n for (let l = t * 6, b = (t + s) * 6; l < b; l += 6) {\n const h = a[l + 0];\n h < i && (i = h), h > r && (r = h);\n const u = a[l + 2];\n u < n && (n = u), u > c && (c = u);\n const _ = a[l + 4];\n _ < o && (o = _), _ > f && (f = _);\n }\n e[0] = i, e[1] = n, e[2] = o, e[3] = r, e[4] = c, e[5] = f;\n}\nfunction oi(a, t) {\n ii(t);\n const s = a.attributes.position, e = a.index ? a.index.array : null, i = Yt(a), n = new Float32Array(i * 6), o = s.normalized, r = s.array, c = s.offset || 0;\n let f = 3;\n s.isInterleavedBufferAttribute && (f = s.data.stride);\n const l = [\"getX\", \"getY\", \"getZ\"];\n for (let b = 0; b < i; b++) {\n const h = b * 3, u = b * 6;\n let _ = h + 0, w = h + 1, y = h + 2;\n e && (_ = e[_], w = e[w], y = e[y]), o || (_ = _ * f + c, w = w * f + c, y = y * f + c);\n for (let d = 0; d < 3; d++) {\n let p, I, m;\n o ? (p = s[l[d]](_), I = s[l[d]](w), m = s[l[d]](y)) : (p = r[_ + d], I = r[w + d], m = r[y + d]);\n let g = p;\n I < g && (g = I), m < g && (g = m);\n let A = p;\n I > A && (A = I), m > A && (A = m);\n const F = (A - g) / 2, x = d * 2;\n n[u + x + 0] = g + F, n[u + x + 1] = F + (Math.abs(g) + F) * We, g < t[d] && (t[d] = g), A > t[d + 3] && (t[d + 3] = A);\n }\n }\n return n;\n}\nconst ft = 32, ri = (a, t) => a.candidate - t.candidate, gt = new Array(ft).fill().map(() => ({\n count: 0,\n bounds: new Float32Array(6),\n rightCacheBounds: new Float32Array(6),\n leftCacheBounds: new Float32Array(6),\n candidate: 0\n})), fs = new Float32Array(6);\nfunction ci(a, t, s, e, i, n) {\n let o = -1, r = 0;\n if (n === Te)\n o = he(t), o !== -1 && (r = (t[o] + t[o + 3]) / 2);\n else if (n === Ze)\n o = he(a), o !== -1 && (r = ai(s, e, i, o));\n else if (n === Je) {\n const c = Jt(a);\n let f = Ts * i;\n const l = e * 6, b = (e + i) * 6;\n for (let h = 0; h < 3; h++) {\n const u = t[h], y = (t[h + 3] - u) / ft;\n if (i < ft / 4) {\n const d = [...gt];\n d.length = i;\n let p = 0;\n for (let m = l; m < b; m += 6, p++) {\n const g = d[p];\n g.candidate = s[m + 2 * h], g.count = 0;\n const {\n bounds: A,\n leftCacheBounds: F,\n rightCacheBounds: x\n } = g;\n for (let C = 0; C < 3; C++)\n x[C] = 1 / 0, x[C + 3] = -1 / 0, F[C] = 1 / 0, F[C + 3] = -1 / 0, A[C] = 1 / 0, A[C + 3] = -1 / 0;\n as(m, s, A);\n }\n d.sort(ri);\n let I = i;\n for (let m = 0; m < I; m++) {\n const g = d[m];\n for (; m + 1 < I && d[m + 1].candidate === g.candidate; )\n d.splice(m + 1, 1), I--;\n }\n for (let m = l; m < b; m += 6) {\n const g = s[m + 2 * h];\n for (let A = 0; A < I; A++) {\n const F = d[A];\n g >= F.candidate ? as(m, s, F.rightCacheBounds) : (as(m, s, F.leftCacheBounds), F.count++);\n }\n }\n for (let m = 0; m < I; m++) {\n const g = d[m], A = g.count, F = i - g.count, x = g.leftCacheBounds, C = g.rightCacheBounds;\n let v = 0;\n A !== 0 && (v = Jt(x) / c);\n let M = 0;\n F !== 0 && (M = Jt(C) / c);\n const V = le + Ts * (v * A + M * F);\n V < f && (o = h, f = V, r = g.candidate);\n }\n } else {\n for (let I = 0; I < ft; I++) {\n const m = gt[I];\n m.count = 0, m.candidate = u + y + I * y;\n const g = m.bounds;\n for (let A = 0; A < 3; A++)\n g[A] = 1 / 0, g[A + 3] = -1 / 0;\n }\n for (let I = l; I < b; I += 6) {\n let A = ~~((s[I + 2 * h] - u) / y);\n A >= ft && (A = ft - 1);\n const F = gt[A];\n F.count++, as(I, s, F.bounds);\n }\n const d = gt[ft - 1];\n be(d.bounds, d.rightCacheBounds);\n for (let I = ft - 2; I >= 0; I--) {\n const m = gt[I], g = gt[I + 1];\n ue(m.bounds, g.rightCacheBounds, m.rightCacheBounds);\n }\n let p = 0;\n for (let I = 0; I < ft - 1; I++) {\n const m = gt[I], g = m.count, A = m.bounds, x = gt[I + 1].rightCacheBounds;\n g !== 0 && (p === 0 ? be(A, fs) : ue(A, fs, fs)), p += g;\n let C = 0, v = 0;\n p !== 0 && (C = Jt(fs) / c);\n const M = i - p;\n M !== 0 && (v = Jt(x) / c);\n const V = le + Ts * (C * p + v * M);\n V < f && (o = h, f = V, r = m.candidate);\n }\n }\n }\n } else\n console.warn(`MeshBVH: Invalid build strategy value ${n} used.`);\n return { axis: o, pos: r };\n}\nfunction ai(a, t, s, e) {\n let i = 0;\n for (let n = t, o = t + s; n < o; n++)\n i += a[n * 6 + e * 2];\n return i / s;\n}\nclass ls {\n constructor() {\n }\n}\nfunction fi(a, t, s, e, i, n) {\n let o = e, r = e + i - 1;\n const c = n.pos, f = n.axis * 2;\n for (; ; ) {\n for (; o <= r && s[o * 6 + f] < c; )\n o++;\n for (; o <= r && s[r * 6 + f] >= c; )\n r--;\n if (o < r) {\n for (let l = 0; l < 3; l++) {\n let b = t[o * 3 + l];\n t[o * 3 + l] = t[r * 3 + l], t[r * 3 + l] = b;\n }\n for (let l = 0; l < 6; l++) {\n let b = s[o * 6 + l];\n s[o * 6 + l] = s[r * 6 + l], s[r * 6 + l] = b;\n }\n o++, r--;\n } else\n return o;\n }\n}\nfunction li(a, t, s, e, i, n) {\n let o = e, r = e + i - 1;\n const c = n.pos, f = n.axis * 2;\n for (; ; ) {\n for (; o <= r && s[o * 6 + f] < c; )\n o++;\n for (; o <= r && s[r * 6 + f] >= c; )\n r--;\n if (o < r) {\n let l = a[o];\n a[o] = a[r], a[r] = l;\n for (let b = 0; b < 6; b++) {\n let h = s[o * 6 + b];\n s[o * 6 + b] = s[r * 6 + b], s[r * 6 + b] = h;\n }\n o++, r--;\n } else\n return o;\n }\n}\nfunction hi(a, t) {\n const s = (a.index ? a.index.count : a.attributes.position.count) / 3, e = s > 2 ** 16, i = e ? 4 : 2, n = t ? new SharedArrayBuffer(s * i) : new ArrayBuffer(s * i), o = e ? new Uint32Array(n) : new Uint16Array(n);\n for (let r = 0, c = o.length; r < c; r++)\n o[r] = r;\n return o;\n}\nfunction bi(a, t) {\n const s = a.geometry, e = s.index ? s.index.array : null, i = t.maxDepth, n = t.verbose, o = t.maxLeafTris, r = t.strategy, c = t.onProgress, f = Yt(s), l = a._indirectBuffer;\n let b = !1;\n const h = new Float32Array(6), u = new Float32Array(6), _ = oi(s, h), w = t.indirect ? li : fi, y = [], d = t.indirect ? Oe(s) : Le(s);\n if (d.length === 1) {\n const m = d[0], g = new ls();\n g.boundingData = h, ni(_, m.offset, m.count, u), I(g, m.offset, m.count, u), y.push(g);\n } else\n for (let m of d) {\n const g = new ls();\n g.boundingData = new Float32Array(6), Ls(_, m.offset, m.count, g.boundingData, u), I(g, m.offset, m.count, u), y.push(g);\n }\n return y;\n function p(m) {\n c && c(m / f);\n }\n function I(m, g, A, F = null, x = 0) {\n if (!b && x >= i && (b = !0, n && (console.warn(`MeshBVH: Max depth of ${i} reached when generating BVH. Consider increasing maxDepth.`), console.warn(s))), A <= o || x >= i)\n return p(g + A), m.offset = g, m.count = A, m;\n const C = ci(m.boundingData, F, _, g, A, r);\n if (C.axis === -1)\n return p(g + A), m.offset = g, m.count = A, m;\n const v = w(l, e, _, g, A, C);\n if (v === g || v === g + A)\n p(g + A), m.offset = g, m.count = A;\n else {\n m.splitAxis = C.axis;\n const M = new ls(), V = g, P = v - g;\n m.left = M, M.boundingData = new Float32Array(6), Ls(_, V, P, M.boundingData, u), I(M, V, P, u, x + 1);\n const B = new ls(), O = v, D = A - P;\n m.right = B, B.boundingData = new Float32Array(6), Ls(_, O, D, B.boundingData, u), I(B, O, D, u, x + 1);\n }\n return m;\n }\n}\nfunction ui(a, t) {\n const s = a.geometry;\n t.indirect && (a._indirectBuffer = hi(s, t.useSharedArrayBuffer), ei(s) && !t.verbose && console.warn(\n 'MeshBVH: Provided geometry contains groups that do not fully span the vertex contents while using the \"indirect\" option. BVH may incorrectly report intersections on unrendered portions of the geometry.'\n )), a._indirectBuffer || si(s, t);\n const e = bi(a, t);\n let i, n, o;\n const r = [], c = t.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer;\n for (let b = 0; b < e.length; b++) {\n const h = e[b];\n let u = f(h);\n const _ = new c(vs * u);\n i = new Float32Array(_), n = new Uint32Array(_), o = new Uint16Array(_), l(0, h), r.push(_);\n }\n a._roots = r;\n return;\n function f(b) {\n return b.count ? 1 : 1 + f(b.left) + f(b.right);\n }\n function l(b, h) {\n const u = b / 4, _ = b / 2, w = !!h.count, y = h.boundingData;\n for (let d = 0; d < 6; d++)\n i[u + d] = y[d];\n if (w) {\n const d = h.offset, p = h.count;\n return n[u + 6] = d, o[_ + 14] = p, o[_ + 15] = Ms, b + vs;\n } else {\n const d = h.left, p = h.right, I = h.splitAxis;\n let m;\n if (m = l(b + vs, d), m / 4 > Math.pow(2, 32))\n throw new Error(\"MeshBVH: Cannot store child pointer greater than 32 bits.\");\n return n[u + 6] = m / 4, m = l(m, p), n[u + 7] = I, m;\n }\n }\n}\nclass _t {\n constructor() {\n this.min = 1 / 0, this.max = -1 / 0;\n }\n setFromPointsField(t, s) {\n let e = 1 / 0, i = -1 / 0;\n for (let n = 0, o = t.length; n < o; n++) {\n const c = t[n][s];\n e = c < e ? c : e, i = c > i ? c : i;\n }\n this.min = e, this.max = i;\n }\n setFromPoints(t, s) {\n let e = 1 / 0, i = -1 / 0;\n for (let n = 0, o = s.length; n < o; n++) {\n const r = s[n], c = t.dot(r);\n e = c < e ? c : e, i = c > i ? c : i;\n }\n this.min = e, this.max = i;\n }\n isSeparated(t) {\n return this.min > t.max || t.min > this.max;\n }\n}\n_t.prototype.setFromBox = function() {\n const a = new T();\n return function(s, e) {\n const i = e.min, n = e.max;\n let o = 1 / 0, r = -1 / 0;\n for (let c = 0; c <= 1; c++)\n for (let f = 0; f <= 1; f++)\n for (let l = 0; l <= 1; l++) {\n a.x = i.x * c + n.x * (1 - c), a.y = i.y * f + n.y * (1 - f), a.z = i.z * l + n.z * (1 - l);\n const b = s.dot(a);\n o = Math.min(b, o), r = Math.max(b, r);\n }\n this.min = o, this.max = r;\n };\n}();\nconst di = function() {\n const a = new T(), t = new T(), s = new T();\n return function(i, n, o) {\n const r = i.start, c = a, f = n.start, l = t;\n s.subVectors(r, f), a.subVectors(i.end, i.start), t.subVectors(n.end, n.start);\n const b = s.dot(l), h = l.dot(c), u = l.dot(l), _ = s.dot(c), y = c.dot(c) * u - h * h;\n let d, p;\n y !== 0 ? d = (b * h - _ * u) / y : d = 0, p = (b + d * h) / u, o.x = d, o.y = p;\n };\n}(), ie = function() {\n const a = new Xt(), t = new T(), s = new T();\n return function(i, n, o, r) {\n di(i, n, a);\n let c = a.x, f = a.y;\n if (c >= 0 && c <= 1 && f >= 0 && f <= 1) {\n i.at(c, o), n.at(f, r);\n return;\n } else if (c >= 0 && c <= 1) {\n f < 0 ? n.at(0, r) : n.at(1, r), i.closestPointToPoint(r, !0, o);\n return;\n } else if (f >= 0 && f <= 1) {\n c < 0 ? i.at(0, o) : i.at(1, o), n.closestPointToPoint(o, !0, r);\n return;\n } else {\n let l;\n c < 0 ? l = i.start : l = i.end;\n let b;\n f < 0 ? b = n.start : b = n.end;\n const h = t, u = s;\n if (i.closestPointToPoint(b, !0, t), n.closestPointToPoint(l, !0, s), h.distanceToSquared(b) <= u.distanceToSquared(l)) {\n o.copy(h), r.copy(b);\n return;\n } else {\n o.copy(l), r.copy(u);\n return;\n }\n }\n };\n}(), _i = function() {\n const a = new T(), t = new T(), s = new Se(), e = new dt();\n return function(n, o) {\n const { radius: r, center: c } = n, { a: f, b: l, c: b } = o;\n if (e.start = f, e.end = l, e.closestPointToPoint(c, !0, a).distanceTo(c) <= r || (e.start = f, e.end = b, e.closestPointToPoint(c, !0, a).distanceTo(c) <= r) || (e.start = l, e.end = b, e.closestPointToPoint(c, !0, a).distanceTo(c) <= r))\n return !0;\n const w = o.getPlane(s);\n if (Math.abs(w.distanceToPoint(c)) <= r) {\n const d = w.projectPoint(c, t);\n if (o.containsPoint(d))\n return !0;\n }\n return !1;\n };\n}(), pi = 1e-15;\nfunction Ds(a) {\n return Math.abs(a) < pi;\n}\nclass ot extends is {\n constructor(...t) {\n super(...t), this.isExtendedTriangle = !0, this.satAxes = new Array(4).fill().map(() => new T()), this.satBounds = new Array(4).fill().map(() => new _t()), this.points = [this.a, this.b, this.c], this.sphere = new $e(), this.plane = new Se(), this.needsUpdate = !0;\n }\n intersectsSphere(t) {\n return _i(t, this);\n }\n update() {\n const t = this.a, s = this.b, e = this.c, i = this.points, n = this.satAxes, o = this.satBounds, r = n[0], c = o[0];\n this.getNormal(r), c.setFromPoints(r, i);\n const f = n[1], l = o[1];\n f.subVectors(t, s), l.setFromPoints(f, i);\n const b = n[2], h = o[2];\n b.subVectors(s, e), h.setFromPoints(b, i);\n const u = n[3], _ = o[3];\n u.subVectors(e, t), _.setFromPoints(u, i), this.sphere.setFromPoints(this.points), this.plane.setFromNormalAndCoplanarPoint(r, t), this.needsUpdate = !1;\n }\n}\not.prototype.closestPointToSegment = function() {\n const a = new T(), t = new T(), s = new dt();\n return function(i, n = null, o = null) {\n const { start: r, end: c } = i, f = this.points;\n let l, b = 1 / 0;\n for (let h = 0; h < 3; h++) {\n const u = (h + 1) % 3;\n s.start.copy(f[h]), s.end.copy(f[u]), ie(s, i, a, t), l = a.distanceToSquared(t), l < b && (b = l, n && n.copy(a), o && o.copy(t));\n }\n return this.closestPointToPoint(r, a), l = r.distanceToSquared(a), l < b && (b = l, n && n.copy(a), o && o.copy(r)), this.closestPointToPoint(c, a), l = c.distanceToSquared(a), l < b && (b = l, n && n.copy(a), o && o.copy(c)), Math.sqrt(b);\n };\n}();\not.prototype.intersectsTriangle = function() {\n const a = new ot(), t = new Array(3), s = new Array(3), e = new _t(), i = new _t(), n = new T(), o = new T(), r = new T(), c = new T(), f = new T(), l = new dt(), b = new dt(), h = new dt(), u = new T();\n function _(w, y, d) {\n const p = w.points;\n let I = 0, m = -1;\n for (let g = 0; g < 3; g++) {\n const { start: A, end: F } = l;\n A.copy(p[g]), F.copy(p[(g + 1) % 3]), l.delta(o);\n const x = Ds(y.distanceToPoint(A));\n if (Ds(y.normal.dot(o)) && x) {\n d.copy(l), I = 2;\n break;\n }\n const C = y.intersectLine(l, u);\n if (!C && x && u.copy(A), (C || x) && !Ds(u.distanceTo(F))) {\n if (I <= 1)\n (I === 1 ? d.start : d.end).copy(u), x && (m = I);\n else if (I >= 2) {\n (m === 1 ? d.start : d.end).copy(u), I = 2;\n break;\n }\n if (I++, I === 2 && m === -1)\n break;\n }\n }\n return I;\n }\n return function(y, d = null, p = !1) {\n this.needsUpdate && this.update(), y.isExtendedTriangle ? y.needsUpdate && y.update() : (a.copy(y), a.update(), y = a);\n const I = this.plane, m = y.plane;\n if (Math.abs(I.normal.dot(m.normal)) > 1 - 1e-10) {\n const g = this.satBounds, A = this.satAxes;\n s[0] = y.a, s[1] = y.b, s[2] = y.c;\n for (let C = 0; C < 4; C++) {\n const v = g[C], M = A[C];\n if (e.setFromPoints(M, s), v.isSeparated(e))\n return !1;\n }\n const F = y.satBounds, x = y.satAxes;\n t[0] = this.a, t[1] = this.b, t[2] = this.c;\n for (let C = 0; C < 4; C++) {\n const v = F[C], M = x[C];\n if (e.setFromPoints(M, t), v.isSeparated(e))\n return !1;\n }\n for (let C = 0; C < 4; C++) {\n const v = A[C];\n for (let M = 0; M < 4; M++) {\n const V = x[M];\n if (n.crossVectors(v, V), e.setFromPoints(n, t), i.setFromPoints(n, s), e.isSeparated(i))\n return !1;\n }\n }\n return d && (p || console.warn(\"ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0.\"), d.start.set(0, 0, 0), d.end.set(0, 0, 0)), !0;\n } else {\n const g = _(this, m, b);\n if (g === 1 && y.containsPoint(b.end))\n return d && (d.start.copy(b.end), d.end.copy(b.end)), !0;\n if (g !== 2)\n return !1;\n const A = _(y, I, h);\n if (A === 1 && this.containsPoint(h.end))\n return d && (d.start.copy(h.end), d.end.copy(h.end)), !0;\n if (A !== 2)\n return !1;\n if (b.delta(r), h.delta(c), r.dot(c) < 0) {\n let P = h.start;\n h.start = h.end, h.end = P;\n }\n const F = b.start.dot(r), x = b.end.dot(r), C = h.start.dot(r), v = h.end.dot(r), M = x < C, V = F < v;\n return F !== v && C !== x && M === V ? !1 : (d && (f.subVectors(b.start, h.start), f.dot(r) > 0 ? d.start.copy(b.start) : d.start.copy(h.start), f.subVectors(b.end, h.end), f.dot(r) < 0 ? d.end.copy(b.end) : d.end.copy(h.end)), !0);\n }\n };\n}();\not.prototype.distanceToPoint = function() {\n const a = new T();\n return function(s) {\n return this.closestPointToPoint(s, a), s.distanceTo(a);\n };\n}();\not.prototype.distanceToTriangle = function() {\n const a = new T(), t = new T(), s = [\"a\", \"b\", \"c\"], e = new dt(), i = new dt();\n return function(o, r = null, c = null) {\n const f = r || c ? e : null;\n if (this.intersectsTriangle(o, f))\n return (r || c) && (r && f.getCenter(r), c && f.getCenter(c)), 0;\n let l = 1 / 0;\n for (let b = 0; b < 3; b++) {\n let h;\n const u = s[b], _ = o[u];\n this.closestPointToPoint(_, a), h = _.distanceToSquared(a), h < l && (l = h, r && r.copy(a), c && c.copy(_));\n const w = this[u];\n o.closestPointToPoint(w, a), h = w.distanceToSquared(a), h < l && (l = h, r && r.copy(w), c && c.copy(a));\n }\n for (let b = 0; b < 3; b++) {\n const h = s[b], u = s[(b + 1) % 3];\n e.set(this[h], this[u]);\n for (let _ = 0; _ < 3; _++) {\n const w = s[_], y = s[(_ + 1) % 3];\n i.set(o[w], o[y]), ie(e, i, a, t);\n const d = a.distanceToSquared(t);\n d < l && (l = d, r && r.copy(a), c && c.copy(t));\n }\n }\n return Math.sqrt(l);\n };\n}();\nclass H {\n constructor(t, s, e) {\n this.isOrientedBox = !0, this.min = new T(), this.max = new T(), this.matrix = new vt(), this.invMatrix = new vt(), this.points = new Array(8).fill().map(() => new T()), this.satAxes = new Array(3).fill().map(() => new T()), this.satBounds = new Array(3).fill().map(() => new _t()), this.alignedSatBounds = new Array(3).fill().map(() => new _t()), this.needsUpdate = !1, t && this.min.copy(t), s && this.max.copy(s), e && this.matrix.copy(e);\n }\n set(t, s, e) {\n this.min.copy(t), this.max.copy(s), this.matrix.copy(e), this.needsUpdate = !0;\n }\n copy(t) {\n this.min.copy(t.min), this.max.copy(t.max), this.matrix.copy(t.matrix), this.needsUpdate = !0;\n }\n}\nH.prototype.update = /* @__PURE__ */ function() {\n return function() {\n const t = this.matrix, s = this.min, e = this.max, i = this.points;\n for (let f = 0; f <= 1; f++)\n for (let l = 0; l <= 1; l++)\n for (let b = 0; b <= 1; b++) {\n const h = 1 * f | 2 * l | 4 * b, u = i[h];\n u.x = f ? e.x : s.x, u.y = l ? e.y : s.y, u.z = b ? e.z : s.z, u.applyMatrix4(t);\n }\n const n = this.satBounds, o = this.satAxes, r = i[0];\n for (let f = 0; f < 3; f++) {\n const l = o[f], b = n[f], h = 1 << f, u = i[h];\n l.subVectors(r, u), b.setFromPoints(l, i);\n }\n const c = this.alignedSatBounds;\n c[0].setFromPointsField(i, \"x\"), c[1].setFromPointsField(i, \"y\"), c[2].setFromPointsField(i, \"z\"), this.invMatrix.copy(this.matrix).invert(), this.needsUpdate = !1;\n };\n}();\nH.prototype.intersectsBox = function() {\n const a = new _t();\n return function(s) {\n this.needsUpdate && this.update();\n const e = s.min, i = s.max, n = this.satBounds, o = this.satAxes, r = this.alignedSatBounds;\n if (a.min = e.x, a.max = i.x, r[0].isSeparated(a) || (a.min = e.y, a.max = i.y, r[1].isSeparated(a)) || (a.min = e.z, a.max = i.z, r[2].isSeparated(a)))\n return !1;\n for (let c = 0; c < 3; c++) {\n const f = o[c], l = n[c];\n if (a.setFromBox(f, s), l.isSeparated(a))\n return !1;\n }\n return !0;\n };\n}();\nH.prototype.intersectsTriangle = function() {\n const a = new ot(), t = new Array(3), s = new _t(), e = new _t(), i = new T();\n return function(o) {\n this.needsUpdate && this.update(), o.isExtendedTriangle ? o.needsUpdate && o.update() : (a.copy(o), a.update(), o = a);\n const r = this.satBounds, c = this.satAxes;\n t[0] = o.a, t[1] = o.b, t[2] = o.c;\n for (let h = 0; h < 3; h++) {\n const u = r[h], _ = c[h];\n if (s.setFromPoints(_, t), u.isSeparated(s))\n return !1;\n }\n const f = o.satBounds, l = o.satAxes, b = this.points;\n for (let h = 0; h < 3; h++) {\n const u = f[h], _ = l[h];\n if (s.setFromPoints(_, b), u.isSeparated(s))\n return !1;\n }\n for (let h = 0; h < 3; h++) {\n const u = c[h];\n for (let _ = 0; _ < 4; _++) {\n const w = l[_];\n if (i.crossVectors(u, w), s.setFromPoints(i, t), e.setFromPoints(i, b), s.isSeparated(e))\n return !1;\n }\n }\n return !0;\n };\n}();\nH.prototype.closestPointToPoint = /* @__PURE__ */ function() {\n return function(t, s) {\n return this.needsUpdate && this.update(), s.copy(t).applyMatrix4(this.invMatrix).clamp(this.min, this.max).applyMatrix4(this.matrix), s;\n };\n}();\nH.prototype.distanceToPoint = function() {\n const a = new T();\n return function(s) {\n return this.closestPointToPoint(s, a), s.distanceTo(a);\n };\n}();\nH.prototype.distanceToBox = function() {\n const a = [\"x\", \"y\", \"z\"], t = new Array(12).fill().map(() => new dt()), s = new Array(12).fill().map(() => new dt()), e = new T(), i = new T();\n return function(o, r = 0, c = null, f = null) {\n if (this.needsUpdate && this.update(), this.intersectsBox(o))\n return (c || f) && (o.getCenter(i), this.closestPointToPoint(i, e), o.closestPointToPoint(e, i), c && c.copy(e), f && f.copy(i)), 0;\n const l = r * r, b = o.min, h = o.max, u = this.points;\n let _ = 1 / 0;\n for (let y = 0; y < 8; y++) {\n const d = u[y];\n i.copy(d).clamp(b, h);\n const p = d.distanceToSquared(i);\n if (p < _ && (_ = p, c && c.copy(d), f && f.copy(i), p < l))\n return Math.sqrt(p);\n }\n let w = 0;\n for (let y = 0; y < 3; y++)\n for (let d = 0; d <= 1; d++)\n for (let p = 0; p <= 1; p++) {\n const I = (y + 1) % 3, m = (y + 2) % 3, g = d << I | p << m, A = 1 << y | d << I | p << m, F = u[g], x = u[A];\n t[w].set(F, x);\n const v = a[y], M = a[I], V = a[m], P = s[w], B = P.start, O = P.end;\n B[v] = b[v], B[M] = d ? b[M] : h[M], B[V] = p ? b[V] : h[M], O[v] = h[v], O[M] = d ? b[M] : h[M], O[V] = p ? b[V] : h[M], w++;\n }\n for (let y = 0; y <= 1; y++)\n for (let d = 0; d <= 1; d++)\n for (let p = 0; p <= 1; p++) {\n i.x = y ? h.x : b.x, i.y = d ? h.y : b.y, i.z = p ? h.z : b.z, this.closestPointToPoint(i, e);\n const I = i.distanceToSquared(e);\n if (I < _ && (_ = I, c && c.copy(e), f && f.copy(i), I < l))\n return Math.sqrt(I);\n }\n for (let y = 0; y < 12; y++) {\n const d = t[y];\n for (let p = 0; p < 12; p++) {\n const I = s[p];\n ie(d, I, e, i);\n const m = e.distanceToSquared(i);\n if (m < _ && (_ = m, c && c.copy(e), f && f.copy(i), m < l))\n return Math.sqrt(m);\n }\n }\n return Math.sqrt(_);\n };\n}();\nclass ne {\n constructor(t) {\n this._getNewPrimitive = t, this._primitives = [];\n }\n getPrimitive() {\n const t = this._primitives;\n return t.length === 0 ? this._getNewPrimitive() : t.pop();\n }\n releasePrimitive(t) {\n this._primitives.push(t);\n }\n}\nclass mi extends ne {\n constructor() {\n super(() => new ot());\n }\n}\nconst Q = /* @__PURE__ */ new mi();\nfunction Z(a, t) {\n return t[a + 15] === 65535;\n}\nfunction J(a, t) {\n return t[a + 6];\n}\nfunction tt(a, t) {\n return t[a + 14];\n}\nfunction st(a) {\n return a + 8;\n}\nfunction et(a, t) {\n return t[a + 6];\n}\nfunction De(a, t) {\n return t[a + 7];\n}\nclass yi {\n constructor() {\n this.float32Array = null, this.uint16Array = null, this.uint32Array = null;\n const t = [];\n let s = null;\n this.setBuffer = (e) => {\n s && t.push(s), s = e, this.float32Array = new Float32Array(e), this.uint16Array = new Uint16Array(e), this.uint32Array = new Uint32Array(e);\n }, this.clearBuffer = () => {\n s = null, this.float32Array = null, this.uint16Array = null, this.uint32Array = null, t.length !== 0 && this.setBuffer(t.pop());\n };\n }\n}\nconst G = new yi();\nlet At, Ht;\nconst zt = [], hs = /* @__PURE__ */ new ne(() => new rt());\nfunction gi(a, t, s, e, i, n) {\n At = hs.getPrimitive(), Ht = hs.getPrimitive(), zt.push(At, Ht), G.setBuffer(a._roots[t]);\n const o = $s(0, a.geometry, s, e, i, n);\n G.clearBuffer(), hs.releasePrimitive(At), hs.releasePrimitive(Ht), zt.pop(), zt.pop();\n const r = zt.length;\n return r > 0 && (Ht = zt[r - 1], At = zt[r - 2]), o;\n}\nfunction $s(a, t, s, e, i = null, n = 0, o = 0) {\n const { float32Array: r, uint16Array: c, uint32Array: f } = G;\n let l = a * 2;\n if (Z(l, c)) {\n const h = J(a, f), u = tt(l, c);\n return R(a, r, At), e(h, u, !1, o, n + a, At);\n } else {\n let v = function(V) {\n const { uint16Array: P, uint32Array: B } = G;\n let O = V * 2;\n for (; !Z(O, P); )\n V = st(V), O = V * 2;\n return J(V, B);\n }, M = function(V) {\n const { uint16Array: P, uint32Array: B } = G;\n let O = V * 2;\n for (; !Z(O, P); )\n V = et(V, B), O = V * 2;\n return J(V, B) + tt(O, P);\n };\n const h = st(a), u = et(a, f);\n let _ = h, w = u, y, d, p, I;\n if (i && (p = At, I = Ht, R(_, r, p), R(w, r, I), y = i(p), d = i(I), d < y)) {\n _ = u, w = h;\n const V = y;\n y = d, d = V, p = I;\n }\n p || (p = At, R(_, r, p));\n const m = Z(_ * 2, c), g = s(p, m, y, o + 1, n + _);\n let A;\n if (g === fe) {\n const V = v(_), B = M(_) - V;\n A = e(V, B, !0, o + 1, n + _, p);\n } else\n A = g && $s(\n _,\n t,\n s,\n e,\n i,\n n,\n o + 1\n );\n if (A)\n return !0;\n I = Ht, R(w, r, I);\n const F = Z(w * 2, c), x = s(I, F, d, o + 1, n + w);\n let C;\n if (x === fe) {\n const V = v(w), B = M(w) - V;\n C = e(V, B, !0, o + 1, n + w, I);\n } else\n C = x && $s(\n w,\n t,\n s,\n e,\n i,\n n,\n o + 1\n );\n return !!C;\n }\n}\nconst Wt = /* @__PURE__ */ new T(), Us = /* @__PURE__ */ new T();\nfunction Ii(a, t, s = {}, e = 0, i = 1 / 0) {\n const n = e * e, o = i * i;\n let r = 1 / 0, c = null;\n if (a.shapecast(\n {\n boundsTraverseOrder: (l) => (Wt.copy(t).clamp(l.min, l.max), Wt.distanceToSquared(t)),\n intersectsBounds: (l, b, h) => h < r && h < o,\n intersectsTriangle: (l, b) => {\n l.closestPointToPoint(t, Wt);\n const h = t.distanceToSquared(Wt);\n return h < r && (Us.copy(Wt), r = h, c = b), h < n;\n }\n }\n ), r === 1 / 0)\n return null;\n const f = Math.sqrt(r);\n return s.point ? s.point.copy(Us) : s.point = Us.clone(), s.distance = f, s.faceIndex = c, s;\n}\nconst Et = /* @__PURE__ */ new T(), Gt = /* @__PURE__ */ new T(), Rt = /* @__PURE__ */ new T(), bs = /* @__PURE__ */ new Xt(), us = /* @__PURE__ */ new Xt(), ds = /* @__PURE__ */ new Xt(), de = /* @__PURE__ */ new T(), _e = /* @__PURE__ */ new T(), pe = /* @__PURE__ */ new T(), _s = /* @__PURE__ */ new T();\nfunction wi(a, t, s, e, i, n) {\n let o;\n return n === He ? o = a.intersectTriangle(e, s, t, !0, i) : o = a.intersectTriangle(t, s, e, n !== Xe, i), o === null ? null : {\n distance: a.origin.distanceTo(i),\n point: i.clone()\n };\n}\nfunction xi(a, t, s, e, i, n, o, r, c) {\n Et.fromBufferAttribute(t, n), Gt.fromBufferAttribute(t, o), Rt.fromBufferAttribute(t, r);\n const f = wi(a, Et, Gt, Rt, _s, c);\n if (f) {\n e && (bs.fromBufferAttribute(e, n), us.fromBufferAttribute(e, o), ds.fromBufferAttribute(e, r), f.uv = is.getInterpolation(_s, Et, Gt, Rt, bs, us, ds, new Xt())), i && (bs.fromBufferAttribute(i, n), us.fromBufferAttribute(i, o), ds.fromBufferAttribute(i, r), f.uv1 = is.getInterpolation(_s, Et, Gt, Rt, bs, us, ds, new Xt())), s && (de.fromBufferAttribute(s, n), _e.fromBufferAttribute(s, o), pe.fromBufferAttribute(s, r), f.normal = is.getInterpolation(_s, Et, Gt, Rt, de, _e, pe, new T()), f.normal.dot(a.direction) > 0 && f.normal.multiplyScalar(-1));\n const l = {\n a: n,\n b: o,\n c: r,\n normal: new T(),\n materialIndex: 0\n };\n is.getNormal(Et, Gt, Rt, l.normal), f.face = l, f.faceIndex = n;\n }\n return f;\n}\nfunction Ss(a, t, s, e, i) {\n const n = e * 3;\n let o = n + 0, r = n + 1, c = n + 2;\n const f = a.index;\n a.index && (o = f.getX(o), r = f.getX(r), c = f.getX(c));\n const { position: l, normal: b, uv: h, uv1: u } = a.attributes, _ = xi(s, l, b, h, u, o, r, c, t);\n return _ ? (_.faceIndex = e, i && i.push(_), _) : null;\n}\nfunction k(a, t, s, e) {\n const i = a.a, n = a.b, o = a.c;\n let r = t, c = t + 1, f = t + 2;\n s && (r = s.getX(r), c = s.getX(c), f = s.getX(f)), i.x = e.getX(r), i.y = e.getY(r), i.z = e.getZ(r), n.x = e.getX(c), n.y = e.getY(c), n.z = e.getZ(c), o.x = e.getX(f), o.y = e.getY(f), o.z = e.getZ(f);\n}\nfunction Ai(a, t, s, e, i, n) {\n const { geometry: o, _indirectBuffer: r } = a;\n for (let c = e, f = e + i; c < f; c++)\n Ss(o, t, s, c, n);\n}\nfunction vi(a, t, s, e, i) {\n const { geometry: n, _indirectBuffer: o } = a;\n let r = 1 / 0, c = null;\n for (let f = e, l = e + i; f < l; f++) {\n let b;\n b = Ss(n, t, s, f), b && b.distance < r && (c = b, r = b.distance);\n }\n return c;\n}\nfunction Vi(a, t, s, e, i, n, o) {\n const { geometry: r } = s, { index: c } = r, f = r.attributes.position;\n for (let l = a, b = t + a; l < b; l++) {\n let h;\n if (h = l, k(o, h * 3, c, f), o.needsUpdate = !0, e(o, h, i, n))\n return !0;\n }\n return !1;\n}\nfunction Fi(a, t = null) {\n t && Array.isArray(t) && (t = new Set(t));\n const s = a.geometry, e = s.index ? s.index.array : null, i = s.attributes.position;\n let n, o, r, c, f = 0;\n const l = a._roots;\n for (let h = 0, u = l.length; h < u; h++)\n n = l[h], o = new Uint32Array(n), r = new Uint16Array(n), c = new Float32Array(n), b(0, f), f += n.byteLength;\n function b(h, u, _ = !1) {\n const w = h * 2;\n if (r[w + 15] === Ms) {\n const d = o[h + 6], p = r[w + 14];\n let I = 1 / 0, m = 1 / 0, g = 1 / 0, A = -1 / 0, F = -1 / 0, x = -1 / 0;\n for (let C = 3 * d, v = 3 * (d + p); C < v; C++) {\n let M = e[C];\n const V = i.getX(M), P = i.getY(M), B = i.getZ(M);\n V < I && (I = V), V > A && (A = V), P < m && (m = P), P > F && (F = P), B < g && (g = B), B > x && (x = B);\n }\n return c[h + 0] !== I || c[h + 1] !== m || c[h + 2] !== g || c[h + 3] !== A || c[h + 4] !== F || c[h + 5] !== x ? (c[h + 0] = I, c[h + 1] = m, c[h + 2] = g, c[h + 3] = A, c[h + 4] = F, c[h + 5] = x, !0) : !1;\n } else {\n const d = h + 8, p = o[h + 6], I = d + u, m = p + u;\n let g = _, A = !1, F = !1;\n t ? g || (A = t.has(I), F = t.has(m), g = !A && !F) : (A = !0, F = !0);\n const x = g || A, C = g || F;\n let v = !1;\n x && (v = b(d, u, g));\n let M = !1;\n C && (M = b(p, u, g));\n const V = v || M;\n if (V)\n for (let P = 0; P < 3; P++) {\n const B = d + P, O = p + P, D = c[B], $ = c[B + 3], X = c[O], Y = c[O + 3];\n c[h + P] = D < X ? D : X, c[h + P + 3] = $ > Y ? $ : Y;\n }\n return V;\n }\n }\n}\nconst me = /* @__PURE__ */ new rt();\nfunction Vt(a, t, s, e) {\n return R(a, t, me), s.intersectBox(me, e);\n}\nfunction Ci(a, t, s, e, i, n) {\n const { geometry: o, _indirectBuffer: r } = a;\n for (let c = e, f = e + i; c < f; c++) {\n let l = r ? r[c] : c;\n Ss(o, t, s, l, n);\n }\n}\nfunction Pi(a, t, s, e, i) {\n const { geometry: n, _indirectBuffer: o } = a;\n let r = 1 / 0, c = null;\n for (let f = e, l = e + i; f < l; f++) {\n let b;\n b = Ss(n, t, s, o ? o[f] : f), b && b.distance < r && (c = b, r = b.distance);\n }\n return c;\n}\nfunction Mi(a, t, s, e, i, n, o) {\n const { geometry: r } = s, { index: c } = r, f = r.attributes.position;\n for (let l = a, b = t + a; l < b; l++) {\n let h;\n if (h = s.resolveTriangleIndex(l), k(o, h * 3, c, f), o.needsUpdate = !0, e(o, h, i, n))\n return !0;\n }\n return !1;\n}\nconst ye = /* @__PURE__ */ new T();\nfunction Si(a, t, s, e, i) {\n G.setBuffer(a._roots[t]), Hs(0, a, s, e, i), G.clearBuffer();\n}\nfunction Hs(a, t, s, e, i) {\n const { float32Array: n, uint16Array: o, uint32Array: r } = G, c = a * 2;\n if (Z(c, o)) {\n const l = J(a, r), b = tt(c, o);\n Ai(t, s, e, l, b, i);\n } else {\n const l = st(a);\n Vt(l, n, e, ye) && Hs(l, t, s, e, i);\n const b = et(a, r);\n Vt(b, n, e, ye) && Hs(b, t, s, e, i);\n }\n}\nconst ge = /* @__PURE__ */ new T(), Bi = [\"x\", \"y\", \"z\"];\nfunction Ti(a, t, s, e) {\n G.setBuffer(a._roots[t]);\n const i = Xs(0, a, s, e);\n return G.clearBuffer(), i;\n}\nfunction Xs(a, t, s, e) {\n const { float32Array: i, uint16Array: n, uint32Array: o } = G;\n let r = a * 2;\n if (Z(r, n)) {\n const f = J(a, o), l = tt(r, n);\n return vi(t, s, e, f, l);\n } else {\n const f = De(a, o), l = Bi[f], h = e.direction[l] >= 0;\n let u, _;\n h ? (u = st(a), _ = et(a, o)) : (u = et(a, o), _ = st(a));\n const y = Vt(u, i, e, ge) ? Xs(u, t, s, e) : null;\n if (y) {\n const I = y.point[l];\n if (h ? I <= i[_ + f] : (\n // min bounding data\n I >= i[_ + f + 3]\n ))\n return y;\n }\n const p = Vt(_, i, e, ge) ? Xs(_, t, s, e) : null;\n return y && p ? y.distance <= p.distance ? y : p : y || p || null;\n }\n}\nconst ps = /* @__PURE__ */ new rt(), Nt = /* @__PURE__ */ new ot(), kt = /* @__PURE__ */ new ot(), Qt = /* @__PURE__ */ new vt(), Ie = /* @__PURE__ */ new H(), ms = /* @__PURE__ */ new H();\nfunction Oi(a, t, s, e) {\n G.setBuffer(a._roots[t]);\n const i = Ys(0, a, s, e);\n return G.clearBuffer(), i;\n}\nfunction Ys(a, t, s, e, i = null) {\n const { float32Array: n, uint16Array: o, uint32Array: r } = G;\n let c = a * 2;\n if (i === null && (s.boundingBox || s.computeBoundingBox(), Ie.set(s.boundingBox.min, s.boundingBox.max, e), i = Ie), Z(c, o)) {\n const l = t.geometry, b = l.index, h = l.attributes.position, u = s.index, _ = s.attributes.position, w = J(a, r), y = tt(c, o);\n if (Qt.copy(e).invert(), s.boundsTree)\n return R(a, n, ms), ms.matrix.copy(Qt), ms.needsUpdate = !0, s.boundsTree.shapecast({\n intersectsBounds: (p) => ms.intersectsBox(p),\n intersectsTriangle: (p) => {\n p.a.applyMatrix4(e), p.b.applyMatrix4(e), p.c.applyMatrix4(e), p.needsUpdate = !0;\n for (let I = w * 3, m = (y + w) * 3; I < m; I += 3)\n if (k(kt, I, b, h), kt.needsUpdate = !0, p.intersectsTriangle(kt))\n return !0;\n return !1;\n }\n });\n for (let d = w * 3, p = (y + w) * 3; d < p; d += 3) {\n k(Nt, d, b, h), Nt.a.applyMatrix4(Qt), Nt.b.applyMatrix4(Qt), Nt.c.applyMatrix4(Qt), Nt.needsUpdate = !0;\n for (let I = 0, m = u.count; I < m; I += 3)\n if (k(kt, I, u, _), kt.needsUpdate = !0, Nt.intersectsTriangle(kt))\n return !0;\n }\n } else {\n const l = a + 8, b = r[a + 6];\n return R(l, n, ps), !!(i.intersectsBox(ps) && Ys(l, t, s, e, i) || (R(b, n, ps), i.intersectsBox(ps) && Ys(b, t, s, e, i)));\n }\n}\nconst ys = /* @__PURE__ */ new vt(), zs = /* @__PURE__ */ new H(), ts = /* @__PURE__ */ new H(), Li = /* @__PURE__ */ new T(), Di = /* @__PURE__ */ new T(), Ui = /* @__PURE__ */ new T(), zi = /* @__PURE__ */ new T();\nfunction Ei(a, t, s, e = {}, i = {}, n = 0, o = 1 / 0) {\n t.boundingBox || t.computeBoundingBox(), zs.set(t.boundingBox.min, t.boundingBox.max, s), zs.needsUpdate = !0;\n const r = a.geometry, c = r.attributes.position, f = r.index, l = t.attributes.position, b = t.index, h = Q.getPrimitive(), u = Q.getPrimitive();\n let _ = Li, w = Di, y = null, d = null;\n i && (y = Ui, d = zi);\n let p = 1 / 0, I = null, m = null;\n return ys.copy(s).invert(), ts.matrix.copy(ys), a.shapecast(\n {\n boundsTraverseOrder: (g) => zs.distanceToBox(g),\n intersectsBounds: (g, A, F) => F < p && F < o ? (A && (ts.min.copy(g.min), ts.max.copy(g.max), ts.needsUpdate = !0), !0) : !1,\n intersectsRange: (g, A) => {\n if (t.boundsTree)\n return t.boundsTree.shapecast({\n boundsTraverseOrder: (x) => ts.distanceToBox(x),\n intersectsBounds: (x, C, v) => v < p && v < o,\n intersectsRange: (x, C) => {\n for (let v = x, M = x + C; v < M; v++) {\n k(u, 3 * v, b, l), u.a.applyMatrix4(s), u.b.applyMatrix4(s), u.c.applyMatrix4(s), u.needsUpdate = !0;\n for (let V = g, P = g + A; V < P; V++) {\n k(h, 3 * V, f, c), h.needsUpdate = !0;\n const B = h.distanceToTriangle(u, _, y);\n if (B < p && (w.copy(_), d && d.copy(y), p = B, I = V, m = v), B < n)\n return !0;\n }\n }\n }\n });\n {\n const F = Yt(t);\n for (let x = 0, C = F; x < C; x++) {\n k(u, 3 * x, b, l), u.a.applyMatrix4(s), u.b.applyMatrix4(s), u.c.applyMatrix4(s), u.needsUpdate = !0;\n for (let v = g, M = g + A; v < M; v++) {\n k(h, 3 * v, f, c), h.needsUpdate = !0;\n const V = h.distanceToTriangle(u, _, y);\n if (V < p && (w.copy(_), d && d.copy(y), p = V, I = v, m = x), V < n)\n return !0;\n }\n }\n }\n }\n }\n ), Q.releasePrimitive(h), Q.releasePrimitive(u), p === 1 / 0 ? null : (e.point ? e.point.copy(w) : e.point = w.clone(), e.distance = p, e.faceIndex = I, i && (i.point ? i.point.copy(d) : i.point = d.clone(), i.point.applyMatrix4(ys), w.applyMatrix4(ys), i.distance = w.sub(i.point).length(), i.faceIndex = m), e);\n}\nfunction Gi(a, t = null) {\n t && Array.isArray(t) && (t = new Set(t));\n const s = a.geometry, e = s.index ? s.index.array : null, i = s.attributes.position;\n let n, o, r, c, f = 0;\n const l = a._roots;\n for (let h = 0, u = l.length; h < u; h++)\n n = l[h], o = new Uint32Array(n), r = new Uint16Array(n), c = new Float32Array(n), b(0, f), f += n.byteLength;\n function b(h, u, _ = !1) {\n const w = h * 2;\n if (r[w + 15] === Ms) {\n const d = o[h + 6], p = r[w + 14];\n let I = 1 / 0, m = 1 / 0, g = 1 / 0, A = -1 / 0, F = -1 / 0, x = -1 / 0;\n for (let C = d, v = d + p; C < v; C++) {\n const M = 3 * a.resolveTriangleIndex(C);\n for (let V = 0; V < 3; V++) {\n let P = M + V;\n P = e ? e[P] : P;\n const B = i.getX(P), O = i.getY(P), D = i.getZ(P);\n B < I && (I = B), B > A && (A = B), O < m && (m = O), O > F && (F = O), D < g && (g = D), D > x && (x = D);\n }\n }\n return c[h + 0] !== I || c[h + 1] !== m || c[h + 2] !== g || c[h + 3] !== A || c[h + 4] !== F || c[h + 5] !== x ? (c[h + 0] = I, c[h + 1] = m, c[h + 2] = g, c[h + 3] = A, c[h + 4] = F, c[h + 5] = x, !0) : !1;\n } else {\n const d = h + 8, p = o[h + 6], I = d + u, m = p + u;\n let g = _, A = !1, F = !1;\n t ? g || (A = t.has(I), F = t.has(m), g = !A && !F) : (A = !0, F = !0);\n const x = g || A, C = g || F;\n let v = !1;\n x && (v = b(d, u, g));\n let M = !1;\n C && (M = b(p, u, g));\n const V = v || M;\n if (V)\n for (let P = 0; P < 3; P++) {\n const B = d + P, O = p + P, D = c[B], $ = c[B + 3], X = c[O], Y = c[O + 3];\n c[h + P] = D < X ? D : X, c[h + P + 3] = $ > Y ? $ : Y;\n }\n return V;\n }\n }\n}\nconst we = /* @__PURE__ */ new T();\nfunction Ri(a, t, s, e, i) {\n G.setBuffer(a._roots[t]), Zs(0, a, s, e, i), G.clearBuffer();\n}\nfunction Zs(a, t, s, e, i) {\n const { float32Array: n, uint16Array: o, uint32Array: r } = G, c = a * 2;\n if (Z(c, o)) {\n const l = J(a, r), b = tt(c, o);\n Ci(t, s, e, l, b, i);\n } else {\n const l = st(a);\n Vt(l, n, e, we) && Zs(l, t, s, e, i);\n const b = et(a, r);\n Vt(b, n, e, we) && Zs(b, t, s, e, i);\n }\n}\nconst xe = /* @__PURE__ */ new T(), Ni = [\"x\", \"y\", \"z\"];\nfunction ki(a, t, s, e) {\n G.setBuffer(a._roots[t]);\n const i = Js(0, a, s, e);\n return G.clearBuffer(), i;\n}\nfunction Js(a, t, s, e) {\n const { float32Array: i, uint16Array: n, uint32Array: o } = G;\n let r = a * 2;\n if (Z(r, n)) {\n const f = J(a, o), l = tt(r, n);\n return Pi(t, s, e, f, l);\n } else {\n const f = De(a, o), l = Ni[f], h = e.direction[l] >= 0;\n let u, _;\n h ? (u = st(a), _ = et(a, o)) : (u = et(a, o), _ = st(a));\n const y = Vt(u, i, e, xe) ? Js(u, t, s, e) : null;\n if (y) {\n const I = y.point[l];\n if (h ? I <= i[_ + f] : (\n // min bounding data\n I >= i[_ + f + 3]\n ))\n return y;\n }\n const p = Vt(_, i, e, xe) ? Js(_, t, s, e) : null;\n return y && p ? y.distance <= p.distance ? y : p : y || p || null;\n }\n}\nconst gs = /* @__PURE__ */ new rt(), qt = /* @__PURE__ */ new ot(), Kt = /* @__PURE__ */ new ot(), ss = /* @__PURE__ */ new vt(), Ae = /* @__PURE__ */ new H(), Is = /* @__PURE__ */ new H();\nfunction qi(a, t, s, e) {\n G.setBuffer(a._roots[t]);\n const i = Ws(0, a, s, e);\n return G.clearBuffer(), i;\n}\nfunction Ws(a, t, s, e, i = null) {\n const { float32Array: n, uint16Array: o, uint32Array: r } = G;\n let c = a * 2;\n if (i === null && (s.boundingBox || s.computeBoundingBox(), Ae.set(s.boundingBox.min, s.boundingBox.max, e), i = Ae), Z(c, o)) {\n const l = t.geometry, b = l.index, h = l.attributes.position, u = s.index, _ = s.attributes.position, w = J(a, r), y = tt(c, o);\n if (ss.copy(e).invert(), s.boundsTree)\n return R(a, n, Is), Is.matrix.copy(ss), Is.needsUpdate = !0, s.boundsTree.shapecast({\n intersectsBounds: (p) => Is.intersectsBox(p),\n intersectsTriangle: (p) => {\n p.a.applyMatrix4(e), p.b.applyMatrix4(e), p.c.applyMatrix4(e), p.needsUpdate = !0;\n for (let I = w, m = y + w; I < m; I++)\n if (k(Kt, 3 * t.resolveTriangleIndex(I), b, h), Kt.needsUpdate = !0, p.intersectsTriangle(Kt))\n return !0;\n return !1;\n }\n });\n for (let d = w, p = y + w; d < p; d++) {\n const I = t.resolveTriangleIndex(d);\n k(qt, 3 * I, b, h), qt.a.applyMatrix4(ss), qt.b.applyMatrix4(ss), qt.c.applyMatrix4(ss), qt.needsUpdate = !0;\n for (let m = 0, g = u.count; m < g; m += 3)\n if (k(Kt, m, u, _), Kt.needsUpdate = !0, qt.intersectsTriangle(Kt))\n return !0;\n }\n } else {\n const l = a + 8, b = r[a + 6];\n return R(l, n, gs), !!(i.intersectsBox(gs) && Ws(l, t, s, e, i) || (R(b, n, gs), i.intersectsBox(gs) && Ws(b, t, s, e, i)));\n }\n}\nconst ws = /* @__PURE__ */ new vt(), Es = /* @__PURE__ */ new H(), es = /* @__PURE__ */ new H(), Ki = /* @__PURE__ */ new T(), ji = /* @__PURE__ */ new T(), $i = /* @__PURE__ */ new T(), Hi = /* @__PURE__ */ new T();\nfunction Xi(a, t, s, e = {}, i = {}, n = 0, o = 1 / 0) {\n t.boundingBox || t.computeBoundingBox(), Es.set(t.boundingBox.min, t.boundingBox.max, s), Es.needsUpdate = !0;\n const r = a.geometry, c = r.attributes.position, f = r.index, l = t.attributes.position, b = t.index, h = Q.getPrimitive(), u = Q.getPrimitive();\n let _ = Ki, w = ji, y = null, d = null;\n i && (y = $i, d = Hi);\n let p = 1 / 0, I = null, m = null;\n return ws.copy(s).invert(), es.matrix.copy(ws), a.shapecast(\n {\n boundsTraverseOrder: (g) => Es.distanceToBox(g),\n intersectsBounds: (g, A, F) => F < p && F < o ? (A && (es.min.copy(g.min), es.max.copy(g.max), es.needsUpdate = !0), !0) : !1,\n intersectsRange: (g, A) => {\n if (t.boundsTree) {\n const F = t.boundsTree;\n return F.shapecast({\n boundsTraverseOrder: (x) => es.distanceToBox(x),\n intersectsBounds: (x, C, v) => v < p && v < o,\n intersectsRange: (x, C) => {\n for (let v = x, M = x + C; v < M; v++) {\n const V = F.resolveTriangleIndex(v);\n k(u, 3 * V, b, l), u.a.applyMatrix4(s), u.b.applyMatrix4(s), u.c.applyMatrix4(s), u.needsUpdate = !0;\n for (let P = g, B = g + A; P < B; P++) {\n const O = a.resolveTriangleIndex(P);\n k(h, 3 * O, f, c), h.needsUpdate = !0;\n const D = h.distanceToTriangle(u, _, y);\n if (D < p && (w.copy(_), d && d.copy(y), p = D, I = P, m = v), D < n)\n return !0;\n }\n }\n }\n });\n } else {\n const F = Yt(t);\n for (let x = 0, C = F; x < C; x++) {\n k(u, 3 * x, b, l), u.a.applyMatrix4(s), u.b.applyMatrix4(s), u.c.applyMatrix4(s), u.needsUpdate = !0;\n for (let v = g, M = g + A; v < M; v++) {\n const V = a.resolveTriangleIndex(v);\n k(h, 3 * V, f, c), h.needsUpdate = !0;\n const P = h.distanceToTriangle(u, _, y);\n if (P < p && (w.copy(_), d && d.copy(y), p = P, I = v, m = x), P < n)\n return !0;\n }\n }\n }\n }\n }\n ), Q.releasePrimitive(h), Q.releasePrimitive(u), p === 1 / 0 ? null : (e.point ? e.point.copy(w) : e.point = w.clone(), e.distance = p, e.faceIndex = I, i && (i.point ? i.point.copy(d) : i.point = d.clone(), i.point.applyMatrix4(ws), w.applyMatrix4(ws), i.distance = w.sub(i.point).length(), i.faceIndex = m), e);\n}\nfunction Yi() {\n return typeof SharedArrayBuffer < \"u\";\n}\nconst ns = new G.constructor(), Cs = new G.constructor(), It = new ne(() => new rt()), jt = new rt(), $t = new rt(), Gs = new rt(), Rs = new rt();\nlet Ns = !1;\nfunction Zi(a, t, s, e) {\n if (Ns)\n throw new Error(\"MeshBVH: Recursive calls to bvhcast not supported.\");\n Ns = !0;\n const i = a._roots, n = t._roots;\n let o, r = 0, c = 0;\n const f = new vt().copy(s).invert();\n for (let l = 0, b = i.length; l < b; l++) {\n ns.setBuffer(i[l]), c = 0;\n const h = It.getPrimitive();\n R(0, ns.float32Array, h), h.applyMatrix4(f);\n for (let u = 0, _ = n.length; u < _ && (Cs.setBuffer(n[l]), o = it(\n 0,\n 0,\n s,\n f,\n e,\n r,\n c,\n 0,\n 0,\n h\n ), Cs.clearBuffer(), c += n[u].length, !o); u++)\n ;\n if (It.releasePrimitive(h), ns.clearBuffer(), r += i[l].length, o)\n break;\n }\n return Ns = !1, o;\n}\nfunction it(a, t, s, e, i, n = 0, o = 0, r = 0, c = 0, f = null, l = !1) {\n let b, h;\n l ? (b = Cs, h = ns) : (b = ns, h = Cs);\n const u = b.float32Array, _ = b.uint32Array, w = b.uint16Array, y = h.float32Array, d = h.uint32Array, p = h.uint16Array, I = a * 2, m = t * 2, g = Z(I, w), A = Z(m, p);\n let F = !1;\n if (A && g)\n l ? F = i(\n J(t, d),\n tt(t * 2, p),\n J(a, _),\n tt(a * 2, w),\n c,\n o + t,\n r,\n n + a\n ) : F = i(\n J(a, _),\n tt(a * 2, w),\n J(t, d),\n tt(t * 2, p),\n r,\n n + a,\n c,\n o + t\n );\n else if (A) {\n const x = It.getPrimitive();\n R(t, y, x), x.applyMatrix4(s);\n const C = st(a), v = et(a, _);\n R(C, u, jt), R(v, u, $t);\n const M = x.intersectsBox(jt), V = x.intersectsBox($t);\n F = M && it(\n t,\n C,\n e,\n s,\n i,\n o,\n n,\n c,\n r + 1,\n x,\n !l\n ) || V && it(\n t,\n v,\n e,\n s,\n i,\n o,\n n,\n c,\n r + 1,\n x,\n !l\n ), It.releasePrimitive(x);\n } else {\n const x = st(t), C = et(t, d);\n R(x, y, Gs), R(C, y, Rs);\n const v = f.intersectsBox(Gs), M = f.intersectsBox(Rs);\n if (v && M)\n F = it(\n a,\n x,\n s,\n e,\n i,\n n,\n o,\n r,\n c + 1,\n f,\n l\n ) || it(\n a,\n C,\n s,\n e,\n i,\n n,\n o,\n r,\n c + 1,\n f,\n l\n );\n else if (v)\n if (g)\n F = it(\n a,\n x,\n s,\n e,\n i,\n n,\n o,\n r,\n c + 1,\n f,\n l\n );\n else {\n const V = It.getPrimitive();\n V.copy(Gs).applyMatrix4(s);\n const P = st(a), B = et(a, _);\n R(P, u, jt), R(B, u, $t);\n const O = V.intersectsBox(jt), D = V.intersectsBox($t);\n F = O && it(\n x,\n P,\n e,\n s,\n i,\n o,\n n,\n c,\n r + 1,\n V,\n !l\n ) || D && it(\n x,\n B,\n e,\n s,\n i,\n o,\n n,\n c,\n r + 1,\n V,\n !l\n ), It.releasePrimitive(V);\n }\n else if (M)\n if (g)\n F = it(\n a,\n C,\n s,\n e,\n i,\n n,\n o,\n r,\n c + 1,\n f,\n l\n );\n else {\n const V = It.getPrimitive();\n V.copy(Rs).applyMatrix4(s);\n const P = st(a), B = et(a, _);\n R(P, u, jt), R(B, u, $t);\n const O = V.intersectsBox(jt), D = V.intersectsBox($t);\n F = O && it(\n C,\n P,\n e,\n s,\n i,\n o,\n n,\n c,\n r + 1,\n V,\n !l\n ) || D && it(\n C,\n B,\n e,\n s,\n i,\n o,\n n,\n c,\n r + 1,\n V,\n !l\n ), It.releasePrimitive(V);\n }\n }\n return F;\n}\nconst xs = /* @__PURE__ */ new H(), ve = /* @__PURE__ */ new rt();\nclass oe {\n static serialize(t, s = {}) {\n s = {\n cloneBuffers: !0,\n ...s\n };\n const e = t.geometry, i = t._roots, n = t._indirectBuffer, o = e.getIndex();\n let r;\n return s.cloneBuffers ? r = {\n roots: i.map((c) => c.slice()),\n index: o.array.slice(),\n indirectBuffer: n ? n.slice() : null\n } : r = {\n roots: i,\n index: o.array,\n indirectBuffer: n\n }, r;\n }\n static deserialize(t, s, e = {}) {\n e = {\n setIndex: !0,\n indirect: !!t.indirectBuffer,\n ...e\n };\n const { index: i, roots: n, indirectBuffer: o } = t, r = new oe(s, { ...e, [Os]: !0 });\n if (r._roots = n, r._indirectBuffer = o || null, e.setIndex) {\n const c = s.getIndex();\n if (c === null) {\n const f = new Me(t.index, 1, !1);\n s.setIndex(f);\n } else\n c.array !== i && (c.array.set(i), c.needsUpdate = !0);\n }\n return r;\n }\n get indirect() {\n return !!this._indirectBuffer;\n }\n constructor(t, s = {}) {\n if (t.isBufferGeometry) {\n if (t.index && t.index.isInterleavedBufferAttribute)\n throw new Error(\"MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.\");\n } else\n throw new Error(\"MeshBVH: Only BufferGeometries are supported.\");\n if (s = Object.assign({\n strategy: Te,\n maxDepth: 40,\n maxLeafTris: 10,\n verbose: !0,\n useSharedArrayBuffer: !1,\n setBoundingBox: !0,\n onProgress: null,\n indirect: !1,\n // undocumented options\n // Whether to skip generating the tree. Used for deserialization.\n [Os]: !1\n }, s), s.useSharedArrayBuffer && !Yi())\n throw new Error(\"MeshBVH: SharedArrayBuffer is not available.\");\n this.geometry = t, this._roots = null, this._indirectBuffer = null, s[Os] || (ui(this, s), !t.boundingBox && s.setBoundingBox && (t.boundingBox = this.getBoundingBox(new rt())));\n const { _indirectBuffer: e } = this;\n this.resolveTriangleIndex = s.indirect ? (i) => e[i] : (i) => i;\n }\n refit(t = null) {\n return (this.indirect ? Gi : Fi)(this, t);\n }\n traverse(t, s = 0) {\n const e = this._roots[s], i = new Uint32Array(e), n = new Uint16Array(e);\n o(0);\n function o(r, c = 0) {\n const f = r * 2, l = n[f + 15] === Ms;\n if (l) {\n const b = i[r + 6], h = n[f + 14];\n t(c, l, new Float32Array(e, r * 4, 6), b, h);\n } else {\n const b = r + vs / 4, h = i[r + 6], u = i[r + 7];\n t(c, l, new Float32Array(e, r * 4, 6), u) || (o(b, c + 1), o(h, c + 1));\n }\n }\n }\n /* Core Cast Functions */\n raycast(t, s = re) {\n const e = this._roots, i = this.geometry, n = [], o = s.isMaterial, r = Array.isArray(s), c = i.groups, f = o ? s.side : s, l = this.indirect ? Ri : Si;\n for (let b = 0, h = e.length; b < h; b++) {\n const u = r ? s[c[b].materialIndex].side : f, _ = n.length;\n if (l(this, b, u, t, n), r) {\n const w = c[b].materialIndex;\n for (let y = _, d = n.length; y < d; y++)\n n[y].face.materialIndex = w;\n }\n }\n return n;\n }\n raycastFirst(t, s = re) {\n const e = this._roots, i = this.geometry, n = s.isMaterial, o = Array.isArray(s);\n let r = null;\n const c = i.groups, f = n ? s.side : s, l = this.indirect ? ki : Ti;\n for (let b = 0, h = e.length; b < h; b++) {\n const u = o ? s[c[b].materialIndex].side : f, _ = l(this, b, u, t);\n _ != null && (r == null || _.distance < r.distance) && (r = _, o && (_.face.materialIndex = c[b].materialIndex));\n }\n return r;\n }\n intersectsGeometry(t, s) {\n let e = !1;\n const i = this._roots, n = this.indirect ? qi : Oi;\n for (let o = 0, r = i.length; o < r && (e = n(this, o, t, s), !e); o++)\n ;\n return e;\n }\n shapecast(t) {\n const s = Q.getPrimitive(), e = this.indirect ? Mi : Vi;\n let {\n boundsTraverseOrder: i,\n intersectsBounds: n,\n intersectsRange: o,\n intersectsTriangle: r\n } = t;\n if (o && r) {\n const b = o;\n o = (h, u, _, w, y) => b(h, u, _, w, y) ? !0 : e(h, u, this, r, _, w, s);\n } else\n o || (r ? o = (b, h, u, _) => e(b, h, this, r, u, _, s) : o = (b, h, u) => u);\n let c = !1, f = 0;\n const l = this._roots;\n for (let b = 0, h = l.length; b < h; b++) {\n const u = l[b];\n if (c = gi(this, b, n, o, i, f), c)\n break;\n f += u.byteLength;\n }\n return Q.releasePrimitive(s), c;\n }\n bvhcast(t, s, e) {\n let {\n intersectsRanges: i,\n intersectsTriangles: n\n } = e;\n const o = Q.getPrimitive(), r = this.geometry.index, c = this.geometry.attributes.position, f = this.indirect ? (_) => {\n const w = this.resolveTriangleIndex(_);\n k(o, w * 3, r, c);\n } : (_) => {\n k(o, _ * 3, r, c);\n }, l = Q.getPrimitive(), b = t.geometry.index, h = t.geometry.attributes.position, u = t.indirect ? (_) => {\n const w = t.resolveTriangleIndex(_);\n k(l, w * 3, b, h);\n } : (_) => {\n k(l, _ * 3, b, h);\n };\n if (n) {\n const _ = (w, y, d, p, I, m, g, A) => {\n for (let F = d, x = d + p; F < x; F++) {\n u(F), l.a.applyMatrix4(s), l.b.applyMatrix4(s), l.c.applyMatrix4(s), l.needsUpdate = !0;\n for (let C = w, v = w + y; C < v; C++)\n if (f(C), o.needsUpdate = !0, n(o, l, C, F, I, m, g, A))\n return !0;\n }\n return !1;\n };\n if (i) {\n const w = i;\n i = function(y, d, p, I, m, g, A, F) {\n return w(y, d, p, I, m, g, A, F) ? !0 : _(y, d, p, I, m, g, A, F);\n };\n } else\n i = _;\n }\n return Zi(this, t, s, i);\n }\n /* Derived Cast Functions */\n intersectsBox(t, s) {\n return xs.set(t.min, t.max, s), xs.needsUpdate = !0, this.shapecast(\n {\n intersectsBounds: (e) => xs.intersectsBox(e),\n intersectsTriangle: (e) => xs.intersectsTriangle(e)\n }\n );\n }\n intersectsSphere(t) {\n return this.shapecast(\n {\n intersectsBounds: (s) => t.intersectsBox(s),\n intersectsTriangle: (s) => s.intersectsSphere(t)\n }\n );\n }\n closestPointToGeometry(t, s, e = {}, i = {}, n = 0, o = 1 / 0) {\n return (this.indirect ? Xi : Ei)(\n this,\n t,\n s,\n e,\n i,\n n,\n o\n );\n }\n closestPointToPoint(t, s = {}, e = 0, i = 1 / 0) {\n return Ii(\n this,\n t,\n s,\n e,\n i\n );\n }\n getBoundingBox(t) {\n return t.makeEmpty(), this._roots.forEach((e) => {\n R(0, new Float32Array(e), ve), t.union(ve);\n }), t;\n }\n}\nfunction Ve(a, t, s) {\n return a === null || (a.point.applyMatrix4(t.matrixWorld), a.distance = a.point.distanceTo(s.ray.origin), a.object = t, a.distance < s.near || a.distance > s.far) ? null : a;\n}\nconst ks = /* @__PURE__ */ new Ye(), Fe = /* @__PURE__ */ new vt(), Ji = Be.prototype.raycast;\nfunction Wi(a, t) {\n if (this.geometry.boundsTree) {\n if (this.material === void 0)\n return;\n Fe.copy(this.matrixWorld).invert(), ks.copy(a.ray).applyMatrix4(Fe);\n const s = this.geometry.boundsTree;\n if (a.firstHitOnly === !0) {\n const e = Ve(s.raycastFirst(ks, this.material), this, a);\n e && t.push(e);\n } else {\n const e = s.raycast(ks, this.material);\n for (let i = 0, n = e.length; i < n; i++) {\n const o = Ve(e[i], this, a);\n o && t.push(o);\n }\n }\n } else\n Ji.call(this, a, t);\n}\nfunction Qi(a) {\n return this.boundsTree = new oe(this, a), this.boundsTree;\n}\nfunction tn() {\n this.boundsTree = null;\n}\nconst os = class os {\n /**\n * Applies the Bounding Volume Hierarchy (BVH) to a given BufferGeometry.\n * If the BVH is not already initialized, it adds the necessary methods to the BufferGeometry and Mesh prototypes.\n * If the geometry does not have a boundsTree, it computes one.\n *\n * @param geometry - The BufferGeometry to apply the BVH to.\n */\n static apply(t) {\n os.initialized || (ce.prototype.computeBoundsTree = Qi, ce.prototype.disposeBoundsTree = tn, Be.prototype.raycast = Wi, os.initialized = !0), t.boundsTree || t.computeBoundsTree();\n }\n /**\n * Disposes of the BVH associated with the given BufferGeometry.\n * If the geometry has a boundsTree, it disposes of it.\n *\n * @param geometry - The BufferGeometry to dispose of the BVH from.\n */\n static dispose(t) {\n t && t.disposeBoundsTree && t.disposeBoundsTree();\n }\n};\n/**\n * A flag indicating whether the BVH has been initialized.\n * Initialized means the necessary methods have been added to BufferGeometry and Mesh prototypes.\n */\nS(os, \"initialized\", !1);\nlet Ps = os, Ue = class {\n /**\n * Constructs a new Fragment.\n * @param geometry - The geometry of the fragment.\n * @param material - The material(s) of the fragment.\n * @param count - The initial number of instances in the fragment.\n */\n constructor(t, s, e) {\n /**\n * A set of unique item IDs associated with this fragment.\n */\n S(this, \"ids\", /* @__PURE__ */ new Set());\n /**\n * A map of item IDs to sets of instance IDs.\n */\n S(this, \"itemToInstances\", /* @__PURE__ */ new Map());\n /**\n * A map of instance IDs to item IDs.\n */\n S(this, \"instanceToItem\", /* @__PURE__ */ new Map());\n /**\n * A set of item IDs of instances that are currently hidden.\n */\n S(this, \"hiddenItems\", /* @__PURE__ */ new Set());\n /**\n * The unique identifier of this fragment.\n */\n S(this, \"id\");\n /**\n * The mesh associated with this fragment.\n */\n S(this, \"mesh\");\n /**\n * The amount of instances that this fragment can contain.\n */\n S(this, \"capacity\", 0);\n /**\n * The amount by which to increase the capacity when necessary.\n */\n S(this, \"capacityOffset\", 10);\n /**\n * The group of fragments to which this fragment belongs.\n */\n S(this, \"group\");\n S(this, \"_originalColors\", /* @__PURE__ */ new Map());\n S(this, \"_settingVisibility\", !1);\n this.mesh = new ae(t, s, e, this), this.id = this.mesh.uuid, this.capacity = e, this.mesh.count = 0, this.mesh.geometry.index.count && Ps.apply(this.mesh.geometry);\n }\n /**\n * A getter property that returns the unique vertices of the fragment's geometry.\n * The unique vertices are determined by comparing the vertex positions.\n *\n * @returns An array of unique vertices.\n */\n get uniqueVertices() {\n const t = [], s = this.mesh.geometry.getAttribute(\n \"position\"\n );\n if (!s)\n return t;\n const e = /* @__PURE__ */ new Set();\n for (let i = 0; i < s.count; i++) {\n const n = s.getX(i), o = s.getY(i), r = s.getZ(i), c = `${n},${o},${r}`;\n e.has(c) || (e.add(c), t.push(new L.Vector3(n, o, r)));\n }\n return t;\n }\n /**\n * Disposes of the fragment and its associated resources.\n *\n * @param disposeResources - If true, disposes geometries and materials associated with the fragment. If false, only disposes of the fragment itself.\n */\n dispose(t = !0) {\n if (this.clear(), this.group = void 0, this._originalColors.clear(), this.mesh) {\n if (t) {\n for (const s of this.mesh.material)\n s.dispose();\n this.mesh.material = [], Ps.dispose(this.mesh.geometry), this.mesh.geometry && this.mesh.geometry.dispose(), this.mesh.geometry = null;\n }\n this.mesh.removeFromParent(), this.mesh.userData = {}, this.mesh.dispose(), this.mesh.fragment = null, this.mesh = null;\n }\n }\n /**\n * Retrieves the transform matrices and colors of instances associated with a given item ID.\n *\n * @param itemID - The unique identifier of the item.\n * @throws Will throw an error if the item is not found.\n * @returns An object containing the item ID, an array of transform matrices, and an optional array of colors.\n * If no colors are found, the colors array will be undefined.\n */\n get(t) {\n const s = this.getInstancesIDs(t);\n if (!s)\n throw new Error(\"Item not found!\");\n const e = [], i = [];\n for (const o of s) {\n const r = new L.Matrix4();\n if (this.mesh.getMatrixAt(o, r), e.push(r), this.mesh.instanceColor) {\n const c = new L.Color();\n this.mesh.getColorAt(o, c), i.push(c);\n }\n }\n const n = i.length ? i : void 0;\n return { id: t, transforms: e, colors: n };\n }\n /**\n * Retrieves the item ID associated with a given instance ID.\n *\n * @param instanceID - The unique identifier of the instance.\n * @returns The item ID associated with the instance, or null if no association exists.\n */\n getItemID(t) {\n return this.instanceToItem.get(t) || null;\n }\n /**\n * Retrieves the instance IDs associated with a given item ID.\n *\n * @param itemID - The unique identifier of the item.\n * @returns The set of instance IDs associated with the item, or null if no association exists.\n */\n getInstancesIDs(t) {\n return this.itemToInstances.get(t) || null;\n }\n /**\n * Updates the instance color and matrix attributes of the fragment's mesh.\n * This method should be called whenever the instance color or matrix attributes\n * need to be updated.\n */\n update() {\n this.mesh.instanceColor && (this.mesh.instanceColor.needsUpdate = !0), this.mesh.instanceMatrix.needsUpdate = !0;\n }\n /**\n * Adds items to the fragment.\n *\n * @param items - An array of items to be added. Each item contains an ID, an array of transform matrices, and an optional array of colors.\n *\n * If the necessary capacity to accommodate the new items exceeds the current capacity,\n * a new mesh with a larger capacity is created, and the old mesh is disposed.\n *\n * The transform matrices and colors of the items are added to the respective attributes of the mesh.\n *\n * The instance IDs, item IDs, and associations between instance IDs and item IDs are updated accordingly.\n *\n * The instance color and matrix attributes of the mesh are updated.\n */\n add(t) {\n var i;\n let s = 0;\n for (const n of t)\n s += n.transforms.length;\n const e = this.mesh.count + s;\n if (e > this.capacity) {\n const n = e + this.capacityOffset, o = new ae(\n this.mesh.geometry,\n this.mesh.material,\n n,\n this\n );\n o.count = this.mesh.count, this.capacity = n;\n const r = this.mesh;\n (i = r.parent) == null || i.add(o), r.removeFromParent(), this.mesh = o;\n const c = new L.Matrix4();\n for (let f = 0; f < r.instanceMatrix.count; f++)\n r.getMatrixAt(f, c), o.setMatrixAt(f, c);\n if (r.instanceColor) {\n const f = new L.Color();\n for (let l = 0; l < r.instanceColor.count; l++)\n r.getColorAt(l, f), o.setColorAt(l, f);\n }\n r.dispose();\n }\n for (let n = 0; n < t.length; n++) {\n const { transforms: o, colors: r, id: c } = t[n];\n this.itemToInstances.has(c) || this.itemToInstances.set(c, /* @__PURE__ */ new Set());\n const f = this.itemToInstances.get(c);\n this.ids.add(c);\n for (let l = 0; l < o.length; l++) {\n const b = o[l], h = this.mesh.count;\n if (this.mesh.setMatrixAt(h, b), r) {\n const u = r[l];\n this.mesh.setColorAt(h, u);\n }\n f.add(h), this.instanceToItem.set(h, c), this.mesh.count++;\n }\n }\n this.update();\n }\n /**\n * Removes items from the fragment.\n *\n * @param itemsIDs - An iterable of item IDs to be removed.\n *\n * The instance IDs, item IDs, and associations between instance IDs and item IDs are updated accordingly.\n *\n * The instance color and matrix attributes of the mesh are updated.\n *\n * @throws Will throw an error if the instances are not found.\n */\n remove(t) {\n if (this.mesh.count !== 0) {\n for (const s of t) {\n const e = this.itemToInstances.get(s);\n if (e === void 0)\n throw new Error(\"Instances not found!\");\n for (const i of e) {\n if (this.mesh.count === 0)\n throw new Error(\"Error with mesh count!\");\n this.putLast(i), this.instanceToItem.delete(i), this.mesh.count--;\n }\n this.itemToInstances.delete(s), this.ids.delete(s);\n }\n this.update();\n }\n }\n /**\n * Clears the fragment by resetting the hidden items, item IDs, instance-to-item associations,\n * instance-to-item map, and the count of instances in the fragment's mesh.\n *\n * @remarks\n * This method is used to reset the fragment to its initial state.\n *\n * @example\n * ```typescript\n * fragment.clear();\n * ```\n */\n clear() {\n this.hiddenItems.clear(), this.ids.clear(), this.instanceToItem.clear(), this.itemToInstances.clear(), this.mesh.count = 0;\n }\n /**\n * Sets the visibility of items in the fragment.\n *\n * @param visible - A boolean indicating whether the items should be visible or hidden.\n * @param itemIDs - An iterable of item IDs to be affected. If not provided, all items in the fragment will be affected.\n *\n * @remarks\n * This method updates the visibility of items in the fragment based on the provided visibility flag.\n *\n * @throws Will throw an error if the instances are not found or if the item IDs are not found in the fragment.\n *\n * @example\n * ```typescript\n * fragment.setVisibility(true, [1, 2, 3]); // Makes items with IDs 1, 2, and 3 visible.\n * fragment.setVisibility(false); // Makes all items in the fragment hidden.\n * ```\n */\n setVisibility(t, s = this.ids) {\n if (!this._settingVisibility) {\n if (this._settingVisibility = !0, t)\n for (const e of s) {\n if (!this.ids.has(e))\n throw new Error(`This item doesn't exist here: ${e}`);\n if (!this.hiddenItems.has(e))\n continue;\n const i = this.itemToInstances.get(e);\n if (!i)\n throw new Error(\"Instances not found!\");\n for (const n of new Set(i))\n this.mesh.count++, this.putLast(n);\n this.hiddenItems.delete(e);\n }\n else\n for (const e of s) {\n if (!this.ids.has(e))\n throw new Error(`This item doesn't exist here: ${e}`);\n if (this.hiddenItems.has(e))\n continue;\n const i = this.itemToInstances.get(e);\n if (!i)\n throw new Error(\"Instances not found!\");\n for (const n of new Set(i))\n this.putLast(n), this.mesh.count--;\n this.hiddenItems.add(e);\n }\n this.update(), this._settingVisibility = !1;\n }\n }\n /**\n * Sets the color of items in the fragment.\n *\n * @param color - The color to be set for the items.\n * @param itemIDs - An iterable of item IDs to be affected. If not provided, all items in the fragment will be affected.\n * @param override - A boolean indicating whether the original color should be overridden. If true, the original color will be replaced with the new color.\n *\n * @throws Will throw an error if the fragment doesn't have color per instance or if the item IDs are not found in the fragment.\n *\n * @example\n * ```typescript\n * fragment.setColor(new THREE.Color(0xff0000), [1, 2, 3], true); // Sets the color of items with IDs 1, 2, and 3 to red, overriding their original colors.\n * fragment.setColor(new THREE.Color(0x00ff00)); // Sets the color of all items in the fragment to green.\n * ```\n */\n setColor(t, s = this.ids, e = !1) {\n if (!this.mesh.instanceColor)\n throw new Error(\"This fragment doesn't have color per instance!\");\n for (const i of s) {\n if (!this.ids.has(i))\n throw new Error(`This item doesn't exist here: ${i}`);\n const n = this.itemToInstances.get(i);\n if (!n)\n throw new Error(\"Instances not found!\");\n const o = this._originalColors.has(i);\n o || this._originalColors.set(i, /* @__PURE__ */ new Map());\n const r = this._originalColors.get(i);\n for (const c of new Set(n)) {\n if (!o) {\n const f = new L.Color();\n this.mesh.getColorAt(c, f), r.set(c, f);\n }\n this.mesh.setColorAt(c, t), e && r.set(c, t);\n }\n }\n this.mesh.instanceColor.needsUpdate = !0;\n }\n /**\n * Resets the color of items in the fragment to their original colors.\n *\n * @param itemIDs - An iterable of item IDs to be affected. If not provided, all items in the fragment will be affected.\n *\n * @throws Will throw an error if the fragment doesn't have color per instance or if the item IDs are not found in the fragment.\n *\n * @example\n * ```typescript\n * fragment.resetColor([1, 2, 3]); // Resets the color of items with IDs 1, 2, and 3 to their original colors.\n * fragment.resetColor(); // Resets the color of all items in the fragment to their original colors.\n * ```\n */\n resetColor(t = this.ids) {\n if (!this.mesh.instanceColor)\n throw new Error(\"This fragment doesn't have color per instance!\");\n for (const s of t) {\n if (!this.ids.has(s))\n throw new Error(`This item doesn't exist here: ${s}`);\n const e = this.itemToInstances.get(s);\n if (!e)\n throw new Error(\"Instances not found!\");\n const i = this._originalColors.get(s);\n if (i)\n for (const n of new Set(e)) {\n const o = i.get(n);\n if (!o)\n throw new Error(\"Original color not found!\");\n this.mesh.setColorAt(n, o);\n }\n }\n this.mesh.instanceColor.needsUpdate = !0;\n }\n /**\n * Applies a transformation matrix to instances associated with given item IDs.\n *\n * @param itemIDs - An iterable of item IDs to be affected.\n * @param transform - The transformation matrix to be applied.\n *\n * @remarks\n * This method applies the provided transformation matrix to the instances associated with the given item IDs.\n *\n * @example\n * ```typescript\n * fragment.applyTransform([1, 2, 3], new THREE.Matrix4().makeTranslation(1, 0, 0)); // Applies a translation of (1, 0, 0) to instances with IDs 1, 2, and 3.\n * ```\n */\n applyTransform(t, s) {\n const e = new L.Matrix4();\n for (const i of t) {\n const n = this.getInstancesIDs(i);\n if (n !== null)\n for (const o of n)\n this.mesh.getMatrixAt(o, e), e.premultiply(s), this.mesh.setMatrixAt(o, e);\n }\n this.update();\n }\n /**\n * Exports the fragment's geometry and associated data.\n *\n * @returns An object containing the exported geometry, an array of IDs associated with the fragment, and the fragment's ID.\n *\n * @remarks\n * This method is used to export the fragment's geometry and associated data for further processing or storage.\n *\n * @example\n * ```typescript\n * const exportedData = fragment.exportData();\n * // Use the exportedData object for further processing or storage\n * ```\n */\n exportData() {\n const t = this.mesh.exportData(), s = Array.from(this.ids), e = this.id;\n return { ...t, ids: s, id: e };\n }\n putLast(t) {\n if (this.mesh.count === 0)\n return;\n const s = this.instanceToItem.get(t), e = this.mesh.count - 1;\n if (e === t)\n return;\n const i = this.instanceToItem.get(e);\n if (s === void 0 || i === void 0)\n throw new Error(\"Keys not found\");\n if (s !== i) {\n const r = this.itemToInstances.get(s), c = this.itemToInstances.get(i);\n if (!r || !c)\n throw new Error(\"Instances not found\");\n if (!r.has(t) || !c.has(e))\n throw new Error(\"Malformed fragment structure\");\n r.delete(t), c.delete(e), r.add(e), c.add(t), this.instanceToItem.set(t, i), this.instanceToItem.set(e, s);\n }\n const n = new L.Matrix4(), o = new L.Matrix4();\n if (this.mesh.getMatrixAt(t, n), this.mesh.getMatrixAt(e, o), this.mesh.setMatrixAt(t, o), this.mesh.setMatrixAt(e, n), this.mesh.instanceColor !== null) {\n const r = new L.Color(), c = new L.Color();\n this.mesh.getColorAt(t, r), this.mesh.getColorAt(e, c), this.mesh.setColorAt(t, c), this.mesh.setColorAt(e, r);\n const f = this._originalColors.get(s);\n if (f) {\n const b = f.get(t);\n b && (f.delete(t), f.set(e, b));\n }\n const l = this._originalColors.get(i);\n if (l) {\n const b = l.get(e);\n b && (l.delete(e), l.set(t, b));\n }\n }\n }\n};\nconst qs = 2, at = 4, ut = 4, W = 4, wt = new Int32Array(2), Ce = new Float32Array(wt.buffer), Pe = new Float64Array(wt.buffer), As = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1;\nvar Qs;\n(function(a) {\n a[a.UTF8_BYTES = 1] = \"UTF8_BYTES\", a[a.UTF16_STRING = 2] = \"UTF16_STRING\";\n})(Qs || (Qs = {}));\nclass Dt {\n /**\n * Create a new ByteBuffer with a given array of bytes (`Uint8Array`)\n */\n constructor(t) {\n this.bytes_ = t, this.position_ = 0, this.text_decoder_ = new TextDecoder();\n }\n /**\n * Create and allocate a new ByteBuffer with a given size.\n */\n static allocate(t) {\n return new Dt(new Uint8Array(t));\n }\n clear() {\n this.position_ = 0;\n }\n /**\n * Get the underlying `Uint8Array`.\n */\n bytes() {\n return this.bytes_;\n }\n /**\n * Get the buffer's position.\n */\n position() {\n return this.position_;\n }\n /**\n * Set the buffer's position.\n */\n setPosition(t) {\n this.position_ = t;\n }\n /**\n * Get the buffer's capacity.\n */\n capacity() {\n return this.bytes_.length;\n }\n readInt8(t) {\n return this.readUint8(t) << 24 >> 24;\n }\n readUint8(t) {\n return this.bytes_[t];\n }\n readInt16(t) {\n return this.readUint16(t) << 16 >> 16;\n }\n readUint16(t) {\n return this.bytes_[t] | this.bytes_[t + 1] << 8;\n }\n readInt32(t) {\n return this.bytes_[t] | this.bytes_[t + 1] << 8 | this.bytes_[t + 2] << 16 | this.bytes_[t + 3] << 24;\n }\n readUint32(t) {\n return this.readInt32(t) >>> 0;\n }\n readInt64(t) {\n return BigInt.asIntN(64, BigInt(this.readUint32(t)) + (BigInt(this.readUint32(t + 4)) << BigInt(32)));\n }\n readUint64(t) {\n return BigInt.asUintN(64, BigInt(this.readUint32(t)) + (BigInt(this.readUint32(t + 4)) << BigInt(32)));\n }\n readFloat32(t) {\n return wt[0] = this.readInt32(t), Ce[0];\n }\n readFloat64(t) {\n return wt[As ? 0 : 1] = this.readInt32(t), wt[As ? 1 : 0] = this.readInt32(t + 4), Pe[0];\n }\n writeInt8(t, s) {\n this.bytes_[t] = s;\n }\n writeUint8(t, s) {\n this.bytes_[t] = s;\n }\n writeInt16(t, s) {\n this.bytes_[t] = s, this.bytes_[t + 1] = s >> 8;\n }\n writeUint16(t, s) {\n this.bytes_[t] = s, this.bytes_[t + 1] = s >> 8;\n }\n writeInt32(t, s) {\n this.bytes_[t] = s, this.bytes_[t + 1] = s >> 8, this.bytes_[t + 2] = s >> 16, this.bytes_[t + 3] = s >> 24;\n }\n writeUint32(t, s) {\n this.bytes_[t] = s, this.bytes_[t + 1] = s >> 8, this.bytes_[t + 2] = s >> 16, this.bytes_[t + 3] = s >> 24;\n }\n writeInt64(t, s) {\n this.writeInt32(t, Number(BigInt.asIntN(32, s))), this.writeInt32(t + 4, Number(BigInt.asIntN(32, s >> BigInt(32))));\n }\n writeUint64(t, s) {\n this.writeUint32(t, Number(BigInt.asUintN(32, s))), this.writeUint32(t + 4, Number(BigInt.asUintN(32, s >> BigInt(32))));\n }\n writeFloat32(t, s) {\n Ce[0] = s, this.writeInt32(t, wt[0]);\n }\n writeFloat64(t, s) {\n Pe[0] = s, this.writeInt32(t, wt[As ? 0 : 1]), this.writeInt32(t + 4, wt[As ? 1 : 0]);\n }\n /**\n * Return the file identifier. Behavior is undefined for FlatBuffers whose\n * schema does not include a file_identifier (likely points at padding or the\n * start of a the root vtable).\n */\n getBufferIdentifier() {\n if (this.bytes_.length < this.position_ + at + ut)\n throw new Error(\"FlatBuffers: ByteBuffer is too short to contain an identifier.\");\n let t = \"\";\n for (let s = 0; s < ut; s++)\n t += String.fromCharCode(this.readInt8(this.position_ + at + s));\n return t;\n }\n /**\n * Look up a field in the vtable, return an offset into the object, or 0 if the\n * field is not present.\n */\n __offset(t, s) {\n const e = t - this.readInt32(t);\n return s < this.readInt16(e) ? this.readInt16(e + s) : 0;\n }\n /**\n * Initialize any Table-derived type to point to the union at the given offset.\n */\n __union(t, s) {\n return t.bb_pos = s + this.readInt32(s), t.bb = this, t;\n }\n /**\n * Create a JavaScript string from UTF-8 data stored inside the FlatBuffer.\n * This allocates a new string and converts to wide chars upon each access.\n *\n * To avoid the conversion to string, pass Encoding.UTF8_BYTES as the\n * \"optionalEncoding\" argument. This is useful for avoiding conversion when\n * the data will just be packaged back up in another FlatBuffer later on.\n *\n * @param offset\n * @param opt_encoding Defaults to UTF16_STRING\n */\n __string(t, s) {\n t += this.readInt32(t);\n const e = this.readInt32(t);\n t += at;\n const i = this.bytes_.subarray(t, t + e);\n return s === Qs.UTF8_BYTES ? i : this.text_decoder_.decode(i);\n }\n /**\n * Handle unions that can contain string as its member, if a Table-derived type then initialize it,\n * if a string then return a new one\n *\n * WARNING: strings are immutable in JS so we can't change the string that the user gave us, this\n * makes the behaviour of __union_with_string different compared to __union\n */\n __union_with_string(t, s) {\n return typeof t == \"string\" ? this.__string(s) : this.__union(t, s);\n }\n /**\n * Retrieve the relative offset stored at \"offset\"\n */\n __indirect(t) {\n return t + this.readInt32(t);\n }\n /**\n * Get the start of data of a vector whose offset is stored at \"offset\" in this object.\n */\n __vector(t) {\n return t + this.readInt32(t) + at;\n }\n /**\n * Get the length of a vector whose offset is stored at \"offset\" in this object.\n */\n __vector_len(t) {\n return this.readInt32(t + this.readInt32(t));\n }\n __has_identifier(t) {\n if (t.length != ut)\n throw new Error(\"FlatBuffers: file identifier must be length \" + ut);\n for (let s = 0; s < ut; s++)\n if (t.charCodeAt(s) != this.readInt8(this.position() + at + s))\n return !1;\n return !0;\n }\n /**\n * A helper function for generating list for obj api\n */\n createScalarList(t, s) {\n const e = [];\n for (let i = 0; i < s; ++i) {\n const n = t(i);\n n !== null && e.push(n);\n }\n return e;\n }\n /**\n * A helper function for generating list for obj api\n * @param listAccessor function that accepts an index and return data at that index\n * @param listLength listLength\n * @param res result list\n */\n createObjList(t, s) {\n const e = [];\n for (let i = 0; i < s; ++i) {\n const n = t(i);\n n !== null && e.push(n.unpack());\n }\n return e;\n }\n}\nclass rs {\n /**\n * Create a FlatBufferBuilder.\n */\n constructor(t) {\n this.minalign = 1, this.vtable = null, this.vtable_in_use = 0, this.isNested = !1, this.object_start = 0, this.vtables = [], this.vector_num_elems = 0, this.force_defaults = !1, this.string_maps = null, this.text_encoder = new TextEncoder();\n let s;\n t ? s = t : s = 1024, this.bb = Dt.allocate(s), this.space = s;\n }\n clear() {\n this.bb.clear(), this.space = this.bb.capacity(), this.minalign = 1, this.vtable = null, this.vtable_in_use = 0, this.isNested = !1, this.object_start = 0, this.vtables = [], this.vector_num_elems = 0, this.force_defaults = !1, this.string_maps = null;\n }\n /**\n * In order to save space, fields that are set to their default value\n * don't get serialized into the buffer. Forcing defaults provides a\n * way to manually disable this optimization.\n *\n * @param forceDefaults true always serializes default values\n */\n forceDefaults(t) {\n this.force_defaults = t;\n }\n /**\n * Get the ByteBuffer representing the FlatBuffer. Only call this after you've\n * called finish(). The actual data starts at the ByteBuffer's current position,\n * not necessarily at 0.\n */\n dataBuffer() {\n return this.bb;\n }\n /**\n * Get the bytes representing the FlatBuffer. Only call this after you've\n * called finish().\n */\n asUint8Array() {\n return this.bb.bytes().subarray(this.bb.position(), this.bb.position() + this.offset());\n }\n /**\n * Prepare to write an element of `size` after `additional_bytes` have been\n * written, e.g. if you write a string, you need to align such the int length\n * field is aligned to 4 bytes, and the string data follows it directly. If all\n * you need to do is alignment, `additional_bytes` will be 0.\n *\n * @param size This is the of the new element to write\n * @param additional_bytes The padding size\n */\n prep(t, s) {\n t > this.minalign && (this.minalign = t);\n const e = ~(this.bb.capacity() - this.space + s) + 1 & t - 1;\n for (; this.space < e + t + s; ) {\n const i = this.bb.capacity();\n this.bb = rs.growByteBuffer(this.bb), this.space += this.bb.capacity() - i;\n }\n this.pad(e);\n }\n pad(t) {\n for (let s = 0; s < t; s++)\n this.bb.writeInt8(--this.space, 0);\n }\n writeInt8(t) {\n this.bb.writeInt8(this.space -= 1, t);\n }\n writeInt16(t) {\n this.bb.writeInt16(this.space -= 2, t);\n }\n writeInt32(t) {\n this.bb.writeInt32(this.space -= 4, t);\n }\n writeInt64(t) {\n this.bb.writeInt64(this.space -= 8, t);\n }\n writeFloat32(t) {\n this.bb.writeFloat32(this.space -= 4, t);\n }\n writeFloat64(t) {\n this.bb.writeFloat64(this.space -= 8, t);\n }\n /**\n * Add an `int8` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param value The `int8` to add the buffer.\n */\n addInt8(t) {\n this.prep(1, 0), this.writeInt8(t);\n }\n /**\n * Add an `int16` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param value The `int16` to add the buffer.\n */\n addInt16(t) {\n this.prep(2, 0), this.writeInt16(t);\n }\n /**\n * Add an `int32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param value The `int32` to add the buffer.\n */\n addInt32(t) {\n this.prep(4, 0), this.writeInt32(t);\n }\n /**\n * Add an `int64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param value The `int64` to add the buffer.\n */\n addInt64(t) {\n this.prep(8, 0), this.writeInt64(t);\n }\n /**\n * Add a `float32` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param value The `float32` to add the buffer.\n */\n addFloat32(t) {\n this.prep(4, 0), this.writeFloat32(t);\n }\n /**\n * Add a `float64` to the buffer, properly aligned, and grows the buffer (if necessary).\n * @param value The `float64` to add the buffer.\n */\n addFloat64(t) {\n this.prep(8, 0), this.writeFloat64(t);\n }\n addFieldInt8(t, s, e) {\n (this.force_defaults || s != e) && (this.addInt8(s), this.slot(t));\n }\n addFieldInt16(t, s, e) {\n (this.force_defaults || s != e) && (this.addInt16(s), this.slot(t));\n }\n addFieldInt32(t, s, e) {\n (this.force_defaults || s != e) && (this.addInt32(s), this.slot(t));\n }\n addFieldInt64(t, s, e) {\n (this.force_defaults || s !== e) && (this.addInt64(s), this.slot(t));\n }\n addFieldFloat32(t, s, e) {\n (this.force_defaults || s != e) && (this.addFloat32(s), this.slot(t));\n }\n addFieldFloat64(t, s, e) {\n (this.force_defaults || s != e) && (this.addFloat64(s), this.slot(t));\n }\n addFieldOffset(t, s, e) {\n (this.force_defaults || s != e) && (this.addOffset(s), this.slot(t));\n }\n /**\n * Structs are stored inline, so nothing additional is being added. `d` is always 0.\n */\n addFieldStruct(t, s, e) {\n s != e && (this.nested(s), this.slot(t));\n }\n /**\n * Structures are always stored inline, they need to be created right\n * where they're used. You'll get this assertion failure if you\n * created it elsewhere.\n */\n nested(t) {\n if (t != this.offset())\n throw new Error(\"FlatBuffers: struct must be serialized inline.\");\n }\n /**\n * Should not be creating any other object, string or vector\n * while an object is being constructed\n */\n notNested() {\n if (this.isNested)\n throw new Error(\"FlatBuffers: object serialization must not be nested.\");\n }\n /**\n * Set the current vtable at `voffset` to the current location in the buffer.\n */\n slot(t) {\n this.vtable !== null && (this.vtable[t] = this.offset());\n }\n /**\n * @returns Offset relative to the end of the buffer.\n */\n offset() {\n return this.bb.capacity() - this.space;\n }\n /**\n * Doubles the size of the backing ByteBuffer and copies the old data towards\n * the end of the new buffer (since we build the buffer backwards).\n *\n * @param bb The current buffer with the existing data\n * @returns A new byte buffer with the old data copied\n * to it. The data is located at the end of the buffer.\n *\n * uint8Array.set() formally takes {Array|ArrayBufferView}, so to pass\n * it a uint8Array we need to suppress the type check:\n * @suppress {checkTypes}\n */\n static growByteBuffer(t) {\n const s = t.capacity();\n if (s & 3221225472)\n throw new Error(\"FlatBuffers: cannot grow buffer beyond 2 gigabytes.\");\n const e = s << 1, i = Dt.allocate(e);\n return i.setPosition(e - s), i.bytes().set(t.bytes(), e - s), i;\n }\n /**\n * Adds on offset, relative to where it will be written.\n *\n * @param offset The offset to add.\n */\n addOffset(t) {\n this.prep(at, 0), this.writeInt32(this.offset() - t + at);\n }\n /**\n * Start encoding a new object in the buffer. Users will not usually need to\n * call this directly. The FlatBuffers compiler will generate helper methods\n * that call this method internally.\n */\n startObject(t) {\n this.notNested(), this.vtable == null && (this.vtable = []), this.vtable_in_use = t;\n for (let s = 0; s < t; s++)\n this.vtable[s] = 0;\n this.isNested = !0, this.object_start = this.offset();\n }\n /**\n * Finish off writing the object that is under construction.\n *\n * @returns The offset to the object inside `dataBuffer`\n */\n endObject() {\n if (this.vtable == null || !this.isNested)\n throw new Error(\"FlatBuffers: endObject called without startObject\");\n this.addInt32(0);\n const t = this.offset();\n let s = this.vtable_in_use - 1;\n for (; s >= 0 && this.vtable[s] == 0; s--)\n ;\n const e = s + 1;\n for (; s >= 0; s--)\n this.addInt16(this.vtable[s] != 0 ? t - this.vtable[s] : 0);\n const i = 2;\n this.addInt16(t - this.object_start);\n const n = (e + i) * qs;\n this.addInt16(n);\n let o = 0;\n const r = this.space;\n t:\n for (s = 0; s < this.vtables.length; s++) {\n const c = this.bb.capacity() - this.vtables[s];\n if (n == this.bb.readInt16(c)) {\n for (let f = qs; f < n; f += qs)\n if (this.bb.readInt16(r + f) != this.bb.readInt16(c + f))\n continue t;\n o = this.vtables[s];\n break;\n }\n }\n return o ? (this.space = this.bb.capacity() - t, this.bb.writeInt32(this.space, o - t)) : (this.vtables.push(this.offset()), this.bb.writeInt32(this.bb.capacity() - t, this.offset() - t)), this.isNested = !1, t;\n }\n /**\n * Finalize a buffer, poiting to the given `root_table`.\n */\n finish(t, s, e) {\n const i = e ? W : 0;\n if (s) {\n const n = s;\n if (this.prep(this.minalign, at + ut + i), n.length != ut)\n throw new Error(\"FlatBuffers: file identifier must be length \" + ut);\n for (let o = ut - 1; o >= 0; o--)\n this.writeInt8(n.charCodeAt(o));\n }\n this.prep(this.minalign, at + i), this.addOffset(t), i && this.addInt32(this.bb.capacity() - this.space), this.bb.setPosition(this.space);\n }\n /**\n * Finalize a size prefixed buffer, pointing to the given `root_table`.\n */\n finishSizePrefixed(t, s) {\n this.finish(t, s, !0);\n }\n /**\n * This checks a required field has been set in a given table that has\n * just been constructed.\n */\n requiredField(t, s) {\n const e = this.bb.capacity() - t, i = e - this.bb.readInt32(e);\n if (!(s < this.bb.readInt16(i) && this.bb.readInt16(i + s) != 0))\n throw new Error(\"FlatBuffers: field \" + s + \" must be set\");\n }\n /**\n * Start a new array/vector of objects. Users usually will not call\n * this directly. The FlatBuffers compiler will create a start/end\n * method for vector types in generated code.\n *\n * @param elem_size The size of each element in the array\n * @param num_elems The number of elements in the array\n * @param alignment The alignment of the array\n */\n startVector(t, s, e) {\n this.notNested(), this.vector_num_elems = s, this.prep(at, t * s), this.prep(e, t * s);\n }\n /**\n * Finish off the creation of an array and all its elements. The array must be\n * created with `startVector`.\n *\n * @returns The offset at which the newly created array\n * starts.\n */\n endVector() {\n return this.writeInt32(this.vector_num_elems), this.offset();\n }\n /**\n * Encode the string `s` in the buffer using UTF-8. If the string passed has\n * already been seen, we return the offset of the already written string\n *\n * @param s The string to encode\n * @return The offset in the buffer where the encoded string starts\n */\n createSharedString(t) {\n if (!t)\n return 0;\n if (this.string_maps || (this.string_maps = /* @__PURE__ */ new Map()), this.string_maps.has(t))\n return this.string_maps.get(t);\n const s = this.createString(t);\n return this.string_maps.set(t, s), s;\n }\n /**\n * Encode the string `s` in the buffer using UTF-8. If a Uint8Array is passed\n * instead of a string, it is assumed to contain valid UTF-8 encoded data.\n *\n * @param s The string to encode\n * @return The offset in the buffer where the encoded string starts\n */\n createString(t) {\n if (t == null)\n return 0;\n let s;\n t instanceof Uint8Array ? s = t : s = this.text_encoder.encode(t), this.addInt8(0), this.startVector(1, s.length, 1), this.bb.setPosition(this.space -= s.length);\n for (let e = 0, i = this.space, n = this.bb.bytes(); e < s.length; e++)\n n[i++] = s[e];\n return this.endVector();\n }\n /**\n * A helper function to pack an object\n *\n * @returns offset of obj\n */\n createObjectOffset(t) {\n return t === null ? 0 : typeof t == \"string\" ? this.createString(t) : t.pack(this);\n }\n /**\n * A helper function to pack a list of object\n *\n * @returns list of offsets of each non null object\n */\n createObjectOffsetList(t) {\n const s = [];\n for (let e = 0; e < t.length; ++e) {\n const i = t[e];\n if (i !== null)\n s.push(this.createObjectOffset(i));\n else\n throw new Error(\"FlatBuffers: Argument for createObjectOffsetList cannot contain null.\");\n }\n return s;\n }\n createStructOffsetList(t, s) {\n return s(this, t.length), this.createObjectOffsetList(t.slice().reverse()), this.endVector();\n }\n}\nlet Vs = class Tt {\n constructor() {\n S(this, \"bb\", null);\n S(this, \"bb_pos\", 0);\n }\n __init(t, s) {\n return this.bb_pos = t, this.bb = s, this;\n }\n static getRootAsCivilCurve(t, s) {\n return (s || new Tt()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n static getSizePrefixedRootAsCivilCurve(t, s) {\n return t.setPosition(t.position() + W), (s || new Tt()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n points(t) {\n const s = this.bb.__offset(this.bb_pos, 4);\n return s ? this.bb.readFloat32(\n this.bb.__vector(this.bb_pos + s) + t * 4\n ) : 0;\n }\n pointsLength() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n pointsArray() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? new Float32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n data(t) {\n const s = this.bb.__offset(this.bb_pos, 6);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n static startCivilCurve(t) {\n t.startObject(2);\n }\n static addPoints(t, s) {\n t.addFieldOffset(0, s, 0);\n }\n static createPointsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startPointsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addData(t, s) {\n t.addFieldOffset(1, s, 0);\n }\n static endCivilCurve(t) {\n return t.endObject();\n }\n static createCivilCurve(t, s, e) {\n return Tt.startCivilCurve(t), Tt.addPoints(t, s), Tt.addData(t, e), Tt.endCivilCurve(t);\n }\n}, ze = class lt {\n constructor() {\n S(this, \"bb\", null);\n S(this, \"bb_pos\", 0);\n }\n __init(t, s) {\n return this.bb_pos = t, this.bb = s, this;\n }\n static getRootAsAlignment(t, s) {\n return (s || new lt()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n static getSizePrefixedRootAsAlignment(t, s) {\n return t.setPosition(t.position() + W), (s || new lt()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n vertical(t, s) {\n const e = this.bb.__offset(this.bb_pos, 4);\n return e ? (s || new Vs()).__init(\n this.bb.__indirect(\n this.bb.__vector(this.bb_pos + e) + t * 4\n ),\n this.bb\n ) : null;\n }\n verticalLength() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n horizontal(t, s) {\n const e = this.bb.__offset(this.bb_pos, 6);\n return e ? (s || new Vs()).__init(\n this.bb.__indirect(\n this.bb.__vector(this.bb_pos + e) + t * 4\n ),\n this.bb\n ) : null;\n }\n horizontalLength() {\n const t = this.bb.__offset(this.bb_pos, 6);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n absolute(t, s) {\n const e = this.bb.__offset(this.bb_pos, 8);\n return e ? (s || new Vs()).__init(\n this.bb.__indirect(\n this.bb.__vector(this.bb_pos + e) + t * 4\n ),\n this.bb\n ) : null;\n }\n absoluteLength() {\n const t = this.bb.__offset(this.bb_pos, 8);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n initialPk() {\n const t = this.bb.__offset(this.bb_pos, 10);\n return t ? this.bb.readFloat32(this.bb_pos + t) : 0;\n }\n static startAlignment(t) {\n t.startObject(4);\n }\n static addVertical(t, s) {\n t.addFieldOffset(0, s, 0);\n }\n static createVerticalVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addOffset(s[e]);\n return t.endVector();\n }\n static startVerticalVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addHorizontal(t, s) {\n t.addFieldOffset(1, s, 0);\n }\n static createHorizontalVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addOffset(s[e]);\n return t.endVector();\n }\n static startHorizontalVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addAbsolute(t, s) {\n t.addFieldOffset(2, s, 0);\n }\n static createAbsoluteVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addOffset(s[e]);\n return t.endVector();\n }\n static startAbsoluteVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addInitialPk(t, s) {\n t.addFieldFloat32(3, s, 0);\n }\n static endAlignment(t) {\n return t.endObject();\n }\n static createAlignment(t, s, e, i, n) {\n return lt.startAlignment(t), lt.addVertical(t, s), lt.addHorizontal(t, e), lt.addAbsolute(t, i), lt.addInitialPk(t, n), lt.endAlignment(t);\n }\n}, Ee = class Ot {\n constructor() {\n S(this, \"bb\", null);\n S(this, \"bb_pos\", 0);\n }\n __init(t, s) {\n return this.bb_pos = t, this.bb = s, this;\n }\n static getRootAsCivilData(t, s) {\n return (s || new Ot()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n static getSizePrefixedRootAsCivilData(t, s) {\n return t.setPosition(t.position() + W), (s || new Ot()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n alignments(t, s) {\n const e = this.bb.__offset(this.bb_pos, 4);\n return e ? (s || new ze()).__init(\n this.bb.__indirect(\n this.bb.__vector(this.bb_pos + e) + t * 4\n ),\n this.bb\n ) : null;\n }\n alignmentsLength() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n coordinationMatrix(t) {\n const s = this.bb.__offset(this.bb_pos, 6);\n return s ? this.bb.readFloat32(\n this.bb.__vector(this.bb_pos + s) + t * 4\n ) : 0;\n }\n coordinationMatrixLength() {\n const t = this.bb.__offset(this.bb_pos, 6);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n coordinationMatrixArray() {\n const t = this.bb.__offset(this.bb_pos, 6);\n return t ? new Float32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n static startCivilData(t) {\n t.startObject(2);\n }\n static addAlignments(t, s) {\n t.addFieldOffset(0, s, 0);\n }\n static createAlignmentsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addOffset(s[e]);\n return t.endVector();\n }\n static startAlignmentsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addCoordinationMatrix(t, s) {\n t.addFieldOffset(1, s, 0);\n }\n static createCoordinationMatrixVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startCoordinationMatrixVector(t, s) {\n t.startVector(4, s, 4);\n }\n static endCivilData(t) {\n return t.endObject();\n }\n static createCivilData(t, s, e) {\n return Ot.startCivilData(t), Ot.addAlignments(t, s), Ot.addCoordinationMatrix(t, e), Ot.endCivilData(t);\n }\n}, te = class K {\n constructor() {\n S(this, \"bb\", null);\n S(this, \"bb_pos\", 0);\n }\n __init(t, s) {\n return this.bb_pos = t, this.bb = s, this;\n }\n static getRootAsFragment(t, s) {\n return (s || new K()).__init(t.readInt32(t.position()) + t.position(), t);\n }\n static getSizePrefixedRootAsFragment(t, s) {\n return t.setPosition(t.position() + W), (s || new K()).__init(t.readInt32(t.position()) + t.position(), t);\n }\n position(t) {\n const s = this.bb.__offset(this.bb_pos, 4);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n positionLength() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n positionArray() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n normal(t) {\n const s = this.bb.__offset(this.bb_pos, 6);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n normalLength() {\n const t = this.bb.__offset(this.bb_pos, 6);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n normalArray() {\n const t = this.bb.__offset(this.bb_pos, 6);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n index(t) {\n const s = this.bb.__offset(this.bb_pos, 8);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n indexLength() {\n const t = this.bb.__offset(this.bb_pos, 8);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n indexArray() {\n const t = this.bb.__offset(this.bb_pos, 8);\n return t ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n groups(t) {\n const s = this.bb.__offset(this.bb_pos, 10);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n groupsLength() {\n const t = this.bb.__offset(this.bb_pos, 10);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n groupsArray() {\n const t = this.bb.__offset(this.bb_pos, 10);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n materials(t) {\n const s = this.bb.__offset(this.bb_pos, 12);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n materialsLength() {\n const t = this.bb.__offset(this.bb_pos, 12);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n materialsArray() {\n const t = this.bb.__offset(this.bb_pos, 12);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n matrices(t) {\n const s = this.bb.__offset(this.bb_pos, 14);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n matricesLength() {\n const t = this.bb.__offset(this.bb_pos, 14);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n matricesArray() {\n const t = this.bb.__offset(this.bb_pos, 14);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n colors(t) {\n const s = this.bb.__offset(this.bb_pos, 16);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n colorsLength() {\n const t = this.bb.__offset(this.bb_pos, 16);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n colorsArray() {\n const t = this.bb.__offset(this.bb_pos, 16);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n itemsSize(t) {\n const s = this.bb.__offset(this.bb_pos, 18);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n itemsSizeLength() {\n const t = this.bb.__offset(this.bb_pos, 18);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n itemsSizeArray() {\n const t = this.bb.__offset(this.bb_pos, 18);\n return t ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n ids(t) {\n const s = this.bb.__offset(this.bb_pos, 20);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n idsLength() {\n const t = this.bb.__offset(this.bb_pos, 20);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n idsArray() {\n const t = this.bb.__offset(this.bb_pos, 20);\n return t ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n id(t) {\n const s = this.bb.__offset(this.bb_pos, 22);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n capacity() {\n const t = this.bb.__offset(this.bb_pos, 24);\n return t ? this.bb.readUint32(this.bb_pos + t) : 0;\n }\n capacityOffset() {\n const t = this.bb.__offset(this.bb_pos, 26);\n return t ? this.bb.readUint32(this.bb_pos + t) : 0;\n }\n static startFragment(t) {\n t.startObject(12);\n }\n static addPosition(t, s) {\n t.addFieldOffset(0, s, 0);\n }\n static createPositionVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startPositionVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addNormal(t, s) {\n t.addFieldOffset(1, s, 0);\n }\n static createNormalVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startNormalVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addIndex(t, s) {\n t.addFieldOffset(2, s, 0);\n }\n static createIndexVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startIndexVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addGroups(t, s) {\n t.addFieldOffset(3, s, 0);\n }\n static createGroupsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startGroupsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addMaterials(t, s) {\n t.addFieldOffset(4, s, 0);\n }\n static createMaterialsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startMaterialsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addMatrices(t, s) {\n t.addFieldOffset(5, s, 0);\n }\n static createMatricesVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startMatricesVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addColors(t, s) {\n t.addFieldOffset(6, s, 0);\n }\n static createColorsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startColorsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addItemsSize(t, s) {\n t.addFieldOffset(7, s, 0);\n }\n static createItemsSizeVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startItemsSizeVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addIds(t, s) {\n t.addFieldOffset(8, s, 0);\n }\n static createIdsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startIdsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addId(t, s) {\n t.addFieldOffset(9, s, 0);\n }\n static addCapacity(t, s) {\n t.addFieldInt32(10, s, 0);\n }\n static addCapacityOffset(t, s) {\n t.addFieldInt32(11, s, 0);\n }\n static endFragment(t) {\n return t.endObject();\n }\n static createFragment(t, s, e, i, n, o, r, c, f, l, b, h, u) {\n return K.startFragment(t), K.addPosition(t, s), K.addNormal(t, e), K.addIndex(t, i), K.addGroups(t, n), K.addMaterials(t, o), K.addMatrices(t, r), K.addColors(t, c), K.addItemsSize(t, f), K.addIds(t, l), K.addId(t, b), K.addCapacity(t, h), K.addCapacityOffset(t, u), K.endFragment(t);\n }\n}, Ks = class se {\n constructor() {\n S(this, \"bb\", null);\n S(this, \"bb_pos\", 0);\n }\n __init(t, s) {\n return this.bb_pos = t, this.bb = s, this;\n }\n static getRootAsFragmentsGroup(t, s) {\n return (s || new se()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n static getSizePrefixedRootAsFragmentsGroup(t, s) {\n return t.setPosition(t.position() + W), (s || new se()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n items(t, s) {\n const e = this.bb.__offset(this.bb_pos, 4);\n return e ? (s || new te()).__init(\n this.bb.__indirect(\n this.bb.__vector(this.bb_pos + e) + t * 4\n ),\n this.bb\n ) : null;\n }\n itemsLength() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n civil(t) {\n const s = this.bb.__offset(this.bb_pos, 6);\n return s ? (t || new Ee()).__init(\n this.bb.__indirect(this.bb_pos + s),\n this.bb\n ) : null;\n }\n coordinationMatrix(t) {\n const s = this.bb.__offset(this.bb_pos, 8);\n return s ? this.bb.readFloat32(\n this.bb.__vector(this.bb_pos + s) + t * 4\n ) : 0;\n }\n coordinationMatrixLength() {\n const t = this.bb.__offset(this.bb_pos, 8);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n coordinationMatrixArray() {\n const t = this.bb.__offset(this.bb_pos, 8);\n return t ? new Float32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n ids(t) {\n const s = this.bb.__offset(this.bb_pos, 10);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n idsLength() {\n const t = this.bb.__offset(this.bb_pos, 10);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n idsArray() {\n const t = this.bb.__offset(this.bb_pos, 10);\n return t ? new Uint32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n itemsKeys(t) {\n const s = this.bb.__offset(this.bb_pos, 12);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n itemsKeysLength() {\n const t = this.bb.__offset(this.bb_pos, 12);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n itemsKeysArray() {\n const t = this.bb.__offset(this.bb_pos, 12);\n return t ? new Uint32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n itemsKeysIndices(t) {\n const s = this.bb.__offset(this.bb_pos, 14);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n itemsKeysIndicesLength() {\n const t = this.bb.__offset(this.bb_pos, 14);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n itemsKeysIndicesArray() {\n const t = this.bb.__offset(this.bb_pos, 14);\n return t ? new Uint32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n itemsRels(t) {\n const s = this.bb.__offset(this.bb_pos, 16);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n itemsRelsLength() {\n const t = this.bb.__offset(this.bb_pos, 16);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n itemsRelsArray() {\n const t = this.bb.__offset(this.bb_pos, 16);\n return t ? new Uint32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n itemsRelsIndices(t) {\n const s = this.bb.__offset(this.bb_pos, 18);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n itemsRelsIndicesLength() {\n const t = this.bb.__offset(this.bb_pos, 18);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n itemsRelsIndicesArray() {\n const t = this.bb.__offset(this.bb_pos, 18);\n return t ? new Uint32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n fragmentKeys(t) {\n const s = this.bb.__offset(this.bb_pos, 20);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n id(t) {\n const s = this.bb.__offset(this.bb_pos, 22);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n name(t) {\n const s = this.bb.__offset(this.bb_pos, 24);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n ifcName(t) {\n const s = this.bb.__offset(this.bb_pos, 26);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n ifcDescription(t) {\n const s = this.bb.__offset(this.bb_pos, 28);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n ifcSchema(t) {\n const s = this.bb.__offset(this.bb_pos, 30);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n maxExpressId() {\n const t = this.bb.__offset(this.bb_pos, 32);\n return t ? this.bb.readUint32(this.bb_pos + t) : 0;\n }\n boundingBox(t) {\n const s = this.bb.__offset(this.bb_pos, 34);\n return s ? this.bb.readFloat32(\n this.bb.__vector(this.bb_pos + s) + t * 4\n ) : 0;\n }\n boundingBoxLength() {\n const t = this.bb.__offset(this.bb_pos, 34);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n boundingBoxArray() {\n const t = this.bb.__offset(this.bb_pos, 34);\n return t ? new Float32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n opaqueGeometriesIds(t) {\n const s = this.bb.__offset(this.bb_pos, 36);\n return s ? this.bb.readInt32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n opaqueGeometriesIdsLength() {\n const t = this.bb.__offset(this.bb_pos, 36);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n opaqueGeometriesIdsArray() {\n const t = this.bb.__offset(this.bb_pos, 36);\n return t ? new Int32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n transparentGeometriesIds(t) {\n const s = this.bb.__offset(this.bb_pos, 38);\n return s ? this.bb.readInt32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n transparentGeometriesIdsLength() {\n const t = this.bb.__offset(this.bb_pos, 38);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n transparentGeometriesIdsArray() {\n const t = this.bb.__offset(this.bb_pos, 38);\n return t ? new Int32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n static startFragmentsGroup(t) {\n t.startObject(18);\n }\n static addItems(t, s) {\n t.addFieldOffset(0, s, 0);\n }\n static createItemsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addOffset(s[e]);\n return t.endVector();\n }\n static startItemsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addCivil(t, s) {\n t.addFieldOffset(1, s, 0);\n }\n static addCoordinationMatrix(t, s) {\n t.addFieldOffset(2, s, 0);\n }\n static createCoordinationMatrixVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startCoordinationMatrixVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addIds(t, s) {\n t.addFieldOffset(3, s, 0);\n }\n static createIdsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startIdsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addItemsKeys(t, s) {\n t.addFieldOffset(4, s, 0);\n }\n static createItemsKeysVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startItemsKeysVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addItemsKeysIndices(t, s) {\n t.addFieldOffset(5, s, 0);\n }\n static createItemsKeysIndicesVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startItemsKeysIndicesVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addItemsRels(t, s) {\n t.addFieldOffset(6, s, 0);\n }\n static createItemsRelsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startItemsRelsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addItemsRelsIndices(t, s) {\n t.addFieldOffset(7, s, 0);\n }\n static createItemsRelsIndicesVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startItemsRelsIndicesVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addFragmentKeys(t, s) {\n t.addFieldOffset(8, s, 0);\n }\n static addId(t, s) {\n t.addFieldOffset(9, s, 0);\n }\n static addName(t, s) {\n t.addFieldOffset(10, s, 0);\n }\n static addIfcName(t, s) {\n t.addFieldOffset(11, s, 0);\n }\n static addIfcDescription(t, s) {\n t.addFieldOffset(12, s, 0);\n }\n static addIfcSchema(t, s) {\n t.addFieldOffset(13, s, 0);\n }\n static addMaxExpressId(t, s) {\n t.addFieldInt32(14, s, 0);\n }\n static addBoundingBox(t, s) {\n t.addFieldOffset(15, s, 0);\n }\n static createBoundingBoxVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startBoundingBoxVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addOpaqueGeometriesIds(t, s) {\n t.addFieldOffset(16, s, 0);\n }\n static createOpaqueGeometriesIdsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startOpaqueGeometriesIdsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addTransparentGeometriesIds(t, s) {\n t.addFieldOffset(17, s, 0);\n }\n static createTransparentGeometriesIdsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startTransparentGeometriesIdsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static endFragmentsGroup(t) {\n return t.endObject();\n }\n static finishFragmentsGroupBuffer(t, s) {\n t.finish(s);\n }\n static finishSizePrefixedFragmentsGroupBuffer(t, s) {\n t.finish(s, void 0, !0);\n }\n};\nclass sn {\n constructor() {\n S(this, \"version\", 1);\n S(this, \"fragmentIDSeparator\", \"|\");\n }\n /** {@link FragmentParser.import} */\n import(t) {\n const s = new Dt(t), e = Ks.getRootAsFragmentsGroup(s), i = this.constructFragmentGroup(e), n = e.itemsLength();\n for (let o = 0; o < n; o++) {\n const r = e.items(o);\n if (!r)\n continue;\n const c = this.constructGeometry(r), f = this.constructMaterials(r), l = r.capacity(), b = new Ue(c, f, l);\n b.capacityOffset = r.capacityOffset(), this.setInstances(r, b), this.setID(r, b), i.items.push(b), i.add(b.mesh);\n }\n return i;\n }\n /**\n * Exports the FragmentsGroup to a flatbuffer binary file.\n *\n * @param group - The FragmentsGroup to be exported.\n * @returns The flatbuffer binary file as a Uint8Array.\n */\n export(t) {\n const s = new rs(1024), e = [], i = Ks, n = te;\n let o = null;\n if (t.civilData) {\n const q = [], E = ze, z = Ee;\n for (const [ct, pt] of t.civilData.alignments) {\n const { absolute: Ut, horizontal: mt, vertical: Ft } = pt, Ct = this.saveCivilCurves(mt, s), Pt = this.saveCivilCurves(Ft, s), Mt = this.saveCivilCurves(Ut, s), St = E.createHorizontalVector(s, Ct), Bt = E.createVerticalVector(s, Pt), yt = E.createAbsoluteVector(s, Mt);\n E.startAlignment(s), E.addHorizontal(s, St), E.addVertical(s, Bt), E.addAbsolute(s, yt), E.addInitialPk(s, pt.initialKP);\n const Zt = E.endAlignment(s);\n q.push(Zt);\n }\n const U = z.createAlignmentsVector(s, q), j = z.createCoordinationMatrixVector(\n s,\n t.coordinationMatrix.elements\n );\n z.startCivilData(s), z.addAlignments(s, U), z.addCoordinationMatrix(s, j), o = z.endCivilData(s);\n }\n for (const q of t.items) {\n const E = q.exportData(), z = [];\n for (const Bt of q.ids) {\n const yt = q.getInstancesIDs(Bt);\n if (!yt)\n throw new Error(\"Instances not found!\");\n z.push(yt.size);\n }\n const U = n.createPositionVector(s, E.position), j = n.createNormalVector(s, E.normal), ct = n.createIndexVector(s, E.index), pt = n.createGroupsVector(s, E.groups), Ut = n.createMaterialsVector(s, E.materials), mt = n.createMatricesVector(s, E.matrices), Ft = n.createColorsVector(s, E.colors), Ct = n.createIdsVector(s, E.ids), Pt = n.createItemsSizeVector(s, z), Mt = s.createString(E.id);\n n.startFragment(s), n.addPosition(s, U), n.addNormal(s, j), n.addIndex(s, ct), n.addGroups(s, pt), n.addMaterials(s, Ut), n.addMatrices(s, mt), n.addColors(s, Ft), n.addIds(s, Ct), n.addItemsSize(s, Pt), n.addId(s, Mt), n.addCapacity(s, q.capacity), n.addCapacityOffset(s, q.capacityOffset);\n const St = te.endFragment(s);\n e.push(St);\n }\n const r = i.createItemsVector(s, e), c = i.createCoordinationMatrixVector(\n s,\n t.coordinationMatrix.elements\n );\n let f = \"\";\n for (const q of t.keyFragments.values())\n f.length && (f += this.fragmentIDSeparator), f += q;\n const l = s.createString(f), b = [], h = [], u = [], _ = [], w = [];\n let y = 0, d = 0;\n for (const [q, [E, z]] of t.data) {\n b.push(y), u.push(d), w.push(q);\n for (const U of E)\n h.push(U);\n for (const U of z)\n _.push(U);\n y += E.length, d += z.length;\n }\n const p = [], I = [];\n for (const [q, E] of t.geometryIDs.opaque)\n p.push(q, E);\n for (const [q, E] of t.geometryIDs.transparent)\n I.push(q, E);\n const m = s.createString(t.uuid), g = s.createString(t.name), A = s.createString(t.ifcMetadata.name), F = s.createString(t.ifcMetadata.description), x = s.createString(t.ifcMetadata.schema), C = i.createItemsKeysIndicesVector(s, b), v = i.createItemsKeysVector(s, h), M = i.createItemsRelsIndicesVector(s, u), V = i.createItemsRelsVector(s, _), P = i.createIdsVector(s, w), B = i.createOpaqueGeometriesIdsVector(s, p), O = i.createTransparentGeometriesIdsVector(\n s,\n I\n ), { min: D, max: $ } = t.boundingBox, X = [D.x, D.y, D.z, $.x, $.y, $.z], Y = i.createBoundingBoxVector(s, X);\n i.startFragmentsGroup(s), i.addId(s, m), i.addName(s, g), i.addIfcName(s, A), i.addIfcDescription(s, F), i.addIfcSchema(s, x), i.addMaxExpressId(s, t.ifcMetadata.maxExpressID), i.addItems(s, r), i.addFragmentKeys(s, l), i.addIds(s, P), i.addItemsKeysIndices(s, C), i.addItemsKeys(s, v), i.addItemsRelsIndices(s, M), i.addItemsRels(s, V), i.addCoordinationMatrix(s, c), i.addBoundingBox(s, Y), i.addOpaqueGeometriesIds(s, B), i.addTransparentGeometriesIds(s, O), o !== null && i.addCivil(s, o);\n const Bs = Ks.endFragmentsGroup(s);\n return s.finish(Bs), s.asUint8Array();\n }\n setID(t, s) {\n const e = t.id();\n e && (s.id = e, s.mesh.uuid = e);\n }\n setInstances(t, s) {\n const e = t.matricesArray(), i = t.colorsArray(), n = t.idsArray(), o = t.itemsSizeArray();\n if (!e || !n || !o)\n throw new Error(\"Error: Can't load empty fragment!\");\n const r = [];\n let c = 0;\n for (let f = 0; f < o.length; f++) {\n const l = n[f], b = o[f], h = [], u = [];\n for (let w = 0; w < b; w++) {\n const y = c * 16, d = e.subarray(y, y + 17), p = new L.Matrix4().fromArray(d);\n if (h.push(p), i) {\n const I = c * 3, [m, g, A] = i.subarray(I, I + 4), F = new L.Color(m, g, A);\n u.push(F);\n }\n c++;\n }\n const _ = u.length ? u : void 0;\n r.push({ id: l, transforms: h, colors: _ });\n }\n s.add(r);\n }\n constructMaterials(t) {\n const s = t.materialsArray(), e = [];\n if (!s)\n return e;\n for (let i = 0; i < s.length; i += 5) {\n const n = s[i], o = !!s[i + 1], r = s[i + 2], c = s[i + 3], f = s[i + 4], l = new L.Color(r, c, f), b = new L.MeshLambertMaterial({\n color: l,\n opacity: n,\n transparent: o\n });\n e.push(b);\n }\n return e;\n }\n constructFragmentGroup(t) {\n const s = new Re(), e = t.civil();\n if (e) {\n const x = e.coordinationMatrixArray(), C = new L.Matrix4();\n x && C.fromArray(x), s.civilData = { alignments: /* @__PURE__ */ new Map(), coordinationMatrix: C };\n const v = e.alignmentsLength();\n for (let M = 0; M < v; M++) {\n const V = new L.LineBasicMaterial({ color: 16777215 }), P = new Ne(), B = e.alignments(M);\n if (!B)\n throw new Error(\"Alignment not found!\");\n const O = B.horizontalLength();\n P.horizontal = this.constructCivilCurves(\n B,\n P,\n \"horizontal\",\n O,\n V\n );\n const D = B.verticalLength();\n P.vertical = this.constructCivilCurves(\n B,\n P,\n \"vertical\",\n D,\n V\n );\n const $ = B.horizontalLength();\n P.absolute = this.constructCivilCurves(\n B,\n P,\n \"absolute\",\n $,\n V\n ), P.initialKP = B.initialPk(), s.civilData.alignments.set(M, P);\n }\n }\n s.uuid = t.id() || s.uuid, s.name = t.name() || \"\", s.ifcMetadata = {\n name: t.ifcName() || \"\",\n description: t.ifcDescription() || \"\",\n schema: t.ifcSchema() || \"IFC2X3\",\n maxExpressID: t.maxExpressId() || 0\n };\n const i = new L.Matrix4().elements, n = t.coordinationMatrixArray() || i, o = t.idsArray() || new Uint32Array(), r = t.itemsKeysIndicesArray() || new Uint32Array(), c = t.itemsKeysArray() || new Uint32Array(), f = t.itemsRelsArray() || new Uint32Array(), l = t.itemsRelsIndicesArray() || new Uint32Array(), h = (t.fragmentKeys() || \"\").split(this.fragmentIDSeparator);\n this.setGroupData(s, o, r, c, 0), this.setGroupData(s, o, l, f, 1);\n const u = t.opaqueGeometriesIdsArray() || new Uint32Array(), _ = t.transparentGeometriesIdsArray() || new Uint32Array(), w = /* @__PURE__ */ new Map();\n for (let x = 0; x < u.length - 1; x += 2) {\n const C = u[x], v = u[x + 1];\n w.set(C, v);\n }\n const y = /* @__PURE__ */ new Map();\n for (let x = 0; x < _.length - 1; x += 2) {\n const C = _[x], v = _[x + 1];\n y.set(C, v);\n }\n s.geometryIDs = { opaque: w, transparent: y };\n const d = t.boundingBoxArray() || [0, 0, 0, 0, 0, 0], [p, I, m, g, A, F] = d;\n s.boundingBox.min.set(p, I, m), s.boundingBox.max.set(g, A, F);\n for (let x = 0; x < h.length; x++)\n s.keyFragments.set(x, h[x]);\n return n.length === 16 && s.coordinationMatrix.fromArray(n), s;\n }\n setGroupData(t, s, e, i, n) {\n for (let o = 0; o < e.length; o++) {\n const r = s[o], c = e[o], f = e[o + 1] || i.length, l = [];\n for (let h = c; h < f; h++)\n l.push(i[h]);\n t.data.has(r) || t.data.set(r, [[], []]);\n const b = t.data.get(r);\n b && (b[n] = l);\n }\n }\n constructGeometry(t) {\n const s = t.positionArray() || new Float32Array(), e = t.normalArray() || new Float32Array(), i = t.indexArray(), n = t.groupsArray();\n if (!i)\n throw new Error(\"Index not found!\");\n const o = new L.BufferGeometry();\n if (o.setIndex(Array.from(i)), o.setAttribute(\"position\", new L.BufferAttribute(s, 3)), o.setAttribute(\"normal\", new L.BufferAttribute(e, 3)), n)\n for (let r = 0; r < n.length; r += 3) {\n const c = n[r], f = n[r + 1], l = n[r + 2];\n o.addGroup(c, f, l);\n }\n return o;\n }\n constructCivilCurves(t, s, e, i, n) {\n const o = [];\n for (let r = 0; r < i; r++) {\n const c = t[e](r);\n if (!c)\n throw new Error(\"Curve not found!\");\n const f = c.pointsArray();\n if (f === null)\n throw new Error(\"Curve points not found!\");\n let l = {};\n const b = c.data();\n b && (l = JSON.parse(b));\n const h = new L.EdgesGeometry(), u = new L.BufferAttribute(f, 3);\n h.setAttribute(\"position\", u);\n const _ = [];\n for (let y = 0; y < f.length / 3 - 1; y++)\n _.push(y, y + 1);\n h.setIndex(_);\n const w = new ke(r, l, s, h, n);\n o.push(w.curve);\n }\n return o;\n }\n saveCivilCurves(t, s) {\n const e = Vs, i = [];\n for (const n of t) {\n const r = n.mesh.geometry.attributes.position.array, c = e.createPointsVector(s, r), f = s.createString(JSON.stringify(n.data));\n e.startCivilCurve(s), e.addPoints(s, c), e.addData(s, f);\n const l = e.endCivilCurve(s);\n i.push(l);\n }\n return i;\n }\n}\nlet Fs = class Lt {\n constructor() {\n S(this, \"bb\", null);\n S(this, \"bb_pos\", 0);\n }\n __init(t, s) {\n return this.bb_pos = t, this.bb = s, this;\n }\n static getRootAsCivilCurve(t, s) {\n return (s || new Lt()).__init(t.readInt32(t.position()) + t.position(), t);\n }\n static getSizePrefixedRootAsCivilCurve(t, s) {\n return t.setPosition(t.position() + W), (s || new Lt()).__init(t.readInt32(t.position()) + t.position(), t);\n }\n points(t) {\n const s = this.bb.__offset(this.bb_pos, 4);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n pointsLength() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n pointsArray() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n data(t) {\n const s = this.bb.__offset(this.bb_pos, 6);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n static startCivilCurve(t) {\n t.startObject(2);\n }\n static addPoints(t, s) {\n t.addFieldOffset(0, s, 0);\n }\n static createPointsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startPointsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addData(t, s) {\n t.addFieldOffset(1, s, 0);\n }\n static endCivilCurve(t) {\n return t.endObject();\n }\n static createCivilCurve(t, s, e) {\n return Lt.startCivilCurve(t), Lt.addPoints(t, s), Lt.addData(t, e), Lt.endCivilCurve(t);\n }\n}, Ge = class ht {\n constructor() {\n S(this, \"bb\", null);\n S(this, \"bb_pos\", 0);\n }\n __init(t, s) {\n return this.bb_pos = t, this.bb = s, this;\n }\n static getRootAsAlignment(t, s) {\n return (s || new ht()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n static getSizePrefixedRootAsAlignment(t, s) {\n return t.setPosition(t.position() + W), (s || new ht()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n vertical(t, s) {\n const e = this.bb.__offset(this.bb_pos, 4);\n return e ? (s || new Fs()).__init(\n this.bb.__indirect(\n this.bb.__vector(this.bb_pos + e) + t * 4\n ),\n this.bb\n ) : null;\n }\n verticalLength() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n horizontal(t, s) {\n const e = this.bb.__offset(this.bb_pos, 6);\n return e ? (s || new Fs()).__init(\n this.bb.__indirect(\n this.bb.__vector(this.bb_pos + e) + t * 4\n ),\n this.bb\n ) : null;\n }\n horizontalLength() {\n const t = this.bb.__offset(this.bb_pos, 6);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n absolute(t, s) {\n const e = this.bb.__offset(this.bb_pos, 8);\n return e ? (s || new Fs()).__init(\n this.bb.__indirect(\n this.bb.__vector(this.bb_pos + e) + t * 4\n ),\n this.bb\n ) : null;\n }\n absoluteLength() {\n const t = this.bb.__offset(this.bb_pos, 8);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n initialPk() {\n const t = this.bb.__offset(this.bb_pos, 10);\n return t ? this.bb.readFloat32(this.bb_pos + t) : 0;\n }\n static startAlignment(t) {\n t.startObject(4);\n }\n static addVertical(t, s) {\n t.addFieldOffset(0, s, 0);\n }\n static createVerticalVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addOffset(s[e]);\n return t.endVector();\n }\n static startVerticalVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addHorizontal(t, s) {\n t.addFieldOffset(1, s, 0);\n }\n static createHorizontalVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addOffset(s[e]);\n return t.endVector();\n }\n static startHorizontalVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addAbsolute(t, s) {\n t.addFieldOffset(2, s, 0);\n }\n static createAbsoluteVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addOffset(s[e]);\n return t.endVector();\n }\n static startAbsoluteVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addInitialPk(t, s) {\n t.addFieldFloat32(3, s, 0);\n }\n static endAlignment(t) {\n return t.endObject();\n }\n static createAlignment(t, s, e, i, n) {\n return ht.startAlignment(t), ht.addVertical(t, s), ht.addHorizontal(t, e), ht.addAbsolute(t, i), ht.addInitialPk(t, n), ht.endAlignment(t);\n }\n};\nclass bt {\n constructor() {\n S(this, \"bb\", null);\n S(this, \"bb_pos\", 0);\n }\n __init(t, s) {\n return this.bb_pos = t, this.bb = s, this;\n }\n static getRootAsCivilData(t, s) {\n return (s || new bt()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n static getSizePrefixedRootAsCivilData(t, s) {\n return t.setPosition(t.position() + W), (s || new bt()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n alignments(t, s) {\n const e = this.bb.__offset(this.bb_pos, 4);\n return e ? (s || new Ge()).__init(\n this.bb.__indirect(\n this.bb.__vector(this.bb_pos + e) + t * 4\n ),\n this.bb\n ) : null;\n }\n alignmentsLength() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n coordinationMatrix(t) {\n const s = this.bb.__offset(this.bb_pos, 6);\n return s ? this.bb.readFloat32(\n this.bb.__vector(this.bb_pos + s) + t * 4\n ) : 0;\n }\n coordinationMatrixLength() {\n const t = this.bb.__offset(this.bb_pos, 6);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n coordinationMatrixArray() {\n const t = this.bb.__offset(this.bb_pos, 6);\n return t ? new Float32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n static startCivilData(t) {\n t.startObject(2);\n }\n static addAlignments(t, s) {\n t.addFieldOffset(0, s, 0);\n }\n static createAlignmentsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addOffset(s[e]);\n return t.endVector();\n }\n static startAlignmentsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addCoordinationMatrix(t, s) {\n t.addFieldOffset(1, s, 0);\n }\n static createCoordinationMatrixVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startCoordinationMatrixVector(t, s) {\n t.startVector(4, s, 4);\n }\n static endCivilData(t) {\n return t.endObject();\n }\n static createCivilData(t, s, e) {\n return bt.startCivilData(t), bt.addAlignments(t, s), bt.addCoordinationMatrix(t, e), bt.endCivilData(t);\n }\n}\nclass N {\n constructor() {\n S(this, \"bb\", null);\n S(this, \"bb_pos\", 0);\n }\n __init(t, s) {\n return this.bb_pos = t, this.bb = s, this;\n }\n static getRootAsFragment(t, s) {\n return (s || new N()).__init(t.readInt32(t.position()) + t.position(), t);\n }\n static getSizePrefixedRootAsFragment(t, s) {\n return t.setPosition(t.position() + W), (s || new N()).__init(t.readInt32(t.position()) + t.position(), t);\n }\n position(t) {\n const s = this.bb.__offset(this.bb_pos, 4);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n positionLength() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n positionArray() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n normal(t) {\n const s = this.bb.__offset(this.bb_pos, 6);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n normalLength() {\n const t = this.bb.__offset(this.bb_pos, 6);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n normalArray() {\n const t = this.bb.__offset(this.bb_pos, 6);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n index(t) {\n const s = this.bb.__offset(this.bb_pos, 8);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n indexLength() {\n const t = this.bb.__offset(this.bb_pos, 8);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n indexArray() {\n const t = this.bb.__offset(this.bb_pos, 8);\n return t ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n groups(t) {\n const s = this.bb.__offset(this.bb_pos, 10);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n groupsLength() {\n const t = this.bb.__offset(this.bb_pos, 10);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n groupsArray() {\n const t = this.bb.__offset(this.bb_pos, 10);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n materials(t) {\n const s = this.bb.__offset(this.bb_pos, 12);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n materialsLength() {\n const t = this.bb.__offset(this.bb_pos, 12);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n materialsArray() {\n const t = this.bb.__offset(this.bb_pos, 12);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n matrices(t) {\n const s = this.bb.__offset(this.bb_pos, 14);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n matricesLength() {\n const t = this.bb.__offset(this.bb_pos, 14);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n matricesArray() {\n const t = this.bb.__offset(this.bb_pos, 14);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n colors(t) {\n const s = this.bb.__offset(this.bb_pos, 16);\n return s ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n colorsLength() {\n const t = this.bb.__offset(this.bb_pos, 16);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n colorsArray() {\n const t = this.bb.__offset(this.bb_pos, 16);\n return t ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n itemsSize(t) {\n const s = this.bb.__offset(this.bb_pos, 18);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n itemsSizeLength() {\n const t = this.bb.__offset(this.bb_pos, 18);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n itemsSizeArray() {\n const t = this.bb.__offset(this.bb_pos, 18);\n return t ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n ids(t) {\n const s = this.bb.__offset(this.bb_pos, 20);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n idsLength() {\n const t = this.bb.__offset(this.bb_pos, 20);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n idsArray() {\n const t = this.bb.__offset(this.bb_pos, 20);\n return t ? new Uint32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t), this.bb.__vector_len(this.bb_pos + t)) : null;\n }\n id(t) {\n const s = this.bb.__offset(this.bb_pos, 22);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n capacity() {\n const t = this.bb.__offset(this.bb_pos, 24);\n return t ? this.bb.readUint32(this.bb_pos + t) : 0;\n }\n capacityOffset() {\n const t = this.bb.__offset(this.bb_pos, 26);\n return t ? this.bb.readUint32(this.bb_pos + t) : 0;\n }\n static startFragment(t) {\n t.startObject(12);\n }\n static addPosition(t, s) {\n t.addFieldOffset(0, s, 0);\n }\n static createPositionVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startPositionVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addNormal(t, s) {\n t.addFieldOffset(1, s, 0);\n }\n static createNormalVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startNormalVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addIndex(t, s) {\n t.addFieldOffset(2, s, 0);\n }\n static createIndexVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startIndexVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addGroups(t, s) {\n t.addFieldOffset(3, s, 0);\n }\n static createGroupsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startGroupsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addMaterials(t, s) {\n t.addFieldOffset(4, s, 0);\n }\n static createMaterialsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startMaterialsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addMatrices(t, s) {\n t.addFieldOffset(5, s, 0);\n }\n static createMatricesVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startMatricesVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addColors(t, s) {\n t.addFieldOffset(6, s, 0);\n }\n static createColorsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startColorsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addItemsSize(t, s) {\n t.addFieldOffset(7, s, 0);\n }\n static createItemsSizeVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startItemsSizeVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addIds(t, s) {\n t.addFieldOffset(8, s, 0);\n }\n static createIdsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startIdsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addId(t, s) {\n t.addFieldOffset(9, s, 0);\n }\n static addCapacity(t, s) {\n t.addFieldInt32(10, s, 0);\n }\n static addCapacityOffset(t, s) {\n t.addFieldInt32(11, s, 0);\n }\n static endFragment(t) {\n return t.endObject();\n }\n static createFragment(t, s, e, i, n, o, r, c, f, l, b, h, u) {\n return N.startFragment(t), N.addPosition(t, s), N.addNormal(t, e), N.addIndex(t, i), N.addGroups(t, n), N.addMaterials(t, o), N.addMatrices(t, r), N.addColors(t, c), N.addItemsSize(t, f), N.addIds(t, l), N.addId(t, b), N.addCapacity(t, h), N.addCapacityOffset(t, u), N.endFragment(t);\n }\n}\nlet js = class ee {\n constructor() {\n S(this, \"bb\", null);\n S(this, \"bb_pos\", 0);\n }\n __init(t, s) {\n return this.bb_pos = t, this.bb = s, this;\n }\n static getRootAsFragmentsGroup(t, s) {\n return (s || new ee()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n static getSizePrefixedRootAsFragmentsGroup(t, s) {\n return t.setPosition(t.position() + W), (s || new ee()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n items(t, s) {\n const e = this.bb.__offset(this.bb_pos, 4);\n return e ? (s || new N()).__init(\n this.bb.__indirect(\n this.bb.__vector(this.bb_pos + e) + t * 4\n ),\n this.bb\n ) : null;\n }\n itemsLength() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n civil(t) {\n const s = this.bb.__offset(this.bb_pos, 6);\n return s ? (t || new bt()).__init(\n this.bb.__indirect(this.bb_pos + s),\n this.bb\n ) : null;\n }\n coordinationMatrix(t) {\n const s = this.bb.__offset(this.bb_pos, 8);\n return s ? this.bb.readFloat32(\n this.bb.__vector(this.bb_pos + s) + t * 4\n ) : 0;\n }\n coordinationMatrixLength() {\n const t = this.bb.__offset(this.bb_pos, 8);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n coordinationMatrixArray() {\n const t = this.bb.__offset(this.bb_pos, 8);\n return t ? new Float32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n ids(t) {\n const s = this.bb.__offset(this.bb_pos, 10);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n idsLength() {\n const t = this.bb.__offset(this.bb_pos, 10);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n idsArray() {\n const t = this.bb.__offset(this.bb_pos, 10);\n return t ? new Uint32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n itemsKeys(t) {\n const s = this.bb.__offset(this.bb_pos, 12);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n itemsKeysLength() {\n const t = this.bb.__offset(this.bb_pos, 12);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n itemsKeysArray() {\n const t = this.bb.__offset(this.bb_pos, 12);\n return t ? new Uint32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n itemsKeysIndices(t) {\n const s = this.bb.__offset(this.bb_pos, 14);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n itemsKeysIndicesLength() {\n const t = this.bb.__offset(this.bb_pos, 14);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n itemsKeysIndicesArray() {\n const t = this.bb.__offset(this.bb_pos, 14);\n return t ? new Uint32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n itemsRels(t) {\n const s = this.bb.__offset(this.bb_pos, 16);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n itemsRelsLength() {\n const t = this.bb.__offset(this.bb_pos, 16);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n itemsRelsArray() {\n const t = this.bb.__offset(this.bb_pos, 16);\n return t ? new Uint32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n itemsRelsIndices(t) {\n const s = this.bb.__offset(this.bb_pos, 18);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n itemsRelsIndicesLength() {\n const t = this.bb.__offset(this.bb_pos, 18);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n itemsRelsIndicesArray() {\n const t = this.bb.__offset(this.bb_pos, 18);\n return t ? new Uint32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n fragmentKeys(t) {\n const s = this.bb.__offset(this.bb_pos, 20);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n globalIds(t) {\n const s = this.bb.__offset(this.bb_pos, 22);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n id(t) {\n const s = this.bb.__offset(this.bb_pos, 24);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n name(t) {\n const s = this.bb.__offset(this.bb_pos, 26);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n ifcName(t) {\n const s = this.bb.__offset(this.bb_pos, 28);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n ifcDescription(t) {\n const s = this.bb.__offset(this.bb_pos, 30);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n ifcSchema(t) {\n const s = this.bb.__offset(this.bb_pos, 32);\n return s ? this.bb.__string(this.bb_pos + s, t) : null;\n }\n maxExpressId() {\n const t = this.bb.__offset(this.bb_pos, 34);\n return t ? this.bb.readUint32(this.bb_pos + t) : 0;\n }\n boundingBox(t) {\n const s = this.bb.__offset(this.bb_pos, 36);\n return s ? this.bb.readFloat32(\n this.bb.__vector(this.bb_pos + s) + t * 4\n ) : 0;\n }\n boundingBoxLength() {\n const t = this.bb.__offset(this.bb_pos, 36);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n boundingBoxArray() {\n const t = this.bb.__offset(this.bb_pos, 36);\n return t ? new Float32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n opaqueGeometriesIds(t) {\n const s = this.bb.__offset(this.bb_pos, 38);\n return s ? this.bb.readInt32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n opaqueGeometriesIdsLength() {\n const t = this.bb.__offset(this.bb_pos, 38);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n opaqueGeometriesIdsArray() {\n const t = this.bb.__offset(this.bb_pos, 38);\n return t ? new Int32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n transparentGeometriesIds(t) {\n const s = this.bb.__offset(this.bb_pos, 40);\n return s ? this.bb.readInt32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n transparentGeometriesIdsLength() {\n const t = this.bb.__offset(this.bb_pos, 40);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n transparentGeometriesIdsArray() {\n const t = this.bb.__offset(this.bb_pos, 40);\n return t ? new Int32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n static startFragmentsGroup(t) {\n t.startObject(19);\n }\n static addItems(t, s) {\n t.addFieldOffset(0, s, 0);\n }\n static createItemsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addOffset(s[e]);\n return t.endVector();\n }\n static startItemsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addCivil(t, s) {\n t.addFieldOffset(1, s, 0);\n }\n static addCoordinationMatrix(t, s) {\n t.addFieldOffset(2, s, 0);\n }\n static createCoordinationMatrixVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startCoordinationMatrixVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addIds(t, s) {\n t.addFieldOffset(3, s, 0);\n }\n static createIdsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startIdsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addItemsKeys(t, s) {\n t.addFieldOffset(4, s, 0);\n }\n static createItemsKeysVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startItemsKeysVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addItemsKeysIndices(t, s) {\n t.addFieldOffset(5, s, 0);\n }\n static createItemsKeysIndicesVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startItemsKeysIndicesVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addItemsRels(t, s) {\n t.addFieldOffset(6, s, 0);\n }\n static createItemsRelsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startItemsRelsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addItemsRelsIndices(t, s) {\n t.addFieldOffset(7, s, 0);\n }\n static createItemsRelsIndicesVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startItemsRelsIndicesVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addFragmentKeys(t, s) {\n t.addFieldOffset(8, s, 0);\n }\n static addGlobalIds(t, s) {\n t.addFieldOffset(9, s, 0);\n }\n static addId(t, s) {\n t.addFieldOffset(10, s, 0);\n }\n static addName(t, s) {\n t.addFieldOffset(11, s, 0);\n }\n static addIfcName(t, s) {\n t.addFieldOffset(12, s, 0);\n }\n static addIfcDescription(t, s) {\n t.addFieldOffset(13, s, 0);\n }\n static addIfcSchema(t, s) {\n t.addFieldOffset(14, s, 0);\n }\n static addMaxExpressId(t, s) {\n t.addFieldInt32(15, s, 0);\n }\n static addBoundingBox(t, s) {\n t.addFieldOffset(16, s, 0);\n }\n static createBoundingBoxVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startBoundingBoxVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addOpaqueGeometriesIds(t, s) {\n t.addFieldOffset(17, s, 0);\n }\n static createOpaqueGeometriesIdsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startOpaqueGeometriesIdsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addTransparentGeometriesIds(t, s) {\n t.addFieldOffset(18, s, 0);\n }\n static createTransparentGeometriesIdsVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startTransparentGeometriesIdsVector(t, s) {\n t.startVector(4, s, 4);\n }\n static endFragmentsGroup(t) {\n return t.endObject();\n }\n static finishFragmentsGroupBuffer(t, s) {\n t.finish(s);\n }\n static finishSizePrefixedFragmentsGroupBuffer(t, s) {\n t.finish(s, void 0, !0);\n }\n};\nclass en {\n constructor() {\n S(this, \"version\", 2);\n S(this, \"separator\", \"|\");\n }\n /** {@link FragmentParser.import} */\n import(t) {\n const s = new Dt(t), e = js.getRootAsFragmentsGroup(s), i = this.constructFragmentGroup(e), n = e.itemsLength();\n for (let o = 0; o < n; o++) {\n const r = e.items(o);\n if (!r)\n continue;\n const c = this.constructGeometry(r), f = this.constructMaterials(r), l = r.capacity(), b = new Ue(c, f, l);\n b.capacityOffset = r.capacityOffset(), this.setInstances(r, b), this.setID(r, b), i.items.push(b), i.add(b.mesh);\n }\n return i;\n }\n /**\n * Exports the FragmentsGroup to a flatbuffer binary file.\n *\n * @param group - The FragmentsGroup to be exported.\n * @returns The flatbuffer binary file as a Uint8Array.\n */\n export(t) {\n const s = new rs(1024), e = [], i = js, n = N;\n let o = null;\n if (t.civilData) {\n const z = [], U = Ge, j = bt;\n for (const [Ut, mt] of t.civilData.alignments) {\n const { absolute: Ft, horizontal: Ct, vertical: Pt } = mt, Mt = this.saveCivilCurves(Ct, s), St = this.saveCivilCurves(Pt, s), Bt = this.saveCivilCurves(Ft, s), yt = U.createHorizontalVector(s, Mt), Zt = U.createVerticalVector(s, St), cs = U.createAbsoluteVector(s, Bt);\n U.startAlignment(s), U.addHorizontal(s, yt), U.addVertical(s, Zt), U.addAbsolute(s, cs), U.addInitialPk(s, mt.initialKP);\n const qe = U.endAlignment(s);\n z.push(qe);\n }\n const ct = j.createAlignmentsVector(s, z), pt = j.createCoordinationMatrixVector(\n s,\n t.coordinationMatrix.elements\n );\n j.startCivilData(s), j.addAlignments(s, ct), j.addCoordinationMatrix(s, pt), o = j.endCivilData(s);\n }\n for (const z of t.items) {\n const U = z.exportData(), j = [];\n for (const Zt of z.ids) {\n const cs = z.getInstancesIDs(Zt);\n if (!cs)\n throw new Error(\"Instances not found!\");\n j.push(cs.size);\n }\n const ct = n.createPositionVector(s, U.position), pt = n.createNormalVector(s, U.normal), Ut = n.createIndexVector(s, U.index), mt = n.createGroupsVector(s, U.groups), Ft = n.createMaterialsVector(s, U.materials), Ct = n.createMatricesVector(s, U.matrices), Pt = n.createColorsVector(s, U.colors), Mt = n.createIdsVector(s, U.ids), St = n.createItemsSizeVector(s, j), Bt = s.createString(U.id);\n n.startFragment(s), n.addPosition(s, ct), n.addNormal(s, pt), n.addIndex(s, Ut), n.addGroups(s, mt), n.addMaterials(s, Ft), n.addMatrices(s, Ct), n.addColors(s, Pt), n.addIds(s, Mt), n.addItemsSize(s, St), n.addId(s, Bt), n.addCapacity(s, z.capacity), n.addCapacityOffset(s, z.capacityOffset);\n const yt = N.endFragment(s);\n e.push(yt);\n }\n const r = i.createItemsVector(s, e), c = i.createCoordinationMatrixVector(\n s,\n t.coordinationMatrix.elements\n );\n let f = \"\";\n for (const z of t.keyFragments.values())\n f.length && (f += this.separator), f += z;\n let l = \"\";\n for (const [z] of t.globalToExpressIDs)\n l.length && (l += this.separator), l += z;\n const b = s.createString(f), h = s.createString(l), u = [], _ = [], w = [], y = [], d = [];\n let p = 0, I = 0;\n for (const [z, [U, j]] of t.data) {\n u.push(p), w.push(I), d.push(z);\n for (const ct of U)\n _.push(ct);\n for (const ct of j)\n y.push(ct);\n p += U.length, I += j.length;\n }\n const m = [], g = [];\n for (const [z, U] of t.geometryIDs.opaque)\n m.push(z, U);\n for (const [z, U] of t.geometryIDs.transparent)\n g.push(z, U);\n const A = s.createString(t.uuid), F = s.createString(t.name), x = s.createString(t.ifcMetadata.name), C = s.createString(t.ifcMetadata.description), v = s.createString(t.ifcMetadata.schema), M = i.createItemsKeysIndicesVector(s, u), V = i.createItemsKeysVector(s, _), P = i.createItemsRelsIndicesVector(s, w), B = i.createItemsRelsVector(s, y), O = i.createIdsVector(s, d), D = i.createOpaqueGeometriesIdsVector(s, m), $ = i.createTransparentGeometriesIdsVector(\n s,\n g\n ), { min: X, max: Y } = t.boundingBox, Bs = [X.x, X.y, X.z, Y.x, Y.y, Y.z], q = i.createBoundingBoxVector(s, Bs);\n i.startFragmentsGroup(s), i.addId(s, A), i.addName(s, F), i.addIfcName(s, x), i.addIfcDescription(s, C), i.addIfcSchema(s, v), i.addMaxExpressId(s, t.ifcMetadata.maxExpressID), i.addItems(s, r), i.addFragmentKeys(s, b), i.addGlobalIds(s, h), i.addIds(s, O), i.addItemsKeysIndices(s, M), i.addItemsKeys(s, V), i.addItemsRelsIndices(s, P), i.addItemsRels(s, B), i.addCoordinationMatrix(s, c), i.addBoundingBox(s, q), i.addOpaqueGeometriesIds(s, D), i.addTransparentGeometriesIds(s, $), o !== null && i.addCivil(s, o);\n const E = js.endFragmentsGroup(s);\n return s.finish(E), s.asUint8Array();\n }\n setID(t, s) {\n const e = t.id();\n e && (s.id = e, s.mesh.uuid = e);\n }\n setInstances(t, s) {\n const e = t.matricesArray(), i = t.colorsArray(), n = t.idsArray(), o = t.itemsSizeArray();\n if (!e || !n || !o)\n throw new Error(\"Error: Can't load empty fragment!\");\n const r = [];\n let c = 0;\n for (let f = 0; f < o.length; f++) {\n const l = n[f], b = o[f], h = [], u = [];\n for (let w = 0; w < b; w++) {\n const y = c * 16, d = e.subarray(y, y + 17), p = new L.Matrix4().fromArray(d);\n if (h.push(p), i) {\n const I = c * 3, [m, g, A] = i.subarray(I, I + 4), F = new L.Color(m, g, A);\n u.push(F);\n }\n c++;\n }\n const _ = u.length ? u : void 0;\n r.push({ id: l, transforms: h, colors: _ });\n }\n s.add(r);\n }\n constructMaterials(t) {\n const s = t.materialsArray(), e = [];\n if (!s)\n return e;\n for (let i = 0; i < s.length; i += 5) {\n const n = s[i], o = !!s[i + 1], r = s[i + 2], c = s[i + 3], f = s[i + 4], l = new L.Color(r, c, f), b = new L.MeshLambertMaterial({\n color: l,\n opacity: n,\n transparent: o\n });\n e.push(b);\n }\n return e;\n }\n constructFragmentGroup(t) {\n const s = new Re(), e = t.civil();\n if (e) {\n const v = e.coordinationMatrixArray(), M = new L.Matrix4();\n v && M.fromArray(v), s.civilData = { alignments: /* @__PURE__ */ new Map(), coordinationMatrix: M };\n const V = e.alignmentsLength();\n for (let P = 0; P < V; P++) {\n const B = new L.LineBasicMaterial({ color: 16777215 }), O = new Ne(), D = e.alignments(P);\n if (!D)\n throw new Error(\"Alignment not found!\");\n const $ = D.horizontalLength();\n O.horizontal = this.constructCivilCurves(\n D,\n O,\n \"horizontal\",\n $,\n B\n );\n const X = D.verticalLength();\n O.vertical = this.constructCivilCurves(\n D,\n O,\n \"vertical\",\n X,\n B\n );\n const Y = D.horizontalLength();\n O.absolute = this.constructCivilCurves(\n D,\n O,\n \"absolute\",\n Y,\n B\n ), O.initialKP = D.initialPk(), s.civilData.alignments.set(P, O);\n }\n }\n s.uuid = t.id() || s.uuid, s.name = t.name() || \"\", s.ifcMetadata = {\n name: t.ifcName() || \"\",\n description: t.ifcDescription() || \"\",\n schema: t.ifcSchema() || \"IFC2X3\",\n maxExpressID: t.maxExpressId() || 0\n };\n const i = new L.Matrix4().elements, n = t.coordinationMatrixArray() || i, o = t.idsArray() || new Uint32Array(), r = t.itemsKeysIndicesArray() || new Uint32Array(), c = t.itemsKeysArray() || new Uint32Array(), f = t.itemsRelsArray() || new Uint32Array(), l = t.itemsRelsIndicesArray() || new Uint32Array(), h = (t.fragmentKeys() || \"\").split(this.separator), _ = (t.globalIds() || \"\").split(this.separator);\n this.setGroupData(s, o, r, c, 0), this.setGroupData(s, o, l, f, 1);\n const w = t.opaqueGeometriesIdsArray() || new Uint32Array(), y = t.transparentGeometriesIdsArray() || new Uint32Array(), d = /* @__PURE__ */ new Map();\n for (let v = 0; v < w.length - 1; v += 2) {\n const M = w[v], V = w[v + 1];\n d.set(M, V);\n }\n const p = /* @__PURE__ */ new Map();\n for (let v = 0; v < y.length - 1; v += 2) {\n const M = y[v], V = y[v + 1];\n p.set(M, V);\n }\n s.geometryIDs = { opaque: d, transparent: p };\n const I = t.boundingBoxArray() || [0, 0, 0, 0, 0, 0], [m, g, A, F, x, C] = I;\n s.boundingBox.min.set(m, g, A), s.boundingBox.max.set(F, x, C);\n for (let v = 0; v < h.length; v++)\n s.keyFragments.set(v, h[v]);\n n.length === 16 && s.coordinationMatrix.fromArray(n);\n for (let v = 0; v < o.length; v++)\n s.globalToExpressIDs.set(_[v], o[v]);\n return s;\n }\n setGroupData(t, s, e, i, n) {\n for (let o = 0; o < e.length; o++) {\n const r = s[o], c = e[o], f = e[o + 1] || i.length, l = [];\n for (let h = c; h < f; h++)\n l.push(i[h]);\n t.data.has(r) || t.data.set(r, [[], []]);\n const b = t.data.get(r);\n b && (b[n] = l);\n }\n }\n constructGeometry(t) {\n const s = t.positionArray() || new Float32Array(), e = t.normalArray() || new Float32Array(), i = t.indexArray(), n = t.groupsArray();\n if (!i)\n throw new Error(\"Index not found!\");\n const o = new L.BufferGeometry();\n if (o.setIndex(Array.from(i)), o.setAttribute(\"position\", new L.BufferAttribute(s, 3)), o.setAttribute(\"normal\", new L.BufferAttribute(e, 3)), n)\n for (let r = 0; r < n.length; r += 3) {\n const c = n[r], f = n[r + 1], l = n[r + 2];\n o.addGroup(c, f, l);\n }\n return o;\n }\n constructCivilCurves(t, s, e, i, n) {\n const o = [];\n for (let r = 0; r < i; r++) {\n const c = t[e](r);\n if (!c)\n throw new Error(\"Curve not found!\");\n const f = c.pointsArray();\n if (f === null)\n throw new Error(\"Curve points not found!\");\n let l = {};\n const b = c.data();\n b && (l = JSON.parse(b));\n const h = new L.EdgesGeometry(), u = new L.BufferAttribute(f, 3);\n h.setAttribute(\"position\", u);\n const _ = [];\n for (let y = 0; y < f.length / 3 - 1; y++)\n _.push(y, y + 1);\n h.setIndex(_);\n const w = new ke(r, l, s, h, n);\n o.push(w.curve);\n }\n return o;\n }\n saveCivilCurves(t, s) {\n const e = Fs, i = [];\n for (const n of t) {\n const r = n.mesh.geometry.attributes.position.array, c = e.createPointsVector(s, r), f = s.createString(JSON.stringify(n.data));\n e.startCivilCurve(s), e.addPoints(s, c), e.addData(s, f);\n const l = e.endCivilCurve(s);\n i.push(l);\n }\n return i;\n }\n}\nclass an {\n constructor() {\n // prettier-ignore\n S(this, \"parsers\", [\n new en(),\n new sn()\n ]);\n /** {@link FragmentParser.version} */\n S(this, \"version\", \"auto\");\n }\n /** {@link FragmentParser.import} */\n import(t) {\n const s = this.parsers.length;\n if (this.version === \"auto\") {\n for (let o = 0; o < this.parsers.length; o++) {\n const c = this.parsers[o].import(t);\n if (Object.keys(c).length !== 0) {\n if (o !== 0) {\n const f = this.parsers.length - o;\n this.warnVersion(f, s);\n }\n return c;\n }\n }\n throw new Error(\"No valid parser found for this file\");\n }\n this.checkCurrentVersionValid(this.version);\n const e = this.parsers.length - this.version, n = this.parsers[e].import(t);\n if (Object.keys(n).length === 0)\n throw new Error(\n `The given version ${this.version} doesn't match to the given file. Try using \"auto\" in the version property to handle versions automatically.`\n );\n return n;\n }\n /** {@link FragmentParser.export} */\n export(t) {\n if (this.version === \"auto\")\n return this.parsers[0].export(t);\n this.checkCurrentVersionValid(this.version);\n const s = this.parsers.length - this.version;\n return this.parsers[s].export(t);\n }\n checkCurrentVersionValid(t) {\n if (this.version === \"auto\")\n return;\n if (this.version !== t && this.warnVersion(this.version, t), !Number.isInteger(this.version))\n throw new Error(\n \"Invalid version. Non-automatic versions must an integer.\"\n );\n if (this.version < 1 || this.version > t)\n throw new Error(\n `Invalid version. Versions range from 1 to ${t}.`\n );\n }\n warnVersion(t, s) {\n console.warn(\n `This fragment file version is ${t}. The latest version is ${s}. To avoid issues, please consider updating your fragments. You can do so by regenerating your fragments from the original IFC file.`\n );\n }\n}\nclass Re extends L.Group {\n constructor() {\n super(...arguments);\n /**\n * An array of Fragment objects that are part of this group.\n */\n S(this, \"items\", []);\n /**\n * A THREE.Box3 object representing the bounding box of all fragments in this group.\n */\n S(this, \"boundingBox\", new L.Box3());\n /**\n * A THREE.Matrix4 object representing the coordination matrix of this group.\n */\n S(this, \"coordinationMatrix\", new L.Matrix4());\n /**\n * A Map object where the keys are uints and the values are strings representing fragment IDs.\n * This is used to save memory by mapping keys to fragment IDs.\n */\n S(this, \"keyFragments\", /* @__PURE__ */ new Map());\n /**\n * A Map object where the keys are global IDs and the values are expressIDs.\n */\n S(this, \"globalToExpressIDs\", /* @__PURE__ */ new Map());\n /**\n * A Map object where the keys are express IDs and the values are arrays of two arrays.\n * The first array contains fragment keys to which this asset belongs, and the second array contains floor and category IDs.\n */\n S(this, \"data\", /* @__PURE__ */ new Map());\n /**\n * An object with two Map properties, 'opaque' and 'transparent', representing the geometry IDs and keys of opaque and transparent fragments. They must be distinguished because THREE.js doesn't support transparency per instance in InstancedMesh.\n */\n S(this, \"geometryIDs\", {\n opaque: /* @__PURE__ */ new Map(),\n transparent: /* @__PURE__ */ new Map()\n });\n /**\n * An object representing metadata about the IFC model defined by the IFC schema.\n */\n S(this, \"ifcMetadata\", {\n name: \"\",\n description: \"\",\n schema: \"IFC2X3\",\n maxExpressID: 0\n });\n /**\n * An optional object containing civil engineering data.\n */\n S(this, \"civilData\");\n /**\n * An object containing settings for streaming data, including base URL, base file name, IDs, and types.\n */\n S(this, \"streamSettings\", {\n baseUrl: \"\",\n baseFileName: \"\",\n ids: /* @__PURE__ */ new Map(),\n types: /* @__PURE__ */ new Map()\n });\n /**\n * A protected property representing local properties of the fragments in this group.\n */\n S(this, \"_properties\");\n }\n /**\n * A getter that checks if this group has properties, either locally defined or streamed from a data source.\n */\n get hasProperties() {\n const s = this._properties !== void 0, e = this.streamSettings.ids.size !== 0;\n return s || e;\n }\n /**\n * A method to create a map of fragment IDs and express IDs contained within them. This is useful because if you want to get \"a chair\", it might be made of 4 different geometries, and thus the subsets of 4 different fragments. Using this method, you would get exactly the fragments of where that chair is.\n * @param expressIDs - An iterable of express IDs to create the map for.\n * @returns A map where the keys are fragment IDs and the values are sets of express IDs.\n */\n getFragmentMap(s) {\n const e = {};\n for (const i of s) {\n const n = this.data.get(i);\n if (n)\n for (const o of n[0]) {\n const r = this.keyFragments.get(o);\n r !== void 0 && (e[r] || (e[r] = /* @__PURE__ */ new Set()), e[r].add(i));\n }\n }\n return e;\n }\n /**\n * Method to retrieve the vertices of a specific item within the fragments.\n * This method finds the fragments that contain the specified item,\n * then retrieves the vertices of those fragments.\n *\n * @param itemID - The ID of the item for which to retrieve vertices. Usually, an IFC expressID.\n * @returns An array of THREE.Vector3 objects representing the vertices of the specified item.\n *\n * @example\n * ```typescript\n * const itemVertices = fragmentsGroup.getItemVertices(12345);\n * for (const vertex of itemVertices) {\n * console.log(`Vertex: ${vertex.x}, ${vertex.y}, ${vertex.z}`);\n * }\n * ```\n */\n getItemVertices(s) {\n const e = [], i = this.getFragmentMap([s]);\n for (const n in i) {\n const o = this.items.find(\n (c) => c.id === n\n );\n if (!o)\n continue;\n const r = o.getInstancesIDs(s);\n if (r)\n for (const c of r) {\n const f = new L.Matrix4();\n o.mesh.getMatrixAt(c, f);\n for (const l of o.uniqueVertices) {\n const b = l.clone().applyMatrix4(f);\n e.push(b);\n }\n }\n }\n return e;\n }\n /**\n * Method to dispose of the resources used by the FragmentsGroup.\n *\n * @param disposeResources - If true, also dispose of the resources used by the fragments (geometries and materials). Default is true.\n */\n dispose(s = !0) {\n for (const e of this.items)\n e.dispose(s);\n if (this.coordinationMatrix = new L.Matrix4(), this.keyFragments.clear(), this.data.clear(), this._properties = {}, this.removeFromParent(), this.items = [], this.civilData) {\n const { alignments: e } = this.civilData;\n for (const [i, n] of e)\n this.disposeAlignment(n.vertical), this.disposeAlignment(n.horizontal), this.disposeAlignment(n.absolute);\n }\n this.civilData = void 0;\n }\n /**\n * Method to set local properties of the fragments in this group.\n *\n * @param properties - An object containing properties of type IfcProperties.\n * The keys of the object are express IDs as strings, and the values are objects representing the properties of the corresponding express ID.\n *\n * @example\n * ```typescript\n * const properties: IfcProperties = {\n * \"12345\": {\n * name: \"Chair\",\n * type: 1001,\n * color: [0.5, 0.5, 0.5],\n * //... other properties\n * },\n * \"67890\": {\n * name: \"Table\",\n * type: 1002,\n * color: [0.8, 0.8, 0.8],\n * //... other properties\n * },\n * //... more properties\n * };\n *\n * fragmentsGroup.setLocalProperties(properties);\n * ```\n */\n setLocalProperties(s) {\n this._properties = s;\n }\n /**\n * Method to retrieve the local properties of the fragments in this group.\n *\n * @returns {IfcProperties | undefined} - An object containing properties of type IfcProperties.\n * The keys of the object are express IDs as strings, and the values are objects representing the properties of the corresponding express ID.\n * If no local properties are set, it returns `undefined`.\n *\n * @example\n * ```typescript\n * const properties = fragmentsGroup.getLocalProperties();\n * if (properties) {\n * for (const id in properties) {\n * const property = properties[id];\n * console.log(`ID: ${id}, Name: ${property.name}, Type: ${property.type}`);\n * }\n * }\n * ```\n */\n getLocalProperties() {\n return this._properties;\n }\n /**\n * Method to retrieve all property IDs from either local properties or streamed properties.\n *\n * @returns {number[]} - An array of property IDs.\n *\n * @example\n * ```typescript\n * const propertyIDs = fragmentsGroup.getAllPropertiesIDs();\n * console.log(propertyIDs); // Output: [12345, 67890,...]\n * ```\n */\n getAllPropertiesIDs() {\n return this._properties ? Object.keys(this._properties).map((s) => parseInt(s, 10)) : Array.from(this.streamSettings.ids.keys());\n }\n /**\n * Method to retrieve all property types from either local properties or streamed properties.\n *\n * @returns {number[]} - An array of unique property types.\n *\n * @example\n * ```typescript\n * const propertyTypes = fragmentsGroup.getAllPropertiesTypes();\n * console.log(propertyTypes); // Output: [1001, 1002,...]\n * ```\n */\n getAllPropertiesTypes() {\n if (this._properties) {\n const s = /* @__PURE__ */ new Set();\n for (const e in this._properties) {\n const i = this._properties[e];\n i.type !== void 0 && s.add(i.type);\n }\n return Array.from(s);\n }\n return Array.from(this.streamSettings.types.keys());\n }\n async getProperties(s) {\n if (this._properties)\n return this._properties[s] || null;\n const e = this.getPropsURL(s), i = await this.getPropertiesData(e);\n return i ? i[s] : null;\n }\n /**\n * Method to set properties of a specific fragment in this group.\n *\n * @param id - The ID of the fragment for which to set properties.\n * @param value - The new properties to set for the fragment. If null, it deletes the properties for the fragment.\n * @throws Will throw an error if writing streamed properties, as it is not supported yet.\n *\n * @example\n * ```typescript\n * const properties: IfcProperties = {\n * \"12345\": {\n * name: \"Chair\",\n * type: 1001,\n * color: [0.5, 0.5, 0.5],\n * //... other properties\n * },\n * };\n *\n * fragmentsGroup.setProperties(12345, properties[12345]);\n * ```\n */\n async setProperties(s, e) {\n if (this._properties) {\n e !== null ? this._properties[s] = e : delete this._properties[s];\n return;\n }\n throw new Error(\"Writing streamed properties not supported yet!\");\n }\n /**\n * Method to retrieve all properties of a specific type from either local properties or streamed properties.\n *\n * @param type - The type of properties to retrieve.\n * @returns A Promise that resolves to an object containing properties of type IfcProperties, or null if no properties of the specified type are found.\n *\n * @example\n * ```typescript\n * const type = 1001; // Example type\n * fragmentsGroup.getAllPropertiesOfType(type).then((properties) => {\n * if (properties) {\n * for (const id in properties) {\n * const property = properties[id];\n * console.log(`ID: ${id}, Name: ${property.name}, Type: ${property.type}`);\n * }\n * } else {\n * console.log(`No properties of type ${type} found.`);\n * }\n * });\n * ```\n */\n async getAllPropertiesOfType(s) {\n if (this._properties) {\n const o = {};\n let r = !1;\n for (const c in this._properties) {\n const f = this._properties[c];\n f.type === s && (o[f.expressID] = f, r = !0);\n }\n return r ? o : null;\n }\n const { types: e } = this.streamSettings, i = e.get(s);\n if (i === void 0)\n return null;\n const n = {};\n for (const o of i) {\n const r = this.constructFileName(o), c = this.constructURL(r), f = await this.getPropertiesData(c);\n for (const l in f)\n n[parseInt(l, 10)] = f[l];\n }\n return n;\n }\n getPropsURL(s) {\n const { ids: e } = this.streamSettings, i = e.get(s);\n if (i === void 0)\n throw new Error(\"ID not found\");\n const n = this.constructFileName(i);\n return this.constructURL(n);\n }\n async getPropertiesData(s) {\n return (await fetch(s)).json();\n }\n constructFileName(s) {\n const { baseFileName: e } = this.streamSettings;\n return `${e}-${s}`;\n }\n constructURL(s) {\n const { baseUrl: e } = this.streamSettings;\n return `${e}${s}`;\n }\n disposeAlignment(s) {\n for (const e of s)\n if (e.mesh.geometry.dispose(), Array.isArray(e.mesh.material))\n for (const i of e.mesh.material)\n i.dispose();\n else\n e.mesh.material.dispose();\n s.length = 0;\n }\n}\nclass Ne {\n constructor() {\n /**\n * Vertical civil curves in the alignment.\n */\n S(this, \"vertical\", []);\n /**\n * Horizontal civil curves in the alignment.\n */\n S(this, \"horizontal\", []);\n /**\n * Absolute civil curves in the alignment.\n */\n S(this, \"absolute\", []);\n /**\n * Initial KP (Kilometer Point) of the alignment.\n */\n S(this, \"initialKP\", 0);\n }\n /**\n * Returns the total length of the specified alignment type.\n * @param type - The type of alignment (vertical, horizontal, or absolute).\n * @returns The total length of the specified alignment type.\n */\n getLength(t) {\n let s = 0;\n for (const e of this[t])\n s += e.getLength();\n return s;\n }\n /**\n * Returns the point at the specified percentage along the specified alignment type.\n * @param percentage - The percentage along the alignment type (between zero and one).\n * @param type - The type of alignment (vertical, horizontal, or absolute).\n * @returns The point at the specified percentage along the specified alignment type.\n * @throws Will throw an error if the percentage is out of range or if the point cannot be computed.\n */\n getPointAt(t, s) {\n const e = this.getCurveAt(t, s);\n return e.curve.getPointAt(e.percentage);\n }\n // Returns the percentage or null if the point is not contained in this alignment\n getPercentageAt(t, s, e = 0.01) {\n const i = this[s];\n let n = 0;\n for (const o of i) {\n const r = o.getPercentageAt(t, e), c = o.getLength();\n if (r !== null) {\n const f = n + r * c, l = this.getLength(s);\n return f / l;\n }\n n += c;\n }\n return null;\n }\n /**\n * Returns the curve and the percentage at the specified percentage along the specified alignment type.\n * If the percentage is out of range, it will be clamped to the nearest valid value (0 or 1).\n * If the point cannot be computed, an error will be thrown.\n *\n * @param percentage - The percentage along the alignment type (between zero and one).\n * @param type - The type of alignment (vertical, horizontal, or absolute).\n * @returns An object containing the curve and the percentage along the curve.\n * @throws Will throw an error if the percentage is out of range or if the point cannot be computed.\n */\n getCurveAt(t, s) {\n t < 0 ? t = 0 : t > 1 && (t = 1);\n const e = this[s], n = this.getLength(s) * t;\n let o = 0;\n for (const r of e) {\n const c = r.getLength();\n if (o + c >= n) {\n const l = (n - o) / c;\n return { curve: r, percentage: l };\n }\n o += c;\n }\n throw new Error(\"Could not compute point!\");\n }\n}\nclass nn {\n /**\n * Constructs a new instance of CivilCurve.\n * @param index - The index of the curve.\n * @param mesh - The mesh associated with the curve.\n * @param data - Additional data associated with the curve.\n * @param alignment - The alignment of the curve.\n */\n constructor(t, s, e, i) {\n /**\n * The index of the curve. An alignment is a sequence of ordered curves, and this is the index of this curve in that sequence.\n */\n S(this, \"index\");\n /**\n * The THREE.js mesh containing the vertices of the curve.\n */\n S(this, \"mesh\");\n /**\n * Additional data associated with the curve.\n */\n S(this, \"data\");\n /**\n * The alignment to which this curve belongs.\n */\n S(this, \"alignment\");\n this.index = t, this.mesh = s, this.data = e, this.alignment = i;\n }\n get _index() {\n return this.mesh.geometry.index;\n }\n get _pos() {\n return this.mesh.geometry.attributes.position.array;\n }\n /**\n * Calculates the total length of the curve by summing up the lengths of all segments.\n * @returns The total length of the curve.\n */\n getLength() {\n let t = 0;\n for (let s = 0; s < this._index.array.length - 1; s += 2) {\n const { startPoint: e, endPoint: i } = this.getSegment(s);\n t += e.distanceTo(i);\n }\n return t;\n }\n /**\n * Calculates a point on the curve based on the given percentage.\n *\n * @param percentage - The percentage along the curve (between zero and one).\n * @returns A new THREE.Vector3 representing the point on the curve.\n *\n * @remarks\n * The method works by first finding the segment that corresponds to the given percentage.\n * It then normalizes the direction of the segment, multiplies it by the distance to the start of the segment,\n * and adds it to the start point of the segment.\n *\n * @throws Will throw an error if the percentage is outside the range [0, 1].\n */\n getPointAt(t) {\n const { startPoint: s, endPoint: e, distanceToStart: i } = this.getSegmentAt(t), n = e.clone();\n return n.sub(s), n.normalize(), n.multiplyScalar(i), n.add(s), n;\n }\n /**\n * Calculates a segment of the curve based on the given percentage.\n *\n * @param percentage - The percentage along the curve (between zero and one).\n * @returns An object containing the distance to the start of the segment, the index of the segment, and the start and end points of the segment.\n *\n * @remarks\n * The method works by first finding the segment that corresponds to the given percentage.\n * It then returns an object containing the distance to the start of the segment, the index of the segment, and the start and end points of the segment.\n *\n * @throws Will throw an error if the percentage is outside the range [0, 1].\n */\n getSegmentAt(t) {\n t < 0 ? t = 0 : t > 1 && (t = 1);\n const e = this.getLength() * t;\n let i = 0;\n for (let n = 0; n < this._index.array.length - 1; n += 2) {\n const { startPoint: o, endPoint: r } = this.getSegment(n), c = o.distanceTo(r);\n if (i + c >= e)\n return { distanceToStart: e - i, index: n, startPoint: o, endPoint: r };\n i += c;\n }\n throw new Error(\"Could not compute point\");\n }\n /**\n * Calculates the percentage of the curve that corresponds to the given point.\n *\n * @param point - The point for which to calculate the percentage.\n * @param tolerance - The tolerance for determining if a point is on the curve. Default is 0.01.\n * @returns The percentage of the curve that corresponds to the given point, or null if the point is not contained in this curve.\n *\n * @remarks\n * The method works by iterating over each segment of the curve and checking if the given point is within the tolerance of the segment.\n * If a point is found, it calculates the percentage of the curve that corresponds to the point.\n * If no point is found, it returns null.\n */\n getPercentageAt(t, s = 0.01) {\n let e = 0;\n for (let i = 0; i < this._index.array.length - 1; i += 2) {\n const { startPoint: n, endPoint: o } = this.getSegment(i), r = n.distanceTo(o), c = t.distanceTo(n), f = t.distanceTo(o);\n if (c + f - r <= s) {\n const h = e + c, u = this.getLength();\n return h / u;\n }\n e += r;\n }\n return null;\n }\n /**\n * Retrieves a segment of the curve based on the given index.\n *\n * @param index - The index of the segment.\n * @returns An object containing the start and end points of the segment.\n *\n * @remarks\n * The method calculates the start and end points of the segment based on the given index.\n * It uses the index array and position attribute of the curve's geometry to determine the start and end points.\n *\n * @throws Will throw an error if the index is out of range.\n */\n getSegment(t) {\n const s = this._index.array[t] * 3, e = this._index.array[t + 1] * 3, i = new L.Vector3(\n this._pos[s],\n this._pos[s + 1],\n this._pos[s + 2]\n ), n = new L.Vector3(\n this._pos[e],\n this._pos[e + 1],\n this._pos[e + 2]\n );\n return { startPoint: i, endPoint: n };\n }\n}\nclass ke extends L.LineSegments {\n /**\n * Constructs a new instance of CurveMesh.\n *\n * @param index - The index of the curve mesh.\n * @param data - The data associated with the curve mesh.\n * @param alignment - The alignment of the curve mesh.\n * @param geometry - The geometry for the curve mesh. Optional.\n * @param material - The material(s) for the curve mesh. Optional.\n */\n constructor(s, e, i, n, o) {\n super(n, o);\n /**\n * The civil curve associated with this curve mesh.\n */\n S(this, \"curve\");\n this.curve = new nn(s, this, e, i);\n }\n}\nclass nt {\n constructor() {\n S(this, \"bb\", null);\n S(this, \"bb_pos\", 0);\n }\n __init(t, s) {\n return this.bb_pos = t, this.bb = s, this;\n }\n static getRootAsStreamedGeometry(t, s) {\n return (s || new nt()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n static getSizePrefixedRootAsStreamedGeometry(t, s) {\n return t.setPosition(t.position() + W), (s || new nt()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n geometryId() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? this.bb.readUint32(this.bb_pos + t) : 0;\n }\n position(t) {\n const s = this.bb.__offset(this.bb_pos, 6);\n return s ? this.bb.readFloat32(\n this.bb.__vector(this.bb_pos + s) + t * 4\n ) : 0;\n }\n positionLength() {\n const t = this.bb.__offset(this.bb_pos, 6);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n positionArray() {\n const t = this.bb.__offset(this.bb_pos, 6);\n return t ? new Float32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n normal(t) {\n const s = this.bb.__offset(this.bb_pos, 8);\n return s ? this.bb.readFloat32(\n this.bb.__vector(this.bb_pos + s) + t * 4\n ) : 0;\n }\n normalLength() {\n const t = this.bb.__offset(this.bb_pos, 8);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n normalArray() {\n const t = this.bb.__offset(this.bb_pos, 8);\n return t ? new Float32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n index(t) {\n const s = this.bb.__offset(this.bb_pos, 10);\n return s ? this.bb.readUint32(this.bb.__vector(this.bb_pos + s) + t * 4) : 0;\n }\n indexLength() {\n const t = this.bb.__offset(this.bb_pos, 10);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n indexArray() {\n const t = this.bb.__offset(this.bb_pos, 10);\n return t ? new Uint32Array(\n this.bb.bytes().buffer,\n this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + t),\n this.bb.__vector_len(this.bb_pos + t)\n ) : null;\n }\n static startStreamedGeometry(t) {\n t.startObject(4);\n }\n static addGeometryId(t, s) {\n t.addFieldInt32(0, s, 0);\n }\n static addPosition(t, s) {\n t.addFieldOffset(1, s, 0);\n }\n static createPositionVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startPositionVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addNormal(t, s) {\n t.addFieldOffset(2, s, 0);\n }\n static createNormalVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addFloat32(s[e]);\n return t.endVector();\n }\n static startNormalVector(t, s) {\n t.startVector(4, s, 4);\n }\n static addIndex(t, s) {\n t.addFieldOffset(3, s, 0);\n }\n static createIndexVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addInt32(s[e]);\n return t.endVector();\n }\n static startIndexVector(t, s) {\n t.startVector(4, s, 4);\n }\n static endStreamedGeometry(t) {\n return t.endObject();\n }\n static createStreamedGeometry(t, s, e, i, n) {\n return nt.startStreamedGeometry(t), nt.addGeometryId(t, s), nt.addPosition(t, e), nt.addNormal(t, i), nt.addIndex(t, n), nt.endStreamedGeometry(t);\n }\n}\nclass xt {\n constructor() {\n S(this, \"bb\", null);\n S(this, \"bb_pos\", 0);\n }\n __init(t, s) {\n return this.bb_pos = t, this.bb = s, this;\n }\n static getRootAsStreamedGeometries(t, s) {\n return (s || new xt()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n static getSizePrefixedRootAsStreamedGeometries(t, s) {\n return t.setPosition(t.position() + W), (s || new xt()).__init(\n t.readInt32(t.position()) + t.position(),\n t\n );\n }\n geometries(t, s) {\n const e = this.bb.__offset(this.bb_pos, 4);\n return e ? (s || new nt()).__init(\n this.bb.__indirect(\n this.bb.__vector(this.bb_pos + e) + t * 4\n ),\n this.bb\n ) : null;\n }\n geometriesLength() {\n const t = this.bb.__offset(this.bb_pos, 4);\n return t ? this.bb.__vector_len(this.bb_pos + t) : 0;\n }\n static startStreamedGeometries(t) {\n t.startObject(1);\n }\n static addGeometries(t, s) {\n t.addFieldOffset(0, s, 0);\n }\n static createGeometriesVector(t, s) {\n t.startVector(4, s.length, 4);\n for (let e = s.length - 1; e >= 0; e--)\n t.addOffset(s[e]);\n return t.endVector();\n }\n static startGeometriesVector(t, s) {\n t.startVector(4, s, 4);\n }\n static endStreamedGeometries(t) {\n return t.endObject();\n }\n static finishStreamedGeometriesBuffer(t, s) {\n t.finish(s);\n }\n static finishSizePrefixedStreamedGeometriesBuffer(t, s) {\n t.finish(s, void 0, !0);\n }\n static createStreamedGeometries(t, s) {\n return xt.startStreamedGeometries(t), xt.addGeometries(t, s), xt.endStreamedGeometries(t);\n }\n}\nclass fn {\n /**\n * Imports geometry data from a byte array in a streamed format.\n *\n * @param bytes - The byte array containing the serialized geometry data.\n * @returns A Map of geometry IDs to their respective position, normal, and index arrays.\n * @throws Will throw an error if the geometry ID is not found.\n */\n import(t) {\n const s = new Dt(t), e = xt.getRootAsStreamedGeometries(s), i = /* @__PURE__ */ new Map(), n = e.geometriesLength();\n for (let o = 0; o < n; o++) {\n const r = e.geometries(o);\n if (!r)\n continue;\n const c = r.geometryId();\n if (c === null)\n throw new Error(\"Error finding ID!\");\n const f = r.positionArray(), l = r.normalArray(), b = r.indexArray();\n !f || !l || !b || i.set(c, { position: f, normal: l, index: b });\n }\n return i;\n }\n /**\n * Exports geometry data to a byte array in a streamed format.\n *\n * @param geometries - A Map of geometry IDs to their respective position, normal, and index arrays.\n * @returns A Uint8Array containing the serialized geometry data.\n */\n export(t) {\n const s = new rs(1024), e = [], i = xt, n = nt;\n for (const [c, { index: f, position: l, normal: b }] of t) {\n const h = n.createIndexVector(s, f), u = n.createPositionVector(s, l), _ = n.createNormalVector(s, b);\n n.startStreamedGeometry(s), n.addGeometryId(s, c), n.addIndex(s, h), n.addPosition(s, u), n.addNormal(s, _);\n const w = n.endStreamedGeometry(s);\n e.push(w);\n }\n const o = i.createGeometriesVector(s, e);\n i.startStreamedGeometries(s), i.addGeometries(s, o);\n const r = i.endStreamedGeometries(s);\n return s.finish(r), s.asUint8Array();\n }\n}\nexport {\n Ne as Alignment,\n nn as CivilCurve,\n ke as CurveMesh,\n Ue as Fragment,\n ae as FragmentMesh,\n Re as FragmentsGroup,\n an as Serializer,\n fn as StreamSerializer\n};\n"],"names":["Ke","Object","defineProperty","S","a","t","s","enumerable","configurable","writable","value","je","ae","constructor","e","i","n","super","this","Array","isArray","material","index","Error","geometry","fragment","o","count","groups","length","push","start","materialIndex","exportData","attributes","position","array","normal","from","f","l","b","h","opacity","transparent","color","toArray","r","instanceMatrix","c","instanceColor","materials","matrices","colors","Te","Ze","Je","fe","Ts","le","Ms","We","Math","pow","Os","Symbol","Yt","Qe","Oe","drawRange","max","min","offset","floor","Le","Set","add","values","sort","R","x","y","z","he","be","set","ue","as","Jt","Ls","u","_","w","d","p","I","m","g","A","F","C","v","M","V","P","B","O","ft","ri","candidate","gt","fill","map","bounds","Float32Array","rightCacheBounds","leftCacheBounds","fs","ls","fi","pos","axis","li","ui","indirect","_indirectBuffer","SharedArrayBuffer","ArrayBuffer","Uint32Array","Uint16Array","hi","useSharedArrayBuffer","forEach","ei","verbose","console","warn","ti","setIndex","si","maxDepth","maxLeafTris","strategy","onProgress","ii","normalized","isInterleavedBufferAttribute","data","stride","abs","oi","boundingData","ni","ai","splice","ci","splitAxis","left","D","right","bi","_roots","_t","setFromPointsField","setFromPoints","dot","isSeparated","prototype","setFromBox","di","subVectors","end","ie","at","closestPointToPoint","distanceToSquared","copy","_i","radius","center","distanceTo","getPlane","distanceToPoint","projectPoint","containsPoint","Ds","ot","isExtendedTriangle","satAxes","satBounds","points","sphere","plane","needsUpdate","intersectsSphere","update","getNormal","setFromNormalAndCoplanarPoint","closestPointToSegment","sqrt","intersectsTriangle","delta","intersectLine","crossVectors","distanceToTriangle","getCenter","H","isOrientedBox","matrix","invMatrix","alignedSatBounds","applyMatrix4","invert","intersectsBox","clamp","distanceToBox","ne","_getNewPrimitive","_primitives","getPrimitive","pop","releasePrimitive","mi","Q","Z","J","tt","st","et","De","G","float32Array","uint16Array","uint32Array","setBuffer","clearBuffer","At","Ht","zt","hs","gi","$s","Wt","Us","Et","Gt","Rt","bs","us","ds","de","_e","pe","_s","Ss","getX","uv","uv1","fromBufferAttribute","intersectTriangle","distance","origin","point","clone","wi","getInterpolation","direction","multiplyScalar","face","faceIndex","xi","k","getY","getZ","Vi","Fi","byteLength","has","$","X","Y","me","Vt","intersectBox","Mi","resolveTriangleIndex","ye","Si","Hs","Ai","ge","Bi","Ti","Xs","vi","ps","Nt","kt","Qt","Ie","ms","Oi","Ys","boundingBox","computeBoundingBox","boundsTree","shapecast","intersectsBounds","ys","zs","ts","Li","Di","Ui","zi","Ei","boundsTraverseOrder","intersectsRange","sub","Gi","we","Ri","Zs","Ci","xe","Ni","ki","Js","Pi","gs","qt","Kt","ss","Ae","Is","qi","Ws","ws","Es","es","Ki","ji","$i","Hi","Xi","ns","Cs","It","jt","$t","Gs","Rs","Ns","it","xs","ve","oe","serialize","cloneBuffers","getIndex","roots","slice","indirectBuffer","deserialize","isBufferGeometry","assign","setBoundingBox","getBoundingBox","refit","traverse","vs","raycast","isMaterial","side","raycastFirst","intersectsGeometry","bvhcast","intersectsRanges","intersectsTriangles","Zi","closestPointToGeometry","Ii","makeEmpty","union","Ve","matrixWorld","ray","object","near","far","ks","Fe","Ji","Wi","firstHitOnly","call","Qi","tn","os","apply","initialized","computeBoundsTree","disposeBoundsTree","dispose","Ps","Ue","Map","mesh","id","uuid","capacity","uniqueVertices","getAttribute","clear","group","_originalColors","removeFromParent","userData","get","getInstancesIDs","getMatrixAt","getColorAt","transforms","getItemID","instanceToItem","itemToInstances","capacityOffset","parent","setMatrixAt","setColorAt","ids","remove","putLast","delete","hiddenItems","setVisibility","_settingVisibility","setColor","resetColor","applyTransform","premultiply","wt","Int32Array","Ce","buffer","Pe","Float64Array","As","Uint8Array","Qs","UTF8_BYTES","UTF16_STRING","Dt","bytes_","position_","text_decoder_","TextDecoder","allocate","bytes","setPosition","readInt8","readUint8","readInt16","readUint16","readInt32","readUint32","readInt64","BigInt","asIntN","readUint64","asUintN","readFloat32","readFloat64","writeInt8","writeUint8","writeInt16","writeUint16","writeInt32","writeUint32","writeInt64","Number","writeUint64","writeFloat32","writeFloat64","getBufferIdentifier","String","fromCharCode","__offset","__union","bb_pos","bb","__string","subarray","decode","__union_with_string","__indirect","__vector","__vector_len","__has_identifier","charCodeAt","createScalarList","createObjList","unpack","rs","minalign","vtable","vtable_in_use","isNested","object_start","vtables","vector_num_elems","force_defaults","string_maps","text_encoder","TextEncoder","space","forceDefaults","dataBuffer","asUint8Array","prep","growByteBuffer","pad","addInt8","addInt16","addInt32","addInt64","addFloat32","addFloat64","addFieldInt8","slot","addFieldInt16","addFieldInt32","addFieldInt64","addFieldFloat32","addFieldFloat64","addFieldOffset","addOffset","addFieldStruct","nested","notNested","startObject","endObject","finish","ut","finishSizePrefixed","requiredField","startVector","endVector","createSharedString","createString","encode","createObjectOffset","pack","createObjectOffsetList","createStructOffsetList","reverse","Vs","Tt","__init","getRootAsCivilCurve","getSizePrefixedRootAsCivilCurve","pointsLength","pointsArray","byteOffset","startCivilCurve","addPoints","createPointsVector","startPointsVector","addData","endCivilCurve","createCivilCurve","ze","lt","getRootAsAlignment","getSizePrefixedRootAsAlignment","vertical","verticalLength","horizontal","horizontalLength","absolute","absoluteLength","initialPk","startAlignment","addVertical","createVerticalVector","startVerticalVector","addHorizontal","createHorizontalVector","startHorizontalVector","addAbsolute","createAbsoluteVector","startAbsoluteVector","addInitialPk","endAlignment","createAlignment","Ee","Ot","getRootAsCivilData","getSizePrefixedRootAsCivilData","alignments","alignmentsLength","coordinationMatrix","coordinationMatrixLength","coordinationMatrixArray","startCivilData","addAlignments","createAlignmentsVector","startAlignmentsVector","addCoordinationMatrix","createCoordinationMatrixVector","startCoordinationMatrixVector","endCivilData","createCivilData","te","K","getRootAsFragment","getSizePrefixedRootAsFragment","positionLength","positionArray","normalLength","normalArray","indexLength","indexArray","groupsLength","groupsArray","materialsLength","materialsArray","matricesLength","matricesArray","colorsLength","colorsArray","itemsSize","itemsSizeLength","itemsSizeArray","idsLength","idsArray","startFragment","addPosition","createPositionVector","startPositionVector","addNormal","createNormalVector","startNormalVector","addIndex","createIndexVector","startIndexVector","addGroups","createGroupsVector","startGroupsVector","addMaterials","createMaterialsVector","startMaterialsVector","addMatrices","createMatricesVector","startMatricesVector","addColors","createColorsVector","startColorsVector","addItemsSize","createItemsSizeVector","startItemsSizeVector","addIds","createIdsVector","startIdsVector","addId","addCapacity","addCapacityOffset","endFragment","createFragment","Ks","se","getRootAsFragmentsGroup","getSizePrefixedRootAsFragmentsGroup","items","itemsLength","civil","itemsKeys","itemsKeysLength","itemsKeysArray","itemsKeysIndices","itemsKeysIndicesLength","itemsKeysIndicesArray","itemsRels","itemsRelsLength","itemsRelsArray","itemsRelsIndices","itemsRelsIndicesLength","itemsRelsIndicesArray","fragmentKeys","name","ifcName","ifcDescription","ifcSchema","maxExpressId","boundingBoxLength","boundingBoxArray","opaqueGeometriesIds","opaqueGeometriesIdsLength","opaqueGeometriesIdsArray","transparentGeometriesIds","transparentGeometriesIdsLength","transparentGeometriesIdsArray","startFragmentsGroup","addItems","createItemsVector","startItemsVector","addCivil","addItemsKeys","createItemsKeysVector","startItemsKeysVector","addItemsKeysIndices","createItemsKeysIndicesVector","startItemsKeysIndicesVector","addItemsRels","createItemsRelsVector","startItemsRelsVector","addItemsRelsIndices","createItemsRelsIndicesVector","startItemsRelsIndicesVector","addFragmentKeys","addName","addIfcName","addIfcDescription","addIfcSchema","addMaxExpressId","addBoundingBox","createBoundingBoxVector","startBoundingBoxVector","addOpaqueGeometriesIds","createOpaqueGeometriesIdsVector","startOpaqueGeometriesIdsVector","addTransparentGeometriesIds","createTransparentGeometriesIdsVector","startTransparentGeometriesIdsVector","endFragmentsGroup","finishFragmentsGroupBuffer","finishSizePrefixedFragmentsGroupBuffer","sn","import","constructFragmentGroup","constructGeometry","constructMaterials","setInstances","setID","civilData","q","E","ct","pt","Ut","mt","Ft","Ct","saveCivilCurves","Pt","Mt","St","Bt","yt","initialKP","Zt","U","j","elements","size","keyFragments","fragmentIDSeparator","geometryIDs","opaque","ifcMetadata","description","schema","maxExpressID","Bs","fromArray","Re","Ne","constructCivilCurves","split","setGroupData","setAttribute","addGroup","JSON","parse","ke","curve","stringify","Fs","Lt","Ge","ht","bt","N","js","ee","globalIds","addGlobalIds","en","cs","qe","separator","globalToExpressIDs","an","parsers","version","keys","warnVersion","checkCurrentVersionValid","export","isInteger","arguments","baseUrl","baseFileName","types","hasProperties","_properties","streamSettings","getFragmentMap","getItemVertices","find","disposeAlignment","setLocalProperties","getLocalProperties","getAllPropertiesIDs","parseInt","getAllPropertiesTypes","type","getProperties","getPropsURL","getPropertiesData","setProperties","getAllPropertiesOfType","expressID","constructFileName","constructURL","fetch","json","getLength","getPointAt","getCurveAt","percentage","getPercentageAt","nn","alignment","_index","_pos","startPoint","endPoint","getSegment","distanceToStart","getSegmentAt","normalize","nt","getRootAsStreamedGeometry","getSizePrefixedRootAsStreamedGeometry","geometryId","startStreamedGeometry","addGeometryId","endStreamedGeometry","createStreamedGeometry","xt","getRootAsStreamedGeometries","getSizePrefixedRootAsStreamedGeometries","geometries","geometriesLength","startStreamedGeometries","addGeometries","createGeometriesVector","startGeometriesVector","endStreamedGeometries","finishStreamedGeometriesBuffer","finishSizePrefixedStreamedGeometriesBuffer","createStreamedGeometries","fn"],"sourceRoot":""}