@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.
- package/lib/ConfiguratorKernel.wasm +0 -0
- package/lib/{GaussianBlurNode-DEczNsyD.mjs → GaussianBlurNode-Bjszve7N.mjs} +15 -15
- package/lib/{GaussianBlurNode-DEczNsyD.mjs.map → GaussianBlurNode-Bjszve7N.mjs.map} +1 -1
- package/lib/RoomleCore.js +3 -3
- package/lib/RoomleCore.wasm +0 -0
- package/lib/RoomleToolsCore.wasm +0 -0
- package/lib/{api-B6sLiuiL.mjs → api-C430uhWG.mjs} +2 -2
- package/lib/{api-B6sLiuiL.mjs.map → api-C430uhWG.mjs.map} +1 -1
- package/lib/asset-loader.worker-eqHzNAwa.mjs.map +1 -1
- package/lib/{banana-for-scale-C-grIlTK.mjs → banana-for-scale-DGYmxeBG.mjs} +3 -3
- package/lib/{banana-for-scale-C-grIlTK.mjs.map → banana-for-scale-DGYmxeBG.mjs.map} +1 -1
- package/lib/budgeteer.sw-BUMElkO1.mjs.map +1 -1
- package/lib/{common-utils-6T8eGlhX.mjs → common-utils-CyQUubmw.mjs} +29 -15
- package/lib/{common-utils-6T8eGlhX.mjs.map → common-utils-CyQUubmw.mjs.map} +1 -1
- package/lib/{component-dimensioning-DJuokZnv.mjs → component-dimensioning-BXN285kw.mjs} +4 -4
- package/lib/{component-dimensioning-DJuokZnv.mjs.map → component-dimensioning-BXN285kw.mjs.map} +1 -1
- package/lib/{component-raycast-helper-SZg14d7A.mjs → component-raycast-helper-CADFRMLS.mjs} +3 -3
- package/lib/{component-raycast-helper-SZg14d7A.mjs.map → component-raycast-helper-CADFRMLS.mjs.map} +1 -1
- package/lib/configurator-9ICb3RBz.mjs +2 -0
- package/lib/{configurator-Cbof6AET.mjs → configurator-CUiTTJmW.mjs} +4 -4
- package/lib/{configurator-Cbof6AET.mjs.map → configurator-CUiTTJmW.mjs.map} +1 -1
- package/lib/{decorate-CX1ZGuFY.mjs → decorate-CjaqqbUP.mjs} +12 -9
- package/lib/decorate-CjaqqbUP.mjs.map +1 -0
- package/lib/dimensioning-helper-0s61LK9R.mjs +2 -0
- package/lib/{dimensioning-helper-BwvR76_I.mjs → dimensioning-helper-Cgao7A18.mjs} +2 -2
- package/lib/{dimensioning-helper-BwvR76_I.mjs.map → dimensioning-helper-Cgao7A18.mjs.map} +1 -1
- package/lib/{glb-viewer-DmVh1uJg.mjs → glb-viewer-DB5c3Qk5.mjs} +6 -6
- package/lib/{glb-viewer-DmVh1uJg.mjs.map → glb-viewer-DB5c3Qk5.mjs.map} +1 -1
- package/lib/glb-viewer-_gIYHXT9.mjs +2 -0
- package/lib/{highlight-coordinator-Qonmfsu1.mjs → highlight-coordinator-RCfVwPHC.mjs} +2 -2
- package/lib/{highlight-coordinator-Qonmfsu1.mjs.map → highlight-coordinator-RCfVwPHC.mjs.map} +1 -1
- package/lib/{homag-intelligence-CzD_RMQo.mjs → homag-intelligence-8eBT714O.mjs} +8 -5
- package/lib/{homag-intelligence-CzD_RMQo.mjs.map → homag-intelligence-8eBT714O.mjs.map} +1 -1
- package/lib/{imos-ix-poc-export-helper-Q6-OXziY.mjs → imos-ix-poc-export-helper-DRQK_p2h.mjs} +2 -2
- package/lib/{imos-ix-poc-export-helper-Q6-OXziY.mjs.map → imos-ix-poc-export-helper-DRQK_p2h.mjs.map} +1 -1
- package/lib/{material-viewer-BkSh-aG7.mjs → material-viewer-CfZwcbei.mjs} +6 -6
- package/lib/{material-viewer-BkSh-aG7.mjs.map → material-viewer-CfZwcbei.mjs.map} +1 -1
- package/lib/{packages-BGVMQMZK.mjs → packages-0GadOkxt.mjs} +5 -5
- package/lib/{packages-BGVMQMZK.mjs.map → packages-0GadOkxt.mjs.map} +1 -1
- package/lib/{planner-DFa8uJOF.mjs → planner-CyQKj8Ok.mjs} +3 -3
- package/lib/{planner-DFa8uJOF.mjs.map → planner-CyQKj8Ok.mjs.map} +1 -1
- package/lib/planner-D63FNjtX.mjs +2 -0
- package/lib/{plugin-system-CqXT37-v.mjs → plugin-system-vlnG8j2T.mjs} +3 -3
- package/lib/{plugin-system-CqXT37-v.mjs.map → plugin-system-vlnG8j2T.mjs.map} +1 -1
- package/lib/{roomle-headless-setup-7xnQlZl3.mjs → roomle-headless-setup-DbO_rLjK.mjs} +54 -40
- package/lib/roomle-headless-setup-DbO_rLjK.mjs.map +1 -0
- package/lib/roomle-headless.d.ts +167 -126
- package/lib/roomle-headless.js +289 -358
- package/lib/roomle-headless.js.map +1 -1
- package/lib/roomle-renderer-FUqNfNIf.mjs.map +1 -1
- package/lib/{roomle-sdk-B73VmWod.mjs → roomle-sdk-CpgzRTKP.mjs} +2855 -2713
- package/lib/roomle-sdk-CpgzRTKP.mjs.map +1 -0
- package/lib/roomle-sdk.d.ts +121 -15
- package/lib/roomle-sdk.js +7 -7
- package/lib/{roomle-webgpu-renderer-Dzuy_Y39.mjs → roomle-webgpu-renderer-Lt55gNj5.mjs} +370 -303
- package/lib/roomle-webgpu-renderer-Lt55gNj5.mjs.map +1 -0
- package/lib/{scene-renderer-DR7EFd-8.mjs → scene-renderer-CSBoi_8w.mjs} +5 -5
- package/lib/{scene-renderer-DR7EFd-8.mjs.map → scene-renderer-CSBoi_8w.mjs.map} +1 -1
- package/lib/{script-loader-BlsGBrYo.mjs → script-loader-BmScoq7Y.mjs} +3 -3
- package/lib/{script-loader-BlsGBrYo.mjs.map → script-loader-BmScoq7Y.mjs.map} +1 -1
- package/lib/{shading-settings-Bnt9v9xJ.mjs → shading-settings-CRNmMpcn.mjs} +2 -2
- package/lib/{shading-settings-Bnt9v9xJ.mjs.map → shading-settings-CRNmMpcn.mjs.map} +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.d.ts +34 -8
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js +5 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js.map +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js +3 -3
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
- package/lib/{stats-helper-vEwFkDIt.mjs → stats-helper-P4jYV8as.mjs} +3 -3
- package/lib/{stats-helper-vEwFkDIt.mjs.map → stats-helper-P4jYV8as.mjs.map} +1 -1
- package/lib/three.tsl-BnL9nfJa.mjs +2 -0
- package/lib/{three.tsl-BElp7_oF.mjs → three.tsl-Dew9p5yF.mjs} +46 -48
- package/lib/{three.tsl-BElp7_oF.mjs.map → three.tsl-Dew9p5yF.mjs.map} +1 -1
- package/lib/{threejs-utils-C9zED_Tu.mjs → threejs-utils-DKJ0uer7.mjs} +92 -88
- package/lib/threejs-utils-DKJ0uer7.mjs.map +1 -0
- package/lib/{tools-core-DKYMilYC.mjs → tools-core-CAEfSB8I.mjs} +3 -3
- package/lib/{tools-core-DKYMilYC.mjs.map → tools-core-CAEfSB8I.mjs.map} +1 -1
- package/lib/{webgpu-BMwlJflc.mjs → webgpu-B0rxiqW-.mjs} +313 -313
- package/lib/{webgpu-BMwlJflc.mjs.map → webgpu-B0rxiqW-.mjs.map} +1 -1
- package/package.json +2 -2
- package/lib/configurator-BFd5022u.mjs +0 -2
- package/lib/decorate-CX1ZGuFY.mjs.map +0 -1
- package/lib/dimensioning-helper-yMfkA1IY.mjs +0 -2
- package/lib/glb-viewer-DlH5_aTU.mjs +0 -2
- package/lib/planner-CSKuhBke.mjs +0 -2
- package/lib/roomle-headless-setup-7xnQlZl3.mjs.map +0 -1
- package/lib/roomle-sdk-B73VmWod.mjs.map +0 -1
- package/lib/roomle-webgpu-renderer-Dzuy_Y39.mjs.map +0 -1
- package/lib/three.tsl-BtDRDR0q.mjs +0 -2
- package/lib/threejs-utils-C9zED_Tu.mjs.map +0 -1
package/lib/roomle-headless.d.ts
CHANGED
|
@@ -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_3<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;
|
|
@@ -2957,9 +2966,13 @@ export declare interface ExternalObjectAPI {
|
|
|
2957
2966
|
*/
|
|
2958
2967
|
loadExternalObjectGroups(groupJson: ExternalGroupData, options: LoadExternalObjectOptions): Promise<LoadExternalObjectGroupResult[]>;
|
|
2959
2968
|
/**
|
|
2960
|
-
* "loadExternalObjectGroupLayout" creates and loads
|
|
2961
|
-
* @param articleLayoutJson The article layout JSON as object.
|
|
2962
|
-
*
|
|
2969
|
+
* "loadExternalObjectGroupLayout" creates and loads groups of modules from an article layout.
|
|
2970
|
+
* @param articleLayoutJson The article layout JSON as object. The layout type "nobila" evaluates
|
|
2971
|
+
* the "shapes" property, the layout type "posGroups" evaluates the "posGroups" property.
|
|
2972
|
+
* For the layout type "posGroups" a group whose id matches a group already loaded in the plan
|
|
2973
|
+
* completely replaces that group; root modules keep their ids when they already exist in the
|
|
2974
|
+
* replaced group, all other ids are regenerated.
|
|
2975
|
+
* @param layoutType The article layout type. "nobila" and "posGroups" are supported.
|
|
2963
2976
|
* @param options Options for loading the external object group.
|
|
2964
2977
|
*/
|
|
2965
2978
|
loadExternalObjectGroupLayout(articleLayoutJson: ExternalObjectGroupLayout, layoutType: string, options?: LoadExternalObjectOptions): Promise<LoadExternalObjectGroupResult[]>;
|
|
@@ -3056,6 +3069,13 @@ export declare interface ExternalObjectAPI {
|
|
|
3056
3069
|
* "getExternalRoomInformation" returns the room information for currently loaded in the plan.
|
|
3057
3070
|
*/
|
|
3058
3071
|
getExternalRoomInformation(mode?: PlanRoomGeometryMode): Promise<ExternalRoomInformation>;
|
|
3072
|
+
/**
|
|
3073
|
+
* "getExternalObjectPlanContext" returns a consistent snapshot of the external object state:
|
|
3074
|
+
* the master data per library, the room information of all rooms, the articles that can be
|
|
3075
|
+
* used, and all groups currently loaded in the plan.
|
|
3076
|
+
* @param include The sections to include. All sections are returned when omitted or empty.
|
|
3077
|
+
*/
|
|
3078
|
+
getExternalObjectPlanContext(include?: HiPlanContextSection[]): Promise<HiPlanContext>;
|
|
3059
3079
|
/**
|
|
3060
3080
|
* It generates a snapshot of the external object in the plan without saving any data.
|
|
3061
3081
|
* By default, the snapshot includes order data, room information, the plan XML, GLBs of the complete scene,
|
|
@@ -3130,6 +3150,7 @@ export declare interface ExternalObjectGroup {
|
|
|
3130
3150
|
export declare interface ExternalObjectGroupLayout {
|
|
3131
3151
|
[key: string]: unknown;
|
|
3132
3152
|
shapes?: ExternalObjectGroupLayoutShape[];
|
|
3153
|
+
posGroups?: PosGroup[];
|
|
3133
3154
|
}
|
|
3134
3155
|
|
|
3135
3156
|
export declare interface ExternalObjectGroupLayoutArticle {
|
|
@@ -3396,6 +3417,18 @@ export declare class FloorMaterial extends BaseMaterial {
|
|
|
3396
3417
|
rotation(): KernelVector3f;
|
|
3397
3418
|
}
|
|
3398
3419
|
|
|
3420
|
+
export declare interface FloorPlanEdge {
|
|
3421
|
+
id: number;
|
|
3422
|
+
start: KernelVector3f;
|
|
3423
|
+
end: KernelVector3f;
|
|
3424
|
+
startDeflection?: EdgeDeflection | null;
|
|
3425
|
+
endDeflection?: EdgeDeflection | null;
|
|
3426
|
+
}
|
|
3427
|
+
|
|
3428
|
+
export declare interface FloorPlanEdges {
|
|
3429
|
+
edges: FloorPlanEdge[];
|
|
3430
|
+
}
|
|
3431
|
+
|
|
3399
3432
|
export declare class FloorPlanElementViewModel extends PlanElementViewModel {
|
|
3400
3433
|
constructor(planObject: PlanObject);
|
|
3401
3434
|
addMesh(mesh: Mesh): void;
|
|
@@ -3651,8 +3684,9 @@ export declare interface GlueLogic {
|
|
|
3651
3684
|
getSaveDataGroups(): Promise<PosGroup[] | null>;
|
|
3652
3685
|
getSubArticleId(id: string): string | undefined;
|
|
3653
3686
|
newPosDataFromId(id: string): Promise<PosGroup | undefined>;
|
|
3654
|
-
|
|
3687
|
+
createOrReplacePosDataFromArticleLayout(articleLayoutJson: ExternalObjectGroupLayout, layoutType: string, posArticles?: PosArticle[]): Promise<PosGroup | PosGroup[] | undefined>;
|
|
3655
3688
|
newPosDataFromGroup(posDataJson: PosGroup): Promise<PosGroup>;
|
|
3689
|
+
getPlanContext(include?: HiPlanContextSection[]): Promise<HiPlanContext>;
|
|
3656
3690
|
getGroupDataForOrder(options: GetGroupDataForOrderOptions): Promise<HiOrderData | null>;
|
|
3657
3691
|
getMaterialUrl(materialId: string, groupOrModuleId?: string): string | null;
|
|
3658
3692
|
}
|
|
@@ -3812,25 +3846,12 @@ export declare interface HeadlessInitData extends Partial<InitDataDefinition>, P
|
|
|
3812
3846
|
}
|
|
3813
3847
|
|
|
3814
3848
|
export declare class HeadlessRoomleSdk {
|
|
3815
|
-
private
|
|
3816
|
-
private
|
|
3817
|
-
private
|
|
3818
|
-
private
|
|
3819
|
-
private _glbViewer;
|
|
3820
|
-
private _glbViewerMain;
|
|
3821
|
-
private _initialized;
|
|
3822
|
-
private _configuratorReady;
|
|
3823
|
-
private _plannerReady;
|
|
3824
|
-
private _glbViewerReady;
|
|
3825
|
-
private _loadedConfigurationId;
|
|
3826
|
-
private _loadedPlanId;
|
|
3827
|
-
private _loadedStaticItemId;
|
|
3828
|
-
private _width;
|
|
3829
|
-
private _height;
|
|
3830
|
-
private _featureFlags?;
|
|
3831
|
-
private _webGpuConfig?;
|
|
3832
|
-
private _webGpu;
|
|
3849
|
+
private readonly _initData;
|
|
3850
|
+
private readonly _webGpuConfig;
|
|
3851
|
+
private readonly _container;
|
|
3852
|
+
private _plannerMainPromise;
|
|
3833
3853
|
private _loaderQueue;
|
|
3854
|
+
private _loadedScene;
|
|
3834
3855
|
private _skyboxOriginal;
|
|
3835
3856
|
/**
|
|
3836
3857
|
* Create and initialize a headless SDK instance.
|
|
@@ -3838,82 +3859,66 @@ export declare class HeadlessRoomleSdk {
|
|
|
3838
3859
|
* @returns Initialized SDK instance.
|
|
3839
3860
|
*/
|
|
3840
3861
|
static create(initData: HeadlessInitData): Promise<HeadlessRoomleSdk>;
|
|
3841
|
-
private
|
|
3842
|
-
private _deepMergeHeadlessInitDefaults;
|
|
3843
|
-
private _registerHeadlessServices;
|
|
3844
|
-
private _makeStubElement;
|
|
3862
|
+
private constructor();
|
|
3845
3863
|
/**
|
|
3846
|
-
*
|
|
3847
|
-
*
|
|
3864
|
+
* Mount the configurator inside the planner, booting the planner if needed.
|
|
3865
|
+
* It shares the planner's kernel and scene manager (the planner's own
|
|
3866
|
+
* configure-in-room path) and never loads a scene of its own.
|
|
3848
3867
|
*/
|
|
3849
|
-
|
|
3868
|
+
getHeadlessConfigurator(): Promise<RoomleConfigurator>;
|
|
3850
3869
|
/**
|
|
3851
|
-
* Boot and initialize the planner
|
|
3852
|
-
*
|
|
3870
|
+
* Boot and initialize the headless planner. Optional: every load boots it
|
|
3871
|
+
* on demand.
|
|
3853
3872
|
*/
|
|
3854
|
-
|
|
3873
|
+
createHeadlessPlanner(): Promise<void>;
|
|
3855
3874
|
/**
|
|
3856
|
-
*
|
|
3857
|
-
*
|
|
3875
|
+
* The first call boots a planner, every other one awaits the same boot promise
|
|
3876
|
+
* so we can only ever have 1 instance.
|
|
3858
3877
|
*/
|
|
3859
|
-
|
|
3878
|
+
private _getPlannerMain;
|
|
3879
|
+
private _bootPlanner;
|
|
3880
|
+
private _getPlanner;
|
|
3881
|
+
private _getConfigurator;
|
|
3860
3882
|
/**
|
|
3861
|
-
* Load a saved configuration by **id
|
|
3862
|
-
*
|
|
3863
|
-
*
|
|
3864
|
-
* @
|
|
3865
|
-
*
|
|
3883
|
+
* Load a saved configuration by **id**. Like every load it goes through the
|
|
3884
|
+
* planner: `createPlanFromObject` picks the RAPI endpoint from the id shape
|
|
3885
|
+
* (`/items/` for `catalog:item`, `/configurations/` for `catalog:item:HASH`),
|
|
3886
|
+
* so this method, {@link loadConfigurableItemById} and {@link loadStaticItem}
|
|
3887
|
+
* behave the same and only name the caller's intent. For an inline
|
|
3888
|
+
* configuration string use {@link loadConfigurationString} instead.
|
|
3889
|
+
* @param configurationId `catalog:item:HASH`.
|
|
3866
3890
|
*/
|
|
3867
|
-
loadConfiguration(configurationId: RapiId
|
|
3891
|
+
loadConfiguration(configurationId: RapiId): Promise<void>;
|
|
3868
3892
|
/**
|
|
3869
3893
|
* Load a configuration string directly without querying the RAPI (`{"componentId":"catalog:item",…}`)
|
|
3870
3894
|
* To load a configuration by ID, use {@link loadConfiguration}
|
|
3871
3895
|
*/
|
|
3872
|
-
loadConfigurationString(configuration: string
|
|
3896
|
+
loadConfigurationString(configuration: string): Promise<void>;
|
|
3873
3897
|
/**
|
|
3874
|
-
* Load a configurable item
|
|
3898
|
+
* Load a configurable item by id. Same path as {@link loadConfiguration};
|
|
3899
|
+
* the name states the intent.
|
|
3875
3900
|
* @param itemId Single-segment id like `catalog:item`.
|
|
3876
|
-
* @param initData Optional per-module init overrides for prewarm.
|
|
3877
3901
|
*/
|
|
3878
|
-
loadConfigurableItemById(itemId: RapiId
|
|
3879
|
-
private _loadIntoConfigurator;
|
|
3902
|
+
loadConfigurableItemById(itemId: RapiId): Promise<void>;
|
|
3880
3903
|
/**
|
|
3881
|
-
* Load a static (non-configurable) item
|
|
3904
|
+
* Load a static (non-configurable) item. Same path as
|
|
3905
|
+
* {@link loadConfiguration}; the kernel decides static vs. configurable.
|
|
3882
3906
|
* @param staticItemId Catalog item id whose RAPI record has no `configuration`.
|
|
3883
|
-
* @param initData Optional per-module init overrides for prewarm.
|
|
3884
|
-
*/
|
|
3885
|
-
loadStaticItem(staticItemId: string, initData?: Partial<InitDataDefinition>): Promise<void>;
|
|
3886
|
-
/**
|
|
3887
|
-
* GLB-loaded scenes commonly contain hundreds of thousands of triangles
|
|
3888
|
-
* (high-poly furniture/cars). With the default 1024² shadow map those
|
|
3889
|
-
* triangles cast a self-shadow pattern back onto themselves that the
|
|
3890
|
-
* shadow comparison can't resolve cleanly — it appears as a dense
|
|
3891
|
-
* triangle/herringbone overlay covering every PBR-shaded surface
|
|
3892
|
-
* (visible on flat-coloured car bodies, wood slats, etc.). The
|
|
3893
|
-
* artifact is specific to headless's GL backend; in the browser the
|
|
3894
|
-
* same scene renders fine.
|
|
3895
|
-
*
|
|
3896
|
-
* Walking the freshly-loaded scene and clearing `castShadow` on every
|
|
3897
|
-
* mesh removes the cause of the acne while keeping `receiveShadow`,
|
|
3898
|
-
* so static items still pick up shadows from external casters and
|
|
3899
|
-
* full PBR direct-light shading is preserved.
|
|
3900
3907
|
*/
|
|
3901
|
-
|
|
3902
|
-
loadObject(id: string
|
|
3908
|
+
loadStaticItem(staticItemId: string): Promise<void>;
|
|
3909
|
+
loadObject(id: string): Promise<void>;
|
|
3903
3910
|
/**
|
|
3904
3911
|
* Load a plan into the planner.
|
|
3905
3912
|
* @param planId Plan id (no colons).
|
|
3906
|
-
* @param initData Optional per-module init overrides for prewarm.
|
|
3907
3913
|
*/
|
|
3908
|
-
loadPlan(planId: string
|
|
3914
|
+
loadPlan(planId: string): Promise<void>;
|
|
3909
3915
|
/**
|
|
3910
3916
|
* Load plan XML string directly in the planner.
|
|
3911
3917
|
* @param xml Plan XML (`<plan version="2">…</plan>`).
|
|
3912
|
-
* @param initData Optional per-module init overrides for prewarm.
|
|
3913
3918
|
*/
|
|
3914
|
-
loadPlanXml(xml: string
|
|
3919
|
+
loadPlanXml(xml: string): Promise<void>;
|
|
3915
3920
|
private _loadIntoPlanner;
|
|
3916
|
-
private
|
|
3921
|
+
private _load;
|
|
3917
3922
|
/**
|
|
3918
3923
|
* Serialises concurrent load operations using a promise-chain queue.
|
|
3919
3924
|
* Each call chains its task onto the previous queue tail so they run
|
|
@@ -3922,28 +3927,6 @@ export declare class HeadlessRoomleSdk {
|
|
|
3922
3927
|
* always advanced in a settled state).
|
|
3923
3928
|
*/
|
|
3924
3929
|
private _withLoader;
|
|
3925
|
-
/**
|
|
3926
|
-
* Wait for the active scene to fire its onReadyForRender callback —
|
|
3927
|
-
* fired by each scene manager once `_itemsLoaded` (planner) /
|
|
3928
|
-
* `loadConfiguration` (configurator) / `loadStaticItem` (GLB viewer)
|
|
3929
|
-
* has finished constructing the scene and queued its materials. The
|
|
3930
|
-
* callback is armed via {@link _armOnReadyForRender} *before* the load
|
|
3931
|
-
* begins so synchronous firings (the GLB viewer does this) are still
|
|
3932
|
-
* caught.
|
|
3933
|
-
*/
|
|
3934
|
-
private _settleScene;
|
|
3935
|
-
/**
|
|
3936
|
-
* Pre-arms an onReadyForRender listener on the *global* callback (shared
|
|
3937
|
-
* across configurator/planner/GLB viewer) so that it captures even
|
|
3938
|
-
* synchronous firings during the upcoming load. Restores the previous
|
|
3939
|
-
* callback after firing. Using the global callback rather than each
|
|
3940
|
-
* module's api.callbacks is necessary because the GLB viewer only fires
|
|
3941
|
-
* the global one ([glb-viewer-scene-manager.ts:355](packages/web-sdk/packages/glb-viewer-core/src/webgl/glb-viewer-scene-manager.ts:355)).
|
|
3942
|
-
*/
|
|
3943
|
-
private _armOnReadyForRender;
|
|
3944
|
-
private _onReadyForRenderArmed;
|
|
3945
|
-
private _getPlannerListenerInfo;
|
|
3946
|
-
private _getConfiguratorListenerInfo;
|
|
3947
3930
|
/**
|
|
3948
3931
|
* Export the active scene as GLB.
|
|
3949
3932
|
* @param outputPath Optional file path to write the buffer to.
|
|
@@ -3956,16 +3939,7 @@ export declare class HeadlessRoomleSdk {
|
|
|
3956
3939
|
* @returns The USDZ bytes as an ArrayBuffer.
|
|
3957
3940
|
*/
|
|
3958
3941
|
exportUSDZ(outputPath?: string): Promise<ExportResult>;
|
|
3959
|
-
|
|
3960
|
-
* Returns the active top-level API (planner or configurator) based on what
|
|
3961
|
-
* was last loaded. `loadPlan()` and `loadConfiguration()` are mutually
|
|
3962
|
-
* exclusive — each one nulls the other's id — so this resolves cleanly.
|
|
3963
|
-
*/
|
|
3964
|
-
private _getActiveApi;
|
|
3965
|
-
/**
|
|
3966
|
-
* Returns the scene manager of whichever module is active. All exporters
|
|
3967
|
-
* route through here so plan-mode and config-mode share a single code path.
|
|
3968
|
-
*/
|
|
3942
|
+
private _requireLoadedScene;
|
|
3969
3943
|
private _getActiveSceneManager;
|
|
3970
3944
|
setEnvironmentMap(url: string, options?: EnvironmentMapOptions): Promise<void>;
|
|
3971
3945
|
resetEnvironmentMap(options?: EnvironmentMapOptions): Promise<void>;
|
|
@@ -3973,6 +3947,8 @@ export declare class HeadlessRoomleSdk {
|
|
|
3973
3947
|
private _getEnvironmentSceneManager;
|
|
3974
3948
|
setSkybox(url: string): Promise<void>;
|
|
3975
3949
|
resetSkybox(): void;
|
|
3950
|
+
private _useEnvironmentGeometry;
|
|
3951
|
+
private _withLoadedScene;
|
|
3976
3952
|
private _export;
|
|
3977
3953
|
/**
|
|
3978
3954
|
* Render a perspective screenshot preserving the scene background.
|
|
@@ -3997,7 +3973,9 @@ export declare class HeadlessRoomleSdk {
|
|
|
3997
3973
|
height: number;
|
|
3998
3974
|
}>;
|
|
3999
3975
|
/**
|
|
4000
|
-
* Render a top-down image of the scene. Not
|
|
3976
|
+
* Render a top-down image of the scene. Not covered by tests for static
|
|
3977
|
+
* items (RML-17789): the GLB viewer used to refuse them, the planner path
|
|
3978
|
+
* does not, and nobody has verified the output yet.
|
|
4001
3979
|
* @param outputPath Optional file path to write the PNG to.
|
|
4002
3980
|
* @param options ssaa, size, showDimensions.
|
|
4003
3981
|
* @returns Data URL plus final image dimensions.
|
|
@@ -4007,18 +3985,9 @@ export declare class HeadlessRoomleSdk {
|
|
|
4007
3985
|
width: number;
|
|
4008
3986
|
height: number;
|
|
4009
3987
|
}>;
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
private _resolveImageDataUrl;
|
|
4013
|
-
private _writeDataUrlToFile;
|
|
4014
|
-
private _rawPixelsToPngDataUrl;
|
|
4015
|
-
/** Downscale a data URL image to target dimensions using high-quality filtering. */
|
|
4016
|
-
private _ssaaDownscale;
|
|
4017
|
-
getConfiguratorApi(): RoomleConfigurator<readonly []>;
|
|
4018
|
-
getPlannerApi(): RoomlePlanner<readonly []>;
|
|
4019
|
-
/** Destroy any prewarmed configurator, planner, and GLB viewer modules. */
|
|
3988
|
+
getConfiguratorApi(): Promise<RoomleConfigurator>;
|
|
3989
|
+
getPlannerApi(): Promise<RoomlePlanner>;
|
|
4020
3990
|
destroy(): Promise<void>;
|
|
4021
|
-
private _ensureInitialized;
|
|
4022
3991
|
}
|
|
4023
3992
|
|
|
4024
3993
|
export declare interface HelpLineType {
|
|
@@ -4101,6 +4070,15 @@ export declare interface HiObjectSelectionApi {
|
|
|
4101
4070
|
selectionChanged(selectionMode: SELECTION_MODE, objectType: CallbackObjectType, payload: SelectionPayload, _payloadPromise: Promise<SelectionPayload>, _planElementViewModel: PlanElementViewModel): void;
|
|
4102
4071
|
}
|
|
4103
4072
|
|
|
4073
|
+
export declare interface HiPlanContext {
|
|
4074
|
+
masterData?: Record<string, MasterData>;
|
|
4075
|
+
rooms?: ExternalRoomInformation;
|
|
4076
|
+
articles?: PosArticle[];
|
|
4077
|
+
groups?: PosGroup[];
|
|
4078
|
+
}
|
|
4079
|
+
|
|
4080
|
+
export declare type HiPlanContextSection = 'masterData' | 'rooms' | 'articles' | 'groups';
|
|
4081
|
+
|
|
4104
4082
|
export declare class HiTagCatalogCallbacks implements Context {
|
|
4105
4083
|
_creator_: string;
|
|
4106
4084
|
private _glueLogic;
|
|
@@ -5142,6 +5120,7 @@ export declare interface LoadExternalObjectGroupResult {
|
|
|
5142
5120
|
|
|
5143
5121
|
export declare interface LoadExternalObjectOptions {
|
|
5144
5122
|
reason?: HiLoadObjectReason;
|
|
5123
|
+
applyGroupPosition?: boolean;
|
|
5145
5124
|
findFreeSpaceInPlan?: boolean;
|
|
5146
5125
|
moduleIdMap?: Array<{
|
|
5147
5126
|
originalModuleId: string;
|
|
@@ -5820,6 +5799,7 @@ export declare const PLAN_ELEMENT_CHANGE_TYPES: {
|
|
|
5820
5799
|
export declare const PLAN_ROOM_GEOMETRY_MODE: {
|
|
5821
5800
|
readonly FLOOR: "floor";
|
|
5822
5801
|
readonly ROOM: "room";
|
|
5802
|
+
readonly PLAN: "plan";
|
|
5823
5803
|
};
|
|
5824
5804
|
|
|
5825
5805
|
export declare abstract class PlanElement extends AbstractModelWrapper {
|
|
@@ -5967,7 +5947,7 @@ export declare interface PlanModelViewHelper_2 {
|
|
|
5967
5947
|
getGroupedObjects(anObject: PlanObject): KernelPlanObject[];
|
|
5968
5948
|
calculateLightSourceDistribution(plan: Plan_2, lightSourceConfiguration: LightSourceConfiguration): RoomLightSourceDistributionArray;
|
|
5969
5949
|
getObjectSnapInformation(anObject: PlanObject, debugHelpLines: boolean): ObjectSnapInformation;
|
|
5970
|
-
|
|
5950
|
+
getPlanViews(plan: Plan_2): PlanView[];
|
|
5971
5951
|
}
|
|
5972
5952
|
|
|
5973
5953
|
export declare class Planner<P extends readonly PluginName[] = readonly []> extends Main {
|
|
@@ -6380,6 +6360,7 @@ export declare class PlannerSceneEventHandler extends SceneEventHandler<SceneEve
|
|
|
6380
6360
|
private _move;
|
|
6381
6361
|
hasSelection(): boolean;
|
|
6382
6362
|
selectPlanElement(planElement: PlanElementViewModel): Promise<void>;
|
|
6363
|
+
selectPlanElementAfterObjectModeChange(planElement: PlanElementViewModel): void;
|
|
6383
6364
|
protected _interaction(_forceRender?: boolean): void;
|
|
6384
6365
|
addComponentDragInHandler(planViewModel: PlanElementViewModel): void;
|
|
6385
6366
|
enableSnapping(): void;
|
|
@@ -6514,6 +6495,7 @@ export declare class PlannerSceneManager extends ConfiguratorSceneManager implem
|
|
|
6514
6495
|
private _setCameraPosition;
|
|
6515
6496
|
private _resetCameraPosition;
|
|
6516
6497
|
selectPlanObject(runtimeId: number): Promise<void>;
|
|
6498
|
+
selectPlanObjectAfterObjectModeChange(runtimeId: number): void;
|
|
6517
6499
|
backToPlanner(): void;
|
|
6518
6500
|
private _getYRotationOfObject;
|
|
6519
6501
|
loadStaticPlanObjects(): void;
|
|
@@ -6869,6 +6851,15 @@ export declare abstract class PlanText extends PlanElement {
|
|
|
6869
6851
|
getText(): string;
|
|
6870
6852
|
}
|
|
6871
6853
|
|
|
6854
|
+
export declare interface PlanView {
|
|
6855
|
+
id: number;
|
|
6856
|
+
viewType: PlanViewType;
|
|
6857
|
+
lineOfSight: KernelVector3f;
|
|
6858
|
+
objects: PlanObject[];
|
|
6859
|
+
profile: ElevationProfile;
|
|
6860
|
+
floorPlanEdges: FloorPlanEdges;
|
|
6861
|
+
}
|
|
6862
|
+
|
|
6872
6863
|
export declare class PlanViewModel extends ConfiguratorViewModel implements PlannerKernelCallbackI {
|
|
6873
6864
|
private _plannerMeshGenerator;
|
|
6874
6865
|
private _roomlePlannerUiCallback;
|
|
@@ -7022,6 +7013,10 @@ export declare class PlanViewModel extends ConfiguratorViewModel implements Plan
|
|
|
7022
7013
|
externalObjectRemoveSubModule(_groupId: string, _subModuleId: string): void;
|
|
7023
7014
|
}
|
|
7024
7015
|
|
|
7016
|
+
export declare interface PlanViewType {
|
|
7017
|
+
value: Enumify_3<typeof CORE_PLAN_VIEW_TYPE>;
|
|
7018
|
+
}
|
|
7019
|
+
|
|
7025
7020
|
export declare interface PluginConfigMap {
|
|
7026
7021
|
'external-objects': RapiConfigurationEnhanced | ExternalConfiguration;
|
|
7027
7022
|
}
|
|
@@ -8292,6 +8287,7 @@ export declare interface RoomleComponent extends RoomleEventedObject3D {
|
|
|
8292
8287
|
animationValueMap?: AnimationValueMap;
|
|
8293
8288
|
get childComponents(): RoomleComponent[];
|
|
8294
8289
|
get parentComponent(): RoomleComponent | null;
|
|
8290
|
+
get rootComponent(): RoomleComponent;
|
|
8295
8291
|
replaceMeshes(meshes: Mesh[]): void;
|
|
8296
8292
|
addMesh(mesh: Mesh, transform?: Float32Array): void;
|
|
8297
8293
|
removeMesh(mesh: Mesh): void;
|
|
@@ -9321,17 +9317,26 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
|
|
|
9321
9317
|
* return the object runtime id
|
|
9322
9318
|
*/
|
|
9323
9319
|
createPlanFromObject(id: RapiId, position?: Position3, rotation?: number): Promise<number>;
|
|
9320
|
+
/**
|
|
9321
|
+
* Creates a plan holding a single object built from a configuration string
|
|
9322
|
+
* @param configuration configuration string (`{"componentId":"catalog:item",…}`).
|
|
9323
|
+
* @param position XYZ
|
|
9324
|
+
* @param rotation deg
|
|
9325
|
+
*/
|
|
9326
|
+
createPlanFromConfigurationString(configuration: string, position?: Position3, rotation?: number): Promise<number>;
|
|
9327
|
+
private _createPlanFromElement;
|
|
9324
9328
|
loadPlanXml(xml: string, options?: InitDataDefinition & GlobalInitDataDefinition): Promise<void>;
|
|
9325
9329
|
/**
|
|
9326
|
-
* Creates 2D
|
|
9327
|
-
*
|
|
9330
|
+
* Creates the 2D plans of the current plan: the floor plan of the whole
|
|
9331
|
+
* construction first, then one elevation plan per construction edge. Each
|
|
9332
|
+
* plan is returned as raw SVG markup (wireframe rendering with
|
|
9328
9333
|
* dimensionings).
|
|
9329
9334
|
*
|
|
9330
|
-
* @returns the
|
|
9335
|
+
* @returns the plans, each containing its SVG markup and its view type
|
|
9331
9336
|
*/
|
|
9332
9337
|
create2DElevationPlan(): Promise<ElevationPlans>;
|
|
9333
9338
|
/**
|
|
9334
|
-
* Creates the 2D
|
|
9339
|
+
* Creates the 2D plans of the current plan (see
|
|
9335
9340
|
* {@link create2DElevationPlan}) and downloads each plan as an SVG file.
|
|
9336
9341
|
*/
|
|
9337
9342
|
download2DElevationPlan(): Promise<void>;
|
|
@@ -9678,6 +9683,7 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
|
|
|
9678
9683
|
private _loadExternalObjectGroupInConfigurator;
|
|
9679
9684
|
private _loadExternalObjectGroupInPlanner;
|
|
9680
9685
|
private _updateExternalObjectRootModuleSelection;
|
|
9686
|
+
private _mergeAndSelectExternalObjectGroup;
|
|
9681
9687
|
private _loadOrUpdateExternalObjectGroup;
|
|
9682
9688
|
private _interactionBeforeLoadingExternalObjectGroups;
|
|
9683
9689
|
private _interactionAfterLoadingExternalObjectGroups;
|
|
@@ -9699,6 +9705,7 @@ export declare class RoomlePlanner<P extends readonly PluginName[] = readonly []
|
|
|
9699
9705
|
openOrCloseGeometryOfExternalObject(groupIdOrRootModuleId: string, _subModuleId: string | null, open: boolean, animate: boolean): void;
|
|
9700
9706
|
_selectExternalObjectGroup(groupId: string, switchToPlanner: boolean): Promise<void>;
|
|
9701
9707
|
getExternalObjectGroups(): Promise<object[]>;
|
|
9708
|
+
getExternalObjectPlanContext(include?: HiPlanContextSection[]): Promise<HiPlanContext>;
|
|
9702
9709
|
getExternalRoomInformation(mode?: PlanRoomGeometryMode): Promise<ExternalRoomInformation>;
|
|
9703
9710
|
/**
|
|
9704
9711
|
* Highlights a product in the planner.
|
|
@@ -10304,6 +10311,7 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
|
|
|
10304
10311
|
private _clock;
|
|
10305
10312
|
private _delta;
|
|
10306
10313
|
protected _renderLoopFunction: (() => void) | null;
|
|
10314
|
+
private _renderLoopFunctionApplied;
|
|
10307
10315
|
protected _renderListener: (() => void) | null;
|
|
10308
10316
|
protected _stopRendering: boolean;
|
|
10309
10317
|
protected _roomleRenderer: GenericRoomleRenderer | null;
|
|
@@ -10320,6 +10328,12 @@ export declare abstract class SceneManager implements Context, LifeCycleCallback
|
|
|
10320
10328
|
protected abstract createCameraControl(mode: Enumify_2<typeof CAMERA_TYPE>, offset: CanvasOffset): void;
|
|
10321
10329
|
protected abstract _getInputManager(): InputManager;
|
|
10322
10330
|
get cameraBehaviour(): CameraBehaviour;
|
|
10331
|
+
protected _scheduleRenderLoopFunction(renderLoopFunction: () => void): void;
|
|
10332
|
+
/**
|
|
10333
|
+
* Resolves the next time the render loop applies a scheduled function, so arm
|
|
10334
|
+
* it **before** triggering the work whose mutation you are waiting for.
|
|
10335
|
+
*/
|
|
10336
|
+
whenRenderLoopFunctionApplied(): Promise<void>;
|
|
10323
10337
|
abstract sceneChanged(): void;
|
|
10324
10338
|
abstract getBounds(): Box3 | null;
|
|
10325
10339
|
abstract getGeometryBounds(): Box3 | null;
|
|
@@ -11235,6 +11249,7 @@ export declare class WebGpuConfig implements WebGpuConfigDefinition {
|
|
|
11235
11249
|
topLight: WebGpuTopLightConfig;
|
|
11236
11250
|
groundReflection: WebGpuGroundReflectionConfig;
|
|
11237
11251
|
fog: WebGpuFogConfig;
|
|
11252
|
+
ssgi: WebGpuSSGIConfig;
|
|
11238
11253
|
toneMapping: WebGpuToneMapping;
|
|
11239
11254
|
toneMappingExposure: number;
|
|
11240
11255
|
}
|
|
@@ -11273,6 +11288,10 @@ export declare interface WebGpuConfigDefinition {
|
|
|
11273
11288
|
* @description Visual configuration for the WebGPU fog.
|
|
11274
11289
|
*/
|
|
11275
11290
|
fog?: WebGpuFogConfigDefinition;
|
|
11291
|
+
/**
|
|
11292
|
+
* @description Visual configuration for the WebGPU screen space global illumination (SSGI) effect.
|
|
11293
|
+
*/
|
|
11294
|
+
ssgi?: WebGpuSSGIConfigDefinition;
|
|
11276
11295
|
/**
|
|
11277
11296
|
* @description Tone mapping operator applied by the WebGPU renderer.
|
|
11278
11297
|
* @default 'none'
|
|
@@ -11353,6 +11372,28 @@ export declare interface WebGpuGroundReflectionConfigDefinition {
|
|
|
11353
11372
|
endFadeout?: number;
|
|
11354
11373
|
}
|
|
11355
11374
|
|
|
11375
|
+
export declare class WebGpuSSGIConfig implements WebGpuSSGIConfigDefinition {
|
|
11376
|
+
giDenoiseRadius: number;
|
|
11377
|
+
aoDenoiseRadius: number;
|
|
11378
|
+
}
|
|
11379
|
+
|
|
11380
|
+
export declare interface WebGpuSSGIConfigDefinition {
|
|
11381
|
+
/**
|
|
11382
|
+
* @description Radius of the denoising filter applied to the indirect lighting.
|
|
11383
|
+
* Higher values produce a stronger denoising effect, which can help reduce noise
|
|
11384
|
+
* in the indirect lighting but may also blur fine details.
|
|
11385
|
+
* @default 20
|
|
11386
|
+
*/
|
|
11387
|
+
giDenoiseRadius?: number;
|
|
11388
|
+
/**
|
|
11389
|
+
* @description Radius of the denoising filter applied to the ambient occlusion (AO) pass.
|
|
11390
|
+
* Higher values produce a stronger denoising effect, which can help reduce noise
|
|
11391
|
+
* in the AO but may also blur fine details.
|
|
11392
|
+
* @default 10
|
|
11393
|
+
*/
|
|
11394
|
+
aoDenoiseRadius?: number;
|
|
11395
|
+
}
|
|
11396
|
+
|
|
11356
11397
|
export declare type WebGpuToneMapping = Enumify_2<typeof WEBGPU_TONE_MAPPINGS>;
|
|
11357
11398
|
|
|
11358
11399
|
export declare class WebGpuTopLightConfig implements WebGpuTopLightConfigDefinition {
|