deeptwins-engine-3d 0.1.76 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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.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 +135 -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
|
@@ -1,569 +1 @@
|
|
|
1
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
8
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
9
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
10
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
11
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
12
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
13
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
14
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
15
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
|
-
import * as Cesium from 'deeptwins-cesium';
|
|
17
|
-
/* babel-plugin-inline-import './shader/AtmosphericShader.glsl' */
|
|
18
|
-
var AtmosphericShader = "precision highp float;\nuniform sampler2D colorTexture;\nuniform sampler2D depthTexture;\nuniform float u_threshold;\nuniform float u_blendFactor;\nuniform float u_lightIntensity;\nuniform float u_scatterStrength;\nuniform float u_tonemapExposure;\nuniform float u_mieExtinctionStrength;\nuniform float u_fogOpacity;\nuniform float u_fogPower;\nuniform float u_clearMixBias;\nin vec2 v_textureCoordinates;\nconst float PI = 3.14159265359;\nconst float TWO_PI = PI * 2.0;\nconst float FOUR_PI = PI * 4.0;\nconst float SCATTER_VISIBILITY_SCALE = 30000.0;\nconst float MAX_EXPOSURE_RESPONSE = 1.8;\nconst float MAX_LIGHT_RESPONSE = 3.0;\n\nconst vec3 betaR = vec3(5.5e-6, 13.0e-6, 22.4e-6);\n\nconst vec3 betaM = vec3(21e-6);\n\nconst float hR = 10e3;\nconst float hM = 3.8e3;\nconst int num_samples = 16;\nconst int num_samples_light = 4;\n#ifdef GL_ES\n #define _in(T) const in T\n #define _inout(T) inout T\n #define _out(T) out T\n #define _begin(type) type (\n #define _end )\n #define mul(a, b) (a) * (b)\n #endif\n\nstruct ray_t {\n vec3 origin;\n vec3 direction;\n};\nstruct sphere_t {\n vec3 origin;\n float radius;\n int material;\n};\nstruct plane_t {\n vec3 direction;\n float distance;\n int material;\n};\nplane_t plane;\nmat3 rotate_around_x(_in(float) angle_degrees) {\n float angle = radians(angle_degrees);\n float _sin = sin(angle);\n float _cos = cos(angle);\n return mat3(1, 0, 0, 0, _cos, -_sin, 0, _sin, _cos);\n}\n\nbool isect_sphere(_in(ray_t) ray, _in(sphere_t) sphere, _inout(float) t0, _inout(float) t1) {\n vec3 rc = sphere.origin - ray.origin;\n float radius2 = sphere.radius * sphere.radius;\n float tca = dot(rc, ray.direction);\n float d2 = dot(rc, rc) - tca * tca;\n if (d2 > radius2) return false;\n float thc = sqrt(radius2 - d2);\n t0 = tca - thc;\n t1 = tca + thc;\n return true;\n}\nfloat rayleigh_phase_func(float mu) {\n return\n 3. * (1. + mu * mu)\n /\n (16. * PI);\n}\nconst float g = 0.76;\nfloat henyey_greenstein_phase_func(float mu) {\n return\n (1. - g * g)\n /\n ((4. * PI) * pow(1. + g * g - 2. * g * mu, 1.5));\n}\nconst float k = 1.55 * g - 0.55 * (g * g * g);\nfloat schlick_phase_func(float mu) {\n return\n (1. - k * k)\n /\n (4. * PI * (1. + k * mu) * (1. + k * mu));\n}\nconst sphere_t atmosphere = _begin(sphere_t)\nvec3(0, 0, 0), 6420e3, 0\n_end;\n\nbool get_sun_light(\n_in(ray_t) ray, _inout(float) optical_depthR, _inout(float) optical_depthM\n) {\n float t0, t1;\n isect_sphere(ray, atmosphere, t0, t1);\n float march_pos = 0.;\n float march_step = t1 / float(num_samples_light);\n for (int i = 0; i < num_samples_light; i++) {\n vec3 s = ray.origin +\n ray.direction * (march_pos + 0.5 * march_step);\n float height = length(s) - 6360e3;\n if (height < 0.)\n return false;\n optical_depthR += exp(-height / hR) * march_step;\n optical_depthM += exp(-height / hM) * march_step;\n march_pos += march_step;\n }\n return true;\n}\nvec4 get_incident_light(_in(ray_t) ray) {\n vec3 dir = ray.direction;\n vec3 start = ray.origin;\n float a = dot(dir, dir);\n float b = 2.0 * dot(dir, start);\n float radius2 = atmosphere.radius * atmosphere.radius;\n float c = dot(start, start) - radius2;\n float d = (b * b) - 4.0 * a * c;\n if (d < 0.0) return vec4(0.0);\n float squaredD = sqrt(d);\n vec2 ray_length = vec2(\n max((-b - squaredD) / (2.0 * a), 0.0), min((-b + squaredD) / (2.0 * a), plane.distance)\n );\n if (ray_length.x > ray_length.y) return vec4(0.0);\n float march_step = (ray_length.y - ray_length.x) / float(num_samples);\n float mu = dot(ray.direction, normalize(czm_sunPositionWC));\n float phaseR = rayleigh_phase_func(mu);\n float phaseM =\n #if 1\n henyey_greenstein_phase_func(mu);\n #else\n schlick_phase_func(mu);\n #endif\n\n float optical_depthR = 0.;\n float optical_depthM = 0.;\n vec3 sumR = vec3(0);\n vec3 sumM = vec3(0);\n float march_pos = 0.;\n for (int i = 0; i < num_samples; i++) {\n vec3 s = ray.origin +\n ray.direction * (march_pos + 0.5 * march_step);\n float height = length(s) - 6360e3;\n\n float hr = exp(-height / hR) * march_step;\n float hm = exp(-height / hM) * march_step;\n optical_depthR += hr;\n optical_depthM += hm;\n\n ray_t light_ray = _begin(ray_t)\n s, normalize(czm_sunPositionWC)\n _end;\n float optical_depth_lightR = 0.;\n float optical_depth_lightM = 0.;\n bool overground = get_sun_light(\n light_ray,\n optical_depth_lightR,\n optical_depth_lightM);\n\n if (overground) {\n\n vec3 tau =\n betaR * (optical_depthR + optical_depth_lightR) +\n betaM * u_mieExtinctionStrength * (optical_depthM + optical_depth_lightM);\n vec3 attenuation = exp(-tau);\n sumR += hr * attenuation;\n sumM += hm * attenuation;\n }\n\n march_pos += march_step;\n }\n vec3 transmittance = exp(-((betaM * optical_depthM * u_mieExtinctionStrength)\n + (betaR * optical_depthR)) * 4.);\n float attenuation = clamp(dot(transmittance, vec3(0.3333333)), 0.0, 1.0);\n\n return vec4(\n u_scatterStrength *\n (sumR * phaseR * betaR +\n sumM * phaseM * betaM), 1.0 - attenuation);\n}\n\nvoid main() {\n vec4 rawColor = texture(colorTexture, v_textureCoordinates);\n float depth = czm_unpackDepth(texture(depthTexture, v_textureCoordinates));\n\n vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord.xy, depth);\n vec4 positionWC = czm_inverseView * positionEC;\n positionWC.xyz = positionWC.xyz / positionWC.w;\n\n vec3 lVector = positionWC.xyz - czm_viewerPositionWC;\n ray_t ray;\n ray.origin = czm_viewerPositionWC;\n ray.direction = normalize(lVector);\n plane.distance = length(lVector);\n\n vec4 atmosphereColor = get_incident_light(ray);\n float lightControl = clamp(u_lightIntensity / 4.0, 0.0, 1.0);\n float lightStrength = MAX_LIGHT_RESPONSE * (\n 1.0 - exp(-2.6 * pow(lightControl, 1.6))\n );\n vec3 scatterColor = atmosphereColor.rgb * lightStrength;\n float exposureControl = clamp(u_tonemapExposure / 3.0, 0.0, 1.0);\n float exposureStrength = pow(exposureControl, 1.25) * MAX_EXPOSURE_RESPONSE;\n float mieVisualFactor = mix(\n 0.6,\n 1.8,\n clamp(u_mieExtinctionStrength / 2.0, 0.0, 1.0)\n );\n vec3 visibleScatter = 1.0 - exp(\n -max(scatterColor * SCATTER_VISIBILITY_SCALE, 0.0) * exposureStrength\n );\n visibleScatter *= mieVisualFactor;\n float brightness = dot(visibleScatter, vec3(0.299, 0.587, 0.114));\n float thresholdMask = u_threshold > 0.0\n ? smoothstep(0.0, u_threshold, brightness)\n : 1.0;\n visibleScatter *= thresholdMask;\n float fogSignal = clamp(atmosphereColor.a * 2.5, 0.0, 1.0);\n float fogAlpha = clamp(\n pow(fogSignal, u_fogPower) * u_fogOpacity * mieVisualFactor,\n 0.0,\n 1.0\n );\n float clearPreserve = clamp(1.0 - u_clearMixBias, 0.0, 1.0);\n float fogMix = fogAlpha * clearPreserve * 0.85;\n vec3 foggedBase = mix(\n rawColor.rgb,\n rawColor.rgb * (1.0 - fogAlpha * 0.35),\n fogMix\n );\n vec3 overlayColor = visibleScatter *\n (0.55 + fogAlpha * 1.25) *\n mix(1.0, 0.6, u_clearMixBias);\n vec3 finalColor = mix(\n rawColor.rgb,\n foggedBase + overlayColor,\n u_blendFactor\n );\n\n out_FragColor = vec4(clamp(finalColor, 0.0, 1.0), rawColor.a);\n}\n";
|
|
19
|
-
var DEFAULT_PARAMS = {
|
|
20
|
-
u_threshold: 0.5,
|
|
21
|
-
u_blendFactor: 0.22,
|
|
22
|
-
u_lightIntensity: 0.9,
|
|
23
|
-
u_scatterStrength: 8,
|
|
24
|
-
u_tonemapExposure: 1,
|
|
25
|
-
u_mieExtinctionStrength: 0.65,
|
|
26
|
-
u_fogOpacity: 0.22,
|
|
27
|
-
u_fogPower: 1.9,
|
|
28
|
-
u_clearMixBias: 0.78
|
|
29
|
-
};
|
|
30
|
-
var DEFAULT_ZOOM_DAMPING_OPTIONS = {
|
|
31
|
-
enableZoomDamping: true,
|
|
32
|
-
dampingStartPitchDeg: -60,
|
|
33
|
-
dampingFullPitchDeg: -89.9,
|
|
34
|
-
minZoomScale: 0.12
|
|
35
|
-
};
|
|
36
|
-
var DEFAULT_CLOCK_TEXT = '12:00:00';
|
|
37
|
-
var MIN_ZOOM_FACTOR = 0.01;
|
|
38
|
-
var ZOOM_DAMPING_STATE_KEY = '__atmosphericDispersionZoomDampingState';
|
|
39
|
-
var CLOCK_CONTROL_STATE_KEY = '__atmosphericDispersionClockControlState';
|
|
40
|
-
var atmosphericDispersionInstanceSeed = 0;
|
|
41
|
-
|
|
42
|
-
// 大气散射
|
|
43
|
-
export var AtmosphericDispersion = /*#__PURE__*/function () {
|
|
44
|
-
function AtmosphericDispersion(map) {
|
|
45
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
46
|
-
_classCallCheck(this, AtmosphericDispersion);
|
|
47
|
-
// 地图上下文
|
|
48
|
-
_defineProperty(this, "_mapContext", void 0);
|
|
49
|
-
// 当前生效的参数
|
|
50
|
-
_defineProperty(this, "params", void 0);
|
|
51
|
-
// 构造时的原始参数
|
|
52
|
-
_defineProperty(this, "originalOptions", void 0);
|
|
53
|
-
// 后处理阶段实例
|
|
54
|
-
_defineProperty(this, "atmosphericDispersion", void 0);
|
|
55
|
-
// 极俯角缩放降速配置
|
|
56
|
-
_defineProperty(this, "zoomDampingOptions", void 0);
|
|
57
|
-
// 场景时间配置
|
|
58
|
-
_defineProperty(this, "clockOption", void 0);
|
|
59
|
-
// 相机变化监听
|
|
60
|
-
_defineProperty(this, "_cameraChangedHandler", void 0);
|
|
61
|
-
// 当前实例的缩放保护标识
|
|
62
|
-
_defineProperty(this, "_zoomDampingOwnerId", void 0);
|
|
63
|
-
// 当前实例的时间控制标识
|
|
64
|
-
_defineProperty(this, "_clockControlOwnerId", void 0);
|
|
65
|
-
this._mapContext = map._mapContext;
|
|
66
|
-
var viewer = this.getMap();
|
|
67
|
-
if (!viewer || _typeof(viewer) !== 'object') {
|
|
68
|
-
throw new Error('Invalid Cesium Viewer instance provided');
|
|
69
|
-
}
|
|
70
|
-
if (!viewer.scene || !viewer.scene.postProcessStages) {
|
|
71
|
-
throw new Error('Viewer instance must have valid scene and postProcessStages');
|
|
72
|
-
}
|
|
73
|
-
this.params = this._buildParams(options);
|
|
74
|
-
this.zoomDampingOptions = this._buildZoomDampingOptions(options);
|
|
75
|
-
this.clockOption = this._buildClockOption(options);
|
|
76
|
-
this.originalOptions = _objectSpread({}, options);
|
|
77
|
-
this.atmosphericDispersion = null;
|
|
78
|
-
this._cameraChangedHandler = null;
|
|
79
|
-
atmosphericDispersionInstanceSeed += 1;
|
|
80
|
-
var ownerId = "atmospheric-dispersion-".concat(atmosphericDispersionInstanceSeed);
|
|
81
|
-
this._zoomDampingOwnerId = ownerId;
|
|
82
|
-
this._clockControlOwnerId = ownerId;
|
|
83
|
-
this._initialize();
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// 获取地图实例
|
|
87
|
-
_createClass(AtmosphericDispersion, [{
|
|
88
|
-
key: "getMap",
|
|
89
|
-
value: function getMap() {
|
|
90
|
-
return this._mapContext && this._mapContext.getMap();
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// 统一构建参数,避免重复逻辑
|
|
94
|
-
}, {
|
|
95
|
-
key: "_buildParams",
|
|
96
|
-
value: function _buildParams(options) {
|
|
97
|
-
return {
|
|
98
|
-
u_threshold: typeof options.u_threshold === 'number' ? Math.max(options.u_threshold, 0) : DEFAULT_PARAMS.u_threshold,
|
|
99
|
-
u_blendFactor: typeof options.u_blendFactor === 'number' ? Cesium.Math.clamp(options.u_blendFactor, 0, 1) : DEFAULT_PARAMS.u_blendFactor,
|
|
100
|
-
u_lightIntensity: typeof options.u_lightIntensity === 'number' ? Math.max(options.u_lightIntensity, 0) : DEFAULT_PARAMS.u_lightIntensity,
|
|
101
|
-
u_scatterStrength: typeof options.u_scatterStrength === 'number' ? Math.max(options.u_scatterStrength, 0) : DEFAULT_PARAMS.u_scatterStrength,
|
|
102
|
-
u_tonemapExposure: typeof options.u_tonemapExposure === 'number' ? Math.max(options.u_tonemapExposure, 0) : DEFAULT_PARAMS.u_tonemapExposure,
|
|
103
|
-
u_mieExtinctionStrength: typeof options.u_mieExtinctionStrength === 'number' ? Math.max(options.u_mieExtinctionStrength, 0) : DEFAULT_PARAMS.u_mieExtinctionStrength,
|
|
104
|
-
u_fogOpacity: typeof options.u_fogOpacity === 'number' ? Math.max(options.u_fogOpacity, 0) : DEFAULT_PARAMS.u_fogOpacity,
|
|
105
|
-
u_fogPower: typeof options.u_fogPower === 'number' ? Math.max(options.u_fogPower, 0.0001) : DEFAULT_PARAMS.u_fogPower,
|
|
106
|
-
u_clearMixBias: typeof options.u_clearMixBias === 'number' ? Cesium.Math.clamp(options.u_clearMixBias, 0, 1) : DEFAULT_PARAMS.u_clearMixBias
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// 统一构建缩放降速参数,避免危险配置导致交互异常
|
|
111
|
-
}, {
|
|
112
|
-
key: "_buildZoomDampingOptions",
|
|
113
|
-
value: function _buildZoomDampingOptions(options) {
|
|
114
|
-
var dampingStartPitchDeg = typeof options.dampingStartPitchDeg === 'number' ? options.dampingStartPitchDeg : DEFAULT_ZOOM_DAMPING_OPTIONS.dampingStartPitchDeg;
|
|
115
|
-
var dampingFullPitchDegCandidate = typeof options.dampingFullPitchDeg === 'number' ? options.dampingFullPitchDeg : DEFAULT_ZOOM_DAMPING_OPTIONS.dampingFullPitchDeg;
|
|
116
|
-
return {
|
|
117
|
-
enableZoomDamping: typeof options.enableZoomDamping === 'boolean' ? options.enableZoomDamping : DEFAULT_ZOOM_DAMPING_OPTIONS.enableZoomDamping,
|
|
118
|
-
dampingStartPitchDeg: dampingStartPitchDeg,
|
|
119
|
-
dampingFullPitchDeg: Math.min(dampingFullPitchDegCandidate, dampingStartPitchDeg - 0.1),
|
|
120
|
-
minZoomScale: Cesium.Math.clamp(typeof options.minZoomScale === 'number' ? options.minZoomScale : DEFAULT_ZOOM_DAMPING_OPTIONS.minZoomScale, 0.01, 1)
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// 规范化字符串时间,支持 HH:mm:ss
|
|
125
|
-
}, {
|
|
126
|
-
key: "_normalizeClockText",
|
|
127
|
-
value: function _normalizeClockText(clockText) {
|
|
128
|
-
var matchResult = /^(\d{1,2}):(\d{1,2}):(\d{1,2})$/.exec(clockText.trim());
|
|
129
|
-
if (!matchResult) return null;
|
|
130
|
-
var hours = Number(matchResult[1]);
|
|
131
|
-
var minutes = Number(matchResult[2]);
|
|
132
|
-
var seconds = Number(matchResult[3]);
|
|
133
|
-
if (!Number.isInteger(hours) || !Number.isInteger(minutes) || !Number.isInteger(seconds) || hours < 0 || hours > 23 || minutes < 0 || minutes > 59 || seconds < 0 || seconds > 59) {
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
return "".concat(String(hours).padStart(2, '0'), ":").concat(String(minutes).padStart(2, '0'), ":").concat(String(seconds).padStart(2, '0'));
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// 统一构建时间参数,只接收字符串时间,非法值回退到默认12点
|
|
140
|
-
}, {
|
|
141
|
-
key: "_buildClockOption",
|
|
142
|
-
value: function _buildClockOption(options) {
|
|
143
|
-
if (options.clock === 'auto') {
|
|
144
|
-
return 'auto';
|
|
145
|
-
}
|
|
146
|
-
if (typeof options.clock === 'string') {
|
|
147
|
-
var normalizedClockText = this._normalizeClockText(options.clock);
|
|
148
|
-
if (normalizedClockText) {
|
|
149
|
-
return normalizedClockText;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return DEFAULT_CLOCK_TEXT;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
// 初始化后处理效果并挂载到场景
|
|
156
|
-
}, {
|
|
157
|
-
key: "_initialize",
|
|
158
|
-
value: function _initialize() {
|
|
159
|
-
var _this = this;
|
|
160
|
-
var map = this.getMap();
|
|
161
|
-
if (!map) return;
|
|
162
|
-
this.atmosphericDispersion = new Cesium.PostProcessStage({
|
|
163
|
-
fragmentShader: AtmosphericShader,
|
|
164
|
-
uniforms: {
|
|
165
|
-
u_threshold: function u_threshold() {
|
|
166
|
-
return _this.params.u_threshold;
|
|
167
|
-
},
|
|
168
|
-
u_blendFactor: function u_blendFactor() {
|
|
169
|
-
return _this.params.u_blendFactor;
|
|
170
|
-
},
|
|
171
|
-
u_lightIntensity: function u_lightIntensity() {
|
|
172
|
-
return _this.params.u_lightIntensity;
|
|
173
|
-
},
|
|
174
|
-
u_scatterStrength: function u_scatterStrength() {
|
|
175
|
-
return _this.params.u_scatterStrength;
|
|
176
|
-
},
|
|
177
|
-
u_tonemapExposure: function u_tonemapExposure() {
|
|
178
|
-
return _this.params.u_tonemapExposure;
|
|
179
|
-
},
|
|
180
|
-
u_mieExtinctionStrength: function u_mieExtinctionStrength() {
|
|
181
|
-
return _this.params.u_mieExtinctionStrength;
|
|
182
|
-
},
|
|
183
|
-
u_fogOpacity: function u_fogOpacity() {
|
|
184
|
-
return _this.params.u_fogOpacity;
|
|
185
|
-
},
|
|
186
|
-
u_fogPower: function u_fogPower() {
|
|
187
|
-
return _this.params.u_fogPower;
|
|
188
|
-
},
|
|
189
|
-
u_clearMixBias: function u_clearMixBias() {
|
|
190
|
-
return _this.params.u_clearMixBias;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
});
|
|
194
|
-
map.scene.postProcessStages.add(this.atmosphericDispersion);
|
|
195
|
-
this._syncClockControlState();
|
|
196
|
-
this._syncZoomDampingState();
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
// 获取缩放控制器
|
|
200
|
-
}, {
|
|
201
|
-
key: "_getCameraController",
|
|
202
|
-
value: function _getCameraController() {
|
|
203
|
-
var _this$getMap;
|
|
204
|
-
return (_this$getMap = this.getMap()) === null || _this$getMap === void 0 || (_this$getMap = _this$getMap.scene) === null || _this$getMap === void 0 ? void 0 : _this$getMap.screenSpaceCameraController;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// 读取当前缩放降速共享状态
|
|
208
|
-
}, {
|
|
209
|
-
key: "_getZoomDampingControllerState",
|
|
210
|
-
value: function _getZoomDampingControllerState() {
|
|
211
|
-
var controller = this._getCameraController();
|
|
212
|
-
if (!controller) return null;
|
|
213
|
-
if (!controller[ZOOM_DAMPING_STATE_KEY]) {
|
|
214
|
-
controller[ZOOM_DAMPING_STATE_KEY] = {
|
|
215
|
-
baseZoomFactor: this._normalizeZoomFactor(controller.zoomFactor),
|
|
216
|
-
owners: new Map()
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
return controller[ZOOM_DAMPING_STATE_KEY];
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
// 兜底缩放倍率,避免出现非法值
|
|
223
|
-
}, {
|
|
224
|
-
key: "_normalizeZoomFactor",
|
|
225
|
-
value: function _normalizeZoomFactor(zoomFactor) {
|
|
226
|
-
return typeof zoomFactor === 'number' && Number.isFinite(zoomFactor) ? Math.max(zoomFactor, MIN_ZOOM_FACTOR) : MIN_ZOOM_FACTOR;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
// 获取时钟控制共享状态
|
|
230
|
-
}, {
|
|
231
|
-
key: "_getClockControlState",
|
|
232
|
-
value: function _getClockControlState() {
|
|
233
|
-
var _this$getMap2;
|
|
234
|
-
var viewerClock = (_this$getMap2 = this.getMap()) === null || _this$getMap2 === void 0 ? void 0 : _this$getMap2.clock;
|
|
235
|
-
if (!viewerClock) return null;
|
|
236
|
-
if (!viewerClock[CLOCK_CONTROL_STATE_KEY]) {
|
|
237
|
-
viewerClock[CLOCK_CONTROL_STATE_KEY] = {
|
|
238
|
-
baseCurrentTime: Cesium.JulianDate.clone(viewerClock.currentTime),
|
|
239
|
-
owners: new Map(),
|
|
240
|
-
preRenderHandler: null
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
return viewerClock[CLOCK_CONTROL_STATE_KEY];
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
// 获取当前生效的时间配置,后激活的实例优先
|
|
247
|
-
}, {
|
|
248
|
-
key: "_getEffectiveClockOption",
|
|
249
|
-
value: function _getEffectiveClockOption(state) {
|
|
250
|
-
var effectiveClockOption = null;
|
|
251
|
-
state.owners.forEach(function (clockOption) {
|
|
252
|
-
effectiveClockOption = clockOption;
|
|
253
|
-
});
|
|
254
|
-
return effectiveClockOption;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
// 将固定时间转换为当天本地时间的 JulianDate
|
|
258
|
-
}, {
|
|
259
|
-
key: "_buildClockCurrentTime",
|
|
260
|
-
value: function _buildClockCurrentTime(clockOption) {
|
|
261
|
-
var date = new Date();
|
|
262
|
-
var _clockOption$split$ma = clockOption.split(':').map(Number),
|
|
263
|
-
_clockOption$split$ma2 = _slicedToArray(_clockOption$split$ma, 3),
|
|
264
|
-
hours = _clockOption$split$ma2[0],
|
|
265
|
-
minutes = _clockOption$split$ma2[1],
|
|
266
|
-
seconds = _clockOption$split$ma2[2];
|
|
267
|
-
date.setHours(hours, minutes, seconds, 0);
|
|
268
|
-
return Cesium.JulianDate.fromDate(date);
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
// 开始自动跟随系统时间
|
|
272
|
-
}, {
|
|
273
|
-
key: "_startClockAutoSync",
|
|
274
|
-
value: function _startClockAutoSync(state) {
|
|
275
|
-
if (state.preRenderHandler) return;
|
|
276
|
-
var map = this.getMap();
|
|
277
|
-
if (!map) return;
|
|
278
|
-
state.preRenderHandler = function () {
|
|
279
|
-
var effectiveClockOption = null;
|
|
280
|
-
state.owners.forEach(function (clockOption) {
|
|
281
|
-
effectiveClockOption = clockOption;
|
|
282
|
-
});
|
|
283
|
-
if (effectiveClockOption !== 'auto') return;
|
|
284
|
-
map.clock.currentTime = Cesium.JulianDate.fromDate(new Date());
|
|
285
|
-
};
|
|
286
|
-
map.scene.preRender.addEventListener(state.preRenderHandler);
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
// 停止自动跟随系统时间
|
|
290
|
-
}, {
|
|
291
|
-
key: "_stopClockAutoSync",
|
|
292
|
-
value: function _stopClockAutoSync(state) {
|
|
293
|
-
var map = this.getMap();
|
|
294
|
-
if (!state.preRenderHandler || !map) return;
|
|
295
|
-
map.scene.preRender.removeEventListener(state.preRenderHandler);
|
|
296
|
-
state.preRenderHandler = null;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
// 将共享时间状态同步到场景时钟
|
|
300
|
-
}, {
|
|
301
|
-
key: "_syncSceneClockControl",
|
|
302
|
-
value: function _syncSceneClockControl(state) {
|
|
303
|
-
var _this$getMap3;
|
|
304
|
-
var viewerClock = (_this$getMap3 = this.getMap()) === null || _this$getMap3 === void 0 ? void 0 : _this$getMap3.clock;
|
|
305
|
-
if (!viewerClock) return;
|
|
306
|
-
var effectiveClockOption = this._getEffectiveClockOption(state);
|
|
307
|
-
if (effectiveClockOption === null) {
|
|
308
|
-
this._stopClockAutoSync(state);
|
|
309
|
-
viewerClock.currentTime = Cesium.JulianDate.clone(state.baseCurrentTime);
|
|
310
|
-
delete viewerClock[CLOCK_CONTROL_STATE_KEY];
|
|
311
|
-
return;
|
|
312
|
-
}
|
|
313
|
-
if (effectiveClockOption === 'auto') {
|
|
314
|
-
this._startClockAutoSync(state);
|
|
315
|
-
viewerClock.currentTime = Cesium.JulianDate.fromDate(new Date());
|
|
316
|
-
return;
|
|
317
|
-
}
|
|
318
|
-
this._stopClockAutoSync(state);
|
|
319
|
-
viewerClock.currentTime = this._buildClockCurrentTime(effectiveClockOption);
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
// 应用当前实例的时间控制
|
|
323
|
-
}, {
|
|
324
|
-
key: "_applyClockControl",
|
|
325
|
-
value: function _applyClockControl() {
|
|
326
|
-
var _this$getMap4;
|
|
327
|
-
var viewerClock = (_this$getMap4 = this.getMap()) === null || _this$getMap4 === void 0 ? void 0 : _this$getMap4.clock;
|
|
328
|
-
var state = this._getClockControlState();
|
|
329
|
-
if (!viewerClock || !state) return;
|
|
330
|
-
if (state.owners.size === 0) {
|
|
331
|
-
state.baseCurrentTime = Cesium.JulianDate.clone(viewerClock.currentTime);
|
|
332
|
-
}
|
|
333
|
-
state.owners.delete(this._clockControlOwnerId);
|
|
334
|
-
state.owners.set(this._clockControlOwnerId, this.clockOption);
|
|
335
|
-
this._syncSceneClockControl(state);
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
// 移除当前实例对场景时间的影响
|
|
339
|
-
}, {
|
|
340
|
-
key: "_releaseClockControl",
|
|
341
|
-
value: function _releaseClockControl() {
|
|
342
|
-
var _this$getMap5;
|
|
343
|
-
var viewerClock = (_this$getMap5 = this.getMap()) === null || _this$getMap5 === void 0 ? void 0 : _this$getMap5.clock;
|
|
344
|
-
if (!viewerClock || !viewerClock[CLOCK_CONTROL_STATE_KEY]) return;
|
|
345
|
-
var state = viewerClock[CLOCK_CONTROL_STATE_KEY];
|
|
346
|
-
state.owners.delete(this._clockControlOwnerId);
|
|
347
|
-
this._syncSceneClockControl(state);
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
// 根据效果状态同步时间控制
|
|
351
|
-
}, {
|
|
352
|
-
key: "_syncClockControlState",
|
|
353
|
-
value: function _syncClockControlState() {
|
|
354
|
-
if (this.isEnabled()) {
|
|
355
|
-
this._applyClockControl();
|
|
356
|
-
return;
|
|
357
|
-
}
|
|
358
|
-
this._releaseClockControl();
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
// 绑定相机变化监听,在俯角变化时动态调整缩放速率
|
|
362
|
-
}, {
|
|
363
|
-
key: "_bindCameraChangedHandler",
|
|
364
|
-
value: function _bindCameraChangedHandler() {
|
|
365
|
-
if (this._cameraChangedHandler) return;
|
|
366
|
-
var map = this.getMap();
|
|
367
|
-
if (!map) return;
|
|
368
|
-
this._cameraChangedHandler = this._handleCameraChanged.bind(this);
|
|
369
|
-
map.camera.changed.addEventListener(this._cameraChangedHandler);
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
// 移除相机变化监听
|
|
373
|
-
}, {
|
|
374
|
-
key: "_unbindCameraChangedHandler",
|
|
375
|
-
value: function _unbindCameraChangedHandler() {
|
|
376
|
-
var map = this.getMap();
|
|
377
|
-
if (!this._cameraChangedHandler) return;
|
|
378
|
-
map === null || map === void 0 || map.camera.changed.removeEventListener(this._cameraChangedHandler);
|
|
379
|
-
this._cameraChangedHandler = null;
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
// 相机变化时更新缩放阻尼
|
|
383
|
-
}, {
|
|
384
|
-
key: "_handleCameraChanged",
|
|
385
|
-
value: function _handleCameraChanged() {
|
|
386
|
-
this._applyZoomDamping();
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
// 根据当前俯仰角计算应使用的缩放倍率
|
|
390
|
-
}, {
|
|
391
|
-
key: "_computeDampedZoomFactor",
|
|
392
|
-
value: function _computeDampedZoomFactor(baseZoomFactor) {
|
|
393
|
-
var map = this.getMap();
|
|
394
|
-
if (!map) return baseZoomFactor;
|
|
395
|
-
var cameraPitchDeg = Cesium.Math.toDegrees(map.camera.pitch);
|
|
396
|
-
var _this$zoomDampingOpti = this.zoomDampingOptions,
|
|
397
|
-
dampingStartPitchDeg = _this$zoomDampingOpti.dampingStartPitchDeg,
|
|
398
|
-
dampingFullPitchDeg = _this$zoomDampingOpti.dampingFullPitchDeg,
|
|
399
|
-
minZoomScale = _this$zoomDampingOpti.minZoomScale;
|
|
400
|
-
if (!Number.isFinite(cameraPitchDeg) || cameraPitchDeg > dampingStartPitchDeg) {
|
|
401
|
-
return baseZoomFactor;
|
|
402
|
-
}
|
|
403
|
-
var progress = Cesium.Math.clamp((dampingStartPitchDeg - cameraPitchDeg) / (dampingStartPitchDeg - dampingFullPitchDeg), 0, 1);
|
|
404
|
-
var smoothProgress = progress * progress * (3 - 2 * progress);
|
|
405
|
-
var zoomScale = 1 - (1 - minZoomScale) * smoothProgress;
|
|
406
|
-
return this._normalizeZoomFactor(baseZoomFactor * zoomScale);
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
// 将所有实例的缩放保护合并到控制器上
|
|
410
|
-
}, {
|
|
411
|
-
key: "_syncControllerZoomFactor",
|
|
412
|
-
value: function _syncControllerZoomFactor(state, controller) {
|
|
413
|
-
if (state.owners.size === 0) {
|
|
414
|
-
controller.zoomFactor = state.baseZoomFactor;
|
|
415
|
-
delete controller[ZOOM_DAMPING_STATE_KEY];
|
|
416
|
-
return;
|
|
417
|
-
}
|
|
418
|
-
var nextZoomFactor = state.baseZoomFactor;
|
|
419
|
-
state.owners.forEach(function (zoomFactor) {
|
|
420
|
-
nextZoomFactor = Math.min(nextZoomFactor, zoomFactor);
|
|
421
|
-
});
|
|
422
|
-
controller.zoomFactor = this._normalizeZoomFactor(nextZoomFactor);
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
// 应用极俯角缩放降速
|
|
426
|
-
}, {
|
|
427
|
-
key: "_applyZoomDamping",
|
|
428
|
-
value: function _applyZoomDamping() {
|
|
429
|
-
var controller = this._getCameraController();
|
|
430
|
-
var state = this._getZoomDampingControllerState();
|
|
431
|
-
if (!controller || !state) return;
|
|
432
|
-
if (state.owners.size === 0) {
|
|
433
|
-
state.baseZoomFactor = this._normalizeZoomFactor(controller.zoomFactor);
|
|
434
|
-
}
|
|
435
|
-
var nextZoomFactor = this._computeDampedZoomFactor(state.baseZoomFactor);
|
|
436
|
-
if (nextZoomFactor >= state.baseZoomFactor) {
|
|
437
|
-
state.owners.delete(this._zoomDampingOwnerId);
|
|
438
|
-
} else {
|
|
439
|
-
state.owners.set(this._zoomDampingOwnerId, nextZoomFactor);
|
|
440
|
-
}
|
|
441
|
-
this._syncControllerZoomFactor(state, controller);
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
// 移除当前实例对缩放降速的影响
|
|
445
|
-
}, {
|
|
446
|
-
key: "_releaseZoomDamping",
|
|
447
|
-
value: function _releaseZoomDamping() {
|
|
448
|
-
var controller = this._getCameraController();
|
|
449
|
-
if (!controller || !controller[ZOOM_DAMPING_STATE_KEY]) return;
|
|
450
|
-
var state = controller[ZOOM_DAMPING_STATE_KEY];
|
|
451
|
-
state.owners.delete(this._zoomDampingOwnerId);
|
|
452
|
-
this._syncControllerZoomFactor(state, controller);
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
// 根据效果状态同步缩放降速监听与倍率
|
|
456
|
-
}, {
|
|
457
|
-
key: "_syncZoomDampingState",
|
|
458
|
-
value: function _syncZoomDampingState() {
|
|
459
|
-
if (this.isEnabled() && this.zoomDampingOptions.enableZoomDamping) {
|
|
460
|
-
this._bindCameraChangedHandler();
|
|
461
|
-
this._applyZoomDamping();
|
|
462
|
-
return;
|
|
463
|
-
}
|
|
464
|
-
this._releaseZoomDamping();
|
|
465
|
-
this._unbindCameraChangedHandler();
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
// 更新效果参数
|
|
469
|
-
}, {
|
|
470
|
-
key: "updateParameters",
|
|
471
|
-
value: function updateParameters(params) {
|
|
472
|
-
if (params && _typeof(params) === 'object') {
|
|
473
|
-
if (typeof params.u_threshold === 'number') {
|
|
474
|
-
this.params.u_threshold = Math.max(params.u_threshold, 0);
|
|
475
|
-
}
|
|
476
|
-
if (typeof params.u_blendFactor === 'number') {
|
|
477
|
-
this.params.u_blendFactor = Cesium.Math.clamp(params.u_blendFactor, 0, 1);
|
|
478
|
-
}
|
|
479
|
-
if (typeof params.u_lightIntensity === 'number') {
|
|
480
|
-
this.params.u_lightIntensity = Math.max(params.u_lightIntensity, 0);
|
|
481
|
-
}
|
|
482
|
-
if (typeof params.u_scatterStrength === 'number') {
|
|
483
|
-
this.params.u_scatterStrength = Math.max(params.u_scatterStrength, 0);
|
|
484
|
-
}
|
|
485
|
-
if (typeof params.u_tonemapExposure === 'number') {
|
|
486
|
-
this.params.u_tonemapExposure = Math.max(params.u_tonemapExposure, 0);
|
|
487
|
-
}
|
|
488
|
-
if (typeof params.u_mieExtinctionStrength === 'number') {
|
|
489
|
-
this.params.u_mieExtinctionStrength = Math.max(params.u_mieExtinctionStrength, 0);
|
|
490
|
-
}
|
|
491
|
-
if (typeof params.u_fogOpacity === 'number') {
|
|
492
|
-
this.params.u_fogOpacity = Math.max(params.u_fogOpacity, 0);
|
|
493
|
-
}
|
|
494
|
-
if (typeof params.u_fogPower === 'number') {
|
|
495
|
-
this.params.u_fogPower = Math.max(params.u_fogPower, 0.0001);
|
|
496
|
-
}
|
|
497
|
-
if (typeof params.u_clearMixBias === 'number') {
|
|
498
|
-
this.params.u_clearMixBias = Cesium.Math.clamp(params.u_clearMixBias, 0, 1);
|
|
499
|
-
}
|
|
500
|
-
this.clockOption = this._buildClockOption(_objectSpread({
|
|
501
|
-
clock: this.clockOption
|
|
502
|
-
}, params));
|
|
503
|
-
this.zoomDampingOptions = this._buildZoomDampingOptions(_objectSpread(_objectSpread({}, this.zoomDampingOptions), params));
|
|
504
|
-
this._syncClockControlState();
|
|
505
|
-
this._syncZoomDampingState();
|
|
506
|
-
}
|
|
507
|
-
return this;
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
// 重置参数到初始化值
|
|
511
|
-
}, {
|
|
512
|
-
key: "resetParameters",
|
|
513
|
-
value: function resetParameters() {
|
|
514
|
-
this.params = this._buildParams(this.originalOptions);
|
|
515
|
-
this.clockOption = this._buildClockOption(this.originalOptions);
|
|
516
|
-
this.zoomDampingOptions = this._buildZoomDampingOptions(this.originalOptions);
|
|
517
|
-
this._syncClockControlState();
|
|
518
|
-
this._syncZoomDampingState();
|
|
519
|
-
return this;
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
// 显示效果
|
|
523
|
-
}, {
|
|
524
|
-
key: "show",
|
|
525
|
-
value: function show() {
|
|
526
|
-
if (this.atmosphericDispersion) {
|
|
527
|
-
this.atmosphericDispersion.enabled = true;
|
|
528
|
-
}
|
|
529
|
-
this._syncClockControlState();
|
|
530
|
-
this._syncZoomDampingState();
|
|
531
|
-
return this;
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
// 隐藏效果
|
|
535
|
-
}, {
|
|
536
|
-
key: "hide",
|
|
537
|
-
value: function hide() {
|
|
538
|
-
if (this.atmosphericDispersion) {
|
|
539
|
-
this.atmosphericDispersion.enabled = false;
|
|
540
|
-
}
|
|
541
|
-
this._syncClockControlState();
|
|
542
|
-
this._syncZoomDampingState();
|
|
543
|
-
return this;
|
|
544
|
-
}
|
|
545
|
-
|
|
546
|
-
// 判断效果是否启用
|
|
547
|
-
}, {
|
|
548
|
-
key: "isEnabled",
|
|
549
|
-
value: function isEnabled() {
|
|
550
|
-
return this.atmosphericDispersion ? this.atmosphericDispersion.enabled : false;
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
// 销毁效果并移除后处理阶段
|
|
554
|
-
}, {
|
|
555
|
-
key: "destroy",
|
|
556
|
-
value: function destroy() {
|
|
557
|
-
var map = this.getMap();
|
|
558
|
-
this._releaseClockControl();
|
|
559
|
-
this._releaseZoomDamping();
|
|
560
|
-
this._unbindCameraChangedHandler();
|
|
561
|
-
if (this.atmosphericDispersion && map) {
|
|
562
|
-
map.scene.postProcessStages.remove(this.atmosphericDispersion);
|
|
563
|
-
this.atmosphericDispersion = null;
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
}]);
|
|
567
|
-
return AtmosphericDispersion;
|
|
568
|
-
}();
|
|
569
|
-
export default AtmosphericDispersion;
|
|
1
|
+
var _0x20ca15=_0x13a2;function _0x334f(){var _0x7ddfa7=['Dv9MB2DpCgfJAxr5','ChjVDg90ExbL','C2v0sg91CNm','x2jPBMrdyw1LCMfdAgfUz2vKsgfUzgXLCG','yMLUza','mtmZtKzmtKjW','mti6mda6mda','y2XVy2TpChrPB24','BwfW','zw51BwvYywjSzq','x2DLDfPVB21eyw1WAw5Nq29UDhjVBgXLCLn0yxrL','Dv9SAwDODeLUDgvUC2L0Eq','B3jPz2LUywXpChrPB25Z','odi1mZq2CLHlzNvn','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','zw5HyMXLwM9VBurHBxbPBMC','yxv0BW','y2fSBa','x2j1AwXKwM9VBurHBxbPBMDpChrPB25Z','B2jQzwn0','x2nVBxb1Dgveyw1WzwrAB29TrMfJDg9Y','y2HHBMDLza','BwLUwM9VBvnJywXL','Dv90B25LBwfWrxHWB3n1CMu','Dv90AhjLC2HVBgq','ywrK','ntaXEw9trM5Q','x3n5BMnAB29TrgfTCgLUz1n0yxrL','CgfYyw1Z','CMv0DxjU','CMvTB3zL','zM9YrwfJAa','zgvMAw5LuhjVCgvYDgLLCW','C2nYzwvUu3bHy2vdyw1LCMfdB250CM9SBgvY','Dg9ezwDYzwvZ','zNvUy3rPB24','ChjLuMvUzgvY','y2XVBMu','yMfZzun1CNjLBNruAw1L','x2j1AwXKq2XVy2TpChrPB24','z2v0twfW','x2nHBwvYyunOyw5Nzwriyw5KBgvY','yxrTB3nWAgvYAwneAxnWzxjZAw9U','x3n5BMndB250CM9SBgvYwM9VBuzHy3rVCG','C3LTyM9S','zgvMAw5LuhjVCgvYDhK','zgvSzxrL','C2nLBMu','BNvTyMvY','nta5mda5nvDfqNPUuW','y2XHBxa','y2XVy2S','mZa4mJrXCLPLrwO','y3vYCMvUDfrPBwu','x3vUyMLUzenHBwvYyunOyw5Nzwriyw5KBgvY','zw5HyMXLza','DMfSDwu','zgfTCgLUz0z1BgXqAxrJAerLzW','AgLKzq','x2DLDenHBwvYyunVBNrYB2XSzxi','BgvUz3rO','x3jLBgvHC2vdBg9JA0nVBNrYB2W','C2L6zq','AxnjBNrLz2vY','CgfKu3rHCNq','y29UC3rYDwn0B3i','mxnABw9WuW','BMv4Da','x3n5BMnty2vUzunSB2nRq29UDhjVBa','x2j1AwXKq2XVy2TdDxjYzw50vgLTzq','mJa5z1HdEhjz','nJm5mdyYme1cvfzrBG','yMfZzvPVB21gywn0B3i','Bwf4','Dv9TAwvfEhrPBMn0Aw9Uu3rYzw5NDgG','twf0Aa','mtG1nJiYmhPNuhPSBa','EM9VBurHBxbPBMDpChrPB25Z','C2v0','x25VCM1HBgL6zunSB2nRvgv4Da','x3n5BMndBg9JA0nVBNrYB2XtDgf0zq','otzNzNfHDxG','Dv9MB2DqB3DLCG','t2jQzwn0','x3n0yxj0q2XVy2TbDxrVu3LUyW','nZe1nZDPBxfMtuu','B3DUzxjZ','C3rYAw5N','sNvSAwfUrgf0zq','x2HHBMrSzunHBwvYyunOyw5Nzwq','zMLSDgvY','Dg9qCMLTAxrPDMu','qxjNDw1LBNrZ','x3PVB21eyw1WAw5Nt3DUzxjjza','u2v0','CMvTB3zLrxzLBNrmAxn0zw5LCG','x2j1AwXKugfYyw1Z','Dv9IBgvUzezHy3rVCG','Dv9Zy2f0DgvYu3rYzw5NDgG','x3n0B3bdBg9JA0f1Dg9tEw5J','Dv9JBgvHCK1PEejPyxm','x2nSB2nRq29UDhjVBe93BMvYswq','y29Uy2f0','BwLU','Cg9ZDfbYB2nLC3ntDgfNzxm','AxrLCMf0B3i','ChjLuMvUzgvYsgfUzgXLCG','y2fTzxjH','x21HCenVBNrLEhq','EM9VBuzHy3rVCG','zNjVBurHDgu','mZq5nJe0vNrpqw5h','zgfTCgLUz1n0yxj0ugL0y2HezwC'];_0x334f=function(){return _0x7ddfa7;};return _0x334f();}(function(_0x55eb87,_0x3f22e5){var _0x216a17=_0x13a2,_0x303625=_0x55eb87();while(!![]){try{var _0x36301f=parseInt(_0x216a17(0x1e4))/0x1*(-parseInt(_0x216a17(0x220))/0x2)+parseInt(_0x216a17(0x22d))/0x3*(-parseInt(_0x216a17(0x1d6))/0x4)+-parseInt(_0x216a17(0x1d3))/0x5+parseInt(_0x216a17(0x211))/0x6*(parseInt(_0x216a17(0x218))/0x7)+-parseInt(_0x216a17(0x1f3))/0x8*(-parseInt(_0x216a17(0x1f7))/0x9)+-parseInt(_0x216a17(0x1e9))/0xa+-parseInt(_0x216a17(0x1e8))/0xb*(-parseInt(_0x216a17(0x1ee))/0xc);if(_0x36301f===_0x3f22e5)break;else _0x303625['push'](_0x303625['shift']());}catch(_0x1b2d63){_0x303625['push'](_0x303625['shift']());}}}(_0x334f,0xbfa0a));function _slicedToArray(_0x2269d9,_0x48a808){return _arrayWithHoles(_0x2269d9)||_iterableToArrayLimit(_0x2269d9,_0x48a808)||_unsupportedIterableToArray(_0x2269d9,_0x48a808)||_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(_0x5c4f17,_0x163783){var _0x3dfff4=_0x13a2;if(!_0x5c4f17)return;if(typeof _0x5c4f17===_0x3dfff4(0x1f9))return _arrayLikeToArray(_0x5c4f17,_0x163783);var _0x814169=Object[_0x3dfff4(0x214)]['toString'][_0x3dfff4(0x224)](_0x5c4f17)['slice'](0x8,-0x1);if(_0x814169===_0x3dfff4(0x1f5)&&_0x5c4f17['constructor'])_0x814169=_0x5c4f17['constructor']['name'];if(_0x814169==='Map'||_0x814169===_0x3dfff4(0x200))return Array['from'](_0x5c4f17);if(_0x814169===_0x3dfff4(0x1fe)||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x814169))return _arrayLikeToArray(_0x5c4f17,_0x163783);}function _arrayLikeToArray(_0x163e11,_0x2b7305){if(_0x2b7305==null||_0x2b7305>_0x163e11['length'])_0x2b7305=_0x163e11['length'];for(var _0x3631eb=0x0,_0x419259=new Array(_0x2b7305);_0x3631eb<_0x2b7305;_0x3631eb++)_0x419259[_0x3631eb]=_0x163e11[_0x3631eb];return _0x419259;}function _0x13a2(_0x38a5f6,_0x346a4c){_0x38a5f6=_0x38a5f6-0x1d2;var _0x334f3=_0x334f();var _0x13a2a1=_0x334f3[_0x38a5f6];if(_0x13a2['XLkITK']===undefined){var _0x19d5c7=function(_0x13042f){var _0x23921e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5e3468='',_0x2269d9='';for(var _0x48a808=0x0,_0x5c4f17,_0x163783,_0x814169=0x0;_0x163783=_0x13042f['charAt'](_0x814169++);~_0x163783&&(_0x5c4f17=_0x48a808%0x4?_0x5c4f17*0x40+_0x163783:_0x163783,_0x48a808++%0x4)?_0x5e3468+=String['fromCharCode'](0xff&_0x5c4f17>>(-0x2*_0x48a808&0x6)):0x0){_0x163783=_0x23921e['indexOf'](_0x163783);}for(var _0x163e11=0x0,_0x2b7305=_0x5e3468['length'];_0x163e11<_0x2b7305;_0x163e11++){_0x2269d9+='%'+('00'+_0x5e3468['charCodeAt'](_0x163e11)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2269d9);};_0x13a2['RHfkrL']=_0x19d5c7,_0x13a2['BjwWRM']={},_0x13a2['XLkITK']=!![];}var _0x2ccd9c=_0x334f3[0x0],_0x539c84=_0x38a5f6+_0x2ccd9c,_0x50ead7=_0x13a2['BjwWRM'][_0x539c84];return!_0x50ead7?(_0x13a2a1=_0x13a2['RHfkrL'](_0x13a2a1),_0x13a2['BjwWRM'][_0x539c84]=_0x13a2a1):_0x13a2a1=_0x50ead7,_0x13a2a1;}function _iterableToArrayLimit(_0x2576be,_0x41f963){var _0x228731=_0x13a2,_0x4b76cb=null==_0x2576be?null:'undefined'!=typeof Symbol&&_0x2576be[Symbol['iterator']]||_0x2576be['@@iterator'];if(null!=_0x4b76cb){var _0x43faff,_0x17dd6d,_0x1b88f6,_0x5af005,_0x139de1=[],_0x3a7b24=!0x0,_0x521886=!0x1;try{if(_0x1b88f6=(_0x4b76cb=_0x4b76cb[_0x228731(0x224)](_0x2576be))[_0x228731(0x1e5)],0x0===_0x41f963){if(Object(_0x4b76cb)!==_0x4b76cb)return;_0x3a7b24=!0x1;}else{for(;!(_0x3a7b24=(_0x43faff=_0x1b88f6['call'](_0x4b76cb))['done'])&&(_0x139de1['push'](_0x43faff[_0x228731(0x1da)]),_0x139de1['length']!==_0x41f963);_0x3a7b24=!0x0);}}catch(_0x1bde44){_0x521886=!0x0,_0x17dd6d=_0x1bde44;}finally{try{if(!_0x3a7b24&&null!=_0x4b76cb[_0x228731(0x230)]&&(_0x5af005=_0x4b76cb['return'](),Object(_0x5af005)!==_0x5af005))return;}finally{if(_0x521886)throw _0x17dd6d;}}return _0x139de1;}}function _arrayWithHoles(_0x22f249){if(Array['isArray'](_0x22f249))return _0x22f249;}function ownKeys(_0x2e6004,_0x566320){var _0x267461=_0x13a2,_0x234636=Object['keys'](_0x2e6004);if(Object['getOwnPropertySymbols']){var _0x2bce36=Object['getOwnPropertySymbols'](_0x2e6004);_0x566320&&(_0x2bce36=_0x2bce36[_0x267461(0x1fc)](function(_0x583fb6){var _0x566577=_0x267461;return Object[_0x566577(0x221)](_0x2e6004,_0x583fb6)['enumerable'];})),_0x234636['push']['apply'](_0x234636,_0x2bce36);}return _0x234636;}function _objectSpread(_0x4b3a93){var _0x6e2cab=_0x13a2;for(var _0x22a5d4=0x1;_0x22a5d4<arguments[_0x6e2cab(0x1de)];_0x22a5d4++){var _0x552d28=null!=arguments[_0x22a5d4]?arguments[_0x22a5d4]:{};_0x22a5d4%0x2?ownKeys(Object(_0x552d28),!0x0)['forEach'](function(_0x37f936){_defineProperty(_0x4b3a93,_0x37f936,_0x552d28[_0x37f936]);}):Object['getOwnPropertyDescriptors']?Object[_0x6e2cab(0x233)](_0x4b3a93,Object['getOwnPropertyDescriptors'](_0x552d28)):ownKeys(Object(_0x552d28))[_0x6e2cab(0x232)](function(_0x39f0cd){var _0x179be8=_0x6e2cab;Object[_0x179be8(0x240)](_0x4b3a93,_0x39f0cd,Object[_0x179be8(0x221)](_0x552d28,_0x39f0cd));});}return _0x4b3a93;}function _typeof(_0x387307){'@babel/helpers - typeof';var _0xb2ff5=_0x13a2;return _typeof='function'==typeof Symbol&&'symbol'==typeof Symbol[_0xb2ff5(0x20b)]?function(_0x5d4d75){return typeof _0x5d4d75;}:function(_0xc6c933){var _0x287f12=_0xb2ff5;return _0xc6c933&&_0x287f12(0x236)==typeof Symbol&&_0xc6c933[_0x287f12(0x1e3)]===Symbol&&_0xc6c933!==Symbol[_0x287f12(0x214)]?_0x287f12(0x23f):typeof _0xc6c933;},_typeof(_0x387307);}function _classCallCheck(_0x45ff13,_0x18be9c){if(!(_0x45ff13 instanceof _0x18be9c))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x2cc95d,_0x3edc95){var _0x341356=_0x13a2;for(var _0x378492=0x0;_0x378492<_0x3edc95[_0x341356(0x1de)];_0x378492++){var _0x1c775b=_0x3edc95[_0x378492];_0x1c775b['enumerable']=_0x1c775b[_0x341356(0x21c)]||![],_0x1c775b['configurable']=!![];if('value'in _0x1c775b)_0x1c775b['writable']=!![];Object[_0x341356(0x240)](_0x2cc95d,_toPropertyKey(_0x1c775b['key']),_0x1c775b);}}function _createClass(_0x48a7f1,_0x156c2f,_0xb1a5ef){var _0x333462=_0x13a2;if(_0x156c2f)_defineProperties(_0x48a7f1[_0x333462(0x214)],_0x156c2f);if(_0xb1a5ef)_defineProperties(_0x48a7f1,_0xb1a5ef);return Object['defineProperty'](_0x48a7f1,'prototype',{'writable':![]}),_0x48a7f1;}function _defineProperty(_0x56ab84,_0x1da8a1,_0x323ade){var _0x1d77e9=_0x13a2;return _0x1da8a1=_toPropertyKey(_0x1da8a1),_0x1da8a1 in _0x56ab84?Object[_0x1d77e9(0x240)](_0x56ab84,_0x1da8a1,{'value':_0x323ade,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x56ab84[_0x1da8a1]=_0x323ade,_0x56ab84;}function _toPropertyKey(_0x8e6a16){var _0x4b3fc9=_toPrimitive(_0x8e6a16,'string');return'symbol'==_typeof(_0x4b3fc9)?_0x4b3fc9:String(_0x4b3fc9);}function _toPrimitive(_0xa3a4e,_0x1d38b8){var _0x120e08=_0x13a2;if(_0x120e08(0x226)!=_typeof(_0xa3a4e)||!_0xa3a4e)return _0xa3a4e;var _0x305fdd=_0xa3a4e[Symbol[_0x120e08(0x1fd)]];if(void 0x0!==_0x305fdd){var _0x1b67c3=_0x305fdd[_0x120e08(0x224)](_0xa3a4e,_0x1d38b8||'default');if('object'!=_typeof(_0x1b67c3))return _0x1b67c3;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return('string'===_0x1d38b8?String:Number)(_0xa3a4e);}import*as _0x5e3468 from'deeptwins-cesium';var AtmosphericShader='precision\x20highp\x20float;\x0auniform\x20sampler2D\x20colorTexture;\x0auniform\x20sampler2D\x20depthTexture;\x0auniform\x20float\x20u_threshold;\x0auniform\x20float\x20u_blendFactor;\x0auniform\x20float\x20u_lightIntensity;\x0auniform\x20float\x20u_scatterStrength;\x0auniform\x20float\x20u_tonemapExposure;\x0auniform\x20float\x20u_mieExtinctionStrength;\x0auniform\x20float\x20u_fogOpacity;\x0auniform\x20float\x20u_fogPower;\x0auniform\x20float\x20u_clearMixBias;\x0ain\x20vec2\x20v_textureCoordinates;\x0aconst\x20float\x20PI\x20=\x203.14159265359;\x0aconst\x20float\x20TWO_PI\x20=\x20PI\x20*\x202.0;\x0aconst\x20float\x20FOUR_PI\x20=\x20PI\x20*\x204.0;\x0aconst\x20float\x20SCATTER_VISIBILITY_SCALE\x20=\x2030000.0;\x0aconst\x20float\x20MAX_EXPOSURE_RESPONSE\x20=\x201.8;\x0aconst\x20float\x20MAX_LIGHT_RESPONSE\x20=\x203.0;\x0a\x0aconst\x20vec3\x20betaR\x20=\x20vec3(5.5e-6,\x2013.0e-6,\x2022.4e-6);\x0a\x0aconst\x20vec3\x20betaM\x20=\x20vec3(21e-6);\x0a\x0aconst\x20float\x20hR\x20=\x2010e3;\x0aconst\x20float\x20hM\x20=\x203.8e3;\x0aconst\x20int\x20num_samples\x20=\x2016;\x0aconst\x20int\x20num_samples_light\x20=\x204;\x0a#ifdef\x20GL_ES\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#define\x20_in(T)\x20const\x20in\x20T\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#define\x20_inout(T)\x20inout\x20T\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#define\x20_out(T)\x20out\x20T\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#define\x20_begin(type)\x20type\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#define\x20_end\x20)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#define\x20mul(a,\x20b)\x20(a)\x20*\x20(b)\x0a\x20\x20\x20\x20\x20\x20#endif\x0a\x0astruct\x20ray_t\x20{\x0a\x20\x20\x20\x20vec3\x20origin;\x0a\x20\x20\x20\x20vec3\x20direction;\x0a};\x0astruct\x20sphere_t\x20{\x0a\x20\x20\x20\x20vec3\x20origin;\x0a\x20\x20\x20\x20float\x20radius;\x0a\x20\x20\x20\x20int\x20material;\x0a};\x0astruct\x20plane_t\x20{\x0a\x20\x20\x20\x20vec3\x20direction;\x0a\x20\x20\x20\x20float\x20distance;\x0a\x20\x20\x20\x20int\x20material;\x0a};\x0aplane_t\x20plane;\x0amat3\x20rotate_around_x(_in(float)\x20\x20angle_degrees)\x20{\x0a\x20\x20\x20\x20float\x20angle\x20=\x20radians(angle_degrees);\x0a\x20\x20\x20\x20float\x20_sin\x20=\x20sin(angle);\x0a\x20\x20\x20\x20float\x20_cos\x20=\x20cos(angle);\x0a\x20\x20\x20\x20return\x20mat3(1,\x200,\x200,\x200,\x20_cos,\x20-_sin,\x200,\x20_sin,\x20_cos);\x0a}\x0a\x0abool\x20isect_sphere(_in(ray_t)\x20\x20ray,\x20_in(sphere_t)\x20\x20sphere,\x20_inout(float)\x20\x20t0,\x20_inout(float)\x20\x20t1)\x20{\x0a\x20\x20\x20\x20vec3\x20rc\x20=\x20sphere.origin\x20-\x20ray.origin;\x0a\x20\x20\x20\x20float\x20radius2\x20=\x20sphere.radius\x20*\x20sphere.radius;\x0a\x20\x20\x20\x20float\x20tca\x20=\x20dot(rc,\x20ray.direction);\x0a\x20\x20\x20\x20float\x20d2\x20=\x20dot(rc,\x20rc)\x20-\x20tca\x20*\x20tca;\x0a\x20\x20\x20\x20if\x20(d2\x20>\x20radius2)\x20return\x20false;\x0a\x20\x20\x20\x20float\x20thc\x20=\x20sqrt(radius2\x20-\x20d2);\x0a\x20\x20\x20\x20t0\x20=\x20tca\x20-\x20thc;\x0a\x20\x20\x20\x20t1\x20=\x20tca\x20+\x20thc;\x0a\x20\x20\x20\x20return\x20true;\x0a}\x0afloat\x20rayleigh_phase_func(float\x20mu)\x20{\x0a\x20\x20\x20\x20return\x0a\x20\x20\x20\x203.\x20*\x20(1.\x20+\x20mu\x20*\x20mu)\x0a\x20\x20\x20\x20/\x0a\x20\x20\x20\x20(16.\x20*\x20PI);\x0a}\x0aconst\x20float\x20g\x20=\x200.76;\x0afloat\x20henyey_greenstein_phase_func(float\x20mu)\x20{\x0a\x20\x20\x20\x20return\x0a\x20\x20\x20\x20(1.\x20-\x20g\x20*\x20g)\x0a\x20\x20\x20\x20/\x0a\x20\x20\x20\x20((4.\x20*\x20PI)\x20*\x20pow(1.\x20+\x20g\x20*\x20g\x20-\x202.\x20*\x20g\x20*\x20mu,\x201.5));\x0a}\x0aconst\x20float\x20k\x20=\x201.55\x20*\x20g\x20-\x200.55\x20*\x20(g\x20*\x20g\x20*\x20g);\x0afloat\x20schlick_phase_func(float\x20mu)\x20{\x0a\x20\x20\x20\x20return\x0a\x20\x20\x20\x20(1.\x20-\x20k\x20*\x20k)\x0a\x20\x20\x20\x20/\x0a\x20\x20\x20\x20(4.\x20*\x20PI\x20*\x20(1.\x20+\x20k\x20*\x20mu)\x20*\x20(1.\x20+\x20k\x20*\x20mu));\x0a}\x0aconst\x20sphere_t\x20atmosphere\x20=\x20_begin(sphere_t)\x0avec3(0,\x200,\x200),\x206420e3,\x200\x0a_end;\x0a\x0abool\x20get_sun_light(\x0a_in(ray_t)\x20\x20ray,\x20_inout(float)\x20\x20optical_depthR,\x20_inout(float)\x20\x20optical_depthM\x0a)\x20{\x0a\x20\x20\x20\x20float\x20t0,\x20t1;\x0a\x20\x20\x20\x20isect_sphere(ray,\x20atmosphere,\x20t0,\x20t1);\x0a\x20\x20\x20\x20float\x20march_pos\x20=\x200.;\x0a\x20\x20\x20\x20float\x20march_step\x20=\x20t1\x20/\x20float(num_samples_light);\x0a\x20\x20\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x20num_samples_light;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20s\x20=\x20ray.origin\x20+\x0a\x20\x20\x20\x20\x20\x20\x20\x20ray.direction\x20*\x20(march_pos\x20+\x200.5\x20*\x20march_step);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20height\x20=\x20length(s)\x20-\x206360e3;\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(height\x20<\x200.)\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20optical_depthR\x20+=\x20exp(-height\x20/\x20hR)\x20*\x20march_step;\x0a\x20\x20\x20\x20\x20\x20\x20\x20optical_depthM\x20+=\x20exp(-height\x20/\x20hM)\x20*\x20march_step;\x0a\x20\x20\x20\x20\x20\x20\x20\x20march_pos\x20+=\x20march_step;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20return\x20true;\x0a}\x0avec4\x20get_incident_light(_in(ray_t)\x20\x20ray)\x20{\x0a\x20\x20\x20\x20vec3\x20dir\x20=\x20ray.direction;\x0a\x20\x20\x20\x20vec3\x20start\x20=\x20ray.origin;\x0a\x20\x20\x20\x20float\x20a\x20=\x20dot(dir,\x20dir);\x0a\x20\x20\x20\x20float\x20b\x20=\x202.0\x20*\x20dot(dir,\x20start);\x0a\x20\x20\x20\x20float\x20radius2\x20=\x20atmosphere.radius\x20*\x20atmosphere.radius;\x0a\x20\x20\x20\x20float\x20c\x20=\x20dot(start,\x20start)\x20-\x20radius2;\x0a\x20\x20\x20\x20float\x20d\x20=\x20(b\x20*\x20b)\x20-\x204.0\x20*\x20a\x20*\x20c;\x0a\x20\x20\x20\x20if\x20(d\x20<\x200.0)\x20return\x20vec4(0.0);\x0a\x20\x20\x20\x20float\x20squaredD\x20=\x20sqrt(d);\x0a\x20\x20\x20\x20vec2\x20ray_length\x20=\x20vec2(\x0a\x20\x20\x20\x20max((-b\x20-\x20squaredD)\x20/\x20(2.0\x20*\x20a),\x200.0),\x20min((-b\x20+\x20squaredD)\x20/\x20(2.0\x20*\x20a),\x20plane.distance)\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20if\x20(ray_length.x\x20>\x20ray_length.y)\x20return\x20vec4(0.0);\x0a\x20\x20\x20\x20float\x20march_step\x20=\x20(ray_length.y\x20-\x20ray_length.x)\x20/\x20float(num_samples);\x0a\x20\x20\x20\x20float\x20mu\x20=\x20dot(ray.direction,\x20normalize(czm_sunPositionWC));\x0a\x20\x20\x20\x20float\x20phaseR\x20=\x20rayleigh_phase_func(mu);\x0a\x20\x20\x20\x20float\x20phaseM\x20=\x0a\x20\x20\x20\x20#if\x201\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20henyey_greenstein_phase_func(mu);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20schlick_phase_func(mu);\x0a\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20float\x20optical_depthR\x20=\x200.;\x0a\x20\x20\x20\x20float\x20optical_depthM\x20=\x200.;\x0a\x20\x20\x20\x20vec3\x20sumR\x20=\x20vec3(0);\x0a\x20\x20\x20\x20vec3\x20sumM\x20=\x20vec3(0);\x0a\x20\x20\x20\x20float\x20march_pos\x20=\x200.;\x0a\x20\x20\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x20num_samples;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20s\x20=\x20ray.origin\x20+\x0a\x20\x20\x20\x20\x20\x20\x20\x20ray.direction\x20*\x20(march_pos\x20+\x200.5\x20*\x20march_step);\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20height\x20=\x20length(s)\x20-\x206360e3;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20hr\x20=\x20exp(-height\x20/\x20hR)\x20*\x20march_step;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20hm\x20=\x20exp(-height\x20/\x20hM)\x20*\x20march_step;\x0a\x20\x20\x20\x20\x20\x20\x20\x20optical_depthR\x20+=\x20hr;\x0a\x20\x20\x20\x20\x20\x20\x20\x20optical_depthM\x20+=\x20hm;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20ray_t\x20light_ray\x20=\x20_begin(ray_t)\x0a\x20\x20\x20\x20\x20\x20\x20\x20s,\x20normalize(czm_sunPositionWC)\x0a\x20\x20\x20\x20\x20\x20\x20\x20_end;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20optical_depth_lightR\x20=\x200.;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20optical_depth_lightM\x20=\x200.;\x0a\x20\x20\x20\x20\x20\x20\x20\x20bool\x20overground\x20=\x20get_sun_light(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20light_ray,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20optical_depth_lightR,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20optical_depth_lightM);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(overground)\x20{\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20tau\x20=\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20betaR\x20*\x20(optical_depthR\x20+\x20optical_depth_lightR)\x20+\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20betaM\x20*\x20u_mieExtinctionStrength\x20*\x20(optical_depthM\x20+\x20optical_depth_lightM);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20attenuation\x20=\x20exp(-tau);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sumR\x20+=\x20hr\x20*\x20attenuation;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sumM\x20+=\x20hm\x20*\x20attenuation;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20march_pos\x20+=\x20march_step;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20vec3\x20transmittance\x20=\x20exp(-((betaM\x20*\x20optical_depthM\x20*\x20u_mieExtinctionStrength)\x0a\x20\x20\x20\x20+\x20(betaR\x20*\x20optical_depthR))\x20*\x204.);\x0a\x20\x20\x20\x20float\x20attenuation\x20=\x20clamp(dot(transmittance,\x20vec3(0.3333333)),\x200.0,\x201.0);\x0a\x0a\x20\x20\x20\x20return\x20vec4(\x0a\x20\x20\x20\x20u_scatterStrength\x20*\x0a\x20\x20\x20\x20(sumR\x20*\x20phaseR\x20*\x20betaR\x20+\x0a\x20\x20\x20\x20sumM\x20*\x20phaseM\x20*\x20betaM),\x201.0\x20-\x20attenuation);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20rawColor\x20=\x20texture(colorTexture,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20float\x20depth\x20=\x20czm_unpackDepth(texture(depthTexture,\x20v_textureCoordinates));\x0a\x0a\x20\x20\x20\x20vec4\x20positionEC\x20=\x20czm_windowToEyeCoordinates(gl_FragCoord.xy,\x20depth);\x0a\x20\x20\x20\x20vec4\x20positionWC\x20=\x20czm_inverseView\x20*\x20positionEC;\x0a\x20\x20\x20\x20positionWC.xyz\x20=\x20positionWC.xyz\x20/\x20positionWC.w;\x0a\x0a\x20\x20\x20\x20vec3\x20lVector\x20=\x20positionWC.xyz\x20-\x20czm_viewerPositionWC;\x0a\x20\x20\x20\x20ray_t\x20ray;\x0a\x20\x20\x20\x20ray.origin\x20=\x20czm_viewerPositionWC;\x0a\x20\x20\x20\x20ray.direction\x20=\x20normalize(lVector);\x0a\x20\x20\x20\x20plane.distance\x20=\x20length(lVector);\x0a\x0a\x20\x20\x20\x20vec4\x20atmosphereColor\x20=\x20get_incident_light(ray);\x0a\x20\x20\x20\x20float\x20lightControl\x20=\x20clamp(u_lightIntensity\x20/\x204.0,\x200.0,\x201.0);\x0a\x20\x20\x20\x20float\x20lightStrength\x20=\x20MAX_LIGHT_RESPONSE\x20*\x20(\x0a\x20\x20\x20\x201.0\x20-\x20exp(-2.6\x20*\x20pow(lightControl,\x201.6))\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20vec3\x20scatterColor\x20=\x20atmosphereColor.rgb\x20*\x20lightStrength;\x0a\x20\x20\x20\x20float\x20exposureControl\x20=\x20clamp(u_tonemapExposure\x20/\x203.0,\x200.0,\x201.0);\x0a\x20\x20\x20\x20float\x20exposureStrength\x20=\x20pow(exposureControl,\x201.25)\x20*\x20MAX_EXPOSURE_RESPONSE;\x0a\x20\x20\x20\x20float\x20mieVisualFactor\x20=\x20mix(\x0a\x20\x20\x20\x20\x20\x20\x20\x200.6,\x0a\x20\x20\x20\x20\x20\x20\x20\x201.8,\x0a\x20\x20\x20\x20\x20\x20\x20\x20clamp(u_mieExtinctionStrength\x20/\x202.0,\x200.0,\x201.0)\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20vec3\x20visibleScatter\x20=\x201.0\x20-\x20exp(\x0a\x20\x20\x20\x20\x20\x20\x20\x20-max(scatterColor\x20*\x20SCATTER_VISIBILITY_SCALE,\x200.0)\x20*\x20exposureStrength\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20visibleScatter\x20*=\x20mieVisualFactor;\x0a\x20\x20\x20\x20float\x20brightness\x20=\x20dot(visibleScatter,\x20vec3(0.299,\x200.587,\x200.114));\x0a\x20\x20\x20\x20float\x20thresholdMask\x20=\x20u_threshold\x20>\x200.0\x0a\x20\x20\x20\x20?\x20smoothstep(0.0,\x20u_threshold,\x20brightness)\x0a\x20\x20\x20\x20:\x201.0;\x0a\x20\x20\x20\x20visibleScatter\x20*=\x20thresholdMask;\x0a\x20\x20\x20\x20float\x20fogSignal\x20=\x20clamp(atmosphereColor.a\x20*\x202.5,\x200.0,\x201.0);\x0a\x20\x20\x20\x20float\x20fogAlpha\x20=\x20clamp(\x0a\x20\x20\x20\x20\x20\x20\x20\x20pow(fogSignal,\x20u_fogPower)\x20*\x20u_fogOpacity\x20*\x20mieVisualFactor,\x0a\x20\x20\x20\x20\x20\x20\x20\x200.0,\x0a\x20\x20\x20\x20\x20\x20\x20\x201.0\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20float\x20clearPreserve\x20=\x20clamp(1.0\x20-\x20u_clearMixBias,\x200.0,\x201.0);\x0a\x20\x20\x20\x20float\x20fogMix\x20=\x20fogAlpha\x20*\x20clearPreserve\x20*\x200.85;\x0a\x20\x20\x20\x20vec3\x20foggedBase\x20=\x20mix(\x0a\x20\x20\x20\x20\x20\x20\x20\x20rawColor.rgb,\x0a\x20\x20\x20\x20\x20\x20\x20\x20rawColor.rgb\x20*\x20(1.0\x20-\x20fogAlpha\x20*\x200.35),\x0a\x20\x20\x20\x20\x20\x20\x20\x20fogMix\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20vec3\x20overlayColor\x20=\x20visibleScatter\x20*\x0a\x20\x20\x20\x20(0.55\x20+\x20fogAlpha\x20*\x201.25)\x20*\x0a\x20\x20\x20\x20mix(1.0,\x200.6,\x20u_clearMixBias);\x0a\x20\x20\x20\x20vec3\x20finalColor\x20=\x20mix(\x0a\x20\x20\x20\x20\x20\x20\x20\x20rawColor.rgb,\x0a\x20\x20\x20\x20\x20\x20\x20\x20foggedBase\x20+\x20overlayColor,\x0a\x20\x20\x20\x20\x20\x20\x20\x20u_blendFactor\x0a\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(clamp(finalColor,\x200.0,\x201.0),\x20rawColor.a);\x0a}\x0a',DEFAULT_PARAMS={'u_threshold':0.5,'u_blendFactor':0.22,'u_lightIntensity':0.9,'u_scatterStrength':0x8,'u_tonemapExposure':0x1,'u_mieExtinctionStrength':0.65,'u_fogOpacity':0.22,'u_fogPower':1.9,'u_clearMixBias':0.78},DEFAULT_ZOOM_DAMPING_OPTIONS={'enableZoomDamping':!![],'dampingStartPitchDeg':-0x3c,'dampingFullPitchDeg':-89.9,'minZoomScale':0.12},DEFAULT_CLOCK_TEXT=_0x20ca15(0x219),MIN_ZOOM_FACTOR=0.01,ZOOM_DAMPING_STATE_KEY='__atmosphericDispersionZoomDampingState',CLOCK_CONTROL_STATE_KEY='__atmosphericDispersionClockControlState',atmosphericDispersionInstanceSeed=0x0;export var AtmosphericDispersion=(function(){var _0x4904ec=_0x20ca15;function _0x453bb4(_0x20e798){var _0x39e763=_0x13a2,_0x57e734=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};_classCallCheck(this,_0x453bb4),_defineProperty(this,'_mapContext',void 0x0),_defineProperty(this,'params',void 0x0),_defineProperty(this,_0x39e763(0x21f),void 0x0),_defineProperty(this,_0x39e763(0x23d),void 0x0),_defineProperty(this,_0x39e763(0x1ef),void 0x0),_defineProperty(this,_0x39e763(0x21a),void 0x0),_defineProperty(this,_0x39e763(0x23c),void 0x0),_defineProperty(this,'_zoomDampingOwnerId',void 0x0),_defineProperty(this,_0x39e763(0x207),void 0x0),this['_mapContext']=_0x20e798['_mapContext'];var _0x1456f4=this['getMap']();if(!_0x1456f4||_typeof(_0x1456f4)!=='object')throw new Error('Invalid\x20Cesium\x20Viewer\x20instance\x20provided');if(!_0x1456f4[_0x39e763(0x242)]||!_0x1456f4['scene'][_0x39e763(0x20a)])throw new Error('Viewer\x20instance\x20must\x20have\x20valid\x20scene\x20and\x20postProcessStages');this['params']=this['_buildParams'](_0x57e734),this['zoomDampingOptions']=this['_buildZoomDampingOptions'](_0x57e734),this[_0x39e763(0x21a)]=this[_0x39e763(0x23a)](_0x57e734),this[_0x39e763(0x21f)]=_objectSpread({},_0x57e734),this['atmosphericDispersion']=null,this[_0x39e763(0x23c)]=null,atmosphericDispersionInstanceSeed+=0x1;var _0x16a740='atmospheric-dispersion-'['concat'](atmosphericDispersionInstanceSeed);this[_0x39e763(0x1ff)]=_0x16a740,this['_clockControlOwnerId']=_0x16a740,this['_initialize']();}return _createClass(_0x453bb4,[{'key':'getMap','value':function _0x6f95dd(){var _0x5f707e=_0x13a2;return this[_0x5f707e(0x20e)]&&this[_0x5f707e(0x20e)]['getMap']();}},{'key':_0x4904ec(0x202),'value':function _0x490bcd(_0x218555){var _0x3312b2=_0x4904ec;return{'u_threshold':typeof _0x218555[_0x3312b2(0x22b)]===_0x3312b2(0x1d2)?Math['max'](_0x218555['u_threshold'],0x0):DEFAULT_PARAMS[_0x3312b2(0x22b)],'u_blendFactor':typeof _0x218555['u_blendFactor']==='number'?_0x5e3468['Math']['clamp'](_0x218555[_0x3312b2(0x203)],0x0,0x1):DEFAULT_PARAMS[_0x3312b2(0x203)],'u_lightIntensity':typeof _0x218555[_0x3312b2(0x21e)]==='number'?Math['max'](_0x218555['u_lightIntensity'],0x0):DEFAULT_PARAMS['u_lightIntensity'],'u_scatterStrength':typeof _0x218555['u_scatterStrength']==='number'?Math['max'](_0x218555[_0x3312b2(0x204)],0x0):DEFAULT_PARAMS['u_scatterStrength'],'u_tonemapExposure':typeof _0x218555['u_tonemapExposure']==='number'?Math['max'](_0x218555[_0x3312b2(0x22a)],0x0):DEFAULT_PARAMS['u_tonemapExposure'],'u_mieExtinctionStrength':typeof _0x218555[_0x3312b2(0x1ec)]===_0x3312b2(0x1d2)?Math['max'](_0x218555['u_mieExtinctionStrength'],0x0):DEFAULT_PARAMS[_0x3312b2(0x1ec)],'u_fogOpacity':typeof _0x218555[_0x3312b2(0x213)]==='number'?Math[_0x3312b2(0x1eb)](_0x218555[_0x3312b2(0x213)],0x0):DEFAULT_PARAMS['u_fogOpacity'],'u_fogPower':typeof _0x218555[_0x3312b2(0x1f4)]===_0x3312b2(0x1d2)?Math['max'](_0x218555['u_fogPower'],0.0001):DEFAULT_PARAMS[_0x3312b2(0x1f4)],'u_clearMixBias':typeof _0x218555['u_clearMixBias']===_0x3312b2(0x1d2)?_0x5e3468[_0x3312b2(0x1ed)]['clamp'](_0x218555[_0x3312b2(0x206)],0x0,0x1):DEFAULT_PARAMS[_0x3312b2(0x206)]};}},{'key':'_buildZoomDampingOptions','value':function _0x3ce852(_0x2680e2){var _0x333fb6=_0x4904ec,_0x8fa54e=typeof _0x2680e2['dampingStartPitchDeg']===_0x333fb6(0x1d2)?_0x2680e2[_0x333fb6(0x212)]:DEFAULT_ZOOM_DAMPING_OPTIONS['dampingStartPitchDeg'],_0x3eb9db=typeof _0x2680e2['dampingFullPitchDeg']===_0x333fb6(0x1d2)?_0x2680e2['dampingFullPitchDeg']:DEFAULT_ZOOM_DAMPING_OPTIONS['dampingFullPitchDeg'];return{'enableZoomDamping':typeof _0x2680e2['enableZoomDamping']==='boolean'?_0x2680e2[_0x333fb6(0x222)]:DEFAULT_ZOOM_DAMPING_OPTIONS['enableZoomDamping'],'dampingStartPitchDeg':_0x8fa54e,'dampingFullPitchDeg':Math[_0x333fb6(0x209)](_0x3eb9db,_0x8fa54e-0.1),'minZoomScale':_0x5e3468['Math'][_0x333fb6(0x1d4)](typeof _0x2680e2[_0x333fb6(0x229)]===_0x333fb6(0x1d2)?_0x2680e2['minZoomScale']:DEFAULT_ZOOM_DAMPING_OPTIONS[_0x333fb6(0x229)],0.01,0x1)};}},{'key':_0x4904ec(0x1f1),'value':function _0x522957(_0x299f6b){var _0x10c7b2=_0x4904ec,_0x2a2352=/^(\d{1,2}):(\d{1,2}):(\d{1,2})$/['exec'](_0x299f6b['trim']());if(!_0x2a2352)return null;var _0x2c9b20=Number(_0x2a2352[0x1]),_0x56bfc7=Number(_0x2a2352[0x2]),_0x51fdcd=Number(_0x2a2352[0x3]);if(!Number['isInteger'](_0x2c9b20)||!Number[_0x10c7b2(0x1e1)](_0x56bfc7)||!Number[_0x10c7b2(0x1e1)](_0x51fdcd)||_0x2c9b20<0x0||_0x2c9b20>0x17||_0x56bfc7<0x0||_0x56bfc7>0x3b||_0x51fdcd<0x0||_0x51fdcd>0x3b)return null;return''['concat'](String(_0x2c9b20)[_0x10c7b2(0x1e2)](0x2,'0'),':')[_0x10c7b2(0x208)](String(_0x56bfc7)[_0x10c7b2(0x1e2)](0x2,'0'),':')['concat'](String(_0x51fdcd)['padStart'](0x2,'0'));}},{'key':_0x4904ec(0x23a),'value':function _0x2edbd2(_0x47f04d){var _0x4a33e3=_0x4904ec;if(_0x47f04d[_0x4a33e3(0x1d5)]===_0x4a33e3(0x223))return'auto';if(typeof _0x47f04d[_0x4a33e3(0x1d5)]==='string'){var _0x269dd=this[_0x4a33e3(0x1f1)](_0x47f04d[_0x4a33e3(0x1d5)]);if(_0x269dd)return _0x269dd;}return DEFAULT_CLOCK_TEXT;}},{'key':'_initialize','value':function _0x850650(){var _0x103a0e=_0x4904ec,_0x53e26c=this,_0x583fba=this[_0x103a0e(0x23b)]();if(!_0x583fba)return;this['atmosphericDispersion']=new _0x5e3468['PostProcessStage']({'fragmentShader':AtmosphericShader,'uniforms':{'u_threshold':function _0x16f7d9(){return _0x53e26c['params']['u_threshold'];},'u_blendFactor':function _0x55eb75(){var _0x171017=_0x103a0e;return _0x53e26c['params'][_0x171017(0x203)];},'u_lightIntensity':function _0x782f20(){var _0x5a9097=_0x103a0e;return _0x53e26c['params'][_0x5a9097(0x21e)];},'u_scatterStrength':function _0x1e9aaa(){return _0x53e26c['params']['u_scatterStrength'];},'u_tonemapExposure':function _0x43b411(){var _0x4e51f7=_0x103a0e;return _0x53e26c[_0x4e51f7(0x22f)][_0x4e51f7(0x22a)];},'u_mieExtinctionStrength':function _0xad0cd5(){var _0x2ed891=_0x103a0e;return _0x53e26c['params'][_0x2ed891(0x1ec)];},'u_fogOpacity':function _0x4c8f83(){var _0x4c12eb=_0x103a0e;return _0x53e26c[_0x4c12eb(0x22f)][_0x4c12eb(0x213)];},'u_fogPower':function _0xebbde3(){var _0x1865f1=_0x103a0e;return _0x53e26c[_0x1865f1(0x22f)]['u_fogPower'];},'u_clearMixBias':function _0x14499d(){var _0x3c5b6b=_0x103a0e;return _0x53e26c['params'][_0x3c5b6b(0x206)];}}}),_0x583fba[_0x103a0e(0x242)][_0x103a0e(0x20a)][_0x103a0e(0x22c)](this['atmosphericDispersion']),this[_0x103a0e(0x1f2)](),this['_syncZoomDampingState']();}},{'key':'_getCameraController','value':function _0xba2837(){var _0x5235b1=_0x4904ec,_0x4ea7fc;return(_0x4ea7fc=this['getMap']())===null||_0x4ea7fc===void 0x0||(_0x4ea7fc=_0x4ea7fc['scene'])===null||_0x4ea7fc===void 0x0?void 0x0:_0x4ea7fc[_0x5235b1(0x234)];}},{'key':'_getZoomDampingControllerState','value':function _0x3f95ba(){var _0x4a77b2=_0x4904ec,_0x57f32e=this[_0x4a77b2(0x1dd)]();if(!_0x57f32e)return null;return!_0x57f32e[ZOOM_DAMPING_STATE_KEY]&&(_0x57f32e[ZOOM_DAMPING_STATE_KEY]={'baseZoomFactor':this['_normalizeZoomFactor'](_0x57f32e[_0x4a77b2(0x20f)]),'owners':new Map()}),_0x57f32e[ZOOM_DAMPING_STATE_KEY];}},{'key':'_normalizeZoomFactor','value':function _0x4f73cb(_0x34526d){var _0x4e08d4=_0x4904ec;return typeof _0x34526d===_0x4e08d4(0x1d2)&&Number['isFinite'](_0x34526d)?Math['max'](_0x34526d,MIN_ZOOM_FACTOR):MIN_ZOOM_FACTOR;}},{'key':'_getClockControlState','value':function _0xf570e0(){var _0x22b223=_0x4904ec,_0xcd10fc,_0x11e850=(_0xcd10fc=this['getMap']())===null||_0xcd10fc===void 0x0?void 0x0:_0xcd10fc[_0x22b223(0x1d5)];if(!_0x11e850)return null;return!_0x11e850[CLOCK_CONTROL_STATE_KEY]&&(_0x11e850[CLOCK_CONTROL_STATE_KEY]={'baseCurrentTime':_0x5e3468[_0x22b223(0x1fa)][_0x22b223(0x238)](_0x11e850['currentTime']),'owners':new Map(),'preRenderHandler':null}),_0x11e850[CLOCK_CONTROL_STATE_KEY];}},{'key':'_getEffectiveClockOption','value':function _0x5b6d74(_0x32a229){var _0x51c329=null;return _0x32a229['owners']['forEach'](function(_0x5eb474){_0x51c329=_0x5eb474;}),_0x51c329;}},{'key':_0x4904ec(0x1e7),'value':function _0x354ab1(_0x353d05){var _0x425322=_0x4904ec,_0x284ed7=new Date(),_0x551ded=_0x353d05['split'](':')[_0x425322(0x21b)](Number),_0x3a3aeb=_slicedToArray(_0x551ded,0x3),_0x182ef4=_0x3a3aeb[0x0],_0xde4f43=_0x3a3aeb[0x1],_0x295677=_0x3a3aeb[0x2];return _0x284ed7[_0x425322(0x215)](_0x182ef4,_0xde4f43,_0x295677,0x0),_0x5e3468['JulianDate'][_0x425322(0x210)](_0x284ed7);}},{'key':_0x4904ec(0x1f6),'value':function _0x53a76e(_0x4c0b94){var _0x363161=_0x4904ec;if(_0x4c0b94[_0x363161(0x20c)])return;var _0x303af0=this[_0x363161(0x23b)]();if(!_0x303af0)return;_0x4c0b94[_0x363161(0x20c)]=function(){var _0x2c8260=_0x363161,_0x35a256=null;_0x4c0b94['owners'][_0x2c8260(0x232)](function(_0x2decd9){_0x35a256=_0x2decd9;});if(_0x35a256!=='auto')return;_0x303af0[_0x2c8260(0x1d5)][_0x2c8260(0x1d7)]=_0x5e3468['JulianDate'][_0x2c8260(0x210)](new Date());},_0x303af0[_0x363161(0x242)][_0x363161(0x237)]['addEventListener'](_0x4c0b94[_0x363161(0x20c)]);}},{'key':'_stopClockAutoSync','value':function _0x3e2b06(_0x3bc957){var _0x473935=_0x4904ec,_0x1c7d35=this[_0x473935(0x23b)]();if(!_0x3bc957['preRenderHandler']||!_0x1c7d35)return;_0x1c7d35[_0x473935(0x242)][_0x473935(0x237)][_0x473935(0x201)](_0x3bc957[_0x473935(0x20c)]),_0x3bc957['preRenderHandler']=null;}},{'key':_0x4904ec(0x1e6),'value':function _0xda9a54(_0x35091d){var _0x2d0bd1=_0x4904ec,_0x4942ed,_0x248713=(_0x4942ed=this[_0x2d0bd1(0x23b)]())===null||_0x4942ed===void 0x0?void 0x0:_0x4942ed[_0x2d0bd1(0x1d5)];if(!_0x248713)return;var _0x24492e=this['_getEffectiveClockOption'](_0x35091d);if(_0x24492e===null){this['_stopClockAutoSync'](_0x35091d),_0x248713[_0x2d0bd1(0x1d7)]=_0x5e3468['JulianDate'][_0x2d0bd1(0x238)](_0x35091d[_0x2d0bd1(0x239)]),delete _0x248713[CLOCK_CONTROL_STATE_KEY];return;}if(_0x24492e===_0x2d0bd1(0x223)){this[_0x2d0bd1(0x1f6)](_0x35091d),_0x248713[_0x2d0bd1(0x1d7)]=_0x5e3468['JulianDate']['fromDate'](new Date());return;}this[_0x2d0bd1(0x205)](_0x35091d),_0x248713[_0x2d0bd1(0x1d7)]=this[_0x2d0bd1(0x1e7)](_0x24492e);}},{'key':'_applyClockControl','value':function _0xf456b3(){var _0x382a1e=_0x4904ec,_0x5f4605,_0x36c982=(_0x5f4605=this[_0x382a1e(0x23b)]())===null||_0x5f4605===void 0x0?void 0x0:_0x5f4605[_0x382a1e(0x1d5)],_0x189829=this['_getClockControlState']();if(!_0x36c982||!_0x189829)return;_0x189829[_0x382a1e(0x1f8)]['size']===0x0&&(_0x189829[_0x382a1e(0x239)]=_0x5e3468[_0x382a1e(0x1fa)][_0x382a1e(0x238)](_0x36c982['currentTime'])),_0x189829[_0x382a1e(0x1f8)]['delete'](this[_0x382a1e(0x207)]),_0x189829[_0x382a1e(0x1f8)][_0x382a1e(0x1f0)](this[_0x382a1e(0x207)],this['clockOption']),this[_0x382a1e(0x1e6)](_0x189829);}},{'key':_0x4904ec(0x1df),'value':function _0x42c201(){var _0x4676d2=_0x4904ec,_0x5dc275,_0x17d5ff=(_0x5dc275=this[_0x4676d2(0x23b)]())===null||_0x5dc275===void 0x0?void 0x0:_0x5dc275['clock'];if(!_0x17d5ff||!_0x17d5ff[CLOCK_CONTROL_STATE_KEY])return;var _0x5781d7=_0x17d5ff[CLOCK_CONTROL_STATE_KEY];_0x5781d7[_0x4676d2(0x1f8)]['delete'](this['_clockControlOwnerId']),this['_syncSceneClockControl'](_0x5781d7);}},{'key':_0x4904ec(0x1f2),'value':function _0x338109(){if(this['isEnabled']()){this['_applyClockControl']();return;}this['_releaseClockControl']();}},{'key':_0x4904ec(0x216),'value':function _0x1b2077(){var _0x58c4e1=_0x4904ec;if(this['_cameraChangedHandler'])return;var _0x32572e=this['getMap']();if(!_0x32572e)return;this[_0x58c4e1(0x23c)]=this['_handleCameraChanged'][_0x58c4e1(0x217)](this),_0x32572e['camera']['changed']['addEventListener'](this[_0x58c4e1(0x23c)]);}},{'key':_0x4904ec(0x1d8),'value':function _0x5a0804(){var _0x223a8c=_0x4904ec,_0x25906c=this['getMap']();if(!this['_cameraChangedHandler'])return;_0x25906c===null||_0x25906c===void 0x0||_0x25906c[_0x223a8c(0x20d)][_0x223a8c(0x228)]['removeEventListener'](this[_0x223a8c(0x23c)]),this[_0x223a8c(0x23c)]=null;}},{'key':_0x4904ec(0x1fb),'value':function _0x385f82(){this['_applyZoomDamping']();}},{'key':_0x4904ec(0x227),'value':function _0x407cd7(_0x1021f6){var _0x20b96b=_0x4904ec,_0x1ecab6=this[_0x20b96b(0x23b)]();if(!_0x1ecab6)return _0x1021f6;var _0x2ac022=_0x5e3468['Math'][_0x20b96b(0x235)](_0x1ecab6[_0x20b96b(0x20d)]['pitch']),_0xe20229=this[_0x20b96b(0x1ef)],_0x5579f3=_0xe20229['dampingStartPitchDeg'],_0x4ed096=_0xe20229[_0x20b96b(0x1db)],_0xed3570=_0xe20229['minZoomScale'];if(!Number['isFinite'](_0x2ac022)||_0x2ac022>_0x5579f3)return _0x1021f6;var _0x19a88f=_0x5e3468[_0x20b96b(0x1ed)]['clamp']((_0x5579f3-_0x2ac022)/(_0x5579f3-_0x4ed096),0x0,0x1),_0x6966b6=_0x19a88f*_0x19a88f*(0x3-0x2*_0x19a88f),_0x2170b3=0x1-(0x1-_0xed3570)*_0x6966b6;return this['_normalizeZoomFactor'](_0x1021f6*_0x2170b3);}},{'key':'_syncControllerZoomFactor','value':function _0x22b5f4(_0x558282,_0x3da1eb){var _0x3ecbb1=_0x4904ec;if(_0x558282['owners']['size']===0x0){_0x3da1eb['zoomFactor']=_0x558282[_0x3ecbb1(0x1ea)],delete _0x3da1eb[ZOOM_DAMPING_STATE_KEY];return;}var _0x433dd0=_0x558282['baseZoomFactor'];_0x558282['owners'][_0x3ecbb1(0x232)](function(_0x37ffce){_0x433dd0=Math['min'](_0x433dd0,_0x37ffce);}),_0x3da1eb['zoomFactor']=this['_normalizeZoomFactor'](_0x433dd0);}},{'key':'_applyZoomDamping','value':function _0xd0b51e(){var _0x4497e4=_0x4904ec,_0x5c98d6=this['_getCameraController'](),_0x267367=this[_0x4497e4(0x21d)]();if(!_0x5c98d6||!_0x267367)return;_0x267367[_0x4497e4(0x1f8)][_0x4497e4(0x1e0)]===0x0&&(_0x267367[_0x4497e4(0x1ea)]=this['_normalizeZoomFactor'](_0x5c98d6[_0x4497e4(0x20f)]));var _0x2a77c3=this['_computeDampedZoomFactor'](_0x267367[_0x4497e4(0x1ea)]);_0x2a77c3>=_0x267367['baseZoomFactor']?_0x267367['owners']['delete'](this['_zoomDampingOwnerId']):_0x267367['owners'][_0x4497e4(0x1f0)](this['_zoomDampingOwnerId'],_0x2a77c3),this[_0x4497e4(0x23e)](_0x267367,_0x5c98d6);}},{'key':'_releaseZoomDamping','value':function _0x47a863(){var _0x317c1e=_0x4904ec,_0x3a71f0=this['_getCameraController']();if(!_0x3a71f0||!_0x3a71f0[ZOOM_DAMPING_STATE_KEY])return;var _0x18e0e7=_0x3a71f0[ZOOM_DAMPING_STATE_KEY];_0x18e0e7[_0x317c1e(0x1f8)][_0x317c1e(0x241)](this[_0x317c1e(0x1ff)]),this[_0x317c1e(0x23e)](_0x18e0e7,_0x3a71f0);}},{'key':_0x4904ec(0x22e),'value':function _0x1b91c1(){var _0xbb1821=_0x4904ec;if(this['isEnabled']()&&this['zoomDampingOptions'][_0xbb1821(0x222)]){this[_0xbb1821(0x216)](),this['_applyZoomDamping']();return;}this['_releaseZoomDamping'](),this[_0xbb1821(0x1d8)]();}},{'key':'updateParameters','value':function _0x22e00c(_0x5f0a5d){var _0x4f7933=_0x4904ec;return _0x5f0a5d&&_typeof(_0x5f0a5d)===_0x4f7933(0x226)&&(typeof _0x5f0a5d['u_threshold']==='number'&&(this['params']['u_threshold']=Math['max'](_0x5f0a5d[_0x4f7933(0x22b)],0x0)),typeof _0x5f0a5d[_0x4f7933(0x203)]===_0x4f7933(0x1d2)&&(this[_0x4f7933(0x22f)]['u_blendFactor']=_0x5e3468[_0x4f7933(0x1ed)][_0x4f7933(0x1d4)](_0x5f0a5d[_0x4f7933(0x203)],0x0,0x1)),typeof _0x5f0a5d['u_lightIntensity']===_0x4f7933(0x1d2)&&(this['params']['u_lightIntensity']=Math['max'](_0x5f0a5d['u_lightIntensity'],0x0)),typeof _0x5f0a5d[_0x4f7933(0x204)]===_0x4f7933(0x1d2)&&(this[_0x4f7933(0x22f)]['u_scatterStrength']=Math[_0x4f7933(0x1eb)](_0x5f0a5d[_0x4f7933(0x204)],0x0)),typeof _0x5f0a5d[_0x4f7933(0x22a)]==='number'&&(this[_0x4f7933(0x22f)][_0x4f7933(0x22a)]=Math['max'](_0x5f0a5d[_0x4f7933(0x22a)],0x0)),typeof _0x5f0a5d['u_mieExtinctionStrength']==='number'&&(this['params']['u_mieExtinctionStrength']=Math['max'](_0x5f0a5d[_0x4f7933(0x1ec)],0x0)),typeof _0x5f0a5d['u_fogOpacity']==='number'&&(this[_0x4f7933(0x22f)]['u_fogOpacity']=Math['max'](_0x5f0a5d[_0x4f7933(0x213)],0x0)),typeof _0x5f0a5d['u_fogPower']===_0x4f7933(0x1d2)&&(this[_0x4f7933(0x22f)][_0x4f7933(0x1f4)]=Math[_0x4f7933(0x1eb)](_0x5f0a5d['u_fogPower'],0.0001)),typeof _0x5f0a5d[_0x4f7933(0x206)]===_0x4f7933(0x1d2)&&(this[_0x4f7933(0x22f)][_0x4f7933(0x206)]=_0x5e3468[_0x4f7933(0x1ed)]['clamp'](_0x5f0a5d[_0x4f7933(0x206)],0x0,0x1)),this[_0x4f7933(0x21a)]=this[_0x4f7933(0x23a)](_objectSpread({'clock':this['clockOption']},_0x5f0a5d)),this['zoomDampingOptions']=this[_0x4f7933(0x225)](_objectSpread(_objectSpread({},this[_0x4f7933(0x1ef)]),_0x5f0a5d)),this[_0x4f7933(0x1f2)](),this['_syncZoomDampingState']()),this;}},{'key':'resetParameters','value':function _0x52a586(){var _0xa77abd=_0x4904ec;return this[_0xa77abd(0x22f)]=this[_0xa77abd(0x202)](this[_0xa77abd(0x21f)]),this[_0xa77abd(0x21a)]=this[_0xa77abd(0x23a)](this[_0xa77abd(0x21f)]),this['zoomDampingOptions']=this['_buildZoomDampingOptions'](this[_0xa77abd(0x21f)]),this[_0xa77abd(0x1f2)](),this['_syncZoomDampingState'](),this;}},{'key':'show','value':function _0x352d78(){var _0x4f55cf=_0x4904ec;return this[_0x4f55cf(0x23d)]&&(this[_0x4f55cf(0x23d)]['enabled']=!![]),this[_0x4f55cf(0x1f2)](),this[_0x4f55cf(0x22e)](),this;}},{'key':_0x4904ec(0x1dc),'value':function _0x45ef01(){var _0x2716f2=_0x4904ec;return this['atmosphericDispersion']&&(this[_0x2716f2(0x23d)][_0x2716f2(0x1d9)]=![]),this['_syncClockControlState'](),this[_0x2716f2(0x22e)](),this;}},{'key':'isEnabled','value':function _0x3b5a5b(){var _0x5f3c98=_0x4904ec;return this['atmosphericDispersion']?this[_0x5f3c98(0x23d)]['enabled']:![];}},{'key':'destroy','value':function _0x27a6ff(){var _0x368996=_0x4904ec,_0x2de276=this['getMap']();this[_0x368996(0x1df)](),this['_releaseZoomDamping'](),this[_0x368996(0x1d8)](),this['atmosphericDispersion']&&_0x2de276&&(_0x2de276[_0x368996(0x242)][_0x368996(0x20a)][_0x368996(0x231)](this['atmosphericDispersion']),this[_0x368996(0x23d)]=null);}}]),_0x453bb4;}());export default AtmosphericDispersion;
|