iflow-engine-base 3.10.2 → 3.10.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.
package/dist/index.d.ts CHANGED
@@ -122,11 +122,200 @@ declare class AngleMeasure2d extends BaseMeasureTool2d {
122
122
  handleMove(point: THREE.Vector3): void;
123
123
  }
124
124
 
125
+ /** 统一管理点线面体标记、特效和原生 HTML 窗体。 */
126
+ declare class Annotation3d {
127
+ private readonly engine;
128
+ private readonly rootGroup;
129
+ private readonly records;
130
+ private readonly textureLoader;
131
+ private readonly occlusionRaycaster;
132
+ private readonly normalizer;
133
+ private readonly materialFactory;
134
+ private readonly geometryBuilder;
135
+ private readonly effectsController;
136
+ private readonly panelLayer;
137
+ private readonly interaction;
138
+ private currentTime;
139
+ /** 初始化标记根节点、DOM 面板层以及交互控制器。 */
140
+ constructor(engine: any);
141
+ /** 新增单个标记并返回最终 id。 */
142
+ add(config: Annotation3dData): string;
143
+ /** 批量新增标记。 */
144
+ addMany(configs: Annotation3dData[]): string[];
145
+ /** 更新标记时直接重建几何和窗体,保持内部状态简单且可预测。 */
146
+ update(id: string, patch: Partial<Annotation3dData>): boolean;
147
+ /** 删除单个标记。 */
148
+ remove(id: string): boolean;
149
+ /** 清空所有标记及其 DOM 面板。 */
150
+ clear(): void;
151
+ /** 获取单个运行时实例。 */
152
+ get(id: string): Annotation3dInstance | undefined;
153
+ /** 获取全部运行时实例。 */
154
+ getAll(): Annotation3dInstance[];
155
+ /** 显示指定标记。 */
156
+ show(id: string): boolean;
157
+ /** 隐藏指定标记。 */
158
+ hide(id: string): boolean;
159
+ /** 统一控制标记显隐,并同步其面板状态。 */
160
+ setVisible(id: string, visible: boolean): boolean;
161
+ /** 手动打开面板,适用于 manual / click 等模式。 */
162
+ showPanel(id: string): boolean;
163
+ /** 手动关闭面板。 */
164
+ hidePanel(id: string): boolean;
165
+ /** 切换面板开关状态。 */
166
+ togglePanel(id: string): boolean;
167
+ /** 更新面板文本、HTML、样式或 actions。 */
168
+ updatePanel(id: string, patch: Partial<Annotation3dPanel>): boolean;
169
+ /** 导出纯数据快照,供保存和恢复。 */
170
+ getData(): Annotation3dData[];
171
+ /** 从纯数据快照恢复整套标记。 */
172
+ restoreData(data: Annotation3dData[]): void;
173
+ /** 每帧刷新特效和窗体投影位置。 */
174
+ updateFrame(deltaTime?: number): void;
175
+ /** 释放事件、几何和 DOM 资源。 */
176
+ dispose(): void;
177
+ /** 组装运行时记录,并将几何与面板初始化好。 */
178
+ private buildRecord;
179
+ /** 新记录统一走同一挂载流程,减少 add / update 重复代码。 */
180
+ private attachRecord;
181
+ /** 内部删除会负责资源回收和 hover 状态清理。 */
182
+ private removeInternal;
183
+ /** 标记显隐变化时,同时同步渲染顺序和面板显示。 */
184
+ private applyVisibility;
185
+ /** 统一生成对外事件 payload。 */
186
+ private toEventPayload;
187
+ /** 统一向引擎事件总线派发标记事件。 */
188
+ private emit;
189
+ }
190
+
191
+ /** 创建或恢复标记使用的纯数据结构。 */
192
+ export declare interface Annotation3dData {
193
+ id?: string;
194
+ type: Annotation3dType;
195
+ points: AnnotationPoint3d[];
196
+ visible?: boolean;
197
+ selectable?: boolean;
198
+ style?: Annotation3dStyle;
199
+ effect?: Annotation3dEffect;
200
+ panel?: Annotation3dPanel;
201
+ data?: any;
202
+ }
203
+
204
+ /** 点线面体统一的特效配置。 */
205
+ export declare interface Annotation3dEffect {
206
+ gradient?: AnnotationGradientEffect;
207
+ glow?: AnnotationGlowEffect;
208
+ flow?: AnnotationFlowEffect;
209
+ pulse?: AnnotationPulseEffect;
210
+ ripple?: AnnotationRippleEffect;
211
+ pillar?: AnnotationPillarEffect;
212
+ baseRing?: AnnotationBaseRingEffect;
213
+ layers?: AnnotationLayersEffect;
214
+ scan?: AnnotationScanEffect;
215
+ }
216
+
217
+ /** 引擎运行时实例,包含根节点和交互状态。 */
218
+ export declare interface Annotation3dInstance {
219
+ id: string;
220
+ type: Annotation3dType;
221
+ points: AnnotationPoint3d[];
222
+ visible: boolean;
223
+ selectable: boolean;
224
+ style: Annotation3dStyle;
225
+ effect: Annotation3dEffect;
226
+ panel?: Omit<Annotation3dPanel, 'actions'>;
227
+ data?: any;
228
+ panelVisible: boolean;
229
+ hovered: boolean;
230
+ root: THREE.Group;
231
+ }
232
+
233
+ /** 标记关联的原生 HTML 窗体配置。 */
234
+ export declare interface Annotation3dPanel {
235
+ visible?: boolean;
236
+ trigger?: 'manual' | 'hover' | 'click' | 'always';
237
+ mode?: 'text' | 'html';
238
+ text?: string;
239
+ html?: string;
240
+ anchor?: 'self' | 'top' | 'center' | 'start' | 'end' | 'centroid';
241
+ offset?: AnnotationPanelOffset3d;
242
+ screenOffset?: AnnotationPanelOffset2d;
243
+ className?: string;
244
+ style?: Record<string, string>;
245
+ interactive?: boolean;
246
+ occlusion?: 'show' | 'hide';
247
+ actions?: Record<string, (ctx: AnnotationActionContext) => void>;
248
+ }
249
+
250
+ /** 点线面体统一样式。 */
251
+ export declare interface Annotation3dStyle {
252
+ color?: string;
253
+ opacity?: number;
254
+ depthTest?: boolean;
255
+ alwaysOnTop?: boolean;
256
+ lineWidth?: number;
257
+ fillColor?: string;
258
+ fillOpacity?: number;
259
+ point?: AnnotationPointStyle;
260
+ line?: AnnotationLineStyle;
261
+ polygon?: AnnotationPolygonStyle;
262
+ volume?: AnnotationVolumeStyle;
263
+ }
264
+
265
+ /** 支持的三维标记类型。 */
266
+ export declare type Annotation3dType = 'point' | 'polyline' | 'polygon' | 'extrudePolygon' | 'box';
267
+
268
+ /** 面板 action 回调上下文。 */
269
+ export declare interface AnnotationActionContext {
270
+ engine: any;
271
+ id: string;
272
+ annotation: Annotation3dInstance;
273
+ action: string;
274
+ element: HTMLElement;
275
+ originalEvent: MouseEvent;
276
+ }
277
+
278
+ /** 底环效果配置。 */
279
+ declare interface AnnotationBaseRingEffect {
280
+ enabled: boolean;
281
+ radius?: number;
282
+ rotateSpeed?: number;
283
+ }
284
+
125
285
  /**
126
286
  * 标注联合类型
127
287
  */
128
288
  declare type AnnotationConfig720 = IconAnnotationConfig | TextAnnotationConfig | LinkAnnotationConfig;
129
289
 
290
+ /** 流动效果配置。 */
291
+ declare interface AnnotationFlowEffect {
292
+ enabled: boolean;
293
+ speed?: number;
294
+ width?: number;
295
+ direction?: 'forward' | 'backward' | 'up';
296
+ }
297
+
298
+ /** 发光效果配置。 */
299
+ declare interface AnnotationGlowEffect {
300
+ enabled: boolean;
301
+ color?: string;
302
+ intensity?: number;
303
+ }
304
+
305
+ /** 渐变色效果配置。 */
306
+ declare interface AnnotationGradientEffect {
307
+ enabled: boolean;
308
+ direction?: 'vertical' | 'horizontal' | 'path';
309
+ stops?: AnnotationGradientStop[];
310
+ }
311
+
312
+ /** 渐变色 stop。 */
313
+ declare interface AnnotationGradientStop {
314
+ offset: number;
315
+ color: string;
316
+ alpha?: number;
317
+ }
318
+
130
319
  /**
131
320
  * 标注实例(包含 DOM 元素)
132
321
  */
@@ -146,6 +335,19 @@ declare interface AnnotationInstance {
146
335
  visible: boolean;
147
336
  }
148
337
 
338
+ /** 多层围栏线效果配置。 */
339
+ declare interface AnnotationLayersEffect {
340
+ enabled: boolean;
341
+ count?: number;
342
+ offsetY?: number;
343
+ }
344
+
345
+ /** 线样式。 */
346
+ declare interface AnnotationLineStyle {
347
+ dashed?: boolean;
348
+ closed?: boolean;
349
+ }
350
+
149
351
  /**
150
352
  * 标注管理器 - 管理全景图中的标注点
151
353
  * 支持图标、文字、超链接三种类型的标注
@@ -265,6 +467,50 @@ declare class AnnotationManager720 {
265
467
  private generateId;
266
468
  }
267
469
 
470
+ /** 面板屏幕偏移。 */
471
+ declare interface AnnotationPanelOffset2d {
472
+ x?: number;
473
+ y?: number;
474
+ }
475
+
476
+ /** 面板三维偏移。 */
477
+ declare interface AnnotationPanelOffset3d {
478
+ x?: number;
479
+ y?: number;
480
+ z?: number;
481
+ }
482
+
483
+ /** 光柱效果配置。 */
484
+ declare interface AnnotationPillarEffect {
485
+ enabled: boolean;
486
+ height?: number;
487
+ width?: number;
488
+ }
489
+
490
+ /** 三维空间点。 */
491
+ declare interface AnnotationPoint3d {
492
+ x: number;
493
+ y: number;
494
+ z: number;
495
+ }
496
+
497
+ /** 点位样式。 */
498
+ declare interface AnnotationPointStyle {
499
+ mode?: 'sprite' | 'hybrid';
500
+ icon?: string;
501
+ size?: number;
502
+ iconSize?: number;
503
+ billboard?: boolean;
504
+ anchorY?: number;
505
+ }
506
+
507
+ /** 面样式。 */
508
+ declare interface AnnotationPolygonStyle {
509
+ showEdge?: boolean;
510
+ edgeColor?: string;
511
+ edgeWidth?: number;
512
+ }
513
+
268
514
  /**
269
515
  * 标注位置信息(球面坐标)
270
516
  */
@@ -274,6 +520,29 @@ declare interface AnnotationPosition {
274
520
  radius?: number;
275
521
  }
276
522
 
523
+ /** 呼吸闪烁效果配置。 */
524
+ declare interface AnnotationPulseEffect {
525
+ enabled: boolean;
526
+ speed?: number;
527
+ minOpacity?: number;
528
+ maxOpacity?: number;
529
+ }
530
+
531
+ /** 波纹扩散效果配置。 */
532
+ declare interface AnnotationRippleEffect {
533
+ enabled: boolean;
534
+ count?: number;
535
+ speed?: number;
536
+ maxRadius?: number;
537
+ }
538
+
539
+ /** 扫描效果配置。 */
540
+ declare interface AnnotationScanEffect {
541
+ enabled: boolean;
542
+ speed?: number;
543
+ width?: number;
544
+ }
545
+
277
546
  /**
278
547
  * 标注类型枚举
279
548
  */
@@ -283,6 +552,15 @@ declare enum AnnotationType720 {
283
552
  LINK = "link"
284
553
  }
285
554
 
555
+ /** 体样式。 */
556
+ declare interface AnnotationVolumeStyle {
557
+ height?: number;
558
+ showTop?: boolean;
559
+ showSide?: boolean;
560
+ showBottom?: boolean;
561
+ edgeColor?: string;
562
+ }
563
+
286
564
  declare class AreaMeasure2d extends BaseMeasureTool2d {
287
565
  /** 三点及以上可以闭合面积,双击或 Enter 结束。 */
288
566
  handleClick(point: THREE.Vector3): void;
@@ -640,6 +918,9 @@ declare class CameraModuleGaussian {
640
918
  dispose(): void;
641
919
  }
642
920
 
921
+ /**
922
+ * 相机姿态信息
923
+ */
643
924
  declare interface CameraPose {
644
925
  theta: number;
645
926
  phi: number;
@@ -689,12 +970,25 @@ declare class Clipping {
689
970
  filterIntersectionsByClipping<T extends {
690
971
  point?: any;
691
972
  }>(intersections: T[] | null | undefined, tolerance?: number): T[];
973
+ /**
974
+ * 判断包围盒是否仍与当前可见剖切区域相交。
975
+ * 只要包围盒被任一剖切平面完全裁掉,就可以在八叉树阶段提前跳过。
976
+ */
977
+ doesBoxIntersectClippingRange(box: THREE.Box3 | {
978
+ min: any;
979
+ max: any;
980
+ } | null | undefined, tolerance?: number): boolean;
692
981
  getClippedBoundingBox(baseBox?: THREE.Box3): THREE.Box3 | null;
693
982
  private getEffectiveClippingPlanes;
694
983
  private toBox3;
695
984
  private getBoxBoundaryPlanes;
696
985
  private intersectThreePlanes;
697
986
  private isPointInsidePlanes;
987
+ /**
988
+ * 取包围盒在平面法线方向上的最远顶点;
989
+ * 如果这个点仍落在平面外侧,说明整个包围盒都已经被该平面剔除。
990
+ */
991
+ private isBoxVisibleAgainstPlane;
698
992
  private pushUniquePoint;
699
993
  private isVector3Like;
700
994
  /**
@@ -908,6 +1202,7 @@ declare class ControlModule {
908
1202
  init(): void;
909
1203
  active(): void;
910
1204
  disActive(): void;
1205
+ private setEngineControls;
911
1206
  setMoveSpeed(value: number): void;
912
1207
  getMoveSpeed(): number;
913
1208
  setApplyCollision(value: boolean): void;
@@ -1412,7 +1707,6 @@ declare interface DWGMetadata {
1412
1707
  */
1413
1708
  declare interface Engine2dOptions {
1414
1709
  containerId: string;
1415
- interactionMode?: EngineInteractionMode;
1416
1710
  backgroundColor?: number;
1417
1711
  gridEnabled?: boolean;
1418
1712
  axesEnabled?: boolean;
@@ -1437,25 +1731,43 @@ declare interface Engine2dOptions {
1437
1731
  showMouseCoordinates?: boolean;
1438
1732
  }
1439
1733
 
1734
+ /**
1735
+ * 720 全景引擎配置选项
1736
+ */
1440
1737
  declare interface Engine720Options {
1738
+ /** 容器 ID */
1441
1739
  containerId: string;
1442
- interactionMode?: EngineInteractionMode;
1740
+ /** 覆盖 SDK 内置资源根路径,默认使用固定 CDN。 */
1443
1741
  assetBaseUrl?: string;
1742
+ /** 初始视野角度(默认 75) */
1444
1743
  fov?: number;
1744
+ /** 是否启用缩放(默认 true) */
1445
1745
  enableZoom?: boolean;
1746
+ /** 是否启用旋转(默认 true) */
1446
1747
  enableRotate?: boolean;
1748
+ /** 最小 FOV(默认 30,最大缩放) */
1447
1749
  minFov?: number;
1750
+ /** 最大 FOV(默认 90,最小缩放) */
1448
1751
  maxFov?: number;
1752
+ /** 球体半径(默认 500) */
1449
1753
  sphereRadius?: number;
1754
+ /** 旋转速度(默认 0.5) */
1450
1755
  rotateSpeed?: number;
1756
+ /** 缩放速度(默认 1.0) */
1451
1757
  zoomSpeed?: number;
1758
+ /** 是否启用阻尼效果(默认 true) */
1452
1759
  enableDamping?: boolean;
1760
+ /** 阻尼系数(默认 0.05) */
1453
1761
  dampingFactor?: number;
1454
1762
  }
1455
1763
 
1764
+ /**
1765
+ * Gaussian 高斯点云引擎配置项。
1766
+ * 结构参考 core720,由 EngineKernel 统一装配各模块。
1767
+ */
1456
1768
  declare interface EngineGaussianOptions {
1457
1769
  containerId: string;
1458
- interactionMode?: EngineInteractionMode;
1770
+ /** 覆盖 SDK 内置资源根路径,默认使用固定 CDN。 */
1459
1771
  assetBaseUrl?: string;
1460
1772
  cameraUp?: GaussianVector3;
1461
1773
  initialCameraPosition?: GaussianVector3;
@@ -1470,19 +1782,26 @@ declare interface EngineGaussianOptions {
1470
1782
  viewerOptions?: Record<string, any>;
1471
1783
  }
1472
1784
 
1785
+ /**
1786
+ * GIS 引擎初始化参数。
1787
+ * 默认 provider 为 cesium,后续可在不破坏公开 API 的前提下扩展其他地图内核。
1788
+ */
1473
1789
  export declare interface EngineGISOptions extends GISContainerOptions {
1474
- interactionMode?: EngineInteractionMode;
1790
+ /** 覆盖 SDK 内置资源根路径,默认使用固定 CDN。 */
1475
1791
  assetBaseUrl?: string;
1476
1792
  provider?: 'cesium';
1477
1793
  accessToken?: string;
1478
1794
  cesiumBaseUrl?: string;
1479
1795
  imageryUrl?: string;
1796
+ /** Maximum imagery tile level. Higher zooms reuse this level so imagery stays visible, though blurred. */
1480
1797
  imageryMaximumLevel?: number;
1481
1798
  terrainMode?: GISTerrainMode;
1482
1799
  terrain?: GISTerrainOptions;
1483
1800
  initialView?: GISCameraView;
1484
1801
  showCredit?: boolean;
1802
+ /** 是否显示右上角紧凑性能监视器。 */
1485
1803
  showStats?: boolean;
1804
+ /** 性能监视器详细配置,优先级高于 showStats。 */
1486
1805
  performanceMonitor?: boolean | {
1487
1806
  enabled?: boolean;
1488
1807
  updateInterval?: number;
@@ -1510,8 +1829,6 @@ declare class EngineInfo {
1510
1829
  };
1511
1830
  }
1512
1831
 
1513
- export declare type EngineInteractionMode = 'standard' | 'browse';
1514
-
1515
1832
  declare class EngineKernel2d {
1516
1833
  private options;
1517
1834
  private container;
@@ -1552,7 +1869,6 @@ declare class EngineKernel2d {
1552
1869
  renderer: THREE.WebGLRenderer | null;
1553
1870
  dwgData: DWGData | null;
1554
1871
  version: string;
1555
- private interactionMode;
1556
1872
  constructor(options: Engine2dOptions);
1557
1873
  /**
1558
1874
  * 初始化引擎
@@ -1663,9 +1979,6 @@ declare class EngineKernel2d {
1663
1979
  getZoom(): number;
1664
1980
  /** 刷新右下角版本号展示,便于外部修改 version 后同步 UI。 */
1665
1981
  updateVersionDisplay(): void;
1666
- setInteractionMode(mode?: EngineInteractionMode): void;
1667
- getInteractionMode(): EngineInteractionMode;
1668
- isModelInteractionEnabled(): boolean;
1669
1982
  /**
1670
1983
  * 获取性能统计
1671
1984
  * @returns 性能统计信息
@@ -1742,7 +2055,6 @@ declare class EngineKernel720 {
1742
2055
  worldToScreen: WorldToScreen;
1743
2056
  private isInitialized;
1744
2057
  private readonly version;
1745
- private interactionMode;
1746
2058
  constructor(options: Engine720Options);
1747
2059
  /**
1748
2060
  * 初始化引擎
@@ -1856,8 +2168,6 @@ declare class EngineKernel720 {
1856
2168
  * 获取版本
1857
2169
  */
1858
2170
  getVersion(): string;
1859
- setInteractionMode(mode?: EngineInteractionMode): void;
1860
- getInteractionMode(): EngineInteractionMode;
1861
2171
  /**
1862
2172
  * 销毁引擎
1863
2173
  */
@@ -1882,11 +2192,8 @@ declare class EngineKernelGaussian {
1882
2192
  private isInitialized;
1883
2193
  private readonly options;
1884
2194
  private readonly version;
1885
- private interactionMode;
1886
2195
  constructor(options: EngineGaussianOptions);
1887
2196
  private initialize;
1888
- setInteractionMode(mode?: EngineInteractionMode): void;
1889
- getInteractionMode(): EngineInteractionMode;
1890
2197
  loadModel(url: string, options?: GaussianSceneOptions): Promise<GaussianSceneInfo>;
1891
2198
  /**
1892
2199
  * 通过 viewToken 解析 Gaussian 资源地址,再复用现有 URL 加载逻辑。
@@ -1923,7 +2230,6 @@ export declare class EngineKernelGIS {
1923
2230
  private isInitialized;
1924
2231
  private readonly version;
1925
2232
  private cameraChangedHandler?;
1926
- private interactionMode;
1927
2233
  constructor(options: EngineGISOptions);
1928
2234
  /**
1929
2235
  * 初始化 GIS 引擎。
@@ -2058,8 +2364,6 @@ export declare class EngineKernelGIS {
2058
2364
  * 获取 GIS 模块版本。
2059
2365
  */
2060
2366
  getVersion(): string;
2061
- setInteractionMode(mode?: EngineInteractionMode): void;
2062
- getInteractionMode(): EngineInteractionMode;
2063
2367
  /**
2064
2368
  * 销毁 GIS 引擎。
2065
2369
  */
@@ -2080,7 +2384,11 @@ declare class EngineKernelV2 {
2080
2384
  private animationId;
2081
2385
  private isDisposed;
2082
2386
  private isRenderingPaused;
2387
+ private suppressComposerRenderWhenFree;
2388
+ private pendingComposerRender;
2083
2389
  private controlsEnabledBeforePause;
2390
+ private boundControl;
2391
+ private controlEventHandlers;
2084
2392
  private animate;
2085
2393
  private onWindowResize;
2086
2394
  private _fpsFrameCount;
@@ -2148,6 +2456,7 @@ declare class EngineKernelV2 {
2148
2456
  drawingPin: DrawingPin;
2149
2457
  modelLink3d: ModelLink3d;
2150
2458
  label: Label;
2459
+ annotation3d: Annotation3d;
2151
2460
  calibration: Calibration;
2152
2461
  models: any[];
2153
2462
  reactBoundingClientRect: {
@@ -2156,13 +2465,12 @@ declare class EngineKernelV2 {
2156
2465
  };
2157
2466
  version: string;
2158
2467
  private versionEl;
2159
- private interactionMode;
2160
2468
  private container;
2161
2469
  constructor(options: any);
2470
+ changeHandelBehavedMode(): void;
2162
2471
  updateVersionDisplay(): void;
2163
- setInteractionMode(mode?: EngineInteractionMode): void;
2164
- getInteractionMode(): EngineInteractionMode;
2165
- isModelInteractionEnabled(): boolean;
2472
+ bindControlEvents(control: any): void;
2473
+ requestComposerRender(): void;
2166
2474
  /**
2167
2475
  * 通过 viewToken 解析 3D 模型地址,再复用现有 loaderModule URL 加载逻辑。
2168
2476
  */
@@ -2356,9 +2664,9 @@ declare interface EngineSettings {
2356
2664
  declare class EngineStatus {
2357
2665
  private engine;
2358
2666
  isFree: boolean;
2667
+ editModel: boolean;
2359
2668
  isForceFree: boolean;
2360
2669
  isDisableContextMenu: boolean;
2361
- modelInteractionEnabled: boolean;
2362
2670
  disableModelInteractionHighlight: boolean;
2363
2671
  highlightModels: any[];
2364
2672
  hideModels: any[];
@@ -2967,6 +3275,9 @@ export declare interface GISCalibrationOptions {
2967
3275
  rotationUnit?: 'radians' | 'degrees';
2968
3276
  }
2969
3277
 
3278
+ /**
3279
+ * GIS 视角参数,统一使用 WGS84 经纬度。
3280
+ */
2970
3281
  export declare interface GISCameraView {
2971
3282
  longitude: number;
2972
3283
  latitude: number;
@@ -2976,6 +3287,10 @@ export declare interface GISCameraView {
2976
3287
  roll?: number;
2977
3288
  }
2978
3289
 
3290
+ /**
3291
+ * GIS 引擎容器配置。
3292
+ * 优先支持 HTMLElement,保留 containerId 以贴近 core720 的调用习惯。
3293
+ */
2979
3294
  declare interface GISContainerOptions {
2980
3295
  container?: HTMLElement;
2981
3296
  containerId?: string;
@@ -2990,6 +3305,9 @@ export declare interface GISElevationCalibrationOptions {
2990
3305
  heightOffset: number;
2991
3306
  }
2992
3307
 
3308
+ /**
3309
+ * GIS 事件回调类型。
3310
+ */
2993
3311
  export declare type GISEventCallback<T = unknown> = (data: T) => void;
2994
3312
 
2995
3313
  declare type GISGeographicOffset = {
@@ -3517,6 +3835,9 @@ declare interface IDrawingPinState {
3517
3835
  capturePoint?: IDrawingPinCapturePoint | null;
3518
3836
  }
3519
3837
 
3838
+ /**
3839
+ * GIS 事件模块对外契约。
3840
+ */
3520
3841
  export declare interface IGISEventModule {
3521
3842
  on<T = unknown>(event: EventTypeGIS_2 | string, callback: GISEventCallback<T>): void;
3522
3843
  off<T = unknown>(event: EventTypeGIS_2 | string, callback: GISEventCallback<T>): void;
@@ -3541,8 +3862,6 @@ declare class InteractionModule {
3541
3862
  init(): void;
3542
3863
  active(): void;
3543
3864
  disActive(): void;
3544
- isModelInteractionEnabled(): boolean;
3545
- shouldSkipRaycast(): boolean;
3546
3865
  dispose(): void;
3547
3866
  handelKeyCtrlUp(): void;
3548
3867
  handelKeyCtrlDown(): void;
@@ -3552,7 +3871,7 @@ declare class InteractionModule {
3552
3871
  handelKeyEscDown(): void;
3553
3872
  handleMouseMove(event: any): void;
3554
3873
  handleMouseUp(event: any): void;
3555
- getCatchMeshs(event: any, retainShow?: boolean): any;
3874
+ getCatchMeshs(event: any, retainShow?: boolean): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>[] | null;
3556
3875
  handleMouseClick(event: any): void;
3557
3876
  handleMouseDoubleClick(event: any): void;
3558
3877
  private clearModelHighlightBeforeCameraFlight;
@@ -3579,6 +3898,8 @@ declare class InteractionModule {
3579
3898
  private keepHighlightedModels;
3580
3899
  private removeModelsFromHighlightState;
3581
3900
  private getNodeWorldBox;
3901
+ private getNodeCatchMeshes;
3902
+ private createInstanceCatchMesh;
3582
3903
  private getInstanceWorldBox;
3583
3904
  private projectBoxToScreenRect;
3584
3905
  private containsRect;
@@ -3595,7 +3916,6 @@ declare class InteractionModule2d {
3595
3916
  init(): void;
3596
3917
  active(): void;
3597
3918
  disActive(): void;
3598
- shouldSkipRaycast(): boolean;
3599
3919
  private oldId;
3600
3920
  handleMouseMove(event: any): void;
3601
3921
  handelKeyEscDown(_event: any): void;
@@ -3609,6 +3929,9 @@ declare class InteractionModule2d {
3609
3929
  dispose(): void;
3610
3930
  }
3611
3931
 
3932
+ /**
3933
+ * 交互灵敏度等动态配置
3934
+ */
3612
3935
  declare interface InteractionOptions720 {
3613
3936
  rotateSpeed?: number;
3614
3937
  zoomSpeed?: number;
@@ -3764,19 +4087,14 @@ declare interface IssueSnapshotWithUrl extends IssueSnapshot {
3764
4087
  url: string;
3765
4088
  }
3766
4089
 
3767
- /**
3768
- * 3D 标签管理器,负责模型空间坐标拾取、DOM 标签投影和点击事件转发。
3769
- */
3770
4090
  declare class Label {
3771
4091
  private readonly engine;
3772
4092
  private readonly manager;
3773
4093
  private readonly worldToScreen;
3774
4094
  private readonly raycaster;
3775
4095
  constructor(engine: any);
3776
- /** 开启一次 3D 模型点选,返回命中的世界坐标。 */
3777
4096
  pickPoint(): Promise<LabelCoordinate | null>;
3778
4097
  startPickPoint(callback?: (coordinate: LabelCoordinate | null) => void): Promise<LabelCoordinate | null>;
3779
- /** 创建 3D 标签,坐标使用模型世界坐标 x/y/z。 */
3780
4098
  createLabel(options: LabelCreateOptions): string;
3781
4099
  updateLabel(id: string, options: LabelUpdateOptions): boolean;
3782
4100
  deleteLabel(id: string): boolean;
@@ -3786,7 +4104,6 @@ declare class Label {
3786
4104
  getLabels(): LabelInstance[];
3787
4105
  onLabelClick(callback: LabelClickCallback): () => void;
3788
4106
  offLabelClick(callback: LabelClickCallback): void;
3789
- /** 每帧同步标签位置,避免相机旋转后标签滞留。 */
3790
4107
  update(): void;
3791
4108
  dispose(): void;
3792
4109
  private projectCoordinate;