model-action 1.0.23 → 2.0.0

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 (66) hide show
  1. package/dist/index.d.ts +8 -4
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +8 -4
  4. package/dist/index.js.map +1 -0
  5. package/dist/modules/Action.d.ts +5 -14
  6. package/dist/modules/Action.d.ts.map +1 -0
  7. package/dist/modules/Action.js +1 -10
  8. package/dist/modules/Action.js.map +1 -0
  9. package/dist/modules/Building.d.ts +28 -0
  10. package/dist/modules/Building.d.ts.map +1 -0
  11. package/dist/modules/Building.js +70 -0
  12. package/dist/modules/Building.js.map +1 -0
  13. package/dist/modules/Camera.d.ts +37 -0
  14. package/dist/modules/Camera.d.ts.map +1 -0
  15. package/dist/modules/Camera.js +110 -0
  16. package/dist/modules/Camera.js.map +1 -0
  17. package/dist/modules/Environment.d.ts +22 -0
  18. package/dist/modules/Environment.d.ts.map +1 -0
  19. package/dist/modules/Environment.js +53 -0
  20. package/dist/modules/Environment.js.map +1 -0
  21. package/dist/modules/Focus.d.ts +12 -0
  22. package/dist/modules/Focus.d.ts.map +1 -0
  23. package/dist/modules/Focus.js +22 -0
  24. package/dist/modules/Focus.js.map +1 -0
  25. package/dist/modules/Poi.d.ts +45 -62
  26. package/dist/modules/Poi.d.ts.map +1 -0
  27. package/dist/modules/Poi.js +117 -88
  28. package/dist/modules/Poi.js.map +1 -0
  29. package/dist/modules/Routing.d.ts +23 -31
  30. package/dist/modules/Routing.d.ts.map +1 -0
  31. package/dist/modules/Routing.js +62 -63
  32. package/dist/modules/Routing.js.map +1 -0
  33. package/dist/modules/Scene.d.ts +12 -15
  34. package/dist/modules/Scene.d.ts.map +1 -0
  35. package/dist/modules/Scene.js +26 -15
  36. package/dist/modules/Scene.js.map +1 -0
  37. package/dist/modules/Status.d.ts +59 -0
  38. package/dist/modules/Status.d.ts.map +1 -0
  39. package/dist/modules/Status.js +91 -0
  40. package/dist/modules/Status.js.map +1 -0
  41. package/dist/modules/Track.d.ts +65 -22
  42. package/dist/modules/Track.d.ts.map +1 -0
  43. package/dist/modules/Track.js +128 -20
  44. package/dist/modules/Track.js.map +1 -0
  45. package/dist/modules/VideoFusion.d.ts +1 -0
  46. package/dist/modules/VideoFusion.d.ts.map +1 -0
  47. package/dist/modules/VideoFusion.js +1 -0
  48. package/dist/modules/VideoFusion.js.map +1 -0
  49. package/dist/modules/Window.d.ts +1 -0
  50. package/dist/modules/Window.d.ts.map +1 -0
  51. package/dist/modules/Window.js +1 -0
  52. package/dist/modules/Window.js.map +1 -0
  53. package/package.json +1 -1
  54. package/src/index.ts +7 -4
  55. package/src/modules/Action.ts +4 -25
  56. package/src/modules/Building.ts +103 -0
  57. package/src/modules/Camera.ts +175 -0
  58. package/src/modules/Environment.ts +81 -0
  59. package/src/modules/Focus.ts +33 -0
  60. package/src/modules/Poi.ts +194 -117
  61. package/src/modules/Routing.ts +96 -85
  62. package/src/modules/Scene.ts +43 -21
  63. package/src/modules/Status.ts +150 -0
  64. package/src/modules/Track.ts +259 -30
  65. package/src/modules/VideoFusion.ts +0 -122
  66. package/src/modules/Window.ts +0 -40
@@ -4,61 +4,290 @@
4
4
  /**
5
5
  * 轨迹方法
6
6
  */
7
- import { Action, IdList, LocationList, SendParam } from "./Action";
7
+ import { Action, SendParam } from "./Action";
8
8
 
9
9
 
10
- type TrackActionType = 'getRoadNet' | 'remove' | 'add'
11
- type TrackType = {
12
- action: TrackActionType,
13
- pathId?: string, //自定义轨迹ID
14
- rnId?: string, //路网ID
15
- roadNet?: string, //路网信息
16
- type?: string,
17
- data?: LocationList | IdList
18
- } & SendParam
10
+ type TrackActionType = 'getRoadNet' | 'remove' | 'add' | 'show' | 'hide' | 'updateMovingParam' | 'start' | 'stop' | 'restart' | 'beginEdit' | 'endEdit'
11
+
12
+ // 路径模块类型
13
+ export type PathModuleType = 'Edit' | 'PathTracer'
14
+
15
+ // 角色类型
16
+ export type RolerType = 'Person' | 'Camera' | 'UAV'
17
+
18
+ // 绘制方式
19
+ export type PathDrawBaseType = 'BaseOnRoadNet' | 'BaseOnPathEditInfo'
20
+
21
+ // 路径样式类型
22
+ export type PathStyleType = 'Arrow' | string
23
+
24
+ // 沿路径移动参数
25
+ export interface RolerMoveParam {
26
+ rolerMoveAlongPath?: boolean; // 是否有模型跟随线走,默认false
27
+ rolerType?: RolerType; // 角色类型,默认是 Camera
28
+ viewFollow?: boolean; // 是否视角跟随,默认false
29
+ moveSpeed?: number; // 移动速度
30
+ pauseAtPoint?: boolean; // 到达一个点是否需要停在那里
31
+ }
32
+
33
+ // 路径样式
34
+ export interface PathStyle {
35
+ color: string; // 颜色,格式如 "FFFFFFFF"
36
+ styleType: PathStyleType; // 样式风格
37
+ width: number; // 路径宽度
38
+ }
39
+
40
+ // 路径点
41
+ export interface PathPoint {
42
+ id: string;
43
+ }
44
+
45
+ // 路径编辑参数
46
+ export interface PathEditParam {
47
+ searchRangeAtPathPoint?: number; // 取点后,搜索的范围半径,单位(米)
48
+ searchDeviceType?: string; // 取点后,需要参与搜索的设备类型。为空值或者不传,搜索所有的设备类型
49
+ }
50
+
51
+ // 轨迹添加的 data 结构
52
+ interface TrackAddData {
53
+ action: 'add';
54
+ pathId: string; // 自定义轨迹ID
55
+ pathDrawBaseType: PathDrawBaseType; // 绘制方式
56
+ roadNetId?: string; // 路网ID,BaseOnRoadNet时需要
57
+ rolerMoveParam?: RolerMoveParam; // 沿路径移动的信息
58
+ pathStyle?: PathStyle; // 路径样式
59
+ points: PathPoint[]; // 路径点数组
60
+ }
61
+
62
+ type TrackType = SendParam & {
63
+ cmd: "path";
64
+ data: {
65
+ action: TrackActionType;
66
+ [key: string]: any;
67
+ };
68
+ }
19
69
 
20
70
  export class TrackAction extends Action {
21
71
  /**
22
- * 清除轨迹
23
- * @param {*} pathId 自定义轨迹ID
72
+ * 请求三维绘制路径
73
+ * @param pathId 自定义轨迹ID,后面删除的时候用,如果之前有编辑路径,这里就使用编辑路径的时候传入的路径 pathId
74
+ * @param pathDrawBaseType 绘制方式:BaseOnRoadNet 基于路网,使用C++寻路;BaseOnPathEditInfo 基于编辑路径生成的点画路径,不基于路网
75
+ * @param points 路径点数组
76
+ * @param roadNetId 路网的ID,pathDrawBaseType = BaseOnRoadNet的时候,需要传值,如果场景就一个路网,也可以不用传
77
+ * @param rolerMoveParam 沿路径移动的信息
78
+ * @param pathStyle 路径样式
24
79
  */
25
- static trackRemove(pathId: TrackType['pathId'] = "CameraTrack") {
80
+ static trackAdd(
81
+ pathId: string,
82
+ pathDrawBaseType: PathDrawBaseType,
83
+ points: PathPoint[],
84
+ roadNetId?: string,
85
+ rolerMoveParam?: RolerMoveParam,
86
+ pathStyle?: PathStyle
87
+ ) {
88
+ const data: TrackAddData = {
89
+ action: "add",
90
+ pathId,
91
+ pathDrawBaseType,
92
+ points,
93
+ };
94
+
95
+ // 如果绘制方式是基于路网,且提供了路网ID,则添加
96
+ if (pathDrawBaseType === 'BaseOnRoadNet' && roadNetId) {
97
+ data.roadNetId = roadNetId;
98
+ }
99
+
100
+ // 如果提供了沿路径移动参数,则添加
101
+ if (rolerMoveParam) {
102
+ data.rolerMoveParam = rolerMoveParam;
103
+ }
104
+
105
+ // 如果提供了路径样式,则添加
106
+ if (pathStyle) {
107
+ data.pathStyle = pathStyle;
108
+ }
109
+
26
110
  const param: TrackType = {
27
111
  cmd: "path",
28
- action: "remove",
112
+ data
113
+ };
114
+ this.sendParam(param, '请求三维绘制路径')
115
+ }
116
+
117
+ /**
118
+ * 显隐销毁路径
119
+ * @param action 操作类型:show 显示 | hide 隐藏 | remove 删除
120
+ * @param pathId 自定义轨迹ID,同前面,自定义的ID
121
+ * @param module 显隐、删除哪一部分:Edit 编辑的部分 | PathTracer 根据设备点动态生成的路径部分,如果不传,则整个显隐或者删除
122
+ */
123
+ static trackShowHideRemove(
124
+ action: 'show' | 'hide' | 'remove',
125
+ pathId: string,
126
+ module?: PathModuleType
127
+ ) {
128
+ const data: {
129
+ action: 'show' | 'hide' | 'remove';
130
+ pathId: string;
131
+ module?: PathModuleType;
132
+ } = {
133
+ action,
29
134
  pathId
30
135
  };
31
- this.sendParam(param, '删除指定轨迹线');
136
+
137
+ // 如果提供了模块类型,则添加
138
+ if (module) {
139
+ data.module = module;
140
+ }
141
+
142
+ const param: TrackType = {
143
+ cmd: "path",
144
+ data
145
+ };
146
+
147
+ const actionMap = {
148
+ show: '显示路径',
149
+ hide: '隐藏路径',
150
+ remove: '删除路径'
151
+ };
152
+ this.sendParam(param, actionMap[action])
153
+ }
154
+
155
+ /**
156
+ * 移动中更新移动参数
157
+ * @param pathId 自定义轨迹ID
158
+ * @param rolerMoveParam 沿路径移动的参数
159
+ */
160
+ static trackUpdateMovingParam(
161
+ pathId: string,
162
+ rolerMoveParam: RolerMoveParam
163
+ ) {
164
+ const data: {
165
+ action: 'updateMovingParam';
166
+ pathId: string;
167
+ rolerMoveParam: RolerMoveParam;
168
+ } = {
169
+ action: 'updateMovingParam',
170
+ pathId,
171
+ rolerMoveParam
172
+ };
173
+
174
+ const param: TrackType = {
175
+ cmd: "path",
176
+ data
177
+ };
178
+ this.sendParam(param, '更新移动参数')
179
+ }
180
+
181
+ /**
182
+ * 在生成的路径上面移动 - 开始移动
183
+ * @param action 操作类型:start 开始移动
184
+ * @param pathId 自定义轨迹ID
185
+ * @param rolerMoveParam 沿路径移动的参数
186
+ */
187
+ static trackMove(action: 'start', pathId: string, rolerMoveParam: RolerMoveParam): void;
188
+ /**
189
+ * 在生成的路径上面移动 - 停止或重启
190
+ * @param action 操作类型:stop 停止移动 | restart 重启移动
191
+ */
192
+ static trackMove(action: 'stop' | 'restart'): void;
193
+ /**
194
+ * 在生成的路径上面移动
195
+ * @param action 操作类型:start 开始移动 | stop 停止移动 | restart 重启移动
196
+ * @param pathId 自定义轨迹ID(仅 start 时需要)
197
+ * @param rolerMoveParam 沿路径移动的参数(仅 start 时需要)
198
+ */
199
+ static trackMove(
200
+ action: 'start' | 'stop' | 'restart',
201
+ pathId?: string,
202
+ rolerMoveParam?: RolerMoveParam
203
+ ) {
204
+ const data: {
205
+ action: 'start' | 'stop' | 'restart';
206
+ pathId?: string;
207
+ rolerMoveParam?: RolerMoveParam;
208
+ } = {
209
+ action
210
+ };
211
+
212
+ // start 操作需要 pathId 和 rolerMoveParam
213
+ if (action === 'start') {
214
+ if (!pathId || !rolerMoveParam) {
215
+ throw new Error('start 操作需要提供 pathId 和 rolerMoveParam');
216
+ }
217
+ data.pathId = pathId;
218
+ data.rolerMoveParam = rolerMoveParam;
219
+ }
220
+ // stop 和 restart 不需要 pathId 和 rolerMoveParam
221
+
222
+ const param: TrackType = {
223
+ cmd: "path",
224
+ data
225
+ };
226
+
227
+ const actionMap = {
228
+ start: '开始移动',
229
+ stop: '停止移动',
230
+ restart: '重启移动'
231
+ };
232
+ this.sendParam(param, actionMap[action])
32
233
  }
33
234
 
34
235
  /**
35
- * 获取三维路网坐标
36
- * @param {*} data
37
- * @param {*} rnId 路网ID
236
+ * 开启路径编辑
237
+ * @param pathId 自定义轨迹ID,前端配置界面提供数据,为空或者不传,UE自动生成一个
238
+ * @param pathName 路径名称,前端配置界面提供数据,非必须
239
+ * @param pathEditParam 路径编辑参数,前端配置界面提供数据
38
240
  */
39
- static trackGetRoadNet(data: TrackType['data'], rnId: TrackType['rnId'] = 'RN-1') {
241
+ static trackBeginEdit(
242
+ pathId?: string,
243
+ pathName?: string,
244
+ pathEditParam?: PathEditParam
245
+ ) {
246
+ const data: {
247
+ action: 'beginEdit';
248
+ pathId?: string;
249
+ pathName?: string;
250
+ pathEditParam?: PathEditParam;
251
+ } = {
252
+ action: 'beginEdit'
253
+ };
254
+
255
+ // 如果提供了 pathId,则添加
256
+ if (pathId) {
257
+ data.pathId = pathId;
258
+ }
259
+
260
+ // 如果提供了 pathName,则添加
261
+ if (pathName) {
262
+ data.pathName = pathName;
263
+ }
264
+
265
+ // 如果提供了 pathEditParam,则添加
266
+ if (pathEditParam) {
267
+ data.pathEditParam = pathEditParam;
268
+ }
269
+
40
270
  const param: TrackType = {
41
271
  cmd: "path",
42
- action: "getRoadNet",
43
- rnId,
44
272
  data
45
273
  };
46
- this.sendParam(param, '获取三维路网坐标')
274
+ this.sendParam(param, '开启路径编辑')
47
275
  }
48
276
 
49
277
  /**
50
- * 请求三维绘制路网
51
- * @param {*} data
52
- * @param {*} pathId 自定义轨迹ID
278
+ * 停止路径编辑
53
279
  */
54
- static trackPath(data: TrackType['data'], pathId: TrackType['pathId'] = "CameraTrack") {
280
+ static trackEndEdit() {
281
+ const data: {
282
+ action: 'endEdit';
283
+ } = {
284
+ action: 'endEdit'
285
+ };
286
+
55
287
  const param: TrackType = {
56
288
  cmd: "path",
57
- action: "add",
58
- pathId,
59
- type: "BaseOnRoadNet",
60
289
  data
61
290
  };
62
- this.sendParam(param, '请求三维绘制路径')
291
+ this.sendParam(param, '停止路径编辑')
63
292
  }
64
293
  }
@@ -1,122 +0,0 @@
1
-
2
-
3
- /**
4
- * 视频融合方法
5
- */
6
- import { Action, IdList, LocationList, SendParam } from "./Action";
7
-
8
- type VideoFusionActionType = 'init' | 'flyTo' | 'start' | 'stop' | 'pause' | 'resume' | 'refresh'
9
- type VideoFusionType = {
10
- action: VideoFusionActionType,
11
- token?: string,
12
- ip?: string,
13
- port?: string,
14
- isHttps?: boolean,
15
- id?: string,
16
- fov?: number, //视场角
17
- backPlay?: boolean,
18
- ids?: IdList,
19
- isLocation?: boolean, //是否定位到第一个点,true=定位到第一个,false=不定位
20
- videoType?: 'Video' | 'Record', //Video:实时流,Record:录像,默认实时流 Video
21
- recordType?: 'Cloud' | 'Device',// Cloud:中心录像,Device:设备录像,默认中心录像 Cloud,videoType为 Record 时有效
22
- } & SendParam
23
-
24
-
25
- export class VideoFusionAction extends Action {
26
- /**
27
- * 视频融合初始化
28
- * @param {*} token TOKEN
29
- * @param {*} ip IP
30
- * @param {*} port 端口
31
- * @param {*} token TOKEN
32
- * @param {*} isHttps 是否https
33
- */
34
- static videoFusionInit(token: VideoFusionType['token'], ip: VideoFusionType['ip'], port: VideoFusionType['port'] = '1998', isHttps: VideoFusionType['isHttps'] = false) {
35
- const param: VideoFusionType = {
36
- cmd: "videoFusion",
37
- action: "init",
38
- token,
39
- ip,
40
- port,
41
- isHttps,
42
- };
43
- this.sendParam(param, '视频融合初始化')
44
- }
45
-
46
- /**
47
- * 飞行到视频融合点位
48
- * @param {*} id 点ID
49
- * @param {*} fov 视场角
50
- */
51
- static videoFusionFlyTo(id: VideoFusionType['id'], fov: VideoFusionType['fov']) {
52
- const param: VideoFusionType = {
53
- cmd: "videoFusion",
54
- action: "flyTo",
55
- id,
56
- fov,
57
- };
58
- this.sendParam(param, `飞行到视频融合点位【${id}】`)
59
- }
60
-
61
- /**
62
- * 开启视频融合
63
- * @param {*} ids id列表
64
- * @param {*} isLocation 是否定位到第一个点。 true = 定位第一个, false = 不定位
65
- * @param {*} backPlay
66
- * @param {*} videoType Video:实时流,Record:录像,默认实时流 Video
67
- */
68
- static videoFusionStart(ids: VideoFusionType['ids'], isLocation: boolean = false, backPlay: boolean = false, videoType: 'Video' | 'Record' = 'Video') {
69
- const param: VideoFusionType = {
70
- cmd: "videoFusion",
71
- action: "start",
72
- isLocation,
73
- videoType,
74
- backPlay,
75
- ids,
76
- };
77
- this.sendParam(param, '开启视频融合')
78
- }
79
-
80
- /**
81
- * 关闭视频融合
82
- * @param {*} ids id列表
83
- * @param {*} isLocation 是否定位到第一个点。 true = 定位第一个, false = 不定位
84
- * @param {*} backPlay
85
- * @param {*} videoType Video:实时流,Record:录像,默认实时流 Video
86
- */
87
- static videoFusionStop(ids: VideoFusionType['ids'], isLocation: boolean = false, backPlay: boolean = false, videoType: 'Video' | 'Record' = 'Video') {
88
- const param: VideoFusionType = {
89
- cmd: "videoFusion",
90
- action: "stop",
91
- isLocation,
92
- videoType,
93
- backPlay,
94
- ids,
95
- };
96
- this.sendParam(param, '关闭视频融合')
97
- }
98
-
99
- /**
100
- * 刷新视频融合
101
- * @param {*} token TOKEN
102
- */
103
- static videoFusionRefresh(token: VideoFusionType['token']) {
104
- const param: VideoFusionType = {
105
- cmd: "videoFusion",
106
- action: "refresh",
107
- token,
108
- };
109
- this.sendParam(param, '刷新视频融合')
110
- }
111
-
112
- /**
113
- * 获取融合点位列表
114
- */
115
- static videoFusionList() {
116
- const param = {
117
- cmd: "videoFusion",
118
- action: "get",
119
- };
120
- this.sendParam(param, '获取视频融合点位列表')
121
- }
122
- }
@@ -1,40 +0,0 @@
1
-
2
- /**
3
- * 点POI打开外部弹窗
4
- * 用来让UE抛出POI位置
5
- */
6
- import { Action, } from "./Action";
7
-
8
- export class WindowAction extends Action {
9
- /**
10
- * 打开外部弹窗
11
- * @param {*} attendId (必须)弹框的三维物体的唯一ID)
12
- */
13
- static openOut(attendId: string) {
14
- const param: any = {
15
- cmd: "window",
16
- data: {
17
- action: 'pop',
18
- type: 'builtOut',
19
- attendId,
20
- }
21
- };
22
- this.sendParam(param, '打开外部弹窗')
23
- }
24
-
25
- /**
26
- * 关闭外部弹窗
27
- * @param {*} attendId (必须)弹框的三维物体的唯一ID)
28
- */
29
- static closeOut(attendId: string) {
30
- const param: any = {
31
- cmd: "window",
32
- data: {
33
- action: 'remove',
34
- type: 'builtOut',
35
- attendId,
36
- }
37
- };
38
- this.sendParam(param, '关闭外部弹窗')
39
- }
40
- }