drone-camera 0.0.0-stage → 0.1.2

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.
Files changed (65) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +157 -2
  3. package/index.d.ts +51 -0
  4. package/index.d.ts.map +1 -0
  5. package/index.js +20474 -0
  6. package/index.js.map +1 -0
  7. package/index.umd.cjs +1361 -0
  8. package/index.umd.cjs.map +1 -0
  9. package/lib/drone-capture-manifest.d.ts +169 -0
  10. package/lib/drone-capture-manifest.d.ts.map +1 -0
  11. package/lib/drone-capture-panel.d.ts +135 -0
  12. package/lib/drone-capture-panel.d.ts.map +1 -0
  13. package/lib/drone-capture.d.ts +380 -0
  14. package/lib/drone-capture.d.ts.map +1 -0
  15. package/lib/drone-cesium-mission.d.ts +120 -0
  16. package/lib/drone-cesium-mission.d.ts.map +1 -0
  17. package/lib/drone-cesium-rig.d.ts +50 -0
  18. package/lib/drone-cesium-rig.d.ts.map +1 -0
  19. package/lib/drone-cesium.d.ts +519 -0
  20. package/lib/drone-cesium.d.ts.map +1 -0
  21. package/lib/drone-control.d.ts +188 -0
  22. package/lib/drone-control.d.ts.map +1 -0
  23. package/lib/drone-engine.d.ts +70 -0
  24. package/lib/drone-engine.d.ts.map +1 -0
  25. package/lib/drone-exif.d.ts +64 -0
  26. package/lib/drone-exif.d.ts.map +1 -0
  27. package/lib/drone-fly.d.ts +545 -0
  28. package/lib/drone-fly.d.ts.map +1 -0
  29. package/lib/drone-gallery.d.ts +146 -0
  30. package/lib/drone-gallery.d.ts.map +1 -0
  31. package/lib/drone-husky-model.d.ts +22 -0
  32. package/lib/drone-husky-model.d.ts.map +1 -0
  33. package/lib/drone-image-utils.d.ts +67 -0
  34. package/lib/drone-image-utils.d.ts.map +1 -0
  35. package/lib/drone-image-viewer.d.ts +97 -0
  36. package/lib/drone-image-viewer.d.ts.map +1 -0
  37. package/lib/drone-lights.d.ts +194 -0
  38. package/lib/drone-lights.d.ts.map +1 -0
  39. package/lib/drone-minimap.d.ts +155 -0
  40. package/lib/drone-minimap.d.ts.map +1 -0
  41. package/lib/drone-panel.d.ts +265 -0
  42. package/lib/drone-panel.d.ts.map +1 -0
  43. package/lib/drone-panorama-viewer.d.ts +162 -0
  44. package/lib/drone-panorama-viewer.d.ts.map +1 -0
  45. package/lib/drone-panorama.d.ts +242 -0
  46. package/lib/drone-panorama.d.ts.map +1 -0
  47. package/lib/drone-photogrammetry.d.ts +207 -0
  48. package/lib/drone-photogrammetry.d.ts.map +1 -0
  49. package/lib/drone-radar.d.ts +136 -0
  50. package/lib/drone-radar.d.ts.map +1 -0
  51. package/lib/drone-reconstruction-preview.d.ts +84 -0
  52. package/lib/drone-reconstruction-preview.d.ts.map +1 -0
  53. package/lib/drone-rig.d.ts +385 -0
  54. package/lib/drone-rig.d.ts.map +1 -0
  55. package/lib/drone-sim.d.ts +883 -0
  56. package/lib/drone-sim.d.ts.map +1 -0
  57. package/lib/drone-stitch.d.ts +84 -0
  58. package/lib/drone-stitch.d.ts.map +1 -0
  59. package/lib/drone-world.d.ts +194 -0
  60. package/lib/drone-world.d.ts.map +1 -0
  61. package/lib/mission-editor.d.ts +116 -0
  62. package/lib/mission-editor.d.ts.map +1 -0
  63. package/lib/mission-panel.d.ts +173 -0
  64. package/lib/mission-panel.d.ts.map +1 -0
  65. package/package.json +61 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drone-sim.d.ts","sourceRoot":"","sources":["../../src/lib/drone-camera/drone-sim.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import type { PanoramaGroup, PanoramaStitchResult, PanoramaStitcher } from './drone-panorama';
2
+ /** 输出投影方式 */
3
+ export type EquirectProjection = 'sphere' | 'band';
4
+ /** 球面输出时未覆盖区域的填充方式 */
5
+ export type EquirectFill = 'edge' | 'none';
6
+ /** `EquirectStitcher` 构造选项 */
7
+ export interface EquirectStitcherOptions {
8
+ /**
9
+ * 输出分辨率(每度像素数),默认 10。整球输出即 3600×1800。
10
+ * 越大越清晰、越慢(耗时与输出像素数 × 影像数成正比)。
11
+ */
12
+ pixelsPerDegree?: number;
13
+ /** 输出宽度上限(像素),默认 4096;超出按比例整体缩小 */
14
+ maxWidth?: number;
15
+ /** 输出高度上限(像素),默认 2048 */
16
+ maxHeight?: number;
17
+ /**
18
+ * 输出投影,默认按全景模式自动选择(`pano-360` 用 sphere,广角/180° 用 band):
19
+ * - `'sphere'`:整颗球的标准等距柱状图(360°×180°、2:1 长条,与 DJI 全景同规格),
20
+ * 没拍到的天顶 / 天底 / 方位缺口按 `fill` 补上,输出是规整矩形;
21
+ * - `'band'`:只输出局部覆盖带(未覆盖像素按 `fill` 策略处理),并将其范围写入结果。
22
+ */
23
+ projection?: EquirectProjection;
24
+ /**
25
+ * 球面输出时未覆盖区域的填充方式,默认 `'edge'`:
26
+ * - `'edge'`:**先横向后纵向**补 —— 每行先横向接续(两侧月牙被同行最近的天空/地面
27
+ * 内容接上),再向天顶 / 天底铺该列的边缘颜色,与真机球面全景的观感一致;
28
+ * 填完输出完全不透明。细节见 `fillEdges` 注释;
29
+ * - `'none'`:保持透明(需 PNG)。
30
+ */
31
+ fill?: EquirectFill;
32
+ /** 羽化带宽(占半幅比例,0~0.9),默认 0.22 */
33
+ feather?: number;
34
+ /** 未覆盖区域的底色;不给 = 保持透明(需要 PNG) */
35
+ background?: string | null;
36
+ /** 输出 MIME,默认 `image/png`(透明角落需要 PNG);用 `image/jpeg` 时请同时给 `background` */
37
+ mimeType?: string;
38
+ /** JPEG 质量(0~1),默认 0.9 */
39
+ quality?: number;
40
+ }
41
+ /**
42
+ * 库内默认的全景拼接器:按已知取景位姿把一组照片反投影成**一张等距柱状全景图**。
43
+ *
44
+ * 与库的其它模块一样是纯浏览器的原生实现(只用 `document.createElement('canvas')`),
45
+ * 不引任何依赖;`stitch()` 里逐张 `await` 让出事件循环,所以能边拼边播进度。
46
+ */
47
+ export declare class EquirectStitcher implements PanoramaStitcher {
48
+ /** 逐张回调(已完成张数 / 总张数),供 UI 播进度;不设则不回调 */
49
+ onProgress: ((done: number, total: number) => void) | null;
50
+ private readonly pixelsPerDegree;
51
+ private readonly maxWidth;
52
+ private readonly maxHeight;
53
+ private readonly projection;
54
+ private readonly fill;
55
+ private readonly feather;
56
+ private readonly background;
57
+ private readonly mimeType;
58
+ private readonly quality;
59
+ /** 构造拼接器:定输出尺寸/投影(fill/band)/补边策略,可复用 */
60
+ constructor(options?: EquirectStitcherOptions);
61
+ /**
62
+ * 把一组全景照片拼成一张等距柱状全景图。
63
+ *
64
+ * 默认按模式输出:球形 360° 为整颗球(360°×180°、2:1),广角/180° 为局部全景带。
65
+ * 可通过 `projection` 显式覆盖,见 `EquirectStitcherOptions`。
66
+ * 返回 `null` 的情况:非浏览器环境、组内可用影像少于 2 张、没有 DOM canvas、
67
+ * 或者一张都没加载成功 —— 这些都是"没得拼",而不是"拼坏了"。
68
+ */
69
+ stitch(group: PanoramaGroup): Promise<PanoramaStitchResult | null>;
70
+ }
71
+ /** 建一个默认参数的等距柱状拼接器(库内默认注入给影像集弹窗的"一键合成") */
72
+ export declare function createEquirectStitcher(options?: EquirectStitcherOptions): EquirectStitcher;
73
+ /**
74
+ * 实测该张在方位 / 仰角上的覆盖半宽。
75
+ *
76
+ * 不拿 `atan(tanH)` 近似:那个只在仰角为 0 时成立 —— 仰角一大,同样的水平半视场
77
+ * 对应的方位跨度会明显变宽(相机斜着看,画面边缘离中心方位更远)。
78
+ * 逐角点实测才能保证"覆盖矩形"真的包住这张影像。
79
+ */
80
+ export declare function angularExtent(centerTheta: number, centerPhi: number, right: [number, number, number], up: [number, number, number], forward: [number, number, number], tanH: number, tanV: number): {
81
+ halfTheta: number;
82
+ halfPhi: number;
83
+ };
84
+ //# sourceMappingURL=drone-stitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drone-stitch.d.ts","sourceRoot":"","sources":["../../src/lib/drone-camera/drone-stitch.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AA2B7F,aAAa;AACb,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,MAAM,CAAA;AAElD,sBAAsB;AACtB,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAA;AAE1C,8BAA8B;AAC9B,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAA;IAC/B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AA6DD;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,wCAAwC;IACxC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAEjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAEhC,yCAAyC;gBAC7B,OAAO,GAAE,uBAA4B;IAYjD;;;;;;;OAOG;IACG,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;CAmFzE;AAiDD,2CAA2C;AAC3C,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,uBAA4B,GAAG,gBAAgB,CAE9F;AAqED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC/B,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA6BxC"}
@@ -0,0 +1,194 @@
1
+ import * as THREE from 'three';
2
+ import type { ObstacleBox } from './drone-sim';
3
+ /**
4
+ * 飞行沙盒的场景辅助:地面网格、返航点标记、障碍物、航迹尾迹。
5
+ *
6
+ * 障碍物同时喂给仿真内核做避障判定(纯 AABB),所以可视化与物理用同一份数据,
7
+ * 不会出现"看着撞上了但没刹停"这类不一致。
8
+ */
9
+ /** 一个障碍物(AABB 盒)规格:x/z 为中心平面坐标,width/depth/height 单位为米,color 为 0xRRGGBB */
10
+ export interface ObstacleSpec {
11
+ name: string;
12
+ label: string;
13
+ x: number;
14
+ z: number;
15
+ width: number;
16
+ depth: number;
17
+ height: number;
18
+ color: number;
19
+ /** 底面离地高度(米)。默认 0 = 落地障碍物;>0 = 悬空障碍物(天桥等),机体上方测距用 */
20
+ baseY?: number;
21
+ }
22
+ /** 默认障碍物:两组建筑 + 一根正前方灯杆 + 三棵树 + 一道悬空天桥,都在起飞点 30 米内 */
23
+ export declare const DEFAULT_OBSTACLES: ObstacleSpec[];
24
+ /** 航线航点(可视化用):x/z 为水平坐标,altitude 为相对起飞点高度 */
25
+ export interface MissionMarker {
26
+ x: number;
27
+ z: number;
28
+ altitude: number;
29
+ }
30
+ /**
31
+ * 场景辅助的创建与更新(见文件头):地面网格 / 返航点标记 / 障碍物 / 航迹,以及航线任务可视化。
32
+ * 障碍物同时以 AABB 形式写入 collisionBoxes 供仿真避障使用,可视化与物理共用同一份数据。
33
+ */
34
+ export declare class DroneWorld {
35
+ private readonly scene;
36
+ private readonly group;
37
+ private readonly homeMarker;
38
+ private readonly gridHelpers;
39
+ private readonly obstacles;
40
+ private readonly disposables;
41
+ private readonly trailPositions;
42
+ private trailLine;
43
+ private trailCount;
44
+ private readonly lastTrailPoint;
45
+ private readonly missionGroup;
46
+ /** 航点标记(地面环 / 光柱 / 高度环 / 序号牌),与航线折线分开控制显隐 */
47
+ private readonly missionMarkerGroup;
48
+ /** 航线折线 */
49
+ private readonly missionPathGroup;
50
+ private readonly missionActiveGroup;
51
+ /** 场景编辑的选中高亮与悬停高亮 */
52
+ private readonly missionSelectGroup;
53
+ private readonly missionHoverGroup;
54
+ /** 每次重建航点时产生的可释放资源(几何 / 贴图 / 材质) */
55
+ private readonly missionDisposables;
56
+ private readonly missionMarkerNodes;
57
+ /** 当前航点数据(原位更新时改它,并据此重算航线折线) */
58
+ private readonly missionMarkers;
59
+ private missionOrigin;
60
+ private missionPathLine;
61
+ private missionPathPositions;
62
+ private missionActiveAltitudeRing;
63
+ private missionSelectAltitudeRing;
64
+ private missionHoverAltitudeRing;
65
+ /** 图层总开关 */
66
+ private missionVisible;
67
+ /** 航点标记开关 */
68
+ private missionMarkersVisible;
69
+ /** 航线折线开关 */
70
+ private missionPathVisible;
71
+ private missionActiveIndex;
72
+ private missionSelectIndex;
73
+ private missionHoverIndex;
74
+ /** 地面拾取用的水平面(y=0)与命中点缓存 */
75
+ private readonly groundPlane;
76
+ private readonly groundHit;
77
+ private readonly missionPillarMaterial;
78
+ private readonly missionRingMaterial;
79
+ private readonly missionActiveMaterial;
80
+ private readonly missionSelectMaterial;
81
+ private readonly missionHoverMaterial;
82
+ /** 拾取用的不可见材质:光柱太细,给每根航点套一个粗管子专门用来抓 */
83
+ private readonly missionPickMaterial;
84
+ readonly collisionBoxes: ObstacleBox[];
85
+ readonly specs: ObstacleSpec[];
86
+ /** 构造地面世界:底板/网格/返航点标记内部建,障碍物与任务组可见性外部可切 */
87
+ constructor(scene: THREE.Scene, specs?: ObstacleSpec[]);
88
+ private tintGrid;
89
+ /** 记录航迹:每移动 0.25 米落一个点,避免长航线把缓冲撑爆 */
90
+ pushTrail(x: number, y: number, z: number): void;
91
+ /** 清空航迹线(场景里的飞行尾迹与鹰眼图一起清) */
92
+ clearTrail(): void;
93
+ /**
94
+ * 航迹尾迹快照(只读):`positions` 是 x/y/z 连续排布的缓冲,前 `count * 3` 个分量有效。
95
+ * 鹰眼图(DroneMiniMap)靠它把已飞路径投到俯视图上;直接返回内部缓冲,调用方只读不改。
96
+ */
97
+ getTrail(): {
98
+ positions: Float32Array;
99
+ count: number;
100
+ };
101
+ /** 显示/隐藏全部障碍物(碰撞盒保留,只影响渲染) */
102
+ setObstaclesVisible(visible: boolean): void;
103
+ /**
104
+ * 采集辅助显隐 —— 拍照 / 录像取景时应临时隐藏的**场景标记**。
105
+ *
106
+ * 这些是给**用户**看的辅助图层,不是场景内容,却都长得像"竖线":
107
+ * 返航点光柱(3m 高,就在机腹正下方,离镜头只有几厘米)、航迹尾迹、
108
+ * 航点光柱(按航点高度拉到 30~40m,远看是一根从地面戳进天里的细线 + 序号牌)、
109
+ * 地面网格(正对镜头的那条网格线会从机脚下一直汇聚到地平线,泛光一衬就是一根
110
+ * 贯穿画面的亮线,转一个方位拍一张,全景里就复制出一排)。不藏起来,
111
+ * 每张照片都带几根竖线,全景拼接后更是逐列复制。
112
+ * 地面底板与障碍物是真实场景,不在其列。
113
+ * 调用方负责配对(隐藏后必须在同一帧内恢复),成对的调用点在 DroneFly 的取景路径里。
114
+ */
115
+ setCaptureHelpersVisible(visible: boolean): void;
116
+ /**
117
+ * 锥形视场检测(雷达/视觉传感器用):传感器是一台有视场的相机,不是一条无粗细的射线。
118
+ *
119
+ * 以 origin 为锥顶、axis 为瞄准轴、两个正交轴 u1/u2 上的半张角为 halfU1/halfU2,
120
+ * 判断量程内哪些障碍物落在视场里,返回最近的距离与标签。
121
+ * 判定方式:障碍 AABB 在锥坐标系里用"支撑半径"(Σ|d·axisᵢ|·halfᵢ)近似成盒,
122
+ * 再做椭圆锥内部测试 (e1/(a·tanU1))² + (e2/(a·tanU2))² ≤ 1 —— 连续判定,
123
+ * 于是不存在"两条采样射线之间漏掉细柱"的盲区。
124
+ * 说明:只对障碍物 AABB 判定,不含地面(真机前视也不会把地面当成前方障碍)。
125
+ * 与仿真内核的 AABB 避障相互独立:这里是"传感器测量",那里是"飞控保护"。
126
+ */
127
+ coneCast(origin: THREE.Vector3, axis: THREE.Vector3, u1: THREE.Vector3, u2: THREE.Vector3, tanU1: number, tanU2: number, maxDistance: number): {
128
+ distance: number;
129
+ label: string;
130
+ } | null;
131
+ /**
132
+ * 重建航点标记与航线折线(只在航线内容变化时调用,内部先清掉旧对象)。
133
+ *
134
+ * 每个航点画三样东西,缺一不可:
135
+ * - **地面环**:告诉你在平面上的什么位置;
136
+ * - **竖直光柱**:把平面位置"抬"到天上,一眼看出航点高度;
137
+ * - **高度环 + 序号牌**:真正的三维航点位置(飞机要飞到那儿),以及第几个点。
138
+ */
139
+ setMissionWaypoints(waypoints: MissionMarker[], origin: {
140
+ x: number;
141
+ z: number;
142
+ }): void;
143
+ /**
144
+ * 原位更新一个航点(场景里拖拽时每帧调用)。
145
+ *
146
+ * 只改这一根标记的位姿与折线顶点,不动其他航点 —— 因此拖动过程不会有整层重建的闪烁,
147
+ * 也不会让"当前目标/选中/悬停"三套高亮错位。
148
+ */
149
+ updateMissionWaypoint(index: number, waypoint: MissionMarker): void;
150
+ /** 高亮当前执行目标航点(传 null 取消高亮;waypoint 省略时按索引取当前数据) */
151
+ setMissionActive(index: number, waypoint: MissionMarker | null): void;
152
+ /** 场景编辑:选中高亮 */
153
+ setMissionSelection(index: number, waypoint?: MissionMarker | null): void;
154
+ /** 场景编辑:悬停高亮 */
155
+ setMissionHover(index: number, waypoint?: MissionMarker | null): void;
156
+ /** 把一组"地面环 + 高度环"高亮挪到某个航点上(索引/数据非法就藏起来) */
157
+ private placeHighlightGroup;
158
+ /** 拾取航点:返回命中的航点索引,没命中返回 -1(看不见的图层不参与拾取) */
159
+ pickMissionWaypoint(raycaster: THREE.Raycaster): number;
160
+ /**
161
+ * 拾取地面(水平面 y=0):场景里双击地面新增航点用。
162
+ * 射线几乎平行于地面时会打到很远的地方,由调用方按限距夹紧。
163
+ */
164
+ pickMissionGround(raycaster: THREE.Raycaster): {
165
+ x: number;
166
+ z: number;
167
+ } | null;
168
+ /** 图层总开关(航点 + 航线 + 三套高亮) */
169
+ setMissionVisible(visible: boolean): void;
170
+ /** 航线是否可见(只读真值,面板 200ms 轮询同步) */
171
+ isMissionVisible(): boolean;
172
+ /** 只开关航点标记(不影响航线折线) */
173
+ setMissionWaypointsVisible(visible: boolean): void;
174
+ /** 航线航点标记是否可见 */
175
+ isMissionWaypointsVisible(): boolean;
176
+ /** 只开关航线折线(不影响航点标记) */
177
+ setMissionPathVisible(visible: boolean): void;
178
+ /** 航线路径线是否可见 */
179
+ isMissionPathVisible(): boolean;
180
+ private applyMissionVisibility;
181
+ /** 建航线折线:起点从返航点按首点高度拉起,再依次连过各航点 */
182
+ private buildMissionPath;
183
+ /** 顶点改完重算一次(拖动时每帧走这里:只写 Float32Array,不重建几何) */
184
+ private refreshMissionPath;
185
+ private writeMissionPathPositions;
186
+ private clearMissionWaypoints;
187
+ /** 序号牌:用面向屏幕的 Sprite,飞机在哪个角度看牌子都是正的 */
188
+ private createMissionLabel;
189
+ /** 把"起飞点"标记挪到指定位置(重新起飞时会更新返航点) */
190
+ setHome(x: number, z: number): void;
191
+ /** 解散并释放场景图与几何/材质 */
192
+ destroy(): void;
193
+ }
194
+ //# sourceMappingURL=drone-world.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drone-world.d.ts","sourceRoot":"","sources":["../../src/lib/drone-camera/drone-world.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import * as THREE from 'three';
2
+ import type { MissionWaypoint } from './drone-sim';
3
+ import type { DroneWorld } from './drone-world';
4
+ /**
5
+ * 场景内航点编辑器:在三维场景里直接抓航点。
6
+ *
7
+ * 操作约定(与真机的"地图上编辑航线"对应,但这里是在三维场景里):
8
+ * - **拖拽航点** = 在它当前高度的水平面内移动;
9
+ * - **Shift + 拖拽** = 改高度(按屏幕纵向映射到竖直平面);
10
+ * - **Alt** = 暂时关掉 1 米吸附,做微调;
11
+ * - **双击地面** = 在该处插入一个航点(高度取相邻航点);
12
+ * - **选中后 Delete** = 删除该航点;**Esc** = 取消选中。
13
+ *
14
+ * 编辑只改"航点数据",飞行逻辑一行都不碰 —— 允许编辑的前提是任务未执行(内核也会再拦一次)。
15
+ */
16
+ /** 拖拽模式:move=在当前高度的水平面内平移,altitude=改高度(Shift 拖拽) */
17
+ export type MissionDragMode = 'move' | 'altitude';
18
+ /** 编辑界限:home 位置用于限距判定,高度/距离上限由仿真内核下发(单位:米) */
19
+ export interface MissionEditLimits {
20
+ maxAltitude: number;
21
+ maxDistance: number;
22
+ homeX: number;
23
+ homeZ: number;
24
+ }
25
+ /** 编辑器对外状态快照:enabled 是面板开关,active 还需「当前确实可编辑」(观察者视角 + 任务未执行) */
26
+ export interface MissionEditState {
27
+ /** 面板开关 */
28
+ enabled: boolean;
29
+ /** 开关开着且当前确实可编辑(观察者视角 + 任务未执行) */
30
+ active: boolean;
31
+ selectedIndex: number;
32
+ hoverIndex: number;
33
+ dragging: boolean;
34
+ mode: MissionDragMode | null;
35
+ }
36
+ /**
37
+ * 编辑器依赖的宿主接口:航点数据以仿真内核为权威源,编辑器只通过它读写,
38
+ * 因此这里不含任何三维标记的实现细节(标记由 world 负责重建)。
39
+ */
40
+ export interface MissionEditorHost {
41
+ canvas: HTMLCanvasElement;
42
+ camera: THREE.PerspectiveCamera;
43
+ world: DroneWorld;
44
+ /** 当前是否可编辑:观察者视角 + 航线未在执行 */
45
+ canEdit(): boolean;
46
+ /** 航点列表(权威源 = 仿真内核) */
47
+ getWaypoints(): MissionWaypoint[];
48
+ /** 宿主查询当前选中航点索引(无选中返回 -1) */
49
+ getSelected(): number;
50
+ /** 宿主同步选中航点(编辑器点击/面板列表双向联动) */
51
+ setSelected(index: number): void;
52
+ /** 整表提交(新增 / 删除):会重建三维标记 */
53
+ commitWaypoints(waypoints: Array<Partial<MissionWaypoint>>, selected: number): void;
54
+ /** 拖动中的单点实时更新,返回夹紧后的航点(限高限距已生效) */
55
+ moveWaypoint(index: number, patch: Partial<MissionWaypoint>): MissionWaypoint | null;
56
+ /** 拖动期间暂停/恢复轨道控制 */
57
+ setOrbitEnabled(enabled: boolean): void;
58
+ /** 取编辑限制(最多航点数/最低高度等,供面板校验) */
59
+ getLimits(): MissionEditLimits;
60
+ /** 新航点的默认参数(继承相邻航点的高度与速度) */
61
+ newWaypointTemplate(index: number): Partial<MissionWaypoint>;
62
+ /** 编辑器日志出口(宿主可接到面板或控制台) */
63
+ log(level: 'info' | 'warn', text: string): void;
64
+ }
65
+ /**
66
+ * 场景内航点编辑器:接管画布的指针/键盘事件,把拖拽、双击新增、删除等操作翻译成
67
+ * 对宿主航点数据的修改。使用:构造传入宿主 → 每帧 update() → 面板开关 setEnabled()
68
+ * → 卸载时 destroy()。具体操作约定见本文件顶部模块说明。
69
+ */
70
+ export declare class MissionEditor {
71
+ private readonly host;
72
+ private enabled;
73
+ private hoverIndex;
74
+ private drag;
75
+ /** 在空白处按下:抬手时若没拖动过就取消选中 */
76
+ private emptyClick;
77
+ private readonly raycaster;
78
+ private readonly pointer;
79
+ /** 水平移动用的地面法线 */
80
+ private readonly groundNormal;
81
+ private readonly cameraForward;
82
+ private readonly planeNormal;
83
+ private readonly hitPoint;
84
+ /** 构造航线编辑器:维护航点列表与 Home 点,产出可执行任务 */
85
+ constructor(host: MissionEditorHost);
86
+ /** 编辑模式是否开启(开启时点场景可加/拖航点) */
87
+ get isEnabled(): boolean;
88
+ /** 开关编辑模式 */
89
+ setEnabled(enabled: boolean): void;
90
+ /** 每帧校验:不可编辑时自动收摊(切成机载视角 / 任务开始执行都会走到这里) */
91
+ update(): void;
92
+ /** 取航线只读快照(航点/Home/可视性,供面板与鹰眼图渲染) */
93
+ getState(): MissionEditState;
94
+ /** 解散编辑器与场景里的航线辅助物 */
95
+ destroy(): void;
96
+ private readonly onPointerDown;
97
+ /** 建立拖动状态:按 Shift 决定拖水平面还是竖直面,并记下"按下那一像素"的参考点 */
98
+ private createDrag;
99
+ private readonly onPointerMove;
100
+ private readonly onPointerUp;
101
+ private readonly onPointerLeave;
102
+ /** 双击地面新增航点(双击已有航点不做处理,避免误插一个重合点) */
103
+ private readonly onDoubleClick;
104
+ private readonly onKeyDown;
105
+ /** 删除一个航点(面板按钮与 Delete 键共用) */
106
+ deleteWaypoint(index: number): boolean;
107
+ private applyDrag;
108
+ /** 该航点所在距离上"一个屏幕像素"对应多少米(竖直面打不中时的兜底映射) */
109
+ private metersPerPixel;
110
+ private active;
111
+ private pickWaypoint;
112
+ private updateRaycaster;
113
+ private setHover;
114
+ private cancelDrag;
115
+ }
116
+ //# sourceMappingURL=mission-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mission-editor.d.ts","sourceRoot":"","sources":["../../src/lib/drone-camera/mission-editor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ import type { MissionPanelHost } from './drone-control';
2
+ import type { MissionExportFormat } from './drone-sim';
3
+ /** 面板停靠位置(相对挂载容器) */
4
+ export type MissionPanelPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
5
+ /** 「导出航线」产出的载荷:宿主传了 `onExport` 就由宿主决定怎么保存(上传 / 入库 / 换文件名) */
6
+ export interface MissionExportPayload {
7
+ format: MissionExportFormat;
8
+ /** 序列化好的完整文本(JSON 已带缩进,CSV 为中文表头 + CRLF) */
9
+ text: string;
10
+ /** 建议文件名(含扩展名) */
11
+ filename: string;
12
+ /** MIME 类型 */
13
+ mime: string;
14
+ }
15
+ /** MissionPanel 构造选项 */
16
+ export interface MissionPanelOptions {
17
+ /** 挂载容器;缺省挂到 document.body(此时面板改用 fixed 定位) */
18
+ container?: HTMLElement | null;
19
+ /** 面板停靠位置,默认 'top-left'(通常与右上角的飞行控制面板对开) */
20
+ position?: MissionPanelPosition;
21
+ /** 面板标题,默认「航线规划」 */
22
+ title?: string;
23
+ /** 是否注入自带样式,默认 true;关闭后仅保留 `dmp-*` 类名,由宿主自行配色 */
24
+ injectStyles?: boolean;
25
+ /** 初始是否可见,默认 true */
26
+ visible?: boolean;
27
+ /** 状态轮询间隔(毫秒),默认 100;传 0 关闭自动同步、完全由宿主调 sync() */
28
+ syncIntervalMs?: number;
29
+ /** 是否渲染「场景内编辑」区块(需要画布与观察者视角),默认 true;传 false 退化成三块纯列表编辑 */
30
+ sceneEdit?: boolean;
31
+ /** 是否启用移动端自适应(窄屏紧凑布局),默认 true */
32
+ adaptive?: boolean;
33
+ /**
34
+ * 停靠微调(像素),与 DroneCapturePanel 同语义:y 对 top 方位= marginTop(下移)、
35
+ * 对 bottom 方位= marginBottom(上移);x 对 right 方位= marginRight(左移)、其余= marginLeft。
36
+ * 用来避开宿主自己的边角 UI(如 Cesium 的工具条 / 其他面板)。
37
+ */
38
+ offset?: {
39
+ x?: number;
40
+ y?: number;
41
+ };
42
+ /**
43
+ * 「导出航线」的回调。**给了就由宿主接管保存**(上传服务器 / 写数据库 / 自定义文件名),
44
+ * 面板不再触发浏览器下载;不给则默认下载到本地(JSON / CSV,文件名带时间戳)。
45
+ */
46
+ onExport?: (payload: MissionExportPayload) => void;
47
+ }
48
+ /**
49
+ * 航线规划面板:航点任务的规划 / 执行 / 场景内编辑。
50
+ *
51
+ * ```ts
52
+ * // three 后端(自带了场景,初始化后即是 MissionPanelHost)
53
+ * const fly = await createDroneControl({ engine: 'three', scene, camera, renderer, controls })
54
+ * const mission = new MissionPanel(fly, { container: viewportEl, position: 'top-left' })
55
+ *
56
+ * // Cesium 后端同理:适配器实现同一个 MissionPanelHost,面板代码完全一样
57
+ * const adapter = await createDroneControl({ engine: 'cesium', viewer, lon: 116.391, lat: 39.906 })
58
+ * const mission2 = new MissionPanel(adapter, { container: viewportEl, position: 'top-right' })
59
+ * // 卸载:mission.destroy()
60
+ * ```
61
+ */
62
+ export declare class MissionPanel {
63
+ /** 面板根元素(宿主可追加类名做二次定制) */
64
+ readonly root: HTMLDivElement;
65
+ private readonly fly;
66
+ private readonly opts;
67
+ private readonly container;
68
+ private readonly abort;
69
+ private timer;
70
+ private destroyed;
71
+ private visible;
72
+ /** 上一次构建航点列表时的航点数:变了才重建 DOM,否则原位更新(不打断输入) */
73
+ private lastWaypointCount;
74
+ private speedDragging;
75
+ /** 坐标显示模式:xyz = 本地米(E/S 偏移),geo = 经纬高(由支持的后端提供) */
76
+ private coordMode;
77
+ /** 后端是否支持地理坐标(是否渲染"经纬度 / XYZ"切换开关) */
78
+ private readonly geoSupported;
79
+ private readonly refs;
80
+ /** 场景内编辑区块的元素(未渲染时为 null) */
81
+ private readonly scene;
82
+ /** 构造航线编辑面板(航点列表/参数/执行控制,200ms 同步真值) */
83
+ constructor(fly: MissionPanelHost, options?: MissionPanelOptions);
84
+ /** 插入容器(构造时已自动调用一次) */
85
+ mount(): this;
86
+ /** 从容器移除但保留实例,可再次 mount */
87
+ unmount(): this;
88
+ /** 显示 / 隐藏 */
89
+ setVisible(visible: boolean): this;
90
+ /** 当前是否可见 */
91
+ isVisible(): boolean;
92
+ /** 彻底销毁:解绑事件、停轮询、移除 DOM */
93
+ destroy(): void;
94
+ /**
95
+ * 移除已注入的共享样式。
96
+ * 多个面板共存时请等最后一个销毁后再调用,否则其余面板会掉样式。
97
+ */
98
+ static removeInjectedStyles(): void;
99
+ /** 把引擎当前状态刷到面板上(任务状态/按钮可用性/参数回显/航点列表/场景编辑) */
100
+ sync(): void;
101
+ private query;
102
+ private template;
103
+ /** 坐标显示模式切换段:后端支持地理坐标(Cesium)时出现,否则整段不渲染 */
104
+ private coordModeTemplate;
105
+ /** 「场景内编辑」区块;sceneEdit:false 时整块不渲染 */
106
+ private sceneEditTemplate;
107
+ /** 单个航点行的 DOM(结构固定,值由 syncRows 原位写入);首行按坐标模式在 XYZ / 经纬高之间切换 */
108
+ private rowTemplate;
109
+ /** 重建整张航点列表(仅在航点数量变化时调用) */
110
+ private buildRows;
111
+ /** 原位写入每个航点行的值:聚焦中的输入框跳过,避免抹掉用户打了一半的数 */
112
+ private syncRows;
113
+ private bind;
114
+ private handleAction;
115
+ /** 航点行内的字段编辑(数字 / 勾选 / 下拉共用一条路径) */
116
+ private handleRowInput;
117
+ /** 航点列表的权威来源是仿真内核,不是面板快照(快照 100ms 才刷一次,连续编辑会丢格) */
118
+ private waypoints;
119
+ private patchWaypoint;
120
+ /**
121
+ * geo 模式下编辑经度 / 纬度 / 绝对海拔:取当前经纬高,只替换被改的那一项(其余保持),
122
+ * 走后端 `setWaypointGeo` 做经纬高 → 本地米坐标的逆向换算。中间态("-"/"1.")会被 `raw === ''`
123
+ * 与 `!isFinite` 两道门槛拦下,不往下发;越界值就地夹紧,避免面板抖动。
124
+ */
125
+ private patchWaypointGeo;
126
+ private addWaypoint;
127
+ private removeWaypoint;
128
+ /**
129
+ * 导出航线(只读操作,任务执行中也允许)。
130
+ *
131
+ * 默认把序列化结果落成本地文件:`json` 是完整存档(坐标约定 + 任务参数 + 概览统计),
132
+ * `csv` 是纯航点表(带 UTF-8 BOM,Excel / WPS 双击不乱码)。
133
+ * 宿主传了 `onExport` 时改由宿主接管保存,这里只把文本递出去。
134
+ */
135
+ private exportMission;
136
+ /** 按钮上的短反馈(导出完成 / 已交给宿主),1.4s 后恢复原文案 */
137
+ private flashButton;
138
+ /** 选中航点(-1 = 取消):面板列表与三维场景共用同一份选中态 */
139
+ private selectWaypoint;
140
+ private deleteSelected;
141
+ private addAtDrone;
142
+ /** 从场景里选中时,把列表里对应的那一行滚进视野(列表有最大高度) */
143
+ private revealRow;
144
+ private renderSpeed;
145
+ /** 分段按钮的选中态:按 data-value 打标 */
146
+ private markActive;
147
+ /** 写入输入框的值;聚焦中的框跳过(用户可能正在输入中间态) */
148
+ private writeValue;
149
+ /**
150
+ * 写入勾选态;聚焦中的框跳过 —— 不只是为了不打架,还是正确性要求:
151
+ * 航点行整行可点(选中航点),点击复选框会先冒泡到面板触发一次 sync;
152
+ * 此刻浏览器把 checked 置为 true、但 input/change 事件尚未派发,若这里照写引擎值(false)
153
+ * 就会把刚勾上的框拽回去,随后 change 又读到 false —— 勾选"点了没反应"。
154
+ */
155
+ private writeChecked;
156
+ private progressText;
157
+ private stageLabel;
158
+ /** 启动不了时把原因摆出来,别让按钮灰着却没有解释 */
159
+ private blockReason;
160
+ private syncScene;
161
+ private sceneBlockReason;
162
+ /**
163
+ * 切换坐标显示模式(xyz 本地米 / geo 经纬高)。
164
+ * geo 模式下航点行首行改为可编辑的「经度 / 纬度 / 高度」,因此切换时要重建行 DOM。
165
+ */
166
+ private setCoordMode;
167
+ /** 航点行的坐标徽标文字:xyz = E/S 偏移,geo = 经纬度(8 位小数) */
168
+ private waypointCoordText;
169
+ /** 场景编辑状态行的选中航点坐标文字(含海拔);geo 模式用绝对高程 */
170
+ private sceneCoordText;
171
+ private stopTimer;
172
+ }
173
+ //# sourceMappingURL=mission-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mission-panel.d.ts","sourceRoot":"","sources":["../../src/lib/drone-camera/mission-panel.ts"],"names":[],"mappings":"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"}