@roomle/web-sdk 4.2.0 → 4.3.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/lib/ConfiguratorKernel.wasm +0 -0
  2. package/lib/{GaussianBlurNode-DEczNsyD.mjs → GaussianBlurNode-Bjszve7N.mjs} +15 -15
  3. package/lib/{GaussianBlurNode-DEczNsyD.mjs.map → GaussianBlurNode-Bjszve7N.mjs.map} +1 -1
  4. package/lib/RoomleCore.js +3 -3
  5. package/lib/RoomleCore.wasm +0 -0
  6. package/lib/RoomleToolsCore.wasm +0 -0
  7. package/lib/{api-B6sLiuiL.mjs → api-C430uhWG.mjs} +2 -2
  8. package/lib/{api-B6sLiuiL.mjs.map → api-C430uhWG.mjs.map} +1 -1
  9. package/lib/asset-loader.worker-eqHzNAwa.mjs.map +1 -1
  10. package/lib/{banana-for-scale-C-grIlTK.mjs → banana-for-scale-DGYmxeBG.mjs} +3 -3
  11. package/lib/{banana-for-scale-C-grIlTK.mjs.map → banana-for-scale-DGYmxeBG.mjs.map} +1 -1
  12. package/lib/budgeteer.sw-BUMElkO1.mjs.map +1 -1
  13. package/lib/{common-utils-6T8eGlhX.mjs → common-utils-CyQUubmw.mjs} +29 -15
  14. package/lib/{common-utils-6T8eGlhX.mjs.map → common-utils-CyQUubmw.mjs.map} +1 -1
  15. package/lib/{component-dimensioning-DJuokZnv.mjs → component-dimensioning-BXN285kw.mjs} +4 -4
  16. package/lib/{component-dimensioning-DJuokZnv.mjs.map → component-dimensioning-BXN285kw.mjs.map} +1 -1
  17. package/lib/{component-raycast-helper-SZg14d7A.mjs → component-raycast-helper-CADFRMLS.mjs} +3 -3
  18. package/lib/{component-raycast-helper-SZg14d7A.mjs.map → component-raycast-helper-CADFRMLS.mjs.map} +1 -1
  19. package/lib/configurator-9ICb3RBz.mjs +2 -0
  20. package/lib/{configurator-Cbof6AET.mjs → configurator-CUiTTJmW.mjs} +4 -4
  21. package/lib/{configurator-Cbof6AET.mjs.map → configurator-CUiTTJmW.mjs.map} +1 -1
  22. package/lib/{decorate-CX1ZGuFY.mjs → decorate-CjaqqbUP.mjs} +12 -9
  23. package/lib/decorate-CjaqqbUP.mjs.map +1 -0
  24. package/lib/dimensioning-helper-0s61LK9R.mjs +2 -0
  25. package/lib/{dimensioning-helper-BwvR76_I.mjs → dimensioning-helper-Cgao7A18.mjs} +2 -2
  26. package/lib/{dimensioning-helper-BwvR76_I.mjs.map → dimensioning-helper-Cgao7A18.mjs.map} +1 -1
  27. package/lib/{glb-viewer-DmVh1uJg.mjs → glb-viewer-DB5c3Qk5.mjs} +6 -6
  28. package/lib/{glb-viewer-DmVh1uJg.mjs.map → glb-viewer-DB5c3Qk5.mjs.map} +1 -1
  29. package/lib/glb-viewer-_gIYHXT9.mjs +2 -0
  30. package/lib/{highlight-coordinator-Qonmfsu1.mjs → highlight-coordinator-RCfVwPHC.mjs} +2 -2
  31. package/lib/{highlight-coordinator-Qonmfsu1.mjs.map → highlight-coordinator-RCfVwPHC.mjs.map} +1 -1
  32. package/lib/{homag-intelligence-CzD_RMQo.mjs → homag-intelligence-8eBT714O.mjs} +8 -5
  33. package/lib/{homag-intelligence-CzD_RMQo.mjs.map → homag-intelligence-8eBT714O.mjs.map} +1 -1
  34. package/lib/{imos-ix-poc-export-helper-Q6-OXziY.mjs → imos-ix-poc-export-helper-DRQK_p2h.mjs} +2 -2
  35. package/lib/{imos-ix-poc-export-helper-Q6-OXziY.mjs.map → imos-ix-poc-export-helper-DRQK_p2h.mjs.map} +1 -1
  36. package/lib/{material-viewer-BkSh-aG7.mjs → material-viewer-CfZwcbei.mjs} +6 -6
  37. package/lib/{material-viewer-BkSh-aG7.mjs.map → material-viewer-CfZwcbei.mjs.map} +1 -1
  38. package/lib/{packages-BGVMQMZK.mjs → packages-0GadOkxt.mjs} +5 -5
  39. package/lib/{packages-BGVMQMZK.mjs.map → packages-0GadOkxt.mjs.map} +1 -1
  40. package/lib/{planner-DFa8uJOF.mjs → planner-CyQKj8Ok.mjs} +3 -3
  41. package/lib/{planner-DFa8uJOF.mjs.map → planner-CyQKj8Ok.mjs.map} +1 -1
  42. package/lib/planner-D63FNjtX.mjs +2 -0
  43. package/lib/{plugin-system-CqXT37-v.mjs → plugin-system-vlnG8j2T.mjs} +3 -3
  44. package/lib/{plugin-system-CqXT37-v.mjs.map → plugin-system-vlnG8j2T.mjs.map} +1 -1
  45. package/lib/{roomle-headless-setup-7xnQlZl3.mjs → roomle-headless-setup-DbO_rLjK.mjs} +54 -40
  46. package/lib/roomle-headless-setup-DbO_rLjK.mjs.map +1 -0
  47. package/lib/roomle-headless.d.ts +167 -126
  48. package/lib/roomle-headless.js +289 -358
  49. package/lib/roomle-headless.js.map +1 -1
  50. package/lib/roomle-renderer-FUqNfNIf.mjs.map +1 -1
  51. package/lib/{roomle-sdk-B73VmWod.mjs → roomle-sdk-CpgzRTKP.mjs} +2855 -2713
  52. package/lib/roomle-sdk-CpgzRTKP.mjs.map +1 -0
  53. package/lib/roomle-sdk.d.ts +121 -15
  54. package/lib/roomle-sdk.js +7 -7
  55. package/lib/{roomle-webgpu-renderer-Dzuy_Y39.mjs → roomle-webgpu-renderer-Lt55gNj5.mjs} +370 -303
  56. package/lib/roomle-webgpu-renderer-Lt55gNj5.mjs.map +1 -0
  57. package/lib/{scene-renderer-DR7EFd-8.mjs → scene-renderer-CSBoi_8w.mjs} +5 -5
  58. package/lib/{scene-renderer-DR7EFd-8.mjs.map → scene-renderer-CSBoi_8w.mjs.map} +1 -1
  59. package/lib/{script-loader-BlsGBrYo.mjs → script-loader-BmScoq7Y.mjs} +3 -3
  60. package/lib/{script-loader-BlsGBrYo.mjs.map → script-loader-BmScoq7Y.mjs.map} +1 -1
  61. package/lib/{shading-settings-Bnt9v9xJ.mjs → shading-settings-CRNmMpcn.mjs} +2 -2
  62. package/lib/{shading-settings-Bnt9v9xJ.mjs.map → shading-settings-CRNmMpcn.mjs.map} +1 -1
  63. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
  64. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.d.ts +34 -8
  65. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js +5 -1
  66. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js.map +1 -1
  67. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
  68. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js +3 -3
  69. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
  70. package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
  71. package/lib/{stats-helper-vEwFkDIt.mjs → stats-helper-P4jYV8as.mjs} +3 -3
  72. package/lib/{stats-helper-vEwFkDIt.mjs.map → stats-helper-P4jYV8as.mjs.map} +1 -1
  73. package/lib/three.tsl-BnL9nfJa.mjs +2 -0
  74. package/lib/{three.tsl-BElp7_oF.mjs → three.tsl-Dew9p5yF.mjs} +46 -48
  75. package/lib/{three.tsl-BElp7_oF.mjs.map → three.tsl-Dew9p5yF.mjs.map} +1 -1
  76. package/lib/{threejs-utils-C9zED_Tu.mjs → threejs-utils-DKJ0uer7.mjs} +92 -88
  77. package/lib/threejs-utils-DKJ0uer7.mjs.map +1 -0
  78. package/lib/{tools-core-DKYMilYC.mjs → tools-core-CAEfSB8I.mjs} +3 -3
  79. package/lib/{tools-core-DKYMilYC.mjs.map → tools-core-CAEfSB8I.mjs.map} +1 -1
  80. package/lib/{webgpu-BMwlJflc.mjs → webgpu-B0rxiqW-.mjs} +313 -313
  81. package/lib/{webgpu-BMwlJflc.mjs.map → webgpu-B0rxiqW-.mjs.map} +1 -1
  82. package/package.json +2 -2
  83. package/lib/configurator-BFd5022u.mjs +0 -2
  84. package/lib/decorate-CX1ZGuFY.mjs.map +0 -1
  85. package/lib/dimensioning-helper-yMfkA1IY.mjs +0 -2
  86. package/lib/glb-viewer-DlH5_aTU.mjs +0 -2
  87. package/lib/planner-CSKuhBke.mjs +0 -2
  88. package/lib/roomle-headless-setup-7xnQlZl3.mjs.map +0 -1
  89. package/lib/roomle-sdk-B73VmWod.mjs.map +0 -1
  90. package/lib/roomle-webgpu-renderer-Dzuy_Y39.mjs.map +0 -1
  91. package/lib/three.tsl-BtDRDR0q.mjs +0 -2
  92. package/lib/threejs-utils-C9zED_Tu.mjs.map +0 -1
@@ -2016,6 +2016,7 @@ export declare class ConfiguratorViewModel implements ConfiguratorKernelCallback
2016
2016
  private _subPartObject;
2017
2017
  private _subPartGuard;
2018
2018
  protected _components: Map<number, RoomleComponent>;
2019
+ private _componentsWithOutdatedGeometry;
2019
2020
  private _previews;
2020
2021
  protected _componentNumberOfPossibleChildren: Map<number, number>;
2021
2022
  protected _componentFactory: RoomleComponentFactory;
@@ -2064,6 +2065,7 @@ export declare class ConfiguratorViewModel implements ConfiguratorKernelCallback
2064
2065
  Editor3dGeometryReady(id: number): void;
2065
2066
  Editor3dGeometryNotReady(id: number): void;
2066
2067
  Editor3dPlanObjectConstructionDone(planObjectId: number): void;
2068
+ private _finishPendingPlanObjectConstruction;
2067
2069
  Editor3dPreviewConstructionDone(componentId: number, _objectId: number): void;
2068
2070
  Editor3dSetPreviewAssociations(dockPairs: KernelDockPairPreview[], previewId: number): void;
2069
2071
  componentDeleted(componentId: number): void;
@@ -2097,6 +2099,7 @@ export declare class ConfiguratorViewModel implements ConfiguratorKernelCallback
2097
2099
  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;
2098
2100
  protected _setMaterial(mesh: Mesh, material: any, _type?: KernelEnum): void;
2099
2101
  constructComponents(planObjectId: number): void;
2102
+ private _takeOutdatedGeometryOf;
2100
2103
  requestSubPartConstruction(partId: number): Promise<Mesh>;
2101
2104
  protected getMeshGenerator(): MeshGenerator;
2102
2105
  setRequestRenderCallback(requestRenderCallback: () => void): void;
@@ -2280,6 +2283,12 @@ export declare const CORE_PLAN_COMPONENT_TYPE: {
2280
2283
  export declare const CORE_PLAN_ROOM_GEOMETRY_MODE: {
2281
2284
  readonly FLOOR: 0;
2282
2285
  readonly ROOM: 1;
2286
+ readonly PLAN: 2;
2287
+ };
2288
+
2289
+ export declare const CORE_PLAN_VIEW_TYPE: {
2290
+ readonly FLOOR: 0;
2291
+ readonly ELEVATION: 1;
2283
2292
  };
2284
2293
 
2285
2294
  export declare const CORE_SNAP_STATE: {
@@ -2636,6 +2645,11 @@ export declare interface DynamicLightSettingSource {
2636
2645
  ls?: PreDefinedLightSettings;
2637
2646
  }
2638
2647
 
2648
+ export declare interface EdgeDeflection {
2649
+ connectionPosition: KernelVector3f;
2650
+ deflectionAngleInRadians: number;
2651
+ }
2652
+
2639
2653
  export declare interface EdgeType {
2640
2654
  value: Enumify<typeof CORE_EDGE_TYPE>;
2641
2655
  }
@@ -2648,6 +2662,7 @@ export declare interface Element_2 {
2648
2662
 
2649
2663
  export declare interface ElevationPlan {
2650
2664
  planSvg: string;
2665
+ viewType?: PlanViewType;
2651
2666
  }
2652
2667
 
2653
2668
  export declare interface ElevationPlans {
@@ -2665,12 +2680,6 @@ export declare interface ElevationProfilePoint {
2665
2680
  slopeAngleInRadians: number;
2666
2681
  }
2667
2682
 
2668
- export declare interface ElevationView {
2669
- lineOfSight: KernelVector3f;
2670
- objects: PlanObject[];
2671
- profile: ElevationProfile;
2672
- }
2673
-
2674
2683
  export declare class EmsArray<T> {
2675
2684
  get(index: number): T;
2676
2685
  push_back(element: T): void;
@@ -2948,9 +2957,13 @@ export declare interface ExternalObjectAPI {
2948
2957
  */
2949
2958
  loadExternalObjectGroups(groupJson: ExternalGroupData, options: LoadExternalObjectOptions): Promise<LoadExternalObjectGroupResult[]>;
2950
2959
  /**
2951
- * "loadExternalObjectGroupLayout" creates and loads a group of modules from an article layout.
2952
- * @param articleLayoutJson The article layout JSON as object.
2953
- * @param layoutType The article layout type. Only "nobila" is supported at the moment.
2960
+ * "loadExternalObjectGroupLayout" creates and loads groups of modules from an article layout.
2961
+ * @param articleLayoutJson The article layout JSON as object. The layout type "nobila" evaluates
2962
+ * the "shapes" property, the layout type "posGroups" evaluates the "posGroups" property.
2963
+ * For the layout type "posGroups" a group whose id matches a group already loaded in the plan
2964
+ * completely replaces that group; root modules keep their ids when they already exist in the
2965
+ * replaced group, all other ids are regenerated.
2966
+ * @param layoutType The article layout type. "nobila" and "posGroups" are supported.
2954
2967
  * @param options Options for loading the external object group.
2955
2968
  */
2956
2969
  loadExternalObjectGroupLayout(articleLayoutJson: ExternalObjectGroupLayout, layoutType: string, options?: LoadExternalObjectOptions): Promise<LoadExternalObjectGroupResult[]>;
@@ -3047,6 +3060,13 @@ export declare interface ExternalObjectAPI {
3047
3060
  * "getExternalRoomInformation" returns the room information for currently loaded in the plan.
3048
3061
  */
3049
3062
  getExternalRoomInformation(mode?: PlanRoomGeometryMode): Promise<ExternalRoomInformation>;
3063
+ /**
3064
+ * "getExternalObjectPlanContext" returns a consistent snapshot of the external object state:
3065
+ * the master data per library, the room information of all rooms, the articles that can be
3066
+ * used, and all groups currently loaded in the plan.
3067
+ * @param include The sections to include. All sections are returned when omitted or empty.
3068
+ */
3069
+ getExternalObjectPlanContext(include?: HiPlanContextSection[]): Promise<HiPlanContext>;
3050
3070
  /**
3051
3071
  * It generates a snapshot of the external object in the plan without saving any data.
3052
3072
  * By default, the snapshot includes order data, room information, the plan XML, GLBs of the complete scene,
@@ -3121,6 +3141,7 @@ export declare interface ExternalObjectGroup {
3121
3141
  export declare interface ExternalObjectGroupLayout {
3122
3142
  [key: string]: unknown;
3123
3143
  shapes?: ExternalObjectGroupLayoutShape[];
3144
+ posGroups?: PosGroup[];
3124
3145
  }
3125
3146
 
3126
3147
  export declare interface ExternalObjectGroupLayoutArticle {
@@ -3387,6 +3408,18 @@ export declare class FloorMaterial extends BaseMaterial {
3387
3408
  rotation(): KernelVector3f;
3388
3409
  }
3389
3410
 
3411
+ export declare interface FloorPlanEdge {
3412
+ id: number;
3413
+ start: KernelVector3f;
3414
+ end: KernelVector3f;
3415
+ startDeflection?: EdgeDeflection | null;
3416
+ endDeflection?: EdgeDeflection | null;
3417
+ }
3418
+
3419
+ export declare interface FloorPlanEdges {
3420
+ edges: FloorPlanEdge[];
3421
+ }
3422
+
3390
3423
  export declare class FloorPlanElementViewModel extends PlanElementViewModel {
3391
3424
  constructor(planObject: PlanObject);
3392
3425
  addMesh(mesh: Mesh): void;
@@ -3640,8 +3673,9 @@ export declare interface GlueLogic {
3640
3673
  getSaveDataGroups(): Promise<PosGroup[] | null>;
3641
3674
  getSubArticleId(id: string): string | undefined;
3642
3675
  newPosDataFromId(id: string): Promise<PosGroup | undefined>;
3643
- newPosDataFromArticleLayout(articleLayoutJson: ExternalObjectGroupLayout, layoutType: string, posArticles?: PosArticle[]): Promise<PosGroup | undefined>;
3676
+ createOrReplacePosDataFromArticleLayout(articleLayoutJson: ExternalObjectGroupLayout, layoutType: string, posArticles?: PosArticle[]): Promise<PosGroup | PosGroup[] | undefined>;
3644
3677
  newPosDataFromGroup(posDataJson: PosGroup): Promise<PosGroup>;
3678
+ getPlanContext(include?: HiPlanContextSection[]): Promise<HiPlanContext>;
3645
3679
  getGroupDataForOrder(options: GetGroupDataForOrderOptions): Promise<HiOrderData | null>;
3646
3680
  getMaterialUrl(materialId: string, groupOrModuleId?: string): string | null;
3647
3681
  }
@@ -3873,6 +3907,15 @@ export declare interface HiObjectSelectionApi {
3873
3907
  selectionChanged(selectionMode: SELECTION_MODE, objectType: CallbackObjectType, payload: SelectionPayload, _payloadPromise: Promise<SelectionPayload>, _planElementViewModel: PlanElementViewModel): void;
3874
3908
  }
3875
3909
 
3910
+ export declare interface HiPlanContext {
3911
+ masterData?: Record<string, MasterData>;
3912
+ rooms?: ExternalRoomInformation;
3913
+ articles?: PosArticle[];
3914
+ groups?: PosGroup[];
3915
+ }
3916
+
3917
+ export declare type HiPlanContextSection = 'masterData' | 'rooms' | 'articles' | 'groups';
3918
+
3876
3919
  export declare class HiTagCatalogCallbacks implements Context {
3877
3920
  _creator_: string;
3878
3921
  private _glueLogic;
@@ -4902,6 +4945,7 @@ export declare interface LoadExternalObjectGroupResult {
4902
4945
 
4903
4946
  export declare interface LoadExternalObjectOptions {
4904
4947
  reason?: HiLoadObjectReason;
4948
+ applyGroupPosition?: boolean;
4905
4949
  findFreeSpaceInPlan?: boolean;
4906
4950
  moduleIdMap?: Array<{
4907
4951
  originalModuleId: string;
@@ -5551,6 +5595,7 @@ export declare const PLAN_ELEMENT_CHANGE_TYPES: {
5551
5595
  export declare const PLAN_ROOM_GEOMETRY_MODE: {
5552
5596
  readonly FLOOR: "floor";
5553
5597
  readonly ROOM: "room";
5598
+ readonly PLAN: "plan";
5554
5599
  };
5555
5600
 
5556
5601
  export declare abstract class PlanElement extends AbstractModelWrapper {
@@ -5698,7 +5743,7 @@ export declare interface PlanModelViewHelper_2 {
5698
5743
  getGroupedObjects(anObject: PlanObject): KernelPlanObject[];
5699
5744
  calculateLightSourceDistribution(plan: Plan_2, lightSourceConfiguration: LightSourceConfiguration): RoomLightSourceDistributionArray;
5700
5745
  getObjectSnapInformation(anObject: PlanObject, debugHelpLines: boolean): ObjectSnapInformation;
5701
- getElevationViews(plan: Plan_2): ElevationView[];
5746
+ getPlanViews(plan: Plan_2): PlanView[];
5702
5747
  }
5703
5748
 
5704
5749
  export declare class Planner<P extends readonly PluginName[] = readonly []> extends Main {
@@ -6111,6 +6156,7 @@ export declare class PlannerSceneEventHandler extends SceneEventHandler<SceneEve
6111
6156
  private _move;
6112
6157
  hasSelection(): boolean;
6113
6158
  selectPlanElement(planElement: PlanElementViewModel): Promise<void>;
6159
+ selectPlanElementAfterObjectModeChange(planElement: PlanElementViewModel): void;
6114
6160
  protected _interaction(_forceRender?: boolean): void;
6115
6161
  addComponentDragInHandler(planViewModel: PlanElementViewModel): void;
6116
6162
  enableSnapping(): void;
@@ -6245,6 +6291,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
6245
6291
  private _setCameraPosition;
6246
6292
  private _resetCameraPosition;
6247
6293
  selectPlanObject(runtimeId: number): Promise<void>;
6294
+ selectPlanObjectAfterObjectModeChange(runtimeId: number): void;
6248
6295
  backToPlanner(): void;
6249
6296
  private _getYRotationOfObject;
6250
6297
  loadStaticPlanObjects(): void;
@@ -6600,6 +6647,15 @@ export declare abstract class PlanText extends PlanElement {
6600
6647
  getText(): string;
6601
6648
  }
6602
6649
 
6650
+ export declare interface PlanView {
6651
+ id: number;
6652
+ viewType: PlanViewType;
6653
+ lineOfSight: KernelVector3f;
6654
+ objects: PlanObject[];
6655
+ profile: ElevationProfile;
6656
+ floorPlanEdges: FloorPlanEdges;
6657
+ }
6658
+
6603
6659
  export declare class PlanViewModel extends ConfiguratorViewModel implements PlannerKernelCallbackI {
6604
6660
  private _plannerMeshGenerator;
6605
6661
  private _roomlePlannerUiCallback;
@@ -6753,6 +6809,10 @@ export declare class PlanViewModel extends ConfiguratorViewModel implements Plan
6753
6809
  externalObjectRemoveSubModule(_groupId: string, _subModuleId: string): void;
6754
6810
  }
6755
6811
 
6812
+ export declare interface PlanViewType {
6813
+ value: Enumify<typeof CORE_PLAN_VIEW_TYPE>;
6814
+ }
6815
+
6756
6816
  export declare interface PluginConfigMap {
6757
6817
  'external-objects': RapiConfigurationEnhanced | ExternalConfiguration;
6758
6818
  }
@@ -8023,6 +8083,7 @@ export declare interface RoomleComponent extends RoomleEventedObject3D {
8023
8083
  animationValueMap?: AnimationValueMap;
8024
8084
  get childComponents(): RoomleComponent[];
8025
8085
  get parentComponent(): RoomleComponent | null;
8086
+ get rootComponent(): RoomleComponent;
8026
8087
  replaceMeshes(meshes: Mesh[]): void;
8027
8088
  addMesh(mesh: Mesh, transform?: Float32Array): void;
8028
8089
  removeMesh(mesh: Mesh): void;
@@ -9052,17 +9113,26 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
9052
9113
  * return the object runtime id
9053
9114
  */
9054
9115
  createPlanFromObject(id: RapiId, position?: Position3, rotation?: number): Promise<number>;
9116
+ /**
9117
+ * Creates a plan holding a single object built from a configuration string
9118
+ * @param configuration configuration string (`{"componentId":"catalog:item",…}`).
9119
+ * @param position XYZ
9120
+ * @param rotation deg
9121
+ */
9122
+ createPlanFromConfigurationString(configuration: string, position?: Position3, rotation?: number): Promise<number>;
9123
+ private _createPlanFromElement;
9055
9124
  loadPlanXml(xml: string, options?: InitDataDefinition & GlobalInitDataDefinition): Promise<void>;
9056
9125
  /**
9057
- * Creates 2D elevation plans of the current plan, one per elevation view.
9058
- * Each plan is returned as raw SVG markup (wireframe rendering with
9126
+ * Creates the 2D plans of the current plan: the floor plan of the whole
9127
+ * construction first, then one elevation plan per construction edge. Each
9128
+ * plan is returned as raw SVG markup (wireframe rendering with
9059
9129
  * dimensionings).
9060
9130
  *
9061
- * @returns the elevation plans, each containing its SVG markup
9131
+ * @returns the plans, each containing its SVG markup and its view type
9062
9132
  */
9063
9133
  create2DElevationPlan(): Promise<ElevationPlans>;
9064
9134
  /**
9065
- * Creates the 2D elevation plans of the current plan (see
9135
+ * Creates the 2D plans of the current plan (see
9066
9136
  * {@link create2DElevationPlan}) and downloads each plan as an SVG file.
9067
9137
  */
9068
9138
  download2DElevationPlan(): Promise<void>;
@@ -9409,6 +9479,7 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
9409
9479
  private _loadExternalObjectGroupInConfigurator;
9410
9480
  private _loadExternalObjectGroupInPlanner;
9411
9481
  private _updateExternalObjectRootModuleSelection;
9482
+ private _mergeAndSelectExternalObjectGroup;
9412
9483
  private _loadOrUpdateExternalObjectGroup;
9413
9484
  private _interactionBeforeLoadingExternalObjectGroups;
9414
9485
  private _interactionAfterLoadingExternalObjectGroups;
@@ -9430,6 +9501,7 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
9430
9501
  openOrCloseGeometryOfExternalObject(groupIdOrRootModuleId: string, _subModuleId: string | null, open: boolean, animate: boolean): void;
9431
9502
  _selectExternalObjectGroup(groupId: string, switchToPlanner: boolean): Promise<void>;
9432
9503
  getExternalObjectGroups(): Promise<object[]>;
9504
+ getExternalObjectPlanContext(include?: HiPlanContextSection[]): Promise<HiPlanContext>;
9433
9505
  getExternalRoomInformation(mode?: PlanRoomGeometryMode): Promise<ExternalRoomInformation>;
9434
9506
  /**
9435
9507
  * Highlights a product in the planner.
@@ -10022,6 +10094,7 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
10022
10094
  private _clock;
10023
10095
  private _delta;
10024
10096
  protected _renderLoopFunction: (() => void) | null;
10097
+ private _renderLoopFunctionApplied;
10025
10098
  protected _renderListener: (() => void) | null;
10026
10099
  protected _stopRendering: boolean;
10027
10100
  protected _roomleRenderer: GenericRoomleRenderer | null;
@@ -10038,6 +10111,12 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
10038
10111
  protected abstract createCameraControl(mode: Enumify_3<typeof CAMERA_TYPE>, offset: CanvasOffset): void;
10039
10112
  protected abstract _getInputManager(): InputManager;
10040
10113
  get cameraBehaviour(): CameraBehaviour;
10114
+ protected _scheduleRenderLoopFunction(renderLoopFunction: () => void): void;
10115
+ /**
10116
+ * Resolves the next time the render loop applies a scheduled function, so arm
10117
+ * it **before** triggering the work whose mutation you are waiting for.
10118
+ */
10119
+ whenRenderLoopFunctionApplied(): Promise<void>;
10041
10120
  abstract sceneChanged(): void;
10042
10121
  abstract getBounds(): Box3 | null;
10043
10122
  abstract getGeometryBounds(): Box3 | null;
@@ -10937,6 +11016,7 @@ export declare class WebGpuConfig implements WebGpuConfigDefinition {
10937
11016
  topLight: WebGpuTopLightConfig;
10938
11017
  groundReflection: WebGpuGroundReflectionConfig;
10939
11018
  fog: WebGpuFogConfig;
11019
+ ssgi: WebGpuSSGIConfig;
10940
11020
  toneMapping: WebGpuToneMapping;
10941
11021
  toneMappingExposure: number;
10942
11022
  }
@@ -10975,6 +11055,10 @@ export declare interface WebGpuConfigDefinition {
10975
11055
  * @description Visual configuration for the WebGPU fog.
10976
11056
  */
10977
11057
  fog?: WebGpuFogConfigDefinition;
11058
+ /**
11059
+ * @description Visual configuration for the WebGPU screen space global illumination (SSGI) effect.
11060
+ */
11061
+ ssgi?: WebGpuSSGIConfigDefinition;
10978
11062
  /**
10979
11063
  * @description Tone mapping operator applied by the WebGPU renderer.
10980
11064
  * @default 'none'
@@ -11055,6 +11139,28 @@ export declare interface WebGpuGroundReflectionConfigDefinition {
11055
11139
  endFadeout?: number;
11056
11140
  }
11057
11141
 
11142
+ export declare class WebGpuSSGIConfig implements WebGpuSSGIConfigDefinition {
11143
+ giDenoiseRadius: number;
11144
+ aoDenoiseRadius: number;
11145
+ }
11146
+
11147
+ export declare interface WebGpuSSGIConfigDefinition {
11148
+ /**
11149
+ * @description Radius of the denoising filter applied to the indirect lighting.
11150
+ * Higher values produce a stronger denoising effect, which can help reduce noise
11151
+ * in the indirect lighting but may also blur fine details.
11152
+ * @default 20
11153
+ */
11154
+ giDenoiseRadius?: number;
11155
+ /**
11156
+ * @description Radius of the denoising filter applied to the ambient occlusion (AO) pass.
11157
+ * Higher values produce a stronger denoising effect, which can help reduce noise
11158
+ * in the AO but may also blur fine details.
11159
+ * @default 10
11160
+ */
11161
+ aoDenoiseRadius?: number;
11162
+ }
11163
+
11058
11164
  export declare type WebGpuToneMapping = Enumify_3<typeof WEBGPU_TONE_MAPPINGS>;
11059
11165
 
11060
11166
  export declare class WebGpuTopLightConfig implements WebGpuTopLightConfigDefinition {
package/lib/roomle-sdk.js CHANGED
@@ -1,9 +1,9 @@
1
- import { a as e, i as t, n, r, t as i } from "./packages-BGVMQMZK.mjs";
1
+ import { a as e, i as t, n, r, t as i } from "./packages-0GadOkxt.mjs";
2
2
  import { i as a, t as o } from "./kernel-BWfRHWkW.mjs";
3
- import { mt as s, vt as c } from "./threejs-utils-C9zED_Tu.mjs";
4
- import { F as l, G as u, J as d, K as f, M as p, N as m, P as h, S as g, W as _, b as v, ct as y, dt as b, j as x, k as S, lt as C, mt as w, q as T, t as E, u as D, ut as O, x as k, y as A, z as j } from "./roomle-sdk-B73VmWod.mjs";
5
- import { t as M } from "./configurator-Cbof6AET.mjs";
6
- import { t as N } from "./planner-DFa8uJOF.mjs";
7
- import { n as P, t as F } from "./glb-viewer-DmVh1uJg.mjs";
8
- import { t as I } from "./api-B6sLiuiL.mjs";
3
+ import { mt as s, vt as c } from "./threejs-utils-DKJ0uer7.mjs";
4
+ import { F as l, G as u, J as d, K as f, M as p, N as m, P as h, S as g, W as _, b as v, ct as y, dt as b, j as x, k as S, lt as C, mt as w, q as T, t as E, u as D, ut as O, x as k, y as A, z as j } from "./roomle-sdk-CpgzRTKP.mjs";
5
+ import { t as M } from "./configurator-CUiTTJmW.mjs";
6
+ import { t as N } from "./planner-CyQKj8Ok.mjs";
7
+ import { n as P, t as F } from "./glb-viewer-DB5c3Qk5.mjs";
8
+ import { t as I } from "./api-C430uhWG.mjs";
9
9
  export { o as CONFIGURATION_TYPE, s as CORE_EDGE_TYPE, c as CORE_OBJECT_CATEGORY, a as CORE_PERMISSION_TO_DELETE, M as Configurator, x as FloorPlanElementViewModel, F as GlbViewer, j as HI_CONTEXT_ACTION, g as MeasurementLinePlanElementViewModel, A as PLAN_ELEMENT_CHANGE_TYPES, l as PlanElementViewModel, h as PlanObjectViewModel, N as Planner, y as RapiAccess, C as RapiInvalidIdError, O as RapiOfflineError, I as RoomDesignerApi, S as RoomleConfigurator, P as RoomleGLBViewer, w as RoomleLightSource, D as RoomlePlanner, E as RoomleSdk, m as StaticPlanObjectViewModel, p as WallPlanElementViewModel, _ as createExtObj, d as createExtObjId, b as getCatalogIdFromConfigurationHash, u as isExtObjId, f as isExternalObject, v as isFirefox, i as isIdAComponent, n as isIdAConfigurationString, r as isIdAPlan, t as isIdAnItem, e as isPlanSnapshotId, k as isSafari, T as removeExtObjIdPrefix };