@roomle/web-sdk 3.7.0-alpha.2 → 3.7.0-alpha.4

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 (130) hide show
  1. package/lib/{BufferGeometry-C696z6r3.mjs → BufferGeometry-BzmfTBQt.mjs} +1 -1
  2. package/lib/{BufferGeometry-C696z6r3.mjs.map → BufferGeometry-BzmfTBQt.mjs.map} +1 -1
  3. package/lib/ConfiguratorKernel.wasm +0 -0
  4. package/lib/{GLTFExporter-AfQIvZAD.mjs → GLTFExporter-CyhgWPq0.mjs} +2 -2
  5. package/lib/{GLTFExporter-AfQIvZAD.mjs.map → GLTFExporter-CyhgWPq0.mjs.map} +1 -1
  6. package/lib/{PointLightHelper-wVSmrAnD.mjs → PointLightHelper-DwIXACyT.mjs} +2 -2
  7. package/lib/{PointLightHelper-wVSmrAnD.mjs.map → PointLightHelper-DwIXACyT.mjs.map} +1 -1
  8. package/lib/RoomleCore.js +4 -4
  9. package/lib/RoomleCore.wasm +0 -0
  10. package/lib/RoomleToolsCore.wasm +0 -0
  11. package/lib/{SpotLightHelper-C7J95t4f.mjs → SpotLightHelper-CfLHM7LU.mjs} +2 -2
  12. package/lib/{SpotLightHelper-C7J95t4f.mjs.map → SpotLightHelper-CfLHM7LU.mjs.map} +1 -1
  13. package/lib/{USDZExporter-BBk0APeK.mjs → USDZExporter-kmxcTvnQ.mjs} +2 -2
  14. package/lib/{USDZExporter-BBk0APeK.mjs.map → USDZExporter-kmxcTvnQ.mjs.map} +1 -1
  15. package/lib/{api-oYzhcs_W.mjs → api-X1dDTDvL.mjs} +2 -2
  16. package/lib/{api-oYzhcs_W.mjs.map → api-X1dDTDvL.mjs.map} +1 -1
  17. package/lib/{banana-for-scale-D8t2dmc7.mjs → banana-for-scale-Bpf8RfLi.mjs} +4 -4
  18. package/lib/{banana-for-scale-D8t2dmc7.mjs.map → banana-for-scale-Bpf8RfLi.mjs.map} +1 -1
  19. package/lib/budgeteer.sw-CQWYbQSc.mjs.map +1 -1
  20. package/lib/budgeteer.sw.js +1 -1
  21. package/lib/{common-utils-qErzZAiR.mjs → common-utils-DMI8Yuhe.mjs} +5 -3
  22. package/lib/common-utils-DMI8Yuhe.mjs.map +1 -0
  23. package/lib/{component-dimensioning-DlB7-9Om.mjs → component-dimensioning-MtS9xiY-.mjs} +15 -15
  24. package/lib/{component-dimensioning-DlB7-9Om.mjs.map → component-dimensioning-MtS9xiY-.mjs.map} +1 -1
  25. package/lib/{component-raycast-helper-C6ptEb0K.mjs → component-raycast-helper-C1qWqpRH.mjs} +13 -9
  26. package/lib/component-raycast-helper-C1qWqpRH.mjs.map +1 -0
  27. package/lib/configurator-C5t3clCx.mjs +2 -0
  28. package/lib/{configurator-CRMunIq7.mjs → configurator-Cg1a9XSL.mjs} +4 -4
  29. package/lib/{configurator-CRMunIq7.mjs.map → configurator-Cg1a9XSL.mjs.map} +1 -1
  30. package/lib/{continuous-drawing-helper-BwulJHKj.mjs → continuous-drawing-helper-CQx5Sbns.mjs} +3 -3
  31. package/lib/{continuous-drawing-helper-BwulJHKj.mjs.map → continuous-drawing-helper-CQx5Sbns.mjs.map} +1 -1
  32. package/lib/{dat.gui.module-CZHqOVGq.mjs → dat.gui.module-CZ-DIWHM.mjs} +1 -1
  33. package/lib/{dat.gui.module-CZHqOVGq.mjs.map → dat.gui.module-CZ-DIWHM.mjs.map} +1 -1
  34. package/lib/{decorate-BAtqSPNS.mjs → decorate-Bck1_lG8.mjs} +1 -1
  35. package/lib/{decorate-BAtqSPNS.mjs.map → decorate-Bck1_lG8.mjs.map} +1 -1
  36. package/lib/dimensioning-helper-Bfe0fImX.mjs +2 -0
  37. package/lib/{dimensioning-helper--Y0Y-Wr1.mjs → dimensioning-helper-GPn7Z8GE.mjs} +7 -7
  38. package/lib/{dimensioning-helper--Y0Y-Wr1.mjs.map → dimensioning-helper-GPn7Z8GE.mjs.map} +1 -1
  39. package/lib/glb-viewer-DIEpkrvY.mjs +2 -0
  40. package/lib/{glb-viewer-CXEoIw1b.mjs → glb-viewer-tgKOPCaI.mjs} +44 -45
  41. package/lib/glb-viewer-tgKOPCaI.mjs.map +1 -0
  42. package/lib/highlight-coordinator-DRHeEU-E.mjs +116 -0
  43. package/lib/highlight-coordinator-DRHeEU-E.mjs.map +1 -0
  44. package/lib/{homag-intelligence-gb9MqBrz.mjs → homag-intelligence-D5mCTWgG.mjs} +19 -11
  45. package/lib/homag-intelligence-D5mCTWgG.mjs.map +1 -0
  46. package/lib/{imos-ix-poc-export-helper-CW7QZhhn.mjs → imos-ix-poc-export-helper-BKFs_Yhm.mjs} +5 -5
  47. package/lib/{imos-ix-poc-export-helper-CW7QZhhn.mjs.map → imos-ix-poc-export-helper-BKFs_Yhm.mjs.map} +1 -1
  48. package/lib/kernel-C7YDLxq8.mjs.map +1 -1
  49. package/lib/{kernel-utils-DCnHzW4n.mjs → kernel-utils-B80amC-l.mjs} +2 -2
  50. package/lib/{kernel-utils-DCnHzW4n.mjs.map → kernel-utils-B80amC-l.mjs.map} +1 -1
  51. package/lib/{layer-CFAr2mK_.mjs → layer-BfckfWZz.mjs} +1 -1
  52. package/lib/{layer-CFAr2mK_.mjs.map → layer-BfckfWZz.mjs.map} +1 -1
  53. package/lib/{main-BJZ9-cDk.mjs → main-CJ5TNhBt.mjs} +2518 -2554
  54. package/lib/main-CJ5TNhBt.mjs.map +1 -0
  55. package/lib/{material-viewer-D8Nmpwg0.mjs → material-viewer-DCqZzMZN.mjs} +40 -35
  56. package/lib/material-viewer-DCqZzMZN.mjs.map +1 -0
  57. package/lib/packages-DuOz6rk6.mjs +4 -0
  58. package/lib/{planner-5VarJrpy.mjs → planner-CSboZram.mjs} +3 -3
  59. package/lib/{planner-5VarJrpy.mjs.map → planner-CSboZram.mjs.map} +1 -1
  60. package/lib/planner-CWPqJktz.mjs +2 -0
  61. package/lib/{plugin-system-DInww4H_.mjs → plugin-system-DD0Z9Jvt.mjs} +3 -3
  62. package/lib/{plugin-system-DInww4H_.mjs.map → plugin-system-DD0Z9Jvt.mjs.map} +1 -1
  63. package/lib/{roomle-headless-setup-LoBO7UJe.mjs → roomle-headless-setup-nsoGENQV.mjs} +1 -1
  64. package/lib/{roomle-headless-setup-LoBO7UJe.mjs.map → roomle-headless-setup-nsoGENQV.mjs.map} +1 -1
  65. package/lib/roomle-headless.d.ts +252 -106
  66. package/lib/roomle-headless.js +20 -17
  67. package/lib/roomle-headless.js.map +1 -1
  68. package/lib/{roomle-renderer-DVlJsHYn.mjs → roomle-renderer-BEJNPCKx.mjs} +2 -2
  69. package/lib/roomle-renderer-BEJNPCKx.mjs.map +1 -0
  70. package/lib/roomle-sdk.d.ts +252 -106
  71. package/lib/roomle-sdk.js +6 -6
  72. package/lib/roomle-webgpu-renderer-D5flithq.mjs +1502 -0
  73. package/lib/roomle-webgpu-renderer-D5flithq.mjs.map +1 -0
  74. package/lib/{scene-renderer-BHZrQYAH.mjs → scene-renderer-Dm1kij1z.mjs} +26 -26
  75. package/lib/scene-renderer-Dm1kij1z.mjs.map +1 -0
  76. package/lib/{script-loader-gpkcl1h-.mjs → script-loader-DqaDm1FG.mjs} +3 -3
  77. package/lib/{script-loader-gpkcl1h-.mjs.map → script-loader-DqaDm1FG.mjs.map} +1 -1
  78. package/lib/static/packages/workers/generated/budgeteer.sw.js +1 -1
  79. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
  80. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCallback.d.ts +4 -4
  81. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCallback.js +7 -7
  82. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCallback.js.map +1 -1
  83. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.d.ts +28 -8
  84. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorUtils.js +27 -11
  85. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorUtils.js.map +1 -1
  86. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreCallback.d.ts +1 -1
  87. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreCallback.js +1 -1
  88. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreCallback.js.map +1 -1
  89. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.d.ts +37 -2
  90. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js +6 -1
  91. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js.map +1 -1
  92. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/loader/planElementManager.d.ts +4 -0
  93. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/loader/planElementManager.js +16 -1
  94. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/loader/planElementManager.js.map +1 -1
  95. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
  96. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js +4 -4
  97. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
  98. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
  99. package/lib/{stats-helper-Cv5SoEWT.mjs → stats-helper-D7a7oxnj.mjs} +3 -3
  100. package/lib/{stats-helper-Cv5SoEWT.mjs.map → stats-helper-D7a7oxnj.mjs.map} +1 -1
  101. package/lib/{three.core-mM-jZdgg.mjs → three.core-BmQnspOL.mjs} +819 -816
  102. package/lib/{three.core-mM-jZdgg.mjs.map → three.core-BmQnspOL.mjs.map} +1 -1
  103. package/lib/{three.module-Bmy3sVQ-.mjs → three.module-DkrZwaid.mjs} +455 -455
  104. package/lib/{three.module-Bmy3sVQ-.mjs.map → three.module-DkrZwaid.mjs.map} +1 -1
  105. package/lib/{three.webgpu-BbVYfCDp.mjs → three.webgpu-DLZjhIYv.mjs} +1517 -1517
  106. package/lib/{three.webgpu-BbVYfCDp.mjs.map → three.webgpu-DLZjhIYv.mjs.map} +1 -1
  107. package/lib/three.webgpu-RkQxSIwG.mjs +3 -0
  108. package/lib/{threejs-utils-Bq4pVWBA.mjs → threejs-utils-CrK_gp1x.mjs} +67 -63
  109. package/lib/threejs-utils-CrK_gp1x.mjs.map +1 -0
  110. package/lib/{tools-core-DqnhFefF.mjs → tools-core-CZWgXTFV.mjs} +3 -3
  111. package/lib/{tools-core-DqnhFefF.mjs.map → tools-core-CZWgXTFV.mjs.map} +1 -1
  112. package/package.json +1 -1
  113. package/lib/common-utils-qErzZAiR.mjs.map +0 -1
  114. package/lib/component-raycast-helper-C6ptEb0K.mjs.map +0 -1
  115. package/lib/component-raycast-helper-LrhRpeDD.mjs +0 -2
  116. package/lib/configurator-DqiW717d.mjs +0 -2
  117. package/lib/dimensioning-helper-BpUreWo2.mjs +0 -2
  118. package/lib/glb-viewer-CXEoIw1b.mjs.map +0 -1
  119. package/lib/glb-viewer-IDXgmONx.mjs +0 -2
  120. package/lib/homag-intelligence-gb9MqBrz.mjs.map +0 -1
  121. package/lib/main-BJZ9-cDk.mjs.map +0 -1
  122. package/lib/material-viewer-D8Nmpwg0.mjs.map +0 -1
  123. package/lib/packages-Uv53SHfb.mjs +0 -4
  124. package/lib/planner-DJcn-iih.mjs +0 -2
  125. package/lib/roomle-renderer-DVlJsHYn.mjs.map +0 -1
  126. package/lib/roomle-webgpu-renderer-CVxBRv6o.mjs +0 -217
  127. package/lib/roomle-webgpu-renderer-CVxBRv6o.mjs.map +0 -1
  128. package/lib/scene-renderer-BHZrQYAH.mjs.map +0 -1
  129. package/lib/three.webgpu-Bnp8Whu8.mjs +0 -3
  130. package/lib/threejs-utils-Bq4pVWBA.mjs.map +0 -1
@@ -3,6 +3,7 @@ import { BufferGeometry } from 'three';
3
3
  import { BufferGeometryEventMap } from 'three';
4
4
  import { Camera } from 'three';
5
5
  import { Color } from 'three';
6
+ import { ColorRepresentation } from 'three';
6
7
  import { CommunicationInterfaceCallback } from '../../../workers/src/communication-interface';
7
8
  import { ConstructionObjectDoorArchArray } from 'roomle-core-hsc/src/embind/plannerCoreInterface';
8
9
  import { createExtObjId } from '../../../../../common/src/utils/external-objects';
@@ -14,7 +15,6 @@ import { Euler } from 'three';
14
15
  import { ExtObjId } from '../../../common/src/utils/external-objects';
15
16
  import { ExtObjId as ExtObjId_2 } from '../../../../../common/src/utils/external-objects';
16
17
  import { Group } from 'three';
17
- import { GUI } from 'dat.gui';
18
18
  import { HiCallbacks } from '../../../../common/src/hi/hi-types';
19
19
  import { HiOrderData } from '../../../../common/src/hi/hi-types';
20
20
  import { HiOrderHeader } from '../../../../common/src/hi/hi-types';
@@ -31,6 +31,7 @@ import { Nullable as Nullable_2 } from '../../../../../common/src/utils/types';
31
31
  import { Object3D } from 'three';
32
32
  import { Object3DEventMap } from 'three';
33
33
  import { OrthographicCamera } from 'three';
34
+ import { ParametersGroup } from 'three/examples/jsm/inspector/tabs/Parameters.js';
34
35
  import { PerspectiveCamera } from 'three';
35
36
  import { PointLight } from 'three';
36
37
  import { Scene } from 'three';
@@ -308,7 +309,7 @@ export declare abstract class CameraBehaviour {
308
309
  private _cameraChangeListener;
309
310
  constructor(cameraControl: CameraControl, state: CameraBehaviourState);
310
311
  abstract get cameraControl(): CameraControl;
311
- protected get state(): CameraBehaviourState;
312
+ protected get state(): CameraBehaviourState | null;
312
313
  setCameraChangeListener(callback: () => void): void;
313
314
  removeCameraChangeListener(): void;
314
315
  protected _onCameraChanged(): void;
@@ -633,7 +634,7 @@ export declare class CeilingLight extends PointLight {
633
634
  constructor(debug: boolean, maxQualityLevel: QualityLevel);
634
635
  recalculatePower(amountOfLights: number): void;
635
636
  update(qualityLevel: QualityLevel): void;
636
- private _addDebugUI;
637
+ addDebugUI(ceilingLightsParameters: GenericGUIParamFolder): void;
637
638
  }
638
639
 
639
640
  export declare interface CheckDropDownEntry {
@@ -671,7 +672,7 @@ export declare interface CleanupOptions {
671
672
  export declare type ColorsIn3dScene = Record<RoomleColors, HexColorString | HexColorNumber>;
672
673
 
673
674
  export declare interface CommonConfiguratorKernelCallbackI {
674
- Editor3dComponentCreated(id: number, position: KernelVector3, eulerAngles: KernelVector3, isRootComponent: boolean, parentObjectRuntimeId: number): void;
675
+ Editor3dComponentCreated(componentDocking: KernelComponentDocking): void;
675
676
  Editor3dAddMesh(runtimeComponentId: number, meshId: number, geometryName: string, environmentGeometry: boolean, meshAttributes: KernelMeshAttributes, meshBuffer: KernelMeshBuffer): void;
676
677
  Editor3ChangedMesh(runtimeComponentId: number, meshId: number, geometryName: string, meshAttributes: KernelMeshAttributes): void;
677
678
  Editor3dRemoveMesh(runtimeComponentId: number, meshId: number): void;
@@ -679,7 +680,7 @@ export declare interface CommonConfiguratorKernelCallbackI {
679
680
  componentConfigurationUpdated(runtimeComponentId: number, geometryChanged: boolean): void;
680
681
  Editor3dBeginConstruction(componentId: number, isDeltaUpdate: boolean): void;
681
682
  Editor3dEndConstruction(id: number): void;
682
- Editor3dComponentDocked(componentId: number, isRootComponent: boolean, parentId: number, componentPosition: KernelVector3, componentRotation: KernelVector3): void;
683
+ Editor3dComponentDocked(componentDocking: KernelComponentDocking): void;
683
684
  Editor3dGeometryReady(id: number): void;
684
685
  Editor3dGeometryNotReady(id: number): void;
685
686
  componentDeleted(componentId: number): void;
@@ -943,7 +944,6 @@ export declare abstract class CommonKernelAccess implements LifeCycleCallbacks,
943
944
  loadComponent(componentIds: string[]): void;
944
945
  loadItemConfigurations(itemIds: string[]): Promise<void>;
945
946
  requestDeleteComponent(componentId: number): void;
946
- dockComponentWithPosition(parentId: number, parentDockId: number, childId: number, childDockId: number, position: KernelVector3): void;
947
947
  Editor3dAddMesh(runtimeComponentId: number, meshId: number, geometryName: string, environmentGeometry: boolean, meshAttributes: KernelMeshAttributes, meshBuffer: KernelMeshBuffer): void;
948
948
  Editor3ChangedMesh(runtimeComponentId: number, meshId: number, geometryName: string, meshAttributes: KernelMeshAttributes): void;
949
949
  Editor3dRemoveMesh(runtimeComponentId: number, meshId: number): void;
@@ -952,8 +952,8 @@ export declare abstract class CommonKernelAccess implements LifeCycleCallbacks,
952
952
  Editor3dChangedLightSource(runtimeComponentId: number, lightSourceId: number, lightSourceAttributes: KernelLightSourceAttributes): void;
953
953
  Editor3dBeginConstruction(id: number, isDeltaUpdate: boolean): void;
954
954
  Editor3dEndConstruction(id: number): void;
955
- Editor3dComponentCreated(id: number, position: KernelVector3, eulerAngles: KernelVector3, isRootComponent: boolean, parentObjectRuntimeId: number): void;
956
- Editor3dComponentDocked(componentId: number, isRootComponent: boolean, parentId: number, componentPosition: KernelVector3, componentRotation: KernelVector3): void;
955
+ Editor3dComponentCreated(componentDocking: KernelComponentDocking): void;
956
+ Editor3dComponentDocked(componentDocking: KernelComponentDocking): void;
957
957
  Editor3dGeometryReady(id: number): void;
958
958
  Editor3dGeometryNotReady(id: number): void;
959
959
  componentDeleted(componentId: number): void;
@@ -998,30 +998,6 @@ export declare class ComponentArray extends EmsArray<KernelComponent> {
998
998
  export declare class ComponentArray_2 extends EmsArray<KernelComponent> {
999
999
  }
1000
1000
 
1001
- export declare class ComponentRaycastHelper {
1002
- private _object;
1003
- private _camera;
1004
- private _raycaster;
1005
- private _nonTransparentComponent;
1006
- constructor();
1007
- init(object: Object3D, camera: PerspectiveCamera): void;
1008
- setCamera(camera: PerspectiveCamera): void;
1009
- setObject(object: Object3D): void;
1010
- changeMaterialsOnSelect(object: Object3D, component: RoomleComponent | null, selected?: boolean, callback?: () => void): void;
1011
- private _changeMaterialsOnSelect;
1012
- isComponentVisible(component: RoomleComponent): boolean;
1013
- checkComponentAndPreviewVisibility(sceneEventHandler: ConfiguratorSceneEventHandler, configuratorViewModel: ConfiguratorViewModel): void;
1014
- checkComponentVisibility(sceneEventHandler: ConfiguratorSceneEventHandler, configuratorViewModel: ConfiguratorViewModel): void;
1015
- areAllPreviewsVisible(configuratorViewModel: ConfiguratorViewModel): boolean;
1016
- areAllComponentsInFrustum(previews: RoomleComponent[]): boolean;
1017
- checkPreviewVisibility(configuratorViewModel: ConfiguratorViewModel): void;
1018
- isComponentMeasurementLabelOccluded(labelWorldPos: Vector3, component: RoomleComponent): boolean;
1019
- checkMultipleLabelOcclusion(labelPositions: Array<{
1020
- id: string;
1021
- worldPos: Vector3;
1022
- }>, component: RoomleComponent): Set<string>;
1023
- }
1024
-
1025
1001
  export declare type ComponentType = 'preview' | 'component';
1026
1002
 
1027
1003
  export declare type ConfigForPlugin<P extends PluginName> = PluginConfigMap[P];
@@ -1284,7 +1260,7 @@ export declare class ConfiguratorKernelAccess extends CommonKernelAccess {
1284
1260
  private _updatePlanObjectChildren;
1285
1261
  updatePlanObjectDependencies(planObjectId: number): void;
1286
1262
  private _updateConfigurationHasChildren;
1287
- dockComponent(parentId: number, parentDockId: number, childId: number, childDockId: number): void;
1263
+ dockComponent(parentId: number, parentDockId: number, childId: number, childDockId: number, position?: KernelVector3): void;
1288
1264
  changeUseOfHDGeometry(context: ConfiguratorContext, useHDGeometry: boolean): void;
1289
1265
  webGlPreviewDockings(context: ConfiguratorContext, dragIn: boolean): void;
1290
1266
  webGlPreviewDockingsForPlanObject(planObjectId: number, possibleChild: PossibleChildPreviewElement, dragIn: boolean): void;
@@ -1329,13 +1305,13 @@ export declare class ConfiguratorKernelAccess extends CommonKernelAccess {
1329
1305
  meshId: string;
1330
1306
  quality: number;
1331
1307
  }>): Promise<void>;
1332
- Editor3dComponentCreated(id: number, position: KernelVector3, eulerAngles: KernelVector3, isRootComponent: boolean, parentId: number): void;
1308
+ Editor3dComponentCreated(componentDocking: KernelComponentDocking): void;
1333
1309
  Editor3dPlanObjectConstructionDone(planObjectId: number): void;
1334
1310
  Editor3dBeginGroup(): void;
1335
1311
  Editor3dEndGroup(): void;
1336
1312
  Editor3dSetMaterial(): void;
1337
1313
  Editor3dLoadMaterial(): void;
1338
- Editor3dAddDockPreview(componentId: number, previewId: number): void;
1314
+ Editor3dAddDockPreview(componentId: number, previewId: number, componentType: KernelComponentType): void;
1339
1315
  Editor3dSetPreviewAssociations(dockPairs: KernelDockPairPreview[], previewId: number): void;
1340
1316
  Editor3dPreviewConstructionDone(componentId: number, objectId: number): void;
1341
1317
  Editor3dTranslateBy(): void;
@@ -1388,11 +1364,11 @@ export declare interface ConfiguratorKernelCallbackI extends CommonConfiguratorK
1388
1364
  planObjectUpdated(planObject: PlanObjectKernel, pendingDocking: boolean): void;
1389
1365
  planObjectConfigurationUpdated(planObjectId: number, configuration: ConfigurationString, hash: string, pendingDocking: boolean): void;
1390
1366
  configurationLoaded(conversationId: number, objectId: number, componentId: number, hash: string, errors: any, isFreeFlying: boolean): void;
1391
- Editor3dAddDockPreview(componentId: number, previewId: number): void;
1367
+ Editor3dAddDockPreview(componentId: number, previewId: number, componentType: KernelComponentType): void;
1392
1368
  Editor3dSetPreviewAssociations(dockPairs: KernelDockPairPreview[], previewId: number): void;
1393
1369
  Editor3dPreviewConstructionDone(componentId: number, objectId: number): void;
1394
1370
  Editor3dPlanObjectConstructionDone(planObjectId: number): void;
1395
- Editor3dComponentDocked(componentId: number, isRootComponent: boolean, parentObjectRuntimeId: number, componentPosition: KernelVector3, componentRotation: KernelVector3): void;
1371
+ Editor3dComponentDocked(componentDocking: KernelComponentDocking): void;
1396
1372
  finishParameterChange(resolve: () => void, reject: () => void): void;
1397
1373
  updateAnimationParameters(elementId: number | number[], parameters: KernelParameter[]): void;
1398
1374
  changeAnimationValue(elementId: number, parameterKey: string, value: string, level: number, animationLevel: AnimationLevelType, animate: boolean): void;
@@ -1411,7 +1387,6 @@ export declare interface ConfiguratorKernelClass {
1411
1387
  updateConfiguration(kernelConversationId: number, objectOrComponentId: number, serializedConfiguration: string): void;
1412
1388
  loadPlainComponent(conversationId: number, componentId: RapiId, configuration: ConfigurationString): void;
1413
1389
  loadFreeFlyingConfiguration(conversationId: number, configuration: ConfigurationString): void;
1414
- loadFreeFlyingExternalObject(conversationId: number, targetObjectId: number, serializedConfiguration: string): void;
1415
1390
  requestComponentDockPreview(targetObjectId: number, componentId: string, serializedComponent: string, dragIn: boolean, allowInsertInBetween: boolean): void;
1416
1391
  requestItemDockPreview(targetObjectId: number, serializedConfiguration: string, dragIn: boolean, allowInsertInBetween: boolean): void;
1417
1392
  requestExternalObjectDockPreview(targetObjectId: number, articleId: string, dragIn: boolean, allowInsertInBetween: boolean): void;
@@ -1433,9 +1408,9 @@ export declare interface ConfiguratorKernelClass {
1433
1408
  getPlanObjectParameters(planObjectId: number): KernelParameter[];
1434
1409
  getPlanObjectAnimations(planObjectId: number): KernelAnimation[];
1435
1410
  setPlanObjectParameter(planObjectId: number, parameterKey: string, value: string): void;
1436
- dockComponent(childId: number, childDockId: number, parentId: number, parentDockId: number): void;
1437
- dockComponentWithPosition(childId: number, childDockId: number, parentId: number, parentDockId: number, position: KernelVector3): void;
1411
+ dockComponent(childId: number, childDockId: number, parentId: number, parentDockId: number, position?: KernelVector3): void;
1438
1412
  getComponent(componentId: number): KernelComponent;
1413
+ getComponentBounds(componentId: number, animationValues: string[]): KernelAssembledObjectBounds;
1439
1414
  getComponentId(componentId: number): RapiId;
1440
1415
  isExternalPlanObject(objectOrPlanComponentId: number): boolean;
1441
1416
  getComponentOrModuleInformation(objectOrPlanComponentId: number): KernelObjectInformation;
@@ -1550,6 +1525,7 @@ export declare class ConfiguratorSceneEventHandler extends SceneEventHandler<Sce
1550
1525
  private _hoverOffPreview;
1551
1526
  private _hoverOnPreviewLine;
1552
1527
  private _hoverMovePreviewLine;
1528
+ private _updatePositionForPreview;
1553
1529
  private _updatePositionForPreviewLine;
1554
1530
  private _hoverOffPreviewLine;
1555
1531
  private _setDragComponentShadow;
@@ -1571,7 +1547,7 @@ export declare class ConfiguratorSceneEventHandler extends SceneEventHandler<Sce
1571
1547
  setCamera(camera: Camera): void;
1572
1548
  setObject(object: Object3D): void;
1573
1549
  private _findComponentToBeSelected;
1574
- private isSiblingSelected;
1550
+ private getRootComponent;
1575
1551
  }
1576
1552
 
1577
1553
  export declare class ConfiguratorSceneManager extends SceneManager implements ConfiguratorViewModelCallbackI {
@@ -1588,7 +1564,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1588
1564
  protected _globalInitData: GlobalInitData;
1589
1565
  protected _viewModel: ConfiguratorViewModel;
1590
1566
  private _componentFactory;
1591
- protected _componentRaycastHelper: ComponentRaycastHelper;
1567
+ protected _highlightHelper: HighlightHelper;
1592
1568
  private _dimensionHelper;
1593
1569
  private _uiIntersectionHelper;
1594
1570
  private _sceneEventHandler;
@@ -1733,6 +1709,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1733
1709
  private _removeCustomComponentDimensions;
1734
1710
  clearHighlighting(): void;
1735
1711
  getExternalSubArticles(_id: number): PosArticle[];
1712
+ protected _updateHighlightHelper(object?: Object3D | null): void;
1736
1713
  }
1737
1714
 
1738
1715
  export declare class ConfiguratorUiCallbacks extends UiCallback implements ConfiguratorDebugCallbacks {
@@ -2059,19 +2036,19 @@ export declare class ConfiguratorViewModel implements ConfiguratorKernelCallback
2059
2036
  private _removeLightSourceFromComponent;
2060
2037
  private _addLightSourceToComponent;
2061
2038
  private _changeLightSourceOfComponent;
2062
- getComponent(componentId: number): RoomleComponent;
2063
- getNumberOfPossibleChildrenForComponent(componentId: number): number;
2039
+ getComponent(componentId: number): RoomleComponent | null;
2040
+ getNumberOfPossibleChildrenForComponent(componentId: number): number | undefined;
2064
2041
  tryToMergeComponents(): void;
2065
2042
  private _requestMergeComponents;
2066
2043
  private _mergeNextComponent;
2067
2044
  private _mergeComponent;
2068
2045
  protected _addComponent(component: RoomleComponent): void;
2069
2046
  removeDockingComponent(): void;
2070
- protected dockComponent(componentId: number, isRootComponent: boolean, parentId: number, componentPosition: KernelVector3, componentRotation: KernelVector3): void;
2047
+ protected dockComponent(componentDocking: KernelComponentDocking): void;
2071
2048
  dockComponentWithPosition(previewComponent: PreviewLineComponent, component?: RoomleComponent): void;
2072
2049
  removePreviews(): void;
2073
2050
  private _updatePlanObject;
2074
- Editor3dAddDockPreview(componentId: number, previewId: number): void;
2051
+ Editor3dAddDockPreview(componentId: number, previewId: number, componentType: KernelComponentType): void;
2075
2052
  Editor3dAddMesh(runtimeComponentId: number, meshId: number, geometryName: string, environmentGeometry: boolean, meshAttributes: KernelMeshAttributes, meshBuffer: KernelMeshBuffer): void;
2076
2053
  Editor3ChangedMesh(runtimeComponentId: number, meshId: number, geometryName: string, meshAttributes: KernelMeshAttributes): void;
2077
2054
  Editor3dRemoveMesh(runtimeComponentId: number, meshId: number): void;
@@ -2079,8 +2056,8 @@ export declare class ConfiguratorViewModel implements ConfiguratorKernelCallback
2079
2056
  Editor3dAddLightSource(runtimeComponentId: number, lightSourceId: number, lightSourceAttributes: KernelLightSourceAttributes): void;
2080
2057
  Editor3dChangedLightSource(runtimeComponentId: number, lightSourceId: number, lightSourceAttributes: KernelLightSourceAttributes): void;
2081
2058
  Editor3dBeginConstruction(componentId: number, isDeltaUpdate: boolean): void;
2082
- Editor3dComponentCreated(id: number, position: KernelVector3, eulerAngles: KernelVector3, isRootComponent: boolean, parentObjectRuntimeId: number): void;
2083
- Editor3dComponentDocked(componentId: number, isRootComponent: boolean, parentId: number, componentPosition: KernelVector3, componentRotation: KernelVector3): void;
2059
+ Editor3dComponentCreated(componentDocking: KernelComponentDocking): void;
2060
+ Editor3dComponentDocked(componentDocking: KernelComponentDocking): void;
2084
2061
  Editor3dEndConstruction(id: number): void;
2085
2062
  Editor3dGeometryReady(id: number): void;
2086
2063
  Editor3dGeometryNotReady(id: number): void;
@@ -2114,7 +2091,7 @@ export declare class ConfiguratorViewModel implements ConfiguratorKernelCallback
2114
2091
  setGeometriesMergedListener(fun: () => void): void;
2115
2092
  removeGeometriesMergedListener(): void;
2116
2093
  setMergeThreshold(threshold: number): void;
2117
- protected _generateMesh(runtimeComponentId: number, geometryId: string | null, materialId: string | null, vertices: Float32Array, indices: Int32Array, uvCoords: Float32Array, normals: Float32Array, _type?: KernelEnum, _newGeometryInstance?: boolean, materialAttributes?: Record<string, string>): Mesh;
2094
+ protected _generateMesh(runtimeComponentId: number | undefined, geometryId: string | null | undefined, materialId: string | null, vertices: Float32Array, indices: Int32Array, uvCoords: Float32Array, normals: Float32Array, _type?: KernelEnum, _newGeometryInstance?: boolean, materialAttributes?: Record<string, string>): Mesh;
2118
2095
  protected _setMaterial(mesh: Mesh, material: any, _type?: KernelEnum): void;
2119
2096
  constructComponents(planObjectId: number): void;
2120
2097
  requestSubPartConstruction(partId: number): Promise<Mesh>;
@@ -2259,6 +2236,12 @@ export declare const CORE_PLAN_COMPONENT_TYPE: {
2259
2236
  readonly SUB_ARTICLE: 4;
2260
2237
  };
2261
2238
 
2239
+ export declare const CORE_SNAP_STATE: {
2240
+ readonly DEFAULT: 0;
2241
+ readonly DOCKING: 1;
2242
+ readonly COLLISION: 2;
2243
+ };
2244
+
2262
2245
  export declare const CORE_TYPE_OF_CORE_ID: {
2263
2246
  readonly CONFIGURATOR: 0;
2264
2247
  readonly PLANNER: 1;
@@ -2648,7 +2631,7 @@ export declare abstract class Environment {
2648
2631
  updateCamera(_camera: PerspectiveCamera): void;
2649
2632
  abstract addToScene(): void;
2650
2633
  abstract removeFromScene(): void;
2651
- abstract showGUI(updateCallback: () => void): void;
2634
+ abstract showGUI(sceneParameters: GenericGUIParamFolder): void;
2652
2635
  reload(): void;
2653
2636
  updateBounds(bounds: Vector3, _force?: boolean): void;
2654
2637
  cleanUp(): void;
@@ -2980,11 +2963,19 @@ export declare interface ExternalObjectAPI {
2980
2963
  export declare interface ExternalObjectApiConfiguration {
2981
2964
  loadExternalObjectsFromPlan?: boolean;
2982
2965
  enableArrangementCorrection?: boolean;
2966
+ enableVerticalDocking?: boolean;
2983
2967
  providePossibleChildren?: boolean;
2984
2968
  uiConfiguration?: ExternalObjectUiConfiguration;
2985
2969
  materialConfiguration?: ExternalObjectMaterialConfiguration;
2986
2970
  debugConfiguration?: ExternalObjectDebugConfiguration;
2987
2971
  overlayUiDrawer?: boolean;
2972
+ transparentHighlighting?: boolean;
2973
+ maximumCatalogLevel?: number;
2974
+ }
2975
+
2976
+ export declare interface ExternalObjectContextDataItem {
2977
+ contextData: ExternalObjectRootModuleContextData;
2978
+ rootModuleId: string;
2988
2979
  }
2989
2980
 
2990
2981
  export declare interface ExternalObjectContour {
@@ -2996,12 +2987,23 @@ export declare interface ExternalObjectDebugConfiguration {
2996
2987
  createDebugGeometry?: boolean;
2997
2988
  }
2998
2989
 
2990
+ export declare interface ExternalObjectDockedContext {
2991
+ dockedRoots: ExternalObjectDockedRootModule[];
2992
+ ownDockingVector: string;
2993
+ }
2994
+
2995
+ export declare interface ExternalObjectDockedRootModule {
2996
+ dockingVector: string;
2997
+ id: string;
2998
+ }
2999
+
2999
3000
  export declare interface ExternalObjectGroup {
3000
3001
  groupId: string;
3001
3002
  pos: number[];
3002
3003
  rotationY?: number;
3003
3004
  rootModules?: ExternalObjectRootModule[];
3004
3005
  contours?: ExternalObjectContour[];
3006
+ contextData?: ExternalObjectContextDataItem[];
3005
3007
  }
3006
3008
 
3007
3009
  export declare interface ExternalObjectLoadConfiguration {
@@ -3041,6 +3043,10 @@ export declare interface ExternalObjectRootModule {
3041
3043
  rotationY?: number;
3042
3044
  }
3043
3045
 
3046
+ export declare interface ExternalObjectRootModuleContextData {
3047
+ dockedRoots: ExternalObjectDockedContext[];
3048
+ }
3049
+
3044
3050
  export declare interface ExternalObjectSegment {
3045
3051
  cmd: string;
3046
3052
  x: number;
@@ -3155,6 +3161,7 @@ export declare interface FeatureFlags {
3155
3161
  /* Excluded from this release type: interiorLights */
3156
3162
  /* Excluded from this release type: advancedDimensioning */
3157
3163
  /* Excluded from this release type: webGpu */
3164
+ /* Excluded from this release type: advancedHighlighting */
3158
3165
  }
3159
3166
 
3160
3167
  export declare interface FetchOptions {
@@ -3206,6 +3213,20 @@ export declare class FloorPlanElementViewModel extends PlanElementViewModel {
3206
3213
  private calculateTextVisibility;
3207
3214
  }
3208
3215
 
3216
+ /**
3217
+ * Minimal structural type that both dat.gui `GUI` folders (WebGL) and three.js
3218
+ * `ParametersGroup` (WebGPU) satisfy, this allows building
3219
+ * debug GUIs without coupling to a specific backend.
3220
+ *
3221
+ * `any` is intentional here — the two libraries have genuinely incompatible
3222
+ * generic signatures that cannot be unified without it.
3223
+ */
3224
+ export declare interface GenericGUIParamFolder {
3225
+ add(object: any, property: string, ...args: any[]): any;
3226
+ addColor(object: any, property: string): any;
3227
+ addFolder(name: string): GenericGUIParamFolder;
3228
+ }
3229
+
3209
3230
  export declare type GenericRoomleRenderer = RoomleRenderer<WebGLRenderer | WebGPURenderer>;
3210
3231
 
3211
3232
  export declare const enum GEOMETRY {
@@ -3382,7 +3403,7 @@ export declare interface GlueLogic {
3382
3403
  updateProperty(rootModuleId?: string, propertyName?: string, propertyValue?: string | number | boolean): void;
3383
3404
  findValidSubArticles(posGroupIds: string[] | string): PosArticle[];
3384
3405
  getValidContainerModulesForSubArticle(posGroupIds: string[] | string, subArticleId: string): ExternalObjectValidContainerModules[];
3385
- addSubArticle(articleId: string, rootModuleId: string, parentModuleId: string): void;
3406
+ addSubArticle(articleId: string, rootModuleId: string, parentModuleId: string, insertPosition?: number[]): void;
3386
3407
  deleteSubArticles(groupId: string, subModuleId: string[] | string): Promise<void>;
3387
3408
  arrangeRootModulesOfGroup(changedGroup: ExternalObjectGroup): Promise<void>;
3388
3409
  changedGroupPlanningSituation(changedGroup: ExternalObjectGroup, objectPositionChanged: boolean): Promise<void>;
@@ -3459,6 +3480,18 @@ export declare type HiAttributeOptionsResult = CheckDropDownResult | CheckDropDo
3459
3480
 
3460
3481
  export declare type HiContextAction = (typeof HI_CONTEXT_ACTION)[keyof typeof HI_CONTEXT_ACTION];
3461
3482
 
3483
+ export declare interface HighlightHelper {
3484
+ init(object: Object3D, camera: PerspectiveCamera): void;
3485
+ setCamera(camera: PerspectiveCamera): void;
3486
+ setObject(object: Object3D | null): void;
3487
+ cancelDocking(object: Object3D, callback?: () => void): void;
3488
+ checkComponentAndPreviewVisibility(sceneEventHandler: ConfiguratorSceneEventHandler, configuratorViewModel: ConfiguratorViewModel): void;
3489
+ checkComponentVisibility(sceneEventHandler: ConfiguratorSceneEventHandler, configuratorViewModel: ConfiguratorViewModel): void;
3490
+ checkPreviewVisibility(configuratorViewModel: ConfiguratorViewModel): void;
3491
+ areAllComponentsInFrustum(previews: RoomleComponent[]): boolean;
3492
+ onSelectionChanged(object: Object3D, componentIds: number[], callback?: () => void): void;
3493
+ }
3494
+
3462
3495
  export declare type HiLoadObjectReason = (typeof HI_LOAD_OBJECT_REASON)[keyof typeof HI_LOAD_OBJECT_REASON];
3463
3496
 
3464
3497
  export declare interface HiObjectSelectionApi {
@@ -3477,6 +3510,7 @@ export declare class HiTagCatalogCallbacks implements Context {
3477
3510
  private _externalItems;
3478
3511
  private _externalConfigurations;
3479
3512
  private _tagIds;
3513
+ private _initData;
3480
3514
  private _globalCallback;
3481
3515
  private _configuratorViewModel;
3482
3516
  constructor(creator: string, articles: Promise<any>);
@@ -3614,7 +3648,7 @@ export declare class ImageRenderer implements Context {
3614
3648
  */
3615
3649
  private _renderImageFrameWithCleanScene;
3616
3650
  private _compositeWithDimensions;
3617
- prepareThumbnailImage(scene: Scene, viewModel: PlanViewModel, cameraBehaviour: CameraBehaviour, perspectiveOffsetCamera: PerspectiveCamera, options: PrepareImageOptionsPlanner, onAfterRender: () => void): Promise<Base64Image>;
3651
+ prepareThumbnailImage(scene: Scene, viewModel: PlanViewModel, cameraBehaviour: CameraBehaviour, perspectiveOffsetCamera: PerspectiveCamera, options: PrepareImageOptionsPlanner | undefined, onAfterRender: () => void): Promise<Base64Image>;
3618
3652
  private _renderImageFrame;
3619
3653
  }
3620
3654
 
@@ -3647,8 +3681,8 @@ export declare class InitData implements Context, Omit<InitDataDefinition, 'colo
3647
3681
  disableDebugGUI?: boolean;
3648
3682
  disableEnvMap?: boolean;
3649
3683
  envMapUrl?: string;
3650
- envMapIntensity?: number;
3651
- envMapRotation?: number;
3684
+ envMapIntensity: number;
3685
+ envMapRotation: number;
3652
3686
  maxLightSources?: number;
3653
3687
  legacyLight?: boolean;
3654
3688
  sceneLight?: DefaultEnvironmentSceneType;
@@ -3904,6 +3938,11 @@ export declare interface KernelAnimationAction {
3904
3938
  type: string;
3905
3939
  }
3906
3940
 
3941
+ export declare interface KernelAssembledObjectBounds {
3942
+ boundingBox: KernelCube;
3943
+ parts: KernelObjectBounds[];
3944
+ }
3945
+
3907
3946
  export declare interface KernelAttic extends KernelObject {
3908
3947
  getFrom(): NodePlanObject;
3909
3948
  getTo(): NodePlanObject;
@@ -3952,7 +3991,7 @@ export declare interface KernelComponent {
3952
3991
  rotation: KernelVector3;
3953
3992
  globalTransform: KernelMatrix4;
3954
3993
  boxForMeasurement: KernelCube;
3955
- geometryBounds: KernelCube[];
3994
+ geometryBounds: KernelAssembledObjectBounds;
3956
3995
  parameters: KernelParameter[];
3957
3996
  parameterGroups: KernelParameterGroup[];
3958
3997
  possibleChildren: KernelPossibleChild[];
@@ -3963,6 +4002,15 @@ export declare interface KernelComponent {
3963
4002
  childAnimationTransformations: ComponentAnimationTransformation[];
3964
4003
  }
3965
4004
 
4005
+ export declare interface KernelComponentDocking {
4006
+ componentId: number;
4007
+ isRootComponent: boolean;
4008
+ parentId: number;
4009
+ position: KernelVector3;
4010
+ rotation: KernelVector3;
4011
+ type: KernelComponentType;
4012
+ }
4013
+
3966
4014
  export declare interface KernelComponentType {
3967
4015
  value: Enumify<typeof CORE_PLAN_COMPONENT_TYPE>;
3968
4016
  }
@@ -4011,6 +4059,14 @@ export declare interface KernelEnum {
4011
4059
  value: number;
4012
4060
  }
4013
4061
 
4062
+ export declare interface KernelExtrudedRectangle {
4063
+ angle: number;
4064
+ bottomCenter: KernelVector3;
4065
+ eulerRotation: KernelVector3;
4066
+ size: KernelVector3;
4067
+ readonly cornerPoints: EmsArray<KernelVector3>;
4068
+ }
4069
+
4014
4070
  export declare interface KernelFloor extends KernelObject {
4015
4071
  area: number;
4016
4072
  material: KernelFloorMaterial;
@@ -4100,6 +4156,11 @@ export declare interface KernelObject {
4100
4156
  getId(): number;
4101
4157
  }
4102
4158
 
4159
+ export declare interface KernelObjectBounds {
4160
+ boundingBox: KernelCube;
4161
+ rectangleBox: KernelExtrudedRectangle;
4162
+ }
4163
+
4103
4164
  export declare interface KernelObjectConfiguration {
4104
4165
  runtimeId: number;
4105
4166
  serializedDefinition: string;
@@ -4310,7 +4371,7 @@ export declare class KernelViewModel {
4310
4371
  protected _coreReference: KernelObject | null;
4311
4372
  constructor(reference: KernelObject);
4312
4373
  clearReference(): void;
4313
- getKernelObject(): KernelObject;
4374
+ getKernelObject(): KernelObject | null;
4314
4375
  }
4315
4376
 
4316
4377
  export declare interface KernelViewType {
@@ -4359,7 +4420,7 @@ export declare interface LibraryData {
4359
4420
  solveModuleAttributeConflict(module: PosModuleData, attributeName: string, value: string | number | boolean): PosModuleAttribute[] | undefined;
4360
4421
  getValidSubArticles(calculatedPosGroup: PosGroup, articles: PosArticle[], masterData: MasterData): PosArticle[];
4361
4422
  getValidContainerModulesForSubArticle(calculatedPosGroup: PosGroup, subArticle: PosArticle, masterData: MasterData): ExternalObjectValidContainerModules[];
4362
- addSubArticle(targetPosGroup: PosGroup, article: PosArticle, rootId: string, parentModuleId: string): PosGroup;
4423
+ addSubArticle(targetPosGroup: PosGroup, article: PosArticle, rootId: string, parentModuleId: string, insertPosition?: number[]): PosGroup;
4363
4424
  deleteSubArticle(targetPosGroup: PosGroup, rootId: string, articleModuleId: string): PosGroup;
4364
4425
  }
4365
4426
 
@@ -4385,7 +4446,7 @@ export declare class LightCache {
4385
4446
  allowedToSpawnMoreLights(): boolean;
4386
4447
  addActiveLight(light: Light): void;
4387
4448
  cacheLight(light: Light): void;
4388
- getLightFromCache(type: KernelLightSourceType): Light;
4449
+ getLightFromCache(type: KernelLightSourceType): Light | null;
4389
4450
  clear(): void;
4390
4451
  private _setMaximumLights;
4391
4452
  }
@@ -4414,7 +4475,7 @@ export declare abstract class LightSetting {
4414
4475
  abstract addToScene(): void;
4415
4476
  abstract removeFromScene(): void;
4416
4477
  abstract reload(): void;
4417
- abstract showGUI(): void;
4478
+ abstract showGUI(sceneParameters: GenericGUIParamFolder): void;
4418
4479
  getCameraContainer(): Object3D;
4419
4480
  }
4420
4481
 
@@ -4867,6 +4928,11 @@ export declare interface ObjectMeasurementsTransferable {
4867
4928
  objectToWallsMeasurements: ObjectToWallDimensionTransferable[];
4868
4929
  }
4869
4930
 
4931
+ export declare interface ObjectSnapInformation {
4932
+ geometryHelpLines: GeometryHelpLineArray;
4933
+ snapState: SnapState;
4934
+ }
4935
+
4870
4936
  export declare type ObjectToWallDimensionTransferable = DimensionDefinition<Position2, Position3>;
4871
4937
 
4872
4938
  export declare interface ObjectToWallLine {
@@ -4889,6 +4955,11 @@ export declare interface OffsetCamera {
4889
4955
  export declare interface OrthographicOffsetCamera extends OrthographicCamera, OffsetCamera {
4890
4956
  }
4891
4957
 
4958
+ export declare interface OutlineCustomParameters {
4959
+ outlineVisibleEdgeColor: ColorRepresentation;
4960
+ outlineHiddenEdgeColor: ColorRepresentation;
4961
+ }
4962
+
4892
4963
  export declare const enum PARAMETER_KERNEL_TYPE {
4893
4964
  UNKNOWN = "",
4894
4965
  INTEGER = "Integer",
@@ -5243,7 +5314,7 @@ export declare interface PlanModelViewHelper_2 {
5243
5314
  getExternalObjectGroups(plan: Plan_2): KernelObjectConfigurationArray;
5244
5315
  getExternalRoomInformation(plan: Plan_2): RoomInformation;
5245
5316
  calculateLightSourceDistribution(plan: Plan_2, lightSourceConfiguration: LightSourceConfiguration): RoomLightSourceDistributionArray;
5246
- getObjectGeometryHelpLines(anObject: PlanObject, debugHelpLines: boolean): GeometryHelpLineArray;
5317
+ getObjectSnapInformation(anObject: PlanObject, debugHelpLines: boolean): ObjectSnapInformation;
5247
5318
  }
5248
5319
 
5249
5320
  export declare class Planner<P extends readonly PluginName[] = readonly []> extends Main {
@@ -5352,7 +5423,7 @@ export declare class PlannerKernelAccess extends ConfiguratorKernelAccess {
5352
5423
  constructor(creator: string);
5353
5424
  protected _loadSuccess(): void;
5354
5425
  protected _loadError(): void;
5355
- get homagIntelligence(): HomagIntelligence;
5426
+ get homagIntelligence(): HomagIntelligence | null;
5356
5427
  setHomagIntelligence(homagIntelligence: HomagIntelligence | null): void;
5357
5428
  private _createPlanInteractionHandler;
5358
5429
  addPlannerListener(listener: PlannerKernelCallbackI): void;
@@ -5398,7 +5469,7 @@ export declare class PlannerKernelAccess extends ConfiguratorKernelAccess {
5398
5469
  externalObjectComponentSplitOff(plan: Plan_2, planObject: PlanObject, splitGroups: ExternalObjectGroup[]): void;
5399
5470
  externalObjectArrangementChanged(plan: Plan_2, planObject: PlanObject, changedGroup: ExternalObjectGroup): void;
5400
5471
  externalObjectRequestAddOnContainers(plan: Plan_2, planObject: PlanObject, groupId: string, subArticleId: string): void;
5401
- externalObjectAddSubArticle(plan: Plan_2, planObject: PlanObject, subArticleId: string, rootModuleId: string, parentModuleId: string): void;
5472
+ externalObjectAddSubArticle(plan: Plan_2, planObject: PlanObject, subArticleId: string, rootModuleId: string, parentModuleId: string, insertPosition?: number[]): void;
5402
5473
  externalObjectRemoveSubModule(plan: Plan_2, planObject: PlanObject, groupId: string, subModuleId: string): void;
5403
5474
  planObjectConfigurationLoaded(plan: Plan_2, element: PlanElement_2, success: boolean): Promise<void>;
5404
5475
  planObjectConfigurationChanged(plan: Plan_2, object: PlanObject): void;
@@ -5462,7 +5533,7 @@ export declare interface PlannerKernelCallbackI {
5462
5533
  stoppedDrawing(): void;
5463
5534
  requestCatalogItem(catalogItemId: string): void;
5464
5535
  externalObjectRequestAddOnContainers(groupId: string, subArticleId: string): void;
5465
- externalObjectAddSubArticle(subArticleId: string, rootModuleId: string, parentModuleId: string): void;
5536
+ externalObjectAddSubArticle(subArticleId: string, rootModuleId: string, parentModuleId: string, insertPosition?: number[]): void;
5466
5537
  externalObjectRemoveSubModule(groupId: string, subModuleId: string): void;
5467
5538
  }
5468
5539
 
@@ -5563,7 +5634,7 @@ export declare class PlannerSceneEventHandler extends SceneEventHandler<SceneEve
5563
5634
  disable(): void;
5564
5635
  get planInteractionHandler(): PlanInteractionHandler;
5565
5636
  get planModelViewHelper(): PlanModelViewHelper_2;
5566
- get hoveredObjectId(): number;
5637
+ get hoveredObjectId(): number | null;
5567
5638
  get isCurrentlyDrawing(): boolean;
5568
5639
  enable(): void;
5569
5640
  enableConstructionEvents(enable: boolean): void;
@@ -5773,6 +5844,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
5773
5844
  protected _updateConfigurationFromHistory(configurationString: string): Promise<void>;
5774
5845
  setMode(mode: Enumify_3<typeof CAMERA_TYPE>): void;
5775
5846
  private _clearHighlighting;
5847
+ updateHighlightingOfPlanElements(): void;
5776
5848
  highlightPlanElementsById(runtimeIds: number[] | null): void;
5777
5849
  highlightPlanElementById(runtimeId: number | null): void;
5778
5850
  destroy(): void;
@@ -5809,8 +5881,8 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
5809
5881
  enableAdvancedDocking(): void;
5810
5882
  disableAdvancedDocking(): void;
5811
5883
  isEnabledChildObjectMode(planElementViewModel: PlanElementViewModel): boolean;
5812
- enableChildObjects(planElementViewModel: PlanElementViewModel): KernelObject;
5813
- disableChildObjects(planElementViewModel: PlanElementViewModel): KernelObject;
5884
+ enableChildObjects(planElementViewModel: PlanElementViewModel): KernelObject | null;
5885
+ disableChildObjects(planElementViewModel: PlanElementViewModel): KernelObject | null;
5814
5886
  dragIn(dragEvent: DragEvent): void;
5815
5887
  getPositionForDragEvent(dragEvent: DragEvent | TouchEvent): Vector3 | null;
5816
5888
  getPlannerSceneEventHandler(): PlannerSceneEventHandler;
@@ -5887,7 +5959,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
5887
5959
  insertRapiObjects(rapiIds: InsertItemIdInfo[]): Promise<InsertItemResult[]>;
5888
5960
  private _saveConfiguration;
5889
5961
  externalObjectRequestAddOnContainers(groupId: string, subArticleId: string): Promise<void>;
5890
- externalObjectAddSubArticle(subArticleId: string, rootModuleId: string, parentModuleId: string): void;
5962
+ externalObjectAddSubArticle(subArticleId: string, rootModuleId: string, parentModuleId: string, insertPosition?: number[]): void;
5891
5963
  externalObjectRemoveSubModule(groupId: string, subModuleId: string): void;
5892
5964
  getExternalSubArticles(id: number): PosArticle[];
5893
5965
  }
@@ -5921,9 +5993,9 @@ export declare interface PlanObject extends PlanElement_2 {
5921
5993
  }
5922
5994
 
5923
5995
  export declare interface PlanObjectKernel {
5924
- bounds: KernelVector3;
5996
+ geometryBounds: KernelCube;
5925
5997
  boxForMeasurement: KernelCube;
5926
- boxOfGeometry: KernelCube;
5998
+ geometryBoundsWithEnvironment: KernelCube;
5927
5999
  id: number;
5928
6000
  rootPlanComponentId: number;
5929
6001
  externalId: string;
@@ -6046,7 +6118,7 @@ export declare class PlanViewModel extends ConfiguratorViewModel implements Plan
6046
6118
  private _handleCeilingPlanElementViewModel;
6047
6119
  private _handleNodePlanElementViewModel;
6048
6120
  private _getCeilingLightsDistribution;
6049
- handleInitialLights(_maxTextures: number, qualityLevel: QualityLevel): void;
6121
+ handleInitialCeilingLights(ceilingLightsParameters: GenericGUIParamFolder | undefined, qualityLevel: QualityLevel): void;
6050
6122
  handleCeilingLights(): void;
6051
6123
  handleLampLight(lamp: StaticPlanObjectViewModel, options: {
6052
6124
  targetPos: KernelVector3f;
@@ -6055,7 +6127,7 @@ export declare class PlanViewModel extends ConfiguratorViewModel implements Plan
6055
6127
  decay?: number;
6056
6128
  intensity?: number;
6057
6129
  active?: boolean;
6058
- }): void;
6130
+ }, lampLightsParameters?: ParametersGroup): void;
6059
6131
  handleRectLampLight(lamp: StaticPlanObjectViewModel, options: {
6060
6132
  dimensions: {
6061
6133
  width: number;
@@ -6065,11 +6137,11 @@ export declare class PlanViewModel extends ConfiguratorViewModel implements Plan
6065
6137
  color?: number;
6066
6138
  rotation?: KernelVector3f;
6067
6139
  active?: boolean;
6068
- }): void;
6140
+ }, rectLightsParameters?: ParametersGroup): void;
6069
6141
  toggleCeilingLights(on: boolean): void;
6070
6142
  private commonHandlerForEditableAndTopView;
6071
6143
  isChildObjectRootComponent(roomleComponent: RoomleComponent): boolean;
6072
- protected dockComponent(componentId: number, isRootComponent: boolean, parentId: number, componentPosition: KernelVector3, componentRotation: KernelVector3): void;
6144
+ protected dockComponent(componentDocking: KernelComponentDocking): void;
6073
6145
  protected _addComponent(component: RoomleComponent): void;
6074
6146
  private _getPlanObjectViewModelForRuntimeId;
6075
6147
  getConfigurablePlanObjectForId(id: number): ConfiguratorPlanObjectViewModel | null;
@@ -6113,9 +6185,9 @@ export declare class PlanViewModel extends ConfiguratorViewModel implements Plan
6113
6185
  getFloorPlanObjectViewModels(): FloorPlanElementViewModel[];
6114
6186
  getMeasurementLineObjectViewModels(): MeasurementLinePlanElementViewModel[];
6115
6187
  getWallAtticsObjectViewModels(): WallAtticPlanElementViewModel[];
6116
- protected _generateMesh(runtimeComponentId: number, geometryId: string | null, material: any, vertices: Float32Array, indices: Int32Array, uvCoords: Float32Array, normals: Float32Array, type?: KernelEnum, newGeometryInstance?: boolean, materialAttributes?: Record<string, string>): Mesh;
6188
+ protected _generateMesh(runtimeComponentId: number | undefined, geometryId: string | null | undefined, material: any, vertices: Float32Array, indices: Int32Array, uvCoords: Float32Array, normals: Float32Array, type?: KernelEnum, newGeometryInstance?: boolean, materialAttributes?: Record<string, string>): Mesh;
6117
6189
  protected _setMaterial(mesh: Mesh, material: any, _type?: KernelEnum, materialAttributes?: Record<string, string>): void;
6118
- Editor3dComponentCreated(id: number, position: KernelVector3, eulerAngles: KernelVector3, isRootComponent: boolean, parentObjectRuntimeId: number): void;
6190
+ Editor3dComponentCreated(componentDocking: KernelComponentDocking): void;
6119
6191
  addPlanObjectToScene(_planViewModel: PlanObjectViewModel | null): void;
6120
6192
  handlerSwitchedPlans(_fromPlan: Plan_2, _toPlan: Plan_2): void;
6121
6193
  planCompletelyLoaded(_plan: Plan_2): void;
@@ -6144,7 +6216,7 @@ export declare class PlanViewModel extends ConfiguratorViewModel implements Plan
6144
6216
  planCleared(): void;
6145
6217
  requestCatalogItem(_catalogItemId: string): void;
6146
6218
  externalObjectRequestAddOnContainers(_groupId: string, _subArticleId: string): void;
6147
- externalObjectAddSubArticle(_subArticleId: string, _rootModuleId: string, _parentModuleId: string): void;
6219
+ externalObjectAddSubArticle(_subArticleId: string, _rootModuleId: string, _parentModuleId: string, _insertPosition?: number[]): void;
6148
6220
  externalObjectRemoveSubModule(_groupId: string, _subModuleId: string): void;
6149
6221
  }
6150
6222
 
@@ -6215,6 +6287,10 @@ export declare interface PosArticleInfo {
6215
6287
  isConfigDummy?: boolean;
6216
6288
  }
6217
6289
 
6290
+ export declare interface PosContextData {
6291
+ dockedRoots?: PosDockedContext[];
6292
+ }
6293
+
6218
6294
  export declare interface PosContour {
6219
6295
  level: number;
6220
6296
  segments: PosContourSegment[];
@@ -6243,6 +6319,16 @@ export declare const enum PosDock {
6243
6319
  RightBackBottom = "RightBackBottom"
6244
6320
  }
6245
6321
 
6322
+ export declare interface PosDockedContext {
6323
+ ownDockingVector: PosDock | string;
6324
+ dockedRoots: PosDockedContextRoot[];
6325
+ }
6326
+
6327
+ export declare interface PosDockedContextRoot {
6328
+ id: string;
6329
+ dockingVector: PosDock | string;
6330
+ }
6331
+
6246
6332
  export declare interface PosDockInfo {
6247
6333
  id: PosDock;
6248
6334
  start: number[];
@@ -6360,6 +6446,7 @@ export declare interface PosModuleRootData extends PosModuleData, PosPositionInf
6360
6446
  dockInfos: PosDockInfo[];
6361
6447
  insertLevelInfos?: PosInsertLevelInfo[];
6362
6448
  insertLevelFixed?: boolean;
6449
+ contextData?: PosContextData;
6363
6450
  }
6364
6451
 
6365
6452
  export declare interface PosPartData {
@@ -6455,9 +6542,11 @@ export declare interface PreviewComponent extends RoomleComponent {
6455
6542
  stringId: string;
6456
6543
  receivedPointAssociation: boolean;
6457
6544
  dockInsertAnimation?: DragInsertAnimation;
6545
+ clickPosition?: Vector3;
6458
6546
  clonePreview(cloneId: string): PreviewComponent;
6459
6547
  preparePreview(): void;
6460
6548
  startPulsating(): void;
6549
+ updateClickPosition(intersectionPoint: Vector3): void;
6461
6550
  }
6462
6551
 
6463
6552
  export declare interface PreviewLineComponent extends PreviewComponent {
@@ -6725,7 +6814,7 @@ export declare class RapiAccess implements Context {
6725
6814
  updateCache(rapiPath: RAPI_PATHS, data: RapiJson & {
6726
6815
  id: RapiId;
6727
6816
  }): void;
6728
- getExternalObjects(externalObjectIds: Array<`__ext__obj__#${string}`>): Promise<any[]>;
6817
+ getExternalObjects(externalObjectIds: Array<`__ext__obj__#${string}`>): Promise<ExternalDataResponse<ExternalConfiguration>[] | undefined>;
6729
6818
  }
6730
6819
 
6731
6820
  export declare interface RapiAdditionalContent extends RapiJson {
@@ -7235,7 +7324,7 @@ export declare class RaycastHelper extends EventDispatcher<Record<RAYCAST_EVENT,
7235
7324
  setCamera(camera: Camera): void;
7236
7325
  setObject(object: Object3D): void;
7237
7326
  setMode(mode: INTERSECTION_MODE): void;
7238
- intersectMouseOnScene(event: Pick<PointerInputEvent, 'positionRelative'>): KernelVector3;
7327
+ intersectMouseOnScene(event: Pick<PointerInputEvent, 'positionRelative'>): KernelVector3 | null;
7239
7328
  enableOnWallSnapping(): void;
7240
7329
  disableOnWallSnapping(): void;
7241
7330
  getCameraPosition(): Vector3;
@@ -7291,7 +7380,7 @@ export declare class RoomDesignerApi implements RoomDesignerRequests {
7291
7380
  deleteRootModule(rootModuleId: string): void;
7292
7381
  getPosDataOfAllGroups(): Promise<PosGroup[]>;
7293
7382
  getRoomInformation(): Promise<ExternalRoomInformation>;
7294
- saveExternalObjectSnapshot(): Promise<ExternalObjectSnapshotSaveResult>;
7383
+ saveExternalObjectSnapshot(): Promise<ExternalObjectSnapshotSaveResult | null>;
7295
7384
  saveCurrentPlanSnapshot(): Promise<RapiPlanSnapshotGetData>;
7296
7385
  renderPosDataImage(posDataJson: object): Promise<void>;
7297
7386
  }
@@ -7327,6 +7416,8 @@ export declare const ROOMLE_COLORS: {
7327
7416
  readonly DEFAULT_BACKGROUND: 16250871;
7328
7417
  readonly SELECTION: 16777215;
7329
7418
  readonly PREVIEW_DOCKING_COLOR: 266198493;
7419
+ readonly SNAP_DOCKING: 8454016;
7420
+ readonly SNAP_COLLISION: 16744576;
7330
7421
  };
7331
7422
 
7332
7423
  export declare const ROOMLE_HIGHLIGHTNG: {
@@ -7341,6 +7432,7 @@ export declare interface RoomleComponent extends RoomleEventedObject3D {
7341
7432
  runtimeId: number;
7342
7433
  parentObjectId: number;
7343
7434
  isRootComponent: boolean;
7435
+ componentType: KernelComponentType;
7344
7436
  meshes: RoomleEventedMesh[];
7345
7437
  boundingBox: Box3;
7346
7438
  boundingBoxMesh: RoomleEventedMesh | null;
@@ -7369,7 +7461,7 @@ export declare interface RoomleComponent extends RoomleEventedObject3D {
7369
7461
  hoverOff(): void;
7370
7462
  loading(): void;
7371
7463
  loadingFinished(): void;
7372
- computeBoundingBox(boxForMeasurements?: KernelCube, geometryBounds?: KernelCube[], useMeshes?: boolean): void;
7464
+ computeBoundingBox(boxForMeasurements?: KernelCube, geometryBounds?: KernelAssembledObjectBounds, useMeshes?: boolean): void;
7373
7465
  recursiveMeshes(): Mesh[];
7374
7466
  isChild(componentId: number): boolean;
7375
7467
  getKernelPosition(newParent: RoomleComponent): KernelVector3;
@@ -7377,9 +7469,9 @@ export declare interface RoomleComponent extends RoomleEventedObject3D {
7377
7469
  }
7378
7470
 
7379
7471
  export declare interface RoomleComponentFactory {
7380
- create(creator: string, id: number, position: KernelVector3, eulerAngles: KernelVector3, parentObjectId: number, isRootComponent: boolean): RoomleComponent;
7472
+ create(creator: string, id: number, position: KernelVector3, eulerAngles: KernelVector3, parentObjectId: number, isRootComponent: boolean, componentType: KernelComponentType): RoomleComponent;
7381
7473
  createStatic(creator: string, id: number, url: string): StaticComponent;
7382
- createPreview(id: number, parentObjectId: number, creator: string): PreviewComponent;
7474
+ createPreview(id: number, parentObjectId: number, componentType: KernelComponentType, creator: string): PreviewComponent;
7383
7475
  createPreviewLine(id: number, previewComponent: PreviewComponent, creator: string): PreviewLineComponent;
7384
7476
  isPreview(obj: RoomleComponent): boolean;
7385
7477
  isPreviewLine(obj: RoomleComponent): boolean;
@@ -7654,7 +7746,7 @@ export declare class RoomleConfigurator<P extends readonly PluginName[] = readon
7654
7746
  * @param value
7655
7747
  * @param parameter
7656
7748
  */
7657
- formatValueToUnitString(value: number, parameter: KernelParameter): string | number;
7749
+ formatValueToUnitString(value: number, parameter: KernelParameter): string | number | null;
7658
7750
  /**
7659
7751
  * Get tag for a given tag id
7660
7752
  *
@@ -7999,8 +8091,8 @@ export declare class RoomleConfigurator<P extends readonly PluginName[] = readon
7999
8091
  */
8000
8092
  getChildrenOfPlanComponent(componentRuntimeId: number, onlyPossible?: boolean, onlyVisible?: boolean): Promise<{
8001
8093
  tags: UiPossibleChildTag[];
8002
- defaultChild: UiPossibleChild;
8003
- }>;
8094
+ defaultChild: UiPossibleChild | undefined;
8095
+ } | null>;
8004
8096
  /**
8005
8097
  * Returns all possible children and the default child for the plan object
8006
8098
  * @param onlyPossible: boolean true if you only want possibleChildren
@@ -8008,8 +8100,8 @@ export declare class RoomleConfigurator<P extends readonly PluginName[] = readon
8008
8100
  */
8009
8101
  getChildrenOfPlanObject(onlyPossible?: boolean, onlyVisible?: boolean): Promise<{
8010
8102
  tags: UiPossibleChildTag[];
8011
- defaultChild: UiPossibleChild;
8012
- }>;
8103
+ defaultChild: UiPossibleChild | undefined;
8104
+ } | null>;
8013
8105
  private _addAdditionalInfoToPossibleChildren;
8014
8106
  private _getPossibleChildrenForKernelPossibleChildren;
8015
8107
  private _addPossibleChildren;
@@ -8210,7 +8302,6 @@ export declare class RoomleMaterialViewer implements GlobalAPI, Context, Externa
8210
8302
  get callbacks(): RoomleMaterialViewerUiCallback;
8211
8303
  set callbacks(callback: RoomleMaterialViewerUiCallback);
8212
8304
  loadMaterialShading(materialShading: RapiMaterialShading): Promise<void>;
8213
- resetMaterial(): void;
8214
8305
  loadMaterial(material: RapiMaterial, options?: {
8215
8306
  flushCache?: boolean;
8216
8307
  }): Promise<void>;
@@ -8547,11 +8638,11 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
8547
8638
  /**
8548
8639
  * enable interaction with child components of configurable objects in the plan
8549
8640
  */
8550
- enableChildObjects(planElementViewModel: PlanElementViewModel): KernelObject;
8641
+ enableChildObjects(planElementViewModel: PlanElementViewModel): KernelObject | null;
8551
8642
  /**
8552
8643
  * disable interaction with child components of configurable objects in the plan
8553
8644
  */
8554
- disableChildObjects(planElementViewModel: PlanElementViewModel): KernelObject;
8645
+ disableChildObjects(planElementViewModel: PlanElementViewModel): KernelObject | null;
8555
8646
  /**
8556
8647
  * get the Partlist of certain runtimeID
8557
8648
  * can be used if partlist of a selected Item is needed
@@ -8565,7 +8656,7 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
8565
8656
  * @param value
8566
8657
  * @param parameter
8567
8658
  */
8568
- formatValueToUnitString(value: number, parameter: KernelParameter): string | number;
8659
+ formatValueToUnitString(value: number, parameter: KernelParameter): string | number | null;
8569
8660
  /**
8570
8661
  * Draws walls according to the wall definitions
8571
8662
  * this can be used to create a room on the fly
@@ -8801,24 +8892,24 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
8801
8892
  redo(): Promise<void>;
8802
8893
  setHomagIntelligence(homagIntelligence: HomagIntelligence): void;
8803
8894
  private _getSubArticleId;
8804
- newPosDataFromId(id: string): Promise<PosGroup>;
8895
+ newPosDataFromId(id: string): Promise<PosGroup | undefined> | undefined;
8805
8896
  /**
8806
8897
  * deprecated, use placeOrder() instead
8807
8898
  */
8808
- sendToOM(withPrice?: boolean): Promise<void>;
8899
+ sendToOM(withPrice?: boolean): Promise<void> | undefined;
8809
8900
  /**
8810
8901
  * Places an order via Homag Intelligence module
8811
8902
  * @param withPrice whether to include price information in the order
8812
8903
  * @param orderHeader optional order header information
8813
8904
  */
8814
- placeOrder(withPrice?: boolean, orderHeader?: HiOrderHeader): Promise<void>;
8905
+ placeOrder(withPrice?: boolean, orderHeader?: HiOrderHeader): Promise<void> | undefined;
8815
8906
  /**
8816
8907
  * Fetches the price for the current plan via Homag Intelligence module
8817
8908
  * @param planId optional plan ID to fetch the price for
8818
8909
  * @param orderHeader optional order header information
8819
8910
  */
8820
8911
  fetchPrice(planId?: string, orderHeader?: HiOrderHeader): Promise<any>;
8821
- getOrderManagerGroupData(planId?: string): Promise<HiOrderData>;
8912
+ getOrderManagerGroupData(planId?: string): Promise<HiOrderData | null | undefined>;
8822
8913
  getRapiAccess(): RapiAccess;
8823
8914
  getElementOpenCloseAnimation(planElement: PlanElementViewModel, componentIds?: number[]): AnimationKeyAndValue | null;
8824
8915
  /**
@@ -9036,6 +9127,7 @@ export declare abstract class RoomleRenderer<RendererType extends WebGLRenderer
9036
9127
  abstract getQualityLevel(): QualityLevel;
9037
9128
  abstract setQualityMap(qualityMap: QualityMap): void;
9038
9129
  abstract setCustomShadingParameters(customShadingParameters?: CustomShadingParameters, customShadingParametersMoc?: CustomShadingParameters): void;
9130
+ abstract setCustomOutlineParameters(outlineCustomParameters: OutlineCustomParameters): void;
9039
9131
  abstract loadLutImages(luts: LutImageDefinition[]): void;
9040
9132
  abstract render(scene: Scene, camera: Camera): void;
9041
9133
  abstract showGUI(updateCallback: () => void): void;
@@ -9107,6 +9199,42 @@ export declare class RoomleToolsCore implements Context, ExternalEmbeddable<Room
9107
9199
  export declare interface RoomleToolsCoreUICallback {
9108
9200
  }
9109
9201
 
9202
+ export declare class RoomleWebGPURenderer extends RoomleRenderer<WebGPURenderer> {
9203
+ private readonly renderPipeline;
9204
+ private passNeedsReassembly;
9205
+ private debugMode;
9206
+ private readonly renderPasses;
9207
+ private readonly guiParameterGroups;
9208
+ private _domHelper;
9209
+ constructor(creator: string, renderer: WebGPURenderer, outlineColors?: {
9210
+ outlineVisibleEdgeColor: ColorRepresentation;
9211
+ outlineHiddenEdgeColor: ColorRepresentation;
9212
+ });
9213
+ private addRenderPass;
9214
+ clearCache(): void;
9215
+ disableUiInteractionMode(): void;
9216
+ enableUiInteractionMode(): void;
9217
+ getQualityLevel(): QualityLevel;
9218
+ highlightObjects(selectedMeshes: Object3D[]): void;
9219
+ loadLutImages(_luts: LutImageDefinition[]): void;
9220
+ render(scene: Scene, camera: Camera): void;
9221
+ private assembleRenderPasses;
9222
+ setAutoQuality(_autoQuality: boolean): void;
9223
+ setCustomShadingParameters(_customShadingParameters: CustomShadingParameters | undefined, _customShadingParametersMoc: CustomShadingParameters | undefined): void;
9224
+ setCustomOutlineParameters(customOutlineParameters: OutlineCustomParameters): void;
9225
+ setGroundShadow(_enabled: boolean): void;
9226
+ setOnQualityLevelChangeCallback(_callback: (qualityLevel: QualityLevel) => void): void;
9227
+ private enableOutline;
9228
+ private getOutlinePassOrUndefined;
9229
+ setQualityLevel(_qualityLevel: QualityLevel): void;
9230
+ setQualityMap(_qualityMap: QualityMap): void;
9231
+ setShadingType(_shadingType: SceneShadingType): void;
9232
+ showGUI(updateCallback: () => void): void;
9233
+ private addDebugGUI;
9234
+ getOrCreateGUIParameters(name: string): ParametersGroup;
9235
+ private createAndCacheGUIParameters;
9236
+ }
9237
+
9110
9238
  export declare interface RoomLightSourceDistribution {
9111
9239
  ceilingId: number;
9112
9240
  floorId: number;
@@ -9236,6 +9364,7 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
9236
9364
  protected _renderListener: (() => void) | null;
9237
9365
  protected _stopRendering: boolean;
9238
9366
  protected _roomleRenderer: GenericRoomleRenderer | null;
9367
+ private _roomleRendererReady;
9239
9368
  private _forceRender;
9240
9369
  private _lastChange;
9241
9370
  private _running;
@@ -9256,7 +9385,8 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
9256
9385
  addEventListener(_listener: LifeCycleCallbacks): void;
9257
9386
  removeEventListener(_listener: LifeCycleCallbacks): void;
9258
9387
  get lightCache(): LightCache | null;
9259
- getRoomleRenderer(): GenericRoomleRenderer;
9388
+ getRoomleRenderer(): GenericRoomleRenderer | null;
9389
+ getRoomleRendererReady(): Promise<GenericRoomleRenderer | null>;
9260
9390
  getRenderer(): WebGLRenderer | WebGPURenderer | null;
9261
9391
  protected _changeCameraBehaviour(cameraBehaviour: CameraBehaviour): void;
9262
9392
  protected onCameraChanged(): void;
@@ -9292,11 +9422,11 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
9292
9422
  enableHD(source?: DynamicLightSettingSource): void;
9293
9423
  protected _loadGLTF(gltfJSON: string, position?: Vector3, rotation?: number, size?: Vector3, scale?: Vector3, color?: number, callback?: (percent: number) => void): Promise<Object3D>;
9294
9424
  protected _loadGLB(url: string, position?: Vector3, rotation?: number, size?: Vector3, scale?: Vector3, color?: number, colorable?: boolean, callback?: (percent: number) => void): Promise<Object3D>;
9295
- showGUI(): void;
9296
- protected _guiLoaded(): void;
9297
- protected _addGUIListener(gui: GUI): void;
9298
- protected _guiParamChanged(): void;
9299
- showStats(): void;
9425
+ showGUI(): Promise<void>;
9426
+ protected initializeWebGLGUI(): void;
9427
+ protected initializeWebGPUGUI(roomleWebGPURenderer: RoomleWebGPURenderer): void;
9428
+ private addEnvironmentMapGUIParameters;
9429
+ showWebGLStats(): void;
9300
9430
  protected _onKeyDown(_event: KeyboardEvent): void;
9301
9431
  protected _onKeyUp(_event: KeyboardEvent, _cleanup?: boolean): void;
9302
9432
  pause(): void;
@@ -9323,6 +9453,7 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
9323
9453
  exportImageFromCamera(filename: string, shouldWaitForAssets?: boolean): Promise<void>;
9324
9454
  private getCanvasScreenshotWithDimensions;
9325
9455
  changeEnvironmentMapIntensity(intensity: number): void;
9456
+ changeEnvironmentMapRotation(rotation: number): void;
9326
9457
  lockCamera(): void;
9327
9458
  unlockCamera(): void;
9328
9459
  setEnvironmentMap(url?: string, intensity?: number, rotation?: number, maxLightSources?: number): void;
@@ -9330,7 +9461,7 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
9330
9461
  protected _hasCameraControl2D(): boolean;
9331
9462
  protected _getCameraControl2D(): CameraControl2D;
9332
9463
  protected _getCameraControlFirstPerson(): CameraControlFirstPerson;
9333
- createUSDZExport(): Promise<Uint8Array<ArrayBuffer>>;
9464
+ createUSDZExport(): Promise<Uint8Array<ArrayBuffer> | undefined>;
9334
9465
  exportUSDZ(): Promise<void>;
9335
9466
  createExportGLB(objectFilter?: (object: Object3D) => boolean): Promise<ArrayBuffer | null>;
9336
9467
  exportGLB(): Promise<void>;
@@ -9424,6 +9555,10 @@ export declare const enum SnapMode {
9424
9555
  WITHIN_SNAP_DISTANCE = 3
9425
9556
  }
9426
9557
 
9558
+ export declare interface SnapState {
9559
+ value: Enumify<typeof CORE_SNAP_STATE>;
9560
+ }
9561
+
9427
9562
  export declare interface StaticComponent extends RoomleComponent {
9428
9563
  glbUrl: string;
9429
9564
  }
@@ -9436,7 +9571,7 @@ export declare class StaticPlanObjectViewModel extends PlanObjectViewModel {
9436
9571
  constructor(planObject: PlanObject);
9437
9572
  setRapiItem(rapiItem: RapiItem): Promise<void>;
9438
9573
  private _addStaticItem;
9439
- getRapiItem(): RapiItem;
9574
+ getRapiItem(): RapiItem | null;
9440
9575
  needsRapiItem(): boolean;
9441
9576
  getGLBUrl(): string | null;
9442
9577
  update(): void;
@@ -9592,8 +9727,8 @@ export declare class UnitFormatter implements Context {
9592
9727
  private _initActualUnitStringType;
9593
9728
  formatAngleValueToUnitString(value: number, parameter: KernelParameter): string;
9594
9729
  parseAngleValueFromUnitString(rotation: string): string;
9595
- parseValue(value: string, parameter: KernelParameter): string | number;
9596
- formatValueToUnitString(value: number, parameter: KernelParameter): string | number;
9730
+ parseValue(value: string, parameter: KernelParameter): string | number | null;
9731
+ formatValueToUnitString(value: number, parameter: KernelParameter): string | number | null;
9597
9732
  isParseableNumber(aString: string): boolean | null;
9598
9733
  isParseableUnitString(aString: string, parameter: KernelParameter): boolean | null;
9599
9734
  parseMMValueFromUnitString(aString: string, unitType: string): number | null;
@@ -9603,6 +9738,17 @@ export declare class UnitFormatter implements Context {
9603
9738
  formatMMValueToUnitString(aValue: number, unitType?: string): string | null;
9604
9739
  formatMMValueWithReqMaxLength(aValue: number, reqMaxSize: number): string | null;
9605
9740
  private _formatParameterValue;
9741
+ private _getDecimalPlaces;
9742
+ private _snapToNearestStep;
9743
+ /**
9744
+ * Returns the effective snap step (in mm) for a LENGTH parameter in inch mode.
9745
+ *
9746
+ * Prefers validRange.step when it is a positive number. When the kernel omits
9747
+ * an explicit step (step === 0), falls back to precision-derived granularity
9748
+ *
9749
+ * Example: precision=3 → 1/8" → 25.4/8 = 3.175 mm per tick.
9750
+ */
9751
+ private _getInchSnapStep;
9606
9752
  formatPartListParameter(parameter: KernelPartListParameter): void;
9607
9753
  formatParameter(parameter: UiKernelParameter): void;
9608
9754
  isInch(): boolean;
@@ -9829,7 +9975,7 @@ declare global {
9829
9975
  const WebAssembly: any; // eslint-disable-line
9830
9976
  interface Window {
9831
9977
  KernelCallback?: { isReady: () => void } | null;
9832
- __RML_GUI__: GUI; // eslint-disable-line
9978
+ __RML_WEBGL_GUI__: GUI; // eslint-disable-line
9833
9979
  __RML__DEBUG__?: Debug;
9834
9980
  __RML__ENV__?: ExternalEnv;
9835
9981
  _rsl: { [key: string]: ThreeShader };