@mapless/core 0.0.6 → 1.0.7
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 +4451 -565
- package/dist/types/Mapless/Base.d.ts +4 -0
- package/dist/types/Mapless/Base.d.ts.map +1 -1
- package/dist/types/Mapless/core/manager.d.ts +1 -1
- package/dist/types/Mapless/core/manager.d.ts.map +1 -1
- 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/index.d.ts +5 -0
- package/dist/types/Mapless/index.d.ts.map +1 -1
- package/dist/types/Mapless/layer/FixedRectangleLayer.d.ts +83 -0
- package/dist/types/Mapless/layer/FixedRectangleLayer.d.ts.map +1 -0
- package/dist/types/Mapless/layer/RectangleLayer.d.ts +105 -0
- package/dist/types/Mapless/layer/RectangleLayer.d.ts.map +1 -0
- package/dist/types/Mapless/layer/index.d.ts +4 -0
- package/dist/types/Mapless/layer/index.d.ts.map +1 -0
- package/dist/types/Mapless/layer/types.d.ts +39 -0
- package/dist/types/Mapless/layer/types.d.ts.map +1 -0
- package/dist/types/Mapless/mana/boundary.d.ts +1 -1
- package/dist/types/Mapless/mana/boundary.d.ts.map +1 -1
- package/dist/types/Mapless/mana/cluster.d.ts +5 -5
- package/dist/types/Mapless/mana/cluster.d.ts.map +1 -1
- package/dist/types/Mapless/mana/curve.d.ts +1 -1
- package/dist/types/Mapless/mana/curve.d.ts.map +1 -1
- package/dist/types/Mapless/mana/heatmap.d.ts +1 -0
- package/dist/types/Mapless/mana/heatmap.d.ts.map +1 -1
- package/dist/types/Mapless/mana/imagedata.d.ts +1 -0
- package/dist/types/Mapless/mana/imagedata.d.ts.map +1 -1
- package/dist/types/Mapless/mana/line.d.ts +1 -0
- package/dist/types/Mapless/mana/line.d.ts.map +1 -1
- package/dist/types/Mapless/mana/marker.d.ts +1 -0
- package/dist/types/Mapless/mana/marker.d.ts.map +1 -1
- package/dist/types/Mapless/mana/movable.d.ts +1 -1
- package/dist/types/Mapless/mana/movable.d.ts.map +1 -1
- package/dist/types/Mapless/mana/newstation.d.ts +6 -6
- package/dist/types/Mapless/mana/newstation.d.ts.map +1 -1
- package/dist/types/Mapless/mana/node.d.ts +5 -4
- package/dist/types/Mapless/mana/node.d.ts.map +1 -1
- package/dist/types/Mapless/mana/oldstation.d.ts +1 -1
- package/dist/types/Mapless/mana/oldstation.d.ts.map +1 -1
- package/dist/types/Mapless/mana/polygon.d.ts +1 -0
- package/dist/types/Mapless/mana/polygon.d.ts.map +1 -1
- package/dist/types/Mapless/mana/routes.d.ts +1 -0
- package/dist/types/Mapless/mana/routes.d.ts.map +1 -1
- package/dist/types/Mapless/mana/shape.d.ts +1 -0
- package/dist/types/Mapless/mana/shape.d.ts.map +1 -1
- package/dist/types/Mapless/mana/step.d.ts +1 -0
- package/dist/types/Mapless/mana/step.d.ts.map +1 -1
- package/dist/types/Mapless/mana/track.d.ts +1 -0
- package/dist/types/Mapless/mana/track.d.ts.map +1 -1
- package/dist/types/Mapless/mana-3d/airspace.d.ts +75 -0
- package/dist/types/Mapless/mana-3d/airspace.d.ts.map +1 -0
- package/dist/types/Mapless/mana-3d/elevatedLine.d.ts +37 -0
- package/dist/types/Mapless/mana-3d/elevatedLine.d.ts.map +1 -0
- package/dist/types/Mapless/mana-3d/index.d.ts +7 -0
- package/dist/types/Mapless/mana-3d/index.d.ts.map +1 -0
- package/dist/types/Mapless/mana-3d/mapModel.d.ts +206 -0
- package/dist/types/Mapless/mana-3d/mapModel.d.ts.map +1 -0
- package/dist/types/Mapless/mana-three/basicObject.d.ts +142 -0
- package/dist/types/Mapless/mana-three/basicObject.d.ts.map +1 -0
- package/dist/types/Mapless/mana-three/curve3d.d.ts +83 -0
- package/dist/types/Mapless/mana-three/curve3d.d.ts.map +1 -0
- package/dist/types/Mapless/mana-three/index.d.ts +6 -0
- package/dist/types/Mapless/mana-three/index.d.ts.map +1 -0
- package/dist/types/Mapless/mana-three/line2Manager.d.ts +146 -0
- package/dist/types/Mapless/mana-three/line2Manager.d.ts.map +1 -0
- package/dist/types/Mapless/mana-three/model.d.ts +46 -0
- package/dist/types/Mapless/mana-three/model.d.ts.map +1 -0
- package/dist/types/Mapless/mana-three/three.d.ts +144 -0
- package/dist/types/Mapless/mana-three/three.d.ts.map +1 -0
- package/dist/types/Mapless/path/PathTracker.d.ts +151 -0
- package/dist/types/Mapless/path/PathTracker.d.ts.map +1 -0
- package/dist/types/Mapless/path/attach.d.ts +22 -0
- package/dist/types/Mapless/path/attach.d.ts.map +1 -0
- package/dist/types/Mapless/path/index.d.ts +5 -0
- package/dist/types/Mapless/path/index.d.ts.map +1 -0
- package/dist/types/Mapless/path/path.d.ts +131 -0
- package/dist/types/Mapless/path/path.d.ts.map +1 -0
- package/dist/types/Mapless/path/strategies/base.d.ts +72 -0
- package/dist/types/Mapless/path/strategies/base.d.ts.map +1 -0
- package/dist/types/Mapless/path/strategies/click.d.ts +53 -0
- package/dist/types/Mapless/path/strategies/click.d.ts.map +1 -0
- package/dist/types/Mapless/path/strategies/free.d.ts +45 -0
- package/dist/types/Mapless/path/strategies/free.d.ts.map +1 -0
- package/dist/types/Mapless/path/strategies/index.d.ts +4 -0
- package/dist/types/Mapless/path/strategies/index.d.ts.map +1 -0
- package/dist/types/Mapless/types.d.ts +12 -11
- package/dist/types/Mapless/types.d.ts.map +1 -1
- package/dist/types/Three/MapThree.d.ts +117 -0
- package/dist/types/Three/MapThree.d.ts.map +1 -0
- 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 +67 -0
- package/dist/types/Three/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +8 -4
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { Point3D } from '../../Three/types';
|
|
2
|
+
import type { Mapless } from '..';
|
|
3
|
+
import { Manager } from '../core/manager';
|
|
4
|
+
import type { ManagerOptions } from '../types';
|
|
5
|
+
type Curve3DManagerOptions = ManagerOptions;
|
|
6
|
+
declare class Curve3DManager extends Manager {
|
|
7
|
+
private mapThree;
|
|
8
|
+
private curves;
|
|
9
|
+
constructor(mapless: Mapless, options?: Curve3DManagerOptions);
|
|
10
|
+
private getMapThree;
|
|
11
|
+
private init;
|
|
12
|
+
private createMesh;
|
|
13
|
+
private calculateTransform;
|
|
14
|
+
private convertPoints;
|
|
15
|
+
/**
|
|
16
|
+
* 添加单个曲线
|
|
17
|
+
*/
|
|
18
|
+
addCurve(id: string, config: {
|
|
19
|
+
points: Point3D[];
|
|
20
|
+
radius?: number;
|
|
21
|
+
color?: number;
|
|
22
|
+
opacity?: number;
|
|
23
|
+
segments?: number;
|
|
24
|
+
radialSegments?: number;
|
|
25
|
+
}): void;
|
|
26
|
+
/**
|
|
27
|
+
* 批量添加曲线
|
|
28
|
+
*/
|
|
29
|
+
addCurves(curves: Array<{
|
|
30
|
+
id: string;
|
|
31
|
+
points: Point3D[];
|
|
32
|
+
radius?: number;
|
|
33
|
+
color?: number;
|
|
34
|
+
opacity?: number;
|
|
35
|
+
segments?: number;
|
|
36
|
+
radialSegments?: number;
|
|
37
|
+
}>): void;
|
|
38
|
+
/**
|
|
39
|
+
* 更新指定曲线
|
|
40
|
+
*/
|
|
41
|
+
updateCurve(id: string, config: {
|
|
42
|
+
points?: Point3D[];
|
|
43
|
+
radius?: number;
|
|
44
|
+
color?: number;
|
|
45
|
+
opacity?: number;
|
|
46
|
+
segments?: number;
|
|
47
|
+
radialSegments?: number;
|
|
48
|
+
}): void;
|
|
49
|
+
/**
|
|
50
|
+
* 批量更新曲线
|
|
51
|
+
*/
|
|
52
|
+
updateCurves(updates: Array<{
|
|
53
|
+
id: string;
|
|
54
|
+
points?: Point3D[];
|
|
55
|
+
radius?: number;
|
|
56
|
+
color?: number;
|
|
57
|
+
opacity?: number;
|
|
58
|
+
segments?: number;
|
|
59
|
+
radialSegments?: number;
|
|
60
|
+
}>): void;
|
|
61
|
+
/**
|
|
62
|
+
* 移除指定曲线
|
|
63
|
+
*/
|
|
64
|
+
removeCurve(id: string): void;
|
|
65
|
+
/**
|
|
66
|
+
* 清除所有曲线
|
|
67
|
+
*/
|
|
68
|
+
clearCurves(): void;
|
|
69
|
+
/**
|
|
70
|
+
* 获取曲线数量
|
|
71
|
+
*/
|
|
72
|
+
getCurveCount(): number;
|
|
73
|
+
/**
|
|
74
|
+
* 检查曲线是否存在
|
|
75
|
+
*/
|
|
76
|
+
hasCurve(id: string): boolean;
|
|
77
|
+
destroy(): void;
|
|
78
|
+
}
|
|
79
|
+
export default Curve3DManager;
|
|
80
|
+
export declare const attachCurve3D: (mapless: Mapless | undefined, name?: string, options?: Curve3DManagerOptions) => Curve3DManager | undefined;
|
|
81
|
+
export declare const getCurve3D: (mapless: Mapless | undefined, name?: string) => Curve3DManager | undefined;
|
|
82
|
+
export declare const detachCurve3D: (mapless: Mapless | undefined, name?: string) => boolean | undefined;
|
|
83
|
+
//# sourceMappingURL=curve3d.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curve3d.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/curve3d.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,KAAK,qBAAqB,GAAG,cAAc,CAAC;AAgB5C,cAAM,cAAe,SAAQ,OAAO;IAClC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,MAAM,CAAuC;gBAEzC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAM7D,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,UAAU;IAwDlB,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,aAAa;IAmCrB;;OAEG;IACI,QAAQ,CACb,EAAE,EAAE,MAAM,EACV,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GACA,IAAI;IAoDP;;OAEG;IACI,SAAS,CACd,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,OAAO,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC,GACD,IAAI;IAMP;;OAEG;IACI,WAAW,CAChB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE;QACN,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GACA,IAAI;IAkDP;;OAEG;IACI,YAAY,CACjB,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC,GACD,IAAI;IAMP;;OAEG;IACI,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAYpC;;OAEG;IACI,WAAW,IAAI,IAAI;IAW1B;;OAEG;IACI,aAAa,IAAI,MAAM;IAI9B;;OAEG;IACI,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIpC,OAAO,IAAI,IAAI;CAGhB;AAED,eAAe,cAAc,CAAC;AAE9B,eAAO,MAAM,aAAa,GACxB,SAAS,OAAO,GAAG,SAAS,EAC5B,OAAO,MAAM,EACb,UAAU,qBAAqB,+BACe,CAAC;AAEjD,eAAO,MAAM,UAAU,GAAI,SAAS,OAAO,GAAG,SAAS,EAAE,OAAO,MAAM,+BAClC,CAAC;AAErC,eAAO,MAAM,aAAa,GAAI,SAAS,OAAO,GAAG,SAAS,EAAE,OAAO,MAAM,wBACnC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { attachBasicObject, default as BasicThreeObjectManager, detachBasicObject, getBasicObject, type BasicGeometryType } from './basicObject';
|
|
2
|
+
export { attachCurve3D, default as Curve3DManager, detachCurve3D, getCurve3D } from './curve3d';
|
|
3
|
+
export { attachLine2, default as Line2Manager, detachLine2, getLine2, type Line2Config } from './line2Manager';
|
|
4
|
+
export { attachModel, default as ModelManager, detachModel, getModel } from './model';
|
|
5
|
+
export { attachThree, default as ThreeManager, detachThree, getThree } from './three';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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,EACd,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,OAAO,IAAI,cAAc,EACzB,aAAa,EACb,UAAU,EACX,MAAM,WAAW,CAAC;AACnB,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,146 @@
|
|
|
1
|
+
import type { Point3D } from '../../Three/types';
|
|
2
|
+
import type { Mapless, Maploss } from '..';
|
|
3
|
+
import { Manager } from '../core/manager';
|
|
4
|
+
import type { Path } from '../path/path';
|
|
5
|
+
import type { ManagerOptions } from '../types';
|
|
6
|
+
type Line2ManagerOptions = ManagerOptions;
|
|
7
|
+
export interface Line2Config {
|
|
8
|
+
points: Point3D[];
|
|
9
|
+
color?: number | string;
|
|
10
|
+
opacity?: number;
|
|
11
|
+
linewidth?: number;
|
|
12
|
+
dashed?: boolean;
|
|
13
|
+
dashScale?: number;
|
|
14
|
+
dashSize?: number;
|
|
15
|
+
gapSize?: number;
|
|
16
|
+
}
|
|
17
|
+
declare class Line2Manager extends Manager {
|
|
18
|
+
private mapThree;
|
|
19
|
+
private lines;
|
|
20
|
+
private resizeCallback;
|
|
21
|
+
private mapboxResizeCallback;
|
|
22
|
+
private renderCallback;
|
|
23
|
+
private lastWidth;
|
|
24
|
+
private lastHeight;
|
|
25
|
+
constructor(mapless: Mapless, options?: Line2ManagerOptions);
|
|
26
|
+
private getMapThree;
|
|
27
|
+
private init;
|
|
28
|
+
/**
|
|
29
|
+
* 检查并更新材质分辨率(仅在分辨率变化时更新)
|
|
30
|
+
* 在每次渲染前调用,确保分辨率始终正确
|
|
31
|
+
*/
|
|
32
|
+
private checkAndUpdateResolution;
|
|
33
|
+
/**
|
|
34
|
+
* 更新所有 Line2 的材质分辨率
|
|
35
|
+
* 这是保持固定像素宽度的关键
|
|
36
|
+
*/
|
|
37
|
+
private updateAllMaterialsResolution;
|
|
38
|
+
/**
|
|
39
|
+
* 计算变换参数(使用第一个点作为基准)
|
|
40
|
+
*/
|
|
41
|
+
private calculateTransform;
|
|
42
|
+
/**
|
|
43
|
+
* 将经纬度高度数组转换为 Three.js Vector3 数组
|
|
44
|
+
*/
|
|
45
|
+
private convertPoints;
|
|
46
|
+
/**
|
|
47
|
+
* 创建 Line2 材质
|
|
48
|
+
*/
|
|
49
|
+
private createMaterial;
|
|
50
|
+
/**
|
|
51
|
+
* 添加单个 Line2
|
|
52
|
+
*/
|
|
53
|
+
addLine(id: string, config: Line2Config): void;
|
|
54
|
+
/**
|
|
55
|
+
* 批量添加 Line2
|
|
56
|
+
*/
|
|
57
|
+
addLines(lines: Array<{
|
|
58
|
+
id: string;
|
|
59
|
+
} & Line2Config>): void;
|
|
60
|
+
/**
|
|
61
|
+
* 更新指定 Line2
|
|
62
|
+
*/
|
|
63
|
+
updateLine(id: string, config: Partial<Line2Config>): void;
|
|
64
|
+
/**
|
|
65
|
+
* 批量更新 Line2
|
|
66
|
+
*/
|
|
67
|
+
updateLines(updates: Array<{
|
|
68
|
+
id: string;
|
|
69
|
+
} & Partial<Line2Config>>): void;
|
|
70
|
+
/**
|
|
71
|
+
* 移除指定 Line2
|
|
72
|
+
*/
|
|
73
|
+
removeLine(id: string): void;
|
|
74
|
+
/**
|
|
75
|
+
* 清除所有 Line2
|
|
76
|
+
*/
|
|
77
|
+
clearLines(): void;
|
|
78
|
+
/**
|
|
79
|
+
* 获取线条数量
|
|
80
|
+
*/
|
|
81
|
+
getLineCount(): number;
|
|
82
|
+
/**
|
|
83
|
+
* 检查线条是否存在
|
|
84
|
+
*/
|
|
85
|
+
hasLine(id: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* 获取所有线条 ID
|
|
88
|
+
*/
|
|
89
|
+
getLineIds(): string[];
|
|
90
|
+
/**
|
|
91
|
+
* 设置线条可见性
|
|
92
|
+
*/
|
|
93
|
+
setLineVisible(id: string, visible: boolean): void;
|
|
94
|
+
/**
|
|
95
|
+
* 调整相机视角以适应指定线条(或所有线条)
|
|
96
|
+
* @param lineIds 线条 ID 数组,如果不指定则适应所有线条
|
|
97
|
+
* @param options 可选参数
|
|
98
|
+
*/
|
|
99
|
+
fitBounds(lineIds?: string[], options?: {
|
|
100
|
+
padding?: number | {
|
|
101
|
+
top: number;
|
|
102
|
+
bottom: number;
|
|
103
|
+
left: number;
|
|
104
|
+
right: number;
|
|
105
|
+
};
|
|
106
|
+
bearing?: number;
|
|
107
|
+
pitch?: number;
|
|
108
|
+
duration?: number;
|
|
109
|
+
minZoom?: number;
|
|
110
|
+
}): void;
|
|
111
|
+
/**
|
|
112
|
+
* 生成随机高度(100-500米之间)
|
|
113
|
+
*/
|
|
114
|
+
private generateRandomAltitude;
|
|
115
|
+
/**
|
|
116
|
+
* 从 PathTracker 导入路径数据
|
|
117
|
+
* @param path PathTracker 导出的路径数据
|
|
118
|
+
* @param options 可选的线条配置
|
|
119
|
+
* @returns 导入的线条 ID 数组
|
|
120
|
+
*/
|
|
121
|
+
importPath(path: Path, options?: {
|
|
122
|
+
color?: number | string;
|
|
123
|
+
opacity?: number;
|
|
124
|
+
linewidth?: number;
|
|
125
|
+
dashed?: boolean;
|
|
126
|
+
useSameAltitude?: boolean;
|
|
127
|
+
baseAltitude?: number;
|
|
128
|
+
}): string[];
|
|
129
|
+
/**
|
|
130
|
+
* 从多个 Path 数据批量导入
|
|
131
|
+
*/
|
|
132
|
+
importPaths(paths: Path[], options?: {
|
|
133
|
+
color?: number | string;
|
|
134
|
+
opacity?: number;
|
|
135
|
+
linewidth?: number;
|
|
136
|
+
dashed?: boolean;
|
|
137
|
+
useSameAltitude?: boolean;
|
|
138
|
+
baseAltitude?: number;
|
|
139
|
+
}): string[];
|
|
140
|
+
destroy(): void;
|
|
141
|
+
}
|
|
142
|
+
export default Line2Manager;
|
|
143
|
+
export declare const attachLine2: (mapless: Maploss, name?: string, options?: Line2ManagerOptions) => Line2Manager | undefined;
|
|
144
|
+
export declare const getLine2: (mapless: Maploss, name?: string) => Line2Manager | undefined;
|
|
145
|
+
export declare const detachLine2: (mapless: Maploss, name?: string) => boolean | undefined;
|
|
146
|
+
//# sourceMappingURL=line2Manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line2Manager.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/line2Manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import type { ModelConfig } from '../../Three/types';
|
|
3
|
+
import type { Mapless } from '..';
|
|
4
|
+
import { Manager } from '../core/manager';
|
|
5
|
+
declare class ModelManager extends Manager {
|
|
6
|
+
private mapThree;
|
|
7
|
+
private prefabs;
|
|
8
|
+
private mixers;
|
|
9
|
+
private clock;
|
|
10
|
+
constructor(mapless: Mapless);
|
|
11
|
+
private getMapThree;
|
|
12
|
+
private init;
|
|
13
|
+
private updateAnimations;
|
|
14
|
+
/**
|
|
15
|
+
* 加载3D模型并添加到场景中
|
|
16
|
+
* @param url 模型文件URL
|
|
17
|
+
* @param lngLat 经纬度坐标 [longitude, latitude]
|
|
18
|
+
* @param altitude 高度(米)
|
|
19
|
+
* @param rotation 旋转角度 [x, y, z] 弧度
|
|
20
|
+
* @param scale 缩放比例
|
|
21
|
+
* @param id 模型ID(可选,默认使用URL的hash)
|
|
22
|
+
*/
|
|
23
|
+
load(url: string, lngLat: [number, number], altitude?: number, rotation?: [number, number, number], scale?: number, id?: string): Promise<THREE.Group>;
|
|
24
|
+
/**
|
|
25
|
+
* 更新模型位置(简化的API)
|
|
26
|
+
*/
|
|
27
|
+
updatePosition(lngLat: [number, number], altitude?: number): void;
|
|
28
|
+
private generateModelId;
|
|
29
|
+
addPrefab(id: string, url: string): Promise<void>;
|
|
30
|
+
addModel(id: string, config: ModelConfig): Promise<void>;
|
|
31
|
+
updateModelPosition(id: string, lngLat: [number, number], altitude?: number): void;
|
|
32
|
+
updateModelRotation(id: string, rotation: [number, number, number]): void;
|
|
33
|
+
updateModelScale(id: string, scale: number): void;
|
|
34
|
+
playAnimation(id: string, animationIndex?: number): void;
|
|
35
|
+
stopAnimation(id: string): void;
|
|
36
|
+
removeModel(id: string): void;
|
|
37
|
+
clearModels(): void;
|
|
38
|
+
getModel(id: string): THREE.Group | undefined;
|
|
39
|
+
dispose(): void;
|
|
40
|
+
destroy(): void;
|
|
41
|
+
}
|
|
42
|
+
export default ModelManager;
|
|
43
|
+
export declare const attachModel: (mapless: Mapless | undefined, name?: string) => ModelManager | undefined;
|
|
44
|
+
export declare const getModel: (mapless: Mapless | undefined, name?: string) => ModelManager | undefined;
|
|
45
|
+
export declare const detachModel: (mapless: Mapless | undefined, name?: string) => boolean | undefined;
|
|
46
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,cAAM,YAAa,SAAQ,OAAO;IAChC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,KAAK,CAAkC;gBAEnC,OAAO,EAAE,OAAO;IAM5B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,IAAI;IAmBZ,OAAO,CAAC,gBAAgB;IAQxB;;;;;;;;OAQG;IACU,IAAI,CACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,QAAQ,GAAE,MAAU,EACpB,QAAQ,GAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAa,EAC9C,KAAK,GAAE,MAAU,EACjB,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;IA2FvB;;OAEG;IACI,cAAc,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAE,MAAU,GAAG,IAAI;IAU3E,OAAO,CAAC,eAAe;IAWV,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BjD,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsG9D,mBAAmB,CACxB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,QAAQ,GAAE,MAAU,GACnB,IAAI;IAsBA,mBAAmB,CACxB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACjC,IAAI;IAiBA,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAejD,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,GAAE,MAAU,GAAG,IAAI;IAsB3D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ/B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ7B,WAAW,IAAI,IAAI;IAiBnB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,SAAS;IAQ7C,OAAO,IAAI,IAAI;IAgBtB,OAAO,IAAI,IAAI;CAGhB;AAED,eAAe,YAAY,CAAC;AAE5B,eAAO,MAAM,WAAW,GAAI,SAAS,OAAO,GAAG,SAAS,EAAE,OAAO,MAAM,6BACrC,CAAC;AAEnC,eAAO,MAAM,QAAQ,GAAI,SAAS,OAAO,GAAG,SAAS,EAAE,OAAO,MAAM,6BAClC,CAAC;AAEnC,eAAO,MAAM,WAAW,GAAI,SAAS,OAAO,GAAG,SAAS,EAAE,OAAO,MAAM,wBACnC,CAAC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import type { MapThree } from '../../Three/MapThree';
|
|
3
|
+
import type { Mapless } from '..';
|
|
4
|
+
import { Manager } from '../core/manager';
|
|
5
|
+
declare class ThreeManager extends Manager {
|
|
6
|
+
private mapThree;
|
|
7
|
+
private modelId;
|
|
8
|
+
private model;
|
|
9
|
+
private mixer;
|
|
10
|
+
private clock;
|
|
11
|
+
private animations;
|
|
12
|
+
private currentAction;
|
|
13
|
+
private modelTransform;
|
|
14
|
+
private userScale;
|
|
15
|
+
private baseRotation;
|
|
16
|
+
private currentOrientation;
|
|
17
|
+
private boxHelper;
|
|
18
|
+
private isSelected;
|
|
19
|
+
constructor(mapless: Mapless);
|
|
20
|
+
private init;
|
|
21
|
+
private updateAnimation;
|
|
22
|
+
getMapThree(): MapThree | null;
|
|
23
|
+
/**
|
|
24
|
+
* 加载3D模型并添加到场景中
|
|
25
|
+
* @returns 返回模型和动画列表
|
|
26
|
+
*/
|
|
27
|
+
loadModel(url: string, lngLat: [number, number], altitude?: number, rotation?: [number, number, number], scale?: number): Promise<{
|
|
28
|
+
model: THREE.Group;
|
|
29
|
+
animations: string[];
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* 获取动画列表
|
|
33
|
+
*/
|
|
34
|
+
getAnimations(): string[];
|
|
35
|
+
/**
|
|
36
|
+
* 播放指定动画
|
|
37
|
+
* @param animationName 动画名称
|
|
38
|
+
*/
|
|
39
|
+
playAnimation(animationName: string): void;
|
|
40
|
+
/**
|
|
41
|
+
* 停止当前动画
|
|
42
|
+
*/
|
|
43
|
+
stopAnimation(): void;
|
|
44
|
+
/**
|
|
45
|
+
* 暂停当前动画(保留播放进度)
|
|
46
|
+
*/
|
|
47
|
+
pauseAnimation(): void;
|
|
48
|
+
/**
|
|
49
|
+
* 恢复当前动画
|
|
50
|
+
*/
|
|
51
|
+
resumeAnimation(): void;
|
|
52
|
+
/**
|
|
53
|
+
* 更新模型位置
|
|
54
|
+
*/
|
|
55
|
+
updatePosition(lngLat: [number, number], altitude?: number): void;
|
|
56
|
+
/**
|
|
57
|
+
* 应用基础修正旋转(将模型坐标系修正到地理坐标系)
|
|
58
|
+
*/
|
|
59
|
+
private _applyBaseRotation;
|
|
60
|
+
/**
|
|
61
|
+
* 构建完整的变换矩阵(包含平移、缩放、旋转)
|
|
62
|
+
* @param heading 航向角(度)
|
|
63
|
+
* @param pitch 俯仰角(度)
|
|
64
|
+
* @param roll 翻滚角(度)
|
|
65
|
+
*/
|
|
66
|
+
private _buildFullTransformMatrix;
|
|
67
|
+
/**
|
|
68
|
+
* 更新模型旋转角度(直接设置旋转弧度)
|
|
69
|
+
* @param rotation 旋转角度 [X轴旋转, Y轴旋转, Z轴旋转] 单位: 弧度
|
|
70
|
+
*/
|
|
71
|
+
setRotation(rotation: [number, number, number]): void;
|
|
72
|
+
/**
|
|
73
|
+
* 设置模型的姿态角度(航空角度)
|
|
74
|
+
* 注意:此旋转是在基础修正旋转(loadModel 中的 rotation 参数)之上叠加的
|
|
75
|
+
* @param heading 航向角(偏航/Yaw)- 相对正北方向的角度,0°=正北,顺时针增加,单位: 度
|
|
76
|
+
* @param pitch 俯仰角 - 抬头为正,低头为负,单位: 度
|
|
77
|
+
* @param roll 翻滚角 - 右翻滚为正,左翻滚为负,单位: 度
|
|
78
|
+
*
|
|
79
|
+
* 航空坐标系定义:
|
|
80
|
+
* - Heading: 绕垂直轴旋转(水平面内转向)
|
|
81
|
+
* - Pitch: 绕横轴旋转(上下倾斜)
|
|
82
|
+
* - Roll: 绕纵轴旋转(左右翻滚)
|
|
83
|
+
*/
|
|
84
|
+
setOrientation(heading: number, pitch: number, roll: number): void;
|
|
85
|
+
/**
|
|
86
|
+
* 重置姿态到基础修正旋转状态
|
|
87
|
+
* 这会将姿态角度重置为 0,但保留基础修正旋转
|
|
88
|
+
*/
|
|
89
|
+
resetToBaseOrientation(): void;
|
|
90
|
+
/**
|
|
91
|
+
* 获取基础修正旋转
|
|
92
|
+
*/
|
|
93
|
+
getBaseRotation(): [number, number, number];
|
|
94
|
+
/**
|
|
95
|
+
* 获取当前姿态角度
|
|
96
|
+
*/
|
|
97
|
+
getOrientation(): {
|
|
98
|
+
heading: number;
|
|
99
|
+
pitch: number;
|
|
100
|
+
roll: number;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* 启用显示
|
|
104
|
+
*/
|
|
105
|
+
enable(): void;
|
|
106
|
+
/**
|
|
107
|
+
* 禁用显示
|
|
108
|
+
*/
|
|
109
|
+
disable(): void;
|
|
110
|
+
/**
|
|
111
|
+
* 选中模型(显示 BoxHelper)
|
|
112
|
+
*/
|
|
113
|
+
select(): void;
|
|
114
|
+
/**
|
|
115
|
+
* 取消选中模型(隐藏 BoxHelper)
|
|
116
|
+
*/
|
|
117
|
+
deselect(): void;
|
|
118
|
+
/**
|
|
119
|
+
* 切换选中状态
|
|
120
|
+
*/
|
|
121
|
+
toggleSelect(): void;
|
|
122
|
+
/**
|
|
123
|
+
* 设置选中状态的颜色
|
|
124
|
+
*/
|
|
125
|
+
setSelectionColor(color: number | string): void;
|
|
126
|
+
/**
|
|
127
|
+
* 获取是否选中
|
|
128
|
+
*/
|
|
129
|
+
getSelected(): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* 更新 BoxHelper 的变换(跟随模型)
|
|
132
|
+
*/
|
|
133
|
+
private _updateBoxHelper;
|
|
134
|
+
/**
|
|
135
|
+
* 释放资源
|
|
136
|
+
*/
|
|
137
|
+
dispose(): void;
|
|
138
|
+
destroy(): void;
|
|
139
|
+
}
|
|
140
|
+
export default ThreeManager;
|
|
141
|
+
export declare const attachThree: (mapless: Mapless | undefined | null, name?: string) => ThreeManager | undefined;
|
|
142
|
+
export declare const getThree: (mapless: Mapless | undefined | null, name?: string) => ThreeManager | undefined;
|
|
143
|
+
export declare const detachThree: (mapless: Mapless | undefined | null, name?: string) => boolean | undefined;
|
|
144
|
+
//# sourceMappingURL=three.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"three.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/mana-three/three.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { Mapless } from '../index';
|
|
2
|
+
import type { Path, PathTrackerCallbacks, PathTrackerOptions, PathType } from './path';
|
|
3
|
+
/**
|
|
4
|
+
* PathTracker 路径追踪器
|
|
5
|
+
* 提供可扩展的路径采集功能,支持多种采集策略
|
|
6
|
+
*/
|
|
7
|
+
declare class PathTracker {
|
|
8
|
+
private _mapless;
|
|
9
|
+
private map;
|
|
10
|
+
private options;
|
|
11
|
+
private strategies;
|
|
12
|
+
private currentStrategy;
|
|
13
|
+
private isTracking;
|
|
14
|
+
private currentPath;
|
|
15
|
+
private completedPaths;
|
|
16
|
+
private selectedPathId;
|
|
17
|
+
private sourceId;
|
|
18
|
+
private layerId;
|
|
19
|
+
private clickEnabled;
|
|
20
|
+
private clickHandler;
|
|
21
|
+
callbacks: PathTrackerCallbacks;
|
|
22
|
+
constructor(mapless: Mapless, options?: PathTrackerOptions);
|
|
23
|
+
/**
|
|
24
|
+
* 初始化所有可用策略
|
|
25
|
+
*/
|
|
26
|
+
private initStrategies;
|
|
27
|
+
/**
|
|
28
|
+
* 初始化地图图层
|
|
29
|
+
*/
|
|
30
|
+
private initLayers;
|
|
31
|
+
/**
|
|
32
|
+
* 初始化点击选择功能
|
|
33
|
+
*/
|
|
34
|
+
private initClickSelection;
|
|
35
|
+
/**
|
|
36
|
+
* 更新结果显示图层
|
|
37
|
+
*/
|
|
38
|
+
private updateResultLayer;
|
|
39
|
+
/**
|
|
40
|
+
* 强制重新渲染路径显示图层
|
|
41
|
+
* 用于在修改路径数据后更新地图上的显示
|
|
42
|
+
*/
|
|
43
|
+
refreshDisplay(): void;
|
|
44
|
+
/**
|
|
45
|
+
* 处理策略开始事件
|
|
46
|
+
*/
|
|
47
|
+
private handleStrategyStart;
|
|
48
|
+
/**
|
|
49
|
+
* 处理策略添加点事件
|
|
50
|
+
*/
|
|
51
|
+
private handleStrategyPointAdd;
|
|
52
|
+
/**
|
|
53
|
+
* 处理策略绘制中事件
|
|
54
|
+
*/
|
|
55
|
+
private handleStrategyDrawing;
|
|
56
|
+
/**
|
|
57
|
+
* 处理策略完成事件
|
|
58
|
+
*/
|
|
59
|
+
private handleStrategyComplete;
|
|
60
|
+
/**
|
|
61
|
+
* 处理策略取消事件
|
|
62
|
+
*/
|
|
63
|
+
private handleStrategyCancel;
|
|
64
|
+
/**
|
|
65
|
+
* 触发清除回调
|
|
66
|
+
*/
|
|
67
|
+
private triggerOnClear;
|
|
68
|
+
/**
|
|
69
|
+
* 开始路径采集
|
|
70
|
+
* @param mode 采集模式
|
|
71
|
+
*/
|
|
72
|
+
startTracking(mode?: PathType): void;
|
|
73
|
+
/**
|
|
74
|
+
* 停止路径采集
|
|
75
|
+
*/
|
|
76
|
+
stopTracking(): void;
|
|
77
|
+
/**
|
|
78
|
+
* 取消当前采集
|
|
79
|
+
*/
|
|
80
|
+
cancelTracking(): void;
|
|
81
|
+
/**
|
|
82
|
+
* 清除所有已完成的路径
|
|
83
|
+
*/
|
|
84
|
+
clearPaths(): void;
|
|
85
|
+
/**
|
|
86
|
+
* 获取当前正在采集的路径
|
|
87
|
+
*/
|
|
88
|
+
getCurrentPath(): Path | null;
|
|
89
|
+
/**
|
|
90
|
+
* 获取所有已完成的路径
|
|
91
|
+
*/
|
|
92
|
+
getCompletedPaths(): Path[];
|
|
93
|
+
/**
|
|
94
|
+
* 获取所有路径(包括正在绘制的)
|
|
95
|
+
*/
|
|
96
|
+
getAllPaths(): Path[];
|
|
97
|
+
/**
|
|
98
|
+
* 根据ID获取路径
|
|
99
|
+
*/
|
|
100
|
+
getPathById(id: string): Path | undefined;
|
|
101
|
+
/**
|
|
102
|
+
* 删除指定路径
|
|
103
|
+
*/
|
|
104
|
+
removePath(id: string): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* 删除选中的路径
|
|
107
|
+
*/
|
|
108
|
+
removeSelectedPath(): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* 导入路径
|
|
111
|
+
*/
|
|
112
|
+
importPath(path: Path): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* 更新路径样式
|
|
115
|
+
*/
|
|
116
|
+
updatePathStyle(id: string, style: Partial<Path['style']>): boolean;
|
|
117
|
+
/**
|
|
118
|
+
* 选中路径
|
|
119
|
+
*/
|
|
120
|
+
selectPath(id: string): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* 取消选中路径
|
|
123
|
+
*/
|
|
124
|
+
deselectPath(): void;
|
|
125
|
+
/**
|
|
126
|
+
* 获取选中的路径
|
|
127
|
+
*/
|
|
128
|
+
getSelectedPath(): Path | undefined;
|
|
129
|
+
/**
|
|
130
|
+
* 设置配置选项
|
|
131
|
+
*/
|
|
132
|
+
setOptions(options: Partial<PathTrackerOptions>): void;
|
|
133
|
+
/**
|
|
134
|
+
* 启用点击选择功能
|
|
135
|
+
*/
|
|
136
|
+
enableClickSelection(): void;
|
|
137
|
+
/**
|
|
138
|
+
* 禁用点击选择功能
|
|
139
|
+
*/
|
|
140
|
+
disableClickSelection(): void;
|
|
141
|
+
/**
|
|
142
|
+
* 检查是否正在追踪
|
|
143
|
+
*/
|
|
144
|
+
isActive(): boolean;
|
|
145
|
+
/**
|
|
146
|
+
* 销毁路径追踪器
|
|
147
|
+
*/
|
|
148
|
+
destroy(): void;
|
|
149
|
+
}
|
|
150
|
+
export default PathTracker;
|
|
151
|
+
//# sourceMappingURL=PathTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PathTracker.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/path/PathTracker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAGV,IAAI,EAGJ,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,EACT,MAAM,QAAQ,CAAC;AAGhB;;;GAGG;AACH,cAAM,WAAW;IAGf,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,UAAU,CAAyC;IAC3D,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,cAAc,CAAuB;IAG7C,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,OAAO,CAAM;IAGrB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAsD;IAGnE,SAAS,EAAE,oBAAoB,CAAM;gBAEhC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAY1D;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,OAAO,CAAC,UAAU;IA0BlB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA+B1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkDzB;;;OAGG;IACH,cAAc,IAAI,IAAI;IAItB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;;OAGG;IACH,aAAa,CAAC,IAAI,GAAE,QAAkB,GAAG,IAAI;IA8B7C;;OAEG;IACH,YAAY,IAAI,IAAI;IAuCpB;;OAEG;IACH,cAAc,IAAI,IAAI;IAMtB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,cAAc,IAAI,IAAI,GAAG,IAAI;IAI7B;;OAEG;IACH,iBAAiB,IAAI,IAAI,EAAE;IAI3B;;OAEG;IACH,WAAW,IAAI,IAAI,EAAE;IAgBrB;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIzC;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAa/B;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAO7B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAqB/B;;OAEG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO;IAUnE;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAY/B;;OAEG;IACH,YAAY,IAAI,IAAI;IAYpB;;OAEG;IACH,eAAe,IAAI,IAAI,GAAG,SAAS;IAOnC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAqBtD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAI5B;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAK7B;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,OAAO,IAAI,IAAI;CA6BhB;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Mapless } from '../index';
|
|
2
|
+
import PathTracker from './PathTracker';
|
|
3
|
+
import type { PathTrackerOptions } from './path';
|
|
4
|
+
/**
|
|
5
|
+
* 附加 PathTracker 到 Mapless 实例
|
|
6
|
+
* @param mapless Mapless 实例
|
|
7
|
+
* @param options 配置选项
|
|
8
|
+
* @returns PathTracker 实例
|
|
9
|
+
*/
|
|
10
|
+
export declare function attachPathTracker(mapless: Mapless, options?: PathTrackerOptions): PathTracker | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* 获取已附加的 PathTracker 实例
|
|
13
|
+
* @param mapless Mapless 实例
|
|
14
|
+
* @returns PathTracker 实例或 undefined
|
|
15
|
+
*/
|
|
16
|
+
export declare function getPathTracker(mapless: Mapless): PathTracker | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* 分离 PathTracker 从 Mapless 实例
|
|
19
|
+
* @param mapless Mapless 实例
|
|
20
|
+
*/
|
|
21
|
+
export declare function detachPathTracker(mapless: Mapless): void;
|
|
22
|
+
//# sourceMappingURL=attach.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/path/attach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAOjD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,WAAW,GAAG,SAAS,CAiBzB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,CAExE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAMxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Mapless/path/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,cAAc,UAAU,CAAC"}
|