@mapless/core 0.1.0 → 1.0.11
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.js +904 -141
- package/dist/types/Mapless/icons/icons.d.ts +1 -0
- package/dist/types/Mapless/icons/icons.d.ts.map +1 -1
- package/dist/types/Mapless/mana/movable.d.ts +19 -3
- package/dist/types/Mapless/mana/movable.d.ts.map +1 -1
- package/dist/types/Mapless/mana/newstation.d.ts.map +1 -1
- package/dist/types/Mapless/mana-3d/airspace.d.ts +41 -12
- package/dist/types/Mapless/mana-3d/airspace.d.ts.map +1 -1
- package/dist/types/Mapless/mana-3d/index.d.ts +4 -3
- package/dist/types/Mapless/mana-3d/index.d.ts.map +1 -1
- package/dist/types/Mapless/mana-3d/mapModel.d.ts +103 -3
- package/dist/types/Mapless/mana-3d/mapModel.d.ts.map +1 -1
- package/dist/types/Mapless/mana-three/index.d.ts +2 -1
- package/dist/types/Mapless/mana-three/index.d.ts.map +1 -1
- package/dist/types/Mapless/mana-three/instancedModel.d.ts +127 -0
- package/dist/types/Mapless/mana-three/instancedModel.d.ts.map +1 -0
- package/dist/types/Mapless/mana-three/line2Manager.d.ts +1 -1
- package/dist/types/Mapless/mana-three/line2Manager.d.ts.map +1 -1
- package/dist/types/Mapless/mana-three/three.d.ts +99 -1
- package/dist/types/Mapless/mana-three/three.d.ts.map +1 -1
- package/dist/types/Mapless/path/PathTracker.d.ts.map +1 -1
- package/dist/types/Mapless/path/attach.d.ts +1 -1
- package/dist/types/Mapless/path/attach.d.ts.map +1 -1
- package/dist/types/Mapless/path/strategies/click.d.ts.map +1 -1
- package/dist/types/Mapless/path/strategies/free.d.ts.map +1 -1
- package/dist/types/Mapless/types.d.ts +20 -0
- package/dist/types/Mapless/types.d.ts.map +1 -1
- package/dist/types/Three/MapThree.d.ts +39 -0
- package/dist/types/Three/MapThree.d.ts.map +1 -1
- package/dist/types/Three/ModelCache.d.ts +68 -0
- package/dist/types/Three/ModelCache.d.ts.map +1 -0
- package/dist/types/Three/types.d.ts +7 -12
- package/dist/types/Three/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/icons/icons.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/icons/icons.ts"],"names":[],"mappings":"AAkCA,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCV,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;CAStB,CAAC;AAGF,QAAA,MAAM,IAAI;;;CAGT,CAAC;AAEF,eAAe,KAAK,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Mapless } from '..';
|
|
2
2
|
import type { IdHubType } from '../core/IdHub';
|
|
3
3
|
import { EmitManager } from '../core/manager';
|
|
4
|
-
import type {
|
|
4
|
+
import type { Movable, MovableManagerEvents, MovableManagerOptions } from '../types';
|
|
5
5
|
type MovableIdHubType = IdHubType & {
|
|
6
6
|
detailLayerId: string;
|
|
7
7
|
simpleLayerId: string;
|
|
@@ -9,7 +9,11 @@ type MovableIdHubType = IdHubType & {
|
|
|
9
9
|
};
|
|
10
10
|
declare class MovableManager extends EmitManager<MovableManagerEvents, MovableIdHubType> {
|
|
11
11
|
private movables;
|
|
12
|
-
|
|
12
|
+
private iconRotationAlignment;
|
|
13
|
+
private showNameByDefault;
|
|
14
|
+
private iconBaseSize;
|
|
15
|
+
private circleBaseRadius;
|
|
16
|
+
constructor(mapless: Mapless, options?: MovableManagerOptions);
|
|
13
17
|
handleCoordSystemChange(_system: string | undefined): void;
|
|
14
18
|
createIdHub(_idHub?: IdHubType): void;
|
|
15
19
|
initLayers(): void;
|
|
@@ -57,10 +61,22 @@ declare class MovableManager extends EmitManager<MovableManagerEvents, MovableId
|
|
|
57
61
|
private setupClickHandler;
|
|
58
62
|
private setupHoverHandler;
|
|
59
63
|
fitBounds(ids?: string[], padding?: number): void;
|
|
64
|
+
/**
|
|
65
|
+
* 设置图标旋转对齐方式
|
|
66
|
+
* @param alignment 对齐方式: "map" | "viewport" | "auto"
|
|
67
|
+
* - map: 图标随地图旋转而旋转(默认,适用于车辆等)
|
|
68
|
+
* - viewport: 图标始终朝向屏幕上方
|
|
69
|
+
* - auto: 自动选择(当 icon-rotate 为 0 时使用 viewport,否则使用 map)
|
|
70
|
+
*/
|
|
71
|
+
setIconRotationAlignment(alignment: 'map' | 'viewport' | 'auto'): void;
|
|
72
|
+
/**
|
|
73
|
+
* 获取当前图标旋转对齐方式
|
|
74
|
+
*/
|
|
75
|
+
getIconRotationAlignment(): 'map' | 'viewport' | 'auto';
|
|
60
76
|
destroy(): void;
|
|
61
77
|
}
|
|
62
78
|
export default MovableManager;
|
|
63
|
-
export declare const attachMovable: (mapless: Mapless | undefined | null, name?: string) => MovableManager | undefined;
|
|
79
|
+
export declare const attachMovable: (mapless: Mapless | undefined | null, name?: string, options?: MovableManagerOptions) => MovableManager | undefined;
|
|
64
80
|
export declare const getMovable: (mapless: Mapless | undefined | null, name?: string) => MovableManager | undefined;
|
|
65
81
|
export declare const detachMovable: (mapless: Mapless | undefined | null, name?: string) => boolean | undefined;
|
|
66
82
|
//# sourceMappingURL=movable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"movable.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana/movable.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"movable.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana/movable.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EACV,OAAO,EACP,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAElB,KAAK,gBAAgB,GAAG,SAAS,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAgBF,cAAM,cAAe,SAAQ,WAAW,CACtC,oBAAoB,EACpB,gBAAgB,CACjB;IACC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAS;gBAErB,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAYpD,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAM1D,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;IAa9B,UAAU;IA0EnB,UAAU,GAAI,SAAS,OAAO,EAAE,sBAAoB;;;;;;;;;;;;;;;;MAuBlD;IAEF,WAAW,GAAI,UAAU,OAAO,EAAE,EAAE,sBAAoB;;;;;;;;;;;;;;;;QAEtD;IAEF,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,YAAY,UAAO;IASrD,cAAc,CAAC,QAAQ,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE;IAqBvD,aAAa,EAAE,OAAO,GAAG,IAAI,CAAQ;IAErC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IAuBzC,WAAW;IAWX,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE;IAS5B,aAAa;IAKb,OAAO,CAAC,iBAAiB;IAsCzB,OAAO,CAAC,iBAAiB;IAsBhB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAgB1D;;;;;;OAMG;IACH,wBAAwB,CAAC,SAAS,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI;IAWtE;;OAEG;IACH,wBAAwB,IAAI,KAAK,GAAG,UAAU,GAAG,MAAM;IAIvD,OAAO,IAAI,IAAI;CAIhB;AAED,eAAe,cAAc,CAAC;AAE9B,eAAO,MAAM,aAAa,GACxB,SAAS,OAAO,GAAG,SAAS,GAAG,IAAI,EACnC,OAAO,MAAM,EACb,UAAU,qBAAqB,+BACe,CAAC;AACjD,eAAO,MAAM,UAAU,GACrB,SAAS,OAAO,GAAG,SAAS,GAAG,IAAI,EACnC,OAAO,MAAM,+BACwB,CAAC;AACxC,eAAO,MAAM,aAAa,GACxB,SAAS,OAAO,GAAG,SAAS,GAAG,IAAI,EACnC,OAAO,MAAM,wBAC0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newstation.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana/newstation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,oCAAoC,EACrC,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,IAAI,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EACV,cAAc,EACd,wBAAwB,EACxB,OAAO,EACP,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAElB,KAAK,mBAAmB,GAAG,SAAS,GAAG;IACrC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,oCAAoC,CAAC,kBAAkB,CAYjF,CAAC;AAEJ;;;;GAIG;AACH,cAAM,iBAAkB,SAAQ,WAAW,CACzC,oBAAoB,EACpB,mBAAmB,CACpB;IACC,OAAO,CAAC,QAAQ,CAAiB;IAE1B,UAAU,UAAQ;IAClB,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAC3D;IAEZ,WAAW;IAIX,aAAa;IASb,OAAO,CAAC,oBAAoB,CAAS;IAErC,OAAO,CAAC,mBAAmB,CAAQ;gBAGvB,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc;IAc7C,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAM1D,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;IAe9B,UAAU;IAsIV,cAAc,GAAI,KAAK,MAAM,UA8BpC;IAEF,OAAO,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"newstation.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana/newstation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,oCAAoC,EACrC,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,IAAI,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EACV,cAAc,EACd,wBAAwB,EACxB,OAAO,EACP,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAElB,KAAK,mBAAmB,GAAG,SAAS,GAAG;IACrC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,oCAAoC,CAAC,kBAAkB,CAYjF,CAAC;AAEJ;;;;GAIG;AACH,cAAM,iBAAkB,SAAQ,WAAW,CACzC,oBAAoB,EACpB,mBAAmB,CACpB;IACC,OAAO,CAAC,QAAQ,CAAiB;IAE1B,UAAU,UAAQ;IAClB,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAC3D;IAEZ,WAAW;IAIX,aAAa;IASb,OAAO,CAAC,oBAAoB,CAAS;IAErC,OAAO,CAAC,mBAAmB,CAAQ;gBAGvB,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc;IAc7C,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAM1D,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS;IAe9B,UAAU;IAsIV,cAAc,GAAI,KAAK,MAAM,UA8BpC;IAEF,OAAO,CAAC,WAAW,CAajB;IAEF,WAAW,GAAI,UAAU,OAAO,EAAE;;;;yBAoBlB,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;;;;;;QAa9B;IAEF,YAAY,GACV,UAAU,OAAO,EAAE,EACnB,cAAc,MAAM,EAAE,EACtB,+BAA6B,UAmB7B;IAEF,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE;IAgBlC,kBAAkB,CAChB,WAAW,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EACnC,oBAAoB,UAAO,EAC3B,OAAO,UAAO;IAkBhB,OAAO,CAAC,iBAAiB,CAAS;IAElC,mBAAmB,GAAI,kBAAkB,OAAO,UAW9C;IAEO,QAAQ;IAKR,SAAS,CAChB,WAAW,UAAQ,EACnB,OAAO,SAAK,EACZ,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,IAAI;IA6BP,SAAS,GACP,MAAM,kBAAkB,EACxB,MAAM,OAAO,EAAE,EACf,aAAa,MAAM,UAInB;IAGF,OAAO,CAAC,iBAAiB;IA6HzB,OAAO,CAAC,iBAAiB;IAsBhB,OAAO,aAGd;CACH;AAED,eAAe,iBAAiB,CAAC;AAEjC,eAAO,MAAM,gBAAgB,GAC3B,SAAS,OAAO,EAChB,OAAO,MAAM,EACb,UAAU,wBAAwB,kCACe,CAAC;AACpD,eAAO,MAAM,aAAa,GAAI,SAAS,OAAO,EAAE,OAAO,MAAM,kCACtB,CAAC;AACxC,eAAO,MAAM,gBAAgB,GAAI,SAAS,OAAO,EAAE,OAAO,MAAM,wBACvB,CAAC"}
|
|
@@ -1,27 +1,38 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AirspaceOptions } from '../../Three/types';
|
|
2
2
|
import type { Mapless, Maploss } from '..';
|
|
3
3
|
import type { IdHubType } from '../core/IdHub';
|
|
4
4
|
import { Manager } from '../core/manager';
|
|
5
5
|
import type { ManagerOptions } from '../types';
|
|
6
6
|
type AirspaceIdHubType = IdHubType & {
|
|
7
7
|
fillLayerId: string;
|
|
8
|
+
fill2DLayerId: string;
|
|
8
9
|
lineLayerId: string;
|
|
9
10
|
sourceId: string;
|
|
10
11
|
};
|
|
11
|
-
type AirspaceType = {
|
|
12
|
+
export type AirspaceType = {
|
|
12
13
|
id: string;
|
|
13
14
|
name: string;
|
|
14
15
|
geometry: [number, number][][];
|
|
15
16
|
minAltitude: number;
|
|
16
17
|
maxAltitude: number;
|
|
17
|
-
color:
|
|
18
|
-
|
|
18
|
+
color: string;
|
|
19
|
+
edgeColor: string;
|
|
20
|
+
edgeOpacity: number;
|
|
21
|
+
edgeWidth: number;
|
|
22
|
+
fillColor?: string;
|
|
23
|
+
fillOpacity?: number;
|
|
19
24
|
feature: GeoJSON.Feature<GeoJSON.Polygon, GeoJSON.GeoJsonProperties>;
|
|
20
25
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
type UpdateZoneOptions = Partial<{
|
|
27
|
+
color: string;
|
|
28
|
+
minAltitude: number;
|
|
29
|
+
maxAltitude: number;
|
|
30
|
+
edgeColor: string;
|
|
31
|
+
edgeOpacity: number;
|
|
32
|
+
edgeWidth: number;
|
|
33
|
+
fillColor: string;
|
|
34
|
+
fillOpacity: number;
|
|
35
|
+
}>;
|
|
25
36
|
/**
|
|
26
37
|
* 这是一个单图层多空域得例子,fill-extrusion-opacity不支持数据驱动
|
|
27
38
|
* 要想每个空域的透明度不同需要实现多图层或者使用three.js自定义图层
|
|
@@ -31,11 +42,16 @@ export default class AirspaceManager extends Manager<AirspaceIdHubType> {
|
|
|
31
42
|
private config;
|
|
32
43
|
private originalProperties;
|
|
33
44
|
constructor(mapless: Mapless, options?: ManagerOptions);
|
|
34
|
-
|
|
45
|
+
/**
|
|
46
|
+
* 设置全局配置
|
|
47
|
+
* 注意:opacity 是全局的,因为 fill-extrusion-opacity 不支持数据驱动
|
|
48
|
+
*/
|
|
49
|
+
setConfig(options: {
|
|
50
|
+
opacity?: number;
|
|
51
|
+
}): void;
|
|
35
52
|
handleCoordSystemChange(_system: string | undefined): void;
|
|
36
53
|
createIdHub(_idHub?: IdHubType): void;
|
|
37
54
|
initLayers(): void;
|
|
38
|
-
private numberToColor;
|
|
39
55
|
private generateId;
|
|
40
56
|
drawZone(id: string, options: AirspaceOptions): void;
|
|
41
57
|
private updateSource;
|
|
@@ -43,13 +59,26 @@ export default class AirspaceManager extends Manager<AirspaceIdHubType> {
|
|
|
43
59
|
addZones(zones: AirspaceOptions[]): string[];
|
|
44
60
|
removeZone(id: string): void;
|
|
45
61
|
clearZones(): void;
|
|
46
|
-
|
|
47
|
-
|
|
62
|
+
updateZone(id: string, options: UpdateZoneOptions): void;
|
|
63
|
+
updateZoneColor(id: string, color: string): void;
|
|
48
64
|
updateZoneAltitude(id: string, minAltitude: number, maxAltitude: number): void;
|
|
49
65
|
highlightZone(id: string, highlighted?: boolean): void;
|
|
50
66
|
getZone(id: string): AirspaceType | undefined;
|
|
51
67
|
getAllZones(): AirspaceType[];
|
|
52
68
|
fitBounds(ids?: string[], padding?: number): void;
|
|
69
|
+
/**
|
|
70
|
+
* 显示/隐藏 3D 拉伸图层(fill-extrusion)
|
|
71
|
+
* 用于兼容 2D 情况下的空域区域显示
|
|
72
|
+
*/
|
|
73
|
+
setFillExtrusionVisible(visible: boolean): void;
|
|
74
|
+
/**
|
|
75
|
+
* 获取 3D 拉伸图层的可见状态
|
|
76
|
+
*/
|
|
77
|
+
isFillExtrusionVisible(): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* 切换 3D 拉伸图层的可见状态
|
|
80
|
+
*/
|
|
81
|
+
toggleFillExtrusion(): boolean;
|
|
53
82
|
destroy(): void;
|
|
54
83
|
}
|
|
55
84
|
export declare const attachAirspace: (mapless: Maploss, name?: string) => AirspaceManager | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"airspace.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-3d/airspace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"airspace.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-3d/airspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export type { AirspaceOptions } from '
|
|
2
|
-
export {
|
|
1
|
+
export type { AirspaceOptions } from '../../Three/types';
|
|
2
|
+
export type { AirspaceType } from './airspace';
|
|
3
|
+
export { attachAirspace, default as AirspaceManager, detachAirspace, getAirspace } from './airspace';
|
|
3
4
|
export { attachElevatedLine, default as ElevatedLineManager, detachElevatedLine, getElevatedLine } from './elevatedLine';
|
|
4
|
-
export type { MapModelOptions } from './mapModel';
|
|
5
5
|
export { attachMapModel, default as MapModelManager, detachMapModel, getMapModel } from './mapModel';
|
|
6
|
+
export type { MapModelClickEvent, MapModelManagerEvents, MapModelOptions, MapModelSelectEvent } from './mapModel';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-3d/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-3d/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,OAAO,IAAI,eAAe,EAC1B,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,OAAO,IAAI,mBAAmB,EAC9B,kBAAkB,EAClB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,OAAO,IAAI,eAAe,EAC1B,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,7 +1,33 @@
|
|
|
1
1
|
import type { Mapless, Maploss } from '..';
|
|
2
|
-
import {
|
|
2
|
+
import { EmitManager } from '../core/manager';
|
|
3
3
|
import type { ManagerOptions } from '../types';
|
|
4
4
|
type MapModelManagerOptions = ManagerOptions;
|
|
5
|
+
/**
|
|
6
|
+
* MapModelManager 点击事件类型
|
|
7
|
+
*/
|
|
8
|
+
export type MapModelClickEvent = {
|
|
9
|
+
id: string;
|
|
10
|
+
url: string;
|
|
11
|
+
lngLat: [number, number];
|
|
12
|
+
altitude: number;
|
|
13
|
+
rotation?: [number, number, number];
|
|
14
|
+
scale?: number;
|
|
15
|
+
originalEvent: mapboxgl.MapMouseEvent;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* MapModelManager 选中事件类型
|
|
19
|
+
*/
|
|
20
|
+
export type MapModelSelectEvent = {
|
|
21
|
+
id: string | null;
|
|
22
|
+
previousId: string | null;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* MapModelManager 事件类型
|
|
26
|
+
*/
|
|
27
|
+
export type MapModelManagerEvents = {
|
|
28
|
+
modelClick: [MapModelClickEvent];
|
|
29
|
+
modelSelect: [MapModelSelectEvent];
|
|
30
|
+
};
|
|
5
31
|
/**
|
|
6
32
|
* 单个模型的配置(用于 source)
|
|
7
33
|
*/
|
|
@@ -60,13 +86,40 @@ export interface MapModelOptions {
|
|
|
60
86
|
* - 支持模型独立更新(不闪烁)
|
|
61
87
|
* - 支持批量管理和动态更新
|
|
62
88
|
* - 自动资源清理
|
|
89
|
+
* - 支持点击事件
|
|
63
90
|
*/
|
|
64
|
-
declare class MapModelManager extends
|
|
91
|
+
declare class MapModelManager extends EmitManager<MapModelManagerEvents> {
|
|
65
92
|
private models;
|
|
66
93
|
private modelCounter;
|
|
67
94
|
private _idHub;
|
|
95
|
+
private globalClickHandler;
|
|
96
|
+
private selectedModelId;
|
|
97
|
+
private defaultSelectedColor;
|
|
98
|
+
private themeColorModels;
|
|
68
99
|
constructor(mapless: Mapless, options?: MapModelManagerOptions);
|
|
69
|
-
|
|
100
|
+
/**
|
|
101
|
+
* 设置全局点击事件处理器
|
|
102
|
+
* 使用 queryRenderedFeatures 检测点击的模型
|
|
103
|
+
*/
|
|
104
|
+
private setupGlobalClickHandler;
|
|
105
|
+
/**
|
|
106
|
+
* 根据主题获取默认模型颜色
|
|
107
|
+
* 暗色主题: RGB(68, 233, 234) = [0.267, 0.914, 0.918]
|
|
108
|
+
* 亮色主题: null (使用默认材质)
|
|
109
|
+
*/
|
|
110
|
+
private getDefaultThemeColor;
|
|
111
|
+
/**
|
|
112
|
+
* 移除模型颜色(恢复默认材质)
|
|
113
|
+
*/
|
|
114
|
+
private removeModelColor;
|
|
115
|
+
/**
|
|
116
|
+
* 更新所有模型的默认颜色(主题切换时调用)
|
|
117
|
+
*/
|
|
118
|
+
private updateAllModelsThemeColor;
|
|
119
|
+
/**
|
|
120
|
+
* 主题切换时更新模型颜色
|
|
121
|
+
*/
|
|
122
|
+
onStyleChanged: (_tag: string) => void;
|
|
70
123
|
/**
|
|
71
124
|
* 生成唯一的 source ID(使用 IdHub)
|
|
72
125
|
*/
|
|
@@ -119,6 +172,53 @@ declare class MapModelManager extends Manager {
|
|
|
119
172
|
* 获取所有模型ID
|
|
120
173
|
*/
|
|
121
174
|
getModelIds(): string[];
|
|
175
|
+
/**
|
|
176
|
+
* 更新模型颜色
|
|
177
|
+
* @param id 模型ID
|
|
178
|
+
* @param color RGB 颜色数组 [r, g, b],范围 0-1
|
|
179
|
+
* @param intensity 颜色混合强度 0-1,默认为 1 表示完全覆盖
|
|
180
|
+
*/
|
|
181
|
+
updateModelColor(id: string, color: [number, number, number], intensity?: number): void;
|
|
182
|
+
/**
|
|
183
|
+
* 设置默认选中颜色
|
|
184
|
+
* @param color RGB 颜色数组 [r, g, b],范围 0-1
|
|
185
|
+
*/
|
|
186
|
+
setDefaultSelectedColor(color: [number, number, number]): void;
|
|
187
|
+
/**
|
|
188
|
+
* 获取当前选中的模型ID
|
|
189
|
+
*/
|
|
190
|
+
getSelectedModelId(): string | null;
|
|
191
|
+
/**
|
|
192
|
+
* 选中模型(单选模式)
|
|
193
|
+
* - 恢复上一个选中模型的颜色
|
|
194
|
+
* - 将新选中的模型设置为选中颜色
|
|
195
|
+
* - 触发 modelSelect 事件
|
|
196
|
+
* @param id 模型ID,传 null 取消选中
|
|
197
|
+
* @param color 选中颜色,不传则使用默认选中颜色
|
|
198
|
+
*/
|
|
199
|
+
selectModel(id: string | null, color?: [number, number, number]): void;
|
|
200
|
+
/**
|
|
201
|
+
* 隐藏模型图层
|
|
202
|
+
* @param id 模型ID,不传则隐藏所有模型
|
|
203
|
+
*/
|
|
204
|
+
hideLayer(id?: string): void;
|
|
205
|
+
/**
|
|
206
|
+
* 显示模型图层
|
|
207
|
+
* @param id 模型ID,不传则显示所有模型
|
|
208
|
+
*/
|
|
209
|
+
showLayer(id?: string): void;
|
|
210
|
+
/**
|
|
211
|
+
* 切换模型图层可见性
|
|
212
|
+
* @param id 模型ID,不传则切换所有模型
|
|
213
|
+
* @returns 切换后的可见状态(单个模型时返回该模型状态,多个时返回 true)
|
|
214
|
+
*/
|
|
215
|
+
toggleLayer(id?: string): boolean;
|
|
216
|
+
/**
|
|
217
|
+
* 检查模型图层是否可见
|
|
218
|
+
* @param id 模型ID
|
|
219
|
+
* @returns 是否可见
|
|
220
|
+
*/
|
|
221
|
+
isLayerVisible(id: string): boolean;
|
|
122
222
|
destroy(): void;
|
|
123
223
|
}
|
|
124
224
|
export default MapModelManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapModel.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-3d/mapModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mapModel.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-3d/mapModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export { attachBasicObject, default as BasicThreeObjectManager, detachBasicObject, getBasicObject
|
|
1
|
+
export { attachBasicObject, type BasicGeometryType, default as BasicThreeObjectManager, detachBasicObject, getBasicObject } from './basicObject';
|
|
2
2
|
export { attachCurve3D, default as Curve3DManager, detachCurve3D, getCurve3D } from './curve3d';
|
|
3
|
+
export { attachInstancedModel, default as InstancedModelManager, detachInstancedModel, getInstancedModel, type InstancedModelConfig } from './instancedModel';
|
|
3
4
|
export { attachLine2, default as Line2Manager, detachLine2, getLine2, type Line2Config } from './line2Manager';
|
|
4
5
|
export { attachModel, default as ModelManager, detachModel, getModel } from './model';
|
|
5
6
|
export { attachThree, default as ThreeManager, detachThree, getThree } from './three';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,OAAO,IAAI,uBAAuB,EAClC,iBAAiB,EACjB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,OAAO,IAAI,uBAAuB,EAClC,iBAAiB,EACjB,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,OAAO,IAAI,cAAc,EACzB,aAAa,EACb,UAAU,EACX,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,OAAO,IAAI,qBAAqB,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,WAAW,EACX,OAAO,IAAI,YAAY,EACvB,WAAW,EACX,QAAQ,EACR,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,OAAO,IAAI,YAAY,EACvB,WAAW,EACX,QAAQ,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,WAAW,EACX,OAAO,IAAI,YAAY,EACvB,WAAW,EACX,QAAQ,EACT,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { Mapless } from '..';
|
|
2
|
+
import { Manager } from '../core/manager';
|
|
3
|
+
/**
|
|
4
|
+
* 实例化模型配置
|
|
5
|
+
*/
|
|
6
|
+
export interface InstancedModelConfig {
|
|
7
|
+
/** 模型文件URL (GLB/GLTF) */
|
|
8
|
+
url: string;
|
|
9
|
+
/** 实例数量 */
|
|
10
|
+
count: number;
|
|
11
|
+
/** 中心点坐标 [lng, lat] */
|
|
12
|
+
center: [number, number];
|
|
13
|
+
/** 基础缩放比例 */
|
|
14
|
+
scale: number;
|
|
15
|
+
/** 分散范围 (经纬度偏移量) */
|
|
16
|
+
spread: number;
|
|
17
|
+
/** 是否自动旋转 */
|
|
18
|
+
autoRotate?: boolean;
|
|
19
|
+
/** 旋转速度 */
|
|
20
|
+
rotationSpeed?: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* InstancedModelManager - 实例化渲染管理器
|
|
24
|
+
*
|
|
25
|
+
* 解决问题:
|
|
26
|
+
* 使用 Mapbox GL JS 标准的 model 图层加载几百个 3D 模型时会出现严重卡顿。
|
|
27
|
+
* 这是典型的 Draw Call 爆炸问题 - 每个模型 = 1 次 Draw Call。
|
|
28
|
+
*
|
|
29
|
+
* 解决方案:
|
|
30
|
+
* 使用 Three.js InstancedMesh 将几百次绘制合并为 1 次 Draw Call。
|
|
31
|
+
*
|
|
32
|
+
* 性能对比:
|
|
33
|
+
* - 标准 model 图层:100个模型 = 100次 Draw Call
|
|
34
|
+
* - InstancedMesh:100个模型 = 1次 Draw Call (100x 性能提升)
|
|
35
|
+
*
|
|
36
|
+
* 适用场景:
|
|
37
|
+
* - 大量相同模型的实例(建筑群、风力发电机、树木等)
|
|
38
|
+
* - 城市级别的大规模 3D 场景
|
|
39
|
+
* - 需要高性能渲染的场景
|
|
40
|
+
*/
|
|
41
|
+
declare class InstancedModelManager extends Manager {
|
|
42
|
+
private scene;
|
|
43
|
+
private camera;
|
|
44
|
+
private renderer;
|
|
45
|
+
private customLayerId;
|
|
46
|
+
private isInitialized;
|
|
47
|
+
private instancedMeshes;
|
|
48
|
+
private rotationAngles;
|
|
49
|
+
private autoRotateEnabled;
|
|
50
|
+
private rotationSpeeds;
|
|
51
|
+
private renderCount;
|
|
52
|
+
constructor(mapless: Mapless);
|
|
53
|
+
/**
|
|
54
|
+
* 初始化 Three.js 场景和 Mapbox custom layer
|
|
55
|
+
*/
|
|
56
|
+
private initThree;
|
|
57
|
+
/**
|
|
58
|
+
* 设置 Mapbox 自定义图层
|
|
59
|
+
*/
|
|
60
|
+
private setupCustomLayer;
|
|
61
|
+
/**
|
|
62
|
+
* 更新自动旋转
|
|
63
|
+
*/
|
|
64
|
+
private updateAutoRotate;
|
|
65
|
+
/**
|
|
66
|
+
* 生成随机实例位置
|
|
67
|
+
*/
|
|
68
|
+
private generateInstances;
|
|
69
|
+
/**
|
|
70
|
+
* 加载模型并创建实例化网格
|
|
71
|
+
* @param id 实例组ID
|
|
72
|
+
* @param config 配置选项
|
|
73
|
+
*/
|
|
74
|
+
load(id: string, config: InstancedModelConfig): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* 启用自动旋转
|
|
77
|
+
*/
|
|
78
|
+
enableAutoRotate(id: string, speed?: number): void;
|
|
79
|
+
/**
|
|
80
|
+
* 禁用自动旋转
|
|
81
|
+
*/
|
|
82
|
+
disableAutoRotate(id: string): void;
|
|
83
|
+
/**
|
|
84
|
+
* 更新单个实例的变换
|
|
85
|
+
* @param id 实例组ID
|
|
86
|
+
* @param index 实例索引
|
|
87
|
+
* @param lngLat 新位置
|
|
88
|
+
* @param altitude 新高度
|
|
89
|
+
*/
|
|
90
|
+
updateInstance(id: string, index: number, lngLat: [number, number], altitude: number): void;
|
|
91
|
+
/**
|
|
92
|
+
* 更新单个实例组的可见性
|
|
93
|
+
*/
|
|
94
|
+
setInstanceVisible(id: string, visible: boolean): void;
|
|
95
|
+
/**
|
|
96
|
+
* 重写基类的 setVisible,控制所有实例的可见性
|
|
97
|
+
*/
|
|
98
|
+
setVisible(visible: boolean): void;
|
|
99
|
+
/**
|
|
100
|
+
* 获取实例数量
|
|
101
|
+
*/
|
|
102
|
+
getInstanceCount(id: string): number;
|
|
103
|
+
/**
|
|
104
|
+
* 获取所有实例组ID
|
|
105
|
+
*/
|
|
106
|
+
getIds(): string[];
|
|
107
|
+
/**
|
|
108
|
+
* 移除实例组
|
|
109
|
+
*/
|
|
110
|
+
remove(id: string): void;
|
|
111
|
+
/**
|
|
112
|
+
* 清除所有实例组
|
|
113
|
+
*/
|
|
114
|
+
clear(): void;
|
|
115
|
+
/**
|
|
116
|
+
* 设置实例颜色
|
|
117
|
+
* @param id 实例组ID
|
|
118
|
+
* @param color 颜色值
|
|
119
|
+
*/
|
|
120
|
+
setColor(id: string, color: number | string): void;
|
|
121
|
+
destroy(): void;
|
|
122
|
+
}
|
|
123
|
+
export default InstancedModelManager;
|
|
124
|
+
export declare const attachInstancedModel: (mapless: Mapless | undefined, name?: string) => InstancedModelManager | undefined;
|
|
125
|
+
export declare const getInstancedModel: (mapless: Mapless | undefined, name?: string) => InstancedModelManager | undefined;
|
|
126
|
+
export declare const detachInstancedModel: (mapless: Mapless | undefined, name?: string) => boolean | undefined;
|
|
127
|
+
//# sourceMappingURL=instancedModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instancedModel.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/instancedModel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAYD;;;;;;;;;;;;;;;;;;GAkBG;AACH,cAAM,qBAAsB,SAAQ,OAAO;IACzC,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,iBAAiB,CAAmC;IAC5D,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,WAAW,CAAK;gBAEZ,OAAO,EAAE,OAAO;IAM5B;;OAEG;IACH,OAAO,CAAC,SAAS;IAkDjB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+CxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;;;OAIG;IACU,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8H1E;;OAEG;IACI,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAa,GAAG,IAAI;IAK/D;;OAEG;IACI,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI1C;;;;;;OAMG;IACI,cAAc,CACnB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,QAAQ,EAAE,MAAM,GACf,IAAI;IAiBP;;OAEG;IACI,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAO7D;;OAEG;IACM,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAO3C;;OAEG;IACI,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAK3C;;OAEG;IACI,MAAM,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACI,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAuB/B;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;;;OAIG;IACI,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAezD,OAAO,IAAI,IAAI;CAsBhB;AAED,eAAe,qBAAqB,CAAC;AAErC,eAAO,MAAM,oBAAoB,GAAI,SAAS,OAAO,GAAG,SAAS,EAAE,OAAO,MAAM,sCACrC,CAAC;AAE5C,eAAO,MAAM,iBAAiB,GAAI,SAAS,OAAO,GAAG,SAAS,EAAE,OAAO,MAAM,sCAClC,CAAC;AAE5C,eAAO,MAAM,oBAAoB,GAAI,SAAS,OAAO,GAAG,SAAS,EAAE,OAAO,MAAM,wBACnC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Point3D } from '../../Three/types';
|
|
2
2
|
import type { Mapless, Maploss } from '..';
|
|
3
3
|
import { Manager } from '../core/manager';
|
|
4
|
-
import type { ManagerOptions } from '../types';
|
|
5
4
|
import type { Path } from '../path/path';
|
|
5
|
+
import type { ManagerOptions } from '../types';
|
|
6
6
|
type Line2ManagerOptions = ManagerOptions;
|
|
7
7
|
export interface Line2Config {
|
|
8
8
|
points: Point3D[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line2Manager.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/line2Manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"line2Manager.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/line2Manager.ts"],"names":[],"mappings":"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"}
|