iflow-engine-base 3.4.3 → 3.4.5

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 (40) hide show
  1. package/dist/assets/hdr/10.hdr +0 -0
  2. package/dist/assets/hdr/11.hdr +0 -0
  3. package/dist/assets/hdr/12.hdr +0 -0
  4. package/dist/assets/hdr/13.hdr +0 -0
  5. package/dist/assets/hdr/14.hdr +0 -0
  6. package/dist/assets/hdr/15.hdr +0 -0
  7. package/dist/assets/hdr/16.hdr +0 -0
  8. package/dist/assets/hdr/17.hdr +0 -0
  9. package/dist/assets/hdr/8.hdr +0 -0
  10. package/dist/bim-engine-sdk.es.js +3468 -3207
  11. package/dist/bim-engine-sdk.es.js.map +1 -1
  12. package/dist/bim-engine-sdk.umd.js +168 -168
  13. package/dist/bim-engine-sdk.umd.js.map +1 -1
  14. package/dist/index.d.ts +120 -152
  15. package/dist/texture/ground/concrete01.jpg +0 -0
  16. package/dist/texture/ground/concrete02.jpg +0 -0
  17. package/dist/texture/ground/grass01.jpg +0 -0
  18. package/dist/texture/ground/grass02.jpg +0 -0
  19. package/dist/texture/ground/grass03.jpg +0 -0
  20. package/dist/texture/ground/grass04.jpg +0 -0
  21. package/dist/texture/ground/road01.jpg +0 -0
  22. package/dist/texture/ground/road02.jpg +0 -0
  23. package/dist/texture/ground/tiles01.jpg +0 -0
  24. package/dist/texture/ground/tiles02.jpg +0 -0
  25. package/dist/texture/ground/wood01.jpg +0 -0
  26. package/dist/texture/ground/z01.jpg +0 -0
  27. package/dist/texture/ground/z02.jpg +0 -0
  28. package/package.json +1 -1
  29. package/dist/assets/ground//346/267/267/345/207/235/345/234/23749.jpg +0 -0
  30. package/dist/assets/ground//350/212/261/350/215/21103.jpg +0 -0
  31. package/dist/assets/hdr/001.hdr +0 -0
  32. /package/dist/assets/hdr/{/347/272/257/345/207/200-/345/244/232/344/272/221.hdr" → 1.hdr} +0 -0
  33. /package/dist/assets/hdr/{/347/272/257/345/207/200-/350/220/275/346/227/245.hdr" → 2.hdr} +0 -0
  34. /package/dist/assets/hdr/{/347/272/257/345/207/200-/345/260/221/344/272/221.hdr" → 3.hdr} +0 -0
  35. /package/dist/assets/hdr/{/347/272/257/345/207/200-/346/227/240/344/272/221.hdr" → 4.hdr} +0 -0
  36. /package/dist/assets/hdr/{/347/272/257/345/207/200-/345/244/234/346/231/232.hdr" → 5.hdr} +0 -0
  37. /package/dist/assets/hdr/{/347/272/257/345/207/200-/351/230/264/345/244/251.hdr" → 6.hdr} +0 -0
  38. /package/dist/assets/hdr/{/347/272/257/345/207/200-/344/270/255/344/272/221.hdr" → 7.hdr} +0 -0
  39. /package/dist/assets/hdr/{/345/237/216/345/270/202/346/210/267/345/244/226/345/244/251/347/251/272-/346/227/240/344/272/221.hdr" → 9.hdr} +0 -0
  40. /package/dist/{textture → texture}/waternormals.jpg +0 -0
package/dist/index.d.ts CHANGED
@@ -552,6 +552,8 @@ declare class ComposerModule {
552
552
  outputPass: any;
553
553
  fxaaPass: any;
554
554
  constructor(engine: any);
555
+ applyClippingToAmbientOcclusionPass(pass: any): void;
556
+ syncAmbientOcclusionClipping(): void;
555
557
  resize(width?: number, height?: number): void;
556
558
  init(): void;
557
559
  }
@@ -1472,6 +1474,34 @@ declare class EngineModelModule {
1472
1474
  setGTAOIntensity(value: number): void;
1473
1475
  }
1474
1476
 
1477
+ declare interface EngineSettings {
1478
+ render: {
1479
+ mode: RenderMode;
1480
+ contrast: number;
1481
+ saturation: number;
1482
+ shadowIntensity: number;
1483
+ lightIntensity: number;
1484
+ gtaoIntensity: number;
1485
+ };
1486
+ display: {
1487
+ showEdge: boolean;
1488
+ edgeOpacity: number;
1489
+ showGrid: boolean;
1490
+ showLevel: boolean;
1491
+ showGround: boolean;
1492
+ groundId: string;
1493
+ groundHeight: number;
1494
+ };
1495
+ environment: {
1496
+ type: EnvironmentType;
1497
+ hdrId: string;
1498
+ hdrIntensity: number;
1499
+ skyPreset: SkyPresetName;
1500
+ skyParams: SkyParams;
1501
+ skyIntensity: number;
1502
+ };
1503
+ }
1504
+
1475
1505
  declare class EngineStatus {
1476
1506
  private engine;
1477
1507
  isFree: boolean;
@@ -1502,6 +1532,8 @@ declare class EngineStatus2d {
1502
1532
  */
1503
1533
  declare type EntityType = 'LINE' | 'POLYLINE' | 'CIRCLE' | 'HATCH' | 'INSERT' | 'MTEXT' | 'DIMENSIONLINEAR';
1504
1534
 
1535
+ declare type EnvironmentType = 'none' | 'hdr' | 'sky';
1536
+
1505
1537
  /**
1506
1538
  * 事件监听器函数类型
1507
1539
  */
@@ -1858,13 +1890,19 @@ declare class Ground {
1858
1890
  /** 获取地面列表(id + 名称) */
1859
1891
  getGroundList(): Array<{
1860
1892
  id: string;
1861
- name: string;
1893
+ names: string[];
1862
1894
  }>;
1863
1895
  /** 获取当前地面 id */
1864
1896
  getCurrentId(): GroundId;
1865
1897
  show(): void;
1866
1898
  hide(): void;
1867
1899
  dispose(): void;
1900
+ /**
1901
+ * 兼容项目内本地 three 渲染器。
1902
+ * 本地渲染器会向 lights uniforms 写入 directional/spot/point 的 shadowMap,
1903
+ * 但 npm Water 使用的 three 版本没有把这些 sampler 挂到 UniformsLib['lights'] 上。
1904
+ */
1905
+ private ensureWaterShadowUniforms;
1868
1906
  private _dispose;
1869
1907
  }
1870
1908
 
@@ -1900,66 +1938,41 @@ declare class Hdr {
1900
1938
  private isVisible;
1901
1939
  private currentIntensity;
1902
1940
  private currentTexture;
1941
+ private currentEnvironmentTexture;
1903
1942
  private skybox;
1904
1943
  private readonly textureCache;
1944
+ private previousBackground;
1945
+ private previousEnvironment;
1946
+ private previousBackgroundIntensity;
1947
+ private previousEnvironmentIntensity;
1948
+ private previousAmbientLightIntensity;
1949
+ private previousToneMapping;
1950
+ private previousToneMappingExposure;
1905
1951
  private readonly hdrList;
1906
1952
  constructor(engine: any);
1907
- /**
1908
- * 获取 HDR 列表
1909
- */
1910
1953
  getHdrList(): HdrItem[];
1911
- /**
1912
- * 切换 HDR 背景
1913
- * @param id - HDR id,"0" 表示清除 HDR
1914
- */
1915
1954
  setHdr(id: string): Promise<void>;
1916
- /**
1917
- * 设置 HDR 天空球可见性(不影响环境光照)
1918
- * @param visible - true 显示,false 隐藏
1919
- */
1920
1955
  setVisible(visible: boolean): void;
1921
- /**
1922
- * 获取当前 HDR id
1923
- */
1924
1956
  getCurrentHdrId(): string;
1925
- /**
1926
- * 获取 HDR 背景是否可见
1927
- */
1928
1957
  getVisible(): boolean;
1929
- /**
1930
- * 设置 HDR 整体亮度
1931
- * @param intensity - 亮度倍率,1 为原始亮度,推荐范围 0.1 ~ 3
1932
- */
1933
1958
  setIntensity(intensity: number): void;
1934
- /**
1935
- * 获取当前 HDR 亮度
1936
- */
1937
1959
  getIntensity(): number;
1938
- /**
1939
- * 动态添加自定义 HDR 条目(用于外部扩展)
1940
- */
1941
1960
  addHdrItem(item: HdrItem): void;
1942
- /**
1943
- * 释放所有缓存纹理
1944
- */
1945
1961
  dispose(): void;
1946
1962
  private _loadHdr;
1947
1963
  private _applyTexture;
1948
- /**
1949
- * 创建超大天空球,兼容正交/透视两种相机
1950
- * - radius 5000:远超任何场景对象,确保始终在背景层
1951
- * - BackSide:从内部观察球面
1952
- * - depthWrite false + renderOrder -1:不写入深度缓冲,始终渲染在最底层
1953
- * - frustumCulled false:防止大球被裁剪掉
1954
- */
1964
+ private _captureSceneState;
1955
1965
  private _createSkybox;
1966
+ private _updateSkyboxIntensity;
1956
1967
  private _removeSkybox;
1957
1968
  private _clearHdr;
1969
+ private _getAmbientLightIntensity;
1970
+ private _setAmbientLightIntensity;
1958
1971
  }
1959
1972
 
1960
1973
  declare interface HdrItem {
1961
1974
  id: string;
1962
- name: string;
1975
+ names: string[];
1963
1976
  url?: string;
1964
1977
  }
1965
1978
 
@@ -2637,6 +2650,7 @@ declare class ModelEdge {
2637
2650
  private show;
2638
2651
  getModelEdge(url: string, id: Number): any;
2639
2652
  hideModelEdge(url: string, id: Number): void;
2653
+ setOpacity(opacity: number): void;
2640
2654
  showModelEdge(url: string, id: Number): void;
2641
2655
  }
2642
2656
 
@@ -3264,6 +3278,8 @@ declare class RangeScale {
3264
3278
  private fitCameraToBoundingBox;
3265
3279
  }
3266
3280
 
3281
+ declare type RenderMode = 'simple' | 'balance' | 'advanced';
3282
+
3267
3283
  declare class RenderModule {
3268
3284
  private engine;
3269
3285
  renderer: THREE_2.WebGLRenderer | null;
@@ -3605,74 +3621,51 @@ declare interface SearchResult {
3605
3621
 
3606
3622
  declare class Setting {
3607
3623
  private engine;
3608
- private ground;
3624
+ private settings;
3625
+ private environmentApplyVersion;
3609
3626
  constructor(engine: any);
3610
3627
  init(): void;
3611
- /**
3612
- * 隐藏或显示性能监视器
3613
- * @param visible - true显示,false隐藏
3614
- */
3615
- setStatsVisible(visible: boolean): void;
3616
- /**
3617
- * 设置环境光照强度
3618
- * @param intensity - 光照强度,默认范围 0-5
3619
- */
3628
+ getSettings(): EngineSettings;
3629
+ getPresetLists(): {
3630
+ ground: SettingPresetItem[];
3631
+ hdr: SettingPresetItem[];
3632
+ sky: SettingPresetItem[];
3633
+ };
3634
+ setSettings(data: Partial<EngineSettings>): Promise<void>;
3635
+ resetToDefault(): Promise<void>;
3636
+ setRenderMode(mode: RenderMode): void;
3637
+ setContrast(value: number): void;
3638
+ setSaturation(value: number): void;
3639
+ setShadowIntensity(value: number): void;
3640
+ setLightIntensity(value: number): void;
3641
+ setGTAOIntensity(value: number): void;
3642
+ setShowEdge(show: boolean): void;
3643
+ setEdgeOpacity(value: number): void;
3644
+ setShowGrid(show: boolean): void;
3645
+ setShowLevel(show: boolean): void;
3646
+ setShowGround(show: boolean): void;
3647
+ setGroundId(id: string): void;
3648
+ setGroundHeight(height: number): void;
3649
+ setEnvironmentType(type: EnvironmentType): Promise<void>;
3650
+ setHdrId(id: string): Promise<void>;
3651
+ setHdrIntensity(value: number): void;
3652
+ setSkyPreset(preset: SkyPresetName): void;
3653
+ setSkyParams(params: SkyParams): void;
3654
+ setSkyIntensity(value: number): void;
3620
3655
  setAmbientLightIntensity(intensity: number): void;
3621
- /**
3622
- * 设置环境光照颜色
3623
- * @param color - 颜色,可以是十六进制数字 (0xffffff) 或字符串 ('#ffffff')
3624
- */
3625
- setAmbientLightColor(color: number | string): void;
3626
- /**
3627
- * 设置定向光源强度
3628
- * @param intensity - 光照强度,默认范围 0-5
3629
- */
3630
- setDirectionalLightIntensity(intensity: number): void;
3631
- /**
3632
- * 设置定向光源颜色
3633
- * @param color - 颜色,可以是十六进制数字 (0xffffff) 或字符串 ('#ffffff')
3634
- */
3635
- setDirectionalLightColor(color: number | string): void;
3636
- /**
3637
- * 设置阴影精细度(阴影贴图分辨率)
3638
- * @param quality - 质量等级:'low' (1024), 'medium' (2048), 'high' (4096), 'ultra' (8192)
3639
- */
3640
- setShadowQuality(quality: 'low' | 'medium' | 'high' | 'ultra'): void;
3641
- /**
3642
- * 设置是否开启定向光阴影
3643
- * @param enabled - true开启,false关闭
3644
- */
3645
- setDirectionalLightShadow(enabled: boolean): void;
3646
- /**
3647
- * 设置是否开启GTAO阴影(环境光遮蔽)
3648
- * @param enabled - true开启,false关闭
3649
- */
3650
- setGTAOEnabled(enabled: boolean): void;
3651
- /**
3652
- * 设置场景饱和度
3653
- * @param saturation - 饱和度值,1.0为正常,>1增强,<1降低,推荐范围 0.5-2.0
3654
- */
3655
- setSceneSaturation(saturation: number): void;
3656
- /**
3657
- * 设置场景对比度
3658
- * @param contrast - 对比度值,1.0为正常,>1增强,<1降低,推荐范围 0.5-2.0
3659
- */
3660
- setSceneContrast(contrast: number): void;
3661
- /**
3662
- * 设置是否开启地面
3663
- * @param enabled - true开启,false关闭
3664
- * @param options - 地面配置选项
3665
- */
3666
- setGroundEnabled(enabled: boolean, options?: {
3667
- size?: number;
3668
- color?: number | string;
3669
- opacity?: number;
3670
- }): void;
3671
- /**
3672
- * 设置HDR背景
3673
- * @param hdrTexture - HDR环境贴图(THREE.Texture),传入null则移除背景
3674
- */
3675
- setHDRBackground(hdrTexture: THREE.Texture | null): void;
3656
+ private _applyRenderSettings;
3657
+ private _applyDisplaySettings;
3658
+ private _applyEnvironmentSettings;
3659
+ private _updateDirectionalLight;
3660
+ private _mergeEnvironmentSettings;
3661
+ private _toPresetItem;
3662
+ private _clone;
3663
+ }
3664
+
3665
+ declare interface SettingPresetItem {
3666
+ id: string;
3667
+ name: string;
3668
+ names: string[];
3676
3669
  }
3677
3670
 
3678
3671
  declare class SkyManager {
@@ -3680,89 +3673,64 @@ declare class SkyManager {
3680
3673
  private sky;
3681
3674
  private sun;
3682
3675
  private params;
3676
+ private currentIntensity;
3677
+ private currentEnvironmentTarget;
3683
3678
  private readonly skyScale;
3684
3679
  private readonly skyName;
3685
- /** 激活天空前相机的 far,关闭时恢复 */
3686
3680
  private savedCameraFar;
3681
+ private previousBackground;
3682
+ private previousEnvironment;
3683
+ private previousBackgroundIntensity;
3684
+ private previousEnvironmentIntensity;
3685
+ private previousToneMapping;
3686
+ private previousToneMappingExposure;
3687
+ private hasCapturedSceneState;
3687
3688
  constructor(engine: any);
3688
- /**
3689
- * 激活天空球:创建 Sky 并加入场景,应用当前参数
3690
- */
3691
3689
  activate(): void;
3692
- /**
3693
- * 关闭天空球:从场景移除并释放,或仅隐藏
3694
- * @param remove - true 从场景移除并 dispose,false 仅隐藏
3695
- */
3696
3690
  close(remove?: boolean): void;
3697
- /**
3698
- * 是否已激活(天空对象存在且已加入场景)
3699
- */
3700
3691
  isActive(): boolean;
3701
- /**
3702
- * 获取当前参数(副本)
3703
- */
3704
3692
  getParams(): Readonly<Required<SkyParams>>;
3705
- /**
3706
- * 使用对象设置参数(支持部分字段),并立即应用到天空与渲染器
3707
- */
3708
3693
  setParams(params: SkyParams): void;
3709
- /**
3710
- * 应用预设
3711
- */
3712
3694
  setPreset(name: SkyPresetName): void;
3713
- /**
3714
- * 获取所有预设名称
3715
- */
3716
3695
  getPresetNames(): SkyPresetName[];
3717
- /**
3718
- * 更新云层动画时间(每帧调用一次,例如在渲染循环中)
3719
- * 同时根据当前相机类型(透视/正交)同步曝光,保证切换相机后天空亮度正确。
3720
- * @param time - 秒,不传则使用 performance.now() * 0.001
3721
- */
3696
+ getPresetList(): SkyPresetInfo[];
3697
+ setIntensity(intensity: number): void;
3698
+ getIntensity(): number;
3722
3699
  update(time?: number): void;
3723
- /** 当前相机是否为正交相机 */
3724
3700
  private _isOrthographicCamera;
3725
- /** 获取当前相机有效曝光(正交相机使用 orthoExposureScale 补偿) */
3726
3701
  private _getEffectiveExposure;
3727
- /** 扩大相机 far 以容纳天空盒,避免被裁剪成黑屏(支持透视与正交) */
3728
3702
  private _expandCameraFarForSky;
3729
- /** 关闭天空时恢复相机 far(支持透视与正交) */
3730
3703
  private _restoreCameraFar;
3731
3704
  private _applyParamsToSky;
3732
- /** Set shader uniform if it exists on current Sky material to avoid runtime errors with stock shader. */
3705
+ private _captureSceneState;
3706
+ private _restoreSceneState;
3707
+ private _refreshEnvironmentMap;
3708
+ private _disposeEnvironmentTarget;
3733
3709
  private _setUniformValue;
3734
3710
  }
3735
3711
 
3736
- /** 天空球参数(与 Three.js Sky 材质 uniform 及曝光对应) */
3737
3712
  declare interface SkyParams {
3738
- /** 大气浑浊度,0~20,默认 10 */
3739
3713
  turbidity?: number;
3740
- /** 瑞利散射,0~4,默认 3 */
3741
3714
  rayleigh?: number;
3742
- /** Mie 系数,0~0.1,默认 0.005 */
3743
3715
  mieCoefficient?: number;
3744
- /** Mie 方向性,0~1,默认 0.7 */
3745
3716
  mieDirectionalG?: number;
3746
- /** 太阳仰角(度),0~90,默认 2 */
3747
3717
  elevation?: number;
3748
- /** 太阳方位角(度),-180~180,默认 180 */
3749
3718
  azimuth?: number;
3750
- /** 渲染器曝光,0~1,默认 0.5 */
3751
3719
  exposure?: number;
3752
- /** 正交相机下的曝光倍数,用于补偿正交投影下天空偏暗,默认 1.5 */
3753
3720
  orthoExposureScale?: number;
3754
- /** 云层覆盖,0~1,默认 0.4 */
3755
3721
  cloudCoverage?: number;
3756
- /** 云层密度,0~1,默认 0.4 */
3757
3722
  cloudDensity?: number;
3758
- /** 云层高度感,0~1,默认 0.5 */
3759
3723
  cloudElevation?: number;
3760
- /** 是否显示日盘,默认 true */
3761
3724
  showSunDisc?: boolean;
3762
3725
  }
3763
3726
 
3764
- /** 预设名称 */
3765
- declare type SkyPresetName = 'default' | 'sunset' | 'overcast' | 'clear' | 'night';
3727
+ declare interface SkyPresetInfo {
3728
+ id: SkyPresetName;
3729
+ names: string[];
3730
+ params: SkyParams;
3731
+ }
3732
+
3733
+ declare type SkyPresetName = 'sunrise_clear' | 'morning_mist' | 'noon_clear' | 'afternoon_cloudy' | 'sunset_glow' | 'blue_hour' | 'overcast_day' | 'storm_rain' | 'snow_day' | 'moonlit_night';
3766
3734
 
3767
3735
  /**
3768
3736
  * 步骤接口
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iflow-engine-base",
3
- "version": "3.4.3",
3
+ "version": "3.4.5",
4
4
  "description": "BIM Engine SDK for Vue2, Vue3, React and HTML",
5
5
  "main": "./dist/bim-engine-sdk.umd.js",
6
6
  "module": "./dist/bim-engine-sdk.es.js",
Binary file
File without changes