@roomle/web-sdk 3.10.0-alpha.1 → 3.10.0-alpha.3

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 (122) hide show
  1. package/lib/{BufferGeometry-Dxcf7n9V.mjs → BufferGeometry-Dj5loCTL.mjs} +2 -2
  2. package/lib/{BufferGeometry-Dxcf7n9V.mjs.map → BufferGeometry-Dj5loCTL.mjs.map} +1 -1
  3. package/lib/ConfiguratorKernel.wasm +0 -0
  4. package/lib/{GLTFExporter-kpv1e-Ks.mjs → GLTFExporter-CquK-kkI.mjs} +1 -1
  5. package/lib/{GLTFExporter-kpv1e-Ks.mjs.map → GLTFExporter-CquK-kkI.mjs.map} +1 -1
  6. package/lib/{GaussianBlurNode-CMVlBe39.mjs → GaussianBlurNode-CDYPio-x.mjs} +3 -3
  7. package/lib/{GaussianBlurNode-CMVlBe39.mjs.map → GaussianBlurNode-CDYPio-x.mjs.map} +1 -1
  8. package/lib/{Object3D-BZaiqQIE.mjs → Object3D-YXSPdGeJ.mjs} +1 -1
  9. package/lib/{Object3D-BZaiqQIE.mjs.map → Object3D-YXSPdGeJ.mjs.map} +1 -1
  10. package/lib/{PointLightHelper-fzRB58rC.mjs → PointLightHelper-g98giMRd.mjs} +4 -4
  11. package/lib/{PointLightHelper-fzRB58rC.mjs.map → PointLightHelper-g98giMRd.mjs.map} +1 -1
  12. package/lib/RoomleCore.wasm +0 -0
  13. package/lib/RoomleToolsCore.wasm +0 -0
  14. package/lib/{SpotLightHelper-D5UFwRPb.mjs → SpotLightHelper-xR8lCZau.mjs} +3 -3
  15. package/lib/{SpotLightHelper-D5UFwRPb.mjs.map → SpotLightHelper-xR8lCZau.mjs.map} +1 -1
  16. package/lib/{USDZExporter-Y0SSGr5_.mjs → USDZExporter-BMqBymZI.mjs} +2 -2
  17. package/lib/{USDZExporter-Y0SSGr5_.mjs.map → USDZExporter-BMqBymZI.mjs.map} +1 -1
  18. package/lib/{Vector4-BfZH1ecw.mjs → Vector4-CqzXUndP.mjs} +2 -2
  19. package/lib/{Vector4-BfZH1ecw.mjs.map → Vector4-CqzXUndP.mjs.map} +1 -1
  20. package/lib/{api-DVBX8_mw.mjs → api-BlFJIGaV.mjs} +2 -2
  21. package/lib/{api-DVBX8_mw.mjs.map → api-BlFJIGaV.mjs.map} +1 -1
  22. package/lib/{asset-loader.worker-C911tbNL.mjs → asset-loader.worker-CHyN7JB1.mjs} +1 -1
  23. package/lib/asset-loader.worker-CHyN7JB1.mjs.map +1 -0
  24. package/lib/{banana-for-scale-B_LIHI9q.mjs → banana-for-scale-Cs2s9dNp.mjs} +3 -3
  25. package/lib/{banana-for-scale-B_LIHI9q.mjs.map → banana-for-scale-Cs2s9dNp.mjs.map} +1 -1
  26. package/lib/{budgeteer.sw-D3VxiASa.mjs → budgeteer.sw-BCLEIWCW.mjs} +1 -1
  27. package/lib/budgeteer.sw-BCLEIWCW.mjs.map +1 -0
  28. package/lib/{common-utils-B9PC_rvS.mjs → common-utils-DMk5jc_R.mjs} +1 -1
  29. package/lib/{common-utils-B9PC_rvS.mjs.map → common-utils-DMk5jc_R.mjs.map} +1 -1
  30. package/lib/{component-dimensioning-DC1Lxdp-.mjs → component-dimensioning-DcmDM6gV.mjs} +6 -6
  31. package/lib/{component-dimensioning-DC1Lxdp-.mjs.map → component-dimensioning-DcmDM6gV.mjs.map} +1 -1
  32. package/lib/{component-raycast-helper-Wpay-VAg.mjs → component-raycast-helper-CXN2MHtG.mjs} +4 -4
  33. package/lib/{component-raycast-helper-Wpay-VAg.mjs.map → component-raycast-helper-CXN2MHtG.mjs.map} +1 -1
  34. package/lib/configurator-B8jcqVX9.mjs +2 -0
  35. package/lib/{configurator-DU1NHt_a.mjs → configurator-BkQ6h239.mjs} +4 -4
  36. package/lib/{configurator-DU1NHt_a.mjs.map → configurator-BkQ6h239.mjs.map} +1 -1
  37. package/lib/{continuous-drawing-helper-D25YPUle.mjs → continuous-drawing-helper-BlGATN0C.mjs} +2 -2
  38. package/lib/{continuous-drawing-helper-D25YPUle.mjs.map → continuous-drawing-helper-BlGATN0C.mjs.map} +1 -1
  39. package/lib/{dat.gui.module-CZ-DIWHM.mjs → dat.gui.module-BLjoST8r.mjs} +1 -1
  40. package/lib/{dat.gui.module-CZ-DIWHM.mjs.map → dat.gui.module-BLjoST8r.mjs.map} +1 -1
  41. package/lib/{decorate-C9r0zXzz.mjs → decorate-CTUwswpM.mjs} +1 -1
  42. package/lib/{decorate-C9r0zXzz.mjs.map → decorate-CTUwswpM.mjs.map} +1 -1
  43. package/lib/dimensioning-helper-BwBj5QDM.mjs +2 -0
  44. package/lib/{dimensioning-helper-d6JA4UMr.mjs → dimensioning-helper-DMop5qcu.mjs} +4 -4
  45. package/lib/{dimensioning-helper-d6JA4UMr.mjs.map → dimensioning-helper-DMop5qcu.mjs.map} +1 -1
  46. package/lib/dist-DGov-RNo.mjs +438 -0
  47. package/lib/dist-DGov-RNo.mjs.map +1 -0
  48. package/lib/{fflate.module-CBz7CLOg.mjs → fflate.module-n0Jozp8Z.mjs} +1 -1
  49. package/lib/{fflate.module-CBz7CLOg.mjs.map → fflate.module-n0Jozp8Z.mjs.map} +1 -1
  50. package/lib/{glb-viewer-BPfa4Fz5.mjs → glb-viewer-D58flqDh.mjs} +6 -6
  51. package/lib/{glb-viewer-BPfa4Fz5.mjs.map → glb-viewer-D58flqDh.mjs.map} +1 -1
  52. package/lib/glb-viewer-Dg3F2Tz1.mjs +2 -0
  53. package/lib/{highlight-coordinator-BcJdy2_o.mjs → highlight-coordinator-CTZ_qcde.mjs} +2 -2
  54. package/lib/{highlight-coordinator-BcJdy2_o.mjs.map → highlight-coordinator-CTZ_qcde.mjs.map} +1 -1
  55. package/lib/{homag-intelligence-D8Lm2GMZ.mjs → homag-intelligence-D7L2SS4z.mjs} +3 -3
  56. package/lib/{homag-intelligence-D8Lm2GMZ.mjs.map → homag-intelligence-D7L2SS4z.mjs.map} +1 -1
  57. package/lib/{imos-ix-poc-export-helper-DU0ag-Lw.mjs → imos-ix-poc-export-helper-D2KaQu_v.mjs} +3 -3
  58. package/lib/{imos-ix-poc-export-helper-DU0ag-Lw.mjs.map → imos-ix-poc-export-helper-D2KaQu_v.mjs.map} +1 -1
  59. package/lib/kernel-C7YDLxq8.mjs.map +1 -1
  60. package/lib/{kernel-utils-Cj5B4fDD.mjs → kernel-utils-042AuCQh.mjs} +1 -1
  61. package/lib/{kernel-utils-Cj5B4fDD.mjs.map → kernel-utils-042AuCQh.mjs.map} +1 -1
  62. package/lib/{layer-C_JtkhdO.mjs → layer-CFAr2mK_.mjs} +1 -1
  63. package/lib/{layer-C_JtkhdO.mjs.map → layer-CFAr2mK_.mjs.map} +1 -1
  64. package/lib/{main-DXPoPkIG.mjs → main-C2m_IBXL.mjs} +3852 -3643
  65. package/lib/main-C2m_IBXL.mjs.map +1 -0
  66. package/lib/{material-viewer-CNTiw7G9.mjs → material-viewer-BJs0W2Gk.mjs} +10 -10
  67. package/lib/material-viewer-BJs0W2Gk.mjs.map +1 -0
  68. package/lib/packages-D6zM0aDK.mjs +4 -0
  69. package/lib/{planner-CWQ8F70q.mjs → planner-B9YA9cmz.mjs} +3 -3
  70. package/lib/{planner-CWQ8F70q.mjs.map → planner-B9YA9cmz.mjs.map} +1 -1
  71. package/lib/planner-DJnqYqvP.mjs +2 -0
  72. package/lib/{plugin-system-DlME_5b_.mjs → plugin-system-DRpL0Rer.mjs} +3 -3
  73. package/lib/{plugin-system-DlME_5b_.mjs.map → plugin-system-DRpL0Rer.mjs.map} +1 -1
  74. package/lib/{roomle-headless-setup-CMK-quZI.mjs → roomle-headless-setup-Cc8EAnVe.mjs} +1 -1
  75. package/lib/{roomle-headless-setup-CMK-quZI.mjs.map → roomle-headless-setup-Cc8EAnVe.mjs.map} +1 -1
  76. package/lib/roomle-headless.d.ts +81 -32
  77. package/lib/roomle-headless.js +9 -9
  78. package/lib/{roomle-renderer-DYQvV88j.mjs → roomle-renderer-BD3ZmpLS.mjs} +23 -5
  79. package/lib/roomle-renderer-BD3ZmpLS.mjs.map +1 -0
  80. package/lib/roomle-sdk.d.ts +81 -32
  81. package/lib/roomle-sdk.js +7 -7
  82. package/lib/{roomle-webgpu-renderer-CmqMWt2K.mjs → roomle-webgpu-renderer-NhCn2iM-.mjs} +386 -240
  83. package/lib/roomle-webgpu-renderer-NhCn2iM-.mjs.map +1 -0
  84. package/lib/{scene-renderer-6t0p4vb4.mjs → scene-renderer-DbHi1plp.mjs} +367 -1467
  85. package/lib/scene-renderer-DbHi1plp.mjs.map +1 -0
  86. package/lib/{script-loader-DovMlDVR.mjs → script-loader-CXa3RiUa.mjs} +3 -3
  87. package/lib/{script-loader-DovMlDVR.mjs.map → script-loader-CXa3RiUa.mjs.map} +1 -1
  88. package/lib/shading-settings-BWeccIZv.mjs +1108 -0
  89. package/lib/shading-settings-BWeccIZv.mjs.map +1 -0
  90. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
  91. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
  92. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
  93. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
  94. package/lib/{stats-helper-B9MDLRpR.mjs → stats-helper-CPeojJW2.mjs} +3 -3
  95. package/lib/{stats-helper-B9MDLRpR.mjs.map → stats-helper-CPeojJW2.mjs.map} +1 -1
  96. package/lib/{three.tsl-S0OKwamA.mjs → three.tsl-Bb8l7rD7.mjs} +1 -1
  97. package/lib/{three.tsl-CAEdYyg3.mjs → three.tsl-Caqi2VRr.mjs} +2 -2
  98. package/lib/{three.tsl-CAEdYyg3.mjs.map → three.tsl-Caqi2VRr.mjs.map} +1 -1
  99. package/lib/{three.webgpu-CkP2nkXM.mjs → three.webgpu-CT4fuV2X.mjs} +1 -1
  100. package/lib/{three.webgpu-CkP2nkXM.mjs.map → three.webgpu-CT4fuV2X.mjs.map} +1 -1
  101. package/lib/{three.webgpu-qrxDA_v0.mjs → three.webgpu-CxNhl3k-.mjs} +1 -1
  102. package/lib/{threejs-utils-ZKvz9Qno.mjs → threejs-utils-E4yVZATI.mjs} +17 -17
  103. package/lib/threejs-utils-E4yVZATI.mjs.map +1 -0
  104. package/lib/{tools-core-Ks33p1cu.mjs → tools-core-GNj0UaiE.mjs} +3 -3
  105. package/lib/{tools-core-Ks33p1cu.mjs.map → tools-core-GNj0UaiE.mjs.map} +1 -1
  106. package/lib/workers-Dc-RTL8D.mjs +6 -0
  107. package/lib/{workers-HXGCmmZS.mjs.map → workers-Dc-RTL8D.mjs.map} +1 -1
  108. package/package.json +1 -1
  109. package/lib/asset-loader.worker-C911tbNL.mjs.map +0 -1
  110. package/lib/budgeteer.sw-D3VxiASa.mjs.map +0 -1
  111. package/lib/configurator-BRZ1-AQZ.mjs +0 -2
  112. package/lib/dimensioning-helper-pPTkh8pl.mjs +0 -2
  113. package/lib/glb-viewer-Bllsu2_m.mjs +0 -2
  114. package/lib/main-DXPoPkIG.mjs.map +0 -1
  115. package/lib/material-viewer-CNTiw7G9.mjs.map +0 -1
  116. package/lib/packages-D61uTgIK.mjs +0 -4
  117. package/lib/planner-BO7I35KU.mjs +0 -2
  118. package/lib/roomle-renderer-DYQvV88j.mjs.map +0 -1
  119. package/lib/roomle-webgpu-renderer-CmqMWt2K.mjs.map +0 -1
  120. package/lib/scene-renderer-6t0p4vb4.mjs.map +0 -1
  121. package/lib/threejs-utils-ZKvz9Qno.mjs.map +0 -1
  122. package/lib/workers-HXGCmmZS.mjs +0 -6
@@ -1,14 +1,14 @@
1
1
  import { i as e, t } from "./kernel-C7YDLxq8.mjs";
2
- import { gt as n, pt as r } from "./threejs-utils-ZKvz9Qno.mjs";
2
+ import { _t as n, mt as r } from "./threejs-utils-E4yVZATI.mjs";
3
3
  import { xi as i } from "./three.core-tV_4n8Wg.mjs";
4
- import { A as a, B as o, F as s, G as c, H as l, I as u, J as d, K as f, M as p, N as m, P as h, S as g, U as _, W as v, a as y, b, c as x, ct as S, dt as C, i as w, it as T, k as E, l as D, n as O, nt as k, ot as A, pt as j, rt as M, s as N, st as P, ut as ee, v as F, x as I, y as L } from "./main-DXPoPkIG.mjs";
5
- import { n as R } from "./script-loader-DovMlDVR.mjs";
6
- import { t as z } from "./configurator-DU1NHt_a.mjs";
7
- import { t as B } from "./planner-CWQ8F70q.mjs";
8
- import { n as V, t as H } from "./glb-viewer-BPfa4Fz5.mjs";
9
- import { t as U } from "./api-DVBX8_mw.mjs";
10
- import "./packages-D61uTgIK.mjs";
11
- import "./roomle-headless-setup-CMK-quZI.mjs";
4
+ import { A as a, B as o, F as s, G as c, H as l, I as u, J as d, K as f, M as p, N as m, P as h, S as g, U as _, W as v, a as y, b, c as x, ct as S, dt as C, i as w, it as T, k as E, l as D, n as O, nt as k, ot as A, pt as j, rt as M, s as N, st as P, ut as ee, v as F, x as I, y as L } from "./main-C2m_IBXL.mjs";
5
+ import { n as R } from "./script-loader-CXa3RiUa.mjs";
6
+ import { t as z } from "./configurator-BkQ6h239.mjs";
7
+ import { t as B } from "./planner-B9YA9cmz.mjs";
8
+ import { n as V, t as H } from "./glb-viewer-D58flqDh.mjs";
9
+ import { t as U } from "./api-BlFJIGaV.mjs";
10
+ import "./packages-D6zM0aDK.mjs";
11
+ import "./roomle-headless-setup-Cc8EAnVe.mjs";
12
12
  import { createRequire as W } from "module";
13
13
  //#region packages/headless-core/src/headless-script-loader.ts
14
14
  var G = W(import.meta.url), K = {}, q = [
@@ -1,8 +1,26 @@
1
1
  import { f as e } from "./three.core-tV_4n8Wg.mjs";
2
- //#region packages/common-core/src/roomle-renderer.ts
3
- var t = /* @__PURE__ */ function(e) {
2
+ //#region packages/common-core/src/utils/fps-counter.ts
3
+ var t = 10, n = 20, r = class {
4
+ constructor() {
5
+ this._index = 0, this._prevTime = 0, this._frames = 0, this._fps = -1, this._fpsList = Array(t).fill(0), this._prevTime = (performance || Date).now(), this.reset();
6
+ }
7
+ update() {
8
+ this._frames++;
9
+ let e = (performance || Date).now();
10
+ e >= this._prevTime + n && (this._fpsList[this._index % t] = this._frames * 1e3 / (e - this._prevTime), this._index >= t && (this._fps = this._fpsList.reduce((e, t) => e + t) / this._fpsList.length), this._prevTime = e, this._frames = 0, this._index++);
11
+ }
12
+ start() {
13
+ this._prevTime = (performance || Date).now(), this._frames = 0;
14
+ }
15
+ reset() {
16
+ this._fps = -1, this._fpsList = Array(t).fill(0), this._index = 0;
17
+ }
18
+ getFps() {
19
+ return this._fps;
20
+ }
21
+ }, i = /* @__PURE__ */ function(e) {
4
22
  return e[e.Mode3D = 0] = "Mode3D", e[e.Mode2D = 1] = "Mode2D", e;
5
- }({}), n = class {
23
+ }({}), a = class {
6
24
  constructor(t, n) {
7
25
  this.isConfiguratorMode = !0, this.isCameraMoving = !1, this.shadowNeedsUpdate = !1, this.boundingBox = new e(), this.boundingBoxNeedsUpdate = !1, this._creator_ = t, this.renderer = n;
8
26
  }
@@ -44,6 +62,6 @@ var t = /* @__PURE__ */ function(e) {
44
62
  }
45
63
  };
46
64
  //#endregion
47
- export { n, t };
65
+ export { a as n, r, i as t };
48
66
 
49
- //# sourceMappingURL=roomle-renderer-DYQvV88j.mjs.map
67
+ //# sourceMappingURL=roomle-renderer-BD3ZmpLS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roomle-renderer-BD3ZmpLS.mjs","names":[],"sources":["../../packages/common-core/src/utils/fps-counter.ts","../../packages/common-core/src/roomle-renderer.ts"],"sourcesContent":["const FPS_LIST_SIZE = 10;\nconst FPS_MEASUREMENT_INTERVAL_MS = 20;\n\nexport default class FpsCounter {\n private _index: number = 0;\n private _fpsList: number[];\n private _prevTime: number = 0;\n private _frames: number = 0;\n private _fps: number = -1;\n\n constructor() {\n this._fpsList = Array(FPS_LIST_SIZE).fill(0);\n this._prevTime = (performance || Date).now();\n this.reset();\n }\n\n public update() {\n this._frames++;\n const time = (performance || Date).now();\n\n if (time >= this._prevTime + FPS_MEASUREMENT_INTERVAL_MS) {\n this._fpsList[this._index % FPS_LIST_SIZE] =\n (this._frames * 1000) / (time - this._prevTime);\n\n if (this._index >= FPS_LIST_SIZE) {\n this._fps =\n this._fpsList.reduce((pv, cv) => pv + cv) / this._fpsList.length;\n }\n\n this._prevTime = time;\n this._frames = 0;\n this._index++;\n }\n }\n\n public start() {\n this._prevTime = (performance || Date).now();\n this._frames = 0;\n }\n\n public reset() {\n this._fps = -1;\n this._fpsList = Array(FPS_LIST_SIZE).fill(0);\n this._index = 0;\n }\n\n public getFps() {\n return this._fps;\n }\n}\n","import type { Camera, Object3D, Scene, Vector2, WebGLRenderer } from 'three';\nimport { Box3 } from 'three';\nimport type { Enumify } from '#/common/src/utils/types';\nimport type { CAMERA_TYPE } from './cameracontrol/camera-type';\nimport type { WebGPURenderer } from 'three/webgpu';\nimport type { SceneShadingType } from './webgl/renderer/shading-settings';\nimport type {\n LutImageDefinition,\n OutlineCustomParameters,\n} from './webgl/renderer/scene-renderer';\n\nexport type GenericRoomleRenderer = RoomleRenderer<\n WebGLRenderer | WebGPURenderer\n>;\n\nexport enum PlannerRenderMode {\n Mode3D,\n Mode2D,\n}\n\nexport abstract class RoomleRenderer<\n RendererType extends WebGLRenderer | WebGPURenderer,\n> {\n public _creator_: string;\n public renderer: RendererType;\n protected isConfiguratorMode: boolean = true;\n protected isCameraMoving: boolean = false;\n protected cameraType: Enumify<typeof CAMERA_TYPE>;\n protected shadowNeedsUpdate: boolean = false;\n protected boundingBox: Box3 = new Box3();\n protected boundingBoxNeedsUpdate: boolean = false;\n\n protected constructor(creator: string, renderer: RendererType) {\n this._creator_ = creator;\n this.renderer = renderer;\n }\n\n public get isConfiguring(): boolean {\n return this.isConfiguratorMode;\n }\n\n public dispose(): void {\n this.renderer.dispose();\n }\n\n public setSize(width: number, height: number): void {\n this.renderer.setSize(width, height);\n }\n\n public getSize(target: Vector2): Vector2 {\n return this.renderer.getSize(target);\n }\n\n public setCameraType(cameraType: Enumify<typeof CAMERA_TYPE>) {\n this.cameraType = cameraType;\n }\n\n public movingCameraStarts(): void {\n this.isCameraMoving = true;\n }\n\n public movingCameraStops(): void {\n this.isCameraMoving = false;\n }\n\n public forceShadowUpdates(_updateBakedGroundShadow: boolean): void {\n this.shadowNeedsUpdate = true;\n }\n\n public clear() {\n this.renderer.clear();\n }\n\n public updateBounds(geometryBounds: Box3) {\n this.boundingBox.copy(geometryBounds);\n this.boundingBoxNeedsUpdate = true;\n }\n\n public switchToConfigurator(): void {\n this.isConfiguratorMode = true;\n }\n\n public switchToPlanner(_renderMode: PlannerRenderMode) {\n this.isConfiguratorMode = false;\n }\n\n public abstract setShadingType(shadingType: SceneShadingType): void;\n\n public abstract setCustomOutlineParameters(\n outlineCustomParameters: OutlineCustomParameters,\n ): void;\n\n public abstract loadLutImages(luts: LutImageDefinition[]): void;\n\n public abstract render(scene: Scene, camera: Camera): void;\n\n public abstract showGUI(updateCallback: () => void): void;\n\n public abstract clearCache(): void;\n\n public abstract highlightObjects(selectedMeshes: Object3D[]): void;\n\n public abstract setGroundShadow(enabled: boolean, scene: Scene): void;\n\n public abstract enableUiInteractionMode(): void;\n\n public abstract disableUiInteractionMode(): void;\n}\n"],"mappings":";;AAAA,IAAM,IAAgB,IAChB,IAA8B,IAEf,IAArB,MAAgC;CAO9B,cAAc;AAGZ,gBATuB,oBAEG,kBACF,eACH,IAGrB,KAAK,WAAW,MAAM,EAAc,CAAC,KAAK,EAAE,EAC5C,KAAK,aAAa,eAAe,MAAM,KAAK,EAC5C,KAAK,OAAO;;CAGd,SAAgB;AACd,OAAK;EACL,IAAM,KAAQ,eAAe,MAAM,KAAK;AAExC,EAAI,KAAQ,KAAK,YAAY,MAC3B,KAAK,SAAS,KAAK,SAAS,KACzB,KAAK,UAAU,OAAS,IAAO,KAAK,YAEnC,KAAK,UAAU,MACjB,KAAK,OACH,KAAK,SAAS,QAAQ,GAAI,MAAO,IAAK,EAAG,GAAG,KAAK,SAAS,SAG9D,KAAK,YAAY,GACjB,KAAK,UAAU,GACf,KAAK;;CAIT,QAAe;AAEb,EADA,KAAK,aAAa,eAAe,MAAM,KAAK,EAC5C,KAAK,UAAU;;CAGjB,QAAe;AAGb,EAFA,KAAK,OAAO,IACZ,KAAK,WAAW,MAAM,EAAc,CAAC,KAAK,EAAE,EAC5C,KAAK,SAAS;;CAGhB,SAAgB;AACd,SAAO,KAAK;;GChCJ,IAAL,yBAAA,GAAA;QACL,EAAA,EAAA,SAAA,KAAA,UACA,EAAA,EAAA,SAAA,KAAA;KACD,EAEqB,IAAtB,MAEE;CAUA,YAAsB,GAAiB,GAAwB;AAE7D,4BATsC,0BACJ,6BAEG,uBACT,IAAI,GAAM,gCACI,IAG1C,KAAK,YAAY,GACjB,KAAK,WAAW;;CAGlB,IAAW,gBAAyB;AAClC,SAAO,KAAK;;CAGd,UAAuB;AACrB,OAAK,SAAS,SAAS;;CAGzB,QAAe,GAAe,GAAsB;AAClD,OAAK,SAAS,QAAQ,GAAO,EAAO;;CAGtC,QAAe,GAA0B;AACvC,SAAO,KAAK,SAAS,QAAQ,EAAO;;CAGtC,cAAqB,GAAyC;AAC5D,OAAK,aAAa;;CAGpB,qBAAkC;AAChC,OAAK,iBAAiB;;CAGxB,oBAAiC;AAC/B,OAAK,iBAAiB;;CAGxB,mBAA0B,GAAyC;AACjE,OAAK,oBAAoB;;CAG3B,QAAe;AACb,OAAK,SAAS,OAAO;;CAGvB,aAAoB,GAAsB;AAExC,EADA,KAAK,YAAY,KAAK,EAAe,EACrC,KAAK,yBAAyB;;CAGhC,uBAAoC;AAClC,OAAK,qBAAqB;;CAG5B,gBAAuB,GAAgC;AACrD,OAAK,qBAAqB"}
@@ -642,9 +642,9 @@ export declare class CeilingLight extends PointLight {
642
642
  private _shouldCastShadow;
643
643
  getContainer(): Mesh | null;
644
644
  get shouldCastShadow(): boolean;
645
- constructor(debug: boolean | undefined, maxQualityLevel: QualityLevel);
645
+ constructor(debug?: boolean);
646
646
  recalculatePower(amountOfLights: number): void;
647
- update(qualityLevel: QualityLevel): void;
647
+ update(): void;
648
648
  addDebugUI(ceilingLightsParameters: GenericGUIParamFolder): void;
649
649
  }
650
650
 
@@ -1604,6 +1604,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1604
1604
  private _sceneEventHandler;
1605
1605
  private _isComponentDimensionsVisible;
1606
1606
  private _dimensionUpdateDebounced;
1607
+ private _sceneSetupReady;
1607
1608
  constructor(creator: string, offset: CanvasOffset, mode: Enumify_3<typeof CAMERA_TYPE>);
1608
1609
  /**
1609
1610
  * Single point for deciding whether to push HTML label positions to the UI.
@@ -2582,6 +2583,8 @@ export declare class DraggableNode extends Object3D {
2582
2583
  getSize(): Vector3;
2583
2584
  hoverOn(): void;
2584
2585
  hoverOff(): void;
2586
+ setSphereColor(color: number): void;
2587
+ setInnerRingColor(color: number): void;
2585
2588
  select(color: number): void;
2586
2589
  deselect(color: number): void;
2587
2590
  }
@@ -2663,6 +2666,14 @@ export declare interface Element_2 {
2663
2666
  perspectiveImage: AssetUrl;
2664
2667
  }
2665
2668
 
2669
+ export declare interface ElevationPlan {
2670
+ planSvg: string;
2671
+ }
2672
+
2673
+ export declare interface ElevationPlans {
2674
+ plans: ElevationPlan[];
2675
+ }
2676
+
2666
2677
  export declare interface ElevationProfile {
2667
2678
  profileContour: ElevationProfilePoint[];
2668
2679
  }
@@ -2676,7 +2687,7 @@ export declare interface ElevationProfilePoint {
2676
2687
 
2677
2688
  export declare interface ElevationView {
2678
2689
  lineOfSight: KernelVector3f;
2679
- objects: KernelPlanObject[];
2690
+ objects: PlanObject[];
2680
2691
  profile: ElevationProfile;
2681
2692
  }
2682
2693
 
@@ -3325,6 +3336,7 @@ export declare interface FeatureFlags {
3325
3336
  /* Excluded from this release type: interiorLights */
3326
3337
  /* Excluded from this release type: advancedDimensioning */
3327
3338
  /* Excluded from this release type: webGpu */
3339
+ /* Excluded from this release type: webGpuConfig */
3328
3340
  /* Excluded from this release type: advancedHighlighting */
3329
3341
  /* Excluded from this release type: fence */
3330
3342
  }
@@ -4586,7 +4598,7 @@ export declare interface KernelParameter {
4586
4598
  viewType: KernelViewType;
4587
4599
  source: 'external' | 'internal';
4588
4600
  level?: number;
4589
- objectIds: number[];
4601
+ objectIds?: number[];
4590
4602
  }
4591
4603
 
4592
4604
  export declare interface KernelParameterGroup {
@@ -5230,19 +5242,23 @@ export declare interface NodeDimensionTransferable {
5230
5242
  }
5231
5243
 
5232
5244
  export declare class NodePlanElementViewModel extends PlanElementViewModel {
5233
- private _nodeUiMesh;
5245
+ protected _nodeUiMesh: DraggableNode;
5246
+ protected _defaultRingColor: number;
5234
5247
  constructor(planObject: PlanObject);
5235
5248
  update(): void;
5236
5249
  setTopView(enabled: boolean): void;
5237
5250
  getSize(): Vector3;
5238
5251
  show(): void;
5239
5252
  hide(): void;
5253
+ protected getSelectionRingColor(): number;
5240
5254
  select(): void;
5241
5255
  deselect(): void;
5242
5256
  hoverOn(): void;
5243
5257
  hoverOff(): void;
5244
5258
  protected _generateBoundingBox(): RoomleEventedMesh;
5245
5259
  setZoom(zoom: number): void;
5260
+ setFillColor(color: number): void;
5261
+ setDefaultRingColor(color: number): void;
5246
5262
  }
5247
5263
 
5248
5264
  export declare interface NodePlanObject extends PlanObject {
@@ -6267,6 +6283,8 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6267
6283
  private _hideAllNodeIfThereAreNoSelections;
6268
6284
  protected _onCameraMove(): boolean;
6269
6285
  private _showWallNodes;
6286
+ private _applyFenceNodeStyle;
6287
+ private _shouldKeepFenceNodesVisible;
6270
6288
  private _updateNodeSize;
6271
6289
  private _sendPlanObjectPositions;
6272
6290
  private _sendMultiSelectionPosition;
@@ -6537,7 +6555,7 @@ export declare class PlanViewModel extends ConfiguratorViewModel implements Plan
6537
6555
  private _handleCeilingPlanElementViewModel;
6538
6556
  private _handleNodePlanElementViewModel;
6539
6557
  private _getCeilingLightsDistribution;
6540
- handleInitialCeilingLights(ceilingLightsParameters: GenericGUIParamFolder | undefined, qualityLevel: QualityLevel): void;
6558
+ handleInitialCeilingLights(ceilingLightsParameters: GenericGUIParamFolder | undefined): void;
6541
6559
  handleCeilingLights(): void;
6542
6560
  handleLampLight(lamp: StaticPlanObjectViewModel, options: {
6543
6561
  targetPos: KernelVector3f;
@@ -7045,17 +7063,6 @@ export declare class PromiseQueue<T> {
7045
7063
  get length(): number;
7046
7064
  }
7047
7065
 
7048
- export declare const QUALITY_LEVELS: {
7049
- readonly HIGHEST: "highest";
7050
- readonly HIGH: "high";
7051
- readonly MEDIUM: "medium";
7052
- readonly LOW: "low";
7053
- };
7054
-
7055
- export declare type QualityLevel = Enumify_2<typeof QUALITY_LEVELS>;
7056
-
7057
- export declare type QualityMap = Map<QualityLevel, any>;
7058
-
7059
7066
  export declare class RangeArray extends EmsArray<KernelRange> {
7060
7067
  }
7061
7068
 
@@ -7979,7 +7986,18 @@ export declare class RoomleConfigurator<P extends readonly PluginName[] = readon
7979
7986
  private _checkInitDone;
7980
7987
  private _onInitDone;
7981
7988
  constructor(creator: string, activePlugins?: P);
7982
- create2DElevationPlan(): Promise<void>;
7989
+ /**
7990
+ * Creates a 2D elevation plan of the current configuration, returned as raw
7991
+ * SVG markup (wireframe rendering with measurements).
7992
+ *
7993
+ * @returns the elevation plans, containing one plan with its SVG markup
7994
+ */
7995
+ create2DElevationPlan(): ElevationPlans;
7996
+ /**
7997
+ * Creates the 2D elevation plan of the current configuration (see
7998
+ * {@link create2DElevationPlan}) and downloads it as an SVG file.
7999
+ */
8000
+ download2DElevationPlan(): void;
7983
8001
  private createCameraForElevationPlan;
7984
8002
  exportCanvasScreenshot(quality?: number): Promise<string>;
7985
8003
  initSceneManager(sceneManager?: ConfiguratorSceneManager): void;
@@ -8926,7 +8944,19 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
8926
8944
  */
8927
8945
  createPlanFromObject(id: RapiId, position?: Position3, rotation?: number): Promise<number>;
8928
8946
  loadPlanXml(xml: string, options?: InitDataDefinition & GlobalInitDataDefinition): Promise<void>;
8929
- create2DElevationPlan(): Promise<void>;
8947
+ /**
8948
+ * Creates 2D elevation plans of the current plan, one per elevation view.
8949
+ * Each plan is returned as raw SVG markup (wireframe rendering with
8950
+ * dimensionings).
8951
+ *
8952
+ * @returns the elevation plans, each containing its SVG markup
8953
+ */
8954
+ create2DElevationPlan(): ElevationPlans;
8955
+ /**
8956
+ * Creates the 2D elevation plans of the current plan (see
8957
+ * {@link create2DElevationPlan}) and downloads each plan as an SVG file.
8958
+ */
8959
+ download2DElevationPlan(): void;
8930
8960
  loadPlan(id: string, options?: InitDataDefinition & GlobalInitDataDefinition): Promise<RapiPlan | RapiPlanSnapshotGetData>;
8931
8961
  /**
8932
8962
  * Set general configuration parameter
@@ -9622,16 +9652,10 @@ export declare abstract class RoomleRenderer<RendererType extends WebGLRenderer
9622
9652
  switchToConfigurator(): void;
9623
9653
  switchToPlanner(_renderMode: PlannerRenderMode): void;
9624
9654
  abstract setShadingType(shadingType: SceneShadingType): void;
9625
- abstract setAutoQuality(autoQuality: boolean): void;
9626
- abstract setQualityLevel(qualityLevel: QualityLevel): void;
9627
- abstract getQualityLevel(): QualityLevel;
9628
- abstract setQualityMap(qualityMap: QualityMap): void;
9629
- abstract setCustomShadingParameters(customShadingParameters?: CustomShadingParameters, customShadingParametersMoc?: CustomShadingParameters): void;
9630
9655
  abstract setCustomOutlineParameters(outlineCustomParameters: OutlineCustomParameters): void;
9631
9656
  abstract loadLutImages(luts: LutImageDefinition[]): void;
9632
9657
  abstract render(scene: Scene, camera: Camera): void;
9633
9658
  abstract showGUI(updateCallback: () => void): void;
9634
- abstract setOnQualityLevelChangeCallback(callback: (qualityLevel: QualityLevel) => void): void;
9635
9659
  abstract clearCache(): void;
9636
9660
  abstract highlightObjects(selectedMeshes: Object3D[]): void;
9637
9661
  abstract setGroundShadow(enabled: boolean, scene: Scene): void;
@@ -9706,8 +9730,12 @@ export declare class RoomleWebGPURenderer extends RoomleRenderer<WebGPURenderer>
9706
9730
  private readonly renderPasses;
9707
9731
  private readonly guiParameterGroups;
9708
9732
  private lastRenderCamera;
9733
+ private readonly qualityManager;
9734
+ private freezeFrames;
9735
+ private readonly freezeRenderTarget;
9709
9736
  private _domHelper;
9710
9737
  private _webGpuGroundShadowReflection;
9738
+ private _initData;
9711
9739
  constructor(creator: string, renderer: WebGPURenderer, enableSSGI: boolean, outlineColors?: OutlineColors);
9712
9740
  private enableRenderPasses;
9713
9741
  addGroundShadowLightAndFloor(scene: Scene): Promise<void>;
@@ -9715,26 +9743,23 @@ export declare class RoomleWebGPURenderer extends RoomleRenderer<WebGPURenderer>
9715
9743
  clearCache(): void;
9716
9744
  disableUiInteractionMode(): void;
9717
9745
  enableUiInteractionMode(): void;
9718
- getQualityLevel(): QualityLevel;
9719
9746
  setCameraType(cameraType: Enumify_3<typeof CAMERA_TYPE>): void;
9720
9747
  switchToConfigurator(): void;
9721
9748
  switchToPlanner(renderMode: PlannerRenderMode): void;
9722
9749
  highlightObjects(selectedMeshes: Object3D[]): void;
9723
9750
  loadLutImages(_luts: LutImageDefinition[]): void;
9724
9751
  render(scene: Scene, camera: Camera): void;
9752
+ private renderToFreezeTarget;
9725
9753
  private updateCameraProjectionMatrix;
9726
9754
  private assembleRenderPasses;
9727
- setAutoQuality(_autoQuality: boolean): void;
9728
- setCustomShadingParameters(_customShadingParameters: CustomShadingParameters | undefined, _customShadingParametersMoc: CustomShadingParameters | undefined): void;
9729
9755
  setCustomOutlineParameters(customOutlineParameters: OutlineCustomParameters): void;
9730
9756
  setGroundShadow(enabled: boolean, _scene: Scene): void;
9731
- setOnQualityLevelChangeCallback(_callback: (qualityLevel: QualityLevel) => void): void;
9732
9757
  private enableOutline;
9733
9758
  private getOutlinePassOrUndefined;
9734
9759
  private enableSsgiPass;
9735
9760
  private enableTraaPass;
9736
- setQualityLevel(_qualityLevel: QualityLevel): void;
9737
- setQualityMap(_qualityMap: QualityMap): void;
9761
+ private applyQualityParameters;
9762
+ private getSsgiPassOrUndefined;
9738
9763
  setShadingType(shadingType: SceneShadingType): void;
9739
9764
  showGUI(updateCallback: () => void): void;
9740
9765
  private addDebugGUI;
@@ -10695,7 +10720,7 @@ export declare class WallPlanElementViewModel extends PlanElementViewModel {
10695
10720
  constructor(planObject: PlanObject);
10696
10721
  get isSelected(): boolean;
10697
10722
  private _checkHasAttachedAttic;
10698
- getWallDimension(zoomFactor: number, clientWidth: number, clientHeight: number): WallDimension;
10723
+ getWallDimension(zoomFactor: number, clientWidth: number, clientHeight: number, preferredSideOverride?: LeftOrRightWallSide): WallDimension;
10699
10724
  private calculateNormalVector;
10700
10725
  private calculateShiftingFactor;
10701
10726
  private calculateAtticInfo;
@@ -10746,6 +10771,30 @@ export declare interface WallSide {
10746
10771
  value: Enumify<typeof WALL_SIDES>;
10747
10772
  }
10748
10773
 
10774
+ export declare interface WebGpuConfig {
10775
+ /**
10776
+ * @description If true, the initial webgpu quality level is autodetected based on
10777
+ * a benchmark of the graphics hardware. If false, the default quality level is used.
10778
+ * @default true
10779
+ */
10780
+ autoDetectQualityLevel?: boolean;
10781
+ /**
10782
+ * @description This can be used to configure the lower bound of webgpu auto quality
10783
+ * meaning the fps bound which, when hit, will set the quality setting lower
10784
+ * To disable: set to 0
10785
+ * @default 24
10786
+ */
10787
+ autoQualityMinFps?: number;
10788
+ /**
10789
+ * @description This can be used to configure the upper bound of webgpu auto quality
10790
+ * meaning the fps bound which, when hit, will set the quality setting higher
10791
+ * This should be sufficiently larger than the minFps to not cause the quality to go up and down all the time
10792
+ * To disable: set to something very high
10793
+ * @default 59
10794
+ */
10795
+ autoQualityMaxFps?: number;
10796
+ }
10797
+
10749
10798
  export declare class ZoomChangeEvent {
10750
10799
  minZoom: boolean;
10751
10800
  maxZoom: boolean;
package/lib/roomle-sdk.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { i as e, t } from "./kernel-C7YDLxq8.mjs";
2
- import { gt as n, pt as r } from "./threejs-utils-ZKvz9Qno.mjs";
3
- import { B as i, F as a, G as o, H as s, I as c, J as l, K as u, M as d, N as f, P as p, S as m, U as h, W as g, a as _, b as v, c as y, ct as b, dt as x, k as S, l as C, n as w, ot as T, pt as E, st as D, ut as O, v as k, x as A, y as j } from "./main-DXPoPkIG.mjs";
4
- import { t as M } from "./configurator-DU1NHt_a.mjs";
5
- import { t as N } from "./planner-CWQ8F70q.mjs";
6
- import { n as P, t as F } from "./glb-viewer-BPfa4Fz5.mjs";
7
- import { t as I } from "./api-DVBX8_mw.mjs";
8
- import "./packages-D61uTgIK.mjs";
2
+ import { _t as n, mt as r } from "./threejs-utils-E4yVZATI.mjs";
3
+ import { B as i, F as a, G as o, H as s, I as c, J as l, K as u, M as d, N as f, P as p, S as m, U as h, W as g, a as _, b as v, c as y, ct as b, dt as x, k as S, l as C, n as w, ot as T, pt as E, st as D, ut as O, v as k, x as A, y as j } from "./main-C2m_IBXL.mjs";
4
+ import { t as M } from "./configurator-BkQ6h239.mjs";
5
+ import { t as N } from "./planner-B9YA9cmz.mjs";
6
+ import { n as P, t as F } from "./glb-viewer-D58flqDh.mjs";
7
+ import { t as I } from "./api-BlFJIGaV.mjs";
8
+ import "./packages-D6zM0aDK.mjs";
9
9
  export { t as CONFIGURATION_TYPE, r as CORE_EDGE_TYPE, n as CORE_OBJECT_CATEGORY, e as CORE_PERMISSION_TO_DELETE, M as Configurator, _ as ConfiguratorUiCallbacks, d as FloorPlanElementViewModel, F as GlbViewer, l as GlobalCallback, i as HI_CONTEXT_ACTION, O as IdbManager, w as Main, m as MeasurementLinePlanElementViewModel, k as PLAN_ELEMENT_CHANGE_TYPES, c as PlanElementViewModel, a as PlanObjectViewModel, N as Planner, T as RapiAccess, D as RapiInvalidIdError, b as RapiOfflineError, I as RoomDesignerApi, S as RoomleConfigurator, P as RoomleGLBViewer, E as RoomleLightSource, y as RoomlePlanner, j as RoomlePlannerUiCallback, C as RoomleSdk, p as StaticPlanObjectViewModel, f as WallPlanElementViewModel, s as createExtObj, u as createExtObjId, x as getCatalogIdFromConfigurationHash, h as isExtObjId, g as isExternalObject, v as isFirefox, A as isSafari, o as removeExtObjIdPrefix };