iflow-engine-base 3.12.7 → 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 {
@@ -2533,6 +2544,8 @@ declare class EngineKernelV2 {
2533
2544
  modelExplode: ModelExplode;
2534
2545
  /** 材质编辑器,提供 DOM 面板、材质修改记录读取和一键还原能力。 */
2535
2546
  materialTool: MaterialTool;
2547
+ rxQuotaListMapper: RxQuotaListMapper;
2548
+ filterLoaderModel: FilterLoaderModel;
2536
2549
  models: any[];
2537
2550
  reactBoundingClientRect: {
2538
2551
  left: number;
@@ -3267,6 +3280,23 @@ declare interface FabricDrawStyle {
3267
3280
 
3268
3281
  declare type FabricDrawType = 'none' | 'line' | 'arrow' | 'rect' | 'circle' | 'text' | 'cloudline';
3269
3282
 
3283
+ declare class FilterLoaderModel {
3284
+ private engine;
3285
+ private continusIds;
3286
+ constructor(engine: any);
3287
+ /**
3288
+ * 基于已加载的属性数据构建当前模型的过滤 id 集合。
3289
+ * 默认不过滤,业务侧只需要把 shouldFilterId 换成真实规则即可。
3290
+ */
3291
+ buildContinueIds(url: string): void;
3292
+ setContinueIds(url: string, ids: Array<string | number>): void;
3293
+ getContinueIds(url: string): number[];
3294
+ getContinueIdSet(url: string): Set<number>;
3295
+ hasContinueId(url: string, id: string | number): boolean;
3296
+ clear(url?: string): void;
3297
+ private shouldFilterId;
3298
+ }
3299
+
3270
3300
  declare interface GaussianFpsInfo {
3271
3301
  fps: number;
3272
3302
  frameTimeMs: number;
@@ -5737,6 +5767,7 @@ declare class ModelEdge {
5737
5767
  private groupVisibleBeforeExplode;
5738
5768
  private highlightVisibleBeforeExplode;
5739
5769
  private getModelEntry;
5770
+ private getFilteredIdSet;
5740
5771
  private getOrCreateItemIndex;
5741
5772
  private getEdgePointsByIndex;
5742
5773
  private getLineByUrl;
@@ -6308,8 +6339,12 @@ declare class ModelProperties {
6308
6339
  constructor(engine: any);
6309
6340
  init(): void;
6310
6341
  updateExtended(url: string, data: any): void;
6342
+ loadProperties(url: string, callback: any): void;
6311
6343
  getModelPropertiesWithName(url: string, id: string, names: [], callback: (properties: any) => void): void;
6312
- getModelProperties(url: string, id: string, callback: (properties: any) => void): void;
6344
+ getModelProperties(url: string, id: string, callback: (properties: any) => void): {
6345
+ properties: any[];
6346
+ materials: any[];
6347
+ };
6313
6348
  }
6314
6349
 
6315
6350
  declare class ModelToolModule {
@@ -6349,8 +6384,8 @@ declare class ModelToolModule {
6349
6384
  unhighlightAllModels(isClear?: boolean): void;
6350
6385
  hideModel(models: any): void;
6351
6386
  showModel(models: any, skipStateCleanup?: boolean): void;
6352
- isolateModel(models: any): void;
6353
- translucentOtherModel(models: any): void;
6387
+ isolateModel(models: any, opacity?: number): void;
6388
+ translucentOtherModel(models: any, opacity?: number): void;
6354
6389
  /** 设置构件自定义颜色,入参与高亮接口一致:[{ url, ids }],同时兼容旧的直接 Mesh 入参。 */
6355
6390
  setModelColor(models: any, color?: THREE.ColorRepresentation, opacity?: number): void;
6356
6391
  /** 恢复指定构件的自定义颜色,入参与高亮接口一致:[{ url, ids }]。 */
@@ -6394,7 +6429,7 @@ declare class ModelToolModule {
6394
6429
  private createCustomInstanceBatch;
6395
6430
  private normalizeOpacity;
6396
6431
  private clearMaterialTextures;
6397
- translucentModel(models: any[]): void;
6432
+ translucentModel(models: any[], opacity?: number): void;
6398
6433
  unTranslucentModel(): void;
6399
6434
  hideAllModels(): void;
6400
6435
  showAllModels(): void;
@@ -7495,6 +7530,21 @@ export declare interface RoamLookDirection {
7495
7530
  vertical?: 1 | -1;
7496
7531
  }
7497
7532
 
7533
+ declare class RxQuotaListMapper {
7534
+ private engine;
7535
+ private codeMap;
7536
+ private continusIds;
7537
+ constructor(engine: any);
7538
+ loadNodeMap(model_: any): void;
7539
+ seachModels(codes: string[]): {
7540
+ id: number;
7541
+ name: string;
7542
+ url: string;
7543
+ attibute: any[];
7544
+ }[];
7545
+ private setelementInfo;
7546
+ }
7547
+
7498
7548
  export declare interface SceneModelData extends Required<Omit<ModelPlaceOptions, 'id'>> {
7499
7549
  id: string;
7500
7550
  materials: SceneModelMaterial[];
@@ -8150,7 +8200,7 @@ declare class ViewCube {
8150
8200
  show(): void;
8151
8201
  CameraGoHome(time: number): void;
8152
8202
  cameraGoHome(time: number): void;
8153
- zoomToModel(box: any): void;
8203
+ zoomToModel(box: any, time?: number): void;
8154
8204
  zoomToModels(m: any): void;
8155
8205
  flyToModels(ms?: any[]): void;
8156
8206
  saveMainViewPort(): any;
@@ -8266,6 +8316,7 @@ declare class ViewerModuleGIS {
8266
8316
  }
8267
8317
 
8268
8318
  declare class ViewTree {
8319
+ private static readonly OPEN_VIEW_ANIMATION_DURATION;
8269
8320
  private engine;
8270
8321
  private dynamicElevationViewGenerator;
8271
8322
  /** 管理模型原生视图与运行时动态视图的统一入口。 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iflow-engine-base",
3
- "version": "3.12.7",
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",