@roomle/web-sdk 3.7.0 → 3.8.0

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 (132) hide show
  1. package/lib/{BufferGeometry-BzmfTBQt.mjs → BufferGeometry-ltw0XkYt.mjs} +7 -4
  2. package/lib/BufferGeometry-ltw0XkYt.mjs.map +1 -0
  3. package/lib/ConfiguratorKernel.js +6 -6
  4. package/lib/ConfiguratorKernel.wasm +0 -0
  5. package/lib/{GLTFExporter-CyhgWPq0.mjs → GLTFExporter-BqjC9LhS.mjs} +9 -14
  6. package/lib/GLTFExporter-BqjC9LhS.mjs.map +1 -0
  7. package/lib/{Object3D-C3wqWk6O.mjs → Object3D-BZaiqQIE.mjs} +24 -12
  8. package/lib/Object3D-BZaiqQIE.mjs.map +1 -0
  9. package/lib/{PointLightHelper-DwIXACyT.mjs → PointLightHelper-AxCe6I00.mjs} +4 -4
  10. package/lib/PointLightHelper-AxCe6I00.mjs.map +1 -0
  11. package/lib/RoomleCore.js +8 -8
  12. package/lib/RoomleCore.wasm +0 -0
  13. package/lib/RoomleToolsCore.wasm +0 -0
  14. package/lib/{SpotLightHelper-CfLHM7LU.mjs → SpotLightHelper-DpMerFPv.mjs} +3 -3
  15. package/lib/{SpotLightHelper-CfLHM7LU.mjs.map → SpotLightHelper-DpMerFPv.mjs.map} +1 -1
  16. package/lib/{USDZExporter-kmxcTvnQ.mjs → USDZExporter-qUD2VgwK.mjs} +2 -2
  17. package/lib/{USDZExporter-kmxcTvnQ.mjs.map → USDZExporter-qUD2VgwK.mjs.map} +1 -1
  18. package/lib/{Vector4-DUqY3Egg.mjs → Vector4-BfZH1ecw.mjs} +7 -4
  19. package/lib/Vector4-BfZH1ecw.mjs.map +1 -0
  20. package/lib/{api-X1dDTDvL.mjs → api-CbHAzwVm.mjs} +2 -2
  21. package/lib/{api-X1dDTDvL.mjs.map → api-CbHAzwVm.mjs.map} +1 -1
  22. package/lib/asset-loader.worker-A7nEeQB4.mjs.map +1 -1
  23. package/lib/{banana-for-scale-Bpf8RfLi.mjs → banana-for-scale-DiBCpVNM.mjs} +3 -3
  24. package/lib/{banana-for-scale-Bpf8RfLi.mjs.map → banana-for-scale-DiBCpVNM.mjs.map} +1 -1
  25. package/lib/budgeteer.sw-CQWYbQSc.mjs.map +1 -1
  26. package/lib/{common-utils-DMI8Yuhe.mjs → common-utils-AB4Lnet3.mjs} +2 -2
  27. package/lib/{common-utils-DMI8Yuhe.mjs.map → common-utils-AB4Lnet3.mjs.map} +1 -1
  28. package/lib/{component-dimensioning-MtS9xiY-.mjs → component-dimensioning-LUnZnpqG.mjs} +5 -5
  29. package/lib/{component-dimensioning-MtS9xiY-.mjs.map → component-dimensioning-LUnZnpqG.mjs.map} +1 -1
  30. package/lib/{component-raycast-helper-C1qWqpRH.mjs → component-raycast-helper-Bl0mWPcj.mjs} +4 -4
  31. package/lib/{component-raycast-helper-C1qWqpRH.mjs.map → component-raycast-helper-Bl0mWPcj.mjs.map} +1 -1
  32. package/lib/configurator-BmJX0gB5.mjs +2 -0
  33. package/lib/configurator-CP80d0HI.mjs +45 -0
  34. package/lib/{configurator-Cg1a9XSL.mjs.map → configurator-CP80d0HI.mjs.map} +1 -1
  35. package/lib/{continuous-drawing-helper-CQx5Sbns.mjs → continuous-drawing-helper-BlRy7u2t.mjs} +3 -3
  36. package/lib/{continuous-drawing-helper-CQx5Sbns.mjs.map → continuous-drawing-helper-BlRy7u2t.mjs.map} +1 -1
  37. package/lib/dimensioning-helper-5xsc6I7Y.mjs +2 -0
  38. package/lib/{dimensioning-helper-GPn7Z8GE.mjs → dimensioning-helper-vPhGfHd-.mjs} +3 -3
  39. package/lib/{dimensioning-helper-GPn7Z8GE.mjs.map → dimensioning-helper-vPhGfHd-.mjs.map} +1 -1
  40. package/lib/{glb-viewer-tgKOPCaI.mjs → glb-viewer-B7pA8K_w.mjs} +71 -54
  41. package/lib/glb-viewer-B7pA8K_w.mjs.map +1 -0
  42. package/lib/glb-viewer-XFEP993c.mjs +2 -0
  43. package/lib/{highlight-coordinator-DRHeEU-E.mjs → highlight-coordinator-DeB46jQq.mjs} +9 -3
  44. package/lib/highlight-coordinator-DeB46jQq.mjs.map +1 -0
  45. package/lib/{homag-intelligence-D5mCTWgG.mjs → homag-intelligence-f1JD0An1.mjs} +3 -3
  46. package/lib/homag-intelligence-f1JD0An1.mjs.map +1 -0
  47. package/lib/{imos-ix-poc-export-helper-BKFs_Yhm.mjs → imos-ix-poc-export-helper-Vyv-uuNs.mjs} +3 -3
  48. package/lib/{imos-ix-poc-export-helper-BKFs_Yhm.mjs.map → imos-ix-poc-export-helper-Vyv-uuNs.mjs.map} +1 -1
  49. package/lib/kernel-C7YDLxq8.mjs.map +1 -1
  50. package/lib/{kernel-utils-B80amC-l.mjs → kernel-utils-BG1uqfT_.mjs} +2 -2
  51. package/lib/{kernel-utils-B80amC-l.mjs.map → kernel-utils-BG1uqfT_.mjs.map} +1 -1
  52. package/lib/{main-CJ5TNhBt.mjs → main-CuqGqemT.mjs} +2916 -2605
  53. package/lib/main-CuqGqemT.mjs.map +1 -0
  54. package/lib/{material-viewer-DCqZzMZN.mjs → material-viewer-Cij9aWpI.mjs} +23 -23
  55. package/lib/{material-viewer-DCqZzMZN.mjs.map → material-viewer-Cij9aWpI.mjs.map} +1 -1
  56. package/lib/packages-DALvuVA_.mjs +4 -0
  57. package/lib/planner-CVn2Lls0.mjs +2 -0
  58. package/lib/planner-DKbmQVSf.mjs +44 -0
  59. package/lib/{planner-CSboZram.mjs.map → planner-DKbmQVSf.mjs.map} +1 -1
  60. package/lib/{plugin-system-DD0Z9Jvt.mjs → plugin-system-BEZnFUyT.mjs} +2 -2
  61. package/lib/{plugin-system-DD0Z9Jvt.mjs.map → plugin-system-BEZnFUyT.mjs.map} +1 -1
  62. package/lib/{roomle-headless-setup-nsoGENQV.mjs → roomle-headless-setup-CMK-quZI.mjs} +131 -77
  63. package/lib/roomle-headless-setup-CMK-quZI.mjs.map +1 -0
  64. package/lib/roomle-headless.d.ts +333 -44
  65. package/lib/roomle-headless.js +196 -80
  66. package/lib/roomle-headless.js.map +1 -1
  67. package/lib/{roomle-renderer-BEJNPCKx.mjs → roomle-renderer-BgT28pfp.mjs} +2 -2
  68. package/lib/{roomle-renderer-BEJNPCKx.mjs.map → roomle-renderer-BgT28pfp.mjs.map} +1 -1
  69. package/lib/roomle-sdk.d.ts +168 -37
  70. package/lib/roomle-sdk.js +7 -7
  71. package/lib/roomle-webgpu-renderer-BdCItfH1.mjs +2243 -0
  72. package/lib/roomle-webgpu-renderer-BdCItfH1.mjs.map +1 -0
  73. package/lib/{scene-renderer-Dm1kij1z.mjs → scene-renderer-Bdl7umAf.mjs} +6 -6
  74. package/lib/{scene-renderer-Dm1kij1z.mjs.map → scene-renderer-Bdl7umAf.mjs.map} +1 -1
  75. package/lib/{script-loader-DqaDm1FG.mjs → script-loader-BtWHegD-.mjs} +2 -2
  76. package/lib/{script-loader-DqaDm1FG.mjs.map → script-loader-BtWHegD-.mjs.map} +1 -1
  77. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
  78. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCallback.d.ts +2 -2
  79. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCallback.js +2 -2
  80. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCallback.js.map +1 -1
  81. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.d.ts +12 -3
  82. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.js +1 -0
  83. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.js.map +1 -1
  84. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.d.ts +43 -2
  85. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js +20 -1
  86. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js.map +1 -1
  87. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/loader/configurationLoader.d.ts +1 -1
  88. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/loader/configurationLoader.js +1 -1
  89. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/loader/configurationLoader.js.map +1 -1
  90. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.js +6 -6
  91. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
  92. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js +8 -8
  93. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
  94. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
  95. package/lib/{stats-helper-D7a7oxnj.mjs → stats-helper-BvDfWWfq.mjs} +2 -2
  96. package/lib/{stats-helper-D7a7oxnj.mjs.map → stats-helper-BvDfWWfq.mjs.map} +1 -1
  97. package/lib/{three.core-BmQnspOL.mjs → three.core-K1JzUaep.mjs} +748 -706
  98. package/lib/three.core-K1JzUaep.mjs.map +1 -0
  99. package/lib/{three.module-DkrZwaid.mjs → three.module-Q2K9uyhi.mjs} +1022 -965
  100. package/lib/three.module-Q2K9uyhi.mjs.map +1 -0
  101. package/lib/{three.webgpu-DLZjhIYv.mjs → three.webgpu-7v7o6Pxs.mjs} +3804 -3481
  102. package/lib/three.webgpu-7v7o6Pxs.mjs.map +1 -0
  103. package/lib/three.webgpu-ChguPx4k.mjs +3 -0
  104. package/lib/{threejs-utils-CrK_gp1x.mjs → threejs-utils-BzXU2M3w.mjs} +67 -47
  105. package/lib/threejs-utils-BzXU2M3w.mjs.map +1 -0
  106. package/lib/{tools-core-CZWgXTFV.mjs → tools-core-BoxckhTR.mjs} +6 -6
  107. package/lib/{tools-core-CZWgXTFV.mjs.map → tools-core-BoxckhTR.mjs.map} +1 -1
  108. package/package.json +4 -4
  109. package/lib/BufferGeometry-BzmfTBQt.mjs.map +0 -1
  110. package/lib/GLTFExporter-CyhgWPq0.mjs.map +0 -1
  111. package/lib/Object3D-C3wqWk6O.mjs.map +0 -1
  112. package/lib/PointLightHelper-DwIXACyT.mjs.map +0 -1
  113. package/lib/Vector4-DUqY3Egg.mjs.map +0 -1
  114. package/lib/configurator-C5t3clCx.mjs +0 -2
  115. package/lib/configurator-Cg1a9XSL.mjs +0 -45
  116. package/lib/dimensioning-helper-Bfe0fImX.mjs +0 -2
  117. package/lib/glb-viewer-DIEpkrvY.mjs +0 -2
  118. package/lib/glb-viewer-tgKOPCaI.mjs.map +0 -1
  119. package/lib/highlight-coordinator-DRHeEU-E.mjs.map +0 -1
  120. package/lib/homag-intelligence-D5mCTWgG.mjs.map +0 -1
  121. package/lib/main-CJ5TNhBt.mjs.map +0 -1
  122. package/lib/packages-DuOz6rk6.mjs +0 -4
  123. package/lib/planner-CSboZram.mjs +0 -44
  124. package/lib/planner-CWPqJktz.mjs +0 -2
  125. package/lib/roomle-headless-setup-nsoGENQV.mjs.map +0 -1
  126. package/lib/roomle-webgpu-renderer-D5flithq.mjs +0 -1502
  127. package/lib/roomle-webgpu-renderer-D5flithq.mjs.map +0 -1
  128. package/lib/three.core-BmQnspOL.mjs.map +0 -1
  129. package/lib/three.module-DkrZwaid.mjs.map +0 -1
  130. package/lib/three.webgpu-DLZjhIYv.mjs.map +0 -1
  131. package/lib/three.webgpu-RkQxSIwG.mjs +0 -3
  132. package/lib/threejs-utils-CrK_gp1x.mjs.map +0 -1
@@ -22,6 +22,7 @@ import { Intersection } from 'three';
22
22
  import { Layers } from 'three';
23
23
  import { Light } from 'three';
24
24
  import { Material } from 'three';
25
+ import { MaterialEventMap } from 'three';
25
26
  import { Mesh } from 'three';
26
27
  import { MeshPhysicalMaterial } from 'three';
27
28
  import { MeshStandardMaterial } from 'three';
@@ -79,6 +80,13 @@ export declare class AddOnSpotArray extends EmsArray<KernelAddOnSpot> {
79
80
  export declare class AddOnSpotArray_2 extends EmsArray<KernelAddOnSpot> {
80
81
  }
81
82
 
83
+ export declare class AdjustableCameraControl3D extends CameraControl3D {
84
+ shouldIgnoreStandardBehavior: boolean;
85
+ adjust(bounds: Vector3, position: Vector3, yaw: number, pitch: number, _fov: number): void;
86
+ protected _update(overrideTarget?: Vector3): void;
87
+ animateCamera(delta: number): boolean;
88
+ }
89
+
82
90
  export declare interface Anchor {
83
91
  value: ResizingAnchor;
84
92
  }
@@ -120,6 +128,7 @@ export declare class AnimationValueMap {
120
128
  setValueAndGetOldValue(animationName: string, value: string, level: number): string;
121
129
  getPriorAnimations(animationName: string, level: number): string[];
122
130
  getSequentAnimations(animationName: string, level: number): string[];
131
+ getValues(): string[];
123
132
  }
124
133
 
125
134
  /**
@@ -631,7 +640,7 @@ export declare class CeilingLight extends PointLight {
631
640
  private _shouldCastShadow;
632
641
  getContainer(): Mesh | null;
633
642
  get shouldCastShadow(): boolean;
634
- constructor(debug: boolean, maxQualityLevel: QualityLevel);
643
+ constructor(debug: boolean | undefined, maxQualityLevel: QualityLevel);
635
644
  recalculatePower(amountOfLights: number): void;
636
645
  update(qualityLevel: QualityLevel): void;
637
646
  addDebugUI(ceilingLightsParameters: GenericGUIParamFolder): void;
@@ -875,6 +884,7 @@ export declare interface CommonInitData {
875
884
 
876
885
  export declare abstract class CommonKernelAccess implements LifeCycleCallbacks, Context {
877
886
  _creator_: string;
887
+ private _kernelCallbackGuard;
878
888
  protected _rapiAccess: RapiAccess;
879
889
  private _materialProvider;
880
890
  protected _scriptLoader: ScriptLoader;
@@ -1238,6 +1248,7 @@ export declare class ConfiguratorKernelAccess extends CommonKernelAccess {
1238
1248
  muteKernelCallbacks: boolean;
1239
1249
  constructor(creator: string);
1240
1250
  init(kernelType: KERNEL_TYPE): void;
1251
+ protected _getScriptLoaderKernelId(_kernelType: KERNEL_TYPE): string;
1241
1252
  protected _loadSuccess(): void;
1242
1253
  protected _loadError(): void;
1243
1254
  selectedComponent(componentId: number): void;
@@ -1296,7 +1307,7 @@ export declare class ConfiguratorKernelAccess extends CommonKernelAccess {
1296
1307
  componentParameters(): void;
1297
1308
  requestComponentDimensions(): void;
1298
1309
  planObjectCreated(conversationId: number, planObjectId: number): void;
1299
- planObjectUpdated(planObjectId: number, pendingDocking: boolean): void;
1310
+ planObjectUpdated(planObjectId: number, pendingDocking: boolean, automaticCalculationUpdate: boolean): void;
1300
1311
  planObjectConfigurationUpdated(planObjectId: number, configuration: ConfigurationString, hash: string, _rootPlanComponentId: number, _valid: boolean, pendingDocking: boolean): Promise<void>;
1301
1312
  private _onBoundsUpdate;
1302
1313
  planObjectDeleted(): void;
@@ -1352,6 +1363,9 @@ export declare class ConfiguratorKernelAccess extends CommonKernelAccess {
1352
1363
  listOfVariantsError(dbId: RapiId, error: string): void;
1353
1364
  addDebugClient(debugClient: DebugClient): void;
1354
1365
  configureExternalObjectApi(_externalObjectSetting?: ExternalObjectApiConfiguration): void;
1366
+ evaluateJsScript(objectOrComponentId: number, name: string, argumentObject: any): void;
1367
+ getComponentBounds(componentId: number, animationValueMap?: AnimationValueMap): KernelComponentBounds;
1368
+ updateComponentBounds(component: RoomleComponent): void;
1355
1369
  }
1356
1370
 
1357
1371
  export declare interface ConfiguratorKernelAccessCallbackI extends KernelAccessCallbackI {
@@ -1361,7 +1375,7 @@ export declare interface ConfiguratorKernelAccessCallbackI extends KernelAccessC
1361
1375
 
1362
1376
  export declare interface ConfiguratorKernelCallbackI extends CommonConfiguratorKernelCallbackI {
1363
1377
  planObjectCreated(conversationId: number, planObjectId: number): void;
1364
- planObjectUpdated(planObject: PlanObjectKernel, pendingDocking: boolean): void;
1378
+ planObjectUpdated(planObject: PlanObjectKernel, pendingDocking: boolean, automaticCalculationUpdate: boolean): void;
1365
1379
  planObjectConfigurationUpdated(planObjectId: number, configuration: ConfigurationString, hash: string, pendingDocking: boolean): void;
1366
1380
  configurationLoaded(conversationId: number, objectId: number, componentId: number, hash: string, errors: any, isFreeFlying: boolean): void;
1367
1381
  Editor3dAddDockPreview(componentId: number, previewId: number, componentType: KernelComponentType): void;
@@ -1410,7 +1424,7 @@ export declare interface ConfiguratorKernelClass {
1410
1424
  setPlanObjectParameter(planObjectId: number, parameterKey: string, value: string): void;
1411
1425
  dockComponent(childId: number, childDockId: number, parentId: number, parentDockId: number, position?: KernelVector3): void;
1412
1426
  getComponent(componentId: number): KernelComponent;
1413
- getComponentBounds(componentId: number, animationValues: string[]): KernelAssembledObjectBounds;
1427
+ getComponentBounds(componentId: number, animationValues: string[]): KernelComponentBounds;
1414
1428
  getComponentId(componentId: number): RapiId;
1415
1429
  isExternalPlanObject(objectOrPlanComponentId: number): boolean;
1416
1430
  getComponentOrModuleInformation(objectOrPlanComponentId: number): KernelObjectInformation;
@@ -1443,6 +1457,10 @@ export declare interface ConfiguratorKernelClass {
1443
1457
  loadExternalAttributeDefinition(serializedDefinition: string): void;
1444
1458
  setExternalObjectConstructionProperties(serializedProperties: string): void;
1445
1459
  registerDebugClient(debugClient: DebugClient): void;
1460
+ getGlobalParameterValue(objectOrComponentId: number, name: string): string;
1461
+ getRuntimeIdOfRootComponent(objectOrComponentId: number): number;
1462
+ getRuntimeIdsOfChildComponents(objectOrComponentId: number): number[];
1463
+ getComponentParameterValue(objectOrComponentId: number, name: string): string;
1446
1464
  }
1447
1465
 
1448
1466
  export declare interface ConfiguratorKernelContainer {
@@ -1476,7 +1494,6 @@ export declare interface ConfiguratorKernelContainer {
1476
1494
  export declare class ConfiguratorPlanObjectViewModel extends PlanObjectViewModel {
1477
1495
  private _rootComponentRuntimeId;
1478
1496
  private _rootComponentId;
1479
- private _isExternalObject;
1480
1497
  constructor(planObject: PlanObject);
1481
1498
  addRootComponent(component: RoomleComponent): void;
1482
1499
  addChildEntityComponent(component: RoomleComponent): void;
@@ -1562,7 +1579,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1562
1579
  protected _configuratorUiCallbacks: ConfiguratorUiCallbacks;
1563
1580
  protected _plannerKernelAccess: PlannerKernelAccess;
1564
1581
  protected _globalInitData: GlobalInitData;
1565
- protected _viewModel: ConfiguratorViewModel;
1582
+ _viewModel: ConfiguratorViewModel;
1566
1583
  private _componentFactory;
1567
1584
  protected _highlightHelper: HighlightHelper;
1568
1585
  private _dimensionHelper;
@@ -1582,7 +1599,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1582
1599
  enableEvents(): void;
1583
1600
  enableConfiguratorEvents(): void;
1584
1601
  disableConfiguratorEvents(): void;
1585
- protected _getViewModel(): ConfiguratorViewModel;
1602
+ get viewModel(): ConfiguratorViewModel;
1586
1603
  protected _getKernelAccess(): PlannerKernelAccess;
1587
1604
  private _showDockings;
1588
1605
  cancelDockings(): void;
@@ -1592,6 +1609,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1592
1609
  private _onDimensionsAdded;
1593
1610
  private _onHoverOff;
1594
1611
  private _highlightComponent;
1612
+ private _highlightSubModules;
1595
1613
  protected shouldClearShadowsAndAO(): boolean;
1596
1614
  resume(): void;
1597
1615
  private _materialLoaded;
@@ -1667,7 +1685,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1667
1685
  };
1668
1686
  private _permissionToDeleteComponent;
1669
1687
  componentUpdated(component: RoomleComponent, kernelComponent: KernelComponent): void;
1670
- planObjectUpdated(planObject: PlanObjectKernel, geometryChanged: boolean, pendingDocking: boolean): void;
1688
+ planObjectUpdated(planObject: PlanObjectKernel, geometryChanged: boolean, pendingDocking: boolean, automaticCalculationUpdate: boolean): void;
1671
1689
  componentDeleted(component: RoomleComponent): void;
1672
1690
  previewConstructionDone(_component: RoomleComponent, hasPreviews: boolean): void;
1673
1691
  configurationLoaded(component: RoomleComponent, isFreeFlying: boolean): void;
@@ -1694,7 +1712,6 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1694
1712
  getComponent(componentRuntimeId: number): KernelComponent;
1695
1713
  cameraBehaviourChanged(updateDistance?: boolean): void;
1696
1714
  protected _setCameraControlListeners(): void;
1697
- protected _shouldRenderUi(): boolean;
1698
1715
  protected setEventHandlerObject(object: Object3D): void;
1699
1716
  protected _readyForRender(): void;
1700
1717
  getComponentFromRuntimeId(elementId: number): RoomleComponent | null;
@@ -1709,7 +1726,7 @@ export declare class ConfiguratorSceneManager extends SceneManager implements Co
1709
1726
  private _removeCustomComponentDimensions;
1710
1727
  clearHighlighting(): void;
1711
1728
  getExternalSubArticles(_id: number): PosArticle[];
1712
- protected _updateHighlightHelper(object?: Object3D | null): void;
1729
+ protected _updateHighlightHelper(invalidate?: boolean, object?: Object3D | null): void;
1713
1730
  }
1714
1731
 
1715
1732
  export declare class ConfiguratorUiCallbacks extends UiCallback implements ConfiguratorDebugCallbacks {
@@ -2072,7 +2089,7 @@ export declare class ConfiguratorViewModel implements ConfiguratorKernelCallback
2072
2089
  finishParameterChange(resolve: () => void, _reject: () => void): void;
2073
2090
  planObjectConfigurationUpdated(planObjectId: number, _configuration: ConfigurationString, _hash: string, pendingDocking: boolean): void;
2074
2091
  planObjectCreated(_conversationId: number, configurationRuntimeId: number): void;
2075
- planObjectUpdated(planObject: PlanObjectKernel, pendingDocking: boolean): void;
2092
+ planObjectUpdated(planObject: PlanObjectKernel, pendingDocking: boolean, automaticCalculationUpdate: boolean): void;
2076
2093
  sceneCleared(): void;
2077
2094
  setListener(listener: ConfiguratorViewModelCallbackI): void;
2078
2095
  getBoundingBox(excludeEnvironment?: boolean): Box3 | null;
@@ -2104,7 +2121,7 @@ export declare class ConfiguratorViewModel implements ConfiguratorKernelCallback
2104
2121
  export declare interface ConfiguratorViewModelCallbackI {
2105
2122
  componentUpdated(component: RoomleComponent, kernelComponent: KernelComponent): void;
2106
2123
  componentDeleted(component: RoomleComponent): void;
2107
- planObjectUpdated(planObject: PlanObjectKernel, geometryChanged: boolean, pendingDocking: boolean): void;
2124
+ planObjectUpdated(planObject: PlanObjectKernel, geometryChanged: boolean, pendingDocking: boolean, automaticCalculationUpdate: boolean): void;
2108
2125
  planObjectConstructionDone(planObject: PlanObjectKernel): void;
2109
2126
  previewConstructionDone(component: RoomleComponent, hasPreviews: boolean): void;
2110
2127
  configurationLoaded(component: RoomleComponent, isFreeFlying: boolean): void;
@@ -2213,6 +2230,23 @@ export declare const CORE_DOCK_PAIR_TYPE: {
2213
2230
  readonly LINE: 1;
2214
2231
  };
2215
2232
 
2233
+ export declare const CORE_DRAWING_MODE: {
2234
+ readonly WALL: 0;
2235
+ readonly ROOM_CONTOUR: 1;
2236
+ readonly CONTOUR: 2;
2237
+ };
2238
+
2239
+ export declare const CORE_EDGE_TYPE: {
2240
+ readonly WALL: 0;
2241
+ readonly EDGE: 1;
2242
+ readonly CONSTRUCTION: 2;
2243
+ };
2244
+
2245
+ export declare const CORE_FLOOR_TYPE: {
2246
+ readonly DEFAULT: 0;
2247
+ readonly TERRAIN: 1;
2248
+ };
2249
+
2216
2250
  export declare const CORE_HELP_LINE_TYPE: {
2217
2251
  readonly NONE: 0;
2218
2252
  readonly WALL_SNAP_LEVEL: 1;
@@ -2524,6 +2558,10 @@ export declare const DRAW_PREVIEW_MODES: {
2524
2558
  readonly VECTOR: "vector";
2525
2559
  };
2526
2560
 
2561
+ export declare interface DrawingMode {
2562
+ value: Enumify_3<typeof CORE_DRAWING_MODE>;
2563
+ }
2564
+
2527
2565
  export declare const enum DrawingType {
2528
2566
  CONTINOUS = 0,
2529
2567
  CLICK_PER_CLICK = 1
@@ -2566,6 +2604,10 @@ export declare interface DynamicLightSettingSource {
2566
2604
  ls?: PreDefinedLightSettings;
2567
2605
  }
2568
2606
 
2607
+ export declare interface EdgeType {
2608
+ value: Enumify_3<typeof CORE_EDGE_TYPE>;
2609
+ }
2610
+
2569
2611
  export declare interface Element_2 {
2570
2612
  id: string;
2571
2613
  label: string;
@@ -2947,12 +2989,14 @@ export declare interface ExternalObjectAPI {
2947
2989
  getExternalRoomInformation(): Promise<ExternalRoomInformation>;
2948
2990
  /**
2949
2991
  * It generates a snapshot of the external object in the plan without saving any data.
2950
- * The snapshot includes order data, room information, the plan XML, GLBs of the complete scene,
2992
+ * By default, the snapshot includes order data, room information, the plan XML, GLBs of the complete scene,
2951
2993
  * and only the objects in the scene, as well as perspective images and a top image.
2952
2994
  * The complete XML plan is returned. The assets are returned as base64 strings.
2995
+ * The `requestData` parameter can be used to control which parts of the snapshot are generated, returning only requested properties to improve performance. If `requestData` is passed, omitted properties will be `undefined`.
2996
+ * @param requestData An optional filter object indicating which snapshot properties to generate.
2953
2997
  * @returns the snapshot of the external objects
2954
2998
  */
2955
- getExternalObjectSnapshot(): Promise<ExternalObjectSnapshotData | null>;
2999
+ getExternalObjectSnapshot(requestData?: ExternalObjectSnapshotRequest): Promise<ExternalObjectSnapshotData | null>;
2956
3000
  /**
2957
3001
  * It generates a snapshot of the external object and saves the data and assets in the Roomle backend.
2958
3002
  * The snapshot includes order data, room information, the plan XML, GLBs of the complete scene,
@@ -3018,6 +3062,7 @@ export declare interface ExternalObjectLoadConfiguration {
3018
3062
  respondWithPositionInPlan: boolean;
3019
3063
  lockCallbacks: boolean;
3020
3064
  tryToMergeNewGroups: boolean;
3065
+ calculationUpdate: boolean;
3021
3066
  moduleIdMap: ExternalObjectLoadingIdMap[];
3022
3067
  }
3023
3068
 
@@ -3060,13 +3105,23 @@ export declare interface ExternalObjectSegment {
3060
3105
  }
3061
3106
 
3062
3107
  export declare interface ExternalObjectSnapshotData {
3063
- orderData: HiOrderData | null | undefined;
3064
- planXML: string;
3065
- objectGlb: string | undefined;
3066
- perspectiveImage: string | undefined;
3067
- topImage: string | undefined;
3068
- perspectiveObjectImage: string | undefined;
3069
- topObjectImage: string | undefined;
3108
+ orderData?: HiOrderData | null;
3109
+ planXML?: string;
3110
+ objectGlb?: string;
3111
+ perspectiveImage?: string;
3112
+ topImage?: string;
3113
+ perspectiveObjectImage?: string;
3114
+ topObjectImage?: string;
3115
+ }
3116
+
3117
+ export declare interface ExternalObjectSnapshotRequest {
3118
+ orderData?: boolean;
3119
+ planXML?: boolean;
3120
+ objectGlb?: boolean;
3121
+ perspectiveImage?: boolean;
3122
+ topImage?: boolean;
3123
+ perspectiveObjectImage?: boolean;
3124
+ topObjectImage?: boolean;
3070
3125
  }
3071
3126
 
3072
3127
  export declare interface ExternalObjectSnapshotSaveResult {
@@ -3166,6 +3221,7 @@ export declare interface FeatureFlags {
3166
3221
  /* Excluded from this release type: advancedDimensioning */
3167
3222
  /* Excluded from this release type: webGpu */
3168
3223
  /* Excluded from this release type: advancedHighlighting */
3224
+ /* Excluded from this release type: fence */
3169
3225
  }
3170
3226
 
3171
3227
  export declare interface FetchOptions {
@@ -3205,7 +3261,7 @@ export declare interface FloorAreaData<Vector2Type = Vector3, Vector3Type = Vect
3205
3261
 
3206
3262
  export declare type FloorAreaDataTransferable = FloorAreaData<Position2, Position3>;
3207
3263
 
3208
- export declare abstract class FloorMaterial extends BaseMaterial {
3264
+ export declare class FloorMaterial extends BaseMaterial {
3209
3265
  uvScale(): KernelVector3f;
3210
3266
  rotation(): KernelVector3f;
3211
3267
  }
@@ -3217,6 +3273,10 @@ export declare class FloorPlanElementViewModel extends PlanElementViewModel {
3217
3273
  private calculateTextVisibility;
3218
3274
  }
3219
3275
 
3276
+ export declare interface FloorType {
3277
+ value: Enumify_3<typeof CORE_FLOOR_TYPE>;
3278
+ }
3279
+
3220
3280
  /**
3221
3281
  * Minimal structural type that both dat.gui `GUI` folders (WebGL) and three.js
3222
3282
  * `ParametersGroup` (WebGPU) satisfy, this allows building
@@ -3251,6 +3311,12 @@ export declare class GeometryHelpLineArray extends EmsArray<GeometryHelpLine> {
3251
3311
 
3252
3312
  export declare const getCatalogIdFromConfigurationHash: (id: RapiId) => RapiId | null;
3253
3313
 
3314
+ export declare interface GLBRenderWorkerListener {
3315
+ onStart(count: number): void;
3316
+ onElementFinished(finishedElements: number): void;
3317
+ onFinished(zip: any): void;
3318
+ }
3319
+
3254
3320
  export declare class GlbViewer extends Main {
3255
3321
  private _viewer;
3256
3322
  protected setupGlobals(): void;
@@ -3262,6 +3328,39 @@ export declare class GlbViewer extends Main {
3262
3328
  protected getContextName(): string;
3263
3329
  }
3264
3330
 
3331
+ export declare class GlbViewerCameraBehaviour extends CameraBehaviour {
3332
+ get cameraControl(): AdjustableCameraControl3D;
3333
+ updateCameraOnItemLoaded(bounds: Box3): Promise<void>;
3334
+ externalApiMoveCamera(cameraParameter: CameraParameter): Promise<void>;
3335
+ }
3336
+
3337
+ export declare class GLBViewerSceneManager extends SceneManager implements GLBRenderWorkerListener {
3338
+ private _glbInputManager;
3339
+ private _rapiAccess;
3340
+ private _currentGLB;
3341
+ private _standardSceneBackgroundColor;
3342
+ private _itemsCount;
3343
+ constructor(creator: string, offset: CanvasOffset);
3344
+ protected createCameraControl(_mode: Enumify_2<typeof CAMERA_TYPE>, _offset: CanvasOffset): void;
3345
+ protected _getInputManager(): InputManager;
3346
+ loadStaticItem(id: string, callback?: (percent: number) => void): Promise<void>;
3347
+ loadGLB(url: string, automaticallyAdjustCamera?: boolean, scaling?: Vector3, callback?: (percent: number) => void): Promise<void>;
3348
+ preparePerspectiveImage(options?: PrepareImageOptions, providedRenderer?: WebGLRenderer): Promise<Base64Image>;
3349
+ adjustCamera(position: Vector3, yaw: number, pitch: number, fov: number): void;
3350
+ onStart(count: number): void;
3351
+ onElementFinished(itemsFinished: number): void;
3352
+ onFinished(_zip: any): void;
3353
+ clearScene(): void;
3354
+ enableHD(): void;
3355
+ sceneChanged(): void;
3356
+ getBounds(): Box3 | null;
3357
+ protected get glbViewerCameraBehaviour(): GlbViewerCameraBehaviour;
3358
+ getGeometryBounds(): Box3 | null;
3359
+ cameraBehaviourChanged(updateDistance?: boolean): void;
3360
+ moveCamera(cameraParameter: CameraParameter): Promise<void>;
3361
+ protected _readyForRender(): void;
3362
+ }
3363
+
3265
3364
  export declare class GlbViewerUiCallbacks {
3266
3365
  }
3267
3366
 
@@ -3406,7 +3505,7 @@ export declare interface GlueLogic {
3406
3505
  getVerifiedGroupAttributeOptions(groupId: string, attributeIds?: string | string[]): Promise<Record<string, CheckDropDownResult> | undefined>;
3407
3506
  updateProperty(rootModuleId?: string, propertyName?: string, propertyValue?: string | number | boolean): void;
3408
3507
  findValidSubArticles(posGroupIds: string[] | string): PosArticle[];
3409
- getValidContainerModulesForSubArticle(posGroupIds: string[] | string, subArticleId: string): ExternalObjectValidContainerModules[];
3508
+ getValidContainerModulesForSubArticle(posGroupIds: string[] | string, subArticleId: string): ValidContainerModules[];
3410
3509
  addSubArticle(articleId: string, rootModuleId: string, parentModuleId: string, insertPosition?: number[]): void;
3411
3510
  deleteSubArticles(groupId: string, subModuleId: string[] | string): Promise<void>;
3412
3511
  arrangeRootModulesOfGroup(changedGroup: ExternalObjectGroup): Promise<void>;
@@ -3450,25 +3549,179 @@ export declare class HeadlessRoomleSdk {
3450
3549
  private _plannerMain;
3451
3550
  private _configurator;
3452
3551
  private _configuratorMain;
3552
+ private _glbViewer;
3553
+ private _glbViewerMain;
3453
3554
  private _initialized;
3555
+ private _configuratorReady;
3556
+ private _plannerReady;
3557
+ private _glbViewerReady;
3558
+ private _loadedConfigurationId;
3559
+ private _loadedPlanId;
3560
+ private _loadedStaticItemId;
3454
3561
  private _width;
3455
3562
  private _height;
3563
+ private _loaderQueue;
3564
+ /**
3565
+ * Create and initialize a headless SDK instance.
3566
+ * @param initData Configurator id plus optional canvas size and global init fields.
3567
+ * @returns Initialized SDK instance.
3568
+ */
3456
3569
  static create(initData: HeadlessInitData): Promise<HeadlessRoomleSdk>;
3457
3570
  private _init;
3458
3571
  private _registerHeadlessServices;
3572
+ private _makeStubElement;
3573
+ /**
3574
+ * Boot and initialize the configurator module ahead of first load.
3575
+ * @param initData Optional per-module init overrides.
3576
+ */
3577
+ prewarmConfigurator(initData?: Partial<InitDataDefinition>): Promise<void>;
3578
+ /**
3579
+ * Boot and initialize the planner module ahead of first load.
3580
+ * @param initData Optional per-module init overrides.
3581
+ */
3582
+ prewarmPlanner(initData?: Partial<InitDataDefinition>): Promise<void>;
3583
+ /**
3584
+ * Boot and initialize the GLB viewer module ahead of first load.
3585
+ * @param initData Optional per-module init overrides.
3586
+ */
3587
+ prewarmGlbViewer(initData?: Partial<InitDataDefinition>): Promise<void>;
3588
+ /**
3589
+ * Load a saved configuration via the RAPI `/configurations/` endpoint.
3590
+ * @param configurationId Multi-segment id like `catalog:item:HASH`.
3591
+ * @param initData Optional per-module init overrides for prewarm.
3592
+ */
3459
3593
  loadConfiguration(configurationId: RapiId, initData?: Partial<InitDataDefinition>): Promise<void>;
3594
+ /**
3595
+ * Load a configurable item via the RAPI `/items/` endpoint.
3596
+ * @param itemId Single-segment id like `catalog:item`.
3597
+ * @param initData Optional per-module init overrides for prewarm.
3598
+ */
3599
+ loadConfigurableItemById(itemId: RapiId, initData?: Partial<InitDataDefinition>): Promise<void>;
3600
+ private _loadIntoConfigurator;
3601
+ /**
3602
+ * Load a static (non-configurable) item via the GLB viewer.
3603
+ * @param staticItemId Catalog item id whose RAPI record has no `configuration`.
3604
+ * @param initData Optional per-module init overrides for prewarm.
3605
+ */
3606
+ loadStaticItem(staticItemId: string, initData?: Partial<InitDataDefinition>): Promise<void>;
3607
+ /**
3608
+ * Temporary workaround:
3609
+ * GLB-loaded scenes commonly contain hundreds of thousands of triangles
3610
+ * (high-poly furniture/cars). With the default 1024² shadow map those
3611
+ * triangles cast a self-shadow pattern back onto themselves that the
3612
+ * shadow comparison can't resolve cleanly — it appears as a dense
3613
+ * triangle/herringbone overlay covering every PBR-shaded surface
3614
+ * (visible on flat-coloured car bodies, wood slats, etc.). The
3615
+ * artifact is specific to headless's GL backend; in the browser the
3616
+ * same scene renders fine.
3617
+ *
3618
+ * Walking the freshly-loaded scene and clearing `castShadow` on every
3619
+ * mesh removes the cause of the acne while keeping `receiveShadow`,
3620
+ * so static items still pick up shadows from external casters and
3621
+ * full PBR direct-light shading is preserved.
3622
+ */
3623
+ private _suppressGlbSelfShadowing;
3624
+ /**
3625
+ * Auto-dispatch by id shape using the shared id-inferrer utilities so
3626
+ * detection stays in lock-step with the UI's `SdkConnector.loadObject`:
3627
+ * - `component@…` → not supported in headless, throws
3628
+ * - 0 colons (plan id) → {@link loadPlan}
3629
+ * - 1 colon (item id) → {@link loadStaticItem} if RAPI says the
3630
+ * item has no `configuration`, otherwise
3631
+ * {@link loadConfigurableItemById}
3632
+ * - 2+ colons (config id) → {@link loadConfiguration}
3633
+ *
3634
+ * RAPI lookup failures during the item branch are propagated rather than
3635
+ * swallowed — a transient 5xx routing the call to the wrong loader would
3636
+ * surface as an unrelated downstream error.
3637
+ */
3638
+ loadObject(id: string, initData?: Partial<InitDataDefinition>): Promise<void>;
3639
+ /**
3640
+ * Load a plan into the planner.
3641
+ * @param planId Plan id (no colons).
3642
+ * @param initData Optional per-module init overrides for prewarm.
3643
+ */
3460
3644
  loadPlan(planId: string, initData?: Partial<InitDataDefinition>): Promise<void>;
3645
+ /**
3646
+ * Serialises concurrent load operations using a promise-chain queue.
3647
+ * Each call chains its task onto the previous queue tail so they run
3648
+ * one at a time — listener mutations never overlap across an await.
3649
+ * Errors in one task do not stall subsequent ones (the queue tail is
3650
+ * always advanced in a settled state).
3651
+ */
3652
+ private _withLoader;
3653
+ /**
3654
+ * Wait for the active scene to fire its onReadyForRender callback —
3655
+ * fired by each scene manager once `_itemsLoaded` (planner) /
3656
+ * `loadConfiguration` (configurator) / `loadStaticItem` (GLB viewer)
3657
+ * has finished constructing the scene and queued its materials. The
3658
+ * callback is armed via {@link _armOnReadyForRender} *before* the load
3659
+ * begins so synchronous firings (the GLB viewer does this) are still
3660
+ * caught.
3661
+ */
3662
+ private _settleScene;
3663
+ /**
3664
+ * Pre-arms an onReadyForRender listener on the *global* callback (shared
3665
+ * across configurator/planner/GLB viewer) so that it captures even
3666
+ * synchronous firings during the upcoming load. Restores the previous
3667
+ * callback after firing. Using the global callback rather than each
3668
+ * module's api.callbacks is necessary because the GLB viewer only fires
3669
+ * the global one ([glb-viewer-scene-manager.ts:355](packages/web-sdk/packages/glb-viewer-core/src/webgl/glb-viewer-scene-manager.ts:355)).
3670
+ */
3671
+ private _armOnReadyForRender;
3672
+ private _onReadyForRenderArmed;
3673
+ private _getPlannerListenerInfo;
3674
+ private _getConfiguratorListenerInfo;
3675
+ /**
3676
+ * Export the active scene as GLB.
3677
+ * @param outputPath Optional file path to write the buffer to.
3678
+ * @returns The GLB bytes as an ArrayBuffer.
3679
+ */
3461
3680
  exportGLB(outputPath?: string): Promise<ExportResult>;
3681
+ /**
3682
+ * Export the active scene as USDZ.
3683
+ * @param outputPath Optional file path to write the buffer to.
3684
+ * @returns The USDZ bytes as an ArrayBuffer.
3685
+ */
3462
3686
  exportUSDZ(outputPath?: string): Promise<ExportResult>;
3687
+ /**
3688
+ * Returns the active top-level API (planner or configurator) based on what
3689
+ * was last loaded. `loadPlan()` and `loadConfiguration()` are mutually
3690
+ * exclusive — each one nulls the other's id — so this resolves cleanly.
3691
+ */
3692
+ private _getActiveApi;
3693
+ /**
3694
+ * Returns the scene manager of whichever module is active. All exporters
3695
+ * route through here so plan-mode and config-mode share a single code path.
3696
+ */
3697
+ private _getActiveSceneManager;
3463
3698
  private _export;
3699
+ /**
3700
+ * Render a perspective screenshot preserving the scene background.
3701
+ * @param outputPath Optional file path to write the PNG to.
3702
+ * @param options ssaa, size, quality, rotationY.
3703
+ * @returns Data URL of the rendered image.
3704
+ */
3464
3705
  exportScreenshot(outputPath?: string, options?: ScreenshotExportOptions): Promise<{
3465
3706
  dataUrl: string;
3466
3707
  }>;
3708
+ /**
3709
+ * Render a framed perspective image of the scene.
3710
+ * @param outputPath Optional file path to write the PNG to.
3711
+ * @param options ssaa, size, showDimensions, rotationY.
3712
+ * @returns Data URL plus final image dimensions.
3713
+ */
3467
3714
  exportPerspectiveImage(outputPath?: string, options?: PerspectiveImageExportOptions): Promise<{
3468
3715
  dataUrl: string;
3469
3716
  width: number;
3470
3717
  height: number;
3471
3718
  }>;
3719
+ /**
3720
+ * Render a top-down image of the scene. Not supported for static items.
3721
+ * @param outputPath Optional file path to write the PNG to.
3722
+ * @param options ssaa, size, showDimensions.
3723
+ * @returns Data URL plus final image dimensions.
3724
+ */
3472
3725
  exportTopImage(outputPath?: string, options?: TopImageExportOptions): Promise<{
3473
3726
  dataUrl: string;
3474
3727
  width: number;
@@ -3478,6 +3731,7 @@ export declare class HeadlessRoomleSdk {
3478
3731
  private _ssaaDownscale;
3479
3732
  getConfiguratorApi(): RoomleConfigurator<readonly []>;
3480
3733
  getPlannerApi(): RoomlePlanner<readonly []>;
3734
+ /** Destroy any prewarmed configurator, planner, and GLB viewer modules. */
3481
3735
  destroy(): Promise<void>;
3482
3736
  private _ensureInitialized;
3483
3737
  }
@@ -3539,6 +3793,7 @@ export declare interface HighlightHelper {
3539
3793
  checkPreviewVisibility(configuratorViewModel: ConfiguratorViewModel): void;
3540
3794
  areAllComponentsInFrustum(previews: RoomleComponent[]): boolean;
3541
3795
  onSelectionChanged(object: Object3D, componentIds: number[], callback?: () => void): void;
3796
+ invalidate?(): void;
3542
3797
  }
3543
3798
 
3544
3799
  export declare type HiLoadObjectReason = (typeof HI_LOAD_OBJECT_REASON)[keyof typeof HI_LOAD_OBJECT_REASON];
@@ -3674,6 +3929,8 @@ export declare class IdbManager implements Context {
3674
3929
  export declare interface ImageExportOptions {
3675
3930
  /** Supersampling anti-aliasing factor. Defaults to 2. */
3676
3931
  ssaa?: number;
3932
+ /** Output image size in pixels. Defaults to 1024. */
3933
+ size?: number;
3677
3934
  }
3678
3935
 
3679
3936
  export declare type ImageKeysOnObject = 'perspectiveImage' | 'topImage';
@@ -3774,6 +4031,7 @@ export declare class InitData implements Context, Omit<InitDataDefinition, 'colo
3774
4031
  discardExternalObjectsWhenLoadingPlan?: boolean;
3775
4032
  featureFlags: FeatureFlags;
3776
4033
  meshRaycasting?: boolean;
4034
+ defaultFloorMaterial?: number | string;
3777
4035
  mode?: Enumify_2<typeof CAMERA_TYPE>;
3778
4036
  edit?: boolean;
3779
4037
  moc?: boolean;
@@ -4056,6 +4314,11 @@ export declare interface KernelComponent {
4056
4314
  childAnimationTransformations: ComponentAnimationTransformation[];
4057
4315
  }
4058
4316
 
4317
+ export declare interface KernelComponentBounds {
4318
+ boxForMeasurement: KernelCube;
4319
+ geometryBounds: KernelAssembledObjectBounds;
4320
+ }
4321
+
4059
4322
  export declare interface KernelComponentDocking {
4060
4323
  componentId: number;
4061
4324
  isRootComponent: boolean;
@@ -4125,6 +4388,7 @@ export declare interface KernelFloor extends KernelObject {
4125
4388
  area: number;
4126
4389
  material: KernelFloorMaterial;
4127
4390
  readonly parapetHeight: number;
4391
+ readonly floorType: FloorType;
4128
4392
  getCenter: () => KernelVector3;
4129
4393
  getRandomPointInside: () => KernelVector3;
4130
4394
  getLabelPosition: () => KernelVector3;
@@ -4445,6 +4709,7 @@ export declare interface KernelWall extends KernelObject {
4445
4709
  readonly wallType: KernelEnum;
4446
4710
  readonly leftNormal: KernelVector3;
4447
4711
  readonly rightNormal: KernelVector3;
4712
+ readonly edgeType: EdgeType;
4448
4713
  getAngle: () => number;
4449
4714
  }
4450
4715
 
@@ -4800,8 +5065,8 @@ export declare class MeasurementLinePlanElementViewModel extends PlanElementView
4800
5065
  private updatePointDraggableGeometry;
4801
5066
  getPoint1Draggable(): DraggableNode;
4802
5067
  getPoint2Draggable(): DraggableNode;
4803
- getPoint1DraggableBoundingBox(): Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material | Material[], Object3DEventMap>;
4804
- getPoint2DraggableBoundingBox(): Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material | Material[], Object3DEventMap>;
5068
+ getPoint1DraggableBoundingBox(): Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material<MaterialEventMap> | Material<MaterialEventMap>[], Object3DEventMap>;
5069
+ getPoint2DraggableBoundingBox(): Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material<MaterialEventMap> | Material<MaterialEventMap>[], Object3DEventMap>;
4805
5070
  hidePreviewBox(): void;
4806
5071
  selectPoint1Draggable(): void;
4807
5072
  selectPoint2Draggable(): void;
@@ -4865,7 +5130,7 @@ export declare class MeshGenerator implements Context {
4865
5130
  protected _assignItem(mesh: Mesh, catalogItemId: string): Promise<void>;
4866
5131
  setMaterialLoadedListener(fun: () => void): void;
4867
5132
  removeMaterialLoadedListener(): void;
4868
- protected _createMesh(runtimeComponentId: number, geometryId: string | null, geometry: BufferGeometry): Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material, Object3DEventMap>;
5133
+ protected _createMesh(runtimeComponentId: number, geometryId: string | null, geometry: BufferGeometry): Mesh<BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>, Material<MaterialEventMap>, Object3DEventMap>;
4869
5134
  protected _getComponentMeshId(runtimeComponentId: number, geometryId: string): string;
4870
5135
  }
4871
5136
 
@@ -5091,11 +5356,8 @@ export declare class PartListParameterArray extends EmsArray<KernelPartListParam
5091
5356
  export declare class PartListParameterArray_2 extends EmsArray<KernelPartListParameter> {
5092
5357
  }
5093
5358
 
5094
- export declare interface PerspectiveImageExportOptions extends ImageExportOptions {
5095
- /** Output image size in pixels. Defaults to 1024. */
5096
- size?: number;
5359
+ export declare interface PerspectiveImageExportOptions extends ImageExportOptions, RotatableImageExportOptions {
5097
5360
  showDimensions?: boolean;
5098
- rotationY?: number;
5099
5361
  }
5100
5362
 
5101
5363
  export declare interface PerspectiveOffsetCamera extends PerspectiveCamera, OffsetCamera {
@@ -5237,7 +5499,7 @@ export declare interface PlanInteractionHandler {
5237
5499
  addPlanObjects(list: KernelObjectPtrList, findFreeSpaceInPlan: boolean): PlanObject[];
5238
5500
  addPlanObjectFromItem(object: KernelObject, position: KernelVector3, type: number, findFreeSpaceInPlan: boolean): PlanObject;
5239
5501
  addOrUpdateExternalPlanObjects(serialzedConfiguration: string | string[], position: KernelVector3, rotationInRad: number, updateConfiguration: ExternalObjectLoadConfiguration, mergedGroupIds: string | string[]): PlanObject[];
5240
- createPreviewGeometryForAddOn(objectId: string, articleId: string, groupDefinitions: string, validContainerModules: ExternalValidContainerModule[]): void;
5502
+ createPreviewGeometryForAddOn(objectId: string, objectConfiguration: string, articleId: string, groupDefinitions: string, validContainerModules: ExternalValidContainerModule[]): void;
5241
5503
  catalogItemLoaded(catalogItem: KernelCatalogItem): void;
5242
5504
  removeElement(planObject: KernelObject): void;
5243
5505
  removeObjectWithId(objectId: string): void;
@@ -5256,12 +5518,13 @@ export declare interface PlanInteractionHandler {
5256
5518
  undo(): void;
5257
5519
  redo(): void;
5258
5520
  isVectorPreviewModeEnabled(): boolean;
5521
+ getDrawingMode(): DrawingMode;
5259
5522
  sCreateUnclosedSpaceEnabled(): boolean;
5260
5523
  beginDrawing(point: {
5261
5524
  x: number;
5262
5525
  y: number;
5263
5526
  z: number;
5264
- }, vectorPreviewMode: boolean, createUnclosedSpace: boolean): void;
5527
+ }, drawingMode: DrawingMode, createUnclosedSpace: boolean): void;
5265
5528
  endDrawing(point: {
5266
5529
  x: number;
5267
5530
  y: number;
@@ -5310,6 +5573,8 @@ export declare interface PlanInteractionHandler {
5310
5573
  setWallRightMaterial(wall: KernelWall, material: KernelWallMaterial): void;
5311
5574
  setFloorMaterial(floor: KernelFloor, material: KernelFloorMaterial): void;
5312
5575
  setFloorLabelObject(floor: KernelFloor, serializedLabelObject: string): void;
5576
+ setFloorType(floor: KernelFloor, floorType: FloorType): void;
5577
+ setEdgeType(wall: KernelWall, edgeType: EdgeType): void;
5313
5578
  getContinuousDrawingManager(): ContinuousDrawingManager;
5314
5579
  setSnapFeedbackWhileDrawing(enabled: boolean): void;
5315
5580
  consistsOfMergedComponents(object: KernelObject): boolean;
@@ -5339,6 +5604,7 @@ export declare interface PlanInteractionHandler {
5339
5604
  objectToObjectSnapMode: SnapMode;
5340
5605
  dockWhenSnap: boolean;
5341
5606
  unDockOnMove: boolean;
5607
+ enableTerrain: boolean;
5342
5608
  }
5343
5609
 
5344
5610
  export declare abstract class PlanMeasure extends PlanElement {
@@ -5457,6 +5723,11 @@ export declare class PlannerFpCameraBehaviour extends PlannerCameraBehaviour {
5457
5723
  }
5458
5724
 
5459
5725
  export declare interface PlannerInitData {
5726
+ /**
5727
+ * @description Sets the default floor material when creating a new plan or drawing.
5728
+ * Can be a number (RGB color) or a string (material ID).
5729
+ */
5730
+ defaultFloorMaterial?: number | string;
5460
5731
  /**
5461
5732
  * @description Select with which camera mode to start initially.
5462
5733
  * usage: mode=2D
@@ -5475,14 +5746,17 @@ export declare interface PlannerInitData {
5475
5746
  }
5476
5747
 
5477
5748
  export declare class PlannerKernelAccess extends ConfiguratorKernelAccess {
5478
- private _kernelAccessCallback;
5479
5749
  private _roomlePlannerUiCallback;
5480
5750
  private _planInteractionHandler;
5481
5751
  private _plannerKernelCallbackListener;
5752
+ private _plannerReadyListeners;
5753
+ private _plannerReady;
5754
+ addListener(listener: KernelAccessCallbackI): void;
5755
+ removeListener(listener: KernelAccessCallbackI): void;
5482
5756
  private _homagIntelligence;
5483
5757
  get kernelContainer(): any;
5484
5758
  constructor(creator: string);
5485
- protected _loadSuccess(): void;
5759
+ protected _loadSuccess(): Promise<void>;
5486
5760
  protected _loadError(): void;
5487
5761
  get homagIntelligence(): HomagIntelligence | null;
5488
5762
  setHomagIntelligence(homagIntelligence: HomagIntelligence | null): void;
@@ -5633,6 +5907,7 @@ export declare interface PlannerKernelContainer {
5633
5907
  WallMaterial: WallMaterial;
5634
5908
  Plan: Plan;
5635
5909
  DrawingType: DrawingType;
5910
+ DrawingMode: DrawingMode;
5636
5911
  ResizingAnchor: ResizingAnchor;
5637
5912
  toResizingAnchor: (a: number) => ResizingAnchor;
5638
5913
  PlanInteractionHandler: PlanInteractionHandler;
@@ -5806,6 +6081,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
5806
6081
  private _completelyLoaded;
5807
6082
  private _configurableItemGuard;
5808
6083
  private _planCompletelyLoadedGuard;
6084
+ private _fullyReadyGuard;
5809
6085
  private _dragStartBounds;
5810
6086
  currentSelection: SelectionPayload | null;
5811
6087
  private _paperBackground;
@@ -5836,7 +6112,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
5836
6112
  private _activateElement;
5837
6113
  planCleared(): void;
5838
6114
  planHistoryStateChanged(): void;
5839
- protected _getViewModel(): PlanViewModel;
6115
+ get viewModel(): PlanViewModel;
5840
6116
  private _getDragPosition;
5841
6117
  private _hideAllMeasurementsNodeOnElementChange;
5842
6118
  private _onSelectionChange;
@@ -6588,6 +6864,7 @@ export declare interface PrepareImageOptions {
6588
6864
  showDimensions?: boolean;
6589
6865
  runtimeIds?: number[];
6590
6866
  rotationY?: number;
6867
+ preserveSceneBackground?: boolean;
6591
6868
  }
6592
6869
 
6593
6870
  export declare interface PrepareImageOptionsPlanner extends PrepareImageOptions {
@@ -8265,6 +8542,7 @@ export declare class RoomleGLBViewer implements GlobalAPI, Context, ExternalEmbe
8265
8542
  getCameraOffset(): CanvasOffset;
8266
8543
  init(element: HTMLElement, initData?: InitDataDefinition): Promise<void>;
8267
8544
  private _initPromiseCallback;
8545
+ getSceneManager(): GLBViewerSceneManager;
8268
8546
  /**
8269
8547
  * Remove the current glb from the scene if it exists
8270
8548
  */
@@ -8292,7 +8570,7 @@ export declare class RoomleGLBViewer implements GlobalAPI, Context, ExternalEmbe
8292
8570
  * @param sceneSettings
8293
8571
  */
8294
8572
  loadSceneSetting(sceneSettings: SceneSettings): Promise<void>;
8295
- preparePerspectiveImage(): Promise<Base64Image>;
8573
+ preparePerspectiveImage(options?: PrepareImageOptions): Promise<Base64Image>;
8296
8574
  processRenderList(jsonString: string, width?: number, height?: number): void;
8297
8575
  setOverrides(initData: Partial<InitDataDefinition & GlobalInitDataDefinition> | InitData | undefined): void;
8298
8576
  updateSize(): void;
@@ -8467,7 +8745,6 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
8467
8745
  private _homagIntelligence;
8468
8746
  private _configuratorContext;
8469
8747
  private _domHelper;
8470
- private _kernelAccessCallback;
8471
8748
  private _plannerKernelAccess;
8472
8749
  private _rapiAccess;
8473
8750
  private _singlePromiseFactory;
@@ -8748,7 +9025,7 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
8748
9025
  * @param sceneEvents
8749
9026
  */
8750
9027
  setSceneEvents(sceneEvents: SceneEvents): void;
8751
- getExternalObjectSnapshot(): Promise<ExternalObjectSnapshotData | null>;
9028
+ getExternalObjectSnapshot(requestData?: ExternalObjectSnapshotRequest): Promise<ExternalObjectSnapshotData | null>;
8752
9029
  saveExternalObjectSnapshot(parentPlanId?: RapiId): Promise<ExternalObjectSnapshotSaveResult | null>;
8753
9030
  private _getExternalObjectGroupsInPlan;
8754
9031
  private _savePlanSnapshotExternalObjects;
@@ -9276,9 +9553,12 @@ export declare class RoomleWebGPURenderer extends RoomleRenderer<WebGPURenderer>
9276
9553
  disableUiInteractionMode(): void;
9277
9554
  enableUiInteractionMode(): void;
9278
9555
  getQualityLevel(): QualityLevel;
9556
+ setCameraType(cameraType: Enumify_2<typeof CAMERA_TYPE>): void;
9557
+ switchToPlanner(renderMode: PlannerRenderMode): void;
9279
9558
  highlightObjects(selectedMeshes: Object3D[]): void;
9280
9559
  loadLutImages(_luts: LutImageDefinition[]): void;
9281
9560
  render(scene: Scene, camera: Camera): void;
9561
+ private updateCameraProjectionMatrix;
9282
9562
  private assembleRenderPasses;
9283
9563
  setAutoQuality(_autoQuality: boolean): void;
9284
9564
  setCustomShadingParameters(_customShadingParameters: CustomShadingParameters | undefined, _customShadingParametersMoc: CustomShadingParameters | undefined): void;
@@ -9306,6 +9586,12 @@ export declare interface RoomLightSourceDistribution {
9306
9586
  export declare class RoomLightSourceDistributionArray extends EmsArray<RoomLightSourceDistribution> {
9307
9587
  }
9308
9588
 
9589
+ /** Mixin for image exports that frame the scene from a rotatable camera. */
9590
+ export declare interface RotatableImageExportOptions {
9591
+ /** Camera rotation around the Y axis, in radians. */
9592
+ rotationY?: number;
9593
+ }
9594
+
9309
9595
  /**
9310
9596
  * Shared API between configurator and planner
9311
9597
  */
@@ -9436,7 +9722,7 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
9436
9722
  protected _orthographicOffsetCamera: OrthographicOffsetCamera | null;
9437
9723
  protected abstract createCameraControl(mode: Enumify_2<typeof CAMERA_TYPE>, offset: CanvasOffset): void;
9438
9724
  protected abstract _getInputManager(): InputManager;
9439
- protected get cameraBehaviour(): CameraBehaviour;
9725
+ get cameraBehaviour(): CameraBehaviour;
9440
9726
  abstract sceneChanged(): void;
9441
9727
  abstract getBounds(): Box3 | null;
9442
9728
  abstract getGeometryBounds(): Box3 | null;
@@ -9465,7 +9751,7 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
9465
9751
  protected _renderWithoutShadowsAndAO(): void;
9466
9752
  protected _requestRender(): void;
9467
9753
  protected _shouldRenderUi(): boolean;
9468
- private _renderUi;
9754
+ private _renderUiWithDepthPrepass;
9469
9755
  private _animateCamera;
9470
9756
  protected shouldClearShadowsAndAO(): boolean;
9471
9757
  protected _setupScene(_offset?: CanvasOffset, transparent?: boolean): Promise<void>;
@@ -9548,7 +9834,7 @@ export declare interface SceneSettings {
9548
9834
 
9549
9835
  export declare type SceneShadingType = Enumify<typeof SCENE_SHADING_TYPES>;
9550
9836
 
9551
- export declare interface ScreenshotExportOptions extends ImageExportOptions {
9837
+ export declare interface ScreenshotExportOptions extends ImageExportOptions, RotatableImageExportOptions {
9552
9838
  /** JPEG quality (0–1). Defaults to 1. */
9553
9839
  quality?: number;
9554
9840
  }
@@ -9683,8 +9969,6 @@ export declare interface ToolsCoreContextCallback {
9683
9969
  }
9684
9970
 
9685
9971
  export declare interface TopImageExportOptions extends ImageExportOptions {
9686
- /** Output image size in pixels. Defaults to 1024. */
9687
- size?: number;
9688
9972
  showDimensions?: boolean;
9689
9973
  }
9690
9974
 
@@ -9897,6 +10181,11 @@ export declare interface UserAction {
9897
10181
  actionLabel: number;
9898
10182
  }
9899
10183
 
10184
+ export declare interface ValidContainerModules {
10185
+ calculatedPosGroup: PosGroup;
10186
+ validContainerModules: ExternalObjectValidContainerModules[];
10187
+ }
10188
+
9900
10189
  export declare type ValuesFromObject<T> = T[keyof T];
9901
10190
 
9902
10191
  export declare class VariableArray extends EmsArray<KernelVariable> {
@@ -9970,7 +10259,7 @@ export declare interface WallExtensionType {
9970
10259
  ExtendBoth: EMSConstant;
9971
10260
  }
9972
10261
 
9973
- export declare abstract class WallMaterial extends BaseMaterial {
10262
+ export declare class WallMaterial extends BaseMaterial {
9974
10263
  }
9975
10264
 
9976
10265
  export declare class WallPlanElementViewModel extends PlanElementViewModel {