@roomle/web-sdk 4.3.0-alpha.4 → 5.0.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 (59) hide show
  1. package/lib/ConfiguratorKernel.wasm +0 -0
  2. package/lib/{GaussianBlurNode-Bjszve7N.mjs → GaussianBlurNode-BMH03PYf.mjs} +11 -11
  3. package/lib/{GaussianBlurNode-Bjszve7N.mjs.map → GaussianBlurNode-BMH03PYf.mjs.map} +1 -1
  4. package/lib/RoomleCore.wasm +0 -0
  5. package/lib/RoomleToolsCore.wasm +0 -0
  6. package/lib/{api-C-enDIJZ.mjs → api-hQ0uOklW.mjs} +2 -2
  7. package/lib/{api-C-enDIJZ.mjs.map → api-hQ0uOklW.mjs.map} +1 -1
  8. package/lib/asset-loader.worker-eqHzNAwa.mjs.map +1 -1
  9. package/lib/budgeteer.sw-BUMElkO1.mjs.map +1 -1
  10. package/lib/configurator-BM0nny5l.mjs +2 -0
  11. package/lib/{configurator-D8Bfu2_w.mjs → configurator-CVg8_f9w.mjs} +3 -3
  12. package/lib/{configurator-D8Bfu2_w.mjs.map → configurator-CVg8_f9w.mjs.map} +1 -1
  13. package/lib/{glb-viewer-DMg1tKfk.mjs → glb-viewer-Csx9GwVi.mjs} +3 -3
  14. package/lib/{glb-viewer-DMg1tKfk.mjs.map → glb-viewer-Csx9GwVi.mjs.map} +1 -1
  15. package/lib/glb-viewer-gEdln_PJ.mjs +2 -0
  16. package/lib/{highlight-coordinator-JwAVkMeS.mjs → highlight-coordinator-C-PxNb40.mjs} +12 -12
  17. package/lib/highlight-coordinator-C-PxNb40.mjs.map +1 -0
  18. package/lib/{homag-intelligence-CbzWp4pY.mjs → homag-intelligence-Dh4VWYH6.mjs} +3 -3
  19. package/lib/{homag-intelligence-CbzWp4pY.mjs.map → homag-intelligence-Dh4VWYH6.mjs.map} +1 -1
  20. package/lib/{material-viewer-C4oV4F7e.mjs → material-viewer-DqUJzRXN.mjs} +3 -3
  21. package/lib/{material-viewer-C4oV4F7e.mjs.map → material-viewer-DqUJzRXN.mjs.map} +1 -1
  22. package/lib/{packages-Pc3dsyed.mjs → packages-Bz8iWtUY.mjs} +5 -5
  23. package/lib/{packages-Pc3dsyed.mjs.map → packages-Bz8iWtUY.mjs.map} +1 -1
  24. package/lib/{planner-B3IWgziF.mjs → planner-CpcR6z07.mjs} +3 -3
  25. package/lib/{planner-B3IWgziF.mjs.map → planner-CpcR6z07.mjs.map} +1 -1
  26. package/lib/planner-g06Phdjc.mjs +2 -0
  27. package/lib/roomle-headless.d.ts +4 -0
  28. package/lib/roomle-headless.js +9 -9
  29. package/lib/{roomle-sdk-Be4K-H8u.mjs → roomle-sdk-BCmaueGp.mjs} +1218 -1162
  30. package/lib/roomle-sdk-BCmaueGp.mjs.map +1 -0
  31. package/lib/roomle-sdk.d.ts +4 -0
  32. package/lib/roomle-sdk.js +6 -6
  33. package/lib/{roomle-webgpu-renderer-Lt55gNj5.mjs → roomle-webgpu-renderer-CS0lYZJ4.mjs} +351 -348
  34. package/lib/{roomle-webgpu-renderer-Lt55gNj5.mjs.map → roomle-webgpu-renderer-CS0lYZJ4.mjs.map} +1 -1
  35. package/lib/{scene-renderer-C8Lh-lff.mjs → scene-renderer--WNt8myk.mjs} +27 -23
  36. package/lib/scene-renderer--WNt8myk.mjs.map +1 -0
  37. package/lib/{script-loader-CzikXnNg.mjs → script-loader-Dmcvx-Qu.mjs} +2 -2
  38. package/lib/{script-loader-CzikXnNg.mjs.map → script-loader-Dmcvx-Qu.mjs.map} +1 -1
  39. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
  40. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
  41. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
  42. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
  43. package/lib/{stats-helper-Ddg1O4fO.mjs → stats-helper-B1_lK1E8.mjs} +2 -2
  44. package/lib/{stats-helper-Ddg1O4fO.mjs.map → stats-helper-B1_lK1E8.mjs.map} +1 -1
  45. package/lib/three.tsl-BZfU6fFt.mjs +2 -0
  46. package/lib/{three.tsl-Dew9p5yF.mjs → three.tsl-DO_HZZuJ.mjs} +58 -56
  47. package/lib/{three.tsl-Dew9p5yF.mjs.map → three.tsl-DO_HZZuJ.mjs.map} +1 -1
  48. package/lib/{tools-core-CVdBXX3L.mjs → tools-core-CRWZtE-S.mjs} +3 -3
  49. package/lib/{tools-core-CVdBXX3L.mjs.map → tools-core-CRWZtE-S.mjs.map} +1 -1
  50. package/lib/{webgpu-B0rxiqW-.mjs → webgpu-C14yfIYy.mjs} +86 -86
  51. package/lib/{webgpu-B0rxiqW-.mjs.map → webgpu-C14yfIYy.mjs.map} +1 -1
  52. package/package.json +2 -2
  53. package/lib/configurator-BfdyDYqe.mjs +0 -2
  54. package/lib/glb-viewer-BFYG-bD2.mjs +0 -2
  55. package/lib/highlight-coordinator-JwAVkMeS.mjs.map +0 -1
  56. package/lib/planner-BhnBEaPV.mjs +0 -2
  57. package/lib/roomle-sdk-Be4K-H8u.mjs.map +0 -1
  58. package/lib/scene-renderer-C8Lh-lff.mjs.map +0 -1
  59. package/lib/three.tsl-BnL9nfJa.mjs +0 -2
@@ -1,5 +1,5 @@
1
1
  import { n as e, r as t, t as n } from "./decorate-CjaqqbUP.mjs";
2
- import { U as r, it as i } from "./roomle-sdk-Be4K-H8u.mjs";
2
+ import { U as r, it as i } from "./roomle-sdk-BCmaueGp.mjs";
3
3
  //#region ../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url
4
4
  var a = "" + new URL("ConfiguratorKernel.wasm", import.meta.url).href, o = "" + new URL("ConfiguratorKernel.js", import.meta.url).href, s = "" + new URL("RoomleCore.wasm", import.meta.url).href, c = "" + new URL("RoomleCore.js", import.meta.url).href, l = "" + new URL("RoomleToolsCore.wasm", import.meta.url).href, u = "" + new URL("RoomleToolsCore.js", import.meta.url).href, d = {
5
5
  configurator: {
@@ -83,4 +83,4 @@ n([t, e("design:type", Object)], _.prototype, "_singlePromiseFactory", void 0);
83
83
  //#endregion
84
84
  export { p as n, _ as t };
85
85
 
86
- //# sourceMappingURL=script-loader-CzikXnNg.mjs.map
86
+ //# sourceMappingURL=script-loader-Dmcvx-Qu.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"script-loader-CzikXnNg.mjs","names":[],"sources":["../../../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.js?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.js?no-inline?url","../../packages/common-core/src/static-files/roomle-core.ts","../../packages/common-core/src/script-loader.ts"],"sourcesContent":["export default \"__VITE_ASSET___ewJD0zO9$SsiDvawfmAUw__\"","export default \"__VITE_ASSET__ykb1zIozoJBMq4UvQnlhcQ__\"","export default \"__VITE_ASSET__rN_1li4k2aIbHGs0zKW8QQ__\"","export default \"__VITE_ASSET__BjjUHagISQHtPWYmu3KuwQ__\"","export default \"__VITE_ASSET__m8R6TgWxwop2r_xOIPNRtg__\"","export default \"__VITE_ASSET__$oUiuAXR7gZMKRQU56HW2w__\"","// @ts-ignore -- Uses vite to reference files as URLs.\nimport CONFIGURATOR_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport CONFIGURATOR_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/ConfiguratorKernel.js?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport PLANNER_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleCore.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport PLANNER_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleCore.js?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport TOOLS_CORE_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport TOOLS_CORE_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleToolsCore.js?no-inline?url';\n\nconst WASM_FILES: Record<string, { loader: string; wasm: string }> = {\n configurator: {\n loader: 'ConfiguratorKernel.js',\n wasm: 'ConfiguratorKernel.wasm',\n },\n planner: { loader: 'RoomleCore.js', wasm: 'RoomleCore.wasm' },\n tools: { loader: 'RoomleToolsCore.js', wasm: 'RoomleToolsCore.wasm' },\n};\n\n// The wasm paths returned by this function are specific to browsers (not headless):\nexport const getWasmPath = (type: 'configurator' | 'planner' | 'tools') => {\n if (type === 'planner') {\n return {\n wasm: PLANNER_WASM_MODERN_FILE_NAME,\n loader: PLANNER_LOADER_MODERN_FILE_NAME,\n };\n }\n if (type === 'tools') {\n return {\n wasm: TOOLS_CORE_WASM_MODERN_FILE_NAME,\n loader: TOOLS_CORE_LOADER_MODERN_FILE_NAME,\n };\n }\n return {\n wasm: CONFIGURATOR_WASM_MODERN_FILE_NAME,\n loader: CONFIGURATOR_LOADER_MODERN_FILE_NAME,\n };\n};\n\n// Resolve WASM module paths for headless (Node.js/Bun) mode.\n// Strategies (tried in order):\n// 1. import.meta.resolve('roomle-core-hsc/...') — works when running from\n// source in the monorepo where roomle-core-hsc is in node_modules, and\n// the module resolver can walk up to it from the current file's location.\n// 2. Files directly in the same directory as this bundle — works when the SDK\n// is consumed as a built package (dist/lib/), where vite-plugin-static-copy\n// places ConfiguratorKernel.wasm etc. alongside the bundle chunks.\n// 3. Legacy static/ subdirectory — kept as a final fallback for older dist\n// layouts where vite-plugin-static-copy targeted dist/lib/static/.\nexport const getHeadlessWasmPath = (\n type: 'configurator' | 'planner' | 'tools',\n): { loader: string; wasm: string } => {\n const entry = WASM_FILES[type];\n const moduleSpecifiers = {\n loader: `roomle-core-hsc/wasm_modern/${entry.loader}`,\n wasm: `roomle-core-hsc/wasm_modern/${entry.wasm}`,\n };\n\n const toPath = (url: string) =>\n url.startsWith('file://') ? url.slice(7) : url;\n\n // Strategy 1: resolve from node_modules (source / monorepo).\n // May fail when the consuming project's module resolver cannot reach\n // roomle-core-hsc (e.g. when web-sdk is installed via a file: reference\n // and symlink resolution stops before reaching the monorepo node_modules).\n try {\n return {\n loader: toPath(import.meta.resolve(moduleSpecifiers.loader)),\n wasm: toPath(import.meta.resolve(moduleSpecifiers.wasm)),\n };\n } catch {\n // roomle-core-hsc not reachable — fall through to bundle-relative lookup\n }\n\n // Strategy 2: files copied directly alongside the bundle (current dist layout).\n // vite-plugin-static-copy places ConfiguratorKernel.wasm / RoomleCore.wasm\n // etc. in dist/lib/ next to the JS chunks. import.meta.url of any chunk in\n // that directory has bundleDir = dist/lib/, so the files are found directly.\n const bundleDir = toPath(import.meta.url).replace(/\\/[^/]+$/, '');\n return {\n loader: `${bundleDir}/${entry.loader}`,\n wasm: `${bundleDir}/${entry.wasm}`,\n };\n};\n\nexport {\n CONFIGURATOR_WASM_MODERN_FILE_NAME,\n CONFIGURATOR_LOADER_MODERN_FILE_NAME,\n PLANNER_WASM_MODERN_FILE_NAME,\n PLANNER_LOADER_MODERN_FILE_NAME,\n TOOLS_CORE_WASM_MODERN_FILE_NAME,\n TOOLS_CORE_LOADER_MODERN_FILE_NAME,\n};\n","import Benchmark from './utils/benchmark';\nimport inject from './di/inject';\nimport type SinglePromiseFactory from './utils/single-promise-factory';\nimport { PROMISE_CATEGORY } from './utils/single-promise-factory';\nimport type { Context } from './di/context';\nimport { getWasmPath } from './static-files/roomle-core';\n\nlet _scriptCache: { [key: string]: boolean } = {};\nlet _idCache: { [key: string]: boolean } = {};\n\nfunction attachScript(\n url: string,\n options: { id: string },\n resolve: (value?: any) => void,\n reject: (error?: any) => void,\n) {\n if (_scriptCache[url]) {\n return resolve();\n }\n if (options.id && _idCache[options.id]) {\n return reject(\n new Error('There is already a script with ID \"' + options.id + '\"'),\n );\n }\n\n const mark = Benchmark.start('load_' + options.id.replace(/-/g, '_'));\n const element = document.createElement('script');\n element.async = false;\n element.src = url;\n element.id = options.id;\n element.onload = () => {\n _scriptCache[url] = true;\n _idCache[options.id] = true;\n Benchmark.end(mark);\n Object.defineProperty(resolve, 'name', { value: 'resolve-' + options.id });\n resolve();\n };\n element.onerror = (error) => {\n reject(error);\n };\n document.body.appendChild(element);\n}\n\nexport interface ScriptData {\n name: string;\n id: string;\n}\n\nexport default class ScriptLoader implements Context {\n public _creator_: string;\n\n @inject\n private _singlePromiseFactory: SinglePromiseFactory;\n\n constructor(creator: string) {\n this._creator_ = creator;\n }\n\n public fetch(url: string, options: { id: string }) {\n return this._singlePromiseFactory.create(\n PROMISE_CATEGORY.FETCH_SCRIPT,\n url,\n (resolve, reject) => {\n attachScript(url, options, resolve, reject);\n },\n );\n }\n\n public loadScripts(scripts: ScriptData[]) {\n const promises: any = [];\n scripts.forEach((script: any) => {\n let scriptLoadPromise = this.fetch(script.name, { id: script.id });\n promises.push(scriptLoadPromise);\n });\n return Promise.all(promises);\n }\n\n public resolveKernelPaths(type: 'configurator' | 'planner' | 'tools'): {\n wasm: string;\n loader: string;\n } {\n return getWasmPath(type);\n }\n\n public cleanUp() {\n for (let key in _idCache) {\n /* istanbul ignore else */\n if (_idCache.hasOwnProperty(key)) {\n const script = document.getElementById(key);\n if (script) {\n script.parentElement?.removeChild(script);\n }\n }\n }\n _scriptCache = {};\n _idCache = {};\n }\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
1
+ {"version":3,"file":"script-loader-Dmcvx-Qu.mjs","names":[],"sources":["../../../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.js?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm?no-inline?url","../../../../node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.js?no-inline?url","../../packages/common-core/src/static-files/roomle-core.ts","../../packages/common-core/src/script-loader.ts"],"sourcesContent":["export default \"__VITE_ASSET__cLZLOsSELI_GmwKcVOKKRw__\"","export default \"__VITE_ASSET__6kssa3xCT2YlMpIbbRNP$Q__\"","export default \"__VITE_ASSET___ewJD0zO9$SsiDvawfmAUw__\"","export default \"__VITE_ASSET__aLISaAY6NSiJFT$6GdtrfA__\"","export default \"__VITE_ASSET__U2YZxvNlcnuoWcGKwa9Wsw__\"","export default \"__VITE_ASSET__DUq8YoikZLXEejpNZ1KQvg__\"","// @ts-ignore -- Uses vite to reference files as URLs.\nimport CONFIGURATOR_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport CONFIGURATOR_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/ConfiguratorKernel.js?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport PLANNER_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleCore.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport PLANNER_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleCore.js?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport TOOLS_CORE_WASM_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm?no-inline?url';\n// @ts-ignore -- Uses vite to reference files as URLs.\nimport TOOLS_CORE_LOADER_MODERN_FILE_NAME from 'roomle-core-hsc/wasm_modern/RoomleToolsCore.js?no-inline?url';\n\nconst WASM_FILES: Record<string, { loader: string; wasm: string }> = {\n configurator: {\n loader: 'ConfiguratorKernel.js',\n wasm: 'ConfiguratorKernel.wasm',\n },\n planner: { loader: 'RoomleCore.js', wasm: 'RoomleCore.wasm' },\n tools: { loader: 'RoomleToolsCore.js', wasm: 'RoomleToolsCore.wasm' },\n};\n\n// The wasm paths returned by this function are specific to browsers (not headless):\nexport const getWasmPath = (type: 'configurator' | 'planner' | 'tools') => {\n if (type === 'planner') {\n return {\n wasm: PLANNER_WASM_MODERN_FILE_NAME,\n loader: PLANNER_LOADER_MODERN_FILE_NAME,\n };\n }\n if (type === 'tools') {\n return {\n wasm: TOOLS_CORE_WASM_MODERN_FILE_NAME,\n loader: TOOLS_CORE_LOADER_MODERN_FILE_NAME,\n };\n }\n return {\n wasm: CONFIGURATOR_WASM_MODERN_FILE_NAME,\n loader: CONFIGURATOR_LOADER_MODERN_FILE_NAME,\n };\n};\n\n// Resolve WASM module paths for headless (Node.js/Bun) mode.\n// Strategies (tried in order):\n// 1. import.meta.resolve('roomle-core-hsc/...') — works when running from\n// source in the monorepo where roomle-core-hsc is in node_modules, and\n// the module resolver can walk up to it from the current file's location.\n// 2. Files directly in the same directory as this bundle — works when the SDK\n// is consumed as a built package (dist/lib/), where vite-plugin-static-copy\n// places ConfiguratorKernel.wasm etc. alongside the bundle chunks.\n// 3. Legacy static/ subdirectory — kept as a final fallback for older dist\n// layouts where vite-plugin-static-copy targeted dist/lib/static/.\nexport const getHeadlessWasmPath = (\n type: 'configurator' | 'planner' | 'tools',\n): { loader: string; wasm: string } => {\n const entry = WASM_FILES[type];\n const moduleSpecifiers = {\n loader: `roomle-core-hsc/wasm_modern/${entry.loader}`,\n wasm: `roomle-core-hsc/wasm_modern/${entry.wasm}`,\n };\n\n const toPath = (url: string) =>\n url.startsWith('file://') ? url.slice(7) : url;\n\n // Strategy 1: resolve from node_modules (source / monorepo).\n // May fail when the consuming project's module resolver cannot reach\n // roomle-core-hsc (e.g. when web-sdk is installed via a file: reference\n // and symlink resolution stops before reaching the monorepo node_modules).\n try {\n return {\n loader: toPath(import.meta.resolve(moduleSpecifiers.loader)),\n wasm: toPath(import.meta.resolve(moduleSpecifiers.wasm)),\n };\n } catch {\n // roomle-core-hsc not reachable — fall through to bundle-relative lookup\n }\n\n // Strategy 2: files copied directly alongside the bundle (current dist layout).\n // vite-plugin-static-copy places ConfiguratorKernel.wasm / RoomleCore.wasm\n // etc. in dist/lib/ next to the JS chunks. import.meta.url of any chunk in\n // that directory has bundleDir = dist/lib/, so the files are found directly.\n const bundleDir = toPath(import.meta.url).replace(/\\/[^/]+$/, '');\n return {\n loader: `${bundleDir}/${entry.loader}`,\n wasm: `${bundleDir}/${entry.wasm}`,\n };\n};\n\nexport {\n CONFIGURATOR_WASM_MODERN_FILE_NAME,\n CONFIGURATOR_LOADER_MODERN_FILE_NAME,\n PLANNER_WASM_MODERN_FILE_NAME,\n PLANNER_LOADER_MODERN_FILE_NAME,\n TOOLS_CORE_WASM_MODERN_FILE_NAME,\n TOOLS_CORE_LOADER_MODERN_FILE_NAME,\n};\n","import Benchmark from './utils/benchmark';\nimport inject from './di/inject';\nimport type SinglePromiseFactory from './utils/single-promise-factory';\nimport { PROMISE_CATEGORY } from './utils/single-promise-factory';\nimport type { Context } from './di/context';\nimport { getWasmPath } from './static-files/roomle-core';\n\nlet _scriptCache: { [key: string]: boolean } = {};\nlet _idCache: { [key: string]: boolean } = {};\n\nfunction attachScript(\n url: string,\n options: { id: string },\n resolve: (value?: any) => void,\n reject: (error?: any) => void,\n) {\n if (_scriptCache[url]) {\n return resolve();\n }\n if (options.id && _idCache[options.id]) {\n return reject(\n new Error('There is already a script with ID \"' + options.id + '\"'),\n );\n }\n\n const mark = Benchmark.start('load_' + options.id.replace(/-/g, '_'));\n const element = document.createElement('script');\n element.async = false;\n element.src = url;\n element.id = options.id;\n element.onload = () => {\n _scriptCache[url] = true;\n _idCache[options.id] = true;\n Benchmark.end(mark);\n Object.defineProperty(resolve, 'name', { value: 'resolve-' + options.id });\n resolve();\n };\n element.onerror = (error) => {\n reject(error);\n };\n document.body.appendChild(element);\n}\n\nexport interface ScriptData {\n name: string;\n id: string;\n}\n\nexport default class ScriptLoader implements Context {\n public _creator_: string;\n\n @inject\n private _singlePromiseFactory: SinglePromiseFactory;\n\n constructor(creator: string) {\n this._creator_ = creator;\n }\n\n public fetch(url: string, options: { id: string }) {\n return this._singlePromiseFactory.create(\n PROMISE_CATEGORY.FETCH_SCRIPT,\n url,\n (resolve, reject) => {\n attachScript(url, options, resolve, reject);\n },\n );\n }\n\n public loadScripts(scripts: ScriptData[]) {\n const promises: any = [];\n scripts.forEach((script: any) => {\n let scriptLoadPromise = this.fetch(script.name, { id: script.id });\n promises.push(scriptLoadPromise);\n });\n return Promise.all(promises);\n }\n\n public resolveKernelPaths(type: 'configurator' | 'planner' | 'tools'): {\n wasm: string;\n loader: string;\n } {\n return getWasmPath(type);\n }\n\n public cleanUp() {\n for (let key in _idCache) {\n /* istanbul ignore else */\n if (_idCache.hasOwnProperty(key)) {\n const script = document.getElementById(key);\n if (script) {\n script.parentElement?.removeChild(script);\n }\n }\n }\n _scriptCache = {};\n _idCache = {};\n }\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
@@ -1 +1 @@
1
- {"name": "roomle-core-hsc", "version": "2.84.0-alpha.7" }
1
+ {"name": "roomle-core-hsc", "version": "2.84.0-alpha.9" }
@@ -1,5 +1,5 @@
1
1
  import { n as e, t } from "./rolldown-runtime-DgwB9i60.mjs";
2
- import { t as n } from "./scene-renderer-C8Lh-lff.mjs";
2
+ import { t as n } from "./scene-renderer--WNt8myk.mjs";
3
3
  import { n as r, r as i, t as a } from "./decorate-CjaqqbUP.mjs";
4
4
  //#endregion
5
5
  //#region packages/common-core/src/utils/stats-helper.ts
@@ -93,4 +93,4 @@ a([i, r("design:type", Object)], s.prototype, "_cacheHolder", void 0);
93
93
  //#endregion
94
94
  export { s as default };
95
95
 
96
- //# sourceMappingURL=stats-helper-Ddg1O4fO.mjs.map
96
+ //# sourceMappingURL=stats-helper-B1_lK1E8.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"stats-helper-Ddg1O4fO.mjs","names":[],"sources":["../../../../node_modules/stats.js/build/stats.min.js","../../packages/common-core/src/utils/stats-helper.ts"],"sourcesContent":["// stats.js - http://github.com/mrdoob/stats.js\n(function(f,e){\"object\"===typeof exports&&\"undefined\"!==typeof module?module.exports=e():\"function\"===typeof define&&define.amd?define(e):f.Stats=e()})(this,function(){var f=function(){function e(a){c.appendChild(a.dom);return a}function u(a){for(var d=0;d<c.children.length;d++)c.children[d].style.display=d===a?\"block\":\"none\";l=a}var l=0,c=document.createElement(\"div\");c.style.cssText=\"position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000\";c.addEventListener(\"click\",function(a){a.preventDefault();\nu(++l%c.children.length)},!1);var k=(performance||Date).now(),g=k,a=0,r=e(new f.Panel(\"FPS\",\"#0ff\",\"#002\")),h=e(new f.Panel(\"MS\",\"#0f0\",\"#020\"));if(self.performance&&self.performance.memory)var t=e(new f.Panel(\"MB\",\"#f08\",\"#201\"));u(0);return{REVISION:16,dom:c,addPanel:e,showPanel:u,begin:function(){k=(performance||Date).now()},end:function(){a++;var c=(performance||Date).now();h.update(c-k,200);if(c>g+1E3&&(r.update(1E3*a/(c-g),100),g=c,a=0,t)){var d=performance.memory;t.update(d.usedJSHeapSize/\n1048576,d.jsHeapSizeLimit/1048576)}return c},update:function(){k=this.end()},domElement:c,setMode:u}};f.Panel=function(e,f,l){var c=Infinity,k=0,g=Math.round,a=g(window.devicePixelRatio||1),r=80*a,h=48*a,t=3*a,v=2*a,d=3*a,m=15*a,n=74*a,p=30*a,q=document.createElement(\"canvas\");q.width=r;q.height=h;q.style.cssText=\"width:80px;height:48px\";var b=q.getContext(\"2d\");b.font=\"bold \"+9*a+\"px Helvetica,Arial,sans-serif\";b.textBaseline=\"top\";b.fillStyle=l;b.fillRect(0,0,r,h);b.fillStyle=f;b.fillText(e,t,v);\nb.fillRect(d,m,n,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d,m,n,p);return{dom:q,update:function(h,w){c=Math.min(c,h);k=Math.max(k,h);b.fillStyle=l;b.globalAlpha=1;b.fillRect(0,0,r,m);b.fillStyle=f;b.fillText(g(h)+\" \"+e+\" (\"+g(c)+\"-\"+g(k)+\")\",t,v);b.drawImage(q,d+a,m,n-a,p,d,m,n-a,p);b.fillRect(d+n-a,m,a,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d+n-a,m,a,g((1-h/w)*p))}}};return f});\n","import inject from '../di/inject';\nimport type { Panel } from '../../../typings/stats';\nimport type CacheHolder from '../services/cache-holder';\nimport type { WebGLInfo } from 'three';\nimport Stats from 'stats.js';\nimport {\n QUALITY_LEVELS,\n type QualityLevel,\n} from '../webgl/renderer/scene-renderer';\n\nexport default class StatsHelper {\n @inject\n protected _cacheHolder: CacheHolder;\n\n private _statPanels: Stats[] = [];\n private _drawPanel: Panel; // eslint-disable-line\n private _trianglesPanel: Panel; // eslint-disable-line\n private _geometryPanel: Panel; // eslint-disable-line\n private _texturePanel: Panel; // eslint-disable-line\n private _materialPanel: Panel; // eslint-disable-line\n private _qualityPanel: Panel; // eslint-disable-line\n\n constructor() {\n this._init();\n }\n\n private _init() {\n let fpsPanel = new Stats();\n fpsPanel.showPanel(0);\n fpsPanel.dom.style.cssText =\n 'position:absolute;top:0px;left:0px;z-index:110;';\n document.body.appendChild(fpsPanel.dom);\n this._statPanels.push(fpsPanel);\n\n let memoryPanel = new Stats();\n memoryPanel.showPanel(2);\n memoryPanel.dom.style.cssText =\n 'position:absolute;top:50px;left:0px;z-index:110;';\n document.body.appendChild(memoryPanel.dom);\n this._statPanels.push(memoryPanel);\n\n let drawPanel = new Stats();\n this._drawPanel = drawPanel.addPanel(\n new Stats.Panel('draw', '#0f0', '#000'),\n );\n drawPanel.showPanel(3);\n drawPanel.dom.style.cssText =\n 'position:absolute;top:100px;left:0px;z-index:110;';\n document.body.appendChild(drawPanel.dom);\n this._statPanels.push(drawPanel);\n\n let trianglesPanel = new Stats();\n this._trianglesPanel = trianglesPanel.addPanel(\n new Stats.Panel('poly', '#0f0', '#000'),\n );\n trianglesPanel.showPanel(3);\n trianglesPanel.dom.style.cssText =\n 'position:absolute;top:150px;left:0px;z-index:110;';\n document.body.appendChild(trianglesPanel.dom);\n this._statPanels.push(trianglesPanel);\n\n let geometryPanel = new Stats();\n this._geometryPanel = geometryPanel.addPanel(\n new Stats.Panel('geo', '#f00', '#000'),\n );\n geometryPanel.showPanel(3);\n geometryPanel.dom.style.cssText =\n 'position:absolute;top:200px;left:0px;z-index:110;';\n document.body.appendChild(geometryPanel.dom);\n this._statPanels.push(geometryPanel);\n\n let texturePanel = new Stats();\n this._texturePanel = texturePanel.addPanel(\n new Stats.Panel('tex', '#f00', '#000'),\n );\n texturePanel.showPanel(3);\n texturePanel.dom.style.cssText =\n 'position:absolute;top:250px;left:0px;z-index:110;';\n document.body.appendChild(texturePanel.dom);\n this._statPanels.push(texturePanel);\n\n let materialPanel = new Stats();\n this._materialPanel = materialPanel.addPanel(\n new Stats.Panel('mat', '#f00', '#000'),\n );\n materialPanel.showPanel(3);\n materialPanel.dom.style.cssText =\n 'position:absolute;top:300px;left:0px;z-index:110;';\n document.body.appendChild(materialPanel.dom);\n this._statPanels.push(materialPanel);\n\n let qualityPanel = new Stats();\n this._qualityPanel = qualityPanel.addPanel(\n new Stats.Panel('quality', '#fff', '#000'),\n );\n qualityPanel.showPanel(3);\n qualityPanel.dom.style.cssText =\n 'position:absolute;top:350px;left:0px;z-index:110;';\n document.body.appendChild(qualityPanel.dom);\n this._statPanels.push(qualityPanel);\n }\n\n public updateRenderInfo(info: WebGLInfo) {\n if (this._drawPanel && info.render.calls > 0) {\n this._drawPanel.update(info.render.calls, 500);\n }\n if (this._trianglesPanel && info.render.triangles > 0) {\n this._trianglesPanel.update(info.render.triangles, 10000);\n }\n if (this._geometryPanel && info.memory.geometries > 0) {\n this._geometryPanel.update(info.memory.geometries, 10000);\n }\n if (this._texturePanel && info.memory.textures > 0) {\n this._texturePanel.update(info.memory.textures, 10000);\n }\n if (this._materialPanel && this._cacheHolder.materialCache.size > 0) {\n this._materialPanel.update(this._cacheHolder.materialCache.size, 1000);\n }\n\n if (this._statPanels.length > 0) {\n this._statPanels.forEach((panel) => panel.update());\n }\n }\n\n public updateQualityInfo(qualityLevel: QualityLevel) {\n if (this._qualityPanel && qualityLevel) {\n const qualityValue = Object.values(QUALITY_LEVELS).indexOf(qualityLevel);\n this._qualityPanel.update(qualityValue, 5);\n }\n }\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"stats-helper-B1_lK1E8.mjs","names":[],"sources":["../../../../node_modules/stats.js/build/stats.min.js","../../packages/common-core/src/utils/stats-helper.ts"],"sourcesContent":["// stats.js - http://github.com/mrdoob/stats.js\n(function(f,e){\"object\"===typeof exports&&\"undefined\"!==typeof module?module.exports=e():\"function\"===typeof define&&define.amd?define(e):f.Stats=e()})(this,function(){var f=function(){function e(a){c.appendChild(a.dom);return a}function u(a){for(var d=0;d<c.children.length;d++)c.children[d].style.display=d===a?\"block\":\"none\";l=a}var l=0,c=document.createElement(\"div\");c.style.cssText=\"position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000\";c.addEventListener(\"click\",function(a){a.preventDefault();\nu(++l%c.children.length)},!1);var k=(performance||Date).now(),g=k,a=0,r=e(new f.Panel(\"FPS\",\"#0ff\",\"#002\")),h=e(new f.Panel(\"MS\",\"#0f0\",\"#020\"));if(self.performance&&self.performance.memory)var t=e(new f.Panel(\"MB\",\"#f08\",\"#201\"));u(0);return{REVISION:16,dom:c,addPanel:e,showPanel:u,begin:function(){k=(performance||Date).now()},end:function(){a++;var c=(performance||Date).now();h.update(c-k,200);if(c>g+1E3&&(r.update(1E3*a/(c-g),100),g=c,a=0,t)){var d=performance.memory;t.update(d.usedJSHeapSize/\n1048576,d.jsHeapSizeLimit/1048576)}return c},update:function(){k=this.end()},domElement:c,setMode:u}};f.Panel=function(e,f,l){var c=Infinity,k=0,g=Math.round,a=g(window.devicePixelRatio||1),r=80*a,h=48*a,t=3*a,v=2*a,d=3*a,m=15*a,n=74*a,p=30*a,q=document.createElement(\"canvas\");q.width=r;q.height=h;q.style.cssText=\"width:80px;height:48px\";var b=q.getContext(\"2d\");b.font=\"bold \"+9*a+\"px Helvetica,Arial,sans-serif\";b.textBaseline=\"top\";b.fillStyle=l;b.fillRect(0,0,r,h);b.fillStyle=f;b.fillText(e,t,v);\nb.fillRect(d,m,n,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d,m,n,p);return{dom:q,update:function(h,w){c=Math.min(c,h);k=Math.max(k,h);b.fillStyle=l;b.globalAlpha=1;b.fillRect(0,0,r,m);b.fillStyle=f;b.fillText(g(h)+\" \"+e+\" (\"+g(c)+\"-\"+g(k)+\")\",t,v);b.drawImage(q,d+a,m,n-a,p,d,m,n-a,p);b.fillRect(d+n-a,m,a,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d+n-a,m,a,g((1-h/w)*p))}}};return f});\n","import inject from '../di/inject';\nimport type { Panel } from '../../../typings/stats';\nimport type CacheHolder from '../services/cache-holder';\nimport type { WebGLInfo } from 'three';\nimport Stats from 'stats.js';\nimport {\n QUALITY_LEVELS,\n type QualityLevel,\n} from '../webgl/renderer/scene-renderer';\n\nexport default class StatsHelper {\n @inject\n protected _cacheHolder: CacheHolder;\n\n private _statPanels: Stats[] = [];\n private _drawPanel: Panel; // eslint-disable-line\n private _trianglesPanel: Panel; // eslint-disable-line\n private _geometryPanel: Panel; // eslint-disable-line\n private _texturePanel: Panel; // eslint-disable-line\n private _materialPanel: Panel; // eslint-disable-line\n private _qualityPanel: Panel; // eslint-disable-line\n\n constructor() {\n this._init();\n }\n\n private _init() {\n let fpsPanel = new Stats();\n fpsPanel.showPanel(0);\n fpsPanel.dom.style.cssText =\n 'position:absolute;top:0px;left:0px;z-index:110;';\n document.body.appendChild(fpsPanel.dom);\n this._statPanels.push(fpsPanel);\n\n let memoryPanel = new Stats();\n memoryPanel.showPanel(2);\n memoryPanel.dom.style.cssText =\n 'position:absolute;top:50px;left:0px;z-index:110;';\n document.body.appendChild(memoryPanel.dom);\n this._statPanels.push(memoryPanel);\n\n let drawPanel = new Stats();\n this._drawPanel = drawPanel.addPanel(\n new Stats.Panel('draw', '#0f0', '#000'),\n );\n drawPanel.showPanel(3);\n drawPanel.dom.style.cssText =\n 'position:absolute;top:100px;left:0px;z-index:110;';\n document.body.appendChild(drawPanel.dom);\n this._statPanels.push(drawPanel);\n\n let trianglesPanel = new Stats();\n this._trianglesPanel = trianglesPanel.addPanel(\n new Stats.Panel('poly', '#0f0', '#000'),\n );\n trianglesPanel.showPanel(3);\n trianglesPanel.dom.style.cssText =\n 'position:absolute;top:150px;left:0px;z-index:110;';\n document.body.appendChild(trianglesPanel.dom);\n this._statPanels.push(trianglesPanel);\n\n let geometryPanel = new Stats();\n this._geometryPanel = geometryPanel.addPanel(\n new Stats.Panel('geo', '#f00', '#000'),\n );\n geometryPanel.showPanel(3);\n geometryPanel.dom.style.cssText =\n 'position:absolute;top:200px;left:0px;z-index:110;';\n document.body.appendChild(geometryPanel.dom);\n this._statPanels.push(geometryPanel);\n\n let texturePanel = new Stats();\n this._texturePanel = texturePanel.addPanel(\n new Stats.Panel('tex', '#f00', '#000'),\n );\n texturePanel.showPanel(3);\n texturePanel.dom.style.cssText =\n 'position:absolute;top:250px;left:0px;z-index:110;';\n document.body.appendChild(texturePanel.dom);\n this._statPanels.push(texturePanel);\n\n let materialPanel = new Stats();\n this._materialPanel = materialPanel.addPanel(\n new Stats.Panel('mat', '#f00', '#000'),\n );\n materialPanel.showPanel(3);\n materialPanel.dom.style.cssText =\n 'position:absolute;top:300px;left:0px;z-index:110;';\n document.body.appendChild(materialPanel.dom);\n this._statPanels.push(materialPanel);\n\n let qualityPanel = new Stats();\n this._qualityPanel = qualityPanel.addPanel(\n new Stats.Panel('quality', '#fff', '#000'),\n );\n qualityPanel.showPanel(3);\n qualityPanel.dom.style.cssText =\n 'position:absolute;top:350px;left:0px;z-index:110;';\n document.body.appendChild(qualityPanel.dom);\n this._statPanels.push(qualityPanel);\n }\n\n public updateRenderInfo(info: WebGLInfo) {\n if (this._drawPanel && info.render.calls > 0) {\n this._drawPanel.update(info.render.calls, 500);\n }\n if (this._trianglesPanel && info.render.triangles > 0) {\n this._trianglesPanel.update(info.render.triangles, 10000);\n }\n if (this._geometryPanel && info.memory.geometries > 0) {\n this._geometryPanel.update(info.memory.geometries, 10000);\n }\n if (this._texturePanel && info.memory.textures > 0) {\n this._texturePanel.update(info.memory.textures, 10000);\n }\n if (this._materialPanel && this._cacheHolder.materialCache.size > 0) {\n this._materialPanel.update(this._cacheHolder.materialCache.size, 1000);\n }\n\n if (this._statPanels.length > 0) {\n this._statPanels.forEach((panel) => panel.update());\n }\n }\n\n public updateQualityInfo(qualityLevel: QualityLevel) {\n if (this._qualityPanel && qualityLevel) {\n const qualityValue = Object.values(QUALITY_LEVELS).indexOf(qualityLevel);\n this._qualityPanel.update(qualityValue, 5);\n }\n }\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Dt as e, Ft as t, T as n, V as r, gt as i, n as a, st as o } from "./three.tsl-DO_HZZuJ.mjs";
2
+ export { a as Fn, n as float, r as mix, o as reflector, i as smoothstep, e as uniform, t as vec4 };
@@ -33,114 +33,116 @@ e.countTrailingZeros;
33
33
  var _ = e.cos;
34
34
  e.cosh;
35
35
  var v = e.cross;
36
- e.cubeTexture, e.cubeTextureBase, e.dFdx, e.dFdy, e.dashSize, e.debug, e.decrement, e.decrementBefore, e.defaultBuildStages, e.defaultShaderStages, e.defined, e.degrees, e.deltaTime, e.densityFog, e.densityFogFactor, e.depth, e.depthPass, e.determinant, e.difference;
37
- var y = e.diffuseColor;
36
+ e.cubeTexture, e.cubeTextureBase, e.dFdx, e.dFdy, e.dashSize, e.debug, e.decrement, e.decrementBefore, e.defaultBuildStages, e.defaultShaderStages, e.defined, e.degrees, e.deltaTime, e.densityFog, e.densityFogFactor, e.depth;
37
+ var y = e.depthPass;
38
+ e.determinant, e.difference;
39
+ var b = e.diffuseColor;
38
40
  e.directPointLight, e.directionToColor, e.directionToFaceDirection, e.dispersion, e.distance;
39
- var b = e.div, x = e.dot;
41
+ var x = e.div, S = e.dot;
40
42
  e.drawIndex, e.dynamicBufferAttribute, e.element, e.emissive, e.equal, e.equirectDirection, e.equirectUV;
41
- var S = e.exp;
43
+ var C = e.exp;
42
44
  e.exp2, e.exponentialHeightFogFactor, e.expression, e.faceDirection, e.faceForward, e.faceforward;
43
- var C = e.float;
45
+ var w = e.float;
44
46
  e.floatBitsToInt, e.floatBitsToUint, e.floor;
45
- var w = e.fog, T = e.fract;
47
+ var T = e.fog, E = e.fract;
46
48
  e.frameGroup, e.frameId, e.frontFacing, e.fwidth, e.gain, e.gapSize, e.getConstNodeType, e.getCurrentStack, e.getDirection, e.getDistanceAttenuation, e.getGeometryRoughness;
47
- var E = e.getNormalFromDepth, D = e.interleavedGradientNoise;
49
+ var D = e.getNormalFromDepth, O = e.interleavedGradientNoise;
48
50
  e.vogelDiskSample, e.getParallaxCorrectNormal, e.getRoughness, e.getScreenPosition, e.getShIrradianceAt, e.getShadowMaterial, e.getShadowRenderObjectFunction, e.getTextureIndex;
49
- var O = e.getViewPosition, k = e.globalId;
51
+ var k = e.getViewPosition, A = e.globalId;
50
52
  e.glsl, e.glslFn, e.grayscale, e.greaterThan, e.greaterThanEqual, e.hash, e.highpModelNormalViewMatrix, e.highpModelViewMatrix, e.hue, e.increment, e.incrementBefore, e.instance, e.instanceIndex, e.instancedArray, e.instancedBufferAttribute, e.instancedDynamicBufferAttribute, e.instancedMesh;
51
- var A = e.int;
53
+ var j = e.int;
52
54
  e.intBitsToFloat, e.inverse, e.inverseSqrt, e.inversesqrt, e.invocationLocalIndex, e.invocationSubgroupIndex, e.ior, e.iridescence, e.iridescenceIOR, e.iridescenceThickness;
53
- var j = e.ivec2;
55
+ var M = e.ivec2;
54
56
  e.ivec3, e.ivec4, e.js, e.label, e.length, e.lengthSq, e.lessThan, e.lessThanEqual, e.lightPosition, e.lightProjectionUV, e.lightShadowMatrix, e.lightTargetDirection, e.lightTargetPosition, e.lightViewPosition, e.lightingContext, e.lights, e.linearDepth, e.linearToneMapping, e.localId, e.log, e.log2;
55
- var M = e.logarithmicDepthToViewZ, N = e.luminance, P = e.mat2, F = e.mat3, I = e.mat4;
57
+ var N = e.logarithmicDepthToViewZ, P = e.luminance, F = e.mat2, I = e.mat3, L = e.mat4;
56
58
  e.matcapUV, e.materialAO, e.materialAlphaTest, e.materialAnisotropy, e.materialAnisotropyVector, e.materialAttenuationColor, e.materialAttenuationDistance, e.materialClearcoat, e.materialClearcoatNormal, e.materialClearcoatRoughness, e.materialColor, e.materialDispersion, e.materialEmissive, e.materialEnvIntensity, e.materialEnvRotation, e.materialIOR, e.materialIridescence, e.materialIridescenceIOR, e.materialIridescenceThickness, e.materialLightMap, e.materialLineDashOffset, e.materialLineDashSize, e.materialLineGapSize, e.materialLineScale, e.materialLineWidth, e.materialMetalness, e.materialNormal, e.materialOpacity, e.materialPointSize, e.materialReference, e.materialReflectivity, e.materialRefractionRatio, e.materialRotation, e.materialRoughness, e.materialSheen, e.materialSheenRoughness, e.materialShininess, e.materialSpecular, e.materialSpecularColor, e.materialSpecularIntensity, e.materialSpecularStrength, e.materialThickness, e.materialTransmission;
57
- var L = e.max;
59
+ var R = e.max;
58
60
  e.maxMipLevel, e.mediumpModelViewMatrix, e.metalness;
59
- var R = e.min, z = e.mix;
61
+ var z = e.min, B = e.mix;
60
62
  e.mixElement, e.mod, e.modelDirection, e.modelNormalMatrix, e.modelPosition, e.modelRadius, e.modelScale, e.modelViewMatrix, e.modelViewPosition, e.modelViewProjection, e.modelWorldMatrix, e.modelWorldMatrixInverse, e.morphReference;
61
- var B = e.mrt, V = e.mul;
63
+ var V = e.mrt, H = e.mul;
62
64
  e.mx_aastep, e.mx_add, e.mx_atan2, e.mx_cell_noise_float, e.mx_contrast, e.mx_divide, e.mx_fractal_noise_float, e.mx_fractal_noise_vec2, e.mx_fractal_noise_vec3, e.mx_fractal_noise_vec4, e.mx_frame, e.mx_heighttonormal, e.mx_hsvtorgb, e.mx_ifequal, e.mx_ifgreater, e.mx_ifgreatereq, e.mx_invert, e.mx_modulo, e.mx_multiply, e.mx_noise_float, e.mx_noise_vec3, e.mx_noise_vec4, e.mx_place2d, e.mx_power, e.mx_ramp4, e.mx_ramplr, e.mx_ramptb, e.mx_rgbtohsv, e.mx_rotate2d, e.mx_rotate3d, e.mx_safepower, e.mx_separate, e.mx_splitlr, e.mx_splittb, e.mx_srgb_texture_to_lin_rec709, e.mx_subtract, e.mx_timer, e.mx_transform_uv, e.mx_unifiednoise2d, e.mx_unifiednoise3d, e.mx_worley_noise_float, e.mx_worley_noise_vec2, e.mx_worley_noise_vec3, e.negate, e.negateOnBackSide, e.neutralToneMapping, e.nodeArray, e.nodeImmutable;
63
- var H = e.nodeObject;
65
+ var U = e.nodeObject;
64
66
  e.nodeObjectIntent, e.nodeObjects, e.nodeProxy, e.nodeProxyIntent, e.normalFlat, e.normalGeometry, e.normalLocal, e.normalMap;
65
- var U = e.normalView;
67
+ var W = e.normalView;
66
68
  e.normalViewGeometry, e.normalWorld, e.normalWorldGeometry;
67
- var W = e.normalize;
69
+ var G = e.normalize;
68
70
  e.not, e.notEqual, e.numWorkgroups, e.objectDirection, e.objectGroup, e.objectPosition, e.objectRadius, e.objectScale, e.objectViewPosition, e.objectWorldMatrix, e.OnBeforeObjectUpdate, e.OnBeforeMaterialUpdate, e.OnObjectUpdate;
69
- var G = e.OnMaterialUpdate;
71
+ var K = e.OnMaterialUpdate;
70
72
  e.oneMinus, e.or;
71
- var K = e.orthographicDepthToViewZ;
73
+ var q = e.orthographicDepthToViewZ;
72
74
  e.oscSawtooth, e.oscSine, e.oscSquare, e.oscTriangle;
73
- var q = e.output, J = e.outputStruct;
75
+ var J = e.output, Y = e.outputStruct;
74
76
  e.overloadingFn, e.overrideNode, e.overrideNodes, e.packHalf2x16, e.packSnorm2x16, e.packUnorm2x16;
75
- var Y = e.packNormalToRGB;
77
+ var X = e.packNormalToRGB;
76
78
  e.parabola, e.parallaxDirection, e.parallaxUV, e.parameter;
77
- var X = e.pass, Z = e.passTexture;
79
+ var Z = e.pass, Q = e.passTexture;
78
80
  e.pcurve;
79
- var Q = e.perspectiveDepthToViewZ;
81
+ var $ = e.perspectiveDepthToViewZ;
80
82
  e.pmremTexture, e.pointShadow, e.pointUV, e.pointWidth, e.positionGeometry, e.positionLocal, e.positionPrevious;
81
- var $ = e.positionView;
83
+ var ee = e.positionView;
82
84
  e.positionViewDirection;
83
- var ee = e.positionWorld;
85
+ var te = e.positionWorld;
84
86
  e.positionWorldDirection, e.posterize;
85
- var te = e.pow;
87
+ var ne = e.pow;
86
88
  e.pow2, e.pow3, e.pow4;
87
- var ne = e.premultiplyAlpha, re = e.property;
89
+ var re = e.premultiplyAlpha, ie = e.property;
88
90
  e.radians;
89
- var ie = e.rand;
91
+ var ae = e.rand;
90
92
  e.range, e.rangeFog, e.rangeFogFactor, e.reciprocal;
91
- var ae = e.reference;
93
+ var oe = e.reference;
92
94
  e.referenceBuffer, e.reflect, e.reflectVector, e.reflectView;
93
- var oe = e.reflector;
95
+ var se = e.reflector;
94
96
  e.refract, e.refractVector, e.refractView, e.reinhardToneMapping, e.remap, e.remapClamp, e.renderGroup;
95
- var se = e.renderOutput;
97
+ var ce = e.renderOutput;
96
98
  e.rendererReference, e.replaceDefaultUV, e.rotate, e.rotateUV, e.roughness, e.round, e.rtt, e.sRGBTransferEOTF, e.sRGBTransferOETF;
97
- var ce = e.sample, le = e.sampler;
99
+ var le = e.sample, ue = e.sampler;
98
100
  e.samplerComparison, e.saturate, e.saturation, e.screen;
99
- var ue = e.screenCoordinate;
101
+ var de = e.screenCoordinate;
100
102
  e.screenDPR, e.screenSize;
101
- var de = e.screenUV;
103
+ var fe = e.screenUV;
102
104
  e.select, e.setCurrentStack, e.setName, e.shaderStages, e.shadow, e.shadowPositionWorld, e.shapeCircle, e.sharedUniformGroup, e.sheen, e.sheenRoughness, e.shiftLeft;
103
- var fe = e.shiftRight;
105
+ var pe = e.shiftRight;
104
106
  e.shininess;
105
- var pe = e.sign, me = e.sin;
107
+ var me = e.sign, he = e.sin;
106
108
  e.sinh, e.sinc, e.skinning;
107
- var he = e.smoothstep;
109
+ var ge = e.smoothstep;
108
110
  e.smoothstepElement, e.specularColor, e.specularF90, e.spherizeUV, e.split, e.spritesheetUV;
109
- var ge = e.sqrt;
111
+ var _e = e.sqrt;
110
112
  e.stack;
111
- var _e = e.step;
113
+ var ve = e.step;
112
114
  e.stepElement;
113
- var ve = e.storage;
115
+ var ye = e.storage;
114
116
  e.storageBarrier, e.storageTexture, e.storageTexture3D;
115
- var ye = e.struct, be = e.sub;
117
+ var be = e.struct, xe = e.sub;
116
118
  e.subgroupAdd, e.subgroupAll, e.subgroupAnd, e.subgroupAny, e.subgroupBallot, e.subgroupBroadcast, e.subgroupBroadcastFirst, e.subBuild, e.subgroupElect, e.subgroupExclusiveAdd, e.subgroupExclusiveMul, e.subgroupInclusiveAdd, e.subgroupInclusiveMul, e.subgroupIndex, e.subgroupMax, e.subgroupMin, e.subgroupMul, e.subgroupOr, e.subgroupShuffle, e.subgroupShuffleDown, e.subgroupShuffleUp, e.subgroupShuffleXor, e.subgroupSize, e.subgroupXor, e.tan, e.tanh, e.tangentGeometry, e.tangentLocal, e.tangentView, e.tangentWorld;
117
- var xe = e.texture;
119
+ var Se = e.texture;
118
120
  e.texture3D, e.textureBarrier, e.textureBicubic, e.textureBicubicLevel, e.textureCubeUV, e.textureLoad;
119
- var Se = e.textureSize;
121
+ var Ce = e.textureSize;
120
122
  e.textureLevel;
121
- var Ce = e.textureStore;
123
+ var we = e.textureStore;
122
124
  e.thickness, e.time;
123
- var we = e.toneMapping;
125
+ var Te = e.toneMapping;
124
126
  e.toneMappingExposure, e.toonOutlinePass, e.transformDirection, e.transformNormal, e.transformNormalByInverseViewMatrix, e.transformNormalByViewMatrix, e.transformNormalToView, e.transformedClearcoatNormalView, e.transformedNormalView, e.transformedNormalWorld, e.transmission, e.transpose, e.triNoise3D, e.triplanarTexture, e.triplanarTextures, e.trunc;
125
- var Te = e.uint;
127
+ var Ee = e.uint;
126
128
  e.uintBitsToFloat;
127
- var Ee = e.uniform, De = e.uniformArray;
129
+ var De = e.uniform, Oe = e.uniformArray;
128
130
  e.uniformCubeTexture, e.uniformGroup, e.uniformFlow, e.uniformTexture, e.unpackHalf2x16, e.unpackSnorm2x16, e.unpackUnorm2x16;
129
- var Oe = e.unpackRGBToNormal, ke = e.unpremultiplyAlpha;
131
+ var ke = e.unpackRGBToNormal, Ae = e.unpremultiplyAlpha;
130
132
  e.userData;
131
- var Ae = e.uv;
133
+ var je = e.uv;
132
134
  e.uvec2, e.uvec3, e.uvec4;
133
- var je = e.varying;
135
+ var Me = e.varying;
134
136
  e.varyingProperty;
135
- var Me = e.vec2, Ne = e.vec3, Pe = e.vec4;
137
+ var Ne = e.vec2, Pe = e.vec3, Fe = e.vec4;
136
138
  e.vectorComponents;
137
- var Fe = e.velocity;
139
+ var Ie = e.velocity;
138
140
  e.vertexColor, e.vertexIndex, e.vertexStage, e.vibrance, e.viewZToLogarithmicDepth;
139
- var Ie = e.viewZToOrthographicDepth, Le = e.viewZToPerspectiveDepth;
141
+ var Le = e.viewZToOrthographicDepth, Re = e.viewZToPerspectiveDepth;
140
142
  e.viewZToReversedOrthographicDepth, e.viewZToReversedPerspectiveDepth, e.viewport, e.viewportCoordinate, e.viewportDepthTexture, e.viewportLinearDepth, e.viewportMipTexture, e.viewportOpaqueMipTexture, e.viewportResolution, e.viewportSafeUV, e.viewportSharedTexture, e.viewportSize, e.viewportTexture, e.viewportUV;
141
- var Re = e.wgsl, ze = e.wgslFn;
143
+ var ze = e.wgsl, Be = e.wgslFn;
142
144
  e.workgroupArray, e.workgroupBarrier, e.workgroupId, e.workingToColorSpace, e.xor;
143
145
  //#endregion
144
- export { $, A, Ae as At, z as B, S as C, Ce as Ct, E as D, De as Dt, T as E, Ee as Et, P as F, Fe as Ft, W as G, V as H, F as I, Ie as It, J, K, I as L, Le as Lt, j as M, Me as Mt, M as N, Ne as Nt, O, Oe as Ot, N as P, Pe as Pt, Q, L as R, Re as Rt, x as S, Se as St, w as T, Te as Tt, H as U, B as V, U as W, X, Y, Z, _, _e as _t, i as a, ae as at, y as b, be as bt, o as c, ce as ct, u as d, de as dt, ee as et, d as f, fe as ft, h as g, ge as gt, m as h, he as ht, r as i, ie as it, D as j, je as jt, k, ke as kt, c as l, le as lt, p as m, me as mt, n, ne as nt, a as o, oe as ot, f as p, pe as pt, q, s as r, re as rt, G as s, se as st, t, te as tt, l as u, ue as ut, g as v, ve as vt, C as w, we as wt, b as x, xe as xt, v as y, ye as yt, R as z, ze as zt };
146
+ export { $, A, Ae as At, z as B, Be as Bt, S as C, Ce as Ct, E as D, De as Dt, T as E, Ee as Et, P as F, Fe as Ft, W as G, V as H, F as I, Ie as It, J, G as K, I as L, Le as Lt, O as M, Me as Mt, M as N, Ne as Nt, D as O, Oe as Ot, N as P, Pe as Pt, Q, L as R, Re as Rt, x as S, Se as St, w as T, Te as Tt, H as U, B as V, U as W, X, Y, Z, _, _e as _t, i as a, ae as at, y as b, be as bt, o as c, ce as ct, u as d, de as dt, ee as et, d as f, fe as ft, h as g, ge as gt, m as h, he as ht, r as i, ie as it, j, je as jt, k, ke as kt, c as l, le as lt, p as m, me as mt, n, ne as nt, a as o, oe as ot, f as p, pe as pt, q, s as r, re as rt, K as s, se as st, t, te as tt, l as u, ue as ut, g as v, ve as vt, C as w, we as wt, b as x, xe as xt, v as y, ye as yt, R as z, ze as zt };
145
147
 
146
- //# sourceMappingURL=three.tsl-Dew9p5yF.mjs.map
148
+ //# sourceMappingURL=three.tsl-DO_HZZuJ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"three.tsl-Dew9p5yF.mjs","names":[],"sources":["../../../../node_modules/three/build/three.tsl.js"],"sourcesContent":["/**\n * @license\n * Copyright 2010-2026 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nimport { TSL } from 'three/webgpu';\n\nconst BRDF_GGX = TSL.BRDF_GGX;\nconst BRDF_Lambert = TSL.BRDF_Lambert;\nconst BasicPointShadowFilter = TSL.BasicPointShadowFilter;\nconst BasicShadowFilter = TSL.BasicShadowFilter;\nconst Break = TSL.Break;\nconst Const = TSL.Const;\nconst Continue = TSL.Continue;\nconst DFGLUT = TSL.DFGLUT;\nconst D_GGX = TSL.D_GGX;\nconst Discard = TSL.Discard;\nconst EPSILON = TSL.EPSILON;\nconst F_Schlick = TSL.F_Schlick;\nconst Fn = TSL.Fn;\nconst INFINITY = TSL.INFINITY;\nconst If = TSL.If;\nconst Loop = TSL.Loop;\nconst NodeAccess = TSL.NodeAccess;\nconst NodeShaderStage = TSL.NodeShaderStage;\nconst NodeType = TSL.NodeType;\nconst NodeUpdateType = TSL.NodeUpdateType;\nconst PCFShadowFilter = TSL.PCFShadowFilter;\nconst PCFSoftShadowFilter = TSL.PCFSoftShadowFilter;\nconst PI = TSL.PI;\nconst PI2 = TSL.PI2;\nconst TWO_PI = TSL.TWO_PI;\nconst HALF_PI = TSL.HALF_PI;\nconst PointShadowFilter = TSL.PointShadowFilter;\nconst Return = TSL.Return;\nconst Schlick_to_F0 = TSL.Schlick_to_F0;\nconst ShaderNode = TSL.ShaderNode;\nconst Stack = TSL.Stack;\nconst Switch = TSL.Switch;\nconst TBNViewMatrix = TSL.TBNViewMatrix;\nconst VSMShadowFilter = TSL.VSMShadowFilter;\nconst V_GGX_SmithCorrelated = TSL.V_GGX_SmithCorrelated;\nconst Var = TSL.Var;\nconst VarIntent = TSL.VarIntent;\nconst abs = TSL.abs;\nconst acesFilmicToneMapping = TSL.acesFilmicToneMapping;\nconst acos = TSL.acos;\nconst acosh = TSL.acosh;\nconst add = TSL.add;\nconst addMethodChaining = TSL.addMethodChaining;\nconst addNodeElement = TSL.addNodeElement;\nconst agxToneMapping = TSL.agxToneMapping;\nconst all = TSL.all;\nconst alphaT = TSL.alphaT;\nconst ambientOcclusion = TSL.ambientOcclusion;\nconst and = TSL.and;\nconst anisotropy = TSL.anisotropy;\nconst anisotropyB = TSL.anisotropyB;\nconst anisotropyT = TSL.anisotropyT;\nconst any = TSL.any;\nconst append = TSL.append;\nconst array = TSL.array;\nconst asin = TSL.asin;\nconst asinh = TSL.asinh;\nconst assign = TSL.assign;\nconst atan = TSL.atan;\nconst atanh = TSL.atanh;\nconst atomicAdd = TSL.atomicAdd;\nconst atomicAnd = TSL.atomicAnd;\nconst atomicFunc = TSL.atomicFunc;\nconst atomicLoad = TSL.atomicLoad;\nconst atomicMax = TSL.atomicMax;\nconst atomicMin = TSL.atomicMin;\nconst atomicOr = TSL.atomicOr;\nconst atomicStore = TSL.atomicStore;\nconst atomicSub = TSL.atomicSub;\nconst atomicXor = TSL.atomicXor;\nconst attenuationColor = TSL.attenuationColor;\nconst attenuationDistance = TSL.attenuationDistance;\nconst attribute = TSL.attribute;\nconst attributeArray = TSL.attributeArray;\nconst backgroundBlurriness = TSL.backgroundBlurriness;\nconst backgroundIntensity = TSL.backgroundIntensity;\nconst backgroundRotation = TSL.backgroundRotation;\nconst batch = TSL.batch;\nconst bentNormalView = TSL.bentNormalView;\nconst billboarding = TSL.billboarding;\nconst bitAnd = TSL.bitAnd;\nconst bitNot = TSL.bitNot;\nconst bitOr = TSL.bitOr;\nconst bitXor = TSL.bitXor;\nconst bitangentGeometry = TSL.bitangentGeometry;\nconst bitangentLocal = TSL.bitangentLocal;\nconst bitangentView = TSL.bitangentView;\nconst bitangentWorld = TSL.bitangentWorld;\nconst bitcast = TSL.bitcast;\nconst blendBurn = TSL.blendBurn;\nconst blendColor = TSL.blendColor;\nconst blendDodge = TSL.blendDodge;\nconst blendOverlay = TSL.blendOverlay;\nconst blendScreen = TSL.blendScreen;\nconst blur = TSL.blur;\nconst bool = TSL.bool;\nconst buffer = TSL.buffer;\nconst bufferAttribute = TSL.bufferAttribute;\nconst bumpMap = TSL.bumpMap;\nconst builtin = TSL.builtin;\nconst builtinAOContext = TSL.builtinAOContext;\nconst builtinShadowContext = TSL.builtinShadowContext;\nconst bvec2 = TSL.bvec2;\nconst bvec3 = TSL.bvec3;\nconst bvec4 = TSL.bvec4;\nconst bypass = TSL.bypass;\nconst cache = TSL.cache;\nconst call = TSL.call;\nconst cameraFar = TSL.cameraFar;\nconst cameraIndex = TSL.cameraIndex;\nconst cameraNear = TSL.cameraNear;\nconst cameraNormalMatrix = TSL.cameraNormalMatrix;\nconst cameraPosition = TSL.cameraPosition;\nconst cameraProjectionMatrix = TSL.cameraProjectionMatrix;\nconst cameraProjectionMatrixInverse = TSL.cameraProjectionMatrixInverse;\nconst cameraViewMatrix = TSL.cameraViewMatrix;\nconst cameraViewport = TSL.cameraViewport;\nconst cameraWorldMatrix = TSL.cameraWorldMatrix;\nconst cbrt = TSL.cbrt;\nconst cdl = TSL.cdl;\nconst ceil = TSL.ceil;\nconst checker = TSL.checker;\nconst cineonToneMapping = TSL.cineonToneMapping;\nconst clamp = TSL.clamp;\nconst clearcoat = TSL.clearcoat;\nconst clearcoatNormalView = TSL.clearcoatNormalView;\nconst clearcoatRoughness = TSL.clearcoatRoughness;\nconst clipSpace = TSL.clipSpace;\nconst code = TSL.code;\nconst color = TSL.color;\nconst colorSpaceToWorking = TSL.colorSpaceToWorking;\nconst colorToDirection = TSL.colorToDirection;\nconst compute = TSL.compute;\nconst computeKernel = TSL.computeKernel;\nconst computeSkinning = TSL.computeSkinning;\nconst context = TSL.context;\nconst convert = TSL.convert;\nconst convertColorSpace = TSL.convertColorSpace;\nconst convertToTexture = TSL.convertToTexture;\nconst countLeadingZeros = TSL.countLeadingZeros;\nconst countOneBits = TSL.countOneBits;\nconst countTrailingZeros = TSL.countTrailingZeros;\nconst cos = TSL.cos;\nconst cosh = TSL.cosh;\nconst cross = TSL.cross;\nconst cubeTexture = TSL.cubeTexture;\nconst cubeTextureBase = TSL.cubeTextureBase;\nconst dFdx = TSL.dFdx;\nconst dFdy = TSL.dFdy;\nconst dashSize = TSL.dashSize;\nconst debug = TSL.debug;\nconst decrement = TSL.decrement;\nconst decrementBefore = TSL.decrementBefore;\nconst defaultBuildStages = TSL.defaultBuildStages;\nconst defaultShaderStages = TSL.defaultShaderStages;\nconst defined = TSL.defined;\nconst degrees = TSL.degrees;\nconst deltaTime = TSL.deltaTime;\nconst densityFog = TSL.densityFog;\nconst densityFogFactor = TSL.densityFogFactor;\nconst depth = TSL.depth;\nconst depthPass = TSL.depthPass;\nconst determinant = TSL.determinant;\nconst difference = TSL.difference;\nconst diffuseColor = TSL.diffuseColor;\nconst directPointLight = TSL.directPointLight;\nconst directionToColor = TSL.directionToColor;\nconst directionToFaceDirection = TSL.directionToFaceDirection;\nconst dispersion = TSL.dispersion;\nconst distance = TSL.distance;\nconst div = TSL.div;\nconst dot = TSL.dot;\nconst drawIndex = TSL.drawIndex;\nconst dynamicBufferAttribute = TSL.dynamicBufferAttribute;\nconst element = TSL.element;\nconst emissive = TSL.emissive;\nconst equal = TSL.equal;\nconst equirectDirection = TSL.equirectDirection;\nconst equirectUV = TSL.equirectUV;\nconst exp = TSL.exp;\nconst exp2 = TSL.exp2;\nconst exponentialHeightFogFactor = TSL.exponentialHeightFogFactor;\nconst expression = TSL.expression;\nconst faceDirection = TSL.faceDirection;\nconst faceForward = TSL.faceForward;\nconst faceforward = TSL.faceforward;\nconst float = TSL.float;\nconst floatBitsToInt = TSL.floatBitsToInt;\nconst floatBitsToUint = TSL.floatBitsToUint;\nconst floor = TSL.floor;\nconst fog = TSL.fog;\nconst fract = TSL.fract;\nconst frameGroup = TSL.frameGroup;\nconst frameId = TSL.frameId;\nconst frontFacing = TSL.frontFacing;\nconst fwidth = TSL.fwidth;\nconst gain = TSL.gain;\nconst gapSize = TSL.gapSize;\nconst getConstNodeType = TSL.getConstNodeType;\nconst getCurrentStack = TSL.getCurrentStack;\nconst getDirection = TSL.getDirection;\nconst getDistanceAttenuation = TSL.getDistanceAttenuation;\nconst getGeometryRoughness = TSL.getGeometryRoughness;\nconst getNormalFromDepth = TSL.getNormalFromDepth;\nconst interleavedGradientNoise = TSL.interleavedGradientNoise;\nconst vogelDiskSample = TSL.vogelDiskSample;\nconst getParallaxCorrectNormal = TSL.getParallaxCorrectNormal;\nconst getRoughness = TSL.getRoughness;\nconst getScreenPosition = TSL.getScreenPosition;\nconst getShIrradianceAt = TSL.getShIrradianceAt;\nconst getShadowMaterial = TSL.getShadowMaterial;\nconst getShadowRenderObjectFunction = TSL.getShadowRenderObjectFunction;\nconst getTextureIndex = TSL.getTextureIndex;\nconst getViewPosition = TSL.getViewPosition;\nconst globalId = TSL.globalId;\nconst glsl = TSL.glsl;\nconst glslFn = TSL.glslFn;\nconst grayscale = TSL.grayscale;\nconst greaterThan = TSL.greaterThan;\nconst greaterThanEqual = TSL.greaterThanEqual;\nconst hash = TSL.hash;\nconst highpModelNormalViewMatrix = TSL.highpModelNormalViewMatrix;\nconst highpModelViewMatrix = TSL.highpModelViewMatrix;\nconst hue = TSL.hue;\nconst increment = TSL.increment;\nconst incrementBefore = TSL.incrementBefore;\nconst instance = TSL.instance;\nconst instanceIndex = TSL.instanceIndex;\nconst instancedArray = TSL.instancedArray;\nconst instancedBufferAttribute = TSL.instancedBufferAttribute;\nconst instancedDynamicBufferAttribute = TSL.instancedDynamicBufferAttribute;\nconst instancedMesh = TSL.instancedMesh;\nconst int = TSL.int;\nconst intBitsToFloat = TSL.intBitsToFloat;\nconst inverse = TSL.inverse;\nconst inverseSqrt = TSL.inverseSqrt;\nconst inversesqrt = TSL.inversesqrt;\nconst invocationLocalIndex = TSL.invocationLocalIndex;\nconst invocationSubgroupIndex = TSL.invocationSubgroupIndex;\nconst ior = TSL.ior;\nconst iridescence = TSL.iridescence;\nconst iridescenceIOR = TSL.iridescenceIOR;\nconst iridescenceThickness = TSL.iridescenceThickness;\nconst ivec2 = TSL.ivec2;\nconst ivec3 = TSL.ivec3;\nconst ivec4 = TSL.ivec4;\nconst js = TSL.js;\nconst label = TSL.label;\nconst length = TSL.length;\nconst lengthSq = TSL.lengthSq;\nconst lessThan = TSL.lessThan;\nconst lessThanEqual = TSL.lessThanEqual;\nconst lightPosition = TSL.lightPosition;\nconst lightProjectionUV = TSL.lightProjectionUV;\nconst lightShadowMatrix = TSL.lightShadowMatrix;\nconst lightTargetDirection = TSL.lightTargetDirection;\nconst lightTargetPosition = TSL.lightTargetPosition;\nconst lightViewPosition = TSL.lightViewPosition;\nconst lightingContext = TSL.lightingContext;\nconst lights = TSL.lights;\nconst linearDepth = TSL.linearDepth;\nconst linearToneMapping = TSL.linearToneMapping;\nconst localId = TSL.localId;\nconst log = TSL.log;\nconst log2 = TSL.log2;\nconst logarithmicDepthToViewZ = TSL.logarithmicDepthToViewZ;\nconst luminance = TSL.luminance;\nconst mat2 = TSL.mat2;\nconst mat3 = TSL.mat3;\nconst mat4 = TSL.mat4;\nconst matcapUV = TSL.matcapUV;\nconst materialAO = TSL.materialAO;\nconst materialAlphaTest = TSL.materialAlphaTest;\nconst materialAnisotropy = TSL.materialAnisotropy;\nconst materialAnisotropyVector = TSL.materialAnisotropyVector;\nconst materialAttenuationColor = TSL.materialAttenuationColor;\nconst materialAttenuationDistance = TSL.materialAttenuationDistance;\nconst materialClearcoat = TSL.materialClearcoat;\nconst materialClearcoatNormal = TSL.materialClearcoatNormal;\nconst materialClearcoatRoughness = TSL.materialClearcoatRoughness;\nconst materialColor = TSL.materialColor;\nconst materialDispersion = TSL.materialDispersion;\nconst materialEmissive = TSL.materialEmissive;\nconst materialEnvIntensity = TSL.materialEnvIntensity;\nconst materialEnvRotation = TSL.materialEnvRotation;\nconst materialIOR = TSL.materialIOR;\nconst materialIridescence = TSL.materialIridescence;\nconst materialIridescenceIOR = TSL.materialIridescenceIOR;\nconst materialIridescenceThickness = TSL.materialIridescenceThickness;\nconst materialLightMap = TSL.materialLightMap;\nconst materialLineDashOffset = TSL.materialLineDashOffset;\nconst materialLineDashSize = TSL.materialLineDashSize;\nconst materialLineGapSize = TSL.materialLineGapSize;\nconst materialLineScale = TSL.materialLineScale;\nconst materialLineWidth = TSL.materialLineWidth;\nconst materialMetalness = TSL.materialMetalness;\nconst materialNormal = TSL.materialNormal;\nconst materialOpacity = TSL.materialOpacity;\nconst materialPointSize = TSL.materialPointSize;\nconst materialReference = TSL.materialReference;\nconst materialReflectivity = TSL.materialReflectivity;\nconst materialRefractionRatio = TSL.materialRefractionRatio;\nconst materialRotation = TSL.materialRotation;\nconst materialRoughness = TSL.materialRoughness;\nconst materialSheen = TSL.materialSheen;\nconst materialSheenRoughness = TSL.materialSheenRoughness;\nconst materialShininess = TSL.materialShininess;\nconst materialSpecular = TSL.materialSpecular;\nconst materialSpecularColor = TSL.materialSpecularColor;\nconst materialSpecularIntensity = TSL.materialSpecularIntensity;\nconst materialSpecularStrength = TSL.materialSpecularStrength;\nconst materialThickness = TSL.materialThickness;\nconst materialTransmission = TSL.materialTransmission;\nconst max = TSL.max;\nconst maxMipLevel = TSL.maxMipLevel;\nconst mediumpModelViewMatrix = TSL.mediumpModelViewMatrix;\nconst metalness = TSL.metalness;\nconst min = TSL.min;\nconst mix = TSL.mix;\nconst mixElement = TSL.mixElement;\nconst mod = TSL.mod;\nconst modelDirection = TSL.modelDirection;\nconst modelNormalMatrix = TSL.modelNormalMatrix;\nconst modelPosition = TSL.modelPosition;\nconst modelRadius = TSL.modelRadius;\nconst modelScale = TSL.modelScale;\nconst modelViewMatrix = TSL.modelViewMatrix;\nconst modelViewPosition = TSL.modelViewPosition;\nconst modelViewProjection = TSL.modelViewProjection;\nconst modelWorldMatrix = TSL.modelWorldMatrix;\nconst modelWorldMatrixInverse = TSL.modelWorldMatrixInverse;\nconst morphReference = TSL.morphReference;\nconst mrt = TSL.mrt;\nconst mul = TSL.mul;\nconst mx_aastep = TSL.mx_aastep;\nconst mx_add = TSL.mx_add;\nconst mx_atan2 = TSL.mx_atan2;\nconst mx_cell_noise_float = TSL.mx_cell_noise_float;\nconst mx_contrast = TSL.mx_contrast;\nconst mx_divide = TSL.mx_divide;\nconst mx_fractal_noise_float = TSL.mx_fractal_noise_float;\nconst mx_fractal_noise_vec2 = TSL.mx_fractal_noise_vec2;\nconst mx_fractal_noise_vec3 = TSL.mx_fractal_noise_vec3;\nconst mx_fractal_noise_vec4 = TSL.mx_fractal_noise_vec4;\nconst mx_frame = TSL.mx_frame;\nconst mx_heighttonormal = TSL.mx_heighttonormal;\nconst mx_hsvtorgb = TSL.mx_hsvtorgb;\nconst mx_ifequal = TSL.mx_ifequal;\nconst mx_ifgreater = TSL.mx_ifgreater;\nconst mx_ifgreatereq = TSL.mx_ifgreatereq;\nconst mx_invert = TSL.mx_invert;\nconst mx_modulo = TSL.mx_modulo;\nconst mx_multiply = TSL.mx_multiply;\nconst mx_noise_float = TSL.mx_noise_float;\nconst mx_noise_vec3 = TSL.mx_noise_vec3;\nconst mx_noise_vec4 = TSL.mx_noise_vec4;\nconst mx_place2d = TSL.mx_place2d;\nconst mx_power = TSL.mx_power;\nconst mx_ramp4 = TSL.mx_ramp4;\nconst mx_ramplr = TSL.mx_ramplr;\nconst mx_ramptb = TSL.mx_ramptb;\nconst mx_rgbtohsv = TSL.mx_rgbtohsv;\nconst mx_rotate2d = TSL.mx_rotate2d;\nconst mx_rotate3d = TSL.mx_rotate3d;\nconst mx_safepower = TSL.mx_safepower;\nconst mx_separate = TSL.mx_separate;\nconst mx_splitlr = TSL.mx_splitlr;\nconst mx_splittb = TSL.mx_splittb;\nconst mx_srgb_texture_to_lin_rec709 = TSL.mx_srgb_texture_to_lin_rec709;\nconst mx_subtract = TSL.mx_subtract;\nconst mx_timer = TSL.mx_timer;\nconst mx_transform_uv = TSL.mx_transform_uv;\nconst mx_unifiednoise2d = TSL.mx_unifiednoise2d;\nconst mx_unifiednoise3d = TSL.mx_unifiednoise3d;\nconst mx_worley_noise_float = TSL.mx_worley_noise_float;\nconst mx_worley_noise_vec2 = TSL.mx_worley_noise_vec2;\nconst mx_worley_noise_vec3 = TSL.mx_worley_noise_vec3;\nconst negate = TSL.negate;\nconst negateOnBackSide = TSL.negateOnBackSide;\nconst neutralToneMapping = TSL.neutralToneMapping;\nconst nodeArray = TSL.nodeArray;\nconst nodeImmutable = TSL.nodeImmutable;\nconst nodeObject = TSL.nodeObject;\nconst nodeObjectIntent = TSL.nodeObjectIntent;\nconst nodeObjects = TSL.nodeObjects;\nconst nodeProxy = TSL.nodeProxy;\nconst nodeProxyIntent = TSL.nodeProxyIntent;\nconst normalFlat = TSL.normalFlat;\nconst normalGeometry = TSL.normalGeometry;\nconst normalLocal = TSL.normalLocal;\nconst normalMap = TSL.normalMap;\nconst normalView = TSL.normalView;\nconst normalViewGeometry = TSL.normalViewGeometry;\nconst normalWorld = TSL.normalWorld;\nconst normalWorldGeometry = TSL.normalWorldGeometry;\nconst normalize = TSL.normalize;\nconst not = TSL.not;\nconst notEqual = TSL.notEqual;\nconst numWorkgroups = TSL.numWorkgroups;\nconst objectDirection = TSL.objectDirection;\nconst objectGroup = TSL.objectGroup;\nconst objectPosition = TSL.objectPosition;\nconst objectRadius = TSL.objectRadius;\nconst objectScale = TSL.objectScale;\nconst objectViewPosition = TSL.objectViewPosition;\nconst objectWorldMatrix = TSL.objectWorldMatrix;\nconst OnBeforeObjectUpdate = TSL.OnBeforeObjectUpdate;\nconst OnBeforeMaterialUpdate = TSL.OnBeforeMaterialUpdate;\nconst OnObjectUpdate = TSL.OnObjectUpdate;\nconst OnMaterialUpdate = TSL.OnMaterialUpdate;\nconst oneMinus = TSL.oneMinus;\nconst or = TSL.or;\nconst orthographicDepthToViewZ = TSL.orthographicDepthToViewZ;\nconst oscSawtooth = TSL.oscSawtooth;\nconst oscSine = TSL.oscSine;\nconst oscSquare = TSL.oscSquare;\nconst oscTriangle = TSL.oscTriangle;\nconst output = TSL.output;\nconst outputStruct = TSL.outputStruct;\nconst overloadingFn = TSL.overloadingFn;\nconst overrideNode = TSL.overrideNode;\nconst overrideNodes = TSL.overrideNodes;\nconst packHalf2x16 = TSL.packHalf2x16;\nconst packSnorm2x16 = TSL.packSnorm2x16;\nconst packUnorm2x16 = TSL.packUnorm2x16;\nconst packNormalToRGB = TSL.packNormalToRGB;\nconst parabola = TSL.parabola;\nconst parallaxDirection = TSL.parallaxDirection;\nconst parallaxUV = TSL.parallaxUV;\nconst parameter = TSL.parameter;\nconst pass = TSL.pass;\nconst passTexture = TSL.passTexture;\nconst pcurve = TSL.pcurve;\nconst perspectiveDepthToViewZ = TSL.perspectiveDepthToViewZ;\nconst pmremTexture = TSL.pmremTexture;\nconst pointShadow = TSL.pointShadow;\nconst pointUV = TSL.pointUV;\nconst pointWidth = TSL.pointWidth;\nconst positionGeometry = TSL.positionGeometry;\nconst positionLocal = TSL.positionLocal;\nconst positionPrevious = TSL.positionPrevious;\nconst positionView = TSL.positionView;\nconst positionViewDirection = TSL.positionViewDirection;\nconst positionWorld = TSL.positionWorld;\nconst positionWorldDirection = TSL.positionWorldDirection;\nconst posterize = TSL.posterize;\nconst pow = TSL.pow;\nconst pow2 = TSL.pow2;\nconst pow3 = TSL.pow3;\nconst pow4 = TSL.pow4;\nconst premultiplyAlpha = TSL.premultiplyAlpha;\nconst property = TSL.property;\nconst radians = TSL.radians;\nconst rand = TSL.rand;\nconst range = TSL.range;\nconst rangeFog = TSL.rangeFog;\nconst rangeFogFactor = TSL.rangeFogFactor;\nconst reciprocal = TSL.reciprocal;\nconst reference = TSL.reference;\nconst referenceBuffer = TSL.referenceBuffer;\nconst reflect = TSL.reflect;\nconst reflectVector = TSL.reflectVector;\nconst reflectView = TSL.reflectView;\nconst reflector = TSL.reflector;\nconst refract = TSL.refract;\nconst refractVector = TSL.refractVector;\nconst refractView = TSL.refractView;\nconst reinhardToneMapping = TSL.reinhardToneMapping;\nconst remap = TSL.remap;\nconst remapClamp = TSL.remapClamp;\nconst renderGroup = TSL.renderGroup;\nconst renderOutput = TSL.renderOutput;\nconst rendererReference = TSL.rendererReference;\nconst replaceDefaultUV = TSL.replaceDefaultUV;\nconst rotate = TSL.rotate;\nconst rotateUV = TSL.rotateUV;\nconst roughness = TSL.roughness;\nconst round = TSL.round;\nconst rtt = TSL.rtt;\nconst sRGBTransferEOTF = TSL.sRGBTransferEOTF;\nconst sRGBTransferOETF = TSL.sRGBTransferOETF;\nconst sample = TSL.sample;\nconst sampler = TSL.sampler;\nconst samplerComparison = TSL.samplerComparison;\nconst saturate = TSL.saturate;\nconst saturation = TSL.saturation;\nconst screen = TSL.screen;\nconst screenCoordinate = TSL.screenCoordinate;\nconst screenDPR = TSL.screenDPR;\nconst screenSize = TSL.screenSize;\nconst screenUV = TSL.screenUV;\nconst select = TSL.select;\nconst setCurrentStack = TSL.setCurrentStack;\nconst setName = TSL.setName;\nconst shaderStages = TSL.shaderStages;\nconst shadow = TSL.shadow;\nconst shadowPositionWorld = TSL.shadowPositionWorld;\nconst shapeCircle = TSL.shapeCircle;\nconst sharedUniformGroup = TSL.sharedUniformGroup;\nconst sheen = TSL.sheen;\nconst sheenRoughness = TSL.sheenRoughness;\nconst shiftLeft = TSL.shiftLeft;\nconst shiftRight = TSL.shiftRight;\nconst shininess = TSL.shininess;\nconst sign = TSL.sign;\nconst sin = TSL.sin;\nconst sinh = TSL.sinh;\nconst sinc = TSL.sinc;\nconst skinning = TSL.skinning;\nconst smoothstep = TSL.smoothstep;\nconst smoothstepElement = TSL.smoothstepElement;\nconst specularColor = TSL.specularColor;\nconst specularF90 = TSL.specularF90;\nconst spherizeUV = TSL.spherizeUV;\nconst split = TSL.split;\nconst spritesheetUV = TSL.spritesheetUV;\nconst sqrt = TSL.sqrt;\nconst stack = TSL.stack;\nconst step = TSL.step;\nconst stepElement = TSL.stepElement;\nconst storage = TSL.storage;\nconst storageBarrier = TSL.storageBarrier;\nconst storageTexture = TSL.storageTexture;\nconst storageTexture3D = TSL.storageTexture3D;\nconst struct = TSL.struct;\nconst sub = TSL.sub;\nconst subgroupAdd = TSL.subgroupAdd;\nconst subgroupAll = TSL.subgroupAll;\nconst subgroupAnd = TSL.subgroupAnd;\nconst subgroupAny = TSL.subgroupAny;\nconst subgroupBallot = TSL.subgroupBallot;\nconst subgroupBroadcast = TSL.subgroupBroadcast;\nconst subgroupBroadcastFirst = TSL.subgroupBroadcastFirst;\nconst subBuild = TSL.subBuild;\nconst subgroupElect = TSL.subgroupElect;\nconst subgroupExclusiveAdd = TSL.subgroupExclusiveAdd;\nconst subgroupExclusiveMul = TSL.subgroupExclusiveMul;\nconst subgroupInclusiveAdd = TSL.subgroupInclusiveAdd;\nconst subgroupInclusiveMul = TSL.subgroupInclusiveMul;\nconst subgroupIndex = TSL.subgroupIndex;\nconst subgroupMax = TSL.subgroupMax;\nconst subgroupMin = TSL.subgroupMin;\nconst subgroupMul = TSL.subgroupMul;\nconst subgroupOr = TSL.subgroupOr;\nconst subgroupShuffle = TSL.subgroupShuffle;\nconst subgroupShuffleDown = TSL.subgroupShuffleDown;\nconst subgroupShuffleUp = TSL.subgroupShuffleUp;\nconst subgroupShuffleXor = TSL.subgroupShuffleXor;\nconst subgroupSize = TSL.subgroupSize;\nconst subgroupXor = TSL.subgroupXor;\nconst tan = TSL.tan;\nconst tanh = TSL.tanh;\nconst tangentGeometry = TSL.tangentGeometry;\nconst tangentLocal = TSL.tangentLocal;\nconst tangentView = TSL.tangentView;\nconst tangentWorld = TSL.tangentWorld;\nconst texture = TSL.texture;\nconst texture3D = TSL.texture3D;\nconst textureBarrier = TSL.textureBarrier;\nconst textureBicubic = TSL.textureBicubic;\nconst textureBicubicLevel = TSL.textureBicubicLevel;\nconst textureCubeUV = TSL.textureCubeUV;\nconst textureLoad = TSL.textureLoad;\nconst textureSize = TSL.textureSize;\nconst textureLevel = TSL.textureLevel;\nconst textureStore = TSL.textureStore;\nconst thickness = TSL.thickness;\nconst time = TSL.time;\nconst toneMapping = TSL.toneMapping;\nconst toneMappingExposure = TSL.toneMappingExposure;\nconst toonOutlinePass = TSL.toonOutlinePass;\nconst transformDirection = TSL.transformDirection;\nconst transformNormal = TSL.transformNormal;\nconst transformNormalByInverseViewMatrix = TSL.transformNormalByInverseViewMatrix;\nconst transformNormalByViewMatrix = TSL.transformNormalByViewMatrix;\nconst transformNormalToView = TSL.transformNormalToView;\nconst transformedClearcoatNormalView = TSL.transformedClearcoatNormalView;\nconst transformedNormalView = TSL.transformedNormalView;\nconst transformedNormalWorld = TSL.transformedNormalWorld;\nconst transmission = TSL.transmission;\nconst transpose = TSL.transpose;\nconst triNoise3D = TSL.triNoise3D;\nconst triplanarTexture = TSL.triplanarTexture;\nconst triplanarTextures = TSL.triplanarTextures;\nconst trunc = TSL.trunc;\nconst uint = TSL.uint;\nconst uintBitsToFloat = TSL.uintBitsToFloat;\nconst uniform = TSL.uniform;\nconst uniformArray = TSL.uniformArray;\nconst uniformCubeTexture = TSL.uniformCubeTexture;\nconst uniformGroup = TSL.uniformGroup;\nconst uniformFlow = TSL.uniformFlow;\nconst uniformTexture = TSL.uniformTexture;\nconst unpackHalf2x16 = TSL.unpackHalf2x16;\nconst unpackSnorm2x16 = TSL.unpackSnorm2x16;\nconst unpackUnorm2x16 = TSL.unpackUnorm2x16;\nconst unpackRGBToNormal = TSL.unpackRGBToNormal;\nconst unpremultiplyAlpha = TSL.unpremultiplyAlpha;\nconst userData = TSL.userData;\nconst uv = TSL.uv;\nconst uvec2 = TSL.uvec2;\nconst uvec3 = TSL.uvec3;\nconst uvec4 = TSL.uvec4;\nconst varying = TSL.varying;\nconst varyingProperty = TSL.varyingProperty;\nconst vec2 = TSL.vec2;\nconst vec3 = TSL.vec3;\nconst vec4 = TSL.vec4;\nconst vectorComponents = TSL.vectorComponents;\nconst velocity = TSL.velocity;\nconst vertexColor = TSL.vertexColor;\nconst vertexIndex = TSL.vertexIndex;\nconst vertexStage = TSL.vertexStage;\nconst vibrance = TSL.vibrance;\nconst viewZToLogarithmicDepth = TSL.viewZToLogarithmicDepth;\nconst viewZToOrthographicDepth = TSL.viewZToOrthographicDepth;\nconst viewZToPerspectiveDepth = TSL.viewZToPerspectiveDepth;\nconst viewZToReversedOrthographicDepth = TSL.viewZToReversedOrthographicDepth;\nconst viewZToReversedPerspectiveDepth = TSL.viewZToReversedPerspectiveDepth;\nconst viewport = TSL.viewport;\nconst viewportCoordinate = TSL.viewportCoordinate;\nconst viewportDepthTexture = TSL.viewportDepthTexture;\nconst viewportLinearDepth = TSL.viewportLinearDepth;\nconst viewportMipTexture = TSL.viewportMipTexture;\nconst viewportOpaqueMipTexture = TSL.viewportOpaqueMipTexture;\nconst viewportResolution = TSL.viewportResolution;\nconst viewportSafeUV = TSL.viewportSafeUV;\nconst viewportSharedTexture = TSL.viewportSharedTexture;\nconst viewportSize = TSL.viewportSize;\nconst viewportTexture = TSL.viewportTexture;\nconst viewportUV = TSL.viewportUV;\nconst wgsl = TSL.wgsl;\nconst wgslFn = TSL.wgslFn;\nconst workgroupArray = TSL.workgroupArray;\nconst workgroupBarrier = TSL.workgroupBarrier;\nconst workgroupId = TSL.workgroupId;\nconst workingToColorSpace = TSL.workingToColorSpace;\nconst xor = TSL.xor;\n\n/*\n// Use this code to generate the export statements dynamically\n\nlet code = '';\n\nfor ( const key of Object.keys( THREE.TSL ) ) {\n\n\tcode += `export const ${ key } = TSL.${ key };\\n`;\n\n}\n\nlog( code );\n//*/\n\nexport { BRDF_GGX, BRDF_Lambert, BasicPointShadowFilter, BasicShadowFilter, Break, Const, Continue, DFGLUT, D_GGX, Discard, EPSILON, F_Schlick, Fn, HALF_PI, INFINITY, If, Loop, NodeAccess, NodeShaderStage, NodeType, NodeUpdateType, OnBeforeMaterialUpdate, OnBeforeObjectUpdate, OnMaterialUpdate, OnObjectUpdate, PCFShadowFilter, PCFSoftShadowFilter, PI, PI2, PointShadowFilter, Return, Schlick_to_F0, ShaderNode, Stack, Switch, TBNViewMatrix, TWO_PI, VSMShadowFilter, V_GGX_SmithCorrelated, Var, VarIntent, abs, acesFilmicToneMapping, acos, acosh, add, addMethodChaining, addNodeElement, agxToneMapping, all, alphaT, ambientOcclusion, and, anisotropy, anisotropyB, anisotropyT, any, append, array, asin, asinh, assign, atan, atanh, atomicAdd, atomicAnd, atomicFunc, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, attenuationColor, attenuationDistance, attribute, attributeArray, backgroundBlurriness, backgroundIntensity, backgroundRotation, batch, bentNormalView, billboarding, bitAnd, bitNot, bitOr, bitXor, bitangentGeometry, bitangentLocal, bitangentView, bitangentWorld, bitcast, blendBurn, blendColor, blendDodge, blendOverlay, blendScreen, blur, bool, buffer, bufferAttribute, builtin, builtinAOContext, builtinShadowContext, bumpMap, bvec2, bvec3, bvec4, bypass, cache, call, cameraFar, cameraIndex, cameraNear, cameraNormalMatrix, cameraPosition, cameraProjectionMatrix, cameraProjectionMatrixInverse, cameraViewMatrix, cameraViewport, cameraWorldMatrix, cbrt, cdl, ceil, checker, cineonToneMapping, clamp, clearcoat, clearcoatNormalView, clearcoatRoughness, clipSpace, code, color, colorSpaceToWorking, colorToDirection, compute, computeKernel, computeSkinning, context, convert, convertColorSpace, convertToTexture, cos, cosh, countLeadingZeros, countOneBits, countTrailingZeros, cross, cubeTexture, cubeTextureBase, dFdx, dFdy, dashSize, debug, decrement, decrementBefore, defaultBuildStages, defaultShaderStages, defined, degrees, deltaTime, densityFog, densityFogFactor, depth, depthPass, determinant, difference, diffuseColor, directPointLight, directionToColor, directionToFaceDirection, dispersion, distance, div, dot, drawIndex, dynamicBufferAttribute, element, emissive, equal, equirectDirection, equirectUV, exp, exp2, exponentialHeightFogFactor, expression, faceDirection, faceForward, faceforward, float, floatBitsToInt, floatBitsToUint, floor, fog, fract, frameGroup, frameId, frontFacing, fwidth, gain, gapSize, getConstNodeType, getCurrentStack, getDirection, getDistanceAttenuation, getGeometryRoughness, getNormalFromDepth, getParallaxCorrectNormal, getRoughness, getScreenPosition, getShIrradianceAt, getShadowMaterial, getShadowRenderObjectFunction, getTextureIndex, getViewPosition, globalId, glsl, glslFn, grayscale, greaterThan, greaterThanEqual, hash, highpModelNormalViewMatrix, highpModelViewMatrix, hue, increment, incrementBefore, instance, instanceIndex, instancedArray, instancedBufferAttribute, instancedDynamicBufferAttribute, instancedMesh, int, intBitsToFloat, interleavedGradientNoise, inverse, inverseSqrt, inversesqrt, invocationLocalIndex, invocationSubgroupIndex, ior, iridescence, iridescenceIOR, iridescenceThickness, ivec2, ivec3, ivec4, js, label, length, lengthSq, lessThan, lessThanEqual, lightPosition, lightProjectionUV, lightShadowMatrix, lightTargetDirection, lightTargetPosition, lightViewPosition, lightingContext, lights, linearDepth, linearToneMapping, localId, log, log2, logarithmicDepthToViewZ, luminance, mat2, mat3, mat4, matcapUV, materialAO, materialAlphaTest, materialAnisotropy, materialAnisotropyVector, materialAttenuationColor, materialAttenuationDistance, materialClearcoat, materialClearcoatNormal, materialClearcoatRoughness, materialColor, materialDispersion, materialEmissive, materialEnvIntensity, materialEnvRotation, materialIOR, materialIridescence, materialIridescenceIOR, materialIridescenceThickness, materialLightMap, materialLineDashOffset, materialLineDashSize, materialLineGapSize, materialLineScale, materialLineWidth, materialMetalness, materialNormal, materialOpacity, materialPointSize, materialReference, materialReflectivity, materialRefractionRatio, materialRotation, materialRoughness, materialSheen, materialSheenRoughness, materialShininess, materialSpecular, materialSpecularColor, materialSpecularIntensity, materialSpecularStrength, materialThickness, materialTransmission, max, maxMipLevel, mediumpModelViewMatrix, metalness, min, mix, mixElement, mod, modelDirection, modelNormalMatrix, modelPosition, modelRadius, modelScale, modelViewMatrix, modelViewPosition, modelViewProjection, modelWorldMatrix, modelWorldMatrixInverse, morphReference, mrt, mul, mx_aastep, mx_add, mx_atan2, mx_cell_noise_float, mx_contrast, mx_divide, mx_fractal_noise_float, mx_fractal_noise_vec2, mx_fractal_noise_vec3, mx_fractal_noise_vec4, mx_frame, mx_heighttonormal, mx_hsvtorgb, mx_ifequal, mx_ifgreater, mx_ifgreatereq, mx_invert, mx_modulo, mx_multiply, mx_noise_float, mx_noise_vec3, mx_noise_vec4, mx_place2d, mx_power, mx_ramp4, mx_ramplr, mx_ramptb, mx_rgbtohsv, mx_rotate2d, mx_rotate3d, mx_safepower, mx_separate, mx_splitlr, mx_splittb, mx_srgb_texture_to_lin_rec709, mx_subtract, mx_timer, mx_transform_uv, mx_unifiednoise2d, mx_unifiednoise3d, mx_worley_noise_float, mx_worley_noise_vec2, mx_worley_noise_vec3, negate, negateOnBackSide, neutralToneMapping, nodeArray, nodeImmutable, nodeObject, nodeObjectIntent, nodeObjects, nodeProxy, nodeProxyIntent, normalFlat, normalGeometry, normalLocal, normalMap, normalView, normalViewGeometry, normalWorld, normalWorldGeometry, normalize, not, notEqual, numWorkgroups, objectDirection, objectGroup, objectPosition, objectRadius, objectScale, objectViewPosition, objectWorldMatrix, oneMinus, or, orthographicDepthToViewZ, oscSawtooth, oscSine, oscSquare, oscTriangle, output, outputStruct, overloadingFn, overrideNode, overrideNodes, packHalf2x16, packNormalToRGB, packSnorm2x16, packUnorm2x16, parabola, parallaxDirection, parallaxUV, parameter, pass, passTexture, pcurve, perspectiveDepthToViewZ, pmremTexture, pointShadow, pointUV, pointWidth, positionGeometry, positionLocal, positionPrevious, positionView, positionViewDirection, positionWorld, positionWorldDirection, posterize, pow, pow2, pow3, pow4, premultiplyAlpha, property, radians, rand, range, rangeFog, rangeFogFactor, reciprocal, reference, referenceBuffer, reflect, reflectVector, reflectView, reflector, refract, refractVector, refractView, reinhardToneMapping, remap, remapClamp, renderGroup, renderOutput, rendererReference, replaceDefaultUV, rotate, rotateUV, roughness, round, rtt, sRGBTransferEOTF, sRGBTransferOETF, sample, sampler, samplerComparison, saturate, saturation, screen, screenCoordinate, screenDPR, screenSize, screenUV, select, setCurrentStack, setName, shaderStages, shadow, shadowPositionWorld, shapeCircle, sharedUniformGroup, sheen, sheenRoughness, shiftLeft, shiftRight, shininess, sign, sin, sinc, sinh, skinning, smoothstep, smoothstepElement, specularColor, specularF90, spherizeUV, split, spritesheetUV, sqrt, stack, step, stepElement, storage, storageBarrier, storageTexture, storageTexture3D, struct, sub, subBuild, subgroupAdd, subgroupAll, subgroupAnd, subgroupAny, subgroupBallot, subgroupBroadcast, subgroupBroadcastFirst, subgroupElect, subgroupExclusiveAdd, subgroupExclusiveMul, subgroupInclusiveAdd, subgroupInclusiveMul, subgroupIndex, subgroupMax, subgroupMin, subgroupMul, subgroupOr, subgroupShuffle, subgroupShuffleDown, subgroupShuffleUp, subgroupShuffleXor, subgroupSize, subgroupXor, tan, tangentGeometry, tangentLocal, tangentView, tangentWorld, tanh, texture, texture3D, textureBarrier, textureBicubic, textureBicubicLevel, textureCubeUV, textureLevel, textureLoad, textureSize, textureStore, thickness, time, toneMapping, toneMappingExposure, toonOutlinePass, transformDirection, transformNormal, transformNormalByInverseViewMatrix, transformNormalByViewMatrix, transformNormalToView, transformedClearcoatNormalView, transformedNormalView, transformedNormalWorld, transmission, transpose, triNoise3D, triplanarTexture, triplanarTextures, trunc, uint, uintBitsToFloat, uniform, uniformArray, uniformCubeTexture, uniformFlow, uniformGroup, uniformTexture, unpackHalf2x16, unpackRGBToNormal, unpackSnorm2x16, unpackUnorm2x16, unpremultiplyAlpha, userData, uv, uvec2, uvec3, uvec4, varying, varyingProperty, vec2, vec3, vec4, vectorComponents, velocity, vertexColor, vertexIndex, vertexStage, vibrance, viewZToLogarithmicDepth, viewZToOrthographicDepth, viewZToPerspectiveDepth, viewZToReversedOrthographicDepth, viewZToReversedPerspectiveDepth, viewport, viewportCoordinate, viewportDepthTexture, viewportLinearDepth, viewportMipTexture, viewportOpaqueMipTexture, viewportResolution, viewportSafeUV, viewportSharedTexture, viewportSize, viewportTexture, viewportUV, vogelDiskSample, wgsl, wgslFn, workgroupArray, workgroupBarrier, workgroupId, workingToColorSpace, xor };\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"three.tsl-DO_HZZuJ.mjs","names":[],"sources":["../../../../node_modules/three/build/three.tsl.js"],"sourcesContent":["/**\n * @license\n * Copyright 2010-2026 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nimport { TSL } from 'three/webgpu';\n\nconst BRDF_GGX = TSL.BRDF_GGX;\nconst BRDF_Lambert = TSL.BRDF_Lambert;\nconst BasicPointShadowFilter = TSL.BasicPointShadowFilter;\nconst BasicShadowFilter = TSL.BasicShadowFilter;\nconst Break = TSL.Break;\nconst Const = TSL.Const;\nconst Continue = TSL.Continue;\nconst DFGLUT = TSL.DFGLUT;\nconst D_GGX = TSL.D_GGX;\nconst Discard = TSL.Discard;\nconst EPSILON = TSL.EPSILON;\nconst F_Schlick = TSL.F_Schlick;\nconst Fn = TSL.Fn;\nconst INFINITY = TSL.INFINITY;\nconst If = TSL.If;\nconst Loop = TSL.Loop;\nconst NodeAccess = TSL.NodeAccess;\nconst NodeShaderStage = TSL.NodeShaderStage;\nconst NodeType = TSL.NodeType;\nconst NodeUpdateType = TSL.NodeUpdateType;\nconst PCFShadowFilter = TSL.PCFShadowFilter;\nconst PCFSoftShadowFilter = TSL.PCFSoftShadowFilter;\nconst PI = TSL.PI;\nconst PI2 = TSL.PI2;\nconst TWO_PI = TSL.TWO_PI;\nconst HALF_PI = TSL.HALF_PI;\nconst PointShadowFilter = TSL.PointShadowFilter;\nconst Return = TSL.Return;\nconst Schlick_to_F0 = TSL.Schlick_to_F0;\nconst ShaderNode = TSL.ShaderNode;\nconst Stack = TSL.Stack;\nconst Switch = TSL.Switch;\nconst TBNViewMatrix = TSL.TBNViewMatrix;\nconst VSMShadowFilter = TSL.VSMShadowFilter;\nconst V_GGX_SmithCorrelated = TSL.V_GGX_SmithCorrelated;\nconst Var = TSL.Var;\nconst VarIntent = TSL.VarIntent;\nconst abs = TSL.abs;\nconst acesFilmicToneMapping = TSL.acesFilmicToneMapping;\nconst acos = TSL.acos;\nconst acosh = TSL.acosh;\nconst add = TSL.add;\nconst addMethodChaining = TSL.addMethodChaining;\nconst addNodeElement = TSL.addNodeElement;\nconst agxToneMapping = TSL.agxToneMapping;\nconst all = TSL.all;\nconst alphaT = TSL.alphaT;\nconst ambientOcclusion = TSL.ambientOcclusion;\nconst and = TSL.and;\nconst anisotropy = TSL.anisotropy;\nconst anisotropyB = TSL.anisotropyB;\nconst anisotropyT = TSL.anisotropyT;\nconst any = TSL.any;\nconst append = TSL.append;\nconst array = TSL.array;\nconst asin = TSL.asin;\nconst asinh = TSL.asinh;\nconst assign = TSL.assign;\nconst atan = TSL.atan;\nconst atanh = TSL.atanh;\nconst atomicAdd = TSL.atomicAdd;\nconst atomicAnd = TSL.atomicAnd;\nconst atomicFunc = TSL.atomicFunc;\nconst atomicLoad = TSL.atomicLoad;\nconst atomicMax = TSL.atomicMax;\nconst atomicMin = TSL.atomicMin;\nconst atomicOr = TSL.atomicOr;\nconst atomicStore = TSL.atomicStore;\nconst atomicSub = TSL.atomicSub;\nconst atomicXor = TSL.atomicXor;\nconst attenuationColor = TSL.attenuationColor;\nconst attenuationDistance = TSL.attenuationDistance;\nconst attribute = TSL.attribute;\nconst attributeArray = TSL.attributeArray;\nconst backgroundBlurriness = TSL.backgroundBlurriness;\nconst backgroundIntensity = TSL.backgroundIntensity;\nconst backgroundRotation = TSL.backgroundRotation;\nconst batch = TSL.batch;\nconst bentNormalView = TSL.bentNormalView;\nconst billboarding = TSL.billboarding;\nconst bitAnd = TSL.bitAnd;\nconst bitNot = TSL.bitNot;\nconst bitOr = TSL.bitOr;\nconst bitXor = TSL.bitXor;\nconst bitangentGeometry = TSL.bitangentGeometry;\nconst bitangentLocal = TSL.bitangentLocal;\nconst bitangentView = TSL.bitangentView;\nconst bitangentWorld = TSL.bitangentWorld;\nconst bitcast = TSL.bitcast;\nconst blendBurn = TSL.blendBurn;\nconst blendColor = TSL.blendColor;\nconst blendDodge = TSL.blendDodge;\nconst blendOverlay = TSL.blendOverlay;\nconst blendScreen = TSL.blendScreen;\nconst blur = TSL.blur;\nconst bool = TSL.bool;\nconst buffer = TSL.buffer;\nconst bufferAttribute = TSL.bufferAttribute;\nconst bumpMap = TSL.bumpMap;\nconst builtin = TSL.builtin;\nconst builtinAOContext = TSL.builtinAOContext;\nconst builtinShadowContext = TSL.builtinShadowContext;\nconst bvec2 = TSL.bvec2;\nconst bvec3 = TSL.bvec3;\nconst bvec4 = TSL.bvec4;\nconst bypass = TSL.bypass;\nconst cache = TSL.cache;\nconst call = TSL.call;\nconst cameraFar = TSL.cameraFar;\nconst cameraIndex = TSL.cameraIndex;\nconst cameraNear = TSL.cameraNear;\nconst cameraNormalMatrix = TSL.cameraNormalMatrix;\nconst cameraPosition = TSL.cameraPosition;\nconst cameraProjectionMatrix = TSL.cameraProjectionMatrix;\nconst cameraProjectionMatrixInverse = TSL.cameraProjectionMatrixInverse;\nconst cameraViewMatrix = TSL.cameraViewMatrix;\nconst cameraViewport = TSL.cameraViewport;\nconst cameraWorldMatrix = TSL.cameraWorldMatrix;\nconst cbrt = TSL.cbrt;\nconst cdl = TSL.cdl;\nconst ceil = TSL.ceil;\nconst checker = TSL.checker;\nconst cineonToneMapping = TSL.cineonToneMapping;\nconst clamp = TSL.clamp;\nconst clearcoat = TSL.clearcoat;\nconst clearcoatNormalView = TSL.clearcoatNormalView;\nconst clearcoatRoughness = TSL.clearcoatRoughness;\nconst clipSpace = TSL.clipSpace;\nconst code = TSL.code;\nconst color = TSL.color;\nconst colorSpaceToWorking = TSL.colorSpaceToWorking;\nconst colorToDirection = TSL.colorToDirection;\nconst compute = TSL.compute;\nconst computeKernel = TSL.computeKernel;\nconst computeSkinning = TSL.computeSkinning;\nconst context = TSL.context;\nconst convert = TSL.convert;\nconst convertColorSpace = TSL.convertColorSpace;\nconst convertToTexture = TSL.convertToTexture;\nconst countLeadingZeros = TSL.countLeadingZeros;\nconst countOneBits = TSL.countOneBits;\nconst countTrailingZeros = TSL.countTrailingZeros;\nconst cos = TSL.cos;\nconst cosh = TSL.cosh;\nconst cross = TSL.cross;\nconst cubeTexture = TSL.cubeTexture;\nconst cubeTextureBase = TSL.cubeTextureBase;\nconst dFdx = TSL.dFdx;\nconst dFdy = TSL.dFdy;\nconst dashSize = TSL.dashSize;\nconst debug = TSL.debug;\nconst decrement = TSL.decrement;\nconst decrementBefore = TSL.decrementBefore;\nconst defaultBuildStages = TSL.defaultBuildStages;\nconst defaultShaderStages = TSL.defaultShaderStages;\nconst defined = TSL.defined;\nconst degrees = TSL.degrees;\nconst deltaTime = TSL.deltaTime;\nconst densityFog = TSL.densityFog;\nconst densityFogFactor = TSL.densityFogFactor;\nconst depth = TSL.depth;\nconst depthPass = TSL.depthPass;\nconst determinant = TSL.determinant;\nconst difference = TSL.difference;\nconst diffuseColor = TSL.diffuseColor;\nconst directPointLight = TSL.directPointLight;\nconst directionToColor = TSL.directionToColor;\nconst directionToFaceDirection = TSL.directionToFaceDirection;\nconst dispersion = TSL.dispersion;\nconst distance = TSL.distance;\nconst div = TSL.div;\nconst dot = TSL.dot;\nconst drawIndex = TSL.drawIndex;\nconst dynamicBufferAttribute = TSL.dynamicBufferAttribute;\nconst element = TSL.element;\nconst emissive = TSL.emissive;\nconst equal = TSL.equal;\nconst equirectDirection = TSL.equirectDirection;\nconst equirectUV = TSL.equirectUV;\nconst exp = TSL.exp;\nconst exp2 = TSL.exp2;\nconst exponentialHeightFogFactor = TSL.exponentialHeightFogFactor;\nconst expression = TSL.expression;\nconst faceDirection = TSL.faceDirection;\nconst faceForward = TSL.faceForward;\nconst faceforward = TSL.faceforward;\nconst float = TSL.float;\nconst floatBitsToInt = TSL.floatBitsToInt;\nconst floatBitsToUint = TSL.floatBitsToUint;\nconst floor = TSL.floor;\nconst fog = TSL.fog;\nconst fract = TSL.fract;\nconst frameGroup = TSL.frameGroup;\nconst frameId = TSL.frameId;\nconst frontFacing = TSL.frontFacing;\nconst fwidth = TSL.fwidth;\nconst gain = TSL.gain;\nconst gapSize = TSL.gapSize;\nconst getConstNodeType = TSL.getConstNodeType;\nconst getCurrentStack = TSL.getCurrentStack;\nconst getDirection = TSL.getDirection;\nconst getDistanceAttenuation = TSL.getDistanceAttenuation;\nconst getGeometryRoughness = TSL.getGeometryRoughness;\nconst getNormalFromDepth = TSL.getNormalFromDepth;\nconst interleavedGradientNoise = TSL.interleavedGradientNoise;\nconst vogelDiskSample = TSL.vogelDiskSample;\nconst getParallaxCorrectNormal = TSL.getParallaxCorrectNormal;\nconst getRoughness = TSL.getRoughness;\nconst getScreenPosition = TSL.getScreenPosition;\nconst getShIrradianceAt = TSL.getShIrradianceAt;\nconst getShadowMaterial = TSL.getShadowMaterial;\nconst getShadowRenderObjectFunction = TSL.getShadowRenderObjectFunction;\nconst getTextureIndex = TSL.getTextureIndex;\nconst getViewPosition = TSL.getViewPosition;\nconst globalId = TSL.globalId;\nconst glsl = TSL.glsl;\nconst glslFn = TSL.glslFn;\nconst grayscale = TSL.grayscale;\nconst greaterThan = TSL.greaterThan;\nconst greaterThanEqual = TSL.greaterThanEqual;\nconst hash = TSL.hash;\nconst highpModelNormalViewMatrix = TSL.highpModelNormalViewMatrix;\nconst highpModelViewMatrix = TSL.highpModelViewMatrix;\nconst hue = TSL.hue;\nconst increment = TSL.increment;\nconst incrementBefore = TSL.incrementBefore;\nconst instance = TSL.instance;\nconst instanceIndex = TSL.instanceIndex;\nconst instancedArray = TSL.instancedArray;\nconst instancedBufferAttribute = TSL.instancedBufferAttribute;\nconst instancedDynamicBufferAttribute = TSL.instancedDynamicBufferAttribute;\nconst instancedMesh = TSL.instancedMesh;\nconst int = TSL.int;\nconst intBitsToFloat = TSL.intBitsToFloat;\nconst inverse = TSL.inverse;\nconst inverseSqrt = TSL.inverseSqrt;\nconst inversesqrt = TSL.inversesqrt;\nconst invocationLocalIndex = TSL.invocationLocalIndex;\nconst invocationSubgroupIndex = TSL.invocationSubgroupIndex;\nconst ior = TSL.ior;\nconst iridescence = TSL.iridescence;\nconst iridescenceIOR = TSL.iridescenceIOR;\nconst iridescenceThickness = TSL.iridescenceThickness;\nconst ivec2 = TSL.ivec2;\nconst ivec3 = TSL.ivec3;\nconst ivec4 = TSL.ivec4;\nconst js = TSL.js;\nconst label = TSL.label;\nconst length = TSL.length;\nconst lengthSq = TSL.lengthSq;\nconst lessThan = TSL.lessThan;\nconst lessThanEqual = TSL.lessThanEqual;\nconst lightPosition = TSL.lightPosition;\nconst lightProjectionUV = TSL.lightProjectionUV;\nconst lightShadowMatrix = TSL.lightShadowMatrix;\nconst lightTargetDirection = TSL.lightTargetDirection;\nconst lightTargetPosition = TSL.lightTargetPosition;\nconst lightViewPosition = TSL.lightViewPosition;\nconst lightingContext = TSL.lightingContext;\nconst lights = TSL.lights;\nconst linearDepth = TSL.linearDepth;\nconst linearToneMapping = TSL.linearToneMapping;\nconst localId = TSL.localId;\nconst log = TSL.log;\nconst log2 = TSL.log2;\nconst logarithmicDepthToViewZ = TSL.logarithmicDepthToViewZ;\nconst luminance = TSL.luminance;\nconst mat2 = TSL.mat2;\nconst mat3 = TSL.mat3;\nconst mat4 = TSL.mat4;\nconst matcapUV = TSL.matcapUV;\nconst materialAO = TSL.materialAO;\nconst materialAlphaTest = TSL.materialAlphaTest;\nconst materialAnisotropy = TSL.materialAnisotropy;\nconst materialAnisotropyVector = TSL.materialAnisotropyVector;\nconst materialAttenuationColor = TSL.materialAttenuationColor;\nconst materialAttenuationDistance = TSL.materialAttenuationDistance;\nconst materialClearcoat = TSL.materialClearcoat;\nconst materialClearcoatNormal = TSL.materialClearcoatNormal;\nconst materialClearcoatRoughness = TSL.materialClearcoatRoughness;\nconst materialColor = TSL.materialColor;\nconst materialDispersion = TSL.materialDispersion;\nconst materialEmissive = TSL.materialEmissive;\nconst materialEnvIntensity = TSL.materialEnvIntensity;\nconst materialEnvRotation = TSL.materialEnvRotation;\nconst materialIOR = TSL.materialIOR;\nconst materialIridescence = TSL.materialIridescence;\nconst materialIridescenceIOR = TSL.materialIridescenceIOR;\nconst materialIridescenceThickness = TSL.materialIridescenceThickness;\nconst materialLightMap = TSL.materialLightMap;\nconst materialLineDashOffset = TSL.materialLineDashOffset;\nconst materialLineDashSize = TSL.materialLineDashSize;\nconst materialLineGapSize = TSL.materialLineGapSize;\nconst materialLineScale = TSL.materialLineScale;\nconst materialLineWidth = TSL.materialLineWidth;\nconst materialMetalness = TSL.materialMetalness;\nconst materialNormal = TSL.materialNormal;\nconst materialOpacity = TSL.materialOpacity;\nconst materialPointSize = TSL.materialPointSize;\nconst materialReference = TSL.materialReference;\nconst materialReflectivity = TSL.materialReflectivity;\nconst materialRefractionRatio = TSL.materialRefractionRatio;\nconst materialRotation = TSL.materialRotation;\nconst materialRoughness = TSL.materialRoughness;\nconst materialSheen = TSL.materialSheen;\nconst materialSheenRoughness = TSL.materialSheenRoughness;\nconst materialShininess = TSL.materialShininess;\nconst materialSpecular = TSL.materialSpecular;\nconst materialSpecularColor = TSL.materialSpecularColor;\nconst materialSpecularIntensity = TSL.materialSpecularIntensity;\nconst materialSpecularStrength = TSL.materialSpecularStrength;\nconst materialThickness = TSL.materialThickness;\nconst materialTransmission = TSL.materialTransmission;\nconst max = TSL.max;\nconst maxMipLevel = TSL.maxMipLevel;\nconst mediumpModelViewMatrix = TSL.mediumpModelViewMatrix;\nconst metalness = TSL.metalness;\nconst min = TSL.min;\nconst mix = TSL.mix;\nconst mixElement = TSL.mixElement;\nconst mod = TSL.mod;\nconst modelDirection = TSL.modelDirection;\nconst modelNormalMatrix = TSL.modelNormalMatrix;\nconst modelPosition = TSL.modelPosition;\nconst modelRadius = TSL.modelRadius;\nconst modelScale = TSL.modelScale;\nconst modelViewMatrix = TSL.modelViewMatrix;\nconst modelViewPosition = TSL.modelViewPosition;\nconst modelViewProjection = TSL.modelViewProjection;\nconst modelWorldMatrix = TSL.modelWorldMatrix;\nconst modelWorldMatrixInverse = TSL.modelWorldMatrixInverse;\nconst morphReference = TSL.morphReference;\nconst mrt = TSL.mrt;\nconst mul = TSL.mul;\nconst mx_aastep = TSL.mx_aastep;\nconst mx_add = TSL.mx_add;\nconst mx_atan2 = TSL.mx_atan2;\nconst mx_cell_noise_float = TSL.mx_cell_noise_float;\nconst mx_contrast = TSL.mx_contrast;\nconst mx_divide = TSL.mx_divide;\nconst mx_fractal_noise_float = TSL.mx_fractal_noise_float;\nconst mx_fractal_noise_vec2 = TSL.mx_fractal_noise_vec2;\nconst mx_fractal_noise_vec3 = TSL.mx_fractal_noise_vec3;\nconst mx_fractal_noise_vec4 = TSL.mx_fractal_noise_vec4;\nconst mx_frame = TSL.mx_frame;\nconst mx_heighttonormal = TSL.mx_heighttonormal;\nconst mx_hsvtorgb = TSL.mx_hsvtorgb;\nconst mx_ifequal = TSL.mx_ifequal;\nconst mx_ifgreater = TSL.mx_ifgreater;\nconst mx_ifgreatereq = TSL.mx_ifgreatereq;\nconst mx_invert = TSL.mx_invert;\nconst mx_modulo = TSL.mx_modulo;\nconst mx_multiply = TSL.mx_multiply;\nconst mx_noise_float = TSL.mx_noise_float;\nconst mx_noise_vec3 = TSL.mx_noise_vec3;\nconst mx_noise_vec4 = TSL.mx_noise_vec4;\nconst mx_place2d = TSL.mx_place2d;\nconst mx_power = TSL.mx_power;\nconst mx_ramp4 = TSL.mx_ramp4;\nconst mx_ramplr = TSL.mx_ramplr;\nconst mx_ramptb = TSL.mx_ramptb;\nconst mx_rgbtohsv = TSL.mx_rgbtohsv;\nconst mx_rotate2d = TSL.mx_rotate2d;\nconst mx_rotate3d = TSL.mx_rotate3d;\nconst mx_safepower = TSL.mx_safepower;\nconst mx_separate = TSL.mx_separate;\nconst mx_splitlr = TSL.mx_splitlr;\nconst mx_splittb = TSL.mx_splittb;\nconst mx_srgb_texture_to_lin_rec709 = TSL.mx_srgb_texture_to_lin_rec709;\nconst mx_subtract = TSL.mx_subtract;\nconst mx_timer = TSL.mx_timer;\nconst mx_transform_uv = TSL.mx_transform_uv;\nconst mx_unifiednoise2d = TSL.mx_unifiednoise2d;\nconst mx_unifiednoise3d = TSL.mx_unifiednoise3d;\nconst mx_worley_noise_float = TSL.mx_worley_noise_float;\nconst mx_worley_noise_vec2 = TSL.mx_worley_noise_vec2;\nconst mx_worley_noise_vec3 = TSL.mx_worley_noise_vec3;\nconst negate = TSL.negate;\nconst negateOnBackSide = TSL.negateOnBackSide;\nconst neutralToneMapping = TSL.neutralToneMapping;\nconst nodeArray = TSL.nodeArray;\nconst nodeImmutable = TSL.nodeImmutable;\nconst nodeObject = TSL.nodeObject;\nconst nodeObjectIntent = TSL.nodeObjectIntent;\nconst nodeObjects = TSL.nodeObjects;\nconst nodeProxy = TSL.nodeProxy;\nconst nodeProxyIntent = TSL.nodeProxyIntent;\nconst normalFlat = TSL.normalFlat;\nconst normalGeometry = TSL.normalGeometry;\nconst normalLocal = TSL.normalLocal;\nconst normalMap = TSL.normalMap;\nconst normalView = TSL.normalView;\nconst normalViewGeometry = TSL.normalViewGeometry;\nconst normalWorld = TSL.normalWorld;\nconst normalWorldGeometry = TSL.normalWorldGeometry;\nconst normalize = TSL.normalize;\nconst not = TSL.not;\nconst notEqual = TSL.notEqual;\nconst numWorkgroups = TSL.numWorkgroups;\nconst objectDirection = TSL.objectDirection;\nconst objectGroup = TSL.objectGroup;\nconst objectPosition = TSL.objectPosition;\nconst objectRadius = TSL.objectRadius;\nconst objectScale = TSL.objectScale;\nconst objectViewPosition = TSL.objectViewPosition;\nconst objectWorldMatrix = TSL.objectWorldMatrix;\nconst OnBeforeObjectUpdate = TSL.OnBeforeObjectUpdate;\nconst OnBeforeMaterialUpdate = TSL.OnBeforeMaterialUpdate;\nconst OnObjectUpdate = TSL.OnObjectUpdate;\nconst OnMaterialUpdate = TSL.OnMaterialUpdate;\nconst oneMinus = TSL.oneMinus;\nconst or = TSL.or;\nconst orthographicDepthToViewZ = TSL.orthographicDepthToViewZ;\nconst oscSawtooth = TSL.oscSawtooth;\nconst oscSine = TSL.oscSine;\nconst oscSquare = TSL.oscSquare;\nconst oscTriangle = TSL.oscTriangle;\nconst output = TSL.output;\nconst outputStruct = TSL.outputStruct;\nconst overloadingFn = TSL.overloadingFn;\nconst overrideNode = TSL.overrideNode;\nconst overrideNodes = TSL.overrideNodes;\nconst packHalf2x16 = TSL.packHalf2x16;\nconst packSnorm2x16 = TSL.packSnorm2x16;\nconst packUnorm2x16 = TSL.packUnorm2x16;\nconst packNormalToRGB = TSL.packNormalToRGB;\nconst parabola = TSL.parabola;\nconst parallaxDirection = TSL.parallaxDirection;\nconst parallaxUV = TSL.parallaxUV;\nconst parameter = TSL.parameter;\nconst pass = TSL.pass;\nconst passTexture = TSL.passTexture;\nconst pcurve = TSL.pcurve;\nconst perspectiveDepthToViewZ = TSL.perspectiveDepthToViewZ;\nconst pmremTexture = TSL.pmremTexture;\nconst pointShadow = TSL.pointShadow;\nconst pointUV = TSL.pointUV;\nconst pointWidth = TSL.pointWidth;\nconst positionGeometry = TSL.positionGeometry;\nconst positionLocal = TSL.positionLocal;\nconst positionPrevious = TSL.positionPrevious;\nconst positionView = TSL.positionView;\nconst positionViewDirection = TSL.positionViewDirection;\nconst positionWorld = TSL.positionWorld;\nconst positionWorldDirection = TSL.positionWorldDirection;\nconst posterize = TSL.posterize;\nconst pow = TSL.pow;\nconst pow2 = TSL.pow2;\nconst pow3 = TSL.pow3;\nconst pow4 = TSL.pow4;\nconst premultiplyAlpha = TSL.premultiplyAlpha;\nconst property = TSL.property;\nconst radians = TSL.radians;\nconst rand = TSL.rand;\nconst range = TSL.range;\nconst rangeFog = TSL.rangeFog;\nconst rangeFogFactor = TSL.rangeFogFactor;\nconst reciprocal = TSL.reciprocal;\nconst reference = TSL.reference;\nconst referenceBuffer = TSL.referenceBuffer;\nconst reflect = TSL.reflect;\nconst reflectVector = TSL.reflectVector;\nconst reflectView = TSL.reflectView;\nconst reflector = TSL.reflector;\nconst refract = TSL.refract;\nconst refractVector = TSL.refractVector;\nconst refractView = TSL.refractView;\nconst reinhardToneMapping = TSL.reinhardToneMapping;\nconst remap = TSL.remap;\nconst remapClamp = TSL.remapClamp;\nconst renderGroup = TSL.renderGroup;\nconst renderOutput = TSL.renderOutput;\nconst rendererReference = TSL.rendererReference;\nconst replaceDefaultUV = TSL.replaceDefaultUV;\nconst rotate = TSL.rotate;\nconst rotateUV = TSL.rotateUV;\nconst roughness = TSL.roughness;\nconst round = TSL.round;\nconst rtt = TSL.rtt;\nconst sRGBTransferEOTF = TSL.sRGBTransferEOTF;\nconst sRGBTransferOETF = TSL.sRGBTransferOETF;\nconst sample = TSL.sample;\nconst sampler = TSL.sampler;\nconst samplerComparison = TSL.samplerComparison;\nconst saturate = TSL.saturate;\nconst saturation = TSL.saturation;\nconst screen = TSL.screen;\nconst screenCoordinate = TSL.screenCoordinate;\nconst screenDPR = TSL.screenDPR;\nconst screenSize = TSL.screenSize;\nconst screenUV = TSL.screenUV;\nconst select = TSL.select;\nconst setCurrentStack = TSL.setCurrentStack;\nconst setName = TSL.setName;\nconst shaderStages = TSL.shaderStages;\nconst shadow = TSL.shadow;\nconst shadowPositionWorld = TSL.shadowPositionWorld;\nconst shapeCircle = TSL.shapeCircle;\nconst sharedUniformGroup = TSL.sharedUniformGroup;\nconst sheen = TSL.sheen;\nconst sheenRoughness = TSL.sheenRoughness;\nconst shiftLeft = TSL.shiftLeft;\nconst shiftRight = TSL.shiftRight;\nconst shininess = TSL.shininess;\nconst sign = TSL.sign;\nconst sin = TSL.sin;\nconst sinh = TSL.sinh;\nconst sinc = TSL.sinc;\nconst skinning = TSL.skinning;\nconst smoothstep = TSL.smoothstep;\nconst smoothstepElement = TSL.smoothstepElement;\nconst specularColor = TSL.specularColor;\nconst specularF90 = TSL.specularF90;\nconst spherizeUV = TSL.spherizeUV;\nconst split = TSL.split;\nconst spritesheetUV = TSL.spritesheetUV;\nconst sqrt = TSL.sqrt;\nconst stack = TSL.stack;\nconst step = TSL.step;\nconst stepElement = TSL.stepElement;\nconst storage = TSL.storage;\nconst storageBarrier = TSL.storageBarrier;\nconst storageTexture = TSL.storageTexture;\nconst storageTexture3D = TSL.storageTexture3D;\nconst struct = TSL.struct;\nconst sub = TSL.sub;\nconst subgroupAdd = TSL.subgroupAdd;\nconst subgroupAll = TSL.subgroupAll;\nconst subgroupAnd = TSL.subgroupAnd;\nconst subgroupAny = TSL.subgroupAny;\nconst subgroupBallot = TSL.subgroupBallot;\nconst subgroupBroadcast = TSL.subgroupBroadcast;\nconst subgroupBroadcastFirst = TSL.subgroupBroadcastFirst;\nconst subBuild = TSL.subBuild;\nconst subgroupElect = TSL.subgroupElect;\nconst subgroupExclusiveAdd = TSL.subgroupExclusiveAdd;\nconst subgroupExclusiveMul = TSL.subgroupExclusiveMul;\nconst subgroupInclusiveAdd = TSL.subgroupInclusiveAdd;\nconst subgroupInclusiveMul = TSL.subgroupInclusiveMul;\nconst subgroupIndex = TSL.subgroupIndex;\nconst subgroupMax = TSL.subgroupMax;\nconst subgroupMin = TSL.subgroupMin;\nconst subgroupMul = TSL.subgroupMul;\nconst subgroupOr = TSL.subgroupOr;\nconst subgroupShuffle = TSL.subgroupShuffle;\nconst subgroupShuffleDown = TSL.subgroupShuffleDown;\nconst subgroupShuffleUp = TSL.subgroupShuffleUp;\nconst subgroupShuffleXor = TSL.subgroupShuffleXor;\nconst subgroupSize = TSL.subgroupSize;\nconst subgroupXor = TSL.subgroupXor;\nconst tan = TSL.tan;\nconst tanh = TSL.tanh;\nconst tangentGeometry = TSL.tangentGeometry;\nconst tangentLocal = TSL.tangentLocal;\nconst tangentView = TSL.tangentView;\nconst tangentWorld = TSL.tangentWorld;\nconst texture = TSL.texture;\nconst texture3D = TSL.texture3D;\nconst textureBarrier = TSL.textureBarrier;\nconst textureBicubic = TSL.textureBicubic;\nconst textureBicubicLevel = TSL.textureBicubicLevel;\nconst textureCubeUV = TSL.textureCubeUV;\nconst textureLoad = TSL.textureLoad;\nconst textureSize = TSL.textureSize;\nconst textureLevel = TSL.textureLevel;\nconst textureStore = TSL.textureStore;\nconst thickness = TSL.thickness;\nconst time = TSL.time;\nconst toneMapping = TSL.toneMapping;\nconst toneMappingExposure = TSL.toneMappingExposure;\nconst toonOutlinePass = TSL.toonOutlinePass;\nconst transformDirection = TSL.transformDirection;\nconst transformNormal = TSL.transformNormal;\nconst transformNormalByInverseViewMatrix = TSL.transformNormalByInverseViewMatrix;\nconst transformNormalByViewMatrix = TSL.transformNormalByViewMatrix;\nconst transformNormalToView = TSL.transformNormalToView;\nconst transformedClearcoatNormalView = TSL.transformedClearcoatNormalView;\nconst transformedNormalView = TSL.transformedNormalView;\nconst transformedNormalWorld = TSL.transformedNormalWorld;\nconst transmission = TSL.transmission;\nconst transpose = TSL.transpose;\nconst triNoise3D = TSL.triNoise3D;\nconst triplanarTexture = TSL.triplanarTexture;\nconst triplanarTextures = TSL.triplanarTextures;\nconst trunc = TSL.trunc;\nconst uint = TSL.uint;\nconst uintBitsToFloat = TSL.uintBitsToFloat;\nconst uniform = TSL.uniform;\nconst uniformArray = TSL.uniformArray;\nconst uniformCubeTexture = TSL.uniformCubeTexture;\nconst uniformGroup = TSL.uniformGroup;\nconst uniformFlow = TSL.uniformFlow;\nconst uniformTexture = TSL.uniformTexture;\nconst unpackHalf2x16 = TSL.unpackHalf2x16;\nconst unpackSnorm2x16 = TSL.unpackSnorm2x16;\nconst unpackUnorm2x16 = TSL.unpackUnorm2x16;\nconst unpackRGBToNormal = TSL.unpackRGBToNormal;\nconst unpremultiplyAlpha = TSL.unpremultiplyAlpha;\nconst userData = TSL.userData;\nconst uv = TSL.uv;\nconst uvec2 = TSL.uvec2;\nconst uvec3 = TSL.uvec3;\nconst uvec4 = TSL.uvec4;\nconst varying = TSL.varying;\nconst varyingProperty = TSL.varyingProperty;\nconst vec2 = TSL.vec2;\nconst vec3 = TSL.vec3;\nconst vec4 = TSL.vec4;\nconst vectorComponents = TSL.vectorComponents;\nconst velocity = TSL.velocity;\nconst vertexColor = TSL.vertexColor;\nconst vertexIndex = TSL.vertexIndex;\nconst vertexStage = TSL.vertexStage;\nconst vibrance = TSL.vibrance;\nconst viewZToLogarithmicDepth = TSL.viewZToLogarithmicDepth;\nconst viewZToOrthographicDepth = TSL.viewZToOrthographicDepth;\nconst viewZToPerspectiveDepth = TSL.viewZToPerspectiveDepth;\nconst viewZToReversedOrthographicDepth = TSL.viewZToReversedOrthographicDepth;\nconst viewZToReversedPerspectiveDepth = TSL.viewZToReversedPerspectiveDepth;\nconst viewport = TSL.viewport;\nconst viewportCoordinate = TSL.viewportCoordinate;\nconst viewportDepthTexture = TSL.viewportDepthTexture;\nconst viewportLinearDepth = TSL.viewportLinearDepth;\nconst viewportMipTexture = TSL.viewportMipTexture;\nconst viewportOpaqueMipTexture = TSL.viewportOpaqueMipTexture;\nconst viewportResolution = TSL.viewportResolution;\nconst viewportSafeUV = TSL.viewportSafeUV;\nconst viewportSharedTexture = TSL.viewportSharedTexture;\nconst viewportSize = TSL.viewportSize;\nconst viewportTexture = TSL.viewportTexture;\nconst viewportUV = TSL.viewportUV;\nconst wgsl = TSL.wgsl;\nconst wgslFn = TSL.wgslFn;\nconst workgroupArray = TSL.workgroupArray;\nconst workgroupBarrier = TSL.workgroupBarrier;\nconst workgroupId = TSL.workgroupId;\nconst workingToColorSpace = TSL.workingToColorSpace;\nconst xor = TSL.xor;\n\n/*\n// Use this code to generate the export statements dynamically\n\nlet code = '';\n\nfor ( const key of Object.keys( THREE.TSL ) ) {\n\n\tcode += `export const ${ key } = TSL.${ key };\\n`;\n\n}\n\nlog( code );\n//*/\n\nexport { BRDF_GGX, BRDF_Lambert, BasicPointShadowFilter, BasicShadowFilter, Break, Const, Continue, DFGLUT, D_GGX, Discard, EPSILON, F_Schlick, Fn, HALF_PI, INFINITY, If, Loop, NodeAccess, NodeShaderStage, NodeType, NodeUpdateType, OnBeforeMaterialUpdate, OnBeforeObjectUpdate, OnMaterialUpdate, OnObjectUpdate, PCFShadowFilter, PCFSoftShadowFilter, PI, PI2, PointShadowFilter, Return, Schlick_to_F0, ShaderNode, Stack, Switch, TBNViewMatrix, TWO_PI, VSMShadowFilter, V_GGX_SmithCorrelated, Var, VarIntent, abs, acesFilmicToneMapping, acos, acosh, add, addMethodChaining, addNodeElement, agxToneMapping, all, alphaT, ambientOcclusion, and, anisotropy, anisotropyB, anisotropyT, any, append, array, asin, asinh, assign, atan, atanh, atomicAdd, atomicAnd, atomicFunc, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, attenuationColor, attenuationDistance, attribute, attributeArray, backgroundBlurriness, backgroundIntensity, backgroundRotation, batch, bentNormalView, billboarding, bitAnd, bitNot, bitOr, bitXor, bitangentGeometry, bitangentLocal, bitangentView, bitangentWorld, bitcast, blendBurn, blendColor, blendDodge, blendOverlay, blendScreen, blur, bool, buffer, bufferAttribute, builtin, builtinAOContext, builtinShadowContext, bumpMap, bvec2, bvec3, bvec4, bypass, cache, call, cameraFar, cameraIndex, cameraNear, cameraNormalMatrix, cameraPosition, cameraProjectionMatrix, cameraProjectionMatrixInverse, cameraViewMatrix, cameraViewport, cameraWorldMatrix, cbrt, cdl, ceil, checker, cineonToneMapping, clamp, clearcoat, clearcoatNormalView, clearcoatRoughness, clipSpace, code, color, colorSpaceToWorking, colorToDirection, compute, computeKernel, computeSkinning, context, convert, convertColorSpace, convertToTexture, cos, cosh, countLeadingZeros, countOneBits, countTrailingZeros, cross, cubeTexture, cubeTextureBase, dFdx, dFdy, dashSize, debug, decrement, decrementBefore, defaultBuildStages, defaultShaderStages, defined, degrees, deltaTime, densityFog, densityFogFactor, depth, depthPass, determinant, difference, diffuseColor, directPointLight, directionToColor, directionToFaceDirection, dispersion, distance, div, dot, drawIndex, dynamicBufferAttribute, element, emissive, equal, equirectDirection, equirectUV, exp, exp2, exponentialHeightFogFactor, expression, faceDirection, faceForward, faceforward, float, floatBitsToInt, floatBitsToUint, floor, fog, fract, frameGroup, frameId, frontFacing, fwidth, gain, gapSize, getConstNodeType, getCurrentStack, getDirection, getDistanceAttenuation, getGeometryRoughness, getNormalFromDepth, getParallaxCorrectNormal, getRoughness, getScreenPosition, getShIrradianceAt, getShadowMaterial, getShadowRenderObjectFunction, getTextureIndex, getViewPosition, globalId, glsl, glslFn, grayscale, greaterThan, greaterThanEqual, hash, highpModelNormalViewMatrix, highpModelViewMatrix, hue, increment, incrementBefore, instance, instanceIndex, instancedArray, instancedBufferAttribute, instancedDynamicBufferAttribute, instancedMesh, int, intBitsToFloat, interleavedGradientNoise, inverse, inverseSqrt, inversesqrt, invocationLocalIndex, invocationSubgroupIndex, ior, iridescence, iridescenceIOR, iridescenceThickness, ivec2, ivec3, ivec4, js, label, length, lengthSq, lessThan, lessThanEqual, lightPosition, lightProjectionUV, lightShadowMatrix, lightTargetDirection, lightTargetPosition, lightViewPosition, lightingContext, lights, linearDepth, linearToneMapping, localId, log, log2, logarithmicDepthToViewZ, luminance, mat2, mat3, mat4, matcapUV, materialAO, materialAlphaTest, materialAnisotropy, materialAnisotropyVector, materialAttenuationColor, materialAttenuationDistance, materialClearcoat, materialClearcoatNormal, materialClearcoatRoughness, materialColor, materialDispersion, materialEmissive, materialEnvIntensity, materialEnvRotation, materialIOR, materialIridescence, materialIridescenceIOR, materialIridescenceThickness, materialLightMap, materialLineDashOffset, materialLineDashSize, materialLineGapSize, materialLineScale, materialLineWidth, materialMetalness, materialNormal, materialOpacity, materialPointSize, materialReference, materialReflectivity, materialRefractionRatio, materialRotation, materialRoughness, materialSheen, materialSheenRoughness, materialShininess, materialSpecular, materialSpecularColor, materialSpecularIntensity, materialSpecularStrength, materialThickness, materialTransmission, max, maxMipLevel, mediumpModelViewMatrix, metalness, min, mix, mixElement, mod, modelDirection, modelNormalMatrix, modelPosition, modelRadius, modelScale, modelViewMatrix, modelViewPosition, modelViewProjection, modelWorldMatrix, modelWorldMatrixInverse, morphReference, mrt, mul, mx_aastep, mx_add, mx_atan2, mx_cell_noise_float, mx_contrast, mx_divide, mx_fractal_noise_float, mx_fractal_noise_vec2, mx_fractal_noise_vec3, mx_fractal_noise_vec4, mx_frame, mx_heighttonormal, mx_hsvtorgb, mx_ifequal, mx_ifgreater, mx_ifgreatereq, mx_invert, mx_modulo, mx_multiply, mx_noise_float, mx_noise_vec3, mx_noise_vec4, mx_place2d, mx_power, mx_ramp4, mx_ramplr, mx_ramptb, mx_rgbtohsv, mx_rotate2d, mx_rotate3d, mx_safepower, mx_separate, mx_splitlr, mx_splittb, mx_srgb_texture_to_lin_rec709, mx_subtract, mx_timer, mx_transform_uv, mx_unifiednoise2d, mx_unifiednoise3d, mx_worley_noise_float, mx_worley_noise_vec2, mx_worley_noise_vec3, negate, negateOnBackSide, neutralToneMapping, nodeArray, nodeImmutable, nodeObject, nodeObjectIntent, nodeObjects, nodeProxy, nodeProxyIntent, normalFlat, normalGeometry, normalLocal, normalMap, normalView, normalViewGeometry, normalWorld, normalWorldGeometry, normalize, not, notEqual, numWorkgroups, objectDirection, objectGroup, objectPosition, objectRadius, objectScale, objectViewPosition, objectWorldMatrix, oneMinus, or, orthographicDepthToViewZ, oscSawtooth, oscSine, oscSquare, oscTriangle, output, outputStruct, overloadingFn, overrideNode, overrideNodes, packHalf2x16, packNormalToRGB, packSnorm2x16, packUnorm2x16, parabola, parallaxDirection, parallaxUV, parameter, pass, passTexture, pcurve, perspectiveDepthToViewZ, pmremTexture, pointShadow, pointUV, pointWidth, positionGeometry, positionLocal, positionPrevious, positionView, positionViewDirection, positionWorld, positionWorldDirection, posterize, pow, pow2, pow3, pow4, premultiplyAlpha, property, radians, rand, range, rangeFog, rangeFogFactor, reciprocal, reference, referenceBuffer, reflect, reflectVector, reflectView, reflector, refract, refractVector, refractView, reinhardToneMapping, remap, remapClamp, renderGroup, renderOutput, rendererReference, replaceDefaultUV, rotate, rotateUV, roughness, round, rtt, sRGBTransferEOTF, sRGBTransferOETF, sample, sampler, samplerComparison, saturate, saturation, screen, screenCoordinate, screenDPR, screenSize, screenUV, select, setCurrentStack, setName, shaderStages, shadow, shadowPositionWorld, shapeCircle, sharedUniformGroup, sheen, sheenRoughness, shiftLeft, shiftRight, shininess, sign, sin, sinc, sinh, skinning, smoothstep, smoothstepElement, specularColor, specularF90, spherizeUV, split, spritesheetUV, sqrt, stack, step, stepElement, storage, storageBarrier, storageTexture, storageTexture3D, struct, sub, subBuild, subgroupAdd, subgroupAll, subgroupAnd, subgroupAny, subgroupBallot, subgroupBroadcast, subgroupBroadcastFirst, subgroupElect, subgroupExclusiveAdd, subgroupExclusiveMul, subgroupInclusiveAdd, subgroupInclusiveMul, subgroupIndex, subgroupMax, subgroupMin, subgroupMul, subgroupOr, subgroupShuffle, subgroupShuffleDown, subgroupShuffleUp, subgroupShuffleXor, subgroupSize, subgroupXor, tan, tangentGeometry, tangentLocal, tangentView, tangentWorld, tanh, texture, texture3D, textureBarrier, textureBicubic, textureBicubicLevel, textureCubeUV, textureLevel, textureLoad, textureSize, textureStore, thickness, time, toneMapping, toneMappingExposure, toonOutlinePass, transformDirection, transformNormal, transformNormalByInverseViewMatrix, transformNormalByViewMatrix, transformNormalToView, transformedClearcoatNormalView, transformedNormalView, transformedNormalWorld, transmission, transpose, triNoise3D, triplanarTexture, triplanarTextures, trunc, uint, uintBitsToFloat, uniform, uniformArray, uniformCubeTexture, uniformFlow, uniformGroup, uniformTexture, unpackHalf2x16, unpackRGBToNormal, unpackSnorm2x16, unpackUnorm2x16, unpremultiplyAlpha, userData, uv, uvec2, uvec3, uvec4, varying, varyingProperty, vec2, vec3, vec4, vectorComponents, velocity, vertexColor, vertexIndex, vertexStage, vibrance, viewZToLogarithmicDepth, viewZToOrthographicDepth, viewZToPerspectiveDepth, viewZToReversedOrthographicDepth, viewZToReversedPerspectiveDepth, viewport, viewportCoordinate, viewportDepthTexture, viewportLinearDepth, viewportMipTexture, viewportOpaqueMipTexture, viewportResolution, viewportSafeUV, viewportSharedTexture, viewportSize, viewportTexture, viewportUV, vogelDiskSample, wgsl, wgslFn, workgroupArray, workgroupBarrier, workgroupId, workingToColorSpace, xor };\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { H as e, V as t, n, st as r } from "./roomle-sdk-Be4K-H8u.mjs";
2
- import { t as i } from "./script-loader-CzikXnNg.mjs";
1
+ import { H as e, V as t, n, st as r } from "./roomle-sdk-BCmaueGp.mjs";
2
+ import { t as i } from "./script-loader-Dmcvx-Qu.mjs";
3
3
  //#region packages/tools-core/src/utils/injectables.ts
4
4
  var a = [new r("script-loader", i)], o = class extends e {
5
5
  setupGlobals() {}
@@ -27,4 +27,4 @@ var a = [new r("script-loader", i)], o = class extends e {
27
27
  //#endregion
28
28
  export { o as ToolsCore };
29
29
 
30
- //# sourceMappingURL=tools-core-CVdBXX3L.mjs.map
30
+ //# sourceMappingURL=tools-core-CRWZtE-S.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools-core-CVdBXX3L.mjs","names":[],"sources":["../../packages/tools-core/src/utils/injectables.ts","../../packages/tools-core/src/tools-core.ts"],"sourcesContent":["import ScriptLoader from '../../../common-core/src/script-loader';\nimport { DependencyInjectionAssignment } from '../../../common-core/src/di/container';\n\nexport const INJECTABLES: DependencyInjectionAssignment[] = [\n new DependencyInjectionAssignment('script-loader', ScriptLoader),\n];\n","import './utils/global-definitions';\n\nimport { Main, BASE_CONTEXT } from '../../common-core/src/main';\nimport type Logger from '../../common-core/src/logger';\nimport RoomleDependencyInjection from '../../common-core/src/di/roomle-dependency-injection';\nimport type RoomleToolsCore from './roomle-tools-core';\nimport type ScriptLoader from '../../common-core/src/script-loader';\nimport { INJECTABLES } from './utils/injectables';\n\nexport class ToolsCore extends Main {\n private _tools: RoomleToolsCore | undefined;\n\n protected setupGlobals(): void {\n //globals are initialized in bootFinished()\n }\n\n protected setupDependencies(): void {\n RoomleDependencyInjection.setup(INJECTABLES);\n this.lookup<Logger>('logger', this._context);\n }\n\n protected cleanUpGlobals(): void {\n this._tools = undefined;\n if (window.RoomleToolsCore) {\n delete window.RoomleToolsCore;\n }\n }\n\n protected cleanUpDependencies(): void {\n const scriptLoader = this.lookup<ScriptLoader>('script-loader');\n if (scriptLoader) {\n scriptLoader.cleanUp();\n }\n }\n\n protected async bootFinished(): Promise<void> {\n this._tools = this.lookup<RoomleToolsCore>(\n 'roomle-tools-core',\n this._context,\n );\n\n if (!window.RoomleToolsCore) {\n window.RoomleToolsCore = this._tools;\n }\n }\n\n public getApi(): RoomleToolsCore {\n if (this._tools === undefined) {\n throw new Error('ToolsCore not initialized. Call boot() first.');\n }\n return this._tools;\n }\n\n protected getContextName(): string {\n return BASE_CONTEXT.TOOLS_CORE;\n }\n}\n"],"mappings":";;;AAGA,IAAa,IAA+C,CAC1D,IAAI,EAA8B,iBAAiB,EAAa,CACjE,ECIY,IAAb,cAA+B,EAAK;CAGlC,eAA+B;CAI/B,oBAAoC;AAElC,EADA,EAA0B,MAAM,EAAY,EAC5C,KAAK,OAAe,UAAU,KAAK,SAAS;;CAG9C,iBAAiC;AAE/B,EADA,KAAK,SAAS,KAAA,GACV,OAAO,mBACT,OAAO,OAAO;;CAIlB,sBAAsC;EACpC,IAAM,IAAe,KAAK,OAAqB,gBAAgB;AAC/D,EAAI,KACF,EAAa,SAAS;;CAI1B,MAAgB,eAA8B;AAM5C,EALA,KAAK,SAAS,KAAK,OACjB,qBACA,KAAK,SACN,EAEI,OAAO,oBACV,OAAO,kBAAkB,KAAK;;CAIlC,SAAiC;AAC/B,MAAI,KAAK,WAAW,KAAA,EAClB,OAAU,MAAM,gDAAgD;AAElE,SAAO,KAAK;;CAGd,iBAAmC;AACjC,SAAO,EAAa"}
1
+ {"version":3,"file":"tools-core-CRWZtE-S.mjs","names":[],"sources":["../../packages/tools-core/src/utils/injectables.ts","../../packages/tools-core/src/tools-core.ts"],"sourcesContent":["import ScriptLoader from '../../../common-core/src/script-loader';\nimport { DependencyInjectionAssignment } from '../../../common-core/src/di/container';\n\nexport const INJECTABLES: DependencyInjectionAssignment[] = [\n new DependencyInjectionAssignment('script-loader', ScriptLoader),\n];\n","import './utils/global-definitions';\n\nimport { Main, BASE_CONTEXT } from '../../common-core/src/main';\nimport type Logger from '../../common-core/src/logger';\nimport RoomleDependencyInjection from '../../common-core/src/di/roomle-dependency-injection';\nimport type RoomleToolsCore from './roomle-tools-core';\nimport type ScriptLoader from '../../common-core/src/script-loader';\nimport { INJECTABLES } from './utils/injectables';\n\nexport class ToolsCore extends Main {\n private _tools: RoomleToolsCore | undefined;\n\n protected setupGlobals(): void {\n //globals are initialized in bootFinished()\n }\n\n protected setupDependencies(): void {\n RoomleDependencyInjection.setup(INJECTABLES);\n this.lookup<Logger>('logger', this._context);\n }\n\n protected cleanUpGlobals(): void {\n this._tools = undefined;\n if (window.RoomleToolsCore) {\n delete window.RoomleToolsCore;\n }\n }\n\n protected cleanUpDependencies(): void {\n const scriptLoader = this.lookup<ScriptLoader>('script-loader');\n if (scriptLoader) {\n scriptLoader.cleanUp();\n }\n }\n\n protected async bootFinished(): Promise<void> {\n this._tools = this.lookup<RoomleToolsCore>(\n 'roomle-tools-core',\n this._context,\n );\n\n if (!window.RoomleToolsCore) {\n window.RoomleToolsCore = this._tools;\n }\n }\n\n public getApi(): RoomleToolsCore {\n if (this._tools === undefined) {\n throw new Error('ToolsCore not initialized. Call boot() first.');\n }\n return this._tools;\n }\n\n protected getContextName(): string {\n return BASE_CONTEXT.TOOLS_CORE;\n }\n}\n"],"mappings":";;;AAGA,IAAa,IAA+C,CAC1D,IAAI,EAA8B,iBAAiB,EAAa,CACjE,ECIY,IAAb,cAA+B,EAAK;CAGlC,eAA+B;CAI/B,oBAAoC;AAElC,EADA,EAA0B,MAAM,EAAY,EAC5C,KAAK,OAAe,UAAU,KAAK,SAAS;;CAG9C,iBAAiC;AAE/B,EADA,KAAK,SAAS,KAAA,GACV,OAAO,mBACT,OAAO,OAAO;;CAIlB,sBAAsC;EACpC,IAAM,IAAe,KAAK,OAAqB,gBAAgB;AAC/D,EAAI,KACF,EAAa,SAAS;;CAI1B,MAAgB,eAA8B;AAM5C,EALA,KAAK,SAAS,KAAK,OACjB,qBACA,KAAK,SACN,EAEI,OAAO,oBACV,OAAO,kBAAkB,KAAK;;CAIlC,SAAiC;AAC/B,MAAI,KAAK,WAAW,KAAA,EAClB,OAAU,MAAM,gDAAgD;AAElE,SAAO,KAAK;;CAGd,iBAAmC;AACjC,SAAO,EAAa"}