@roomle/web-sdk 3.10.0-alpha.4 → 3.10.0-alpha.6

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 (62) hide show
  1. package/lib/ConfiguratorKernel.wasm +0 -0
  2. package/lib/RoomleCore.wasm +0 -0
  3. package/lib/RoomleToolsCore.wasm +0 -0
  4. package/lib/{api-ckpzIPty.mjs → api-D64AfPG6.mjs} +2 -2
  5. package/lib/{api-ckpzIPty.mjs.map → api-D64AfPG6.mjs.map} +1 -1
  6. package/lib/asset-loader.worker-CHyN7JB1.mjs.map +1 -1
  7. package/lib/budgeteer.sw-BCLEIWCW.mjs.map +1 -1
  8. package/lib/{common-utils-DMk5jc_R.mjs → common-utils-uHp4dDZQ.mjs} +20 -17
  9. package/lib/{common-utils-DMk5jc_R.mjs.map → common-utils-uHp4dDZQ.mjs.map} +1 -1
  10. package/lib/{component-dimensioning-DcmDM6gV.mjs → component-dimensioning-lu16QjEZ.mjs} +2 -2
  11. package/lib/{component-dimensioning-DcmDM6gV.mjs.map → component-dimensioning-lu16QjEZ.mjs.map} +1 -1
  12. package/lib/{component-raycast-helper-CXN2MHtG.mjs → component-raycast-helper-DRE5bxWr.mjs} +3 -3
  13. package/lib/{component-raycast-helper-CXN2MHtG.mjs.map → component-raycast-helper-DRE5bxWr.mjs.map} +1 -1
  14. package/lib/configurator-C3LkQHDF.mjs +2 -0
  15. package/lib/{configurator-D6lTTIlU.mjs → configurator-CEHN5oY2.mjs} +4 -4
  16. package/lib/{configurator-D6lTTIlU.mjs.map → configurator-CEHN5oY2.mjs.map} +1 -1
  17. package/lib/{glb-viewer-CuRDCxVq.mjs → glb-viewer-C03QVqRZ.mjs} +5 -5
  18. package/lib/{glb-viewer-CuRDCxVq.mjs.map → glb-viewer-C03QVqRZ.mjs.map} +1 -1
  19. package/lib/glb-viewer-vQQ5RF-e.mjs +2 -0
  20. package/lib/{highlight-coordinator-CTZ_qcde.mjs → highlight-coordinator-DZReLBh6.mjs} +2 -2
  21. package/lib/{highlight-coordinator-CTZ_qcde.mjs.map → highlight-coordinator-DZReLBh6.mjs.map} +1 -1
  22. package/lib/{homag-intelligence-CIBPifJk.mjs → homag-intelligence-CaflKydn.mjs} +3 -3
  23. package/lib/{homag-intelligence-CIBPifJk.mjs.map → homag-intelligence-CaflKydn.mjs.map} +1 -1
  24. package/lib/{imos-ix-poc-export-helper-D2KaQu_v.mjs → imos-ix-poc-export-helper-D6oTPQr3.mjs} +2 -2
  25. package/lib/{imos-ix-poc-export-helper-D2KaQu_v.mjs.map → imos-ix-poc-export-helper-D6oTPQr3.mjs.map} +1 -1
  26. package/lib/{main-KSs3XdXO.mjs → main-BkA09a6W.mjs} +7941 -7859
  27. package/lib/main-BkA09a6W.mjs.map +1 -0
  28. package/lib/{material-viewer-Ced_pruD.mjs → material-viewer-Nkl4Qx29.mjs} +5 -5
  29. package/lib/{material-viewer-Ced_pruD.mjs.map → material-viewer-Nkl4Qx29.mjs.map} +1 -1
  30. package/lib/packages-CNXXlUsV.mjs +4 -0
  31. package/lib/{planner-ykpwnVZa.mjs → planner-DsChoUH0.mjs} +3 -3
  32. package/lib/{planner-ykpwnVZa.mjs.map → planner-DsChoUH0.mjs.map} +1 -1
  33. package/lib/planner-Z2m78Y_4.mjs +2 -0
  34. package/lib/roomle-headless.d.ts +201 -58
  35. package/lib/roomle-headless.js +9 -9
  36. package/lib/roomle-sdk.d.ts +201 -58
  37. package/lib/roomle-sdk.js +8 -8
  38. package/lib/{roomle-webgpu-renderer-NhCn2iM-.mjs → roomle-webgpu-renderer-OGrZqd3w.mjs} +4 -4
  39. package/lib/{roomle-webgpu-renderer-NhCn2iM-.mjs.map → roomle-webgpu-renderer-OGrZqd3w.mjs.map} +1 -1
  40. package/lib/{scene-renderer-DbHi1plp.mjs → scene-renderer-kbl6O83T.mjs} +3 -3
  41. package/lib/{scene-renderer-DbHi1plp.mjs.map → scene-renderer-kbl6O83T.mjs.map} +1 -1
  42. package/lib/{script-loader-DKx7ZvkP.mjs → script-loader-vbm5pELp.mjs} +2 -2
  43. package/lib/{script-loader-DKx7ZvkP.mjs.map → script-loader-vbm5pELp.mjs.map} +1 -1
  44. package/lib/{shading-settings-BWeccIZv.mjs → shading-settings-BXL0haNX.mjs} +2 -2
  45. package/lib/{shading-settings-BWeccIZv.mjs.map → shading-settings-BXL0haNX.mjs.map} +1 -1
  46. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
  47. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
  48. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
  49. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
  50. package/lib/{stats-helper-Bs79UZne.mjs → stats-helper-B4ejVlyj.mjs} +2 -2
  51. package/lib/{stats-helper-Bs79UZne.mjs.map → stats-helper-B4ejVlyj.mjs.map} +1 -1
  52. package/lib/{threejs-utils-E4yVZATI.mjs → threejs-utils-DQCcy2fJ.mjs} +57 -54
  53. package/lib/threejs-utils-DQCcy2fJ.mjs.map +1 -0
  54. package/lib/{tools-core-D4EbqT91.mjs → tools-core-f9Mqfmi2.mjs} +3 -3
  55. package/lib/{tools-core-D4EbqT91.mjs.map → tools-core-f9Mqfmi2.mjs.map} +1 -1
  56. package/package.json +1 -1
  57. package/lib/configurator-DZotRC5_.mjs +0 -2
  58. package/lib/glb-viewer-DKWeC8wq.mjs +0 -2
  59. package/lib/main-KSs3XdXO.mjs.map +0 -1
  60. package/lib/packages-oEzg5zoT.mjs +0 -4
  61. package/lib/planner-QF8IrfPz.mjs +0 -2
  62. package/lib/threejs-utils-E4yVZATI.mjs.map +0 -1
@@ -2284,6 +2284,11 @@ export declare const CORE_HELP_LINE_TYPE: {
2284
2284
  readonly OBJECT_CONTOUR: 5;
2285
2285
  };
2286
2286
 
2287
+ export declare const CORE_NODE_TYPE: {
2288
+ readonly DEFAULT: 0;
2289
+ readonly CONSTRUCTION: 1;
2290
+ };
2291
+
2287
2292
  export declare const CORE_OBJECT_CATEGORY: {
2288
2293
  readonly OBJECT: 0;
2289
2294
  readonly DOOR: 1;
@@ -2584,7 +2589,9 @@ export declare class DraggableNode extends Object3D {
2584
2589
  hoverOn(): void;
2585
2590
  hoverOff(): void;
2586
2591
  setSphereColor(color: number): void;
2592
+ getSphereColor(): number;
2587
2593
  setInnerRingColor(color: number): void;
2594
+ getInnerRingColor(): number;
2588
2595
  select(color: number): void;
2589
2596
  deselect(color: number): void;
2590
2597
  }
@@ -3339,6 +3346,24 @@ export declare interface FeatureFlags {
3339
3346
  /* Excluded from this release type: webGpuConfig */
3340
3347
  /* Excluded from this release type: advancedHighlighting */
3341
3348
  /* Excluded from this release type: fence */
3349
+ /* Excluded from this release type: awaitConfigurationSavesBeforeRequestPlan */
3350
+ }
3351
+
3352
+ export declare class FeatureFlagsImplementation implements FeatureFlags {
3353
+ pulsePreview: boolean;
3354
+ reDock: boolean;
3355
+ advancedDocking: boolean;
3356
+ mergeOnInsert: boolean;
3357
+ drawPreviewMode: Enumify_3<typeof DRAW_PREVIEW_MODES>;
3358
+ interiorLights: boolean;
3359
+ advancedDimensioning: boolean;
3360
+ enableSnapping: boolean;
3361
+ webGpu: boolean;
3362
+ webGpuConfig: WebGpuConfig;
3363
+ forceSaveThumbnails: boolean;
3364
+ advancedHighlighting: boolean;
3365
+ fence: boolean;
3366
+ awaitConfigurationSavesBeforeRequestPlan: boolean;
3342
3367
  }
3343
3368
 
3344
3369
  export declare interface FetchOptions {
@@ -3559,15 +3584,15 @@ export declare class GlobalCallback extends UiCallback {
3559
3584
 
3560
3585
  export declare class GlobalInitData implements Context, GlobalInitDataDefinition {
3561
3586
  _creator_: string;
3562
- locale?: string;
3587
+ locale: string;
3563
3588
  overrideTenant?: number;
3564
- overrideCountry?: string | null;
3589
+ overrideCountry: string | null;
3565
3590
  configuratorId?: string;
3566
3591
  overrideRapi?: RapiServerUrlType;
3567
- alwaysUseCache?: boolean;
3592
+ alwaysUseCache: boolean;
3568
3593
  customApiUrl?: string;
3569
- e2e?: boolean;
3570
- e2eRoomleRendererForImages?: boolean;
3594
+ e2e: boolean;
3595
+ e2eRoomleRendererForImages: boolean;
3571
3596
  constructor(creator: string);
3572
3597
  setOverrides(globalInitData: Partial<GlobalInitDataDefinition> | InitData): void;
3573
3598
  }
@@ -3593,7 +3618,7 @@ export declare interface GlobalInitDataDefinition {
3593
3618
  configuratorId?: string;
3594
3619
  /**
3595
3620
  * @deprecated
3596
- * @description when set to true and assets were prechaced by the asset loader they are returned from cache. Otherwise we always return a fresh copy from network usage: alwaysUseCache=true default: not set -> assets fetched from url, set -> assets from cache
3621
+ * @description when set to true and assets were precached by the asset loader they are returned from cache. Otherwise we always return a fresh copy from network usage: alwaysUseCache=true default: not set -> assets fetched from url, set -> assets from cache
3597
3622
  */
3598
3623
  alwaysUseCache?: boolean;
3599
3624
  /**
@@ -4033,13 +4058,13 @@ export declare class ImageRenderer implements Context {
4033
4058
 
4034
4059
  export declare class InitData implements Context, Omit<InitDataDefinition, 'colors'> {
4035
4060
  _creator_: string;
4036
- autoQuality?: boolean;
4061
+ autoQuality: boolean;
4037
4062
  colors: ThreeJsColorsIn3dScene;
4038
- isItem?: boolean;
4063
+ isItem: boolean;
4039
4064
  id?: RapiId;
4040
4065
  preloadId?: RapiId;
4041
- showArButton?: boolean;
4042
- useRoomlePrice?: boolean;
4066
+ showArButton: boolean;
4067
+ useRoomlePrice: boolean;
4043
4068
  precisionInch?: string;
4044
4069
  precisionCm?: string;
4045
4070
  unit?: string;
@@ -4049,37 +4074,37 @@ export declare class InitData implements Context, Omit<InitDataDefinition, 'colo
4049
4074
  offset?: CanvasOffset;
4050
4075
  startTag?: RapiId;
4051
4076
  measurementSystem?: Enumify_3<typeof MEASUREMENT_SYSTEM_STRING>;
4052
- meshSelection?: boolean;
4053
- stats?: boolean;
4054
- _measureTraffic?: boolean;
4055
- debug?: boolean;
4056
- debugGeometry?: boolean;
4057
- debugLines?: boolean;
4058
- debugBoundingBox?: boolean;
4059
- usePriceService?: boolean;
4060
- disableDebugGUI?: boolean;
4061
- disableEnvMap?: boolean;
4062
- envMapUrl?: string;
4077
+ meshSelection: boolean;
4078
+ stats: boolean;
4079
+ _measureTraffic: boolean;
4080
+ debug: boolean;
4081
+ debugGeometry: boolean;
4082
+ debugLines: boolean;
4083
+ debugBoundingBox: boolean;
4084
+ usePriceService: boolean;
4085
+ disableDebugGUI: boolean;
4086
+ disableEnvMap: boolean;
4087
+ envMapUrl: string;
4063
4088
  envMapIntensity: number;
4064
4089
  envMapRotation: number;
4065
- maxLightSources?: number;
4066
- legacyLight?: boolean;
4090
+ maxLightSources: number;
4091
+ legacyLight: boolean;
4067
4092
  sceneLight?: DefaultEnvironmentSceneType;
4068
- shading?: SceneShadingType;
4069
- linearAoFilter?: boolean;
4093
+ shading: SceneShadingType;
4094
+ linearAoFilter: boolean;
4070
4095
  customShading?: CustomShadingParameters;
4071
4096
  customShadingMoc?: CustomShadingParameters;
4072
- restrictionLevel?: number;
4097
+ restrictionLevel: number;
4073
4098
  hi?: HomagIntelligenceInitData;
4074
- disableDefaultLabelStyles?: boolean;
4099
+ disableDefaultLabelStyles: boolean;
4075
4100
  offlineSync?: string;
4076
- highlighting?: Enumify_3<typeof ROOMLE_HIGHLIGHTNG>;
4101
+ highlighting: Enumify_3<typeof ROOMLE_HIGHLIGHTNG>;
4077
4102
  initialFloorMaterial?: string;
4078
4103
  dls?: string;
4079
4104
  ls?: string;
4080
4105
  floorMaterialsTag?: RapiId;
4081
4106
  zoomDistance?: number;
4082
- cameraSpacing?: number;
4107
+ cameraSpacing: number;
4083
4108
  cameraRestriction?: number;
4084
4109
  verticalCameraAngle?: number;
4085
4110
  minVerticalCameraAngle?: number;
@@ -4088,31 +4113,31 @@ export declare class InitData implements Context, Omit<InitDataDefinition, 'colo
4088
4113
  horizontalCameraAngle?: number;
4089
4114
  minHorizontalCameraAngle?: number;
4090
4115
  maxHorizontalCameraAngle?: number;
4091
- bananaForScale?: boolean;
4092
- transparentHighlighting?: boolean;
4093
- transparentBackground?: boolean;
4094
- snappingEnabled?: boolean;
4095
- showInfos?: boolean;
4096
- showPrice?: boolean;
4097
- applyCurrentGlobalParameters?: boolean;
4098
- configureInRoom?: boolean;
4099
- dockInRoom?: boolean;
4100
- discardExternalObjectsWhenLoadingPlan?: boolean;
4101
- featureFlags: FeatureFlags;
4102
- meshRaycasting?: boolean;
4116
+ bananaForScale: boolean;
4117
+ transparentHighlighting: boolean;
4118
+ transparentBackground: boolean;
4119
+ snappingEnabled: boolean;
4120
+ showInfos: boolean;
4121
+ showPrice: boolean;
4122
+ applyCurrentGlobalParameters: boolean;
4123
+ configureInRoom: boolean;
4124
+ dockInRoom: boolean;
4125
+ discardExternalObjectsWhenLoadingPlan: boolean;
4126
+ featureFlags: FeatureFlagsImplementation;
4127
+ meshRaycasting: boolean;
4103
4128
  defaultFloorMaterial?: number | string;
4104
- mode?: Enumify_3<typeof CAMERA_TYPE>;
4105
- edit?: boolean;
4106
- moc?: boolean;
4129
+ mode: Enumify_3<typeof CAMERA_TYPE>;
4130
+ edit: boolean;
4131
+ moc: boolean;
4107
4132
  lockPlan: boolean;
4108
- readonly?: boolean;
4109
- externalObjectSettings?: ExternalObjectApiConfiguration;
4110
- plannerIsolationConfigurator?: boolean;
4133
+ readonly: boolean;
4134
+ externalObjectSettings: ExternalObjectApiConfiguration;
4135
+ plannerIsolationConfigurator: boolean;
4111
4136
  /**
4112
4137
  * If true, the callbacks will only be called if the geometry is ready.
4113
4138
  * Before RML-8368 false was the default. For more info see there
4114
4139
  */
4115
- callbacksOnlyIfGeometryIsReady?: boolean;
4140
+ callbacksOnlyIfGeometryIsReady: boolean;
4116
4141
  constructor(creator: string);
4117
4142
  setOverrides(initData: Partial<InitDataDefinition & GlobalInitDataDefinition> | InitData): void;
4118
4143
  }
@@ -5231,6 +5256,7 @@ export declare interface MessageObject {
5231
5256
  }
5232
5257
 
5233
5258
  export declare abstract class Node_2 extends PlanElement {
5259
+ readonly nodeType: NodeType;
5234
5260
  getNumberOfConnectedWalls(): number;
5235
5261
  getMaxWallHeight(): number;
5236
5262
  }
@@ -5244,13 +5270,18 @@ export declare interface NodeDimensionTransferable {
5244
5270
  export declare class NodePlanElementViewModel extends PlanElementViewModel {
5245
5271
  protected _nodeUiMesh: DraggableNode;
5246
5272
  protected _defaultRingColor: number;
5273
+ private _fenceEnabled;
5247
5274
  constructor(planObject: PlanObject);
5248
5275
  update(): void;
5276
+ setFenceEnabled(enabled: boolean): void;
5249
5277
  setTopView(enabled: boolean): void;
5250
5278
  getSize(): Vector3;
5251
5279
  show(): void;
5252
5280
  hide(): void;
5253
5281
  protected getSelectionRingColor(): number;
5282
+ protected getFillColor(): number;
5283
+ protected getDefaultRingColor(): number;
5284
+ protected _applyNodeStyle(): void;
5254
5285
  select(): void;
5255
5286
  deselect(): void;
5256
5287
  hoverOn(): void;
@@ -5258,14 +5289,21 @@ export declare class NodePlanElementViewModel extends PlanElementViewModel {
5258
5289
  protected _generateBoundingBox(): RoomleEventedMesh;
5259
5290
  setZoom(zoom: number): void;
5260
5291
  setFillColor(color: number): void;
5292
+ getSphereColor(): number;
5261
5293
  setDefaultRingColor(color: number): void;
5294
+ getInnerRingColor(): number;
5262
5295
  }
5263
5296
 
5264
5297
  export declare interface NodePlanObject extends PlanObject {
5298
+ readonly nodeType: NodeType;
5265
5299
  getNumberOfConnectedWalls(): number;
5266
5300
  getMaxWallHeight(): number;
5267
5301
  }
5268
5302
 
5303
+ export declare interface NodeType {
5304
+ value: Enumify<typeof CORE_NODE_TYPE>;
5305
+ }
5306
+
5269
5307
  export { Nullable }
5270
5308
 
5271
5309
  export declare interface Object3DRoomleEventMap extends Object3DEventMap {
@@ -6115,6 +6153,15 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6115
6153
  private _roomlePlannerCallback;
6116
6154
  private _homagIntelligence;
6117
6155
  private _itemsLoadingStatePromises;
6156
+ /**
6157
+ * Debounced wrapper around {@link _saveConfiguration}
6158
+ */
6159
+ private _debouncedSaveConfiguration;
6160
+ /**
6161
+ * In-flight configuration auto-saves (config POST + thumbnails), awaited by
6162
+ * {@link awaitPendingConfigurationSaves}.
6163
+ */
6164
+ private _pendingConfigurationSaves;
6118
6165
  private _sky;
6119
6166
  private _drawingEnabled;
6120
6167
  private _configureInRoom;
@@ -6283,13 +6330,13 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6283
6330
  private _hideAllNodeIfThereAreNoSelections;
6284
6331
  protected _onCameraMove(): boolean;
6285
6332
  private _showWallNodes;
6286
- private _applyFenceNodeStyle;
6287
6333
  private _shouldKeepFenceNodesVisible;
6288
6334
  private _updateNodeSize;
6289
6335
  private _sendPlanObjectPositions;
6290
6336
  private _sendMultiSelectionPosition;
6291
6337
  private _sendSelectedPlanObjectPositions;
6292
6338
  private _sendRoomAreaData;
6339
+ private _getSelectedTerrainFloorContext;
6293
6340
  private _updateMeasurementPositions;
6294
6341
  private _sendElementMeasurements;
6295
6342
  private _ensure3dDimensionHelperInitialized;
@@ -6363,7 +6410,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6363
6410
  protected enablePanning(): void;
6364
6411
  protected disablePanning(): void;
6365
6412
  setObjectToWallMeasurementLength(planElementId: number, measurementId: number, length: number): void;
6366
- setWallMeasurementLength(measurementId: number, length: number, wallDirection: EMSConstant): void;
6413
+ setWallMeasurementLength(measurementId: number, length: number, wallDirection: EMSConstant, measurementKind?: 'edge2d' | 'sloping'): void;
6367
6414
  setMeasurementLineLength(measurementId: number, length: number, wallDirection: string): void;
6368
6415
  setNodeZCoordinate(nodeId: number, z: number): void;
6369
6416
  protected setEventHandlerObject(object: Object3D, secondaryObject?: Object3D): void;
@@ -6383,6 +6430,8 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6383
6430
  toggleInteriorLightsSceneSettings(on: boolean): void;
6384
6431
  private _insertRapiItems;
6385
6432
  insertRapiObjects(rapiIds: InsertItemIdInfo[]): Promise<InsertItemResult[]>;
6433
+ private _scheduleConfigurationSave;
6434
+ awaitPendingConfigurationSaves(): Promise<void>;
6386
6435
  private _saveConfiguration;
6387
6436
  externalObjectRequestAddOnContainers(groupId: string, subArticleId: string): Promise<void>;
6388
6437
  externalObjectAddSubArticle(subArticleId: string, rootModuleId: string, parentModuleId: string, insertPosition?: number[]): void;
@@ -6391,6 +6440,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6391
6440
  }
6392
6441
 
6393
6442
  export declare interface PlanNode extends KernelObject {
6443
+ readonly nodeType: NodeType;
6394
6444
  getMaxWallHeight(): number;
6395
6445
  getNumberOfConnectedWalls(): number;
6396
6446
  }
@@ -7183,6 +7233,7 @@ export declare class RapiAccess implements Context {
7183
7233
  private _flushOfflineQueue;
7184
7234
  private _setQueuedConfiguration;
7185
7235
  saveConfiguration(configuration: RapiConfiguration): Promise<RapiConfiguration>;
7236
+ awaitPendingSaves(): Promise<void>;
7186
7237
  getShortUrl(referencedId: RapiId, type: SHORT_TYPES): Promise<RapiShortId>;
7187
7238
  resolveShortUrl(id: string): Promise<RapiShortId>;
7188
7239
  private _peekData;
@@ -8757,10 +8808,10 @@ export declare class RoomleGLBViewer implements GlobalAPI, Context, ExternalEmbe
8757
8808
  }
8758
8809
 
8759
8810
  export declare class RoomleLightSource {
8760
- private _lightSourceId;
8811
+ private readonly _lightSourceId;
8761
8812
  private _light;
8762
8813
  private _savedPosition;
8763
- constructor(lightSourceId: number, lightSource: Light);
8814
+ constructor(lightSourceId: number, lightSource: Light, enableShadows: boolean);
8764
8815
  get light(): Light;
8765
8816
  set light(light: Light);
8766
8817
  get lightSourceId(): number;
@@ -9082,6 +9133,7 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
9082
9133
  * this includes info about size, rotation, id and parts
9083
9134
  */
9084
9135
  getObjects(): Promise<UiPlanObject[]>;
9136
+ awaitPendingConfigurationSaves(): Promise<void>;
9085
9137
  /**
9086
9138
  * get all info available for the current plan, including objects, rooms and walls
9087
9139
  */
@@ -9268,7 +9320,7 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
9268
9320
  enableMeasurementLineDrawing(): void;
9269
9321
  disableMeasurementLineDrawing(): void;
9270
9322
  setObjectToWallMeasurementLength(planElementId: number, measurementId: number, length: number): void;
9271
- setWallMeasurementLength(measurementId: number, length: number, wallDirection: EMSConstant): void;
9323
+ setWallMeasurementLength(measurementId: number, length: number, wallDirection: EMSConstant, measurementKind?: 'edge2d' | 'sloping'): void;
9272
9324
  setMeasurementLineLength(measurementId: number, length: number, wallDirection: string): void;
9273
9325
  setNodeZCoordinate(nodeId: number, z: number): void;
9274
9326
  escapeDrawing(cancelDrawing: boolean): void;
@@ -10131,7 +10183,7 @@ export declare const STEP_GROUPS: {
10131
10183
  };
10132
10184
  readonly wallLength: {
10133
10185
  readonly finalize: "on-signal";
10134
- readonly methods: ["setLengthOfEdge2D"];
10186
+ readonly methods: ["setLengthOfEdge2D", "setLengthOfSlopingEdge"];
10135
10187
  };
10136
10188
  readonly wallThickness: {
10137
10189
  readonly finalize: "on-signal";
@@ -10700,9 +10752,17 @@ export declare interface WallDefinition {
10700
10752
  };
10701
10753
  }
10702
10754
 
10703
- export declare type WallDimension = DimensionDefinition<Vector3, Vector3>;
10755
+ export declare type WallDimension = DimensionDefinition<Vector3, Vector3> & {
10756
+ label?: string;
10757
+ measurementKind?: WallMeasurementKind;
10758
+ slopingMeasurement?: WallMeasurementVariant;
10759
+ };
10704
10760
 
10705
- export declare type WallDimensionTransferable = DimensionDefinition<Position2, Position3>;
10761
+ export declare type WallDimensionTransferable = DimensionDefinition<Position2, Position3> & {
10762
+ label?: string;
10763
+ measurementKind?: WallMeasurementKind;
10764
+ slopingMeasurement?: WallMeasurementVariant;
10765
+ };
10706
10766
 
10707
10767
  export declare interface WallExtensionType {
10708
10768
  ExtendBegin: EMSConstant;
@@ -10713,6 +10773,14 @@ export declare interface WallExtensionType {
10713
10773
  export declare class WallMaterial extends BaseMaterial {
10714
10774
  }
10715
10775
 
10776
+ export declare type WallMeasurementKind = 'edge2d' | 'sloping';
10777
+
10778
+ export declare interface WallMeasurementVariant {
10779
+ label: string;
10780
+ length: number;
10781
+ measurementKind: WallMeasurementKind;
10782
+ }
10783
+
10716
10784
  export declare class WallPlanElementViewModel extends PlanElementViewModel {
10717
10785
  private _lineForInvisibleWall?;
10718
10786
  private _hasAttachedAttic;
@@ -10720,7 +10788,7 @@ export declare class WallPlanElementViewModel extends PlanElementViewModel {
10720
10788
  constructor(planObject: PlanObject);
10721
10789
  get isSelected(): boolean;
10722
10790
  private _checkHasAttachedAttic;
10723
- getWallDimension(zoomFactor: number, clientWidth: number, clientHeight: number, preferredSideOverride?: LeftOrRightWallSide): WallDimension;
10791
+ getWallDimension(zoomFactor: number, clientWidth: number, clientHeight: number, preferredSideOverride?: LeftOrRightWallSide, isTerrainMeasurement?: boolean): WallDimension;
10724
10792
  private calculateNormalVector;
10725
10793
  private calculateShiftingFactor;
10726
10794
  private calculateAtticInfo;
@@ -10771,7 +10839,15 @@ export declare interface WallSide {
10771
10839
  value: Enumify<typeof WALL_SIDES>;
10772
10840
  }
10773
10841
 
10774
- export declare interface WebGpuConfig {
10842
+ export declare class WebGpuConfig implements WebGpuConfigDefinition {
10843
+ autoDetectQualityLevel: boolean;
10844
+ autoQualityMinFps: number;
10845
+ autoQualityMaxFps: number;
10846
+ topLight: WebGpuTopLightConfig;
10847
+ groundReflection: WebGpuGroundReflectionConfig;
10848
+ }
10849
+
10850
+ export declare interface WebGpuConfigDefinition {
10775
10851
  /**
10776
10852
  * @description If true, the initial webgpu quality level is autodetected based on
10777
10853
  * a benchmark of the graphics hardware. If false, the default quality level is used.
@@ -10793,6 +10869,73 @@ export declare interface WebGpuConfig {
10793
10869
  * @default 59
10794
10870
  */
10795
10871
  autoQualityMaxFps?: number;
10872
+ /**
10873
+ * @description Visual configuration for the WebGPU top light and its shadow.
10874
+ */
10875
+ topLight?: WebGpuTopLightConfigDefinition;
10876
+ /**
10877
+ * @description Visual configuration for the WebGPU ground reflection.
10878
+ */
10879
+ groundReflection?: WebGpuGroundReflectionConfigDefinition;
10880
+ }
10881
+
10882
+ export declare class WebGpuGroundReflectionConfig implements WebGpuGroundReflectionConfigDefinition {
10883
+ enabled: boolean;
10884
+ intensity: number;
10885
+ startFadeout: number;
10886
+ endFadeout: number;
10887
+ }
10888
+
10889
+ export declare interface WebGpuGroundReflectionConfigDefinition {
10890
+ /**
10891
+ * @description Enables or disables the ground reflection entirely.
10892
+ * When disabled the floor still receives shadows but does not render a reflection,
10893
+ * which also avoids the extra reflection render pass.
10894
+ * @default true
10895
+ */
10896
+ enabled?: boolean;
10897
+ /**
10898
+ * @description Strength of the ground reflection.
10899
+ * 0 means no reflection, 1 means a full mirror-like reflection.
10900
+ * @default 0.1
10901
+ */
10902
+ intensity?: number;
10903
+ /**
10904
+ * @description Depth at which the reflection starts to fade out.
10905
+ * @default 0.05
10906
+ */
10907
+ startFadeout?: number;
10908
+ /**
10909
+ * @description Depth at which the reflection is fully faded out.
10910
+ * @default 0.15
10911
+ */
10912
+ endFadeout?: number;
10913
+ }
10914
+
10915
+ export declare class WebGpuTopLightConfig implements WebGpuTopLightConfigDefinition {
10916
+ intensity: number;
10917
+ shadowIntensity: number;
10918
+ shadowRadius: number;
10919
+ }
10920
+
10921
+ export declare interface WebGpuTopLightConfigDefinition {
10922
+ /**
10923
+ * @description Intensity (brightness) of the WebGPU top light.
10924
+ * @default 1
10925
+ */
10926
+ intensity?: number;
10927
+ /**
10928
+ * @description Intensity of the shadow cast by the top light.
10929
+ * 0 means no shadow, 1 means a fully opaque shadow.
10930
+ * @default 1
10931
+ */
10932
+ shadowIntensity?: number;
10933
+ /**
10934
+ * @description Softness (blur radius) of the top light's shadow edges.
10935
+ * Higher values produce softer shadows.
10936
+ * @default 1.1
10937
+ */
10938
+ shadowRadius?: number;
10796
10939
  }
10797
10940
 
10798
10941
  export declare class ZoomChangeEvent {
package/lib/roomle-sdk.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { i as e, t } from "./kernel-C7YDLxq8.mjs";
2
- import { _t as n, mt as r } from "./threejs-utils-E4yVZATI.mjs";
3
- import { B as i, F as a, G as o, H as s, I as c, J as l, K as u, M as d, N as f, P as p, S as m, U as h, W as g, a as _, b as v, c as y, ct as b, dt as x, k as S, l as C, n as w, ot as T, pt as E, st as D, ut as O, v as k, x as A, y as j } from "./main-KSs3XdXO.mjs";
4
- import { t as M } from "./configurator-D6lTTIlU.mjs";
5
- import { t as N } from "./planner-ykpwnVZa.mjs";
6
- import { n as P, t as F } from "./glb-viewer-CuRDCxVq.mjs";
7
- import { t as I } from "./api-ckpzIPty.mjs";
8
- import "./packages-oEzg5zoT.mjs";
9
- export { t as CONFIGURATION_TYPE, r as CORE_EDGE_TYPE, n as CORE_OBJECT_CATEGORY, e as CORE_PERMISSION_TO_DELETE, M as Configurator, _ as ConfiguratorUiCallbacks, d as FloorPlanElementViewModel, F as GlbViewer, l as GlobalCallback, i as HI_CONTEXT_ACTION, O as IdbManager, w as Main, m as MeasurementLinePlanElementViewModel, k as PLAN_ELEMENT_CHANGE_TYPES, c as PlanElementViewModel, a as PlanObjectViewModel, N as Planner, T as RapiAccess, D as RapiInvalidIdError, b as RapiOfflineError, I as RoomDesignerApi, S as RoomleConfigurator, P as RoomleGLBViewer, E as RoomleLightSource, y as RoomlePlanner, j as RoomlePlannerUiCallback, C as RoomleSdk, p as StaticPlanObjectViewModel, f as WallPlanElementViewModel, s as createExtObj, u as createExtObjId, x as getCatalogIdFromConfigurationHash, h as isExtObjId, g as isExternalObject, v as isFirefox, A as isSafari, o as removeExtObjIdPrefix };
2
+ import { mt as n, vt as r } from "./threejs-utils-DQCcy2fJ.mjs";
3
+ import { B as i, F as a, G as o, H as s, I as c, J as l, K as u, M as d, N as f, P as p, S as m, U as h, W as g, a as _, b as v, c as y, ct as b, dt as x, k as S, l as C, n as w, ot as T, pt as E, st as D, ut as O, v as k, x as A, y as j } from "./main-BkA09a6W.mjs";
4
+ import { t as M } from "./configurator-CEHN5oY2.mjs";
5
+ import { t as N } from "./planner-DsChoUH0.mjs";
6
+ import { n as P, t as F } from "./glb-viewer-C03QVqRZ.mjs";
7
+ import { t as I } from "./api-D64AfPG6.mjs";
8
+ import "./packages-CNXXlUsV.mjs";
9
+ export { t as CONFIGURATION_TYPE, n as CORE_EDGE_TYPE, r as CORE_OBJECT_CATEGORY, e as CORE_PERMISSION_TO_DELETE, M as Configurator, _ as ConfiguratorUiCallbacks, d as FloorPlanElementViewModel, F as GlbViewer, l as GlobalCallback, i as HI_CONTEXT_ACTION, O as IdbManager, w as Main, m as MeasurementLinePlanElementViewModel, k as PLAN_ELEMENT_CHANGE_TYPES, c as PlanElementViewModel, a as PlanObjectViewModel, N as Planner, T as RapiAccess, D as RapiInvalidIdError, b as RapiOfflineError, I as RoomDesignerApi, S as RoomleConfigurator, P as RoomleGLBViewer, E as RoomleLightSource, y as RoomlePlanner, j as RoomlePlannerUiCallback, C as RoomleSdk, p as StaticPlanObjectViewModel, f as WallPlanElementViewModel, s as createExtObj, u as createExtObjId, x as getCatalogIdFromConfigurationHash, h as isExtObjId, g as isExternalObject, v as isFirefox, A as isSafari, o as removeExtObjIdPrefix };
@@ -1,5 +1,5 @@
1
1
  import { Ar as e, Br as t, Cr as n, En as r, Gn as i, Hi as a, J as o, Jr as s, Kn as c, On as l, Qt as u, Tt as d, Wi as f, Y as p, _i as m, bi as h, ci as g, ct as _, g as v, gi as y, hi as b, hr as x, ht as S, in as C, jr as w, kr as T, mi as ee, mr as te, pi as ne, q as re, rt as E, sn as D, t as ie, vi as ae, w as O, wr as oe, xi as k, yi as se } from "./three.core-tV_4n8Wg.mjs";
2
- import { t as ce } from "./shading-settings-BWeccIZv.mjs";
2
+ import { t as ce } from "./shading-settings-BXL0haNX.mjs";
3
3
  import { n as le, r as ue, t as de } from "./decorate-CTUwswpM.mjs";
4
4
  import { n as fe, r as pe } from "./roomle-renderer-BD3ZmpLS.mjs";
5
5
  import { Rt as A, Ut as me, Wn as he, Z as ge, bn as j, fr as _e, jn as ve, kt as ye, lr as be, un as xe, vn as Se, x as Ce } from "./three.webgpu-CT4fuV2X.mjs";
@@ -2520,7 +2520,7 @@ var Fn = /* @__PURE__ */ Array.from({ length: 32 }, (e, t) => [Pn(t + 1, 2), Pn(
2520
2520
  }
2521
2521
  }, Gn = class extends fe {
2522
2522
  constructor(e, t, n, r) {
2523
- super(e, t), this.passNeedsReassembly = !0, this.debugMode = "off", this.renderPasses = /* @__PURE__ */ new Map(), this.guiParameterGroups = /* @__PURE__ */ new Map(), this.lastRenderCamera = void 0, this.qualityManager = new Wn(this.applyQualityParameters.bind(this)), this.freezeFrames = 0, this.freezeRenderTarget = new w(), this.renderPipeline = new Se(t), this.enableRenderPasses(n, r), this._initData.featureFlags.webGpuConfig?.autoDetectQualityLevel ?? !0 ? this.qualityManager.autoDetectInitialQualityLevel().then(() => this.qualityManager.applyCurrentQualityLevel(0)) : this.qualityManager.applyCurrentQualityLevel(0);
2523
+ super(e, t), this.passNeedsReassembly = !0, this.debugMode = "off", this.renderPasses = /* @__PURE__ */ new Map(), this.guiParameterGroups = /* @__PURE__ */ new Map(), this.lastRenderCamera = void 0, this.qualityManager = new Wn(this.applyQualityParameters.bind(this)), this.freezeFrames = 0, this.freezeRenderTarget = new w(), this.renderPipeline = new Se(t), this.enableRenderPasses(n, r), this._initData.featureFlags.webGpuConfig.autoDetectQualityLevel ? this.qualityManager.autoDetectInitialQualityLevel().then(() => this.qualityManager.applyCurrentQualityLevel(0)) : this.qualityManager.applyCurrentQualityLevel(0);
2524
2524
  }
2525
2525
  enableRenderPasses(e, t) {
2526
2526
  e && this.enableSsgiPass(), t && this.enableOutline(t.outlineVisibleEdgeColor, t.outlineHiddenEdgeColor), e && this.enableTraaPass();
@@ -2554,7 +2554,7 @@ var Fn = /* @__PURE__ */ Array.from({ length: 32 }, (e, t) => [Pn(t + 1, 2), Pn(
2554
2554
  this.freezeFrames--, this.renderToFreezeTarget();
2555
2555
  return;
2556
2556
  }
2557
- this.renderPipeline.render(), this.qualityManager.manageQualitySettings(this._initData.featureFlags.webGpuConfig?.autoQualityMinFps ?? 24, this._initData.featureFlags.webGpuConfig?.autoQualityMaxFps ?? 59);
2557
+ this.renderPipeline.render(), this.qualityManager.manageQualitySettings(this._initData.featureFlags.webGpuConfig.autoQualityMinFps, this._initData.featureFlags.webGpuConfig.autoQualityMaxFps);
2558
2558
  }
2559
2559
  renderToFreezeTarget() {
2560
2560
  let e = this.renderer.getRenderTarget();
@@ -2673,4 +2673,4 @@ de([ue, le("design:type", Object)], Gn.prototype, "_domHelper", void 0), de([ue,
2673
2673
  //#endregion
2674
2674
  export { Gn as RoomleWebGPURenderer };
2675
2675
 
2676
- //# sourceMappingURL=roomle-webgpu-renderer-NhCn2iM-.mjs.map
2676
+ //# sourceMappingURL=roomle-webgpu-renderer-OGrZqd3w.mjs.map