iflow-engine 1.3.2 → 1.3.3

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 (98) hide show
  1. package/README.md +36 -16
  2. package/dist/{engine/src/components → components}/engine/index.d.ts +76 -2
  3. package/dist/{engine/src/core → core}/base-manager.d.ts +7 -0
  4. package/dist/iflow-engine.es.js +7204 -7262
  5. package/dist/iflow-engine.es.js.map +1 -1
  6. package/dist/iflow-engine.umd.js +569 -569
  7. package/dist/iflow-engine.umd.js.map +1 -1
  8. package/dist/{engine/src/locales → locales}/types.d.ts +8 -19
  9. package/dist/managers/engine-manager.d.ts +46 -0
  10. package/dist/{engine/src/managers → managers}/setting-dialog-manager.d.ts +32 -12
  11. package/package.json +2 -2
  12. package/dist/engine/src/managers/engine-manager.d.ts +0 -268
  13. /package/dist/{engine/src/bim-engine.d.ts → bim-engine.d.ts} +0 -0
  14. /package/dist/{engine/src/components → components}/ai-chat/index.d.ts +0 -0
  15. /package/dist/{engine/src/components → components}/ai-chat/types.d.ts +0 -0
  16. /package/dist/{engine/src/components → components}/button-group/index.d.ts +0 -0
  17. /package/dist/{engine/src/components → components}/button-group/index.type.d.ts +0 -0
  18. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/ai-chat/index.d.ts +0 -0
  19. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/fullscreen/index.d.ts +0 -0
  20. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/home/index.d.ts +0 -0
  21. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/info/icon.d.ts +0 -0
  22. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/info/index.d.ts +0 -0
  23. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/map/index.d.ts +0 -0
  24. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/measure/index.d.ts +0 -0
  25. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/property/index.d.ts +0 -0
  26. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/section/section-axis/index.d.ts +0 -0
  27. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/section/section-box/index.d.ts +0 -0
  28. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/section/section-menu/index.d.ts +0 -0
  29. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/section/section-plane/index.d.ts +0 -0
  30. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/setting/index.d.ts +0 -0
  31. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/walk/walk-bird/index.d.ts +0 -0
  32. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/walk/walk-menu/index.d.ts +0 -0
  33. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/walk/walk-person/index.d.ts +0 -0
  34. /package/dist/{engine/src/components → components}/button-group/toolbar/buttons/zoom-box/index.d.ts +0 -0
  35. /package/dist/{engine/src/components → components}/button-group/toolbar/index.d.ts +0 -0
  36. /package/dist/{engine/src/components → components}/collapse/index.d.ts +0 -0
  37. /package/dist/{engine/src/components → components}/collapse/types.d.ts +0 -0
  38. /package/dist/{engine/src/components → components}/description/index.d.ts +0 -0
  39. /package/dist/{engine/src/components → components}/description/types.d.ts +0 -0
  40. /package/dist/{engine/src/components → components}/dialog/index.d.ts +0 -0
  41. /package/dist/{engine/src/components → components}/dialog/index.type.d.ts +0 -0
  42. /package/dist/{engine/src/components → components}/engine/types.d.ts +0 -0
  43. /package/dist/{engine/src/components → components}/measure-panel/index.d.ts +0 -0
  44. /package/dist/{engine/src/components → components}/measure-panel/types.d.ts +0 -0
  45. /package/dist/{engine/src/components → components}/menu/buttons/four.d.ts +0 -0
  46. /package/dist/{engine/src/components → components}/menu/buttons/home.d.ts +0 -0
  47. /package/dist/{engine/src/components → components}/menu/buttons/info.d.ts +0 -0
  48. /package/dist/{engine/src/components → components}/menu/buttons/second.d.ts +0 -0
  49. /package/dist/{engine/src/components → components}/menu/index.d.ts +0 -0
  50. /package/dist/{engine/src/components → components}/menu/item.d.ts +0 -0
  51. /package/dist/{engine/src/components → components}/menu/types.d.ts +0 -0
  52. /package/dist/{engine/src/components → components}/right-key/index.d.ts +0 -0
  53. /package/dist/{engine/src/components → components}/right-key/types.d.ts +0 -0
  54. /package/dist/{engine/src/components → components}/section-axis-panel/index.d.ts +0 -0
  55. /package/dist/{engine/src/components → components}/section-axis-panel/types.d.ts +0 -0
  56. /package/dist/{engine/src/components → components}/section-box-panel/index.d.ts +0 -0
  57. /package/dist/{engine/src/components → components}/section-box-panel/types.d.ts +0 -0
  58. /package/dist/{engine/src/components → components}/section-plane-panel/index.d.ts +0 -0
  59. /package/dist/{engine/src/components → components}/section-plane-panel/types.d.ts +0 -0
  60. /package/dist/{engine/src/components → components}/tab/index.d.ts +0 -0
  61. /package/dist/{engine/src/components → components}/tab/index.type.d.ts +0 -0
  62. /package/dist/{engine/src/components → components}/tree/index.d.ts +0 -0
  63. /package/dist/{engine/src/components → components}/tree/tree-node.d.ts +0 -0
  64. /package/dist/{engine/src/components → components}/tree/types.d.ts +0 -0
  65. /package/dist/{engine/src/components → components}/walk-control-panel/index.d.ts +0 -0
  66. /package/dist/{engine/src/components → components}/walk-control-panel/types.d.ts +0 -0
  67. /package/dist/{engine/src/components → components}/walk-path-panel/index.d.ts +0 -0
  68. /package/dist/{engine/src/components → components}/walk-path-panel/types.d.ts +0 -0
  69. /package/dist/{engine/src/components → components}/walk-plan-view-panel/index.d.ts +0 -0
  70. /package/dist/{engine/src/core → core}/base-dialog-manager.d.ts +0 -0
  71. /package/dist/{engine/src/core → core}/event-emitter.d.ts +0 -0
  72. /package/dist/{engine/src/core → core}/manager-registry.d.ts +0 -0
  73. /package/dist/{engine/src/index.d.ts → index.d.ts} +0 -0
  74. /package/dist/{engine/src/locales → locales}/en-US.d.ts +0 -0
  75. /package/dist/{engine/src/locales → locales}/zh-CN.d.ts +0 -0
  76. /package/dist/{engine/src/managers → managers}/ai-chat-manager.d.ts +0 -0
  77. /package/dist/{engine/src/managers → managers}/button-group-manager.d.ts +0 -0
  78. /package/dist/{engine/src/managers → managers}/component-detail-manager.d.ts +0 -0
  79. /package/dist/{engine/src/managers → managers}/construct-tree-manager-btn.d.ts +0 -0
  80. /package/dist/{engine/src/managers → managers}/dialog-manager.d.ts +0 -0
  81. /package/dist/{engine/src/managers → managers}/engine-info-dialog-manager.d.ts +0 -0
  82. /package/dist/{engine/src/managers → managers}/measure-dialog-manager.d.ts +0 -0
  83. /package/dist/{engine/src/managers → managers}/right-key-manager.d.ts +0 -0
  84. /package/dist/{engine/src/managers → managers}/section-axis-dialog-manager.d.ts +0 -0
  85. /package/dist/{engine/src/managers → managers}/section-box-dialog-manager.d.ts +0 -0
  86. /package/dist/{engine/src/managers → managers}/section-plane-dialog-manager.d.ts +0 -0
  87. /package/dist/{engine/src/managers → managers}/toolbar-manager.d.ts +0 -0
  88. /package/dist/{engine/src/managers → managers}/walk-control-manager.d.ts +0 -0
  89. /package/dist/{engine/src/managers → managers}/walk-path-dialog-manager.d.ts +0 -0
  90. /package/dist/{engine/src/managers → managers}/walk-plan-view-dialog-manager.d.ts +0 -0
  91. /package/dist/{engine/src/services → services}/locale.d.ts +0 -0
  92. /package/dist/{engine/src/services → services}/theme.d.ts +0 -0
  93. /package/dist/{engine/src/themes → themes}/presets.d.ts +0 -0
  94. /package/dist/{engine/src/themes → themes}/types.d.ts +0 -0
  95. /package/dist/{engine/src/types → types}/component.d.ts +0 -0
  96. /package/dist/{engine/src/types → types}/events.d.ts +0 -0
  97. /package/dist/{engine/src/types → types}/measure.d.ts +0 -0
  98. /package/dist/{engine/src/utils → utils}/icon-manager.d.ts +0 -0
package/README.md CHANGED
@@ -70,16 +70,18 @@ onMounted(() => {
70
70
  bimEngine.initWalkControl(); // 漫游控制
71
71
  bimEngine.initMap(); // 地图
72
72
 
73
- // 加载模型
74
- bimEngine.engine?.loadModel({
75
- url: '/path/to/your/model.ifc',
76
- onProgress: (progress) => {
77
- console.log(`加载进度: ${progress}%`);
78
- },
79
- onComplete: () => {
80
- console.log('模型加载完成');
73
+ // 加载模型(EngineManager 对外公共 API)
74
+ bimEngine.engine?.loadModel(
75
+ ['/path/to/your/model.ifc'],
76
+ {
77
+ onProgress: (progress) => {
78
+ console.log(`加载进度: ${progress}%`);
79
+ },
80
+ onComplete: () => {
81
+ console.log('模型加载完成');
82
+ }
81
83
  }
82
- });
84
+ );
83
85
  }
84
86
  });
85
87
 
@@ -179,6 +181,13 @@ BIM Engine SDK 采用 **管理器模式 (Manager Pattern)** 作为核心架构,
179
181
  - ✅ 简化集成复杂度
180
182
  - ✅ 支持按需加载
181
183
 
184
+ > 架构更新(2026-03)
185
+ >
186
+ > - `EngineManager` 已从全量透传层收敛为“外部公共 API + 生命周期编排”
187
+ > - 内部 Manager 统一通过 `BaseManager.engineComponent` 直接访问 `Engine` 组件
188
+ > - 非 Manager 场景通过 `registry.engine3d?.getEngineComponent()?.xxx()` 访问引擎能力
189
+ > - `Engine.getEngine()` 已移除,事件订阅使用 `onRawEvent()/offRawEvent()`
190
+
182
191
  ### 架构分层
183
192
 
184
193
  ```
@@ -193,7 +202,7 @@ BIM Engine SDK 采用 **管理器模式 (Manager Pattern)** 作为核心架构,
193
202
  │ Manager 层 (管理器) │
194
203
  │ - ToolbarManager (工具栏) │
195
204
  │ - DialogManager (对话框) │
196
- │ - EngineManager (3D引擎)
205
+ │ - EngineManager (外部公共API/生命周期)
197
206
  │ - MeasureDialogManager (测量) │
198
207
  │ - SectionPlaneDialogManager (剖切) │
199
208
  │ - WalkControlManager (漫游) │
@@ -333,12 +342,14 @@ class BimEngine {
333
342
  每个管理器负责特定功能的生命周期管理:
334
343
 
335
344
  ```typescript
336
- // 3D 引擎管理器
337
- bimEngine.engine?.loadModel({
338
- url: '/path/to/model.ifc',
339
- onProgress: (progress) => console.log(progress),
340
- onComplete: () => console.log('完成')
341
- });
345
+ // 3D 引擎管理器(对外公共 API)
346
+ bimEngine.engine?.loadModel(
347
+ ['/path/to/model.ifc'],
348
+ {
349
+ onProgress: (progress) => console.log(progress),
350
+ onComplete: () => console.log('完成')
351
+ }
352
+ );
342
353
 
343
354
  // 测量工具管理器
344
355
  bimEngine.measure?.show();
@@ -509,6 +520,15 @@ npm run dev
509
520
 
510
521
  ## 📝 更新日志
511
522
 
523
+ ### v1.3.2 (2026-03-05)
524
+
525
+ **架构优化**
526
+ - ✨ EngineManager 瘦身:移除大规模 1:1 透传方法
527
+ - ✨ 新增 `EngineManager.getEngineComponent()` 供内部访问
528
+ - ✨ BaseManager 新增 `engineComponent` 便捷访问器
529
+ - ✨ Manager 内部调用统一迁移为 `this.engineComponent?.xxx()`
530
+ - ✨ 原始事件访问改为 `onRawEvent()/offRawEvent()`,移除 `getEngine()`
531
+
512
532
  ### v1.0.0 (2024-12-26)
513
533
 
514
534
  **核心功能**
@@ -77,9 +77,18 @@ export declare class Engine implements IBimComponent {
77
77
  */
78
78
  CameraGoHome(): void;
79
79
  /**
80
- * 获取原始 3D 引擎实例
80
+ * 订阅原始引擎事件
81
+ * 用于需要访问底层引擎事件的场景(如测量回调、剖切移动等)
82
+ * @param event 事件名称
83
+ * @param handler 事件处理函数
81
84
  */
82
- getEngine(): any;
85
+ onRawEvent(event: string, handler: (...args: any[]) => void): void;
86
+ /**
87
+ * 取消订阅原始引擎事件
88
+ * @param event 事件名称
89
+ * @param handler 事件处理函数
90
+ */
91
+ offRawEvent(event: string, handler: (...args: any[]) => void): void;
83
92
  /**
84
93
  * 暂停渲染
85
94
  */
@@ -262,6 +271,71 @@ export declare class Engine implements IBimComponent {
262
271
  * @param mode 'simple'(性能模式) | 'balance'(平衡模式) | 'advanced'(效果模式)
263
272
  */
264
273
  setRenderMode(mode: 'simple' | 'balance' | 'advanced'): void;
274
+ /** 启用模型边线显示 */
275
+ activeModelEdge(): void;
276
+ /** 关闭模型边线显示 */
277
+ disActiveModelEdge(): void;
278
+ /** 获取边线显示状态 */
279
+ getModelEdgeActive(): boolean;
280
+ /**
281
+ * 设置环境光照强度
282
+ * @param intensity 0-100
283
+ */
284
+ setAmbientLightIntensity(intensity: number): void;
285
+ /** 获取当前环境光照强度 */
286
+ getAmbientLightIntensity(): number;
287
+ /**
288
+ * 设置场景对比度
289
+ * @param contrast 0-100
290
+ */
291
+ setSceneContrast(contrast: number): void;
292
+ /** 获取当前场景对比度 */
293
+ getSceneContrast(): number;
294
+ /**
295
+ * 设置场景饾和度
296
+ * @param saturation 0-100
297
+ */
298
+ setSceneSaturation(saturation: number): void;
299
+ /** 获取当前场景饾和度 */
300
+ getSceneSaturation(): number;
301
+ /** 获取 HDR 背景列表 */
302
+ getHDRBackgroundList(): {
303
+ name: string;
304
+ id: string;
305
+ }[];
306
+ /**
307
+ * 设置当前 HDR 背景
308
+ * @param id 背景 ID
309
+ */
310
+ setHDRBackgroundId(id: string): void;
311
+ /** 获取当前 HDR 背景 ID */
312
+ getHDRBackgroundId(): string;
313
+ /**
314
+ * 设置 HDR 背景可见性
315
+ * @param visible 是否可见
316
+ */
317
+ setHDRBackgroundVisibility(visible: boolean): void;
318
+ /** 获取 HDR 背景可见性 */
319
+ getHDRBackgroundVisibility(): boolean;
320
+ /** 获取地面列表 */
321
+ getGroundList(): {
322
+ name: string;
323
+ id: string;
324
+ }[];
325
+ /**
326
+ * 设置当前地面类型
327
+ * @param id 地面 ID
328
+ */
329
+ setGroundId(id: string): void;
330
+ /** 获取当前地面 ID */
331
+ getGroundId(): string;
332
+ /**
333
+ * 设置地面高度(单位:m)
334
+ * @param elevation 地面高度值
335
+ */
336
+ setGroundElevation(elevation: number): void;
337
+ /** 获取当前地面高度(单位:m) */
338
+ getGroundElevation(): number;
265
339
  /** 漫游模式是否激活 */
266
340
  private isWalkModeActive;
267
341
  /**
@@ -1,5 +1,6 @@
1
1
  import { ManagerRegistry } from './manager-registry';
2
2
  import { EngineEvents } from '../types/events';
3
+ import { Engine } from '../components/engine';
3
4
  /**
4
5
  * Manager 抽象基类
5
6
  * - 通过构造函数接收 Registry 实例
@@ -11,6 +12,12 @@ export declare abstract class BaseManager {
11
12
  /** 事件订阅列表,用于自动清理 */
12
13
  private subscriptions;
13
14
  constructor(registry: ManagerRegistry);
15
+ /**
16
+ * 获取 Engine 组件实例的便捷访问器
17
+ * 内部管理器通过此 getter 直接访问 Engine 组件的全部能力
18
+ * 替代原来的 this.registry.engine3d?.xxx() 透传链
19
+ */
20
+ protected get engineComponent(): Engine | null;
14
21
  /**
15
22
  * 订阅事件(自动追踪,destroy 时自动取消)
16
23
  * @param event 事件名称