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,115 +1 @@
|
|
|
1
|
-
var
|
|
2
|
-
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); }
|
|
3
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
4
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
5
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
6
|
-
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); } }
|
|
7
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
8
|
-
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; }
|
|
9
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
10
|
-
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); }
|
|
11
|
-
import { bbox, randomPoint } from '@turf/turf';
|
|
12
|
-
import * as Cesium from 'deeptwins-cesium';
|
|
13
|
-
import { merge } from 'lodash';
|
|
14
|
-
import { DEFAULT_VOLUME_CLOUD } from "../constant";
|
|
15
|
-
import BaseSource from "../graphicLayer/BaseSource";
|
|
16
|
-
import * as utils from "../tool/utils";
|
|
17
|
-
var VolumeCloud = /*#__PURE__*/function () {
|
|
18
|
-
function VolumeCloud(map, _ref) {
|
|
19
|
-
var polygon = _ref.polygon,
|
|
20
|
-
_ref$number = _ref.number,
|
|
21
|
-
number = _ref$number === void 0 ? 10 : _ref$number,
|
|
22
|
-
_ref$heightRange = _ref.heightRange,
|
|
23
|
-
heightRange = _ref$heightRange === void 0 ? [2000, 3000] : _ref$heightRange,
|
|
24
|
-
options = _objectWithoutProperties(_ref, _excluded);
|
|
25
|
-
_classCallCheck(this, VolumeCloud);
|
|
26
|
-
_defineProperty(this, "_mapContext", void 0);
|
|
27
|
-
_defineProperty(this, "_polygon", void 0);
|
|
28
|
-
_defineProperty(this, "isDestroyed", false);
|
|
29
|
-
_defineProperty(this, "_pointGeoJson", void 0);
|
|
30
|
-
_defineProperty(this, "_options", void 0);
|
|
31
|
-
_defineProperty(this, "_clouds", void 0);
|
|
32
|
-
this._mapContext = map._mapContext;
|
|
33
|
-
this._polygon = polygon;
|
|
34
|
-
var randomPoints = randomPoint(number, {
|
|
35
|
-
bbox: bbox(polygon)
|
|
36
|
-
});
|
|
37
|
-
randomPoints.features.forEach(function (feature) {
|
|
38
|
-
feature.geometry.coordinates.push(Math.random() * (heightRange[1] - heightRange[0]) + heightRange[0]);
|
|
39
|
-
});
|
|
40
|
-
this._pointGeoJson = randomPoints;
|
|
41
|
-
this._options = merge(DEFAULT_VOLUME_CLOUD(), options);
|
|
42
|
-
this._init();
|
|
43
|
-
}
|
|
44
|
-
_createClass(VolumeCloud, [{
|
|
45
|
-
key: "_init",
|
|
46
|
-
value: function _init() {
|
|
47
|
-
var _this$_options = this._options,
|
|
48
|
-
show = _this$_options.show,
|
|
49
|
-
noiseDetail = _this$_options.noiseDetail,
|
|
50
|
-
noiseOffset = _this$_options.noiseOffset,
|
|
51
|
-
cloudWidth = _this$_options.cloudWidth,
|
|
52
|
-
cloudHeight = _this$_options.cloudHeight,
|
|
53
|
-
color = _this$_options.color,
|
|
54
|
-
slice = _this$_options.slice,
|
|
55
|
-
brightness = _this$_options.brightness;
|
|
56
|
-
this._clouds = this.getMap().scene.primitives.add(new Cesium.CloudCollection({
|
|
57
|
-
show: show,
|
|
58
|
-
noiseDetail: noiseDetail + Math.random(),
|
|
59
|
-
// @ts-ignore
|
|
60
|
-
noiseOffset: utils.arrCartesian3(noiseOffset.map(function (t) {
|
|
61
|
-
return t * Math.random();
|
|
62
|
-
}))
|
|
63
|
-
}));
|
|
64
|
-
var source = BaseSource.geoJsonToGeoCartesian3Array(this._pointGeoJson);
|
|
65
|
-
for (var i = 0; i < source.length; i++) {
|
|
66
|
-
var r = Math.random();
|
|
67
|
-
var position = source[i].positions;
|
|
68
|
-
this._clouds.add({
|
|
69
|
-
position: position,
|
|
70
|
-
scale: new Cesium.Cartesian2(cloudWidth * (0.8 + Math.random() * 0.4), cloudHeight * (0.8 + Math.random() * 0.4)),
|
|
71
|
-
maximumSize: new Cesium.Cartesian3(5 + r * 15, 4 + r * 10, 3 + r * 5),
|
|
72
|
-
slice: slice + Math.random() * 0.3,
|
|
73
|
-
// 调整切分比例范围
|
|
74
|
-
brightness: brightness + Math.random() * 0.4,
|
|
75
|
-
// 亮度变化范围
|
|
76
|
-
color: utils.colorString(color)
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}, {
|
|
81
|
-
key: "getMap",
|
|
82
|
-
value: function getMap() {
|
|
83
|
-
return this._mapContext && this._mapContext.getMap();
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// 是否能进行操作
|
|
87
|
-
}, {
|
|
88
|
-
key: "_canOperate",
|
|
89
|
-
value: function _canOperate() {
|
|
90
|
-
if (this.isDestroyed) {
|
|
91
|
-
utils.error('VolumeCloud实例已销毁');
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// 显示隐藏
|
|
98
|
-
}, {
|
|
99
|
-
key: "show",
|
|
100
|
-
value: function show(isShow) {
|
|
101
|
-
this._clouds.show = isShow;
|
|
102
|
-
}
|
|
103
|
-
}, {
|
|
104
|
-
key: "destroy",
|
|
105
|
-
value: function destroy() {
|
|
106
|
-
if (!this._canOperate()) {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
this.isDestroyed = true;
|
|
110
|
-
this.getMap().scene.primitives.remove(this._clouds);
|
|
111
|
-
}
|
|
112
|
-
}]);
|
|
113
|
-
return VolumeCloud;
|
|
114
|
-
}();
|
|
115
|
-
export default VolumeCloud;
|
|
1
|
+
var _0x254236=_0xc364;(function(_0x512ca4,_0x30fd3f){var _0x3eaadb=_0xc364,_0x10d195=_0x512ca4();while(!![]){try{var _0x243b49=parseInt(_0x3eaadb(0x213))/0x1*(parseInt(_0x3eaadb(0x204))/0x2)+-parseInt(_0x3eaadb(0x206))/0x3*(parseInt(_0x3eaadb(0x21b))/0x4)+-parseInt(_0x3eaadb(0x1fb))/0x5*(-parseInt(_0x3eaadb(0x1ee))/0x6)+-parseInt(_0x3eaadb(0x21e))/0x7*(-parseInt(_0x3eaadb(0x21f))/0x8)+parseInt(_0x3eaadb(0x21c))/0x9+-parseInt(_0x3eaadb(0x1f5))/0xa+-parseInt(_0x3eaadb(0x20d))/0xb*(-parseInt(_0x3eaadb(0x1f6))/0xc);if(_0x243b49===_0x30fd3f)break;else _0x10d195['push'](_0x10d195['shift']());}catch(_0x1becb3){_0x10d195['push'](_0x10d195['shift']());}}}(_0x1fe8,0xc72b2));function _0xc364(_0x4d2852,_0x10ddb7){_0x4d2852=_0x4d2852-0x1ea;var _0x1fe8fc=_0x1fe8();var _0xc36441=_0x1fe8fc[_0x4d2852];if(_0xc364['dHdujm']===undefined){var _0x5017f0=function(_0x292fa8){var _0x3da039='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x493b85='',_0x125b04='';for(var _0x3838c5=0x0,_0x5b2e05,_0x301548,_0xed90d3=0x0;_0x301548=_0x292fa8['charAt'](_0xed90d3++);~_0x301548&&(_0x5b2e05=_0x3838c5%0x4?_0x5b2e05*0x40+_0x301548:_0x301548,_0x3838c5++%0x4)?_0x493b85+=String['fromCharCode'](0xff&_0x5b2e05>>(-0x2*_0x3838c5&0x6)):0x0){_0x301548=_0x3da039['indexOf'](_0x301548);}for(var _0x325bf4=0x0,_0x193400=_0x493b85['length'];_0x325bf4<_0x193400;_0x325bf4++){_0x125b04+='%'+('00'+_0x493b85['charCodeAt'](_0x325bf4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x125b04);};_0xc364['SfQVhW']=_0x5017f0,_0xc364['EJFJsu']={},_0xc364['dHdujm']=!![];}var _0x24f3b0=_0x1fe8fc[0x0],_0x4d6c4a=_0x4d2852+_0x24f3b0,_0x5d7a56=_0xc364['EJFJsu'][_0x4d6c4a];return!_0x5d7a56?(_0xc36441=_0xc364['SfQVhW'](_0xc36441),_0xc364['EJFJsu'][_0x4d6c4a]=_0xc36441):_0xc36441=_0x5d7a56,_0xc36441;}var _excluded=['polygon',_0x254236(0x20b),_0x254236(0x1fc)];function _typeof(_0x5b2e05){'@babel/helpers - typeof';var _0x4d357a=_0x254236;return _typeof=_0x4d357a(0x212)==typeof Symbol&&_0x4d357a(0x1fe)==typeof Symbol[_0x4d357a(0x20a)]?function(_0x301548){return typeof _0x301548;}:function(_0xed90d3){return _0xed90d3&&'function'==typeof Symbol&&_0xed90d3['constructor']===Symbol&&_0xed90d3!==Symbol['prototype']?'symbol':typeof _0xed90d3;},_typeof(_0x5b2e05);}function _objectWithoutProperties(_0x325bf4,_0x193400){var _0x412695=_0x254236;if(_0x325bf4==null)return{};var _0x434065=_objectWithoutPropertiesLoose(_0x325bf4,_0x193400),_0xa2f805,_0x11aa47;if(Object['getOwnPropertySymbols']){var _0x2db6e8=Object['getOwnPropertySymbols'](_0x325bf4);for(_0x11aa47=0x0;_0x11aa47<_0x2db6e8[_0x412695(0x209)];_0x11aa47++){_0xa2f805=_0x2db6e8[_0x11aa47];if(_0x193400[_0x412695(0x1eb)](_0xa2f805)>=0x0)continue;if(!Object['prototype'][_0x412695(0x205)]['call'](_0x325bf4,_0xa2f805))continue;_0x434065[_0xa2f805]=_0x325bf4[_0xa2f805];}}return _0x434065;}function _objectWithoutPropertiesLoose(_0x382ee5,_0x377e1d){var _0x5cbc35=_0x254236;if(_0x382ee5==null)return{};var _0x128f0e={},_0xe165c4=Object['keys'](_0x382ee5),_0x4cd222,_0x222304;for(_0x222304=0x0;_0x222304<_0xe165c4[_0x5cbc35(0x209)];_0x222304++){_0x4cd222=_0xe165c4[_0x222304];if(_0x377e1d[_0x5cbc35(0x1eb)](_0x4cd222)>=0x0)continue;_0x128f0e[_0x4cd222]=_0x382ee5[_0x4cd222];}return _0x128f0e;}function _classCallCheck(_0xbffba7,_0x5bcc6f){if(!(_0xbffba7 instanceof _0x5bcc6f))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x2b08f3,_0x583f0a){var _0x3ece78=_0x254236;for(var _0x4739e5=0x0;_0x4739e5<_0x583f0a[_0x3ece78(0x209)];_0x4739e5++){var _0x2b8e64=_0x583f0a[_0x4739e5];_0x2b8e64[_0x3ece78(0x20f)]=_0x2b8e64['enumerable']||![],_0x2b8e64[_0x3ece78(0x208)]=!![];if(_0x3ece78(0x220)in _0x2b8e64)_0x2b8e64[_0x3ece78(0x217)]=!![];Object[_0x3ece78(0x1fa)](_0x2b08f3,_toPropertyKey(_0x2b8e64['key']),_0x2b8e64);}}function _createClass(_0x387525,_0xa66642,_0x36136f){var _0xa14f53=_0x254236;if(_0xa66642)_defineProperties(_0x387525[_0xa14f53(0x202)],_0xa66642);if(_0x36136f)_defineProperties(_0x387525,_0x36136f);return Object[_0xa14f53(0x1fa)](_0x387525,_0xa14f53(0x202),{'writable':![]}),_0x387525;}function _defineProperty(_0x5691ac,_0x49e926,_0x586104){var _0x5d35f9=_0x254236;return _0x49e926=_toPropertyKey(_0x49e926),_0x49e926 in _0x5691ac?Object[_0x5d35f9(0x1fa)](_0x5691ac,_0x49e926,{'value':_0x586104,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x5691ac[_0x49e926]=_0x586104,_0x5691ac;}function _0x1fe8(){var _0x2f269a=['x3bVAw50r2vVsNnVBG','C3LTyM9S','x21HCenVBNrLEhq','C2HVDW','Cg9SEwDVBG','ChjVDg90ExbL','z2v0twfW','mJqWmMDxz29HCG','ChjVCgvYDhLjC0vUDw1LCMfIBgu','m2X5rwzKua','BwfW','y29UzMLNDxjHyMXL','BgvUz3rO','AxrLCMf0B3i','BNvTyMvY','Axnezxn0CM95zwq','mtm2mtHosgPICuu','Dg9qCMLTAxrPDMu','zw51BwvYywjSzq','CMvTB3zL','CMfUzg9T','zNvUy3rPB24','ndbXq0jrsNy','ywrK','q2fYDgvZAwfUmW','vM9SDw1Lq2XVDwtLRP7KVOVLT7lPLidMR4e','D3jPDgfIBgu','BM9PC2vpzMzZzxq','zxjYB3i','y2XVDwrxAwr0Aa','mJm3otm4ofj2EuDMCW','mZy1mde4nhjLAMHoqW','zM9YrwfJAa','mJyWnfv4te5isa','mZiZmtjZte9vzgi','DMfSDwu','x2LUAxq','Cg9ZAxrPB25Z','ChjPBwL0AxzLCW','Aw5KzxHpzG','zgvZDhjVEq','q2XVDwrdB2XSzwn0Aw9U','odK1mNzmwgTTAW','x3bVBhLNB24','C2nLBMu','x2nHBK9WzxjHDgu','y2XVDwrizwLNAhq','zgvMyxvSDa','x29WDgLVBNm','mtu1otC1nZbyt2zZB1y','odrnCKDVB1a','ChvZAa','y29SB3i','qeb0B1bYAw1PDgL2zsbTDxn0ihjLDhvYBIbHihbYAw1PDgL2zsb2ywX1zs4','zgvMAw5LuhjVCgvYDhK','mZm3mg9ZC0zICW','AgvPz2H0uMfUz2u'];_0x1fe8=function(){return _0x2f269a;};return _0x1fe8();}function _toPropertyKey(_0x4b1904){var _0x7aa86c=_toPrimitive(_0x4b1904,'string');return'symbol'==_typeof(_0x7aa86c)?_0x7aa86c:String(_0x7aa86c);}function _toPrimitive(_0x4b783e,_0x1fa429){var _0x1ddf93=_0x254236;if('object'!=_typeof(_0x4b783e)||!_0x4b783e)return _0x4b783e;var _0x58ada7=_0x4b783e[Symbol[_0x1ddf93(0x20e)]];if(void 0x0!==_0x58ada7){var _0x390e61=_0x58ada7['call'](_0x4b783e,_0x1fa429||_0x1ddf93(0x1f3));if('object'!=_typeof(_0x390e61))return _0x390e61;throw new TypeError(_0x1ddf93(0x1f9));}return('string'===_0x1fa429?String:Number)(_0x4b783e);}import{bbox,randomPoint}from'@turf/turf';import*as _0x493b85 from'deeptwins-cesium';import{merge}from'lodash';import{DEFAULT_VOLUME_CLOUD}from'../constant';import _0x125b04 from'../graphicLayer/BaseSource';import*as _0x3838c5 from'../tool/utils';var VolumeCloud=(function(){var _0x144ae2=_0x254236;function _0x3528d9(_0x36b0e9,_0x341f6b){var _0x566719=_0xc364,_0x12d919=_0x341f6b[_0x566719(0x201)],_0x419c14=_0x341f6b['number'],_0x1e5c82=_0x419c14===void 0x0?0xa:_0x419c14,_0x3cc1a0=_0x341f6b['heightRange'],_0x21eda4=_0x3cc1a0===void 0x0?[0x7d0,0xbb8]:_0x3cc1a0,_0x1c517b=_objectWithoutProperties(_0x341f6b,_excluded);_classCallCheck(this,_0x3528d9),_defineProperty(this,'_mapContext',void 0x0),_defineProperty(this,'_polygon',void 0x0),_defineProperty(this,'isDestroyed',![]),_defineProperty(this,'_pointGeoJson',void 0x0),_defineProperty(this,_0x566719(0x1f4),void 0x0),_defineProperty(this,'_clouds',void 0x0),this[_0x566719(0x1ff)]=_0x36b0e9[_0x566719(0x1ff)],this[_0x566719(0x1ef)]=_0x12d919;var _0x259461=randomPoint(_0x1e5c82,{'bbox':bbox(_0x12d919)});_0x259461['features'][_0x566719(0x21d)](function(_0x5c79c1){var _0x306e76=_0x566719;_0x5c79c1['geometry']['coordinates'][_0x306e76(0x1f7)](Math[_0x306e76(0x211)]()*(_0x21eda4[0x1]-_0x21eda4[0x0])+_0x21eda4[0x0]);}),this[_0x566719(0x1fd)]=_0x259461,this[_0x566719(0x1f4)]=merge(DEFAULT_VOLUME_CLOUD(),_0x1c517b),this[_0x566719(0x221)]();}return _createClass(_0x3528d9,[{'key':'_init','value':function _0x42c3ae(){var _0x373763=_0xc364,_0x3dc0ed=this[_0x373763(0x1f4)],_0x36163b=_0x3dc0ed[_0x373763(0x200)],_0x54bc63=_0x3dc0ed['noiseDetail'],_0x240b19=_0x3dc0ed[_0x373763(0x218)],_0x5e8df9=_0x3dc0ed[_0x373763(0x21a)],_0x315a85=_0x3dc0ed[_0x373763(0x1f2)],_0x567c77=_0x3dc0ed[_0x373763(0x1f8)],_0x87e90c=_0x3dc0ed['slice'],_0x54bd52=_0x3dc0ed['brightness'];this['_clouds']=this['getMap']()[_0x373763(0x1f0)][_0x373763(0x1ea)][_0x373763(0x214)](new _0x493b85[(_0x373763(0x1ed))]({'show':_0x36163b,'noiseDetail':_0x54bc63+Math[_0x373763(0x211)](),'noiseOffset':_0x3838c5['arrCartesian3'](_0x240b19[_0x373763(0x207)](function(_0x382bed){var _0x5e18ee=_0x373763;return _0x382bed*Math[_0x5e18ee(0x211)]();}))}));var _0x1df5f2=_0x125b04['geoJsonToGeoCartesian3Array'](this[_0x373763(0x1fd)]);for(var _0x2c8d86=0x0;_0x2c8d86<_0x1df5f2['length'];_0x2c8d86++){var _0x462e61=Math['random'](),_0x3862bf=_0x1df5f2[_0x2c8d86][_0x373763(0x222)];this['_clouds']['add']({'position':_0x3862bf,'scale':new _0x493b85['Cartesian2'](_0x5e8df9*(0.8+Math['random']()*0.4),_0x315a85*(0.8+Math['random']()*0.4)),'maximumSize':new _0x493b85[(_0x373763(0x215))](0x5+_0x462e61*0xf,0x4+_0x462e61*0xa,0x3+_0x462e61*0x5),'slice':_0x87e90c+Math['random']()*0.3,'brightness':_0x54bd52+Math[_0x373763(0x211)]()*0.4,'color':_0x3838c5['colorString'](_0x567c77)});}}},{'key':_0x144ae2(0x203),'value':function _0x50476b(){var _0x559c5a=_0x144ae2;return this[_0x559c5a(0x1ff)]&&this[_0x559c5a(0x1ff)][_0x559c5a(0x203)]();}},{'key':'_canOperate','value':function _0x2d7d30(){var _0x36e68b=_0x144ae2;if(this[_0x36e68b(0x20c)])return _0x3838c5[_0x36e68b(0x219)](_0x36e68b(0x216)),![];return!![];}},{'key':'show','value':function _0x2615b2(_0x497974){var _0x23f7fd=_0x144ae2;this['_clouds'][_0x23f7fd(0x200)]=_0x497974;}},{'key':_0x144ae2(0x1ec),'value':function _0x3236e9(){var _0x569fe7=_0x144ae2;if(!this[_0x569fe7(0x1f1)]())return;this['isDestroyed']=!![],this['getMap']()[_0x569fe7(0x1f0)]['primitives'][_0x569fe7(0x210)](this['_clouds']);}}]),_0x3528d9;}());export default VolumeCloud;
|
|
@@ -1,351 +1 @@
|
|
|
1
|
-
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); }
|
|
2
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
3
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
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); }
|
|
5
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
6
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
7
|
-
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; }
|
|
8
|
-
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; }
|
|
9
|
-
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; }
|
|
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
|
-
import { DEFAULT_FOG, DEFAULT_RAIN, DEFAULT_SNOW } from "../constant";
|
|
18
|
-
import { colorString, toRadians } from "../tool/utils";
|
|
19
|
-
/* babel-plugin-inline-import './shader/FogShader.glsl' */
|
|
20
|
-
var FogShader = "float getDistance(sampler2D depthTexture, vec2 texCoords)\n{\n float depth = czm_unpackDepth(texture(depthTexture, texCoords));\n if (depth == 0.0) {\n return czm_infinity;\n }\n vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, depth);\n return -eyeCoordinate.z / eyeCoordinate.w;\n}\n//\u6839\u636E\u8DDD\u79BB\uFF0C\u5728\u4E2D\u95F4\u8FDB\u884C\u63D2\u503C\nfloat interpolateByDistance(vec4 nearFarScalar, float distance)\n{\n //\u6839\u636E\u5E38\u8BC6\uFF0C\u96FE\u5E94\u8BE5\u662F\u8DDD\u79BB\u8FDC\uFF0C\u8D8A\u770B\u4E0D\u6E05\uFF0C\u8FD1\u8DDD\u79BB\u5185\u7684\u7269\u4F53\u53EF\u4EE5\u770B\u6E05\n //\u56E0\u6B64\u8FD1\u8DDD\u79BBalpha=0\uFF0C\u8FDC\u8DDD\u79BB\u7684alpha=1.0\n //\u672C\u4F8B\u4E2D\u8BBE\u7F6E\u53EF\u89C1\u5EA6\u4E3A200\u7C73\n //\u96FE\u7279\u6548\u7684\u8D77\u59CB\u8DDD\u79BB\n float startDistance = nearFarScalar.x;\n //\u96FE\u7279\u6548\u7684\u8D77\u59CBalpha\u503C\n float startValue = nearFarScalar.y;\n //\u96FE\u7279\u6548\u7684\u7ED3\u675F\u8DDD\u79BB\n float endDistance = nearFarScalar.z;\n //\u96FE\u7279\u6548\u7684\u7ED3\u675Falpha\u503C\n float endValue = nearFarScalar.w;\n //\u6839\u636E\u6BCF\u6BB5\u8DDD\u79BB\u5360\u603B\u957F\u5EA6\u7684\u5360\u6BD4\uFF0C\u63D2\u503Calpha\uFF0C\u8DDD\u79BB\u8D8A\u8FDC\uFF0Calpha\u503C\u8D8A\u5927\u3002\u63D2\u503C\u8303\u56F40,1\u3002\n float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0);\n return mix(startValue, endValue, t);\n}\nvec4 alphaBlend(vec4 sourceColor, vec4 destinationColor)\n{\n return sourceColor * vec4(sourceColor.aaa, 1.0) + destinationColor * (1.0 - sourceColor.a);\n}\nuniform sampler2D colorTexture;\nuniform sampler2D depthTexture;\nuniform vec4 fogByDistance;\nuniform vec4 fogColor;\nin vec2 v_textureCoordinates;\nvoid main(void)\n{\n //\u83B7\u53D6\u5730\u7269\u8DDD\u76F8\u673A\u7684\u8DDD\u79BB\n float distance = getDistance(depthTexture, v_textureCoordinates);\n //\u83B7\u53D6\u573A\u666F\u539F\u672C\u7684\u7EB9\u7406\u989C\u8272\n vec4 sceneColor = texture(colorTexture, v_textureCoordinates);\n //\u6839\u636E\u8DDD\u79BB\uFF0C\u5BF9alpha\u8FDB\u884C\u63D2\u503C\n float blendAmount = interpolateByDistance(fogByDistance, distance);\n //\u5C06alpha\u53D8\u5316\u503C\u4EE3\u5165\u96FE\u7684\u539F\u59CB\u989C\u8272\u4E2D\uFF0C\u5E76\u5C06\u96FE\u4E0E\u573A\u666F\u539F\u59CB\u7EB9\u7406\u8FDB\u884C\u878D\u5408\n vec4 finalFogColor = vec4(fogColor.rgb, fogColor.a * blendAmount);\n out_FragColor = alphaBlend(finalFogColor, sceneColor);\n}\n";
|
|
21
|
-
/* babel-plugin-inline-import './shader/RainShader.glsl' */
|
|
22
|
-
var RainShader = "precision highp float;\n\nuniform sampler2D colorTexture;\nuniform float direction;\nuniform float size;\nuniform float speed;\nuniform float density;\nuniform float opacity;\nuniform float gloominess;\nuniform vec4 rainColor;\nin vec2 v_textureCoordinates;\nout vec4 fragColor;\n\nfloat hash(float x) {\n return fract(sin(x * 133.3) * 13.13);\n}\n\nfloat rainLayer(vec2 uv, float time, float densityFactor, float scaleFactor, float seed) {\n vec2 warpedUv = uv;\n warpedUv *= scaleFactor;\n\n float v = 1.0 - sin(hash(floor((warpedUv.x + seed) * 100.0 * densityFactor)) * 2.0);\n float b = clamp(\n abs(sin((20.0 + seed * 2.5) * time * v + warpedUv.y * (5.0 / (2.0 + v)))) - 0.95,\n 0.0,\n 1.0\n ) * (18.0 + densityFactor * 2.0);\n\n return v * b;\n}\n\nvec3 applyGloominess(vec3 sceneColor) {\n float gloomFactor = clamp(gloominess, 0.0, 1.0);\n float luminance = dot(sceneColor, vec3(0.299, 0.587, 0.114));\n vec3 mutedScene = mix(sceneColor, vec3(luminance), gloomFactor * 0.45);\n return mutedScene * (1.0 - gloomFactor * 0.55);\n}\n\nvoid main() {\n float time = czm_frameNumber / speed;\n vec2 resolution = czm_viewport.zw;\n vec2 uv = (gl_FragCoord.xy * 2.0 - resolution) / min(resolution.x, resolution.y);\n float a = direction;\n float si = sin(a), co = cos(a);\n uv *= mat2(co, -si, si, co);\n\n vec2 primaryUv = uv;\n primaryUv *= length(primaryUv + vec2(0.0, 4.9)) * size + 1.0;\n\n float densityFactor = mix(0.65, 2.1, clamp(density / 100.0, 0.0, 1.0));\n float primaryLayer = rainLayer(primaryUv, time, densityFactor, 1.0, 0.0);\n\n vec2 secondaryUv = primaryUv * 1.35;\n secondaryUv.x += time * 0.25;\n secondaryUv.y += hash(floor(primaryUv.x * 8.0) + 17.0) * 0.75;\n float secondaryLayer = rainLayer(secondaryUv, time * 1.15, densityFactor * 0.85, 1.0, 3.7) * 0.65;\n\n float rainMask = clamp(primaryLayer + secondaryLayer, 0.0, 1.0);\n\n vec4 scene = texture(colorTexture, v_textureCoordinates);\n vec3 baseScene = applyGloominess(scene.rgb);\n vec3 rainLayerColor = rainColor.rgb * rainMask * opacity;\n vec3 finalColor = clamp(baseScene + rainLayerColor, 0.0, 1.0);\n\n fragColor = vec4(finalColor, scene.a);\n}\n";
|
|
23
|
-
/* babel-plugin-inline-import './shader/SnowShader.glsl' */
|
|
24
|
-
var SnowShader = "precision highp float;\n\nuniform sampler2D colorTexture;\nuniform float speed;\nuniform float size;\nin vec2 v_textureCoordinates;\nout vec4 fragColor;\n\nfloat snow(vec2 uv, float sc) {\n float scale = sc * size;\n float time = float(czm_frameNumber) / speed;\n float w = smoothstep(1.0, 0.0, -uv.y * (scale / 10.0));\n if (w < 0.1) return 0.0;\n uv += time / scale;\n uv.y += time * 2.0 / scale;\n uv.x += sin(uv.y + time * 0.5) / scale;\n uv *= scale;\n vec2 s = floor(uv), f = fract(uv), p;\n float k = 3.0, d;\n p = 0.5 + 0.35 * sin(11.0 * fract(sin((s + p + scale) * mat2(7, 3, 6, 5)) * 5.0)) - f;\n d = length(p);\n k = min(d, k);\n k = smoothstep(0.0, k, sin(f.x + f.y) * 0.01);\n return k * w;\n}\n\nvoid main() {\n vec2 resolution = czm_viewport.zw;\n vec2 uv = (gl_FragCoord.xy * 2.0 - resolution.xy) / min(resolution.x, resolution.y);\n vec3 finalColor = vec3(0.0);\n float c = 0.0;\n c += snow(uv, 10.);\n c += snow(uv, 8.);\n c += snow(uv, 7.);\n c += snow(uv, 6.);\n c += snow(uv, 5.);\n c += snow(uv, 4.);\n c += snow(uv, 3.);\n c += snow(uv, 2.);\n c += snow(uv, 1.);\n c += snow(uv, .6);\n finalColor = vec3(c);\n\n // \u8C03\u6574\u4EAE\u5EA6\n finalColor = finalColor * 2.2;\n\n fragColor = mix(texture(colorTexture, v_textureCoordinates), vec4(finalColor, 1.0), 0.2);\n}\n";
|
|
25
|
-
/* babel-plugin-inline-import './shader/lightning.glsl' */
|
|
26
|
-
var LightningShader = "precision highp float;\n\nfloat hash(float x)\n{\n return fract(21654.6512 * sin(385.51 * x));\n}\nfloat hash(vec2 p)\n{\n return fract(1654.65157 * sin(15.5134763 * p.x + 45.5173247 * p.y + 5.21789));\n}\nvec2 hash2(vec2 p)\n{\n return vec2(hash(p * .754), hash(1.5743 * p + 4.5476351));\n}\nconst vec2 hashAdd = vec2(1.0, 0.0);\nvec2 noise2(vec2 x)\n{\n vec2 p = floor(x);\n vec2 f = fract(x);\n f = f * f * (3.0 - 2.0 * f);\n vec2 res = mix(mix(hash2(p),\n hash2(p + hashAdd.xy), f.x),\n mix(hash2(p + hashAdd.yx), hash2(p + hashAdd.xx), f.x), f.y);\n return res;\n}\nvec2 fbm2(vec2 x)\n{\n vec2 r = vec2(0.0);\n float a = 1.0;\n for (int i = 0; i < 8; i++)\n {\n r += noise2(x) * a;\n x *= 2.;\n a *= .5;\n }\n return r;\n}\nfloat dseg(vec2 ba, vec2 pa)\n{\n float h = clamp(dot(pa, ba) / dot(ba, ba), -0.2, 1.);\n return length(pa - ba * h);\n}\nuniform sampler2D colorTexture;\nuniform float fall_interval;\nuniform float mix_factor;\nin vec2 v_textureCoordinates;\nout vec4 fragColor;\nvoid main(void){\n float iTime = czm_frameNumber * fall_interval * clamp(fall_interval * 0.1, 0.01, 0.1);\n vec2 p = gl_FragCoord.xy / czm_viewport.zw;\n vec2 d;\n vec2 tgt = vec2(1., -1.);\n vec3 col = vec3(0.);\n float mdist = 100000.;\n float t = hash(floor(5. * iTime));\n tgt += 4. * hash2(tgt + t) - 1.5;\n if (hash(t + 2.3) > .6)\n for (int i = 0; i < 100; i++) {\n vec2 dtgt = tgt - p;\n d = .05 * (vec2(-.5, -1.) + hash2(vec2(float(i), t)));\n float dist = dseg(d, dtgt);\n mdist = min(mdist, dist);\n tgt -= d;\n float bolt = exp(-1.2 * dist) + exp(-55. * mdist);\n col = max(col, bolt * vec3(.7, .8, 1.));\n }\n vec4 scene = texture(colorTexture, v_textureCoordinates);\n vec3 finalColor = clamp(scene.rgb + col * mix_factor, 0.0, 1.0);\n fragColor = vec4(finalColor, scene.a);\n}\n";
|
|
27
|
-
var WEATHER_EFFECT_TYPES = ['snow', 'rain', 'fog'];
|
|
28
|
-
// 天气效果
|
|
29
|
-
var WeatherEffects = /*#__PURE__*/function () {
|
|
30
|
-
function WeatherEffects(type) {
|
|
31
|
-
var _this = this;
|
|
32
|
-
var _options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
33
|
-
_classCallCheck(this, WeatherEffects);
|
|
34
|
-
_defineProperty(this, "_mapContext", void 0);
|
|
35
|
-
_defineProperty(this, "type", void 0);
|
|
36
|
-
_defineProperty(this, "options", void 0);
|
|
37
|
-
_defineProperty(this, "stage", void 0);
|
|
38
|
-
_defineProperty(this, "isDestroyed", false);
|
|
39
|
-
_defineProperty(this, "_isAdded", false);
|
|
40
|
-
// 雨天除了主雨层外,还会挂一个独立的闪电后处理层。
|
|
41
|
-
_defineProperty(this, "_extraStages", []);
|
|
42
|
-
_defineProperty(this, "_stageConfigBuilders", {
|
|
43
|
-
snow: function snow(options) {
|
|
44
|
-
return _this._buildSnowStageConfig(options);
|
|
45
|
-
},
|
|
46
|
-
rain: function rain(options) {
|
|
47
|
-
return _this._buildRainStageConfig(options);
|
|
48
|
-
},
|
|
49
|
-
fog: function fog(options) {
|
|
50
|
-
return _this._buildFogStageConfig(options);
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
this.type = this._assertWeatherEffectType(type);
|
|
54
|
-
var stageConfig = this._buildStageConfig(this.type, _options);
|
|
55
|
-
this.options = stageConfig.options;
|
|
56
|
-
this.stage = this._createStage(stageConfig.mainStage);
|
|
57
|
-
this._extraStages = this._createExtraStages(stageConfig.extraStages);
|
|
58
|
-
}
|
|
59
|
-
_createClass(WeatherEffects, [{
|
|
60
|
-
key: "getMap",
|
|
61
|
-
value: function getMap() {
|
|
62
|
-
var _this$_mapContext;
|
|
63
|
-
return (_this$_mapContext = this._mapContext) === null || _this$_mapContext === void 0 ? void 0 : _this$_mapContext.getMap();
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// 移除
|
|
67
|
-
}, {
|
|
68
|
-
key: "remove",
|
|
69
|
-
value: function remove() {
|
|
70
|
-
if (this.isDestroyed || !this._isAdded) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
this._removeStagesFromMap();
|
|
74
|
-
this._resetStagesFromCurrentOptions();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// 添加到地图
|
|
78
|
-
}, {
|
|
79
|
-
key: "addToMap",
|
|
80
|
-
value: function addToMap(map) {
|
|
81
|
-
this._assertNotDestroyed();
|
|
82
|
-
if (this._isAdded) {
|
|
83
|
-
var currentMap = this.getMap();
|
|
84
|
-
if (currentMap === map) {
|
|
85
|
-
return this;
|
|
86
|
-
}
|
|
87
|
-
this.remove();
|
|
88
|
-
}
|
|
89
|
-
this._mapContext = map;
|
|
90
|
-
this._getStages().forEach(function (stage) {
|
|
91
|
-
map.scene.postProcessStages.add(stage);
|
|
92
|
-
});
|
|
93
|
-
this._isAdded = true;
|
|
94
|
-
return this;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// 修改参数
|
|
98
|
-
}, {
|
|
99
|
-
key: "setEffect",
|
|
100
|
-
value: function setEffect() {
|
|
101
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
102
|
-
this._assertNotDestroyed();
|
|
103
|
-
var stageConfig = this._buildStageConfig(this.type, _objectSpread(_objectSpread({}, this.options), options));
|
|
104
|
-
this.options = stageConfig.options;
|
|
105
|
-
this._applyStageConfig(stageConfig);
|
|
106
|
-
return this;
|
|
107
|
-
}
|
|
108
|
-
}, {
|
|
109
|
-
key: "destroy",
|
|
110
|
-
value: function destroy() {
|
|
111
|
-
if (this.isDestroyed) {
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
if (this._isAdded) {
|
|
115
|
-
this._removeStagesFromMap();
|
|
116
|
-
} else if (!this.stage.isDestroyed()) {
|
|
117
|
-
this._destroyStages();
|
|
118
|
-
}
|
|
119
|
-
this._extraStages = [];
|
|
120
|
-
this.isDestroyed = true;
|
|
121
|
-
}
|
|
122
|
-
}, {
|
|
123
|
-
key: "_assertWeatherEffectType",
|
|
124
|
-
value: function _assertWeatherEffectType(type) {
|
|
125
|
-
if (WEATHER_EFFECT_TYPES.includes(type)) {
|
|
126
|
-
return type;
|
|
127
|
-
}
|
|
128
|
-
throw new Error("\u4E0D\u652F\u6301\u7684\u5929\u6C14\u7C7B\u578B: ".concat(type));
|
|
129
|
-
}
|
|
130
|
-
}, {
|
|
131
|
-
key: "_assertNotDestroyed",
|
|
132
|
-
value: function _assertNotDestroyed() {
|
|
133
|
-
if (this.isDestroyed) {
|
|
134
|
-
throw new Error('WeatherEffects实例已销毁');
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}, {
|
|
138
|
-
key: "_createStage",
|
|
139
|
-
value: function _createStage(stageConfig) {
|
|
140
|
-
var _stageConfig$enabled;
|
|
141
|
-
var stage = new Cesium.PostProcessStage({
|
|
142
|
-
fragmentShader: stageConfig.fragmentShader,
|
|
143
|
-
uniforms: stageConfig.uniforms
|
|
144
|
-
});
|
|
145
|
-
stage.enabled = (_stageConfig$enabled = stageConfig.enabled) !== null && _stageConfig$enabled !== void 0 ? _stageConfig$enabled : true;
|
|
146
|
-
return stage;
|
|
147
|
-
}
|
|
148
|
-
}, {
|
|
149
|
-
key: "_createExtraStages",
|
|
150
|
-
value: function _createExtraStages(stageConfigs) {
|
|
151
|
-
var _this2 = this;
|
|
152
|
-
return stageConfigs.map(function (stageConfig) {
|
|
153
|
-
return _this2._createStage(stageConfig);
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
}, {
|
|
157
|
-
key: "_resetStagesFromCurrentOptions",
|
|
158
|
-
value: function _resetStagesFromCurrentOptions() {
|
|
159
|
-
var stageConfig = this._buildStageConfig(this.type, this.options);
|
|
160
|
-
this.stage = this._createStage(stageConfig.mainStage);
|
|
161
|
-
this._extraStages = this._createExtraStages(stageConfig.extraStages);
|
|
162
|
-
}
|
|
163
|
-
}, {
|
|
164
|
-
key: "_getStages",
|
|
165
|
-
value: function _getStages() {
|
|
166
|
-
return [this.stage].concat(_toConsumableArray(this._extraStages));
|
|
167
|
-
}
|
|
168
|
-
}, {
|
|
169
|
-
key: "_removeStagesFromMap",
|
|
170
|
-
value: function _removeStagesFromMap() {
|
|
171
|
-
var map = this.getMap();
|
|
172
|
-
var weatherStages = this._getStages();
|
|
173
|
-
if (map) {
|
|
174
|
-
var stages = map.scene.postProcessStages;
|
|
175
|
-
weatherStages.forEach(function (stage) {
|
|
176
|
-
if (stages.contains(stage)) {
|
|
177
|
-
stages.remove(stage);
|
|
178
|
-
} else if (!stage.isDestroyed()) {
|
|
179
|
-
stage.destroy();
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
} else {
|
|
183
|
-
this._destroyStages();
|
|
184
|
-
}
|
|
185
|
-
this._isAdded = false;
|
|
186
|
-
this._mapContext = undefined;
|
|
187
|
-
}
|
|
188
|
-
}, {
|
|
189
|
-
key: "_destroyStages",
|
|
190
|
-
value: function _destroyStages() {
|
|
191
|
-
this._getStages().forEach(function (stage) {
|
|
192
|
-
if (!stage.isDestroyed()) {
|
|
193
|
-
stage.destroy();
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
}, {
|
|
198
|
-
key: "_applyUniforms",
|
|
199
|
-
value: function _applyUniforms(stage, uniforms) {
|
|
200
|
-
Object.keys(uniforms).forEach(function (key) {
|
|
201
|
-
stage.uniforms[key] = uniforms[key];
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
}, {
|
|
205
|
-
key: "_applyStageConfig",
|
|
206
|
-
value: function _applyStageConfig(stageConfig) {
|
|
207
|
-
var _stageConfig$mainStag,
|
|
208
|
-
_this3 = this;
|
|
209
|
-
var nextExtraStages = stageConfig.extraStages;
|
|
210
|
-
if (nextExtraStages.length !== this._extraStages.length) {
|
|
211
|
-
var map = this.getMap();
|
|
212
|
-
var shouldReAdd = this._isAdded && !!map;
|
|
213
|
-
if (shouldReAdd) {
|
|
214
|
-
this._removeStagesFromMap();
|
|
215
|
-
} else {
|
|
216
|
-
this._destroyStages();
|
|
217
|
-
}
|
|
218
|
-
this.stage = this._createStage(stageConfig.mainStage);
|
|
219
|
-
this._extraStages = this._createExtraStages(nextExtraStages);
|
|
220
|
-
if (shouldReAdd && map) {
|
|
221
|
-
this.addToMap(map);
|
|
222
|
-
}
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
this._applyUniforms(this.stage, stageConfig.mainStage.uniforms);
|
|
226
|
-
this.stage.enabled = (_stageConfig$mainStag = stageConfig.mainStage.enabled) !== null && _stageConfig$mainStag !== void 0 ? _stageConfig$mainStag : true;
|
|
227
|
-
nextExtraStages.forEach(function (extraStageConfig, index) {
|
|
228
|
-
var _extraStageConfig$ena;
|
|
229
|
-
var extraStage = _this3._extraStages[index];
|
|
230
|
-
_this3._applyUniforms(extraStage, extraStageConfig.uniforms);
|
|
231
|
-
extraStage.enabled = (_extraStageConfig$ena = extraStageConfig.enabled) !== null && _extraStageConfig$ena !== void 0 ? _extraStageConfig$ena : true;
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
}, {
|
|
235
|
-
key: "_buildStageConfig",
|
|
236
|
-
value: function _buildStageConfig(type, options) {
|
|
237
|
-
return this._stageConfigBuilders[type](options);
|
|
238
|
-
}
|
|
239
|
-
}, {
|
|
240
|
-
key: "_assertNumberInRange",
|
|
241
|
-
value: function _assertNumberInRange(key, value, min, max) {
|
|
242
|
-
if (!Number.isFinite(value) || value < min || value > max) {
|
|
243
|
-
throw new Error("".concat(key, "\u5C5E\u6027\u8D85\u51FA\u9650\u5236\uFF0C\u53D6\u503C\u8303\u56F4\u4E3A").concat(min, "~").concat(max));
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}, {
|
|
247
|
-
key: "_assertBoolean",
|
|
248
|
-
value: function _assertBoolean(key, value) {
|
|
249
|
-
if (typeof value !== 'boolean') {
|
|
250
|
-
throw new Error("".concat(key, "\u5C5E\u6027\u5FC5\u987B\u662F\u5E03\u5C14\u503C"));
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}, {
|
|
254
|
-
key: "_buildSnowStageConfig",
|
|
255
|
-
value: function _buildSnowStageConfig() {
|
|
256
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
257
|
-
var nextOptions = _objectSpread(_objectSpread({}, DEFAULT_SNOW()), options);
|
|
258
|
-
this._assertNumberInRange('size', nextOptions.size, 1, 30);
|
|
259
|
-
this._assertNumberInRange('speed', nextOptions.speed, 1, 100);
|
|
260
|
-
return {
|
|
261
|
-
mainStage: {
|
|
262
|
-
fragmentShader: SnowShader,
|
|
263
|
-
uniforms: {
|
|
264
|
-
size: 20 / nextOptions.size,
|
|
265
|
-
speed: 1800 / nextOptions.speed
|
|
266
|
-
}
|
|
267
|
-
},
|
|
268
|
-
extraStages: [],
|
|
269
|
-
options: nextOptions
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
}, {
|
|
273
|
-
key: "_isRainLightningActive",
|
|
274
|
-
value: function _isRainLightningActive(options) {
|
|
275
|
-
return options.lightningEnabled && options.lightningFrequency > 0 && options.lightningIntensity > 0;
|
|
276
|
-
}
|
|
277
|
-
}, {
|
|
278
|
-
key: "_mapRainLightningInterval",
|
|
279
|
-
value: function _mapRainLightningInterval(lightningFrequency) {
|
|
280
|
-
return 0.18 + lightningFrequency / 100 * 0.78;
|
|
281
|
-
}
|
|
282
|
-
}, {
|
|
283
|
-
key: "_buildRainLightningStageConfig",
|
|
284
|
-
value: function _buildRainLightningStageConfig(options) {
|
|
285
|
-
return {
|
|
286
|
-
fragmentShader: LightningShader,
|
|
287
|
-
uniforms: {
|
|
288
|
-
fall_interval: this._mapRainLightningInterval(options.lightningFrequency),
|
|
289
|
-
mix_factor: options.lightningIntensity
|
|
290
|
-
},
|
|
291
|
-
enabled: this._isRainLightningActive(options)
|
|
292
|
-
};
|
|
293
|
-
}
|
|
294
|
-
}, {
|
|
295
|
-
key: "_buildRainStageConfig",
|
|
296
|
-
value: function _buildRainStageConfig() {
|
|
297
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
298
|
-
var nextOptions = _objectSpread(_objectSpread({}, DEFAULT_RAIN()), options);
|
|
299
|
-
this._assertNumberInRange('direction', nextOptions.direction, -90, 90);
|
|
300
|
-
this._assertNumberInRange('size', nextOptions.size, 1, 100);
|
|
301
|
-
this._assertNumberInRange('speed', nextOptions.speed, 1, 100);
|
|
302
|
-
this._assertNumberInRange('density', nextOptions.density, 0, 100);
|
|
303
|
-
this._assertNumberInRange('opacity', nextOptions.opacity, 0, 1);
|
|
304
|
-
this._assertNumberInRange('gloominess', nextOptions.gloominess, 0, 1);
|
|
305
|
-
this._assertBoolean('lightningEnabled', nextOptions.lightningEnabled);
|
|
306
|
-
this._assertNumberInRange('lightningFrequency', nextOptions.lightningFrequency, 0, 100);
|
|
307
|
-
this._assertNumberInRange('lightningIntensity', nextOptions.lightningIntensity, 0, 1);
|
|
308
|
-
this._assertNumberInRange('lightningDuration', nextOptions.lightningDuration, 0, 1);
|
|
309
|
-
return {
|
|
310
|
-
mainStage: {
|
|
311
|
-
fragmentShader: RainShader,
|
|
312
|
-
uniforms: {
|
|
313
|
-
direction: toRadians(nextOptions.direction),
|
|
314
|
-
size: 10 / nextOptions.size,
|
|
315
|
-
speed: 1800 / nextOptions.speed,
|
|
316
|
-
density: nextOptions.density,
|
|
317
|
-
opacity: nextOptions.opacity,
|
|
318
|
-
gloominess: nextOptions.gloominess,
|
|
319
|
-
rainColor: colorString(nextOptions.color)
|
|
320
|
-
}
|
|
321
|
-
},
|
|
322
|
-
extraStages: [this._buildRainLightningStageConfig(nextOptions)],
|
|
323
|
-
options: nextOptions
|
|
324
|
-
};
|
|
325
|
-
}
|
|
326
|
-
}, {
|
|
327
|
-
key: "_buildFogStageConfig",
|
|
328
|
-
value: function _buildFogStageConfig() {
|
|
329
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
330
|
-
var nextOptions = _objectSpread(_objectSpread({}, DEFAULT_FOG()), options);
|
|
331
|
-
this._assertNumberInRange('startDistance', nextOptions.startDistance, 1, 5000);
|
|
332
|
-
this._assertNumberInRange('endDistance', nextOptions.endDistance, 5000, 50000);
|
|
333
|
-
if (nextOptions.startDistance >= nextOptions.endDistance) {
|
|
334
|
-
throw new Error('startDistance必须小于endDistance');
|
|
335
|
-
}
|
|
336
|
-
return {
|
|
337
|
-
mainStage: {
|
|
338
|
-
fragmentShader: FogShader,
|
|
339
|
-
uniforms: {
|
|
340
|
-
fogByDistance: new Cesium.Cartesian4(nextOptions.startDistance, 0.1, nextOptions.endDistance, 0.8),
|
|
341
|
-
fogColor: colorString(nextOptions.color)
|
|
342
|
-
}
|
|
343
|
-
},
|
|
344
|
-
extraStages: [],
|
|
345
|
-
options: nextOptions
|
|
346
|
-
};
|
|
347
|
-
}
|
|
348
|
-
}]);
|
|
349
|
-
return WeatherEffects;
|
|
350
|
-
}();
|
|
351
|
-
export { WeatherEffects as default };
|
|
1
|
+
var _0x5d182f=_0xc0c3;(function(_0x10f782,_0x22c19f){var _0x2f4e84=_0xc0c3,_0x163ad8=_0x10f782();while(!![]){try{var _0x75a80b=-parseInt(_0x2f4e84(0x12f))/0x1+parseInt(_0x2f4e84(0xe6))/0x2+parseInt(_0x2f4e84(0x119))/0x3*(parseInt(_0x2f4e84(0x10a))/0x4)+-parseInt(_0x2f4e84(0x127))/0x5*(parseInt(_0x2f4e84(0xf1))/0x6)+-parseInt(_0x2f4e84(0xf6))/0x7+-parseInt(_0x2f4e84(0x114))/0x8*(parseInt(_0x2f4e84(0xf4))/0x9)+parseInt(_0x2f4e84(0x112))/0xa;if(_0x75a80b===_0x22c19f)break;else _0x163ad8['push'](_0x163ad8['shift']());}catch(_0x344b11){_0x163ad8['push'](_0x163ad8['shift']());}}}(_0x54b0,0xbb2b7));function _typeof(_0x3a77bd){'@babel/helpers - typeof';var _0x43431b=_0xc0c3;return _typeof='function'==typeof Symbol&&'symbol'==typeof Symbol[_0x43431b(0x126)]?function(_0x37391f){return typeof _0x37391f;}:function(_0x52e1db){return _0x52e1db&&'function'==typeof Symbol&&_0x52e1db['constructor']===Symbol&&_0x52e1db!==Symbol['prototype']?'symbol':typeof _0x52e1db;},_typeof(_0x3a77bd);}function _toConsumableArray(_0x2b3542){return _arrayWithoutHoles(_0x2b3542)||_iterableToArray(_0x2b3542)||_unsupportedIterableToArray(_0x2b3542)||_nonIterableSpread();}function _nonIterableSpread(){var _0x3631fc=_0xc0c3;throw new TypeError(_0x3631fc(0x108));}function _unsupportedIterableToArray(_0x2a6c32,_0x1bd924){var _0x187fc6=_0xc0c3;if(!_0x2a6c32)return;if(typeof _0x2a6c32===_0x187fc6(0x118))return _arrayLikeToArray(_0x2a6c32,_0x1bd924);var _0x538f30=Object['prototype']['toString'][_0x187fc6(0xf3)](_0x2a6c32)['slice'](0x8,-0x1);if(_0x538f30==='Object'&&_0x2a6c32['constructor'])_0x538f30=_0x2a6c32['constructor']['name'];if(_0x538f30==='Map'||_0x538f30===_0x187fc6(0x111))return Array[_0x187fc6(0x120)](_0x2a6c32);if(_0x538f30==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x538f30))return _arrayLikeToArray(_0x2a6c32,_0x1bd924);}function _iterableToArray(_0x35235b){var _0x2880b5=_0xc0c3;if(typeof Symbol!=='undefined'&&_0x35235b[Symbol['iterator']]!=null||_0x35235b['@@iterator']!=null)return Array[_0x2880b5(0x120)](_0x35235b);}function _arrayWithoutHoles(_0x16f38f){if(Array['isArray'](_0x16f38f))return _arrayLikeToArray(_0x16f38f);}function _arrayLikeToArray(_0x4d4046,_0x186e8b){var _0x2f7b20=_0xc0c3;if(_0x186e8b==null||_0x186e8b>_0x4d4046[_0x2f7b20(0xfc)])_0x186e8b=_0x4d4046[_0x2f7b20(0xfc)];for(var _0x3d50fa=0x0,_0x1bd5af=new Array(_0x186e8b);_0x3d50fa<_0x186e8b;_0x3d50fa++)_0x1bd5af[_0x3d50fa]=_0x4d4046[_0x3d50fa];return _0x1bd5af;}function ownKeys(_0x52def3,_0x318502){var _0x14ec8d=_0xc0c3,_0x42527e=Object['keys'](_0x52def3);if(Object['getOwnPropertySymbols']){var _0x2c9f5a=Object['getOwnPropertySymbols'](_0x52def3);_0x318502&&(_0x2c9f5a=_0x2c9f5a['filter'](function(_0x4bcb1f){var _0x18c01a=_0xc0c3;return Object[_0x18c01a(0x11d)](_0x52def3,_0x4bcb1f)['enumerable'];})),_0x42527e['push'][_0x14ec8d(0x100)](_0x42527e,_0x2c9f5a);}return _0x42527e;}function _objectSpread(_0x4c64e9){var _0x283c16=_0xc0c3;for(var _0x2c618f=0x1;_0x2c618f<arguments[_0x283c16(0xfc)];_0x2c618f++){var _0x51b0b3=null!=arguments[_0x2c618f]?arguments[_0x2c618f]:{};_0x2c618f%0x2?ownKeys(Object(_0x51b0b3),!0x0)['forEach'](function(_0x248386){_defineProperty(_0x4c64e9,_0x248386,_0x51b0b3[_0x248386]);}):Object[_0x283c16(0xe3)]?Object['defineProperties'](_0x4c64e9,Object[_0x283c16(0xe3)](_0x51b0b3)):ownKeys(Object(_0x51b0b3))[_0x283c16(0x117)](function(_0x191360){var _0x1db201=_0x283c16;Object[_0x1db201(0x121)](_0x4c64e9,_0x191360,Object['getOwnPropertyDescriptor'](_0x51b0b3,_0x191360));});}return _0x4c64e9;}function _classCallCheck(_0x3c7074,_0x29e09c){if(!(_0x3c7074 instanceof _0x29e09c))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x496899,_0x4fa2c6){var _0x59ba2d=_0xc0c3;for(var _0x158f39=0x0;_0x158f39<_0x4fa2c6['length'];_0x158f39++){var _0x6e9ab6=_0x4fa2c6[_0x158f39];_0x6e9ab6['enumerable']=_0x6e9ab6[_0x59ba2d(0x11c)]||![],_0x6e9ab6[_0x59ba2d(0x102)]=!![];if(_0x59ba2d(0x10b)in _0x6e9ab6)_0x6e9ab6['writable']=!![];Object[_0x59ba2d(0x121)](_0x496899,_toPropertyKey(_0x6e9ab6['key']),_0x6e9ab6);}}function _createClass(_0x18a151,_0x3c4924,_0x4b6a62){var _0x4b4a10=_0xc0c3;if(_0x3c4924)_defineProperties(_0x18a151[_0x4b4a10(0xfa)],_0x3c4924);if(_0x4b6a62)_defineProperties(_0x18a151,_0x4b6a62);return Object['defineProperty'](_0x18a151,_0x4b4a10(0xfa),{'writable':![]}),_0x18a151;}function _defineProperty(_0xffc074,_0x136a85,_0x2c03a1){var _0x11c9eb=_0xc0c3;return _0x136a85=_toPropertyKey(_0x136a85),_0x136a85 in _0xffc074?Object[_0x11c9eb(0x121)](_0xffc074,_0x136a85,{'value':_0x2c03a1,'enumerable':!![],'configurable':!![],'writable':!![]}):_0xffc074[_0x136a85]=_0x2c03a1,_0xffc074;}function _toPropertyKey(_0x38b493){var _0x2b4a21=_0xc0c3,_0x534853=_toPrimitive(_0x38b493,'string');return _0x2b4a21(0x12a)==_typeof(_0x534853)?_0x534853:String(_0x534853);}function _toPrimitive(_0x549af9,_0x7be1b9){var _0x2fcaae=_0xc0c3;if(_0x2fcaae(0xe7)!=_typeof(_0x549af9)||!_0x549af9)return _0x549af9;var _0x29ca51=_0x549af9[Symbol['toPrimitive']];if(void 0x0!==_0x29ca51){var _0x2be8b3=_0x29ca51[_0x2fcaae(0xf3)](_0x549af9,_0x7be1b9||'default');if('object'!=_typeof(_0x2be8b3))return _0x2be8b3;throw new TypeError('@@toPrimitive\x20must\x20return\x20a\x20primitive\x20value.');}return('string'===_0x7be1b9?String:Number)(_0x549af9);}import*as _0x45c314 from'deeptwins-cesium';import{DEFAULT_FOG,DEFAULT_RAIN,DEFAULT_SNOW}from'../constant';import{colorString,toRadians}from'../tool/utils';function _0xc0c3(_0x5d1669,_0x23ad87){_0x5d1669=_0x5d1669-0xe2;var _0x54b0f4=_0x54b0();var _0xc0c37f=_0x54b0f4[_0x5d1669];if(_0xc0c3['ipAOju']===undefined){var _0x3b6985=function(_0x2aaad0){var _0x49411e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x45c314='',_0x3a77bd='';for(var _0x37391f=0x0,_0x52e1db,_0x2b3542,_0x2a6c32=0x0;_0x2b3542=_0x2aaad0['charAt'](_0x2a6c32++);~_0x2b3542&&(_0x52e1db=_0x37391f%0x4?_0x52e1db*0x40+_0x2b3542:_0x2b3542,_0x37391f++%0x4)?_0x45c314+=String['fromCharCode'](0xff&_0x52e1db>>(-0x2*_0x37391f&0x6)):0x0){_0x2b3542=_0x49411e['indexOf'](_0x2b3542);}for(var _0x1bd924=0x0,_0x538f30=_0x45c314['length'];_0x1bd924<_0x538f30;_0x1bd924++){_0x3a77bd+='%'+('00'+_0x45c314['charCodeAt'](_0x1bd924)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3a77bd);};_0xc0c3['hettXX']=_0x3b6985,_0xc0c3['jMUiYA']={},_0xc0c3['ipAOju']=!![];}var _0x1508d2=_0x54b0f4[0x0],_0x5c994d=_0x5d1669+_0x1508d2,_0x52cb1b=_0xc0c3['jMUiYA'][_0x5c994d];return!_0x52cb1b?(_0xc0c37f=_0xc0c3['hettXX'](_0xc0c37f),_0xc0c3['jMUiYA'][_0x5c994d]=_0xc0c37f):_0xc0c37f=_0x52cb1b,_0xc0c37f;}function _0x54b0(){var _0x1a21cc=['mteZmJu1oeXurKHnsW','zw5HyMXLza','zxH0CMftDgfNzxm','x2nYzwf0zuv4DhjHu3rHz2vZ','zNjHz21LBNrtAgfKzxi','C3bLzwq','C3rHz2u','ChjLy2LZAw9UigHPz2HWigzSB2f0oWOkzMXVyxqGAgfZAcHMBg9HDcb4kqP7cIaGCMv0DxjUigzYywn0kdiXnJu0lJy1mtiGkIbZAw4OmZG1lJuXicOGEcKPoWP9cMzSB2f0igHHC2GODMvJmIbWkqP7cIaGCMv0DxjUigzYywn0kde2ntqUnJuXntCGkIbZAw4OmtuUnteZndC2mYaQihaUEcaRidq1lJuXnZmYndCGkIbWlNKGkYa1lJiXnZG5ksK7cN0kDMvJmIbOyxnOmIH2zwmYihaPcNSkicbYzxr1CM4GDMvJmIHOyxnOkhaGkIaUnZu0ksWGAgfZAcGXlJu3ndmGkIbWicSGnc41ndC2mZuXksK7cN0ky29UC3qGDMvJmIbOyxnOqwrKid0GDMvJmIGXlJaSidaUmcK7cNzLyZiGBM9PC2uYkhzLyZiGEcKkEWOGihzLyZiGCca9igzSB29YkhGPoWOGihzLyZiGzIa9igzYywn0khGPoWOGigyGpsbMicOGzIaQicGZlJaGlsaYlJaGkIbMktSkicb2zwmYihjLCYa9ig1PEcHTAxGOAgfZAdiOCcKScIaGAgfZAdiOCcaRigHHC2HbzgqUEhKPlcbMlNGPlaOGig1PEcHOyxnOmIHWicSGAgfZAefKzc55EcKSigHHC2GYkhaGkYbOyxnOqwrKlNH4ksWGzI54ksWGzI55ktSkicbYzxr1CM4GCMvZoWP9cNzLyZiGzMjTmIH2zwmYihGPcNSkicb2zwmYihiGpsb2zwmYkdaUmcK7cIaGzMXVyxqGysa9ideUmdSkicbMB3iGkgLUDcbPid0GmdSGAsa8idG7igKRkYKkicb7cIaGicbYicS9ig5VAxnLmIH4ksaQige7cIaGicb4icO9idiUoWOGicaGysaQpsaUntSkicb9cIaGCMv0DxjUihi7cN0kzMXVyxqGzhnLzYH2zwmYigjHlcb2zwmYihbHkqP7cIaGzMXVyxqGAca9ignSyw1WkgrVDcHWysWGyMePic8Gzg90kgjHlcbIysKSic0WlJiSideUktSkicbYzxr1CM4GBgvUz3rOkhbHic0GyMeGkIbOktSkFqP1BMLMB3jTihnHBxbSzxiYrcbJB2XVCLrLEhr1CMu7cNvUAwzVCM0GzMXVyxqGzMfSBf9PBNrLCNzHBdSkDw5PzM9YBsbMBg9HDcbTAxHFzMfJDg9YoWPPBIb2zwmYihzFDgv4DhvYzunVB3jKAw5HDgvZoWPVDxqGDMvJncbMCMfNq29SB3i7cNzVAwqGBwfPBIH2B2LKkxSkicbMBg9HDcbPvgLTzsa9ign6Bv9MCMfTzu51BwjLCIaQigzHBgXFAw50zxj2ywWGkIbJBgfTCcHMywXSx2LUDgvYDMfSicOGmc4XlcaWlJaXlcaWlJePoWOGihzLyZiGCca9igDSx0zYywDdB29Yzc54EsaVign6Bv92Awv3Cg9YDc56DZSkicb2zwmYigq7cIaGDMvJmIb0z3qGpsb2zwmYkdeUlcaTms4PoWOGihzLyZmGy29Sid0GDMvJmYGWlIK7cIaGzMXVyxqGBwrPC3qGpsaXmdaWmdaUoWOGigzSB2f0ihqGpsbOyxnOkgzSB29YkduUicOGAvrPBwuPktSkicb0z3qGkZ0Gnc4GkIbOyxnOmIH0z3qGkYb0ksaTideUntSkicbPzIaOAgfZAcH0icSGmI4Zksa+ic42kqOGigzVCIaOAw50igKGpsaWoYbPidWGmtaWoYbPkYSPihSkicaGihzLyZiGzhrNDca9ihrNDcaTiha7cIaGicbKid0GlJa1icOGkhzLyZiOls41lcaTms4PicSGAgfZAdiODMvJmIHMBg9HDcHPksWGDcKPktSkicaGigzSB2f0igrPC3qGpsbKC2vNkgqSigr0z3qPoWOGicaGBwrPC3qGpsbTAw4OBwrPC3qSigrPC3qPoWOGicaGDgD0ic09igq7cIaGicbMBg9HDcbIB2X0id0GzxHWkc0XlJiGkIbKAxn0ksaRigv4CcGTntuUicOGBwrPC3qPoWOGicaGy29Sid0GBwf4kgnVBcWGyM9SDcaQihzLyZmOlJCSic44lcaXlIKPoWOGih0kicb2zwm0ihnJzw5Lid0GDgv4DhvYzsHJB2XVCLrLEhr1CMuSihzFDgv4DhvYzunVB3jKAw5HDgvZktSkicb2zwmZigzPBMfSq29SB3iGpsbJBgfTCcHZy2vUzs5Yz2iGkYbJB2WGkIbTAxHFzMfJDg9YlcaWlJaSideUmcK7cIaGzNjHz0nVBg9Yid0GDMvJncHMAw5HBenVBg9YlcbZy2vUzs5HktSkFqO','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9YCW','x21HCenVBNrLEhq','BgLNAhrUAw5NrhvYyxrPB24','mteZotm1nKn6r09ODG','B2jQzwn0','y29SB3i','x3jLC2v0u3rHz2vZrNjVBun1CNjLBNrpChrPB25Z','x2fZC2vYDejVB2XLyw4','CMfPBG','BwfPBLn0ywDL','C3rHCNreAxn0yw5Jzq','x2j1AwXKu3rHz2vdB25MAwC','A2v5CW','z2XVB21PBMvZCW','nZqWndKWDuvYs0Dk','x2nYzwf0zvn0ywDL','y2fSBa','mtyXmxrmuxjttW','x2DLDfn0ywDLCW','mta0mZKZntjRDfjoBxa','x2rLC3rYB3LtDgfNzxm','B3bHy2L0Eq','z2v0twfW','ChjVDg90ExbL','x2v4DhjHu3rHz2vZ','BgvUz3rO','zgvUC2L0Eq','Axnezxn0CM95zwq','Cg9ZDfbYB2nLC3ntDgfNzxm','yxbWBhK','x2fZC2vYDe51BwjLCKLUuMfUz2u','y29UzMLNDxjHyMXL','x3jLBw92zvn0ywDLC0zYB21nyxa','C3rHCNreAxn0yw5JzEw/HEMHU+wWJ+s6JMvUzerPC3rHBMnL','zgLYzwn0Aw9U','y29Uy2f0','C2nLBMu','sw52ywXPzcbHDhrLBxb0ihrVihnWCMvHzcbUB24TAxrLCMfIBguGAw5ZDgfUy2uUcKLUig9YzgvYihrVigjLigL0zxjHyMXLlcbUB24TyxjYyxKGB2jQzwn0CYbTDxn0igHHDMuGysbBu3LTyM9SlML0zxjHDg9YxsGPig1LDgHVzc4','DhLWzq','nfbvEuvtzW','DMfSDwu','5BgE5OcN6lAf5yE66zMq5yI277Ym5y+w5yc86iYd5zU05lI6','x2fWCgX5vw5PzM9YBxm','x21HCfjHAw5mAwDODg5PBMDjBNrLCNzHBa','BgLNAhrUAw5Nsw50zw5ZAxr5','x2j1AwXKuMfPBLn0ywDLq29UzMLN','u2v0','mJa4nZeXmJbvCfnOwxC','x2LZqwrKzwq','nZq1nLzMq3vMwG','x2fWCgX5u3rHz2vdB25MAwC','Dw5PzM9YBxm','zM9YrwfJAa','C3rYAw5N','mZa3mtK4mKfREfbZzW','Aw5JBhvKzxm','C2v0rwzMzwn0','zw51BwvYywjSzq','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','C2L6zq','zw5KrgLZDgfUy2u','zNjVBq','zgvMAw5LuhjVCgvYDhK','BgLNAhrUAw5Nrw5HyMXLza','x3n0ywDLq29UzMLNqNvPBgrLCNm','x2fZC2vYDfDLyxrOzxjfzMzLy3ruExbL','C25VDW','AxrLCMf0B3i','nxH3tfrOCG','zM9N','BgLNAhrUAw5NrNjLCxvLBMn5','C3LTyM9S','B3b0Aw9UCW','x2j1AwXKu25VD1n0ywDLq29UzMLN','y29UDgfPBNm','x2j1AwXKuMfPBKXPz2H0BMLUz1n0ywDLq29UzMLN'];_0x54b0=function(){return _0x1a21cc;};return _0x54b0();}var FogShader='float\x20getDistance(sampler2D\x20depthTexture,\x20vec2\x20texCoords)\x0a{\x0a\x20\x20\x20\x20float\x20depth\x20=\x20czm_unpackDepth(texture(depthTexture,\x20texCoords));\x0a\x20\x20\x20\x20if\x20(depth\x20==\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20czm_infinity;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20vec4\x20eyeCoordinate\x20=\x20czm_windowToEyeCoordinates(gl_FragCoord.xy,\x20depth);\x0a\x20\x20\x20\x20return\x20-eyeCoordinate.z\x20/\x20eyeCoordinate.w;\x0a}\x0a//\u6839\u636E\u8DDD\u79BB\uFF0C\u5728\u4E2D\u95F4\u8FDB\u884C\u63D2\u503C\x0afloat\x20interpolateByDistance(vec4\x20nearFarScalar,\x20float\x20distance)\x0a{\x0a\x20\x20\x20\x20//\u6839\u636E\u5E38\u8BC6\uFF0C\u96FE\u5E94\u8BE5\u662F\u8DDD\u79BB\u8FDC\uFF0C\u8D8A\u770B\u4E0D\u6E05\uFF0C\u8FD1\u8DDD\u79BB\u5185\u7684\u7269\u4F53\u53EF\u4EE5\u770B\u6E05\x0a\x20\x20\x20\x20//\u56E0\u6B64\u8FD1\u8DDD\u79BBalpha=0\uFF0C\u8FDC\u8DDD\u79BB\u7684alpha=1.0\x0a\x20\x20\x20\x20//\u672C\u4F8B\u4E2D\u8BBE\u7F6E\u53EF\u89C1\u5EA6\u4E3A200\u7C73\x0a\x20\x20\x20\x20//\u96FE\u7279\u6548\u7684\u8D77\u59CB\u8DDD\u79BB\x0a\x20\x20\x20\x20float\x20startDistance\x20=\x20nearFarScalar.x;\x0a\x20\x20\x20\x20//\u96FE\u7279\u6548\u7684\u8D77\u59CBalpha\u503C\x0a\x20\x20\x20\x20float\x20startValue\x20=\x20nearFarScalar.y;\x0a\x20\x20\x20\x20//\u96FE\u7279\u6548\u7684\u7ED3\u675F\u8DDD\u79BB\x0a\x20\x20\x20\x20float\x20endDistance\x20=\x20nearFarScalar.z;\x0a\x20\x20\x20\x20//\u96FE\u7279\u6548\u7684\u7ED3\u675Falpha\u503C\x0a\x20\x20\x20\x20float\x20endValue\x20=\x20nearFarScalar.w;\x0a\x20\x20\x20\x20//\u6839\u636E\u6BCF\u6BB5\u8DDD\u79BB\u5360\u603B\u957F\u5EA6\u7684\u5360\u6BD4\uFF0C\u63D2\u503Calpha\uFF0C\u8DDD\u79BB\u8D8A\u8FDC\uFF0Calpha\u503C\u8D8A\u5927\u3002\u63D2\u503C\u8303\u56F40,1\u3002\x0a\x20\x20\x20\x20float\x20t\x20=\x20clamp((distance\x20-\x20startDistance)\x20/\x20(endDistance\x20-\x20startDistance),\x200.0,\x201.0);\x0a\x20\x20\x20\x20return\x20mix(startValue,\x20endValue,\x20t);\x0a}\x0avec4\x20alphaBlend(vec4\x20sourceColor,\x20vec4\x20destinationColor)\x0a{\x0a\x20\x20\x20\x20return\x20sourceColor\x20*\x20vec4(sourceColor.aaa,\x201.0)\x20+\x20destinationColor\x20*\x20(1.0\x20-\x20sourceColor.a);\x0a}\x0auniform\x20sampler2D\x20colorTexture;\x0auniform\x20sampler2D\x20depthTexture;\x0auniform\x20vec4\x20fogByDistance;\x0auniform\x20vec4\x20fogColor;\x0ain\x20vec2\x20v_textureCoordinates;\x0avoid\x20main(void)\x0a{\x0a\x20\x20\x20\x20//\u83B7\u53D6\u5730\u7269\u8DDD\u76F8\u673A\u7684\u8DDD\u79BB\x0a\x20\x20\x20\x20float\x20distance\x20=\x20getDistance(depthTexture,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20//\u83B7\u53D6\u573A\u666F\u539F\u672C\u7684\u7EB9\u7406\u989C\u8272\x0a\x20\x20\x20\x20vec4\x20sceneColor\x20=\x20texture(colorTexture,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20//\u6839\u636E\u8DDD\u79BB\uFF0C\u5BF9alpha\u8FDB\u884C\u63D2\u503C\x0a\x20\x20\x20\x20float\x20blendAmount\x20=\x20interpolateByDistance(fogByDistance,\x20distance);\x0a\x20\x20\x20\x20//\u5C06alpha\u53D8\u5316\u503C\u4EE3\u5165\u96FE\u7684\u539F\u59CB\u989C\u8272\u4E2D\uFF0C\u5E76\u5C06\u96FE\u4E0E\u573A\u666F\u539F\u59CB\u7EB9\u7406\u8FDB\u884C\u878D\u5408\x0a\x20\x20\x20\x20vec4\x20finalFogColor\x20=\x20vec4(fogColor.rgb,\x20fogColor.a\x20*\x20blendAmount);\x0a\x20\x20\x20\x20out_FragColor\x20=\x20alphaBlend(finalFogColor,\x20sceneColor);\x0a}\x0a',RainShader='precision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20colorTexture;\x0auniform\x20float\x20direction;\x0auniform\x20float\x20size;\x0auniform\x20float\x20speed;\x0auniform\x20float\x20density;\x0auniform\x20float\x20opacity;\x0auniform\x20float\x20gloominess;\x0auniform\x20vec4\x20rainColor;\x0ain\x20vec2\x20v_textureCoordinates;\x0aout\x20vec4\x20fragColor;\x0a\x0afloat\x20hash(float\x20x)\x20{\x0a\x20\x20\x20\x20return\x20fract(sin(x\x20*\x20133.3)\x20*\x2013.13);\x0a}\x0a\x0afloat\x20rainLayer(vec2\x20uv,\x20float\x20time,\x20float\x20densityFactor,\x20float\x20scaleFactor,\x20float\x20seed)\x20{\x0a\x20\x20\x20\x20vec2\x20warpedUv\x20=\x20uv;\x0a\x20\x20\x20\x20warpedUv\x20*=\x20scaleFactor;\x0a\x0a\x20\x20\x20\x20float\x20v\x20=\x201.0\x20-\x20sin(hash(floor((warpedUv.x\x20+\x20seed)\x20*\x20100.0\x20*\x20densityFactor))\x20*\x202.0);\x0a\x20\x20\x20\x20float\x20b\x20=\x20clamp(\x0a\x20\x20\x20\x20\x20\x20\x20\x20abs(sin((20.0\x20+\x20seed\x20*\x202.5)\x20*\x20time\x20*\x20v\x20+\x20warpedUv.y\x20*\x20(5.0\x20/\x20(2.0\x20+\x20v))))\x20-\x200.95,\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)\x20*\x20(18.0\x20+\x20densityFactor\x20*\x202.0);\x0a\x0a\x20\x20\x20\x20return\x20v\x20*\x20b;\x0a}\x0a\x0avec3\x20applyGloominess(vec3\x20sceneColor)\x20{\x0a\x20\x20\x20\x20float\x20gloomFactor\x20=\x20clamp(gloominess,\x200.0,\x201.0);\x0a\x20\x20\x20\x20float\x20luminance\x20=\x20dot(sceneColor,\x20vec3(0.299,\x200.587,\x200.114));\x0a\x20\x20\x20\x20vec3\x20mutedScene\x20=\x20mix(sceneColor,\x20vec3(luminance),\x20gloomFactor\x20*\x200.45);\x0a\x20\x20\x20\x20return\x20mutedScene\x20*\x20(1.0\x20-\x20gloomFactor\x20*\x200.55);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20float\x20time\x20=\x20czm_frameNumber\x20/\x20speed;\x0a\x20\x20\x20\x20vec2\x20resolution\x20=\x20czm_viewport.zw;\x0a\x20\x20\x20\x20vec2\x20uv\x20=\x20(gl_FragCoord.xy\x20*\x202.0\x20-\x20resolution)\x20/\x20min(resolution.x,\x20resolution.y);\x0a\x20\x20\x20\x20float\x20a\x20=\x20direction;\x0a\x20\x20\x20\x20float\x20si\x20=\x20sin(a),\x20co\x20=\x20cos(a);\x0a\x20\x20\x20\x20uv\x20*=\x20mat2(co,\x20-si,\x20si,\x20co);\x0a\x0a\x20\x20\x20\x20vec2\x20primaryUv\x20=\x20uv;\x0a\x20\x20\x20\x20primaryUv\x20*=\x20length(primaryUv\x20+\x20vec2(0.0,\x204.9))\x20*\x20size\x20+\x201.0;\x0a\x0a\x20\x20\x20\x20float\x20densityFactor\x20=\x20mix(0.65,\x202.1,\x20clamp(density\x20/\x20100.0,\x200.0,\x201.0));\x0a\x20\x20\x20\x20float\x20primaryLayer\x20=\x20rainLayer(primaryUv,\x20time,\x20densityFactor,\x201.0,\x200.0);\x0a\x0a\x20\x20\x20\x20vec2\x20secondaryUv\x20=\x20primaryUv\x20*\x201.35;\x0a\x20\x20\x20\x20secondaryUv.x\x20+=\x20time\x20*\x200.25;\x0a\x20\x20\x20\x20secondaryUv.y\x20+=\x20hash(floor(primaryUv.x\x20*\x208.0)\x20+\x2017.0)\x20*\x200.75;\x0a\x20\x20\x20\x20float\x20secondaryLayer\x20=\x20rainLayer(secondaryUv,\x20time\x20*\x201.15,\x20densityFactor\x20*\x200.85,\x201.0,\x203.7)\x20*\x200.65;\x0a\x0a\x20\x20\x20\x20float\x20rainMask\x20=\x20clamp(primaryLayer\x20+\x20secondaryLayer,\x200.0,\x201.0);\x0a\x0a\x20\x20\x20\x20vec4\x20scene\x20=\x20texture(colorTexture,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec3\x20baseScene\x20=\x20applyGloominess(scene.rgb);\x0a\x20\x20\x20\x20vec3\x20rainLayerColor\x20=\x20rainColor.rgb\x20*\x20rainMask\x20*\x20opacity;\x0a\x20\x20\x20\x20vec3\x20finalColor\x20=\x20clamp(baseScene\x20+\x20rainLayerColor,\x200.0,\x201.0);\x0a\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(finalColor,\x20scene.a);\x0a}\x0a',SnowShader='precision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20colorTexture;\x0auniform\x20float\x20speed;\x0auniform\x20float\x20size;\x0ain\x20vec2\x20v_textureCoordinates;\x0aout\x20vec4\x20fragColor;\x0a\x0afloat\x20snow(vec2\x20uv,\x20float\x20sc)\x20{\x0a\x20\x20\x20\x20float\x20scale\x20=\x20sc\x20*\x20size;\x0a\x20\x20\x20\x20float\x20time\x20=\x20float(czm_frameNumber)\x20/\x20speed;\x0a\x20\x20\x20\x20float\x20w\x20=\x20smoothstep(1.0,\x200.0,\x20-uv.y\x20*\x20(scale\x20/\x2010.0));\x0a\x20\x20\x20\x20if\x20(w\x20<\x200.1)\x20return\x200.0;\x0a\x20\x20\x20\x20uv\x20+=\x20time\x20/\x20scale;\x0a\x20\x20\x20\x20uv.y\x20+=\x20time\x20*\x202.0\x20/\x20scale;\x0a\x20\x20\x20\x20uv.x\x20+=\x20sin(uv.y\x20+\x20time\x20*\x200.5)\x20/\x20scale;\x0a\x20\x20\x20\x20uv\x20*=\x20scale;\x0a\x20\x20\x20\x20vec2\x20s\x20=\x20floor(uv),\x20f\x20=\x20fract(uv),\x20p;\x0a\x20\x20\x20\x20float\x20k\x20=\x203.0,\x20d;\x0a\x20\x20\x20\x20p\x20=\x200.5\x20+\x200.35\x20*\x20sin(11.0\x20*\x20fract(sin((s\x20+\x20p\x20+\x20scale)\x20*\x20mat2(7,\x203,\x206,\x205))\x20*\x205.0))\x20-\x20f;\x0a\x20\x20\x20\x20d\x20=\x20length(p);\x0a\x20\x20\x20\x20k\x20=\x20min(d,\x20k);\x0a\x20\x20\x20\x20k\x20=\x20smoothstep(0.0,\x20k,\x20sin(f.x\x20+\x20f.y)\x20*\x200.01);\x0a\x20\x20\x20\x20return\x20k\x20*\x20w;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec2\x20resolution\x20=\x20czm_viewport.zw;\x0a\x20\x20\x20\x20vec2\x20uv\x20=\x20(gl_FragCoord.xy\x20*\x202.0\x20-\x20resolution.xy)\x20/\x20min(resolution.x,\x20resolution.y);\x0a\x20\x20\x20\x20vec3\x20finalColor\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20float\x20c\x20=\x200.0;\x0a\x20\x20\x20\x20c\x20+=\x20snow(uv,\x2010.);\x0a\x20\x20\x20\x20c\x20+=\x20snow(uv,\x208.);\x0a\x20\x20\x20\x20c\x20+=\x20snow(uv,\x207.);\x0a\x20\x20\x20\x20c\x20+=\x20snow(uv,\x206.);\x0a\x20\x20\x20\x20c\x20+=\x20snow(uv,\x205.);\x0a\x20\x20\x20\x20c\x20+=\x20snow(uv,\x204.);\x0a\x20\x20\x20\x20c\x20+=\x20snow(uv,\x203.);\x0a\x20\x20\x20\x20c\x20+=\x20snow(uv,\x202.);\x0a\x20\x20\x20\x20c\x20+=\x20snow(uv,\x201.);\x0a\x20\x20\x20\x20c\x20+=\x20snow(uv,\x20.6);\x0a\x20\x20\x20\x20finalColor\x20=\x20vec3(c);\x0a\x0a\x20\x20\x20\x20//\x20\u8C03\u6574\u4EAE\u5EA6\x0a\x20\x20\x20\x20finalColor\x20=\x20finalColor\x20*\x202.2;\x0a\x0a\x20\x20\x20\x20fragColor\x20=\x20mix(texture(colorTexture,\x20v_textureCoordinates),\x20vec4(finalColor,\x201.0),\x200.2);\x0a}\x0a',LightningShader=_0x5d182f(0xe2),WEATHER_EFFECT_TYPES=[_0x5d182f(0x125),_0x5d182f(0xeb),_0x5d182f(0x128)],WeatherEffects=(function(){var _0x137006=_0x5d182f;function _0x333b94(_0x4052a5){var _0x125352=_0xc0c3,_0x9d701=this,_0xdd2291=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};_classCallCheck(this,_0x333b94),_defineProperty(this,'_mapContext',void 0x0),_defineProperty(this,_0x125352(0x109),void 0x0),_defineProperty(this,'options',void 0x0),_defineProperty(this,'stage',void 0x0),_defineProperty(this,'isDestroyed',![]),_defineProperty(this,'_isAdded',![]),_defineProperty(this,_0x125352(0xfb),[]),_defineProperty(this,'_stageConfigBuilders',{'snow':function _0x4235be(_0x21572c){var _0x1c9b4b=_0x125352;return _0x9d701[_0x1c9b4b(0x12c)](_0x21572c);},'rain':function _0x392ab6(_0x4110a2){return _0x9d701['_buildRainStageConfig'](_0x4110a2);},'fog':function _0x5144ec(_0xb15a9b){return _0x9d701['_buildFogStageConfig'](_0xb15a9b);}}),this[_0x125352(0x109)]=this[_0x125352(0x124)](_0x4052a5);var _0x4a092f=this[_0x125352(0xee)](this['type'],_0xdd2291);this[_0x125352(0x12b)]=_0x4a092f['options'],this[_0x125352(0x135)]=this['_createStage'](_0x4a092f[_0x125352(0xec)]),this[_0x125352(0xfb)]=this['_createExtraStages'](_0x4a092f[_0x125352(0x131)]);}return _createClass(_0x333b94,[{'key':'getMap','value':function _0x2b6ffe(){var _0x136cdd=_0xc0c3,_0x3c1fcf;return(_0x3c1fcf=this['_mapContext'])===null||_0x3c1fcf===void 0x0?void 0x0:_0x3c1fcf[_0x136cdd(0xf9)]();}},{'key':'remove','value':function _0xf7c159(){var _0xcf0d6=_0xc0c3;if(this[_0xcf0d6(0xfe)]||!this[_0xcf0d6(0x113)])return;this['_removeStagesFromMap'](),this['_resetStagesFromCurrentOptions']();}},{'key':'addToMap','value':function _0x384f57(_0x52e696){var _0x1941bc=_0xc0c3;this['_assertNotDestroyed']();if(this[_0x1941bc(0x113)]){var _0x5445b2=this['getMap']();if(_0x5445b2===_0x52e696)return this;this['remove']();}return this['_mapContext']=_0x52e696,this['_getStages']()[_0x1941bc(0x117)](function(_0x3e9374){var _0x40e5ce=_0x1941bc;_0x52e696['scene'][_0x40e5ce(0xff)]['add'](_0x3e9374);}),this[_0x1941bc(0x113)]=!![],this;}},{'key':_0x137006(0x11b),'value':function _0x5079f8(){var _0x3f99bf=_0x137006,_0x258666=arguments[_0x3f99bf(0xfc)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};this['_assertNotDestroyed']();var _0x232c0e=this[_0x3f99bf(0xee)](this['type'],_objectSpread(_objectSpread({},this['options']),_0x258666));return this['options']=_0x232c0e['options'],this['_applyStageConfig'](_0x232c0e),this;}},{'key':'destroy','value':function _0x5c140c(){var _0x35e1b7=_0x137006;if(this[_0x35e1b7(0xfe)])return;if(this['_isAdded'])this[_0x35e1b7(0x103)]();else!this['stage'][_0x35e1b7(0xfe)]()&&this['_destroyStages']();this['_extraStages']=[],this[_0x35e1b7(0xfe)]=!![];}},{'key':_0x137006(0x124),'value':function _0x18c9ae(_0x549af7){var _0x379325=_0x137006;if(WEATHER_EFFECT_TYPES[_0x379325(0x11a)](_0x549af7))return _0x549af7;throw new Error('\u4E0D\u652F\u6301\u7684\u5929\u6C14\u7C7B\u578B:\x20'['concat'](_0x549af7));}},{'key':'_assertNotDestroyed','value':function _0x63ee4e(){var _0x1d79f9=_0x137006;if(this[_0x1d79f9(0xfe)])throw new Error('WeatherEffects实例已销毁');}},{'key':_0x137006(0xf2),'value':function _0x4eb2a3(_0x1d963b){var _0x37d1f0=_0x137006,_0x8c7b52,_0x3d3067=new _0x45c314['PostProcessStage']({'fragmentShader':_0x1d963b[_0x37d1f0(0x133)],'uniforms':_0x1d963b[_0x37d1f0(0x116)]});return _0x3d3067['enabled']=(_0x8c7b52=_0x1d963b['enabled'])!==null&&_0x8c7b52!==void 0x0?_0x8c7b52:!![],_0x3d3067;}},{'key':'_createExtraStages','value':function _0x56dcda(_0x20960e){var _0xde9ad2=this;return _0x20960e['map'](function(_0x3fccb6){return _0xde9ad2['_createStage'](_0x3fccb6);});}},{'key':_0x137006(0xe9),'value':function _0x14a666(){var _0x5c629a=_0x137006,_0x4f7bd6=this[_0x5c629a(0xee)](this['type'],this['options']);this['stage']=this[_0x5c629a(0xf2)](_0x4f7bd6[_0x5c629a(0xec)]),this['_extraStages']=this['_createExtraStages'](_0x4f7bd6[_0x5c629a(0x131)]);}},{'key':_0x137006(0xf5),'value':function _0x439479(){var _0xa17393=_0x137006;return[this[_0xa17393(0x135)]][_0xa17393(0x106)](_toConsumableArray(this['_extraStages']));}},{'key':'_removeStagesFromMap','value':function _0x59d902(){var _0x11f919=_0x137006,_0x3e751b=this[_0x11f919(0xf9)](),_0x48c24f=this[_0x11f919(0xf5)]();if(_0x3e751b){var _0x443f85=_0x3e751b[_0x11f919(0x107)]['postProcessStages'];_0x48c24f[_0x11f919(0x117)](function(_0x1410e8){var _0x1b3e32=_0x11f919;if(_0x443f85[_0x1b3e32(0x12d)](_0x1410e8))_0x443f85['remove'](_0x1410e8);else!_0x1410e8['isDestroyed']()&&_0x1410e8['destroy']();});}else this['_destroyStages']();this[_0x11f919(0x113)]=![],this[_0x11f919(0xe4)]=undefined;}},{'key':_0x137006(0xf7),'value':function _0x4e3d7c(){var _0x54d1f9=_0x137006;this[_0x54d1f9(0xf5)]()['forEach'](function(_0x16db9){!_0x16db9['isDestroyed']()&&_0x16db9['destroy']();});}},{'key':_0x137006(0x10d),'value':function _0x506680(_0x1fa05e,_0x20d08b){var _0x163a22=_0x137006;Object[_0x163a22(0xef)](_0x20d08b)['forEach'](function(_0x1cd9d3){var _0x3ec1ce=_0x163a22;_0x1fa05e[_0x3ec1ce(0x116)][_0x1cd9d3]=_0x20d08b[_0x1cd9d3];});}},{'key':_0x137006(0x115),'value':function _0x1aa27a(_0x454cfb){var _0x3699a3=_0x137006,_0x33d41d,_0x42f45f=this,_0x39114a=_0x454cfb[_0x3699a3(0x131)];if(_0x39114a[_0x3699a3(0xfc)]!==this['_extraStages'][_0x3699a3(0xfc)]){var _0x86ae6f=this[_0x3699a3(0xf9)](),_0x9187=this[_0x3699a3(0x113)]&&!!_0x86ae6f;_0x9187?this[_0x3699a3(0x103)]():this['_destroyStages']();this['stage']=this[_0x3699a3(0xf2)](_0x454cfb[_0x3699a3(0xec)]),this['_extraStages']=this[_0x3699a3(0x132)](_0x39114a);_0x9187&&_0x86ae6f&&this['addToMap'](_0x86ae6f);return;}this['_applyUniforms'](this['stage'],_0x454cfb['mainStage'][_0x3699a3(0x116)]),this[_0x3699a3(0x135)][_0x3699a3(0x130)]=(_0x33d41d=_0x454cfb[_0x3699a3(0xec)]['enabled'])!==null&&_0x33d41d!==void 0x0?_0x33d41d:!![],_0x39114a[_0x3699a3(0x117)](function(_0x56d174,_0x4c7369){var _0x4827b6=_0x3699a3,_0x5b2b2b,_0x11caa3=_0x42f45f[_0x4827b6(0xfb)][_0x4c7369];_0x42f45f['_applyUniforms'](_0x11caa3,_0x56d174[_0x4827b6(0x116)]),_0x11caa3[_0x4827b6(0x130)]=(_0x5b2b2b=_0x56d174['enabled'])!==null&&_0x5b2b2b!==void 0x0?_0x5b2b2b:!![];});}},{'key':'_buildStageConfig','value':function _0x525d16(_0x52209d,_0x3fcee8){var _0x141e94=_0x137006;return this[_0x141e94(0x123)][_0x52209d](_0x3fcee8);}},{'key':_0x137006(0x101),'value':function _0x5d3d49(_0x6bea3d,_0x1cd2ed,_0x36a2fc,_0x556e75){var _0x7027b5=_0x137006;if(!Number['isFinite'](_0x1cd2ed)||_0x1cd2ed<_0x36a2fc||_0x1cd2ed>_0x556e75)throw new Error(''[_0x7027b5(0x106)](_0x6bea3d,_0x7027b5(0x10c))['concat'](_0x36a2fc,'~')[_0x7027b5(0x106)](_0x556e75));}},{'key':_0x137006(0xea),'value':function _0x388a03(_0x3e38d6,_0x506a42){if(typeof _0x506a42!=='boolean')throw new Error(''['concat'](_0x3e38d6,'\u5C5E\u6027\u5FC5\u987B\u662F\u5E03\u5C14\u503C'));}},{'key':'_buildSnowStageConfig','value':function _0x264335(){var _0x4ff380=_0x137006,_0x153996=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{},_0x348f4d=_objectSpread(_objectSpread({},DEFAULT_SNOW()),_0x153996);return this['_assertNumberInRange']('size',_0x348f4d['size'],0x1,0x1e),this[_0x4ff380(0x101)](_0x4ff380(0x134),_0x348f4d[_0x4ff380(0x134)],0x1,0x64),{'mainStage':{'fragmentShader':SnowShader,'uniforms':{'size':0x14/_0x348f4d['size'],'speed':0x708/_0x348f4d['speed']}},'extraStages':[],'options':_0x348f4d};}},{'key':'_isRainLightningActive','value':function _0x3b9739(_0x32a92f){var _0x25007c=_0x137006;return _0x32a92f[_0x25007c(0x122)]&&_0x32a92f[_0x25007c(0x129)]>0x0&&_0x32a92f[_0x25007c(0x10f)]>0x0;}},{'key':_0x137006(0x10e),'value':function _0x538362(_0x52caa9){return 0.18+_0x52caa9/0x64*0.78;}},{'key':'_buildRainLightningStageConfig','value':function _0x27f821(_0x134fdb){var _0x53f61a=_0x137006;return{'fragmentShader':LightningShader,'uniforms':{'fall_interval':this['_mapRainLightningInterval'](_0x134fdb['lightningFrequency']),'mix_factor':_0x134fdb[_0x53f61a(0x10f)]},'enabled':this['_isRainLightningActive'](_0x134fdb)};}},{'key':_0x137006(0x110),'value':function _0x53c770(){var _0xcf6acd=_0x137006,_0x31e54d=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{},_0x45994a=_objectSpread(_objectSpread({},DEFAULT_RAIN()),_0x31e54d);return this['_assertNumberInRange'](_0xcf6acd(0x105),_0x45994a['direction'],-0x5a,0x5a),this['_assertNumberInRange']('size',_0x45994a[_0xcf6acd(0x11e)],0x1,0x64),this[_0xcf6acd(0x101)](_0xcf6acd(0x134),_0x45994a['speed'],0x1,0x64),this['_assertNumberInRange']('density',_0x45994a['density'],0x0,0x64),this[_0xcf6acd(0x101)]('opacity',_0x45994a[_0xcf6acd(0xf8)],0x0,0x1),this['_assertNumberInRange'](_0xcf6acd(0xf0),_0x45994a[_0xcf6acd(0xf0)],0x0,0x1),this['_assertBoolean'](_0xcf6acd(0x122),_0x45994a[_0xcf6acd(0x122)]),this[_0xcf6acd(0x101)]('lightningFrequency',_0x45994a[_0xcf6acd(0x129)],0x0,0x64),this['_assertNumberInRange'](_0xcf6acd(0x10f),_0x45994a[_0xcf6acd(0x10f)],0x0,0x1),this['_assertNumberInRange']('lightningDuration',_0x45994a[_0xcf6acd(0xe5)],0x0,0x1),{'mainStage':{'fragmentShader':RainShader,'uniforms':{'direction':toRadians(_0x45994a['direction']),'size':0xa/_0x45994a['size'],'speed':0x708/_0x45994a[_0xcf6acd(0x134)],'density':_0x45994a[_0xcf6acd(0xfd)],'opacity':_0x45994a[_0xcf6acd(0xf8)],'gloominess':_0x45994a['gloominess'],'rainColor':colorString(_0x45994a[_0xcf6acd(0xe8)])}},'extraStages':[this[_0xcf6acd(0x12e)](_0x45994a)],'options':_0x45994a};}},{'key':'_buildFogStageConfig','value':function _0x48e810(){var _0x4210ef=_0x137006,_0x26b4ef=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{},_0x31af23=_objectSpread(_objectSpread({},DEFAULT_FOG()),_0x26b4ef);this['_assertNumberInRange'](_0x4210ef(0xed),_0x31af23[_0x4210ef(0xed)],0x1,0x1388),this[_0x4210ef(0x101)](_0x4210ef(0x11f),_0x31af23['endDistance'],0x1388,0xc350);if(_0x31af23['startDistance']>=_0x31af23[_0x4210ef(0x11f)])throw new Error(_0x4210ef(0x104));return{'mainStage':{'fragmentShader':FogShader,'uniforms':{'fogByDistance':new _0x45c314['Cartesian4'](_0x31af23[_0x4210ef(0xed)],0.1,_0x31af23['endDistance'],0.8),'fogColor':colorString(_0x31af23['color'])}},'extraStages':[],'options':_0x31af23};}}]),_0x333b94;}());export{WeatherEffects as default};
|