@roomle/web-sdk 3.8.0 → 3.9.0-alpha.2

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 (109) hide show
  1. package/lib/ConfiguratorKernel.wasm +0 -0
  2. package/lib/{GLTFExporter-BqjC9LhS.mjs → GLTFExporter-yfYOtLdk.mjs} +2 -2
  3. package/lib/{GLTFExporter-BqjC9LhS.mjs.map → GLTFExporter-yfYOtLdk.mjs.map} +1 -1
  4. package/lib/RoomleCore.js +3 -3
  5. package/lib/RoomleCore.wasm +0 -0
  6. package/lib/RoomleToolsCore.wasm +0 -0
  7. package/lib/{USDZExporter-qUD2VgwK.mjs → USDZExporter-DFJQYX8l.mjs} +2 -2
  8. package/lib/{USDZExporter-qUD2VgwK.mjs.map → USDZExporter-DFJQYX8l.mjs.map} +1 -1
  9. package/lib/{api-CbHAzwVm.mjs → api-s0Yey2rD.mjs} +12 -12
  10. package/lib/api-s0Yey2rD.mjs.map +1 -0
  11. package/lib/asset-loader.worker-A7nEeQB4.mjs.map +1 -1
  12. package/lib/{banana-for-scale-DiBCpVNM.mjs → banana-for-scale-CFY_5rk1.mjs} +4 -4
  13. package/lib/{banana-for-scale-DiBCpVNM.mjs.map → banana-for-scale-CFY_5rk1.mjs.map} +1 -1
  14. package/lib/budgeteer.sw-CQWYbQSc.mjs.map +1 -1
  15. package/lib/{common-utils-AB4Lnet3.mjs → common-utils-L3DF6Ey5.mjs} +2 -2
  16. package/lib/{common-utils-AB4Lnet3.mjs.map → common-utils-L3DF6Ey5.mjs.map} +1 -1
  17. package/lib/{component-dimensioning-LUnZnpqG.mjs → component-dimensioning-DmcHgmpq.mjs} +44 -38
  18. package/lib/component-dimensioning-DmcHgmpq.mjs.map +1 -0
  19. package/lib/{component-raycast-helper-Bl0mWPcj.mjs → component-raycast-helper-cJxdYLXm.mjs} +28 -28
  20. package/lib/{component-raycast-helper-Bl0mWPcj.mjs.map → component-raycast-helper-cJxdYLXm.mjs.map} +1 -1
  21. package/lib/configurator-CC0uDa2i.mjs +2 -0
  22. package/lib/configurator-CxsFgHxg.mjs +45 -0
  23. package/lib/{configurator-CP80d0HI.mjs.map → configurator-CxsFgHxg.mjs.map} +1 -1
  24. package/lib/{continuous-drawing-helper-BlRy7u2t.mjs → continuous-drawing-helper-DEmx54k_.mjs} +3 -3
  25. package/lib/{continuous-drawing-helper-BlRy7u2t.mjs.map → continuous-drawing-helper-DEmx54k_.mjs.map} +1 -1
  26. package/lib/{decorate-Bck1_lG8.mjs → decorate-C9r0zXzz.mjs} +1 -1
  27. package/lib/{decorate-Bck1_lG8.mjs.map → decorate-C9r0zXzz.mjs.map} +1 -1
  28. package/lib/{dimensioning-helper-vPhGfHd-.mjs → dimensioning-helper-BXD6AEqL.mjs} +28 -21
  29. package/lib/dimensioning-helper-BXD6AEqL.mjs.map +1 -0
  30. package/lib/dimensioning-helper-Do9jwg8T.mjs +2 -0
  31. package/lib/glb-viewer-DyHnMYi0.mjs +2 -0
  32. package/lib/{glb-viewer-B7pA8K_w.mjs → glb-viewer-I86nXb0A.mjs} +69 -69
  33. package/lib/{glb-viewer-B7pA8K_w.mjs.map → glb-viewer-I86nXb0A.mjs.map} +1 -1
  34. package/lib/{highlight-coordinator-DeB46jQq.mjs → highlight-coordinator-DvgAfvb2.mjs} +3 -3
  35. package/lib/{highlight-coordinator-DeB46jQq.mjs.map → highlight-coordinator-DvgAfvb2.mjs.map} +1 -1
  36. package/lib/{homag-intelligence-f1JD0An1.mjs → homag-intelligence-Bt--x6_f.mjs} +23 -9
  37. package/lib/homag-intelligence-Bt--x6_f.mjs.map +1 -0
  38. package/lib/{imos-ix-poc-export-helper-Vyv-uuNs.mjs → imos-ix-poc-export-helper-C9wPB6fl.mjs} +3 -3
  39. package/lib/{imos-ix-poc-export-helper-Vyv-uuNs.mjs.map → imos-ix-poc-export-helper-C9wPB6fl.mjs.map} +1 -1
  40. package/lib/kernel-C7YDLxq8.mjs.map +1 -1
  41. package/lib/{kernel-utils-BG1uqfT_.mjs → kernel-utils-B5QlsCwn.mjs} +15 -7
  42. package/lib/kernel-utils-B5QlsCwn.mjs.map +1 -0
  43. package/lib/{layer-BfckfWZz.mjs → layer-C_JtkhdO.mjs} +1 -1
  44. package/lib/{layer-BfckfWZz.mjs.map → layer-C_JtkhdO.mjs.map} +1 -1
  45. package/lib/{main-CuqGqemT.mjs → main-DeOPstVA.mjs} +37244 -3141
  46. package/lib/main-DeOPstVA.mjs.map +1 -0
  47. package/lib/{material-viewer-Cij9aWpI.mjs → material-viewer-D8Qdq6-m.mjs} +55 -55
  48. package/lib/material-viewer-D8Qdq6-m.mjs.map +1 -0
  49. package/lib/packages-eckwotTn.mjs +4 -0
  50. package/lib/{planner-DKbmQVSf.mjs → planner-BWZr-Th2.mjs} +14 -14
  51. package/lib/{planner-DKbmQVSf.mjs.map → planner-BWZr-Th2.mjs.map} +1 -1
  52. package/lib/planner-D3jvWraY.mjs +2 -0
  53. package/lib/{plugin-system-BEZnFUyT.mjs → plugin-system-BBgoIai2.mjs} +3 -3
  54. package/lib/{plugin-system-BEZnFUyT.mjs.map → plugin-system-BBgoIai2.mjs.map} +1 -1
  55. package/lib/roomle-headless-setup-CMK-quZI.mjs.map +1 -1
  56. package/lib/roomle-headless.d.ts +279 -38
  57. package/lib/roomle-headless.js +42 -41
  58. package/lib/roomle-headless.js.map +1 -1
  59. package/lib/{roomle-renderer-BgT28pfp.mjs → roomle-renderer-CkSFbpmg.mjs} +2 -2
  60. package/lib/{roomle-renderer-BgT28pfp.mjs.map → roomle-renderer-CkSFbpmg.mjs.map} +1 -1
  61. package/lib/roomle-sdk.d.ts +279 -38
  62. package/lib/roomle-sdk.js +8 -7
  63. package/lib/{roomle-webgpu-renderer-BdCItfH1.mjs → roomle-webgpu-renderer-Cs4eLEwf.mjs} +690 -280
  64. package/lib/roomle-webgpu-renderer-Cs4eLEwf.mjs.map +1 -0
  65. package/lib/{scene-renderer-Bdl7umAf.mjs → scene-renderer-4zk6BXsR.mjs} +228 -228
  66. package/lib/{scene-renderer-Bdl7umAf.mjs.map → scene-renderer-4zk6BXsR.mjs.map} +1 -1
  67. package/lib/{script-loader-BtWHegD-.mjs → script-loader-DSL6zJat.mjs} +9 -9
  68. package/lib/{script-loader-BtWHegD-.mjs.map → script-loader-DSL6zJat.mjs.map} +1 -1
  69. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
  70. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.d.ts +7 -3
  71. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.js +2 -1
  72. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.js.map +1 -1
  73. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.d.ts +37 -3
  74. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js +12 -1
  75. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js.map +1 -1
  76. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
  77. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js +3 -3
  78. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
  79. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
  80. package/lib/{stats-helper-BvDfWWfq.mjs → stats-helper-DyRFKnMs.mjs} +3 -3
  81. package/lib/{stats-helper-BvDfWWfq.mjs.map → stats-helper-DyRFKnMs.mjs.map} +1 -1
  82. package/lib/{three.core-K1JzUaep.mjs → three.core-DNErG1F6.mjs} +1 -1
  83. package/lib/{three.core-K1JzUaep.mjs.map → three.core-DNErG1F6.mjs.map} +1 -1
  84. package/lib/{three.module-Q2K9uyhi.mjs → three.module-BZkESKo3.mjs} +2 -2
  85. package/lib/{three.module-Q2K9uyhi.mjs.map → three.module-BZkESKo3.mjs.map} +1 -1
  86. package/lib/{three.webgpu-7v7o6Pxs.mjs → three.webgpu-C8myBXe1.mjs} +2 -2
  87. package/lib/{three.webgpu-7v7o6Pxs.mjs.map → three.webgpu-C8myBXe1.mjs.map} +1 -1
  88. package/lib/three.webgpu-WIkDzwXU.mjs +3 -0
  89. package/lib/{threejs-utils-BzXU2M3w.mjs → threejs-utils-fEhH05zP.mjs} +103 -87
  90. package/lib/threejs-utils-fEhH05zP.mjs.map +1 -0
  91. package/lib/{tools-core-BoxckhTR.mjs → tools-core-Bf4_WCg8.mjs} +5 -5
  92. package/lib/{tools-core-BoxckhTR.mjs.map → tools-core-Bf4_WCg8.mjs.map} +1 -1
  93. package/package.json +5 -2
  94. package/lib/api-CbHAzwVm.mjs.map +0 -1
  95. package/lib/component-dimensioning-LUnZnpqG.mjs.map +0 -1
  96. package/lib/configurator-BmJX0gB5.mjs +0 -2
  97. package/lib/configurator-CP80d0HI.mjs +0 -45
  98. package/lib/dimensioning-helper-5xsc6I7Y.mjs +0 -2
  99. package/lib/dimensioning-helper-vPhGfHd-.mjs.map +0 -1
  100. package/lib/glb-viewer-XFEP993c.mjs +0 -2
  101. package/lib/homag-intelligence-f1JD0An1.mjs.map +0 -1
  102. package/lib/kernel-utils-BG1uqfT_.mjs.map +0 -1
  103. package/lib/main-CuqGqemT.mjs.map +0 -1
  104. package/lib/material-viewer-Cij9aWpI.mjs.map +0 -1
  105. package/lib/packages-DALvuVA_.mjs +0 -4
  106. package/lib/planner-CVn2Lls0.mjs +0 -2
  107. package/lib/roomle-webgpu-renderer-BdCItfH1.mjs.map +0 -1
  108. package/lib/three.webgpu-ChguPx4k.mjs +0 -3
  109. package/lib/threejs-utils-BzXU2M3w.mjs.map +0 -1
@@ -289,7 +289,7 @@ export declare class CacheHolder {
289
289
  get geometryCache(): Map<string, BufferGeometry>;
290
290
  get materialCache(): Map<string, Material>;
291
291
  clear(): void;
292
- setupLightCache(scene: Scene, maxAnisotropy: number): void;
292
+ setupLightCache(scene: Scene, renderer: WebGLRenderer | WebGPURenderer, maxAnisotropy: number): void;
293
293
  }
294
294
 
295
295
  export declare type CallbackObjectType = 'static' | 'configuration' | 'wall' | 'measure' | 'attic' | 'door' | 'floor' | 'window' | 'unknown' | 'external-configuration';
@@ -1075,6 +1075,7 @@ export declare class ConfiguratorCameraBehaviour extends CameraBehaviour {
1075
1075
  zoomToComponentOnConsecutiveClick(cameraParameters: CameraParameter): Promise<void>;
1076
1076
  resetCameraToStateOnCancelSelection(): void;
1077
1077
  zoomToFitBoundsAfterUserInitiatedPreviews(boundingBox: Box3): void;
1078
+ zoomToFitBoundsAfterSwitchConfiguratorObject(boundingBox: Box3): void;
1078
1079
  resetCameraOnStartConfiguring(boundingBox: Box3, cameraParameters: CameraParameter, rotation?: number, lookAtSide?: number): Promise<void>;
1079
1080
  }
1080
1081
 
@@ -1246,6 +1247,7 @@ export declare class ConfiguratorKernelAccess extends CommonKernelAccess {
1246
1247
  private _configuratorHistory;
1247
1248
  externalMeshQueue: PromiseQueue<void>;
1248
1249
  muteKernelCallbacks: boolean;
1250
+ private _parameterUpdateIds;
1249
1251
  constructor(creator: string);
1250
1252
  init(kernelType: KERNEL_TYPE): void;
1251
1253
  protected _getScriptLoaderKernelId(_kernelType: KERNEL_TYPE): string;
@@ -1255,9 +1257,12 @@ export declare class ConfiguratorKernelAccess extends CommonKernelAccess {
1255
1257
  uiRequestConfiguration(objectId: number): void;
1256
1258
  getComponentParameters(componentId: number): Promise<KernelParameter[]>;
1257
1259
  getPlanObjectParameters(objectId: number): Promise<KernelParameter[]>;
1260
+ getCommonPlanObjectParameters(objectIds: number[]): Promise<KernelParameter[]>;
1258
1261
  protected _validateExternalComponentParameters(_componentId: number, parameters: KernelParameter[]): Promise<KernelParameter[]>;
1259
1262
  protected _validateExternalPlanObjectParameters(_objectId: number, parameters: KernelParameter[]): Promise<KernelParameter[]>;
1260
1263
  private _addAnimationParameters;
1264
+ private _nextParameterUpdateId;
1265
+ private _isSupersededParameterUpdate;
1261
1266
  private _updateComponentParameters;
1262
1267
  selectionChange(componentId: number, isRoot: boolean): void;
1263
1268
  protected _componentSelectionChanged(_planObject: PlanObjectKernel, _component: KernelComponent): void;
@@ -1267,9 +1272,13 @@ export declare class ConfiguratorKernelAccess extends CommonKernelAccess {
1267
1272
  private _updateComponentChildren;
1268
1273
  private _updateComponentDependencies;
1269
1274
  private _updatePlanObjectParameters;
1275
+ private _updateCommonPlanObjectParameters;
1270
1276
  private _enableRootComponentParametersAsGlobal;
1271
1277
  private _updatePlanObjectChildren;
1272
1278
  updatePlanObjectDependencies(planObjectId: number): void;
1279
+ private _updateSelectedComponentDependencies;
1280
+ private _isComponentOfPlanObject;
1281
+ updateCommonPlanObjectDependencies(planObjectIds: number[]): void;
1273
1282
  private _updateConfigurationHasChildren;
1274
1283
  dockComponent(parentId: number, parentDockId: number, childId: number, childDockId: number, position?: KernelVector3): void;
1275
1284
  changeUseOfHDGeometry(context: ConfiguratorContext, useHDGeometry: boolean): void;
@@ -1298,8 +1307,8 @@ export declare class ConfiguratorKernelAccess extends CommonKernelAccess {
1298
1307
  protected _setupKernel(): void;
1299
1308
  onLoadComponentError(error: Error, id: RapiId): void;
1300
1309
  configurationLoaded(conversationId: number, objectId: number, componentId: number, hash: string, errors: EmscriptenString[], _valid: boolean, isFreeFlying: boolean): void;
1301
- componentDefinitionLoaded(_conversationId: number, componentId: number): void;
1302
- componentDefinitionLoadingError(_conversationId: number, errorMessage: string): void;
1310
+ componentDefinitionLoaded(componentId: number): void;
1311
+ componentDefinitionLoadingError(errorMessage: string): void;
1303
1312
  configurationLoadingError(_runtimeId: number, errors?: EmscriptenString[]): void;
1304
1313
  componentConfigurationUpdated(componentId: number, geometryChanged: boolean): void;
1305
1314
  setActiveGroupInView(group: string): void;
@@ -1308,6 +1317,7 @@ export declare class ConfiguratorKernelAccess extends CommonKernelAccess {
1308
1317
  requestComponentDimensions(): void;
1309
1318
  planObjectCreated(conversationId: number, planObjectId: number): void;
1310
1319
  planObjectUpdated(planObjectId: number, pendingDocking: boolean, automaticCalculationUpdate: boolean): void;
1320
+ planObjectDependencyUpdated(planObjectId: number): void;
1311
1321
  planObjectConfigurationUpdated(planObjectId: number, configuration: ConfigurationString, hash: string, _rootPlanComponentId: number, _valid: boolean, pendingDocking: boolean): Promise<void>;
1312
1322
  private _onBoundsUpdate;
1313
1323
  planObjectDeleted(): void;
@@ -1376,6 +1386,7 @@ export declare interface ConfiguratorKernelAccessCallbackI extends KernelAccessC
1376
1386
  export declare interface ConfiguratorKernelCallbackI extends CommonConfiguratorKernelCallbackI {
1377
1387
  planObjectCreated(conversationId: number, planObjectId: number): void;
1378
1388
  planObjectUpdated(planObject: PlanObjectKernel, pendingDocking: boolean, automaticCalculationUpdate: boolean): void;
1389
+ planObjectDependencyUpdated(planObjectId: number): void;
1379
1390
  planObjectConfigurationUpdated(planObjectId: number, configuration: ConfigurationString, hash: string, pendingDocking: boolean): void;
1380
1391
  configurationLoaded(conversationId: number, objectId: number, componentId: number, hash: string, errors: any, isFreeFlying: boolean): void;
1381
1392
  Editor3dAddDockPreview(componentId: number, previewId: number, componentType: KernelComponentType): void;
@@ -1418,10 +1429,12 @@ export declare interface ConfiguratorKernelClass {
1418
1429
  getComponentParameters(componentId: number): KernelParameter[];
1419
1430
  getPlanComponentAnimations(planComponentId: number): KernelAnimation[];
1420
1431
  setComponentParameter(componentId: number, parameterKey: string, value: string): void;
1421
- setPlanComponentParameters(componentIds: any, parameterKey: string, value: string): void;
1432
+ setPlanComponentsParameter(componentIds: any, parameterKey: string, value: string): void;
1422
1433
  getPlanObjectParameters(planObjectId: number): KernelParameter[];
1434
+ getCommonPlanObjectParameters(planObjectIds: EmsArray<number>): KernelParameter[];
1423
1435
  getPlanObjectAnimations(planObjectId: number): KernelAnimation[];
1424
1436
  setPlanObjectParameter(planObjectId: number, parameterKey: string, value: string): void;
1437
+ setPlanObjectsParameter(planObjectIds: any, parameterKey: string, value: string): void;
1425
1438
  dockComponent(childId: number, childDockId: number, parentId: number, parentDockId: number, position?: KernelVector3): void;
1426
1439
  getComponent(componentId: number): KernelComponent;
1427
1440
  getComponentBounds(componentId: number, animationValues: string[]): KernelComponentBounds;
@@ -1448,7 +1461,7 @@ export declare interface ConfiguratorKernelClass {
1448
1461
  parameterGroups: KernelParameterGroup[];
1449
1462
  animations: KernelAnimation[];
1450
1463
  };
1451
- loadComponentDefinition(conversationId: number, component: string): void;
1464
+ loadComponentDefinition(component: string): void;
1452
1465
  syncPlanObjectToView(conversationId: number, planObjectId: number): void;
1453
1466
  setAssetInvalid(assetType: AssetType, idOrUrl: string, quality: number): void;
1454
1467
  setActiveGroupInView(groupId: string): void;
@@ -1527,14 +1540,14 @@ export declare class ConfiguratorSceneEventHandler extends SceneEventHandler<Sce
1527
1540
  disable(): void;
1528
1541
  enable(): void;
1529
1542
  private _addInputListeners;
1530
- addComponentHandlers(component: RoomleComponent): void;
1543
+ addComponentHandlers(component: RoomleComponent, switchObject?: (componentId: number) => Promise<void>): void;
1531
1544
  addComponentDragInHandler(component: RoomleComponent): void;
1532
1545
  private _addComponentHandlers;
1533
1546
  addPreviewHandlers(component: PreviewComponent): void;
1534
1547
  addPreviewLineHandlers(component: PreviewLineComponent, requestRenderSceneUpdateCallback?: () => void): void;
1535
1548
  private _clickPreview;
1536
1549
  private _clickPreviewLine;
1537
- clickComponent(component: RoomleComponent, componentIsClicked?: boolean): void;
1550
+ clickComponent(component: RoomleComponent, componentIsClicked?: boolean, switchObject?: (componentId: number) => Promise<void>): Promise<void>;
1538
1551
  private _clickOutside;
1539
1552
  private _hoverOn;
1540
1553
  private _hoverOff;
@@ -1562,7 +1575,7 @@ export declare class ConfiguratorSceneEventHandler extends SceneEventHandler<Sce
1562
1575
  getSelectedRuntimeComponentIds(): number[];
1563
1576
  setCameraMoving(cameraMoving: boolean): void;
1564
1577
  setCamera(camera: Camera): void;
1565
- setObject(object: Object3D): void;
1578
+ setObject(object: Object3D, secondaryObject?: Object3D): void;
1566
1579
  private _findComponentToBeSelected;
1567
1580
  private getRootComponent;
1568
1581
  }
@@ -1668,6 +1681,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1668
1681
  showDimensions(): Promise<void>;
1669
1682
  private _initDimensions;
1670
1683
  hideDimensions(): void;
1684
+ private _updateDimensionLabels;
1671
1685
  private _updateComponentDimensionLabels;
1672
1686
  loadSceneSettings(sceneSetting: SceneSettings): Promise<void>;
1673
1687
  protected onCameraChanged(): void;
@@ -1688,8 +1702,10 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1688
1702
  planObjectUpdated(planObject: PlanObjectKernel, geometryChanged: boolean, pendingDocking: boolean, automaticCalculationUpdate: boolean): void;
1689
1703
  componentDeleted(component: RoomleComponent): void;
1690
1704
  previewConstructionDone(_component: RoomleComponent, hasPreviews: boolean): void;
1705
+ planObjectDependencyUpdated(planObjectId: number): void;
1691
1706
  configurationLoaded(component: RoomleComponent, isFreeFlying: boolean): void;
1692
1707
  addComponentHandlers(component: RoomleComponent): void;
1708
+ switchConfiguratorObject(_clickedCompoentId: number): Promise<void>;
1693
1709
  addPreviewHandlers(previewComponent: PreviewComponent): void;
1694
1710
  addPreviewLineHandlers(previewLineComponent: PreviewLineComponent): void;
1695
1711
  private _updateComponentPosition;
@@ -1712,7 +1728,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1712
1728
  getComponent(componentRuntimeId: number): KernelComponent;
1713
1729
  cameraBehaviourChanged(updateDistance?: boolean): void;
1714
1730
  protected _setCameraControlListeners(): void;
1715
- protected setEventHandlerObject(object: Object3D): void;
1731
+ protected setEventHandlerObject(object: Object3D, secondaryObject?: Object3D): void;
1716
1732
  protected _readyForRender(): void;
1717
1733
  getComponentFromRuntimeId(elementId: number): RoomleComponent | null;
1718
1734
  animateElement(elementId: number, parameterName: string, value: string, animationLevel: AnimationLevelType, animate: boolean): void;
@@ -2087,6 +2103,7 @@ export declare class ConfiguratorViewModel implements ConfiguratorKernelCallback
2087
2103
  private _getRuntimeComponent;
2088
2104
  configurationLoaded(conversationId: number, objectId: number, componentId: number, _hash: string, _errors: any, isFreeFlying: boolean): void;
2089
2105
  finishParameterChange(resolve: () => void, _reject: () => void): void;
2106
+ planObjectDependencyUpdated(planObjectId: number): void;
2090
2107
  planObjectConfigurationUpdated(planObjectId: number, _configuration: ConfigurationString, _hash: string, pendingDocking: boolean): void;
2091
2108
  planObjectCreated(_conversationId: number, configurationRuntimeId: number): void;
2092
2109
  planObjectUpdated(planObject: PlanObjectKernel, pendingDocking: boolean, automaticCalculationUpdate: boolean): void;
@@ -2124,6 +2141,7 @@ export declare interface ConfiguratorViewModelCallbackI {
2124
2141
  planObjectUpdated(planObject: PlanObjectKernel, geometryChanged: boolean, pendingDocking: boolean, automaticCalculationUpdate: boolean): void;
2125
2142
  planObjectConstructionDone(planObject: PlanObjectKernel): void;
2126
2143
  previewConstructionDone(component: RoomleComponent, hasPreviews: boolean): void;
2144
+ planObjectDependencyUpdated(planObjectId: number): void;
2127
2145
  configurationLoaded(component: RoomleComponent, isFreeFlying: boolean): void;
2128
2146
  clearScene(): void;
2129
2147
  display(component: RoomleComponent): void;
@@ -2256,6 +2274,14 @@ export declare const CORE_HELP_LINE_TYPE: {
2256
2274
  readonly OBJECT_CONTOUR: 5;
2257
2275
  };
2258
2276
 
2277
+ export declare const CORE_OBJECT_CATEGORY: {
2278
+ readonly OBJECT: 0;
2279
+ readonly DOOR: 1;
2280
+ readonly WINDOW: 2;
2281
+ readonly CONSTRUCTION: 3;
2282
+ readonly UNKNOWN: 4;
2283
+ };
2284
+
2259
2285
  export declare const CORE_PERMISSION_TO_DELETE: {
2260
2286
  readonly NEVER: 0;
2261
2287
  readonly REDOCK_CHILDREN: 1;
@@ -2270,6 +2296,11 @@ export declare const CORE_PLAN_COMPONENT_TYPE: {
2270
2296
  readonly SUB_ARTICLE: 4;
2271
2297
  };
2272
2298
 
2299
+ export declare const CORE_PLAN_ROOM_GEOMETRY_MODE: {
2300
+ readonly FLOOR: 0;
2301
+ readonly ROOM: 1;
2302
+ };
2303
+
2273
2304
  export declare const CORE_SNAP_STATE: {
2274
2305
  readonly DEFAULT: 0;
2275
2306
  readonly DOCKING: 1;
@@ -2296,6 +2327,7 @@ export declare class CSS2DRendererManager implements Context {
2296
2327
  initializeRenderer(width: number, height: number): void;
2297
2328
  setSize(width: number, height: number): void;
2298
2329
  setDimensioningHelper(dimensioningHelper: DimensioningHelper): void;
2330
+ setCameraMoving(moving: boolean): void;
2299
2331
  renderSnapshotToCanvasWithAspectRatio(scene: Scene, camera: Camera, aspectRatio: number): Promise<HTMLCanvasElement>;
2300
2332
  private getCanvasDimensionsForAspectRatio;
2301
2333
  renderSnapshotToCanvas(scene: Scene, camera: Camera): Promise<HTMLCanvasElement>;
@@ -2304,6 +2336,11 @@ export declare class CSS2DRendererManager implements Context {
2304
2336
  private injectStyles;
2305
2337
  }
2306
2338
 
2339
+ export declare interface CurrentTenantId {
2340
+ tenantId: number | string | null;
2341
+ fallbackTenantId: number | null;
2342
+ }
2343
+
2307
2344
  export declare interface CustomShadingParameters {
2308
2345
  aoIntensity?: number;
2309
2346
  aoExtent?: number;
@@ -2427,6 +2464,9 @@ export declare class DimensioningHelper {
2427
2464
  private readonly _widthLineGroup;
2428
2465
  private readonly _heightLineGroup;
2429
2466
  private readonly _depthLineGroup;
2467
+ private _widthLabel;
2468
+ private _heightLabel;
2469
+ private _depthLabel;
2430
2470
  private _enabled;
2431
2471
  private _dimensionsVisible;
2432
2472
  private _dimensionLineGroup;
@@ -2442,6 +2482,7 @@ export declare class DimensioningHelper {
2442
2482
  private _getLocalCameraPosition;
2443
2483
  private _getCameraDistanceInfo;
2444
2484
  private _visibilityChangedCallback;
2485
+ updateDimensionLabelVisibility(camera: Camera): void;
2445
2486
  update(force?: boolean): void;
2446
2487
  updateSize(boxForMeasurement: KernelCube): void;
2447
2488
  removeFromObject(object: Object3D): void;
@@ -2456,8 +2497,7 @@ export declare class DimensioningHelper {
2456
2497
  enableTopDimensions(): void;
2457
2498
  disableTopDimensions(): void;
2458
2499
  getBoundingBox(): Box3;
2459
- moveCameraStart(position: Vector3): void;
2460
- moveCameraEnd(position: Vector3): void;
2500
+ setCameraPosition(position: Vector3): void;
2461
2501
  private _performUpdate;
2462
2502
  private _clear;
2463
2503
  }
@@ -2614,6 +2654,11 @@ export declare interface Element_2 {
2614
2654
  perspectiveImage: AssetUrl;
2615
2655
  }
2616
2656
 
2657
+ export declare interface ElevationView {
2658
+ lineOfSight: KernelVector3f;
2659
+ objects: KernelPlanObject[];
2660
+ }
2661
+
2617
2662
  export declare class EmsArray<T> {
2618
2663
  get(index: number): T;
2619
2664
  push_back(element: T): void;
@@ -2894,6 +2939,13 @@ export declare interface ExternalObjectAPI {
2894
2939
  * @param options Options for loading the external object groups.
2895
2940
  */
2896
2941
  loadExternalObjectGroups(groupJson: ExternalGroupData, options: LoadExternalObjectOptions): Promise<LoadExternalObjectGroupResult[]>;
2942
+ /**
2943
+ * "loadExternalObjectGroupLayout" creates and loads a group of modules from an article layout.
2944
+ * @param articleLayoutJson The article layout JSON as object.
2945
+ * @param layoutType The article layout type. Only "nobila" is supported at the moment.
2946
+ * @param options Options for loading the external object group.
2947
+ */
2948
+ loadExternalObjectGroupLayout(articleLayoutJson: ExternalObjectGroupLayout, layoutType: string, options?: LoadExternalObjectOptions): Promise<LoadExternalObjectGroupResult[]>;
2897
2949
  /**
2898
2950
  * "updateExternalObjectGroupAttribute" modifies an attribute of a root module or sub module.
2899
2951
  * The attribute with the ID "attributeId" of the sub module with the ID "moduleId"
@@ -2986,7 +3038,7 @@ export declare interface ExternalObjectAPI {
2986
3038
  /**
2987
3039
  * "getExternalRoomInformation" returns the room information for currently loaded in the plan.
2988
3040
  */
2989
- getExternalRoomInformation(): Promise<ExternalRoomInformation>;
3041
+ getExternalRoomInformation(mode?: PlanRoomGeometryMode): Promise<ExternalRoomInformation>;
2990
3042
  /**
2991
3043
  * It generates a snapshot of the external object in the plan without saving any data.
2992
3044
  * By default, the snapshot includes order data, room information, the plan XML, GLBs of the complete scene,
@@ -3038,10 +3090,12 @@ export declare interface ExternalObjectDebugConfiguration {
3038
3090
  export declare interface ExternalObjectDockedContext {
3039
3091
  dockedRoots: ExternalObjectDockedRootModule[];
3040
3092
  ownDockingVector: string;
3093
+ ownDockingVectorIndex: number;
3041
3094
  }
3042
3095
 
3043
3096
  export declare interface ExternalObjectDockedRootModule {
3044
3097
  dockingVector: string;
3098
+ dockingVectorIndex: number;
3045
3099
  id: string;
3046
3100
  }
3047
3101
 
@@ -3054,6 +3108,41 @@ export declare interface ExternalObjectGroup {
3054
3108
  contextData?: ExternalObjectContextDataItem[];
3055
3109
  }
3056
3110
 
3111
+ export declare interface ExternalObjectGroupLayout {
3112
+ [key: string]: unknown;
3113
+ shapes?: ExternalObjectGroupLayoutShape[];
3114
+ }
3115
+
3116
+ export declare interface ExternalObjectGroupLayoutArticle {
3117
+ [key: string]: unknown;
3118
+ name?: string;
3119
+ position?: Partial<Position3>;
3120
+ rotation?: number | null;
3121
+ dimensions?: ExternalObjectGroupLayoutDimensions;
3122
+ hingeId?: string | null;
3123
+ constructionId?: string | null;
3124
+ }
3125
+
3126
+ export declare type ExternalObjectGroupLayoutAttributeValue = string | number | boolean;
3127
+
3128
+ export declare interface ExternalObjectGroupLayoutDimensions {
3129
+ [key: string]: ExternalObjectGroupLayoutAttributeValue | null | undefined;
3130
+ b?: ExternalObjectGroupLayoutAttributeValue | null;
3131
+ h?: ExternalObjectGroupLayoutAttributeValue | null;
3132
+ t?: ExternalObjectGroupLayoutAttributeValue | null;
3133
+ }
3134
+
3135
+ export declare interface ExternalObjectGroupLayoutShape {
3136
+ [key: string]: unknown;
3137
+ sides?: ExternalObjectGroupLayoutSide[];
3138
+ bespokeArticles?: ExternalObjectGroupLayoutArticle[];
3139
+ }
3140
+
3141
+ export declare interface ExternalObjectGroupLayoutSide {
3142
+ [key: string]: unknown;
3143
+ articles?: ExternalObjectGroupLayoutArticle[];
3144
+ }
3145
+
3057
3146
  export declare interface ExternalObjectLoadConfiguration {
3058
3147
  applyGlobalChildMode: boolean;
3059
3148
  correctArrangement: boolean;
@@ -3115,7 +3204,7 @@ export declare interface ExternalObjectSnapshotData {
3115
3204
  }
3116
3205
 
3117
3206
  export declare interface ExternalObjectSnapshotRequest {
3118
- orderData?: boolean;
3207
+ orderData?: boolean | PlanRoomGeometryMode;
3119
3208
  planXML?: boolean;
3120
3209
  objectGlb?: boolean;
3121
3210
  perspectiveImage?: boolean;
@@ -3130,10 +3219,10 @@ export declare interface ExternalObjectSnapshotSaveResult {
3130
3219
  perspectiveImageLink: string;
3131
3220
  topImageLink: string;
3132
3221
  fullPlanGlbLink: string;
3133
- perspectiveObjectImageLink: string;
3134
- topObjectImageLink: string;
3135
- objectGlbLink: string;
3136
- glb: string;
3222
+ perspectiveObjectImageLink?: string;
3223
+ topObjectImageLink?: string;
3224
+ objectGlbLink?: string;
3225
+ glb?: string;
3137
3226
  }
3138
3227
 
3139
3228
  export declare interface ExternalObjectUiCallback {
@@ -3187,7 +3276,7 @@ export declare class ExternalReference {
3187
3276
  export declare type ExternalResponseValidator = (type: 'rapi-access', response: Response) => Promise<boolean>;
3188
3277
 
3189
3278
  export declare interface ExternalRoomInformation {
3190
- rooms: PosContour[];
3279
+ rooms: PosRoom[];
3191
3280
  }
3192
3281
 
3193
3282
  export declare type ExternalTag = Partial<RapiTag> & Pick<RapiTag, 'label'> & {
@@ -3311,6 +3400,11 @@ export declare class GeometryHelpLineArray extends EmsArray<GeometryHelpLine> {
3311
3400
 
3312
3401
  export declare const getCatalogIdFromConfigurationHash: (id: RapiId) => RapiId | null;
3313
3402
 
3403
+ export declare interface GetGroupDataForOrderOptions {
3404
+ roomlePlannerId?: string;
3405
+ mode?: PlanRoomGeometryMode;
3406
+ }
3407
+
3314
3408
  export declare interface GLBRenderWorkerListener {
3315
3409
  onStart(count: number): void;
3316
3410
  onElementFinished(finishedElements: number): void;
@@ -3498,6 +3592,7 @@ export declare interface GlueLogic {
3498
3592
  deleteRootModule(remainingGroup: ExternalObjectGroup, rootModuleIdToDelete: string, splitOffGroups: ExternalObjectGroup[]): Promise<void>;
3499
3593
  splitRootModuleFromGroup(splitGroup: ExternalObjectGroup, newGroupedRootModules: ExternalObjectGroup[]): Promise<void>;
3500
3594
  duplicateGroup(duplicatedGroup: ExternalObjectGroup): Promise<void>;
3595
+ adjustGroup(groupId: string): Promise<void>;
3501
3596
  swapRootModule(groupId: string, rootModuleId: string, articleId: string): Promise<void>;
3502
3597
  modifyAttribute(groupId: string, moduleIdObjects: ExternalModuleInformation_2[], attributeName: string, value: string): Promise<void>;
3503
3598
  updateAttribute(rootModuleId: string, moduleId: string | null, attributeId: string, attributeValue: string | boolean): Promise<void>;
@@ -3518,8 +3613,9 @@ export declare interface GlueLogic {
3518
3613
  getSaveDataGroups(): Promise<PosGroup[] | null>;
3519
3614
  getSubArticleId(id: string): string | undefined;
3520
3615
  newPosDataFromId(id: string): Promise<PosGroup | undefined>;
3616
+ newPosDataFromArticleLayout(articleLayoutJson: ExternalObjectGroupLayout, layoutType: string, posArticles?: PosArticle[]): Promise<PosGroup | undefined>;
3521
3617
  newPosDataFromGroup(posDataJson: PosGroup): Promise<PosGroup>;
3522
- getGroupDataForOrder(roomlePlannerId?: string): Promise<HiOrderData | null>;
3618
+ getGroupDataForOrder(options: GetGroupDataForOrderOptions): Promise<HiOrderData | null>;
3523
3619
  getMaterialUrl(materialId: string, groupOrModuleId?: string): string | null;
3524
3620
  }
3525
3621
 
@@ -3752,6 +3848,7 @@ export declare const HI_CONTEXT_ACTION: {
3752
3848
 
3753
3849
  export declare const HI_LOAD_OBJECT_REASON: {
3754
3850
  readonly ADD_SUBARTICLE: "add_subarticle";
3851
+ readonly ADJUSTED: "adjusted";
3755
3852
  readonly ARRANGED: "arranged";
3756
3853
  readonly CHANGE_ATTRIBUTE: "change_attribute";
3757
3854
  readonly CHANGE_META: "change_meta";
@@ -4038,6 +4135,7 @@ export declare class InitData implements Context, Omit<InitDataDefinition, 'colo
4038
4135
  lockPlan: boolean;
4039
4136
  readonly?: boolean;
4040
4137
  externalObjectSettings?: ExternalObjectApiConfiguration;
4138
+ plannerIsolationConfigurator?: boolean;
4041
4139
  /**
4042
4140
  * If true, the callbacks will only be called if the geometry is ready.
4043
4141
  * Before RML-8368 false was the default. For more info see there
@@ -4521,6 +4619,7 @@ export declare interface KernelParameter {
4521
4619
  viewType: KernelViewType;
4522
4620
  source: 'external' | 'internal';
4523
4621
  level?: number;
4622
+ objectIds: number[];
4524
4623
  }
4525
4624
 
4526
4625
  export declare interface KernelParameterGroup {
@@ -4733,10 +4832,12 @@ export declare interface LibraryData {
4733
4832
  libraryId: string;
4734
4833
  get masterData(): MasterData | null;
4735
4834
  get posGroupVersion(): number;
4835
+ initializePosGroup(posGroup: PosGroup): void;
4736
4836
  calculateGroup(posGroup: PosGroup): PosGroup;
4737
4837
  getOrderData(posGroup: PosGroup[], roomlePlannerId?: string, rooms?: PosContour[]): any;
4738
4838
  getAttributesDropDownValues(module: PosModuleData, attributeIds?: string | string[]): Promise<Record<string, HiAttributeOptionsResult>>;
4739
4839
  solveModuleAttributeConflict(module: PosModuleData, attributeName: string, value: string | number | boolean): PosModuleAttribute[] | undefined;
4840
+ groupAdjust(posGroup: PosGroup, articles: PosArticle[], roomInformation: PosRoom): PosGroup;
4740
4841
  getValidSubArticles(calculatedPosGroup: PosGroup, articles: PosArticle[], masterData: MasterData): PosArticle[];
4741
4842
  getValidContainerModulesForSubArticle(calculatedPosGroup: PosGroup, subArticle: PosArticle, masterData: MasterData): ExternalObjectValidContainerModules[];
4742
4843
  addSubArticle(targetPosGroup: PosGroup, article: PosArticle, rootId: string, parentModuleId: string, insertPosition?: number[]): PosGroup;
@@ -4761,7 +4862,8 @@ export declare class LightCache {
4761
4862
  activeLights: Map<string, Light>;
4762
4863
  maximumLights: number;
4763
4864
  private readonly _inactivePosition;
4764
- constructor(scene: Scene, maxAnisotropy: number);
4865
+ constructor(scene: Scene, renderer: WebGLRenderer | WebGPURenderer, maxAnisotropy: number);
4866
+ private registerWebGPULightNodes;
4765
4867
  allowedToSpawnMoreLights(): boolean;
4766
4868
  addActiveLight(light: Light): void;
4767
4869
  cacheLight(light: Light): void;
@@ -4962,6 +5064,12 @@ export declare interface MDModuleInfo {
4962
5064
  group?: string;
4963
5065
  imageUrl?: string;
4964
5066
  assignedAttributes: string[];
5067
+ allowedChildModules?: string[];
5068
+ isRoot?: boolean;
5069
+ isConfigDummy?: boolean;
5070
+ isDropContainer?: boolean;
5071
+ isGroupOrchestrator?: boolean;
5072
+ moduleType?: 'RootModule' | 'SubModule' | 'DropContainer' | 'GroupOrchestrator';
4965
5073
  }
4966
5074
 
4967
5075
  export declare interface MDNumberMinMaxAttributeSelection {
@@ -5147,6 +5255,12 @@ export declare abstract class Node_2 extends PlanElement {
5147
5255
  getMaxWallHeight(): number;
5148
5256
  }
5149
5257
 
5258
+ export declare interface NodeDimensionTransferable {
5259
+ id: number;
5260
+ position2d: Position2;
5261
+ zCoordinate: number;
5262
+ }
5263
+
5150
5264
  export declare class NodePlanElementViewModel extends PlanElementViewModel {
5151
5265
  private _nodeUiMesh;
5152
5266
  constructor(planObject: PlanObject);
@@ -5218,6 +5332,10 @@ export declare const enum OBJECT_EVENT {
5218
5332
  ROTATE = "rotate"
5219
5333
  }
5220
5334
 
5335
+ export declare interface ObjectCategory {
5336
+ value: Enumify_3<typeof CORE_OBJECT_CATEGORY>;
5337
+ }
5338
+
5221
5339
  export declare interface ObjectConfigurationType {
5222
5340
  value: Enumify_3<typeof CONFIGURATION_TYPE>;
5223
5341
  }
@@ -5274,6 +5392,11 @@ export declare interface OffsetCamera {
5274
5392
  export declare interface OrthographicOffsetCamera extends OrthographicCamera, OffsetCamera {
5275
5393
  }
5276
5394
 
5395
+ export declare interface OutlineColors {
5396
+ outlineVisibleEdgeColor: ColorRepresentation;
5397
+ outlineHiddenEdgeColor: ColorRepresentation;
5398
+ }
5399
+
5277
5400
  export declare interface OutlineCustomParameters {
5278
5401
  outlineVisibleEdgeColor: ColorRepresentation;
5279
5402
  outlineHiddenEdgeColor: ColorRepresentation;
@@ -5406,6 +5529,11 @@ export declare const PLAN_ELEMENT_CHANGE_TYPES: {
5406
5529
  readonly REMOVED: "removed";
5407
5530
  };
5408
5531
 
5532
+ export declare const PLAN_ROOM_GEOMETRY_MODE: {
5533
+ readonly FLOOR: "floor";
5534
+ readonly ROOM: "room";
5535
+ };
5536
+
5409
5537
  export declare abstract class PlanElement extends AbstractModelWrapper {
5410
5538
  isLocked: boolean;
5411
5539
  isValid: boolean;
@@ -5449,6 +5577,8 @@ export declare class PlanElementViewModel extends KernelViewModel {
5449
5577
  getPosition(): Vector3;
5450
5578
  getRotation(): number;
5451
5579
  getBounds(): Box3;
5580
+ getMeasurementBounds(): Box3[];
5581
+ hasFixedZ(): boolean;
5452
5582
  getBoundingBox(): RoomleEventedMesh;
5453
5583
  getPlanElement(): PlanObject;
5454
5584
  setObject(object: RoomleEventedObject3D): void;
@@ -5639,9 +5769,11 @@ export declare interface PlanModelViewHelper_2 {
5639
5769
  getExternalObjectComponent(plan: Plan_2, groupId: string, moduleId: string): KernelPlanObjectComponent;
5640
5770
  requestMesh3d(element: PlanElement_2): void;
5641
5771
  getExternalObjectGroups(plan: Plan_2): KernelObjectConfigurationArray;
5642
- getExternalRoomInformation(plan: Plan_2): RoomInformation;
5772
+ getExternalRoomInformation(plan: Plan_2, mode: PlanRoomGeometryMode_2): RoomInformation;
5773
+ getGroupedObjects(anObject: PlanObject): KernelPlanObject[];
5643
5774
  calculateLightSourceDistribution(plan: Plan_2, lightSourceConfiguration: LightSourceConfiguration): RoomLightSourceDistributionArray;
5644
5775
  getObjectSnapInformation(anObject: PlanObject, debugHelpLines: boolean): ObjectSnapInformation;
5776
+ getElevationViews(plan: Plan_2): ElevationView[];
5645
5777
  }
5646
5778
 
5647
5779
  export declare class Planner<P extends readonly PluginName[] = readonly []> extends Main {
@@ -5998,6 +6130,7 @@ export declare class PlannerSceneEventHandler extends SceneEventHandler<SceneEve
5998
6130
  private _selectElement;
5999
6131
  private _handleSingleClick;
6000
6132
  private _isObjectOrSiblingSelected;
6133
+ private _toggleGroupSelection;
6001
6134
  getRootPlanObjectId(id: number): number;
6002
6135
  private _doubleClickElement;
6003
6136
  private _hoverOn;
@@ -6007,7 +6140,7 @@ export declare class PlannerSceneEventHandler extends SceneEventHandler<SceneEve
6007
6140
  private _isHoveredObjectNonDraggable;
6008
6141
  private _setCursor;
6009
6142
  setCamera(camera: Camera): void;
6010
- setObject(object: Object3D): void;
6143
+ setObject(object: Object3D, secondaryObject?: Object3D): void;
6011
6144
  getSelectedIds(): number[];
6012
6145
  setSelectionMode(selectionMode: SELECTION_MODE): void;
6013
6146
  setPlanViewModel(planViewModel: PlanViewModel): void;
@@ -6088,6 +6221,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6088
6221
  private _cameraState;
6089
6222
  private _cameraStateLocked;
6090
6223
  private _planElementHighlighter;
6224
+ private _planner3dDimensionHelper;
6091
6225
  private _debugSpheres;
6092
6226
  constructor(creator: string, offset: CanvasOffset, plannerCallback: RoomlePlannerCallback, mode: Enumify_2<typeof CAMERA_TYPE>);
6093
6227
  isDragging(): boolean;
@@ -6116,6 +6250,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6116
6250
  private _getDragPosition;
6117
6251
  private _hideAllMeasurementsNodeOnElementChange;
6118
6252
  private _onSelectionChange;
6253
+ planObjectDependencyUpdated(planObjectId: number): void;
6119
6254
  private _onSelectionCancel;
6120
6255
  private _handleMeasurementLineDraggablePoints;
6121
6256
  resetConfiguratorContext(reason: CancelSelectionReasons): void;
@@ -6178,6 +6313,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6178
6313
  protected _onKeyUp(event: KeyboardEvent, cleanup?: boolean): void;
6179
6314
  undo(): Promise<void>;
6180
6315
  redo(): Promise<void>;
6316
+ private _reshowDimensionsAfterUndoRedo;
6181
6317
  protected _updateConfigurationFromHistory(configurationString: string): Promise<void>;
6182
6318
  setMode(mode: Enumify_2<typeof CAMERA_TYPE>): void;
6183
6319
  private _clearHighlighting;
@@ -6215,13 +6351,21 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6215
6351
  disableRotation(): void;
6216
6352
  enableSnapping(): void;
6217
6353
  disableSnapping(): void;
6354
+ setSnappingDisabledTooltip(text: string): void;
6355
+ enable3dDimensions(): void;
6356
+ disable3dDimensions(): void;
6218
6357
  enableAdvancedDocking(): void;
6219
6358
  disableAdvancedDocking(): void;
6220
6359
  isEnabledChildObjectMode(planElementViewModel: PlanElementViewModel): boolean;
6221
6360
  enableChildObjects(planElementViewModel: PlanElementViewModel): KernelObject | null;
6222
6361
  disableChildObjects(planElementViewModel: PlanElementViewModel): KernelObject | null;
6223
6362
  dragIn(dragEvent: DragEvent): void;
6224
- getPositionForDragEvent(dragEvent: DragEvent | TouchEvent): Vector3 | null;
6363
+ getPositionForDragEvent(dragEvent: DragEvent | TouchEvent | {
6364
+ clientX: number;
6365
+ clientY: number;
6366
+ }): Vector3 | null;
6367
+ getPositionForLastPointer(): Vector3 | null;
6368
+ isPointerUp(): boolean;
6225
6369
  getPlannerSceneEventHandler(): PlannerSceneEventHandler;
6226
6370
  disablePlannerEvents(): void;
6227
6371
  enablePlannerEvents(): void;
@@ -6236,6 +6380,37 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6236
6380
  private _sendRoomAreaData;
6237
6381
  private _updateMeasurementPositions;
6238
6382
  private _sendElementMeasurements;
6383
+ private _ensure3dDimensionHelperInitialized;
6384
+ /**
6385
+ * Show 3D dimension lines for a selected plan element (only in 3D mode).
6386
+ * In 2D mode, the existing 2D measurement system handles this.
6387
+ */
6388
+ private _show3dDimensions;
6389
+ private _show3dDimensionsMulti;
6390
+ /**
6391
+ * Re-show 3D dimensions for the currently selected objects.
6392
+ * Called when snapping state changes to update editability.
6393
+ */
6394
+ private _refreshDimensionsForCurrentSelection;
6395
+ /**
6396
+ * Update 3D dimension lines during drag (only in 3D mode).
6397
+ */
6398
+ private _update3dDimensions;
6399
+ /**
6400
+ * Handle an edit to a 3D dimension label — move the object to the
6401
+ * new distance from the wall/neighbor along that measurement direction.
6402
+ *
6403
+ * Uses the same approach as setObjectToWallMeasurementLength:
6404
+ * direction = startPoint - endPoint (from wall/neighbor toward object),
6405
+ * delta = (newLength - currentLength) / 1000,
6406
+ * then moveElementToIn2d to stay on the floor plane.
6407
+ */
6408
+ private _handleDimensionEdit3d;
6409
+ /**
6410
+ * Regenerate 3D dimensions if the camera has moved significantly
6411
+ * since the last generation (for better label placement).
6412
+ */
6413
+ private _regenerate3dDimensionsIfNeeded;
6239
6414
  private _sendRoomMeasurements;
6240
6415
  private _sendMeasurementLineDimension;
6241
6416
  private _sendObjectMeasurements;
@@ -6278,13 +6453,15 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6278
6453
  setObjectToWallMeasurementLength(planElementId: number, measurementId: number, length: number): void;
6279
6454
  setWallMeasurementLength(measurementId: number, length: number, wallDirection: EMSConstant): void;
6280
6455
  setMeasurementLineLength(measurementId: number, length: number, wallDirection: string): void;
6281
- protected setEventHandlerObject(object: Object3D): void;
6456
+ setNodeZCoordinate(nodeId: number, z: number): void;
6457
+ protected setEventHandlerObject(object: Object3D, secondaryObject?: Object3D): void;
6282
6458
  protected _readyForRender(): void;
6283
6459
  protected notifyPlannerOnComponentSelectionCancel(isExternalObject: boolean, reason: CancelSelectionReasons): void;
6284
6460
  private _externalPlanObjectSelectionChanged;
6285
6461
  highlightExternalObject(planObjectComponent: KernelPlanObjectComponent): void;
6286
6462
  private _selectExternalObjectComponent;
6287
6463
  getSelectedPlanObjectComponent(): KernelPlanObjectComponent | null;
6464
+ switchConfiguratorObject(clickedComponentId: number): Promise<void>;
6288
6465
  selectObjectComponent(planObjectComponent: KernelPlanObjectComponent, switchToConfigurator: boolean, selectComponent: boolean): Promise<void>;
6289
6466
  _swapObjectInConfigurator(planObjectComponent: KernelPlanObjectComponent): Promise<void>;
6290
6467
  getObjectComponent(id: number, typeOfId: Enumify_2<typeof CORE_TYPE_OF_CORE_ID>): KernelPlanObjectComponent | null;
@@ -6316,13 +6493,16 @@ export declare interface PlanObject extends PlanElement_2 {
6316
6493
  flipY: boolean;
6317
6494
  fixedZ: boolean;
6318
6495
  boxForMeasurement: KernelCube;
6496
+ measurementBounds: KernelAssembledObjectBounds;
6319
6497
  hasConfiguration(): boolean;
6498
+ isAdjustable(): boolean;
6320
6499
  isExternalObject(): boolean;
6321
6500
  retrieveConfigurationId(): ConfigurationUniqueIdAndHash;
6322
6501
  getConfiguration(): string;
6323
6502
  getCatalogItemId(): string;
6324
6503
  getConfigurationRuntimeId(): number;
6325
6504
  getObjectType(): string;
6505
+ getObjectCategory(): ObjectCategory;
6326
6506
  getWallDistances(): ObjectToWallLineArray;
6327
6507
  getRectangle(): Rectangle;
6328
6508
  getRotationToPreferredFront(): ObjectFrontRotation;
@@ -6404,6 +6584,12 @@ export declare interface PlanOverview {
6404
6584
  rooms: PlanElement_2[];
6405
6585
  }
6406
6586
 
6587
+ export declare type PlanRoomGeometryMode = (typeof PLAN_ROOM_GEOMETRY_MODE)[keyof typeof PLAN_ROOM_GEOMETRY_MODE];
6588
+
6589
+ export declare interface PlanRoomGeometryMode_2 {
6590
+ value: Enumify_3<typeof CORE_PLAN_ROOM_GEOMETRY_MODE>;
6591
+ }
6592
+
6407
6593
  export declare abstract class PlanText extends PlanElement {
6408
6594
  getText(): string;
6409
6595
  }
@@ -6658,12 +6844,14 @@ export declare const enum PosDock {
6658
6844
 
6659
6845
  export declare interface PosDockedContext {
6660
6846
  ownDockingVector: PosDock | string;
6847
+ ownDockingVectorIndex: number;
6661
6848
  dockedRoots: PosDockedContextRoot[];
6662
6849
  }
6663
6850
 
6664
6851
  export declare interface PosDockedContextRoot {
6665
6852
  id: string;
6666
6853
  dockingVector: PosDock | string;
6854
+ dockingVectorIndex: number;
6667
6855
  }
6668
6856
 
6669
6857
  export declare interface PosDockInfo {
@@ -6818,6 +7006,10 @@ export declare interface PosPositionInfo extends PosArticleInfo {
6818
7006
  additionalText?: string;
6819
7007
  }
6820
7008
 
7009
+ export declare interface PosRoom {
7010
+ levels: PosContour[];
7011
+ }
7012
+
6821
7013
  export declare interface PosSaveData {
6822
7014
  groups: PosGroup[];
6823
7015
  roomlePlannerId?: string;
@@ -7027,6 +7219,7 @@ export declare class RapiAccess implements Context {
7027
7219
  constructor(creator: string);
7028
7220
  setConfiguratorSettings(): Promise<void>;
7029
7221
  getTenantId(): Promise<number>;
7222
+ getCurrentTenantId(fallbackTenantId?: number | null): Promise<CurrentTenantId>;
7030
7223
  getPreloadForItem(id: RapiId): Promise<void>;
7031
7224
  getPreloadForConfiguration(id: RapiId): Promise<void>;
7032
7225
  private _getPreload;
@@ -7618,6 +7811,7 @@ export declare type RayCasterObjectFilter = (object3d: Object3D) => boolean;
7618
7811
  export declare class RaycastHelper extends EventDispatcher<Record<RAYCAST_EVENT, SceneEventInfo>> {
7619
7812
  private _mode;
7620
7813
  private _object;
7814
+ private _secondaryObject?;
7621
7815
  private _camera;
7622
7816
  private _inputManager;
7623
7817
  private _raycaster;
@@ -7660,7 +7854,7 @@ export declare class RaycastHelper extends EventDispatcher<Record<RAYCAST_EVENT,
7660
7854
  enableDragIn(mesh: RoomleEventedMesh): void;
7661
7855
  setRootComponentId(rootComponentId: number): void;
7662
7856
  setCamera(camera: Camera): void;
7663
- setObject(object: Object3D): void;
7857
+ setObject(object: Object3D, secondaryObject?: Object3D): void;
7664
7858
  setMode(mode: INTERSECTION_MODE): void;
7665
7859
  intersectMouseOnScene(event: Pick<PointerInputEvent, 'positionRelative'>): KernelVector3 | null;
7666
7860
  enableOnWallSnapping(): void;
@@ -7717,7 +7911,7 @@ export declare class RoomDesignerApi implements RoomDesignerRequests {
7717
7911
  deleteGroup(groupId: string): void;
7718
7912
  deleteRootModule(rootModuleId: string): void;
7719
7913
  getPosDataOfAllGroups(): Promise<PosGroup[]>;
7720
- getRoomInformation(): Promise<ExternalRoomInformation>;
7914
+ getRoomInformation(mode?: PlanRoomGeometryMode): Promise<ExternalRoomInformation>;
7721
7915
  saveExternalObjectSnapshot(): Promise<ExternalObjectSnapshotSaveResult | null>;
7722
7916
  saveCurrentPlanSnapshot(): Promise<RapiPlanSnapshotGetData>;
7723
7917
  renderPosDataImage(posDataJson: object): Promise<void>;
@@ -7734,7 +7928,7 @@ export declare interface RoomDesignerRequests {
7734
7928
  deleteGroup(groupId: string): void;
7735
7929
  deleteRootModule(rootModuleId: string): void;
7736
7930
  getPosDataOfAllGroups(): Promise<PosGroup[]>;
7737
- getRoomInformation(): Promise<ExternalRoomInformation>;
7931
+ getRoomInformation(mode?: PlanRoomGeometryMode): Promise<ExternalRoomInformation>;
7738
7932
  saveExternalObjectSnapshot(): Promise<ExternalObjectSnapshotSaveResult | null>;
7739
7933
  }
7740
7934
 
@@ -7742,9 +7936,16 @@ export declare class RoomGeometryArray extends EmsArray<PosContour> {
7742
7936
  }
7743
7937
 
7744
7938
  export declare interface RoomInformation {
7939
+ rooms: RoomInformationRoomArray;
7940
+ }
7941
+
7942
+ export declare interface RoomInformationRoom {
7745
7943
  rooms: RoomGeometryArray;
7746
7944
  }
7747
7945
 
7946
+ export declare class RoomInformationRoomArray extends EmsArray<RoomInformationRoom> {
7947
+ }
7948
+
7748
7949
  /**
7749
7950
  * Colors can be set as hex value, eg 0x00ff00 or as official HTML color name: https://www.w3schools.com/colors/colors_names.asp
7750
7951
  */
@@ -8903,6 +9104,11 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
8903
9104
  * @param itemList Array of PlanObjects
8904
9105
  */
8905
9106
  mergeItems(itemList: PlanObject[]): void;
9107
+ /**
9108
+ * Adjust plan object to planning situation
9109
+ * @param item PlanObject
9110
+ */
9111
+ adjustItem(item: PlanObject): Promise<void>;
8906
9112
  getScene(): Scene;
8907
9113
  getSceneManager(): PlannerSceneManager;
8908
9114
  updateScene(): void;
@@ -8947,7 +9153,10 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
8947
9153
  */
8948
9154
  disableMultiselect(): void;
8949
9155
  private _insertExternalObject;
8950
- dragInObject(idOrSerializedConfigString: string, dragEvent: DragEvent, type?: ID_TYPE): Promise<RuntimeId>;
9156
+ dragInObject(idOrSerializedConfigString: string, dragEvent: DragEvent, type?: ID_TYPE, pointerPosition?: {
9157
+ clientX: number;
9158
+ clientY: number;
9159
+ }): Promise<RuntimeId>;
8951
9160
  /**
8952
9161
  * Will remove an element that was dragged into the scene while still dragging it.
8953
9162
  * This is mainly used in the context of pressing ESC while dragging or dragging the element away from the scene again.
@@ -8961,6 +9170,19 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
8961
9170
  * disable all types of snapping
8962
9171
  */
8963
9172
  disableSnapping(): void;
9173
+ /**
9174
+ * Enable 3D dimension lines shown on object selection in 3D mode.
9175
+ */
9176
+ enable3dDimensions(): void;
9177
+ /**
9178
+ * Disable 3D dimension lines in 3D mode.
9179
+ */
9180
+ disable3dDimensions(): void;
9181
+ /**
9182
+ * Set the tooltip text shown on disabled vertical dimension labels
9183
+ * when snapping prevents height editing.
9184
+ */
9185
+ setSnappingDisabledTooltip(text: string): void;
8964
9186
  /**
8965
9187
  * enable docking of objects that fit together when objects are snapped in the plan
8966
9188
  */
@@ -9079,6 +9301,7 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
9079
9301
  setObjectToWallMeasurementLength(planElementId: number, measurementId: number, length: number): void;
9080
9302
  setWallMeasurementLength(measurementId: number, length: number, wallDirection: EMSConstant): void;
9081
9303
  setMeasurementLineLength(measurementId: number, length: number, wallDirection: string): void;
9304
+ setNodeZCoordinate(nodeId: number, z: number): void;
9082
9305
  escapeDrawing(cancelDrawing: boolean): void;
9083
9306
  isCurrentlyDrawing(): boolean;
9084
9307
  /**
@@ -9098,6 +9321,7 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
9098
9321
  getInitialExternalObjectGroup(): Promise<PosGroup | null>;
9099
9322
  loadNewExternalObjectInIsolation(groupObject: object): Promise<LoadExternalObjectGroupResult[]>;
9100
9323
  loadExternalObjectGroups(groupData: ExternalGroupData, options?: LoadExternalObjectOptions): Promise<LoadExternalObjectGroupResult[]>;
9324
+ loadExternalObjectGroupLayout(articleLayoutJson: ExternalObjectGroupLayout, layoutType: string, options?: LoadExternalObjectOptions): Promise<LoadExternalObjectGroupResult[]>;
9101
9325
  private _loadExternalObjectGroup;
9102
9326
  private _loadExternalObjectGroupInConfigurator;
9103
9327
  private _loadExternalObjectGroupInPlanner;
@@ -9123,7 +9347,7 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
9123
9347
  openOrCloseGeometryOfExternalObject(groupIdOrRootModuleId: string, _subModuleId: string | null, open: boolean, animate: boolean): void;
9124
9348
  _selectExternalObjectGroup(groupId: string, switchToPlanner: boolean): Promise<void>;
9125
9349
  getExternalObjectGroups(): Promise<object[]>;
9126
- getExternalRoomInformation(): Promise<ExternalRoomInformation>;
9350
+ getExternalRoomInformation(mode?: PlanRoomGeometryMode): Promise<ExternalRoomInformation>;
9127
9351
  /**
9128
9352
  * Highlights a product in the planner.
9129
9353
  * @param planElementId The ID of the plan element to highlight.
@@ -9247,7 +9471,7 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
9247
9471
  * @param orderHeader optional order header information
9248
9472
  */
9249
9473
  fetchPrice(planId?: string, orderHeader?: HiOrderHeader): Promise<any>;
9250
- getOrderManagerGroupData(planId?: string): Promise<HiOrderData | null | undefined>;
9474
+ getOrderManagerGroupData(options?: GetGroupDataForOrderOptions): Promise<HiOrderData | null | undefined>;
9251
9475
  getRapiAccess(): RapiAccess;
9252
9476
  getElementOpenCloseAnimation(planElement: PlanElementViewModel, componentIds?: number[]): AnimationKeyAndValue | null;
9253
9477
  /**
@@ -9341,6 +9565,12 @@ export declare class RoomlePlannerUiCallback extends UiCallback implements Exter
9341
9565
  * @param wallDimensions
9342
9566
  */
9343
9567
  onUpdateWallDimensions: (wallDimensions: WallDimensionTransferable[]) => void;
9568
+ /**
9569
+ * This function gets called when the camera is no longer moving
9570
+ * and the position of node dimensions can be calculated
9571
+ * @param nodeDimensions
9572
+ */
9573
+ onUpdateNodeDimensions: (nodeDimensions: NodeDimensionTransferable[]) => void;
9344
9574
  /**
9345
9575
  * This function gets called when the camera is no longer moving
9346
9576
  * and the position of the measurement line dimensions can be calculated
@@ -9472,7 +9702,7 @@ export declare abstract class RoomleRenderer<RendererType extends WebGLRenderer
9472
9702
  abstract setOnQualityLevelChangeCallback(callback: (qualityLevel: QualityLevel) => void): void;
9473
9703
  abstract clearCache(): void;
9474
9704
  abstract highlightObjects(selectedMeshes: Object3D[]): void;
9475
- abstract setGroundShadow(enabled: boolean): void;
9705
+ abstract setGroundShadow(enabled: boolean, scene: Scene): void;
9476
9706
  abstract enableUiInteractionMode(): void;
9477
9707
  abstract disableUiInteractionMode(): void;
9478
9708
  }
@@ -9543,17 +9773,19 @@ export declare class RoomleWebGPURenderer extends RoomleRenderer<WebGPURenderer>
9543
9773
  private debugMode;
9544
9774
  private readonly renderPasses;
9545
9775
  private readonly guiParameterGroups;
9776
+ private lastRenderCamera;
9546
9777
  private _domHelper;
9547
- constructor(creator: string, renderer: WebGPURenderer, outlineColors?: {
9548
- outlineVisibleEdgeColor: ColorRepresentation;
9549
- outlineHiddenEdgeColor: ColorRepresentation;
9550
- });
9778
+ private _webGpuGroundShadow;
9779
+ constructor(creator: string, renderer: WebGPURenderer, enableSSGI: boolean, outlineColors?: OutlineColors);
9780
+ private enableRenderPasses;
9781
+ addGroundShadowLightAndFloor(scene: Scene): void;
9551
9782
  private addRenderPass;
9552
9783
  clearCache(): void;
9553
9784
  disableUiInteractionMode(): void;
9554
9785
  enableUiInteractionMode(): void;
9555
9786
  getQualityLevel(): QualityLevel;
9556
9787
  setCameraType(cameraType: Enumify_2<typeof CAMERA_TYPE>): void;
9788
+ switchToConfigurator(): void;
9557
9789
  switchToPlanner(renderMode: PlannerRenderMode): void;
9558
9790
  highlightObjects(selectedMeshes: Object3D[]): void;
9559
9791
  loadLutImages(_luts: LutImageDefinition[]): void;
@@ -9563,15 +9795,18 @@ export declare class RoomleWebGPURenderer extends RoomleRenderer<WebGPURenderer>
9563
9795
  setAutoQuality(_autoQuality: boolean): void;
9564
9796
  setCustomShadingParameters(_customShadingParameters: CustomShadingParameters | undefined, _customShadingParametersMoc: CustomShadingParameters | undefined): void;
9565
9797
  setCustomOutlineParameters(customOutlineParameters: OutlineCustomParameters): void;
9566
- setGroundShadow(_enabled: boolean): void;
9798
+ setGroundShadow(enabled: boolean, _scene: Scene): void;
9567
9799
  setOnQualityLevelChangeCallback(_callback: (qualityLevel: QualityLevel) => void): void;
9568
9800
  private enableOutline;
9569
9801
  private getOutlinePassOrUndefined;
9802
+ private enableSsgiPass;
9803
+ private enableTraaPass;
9570
9804
  setQualityLevel(_qualityLevel: QualityLevel): void;
9571
9805
  setQualityMap(_qualityMap: QualityMap): void;
9572
- setShadingType(_shadingType: SceneShadingType): void;
9806
+ setShadingType(shadingType: SceneShadingType): void;
9573
9807
  showGUI(updateCallback: () => void): void;
9574
9808
  private addDebugGUI;
9809
+ private addToneMappingSettings;
9575
9810
  getOrCreateGUIParameters(name: string): ParametersGroup;
9576
9811
  private createAndCacheGUIParameters;
9577
9812
  }
@@ -9654,12 +9889,14 @@ export declare class SceneEventInfo {
9654
9889
 
9655
9890
  export declare class SceneEventInfo_2 {
9656
9891
  planElementViewModel?: PlanElementViewModel;
9892
+ planElementViewModels?: PlanElementViewModel[];
9657
9893
  resetCamera: boolean;
9658
9894
  state: PLANNER_SCENE_EVENT_STATE;
9659
9895
  oldState: PLANNER_SCENE_EVENT_STATE;
9660
9896
  reason?: CancelSelectionReasons;
9661
9897
  constructor(data: {
9662
9898
  planElementViewModel?: PlanElementViewModel;
9899
+ planElementViewModels?: PlanElementViewModel[];
9663
9900
  resetCamera?: boolean;
9664
9901
  state?: PLANNER_SCENE_EVENT_STATE;
9665
9902
  oldState?: PLANNER_SCENE_EVENT_STATE;
@@ -9712,6 +9949,7 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
9712
9949
  protected _stopRendering: boolean;
9713
9950
  protected _roomleRenderer: GenericRoomleRenderer | null;
9714
9951
  private _roomleRendererReady;
9952
+ private _isDebugGUIInitialized;
9715
9953
  private _forceRender;
9716
9954
  private _lastChange;
9717
9955
  private _running;
@@ -9756,7 +9994,10 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
9756
9994
  protected shouldClearShadowsAndAO(): boolean;
9757
9995
  protected _setupScene(_offset?: CanvasOffset, transparent?: boolean): Promise<void>;
9758
9996
  loadEnvMap(url: string): Promise<void>;
9759
- private _getEnvMapIntensityAndRotation;
9997
+ protected _getEnvMapIntensityAndRotation(): {
9998
+ intensity: number;
9999
+ rotation: number;
10000
+ };
9760
10001
  protected _setDefaultEnvironmentScene(): void;
9761
10002
  private _setEnvMap;
9762
10003
  private _tabVisible;