@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/README.md +13 -0
- package/README_EN.md +13 -0
- package/amd/lacdt.render.amd.js +53 -50
- package/cjs/lacdt.render.cjs.js +53 -50
- package/cjs/lacdt.render.d.ts +496 -96
- package/esm/lacdt.render.d.ts +496 -96
- package/esm/lacdt.render.js +53 -51
- package/lacdt.render.d.ts +496 -96
- package/lacdt.render.js +53 -50
- package/package.json +1 -1
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
|
-
* 低空(<
|
|
346
|
-
*
|
|
347
|
-
* 高空(>
|
|
377
|
+
* 低空(< 100km,卡门线以下):-1.0(完全暗淡),自定义大气主导,城市/宏观城市无光晕圈
|
|
378
|
+
* 100km → 500km :线性从 -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
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
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
|
|
988
|
-
private
|
|
989
|
-
private
|
|
990
|
-
|
|
991
|
-
private
|
|
992
|
-
|
|
993
|
-
private
|
|
994
|
-
|
|
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
|
-
|
|
1106
|
+
enable(): Promise<void>;
|
|
1004
1107
|
/**
|
|
1005
|
-
*
|
|
1108
|
+
* 异步初始化地形高度数据
|
|
1109
|
+
* 在后台执行,不阻塞主线程
|
|
1006
1110
|
*/
|
|
1007
|
-
private
|
|
1111
|
+
private initializeTerrainHeightsAsync;
|
|
1008
1112
|
/**
|
|
1009
|
-
*
|
|
1113
|
+
* 等待地形初始化完成
|
|
1114
|
+
* 在加载水图层前调用,确保地形数据已准备好
|
|
1010
1115
|
*/
|
|
1011
|
-
|
|
1116
|
+
waitForTerrainReady(): Promise<void>;
|
|
1012
1117
|
/**
|
|
1013
|
-
*
|
|
1118
|
+
* 检查地形是否已初始化
|
|
1014
1119
|
*/
|
|
1015
|
-
|
|
1120
|
+
isTerrainReady(): boolean;
|
|
1016
1121
|
/**
|
|
1017
|
-
*
|
|
1122
|
+
* 禁用系统
|
|
1018
1123
|
*/
|
|
1019
|
-
|
|
1124
|
+
disable(): void;
|
|
1020
1125
|
/**
|
|
1021
|
-
*
|
|
1126
|
+
* 更新配置(更新所有已加载水图层的外观参数)
|
|
1022
1127
|
*/
|
|
1023
|
-
|
|
1128
|
+
update(config: Partial<WaterConfig>): void;
|
|
1024
1129
|
/**
|
|
1025
|
-
*
|
|
1130
|
+
* 实时更新水图层效果(无需重新加载)
|
|
1131
|
+
* 直接修改已存在水图元的材质参数
|
|
1026
1132
|
*/
|
|
1027
|
-
|
|
1133
|
+
updateWaterLayerEffect(config: Partial<WaterConfig>): void;
|
|
1028
1134
|
/**
|
|
1029
|
-
*
|
|
1135
|
+
* 获取系统状态
|
|
1030
1136
|
*/
|
|
1031
|
-
|
|
1137
|
+
getStatus(): boolean;
|
|
1032
1138
|
/**
|
|
1033
|
-
*
|
|
1139
|
+
* 获取当前配置
|
|
1034
1140
|
*/
|
|
1035
|
-
|
|
1141
|
+
getConfig(): WaterConfig;
|
|
1036
1142
|
/**
|
|
1037
|
-
*
|
|
1143
|
+
* 从 URL 加载水体数据(优化版本,支持进度回调)
|
|
1144
|
+
* @param url GeoJSON 数据地址
|
|
1145
|
+
* @param name 水图层名称
|
|
1146
|
+
* @param options 加载选项(包含进度回调)
|
|
1147
|
+
* @returns 水图层ID
|
|
1038
1148
|
*/
|
|
1039
|
-
|
|
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
|
-
|
|
1157
|
+
loadWaterFromFile(file: File, name?: string, options?: WaterLoadOptions): Promise<string>;
|
|
1044
1158
|
/**
|
|
1045
|
-
*
|
|
1159
|
+
* 异步分批创建水体图元
|
|
1160
|
+
* 使用 requestIdleCallback 分批处理,避免阻塞主线程
|
|
1046
1161
|
*/
|
|
1047
|
-
private
|
|
1162
|
+
private createWaterPrimitivesAsync;
|
|
1048
1163
|
/**
|
|
1049
|
-
*
|
|
1164
|
+
* 从 GeoJSON 数据源创建水体图元(同步版本,保留向后兼容)
|
|
1165
|
+
* @deprecated 建议使用 createWaterPrimitivesAsync 异步版本
|
|
1050
1166
|
*/
|
|
1051
|
-
private
|
|
1167
|
+
private createWaterPrimitivesFromDataSource;
|
|
1052
1168
|
/**
|
|
1053
|
-
*
|
|
1169
|
+
* 获取或创建共享材质实例
|
|
1054
1170
|
*/
|
|
1055
|
-
|
|
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
|
-
|
|
1175
|
+
private createWaterPrimitiveWithSharedMaterial;
|
|
1066
1176
|
/**
|
|
1067
|
-
*
|
|
1177
|
+
* 创建水体图元(保留向后兼容)
|
|
1178
|
+
* @deprecated 建议使用 createWaterPrimitiveWithSharedMaterial
|
|
1068
1179
|
*/
|
|
1069
|
-
private
|
|
1180
|
+
private createWaterPrimitive;
|
|
1070
1181
|
/**
|
|
1071
|
-
*
|
|
1182
|
+
* 创建图元集合
|
|
1072
1183
|
*/
|
|
1073
|
-
|
|
1184
|
+
private createPrimitiveCollection;
|
|
1074
1185
|
/**
|
|
1075
|
-
*
|
|
1186
|
+
* 让出主线程的工具方法
|
|
1187
|
+
* 使用 requestIdleCallback 或 setTimeout 作为 fallback
|
|
1076
1188
|
*/
|
|
1077
|
-
|
|
1189
|
+
private yieldToMain;
|
|
1078
1190
|
/**
|
|
1079
|
-
*
|
|
1191
|
+
* 获取加载状态
|
|
1080
1192
|
*/
|
|
1081
|
-
|
|
1193
|
+
getLoadState(): WaterLoadState;
|
|
1082
1194
|
/**
|
|
1083
|
-
*
|
|
1195
|
+
* 取消当前加载
|
|
1084
1196
|
*/
|
|
1085
|
-
|
|
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
|
-
|
|
1217
|
+
getWaterLayers(): WaterLayerItem[];
|
|
1090
1218
|
/**
|
|
1091
|
-
*
|
|
1219
|
+
* 获取指定水图层
|
|
1092
1220
|
*/
|
|
1093
|
-
|
|
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
|
-
*
|
|
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
|
-
|
|
3405
|
+
clearAllSeaLayers(): void;
|
|
3062
3406
|
/**
|
|
3063
|
-
*
|
|
3407
|
+
* 获取脚本基础URL
|
|
3064
3408
|
*/
|
|
3065
|
-
private
|
|
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 };
|