@metagl/sdk-render 1.0.8 → 1.0.9

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/lacdt.render.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as Cesium from 'cesium';
2
- import { Cartesian3, Color, Viewer, PostProcessStage, Cartesian4, Rectangle, Cesium3DTileset, ClippingPolygonCollection } from 'cesium';
2
+ import { Cartesian3, Color, Viewer, PostProcessStage, Cartesian4, Rectangle, Primitive, Cesium3DTileset, ClippingPolygonCollection } from 'cesium';
3
3
  import { Render as Render$1 } from '@/system/RenderCore';
4
4
 
5
5
  /**
@@ -104,6 +104,15 @@ declare class LightingSystem implements RenderSystem {
104
104
  destroy(): void;
105
105
  }
106
106
 
107
+ /**
108
+ * 检测 Viewer 运行环境
109
+ *
110
+ * 判断依据:DC V5.0.0 移除了原生 cesiumWidget,改为自身的 widgetContainer。
111
+ * 保留 cesiumWidget → 'cesium'(原生或其他兼容封装)
112
+ * 缺少 cesiumWidget → 'dc'(DC.Viewer 或同类框架)
113
+ */
114
+ type ViewerEnv = 'cesium' | 'dc';
115
+
107
116
  /**
108
117
  * 阴影系统配置
109
118
  */
@@ -128,6 +137,9 @@ declare class ShadowSystem implements RenderSystem {
128
137
  private config;
129
138
  private isEnabled;
130
139
  private originalSettings?;
140
+ private viewerEnv;
141
+ private shadowFrameListener?;
142
+ private originalGlobeShadows?;
131
143
  /**
132
144
  * 默认配置 - 从 EnvironmentDefaults 统一管理
133
145
  */
@@ -137,7 +149,7 @@ declare class ShadowSystem implements RenderSystem {
137
149
  * @param viewer - Cesium Viewer 实例
138
150
  * @param config - 阴影系统配置
139
151
  */
140
- constructor(viewer: Viewer, config?: ShadowConfig);
152
+ constructor(viewer: Viewer, config?: ShadowConfig, viewerEnv?: ViewerEnv);
141
153
  /**
142
154
  * 初始化
143
155
  */
@@ -150,6 +162,26 @@ declare class ShadowSystem implements RenderSystem {
150
162
  * 启用阴影系统
151
163
  */
152
164
  enable(): void;
165
+ /**
166
+ * DC 环境专用启用逻辑
167
+ *
168
+ * 问题根因:DC 初始化时 globe.shadows = RECEIVE_ONLY(地形接收阴影)。
169
+ * DC 环境下阴影相机视锥投影计算异常,深度比较全部失效,
170
+ * 导致视锥覆盖的整片地形全部变黑(图二中的巨型黑色矩形)。
171
+ *
172
+ * 修复:禁用地形阴影接收(globe.shadows = DISABLED),地形不参与阴影系统。
173
+ * 3D tileset 阴影独立配置(tileset.shadows),不受影响。
174
+ */
175
+ private enableDCMode;
176
+ /**
177
+ * DC 环境专用:保持 needsUpdate,确保 tileset 阴影每帧正常更新
178
+ * 不覆盖 _outOfView:Cesium 的高度/太阳角物理判断必须保留
179
+ */
180
+ private registerDCWorkaround;
181
+ /**
182
+ * 移除 DC 监听器(disable / destroy 时调用)
183
+ */
184
+ private removeDCWorkaround;
153
185
  /**
154
186
  * 禁用阴影系统
155
187
  */
@@ -342,9 +374,9 @@ declare class AtmosphereScatteringSystem implements RenderSystem {
342
374
  private getRealPlanetRadius;
343
375
  /**
344
376
  * 根据相机高度动态调节 skyAtmosphere.brightnessShift
345
- * 低空(< 30km) :-1.0(完全暗淡 = 等效关闭),自定义大气主导
346
- * 30km200km :线性从 -1.0 → 0.0 平滑过渡
347
- * 高空(> 200km):0.0(正常亮度),Cesium 内置光晕完全接管
377
+ * 低空(< 100km,卡门线以下):-1.0(完全暗淡),自定义大气主导,城市/宏观城市无光晕圈
378
+ * 100km500km :线性从 -1.0 → 0.0 平滑过渡(进入轨道空间)
379
+ * 高空(> 500km) :0.0(正常亮度),Cesium 内置光晕完全接管
348
380
  */
349
381
  private updateSkyAtmosphereIntensity;
350
382
  /**
@@ -951,148 +983,252 @@ declare class CameraListenerSystem {
951
983
  }
952
984
 
953
985
  /**
954
- * 水体系统配置接口
986
+ * 水体配置接口
955
987
  */
956
988
  interface WaterConfig {
957
- /** 是否启用水体系统 */
958
- enabled: boolean;
959
- /** 水体颜色 */
960
- color?: Color;
961
- /** 水体透明度 */
962
- opacity?: number;
963
- /** 水体反射强度 */
964
- reflectivity?: number;
965
- /** 水体折射率 */
966
- refractivity?: number;
967
- /** 水面波动强度 */
968
- waveStrength?: number;
969
- /** 水面波动频率 */
970
- waveFrequency?: number;
971
- /** 水面波动速度 */
972
- waveSpeed?: number;
973
- /** 法线纹理重复频率 */
974
- normalRepeat?: number;
975
- /** 浅滩深度 */
976
- shallowWaterDepth?: number;
977
- /** 深度衰减系数 */
978
- depthAttenuation?: number;
989
+ /** 水体基础颜色 RGBA */
990
+ baseWaterColor?: {
991
+ r: number;
992
+ g: number;
993
+ b: number;
994
+ a: number;
995
+ };
996
+ /** 波纹频率 */
997
+ frequency?: number;
998
+ /** 动画速度 */
999
+ animationSpeed?: number;
1000
+ /** 振幅 */
1001
+ amplitude?: number;
1002
+ /** 高光强度 */
1003
+ specularIntensity?: number;
1004
+ /** 法线贴图路径 */
1005
+ normalMap?: string;
1006
+ }
1007
+ /**
1008
+ * 水体加载进度
1009
+ */
1010
+ interface WaterLoadProgress {
1011
+ /** 总实体数 */
1012
+ total: number;
1013
+ /** 已加载数 */
1014
+ loaded: number;
1015
+ /** 百分比 */
1016
+ percentage: number;
1017
+ }
1018
+ /**
1019
+ * 水体加载选项
1020
+ */
1021
+ interface WaterLoadOptions {
1022
+ /** 每批处理数量,默认 10 */
1023
+ batchSize?: number;
1024
+ /** 进度回调 */
1025
+ onProgress?: (progress: WaterLoadProgress) => void;
1026
+ /** 取消信号 */
1027
+ signal?: AbortSignal;
1028
+ }
1029
+ /**
1030
+ * 水体加载状态
1031
+ */
1032
+ interface WaterLoadState {
1033
+ /** 是否正在加载 */
1034
+ isLoading: boolean;
1035
+ /** 当前加载的图层ID */
1036
+ currentLayer?: string;
1037
+ /** 加载进度 */
1038
+ progress?: WaterLoadProgress;
1039
+ }
1040
+ /**
1041
+ * 水体图层项
1042
+ */
1043
+ interface WaterLayerItem {
1044
+ id: string;
1045
+ name: string;
1046
+ url?: string;
1047
+ source?: 'url' | 'file';
1048
+ primitive: any;
1049
+ visible: boolean;
979
1050
  }
980
1051
  /**
981
1052
  * 水体系统类
982
- * 负责管理场景中的水体效果
1053
+ * 负责管理场景中的水体效果,支持 GeoJSON 数据加载
1054
+ */
1055
+ /**
1056
+ * 水体事件类型
1057
+ */
1058
+ type WaterEventType = 'waterLayer:add' | 'waterLayer:remove' | 'waterLayer:visible';
1059
+ /**
1060
+ * 水体系统类
1061
+ * 负责管理场景中的水体效果,支持 GeoJSON 数据加载
983
1062
  */
984
1063
  declare class WaterSystem implements RenderSystem {
985
1064
  private viewer;
986
1065
  private config;
987
- private waterPrimitive?;
988
- private waterPrimitives;
989
- private isInitialized;
990
- private isEnabled;
991
- private morphCompleteListener;
992
- private postRenderListener;
993
- private lastWaterPrimitiveParams;
994
- private lastWaterPrimitiveConfig;
1066
+ private waterLayers;
1067
+ private enabled;
1068
+ private eventListeners;
1069
+ /** 共享材质实例 */
1070
+ private _sharedWaterMaterial;
1071
+ /** 地形高度是否已初始化 */
1072
+ private _terrainHeightsReady;
1073
+ /** 地形高度初始化 Promise */
1074
+ private _terrainHeightsPromise;
1075
+ /** 加载状态 */
1076
+ private _loadState;
1077
+ /** 取消控制器 */
1078
+ private _abortController;
995
1079
  constructor(viewer: Viewer, config?: WaterConfig);
996
1080
  /**
997
- * 初始化水体系统
1081
+ * 初始化事件系统
1082
+ */
1083
+ private initializeEvents;
1084
+ /**
1085
+ * 添加事件监听
1086
+ */
1087
+ on(event: WaterEventType, callback: (layer?: WaterLayerItem, data?: any) => void): void;
1088
+ /**
1089
+ * 移除事件监听
1090
+ */
1091
+ off(event: WaterEventType, callback: Function): void;
1092
+ /**
1093
+ * 触发事件
1094
+ */
1095
+ private emitEvent;
1096
+ /**
1097
+ * 初始化系统
998
1098
  */
999
1099
  initialize(): void;
1000
1100
  /**
1001
- * 创建水体几何
1101
+ * 启用系统(不自动创建水面,水面通过 loadWaterFromUrl/loadWaterFromFile 添加)
1102
+ * 水图层始终使用贴地模式
1103
+ *
1104
+ * 优化:地形高度初始化改为后台异步执行,enable() 立即返回
1002
1105
  */
1003
- private createWaterGeometry;
1106
+ enable(): Promise<void>;
1004
1107
  /**
1005
- * 加载水体数据
1108
+ * 异步初始化地形高度数据
1109
+ * 在后台执行,不阻塞主线程
1006
1110
  */
1007
- private loadWaterData;
1111
+ private initializeTerrainHeightsAsync;
1008
1112
  /**
1009
- * 创建调试用的水体
1113
+ * 等待地形初始化完成
1114
+ * 在加载水图层前调用,确保地形数据已准备好
1010
1115
  */
1011
- private createDebugWater;
1116
+ waitForTerrainReady(): Promise<void>;
1012
1117
  /**
1013
- * 配置水体样式
1118
+ * 检查地形是否已初始化
1014
1119
  */
1015
- private setupWaterStyling;
1120
+ isTerrainReady(): boolean;
1016
1121
  /**
1017
- * 设置事件监听器
1122
+ * 禁用系统
1018
1123
  */
1019
- private setupEventListeners;
1124
+ disable(): void;
1020
1125
  /**
1021
- * 更新水体动画
1126
+ * 更新配置(更新所有已加载水图层的外观参数)
1022
1127
  */
1023
- private updateWaterAnimation;
1128
+ update(config: Partial<WaterConfig>): void;
1024
1129
  /**
1025
- * 启用水体系统(带配置恢复)
1130
+ * 实时更新水图层效果(无需重新加载)
1131
+ * 直接修改已存在水图元的材质参数
1026
1132
  */
1027
- enable(): void;
1133
+ updateWaterLayerEffect(config: Partial<WaterConfig>): void;
1028
1134
  /**
1029
- * 清理可能残留的引用
1135
+ * 获取系统状态
1030
1136
  */
1031
- private cleanupRemnants;
1137
+ getStatus(): boolean;
1032
1138
  /**
1033
- * 重新加载水体数据
1139
+ * 获取当前配置
1034
1140
  */
1035
- private reloadWaterData;
1141
+ getConfig(): WaterConfig;
1036
1142
  /**
1037
- * 应用水体配置
1143
+ * 从 URL 加载水体数据(优化版本,支持进度回调)
1144
+ * @param url GeoJSON 数据地址
1145
+ * @param name 水图层名称
1146
+ * @param options 加载选项(包含进度回调)
1147
+ * @returns 水图层ID
1038
1148
  */
1039
- private applyWaterConfig;
1149
+ loadWaterFromUrl(url: string, name?: string, options?: WaterLoadOptions): Promise<string>;
1040
1150
  /**
1041
- * 重新创建水体图元,应用当前配置
1151
+ * 从文件加载水体数据(优化版本,支持进度回调)
1152
+ * @param file GeoJSON 文件
1153
+ * @param name 水图层名称
1154
+ * @param options 加载选项(包含进度回调)
1155
+ * @returns 水图层ID
1042
1156
  */
1043
- private recreateWaterPrimitives;
1157
+ loadWaterFromFile(file: File, name?: string, options?: WaterLoadOptions): Promise<string>;
1044
1158
  /**
1045
- * 创建带配置的调试水体
1159
+ * 异步分批创建水体图元
1160
+ * 使用 requestIdleCallback 分批处理,避免阻塞主线程
1046
1161
  */
1047
- private createDebugWaterWithConfig;
1162
+ private createWaterPrimitivesAsync;
1048
1163
  /**
1049
- * 销毁水体图元但不重置配置
1164
+ * 从 GeoJSON 数据源创建水体图元(同步版本,保留向后兼容)
1165
+ * @deprecated 建议使用 createWaterPrimitivesAsync 异步版本
1050
1166
  */
1051
- private destroyWaterPrimitives;
1167
+ private createWaterPrimitivesFromDataSource;
1052
1168
  /**
1053
- * 禁用水体系统(强制完全销毁)
1169
+ * 获取或创建共享材质实例
1054
1170
  */
1055
- disable(): void;
1056
- private stopAllAnimations;
1057
- private removeAllWaterPrimitives;
1058
- private isWaterPrimitive;
1059
- private clearAllReferences;
1060
- private triggerGarbageCollection;
1061
- private verifyShutdown;
1171
+ private getOrCreateSharedMaterial;
1062
1172
  /**
1063
- * 更新水体配置
1173
+ * 使用共享材质创建水体图元
1064
1174
  */
1065
- update(config: Partial<WaterConfig>): void;
1175
+ private createWaterPrimitiveWithSharedMaterial;
1066
1176
  /**
1067
- * 更新水体样式
1177
+ * 创建水体图元(保留向后兼容)
1178
+ * @deprecated 建议使用 createWaterPrimitiveWithSharedMaterial
1068
1179
  */
1069
- private updateWaterStyle;
1180
+ private createWaterPrimitive;
1070
1181
  /**
1071
- * 获取系统状态
1182
+ * 创建图元集合
1072
1183
  */
1073
- getStatus(): boolean;
1184
+ private createPrimitiveCollection;
1074
1185
  /**
1075
- * 获取当前配置
1186
+ * 让出主线程的工具方法
1187
+ * 使用 requestIdleCallback 或 setTimeout 作为 fallback
1076
1188
  */
1077
- getConfig(): WaterConfig;
1189
+ private yieldToMain;
1078
1190
  /**
1079
- * 保存配置
1191
+ * 获取加载状态
1080
1192
  */
1081
- saveConfig(): WaterConfig;
1193
+ getLoadState(): WaterLoadState;
1082
1194
  /**
1083
- * 获取系统状态信息(调试用)
1195
+ * 取消当前加载
1084
1196
  */
1085
- getDebugInfo(): any;
1197
+ cancelLoad(): void;
1198
+ /**
1199
+ * 创建取消控制器
1200
+ */
1201
+ createAbortController(): AbortController;
1202
+ /**
1203
+ * 更新加载状态
1204
+ */
1205
+ private updateLoadState;
1206
+ /**
1207
+ * 移除指定水图层
1208
+ */
1209
+ removeWaterLayer(layerId: string): boolean;
1210
+ /**
1211
+ * 清除所有用户添加的水图层
1212
+ */
1213
+ clearAllWaterLayers(): void;
1086
1214
  /**
1087
- * 检查图元是否在场景中(安全方法)
1215
+ * 获取所有水图层
1088
1216
  */
1089
- private isPrimitiveInScene;
1217
+ getWaterLayers(): WaterLayerItem[];
1090
1218
  /**
1091
- * 强制清理所有水体图元
1219
+ * 获取指定水图层
1092
1220
  */
1093
- forceCleanup(): void;
1221
+ getWaterLayer(layerId: string): WaterLayerItem | undefined;
1094
1222
  /**
1095
- * 销毁水体系统
1223
+ * 设置水图层可见性
1224
+ */
1225
+ setWaterLayerVisible(layerId: string, visible: boolean): boolean;
1226
+ /**
1227
+ * 生成唯一ID
1228
+ */
1229
+ private generateId;
1230
+ /**
1231
+ * 销毁系统
1096
1232
  */
1097
1233
  destroy(): void;
1098
1234
  }
@@ -1147,6 +1283,8 @@ declare class LayerSystem implements RenderSystem {
1147
1283
  private layers;
1148
1284
  private entities;
1149
1285
  private eventListeners;
1286
+ private savedTerrainProvider;
1287
+ private defaultTerrainProvider;
1150
1288
  constructor(render: Render);
1151
1289
  initialize(): void;
1152
1290
  enable(): void;
@@ -1157,6 +1295,7 @@ declare class LayerSystem implements RenderSystem {
1157
1295
  saveConfig?(): void;
1158
1296
  /**
1159
1297
  * 加载地球已有的图层
1298
+ * 预设四个固定图层:影像地图、影像注记、矢量地图、高程
1160
1299
  */
1161
1300
  loadExistingLayers(): void;
1162
1301
  /**
@@ -1167,6 +1306,11 @@ declare class LayerSystem implements RenderSystem {
1167
1306
  * 递归加载子实体
1168
1307
  */
1169
1308
  private loadChildEntities;
1309
+ /**
1310
+ * 异步加载高程图层
1311
+ * @param layer 高程图层配置
1312
+ */
1313
+ private loadTerrainLayer;
1170
1314
  /**
1171
1315
  * 获取所有实体和图元对象
1172
1316
  */
@@ -1245,8 +1389,21 @@ declare class LayerSystem implements RenderSystem {
1245
1389
  private removeFromCesium;
1246
1390
  /**
1247
1391
  * 设置图层可见性
1392
+ * 支持底图互斥:当勾选矢量地图时,自动取消勾选影像地图和影像注记,反之亦然
1393
+ * 支持高程图层可见性切换
1248
1394
  */
1249
1395
  setLayerVisible(layerId: string, visible: boolean): boolean;
1396
+ /**
1397
+ * 设置高程图层可见性
1398
+ * @param visible 是否可见
1399
+ */
1400
+ private setTerrainLayerVisible;
1401
+ /**
1402
+ * 处理底图互斥逻辑
1403
+ * 当勾选矢量地图时,取消勾选影像地图和影像注记
1404
+ * 当勾选影像地图或影像注记时,取消勾选矢量地图
1405
+ */
1406
+ private handleBaseMapMutex;
1250
1407
  /**
1251
1408
  * 设置图层可见性(内部方法)
1252
1409
  */
@@ -2325,6 +2482,7 @@ declare class Render {
2325
2482
  engine: any;
2326
2483
  viewer: Viewer;
2327
2484
  config: RenderConfig;
2485
+ viewerEnv: ViewerEnv;
2328
2486
  private lightingSystem;
2329
2487
  private shadowSystem;
2330
2488
  private volumetricCloudsSystem;
@@ -3040,11 +3198,11 @@ declare class WaterControl {
3040
3198
  */
3041
3199
  createPanel(container: HTMLElement): void;
3042
3200
  /**
3043
- * 创建面板内容
3201
+ * 创建面板内容(不包含区域设置,区域通过 GeoJSON 文件指定)
3044
3202
  */
3045
3203
  private createPanelContent;
3046
3204
  /**
3047
- * 初始化事件监听器
3205
+ * 初始化事件监听器(不包含区域设置,区域通过 GeoJSON 文件指定)
3048
3206
  */
3049
3207
  initEventListeners(container: HTMLElement): void;
3050
3208
  /**
@@ -3056,13 +3214,199 @@ declare class WaterControl {
3056
3214
  */
3057
3215
  applyDefaultPresets(): void;
3058
3216
  /**
3059
- * RGB颜色转十六进制
3217
+ * RGBA 对象转十六进制
3218
+ */
3219
+ private rgbaToHex;
3220
+ /**
3221
+ * 十六进制颜色转 RGBA 对象
3222
+ */
3223
+ private hexToRgba;
3224
+ }
3225
+
3226
+ /**
3227
+ * 海洋数据项接口
3228
+ */
3229
+ interface SeaLayerItem {
3230
+ id: string;
3231
+ name: string;
3232
+ url?: string;
3233
+ source?: 'url' | 'file';
3234
+ primitive: Primitive | null;
3235
+ visible: boolean;
3236
+ }
3237
+ /**
3238
+ * 海洋系统配置接口
3239
+ */
3240
+ interface SeaConfig {
3241
+ /** 是否启用海洋系统 */
3242
+ enabled: boolean;
3243
+ /** 海洋颜色 */
3244
+ color?: Color;
3245
+ /** 海洋透明度 */
3246
+ opacity?: number;
3247
+ /** 海洋反射强度 */
3248
+ specularIntensity?: number;
3249
+ /** 海洋波动振幅 */
3250
+ amplitude?: number;
3251
+ /** 海洋波动频率 */
3252
+ frequency?: number;
3253
+ /** 海洋动画速度 */
3254
+ animationSpeed?: number;
3255
+ /** 法线纹理路径 */
3256
+ normalMapUrl?: string;
3257
+ /** 海洋数据路径 */
3258
+ dataUrl?: string;
3259
+ }
3260
+ /**
3261
+ * 海洋系统类
3262
+ * 负责管理场景中的海洋效果
3263
+ * 参考 RenderSeaPolygon 实现
3264
+ */
3265
+ declare class SeaSystem implements RenderSystem {
3266
+ private viewer;
3267
+ private config;
3268
+ private seaPrimitive;
3269
+ private isInitialized;
3270
+ private isEnabled;
3271
+ private morphCompleteListener;
3272
+ private postRenderListener;
3273
+ constructor(viewer: Viewer, config?: SeaConfig);
3274
+ /**
3275
+ * 初始化海洋系统
3276
+ */
3277
+ initialize(): void;
3278
+ /**
3279
+ * 创建海洋几何
3280
+ */
3281
+ private createSeaGeometry;
3282
+ /**
3283
+ * 加载海洋数据
3284
+ */
3285
+ private loadSeaData;
3286
+ /**
3287
+ * 从GeoJSON获取层级结构
3288
+ */
3289
+ private getHierarchies;
3290
+ /**
3291
+ * 从几何体获取层级结构
3292
+ */
3293
+ private getHierarchiesFromGeometry;
3294
+ /**
3295
+ * 从坐标数组获取层级结构
3296
+ */
3297
+ private getHierarchy;
3298
+ /**
3299
+ * 绘制海洋
3300
+ */
3301
+ private drawSea;
3302
+ /**
3303
+ * 创建水体材质
3304
+ */
3305
+ private createWaterMaterial;
3306
+ /**
3307
+ * 创建调试用的海洋
3308
+ */
3309
+ private createDebugSea;
3310
+ /**
3311
+ * 配置海洋样式
3312
+ */
3313
+ private setupSeaStyling;
3314
+ /**
3315
+ * 设置事件监听器
3316
+ */
3317
+ private setupEventListeners;
3318
+ /**
3319
+ * 更新海洋动画
3320
+ */
3321
+ private updateSeaAnimation;
3322
+ /**
3323
+ * 启用海洋系统
3324
+ */
3325
+ enable(): void;
3326
+ /**
3327
+ * 重新创建海洋图元
3328
+ */
3329
+ private recreateSeaPrimitives;
3330
+ /**
3331
+ * 禁用海洋系统
3332
+ */
3333
+ disable(): void;
3334
+ /**
3335
+ * 销毁海洋图元
3336
+ */
3337
+ private destroySeaPrimitives;
3338
+ /**
3339
+ * 更新海洋配置
3340
+ */
3341
+ update(config: Partial<SeaConfig>): void;
3342
+ /**
3343
+ * 更新海洋样式
3344
+ */
3345
+ private updateSeaStyle;
3346
+ /**
3347
+ * 获取系统状态
3348
+ */
3349
+ getStatus(): boolean;
3350
+ /**
3351
+ * 获取当前配置
3352
+ */
3353
+ getConfig(): SeaConfig;
3354
+ /**
3355
+ * 保存配置
3356
+ */
3357
+ saveConfig(): SeaConfig;
3358
+ /**
3359
+ * 获取系统状态信息(调试用)
3360
+ */
3361
+ getDebugInfo(): any;
3362
+ /**
3363
+ * 销毁海洋系统
3364
+ */
3365
+ destroy(): void;
3366
+ /** 用户添加的海图层 */
3367
+ private seaLayers;
3368
+ /**
3369
+ * 从 URL 加载海洋数据
3370
+ * @param url GeoJSON 数据地址
3371
+ * @param name 海图层名称
3372
+ * @returns 海图层ID
3373
+ */
3374
+ loadSeaFromUrl(url: string, name?: string): Promise<string>;
3375
+ /**
3376
+ * 从文件加载海洋数据
3377
+ * @param file GeoJSON 文件
3378
+ * @param name 海图层名称
3379
+ * @returns 海图层ID
3380
+ */
3381
+ loadSeaFromFile(file: File, name?: string): Promise<string>;
3382
+ /**
3383
+ * 从层级结构创建海洋图元
3384
+ */
3385
+ private createSeaPrimitivesFromHierarchies;
3386
+ /**
3387
+ * 获取所有用户添加的海图层
3388
+ */
3389
+ getSeaLayers(): SeaLayerItem[];
3390
+ /**
3391
+ * 获取指定海图层
3392
+ */
3393
+ getSeaLayer(layerId: string): SeaLayerItem | undefined;
3394
+ /**
3395
+ * 设置海图层可见性
3396
+ */
3397
+ setSeaLayerVisible(layerId: string, visible: boolean): boolean;
3398
+ /**
3399
+ * 移除指定海图层
3400
+ */
3401
+ removeSeaLayer(layerId: string): boolean;
3402
+ /**
3403
+ * 清除所有用户添加的海图层
3060
3404
  */
3061
- private rgbToHex;
3405
+ clearAllSeaLayers(): void;
3062
3406
  /**
3063
- * 十六进制颜色转RGB
3407
+ * 获取脚本基础URL
3064
3408
  */
3065
- private hexToRgb;
3409
+ private getScriptBaseUrl;
3066
3410
  }
3067
3411
 
3068
3412
  /**
@@ -3501,6 +3845,8 @@ interface SidebarManagerState {
3501
3845
  */
3502
3846
  declare class LayerControl extends PanelBase {
3503
3847
  private layerSystem;
3848
+ private waterSystem;
3849
+ private render;
3504
3850
  private folders;
3505
3851
  private searchTerm;
3506
3852
  private entityExpandedMap;
@@ -3565,6 +3911,18 @@ declare class LayerControl extends PanelBase {
3565
3911
  * 过滤实体和图元对象
3566
3912
  */
3567
3913
  private filterEntities;
3914
+ /**
3915
+ * 过滤水图层
3916
+ */
3917
+ private filterWaterLayers;
3918
+ /**
3919
+ * 渲染水图层文件夹
3920
+ */
3921
+ private renderWaterFolder;
3922
+ /**
3923
+ * 渲染水图层列表
3924
+ */
3925
+ private renderWaterLayerList;
3568
3926
  /**
3569
3927
  * 渲染实体和图元列表(支持递归)
3570
3928
  */
@@ -3589,6 +3947,22 @@ declare class LayerControl extends PanelBase {
3589
3947
  * 显示添加图层对话框
3590
3948
  */
3591
3949
  private showAddLayerDialog;
3950
+ /**
3951
+ * 添加对话框样式
3952
+ */
3953
+ private addDialogStyles;
3954
+ /**
3955
+ * 绑定对话框事件
3956
+ */
3957
+ private bindDialogEvents;
3958
+ /**
3959
+ * 处理水图层添加
3960
+ */
3961
+ private handleWaterLayerAdd;
3962
+ /**
3963
+ * 关闭对话框
3964
+ */
3965
+ private closeDialog;
3592
3966
  /**
3593
3967
  * 显示添加目录对话框
3594
3968
  */
@@ -3605,6 +3979,30 @@ declare class LayerControl extends PanelBase {
3605
3979
  * 切换实体展开/收起状态
3606
3980
  */
3607
3981
  private toggleEntityExpanded;
3982
+ /**
3983
+ * 显示水图层效果编辑对话框
3984
+ */
3985
+ private showWaterEffectDialog;
3986
+ /**
3987
+ * 添加水效果对话框样式
3988
+ */
3989
+ private addWaterEffectDialogStyles;
3990
+ /**
3991
+ * 绑定水效果对话框事件
3992
+ */
3993
+ private bindWaterEffectDialogEvents;
3994
+ /**
3995
+ * 关闭水效果编辑对话框
3996
+ */
3997
+ private closeWaterEffectDialog;
3998
+ /**
3999
+ * RGBA 对象转十六进制
4000
+ */
4001
+ private rgbaToHex;
4002
+ /**
4003
+ * 十六进制颜色转 RGBA 对象
4004
+ */
4005
+ private hexToRgba;
3608
4006
  /**
3609
4007
  * 刷新面板
3610
4008
  */
@@ -4362,6 +4760,8 @@ declare const render: {
4362
4760
  CameraUrlManager: typeof CameraUrlManager;
4363
4761
  /** 下雨天气系统 */
4364
4762
  RainSystem: typeof RainSystem;
4763
+ /** 海洋系统 */
4764
+ SeaSystem: typeof SeaSystem;
4365
4765
  };
4366
4766
 
4367
- 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, type RainBounds, type RainConfig, RainSystem, Render, type RenderConfig, RenderControl, type ShadowConfig, ShadowControl, ShadowSystem, SidebarControl, TilesetManager, TilesetSearchControl, ToolboxControl, ToolboxSystem, VolumetricCloudControl, type VolumetricCloudsConfig, VolumetricCloudsSystem, type WaterConfig, WaterControl, WaterSystem, defaultRainConfig, render };
4767
+ 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, type RainBounds, type RainConfig, RainSystem, Render, type RenderConfig, RenderControl, type SeaConfig, SeaSystem, type ShadowConfig, ShadowControl, ShadowSystem, SidebarControl, TilesetManager, TilesetSearchControl, ToolboxControl, ToolboxSystem, VolumetricCloudControl, type VolumetricCloudsConfig, VolumetricCloudsSystem, type WaterConfig, WaterControl, WaterSystem, defaultRainConfig, render };