@roomle/web-sdk 3.10.0-alpha.4 → 3.10.0-alpha.5
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.
- package/lib/ConfiguratorKernel.wasm +0 -0
- package/lib/RoomleCore.wasm +0 -0
- package/lib/RoomleToolsCore.wasm +0 -0
- package/lib/{api-ckpzIPty.mjs → api-DJoArPcI.mjs} +2 -2
- package/lib/{api-ckpzIPty.mjs.map → api-DJoArPcI.mjs.map} +1 -1
- package/lib/asset-loader.worker-CHyN7JB1.mjs.map +1 -1
- package/lib/budgeteer.sw-BCLEIWCW.mjs.map +1 -1
- package/lib/{component-dimensioning-DcmDM6gV.mjs → component-dimensioning-Bo5U4LwJ.mjs} +2 -2
- package/lib/{component-dimensioning-DcmDM6gV.mjs.map → component-dimensioning-Bo5U4LwJ.mjs.map} +1 -1
- package/lib/{component-raycast-helper-CXN2MHtG.mjs → component-raycast-helper-BwRJfce2.mjs} +2 -2
- package/lib/{component-raycast-helper-CXN2MHtG.mjs.map → component-raycast-helper-BwRJfce2.mjs.map} +1 -1
- package/lib/configurator-BDdNLPig.mjs +2 -0
- package/lib/{configurator-D6lTTIlU.mjs → configurator-BGTlYsAz.mjs} +4 -4
- package/lib/{configurator-D6lTTIlU.mjs.map → configurator-BGTlYsAz.mjs.map} +1 -1
- package/lib/{glb-viewer-CuRDCxVq.mjs → glb-viewer-Bpr7dSuq.mjs} +4 -4
- package/lib/{glb-viewer-CuRDCxVq.mjs.map → glb-viewer-Bpr7dSuq.mjs.map} +1 -1
- package/lib/glb-viewer-C1M1v4Da.mjs +2 -0
- package/lib/{highlight-coordinator-CTZ_qcde.mjs → highlight-coordinator-Dweh3BSu.mjs} +2 -2
- package/lib/{highlight-coordinator-CTZ_qcde.mjs.map → highlight-coordinator-Dweh3BSu.mjs.map} +1 -1
- package/lib/{homag-intelligence-CIBPifJk.mjs → homag-intelligence-D11ORwRA.mjs} +3 -3
- package/lib/{homag-intelligence-CIBPifJk.mjs.map → homag-intelligence-D11ORwRA.mjs.map} +1 -1
- package/lib/{main-KSs3XdXO.mjs → main-C2IL3ar7.mjs} +7683 -7627
- package/lib/main-C2IL3ar7.mjs.map +1 -0
- package/lib/{material-viewer-Ced_pruD.mjs → material-viewer-ChuyspP3.mjs} +4 -4
- package/lib/{material-viewer-Ced_pruD.mjs.map → material-viewer-ChuyspP3.mjs.map} +1 -1
- package/lib/packages-D26IfYP3.mjs +4 -0
- package/lib/{planner-ykpwnVZa.mjs → planner-BVsxip3_.mjs} +3 -3
- package/lib/{planner-ykpwnVZa.mjs.map → planner-BVsxip3_.mjs.map} +1 -1
- package/lib/planner-n1B1oBcW.mjs +2 -0
- package/lib/roomle-headless.d.ts +44 -7
- package/lib/roomle-headless.js +9 -9
- package/lib/roomle-sdk.d.ts +44 -7
- package/lib/roomle-sdk.js +8 -8
- package/lib/{scene-renderer-DbHi1plp.mjs → scene-renderer-rrWFY9B9.mjs} +2 -2
- package/lib/{scene-renderer-DbHi1plp.mjs.map → scene-renderer-rrWFY9B9.mjs.map} +1 -1
- package/lib/{script-loader-DKx7ZvkP.mjs → script-loader-DFhN_ZHC.mjs} +2 -2
- package/lib/{script-loader-DKx7ZvkP.mjs.map → script-loader-DFhN_ZHC.mjs.map} +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
- package/lib/{stats-helper-Bs79UZne.mjs → stats-helper-83r4i8j_.mjs} +2 -2
- package/lib/{stats-helper-Bs79UZne.mjs.map → stats-helper-83r4i8j_.mjs.map} +1 -1
- package/lib/{threejs-utils-E4yVZATI.mjs → threejs-utils-cTSWDuZN.mjs} +56 -53
- package/lib/threejs-utils-cTSWDuZN.mjs.map +1 -0
- package/lib/{tools-core-D4EbqT91.mjs → tools-core-BXc5X-bq.mjs} +3 -3
- package/lib/{tools-core-D4EbqT91.mjs.map → tools-core-BXc5X-bq.mjs.map} +1 -1
- package/package.json +1 -1
- package/lib/configurator-DZotRC5_.mjs +0 -2
- package/lib/glb-viewer-DKWeC8wq.mjs +0 -2
- package/lib/main-KSs3XdXO.mjs.map +0 -1
- package/lib/packages-oEzg5zoT.mjs +0 -4
- package/lib/planner-QF8IrfPz.mjs +0 -2
- package/lib/threejs-utils-E4yVZATI.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as e, r as t, t as n } from "./decorate-CTUwswpM.mjs";
|
|
2
|
-
import { j as r, tt as i } from "./main-
|
|
2
|
+
import { j as r, tt as i } from "./main-C2IL3ar7.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-
|
|
86
|
+
//# sourceMappingURL=script-loader-DFhN_ZHC.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-loader-DKx7ZvkP.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__Msg57USEadASvSStYSdmzA__\"","export default \"__VITE_ASSET__8HSUfh7cJHNFxCkInNzNXw__\"","export default \"__VITE_ASSET__epdbhdyBUyD3hvxx0_dcTg__\"","export default \"__VITE_ASSET__P4DPfwIRieI8P6q8r4JZRw__\"","export default \"__VITE_ASSET__aLISaAY6NSiJFT$6GdtrfA__\"","export default \"__VITE_ASSET__FKNdLzKnlftW3t_gzo81yw__\"","// @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-DFhN_ZHC.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__Msg57USEadASvSStYSdmzA__\"","export default \"__VITE_ASSET__DUq8YoikZLXEejpNZ1KQvg__\"","export default \"__VITE_ASSET__epdbhdyBUyD3hvxx0_dcTg__\"","export default \"__VITE_ASSET__$oUiuAXR7gZMKRQU56HW2w__\"","export default \"__VITE_ASSET__aLISaAY6NSiJFT$6GdtrfA__\"","export default \"__VITE_ASSET__8HSUfh7cJHNFxCkInNzNXw__\"","// @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.81.0-alpha.
|
|
1
|
+
{"name": "roomle-core-hsc", "version": "2.81.0-alpha.13" }
|
package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm
CHANGED
|
Binary file
|
|
Binary file
|
package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm
CHANGED
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as e, t } from "./rolldown-runtime-DgwB9i60.mjs";
|
|
2
|
-
import { t as n } from "./scene-renderer-
|
|
2
|
+
import { t as n } from "./scene-renderer-rrWFY9B9.mjs";
|
|
3
3
|
import { n as r, r as i, t as a } from "./decorate-CTUwswpM.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-
|
|
96
|
+
//# sourceMappingURL=stats-helper-83r4i8j_.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-helper-Bs79UZne.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-83r4i8j_.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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"}
|
|
@@ -30,10 +30,13 @@ var ee = {
|
|
|
30
30
|
DEFAULT: 0,
|
|
31
31
|
TERRAIN: 1
|
|
32
32
|
}, oe = {
|
|
33
|
+
DEFAULT: 0,
|
|
34
|
+
CONSTRUCTION: 1
|
|
35
|
+
}, se = {
|
|
33
36
|
WALL: 0,
|
|
34
37
|
EDGE: 1,
|
|
35
38
|
CONSTRUCTION: 2
|
|
36
|
-
},
|
|
39
|
+
}, ce = {
|
|
37
40
|
OBJECT: 0,
|
|
38
41
|
DOOR: 1,
|
|
39
42
|
WINDOW: 2,
|
|
@@ -43,32 +46,32 @@ var ee = {
|
|
|
43
46
|
return Math.PI / 180 * e;
|
|
44
47
|
}, S = function(e) {
|
|
45
48
|
return 180 / Math.PI * e;
|
|
46
|
-
},
|
|
49
|
+
}, le = function(e) {
|
|
47
50
|
return e >= 0 ? -180 + (e + 180) % 360 : 180 - (-e + 180) % 360;
|
|
48
|
-
},
|
|
51
|
+
}, ue = function(e, t, n, r, i, a) {
|
|
49
52
|
e = Math.sqrt(e * e + n * n);
|
|
50
53
|
let o = i / a || 1, s = 2 * Math.atan(Math.tan(r * Math.PI / 180 / 2) * o) * 180 / Math.PI, c = x(r), l = t / 2 / Math.tan(c / 2), u = e / (2 * Math.atan(Math.PI * s / 360));
|
|
51
54
|
return Math.max(l, u);
|
|
52
55
|
}, C = function(e) {
|
|
53
56
|
return Math.round(e * 1e3) / 1e3;
|
|
54
|
-
}, ue = function(e, t) {
|
|
55
|
-
return Math.abs(e.y - t.y) + Math.abs(e.x - t.x);
|
|
56
57
|
}, de = function(e, t) {
|
|
58
|
+
return Math.abs(e.y - t.y) + Math.abs(e.x - t.x);
|
|
59
|
+
}, fe = function(e, t) {
|
|
57
60
|
return Math.atan2(t.y - e.y, t.x - e.x);
|
|
58
|
-
},
|
|
61
|
+
}, pe = function(e) {
|
|
59
62
|
let t = S(e);
|
|
60
63
|
return t < 0 && (t = 180 + (180 + t)), t;
|
|
61
64
|
}, w = /* @__PURE__ */ function(e) {
|
|
62
65
|
return e[e.NODE = 0] = "NODE", e[e.WALL = 1] = "WALL", e[e.OBJECT = 2] = "OBJECT", e[e.FLOOR = 3] = "FLOOR", e[e.TEXT = 4] = "TEXT", e[e.MEASURE = 5] = "MEASURE", e[e.IMAGE = 6] = "IMAGE", e[e.CEILING = 7] = "CEILING", e;
|
|
63
|
-
}({}),
|
|
66
|
+
}({}), me = {
|
|
64
67
|
LEFT: 0,
|
|
65
68
|
RIGHT: 1,
|
|
66
69
|
MIDDLE: 2
|
|
67
|
-
},
|
|
70
|
+
}, he = /* @__PURE__ */ function(e) {
|
|
68
71
|
return e[e.None = 0] = "None", e[e.CatalogItem = 1] = "CatalogItem", e[e.Material = 2] = "Material", e[e.RgbValue = 3] = "RgbValue", e;
|
|
69
|
-
}({}),
|
|
72
|
+
}({}), ge = /* @__PURE__ */ function(e) {
|
|
70
73
|
return e[e.CONTINOUS = 0] = "CONTINOUS", e[e.CLICK_PER_CLICK = 1] = "CLICK_PER_CLICK", e;
|
|
71
|
-
}({}),
|
|
74
|
+
}({}), _e = {
|
|
72
75
|
WALL: 0,
|
|
73
76
|
ROOM_CONTOUR: 1,
|
|
74
77
|
CONTOUR: 2
|
|
@@ -452,21 +455,21 @@ var P = null;
|
|
|
452
455
|
globalThis.window !== void 0 && import("./dat.gui.module-BLjoST8r.mjs").then((e) => {
|
|
453
456
|
P = e.GUI;
|
|
454
457
|
}).catch(() => {});
|
|
455
|
-
var
|
|
458
|
+
var F = .4, I = "#DDDDDD", ve = .4, ye = "#7B7B7B", be = "#B1B1B1", xe = .8, Se = .9, Ce = (e) => e instanceof g ? e.capabilities.maxSamples : 16, we = (e) => e instanceof g ? e.capabilities.maxTextures : 16, Te = (e) => e instanceof g ? e.capabilities.getMaxAnisotropy() : 16, Ee = (e, t, n, r) => {
|
|
456
459
|
if (!e || !t || n === 0 || r === 0) return new a();
|
|
457
460
|
let i = e.clone(), o = n / 2, s = r / 2;
|
|
458
461
|
return i.project(t), i.x = Math.floor(i.x * o + o), i.y = Math.floor(-(i.y * s) + s), i.z = e.distanceTo(t.position), i;
|
|
459
|
-
},
|
|
462
|
+
}, De = (e, t) => {
|
|
460
463
|
t ||= new a(0, 0, 0);
|
|
461
464
|
let n = new a(e.size.x / 1e3, e.size.z / 1e3, e.size.y / 1e3), r = new a(e.origin.x / 1e3, e.origin.z / 1e3, e.origin.y / -1e3);
|
|
462
465
|
return new u(new a(0, 0, -n.z).add(r).sub(t), new a(n.x, n.y, 0).add(r).add(t));
|
|
463
|
-
},
|
|
466
|
+
}, Oe = (e) => (e.from /= 1e3, e.to /= 1e3, e), ke = (e, t) => {
|
|
464
467
|
let n = C(e.x), r = C(e.y), i = C(e.z), a = C(t.x), o = C(t.y), s = C(t.z);
|
|
465
468
|
return n === a && r === o && i === s;
|
|
466
|
-
},
|
|
469
|
+
}, Ae = (e, t) => {
|
|
467
470
|
let n = C(e.w), r = C(e.x), i = C(e.y), a = C(e.z), o = C(t.w), s = C(t.x), c = C(t.y), l = C(t.z);
|
|
468
471
|
return n === o && r === s && i === c && a === l;
|
|
469
|
-
},
|
|
472
|
+
}, je = (e, t) => {
|
|
470
473
|
let n = C(e.x), r = C(e.y), i = C(t.x), a = C(t.y);
|
|
471
474
|
return n === i && r === a;
|
|
472
475
|
}, L = null, R = () => {
|
|
@@ -478,20 +481,20 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
478
481
|
}
|
|
479
482
|
let n = new o(e, 1, 1, t);
|
|
480
483
|
return n.needsUpdate = !0, n;
|
|
481
|
-
},
|
|
482
|
-
e ||=
|
|
484
|
+
}, Me = (e) => z(null, e), z = (e, t) => {
|
|
485
|
+
e ||= Fe(), e.name = t.id ? t.id.toString() : "";
|
|
483
486
|
let n = t.shading.version === "2" || t.shading.version?.startsWith("2.");
|
|
484
|
-
return e = n ?
|
|
485
|
-
},
|
|
487
|
+
return e = n ? Pe(e, t) : Ne(e, t), e.userData.materialVersion = n ? 2 : 1, e.map || (L ||= R(), e.map = L), e;
|
|
488
|
+
}, Ne = (e, t) => {
|
|
486
489
|
t.shading.metallic !== void 0 && (e.metalness = t.shading.metallic === 1 ? 1 : .5, e.reflectivity = y(t.shading.metallic, .5));
|
|
487
490
|
let n = !1;
|
|
488
491
|
return t.shading.transmission && t.shading.transmission > 0 ? (e.opacity = 1 - t.shading.transmission, e.transparent = !0, e.depthWrite = !1, e.metalness = 0, n = !0) : t.shading.alpha !== void 0 && t.shading.alpha < 1 && (e.transparent = t.shading.alpha < 1, e.opacity = t.shading.alpha, e.depthWrite = t.shading.alpha >= 1, e.metalness = .5 * Math.max(0, t.shading.alpha), n = !0), e.aoMapIntensity = y(t.shading.occlusion, 1), e.roughness = y(t.shading.roughness, .5), e.alphaTest = y(t.shading.alphaCutoff, 0), B(e.color, t.shading.basecolor), n || t.shading.doubleSided ? e.side = 2 : e.side = 0, e;
|
|
489
|
-
},
|
|
492
|
+
}, Pe = (e, t) => {
|
|
490
493
|
let n = !1, r = t.shading.transmission && t.shading.transmission > 0;
|
|
491
494
|
t.shading.alpha !== void 0 && t.shading.alpha < 1 ? (e.transparent = !0, e.opacity = t.shading.alpha, e.depthWrite = !1, n = !0) : (e.transparent = !1, e.opacity = 1, e.depthWrite = !0), e.alphaTest = t.shading.alphaCutoff ?? 0, B(e.color, t.shading.basecolor), e.transmission = t.shading.transmission ?? 0, e.ior = Math.max(1, Math.min(2.33, t.shading.transmissionIOR ?? 1.5)), e.metalness = t.shading.metallic ?? 0, B(e.specularColor, t.shading.specularColor), e.specularIntensity = t.shading.specularity ?? 1, e.roughness = t.shading.roughness ?? 0, e.aoMapIntensity = t.shading.occlusion ?? 1, B(e.emissive, t.shading.emissiveColor), e.emissiveIntensity = t.shading.emissiveIntensity ?? 1, e.clearcoat = t.shading.clearcoatIntensity ?? 0, e.clearcoatRoughness = t.shading.clearcoatRoughness ?? 0, e.clearcoatNormalScale.setScalar(t.shading.clearcoatNormalScale ?? 1), B(e.sheenColor, t.shading.sheenColor), e.sheen = t.shading.sheenIntensity ?? 1, e.sheenRoughness = t.shading.sheenRoughness ?? 1, e.thickness = t.shading.thicknessFactor ?? 0;
|
|
492
495
|
let i = t.shading.attenuationDistance;
|
|
493
496
|
return r && i === 0 ? console.warn("invalid attenuation configuration for transmissive material -- Skipping attenuation color and distance configuration in material.") : (B(e.attenuationColor, t.shading.attenuationColor), i != null && (e.attenuationDistance = i)), e.side = n || t.shading.doubleSided ? 2 : 0, e;
|
|
494
|
-
},
|
|
497
|
+
}, Fe = () => T.createMeshPhysicalMaterial({}), Ie = (e, t = 1) => t === 2 ? Re(e) : Le(e), Le = (e) => {
|
|
495
498
|
let t = {
|
|
496
499
|
alpha: e.opacity,
|
|
497
500
|
metallic: e.reflectivity,
|
|
@@ -502,7 +505,7 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
502
505
|
transmission: e.transmission
|
|
503
506
|
};
|
|
504
507
|
return e.metalness === 1 ? t.metallic = 1 : t.metallic = e.reflectivity, t;
|
|
505
|
-
},
|
|
508
|
+
}, Re = (e) => ({
|
|
506
509
|
version: "2.0.0",
|
|
507
510
|
alpha: e.opacity,
|
|
508
511
|
alphaCutoff: e.alphaTest,
|
|
@@ -538,7 +541,7 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
538
541
|
g: t.g,
|
|
539
542
|
b: t.b
|
|
540
543
|
};
|
|
541
|
-
}, H = null,
|
|
544
|
+
}, H = null, ze = (e, t, n, r, i, a, o = 16) => {
|
|
542
545
|
H || (H = new p(), H.crossOrigin = "");
|
|
543
546
|
let s = H;
|
|
544
547
|
return new Promise((c, l) => {
|
|
@@ -565,10 +568,10 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
565
568
|
console.warn("ORM maps are not supported on devices with only " + s + " texture units");
|
|
566
569
|
return;
|
|
567
570
|
}
|
|
568
|
-
e.repeat.set(a, o),
|
|
569
|
-
},
|
|
571
|
+
e.repeat.set(a, o), Be(e, t, n), t.mapping === v.RGBA && (n.transparent = !0, n.userData.materialVersion === 1 && n.name.includes("glow") && (n.emissiveIntensity = .5, n.emissive = new h(16777215), n.emissiveMap = n.map)), n.needsUpdate = !0;
|
|
572
|
+
}, Be = (t, n, r) => {
|
|
570
573
|
n.mapping === v.XYZ ? (r.normalMap = t, r.map === R() && (r.map = null)) : n.mapping === v.ORM ? (r.aoMap = t, r.roughnessMap = t, r.metalnessMap = t) : n.mapping === v.EMRGB ? r.emissiveMap = t : n.mapping === v.CCRG ? (r.clearcoatMap = t, r.clearcoatRoughnessMap = t) : n.mapping === v.CCXYZ ? r.clearcoatNormalMap = t : n.mapping === v.SHRGBA ? (r.sheenColorMap = t, r.sheenRoughnessMap = t) : n.mapping === v.SPRGBA ? (r.specularColorMap = t, r.specularIntensityMap = t) : n.mapping === v.TTRG ? (r.transmissionMap = t, r.thicknessMap = t) : (t.colorSpace = e, r.map = t);
|
|
571
|
-
},
|
|
574
|
+
}, Ve = (e = !0) => {
|
|
572
575
|
if (!window.__RML_WEBGL_GUI__) {
|
|
573
576
|
if (!P) return null;
|
|
574
577
|
try {
|
|
@@ -578,7 +581,7 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
578
581
|
}
|
|
579
582
|
}
|
|
580
583
|
return window.__RML_WEBGL_GUI__ ?? null;
|
|
581
|
-
},
|
|
584
|
+
}, He = (e, t) => {
|
|
582
585
|
let n = !1;
|
|
583
586
|
for (let r of t) {
|
|
584
587
|
let t = r.getKernelObject(), i;
|
|
@@ -591,7 +594,7 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
591
594
|
a !== r.getContainer().visible && (n = !0), a ? r.setContainerVisibility(!0) : r.isSelected || r.setContainerVisibility(!1);
|
|
592
595
|
}
|
|
593
596
|
return n;
|
|
594
|
-
},
|
|
597
|
+
}, Ue = (e, t, n = !0) => {
|
|
595
598
|
if (!e.userData.tween) if (t) if (e.transparent = !0, !n) e.opacity = .2;
|
|
596
599
|
else {
|
|
597
600
|
let t = { opacity: 1 };
|
|
@@ -614,9 +617,9 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
614
617
|
}).start();
|
|
615
618
|
window.TWEEN?.add(n);
|
|
616
619
|
}
|
|
617
|
-
},
|
|
618
|
-
let o =
|
|
619
|
-
let n =
|
|
620
|
+
}, We = (e, t, n, r, i, a) => {
|
|
621
|
+
let o = Ge(n, r), s = i.clone().multiply(r).multiply(t), c = o.clone().invert(), l = c.clone().multiply(n), u = c.clone().multiply(r), d = { t: 0 }, f = new M(d).to({ t: 1 }, 400).easing(E.Quadratic.InOut).onUpdate(() => {
|
|
622
|
+
let n = Ke(l, u, d.t);
|
|
620
623
|
G(e, i.clone().multiply(o).multiply(n).multiply(t)), a && a();
|
|
621
624
|
}).onComplete(() => {
|
|
622
625
|
G(e, s), a && a(), window.TWEEN?.remove(f);
|
|
@@ -624,7 +627,7 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
624
627
|
window.TWEEN?.remove(f);
|
|
625
628
|
}).start();
|
|
626
629
|
return window.TWEEN?.add(f), f;
|
|
627
|
-
},
|
|
630
|
+
}, Ge = (e, t) => {
|
|
628
631
|
let n = e.clone().invert().clone().multiply(t), i = new a(), o = new r();
|
|
629
632
|
n.decompose(i, o, new a());
|
|
630
633
|
let s = W(o), c = s.axis;
|
|
@@ -641,7 +644,7 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
641
644
|
};
|
|
642
645
|
}, G = (e, t) => {
|
|
643
646
|
e.updateMatrix(), t.multiply(e.matrix.clone().invert()), e.applyMatrix4(t), e.updateMatrix();
|
|
644
|
-
},
|
|
647
|
+
}, Ke = (e, t, n) => {
|
|
645
648
|
let i = new a(), o = new r(), s = new a();
|
|
646
649
|
e.decompose(i, o, s);
|
|
647
650
|
let c = new a(), l = new r(), u = new a();
|
|
@@ -656,12 +659,12 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
656
659
|
}
|
|
657
660
|
let h = new a().lerpVectors(s, u, n), g = new m();
|
|
658
661
|
return g.compose(d, f, h), g;
|
|
659
|
-
},
|
|
662
|
+
}, qe = (e) => {
|
|
660
663
|
let t = new h();
|
|
661
664
|
return t.setRGB((e >> 16) / 255, (e >> 8 & 255) / 255, (e >> 0 & 255) / 255), t;
|
|
662
665
|
}, K = (e, t) => {
|
|
663
666
|
t.transparent || (e.transparent = t.transparent, delete e.userData.postProcessingMaterialPlugin), e.opacity = t.opacity, e.needsUpdate = !0;
|
|
664
|
-
},
|
|
667
|
+
}, Je = (e, t) => new Promise((n) => {
|
|
665
668
|
e.traverse((e) => {
|
|
666
669
|
if (e instanceof c) {
|
|
667
670
|
let r = e.material;
|
|
@@ -678,7 +681,7 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
678
681
|
}).start());
|
|
679
682
|
}
|
|
680
683
|
});
|
|
681
|
-
}),
|
|
684
|
+
}), Ye = (e) => {
|
|
682
685
|
e.traverse((e) => {
|
|
683
686
|
if (e instanceof c) {
|
|
684
687
|
let t = e.material;
|
|
@@ -699,10 +702,10 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
699
702
|
window.TWEEN?.add(i);
|
|
700
703
|
}
|
|
701
704
|
});
|
|
702
|
-
},
|
|
705
|
+
}, Xe = (e, t) => {
|
|
703
706
|
let n = new u().setFromObject(e), r = n.getSize(new a()), i = Math.min(r.x, r.y, r.z), o = !0;
|
|
704
707
|
return i > 5 && (console.warn("GLB seems to be too big (" + i + ")", t), o = !1), n.min.y < -.01 && (console.warn("GLB seems to be under the floor (" + n.min.y + "): ", t), o = !1), o;
|
|
705
|
-
},
|
|
708
|
+
}, Ze = (e) => {
|
|
706
709
|
e.type === "Mesh" ? J(e) : q(e);
|
|
707
710
|
}, q = (e) => {
|
|
708
711
|
!e || !e.children || e.children.length === 0 || e.children.forEach((e) => {
|
|
@@ -730,35 +733,35 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
730
733
|
e && e.dispose();
|
|
731
734
|
}, X = (e) => {
|
|
732
735
|
e && (e.map && e.map.dispose(), e.normalMap && e.normalMap.dispose(), e.dispose());
|
|
733
|
-
}, Z,
|
|
736
|
+
}, Z, Qe = () => (Z || (Z = new f(), Z.visible = !1), Z), Q, $e = (e) => (Q ||= T.createMeshStandardMaterial({
|
|
734
737
|
color: e || "#FF0000",
|
|
735
738
|
transparent: !0,
|
|
736
739
|
opacity: .5,
|
|
737
740
|
visible: !0,
|
|
738
741
|
polygonOffset: !0,
|
|
739
742
|
polygonOffsetFactor: -1
|
|
740
|
-
}), Q),
|
|
743
|
+
}), Q), et = (e) => e.x === 0 && e.y === 0 && e.z === 0, tt = (e) => Number.isFinite(e.x) && Number.isFinite(e.y) && Number.isFinite(e.z), nt = (e, t) => {
|
|
741
744
|
let n = "";
|
|
742
745
|
return !e && e !== "" ? null : (e.materialId && e.materialId !== "" ? n = e.materialId : e.catalogItemId && e.catalogItemId !== "" ? n = e.catalogItemId : e.rgbValue > 0 ? n = "rgb" + JSON.stringify(e.rgbValue) : e.length > 0 ? n = e : t && t.value === w.WALL ? n = "default_wall_material_" + e.getSourceType().value : t && t.value === w.CEILING && (n = "default_ceiling_material_" + e.getSourceType().value), n);
|
|
743
|
-
},
|
|
746
|
+
}, rt = (e) => {
|
|
744
747
|
let t = e.getWorldDirection(new a()).clone();
|
|
745
748
|
t.y = 0, t.lengthSq() < .01 && (t = new a(0, 1, 0), t.applyQuaternion(e.quaternion), t.y = 0), t.normalize();
|
|
746
749
|
let n = Math.asin(t.x);
|
|
747
750
|
return t.z < 0 && (n = Math.PI - n), n < 0 && (n += Math.PI * 2), n;
|
|
748
|
-
},
|
|
751
|
+
}, it = (e, t) => {
|
|
749
752
|
if (!e || !t) return 0;
|
|
750
753
|
let n = e.clone().expandByScalar(.001).containsBox(t), r = t.clone().expandByScalar(.001).containsBox(e);
|
|
751
754
|
return r && n || !r && !n ? 0 : n === !0 ? 1 : -1;
|
|
752
|
-
},
|
|
755
|
+
}, $ = (e, t) => {
|
|
753
756
|
if (!e || !t) return 0;
|
|
754
757
|
let n = e.clone().expandByScalar(.001).containsBox(t), r = t.clone().expandByScalar(.001).containsBox(e);
|
|
755
758
|
if (r && n) return 0;
|
|
756
759
|
if (!r && !n) {
|
|
757
|
-
let n =
|
|
760
|
+
let n = at(e, t);
|
|
758
761
|
return n === .5 ? 0 : n > .5 ? -1 : 1;
|
|
759
762
|
}
|
|
760
763
|
return n === !0 ? 1 : -1;
|
|
761
|
-
},
|
|
764
|
+
}, at = (e, t) => {
|
|
762
765
|
let n = new u();
|
|
763
766
|
if (n.copy(e).intersect(t), n.isEmpty()) return 0;
|
|
764
767
|
let r = (e) => {
|
|
@@ -766,34 +769,34 @@ var _e = .4, F = "#DDDDDD", I = .4, ve = "#7B7B7B", ye = "#B1B1B1", be = .8, xe
|
|
|
766
769
|
return e.getSize(t), t.x * t.y * t.z;
|
|
767
770
|
}, i = r(e), o = r(n);
|
|
768
771
|
return i === 0 ? 0 : o / i;
|
|
769
|
-
},
|
|
772
|
+
}, ot = (e) => e[0] === 1 && e[1] === 0 && e[2] === 0 && e[3] === 1 && e[4] === 0 && e[5] === 0, st = (e, t, n, r = 1) => {
|
|
770
773
|
let i = t > n, o = i ? 15 : 0, s = i ? 0 : 10, c = e.getSize(new a()), l = e.getCenter(new a()), d = c.x > 2 * o ? c.x / 2 : o, f = c.z > 2 * s ? c.z / 2 : s;
|
|
771
774
|
return d *= r, f *= r, new u(new a(l.x - d, l.y, l.z - f), new a(l.x + d, l.y, l.z + f));
|
|
772
|
-
},
|
|
775
|
+
}, ct = (e) => {
|
|
773
776
|
let { x: t, y: n } = e;
|
|
774
777
|
return {
|
|
775
778
|
x: t,
|
|
776
779
|
y: n
|
|
777
780
|
};
|
|
778
|
-
},
|
|
781
|
+
}, lt = (e) => {
|
|
779
782
|
let { x: t, y: n, z: r } = e;
|
|
780
783
|
return {
|
|
781
784
|
x: t,
|
|
782
785
|
y: n,
|
|
783
786
|
z: r
|
|
784
787
|
};
|
|
785
|
-
},
|
|
788
|
+
}, ut = (e, t, n) => new a().setFromSphericalCoords(e, Math.PI * (1 - n), Math.PI * 2 * (1 - t)), dt = (e) => {
|
|
786
789
|
let t = new n();
|
|
787
790
|
return e.environment && (t.environment = e.environment.clone()), e.userData.environmentDefinition && (t.userData.environmentDefinition = e.userData.environmentDefinition.clone()), t.userData.shadowFromEnvironment = e.userData.shadowFromEnvironment, t;
|
|
788
|
-
},
|
|
791
|
+
}, ft = (e, t) => {
|
|
789
792
|
let n = new l(), r = new m().multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse);
|
|
790
793
|
n.setFromProjectionMatrix(r);
|
|
791
794
|
let i = t.getCenter(new a());
|
|
792
795
|
return n.containsPoint(i);
|
|
793
|
-
},
|
|
796
|
+
}, pt = (e) => {
|
|
794
797
|
e.lights_fragment_begin = "\n vec3 geometryPosition = - vViewPosition;\n vec3 geometryNormal = normal;\n vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n vec3 geometryClearcoatNormal = vec3( 0.0 );\n #ifdef USE_CLEARCOAT\n geometryClearcoatNormal = clearcoatNormal;\n #endif\n\n // OPTIMIZATION: Early exit for transparent/invisible materials\n #ifdef USE_ALPHATEST\n if ( diffuseColor.a < alphaTest ) discard;\n #endif\n\n // OPTIMIZATION: Cache expensive calculations\n float NdotV = saturate( dot( geometryNormal, geometryViewDir ) );\n\n #ifdef USE_IRIDESCENCE\n float dotNVi = NdotV; // Reuse calculated value\n if ( material.iridescenceThickness == 0.0 ) {\n material.iridescence = 0.0;\n } else {\n material.iridescence = saturate( material.iridescence );\n }\n // OPTIMIZATION: Skip iridescence calculations if effect is minimal\n if ( material.iridescence > 0.01 ) {\n material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n }\n #endif\n\n IncidentLight directLight;\n\n // OPTIMIZATION: Early exit if material has no metalness or roughness variation\n #ifdef USE_ROUGHNESSMAP\n bool hasRoughnessVariation = true;\n #else\n bool hasRoughnessVariation = false;\n #endif\n\n #ifdef USE_METALNESSMAP\n bool hasMetalnessVariation = true;\n #else\n bool hasMetalnessVariation = false;\n #endif\n\n #if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n PointLight pointLight;\n #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n PointLightShadow pointLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n pointLight = pointLights[ i ];\n getPointLightInfo( pointLight, geometryPosition, directLight );\n\n // OPTIMIZATION: Enhanced visibility and distance checks\n #if defined( RE_Direct )\n if ( directLight.visible ) {\n // OPTIMIZATION: Skip lights with negligible contribution based on color intensity\n float lightIntensity = dot( directLight.color, vec3( 0.299, 0.587, 0.114 ) );\n if ( lightIntensity > 0.001 ) {\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n pointLightShadow = pointLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n }\n #endif\n }\n #pragma unroll_loop_end\n #endif\n\n #if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n SpotLight spotLight;\n vec4 spotColor;\n vec3 spotLightCoord;\n bool inSpotLightMap;\n #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n SpotLightShadow spotLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n spotLight = spotLights[ i ];\n getSpotLightInfo( spotLight, geometryPosition, directLight );\n\n // OPTIMIZATION: Enhanced visibility checks for spot lights\n #if defined( RE_Direct )\n if ( directLight.visible ) {\n // OPTIMIZATION: Skip spot light map calculation if light contribution is minimal\n float lightIntensity = dot( directLight.color, vec3( 0.299, 0.587, 0.114 ) );\n if ( lightIntensity > 0.001 ) {\n #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n #else\n #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n #endif\n #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n if ( inSpotLightMap ) {\n spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n directLight.color = directLight.color * spotColor.rgb;\n }\n #endif\n #undef SPOT_LIGHT_MAP_INDEX\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n spotLightShadow = spotLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n }\n #endif\n }\n #pragma unroll_loop_end\n #endif\n\n #if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n DirectionalLight directionalLight;\n #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n DirectionalLightShadow directionalLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n directionalLight = directionalLights[ i ];\n getDirectionalLightInfo( directionalLight, directLight );\n\n // OPTIMIZATION: Skip very dim directional lights\n #if defined( RE_Direct )\n float lightIntensity = dot( directLight.color, vec3( 0.299, 0.587, 0.114 ) );\n if ( directLight.visible && lightIntensity > 0.001 ) {\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n directionalLightShadow = directionalLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #endif\n }\n #pragma unroll_loop_end\n #endif\n\n #if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n RectAreaLight rectAreaLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n rectAreaLight = rectAreaLights[ i ];\n // OPTIMIZATION: Simple rect area light processing - Three.js handles distance internally\n RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n #endif\n\n // OPTIMIZATION: Streamlined indirect lighting with early exits\n #if defined( RE_IndirectDiffuse )\n vec3 iblIrradiance = vec3( 0.0 );\n vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\n // OPTIMIZATION: Skip light probe calculation if ambient is sufficient\n float ambientIntensity = dot( irradiance, vec3( 0.299, 0.587, 0.114 ) );\n\n #if defined( USE_LIGHT_PROBES )\n if ( ambientIntensity < 0.9 ) {\n irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n }\n #endif\n\n #if ( NUM_HEMI_LIGHTS > 0 )\n if ( ambientIntensity < 0.9 ) {\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n vec3 hemiContribution = getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n // OPTIMIZATION: Skip negligible hemisphere light contributions\n if ( dot( hemiContribution, vec3( 0.299, 0.587, 0.114 ) ) > 0.001 ) {\n irradiance += hemiContribution;\n }\n }\n #pragma unroll_loop_end\n }\n #endif\n #endif\n\n #if defined( RE_IndirectSpecular )\n vec3 radiance = vec3( 0.0 );\n vec3 clearcoatRadiance = vec3( 0.0 );\n #endif", e.lights_pars_begin = e.lights_pars_begin.replace("light.color = pointLight.color;", "\n light.color = pointLight.color * step( lightDistance, pointLight.distance );\n ");
|
|
795
798
|
};
|
|
796
799
|
//#endregion
|
|
797
|
-
export { O as $,
|
|
800
|
+
export { O as $, we as A, je as B, qe as C, b as Ct, Ie as D, nt as E, ft as F, Ue as G, Ae as H, ot as I, Je as J, ct as K, De as L, Ve as M, rt as N, Te as O, He as P, E as Q, Oe as R, $ as S, ne as St, st as T, z as U, ke as V, G as W, et as X, tt as Y, ut as Z, X as _, oe as _t, be as a, w as at, Ye as b, ie as bt, U as c, de as ct, Xe as d, pe as dt, M as et, it as f, S as ft, Y as g, re as gt, Ze as h, ae as ht, ye as i, he as it, Ee as j, Ce as k, ze as l, ue as lt, Me as m, se as mt, Se as n, _e as nt, F as o, me as ot, dt as p, x as pt, lt as q, ve as r, ge as rt, I as s, fe as st, xe as t, T as tt, We as u, le as ut, J as v, ce as vt, $e as w, Qe as x, ee as xt, q as y, te as yt, pt as z };
|
|
798
801
|
|
|
799
|
-
//# sourceMappingURL=threejs-utils-
|
|
802
|
+
//# sourceMappingURL=threejs-utils-cTSWDuZN.mjs.map
|