deeptwins-engine-3d 0.1.76 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/dist/assets/Build/DeepTwins/Image/noise.png +0 -0
  2. package/dist/assets/Build/DeepTwins/Workers/CustomRasterClip.worker.js +1 -2
  3. package/dist/assets/Build/DeepTwins/Workers/MvtVector.worker.js +1 -1
  4. package/dist/assets/Build/Map3d/ThirdParty/Workers/zip-web-worker.js +640 -0
  5. package/dist/assets/Build/Map3d/ThirdParty/wasm_splats_bg.wasm +0 -0
  6. package/dist/assets/Build/Map3d/ThirdParty/zip-module.wasm +0 -0
  7. package/dist/assets/Build/Map3d/Workers/chunk-27NG6PQR.js +456 -0
  8. package/dist/assets/Build/Map3d/Workers/chunk-2JVMMMWT.js +353 -0
  9. package/dist/assets/Build/Map3d/Workers/chunk-2Y2XYQCS.js +1481 -0
  10. package/dist/assets/Build/Map3d/Workers/chunk-34RF3V5G.js +220 -0
  11. package/dist/assets/Build/Map3d/Workers/chunk-35H7BYLJ.js +1800 -0
  12. package/dist/assets/Build/Map3d/Workers/chunk-57OGEF5V.js +435 -0
  13. package/dist/assets/Build/Map3d/Workers/chunk-5PX3DYJA.js +196 -0
  14. package/dist/assets/Build/Map3d/Workers/chunk-7B5XGQRN.js +171 -0
  15. package/dist/assets/Build/Map3d/Workers/chunk-ATLWOZFF.js +39 -0
  16. package/dist/assets/Build/Map3d/Workers/chunk-BMSUECTA.js +1055 -0
  17. package/dist/assets/Build/Map3d/Workers/chunk-C6IA4TKW.js +476 -0
  18. package/dist/assets/Build/Map3d/Workers/chunk-CZ44I32U.js +157 -0
  19. package/dist/assets/Build/Map3d/Workers/chunk-DE6UV44R.js +122 -0
  20. package/dist/assets/Build/Map3d/Workers/chunk-DUCCKVOG.js +834 -0
  21. package/dist/assets/Build/Map3d/Workers/chunk-EBJBPIYX.js +239 -0
  22. package/dist/assets/Build/Map3d/Workers/chunk-EYSYQ2R6.js +138 -0
  23. package/dist/assets/Build/Map3d/Workers/chunk-FMCAAUQI.js +368 -0
  24. package/dist/assets/Build/Map3d/Workers/chunk-GMYZNRRQ.js +2717 -0
  25. package/dist/assets/Build/Map3d/Workers/chunk-GWPNZZV4.js +781 -0
  26. package/dist/assets/Build/Map3d/Workers/chunk-HLP2U4KW.js +758 -0
  27. package/dist/assets/Build/Map3d/Workers/chunk-HSJSUPQV.js +500 -0
  28. package/dist/assets/Build/Map3d/Workers/chunk-I73Q3AG7.js +58 -0
  29. package/dist/assets/Build/Map3d/Workers/chunk-IMZ4YIMV.js +511 -0
  30. package/dist/assets/Build/Map3d/Workers/chunk-IZSK4DVF.js +421 -0
  31. package/dist/assets/Build/Map3d/Workers/chunk-JKLMRPKK.js +75 -0
  32. package/dist/assets/Build/Map3d/Workers/chunk-KGM345JM.js +691 -0
  33. package/dist/assets/Build/Map3d/Workers/chunk-L4IR5U4G.js +102 -0
  34. package/dist/assets/Build/Map3d/Workers/chunk-MG4EVQH2.js +44 -0
  35. package/dist/assets/Build/Map3d/Workers/chunk-NXWEFAZJ.js +300 -0
  36. package/dist/assets/Build/Map3d/Workers/chunk-PDFAJISJ.js +59 -0
  37. package/dist/assets/Build/Map3d/Workers/chunk-PHWZFJR5.js +100 -0
  38. package/dist/assets/Build/Map3d/Workers/chunk-PLE7CHBE.js +101 -0
  39. package/dist/assets/Build/Map3d/Workers/chunk-PN3GIZ5Q.js +163 -0
  40. package/dist/assets/Build/Map3d/Workers/chunk-PXL5XLHV.js +1073 -0
  41. package/dist/assets/Build/Map3d/Workers/chunk-QYXOF5JC.js +959 -0
  42. package/dist/assets/Build/Map3d/Workers/chunk-R2LIFXV3.js +115 -0
  43. package/dist/assets/Build/Map3d/Workers/chunk-R4W6IRJZ.js +10357 -0
  44. package/dist/assets/Build/Map3d/Workers/chunk-R5PZXG56.js +1258 -0
  45. package/dist/assets/Build/Map3d/Workers/chunk-RZQLZIUI.js +629 -0
  46. package/dist/assets/Build/Map3d/Workers/chunk-SIBDD6Y4.js +390 -0
  47. package/dist/assets/Build/Map3d/Workers/chunk-U5NN6JTQ.js +398 -0
  48. package/dist/assets/Build/Map3d/Workers/chunk-UA5RPPP3.js +73 -0
  49. package/dist/assets/Build/Map3d/Workers/chunk-UXLKFS3C.js +305 -0
  50. package/dist/assets/Build/Map3d/Workers/chunk-VUX4BQIM.js +37 -0
  51. package/dist/assets/Build/Map3d/Workers/chunk-WJDUUUJS.js +684 -0
  52. package/dist/assets/Build/Map3d/Workers/chunk-XBJOJHWX.js +139 -0
  53. package/dist/assets/Build/Map3d/Workers/chunk-XJDMTNKD.js +634 -0
  54. package/dist/assets/Build/Map3d/Workers/chunk-XUCXZZE5.js +963 -0
  55. package/dist/assets/Build/Map3d/Workers/chunk-YIKGVMJ5.js +287 -0
  56. package/dist/assets/Build/Map3d/Workers/chunk-YTNCIBPQ.js +262 -0
  57. package/dist/assets/Build/Map3d/Workers/chunk-ZMDUYETO.js +55 -0
  58. package/dist/assets/Build/Map3d/Workers/chunk-ZW52HXFN.js +2857 -0
  59. package/dist/esm/analyze/LineOfSightAnalysis.js +1 -326
  60. package/dist/esm/analyze/SubmergenceAnalysis.js +1 -137
  61. package/dist/esm/analyze/SunLightAnalysis.js +1 -91
  62. package/dist/esm/analyze/TerrainExcavationAnalysis.js +1 -612
  63. package/dist/esm/analyze/ViewshedAnalysis.js +1 -292
  64. package/dist/esm/cameraControl/ModelRoamHistory.js +1 -639
  65. package/dist/esm/cameraControl/ModelRoamRealTime.js +1 -874
  66. package/dist/esm/cameraControl/Roam.js +1 -418
  67. package/dist/esm/cameraControl/Rotate.js +1 -134
  68. package/dist/esm/cameraControl/RotateInPlace.js +1 -99
  69. package/dist/esm/constant.d.ts +90 -0
  70. package/dist/esm/constant.js +1 -1287
  71. package/dist/esm/deepTwins/index.js +1 -121
  72. package/dist/esm/drawCommand/index.js +1 -3
  73. package/dist/esm/drawCommand/viewShed/Event.js +1 -142
  74. package/dist/esm/drawCommand/viewShed/RectangularSensorPrimitive.js +1 -1306
  75. package/dist/esm/drawCommand/viewShed/ViewShadowPrimitive.js +1 -66
  76. package/dist/esm/drawCommand/viewShed/ViewShedAnalyserLayer.js +1 -466
  77. package/dist/esm/drawCommand/viewShed/ViewShedMap.js +1 -1238
  78. package/dist/esm/drawCommand/viewShed/config.js +1 -21
  79. package/dist/esm/drawCommand/volumeCloud/GeometryPrimitive.js +1 -89
  80. package/dist/esm/drawCommand/volumeCloud/ImprovedNoise.js +1 -112
  81. package/dist/esm/drawCommand/volumeCloud/VolumeClouds.js +1 -91
  82. package/dist/esm/drawer/algorithm.js +1 -314
  83. package/dist/esm/drawer/common.js +1 -965
  84. package/dist/esm/drawer/coordinate.js +1 -184
  85. package/dist/esm/drawer/index.d.ts +1 -1
  86. package/dist/esm/drawer/index.js +1 -688
  87. package/dist/esm/drawer/plotUtil.js +1 -266
  88. package/dist/esm/drawer/shape/Assemble.js +1 -415
  89. package/dist/esm/drawer/shape/AttackArrow.js +1 -442
  90. package/dist/esm/drawer/shape/BaseShape.js +1 -383
  91. package/dist/esm/drawer/shape/Bow.js +1 -375
  92. package/dist/esm/drawer/shape/Circle.js +1 -461
  93. package/dist/esm/drawer/shape/Curve.js +1 -386
  94. package/dist/esm/drawer/shape/DragPoint.js +1 -211
  95. package/dist/esm/drawer/shape/Elliptic.js +1 -491
  96. package/dist/esm/drawer/shape/Formation.js +1 -395
  97. package/dist/esm/drawer/shape/PincerArrow.js +1 -445
  98. package/dist/esm/drawer/shape/Point.js +1 -131
  99. package/dist/esm/drawer/shape/Polygon.js +1 -368
  100. package/dist/esm/drawer/shape/Polyline.js +1 -325
  101. package/dist/esm/drawer/shape/RegularPolygon.js +1 -468
  102. package/dist/esm/drawer/shape/RightAngleArrow.js +1 -423
  103. package/dist/esm/drawer/shape/Sector.js +1 -568
  104. package/dist/esm/drawer/shape/StraightArrow.js +1 -422
  105. package/dist/esm/drawer/shape/SwallowtailArrow.js +1 -438
  106. package/dist/esm/drawer/types.js +1 -11
  107. package/dist/esm/drawer/utils.js +1 -381
  108. package/dist/esm/global.css +22 -1
  109. package/dist/esm/graphicLayer/BaseEntity.js +1 -51
  110. package/dist/esm/graphicLayer/BaseLayer.js +1 -730
  111. package/dist/esm/graphicLayer/BasePointPrimitive.js +1 -45
  112. package/dist/esm/graphicLayer/BasePrimitive.js +1 -36
  113. package/dist/esm/graphicLayer/BasePrimitiveInstance.js +1 -37
  114. package/dist/esm/graphicLayer/BaseSource.d.ts +1 -1
  115. package/dist/esm/graphicLayer/BaseSource.js +1 -630
  116. package/dist/esm/graphicLayer/BillboardEntity.js +1 -106
  117. package/dist/esm/graphicLayer/BillboardPrimitive.js +1 -119
  118. package/dist/esm/graphicLayer/BoxEntity.js +1 -99
  119. package/dist/esm/graphicLayer/BoxPrimitive.js +1 -48
  120. package/dist/esm/graphicLayer/BoxPrimitiveInstance.js +1 -91
  121. package/dist/esm/graphicLayer/EllipseEntity.js +1 -110
  122. package/dist/esm/graphicLayer/EllipsePrimitive.js +1 -47
  123. package/dist/esm/graphicLayer/EllipsePrimitiveInstance.js +1 -98
  124. package/dist/esm/graphicLayer/EllipsoidEntity.js +1 -118
  125. package/dist/esm/graphicLayer/EllipsoidPrimitive.js +1 -48
  126. package/dist/esm/graphicLayer/EllipsoidPrimitiveInstance.js +1 -113
  127. package/dist/esm/graphicLayer/GraphicLayerCollection.js +1 -491
  128. package/dist/esm/graphicLayer/HtmlEntity.d.ts +4 -0
  129. package/dist/esm/graphicLayer/HtmlEntity.js +1 -189
  130. package/dist/esm/graphicLayer/LabelEntity.js +1 -110
  131. package/dist/esm/graphicLayer/LabelPrimitive.js +1 -127
  132. package/dist/esm/graphicLayer/ModelEntity.js +1 -122
  133. package/dist/esm/graphicLayer/ModelPrimitive.js +1 -59
  134. package/dist/esm/graphicLayer/ModelPrimitiveInstance.js +1 -86
  135. package/dist/esm/graphicLayer/PointEntity.js +1 -94
  136. package/dist/esm/graphicLayer/PointPrimitive.js +1 -107
  137. package/dist/esm/graphicLayer/PolygonEntity.js +1 -103
  138. package/dist/esm/graphicLayer/PolygonGroundPrimitive.js +1 -49
  139. package/dist/esm/graphicLayer/PolygonGroundPrimitiveImageMaterialInstance.js +1 -87
  140. package/dist/esm/graphicLayer/PolygonPrimitive.js +1 -60
  141. package/dist/esm/graphicLayer/PolygonPrimitiveImageMaterialInstance.js +1 -84
  142. package/dist/esm/graphicLayer/PolygonPrimitiveInstance.js +1 -101
  143. package/dist/esm/graphicLayer/PolylineEntity.js +1 -96
  144. package/dist/esm/graphicLayer/PolylineGroundPrimitive.js +1 -55
  145. package/dist/esm/graphicLayer/PolylineGroundPrimitiveInstance.js +1 -85
  146. package/dist/esm/graphicLayer/PolylinePrimitive.js +1 -53
  147. package/dist/esm/graphicLayer/PolylinePrimitiveInstance.js +1 -85
  148. package/dist/esm/graphicLayer/PolylineVolumeEntity.js +1 -105
  149. package/dist/esm/graphicLayer/PolylineVolumePrimitive.js +1 -47
  150. package/dist/esm/graphicLayer/PolylineVolumePrimitiveInstance.js +1 -94
  151. package/dist/esm/graphicLayer/WallEntity.js +1 -96
  152. package/dist/esm/graphicLayer/WallPrimitive.js +1 -47
  153. package/dist/esm/graphicLayer/WallPrimitiveInstance.js +1 -88
  154. package/dist/esm/index.d.ts +4 -0
  155. package/dist/esm/index.js +1 -175
  156. package/dist/esm/lowAltitude/BarrierLayer.js +1 -172
  157. package/dist/esm/lowAltitude/BaseGridMvtLayer.js +1 -122
  158. package/dist/esm/lowAltitude/FactorLayer.js +1 -199
  159. package/dist/esm/lowAltitude/FlightPlanning.js +1 -411
  160. package/dist/esm/lowAltitude/FlightRiskEvaluation.js +1 -543
  161. package/dist/esm/lowAltitude/GridDraw.js +1 -137
  162. package/dist/esm/lowAltitude/PoiLayer.js +1 -74
  163. package/dist/esm/lowAltitude/RoutePlanning.js +1 -318
  164. package/dist/esm/lowAltitude/VisitLayer.js +1 -180
  165. package/dist/esm/map/Event.js +1 -377
  166. package/dist/esm/map/GroundSkyBox.js +1 -166
  167. package/dist/esm/map/Map.js +1 -881
  168. package/dist/esm/map/Property.js +1 -35
  169. package/dist/esm/material/AtmosphericDispersion.js +1 -569
  170. package/dist/esm/material/GlobalVolumetricCloud.js +1 -377
  171. package/dist/esm/material/VolumeCloud.js +1 -115
  172. package/dist/esm/material/WeatherEffects.js +1 -351
  173. package/dist/esm/material/entity/BaseMaterialProperty.js +1 -51
  174. package/dist/esm/material/entity/CircleWaveMaterialProperty.js +1 -101
  175. package/dist/esm/material/entity/DynamicWallMaterialProperty.js +1 -101
  176. package/dist/esm/material/entity/ImageGlowingMaterialProperty.js +1 -89
  177. package/dist/esm/material/entity/ImageMaterialProperty.js +1 -34
  178. package/dist/esm/material/entity/PolylineTrailLinkMaterialProperty.js +1 -132
  179. package/dist/esm/material/primitive/BaseMaterialAppearance.js +1 -28
  180. package/dist/esm/material/primitive/ImageGlowingMaterialAppearance.js +1 -77
  181. package/dist/esm/material/primitive/ImageMaterialAppearance.js +1 -77
  182. package/dist/esm/measure/Area.js +1 -220
  183. package/dist/esm/measure/BaseDraw.js +1 -105
  184. package/dist/esm/measure/Distance.js +1 -223
  185. package/dist/esm/measure/index.js +1 -266
  186. package/dist/esm/measure/types.js +1 -17
  187. package/dist/esm/measure/utils.js +1 -319
  188. package/dist/esm/particle/BaseParticle.js +1 -196
  189. package/dist/esm/particle/FireParticle.js +1 -65
  190. package/dist/esm/particle/FountainParticle.js +1 -80
  191. package/dist/esm/particle/SmokeParticle.js +1 -65
  192. package/dist/esm/particle/common.js +1 -23
  193. package/dist/esm/particle/index.js +1 -5
  194. package/dist/esm/property/PositionProperty.js +1 -56
  195. package/dist/esm/tileLayer/ArcGisLayer.js +1 -41
  196. package/dist/esm/tileLayer/CustomRasterClipWorkerClient.js +1 -147
  197. package/dist/esm/tileLayer/CustomRasterLayer.js +1 -1136
  198. package/dist/esm/tileLayer/ImageryLayer.js +1 -44
  199. package/dist/esm/tileLayer/MvtVectorLoad.js +1 -1549
  200. package/dist/esm/tileLayer/MvtVectorWorkerClient.js +1 -126
  201. package/dist/esm/tileLayer/RasterLayer.js +1 -23
  202. package/dist/esm/tileLayer/WmsLayer.js +1 -26
  203. package/dist/esm/tileLayer/WmtsLayer.js +1 -23
  204. package/dist/esm/tool/BuildClampedPolygonGrid.js +1 -278
  205. package/dist/esm/tool/Compass.js +1 -282
  206. package/dist/esm/tool/PrimitiveCluster.js +1 -706
  207. package/dist/esm/tool/TimerInterval.js +1 -58
  208. package/dist/esm/tool/common.js +1 -405
  209. package/dist/esm/tool/fetch.js +1 -222
  210. package/dist/esm/tool/heatmap.js +1 -631
  211. package/dist/esm/tool/utils.d.ts +1 -0
  212. package/dist/esm/tool/utils.js +1 -501
  213. package/dist/esm/toolTip/index.js +1 -79
  214. package/dist/esm/videoFusion/BaseVideo.d.ts +7 -0
  215. package/dist/esm/videoFusion/BaseVideo.js +1 -330
  216. package/dist/esm/videoFusion/VideoProject.js +1 -230
  217. package/dist/esm/videoFusion/VideoTexture.js +1 -163
  218. package/dist/esm/visualization/BaseHeatmap.js +1 -271
  219. package/dist/esm/visualization/BoundaryHighlight.d.ts +136 -0
  220. package/dist/esm/visualization/BoundaryHighlight.js +1 -0
  221. package/dist/esm/visualization/DynamicWater.js +1 -289
  222. package/dist/esm/visualization/Frustum.js +1 -248
  223. package/dist/esm/visualization/Heatmap2d.js +1 -97
  224. package/dist/esm/visualization/Heatmap3d.js +1 -281
  225. package/dist/esm/visualization/MigrationEffect.js +1 -397
  226. package/dist/esm/visualization/PointCluster.js +1 -220
  227. package/dist/esm/visualization/RadarScan.js +1 -333
  228. package/dist/esm/visualization/SampledTerrainRiver.d.ts +180 -0
  229. package/dist/esm/visualization/SampledTerrainRiver.js +1 -0
  230. package/dist/esm/visualization/SampledTerrainWater.d.ts +170 -0
  231. package/dist/esm/visualization/SampledTerrainWater.js +1 -0
  232. package/dist/esm/visualization/WindField.d.ts +72 -0
  233. package/dist/esm/visualization/WindField.js +1 -0
  234. package/dist/esm/visualization/windCore.d.ts +161 -0
  235. package/dist/esm/visualization/windCore.js +8 -0
  236. package/dist/umd/deeptwins-engine-3d.min.css +1 -1
  237. package/dist/umd/deeptwins-engine-3d.min.js +1 -1
  238. package/package.json +6 -4
@@ -1,115 +1 @@
1
- var _excluded = ["polygon", "number", "heightRange"];
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
+ function _0x49b3(){var _0x1a90c4=['BgvUz3rO','x2nHBK9WzxjHDgu','C2HVDW','AgvPz2H0uMfUz2u','x3bVAw50r2vVsNnVBG','zgvZDhjVEq','C3LTyM9S','Cg9SEwDVBG','C3rYAw5N','y2fSBa','qeb0B1bYAw1PDgL2zsbTDxn0ihjLDhvYBIbHihbYAw1PDgL2zsb2ywX1zs4','odq0nZe2Aunssgn1','ChjVDg90ExbL','mtiWntGYzLnHtMj4','mJmWy1HYsxrf','BM9PC2vezxrHAwW','q2fYDgvZAwfUmW','x29WDgLVBNm','x2nSB3vKCW','mteWnJuWt2ffBuLQ','DMfSDwu','z2v0twfW','nJGXodHpELPfDNm','x3bVBhLNB24','B2jQzwn0','C2nLBMu','Dg9qCMLTAxrPDMu','CMfUzg9T','mtC4odi4yLDpA29U','zNvUy3rPB24','D3jPDgfIBgu','z2v0t3DUuhjVCgvYDhLtEw1IB2XZ','x21HCenVBNrLEhq','mJaYohDQuxHMqW','og5IyLrzAq','ChvZAa','mtK1v1bXA3H2','zgvMAw5LuhjVCgvYDhK','y29SB3jtDhjPBMC','mZGZmZC1n2vzswDnEq','Axnezxn0CM95zwq','mJmXmdG5mwzAzxfgCW','zw51BwvYywjSzq','q2XVDwrdB2XSzwn0Aw9U','q2fUBM90ignHBgWGysbJBgfZCYbHCYbHigz1BMn0Aw9U','y2XVDwrizwLNAhq','m29bCw5uDG','ywrK','yxjYq2fYDgvZAwfUmW','mJftywzMDfK','BwfW'];_0x49b3=function(){return _0x1a90c4;};return _0x49b3();}var _0x29eae1=_0x3b5b;function _0x3b5b(_0x163494,_0x3809e1){_0x163494=_0x163494-0x191;var _0x49b34a=_0x49b3();var _0x3b5bd8=_0x49b34a[_0x163494];if(_0x3b5b['gXAmDc']===undefined){var _0x249196=function(_0x3dda51){var _0x481026='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3bb5f8='',_0x298aac='';for(var _0x55f007=0x0,_0x18a660,_0x1e8fb6,_0x1e5783=0x0;_0x1e8fb6=_0x3dda51['charAt'](_0x1e5783++);~_0x1e8fb6&&(_0x18a660=_0x55f007%0x4?_0x18a660*0x40+_0x1e8fb6:_0x1e8fb6,_0x55f007++%0x4)?_0x3bb5f8+=String['fromCharCode'](0xff&_0x18a660>>(-0x2*_0x55f007&0x6)):0x0){_0x1e8fb6=_0x481026['indexOf'](_0x1e8fb6);}for(var _0x371814=0x0,_0x265835=_0x3bb5f8['length'];_0x371814<_0x265835;_0x371814++){_0x298aac+='%'+('00'+_0x3bb5f8['charCodeAt'](_0x371814)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x298aac);};_0x3b5b['CSsQNE']=_0x249196,_0x3b5b['wzKPcg']={},_0x3b5b['gXAmDc']=!![];}var _0x34c5fb=_0x49b34a[0x0],_0x4d96de=_0x163494+_0x34c5fb,_0x20241a=_0x3b5b['wzKPcg'][_0x4d96de];return!_0x20241a?(_0x3b5bd8=_0x3b5b['CSsQNE'](_0x3b5bd8),_0x3b5b['wzKPcg'][_0x4d96de]=_0x3b5bd8):_0x3b5bd8=_0x20241a,_0x3b5bd8;}(function(_0x5a2ef9,_0x101f4e){var _0x4e3281=_0x3b5b,_0x9e0da6=_0x5a2ef9();while(!![]){try{var _0x3cef0=-parseInt(_0x4e3281(0x1bd))/0x1*(-parseInt(_0x4e3281(0x1a2))/0x2)+-parseInt(_0x4e3281(0x1b8))/0x3+parseInt(_0x4e3281(0x1a5))/0x4*(-parseInt(_0x4e3281(0x1b3))/0x5)+parseInt(_0x4e3281(0x19a))/0x6*(-parseInt(_0x4e3281(0x1c0))/0x7)+-parseInt(_0x4e3281(0x1b1))/0x8*(parseInt(_0x4e3281(0x1b6))/0x9)+-parseInt(_0x4e3281(0x19d))/0xa*(-parseInt(_0x4e3281(0x19c))/0xb)+parseInt(_0x4e3281(0x1b0))/0xc*(parseInt(_0x4e3281(0x1ab))/0xd);if(_0x3cef0===_0x101f4e)break;else _0x9e0da6['push'](_0x9e0da6['shift']());}catch(_0x290bb1){_0x9e0da6['push'](_0x9e0da6['shift']());}}}(_0x49b3,0x7028c));var _excluded=[_0x29eae1(0x196),'number',_0x29eae1(0x192)];function _typeof(_0x18a660){'@babel/helpers - typeof';var _0x51efec=_0x29eae1;return _typeof=_0x51efec(0x1ac)==typeof Symbol&&_0x51efec(0x195)==typeof Symbol['iterator']?function(_0x1e8fb6){return typeof _0x1e8fb6;}:function(_0x1e5783){return _0x1e5783&&'function'==typeof Symbol&&_0x1e5783['constructor']===Symbol&&_0x1e5783!==Symbol['prototype']?'symbol':typeof _0x1e5783;},_typeof(_0x18a660);}function _objectWithoutProperties(_0x371814,_0x265835){var _0xbde4b0=_0x29eae1;if(_0x371814==null)return{};var _0x488199=_objectWithoutPropertiesLoose(_0x371814,_0x265835),_0x16e0f6,_0xaba989;if(Object['getOwnPropertySymbols']){var _0x5c502a=Object[_0xbde4b0(0x1ae)](_0x371814);for(_0xaba989=0x0;_0xaba989<_0x5c502a['length'];_0xaba989++){_0x16e0f6=_0x5c502a[_0xaba989];if(_0x265835['indexOf'](_0x16e0f6)>=0x0)continue;if(!Object[_0xbde4b0(0x19b)]['propertyIsEnumerable'][_0xbde4b0(0x198)](_0x371814,_0x16e0f6))continue;_0x488199[_0x16e0f6]=_0x371814[_0x16e0f6];}}return _0x488199;}function _objectWithoutPropertiesLoose(_0x110f9c,_0x5aa6f3){if(_0x110f9c==null)return{};var _0x498be4={},_0x129690=Object['keys'](_0x110f9c),_0x4b1f83,_0x34c90d;for(_0x34c90d=0x0;_0x34c90d<_0x129690['length'];_0x34c90d++){_0x4b1f83=_0x129690[_0x34c90d];if(_0x5aa6f3['indexOf'](_0x4b1f83)>=0x0)continue;_0x498be4[_0x4b1f83]=_0x110f9c[_0x4b1f83];}return _0x498be4;}function _classCallCheck(_0x118ee6,_0x1eedfc){var _0x1603a0=_0x29eae1;if(!(_0x118ee6 instanceof _0x1eedfc))throw new TypeError(_0x1603a0(0x1bb));}function _defineProperties(_0x4a398c,_0x542391){var _0x2be76e=_0x29eae1;for(var _0x5661d4=0x0;_0x5661d4<_0x542391['length'];_0x5661d4++){var _0x2c9be4=_0x542391[_0x5661d4];_0x2c9be4[_0x2be76e(0x1b9)]=_0x2c9be4[_0x2be76e(0x1b9)]||![],_0x2c9be4['configurable']=!![];if(_0x2be76e(0x1a3)in _0x2c9be4)_0x2c9be4[_0x2be76e(0x1ad)]=!![];Object[_0x2be76e(0x1b4)](_0x4a398c,_toPropertyKey(_0x2c9be4['key']),_0x2c9be4);}}function _createClass(_0x4ff07,_0x502813,_0x533c4a){var _0x1c8771=_0x29eae1;if(_0x502813)_defineProperties(_0x4ff07['prototype'],_0x502813);if(_0x533c4a)_defineProperties(_0x4ff07,_0x533c4a);return Object['defineProperty'](_0x4ff07,_0x1c8771(0x19b),{'writable':![]}),_0x4ff07;}function _defineProperty(_0x5ea900,_0x5cc657,_0x49f9b0){return _0x5cc657=_toPropertyKey(_0x5cc657),_0x5cc657 in _0x5ea900?Object['defineProperty'](_0x5ea900,_0x5cc657,{'value':_0x49f9b0,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x5ea900[_0x5cc657]=_0x49f9b0,_0x5ea900;}function _toPropertyKey(_0x403b2b){var _0x5eb3d4=_0x29eae1,_0x460b9b=_toPrimitive(_0x403b2b,_0x5eb3d4(0x197));return'symbol'==_typeof(_0x460b9b)?_0x460b9b:String(_0x460b9b);}function _toPrimitive(_0x133fd8,_0x4d4c49){var _0x2e5482=_0x29eae1;if('object'!=_typeof(_0x133fd8)||!_0x133fd8)return _0x133fd8;var _0x14ac5c=_0x133fd8[Symbol[_0x2e5482(0x1a9)]];if(void 0x0!==_0x14ac5c){var _0x1842eb=_0x14ac5c[_0x2e5482(0x198)](_0x133fd8,_0x4d4c49||'default');if(_0x2e5482(0x1a7)!=_typeof(_0x1842eb))return _0x1842eb;throw new TypeError(_0x2e5482(0x199));}return('string'===_0x4d4c49?String:Number)(_0x133fd8);}import{bbox,randomPoint}from'@turf/turf';import*as _0x3bb5f8 from'deeptwins-cesium';import{merge}from'lodash';import{DEFAULT_VOLUME_CLOUD}from'../constant';import _0x298aac from'../graphicLayer/BaseSource';import*as _0x55f007 from'../tool/utils';var VolumeCloud=(function(){var _0x1b0001=_0x29eae1;function _0x3f7aa5(_0x26d512,_0x51d4b3){var _0x319d70=_0x3b5b,_0x3d4656=_0x51d4b3[_0x319d70(0x196)],_0x4d0974=_0x51d4b3['number'],_0x1ec1cf=_0x4d0974===void 0x0?0xa:_0x4d0974,_0x28c5fe=_0x51d4b3[_0x319d70(0x192)],_0x35d085=_0x28c5fe===void 0x0?[0x7d0,0xbb8]:_0x28c5fe,_0x1ad74c=_objectWithoutProperties(_0x51d4b3,_excluded);_classCallCheck(this,_0x3f7aa5),_defineProperty(this,'_mapContext',void 0x0),_defineProperty(this,_0x319d70(0x1a6),void 0x0),_defineProperty(this,'isDestroyed',![]),_defineProperty(this,'_pointGeoJson',void 0x0),_defineProperty(this,_0x319d70(0x1a0),void 0x0),_defineProperty(this,'_clouds',void 0x0),this['_mapContext']=_0x26d512['_mapContext'],this[_0x319d70(0x1a6)]=_0x3d4656;var _0x127cc5=randomPoint(_0x1ec1cf,{'bbox':bbox(_0x3d4656)});_0x127cc5['features']['forEach'](function(_0x9dffe7){var _0x274c64=_0x319d70;_0x9dffe7['geometry']['coordinates'][_0x274c64(0x1b2)](Math['random']()*(_0x35d085[0x1]-_0x35d085[0x0])+_0x35d085[0x0]);}),this[_0x319d70(0x193)]=_0x127cc5,this['_options']=merge(DEFAULT_VOLUME_CLOUD(),_0x1ad74c),this['_init']();}return _createClass(_0x3f7aa5,[{'key':'_init','value':function _0xb43956(){var _0xf90b09=_0x3b5b,_0x207d91=this['_options'],_0x4f153b=_0x207d91['show'],_0x189404=_0x207d91[_0xf90b09(0x19e)],_0x208cca=_0x207d91['noiseOffset'],_0x433142=_0x207d91['cloudWidth'],_0x5edf0f=_0x207d91[_0xf90b09(0x1bc)],_0x42ab30=_0x207d91['color'],_0xe34fec=_0x207d91['slice'],_0x35df9e=_0x207d91['brightness'];this['_clouds']=this[_0xf90b09(0x1a4)]()[_0xf90b09(0x1a8)]['primitives'][_0xf90b09(0x1be)](new _0x3bb5f8[(_0xf90b09(0x1ba))]({'show':_0x4f153b,'noiseDetail':_0x189404+Math['random'](),'noiseOffset':_0x55f007[_0xf90b09(0x1bf)](_0x208cca[_0xf90b09(0x1c1)](function(_0x350571){var _0x2da20c=_0xf90b09;return _0x350571*Math[_0x2da20c(0x1aa)]();}))}));var _0x2d434a=_0x298aac['geoJsonToGeoCartesian3Array'](this[_0xf90b09(0x193)]);for(var _0x49b534=0x0;_0x49b534<_0x2d434a[_0xf90b09(0x1c2)];_0x49b534++){var _0x1f4584=Math[_0xf90b09(0x1aa)](),_0x8f1d28=_0x2d434a[_0x49b534]['positions'];this['_clouds']['add']({'position':_0x8f1d28,'scale':new _0x3bb5f8['Cartesian2'](_0x433142*(0.8+Math['random']()*0.4),_0x5edf0f*(0.8+Math[_0xf90b09(0x1aa)]()*0.4)),'maximumSize':new _0x3bb5f8[(_0xf90b09(0x19f))](0x5+_0x1f4584*0xf,0x4+_0x1f4584*0xa,0x3+_0x1f4584*0x5),'slice':_0xe34fec+Math[_0xf90b09(0x1aa)]()*0.3,'brightness':_0x35df9e+Math[_0xf90b09(0x1aa)]()*0.4,'color':_0x55f007[_0xf90b09(0x1b5)](_0x42ab30)});}}},{'key':_0x1b0001(0x1a4),'value':function _0x3d8f8a(){var _0x530b71=_0x1b0001;return this[_0x530b71(0x1af)]&&this['_mapContext'][_0x530b71(0x1a4)]();}},{'key':_0x1b0001(0x1c3),'value':function _0x2e92d4(){var _0x357891=_0x1b0001;if(this[_0x357891(0x1b7)])return _0x55f007['error']('VolumeCloud实例已销毁'),![];return!![];}},{'key':_0x1b0001(0x191),'value':function _0x31d6aa(_0x2fd6b6){var _0x1be933=_0x1b0001;this[_0x1be933(0x1a1)][_0x1be933(0x191)]=_0x2fd6b6;}},{'key':_0x1b0001(0x194),'value':function _0x3652b8(){var _0x4659c0=_0x1b0001;if(!this['_canOperate']())return;this[_0x4659c0(0x1b7)]=!![],this[_0x4659c0(0x1a4)]()['scene']['primitives']['remove'](this[_0x4659c0(0x1a1)]);}}]),_0x3f7aa5;}());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 _0x2bbbe=_0x212e;(function(_0x279600,_0x46a816){var _0x6b48b9=_0x212e,_0x4cdd64=_0x279600();while(!![]){try{var _0x33b817=-parseInt(_0x6b48b9(0x1de))/0x1*(-parseInt(_0x6b48b9(0x1fd))/0x2)+parseInt(_0x6b48b9(0x1ee))/0x3+-parseInt(_0x6b48b9(0x1e6))/0x4+parseInt(_0x6b48b9(0x1ea))/0x5+-parseInt(_0x6b48b9(0x226))/0x6+parseInt(_0x6b48b9(0x21b))/0x7*(parseInt(_0x6b48b9(0x1e8))/0x8)+-parseInt(_0x6b48b9(0x213))/0x9;if(_0x33b817===_0x46a816)break;else _0x4cdd64['push'](_0x4cdd64['shift']());}catch(_0x274a5){_0x4cdd64['push'](_0x4cdd64['shift']());}}}(_0x5b51,0x44d4e));function _typeof(_0x13bca5){'@babel/helpers - typeof';var _0x37375b=_0x212e;return _typeof=_0x37375b(0x1f0)==typeof Symbol&&'symbol'==typeof Symbol['iterator']?function(_0x1b7106){return typeof _0x1b7106;}:function(_0x4e0227){var _0x1752cc=_0x37375b;return _0x4e0227&&'function'==typeof Symbol&&_0x4e0227[_0x1752cc(0x21e)]===Symbol&&_0x4e0227!==Symbol[_0x1752cc(0x202)]?_0x1752cc(0x232):typeof _0x4e0227;},_typeof(_0x13bca5);}function _toConsumableArray(_0x4a75c8){return _arrayWithoutHoles(_0x4a75c8)||_iterableToArray(_0x4a75c8)||_unsupportedIterableToArray(_0x4a75c8)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError('Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}function _unsupportedIterableToArray(_0x150c90,_0x2ce53f){var _0x41a4f8=_0x212e;if(!_0x150c90)return;if(typeof _0x150c90==='string')return _arrayLikeToArray(_0x150c90,_0x2ce53f);var _0x39d407=Object['prototype'][_0x41a4f8(0x1e1)]['call'](_0x150c90)['slice'](0x8,-0x1);if(_0x39d407==='Object'&&_0x150c90['constructor'])_0x39d407=_0x150c90['constructor']['name'];if(_0x39d407===_0x41a4f8(0x200)||_0x39d407===_0x41a4f8(0x21c))return Array['from'](_0x150c90);if(_0x39d407===_0x41a4f8(0x211)||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x39d407))return _arrayLikeToArray(_0x150c90,_0x2ce53f);}function _iterableToArray(_0x267264){if(typeof Symbol!=='undefined'&&_0x267264[Symbol['iterator']]!=null||_0x267264['@@iterator']!=null)return Array['from'](_0x267264);}function _arrayWithoutHoles(_0x556cc4){if(Array['isArray'](_0x556cc4))return _arrayLikeToArray(_0x556cc4);}function _arrayLikeToArray(_0x47086a,_0x5eb4bb){var _0xe1fc94=_0x212e;if(_0x5eb4bb==null||_0x5eb4bb>_0x47086a[_0xe1fc94(0x1f6)])_0x5eb4bb=_0x47086a['length'];for(var _0x13f5b8=0x0,_0x327d7d=new Array(_0x5eb4bb);_0x13f5b8<_0x5eb4bb;_0x13f5b8++)_0x327d7d[_0x13f5b8]=_0x47086a[_0x13f5b8];return _0x327d7d;}function ownKeys(_0x362190,_0x162bf0){var _0x16766f=_0x212e,_0x3ad333=Object['keys'](_0x362190);if(Object[_0x16766f(0x22f)]){var _0x4e8f5f=Object['getOwnPropertySymbols'](_0x362190);_0x162bf0&&(_0x4e8f5f=_0x4e8f5f[_0x16766f(0x224)](function(_0x66dc3e){var _0x27d479=_0x16766f;return Object[_0x27d479(0x222)](_0x362190,_0x66dc3e)[_0x27d479(0x201)];})),_0x3ad333['push']['apply'](_0x3ad333,_0x4e8f5f);}return _0x3ad333;}function _objectSpread(_0x215566){var _0x32ca3c=_0x212e;for(var _0x584962=0x1;_0x584962<arguments['length'];_0x584962++){var _0x258a2a=null!=arguments[_0x584962]?arguments[_0x584962]:{};_0x584962%0x2?ownKeys(Object(_0x258a2a),!0x0)[_0x32ca3c(0x204)](function(_0x34e5ad){_defineProperty(_0x215566,_0x34e5ad,_0x258a2a[_0x34e5ad]);}):Object['getOwnPropertyDescriptors']?Object['defineProperties'](_0x215566,Object[_0x32ca3c(0x1ff)](_0x258a2a)):ownKeys(Object(_0x258a2a))['forEach'](function(_0x588730){var _0xd234e2=_0x32ca3c;Object[_0xd234e2(0x1e4)](_0x215566,_0x588730,Object[_0xd234e2(0x222)](_0x258a2a,_0x588730));});}return _0x215566;}function _0x212e(_0x41f8cc,_0x40cb53){_0x41f8cc=_0x41f8cc-0x1dd;var _0x5b5115=_0x5b51();var _0x212e7b=_0x5b5115[_0x41f8cc];if(_0x212e['stYiri']===undefined){var _0x5312cc=function(_0x91892){var _0x2135d7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x48c8c9='',_0x13bca5='';for(var _0x1b7106=0x0,_0x4e0227,_0x4a75c8,_0x150c90=0x0;_0x4a75c8=_0x91892['charAt'](_0x150c90++);~_0x4a75c8&&(_0x4e0227=_0x1b7106%0x4?_0x4e0227*0x40+_0x4a75c8:_0x4a75c8,_0x1b7106++%0x4)?_0x48c8c9+=String['fromCharCode'](0xff&_0x4e0227>>(-0x2*_0x1b7106&0x6)):0x0){_0x4a75c8=_0x2135d7['indexOf'](_0x4a75c8);}for(var _0x2ce53f=0x0,_0x39d407=_0x48c8c9['length'];_0x2ce53f<_0x39d407;_0x2ce53f++){_0x13bca5+='%'+('00'+_0x48c8c9['charCodeAt'](_0x2ce53f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x13bca5);};_0x212e['lQChES']=_0x5312cc,_0x212e['znRFHS']={},_0x212e['stYiri']=!![];}var _0x1a928e=_0x5b5115[0x0],_0x4c77d1=_0x41f8cc+_0x1a928e,_0x16e887=_0x212e['znRFHS'][_0x4c77d1];return!_0x16e887?(_0x212e7b=_0x212e['lQChES'](_0x212e7b),_0x212e['znRFHS'][_0x4c77d1]=_0x212e7b):_0x212e7b=_0x16e887,_0x212e7b;}function _classCallCheck(_0x7488ef,_0x3c8076){var _0x566749=_0x212e;if(!(_0x7488ef instanceof _0x3c8076))throw new TypeError(_0x566749(0x22d));}function _defineProperties(_0xea4d40,_0x1666a4){var _0x9e6081=_0x212e;for(var _0x3abc0c=0x0;_0x3abc0c<_0x1666a4[_0x9e6081(0x1f6)];_0x3abc0c++){var _0x2bbe8b=_0x1666a4[_0x3abc0c];_0x2bbe8b['enumerable']=_0x2bbe8b['enumerable']||![],_0x2bbe8b[_0x9e6081(0x1f4)]=!![];if('value'in _0x2bbe8b)_0x2bbe8b['writable']=!![];Object[_0x9e6081(0x1e4)](_0xea4d40,_toPropertyKey(_0x2bbe8b[_0x9e6081(0x20e)]),_0x2bbe8b);}}function _createClass(_0x46190a,_0x4f2fbe,_0x158fb2){var _0x2b5ea7=_0x212e;if(_0x4f2fbe)_defineProperties(_0x46190a['prototype'],_0x4f2fbe);if(_0x158fb2)_defineProperties(_0x46190a,_0x158fb2);return Object[_0x2b5ea7(0x1e4)](_0x46190a,'prototype',{'writable':![]}),_0x46190a;}function _defineProperty(_0x436472,_0x13083b,_0x171560){var _0x1806d0=_0x212e;return _0x13083b=_toPropertyKey(_0x13083b),_0x13083b in _0x436472?Object[_0x1806d0(0x1e4)](_0x436472,_0x13083b,{'value':_0x171560,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x436472[_0x13083b]=_0x171560,_0x436472;}function _0x5b51(){var _0x1d1f95=['zM9YrwfJAa','BgLNAhrUAw5NrhvYyxrPB24','BwfPBLn0ywDL','zMXVyxqGz2v0rgLZDgfUy2uOC2fTCgXLCJjeigrLChrOvgv4DhvYzsWGDMvJmIb0zxHdB29YzhmPcNSkicaGigzSB2f0igrLChrOid0Gy3PTx3vUCgfJA0rLChrOkhrLEhr1CMuOzgvWDgHuzxH0DxjLlcb0zxHdB29YzhmPktSkicaGigLMicHKzxb0Aca9psaWlJaPihSkicaGicaGicbYzxr1CM4Gy3PTx2LUzMLUAxr5oWOGicaGFqOGicaGDMvJncbLEwvdB29YzgLUyxrLid0Gy3PTx3DPBMrVD1rVrxLLq29VCMrPBMf0zxmOz2XFrNjHz0nVB3jKlNH5lcbKzxb0AcK7cIaGicbYzxr1CM4Glwv5zunVB3jKAw5HDguUEIaVigv5zunVB3jKAw5HDguUDZSkFqOVl+AGUEAnRUI3NEEMU++8JowCQos4REMxToI/M+IHJoApKUwaVaPMBg9HDcbPBNrLCNbVBgf0zuj5rgLZDgfUy2uODMvJncbUzwfYrMfYu2nHBgfYlcbMBg9HDcbKAxn0yw5JzsKkEWOGicaGlY/MOlNMJA7LUlJOR4BVViZPM77LUPtOR6xMMk/OT53NPRVOV5ZVViZOTORNNiVKUi3MUixVViZOV5hOT53NPRVLHOxNMOtNIANKVzpLJ6/KU6xNNiVMUiukicaGic8V5zUG5Q2K6l+r6lED56A7ywXWAge9mo+8JoI/NoI3NEEMU+EAHgfSCgHHpteUmaOGicaGlY/MNkZKVOVKUk3ORR7NVA7LJ6/OP4hLUQBKUlOYmddNSBmkicaGic8V6zU+54M55Pwi55Qe6lw35AEl6lED56A7cIaGicbMBg9HDcbZDgfYDerPC3rHBMnLid0GBMvHCKzHCLnJywXHCI54oWOGicaGlY/PM77NIBNMLyJNMOtOTBFLP4THBhbOyEwaVaOGicaGzMXVyxqGC3rHCNrwywX1zsa9ig5Lyxjgyxjty2fSyxiUEtSkicaGic8V6zU+54M55Pwi55Qe57Ut5P2F6lED56A7cIaGicbMBg9HDcbLBMreAxn0yw5Jzsa9ig5Lyxjgyxjty2fSyxiUEJSkicaGic8V6zU+54M55Pwi55Qe57Ut5P2FywXWAghLGlWkicaGigzSB2f0igvUzfzHBhvLid0GBMvHCKzHCLnJywXHCI53oWOGicaGlY/MOlNMJA7MR4/MRRxOT53NPRVLJAdMGlVPLB/LUQBNMOtLJAdMR5tVViZMJ5lLGlXHBhbOyE+8JoI3NEEMU+I2IUI/No+8JgfSCgHH5yc86lAk5AsN44cc5O+s5yc86iYd5zU0mcWX44cccIaGicbMBg9HDcb0id0Gy2XHBxaOkgrPC3rHBMnLic0GC3rHCNreAxn0yw5JzsKGlYaOzw5KrgLZDgfUy2uGlsbZDgfYDerPC3rHBMnLksWGmc4WlcaXlJaPoWOGicaGCMv0DxjUig1PEcHZDgfYDfzHBhvLlcbLBMrwywX1zsWGDcK7cN0kDMvJncbHBhbOyujSzw5KkhzLyZqGC291CMnLq29SB3iSihzLyZqGzgvZDgLUyxrPB25dB2XVCIKkEWOGicaGCMv0DxjUihnVDxjJzunVBg9YicOGDMvJncHZB3vYy2vdB2XVCI5HyweSideUmcKGkYbKzxn0Aw5HDgLVBKnVBg9YicOGkdeUmcaTihnVDxjJzunVBg9YlMePoWP9cNvUAwzVCM0GC2fTCgXLCJjeignVBg9Yvgv4DhvYztSkDw5PzM9YBsbZyw1WBgvYmKqGzgvWDgHuzxH0DxjLoWP1BMLMB3jTihzLyZqGzM9NqNLeAxn0yw5JztSkDw5PzM9YBsb2zwm0igzVz0nVBg9YoWPPBIb2zwmYihzFDgv4DhvYzunVB3jKAw5HDgvZoWP2B2LKig1HAw4ODM9PzcKkEWOGicaGlY/OJRFLJ5BLNldNIANOT53NM7JMNlRNMOtOT53NPRSkicaGigzSB2f0igrPC3rHBMnLid0Gz2v0rgLZDgfUy2uOzgvWDgHuzxH0DxjLlcb2x3rLEhr1CMvdB29YzgLUyxrLCYK7cIaGicaVl+IoT+wpLUwCUUAzR+woN+ACRoEAHoE6UEEqHUMINoIjSGOGicaGDMvJncbZy2vUzunVBg9Yid0GDgv4DhvYzsHJB2XVCLrLEhr1CMuSihzFDgv4DhvYzunVB3jKAw5HDgvZktSkicaGic8V5Qc55O2U6lED56A777Ym5A+5ywXWAghOV5VOOyZMJ5lLGlWkicaGigzSB2f0igjSzw5Kqw1VDw50id0GAw50zxjWB2XHDgvcEurPC3rHBMnLkgzVz0j5rgLZDgfUy2uSigrPC3rHBMnLktSkicaGic8V5BcgywXWAghLJ5JLJjBLGlZKU6pLHAxPM77NMOtLJP/LP4VPOPZOIBlKUk3VViZLUBBLSiBPM77KUi7LNlRMMA/LJP/LP4VNURNNKiBOV5VOOyZONO3LKiGkicaGihzLyZqGzMLUywXgB2DdB2XVCIa9ihzLyZqOzM9Nq29SB3iUCMDIlcbMB2DdB2XVCI5HicOGyMXLBMrbBw91BNqPoWOGicaGB3v0x0zYywDdB2XVCIa9igfSCgHHqMXLBMqOzMLUywXgB2DdB2XVCIWGC2nLBMvdB2XVCIK7cN0k','Cg9ZDfbYB2nLC3ntDgfNzxm','ug9ZDfbYB2nLC3ntDgfNzq','x2nYzwf0zvn0ywDL','x2j1AwXKuMfPBKXPz2H0BMLUz1n0ywDLq29UzMLN','C3rHCNreAxn0yw5JzEw/HEMHU+wWJ+s6JMvUzerPC3rHBMnL','z2v0twfW','A2v5','x2fWCgX5u3rHz2vdB25MAwC','Dw5PzM9YBxm','qxjNDw1LBNrZ','ywrK','mZm0mJG1mNPKEwjpsq','Aw5JBhvKzxm','x2LZuMfPBKXPz2H0BMLUz0fJDgL2zq','zxH0CMftDgfNzxm','A2v5CW','DhLWzq','C3rHz2u','x2fZC2vYDfDLyxrOzxjfzMzLy3ruExbL','mZv1uNDdzwq','u2v0','zM9N','y29UC3rYDwn0B3i','x2fZC2vYDe5VDerLC3rYB3LLza','y29UDgfPBNm','x3jLC2v0u3rHz2vZrNjVBun1CNjLBNrpChrPB25Z','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9Y','zw5HyMXLza','zMLSDgvY','x2LZqwrKzwq','mtC1odqYnNbjCwHdDq','ywrKvg9nyxa','ChjLy2LZAw9UigHPz2HWigzSB2f0oWOkDw5PzM9YBsbZyw1WBgvYmKqGy29SB3juzxH0DxjLoWP1BMLMB3jTigzSB2f0ihnWzwvKoWP1BMLMB3jTigzSB2f0ihnPEMu7cMLUihzLyZiGDL90zxH0DxjLq29VCMrPBMf0zxm7cM91Dcb2zwm0igzYywDdB2XVCJSkcMzSB2f0ihnUB3CODMvJmIb1DIWGzMXVyxqGC2mPihSkicaGigzSB2f0ihnJywXLid0GC2mGkIbZAxPLoWOGicaGzMXVyxqGDgLTzsa9igzSB2f0kgn6Bv9MCMfTzu51BwjLCIKGlYbZCgvLzdSkicaGigzSB2f0ihCGpsbZBw9VDgHZDgvWkdeUmcWGmc4WlcaTDxyUEsaQicHZy2fSzsaVideWlJaPktSkicaGigLMicH3idWGmc4XksbYzxr1CM4Gmc4WoWOGicaGDxyGkZ0GDgLTzsaVihnJywXLoWOGicaGDxyUEsaRpsb0Aw1LicOGmI4Wic8GC2nHBgu7cIaGicb1DI54icS9ihnPBIH1DI55icSGDgLTzsaQidaUnsKGlYbZy2fSztSkicaGihv2icO9ihnJywXLoWOGicaGDMvJmIbZid0GzMXVB3iODxyPlcbMid0GzNjHy3qODxyPlcbWoWOGicaGzMXVyxqGAYa9idmUmcWGzdSkicaGihaGpsaWlJuGkYaWlJm1icOGC2LUkdeXlJaGkIbMCMfJDcHZAw4OkhmGkYbWicSGC2nHBguPicOGBwf0mIG3lcaZlca2lca1ksKGkIa1lJaPksaTigy7cIaGicbKid0GBgvUz3rOkhaPoWOGicaGAYa9ig1PBIHKlcbRktSkicaGigSGpsbZBw9VDgHZDgvWkdaUmcWGAYWGC2LUkgyUEcaRigyUEsKGkIaWlJaXktSkicaGihjLDhvYBIbRicOGDZSkFqOkDM9PzcbTywLUkcKGEWOGicaGDMvJmIbYzxnVBhv0Aw9Uid0Gy3PTx3zPzxDWB3j0lNP3oWOGicaGDMvJmIb1DIa9icHNBf9gCMfNq29VCMqUEhKGkIaYlJaGlsbYzxnVBhv0Aw9UlNH5ksaVig1PBIHYzxnVBhv0Aw9UlNGSihjLC29SDxrPB24UEsK7cIaGicb2zwmZigzPBMfSq29SB3iGpsb2zwmZkdaUmcK7cIaGicbMBg9HDcbJid0Gmc4WoWOGicaGyYaRpsbZBM93khv2lcaXmc4PoWOGicaGyYaRpsbZBM93khv2lca4lIK7cIaGicbJicS9ihnUB3CODxySidCUktSkicaGigmGkZ0GC25VDYH1DIWGnI4PoWOGicaGyYaRpsbZBM93khv2lca1lIK7cIaGicbJicS9ihnUB3CODxySidqUktSkicaGigmGkZ0GC25VDYH1DIWGmY4PoWOGicaGyYaRpsbZBM93khv2lcaYlIK7cIaGicbJicS9ihnUB3CODxySideUktSkicaGigmGkZ0GC25VDYH1DIWGlJyPoWOGicaGzMLUywXdB2XVCIa9ihzLyZmOyYK7cGOGicaGlY8G6lcd5Pw05lQU5BQMcIaGicbMAw5HBenVBg9Yid0GzMLUywXdB2XVCIaQidiUmJSkcIaGicbMCMfNq29SB3iGpsbTAxGODgv4DhvYzsHJB2XVCLrLEhr1CMuSihzFDgv4DhvYzunVB3jKAw5HDgvZksWGDMvJncHMAw5HBenVBg9YlcaXlJaPlcaWlJiPoWP9cG','zw5KrgLZDgfUy2u','C2L6zq','x21HCfjHAw5mAwDODg5PBMDjBNrLCNzHBa','y29Uy2f0','q2fUBM90ignHBgWGysbJBgfZCYbHCYbHigz1BMn0Aw9U','x3n0ywDLq29UzMLNqNvPBgrLCNm','z2v0t3DUuhjVCgvYDhLtEw1IB2XZ','x2fWCgX5vw5PzM9YBxm','B2jQzwn0','C3LTyM9S','CMvTB3zL','5lIn5PsV5OYb55Qe5AsP5Rcu57g75z6loIa','z2XVB21PBMvZCW','zgvUC2L0Eq','x2j1AwXKuMfPBLn0ywDLq29UzMLN','B3b0Aw9UCW','mJe1mJngD05KAM0','C3bLzwq','Axnezxn0CM95zwq','Dg9tDhjPBMC','x2j1AwXKu3rHz2vdB25MAwC','x2fZC2vYDe51BwjLCKLUuMfUz2u','zgvMAw5LuhjVCgvYDhK','C2nLBMu','mJeXotG3nKvoAgrVqW','x2fZC2vYDejVB2XLyw4','oda3ntG0s29is09I','yM9VBgvHBG','mJmWnJa0nw5IA2veBG','C2v0rwzMzwn0','BgLNAhrUAw5NrNjLCxvLBMn5','zgLYzwn0Aw9U','mtq2nJC5menotM1MvG','zgvZDhjVEq','zNvUy3rPB24','BwfW','x2nYzwf0zuv4DhjHu3rHz2vZ','BgLNAhrUAw5Nrw5HyMXLza','y29UzMLNDxjHyMXL','x3jLBw92zvn0ywDLC0zYB21nyxa','BgvUz3rO','x21HCenVBNrLEhq','C3rHCNreAxn0yw5Jzq','x2j1AwXKrM9Nu3rHz2vdB25MAwC','x2rLC3rYB3LtDgfNzxm','q2fYDgvZAwfUna','BgLNAhrUAw5Nsw50zw5ZAxr5','mLzSBMjWDW','x2v4DhjHu3rHz2vZ','z2v0t3DUuhjVCgvYDhLezxnJCMLWDg9YCW','twfW','zw51BwvYywjSzq','ChjVDg90ExbL','qeb0B1bYAw1PDgL2zsbTDxn0ihjLDhvYBIbHihbYAw1PDgL2zsb2ywX1zs4'];_0x5b51=function(){return _0x1d1f95;};return _0x5b51();}function _toPropertyKey(_0x1f9e34){var _0x522e0b=_0x212e,_0x198d6c=_toPrimitive(_0x1f9e34,'string');return _0x522e0b(0x232)==_typeof(_0x198d6c)?_0x198d6c:String(_0x198d6c);}function _toPrimitive(_0x2f36a8,_0x544b2c){var _0x7e852f=_0x212e;if('object'!=_typeof(_0x2f36a8)||!_0x2f36a8)return _0x2f36a8;var _0x4f2799=_0x2f36a8[Symbol['toPrimitive']];if(void 0x0!==_0x4f2799){var _0x40ad55=_0x4f2799['call'](_0x2f36a8,_0x544b2c||'default');if(_0x7e852f(0x231)!=_typeof(_0x40ad55))return _0x40ad55;throw new TypeError(_0x7e852f(0x203));}return('string'===_0x544b2c?String:Number)(_0x2f36a8);}import*as _0x48c8c9 from'deeptwins-cesium';import{DEFAULT_FOG,DEFAULT_RAIN,DEFAULT_SNOW}from'../constant';import{colorString,toRadians}from'../tool/utils';var FogShader=_0x2bbbe(0x207),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=_0x2bbbe(0x228),LightningShader='precision\x20highp\x20float;\x0a\x0afloat\x20hash(float\x20x)\x0a{\x0a\x20\x20return\x20fract(21654.6512\x20*\x20sin(385.51\x20*\x20x));\x0a}\x0afloat\x20hash(vec2\x20p)\x0a{\x0a\x20\x20return\x20fract(1654.65157\x20*\x20sin(15.5134763\x20*\x20p.x\x20+\x2045.5173247\x20*\x20p.y\x20+\x205.21789));\x0a}\x0avec2\x20hash2(vec2\x20p)\x0a{\x0a\x20\x20return\x20vec2(hash(p\x20*\x20.754),\x20hash(1.5743\x20*\x20p\x20+\x204.5476351));\x0a}\x0aconst\x20vec2\x20hashAdd\x20=\x20vec2(1.0,\x200.0);\x0avec2\x20noise2(vec2\x20x)\x0a{\x0a\x20\x20vec2\x20p\x20=\x20floor(x);\x0a\x20\x20vec2\x20f\x20=\x20fract(x);\x0a\x20\x20f\x20=\x20f\x20*\x20f\x20*\x20(3.0\x20-\x202.0\x20*\x20f);\x0a\x20\x20vec2\x20res\x20=\x20mix(mix(hash2(p),\x0a\x20\x20hash2(p\x20+\x20hashAdd.xy),\x20f.x),\x0a\x20\x20mix(hash2(p\x20+\x20hashAdd.yx),\x20hash2(p\x20+\x20hashAdd.xx),\x20f.x),\x20f.y);\x0a\x20\x20return\x20res;\x0a}\x0avec2\x20fbm2(vec2\x20x)\x0a{\x0a\x20\x20vec2\x20r\x20=\x20vec2(0.0);\x0a\x20\x20float\x20a\x20=\x201.0;\x0a\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x208;\x20i++)\x0a\x20\x20{\x0a\x20\x20\x20\x20r\x20+=\x20noise2(x)\x20*\x20a;\x0a\x20\x20\x20\x20x\x20*=\x202.;\x0a\x20\x20\x20\x20a\x20*=\x20.5;\x0a\x20\x20}\x0a\x20\x20return\x20r;\x0a}\x0afloat\x20dseg(vec2\x20ba,\x20vec2\x20pa)\x0a{\x0a\x20\x20float\x20h\x20=\x20clamp(dot(pa,\x20ba)\x20/\x20dot(ba,\x20ba),\x20-0.2,\x201.);\x0a\x20\x20return\x20length(pa\x20-\x20ba\x20*\x20h);\x0a}\x0auniform\x20sampler2D\x20colorTexture;\x0auniform\x20float\x20fall_interval;\x0auniform\x20float\x20mix_factor;\x0ain\x20vec2\x20v_textureCoordinates;\x0aout\x20vec4\x20fragColor;\x0avoid\x20main(void){\x0a\x20\x20float\x20iTime\x20=\x20czm_frameNumber\x20*\x20fall_interval\x20*\x20clamp(fall_interval\x20*\x200.1,\x200.01,\x200.1);\x0a\x20\x20vec2\x20p\x20=\x20gl_FragCoord.xy\x20/\x20czm_viewport.zw;\x0a\x20\x20vec2\x20d;\x0a\x20\x20vec2\x20tgt\x20=\x20vec2(1.,\x20-1.);\x0a\x20\x20vec3\x20col\x20=\x20vec3(0.);\x0a\x20\x20float\x20mdist\x20=\x20100000.;\x0a\x20\x20float\x20t\x20=\x20hash(floor(5.\x20*\x20iTime));\x0a\x20\x20tgt\x20+=\x204.\x20*\x20hash2(tgt\x20+\x20t)\x20-\x201.5;\x0a\x20\x20if\x20(hash(t\x20+\x202.3)\x20>\x20.6)\x0a\x20\x20for\x20(int\x20i\x20=\x200;\x20i\x20<\x20100;\x20i++)\x20{\x0a\x20\x20\x20\x20vec2\x20dtgt\x20=\x20tgt\x20-\x20p;\x0a\x20\x20\x20\x20d\x20=\x20.05\x20*\x20(vec2(-.5,\x20-1.)\x20+\x20hash2(vec2(float(i),\x20t)));\x0a\x20\x20\x20\x20float\x20dist\x20=\x20dseg(d,\x20dtgt);\x0a\x20\x20\x20\x20mdist\x20=\x20min(mdist,\x20dist);\x0a\x20\x20\x20\x20tgt\x20-=\x20d;\x0a\x20\x20\x20\x20float\x20bolt\x20=\x20exp(-1.2\x20*\x20dist)\x20+\x20exp(-55.\x20*\x20mdist);\x0a\x20\x20\x20\x20col\x20=\x20max(col,\x20bolt\x20*\x20vec3(.7,\x20.8,\x201.));\x0a\x20\x20}\x0a\x20\x20vec4\x20scene\x20=\x20texture(colorTexture,\x20v_textureCoordinates);\x0a\x20\x20vec3\x20finalColor\x20=\x20clamp(scene.rgb\x20+\x20col\x20*\x20mix_factor,\x200.0,\x201.0);\x0a\x20\x20fragColor\x20=\x20vec4(finalColor,\x20scene.a);\x0a}\x0a',WEATHER_EFFECT_TYPES=['snow','rain',_0x2bbbe(0x21d)],WeatherEffects=(function(){var _0x16aaf6=_0x2bbbe;function _0xdc58b3(_0x39a15b){var _0x25bdda=_0x212e,_0x417e23=this,_0x4c74cb=arguments[_0x25bdda(0x1f6)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};_classCallCheck(this,_0xdc58b3),_defineProperty(this,_0x25bdda(0x1f7),void 0x0),_defineProperty(this,'type',void 0x0),_defineProperty(this,_0x25bdda(0x1dd),void 0x0),_defineProperty(this,'stage',void 0x0),_defineProperty(this,'isDestroyed',![]),_defineProperty(this,'_isAdded',![]),_defineProperty(this,'_extraStages',[]),_defineProperty(this,_0x25bdda(0x22e),{'snow':function _0x4801bc(_0x527514){return _0x417e23['_buildSnowStageConfig'](_0x527514);},'rain':function _0x1f32e6(_0x3e664f){var _0x3ef65c=_0x25bdda;return _0x417e23[_0x3ef65c(0x237)](_0x3e664f);},'fog':function _0x162986(_0x2c7332){var _0x488366=_0x25bdda;return _0x417e23[_0x488366(0x1f9)](_0x2c7332);}}),this['type']=this[_0x25bdda(0x21a)](_0x39a15b);var _0x319ad6=this['_buildStageConfig'](this[_0x25bdda(0x218)],_0x4c74cb);this[_0x25bdda(0x1dd)]=_0x319ad6['options'],this['stage']=this[_0x25bdda(0x20a)](_0x319ad6[_0x25bdda(0x206)]),this['_extraStages']=this['_createExtraStages'](_0x319ad6[_0x25bdda(0x216)]);}return _createClass(_0xdc58b3,[{'key':_0x16aaf6(0x20d),'value':function _0x41d39c(){var _0x767599=_0x16aaf6,_0x2c83e8;return(_0x2c83e8=this['_mapContext'])===null||_0x2c83e8===void 0x0?void 0x0:_0x2c83e8[_0x767599(0x20d)]();}},{'key':'remove','value':function _0xf5bf4f(){var _0x143770=_0x16aaf6;if(this[_0x143770(0x1e0)]||!this[_0x143770(0x225)])return;this[_0x143770(0x1f5)](),this[_0x143770(0x221)]();}},{'key':_0x16aaf6(0x227),'value':function _0x4cf8d4(_0x397c16){var _0x5f3716=_0x16aaf6;this['_assertNotDestroyed']();if(this['_isAdded']){var _0x27f73d=this[_0x5f3716(0x20d)]();if(_0x27f73d===_0x397c16)return this;this[_0x5f3716(0x233)]();}return this[_0x5f3716(0x1f7)]=_0x397c16,this['_getStages']()['forEach'](function(_0x25cb08){var _0x2c6b02=_0x5f3716;_0x397c16[_0x2c6b02(0x1e5)][_0x2c6b02(0x208)][_0x2c6b02(0x212)](_0x25cb08);}),this['_isAdded']=!![],this;}},{'key':_0x16aaf6(0x1eb),'value':function _0x1655cc(){var _0x49bcc3=_0x16aaf6,_0x61dfb6=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};this['_assertNotDestroyed']();var _0xa8a2ad=this[_0x49bcc3(0x1e2)](this['type'],_objectSpread(_objectSpread({},this['options']),_0x61dfb6));return this['options']=_0xa8a2ad[_0x49bcc3(0x1dd)],this['_applyStageConfig'](_0xa8a2ad),this;}},{'key':_0x16aaf6(0x1ef),'value':function _0x1223da(){var _0x3a41eb=_0x16aaf6;if(this['isDestroyed'])return;if(this['_isAdded'])this[_0x3a41eb(0x1f5)]();else!this['stage'][_0x3a41eb(0x1e0)]()&&this[_0x3a41eb(0x1fa)]();this[_0x3a41eb(0x1fe)]=[],this[_0x3a41eb(0x1e0)]=!![];}},{'key':'_assertWeatherEffectType','value':function _0x5a52d1(_0x21f824){var _0x3fafd5=_0x16aaf6;if(WEATHER_EFFECT_TYPES[_0x3fafd5(0x214)](_0x21f824))return _0x21f824;throw new Error(_0x3fafd5(0x234)[_0x3fafd5(0x22c)](_0x21f824));}},{'key':_0x16aaf6(0x21f),'value':function _0x1223ec(){if(this['isDestroyed'])throw new Error('WeatherEffects实例已销毁');}},{'key':'_createStage','value':function _0x38f684(_0x573b82){var _0xecc46f=_0x16aaf6,_0x3a353d,_0x242fbd=new _0x48c8c9[(_0xecc46f(0x209))]({'fragmentShader':_0x573b82['fragmentShader'],'uniforms':_0x573b82[_0xecc46f(0x210)]});return _0x242fbd[_0xecc46f(0x223)]=(_0x3a353d=_0x573b82[_0xecc46f(0x223)])!==null&&_0x3a353d!==void 0x0?_0x3a353d:!![],_0x242fbd;}},{'key':'_createExtraStages','value':function _0x259591(_0x313f25){var _0x16bf9a=_0x16aaf6,_0x270b50=this;return _0x313f25[_0x16bf9a(0x1f1)](function(_0x189443){var _0x1016b4=_0x16bf9a;return _0x270b50[_0x1016b4(0x20a)](_0x189443);});}},{'key':'_resetStagesFromCurrentOptions','value':function _0x3d505a(){var _0x22546a=_0x16aaf6,_0x3f31c7=this['_buildStageConfig'](this[_0x22546a(0x218)],this[_0x22546a(0x1dd)]);this['stage']=this['_createStage'](_0x3f31c7[_0x22546a(0x206)]),this['_extraStages']=this['_createExtraStages'](_0x3f31c7[_0x22546a(0x216)]);}},{'key':'_getStages','value':function _0x22df04(){return[this['stage']]['concat'](_toConsumableArray(this['_extraStages']));}},{'key':'_removeStagesFromMap','value':function _0x512193(){var _0x15d46e=_0x16aaf6,_0x1617bd=this[_0x15d46e(0x20d)](),_0x49bd74=this['_getStages']();if(_0x1617bd){var _0x303abe=_0x1617bd['scene'][_0x15d46e(0x208)];_0x49bd74['forEach'](function(_0x47bca6){var _0x4143e8=_0x15d46e;if(_0x303abe[_0x4143e8(0x220)](_0x47bca6))_0x303abe['remove'](_0x47bca6);else!_0x47bca6['isDestroyed']()&&_0x47bca6[_0x4143e8(0x1ef)]();});}else this[_0x15d46e(0x1fa)]();this['_isAdded']=![],this[_0x15d46e(0x1f7)]=undefined;}},{'key':'_destroyStages','value':function _0x2f9ecd(){this['_getStages']()['forEach'](function(_0x4cfc19){var _0x19f764=_0x212e;!_0x4cfc19[_0x19f764(0x1e0)]()&&_0x4cfc19['destroy']();});}},{'key':_0x16aaf6(0x230),'value':function _0x32b8b6(_0x15e691,_0x53fcb2){var _0x14f19b=_0x16aaf6;Object[_0x14f19b(0x217)](_0x53fcb2)[_0x14f19b(0x204)](function(_0x2626ed){var _0x56710e=_0x14f19b;_0x15e691[_0x56710e(0x210)][_0x2626ed]=_0x53fcb2[_0x2626ed];});}},{'key':_0x16aaf6(0x20f),'value':function _0x162f32(_0x5a61ae){var _0xd6a9ae=_0x16aaf6,_0x5c5645,_0x5c2fa8=this,_0x1a5a67=_0x5a61ae['extraStages'];if(_0x1a5a67['length']!==this['_extraStages']['length']){var _0x28afd1=this['getMap'](),_0x4a4288=this['_isAdded']&&!!_0x28afd1;_0x4a4288?this[_0xd6a9ae(0x1f5)]():this['_destroyStages']();this[_0xd6a9ae(0x219)]=this[_0xd6a9ae(0x20a)](_0x5a61ae['mainStage']),this[_0xd6a9ae(0x1fe)]=this[_0xd6a9ae(0x1f2)](_0x1a5a67);_0x4a4288&&_0x28afd1&&this[_0xd6a9ae(0x227)](_0x28afd1);return;}this['_applyUniforms'](this[_0xd6a9ae(0x219)],_0x5a61ae[_0xd6a9ae(0x206)][_0xd6a9ae(0x210)]),this[_0xd6a9ae(0x219)][_0xd6a9ae(0x223)]=(_0x5c5645=_0x5a61ae[_0xd6a9ae(0x206)][_0xd6a9ae(0x223)])!==null&&_0x5c5645!==void 0x0?_0x5c5645:!![],_0x1a5a67['forEach'](function(_0xef45e8,_0x564a4d){var _0xacdcc6=_0xd6a9ae,_0x2f323a,_0x2e4340=_0x5c2fa8['_extraStages'][_0x564a4d];_0x5c2fa8[_0xacdcc6(0x230)](_0x2e4340,_0xef45e8['uniforms']),_0x2e4340['enabled']=(_0x2f323a=_0xef45e8[_0xacdcc6(0x223)])!==null&&_0x2f323a!==void 0x0?_0x2f323a:!![];});}},{'key':_0x16aaf6(0x1e2),'value':function _0x23a9d1(_0x2a1bd2,_0x1eed04){var _0x2235aa=_0x16aaf6;return this[_0x2235aa(0x22e)][_0x2a1bd2](_0x1eed04);}},{'key':_0x16aaf6(0x1e3),'value':function _0x20aece(_0x247b3e,_0x55a4fa,_0x3c7604,_0x21faa7){var _0x122f49=_0x16aaf6;if(!Number['isFinite'](_0x55a4fa)||_0x55a4fa<_0x3c7604||_0x55a4fa>_0x21faa7)throw new Error(''[_0x122f49(0x22c)](_0x247b3e,'\u5C5E\u6027\u8D85\u51FA\u9650\u5236\uFF0C\u53D6\u503C\u8303\u56F4\u4E3A')['concat'](_0x3c7604,'~')[_0x122f49(0x22c)](_0x21faa7));}},{'key':'_assertBoolean','value':function _0x36c37b(_0x440ee6,_0xf7d418){var _0x2d3090=_0x16aaf6;if(typeof _0xf7d418!==_0x2d3090(0x1e9))throw new Error(''['concat'](_0x440ee6,'\u5C5E\u6027\u5FC5\u987B\u662F\u5E03\u5C14\u503C'));}},{'key':'_buildSnowStageConfig','value':function _0x142453(){var _0x317f4a=_0x16aaf6,_0x53aedc=arguments[_0x317f4a(0x1f6)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{},_0x4e011d=_objectSpread(_objectSpread({},DEFAULT_SNOW()),_0x53aedc);return this[_0x317f4a(0x1e3)](_0x317f4a(0x22a),_0x4e011d['size'],0x1,0x1e),this['_assertNumberInRange'](_0x317f4a(0x1df),_0x4e011d['speed'],0x1,0x64),{'mainStage':{'fragmentShader':SnowShader,'uniforms':{'size':0x14/_0x4e011d[_0x317f4a(0x22a)],'speed':0x708/_0x4e011d['speed']}},'extraStages':[],'options':_0x4e011d};}},{'key':_0x16aaf6(0x215),'value':function _0x2493d5(_0x186017){var _0xa53cec=_0x16aaf6;return _0x186017[_0xa53cec(0x1f3)]&&_0x186017['lightningFrequency']>0x0&&_0x186017[_0xa53cec(0x1fc)]>0x0;}},{'key':_0x16aaf6(0x22b),'value':function _0x332212(_0x1fc7e6){return 0.18+_0x1fc7e6/0x64*0.78;}},{'key':_0x16aaf6(0x20b),'value':function _0x19b059(_0x14124d){var _0x4915ef=_0x16aaf6;return{'fragmentShader':LightningShader,'uniforms':{'fall_interval':this['_mapRainLightningInterval'](_0x14124d['lightningFrequency']),'mix_factor':_0x14124d['lightningIntensity']},'enabled':this[_0x4915ef(0x215)](_0x14124d)};}},{'key':_0x16aaf6(0x237),'value':function _0x1eb993(){var _0x214b42=_0x16aaf6,_0x38050b=arguments[_0x214b42(0x1f6)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{},_0x169fef=_objectSpread(_objectSpread({},DEFAULT_RAIN()),_0x38050b);return this[_0x214b42(0x1e3)](_0x214b42(0x1ed),_0x169fef[_0x214b42(0x1ed)],-0x5a,0x5a),this['_assertNumberInRange'](_0x214b42(0x22a),_0x169fef['size'],0x1,0x64),this['_assertNumberInRange'](_0x214b42(0x1df),_0x169fef['speed'],0x1,0x64),this['_assertNumberInRange'](_0x214b42(0x236),_0x169fef['density'],0x0,0x64),this['_assertNumberInRange']('opacity',_0x169fef['opacity'],0x0,0x1),this[_0x214b42(0x1e3)]('gloominess',_0x169fef[_0x214b42(0x235)],0x0,0x1),this[_0x214b42(0x1e7)](_0x214b42(0x1f3),_0x169fef['lightningEnabled']),this[_0x214b42(0x1e3)](_0x214b42(0x1ec),_0x169fef['lightningFrequency'],0x0,0x64),this['_assertNumberInRange']('lightningIntensity',_0x169fef['lightningIntensity'],0x0,0x1),this[_0x214b42(0x1e3)](_0x214b42(0x205),_0x169fef[_0x214b42(0x205)],0x0,0x1),{'mainStage':{'fragmentShader':RainShader,'uniforms':{'direction':toRadians(_0x169fef['direction']),'size':0xa/_0x169fef[_0x214b42(0x22a)],'speed':0x708/_0x169fef[_0x214b42(0x1df)],'density':_0x169fef[_0x214b42(0x236)],'opacity':_0x169fef['opacity'],'gloominess':_0x169fef[_0x214b42(0x235)],'rainColor':colorString(_0x169fef['color'])}},'extraStages':[this['_buildRainLightningStageConfig'](_0x169fef)],'options':_0x169fef};}},{'key':'_buildFogStageConfig','value':function _0x1af663(){var _0x399c80=_0x16aaf6,_0x50e4f2=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{},_0x1ee2ca=_objectSpread(_objectSpread({},DEFAULT_FOG()),_0x50e4f2);this['_assertNumberInRange'](_0x399c80(0x1f8),_0x1ee2ca[_0x399c80(0x1f8)],0x1,0x1388),this[_0x399c80(0x1e3)]('endDistance',_0x1ee2ca['endDistance'],0x1388,0xc350);if(_0x1ee2ca[_0x399c80(0x1f8)]>=_0x1ee2ca[_0x399c80(0x229)])throw new Error(_0x399c80(0x20c));return{'mainStage':{'fragmentShader':FogShader,'uniforms':{'fogByDistance':new _0x48c8c9[(_0x399c80(0x1fb))](_0x1ee2ca[_0x399c80(0x1f8)],0.1,_0x1ee2ca[_0x399c80(0x229)],0.8),'fogColor':colorString(_0x1ee2ca['color'])}},'extraStages':[],'options':_0x1ee2ca};}}]),_0xdc58b3;}());export{WeatherEffects as default};