@terra.gl/core 0.0.1-alpha.34 → 0.0.1-alpha.36

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
  * 云朵要素配置选项
@@ -923,12 +954,12 @@ export declare class DrawTool extends MapTool {
923
954
  private _destroyDraftLayer;
924
955
  }
925
956
 
926
- declare type DrawToolOptions = BaseDrawToolOptions & DrawToolStyleOptions;
957
+ export declare type DrawToolOptions = BaseDrawToolOptions & DrawToolStyleOptions;
927
958
 
928
959
  /**
929
960
  * 样式配置类型
930
961
  */
931
- declare type DrawToolStyleOptions = {
962
+ export declare type DrawToolStyleOptions = {
932
963
  /** 主几何样式(点 / 线 / 面) */
933
964
  geometryStyle?: StyleInput;
934
965
  /**
@@ -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
@@ -3006,17 +3040,17 @@ declare class Map extends Map_base {
3006
3040
  declare const Map_base: {
3007
3041
  new (...args: any[]): {
3008
3042
  [key: string]: any;
3009
- _handlers?: Handler[];
3043
+ _handlers?: default_2[];
3010
3044
  addHandler(name: string | number, handlerClass: new (arg0: /*elided*/ any) => any): /*elided*/ any;
3011
3045
  removeHandler(name: string | number): /*elided*/ any;
3012
3046
  _clearHandlers(): void;
3013
3047
  };
3014
3048
  } & {
3015
3049
  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;
3050
+ eventClass: EventClass_2;
3051
+ on: (type: string, listener: (data?: any) => void) => EventClass_2;
3052
+ trigger: (type: string, data?: any) => EventClass_2;
3053
+ off: (type: string, listener: (...args: any[]) => void) => EventClass_2;
3020
3054
  };
3021
3055
  } & {
3022
3056
  new (...args: any[]): {
@@ -3206,10 +3240,10 @@ declare class Map extends Map_base {
3206
3240
 
3207
3241
  declare const MapTool_base: {
3208
3242
  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;
3243
+ eventClass: EventClass_3;
3244
+ on: (type: string, listener: (data?: any) => void) => EventClass_3;
3245
+ trigger: (type: string, data?: any) => EventClass_3;
3246
+ off: (type: string, listener: (...args: any[]) => void) => EventClass_3;
3213
3247
  };
3214
3248
  } & {
3215
3249
  new (...args: any[]): {
@@ -3220,14 +3254,14 @@ declare class Map extends Map_base {
3220
3254
  _initHooks?: Function[];
3221
3255
  proxyOptions(): /*elided*/ any;
3222
3256
  callInitHooks(): /*elided*/ any;
3223
- setOptions(options: ClassOptions): /*elided*/ any;
3224
- config(conf?: string | ClassOptions, value?: any): ClassOptions | /*elided*/ any;
3225
- onConfig(_conf: ClassOptions): void;
3257
+ setOptions(options: ClassOptions_2): /*elided*/ any;
3258
+ config(conf?: string | ClassOptions_2, value?: any): ClassOptions_2 | /*elided*/ any;
3259
+ onConfig(_conf: ClassOptions_2): void;
3226
3260
  _visitInitHooks(proto: {
3227
3261
  _initHooks: any;
3228
3262
  }): void;
3229
3263
  };
3230
- mergeOptions(options: ClassOptions): /*elided*/ any & typeof EmptyBase;
3264
+ mergeOptions(options: ClassOptions_2): /*elided*/ any & typeof EmptyBase;
3231
3265
  addInitHook(fn: Function | string, ...args: any[]): /*elided*/ any & typeof EmptyBase;
3232
3266
  include(...sources: any[]): /*elided*/ any & typeof EmptyBase;
3233
3267
  } & typeof EmptyBase;
@@ -3235,7 +3269,7 @@ declare class Map extends Map_base {
3235
3269
  /**
3236
3270
  * MapTool 配置项(预留,将来可以扩展)
3237
3271
  */
3238
- declare type MapToolOptions = ClassOptions & {};
3272
+ declare type MapToolOptions = ClassOptions_2 & {};
3239
3273
 
3240
3274
  /**
3241
3275
  * Martini网格瓦片生成器
@@ -4137,6 +4171,24 @@ declare class Map extends Map_base {
4137
4171
  * @returns 是否应用成功
4138
4172
  */
4139
4173
  private _applyLineStyle;
4174
+ /**
4175
+ * 应用流动管线样式
4176
+ * @param object 目标对象
4177
+ * @returns 是否应用成功
4178
+ */
4179
+ private _applyFlowLineStyle;
4180
+ /**
4181
+ * 应用箭头流动线样式
4182
+ * @param object 目标对象
4183
+ * @returns 是否应用成功
4184
+ */
4185
+ private _applyArrowLineStyle;
4186
+ /**
4187
+ * 应用流动纹理管线样式
4188
+ * @param object 目标对象
4189
+ * @returns 是否应用成功
4190
+ */
4191
+ private _applyFlowTextureLineStyle;
4140
4192
  /**
4141
4193
  * 应用多边形样式
4142
4194
  * @param object 目标对象
@@ -4208,7 +4260,7 @@ declare class Map extends Map_base {
4208
4260
  /**
4209
4261
  * 样式配置联合类型
4210
4262
  */
4211
- export declare type StyleConfig = PointStyle | BaseLineStyle | PipelineStyle | ModelStyle | CustomStyle | BasePolygonStyle | ExtrudeStyle | WaterStyle | CloudStyle | BaseWaterStyle | LabelStyle | IconLabelStyle;
4263
+ export declare type StyleConfig = PointStyle | BaseLineStyle | PipelineStyle | FlowLineStyle | ArrowLineStyle | FlowTextureLineStyle | ModelStyle | CustomStyle | BasePolygonStyle | ExtrudeStyle | WaterStyle | CloudStyle | BaseWaterStyle | LabelStyle | IconLabelStyle | IconPointStyle | BasicPointStyle;
4212
4264
 
4213
4265
  /**
4214
4266
  * 样式输入类型
@@ -4670,7 +4722,7 @@ declare class Map extends Map_base {
4670
4722
  /** Set vector tile source */
4671
4723
  set vtSource(value: ISource | undefined);
4672
4724
  /** Loader manager */
4673
- manager: TileLoadingManager;
4725
+ manager: TileLoadingManager_2;
4674
4726
  /**
4675
4727
  * Load getmetry and materail of tile from x, y and z coordinate.
4676
4728
  *
@@ -4852,20 +4904,20 @@ declare class Map extends Map_base {
4852
4904
  * @param geo 地理坐标
4853
4905
  * @returns 地面信息
4854
4906
  */
4855
- getLocalInfoFromGeo(geo: Vector3): LocationInfo | undefined;
4907
+ getLocalInfoFromGeo(geo: Vector3): LocationInfo_2 | undefined;
4856
4908
  /**
4857
4909
  * 获取指定世界坐标的地面信息
4858
4910
  * @param pos 世界坐标
4859
4911
  * @returns 地面信息
4860
4912
  */
4861
- getLocalInfoFromWorld(pos: Vector3): LocationInfo | undefined;
4913
+ getLocalInfoFromWorld(pos: Vector3): LocationInfo_2 | undefined;
4862
4914
  /**
4863
4915
  * 获取指定屏幕坐标的地面信息
4864
4916
  * @param camera 相机
4865
4917
  * @param pointer 屏幕坐标
4866
4918
  * @returns 位置信息
4867
4919
  */
4868
- getLocalInfoFromScreen(camera: Camera, pointer: Vector2): LocationInfo | undefined;
4920
+ getLocalInfoFromScreen(camera: Camera, pointer: Vector2): LocationInfo_2 | undefined;
4869
4921
  /**
4870
4922
  * 获取当前正在下载的瓦片数量
4871
4923
  */
@@ -5484,6 +5536,10 @@ declare class Map extends Map_base {
5484
5536
  /** 是否启用调试模式 */
5485
5537
  private debug;
5486
5538
  private flyTween;
5539
+ /** 后期处理:bloom 管线 */
5540
+ private composer?;
5541
+ private renderPass?;
5542
+ private bloomPass?;
5487
5543
  /**
5488
5544
  * 获取雾效因子
5489
5545
  */
@@ -5731,6 +5787,16 @@ declare class Map extends Map_base {
5731
5787
  * 0 = 正上方俯视,90 = 水平
5732
5788
  */
5733
5789
  polarDeg?: number;
5790
+ /** Bloom 后处理配置(可选) */
5791
+ bloom?: {
5792
+ enabled?: boolean;
5793
+ /** 辉光强度,对应 UnrealBloomPass 的 strength */
5794
+ strength?: number;
5795
+ /** 辉光扩散半径,对应 UnrealBloomPass 的 radius */
5796
+ radius?: number;
5797
+ /** 触发辉光的亮度阈值,对应 UnrealBloomPass 的 threshold */
5798
+ threshold?: number;
5799
+ };
5734
5800
  };
5735
5801
 
5736
5802
  export declare function waitFor(condition: boolean, delay?: number): Promise<void>;