@roomle/web-sdk 3.6.0 → 3.7.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/lib/{BufferGeometry-DLEagG41.mjs → BufferGeometry-BLeRuMkh.mjs} +1 -1
  2. package/lib/{BufferGeometry-DLEagG41.mjs.map → BufferGeometry-BLeRuMkh.mjs.map} +1 -1
  3. package/lib/ConfiguratorKernel.js +54 -73
  4. package/lib/ConfiguratorKernel.wasm +0 -0
  5. package/lib/{GLTFExporter-D8qsdwDK.mjs → GLTFExporter-CFXCqoLa.mjs} +141 -141
  6. package/lib/{GLTFExporter-D8qsdwDK.mjs.map → GLTFExporter-CFXCqoLa.mjs.map} +1 -1
  7. package/lib/{PointLightHelper-BnjxGaOG.mjs → PointLightHelper-BEJEy6l_.mjs} +2 -2
  8. package/lib/{PointLightHelper-BnjxGaOG.mjs.map → PointLightHelper-BEJEy6l_.mjs.map} +1 -1
  9. package/lib/RoomleCore.js +59 -79
  10. package/lib/RoomleCore.wasm +0 -0
  11. package/lib/RoomleToolsCore.js +54 -74
  12. package/lib/RoomleToolsCore.wasm +0 -0
  13. package/lib/{SpotLightHelper-DqsfqCrs.mjs → SpotLightHelper-aXFW8qaJ.mjs} +2 -2
  14. package/lib/{SpotLightHelper-DqsfqCrs.mjs.map → SpotLightHelper-aXFW8qaJ.mjs.map} +1 -1
  15. package/lib/{USDZExporter-DxIqi8St.mjs → USDZExporter-B4hsiwhd.mjs} +2 -2
  16. package/lib/{USDZExporter-DxIqi8St.mjs.map → USDZExporter-B4hsiwhd.mjs.map} +1 -1
  17. package/lib/{api-xDJ-Uyom.mjs → api-C2-6Jm5W.mjs} +2 -2
  18. package/lib/{api-xDJ-Uyom.mjs.map → api-C2-6Jm5W.mjs.map} +1 -1
  19. package/lib/{banana-for-scale-C_iNmlCT.mjs → banana-for-scale-BV_na-g3.mjs} +4 -4
  20. package/lib/banana-for-scale-BV_na-g3.mjs.map +1 -0
  21. package/lib/chunk-C97zSiVS.mjs +20 -0
  22. package/lib/{common-utils-DMSTohiS.mjs → common-utils-qErzZAiR.mjs} +2 -2
  23. package/lib/common-utils-qErzZAiR.mjs.map +1 -0
  24. package/lib/{component-dimensioning-CvRmUja4.mjs → component-dimensioning-DCQTqssC.mjs} +49 -49
  25. package/lib/{component-dimensioning-CvRmUja4.mjs.map → component-dimensioning-DCQTqssC.mjs.map} +1 -1
  26. package/lib/{component-raycast-helper-CEp7wy9c.mjs → component-raycast-helper-B3WXp3oq.mjs} +20 -24
  27. package/lib/component-raycast-helper-B3WXp3oq.mjs.map +1 -0
  28. package/lib/configurator-CrNkzBp9.mjs +2 -0
  29. package/lib/configurator-Dx6kcXY_.mjs +45 -0
  30. package/lib/{configurator-CmuhFgC9.mjs.map → configurator-Dx6kcXY_.mjs.map} +1 -1
  31. package/lib/{continuous-drawing-helper-v_5UAM9A.mjs → continuous-drawing-helper-DzULJ9d1.mjs} +12 -12
  32. package/lib/continuous-drawing-helper-DzULJ9d1.mjs.map +1 -0
  33. package/lib/{decorate-C1QnXPYw.mjs → decorate-BIflHDAa.mjs} +1 -1
  34. package/lib/{decorate-C1QnXPYw.mjs.map → decorate-BIflHDAa.mjs.map} +1 -1
  35. package/lib/{dimensioning-helper-Fwpt1HTT.mjs → dimensioning-helper-Cj20VTW0.mjs} +66 -57
  36. package/lib/{dimensioning-helper-Fwpt1HTT.mjs.map → dimensioning-helper-Cj20VTW0.mjs.map} +1 -1
  37. package/lib/{glb-viewer-BzNA9-zH.mjs → glb-viewer-BqFcaUlb.mjs} +52 -52
  38. package/lib/glb-viewer-BqFcaUlb.mjs.map +1 -0
  39. package/lib/glb-viewer-FYw7R-ya.mjs +2 -0
  40. package/lib/{homag-intelligence-BwGjJEws.mjs → homag-intelligence-Dkz0AhB4.mjs} +3 -3
  41. package/lib/{homag-intelligence-BwGjJEws.mjs.map → homag-intelligence-Dkz0AhB4.mjs.map} +1 -1
  42. package/lib/{imos-ix-poc-export-helper-CQh94HsO.mjs → imos-ix-poc-export-helper-BjIgAfUu.mjs} +4 -3
  43. package/lib/imos-ix-poc-export-helper-BjIgAfUu.mjs.map +1 -0
  44. package/lib/kernel-BAQSG9r5.mjs.map +1 -1
  45. package/lib/{kernel-utils-H74uNY1h.mjs → kernel-utils-CfGzR_WC.mjs} +15 -15
  46. package/lib/{kernel-utils-H74uNY1h.mjs.map → kernel-utils-CfGzR_WC.mjs.map} +1 -1
  47. package/lib/{layer-C_JtkhdO.mjs → layer-CFAr2mK_.mjs} +1 -1
  48. package/lib/{layer-C_JtkhdO.mjs.map → layer-CFAr2mK_.mjs.map} +1 -1
  49. package/lib/{main-CtVIB52l.mjs → main-DMIVdAcT.mjs} +14471 -14300
  50. package/lib/main-DMIVdAcT.mjs.map +1 -0
  51. package/lib/{material-viewer-Bq4smZ6f.mjs → material-viewer-BkwvhHbQ.mjs} +40 -40
  52. package/lib/material-viewer-BkwvhHbQ.mjs.map +1 -0
  53. package/lib/planner-BPlxsTRJ.mjs +44 -0
  54. package/lib/{planner-CVw_xzGh.mjs.map → planner-BPlxsTRJ.mjs.map} +1 -1
  55. package/lib/planner-oj08ktHE.mjs +2 -0
  56. package/lib/{plugin-system-D9K46xJk.mjs → plugin-system-XhOJU1MI.mjs} +3 -3
  57. package/lib/{plugin-system-D9K46xJk.mjs.map → plugin-system-XhOJU1MI.mjs.map} +1 -1
  58. package/lib/roomle-renderer-BwPvUqSW.mjs +49 -0
  59. package/lib/roomle-renderer-BwPvUqSW.mjs.map +1 -0
  60. package/lib/roomle-sdk.d.ts +114 -1116
  61. package/lib/roomle-sdk.js +6 -6
  62. package/lib/roomle-webgpu-renderer-CSC5zFdC.mjs +217 -0
  63. package/lib/roomle-webgpu-renderer-CSC5zFdC.mjs.map +1 -0
  64. package/lib/{scene-renderer-D8HkTFeZ.mjs → scene-renderer-DWY_zPvU.mjs} +496 -513
  65. package/lib/scene-renderer-DWY_zPvU.mjs.map +1 -0
  66. package/lib/{script-loader-D8xCRzTr.mjs → script-loader-CA-XHFKN.mjs} +3 -3
  67. package/lib/{script-loader-D8xCRzTr.mjs.map → script-loader-CA-XHFKN.mjs.map} +1 -1
  68. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
  69. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.d.ts +0 -1
  70. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.d.ts +3 -3
  71. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.js +54 -73
  72. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
  73. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js +59 -79
  74. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
  75. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.js +54 -74
  76. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
  77. package/lib/{stats-helper-HM0TaIM5.mjs → stats-helper-C954Cfgh.mjs} +4 -3
  78. package/lib/{stats-helper-HM0TaIM5.mjs.map → stats-helper-C954Cfgh.mjs.map} +1 -1
  79. package/lib/{three.core-CLIofecG.mjs → three.core-mM-jZdgg.mjs} +926 -926
  80. package/lib/{three.core-CLIofecG.mjs.map → three.core-mM-jZdgg.mjs.map} +1 -1
  81. package/lib/{three.module-C4Q1skJQ.mjs → three.module-Bmy3sVQ-.mjs} +1210 -1210
  82. package/lib/{three.module-C4Q1skJQ.mjs.map → three.module-Bmy3sVQ-.mjs.map} +1 -1
  83. package/lib/{three.webgpu-dFspy2yF.mjs → three.webgpu-0l2TztLa.mjs} +5355 -2935
  84. package/lib/{three.webgpu-dFspy2yF.mjs.map → three.webgpu-0l2TztLa.mjs.map} +1 -1
  85. package/lib/{threejs-utils-jEzvlJF1.mjs → threejs-utils-8zlxt158.mjs} +430 -431
  86. package/lib/threejs-utils-8zlxt158.mjs.map +1 -0
  87. package/lib/{tools-core-Bf9WsK5v.mjs → tools-core-BzhFD2Wk.mjs} +3 -3
  88. package/lib/{tools-core-Bf9WsK5v.mjs.map → tools-core-BzhFD2Wk.mjs.map} +1 -1
  89. package/package.json +1 -1
  90. package/lib/banana-for-scale-C_iNmlCT.mjs.map +0 -1
  91. package/lib/common-utils-DMSTohiS.mjs.map +0 -1
  92. package/lib/component-raycast-helper-CEp7wy9c.mjs.map +0 -1
  93. package/lib/configurator-BaUt4_LF.mjs +0 -2
  94. package/lib/configurator-CmuhFgC9.mjs +0 -45
  95. package/lib/continuous-drawing-helper-v_5UAM9A.mjs.map +0 -1
  96. package/lib/dimensioning-helper-DTcW85Oq.mjs +0 -2
  97. package/lib/glb-viewer-BzNA9-zH.mjs.map +0 -1
  98. package/lib/glb-viewer-DOxBD5k-.mjs +0 -2
  99. package/lib/imos-ix-poc-export-helper-CQh94HsO.mjs.map +0 -1
  100. package/lib/main-CtVIB52l.mjs.map +0 -1
  101. package/lib/material-viewer-Bq4smZ6f.mjs.map +0 -1
  102. package/lib/planner-CVw_xzGh.mjs +0 -44
  103. package/lib/planner-si70gWA2.mjs +0 -2
  104. package/lib/scene-renderer-D8HkTFeZ.mjs.map +0 -1
  105. package/lib/threejs-utils-jEzvlJF1.mjs.map +0 -1
@@ -1,74 +1,54 @@
1
- var RoomleToolsCore = (() => {
2
- var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined;
3
- return (
4
- async function(moduleArg = {}) {
5
- var moduleRtn;
6
-
7
- var n=moduleArg,aa="object"==typeof window,ba="undefined"!=typeof WorkerGlobalScope,ca="object"==typeof process&&process.versions?.node&&"renderer"!=process.type,da="./this.program",ea=(a,b)=>{throw b;};"undefined"!=typeof __filename&&(_scriptName=__filename);var fa="",ha,ia;
8
- if(ca){var fs=require("fs");fa=__dirname+"/";ia=a=>{a=ja(a)?new URL(a):a;return fs.readFileSync(a)};ha=async a=>{a=ja(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1<process.argv.length&&(da=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);ea=(a,b)=>{process.exitCode=a;throw b;}}else if(aa||ba){try{fa=(new URL(".",_scriptName)).href}catch{}ha=async a=>{a=await fetch(a,{credentials:"same-origin"});if(a.ok)return a.arrayBuffer();throw Error(a.status+" : "+a.url);}}
9
- var ka=console.log.bind(console),p=console.error.bind(console),t,la=!1,ma,ja=a=>a.startsWith("file://"),na,oa,u,pa,w,z,B,D,E,qa,ra,sa,ta,ua=!1;function va(){var a=u.buffer;pa=new Int8Array(a);z=new Int16Array(a);w=new Uint8Array(a);B=new Uint16Array(a);D=new Int32Array(a);E=new Uint32Array(a);qa=new Float32Array(a);ra=new Float64Array(a);sa=new BigInt64Array(a);ta=new BigUint64Array(a)}var F=0,G=null;
10
- function wa(a){n.onAbort?.(a);a="Aborted("+a+")";p(a);la=!0;a+=". Build with -sASSERTIONS for more info.";ua&&xa();a=new WebAssembly.RuntimeError(a);oa?.(a);throw a;}var ya;async function za(a){if(!t)try{var b=await ha(a);return new Uint8Array(b)}catch{}if(a==ya&&t)a=new Uint8Array(t);else if(ia)a=ia(a);else throw"both async and sync fetching of the wasm failed";return a}
11
- async function Aa(a,b){try{var c=await za(a);return await WebAssembly.instantiate(c,b)}catch(d){p(`failed to asynchronously prepare wasm: ${d}`),wa(d)}}async function Ba(a){var b=ya;if(!t&&"function"==typeof WebAssembly.instantiateStreaming&&!ca)try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){p(`wasm streaming compile failed: ${d}`),p("falling back to ArrayBuffer instantiation")}return Aa(b,a)}
12
- class Ca{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var Da=a=>{for(;0<a.length;)a.shift()(n)},Ea=[],Fa=[],Ga=()=>{var a=n.preRun.shift();Fa.push(a)},Ha=!0,Ia={},Ja=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function H(a){return this.fromWireType(E[a>>2])}
13
- var I={},J={},Ka={},Ma=class extends Error{constructor(a){super(a);this.name="InternalError"}},L=(a,b,c)=>{function d(h){h=c(h);if(h.length!==a.length)throw new Ma("Mismatched type converter count");for(var m=0;m<a.length;++m)K(a[m],h[m])}a.forEach(h=>Ka[h]=b);var e=Array(b.length),g=[],f=0;b.forEach((h,m)=>{J.hasOwnProperty(h)?e[m]=J[h]:(g.push(h),I.hasOwnProperty(h)||(I[h]=[]),I[h].push(()=>{e[m]=J[h];++f;f===g.length&&d(e)}))});0===g.length&&d(e)},M=a=>{for(var b="";;){var c=w[a++];if(!c)return b;
14
- b+=String.fromCharCode(c)}},N=class extends Error{constructor(a){super(a);this.name="BindingError"}},Na=a=>{throw new N(a);};function Oa(a,b,c={}){var d=b.name;if(!a)throw new N(`type "${d}" must have a positive integer typeid pointer`);if(J.hasOwnProperty(a)){if(c.Ga)return;throw new N(`Cannot register type '${d}' twice`);}J[a]=b;delete Ka[a];I.hasOwnProperty(a)&&(b=I[a],delete I[a],b.forEach(e=>e()))}function K(a,b,c={}){return Oa(a,b,c)}
15
- var Pa=(a,b,c)=>{switch(b){case 1:return c?d=>pa[d]:d=>w[d];case 2:return c?d=>z[d>>1]:d=>B[d>>1];case 4:return c?d=>D[d>>2]:d=>E[d>>2];case 8:return c?d=>sa[d>>3]:d=>ta[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},Qa=a=>{throw new N(a.Z.ba.$.name+" instance already deleted");},Ra=!1,Sa=()=>{},O=a=>{if("undefined"===typeof FinalizationRegistry)return O=b=>b,a;Ra=new FinalizationRegistry(b=>{b=b.Z;--b.count.value;0===b.count.value&&(b.ea?b.ia.ja(b.ea):b.ba.$.ja(b.aa))});
16
- O=b=>{var c=b.Z;c.ea&&Ra.register(b,{Z:c},b);return b};Sa=b=>{Ra.unregister(b)};return O(a)},Ta=[];function Ua(){}
17
- var Va=(a,b)=>Object.defineProperty(b,"name",{value:a}),Wa={},Xa=(a,b,c)=>{if(void 0===a[b].da){var d=a[b];a[b]=function(...e){if(!a[b].da.hasOwnProperty(e.length))throw new N(`Function '${c}' called with an invalid number of arguments (${e.length}) - expects one of (${a[b].da})!`);return a[b].da[e.length].apply(this,e)};a[b].da=[];a[b].da[d.ma]=d}},Ya=(a,b,c)=>{if(n.hasOwnProperty(a)){if(void 0===c||void 0!==n[a].da&&void 0!==n[a].da[c])throw new N(`Cannot register public name '${a}' twice`);Xa(n,
18
- a,a);if(n[a].da.hasOwnProperty(c))throw new N(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);n[a].da[c]=b}else n[a]=b,n[a].ma=c},Za=a=>{a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?`_${a}`:a};function $a(a,b,c,d,e,g,f,h){this.name=a;this.constructor=b;this.la=c;this.ja=d;this.fa=e;this.Ba=g;this.pa=f;this.za=h;this.Ja=[]}
19
- var ab=(a,b,c)=>{for(;b!==c;){if(!b.pa)throw new N(`Expected null or instance of ${c.name}, got an instance of ${b.name}`);a=b.pa(a);b=b.fa}return a},bb=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a};
20
- function cb(a,b){if(null===b){if(this.sa)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.Z)throw new N(`Cannot pass "${bb(b)}" as a ${this.name}`);if(!b.Z.aa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);return ab(b.Z.aa,b.Z.ba.$,this.$)}
21
- function db(a,b){if(null===b){if(this.sa)throw new N(`null is not a valid ${this.name}`);if(this.ra){var c=this.ta();null!==a&&a.push(this.ja,c);return c}return 0}if(!b||!b.Z)throw new N(`Cannot pass "${bb(b)}" as a ${this.name}`);if(!b.Z.aa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.qa&&b.Z.ba.qa)throw new N(`Cannot convert argument of type ${b.Z.ia?b.Z.ia.name:b.Z.ba.name} to parameter type ${this.name}`);c=ab(b.Z.aa,b.Z.ba.$,this.$);if(this.ra){if(void 0===
22
- b.Z.ea)throw new N("Passing raw pointer to smart pointer is illegal");switch(this.Oa){case 0:if(b.Z.ia===this)c=b.Z.ea;else throw new N(`Cannot convert argument of type ${b.Z.ia?b.Z.ia.name:b.Z.ba.name} to parameter type ${this.name}`);break;case 1:c=b.Z.ea;break;case 2:if(b.Z.ia===this)c=b.Z.ea;else{var d=b.clone();c=this.Ka(c,P(()=>d["delete"]()));null!==a&&a.push(this.ja,c)}break;default:throw new N("Unsupporting sharing policy");}}return c}
23
- function eb(a,b){if(null===b){if(this.sa)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.Z)throw new N(`Cannot pass "${bb(b)}" as a ${this.name}`);if(!b.Z.aa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(b.Z.ba.qa)throw new N(`Cannot convert argument of type ${b.Z.ba.name} to parameter type ${this.name}`);return ab(b.Z.aa,b.Z.ba.$,this.$)}
24
- var fb=(a,b,c)=>{if(b===c)return a;if(void 0===c.fa)return null;a=fb(a,b,c.fa);return null===a?null:c.za(a)},gb={},hb=(a,b)=>{if(void 0===b)throw new N("ptr should not be undefined");for(;a.fa;)b=a.pa(b),a=a.fa;return gb[b]},ib=(a,b)=>{if(!b.ba||!b.aa)throw new Ma("makeClassHandle requires ptr and ptrType");if(!!b.ia!==!!b.ea)throw new Ma("Both smartPtrType and smartPtr must be specified");b.count={value:1};return O(Object.create(a,{Z:{value:b,writable:!0}}))};
25
- function Q(a,b,c,d,e,g,f,h,m,l,k){this.name=a;this.$=b;this.sa=c;this.qa=d;this.ra=e;this.Ia=g;this.Oa=f;this.xa=h;this.ta=m;this.Ka=l;this.ja=k;e||void 0!==b.fa?this.toWireType=db:(this.toWireType=d?cb:eb,this.ga=null)}
26
- var jb=(a,b,c)=>{if(!n.hasOwnProperty(a))throw new Ma("Replacing nonexistent public symbol");void 0!==n[a].da&&void 0!==c?n[a].da[c]=b:(n[a]=b,n[a].ma=c)},kb,R=(a,b)=>{a=M(a);var c=kb.get(b);if("function"!=typeof c)throw new N(`unknown function pointer with signature ${a}: ${b}`);return c};class lb extends Error{}
27
- var nb=a=>{a=mb(a);var b=M(a);S(a);return b},ob=(a,b)=>{function c(g){e[g]||J[g]||(Ka[g]?Ka[g].forEach(c):(d.push(g),e[g]=!0))}var d=[],e={};b.forEach(c);throw new lb(`${a}: `+d.map(nb).join([", "]));},pb=(a,b)=>{for(var c=[],d=0;d<a;d++)c.push(E[b+4*d>>2]);return c};function qb(a){for(var b=1;b<a.length;++b)if(null!==a[b]&&void 0===a[b].ga)return!0;return!1}
28
- function rb(a,b,c,d,e,g){var f=b.length;if(2>f)throw new N("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,m=qb(b);c="void"!==b[0].name;d=[a,Na,d,e,Ja,b[0],b[1]];for(e=0;e<f-2;++e)d.push(b[e+2]);if(!m)for(e=h?1:2;e<b.length;++e)null!==b[e].ga&&d.push(b[e].ga);m=qb(b);e=b.length-2;var l=[],k=["fn"];h&&k.push("thisWired");for(f=0;f<e;++f)l.push(`arg${f}`),k.push(`arg${f}Wired`);l=l.join(",");k=k.join(",");l=`return function (${l}) {\n`;m&&
29
- (l+="var destructors = [];\n");var q=m?"destructors":"null",r="humanName throwBindingError invoker fn runDestructors retType classParam".split(" ");h&&(l+=`var thisWired = classParam['toWireType'](${q}, this);\n`);for(f=0;f<e;++f)l+=`var arg${f}Wired = argType${f}['toWireType'](${q}, arg${f});\n`,r.push(`argType${f}`);l+=(c||g?"var rv = ":"")+`invoker(${k});\n`;if(m)l+="runDestructors(destructors);\n";else for(f=h?1:2;f<b.length;++f)g=1===f?"thisWired":"arg"+(f-2)+"Wired",null!==b[f].ga&&(l+=`${g}_dtor(${g});\n`,
30
- r.push(`${g}_dtor`));c&&(l+="var ret = retType['fromWireType'](rv);\nreturn ret;\n");let [x,v]=[r,l+"}\n"];b=(new Function(...x,v))(...d);return Va(a,b)}
31
- var sb=a=>{a=a.trim();const b=a.indexOf("(");return-1===b?a:a.slice(0,b)},tb=[],T=[0,1,,1,null,1,!0,1,!1,1],vb=a=>{9<a&&0===--T[a+1]&&(T[a]=void 0,tb.push(a))},U=a=>{if(!a)throw new N(`Cannot use deleted val. handle = ${a}`);return T[a]},P=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=tb.pop()||T.length;T[b]=a;T[b+1]=1;return b}},wb={name:"emscripten::val",fromWireType:a=>{var b=U(a);vb(a);return b},toWireType:(a,b)=>P(b),ha:8,readValueFromPointer:H,
32
- ga:null},xb=(a,b,c)=>{switch(b){case 1:return c?function(d){return this.fromWireType(pa[d])}:function(d){return this.fromWireType(w[d])};case 2:return c?function(d){return this.fromWireType(z[d>>1])}:function(d){return this.fromWireType(B[d>>1])};case 4:return c?function(d){return this.fromWireType(D[d>>2])}:function(d){return this.fromWireType(E[d>>2])};default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},yb=(a,b)=>{var c=J[a];if(void 0===c)throw a=`${b} has unknown type ${nb(a)}`,
33
- new N(a);return c},zb=(a,b)=>{switch(b){case 4:return function(c){return this.fromWireType(qa[c>>2])};case 8:return function(c){return this.fromWireType(ra[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},V=(a,b,c)=>{var d=w;if(!(0<c))return 0;var e=b;c=b+c-1;for(var g=0;g<a.length;++g){var f=a.codePointAt(g);if(127>=f){if(b>=c)break;d[b++]=f}else if(2047>=f){if(b+1>=c)break;d[b++]=192|f>>6;d[b++]=128|f&63}else if(65535>=f){if(b+2>=c)break;d[b++]=224|f>>12;d[b++]=128|f>>
34
- 6&63;d[b++]=128|f&63}else{if(b+3>=c)break;d[b++]=240|f>>18;d[b++]=128|f>>12&63;d[b++]=128|f>>6&63;d[b++]=128|f&63;g++}}d[b]=0;return b-e},Ab=a=>{for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},Bb=new TextDecoder,Cb=new TextDecoder("utf-16le"),Db=(a,b)=>{a>>=1;b=a+b/2;for(var c=a;!(c>=b)&&B[c];)++c;return Cb.decode(B.subarray(a,c))},Eb=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=
35
- 0;e<c;++e)z[b>>1]=a.charCodeAt(e),b+=2;z[b>>1]=0;return b-d},Fb=a=>2*a.length,Gb=(a,b)=>{for(var c="",d=0;!(d>=b/4);d++){var e=D[a+4*d>>2];if(!e)break;c+=String.fromCodePoint(e)}return c},Hb=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var g=a.codePointAt(e);65535<g&&e++;D[b>>2]=g;b+=4;if(b+4>c)break}D[b>>2]=0;return b-d},Ib=a=>{for(var b=0,c=0;c<a.length;++c)65535<a.codePointAt(c)&&c++,b+=4;return b},Jb=0,Kb=(a,b,c)=>{var d=[];a=a.toWireType(d,c);d.length&&
36
- (E[b>>2]=P(d));return a},Lb=[],Mb={},Nb=a=>{var b=Mb[a];return void 0===b?M(a):b},Ob=a=>{var b=Lb.length;Lb.push(a);return b},Pb=(a,b)=>{for(var c=Array(a),d=0;d<a;++d)c[d]=yb(E[b+4*d>>2],`parameter ${d}`);return c},W={},Qb=a=>{a instanceof Ca||"unwind"==a||ea(1,a)},Rb=a=>{ma=a;Ha||0<Jb||(n.onExit?.(a),la=!0);ea(a,new Ca(a))},Sb=a=>{if(!la)try{if(a(),!(Ha||0<Jb))try{ma=a=ma,Rb(a)}catch(b){Qb(b)}}catch(b){Qb(b)}},Tb={},Vb=()=>{if(!Ub){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",
37
- LANG:("object"==typeof navigator&&navigator.language||"C").replace("-","_")+".UTF-8",_:da||"./this.program"},b;for(b in Tb)void 0===Tb[b]?delete a[b]:a[b]=Tb[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);Ub=c}return Ub},Ub,Wb=[null,[],[]];
38
- (()=>{let a=Ua.prototype;Object.assign(a,{isAliasOf:function(c){if(!(this instanceof Ua&&c instanceof Ua))return!1;var d=this.Z.ba.$,e=this.Z.aa;c.Z=c.Z;var g=c.Z.ba.$;for(c=c.Z.aa;d.fa;)e=d.pa(e),d=d.fa;for(;g.fa;)c=g.pa(c),g=g.fa;return d===g&&e===c},clone:function(){this.Z.aa||Qa(this);if(this.Z.oa)return this.Z.count.value+=1,this;var c=O,d=Object,e=d.create,g=Object.getPrototypeOf(this),f=this.Z;c=c(e.call(d,g,{Z:{value:{count:f.count,na:f.na,oa:f.oa,aa:f.aa,ba:f.ba,ea:f.ea,ia:f.ia}}}));c.Z.count.value+=
39
- 1;c.Z.na=!1;return c},["delete"](){this.Z.aa||Qa(this);if(this.Z.na&&!this.Z.oa)throw new N("Object already scheduled for deletion");Sa(this);var c=this.Z;--c.count.value;0===c.count.value&&(c.ea?c.ia.ja(c.ea):c.ba.$.ja(c.aa));this.Z.oa||(this.Z.ea=void 0,this.Z.aa=void 0)},isDeleted:function(){return!this.Z.aa},deleteLater:function(){this.Z.aa||Qa(this);if(this.Z.na&&!this.Z.oa)throw new N("Object already scheduled for deletion");Ta.push(this);this.Z.na=!0;return this}});const b=Symbol.dispose;b&&
40
- (a[b]=a["delete"])})();
41
- Object.assign(Q.prototype,{Ca(a){this.xa&&(a=this.xa(a));return a},va(a){this.ja?.(a)},ha:8,readValueFromPointer:H,fromWireType:function(a){function b(){return this.ra?ib(this.$.la,{ba:this.Ia,aa:c,ia:this,ea:a}):ib(this.$.la,{ba:this,aa:a})}var c=this.Ca(a);if(!c)return this.va(a),null;var d=hb(this.$,c);if(void 0!==d){if(0===d.Z.count.value)return d.Z.aa=c,d.Z.ea=a,d.clone();d=d.clone();this.va(a);return d}d=this.$.Ba(c);d=Wa[d];if(!d)return b.call(this);d=this.qa?d.ya:d.pointerType;var e=fb(c,
42
- this.$,d.$);return null===e?b.call(this):this.ra?ib(d.$.la,{ba:d,aa:e,ia:this,ea:a}):ib(d.$.la,{ba:d,aa:e})}});n.noExitRuntime&&(Ha=n.noExitRuntime);n.print&&(ka=n.print);n.printErr&&(p=n.printErr);n.wasmBinary&&(t=n.wasmBinary);n.thisProgram&&(da=n.thisProgram);n.wasmMemory=u;
43
- var mb,S,Xb,Yb,Zb,xa,$b={t:()=>wa(""),N:a=>{var b=Ia[a];delete Ia[a];var c=b.ta,d=b.ja,e=b.wa,g=e.map(f=>f.Fa).concat(e.map(f=>f.Ma));L([a],g,f=>{var h={};e.forEach((m,l)=>{var k=f[l],q=m.Da,r=m.Ea,x=f[l+e.length],v=m.La,A=m.Na;h[m.Aa]={read:C=>k.fromWireType(q(r,C)),write:(C,Y)=>{var y=[];v(A,C,x.toWireType(y,Y));Ja(y)},optional:f[l].optional}});return[{name:b.name,fromWireType:m=>{var l={},k;for(k in h)l[k]=h[k].read(m);d(m);return l},toWireType:(m,l)=>{for(var k in h)if(!(k in l||h[k].optional))throw new TypeError(`Missing field: "${k}"`);
44
- var q=c();for(k in h)h[k].write(q,l[k]);null!==m&&m.push(d,q);return q},ha:8,readValueFromPointer:H,ga:d}]})},l:(a,b,c,d,e)=>{b=M(b);d=0n===d;let g=f=>f;if(d){const f=8*c;g=h=>BigInt.asUintN(f,h);e=g(e)}K(a,{name:b,fromWireType:g,toWireType:(f,h)=>{"number"==typeof h&&(h=BigInt(h));return h},ha:8,readValueFromPointer:Pa(b,c,!d),ga:null})},H:(a,b,c,d)=>{b=M(b);K(a,{name:b,fromWireType:function(e){return!!e},toWireType:function(e,g){return g?c:d},ha:8,readValueFromPointer:function(e){return this.fromWireType(w[e])},
45
- ga:null})},M:(a,b,c,d,e,g,f,h,m,l,k,q,r)=>{k=M(k);g=R(e,g);h&&=R(f,h);l&&=R(m,l);r=R(q,r);var x=Za(k);Ya(x,function(){ob(`Cannot construct ${k} due to unbound types`,[d])});L([a,b,c],d?[d]:[],v=>{v=v[0];if(d){var A=v.$;var C=A.la}else C=Ua.prototype;v=Va(k,function(...La){if(Object.getPrototypeOf(this)!==Y)throw new N(`Use 'new' to construct ${k}`);if(void 0===y.ka)throw new N(`${k} has no accessible constructor`);var ub=y.ka[La.length];if(void 0===ub)throw new N(`Tried to invoke ctor of ${k} with invalid number of parameters (${La.length}) - expected (${Object.keys(y.ka).toString()}) parameters instead!`);
46
- return ub.apply(this,La)});var Y=Object.create(C,{constructor:{value:v}});v.prototype=Y;var y=new $a(k,v,Y,r,A,g,h,l);if(y.fa){var Z;(Z=y.fa).ua??(Z.ua=[]);y.fa.ua.push(y)}A=new Q(k,y,!0,!1,!1);Z=new Q(k+"*",y,!1,!1,!1);C=new Q(k+" const*",y,!1,!0,!1);Wa[a]={pointerType:Z,ya:C};jb(x,v);return[A,Z,C]})},L:(a,b,c,d,e,g)=>{var f=pb(b,c);e=R(d,e);L([],[a],h=>{h=h[0];var m=`constructor ${h.name}`;void 0===h.$.ka&&(h.$.ka=[]);if(void 0!==h.$.ka[b-1])throw new N(`Cannot register multiple constructors with identical number of parameters (${b-
47
- 1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);h.$.ka[b-1]=()=>{ob(`Cannot construct ${h.name} due to unbound types`,f)};L([],f,l=>{l.splice(1,0,null);h.$.ka[b-1]=rb(m,l,null,e,g);return[]});return[]})},e:(a,b,c,d,e,g,f,h,m)=>{var l=pb(c,d);b=M(b);b=sb(b);g=R(e,g);L([],[a],k=>{function q(){ob(`Cannot call ${r} due to unbound types`,l)}k=k[0];var r=`${k.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&k.$.Ja.push(b);
48
- var x=k.$.la,v=x[b];void 0===v||void 0===v.da&&v.className!==k.name&&v.ma===c-2?(q.ma=c-2,q.className=k.name,x[b]=q):(Xa(x,b,r),x[b].da[c-2]=q);L([],l,A=>{A=rb(r,A,k,g,f,m);void 0===x[b].da?(A.ma=c-2,x[b]=A):x[b].da[c-2]=A;return[]});return[]})},F:a=>K(a,wb),C:(a,b,c,d)=>{function e(){}b=M(b);e.values={};K(a,{name:b,constructor:e,fromWireType:function(g){return this.constructor.values[g]},toWireType:(g,f)=>f.value,ha:8,readValueFromPointer:xb(b,c,d),ga:null});Ya(b,e)},i:(a,b,c)=>{var d=yb(a,"enum");
49
- b=M(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:Va(`${d.name}_${b}`,function(){})}});a.values[c]=d;a[b]=d},k:(a,b,c)=>{b=M(b);K(a,{name:b,fromWireType:d=>d,toWireType:(d,e)=>e,ha:8,readValueFromPointer:zb(b,c),ga:null})},P:(a,b,c,d,e,g,f)=>{var h=pb(b,c);a=M(a);a=sb(a);e=R(d,e);Ya(a,function(){ob(`Cannot call ${a} due to unbound types`,h)},b-1);L([],h,m=>{m=[m[0],null].concat(m.slice(1));jb(a,rb(a,m,null,e,g,f),b-1);return[]})},b:(a,b,c,d,e)=>{b=
50
- M(b);let g=h=>h;if(0===d){var f=32-8*c;g=h=>h<<f>>>f;e=g(e)}K(a,{name:b,fromWireType:g,toWireType:(h,m)=>m,ha:8,readValueFromPointer:Pa(b,c,0!==d),ga:null})},a:(a,b,c)=>{function d(g){return new e(pa.buffer,E[g+4>>2],E[g>>2])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=M(c);K(a,{name:c,fromWireType:d,ha:8,readValueFromPointer:d},{Ga:!0})},K:(a,b,c,d,e,g,f,h,m,l,k,q)=>{c=M(c);g=R(e,g);h=R(f,h);l=R(m,l);q=R(k,
51
- q);L([a],[b],r=>{r=r[0];return[new Q(c,r.$,!1,!1,!0,r,d,g,h,l,q)]})},G:(a,b)=>{b=M(b);K(a,{name:b,fromWireType:function(c){for(var d=E[c>>2],e=c+4,g,f=e,h=0;h<=d;++h){var m=e+h;if(h==d||0==w[m]){if(f){for(var l=f+(m-f),k=f;!(k>=l)&&w[k];)++k;f=Bb.decode(w.subarray(f,k))}else f="";void 0===g?g=f:(g+=String.fromCharCode(0),g+=f);f=m+1}}S(c);return g},toWireType:function(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e="string"==typeof d;if(!(e||ArrayBuffer.isView(d)&&1==d.BYTES_PER_ELEMENT))throw new N("Cannot pass non-string to std::string");
52
- var g=e?Ab(d):d.length;var f=Xb(4+g+1),h=f+4;E[f>>2]=g;e?V(d,h,g+1):w.set(d,h);null!==c&&c.push(S,f);return f},ha:8,readValueFromPointer:H,ga(c){S(c)}})},g:(a,b,c)=>{c=M(c);if(2===b){var d=Db;var e=Eb;var g=Fb;var f=h=>B[h>>1]}else 4===b&&(d=Gb,e=Hb,g=Ib,f=h=>E[h>>2]);K(a,{name:c,fromWireType:h=>{for(var m=E[h>>2],l,k=h+4,q=0;q<=m;++q){var r=h+4+q*b;if(q==m||0==f(r))k=d(k,r-k),void 0===l?l=k:(l+=String.fromCharCode(0),l+=k),k=r+b}S(h);return l},toWireType:(h,m)=>{if("string"!=typeof m)throw new N(`Cannot pass non-string to C++ string type ${c}`);
53
- var l=g(m),k=Xb(4+l+b);E[k>>2]=l/b;e(m,k+4,l+b);null!==h&&h.push(S,k);return k},ha:8,readValueFromPointer:H,ga(h){S(h)}})},p:(a,b,c,d,e,g)=>{Ia[a]={name:M(b),ta:R(c,d),ja:R(e,g),wa:[]}},f:(a,b,c,d,e,g,f,h,m,l)=>{Ia[a].wa.push({Aa:M(b),Fa:c,Da:R(d,e),Ea:g,Ma:f,La:R(h,m),Na:l})},I:(a,b)=>{b=M(b);K(a,{Ha:!0,name:b,ha:0,fromWireType:()=>{},toWireType:()=>{}})},r:()=>{Ha=!1;Jb=0},o:(a,b,c)=>{a=U(a);b=yb(b,"emval::as");return Kb(b,c,a)},J:(a,b,c,d)=>{a=Lb[a];b=U(b);return a(null,b,c,d)},d:(a,b,c,d,e)=>
54
- {a=Lb[a];b=U(b);c=Nb(c);return a(b,b[c],d,e)},O:vb,E:a=>{if(0===a)return P(globalThis);a=Nb(a);return P(globalThis[a])},c:(a,b,c)=>{b=Pb(a,b);var d=b.shift();a--;var e="return function (obj, func, destructorsRef, args) {\n",g=0,f=[];0===c&&f.push("obj");for(var h=["retType"],m=[d],l=0;l<a;++l)f.push(`arg${l}`),h.push(`argType${l}`),m.push(b[l]),e+=` var arg${l} = argType${l}.readValueFromPointer(args${g?"+"+g:""});\n`,g+=b[l].ha;e+=` var rv = ${1===c?"new func":"func.call"}(${f.join(", ")});\n`;
55
- d.Ha||(h.push("emval_returnValue"),m.push(Kb),e+=" return emval_returnValue(retType, destructorsRef, rv);\n");a=(new Function(...h,e+"};\n"))(...m);c=`methodCaller<(${b.map(k=>k.name).join(", ")}) => ${d.name}>`;return Ob(Va(c,a))},j:(a,b)=>{a=U(a);b=U(b);return P(a[b])},m:a=>{9<a&&(T[a+1]+=1)},D:a=>P(Nb(a)),n:a=>{var b=U(a);Ja(b);vb(a)},h:(a,b)=>{a=yb(a,"_emval_take_value");a=a.readValueFromPointer(b);return P(a)},s:(a,b)=>{W[a]&&(clearTimeout(W[a].id),delete W[a]);if(!b)return 0;var c=setTimeout(()=>
56
- {delete W[a];Sb(()=>Zb(a,performance.now()))},b);W[a]={id:c,Pa:b};return 0},u:(a,b,c,d)=>{var e=(new Date).getFullYear(),g=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();E[a>>2]=60*Math.max(g,e);D[b>>2]=Number(g!=e);b=f=>{var h=Math.abs(f);return`UTC${0<=f?"-":"+"}${String(Math.floor(h/60)).padStart(2,"0")}${String(h%60).padStart(2,"0")}`};a=b(g);b=b(e);e<g?(V(a,c,17),V(b,d,17)):(V(a,d,17),V(b,c,17))},v:a=>{var b=w.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=
57
- c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-u.buffer.byteLength+65535)/65536|0;try{u.grow(d);va();var e=1;break a}catch(g){}e=void 0}if(e)return!0}return!1},x:(a,b)=>{var c=0,d=0,e;for(e of Vb()){var g=b+c;E[a+d>>2]=g;c+=V(e,g,Infinity)+1;d+=4}return 0},y:(a,b)=>{var c=Vb();E[a>>2]=c.length;a=0;for(var d of c)a+=Ab(d)+1;E[b>>2]=a;return 0},z:()=>52,B:()=>52,w:function(){return 70},A:(a,b,c,d)=>{for(var e=0,g=0;g<c;g++){var f=E[b>>
58
- 2],h=E[b+4>>2];b+=8;for(var m=0;m<h;m++){var l=a,k=w[f+m],q=Wb[l];if(0===k||10===k){l=1===l?ka:p;for(k=0;q[k]&&!(NaN<=k);)++k;k=Bb.decode(q.buffer?q.subarray(0,k):new Uint8Array(q.slice(0,k)));l(k);q.length=0}else q.push(k)}e+=h}E[d>>2]=e;return 0},q:Rb},X=await (async function(){function a(c){X=c.exports;u=X.Q;n.wasmMemory=u;va();kb=X.W;c=X;mb=c.S;S=c.T;Xb=c.U;n._main=Yb=c.V;Zb=c.X;xa=c.Y;F--;n.monitorRunDependencies?.(F);0==F&&G&&(c=G,G=null,c());return X}F++;n.monitorRunDependencies?.(F);
59
- var b={a:$b};if(n.instantiateWasm)return new Promise(c=>{n.instantiateWasm(b,(d,e)=>{c(a(d,e))})});ya??=n.locateFile?n.locateFile("RoomleToolsCore.wasm",fa):fa+"RoomleToolsCore.wasm";return a((await Ba(b)).instance)}());
60
- function ac(){function a(){n.calledRun=!0;if(!la){ua=!0;X.R();na?.(n);n.onRuntimeInitialized?.();if(!n.noInitialRun){var b=Yb;try{var c=b(0,0);ma=c;Rb(c)}catch(d){Qb(d)}}if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)b=n.postRun.shift(),Ea.push(b);Da(Ea)}}if(0<F)G=ac;else{if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)Ga();Da(Fa);0<F?G=ac:n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>n.setStatus(""),
61
- 1);a()},1)):a()}}if(n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.shift()();ac();ua?moduleRtn=n:moduleRtn=new Promise((a,b)=>{na=a;oa=b});
62
-
63
-
64
- return moduleRtn;
65
- }
66
- );
67
- })();
68
- if (typeof exports === 'object' && typeof module === 'object') {
69
- module.exports = RoomleToolsCore;
70
- // This default export looks redundant, but it allows TS to import this
71
- // commonjs style module.
72
- module.exports.default = RoomleToolsCore;
73
- } else if (typeof define === 'function' && define['amd'])
74
- define([], () => RoomleToolsCore);
1
+ var RoomleToolsCore=(()=>{var _scriptName=globalThis.document?.currentScript?.src;return async function(moduleArg={}){var moduleRtn;var m=moduleArg,aa=!!globalThis.window,ba=!!globalThis.WorkerGlobalScope,ca=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type,da="./this.program",ea=(b,a)=>{throw a;};"undefined"!=typeof __filename&&(_scriptName=__filename);var p="",fa,ha;
2
+ if(ca){var fs=require("node:fs");p=__dirname+"/";ha=b=>{b=ia(b)?new URL(b):b;return fs.readFileSync(b)};fa=async b=>{b=ia(b)?new URL(b):b;return fs.readFileSync(b,void 0)};1<process.argv.length&&(da=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);ea=(b,a)=>{process.exitCode=b;throw a;}}else if(aa||ba){try{p=(new URL(".",_scriptName)).href}catch{}fa=async b=>{b=await fetch(b,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);}}
3
+ var ja=console.log.bind(console),t=console.error.bind(console),u,w=!1,y,ia=b=>b.startsWith("file://"),ka,la,ma=!1;function na(){var b=oa.buffer;pa=new Int8Array(b);B=new Int16Array(b);C=new Uint8Array(b);E=new Uint16Array(b);F=new Int32Array(b);G=new Uint32Array(b);qa=new Float32Array(b);ra=new Float64Array(b);sa=new BigInt64Array(b);ta=new BigUint64Array(b)}
4
+ function ua(b){m.onAbort?.(b);b=`Aborted(${b})`;t(b);w=!0;b+=". Build with -sASSERTIONS for more info.";ma&&va();b=new WebAssembly.RuntimeError(b);la?.(b);throw b;}var wa;async function xa(b){if(!u)try{var a=await fa(b);return new Uint8Array(a)}catch{}if(b==wa&&u)b=new Uint8Array(u);else if(ha)b=ha(b);else throw"both async and sync fetching of the wasm failed";return b}
5
+ async function ya(b,a){try{var c=await xa(b);return await WebAssembly.instantiate(c,a)}catch(d){t(`failed to asynchronously prepare wasm: ${d}`),ua(d)}}async function za(b){var a=wa;if(!u&&!ca)try{var c=fetch(a,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,b)}catch(d){t(`wasm streaming compile failed: ${d}`),t("falling back to ArrayBuffer instantiation")}return ya(a,b)}
6
+ class Aa{name="ExitStatus";constructor(b){this.message=`Program terminated with exit(${b})`;this.status=b}}var B,F,sa,pa,qa,ra,E,G,ta,C,Ba=b=>{for(;0<b.length;)b.shift()(m)},Ca=[],Da=[],Ea=()=>{var b=m.preRun.shift();Da.push(b)},Fa=!0,Ga={},Ha=b=>{for(;b.length;){var a=b.pop();b.pop()(a)}};function H(b){return this.Y(G[b>>2])}
7
+ var I={},J={},Ia={},Ja=class extends Error{constructor(b){super(b);this.name="InternalError"}},L=(b,a,c)=>{function d(h){h=c(h);if(h.length!==b.length)throw new Ja("Mismatched type converter count");for(var l=0;l<b.length;++l)K(b[l],h[l])}b.forEach(h=>Ia[h]=a);var e=Array(a.length),g=[],f=0;for(let [h,l]of a.entries())J.hasOwnProperty(l)?e[h]=J[l]:(g.push(l),I.hasOwnProperty(l)||(I[l]=[]),I[l].push(()=>{e[h]=J[l];++f;f===g.length&&d(e)}));0===g.length&&d(e)},M=b=>{for(var a="";;){var c=C[b++];if(!c)return a;
8
+ a+=String.fromCharCode(c)}},N=class extends Error{constructor(b){super(b);this.name="BindingError"}},La=b=>{throw new N(b);};function Ma(b,a,c={}){var d=a.name;if(!b)throw new N(`type "${d}" must have a positive integer typeid pointer`);if(J.hasOwnProperty(b)){if(c.Ja)return;throw new N(`Cannot register type '${d}' twice`);}J[b]=a;delete Ia[b];I.hasOwnProperty(b)&&(a=I[b],delete I[b],a.forEach(e=>e()))}function K(b,a,c={}){return Ma(b,a,c)}
9
+ var Na=(b,a,c)=>{switch(a){case 1:return c?d=>pa[d]:d=>C[d];case 2:return c?d=>B[d>>1]:d=>E[d>>1];case 4:return c?d=>F[d>>2]:d=>G[d>>2];case 8:return c?d=>sa[d>>3]:d=>ta[d>>3];default:throw new TypeError(`invalid integer width (${a}): ${b}`);}},Oa=b=>{throw new N(b.W.$.X.name+" instance already deleted");},Pa=!1,Qa=()=>{},O=b=>{if(!globalThis.FinalizationRegistry)return O=a=>a,b;Pa=new FinalizationRegistry(a=>{a=a.W;--a.count.value;0===a.count.value&&(a.ea?a.ha.ia(a.ea):a.$.X.ia(a.Z))});O=a=>{var c=
10
+ a.W;c.ea&&Pa.register(a,{W:c},a);return a};Qa=a=>{Pa.unregister(a)};return O(b)},Ra=[];function Sa(){}
11
+ var Ta=(b,a)=>Object.defineProperty(a,"name",{value:b}),Ua={},Va=(b,a,c)=>{if(void 0===b[a].da){var d=b[a];b[a]=function(...e){if(!b[a].da.hasOwnProperty(e.length))throw new N(`Function '${c}' called with an invalid number of arguments (${e.length}) - expects one of (${b[a].da})!`);return b[a].da[e.length].apply(this,e)};b[a].da=[];b[a].da[d.ja]=d}},P=(b,a,c)=>{if(m.hasOwnProperty(b)){if(void 0===c||void 0!==m[b].da&&void 0!==m[b].da[c])throw new N(`Cannot register public name '${b}' twice`);Va(m,
12
+ b,b);if(m[b].da.hasOwnProperty(c))throw new N(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);m[b].da[c]=a}else m[b]=a,m[b].ja=c},Wa=b=>{b=b.replace(/[^a-zA-Z0-9_]/g,"$");var a=b.charCodeAt(0);return 48<=a&&57>=a?`_${b}`:b};function Xa(b,a,c,d,e,g,f,h){this.name=b;this.constructor=a;this.la=c;this.ia=d;this.fa=e;this.Ea=g;this.oa=f;this.Ca=h;this.La=[]}
13
+ var Ya=(b,a,c)=>{for(;a!==c;){if(!a.oa)throw new N(`Expected null or instance of ${c.name}, got an instance of ${a.name}`);b=a.oa(b);a=a.fa}return b},Za=b=>{if(null===b)return"null";var a=typeof b;return"object"===a||"array"===a||"function"===a?b.toString():""+b};
14
+ function $a(b,a){if(null===a){if(this.ra)throw new N(`null is not a valid ${this.name}`);return 0}if(!a.W)throw new N(`Cannot pass "${Za(a)}" as a ${this.name}`);if(!a.W.Z)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);return Ya(a.W.Z,a.W.$.X,this.X)}
15
+ function ab(b,a){if(null===a){if(this.ra)throw new N(`null is not a valid ${this.name}`);if(this.qa){var c=this.ta();null!==b&&b.push(this.ia,c);return c}return 0}if(!a||!a.W)throw new N(`Cannot pass "${Za(a)}" as a ${this.name}`);if(!a.W.Z)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.pa&&a.W.$.pa)throw new N(`Cannot convert argument of type ${a.W.ha?a.W.ha.name:a.W.$.name} to parameter type ${this.name}`);c=Ya(a.W.Z,a.W.$.X,this.X);if(this.qa){if(void 0===
16
+ a.W.ea)throw new N("Passing raw pointer to smart pointer is illegal");switch(this.Qa){case 0:if(a.W.ha===this)c=a.W.ea;else throw new N(`Cannot convert argument of type ${a.W.ha?a.W.ha.name:a.W.$.name} to parameter type ${this.name}`);break;case 1:c=a.W.ea;break;case 2:if(a.W.ha===this)c=a.W.ea;else{var d=a.clone();c=this.Ma(c,Q(()=>d["delete"]()));null!==b&&b.push(this.ia,c)}break;default:throw new N("Unsupported sharing policy");}}return c}
17
+ function bb(b,a){if(null===a){if(this.ra)throw new N(`null is not a valid ${this.name}`);return 0}if(!a.W)throw new N(`Cannot pass "${Za(a)}" as a ${this.name}`);if(!a.W.Z)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(a.W.$.pa)throw new N(`Cannot convert argument of type ${a.W.$.name} to parameter type ${this.name}`);return Ya(a.W.Z,a.W.$.X,this.X)}
18
+ var cb=(b,a,c)=>{if(a===c)return b;if(void 0===c.fa)return null;b=cb(b,a,c.fa);return null===b?null:c.Ca(b)},db={},eb=(b,a)=>{if(void 0===a)throw new N("ptr should not be undefined");for(;b.fa;)a=b.oa(a),b=b.fa;return db[a]},fb=(b,a)=>{if(!a.$||!a.Z)throw new Ja("makeClassHandle requires ptr and ptrType");if(!!a.ha!==!!a.ea)throw new Ja("Both smartPtrType and smartPtr must be specified");a.count={value:1};return O(Object.create(b,{W:{value:a,writable:!0}}))};
19
+ function R(b,a,c,d,e,g,f,h,l,n,k){this.name=b;this.X=a;this.ra=c;this.pa=d;this.qa=e;this.Ka=g;this.Qa=f;this.ya=h;this.ta=l;this.Ma=n;this.ia=k;e||void 0!==a.fa?this.aa=ab:(this.aa=d?$a:bb,this.ba=null)}var gb=(b,a,c)=>{if(!m.hasOwnProperty(b))throw new Ja("Replacing nonexistent public symbol");void 0!==m[b].da&&void 0!==c?m[b].da[c]=a:(m[b]=a,m[b].ja=c)},S=(b,a)=>{b=M(b);var c=hb.get(a);if("function"!=typeof c)throw new N(`unknown function pointer with signature ${b}: ${a}`);return c};
20
+ class ib extends Error{}var kb=b=>{b=jb(b);var a=M(b);T(b);return a},lb=(b,a)=>{function c(g){e[g]||J[g]||(Ia[g]?Ia[g].forEach(c):(d.push(g),e[g]=!0))}var d=[],e={};a.forEach(c);throw new ib(`${b}: `+d.map(kb).join([", "]));},mb=(b,a)=>{for(var c=[],d=0;d<b;d++)c.push(G[a+4*d>>2]);return c};function nb(b){for(var a=1;a<b.length;++a)if(null!==b[a]&&void 0===b[a].ba)return!0;return!1}
21
+ function ob(b,a,c,d,e,g){var f=a.length;if(2>f)throw new N("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==a[1]&&null!==c,l=nb(a);c=!a[0].xa;var n=a[0],k=a[1];d=[b,La,d,e,Ha,n.Y.bind(n),k?.aa.bind(k)];for(e=2;e<f;++e)n=a[e],d.push(n.aa.bind(n));if(!l)for(e=h?1:2;e<a.length;++e)null!==a[e].ba&&d.push(a[e].ba);l=nb(a);e=a.length-2;k=[];n=["fn"];h&&n.push("thisWired");for(f=0;f<e;++f)k.push(`arg${f}`),n.push(`arg${f}Wired`);k=k.join(",");n=n.join(",");k=
22
+ `return function (${k}) {\n`;l&&(k+="var destructors = [];\n");var r=l?"destructors":"null",q="humanName throwBindingError invoker fn runDestructors fromRetWire toClassParamWire".split(" ");h&&(k+=`var thisWired = toClassParamWire(${r}, this);\n`);for(f=0;f<e;++f){var v=`toArg${f}Wire`;k+=`var arg${f}Wired = ${v}(${r}, arg${f});\n`;q.push(v)}k+=(c||g?"var rv = ":"")+`invoker(${n});\n`;if(l)k+="runDestructors(destructors);\n";else for(f=h?1:2;f<a.length;++f)g=1===f?"thisWired":"arg"+(f-2)+"Wired",
23
+ null!==a[f].ba&&(k+=`${g}_dtor(${g});\n`,q.push(`${g}_dtor`));c&&(k+="var ret = fromRetWire(rv);\nreturn ret;\n");a=(new Function(q,k+"}\n"))(...d);return Ta(b,a)}
24
+ var pb=b=>{b=b.trim();const a=b.indexOf("(");return-1===a?b:b.slice(0,a)},qb=[],U=[0,1,,1,null,1,!0,1,!1,1],rb=[],sb=b=>{if(9<b&&0===--U[b+1]){var a=U[b];U[b]=void 0;var c=rb[b];c&&(rb[b]=void 0,c(a));qb.push(b)}},X=b=>{if(!b)throw new N(`Cannot use deleted val. handle = ${b}`);return U[b]},Q=b=>{switch(b){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const a=qb.pop()||U.length;U[a]=b;U[a+1]=1;return a}},ub={name:"emscripten::val",Y:b=>{var a=X(b);sb(b);return a},
25
+ aa:(b,a)=>Q(a),ga:H,ba:null},vb=(b,a,c)=>{switch(a){case 1:return c?function(d){return this.Y(pa[d])}:function(d){return this.Y(C[d])};case 2:return c?function(d){return this.Y(B[d>>1])}:function(d){return this.Y(E[d>>1])};case 4:return c?function(d){return this.Y(F[d>>2])}:function(d){return this.Y(G[d>>2])};default:throw new TypeError(`invalid integer width (${a}): ${b}`);}},wb=(b,a)=>{var c=J[b];if(void 0===c)throw b=`${a} has unknown type ${kb(b)}`,new N(b);return c},xb=(b,a)=>{switch(a){case 4:return function(c){return this.Y(qa[c>>
26
+ 2])};case 8:return function(c){return this.Y(ra[c>>3])};default:throw new TypeError(`invalid float width (${a}): ${b}`);}},Y=(b,a,c)=>{var d=C;if(!(0<c))return 0;var e=a;c=a+c-1;for(var g=0;g<b.length;++g){var f=b.codePointAt(g);if(127>=f){if(a>=c)break;d[a++]=f}else if(2047>=f){if(a+1>=c)break;d[a++]=192|f>>6;d[a++]=128|f&63}else if(65535>=f){if(a+2>=c)break;d[a++]=224|f>>12;d[a++]=128|f>>6&63;d[a++]=128|f&63}else{if(a+3>=c)break;d[a++]=240|f>>18;d[a++]=128|f>>12&63;d[a++]=128|f>>6&63;d[a++]=128|
27
+ f&63;g++}}d[a]=0;return a-e},yb=b=>{for(var a=0,c=0;c<b.length;++c){var d=b.charCodeAt(c);127>=d?a++:2047>=d?a+=2:55296<=d&&57343>=d?(a+=4,++c):a+=3}return a},zb=new TextDecoder,Ab=(b,a,c,d)=>{c=a+c;if(d)return c;for(;b[a]&&!(a>=c);)++a;return a},Bb=new TextDecoder("utf-16le"),Cb=(b,a,c)=>{b>>=1;return Bb.decode(E.subarray(b,Ab(E,b,a/2,c)))},Db=(b,a,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=a;c=c<2*b.length?c/2:b.length;for(var e=0;e<c;++e)B[a>>1]=b.charCodeAt(e),a+=2;B[a>>1]=0;return a-d},Eb=
28
+ b=>2*b.length,Fb=(b,a,c)=>{var d="";b>>=2;for(var e=0;!(e>=a/4);e++){var g=G[b+e];if(!g&&!c)break;d+=String.fromCodePoint(g)}return d},Gb=(b,a,c)=>{c??=2147483647;if(4>c)return 0;var d=a;c=d+c-4;for(var e=0;e<b.length;++e){var g=b.codePointAt(e);65535<g&&e++;F[a>>2]=g;a+=4;if(a+4>c)break}F[a>>2]=0;return a-d},Hb=b=>{for(var a=0,c=0;c<b.length;++c)65535<b.codePointAt(c)&&c++,a+=4;return a},Ib=0,Jb=[],Kb=b=>{var a=Jb.length;Jb.push(b);return a},Lb=(b,a)=>{for(var c=Array(b),d=0;d<b;++d)c[d]=wb(G[a+
29
+ 4*d>>2],`parameter ${d}`);return c},Mb=(b,a,c)=>{var d=[];b=b(d,c);d.length&&(G[a>>2]=Q(d));return b},Nb={},Ob=b=>{var a=Nb[b];return void 0===a?M(b):a},Z={},Pb=b=>{b instanceof Aa||"unwind"==b||ea(1,b)},Qb=b=>{y=b;Fa||0<Ib||(m.onExit?.(b),w=!0);ea(b,new Aa(b))},Rb=b=>{if(!w)try{b()}catch(a){Pb(a)}finally{if(!(Fa||0<Ib))try{y=b=y,Qb(b)}catch(a){Pb(a)}}},Sb={},Ub=()=>{if(!Tb){var b={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-",
30
+ "_")+".UTF-8",_:da||"./this.program"},a;for(a in Sb)void 0===Sb[a]?delete b[a]:b[a]=Sb[a];var c=[];for(a in b)c.push(`${a}=${b[a]}`);Tb=c}return Tb},Tb,Vb=[null,[],[]];
31
+ (()=>{let b=Sa.prototype;Object.assign(b,{isAliasOf:function(c){if(!(this instanceof Sa&&c instanceof Sa))return!1;var d=this.W.$.X,e=this.W.Z;c.W=c.W;var g=c.W.$.X;for(c=c.W.Z;d.fa;)e=d.oa(e),d=d.fa;for(;g.fa;)c=g.oa(c),g=g.fa;return d===g&&e===c},clone:function(){this.W.Z||Oa(this);if(this.W.na)return this.W.count.value+=1,this;var c=O,d=Object,e=d.create,g=Object.getPrototypeOf(this),f=this.W;c=c(e.call(d,g,{W:{value:{count:f.count,ma:f.ma,na:f.na,Z:f.Z,$:f.$,ea:f.ea,ha:f.ha}}}));c.W.count.value+=
32
+ 1;c.W.ma=!1;return c},["delete"](){this.W.Z||Oa(this);if(this.W.ma&&!this.W.na)throw new N("Object already scheduled for deletion");Qa(this);var c=this.W;--c.count.value;0===c.count.value&&(c.ea?c.ha.ia(c.ea):c.$.X.ia(c.Z));this.W.na||(this.W.ea=void 0,this.W.Z=void 0)},isDeleted:function(){return!this.W.Z},deleteLater:function(){this.W.Z||Oa(this);if(this.W.ma&&!this.W.na)throw new N("Object already scheduled for deletion");Ra.push(this);this.W.ma=!0;return this}});const a=Symbol.dispose;a&&(b[a]=
33
+ b["delete"])})();
34
+ Object.assign(R.prototype,{Fa(b){this.ya&&(b=this.ya(b));return b},va(b){this.ia?.(b)},ga:H,Y:function(b){function a(){return this.qa?fb(this.X.la,{$:this.Ka,Z:c,ha:this,ea:b}):fb(this.X.la,{$:this,Z:b})}var c=this.Fa(b);if(!c)return this.va(b),null;var d=eb(this.X,c);if(void 0!==d){if(0===d.W.count.value)return d.W.Z=c,d.W.ea=b,d.clone();d=d.clone();this.va(b);return d}d=this.X.Ea(c);d=Ua[d];if(!d)return a.call(this);d=this.pa?d.Ba:d.pointerType;var e=cb(c,this.X,d.X);return null===e?a.call(this):
35
+ this.qa?fb(d.X.la,{$:d,Z:e,ha:this,ea:b}):fb(d.X.la,{$:d,Z:e})}});m.noExitRuntime&&(Fa=m.noExitRuntime);m.print&&(ja=m.print);m.printErr&&(t=m.printErr);m.wasmBinary&&(u=m.wasmBinary);m.thisProgram&&(da=m.thisProgram);if(m.preInit)for("function"==typeof m.preInit&&(m.preInit=[m.preInit]);0<m.preInit.length;)m.preInit.shift()();
36
+ var jb,T,Wb,Xb,Yb,va,oa,hb,Zb={s:()=>ua(""),K:b=>{var a=Ga[b];delete Ga[b];var c=a.ta,d=a.ia,e=a.wa,g=e.map(f=>f.Ia).concat(e.map(f=>f.Oa));L([b],g,f=>{var h={},l,n;for([l,n]of e.entries()){const k=f[l],r=n.Ga,q=n.Ha,v=f[l+e.length],x=n.Na,A=n.Pa;h[n.Da]={read:D=>k.Y(r(q,D)),write:(D,V)=>{var z=[];x(A,D,v.aa(z,V));Ha(z)},optional:k.optional}}return[{name:a.name,Y:k=>{var r={},q;for(q in h)r[q]=h[q].read(k);d(k);return r},aa:(k,r)=>{for(var q in h)if(!(q in r||h[q].optional))throw new TypeError(`Missing field: "${q}"`);
37
+ var v=c();for(q in h)h[q].write(v,r[q]);null!==k&&k.push(d,v);return v},ga:H,ba:d}]})},l:(b,a,c,d,e)=>{a=M(a);d=0n===d;let g=f=>f;if(d){const f=8*c;g=h=>BigInt.asUintN(f,h);e=g(e)}K(b,{name:a,Y:g,aa:(f,h)=>{"number"==typeof h&&(h=BigInt(h));return h},ga:Na(a,c,!d),ba:null})},F:(b,a,c,d)=>{a=M(a);K(b,{name:a,Y:function(e){return!!e},aa:function(e,g){return g?c:d},ga:function(e){return this.Y(C[e])},ba:null})},J:(b,a,c,d,e,g,f,h,l,n,k,r,q)=>{k=M(k);g=S(e,g);h&&=S(f,h);n&&=S(l,n);q=S(r,q);var v=Wa(k);
38
+ P(v,function(){lb(`Cannot construct ${k} due to unbound types`,[d])});L([b,a,c],d?[d]:[],x=>{x=x[0];if(d){var A=x.X;var D=A.la}else D=Sa.prototype;x=Ta(k,function(...Ka){if(Object.getPrototypeOf(this)!==V)throw new N(`Use 'new' to construct ${k}`);if(void 0===z.ka)throw new N(`${k} has no accessible constructor`);var tb=z.ka[Ka.length];if(void 0===tb)throw new N(`Tried to invoke ctor of ${k} with invalid number of parameters (${Ka.length}) - expected (${Object.keys(z.ka).toString()}) parameters instead!`);
39
+ return tb.apply(this,Ka)});var V=Object.create(D,{constructor:{value:x}});x.prototype=V;var z=new Xa(k,x,V,q,A,g,h,n);if(z.fa){var W;(W=z.fa).ua??(W.ua=[]);z.fa.ua.push(z)}A=new R(k,z,!0,!1,!1);W=new R(k+"*",z,!1,!1,!1);D=new R(k+" const*",z,!1,!0,!1);Ua[b]={pointerType:W,Ba:D};gb(v,x);return[A,W,D]})},I:(b,a,c,d,e,g)=>{var f=mb(a,c);e=S(d,e);L([],[b],h=>{h=h[0];var l=`constructor ${h.name}`;void 0===h.X.ka&&(h.X.ka=[]);if(void 0!==h.X.ka[a-1])throw new N(`Cannot register multiple constructors with identical number of parameters (${a-
40
+ 1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);h.X.ka[a-1]=()=>{lb(`Cannot construct ${h.name} due to unbound types`,f)};L([],f,n=>{n.splice(1,0,null);h.X.ka[a-1]=ob(l,n,null,e,g);return[]});return[]})},e:(b,a,c,d,e,g,f,h,l)=>{var n=mb(c,d);a=M(a);a=pb(a);g=S(e,g);L([],[b],k=>{function r(){lb(`Cannot call ${q} due to unbound types`,n)}k=k[0];var q=`${k.name}.${a}`;a.startsWith("@@")&&(a=Symbol[a.substring(2)]);h&&k.X.La.push(a);
41
+ var v=k.X.la,x=v[a];void 0===x||void 0===x.da&&x.className!==k.name&&x.ja===c-2?(r.ja=c-2,r.className=k.name,v[a]=r):(Va(v,a,q),v[a].da[c-2]=r);L([],n,A=>{A=ob(q,A,k,g,f,l);void 0===v[a].da?(A.ja=c-2,v[a]=A):v[a].da[c-2]=A;return[]});return[]})},D:b=>K(b,ub),y:(b,a,c,d,e)=>{a=M(a);e=0===e?"object":1===e?"number":"string";switch(e){case "object":function f(){}f.values={};K(b,{name:a,constructor:f,valueType:e,Y:function(h){return this.constructor.values[h]},aa:(h,l)=>l.value,ga:vb(a,c,d),ba:null});
42
+ P(a,f);break;case "number":var g={};K(b,{name:a,sa:g,valueType:e,Y:h=>h,aa:(h,l)=>l,ga:vb(a,c,d),ba:null});P(a,g);delete m[a].ja;break;case "string":g={},K(b,{name:a,Aa:{},za:{},sa:g,valueType:e,Y:function(h){return this.za[h]},aa:function(h,l){return this.Aa[l]},ga:vb(a,c,d),ba:null}),P(a,g),delete m[a].ja}},i:(b,a,c)=>{var d=wb(b,"enum");a=M(a);switch(d.valueType){case "object":b=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:Ta(`${d.name}_${a}`,function(){})}});
43
+ b.values[c]=d;b[a]=d;break;case "number":d.sa[a]=c;break;case "string":d.Aa[a]=c,d.za[c]=a,d.sa[a]=a}},k:(b,a,c)=>{a=M(a);K(b,{name:a,Y:d=>d,aa:(d,e)=>e,ga:xb(a,c),ba:null})},M:(b,a,c,d,e,g,f)=>{var h=mb(a,c);b=M(b);b=pb(b);e=S(d,e);P(b,function(){lb(`Cannot call ${b} due to unbound types`,h)},a-1);L([],h,l=>{l=[l[0],null].concat(l.slice(1));gb(b,ob(b,l,null,e,g,f),a-1);return[]})},b:(b,a,c,d,e)=>{a=M(a);let g=h=>h;if(0===d){var f=32-8*c;g=h=>h<<f>>>f;e=g(e)}K(b,{name:a,Y:g,aa:(h,l)=>l,ga:Na(a,c,
44
+ 0!==d),ba:null})},a:(b,a,c)=>{function d(g){return new e(pa.buffer,G[g+4>>2],G[g>>2])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][a];c=M(c);K(b,{name:c,Y:d,ga:d},{Ja:!0})},H:(b,a,c,d,e,g,f,h,l,n,k,r)=>{c=M(c);g=S(e,g);h=S(f,h);n=S(l,n);r=S(k,r);L([b],[a],q=>{q=q[0];return[new R(c,q.X,!1,!1,!0,q,d,g,h,n,r)]})},E:(b,a)=>{a=M(a);K(b,{name:a,Y(c){var d=(d=c+4)?zb.decode(C.subarray(d,Ab(C,d,G[c>>2],!0))):"";T(c);return d},
45
+ aa(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e="string"==typeof d;if(!(e||ArrayBuffer.isView(d)&&1==d.BYTES_PER_ELEMENT))throw new N("Cannot pass non-string to std::string");var g=e?yb(d):d.length;var f=Wb(4+g+1),h=f+4;G[f>>2]=g;e?Y(d,h,g+1):C.set(d,h);null!==c&&c.push(T,f);return f},ga:H,ba(c){T(c)}})},h:(b,a,c)=>{c=M(c);if(2===a){var d=Cb;var e=Db;var g=Eb}else d=Fb,e=Gb,g=Hb;K(b,{name:c,Y:f=>{var h=d(f+4,G[f>>2]*a,!0);T(f);return h},aa:(f,h)=>{if("string"!=typeof h)throw new N(`Cannot pass non-string to C++ string type ${c}`);
46
+ var l=g(h),n=Wb(4+l+a);G[n>>2]=l/a;e(h,n+4,l+a);null!==f&&f.push(T,n);return n},ga:H,ba(f){T(f)}})},o:(b,a,c,d,e,g)=>{Ga[b]={name:M(a),ta:S(c,d),ia:S(e,g),wa:[]}},f:(b,a,c,d,e,g,f,h,l,n)=>{Ga[b].wa.push({Da:M(a),Ia:c,Ga:S(d,e),Ha:g,Oa:f,Na:S(h,l),Pa:n})},G:(b,a)=>{a=M(a);K(b,{xa:!0,name:a,Y:()=>{},aa:()=>{}})},q:()=>{Fa=!1;Ib=0},d:(b,a,c)=>{var [d,...e]=Lb(b,a);a=d.aa.bind(d);var g=e.map(l=>l.ga.bind(l));b--;var f={toValue:X};b=g.map((l,n)=>{var k=`argFromPtr${n}`;f[k]=l;return`${k}(args${n?"+"+8*
47
+ n:""})`});switch(c){case 0:var h="toValue(handle)";break;case 2:h="new (toValue(handle))";break;case 3:h="";break;case 1:f.getStringOrSymbol=Ob,h="toValue(handle)[getStringOrSymbol(methodName)]"}h+=`(${b})`;d.xa||(f.toReturnWire=a,f.emval_returnValue=Mb,h=`return emval_returnValue(toReturnWire, destructorsRef, ${h})`);h=`return function (handle, methodName, destructorsRef, args) {\n${h}\n}`;c=(new Function(Object.keys(f),h))(...Object.values(f));h=`methodCaller<(${e.map(l=>l.name)}) => ${d.name}>`;
48
+ return Kb(Ta(h,c))},L:sb,C:b=>{if(!b)return Q(globalThis);b=Ob(b);return Q(globalThis[b])},j:(b,a)=>{b=X(b);a=X(a);return Q(b[a])},m:b=>{9<b&&(U[b+1]+=1)},c:(b,a,c,d,e)=>Jb[b](a,c,d,e),g:b=>Q(Ob(b)),n:b=>{var a=X(b);Ha(a);sb(b)},r:(b,a)=>{Z[b]&&(clearTimeout(Z[b].id),delete Z[b]);if(!a)return 0;var c=setTimeout(()=>{delete Z[b];Rb(()=>Yb(b,performance.now()))},a);Z[b]={id:c,Ra:a};return 0},t:(b,a,c,d)=>{var e=(new Date).getFullYear(),g=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();
49
+ G[b>>2]=60*Math.max(g,e);F[a>>2]=Number(g!=e);a=f=>{var h=Math.abs(f);return`UTC${0<=f?"-":"+"}${String(Math.floor(h/60)).padStart(2,"0")}${String(h%60).padStart(2,"0")}`};b=a(g);a=a(e);e<g?(Y(b,c,17),Y(a,d,17)):(Y(b,d,17),Y(a,c,17))},u:b=>{var a=C.length;b>>>=0;if(2147483648<b)return!1;for(var c=1;4>=c;c*=2){var d=a*(1+.2/c);d=Math.min(d,b+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(b,d)/65536))-oa.buffer.byteLength+65535)/65536|0;try{oa.grow(d);na();var e=1;break a}catch(g){}e=
50
+ void 0}if(e)return!0}return!1},w:(b,a)=>{var c=0,d=0,e;for(e of Ub()){var g=a+c;G[b+d>>2]=g;c+=Y(e,g,Infinity)+1;d+=4}return 0},x:(b,a)=>{var c=Ub();G[b>>2]=c.length;b=0;for(var d of c)b+=yb(d)+1;G[a>>2]=b;return 0},z:()=>52,B:()=>52,v:function(){return 70},A:(b,a,c,d)=>{for(var e=0,g=0;g<c;g++){var f=G[a>>2],h=G[a+4>>2];a+=8;for(var l=0;l<h;l++){var n=b,k=C[f+l],r=Vb[n];0===k||10===k?(n=1===n?ja:t,k=Ab(r,0),k=zb.decode(r.buffer?r.subarray(0,k):new Uint8Array(r.slice(0,k))),n(k),r.length=0):r.push(k)}e+=
51
+ h}G[d>>2]=e;return 0},p:Qb},$b;$b=await (async function(){function b(c){c=$b=c.exports;jb=c.P;T=c.Q;Wb=c.R;Xb=m._main=c.S;Yb=c.U;va=c.V;oa=m.wasmMemory=c.N;hb=c.T;na();return $b}var a={a:Zb};if(m.instantiateWasm)return new Promise(c=>{m.instantiateWasm(a,(d,e)=>{c(b(d,e))})});wa??=m.locateFile?m.locateFile("RoomleToolsCore.wasm",p):p+"RoomleToolsCore.wasm";return b((await za(a)).instance)}());
52
+ (function(){function b(){m.calledRun=!0;if(!w){ma=!0;$b.O();ka?.(m);m.onRuntimeInitialized?.();if(!m.noInitialRun){var a=Xb;try{var c=a(0,0);y=c;Qb(c)}catch(d){Pb(d)}}if(m.postRun)for("function"==typeof m.postRun&&(m.postRun=[m.postRun]);m.postRun.length;)a=m.postRun.shift(),Ca.push(a);Ba(Ca)}}if(m.preRun)for("function"==typeof m.preRun&&(m.preRun=[m.preRun]);m.preRun.length;)Ea();Ba(Da);m.setStatus?(m.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>m.setStatus(""),1);b()},1)):b()})();
53
+ ma?moduleRtn=m:moduleRtn=new Promise((b,a)=>{ka=b;la=a});
54
+ ;return moduleRtn}})();if(typeof exports==="object"&&typeof module==="object"){module.exports=RoomleToolsCore;module.exports.default=RoomleToolsCore}else if(typeof define==="function"&&define["amd"])define([],()=>RoomleToolsCore);
Binary file
@@ -1,5 +1,5 @@
1
1
  import { a as e, c as t, l as n, t as r, x as i } from "./Object3D-DSjIOhON.mjs";
2
- import { a, i as o, n as s, r as c, t as l } from "./BufferGeometry-DLEagG41.mjs";
2
+ import { a, i as o, n as s, r as c, t as l } from "./BufferGeometry-BLeRuMkh.mjs";
3
3
  //#region ../../node_modules/three/src/materials/LineBasicMaterial.js
4
4
  var u = class extends c {
5
5
  constructor(e) {
@@ -151,4 +151,4 @@ var b = /* @__PURE__ */ new n(), x = /* @__PURE__ */ new n(), S = class extends
151
151
  //#endregion
152
152
  export { w as SpotLightHelper };
153
153
 
154
- //# sourceMappingURL=SpotLightHelper-DqsfqCrs.mjs.map
154
+ //# sourceMappingURL=SpotLightHelper-aXFW8qaJ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpotLightHelper-DqsfqCrs.mjs","names":[],"sources":["../../../../node_modules/three/src/materials/LineBasicMaterial.js","../../../../node_modules/three/src/objects/Line.js","../../../../node_modules/three/src/objects/LineSegments.js","../../../../node_modules/three/src/helpers/SpotLightHelper.js"],"sourcesContent":["import { Material } from './Material.js';\nimport { Color } from '../math/Color.js';\n\n/**\n * A material for rendering line primitives.\n *\n * Materials define the appearance of renderable 3D objects.\n *\n * ```js\n * const material = new THREE.LineBasicMaterial( { color: 0xffffff } );\n * ```\n *\n * @augments Material\n */\nclass LineBasicMaterial extends Material {\n\n\t/**\n\t * Constructs a new line basic material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineBasicMaterial = true;\n\n\t\tthis.type = 'LineBasicMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff );\n\n\t\t/**\n\t\t * Sets the color of the lines using data from a texture. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * Controls line thickness or lines.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}. WebGL and WebGPU\n\t\t * ignore this setting and always render line primitives with a\n\t\t * width of one pixel.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.linewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of line ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('butt'|'round'|'square')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.linecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of line joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.linejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.linewidth = source.linewidth;\n\t\tthis.linecap = source.linecap;\n\t\tthis.linejoin = source.linejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nexport { LineBasicMaterial };\n","import { Sphere } from '../math/Sphere.js';\nimport { Ray } from '../math/Ray.js';\nimport { Matrix4 } from '../math/Matrix4.js';\nimport { Object3D } from '../core/Object3D.js';\nimport { Vector3 } from '../math/Vector3.js';\nimport { LineBasicMaterial } from '../materials/LineBasicMaterial.js';\nimport { BufferGeometry } from '../core/BufferGeometry.js';\nimport { Float32BufferAttribute } from '../core/BufferAttribute.js';\nimport { warn } from '../utils.js';\n\nconst _vStart = /*@__PURE__*/ new Vector3();\nconst _vEnd = /*@__PURE__*/ new Vector3();\n\nconst _inverseMatrix = /*@__PURE__*/ new Matrix4();\nconst _ray = /*@__PURE__*/ new Ray();\nconst _sphere = /*@__PURE__*/ new Sphere();\n\nconst _intersectPointOnRay = /*@__PURE__*/ new Vector3();\nconst _intersectPointOnSegment = /*@__PURE__*/ new Vector3();\n\n/**\n * A continuous line. The line are rendered by connecting consecutive\n * vertices with straight lines.\n *\n * ```js\n * const material = new THREE.LineBasicMaterial( { color: 0x0000ff } );\n *\n * const points = [];\n * points.push( new THREE.Vector3( - 10, 0, 0 ) );\n * points.push( new THREE.Vector3( 0, 10, 0 ) );\n * points.push( new THREE.Vector3( 10, 0, 0 ) );\n *\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const line = new THREE.Line( geometry, material );\n * scene.add( line );\n * ```\n *\n * @augments Object3D\n */\nclass Line extends Object3D {\n\n\t/**\n\t * Constructs a new line.\n\t *\n\t * @param {BufferGeometry} [geometry] - The line geometry.\n\t * @param {Material|Array<Material>} [material] - The line material.\n\t */\n\tconstructor( geometry = new BufferGeometry(), material = new LineBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLine = true;\n\n\t\tthis.type = 'Line';\n\n\t\t/**\n\t\t * The line geometry.\n\t\t *\n\t\t * @type {BufferGeometry}\n\t\t */\n\t\tthis.geometry = geometry;\n\n\t\t/**\n\t\t * The line material.\n\t\t *\n\t\t * @type {Material|Array<Material>}\n\t\t * @default LineBasicMaterial\n\t\t */\n\t\tthis.material = material;\n\n\t\t/**\n\t\t * A dictionary representing the morph targets in the geometry. The key is the\n\t\t * morph targets name, the value its attribute index. This member is `undefined`\n\t\t * by default and only set when morph targets are detected in the geometry.\n\t\t *\n\t\t * @type {Object<string,number>|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetDictionary = undefined;\n\n\t\t/**\n\t\t * An array of weights typically in the range `[0,1]` that specify how much of the morph\n\t\t * is applied. This member is `undefined` by default and only set when morph targets are\n\t\t * detected in the geometry.\n\t\t *\n\t\t * @type {Array<number>|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetInfluences = undefined;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Computes an array of distance values which are necessary for rendering dashed lines.\n\t * For each vertex in the geometry, the method calculates the cumulative length from the\n\t * current point to the very beginning of the line.\n\t *\n\t * @return {Line} A reference to this line.\n\t */\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\t// we assume non-indexed geometry\n\n\t\tif ( geometry.index === null ) {\n\n\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\tconst lineDistances = [ 0 ];\n\n\t\t\tfor ( let i = 1, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t_vStart.fromBufferAttribute( positionAttribute, i - 1 );\n\t\t\t\t_vEnd.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\tlineDistances[ i ] = lineDistances[ i - 1 ];\n\t\t\t\tlineDistances[ i ] += _vStart.distanceTo( _vEnd );\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t} else {\n\n\t\t\twarn( 'Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Computes intersection points between a casted ray and this line.\n\t *\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array<Object>} intersects - The target array that holds the intersection points.\n\t */\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Line.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere.copy( geometry.boundingSphere );\n\t\t_sphere.applyMatrix4( matrixWorld );\n\t\t_sphere.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix.copy( matrixWorld ).invert();\n\t\t_ray.copy( raycaster.ray ).applyMatrix4( _inverseMatrix );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tconst step = this.isLineSegments ? 2 : 1;\n\n\t\tconst index = geometry.index;\n\t\tconst attributes = geometry.attributes;\n\t\tconst positionAttribute = attributes.position;\n\n\t\tif ( index !== null ) {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\tconst a = index.getX( i );\n\t\t\t\tconst b = index.getX( i + 1 );\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray, localThresholdSq, a, b, i );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.isLineLoop ) {\n\n\t\t\t\tconst a = index.getX( end - 1 );\n\t\t\t\tconst b = index.getX( start );\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray, localThresholdSq, a, b, end - 1 );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray, localThresholdSq, i, i + 1, i );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.isLineLoop ) {\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray, localThresholdSq, end - 1, start, end - 1 );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Sets the values of {@link Line#morphTargetDictionary} and {@link Line#morphTargetInfluences}\n\t * to make sure existing morph targets can influence this 3D object.\n\t */\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection( object, raycaster, ray, thresholdSq, a, b, i ) {\n\n\tconst positionAttribute = object.geometry.attributes.position;\n\n\t_vStart.fromBufferAttribute( positionAttribute, a );\n\t_vEnd.fromBufferAttribute( positionAttribute, b );\n\n\tconst distSq = ray.distanceSqToSegment( _vStart, _vEnd, _intersectPointOnRay, _intersectPointOnSegment );\n\n\tif ( distSq > thresholdSq ) return;\n\n\t_intersectPointOnRay.applyMatrix4( object.matrixWorld ); // Move back to world space for distance calculation\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectPointOnRay );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\treturn {\n\n\t\tdistance: distance,\n\t\t// What do we want? intersection point on the ray or on the segment??\n\t\t// point: raycaster.ray.at( distance ),\n\t\tpoint: _intersectPointOnSegment.clone().applyMatrix4( object.matrixWorld ),\n\t\tindex: i,\n\t\tface: null,\n\t\tfaceIndex: null,\n\t\tbarycoord: null,\n\t\tobject: object\n\n\t};\n\n}\n\nexport { Line };\n","import { Line } from './Line.js';\nimport { Vector3 } from '../math/Vector3.js';\nimport { Float32BufferAttribute } from '../core/BufferAttribute.js';\nimport { warn } from '../utils.js';\n\nconst _start = /*@__PURE__*/ new Vector3();\nconst _end = /*@__PURE__*/ new Vector3();\n\n/**\n * A series of lines drawn between pairs of vertices.\n *\n * @augments Line\n */\nclass LineSegments extends Line {\n\n\t/**\n\t * Constructs a new line segments.\n\t *\n\t * @param {BufferGeometry} [geometry] - The line geometry.\n\t * @param {Material|Array<Material>} [material] - The line material.\n\t */\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineSegments = true;\n\n\t\tthis.type = 'LineSegments';\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\t// we assume non-indexed geometry\n\n\t\tif ( geometry.index === null ) {\n\n\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\tconst lineDistances = [];\n\n\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i += 2 ) {\n\n\t\t\t\t_start.fromBufferAttribute( positionAttribute, i );\n\t\t\t\t_end.fromBufferAttribute( positionAttribute, i + 1 );\n\n\t\t\t\tlineDistances[ i ] = ( i === 0 ) ? 0 : lineDistances[ i - 1 ];\n\t\t\t\tlineDistances[ i + 1 ] = lineDistances[ i ] + _start.distanceTo( _end );\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t} else {\n\n\t\t\twarn( 'LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nexport { LineSegments };\n","import { Vector3 } from '../math/Vector3.js';\nimport { Object3D } from '../core/Object3D.js';\nimport { LineSegments } from '../objects/LineSegments.js';\nimport { LineBasicMaterial } from '../materials/LineBasicMaterial.js';\nimport { Float32BufferAttribute } from '../core/BufferAttribute.js';\nimport { BufferGeometry } from '../core/BufferGeometry.js';\n\nconst _vector = /*@__PURE__*/ new Vector3();\n\n/**\n * This displays a cone shaped helper object for a {@link SpotLight}.\n *\n * When the spot light or its target are transformed or light properties are\n * changed, it's necessary to call the `update()` method of the respective helper.\n *\n * ```js\n * const spotLight = new THREE.SpotLight( 0xffffff );\n * spotLight.position.set( 10, 10, 10 );\n * scene.add( spotLight );\n *\n * const spotLightHelper = new THREE.SpotLightHelper( spotLight );\n * scene.add( spotLightHelper );\n * ```\n *\n * @augments Object3D\n */\nclass SpotLightHelper extends Object3D {\n\n\t/**\n\t * Constructs a new spot light helper.\n\t *\n\t * @param {HemisphereLight} light - The light to be visualized.\n\t * @param {number|Color|string} [color] - The helper's color. If not set, the helper will take\n\t * the color of the light.\n\t */\n\tconstructor( light, color ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * The light being visualized.\n\t\t *\n\t\t * @type {SpotLight}\n\t\t */\n\t\tthis.light = light;\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\t/**\n\t\t * The color parameter passed in the constructor.\n\t\t * If not set, the helper will take the color of the light.\n\t\t *\n\t\t * @type {number|Color|string}\n\t\t */\n\t\tthis.color = color;\n\n\t\tthis.type = 'SpotLightHelper';\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst positions = [\n\t\t\t0, 0, 0, \t0, 0, 1,\n\t\t\t0, 0, 0, \t1, 0, 1,\n\t\t\t0, 0, 0,\t- 1, 0, 1,\n\t\t\t0, 0, 0, \t0, 1, 1,\n\t\t\t0, 0, 0, \t0, - 1, 1\n\t\t];\n\n\t\tfor ( let i = 0, j = 1, l = 32; i < l; i ++, j ++ ) {\n\n\t\t\tconst p1 = ( i / l ) * Math.PI * 2;\n\t\t\tconst p2 = ( j / l ) * Math.PI * 2;\n\n\t\t\tpositions.push(\n\t\t\t\tMath.cos( p1 ), Math.sin( p1 ), 1,\n\t\t\t\tMath.cos( p2 ), Math.sin( p2 ), 1\n\t\t\t);\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { fog: false, toneMapped: false } );\n\n\t\tthis.cone = new LineSegments( geometry, material );\n\t\tthis.add( this.cone );\n\n\t\tthis.update();\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n\t/**\n\t * Updates the helper to match the position and direction of the\n\t * light being visualized.\n\t */\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\t\tthis.light.target.updateWorldMatrix( true, false );\n\n\t\t// update the local matrix based on the parent and light target transforms\n\t\tif ( this.parent ) {\n\n\t\t\tthis.parent.updateWorldMatrix( true );\n\n\t\t\tthis.matrix\n\t\t\t\t.copy( this.parent.matrixWorld )\n\t\t\t\t.invert()\n\t\t\t\t.multiply( this.light.matrixWorld );\n\n\t\t} else {\n\n\t\t\tthis.matrix.copy( this.light.matrixWorld );\n\n\t\t}\n\n\t\tthis.matrixWorld.copy( this.light.matrixWorld );\n\n\t\tconst coneLength = this.light.distance ? this.light.distance : 1000;\n\t\tconst coneWidth = coneLength * Math.tan( this.light.angle );\n\n\t\tthis.cone.scale.set( coneWidth, coneWidth, coneLength );\n\n\t\t_vector.setFromMatrixPosition( this.light.target.matrixWorld );\n\n\t\tthis.cone.lookAt( _vector );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.cone.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.cone.material.color.copy( this.light.color );\n\n\t\t}\n\n\t}\n\n}\n\n\nexport { SpotLightHelper };\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
1
+ {"version":3,"file":"SpotLightHelper-aXFW8qaJ.mjs","names":[],"sources":["../../../../node_modules/three/src/materials/LineBasicMaterial.js","../../../../node_modules/three/src/objects/Line.js","../../../../node_modules/three/src/objects/LineSegments.js","../../../../node_modules/three/src/helpers/SpotLightHelper.js"],"sourcesContent":["import { Material } from './Material.js';\nimport { Color } from '../math/Color.js';\n\n/**\n * A material for rendering line primitives.\n *\n * Materials define the appearance of renderable 3D objects.\n *\n * ```js\n * const material = new THREE.LineBasicMaterial( { color: 0xffffff } );\n * ```\n *\n * @augments Material\n */\nclass LineBasicMaterial extends Material {\n\n\t/**\n\t * Constructs a new line basic material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineBasicMaterial = true;\n\n\t\tthis.type = 'LineBasicMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff );\n\n\t\t/**\n\t\t * Sets the color of the lines using data from a texture. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * Controls line thickness or lines.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}. WebGL and WebGPU\n\t\t * ignore this setting and always render line primitives with a\n\t\t * width of one pixel.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.linewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of line ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('butt'|'round'|'square')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.linecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of line joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.linejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.linewidth = source.linewidth;\n\t\tthis.linecap = source.linecap;\n\t\tthis.linejoin = source.linejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nexport { LineBasicMaterial };\n","import { Sphere } from '../math/Sphere.js';\nimport { Ray } from '../math/Ray.js';\nimport { Matrix4 } from '../math/Matrix4.js';\nimport { Object3D } from '../core/Object3D.js';\nimport { Vector3 } from '../math/Vector3.js';\nimport { LineBasicMaterial } from '../materials/LineBasicMaterial.js';\nimport { BufferGeometry } from '../core/BufferGeometry.js';\nimport { Float32BufferAttribute } from '../core/BufferAttribute.js';\nimport { warn } from '../utils.js';\n\nconst _vStart = /*@__PURE__*/ new Vector3();\nconst _vEnd = /*@__PURE__*/ new Vector3();\n\nconst _inverseMatrix = /*@__PURE__*/ new Matrix4();\nconst _ray = /*@__PURE__*/ new Ray();\nconst _sphere = /*@__PURE__*/ new Sphere();\n\nconst _intersectPointOnRay = /*@__PURE__*/ new Vector3();\nconst _intersectPointOnSegment = /*@__PURE__*/ new Vector3();\n\n/**\n * A continuous line. The line are rendered by connecting consecutive\n * vertices with straight lines.\n *\n * ```js\n * const material = new THREE.LineBasicMaterial( { color: 0x0000ff } );\n *\n * const points = [];\n * points.push( new THREE.Vector3( - 10, 0, 0 ) );\n * points.push( new THREE.Vector3( 0, 10, 0 ) );\n * points.push( new THREE.Vector3( 10, 0, 0 ) );\n *\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const line = new THREE.Line( geometry, material );\n * scene.add( line );\n * ```\n *\n * @augments Object3D\n */\nclass Line extends Object3D {\n\n\t/**\n\t * Constructs a new line.\n\t *\n\t * @param {BufferGeometry} [geometry] - The line geometry.\n\t * @param {Material|Array<Material>} [material] - The line material.\n\t */\n\tconstructor( geometry = new BufferGeometry(), material = new LineBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLine = true;\n\n\t\tthis.type = 'Line';\n\n\t\t/**\n\t\t * The line geometry.\n\t\t *\n\t\t * @type {BufferGeometry}\n\t\t */\n\t\tthis.geometry = geometry;\n\n\t\t/**\n\t\t * The line material.\n\t\t *\n\t\t * @type {Material|Array<Material>}\n\t\t * @default LineBasicMaterial\n\t\t */\n\t\tthis.material = material;\n\n\t\t/**\n\t\t * A dictionary representing the morph targets in the geometry. The key is the\n\t\t * morph targets name, the value its attribute index. This member is `undefined`\n\t\t * by default and only set when morph targets are detected in the geometry.\n\t\t *\n\t\t * @type {Object<string,number>|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetDictionary = undefined;\n\n\t\t/**\n\t\t * An array of weights typically in the range `[0,1]` that specify how much of the morph\n\t\t * is applied. This member is `undefined` by default and only set when morph targets are\n\t\t * detected in the geometry.\n\t\t *\n\t\t * @type {Array<number>|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetInfluences = undefined;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Computes an array of distance values which are necessary for rendering dashed lines.\n\t * For each vertex in the geometry, the method calculates the cumulative length from the\n\t * current point to the very beginning of the line.\n\t *\n\t * @return {Line} A reference to this line.\n\t */\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\t// we assume non-indexed geometry\n\n\t\tif ( geometry.index === null ) {\n\n\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\tconst lineDistances = [ 0 ];\n\n\t\t\tfor ( let i = 1, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t_vStart.fromBufferAttribute( positionAttribute, i - 1 );\n\t\t\t\t_vEnd.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\tlineDistances[ i ] = lineDistances[ i - 1 ];\n\t\t\t\tlineDistances[ i ] += _vStart.distanceTo( _vEnd );\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t} else {\n\n\t\t\twarn( 'Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Computes intersection points between a casted ray and this line.\n\t *\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array<Object>} intersects - The target array that holds the intersection points.\n\t */\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Line.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere.copy( geometry.boundingSphere );\n\t\t_sphere.applyMatrix4( matrixWorld );\n\t\t_sphere.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix.copy( matrixWorld ).invert();\n\t\t_ray.copy( raycaster.ray ).applyMatrix4( _inverseMatrix );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tconst step = this.isLineSegments ? 2 : 1;\n\n\t\tconst index = geometry.index;\n\t\tconst attributes = geometry.attributes;\n\t\tconst positionAttribute = attributes.position;\n\n\t\tif ( index !== null ) {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\tconst a = index.getX( i );\n\t\t\t\tconst b = index.getX( i + 1 );\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray, localThresholdSq, a, b, i );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.isLineLoop ) {\n\n\t\t\t\tconst a = index.getX( end - 1 );\n\t\t\t\tconst b = index.getX( start );\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray, localThresholdSq, a, b, end - 1 );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray, localThresholdSq, i, i + 1, i );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.isLineLoop ) {\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray, localThresholdSq, end - 1, start, end - 1 );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Sets the values of {@link Line#morphTargetDictionary} and {@link Line#morphTargetInfluences}\n\t * to make sure existing morph targets can influence this 3D object.\n\t */\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection( object, raycaster, ray, thresholdSq, a, b, i ) {\n\n\tconst positionAttribute = object.geometry.attributes.position;\n\n\t_vStart.fromBufferAttribute( positionAttribute, a );\n\t_vEnd.fromBufferAttribute( positionAttribute, b );\n\n\tconst distSq = ray.distanceSqToSegment( _vStart, _vEnd, _intersectPointOnRay, _intersectPointOnSegment );\n\n\tif ( distSq > thresholdSq ) return;\n\n\t_intersectPointOnRay.applyMatrix4( object.matrixWorld ); // Move back to world space for distance calculation\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectPointOnRay );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\treturn {\n\n\t\tdistance: distance,\n\t\t// What do we want? intersection point on the ray or on the segment??\n\t\t// point: raycaster.ray.at( distance ),\n\t\tpoint: _intersectPointOnSegment.clone().applyMatrix4( object.matrixWorld ),\n\t\tindex: i,\n\t\tface: null,\n\t\tfaceIndex: null,\n\t\tbarycoord: null,\n\t\tobject: object\n\n\t};\n\n}\n\nexport { Line };\n","import { Line } from './Line.js';\nimport { Vector3 } from '../math/Vector3.js';\nimport { Float32BufferAttribute } from '../core/BufferAttribute.js';\nimport { warn } from '../utils.js';\n\nconst _start = /*@__PURE__*/ new Vector3();\nconst _end = /*@__PURE__*/ new Vector3();\n\n/**\n * A series of lines drawn between pairs of vertices.\n *\n * @augments Line\n */\nclass LineSegments extends Line {\n\n\t/**\n\t * Constructs a new line segments.\n\t *\n\t * @param {BufferGeometry} [geometry] - The line geometry.\n\t * @param {Material|Array<Material>} [material] - The line material.\n\t */\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineSegments = true;\n\n\t\tthis.type = 'LineSegments';\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\t// we assume non-indexed geometry\n\n\t\tif ( geometry.index === null ) {\n\n\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\tconst lineDistances = [];\n\n\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i += 2 ) {\n\n\t\t\t\t_start.fromBufferAttribute( positionAttribute, i );\n\t\t\t\t_end.fromBufferAttribute( positionAttribute, i + 1 );\n\n\t\t\t\tlineDistances[ i ] = ( i === 0 ) ? 0 : lineDistances[ i - 1 ];\n\t\t\t\tlineDistances[ i + 1 ] = lineDistances[ i ] + _start.distanceTo( _end );\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t} else {\n\n\t\t\twarn( 'LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nexport { LineSegments };\n","import { Vector3 } from '../math/Vector3.js';\nimport { Object3D } from '../core/Object3D.js';\nimport { LineSegments } from '../objects/LineSegments.js';\nimport { LineBasicMaterial } from '../materials/LineBasicMaterial.js';\nimport { Float32BufferAttribute } from '../core/BufferAttribute.js';\nimport { BufferGeometry } from '../core/BufferGeometry.js';\n\nconst _vector = /*@__PURE__*/ new Vector3();\n\n/**\n * This displays a cone shaped helper object for a {@link SpotLight}.\n *\n * When the spot light or its target are transformed or light properties are\n * changed, it's necessary to call the `update()` method of the respective helper.\n *\n * ```js\n * const spotLight = new THREE.SpotLight( 0xffffff );\n * spotLight.position.set( 10, 10, 10 );\n * scene.add( spotLight );\n *\n * const spotLightHelper = new THREE.SpotLightHelper( spotLight );\n * scene.add( spotLightHelper );\n * ```\n *\n * @augments Object3D\n */\nclass SpotLightHelper extends Object3D {\n\n\t/**\n\t * Constructs a new spot light helper.\n\t *\n\t * @param {HemisphereLight} light - The light to be visualized.\n\t * @param {number|Color|string} [color] - The helper's color. If not set, the helper will take\n\t * the color of the light.\n\t */\n\tconstructor( light, color ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * The light being visualized.\n\t\t *\n\t\t * @type {SpotLight}\n\t\t */\n\t\tthis.light = light;\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\t/**\n\t\t * The color parameter passed in the constructor.\n\t\t * If not set, the helper will take the color of the light.\n\t\t *\n\t\t * @type {number|Color|string}\n\t\t */\n\t\tthis.color = color;\n\n\t\tthis.type = 'SpotLightHelper';\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst positions = [\n\t\t\t0, 0, 0, \t0, 0, 1,\n\t\t\t0, 0, 0, \t1, 0, 1,\n\t\t\t0, 0, 0,\t- 1, 0, 1,\n\t\t\t0, 0, 0, \t0, 1, 1,\n\t\t\t0, 0, 0, \t0, - 1, 1\n\t\t];\n\n\t\tfor ( let i = 0, j = 1, l = 32; i < l; i ++, j ++ ) {\n\n\t\t\tconst p1 = ( i / l ) * Math.PI * 2;\n\t\t\tconst p2 = ( j / l ) * Math.PI * 2;\n\n\t\t\tpositions.push(\n\t\t\t\tMath.cos( p1 ), Math.sin( p1 ), 1,\n\t\t\t\tMath.cos( p2 ), Math.sin( p2 ), 1\n\t\t\t);\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { fog: false, toneMapped: false } );\n\n\t\tthis.cone = new LineSegments( geometry, material );\n\t\tthis.add( this.cone );\n\n\t\tthis.update();\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n\t/**\n\t * Updates the helper to match the position and direction of the\n\t * light being visualized.\n\t */\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\t\tthis.light.target.updateWorldMatrix( true, false );\n\n\t\t// update the local matrix based on the parent and light target transforms\n\t\tif ( this.parent ) {\n\n\t\t\tthis.parent.updateWorldMatrix( true );\n\n\t\t\tthis.matrix\n\t\t\t\t.copy( this.parent.matrixWorld )\n\t\t\t\t.invert()\n\t\t\t\t.multiply( this.light.matrixWorld );\n\n\t\t} else {\n\n\t\t\tthis.matrix.copy( this.light.matrixWorld );\n\n\t\t}\n\n\t\tthis.matrixWorld.copy( this.light.matrixWorld );\n\n\t\tconst coneLength = this.light.distance ? this.light.distance : 1000;\n\t\tconst coneWidth = coneLength * Math.tan( this.light.angle );\n\n\t\tthis.cone.scale.set( coneWidth, coneWidth, coneLength );\n\n\t\t_vector.setFromMatrixPosition( this.light.target.matrixWorld );\n\n\t\tthis.cone.lookAt( _vector );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.cone.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.cone.material.color.copy( this.light.color );\n\n\t\t}\n\n\t}\n\n}\n\n\nexport { SpotLightHelper };\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { h as e } from "./three.core-CLIofecG.mjs";
1
+ import { C as e } from "./three.core-mM-jZdgg.mjs";
2
2
  import { r as t, t as n } from "./fflate.module-dFNj5UPI.mjs";
3
3
  //#region ../../node_modules/three/examples/jsm/exporters/USDZExporter.js
4
4
  var r = class {
@@ -293,4 +293,4 @@ function T(e, t) {
293
293
  //#endregion
294
294
  export { i as USDZExporter };
295
295
 
296
- //# sourceMappingURL=USDZExporter-DxIqi8St.mjs.map
296
+ //# sourceMappingURL=USDZExporter-B4hsiwhd.mjs.map