@terra.gl/core 0.0.1-alpha.35 → 0.0.1-alpha.40

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
@@ -2,15 +2,20 @@ import { AmbientLight } from 'three';
2
2
  import { BaseEvent } from 'three';
3
3
  import { BufferGeometry } from 'three';
4
4
  import { Camera } from 'three';
5
+ import { ClassOptions } from '../core/mixins';
5
6
  import { Clouds } from '@pmndrs/vanilla';
6
7
  import { Color } from 'three';
8
+ import { default as default_2 } from '../handler/Handler';
7
9
  import { DirectionalLight } from 'three';
10
+ import { EventClass as EventClass_2 } from '..';
11
+ import { EventClass as EventClass_3 } from '../..';
8
12
  import { EventDispatcher } from 'three';
9
13
  import { Group } from 'three';
10
14
  import { Intersection } from 'three';
11
15
  import { Line2 } from 'three-stdlib';
12
16
  import { LineString as LineString_2 } from 'geojson';
13
17
  import { LoadingManager } from 'three';
18
+ import { LocationInfo as LocationInfo_2 } from './util';
14
19
  import { MapControls } from 'three-stdlib';
15
20
  import { Material } from 'three';
16
21
  import { Matrix4 } from 'three';
@@ -33,6 +38,7 @@ import { Raycaster } from 'three';
33
38
  import { Scene } from 'three';
34
39
  import { Sprite } from 'three';
35
40
  import { Texture } from 'three';
41
+ import { TileLoadingManager as TileLoadingManager_2 } from './LoaderFactory';
36
42
  import { Vector2 } from 'three';
37
43
  import { Vector3 } from 'three';
38
44
  import { WebGLRenderer } from 'three';
@@ -177,6 +183,25 @@ export declare type ArcGisSourceOptions = SourceOptions & {
177
183
  style?: string;
178
184
  };
179
185
 
186
+ /**
187
+ * 箭头流动线样式
188
+ */
189
+ export declare interface ArrowLineStyle extends BaseStyle {
190
+ type: 'arrow-line';
191
+ /** 箭头颜色 */
192
+ color?: string | number | Color;
193
+ /** 线条宽度 */
194
+ width?: number;
195
+ /** 箭头长度 */
196
+ arrowLength?: number;
197
+ /** 箭头间距 */
198
+ arrowSpacing?: number;
199
+ /** 速度因子 */
200
+ speed?: number;
201
+ /** 拐角半径 */
202
+ cornerRadius?: number;
203
+ }
204
+
180
205
  /**
181
206
  * 几何体属性类型
182
207
  * @description 定义几何体的顶点属性数据结构
@@ -213,9 +238,6 @@ export declare type AttributesType = {
213
238
 
214
239
  export declare const author: any;
215
240
 
216
- declare class Base {
217
- }
218
-
219
241
  declare type BaseDrawToolOptions = MapToolOptions & {
220
242
  /** 模式名称,例如 'line' / 'polygon' / 'point' */
221
243
  mode: string;
@@ -302,6 +324,15 @@ export declare interface BaseStyle {
302
324
  depthTest?: boolean;
303
325
  depthWrite?: boolean;
304
326
  transparent?: boolean;
327
+ /** 发光配置(可选,配合全局 bloom 后处理) */
328
+ bloom?: boolean | {
329
+ /** 是否启用发光(默认 true) */
330
+ enabled?: boolean;
331
+ /** 发光强度(默认 1.0) */
332
+ intensity?: number;
333
+ /** 发光颜色(默认 '#ffffff') */
334
+ color?: string;
335
+ };
305
336
  }
306
337
 
307
338
  /**
@@ -419,7 +450,7 @@ export declare interface BasicPointStyle extends BaseStyle {
419
450
  }
420
451
 
421
452
  /** 类选项类型 */
422
- declare type ClassOptions = Record<string, any>;
453
+ declare type ClassOptions_2 = Record<string, any>;
423
454
 
424
455
  /**
425
456
  * 云朵要素配置选项
@@ -1091,6 +1122,8 @@ declare abstract class Feature extends Feature_base implements ICollidable {
1091
1122
  private _isApplyingStyle;
1092
1123
  /** 是否正在初始化几何体 */
1093
1124
  private _isGeometryInitializing;
1125
+ /** 当前发光配置(如果有) */
1126
+ private _bloomConfig?;
1094
1127
  /** 避让相关状态 */
1095
1128
  private _collisionState;
1096
1129
  /** 碰撞检测配置 */
@@ -1135,6 +1168,28 @@ declare abstract class Feature extends Feature_base implements ICollidable {
1135
1168
  * @returns 当前样式或undefined
1136
1169
  */
1137
1170
  getStyle(): Style | undefined;
1171
+ /**
1172
+ * 设置当前要素的发光状态
1173
+ *
1174
+ * @param enabled 是否启用发光
1175
+ * @param options 可选:发光强度和颜色
1176
+ */
1177
+ setBloom(enabled: boolean, options?: {
1178
+ intensity?: number;
1179
+ color?: string;
1180
+ }): this;
1181
+ /**
1182
+ * 获取当前要素的发光配置
1183
+ */
1184
+ getBloom(): {
1185
+ enabled: boolean;
1186
+ intensity: number;
1187
+ color: string;
1188
+ } | undefined;
1189
+ /**
1190
+ * 内部方法:把发光配置应用到 Three 对象上
1191
+ */
1192
+ private _applyBloomToObject;
1138
1193
  /**
1139
1194
  * 应用样式(带重试机制)
1140
1195
  *
@@ -1325,17 +1380,17 @@ declare abstract class Feature extends Feature_base implements ICollidable {
1325
1380
  declare const Feature_base: {
1326
1381
  new (...args: any[]): {
1327
1382
  [key: string]: any;
1328
- _handlers?: Handler[];
1383
+ _handlers?: default_2[];
1329
1384
  addHandler(name: string | number, handlerClass: new (arg0: /*elided*/ any) => any): /*elided*/ any;
1330
1385
  removeHandler(name: string | number): /*elided*/ any;
1331
1386
  _clearHandlers(): void;
1332
1387
  };
1333
1388
  } & {
1334
1389
  new (...args: any[]): {
1335
- eventClass: EventClass;
1336
- on: (type: string, listener: (data?: any) => void) => EventClass;
1337
- trigger: (type: string, data?: any) => EventClass;
1338
- off: (type: string, listener: (... /** Three.js几何对象 */args: any[]) => void) => EventClass;
1390
+ eventClass: EventClass_2;
1391
+ on: (type: string, listener: (data?: any) => void) => EventClass_2;
1392
+ trigger: (type: string, data?: any) => EventClass_2;
1393
+ off: (type: string, listener: (...args: any[]) => void) => EventClass_2;
1339
1394
  };
1340
1395
  } & {
1341
1396
  new (...args: any[]): {
@@ -1380,6 +1435,52 @@ declare type FeatureOptions = {
1380
1435
  rotateAngle?: number;
1381
1436
  };
1382
1437
 
1438
+ /**
1439
+ * 流动管线样式配置
1440
+ */
1441
+ export declare interface FlowLineStyle extends BaseStyle {
1442
+ type: 'flow-tube-line';
1443
+ /** 管道颜色 */
1444
+ color?: string | number | Color;
1445
+ /** 管道半径 */
1446
+ radius: number;
1447
+ /** 径向分段数 */
1448
+ radialSegments?: number;
1449
+ /** 管长分段数 */
1450
+ tubularSegments?: number;
1451
+ /** 速度因子 */
1452
+ speed?: number;
1453
+ /** 条纹宽度 */
1454
+ stripeWidth?: number;
1455
+ /** 条纹间距 */
1456
+ stripeSpacing?: number;
1457
+ /** 条纹颜色 */
1458
+ stripeColor?: string | number | Color;
1459
+ /** 拐角半径 */
1460
+ cornerRadius?: number;
1461
+ /** 是否只显示箭头,隐藏管道 */
1462
+ arrowOnly?: boolean;
1463
+ }
1464
+
1465
+ /**
1466
+ * 纹理流动线样式配置(发光箭头线等)
1467
+ */
1468
+ export declare interface FlowTextureLineStyle extends BaseStyle {
1469
+ type: 'flow-texture-line';
1470
+ /** 线颜色(与纹理颜色相乘,用于整体调色) */
1471
+ color?: string | number | Color;
1472
+ /** 线宽(世界坐标单位) */
1473
+ width?: number;
1474
+ /** 流动纹理 URL,例如箭头贴图 */
1475
+ flowTexture: string;
1476
+ /** 流动速度,越大流动越快 */
1477
+ speed?: number;
1478
+ /** 纹理沿线方向重复次数(控制箭头密度) */
1479
+ repeat?: number;
1480
+ /** 拐角半径(预留,与 FlowLineStyle 含义一致) */
1481
+ cornerRadius?: number;
1482
+ }
1483
+
1383
1484
  /**
1384
1485
  * flyTo方法参数接口
1385
1486
  */
@@ -1556,80 +1657,6 @@ export declare function getSafeTileUrlAndBounds(source: ISource, x: number, y: n
1556
1657
  clipBounds: [number, number, number, number];
1557
1658
  };
1558
1659
 
1559
- /**
1560
- * 所有交互Handler类的基类
1561
- *
1562
- * @english
1563
- * Base class for all the interaction handlers
1564
- * @category handler
1565
- * @abstract
1566
- * @protected
1567
- */
1568
- declare abstract class Handler extends Handler_base {
1569
- target: any;
1570
- dom?: HTMLElement;
1571
- _enabled: boolean;
1572
- constructor(target: any);
1573
- abstract addHooks(): void;
1574
- abstract removeHooks(): void;
1575
- /**
1576
- * 启用Handler
1577
- *
1578
- * @english
1579
- * Enables the handler
1580
- */
1581
- enable(): this;
1582
- /**
1583
- * 停用Handler
1584
- *
1585
- * @english
1586
- * Disables the handler
1587
- */
1588
- disable(): this;
1589
- /**
1590
- * 检查Handler是否启用
1591
- *
1592
- * @english
1593
- * Returns true if the handler is enabled.
1594
- */
1595
- enabled(): boolean;
1596
- /**
1597
- * 从target上移除Handler
1598
- *
1599
- * @english
1600
- * remove handler from target
1601
- */
1602
- remove(): void;
1603
- }
1604
-
1605
- declare const Handler_base: {
1606
- new (...args: any[]): {
1607
- eventClass: EventClass;
1608
- on: (type: string, listener: (data?: any) => void) => EventClass;
1609
- trigger: (type: string, data?: any) => EventClass;
1610
- off: (type: string, listener: (...args: any[]) => void) => EventClass;
1611
- };
1612
- } & {
1613
- new (...args: any[]): {
1614
- [x: string]: any;
1615
- options: any;
1616
- _isUpdatingOptions?: boolean;
1617
- _initHooksCalled?: boolean;
1618
- _initHooks?: Function[];
1619
- proxyOptions(): /*elided*/ any;
1620
- callInitHooks(): /*elided*/ any;
1621
- setOptions(options: ClassOptions): /*elided*/ any;
1622
- config(conf?: string | ClassOptions, value?: any): /*elided*/ any | ClassOptions;
1623
- onConfig(_conf: ClassOptions): void;
1624
- _visitInitHooks(proto: {
1625
- _initHooks: any;
1626
- }): void;
1627
- };
1628
- mergeOptions(options: ClassOptions): /*elided*/ any & typeof Base;
1629
- addInitHook(fn: Function | string, ...args: any[]): /*elided*/ any & typeof Base;
1630
- include(...sources: any[]): /*elided*/ any & typeof Base;
1631
- } & typeof Base;
1632
-
1633
1660
  /**
1634
1661
  * 包围盒接口
1635
1662
  *
@@ -2360,17 +2387,17 @@ declare abstract class Layer extends Layer_base {
2360
2387
  declare const Layer_base: {
2361
2388
  new (...args: any[]): {
2362
2389
  [key: string]: any;
2363
- _handlers?: Handler[];
2390
+ _handlers?: default_2[];
2364
2391
  addHandler(name: string | number, handlerClass: new (arg0: /*elided*/ any) => any): /*elided*/ any;
2365
2392
  removeHandler(name: string | number): /*elided*/ any;
2366
2393
  _clearHandlers(): void;
2367
2394
  };
2368
2395
  } & {
2369
2396
  new (...args: any[]): {
2370
- eventClass: EventClass;
2371
- on: (type: string, listener: (data?: any) => void) => EventClass;
2372
- trigger: (type: string, data?: any) => EventClass;
2373
- off: (type: string, listener: (...args: any[]) => void) => EventClass;
2397
+ eventClass: EventClass_2;
2398
+ on: (type: string, listener: (data?: any) => void) => EventClass_2;
2399
+ trigger: (type: string, data?: any) => EventClass_2;
2400
+ off: (type: string, listener: (...args: any[]) => void) => EventClass_2;
2374
2401
  };
2375
2402
  } & {
2376
2403
  new (...args: any[]): {
@@ -2579,6 +2606,13 @@ export declare class LineString extends Line {
2579
2606
  * - 'basic-line': 基础线样式
2580
2607
  */
2581
2608
  _createObject(style: Style): Promise<Object3D>;
2609
+ /**
2610
+ * 更新几何体
2611
+ *
2612
+ * @description
2613
+ * 更新线几何体的顶点坐标,并重新计算边界信息
2614
+ * 自动处理与地图中心的位置关系
2615
+ */
2582
2616
  /**
2583
2617
  * 更新几何体
2584
2618
  *
@@ -2599,7 +2633,7 @@ export declare type LineStringOptions = LineOptions & {};
2599
2633
  /**
2600
2634
  * 面样式联合类型
2601
2635
  */
2602
- export declare type LineStyle = BaseLineStyle | PipelineStyle;
2636
+ export declare type LineStyle = BaseLineStyle | PipelineStyle | FlowLineStyle | FlowTextureLineStyle;
2603
2637
 
2604
2638
  /**
2605
2639
  * Factory for loader
@@ -3000,23 +3034,38 @@ declare class Map extends Map_base {
3000
3034
  * @param options 飞行参数对象
3001
3035
  */
3002
3036
  flyToPoint(options: FlyToPointOptions): void;
3037
+ /**
3038
+ * 销毁地图实例,释放所有资源
3039
+ * @description
3040
+ * 该方法会清理以下资源:
3041
+ * 1. 移除所有事件监听器
3042
+ * 2. 清空所有图层
3043
+ * 3. 销毁碰撞引擎
3044
+ * 4. 销毁viewer(包括renderer、scene、controls等)
3045
+ * 5. 清理DOM容器
3046
+ */
3047
+ destroy(): void;
3003
3048
  }
3004
3049
  export { Map_2 as Map }
3005
3050
 
3006
3051
  declare const Map_base: {
3007
3052
  new (...args: any[]): {
3008
3053
  [key: string]: any;
3009
- _handlers?: Handler[];
3054
+ _handlers?: default_2[];
3010
3055
  addHandler(name: string | number, handlerClass: new (arg0: /*elided*/ any) => any): /*elided*/ any;
3011
3056
  removeHandler(name: string | number): /*elided*/ any;
3012
3057
  _clearHandlers(): void;
3013
3058
  };
3014
3059
  } & {
3015
3060
  new (...args: any[]): {
3016
- eventClass: EventClass;
3017
- on: (type: string, listener: (data?: any) => void) => EventClass;
3018
- trigger: (type: string, data?: any) => EventClass;
3019
- off: (type: string, listener: (...args: any[]) => void) => EventClass;
3061
+ eventClass: EventClass_2;
3062
+ on: (type: string, listener: (data?: any) => void) => EventClass_2;
3063
+ trigger: (type: string, data?: any) => EventClass_2;
3064
+ off: (type: string, listener: (
3065
+ /**
3066
+ * 创建一个空基类(仅用于混入起点)
3067
+ */
3068
+ ...args: any[]) => void) => EventClass_2;
3020
3069
  };
3021
3070
  } & {
3022
3071
  new (...args: any[]): {
@@ -3206,10 +3255,10 @@ declare class Map extends Map_base {
3206
3255
 
3207
3256
  declare const MapTool_base: {
3208
3257
  new (...args: any[]): {
3209
- eventClass: EventClass;
3210
- on: (type: string, listener: (data?: any) => void) => EventClass;
3211
- trigger: (type: string, data?: any) => EventClass;
3212
- off: (type: string, listener: (...args: any[]) => void) => EventClass;
3258
+ eventClass: EventClass_3;
3259
+ on: (type: string, listener: (data?: any) => void) => EventClass_3;
3260
+ trigger: (type: string, data?: any) => EventClass_3;
3261
+ off: (type: string, listener: (...args: any[]) => void) => EventClass_3;
3213
3262
  };
3214
3263
  } & {
3215
3264
  new (...args: any[]): {
@@ -3220,14 +3269,14 @@ declare class Map extends Map_base {
3220
3269
  _initHooks?: Function[];
3221
3270
  proxyOptions(): /*elided*/ any;
3222
3271
  callInitHooks(): /*elided*/ any;
3223
- setOptions(options: ClassOptions): /*elided*/ any;
3224
- config(conf?: string | ClassOptions, value?: any): ClassOptions | /*elided*/ any;
3225
- onConfig(_conf: ClassOptions): void;
3272
+ setOptions(options: ClassOptions_2): /*elided*/ any;
3273
+ config(conf?: string | ClassOptions_2, value?: any): ClassOptions_2 | /*elided*/ any;
3274
+ onConfig(_conf: ClassOptions_2): void;
3226
3275
  _visitInitHooks(proto: {
3227
3276
  _initHooks: any;
3228
3277
  }): void;
3229
3278
  };
3230
- mergeOptions(options: ClassOptions): /*elided*/ any & typeof EmptyBase;
3279
+ mergeOptions(options: ClassOptions_2): /*elided*/ any & typeof EmptyBase;
3231
3280
  addInitHook(fn: Function | string, ...args: any[]): /*elided*/ any & typeof EmptyBase;
3232
3281
  include(...sources: any[]): /*elided*/ any & typeof EmptyBase;
3233
3282
  } & typeof EmptyBase;
@@ -3235,7 +3284,7 @@ declare class Map extends Map_base {
3235
3284
  /**
3236
3285
  * MapTool 配置项(预留,将来可以扩展)
3237
3286
  */
3238
- declare type MapToolOptions = ClassOptions & {};
3287
+ declare type MapToolOptions = ClassOptions_2 & {};
3239
3288
 
3240
3289
  /**
3241
3290
  * Martini网格瓦片生成器
@@ -4137,6 +4186,24 @@ declare class Map extends Map_base {
4137
4186
  * @returns 是否应用成功
4138
4187
  */
4139
4188
  private _applyLineStyle;
4189
+ /**
4190
+ * 应用流动管线样式
4191
+ * @param object 目标对象
4192
+ * @returns 是否应用成功
4193
+ */
4194
+ private _applyFlowLineStyle;
4195
+ /**
4196
+ * 应用箭头流动线样式
4197
+ * @param object 目标对象
4198
+ * @returns 是否应用成功
4199
+ */
4200
+ private _applyArrowLineStyle;
4201
+ /**
4202
+ * 应用流动纹理管线样式
4203
+ * @param object 目标对象
4204
+ * @returns 是否应用成功
4205
+ */
4206
+ private _applyFlowTextureLineStyle;
4140
4207
  /**
4141
4208
  * 应用多边形样式
4142
4209
  * @param object 目标对象
@@ -4208,7 +4275,7 @@ declare class Map extends Map_base {
4208
4275
  /**
4209
4276
  * 样式配置联合类型
4210
4277
  */
4211
- export declare type StyleConfig = PointStyle | BaseLineStyle | PipelineStyle | ModelStyle | CustomStyle | BasePolygonStyle | ExtrudeStyle | WaterStyle | CloudStyle | BaseWaterStyle | LabelStyle | IconLabelStyle;
4278
+ export declare type StyleConfig = PointStyle | BaseLineStyle | PipelineStyle | FlowLineStyle | ArrowLineStyle | FlowTextureLineStyle | ModelStyle | CustomStyle | BasePolygonStyle | ExtrudeStyle | WaterStyle | CloudStyle | BaseWaterStyle | LabelStyle | IconLabelStyle | IconPointStyle | BasicPointStyle;
4212
4279
 
4213
4280
  /**
4214
4281
  * 样式输入类型
@@ -4670,7 +4737,7 @@ declare class Map extends Map_base {
4670
4737
  /** Set vector tile source */
4671
4738
  set vtSource(value: ISource | undefined);
4672
4739
  /** Loader manager */
4673
- manager: TileLoadingManager;
4740
+ manager: TileLoadingManager_2;
4674
4741
  /**
4675
4742
  * Load getmetry and materail of tile from x, y and z coordinate.
4676
4743
  *
@@ -4852,20 +4919,20 @@ declare class Map extends Map_base {
4852
4919
  * @param geo 地理坐标
4853
4920
  * @returns 地面信息
4854
4921
  */
4855
- getLocalInfoFromGeo(geo: Vector3): LocationInfo | undefined;
4922
+ getLocalInfoFromGeo(geo: Vector3): LocationInfo_2 | undefined;
4856
4923
  /**
4857
4924
  * 获取指定世界坐标的地面信息
4858
4925
  * @param pos 世界坐标
4859
4926
  * @returns 地面信息
4860
4927
  */
4861
- getLocalInfoFromWorld(pos: Vector3): LocationInfo | undefined;
4928
+ getLocalInfoFromWorld(pos: Vector3): LocationInfo_2 | undefined;
4862
4929
  /**
4863
4930
  * 获取指定屏幕坐标的地面信息
4864
4931
  * @param camera 相机
4865
4932
  * @param pointer 屏幕坐标
4866
4933
  * @returns 位置信息
4867
4934
  */
4868
- getLocalInfoFromScreen(camera: Camera, pointer: Vector2): LocationInfo | undefined;
4935
+ getLocalInfoFromScreen(camera: Camera, pointer: Vector2): LocationInfo_2 | undefined;
4869
4936
  /**
4870
4937
  * 获取当前正在下载的瓦片数量
4871
4938
  */
@@ -5484,6 +5551,10 @@ declare class Map extends Map_base {
5484
5551
  /** 是否启用调试模式 */
5485
5552
  private debug;
5486
5553
  private flyTween;
5554
+ /** 后期处理:bloom 管线 */
5555
+ private composer?;
5556
+ private renderPass?;
5557
+ private bloomPass?;
5487
5558
  /**
5488
5559
  * 获取雾效因子
5489
5560
  */
@@ -5665,6 +5736,23 @@ declare class Map extends Map_base {
5665
5736
  */
5666
5737
  getWidthHeight(): number[];
5667
5738
  _createGorund(): Mesh<PlaneGeometry, MeshStandardMaterial, Object3DEventMap>;
5739
+ /**
5740
+ * 销毁viewer实例,释放所有资源
5741
+ * @description
5742
+ * 该方法会清理以下资源:
5743
+ * 1. 停止动画循环
5744
+ * 2. 销毁控制器
5745
+ * 3. 清理场景中的所有对象
5746
+ * 4. 销毁渲染器
5747
+ * 5. 销毁后期处理器
5748
+ * 6. 移除DOM元素
5749
+ */
5750
+ destroy(): void;
5751
+ /**
5752
+ * 销毁材质资源
5753
+ * @param material 要销毁的材质
5754
+ */
5755
+ private _disposeMaterial;
5668
5756
  }
5669
5757
 
5670
5758
  /**
@@ -5731,6 +5819,16 @@ declare class Map extends Map_base {
5731
5819
  * 0 = 正上方俯视,90 = 水平
5732
5820
  */
5733
5821
  polarDeg?: number;
5822
+ /** Bloom 后处理配置(可选) */
5823
+ bloom?: {
5824
+ enabled?: boolean;
5825
+ /** 辉光强度,对应 UnrealBloomPass 的 strength */
5826
+ strength?: number;
5827
+ /** 辉光扩散半径,对应 UnrealBloomPass 的 radius */
5828
+ radius?: number;
5829
+ /** 触发辉光的亮度阈值,对应 UnrealBloomPass 的 threshold */
5830
+ threshold?: number;
5831
+ };
5734
5832
  };
5735
5833
 
5736
5834
  export declare function waitFor(condition: boolean, delay?: number): Promise<void>;