@metagl/sdk-render 0.0.1
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/README.md +172 -0
- package/README_EN.md +172 -0
- package/RenderPreview.png +0 -0
- package/amd/lacdt.render.amd.js +1 -0
- package/cjs/lacdt.render.cjs.js +1 -0
- package/cjs/lacdt.render.d.ts +3743 -0
- package/es/lacdt.render.es.js +1 -0
- package/esm/lacdt.render.d.ts +3743 -0
- package/esm/lacdt.render.js +1 -0
- package/lacdt.render.d.ts +3743 -0
- package/lacdt.render.js +1 -0
- package/package.json +20 -0
|
@@ -0,0 +1,3743 @@
|
|
|
1
|
+
import { Cartesian3, Color, Viewer, Cartesian4, Rectangle, Cesium3DTileset, ClippingPolygonCollection } from 'cesium';
|
|
2
|
+
import { Render as Render$1 } from '@/system/RenderCore';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* RenderSystem
|
|
6
|
+
* @interface
|
|
7
|
+
* @description 渲染系统接口
|
|
8
|
+
* @property {function} initialize - 初始化系统
|
|
9
|
+
* @property {function} enable - 启用系统
|
|
10
|
+
* @property {function} disable - 禁用系统
|
|
11
|
+
* @property {function} update - 更新系统
|
|
12
|
+
* @property {function} getStatus - 获取系统状态
|
|
13
|
+
* @property {function} destroy - 销毁系统
|
|
14
|
+
*/
|
|
15
|
+
interface RenderSystem {
|
|
16
|
+
initialize(): void;
|
|
17
|
+
enable(): void;
|
|
18
|
+
disable(): void;
|
|
19
|
+
update(config: any): void;
|
|
20
|
+
getStatus(): boolean;
|
|
21
|
+
destroy(): void;
|
|
22
|
+
getConfig?(): any;
|
|
23
|
+
saveConfig?(): any;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* DirectionalLightConfig
|
|
28
|
+
* @param enabled - 是否启用
|
|
29
|
+
* @param direction - 方向
|
|
30
|
+
* @param intensity - 强度
|
|
31
|
+
* @param color - 颜色
|
|
32
|
+
*/
|
|
33
|
+
interface DirectionalLightConfig {
|
|
34
|
+
enabled?: boolean;
|
|
35
|
+
followSun?: boolean;
|
|
36
|
+
direction?: Cartesian3;
|
|
37
|
+
intensity?: number;
|
|
38
|
+
color?: Color;
|
|
39
|
+
ambientIntensity?: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* LightingSystem
|
|
43
|
+
* @param viewer - Viewer
|
|
44
|
+
* @param config - DirectionalLightConfig
|
|
45
|
+
*/
|
|
46
|
+
declare class LightingSystem implements RenderSystem {
|
|
47
|
+
private viewer;
|
|
48
|
+
private config;
|
|
49
|
+
private isEnabled;
|
|
50
|
+
private originalSettings?;
|
|
51
|
+
/**
|
|
52
|
+
* 默认配置 - 正午太阳光照
|
|
53
|
+
*/
|
|
54
|
+
private static readonly DEFAULT_CONFIG;
|
|
55
|
+
/**
|
|
56
|
+
* 构造函数
|
|
57
|
+
* @param viewer - Viewer
|
|
58
|
+
* @param config - DirectionalLightConfig
|
|
59
|
+
*/
|
|
60
|
+
constructor(viewer: Viewer, config?: DirectionalLightConfig);
|
|
61
|
+
/**
|
|
62
|
+
* 初始化
|
|
63
|
+
*/
|
|
64
|
+
initialize(): void;
|
|
65
|
+
/**
|
|
66
|
+
* 保存原始设置
|
|
67
|
+
*/
|
|
68
|
+
private saveOriginalSettings;
|
|
69
|
+
/**
|
|
70
|
+
* 启用方向光
|
|
71
|
+
*/
|
|
72
|
+
enable(): void;
|
|
73
|
+
/**
|
|
74
|
+
* 禁用方向光
|
|
75
|
+
*/
|
|
76
|
+
disable(): void;
|
|
77
|
+
/**
|
|
78
|
+
* 更新配置
|
|
79
|
+
* @param config - DirectionalLightConfig
|
|
80
|
+
*/
|
|
81
|
+
update(config: Partial<DirectionalLightConfig>): void;
|
|
82
|
+
/**
|
|
83
|
+
* 获取状态
|
|
84
|
+
* @returns boolean
|
|
85
|
+
*/
|
|
86
|
+
getStatus(): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* 获取配置
|
|
89
|
+
* @returns DirectionalLightConfig
|
|
90
|
+
*/
|
|
91
|
+
getConfig(): DirectionalLightConfig;
|
|
92
|
+
/**
|
|
93
|
+
* 保存配置为 JSON 对象
|
|
94
|
+
*/
|
|
95
|
+
saveConfig(): any;
|
|
96
|
+
/**
|
|
97
|
+
* 销毁
|
|
98
|
+
*/
|
|
99
|
+
destroy(): void;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* 阴影系统配置
|
|
104
|
+
*/
|
|
105
|
+
interface ShadowConfig {
|
|
106
|
+
enabled?: boolean;
|
|
107
|
+
softShadows?: boolean;
|
|
108
|
+
size?: number;
|
|
109
|
+
darkness?: number;
|
|
110
|
+
maximumDistance?: number;
|
|
111
|
+
normalOffset?: boolean;
|
|
112
|
+
fadingEnabled?: boolean;
|
|
113
|
+
bias?: number;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* 阴影系统
|
|
117
|
+
*/
|
|
118
|
+
declare class ShadowSystem implements RenderSystem {
|
|
119
|
+
private viewer;
|
|
120
|
+
private config;
|
|
121
|
+
private isEnabled;
|
|
122
|
+
private originalSettings?;
|
|
123
|
+
/**
|
|
124
|
+
* 默认配置
|
|
125
|
+
*/
|
|
126
|
+
private static readonly DEFAULT_CONFIG;
|
|
127
|
+
/**
|
|
128
|
+
* 构造函数
|
|
129
|
+
* @param viewer - Cesium Viewer 实例
|
|
130
|
+
* @param config - 阴影系统配置
|
|
131
|
+
*/
|
|
132
|
+
constructor(viewer: Viewer, config?: ShadowConfig);
|
|
133
|
+
/**
|
|
134
|
+
* 初始化
|
|
135
|
+
*/
|
|
136
|
+
initialize(): void;
|
|
137
|
+
/**
|
|
138
|
+
* 保存原始设置
|
|
139
|
+
*/
|
|
140
|
+
private saveOriginalSettings;
|
|
141
|
+
/**
|
|
142
|
+
* 启用阴影系统
|
|
143
|
+
*/
|
|
144
|
+
enable(): void;
|
|
145
|
+
/**
|
|
146
|
+
* 禁用阴影系统
|
|
147
|
+
*/
|
|
148
|
+
disable(): void;
|
|
149
|
+
/**
|
|
150
|
+
* 更新阴影系统配置
|
|
151
|
+
* @param config - 阴影系统配置
|
|
152
|
+
*/
|
|
153
|
+
update(config: Partial<ShadowConfig>): void;
|
|
154
|
+
/**
|
|
155
|
+
* 获取阴影系统状态
|
|
156
|
+
* @returns 阴影系统状态
|
|
157
|
+
*/
|
|
158
|
+
getStatus(): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* 获取阴影系统配置
|
|
161
|
+
* @returns 阴影系统配置
|
|
162
|
+
*/
|
|
163
|
+
getConfig(): ShadowConfig;
|
|
164
|
+
/**
|
|
165
|
+
* 保存配置为 JSON 对象
|
|
166
|
+
*/
|
|
167
|
+
saveConfig(): any;
|
|
168
|
+
/**
|
|
169
|
+
* 销毁阴影系统
|
|
170
|
+
*/
|
|
171
|
+
destroy(): void;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* 体积云可见性控制配置
|
|
176
|
+
*/
|
|
177
|
+
interface CloudVisibilityConfig {
|
|
178
|
+
minHeight?: number;
|
|
179
|
+
maxHeight?: number;
|
|
180
|
+
transitionRange?: number;
|
|
181
|
+
enabled?: boolean;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* 体积云配置
|
|
185
|
+
*/
|
|
186
|
+
interface VolumetricCloudsConfig {
|
|
187
|
+
enabled?: boolean;
|
|
188
|
+
realPlanetRadius?: number;
|
|
189
|
+
windVector?: Cartesian3;
|
|
190
|
+
cloudCover?: number;
|
|
191
|
+
cloudBase?: number;
|
|
192
|
+
cloudTop?: number;
|
|
193
|
+
cloudThickness?: number;
|
|
194
|
+
cloudLightIntensity?: number;
|
|
195
|
+
cloudIntensity?: number;
|
|
196
|
+
visibility?: CloudVisibilityConfig;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* 体积云系统
|
|
200
|
+
*/
|
|
201
|
+
declare class VolumetricCloudsSystem implements RenderSystem {
|
|
202
|
+
private viewer;
|
|
203
|
+
private config;
|
|
204
|
+
private isEnabled;
|
|
205
|
+
private stage?;
|
|
206
|
+
private preRenderListener?;
|
|
207
|
+
/**
|
|
208
|
+
* 默认可见性控制配置
|
|
209
|
+
*/
|
|
210
|
+
private static readonly DEFAULT_VISIBILITY_CONFIG;
|
|
211
|
+
/**
|
|
212
|
+
* 默认配置
|
|
213
|
+
*/
|
|
214
|
+
private static readonly DEFAULT_CONFIG;
|
|
215
|
+
/**
|
|
216
|
+
* 构造函数
|
|
217
|
+
*/
|
|
218
|
+
constructor(viewer: Viewer, config?: VolumetricCloudsConfig);
|
|
219
|
+
/**
|
|
220
|
+
* 更新云层可见性
|
|
221
|
+
*/
|
|
222
|
+
private updateCloudVisibility;
|
|
223
|
+
/**
|
|
224
|
+
* 初始化
|
|
225
|
+
*/
|
|
226
|
+
initialize(): void;
|
|
227
|
+
/**
|
|
228
|
+
* 获取真实地球半径
|
|
229
|
+
*/
|
|
230
|
+
private getRealPlanetRadius;
|
|
231
|
+
/**
|
|
232
|
+
* 更新uniforms
|
|
233
|
+
*/
|
|
234
|
+
private updateUniforms;
|
|
235
|
+
/**
|
|
236
|
+
* 启用体积云系统
|
|
237
|
+
*/
|
|
238
|
+
enable(): void;
|
|
239
|
+
/**
|
|
240
|
+
* 禁用体积云系统
|
|
241
|
+
*/
|
|
242
|
+
disable(): void;
|
|
243
|
+
/**
|
|
244
|
+
* 更新体积云系统的配置
|
|
245
|
+
*/
|
|
246
|
+
update(config: Partial<VolumetricCloudsConfig>): void;
|
|
247
|
+
/**
|
|
248
|
+
* 获取当前状态
|
|
249
|
+
*/
|
|
250
|
+
getStatus(): boolean;
|
|
251
|
+
/**
|
|
252
|
+
* 获取当前的体积云配置
|
|
253
|
+
*/
|
|
254
|
+
getConfig(): VolumetricCloudsConfig;
|
|
255
|
+
/**
|
|
256
|
+
* 保存配置为 JSON 对象
|
|
257
|
+
*/
|
|
258
|
+
saveConfig(): any;
|
|
259
|
+
/**
|
|
260
|
+
* 获取着色器代码
|
|
261
|
+
*/
|
|
262
|
+
private getShader;
|
|
263
|
+
/**
|
|
264
|
+
* 销毁体积云系统
|
|
265
|
+
*/
|
|
266
|
+
destroy(): void;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* 相机监听配置接口
|
|
271
|
+
*/
|
|
272
|
+
interface CameraListenerConfig {
|
|
273
|
+
/** 是否启用相机监听 */
|
|
274
|
+
enabled?: boolean;
|
|
275
|
+
/** 最小高度(米) */
|
|
276
|
+
minHeight?: number;
|
|
277
|
+
/** 最大高度(米) */
|
|
278
|
+
maxHeight?: number;
|
|
279
|
+
/** 过渡范围(米) */
|
|
280
|
+
transitionRange?: number;
|
|
281
|
+
/** 强度计算回调函数 */
|
|
282
|
+
intensityCallback?: (cameraHeight: number, config: CameraListenerConfig) => number;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* 相机监听器类 - 全局管理相机高度与效果强度的关系
|
|
286
|
+
*/
|
|
287
|
+
declare class CameraListener {
|
|
288
|
+
private viewer;
|
|
289
|
+
private config;
|
|
290
|
+
private listeners;
|
|
291
|
+
private preRenderListener?;
|
|
292
|
+
private isEnabled;
|
|
293
|
+
/**
|
|
294
|
+
* 默认配置
|
|
295
|
+
*/
|
|
296
|
+
private static readonly DEFAULT_CONFIG;
|
|
297
|
+
/**
|
|
298
|
+
* 构造函数
|
|
299
|
+
*/
|
|
300
|
+
constructor(viewer: Viewer, config?: CameraListenerConfig);
|
|
301
|
+
/**
|
|
302
|
+
* 初始化相机监听
|
|
303
|
+
*/
|
|
304
|
+
initialize(): void;
|
|
305
|
+
/**
|
|
306
|
+
* 添加强度变化监听器
|
|
307
|
+
*/
|
|
308
|
+
addListener(callback: (intensity: number) => void): void;
|
|
309
|
+
/**
|
|
310
|
+
* 移除强度变化监听器
|
|
311
|
+
*/
|
|
312
|
+
removeListener(callback: (intensity: number) => void): void;
|
|
313
|
+
/**
|
|
314
|
+
* 通知所有监听器强度变化
|
|
315
|
+
*/
|
|
316
|
+
private notifyListeners;
|
|
317
|
+
/**
|
|
318
|
+
* 更新配置
|
|
319
|
+
*/
|
|
320
|
+
update(config: Partial<CameraListenerConfig>): void;
|
|
321
|
+
/**
|
|
322
|
+
* 启用相机监听
|
|
323
|
+
*/
|
|
324
|
+
enable(): void;
|
|
325
|
+
/**
|
|
326
|
+
* 禁用相机监听
|
|
327
|
+
*/
|
|
328
|
+
disable(): void;
|
|
329
|
+
/**
|
|
330
|
+
* 获取当前状态
|
|
331
|
+
*/
|
|
332
|
+
getStatus(): boolean;
|
|
333
|
+
/**
|
|
334
|
+
* 获取当前配置
|
|
335
|
+
*/
|
|
336
|
+
getConfig(): CameraListenerConfig;
|
|
337
|
+
/**
|
|
338
|
+
* 计算当前强度(同步调用)
|
|
339
|
+
*/
|
|
340
|
+
getCurrentIntensity(): number;
|
|
341
|
+
/**
|
|
342
|
+
* 销毁相机监听器
|
|
343
|
+
*/
|
|
344
|
+
destroy(): void;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* 相机监听系统配置
|
|
348
|
+
*/
|
|
349
|
+
interface CameraListenerSystemConfig {
|
|
350
|
+
/** 体积云系统相机监听配置 */
|
|
351
|
+
volumetricClouds?: CameraListenerConfig;
|
|
352
|
+
/** 距离雾系统相机监听配置 */
|
|
353
|
+
distanceFog?: CameraListenerConfig;
|
|
354
|
+
/** 高度雾系统相机监听配置 */
|
|
355
|
+
heightFog?: CameraListenerConfig;
|
|
356
|
+
/** 大气散射系统相机监听配置 */
|
|
357
|
+
atmosphereScattering?: CameraListenerConfig;
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* 相机监听系统 - 全局管理多个系统的相机高度监听
|
|
361
|
+
*/
|
|
362
|
+
declare class CameraListenerSystem {
|
|
363
|
+
private viewer;
|
|
364
|
+
private config;
|
|
365
|
+
private listeners;
|
|
366
|
+
private isInitialized;
|
|
367
|
+
/**
|
|
368
|
+
* 默认配置
|
|
369
|
+
*/
|
|
370
|
+
private static readonly DEFAULT_CONFIG;
|
|
371
|
+
/**
|
|
372
|
+
* 构造函数
|
|
373
|
+
*/
|
|
374
|
+
constructor(viewer: Viewer, config?: CameraListenerSystemConfig);
|
|
375
|
+
/**
|
|
376
|
+
* 初始化相机监听系统
|
|
377
|
+
*/
|
|
378
|
+
initialize(): void;
|
|
379
|
+
/**
|
|
380
|
+
* 获取特定系统的相机监听器
|
|
381
|
+
*/
|
|
382
|
+
getListener(systemName: string): CameraListener | undefined;
|
|
383
|
+
/**
|
|
384
|
+
* 添加系统监听器
|
|
385
|
+
*/
|
|
386
|
+
addListener(systemName: string, callback: (intensity: number) => void): void;
|
|
387
|
+
/**
|
|
388
|
+
* 移除系统监听器
|
|
389
|
+
*/
|
|
390
|
+
removeListener(systemName: string, callback: (intensity: number) => void): void;
|
|
391
|
+
/**
|
|
392
|
+
* 更新系统配置
|
|
393
|
+
*/
|
|
394
|
+
updateSystemConfig(systemName: string, config: Partial<CameraListenerConfig>): void;
|
|
395
|
+
/**
|
|
396
|
+
* 更新整体配置
|
|
397
|
+
*/
|
|
398
|
+
update(config: Partial<CameraListenerSystemConfig>): void;
|
|
399
|
+
/**
|
|
400
|
+
* 启用所有相机监听
|
|
401
|
+
*/
|
|
402
|
+
enableAll(): void;
|
|
403
|
+
/**
|
|
404
|
+
* 禁用所有相机监听
|
|
405
|
+
*/
|
|
406
|
+
disableAll(): void;
|
|
407
|
+
/**
|
|
408
|
+
* 启用特定系统的相机监听
|
|
409
|
+
*/
|
|
410
|
+
enableSystem(systemName: string): void;
|
|
411
|
+
/**
|
|
412
|
+
* 禁用特定系统的相机监听
|
|
413
|
+
*/
|
|
414
|
+
disableSystem(systemName: string): void;
|
|
415
|
+
/**
|
|
416
|
+
* 销毁相机监听系统
|
|
417
|
+
*/
|
|
418
|
+
destroy(): void;
|
|
419
|
+
/**
|
|
420
|
+
* 获取当前状态
|
|
421
|
+
*/
|
|
422
|
+
getStatus(): Record<string, boolean>;
|
|
423
|
+
/**
|
|
424
|
+
* 获取所有系统配置
|
|
425
|
+
*/
|
|
426
|
+
getConfig(): CameraListenerSystemConfig;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* 大气散射系统配置
|
|
431
|
+
*/
|
|
432
|
+
interface AtmosphereScatteringConfig {
|
|
433
|
+
enabled?: boolean;
|
|
434
|
+
atmosphereIntensity?: number;
|
|
435
|
+
rayleighIntensity?: number;
|
|
436
|
+
mieIntensity?: number;
|
|
437
|
+
absorptionIntensity?: number;
|
|
438
|
+
bDensity?: number;
|
|
439
|
+
bColor?: Color;
|
|
440
|
+
visibility?: CameraListenerConfig;
|
|
441
|
+
baseBetaR_R?: number;
|
|
442
|
+
baseBetaR_G?: number;
|
|
443
|
+
baseBetaR_B?: number;
|
|
444
|
+
baseBetaM_R?: number;
|
|
445
|
+
baseBetaM_G?: number;
|
|
446
|
+
baseBetaM_B?: number;
|
|
447
|
+
baseBetaA_R?: number;
|
|
448
|
+
baseBetaA_G?: number;
|
|
449
|
+
baseBetaA_B?: number;
|
|
450
|
+
hR?: number;
|
|
451
|
+
hM?: number;
|
|
452
|
+
hA?: number;
|
|
453
|
+
absorption_falloff?: number;
|
|
454
|
+
groundHeight?: number;
|
|
455
|
+
atmosphereThickness?: number;
|
|
456
|
+
enableGroundMix?: boolean;
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* 大气散射系统
|
|
460
|
+
*/
|
|
461
|
+
declare class AtmosphereScatteringSystem implements RenderSystem {
|
|
462
|
+
private viewer;
|
|
463
|
+
private config;
|
|
464
|
+
private isEnabled;
|
|
465
|
+
private stage?;
|
|
466
|
+
private preRenderListener?;
|
|
467
|
+
private cameraListener?;
|
|
468
|
+
private defaultSkyAtmosphereShow;
|
|
469
|
+
/**
|
|
470
|
+
* 默认可见性控制配置
|
|
471
|
+
*/
|
|
472
|
+
private static readonly DEFAULT_VISIBILITY_CONFIG;
|
|
473
|
+
/**
|
|
474
|
+
* 默认配置对象
|
|
475
|
+
*/
|
|
476
|
+
private static readonly DEFAULT_CONFIG;
|
|
477
|
+
/**
|
|
478
|
+
* 更新大气散射可见性
|
|
479
|
+
*/
|
|
480
|
+
private updateAtmosphereVisibility;
|
|
481
|
+
/**
|
|
482
|
+
* 构造函数
|
|
483
|
+
*/
|
|
484
|
+
constructor(viewer: Viewer, config?: AtmosphereScatteringConfig);
|
|
485
|
+
/**
|
|
486
|
+
* 初始化大气散射后处理效果
|
|
487
|
+
*/
|
|
488
|
+
initialize(): void;
|
|
489
|
+
/**
|
|
490
|
+
* 启用大气散射系统
|
|
491
|
+
*/
|
|
492
|
+
enable(): void;
|
|
493
|
+
/**
|
|
494
|
+
* 禁用大气散射系统
|
|
495
|
+
*/
|
|
496
|
+
disable(): void;
|
|
497
|
+
/**
|
|
498
|
+
* 更新大气散射系统的配置
|
|
499
|
+
*/
|
|
500
|
+
update(config: Partial<AtmosphereScatteringConfig>): void;
|
|
501
|
+
/**
|
|
502
|
+
* 获取当前状态
|
|
503
|
+
*/
|
|
504
|
+
getStatus(): boolean;
|
|
505
|
+
/**
|
|
506
|
+
* 获取当前的大气散射配置
|
|
507
|
+
*/
|
|
508
|
+
getConfig(): AtmosphereScatteringConfig;
|
|
509
|
+
/**
|
|
510
|
+
* 保存配置为 JSON 对象
|
|
511
|
+
*/
|
|
512
|
+
saveConfig(): any;
|
|
513
|
+
/**
|
|
514
|
+
* 获取大气散射着色器代码
|
|
515
|
+
*/
|
|
516
|
+
private getShader;
|
|
517
|
+
/**
|
|
518
|
+
* 销毁大气散射系统
|
|
519
|
+
*/
|
|
520
|
+
destroy(): void;
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* 雾效可见性控制配置
|
|
525
|
+
*/
|
|
526
|
+
interface FogVisibilityConfig$1 {
|
|
527
|
+
minHeight?: number;
|
|
528
|
+
maxHeight?: number;
|
|
529
|
+
transitionRange?: number;
|
|
530
|
+
enabled?: boolean;
|
|
531
|
+
}
|
|
532
|
+
/**
|
|
533
|
+
* 距离雾效配置
|
|
534
|
+
*/
|
|
535
|
+
interface DistanceFogConfig {
|
|
536
|
+
enabled?: boolean;
|
|
537
|
+
fogByDistance?: Cartesian4;
|
|
538
|
+
fogColor?: Color;
|
|
539
|
+
visibility?: FogVisibilityConfig$1;
|
|
540
|
+
}
|
|
541
|
+
/**
|
|
542
|
+
* 距离雾效系统
|
|
543
|
+
*/
|
|
544
|
+
declare class DistanceFogSystem implements RenderSystem {
|
|
545
|
+
private viewer;
|
|
546
|
+
private config;
|
|
547
|
+
private isEnabled;
|
|
548
|
+
private stage?;
|
|
549
|
+
private preRenderListener?;
|
|
550
|
+
/**
|
|
551
|
+
* 默认可见性控制配置
|
|
552
|
+
*/
|
|
553
|
+
private static readonly DEFAULT_VISIBILITY_CONFIG;
|
|
554
|
+
/**
|
|
555
|
+
* 默认配置
|
|
556
|
+
*/
|
|
557
|
+
private static readonly DEFAULT_CONFIG;
|
|
558
|
+
/**
|
|
559
|
+
* 更新雾效可见性
|
|
560
|
+
*/
|
|
561
|
+
private updateFogVisibility;
|
|
562
|
+
/**
|
|
563
|
+
* 创建距离雾效系统
|
|
564
|
+
* @param viewer - Cesium Viewer实例
|
|
565
|
+
* @param config - 距离雾效配置对象
|
|
566
|
+
*/
|
|
567
|
+
constructor(viewer: Viewer, config?: DistanceFogConfig);
|
|
568
|
+
/**
|
|
569
|
+
* 初始化距离雾效系统
|
|
570
|
+
*/
|
|
571
|
+
initialize(): void;
|
|
572
|
+
/**
|
|
573
|
+
* 启用距离雾效系统
|
|
574
|
+
*/
|
|
575
|
+
enable(): void;
|
|
576
|
+
/**
|
|
577
|
+
* 禁用距离雾效系统
|
|
578
|
+
*/
|
|
579
|
+
disable(): void;
|
|
580
|
+
/**
|
|
581
|
+
* 更新距离雾效系统配置
|
|
582
|
+
* @param config - 新的配置对象
|
|
583
|
+
*/
|
|
584
|
+
update(config: Partial<DistanceFogConfig>): void;
|
|
585
|
+
/**
|
|
586
|
+
* 获取距离雾效系统状态
|
|
587
|
+
* @returns 状态布尔值
|
|
588
|
+
*/
|
|
589
|
+
getStatus(): boolean;
|
|
590
|
+
/**
|
|
591
|
+
* 获取距离雾效系统配置
|
|
592
|
+
* @returns 配置对象
|
|
593
|
+
*/
|
|
594
|
+
getConfig(): DistanceFogConfig;
|
|
595
|
+
/**
|
|
596
|
+
* 保存配置为 JSON 对象
|
|
597
|
+
*/
|
|
598
|
+
saveConfig(): any;
|
|
599
|
+
/**
|
|
600
|
+
* 着色器
|
|
601
|
+
*/
|
|
602
|
+
private getShader;
|
|
603
|
+
/**
|
|
604
|
+
* 销毁距离雾效系统
|
|
605
|
+
*/
|
|
606
|
+
destroy(): void;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
/**
|
|
610
|
+
* 雾效可见性控制配置
|
|
611
|
+
*/
|
|
612
|
+
interface FogVisibilityConfig {
|
|
613
|
+
minHeight?: number;
|
|
614
|
+
maxHeight?: number;
|
|
615
|
+
transitionRange?: number;
|
|
616
|
+
enabled?: boolean;
|
|
617
|
+
}
|
|
618
|
+
/**
|
|
619
|
+
* 高度雾效配置
|
|
620
|
+
*/
|
|
621
|
+
interface HeightFogConfig {
|
|
622
|
+
enabled?: boolean;
|
|
623
|
+
fogByHeight?: Cartesian4;
|
|
624
|
+
fogColor?: Color;
|
|
625
|
+
visibility?: FogVisibilityConfig;
|
|
626
|
+
}
|
|
627
|
+
/**
|
|
628
|
+
* 高度雾效系统
|
|
629
|
+
*/
|
|
630
|
+
declare class HeightFogSystem implements RenderSystem {
|
|
631
|
+
private viewer;
|
|
632
|
+
private config;
|
|
633
|
+
private isEnabled;
|
|
634
|
+
private stage?;
|
|
635
|
+
private preRenderListener?;
|
|
636
|
+
/**
|
|
637
|
+
* 默认可见性控制配置
|
|
638
|
+
*/
|
|
639
|
+
private static readonly DEFAULT_VISIBILITY_CONFIG;
|
|
640
|
+
/**
|
|
641
|
+
* 默认配置
|
|
642
|
+
*/
|
|
643
|
+
private static readonly DEFAULT_CONFIG;
|
|
644
|
+
/**
|
|
645
|
+
* 更新雾效可见性
|
|
646
|
+
*/
|
|
647
|
+
private updateFogVisibility;
|
|
648
|
+
/**
|
|
649
|
+
* 创建高度雾效系统
|
|
650
|
+
* @param viewer - Cesium Viewer实例
|
|
651
|
+
* @param config - 高度雾效配置对象
|
|
652
|
+
*/
|
|
653
|
+
constructor(viewer: Viewer, config?: HeightFogConfig);
|
|
654
|
+
/**
|
|
655
|
+
* 初始化高度雾效系统
|
|
656
|
+
*/
|
|
657
|
+
initialize(): void;
|
|
658
|
+
/**
|
|
659
|
+
* 启用高度雾效系统
|
|
660
|
+
*/
|
|
661
|
+
enable(): void;
|
|
662
|
+
/**
|
|
663
|
+
* 禁用高度雾效系统
|
|
664
|
+
*/
|
|
665
|
+
disable(): void;
|
|
666
|
+
/**
|
|
667
|
+
* 更新高度雾效系统配置
|
|
668
|
+
* @param config - 新的配置对象
|
|
669
|
+
*/
|
|
670
|
+
update(config: Partial<HeightFogConfig>): void;
|
|
671
|
+
/**
|
|
672
|
+
* 获取高度雾效系统状态
|
|
673
|
+
* @returns 状态布尔值
|
|
674
|
+
*/
|
|
675
|
+
getStatus(): boolean;
|
|
676
|
+
/**
|
|
677
|
+
* 获取高度雾效系统配置
|
|
678
|
+
* @returns 配置对象
|
|
679
|
+
*/
|
|
680
|
+
getConfig(): HeightFogConfig;
|
|
681
|
+
/**
|
|
682
|
+
* 保存配置为 JSON 对象
|
|
683
|
+
*/
|
|
684
|
+
saveConfig(): any;
|
|
685
|
+
/**
|
|
686
|
+
* 着色器
|
|
687
|
+
* @returns
|
|
688
|
+
*/
|
|
689
|
+
private getShader;
|
|
690
|
+
/**
|
|
691
|
+
* 销毁高度雾效系统
|
|
692
|
+
*/
|
|
693
|
+
destroy(): void;
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
/**
|
|
697
|
+
* 后处理系统配置
|
|
698
|
+
*/
|
|
699
|
+
interface PostProcessingConfig {
|
|
700
|
+
enabled?: boolean;
|
|
701
|
+
brightness?: number;
|
|
702
|
+
contrast?: number;
|
|
703
|
+
saturation?: number;
|
|
704
|
+
gamma?: number;
|
|
705
|
+
temperature?: number;
|
|
706
|
+
tint?: number;
|
|
707
|
+
shadowColor?: Cartesian3;
|
|
708
|
+
shadowBlend?: number;
|
|
709
|
+
}
|
|
710
|
+
/**
|
|
711
|
+
* 后处理系统
|
|
712
|
+
*/
|
|
713
|
+
declare class PostProcessingSystem implements RenderSystem {
|
|
714
|
+
private viewer;
|
|
715
|
+
private config;
|
|
716
|
+
private isEnabled;
|
|
717
|
+
private stages;
|
|
718
|
+
/**
|
|
719
|
+
* 默认配置
|
|
720
|
+
*/
|
|
721
|
+
private static readonly DEFAULT_CONFIG;
|
|
722
|
+
/**
|
|
723
|
+
* 构造函数
|
|
724
|
+
* @param viewer
|
|
725
|
+
* @param config
|
|
726
|
+
*/
|
|
727
|
+
constructor(viewer: Viewer, config?: PostProcessingConfig);
|
|
728
|
+
/**
|
|
729
|
+
* 创建后处理阶段
|
|
730
|
+
* @returns
|
|
731
|
+
*/
|
|
732
|
+
private createStages;
|
|
733
|
+
/**
|
|
734
|
+
* 初始化后处理系统
|
|
735
|
+
*/
|
|
736
|
+
initialize(): void;
|
|
737
|
+
/**
|
|
738
|
+
* 启用后处理
|
|
739
|
+
* @returns
|
|
740
|
+
*/
|
|
741
|
+
enable(): void;
|
|
742
|
+
/**
|
|
743
|
+
* 禁用后处理
|
|
744
|
+
* @returns
|
|
745
|
+
*/
|
|
746
|
+
disable(): void;
|
|
747
|
+
/**
|
|
748
|
+
* 更新后处理配置
|
|
749
|
+
* @param config
|
|
750
|
+
*/
|
|
751
|
+
update(config: Partial<PostProcessingConfig>): void;
|
|
752
|
+
/**
|
|
753
|
+
* 获取后处理状态
|
|
754
|
+
* @returns
|
|
755
|
+
*/
|
|
756
|
+
getStatus(): boolean;
|
|
757
|
+
/**
|
|
758
|
+
* 获取后处理配置
|
|
759
|
+
* @returns
|
|
760
|
+
*/
|
|
761
|
+
getConfig(): PostProcessingConfig;
|
|
762
|
+
/**
|
|
763
|
+
* 保存配置为 JSON 对象
|
|
764
|
+
*/
|
|
765
|
+
saveConfig(): any;
|
|
766
|
+
/**
|
|
767
|
+
* 获取颜色调整着色器
|
|
768
|
+
* @returns
|
|
769
|
+
*/
|
|
770
|
+
private getColorAdjustmentShader;
|
|
771
|
+
/**
|
|
772
|
+
* 获取阴影颜色着色器
|
|
773
|
+
* @returns
|
|
774
|
+
*/
|
|
775
|
+
private getShadowColorShader;
|
|
776
|
+
/**
|
|
777
|
+
* 获取白平衡着色器
|
|
778
|
+
* @returns
|
|
779
|
+
*/
|
|
780
|
+
private getWhiteBalanceShader;
|
|
781
|
+
/**
|
|
782
|
+
* 销毁系统
|
|
783
|
+
*/
|
|
784
|
+
destroy(): void;
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
/**
|
|
788
|
+
* 水体系统配置接口
|
|
789
|
+
*/
|
|
790
|
+
interface WaterConfig {
|
|
791
|
+
/** 是否启用水体系统 */
|
|
792
|
+
enabled: boolean;
|
|
793
|
+
/** 水体颜色 */
|
|
794
|
+
color?: Color;
|
|
795
|
+
/** 水体透明度 */
|
|
796
|
+
opacity?: number;
|
|
797
|
+
/** 水体反射强度 */
|
|
798
|
+
reflectivity?: number;
|
|
799
|
+
/** 水体折射率 */
|
|
800
|
+
refractivity?: number;
|
|
801
|
+
/** 水面波动强度 */
|
|
802
|
+
waveStrength?: number;
|
|
803
|
+
/** 水面波动频率 */
|
|
804
|
+
waveFrequency?: number;
|
|
805
|
+
/** 水面波动速度 */
|
|
806
|
+
waveSpeed?: number;
|
|
807
|
+
/** 法线纹理重复频率 */
|
|
808
|
+
normalRepeat?: number;
|
|
809
|
+
/** 浅滩深度 */
|
|
810
|
+
shallowWaterDepth?: number;
|
|
811
|
+
/** 深度衰减系数 */
|
|
812
|
+
depthAttenuation?: number;
|
|
813
|
+
}
|
|
814
|
+
/**
|
|
815
|
+
* 水体系统类
|
|
816
|
+
* 负责管理场景中的水体效果
|
|
817
|
+
*/
|
|
818
|
+
declare class WaterSystem implements RenderSystem {
|
|
819
|
+
private viewer;
|
|
820
|
+
private config;
|
|
821
|
+
private waterPrimitive?;
|
|
822
|
+
private waterPrimitives;
|
|
823
|
+
private isInitialized;
|
|
824
|
+
private isEnabled;
|
|
825
|
+
private morphCompleteListener;
|
|
826
|
+
private postRenderListener;
|
|
827
|
+
private lastWaterPrimitiveParams;
|
|
828
|
+
private lastWaterPrimitiveConfig;
|
|
829
|
+
constructor(viewer: Viewer, config?: WaterConfig);
|
|
830
|
+
/**
|
|
831
|
+
* 初始化水体系统
|
|
832
|
+
*/
|
|
833
|
+
initialize(): void;
|
|
834
|
+
/**
|
|
835
|
+
* 创建水体几何
|
|
836
|
+
*/
|
|
837
|
+
private createWaterGeometry;
|
|
838
|
+
/**
|
|
839
|
+
* 加载水体数据
|
|
840
|
+
*/
|
|
841
|
+
private loadWaterData;
|
|
842
|
+
/**
|
|
843
|
+
* 创建调试用的水体
|
|
844
|
+
*/
|
|
845
|
+
private createDebugWater;
|
|
846
|
+
/**
|
|
847
|
+
* 配置水体样式
|
|
848
|
+
*/
|
|
849
|
+
private setupWaterStyling;
|
|
850
|
+
/**
|
|
851
|
+
* 设置事件监听器
|
|
852
|
+
*/
|
|
853
|
+
private setupEventListeners;
|
|
854
|
+
/**
|
|
855
|
+
* 更新水体动画
|
|
856
|
+
*/
|
|
857
|
+
private updateWaterAnimation;
|
|
858
|
+
/**
|
|
859
|
+
* 启用水体系统(带配置恢复)
|
|
860
|
+
*/
|
|
861
|
+
enable(): void;
|
|
862
|
+
/**
|
|
863
|
+
* 清理可能残留的引用
|
|
864
|
+
*/
|
|
865
|
+
private cleanupRemnants;
|
|
866
|
+
/**
|
|
867
|
+
* 重新加载水体数据
|
|
868
|
+
*/
|
|
869
|
+
private reloadWaterData;
|
|
870
|
+
/**
|
|
871
|
+
* 应用水体配置
|
|
872
|
+
*/
|
|
873
|
+
private applyWaterConfig;
|
|
874
|
+
/**
|
|
875
|
+
* 重新创建水体图元,应用当前配置
|
|
876
|
+
*/
|
|
877
|
+
private recreateWaterPrimitives;
|
|
878
|
+
/**
|
|
879
|
+
* 创建带配置的调试水体
|
|
880
|
+
*/
|
|
881
|
+
private createDebugWaterWithConfig;
|
|
882
|
+
/**
|
|
883
|
+
* 销毁水体图元但不重置配置
|
|
884
|
+
*/
|
|
885
|
+
private destroyWaterPrimitives;
|
|
886
|
+
/**
|
|
887
|
+
* 禁用水体系统(强制完全销毁)
|
|
888
|
+
*/
|
|
889
|
+
disable(): void;
|
|
890
|
+
private stopAllAnimations;
|
|
891
|
+
private removeAllWaterPrimitives;
|
|
892
|
+
private isWaterPrimitive;
|
|
893
|
+
private clearAllReferences;
|
|
894
|
+
private triggerGarbageCollection;
|
|
895
|
+
private verifyShutdown;
|
|
896
|
+
/**
|
|
897
|
+
* 更新水体配置
|
|
898
|
+
*/
|
|
899
|
+
update(config: Partial<WaterConfig>): void;
|
|
900
|
+
/**
|
|
901
|
+
* 更新水体样式
|
|
902
|
+
*/
|
|
903
|
+
private updateWaterStyle;
|
|
904
|
+
/**
|
|
905
|
+
* 获取系统状态
|
|
906
|
+
*/
|
|
907
|
+
getStatus(): boolean;
|
|
908
|
+
/**
|
|
909
|
+
* 获取当前配置
|
|
910
|
+
*/
|
|
911
|
+
getConfig(): WaterConfig;
|
|
912
|
+
/**
|
|
913
|
+
* 保存配置
|
|
914
|
+
*/
|
|
915
|
+
saveConfig(): WaterConfig;
|
|
916
|
+
/**
|
|
917
|
+
* 获取系统状态信息(调试用)
|
|
918
|
+
*/
|
|
919
|
+
getDebugInfo(): any;
|
|
920
|
+
/**
|
|
921
|
+
* 检查图元是否在场景中(安全方法)
|
|
922
|
+
*/
|
|
923
|
+
private isPrimitiveInScene;
|
|
924
|
+
/**
|
|
925
|
+
* 强制清理所有水体图元
|
|
926
|
+
*/
|
|
927
|
+
forceCleanup(): void;
|
|
928
|
+
/**
|
|
929
|
+
* 销毁水体系统
|
|
930
|
+
*/
|
|
931
|
+
destroy(): void;
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
/**
|
|
935
|
+
* Cesium图层接口
|
|
936
|
+
*/
|
|
937
|
+
interface CesiumLayer {
|
|
938
|
+
id: string;
|
|
939
|
+
name: string;
|
|
940
|
+
type: 'imagery' | 'terrain' | 'vector' | '3dtiles' | 'geojson' | 'kml' | 'custom';
|
|
941
|
+
url: string;
|
|
942
|
+
visible: boolean;
|
|
943
|
+
opacity: number;
|
|
944
|
+
options?: Record<string, any>;
|
|
945
|
+
cesiumLayer?: any;
|
|
946
|
+
}
|
|
947
|
+
/**
|
|
948
|
+
* 图层配置接口
|
|
949
|
+
*/
|
|
950
|
+
interface LayerConfig {
|
|
951
|
+
id?: string;
|
|
952
|
+
name: string;
|
|
953
|
+
type: CesiumLayer['type'];
|
|
954
|
+
url: string;
|
|
955
|
+
visible?: boolean;
|
|
956
|
+
opacity?: number;
|
|
957
|
+
options?: Record<string, any>;
|
|
958
|
+
}
|
|
959
|
+
/**
|
|
960
|
+
* 图层事件类型
|
|
961
|
+
*/
|
|
962
|
+
type LayerEventType = 'layer:add' | 'layer:remove' | 'layer:visible' | 'layer:opacity' | 'layer:error' | 'entity:add' | 'entity:remove' | 'entity:visible' | 'entity:opacity';
|
|
963
|
+
/**
|
|
964
|
+
* 实体/图元对象接口
|
|
965
|
+
*/
|
|
966
|
+
interface EntityItem {
|
|
967
|
+
id: string;
|
|
968
|
+
name: string;
|
|
969
|
+
type: 'entity' | 'primitive';
|
|
970
|
+
visible: boolean;
|
|
971
|
+
opacity: number;
|
|
972
|
+
children?: EntityItem[];
|
|
973
|
+
cesiumObject?: any;
|
|
974
|
+
}
|
|
975
|
+
/**
|
|
976
|
+
* 图层系统
|
|
977
|
+
* 纯逻辑层,不包含任何UI
|
|
978
|
+
*/
|
|
979
|
+
declare class LayerSystem implements RenderSystem {
|
|
980
|
+
private viewer;
|
|
981
|
+
private layers;
|
|
982
|
+
private entities;
|
|
983
|
+
private eventListeners;
|
|
984
|
+
constructor(render: Render);
|
|
985
|
+
initialize(): void;
|
|
986
|
+
enable(): void;
|
|
987
|
+
disable(): void;
|
|
988
|
+
update(config: any): void;
|
|
989
|
+
getStatus(): boolean;
|
|
990
|
+
getConfig?(): void;
|
|
991
|
+
saveConfig?(): void;
|
|
992
|
+
/**
|
|
993
|
+
* 加载地球已有的图层
|
|
994
|
+
*/
|
|
995
|
+
loadExistingLayers(): void;
|
|
996
|
+
/**
|
|
997
|
+
* 加载地球已有的实体和图元对象
|
|
998
|
+
*/
|
|
999
|
+
loadExistingEntities(): void;
|
|
1000
|
+
/**
|
|
1001
|
+
* 递归加载子实体
|
|
1002
|
+
*/
|
|
1003
|
+
private loadChildEntities;
|
|
1004
|
+
/**
|
|
1005
|
+
* 获取所有实体和图元对象
|
|
1006
|
+
*/
|
|
1007
|
+
getAllEntities(): EntityItem[];
|
|
1008
|
+
/**
|
|
1009
|
+
* 获取指定实体/图元对象
|
|
1010
|
+
*/
|
|
1011
|
+
getEntity(entityId: string): EntityItem | null;
|
|
1012
|
+
/**
|
|
1013
|
+
* 设置实体/图元可见性
|
|
1014
|
+
*/
|
|
1015
|
+
setEntityVisible(entityId: string, visible: boolean): boolean;
|
|
1016
|
+
/**
|
|
1017
|
+
* 设置实体/图元透明度
|
|
1018
|
+
*/
|
|
1019
|
+
setEntityOpacity(entityId: string, opacity: number): boolean;
|
|
1020
|
+
/**
|
|
1021
|
+
* 飞至实体/图元
|
|
1022
|
+
*/
|
|
1023
|
+
flyToEntity(entityId: string): Promise<boolean>;
|
|
1024
|
+
/**
|
|
1025
|
+
* 飞至图层
|
|
1026
|
+
*/
|
|
1027
|
+
flyToLayer(layerId: string): Promise<boolean>;
|
|
1028
|
+
/**
|
|
1029
|
+
* 获取影像图层的边界
|
|
1030
|
+
*/
|
|
1031
|
+
private getImageryLayerBounds;
|
|
1032
|
+
/**
|
|
1033
|
+
* 初始化事件系统
|
|
1034
|
+
*/
|
|
1035
|
+
private initializeEvents;
|
|
1036
|
+
/**
|
|
1037
|
+
* 添加图层
|
|
1038
|
+
*/
|
|
1039
|
+
addLayer(config: LayerConfig): Promise<CesiumLayer>;
|
|
1040
|
+
/**
|
|
1041
|
+
* 创建Cesium图层
|
|
1042
|
+
*/
|
|
1043
|
+
private createCesiumLayer;
|
|
1044
|
+
/**
|
|
1045
|
+
* 创建影像图层
|
|
1046
|
+
*/
|
|
1047
|
+
private createImageryLayer;
|
|
1048
|
+
/**
|
|
1049
|
+
* 创建地形图层
|
|
1050
|
+
*/
|
|
1051
|
+
private createTerrainLayer;
|
|
1052
|
+
/**
|
|
1053
|
+
* 创建矢量图层
|
|
1054
|
+
*/
|
|
1055
|
+
private createVectorLayer;
|
|
1056
|
+
/**
|
|
1057
|
+
* 创建3D Tiles图层
|
|
1058
|
+
*/
|
|
1059
|
+
private create3DTilesLayer;
|
|
1060
|
+
/**
|
|
1061
|
+
* 创建GeoJSON图层
|
|
1062
|
+
*/
|
|
1063
|
+
private createGeoJsonLayer;
|
|
1064
|
+
/**
|
|
1065
|
+
* 创建KML图层
|
|
1066
|
+
*/
|
|
1067
|
+
private createKmlLayer;
|
|
1068
|
+
/**
|
|
1069
|
+
* 创建自定义图层
|
|
1070
|
+
*/
|
|
1071
|
+
private createCustomLayer;
|
|
1072
|
+
/**
|
|
1073
|
+
* 移除图层
|
|
1074
|
+
*/
|
|
1075
|
+
removeLayer(layerId: string): boolean;
|
|
1076
|
+
/**
|
|
1077
|
+
* 从Cesium中移除图层
|
|
1078
|
+
*/
|
|
1079
|
+
private removeFromCesium;
|
|
1080
|
+
/**
|
|
1081
|
+
* 设置图层可见性
|
|
1082
|
+
*/
|
|
1083
|
+
setLayerVisible(layerId: string, visible: boolean): boolean;
|
|
1084
|
+
/**
|
|
1085
|
+
* 设置图层可见性(内部方法)
|
|
1086
|
+
*/
|
|
1087
|
+
private setLayerVisibility;
|
|
1088
|
+
/**
|
|
1089
|
+
* 设置图层透明度
|
|
1090
|
+
*/
|
|
1091
|
+
setLayerOpacity(layerId: string, opacity: number): boolean;
|
|
1092
|
+
/**
|
|
1093
|
+
* 设置图层透明度(内部方法)
|
|
1094
|
+
*/
|
|
1095
|
+
private setLayerOpacityInternal;
|
|
1096
|
+
/**
|
|
1097
|
+
* 设置3dtile图层透明度(内部方法)
|
|
1098
|
+
*/
|
|
1099
|
+
private set3dTileLayerOpacityInternal;
|
|
1100
|
+
/**
|
|
1101
|
+
* 获取所有图层
|
|
1102
|
+
*/
|
|
1103
|
+
getAllLayers(): CesiumLayer[];
|
|
1104
|
+
/**
|
|
1105
|
+
* 获取指定图层
|
|
1106
|
+
*/
|
|
1107
|
+
getLayer(layerId: string): CesiumLayer | null;
|
|
1108
|
+
/**
|
|
1109
|
+
* 通过名称查找图层
|
|
1110
|
+
*/
|
|
1111
|
+
findLayersByName(name: string): CesiumLayer[];
|
|
1112
|
+
/**
|
|
1113
|
+
* 通过类型查找图层
|
|
1114
|
+
*/
|
|
1115
|
+
getLayersByType(type: CesiumLayer['type']): CesiumLayer[];
|
|
1116
|
+
/**
|
|
1117
|
+
* 生成图层ID
|
|
1118
|
+
*/
|
|
1119
|
+
private generateLayerId;
|
|
1120
|
+
/**
|
|
1121
|
+
* 添加事件监听
|
|
1122
|
+
*/
|
|
1123
|
+
on(event: LayerEventType, callback: (layer: CesiumLayer, data?: any) => void): void;
|
|
1124
|
+
/**
|
|
1125
|
+
* 移除事件监听
|
|
1126
|
+
*/
|
|
1127
|
+
off(event: LayerEventType, callback: Function): void;
|
|
1128
|
+
/**
|
|
1129
|
+
* 触发事件
|
|
1130
|
+
*/
|
|
1131
|
+
private emitEvent;
|
|
1132
|
+
/**
|
|
1133
|
+
* 添加实体/图元对象
|
|
1134
|
+
*/
|
|
1135
|
+
addEntity(entity: EntityItem): void;
|
|
1136
|
+
/**
|
|
1137
|
+
* 移除实体/图元对象
|
|
1138
|
+
*/
|
|
1139
|
+
removeEntity(entityId: string): boolean;
|
|
1140
|
+
/**
|
|
1141
|
+
* 清空对象
|
|
1142
|
+
*/
|
|
1143
|
+
removeEntities(): void;
|
|
1144
|
+
/**
|
|
1145
|
+
* 销毁系统
|
|
1146
|
+
*/
|
|
1147
|
+
destroy(): void;
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1150
|
+
/**
|
|
1151
|
+
* 工具箱系统
|
|
1152
|
+
*/
|
|
1153
|
+
declare class ToolboxSystem implements RenderSystem {
|
|
1154
|
+
private tools;
|
|
1155
|
+
private eventListeners;
|
|
1156
|
+
private measurementSystem;
|
|
1157
|
+
private render;
|
|
1158
|
+
private currentTileset;
|
|
1159
|
+
constructor(render: Render);
|
|
1160
|
+
initialize(): void;
|
|
1161
|
+
enable(): void;
|
|
1162
|
+
disable(): void;
|
|
1163
|
+
update(config: any): void;
|
|
1164
|
+
getStatus(): boolean;
|
|
1165
|
+
destroy(): void;
|
|
1166
|
+
getConfig?(): void;
|
|
1167
|
+
saveConfig?(): void;
|
|
1168
|
+
/**
|
|
1169
|
+
* 初始化默认工具
|
|
1170
|
+
*/
|
|
1171
|
+
private initializeDefaultTools;
|
|
1172
|
+
/**
|
|
1173
|
+
* 设置事件监听
|
|
1174
|
+
*/
|
|
1175
|
+
private setupEventListeners;
|
|
1176
|
+
/**
|
|
1177
|
+
* 处理工具执行
|
|
1178
|
+
*/
|
|
1179
|
+
private handleToolExecute;
|
|
1180
|
+
/**
|
|
1181
|
+
* 添加工具
|
|
1182
|
+
*/
|
|
1183
|
+
addTool(config: ToolConfig): ToolItem;
|
|
1184
|
+
/**
|
|
1185
|
+
* 移除工具
|
|
1186
|
+
*/
|
|
1187
|
+
removeTool(toolId: string): boolean;
|
|
1188
|
+
/**
|
|
1189
|
+
* 获取所有工具
|
|
1190
|
+
*/
|
|
1191
|
+
getAllTools(): ToolItem[];
|
|
1192
|
+
/**
|
|
1193
|
+
* 获取测量工具
|
|
1194
|
+
*/
|
|
1195
|
+
getMeasurementTools(): ToolItem[];
|
|
1196
|
+
/**
|
|
1197
|
+
* 执行工具
|
|
1198
|
+
*/
|
|
1199
|
+
executeTool(toolId: string): boolean;
|
|
1200
|
+
loadTileset(url: string): Promise<void>;
|
|
1201
|
+
applyClipping(geojsonData: any, tilset: any): void;
|
|
1202
|
+
/**
|
|
1203
|
+
* 添加事件监听
|
|
1204
|
+
*/
|
|
1205
|
+
on(event: string, callback: Function): void;
|
|
1206
|
+
/**
|
|
1207
|
+
* 触发事件
|
|
1208
|
+
*/
|
|
1209
|
+
private emitEvent;
|
|
1210
|
+
/**
|
|
1211
|
+
* 生成ID
|
|
1212
|
+
*/
|
|
1213
|
+
private generateId;
|
|
1214
|
+
}
|
|
1215
|
+
/**
|
|
1216
|
+
* 工具项接口
|
|
1217
|
+
*/
|
|
1218
|
+
interface ToolItem {
|
|
1219
|
+
id: string;
|
|
1220
|
+
name: string;
|
|
1221
|
+
icon: string;
|
|
1222
|
+
tooltip: string;
|
|
1223
|
+
enabled: boolean;
|
|
1224
|
+
alias?: string;
|
|
1225
|
+
}
|
|
1226
|
+
/**
|
|
1227
|
+
* 工具配置接口
|
|
1228
|
+
*/
|
|
1229
|
+
interface ToolConfig {
|
|
1230
|
+
id?: string;
|
|
1231
|
+
name: string;
|
|
1232
|
+
icon?: string;
|
|
1233
|
+
tooltip?: string;
|
|
1234
|
+
alias?: string;
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1237
|
+
/**
|
|
1238
|
+
* 测量系统
|
|
1239
|
+
*/
|
|
1240
|
+
declare class MeasurementSystem implements RenderSystem {
|
|
1241
|
+
private engine;
|
|
1242
|
+
private measure;
|
|
1243
|
+
private eventListeners;
|
|
1244
|
+
constructor(engine: any);
|
|
1245
|
+
enable(): void;
|
|
1246
|
+
disable(): void;
|
|
1247
|
+
update(config: any): void;
|
|
1248
|
+
getStatus(): boolean;
|
|
1249
|
+
getConfig?(): void;
|
|
1250
|
+
saveConfig?(): void;
|
|
1251
|
+
/**
|
|
1252
|
+
* 初始化测量系统
|
|
1253
|
+
*/
|
|
1254
|
+
initialize(): void;
|
|
1255
|
+
/**
|
|
1256
|
+
* 开始测量
|
|
1257
|
+
*/
|
|
1258
|
+
startMeasurement(alias: string): void;
|
|
1259
|
+
/**
|
|
1260
|
+
* 结束测量
|
|
1261
|
+
*/
|
|
1262
|
+
endMeasurement(alias: string): void;
|
|
1263
|
+
/**
|
|
1264
|
+
* 清空测量
|
|
1265
|
+
*/
|
|
1266
|
+
clearMeasurement(): void;
|
|
1267
|
+
/**
|
|
1268
|
+
* 获取测量结果数据
|
|
1269
|
+
*/
|
|
1270
|
+
getMeasureResultData(): any[];
|
|
1271
|
+
/**
|
|
1272
|
+
* 获取选中的测量项
|
|
1273
|
+
*/
|
|
1274
|
+
getSelectedItem(): any;
|
|
1275
|
+
/**
|
|
1276
|
+
* 根据别名获取测量项
|
|
1277
|
+
*/
|
|
1278
|
+
private getItemByAlias;
|
|
1279
|
+
/**
|
|
1280
|
+
* 添加事件监听
|
|
1281
|
+
*/
|
|
1282
|
+
on(event: string, callback: Function): void;
|
|
1283
|
+
/**
|
|
1284
|
+
* 移除事件监听
|
|
1285
|
+
*/
|
|
1286
|
+
off(event: string, callback: Function): void;
|
|
1287
|
+
/**
|
|
1288
|
+
* 触发事件
|
|
1289
|
+
*/
|
|
1290
|
+
private emitEvent;
|
|
1291
|
+
/**
|
|
1292
|
+
* 销毁测量系统
|
|
1293
|
+
*/
|
|
1294
|
+
destroy(): void;
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
/**
|
|
1298
|
+
* 面板基类
|
|
1299
|
+
* 所有控制面板都应该继承这个基类
|
|
1300
|
+
*/
|
|
1301
|
+
declare abstract class PanelBase {
|
|
1302
|
+
protected container: HTMLElement | null;
|
|
1303
|
+
protected panelElement: HTMLElement | null;
|
|
1304
|
+
protected isVisible: boolean;
|
|
1305
|
+
protected panelId: string;
|
|
1306
|
+
protected onClose?: () => void;
|
|
1307
|
+
protected config: PanelConfig;
|
|
1308
|
+
constructor(config?: PanelConfig);
|
|
1309
|
+
/**
|
|
1310
|
+
* 初始化面板
|
|
1311
|
+
*/
|
|
1312
|
+
abstract init(): Promise<void>;
|
|
1313
|
+
/**
|
|
1314
|
+
* 创建面板
|
|
1315
|
+
*/
|
|
1316
|
+
protected abstract createPanel(): void;
|
|
1317
|
+
/**
|
|
1318
|
+
* 显示面板
|
|
1319
|
+
*/
|
|
1320
|
+
show(): void;
|
|
1321
|
+
/**
|
|
1322
|
+
* 隐藏面板
|
|
1323
|
+
*/
|
|
1324
|
+
hide(): void;
|
|
1325
|
+
/**
|
|
1326
|
+
* 切换显示/隐藏
|
|
1327
|
+
*/
|
|
1328
|
+
toggle(): boolean;
|
|
1329
|
+
/**
|
|
1330
|
+
* 更新可见性
|
|
1331
|
+
*/
|
|
1332
|
+
protected updateVisibility(): void;
|
|
1333
|
+
/**
|
|
1334
|
+
* 设置面板位置
|
|
1335
|
+
*/
|
|
1336
|
+
setPosition(left: number, top?: number): void;
|
|
1337
|
+
/**
|
|
1338
|
+
* 设置面板尺寸
|
|
1339
|
+
*/
|
|
1340
|
+
setSize(width: number, height: string | number): void;
|
|
1341
|
+
/**
|
|
1342
|
+
* 获取面板状态
|
|
1343
|
+
*/
|
|
1344
|
+
getState(): PanelState;
|
|
1345
|
+
/**
|
|
1346
|
+
* 获取或创建容器
|
|
1347
|
+
*/
|
|
1348
|
+
protected getOrCreateContainer(containerId: string): HTMLElement;
|
|
1349
|
+
/**
|
|
1350
|
+
* 获取或创建容器
|
|
1351
|
+
*/
|
|
1352
|
+
protected getOrCreateContainerWithClass(containerId: string): HTMLElement;
|
|
1353
|
+
/**
|
|
1354
|
+
* 面板显示时的回调
|
|
1355
|
+
*/
|
|
1356
|
+
protected onShow(): void;
|
|
1357
|
+
/**
|
|
1358
|
+
* 面板隐藏时的回调
|
|
1359
|
+
*/
|
|
1360
|
+
protected onHide(): void;
|
|
1361
|
+
/**
|
|
1362
|
+
* 销毁面板
|
|
1363
|
+
*/
|
|
1364
|
+
destroy(): void;
|
|
1365
|
+
}
|
|
1366
|
+
/**
|
|
1367
|
+
* 面板配置接口
|
|
1368
|
+
*/
|
|
1369
|
+
interface PanelConfig {
|
|
1370
|
+
position?: 'left' | 'right';
|
|
1371
|
+
width?: number;
|
|
1372
|
+
height?: string | number;
|
|
1373
|
+
minWidth?: number;
|
|
1374
|
+
maxWidth?: number;
|
|
1375
|
+
zIndex?: number;
|
|
1376
|
+
onClose?: () => void;
|
|
1377
|
+
}
|
|
1378
|
+
/**
|
|
1379
|
+
* 面板状态接口
|
|
1380
|
+
*/
|
|
1381
|
+
interface PanelState {
|
|
1382
|
+
isVisible: boolean;
|
|
1383
|
+
panelId: string;
|
|
1384
|
+
config: PanelConfig;
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1387
|
+
/**
|
|
1388
|
+
* 属性项配置接口
|
|
1389
|
+
*/
|
|
1390
|
+
interface PropertyItemConfig {
|
|
1391
|
+
/** 属性键名 */
|
|
1392
|
+
key: string;
|
|
1393
|
+
/** 显示名称 */
|
|
1394
|
+
name: string;
|
|
1395
|
+
/** 属性类型 */
|
|
1396
|
+
type: 'text' | 'number' | 'checkbox' | 'select' | 'color' | 'date' | 'label' | 'custom';
|
|
1397
|
+
/** 属性值 */
|
|
1398
|
+
value?: any;
|
|
1399
|
+
/** 分组名称 */
|
|
1400
|
+
group?: string;
|
|
1401
|
+
/** 是否只读 */
|
|
1402
|
+
readonly?: boolean;
|
|
1403
|
+
/** 是否隐藏 */
|
|
1404
|
+
hidden?: boolean;
|
|
1405
|
+
/** 占位符 */
|
|
1406
|
+
placeholder?: string;
|
|
1407
|
+
/** 最小值(数字类型) */
|
|
1408
|
+
min?: number;
|
|
1409
|
+
/** 最大值(数字类型) */
|
|
1410
|
+
max?: number;
|
|
1411
|
+
/** 步长(数字类型) */
|
|
1412
|
+
step?: number;
|
|
1413
|
+
/** 选项列表(选择类型) */
|
|
1414
|
+
options?: Array<{
|
|
1415
|
+
label: string;
|
|
1416
|
+
value: any;
|
|
1417
|
+
}>;
|
|
1418
|
+
/** 自定义属性 */
|
|
1419
|
+
[key: string]: any;
|
|
1420
|
+
}
|
|
1421
|
+
/**
|
|
1422
|
+
* 属性组配置
|
|
1423
|
+
*/
|
|
1424
|
+
interface PropertyGroupConfig {
|
|
1425
|
+
/** 组名 */
|
|
1426
|
+
name: string;
|
|
1427
|
+
/** 是否展开 */
|
|
1428
|
+
expanded?: boolean;
|
|
1429
|
+
/** 属性列表 */
|
|
1430
|
+
items: PropertyItemConfig[];
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
/**
|
|
1434
|
+
* 搜索结果接口
|
|
1435
|
+
*/
|
|
1436
|
+
interface SearchResult {
|
|
1437
|
+
id: string;
|
|
1438
|
+
name: string;
|
|
1439
|
+
address: string;
|
|
1440
|
+
location: {
|
|
1441
|
+
lon: number;
|
|
1442
|
+
lat: number;
|
|
1443
|
+
};
|
|
1444
|
+
boundingBox?: Rectangle;
|
|
1445
|
+
poiType?: string;
|
|
1446
|
+
}
|
|
1447
|
+
/**
|
|
1448
|
+
* 瓦片范围接口
|
|
1449
|
+
*/
|
|
1450
|
+
interface TileRange {
|
|
1451
|
+
lon_min: number;
|
|
1452
|
+
lat_min: number;
|
|
1453
|
+
lon_max: number;
|
|
1454
|
+
lat_max: number;
|
|
1455
|
+
center_lon: number;
|
|
1456
|
+
center_lat: number;
|
|
1457
|
+
}
|
|
1458
|
+
/**
|
|
1459
|
+
* 场景系统 - 处理地名搜索和瓦片号查询定位的业务逻辑
|
|
1460
|
+
*/
|
|
1461
|
+
declare class SceneSystem implements RenderSystem {
|
|
1462
|
+
private viewer;
|
|
1463
|
+
private searchResults;
|
|
1464
|
+
private searchHistory;
|
|
1465
|
+
private maxHistorySize;
|
|
1466
|
+
constructor(render: Render);
|
|
1467
|
+
initialize(): void;
|
|
1468
|
+
enable(): void;
|
|
1469
|
+
disable(): void;
|
|
1470
|
+
update(config: any): void;
|
|
1471
|
+
getStatus(): boolean;
|
|
1472
|
+
destroy(): void;
|
|
1473
|
+
getConfig?(): void;
|
|
1474
|
+
saveConfig?(): void;
|
|
1475
|
+
/**
|
|
1476
|
+
* 根据地名,计算经纬度(天地图API)
|
|
1477
|
+
*/
|
|
1478
|
+
getLocationFromPointName(pointAddress: string): Promise<{
|
|
1479
|
+
lon: number;
|
|
1480
|
+
lat: number;
|
|
1481
|
+
} | false>;
|
|
1482
|
+
/**
|
|
1483
|
+
* 地名搜索(天地图API)
|
|
1484
|
+
*/
|
|
1485
|
+
searchLocationByName(keyword: string): Promise<SearchResult[]>;
|
|
1486
|
+
/**
|
|
1487
|
+
* 模糊搜索 - 输入1个文字即返回建议
|
|
1488
|
+
*/
|
|
1489
|
+
fuzzySearch(keyword: string): Promise<SearchResult[]>;
|
|
1490
|
+
/**
|
|
1491
|
+
* 根据瓦片号获取瓦片范围
|
|
1492
|
+
*/
|
|
1493
|
+
getTileRange(x: number, y: number, z: number, flag?: string): TileRange;
|
|
1494
|
+
/**
|
|
1495
|
+
* 定位到指定坐标
|
|
1496
|
+
*/
|
|
1497
|
+
flyToLocation(lon: number, lat: number, height?: number): void;
|
|
1498
|
+
/**
|
|
1499
|
+
* 根据瓦片号定位
|
|
1500
|
+
*/
|
|
1501
|
+
flyToTile(tileX: number, tileY: number, zoom: number): void;
|
|
1502
|
+
/**
|
|
1503
|
+
* 计算缩放级别对应的距离
|
|
1504
|
+
*/
|
|
1505
|
+
private calculateZoomLevelToDistance;
|
|
1506
|
+
/**
|
|
1507
|
+
* 添加到搜索历史
|
|
1508
|
+
*/
|
|
1509
|
+
private addToSearchHistory;
|
|
1510
|
+
/**
|
|
1511
|
+
* 加载搜索历史
|
|
1512
|
+
*/
|
|
1513
|
+
private loadSearchHistory;
|
|
1514
|
+
/**
|
|
1515
|
+
* 保存搜索历史
|
|
1516
|
+
*/
|
|
1517
|
+
private saveSearchHistory;
|
|
1518
|
+
/**
|
|
1519
|
+
* 获取搜索历史
|
|
1520
|
+
*/
|
|
1521
|
+
getSearchHistory(): string[];
|
|
1522
|
+
/**
|
|
1523
|
+
* 清除搜索历史
|
|
1524
|
+
*/
|
|
1525
|
+
clearSearchHistory(): void;
|
|
1526
|
+
/**
|
|
1527
|
+
* 获取搜索结果
|
|
1528
|
+
*/
|
|
1529
|
+
getSearchResults(): SearchResult[];
|
|
1530
|
+
/**
|
|
1531
|
+
* 获取对象属性
|
|
1532
|
+
* @param obj
|
|
1533
|
+
*/
|
|
1534
|
+
getObjectProperties(obj: any): PropertyGroupConfig[];
|
|
1535
|
+
}
|
|
1536
|
+
|
|
1537
|
+
/**
|
|
1538
|
+
* 城市数据接口
|
|
1539
|
+
*/
|
|
1540
|
+
interface CityData {
|
|
1541
|
+
id: number;
|
|
1542
|
+
name: string;
|
|
1543
|
+
p_name_alias: string;
|
|
1544
|
+
adcode: number;
|
|
1545
|
+
url?: string;
|
|
1546
|
+
publish_url?: Record<string, string>;
|
|
1547
|
+
publish_type?: Record<string, boolean>;
|
|
1548
|
+
}
|
|
1549
|
+
/**
|
|
1550
|
+
* 生产统计接口
|
|
1551
|
+
*/
|
|
1552
|
+
interface ProductionStats {
|
|
1553
|
+
total_tile_count: number;
|
|
1554
|
+
total_area: number;
|
|
1555
|
+
total_buia_count: number;
|
|
1556
|
+
city_count: number;
|
|
1557
|
+
}
|
|
1558
|
+
/**
|
|
1559
|
+
* 建筑系统
|
|
1560
|
+
*/
|
|
1561
|
+
declare class BuildingSystem implements RenderSystem {
|
|
1562
|
+
private cities;
|
|
1563
|
+
private currentCity;
|
|
1564
|
+
private viewer;
|
|
1565
|
+
private tileset;
|
|
1566
|
+
private eventListeners;
|
|
1567
|
+
private token;
|
|
1568
|
+
private tilesetMaps;
|
|
1569
|
+
constructor(render: Render);
|
|
1570
|
+
initialize(): void;
|
|
1571
|
+
enable(): void;
|
|
1572
|
+
disable(): void;
|
|
1573
|
+
update(config: any): void;
|
|
1574
|
+
getStatus(): boolean;
|
|
1575
|
+
destroy(): void;
|
|
1576
|
+
getConfig?(): void;
|
|
1577
|
+
saveConfig?(): void;
|
|
1578
|
+
setToken(token: string): void;
|
|
1579
|
+
/**
|
|
1580
|
+
* 设置Cesium Viewer
|
|
1581
|
+
*/
|
|
1582
|
+
setViewer(viewer: any): void;
|
|
1583
|
+
/**
|
|
1584
|
+
* 获取城市数据
|
|
1585
|
+
*/
|
|
1586
|
+
fetchCityData(): Promise<CityData[]>;
|
|
1587
|
+
/**
|
|
1588
|
+
* 获取所有城市
|
|
1589
|
+
*/
|
|
1590
|
+
getCities(): CityData[];
|
|
1591
|
+
/**
|
|
1592
|
+
* 搜索城市
|
|
1593
|
+
*/
|
|
1594
|
+
searchCities(keyword: string): CityData[];
|
|
1595
|
+
/**
|
|
1596
|
+
* 获取生产统计数据
|
|
1597
|
+
*/
|
|
1598
|
+
getProductionStats(): Promise<ProductionStats>;
|
|
1599
|
+
/**
|
|
1600
|
+
* 加载已生产区域
|
|
1601
|
+
*/
|
|
1602
|
+
addAreaGeoJsonLayer(geoJsonData: any): Promise<void>;
|
|
1603
|
+
/**
|
|
1604
|
+
* 加载城市模型
|
|
1605
|
+
*/
|
|
1606
|
+
loadCityModel(city: CityData): Promise<void>;
|
|
1607
|
+
/**
|
|
1608
|
+
* 获取当前城市
|
|
1609
|
+
*/
|
|
1610
|
+
getCurrentCity(): CityData | null;
|
|
1611
|
+
/**
|
|
1612
|
+
* 加载3DTiles模型
|
|
1613
|
+
*/
|
|
1614
|
+
private load3DTiles;
|
|
1615
|
+
/**
|
|
1616
|
+
* 根据城市名称加载表亲模型
|
|
1617
|
+
* @param name 城市名称
|
|
1618
|
+
* @param type 表亲类型数组
|
|
1619
|
+
* @returns
|
|
1620
|
+
*/
|
|
1621
|
+
loadModelByCityName(name: string, type?: string[]): Promise<void>;
|
|
1622
|
+
/**
|
|
1623
|
+
* 根据区域编码加载表亲模型
|
|
1624
|
+
* @param adcode 区域编码
|
|
1625
|
+
* @param type 表情类型数组
|
|
1626
|
+
* @returns
|
|
1627
|
+
*/
|
|
1628
|
+
loadModelByADCode(adcode: number, type?: string[]): Promise<void>;
|
|
1629
|
+
/**
|
|
1630
|
+
* 根据城市名称获取表亲模型地址
|
|
1631
|
+
* @param name 城市名称
|
|
1632
|
+
* @param type 表亲类型数组
|
|
1633
|
+
* @returns 表亲模型地址Map
|
|
1634
|
+
*/
|
|
1635
|
+
getTilesetUrlByCityName(name: string, type?: string[]): Promise<Map<string, string>>;
|
|
1636
|
+
/**
|
|
1637
|
+
* 根据区域编码获取表亲模型地址
|
|
1638
|
+
* @param adcode 区域编码
|
|
1639
|
+
* @param type 表亲类型数组
|
|
1640
|
+
* @returns 表亲模型地址Map
|
|
1641
|
+
*/
|
|
1642
|
+
getTilesetUrlByADCode(adcode: number, type?: string[]): Promise<Map<string, string>>;
|
|
1643
|
+
/**
|
|
1644
|
+
* 根据类型缩放获取类型名称
|
|
1645
|
+
* @param feature 类型缩写
|
|
1646
|
+
* @returns 类型名称
|
|
1647
|
+
*/
|
|
1648
|
+
private getTypeByFeature;
|
|
1649
|
+
/**
|
|
1650
|
+
* 根据城市名称或区域编码删除表亲模型
|
|
1651
|
+
* @param id 城市名称或区域编码
|
|
1652
|
+
* @returns 是否删除成功
|
|
1653
|
+
*/
|
|
1654
|
+
removeModelByNameOrADCode(id: string | number): boolean;
|
|
1655
|
+
/**
|
|
1656
|
+
* 移除全部表亲模型
|
|
1657
|
+
*/
|
|
1658
|
+
removeAllModels(): void;
|
|
1659
|
+
/**
|
|
1660
|
+
* 根据城市名称从开放平台加载表亲模型
|
|
1661
|
+
* @param token
|
|
1662
|
+
* @param name 城市名称
|
|
1663
|
+
* @param type 表亲类型数组
|
|
1664
|
+
* @returns
|
|
1665
|
+
*/
|
|
1666
|
+
loadOpenModelByCityName(name: string, type?: string[]): Promise<void>;
|
|
1667
|
+
/**
|
|
1668
|
+
* 根据区域编码从开放平台加载表亲模型
|
|
1669
|
+
* @param token
|
|
1670
|
+
* @param adcode 区域编码
|
|
1671
|
+
* @param type 表亲类型数组
|
|
1672
|
+
* @returns
|
|
1673
|
+
*/
|
|
1674
|
+
loadOpenModelByADCode(adcode: number, type?: string[]): Promise<void>;
|
|
1675
|
+
/**
|
|
1676
|
+
* 根据区域编码获取开放平台表亲模型地址
|
|
1677
|
+
* @param adcode 区域编码
|
|
1678
|
+
* @param type 表亲类型数组
|
|
1679
|
+
* @returns 表亲模型地址Map
|
|
1680
|
+
*/
|
|
1681
|
+
getOpenUrlByADCode(adcode: number, type?: string[]): Promise<Map<string, string>>;
|
|
1682
|
+
/**
|
|
1683
|
+
* 根据城市名称获取开放平台表亲模型地址
|
|
1684
|
+
* @param name 城市名称
|
|
1685
|
+
* @param type 表情类型数组
|
|
1686
|
+
* @returns 表亲模型地址Map
|
|
1687
|
+
*/
|
|
1688
|
+
getOpenUrlByCityName(name: string, type?: string[]): Promise<Map<string, string>>;
|
|
1689
|
+
/**
|
|
1690
|
+
* 添加事件监听
|
|
1691
|
+
*/
|
|
1692
|
+
on(event: string, callback: Function): void;
|
|
1693
|
+
/**
|
|
1694
|
+
* 触发事件
|
|
1695
|
+
*/
|
|
1696
|
+
private emitEvent;
|
|
1697
|
+
}
|
|
1698
|
+
|
|
1699
|
+
/**
|
|
1700
|
+
* 3DTiles搜索系统类
|
|
1701
|
+
* 负责处理3DTiles的加载、管理和搜索逻辑
|
|
1702
|
+
*/
|
|
1703
|
+
declare class TilesetSearchSystem implements RenderSystem {
|
|
1704
|
+
private viewer;
|
|
1705
|
+
private tileset3dUrl;
|
|
1706
|
+
private currentTileset;
|
|
1707
|
+
private container;
|
|
1708
|
+
private statsContainer;
|
|
1709
|
+
private cityList;
|
|
1710
|
+
private tileCoordinatesLayer;
|
|
1711
|
+
private render;
|
|
1712
|
+
constructor(render: Render);
|
|
1713
|
+
initialize(): void;
|
|
1714
|
+
enable(): void;
|
|
1715
|
+
disable(): void;
|
|
1716
|
+
update(config: any): void;
|
|
1717
|
+
getStatus(): boolean;
|
|
1718
|
+
getConfig?(): void;
|
|
1719
|
+
saveConfig?(): void;
|
|
1720
|
+
/**
|
|
1721
|
+
* 加载城市列表
|
|
1722
|
+
*/
|
|
1723
|
+
private loadCityList;
|
|
1724
|
+
/**
|
|
1725
|
+
* 根据城市编码获取城市详细信息
|
|
1726
|
+
*/
|
|
1727
|
+
private getCityInfo;
|
|
1728
|
+
/**
|
|
1729
|
+
* 匹配城市(支持城市名称或编码匹配)
|
|
1730
|
+
*/
|
|
1731
|
+
private matchCity;
|
|
1732
|
+
/**
|
|
1733
|
+
* 拼接3DTiles地址
|
|
1734
|
+
*/
|
|
1735
|
+
private buildTilesetUrl;
|
|
1736
|
+
/**
|
|
1737
|
+
* 加载3DTiles
|
|
1738
|
+
* @param url - 3DTiles地址
|
|
1739
|
+
* @param options - 加载选项
|
|
1740
|
+
*/
|
|
1741
|
+
loadTileset(url: string, options?: {
|
|
1742
|
+
maximumScreenSpaceError?: number;
|
|
1743
|
+
maximumMemoryUsage?: number;
|
|
1744
|
+
cacheBytes?: number;
|
|
1745
|
+
}): Promise<void>;
|
|
1746
|
+
/**
|
|
1747
|
+
* 根据城市名称或编码加载3DTiles
|
|
1748
|
+
* @param keyword - 城市名称或编码
|
|
1749
|
+
* @param options - 加载选项
|
|
1750
|
+
*/
|
|
1751
|
+
loadCityTileset(keyword: string, options?: {
|
|
1752
|
+
maximumScreenSpaceError?: number;
|
|
1753
|
+
maximumMemoryUsage?: number;
|
|
1754
|
+
cacheBytes?: number;
|
|
1755
|
+
}): Promise<void>;
|
|
1756
|
+
/**
|
|
1757
|
+
* 根据输入类型加载3DTiles
|
|
1758
|
+
* @param type - 输入类型:'url' | 'city'
|
|
1759
|
+
* @param value - 输入值
|
|
1760
|
+
* @param options - 加载选项
|
|
1761
|
+
*/
|
|
1762
|
+
loadByType(type: 'url' | 'city', value: string, options?: {
|
|
1763
|
+
maximumScreenSpaceError?: number;
|
|
1764
|
+
maximumMemoryUsage?: number;
|
|
1765
|
+
cacheBytes?: number;
|
|
1766
|
+
}): Promise<void>;
|
|
1767
|
+
/**
|
|
1768
|
+
* 清空之前的3dtiles
|
|
1769
|
+
*/
|
|
1770
|
+
removePreviousTileset(): void;
|
|
1771
|
+
/**
|
|
1772
|
+
* 获取当前tileset
|
|
1773
|
+
*/
|
|
1774
|
+
getCurrentTileset(): any;
|
|
1775
|
+
/**
|
|
1776
|
+
* 获取当前3dtiles地址
|
|
1777
|
+
*/
|
|
1778
|
+
getCurrentUrl(): string;
|
|
1779
|
+
/**
|
|
1780
|
+
* 设置控件容器(用于显隐控制)
|
|
1781
|
+
*/
|
|
1782
|
+
setContainer(container: HTMLElement): void;
|
|
1783
|
+
/**
|
|
1784
|
+
* 设置性能监控容器
|
|
1785
|
+
*/
|
|
1786
|
+
setStatsContainer(container: HTMLElement): void;
|
|
1787
|
+
/**
|
|
1788
|
+
* 显示控件
|
|
1789
|
+
*/
|
|
1790
|
+
showControl(): void;
|
|
1791
|
+
/**
|
|
1792
|
+
* 隐藏控件
|
|
1793
|
+
*/
|
|
1794
|
+
hideControl(): void;
|
|
1795
|
+
/**
|
|
1796
|
+
* 显示性能监控面板
|
|
1797
|
+
*/
|
|
1798
|
+
showStatsPanel(): void;
|
|
1799
|
+
/**
|
|
1800
|
+
* 隐藏性能监控面板
|
|
1801
|
+
*/
|
|
1802
|
+
hideStatsPanel(): void;
|
|
1803
|
+
/**
|
|
1804
|
+
* 检查控件是否可见
|
|
1805
|
+
*/
|
|
1806
|
+
isControlVisible(): boolean;
|
|
1807
|
+
/**
|
|
1808
|
+
* 检查性能监控面板是否可见
|
|
1809
|
+
*/
|
|
1810
|
+
isStatsPanelVisible(): boolean;
|
|
1811
|
+
/**
|
|
1812
|
+
* 设置3DTiles的样式
|
|
1813
|
+
* @param style - 样式名称或样式对象
|
|
1814
|
+
*/
|
|
1815
|
+
setTilesetStyle(style: string | any): void;
|
|
1816
|
+
setStyleTest(fieldName: string, operator: string, heightValue: number): void;
|
|
1817
|
+
/**
|
|
1818
|
+
* 获取预定义样式
|
|
1819
|
+
* @param styleName - 样式名称
|
|
1820
|
+
*/
|
|
1821
|
+
private getPredefinedStyle;
|
|
1822
|
+
/**
|
|
1823
|
+
* 获取所有可用的预定义样式名称
|
|
1824
|
+
*/
|
|
1825
|
+
getAvailableStyles(): string[];
|
|
1826
|
+
/**
|
|
1827
|
+
* 重置为默认样式
|
|
1828
|
+
*/
|
|
1829
|
+
resetToDefaultStyle(): void;
|
|
1830
|
+
openInner3dtilesInspector(enabled: boolean): void;
|
|
1831
|
+
openInnerGrid(enabled: boolean): void;
|
|
1832
|
+
openLonLatGrid(enabled: boolean): void;
|
|
1833
|
+
changeGridSize(size: number): void;
|
|
1834
|
+
/**
|
|
1835
|
+
* 销毁系统资源
|
|
1836
|
+
*/
|
|
1837
|
+
destroy(): void;
|
|
1838
|
+
}
|
|
1839
|
+
|
|
1840
|
+
/**
|
|
1841
|
+
* 渲染引擎配置接口
|
|
1842
|
+
*/
|
|
1843
|
+
interface RenderConfig {
|
|
1844
|
+
engine?: any;
|
|
1845
|
+
viewer: Viewer;
|
|
1846
|
+
token: string;
|
|
1847
|
+
directionalLight?: DirectionalLightConfig;
|
|
1848
|
+
shadow?: ShadowConfig;
|
|
1849
|
+
volumetricClouds?: VolumetricCloudsConfig;
|
|
1850
|
+
atmosphereScattering?: AtmosphereScatteringConfig;
|
|
1851
|
+
distanceFog?: DistanceFogConfig;
|
|
1852
|
+
heightFog?: HeightFogConfig;
|
|
1853
|
+
postProcessing?: PostProcessingConfig;
|
|
1854
|
+
cameraListener?: CameraListenerSystemConfig;
|
|
1855
|
+
water?: WaterConfig;
|
|
1856
|
+
enableAll?: boolean;
|
|
1857
|
+
visible?: boolean;
|
|
1858
|
+
}
|
|
1859
|
+
/**
|
|
1860
|
+
* 渲染引擎类
|
|
1861
|
+
* 负责管理场景的光照、阴影、大气、云、雾和后处理效果
|
|
1862
|
+
*/
|
|
1863
|
+
declare class Render {
|
|
1864
|
+
engine: any;
|
|
1865
|
+
viewer: Viewer;
|
|
1866
|
+
config: RenderConfig;
|
|
1867
|
+
private lightingSystem;
|
|
1868
|
+
private shadowSystem;
|
|
1869
|
+
private volumetricCloudsSystem;
|
|
1870
|
+
private atmosphereScatteringSystem;
|
|
1871
|
+
private distanceFogSystem;
|
|
1872
|
+
private heightFogSystem;
|
|
1873
|
+
private postProcessingSystem;
|
|
1874
|
+
private cameraListenerSystem;
|
|
1875
|
+
private waterSystem;
|
|
1876
|
+
private layerSystem;
|
|
1877
|
+
private toolboxSystem;
|
|
1878
|
+
private measurementSystem;
|
|
1879
|
+
private sceneSystem;
|
|
1880
|
+
private buildingSystem;
|
|
1881
|
+
private tilesetSearchSystem;
|
|
1882
|
+
private tilesetManager;
|
|
1883
|
+
private systems;
|
|
1884
|
+
constructor(config: RenderConfig);
|
|
1885
|
+
private init;
|
|
1886
|
+
private registerSystems;
|
|
1887
|
+
private initialize;
|
|
1888
|
+
/**
|
|
1889
|
+
* 启用所有系统
|
|
1890
|
+
*/
|
|
1891
|
+
enableAllSystems(): void;
|
|
1892
|
+
/**
|
|
1893
|
+
* 禁用所有系统
|
|
1894
|
+
*/
|
|
1895
|
+
disableAllSystems(): void;
|
|
1896
|
+
/**
|
|
1897
|
+
* 获取系统
|
|
1898
|
+
* @param systemName 系统名称
|
|
1899
|
+
* @returns 系统实例
|
|
1900
|
+
*/
|
|
1901
|
+
getSystem<T>(systemName: string): T;
|
|
1902
|
+
/**
|
|
1903
|
+
* 启用特定系统
|
|
1904
|
+
*/
|
|
1905
|
+
enableSystem(systemName: string): void;
|
|
1906
|
+
/**
|
|
1907
|
+
* 禁用特定系统
|
|
1908
|
+
*/
|
|
1909
|
+
disableSystem(systemName: string): void;
|
|
1910
|
+
/**
|
|
1911
|
+
* 获取系统状态
|
|
1912
|
+
*/
|
|
1913
|
+
getSystemStatus(systemName: string): boolean | undefined;
|
|
1914
|
+
/**
|
|
1915
|
+
* 更新系统配置
|
|
1916
|
+
*/
|
|
1917
|
+
updateSystemConfig(systemName: string, config: any): void;
|
|
1918
|
+
/**
|
|
1919
|
+
* 获取系统配置
|
|
1920
|
+
*/
|
|
1921
|
+
getSystemConfig(systemName: string): any;
|
|
1922
|
+
/**
|
|
1923
|
+
* 获取所有系统状态
|
|
1924
|
+
*/
|
|
1925
|
+
getAllSystemsStatus(): Record<string, boolean>;
|
|
1926
|
+
/**
|
|
1927
|
+
* 切换系统状态
|
|
1928
|
+
*/
|
|
1929
|
+
toggleSystem(systemName: string, enabled?: boolean): void;
|
|
1930
|
+
/**
|
|
1931
|
+
* 获取系统配置
|
|
1932
|
+
*/
|
|
1933
|
+
getConfig(): any;
|
|
1934
|
+
/**
|
|
1935
|
+
* 保存所有系统配置为 JSON
|
|
1936
|
+
*/
|
|
1937
|
+
saveConfig(filename?: string): any;
|
|
1938
|
+
/**
|
|
1939
|
+
* 从文件读取配置
|
|
1940
|
+
*/
|
|
1941
|
+
readConfig(file: File): Promise<Partial<RenderConfig>>;
|
|
1942
|
+
/**
|
|
1943
|
+
* 导入配置(外部调用接口)
|
|
1944
|
+
*/
|
|
1945
|
+
importConfig(config: any): Promise<void>;
|
|
1946
|
+
/**
|
|
1947
|
+
* 应用配置
|
|
1948
|
+
*/
|
|
1949
|
+
applyConfig(newConfig: Partial<RenderConfig>): void;
|
|
1950
|
+
/**
|
|
1951
|
+
* 读取 JSON 配置
|
|
1952
|
+
*/
|
|
1953
|
+
readConfigContent(jsonContent: string | any): any;
|
|
1954
|
+
/**
|
|
1955
|
+
* 解析系统配置
|
|
1956
|
+
*/
|
|
1957
|
+
private parseSystemConfig;
|
|
1958
|
+
/**
|
|
1959
|
+
* 获取各个系统实例(供高级使用)
|
|
1960
|
+
*/
|
|
1961
|
+
getSystems(): {
|
|
1962
|
+
lighting: LightingSystem;
|
|
1963
|
+
shadow: ShadowSystem;
|
|
1964
|
+
volumetricClouds: VolumetricCloudsSystem;
|
|
1965
|
+
atmosphereScattering: AtmosphereScatteringSystem;
|
|
1966
|
+
distanceFog: DistanceFogSystem;
|
|
1967
|
+
heightFog: HeightFogSystem;
|
|
1968
|
+
postProcessing: PostProcessingSystem;
|
|
1969
|
+
cameraListener: CameraListenerSystem;
|
|
1970
|
+
water: WaterSystem;
|
|
1971
|
+
layer: LayerSystem;
|
|
1972
|
+
toolbox: ToolboxSystem;
|
|
1973
|
+
measurement: MeasurementSystem;
|
|
1974
|
+
scene: SceneSystem;
|
|
1975
|
+
building: BuildingSystem;
|
|
1976
|
+
tilesetSearch: TilesetSearchSystem;
|
|
1977
|
+
};
|
|
1978
|
+
/**
|
|
1979
|
+
* 销毁渲染引擎
|
|
1980
|
+
*/
|
|
1981
|
+
destroy(): void;
|
|
1982
|
+
}
|
|
1983
|
+
|
|
1984
|
+
declare class RenderControl {
|
|
1985
|
+
private viewer;
|
|
1986
|
+
private render;
|
|
1987
|
+
private renderConfig;
|
|
1988
|
+
private panelContainer;
|
|
1989
|
+
private volumetricCloudControl;
|
|
1990
|
+
private atmosphereControl;
|
|
1991
|
+
private fogControl;
|
|
1992
|
+
private lightingControl;
|
|
1993
|
+
private shadowControl;
|
|
1994
|
+
private postProcessingControl;
|
|
1995
|
+
private isPanelVisible;
|
|
1996
|
+
private systemMap;
|
|
1997
|
+
constructor(config: {
|
|
1998
|
+
render: Render;
|
|
1999
|
+
renderConfig: RenderConfig;
|
|
2000
|
+
});
|
|
2001
|
+
/**
|
|
2002
|
+
* 初始化控制面板
|
|
2003
|
+
*/
|
|
2004
|
+
private initPanel;
|
|
2005
|
+
/**
|
|
2006
|
+
* 获取系统实例
|
|
2007
|
+
*/
|
|
2008
|
+
private getSystemInstances;
|
|
2009
|
+
/**
|
|
2010
|
+
* 获取或创建面板容器
|
|
2011
|
+
*/
|
|
2012
|
+
private getOrCreatePanelContainer;
|
|
2013
|
+
/**
|
|
2014
|
+
* 添加CSS样式
|
|
2015
|
+
*/
|
|
2016
|
+
private addStyles;
|
|
2017
|
+
/**
|
|
2018
|
+
* 创建面板内容
|
|
2019
|
+
*/
|
|
2020
|
+
private createPanelContent;
|
|
2021
|
+
/**
|
|
2022
|
+
* 初始化事件监听
|
|
2023
|
+
*/
|
|
2024
|
+
private initEventListeners;
|
|
2025
|
+
/**
|
|
2026
|
+
* 应用默认预设
|
|
2027
|
+
*/
|
|
2028
|
+
private applyDefaultPresets;
|
|
2029
|
+
/**
|
|
2030
|
+
* 创建面板头部
|
|
2031
|
+
*/
|
|
2032
|
+
private createPanelHeader;
|
|
2033
|
+
/**
|
|
2034
|
+
* 清空面板
|
|
2035
|
+
*/
|
|
2036
|
+
private clearPanel;
|
|
2037
|
+
/**
|
|
2038
|
+
* 重置所有设置
|
|
2039
|
+
*/
|
|
2040
|
+
resetAll(): void;
|
|
2041
|
+
/**
|
|
2042
|
+
* 显示/隐藏面板
|
|
2043
|
+
*/
|
|
2044
|
+
togglePanel(visible?: boolean): void;
|
|
2045
|
+
/**
|
|
2046
|
+
* 创建配置管理区域
|
|
2047
|
+
*/
|
|
2048
|
+
private createConfigManagementSection;
|
|
2049
|
+
/**
|
|
2050
|
+
* 初始化配置管理的事件监听
|
|
2051
|
+
*/
|
|
2052
|
+
private initConfigEventListeners;
|
|
2053
|
+
/**
|
|
2054
|
+
* 处理配置导入
|
|
2055
|
+
*/
|
|
2056
|
+
private handleConfigImport;
|
|
2057
|
+
/**
|
|
2058
|
+
* 处理配置导出
|
|
2059
|
+
*/
|
|
2060
|
+
private handleConfigExport;
|
|
2061
|
+
/**
|
|
2062
|
+
* 应用预览中的配置
|
|
2063
|
+
*/
|
|
2064
|
+
private applyConfigFromPreview;
|
|
2065
|
+
/**
|
|
2066
|
+
* 更新所有控制面板显示
|
|
2067
|
+
*/
|
|
2068
|
+
private updateAllControlPanels;
|
|
2069
|
+
/**
|
|
2070
|
+
* 处理配置重置
|
|
2071
|
+
*/
|
|
2072
|
+
private handleConfigReset;
|
|
2073
|
+
/**
|
|
2074
|
+
* 显示配置预览模态框
|
|
2075
|
+
*/
|
|
2076
|
+
private showConfigPreview;
|
|
2077
|
+
/**
|
|
2078
|
+
* 隐藏配置预览
|
|
2079
|
+
*/
|
|
2080
|
+
private hideConfigPreview;
|
|
2081
|
+
/**
|
|
2082
|
+
* 预览配置文件
|
|
2083
|
+
*/
|
|
2084
|
+
private previewConfigFile;
|
|
2085
|
+
/**
|
|
2086
|
+
* 更新配置状态显示
|
|
2087
|
+
*/
|
|
2088
|
+
private updateConfigStatus;
|
|
2089
|
+
/**
|
|
2090
|
+
* 高亮JSON语法
|
|
2091
|
+
*/
|
|
2092
|
+
private highlightJson;
|
|
2093
|
+
/**
|
|
2094
|
+
* 添加配置管理相关样式
|
|
2095
|
+
*/
|
|
2096
|
+
private addConfigManagementStyles;
|
|
2097
|
+
/**
|
|
2098
|
+
* 显示通知
|
|
2099
|
+
*/
|
|
2100
|
+
private showNotification;
|
|
2101
|
+
}
|
|
2102
|
+
|
|
2103
|
+
declare class EnvironmentControl {
|
|
2104
|
+
render: Render;
|
|
2105
|
+
private viewer;
|
|
2106
|
+
private renderConfig;
|
|
2107
|
+
private panelContainer;
|
|
2108
|
+
private volumetricCloudControl;
|
|
2109
|
+
private atmosphereControl;
|
|
2110
|
+
private fogControl;
|
|
2111
|
+
private lightingControl;
|
|
2112
|
+
private shadowControl;
|
|
2113
|
+
private postProcessingControl;
|
|
2114
|
+
private waterControl;
|
|
2115
|
+
private isPanelVisible;
|
|
2116
|
+
private activeTab;
|
|
2117
|
+
private systemMap;
|
|
2118
|
+
constructor(config: {
|
|
2119
|
+
render: Render;
|
|
2120
|
+
renderConfig: RenderConfig;
|
|
2121
|
+
});
|
|
2122
|
+
private initPanel;
|
|
2123
|
+
private getSystemInstances;
|
|
2124
|
+
private getOrCreatePanelContainer;
|
|
2125
|
+
private addStyles;
|
|
2126
|
+
private createPanelHeader;
|
|
2127
|
+
private createPanelContent;
|
|
2128
|
+
private createConfigManagementSection;
|
|
2129
|
+
private getPresetIcon;
|
|
2130
|
+
private initEventListeners;
|
|
2131
|
+
private switchTab;
|
|
2132
|
+
private initConfigEventListeners;
|
|
2133
|
+
private initPresetCardListeners;
|
|
2134
|
+
private handlePresetSelect;
|
|
2135
|
+
private applyPresetConfig;
|
|
2136
|
+
private handleConfigImport;
|
|
2137
|
+
private handleConfigExport;
|
|
2138
|
+
private updateAllControlPanels;
|
|
2139
|
+
private handleEnableAllEffects;
|
|
2140
|
+
private handleDisableAllEffects;
|
|
2141
|
+
private handleConfigReset;
|
|
2142
|
+
private showNotification;
|
|
2143
|
+
private applyDefaultPresets;
|
|
2144
|
+
private resetAll;
|
|
2145
|
+
togglePanel(visible?: boolean): void;
|
|
2146
|
+
private clearPanel;
|
|
2147
|
+
}
|
|
2148
|
+
|
|
2149
|
+
/**
|
|
2150
|
+
* 光照配置
|
|
2151
|
+
*/
|
|
2152
|
+
interface LightingPresetConfig {
|
|
2153
|
+
enabled: boolean;
|
|
2154
|
+
followSun: boolean;
|
|
2155
|
+
intensity: number;
|
|
2156
|
+
ambientIntensity: number;
|
|
2157
|
+
color: string;
|
|
2158
|
+
}
|
|
2159
|
+
/**
|
|
2160
|
+
* 阴影配置
|
|
2161
|
+
*/
|
|
2162
|
+
interface ShadowPresetConfig {
|
|
2163
|
+
enabled: boolean;
|
|
2164
|
+
softShadows: boolean;
|
|
2165
|
+
size: number;
|
|
2166
|
+
darkness: number;
|
|
2167
|
+
softness: number;
|
|
2168
|
+
}
|
|
2169
|
+
/**
|
|
2170
|
+
* 大气配置
|
|
2171
|
+
*/
|
|
2172
|
+
interface AtmospherePresetConfig {
|
|
2173
|
+
enabled: boolean;
|
|
2174
|
+
intensity: number;
|
|
2175
|
+
rayleighIntensity: number;
|
|
2176
|
+
mieIntensity: number;
|
|
2177
|
+
absorptionIntensity: number;
|
|
2178
|
+
}
|
|
2179
|
+
/**
|
|
2180
|
+
* 云层配置
|
|
2181
|
+
*/
|
|
2182
|
+
interface CloudsPresetConfig {
|
|
2183
|
+
enabled: boolean;
|
|
2184
|
+
cover: number;
|
|
2185
|
+
base: number;
|
|
2186
|
+
top: number;
|
|
2187
|
+
windSpeed: number;
|
|
2188
|
+
lightIntensity: number;
|
|
2189
|
+
}
|
|
2190
|
+
/**
|
|
2191
|
+
* 雾效配置
|
|
2192
|
+
*/
|
|
2193
|
+
interface FogPresetConfig {
|
|
2194
|
+
enabled: boolean;
|
|
2195
|
+
type: 'none' | 'distance' | 'height' | 'both';
|
|
2196
|
+
distanceIntensity: number;
|
|
2197
|
+
heightIntensity: number;
|
|
2198
|
+
color: string;
|
|
2199
|
+
}
|
|
2200
|
+
/**
|
|
2201
|
+
* 后处理配置
|
|
2202
|
+
*/
|
|
2203
|
+
interface PostProcessingPresetConfig {
|
|
2204
|
+
enabled: boolean;
|
|
2205
|
+
brightness: number;
|
|
2206
|
+
contrast: number;
|
|
2207
|
+
saturation: number;
|
|
2208
|
+
gamma: number;
|
|
2209
|
+
}
|
|
2210
|
+
/**
|
|
2211
|
+
* 水体配置
|
|
2212
|
+
*/
|
|
2213
|
+
interface WaterPresetConfig {
|
|
2214
|
+
enabled: boolean;
|
|
2215
|
+
color: string;
|
|
2216
|
+
opacity: number;
|
|
2217
|
+
waveStrength: number;
|
|
2218
|
+
waveSpeed: number;
|
|
2219
|
+
}
|
|
2220
|
+
/**
|
|
2221
|
+
* 预设配置结构(扁平化,便于序列化)
|
|
2222
|
+
*/
|
|
2223
|
+
interface EnvironmentPresetConfig {
|
|
2224
|
+
time: {
|
|
2225
|
+
hour: number;
|
|
2226
|
+
minute: number;
|
|
2227
|
+
};
|
|
2228
|
+
lighting: LightingPresetConfig;
|
|
2229
|
+
shadow: ShadowPresetConfig;
|
|
2230
|
+
atmosphere: AtmospherePresetConfig;
|
|
2231
|
+
clouds: CloudsPresetConfig;
|
|
2232
|
+
fog: FogPresetConfig;
|
|
2233
|
+
postProcessing: PostProcessingPresetConfig;
|
|
2234
|
+
water: WaterPresetConfig;
|
|
2235
|
+
}
|
|
2236
|
+
|
|
2237
|
+
/**
|
|
2238
|
+
* 控制面板基类
|
|
2239
|
+
* 所有控制面板继承此类,统一配置管理
|
|
2240
|
+
*/
|
|
2241
|
+
declare abstract class BaseControlPanel {
|
|
2242
|
+
protected viewer: Viewer;
|
|
2243
|
+
protected render: Render;
|
|
2244
|
+
protected renderConfig: RenderConfig;
|
|
2245
|
+
protected configUnsubscribe: (() => void) | null;
|
|
2246
|
+
constructor(viewer: Viewer, render: Render, renderConfig: RenderConfig);
|
|
2247
|
+
/**
|
|
2248
|
+
* 设置配置监听器
|
|
2249
|
+
*/
|
|
2250
|
+
private setupConfigListener;
|
|
2251
|
+
/**
|
|
2252
|
+
* 创建控制面板
|
|
2253
|
+
*/
|
|
2254
|
+
abstract createPanel(container: HTMLElement): void;
|
|
2255
|
+
/**
|
|
2256
|
+
* 初始化事件监听
|
|
2257
|
+
*/
|
|
2258
|
+
abstract initEventListeners(container: HTMLElement): void;
|
|
2259
|
+
/**
|
|
2260
|
+
* 默认预设
|
|
2261
|
+
*/
|
|
2262
|
+
abstract applyDefaultPresets(): void;
|
|
2263
|
+
/**
|
|
2264
|
+
* 创建Section面板
|
|
2265
|
+
*/
|
|
2266
|
+
createControlSection(title: string): HTMLElement;
|
|
2267
|
+
/**
|
|
2268
|
+
* 创建开关控件
|
|
2269
|
+
*/
|
|
2270
|
+
createToggleControl(id: string, label: string, checked: boolean, onChange: (checked: boolean) => void): HTMLElement;
|
|
2271
|
+
/**
|
|
2272
|
+
* 创建滑块控件
|
|
2273
|
+
*/
|
|
2274
|
+
createSliderControl(id: string, label: string, value: number, min: number, max: number, step?: number): HTMLElement;
|
|
2275
|
+
/**
|
|
2276
|
+
* 更新控制启用状态
|
|
2277
|
+
*/
|
|
2278
|
+
updateControlsEnabled(enabled: boolean, sliderIds: string[], buttons?: NodeListOf<Element>): void;
|
|
2279
|
+
/**
|
|
2280
|
+
* 更新滑块视觉
|
|
2281
|
+
*/
|
|
2282
|
+
updateSliderVisual(slider: HTMLInputElement): void;
|
|
2283
|
+
/**
|
|
2284
|
+
* 配置更新时的回调
|
|
2285
|
+
*/
|
|
2286
|
+
protected onConfigUpdated(config: EnvironmentPresetConfig): void;
|
|
2287
|
+
/**
|
|
2288
|
+
* 刷新控制面板显示(子类必须实现)
|
|
2289
|
+
*/
|
|
2290
|
+
protected abstract refreshControls(config: EnvironmentPresetConfig): void;
|
|
2291
|
+
/**
|
|
2292
|
+
* 获取当前配置
|
|
2293
|
+
*/
|
|
2294
|
+
protected getCurrentConfig(): EnvironmentPresetConfig;
|
|
2295
|
+
/**
|
|
2296
|
+
* 更新系统配置
|
|
2297
|
+
*/
|
|
2298
|
+
protected updateSystemConfig<K extends keyof EnvironmentPresetConfig>(system: K, config: Partial<EnvironmentPresetConfig[K]>): void;
|
|
2299
|
+
/**
|
|
2300
|
+
* 颜色对象转十六进制字符串
|
|
2301
|
+
*/
|
|
2302
|
+
colorToHex(color: any): string;
|
|
2303
|
+
/**
|
|
2304
|
+
* Cartesian3转十六进制
|
|
2305
|
+
*/
|
|
2306
|
+
protected cartesian3ToHex(c: Cartesian3): string;
|
|
2307
|
+
/**
|
|
2308
|
+
* 十六进制转Cartesian3
|
|
2309
|
+
*/
|
|
2310
|
+
protected hexToCartesian3(hex: string): Cartesian3;
|
|
2311
|
+
/**
|
|
2312
|
+
* 更新所有滑块视觉
|
|
2313
|
+
*/
|
|
2314
|
+
updateAllSliderVisuals(): void;
|
|
2315
|
+
/**
|
|
2316
|
+
* 重置面板设置
|
|
2317
|
+
*/
|
|
2318
|
+
abstract reset(): void;
|
|
2319
|
+
/**
|
|
2320
|
+
* 获取面板容器
|
|
2321
|
+
*/
|
|
2322
|
+
abstract getContainer(): HTMLElement;
|
|
2323
|
+
/**
|
|
2324
|
+
* 销毁面板
|
|
2325
|
+
*/
|
|
2326
|
+
destroy(): void;
|
|
2327
|
+
}
|
|
2328
|
+
|
|
2329
|
+
/**
|
|
2330
|
+
* 光照控制面板
|
|
2331
|
+
*/
|
|
2332
|
+
declare class LightingControl extends BaseControlPanel {
|
|
2333
|
+
private container;
|
|
2334
|
+
private sunUpdateInterval;
|
|
2335
|
+
private disableSliders;
|
|
2336
|
+
constructor(viewer: Viewer, render: Render, renderConfig: RenderConfig);
|
|
2337
|
+
/**
|
|
2338
|
+
* 创建控制面板
|
|
2339
|
+
*/
|
|
2340
|
+
createPanel(container: HTMLElement): void;
|
|
2341
|
+
/**
|
|
2342
|
+
* 初始化事件监听
|
|
2343
|
+
*/
|
|
2344
|
+
initEventListeners(container: HTMLElement): void;
|
|
2345
|
+
/**
|
|
2346
|
+
* 更新模式状态的UI显示
|
|
2347
|
+
*/
|
|
2348
|
+
private updateModeState;
|
|
2349
|
+
/**
|
|
2350
|
+
* 应用模式设置
|
|
2351
|
+
*/
|
|
2352
|
+
private applyModeSettings;
|
|
2353
|
+
/**
|
|
2354
|
+
* 应用光照设置
|
|
2355
|
+
*/
|
|
2356
|
+
private applyLightingSettings;
|
|
2357
|
+
/**
|
|
2358
|
+
* 开始太阳位置跟踪
|
|
2359
|
+
*/
|
|
2360
|
+
private startSunTracking;
|
|
2361
|
+
/**
|
|
2362
|
+
* 停止太阳位置跟踪
|
|
2363
|
+
*/
|
|
2364
|
+
private stopSunTracking;
|
|
2365
|
+
/**
|
|
2366
|
+
* 更新太阳位置
|
|
2367
|
+
*/
|
|
2368
|
+
private updateSunPosition;
|
|
2369
|
+
/**
|
|
2370
|
+
* 从方向向量计算高度角和方位角
|
|
2371
|
+
*/
|
|
2372
|
+
private vectorToElevationAzimuth;
|
|
2373
|
+
/**
|
|
2374
|
+
* 更新手动方向
|
|
2375
|
+
*/
|
|
2376
|
+
private updateManualDirection;
|
|
2377
|
+
/**
|
|
2378
|
+
* 应用时间预设
|
|
2379
|
+
* 输入时间为北京时间(UTC+8),需要转换为UTC时间
|
|
2380
|
+
*/
|
|
2381
|
+
private applySunTimePreset;
|
|
2382
|
+
/**
|
|
2383
|
+
* 应用自定义时间
|
|
2384
|
+
* 输入时间为北京时间(UTC+8),需要转换为UTC时间
|
|
2385
|
+
*/
|
|
2386
|
+
private applyCustomTime;
|
|
2387
|
+
/**
|
|
2388
|
+
* 从时钟同步时间选择器
|
|
2389
|
+
* UTC时间转北京时间(UTC+8)
|
|
2390
|
+
*/
|
|
2391
|
+
private syncTimePickerFromClock;
|
|
2392
|
+
/**
|
|
2393
|
+
* 刷新控制面板显示
|
|
2394
|
+
*/
|
|
2395
|
+
protected refreshControls(config: any): void;
|
|
2396
|
+
/**
|
|
2397
|
+
* 从配置更新控件状态
|
|
2398
|
+
*/
|
|
2399
|
+
private updateControlsFromConfig;
|
|
2400
|
+
/**
|
|
2401
|
+
* 应用默认预设
|
|
2402
|
+
*/
|
|
2403
|
+
applyDefaultPresets(): void;
|
|
2404
|
+
/**
|
|
2405
|
+
* 重置面板设置
|
|
2406
|
+
*/
|
|
2407
|
+
reset(): void;
|
|
2408
|
+
/**
|
|
2409
|
+
* 获取面板容器
|
|
2410
|
+
*/
|
|
2411
|
+
getContainer(): HTMLElement;
|
|
2412
|
+
}
|
|
2413
|
+
|
|
2414
|
+
/**
|
|
2415
|
+
* 阴影控制面板
|
|
2416
|
+
*/
|
|
2417
|
+
declare class ShadowControl extends BaseControlPanel {
|
|
2418
|
+
private container;
|
|
2419
|
+
private disableSliders;
|
|
2420
|
+
constructor(viewer: Viewer, render: Render, renderConfig: RenderConfig);
|
|
2421
|
+
/**
|
|
2422
|
+
* 创建控制面板
|
|
2423
|
+
*/
|
|
2424
|
+
createPanel(container: HTMLElement): void;
|
|
2425
|
+
/**
|
|
2426
|
+
* 初始化事件监听
|
|
2427
|
+
*/
|
|
2428
|
+
initEventListeners(container: HTMLElement): void;
|
|
2429
|
+
/**
|
|
2430
|
+
* 刷新控制面板显示
|
|
2431
|
+
*/
|
|
2432
|
+
protected refreshControls(config: any): void;
|
|
2433
|
+
/**
|
|
2434
|
+
* 从配置更新控件状态
|
|
2435
|
+
*/
|
|
2436
|
+
private updateControlsFromConfig;
|
|
2437
|
+
/**
|
|
2438
|
+
* 更新控件启用状态
|
|
2439
|
+
*/
|
|
2440
|
+
private updateControlsEnabledState;
|
|
2441
|
+
/**
|
|
2442
|
+
* 阴影颜色转十六进制
|
|
2443
|
+
*/
|
|
2444
|
+
private shadowColorToHex;
|
|
2445
|
+
/**
|
|
2446
|
+
* 应用默认预设
|
|
2447
|
+
*/
|
|
2448
|
+
applyDefaultPresets(): void;
|
|
2449
|
+
/**
|
|
2450
|
+
* 重置面板设置
|
|
2451
|
+
*/
|
|
2452
|
+
reset(): void;
|
|
2453
|
+
/**
|
|
2454
|
+
* 获取面板容器
|
|
2455
|
+
*/
|
|
2456
|
+
getContainer(): HTMLElement;
|
|
2457
|
+
}
|
|
2458
|
+
|
|
2459
|
+
/**
|
|
2460
|
+
* 后处理控制面板
|
|
2461
|
+
*/
|
|
2462
|
+
declare class PostProcessingControl extends BaseControlPanel {
|
|
2463
|
+
private container;
|
|
2464
|
+
private preset_container;
|
|
2465
|
+
private disableSliders;
|
|
2466
|
+
constructor(viewer: Viewer, render: Render, renderConfig: RenderConfig);
|
|
2467
|
+
/**
|
|
2468
|
+
* 创建控制面板
|
|
2469
|
+
*/
|
|
2470
|
+
createPanel(container: HTMLElement): void;
|
|
2471
|
+
/**
|
|
2472
|
+
* 获取预设标签
|
|
2473
|
+
*/
|
|
2474
|
+
private getPresetLabel;
|
|
2475
|
+
/**
|
|
2476
|
+
* 初始化事件监听
|
|
2477
|
+
*/
|
|
2478
|
+
initEventListeners(container: HTMLElement): void;
|
|
2479
|
+
/**
|
|
2480
|
+
* 应用滤镜预设
|
|
2481
|
+
*/
|
|
2482
|
+
private applyFilterPreset;
|
|
2483
|
+
/**
|
|
2484
|
+
* 刷新控制面板显示
|
|
2485
|
+
*/
|
|
2486
|
+
protected refreshControls(config: any): void;
|
|
2487
|
+
/**
|
|
2488
|
+
* 从配置更新控件状态
|
|
2489
|
+
*/
|
|
2490
|
+
private updateControlsFromConfig;
|
|
2491
|
+
/**
|
|
2492
|
+
* 从配置更新滑块
|
|
2493
|
+
*/
|
|
2494
|
+
private updateSliderFromConfig;
|
|
2495
|
+
/**
|
|
2496
|
+
* 应用默认预设
|
|
2497
|
+
*/
|
|
2498
|
+
applyDefaultPresets(): void;
|
|
2499
|
+
/**
|
|
2500
|
+
* 重置面板设置
|
|
2501
|
+
*/
|
|
2502
|
+
reset(): void;
|
|
2503
|
+
/**
|
|
2504
|
+
* 获取面板容器
|
|
2505
|
+
*/
|
|
2506
|
+
getContainer(): HTMLElement;
|
|
2507
|
+
}
|
|
2508
|
+
|
|
2509
|
+
/**
|
|
2510
|
+
* 体积云控制面板
|
|
2511
|
+
*/
|
|
2512
|
+
declare class VolumetricCloudControl extends BaseControlPanel {
|
|
2513
|
+
private container;
|
|
2514
|
+
/**
|
|
2515
|
+
* 云层参数存储
|
|
2516
|
+
*/
|
|
2517
|
+
private cloudVisibilityParams;
|
|
2518
|
+
private disableSliders;
|
|
2519
|
+
constructor(viewer: Viewer, render: Render, renderConfig: RenderConfig);
|
|
2520
|
+
/**
|
|
2521
|
+
* 创建控制面板
|
|
2522
|
+
*/
|
|
2523
|
+
createPanel(container: HTMLElement): void;
|
|
2524
|
+
/**
|
|
2525
|
+
* 初始化事件监听
|
|
2526
|
+
*/
|
|
2527
|
+
initEventListeners(container: HTMLElement): void;
|
|
2528
|
+
/**
|
|
2529
|
+
* 应用云层预设
|
|
2530
|
+
*/
|
|
2531
|
+
private applyCloudPreset;
|
|
2532
|
+
/**
|
|
2533
|
+
* 设置云层参数
|
|
2534
|
+
*/
|
|
2535
|
+
private setCloudValues;
|
|
2536
|
+
/**
|
|
2537
|
+
* 设置云层高度参数
|
|
2538
|
+
*/
|
|
2539
|
+
private setCloudHeightValues;
|
|
2540
|
+
/**
|
|
2541
|
+
* 刷新控制面板显示(实现基类抽象方法)
|
|
2542
|
+
*/
|
|
2543
|
+
protected refreshControls(config: any): void;
|
|
2544
|
+
/**
|
|
2545
|
+
* 从配置更新控件状态
|
|
2546
|
+
*/
|
|
2547
|
+
private updateControlsFromConfig;
|
|
2548
|
+
/**
|
|
2549
|
+
* 更新控件启用状态
|
|
2550
|
+
*/
|
|
2551
|
+
private updateControlsEnabledState;
|
|
2552
|
+
/**
|
|
2553
|
+
* 更新预设选择状态
|
|
2554
|
+
*/
|
|
2555
|
+
private updatePresetSelection;
|
|
2556
|
+
/**
|
|
2557
|
+
* 应用默认预设
|
|
2558
|
+
*/
|
|
2559
|
+
applyDefaultPresets(): void;
|
|
2560
|
+
/**
|
|
2561
|
+
* 重置面板设置
|
|
2562
|
+
*/
|
|
2563
|
+
reset(): void;
|
|
2564
|
+
/**
|
|
2565
|
+
* 获取面板容器
|
|
2566
|
+
*/
|
|
2567
|
+
getContainer(): HTMLElement;
|
|
2568
|
+
}
|
|
2569
|
+
|
|
2570
|
+
/**
|
|
2571
|
+
* 大气散射控制面板
|
|
2572
|
+
*/
|
|
2573
|
+
declare class AtmosphereControl extends BaseControlPanel {
|
|
2574
|
+
private container;
|
|
2575
|
+
private disableSliders;
|
|
2576
|
+
constructor(viewer: Viewer, render: Render, renderConfig: RenderConfig);
|
|
2577
|
+
/**
|
|
2578
|
+
* 创建控制面板
|
|
2579
|
+
*/
|
|
2580
|
+
createPanel(container: HTMLElement): void;
|
|
2581
|
+
/**
|
|
2582
|
+
* 初始化事件监听
|
|
2583
|
+
*/
|
|
2584
|
+
initEventListeners(container: HTMLElement): void;
|
|
2585
|
+
/**
|
|
2586
|
+
* 添加滑块监听器
|
|
2587
|
+
*/
|
|
2588
|
+
private addSliderListener;
|
|
2589
|
+
/**
|
|
2590
|
+
* 刷新控制面板显示
|
|
2591
|
+
*/
|
|
2592
|
+
protected refreshControls(config: any): void;
|
|
2593
|
+
/**
|
|
2594
|
+
* 从配置更新控件状态
|
|
2595
|
+
*/
|
|
2596
|
+
private updateControlsFromConfig;
|
|
2597
|
+
/**
|
|
2598
|
+
* 从配置更新滑块
|
|
2599
|
+
*/
|
|
2600
|
+
private updateSliderFromConfig;
|
|
2601
|
+
/**
|
|
2602
|
+
* 应用默认预设
|
|
2603
|
+
*/
|
|
2604
|
+
applyDefaultPresets(): void;
|
|
2605
|
+
/**
|
|
2606
|
+
* 重置面板设置
|
|
2607
|
+
*/
|
|
2608
|
+
reset(): void;
|
|
2609
|
+
/**
|
|
2610
|
+
* 获取面板容器
|
|
2611
|
+
*/
|
|
2612
|
+
getContainer(): HTMLElement;
|
|
2613
|
+
}
|
|
2614
|
+
|
|
2615
|
+
/**
|
|
2616
|
+
* 雾系统控制面板
|
|
2617
|
+
*/
|
|
2618
|
+
declare class FogControl extends BaseControlPanel {
|
|
2619
|
+
private container;
|
|
2620
|
+
private currentFogType;
|
|
2621
|
+
private fogVisibilityParams;
|
|
2622
|
+
private disableSliders;
|
|
2623
|
+
constructor(viewer: Viewer, render: Render, renderConfig: RenderConfig);
|
|
2624
|
+
/**
|
|
2625
|
+
* 创建控制面板
|
|
2626
|
+
*/
|
|
2627
|
+
createPanel(container: HTMLElement): void;
|
|
2628
|
+
/**
|
|
2629
|
+
* 初始化事件监听
|
|
2630
|
+
*/
|
|
2631
|
+
initEventListeners(container: HTMLElement): void;
|
|
2632
|
+
/**
|
|
2633
|
+
* 更新距离雾配置
|
|
2634
|
+
*/
|
|
2635
|
+
private updateDistanceFogConfig;
|
|
2636
|
+
/**
|
|
2637
|
+
* 更新高度雾配置
|
|
2638
|
+
*/
|
|
2639
|
+
private updateHeightFogConfig;
|
|
2640
|
+
/**
|
|
2641
|
+
* 更新雾效状态
|
|
2642
|
+
*/
|
|
2643
|
+
private updateFogState;
|
|
2644
|
+
/**
|
|
2645
|
+
* 切换雾效类型
|
|
2646
|
+
*/
|
|
2647
|
+
private switchFogType;
|
|
2648
|
+
/**
|
|
2649
|
+
* 刷新控制面板显示
|
|
2650
|
+
*/
|
|
2651
|
+
protected refreshControls(config: any): void;
|
|
2652
|
+
/**
|
|
2653
|
+
* 从配置更新控件状态
|
|
2654
|
+
*/
|
|
2655
|
+
private updateControlsFromConfig;
|
|
2656
|
+
/**
|
|
2657
|
+
* 应用默认预设
|
|
2658
|
+
*/
|
|
2659
|
+
applyDefaultPresets(): void;
|
|
2660
|
+
/**
|
|
2661
|
+
* 重置面板设置
|
|
2662
|
+
*/
|
|
2663
|
+
reset(): void;
|
|
2664
|
+
/**
|
|
2665
|
+
* 获取面板容器
|
|
2666
|
+
*/
|
|
2667
|
+
getContainer(): HTMLElement;
|
|
2668
|
+
}
|
|
2669
|
+
|
|
2670
|
+
declare class WaterControl {
|
|
2671
|
+
private viewer;
|
|
2672
|
+
private render;
|
|
2673
|
+
private renderConfig;
|
|
2674
|
+
private container;
|
|
2675
|
+
private config;
|
|
2676
|
+
constructor(viewer: Viewer, render: Render, renderConfig: RenderConfig);
|
|
2677
|
+
/**
|
|
2678
|
+
* 创建控制面板
|
|
2679
|
+
*/
|
|
2680
|
+
createPanel(container: HTMLElement): void;
|
|
2681
|
+
/**
|
|
2682
|
+
* 创建面板内容
|
|
2683
|
+
*/
|
|
2684
|
+
private createPanelContent;
|
|
2685
|
+
/**
|
|
2686
|
+
* 初始化事件监听器
|
|
2687
|
+
*/
|
|
2688
|
+
initEventListeners(container: HTMLElement): void;
|
|
2689
|
+
/**
|
|
2690
|
+
* 重置为默认配置
|
|
2691
|
+
*/
|
|
2692
|
+
reset(): void;
|
|
2693
|
+
/**
|
|
2694
|
+
* 应用默认预设
|
|
2695
|
+
*/
|
|
2696
|
+
applyDefaultPresets(): void;
|
|
2697
|
+
/**
|
|
2698
|
+
* RGB颜色转十六进制
|
|
2699
|
+
*/
|
|
2700
|
+
private rgbToHex;
|
|
2701
|
+
/**
|
|
2702
|
+
* 十六进制颜色转RGB
|
|
2703
|
+
*/
|
|
2704
|
+
private hexToRgb;
|
|
2705
|
+
}
|
|
2706
|
+
|
|
2707
|
+
/**
|
|
2708
|
+
* 标绘面板组件
|
|
2709
|
+
* 从 JSON 配置文件中读取标绘项,支持多级分类显示
|
|
2710
|
+
*/
|
|
2711
|
+
declare class PlottingControl extends PanelBase {
|
|
2712
|
+
private layerSystem;
|
|
2713
|
+
private engine;
|
|
2714
|
+
private plotData;
|
|
2715
|
+
private isExpanded;
|
|
2716
|
+
private configPath;
|
|
2717
|
+
constructor(render: Render$1, config: {
|
|
2718
|
+
configPath: string;
|
|
2719
|
+
});
|
|
2720
|
+
/**
|
|
2721
|
+
* 初始化面板
|
|
2722
|
+
*/
|
|
2723
|
+
init(): Promise<void>;
|
|
2724
|
+
/**
|
|
2725
|
+
* 从文件加载标绘数据
|
|
2726
|
+
*/
|
|
2727
|
+
private loadPlotData;
|
|
2728
|
+
/**
|
|
2729
|
+
* 获取默认的标绘数据
|
|
2730
|
+
*/
|
|
2731
|
+
private getDefaultPlotData;
|
|
2732
|
+
/**
|
|
2733
|
+
* 初始化所有分类的展开状态
|
|
2734
|
+
*/
|
|
2735
|
+
private initExpandedState;
|
|
2736
|
+
/**
|
|
2737
|
+
* 获取或创建面板容器
|
|
2738
|
+
*/
|
|
2739
|
+
private getOrCreatePanelContainer;
|
|
2740
|
+
/**
|
|
2741
|
+
* 创建控制面板
|
|
2742
|
+
*/
|
|
2743
|
+
createPanel(): void;
|
|
2744
|
+
/**
|
|
2745
|
+
* 加载 Font Awesome
|
|
2746
|
+
*/
|
|
2747
|
+
private loadFontAwesome;
|
|
2748
|
+
/**
|
|
2749
|
+
* 加载 iconfont
|
|
2750
|
+
*/
|
|
2751
|
+
private loadIconfont;
|
|
2752
|
+
/**
|
|
2753
|
+
* 添加CSS样式 - 修改为图片中的布局
|
|
2754
|
+
*/
|
|
2755
|
+
private addStyles;
|
|
2756
|
+
/**
|
|
2757
|
+
* 创建标绘按钮 - 修改为图片中的样式
|
|
2758
|
+
*/
|
|
2759
|
+
private createPlotButton;
|
|
2760
|
+
/**
|
|
2761
|
+
* 创建模型按钮
|
|
2762
|
+
*/
|
|
2763
|
+
private createModelButton;
|
|
2764
|
+
/**
|
|
2765
|
+
* 判断是否是自定义图标
|
|
2766
|
+
*/
|
|
2767
|
+
private isCustomIcon;
|
|
2768
|
+
/**
|
|
2769
|
+
* 获取自定义 SVG 图标
|
|
2770
|
+
*/
|
|
2771
|
+
private getCustomSvgIcon;
|
|
2772
|
+
/**
|
|
2773
|
+
* 获取默认的 SVG 图标
|
|
2774
|
+
*/
|
|
2775
|
+
private getDefaultSvgIcon;
|
|
2776
|
+
/**
|
|
2777
|
+
* 创建分类元素
|
|
2778
|
+
*/
|
|
2779
|
+
private createCategoryElement;
|
|
2780
|
+
/**
|
|
2781
|
+
* 创建子分类元素
|
|
2782
|
+
*/
|
|
2783
|
+
private createSubcategoryElement;
|
|
2784
|
+
/**
|
|
2785
|
+
* 创建按钮网格 - 一行3个
|
|
2786
|
+
*/
|
|
2787
|
+
private createButtonsGrid;
|
|
2788
|
+
/**
|
|
2789
|
+
* 渲染所有分类 - 修改为容器布局
|
|
2790
|
+
*/
|
|
2791
|
+
private renderCategories;
|
|
2792
|
+
/**
|
|
2793
|
+
* 绑定事件
|
|
2794
|
+
*/
|
|
2795
|
+
private bindEvents;
|
|
2796
|
+
/**
|
|
2797
|
+
* 切换分类展开状态
|
|
2798
|
+
*/
|
|
2799
|
+
private toggleCategory;
|
|
2800
|
+
/**
|
|
2801
|
+
* 切换子分类展开状态
|
|
2802
|
+
*/
|
|
2803
|
+
private toggleSubcategory;
|
|
2804
|
+
/**
|
|
2805
|
+
* 处理标绘按钮点击
|
|
2806
|
+
*/
|
|
2807
|
+
private handlePlotButtonClick;
|
|
2808
|
+
/**
|
|
2809
|
+
* 执行标绘命令
|
|
2810
|
+
*/
|
|
2811
|
+
private executePlotCommand;
|
|
2812
|
+
/**
|
|
2813
|
+
* 执行模型命令
|
|
2814
|
+
*/
|
|
2815
|
+
private executeModelCommand;
|
|
2816
|
+
/**
|
|
2817
|
+
* 设置活动按钮
|
|
2818
|
+
*/
|
|
2819
|
+
private setActiveButton;
|
|
2820
|
+
/**
|
|
2821
|
+
* 更新状态栏
|
|
2822
|
+
*/
|
|
2823
|
+
private updateStatusBar;
|
|
2824
|
+
/**
|
|
2825
|
+
* 刷新面板
|
|
2826
|
+
*/
|
|
2827
|
+
private refreshPanel;
|
|
2828
|
+
/**
|
|
2829
|
+
* 清空标绘
|
|
2830
|
+
*/
|
|
2831
|
+
private clearPanel;
|
|
2832
|
+
/**
|
|
2833
|
+
* 显示错误消息
|
|
2834
|
+
*/
|
|
2835
|
+
private showErrorMessage;
|
|
2836
|
+
/**
|
|
2837
|
+
* 面板显示时的回调
|
|
2838
|
+
*/
|
|
2839
|
+
protected onShow(): void;
|
|
2840
|
+
/**
|
|
2841
|
+
* 面板隐藏时的回调
|
|
2842
|
+
*/
|
|
2843
|
+
protected onHide(): void;
|
|
2844
|
+
/**
|
|
2845
|
+
* 销毁面板
|
|
2846
|
+
*/
|
|
2847
|
+
destroy(): void;
|
|
2848
|
+
}
|
|
2849
|
+
|
|
2850
|
+
declare class TilesetSearchControl extends PanelBase {
|
|
2851
|
+
private system;
|
|
2852
|
+
private statsContainer;
|
|
2853
|
+
private performanceData;
|
|
2854
|
+
private maxDataPoints;
|
|
2855
|
+
private animationFrameId;
|
|
2856
|
+
private currentFPS;
|
|
2857
|
+
constructor(render: Render$1, config: any);
|
|
2858
|
+
init(): Promise<void>;
|
|
2859
|
+
private createStatsPanel;
|
|
2860
|
+
private addStyles;
|
|
2861
|
+
/**
|
|
2862
|
+
* 绑定事件
|
|
2863
|
+
*/
|
|
2864
|
+
private bindEvents;
|
|
2865
|
+
private startPerformanceMonitoring;
|
|
2866
|
+
private updateStatsValuesOnly;
|
|
2867
|
+
private updateStatsDisplay;
|
|
2868
|
+
private drawCharts;
|
|
2869
|
+
/**
|
|
2870
|
+
* 创建控制面板
|
|
2871
|
+
*/
|
|
2872
|
+
createPanel(): void;
|
|
2873
|
+
getSystem(): TilesetSearchSystem;
|
|
2874
|
+
setTilesetStyle(style: string | any): void;
|
|
2875
|
+
resetToDefaultStyle(): void;
|
|
2876
|
+
getAvailableStyles(): string[];
|
|
2877
|
+
private createCheckboxGroup;
|
|
2878
|
+
private onToggle3DTileInspector;
|
|
2879
|
+
private onToggleLatLongGrid;
|
|
2880
|
+
private onToggleGrid;
|
|
2881
|
+
private onGridSizeChange;
|
|
2882
|
+
show(): void;
|
|
2883
|
+
/**
|
|
2884
|
+
* 面板显示时的回调
|
|
2885
|
+
*/
|
|
2886
|
+
protected onShow(): void;
|
|
2887
|
+
/**
|
|
2888
|
+
* 面板隐藏时的回调
|
|
2889
|
+
*/
|
|
2890
|
+
protected onHide(): void;
|
|
2891
|
+
destroy(): void;
|
|
2892
|
+
}
|
|
2893
|
+
|
|
2894
|
+
/**
|
|
2895
|
+
* 侧边栏统一管理器
|
|
2896
|
+
* 管理所有面板的显示/隐藏
|
|
2897
|
+
*
|
|
2898
|
+
* 使用示例:
|
|
2899
|
+
* // 注册面板
|
|
2900
|
+
* SidebarControl.registerPanel('plotting', plottingControl);
|
|
2901
|
+
*
|
|
2902
|
+
* // 监听事件
|
|
2903
|
+
* SidebarControl.on('panel:show', (e: CustomEvent) => {
|
|
2904
|
+
* console.log('面板显示:', e.detail.toolId);
|
|
2905
|
+
* });
|
|
2906
|
+
*
|
|
2907
|
+
* SidebarControl.on('panel:hide', (e: CustomEvent) => {
|
|
2908
|
+
* console.log('面板隐藏:', e.detail.toolId);
|
|
2909
|
+
* });
|
|
2910
|
+
*
|
|
2911
|
+
* SidebarControl.on('tool:select', (e: CustomEvent) => {
|
|
2912
|
+
* console.log('工具选择:', e.detail);
|
|
2913
|
+
* });
|
|
2914
|
+
*
|
|
2915
|
+
* SidebarControl.on('sidebar:toggle', (e: CustomEvent) => {
|
|
2916
|
+
* console.log('侧边栏状态:', e.detail.expanded ? '展开' : '收起');
|
|
2917
|
+
* });
|
|
2918
|
+
*
|
|
2919
|
+
* // API 使用
|
|
2920
|
+
* // 显示标绘面板
|
|
2921
|
+
* SidebarControl.showPanel('plotting');
|
|
2922
|
+
*
|
|
2923
|
+
* // 隐藏所有面板
|
|
2924
|
+
* SidebarControl.hideAllPanels();
|
|
2925
|
+
*
|
|
2926
|
+
* // 切换侧边栏状态
|
|
2927
|
+
* SidebarControl.toggleSidebar();
|
|
2928
|
+
*
|
|
2929
|
+
* // 获取当前状态
|
|
2930
|
+
* const state = SidebarControl.getState();
|
|
2931
|
+
* console.log('当前状态:', state);
|
|
2932
|
+
*
|
|
2933
|
+
* // 检查面板是否注册
|
|
2934
|
+
* if (SidebarControl.hasPanel('plotting')) {
|
|
2935
|
+
* console.log('标绘面板已注册');
|
|
2936
|
+
* }
|
|
2937
|
+
*
|
|
2938
|
+
* // 获取活动面板
|
|
2939
|
+
* const activePanel = SidebarControl.getActivePanel();
|
|
2940
|
+
* if (activePanel) {
|
|
2941
|
+
* console.log('活动面板:', activePanel);
|
|
2942
|
+
* }
|
|
2943
|
+
*
|
|
2944
|
+
* // 获取侧边栏宽度
|
|
2945
|
+
* const width = SidebarControl.getSidebarWidth();
|
|
2946
|
+
* console.log('侧边栏宽度:', width);
|
|
2947
|
+
*
|
|
2948
|
+
* // 程序化切换工具
|
|
2949
|
+
* SidebarControl.setState({
|
|
2950
|
+
* activeTool: 'layer',
|
|
2951
|
+
* isExpanded: false
|
|
2952
|
+
* });
|
|
2953
|
+
*
|
|
2954
|
+
* // 销毁侧边栏
|
|
2955
|
+
* // SidebarControl.destroy();
|
|
2956
|
+
*/
|
|
2957
|
+
declare class SidebarControl {
|
|
2958
|
+
private container;
|
|
2959
|
+
private sidebarElement;
|
|
2960
|
+
private isExpanded;
|
|
2961
|
+
private activeTool;
|
|
2962
|
+
private isHovering;
|
|
2963
|
+
private panels;
|
|
2964
|
+
private activePanel;
|
|
2965
|
+
private toolbarData;
|
|
2966
|
+
private panelConfig;
|
|
2967
|
+
constructor(config?: {
|
|
2968
|
+
containerId?: string;
|
|
2969
|
+
defaultActive?: string;
|
|
2970
|
+
initiallyExpanded?: boolean;
|
|
2971
|
+
panelConfig?: Partial<SidebarPanelConfig>;
|
|
2972
|
+
});
|
|
2973
|
+
/**
|
|
2974
|
+
* 初始化侧边栏
|
|
2975
|
+
*/
|
|
2976
|
+
init(): Promise<void>;
|
|
2977
|
+
/**
|
|
2978
|
+
* 初始化所有已注册的面板
|
|
2979
|
+
*/
|
|
2980
|
+
private initAllPanels;
|
|
2981
|
+
/**
|
|
2982
|
+
* 注册面板
|
|
2983
|
+
*/
|
|
2984
|
+
registerPanel(toolId: string, panel: PanelBase): void;
|
|
2985
|
+
/**
|
|
2986
|
+
* 取消注册面板
|
|
2987
|
+
*/
|
|
2988
|
+
unregisterPanel(toolId: string): boolean;
|
|
2989
|
+
/**
|
|
2990
|
+
* 获取面板
|
|
2991
|
+
*/
|
|
2992
|
+
getPanel(toolId: string): PanelBase | undefined;
|
|
2993
|
+
/**
|
|
2994
|
+
* 获取所有面板
|
|
2995
|
+
*/
|
|
2996
|
+
getAllPanels(): Map<string, PanelBase>;
|
|
2997
|
+
/**
|
|
2998
|
+
* 显示指定面板
|
|
2999
|
+
*/
|
|
3000
|
+
showPanel(toolId: string): void;
|
|
3001
|
+
/**
|
|
3002
|
+
* 隐藏面板
|
|
3003
|
+
*/
|
|
3004
|
+
hidePanel(toolId: string): void;
|
|
3005
|
+
/**
|
|
3006
|
+
* 隐藏所有面板
|
|
3007
|
+
*/
|
|
3008
|
+
hideAllPanels(): void;
|
|
3009
|
+
/**
|
|
3010
|
+
* 面板关闭时更新侧边栏状态
|
|
3011
|
+
*/
|
|
3012
|
+
private updateSidebarOnPanelClose;
|
|
3013
|
+
/**
|
|
3014
|
+
* 更新面板位置
|
|
3015
|
+
*/
|
|
3016
|
+
private updatePanelPosition;
|
|
3017
|
+
/**
|
|
3018
|
+
* 切换侧边栏展开/收起
|
|
3019
|
+
*/
|
|
3020
|
+
toggleSidebar(): void;
|
|
3021
|
+
/**
|
|
3022
|
+
* 获取或创建容器
|
|
3023
|
+
*/
|
|
3024
|
+
private getOrCreateContainer;
|
|
3025
|
+
/**
|
|
3026
|
+
* 加载 Font Awesome
|
|
3027
|
+
*/
|
|
3028
|
+
private loadFontAwesome;
|
|
3029
|
+
/**
|
|
3030
|
+
* 加载 iconfont
|
|
3031
|
+
*/
|
|
3032
|
+
private loadIconfont;
|
|
3033
|
+
/**
|
|
3034
|
+
* 创建侧边栏
|
|
3035
|
+
*/
|
|
3036
|
+
private createSidebar;
|
|
3037
|
+
/**
|
|
3038
|
+
* 创建工具栏项
|
|
3039
|
+
*/
|
|
3040
|
+
private createToolbarItem;
|
|
3041
|
+
/**
|
|
3042
|
+
* 选择工具
|
|
3043
|
+
*/
|
|
3044
|
+
private selectTool;
|
|
3045
|
+
/**
|
|
3046
|
+
* 获取工具标签
|
|
3047
|
+
*/
|
|
3048
|
+
private getToolLabel;
|
|
3049
|
+
/**
|
|
3050
|
+
* 绑定事件
|
|
3051
|
+
*/
|
|
3052
|
+
private bindEvents;
|
|
3053
|
+
/**
|
|
3054
|
+
* 更新UI状态
|
|
3055
|
+
*/
|
|
3056
|
+
private updateUI;
|
|
3057
|
+
/**
|
|
3058
|
+
* 分发自定义事件
|
|
3059
|
+
*/
|
|
3060
|
+
private dispatchEvent;
|
|
3061
|
+
/**
|
|
3062
|
+
* 显示通知
|
|
3063
|
+
*/
|
|
3064
|
+
private showNotification;
|
|
3065
|
+
/**
|
|
3066
|
+
* 显示错误消息
|
|
3067
|
+
*/
|
|
3068
|
+
private showErrorMessage;
|
|
3069
|
+
/**
|
|
3070
|
+
* 添加CSS样式
|
|
3071
|
+
*/
|
|
3072
|
+
private addStyles;
|
|
3073
|
+
/**
|
|
3074
|
+
* 添加事件监听器
|
|
3075
|
+
*/
|
|
3076
|
+
on(eventName: string, callback: EventListener): void;
|
|
3077
|
+
/**
|
|
3078
|
+
* 移除事件监听器
|
|
3079
|
+
*/
|
|
3080
|
+
off(eventName: string, callback: EventListener): void;
|
|
3081
|
+
/**
|
|
3082
|
+
* 获取当前状态
|
|
3083
|
+
*/
|
|
3084
|
+
getState(): SidebarManagerState;
|
|
3085
|
+
/**
|
|
3086
|
+
* 设置侧边栏状态
|
|
3087
|
+
*/
|
|
3088
|
+
setState(state: Partial<SidebarManagerState>): void;
|
|
3089
|
+
/**
|
|
3090
|
+
* 获取侧边栏宽度
|
|
3091
|
+
*/
|
|
3092
|
+
getSidebarWidth(): number;
|
|
3093
|
+
/**
|
|
3094
|
+
* 获取当前激活的面板
|
|
3095
|
+
*/
|
|
3096
|
+
getActivePanel(): PanelBase | undefined;
|
|
3097
|
+
/**
|
|
3098
|
+
* 检查面板是否注册
|
|
3099
|
+
*/
|
|
3100
|
+
hasPanel(toolId: string): boolean;
|
|
3101
|
+
/**
|
|
3102
|
+
* 销毁侧边栏
|
|
3103
|
+
*/
|
|
3104
|
+
destroy(): void;
|
|
3105
|
+
}
|
|
3106
|
+
/**
|
|
3107
|
+
* 工具栏项接口
|
|
3108
|
+
*/
|
|
3109
|
+
interface ToolbarItem {
|
|
3110
|
+
id: string;
|
|
3111
|
+
label: string;
|
|
3112
|
+
icon: string;
|
|
3113
|
+
tooltip: string;
|
|
3114
|
+
disabled?: boolean;
|
|
3115
|
+
hasPanel?: boolean;
|
|
3116
|
+
}
|
|
3117
|
+
/**
|
|
3118
|
+
* 侧边栏面板配置接口
|
|
3119
|
+
*/
|
|
3120
|
+
interface SidebarPanelConfig {
|
|
3121
|
+
defaultWidth: number;
|
|
3122
|
+
defaultHeight: string | number;
|
|
3123
|
+
sidebarExpandedWidth: number;
|
|
3124
|
+
sidebarCollapsedWidth: number;
|
|
3125
|
+
zIndex: number;
|
|
3126
|
+
}
|
|
3127
|
+
/**
|
|
3128
|
+
* 侧边栏管理器状态接口
|
|
3129
|
+
*/
|
|
3130
|
+
interface SidebarManagerState {
|
|
3131
|
+
isExpanded: boolean;
|
|
3132
|
+
activeTool: string;
|
|
3133
|
+
activePanel: string | null;
|
|
3134
|
+
toolbarData: ToolbarItem[];
|
|
3135
|
+
registeredPanels: string[];
|
|
3136
|
+
}
|
|
3137
|
+
|
|
3138
|
+
/**
|
|
3139
|
+
* 图层控制面板
|
|
3140
|
+
*/
|
|
3141
|
+
declare class LayerControl extends PanelBase {
|
|
3142
|
+
private layerSystem;
|
|
3143
|
+
private folders;
|
|
3144
|
+
private searchTerm;
|
|
3145
|
+
private entityExpandedMap;
|
|
3146
|
+
constructor(render: Render$1, config?: PanelConfig);
|
|
3147
|
+
/**
|
|
3148
|
+
* 初始化默认目录
|
|
3149
|
+
*/
|
|
3150
|
+
private initializeDefaultFolders;
|
|
3151
|
+
/**
|
|
3152
|
+
* 初始化面板
|
|
3153
|
+
*/
|
|
3154
|
+
init(): Promise<void>;
|
|
3155
|
+
/**
|
|
3156
|
+
* 创建面板
|
|
3157
|
+
*/
|
|
3158
|
+
protected createPanel(): void;
|
|
3159
|
+
/**
|
|
3160
|
+
* 添加样式
|
|
3161
|
+
*/
|
|
3162
|
+
private addStyles;
|
|
3163
|
+
/**
|
|
3164
|
+
* 设置图层监听器
|
|
3165
|
+
*/
|
|
3166
|
+
private setupLayerListeners;
|
|
3167
|
+
/**
|
|
3168
|
+
* 绑定事件
|
|
3169
|
+
*/
|
|
3170
|
+
private bindEvents;
|
|
3171
|
+
/**
|
|
3172
|
+
* 渲染内容
|
|
3173
|
+
*/
|
|
3174
|
+
private renderContent;
|
|
3175
|
+
/**
|
|
3176
|
+
* 渲染对象层目录
|
|
3177
|
+
*/
|
|
3178
|
+
private renderObjectFolder;
|
|
3179
|
+
/**
|
|
3180
|
+
* 渲染目录
|
|
3181
|
+
*/
|
|
3182
|
+
private renderFolder;
|
|
3183
|
+
/**
|
|
3184
|
+
* 渲染图层列表
|
|
3185
|
+
*/
|
|
3186
|
+
private renderLayerList;
|
|
3187
|
+
/**
|
|
3188
|
+
* 过滤图层
|
|
3189
|
+
*/
|
|
3190
|
+
private filterLayers;
|
|
3191
|
+
/**
|
|
3192
|
+
* 获取图层所在目录
|
|
3193
|
+
*/
|
|
3194
|
+
private getLayerFolder;
|
|
3195
|
+
/**
|
|
3196
|
+
* 获取实体/图元图标
|
|
3197
|
+
*/
|
|
3198
|
+
private getEntityIcon;
|
|
3199
|
+
/**
|
|
3200
|
+
* 获取图层图标
|
|
3201
|
+
*/
|
|
3202
|
+
private getLayerIcon;
|
|
3203
|
+
/**
|
|
3204
|
+
* 过滤实体和图元对象
|
|
3205
|
+
*/
|
|
3206
|
+
private filterEntities;
|
|
3207
|
+
/**
|
|
3208
|
+
* 渲染实体和图元列表(支持递归)
|
|
3209
|
+
*/
|
|
3210
|
+
private renderEntityList;
|
|
3211
|
+
/**
|
|
3212
|
+
* 添加实体/图元样式
|
|
3213
|
+
*/
|
|
3214
|
+
private addEntityStyles;
|
|
3215
|
+
/**
|
|
3216
|
+
* 绑定内容事件
|
|
3217
|
+
*/
|
|
3218
|
+
private bindContentEvents;
|
|
3219
|
+
/**
|
|
3220
|
+
* 显示面板
|
|
3221
|
+
*/
|
|
3222
|
+
show(): void;
|
|
3223
|
+
/**
|
|
3224
|
+
* 切换目录展开状态
|
|
3225
|
+
*/
|
|
3226
|
+
private toggleFolder;
|
|
3227
|
+
/**
|
|
3228
|
+
* 显示添加图层对话框
|
|
3229
|
+
*/
|
|
3230
|
+
private showAddLayerDialog;
|
|
3231
|
+
/**
|
|
3232
|
+
* 显示添加目录对话框
|
|
3233
|
+
*/
|
|
3234
|
+
private showAddFolderDialog;
|
|
3235
|
+
/**
|
|
3236
|
+
* 添加目录
|
|
3237
|
+
*/
|
|
3238
|
+
private addFolder;
|
|
3239
|
+
/**
|
|
3240
|
+
* 显示右键菜单
|
|
3241
|
+
*/
|
|
3242
|
+
private showContextMenu;
|
|
3243
|
+
/**
|
|
3244
|
+
* 切换实体展开/收起状态
|
|
3245
|
+
*/
|
|
3246
|
+
private toggleEntityExpanded;
|
|
3247
|
+
/**
|
|
3248
|
+
* 刷新面板
|
|
3249
|
+
*/
|
|
3250
|
+
refresh(): void;
|
|
3251
|
+
}
|
|
3252
|
+
|
|
3253
|
+
/**
|
|
3254
|
+
* 工具箱控制面板
|
|
3255
|
+
*/
|
|
3256
|
+
declare class ToolboxControl extends PanelBase {
|
|
3257
|
+
private toolboxSystem;
|
|
3258
|
+
private isExpanded;
|
|
3259
|
+
constructor(render: Render$1, config?: PanelConfig);
|
|
3260
|
+
/**
|
|
3261
|
+
* 初始化面板
|
|
3262
|
+
*/
|
|
3263
|
+
init(): Promise<void>;
|
|
3264
|
+
/**
|
|
3265
|
+
* 创建面板
|
|
3266
|
+
*/
|
|
3267
|
+
protected createPanel(): void;
|
|
3268
|
+
/**
|
|
3269
|
+
* 加载 iconfont
|
|
3270
|
+
*/
|
|
3271
|
+
private loadIconfont;
|
|
3272
|
+
/**
|
|
3273
|
+
* 添加CSS样式 - 参考PlottingControl的布局
|
|
3274
|
+
*/
|
|
3275
|
+
private addStyles;
|
|
3276
|
+
/**
|
|
3277
|
+
* 渲染内容
|
|
3278
|
+
*/
|
|
3279
|
+
private renderContent;
|
|
3280
|
+
/**
|
|
3281
|
+
* 创建测量工具分类
|
|
3282
|
+
*/
|
|
3283
|
+
private createMeasurementCategory;
|
|
3284
|
+
/**
|
|
3285
|
+
* 创建裁切工具分类
|
|
3286
|
+
*/
|
|
3287
|
+
private createClippingCategory;
|
|
3288
|
+
/**
|
|
3289
|
+
* 创建裁切工具控件
|
|
3290
|
+
*/
|
|
3291
|
+
private createClippingControls;
|
|
3292
|
+
/**
|
|
3293
|
+
* 创建按钮网格
|
|
3294
|
+
*/
|
|
3295
|
+
private createButtonsGrid;
|
|
3296
|
+
/**
|
|
3297
|
+
* 创建工具按钮
|
|
3298
|
+
*/
|
|
3299
|
+
private createToolButton;
|
|
3300
|
+
/**
|
|
3301
|
+
* 绑定事件
|
|
3302
|
+
*/
|
|
3303
|
+
private bindEvents;
|
|
3304
|
+
/**
|
|
3305
|
+
* 处理加载 3D Tiles
|
|
3306
|
+
*/
|
|
3307
|
+
private handleLoadTileset;
|
|
3308
|
+
/**
|
|
3309
|
+
* 加载 3D Tiles
|
|
3310
|
+
*/
|
|
3311
|
+
private loadTileset;
|
|
3312
|
+
/**
|
|
3313
|
+
* 切换分类展开状态
|
|
3314
|
+
*/
|
|
3315
|
+
private toggleCategory;
|
|
3316
|
+
/**
|
|
3317
|
+
* 处理工具按钮点击
|
|
3318
|
+
*/
|
|
3319
|
+
private handleToolButtonClick;
|
|
3320
|
+
/**
|
|
3321
|
+
* 处理裁切应用
|
|
3322
|
+
*/
|
|
3323
|
+
private handleClippingApply;
|
|
3324
|
+
/**
|
|
3325
|
+
* 应用裁切
|
|
3326
|
+
* @param geojsonData GeoJSON数据
|
|
3327
|
+
*/
|
|
3328
|
+
private applyClipping;
|
|
3329
|
+
/**
|
|
3330
|
+
* 设置活动按钮
|
|
3331
|
+
*/
|
|
3332
|
+
private setActiveButton;
|
|
3333
|
+
/**
|
|
3334
|
+
* 显示通知
|
|
3335
|
+
*/
|
|
3336
|
+
private showNotification;
|
|
3337
|
+
/**
|
|
3338
|
+
* 刷新面板
|
|
3339
|
+
*/
|
|
3340
|
+
refresh(): void;
|
|
3341
|
+
}
|
|
3342
|
+
|
|
3343
|
+
/**
|
|
3344
|
+
* 建筑控制面板
|
|
3345
|
+
*/
|
|
3346
|
+
declare class BuildingControl extends PanelBase {
|
|
3347
|
+
private buildingSystem;
|
|
3348
|
+
private searchTerm;
|
|
3349
|
+
private allCityData;
|
|
3350
|
+
constructor(render: Render$1, config?: PanelConfig);
|
|
3351
|
+
/**
|
|
3352
|
+
* 初始化面板
|
|
3353
|
+
*/
|
|
3354
|
+
init(): Promise<void>;
|
|
3355
|
+
/**
|
|
3356
|
+
* 创建面板
|
|
3357
|
+
*/
|
|
3358
|
+
protected createPanel(): void;
|
|
3359
|
+
/**
|
|
3360
|
+
* 加载数据
|
|
3361
|
+
*/
|
|
3362
|
+
private loadData;
|
|
3363
|
+
/**
|
|
3364
|
+
* 加载统计数据
|
|
3365
|
+
*/
|
|
3366
|
+
private loadStats;
|
|
3367
|
+
/**
|
|
3368
|
+
* 更新统计数据
|
|
3369
|
+
*/
|
|
3370
|
+
private updateStats;
|
|
3371
|
+
/**
|
|
3372
|
+
* 渲染内容
|
|
3373
|
+
*/
|
|
3374
|
+
private renderContent;
|
|
3375
|
+
/**
|
|
3376
|
+
* 创建城市按钮
|
|
3377
|
+
*/
|
|
3378
|
+
private createCityButtons;
|
|
3379
|
+
/**
|
|
3380
|
+
* 渲染城市按钮
|
|
3381
|
+
*/
|
|
3382
|
+
private renderCityButtons;
|
|
3383
|
+
/**
|
|
3384
|
+
* 初始化搜索功能
|
|
3385
|
+
*/
|
|
3386
|
+
private initSearch;
|
|
3387
|
+
/**
|
|
3388
|
+
* 显示加载状态
|
|
3389
|
+
*/
|
|
3390
|
+
private showLoading;
|
|
3391
|
+
/**
|
|
3392
|
+
* 显示错误
|
|
3393
|
+
*/
|
|
3394
|
+
private showError;
|
|
3395
|
+
/**
|
|
3396
|
+
* 添加CSS样式
|
|
3397
|
+
*/
|
|
3398
|
+
private addStyles;
|
|
3399
|
+
/**
|
|
3400
|
+
* 绑定事件
|
|
3401
|
+
*/
|
|
3402
|
+
private bindEvents;
|
|
3403
|
+
/**
|
|
3404
|
+
* 刷新面板
|
|
3405
|
+
*/
|
|
3406
|
+
refresh(): Promise<void>;
|
|
3407
|
+
}
|
|
3408
|
+
|
|
3409
|
+
/**
|
|
3410
|
+
* 场景控制面板
|
|
3411
|
+
* 负责地名搜索和瓦片号查询定位的 UI 显示
|
|
3412
|
+
*/
|
|
3413
|
+
declare class SceneControl extends PanelBase {
|
|
3414
|
+
private sceneSystem;
|
|
3415
|
+
private propertyGridPanel;
|
|
3416
|
+
private isPropertyPanelEnabled;
|
|
3417
|
+
private selectObject;
|
|
3418
|
+
constructor(render: Render$1, config?: PanelConfig);
|
|
3419
|
+
/**
|
|
3420
|
+
* 初始化面板
|
|
3421
|
+
*/
|
|
3422
|
+
init(): Promise<void>;
|
|
3423
|
+
/**
|
|
3424
|
+
* 创建面板
|
|
3425
|
+
*/
|
|
3426
|
+
protected createPanel(): void;
|
|
3427
|
+
/**
|
|
3428
|
+
* 添加CSS样式
|
|
3429
|
+
*/
|
|
3430
|
+
private addStyles;
|
|
3431
|
+
/**
|
|
3432
|
+
* 渲染内容
|
|
3433
|
+
*/
|
|
3434
|
+
private renderContent;
|
|
3435
|
+
/**
|
|
3436
|
+
* 渲染搜索历史
|
|
3437
|
+
*/
|
|
3438
|
+
private renderSearchHistory;
|
|
3439
|
+
/**
|
|
3440
|
+
* 绑定事件
|
|
3441
|
+
*/
|
|
3442
|
+
private bindEvents;
|
|
3443
|
+
/**
|
|
3444
|
+
* 处理搜索
|
|
3445
|
+
*/
|
|
3446
|
+
private handleSearch;
|
|
3447
|
+
/**
|
|
3448
|
+
* 渲染搜索结果
|
|
3449
|
+
*/
|
|
3450
|
+
private renderSearchResults;
|
|
3451
|
+
/**
|
|
3452
|
+
* 处理瓦片查询
|
|
3453
|
+
*/
|
|
3454
|
+
private handleTileSearch;
|
|
3455
|
+
/**
|
|
3456
|
+
* 处理属性面板开关
|
|
3457
|
+
*/
|
|
3458
|
+
private handlePropertyPanelToggle;
|
|
3459
|
+
/**
|
|
3460
|
+
* 创建属性面板
|
|
3461
|
+
*/
|
|
3462
|
+
private createPropertyGridPanel;
|
|
3463
|
+
/**
|
|
3464
|
+
* 处理属性面板被关闭
|
|
3465
|
+
*/
|
|
3466
|
+
private handlePropertyPanelClosed;
|
|
3467
|
+
private handlePropertyUpdate;
|
|
3468
|
+
/**
|
|
3469
|
+
* 销毁属性面板
|
|
3470
|
+
*/
|
|
3471
|
+
private destroyPropertyGridPanel;
|
|
3472
|
+
/**
|
|
3473
|
+
* 获取默认属性组
|
|
3474
|
+
*/
|
|
3475
|
+
private getDefaultPropertyGroups;
|
|
3476
|
+
/**
|
|
3477
|
+
* 显示通知
|
|
3478
|
+
*/
|
|
3479
|
+
private showNotification;
|
|
3480
|
+
/**
|
|
3481
|
+
* 更新属性面板
|
|
3482
|
+
* @param selectObj 选中对象
|
|
3483
|
+
* @param groups 属性组列表
|
|
3484
|
+
*/
|
|
3485
|
+
updatePropertyPanel(selectObj: any, groups: PropertyGroupConfig[]): void;
|
|
3486
|
+
/**
|
|
3487
|
+
* 刷新面板
|
|
3488
|
+
*/
|
|
3489
|
+
refresh(): void;
|
|
3490
|
+
}
|
|
3491
|
+
|
|
3492
|
+
interface TilesetConfig {
|
|
3493
|
+
enabled?: boolean;
|
|
3494
|
+
enableMouseMove?: boolean;
|
|
3495
|
+
enableLeftClick?: boolean;
|
|
3496
|
+
maxLabelLines?: number;
|
|
3497
|
+
labelOffset?: Cartesian3;
|
|
3498
|
+
showBillboard?: boolean;
|
|
3499
|
+
autoFlyTo?: boolean;
|
|
3500
|
+
onBuildingClick?: (properties: any, pickedObject: any) => void;
|
|
3501
|
+
}
|
|
3502
|
+
declare class TilesetManager {
|
|
3503
|
+
private viewer;
|
|
3504
|
+
private labelEntity;
|
|
3505
|
+
private currentTile;
|
|
3506
|
+
private mouseHandler;
|
|
3507
|
+
private clippingPolygons;
|
|
3508
|
+
onBuildingClick?: (properties: any, pickedObject: any) => void;
|
|
3509
|
+
private config;
|
|
3510
|
+
private isEnabled;
|
|
3511
|
+
constructor(render: Render, config?: TilesetConfig);
|
|
3512
|
+
private init;
|
|
3513
|
+
createLabelEntity(): void;
|
|
3514
|
+
private setupMouseEvents;
|
|
3515
|
+
private handleMouseMove;
|
|
3516
|
+
private handleMouseClick;
|
|
3517
|
+
private handleMouseLeave;
|
|
3518
|
+
private onInnerBuildingClick;
|
|
3519
|
+
private onEmptyClick;
|
|
3520
|
+
private showBuildingDetails;
|
|
3521
|
+
private isBuildingTile;
|
|
3522
|
+
private showBuildingLabel;
|
|
3523
|
+
private getTilePosition;
|
|
3524
|
+
private extractBuildingProperties;
|
|
3525
|
+
private getBuildingHeight;
|
|
3526
|
+
private getBuildingArea;
|
|
3527
|
+
private formatProperties;
|
|
3528
|
+
private getPropertyPriority;
|
|
3529
|
+
private formatPropertyName;
|
|
3530
|
+
private formatPropertyValue;
|
|
3531
|
+
private hideLabel;
|
|
3532
|
+
/**
|
|
3533
|
+
* 加载 GeoJSON 并创建多个 ClippingPolygon
|
|
3534
|
+
* @param data GeoJSON 文件的 URL 字符串 或 GeoJSON 数据对象
|
|
3535
|
+
* @param tileset 要应用裁剪的 3D 瓦片集
|
|
3536
|
+
* @returns 所有多边形的坐标数组(用于可视化)
|
|
3537
|
+
*/
|
|
3538
|
+
loadClippingData(data: string | any, tileset: Cesium3DTileset): Promise<any[]>;
|
|
3539
|
+
/**
|
|
3540
|
+
* 移除当前应用的裁剪多边形
|
|
3541
|
+
* @param tileset 要移除裁剪的 3D 瓦片集
|
|
3542
|
+
*/
|
|
3543
|
+
removeClippingPolygons(tileset: Cesium3DTileset): void;
|
|
3544
|
+
/**
|
|
3545
|
+
* 获取当前裁剪多边形集合
|
|
3546
|
+
*/
|
|
3547
|
+
getClippingPolygons(): ClippingPolygonCollection | null;
|
|
3548
|
+
setEnabled(enabled: boolean): void;
|
|
3549
|
+
getEnabled(): boolean;
|
|
3550
|
+
toggleEnabled(): boolean;
|
|
3551
|
+
updateConfig(newConfig: Partial<TilesetConfig>): void;
|
|
3552
|
+
getConfig(): TilesetConfig;
|
|
3553
|
+
/**
|
|
3554
|
+
* 应用属性过滤样式
|
|
3555
|
+
* @param tileset 3D瓦片集
|
|
3556
|
+
* @param propertyName 要过滤的属性名
|
|
3557
|
+
* @param propertyValue 比较值
|
|
3558
|
+
* @param operator 比较运算符:'>', '>=', '<', '<=', '===', '!=='
|
|
3559
|
+
* @param highlightColor 匹配时的颜色,默认红色
|
|
3560
|
+
* @param defaultColor 默认颜色,默认白色
|
|
3561
|
+
*/
|
|
3562
|
+
applyPropertyFilterStyle(tileset: Cesium3DTileset, propertyName: string, propertyValue: number, operator?: string, highlightColor?: string, defaultColor?: string): void;
|
|
3563
|
+
/**
|
|
3564
|
+
* 应用范围过滤样式
|
|
3565
|
+
* @param tileset 3D瓦片集
|
|
3566
|
+
* @param propertyName 属性名
|
|
3567
|
+
* @param min 最小值
|
|
3568
|
+
* @param max 最大值
|
|
3569
|
+
* @param highlightColor 高亮颜色
|
|
3570
|
+
* @param defaultColor 默认颜色
|
|
3571
|
+
*/
|
|
3572
|
+
applyRangeFilterStyle(tileset: Cesium3DTileset, propertyName: string, min: number, max: number, highlightColor?: string, defaultColor?: string): void;
|
|
3573
|
+
/**
|
|
3574
|
+
* 移除所有样式
|
|
3575
|
+
* @param tileset 3D瓦片集
|
|
3576
|
+
*/
|
|
3577
|
+
removeStyle(tileset: Cesium3DTileset): void;
|
|
3578
|
+
destroy(): void;
|
|
3579
|
+
}
|
|
3580
|
+
|
|
3581
|
+
/**
|
|
3582
|
+
* Camera URL Manager - URL相机寻址功能
|
|
3583
|
+
* 从URL参数读取相机位置并设置视角,支持自动更新URL参数
|
|
3584
|
+
*/
|
|
3585
|
+
/**
|
|
3586
|
+
* CameraUrlManager 配置选项
|
|
3587
|
+
*/
|
|
3588
|
+
interface CameraUrlManagerConfig {
|
|
3589
|
+
/** Cesium Viewer 实例 */
|
|
3590
|
+
viewer: any;
|
|
3591
|
+
/** 是否启用功能 */
|
|
3592
|
+
enabled?: boolean;
|
|
3593
|
+
/** 是否自动更新URL参数 */
|
|
3594
|
+
autoUpdate?: boolean;
|
|
3595
|
+
/** 更新防抖延迟(毫秒) */
|
|
3596
|
+
debounceDelay?: number;
|
|
3597
|
+
/** 默认视角经度 */
|
|
3598
|
+
defaultLon?: number;
|
|
3599
|
+
/** 默认视角纬度 */
|
|
3600
|
+
defaultLat?: number;
|
|
3601
|
+
/** 默认视角高度 */
|
|
3602
|
+
defaultHeight?: number;
|
|
3603
|
+
/** 默认heading(度) */
|
|
3604
|
+
defaultHeading?: number;
|
|
3605
|
+
/** 默认pitch(度) */
|
|
3606
|
+
defaultPitch?: number;
|
|
3607
|
+
/** 默认roll(度) */
|
|
3608
|
+
defaultRoll?: number;
|
|
3609
|
+
/** 相机位置变化回调 */
|
|
3610
|
+
onCameraChange?: (cameraParams: CameraParams) => void;
|
|
3611
|
+
}
|
|
3612
|
+
/**
|
|
3613
|
+
* 相机参数
|
|
3614
|
+
*/
|
|
3615
|
+
interface CameraParams {
|
|
3616
|
+
/** 经度 */
|
|
3617
|
+
lon: number;
|
|
3618
|
+
/** 纬度 */
|
|
3619
|
+
lat: number;
|
|
3620
|
+
/** 高度 */
|
|
3621
|
+
height: number;
|
|
3622
|
+
/** 航向角(度) */
|
|
3623
|
+
heading: number;
|
|
3624
|
+
/** 俯仰角(度) */
|
|
3625
|
+
pitch: number;
|
|
3626
|
+
/** 翻滚角(度) */
|
|
3627
|
+
roll: number;
|
|
3628
|
+
}
|
|
3629
|
+
/**
|
|
3630
|
+
* URL相机寻址管理类
|
|
3631
|
+
*/
|
|
3632
|
+
declare class CameraUrlManager {
|
|
3633
|
+
private viewer;
|
|
3634
|
+
private enabled;
|
|
3635
|
+
private autoUpdate;
|
|
3636
|
+
private debounceDelay;
|
|
3637
|
+
private updateTimeout;
|
|
3638
|
+
private eventListener;
|
|
3639
|
+
private defaultLon;
|
|
3640
|
+
private defaultLat;
|
|
3641
|
+
private defaultHeight;
|
|
3642
|
+
private defaultHeading;
|
|
3643
|
+
private defaultPitch;
|
|
3644
|
+
private defaultRoll;
|
|
3645
|
+
private onCameraChange?;
|
|
3646
|
+
constructor(config: CameraUrlManagerConfig);
|
|
3647
|
+
/**
|
|
3648
|
+
* 初始化
|
|
3649
|
+
*/
|
|
3650
|
+
private init;
|
|
3651
|
+
/**
|
|
3652
|
+
* 设置事件监听
|
|
3653
|
+
*/
|
|
3654
|
+
private setupEventListener;
|
|
3655
|
+
/**
|
|
3656
|
+
* 移除事件监听
|
|
3657
|
+
*/
|
|
3658
|
+
private removeEventListener;
|
|
3659
|
+
/**
|
|
3660
|
+
* 处理相机移动结束事件
|
|
3661
|
+
*/
|
|
3662
|
+
private handleCameraMoveEnd;
|
|
3663
|
+
/**
|
|
3664
|
+
* 从URL读取相机位置并设置视角
|
|
3665
|
+
*/
|
|
3666
|
+
setCameraFromUrl(): void;
|
|
3667
|
+
/**
|
|
3668
|
+
* 设置默认相机视角
|
|
3669
|
+
*/
|
|
3670
|
+
setDefaultCamera(): void;
|
|
3671
|
+
/**
|
|
3672
|
+
* 更新URL参数(不刷新页面)
|
|
3673
|
+
*/
|
|
3674
|
+
updateUrlParams(): void;
|
|
3675
|
+
/**
|
|
3676
|
+
* 获取当前相机参数
|
|
3677
|
+
*/
|
|
3678
|
+
getCameraParams(): CameraParams;
|
|
3679
|
+
/**
|
|
3680
|
+
* 设置相机位置
|
|
3681
|
+
*/
|
|
3682
|
+
setCamera(params: Partial<CameraParams>): void;
|
|
3683
|
+
/**
|
|
3684
|
+
* 启用功能
|
|
3685
|
+
*/
|
|
3686
|
+
enable(): void;
|
|
3687
|
+
/**
|
|
3688
|
+
* 禁用功能
|
|
3689
|
+
*/
|
|
3690
|
+
disable(): void;
|
|
3691
|
+
/**
|
|
3692
|
+
* 设置是否自动更新
|
|
3693
|
+
*/
|
|
3694
|
+
setAutoUpdate(autoUpdate: boolean): void;
|
|
3695
|
+
/**
|
|
3696
|
+
* 销毁实例
|
|
3697
|
+
*/
|
|
3698
|
+
destroy(): void;
|
|
3699
|
+
}
|
|
3700
|
+
|
|
3701
|
+
declare global {
|
|
3702
|
+
interface Window {
|
|
3703
|
+
LACDT?: Record<string, any>;
|
|
3704
|
+
Cesium?: any;
|
|
3705
|
+
}
|
|
3706
|
+
}
|
|
3707
|
+
|
|
3708
|
+
declare const render: {
|
|
3709
|
+
/** 渲染类 */
|
|
3710
|
+
Render: typeof Render;
|
|
3711
|
+
/** 渲染控制面板 */
|
|
3712
|
+
RenderControl: typeof RenderControl;
|
|
3713
|
+
/** 新版环境控制面板 */
|
|
3714
|
+
EnvironmentControl: typeof EnvironmentControl;
|
|
3715
|
+
/** 布局控制面板 */
|
|
3716
|
+
SidebarControl: typeof SidebarControl;
|
|
3717
|
+
/** 绘图控制面板 */
|
|
3718
|
+
PlottingControl: typeof PlottingControl;
|
|
3719
|
+
/** 城市搜索控制面板 */
|
|
3720
|
+
TilesetSearchControl: typeof TilesetSearchControl;
|
|
3721
|
+
/** 图层控制系统 */
|
|
3722
|
+
LayerSystem: typeof LayerSystem;
|
|
3723
|
+
/** 图层控制面板 */
|
|
3724
|
+
LayerControl: typeof LayerControl;
|
|
3725
|
+
/** 工具箱控制面板 */
|
|
3726
|
+
ToolboxControl: typeof ToolboxControl;
|
|
3727
|
+
/** 工具箱系统 */
|
|
3728
|
+
ToolboxSystem: typeof ToolboxSystem;
|
|
3729
|
+
/** 表亲控制面板 */
|
|
3730
|
+
BuildingControl: typeof BuildingControl;
|
|
3731
|
+
/** 表亲系统 */
|
|
3732
|
+
BuildingSystem: typeof BuildingSystem;
|
|
3733
|
+
/** 场景控制面板 */
|
|
3734
|
+
SceneControl: typeof SceneControl;
|
|
3735
|
+
/** 场景系统 */
|
|
3736
|
+
SceneSystem: typeof SceneSystem;
|
|
3737
|
+
/**Tileset控制系统 */
|
|
3738
|
+
TilesetManager: typeof TilesetManager;
|
|
3739
|
+
/** URL相机寻址管理 */
|
|
3740
|
+
CameraUrlManager: typeof CameraUrlManager;
|
|
3741
|
+
};
|
|
3742
|
+
|
|
3743
|
+
export { AtmosphereControl, type AtmosphereScatteringConfig, AtmosphereScatteringSystem, BuildingControl, BuildingSystem, CameraListener, type CameraListenerConfig, CameraListenerSystem, type CameraListenerSystemConfig, type CameraParams, CameraUrlManager, type CameraUrlManagerConfig, type DirectionalLightConfig, type DistanceFogConfig, DistanceFogSystem, EnvironmentControl, FogControl, type HeightFogConfig, HeightFogSystem, LayerControl, LayerSystem, LightingControl, LightingSystem, PlottingControl, type PostProcessingConfig, PostProcessingControl, PostProcessingSystem, Render, type RenderConfig, RenderControl, type ShadowConfig, ShadowControl, ShadowSystem, SidebarControl, TilesetManager, TilesetSearchControl, ToolboxControl, ToolboxSystem, VolumetricCloudControl, type VolumetricCloudsConfig, VolumetricCloudsSystem, type WaterConfig, WaterControl, WaterSystem, render };
|