iflow-engine-base 3.10.2 → 3.10.6
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/bim-engine-sdk.es.js +5 -5
- package/dist/bim-engine-sdk.umd.js +851 -770
- package/dist/chunks/{engine-2d-BqSrZIgs.js → engine-2d-D1Kycjix.js} +1337 -1371
- package/dist/chunks/{engine-3d-CRi8gi4g.js → engine-3d-C_tGnniz.js} +10273 -8968
- package/dist/chunks/{engine-720-SBj4j_-S.js → engine-720-zpIs5x51.js} +23 -30
- package/dist/chunks/{engine-gaussian-Dm41ihjY.js → engine-gaussian-DMNp2sgc.js} +128 -135
- package/dist/chunks/{engine-gis-CFrFKNSx.js → engine-gis-DBokizAn.js} +6046 -6053
- package/dist/chunks/{sdk-runtime-D7NH6c4x.js → sdk-runtime-DWNcrQfl.js} +3 -3
- package/dist/chunks/{three-vendor-DTqpDaJq.js → three-vendor-CAbFcmaK.js} +8127 -7648
- package/dist/index.d.ts +355 -34
- package/dist2d/dwg-preview.es.js +3567 -3599
- package/dist2d/dwg-preview.umd.js +27 -27
- package/distGaussian/gaussian.es.js +7 -17
- package/distGaussian/gaussian.umd.js +3 -3
- package/package.json +3 -2
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2164
|
-
|
|
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 = {
|
|
@@ -3393,6 +3711,8 @@ declare class Hdr {
|
|
|
3393
3711
|
private _clearHdr;
|
|
3394
3712
|
private _getAmbientLightIntensity;
|
|
3395
3713
|
private _setAmbientLightIntensity;
|
|
3714
|
+
private _getHdrAmbientLightIntensity;
|
|
3715
|
+
private _requestRender;
|
|
3396
3716
|
}
|
|
3397
3717
|
|
|
3398
3718
|
declare interface HdrItem {
|
|
@@ -3517,6 +3837,9 @@ declare interface IDrawingPinState {
|
|
|
3517
3837
|
capturePoint?: IDrawingPinCapturePoint | null;
|
|
3518
3838
|
}
|
|
3519
3839
|
|
|
3840
|
+
/**
|
|
3841
|
+
* GIS 事件模块对外契约。
|
|
3842
|
+
*/
|
|
3520
3843
|
export declare interface IGISEventModule {
|
|
3521
3844
|
on<T = unknown>(event: EventTypeGIS_2 | string, callback: GISEventCallback<T>): void;
|
|
3522
3845
|
off<T = unknown>(event: EventTypeGIS_2 | string, callback: GISEventCallback<T>): void;
|
|
@@ -3541,8 +3864,6 @@ declare class InteractionModule {
|
|
|
3541
3864
|
init(): void;
|
|
3542
3865
|
active(): void;
|
|
3543
3866
|
disActive(): void;
|
|
3544
|
-
isModelInteractionEnabled(): boolean;
|
|
3545
|
-
shouldSkipRaycast(): boolean;
|
|
3546
3867
|
dispose(): void;
|
|
3547
3868
|
handelKeyCtrlUp(): void;
|
|
3548
3869
|
handelKeyCtrlDown(): void;
|
|
@@ -3552,7 +3873,7 @@ declare class InteractionModule {
|
|
|
3552
3873
|
handelKeyEscDown(): void;
|
|
3553
3874
|
handleMouseMove(event: any): void;
|
|
3554
3875
|
handleMouseUp(event: any): void;
|
|
3555
|
-
getCatchMeshs(event: any, retainShow?: boolean):
|
|
3876
|
+
getCatchMeshs(event: any, retainShow?: boolean): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>[] | null;
|
|
3556
3877
|
handleMouseClick(event: any): void;
|
|
3557
3878
|
handleMouseDoubleClick(event: any): void;
|
|
3558
3879
|
private clearModelHighlightBeforeCameraFlight;
|
|
@@ -3579,6 +3900,8 @@ declare class InteractionModule {
|
|
|
3579
3900
|
private keepHighlightedModels;
|
|
3580
3901
|
private removeModelsFromHighlightState;
|
|
3581
3902
|
private getNodeWorldBox;
|
|
3903
|
+
private getNodeCatchMeshes;
|
|
3904
|
+
private createInstanceCatchMesh;
|
|
3582
3905
|
private getInstanceWorldBox;
|
|
3583
3906
|
private projectBoxToScreenRect;
|
|
3584
3907
|
private containsRect;
|
|
@@ -3595,7 +3918,6 @@ declare class InteractionModule2d {
|
|
|
3595
3918
|
init(): void;
|
|
3596
3919
|
active(): void;
|
|
3597
3920
|
disActive(): void;
|
|
3598
|
-
shouldSkipRaycast(): boolean;
|
|
3599
3921
|
private oldId;
|
|
3600
3922
|
handleMouseMove(event: any): void;
|
|
3601
3923
|
handelKeyEscDown(_event: any): void;
|
|
@@ -3609,6 +3931,9 @@ declare class InteractionModule2d {
|
|
|
3609
3931
|
dispose(): void;
|
|
3610
3932
|
}
|
|
3611
3933
|
|
|
3934
|
+
/**
|
|
3935
|
+
* 交互灵敏度等动态配置
|
|
3936
|
+
*/
|
|
3612
3937
|
declare interface InteractionOptions720 {
|
|
3613
3938
|
rotateSpeed?: number;
|
|
3614
3939
|
zoomSpeed?: number;
|
|
@@ -3764,19 +4089,14 @@ declare interface IssueSnapshotWithUrl extends IssueSnapshot {
|
|
|
3764
4089
|
url: string;
|
|
3765
4090
|
}
|
|
3766
4091
|
|
|
3767
|
-
/**
|
|
3768
|
-
* 3D 标签管理器,负责模型空间坐标拾取、DOM 标签投影和点击事件转发。
|
|
3769
|
-
*/
|
|
3770
4092
|
declare class Label {
|
|
3771
4093
|
private readonly engine;
|
|
3772
4094
|
private readonly manager;
|
|
3773
4095
|
private readonly worldToScreen;
|
|
3774
4096
|
private readonly raycaster;
|
|
3775
4097
|
constructor(engine: any);
|
|
3776
|
-
/** 开启一次 3D 模型点选,返回命中的世界坐标。 */
|
|
3777
4098
|
pickPoint(): Promise<LabelCoordinate | null>;
|
|
3778
4099
|
startPickPoint(callback?: (coordinate: LabelCoordinate | null) => void): Promise<LabelCoordinate | null>;
|
|
3779
|
-
/** 创建 3D 标签,坐标使用模型世界坐标 x/y/z。 */
|
|
3780
4100
|
createLabel(options: LabelCreateOptions): string;
|
|
3781
4101
|
updateLabel(id: string, options: LabelUpdateOptions): boolean;
|
|
3782
4102
|
deleteLabel(id: string): boolean;
|
|
@@ -3786,7 +4106,6 @@ declare class Label {
|
|
|
3786
4106
|
getLabels(): LabelInstance[];
|
|
3787
4107
|
onLabelClick(callback: LabelClickCallback): () => void;
|
|
3788
4108
|
offLabelClick(callback: LabelClickCallback): void;
|
|
3789
|
-
/** 每帧同步标签位置,避免相机旋转后标签滞留。 */
|
|
3790
4109
|
update(): void;
|
|
3791
4110
|
dispose(): void;
|
|
3792
4111
|
private projectCoordinate;
|
|
@@ -4913,6 +5232,7 @@ declare class ModelEdge {
|
|
|
4913
5232
|
private highlightEdgeGroup;
|
|
4914
5233
|
private material;
|
|
4915
5234
|
private highlightEdgeMaterial;
|
|
5235
|
+
private baseOpacity;
|
|
4916
5236
|
private modelEdgeLoaded;
|
|
4917
5237
|
private modelEdgeLoadingPromise;
|
|
4918
5238
|
private indexes;
|
|
@@ -4922,6 +5242,7 @@ declare class ModelEdge {
|
|
|
4922
5242
|
disActive(): void;
|
|
4923
5243
|
isEnabled(): boolean;
|
|
4924
5244
|
getOpacity(): number;
|
|
5245
|
+
update(): void;
|
|
4925
5246
|
private hasPendingModelEdges;
|
|
4926
5247
|
private loadZipJsonAsync;
|
|
4927
5248
|
private ensureModelEdgeData;
|