iflow-engine-base 3.12.8 → 3.12.9

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/dist/index.d.ts CHANGED
@@ -20,7 +20,6 @@ declare class AngleMeasure2d extends BaseMeasureTool2d {
20
20
  handleMove(point: THREE.Vector3): void;
21
21
  }
22
22
 
23
- /** 统一管理点线面体标记、特效和原生 HTML 窗体。 */
24
23
  declare class Annotation3d {
25
24
  private readonly engine;
26
25
  private readonly rootGroup;
@@ -29,64 +28,36 @@ declare class Annotation3d {
29
28
  private readonly occlusionRaycaster;
30
29
  private readonly normalizer;
31
30
  private readonly materialFactory;
32
- private readonly geometryBuilder;
31
+ private readonly overlayController;
32
+ private readonly interactionController;
33
33
  private readonly effectsController;
34
- private readonly panelLayer;
35
- private readonly interaction;
34
+ private readonly visibilityController;
35
+ private readonly markerRegistry;
36
+ private readonly recordFactory;
36
37
  private currentTime;
37
- /** 初始化标记根节点、DOM 面板层以及交互控制器。 */
38
38
  constructor(engine: any);
39
- /** 新增单个标记并返回最终 id。 */
40
39
  add(config: Annotation3dData): string;
41
- /** 批量新增标记。 */
42
40
  addMany(configs: Annotation3dData[]): string[];
43
- /**
44
- * 进入模型选点状态,点击模型后返回用于创建标记的世界坐标;取消或不可用时返回 null。
45
- */
46
41
  pickPoint(): Promise<AnnotationPoint3d | null>;
47
- /** 更新标记时直接重建几何和窗体,保持内部状态简单且可预测。 */
48
42
  update(id: string, patch: Partial<Annotation3dData>): boolean;
49
- /** 删除单个标记。 */
50
43
  remove(id: string): boolean;
51
- /** 清空所有标记及其 DOM 面板。 */
52
44
  clear(): void;
53
- /** 获取单个运行时实例。 */
54
45
  get(id: string): Annotation3dInstance | undefined;
55
- /** 获取全部运行时实例。 */
56
46
  getAll(): Annotation3dInstance[];
57
- /** 显示指定标记。 */
58
47
  show(id: string): boolean;
59
- /** 隐藏指定标记。 */
60
48
  hide(id: string): boolean;
61
- /** 统一控制标记显隐,并同步其面板状态。 */
62
49
  setVisible(id: string, visible: boolean): boolean;
63
- /** 手动打开面板,适用于 manual / click 等模式。 */
64
50
  showPanel(id: string): boolean;
65
- /** 手动关闭面板。 */
66
51
  hidePanel(id: string): boolean;
67
- /** 切换面板开关状态。 */
68
52
  togglePanel(id: string): boolean;
69
- /** 更新面板文本、HTML、样式或 actions。 */
70
53
  updatePanel(id: string, patch: Partial<Annotation3dPanel>): boolean;
71
- /** 导出纯数据快照,供保存和恢复。 */
72
54
  getData(): Annotation3dData[];
73
- /** 从纯数据快照恢复整套标记。 */
74
55
  restoreData(data: Annotation3dData[]): void;
75
- /** 每帧刷新特效和窗体投影位置。 */
76
56
  updateFrame(deltaTime?: number): void;
77
- /** 释放事件、几何和 DOM 资源。 */
78
57
  dispose(): void;
79
- /** 组装运行时记录,并将几何与面板初始化好。 */
80
- private buildRecord;
81
- /** 新记录统一走同一挂载流程,减少 add / update 重复代码。 */
82
58
  private attachRecord;
83
- /** 内部删除会负责资源回收和 hover 状态清理。 */
84
59
  private removeInternal;
85
- /** 标记显隐变化时,同时同步渲染顺序和面板显示。 */
86
- private applyVisibility;
87
- /** 统一生成对外事件 payload。 */
88
60
  private toEventPayload;
89
- /** 统一向引擎事件总线派发标记事件。 */
90
61
  private emit;
91
62
  }
92
63
 
@@ -159,13 +130,15 @@ export declare interface Annotation3dStyle {
159
130
  fillColor?: string;
160
131
  fillOpacity?: number;
161
132
  point?: AnnotationPointStyle;
133
+ leaderPoint?: AnnotationLeaderPointStyle;
162
134
  line?: AnnotationLineStyle;
135
+ curve?: AnnotationCurveStyle;
163
136
  polygon?: AnnotationPolygonStyle;
164
137
  volume?: AnnotationVolumeStyle;
165
138
  }
166
139
 
167
140
  /** 支持的三维标记类型。 */
168
- export declare type Annotation3dType = 'point' | 'polyline' | 'polygon' | 'extrudePolygon' | 'box';
141
+ export declare type Annotation3dType = 'point' | 'leaderPoint' | 'polyline' | 'curve3d' | 'polygon' | 'extrudePolygon' | 'box';
169
142
 
170
143
  /** 面板 action 回调上下文。 */
171
144
  export declare interface AnnotationActionContext {
@@ -189,6 +162,15 @@ declare interface AnnotationBaseRingEffect {
189
162
  */
190
163
  declare type AnnotationConfig720 = IconAnnotationConfig | TextAnnotationConfig | LinkAnnotationConfig;
191
164
 
165
+ /** 3D 曲线样式。 */
166
+ declare interface AnnotationCurveStyle {
167
+ interpolation?: 'catmullRom' | 'centripetal' | 'chordal';
168
+ tension?: number;
169
+ tubularSegments?: number;
170
+ radialSegments?: number;
171
+ closed?: boolean;
172
+ }
173
+
192
174
  /** 流动效果配置。 */
193
175
  declare interface AnnotationFlowEffect {
194
176
  enabled: boolean;
@@ -244,6 +226,32 @@ declare interface AnnotationLayersEffect {
244
226
  offsetY?: number;
245
227
  }
246
228
 
229
+ /** 带引线点标记样式。 */
230
+ declare interface AnnotationLeaderPointStyle {
231
+ variant?: 'vertical' | 'elbow' | 'flag';
232
+ side?: 'left' | 'right';
233
+ height?: number;
234
+ armLength?: number;
235
+ offsetX?: number;
236
+ offsetZ?: number;
237
+ stemWidth?: number;
238
+ showAnchor?: boolean;
239
+ showBoard?: boolean;
240
+ boardWidth?: number;
241
+ boardHeight?: number;
242
+ boardOpacity?: number;
243
+ strokeColor?: string;
244
+ strokeOpacity?: number;
245
+ backgroundColor?: string;
246
+ backgroundOpacity?: number;
247
+ borderColor?: string;
248
+ borderWidth?: number;
249
+ anchorColor?: string;
250
+ anchorRingColor?: string;
251
+ iconBackgroundColor?: string;
252
+ iconBackgroundOpacity?: number;
253
+ }
254
+
247
255
  /** 线样式。 */
248
256
  declare interface AnnotationLineStyle {
249
257
  dashed?: boolean;
@@ -688,6 +696,7 @@ declare class CameraModule {
688
696
  private engine;
689
697
  perspectiveCamera: THREE.PerspectiveCamera;
690
698
  orthographicCamera: THREE.OrthographicCamera;
699
+ private cameraAnimationFrame;
691
700
  constructor(engine: any);
692
701
  /** 视图跳转前统一退出图钉查看态,避免批注锁定与相机动画冲突。 */
693
702
  private exitDrawingPinView;
@@ -719,7 +728,9 @@ declare class CameraModule {
719
728
  x: number;
720
729
  y: number;
721
730
  z: number;
722
- }, stableUp?: any, distanceOverride?: number | null): void;
731
+ }, stableUp?: any, distanceOverride?: number | null, animationDuration?: number, onComplete?: () => void): void;
732
+ private applyCameraPose;
733
+ private animateCameraToTarget;
723
734
  }
724
735
 
725
736
  declare class CameraModule2d {
@@ -6373,8 +6384,8 @@ declare class ModelToolModule {
6373
6384
  unhighlightAllModels(isClear?: boolean): void;
6374
6385
  hideModel(models: any): void;
6375
6386
  showModel(models: any, skipStateCleanup?: boolean): void;
6376
- isolateModel(models: any): void;
6377
- translucentOtherModel(models: any): void;
6387
+ isolateModel(models: any, opacity?: number): void;
6388
+ translucentOtherModel(models: any, opacity?: number): void;
6378
6389
  /** 设置构件自定义颜色,入参与高亮接口一致:[{ url, ids }],同时兼容旧的直接 Mesh 入参。 */
6379
6390
  setModelColor(models: any, color?: THREE.ColorRepresentation, opacity?: number): void;
6380
6391
  /** 恢复指定构件的自定义颜色,入参与高亮接口一致:[{ url, ids }]。 */
@@ -6418,7 +6429,7 @@ declare class ModelToolModule {
6418
6429
  private createCustomInstanceBatch;
6419
6430
  private normalizeOpacity;
6420
6431
  private clearMaterialTextures;
6421
- translucentModel(models: any[]): void;
6432
+ translucentModel(models: any[], opacity?: number): void;
6422
6433
  unTranslucentModel(): void;
6423
6434
  hideAllModels(): void;
6424
6435
  showAllModels(): void;
@@ -8189,7 +8200,7 @@ declare class ViewCube {
8189
8200
  show(): void;
8190
8201
  CameraGoHome(time: number): void;
8191
8202
  cameraGoHome(time: number): void;
8192
- zoomToModel(box: any): void;
8203
+ zoomToModel(box: any, time?: number): void;
8193
8204
  zoomToModels(m: any): void;
8194
8205
  flyToModels(ms?: any[]): void;
8195
8206
  saveMainViewPort(): any;
@@ -8305,6 +8316,7 @@ declare class ViewerModuleGIS {
8305
8316
  }
8306
8317
 
8307
8318
  declare class ViewTree {
8319
+ private static readonly OPEN_VIEW_ANIMATION_DURATION;
8308
8320
  private engine;
8309
8321
  private dynamicElevationViewGenerator;
8310
8322
  /** 管理模型原生视图与运行时动态视图的统一入口。 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iflow-engine-base",
3
- "version": "3.12.8",
3
+ "version": "3.12.9",
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",