deeptwins-engine-3d 0.1.76 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/Build/DeepTwins/Image/noise.png +0 -0
- package/dist/assets/Build/DeepTwins/Workers/CustomRasterClip.worker.js +1 -2
- package/dist/assets/Build/DeepTwins/Workers/MvtVector.worker.js +1 -1
- package/dist/assets/Build/Map3d/ThirdParty/Workers/zip-web-worker.js +640 -0
- package/dist/assets/Build/Map3d/ThirdParty/wasm_splats_bg.wasm +0 -0
- package/dist/assets/Build/Map3d/ThirdParty/zip-module.wasm +0 -0
- package/dist/assets/Build/Map3d/Workers/chunk-27NG6PQR.js +456 -0
- package/dist/assets/Build/Map3d/Workers/chunk-2JVMMMWT.js +353 -0
- package/dist/assets/Build/Map3d/Workers/chunk-2Y2XYQCS.js +1481 -0
- package/dist/assets/Build/Map3d/Workers/chunk-34RF3V5G.js +220 -0
- package/dist/assets/Build/Map3d/Workers/chunk-35H7BYLJ.js +1800 -0
- package/dist/assets/Build/Map3d/Workers/chunk-57OGEF5V.js +435 -0
- package/dist/assets/Build/Map3d/Workers/chunk-5PX3DYJA.js +196 -0
- package/dist/assets/Build/Map3d/Workers/chunk-7B5XGQRN.js +171 -0
- package/dist/assets/Build/Map3d/Workers/chunk-ATLWOZFF.js +39 -0
- package/dist/assets/Build/Map3d/Workers/chunk-BMSUECTA.js +1055 -0
- package/dist/assets/Build/Map3d/Workers/chunk-C6IA4TKW.js +476 -0
- package/dist/assets/Build/Map3d/Workers/chunk-CZ44I32U.js +157 -0
- package/dist/assets/Build/Map3d/Workers/chunk-DE6UV44R.js +122 -0
- package/dist/assets/Build/Map3d/Workers/chunk-DUCCKVOG.js +834 -0
- package/dist/assets/Build/Map3d/Workers/chunk-EBJBPIYX.js +239 -0
- package/dist/assets/Build/Map3d/Workers/chunk-EYSYQ2R6.js +138 -0
- package/dist/assets/Build/Map3d/Workers/chunk-FMCAAUQI.js +368 -0
- package/dist/assets/Build/Map3d/Workers/chunk-GMYZNRRQ.js +2717 -0
- package/dist/assets/Build/Map3d/Workers/chunk-GWPNZZV4.js +781 -0
- package/dist/assets/Build/Map3d/Workers/chunk-HLP2U4KW.js +758 -0
- package/dist/assets/Build/Map3d/Workers/chunk-HSJSUPQV.js +500 -0
- package/dist/assets/Build/Map3d/Workers/chunk-I73Q3AG7.js +58 -0
- package/dist/assets/Build/Map3d/Workers/chunk-IMZ4YIMV.js +511 -0
- package/dist/assets/Build/Map3d/Workers/chunk-IZSK4DVF.js +421 -0
- package/dist/assets/Build/Map3d/Workers/chunk-JKLMRPKK.js +75 -0
- package/dist/assets/Build/Map3d/Workers/chunk-KGM345JM.js +691 -0
- package/dist/assets/Build/Map3d/Workers/chunk-L4IR5U4G.js +102 -0
- package/dist/assets/Build/Map3d/Workers/chunk-MG4EVQH2.js +44 -0
- package/dist/assets/Build/Map3d/Workers/chunk-NXWEFAZJ.js +300 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PDFAJISJ.js +59 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PHWZFJR5.js +100 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PLE7CHBE.js +101 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PN3GIZ5Q.js +163 -0
- package/dist/assets/Build/Map3d/Workers/chunk-PXL5XLHV.js +1073 -0
- package/dist/assets/Build/Map3d/Workers/chunk-QYXOF5JC.js +959 -0
- package/dist/assets/Build/Map3d/Workers/chunk-R2LIFXV3.js +115 -0
- package/dist/assets/Build/Map3d/Workers/chunk-R4W6IRJZ.js +10357 -0
- package/dist/assets/Build/Map3d/Workers/chunk-R5PZXG56.js +1258 -0
- package/dist/assets/Build/Map3d/Workers/chunk-RZQLZIUI.js +629 -0
- package/dist/assets/Build/Map3d/Workers/chunk-SIBDD6Y4.js +390 -0
- package/dist/assets/Build/Map3d/Workers/chunk-U5NN6JTQ.js +398 -0
- package/dist/assets/Build/Map3d/Workers/chunk-UA5RPPP3.js +73 -0
- package/dist/assets/Build/Map3d/Workers/chunk-UXLKFS3C.js +305 -0
- package/dist/assets/Build/Map3d/Workers/chunk-VUX4BQIM.js +37 -0
- package/dist/assets/Build/Map3d/Workers/chunk-WJDUUUJS.js +684 -0
- package/dist/assets/Build/Map3d/Workers/chunk-XBJOJHWX.js +139 -0
- package/dist/assets/Build/Map3d/Workers/chunk-XJDMTNKD.js +634 -0
- package/dist/assets/Build/Map3d/Workers/chunk-XUCXZZE5.js +963 -0
- package/dist/assets/Build/Map3d/Workers/chunk-YIKGVMJ5.js +287 -0
- package/dist/assets/Build/Map3d/Workers/chunk-YTNCIBPQ.js +262 -0
- package/dist/assets/Build/Map3d/Workers/chunk-ZMDUYETO.js +55 -0
- package/dist/assets/Build/Map3d/Workers/chunk-ZW52HXFN.js +2857 -0
- package/dist/esm/analyze/LineOfSightAnalysis.js +1 -326
- package/dist/esm/analyze/SubmergenceAnalysis.js +1 -137
- package/dist/esm/analyze/SunLightAnalysis.js +1 -91
- package/dist/esm/analyze/TerrainExcavationAnalysis.js +1 -612
- package/dist/esm/analyze/ViewshedAnalysis.js +1 -292
- package/dist/esm/cameraControl/ModelRoamHistory.js +1 -639
- package/dist/esm/cameraControl/ModelRoamRealTime.js +1 -874
- package/dist/esm/cameraControl/Roam.js +1 -418
- package/dist/esm/cameraControl/Rotate.js +1 -134
- package/dist/esm/cameraControl/RotateInPlace.js +1 -99
- package/dist/esm/constant.d.ts +90 -0
- package/dist/esm/constant.js +1 -1287
- package/dist/esm/deepTwins/index.js +1 -121
- package/dist/esm/drawCommand/index.js +1 -3
- package/dist/esm/drawCommand/viewShed/Event.js +1 -142
- package/dist/esm/drawCommand/viewShed/RectangularSensorPrimitive.js +1 -1306
- package/dist/esm/drawCommand/viewShed/ViewShadowPrimitive.js +1 -66
- package/dist/esm/drawCommand/viewShed/ViewShedAnalyserLayer.js +1 -466
- package/dist/esm/drawCommand/viewShed/ViewShedMap.js +1 -1238
- package/dist/esm/drawCommand/viewShed/config.js +1 -21
- package/dist/esm/drawCommand/volumeCloud/GeometryPrimitive.js +1 -89
- package/dist/esm/drawCommand/volumeCloud/ImprovedNoise.js +1 -112
- package/dist/esm/drawCommand/volumeCloud/VolumeClouds.js +1 -91
- package/dist/esm/drawer/algorithm.js +1 -314
- package/dist/esm/drawer/common.js +1 -965
- package/dist/esm/drawer/coordinate.js +1 -184
- package/dist/esm/drawer/index.d.ts +1 -1
- package/dist/esm/drawer/index.js +1 -688
- package/dist/esm/drawer/plotUtil.js +1 -266
- package/dist/esm/drawer/shape/Assemble.js +1 -415
- package/dist/esm/drawer/shape/AttackArrow.js +1 -442
- package/dist/esm/drawer/shape/BaseShape.js +1 -383
- package/dist/esm/drawer/shape/Bow.js +1 -375
- package/dist/esm/drawer/shape/Circle.js +1 -461
- package/dist/esm/drawer/shape/Curve.js +1 -386
- package/dist/esm/drawer/shape/DragPoint.js +1 -211
- package/dist/esm/drawer/shape/Elliptic.js +1 -491
- package/dist/esm/drawer/shape/Formation.js +1 -395
- package/dist/esm/drawer/shape/PincerArrow.js +1 -445
- package/dist/esm/drawer/shape/Point.js +1 -131
- package/dist/esm/drawer/shape/Polygon.js +1 -368
- package/dist/esm/drawer/shape/Polyline.js +1 -325
- package/dist/esm/drawer/shape/RegularPolygon.js +1 -468
- package/dist/esm/drawer/shape/RightAngleArrow.js +1 -423
- package/dist/esm/drawer/shape/Sector.js +1 -568
- package/dist/esm/drawer/shape/StraightArrow.js +1 -422
- package/dist/esm/drawer/shape/SwallowtailArrow.js +1 -438
- package/dist/esm/drawer/types.js +1 -11
- package/dist/esm/drawer/utils.js +1 -381
- package/dist/esm/global.css +22 -1
- package/dist/esm/graphicLayer/BaseEntity.js +1 -51
- package/dist/esm/graphicLayer/BaseLayer.js +1 -730
- package/dist/esm/graphicLayer/BasePointPrimitive.js +1 -45
- package/dist/esm/graphicLayer/BasePrimitive.js +1 -36
- package/dist/esm/graphicLayer/BasePrimitiveInstance.js +1 -37
- package/dist/esm/graphicLayer/BaseSource.d.ts +1 -1
- package/dist/esm/graphicLayer/BaseSource.js +1 -630
- package/dist/esm/graphicLayer/BillboardEntity.js +1 -106
- package/dist/esm/graphicLayer/BillboardPrimitive.js +1 -119
- package/dist/esm/graphicLayer/BoxEntity.js +1 -99
- package/dist/esm/graphicLayer/BoxPrimitive.js +1 -48
- package/dist/esm/graphicLayer/BoxPrimitiveInstance.js +1 -91
- package/dist/esm/graphicLayer/EllipseEntity.js +1 -110
- package/dist/esm/graphicLayer/EllipsePrimitive.js +1 -47
- package/dist/esm/graphicLayer/EllipsePrimitiveInstance.js +1 -98
- package/dist/esm/graphicLayer/EllipsoidEntity.js +1 -118
- package/dist/esm/graphicLayer/EllipsoidPrimitive.js +1 -48
- package/dist/esm/graphicLayer/EllipsoidPrimitiveInstance.js +1 -113
- package/dist/esm/graphicLayer/GraphicLayerCollection.js +1 -491
- package/dist/esm/graphicLayer/HtmlEntity.d.ts +4 -0
- package/dist/esm/graphicLayer/HtmlEntity.js +1 -189
- package/dist/esm/graphicLayer/LabelEntity.js +1 -110
- package/dist/esm/graphicLayer/LabelPrimitive.js +1 -127
- package/dist/esm/graphicLayer/ModelEntity.js +1 -122
- package/dist/esm/graphicLayer/ModelPrimitive.js +1 -59
- package/dist/esm/graphicLayer/ModelPrimitiveInstance.js +1 -86
- package/dist/esm/graphicLayer/PointEntity.js +1 -94
- package/dist/esm/graphicLayer/PointPrimitive.js +1 -107
- package/dist/esm/graphicLayer/PolygonEntity.js +1 -103
- package/dist/esm/graphicLayer/PolygonGroundPrimitive.js +1 -49
- package/dist/esm/graphicLayer/PolygonGroundPrimitiveImageMaterialInstance.js +1 -87
- package/dist/esm/graphicLayer/PolygonPrimitive.js +1 -60
- package/dist/esm/graphicLayer/PolygonPrimitiveImageMaterialInstance.js +1 -84
- package/dist/esm/graphicLayer/PolygonPrimitiveInstance.js +1 -101
- package/dist/esm/graphicLayer/PolylineEntity.js +1 -96
- package/dist/esm/graphicLayer/PolylineGroundPrimitive.js +1 -55
- package/dist/esm/graphicLayer/PolylineGroundPrimitiveInstance.js +1 -85
- package/dist/esm/graphicLayer/PolylinePrimitive.js +1 -53
- package/dist/esm/graphicLayer/PolylinePrimitiveInstance.js +1 -85
- package/dist/esm/graphicLayer/PolylineVolumeEntity.js +1 -105
- package/dist/esm/graphicLayer/PolylineVolumePrimitive.js +1 -47
- package/dist/esm/graphicLayer/PolylineVolumePrimitiveInstance.js +1 -94
- package/dist/esm/graphicLayer/WallEntity.js +1 -96
- package/dist/esm/graphicLayer/WallPrimitive.js +1 -47
- package/dist/esm/graphicLayer/WallPrimitiveInstance.js +1 -88
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +1 -175
- package/dist/esm/lowAltitude/BarrierLayer.js +1 -172
- package/dist/esm/lowAltitude/BaseGridMvtLayer.js +1 -122
- package/dist/esm/lowAltitude/FactorLayer.js +1 -199
- package/dist/esm/lowAltitude/FlightPlanning.js +1 -411
- package/dist/esm/lowAltitude/FlightRiskEvaluation.js +1 -543
- package/dist/esm/lowAltitude/GridDraw.js +1 -137
- package/dist/esm/lowAltitude/PoiLayer.js +1 -74
- package/dist/esm/lowAltitude/RoutePlanning.js +1 -318
- package/dist/esm/lowAltitude/VisitLayer.js +1 -180
- package/dist/esm/map/Event.js +1 -377
- package/dist/esm/map/GroundSkyBox.js +1 -166
- package/dist/esm/map/Map.js +1 -881
- package/dist/esm/map/Property.js +1 -35
- package/dist/esm/material/AtmosphericDispersion.js +1 -569
- package/dist/esm/material/GlobalVolumetricCloud.js +1 -377
- package/dist/esm/material/VolumeCloud.js +1 -115
- package/dist/esm/material/WeatherEffects.js +1 -351
- package/dist/esm/material/entity/BaseMaterialProperty.js +1 -51
- package/dist/esm/material/entity/CircleWaveMaterialProperty.js +1 -101
- package/dist/esm/material/entity/DynamicWallMaterialProperty.js +1 -101
- package/dist/esm/material/entity/ImageGlowingMaterialProperty.js +1 -89
- package/dist/esm/material/entity/ImageMaterialProperty.js +1 -34
- package/dist/esm/material/entity/PolylineTrailLinkMaterialProperty.js +1 -132
- package/dist/esm/material/primitive/BaseMaterialAppearance.js +1 -28
- package/dist/esm/material/primitive/ImageGlowingMaterialAppearance.js +1 -77
- package/dist/esm/material/primitive/ImageMaterialAppearance.js +1 -77
- package/dist/esm/measure/Area.js +1 -220
- package/dist/esm/measure/BaseDraw.js +1 -105
- package/dist/esm/measure/Distance.js +1 -223
- package/dist/esm/measure/index.js +1 -266
- package/dist/esm/measure/types.js +1 -17
- package/dist/esm/measure/utils.js +1 -319
- package/dist/esm/particle/BaseParticle.js +1 -196
- package/dist/esm/particle/FireParticle.js +1 -65
- package/dist/esm/particle/FountainParticle.js +1 -80
- package/dist/esm/particle/SmokeParticle.js +1 -65
- package/dist/esm/particle/common.js +1 -23
- package/dist/esm/particle/index.js +1 -5
- package/dist/esm/property/PositionProperty.js +1 -56
- package/dist/esm/tileLayer/ArcGisLayer.js +1 -41
- package/dist/esm/tileLayer/CustomRasterClipWorkerClient.js +1 -147
- package/dist/esm/tileLayer/CustomRasterLayer.js +1 -1136
- package/dist/esm/tileLayer/ImageryLayer.js +1 -44
- package/dist/esm/tileLayer/MvtVectorLoad.js +1 -1549
- package/dist/esm/tileLayer/MvtVectorWorkerClient.js +1 -126
- package/dist/esm/tileLayer/RasterLayer.js +1 -23
- package/dist/esm/tileLayer/WmsLayer.js +1 -26
- package/dist/esm/tileLayer/WmtsLayer.js +1 -23
- package/dist/esm/tool/BuildClampedPolygonGrid.js +1 -278
- package/dist/esm/tool/Compass.js +1 -282
- package/dist/esm/tool/PrimitiveCluster.js +1 -706
- package/dist/esm/tool/TimerInterval.js +1 -58
- package/dist/esm/tool/common.js +1 -405
- package/dist/esm/tool/fetch.js +1 -222
- package/dist/esm/tool/heatmap.js +1 -631
- package/dist/esm/tool/utils.d.ts +1 -0
- package/dist/esm/tool/utils.js +1 -501
- package/dist/esm/toolTip/index.js +1 -79
- package/dist/esm/videoFusion/BaseVideo.d.ts +7 -0
- package/dist/esm/videoFusion/BaseVideo.js +1 -330
- package/dist/esm/videoFusion/VideoProject.js +1 -230
- package/dist/esm/videoFusion/VideoTexture.js +1 -163
- package/dist/esm/visualization/BaseHeatmap.js +1 -271
- package/dist/esm/visualization/BoundaryHighlight.d.ts +136 -0
- package/dist/esm/visualization/BoundaryHighlight.js +1 -0
- package/dist/esm/visualization/DynamicWater.js +1 -289
- package/dist/esm/visualization/Frustum.js +1 -248
- package/dist/esm/visualization/Heatmap2d.js +1 -97
- package/dist/esm/visualization/Heatmap3d.js +1 -281
- package/dist/esm/visualization/MigrationEffect.js +1 -397
- package/dist/esm/visualization/PointCluster.js +1 -220
- package/dist/esm/visualization/RadarScan.js +1 -333
- package/dist/esm/visualization/SampledTerrainRiver.d.ts +180 -0
- package/dist/esm/visualization/SampledTerrainRiver.js +1 -0
- package/dist/esm/visualization/SampledTerrainWater.d.ts +170 -0
- package/dist/esm/visualization/SampledTerrainWater.js +1 -0
- package/dist/esm/visualization/WindField.d.ts +72 -0
- package/dist/esm/visualization/WindField.js +1 -0
- package/dist/esm/visualization/windCore.d.ts +161 -0
- package/dist/esm/visualization/windCore.js +8 -0
- package/dist/umd/deeptwins-engine-3d.min.css +1 -1
- package/dist/umd/deeptwins-engine-3d.min.js +1 -1
- package/package.json +6 -4
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/// <reference path="../typings.d.ts" />
|
|
2
|
+
import * as Cesium from 'deeptwins-cesium';
|
|
3
|
+
import { MapContext } from '../map/Map';
|
|
4
|
+
export type WaterTextureSource = string | HTMLCanvasElement | HTMLImageElement | HTMLVideoElement | ImageBitmap | ImageData | {
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
arrayBufferView: ArrayBufferView;
|
|
8
|
+
};
|
|
9
|
+
export type SampledTerrainRiverBounds = [number, number, number, number];
|
|
10
|
+
export type SampledTerrainRiverCoordinate = [number, number];
|
|
11
|
+
export interface SampledTerrainRiverPolygon {
|
|
12
|
+
rings: SampledTerrainRiverCoordinate[][];
|
|
13
|
+
}
|
|
14
|
+
export type ResolvedTextureSource = Exclude<WaterTextureSource, string>;
|
|
15
|
+
interface TerrainHeightMapCache {
|
|
16
|
+
heights: Float32Array;
|
|
17
|
+
minHeight: number;
|
|
18
|
+
maxHeight: number;
|
|
19
|
+
textureSize: number;
|
|
20
|
+
}
|
|
21
|
+
export interface ResolvedHeightMapData {
|
|
22
|
+
heightMap: WaterTextureSource;
|
|
23
|
+
minElevation: number;
|
|
24
|
+
maxElevation: number;
|
|
25
|
+
}
|
|
26
|
+
interface SampledTerrainRiverOptions {
|
|
27
|
+
directionGeoJson?: any;
|
|
28
|
+
surfaceGeoJson?: any;
|
|
29
|
+
heightMap?: WaterTextureSource;
|
|
30
|
+
canvas?: WaterTextureSource;
|
|
31
|
+
noise?: WaterTextureSource;
|
|
32
|
+
minElevation?: number;
|
|
33
|
+
maxElevation?: number;
|
|
34
|
+
granularity?: number;
|
|
35
|
+
terrainSample?: boolean;
|
|
36
|
+
textureSize?: number;
|
|
37
|
+
heightOffset?: number;
|
|
38
|
+
waterBodyMode?: boolean;
|
|
39
|
+
minWaterHeight?: number;
|
|
40
|
+
maxWaterHeight?: number;
|
|
41
|
+
waterHeight?: number;
|
|
42
|
+
style?: any;
|
|
43
|
+
}
|
|
44
|
+
interface SampledTerrainRiverData {
|
|
45
|
+
directionGeoJson?: any;
|
|
46
|
+
surfaceGeoJson?: any;
|
|
47
|
+
heightMap?: WaterTextureSource;
|
|
48
|
+
canvas?: WaterTextureSource;
|
|
49
|
+
noise?: WaterTextureSource;
|
|
50
|
+
minElevation?: number;
|
|
51
|
+
maxElevation?: number;
|
|
52
|
+
granularity?: number;
|
|
53
|
+
terrainSample?: boolean;
|
|
54
|
+
textureSize?: number;
|
|
55
|
+
heightOffset?: number;
|
|
56
|
+
waterBodyMode?: boolean;
|
|
57
|
+
minWaterHeight?: number;
|
|
58
|
+
maxWaterHeight?: number;
|
|
59
|
+
waterHeight?: number;
|
|
60
|
+
}
|
|
61
|
+
interface SampledTerrainRiverPrimitiveOptions {
|
|
62
|
+
polygons: SampledTerrainRiverPolygon[];
|
|
63
|
+
bounds: SampledTerrainRiverBounds;
|
|
64
|
+
heightMap: WaterTextureSource;
|
|
65
|
+
noise: WaterTextureSource;
|
|
66
|
+
minElevation: number;
|
|
67
|
+
maxElevation: number;
|
|
68
|
+
granularity: number;
|
|
69
|
+
waterBodyMode: boolean;
|
|
70
|
+
waterHeight: number;
|
|
71
|
+
flowDirection: Cesium.Cartesian2;
|
|
72
|
+
style: any;
|
|
73
|
+
}
|
|
74
|
+
export declare const DEFAULT_NOISE_SIZE = 512;
|
|
75
|
+
export declare const DEFAULT_NOISE_TEXTURE_FILE = "Image/noise.png";
|
|
76
|
+
export declare const DEFAULT_TERRAIN_TEXTURE_SIZE = 128;
|
|
77
|
+
export declare const MIN_TERRAIN_TEXTURE_SIZE = 64;
|
|
78
|
+
export declare const MAX_TERRAIN_TEXTURE_SIZE = 512;
|
|
79
|
+
export declare const CesiumRuntime: any;
|
|
80
|
+
export default class SampledTerrainRiver {
|
|
81
|
+
_mapContext: MapContext | undefined;
|
|
82
|
+
id: string;
|
|
83
|
+
directionGeoJson: any;
|
|
84
|
+
surfaceGeoJson: any;
|
|
85
|
+
heightMap: WaterTextureSource | undefined;
|
|
86
|
+
noise: WaterTextureSource;
|
|
87
|
+
minElevation: number;
|
|
88
|
+
maxElevation: number;
|
|
89
|
+
granularity: number;
|
|
90
|
+
terrainSample: boolean;
|
|
91
|
+
textureSize: number;
|
|
92
|
+
heightOffset: number;
|
|
93
|
+
waterBodyMode: boolean;
|
|
94
|
+
minWaterHeight: number;
|
|
95
|
+
maxWaterHeight: number;
|
|
96
|
+
waterHeight: number;
|
|
97
|
+
style: any;
|
|
98
|
+
primitive: SampledTerrainRiverPrimitive | null;
|
|
99
|
+
isDestroyed: boolean;
|
|
100
|
+
private _polygons;
|
|
101
|
+
private _bounds;
|
|
102
|
+
private _flowPath;
|
|
103
|
+
private _flowDirection;
|
|
104
|
+
private _isAdded;
|
|
105
|
+
private _buildVersion;
|
|
106
|
+
private _hasExplicitMinElevation;
|
|
107
|
+
private _hasExplicitMaxElevation;
|
|
108
|
+
constructor(options?: SampledTerrainRiverOptions);
|
|
109
|
+
getMap(): any;
|
|
110
|
+
addToMap(map: any): this | undefined;
|
|
111
|
+
remove(): this;
|
|
112
|
+
show(isShow: boolean): this | undefined;
|
|
113
|
+
setData(data?: SampledTerrainRiverData): this | undefined;
|
|
114
|
+
setStyle(style?: any): this | undefined;
|
|
115
|
+
flyTo(options?: any): this | undefined;
|
|
116
|
+
destroy(): void;
|
|
117
|
+
private _canOperate;
|
|
118
|
+
private _rebuildPrimitive;
|
|
119
|
+
private _resolveHeightMap;
|
|
120
|
+
private _hasValidData;
|
|
121
|
+
private _hasValidElevationRange;
|
|
122
|
+
}
|
|
123
|
+
declare class SampledTerrainRiverPrimitive {
|
|
124
|
+
show: boolean;
|
|
125
|
+
style: any;
|
|
126
|
+
private _polygons;
|
|
127
|
+
private _bounds;
|
|
128
|
+
private _heightMapSource;
|
|
129
|
+
private _noiseSource;
|
|
130
|
+
private _heightMap;
|
|
131
|
+
private _noise;
|
|
132
|
+
private _minElevation;
|
|
133
|
+
private _maxElevation;
|
|
134
|
+
private _granularity;
|
|
135
|
+
private _waterBodyMode;
|
|
136
|
+
waterHeight: number;
|
|
137
|
+
flowDirection: Cesium.Cartesian2;
|
|
138
|
+
private _showLines;
|
|
139
|
+
private _drawCommands;
|
|
140
|
+
private _vertexArrays;
|
|
141
|
+
private _shaderProgram;
|
|
142
|
+
private _renderState;
|
|
143
|
+
private _heightMapTexture;
|
|
144
|
+
private _noiseTexture;
|
|
145
|
+
private _textureLoadPromise;
|
|
146
|
+
private _time;
|
|
147
|
+
constructor(options: SampledTerrainRiverPrimitiveOptions);
|
|
148
|
+
set showLines(value: boolean);
|
|
149
|
+
get showLines(): boolean;
|
|
150
|
+
update(frameState: any): void;
|
|
151
|
+
isDestroyed(): boolean;
|
|
152
|
+
destroy(): void;
|
|
153
|
+
syncRenderState(): void;
|
|
154
|
+
private _createCommand;
|
|
155
|
+
private _createRenderState;
|
|
156
|
+
private _createUniformMap;
|
|
157
|
+
private _loadTextureSources;
|
|
158
|
+
private _destroyCommand;
|
|
159
|
+
}
|
|
160
|
+
export declare function createTexture(context: any, source: ResolvedTextureSource, textureWrap?: any): any;
|
|
161
|
+
export declare function getTextureSize(source: ResolvedTextureSource): {
|
|
162
|
+
width: any;
|
|
163
|
+
height: any;
|
|
164
|
+
};
|
|
165
|
+
export declare function resolveTextureSource(source: WaterTextureSource): Promise<ResolvedTextureSource>;
|
|
166
|
+
export declare function loadImage(url: string): Promise<HTMLImageElement>;
|
|
167
|
+
export declare function getTerrainHeightMap(map: any, bounds: SampledTerrainRiverBounds, textureSize: number): Promise<TerrainHeightMapCache>;
|
|
168
|
+
export declare function encodeTerrainHeightMap(terrainHeightMap: TerrainHeightMapCache, minElevation: number, maxElevation: number, heightOffset: number): ImageData;
|
|
169
|
+
export declare function getTerrainHeightMapCacheKey(bounds: SampledTerrainRiverBounds, textureSize: number): string;
|
|
170
|
+
export declare function normalizeTerrainTextureSize(textureSize: number): number;
|
|
171
|
+
export declare function toFiniteNumber(value: any, defaultValue: number): number;
|
|
172
|
+
export declare function expandBounds(bounds: SampledTerrainRiverBounds, scale: number): SampledTerrainRiverBounds;
|
|
173
|
+
export declare function getPolygonsBounds(polygons: SampledTerrainRiverPolygon[]): SampledTerrainRiverBounds | undefined;
|
|
174
|
+
export declare function collectGeoJsonLineCoordinates(geoJson: any): SampledTerrainRiverCoordinate[];
|
|
175
|
+
export declare function collectGeoJsonPolygons(geoJson: any): SampledTerrainRiverPolygon[];
|
|
176
|
+
export declare function createPolygonGeometry(polygon: SampledTerrainRiverPolygon, bounds: SampledTerrainRiverBounds, minElevation: number, granularity: number): Cesium.Geometry | null | undefined;
|
|
177
|
+
export declare function normalizeShaderColor(color: any): Cesium.Cartesian3;
|
|
178
|
+
export declare function formatError(error: unknown): string;
|
|
179
|
+
export declare const SAMPLED_TERRAIN_RIVER_COMMON_SHADER = "\n uniform sampler2D heightMap;\n uniform float heightScale;\n uniform float maxElevation;\n uniform float minElevation;\n uniform sampler2D iChannel0;\n uniform float iTime;\n uniform bool water_body_mode;\n uniform bool has_water_height;\n uniform float water_height;\n\n uniform float large_waveheight;\n uniform float large_wavesize;\n uniform float small_waveheight;\n uniform float small_wavesize;\n uniform float water_softlight_fact;\n uniform float water_glossylight_fact;\n uniform float particle_amount;\n uniform float WATER_LEVEL;\n uniform vec2 flow_direction;\n uniform float flow_speed;\n uniform float flow_strength;\n uniform float flow_wave_scale;\n uniform float flow_wave_strength;\n uniform float foam_amount;\n uniform float foam_contrast;\n uniform float foam_coverage;\n uniform float alpha;\n uniform vec3 water_color;\n uniform vec3 deep_water_color;\n uniform vec3 water_specular_color;\n vec3 light;\n\n float hash(float n) {\n return fract(sin(n) * 43758.5453123);\n }\n\n float noise1(in vec2 x) {\n vec2 p = floor(x);\n vec2 f = smoothstep(0.0, 1.0, fract(x));\n float n = p.x + p.y * 57.0;\n return mix(mix(hash(n + 0.0), hash(n + 1.0), f.x), mix(hash(n + 57.0), hash(n + 58.0), f.x), f.y);\n }\n\n float noise(vec2 p) {\n return textureLod(iChannel0, p * vec2(1.0 / 256.0), 0.0).x;\n }\n\n float height_map(vec2 p) {\n float f = texture(heightMap, p).r;\n return clamp(f, 0.0, 10.0);\n }\n\n float normalized_water_height() {\n if (has_water_height) {\n return clamp((water_height - minElevation) / max(maxElevation - minElevation, 0.001), 0.0, 10.0);\n }\n return WATER_LEVEL;\n }\n\n const mat2 m = mat2(0.72, -1.60, 1.60, 0.72);\n const float FLOW_ANIMATION_SPEED_SCALE = 1.2;\n\n vec2 flow_dir() {\n float len = length(flow_direction);\n if (len < 0.0001) {\n return vec2(1.0, 0.0);\n }\n return flow_direction / len;\n }\n\n vec2 flow_space(vec2 p) {\n vec2 dir = flow_dir();\n vec2 side = vec2(-dir.y, dir.x);\n return vec2(dot(p, dir), dot(p, side));\n }\n\n float flow_offset(float speed_multiplier) {\n return iTime * max(flow_speed, 0.0) * max(flow_strength, 0.0) * FLOW_ANIMATION_SPEED_SCALE * speed_multiplier;\n }\n\n vec2 flow_uv(vec2 p, float scale, float speed_multiplier) {\n vec2 uv = flow_space(p);\n float safeScale = max(scale, 0.001);\n return vec2(uv.x * safeScale - flow_offset(speed_multiplier), uv.y * safeScale);\n }\n\n float water_map(vec2 p, float height) {\n vec2 p2 = flow_uv(p, large_wavesize * flow_wave_scale, 0.22);\n\n float f = 0.6000 * noise(p2);\n f += 0.2500 * noise(p2 * m);\n f += 0.1666 * noise(p2 * m * m);\n float wave = sin(p2.x * 1.244) * large_waveheight * flow_wave_strength * f * height * height;\n\n p = flow_uv(p, small_wavesize * flow_wave_scale, 0.24);\n f = 0.0;\n float amp = 1.0;\n for (int i = 0; i < 9; i++) {\n p = m * p * 0.947;\n f -= amp * abs(sin((noise(p) - 0.5) * 2.0));\n amp = amp * 0.59;\n }\n\n return wave + f * small_waveheight;\n }\n\n float nautic(vec2 p) {\n p = flow_uv(p, 18.0, 0.26);\n float f = 0.0;\n float amp = 1.0;\n for (int i = 0; i < 3; i++) {\n p = m * p * 1.2;\n f += amp * abs(smoothstep(0.0, 1.0, noise(p)) - 0.5);\n amp = amp * 0.5;\n }\n return pow(1.0 - f, 5.0);\n }\n\n float particles(vec2 p) {\n p = flow_uv(p, 200.0, 0.28);\n float f = 0.0;\n float amp = 1.0;\n for (int i = 0; i < 3; i++) {\n p = m * p * 1.2;\n f += amp * noise(p);\n amp = amp * 0.5;\n }\n float foam = max(0.0, (f - foam_coverage) / max(foam_coverage, 0.001));\n return pow(foam * 0.35, max(foam_contrast, 0.001) * 5.0) * particle_amount * foam_amount;\n }\n\n float test_shadow(vec2 xy, float height) {\n vec3 r0 = vec3(xy, height);\n vec3 rd = normalize(light - r0);\n\n float hit = 1.0;\n float t = 0.001;\n for (int j = 1; j < 25; j++) {\n vec3 p = r0 + t * rd;\n float h = height_map(p.xy);\n float height_diff = p.z - h;\n if (height_diff < 0.0) {\n return 0.0;\n }\n t += 0.01 + height_diff * 0.02;\n hit = min(hit, 2.0 * height_diff / t);\n }\n return hit;\n }\n";
|
|
180
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _0x4a8294=_0x5a21;(function(_0x73d1d4,_0x2daee9){var _0x1141c9=_0x5a21,_0x47d12e=_0x73d1d4();while(!![]){try{var _0x10a9af=-parseInt(_0x1141c9(0xf5))/0x1+parseInt(_0x1141c9(0xba))/0x2*(parseInt(_0x1141c9(0x130))/0x3)+-parseInt(_0x1141c9(0x11d))/0x4*(-parseInt(_0x1141c9(0xcb))/0x5)+-parseInt(_0x1141c9(0x144))/0x6+-parseInt(_0x1141c9(0x12b))/0x7*(-parseInt(_0x1141c9(0xc4))/0x8)+-parseInt(_0x1141c9(0x131))/0x9*(-parseInt(_0x1141c9(0xf3))/0xa)+-parseInt(_0x1141c9(0x17b))/0xb*(parseInt(_0x1141c9(0xf1))/0xc);if(_0x10a9af===_0x2daee9)break;else _0x47d12e['push'](_0x47d12e['shift']());}catch(_0x3c29bf){_0x47d12e['push'](_0x47d12e['shift']());}}}(_0x99d6,0x75c7a));var _excluded=['scale'];function _typeof(_0x48ad26){'@babel/helpers - typeof';var _0x20b364=_0x5a21;return _typeof='function'==typeof Symbol&&'symbol'==typeof Symbol[_0x20b364(0x11a)]?function(_0x38e07b){return typeof _0x38e07b;}:function(_0x37919c){var _0x55e863=_0x20b364;return _0x37919c&&'function'==typeof Symbol&&_0x37919c[_0x55e863(0xf2)]===Symbol&&_0x37919c!==Symbol['prototype']?_0x55e863(0xd0):typeof _0x37919c;},_typeof(_0x48ad26);}function _regeneratorRuntime(){'use strict';var _0x1dad23=_0x5a21;_regeneratorRuntime=function _0x406c0a(){return _0x3414db;};var _0x325726,_0x3414db={},_0x1d8298=Object['prototype'],_0x32aca8=_0x1d8298['hasOwnProperty'],_0x1fb214=Object['defineProperty']||function(_0x514e14,_0x24fbe4,_0xa2e37f){var _0x290135=_0x5a21;_0x514e14[_0x24fbe4]=_0xa2e37f[_0x290135(0x120)];},_0x1cd24b=_0x1dad23(0x17e)==typeof Symbol?Symbol:{},_0x589fc5=_0x1cd24b['iterator']||_0x1dad23(0x117),_0x4746fd=_0x1cd24b['asyncIterator']||'@@asyncIterator',_0x3ab9b2=_0x1cd24b['toStringTag']||'@@toStringTag';function _0x4968bd(_0x4a0060,_0x23fd95,_0x1976bf){return Object['defineProperty'](_0x4a0060,_0x23fd95,{'value':_0x1976bf,'enumerable':!0x0,'configurable':!0x0,'writable':!0x0}),_0x4a0060[_0x23fd95];}try{_0x4968bd({},'');}catch(_0x5ba332){_0x4968bd=function _0x30e164(_0x2aa09e,_0x35b38f,_0x2bf6c3){return _0x2aa09e[_0x35b38f]=_0x2bf6c3;};}function _0x81f114(_0x1a5ffc,_0x256af6,_0x2b8519,_0x2c1b01){var _0x18a00a=_0x1dad23,_0x43b621=_0x256af6&&_0x256af6['prototype']instanceof _0x365200?_0x256af6:_0x365200,_0x1f2c56=Object['create'](_0x43b621[_0x18a00a(0xd3)]),_0x18be10=new _0xd7ed62(_0x2c1b01||[]);return _0x1fb214(_0x1f2c56,_0x18a00a(0x193),{'value':_0x1ea407(_0x1a5ffc,_0x2b8519,_0x18be10)}),_0x1f2c56;}function _0x4a32f1(_0xf8c050,_0xe0281d,_0x445bdd){var _0x45f331=_0x1dad23;try{return{'type':_0x45f331(0x173),'arg':_0xf8c050['call'](_0xe0281d,_0x445bdd)};}catch(_0x3ccd68){return{'type':'throw','arg':_0x3ccd68};}}_0x3414db['wrap']=_0x81f114;var _0x317619=_0x1dad23(0x161),_0x588846='suspendedYield',_0x207bb7='executing',_0x306b42='completed',_0x11c7e5={};function _0x365200(){}function _0x3774b7(){}function _0xb3a49(){}var _0x23c78e={};_0x4968bd(_0x23c78e,_0x589fc5,function(){return this;});var _0x1ba23a=Object['getPrototypeOf'],_0x53d305=_0x1ba23a&&_0x1ba23a(_0x1ba23a(_0x24f59d([])));_0x53d305&&_0x53d305!==_0x1d8298&&_0x32aca8[_0x1dad23(0x125)](_0x53d305,_0x589fc5)&&(_0x23c78e=_0x53d305);var _0x306fb5=_0xb3a49[_0x1dad23(0xd3)]=_0x365200[_0x1dad23(0xd3)]=Object[_0x1dad23(0x108)](_0x23c78e);function _0xde4da3(_0x5c8cc7){var _0x54ac15=_0x1dad23;['next','throw','return'][_0x54ac15(0x12d)](function(_0x2ac08a){_0x4968bd(_0x5c8cc7,_0x2ac08a,function(_0x2c7805){return this['_invoke'](_0x2ac08a,_0x2c7805);});});}function _0x566e82(_0x6fe394,_0x57001d){function _0x39c2fb(_0x3c2801,_0x3ba4b5,_0x3c0b0d,_0x1d247d){var _0x37da44=_0x5a21,_0xdf987c=_0x4a32f1(_0x6fe394[_0x3c2801],_0x6fe394,_0x3ba4b5);if(_0x37da44(0x149)!==_0xdf987c['type']){var _0x2e228d=_0xdf987c[_0x37da44(0xe0)],_0x2297c5=_0x2e228d['value'];return _0x2297c5&&'object'==_typeof(_0x2297c5)&&_0x32aca8['call'](_0x2297c5,'__await')?_0x57001d[_0x37da44(0x197)](_0x2297c5[_0x37da44(0x157)])[_0x37da44(0x15c)](function(_0x3d9747){var _0xfc2ada=_0x37da44;_0x39c2fb(_0xfc2ada(0xbf),_0x3d9747,_0x3c0b0d,_0x1d247d);},function(_0x178822){var _0x7a61f5=_0x37da44;_0x39c2fb(_0x7a61f5(0x149),_0x178822,_0x3c0b0d,_0x1d247d);}):_0x57001d['resolve'](_0x2297c5)[_0x37da44(0x15c)](function(_0x455395){var _0x56eed5=_0x37da44;_0x2e228d[_0x56eed5(0x120)]=_0x455395,_0x3c0b0d(_0x2e228d);},function(_0x34416c){return _0x39c2fb('throw',_0x34416c,_0x3c0b0d,_0x1d247d);});}_0x1d247d(_0xdf987c['arg']);}var _0x26f6d3;_0x1fb214(this,'_invoke',{'value':function _0x25965d(_0x32e010,_0x393df8){var _0x176e24=_0x5a21;function _0x591c3e(){return new _0x57001d(function(_0x9117b7,_0x1fd7eb){_0x39c2fb(_0x32e010,_0x393df8,_0x9117b7,_0x1fd7eb);});}return _0x26f6d3=_0x26f6d3?_0x26f6d3[_0x176e24(0x15c)](_0x591c3e,_0x591c3e):_0x591c3e();}});}function _0x1ea407(_0x135bad,_0x346629,_0xb4e9ab){var _0x17b991=_0x317619;return function(_0x4809c1,_0x54f8c1){var _0x363b62=_0x5a21;if(_0x17b991===_0x207bb7)throw new Error(_0x363b62(0xc5));if(_0x17b991===_0x306b42){if(_0x363b62(0x149)===_0x4809c1)throw _0x54f8c1;return{'value':_0x325726,'done':!0x0};}for(_0xb4e9ab[_0x363b62(0x137)]=_0x4809c1,_0xb4e9ab[_0x363b62(0xe0)]=_0x54f8c1;;){var _0xc42179=_0xb4e9ab[_0x363b62(0x126)];if(_0xc42179){var _0x572dfe=_0x48a52b(_0xc42179,_0xb4e9ab);if(_0x572dfe){if(_0x572dfe===_0x11c7e5)continue;return _0x572dfe;}}if(_0x363b62(0xbf)===_0xb4e9ab[_0x363b62(0x137)])_0xb4e9ab['sent']=_0xb4e9ab['_sent']=_0xb4e9ab[_0x363b62(0xe0)];else{if(_0x363b62(0x149)===_0xb4e9ab[_0x363b62(0x137)]){if(_0x17b991===_0x317619)throw _0x17b991=_0x306b42,_0xb4e9ab[_0x363b62(0xe0)];_0xb4e9ab[_0x363b62(0x13f)](_0xb4e9ab['arg']);}else'return'===_0xb4e9ab[_0x363b62(0x137)]&&_0xb4e9ab['abrupt']('return',_0xb4e9ab['arg']);}_0x17b991=_0x207bb7;var _0x39fde1=_0x4a32f1(_0x135bad,_0x346629,_0xb4e9ab);if(_0x363b62(0x173)===_0x39fde1[_0x363b62(0x19a)]){if(_0x17b991=_0xb4e9ab[_0x363b62(0x153)]?_0x306b42:_0x588846,_0x39fde1[_0x363b62(0xe0)]===_0x11c7e5)continue;return{'value':_0x39fde1['arg'],'done':_0xb4e9ab[_0x363b62(0x153)]};}_0x363b62(0x149)===_0x39fde1['type']&&(_0x17b991=_0x306b42,_0xb4e9ab['method']='throw',_0xb4e9ab['arg']=_0x39fde1[_0x363b62(0xe0)]);}};}function _0x48a52b(_0x4baf80,_0x1f9c14){var _0x1bada7=_0x1dad23,_0xdcb89f=_0x1f9c14[_0x1bada7(0x137)],_0x35fccb=_0x4baf80[_0x1bada7(0x11a)][_0xdcb89f];if(_0x35fccb===_0x325726)return _0x1f9c14[_0x1bada7(0x126)]=null,_0x1bada7(0x149)===_0xdcb89f&&_0x4baf80['iterator']['return']&&(_0x1f9c14['method']='return',_0x1f9c14[_0x1bada7(0xe0)]=_0x325726,_0x48a52b(_0x4baf80,_0x1f9c14),'throw'===_0x1f9c14[_0x1bada7(0x137)])||'return'!==_0xdcb89f&&(_0x1f9c14[_0x1bada7(0x137)]='throw',_0x1f9c14[_0x1bada7(0xe0)]=new TypeError(_0x1bada7(0xf9)+_0xdcb89f+_0x1bada7(0x128))),_0x11c7e5;var _0x2fe82f=_0x4a32f1(_0x35fccb,_0x4baf80[_0x1bada7(0x11a)],_0x1f9c14[_0x1bada7(0xe0)]);if('throw'===_0x2fe82f['type'])return _0x1f9c14['method']=_0x1bada7(0x149),_0x1f9c14['arg']=_0x2fe82f[_0x1bada7(0xe0)],_0x1f9c14[_0x1bada7(0x126)]=null,_0x11c7e5;var _0x3a8662=_0x2fe82f[_0x1bada7(0xe0)];return _0x3a8662?_0x3a8662[_0x1bada7(0x153)]?(_0x1f9c14[_0x4baf80[_0x1bada7(0x16f)]]=_0x3a8662[_0x1bada7(0x120)],_0x1f9c14['next']=_0x4baf80['nextLoc'],_0x1bada7(0x14e)!==_0x1f9c14[_0x1bada7(0x137)]&&(_0x1f9c14['method']=_0x1bada7(0xbf),_0x1f9c14[_0x1bada7(0xe0)]=_0x325726),_0x1f9c14[_0x1bada7(0x126)]=null,_0x11c7e5):_0x3a8662:(_0x1f9c14['method']='throw',_0x1f9c14[_0x1bada7(0xe0)]=new TypeError(_0x1bada7(0x119)),_0x1f9c14[_0x1bada7(0x126)]=null,_0x11c7e5);}function _0x2631ee(_0x171693){var _0x14497f=_0x1dad23,_0x26e003={'tryLoc':_0x171693[0x0]};0x1 in _0x171693&&(_0x26e003['catchLoc']=_0x171693[0x1]),0x2 in _0x171693&&(_0x26e003[_0x14497f(0xfe)]=_0x171693[0x2],_0x26e003['afterLoc']=_0x171693[0x3]),this['tryEntries'][_0x14497f(0x18c)](_0x26e003);}function _0x3087f2(_0x3c6ac0){var _0x1f95d9=_0x1dad23,_0x84c671=_0x3c6ac0[_0x1f95d9(0x12e)]||{};_0x84c671[_0x1f95d9(0x19a)]='normal',delete _0x84c671[_0x1f95d9(0xe0)],_0x3c6ac0['completion']=_0x84c671;}function _0xd7ed62(_0x496e64){var _0x28884e=_0x1dad23;this[_0x28884e(0xfc)]=[{'tryLoc':_0x28884e(0x10d)}],_0x496e64[_0x28884e(0x12d)](_0x2631ee,this),this['reset'](!0x0);}function _0x24f59d(_0x2b55e4){var _0x1a5f19=_0x1dad23;if(_0x2b55e4||''===_0x2b55e4){var _0x285cdf=_0x2b55e4[_0x589fc5];if(_0x285cdf)return _0x285cdf['call'](_0x2b55e4);if('function'==typeof _0x2b55e4['next'])return _0x2b55e4;if(!isNaN(_0x2b55e4[_0x1a5f19(0x160)])){var _0x4790a6=-0x1,_0xcb9fc3=function _0x440612(){var _0x4b0bc0=_0x1a5f19;for(;++_0x4790a6<_0x2b55e4['length'];)if(_0x32aca8['call'](_0x2b55e4,_0x4790a6))return _0x440612[_0x4b0bc0(0x120)]=_0x2b55e4[_0x4790a6],_0x440612[_0x4b0bc0(0x153)]=!0x1,_0x440612;return _0x440612[_0x4b0bc0(0x120)]=_0x325726,_0x440612[_0x4b0bc0(0x153)]=!0x0,_0x440612;};return _0xcb9fc3[_0x1a5f19(0xbf)]=_0xcb9fc3;}}throw new TypeError(_typeof(_0x2b55e4)+'\x20is\x20not\x20iterable');}return _0x3774b7[_0x1dad23(0xd3)]=_0xb3a49,_0x1fb214(_0x306fb5,'constructor',{'value':_0xb3a49,'configurable':!0x0}),_0x1fb214(_0xb3a49,_0x1dad23(0xf2),{'value':_0x3774b7,'configurable':!0x0}),_0x3774b7['displayName']=_0x4968bd(_0xb3a49,_0x3ab9b2,_0x1dad23(0x109)),_0x3414db['isGeneratorFunction']=function(_0x416c4b){var _0x2b483b=_0x1dad23,_0x9322e9=_0x2b483b(0x17e)==typeof _0x416c4b&&_0x416c4b[_0x2b483b(0xf2)];return!!_0x9322e9&&(_0x9322e9===_0x3774b7||_0x2b483b(0x109)===(_0x9322e9[_0x2b483b(0x103)]||_0x9322e9['name']));},_0x3414db[_0x1dad23(0x104)]=function(_0x26b889){var _0x4f181c=_0x1dad23;return Object[_0x4f181c(0x13e)]?Object[_0x4f181c(0x13e)](_0x26b889,_0xb3a49):(_0x26b889[_0x4f181c(0xdf)]=_0xb3a49,_0x4968bd(_0x26b889,_0x3ab9b2,'GeneratorFunction')),_0x26b889['prototype']=Object[_0x4f181c(0x108)](_0x306fb5),_0x26b889;},_0x3414db[_0x1dad23(0x17d)]=function(_0x596bbf){return{'__await':_0x596bbf};},_0xde4da3(_0x566e82['prototype']),_0x4968bd(_0x566e82[_0x1dad23(0xd3)],_0x4746fd,function(){return this;}),_0x3414db[_0x1dad23(0x16a)]=_0x566e82,_0x3414db[_0x1dad23(0x114)]=function(_0x4692c6,_0x279e3,_0x9a9d0b,_0x225320,_0x21580b){void 0x0===_0x21580b&&(_0x21580b=Promise);var _0x5031ac=new _0x566e82(_0x81f114(_0x4692c6,_0x279e3,_0x9a9d0b,_0x225320),_0x21580b);return _0x3414db['isGeneratorFunction'](_0x279e3)?_0x5031ac:_0x5031ac['next']()['then'](function(_0x488fc8){var _0x5a8e95=_0x5a21;return _0x488fc8[_0x5a8e95(0x153)]?_0x488fc8['value']:_0x5031ac[_0x5a8e95(0xbf)]();});},_0xde4da3(_0x306fb5),_0x4968bd(_0x306fb5,_0x3ab9b2,_0x1dad23(0x138)),_0x4968bd(_0x306fb5,_0x589fc5,function(){return this;}),_0x4968bd(_0x306fb5,_0x1dad23(0xf6),function(){return'[object\x20Generator]';}),_0x3414db['keys']=function(_0x2d5d74){var _0x3217d8=_0x1dad23,_0x4ee28e=Object(_0x2d5d74),_0x493604=[];for(var _0x5487d2 in _0x4ee28e)_0x493604['push'](_0x5487d2);return _0x493604[_0x3217d8(0x16e)](),function _0x1ce69b(){var _0x53e9ec=_0x3217d8;for(;_0x493604[_0x53e9ec(0x160)];){var _0x567c0a=_0x493604['pop']();if(_0x567c0a in _0x4ee28e)return _0x1ce69b[_0x53e9ec(0x120)]=_0x567c0a,_0x1ce69b[_0x53e9ec(0x153)]=!0x1,_0x1ce69b;}return _0x1ce69b['done']=!0x0,_0x1ce69b;};},_0x3414db[_0x1dad23(0xfb)]=_0x24f59d,_0xd7ed62['prototype']={'constructor':_0xd7ed62,'reset':function _0x3d2ba6(_0x40a85f){var _0x52989e=_0x1dad23;if(this[_0x52989e(0x106)]=0x0,this[_0x52989e(0xbf)]=0x0,this[_0x52989e(0xe9)]=this['_sent']=_0x325726,this[_0x52989e(0x153)]=!0x1,this[_0x52989e(0x126)]=null,this['method']=_0x52989e(0xbf),this['arg']=_0x325726,this[_0x52989e(0xfc)]['forEach'](_0x3087f2),!_0x40a85f){for(var _0x2b03be in this)'t'===_0x2b03be['charAt'](0x0)&&_0x32aca8['call'](this,_0x2b03be)&&!isNaN(+_0x2b03be[_0x52989e(0x165)](0x1))&&(this[_0x2b03be]=_0x325726);}},'stop':function _0x2e8d80(){var _0x3f811b=_0x1dad23;this['done']=!0x0;var _0x92622d=this['tryEntries'][0x0]['completion'];if(_0x3f811b(0x149)===_0x92622d[_0x3f811b(0x19a)])throw _0x92622d['arg'];return this['rval'];},'dispatchException':function _0x14bfea(_0x378787){var _0x7d424f=_0x1dad23;if(this['done'])throw _0x378787;var _0x430322=this;function _0x59e22c(_0x5529fb,_0xe1f31e){var _0x13a8cb=_0x5a21;return _0x575805[_0x13a8cb(0x19a)]='throw',_0x575805['arg']=_0x378787,_0x430322[_0x13a8cb(0xbf)]=_0x5529fb,_0xe1f31e&&(_0x430322[_0x13a8cb(0x137)]='next',_0x430322[_0x13a8cb(0xe0)]=_0x325726),!!_0xe1f31e;}for(var _0xdeba8=this['tryEntries'][_0x7d424f(0x160)]-0x1;_0xdeba8>=0x0;--_0xdeba8){var _0x339a26=this[_0x7d424f(0xfc)][_0xdeba8],_0x575805=_0x339a26['completion'];if(_0x7d424f(0x10d)===_0x339a26['tryLoc'])return _0x59e22c(_0x7d424f(0x10f));if(_0x339a26['tryLoc']<=this['prev']){var _0x403c0c=_0x32aca8[_0x7d424f(0x125)](_0x339a26,_0x7d424f(0x16d)),_0x575349=_0x32aca8[_0x7d424f(0x125)](_0x339a26,'finallyLoc');if(_0x403c0c&&_0x575349){if(this['prev']<_0x339a26['catchLoc'])return _0x59e22c(_0x339a26[_0x7d424f(0x16d)],!0x0);if(this[_0x7d424f(0x106)]<_0x339a26['finallyLoc'])return _0x59e22c(_0x339a26['finallyLoc']);}else{if(_0x403c0c){if(this['prev']<_0x339a26['catchLoc'])return _0x59e22c(_0x339a26[_0x7d424f(0x16d)],!0x0);}else{if(!_0x575349)throw new Error('try\x20statement\x20without\x20catch\x20or\x20finally');if(this[_0x7d424f(0x106)]<_0x339a26['finallyLoc'])return _0x59e22c(_0x339a26['finallyLoc']);}}}}},'abrupt':function _0x2c8108(_0x4c2e48,_0x2ee1ef){var _0x12667c=_0x1dad23;for(var _0x5ef83e=this[_0x12667c(0xfc)]['length']-0x1;_0x5ef83e>=0x0;--_0x5ef83e){var _0x54ff02=this[_0x12667c(0xfc)][_0x5ef83e];if(_0x54ff02['tryLoc']<=this['prev']&&_0x32aca8['call'](_0x54ff02,_0x12667c(0xfe))&&this[_0x12667c(0x106)]<_0x54ff02['finallyLoc']){var _0x3a7d0c=_0x54ff02;break;}}_0x3a7d0c&&(_0x12667c(0xbe)===_0x4c2e48||'continue'===_0x4c2e48)&&_0x3a7d0c[_0x12667c(0xb0)]<=_0x2ee1ef&&_0x2ee1ef<=_0x3a7d0c[_0x12667c(0xfe)]&&(_0x3a7d0c=null);var _0x54e85d=_0x3a7d0c?_0x3a7d0c['completion']:{};return _0x54e85d['type']=_0x4c2e48,_0x54e85d['arg']=_0x2ee1ef,_0x3a7d0c?(this['method']='next',this['next']=_0x3a7d0c[_0x12667c(0xfe)],_0x11c7e5):this[_0x12667c(0x14d)](_0x54e85d);},'complete':function _0x15cac6(_0x56e991,_0x1f6feb){var _0x27b296=_0x1dad23;if('throw'===_0x56e991['type'])throw _0x56e991['arg'];return'break'===_0x56e991['type']||'continue'===_0x56e991['type']?this[_0x27b296(0xbf)]=_0x56e991['arg']:'return'===_0x56e991[_0x27b296(0x19a)]?(this[_0x27b296(0x162)]=this['arg']=_0x56e991['arg'],this[_0x27b296(0x137)]=_0x27b296(0x14e),this['next']=_0x27b296(0x10f)):_0x27b296(0x173)===_0x56e991[_0x27b296(0x19a)]&&_0x1f6feb&&(this['next']=_0x1f6feb),_0x11c7e5;},'finish':function _0x216b16(_0x95a80d){var _0x5e0431=_0x1dad23;for(var _0x24648e=this['tryEntries'][_0x5e0431(0x160)]-0x1;_0x24648e>=0x0;--_0x24648e){var _0x3fca52=this['tryEntries'][_0x24648e];if(_0x3fca52['finallyLoc']===_0x95a80d)return this['complete'](_0x3fca52[_0x5e0431(0x12e)],_0x3fca52['afterLoc']),_0x3087f2(_0x3fca52),_0x11c7e5;}},'catch':function _0x5e6f7b(_0x4c373a){var _0x54d2dc=_0x1dad23;for(var _0x329497=this['tryEntries'][_0x54d2dc(0x160)]-0x1;_0x329497>=0x0;--_0x329497){var _0x545cfa=this['tryEntries'][_0x329497];if(_0x545cfa['tryLoc']===_0x4c373a){var _0x1a149c=_0x545cfa['completion'];if('throw'===_0x1a149c[_0x54d2dc(0x19a)]){var _0x3d6368=_0x1a149c['arg'];_0x3087f2(_0x545cfa);}return _0x3d6368;}}throw new Error(_0x54d2dc(0xcf));},'delegateYield':function _0xc28644(_0x405d35,_0x277665,_0x2f3080){var _0x11a65a=_0x1dad23;return this[_0x11a65a(0x126)]={'iterator':_0x24f59d(_0x405d35),'resultName':_0x277665,'nextLoc':_0x2f3080},_0x11a65a(0xbf)===this[_0x11a65a(0x137)]&&(this['arg']=_0x325726),_0x11c7e5;}},_0x3414db;}function _0x5a21(_0x5a254b,_0x5790ef){_0x5a254b=_0x5a254b-0xae;var _0x99d615=_0x99d6();var _0x5a213f=_0x99d615[_0x5a254b];if(_0x5a21['CHUnlc']===undefined){var _0x30cd7c=function(_0x642d03){var _0x23f5e6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3daa1d='',_0x1aad53='';for(var _0x578d1a=0x0,_0x48ad26,_0x38e07b,_0x37919c=0x0;_0x38e07b=_0x642d03['charAt'](_0x37919c++);~_0x38e07b&&(_0x48ad26=_0x578d1a%0x4?_0x48ad26*0x40+_0x38e07b:_0x38e07b,_0x578d1a++%0x4)?_0x3daa1d+=String['fromCharCode'](0xff&_0x48ad26>>(-0x2*_0x578d1a&0x6)):0x0){_0x38e07b=_0x23f5e6['indexOf'](_0x38e07b);}for(var _0x325726=0x0,_0x3414db=_0x3daa1d['length'];_0x325726<_0x3414db;_0x325726++){_0x1aad53+='%'+('00'+_0x3daa1d['charCodeAt'](_0x325726)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1aad53);};_0x5a21['IeAdBl']=_0x30cd7c,_0x5a21['aotDOH']={},_0x5a21['CHUnlc']=!![];}var _0x3a0a20=_0x99d615[0x0],_0x1b1077=_0x5a254b+_0x3a0a20,_0x192ae3=_0x5a21['aotDOH'][_0x1b1077];return!_0x192ae3?(_0x5a213f=_0x5a21['IeAdBl'](_0x5a213f),_0x5a21['aotDOH'][_0x1b1077]=_0x5a213f):_0x5a213f=_0x192ae3,_0x5a213f;}function asyncGeneratorStep(_0x1d73cd,_0x27ea29,_0x42745c,_0x1d63f5,_0x315d1c,_0x437390,_0x48fe6a){var _0x4a1575=_0x5a21;try{var _0x517b94=_0x1d73cd[_0x437390](_0x48fe6a),_0x270302=_0x517b94['value'];}catch(_0x540351){_0x42745c(_0x540351);return;}_0x517b94[_0x4a1575(0x153)]?_0x27ea29(_0x270302):Promise[_0x4a1575(0x197)](_0x270302)[_0x4a1575(0x15c)](_0x1d63f5,_0x315d1c);}function _asyncToGenerator(_0x388318){return function(){var _0x80a3d=this,_0xc8cad=arguments;return new Promise(function(_0x2cd866,_0x14a43c){var _0x1fbc73=_0x388318['apply'](_0x80a3d,_0xc8cad);function _0x390dc4(_0x10dd7f){var _0x27cbfc=_0x5a21;asyncGeneratorStep(_0x1fbc73,_0x2cd866,_0x14a43c,_0x390dc4,_0x3307f8,_0x27cbfc(0xbf),_0x10dd7f);}function _0x3307f8(_0x1b11cf){var _0x3596f6=_0x5a21;asyncGeneratorStep(_0x1fbc73,_0x2cd866,_0x14a43c,_0x390dc4,_0x3307f8,_0x3596f6(0x149),_0x1b11cf);}_0x390dc4(undefined);});};}function _toConsumableArray(_0x74b633){return _arrayWithoutHoles(_0x74b633)||_iterableToArray(_0x74b633)||_unsupportedIterableToArray(_0x74b633)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError('Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}function _iterableToArray(_0x13ec68){var _0x440144=_0x5a21;if(typeof Symbol!==_0x440144(0x18d)&&_0x13ec68[Symbol[_0x440144(0x11a)]]!=null||_0x13ec68[_0x440144(0x117)]!=null)return Array['from'](_0x13ec68);}function _arrayWithoutHoles(_0x2b1b25){if(Array['isArray'](_0x2b1b25))return _arrayLikeToArray(_0x2b1b25);}function _0x99d6(){var _0x436008=['zxjYB3i','zM9YrwfJAa','y29TCgXLDgLVBG','q2fYDg9NCMfWAgLJ','nJm2nZuWqMjqr0zZ','ntrpB1fvtLK','x2nYzwf0zunVBw1HBMq','zgvMyxvSDa','C3vYzMfJzuDLB0PZB24','ChjPBwL0AxzLCW','Bwf4v2f0zxjizwLNAhq','Bwv0Ag9K','r2vUzxjHDg9Y','BwLUv2f0zxjizwLNAhq','D2f0zxjtB2z0tgLNAhrgywn0B3i','D2f0zxjcB2r5tw9Kzq','zw51BwvYywjSzq','x3rPBwu','C2v0uhjVDg90ExbLt2y','zgLZCgf0y2HfEgnLChrPB24','C3jJ','CMvTB3zL','Dgv4DhvYzvnPEMu','C2HVDW','mJKWmdK5ngXQvw9rwa','zNjVBuDLB21LDhj5','u2HHzgvYuhjVz3jHBq','Bwf4sgvPz2H0','z3jLzw4','DgHYB3C','x3nOB3DmAw5LCW','C3r5Bgu','x2nHBK9WzxjHDgu','y29TCgXLDgu','CMv0DxjU','x3rLEhr1CMvmB2fKuhjVBwLZzq','vu5tsuDorurFqLLurq','y29UDgv4Da','x25VAxnL','zg9Uzq','vgv4DhvYzu1PBMLMAwnHDgLVBKzPBhrLCG','AxnuzxjYywLUuMvHzhK','BMfTzq','x19HD2fPDa','vgv4DhvYzu1Hz25PzMLJyxrPB25gAwX0zxi','AM9PBG','uMvUzgvYu3rHDgu','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9YCW','DgHLBG','CMvTB3zLrNjVBunHy2HL','y29Uy2f0','yxbWBhK','BgvUz3rO','C3vZCgvUzgvKu3rHCNq','CNzHBa','AgvPz2H0t2zMC2v0','C2fTCgXLvgvYCMfPBK1VC3rezxrHAwXLza','C2XPy2u','u2fTCgXLzfrLCNjHAw5sAxzLCUwCSow9OUMRMoEOI+ImG+wBToAxOoAvIa','yxr0CMLIDxrLCW','Axnezxn0CM95zwq','AgvPz2H0twfW','qxn5BMnjDgvYyxrVCG','u2fTCgXLzfrLCNjHAw5sAxzLCUIVT+s8OowfPEACIEAvIoMRMoEOI+ImG+wBTa','x3jLBMrLCLn0yxrL','y2f0y2HmB2m','CMv2zxjZzq','CMvZDwX0tMfTzq','x2HHC1zHBgLKrwXLDMf0Aw9UuMfUz2u','zMXVD0rPCMvJDgLVBG','x2j1AwXKvMvYC2LVBG','BM9YBwfS','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','z2vVBwv0CMLLCW','x3jLyNvPBgrqCMLTAxrPDMu','sw1Hz2uVBM9PC2uUCg5N','x2nYzwf0zvvUAwzVCM1nyxa','x2DYyw51BgfYAxr5','x21PBKvSzxzHDgLVBG','nte3nZe1DMTKCuTu','CMLUz3m','yxDYyxa','zNvUy3rPB24','z2v0','zgLYzwn0Aw9Ur2vVsNnVBG','zNjVBunHy2HL','BNvTyMvY','ug9SEwDVBG','rMvHDhvYzq','tgLUzvn0CMLUzW','vfjbtLnmvunftLq','q2fYDgvZAwfUmG','x21HEevSzxzHDgLVBG','BM93','CMvKDwnL','x21HCenVBNrLEhq','ChvZAa','Dw5KzwzPBMvK','rMvHDhvYzunVBgXLy3rPB24','q0XbtvbFve9Frurhrq','x2HLAwDODe1HCa','teLorvm','D2LKDgG','x2LUDM9Rzq','r2vVBwv0CNLqAxbLBgLUzq','zM9HBufTB3vUDa','x25VAxnLvgv4DhvYzq','CMvZB2X2zq','x2HHC0v4CgXPy2L0twf4rwXLDMf0Aw9U','zgvMAw5LuhjVCgvYDhK','DhLWzq','yM91BMrZ','ugfZCW','ywrK','x2LZqwrKzwq','Dhj5tg9J','B2jQzwn0','u2fTCgXLzfrLCNjHAw5sAxzLCUI0TowBVUwkOoI9VEwKSEI0PtOG','zNjVBurLz3jLzxm','ChjPBwL0AxzL','u2fTCgXLCG','AxnbCNjHEq','x3DHDgvYqM9KEu1Vzgu','AgvPz2H0','z2v0t3DUuhjVCgvYDhLtEw1IB2XZ','nND5B05evG','y2fUDMfZ','y29VCMrPBMf0zxm','BwfW','yNjLywS','BMv4Da','zMX5vg8','AgvPz2H0CW','ywjZ','zgvZDhjVEu9IAMvJDa','mJG2mtzUAMzpruO','r2vUzxjHDg9YigLZigfSCMvHzhKGCNvUBMLUzW','x2zSB3DeAxjLy3rPB24','zMXVD1DHDMvtDhjLBMD0Aa','D2f0zxjmzxzLBa','D2f0zxjizwLNAhq','ue9tsvrjt05Fqu5ex1nu','ndbVuufotge','A2v5CW','BwvZC2fNzq','x2HHC0v4CgXPy2L0twLUrwXLDMf0Aw9U','AwXSzwDHBcbJyxrJAcbHDhrLBxb0','C3LTyM9S','DgLTzvnJywXL','C2v0u3r5Bgu','ChjVDg90ExbL','C2v0','D3jHCa','z3jHBNvSyxjPDhK','BwLUrwXLDMf0Aw9U','zMXVD1n0CMvUz3rO','Bwf4rwXLDMf0Aw9U','rwXSAxbZB2LKvgvYCMfPBLbYB3zPzgvY','x3nOywrLCLbYB2DYyw0','x3jLC29SDMvizwLNAhrnyxa','BwLU','C2nHBgu','x19WCM90B19F','yxjN','zMvHDhvYzxm','B25LCNjVCG','z2v0twfW','CM91BMq','ywjYDxb0','qeb0B1bYAw1PDgL2zsbTDxn0ihjLDhvYBIbHihbYAw1PDgL2zsb2ywX1zs4','x2rLC3rYB3LdB21Tyw5K','zMLSDgvY','C2vUDa','yM9VBgvHBG','A2v5','twf0Aa','AxngAw5PDgu','Cg9ZAxrPB24','q2fYDgvZAwfUmW','vgv4DhvYzvDYyxa','mJy0BKPSvwrO','y29UC3rYDwn0B3i','mtyWmdG3me5stM9LtW','BgfYz2vxyxzLsgvPz2H0','mZyWmJGWD0nAwLnc','Dg9tDhjPBMC','DMLKzw9xAwr0Aa','AgfZt3DUuhjVCgvYDhK','vgHLigL0zxjHDg9YigrVzxmGBM90ihbYB3zPzguGysaN','C2nLBMu','DMfSDwvZ','Dhj5rw50CMLLCW','x2rYyxDdB21Tyw5KCW','zMLUywXSEuXVyW','D3jPDgfIBgu','C3rYAw5N','zgvZDhjVEq','BM9PC2u','zgLZCgXHEu5HBwu','BwfYAW','x2HLAwDODe1HCfnVDxjJzq','ChjLDG','x2HLAwDODe1HCfrLEhr1CMu','y3jLyxrL','r2vUzxjHDg9YrNvUy3rPB24','x2zSB3DqyxrO','r2vVBwv0CNLdB2XSzwn0Aw9U','uhjPBwL0AxzLvhLWzq','CM9VDa','ywrKvg9nyxa','zw5K','x3bVBhLNB25Z','B25SB2fK','u2fTCgXLzfrLCNjHAw5sAxzLCUIVT+s8OowfPEACIEAvIhn1CMzHy2vhzw9kC29U5y+c5PwW','x2XVywruzxH0DxjLu291CMnLCW','yxn5BMm','C3rVCa','rhjHD0nVBw1HBMq','qebPDgvYyxrVCG','x2jVDw5KCW','AxrLCMf0B3iGCMvZDwX0igLZig5VDcbHBIbVyMPLy3q','AxrLCMf0B3i','Bwf4','zgvMAw5LuhjVCgvYDgLLCW','mJq4mdq0EwveCwjm','zMXVD1DHDMvty2fSzq','vMvYDgv4rM9YBwf0','DMfSDwu','uMvJDgfUz2XL','z2vVBwv0CNK','C3LUy1jLBMrLCLn0yxrL','DgvYCMfPBLnHBxbSzq','y2fSBa','zgvSzwDHDgu','yw5VBNLTB3vZ','jYbTzxrOB2q','Aw5KzxHpzG','y2XHBxa','nti1yMv0A2fq'];_0x99d6=function(){return _0x436008;};return _0x99d6();}function ownKeys(_0x1c0ef3,_0x24678d){var _0x57a210=_0x5a21,_0x522805=Object['keys'](_0x1c0ef3);if(Object[_0x57a210(0xb9)]){var _0x5acc21=Object['getOwnPropertySymbols'](_0x1c0ef3);_0x24678d&&(_0x5acc21=_0x5acc21['filter'](function(_0x30393a){var _0x222db8=_0x57a210;return Object[_0x222db8(0x174)](_0x1c0ef3,_0x30393a)['enumerable'];})),_0x522805['push'][_0x57a210(0x15f)](_0x522805,_0x5acc21);}return _0x522805;}function _objectSpread(_0x51abfd){var _0x47ae69=_0x5a21;for(var _0x1b737d=0x1;_0x1b737d<arguments['length'];_0x1b737d++){var _0x2434be=null!=arguments[_0x1b737d]?arguments[_0x1b737d]:{};_0x1b737d%0x2?ownKeys(Object(_0x2434be),!0x0)['forEach'](function(_0x399061){_defineProperty(_0x51abfd,_0x399061,_0x2434be[_0x399061]);}):Object[_0x47ae69(0x15b)]?Object[_0x47ae69(0x11c)](_0x51abfd,Object[_0x47ae69(0x15b)](_0x2434be)):ownKeys(Object(_0x2434be))['forEach'](function(_0x138847){Object['defineProperty'](_0x51abfd,_0x138847,Object['getOwnPropertyDescriptor'](_0x2434be,_0x138847));});}return _0x51abfd;}function _objectWithoutProperties(_0x208e69,_0x1ef15c){var _0x1478f0=_0x5a21;if(_0x208e69==null)return{};var _0x26c6ff=_objectWithoutPropertiesLoose(_0x208e69,_0x1ef15c),_0xcd235,_0x43bd16;if(Object['getOwnPropertySymbols']){var _0x10f249=Object['getOwnPropertySymbols'](_0x208e69);for(_0x43bd16=0x0;_0x43bd16<_0x10f249[_0x1478f0(0x160)];_0x43bd16++){_0xcd235=_0x10f249[_0x43bd16];if(_0x1ef15c[_0x1478f0(0x129)](_0xcd235)>=0x0)continue;if(!Object['prototype']['propertyIsEnumerable'][_0x1478f0(0x125)](_0x208e69,_0xcd235))continue;_0x26c6ff[_0xcd235]=_0x208e69[_0xcd235];}}return _0x26c6ff;}function _objectWithoutPropertiesLoose(_0x122d6d,_0x3f0ef7){var _0xfd23c7=_0x5a21;if(_0x122d6d==null)return{};var _0x275c21={},_0x1e69e1=Object[_0xfd23c7(0xcc)](_0x122d6d),_0x3dd42e,_0x290cd2;for(_0x290cd2=0x0;_0x290cd2<_0x1e69e1[_0xfd23c7(0x160)];_0x290cd2++){_0x3dd42e=_0x1e69e1[_0x290cd2];if(_0x3f0ef7[_0xfd23c7(0x129)](_0x3dd42e)>=0x0)continue;_0x275c21[_0x3dd42e]=_0x122d6d[_0x3dd42e];}return _0x275c21;}function _classCallCheck(_0x29319c,_0x4c87b0){if(!(_0x29319c instanceof _0x4c87b0))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0xf8685c,_0x439bf4){var _0xcf651e=_0x5a21;for(var _0x19ead0=0x0;_0x19ead0<_0x439bf4[_0xcf651e(0x160)];_0x19ead0++){var _0x327caf=_0x439bf4[_0x19ead0];_0x327caf[_0xcf651e(0x13c)]=_0x327caf[_0xcf651e(0x13c)]||![],_0x327caf['configurable']=!![];if('value'in _0x327caf)_0x327caf[_0xcf651e(0xff)]=!![];Object['defineProperty'](_0xf8685c,_toPropertyKey(_0x327caf[_0xcf651e(0xeb)]),_0x327caf);}}function _createClass(_0x4465c0,_0x1d0e0b,_0x5d5de4){var _0x3ba548=_0x5a21;if(_0x1d0e0b)_defineProperties(_0x4465c0['prototype'],_0x1d0e0b);if(_0x5d5de4)_defineProperties(_0x4465c0,_0x5d5de4);return Object[_0x3ba548(0x199)](_0x4465c0,'prototype',{'writable':![]}),_0x4465c0;}function _defineProperty(_0xfacccd,_0x4ef199,_0x413a40){return _0x4ef199=_toPropertyKey(_0x4ef199),_0x4ef199 in _0xfacccd?Object['defineProperty'](_0xfacccd,_0x4ef199,{'value':_0x413a40,'enumerable':!![],'configurable':!![],'writable':!![]}):_0xfacccd[_0x4ef199]=_0x413a40,_0xfacccd;}function _toPropertyKey(_0x9bfd0e){var _0x28f3d2=_0x5a21,_0x1a0b34=_toPrimitive(_0x9bfd0e,_0x28f3d2(0x100));return _0x28f3d2(0xd0)==_typeof(_0x1a0b34)?_0x1a0b34:String(_0x1a0b34);}function _toPrimitive(_0x123803,_0x33639f){var _0x38e85d=_0x5a21;if('object'!=_typeof(_0x123803)||!_0x123803)return _0x123803;var _0x271951=_0x123803[Symbol['toPrimitive']];if(void 0x0!==_0x271951){var _0x59b08c=_0x271951['call'](_0x123803,_0x33639f||_0x38e85d(0x133));if('object'!=_typeof(_0x59b08c))return _0x59b08c;throw new TypeError(_0x38e85d(0xe6));}return(_0x38e85d(0x100)===_0x33639f?String:Number)(_0x123803);}function _slicedToArray(_0x1b67e6,_0x54c537){return _arrayWithHoles(_0x1b67e6)||_iterableToArrayLimit(_0x1b67e6,_0x54c537)||_unsupportedIterableToArray(_0x1b67e6,_0x54c537)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError('Invalid\x20attempt\x20to\x20destructure\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}function _unsupportedIterableToArray(_0x4360f4,_0x27acf3){var _0x321fee=_0x5a21;if(!_0x4360f4)return;if(typeof _0x4360f4===_0x321fee(0x100))return _arrayLikeToArray(_0x4360f4,_0x27acf3);var _0x2c061a=Object[_0x321fee(0xd3)][_0x321fee(0xf6)]['call'](_0x4360f4)['slice'](0x8,-0x1);if(_0x2c061a==='Object'&&_0x4360f4['constructor'])_0x2c061a=_0x4360f4[_0x321fee(0xf2)][_0x321fee(0x156)];if(_0x2c061a==='Map'||_0x2c061a==='Set')return Array['from'](_0x4360f4);if(_0x2c061a==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x2c061a))return _arrayLikeToArray(_0x4360f4,_0x27acf3);}function _arrayLikeToArray(_0x5ddcb2,_0x491a8f){var _0x10d7a7=_0x5a21;if(_0x491a8f==null||_0x491a8f>_0x5ddcb2[_0x10d7a7(0x160)])_0x491a8f=_0x5ddcb2['length'];for(var _0x383df0=0x0,_0x1f95f1=new Array(_0x491a8f);_0x383df0<_0x491a8f;_0x383df0++)_0x1f95f1[_0x383df0]=_0x5ddcb2[_0x383df0];return _0x1f95f1;}function _iterableToArrayLimit(_0x4e2b2e,_0x29c0dd){var _0x3e4140=_0x5a21,_0x390e6b=null==_0x4e2b2e?null:'undefined'!=typeof Symbol&&_0x4e2b2e[Symbol[_0x3e4140(0x11a)]]||_0x4e2b2e[_0x3e4140(0x117)];if(null!=_0x390e6b){var _0x4d1205,_0xea7d8a,_0x37ebe2,_0x1672c8,_0x9493ff=[],_0x266886=!0x0,_0x246401=!0x1;try{if(_0x37ebe2=(_0x390e6b=_0x390e6b[_0x3e4140(0x125)](_0x4e2b2e))[_0x3e4140(0xbf)],0x0===_0x29c0dd){if(Object(_0x390e6b)!==_0x390e6b)return;_0x266886=!0x1;}else{for(;!(_0x266886=(_0x4d1205=_0x37ebe2['call'](_0x390e6b))[_0x3e4140(0x153)])&&(_0x9493ff[_0x3e4140(0x18c)](_0x4d1205['value']),_0x9493ff['length']!==_0x29c0dd);_0x266886=!0x0);}}catch(_0x373203){_0x246401=!0x0,_0xea7d8a=_0x373203;}finally{try{if(!_0x266886&&null!=_0x390e6b['return']&&(_0x1672c8=_0x390e6b[_0x3e4140(0x14e)](),Object(_0x1672c8)!==_0x1672c8))return;}finally{if(_0x246401)throw _0xea7d8a;}}return _0x9493ff;}}function _arrayWithHoles(_0x300af6){if(Array['isArray'](_0x300af6))return _0x300af6;}import*as _0x3daa1d from'deeptwins-cesium';import{cloneDeep,merge}from'lodash';import{v4 as _0x1aad53}from'uuid';import{DEFAULT_SAMPLED_TERRAIN_RIVER_STYLE}from'../constant';import*as _0x578d1a from'../tool/utils';export var DEFAULT_NOISE_SIZE=0x200;export var DEFAULT_NOISE_TEXTURE_FILE=_0x4a8294(0x177);export var DEFAULT_TERRAIN_TEXTURE_SIZE=0x80;export var MIN_TERRAIN_TEXTURE_SIZE=0x40;export var MAX_TERRAIN_TEXTURE_SIZE=0x200;var TERRAIN_SAMPLE_BATCH_SIZE=0x800,TERRAIN_HEIGHT_MAP_CACHE_LIMIT=0x10,MAX_POLYGON_GRANULARITY_SEGMENTS=0x80;export var CesiumRuntime=_0x3daa1d;var terrainHeightMapCache=new WeakMap();function normalizeMaxHeight(_0x117cbb,_0x28c44b,_0x5799bf){var _0x72751e=toFiniteNumber(_0x28c44b,_0x5799bf);return _0x72751e>_0x117cbb?_0x72751e:_0x117cbb+0x1;}function normalizeWaterLevel(_0x26fca9,_0x4de0ca,_0x195d69){var _0x59a7b5=_0x4a8294,_0xa173a9=Math['max'](_0x195d69-_0x4de0ca,0.001);return _0x3daa1d['Math'][_0x59a7b5(0x12a)]((_0x26fca9-_0x4de0ca)/_0xa173a9,0x0,0xa);}function hasTranslucentAlpha(_0x2ad9eb){var _0x2f1f1a=_0x4a8294,_0x3d218b=_0x3daa1d[_0x2f1f1a(0xec)]['clamp'](toFiniteNumber(_0x2ad9eb===null||_0x2ad9eb===void 0x0?void 0x0:_0x2ad9eb['alpha'],0.9),0x0,0x1);return _0x3d218b<0x1;}function resolveFlowDirection(_0x3ad935,_0x59621d){var _0x2e9a2b=_0x4a8294;if(!_0x59621d||_0x3ad935[_0x2e9a2b(0x160)]<0x2)return new _0x3daa1d[(_0x2e9a2b(0x187))](0x1,0x0);var _0x5f12c3=_slicedToArray(_0x59621d,0x4),_0x1b8a05=_0x5f12c3[0x0],_0x4a0ee6=_0x5f12c3[0x1],_0x4ef6d8=_0x5f12c3[0x2],_0x58003f=_0x5f12c3[0x3],_0x156318=_slicedToArray(_0x3ad935[0x0],0x2),_0x1468ba=_0x156318[0x0],_0x446062=_0x156318[0x1],_0x61c72c=_slicedToArray(_0x3ad935[_0x3ad935[_0x2e9a2b(0x160)]-0x1],0x2),_0xd3cd4a=_0x61c72c[0x0],_0x19f8fc=_0x61c72c[0x1],_0x495066=Math['max'](_0x4ef6d8-_0x1b8a05,0.000001),_0x3755d0=Math[_0x2e9a2b(0x11b)](_0x58003f-_0x4a0ee6,0.000001),_0x3d48f3=new _0x3daa1d['Cartesian2']((_0xd3cd4a-_0x1468ba)/_0x495066,(_0x19f8fc-_0x446062)/_0x3755d0);if(_0x3daa1d['Cartesian2']['magnitude'](_0x3d48f3)<=0.000001)return new _0x3daa1d[(_0x2e9a2b(0x187))](0x1,0x0);return _0x3daa1d['Cartesian2']['normalize'](_0x3d48f3,_0x3d48f3);}var SampledTerrainRiver=(function(){var _0xc10eb9=_0x4a8294;function _0x134f0b(){var _0xe19614=_0x5a21,_0x2bd86e=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};_classCallCheck(this,_0x134f0b),_defineProperty(this,'_mapContext',void 0x0),_defineProperty(this,'id',void 0x0),_defineProperty(this,_0xe19614(0x180),void 0x0),_defineProperty(this,_0xe19614(0x134),void 0x0),_defineProperty(this,_0xe19614(0x169),void 0x0),_defineProperty(this,_0xe19614(0x102),void 0x0),_defineProperty(this,_0xe19614(0xd7),void 0x0),_defineProperty(this,'maxElevation',void 0x0),_defineProperty(this,'granularity',void 0x0),_defineProperty(this,_0xe19614(0x124),void 0x0),_defineProperty(this,_0xe19614(0x142),void 0x0),_defineProperty(this,_0xe19614(0x163),void 0x0),_defineProperty(this,'waterBodyMode',void 0x0),_defineProperty(this,_0xe19614(0x139),void 0x0),_defineProperty(this,'maxWaterHeight',void 0x0),_defineProperty(this,'waterHeight',void 0x0),_defineProperty(this,'style',void 0x0),_defineProperty(this,'primitive',null),_defineProperty(this,_0xe19614(0x168),![]),_defineProperty(this,'_polygons',[]),_defineProperty(this,'_bounds',void 0x0),_defineProperty(this,'_flowPath',[]),_defineProperty(this,'_flowDirection',new _0x3daa1d[(_0xe19614(0x187))](0x1,0x0)),_defineProperty(this,'_isAdded',![]),_defineProperty(this,'_buildVersion',0x0),_defineProperty(this,_0xe19614(0xce),![]),_defineProperty(this,'_hasExplicitMaxElevation',![]);var _0x3c52a6=_0x2bd86e['directionGeoJson'],_0x8ab3ca=_0x2bd86e['surfaceGeoJson'],_0x27e4c0=_0x2bd86e[_0xe19614(0x169)],_0x535560=_0x2bd86e['canvas'],_0x1263df=_0x2bd86e[_0xe19614(0x102)],_0x288eab=_0x2bd86e['minElevation'],_0x100e70=_0x288eab===void 0x0?0x0:_0x288eab,_0x4c76c0=_0x2bd86e['maxElevation'],_0x83ee1d=_0x4c76c0===void 0x0?0x78:_0x4c76c0,_0x5cb1bd=_0x2bd86e[_0xe19614(0xd6)],_0x529900=_0x5cb1bd===void 0x0?0.0001:_0x5cb1bd,_0x5a92ed=_0x2bd86e['terrainSample'],_0x2c933d=_0x5a92ed===void 0x0?!![]:_0x5a92ed,_0x54d3f5=_0x2bd86e['textureSize'],_0x5a92ad=_0x54d3f5===void 0x0?DEFAULT_TERRAIN_TEXTURE_SIZE:_0x54d3f5,_0x1e3635=_0x2bd86e['heightOffset'],_0x183bfd=_0x1e3635===void 0x0?0.2:_0x1e3635,_0x279241=_0x2bd86e[_0xe19614(0x13b)],_0x4f5029=_0x279241===void 0x0?![]:_0x279241,_0x4fbcf7=_0x2bd86e[_0xe19614(0x139)],_0xdb4084=_0x4fbcf7===void 0x0?0x0:_0x4fbcf7,_0x5df463=_0x2bd86e['maxWaterHeight'],_0x41726f=_0x2bd86e['waterHeight'],_0x213880=_0x2bd86e['style'],_0x513122=_0x213880===void 0x0?{}:_0x213880,_0x106858=merge(DEFAULT_SAMPLED_TERRAIN_RIVER_STYLE(),cloneDeep(_0x513122||{}));delete _0x106858[_0xe19614(0xc8)],delete _0x106858['waterHeight'],this['id']=_0x1aad53(),this['directionGeoJson']=_0x3c52a6,this['surfaceGeoJson']=_0x8ab3ca,this[_0xe19614(0x10a)]=collectGeoJsonLineCoordinates(_0x3c52a6),this['_polygons']=collectGeoJsonPolygons(_0x8ab3ca),this[_0xe19614(0x118)]=getPolygonsBounds(this['_polygons']),this['_flowDirection']=resolveFlowDirection(this['_flowPath'],this[_0xe19614(0x118)]),this[_0xe19614(0x169)]=_0x27e4c0||_0x535560,this[_0xe19614(0x102)]=_0x1263df||_0x578d1a['getDeepTwinsFile'](DEFAULT_NOISE_TEXTURE_FILE),this['minElevation']=_0x100e70,this['maxElevation']=_0x83ee1d,this[_0xe19614(0xd6)]=_0x529900,this[_0xe19614(0x124)]=_0x2c933d!==![],this['textureSize']=normalizeTerrainTextureSize(_0x5a92ad),this['heightOffset']=Number['isFinite'](_0x183bfd)?_0x183bfd:0.2,this[_0xe19614(0x13b)]=_0x4f5029===!![],this['minWaterHeight']=toFiniteNumber(_0xdb4084,0x0),this['maxWaterHeight']=normalizeMaxHeight(this['minWaterHeight'],_0x5df463,this['minWaterHeight']+0x2),this[_0xe19614(0xc9)]=_0x3daa1d[_0xe19614(0xec)][_0xe19614(0x12a)](toFiniteNumber(_0x41726f,this[_0xe19614(0x139)]),this[_0xe19614(0x139)],this[_0xe19614(0x136)]),this['_hasExplicitMinElevation']=Object['prototype']['hasOwnProperty'][_0xe19614(0x125)](_0x2bd86e,_0xe19614(0xd7)),this['_hasExplicitMaxElevation']=Object['prototype'][_0xe19614(0xf8)][_0xe19614(0x125)](_0x2bd86e,_0xe19614(0xd9)),this[_0xe19614(0x14b)]=_0x106858;}return _createClass(_0x134f0b,[{'key':_0xc10eb9(0xe3),'value':function _0x3214da(){var _0x3bd2ae=_0xc10eb9,_0x4aba2f;return(_0x4aba2f=this['_mapContext'])===null||_0x4aba2f===void 0x0?void 0x0:_0x4aba2f[_0x3bd2ae(0xe3)]();}},{'key':_0xc10eb9(0x10e),'value':function _0x58360a(_0xb4da98){var _0x5e867e=_0xc10eb9;if(!this[_0x5e867e(0x14c)]())return;if(this[_0x5e867e(0xaf)]&&this['getMap']()===_0xb4da98)return this;return this['_isAdded']&&this['remove'](),this[_0x5e867e(0x18b)]=_0xb4da98['_mapContext'],this[_0x5e867e(0x176)](),this;}},{'key':'remove','value':function _0x28e675(){var _0x566604=_0xc10eb9;if(this[_0x566604(0x168)])return this;this[_0x566604(0x172)]++;if(!this[_0x566604(0xaf)])return this;var _0x160925=this[_0x566604(0xe3)]();return _0x160925&&this['primitive']&&_0x160925['scene'][_0x566604(0x135)][_0x566604(0x141)](this[_0x566604(0xb4)]),this[_0x566604(0xb4)]=null,this[_0x566604(0xaf)]=![],this;}},{'key':_0xc10eb9(0x143),'value':function _0x25a66a(_0x112700){var _0x5e2e63=_0xc10eb9;if(!this[_0x5e2e63(0x14c)]())return;return this[_0x5e2e63(0x14b)][_0x5e2e63(0x143)]=_0x112700,this[_0x5e2e63(0xb4)]&&(this[_0x5e2e63(0xb4)][_0x5e2e63(0x143)]=_0x112700),this;}},{'key':'setData','value':function _0x3f1a9e(){var _0x40696b=_0xc10eb9,_0x529117=arguments[_0x40696b(0x160)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};if(!this['_canOperate']())return;return Object[_0x40696b(0xd3)][_0x40696b(0xf8)][_0x40696b(0x125)](_0x529117,_0x40696b(0x180))&&(this['directionGeoJson']=_0x529117['directionGeoJson'],this[_0x40696b(0x10a)]=collectGeoJsonLineCoordinates(this[_0x40696b(0x180)]),this['_flowDirection']=resolveFlowDirection(this[_0x40696b(0x10a)],this[_0x40696b(0x118)])),Object[_0x40696b(0xd3)][_0x40696b(0xf8)]['call'](_0x529117,'surfaceGeoJson')&&(this['surfaceGeoJson']=_0x529117['surfaceGeoJson'],this[_0x40696b(0x110)]=collectGeoJsonPolygons(this['surfaceGeoJson']),this['_bounds']=getPolygonsBounds(this['_polygons']),this[_0x40696b(0xc6)]=resolveFlowDirection(this['_flowPath'],this['_bounds'])),_0x529117[_0x40696b(0x169)]&&(this['heightMap']=_0x529117['heightMap']),_0x529117['canvas']&&(this['heightMap']=_0x529117[_0x40696b(0xbb)]),_0x529117['noise']&&(this[_0x40696b(0x102)]=_0x529117['noise']),Object[_0x40696b(0xd3)]['hasOwnProperty']['call'](_0x529117,_0x40696b(0xd7))&&(this[_0x40696b(0xce)]=typeof _0x529117[_0x40696b(0xd7)]===_0x40696b(0x182)),typeof _0x529117[_0x40696b(0xd7)]==='number'&&(this['minElevation']=_0x529117[_0x40696b(0xd7)]),Object[_0x40696b(0xd3)]['hasOwnProperty']['call'](_0x529117,'maxElevation')&&(this[_0x40696b(0x198)]=typeof _0x529117['maxElevation']===_0x40696b(0x182)),typeof _0x529117['maxElevation']==='number'&&(this[_0x40696b(0xd9)]=_0x529117['maxElevation']),typeof _0x529117['granularity']==='number'&&(this[_0x40696b(0xd6)]=_0x529117[_0x40696b(0xd6)]),typeof _0x529117['terrainSample']===_0x40696b(0xea)&&(this['terrainSample']=_0x529117[_0x40696b(0x124)]),typeof _0x529117[_0x40696b(0x142)]==='number'&&(this['textureSize']=normalizeTerrainTextureSize(_0x529117['textureSize'])),typeof _0x529117[_0x40696b(0x163)]===_0x40696b(0x182)&&(this[_0x40696b(0x163)]=_0x529117['heightOffset']),typeof _0x529117['waterBodyMode']===_0x40696b(0xea)&&(this['waterBodyMode']=_0x529117['waterBodyMode']),typeof _0x529117[_0x40696b(0x139)]===_0x40696b(0x182)&&(this['minWaterHeight']=_0x529117['minWaterHeight']),typeof _0x529117[_0x40696b(0x136)]===_0x40696b(0x182)&&(this['maxWaterHeight']=_0x529117[_0x40696b(0x136)]),this[_0x40696b(0x136)]=normalizeMaxHeight(this[_0x40696b(0x139)],this['maxWaterHeight'],this[_0x40696b(0x139)]+0x1),Object[_0x40696b(0xd3)]['hasOwnProperty']['call'](_0x529117,'waterHeight')&&(this[_0x40696b(0xc9)]=typeof _0x529117['waterHeight']==='number'?_0x529117['waterHeight']:this['minWaterHeight']),this[_0x40696b(0xc9)]=_0x3daa1d[_0x40696b(0xec)][_0x40696b(0x12a)](this['waterHeight'],this[_0x40696b(0x139)],this[_0x40696b(0x136)]),this['getMap']()&&this['_rebuildPrimitive'](),this;}},{'key':_0xc10eb9(0xd2),'value':function _0x3da0cd(){var _0x280fed=_0xc10eb9,_0x44ea33=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};if(!this[_0x280fed(0x14c)]())return;var _0xdc5404=cloneDeep(_0x44ea33||{}),_0x4c4285=typeof(_0xdc5404===null||_0xdc5404===void 0x0?void 0x0:_0xdc5404[_0x280fed(0x13b)])===_0x280fed(0xea)?_0xdc5404['waterBodyMode']:this['waterBodyMode'],_0xf384c8=_0x4c4285!==this[_0x280fed(0x13b)];this['waterBodyMode']=_0x4c4285;Object[_0x280fed(0xd3)]['hasOwnProperty'][_0x280fed(0x125)](_0xdc5404,_0x280fed(0xc9))&&(this['waterHeight']=typeof _0xdc5404['waterHeight']==='number'?_0xdc5404[_0x280fed(0xc9)]:this['minWaterHeight'],this['waterHeight']=_0x3daa1d[_0x280fed(0xec)][_0x280fed(0x12a)](this[_0x280fed(0xc9)],this['minWaterHeight'],this[_0x280fed(0x136)]));delete _0xdc5404[_0x280fed(0xc8)],delete _0xdc5404['waterHeight'],this['style']=merge(this['style'],_0xdc5404);if(_0xf384c8&&this[_0x280fed(0xe3)]())this[_0x280fed(0x176)]();else this[_0x280fed(0xb4)]&&(this[_0x280fed(0xb4)]['style']=this[_0x280fed(0x14b)],this['primitive']['waterHeight']=this[_0x280fed(0xc9)],this['primitive']['flowDirection']=this['_flowDirection'],this['primitive'][_0x280fed(0x143)]=this['style']['show'],this[_0x280fed(0xb4)]['showLines']=this['style']['showLines']===!![],this[_0x280fed(0xb4)]['syncRenderState']());return this;}},{'key':_0xc10eb9(0xc0),'value':function _0x3b05e6(){var _0x3f53b8=_0xc10eb9,_0x787e1f,_0x2cfd64=arguments[_0x3f53b8(0x160)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};if(!this[_0x3f53b8(0x14c)]()||!this['getMap']()||!this[_0x3f53b8(0x118)])return;var _0x2e889e=_0x2cfd64||{},_0x3a2c59=_0x2e889e[_0x3f53b8(0xde)],_0x119b05=_0x3a2c59===void 0x0?1.2:_0x3a2c59,_0x16466b=_objectWithoutProperties(_0x2e889e,_excluded),_0x26ff01=expandBounds(this[_0x3f53b8(0x118)],_0x119b05);return this[_0x3f53b8(0xe3)]()['camera'][_0x3f53b8(0xc0)](_objectSpread({'destination':(_0x787e1f=_0x3daa1d[_0x3f53b8(0x121)])['fromDegrees']['apply'](_0x787e1f,_toConsumableArray(_0x26ff01))},_0x16466b)),this;}},{'key':_0xc10eb9(0x101),'value':function _0x32b2b0(){var _0x5eace3=_0xc10eb9;if(this['isDestroyed'])return;this[_0x5eace3(0x141)](),this['directionGeoJson']=undefined,this['surfaceGeoJson']=undefined,this['_flowPath']=[],this[_0x5eace3(0x110)]=[],this[_0x5eace3(0x118)]=undefined,this[_0x5eace3(0x169)]=undefined,this[_0x5eace3(0x172)]++,this[_0x5eace3(0x18b)]=undefined,this[_0x5eace3(0x168)]=!![];}},{'key':_0xc10eb9(0x14c),'value':function _0x2c5f52(){var _0x5ca68c=_0xc10eb9;if(this[_0x5ca68c(0x168)])return _0x578d1a[_0x5ca68c(0x12c)]('SampledTerrainRiver实例已销毁'),![];return!![];}},{'key':'_rebuildPrimitive','value':(function(){var _0x4cbaad=_asyncToGenerator(_regeneratorRuntime()['mark'](function _0x418dec(){var _0x10b8c5=_0x5a21,_0x41faca,_0xd9f809,_0x1e52da,_0x563caf;return _regeneratorRuntime()[_0x10b8c5(0xd5)](function _0x3bfefd(_0x43923d){var _0x3282c4=_0x10b8c5;while(0x1)switch(_0x43923d[_0x3282c4(0x106)]=_0x43923d['next']){case 0x0:_0x41faca=this[_0x3282c4(0xe3)]();if(_0x41faca){_0x43923d[_0x3282c4(0xbf)]=0x3;break;}return _0x43923d['abrupt']('return');case 0x3:_0xd9f809=++this['_buildVersion'];this[_0x3282c4(0xb4)]&&(_0x41faca['scene'][_0x3282c4(0x135)][_0x3282c4(0x141)](this['primitive']),this['primitive']=null);this['_isAdded']=![];if(this['_hasValidData']()){_0x43923d['next']=0x8;break;}return _0x43923d[_0x3282c4(0xe5)]('return');case 0x8:_0x43923d['next']=0xa;return this[_0x3282c4(0xdc)](_0x41faca);case 0xa:_0x1e52da=_0x43923d[_0x3282c4(0xe9)];if(!(!_0x1e52da||this['isDestroyed']||_0xd9f809!==this[_0x3282c4(0x172)]||this[_0x3282c4(0xe3)]()!==_0x41faca)){_0x43923d[_0x3282c4(0xbf)]=0xd;break;}return _0x43923d['abrupt'](_0x3282c4(0x14e));case 0xd:_0x563caf=_0x41faca[_0x3282c4(0xfa)]['primitives'][_0x3282c4(0xae)](new SampledTerrainRiverPrimitive({'polygons':this['_polygons'],'bounds':this[_0x3282c4(0x118)],'heightMap':_0x1e52da[_0x3282c4(0x169)],'noise':this[_0x3282c4(0x102)],'minElevation':_0x1e52da[_0x3282c4(0xd7)],'maxElevation':_0x1e52da[_0x3282c4(0xd9)],'granularity':this['granularity'],'waterBodyMode':this[_0x3282c4(0x13b)],'waterHeight':this['waterHeight'],'flowDirection':this[_0x3282c4(0xc6)],'style':this['style']})),_0x563caf[_0x3282c4(0x143)]=this[_0x3282c4(0x14b)][_0x3282c4(0x143)],this['primitive']=_0x563caf,this[_0x3282c4(0xaf)]=!![];case 0x11:case _0x3282c4(0x10f):return _0x43923d['stop']();}},_0x418dec,this);}));function _0x1f69ee(){var _0x588c8b=_0x5a21;return _0x4cbaad[_0x588c8b(0x15f)](this,arguments);}return _0x1f69ee;}())},{'key':'_resolveHeightMap','value':(function(){var _0x175f98=_asyncToGenerator(_regeneratorRuntime()['mark'](function _0x8025ca(_0x19f5fb){var _0x411277,_0x36c400,_0x4d0ce6,_0x3a6337;return _regeneratorRuntime()['wrap'](function _0x60e585(_0x5112c0){var _0x5d8573=_0x5a21;while(0x1)switch(_0x5112c0[_0x5d8573(0x106)]=_0x5112c0[_0x5d8573(0xbf)]){case 0x0:if(!this[_0x5d8573(0x169)]){_0x5112c0[_0x5d8573(0xbf)]=0x4;break;}if(this[_0x5d8573(0x170)]()){_0x5112c0['next']=0x3;break;}return _0x5112c0['abrupt']('return',null);case 0x3:return _0x5112c0['abrupt']('return',{'heightMap':this[_0x5d8573(0x169)],'minElevation':this[_0x5d8573(0xd7)],'maxElevation':this[_0x5d8573(0xd9)]});case 0x4:if(this['terrainSample']){_0x5112c0['next']=0x7;break;}_0x578d1a[_0x5d8573(0x12c)]('SampledTerrainRiver未提供heightMap,且terrainSample已关闭');return _0x5112c0[_0x5d8573(0xe5)]('return',null);case 0x7:if(this[_0x5d8573(0x118)]){_0x5112c0['next']=0x9;break;}return _0x5112c0[_0x5d8573(0xe5)]('return',null);case 0x9:_0x5112c0[_0x5d8573(0x106)]=0x9,_0x5112c0['next']=0xc;return getTerrainHeightMap(_0x19f5fb,this[_0x5d8573(0x118)],this[_0x5d8573(0x142)]);case 0xc:_0x411277=_0x5112c0[_0x5d8573(0xe9)],_0x36c400=this[_0x5d8573(0xce)]?this[_0x5d8573(0xd7)]:_0x411277['minHeight']+this['heightOffset'],_0x4d0ce6=this['_hasExplicitMaxElevation']?this['maxElevation']:_0x411277[_0x5d8573(0x147)]+this[_0x5d8573(0x163)];if(!(!Number['isFinite'](_0x36c400)||!Number['isFinite'](_0x4d0ce6))){_0x5112c0['next']=0x12;break;}_0x578d1a['error'](_0x5d8573(0x166));return _0x5112c0[_0x5d8573(0xe5)](_0x5d8573(0x14e),null);case 0x12:_0x4d0ce6<=_0x36c400&&(_0x4d0ce6=_0x36c400+0x1);_0x3a6337=encodeTerrainHeightMap(_0x411277,_0x36c400,_0x4d0ce6,this[_0x5d8573(0x163)]),this[_0x5d8573(0xd7)]=_0x36c400,this['maxElevation']=_0x4d0ce6;return _0x5112c0[_0x5d8573(0xe5)](_0x5d8573(0x14e),{'heightMap':_0x3a6337,'minElevation':_0x36c400,'maxElevation':_0x4d0ce6});case 0x19:_0x5112c0['prev']=0x19,_0x5112c0['t0']=_0x5112c0['catch'](0x9),_0x578d1a[_0x5d8573(0x12c)](formatError(_0x5112c0['t0']));return _0x5112c0[_0x5d8573(0xe5)]('return',null);case 0x1d:case'end':return _0x5112c0['stop']();}},_0x8025ca,this,[[0x9,0x19]]);}));function _0x49cf6e(_0x209beb){var _0x5b88fa=_0x5a21;return _0x175f98[_0x5b88fa(0x15f)](this,arguments);}return _0x49cf6e;}())},{'key':'_hasValidData','value':function _0xbd14ac(){var _0x21a27b=_0xc10eb9;if(!this['_bounds']||this[_0x21a27b(0x110)][_0x21a27b(0x160)]<0x1)return _0x578d1a['error'](_0x21a27b(0x112)),![];if(this['_flowPath'][_0x21a27b(0x160)]<0x2)return _0x578d1a[_0x21a27b(0x12c)]('SampledTerrainRiver请传入有效LineString\x20directionGeoJson参数'),![];return!![];}},{'key':_0xc10eb9(0x170),'value':function _0x574b2e(){var _0x2101dd=_0xc10eb9;if(!Number[_0x2101dd(0xed)](this['minElevation'])||!Number[_0x2101dd(0xed)](this[_0x2101dd(0xd9)])||this[_0x2101dd(0xd9)]<=this['minElevation'])return _0x578d1a['error'](_0x2101dd(0x16b)),![];return!![];}}]),_0x134f0b;}());export{SampledTerrainRiver as default};var SampledTerrainRiverPrimitive=(function(){var _0x336f79=_0x4a8294;function _0x492184(_0x14c3a6){var _0x279b8d=_0x5a21;_classCallCheck(this,_0x492184),_defineProperty(this,_0x279b8d(0x143),!![]),_defineProperty(this,_0x279b8d(0x14b),void 0x0),_defineProperty(this,_0x279b8d(0x110),void 0x0),_defineProperty(this,_0x279b8d(0x118),void 0x0),_defineProperty(this,_0x279b8d(0x105),void 0x0),_defineProperty(this,'_noiseSource',void 0x0),_defineProperty(this,_0x279b8d(0x190),null),_defineProperty(this,_0x279b8d(0x152),null),_defineProperty(this,'_minElevation',void 0x0),_defineProperty(this,'_maxElevation',void 0x0),_defineProperty(this,_0x279b8d(0x179),void 0x0),_defineProperty(this,_0x279b8d(0xb7),void 0x0),_defineProperty(this,'waterHeight',void 0x0),_defineProperty(this,'flowDirection',void 0x0),_defineProperty(this,'_showLines',void 0x0),_defineProperty(this,_0x279b8d(0xfd),[]),_defineProperty(this,'_vertexArrays',[]),_defineProperty(this,'_shaderProgram',null),_defineProperty(this,'_renderState',null),_defineProperty(this,_0x279b8d(0x107),null),_defineProperty(this,_0x279b8d(0x196),null),_defineProperty(this,'_textureLoadPromise',null),_defineProperty(this,_0x279b8d(0x13d),0x0),this[_0x279b8d(0x110)]=_0x14c3a6['polygons'],this['_bounds']=_0x14c3a6[_0x279b8d(0x19b)],this['_heightMapSource']=_0x14c3a6['heightMap'],this['_noiseSource']=_0x14c3a6['noise'],this['_minElevation']=_0x14c3a6['minElevation'],this['_maxElevation']=_0x14c3a6[_0x279b8d(0xd9)],this['_granularity']=_0x14c3a6[_0x279b8d(0xd6)],this['_waterBodyMode']=_0x14c3a6['waterBodyMode'],this['waterHeight']=_0x14c3a6[_0x279b8d(0xc9)],this['flowDirection']=new _0x3daa1d[(_0x279b8d(0x187))](_0x14c3a6['flowDirection']['x'],_0x14c3a6['flowDirection']['y']),this['style']=_0x14c3a6[_0x279b8d(0x14b)],this[_0x279b8d(0x14a)]=this['style']['showLines']===!![];}return _createClass(_0x492184,[{'key':'showLines','get':function _0x240e3d(){return this['_showLines'];},'set':function _0x42c908(_0x304a65){var _0x4ff8f5=_0x5a21;this[_0x4ff8f5(0x14a)]=_0x304a65,this['_drawCommands'][_0x4ff8f5(0x12d)](function(_0xf87f0c){var _0x4e19a3=_0x4ff8f5;_0xf87f0c['primitiveType']=_0x304a65?_0x3daa1d['PrimitiveType'][_0x4e19a3(0x191)]:_0x3daa1d[_0x4e19a3(0x10c)]['TRIANGLES'];});}},{'key':'update','value':function _0x10b915(_0x4c6c57){var _0x16b822=_0x5a21;if(!this['show'])return;this['_time']=performance[_0x16b822(0x189)]()/0x3e8;if(this['_drawCommands']['length']<0x1){if(!this['_heightMap']||!this['_noise']){this[_0x16b822(0x113)]();return;}this[_0x16b822(0x132)](_0x4c6c57[_0x16b822(0x151)]);}this['_drawCommands'][_0x16b822(0x12d)](function(_0xee316a){var _0x581d46=_0x16b822;_0x4c6c57['commandList'][_0x581d46(0x18c)](_0xee316a);});}},{'key':_0x336f79(0x168),'value':function _0x38803e(){return![];}},{'key':_0x336f79(0x101),'value':function _0x4ad21e(){var _0x5389eb=_0x336f79;return this[_0x5389eb(0xe7)](),_0x3daa1d[_0x5389eb(0xc3)](this);}},{'key':_0x336f79(0x123),'value':function _0x442470(){var _0x632ad0=_0x336f79,_0x33c3cb=this;if(this['_drawCommands']['length']<0x1)return;var _0x53c4fc=this[_0x632ad0(0x16c)],_0x31bad9=this['_createRenderState']();_0x53c4fc&&_0x53c4fc!==_0x31bad9&&CesiumRuntime['RenderState'][_0x632ad0(0x15d)](_0x53c4fc);this[_0x632ad0(0x16c)]=_0x31bad9;var _0xfd12bb=this[_0x632ad0(0xb7)]||hasTranslucentAlpha(this['style'])?CesiumRuntime['Pass'][_0x632ad0(0x186)]:CesiumRuntime[_0x632ad0(0x19c)]['OPAQUE'];this['_drawCommands']['forEach'](function(_0x6af90b){_0x6af90b['renderState']=_0x33c3cb['_renderState'],_0x6af90b['pass']=_0xfd12bb;});}},{'key':_0x336f79(0x132),'value':function _0x4ad5a1(_0x1f32a9){var _0x5edeb1=_0x336f79,_0x3b5f62=this;if(!this[_0x5edeb1(0x190)]||!this[_0x5edeb1(0x152)])return;var _0x47861c=this[_0x5edeb1(0x110)][_0x5edeb1(0xbd)](function(_0x3d6640){return createPolygonGeometry(_0x3d6640,_0x3b5f62['_bounds'],_0x3b5f62['_minElevation'],_0x3b5f62['_granularity']);})[_0x5edeb1(0xe8)](function(_0x2da44c){return Boolean(_0x2da44c);}),_0x1d3d29=_0x47861c[0x0];if(!_0x1d3d29)return;var _0x520e5b=_0x3daa1d[_0x5edeb1(0x194)]['createAttributeLocations'](_0x1d3d29);this['_shaderProgram']=CesiumRuntime[_0x5edeb1(0x146)][_0x5edeb1(0x181)]({'context':_0x1f32a9,'vertexShaderSource':SAMPLED_TERRAIN_RIVER_COMMON_SHADER+SAMPLED_TERRAIN_RIVER_VERTEX_SHADER,'fragmentShaderSource':SAMPLED_TERRAIN_RIVER_COMMON_SHADER+SAMPLED_TERRAIN_RIVER_FRAGMENT_SHADER,'attributeLocations':_0x520e5b}),this['_heightMapTexture']=createTexture(_0x1f32a9,this[_0x5edeb1(0x190)],CesiumRuntime['TextureWrap'][_0x5edeb1(0x18f)]),this[_0x5edeb1(0x196)]=createTexture(_0x1f32a9,this[_0x5edeb1(0x152)]),this['_renderState']=this['_createRenderState']();var _0xf3c412=this['_createUniformMap']();this['_vertexArrays']=_0x47861c[_0x5edeb1(0xbd)](function(_0x5d7482){var _0x25028a=_0x5edeb1;return CesiumRuntime['VertexArray'][_0x25028a(0x145)]({'context':_0x1f32a9,'geometry':_0x5d7482,'attributeLocations':_0x520e5b});}),this['_drawCommands']=_0x47861c['map'](function(_0x501f2c,_0x3450fb){var _0x2118d7=_0x5edeb1;return new CesiumRuntime[(_0x2118d7(0x116))]({'owner':_0x3b5f62,'vertexArray':_0x3b5f62['_vertexArrays'][_0x3450fb],'primitiveType':_0x3b5f62[_0x2118d7(0x14a)]?_0x3daa1d[_0x2118d7(0x10c)]['LINES']:_0x3daa1d['PrimitiveType']['TRIANGLES'],'shaderProgram':_0x3b5f62['_shaderProgram'],'uniformMap':_0xf3c412,'renderState':_0x3b5f62['_renderState'],'pass':_0x3b5f62['_waterBodyMode']||hasTranslucentAlpha(_0x3b5f62[_0x2118d7(0x14b)])?CesiumRuntime['Pass']['TRANSLUCENT']:CesiumRuntime[_0x2118d7(0x19c)]['OPAQUE'],'boundingVolume':_0x501f2c['boundingSphere']});});}},{'key':'_createRenderState','value':function _0x34936e(){var _0x1bcad6=_0x336f79,_0x2932e2=this['_waterBodyMode']||hasTranslucentAlpha(this['style']);return CesiumRuntime['RenderState'][_0x1bcad6(0x181)]({'depthTest':{'enabled':!![]},'depthMask':!_0x2932e2,'blending':_0x3daa1d['BlendingState']['ALPHA_BLEND'],'cull':{'enabled':![]}});}},{'key':_0x336f79(0x178),'value':function _0x999e67(){var _0x5c3395=this;return{'heightMap':function _0x3c1431(){var _0x45cb42=_0x5a21;return _0x5c3395[_0x45cb42(0x107)];},'heightScale':function _0x44486b(){return 0x1;},'minElevation':function _0x325507(){return _0x5c3395['_minElevation'];},'maxElevation':function _0x3b80de(){var _0x47cc4e=_0x5a21;return _0x5c3395[_0x47cc4e(0x188)];},'water_body_mode':function _0x5f5813(){var _0x18f2ae=_0x5a21;return _0x5c3395[_0x18f2ae(0xb7)];},'has_water_height':function _0x440da6(){return!![];},'water_height':function _0x5bb527(){return _0x5c3395['waterHeight'];},'iTime':function _0x8faf31(){var _0x500911=_0x5a21;return _0x5c3395['_time']*toFiniteNumber(_0x5c3395['style'][_0x500911(0xd1)],0x1);},'iChannel0':function _0x4bb778(){var _0x3fec91=_0x5a21;return _0x5c3395[_0x3fec91(0x196)];},'large_waveheight':function _0x46d355(){var _0x18f5b8=_0x5a21;return _0x5c3395['style'][_0x18f5b8(0xf4)];},'large_wavesize':function _0x554c5e(){return _0x5c3395['style']['largeWaveSize'];},'small_waveheight':function _0x15a758(){var _0x585d34=_0x5a21;return _0x5c3395[_0x585d34(0x14b)]['smallWaveHeight'];},'small_wavesize':function _0x19b87c(){var _0xa703b1=_0x5a21;return _0x5c3395[_0xa703b1(0x14b)]['smallWaveSize'];},'water_softlight_fact':function _0x14e496(){var _0x3f462f=_0x5a21;return _0x5c3395[_0x3f462f(0x14b)][_0x3f462f(0x13a)];},'water_glossylight_fact':function _0x2f039a(){return _0x5c3395['style']['waterGlossyLightFactor'];},'particle_amount':function _0x2ae4dd(){var _0x28171f=_0x5a21;return _0x5c3395[_0x28171f(0x14b)]['particleAmount'];},'WATER_LEVEL':function _0x395e1c(){var _0x4074b3=_0x5a21;return normalizeWaterLevel(_0x5c3395['waterHeight'],_0x5c3395[_0x4074b3(0x17a)],_0x5c3395[_0x4074b3(0x188)]);},'flow_direction':function _0x1af083(){var _0x320999=_0x5a21;return _0x5c3395[_0x320999(0x171)];},'flow_speed':function _0x4be70d(){return toFiniteNumber(_0x5c3395['style']['flowSpeed'],0.12);},'flow_strength':function _0x32c167(){var _0x596637=_0x5a21;return toFiniteNumber(_0x5c3395[_0x596637(0x14b)][_0x596637(0xd8)],0.6);},'flow_wave_scale':function _0x22d250(){var _0x5eebbb=_0x5a21;return toFiniteNumber(_0x5c3395['style'][_0x5eebbb(0x11e)],0x1);},'flow_wave_strength':function _0x47c230(){var _0xb525c0=_0x5a21;return toFiniteNumber(_0x5c3395['style'][_0xb525c0(0xc7)],0.8);},'foam_amount':function _0x48dd09(){var _0x27c3fb=_0x5a21;return toFiniteNumber(_0x5c3395[_0x27c3fb(0x14b)][_0x27c3fb(0x195)],0.6);},'foam_contrast':function _0x2f5f68(){return toFiniteNumber(_0x5c3395['style']['foamContrast'],1.2);},'foam_coverage':function _0xa4a05(){return toFiniteNumber(_0x5c3395['style']['foamCoverage'],0.35);},'alpha':function _0x541df8(){return toFiniteNumber(_0x5c3395['style']['alpha'],0.9);},'water_color':function _0xc99bfa(){var _0x10ceaf=_0x5a21;return normalizeShaderColor(_0x5c3395[_0x10ceaf(0x14b)]['waterColor']);},'deep_water_color':function _0x1e995c(){var _0xa51928=_0x5a21;return normalizeShaderColor(_0x5c3395[_0xa51928(0x14b)]['deepWaterColor']);},'water_specular_color':function _0x411e31(){var _0x2d5075=_0x5a21;return normalizeShaderColor(_0x5c3395[_0x2d5075(0x14b)]['specularColor']);}};}},{'key':'_loadTextureSources','value':function _0x23e4bd(){var _0x279426=_0x336f79,_0x5b9af4=this;if(this[_0x279426(0x14f)])return;this['_textureLoadPromise']=Promise['all']([resolveTextureSource(this['_heightMapSource']),resolveTextureSource(this['_noiseSource'])])['then'](function(_0x143551){var _0x38da6f=_slicedToArray(_0x143551,0x2),_0x28484c=_0x38da6f[0x0],_0x2046ae=_0x38da6f[0x1];_0x5b9af4['_heightMap']=_0x28484c,_0x5b9af4['_noise']=_0x2046ae;})['catch'](function(_0x1dc7f2){_0x578d1a['error'](formatError(_0x1dc7f2));});}},{'key':'_destroyCommand','value':function _0x4fb568(){var _0x4a8b39=_0x336f79;this['_vertexArrays']['forEach'](function(_0x3f3708){var _0x359e60=_0x5a21;_0x3f3708&&!_0x3f3708[_0x359e60(0x168)]()&&_0x3f3708['destroy']();}),this['_shaderProgram']&&(!this['_shaderProgram'][_0x4a8b39(0x168)]||!this[_0x4a8b39(0xdb)]['isDestroyed']())&&this['_shaderProgram']['destroy'](),this[_0x4a8b39(0x107)]&&!this[_0x4a8b39(0x107)][_0x4a8b39(0x168)]()&&this[_0x4a8b39(0x107)][_0x4a8b39(0x101)](),this['_noiseTexture']&&!this['_noiseTexture'][_0x4a8b39(0x168)]()&&this['_noiseTexture']['destroy'](),this[_0x4a8b39(0x16c)]&&CesiumRuntime[_0x4a8b39(0x15a)][_0x4a8b39(0x15d)](this['_renderState']),this['_vertexArrays']=[],this[_0x4a8b39(0xdb)]=null,this['_heightMapTexture']=null,this[_0x4a8b39(0x196)]=null,this['_renderState']=null,this['_drawCommands']=[],this[_0x4a8b39(0x14f)]=null;}}]),_0x492184;}());export function createTexture(_0x37fa10,_0x37e3fe){var _0x20de37=_0x4a8294,_0x5466d4=arguments['length']>0x2&&arguments[0x2]!==undefined?arguments[0x2]:CesiumRuntime[_0x20de37(0xf0)]['REPEAT'],_0x11d7a8=getTextureSize(_0x37e3fe);return new CesiumRuntime['Texture']({'context':_0x37fa10,'width':_0x11d7a8['width'],'height':_0x11d7a8[_0x20de37(0xb8)],'pixelFormat':_0x3daa1d['PixelFormat']['RGBA'],'pixelDatatype':_0x3daa1d['PixelDatatype'][_0x20de37(0x150)],'flipY':!![],'sampler':new CesiumRuntime[(_0x20de37(0xb5))]({'minificationFilter':_0x3daa1d[_0x20de37(0x154)]['LINEAR'],'magnificationFilter':_0x3daa1d[_0x20de37(0x158)]['LINEAR'],'wrapS':_0x5466d4,'wrapT':_0x5466d4}),'source':_0x37e3fe});}export function getTextureSize(_0x50c8e0){var _0x5a7b3e=_0x4a8294,_0x1151ef=_0x50c8e0;return{'width':_0x1151ef[_0x5a7b3e(0x192)]||_0x1151ef[_0x5a7b3e(0xf7)]||DEFAULT_NOISE_SIZE,'height':_0x1151ef[_0x5a7b3e(0xb8)]||_0x1151ef['videoHeight']||DEFAULT_NOISE_SIZE};}export function resolveTextureSource(_0x2ef610){var _0x1a745b=_0x4a8294;if(typeof _0x2ef610!=='string')return Promise[_0x1a745b(0x197)](_0x2ef610);return loadImage(_0x2ef610);}export function loadImage(_0x281240){return new Promise(function(_0x2d7174,_0xe54126){var _0x180482=_0x5a21,_0x437d07=new Image();_0x437d07['crossOrigin']=_0x180482(0x127),_0x437d07[_0x180482(0x111)]=function(){_0x2d7174(_0x437d07);},_0x437d07[_0x180482(0xe2)]=function(){var _0x5e550e=_0x180482;_0xe54126(new Error(_0x5e550e(0xb2)[_0x5e550e(0x15e)](_0x281240)));},_0x437d07[_0x180482(0x140)]=_0x281240;});}export function getTerrainHeightMap(_0x226278,_0x573d82,_0x2c4982){var _0x452ba3=_0x4a8294;return _getTerrainHeightMap[_0x452ba3(0x15f)](this,arguments);}function _getTerrainHeightMap(){var _0x1f440b=_0x4a8294;return _getTerrainHeightMap=_asyncToGenerator(_regeneratorRuntime()['mark'](function _0x14f4f3(_0x32082c,_0x43ac20,_0x577de2){var _0x14261b=_0x5a21,_0x229f5d,_0x3bca48,_0x54a399,_0xd14b2a,_0x3393a8,_0x17e864,_0x3ff5c5,_0x5f4dbd,_0x4f9b71,_0x3b94ac,_0x2da9b2,_0x5615c1,_0x422370,_0x3b93a6;return _regeneratorRuntime()[_0x14261b(0xd5)](function _0x430d42(_0x291cf2){var _0x31ee20=_0x14261b;while(0x1)switch(_0x291cf2['prev']=_0x291cf2['next']){case 0x0:_0x3bca48=(_0x32082c===null||_0x32082c===void 0x0?void 0x0:_0x32082c['terrainProvider'])||(_0x32082c===null||_0x32082c===void 0x0||(_0x229f5d=_0x32082c['scene'])===null||_0x229f5d===void 0x0?void 0x0:_0x229f5d['terrainProvider']);if(!(!_0x3bca48||isEllipsoidTerrainProvider(_0x3bca48))){_0x291cf2[_0x31ee20(0xbf)]=0x3;break;}throw new Error('SampledTerrainRiver未检测到有效地形,无法生成地形高度图');case 0x3:_0x54a399=normalizeTerrainTextureSize(_0x577de2),_0xd14b2a=getTerrainHeightMapCacheKey(_0x43ac20,_0x54a399),_0x3393a8=getCachedTerrainHeightMap(_0x3bca48,_0xd14b2a);if(!_0x3393a8){_0x291cf2['next']=0x8;break;}return _0x291cf2['abrupt'](_0x31ee20(0x14e),_0x3393a8);case 0x8:_0x291cf2['next']=0xa;return _0x578d1a[_0x31ee20(0x155)](_0x32082c);case 0xa:_0x17e864=_0x54a399*_0x54a399,_0x3ff5c5=new Float32Array(_0x17e864),_0x5f4dbd=Infinity,_0x4f9b71=-Infinity,_0x3b94ac=0x0;case 0xf:if(!(_0x3b94ac<_0x17e864)){_0x291cf2[_0x31ee20(0xbf)]=0x19;break;}_0x2da9b2=Math['min'](_0x3b94ac+TERRAIN_SAMPLE_BATCH_SIZE,_0x17e864),_0x5615c1=createTerrainSampleBatch(_0x43ac20,_0x54a399,_0x3b94ac,_0x2da9b2),_0x291cf2['next']=0x14;return _0x3daa1d[_0x31ee20(0x164)](_0x3bca48,_0x5615c1);case 0x14:_0x422370=_0x291cf2['sent'],_0x422370['forEach'](function(_0x3da419,_0x203ee5){var _0x5d78e5=_0x31ee20,_0x2de5d0=_0x3b94ac+_0x203ee5,_0x27eda4=toFiniteNumber(_0x3da419===null||_0x3da419===void 0x0?void 0x0:_0x3da419[_0x5d78e5(0xb8)],0x0);_0x3ff5c5[_0x2de5d0]=_0x27eda4,_0x5f4dbd=Math['min'](_0x5f4dbd,_0x27eda4),_0x4f9b71=Math['max'](_0x4f9b71,_0x27eda4);}),_0x3b94ac=_0x2da9b2,_0x291cf2['next']=0xf;break;case 0x19:if(!(!Number[_0x31ee20(0xed)](_0x5f4dbd)||!Number[_0x31ee20(0xed)](_0x4f9b71))){_0x291cf2[_0x31ee20(0xbf)]=0x1b;break;}throw new Error('SampledTerrainRiver地形高程采样结果为空');case 0x1b:_0x3b93a6={'heights':_0x3ff5c5,'minHeight':_0x5f4dbd,'maxHeight':_0x4f9b71,'textureSize':_0x54a399},setCachedTerrainHeightMap(_0x3bca48,_0xd14b2a,_0x3b93a6);return _0x291cf2['abrupt'](_0x31ee20(0x14e),_0x3b93a6);case 0x1e:case'end':return _0x291cf2[_0x31ee20(0x115)]();}},_0x14f4f3);})),_getTerrainHeightMap[_0x1f440b(0x15f)](this,arguments);}function createTerrainSampleBatch(_0x594d55,_0x37bb57,_0x2f380e,_0x612c70){var _0x2dd9ca=_0x4a8294,_0x488416=_slicedToArray(_0x594d55,0x4),_0x375bda=_0x488416[0x0],_0x42f470=_0x488416[0x1],_0x1a525d=_0x488416[0x2],_0x2cb3c5=_0x488416[0x3],_0xd04d8e=_0x1a525d-_0x375bda,_0x4d8079=_0x2cb3c5-_0x42f470,_0x762004=Math[_0x2dd9ca(0x11b)](_0x37bb57-0x1,0x1),_0xbde196=[];for(var _0x3e123f=_0x2f380e;_0x3e123f<_0x612c70;_0x3e123f++){var _0x5014ea=_0x3e123f%_0x37bb57,_0x19299b=Math['floor'](_0x3e123f/_0x37bb57),_0xec904a=_0x375bda+_0xd04d8e*_0x5014ea/_0x762004,_0x13a8f3=_0x2cb3c5-_0x4d8079*_0x19299b/_0x762004;_0xbde196[_0x2dd9ca(0x18c)](_0x3daa1d['Cartographic'][_0x2dd9ca(0xb3)](_0xec904a,_0x13a8f3));}return _0xbde196;}export function encodeTerrainHeightMap(_0x38c280,_0x4fe23b,_0x20ba54,_0xc0dc4c){var _0x3c11f4=_0x4a8294,_0x53e88f=_0x38c280[_0x3c11f4(0xc1)],_0x3d1262=_0x38c280[_0x3c11f4(0x142)],_0x46e72a=_0x20ba54-_0x4fe23b||0x1,_0x36f464=new Uint8ClampedArray(_0x3d1262*_0x3d1262*0x4);for(var _0xe4cb47=0x0;_0xe4cb47<_0x53e88f[_0x3c11f4(0x160)];_0xe4cb47++){var _0x27c504=_0x3daa1d['Math'][_0x3c11f4(0x12a)]((_0x53e88f[_0xe4cb47]+_0xc0dc4c-_0x4fe23b)/_0x46e72a,0x0,0x1),_0x4fb3d4=Math[_0x3c11f4(0xe4)](_0x27c504*0xff),_0x335720=_0xe4cb47*0x4;_0x36f464[_0x335720]=_0x4fb3d4,_0x36f464[_0x335720+0x1]=_0x4fb3d4,_0x36f464[_0x335720+0x2]=_0x4fb3d4,_0x36f464[_0x335720+0x3]=0xff;}return new ImageData(_0x36f464,_0x3d1262,_0x3d1262);}function getCachedTerrainHeightMap(_0x58478c,_0xa280f8){var _0x216cd9;return(_0x216cd9=terrainHeightMapCache['get'](_0x58478c))===null||_0x216cd9===void 0x0?void 0x0:_0x216cd9['get'](_0xa280f8);}function setCachedTerrainHeightMap(_0x4e69b0,_0x401275,_0x499895){var _0x3700b6=_0x4a8294,_0x356386=terrainHeightMapCache[_0x3700b6(0x17f)](_0x4e69b0);!_0x356386&&(_0x356386=new Map(),terrainHeightMapCache[_0x3700b6(0xd4)](_0x4e69b0,_0x356386));if(_0x356386['size']>=TERRAIN_HEIGHT_MAP_CACHE_LIMIT){var _0x56aa3e=_0x356386['keys']()['next']()[_0x3700b6(0x120)];_0x56aa3e&&_0x356386['delete'](_0x56aa3e);}_0x356386[_0x3700b6(0xd4)](_0x401275,_0x499895);}export function getTerrainHeightMapCacheKey(_0x37e992,_0x1e6b92){var _0x29d540=_0x4a8294;return''[_0x29d540(0x15e)](_0x37e992[_0x29d540(0xbd)](function(_0x2874f4){return _0x2874f4['toFixed'](0x8);})[_0x29d540(0x159)](','),':')[_0x29d540(0x15e)](_0x1e6b92);}function isEllipsoidTerrainProvider(_0x1790e1){var _0x4062b2=_0x4a8294,_0x50b403;return _0x1790e1 instanceof _0x3daa1d[_0x4062b2(0xda)]||(_0x1790e1===null||_0x1790e1===void 0x0||(_0x50b403=_0x1790e1['constructor'])===null||_0x50b403===void 0x0?void 0x0:_0x50b403[_0x4062b2(0x156)])===_0x4062b2(0xda);}export function normalizeTerrainTextureSize(_0x76ae07){var _0xec9080=_0x4a8294,_0x4dbefa=_0x3daa1d[_0xec9080(0xec)][_0xec9080(0x12a)](Math['round'](Number(_0x76ae07)||DEFAULT_TERRAIN_TEXTURE_SIZE),MIN_TERRAIN_TEXTURE_SIZE,MAX_TERRAIN_TEXTURE_SIZE),_0x3d491c=[0x40,0x80,0x100,0x200];return _0x3d491c[_0xec9080(0x18a)](function(_0x1a28d6,_0x1b3820){var _0x30adb4=_0xec9080;return Math[_0x30adb4(0xc2)](_0x1b3820-_0x4dbefa)<Math[_0x30adb4(0xc2)](_0x1a28d6-_0x4dbefa)?_0x1b3820:_0x1a28d6;});}export function toFiniteNumber(_0x1d1f31,_0x3d40ee){var _0x568a2b=_0x4a8294,_0x4bbba8=Number(_0x1d1f31);return Number[_0x568a2b(0xed)](_0x4bbba8)?_0x4bbba8:_0x3d40ee;}export function expandBounds(_0x428498,_0x1f9246){var _0x2a04db=_0x4a8294,_0x18e152=_slicedToArray(_0x428498,0x4),_0x2417fc=_0x18e152[0x0],_0x30caab=_0x18e152[0x1],_0x573edb=_0x18e152[0x2],_0x32ec88=_0x18e152[0x3],_0x3804f4=(_0x2417fc+_0x573edb)*0.5,_0x577738=(_0x30caab+_0x32ec88)*0.5,_0x319edf=(_0x573edb-_0x2417fc)*Math[_0x2a04db(0x11b)](_0x1f9246,0x1)*0.5,_0x5e397e=(_0x32ec88-_0x30caab)*Math['max'](_0x1f9246,0x1)*0.5;return[_0x3804f4-_0x319edf,_0x577738-_0x5e397e,_0x3804f4+_0x319edf,_0x577738+_0x5e397e];}export function getPolygonsBounds(_0x3c744e){var _0x2960f2=_0x4a8294,_0x26b144=[Infinity,Infinity,-Infinity,-Infinity],_0x5dc247=![];_0x3c744e[_0x2960f2(0x12d)](function(_0x1b48ea){var _0x31faf4=_0x2960f2;_0x1b48ea[_0x31faf4(0x17c)][_0x31faf4(0x12d)](function(_0xea2400){var _0xc3f837=_0x31faf4;_0xea2400[_0xc3f837(0x12d)](function(_0x5f5c01){var _0xf86c29=_0xc3f837,_0x885859=_slicedToArray(_0x5f5c01,0x2),_0x5550d7=_0x885859[0x0],_0x399a0a=_0x885859[0x1];_0x5dc247=!![],_0x26b144[0x0]=Math[_0xf86c29(0xdd)](_0x26b144[0x0],_0x5550d7),_0x26b144[0x1]=Math[_0xf86c29(0xdd)](_0x26b144[0x1],_0x399a0a),_0x26b144[0x2]=Math['max'](_0x26b144[0x2],_0x5550d7),_0x26b144[0x3]=Math[_0xf86c29(0x11b)](_0x26b144[0x3],_0x399a0a);});});});if(!_0x5dc247)return undefined;var _0x4e40f2=_0x26b144[0x0],_0xf56ae9=_0x26b144[0x1],_0x4a0ffa=_0x26b144[0x2],_0x66a472=_0x26b144[0x3];if(_0x4e40f2>=_0x4a0ffa||_0xf56ae9>=_0x66a472)return undefined;return[_0x4e40f2,_0xf56ae9,_0x4a0ffa,_0x66a472];}export function collectGeoJsonLineCoordinates(_0x5f3209){var _0x245682=[],_0x4cac36=function _0x2b6c50(_0x870a0a){var _0x27f766=_0x5a21,_0x188049=normalizeLineCoordinates(_0x870a0a);_0x188049[_0x27f766(0x160)]>=0x2&&_0x245682[_0x27f766(0x18c)](_0x188049);},_0x37d557=function _0x43bdd4(_0xe1a276){var _0x502733=_0x5a21;if(!_0xe1a276||_typeof(_0xe1a276)!==_0x502733(0xb1))return;if(_0xe1a276[_0x502733(0x19a)]===_0x502733(0x185)){_0x4cac36(_0xe1a276['coordinates']);return;}if(_0xe1a276[_0x502733(0x19a)]==='MultiLineString'&&Array[_0x502733(0xb6)](_0xe1a276[_0x502733(0xbc)])){_0xe1a276[_0x502733(0xbc)]['forEach'](_0x4cac36);return;}_0xe1a276[_0x502733(0x19a)]==='GeometryCollection'&&Array[_0x502733(0xb6)](_0xe1a276['geometries'])&&_0xe1a276[_0x502733(0x175)]['forEach'](_0x43bdd4);},_0x53a267=function _0x4cf920(_0x18f113){var _0x17d03c=_0x5a21;if(!_0x18f113||_typeof(_0x18f113)!=='object')return;if(_0x18f113[_0x17d03c(0x19a)]==='FeatureCollection'&&Array[_0x17d03c(0xb6)](_0x18f113['features'])){_0x18f113['features']['forEach'](_0x4cf920);return;}if(_0x18f113['type']==='Feature'){_0x37d557(_0x18f113[_0x17d03c(0x122)]);return;}_0x37d557(_0x18f113);};return _0x53a267(_0x5f3209),_0x245682[0x0]||[];}function normalizeLineCoordinates(_0xa03eeb){var _0x3fe509=_0x4a8294;if(!Array['isArray'](_0xa03eeb))return[];return _0xa03eeb['map'](normalizeCoordinate)[_0x3fe509(0xe8)](function(_0x326bdf){return Boolean(_0x326bdf);});}export function collectGeoJsonPolygons(_0x179bff){var _0xa250c7=[],_0x16d6e7=function _0x21dbae(_0x3bf47b){var _0x6a96c6=_0x5a21,_0x367547=normalizePolygonCoordinates(_0x3bf47b);_0x367547[_0x6a96c6(0x160)]>0x0&&_0xa250c7['push']({'rings':_0x367547});},_0x4d526a=function _0x54bf0f(_0x24af62){var _0x5275be=_0x5a21;if(!_0x24af62||_typeof(_0x24af62)!=='object')return;if(_0x24af62[_0x5275be(0x19a)]===_0x5275be(0x183)){_0x16d6e7(_0x24af62[_0x5275be(0xbc)]);return;}if(_0x24af62[_0x5275be(0x19a)]==='MultiPolygon'&&Array['isArray'](_0x24af62[_0x5275be(0xbc)])){_0x24af62['coordinates']['forEach'](_0x16d6e7);return;}_0x24af62['type']===_0x5275be(0x10b)&&Array[_0x5275be(0xb6)](_0x24af62[_0x5275be(0x175)])&&_0x24af62[_0x5275be(0x175)][_0x5275be(0x12d)](_0x54bf0f);},_0x4323ce=function _0x5557cc(_0x13325e){var _0x48dcd3=_0x5a21;if(!_0x13325e||_typeof(_0x13325e)!=='object')return;if(_0x13325e['type']===_0x48dcd3(0x18e)&&Array[_0x48dcd3(0xb6)](_0x13325e['features'])){_0x13325e[_0x48dcd3(0xe1)][_0x48dcd3(0x12d)](_0x5557cc);return;}if(_0x13325e['type']===_0x48dcd3(0x184)){_0x4d526a(_0x13325e['geometry']);return;}_0x4d526a(_0x13325e);};return _0x4323ce(_0x179bff),_0xa250c7;}function normalizePolygonCoordinates(_0x1932ea){var _0x23dc4b=_0x4a8294;if(!Array['isArray'](_0x1932ea)||_0x1932ea['length']<0x1)return[];var _0x5b76e8=normalizeLinearRing(_0x1932ea[0x0]);if(_0x5b76e8['length']<0x3)return[];var _0x2c58c8=_0x1932ea[_0x23dc4b(0x165)](0x1)[_0x23dc4b(0xbd)](normalizeLinearRing)[_0x23dc4b(0xe8)](function(_0x4426f4){return _0x4426f4['length']>=0x3;});return[_0x5b76e8]['concat'](_toConsumableArray(_0x2c58c8));}function normalizeLinearRing(_0x161631){var _0x54e0dd=_0x4a8294;if(!Array[_0x54e0dd(0xb6)](_0x161631))return[];return _0x161631['reduce'](function(_0x52cb71,_0x1fc7ff){var _0xfe9059=_0x54e0dd,_0xde105c=normalizeCoordinate(_0x1fc7ff);return _0xde105c&&_0x52cb71[_0xfe9059(0x18c)](_0xde105c),_0x52cb71;},[]);}function normalizeCoordinate(_0x3380e7){var _0x3e558f=_0x4a8294;if(!Array[_0x3e558f(0xb6)](_0x3380e7)||_0x3380e7['length']<0x2)return null;var _0x2f104d=Number(_0x3380e7[0x0]),_0x5205c5=Number(_0x3380e7[0x1]);if(!Number['isFinite'](_0x2f104d)||!Number['isFinite'](_0x5205c5))return null;return[_0x2f104d,_0x5205c5];}export function createPolygonGeometry(_0x5c80e3,_0x23f345,_0x47aa91,_0x47fb8b){var _0x11f48b=_0x4a8294,_0x44ac57=toCartesianRing(_0x5c80e3[_0x11f48b(0x17c)][0x0]),_0x494f97=_0x5c80e3[_0x11f48b(0x17c)]['slice'](0x1)[_0x11f48b(0xbd)](toCartesianRing);try{var _0x3845fd=new _0x3daa1d['PolygonGeometry']({'polygonHierarchy':_0x578d1a['buildPolygonHierarchy'](_0x44ac57,_0x494f97),'vertexFormat':_0x3daa1d[_0x11f48b(0x11f)][_0x11f48b(0xca)],'granularity':_0x3daa1d['Math']['toRadians'](clampPolygonGranularity(_0x23f345,_0x47fb8b)),'height':_0x47aa91,'perPositionHeight':![]}),_0x508a90=_0x3daa1d['PolygonGeometry']['createGeometry'](_0x3845fd);return _0x508a90&&setGeometryAttributesByBounds(_0x508a90,_0x23f345),_0x508a90;}catch(_0x1d774d){return _0x578d1a[_0x11f48b(0x12c)](formatError(_0x1d774d)),null;}}function toCartesianRing(_0x1c6004){var _0x25ac53=_0x4a8294;return _0x1c6004[_0x25ac53(0xbd)](function(_0x19b9c7){var _0x5f206e=_0x25ac53,_0x436097=_slicedToArray(_0x19b9c7,0x2),_0x19ab4a=_0x436097[0x0],_0x3ad571=_0x436097[0x1];return _0x3daa1d['Cartesian3'][_0x5f206e(0xb3)](_0x19ab4a,_0x3ad571);});}function clampPolygonGranularity(_0x532467,_0x5e0c08){var _0x21d68c=_0x4a8294,_0x5073b3=_slicedToArray(_0x532467,0x4),_0x43d44e=_0x5073b3[0x0],_0x3cb44c=_0x5073b3[0x1],_0x4934f5=_0x5073b3[0x2],_0x52f8d5=_0x5073b3[0x3],_0x1681a1=_0x4934f5-_0x43d44e,_0x4c91fc=_0x52f8d5-_0x3cb44c,_0x2a90e3=Number[_0x21d68c(0xed)](_0x5e0c08)&&_0x5e0c08>0x0?_0x5e0c08:0.0001,_0x36d4f5=Math[_0x21d68c(0x11b)](_0x1681a1,_0x4c91fc)/MAX_POLYGON_GRANULARITY_SEGMENTS;return Math['max'](_0x2a90e3,_0x36d4f5);}function setGeometryAttributesByBounds(_0x4092e2,_0x4174b4){var _0x2ac47f=_0x4a8294,_0x116946,_0x145bca=(_0x116946=_0x4092e2['attributes'][_0x2ac47f(0xee)])===null||_0x116946===void 0x0?void 0x0:_0x116946['values'];if(!_0x145bca)return;var _0xc79e27=_slicedToArray(_0x4174b4,0x4),_0x4d2299=_0xc79e27[0x0],_0x611fd0=_0xc79e27[0x1],_0x28918d=_0xc79e27[0x2],_0x46a2e1=_0xc79e27[0x3],_0x3cf2c8=_0x28918d-_0x4d2299,_0x1481e2=_0x46a2e1-_0x611fd0,_0x10dd6a=new Float32Array(_0x145bca[_0x2ac47f(0x160)]/0x3*0x2);for(var _0xb19b05=0x0;_0xb19b05<_0x145bca['length']/0x3;_0xb19b05++){var _0x5683a5=new _0x3daa1d[(_0x2ac47f(0xef))](_0x145bca[_0xb19b05*0x3],_0x145bca[_0xb19b05*0x3+0x1],_0x145bca[_0xb19b05*0x3+0x2]),_0x83ad38=_0x3daa1d[_0x2ac47f(0x12f)]['fromCartesian'](_0x5683a5);if(!_0x83ad38)continue;var _0x2cf9c6=_0x3daa1d['Math']['toDegrees'](_0x83ad38['longitude']),_0x3f13ab=_0x3daa1d['Math']['toDegrees'](_0x83ad38['latitude']),_0x15847b=[_0x3daa1d['Math']['clamp']((_0x2cf9c6-_0x4d2299)/_0x3cf2c8,0x0,0x1),_0x3daa1d[_0x2ac47f(0xec)][_0x2ac47f(0x12a)]((_0x3f13ab-_0x611fd0)/_0x1481e2,0x0,0x1)];_0x10dd6a[_0xb19b05*0x2]=_0x15847b[0x0],_0x10dd6a[_0xb19b05*0x2+0x1]=_0x15847b[0x1];}_0x4092e2['attributes']['st']&&(_0x4092e2[_0x2ac47f(0x167)]['st'][_0x2ac47f(0xfb)]=_0x10dd6a);}export function normalizeShaderColor(_0x140db7){var _0x59f53d=_0x4a8294;if(typeof _0x140db7!==_0x59f53d(0x100))return new _0x3daa1d[(_0x59f53d(0xef))](0x0,0x0,0x0);try{var _0x440383=_0x578d1a['colorString'](_0x140db7);if(_0x440383)return new _0x3daa1d['Cartesian3'](Number(_0x440383['red'])||0x0,Number(_0x440383[_0x59f53d(0x148)])||0x0,Number(_0x440383['blue'])||0x0);}catch(_0x5e2777){_0x578d1a[_0x59f53d(0x12c)](formatError(_0x5e2777));}return new _0x3daa1d[(_0x59f53d(0xef))](0x0,0x0,0x0);}export function formatError(_0x2b20ec){var _0x437c0c=_0x4a8294;return _0x2b20ec instanceof Error?_0x2b20ec[_0x437c0c(0xcd)]:String(_0x2b20ec);}export var SAMPLED_TERRAIN_RIVER_COMMON_SHADER='\x0a\x20\x20uniform\x20sampler2D\x20heightMap;\x0a\x20\x20uniform\x20float\x20heightScale;\x0a\x20\x20uniform\x20float\x20maxElevation;\x0a\x20\x20uniform\x20float\x20minElevation;\x0a\x20\x20uniform\x20sampler2D\x20iChannel0;\x0a\x20\x20uniform\x20float\x20iTime;\x0a\x20\x20uniform\x20bool\x20water_body_mode;\x0a\x20\x20uniform\x20bool\x20has_water_height;\x0a\x20\x20uniform\x20float\x20water_height;\x0a\x0a\x20\x20uniform\x20float\x20large_waveheight;\x0a\x20\x20uniform\x20float\x20large_wavesize;\x0a\x20\x20uniform\x20float\x20small_waveheight;\x0a\x20\x20uniform\x20float\x20small_wavesize;\x0a\x20\x20uniform\x20float\x20water_softlight_fact;\x0a\x20\x20uniform\x20float\x20water_glossylight_fact;\x0a\x20\x20uniform\x20float\x20particle_amount;\x0a\x20\x20uniform\x20float\x20WATER_LEVEL;\x0a\x20\x20uniform\x20vec2\x20flow_direction;\x0a\x20\x20uniform\x20float\x20flow_speed;\x0a\x20\x20uniform\x20float\x20flow_strength;\x0a\x20\x20uniform\x20float\x20flow_wave_scale;\x0a\x20\x20uniform\x20float\x20flow_wave_strength;\x0a\x20\x20uniform\x20float\x20foam_amount;\x0a\x20\x20uniform\x20float\x20foam_contrast;\x0a\x20\x20uniform\x20float\x20foam_coverage;\x0a\x20\x20uniform\x20float\x20alpha;\x0a\x20\x20uniform\x20vec3\x20water_color;\x0a\x20\x20uniform\x20vec3\x20deep_water_color;\x0a\x20\x20uniform\x20vec3\x20water_specular_color;\x0a\x20\x20vec3\x20light;\x0a\x0a\x20\x20float\x20hash(float\x20n)\x20{\x0a\x20\x20\x20\x20return\x20fract(sin(n)\x20*\x2043758.5453123);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20noise1(in\x20vec2\x20x)\x20{\x0a\x20\x20\x20\x20vec2\x20p\x20=\x20floor(x);\x0a\x20\x20\x20\x20vec2\x20f\x20=\x20smoothstep(0.0,\x201.0,\x20fract(x));\x0a\x20\x20\x20\x20float\x20n\x20=\x20p.x\x20+\x20p.y\x20*\x2057.0;\x0a\x20\x20\x20\x20return\x20mix(mix(hash(n\x20+\x200.0),\x20hash(n\x20+\x201.0),\x20f.x),\x20mix(hash(n\x20+\x2057.0),\x20hash(n\x20+\x2058.0),\x20f.x),\x20f.y);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20noise(vec2\x20p)\x20{\x0a\x20\x20\x20\x20return\x20textureLod(iChannel0,\x20p\x20*\x20vec2(1.0\x20/\x20256.0),\x200.0).x;\x0a\x20\x20}\x0a\x0a\x20\x20float\x20height_map(vec2\x20p)\x20{\x0a\x20\x20\x20\x20float\x20f\x20=\x20texture(heightMap,\x20p).r;\x0a\x20\x20\x20\x20return\x20clamp(f,\x200.0,\x2010.0);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20normalized_water_height()\x20{\x0a\x20\x20\x20\x20if\x20(has_water_height)\x20{\x0a\x20\x20\x20\x20\x20\x20return\x20clamp((water_height\x20-\x20minElevation)\x20/\x20max(maxElevation\x20-\x20minElevation,\x200.001),\x200.0,\x2010.0);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20return\x20WATER_LEVEL;\x0a\x20\x20}\x0a\x0a\x20\x20const\x20mat2\x20m\x20=\x20mat2(0.72,\x20-1.60,\x201.60,\x200.72);\x0a\x20\x20const\x20float\x20FLOW_ANIMATION_SPEED_SCALE\x20=\x201.2;\x0a\x0a\x20\x20vec2\x20flow_dir()\x20{\x0a\x20\x20\x20\x20float\x20len\x20=\x20length(flow_direction);\x0a\x20\x20\x20\x20if\x20(len\x20<\x200.0001)\x20{\x0a\x20\x20\x20\x20\x20\x20return\x20vec2(1.0,\x200.0);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20return\x20flow_direction\x20/\x20len;\x0a\x20\x20}\x0a\x0a\x20\x20vec2\x20flow_space(vec2\x20p)\x20{\x0a\x20\x20\x20\x20vec2\x20dir\x20=\x20flow_dir();\x0a\x20\x20\x20\x20vec2\x20side\x20=\x20vec2(-dir.y,\x20dir.x);\x0a\x20\x20\x20\x20return\x20vec2(dot(p,\x20dir),\x20dot(p,\x20side));\x0a\x20\x20}\x0a\x0a\x20\x20float\x20flow_offset(float\x20speed_multiplier)\x20{\x0a\x20\x20\x20\x20return\x20iTime\x20*\x20max(flow_speed,\x200.0)\x20*\x20max(flow_strength,\x200.0)\x20*\x20FLOW_ANIMATION_SPEED_SCALE\x20*\x20speed_multiplier;\x0a\x20\x20}\x0a\x0a\x20\x20vec2\x20flow_uv(vec2\x20p,\x20float\x20scale,\x20float\x20speed_multiplier)\x20{\x0a\x20\x20\x20\x20vec2\x20uv\x20=\x20flow_space(p);\x0a\x20\x20\x20\x20float\x20safeScale\x20=\x20max(scale,\x200.001);\x0a\x20\x20\x20\x20return\x20vec2(uv.x\x20*\x20safeScale\x20-\x20flow_offset(speed_multiplier),\x20uv.y\x20*\x20safeScale);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20water_map(vec2\x20p,\x20float\x20height)\x20{\x0a\x20\x20\x20\x20vec2\x20p2\x20=\x20flow_uv(p,\x20large_wavesize\x20*\x20flow_wave_scale,\x200.22);\x0a\x0a\x20\x20\x20\x20float\x20f\x20=\x200.6000\x20*\x20noise(p2);\x0a\x20\x20\x20\x20f\x20+=\x200.2500\x20*\x20noise(p2\x20*\x20m);\x0a\x20\x20\x20\x20f\x20+=\x200.1666\x20*\x20noise(p2\x20*\x20m\x20*\x20m);\x0a\x20\x20\x20\x20float\x20wave\x20=\x20sin(p2.x\x20*\x201.244)\x20*\x20large_waveheight\x20*\x20flow_wave_strength\x20*\x20f\x20*\x20height\x20*\x20height;\x0a\x0a\x20\x20\x20\x20p\x20=\x20flow_uv(p,\x20small_wavesize\x20*\x20flow_wave_scale,\x200.24);\x0a\x20\x20\x20\x20f\x20=\x200.0;\x0a\x20\x20\x20\x20float\x20amp\x20=\x201.0;\x0a\x20\x20\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x209;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20p\x20=\x20m\x20*\x20p\x20*\x200.947;\x0a\x20\x20\x20\x20\x20\x20f\x20-=\x20amp\x20*\x20abs(sin((noise(p)\x20-\x200.5)\x20*\x202.0));\x0a\x20\x20\x20\x20\x20\x20amp\x20=\x20amp\x20*\x200.59;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20return\x20wave\x20+\x20f\x20*\x20small_waveheight;\x0a\x20\x20}\x0a\x0a\x20\x20float\x20nautic(vec2\x20p)\x20{\x0a\x20\x20\x20\x20p\x20=\x20flow_uv(p,\x2018.0,\x200.26);\x0a\x20\x20\x20\x20float\x20f\x20=\x200.0;\x0a\x20\x20\x20\x20float\x20amp\x20=\x201.0;\x0a\x20\x20\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x203;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20p\x20=\x20m\x20*\x20p\x20*\x201.2;\x0a\x20\x20\x20\x20\x20\x20f\x20+=\x20amp\x20*\x20abs(smoothstep(0.0,\x201.0,\x20noise(p))\x20-\x200.5);\x0a\x20\x20\x20\x20\x20\x20amp\x20=\x20amp\x20*\x200.5;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20return\x20pow(1.0\x20-\x20f,\x205.0);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20particles(vec2\x20p)\x20{\x0a\x20\x20\x20\x20p\x20=\x20flow_uv(p,\x20200.0,\x200.28);\x0a\x20\x20\x20\x20float\x20f\x20=\x200.0;\x0a\x20\x20\x20\x20float\x20amp\x20=\x201.0;\x0a\x20\x20\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x203;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20p\x20=\x20m\x20*\x20p\x20*\x201.2;\x0a\x20\x20\x20\x20\x20\x20f\x20+=\x20amp\x20*\x20noise(p);\x0a\x20\x20\x20\x20\x20\x20amp\x20=\x20amp\x20*\x200.5;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20foam\x20=\x20max(0.0,\x20(f\x20-\x20foam_coverage)\x20/\x20max(foam_coverage,\x200.001));\x0a\x20\x20\x20\x20return\x20pow(foam\x20*\x200.35,\x20max(foam_contrast,\x200.001)\x20*\x205.0)\x20*\x20particle_amount\x20*\x20foam_amount;\x0a\x20\x20}\x0a\x0a\x20\x20float\x20test_shadow(vec2\x20xy,\x20float\x20height)\x20{\x0a\x20\x20\x20\x20vec3\x20r0\x20=\x20vec3(xy,\x20height);\x0a\x20\x20\x20\x20vec3\x20rd\x20=\x20normalize(light\x20-\x20r0);\x0a\x0a\x20\x20\x20\x20float\x20hit\x20=\x201.0;\x0a\x20\x20\x20\x20float\x20t\x20=\x200.001;\x0a\x20\x20\x20\x20for\x20(int\x20j\x20=\x201;\x20j\x20<\x2025;\x20j++)\x20{\x0a\x20\x20\x20\x20\x20\x20vec3\x20p\x20=\x20r0\x20+\x20t\x20*\x20rd;\x0a\x20\x20\x20\x20\x20\x20float\x20h\x20=\x20height_map(p.xy);\x0a\x20\x20\x20\x20\x20\x20float\x20height_diff\x20=\x20p.z\x20-\x20h;\x0a\x20\x20\x20\x20\x20\x20if\x20(height_diff\x20<\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x200.0;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20t\x20+=\x200.01\x20+\x20height_diff\x20*\x200.02;\x0a\x20\x20\x20\x20\x20\x20hit\x20=\x20min(hit,\x202.0\x20*\x20height_diff\x20/\x20t);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20return\x20hit;\x0a\x20\x20}\x0a';var SAMPLED_TERRAIN_RIVER_VERTEX_SHADER='\x0a\x20\x20in\x20vec4\x20position;\x0a\x20\x20in\x20vec2\x20st;\x0a\x20\x20out\x20vec2\x20v_st;\x0a\x0a\x20\x20const\x20float\x20RADII_X\x20=\x206378137.0;\x0a\x20\x20const\x20float\x20RADII_Y\x20=\x206378137.0;\x0a\x20\x20const\x20float\x20RADII_Z\x20=\x206356752.314245;\x0a\x0a\x20\x20vec3\x20worldToGeographic(vec3\x20worldPosition)\x20{\x0a\x20\x20\x20\x20vec3\x20ecef\x20=\x20worldPosition;\x0a\x20\x20\x20\x20float\x20l\x20=\x20length(ecef.xy);\x0a\x20\x20\x20\x20float\x20e2\x20=\x201.0\x20-\x20(RADII_Z\x20*\x20RADII_Z)\x20/\x20(RADII_X\x20*\x20RADII_X);\x0a\x20\x20\x20\x20float\x20u\x20=\x20atan(ecef.z\x20*\x20RADII_X\x20/\x20(l\x20*\x20RADII_Z));\x0a\x20\x20\x20\x20float\x20lat\x20=\x20atan((ecef.z\x20+\x20e2\x20*\x20RADII_Z\x20*\x20pow(sin(u),\x203.0))\x20/\x20(l\x20-\x20e2\x20*\x20RADII_X\x20*\x20pow(cos(u),\x203.0)));\x0a\x20\x20\x20\x20float\x20lon\x20=\x20atan(ecef.y,\x20ecef.x);\x0a\x20\x20\x20\x20float\x20N\x20=\x20RADII_X\x20/\x20sqrt(1.0\x20-\x20e2\x20*\x20sin(lat)\x20*\x20sin(lat));\x0a\x20\x20\x20\x20float\x20alt\x20=\x20l\x20/\x20cos(lat)\x20-\x20N;\x0a\x20\x20\x20\x20lat\x20=\x20degrees(lat);\x0a\x20\x20\x20\x20lon\x20=\x20degrees(lon);\x0a\x20\x20\x20\x20return\x20vec3(lon,\x20lat,\x20alt);\x0a\x20\x20}\x0a\x0a\x20\x20vec3\x20geo2cartesian(vec3\x20geo)\x20{\x0a\x20\x20\x20\x20float\x20cosLat\x20=\x20cos(geo.y);\x0a\x20\x20\x20\x20float\x20snX\x20=\x20cosLat\x20*\x20cos(geo.x);\x0a\x20\x20\x20\x20float\x20snY\x20=\x20cosLat\x20*\x20sin(geo.x);\x0a\x20\x20\x20\x20float\x20snZ\x20=\x20sin(geo.y);\x0a\x20\x20\x20\x20vec3\x20sn\x20=\x20normalize(vec3(snX,\x20snY,\x20snZ));\x0a\x20\x20\x20\x20vec3\x20radiiSquared\x20=\x20vec3(40680631.59076899\x20*\x201000000.0,\x2040680631.59076899\x20*\x201000000.0,\x2040408299.98466144\x20*\x201000000.0);\x0a\x20\x20\x20\x20vec3\x20sk\x20=\x20radiiSquared\x20*\x20sn;\x0a\x20\x20\x20\x20float\x20gamma\x20=\x20sqrt(dot(sn,\x20sk));\x0a\x20\x20\x20\x20sk\x20=\x20sk\x20/\x20gamma;\x0a\x20\x20\x20\x20sn\x20=\x20sn\x20*\x20geo.z;\x0a\x20\x20\x20\x20return\x20sk\x20+\x20sn;\x0a\x20\x20}\x0a\x0a\x20\x20vec3\x20deg2cartesian(vec3\x20deg)\x20{\x0a\x20\x20\x20\x20vec2\x20radGeo\x20=\x20radians(deg.xy);\x0a\x20\x20\x20\x20vec3\x20geo\x20=\x20vec3(radGeo.xy,\x20deg.z);\x0a\x20\x20\x20\x20return\x20geo2cartesian(geo);\x0a\x20\x20}\x0a\x0a\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20float\x20normalizedHeight\x20=\x200.0;\x0a\x20\x20\x20\x20vec2\x20uv\x20=\x20st;\x0a\x20\x20\x20\x20float\x20height\x20=\x20height_map(uv);\x0a\x0a\x20\x20\x20\x20float\x20waveheight\x20=\x20clamp(WATER_LEVEL\x20*\x203.0\x20-\x201.5,\x200.0,\x201.0);\x0a\x20\x20\x20\x20float\x20level\x20=\x20WATER_LEVEL\x20+\x200.2\x20*\x20water_map(uv\x20*\x2015.0,\x20waveheight);\x0a\x0a\x20\x20\x20\x20if\x20(water_body_mode)\x20{\x0a\x20\x20\x20\x20\x20\x20normalizedHeight\x20=\x20normalized_water_height();\x0a\x20\x20\x20\x20}\x20else\x20if\x20(height\x20<=\x20level)\x20{\x0a\x20\x20\x20\x20\x20\x20normalizedHeight\x20=\x20level;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20normalizedHeight\x20=\x20height;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20heightOffset\x20=\x20(maxElevation\x20-\x20minElevation)\x20*\x20normalizedHeight\x20*\x20heightScale;\x0a\x20\x20\x20\x20vec4\x20worldPosition\x20=\x20czm_model\x20*\x20position;\x0a\x20\x20\x20\x20vec3\x20llh\x20=\x20worldToGeographic(worldPosition.xyz);\x0a\x20\x20\x20\x20vec3\x20adjustedCartesian\x20=\x20deg2cartesian(vec3(llh.xy,\x20minElevation\x20+\x20heightOffset));\x0a\x0a\x20\x20\x20\x20gl_Position\x20=\x20czm_projection\x20*\x20czm_view\x20*\x20vec4(adjustedCartesian,\x201.0);\x0a\x20\x20\x20\x20v_st\x20=\x20st;\x0a\x20\x20}\x0a',SAMPLED_TERRAIN_RIVER_FRAGMENT_SHADER='\x0a\x20\x20in\x20vec2\x20v_st;\x0a\x0a\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20light\x20=\x20vec3(-0.0,\x200.0,\x202.8);\x0a\x20\x20\x20\x20vec2\x20uv\x20=\x20v_st;\x0a\x20\x20\x20\x20float\x20height\x20=\x20height_map(uv);\x0a\x0a\x20\x20\x20\x20float\x20waveheight\x20=\x20clamp(WATER_LEVEL\x20*\x203.0\x20-\x201.5,\x200.0,\x201.0);\x0a\x20\x20\x20\x20float\x20level\x20=\x20WATER_LEVEL\x20+\x200.2\x20*\x20water_map(uv\x20*\x2015.0,\x20waveheight);\x0a\x20\x20\x20\x20float\x20surfaceHeight\x20=\x20water_body_mode\x20?\x20normalized_water_height()\x20:\x20level;\x0a\x20\x20\x20\x20float\x20waterDepth\x20=\x20surfaceHeight\x20-\x20height;\x0a\x20\x20\x20\x20if\x20(!water_body_mode\x20&&\x20height\x20>\x20level)\x20{\x0a\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20float\x20deepwater_fadedepth\x20=\x200.5;\x0a\x0a\x20\x20\x20\x20vec2\x20dif\x20=\x20vec2(0.0,\x200.01);\x0a\x20\x20\x20\x20vec2\x20pos\x20=\x20uv\x20*\x2015.0;\x0a\x20\x20\x20\x20float\x20h1\x20=\x20water_map(pos\x20-\x20dif,\x20waveheight);\x0a\x20\x20\x20\x20float\x20h2\x20=\x20water_map(pos\x20+\x20dif,\x20waveheight);\x0a\x20\x20\x20\x20float\x20h3\x20=\x20water_map(pos\x20-\x20dif.yx,\x20waveheight);\x0a\x20\x20\x20\x20float\x20h4\x20=\x20water_map(pos\x20+\x20dif.yx,\x20waveheight);\x0a\x20\x20\x20\x20vec3\x20normwater\x20=\x20normalize(vec3(h3\x20-\x20h4,\x20h1\x20-\x20h2,\x200.125));\x0a\x20\x20\x20\x20uv\x20+=\x20normwater.xy\x20*\x200.002\x20*\x20max(waterDepth,\x200.0);\x0a\x0a\x20\x20\x20\x20vec3\x20watercolor\x20=\x20water_color;\x0a\x20\x20\x20\x20float\x20depthFade\x20=\x20clamp(waterDepth\x20/\x20deepwater_fadedepth,\x200.0,\x201.0);\x0a\x20\x20\x20\x20watercolor\x20=\x20mix(watercolor,\x20deep_water_color,\x20smoothstep(0.0,\x201.0,\x20depthFade));\x0a\x0a\x20\x20\x20\x20vec3\x20r0\x20=\x20vec3(uv,\x20WATER_LEVEL);\x0a\x20\x20\x20\x20vec3\x20rd\x20=\x20normalize(light\x20-\x20r0);\x0a\x20\x20\x20\x20float\x20grad\x20=\x20dot(normwater,\x20rd);\x0a\x20\x20\x20\x20float\x20specular\x20=\x20pow(grad,\x20water_softlight_fact);\x0a\x20\x20\x20\x20float\x20specular2\x20=\x20pow(grad,\x20water_glossylight_fact);\x0a\x20\x20\x20\x20float\x20gradpos\x20=\x20dot(vec3(0.0,\x200.0,\x201.0),\x20rd);\x0a\x20\x20\x20\x20float\x20specular1\x20=\x20smoothstep(0.0,\x201.0,\x20pow(gradpos,\x205.0));\x0a\x20\x20\x20\x20float\x20watershade\x20=\x20test_shadow(uv,\x20surfaceHeight);\x0a\x20\x20\x20\x20watercolor\x20*=\x202.2\x20+\x20watershade;\x0a\x20\x20\x20\x20watercolor\x20+=\x20(0.2\x20+\x200.8\x20*\x20watershade)\x20*\x20((grad\x20-\x201.0)\x20*\x200.5\x20+\x20specular)\x20*\x200.25;\x0a\x20\x20\x20\x20watercolor\x20/=\x20(1.0\x20+\x20specular1\x20*\x201.25);\x0a\x20\x20\x20\x20watercolor\x20+=\x20watershade\x20*\x20specular2\x20*\x20water_specular_color;\x0a\x20\x20\x20\x20watercolor\x20+=\x20watershade\x20*\x20(1.0\x20-\x20depthFade)\x20*\x20(vec3(0.5,\x200.6,\x200.7)\x20*\x20nautic(uv)\x20+\x20vec3(1.0)\x20*\x20particles(uv));\x0a\x0a\x20\x20\x20\x20float\x20waterAlpha\x20=\x20clamp(alpha,\x200.0,\x201.0);\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(watercolor,\x20waterAlpha);\x0a\x20\x20}\x0a';
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/// <reference path="../typings.d.ts" />
|
|
2
|
+
import * as Cesium from 'deeptwins-cesium';
|
|
3
|
+
import { MapContext } from '../map/Map';
|
|
4
|
+
export type WaterTextureSource = string | HTMLCanvasElement | HTMLImageElement | HTMLVideoElement | ImageBitmap | ImageData | {
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
arrayBufferView: ArrayBufferView;
|
|
8
|
+
};
|
|
9
|
+
export type SampledTerrainWaterBounds = [number, number, number, number];
|
|
10
|
+
export type SampledTerrainWaterCoordinate = [number, number];
|
|
11
|
+
export interface SampledTerrainWaterPolygon {
|
|
12
|
+
rings: SampledTerrainWaterCoordinate[][];
|
|
13
|
+
}
|
|
14
|
+
export type ResolvedTextureSource = Exclude<WaterTextureSource, string>;
|
|
15
|
+
interface TerrainHeightMapCache {
|
|
16
|
+
heights: Float32Array;
|
|
17
|
+
minHeight: number;
|
|
18
|
+
maxHeight: number;
|
|
19
|
+
textureSize: number;
|
|
20
|
+
}
|
|
21
|
+
export interface ResolvedHeightMapData {
|
|
22
|
+
heightMap: WaterTextureSource;
|
|
23
|
+
minElevation: number;
|
|
24
|
+
maxElevation: number;
|
|
25
|
+
}
|
|
26
|
+
interface SampledTerrainWaterOptions {
|
|
27
|
+
geojson?: any;
|
|
28
|
+
heightMap?: WaterTextureSource;
|
|
29
|
+
canvas?: WaterTextureSource;
|
|
30
|
+
noise?: WaterTextureSource;
|
|
31
|
+
minElevation?: number;
|
|
32
|
+
maxElevation?: number;
|
|
33
|
+
granularity?: number;
|
|
34
|
+
terrainSample?: boolean;
|
|
35
|
+
textureSize?: number;
|
|
36
|
+
heightOffset?: number;
|
|
37
|
+
waterBodyMode?: boolean;
|
|
38
|
+
minWaterHeight?: number;
|
|
39
|
+
maxWaterHeight?: number;
|
|
40
|
+
waterHeight?: number;
|
|
41
|
+
style?: any;
|
|
42
|
+
}
|
|
43
|
+
interface SampledTerrainWaterData {
|
|
44
|
+
geojson?: any;
|
|
45
|
+
heightMap?: WaterTextureSource;
|
|
46
|
+
canvas?: WaterTextureSource;
|
|
47
|
+
noise?: WaterTextureSource;
|
|
48
|
+
minElevation?: number;
|
|
49
|
+
maxElevation?: number;
|
|
50
|
+
granularity?: number;
|
|
51
|
+
terrainSample?: boolean;
|
|
52
|
+
textureSize?: number;
|
|
53
|
+
heightOffset?: number;
|
|
54
|
+
waterBodyMode?: boolean;
|
|
55
|
+
minWaterHeight?: number;
|
|
56
|
+
maxWaterHeight?: number;
|
|
57
|
+
waterHeight?: number;
|
|
58
|
+
}
|
|
59
|
+
interface SampledTerrainWaterPrimitiveOptions {
|
|
60
|
+
polygons: SampledTerrainWaterPolygon[];
|
|
61
|
+
bounds: SampledTerrainWaterBounds;
|
|
62
|
+
heightMap: WaterTextureSource;
|
|
63
|
+
noise: WaterTextureSource;
|
|
64
|
+
minElevation: number;
|
|
65
|
+
maxElevation: number;
|
|
66
|
+
granularity: number;
|
|
67
|
+
waterBodyMode: boolean;
|
|
68
|
+
waterHeight: number;
|
|
69
|
+
style: any;
|
|
70
|
+
}
|
|
71
|
+
export declare const DEFAULT_NOISE_SIZE = 512;
|
|
72
|
+
export declare const DEFAULT_NOISE_TEXTURE_FILE = "Image/noise.png";
|
|
73
|
+
export declare const DEFAULT_TERRAIN_TEXTURE_SIZE = 128;
|
|
74
|
+
export declare const MIN_TERRAIN_TEXTURE_SIZE = 64;
|
|
75
|
+
export declare const MAX_TERRAIN_TEXTURE_SIZE = 512;
|
|
76
|
+
export declare const CesiumRuntime: any;
|
|
77
|
+
export default class SampledTerrainWater {
|
|
78
|
+
_mapContext: MapContext | undefined;
|
|
79
|
+
id: string;
|
|
80
|
+
geojson: any;
|
|
81
|
+
heightMap: WaterTextureSource | undefined;
|
|
82
|
+
noise: WaterTextureSource;
|
|
83
|
+
minElevation: number;
|
|
84
|
+
maxElevation: number;
|
|
85
|
+
granularity: number;
|
|
86
|
+
terrainSample: boolean;
|
|
87
|
+
textureSize: number;
|
|
88
|
+
heightOffset: number;
|
|
89
|
+
waterBodyMode: boolean;
|
|
90
|
+
minWaterHeight: number;
|
|
91
|
+
maxWaterHeight: number;
|
|
92
|
+
waterHeight: number;
|
|
93
|
+
style: any;
|
|
94
|
+
primitive: SampledTerrainWaterPrimitive | null;
|
|
95
|
+
isDestroyed: boolean;
|
|
96
|
+
private _polygons;
|
|
97
|
+
private _bounds;
|
|
98
|
+
private _isAdded;
|
|
99
|
+
private _buildVersion;
|
|
100
|
+
private _hasExplicitMinElevation;
|
|
101
|
+
private _hasExplicitMaxElevation;
|
|
102
|
+
constructor(options?: SampledTerrainWaterOptions);
|
|
103
|
+
getMap(): any;
|
|
104
|
+
addToMap(map: any): this | undefined;
|
|
105
|
+
remove(): this;
|
|
106
|
+
show(isShow: boolean): this | undefined;
|
|
107
|
+
setData(data?: SampledTerrainWaterData): this | undefined;
|
|
108
|
+
setStyle(style?: any): this | undefined;
|
|
109
|
+
flyTo(options?: any): this | undefined;
|
|
110
|
+
destroy(): void;
|
|
111
|
+
private _canOperate;
|
|
112
|
+
private _rebuildPrimitive;
|
|
113
|
+
private _resolveHeightMap;
|
|
114
|
+
private _hasValidData;
|
|
115
|
+
private _hasValidElevationRange;
|
|
116
|
+
}
|
|
117
|
+
declare class SampledTerrainWaterPrimitive {
|
|
118
|
+
show: boolean;
|
|
119
|
+
style: any;
|
|
120
|
+
private _polygons;
|
|
121
|
+
private _bounds;
|
|
122
|
+
private _heightMapSource;
|
|
123
|
+
private _noiseSource;
|
|
124
|
+
private _heightMap;
|
|
125
|
+
private _noise;
|
|
126
|
+
private _minElevation;
|
|
127
|
+
private _maxElevation;
|
|
128
|
+
private _granularity;
|
|
129
|
+
private _waterBodyMode;
|
|
130
|
+
waterHeight: number;
|
|
131
|
+
private _showLines;
|
|
132
|
+
private _drawCommands;
|
|
133
|
+
private _vertexArrays;
|
|
134
|
+
private _shaderProgram;
|
|
135
|
+
private _renderState;
|
|
136
|
+
private _heightMapTexture;
|
|
137
|
+
private _noiseTexture;
|
|
138
|
+
private _textureLoadPromise;
|
|
139
|
+
private _time;
|
|
140
|
+
constructor(options: SampledTerrainWaterPrimitiveOptions);
|
|
141
|
+
set showLines(value: boolean);
|
|
142
|
+
get showLines(): boolean;
|
|
143
|
+
update(frameState: any): void;
|
|
144
|
+
isDestroyed(): boolean;
|
|
145
|
+
destroy(): void;
|
|
146
|
+
private _createCommand;
|
|
147
|
+
private _createUniformMap;
|
|
148
|
+
private _loadTextureSources;
|
|
149
|
+
private _destroyCommand;
|
|
150
|
+
}
|
|
151
|
+
export declare function createTexture(context: any, source: ResolvedTextureSource, textureWrap?: any): any;
|
|
152
|
+
export declare function getTextureSize(source: ResolvedTextureSource): {
|
|
153
|
+
width: any;
|
|
154
|
+
height: any;
|
|
155
|
+
};
|
|
156
|
+
export declare function resolveTextureSource(source: WaterTextureSource): Promise<ResolvedTextureSource>;
|
|
157
|
+
export declare function loadImage(url: string): Promise<HTMLImageElement>;
|
|
158
|
+
export declare function getTerrainHeightMap(map: any, bounds: SampledTerrainWaterBounds, textureSize: number): Promise<TerrainHeightMapCache>;
|
|
159
|
+
export declare function encodeTerrainHeightMap(terrainHeightMap: TerrainHeightMapCache, minElevation: number, maxElevation: number, heightOffset: number): ImageData;
|
|
160
|
+
export declare function getTerrainHeightMapCacheKey(bounds: SampledTerrainWaterBounds, textureSize: number): string;
|
|
161
|
+
export declare function normalizeTerrainTextureSize(textureSize: number): number;
|
|
162
|
+
export declare function toFiniteNumber(value: any, defaultValue: number): number;
|
|
163
|
+
export declare function expandBounds(bounds: SampledTerrainWaterBounds, scale: number): SampledTerrainWaterBounds;
|
|
164
|
+
export declare function getPolygonsBounds(polygons: SampledTerrainWaterPolygon[]): SampledTerrainWaterBounds | undefined;
|
|
165
|
+
export declare function collectGeoJsonPolygons(geojson: any): SampledTerrainWaterPolygon[];
|
|
166
|
+
export declare function createPolygonGeometry(polygon: SampledTerrainWaterPolygon, bounds: SampledTerrainWaterBounds, minElevation: number, granularity: number): Cesium.Geometry | null | undefined;
|
|
167
|
+
export declare function normalizeShaderColor(color: any): Cesium.Cartesian3;
|
|
168
|
+
export declare function formatError(error: unknown): string;
|
|
169
|
+
export declare const SAMPLED_TERRAIN_WATER_COMMON_SHADER = "\n uniform sampler2D heightMap;\n uniform float heightScale;\n uniform float maxElevation;\n uniform float minElevation;\n uniform sampler2D iChannel0;\n uniform float iTime;\n uniform bool water_body_mode;\n uniform bool has_water_height;\n uniform float water_height;\n\n uniform float coast2water_fadedepth;\n uniform float large_waveheight;\n uniform float large_wavesize;\n uniform float small_waveheight;\n uniform float small_wavesize;\n uniform float water_softlight_fact;\n uniform float water_glossylight_fact;\n uniform float particle_amount;\n uniform float WATER_LEVEL;\n uniform float shore_fade_distance;\n uniform float edge_fade_width;\n uniform float depth_color_range;\n uniform float min_alpha;\n uniform float max_alpha;\n uniform vec3 water_color;\n uniform vec3 deep_water_color;\n uniform vec3 water_specular_color;\n vec3 light;\n\n float hash(float n) {\n return fract(sin(n) * 43758.5453123);\n }\n\n float noise1(in vec2 x) {\n vec2 p = floor(x);\n vec2 f = smoothstep(0.0, 1.0, fract(x));\n float n = p.x + p.y * 57.0;\n return mix(mix(hash(n + 0.0), hash(n + 1.0), f.x), mix(hash(n + 57.0), hash(n + 58.0), f.x), f.y);\n }\n\n float noise(vec2 p) {\n return textureLod(iChannel0, p * vec2(1.0 / 256.0), 0.0).x;\n }\n\n float height_map(vec2 p) {\n float f = texture(heightMap, p).r;\n return clamp(f, 0.0, 10.0);\n }\n\n float normalized_water_height() {\n if (has_water_height) {\n return clamp((water_height - minElevation) / max(maxElevation - minElevation, 0.001), 0.0, 10.0);\n }\n return WATER_LEVEL;\n }\n\n float edge_fade(vec2 uv) {\n float width = max(edge_fade_width, 0.0001);\n float dist = min(min(uv.x, 1.0 - uv.x), min(uv.y, 1.0 - uv.y));\n return clamp(dist / width, 0.0, 1.0);\n }\n\n const mat2 m = mat2(0.72, -1.60, 1.60, 0.72);\n\n float water_map(vec2 p, float height) {\n vec2 p2 = p * large_wavesize;\n vec2 shift1 = 0.001 * vec2(iTime * 160.0 * 2.0, iTime * 120.0 * 2.0);\n vec2 shift2 = 0.001 * vec2(iTime * 190.0 * 2.0, -iTime * 130.0 * 2.0);\n\n float f = 0.6000 * noise(p);\n f += 0.2500 * noise(p * m);\n f += 0.1666 * noise(p * m * m);\n float wave = sin(p2.x * 0.622 + p2.y * 0.622 + shift2.x * 4.269) * large_waveheight * f * height * height;\n\n p *= small_wavesize;\n f = 0.0;\n float amp = 1.0;\n float s = 0.5;\n for (int i = 0; i < 9; i++) {\n p = m * p * 0.947;\n f -= amp * abs(sin((noise(p + shift1 * s) - 0.5) * 2.0));\n amp = amp * 0.59;\n s *= -1.329;\n }\n\n return wave + f * small_waveheight;\n }\n\n float nautic(vec2 p) {\n p *= 18.0;\n float f = 0.0;\n float amp = 1.0;\n float s = 0.5;\n for (int i = 0; i < 3; i++) {\n p = m * p * 1.2;\n f += amp * abs(smoothstep(0.0, 1.0, noise(p + iTime * s)) - 0.5);\n amp = amp * 0.5;\n s *= -1.227;\n }\n return pow(1.0 - f, 5.0);\n }\n\n float particles(vec2 p) {\n p *= 200.0;\n float f = 0.0;\n float amp = 1.0;\n float s = 1.5;\n for (int i = 0; i < 3; i++) {\n p = m * p * 1.2;\n f += amp * noise(p + iTime * s);\n amp = amp * 0.5;\n s *= -1.227;\n }\n return pow(f * 0.35, 7.0) * particle_amount;\n }\n\n float test_shadow(vec2 xy, float height) {\n vec3 r0 = vec3(xy, height);\n vec3 rd = normalize(light - r0);\n\n float hit = 1.0;\n float t = 0.001;\n for (int j = 1; j < 25; j++) {\n vec3 p = r0 + t * rd;\n float h = height_map(p.xy);\n float height_diff = p.z - h;\n if (height_diff < 0.0) {\n return 0.0;\n }\n t += 0.01 + height_diff * 0.02;\n hit = min(hit, 2.0 * height_diff / t);\n }\n return hit;\n }\n";
|
|
170
|
+
export {};
|