mars3d-wind 3.8.13 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -49,7 +49,7 @@ import * as mars3d from "mars3d";
49
49
  import "mars3d-wind";
50
50
  ```
51
51
 
52
- > 关于引入后的具体如何使用,请参考教程[在项目中集成 Mars3D](http://mars3d.cn/dev/guide/start/import.html)中了解更多信息。
52
+ > 关于引入后的具体如何使用,请参考教程[Mars3D集成到项目](http://mars3d.cn/docs/guide/npm-integration/)中了解更多信息。
53
53
 
54
54
 
55
55
 
package/mars3d-wind.js CHANGED
@@ -1,15 +1,15 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.8.13
5
- * 编译日期:2025-01-20 23:22
4
+ * 版本信息:v3.9.0
5
+ * 编译日期:2025-02-15 11:57
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
- * 使用单位:火星科技免费公开版 ,2024-08-01
7
+ * 使用单位:火星科技免费公开版 ,2025-02-01
8
8
  */
9
9
  (function (global, factory) {
10
10
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, (window.mars3d || require('mars3d'))) :
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';(function(_0x407370,_0x24f7fb){function _0x2f3650(_0x477b99,_0x338280){return _0x457f(_0x338280-0x15b,_0x477b99);}function _0x2d772d(_0x2d0b5b,_0x3327e6){return _0x457f(_0x3327e6-0x34c,_0x2d0b5b);}const _0x4e0b08=_0x407370();while(!![]){try{const _0x5f2dea=parseInt(_0x2f3650(0x2e0,0x2ad))/0x1+-parseInt(_0x2f3650(0x2bf,0x2d8))/0x2+parseInt(_0x2d772d(0x4e2,0x532))/0x3*(parseInt(_0x2d772d(0x448,0x4cd))/0x4)+parseInt(_0x2d772d(0x541,0x57e))/0x5+-parseInt(_0x2f3650(0x35b,0x311))/0x6*(parseInt(_0x2d772d(0x575,0x514))/0x7)+-parseInt(_0x2d772d(0x525,0x54e))/0x8+parseInt(_0x2f3650(0x379,0x2f8))/0x9;if(_0x5f2dea===_0x24f7fb)break;else _0x4e0b08['push'](_0x4e0b08['shift']());}catch(_0x4226f8){_0x4e0b08['push'](_0x4e0b08['shift']());}}}(_0x5a79,0xcae54));function _interopNamespace(_0x6a4bd0){if(_0x6a4bd0&&_0x6a4bd0['__esModule'])return _0x6a4bd0;var _0x4cb8f7=Object['create'](null);_0x6a4bd0&&Object['keys'](_0x6a4bd0)['forEach'](function(_0x552966){function _0x5f4bb1(_0x29ea96,_0x178b99){return _0x457f(_0x178b99- -0x1b0,_0x29ea96);}if(_0x552966!=='default'){var _0x1dd590=Object['getOwnPropertyDescriptor'](_0x6a4bd0,_0x552966);Object['defineProperty'](_0x4cb8f7,_0x552966,_0x1dd590[_0x5f4bb1(0x23,-0x54)]?_0x1dd590:{'enumerable':!![],'get':function(){return _0x6a4bd0[_0x552966];}});}});_0x4cb8f7[_0x204245(0x4e4,0x566)]=_0x6a4bd0;function _0x204245(_0x2177fc,_0x44f3fd){return _0x457f(_0x2177fc-0x2c4,_0x44f3fd);}return _0x4cb8f7;}function _0x457f(_0x2f498b,_0x4385a3){const _0x5a79d3=_0x5a79();return _0x457f=function(_0x457faa,_0xe5895e){_0x457faa=_0x457faa-0x137;let _0x1ba647=_0x5a79d3[_0x457faa];return _0x1ba647;},_0x457f(_0x2f498b,_0x4385a3);}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x5b589a,_0x20e955){const _0x5a7ba6=_0x5b589a*Math['cos'](Cesium$2['Math']['toRadians'](_0x20e955));return _0x5a7ba6;}function getV(_0x18c3a7,_0x1bb7bc){const _0x24f428=_0x18c3a7*Math[_0x4358f1(0x5cf,0x555)](Cesium$2['Math']['toRadians'](_0x1bb7bc));function _0x4358f1(_0x273c24,_0x32f65b){return _0x457f(_0x32f65b-0x396,_0x273c24);}return _0x24f428;}function getSpeed(_0x6ea02,_0x1c1063){const _0x3d48a9=Math['sqrt'](Math[_0x57a32f(-0x90,-0x8d)](_0x6ea02,0x2)+Math['pow'](_0x1c1063,0x2));function _0x57a32f(_0x5cd71e,_0x455682){return _0x457f(_0x455682- -0x238,_0x5cd71e);}return _0x3d48a9;}function getDirection(_0x44674e,_0x52403f){let _0x10ac82=Cesium$2['Math']['toDegrees'](Math['atan2'](_0x52403f,_0x44674e));return _0x10ac82+=_0x10ac82<0x0?0x168:0x0,_0x10ac82;}const _0x4bc55e={};_0x4bc55e[_0x8b6892(-0x1a9,-0x214)]=null,_0x4bc55e[_0x8b6892(-0x204,-0x207)]=getU,_0x4bc55e['getV']=getV,_0x4bc55e['getSpeed']=getSpeed,_0x4bc55e['getDirection']=getDirection;var WindUtil=_0x4bc55e,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader=_0x8b6892(-0x222,-0x220),renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a';function _0x8b6892(_0x36961e,_0x306e1e){return _0x457f(_0x306e1e- -0x3b7,_0x36961e);}var renderParticlesVertexShader=_0x8b6892(-0x29e,-0x269);const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x1d22c3(-0x17d,-0x1b1)];class ShaderManager{static[_0x1d22c3(-0x190,-0x178)](){const _0x111eb1={};return _0x111eb1['sources']=[calculateSpeedShader],new ShaderSource$1(_0x111eb1);}static['getUpdatePositionShader'](){const _0x1464f2={};_0x1464f2[_0x38c4fc(-0xd,0x5e)]=[updatePositionShader];function _0x38c4fc(_0x369b25,_0x35e90c){return _0x1d22c3(_0x369b25-0x13f,_0x35e90c);}return new ShaderSource$1(_0x1464f2);}static['getSegmentDrawVertexShader'](){const _0x3b9aa1={};return _0x3b9aa1['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x3b9aa1);}static['getSegmentDrawFragmentShader'](){const _0x4baa66={};_0x4baa66[_0x187464(-0x1aa,-0x186)]=[renderParticlesFragmentShader];function _0x187464(_0x12bbe2,_0x48ab74){return _0x1d22c3(_0x48ab74- -0x3a,_0x12bbe2);}return new ShaderSource$1(_0x4baa66);}static['getPostProcessingPositionShader'](){const _0x393c3f={};return _0x393c3f['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x393c3f);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defaultValue,defined,destroyObject}=mars3d__namespace[_0x1d22c3(-0x17d,-0x143)];class CustomPrimitive{constructor(_0x338c6e){this['commandType']=_0x338c6e['commandType'],this['geometry']=_0x338c6e['geometry'],this[_0x25031e(0x44c,0x4af)]=_0x338c6e[_0x25031e(0x462,0x4af)];function _0x25031e(_0x186626,_0x2d3715){return _0x8b6892(_0x186626,_0x2d3715-0x6f9);}function _0x2679e1(_0x45d12c,_0x288911){return _0x8b6892(_0x45d12c,_0x288911-0x303);}this['primitiveType']=_0x338c6e[_0x2679e1(0x44,0xc6)],this[_0x2679e1(0x1b9,0x13b)]=_0x338c6e['uniformMap']||{},this[_0x2679e1(0x141,0xcc)]=_0x338c6e['vertexShaderSource'],this['fragmentShaderSource']=_0x338c6e['fragmentShaderSource'],this['rawRenderState']=_0x338c6e[_0x25031e(0x496,0x4ce)],this['framebuffer']=_0x338c6e[_0x25031e(0x442,0x486)],this['outputTexture']=_0x338c6e['outputTexture'],this[_0x25031e(0x495,0x4b8)]=defaultValue(_0x338c6e[_0x2679e1(0xdd,0xc2)],![]),this['preExecute']=_0x338c6e['preExecute'],this[_0x25031e(0x508,0x48e)]=!![],this[_0x25031e(0x4f1,0x52f)]=undefined,this['clearCommand']=undefined,this[_0x25031e(0x45c,0x4c6)]=_0x338c6e['isDynamic']??(()=>!![]),this['autoClear']&&(this[_0x25031e(0x50e,0x49f)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x46fc06){function _0x50c581(_0x21ad82,_0x3cf6f4){return _0x8b6892(_0x21ad82,_0x3cf6f4-0x59e);}function _0x5b5a94(_0x521907,_0x322785){return _0x8b6892(_0x322785,_0x521907-0x137);}if(this[_0x5b5a94(-0x141,-0x101)]==='Draw'){const _0x20688a={};_0x20688a['context']=_0x46fc06,_0x20688a[_0x50c581(0x36a,0x37d)]=this[_0x5b5a94(-0xea,-0x11f)],_0x20688a['attributeLocations']=this[_0x5b5a94(-0x113,-0xb1)],_0x20688a['bufferUsage']=BufferUsage$1[_0x5b5a94(-0x133,-0x146)];const _0x579f07=VertexArray$1[_0x50c581(0x2f0,0x371)](_0x20688a),_0x30b660={};_0x30b660['context']=_0x46fc06,_0x30b660['vertexShaderSource']=this[_0x50c581(0x2dd,0x367)],_0x30b660[_0x50c581(0x3b5,0x3ba)]=this[_0x5b5a94(-0xad,-0xa0)],_0x30b660[_0x50c581(0x2e7,0x354)]=this[_0x5b5a94(-0x113,-0xe8)];const _0x2674a1=ShaderProgram['fromCache'](_0x30b660),_0x28c971=RenderState[_0x5b5a94(-0x146,-0xbc)](this['rawRenderState']),_0x3a80a4={};return _0x3a80a4[_0x5b5a94(-0x13a,-0x177)]=this,_0x3a80a4['vertexArray']=_0x579f07,_0x3a80a4[_0x5b5a94(-0x106,-0x176)]=this['primitiveType'],_0x3a80a4[_0x5b5a94(-0x5a,-0x70)]=Matrix4[_0x5b5a94(-0x6e,-0x38)],_0x3a80a4['renderState']=_0x28c971,_0x3a80a4[_0x50c581(0x406,0x3bb)]=_0x2674a1,_0x3a80a4['framebuffer']=this['framebuffer'],_0x3a80a4['uniformMap']=this['uniformMap'],_0x3a80a4['pass']=Pass$1['OPAQUE'],new DrawCommand(_0x3a80a4);}else{if(this['commandType']==='Compute'){const _0xc1a85c={};return _0xc1a85c['owner']=this,_0xc1a85c['fragmentShaderSource']=this['fragmentShaderSource'],_0xc1a85c['uniformMap']=this['uniformMap'],_0xc1a85c['outputTexture']=this[_0x50c581(0x451,0x3d9)],_0xc1a85c['persists']=!![],new ComputeCommand(_0xc1a85c);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x2befa5,_0x156167){this[_0x18501a(-0x213,-0x24d)]=_0x156167;function _0x18501a(_0x3a67aa,_0x41e5d7){return _0x1d22c3(_0x3a67aa- -0x2f,_0x41e5d7);}function _0x2d1827(_0x397827,_0x1158f4){return _0x1d22c3(_0x397827-0x6bb,_0x1158f4);}defined(this['commandToExecute'])&&(this[_0x2d1827(0x52e,0x502)]['vertexArray']=VertexArray$1[_0x18501a(-0x21f,-0x2ab)]({'context':_0x2befa5,'geometry':this[_0x18501a(-0x213,-0x1b7)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0xb5938a){function _0x1a33d1(_0x2cd02d,_0x161f86){return _0x8b6892(_0x161f86,_0x2cd02d-0x5f2);}if(!this['isDynamic']())return;if(!this['show']||!defined(_0xb5938a))return;!defined(this['commandToExecute'])&&(this['commandToExecute']=this[_0x3685fd(-0x14d,-0x135)](_0xb5938a['context']));defined(this['preExecute'])&&this['preExecute']();if(!_0xb5938a['commandList']){console['warn'](_0x1a33d1(0x3c0,0x443));return;}defined(this[_0x3685fd(-0x1b5,-0x22e)])&&_0xb5938a['commandList'][_0x1a33d1(0x3f3,0x3bc)](this['clearCommand']);function _0x3685fd(_0x2edeea,_0x268e57){return _0x8b6892(_0x268e57,_0x2edeea-0xa5);}defined(this['commandToExecute'])&&_0xb5938a[_0x3685fd(-0x132,-0x1bf)][_0x3685fd(-0x15a,-0x149)](this['commandToExecute']);}[_0x1d22c3(-0x214,-0x281)](){return![];}[_0x1d22c3(-0x224,-0x268)](){function _0x12d80d(_0x45f82d,_0x2b4b5c){return _0x8b6892(_0x45f82d,_0x2b4b5c-0x604);}function _0x488b3c(_0xdb6f5c,_0x33dee4){return _0x8b6892(_0x33dee4,_0xdb6f5c-0x192);}if(defined(this[_0x12d80d(0x468,0x43a)])){var _0x4b17a4;(_0x4b17a4=this[_0x12d80d(0x464,0x43a)]['shaderProgram'])===null||_0x4b17a4===void 0x0||_0x4b17a4[_0x488b3c(-0xcf,-0xfa)](),this[_0x12d80d(0x453,0x43a)]['shaderProgram']=undefined;}return destroyObject(this);}}function deepMerge(_0x4bb373,_0x16576e){if(!_0x4bb373)return _0x16576e;if(!_0x16576e)return _0x4bb373;function _0x2e1c93(_0x46265d,_0x4dba86){return _0x1d22c3(_0x46265d-0x676,_0x4dba86);}const _0x4f36a5={..._0x16576e},_0x5d93a9=_0x4f36a5;for(const _0x476ab4 in _0x4bb373){if(Object['prototype']['hasOwnProperty']['call'](_0x4bb373,_0x476ab4)){const _0x3a17f7=_0x4bb373[_0x476ab4],_0x4f137e=_0x16576e[_0x476ab4];if(Array['isArray'](_0x3a17f7)){_0x5d93a9[_0x476ab4]=_0x3a17f7[_0x2e1c93(0x4c6,0x4f9)]();continue;}if(_0x3a17f7&&typeof _0x3a17f7==='object'){_0x5d93a9[_0x476ab4]=deepMerge(_0x3a17f7,_0x4f137e||{});continue;}_0x3a17f7!==undefined&&(_0x5d93a9[_0x476ab4]=_0x3a17f7);}}return _0x5d93a9;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace[_0x8b6892(-0x1b5,-0x1ba)];class WindParticlesComputing{constructor(_0x59d8f1,_0x16fc30,_0x401c6d,_0x43d988,_0x39c130){this[_0x4d04e2(0x29c,0x2c2)]=_0x59d8f1,this['options']=_0x401c6d,this['viewerParameters']=_0x43d988,this[_0x4d04e2(0x2fb,0x2eb)]=_0x16fc30;function _0x387794(_0x268d61,_0xe27600){return _0x1d22c3(_0xe27600-0x358,_0x268d61);}this['frameRate']=0x3c;function _0x4d04e2(_0x3263de,_0xd52fd7){return _0x1d22c3(_0xd52fd7-0x479,_0x3263de);}this[_0x387794(0x1e7,0x1d2)]=0x1;const _0x39a410={};_0x39a410[_0x4d04e2(0x256,0x2dd)]=_0x39c130,_0x39a410['samplingWindow']=0x1,_0x39a410[_0x387794(0xd5,0x151)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x39a410),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures'](),this[_0x387794(0x1e2,0x197)]();}[_0x1d22c3(-0x1f3,-0x22f)](){const _0xe8188d=()=>{this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0xe8188d();const _0x26367b=setInterval(_0xe8188d,0x3e8),_0x4c4f63=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x26367b),_0x4c4f63();};}[_0x1d22c3(-0x163,-0x117)](){function _0x3b7f1f(_0x3d1b40,_0x4d8d5f){return _0x1d22c3(_0x4d8d5f-0x3dd,_0x3d1b40);}const _0x45003e={};_0x45003e['minificationFilter']=TextureMinificationFilter$1['LINEAR'];function _0x1496ec(_0xad81f1,_0x50655a){return _0x8b6892(_0x50655a,_0xad81f1-0x10b);}_0x45003e[_0x3b7f1f(0x1b0,0x19f)]=TextureMagnificationFilter$1['LINEAR'];const _0x252740={'context':this['context'],'width':this['windData'][_0x3b7f1f(0x2b2,0x2a6)],'height':this['windData']['height'],'pixelFormat':PixelFormat$1[_0x3b7f1f(0x21c,0x1b6)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x3b7f1f(0x26b,0x1fd)]['flipY']??![],'sampler':new Sampler$1(_0x45003e)};this[_0x1496ec(-0x152,-0x1af)]={'U':new Texture$1({..._0x252740,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x252740,'source':{'arrayBufferView':new Float32Array(this['windData']['v'][_0x1496ec(-0x103,-0xad)])}})};}['createParticlesTextures'](){const _0x43aac9={};function _0x35eb92(_0x41aeaa,_0x476e9e){return _0x8b6892(_0x476e9e,_0x41aeaa-0x752);}_0x43aac9['minificationFilter']=TextureMinificationFilter$1[_0x137ff4(0x3ac,0x332)],_0x43aac9['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];const _0x72bf7b={'context':this['context'],'width':this[_0x35eb92(0x535,0x58f)]['particlesTextureSize'],'height':this[_0x137ff4(0x333,0x333)][_0x35eb92(0x51a,0x522)],'pixelFormat':PixelFormat$1[_0x137ff4(0x267,0x2e8)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options'][_0x35eb92(0x51a,0x4cd)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x43aac9)};function _0x137ff4(_0xa143e6,_0x226912){return _0x8b6892(_0xa143e6,_0x226912-0x550);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x72bf7b),'currentParticlesPosition':new Texture$1(_0x72bf7b),'nextParticlesPosition':new Texture$1(_0x72bf7b),'postProcessingPosition':new Texture$1(_0x72bf7b),'particlesSpeed':new Texture$1(_0x72bf7b)};}[_0x1d22c3(-0x146,-0x1a9)](){Object['values'](this['particlesTextures'])['forEach'](_0x164e8d=>_0x164e8d['destroy']());}['createComputingPrimitives'](){function _0x2945a0(_0x435673,_0x42a0f2){return _0x1d22c3(_0x42a0f2-0x1b3,_0x435673);}function _0x4a3370(_0x5ca706,_0x2489a7){return _0x1d22c3(_0x2489a7-0x166,_0x5ca706);}this[_0x2945a0(-0x46,0x0)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this['windData']['v'][_0x2945a0(-0x29,-0x15)]),'speedRange':()=>new Cartesian2$1(this[_0x4a3370(0x55,-0x28)]['speed'][_0x2945a0(0x43,-0x49)],this['windData']['speed'][_0x2945a0(-0x63,-0x15)]),'currentParticlesPosition':()=>this['particlesTextures'][_0x2945a0(-0x64,-0x4f)],'speedScaleFactor':()=>{function _0xa7a046(_0x3fa97e,_0x227941){return _0x4a3370(_0x3fa97e,_0x227941-0x169);}function _0x26f856(_0x152347,_0x26ad1e){return _0x4a3370(_0x152347,_0x26ad1e-0x22e);}return(this[_0xa7a046(0x103,0xe7)]['pixelSize']+0x32)*this['options'][_0xa7a046(0xdf,0xed)];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData'][_0x2945a0(0x5e,0x7c)],this[_0x4a3370(0x3a,-0x28)][_0x4a3370(-0x61,-0x75)]),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0x2945a0(0x99,0x6e)],this['windData'][_0x2945a0(-0x20,-0x6e)]['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds'][_0x4a3370(-0x30,-0x9d)],this[_0x4a3370(-0x94,-0x28)]['bounds'][_0x2945a0(-0x10c,-0x84)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures']['particlesSpeed'],'preExecute':()=>{function _0x50ca9d(_0x553bfc,_0x1e51e7){return _0x4a3370(_0x553bfc,_0x1e51e7- -0xda);}const _0x38f863=this[_0x50ca9d(-0x12f,-0x10b)]['previousParticlesPosition'];this[_0x50ca9d(-0x175,-0x10b)]['previousParticlesPosition']=this[_0x2f91d1(0x2ad,0x282)][_0x2f91d1(0x29f,0x217)];function _0x2f91d1(_0x1f1046,_0x227b7a){return _0x2945a0(_0x1f1046,_0x227b7a-0x266);}this[_0x50ca9d(-0x136,-0x10b)]['currentParticlesPosition']=this[_0x2f91d1(0x206,0x282)]['postProcessingPosition'],this['particlesTextures']['postProcessingPosition']=_0x38f863,this['primitives'][_0x2f91d1(0x296,0x2bb)]['commandToExecute']&&(this['primitives'][_0x50ca9d(-0x119,-0xd2)]['commandToExecute'][_0x2f91d1(0x2a8,0x291)]=this['particlesTextures'][_0x50ca9d(-0xfb,-0xe6)]);},'isDynamic':()=>this[_0x2945a0(-0x88,-0x2d)][_0x4a3370(-0x62,-0x49)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x2945a0(-0xad,-0x4f)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager[_0x2945a0(0xd7,0x51)](),'outputTexture':this[_0x4a3370(-0x1d,-0x31)]['nextParticlesPosition'],'preExecute':()=>{function _0x32f9c6(_0x31bc98,_0x53099c){return _0x4a3370(_0x53099c,_0x31bc98-0x9);}function _0x2cb017(_0x3fa3f7,_0x835b0c){return _0x2945a0(_0x835b0c,_0x3fa3f7- -0x7e);}this['primitives']['updatePosition']['commandToExecute']&&(this['primitives']['updatePosition'][_0x2cb017(-0x58,-0x36)][_0x2cb017(-0x53,0x18)]=this[_0x2cb017(-0x62,-0x8f)][_0x2cb017(-0x34,-0x41)]);},'isDynamic':()=>this[_0x2945a0(0x16,-0x2d)][_0x4a3370(-0x78,-0x49)]}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x2945a0(0x65,0x4a)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters'][_0x4a3370(-0x5e,-0x53)],'latRange':()=>this[_0x4a3370(-0xf2,-0x82)]['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x4a3370(-0x6f,-0xbb)][_0x4a3370(0x87,0x21)],this[_0x2945a0(0x82,0x25)][_0x2945a0(-0x3d,-0x6e)][_0x4a3370(-0xd9,-0x9d)]),'dataLatRange':()=>new Cartesian2$1(this[_0x4a3370(-0x92,-0x28)]['bounds'][_0x4a3370(-0x112,-0xb4)],this[_0x4a3370(-0x16,-0x28)]['bounds']['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options'][_0x2945a0(0x45,0x8)],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this['options']['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures'][_0x2945a0(-0x87,-0x45)],'preExecute':()=>{function _0x56cc37(_0x4a019f,_0x5ae9ae){return _0x2945a0(_0x5ae9ae,_0x4a019f- -0x115);}function _0x291355(_0x1692ae,_0x5010af){return _0x2945a0(_0x5010af,_0x1692ae- -0x3);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this[_0x56cc37(-0x115,-0x109)]['postProcessingPosition']['commandToExecute'][_0x291355(0x28,-0x4b)]=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0x2945a0(-0x81,-0x2d)]['dynamic']})};}['reCreateWindTextures'](){this[_0x5e413e(-0x82,-0xa5)]['U']['destroy']();function _0x27a8d4(_0x5bd31c,_0x1cdac5){return _0x1d22c3(_0x1cdac5-0x22c,_0x5bd31c);}function _0x5e413e(_0x2fedfd,_0x4c4fef){return _0x1d22c3(_0x4c4fef-0x17b,_0x2fedfd);}this['windTextures']['V'][_0x27a8d4(0x2a,0x8)](),this['createWindTextures']();}[_0x8b6892(-0x202,-0x242)](_0x5620b9){this['windData']=_0x5620b9,this['reCreateWindTextures']();}['updateOptions'](_0x1f70d9){const _0x2b3c69=_0x1f70d9['flipY']!==undefined&&_0x1f70d9['flipY']!==this['options']['flipY'];this['options']=deepMerge(_0x1f70d9,this['options']),_0x2b3c69&&this['reCreateWindTextures']();}['processWindData'](_0x56db17){const {array:_0x371c4c}=_0x56db17;let {min:_0x48dca4,max:_0x5656a1}=_0x56db17;function _0x265197(_0x2513bb,_0x225486){return _0x8b6892(_0x225486,_0x2513bb-0x181);}const _0x408b0c=new Float32Array(_0x371c4c[_0x50ab04(0x31e,0x2ca)]);_0x48dca4===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x48dca4=Math['min'](..._0x371c4c));_0x5656a1===undefined&&(console['warn'](_0x50ab04(0x2d0,0x340)),_0x5656a1=Math['max'](..._0x371c4c));function _0x50ab04(_0x47c9b6,_0x3497d1){return _0x1d22c3(_0x47c9b6-0x4bc,_0x3497d1);}const _0x5bdc82=Math['max'](Math[_0x50ab04(0x355,0x2e3)](_0x48dca4),Math['abs'](_0x5656a1));for(let _0x3592c8=0x0;_0x3592c8<_0x371c4c[_0x50ab04(0x31e,0x302)];_0x3592c8++){const _0x5fa176=_0x371c4c[_0x3592c8]/_0x5bdc82;_0x408b0c[_0x3592c8]=_0x5fa176;}return _0x408b0c;}[_0x1d22c3(-0x224,-0x1f8)](){Object['values'](this[_0x595260(0x361,0x3d5)])['forEach'](_0x11c893=>_0x11c893['destroy']());function _0x501824(_0x12d6c5,_0x4d142d){return _0x8b6892(_0x12d6c5,_0x4d142d-0x53c);}Object[_0x595260(0x451,0x3dd)](this['particlesTextures'])['forEach'](_0x398ac3=>_0x398ac3['destroy']()),Object[_0x501824(0x354,0x3cf)](this['primitives'])[_0x595260(0x3e8,0x414)](_0x4a9388=>_0x4a9388[_0x501824(0x27d,0x2db)]());function _0x595260(_0x315831,_0x460d5f){return _0x1d22c3(_0x315831-0x581,_0x460d5f);}this['frameRateMonitor']['destroy']();}}function _0x5a79(){const _0x2b460f=['159WZsEDt','updatePosition','pixelDatatype','absolute','getCalculateSpeedShader','_updateIng2','windData','commandToExecute','fromDegrees','uniformMap','speedRate','_onMouseMoveEvent','outputTexture','#ffffff','frameRateAdjustment','segments','createColorTableTexture','_showHook','_speedRate','mouseMove','_updateIng','FLOAT','clientWidth','Cesium','updateOptions','bind','mouseHidden','grid','11421784jiTdTt','xmin','getParticles','random','lineWidth','isDestroy','particlesSpeed','blendFuncDestination','_colorRamp','colorTable','defineProperty','0px','_pointerEvents','xmax','canvasWidth','nextParticlesPosition','IDENTITY','abs','cols','CanvasWindLayer','flipY','createWindTextures','getUpdatePositionShader','rgb(206,255,255)','longitude','EllipsoidalOccluder','calculateSpeed','morphComplete','setData','type','default','createRawRenderState','fixedHeight','value','fillRect','_onMouseDownEvent','modelMatrix','_calcUV','data','canvasHeight','umax','getSegmentDrawVertexShader','createPrimitives','particlesNumber','sources','talt','keys','hidden','623610HpXqIU','red','destroyParticlesTextures','west','changed','_drawLines','age','ymax','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','_setOptionsHook','Cartesian2','beginPath','updateViewerParameters','setDate','computing','postMessage','getPrimitives','width','framebuffers','none','style','clear','canvas','reverse','values','strokeStyle','refreshTimer','createSegmentsGeometry','original','camera','mouse_move','resize','drawingBufferHeight','_tomap','fromCache','initWorker','magnificationFilter','sqrt','globalCompositeOperation','commandType','number','_randomParticle','applyViewerParameters','north','framebuffer','requestAnimationFrame','owner','onParticlesTextureSizeChange','blue','layer','globe','FUNC_ADD','show','STATIC_DRAW','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a','RGBA','pixelFormat','moveTo','1484177CYTcdn','RED','destoryRenderingFramebuffers','ymin','destroy','toGridXY','getRandomLatLng','bounds','windTextures','domain','get','clearCommand','create','latitude','south','clientHeight','changeOptions','udata','_addedHook','alt','isDestroyed','_onMapWhellEvent','createRenderingTextures','isInExtent','unbindEvent','mouseUp','remove','attributeLocations','ellipsoid','pointer-events','mouse_down','lighter','floor','quietPeriod','left','updateWindData','autoClear','east','currentParticlesPosition','getUVByXY','primitiveType','colors','lat','2599628yGfGqL','min','particlesTextureSize','vertexShaderSource','70456dElxJU','postProcessingPosition','componentDatatype','isDynamic','frameState.commandList\x20is\x20undefined','color','initFrameRate','speed','tlat','fromGeometry','windField','rawRenderState','getUVByPoint','max\x20is\x20undefined,\x20calculate\x20max','stringify','particles','log','viewerParameters','OPAQUE','MAX_VALUE','lng','geometry','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a','speedFactor','NEAREST','options','canvasContext','visibility','18673830LfYhiA','_removedHook','height','wind','add','mars3d-canvasWind','__proto__','cancelAnimationFrame','particleSystem','wrapS','setOptions','now','array','EventType','pow','redraw','dropRateBump','_calc_speedRate','rendering','getU','pickEllipsoid','max','CanvasWindField','update','pixelSize','12AtmWUY','drawingBufferWidth','push','createComputingPrimitives','blendFuncSource','WindUtil','rows','PointTrans','addEventListener','sin','tlng','lonRange','_canrefresh','context','_map','createCommand','bufferUsage','primitives','3705499PTIDpN','worker','slice','dynamic','removeEventListener','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','alpha','dropRate','pointerEvents','top','createParticlesTextures','fragmentShaderSource','shaderProgram','_animateFrame','maxAge','getSegmentDrawFragmentShader','componentsPerAttribute','UNSIGNED_INT','visible','vertexArray','length','BaseLayer','scene','flatMap','commandList','forEach','onColorTableChange','particlesTextures','_onMouseUpEvent','destination-in'];_0x5a79=function(){return _0x2b460f;};return _0x5a79();}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x8b6892(-0x16e,-0x1ba)];class WindParticlesRendering{constructor(_0x2c31cb,_0x1c23b6,_0x25afe6,_0x3c3f68){this[_0x44341b(0x492,0x451)]=_0x2c31cb;function _0x1d772d(_0x50efa0,_0x61553b){return _0x8b6892(_0x61553b,_0x50efa0-0xe7);}this['options']=_0x1c23b6,this[_0x44341b(0x3f2,0x420)]=_0x25afe6,this['computing']=_0x3c3f68;(typeof this['options'][_0x44341b(0x3af,0x40d)]!==_0x1d772d(-0x190,-0x178)||this[_0x1d772d(-0x136,-0x14f)]['particlesTextureSize']<=0x0)&&(console['error'](_0x44341b(0x551,0x4c8)),this['options']['particlesTextureSize']=0x100);this[_0x44341b(0x4d2,0x499)]=this[_0x44341b(0x4a9,0x484)](),this['textures']=this['createRenderingTextures']();function _0x44341b(_0x1c4060,_0x395263){return _0x1d22c3(_0x395263-0x608,_0x1c4060);}this[_0x44341b(0x4c5,0x4d2)]=this['createRenderingFramebuffers'](),this[_0x44341b(0x3f8,0x455)]=this[_0x1d772d(-0xa4,-0x80)]();}[_0x1d22c3(-0x212,-0x1f6)](){const _0x4a0766={};_0x4a0766['context']=this[_0x3c169a(0xe5,0x159)],_0x4a0766[_0x3c169a(0x165,0x170)]=this['context']['drawingBufferWidth'],_0x4a0766['height']=this['context']['drawingBufferHeight'],_0x4a0766['pixelFormat']=PixelFormat['RGBA'],_0x4a0766['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x479b46=_0x4a0766,_0x657ffb={};_0x657ffb[_0x3c169a(0xe5,0x12a)]=this['context'],_0x657ffb['width']=this['context'][_0x2ce171(0x4bd,0x46e)],_0x657ffb[_0x3c169a(0xc1,0x90)]=this['context'][_0x2ce171(0x43e,0x3ee)],_0x657ffb[_0x3c169a(0x72,0x71)]=PixelFormat['DEPTH_COMPONENT'];function _0x2ce171(_0x20e5b3,_0x16b03b){return _0x1d22c3(_0x20e5b3-0x680,_0x16b03b);}_0x657ffb[_0x2ce171(0x4ee,0x4aa)]=PixelDatatype[_0x2ce171(0x4df,0x497)];const _0x35cc84=_0x657ffb;function _0x3c169a(_0x4f6a2a,_0x4837ba){return _0x1d22c3(_0x4f6a2a-0x29c,_0x4837ba);}return{'segmentsColor':new Texture(_0x479b46),'segmentsDepth':new Texture(_0x35cc84)};}['createRenderingFramebuffers'](){const _0x1b2935={};_0x1b2935['context']=this[_0xa11f59(-0x195,-0x1d1)],_0x1b2935['colorTextures']=[this['textures']['segmentsColor']],_0x1b2935['depthTexture']=this['textures']['segmentsDepth'];function _0xa11f59(_0x23e439,_0x53feaf){return _0x8b6892(_0x53feaf,_0x23e439-0x5f);}return{'segments':new Framebuffer(_0x1b2935)};}[_0x1d22c3(-0x226,-0x1e5)](){function _0xf18eee(_0xdc03d0,_0x107372){return _0x1d22c3(_0x107372-0x6f4,_0xdc03d0);}Object['values'](this['framebuffers'])[_0xf18eee(0x4f8,0x55b)](_0x5e6946=>{function _0x5a1214(_0x4c36f5,_0x3346ad){return _0xf18eee(_0x4c36f5,_0x3346ad- -0x66e);}_0x5e6946[_0x5a1214(-0x139,-0x19e)]();});}['createColorTableTexture'](){const _0x23db05=new Float32Array(this['options']['colors'][_0x4664b2(-0x10d,-0x80)](_0x289004=>{const _0x232783=Color$1['fromCssColorString'](_0x289004);function _0x2362b3(_0x6556c6,_0x34991c){return _0x4664b2(_0x6556c6-0x32,_0x34991c);}function _0x4ee3f2(_0x360fd8,_0x3b010f){return _0x4664b2(_0x360fd8-0x26d,_0x3b010f);}return[_0x232783[_0x2362b3(-0x87,-0xeb)],_0x232783['green'],_0x232783[_0x4ee3f2(0xc9,0x61)],_0x232783[_0x2362b3(-0xec,-0xbb)]];})),_0x42e080={};_0x42e080['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x42e080[_0x4664b2(-0x1b0,-0x134)]=TextureMagnificationFilter['LINEAR'],_0x42e080[_0x2f7142(0x35f,0x388)]=TextureWrap['CLAMP_TO_EDGE'],_0x42e080['wrapT']=TextureWrap['CLAMP_TO_EDGE'];function _0x2f7142(_0x4a32f8,_0x4c98dc){return _0x1d22c3(_0x4c98dc-0x55c,_0x4a32f8);}function _0x4664b2(_0x2e0f22,_0x39ba07){return _0x8b6892(_0x39ba07,_0x2e0f22-0xcb);}return new Texture({'context':this['context'],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x42e080),'source':{'width':this['options'][_0x4664b2(-0x171,-0xfa)][_0x2f7142(0x3c0,0x3be)],'height':0x1,'arrayBufferView':_0x23db05}});}['createSegmentsGeometry'](){const _0x157f24=0x4,_0x5d8fe2=this['options']['particlesTextureSize'];let _0x16b1b0=[];for(let _0x23c6bc=0x0;_0x23c6bc<_0x5d8fe2;_0x23c6bc++){for(let _0x3b42da=0x0;_0x3b42da<_0x5d8fe2;_0x3b42da++){for(let _0x314e0e=0x0;_0x314e0e<_0x157f24;_0x314e0e++){_0x16b1b0['push'](_0x23c6bc/_0x5d8fe2),_0x16b1b0['push'](_0x3b42da/_0x5d8fe2);}}}_0x16b1b0=new Float32Array(_0x16b1b0);const _0x10c7ce=this['options']['particlesTextureSize']**0x2;let _0x55923e=[];for(let _0x2be1e2=0x0;_0x2be1e2<_0x10c7ce;_0x2be1e2++){_0x55923e['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x55923e=new Float32Array(_0x55923e);let _0x3744eb=[];for(let _0xb2de88=0x0,_0x35a6b7=0x0;_0xb2de88<_0x10c7ce;_0xb2de88++){_0x3744eb['push'](_0x35a6b7+0x0,_0x35a6b7+0x1,_0x35a6b7+0x2,_0x35a6b7+0x2,_0x35a6b7+0x1,_0x35a6b7+0x3),_0x35a6b7+=_0x157f24;}_0x3744eb=new Uint32Array(_0x3744eb);const _0x30a5da={};_0x30a5da[_0x1cd9a1(0x24f,0x203)]=ComponentDatatype[_0x1cd9a1(0x262,0x27b)],_0x30a5da['componentsPerAttribute']=0x2,_0x30a5da['values']=_0x16b1b0;const _0x504576={};function _0xce6af6(_0x2f7224,_0x4300e7){return _0x8b6892(_0x2f7224,_0x4300e7-0x187);}_0x504576[_0x1cd9a1(0x226,0x203)]=ComponentDatatype[_0x1cd9a1(0x297,0x27b)];function _0x1cd9a1(_0x3db863,_0x3171cc){return _0x1d22c3(_0x3171cc-0x3fa,_0x3db863);}_0x504576[_0x1cd9a1(0x1d6,0x258)]=0x3,_0x504576['values']=_0x55923e;const _0x10514e=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x30a5da),'normal':new GeometryAttribute(_0x504576)}),'indices':_0x3744eb});return _0x10514e;}[_0x1d22c3(-0x159,-0x13b)](_0x151737){const _0x2d95d7={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x151737};return Appearance['getDefaultRenderState'](!![],![],_0x2d95d7);}['createPrimitives'](){const _0x41123c={};_0x41123c['st']=0x0,_0x41123c['normal']=0x1;const _0x2f6dc5={};_0x2f6dc5['enabled']=!![];const _0x5029fb={};_0x5029fb['enabled']=!![],_0x5029fb['blendEquation']=WebGLRenderingContext[_0x325fc0(0x27c,0x22a)],_0x5029fb[_0x325fc0(0x2eb,0x285)]=WebGLRenderingContext['SRC_ALPHA'];function _0x325fc0(_0x142c8e,_0x30540d){return _0x8b6892(_0x30540d,_0x142c8e-0x4e8);}_0x5029fb[_0x325fc0(0x33a,0x3a1)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x2450de={};_0x2450de['viewport']=undefined;function _0x596584(_0x27502f,_0x2c1550){return _0x8b6892(_0x27502f,_0x2c1550-0x794);}_0x2450de['depthTest']=_0x2f6dc5,_0x2450de['depthMask']=!![],_0x2450de['blending']=_0x5029fb;const _0xbad94d=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x41123c,'geometry':this[_0x325fc0(0x37e,0x399)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures']['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this['computing']['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this[_0x325fc0(0x371,0x371)][_0x325fc0(0x314,0x2a4)]['particlesSpeed'],'frameRateAdjustment':()=>this[_0x596584(0x639,0x61d)]['frameRateAdjustment'],'colorTable':()=>this[_0x596584(0x657,0x5e8)],'domain':()=>{var _0x4d6ef9,_0x27e481;const _0xbb6a0e=new Cartesian2(((_0x4d6ef9=this['options']['domain'])===null||_0x4d6ef9===void 0x0?void 0x0:_0x4d6ef9[_0x3060fe(0x6e,0x4f)])??this[_0x9494ad(0x370,0x30d)][_0x9494ad(0x344,0x2b9)][_0x9494ad(0x28d,0x255)]['min'],((_0x27e481=this[_0x3060fe(0xc5,0x6b)][_0x3060fe(0x4,0x2c)])===null||_0x27e481===void 0x0?void 0x0:_0x27e481[_0x3060fe(0xf8,0x83)])??this['computing']['windData'][_0x9494ad(0x20d,0x255)][_0x9494ad(0x2c8,0x27f)]);function _0x3060fe(_0x39defd,_0x174456){return _0x325fc0(_0x174456- -0x260,_0x39defd);}function _0x9494ad(_0x4968be,_0x1cb203){return _0x596584(_0x4968be,_0x1cb203- -0x310);}return _0xbb6a0e;},'displayRange':()=>{var _0x9e061f,_0x23edbf;function _0x540fce(_0x483296,_0x463441){return _0x596584(_0x463441,_0x483296- -0x5da);}function _0x214644(_0xe907a0,_0x25c112){return _0x596584(_0x25c112,_0xe907a0- -0x63e);}const _0x468ed8=new Cartesian2(((_0x9e061f=this['options']['displayRange'])===null||_0x9e061f===void 0x0?void 0x0:_0x9e061f['min'])??this['computing']['windData'][_0x540fce(-0x75,-0x9d)][_0x540fce(-0x7f,-0xfa)],((_0x23edbf=this['options']['displayRange'])===null||_0x23edbf===void 0x0?void 0x0:_0x23edbf[_0x540fce(-0x4b,-0x2c)])??this[_0x214644(-0x21,0x56)]['windData']['speed'][_0x540fce(-0x4b,0x34)]);return _0x468ed8;},'particleHeight':()=>this[_0x596584(0x57d,0x577)]['fixedHeight']||0x0,'aspect':()=>this[_0x325fc0(0x2f4,0x2f8)][_0x325fc0(0x2e8,0x2d1)]/this['context']['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters'][_0x325fc0(0x2e6,0x2ac)],'lineWidth':()=>{const _0x85ebf9={};_0x85ebf9['min']=0x1,_0x85ebf9['max']=0x2;const _0x2bdcb8=this['options']['lineWidth']||_0x85ebf9;return new Cartesian2(_0x2bdcb8['min'],_0x2bdcb8['max']);},'lineLength':()=>{const _0x482557={};_0x482557[_0x5504ce(0x531,0x552)]=0x14;function _0x5504ce(_0x46400c,_0x53d669){return _0x596584(_0x46400c,_0x53d669- -0x9);}_0x482557[_0x5504ce(0x53d,0x586)]=0x64;function _0x3e44f7(_0x1698a9,_0x4a3ad5){return _0x596584(_0x4a3ad5,_0x1698a9- -0x5d0);}const _0x54f896=this['options']['lineLength']||_0x482557;return new Cartesian2(_0x54f896[_0x5504ce(0x5b9,0x552)],_0x54f896['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x596584(0x661,0x608)](),'fragmentShaderSource':ShaderManager[_0x596584(0x5a6,0x5b4)](),'rawRenderState':this[_0x325fc0(0x352,0x39c)](_0x2450de)}),_0x5adbc3={};return _0x5adbc3['segments']=_0xbad94d,_0x5adbc3;}[_0x8b6892(-0x251,-0x270)](){const _0x568445=this['createSegmentsGeometry']();this['primitives'][_0x12a5cd(0x5a,0x64)]['geometry']=_0x568445;const _0x280a3b={};_0x280a3b['context']=this['context'];function _0x12a5cd(_0x2596c3,_0x2a7fdb){return _0x1d22c3(_0x2a7fdb-0x1e9,_0x2596c3);}_0x280a3b[_0x12a5cd(-0x2a,0x5)]=_0x568445,_0x280a3b['attributeLocations']=this['primitives'][_0x49fda1(-0x2c,-0x2)]['attributeLocations'],_0x280a3b[_0x49fda1(-0x5b,-0x6e)]=BufferUsage['STATIC_DRAW'];const _0x11d69d=VertexArray['fromGeometry'](_0x280a3b);function _0x49fda1(_0x46f723,_0xa6779a){return _0x1d22c3(_0x46f723-0x159,_0xa6779a);}this[_0x49fda1(-0x5a,-0x94)][_0x12a5cd(0x9e,0x64)]['commandToExecute']&&(this[_0x12a5cd(0xae,0x36)]['segments'][_0x12a5cd(0xa7,0x5c)][_0x12a5cd(0x2,0x4a)]=_0x11d69d);}['onColorTableChange'](){this[_0x287283(0x33b,0x34c)]['destroy']();function _0x287283(_0x5baa2d,_0x10f730){return _0x8b6892(_0x5baa2d,_0x10f730-0x4f8);}this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x3c4e3c){const _0x496b99=_0x3c4e3c['colors']&&JSON[_0x192a69(0x7,-0x1d)](_0x3c4e3c['colors'])!==JSON[_0x192a69(-0x1e,-0x1d)](this[_0x36920c(0xea,0x109)]['colors']);function _0x36920c(_0x1097ea,_0x3bd431){return _0x8b6892(_0x3bd431,_0x1097ea-0x307);}function _0x192a69(_0x151340,_0x524895){return _0x8b6892(_0x151340,_0x524895-0x20b);}this[_0x36920c(0xea,0xe0)]=deepMerge(_0x3c4e3c,this[_0x192a69(-0x4b,-0x12)]),_0x496b99&&this[_0x36920c(0x132,0x11b)]();}['destroy'](){function _0x1058f5(_0x3fabe8,_0x8da163){return _0x1d22c3(_0x3fabe8-0x642,_0x8da163);}Object['values'](this['framebuffers'])['forEach'](_0x229d16=>{_0x229d16['destroy']();}),Object['values'](this['primitives'])[_0x1058f5(0x4a9,0x47f)](_0xc84337=>{_0xc84337['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x36fbbb,_0x3da766,_0x4bf249,_0x399624,_0x4201e3){this['context']=_0x36fbbb,this[_0x4729f3(0x4f9,0x496)]=_0x4bf249,this['viewerParameters']=_0x399624;function _0x4729f3(_0x290ded,_0x280196){return _0x8b6892(_0x290ded,_0x280196-0x6b3);}this['computing']=new WindParticlesComputing(_0x36fbbb,_0x3da766,_0x4bf249,_0x399624,_0x4201e3);function _0x495058(_0x3d1de6,_0x598473){return _0x1d22c3(_0x598473-0x123,_0x3d1de6);}this[_0x4729f3(0x45a,0x4ab)]=new WindParticlesRendering(_0x36fbbb,_0x4bf249,_0x399624,this[_0x495058(0x19,-0x17)]),this['clearFramebuffers']();}['getPrimitives'](){function _0x35b853(_0x1be5d5,_0x2be9c2){return _0x8b6892(_0x1be5d5,_0x2be9c2-0x15d);}function _0x39414f(_0x1b204f,_0x423bcf){return _0x1d22c3(_0x1b204f-0x526,_0x423bcf);}const _0x3d4812=[this[_0x35b853(0x27,-0x1a)][_0x35b853(-0x11f,-0x93)]['calculateSpeed'],this[_0x35b853(-0x4f,-0x1a)]['primitives'][_0x35b853(-0x25,-0x73)],this[_0x35b853(-0x94,-0x1a)][_0x39414f(0x373,0x2e6)]['postProcessingPosition'],this['rendering'][_0x35b853(-0xec,-0x93)]['segments']];return _0x3d4812;}['clearFramebuffers'](){function _0x51a9c5(_0x2d6f78,_0x576b18){return _0x8b6892(_0x576b18,_0x2d6f78-0x14b);}const _0x3bb945=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x512cd4(0x2da,0x28a)]});function _0x512cd4(_0x2bd241,_0x371362){return _0x1d22c3(_0x2bd241-0x4c1,_0x371362);}Object[_0x51a9c5(-0x3c,0x1e)](this['rendering'][_0x51a9c5(-0x28,0x36)])[_0x51a9c5(-0x8b,-0x47)](_0x105b46=>{_0x3bb945[_0xd3daf4(0x52b,0x4e2)]=this['rendering'][_0xd3daf4(0x5a5,0x5e2)][_0x105b46];function _0x4dd112(_0x11f451,_0x178cb5){return _0x51a9c5(_0x11f451- -0x52,_0x178cb5);}function _0xd3daf4(_0x51e65f,_0x2e288b){return _0x512cd4(_0x2e288b-0x257,_0x51e65f);}_0x3bb945['execute'](this['context']);});}['changeOptions'](_0x5277a5){let _0x73d051=![];_0x5277a5[_0x1f7ac1(-0x48,-0x28)]&&this['options']['particlesTextureSize']!==_0x5277a5[_0x1f7ac1(-0x8e,-0x28)]&&(_0x73d051=!![]);const _0x279c18=deepMerge(_0x5277a5,this['options']);if(_0x279c18[_0x1f7ac1(-0x5d,-0x28)]<0x1)throw new Error(_0x1f7ac1(0x71,0x26));function _0x1f7ac1(_0x847bba,_0x4d8344){return _0x1d22c3(_0x4d8344-0x1d3,_0x847bba);}this['options']=_0x279c18,this['rendering'][_0x3f8b3e(0x1f9,0x19f)](_0x5277a5);function _0x3f8b3e(_0x42bffa,_0x367c21){return _0x1d22c3(_0x42bffa-0x375,_0x367c21);}this[_0x1f7ac1(0x7d,0x99)]['updateOptions'](_0x5277a5),_0x73d051&&(this[_0x3f8b3e(0x23b,0x1e1)]['destroyParticlesTextures'](),this[_0x1f7ac1(0xd4,0x99)][_0x3f8b3e(0x1cd,0x24d)](),this['rendering'][_0x1f7ac1(-0x83,-0x60)]());}[_0x1d22c3(-0x238,-0x1b6)](_0x43491f){this[_0x1efdcb(0x3e7,0x35a)]=_0x43491f;function _0x462f83(_0xdb9337,_0x1fa796){return _0x8b6892(_0x1fa796,_0xdb9337-0x4e0);}this['computing'][_0x1efdcb(0x3e7,0x41a)]=_0x43491f;function _0x1efdcb(_0x27b59b,_0x4df435){return _0x8b6892(_0x4df435,_0x27b59b-0x60c);}this['rendering']['viewerParameters']=_0x43491f;}['destroy'](){function _0x4d4aa8(_0x17604a,_0x34bc7e){return _0x1d22c3(_0x34bc7e-0x456,_0x17604a);}function _0x526d63(_0x2255d9,_0x2b002d){return _0x1d22c3(_0x2b002d-0x92,_0x2255d9);}this['computing'][_0x4d4aa8(0x1cb,0x232)](),this[_0x4d4aa8(0x259,0x28b)]['destroy']();}}function _0x1d22c3(_0x255836,_0x14c6e3){return _0x457f(_0x255836- -0x37a,_0x14c6e3);}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0x8b6892(-0x1f3,-0x26e)]['BaseLayer'],_0x2dc9ff={};_0x2dc9ff['min']=0x1,_0x2dc9ff['max']=0x2;const _0x26f039={};_0x26f039[_0x8b6892(-0x2a5,-0x239)]=0x14,_0x26f039['max']=0x64;const _0x47e23e={};_0x47e23e['particlesTextureSize']=0x64,_0x47e23e['fixedHeight']=0x0,_0x47e23e['lineWidth']=_0x2dc9ff,_0x47e23e['lineLength']=_0x26f039,_0x47e23e['speedFactor']=0x1,_0x47e23e['dropRate']=0.003,_0x47e23e[_0x8b6892(-0x1c2,-0x20a)]=0.001,_0x47e23e['colors']=[_0x1d22c3(-0x161,-0xfd)],_0x47e23e['flipY']=![],_0x47e23e['dynamic']=!![];const DEF_OPTIONS=_0x47e23e;class WindLayer extends BaseLayer$1{constructor(_0x460cbe={}){_0x460cbe={...DEF_OPTIONS,..._0x460cbe};function _0x40eefb(_0x9f043c,_0x405c64){return _0x8b6892(_0x405c64,_0x9f043c-0x1b9);}super(_0x460cbe),this[_0x40eefb(0x3d,0xbb)](_0x460cbe,_0x460cbe);}get['layer'](){return this['primitives'];}get['data'](){return this['options']['data'];}set[_0x8b6892(-0x132,-0x18f)](_0x4ee13d){function _0x358ae7(_0x399cea,_0x523e10){return _0x1d22c3(_0x523e10-0x374,_0x399cea);}function _0x5a4400(_0x32eeab,_0x10f0c3){return _0x8b6892(_0x10f0c3,_0x32eeab- -0x21);}this[_0x5a4400(-0x23e,-0x261)][_0x5a4400(-0x1b0,-0x1b2)]=_0x4ee13d,this['setData'](_0x4ee13d);}get['colors'](){function _0x20cb64(_0x1dad5d,_0x416492){return _0x1d22c3(_0x416492-0x55,_0x1dad5d);}return this['options'][_0x20cb64(-0x1ed,-0x1aa)];}set['colors'](_0x39d131){this['options'][_0x1ae774(0x1af,0x1ff)]=_0x39d131;const _0x57d0f5={};function _0x1ae774(_0x4c926a,_0x244af8){return _0x8b6892(_0x4c926a,_0x244af8-0x43b);}function _0x475e5f(_0x4d0c5a,_0x4aab41){return _0x8b6892(_0x4aab41,_0x4d0c5a-0x73f);}_0x57d0f5[_0x475e5f(0x503,0x49a)]=_0x39d131,this[_0x1ae774(0x28d,0x2bf)](this['options'],_0x57d0f5);}['_mountedHook'](){}['_addedHook'](){this['scene']=this['_map']['scene'],this[_0x5caa9c(0x220,0x1b2)]=this[_0x34751f(0x4d3,0x4a7)]['camera'];this['options']['data']&&this['setData'](this['options']['data']);if(!this['windData'])return;function _0x5caa9c(_0x151f8e,_0x3df895){return _0x1d22c3(_0x151f8e-0x34b,_0x3df895);}this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this['updateViewerParameters'](),this[_0x5caa9c(0x176,0x1d7)]=new WindParticleSystem(this[_0x5caa9c(0x1af,0x1d2)]['context'],this[_0x34751f(0x4ff,0x4cf)],this['options'],this['viewerParameters'],this[_0x34751f(0x547,0x4c1)]),this['primitives']=this['particleSystem'][_0x34751f(0x542,0x525)]();function _0x34751f(_0x10d7ba,_0x53d406){return _0x8b6892(_0x10d7ba,_0x53d406-0x69a);}this['primitives'][_0x34751f(0x54c,0x4c4)](_0x3527e0=>{function _0x24c993(_0x4aa41d,_0x5d7703){return _0x5caa9c(_0x4aa41d- -0x233,_0x5d7703);}function _0x5bc662(_0x216525,_0x20f8aa){return _0x34751f(_0x216525,_0x20f8aa-0xf2);}this['scene'][_0x24c993(-0x9b,-0x8e)][_0x24c993(-0xc1,-0xc2)](_0x3527e0);}),this['camera']['percentageChanged']=0.01,this['camera']['changed']['addEventListener'](this['updateViewerParameters']['bind'](this)),this[_0x5caa9c(0x1af,0x211)]['morphComplete']['addEventListener'](this['updateViewerParameters']['bind'](this)),window[_0x5caa9c(0x18f,0x13d)]('resize',this['updateViewerParameters']['bind'](this));}[_0x8b6892(-0x21a,-0x219)](){function _0x342ceb(_0x1a718c,_0x3fedb6){return _0x1d22c3(_0x1a718c-0x5cf,_0x3fedb6);}this[_0x342ceb(0x4a4,0x436)][_0x341fed(-0xd1,-0x104)]['removeEventListener'](this[_0x342ceb(0x493,0x495)]['bind'](this)),this['scene'][_0x342ceb(0x472,0x487)]['removeEventListener'](this[_0x341fed(-0xc9,-0x63)][_0x341fed(-0x108,-0x16f)](this)),window[_0x341fed(-0x13b,-0xe0)](_0x341fed(-0x1d0,-0x24f),this['updateViewerParameters']['bind'](this));this['primitives']&&(this['primitives']['forEach'](_0x340944=>{function _0x1616c1(_0x5c197c,_0x57ef9d){return _0x342ceb(_0x57ef9d- -0x233,_0x5c197c);}this['scene']['primitives'][_0x1616c1(0x10e,0x18e)](_0x340944);}),delete this['primitives']);function _0x341fed(_0x180a9a,_0x5c0f33){return _0x8b6892(_0x5c0f33,_0x180a9a-0xb0);}this['particleSystem']&&(this['particleSystem'][_0x342ceb(0x3ab,0x35d)](),delete this[_0x341fed(-0x162,-0x150)]);}['setData'](_0x40c7ec,_0x5e937e){this['windData']=this['processWindData'](_0x40c7ec);function _0x10f03b(_0x158ad4,_0x400273){return _0x1d22c3(_0x158ad4-0x488,_0x400273);}if(_0x5e937e){this['_removedHook'](),this['_addedHook']();return;}this['particleSystem']?(this['particleSystem']['computing'][_0x10f03b(0x283,0x307)](this['windData']),this['scene']['requestRender']()):this['_addedHook']();}['_setOptionsHook'](_0x4d8679,_0x5182a1){function _0x154567(_0x2f95cb,_0x152a98){return _0x8b6892(_0x152a98,_0x2f95cb-0x77f);}function _0x3cd104(_0xb0a902,_0x44f2de){return _0x1d22c3(_0x44f2de-0x3df,_0xb0a902);}this[_0x3cd104(0x185,0x20a)]&&(this[_0x154567(0x56d,0x59e)][_0x154567(0x52a,0x54a)](_0x5182a1),this[_0x154567(0x5a6,0x5d0)]['requestRender']());}['processWindData'](_0x40b89f){var _0x73086d,_0x1141b9;const _0x2f6adc={..._0x40b89f},_0x56c5bd=_0x2f6adc;!_0x56c5bd['height']&&_0x56c5bd['rows']&&(_0x56c5bd['height']=_0x56c5bd['rows']);function _0xf97ffa(_0x51eedb,_0x2d8de3){return _0x1d22c3(_0x51eedb- -0x28,_0x2d8de3);}!_0x56c5bd[_0xf97ffa(-0x15f,-0x140)]&&_0x56c5bd['cols']&&(_0x56c5bd['width']=_0x56c5bd['cols']);!_0x56c5bd['bounds']&&(_0x56c5bd['bounds']={'west':_0x56c5bd['xmin'],'south':_0x56c5bd[_0x150737(0x2c8,0x325)],'east':_0x56c5bd['xmax'],'north':_0x56c5bd[_0x150737(0x3ac,0x3a7)]});if(!_0x56c5bd['u']){const _0x152bc1={};_0x152bc1['array']=_0x40b89f[_0x150737(0x2d6,0x304)],_0x152bc1[_0xf97ffa(-0x224,-0x222)]=_0x40b89f['umin'],_0x152bc1['max']=_0x40b89f[_0x150737(0x39d,0x409)],_0x56c5bd['u']=_0x152bc1;}if(!_0x56c5bd['v']){const _0x4cc00a={};_0x4cc00a[_0xf97ffa(-0x1f9,-0x273)]=_0x40b89f['vdata'],_0x4cc00a['min']=_0x40b89f['vmin'],_0x4cc00a[_0xf97ffa(-0x1f0,-0x267)]=_0x40b89f['vmax'],_0x56c5bd['v']=_0x4cc00a;}function _0x150737(_0x1690bb,_0x21dfac){return _0x8b6892(_0x21dfac,_0x1690bb-0x52a);}if(((_0x73086d=_0x56c5bd['speed'])===null||_0x73086d===void 0x0?void 0x0:_0x73086d[_0xf97ffa(-0x224,-0x1ec)])===undefined||((_0x1141b9=_0x56c5bd['speed'])===null||_0x1141b9===void 0x0?void 0x0:_0x1141b9['max'])===undefined||_0x56c5bd['speed']['array']===undefined){const _0x304b8c={'array':new Float32Array(_0x56c5bd['u']['array'][_0xf97ffa(-0x1c6,-0x1ee)]),'min':Number[_0xf97ffa(-0x20e,-0x1a7)],'max':Number['MIN_VALUE']};for(let _0x5a58c5=0x0;_0x5a58c5<_0x56c5bd['u']['array'][_0x150737(0x34f,0x32c)];_0x5a58c5++){_0x304b8c['array'][_0x5a58c5]=Math[_0x150737(0x2b0,0x2f9)](_0x56c5bd['u'][_0x150737(0x31c,0x2fe)][_0x5a58c5]*_0x56c5bd['u'][_0x150737(0x31c,0x298)][_0x5a58c5]+_0x56c5bd['v']['array'][_0x5a58c5]*_0x56c5bd['v'][_0x150737(0x31c,0x3a8)][_0x5a58c5]),_0x304b8c['array'][_0x5a58c5]!==0x0&&(_0x304b8c['min']=Math[_0x150737(0x2f1,0x336)](_0x304b8c['min'],_0x304b8c[_0xf97ffa(-0x1f9,-0x263)][_0x5a58c5]),_0x304b8c[_0x150737(0x325,0x2d2)]=Math[_0xf97ffa(-0x1f0,-0x239)](_0x304b8c['max'],_0x304b8c[_0xf97ffa(-0x1f9,-0x211)][_0x5a58c5]));}_0x56c5bd[_0xf97ffa(-0x21a,-0x1e1)]=_0x304b8c;}return _0x56c5bd;}['updateViewerParameters'](){var _0x2f293c;const _0x152d32=this['scene'],_0x35574e=_0x152d32['canvas'],_0x1996f7={};_0x1996f7['x']=0x0,_0x1996f7['y']=0x0;const _0x564fcf={};function _0x560e50(_0x4fc6a7,_0x4cbee2){return _0x8b6892(_0x4fc6a7,_0x4cbee2-0x79c);}_0x564fcf['x']=0x0;function _0x1effd7(_0x5808e2,_0x395722){return _0x1d22c3(_0x395722-0x6d,_0x5808e2);}_0x564fcf['y']=_0x35574e[_0x560e50(0x52a,0x546)];const _0xe23787={};_0xe23787['x']=_0x35574e[_0x1effd7(-0x180,-0x111)],_0xe23787['y']=0x0;const _0x4eb70f={};_0x4eb70f['x']=_0x35574e['clientWidth'],_0x4eb70f['y']=_0x35574e['clientHeight'];const _0x133091=[_0x1996f7,_0x564fcf,_0xe23787,_0x4eb70f];let _0xa6d096=0xb4,_0x119db2=-0xb4,_0x44e0f3=0x5a,_0x1e4d50=-0x5a,_0x464345=![];for(const _0x2a6c39 of _0x133091){const _0x2a3db1=_0x152d32['camera'][_0x560e50(0x51d,0x596)](new Cesium$1['Cartesian2'](_0x2a6c39['x'],_0x2a6c39['y']),_0x152d32['globe']['ellipsoid']);if(!_0x2a3db1){_0x464345=!![];break;}const _0x5883f5=_0x152d32[_0x560e50(0x4ac,0x52f)][_0x1effd7(-0x223,-0x19f)]['cartesianToCartographic'](_0x2a3db1),_0x3c804f=Cesium$1['Math']['toDegrees'](_0x5883f5[_0x560e50(0x663,0x5ff)]),_0x5e3aaf=Cesium$1['Math']['toDegrees'](_0x5883f5[_0x560e50(0x586,0x544)]);_0xa6d096=Math['min'](_0xa6d096,_0x3c804f),_0x119db2=Math[_0x560e50(0x525,0x597)](_0x119db2,_0x3c804f),_0x44e0f3=Math['min'](_0x44e0f3,_0x5e3aaf),_0x1e4d50=Math['max'](_0x1e4d50,_0x5e3aaf);}if(!_0x464345){const _0x3a3c23=new Cesium$1['Cartesian2'](Math[_0x560e50(0x5b2,0x597)](this['windData'][_0x560e50(0x52c,0x53e)][_0x560e50(0x64d,0x61a)],_0xa6d096),Math['min'](this[_0x1effd7(-0x13c,-0x121)][_0x560e50(0x523,0x53e)][_0x1effd7(-0x169,-0x196)],_0x119db2)),_0x5c06b3=new Cesium$1[(_0x1effd7(-0x48,-0xd1))](Math['max'](this['windData']['bounds']['south'],_0x44e0f3),Math['min'](this[_0x1effd7(-0xab,-0x121)]['bounds']['north'],_0x1e4d50)),_0x40860b=(_0x3a3c23['y']-_0x3a3c23['x'])*0.05,_0x5ef2d4=(_0x5c06b3['y']-_0x5c06b3['x'])*0.05;_0x3a3c23['x']=Math[_0x1effd7(-0x139,-0x15b)](this['windData']['bounds']['west'],_0x3a3c23['x']-_0x40860b),_0x3a3c23['y']=Math[_0x1effd7(-0x123,-0x18f)](this[_0x560e50(0x658,0x5d1)]['bounds'][_0x560e50(0x5b5,0x55c)],_0x3a3c23['y']+_0x40860b),_0x5c06b3['x']=Math['max'](this['windData']['bounds'][_0x560e50(0x4c1,0x545)],_0x5c06b3['x']-_0x5ef2d4),_0x5c06b3['y']=Math['min'](this['windData']['bounds']['north'],_0x5c06b3['y']+_0x5ef2d4),this['viewerParameters']['lonRange']=_0x3a3c23,this['viewerParameters']['latRange']=_0x5c06b3;const _0x1828f2=this[_0x1effd7(-0x174,-0x121)][_0x1effd7(-0x1b6,-0x1b4)]['east']-this['windData'][_0x1effd7(-0x20c,-0x1b4)][_0x560e50(0x665,0x61a)],_0x55da64=this[_0x560e50(0x5e0,0x5d1)]['bounds']['north']-this[_0x560e50(0x624,0x5d1)]['bounds']['south'],_0x2938de=(_0x3a3c23['y']-_0x3a3c23['x'])/_0x1828f2,_0x3b1750=(_0x5c06b3['y']-_0x5c06b3['x'])/_0x55da64,_0x27b543=Math['min'](_0x2938de,_0x3b1750),_0x38bc96=0x3e8*_0x27b543;_0x38bc96>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0x38bc96)));}this[_0x560e50(0x55a,0x577)]['sceneMode']=this[_0x1effd7(-0x17f,-0x12f)]['mode'],(_0x2f293c=this[_0x560e50(0x51e,0x58a)])===null||_0x2f293c===void 0x0||_0x2f293c[_0x1effd7(-0x250,-0x1cb)](this[_0x560e50(0x565,0x577)]);}['getDataAtLonLat'](_0x21ba6c,_0x533cb6){const {bounds:_0x51754c,width:_0xc7107d,height:_0xa287d,u:_0x22dc58,v:_0x4212eb,speed:_0x5defb8}=this[_0x18f1aa(0x93,0xcb)],{flipY:_0x3d86fe}=this[_0x50a9dc(0x2ea,0x32f)];if(_0x21ba6c<_0x51754c[_0x18f1aa(0xfd,0x114)]||_0x21ba6c>_0x51754c['east']||_0x533cb6<_0x51754c['south']||_0x533cb6>_0x51754c[_0x18f1aa(-0x2c,0x22)])return null;const _0x46910f=(_0x21ba6c-_0x51754c['west'])/(_0x51754c['east']-_0x51754c['west'])*(_0xc7107d-0x1);let _0x1afb87=(_0x533cb6-_0x51754c[_0x50a9dc(0x2b0,0x264)])/(_0x51754c['north']-_0x51754c['south'])*(_0xa287d-0x1);_0x3d86fe&&(_0x1afb87=_0xa287d-0x1-_0x1afb87);const _0x47b147=Math['floor'](_0x46910f),_0x1e9300=Math['floor'](_0x1afb87),_0x1ef9a=Math[_0x18f1aa(0x6a,0x51)](_0x46910f),_0x19f249=Math['min'](_0x1ef9a+0x1,_0xc7107d-0x1);function _0x50a9dc(_0x1b21fa,_0x32a761){return _0x1d22c3(_0x1b21fa-0x4ca,_0x32a761);}const _0x4ecaff=Math['floor'](_0x1afb87),_0x424179=Math[_0x18f1aa(0xa5,0x5d)](_0x4ecaff+0x1,_0xa287d-0x1),_0x4d64d5=_0x46910f-_0x1ef9a,_0x4c8968=_0x1afb87-_0x4ecaff,_0x5c9bb6=_0x1e9300*_0xc7107d+_0x47b147,_0x2d45f2=_0x4ecaff*_0xc7107d+_0x1ef9a,_0x270ca2=_0x4ecaff*_0xc7107d+_0x19f249,_0x357c1c=_0x424179*_0xc7107d+_0x1ef9a,_0xde10d4=_0x424179*_0xc7107d+_0x19f249,_0x3aac55=_0x22dc58[_0x18f1aa(0x7d,0x88)][_0x2d45f2],_0x586613=_0x22dc58[_0x18f1aa(0xb1,0x88)][_0x270ca2],_0x327219=_0x22dc58[_0x18f1aa(0xe2,0x88)][_0x357c1c],_0x2101b9=_0x22dc58['array'][_0xde10d4],_0x209281=(0x1-_0x4d64d5)*(0x1-_0x4c8968)*_0x3aac55+_0x4d64d5*(0x1-_0x4c8968)*_0x586613+(0x1-_0x4d64d5)*_0x4c8968*_0x327219+_0x4d64d5*_0x4c8968*_0x2101b9,_0xfc48f0=_0x4212eb['array'][_0x2d45f2],_0x5cf44a=_0x4212eb[_0x18f1aa(0x12,0x88)][_0x270ca2],_0x5539e6=_0x4212eb['array'][_0x357c1c],_0x49ad2c=_0x4212eb['array'][_0xde10d4],_0x3f6791=(0x1-_0x4d64d5)*(0x1-_0x4c8968)*_0xfc48f0+_0x4d64d5*(0x1-_0x4c8968)*_0x5cf44a+(0x1-_0x4d64d5)*_0x4c8968*_0x5539e6+_0x4d64d5*_0x4c8968*_0x49ad2c,_0x366768=Math[_0x18f1aa(0x6c,0x1c)](_0x209281*_0x209281+_0x3f6791*_0x3f6791),_0x4271dc={};_0x4271dc['u']=_0x22dc58[_0x18f1aa(0xc,0x88)][_0x5c9bb6],_0x4271dc['v']=_0x4212eb['array'][_0x5c9bb6],_0x4271dc[_0x18f1aa(0x56,0x67)]=_0x5defb8['array'][_0x5c9bb6];const _0x852a8b={};_0x852a8b['u']=_0x209281,_0x852a8b['v']=_0x3f6791,_0x852a8b['speed']=_0x366768;function _0x18f1aa(_0x314bc6,_0x5022d3){return _0x1d22c3(_0x5022d3-0x259,_0x314bc6);}const _0x2e2751={};return _0x2e2751[_0x50a9dc(0x39e,0x363)]=_0x4271dc,_0x2e2751['interpolated']=_0x852a8b,_0x2e2751;}}mars3d__namespace['LayerUtil']['register'](_0x1d22c3(-0x1da,-0x226),WindLayer),mars3d__namespace[_0x8b6892(-0x249,-0x26e)]['WindLayer']=WindLayer;class CanvasParticle{constructor(){function _0x19407e(_0x44c953,_0x423edf){return _0x1d22c3(_0x44c953-0x513,_0x423edf);}this['lng']=null,this['lat']=null;function _0x1942fa(_0x56ac9a,_0x5dd27c){return _0x1d22c3(_0x5dd27c-0x275,_0x56ac9a);}this['tlng']=null,this[_0x1942fa(0x57,0x84)]=null,this[_0x19407e(0x3d1,0x433)]=null,this[_0x1942fa(0x6,0x83)]=null;}['destroy'](){for(const _0x299ab5 in this){delete this[_0x299ab5];}}}class CanvasWindField{constructor(_0x5aa1a6){function _0x2bb3ed(_0x1c7f48,_0x4eab88){return _0x8b6892(_0x4eab88,_0x1c7f48-0x31b);}this[_0x2bb3ed(0x10b,0x99)](_0x5aa1a6);}get['speedRate'](){function _0x4b6b3b(_0x5d709f,_0x16e10e){return _0x1d22c3(_0x16e10e-0x35e,_0x5d709f);}return this[_0x4b6b3b(0x22b,0x1dc)];}set[_0x1d22c3(-0x18a,-0x179)](_0x5e2b47){this[_0x4eeb9d(0x553,0x516)]=(0x64-(_0x5e2b47>0x63?0x63:_0x5e2b47))*0x64;function _0x4eeb9d(_0x291ff0,_0x56135b){return _0x8b6892(_0x56135b,_0x291ff0-0x712);}function _0x1f9865(_0xe19c03,_0x30848c){return _0x8b6892(_0xe19c03,_0x30848c-0xd2);}this[_0x4eeb9d(0x509,0x592)]=[(this[_0x4eeb9d(0x56a,0x5c2)]-this['xmin'])/this['_speedRate'],(this[_0x1f9865(-0x27,-0xac)]-this[_0x4eeb9d(0x4b0,0x47c)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set[_0x8b6892(-0x1ce,-0x1e1)](_0xa86b9c){this['_maxAge']=_0xa86b9c;}['setOptions'](_0x2474ff){this[_0x3d4f3a(0x407,0x3f4)]=_0x2474ff,this[_0x3543d3(0x5a2,0x581)]=_0x2474ff['maxAge']||0x78,this['speedRate']=_0x2474ff[_0x3d4f3a(0x428,0x44a)]||0x32;function _0x3d4f3a(_0x2b1534,_0x5df00f){return _0x1d22c3(_0x5df00f-0x5d4,_0x2b1534);}this[_0x3543d3(0x539,0x53b)]=[];const _0x4d803e=_0x2474ff[_0x3d4f3a(0x460,0x487)]||0x1000;function _0x3543d3(_0x134b8f,_0x1a10e0){return _0x8b6892(_0x134b8f,_0x1a10e0-0x762);}for(let _0x4229cf=0x0;_0x4229cf<_0x4d803e;_0x4229cf++){const _0x64bd7=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0x64bd7);}}['setDate'](_0x537445){this['rows']=_0x537445[_0x113e87(0x5b6,0x580)],this[_0x310fe0(0x3c8,0x3d4)]=_0x537445['cols'],this['xmin']=_0x537445['xmin'],this[_0x113e87(0x57d,0x5d3)]=_0x537445[_0x113e87(0x571,0x5d3)],this['ymin']=_0x537445[_0x113e87(0x53d,0x519)],this['ymax']=_0x537445[_0x113e87(0x685,0x5fd)];function _0x113e87(_0x14762e,_0x33139a){return _0x1d22c3(_0x33139a-0x73e,_0x14762e);}this['grid']=[];const _0x560d8d=_0x537445['udata'],_0x336e4d=_0x537445['vdata'];let _0x10c9d5=![];_0x560d8d['length']===this['rows']&&_0x560d8d[0x0]['length']===this['cols']&&(_0x10c9d5=!![]);let _0x222b81=0x0,_0x290133=null;function _0x310fe0(_0x2c3645,_0x9bbae7){return _0x1d22c3(_0x9bbae7-0x53a,_0x2c3645);}let _0x591373=null;for(let _0x197303=0x0;_0x197303<this['rows'];_0x197303++){_0x290133=[];for(let _0x5b0957=0x0;_0x5b0957<this[_0x310fe0(0x38e,0x3d4)];_0x5b0957++,_0x222b81++){_0x10c9d5?_0x591373=this[_0x113e87(0x668,0x5eb)](_0x560d8d[_0x197303][_0x5b0957],_0x336e4d[_0x197303][_0x5b0957]):_0x591373=this['_calcUV'](_0x560d8d[_0x222b81],_0x336e4d[_0x222b81]),_0x290133[_0x113e87(0x5b1,0x57c)](_0x591373);}this['grid']['push'](_0x290133);}!this[_0x113e87(0x5db,0x55e)]['flipY']&&this['grid'][_0x310fe0(0x42d,0x409)]();}['clear'](){delete this['rows'];function _0x1e540e(_0x36d455,_0x2fe2af){return _0x1d22c3(_0x2fe2af-0x198,_0x36d455);}function _0x14e3ee(_0x338a1a,_0x2b7aa1){return _0x8b6892(_0x2b7aa1,_0x338a1a-0x51);}delete this['cols'],delete this['xmin'],delete this[_0x14e3ee(-0x157,-0x186)],delete this['ymin'],delete this['ymax'],delete this[_0x1e540e(0x39,0x1f)],delete this['particles'];}[_0x1d22c3(-0x223,-0x29b)](_0x2fe641,_0x224762){function _0x401642(_0x1a452a,_0x52a5db){return _0x1d22c3(_0x1a452a-0x5de,_0x52a5db);}function _0x2f8bc9(_0x24a053,_0x31328b){return _0x8b6892(_0x31328b,_0x24a053-0x37b);}const _0x282a94=(_0x2fe641-this['xmin'])/(this['xmax']-this[_0x401642(0x467,0x45d)])*(this[_0x2f8bc9(0x1d8,0x17f)]-0x1),_0x2ea2c7=(this[_0x401642(0x49d,0x41c)]-_0x224762)/(this['ymax']-this[_0x2f8bc9(0x119,0x18e)])*(this['rows']-0x1);return[_0x282a94,_0x2ea2c7];}['getUVByXY'](_0x2fb502,_0x456460){if(_0x2fb502<0x0||_0x2fb502>=this[_0x5bfa9d(0xc9,0x113)]||_0x456460>=this['rows'])return[0x0,0x0,0x0];const _0x1457f8=Math[_0x5bfa9d(0x27,-0x39)](_0x2fb502),_0x64ef49=Math['floor'](_0x456460);function _0x83de56(_0x2fce71,_0x17944e){return _0x8b6892(_0x2fce71,_0x17944e-0x70f);}if(_0x1457f8===_0x2fb502&&_0x64ef49===_0x456460)return this['grid'][_0x456460][_0x2fb502];const _0x2a01a9=_0x1457f8+0x1,_0x60887d=_0x64ef49+0x1,_0xe680db=this[_0x5bfa9d(0x2e,0x4a)](_0x1457f8,_0x64ef49);function _0x5bfa9d(_0x324f4a,_0x56f54e){return _0x1d22c3(_0x324f4a-0x22f,_0x56f54e);}const _0x537b73=this['getUVByXY'](_0x2a01a9,_0x64ef49),_0x4c7f4b=this[_0x5bfa9d(0x2e,0x64)](_0x1457f8,_0x60887d),_0x3f58ad=this[_0x83de56(0x4e4,0x4d1)](_0x2a01a9,_0x60887d);let _0x6fc04f=null;try{_0x6fc04f=this['_bilinearInterpolation'](_0x2fb502-_0x1457f8,_0x456460-_0x64ef49,_0xe680db,_0x537b73,_0x4c7f4b,_0x3f58ad);}catch(_0x28d6a5){console[_0x83de56(0x4c2,0x4e9)](_0x2fb502,_0x456460);}return _0x6fc04f;}['_bilinearInterpolation'](_0x9dc077,_0xb010e1,_0x3769ac,_0x4d1c31,_0x29a971,_0x3af361){const _0x49b7cf=0x1-_0x9dc077;function _0x17e7c2(_0x326653,_0x404576){return _0x8b6892(_0x404576,_0x326653-0x74f);}const _0xb18760=0x1-_0xb010e1,_0x44352b=_0x49b7cf*_0xb18760,_0x344ac5=_0x9dc077*_0xb18760,_0x286294=_0x49b7cf*_0xb010e1,_0x352802=_0x9dc077*_0xb010e1,_0x5158f8=_0x3769ac[0x0]*_0x44352b+_0x4d1c31[0x0]*_0x344ac5+_0x29a971[0x0]*_0x286294+_0x3af361[0x0]*_0x352802,_0x368ee2=_0x3769ac[0x1]*_0x44352b+_0x4d1c31[0x1]*_0x344ac5+_0x29a971[0x1]*_0x286294+_0x3af361[0x1]*_0x352802;return this[_0x17e7c2(0x5bf,0x5fa)](_0x5158f8,_0x368ee2);}['_calcUV'](_0x2fe74b,_0x24a202){return[+_0x2fe74b,+_0x24a202,Math['sqrt'](_0x2fe74b*_0x2fe74b+_0x24a202*_0x24a202)];}['getUVByPoint'](_0x349e0a,_0x3e1f9c){if(!this[_0x2c661a(0x383,0x368)](_0x349e0a,_0x3e1f9c))return null;function _0x2c661a(_0x4d3d0c,_0xfcb932){return _0x8b6892(_0xfcb932,_0x4d3d0c-0x5d1);}const _0x3b253d=this['toGridXY'](_0x349e0a,_0x3e1f9c),_0x1ca7e2=this['getUVByXY'](_0x3b253d[0x0],_0x3b253d[0x1]);return _0x1ca7e2;}[_0x8b6892(-0x274,-0x24e)](_0x51097f,_0x13f451){function _0x5225c3(_0x1dfe4e,_0x25b0ae){return _0x1d22c3(_0x1dfe4e-0x6b5,_0x25b0ae);}function _0x3e447c(_0x33e320,_0x544bea){return _0x8b6892(_0x33e320,_0x544bea-0x378);}return _0x51097f>=this[_0x5225c3(0x53e,0x532)]&&_0x51097f<=this['xmax']&&_0x13f451>=this[_0x3e447c(0xfc,0x116)]&&_0x13f451<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x5eaf81=fRandomByfloat(this[_0x352e8d(0x547,0x5b9)],this['xmax']),_0x4fd431=fRandomByfloat(this['ymin'],this[_0x352e8d(0x5c4,0x5ef)]),_0x300cac={};function _0x352e8d(_0x443aac,_0xfd931d){return _0x1d22c3(_0xfd931d-0x730,_0x443aac);}_0x300cac['lat']=_0x4fd431;function _0x13a5f5(_0x3188dd,_0x32b9fd){return _0x8b6892(_0x3188dd,_0x32b9fd-0x1fc);}return _0x300cac[_0x352e8d(0x4db,0x54b)]=_0x5eaf81,_0x300cac;}[_0x1d22c3(-0x176,-0x188)](){function _0x5a9c3f(_0xffed65,_0x236ec6){return _0x8b6892(_0x236ec6,_0xffed65-0x780);}function _0x17cefc(_0x341e5a,_0x3df9cd){return _0x1d22c3(_0x341e5a-0x6f4,_0x3df9cd);}let _0x41e5cd,_0x3c0735,_0x5480b9;for(let _0x114818=0x0,_0x104265=this[_0x5a9c3f(0x559,0x5bc)][_0x17cefc(0x556,0x58e)];_0x114818<_0x104265;_0x114818++){let _0x5182c9=this[_0x17cefc(0x50a,0x4e0)][_0x114818];_0x5182c9[_0x17cefc(0x5b2,0x5fc)]<=0x0&&(_0x5182c9=this[_0x5a9c3f(0x50a,0x4ba)](_0x5182c9));if(_0x5182c9['age']>0x0){const _0x4672df=_0x5182c9[_0x17cefc(0x53a,0x509)],_0x326af3=_0x5182c9['tlat'];_0x5480b9=this[_0x17cefc(0x507,0x53b)](_0x4672df,_0x326af3),_0x5480b9?(_0x41e5cd=_0x4672df+this['_calc_speedRate'][0x0]*_0x5480b9[0x0],_0x3c0735=_0x326af3+this[_0x17cefc(0x528,0x56f)][0x1]*_0x5480b9[0x1],_0x5182c9['lng']=_0x4672df,_0x5182c9['lat']=_0x326af3,_0x5182c9[_0x5a9c3f(0x589,0x5e5)]=_0x41e5cd,_0x5182c9[_0x17cefc(0x503,0x52c)]=_0x3c0735,_0x5182c9[_0x5a9c3f(0x551,0x561)]=_0x5480b9[0x2],_0x5182c9['age']--):_0x5182c9['age']=0x0;}}return this['particles'];}[_0x1d22c3(-0x239,-0x204)](_0xa199d6){function _0x5936b8(_0x1c5f71,_0x2758fb){return _0x8b6892(_0x1c5f71,_0x2758fb-0x47b);}let _0x2f3a9b,_0x5052eb;function _0x4b2eed(_0x37d565,_0x418df7){return _0x1d22c3(_0x418df7-0x6a2,_0x37d565);}for(let _0x3351c4=0x0;_0x3351c4<0x1e;_0x3351c4++){_0x2f3a9b=this[_0x4b2eed(0x402,0x480)](),_0x5052eb=this['getUVByPoint'](_0x2f3a9b[_0x5936b8(0x212,0x259)],_0x2f3a9b['lat']);if(_0x5052eb&&_0x5052eb[0x2]>0x0)break;}if(!_0x5052eb)return _0xa199d6;const _0x5b4e46=_0x2f3a9b[_0x4b2eed(0x4a9,0x4bd)]+this['_calc_speedRate'][0x0]*_0x5052eb[0x0],_0x4c209a=_0x2f3a9b['lat']+this[_0x5936b8(0x2c5,0x272)][0x1]*_0x5052eb[0x1];return _0xa199d6['lng']=_0x2f3a9b['lng'],_0xa199d6[_0x4b2eed(0x4f1,0x4a4)]=_0x2f3a9b['lat'],_0xa199d6['tlng']=_0x5b4e46,_0xa199d6[_0x5936b8(0x1e4,0x24d)]=_0x4c209a,_0xa199d6['age']=Math['round'](0xa+Math[_0x5936b8(0x2bc,0x2c9)]()*this[_0x5936b8(0x2b5,0x29a)]),_0xa199d6['speed']=_0x5052eb[0x2],_0xa199d6;}['destroy'](){for(const _0x10b933 in this){delete this[_0x10b933];}}}function fRandomByfloat(_0x53d0e3,_0x239236){function _0x5385d1(_0x5451a6,_0x52d6bd){return _0x8b6892(_0x52d6bd,_0x5451a6-0x728);}return _0x53d0e3+Math[_0x5385d1(0x576,0x510)]()*(_0x239236-_0x53d0e3);}const Cesium=mars3d__namespace[_0x8b6892(-0x1c8,-0x1ba)],BaseLayer=mars3d__namespace['layer'][_0x8b6892(-0x19c,-0x1da)];class CanvasWindLayer extends BaseLayer{constructor(_0x25995e={}){super(_0x25995e),this['_setOptionsHook'](_0x25995e);function _0x419bc8(_0xa0aa9e,_0x3b948b){return _0x8b6892(_0x3b948b,_0xa0aa9e-0x34a);}this['canvas']=null,_0x25995e[_0x419bc8(0x10e,0x96)]&&_0x25995e['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x25995e));}['_setOptionsHook'](_0x323c66,_0x46ffab){function _0x50b509(_0x30d509,_0x547d19){return _0x8b6892(_0x30d509,_0x547d19-0x50b);}this['frameTime']=0x3e8/(_0x323c66['frameRate']||0xa);function _0x5ec613(_0xdd94ea,_0x342e34){return _0x8b6892(_0x342e34,_0xdd94ea-0x569);}this[_0x5ec613(0x3c0,0x3cd)]=this[_0x5ec613(0x34c,0x369)]['pointerEvents']??![],this['color']=_0x323c66[_0x5ec613(0x338,0x3c3)]||_0x50b509(0x399,0x347),this[_0x50b509(0x2e2,0x35a)]=_0x323c66[_0x5ec613(0x3b8,0x443)]||0x1,this[_0x50b509(0x359,0x376)]=_0x323c66[_0x50b509(0x399,0x376)]??0x0,this[_0x5ec613(0x3c8,0x3fd)]=_0x323c66[_0x50b509(0x313,0x36a)]??![],this[_0x5ec613(0x33d,0x2f7)]&&this[_0x5ec613(0x33d,0x380)][_0x5ec613(0x359,0x349)](_0x323c66);}get[_0x8b6892(-0x2e1,-0x26e)](){return this['canvas'];}get['canvasWidth'](){function _0x703ba6(_0x3b13c9,_0x1d51a6){return _0x8b6892(_0x3b13c9,_0x1d51a6-0x307);}function _0x3422a5(_0x571492,_0x224589){return _0x1d22c3(_0x571492-0x2a0,_0x224589);}return this['_map']['scene'][_0x703ba6(0x150,0x198)][_0x703ba6(0x149,0x14c)];}get[_0x8b6892(-0x213,-0x18e)](){return this['_map']['scene']['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x8b6892(-0x1c2,-0x1e7)](_0x1da197){this['_pointerEvents']=_0x1da197;function _0x3abe0c(_0x5ba433,_0x3221b2){return _0x8b6892(_0x3221b2,_0x5ba433-0x288);}if(!this['canvas'])return;function _0x4b3059(_0x3c2219,_0x39f4ff){return _0x8b6892(_0x3c2219,_0x39f4ff-0x1b4);}_0x1da197?this['canvas'][_0x3abe0c(0x117,0xb4)][_0x4b3059(-0x58,-0x94)]='all':this['canvas']['style']['pointer-events']='none';}get['particlesNumber'](){return this['options']['particlesNumber'];}set[_0x1d22c3(-0x14d,-0x184)](_0x53aca3){function _0xd555c9(_0x3c7132,_0x3bceb2){return _0x1d22c3(_0x3c7132- -0x3f,_0x3bceb2);}this['options'][_0xd555c9(-0x18c,-0x1a6)]=_0x53aca3;function _0x5d270f(_0x4fc38f,_0x43128e){return _0x1d22c3(_0x43128e-0x3ab,_0x4fc38f);}clearTimeout(this[_0x5d270f(0x1da,0x1f3)]),this[_0x5d270f(0x179,0x1f3)]=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){return this['options']['speedRate'];}set[_0x8b6892(-0x201,-0x1c7)](_0xf6d800){function _0x45d367(_0x3781b2,_0x2d2157){return _0x8b6892(_0x2d2157,_0x3781b2-0x626);}function _0x55e9c3(_0x2303a8,_0x461f6d){return _0x1d22c3(_0x461f6d-0x94,_0x2303a8);}this['options'][_0x45d367(0x45f,0x4c4)]=_0xf6d800,this[_0x45d367(0x3fa,0x37e)]&&(this[_0x45d367(0x3fa,0x40f)][_0x45d367(0x45f,0x40b)]=_0xf6d800);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x230714){this['options']['maxAge']=_0x230714,this['windField']&&(this['windField']['maxAge']=_0x230714);}get[_0x8b6892(-0x168,-0x18f)](){function _0x1c23da(_0x314550,_0x3e5017){return _0x8b6892(_0x314550,_0x3e5017-0x1e5);}return this[_0x1c23da(-0x38,0x1a)];}set[_0x1d22c3(-0x152,-0xd6)](_0x5bfa1b){function _0x363388(_0x26a623,_0x4ee221){return _0x1d22c3(_0x4ee221-0x6e9,_0x26a623);}this[_0x363388(0x56c,0x58d)](_0x5bfa1b);}get['rectangle'](){let _0x49a7e0=this[_0x352a91(0x45e,0x44e)]['xmin'];function _0x34c1d4(_0x17784e,_0x42b1ec){return _0x1d22c3(_0x17784e-0x543,_0x42b1ec);}let _0x2a28e2=this['windData']['xmax'],_0x25b091=this['windData']['ymin'],_0x5db8c7=this['windData']['ymax'];_0x2a28e2>=0x167&&_0x49a7e0===0x0&&(_0x49a7e0=-0xb4,_0x2a28e2=0xb4);_0x49a7e0=Math['max'](_0x49a7e0,-0xb4),_0x2a28e2=Math['min'](_0x2a28e2,0xb4),_0x25b091=Math[_0x352a91(0x41e,0x414)](_0x25b091,-0x5a),_0x5db8c7=Math['min'](_0x5db8c7,0x5a);function _0x352a91(_0x6a2c01,_0x272d7c){return _0x1d22c3(_0x272d7c-0x5dc,_0x6a2c01);}return Cesium['Rectangle']['fromDegrees'](_0x49a7e0,_0x25b091,_0x2a28e2,_0x5db8c7);}[_0x8b6892(-0x242,-0x1c0)](_0x5ca884){function _0x498984(_0x328620,_0x590343){return _0x1d22c3(_0x328620-0x45c,_0x590343);}_0x5ca884?this['_addedHook']():(this['windData']&&(this['options']['data']=this['windData']),this[_0x498984(0x280,0x203)]());}['_mountedHook'](){function _0x3d4f3c(_0x20c8be,_0x14d10e){return _0x1d22c3(_0x14d10e-0x1d2,_0x20c8be);}function _0x29d00d(_0x1b520e,_0x181fca){return _0x1d22c3(_0x181fca- -0x2b,_0x1b520e);}this[_0x29d00d(-0x1ec,-0x20b)]['worker']?this['initWorker']():this[_0x29d00d(-0x1e1,-0x21a)]=new CanvasWindField(this['options']);}[_0x8b6892(-0x2dd,-0x253)](){this['canvas']=this['_createCanvas']();const _0x48e761={};_0x48e761['willReadFrequently']=!![];function _0xf30d7c(_0x3a5ee0,_0x2d33e3){return _0x8b6892(_0x2d33e3,_0x3a5ee0-0x521);}this['canvasContext']=this[_0x13cda3(0x335,0x3b6)]['getContext']('2d',_0x48e761),this['bindEvent']();function _0x13cda3(_0x2d98b9,_0x1bdf0a){return _0x8b6892(_0x1bdf0a,_0x2d98b9-0x4a4);}this['options'][_0x13cda3(0x315,0x299)]&&this['setData'](this[_0x13cda3(0x287,0x24f)]['data']);}['_removedHook'](){this['clear']();function _0x414752(_0x526864,_0x39fd6a){return _0x1d22c3(_0x526864-0x60,_0x39fd6a);}this['unbindEvent'](),this['canvas']&&(this['_map']['container']['removeChild'](this['canvas']),delete this[_0x414752(-0xd2,-0xbd)]);}['_createCanvas'](){const _0x275f53=mars3d__namespace['DomUtil'][_0x39df67(-0x1c2,-0x235)]('canvas',_0x4dde81(0x120,0x11d),this[_0x4dde81(0x142,0x13f)]['container']);_0x275f53[_0x4dde81(0x1c4,0x1a1)]['position']=_0x4dde81(0x167,0x143),_0x275f53['style'][_0x39df67(-0x15e,-0x1c2)]=_0x39df67(-0x189,-0x186),_0x275f53[_0x4dde81(0x1c4,0x198)][_0x4dde81(0xf2,0x13a)]='0px',_0x275f53['style']['width']=this['_map']['scene'][_0x39df67(-0x1bf,-0x14b)]['clientWidth']+'px',_0x275f53[_0x39df67(-0xd1,-0x14d)]['height']=this[_0x4dde81(0x142,0x113)][_0x39df67(-0x1ea,-0x1b5)]['canvas'][_0x4dde81(0xdf,0x91)]+'px';function _0x39df67(_0x36c1c8,_0x47d3c9){return _0x8b6892(_0x36c1c8,_0x47d3c9-0x24);}_0x275f53['style']['pointerEvents']=this[_0x4dde81(0x18c,0x14b)]?'auto':_0x4dde81(0x1c3,0x17e);function _0x4dde81(_0x4d49ae,_0x51dba5){return _0x1d22c3(_0x4d49ae-0x2f8,_0x51dba5);}return _0x275f53['style']['zIndex']=this['options']['zIndex']??0x9,_0x275f53['width']=this['_map']['scene']['canvas'][_0x39df67(-0x1c0,-0x197)],_0x275f53['height']=this['_map'][_0x4dde81(0x15c,0xd7)]['canvas'][_0x4dde81(0xdf,0x6b)],_0x275f53;}['resize'](){function _0x1803f8(_0x12971f,_0x4b7a4f){return _0x1d22c3(_0x12971f-0x6aa,_0x4b7a4f);}function _0x3c23c9(_0x1c0372,_0xfca557){return _0x1d22c3(_0x1c0372-0x3b9,_0xfca557);}this[_0x1803f8(0x578,0x5f5)]&&(this['canvas']['style'][_0x1803f8(0x573,0x534)]=this['_map']['scene']['canvas'][_0x1803f8(0x52c,0x584)]+'px',this[_0x1803f8(0x578,0x5dd)]['style']['height']=this[_0x3c23c9(0x203,0x239)]['scene']['canvas']['clientHeight']+'px',this[_0x3c23c9(0x287,0x29e)][_0x3c23c9(0x282,0x1f7)]=this[_0x1803f8(0x4f4,0x521)][_0x3c23c9(0x21d,0x1cd)][_0x1803f8(0x578,0x57b)][_0x1803f8(0x52c,0x5b7)],this['canvas'][_0x1803f8(0x4cf,0x4f6)]=this[_0x3c23c9(0x203,0x1a8)]['scene']['canvas']['clientHeight']);}['bindEvent'](){const _0x2b3dc5=this;let _0xd5212c=Date['now']();(function _0x2c3802(){if(_0x2b3dc5[_0x138aea(0x30f,0x349)])return;function _0x138aea(_0x3f1d5c,_0x47f247){return _0x457f(_0x3f1d5c-0x108,_0x47f247);}_0x2b3dc5[_0x138aea(0x2dd,0x329)]=window[_0x564d8f(-0x192,-0x190)](_0x2c3802);function _0x564d8f(_0x17b126,_0x5e4655){return _0x457f(_0x17b126- -0x2d7,_0x5e4655);}if(_0x2b3dc5['show']&&_0x2b3dc5[_0x564d8f(-0x14c,-0x15a)]){const _0x399f5a=Date[_0x564d8f(-0x12f,-0x1b2)](),_0x4138a6=_0x399f5a-_0xd5212c;_0x4138a6>_0x2b3dc5['frameTime']&&(_0xd5212c=_0x399f5a-_0x4138a6%_0x2b3dc5['frameTime'],_0x2b3dc5[_0x564d8f(-0x123,-0xfb)]());}}(),window[_0xd46ff2(0x46a,0x4ca)](_0xd46ff2(0x463,0x443),this[_0x288442(0x36d,0x33e)]['bind'](this),![]),this['mouse_down']=![]);function _0x288442(_0x2cad,_0x27c3c9){return _0x8b6892(_0x27c3c9,_0x2cad-0x5ed);}this['mouse_move']=![];function _0xd46ff2(_0x1667dd,_0x1b10ec){return _0x1d22c3(_0x1b10ec-0x686,_0x1667dd);}this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0xd46ff2(0x583,0x531)],this),this[_0x288442(0x3fa,0x3e5)]['on'](mars3d__namespace['EventType']['mouseUp'],this[_0xd46ff2(0x4c9,0x4f0)],this));}[_0x1d22c3(-0x210,-0x1bc)](){window[_0x13b003(0x135,0xf7)](this[_0x13b003(0x166,0x135)]);function _0x13b003(_0x3e629f,_0x49a0d1){return _0x8b6892(_0x49a0d1,_0x3e629f-0x348);}delete this['_animateFrame'];function _0x13d3a0(_0x5210d6,_0x3b703f){return _0x1d22c3(_0x5210d6-0x51a,_0x3b703f);}window['removeEventListener']('resize',this[_0x13b003(0xc8,0x40)]),this['options'][_0x13d3a0(0x3a0,0x36b)]&&(this['_map']['off'](mars3d__namespace[_0x13b003(0x13b,0xca)]['wheel'],this['_onMapWhellEvent'],this),this[_0x13b003(0x155,0x1d8)]['off'](mars3d__namespace[_0x13b003(0x13b,0xf0)]['mouseDown'],this[_0x13d3a0(0x3c5,0x3e7)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x13d3a0(0x30b,0x28f)],this['_onMouseUpEvent'],this),this[_0x13b003(0x155,0x16b)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x1d22c3(-0x213,-0x26c)](_0xc47389){function _0x478e33(_0x39777a,_0x54fb45){return _0x8b6892(_0x39777a,_0x54fb45-0x6f2);}clearTimeout(this['refreshTimer']);if(!this[_0x3a9b48(0x140,0x166)]||!this[_0x478e33(0x606,0x583)])return;this['canvas']['style']['visibility']='hidden';function _0x3a9b48(_0x4f6ed8,_0x2ef24c){return _0x8b6892(_0x4f6ed8,_0x2ef24c-0x3d1);}this[_0x3a9b48(0x250,0x266)]=setTimeout(()=>{if(!this['show'])return;function _0x1ad780(_0x295a08,_0x470278){return _0x3a9b48(_0x295a08,_0x470278- -0x3af);}function _0x2fb71b(_0x4b68e6,_0x53563b){return _0x3a9b48(_0x53563b,_0x4b68e6-0x339);}this[_0x2fb71b(0x4ff,0x520)](),this[_0x1ad780(-0x159,-0x14d)]['style']['visibility']='visible';},0xc8);}[_0x8b6892(-0x197,-0x192)](_0x34ca65){this['mouse_down']=!![],this[_0x354b12(0xc7,0x73)]['off'](mars3d__namespace[_0x354b12(0xad,0x101)]['mouseMove'],this['_onMouseMoveEvent'],this);function _0x354b12(_0x45c7f1,_0x259846){return _0x1d22c3(_0x45c7f1-0x27d,_0x259846);}function _0x246316(_0x5feb55,_0x314339){return _0x1d22c3(_0x5feb55-0x608,_0x314339);}this[_0x354b12(0xc7,0xe9)]['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x4afdfc){function _0x3758a9(_0xa696e7,_0x434e28){return _0x1d22c3(_0x434e28-0x348,_0xa696e7);}function _0x2b44d2(_0x49b59a,_0x43dcd5){return _0x8b6892(_0x43dcd5,_0x49b59a-0x1bd);}if(!this['show']||!this[_0x3758a9(0x25b,0x216)])return;this['mouse_down']&&(this['canvas'][_0x2b44d2(0x4c,0x58)][_0x2b44d2(-0x5e,-0xa5)]=_0x3758a9(0x18b,0x1ff),this['mouse_move']=!![]);}[_0x1d22c3(-0x196,-0x198)](_0x2a200f){if(!this['show']||!this[_0x5ed684(0x397,0x424)])return;function _0x5ed684(_0x3dcf85,_0x314106){return _0x8b6892(_0x314106,_0x3dcf85-0x506);}this[_0x298891(0x493,0x48e)]['off'](mars3d__namespace['EventType'][_0x5ed684(0x348,0x3b9)],this[_0x5ed684(0x340,0x2f4)],this);function _0x298891(_0x1eecd7,_0x1f1986){return _0x8b6892(_0x1f1986,_0x1eecd7-0x686);}this[_0x5ed684(0x2bf,0x31c)]&&this['mouse_move']&&this['redraw'](),this['canvas'][_0x5ed684(0x395,0x3da)][_0x5ed684(0x2eb,0x340)]=_0x5ed684(0x329,0x379),this[_0x298891(0x43f,0x45e)]=![],this[_0x298891(0x51f,0x51d)]=![];}[_0x1d22c3(-0x15c,-0xea)](_0x55b6a3){function _0x57b091(_0x3aebaf,_0x3aab9c){return _0x1d22c3(_0x3aab9c-0x541,_0x3aebaf);}this[_0x57b091(0x3c5,0x40e)](),this['windData']=_0x55b6a3,this[_0x57b091(0x2fe,0x352)][_0x57b091(0x478,0x406)](_0x55b6a3);function _0x451028(_0x4fb587,_0xebec67){return _0x8b6892(_0xebec67,_0x4fb587-0x3d);}this['redraw']();}['redraw'](){if(!this['show'])return;function _0x2d2dc4(_0x4d131f,_0x35792b){return _0x1d22c3(_0x35792b-0x474,_0x4d131f);}this['windField'][_0x2393ce(-0x26,-0x5c)](this['options']);function _0x2393ce(_0x291101,_0x5080a0){return _0x8b6892(_0x5080a0,_0x291101-0x1ea);}this[_0x2393ce(-0x19,-0x1c)]();}['update'](){if(this['_updateIng'])return;function _0x13606a(_0x1a0b02,_0xac31c5){return _0x1d22c3(_0x1a0b02-0x597,_0xac31c5);}function _0x29dcd0(_0xf56620,_0x1a7ac5){return _0x1d22c3(_0xf56620-0x740,_0x1a7ac5);}this['_updateIng']=!![];if(this['worker'])this['windField']['update']();else{const _0x464449=this['windField']['getParticles']();this[_0x13606a(0x454,0x4df)](_0x464449);}this[_0x29dcd0(0x5c0,0x5a0)]=![];}[_0x1d22c3(-0x143,-0x171)](_0x3f3d5f){this['_canvasParticles']=_0x3f3d5f,this['canvasContext'][_0x28f86f(0x353,0x3df)]=_0x28f86f(0x3fa,0x3cb),this[_0x28f86f(0x3b0,0x3f5)][_0x28f86f(0x439,0x480)](0x0,0x0,this['canvasWidth'],this['canvasHeight']);function _0x1766e2(_0x39b49b,_0x5d5ed3){return _0x8b6892(_0x39b49b,_0x5d5ed3-0x776);}this[_0x28f86f(0x3b0,0x37d)]['globalCompositeOperation']=_0x28f86f(0x386,0x392),this['canvasContext']['globalAlpha']=0.9;function _0x28f86f(_0x5dbe8d,_0x59d8f7){return _0x1d22c3(_0x5dbe8d-0x58f,_0x59d8f7);}const _0x17e177=this[_0x1766e2(0x588,0x583)]['scene']['mode']!==Cesium['SceneMode']['SCENE3D'],_0x2b0404=this[_0x28f86f(0x425,0x430)]*0.25;if(this['_colorRamp'])for(let _0x168a11=0x0,_0x3d8193=_0x3f3d5f['length'];_0x168a11<_0x3d8193;_0x168a11++){const _0x58150f=_0x3f3d5f[_0x168a11],_0xac3092=this[_0x28f86f(0x34e,0x3a8)](_0x58150f,_0x58150f[_0x1766e2(0x5b2,0x554)],_0x58150f[_0x28f86f(0x391,0x3e0)],_0x58150f[_0x28f86f(0x37a,0x392)]),_0xef3f61=this['_tomap'](_0x58150f,_0x58150f['tlng'],_0x58150f['tlat'],_0x58150f['talt']);if(!_0xac3092||!_0xef3f61)continue;if(_0x17e177&&Math['abs'](_0xac3092[0x0]-_0xef3f61[0x0])>=_0x2b0404)continue;this[_0x1766e2(0x5a4,0x55a)][_0x1766e2(0x5cf,0x5fc)](),this[_0x28f86f(0x3b0,0x341)]['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x1766e2(0x543,0x5c9)]['getColor'](_0x58150f['speed']),this['canvasContext']['moveTo'](_0xac3092[0x0],_0xac3092[0x1]),this['canvasContext']['lineTo'](_0xef3f61[0x0],_0xef3f61[0x1]),this[_0x1766e2(0x59f,0x55a)]['stroke']();}else{this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x1766e2(0x5d4,0x55a)][_0x1766e2(0x618,0x60a)]=this[_0x1766e2(0x5d0,0x545)];for(let _0x1d5aa0=0x0,_0x46b03a=_0x3f3d5f['length'];_0x1d5aa0<_0x46b03a;_0x1d5aa0++){const _0x299e59=_0x3f3d5f[_0x1d5aa0],_0x548e01=this['_tomap'](_0x299e59,_0x299e59['lng'],_0x299e59['lat'],_0x299e59['alt']),_0x5d8ff2=this[_0x1766e2(0x4ae,0x4f8)](_0x299e59,_0x299e59['tlng'],_0x299e59['tlat'],_0x299e59[_0x1766e2(0x646,0x5ee)]);if(!_0x548e01||!_0x5d8ff2)continue;if(_0x17e177&&Math['abs'](_0x548e01[0x0]-_0x5d8ff2[0x0])>=_0x2b0404)continue;this[_0x28f86f(0x3b0,0x42f)][_0x28f86f(0x366,0x324)](_0x548e01[0x0],_0x548e01[0x1]),this['canvasContext']['lineTo'](_0x5d8ff2[0x0],_0x5d8ff2[0x1]);}this[_0x28f86f(0x3b0,0x3e8)]['stroke']();}}['_tomap'](_0x19d219,_0x43af5a,_0x34f1fb,_0x17a391){const _0x2857f6=Cesium['Cartesian3'][_0x50bea0(0xb2,0x136)](_0x43af5a,_0x34f1fb,_0x17a391??this['fixedHeight']),_0x12e6b5=this[_0x50bea0(0x88,0x4c)]['scene'];if(_0x12e6b5['mode']===Cesium['SceneMode']['SCENE3D']){const _0x174bbc=new Cesium[(_0x50bea0(0xdf,0xcd))](_0x12e6b5['globe'][_0x57bb1f(0x3f0,0x3d1)],_0x12e6b5['camera']['positionWC']),_0x3b3998=_0x174bbc['isPointVisible'](_0x2857f6);if(!_0x3b3998)return _0x19d219['age']=0x0,null;}const _0x54f2a7=mars3d__namespace[_0x50bea0(0x81,-0x4)]['toWindowCoordinates'](this[_0x50bea0(0x88,-0x2)]['scene'],_0x2857f6);function _0x50bea0(_0x3a8faf,_0x257e62){return _0x8b6892(_0x257e62,_0x3a8faf-0x27b);}function _0x57bb1f(_0x263505,_0x2dec90){return _0x1d22c3(_0x263505-0x5fc,_0x2dec90);}return _0x54f2a7?[_0x54f2a7['x'],_0x54f2a7['y']]:null;}['clear'](){this['windField']['clear'](),delete this['windData'];}[_0x8b6892(-0x25b,-0x27c)](){this[_0x279293(0x2ba,0x2ac)]=new Worker(this['options']['worker']),this['worker']['onmessage']=_0x319665=>{function _0x5e8ebe(_0x85b176,_0x3a00fb){return _0x279293(_0x85b176-0x1b2,_0x3a00fb);}function _0x17698d(_0x2eddee,_0x373f27){return _0x279293(_0x373f27- -0x44d,_0x2eddee);}this['_drawLines'](_0x319665[_0x17698d(-0xe6,-0x134)]['particles']),this[_0x17698d(-0x1e2,-0x171)]=![];};function _0x279293(_0x1c352c,_0x339742){return _0x1d22c3(_0x1c352c-0x46b,_0x339742);}this[_0x24bad6(0x115,0x161)]={'init':_0x360e20=>{const _0x5d4014={};_0x5d4014['type']='init';function _0x464bca(_0xfb6013,_0x509ef2){return _0x24bad6(_0xfb6013,_0x509ef2-0x324);}_0x5d4014['options']=_0x360e20,this[_0x464bca(0x4e7,0x4c3)]['postMessage'](_0x5d4014);},'setOptions':_0x23f758=>{function _0x42c437(_0x19190e,_0x406c92){return _0x24bad6(_0x19190e,_0x406c92-0x5d);}const _0x5a2a66={};_0x5a2a66['type']='setOptions',_0x5a2a66[_0x42c437(0x226,0x1cd)]=_0x23f758;function _0x161721(_0x5d5770,_0x5bd54f){return _0x24bad6(_0x5d5770,_0x5bd54f-0xd1);}this[_0x42c437(0x1fc,0x1fc)]['postMessage'](_0x5a2a66);},'setDate':_0xfa401b=>{const _0x4391c5={};function _0x6f19b9(_0x55db63,_0x2d8c78){return _0x279293(_0x2d8c78- -0x445,_0x55db63);}_0x4391c5['type']=_0x6f19b9(-0xec,-0x115);function _0x23092b(_0x33187e,_0x1933ea){return _0x279293(_0x33187e- -0xeb,_0x1933ea);}_0x4391c5[_0x23092b(0x22e,0x29e)]=_0xfa401b,this['worker']['postMessage'](_0x4391c5);},'update':()=>{if(this['_updateIng2'])return;function _0x4a10d2(_0x2cd2ef,_0x20374d){return _0x24bad6(_0x20374d,_0x2cd2ef-0x3ad);}this['_updateIng2']=!![];function _0x50b89f(_0x509a4d,_0x435262){return _0x24bad6(_0x435262,_0x509a4d- -0x33e);}const _0x230aae={};_0x230aae['type']=_0x4a10d2(0x537,0x4d1),this[_0x4a10d2(0x54c,0x535)][_0x4a10d2(0x5c4,0x545)](_0x230aae);},'clear':()=>{function _0x10bb91(_0x3d4f9c,_0x4ef9cf){return _0x24bad6(_0x3d4f9c,_0x4ef9cf-0x241);}const _0x2963de={};_0x2963de[_0x293074(0x56e,0x57c)]=_0x293074(0x5a2,0x5a4);function _0x293074(_0x40bb6f,_0xdf3f79){return _0x24bad6(_0x40bb6f,_0xdf3f79-0x387);}this[_0x10bb91(0x3dd,0x3e0)][_0x10bb91(0x460,0x458)](_0x2963de);}};function _0x24bad6(_0x3b5b42,_0x5e33ad){return _0x1d22c3(_0x5e33ad-0x350,_0x3b5b42);}this['windField']['init'](this[_0x279293(0x28b,0x292)]);}}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace[_0x8b6892(-0x2ae,-0x26e)][_0x8b6892(-0x226,-0x1a2)]=CanvasWindLayer,mars3d__namespace[_0x8b6892(-0x1b4,-0x204)]=CanvasWindField,mars3d__namespace[_0x1d22c3(-0x1bf,-0x164)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0xf58e62={};_0xf58e62[_0x8b6892(-0x144,-0x194)]=!![],Object[_0x8b6892(-0x209,-0x1ab)](exports,'__esModule',_0xf58e62);
14
+ 'use strict';(function(_0x13c4be,_0x520e83){const _0x37cc1e=_0x13c4be();function _0x4652f4(_0x566a1e,_0x13481b){return _0x1e2b(_0x566a1e-0x231,_0x13481b);}function _0x114cf8(_0x4e5086,_0x7e314){return _0x1e2b(_0x4e5086-0x3c8,_0x7e314);}while(!![]){try{const _0x59d1bc=-parseInt(_0x114cf8(0x53e,0x5a7))/0x1+-parseInt(_0x4652f4(0x429,0x48b))/0x2+-parseInt(_0x4652f4(0x3a8,0x37c))/0x3*(-parseInt(_0x114cf8(0x5df,0x667))/0x4)+parseInt(_0x4652f4(0x354,0x36c))/0x5*(-parseInt(_0x114cf8(0x5d4,0x58b))/0x6)+-parseInt(_0x4652f4(0x413,0x387))/0x7*(parseInt(_0x4652f4(0x378,0x393))/0x8)+parseInt(_0x4652f4(0x377,0x3f2))/0x9*(-parseInt(_0x4652f4(0x356,0x389))/0xa)+parseInt(_0x114cf8(0x52a,0x542))/0xb;if(_0x59d1bc===_0x520e83)break;else _0x37cc1e['push'](_0x37cc1e['shift']());}catch(_0xbae13c){_0x37cc1e['push'](_0x37cc1e['shift']());}}}(_0x39ca,0xab973));function _interopNamespace(_0x2c580c){function _0x520ae2(_0x329518,_0x30def6){return _0x1e2b(_0x329518- -0x187,_0x30def6);}if(_0x2c580c&&_0x2c580c[_0x39508c(0x139,0x195)])return _0x2c580c;var _0x574fe4=Object['create'](null);_0x2c580c&&Object[_0x520ae2(0x8c,0x70)](_0x2c580c)[_0x520ae2(-0x76,-0x14)](function(_0x26e701){function _0x250c5f(_0x4ea88c,_0x520664){return _0x520ae2(_0x4ea88c-0x153,_0x520664);}if(_0x26e701!=='default'){var _0x5a9e91=Object['getOwnPropertyDescriptor'](_0x2c580c,_0x26e701);Object['defineProperty'](_0x574fe4,_0x26e701,_0x5a9e91[_0x250c5f(0x147,0xe3)]?_0x5a9e91:{'enumerable':!![],'get':function(){return _0x2c580c[_0x26e701];}});}});function _0x39508c(_0x252ddf,_0x2daff0){return _0x1e2b(_0x2daff0- -0x4c,_0x252ddf);}return _0x574fe4[_0x520ae2(0x89,0xfa)]=_0x2c580c,_0x574fe4;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x4c63d2(0x42,-0x20)];function getU(_0x158d8d,_0x4a5cf7){function _0x5d45a2(_0x125db8,_0x53bdf8){return _0x4c63d2(_0x53bdf8- -0x1c3,_0x125db8);}const _0xb194db=_0x158d8d*Math[_0x5d45a2(-0x158,-0x165)](Cesium$2[_0x5d45a2(-0x164,-0x1dc)][_0xdfb28e(-0xbe,-0x7b)](_0x4a5cf7));function _0xdfb28e(_0x53c8e6,_0x154a8c){return _0x4c63d2(_0x53c8e6- -0xd4,_0x154a8c);}return _0xb194db;}function _0x528101(_0x5dffc5,_0x3c5b52){return _0x1e2b(_0x3c5b52- -0x1c7,_0x5dffc5);}function getV(_0x58f2ea,_0x29ecbe){const _0x3fcef5=_0x58f2ea*Math[_0x34c24f(0x430,0x445)](Cesium$2['Math'][_0x34c24f(0x475,0x43a)](_0x29ecbe));function _0x34c24f(_0x35d039,_0x3064d3){return _0x4c63d2(_0x35d039-0x45f,_0x3064d3);}function _0x5f3710(_0x55c7c3,_0x127c9c){return _0x4c63d2(_0x127c9c-0x560,_0x55c7c3);}return _0x3fcef5;}function getSpeed(_0x3eca83,_0x54e388){function _0x36dc73(_0x109bd4,_0x2e056e){return _0x4c63d2(_0x109bd4-0x480,_0x2e056e);}const _0x354194=Math['sqrt'](Math[_0x36dc73(0x47a,0x4cf)](_0x3eca83,0x2)+Math['pow'](_0x54e388,0x2));return _0x354194;}function getDirection(_0x51ccc6,_0x4212ab){let _0x4986c0=Cesium$2['Math']['toDegrees'](Math[_0x4ecec9(0x45d,0x45c)](_0x4212ab,_0x51ccc6));function _0x4ecec9(_0x534841,_0x444d86){return _0x4c63d2(_0x534841-0x483,_0x444d86);}return _0x4986c0+=_0x4986c0<0x0?0x168:0x0,_0x4986c0;}const _0x245faa={};_0x245faa['__proto__']=null,_0x245faa[_0x528101(0x54,0x43)]=getU,_0x245faa[_0x528101(-0x5b,-0x7a)]=getV,_0x245faa[_0x528101(0x63,-0xa)]=getSpeed,_0x245faa[_0x4c63d2(-0x1f,-0x69)]=getDirection;var WindUtil=_0x245faa,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader=_0x528101(-0xb4,-0xce),renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader=_0x528101(0x54,-0x18);function _0x39ca(){const _0x32e18c=['particlesTextures','IDENTITY','_calcUV','get','sin','MIN_VALUE','abs','setOptions','componentDatatype','onmessage','style','createPrimitives','original','atan2','cols','createWindTextures','addEventListener','createParticlesTextures','remove','createSegmentsGeometry','getDirection','blendFuncDestination','OPAQUE','sqrt','register','now','Math','colors','framebuffers','lastFramesPerSecond','length','grid','particlesTextureSize','zIndex','_onMouseMoveEvent','tlng','lat','windField','height','fragmentShaderSource','fillRect','createRawRenderState','visible','willReadFrequently','quietPeriod','pow','framebuffer','EventType','bind','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','useViewerBounds','initWorker','renderState','computing','frameTime','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a','_onMouseUpEvent','vertexShaderSource','nextParticlesPosition','createColorTableTexture','mouse_move','postProcessingPosition','_colorRamp','_updateIng2','xmax','_drawLines','push','floor','_calc_speedRate','getSpeed','age','layer','round','toRadians','windTextures','flipY','options','minificationFilter','clearFramebuffers','fromCache','drawingBufferHeight','frameState.commandList\x20is\x20undefined','xmin','init','_updateIng','speedFactor','viewport','mouseDown','setData','magnificationFilter','resize','requestAnimationFrame','_createCanvas','wrapS','destroy','isDynamic','FUNC_ADD','worker','mouse_down','width','CanvasWindLayer','createRenderingFramebuffers','show','speedRate','visibility','__esModule','122745HrZHro','east','fill','windData','getSegmentDrawVertexShader','isPointVisible','LINEAR','strokeStyle','stringify','camera','SCENE3D','Cesium','north','tlat','attributeLocations','value','frameRate','_canrefresh','off','clientWidth','frameRateAdjustment','prototype','231706wVzejZ','SceneMode','textures','BaseLayer','updateOptions','clientHeight','_removedHook','maxAge','FLOAT','destoryRenderingFramebuffers','segments','number','MAX_VALUE','particlesSpeed','speed','max\x20is\x20undefined,\x20calculate\x20max','update','cos','getU','applyViewerParameters','36QaUvHd','currentParticlesPosition','uniformMap','bindEvent','default','canvasContext','reCreateWindTextures','keys','talt','morphComplete','refreshTimer','115792Grcivk','ellipsoid','ymax','context','STATIC_DRAW','lineTo','latRange','isDestroy','defineProperty','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a','random','array','umin','canvasHeight','drawingBufferWidth','viewerParameters','UNSIGNED_BYTE','commandType','south','_addedHook','owner','pixelDatatype','clear','depthMask','lonRange','mouseMove','lng','WindLayer','_bilinearInterpolation','_randomParticle','bounds','destroyParticlesTextures','updatePosition','forEach','RGBA','warn','_map','hidden','particleSystem','interpolated','initFrameRate','vmin','particlesNumber','mars3d-canvasWind','samplingWindow','commandToExecute','postMessage','persists','rows','autoClear','fromGeometry','404925sEEJxa','_tomap','92930xJcXIl','rendering','outputTexture','domain','mouseUp','absolute','destination-in','updateViewerParameters','_maxAge','wind','pixelSize','modelMatrix','Compute','_onMouseDownEvent','primitives','EllipsoidalOccluder','toGridXY','_speedRate','moveTo','fromDegrees','canvasWidth','fromCssColorString','globe','slice','frameRateMonitor','dynamic','west','canvas','processWindData','ymin','lineWidth','sources','_pointerEvents','1314zELJkb','256ZHlJbr','getUVByPoint','geometry','vertexArray','isDestroyed','getPostProcessingPositionShader','getV','hasOwnProperty','flatMap','setDate','createRenderingTextures','updateWindData','Cartesian2','mode','colorTable','particles','preExecute','lineLength','beginPath','pointerEvents','_animateFrame','LayerUtil','positionWC','blue','values','stroke','clearCommand','31476841vZTLam','getCalculateSpeedShader','createComputingPrimitives','max','type','rawRenderState','min','vdata','_onMapWhellEvent','data','setGeometry','commandList','Draw','blending','globalCompositeOperation','scene','fixedHeight','shaderProgram','getUVByXY','changed','623267ytLQoF','102eDXmlV'];_0x39ca=function(){return _0x32e18c;};return _0x39ca();}const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x4c63d2(0x42,0x7f)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x3b9ac0={};function _0x586915(_0x41d7f7,_0x43c758){return _0x528101(_0x41d7f7,_0x43c758-0x296);}return _0x3b9ac0[_0x586915(0x217,0x213)]=[calculateSpeedShader],new ShaderSource$1(_0x3b9ac0);}static['getUpdatePositionShader'](){const _0x46df4a={};return _0x46df4a['sources']=[updatePositionShader],new ShaderSource$1(_0x46df4a);}static[_0x528101(0x36,0x1f)](){const _0x1cf0ba={};return _0x1cf0ba['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x1cf0ba);}static['getSegmentDrawFragmentShader'](){const _0x210dab={};return _0x210dab['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x210dab);}static[_0x4c63d2(-0x5f,-0x24)](){function _0x2e8591(_0x21a95c,_0x28fe0b){return _0x528101(_0x28fe0b,_0x21a95c-0x4b5);}const _0x33892c={};return _0x33892c[_0x2e8591(0x432,0x49a)]=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x33892c);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defaultValue,defined,destroyObject}=mars3d__namespace[_0x4c63d2(0x42,0x69)];class CustomPrimitive{constructor(_0x56625f){this[_0x317c54(0x391,0x33d)]=_0x56625f['commandType'],this[_0x4c38b4(0x6f,-0x2)]=_0x56625f['geometry'];function _0x4c38b4(_0x28bad7,_0x51ccac){return _0x528101(_0x51ccac,_0x28bad7-0xed);}this[_0x4c38b4(0x116,0x14e)]=_0x56625f[_0x317c54(0x480,0x3f1)],this['primitiveType']=_0x56625f['primitiveType'],this[_0x317c54(0x49e,0x41a)]=_0x56625f[_0x4c38b4(0x134,0x10f)]||{},this['vertexShaderSource']=_0x56625f['vertexShaderSource'],this['fragmentShaderSource']=_0x56625f[_0x317c54(0x42f,0x439)],this['rawRenderState']=_0x56625f[_0x317c54(0x3f7,0x40d)],this['framebuffer']=_0x56625f['framebuffer'],this['outputTexture']=_0x56625f[_0x317c54(0x3b7,0x422)],this[_0x317c54(0x3b1,0x440)]=defaultValue(_0x56625f['autoClear'],![]);function _0x317c54(_0x54335f,_0x5de3de){return _0x528101(_0x5de3de,_0x54335f-0x457);}this['preExecute']=_0x56625f[_0x317c54(0x3e7,0x3c3)],this['show']=!![],this[_0x4c38b4(0x43,0x90)]=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x56625f[_0x317c54(0x467,0x3e5)]??(()=>!![]),this['autoClear']&&(this[_0x317c54(0x3f1,0x3d4)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x317c54(0x436,0x3de)],'pass':Pass$1[_0x317c54(0x41e,0x458)]}));}['createCommand'](_0x591543){function _0x4ab145(_0xc1a41b,_0x4a339e){return _0x4c63d2(_0x4a339e-0x4e9,_0xc1a41b);}function _0x2d3362(_0x504428,_0x3eb1fc){return _0x4c63d2(_0x3eb1fc-0x192,_0x504428);}if(this['commandType']==='Draw'){const _0x5a2020={};_0x5a2020[_0x2d3362(0x11f,0xda)]=_0x591543,_0x5a2020['geometry']=this['geometry'],_0x5a2020[_0x4ab145(0x533,0x52e)]=this[_0x2d3362(0x161,0x1d7)],_0x5a2020['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0xa58c4b=VertexArray$1['fromGeometry'](_0x5a2020),_0x1da3b7={};_0x1da3b7['context']=_0x591543,_0x1da3b7[_0x2d3362(0x1d7,0x198)]=this['vertexShaderSource'],_0x1da3b7[_0x4ab145(0x4dc,0x4dd)]=this['fragmentShaderSource'],_0x1da3b7[_0x4ab145(0x59d,0x52e)]=this[_0x4ab145(0x54d,0x52e)];const _0x1fb5fb=ShaderProgram['fromCache'](_0x1da3b7),_0x4747ca=RenderState[_0x4ab145(0x4f5,0x505)](this[_0x2d3362(0x154,0x14e)]),_0x17a4f8={};return _0x17a4f8['owner']=this,_0x17a4f8['vertexArray']=_0xa58c4b,_0x17a4f8['primitiveType']=this['primitiveType'],_0x17a4f8[_0x4ab145(0x48c,0x46e)]=Matrix4[_0x2d3362(0x1b9,0x160)],_0x17a4f8[_0x4ab145(0x51f,0x4ea)]=_0x4747ca,_0x17a4f8['shaderProgram']=_0x1fb5fb,_0x17a4f8['framebuffer']=this['framebuffer'],_0x17a4f8['uniformMap']=this['uniformMap'],_0x17a4f8['pass']=Pass$1['OPAQUE'],new DrawCommand(_0x17a4f8);}else{if(this['commandType']==='Compute'){const _0x43895b={};return _0x43895b[_0x2d3362(0x17c,0xeb)]=this,_0x43895b['fragmentShaderSource']=this['fragmentShaderSource'],_0x43895b['uniformMap']=this['uniformMap'],_0x43895b[_0x2d3362(0x88,0x10e)]=this['outputTexture'],_0x43895b[_0x2d3362(0x11d,0x106)]=!![],new ComputeCommand(_0x43895b);}else throw new Error('Unknown\x20command\x20type');}}[_0x528101(-0x27,-0x5b)](_0x847b8a,_0x84ded){function _0x4413e8(_0x31780c,_0x205e79){return _0x4c63d2(_0x205e79-0x197,_0x31780c);}this[_0x456d2e(-0x8f,-0x1b)]=_0x84ded;function _0x456d2e(_0x291a83,_0x5d3572){return _0x528101(_0x5d3572,_0x291a83- -0x11);}defined(this['commandToExecute'])&&(this['commandToExecute'][_0x456d2e(-0x8e,-0x97)]=VertexArray$1['fromGeometry']({'context':_0x847b8a,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x31a29a){if(!this['isDynamic']())return;if(!this['show']||!defined(_0x31a29a))return;!defined(this[_0x32cf50(0x1e9,0x16f)])&&(this['commandToExecute']=this['createCommand'](_0x31a29a['context']));function _0x32cf50(_0xfe442b,_0x39d626){return _0x4c63d2(_0xfe442b-0x277,_0x39d626);}function _0x38e27e(_0x297d61,_0x5df6d9){return _0x4c63d2(_0x297d61- -0x7c,_0x5df6d9);}defined(this[_0x32cf50(0x223,0x2aa)])&&this[_0x38e27e(-0xd0,-0x105)]();if(!_0x31a29a['commandList']){console[_0x38e27e(-0x114,-0xfd)](_0x38e27e(-0x5e,-0xb7));return;}defined(this['clearCommand'])&&_0x31a29a[_0x38e27e(-0xba,-0xf6)]['push'](this[_0x32cf50(0x22d,0x1f8)]),defined(this['commandToExecute'])&&_0x31a29a['commandList'][_0x38e27e(-0x6d,-0x7)](this[_0x38e27e(-0x10a,-0x132)]);}[_0x528101(-0x87,-0x7c)](){return![];}[_0x528101(0x3e,0xf)](){if(defined(this['commandToExecute'])){var _0x26d615;(_0x26d615=this['commandToExecute'][_0x47ca85(0x19,-0x21)])===null||_0x26d615===void 0x0||_0x26d615['destroy'](),this['commandToExecute']['shaderProgram']=undefined;}function _0x47ca85(_0x20e034,_0x519054){return _0x4c63d2(_0x20e034-0x51,_0x519054);}return destroyObject(this);}}function deepMerge(_0x52cbf8,_0x21adda){function _0x3097f0(_0x379690,_0x3bf788){return _0x4c63d2(_0x3bf788-0x30a,_0x379690);}if(!_0x52cbf8)return _0x21adda;if(!_0x21adda)return _0x52cbf8;function _0x4d1c55(_0x5db1af,_0xd7790f){return _0x528101(_0x5db1af,_0xd7790f-0xce);}const _0x5943a0={..._0x21adda},_0x5ad4ce=_0x5943a0;for(const _0x217389 in _0x52cbf8){if(Object[_0x4d1c55(0xb2,0xfe)][_0x3097f0(0x2b7,0x2ad)]['call'](_0x52cbf8,_0x217389)){const _0x6a4f=_0x52cbf8[_0x217389],_0x254e84=_0x21adda[_0x217389];if(Array['isArray'](_0x6a4f)){_0x5ad4ce[_0x217389]=_0x6a4f[_0x4d1c55(0x43,0x43)]();continue;}if(_0x6a4f&&typeof _0x6a4f==='object'){_0x5ad4ce[_0x217389]=deepMerge(_0x6a4f,_0x254e84||{});continue;}_0x6a4f!==undefined&&(_0x5ad4ce[_0x217389]=_0x6a4f);}}return _0x5ad4ce;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x2c6ca5,_0x4815e8,_0x4752ba,_0x3de855,_0x146948){this['context']=_0x2c6ca5,this['options']=_0x4752ba,this['viewerParameters']=_0x3de855,this['windData']=_0x4815e8;function _0x1738b7(_0x3bd8db,_0x4938d9){return _0x528101(_0x4938d9,_0x3bd8db-0x2cc);}this[_0x1738b7(0x2f7,0x291)]=0x3c,this[_0x511ffb(0x489,0x40a)]=0x1;const _0x6748a5={};_0x6748a5['scene']=_0x146948,_0x6748a5[_0x511ffb(0x3af,0x36c)]=0x1,_0x6748a5[_0x511ffb(0x437,0x416)]=0x0;function _0x511ffb(_0x4ae395,_0x37dd6d){return _0x528101(_0x37dd6d,_0x4ae395-0x45a);}this[_0x511ffb(0x3d0,0x457)]=new FrameRateMonitor(_0x6748a5),this[_0x511ffb(0x3ab,0x32e)](),this[_0x511ffb(0x41a,0x38d)](),this[_0x1738b7(0x28e,0x2d3)](),this[_0x511ffb(0x3f7,0x377)]();}['initFrameRate'](){const _0x3048dc=()=>{function _0x14a4ba(_0x4dc29f,_0x568135){return _0x1e2b(_0x4dc29f- -0x13b,_0x568135);}function _0x5c1117(_0x442540,_0x331ea6){return _0x1e2b(_0x331ea6-0x1b6,_0x442540);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this[_0x5c1117(0x34b,0x2f3)][_0x14a4ba(0x5a,0x2c)],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0x3048dc();function _0x4d7a0f(_0x31aa33,_0x14d502){return _0x4c63d2(_0x31aa33-0x273,_0x14d502);}const _0x4c28f2=setInterval(_0x3048dc,0x3e8),_0x381348=this['destroy'][_0x4d7a0f(0x270,0x25d)](this);this['destroy']=()=>{clearInterval(_0x4c28f2),_0x381348();};}['createWindTextures'](){const _0x29ecdc={};_0x29ecdc[_0x9ef57(0x527,0x54a)]=TextureMinificationFilter$1['LINEAR'];function _0xea4bbb(_0x483fc7,_0x43a631){return _0x4c63d2(_0x483fc7-0xef,_0x43a631);}function _0x9ef57(_0x36e769,_0xf80ea9){return _0x4c63d2(_0xf80ea9-0x530,_0x36e769);}_0x29ecdc[_0x9ef57(0x564,0x556)]=TextureMagnificationFilter$1[_0xea4bbb(0x12c,0x13e)];const _0xb9f8a9={'context':this[_0xea4bbb(0x37,-0x23)],'width':this['windData']['width'],'height':this['windData'][_0xea4bbb(0xe2,0xa1)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1[_0x9ef57(0x503,0x585)],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x29ecdc)};this['windTextures']={'U':new Texture$1({..._0xb9f8a9,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0xb9f8a9,'source':{'arrayBufferView':new Float32Array(this[_0xea4bbb(0x129,0x1ab)]['v'][_0x9ef57(0x4e0,0x480)])}})};}['createParticlesTextures'](){const _0x24d61d={};_0x24d61d['minificationFilter']=TextureMinificationFilter$1['NEAREST'];function _0x3e397a(_0x8e8584,_0x23eea9){return _0x528101(_0x23eea9,_0x8e8584-0x496);}_0x24d61d[_0x11b28a(0x1ca,0x14c)]=TextureMagnificationFilter$1['NEAREST'];const _0x3b7145={'context':this['context'],'width':this[_0x3e397a(0x493,0x484)]['particlesTextureSize'],'height':this[_0x11b28a(0x113,0x13f)][_0x11b28a(0x130,0x113)],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x11b28a(0x131,0x13f)][_0x11b28a(0xa4,0x113)]*this[_0x11b28a(0x13d,0x13f)][_0x11b28a(0x178,0x113)]*0x4)[_0x3e397a(0x4b3,0x424)](0x0)},'sampler':new Sampler$1(_0x24d61d)};function _0x11b28a(_0x528335,_0x183876){return _0x528101(_0x528335,_0x183876-0x142);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x3b7145),'currentParticlesPosition':new Texture$1(_0x3b7145),'nextParticlesPosition':new Texture$1(_0x3b7145),'postProcessingPosition':new Texture$1(_0x3b7145),'particlesSpeed':new Texture$1(_0x3b7145)};}[_0x4c63d2(-0x9c,-0x108)](){function _0x50fe12(_0x14d7a4,_0x46b33c){return _0x4c63d2(_0x14d7a4- -0xc2,_0x46b33c);}Object['values'](this[_0x50fe12(-0xf5,-0x103)])['forEach'](_0x2e77d3=>_0x2e77d3['destroy']());}[_0x4c63d2(-0x47,-0x85)](){function _0x25b448(_0x31b0fa,_0x3f11d4){return _0x528101(_0x31b0fa,_0x3f11d4- -0x77);}function _0x10dbbc(_0x39f08,_0x27689b){return _0x528101(_0x27689b,_0x39f08-0x54f);}this[_0x25b448(-0x113,-0x10b)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x10dbbc(0x56d,0x569)]['u'][_0x25b448(-0x81,-0xd6)],this['windData']['u'][_0x10dbbc(0x4ed,0x538)]),'vRange':()=>new Cartesian2$1(this[_0x10dbbc(0x56d,0x52e)]['v'][_0x25b448(-0x97,-0xd6)],this[_0x10dbbc(0x56d,0x5a1)]['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this[_0x10dbbc(0x56d,0x545)][_0x10dbbc(0x58e,0x5e1)]['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x1fa47c(_0x19ec6a,_0x40fbbe){return _0x25b448(_0x40fbbe,_0x19ec6a- -0xd9);}function _0x2b659b(_0x5a2935,_0x482d6b){return _0x10dbbc(_0x5a2935- -0x585,_0x482d6b);}return(this['viewerParameters'][_0x1fa47c(-0x1e8,-0x15c)]+0x32)*this[_0x1fa47c(-0x153,-0x155)][_0x1fa47c(-0x14a,-0xed)];},'frameRateAdjustment':()=>this[_0x10dbbc(0x57e,0x532)],'dimension':()=>new Cartesian2$1(this['windData']['width'],this['windData'][_0x10dbbc(0x526,0x4a9)]),'minimum':()=>new Cartesian2$1(this[_0x25b448(-0x63,-0x59)]['bounds'][_0x25b448(-0x6e,-0xff)],this[_0x10dbbc(0x56d,0x5f6)]['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds'][_0x25b448(-0x2f,-0x5b)],this['windData']['bounds'][_0x25b448(0x36,-0x50)])},'fragmentShaderSource':ShaderManager[_0x25b448(-0x139,-0xdb)](),'outputTexture':this['particlesTextures'][_0x25b448(0x1e,-0x39)],'preExecute':()=>{const _0x160b11=this['particlesTextures']['previousParticlesPosition'];function _0x58585f(_0x211c0b,_0x4144d4){return _0x10dbbc(_0x4144d4- -0x599,_0x211c0b);}this[_0x6bfecc(-0x99,-0x38)]['previousParticlesPosition']=this[_0x6bfecc(-0x7d,-0x38)]['currentParticlesPosition'],this[_0x58585f(-0x2c,-0x99)]['currentParticlesPosition']=this[_0x58585f(-0x52,-0x99)]['postProcessingPosition'],this[_0x6bfecc(-0x2d,-0x38)][_0x58585f(-0x7,-0x5c)]=_0x160b11;function _0x6bfecc(_0x452f2a,_0x2c8faa){return _0x25b448(_0x452f2a,_0x2c8faa-0x8e);}this['primitives']['calculateSpeed'][_0x58585f(-0x128,-0xf4)]&&(this[_0x58585f(-0xe3,-0xde)]['calculateSpeed']['commandToExecute']['outputTexture']=this[_0x6bfecc(-0xb7,-0x38)][_0x6bfecc(0x82,0x55)]);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x25b448(-0x93,-0xc6)][_0x25b448(0x2a,-0x31)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x569250(_0x16885d,_0x184035){return _0x25b448(_0x184035,_0x16885d-0x5a6);}function _0x45deee(_0x39a77f,_0x56aa09){return _0x10dbbc(_0x56aa09- -0x620,_0x39a77f);}this['primitives']['updatePosition'][_0x45deee(-0x17a,-0x17b)]&&(this[_0x45deee(-0x1d6,-0x165)]['updatePosition'][_0x45deee(-0x1c7,-0x17b)]['outputTexture']=this[_0x569250(0x4e0,0x4b6)]['nextParticlesPosition']);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x10dbbc(0x4b9,0x4ad),'uniformMap':{'nextParticlesPosition':()=>this[_0x10dbbc(0x500,0x592)][_0x10dbbc(0x53a,0x538)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this[_0x25b448(-0x151,-0x13f)][_0x25b448(-0x10c,-0x136)],'latRange':()=>this['viewerParameters'][_0x25b448(-0x1d3,-0x148)],'dataLonRange':()=>new Cartesian2$1(this['windData']['bounds']['west'],this[_0x25b448(0x14,-0x59)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x10dbbc(0x496,0x406)]['south'],this[_0x10dbbc(0x56d,0x507)][_0x10dbbc(0x496,0x4eb)]['north']),'randomCoefficient':function(){function _0x5702de(_0x1d3f1a,_0x3469e6){return _0x10dbbc(_0x3469e6- -0x25e,_0x1d3f1a);}return Math[_0x5702de(0x1b6,0x224)]();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this[_0x25b448(-0xf1,-0x7a)]['dropRateBump'],'useViewerBounds':()=>this['options'][_0x10dbbc(0x532,0x525)]},'fragmentShaderSource':ShaderManager[_0x25b448(-0xcc,-0xf2)](),'outputTexture':this[_0x10dbbc(0x500,0x57b)][_0x10dbbc(0x53d,0x4ee)],'preExecute':()=>{function _0x2cf36a(_0x36db92,_0x8d1b43){return _0x10dbbc(_0x8d1b43- -0x61,_0x36db92);}function _0xcd7c7a(_0x15406f,_0x5218a6){return _0x25b448(_0x5218a6,_0x15406f-0x25b);}this['primitives'][_0xcd7c7a(0x1d2,0x16a)]['commandToExecute']&&(this[_0x2cf36a(0x3e5,0x45a)]['postProcessingPosition']['commandToExecute']['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this['options']['dynamic']})};}['reCreateWindTextures'](){this[_0x4ee458(0x45a,0x49a)]['U']['destroy'](),this['windTextures']['V']['destroy']();function _0x4ee458(_0x106dc7,_0x332c49){return _0x528101(_0x106dc7,_0x332c49-0x49f);}this['createWindTextures']();}['updateWindData'](_0x4326b6){function _0x163394(_0x20b668,_0x5bc0d7){return _0x4c63d2(_0x5bc0d7-0x35,_0x20b668);}this['windData']=_0x4326b6,this[_0x163394(0x119,0x9c)]();}['updateOptions'](_0x211f58){function _0x577bbe(_0x16c12a,_0x5c3e96){return _0x4c63d2(_0x5c3e96- -0x176,_0x16c12a);}function _0xc17c21(_0x17cda9,_0x1a8fc1){return _0x528101(_0x1a8fc1,_0x17cda9-0x39b);}const _0x3bca78=_0x211f58['flipY']!==undefined&&_0x211f58['flipY']!==this[_0x577bbe(-0x1ea,-0x15d)][_0xc17c21(0x397,0x3d0)];this[_0xc17c21(0x398,0x385)]=deepMerge(_0x211f58,this['options']),_0x3bca78&&this[_0xc17c21(0x3e6,0x40a)]();}[_0x528101(-0x8e,-0x86)](_0xddc9){const {array:_0x1876b9}=_0xddc9;function _0x1c8357(_0x360447,_0x473bbb){return _0x4c63d2(_0x360447-0x49d,_0x473bbb);}let {min:_0x39f5eb,max:_0x359123}=_0xddc9;function _0x3c8d16(_0x53d2a9,_0x38afda){return _0x4c63d2(_0x53d2a9- -0x1e5,_0x38afda);}const _0x4389b4=new Float32Array(_0x1876b9['length']);_0x39f5eb===undefined&&(console[_0x1c8357(0x405,0x397)]('min\x20is\x20undefined,\x20calculate\x20min'),_0x39f5eb=Math[_0x1c8357(0x45a,0x44a)](..._0x1876b9));_0x359123===undefined&&(console[_0x3c8d16(-0x27d,-0x2f3)](_0x3c8d16(-0x189,-0x176)),_0x359123=Math['max'](..._0x1876b9));const _0x139ad9=Math['max'](Math[_0x1c8357(0x470,0x49a)](_0x39f5eb),Math['abs'](_0x359123));for(let _0x28e928=0x0;_0x28e928<_0x1876b9['length'];_0x28e928++){const _0x51fe50=_0x1876b9[_0x28e928]/_0x139ad9;_0x4389b4[_0x28e928]=_0x51fe50;}return _0x4389b4;}[_0x4c63d2(0x2b,-0x5d)](){function _0x5419ff(_0xf1d9b2,_0x457fbd){return _0x528101(_0x457fbd,_0xf1d9b2-0x71);}Object['values'](this['windTextures'])['forEach'](_0x4d8d64=>_0x4d8d64['destroy']()),Object[_0x5419ff(0x9,-0x60)](this['particlesTextures'])['forEach'](_0x1ad614=>_0x1ad614['destroy']()),Object['values'](this[_0x5419ff(-0x23,0x28)])['forEach'](_0x29f5c8=>_0x29f5c8['destroy']());function _0xdf4ce6(_0x1a22de,_0x37bf65){return _0x4c63d2(_0x1a22de-0x154,_0x37bf65);}this['frameRateMonitor']['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x1f26eb,_0x27c8ec,_0x2929d7,_0x5365b0){this['context']=_0x1f26eb;function _0x404e5a(_0xae62c8,_0x751be6){return _0x528101(_0x751be6,_0xae62c8-0x26b);}this['options']=_0x27c8ec;function _0x5d5a1c(_0x2df1ad,_0x344df2){return _0x528101(_0x2df1ad,_0x344df2- -0x19e);}this['viewerParameters']=_0x2929d7,this[_0x404e5a(0x251,0x20b)]=_0x5365b0,(typeof this['options'][_0x5d5a1c(-0x165,-0x1cd)]!==_0x5d5a1c(-0x1d7,-0x162)||this[_0x5d5a1c(-0x124,-0x1a1)]['particlesTextureSize']<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x404e5a(0x268,0x1dd)]['particlesTextureSize']=0x100),this[_0x404e5a(0x1f9,0x182)]=this[_0x5d5a1c(-0x15a,-0x1b2)](),this[_0x404e5a(0x29e,0x2b5)]=this['createRenderingTextures'](),this['framebuffers']=this[_0x404e5a(0x281,0x2fa)](),this['primitives']=this[_0x5d5a1c(-0x224,-0x1e2)]();}[_0x4c63d2(-0x5a,-0x8a)](){const _0x55d9f1={};function _0x3cf78a(_0x4b3d7a,_0x541f93){return _0x528101(_0x4b3d7a,_0x541f93- -0x133);}_0x55d9f1['context']=this['context'],_0x55d9f1['width']=this['context'][_0x4ade67(0x2bb,0x26f)],_0x55d9f1[_0x4ade67(0x2cc,0x30f)]=this['context']['drawingBufferHeight'],_0x55d9f1['pixelFormat']=PixelFormat[_0x4ade67(0x232,0x283)],_0x55d9f1[_0x4ade67(0x28f,0x276)]=PixelDatatype[_0x3cf78a(-0x207,-0x1fa)];const _0x4a98b8=_0x55d9f1,_0x33acb6={};_0x33acb6['context']=this['context'],_0x33acb6['width']=this['context'][_0x4ade67(0x300,0x26f)],_0x33acb6[_0x4ade67(0x37c,0x30f)]=this['context']['drawingBufferHeight'],_0x33acb6['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x33acb6[_0x4ade67(0x2d7,0x276)]=PixelDatatype['UNSIGNED_INT'];const _0x18c4e8=_0x33acb6;function _0x4ade67(_0x263c88,_0x2d1007){return _0x4c63d2(_0x2d1007-0x31c,_0x263c88);}return{'segmentsColor':new Texture(_0x4a98b8),'segmentsDepth':new Texture(_0x18c4e8)};}['createRenderingFramebuffers'](){const _0x401fb2={};_0x401fb2['context']=this[_0x1a6312(-0x24c,-0x28c)];function _0x1a6312(_0x1a0d37,_0x415bd1){return _0x528101(_0x415bd1,_0x1a0d37- -0x178);}return _0x401fb2['colorTextures']=[this['textures']['segmentsColor']],_0x401fb2['depthTexture']=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x401fb2)};}[_0x528101(0xb2,0x3a)](){function _0x217374(_0x2994a3,_0x1c398f){return _0x4c63d2(_0x2994a3-0x3dc,_0x1c398f);}function _0x1b2909(_0x10060c,_0x169f6a){return _0x528101(_0x169f6a,_0x10060c-0x360);}Object[_0x217374(0x390,0x3ba)](this['framebuffers'])[_0x1b2909(0x2aa,0x25f)](_0x2039aa=>{function _0x18a705(_0xaccb2e,_0x535b10){return _0x217374(_0xaccb2e- -0x36b,_0x535b10);}_0x2039aa[_0x18a705(0x9c,0xa0)]();});}['createColorTableTexture'](){const _0x310acc=new Float32Array(this['options'][_0x19f6a1(-0x1a2,-0x131)][_0x20c72e(0x5a,-0x30)](_0x498bc2=>{function _0x4ba581(_0x5c87b4,_0x399f50){return _0x19f6a1(_0x5c87b4,_0x399f50-0x4a1);}function _0x513439(_0x7e08df,_0x98c4e3){return _0x19f6a1(_0x7e08df,_0x98c4e3-0x512);}const _0x578148=Color$1[_0x4ba581(0x29e,0x317)](_0x498bc2);return[_0x578148['red'],_0x578148['green'],_0x578148[_0x513439(0x388,0x3ac)],_0x578148['alpha']];})),_0x4f80a3={};_0x4f80a3['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x4f80a3['magnificationFilter']=TextureMagnificationFilter[_0x20c72e(-0x1c,0x69)];function _0x19f6a1(_0x3caa1e,_0x28d0ee){return _0x528101(_0x3caa1e,_0x28d0ee- -0xfd);}_0x4f80a3[_0x19f6a1(-0x183,-0xef)]=TextureWrap['CLAMP_TO_EDGE'],_0x4f80a3['wrapT']=TextureWrap['CLAMP_TO_EDGE'];function _0x20c72e(_0x21fac9,_0xa5f617){return _0x4c63d2(_0xa5f617-0x2c,_0x21fac9);}return new Texture({'context':this[_0x20c72e(-0xa4,-0x8c)],'width':this['options']['colors'][_0x20c72e(0x18,0x17)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x4f80a3),'source':{'width':this[_0x19f6a1(-0x88,-0x100)]['colors'][_0x20c72e(-0x62,0x17)],'height':0x1,'arrayBufferView':_0x310acc}});}['createSegmentsGeometry'](){const _0x84a303=0x4,_0x598950=this['options'][_0x277b8e(-0x1db,-0x148)];let _0x23ae85=[];for(let _0x4fb0aa=0x0;_0x4fb0aa<_0x598950;_0x4fb0aa++){for(let _0x105a50=0x0;_0x105a50<_0x598950;_0x105a50++){for(let _0x1d43e1=0x0;_0x1d43e1<_0x84a303;_0x1d43e1++){_0x23ae85['push'](_0x4fb0aa/_0x598950),_0x23ae85[_0x2be9ed(0x461,0x4e8)](_0x105a50/_0x598950);}}}_0x23ae85=new Float32Array(_0x23ae85);const _0x2d2bd0=this['options'][_0x2be9ed(0x44b,0x4c6)]**0x2;let _0x1519d7=[];for(let _0x40fef2=0x0;_0x40fef2<_0x2d2bd0;_0x40fef2++){_0x1519d7[_0x277b8e(-0x17f,-0x126)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}function _0x277b8e(_0x145679,_0xd9e174){return _0x528101(_0x145679,_0xd9e174- -0x119);}_0x1519d7=new Float32Array(_0x1519d7);let _0x29f126=[];for(let _0x1d116c=0x0,_0x5472cf=0x0;_0x1d116c<_0x2d2bd0;_0x1d116c++){_0x29f126[_0x2be9ed(0x4c3,0x4e8)](_0x5472cf+0x0,_0x5472cf+0x1,_0x5472cf+0x2,_0x5472cf+0x2,_0x5472cf+0x1,_0x5472cf+0x3),_0x5472cf+=_0x84a303;}_0x29f126=new Uint32Array(_0x29f126);function _0x2be9ed(_0x43902d,_0x528a03){return _0x4c63d2(_0x528a03-0x4d9,_0x43902d);}const _0x4de17d={};_0x4de17d['componentDatatype']=ComponentDatatype['FLOAT'],_0x4de17d['componentsPerAttribute']=0x2,_0x4de17d[_0x2be9ed(0x46d,0x48d)]=_0x23ae85;const _0x3d7c3d={};_0x3d7c3d[_0x277b8e(-0x11b,-0x160)]=ComponentDatatype['FLOAT'],_0x3d7c3d['componentsPerAttribute']=0x3,_0x3d7c3d['values']=_0x1519d7;const _0x4eadb0=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x4de17d),'normal':new GeometryAttribute(_0x3d7c3d)}),'indices':_0x29f126});return _0x4eadb0;}[_0x4c63d2(-0xa,-0x11)](_0x4f7269){const _0x4078ea={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x4f7269};return Appearance['getDefaultRenderState'](!![],![],_0x4078ea);}['createPrimitives'](){const _0x5cb5d3={};_0x5cb5d3['st']=0x0,_0x5cb5d3['normal']=0x1;const _0x5bac24={};function _0x1ad5ad(_0x1f22d6,_0x2191aa){return _0x4c63d2(_0x2191aa-0x39a,_0x1f22d6);}_0x5bac24['enabled']=!![];const _0x4d0b3b={};_0x4d0b3b['enabled']=!![],_0x4d0b3b['blendEquation']=WebGLRenderingContext[_0x1ad5ad(0x439,0x3c7)],_0x4d0b3b['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x4d0b3b[_0x9f3e3d(0x269,0x1f2)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x144008={};_0x144008[_0x9f3e3d(0x239,0x233)]=undefined,_0x144008['depthTest']=_0x5bac24,_0x144008[_0x1ad5ad(0x308,0x2f6)]=!![],_0x144008[_0x9f3e3d(0x1a4,0x1d4)]=_0x4d0b3b;const _0x7fbbe2=new CustomPrimitive({'commandType':_0x9f3e3d(0x14e,0x1d3),'attributeLocations':_0x5cb5d3,'geometry':this[_0x1ad5ad(0x2f2,0x37a)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this[_0x1ad5ad(0x3e7,0x39c)][_0x1ad5ad(0x3a8,0x367)]['previousParticlesPosition'],'currentParticlesPosition':()=>this[_0x1ad5ad(0x3e1,0x39c)]['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x1ad5ad(0x36c,0x39c)][_0x9f3e3d(0x1a2,0x1dd)]['postProcessingPosition'],'particlesSpeed':()=>this[_0x1ad5ad(0x353,0x39c)]['particlesTextures'][_0x1ad5ad(0x427,0x3f4)],'frameRateAdjustment':()=>this[_0x9f3e3d(0x1af,0x212)]['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x323511(_0xd2920f,_0x4d7356){return _0x1ad5ad(_0xd2920f,_0x4d7356- -0x87);}var _0x429295,_0x598c8e;function _0x23a063(_0x232d17,_0x45e89c){return _0x9f3e3d(_0x45e89c,_0x232d17- -0x105);}const _0x23b1bf=new Cartesian2(((_0x429295=this[_0x23a063(0x124,0x17a)][_0x323511(0x221,0x290)])===null||_0x429295===void 0x0?void 0x0:_0x429295[_0x23a063(0xc8,0x10c)])??this[_0x323511(0x324,0x315)][_0x23a063(0x145,0xce)]['speed']['min'],((_0x598c8e=this['options']['domain'])===null||_0x598c8e===void 0x0?void 0x0:_0x598c8e['max'])??this['computing']['windData']['speed']['max']);return _0x23b1bf;},'displayRange':()=>{function _0x4f80c0(_0x46966a,_0x515674){return _0x9f3e3d(_0x515674,_0x46966a- -0x24b);}var _0x2336e0,_0x41b3b1;const _0x57c1ea=new Cartesian2(((_0x2336e0=this['options']['displayRange'])===null||_0x2336e0===void 0x0?void 0x0:_0x2336e0['min'])??this['computing']['windData'][_0xf55370(0x497,0x468)][_0x4f80c0(-0x7e,-0xd)],((_0x41b3b1=this['options']['displayRange'])===null||_0x41b3b1===void 0x0?void 0x0:_0x41b3b1[_0xf55370(0x3f6,0x3cd)])??this['computing']['windData']['speed'][_0x4f80c0(-0x81,-0x110)]);function _0xf55370(_0x1aeb73,_0xeee242){return _0x9f3e3d(_0xeee242,_0x1aeb73-0x22c);}return _0x57c1ea;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context'][_0x9f3e3d(0x16a,0x163)]/this['context'][_0x9f3e3d(0x24b,0x22d)],'pixelSize':()=>this[_0x1ad5ad(0x276,0x2ee)]['pixelSize'],'lineWidth':()=>{const _0x29efa3={};_0x29efa3['min']=0x1,_0x29efa3['max']=0x2;const _0x5d35c1=this[_0x487dbe(0x288,0x20c)]['lineWidth']||_0x29efa3;function _0x487dbe(_0x5b57b0,_0x567f4e){return _0x1ad5ad(_0x567f4e,_0x5b57b0- -0x12b);}function _0x5ad8d6(_0x31d12f,_0x448eb4){return _0x1ad5ad(_0x31d12f,_0x448eb4- -0x35f);}return new Cartesian2(_0x5d35c1['min'],_0x5d35c1[_0x5ad8d6(-0x8f,-0xb)]);},'lineLength':()=>{function _0x370953(_0x56845a,_0x707e35){return _0x9f3e3d(_0x707e35,_0x56845a- -0x8c);}const _0xabecfb={};_0xabecfb[_0x370953(0x141,0x14b)]=0x14;function _0x338ca1(_0x416695,_0x20b824){return _0x1ad5ad(_0x20b824,_0x416695- -0x246);}_0xabecfb[_0x370953(0x13e,0xf2)]=0x64;const _0x3821ac=this[_0x338ca1(0x16d,0x1d0)][_0x338ca1(0x101,0x11f)]||_0xabecfb;return new Cartesian2(_0x3821ac['min'],_0x3821ac['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x1ad5ad(0x3f3,0x3d5)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x9f3e3d(0x20b,0x206)](_0x144008)}),_0x265c01={};function _0x9f3e3d(_0x1fd3dd,_0x525341){return _0x4c63d2(_0x525341-0x210,_0x1fd3dd);}return _0x265c01['segments']=_0x7fbbe2,_0x265c01;}['onParticlesTextureSizeChange'](){const _0x27b117=this[_0x594ea5(0x481,0x462)]();this[_0x594ea5(0x429,0x424)]['segments']['geometry']=_0x27b117;const _0x296f40={};_0x296f40['context']=this['context'],_0x296f40['geometry']=_0x27b117;function _0x594ea5(_0xc9f9b1,_0x266d1b){return _0x4c63d2(_0xc9f9b1-0x4a1,_0x266d1b);}_0x296f40['attributeLocations']=this['primitives']['segments'][_0x3d5027(0x31d,0x30e)];function _0x3d5027(_0x4cc040,_0x55bec0){return _0x528101(_0x4cc040,_0x55bec0-0x2e5);}_0x296f40['bufferUsage']=BufferUsage[_0x3d5027(0x1ef,0x212)];const _0x3158be=VertexArray[_0x3d5027(0x285,0x240)](_0x296f40);this['primitives'][_0x3d5027(0x2b6,0x320)]['commandToExecute']&&(this['primitives'][_0x594ea5(0x4f8,0x504)][_0x594ea5(0x413,0x3eb)]['vertexArray']=_0x3158be);}['onColorTableChange'](){this['colorTable']['destroy']();function _0x216226(_0x215d4b,_0x40d00c){return _0x528101(_0x215d4b,_0x40d00c-0x21d);}this[_0x216226(0x1f0,0x1ab)]=this['createColorTableTexture']();}[_0x4c63d2(0x51,-0x1f)](_0x5e54e1){const _0x235fed=_0x5e54e1['colors']&&JSON[_0x4ecf42(0x4bd,0x54c)](_0x5e54e1[_0x553446(-0x1ee,-0x1ac)])!==JSON['stringify'](this['options']['colors']);function _0x4ecf42(_0x35af1a,_0x7eb04b){return _0x528101(_0x7eb04b,_0x35af1a-0x49a);}function _0x553446(_0x297ca2,_0x4d8e0){return _0x528101(_0x4d8e0,_0x297ca2- -0x1ba);}this['options']=deepMerge(_0x5e54e1,this['options']),_0x235fed&&this['onColorTableChange']();}['destroy'](){Object[_0x429889(0xe2,0x107)](this['framebuffers'])[_0x429889(0xa0,0xb9)](_0x1cc52d=>{_0x1cc52d['destroy']();}),Object['values'](this['primitives'])['forEach'](_0x57ac30=>{function _0x5cd0a0(_0xa3c901,_0x159c5e){return _0x429889(_0xa3c901,_0x159c5e-0x108);}_0x57ac30[_0x5cd0a0(0x2dc,0x286)]();});function _0x181450(_0x315926,_0x1a714a){return _0x4c63d2(_0x1a714a-0x33f,_0x315926);}function _0x429889(_0x41de7f,_0x21785d){return _0x528101(_0x41de7f,_0x21785d-0x16f);}this[_0x181450(0x2a8,0x2e9)][_0x429889(0x1c2,0x17e)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x36161,_0x4b5cde,_0x103193,_0x3a158d,_0x51fadb){this['context']=_0x36161;function _0x3856c2(_0x15469c,_0x5c2b3d){return _0x528101(_0x5c2b3d,_0x15469c-0x9c);}this['options']=_0x103193,this['viewerParameters']=_0x3a158d,this['computing']=new WindParticlesComputing(_0x36161,_0x4b5cde,_0x103193,_0x3a158d,_0x51fadb),this['rendering']=new WindParticlesRendering(_0x36161,_0x103193,_0x3a158d,this['computing']),this[_0x3856c2(0x9b,0xfa)]();}['getPrimitives'](){function _0xe38e40(_0x2e327d,_0x3b919a){return _0x4c63d2(_0x2e327d-0x201,_0x3b919a);}const _0x202b50=[this['computing'][_0xe38e40(0x189,0x1d1)]['calculateSpeed'],this['computing'][_0xe38e40(0x189,0x206)][_0x4bf1e9(0x44f,0x479)],this[_0xe38e40(0x203,0x20b)]['primitives']['postProcessingPosition'],this[_0x4bf1e9(0x465,0x3f0)][_0xe38e40(0x189,0x1d6)]['segments']];function _0x4bf1e9(_0x4a60e6,_0x224a4b){return _0x528101(_0x224a4b,_0x4a60e6-0x506);}return _0x202b50;}['clearFramebuffers'](){function _0x4649fa(_0x1230a1,_0x6a3bf2){return _0x4c63d2(_0x1230a1-0x12c,_0x6a3bf2);}const _0x180a14=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0xa167bf(_0x44669f,_0x47c535){return _0x528101(_0x44669f,_0x47c535-0x198);}Object[_0x4649fa(0x194,0x17c)](this['rendering'][_0xa167bf(0x142,0x165)])['forEach'](_0x3f05d0=>{function _0x4f59e6(_0x417d37,_0x39375a){return _0x4649fa(_0x417d37-0xd,_0x39375a);}function _0x1ba9b5(_0x4fd1c3,_0x1ab56){return _0xa167bf(_0x4fd1c3,_0x1ab56- -0xe4);}_0x180a14['framebuffer']=this[_0x4f59e6(0xb4,0xd7)]['framebuffers'][_0x3f05d0],_0x180a14['execute'](this[_0x1ba9b5(-0x58,-0x20)]);});}['changeOptions'](_0x2c0cc9){let _0x480997=![];_0x2c0cc9['particlesTextureSize']&&this['options'][_0x51688f(-0x200,-0x235)]!==_0x2c0cc9['particlesTextureSize']&&(_0x480997=!![]);function _0x3655fe(_0x508274,_0x5f4372){return _0x528101(_0x5f4372,_0x508274- -0xb8);}const _0x29a353=deepMerge(_0x2c0cc9,this['options']);if(_0x29a353[_0x3655fe(-0xe7,-0x8a)]<0x1)throw new Error(_0x51688f(-0x209,-0x224));this[_0x51688f(-0x27e,-0x209)]=_0x29a353,this[_0x51688f(-0x324,-0x2a7)]['updateOptions'](_0x2c0cc9),this['computing'][_0x3655fe(-0x83,-0x17)](_0x2c0cc9);function _0x51688f(_0x20fc5c,_0x23b72c){return _0x4c63d2(_0x23b72c- -0x222,_0x20fc5c);}_0x480997&&(this['computing'][_0x51688f(-0x31b,-0x2be)](),this['computing'][_0x51688f(-0x1ec,-0x244)](),this['rendering']['onParticlesTextureSizeChange']());}[_0x4c63d2(0x60,0xab)](_0x48d28e){function _0x4f4a59(_0x3f4206,_0x13b321){return _0x528101(_0x13b321,_0x3f4206-0x3da);}this['viewerParameters']=_0x48d28e;function _0x15d9c3(_0x110833,_0x6e06d9){return _0x528101(_0x6e06d9,_0x110833-0x1df);}this[_0x15d9c3(0x1c5,0x212)][_0x15d9c3(0x117,0x122)]=_0x48d28e,this[_0x4f4a59(0x339,0x39a)][_0x15d9c3(0x117,0xfa)]=_0x48d28e;}['destroy'](){function _0x35d3ac(_0x53126e,_0x156274){return _0x4c63d2(_0x156274-0x170,_0x53126e);}function _0x22f0af(_0xdab1fd,_0x375d18){return _0x528101(_0x375d18,_0xdab1fd- -0xa5);}this[_0x22f0af(-0xbf,-0xd1)]['destroy'](),this['rendering'][_0x35d3ac(0x1d9,0x19b)]();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x321d6b={};_0x321d6b[_0x4c63d2(-0x43,-0x14)]=0x1,_0x321d6b[_0x528101(-0x61,-0x62)]=0x2;const _0x56dec1={};_0x56dec1['min']=0x14,_0x56dec1['max']=0x64;const _0x50b030={};_0x50b030['particlesTextureSize']=0x64,_0x50b030['fixedHeight']=0x0,_0x50b030['lineWidth']=_0x321d6b,_0x50b030['lineLength']=_0x56dec1,_0x50b030['speedFactor']=0x1,_0x50b030['dropRate']=0.003,_0x50b030['dropRateBump']=0.001,_0x50b030[_0x528101(-0x6e,-0x34)]=['rgb(206,255,255)'],_0x50b030['flipY']=![],_0x50b030[_0x528101(-0xdb,-0x89)]=!![];const DEF_OPTIONS=_0x50b030;class WindLayer extends BaseLayer$1{constructor(_0x4bf973={}){_0x4bf973={...DEF_OPTIONS,..._0x4bf973},super(_0x4bf973),this['_setOptionsHook'](_0x4bf973,_0x4bf973);}get['layer'](){return this['primitives'];}get['data'](){function _0x4e421d(_0x27137c,_0x2f69ab){return _0x4c63d2(_0x27137c-0x495,_0x2f69ab);}function _0x521f6d(_0x169b6c,_0x2c975f){return _0x528101(_0x2c975f,_0x169b6c-0x244);}return this[_0x521f6d(0x241,0x1b8)][_0x521f6d(0x1e8,0x185)];}set['data'](_0x58bb9e){this[_0x5e4da9(-0x1b0,-0x17a)]['data']=_0x58bb9e;function _0x5e4da9(_0x5261ec,_0x12415f){return _0x528101(_0x5261ec,_0x12415f- -0x177);}function _0x5c9c2d(_0x1e9be9,_0xc995b4){return _0x528101(_0xc995b4,_0x1e9be9-0x12a);}this[_0x5e4da9(-0x103,-0x16e)](_0x58bb9e);}get[_0x528101(0x6,-0x34)](){return this['options']['colors'];}set['colors'](_0x436e08){this['options']['colors']=_0x436e08;const _0x3b9a60={};_0x3b9a60['colors']=_0x436e08,this['_setOptionsHook'](this['options'],_0x3b9a60);}['_mountedHook'](){}['_addedHook'](){this['scene']=this[_0x3d4d5e(0x197,0x139)]['scene'],this['camera']=this[_0x3d4d5e(0x197,0x1cf)][_0x3fe26d(-0x189,-0x147)];this[_0x3d4d5e(0x247,0x1f7)]['data']&&this['setData'](this['options']['data']);if(!this['windData'])return;this[_0x3d4d5e(0x182,0x10e)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x3d4d5e(0x1f4,0x1d4)][_0x3fe26d(-0x220,-0x2a9)]};function _0x3d4d5e(_0x5c26f5,_0x3b7973){return _0x4c63d2(_0x5c26f5-0x22e,_0x3b7973);}this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this[_0x3d4d5e(0x268,0x258)],this[_0x3d4d5e(0x247,0x1bf)],this['viewerParameters'],this['scene']);function _0x3fe26d(_0x37b2a2,_0x17177d){return _0x4c63d2(_0x37b2a2- -0x1c9,_0x17177d);}this[_0x3d4d5e(0x1b6,0x196)]=this['particleSystem']['getPrimitives'](),this['primitives']['forEach'](_0x40513b=>{function _0x25f874(_0x502570,_0x166169){return _0x3d4d5e(_0x166169-0x336,_0x502570);}function _0x5973b5(_0x377158,_0x35ed5f){return _0x3d4d5e(_0x377158- -0x192,_0x35ed5f);}this[_0x5973b5(0x62,0xc6)][_0x5973b5(0x24,0x25)]['add'](_0x40513b);}),this['camera']['percentageChanged']=0.01,this['camera']['changed'][_0x3fe26d(-0x1ec,-0x1b9)](this['updateViewerParameters'][_0x3d4d5e(0x22b,0x19b)](this)),this[_0x3d4d5e(0x1f4,0x281)][_0x3d4d5e(0x298,0x2f5)]['addEventListener'](this[_0x3d4d5e(0x1af,0x22b)]['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters'][_0x3fe26d(-0x1cc,-0x15b)](this));}[_0x4c63d2(0x53,0xb6)](){function _0x26088c(_0x50ba45,_0x324626){return _0x4c63d2(_0x324626-0x15b,_0x50ba45);}this[_0x3c1e62(0x3e7,0x3b5)][_0x3c1e62(0x371,0x3ff)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),this['scene'][_0x3c1e62(0x411,0x401)]['removeEventListener'](this[_0x3c1e62(0x328,0x383)][_0x3c1e62(0x3a4,0x359)](this)),window['removeEventListener']('resize',this['updateViewerParameters'][_0x3c1e62(0x3a4,0x3ee)](this));function _0x3c1e62(_0x29d131,_0x7798f5){return _0x4c63d2(_0x29d131-0x3a7,_0x7798f5);}this[_0x3c1e62(0x32f,0x2ca)]&&(this['primitives']['forEach'](_0x2edc3b=>{function _0x9a11e5(_0x56c9b0,_0x33b61a){return _0x26088c(_0x56c9b0,_0x33b61a- -0x247);}function _0x236ba0(_0x1331c5,_0x1324f8){return _0x3c1e62(_0x1324f8-0x18b,_0x1331c5);}this[_0x236ba0(0x56e,0x4f8)]['primitives'][_0x236ba0(0x56e,0x511)](_0x2edc3b);}),delete this['primitives']),this['particleSystem']&&(this['particleSystem']['destroy'](),delete this['particleSystem']);}['setData'](_0x2dec37,_0x5a04bb){this[_0x249851(-0x24b,-0x1b9)]=this[_0x249851(-0x2b9,-0x25d)](_0x2dec37);if(_0x5a04bb){this['_removedHook'](),this['_addedHook']();return;}function _0x4493ee(_0x441eda,_0x30b14a){return _0x4c63d2(_0x441eda-0x2af,_0x30b14a);}function _0x249851(_0x257c65,_0x27ee19){return _0x4c63d2(_0x27ee19- -0x1f3,_0x257c65);}this[_0x249851(-0x227,-0x288)]?(this[_0x4493ee(0x21a,0x19d)]['computing'][_0x4493ee(0x256,0x1cf)](this['windData']),this[_0x249851(-0x247,-0x22d)]['requestRender']()):this[_0x4493ee(0x207,0x1bc)]();}['_setOptionsHook'](_0x5e3e41,_0x557df8){function _0x313a3e(_0x514ae3,_0x25b486){return _0x4c63d2(_0x514ae3-0x2b,_0x25b486);}this[_0x313a3e(-0x6a,-0x10)]&&(this['particleSystem']['changeOptions'](_0x557df8),this['scene']['requestRender']());}[_0x4c63d2(-0x6a,-0xda)](_0x1a2ff6){function _0x2474c4(_0x17eb78,_0x38f9ee){return _0x528101(_0x38f9ee,_0x17eb78-0x4aa);}function _0x545cdb(_0x4a611f,_0x30eff8){return _0x528101(_0x4a611f,_0x30eff8- -0xb3);}var _0x3446bd,_0x3ce4e4;const _0x8ccb36={..._0x1a2ff6},_0x4d465c=_0x8ccb36;!_0x4d465c['height']&&_0x4d465c['rows']&&(_0x4d465c[_0x2474c4(0x481,0x486)]=_0x4d465c[_0x2474c4(0x403,0x445)]);!_0x4d465c[_0x545cdb(-0x38,-0x9f)]&&_0x4d465c['cols']&&(_0x4d465c['width']=_0x4d465c[_0x545cdb(-0xf7,-0xf4)]);!_0x4d465c[_0x545cdb(-0x128,-0x16c)]&&(_0x4d465c[_0x545cdb(-0xe9,-0x16c)]={'west':_0x4d465c['xmin'],'south':_0x4d465c[_0x2474c4(0x425,0x3a4)],'east':_0x4d465c[_0x2474c4(0x49b,0x45a)],'north':_0x4d465c[_0x545cdb(-0x1cf,-0x188)]});if(!_0x4d465c['u']){const _0x4cb5b5={};_0x4cb5b5['array']=_0x1a2ff6['udata'],_0x4cb5b5[_0x545cdb(-0x192,-0x112)]=_0x1a2ff6[_0x2474c4(0x3df,0x370)],_0x4cb5b5['max']=_0x1a2ff6['umax'],_0x4d465c['u']=_0x4cb5b5;}if(!_0x4d465c['v']){const _0x175310={};_0x175310[_0x545cdb(-0x1fe,-0x17f)]=_0x1a2ff6['vdata'],_0x175310['min']=_0x1a2ff6[_0x2474c4(0x3fc,0x413)],_0x175310['max']=_0x1a2ff6['vmax'],_0x4d465c['v']=_0x175310;}if(((_0x3446bd=_0x4d465c['speed'])===null||_0x3446bd===void 0x0?void 0x0:_0x3446bd['min'])===undefined||((_0x3ce4e4=_0x4d465c[_0x545cdb(-0xfc,-0x74)])===null||_0x3ce4e4===void 0x0?void 0x0:_0x3ce4e4['max'])===undefined||_0x4d465c['speed'][_0x2474c4(0x3de,0x39e)]===undefined){const _0x12474a={'array':new Float32Array(_0x4d465c['u']['array'][_0x2474c4(0x479,0x500)]),'min':Number[_0x2474c4(0x4e7,0x496)],'max':Number[_0x545cdb(-0x130,-0xfd)]};for(let _0x3c5dce=0x0;_0x3c5dce<_0x4d465c['u']['array']['length'];_0x3c5dce++){_0x12474a['array'][_0x3c5dce]=Math[_0x545cdb(-0x6a,-0xeb)](_0x4d465c['u'][_0x545cdb(-0x12b,-0x17f)][_0x3c5dce]*_0x4d465c['u'][_0x545cdb(-0x1ab,-0x17f)][_0x3c5dce]+_0x4d465c['v'][_0x2474c4(0x3de,0x440)][_0x3c5dce]*_0x4d465c['v'][_0x545cdb(-0x13e,-0x17f)][_0x3c5dce]),_0x12474a[_0x2474c4(0x3de,0x3a4)][_0x3c5dce]!==0x0&&(_0x12474a['min']=Math['min'](_0x12474a['min'],_0x12474a['array'][_0x3c5dce]),_0x12474a[_0x545cdb(-0xea,-0x115)]=Math['max'](_0x12474a[_0x545cdb(-0xc8,-0x115)],_0x12474a['array'][_0x3c5dce]));}_0x4d465c['speed']=_0x12474a;}return _0x4d465c;}['updateViewerParameters'](){var _0x5ebbfa;const _0xdda3e9=this[_0x2395dc(-0x164,-0xd2)],_0x2d450c=_0xdda3e9[_0x2395dc(-0x178,-0x103)],_0x4026e9={};_0x4026e9['x']=0x0,_0x4026e9['y']=0x0;function _0x2395dc(_0x1502df,_0x4f0287){return _0x4c63d2(_0x4f0287- -0x98,_0x1502df);}const _0x6f620f={};_0x6f620f['x']=0x0,_0x6f620f['y']=_0x2d450c['clientHeight'];const _0x2593b2={};_0x2593b2['x']=_0x2d450c[_0x5d569e(-0x252,-0x1dc)],_0x2593b2['y']=0x0;const _0x27c197={};_0x27c197['x']=_0x2d450c['clientWidth'],_0x27c197['y']=_0x2d450c['clientHeight'];const _0x2eee4b=[_0x4026e9,_0x6f620f,_0x2593b2,_0x27c197];let _0x516593=0xb4,_0x481d03=-0xb4,_0x119e89=0x5a,_0x4f01e4=-0x5a,_0x1d56a3=![];for(const _0x100444 of _0x2eee4b){const _0x2dc2a6=_0xdda3e9['camera']['pickEllipsoid'](new Cesium$1[(_0x2395dc(-0x114,-0xf0))](_0x100444['x'],_0x100444['y']),_0xdda3e9[_0x5d569e(-0x25d,-0x296)]['ellipsoid']);if(!_0x2dc2a6){_0x1d56a3=!![];break;}const _0x2ec69d=_0xdda3e9[_0x2395dc(-0x7f,-0x108)]['ellipsoid']['cartesianToCartographic'](_0x2dc2a6),_0x4f16b9=Cesium$1['Math']['toDegrees'](_0x2ec69d['longitude']),_0x2c0a77=Cesium$1[_0x2395dc(-0x122,-0xb1)]['toDegrees'](_0x2ec69d['latitude']);_0x516593=Math['min'](_0x516593,_0x4f16b9),_0x481d03=Math['max'](_0x481d03,_0x4f16b9),_0x119e89=Math[_0x5d569e(-0x24b,-0x269)](_0x119e89,_0x2c0a77),_0x4f01e4=Math['max'](_0x4f01e4,_0x2c0a77);}if(!_0x1d56a3){const _0xdb510f=new Cesium$1['Cartesian2'](Math['max'](this[_0x5d569e(-0x1d9,-0x1ec)]['bounds']['west'],_0x516593),Math['min'](this['windData'][_0x2395dc(-0xe2,-0x135)]['east'],_0x481d03)),_0x5dc57c=new Cesium$1[(_0x5d569e(-0x256,-0x27e))](Math['max'](this[_0x5d569e(-0x179,-0x1ec)]['bounds']['south'],_0x119e89),Math['min'](this[_0x5d569e(-0x208,-0x1ec)]['bounds']['north'],_0x4f01e4)),_0x2bc5a3=(_0xdb510f['y']-_0xdb510f['x'])*0.05,_0x2a6666=(_0x5dc57c['y']-_0x5dc57c['x'])*0.05;_0xdb510f['x']=Math['max'](this[_0x5d569e(-0x211,-0x1ec)][_0x2395dc(-0x114,-0x135)][_0x2395dc(-0x12b,-0x104)],_0xdb510f['x']-_0x2bc5a3),_0xdb510f['y']=Math['min'](this[_0x5d569e(-0x1ca,-0x1ec)][_0x2395dc(-0xbe,-0x135)][_0x5d569e(-0x1b6,-0x1ee)],_0xdb510f['y']+_0x2bc5a3),_0x5dc57c['x']=Math[_0x5d569e(-0x2a3,-0x26c)](this[_0x5d569e(-0x16e,-0x1ec)][_0x5d569e(-0x2c9,-0x2c3)][_0x2395dc(-0x13e,-0x141)],_0x5dc57c['x']-_0x2a6666),_0x5dc57c['y']=Math['min'](this['windData']['bounds']['north'],_0x5dc57c['y']+_0x2a6666),this['viewerParameters'][_0x5d569e(-0x31b,-0x2c9)]=_0xdb510f,this[_0x5d569e(-0x2b9,-0x2d2)][_0x2395dc(-0x1b3,-0x14d)]=_0x5dc57c;const _0x3b4288=this['windData']['bounds'][_0x5d569e(-0x235,-0x1ee)]-this['windData']['bounds']['west'],_0x463774=this[_0x2395dc(-0x5c,-0x5e)]['bounds']['north']-this['windData'][_0x2395dc(-0xd9,-0x135)][_0x2395dc(-0x1b8,-0x141)],_0x20b786=(_0xdb510f['y']-_0xdb510f['x'])/_0x3b4288,_0x471e11=(_0x5dc57c['y']-_0x5dc57c['x'])/_0x463774,_0x4c3948=Math['min'](_0x20b786,_0x471e11),_0x30d539=0x3e8*_0x4c3948;_0x30d539>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math[_0x2395dc(-0xfc,-0xdb)](0x3e8,_0x30d539)));}function _0x5d569e(_0x2059b7,_0xe79d72){return _0x4c63d2(_0xe79d72- -0x226,_0x2059b7);}this['viewerParameters']['sceneMode']=this['scene'][_0x5d569e(-0x253,-0x27d)],(_0x5ebbfa=this[_0x2395dc(-0x1a1,-0x12d)])===null||_0x5ebbfa===void 0x0||_0x5ebbfa[_0x2395dc(-0x34,-0x38)](this[_0x5d569e(-0x2f6,-0x2d2)]);}['getDataAtLonLat'](_0x62321a,_0x7e40b6){const {bounds:_0x31ffb3,width:_0x528402,height:_0x29fa63,u:_0x393861,v:_0x1c695d,speed:_0x34e607}=this['windData'],{flipY:_0x1b8dde}=this[_0x159633(0x519,0x49e)];if(_0x62321a<_0x31ffb3['west']||_0x62321a>_0x31ffb3['east']||_0x7e40b6<_0x31ffb3['south']||_0x7e40b6>_0x31ffb3['north'])return null;const _0x34d9e9=(_0x62321a-_0x31ffb3['west'])/(_0x31ffb3[_0x5797b1(0x81,0x76)]-_0x31ffb3['west'])*(_0x528402-0x1);let _0xe7bd96=(_0x7e40b6-_0x31ffb3[_0x159633(0x457,0x4cf)])/(_0x31ffb3['north']-_0x31ffb3['south'])*(_0x29fa63-0x1);_0x1b8dde&&(_0xe7bd96=_0x29fa63-0x1-_0xe7bd96);const _0x1e995f=Math[_0x5797b1(0x76,0x4e)](_0x34d9e9),_0x41f35f=Math[_0x5797b1(0x67,0x4e)](_0xe7bd96),_0x2e8265=Math[_0x5797b1(0x2e,0x4e)](_0x34d9e9),_0x3f1db6=Math[_0x5797b1(-0x69,-0x5)](_0x2e8265+0x1,_0x528402-0x1),_0x141afd=Math['floor'](_0xe7bd96),_0x50b0a3=Math['min'](_0x141afd+0x1,_0x29fa63-0x1),_0x3855a5=_0x34d9e9-_0x2e8265,_0x3864db=_0xe7bd96-_0x141afd,_0x24d1f0=_0x41f35f*_0x528402+_0x1e995f,_0x3fdea1=_0x141afd*_0x528402+_0x2e8265,_0x234724=_0x141afd*_0x528402+_0x3f1db6;function _0x5797b1(_0x151e3f,_0x4f52d2){return _0x528101(_0x151e3f,_0x4f52d2-0x5a);}const _0x1b3c05=_0x50b0a3*_0x528402+_0x2e8265,_0xeff6f9=_0x50b0a3*_0x528402+_0x3f1db6,_0x14e1f3=_0x393861[_0x5797b1(-0xc8,-0x72)][_0x3fdea1],_0x49eb29=_0x393861[_0x159633(0x450,0x4aa)][_0x234724],_0x8fe07b=_0x393861[_0x5797b1(0x12,-0x72)][_0x1b3c05],_0x382841=_0x393861['array'][_0xeff6f9],_0x4d55c4=(0x1-_0x3855a5)*(0x1-_0x3864db)*_0x14e1f3+_0x3855a5*(0x1-_0x3864db)*_0x49eb29+(0x1-_0x3855a5)*_0x3864db*_0x8fe07b+_0x3855a5*_0x3864db*_0x382841,_0x39e5f4=_0x1c695d[_0x159633(0x450,0x412)][_0x3fdea1],_0x5dae37=_0x1c695d[_0x159633(0x450,0x43f)][_0x234724],_0x10872d=_0x1c695d['array'][_0x1b3c05],_0x420770=_0x1c695d['array'][_0xeff6f9],_0x1060bb=(0x1-_0x3855a5)*(0x1-_0x3864db)*_0x39e5f4+_0x3855a5*(0x1-_0x3864db)*_0x5dae37+(0x1-_0x3855a5)*_0x3864db*_0x10872d+_0x3855a5*_0x3864db*_0x420770,_0x590e04=Math[_0x5797b1(-0x43,0x22)](_0x4d55c4*_0x4d55c4+_0x1060bb*_0x1060bb),_0x2b28cd={};_0x2b28cd['u']=_0x393861['array'][_0x24d1f0];function _0x159633(_0x58681d,_0x5a7a85){return _0x4c63d2(_0x58681d-0x500,_0x5a7a85);}_0x2b28cd['v']=_0x1c695d[_0x159633(0x450,0x449)][_0x24d1f0],_0x2b28cd['speed']=_0x34e607[_0x159633(0x450,0x3c3)][_0x24d1f0];const _0x46b13e={};_0x46b13e['u']=_0x4d55c4,_0x46b13e['v']=_0x1060bb,_0x46b13e[_0x159633(0x55b,0x5b8)]=_0x590e04;const _0x12db5a={};return _0x12db5a[_0x159633(0x4d9,0x486)]=_0x2b28cd,_0x12db5a[_0x159633(0x46c,0x46a)]=_0x46b13e,_0x12db5a;}}mars3d__namespace[_0x528101(-0x13,-0x6b)][_0x528101(0x1b,-0x37)](_0x4c63d2(-0x7d,-0xe8),WindLayer);function _0x4c63d2(_0x492d5a,_0x3db544){return _0x1e2b(_0x492d5a- -0x1ab,_0x3db544);}mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this[_0x1e9358(0xef,0x10e)]=null,this[_0x1e9358(0x151,0x1a0)]=null,this['tlng']=null,this['tlat']=null;function _0x1e9358(_0x3d6333,_0x4aa6ed){return _0x528101(_0x3d6333,_0x4aa6ed-0x1cb);}function _0x3df56c(_0x175bf4,_0xc991c0){return _0x4c63d2(_0x175bf4-0xd7,_0xc991c0);}this[_0x1e9358(0x175,0x1c2)]=null,this['speed']=null;}[_0x528101(-0x25,0xf)](){for(const _0x38cab9 in this){delete this[_0x38cab9];}}}class CanvasWindField{constructor(_0x111967){function _0x30598b(_0x185a99,_0x290e1c){return _0x4c63d2(_0x185a99-0x15a,_0x290e1c);}this[_0x30598b(0x12e,0xbf)](_0x111967);}get[_0x4c63d2(0x34,0x42)](){function _0x2f44b5(_0x1e5a31,_0x2e4b33){return _0x4c63d2(_0x1e5a31-0x532,_0x2e4b33);}return this[_0x2f44b5(0x4bd,0x53a)];}set[_0x4c63d2(0x34,0xa5)](_0x19c11e){function _0xa2856d(_0x1bb173,_0x3eafb4){return _0x4c63d2(_0x1bb173- -0x1a3,_0x3eafb4);}function _0x463807(_0x275ee7,_0x2fb519){return _0x4c63d2(_0x2fb519-0x26a,_0x275ee7);}this['_speedRate']=(0x64-(_0x19c11e>0x63?0x63:_0x19c11e))*0x64,this[_0xa2856d(-0x192,-0x134)]=[(this['xmax']-this['xmin'])/this[_0x463807(0x193,0x1f5)],(this['ymax']-this[_0x463807(0x17e,0x201)])/this[_0x463807(0x238,0x1f5)]];}get['maxAge'](){function _0x4a91d7(_0x1171ab,_0xa2cc1d){return _0x4c63d2(_0xa2cc1d-0x21a,_0x1171ab);}return this[_0x4a91d7(0x1e7,0x19c)];}set['maxAge'](_0x26243a){this['_maxAge']=_0x26243a;}['setOptions'](_0x230f82){function _0x761df3(_0x180df8,_0x5891be){return _0x528101(_0x5891be,_0x180df8-0x466);}this[_0x761df3(0x463,0x3fb)]=_0x230f82;function _0x397deb(_0x8ecae3,_0x23604a){return _0x528101(_0x23604a,_0x8ecae3- -0x10c);}this[_0x761df3(0x49e,0x531)]=_0x230f82['maxAge']||0x78,this[_0x397deb(-0xf4,-0xbb)]=_0x230f82['speedRate']||0x32,this['particles']=[];const _0x50eeaf=_0x230f82['particlesNumber']||0x1000;for(let _0x353aa4=0x0;_0x353aa4<_0x50eeaf;_0x353aa4++){const _0x3af1ea=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0x3af1ea);}}['setDate'](_0x48598b){this[_0x4e4bfc(-0x1ac,-0x1ba)]=_0x48598b['rows'],this['cols']=_0x48598b[_0x4e4bfc(-0x146,-0x167)],this['xmin']=_0x48598b[_0x4e4bfc(-0x102,-0xc1)],this[_0x4e4bfc(-0x114,-0xba)]=_0x48598b['xmax'],this['ymin']=_0x48598b['ymin'],this[_0x19dff7(0x347,0x30d)]=_0x48598b[_0x4e4bfc(-0x1da,-0x1f8)],this['grid']=[];const _0x3de19e=_0x48598b['udata'],_0x71c60f=_0x48598b[_0x19dff7(0x3b9,0x384)];function _0x4e4bfc(_0x411cab,_0x2109e7){return _0x4c63d2(_0x411cab- -0x121,_0x2109e7);}let _0x2a5df1=![];_0x3de19e['length']===this['rows']&&_0x3de19e[0x0]['length']===this['cols']&&(_0x2a5df1=!![]);let _0x3478b9=0x0;function _0x19dff7(_0x1a2dcc,_0x92a781){return _0x4c63d2(_0x92a781-0x3c6,_0x1a2dcc);}let _0x438aa6=null,_0x253026=null;for(let _0x4cf042=0x0;_0x4cf042<this[_0x19dff7(0x3a4,0x33b)];_0x4cf042++){_0x438aa6=[];for(let _0x135844=0x0;_0x135844<this[_0x4e4bfc(-0x146,-0x14c)];_0x135844++,_0x3478b9++){_0x2a5df1?_0x253026=this['_calcUV'](_0x3de19e[_0x4cf042][_0x135844],_0x71c60f[_0x4cf042][_0x135844]):_0x253026=this['_calcUV'](_0x3de19e[_0x3478b9],_0x71c60f[_0x3478b9]),_0x438aa6['push'](_0x253026);}this['grid'][_0x4e4bfc(-0x112,-0xe8)](_0x438aa6);}!this['options'][_0x4e4bfc(-0x109,-0x86)]&&this[_0x19dff7(0x3f8,0x3b2)]['reverse']();}['clear'](){function _0x6c15ae(_0x4a84eb,_0x1c437f){return _0x4c63d2(_0x1c437f- -0x9a,_0x4a84eb);}delete this['rows'];function _0x5be54c(_0x1bd351,_0x25d14a){return _0x4c63d2(_0x1bd351-0xd5,_0x25d14a);}delete this['cols'],delete this['xmin'],delete this[_0x5be54c(0xe2,0x82)],delete this['ymin'],delete this[_0x6c15ae(-0x19a,-0x153)],delete this['grid'],delete this['particles'];}[_0x4c63d2(-0x76,0x4)](_0x5aa90a,_0x2077f8){function _0x46ba08(_0x68f1bc,_0x4dab5f){return _0x528101(_0x68f1bc,_0x4dab5f- -0x67);}const _0x2e497d=(_0x5aa90a-this[_0x193919(0x534,0x4c3)])/(this[_0x46ba08(0x12,-0x76)]-this[_0x193919(0x53a,0x4c3)])*(this[_0x193919(0x426,0x47f)]-0x1);function _0x193919(_0x231074,_0x402cf6){return _0x528101(_0x231074,_0x402cf6-0x4c0);}const _0x1b79dc=(this['ymax']-_0x2077f8)/(this[_0x193919(0x46d,0x3eb)]-this[_0x193919(0x3ef,0x43b)])*(this['rows']-0x1);return[_0x2e497d,_0x1b79dc];}['getUVByXY'](_0x447288,_0x1b0013){function _0x48962c(_0x2c9012,_0x3cd71d){return _0x528101(_0x2c9012,_0x3cd71d-0x2eb);}if(_0x447288<0x0||_0x447288>=this[_0x48962c(0x296,0x2aa)]||_0x1b0013>=this[_0x1db251(-0x26b,-0x230)])return[0x0,0x0,0x0];function _0x1db251(_0x9f9171,_0x5ae031){return _0x4c63d2(_0x5ae031- -0x1a5,_0x9f9171);}const _0x79df4a=Math['floor'](_0x447288),_0x57d53b=Math['floor'](_0x1b0013);if(_0x79df4a===_0x447288&&_0x57d53b===_0x1b0013)return this['grid'][_0x1b0013][_0x447288];const _0xa4da29=_0x79df4a+0x1,_0x4ac7fb=_0x57d53b+0x1,_0x49e462=this['getUVByXY'](_0x79df4a,_0x57d53b),_0x5edf32=this['getUVByXY'](_0xa4da29,_0x57d53b),_0xcc696c=this['getUVByXY'](_0x79df4a,_0x4ac7fb),_0x5e886d=this[_0x48962c(0x305,0x298)](_0xa4da29,_0x4ac7fb);let _0xa8f96b=null;try{_0xa8f96b=this[_0x1db251(-0x1ba,-0x244)](_0x447288-_0x79df4a,_0x1b0013-_0x57d53b,_0x49e462,_0x5edf32,_0xcc696c,_0x5e886d);}catch(_0x32d210){console['log'](_0x447288,_0x1b0013);}return _0xa8f96b;}['_bilinearInterpolation'](_0x2131aa,_0x3d855e,_0xf6b55,_0x502a98,_0x288e18,_0x45a71f){const _0x2504e6=0x1-_0x2131aa,_0x34b786=0x1-_0x3d855e,_0x1d7f49=_0x2504e6*_0x34b786,_0x1806ae=_0x2131aa*_0x34b786,_0x5abea8=_0x2504e6*_0x3d855e,_0x4c4532=_0x2131aa*_0x3d855e,_0x3f4bb3=_0xf6b55[0x0]*_0x1d7f49+_0x502a98[0x0]*_0x1806ae+_0x288e18[0x0]*_0x5abea8+_0x45a71f[0x0]*_0x4c4532,_0x1b2e8b=_0xf6b55[0x1]*_0x1d7f49+_0x502a98[0x1]*_0x1806ae+_0x288e18[0x1]*_0x5abea8+_0x45a71f[0x1]*_0x4c4532;return this['_calcUV'](_0x3f4bb3,_0x1b2e8b);}[_0x4c63d2(-0x31,-0x37)](_0x2b6dda,_0x1a9ea2){function _0x13c349(_0x4514ef,_0x5190b3){return _0x4c63d2(_0x4514ef- -0x198,_0x5190b3);}return[+_0x2b6dda,+_0x1a9ea2,Math[_0x13c349(-0x1b4,-0x174)](_0x2b6dda*_0x2b6dda+_0x1a9ea2*_0x1a9ea2)];}['getUVByPoint'](_0x45bebd,_0x563fd5){if(!this['isInExtent'](_0x45bebd,_0x563fd5))return null;const _0x1463e1=this['toGridXY'](_0x45bebd,_0x563fd5),_0x16a129=this['getUVByXY'](_0x1463e1[0x0],_0x1463e1[0x1]);return _0x16a129;}['isInExtent'](_0x41a86a,_0xe702ca){function _0x5df5a5(_0x41746e,_0x51dd42){return _0x4c63d2(_0x51dd42-0x566,_0x41746e);}function _0x250126(_0x45ba78,_0x553b88){return _0x528101(_0x553b88,_0x45ba78-0x3da);}return _0x41a86a>=this['xmin']&&_0x41a86a<=this['xmax']&&_0xe702ca>=this[_0x250126(0x355,0x2c9)]&&_0xe702ca<=this[_0x250126(0x305,0x36c)]?!![]:![];}['getRandomLatLng'](){function _0x4e274b(_0xadbda0,_0x4d4a3b){return _0x528101(_0x4d4a3b,_0xadbda0-0x431);}function _0xce2de4(_0x56a1c4,_0x5e7356){return _0x528101(_0x5e7356,_0x56a1c4- -0x163);}const _0x171732=fRandomByfloat(this[_0x4e274b(0x434,0x495)],this[_0x4e274b(0x422,0x43a)]),_0x492ad2=fRandomByfloat(this['ymin'],this['ymax']),_0x504827={};return _0x504827['lat']=_0x492ad2,_0x504827[_0x4e274b(0x374,0x39d)]=_0x171732,_0x504827;}['getParticles'](){function _0x58e4e1(_0x213979,_0x4a5b86){return _0x528101(_0x4a5b86,_0x213979-0x42d);}let _0x26af90,_0xb7011d,_0xc74a39;function _0x4ab9e8(_0x110dd2,_0x5aeaca){return _0x4c63d2(_0x110dd2- -0x1ed,_0x5aeaca);}for(let _0x5d88a3=0x0,_0x2975eb=this[_0x58e4e1(0x3bc,0x348)]['length'];_0x5d88a3<_0x2975eb;_0x5d88a3++){let _0x383227=this[_0x58e4e1(0x3bc,0x43c)][_0x5d88a3];_0x383227['age']<=0x0&&(_0x383227=this[_0x4ab9e8(-0x28b,-0x221)](_0x383227));if(_0x383227['age']>0x0){const _0xd0899f=_0x383227[_0x4ab9e8(-0x1fd,-0x213)],_0x33127d=_0x383227[_0x4ab9e8(-0x1a9,-0x19a)];_0xc74a39=this['getUVByPoint'](_0xd0899f,_0x33127d),_0xc74a39?(_0x26af90=_0xd0899f+this['_calc_speedRate'][0x0]*_0xc74a39[0x0],_0xb7011d=_0x33127d+this['_calc_speedRate'][0x1]*_0xc74a39[0x1],_0x383227['lng']=_0xd0899f,_0x383227[_0x4ab9e8(-0x1fc,-0x24f)]=_0x33127d,_0x383227['tlng']=_0x26af90,_0x383227[_0x4ab9e8(-0x1a9,-0x20b)]=_0xb7011d,_0x383227['speed']=_0xc74a39[0x2],_0x383227[_0x4ab9e8(-0x1da,-0x1a6)]--):_0x383227['age']=0x0;}}return this[_0x58e4e1(0x3bc,0x44f)];}['_randomParticle'](_0x3cf3d9){let _0x4d0f8a,_0x12965c;for(let _0x1325d1=0x0;_0x1325d1<0x1e;_0x1325d1++){_0x4d0f8a=this['getRandomLatLng'](),_0x12965c=this[_0x3ccd20(0x206,0x26a)](_0x4d0f8a[_0x3ccd20(0x1c8,0x217)],_0x4d0f8a['lat']);if(_0x12965c&&_0x12965c[0x2]>0x0)break;}if(!_0x12965c)return _0x3cf3d9;function _0x2b33fe(_0x654550,_0x24aa47){return _0x4c63d2(_0x24aa47- -0x1b0,_0x654550);}function _0x3ccd20(_0xa0b010,_0x3136c0){return _0x4c63d2(_0xa0b010-0x269,_0x3136c0);}const _0x42dfec=_0x4d0f8a[_0x3ccd20(0x1c8,0x1a7)]+this['_calc_speedRate'][0x0]*_0x12965c[0x0],_0x3eaf88=_0x4d0f8a[_0x2b33fe(-0x24a,-0x1bf)]+this['_calc_speedRate'][0x1]*_0x12965c[0x1];return _0x3cf3d9['lng']=_0x4d0f8a['lng'],_0x3cf3d9[_0x2b33fe(-0x1dc,-0x1bf)]=_0x4d0f8a[_0x2b33fe(-0x20e,-0x1bf)],_0x3cf3d9['tlng']=_0x42dfec,_0x3cf3d9['tlat']=_0x3eaf88,_0x3cf3d9[_0x3ccd20(0x27c,0x30f)]=Math[_0x3ccd20(0x27e,0x272)](0xa+Math['random']()*this['maxAge']),_0x3cf3d9['speed']=_0x12965c[0x2],_0x3cf3d9;}['destroy'](){for(const _0x708768 in this){delete this[_0x708768];}}}function _0x1e2b(_0x4ceeb6,_0x36eb78){const _0x39cae1=_0x39ca();return _0x1e2b=function(_0x1e2bc8,_0x348bb1){_0x1e2bc8=_0x1e2bc8-0xf2;let _0x36f6cb=_0x39cae1[_0x1e2bc8];return _0x36f6cb;},_0x1e2b(_0x4ceeb6,_0x36eb78);}function fRandomByfloat(_0x54abd3,_0x40013a){function _0x27e793(_0x52cd61,_0x4da520){return _0x4c63d2(_0x52cd61-0x2f6,_0x4da520);}return _0x54abd3+Math[_0x27e793(0x245,0x1f7)]()*(_0x40013a-_0x54abd3);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer'][_0x528101(0x56,0x34)];class CanvasWindLayer extends BaseLayer{constructor(_0xbd8bd7={}){super(_0xbd8bd7),this['_setOptionsHook'](_0xbd8bd7),this['canvas']=null,_0xbd8bd7['colors']&&_0xbd8bd7['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0xbd8bd7));}['_setOptionsHook'](_0x146022,_0x42a07b){this[_0x3c1fa0(-0x17c,-0x1f3)]=0x3e8/(_0x146022[_0x3c1fa0(-0x138,-0x1b5)]||0xa);function _0xa75c3c(_0x22bdfb,_0x56dbd8){return _0x528101(_0x22bdfb,_0x56dbd8- -0x107);}this['_pointerEvents']=this[_0xa75c3c(-0xef,-0x10a)]['pointerEvents']??![],this['color']=_0x146022['color']||'#ffffff',this[_0xa75c3c(-0x112,-0x18b)]=_0x146022['lineWidth']||0x1;function _0x3c1fa0(_0x4900de,_0x57df7c){return _0x4c63d2(_0x4900de- -0x17f,_0x57df7c);}this[_0x3c1fa0(-0x1b8,-0x228)]=_0x146022[_0xa75c3c(-0xf6,-0x15c)]??0x0,this[_0x3c1fa0(-0x167,-0x1b1)]=_0x146022['flipY']??![],this[_0x3c1fa0(-0x18d,-0x1cf)]&&this[_0xa75c3c(-0xc0,-0x131)][_0xa75c3c(-0x10a,-0x14f)](_0x146022);}get[_0x4c63d2(0x14,-0x4c)](){return this['canvas'];}get[_0x528101(-0x11,-0x8e)](){function _0x2f055f(_0x11af44,_0x4abc35){return _0x528101(_0x4abc35,_0x11af44- -0xc2);}return this['_map']['scene']['canvas'][_0x2f055f(-0x94,-0xad)];}get['canvasHeight'](){function _0x328a52(_0x11e4a3,_0x2cf599){return _0x4c63d2(_0x2cf599-0x52d,_0x11e4a3);}return this['_map']['scene']['canvas'][_0x328a52(0x4fb,0x57f)];}get[_0x528101(-0xd0,-0x6d)](){function _0x429838(_0x10a9a2,_0xefa1fe){return _0x4c63d2(_0xefa1fe- -0x10d,_0x10a9a2);}return this[_0x429838(-0x1c7,-0x173)];}set['pointerEvents'](_0x1eabab){this[_0x11a7bd(0x189,0x20e)]=_0x1eabab;function _0x11a7bd(_0x43ccef,_0x250bce){return _0x528101(_0x250bce,_0x43ccef-0x20b);}if(!this['canvas'])return;function _0x1af477(_0x2b9b3a,_0x160ad1){return _0x528101(_0x2b9b3a,_0x160ad1-0x3d4);}_0x1eabab?this['canvas'][_0x11a7bd(0x1c6,0x14f)]['pointer-events']='all':this[_0x11a7bd(0x184,0x130)]['style']['pointer-events']='none';}get[_0x4c63d2(-0x91,-0x1f)](){return this['options']['particlesNumber'];}set['particlesNumber'](_0xd20590){this['options'][_0xbfe5aa(0x14e,0x177)]=_0xd20590;function _0x140115(_0x2bf8eb,_0x2eee83){return _0x4c63d2(_0x2eee83- -0x3f,_0x2bf8eb);}clearTimeout(this[_0x140115(-0x58,0x9)]);function _0xbfe5aa(_0x366bc8,_0x4e8283){return _0x4c63d2(_0x4e8283-0x208,_0x366bc8);}this[_0x140115(-0x61,0x9)]=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){return this['options']['speedRate'];}set[_0x4c63d2(0x34,0x35)](_0x553221){function _0x163d44(_0x4453b0,_0x45f3e3){return _0x528101(_0x4453b0,_0x45f3e3-0x38);}this['options'][_0x5c158d(0x469,0x45b)]=_0x553221;function _0x5c158d(_0xd663c4,_0x5beb9c){return _0x528101(_0xd663c4,_0x5beb9c-0x443);}this[_0x5c158d(0x476,0x419)]&&(this['windField'][_0x5c158d(0x4d4,0x45b)]=_0x553221);}get[_0x4c63d2(0x54,-0x9)](){return this['options']['maxAge'];}set[_0x528101(0x4f,0x38)](_0x1e6cb5){this['options']['maxAge']=_0x1e6cb5;function _0x568d64(_0x4683aa,_0x31cde0){return _0x4c63d2(_0x31cde0-0x426,_0x4683aa);}this[_0x568d64(0x4a7,0x418)]&&(this['windField']['maxAge']=_0x1e6cb5);}get['data'](){return this['windData'];}set['data'](_0xcf63b4){this['setData'](_0xcf63b4);}get['rectangle'](){let _0xcdc1ae=this['windData']['xmin'],_0x39db36=this[_0x194506(0x2af,0x2d2)][_0x4bb9c1(0x430,0x44d)];function _0x4bb9c1(_0x57e8b3,_0x267ea0){return _0x4c63d2(_0x57e8b3-0x423,_0x267ea0);}let _0x2b9e2d=this[_0x4bb9c1(0x45d,0x419)]['ymin'],_0x85433c=this[_0x194506(0x2af,0x23b)][_0x4bb9c1(0x36a,0x2fa)];_0x39db36>=0x167&&_0xcdc1ae===0x0&&(_0xcdc1ae=-0xb4,_0x39db36=0xb4);function _0x194506(_0x535a5e,_0x435d8d){return _0x4c63d2(_0x535a5e-0x275,_0x435d8d);}return _0xcdc1ae=Math[_0x4bb9c1(0x3dd,0x3e3)](_0xcdc1ae,-0xb4),_0x39db36=Math['min'](_0x39db36,0xb4),_0x2b9e2d=Math['max'](_0x2b9e2d,-0x5a),_0x85433c=Math['min'](_0x85433c,0x5a),Cesium['Rectangle'][_0x4bb9c1(0x3b0,0x391)](_0xcdc1ae,_0x2b9e2d,_0x39db36,_0x85433c);}['_showHook'](_0x561138){function _0x1f0d94(_0x5b7e4d,_0x165e48){return _0x528101(_0x5b7e4d,_0x165e48-0x53e);}function _0x117e8e(_0x427104,_0x2126f2){return _0x528101(_0x2126f2,_0x427104-0x43e);}_0x561138?this['_addedHook']():(this[_0x1f0d94(0x4f6,0x55c)]&&(this['options'][_0x1f0d94(0x4f6,0x4e2)]=this['windData']),this[_0x117e8e(0x475,0x4c4)]());}['_mountedHook'](){this['options']['worker']?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}[_0x528101(-0x116,-0xc4)](){function _0x303b26(_0x1da4a3,_0x173f9){return _0x528101(_0x1da4a3,_0x173f9- -0x1c2);}this[_0x476346(0x482,0x40d)]=this[_0x476346(0x49d,0x4a1)]();const _0x4ce2ee={};_0x4ce2ee[_0x476346(0x4a5,0x470)]=!![];function _0x476346(_0x2e998d,_0x479366){return _0x528101(_0x2e998d,_0x479366-0x494);}this['canvasContext']=this[_0x303b26(-0x29b,-0x249)]['getContext']('2d',_0x4ce2ee),this[_0x303b26(-0x106,-0x17a)](),this[_0x476346(0x46d,0x491)]['data']&&this[_0x476346(0x43c,0x49d)](this[_0x303b26(-0x259,-0x1c5)][_0x476346(0x4b8,0x438)]);}[_0x4c63d2(0x53,0x6c)](){this['clear']();function _0x292f43(_0x164ba2,_0x280fab){return _0x528101(_0x280fab,_0x164ba2-0x414);}this['unbindEvent']();function _0x2ae796(_0x3eb156,_0x232760){return _0x4c63d2(_0x232760-0x2bd,_0x3eb156);}this[_0x292f43(0x38d,0x3ea)]&&(this['_map']['container']['removeChild'](this['canvas']),delete this[_0x292f43(0x38d,0x421)]);}[_0x4c63d2(0x29,0x2c)](){const _0x4786ea=mars3d__namespace['DomUtil']['create']('canvas',_0x5b654b(0x63,-0xa),this['_map']['container']);function _0x5b654b(_0x3d35aa,_0x557351){return _0x4c63d2(_0x3d35aa-0xf3,_0x557351);}_0x4786ea['style']['position']=_0x1886b7(0x192,0x128),_0x4786ea[_0x5b654b(0xca,0xfa)]['top']='0px',_0x4786ea['style']['left']='0px',_0x4786ea['style']['width']=this['_map'][_0x1886b7(0x1f2,0x16f)]['canvas']['clientWidth']+'px',_0x4786ea[_0x1886b7(0x20b,0x180)]['height']=this[_0x1886b7(0xc3,0x112)][_0x1886b7(0x1d2,0x16f)][_0x5b654b(0x88,0xd7)]['clientHeight']+'px',_0x4786ea[_0x1886b7(0x1cc,0x180)][_0x1886b7(0x1ea,0x158)]=this[_0x1886b7(0xf8,0x143)]?'auto':'none';function _0x1886b7(_0x56c661,_0xfadfdd){return _0x4c63d2(_0xfadfdd-0x1a9,_0x56c661);}return _0x4786ea[_0x1886b7(0x114,0x180)][_0x1886b7(0x1ad,0x197)]=this['options'][_0x5b654b(0xe1,0x61)]??0x9,_0x4786ea[_0x5b654b(0x123,0xd3)]=this['_map']['scene'][_0x1886b7(0x19a,0x13e)][_0x5b654b(0x13d,0x10f)],_0x4786ea['height']=this['_map'][_0x1886b7(0x183,0x16f)]['canvas']['clientHeight'],_0x4786ea;}['resize'](){function _0x4eb17f(_0x45775a,_0x18f73e){return _0x4c63d2(_0x18f73e-0x4a0,_0x45775a);}function _0x418ef1(_0x391998,_0x11e644){return _0x4c63d2(_0x11e644- -0x1ab,_0x391998);}this['canvas']&&(this['canvas'][_0x4eb17f(0x4ce,0x477)][_0x418ef1(-0x1be,-0x17b)]=this['_map']['scene']['canvas'][_0x4eb17f(0x54b,0x4ea)]+'px',this['canvas'][_0x418ef1(-0x267,-0x1d4)]['height']=this[_0x418ef1(-0x1f5,-0x242)][_0x4eb17f(0x4b4,0x466)]['canvas'][_0x4eb17f(0x4b6,0x4f2)]+'px',this['canvas'][_0x418ef1(-0x15c,-0x17b)]=this[_0x4eb17f(0x447,0x409)]['scene']['canvas']['clientWidth'],this[_0x418ef1(-0x295,-0x216)]['height']=this['_map']['scene'][_0x4eb17f(0x40b,0x435)][_0x418ef1(-0x16c,-0x159)]);}[_0x528101(0x9e,0x48)](){function _0x2a1dba(_0x3244c8,_0x4094eb){return _0x528101(_0x3244c8,_0x4094eb-0x45e);}const _0x343046=this;let _0x58f80f=Date['now']();(function _0x9738e1(){function _0x233147(_0x412904,_0x1592f2){return _0x1e2b(_0x1592f2-0x368,_0x412904);}function _0x28cd03(_0x55a505,_0x75f81d){return _0x1e2b(_0x75f81d-0x357,_0x55a505);}if(_0x343046[_0x233147(0x4e6,0x45f)])return;_0x343046['_animateFrame']=window[_0x233147(0x4e8,0x53b)](_0x9738e1);if(_0x343046['show']&&_0x343046[_0x233147(0x4aa,0x505)]){const _0x410eed=Date[_0x233147(0x53d,0x4f9)](),_0x212eea=_0x410eed-_0x58f80f;_0x212eea>_0x343046['frameTime']&&(_0x58f80f=_0x410eed-_0x212eea%_0x343046[_0x28cd03(0x4f4,0x505)],_0x343046[_0x233147(0x564,0x570)]());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this[_0x2c4007(0x57,-0x1c)]=![],this[_0x2a1dba(0x430,0x44b)]=![]);function _0x2c4007(_0x116a3a,_0x5d430f){return _0x528101(_0x116a3a,_0x5d430f- -0x2f);}this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x2a1dba(0x3c5,0x401)],this),this[_0x2c4007(-0x102,-0xe2)]['on'](mars3d__namespace['EventType'][_0x2c4007(0x60,-0x27)],this['_onMouseDownEvent'],this),this[_0x2a1dba(0x33d,0x3ab)]['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x2c4007(0x33,-0x46)],this));}['unbindEvent'](){function _0x4bdf96(_0x667882,_0x4fb45f){return _0x528101(_0x4fb45f,_0x667882-0x17d);}function _0x59be52(_0x396dc1,_0xb2f4c3){return _0x528101(_0xb2f4c3,_0x396dc1- -0x20e);}window['cancelAnimationFrame'](this['_animateFrame']),delete this[_0x4bdf96(0x111,0x151)],window['removeEventListener'](_0x59be52(-0x203,-0x28f),this[_0x59be52(-0x203,-0x1d0)]),this[_0x4bdf96(0x17a,0x124)]['mouseHidden']&&(this['_map']['off'](mars3d__namespace['EventType']['wheel'],this[_0x59be52(-0x26b,-0x2b0)],this),this['_map'][_0x59be52(-0x1e1,-0x1eb)](mars3d__namespace[_0x4bdf96(0x15d,0x154)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x4bdf96(0xdf,0x9a)],this['_onMouseUpEvent'],this),this['_map'][_0x4bdf96(0x1aa,0x11d)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x3d56a7){clearTimeout(this[_0x44e742(0x434,0x3a2)]);function _0x44e742(_0xbb0c99,_0x202432){return _0x4c63d2(_0x202432-0x337,_0xbb0c99);}function _0x494f53(_0x569ec4,_0x3653eb){return _0x528101(_0x569ec4,_0x3653eb-0x3);}if(!this['show']||!this[_0x44e742(0x295,0x2cc)])return;this['canvas']['style'][_0x44e742(0x303,0x36c)]='hidden',this[_0x44e742(0x370,0x3a2)]=setTimeout(()=>{function _0x50535f(_0x2a100e,_0x5187f1){return _0x494f53(_0x2a100e,_0x5187f1-0x34a);}if(!this['show'])return;function _0x455da8(_0x5e640b,_0x56bc49){return _0x494f53(_0x5e640b,_0x56bc49-0x432);}this['redraw'](),this[_0x455da8(0x31f,0x3ae)][_0x455da8(0x387,0x3f0)]['visibility']='visible';},0xc8);}[_0x528101(-0x23,-0x95)](_0x198388){function _0x52a92b(_0x5c8613,_0x28b3dd){return _0x528101(_0x28b3dd,_0x5c8613-0x3eb);}function _0x5a8bde(_0x30a752,_0x3e0037){return _0x528101(_0x3e0037,_0x30a752-0x1e9);}this['mouse_down']=!![],this[_0x52a92b(0x338,0x386)][_0x5a8bde(0x216,0x1ca)](mars3d__namespace['EventType']['mouseMove'],this[_0x5a8bde(0x1bc,0x14b)],this),this['_map']['on'](mars3d__namespace['EventType'][_0x52a92b(0x32d,0x2fa)],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x2ece26){if(!this['show']||!this['canvas'])return;function _0x327fef(_0x55fec4,_0x7cdedf){return _0x528101(_0x7cdedf,_0x55fec4- -0x8a);}function _0x95f348(_0x4f94c8,_0x423675){return _0x528101(_0x4f94c8,_0x423675-0xf8);}this[_0x95f348(0xc6,0x10b)]&&(this['canvas'][_0x95f348(0xa7,0xb3)][_0x95f348(0xb2,0x111)]=_0x327fef(-0x13c,-0xda),this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x1e2874){function _0x5ebbea(_0x32c3b2,_0x4efa1e){return _0x4c63d2(_0x32c3b2- -0x1f6,_0x4efa1e);}if(!this[_0x33d4cf(0x34f,0x302)]||!this[_0x33d4cf(0x2b1,0x232)])return;function _0x33d4cf(_0x572473,_0x3d2f43){return _0x4c63d2(_0x572473-0x31c,_0x3d2f43);}this[_0x33d4cf(0x285,0x2dd)][_0x5ebbea(-0x1ad,-0x1b7)](mars3d__namespace[_0x33d4cf(0x318,0x34c)]['mouseMove'],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['canvas']['style']['visibility']=_0x5ebbea(-0x1ff,-0x245),this['mouse_down']=![],this['mouse_move']=![];}[_0x528101(0x9c,0x9)](_0x3ba392){function _0x48431c(_0x59b19e,_0x421e36){return _0x4c63d2(_0x59b19e-0x258,_0x421e36);}this[_0x5ed217(0x454,0x3d5)](),this[_0x48431c(0x292,0x31e)]=_0x3ba392,this['windField'][_0x48431c(0x1fd,0x198)](_0x3ba392);function _0x5ed217(_0x4e5266,_0x28f2b1){return _0x4c63d2(_0x4e5266-0x4f9,_0x28f2b1);}this['redraw']();}['redraw'](){if(!this['show'])return;function _0x495b5e(_0x12547b,_0x509fb0){return _0x4c63d2(_0x12547b-0x334,_0x509fb0);}this['windField']['setOptions'](this['options']),this[_0x495b5e(0x391,0x40b)]();}['update'](){if(this[_0x40fc37(-0x8d,-0xb5)])return;function _0x35e558(_0x53f961,_0x5ae055){return _0x4c63d2(_0x5ae055-0x39f,_0x53f961);}this[_0x35e558(0x451,0x3c0)]=!![];function _0x40fc37(_0x297f93,_0x4b7e7e){return _0x4c63d2(_0x297f93- -0xae,_0x4b7e7e);}if(this['worker'])this['windField'][_0x40fc37(-0x51,-0x49)]();else{const _0x485756=this[_0x35e558(0x374,0x391)]['getParticles']();this['_drawLines'](_0x485756);}this['_updateIng']=![];}['_drawLines'](_0x531145){this['_canvasParticles']=_0x531145,this['canvasContext']['globalCompositeOperation']=_0x494b13(-0x1b3,-0x234);function _0x55025e(_0x139729,_0x32d6c2){return _0x528101(_0x32d6c2,_0x139729- -0x64);}this[_0x494b13(-0xcd,-0xac)][_0x494b13(-0x13e,-0x18d)](0x0,0x0,this[_0x494b13(-0x1a5,-0x1f5)],this[_0x55025e(-0x12e,-0xb3)]),this['canvasContext'][_0x55025e(-0xbb,-0x44)]='lighter';function _0x494b13(_0xc434e,_0x16eed5){return _0x4c63d2(_0xc434e- -0x133,_0x16eed5);}this['canvasContext']['globalAlpha']=0.9;const _0xe77f2c=this[_0x494b13(-0x1ca,-0x184)]['scene'][_0x55025e(-0xd7,-0xf1)]!==Cesium[_0x55025e(-0x32,0x16)][_0x494b13(-0xf2,-0x10b)],_0x5e4fb7=this['canvasWidth']*0.25;if(this[_0x494b13(-0x128,-0xa4)])for(let _0xc0ccab=0x0,_0x2a260d=_0x531145['length'];_0xc0ccab<_0x2a260d;_0xc0ccab++){const _0x4ce541=_0x531145[_0xc0ccab],_0x433bb0=this['_tomap'](_0x4ce541,_0x4ce541['lng'],_0x4ce541[_0x494b13(-0x142,-0x103)],_0x4ce541['alt']),_0x5b5d0e=this['_tomap'](_0x4ce541,_0x4ce541['tlng'],_0x4ce541['tlat'],_0x4ce541[_0x494b13(-0xca,-0x11f)]);if(!_0x433bb0||!_0x5b5d0e)continue;if(_0xe77f2c&&Math[_0x55025e(-0xad,-0xd0)](_0x433bb0[0x0]-_0x5b5d0e[0x0])>=_0x5e4fb7)continue;this['canvasContext'][_0x494b13(-0x185,-0x12c)](),this[_0x55025e(-0x1a,0x5c)][_0x494b13(-0x19b,-0x157)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this['_colorRamp']['getColor'](_0x4ce541[_0x494b13(-0xd8,-0x5c)]),this[_0x494b13(-0xcd,-0x156)][_0x55025e(-0xf4,-0xe9)](_0x433bb0[0x0],_0x433bb0[0x1]),this['canvasContext']['lineTo'](_0x5b5d0e[0x0],_0x5b5d0e[0x1]),this['canvasContext'][_0x55025e(-0xcb,-0xa1)]();}else{this['canvasContext']['beginPath'](),this[_0x55025e(-0x1a,-0xa0)]['lineWidth']=this['lineWidth'],this[_0x494b13(-0xcd,-0x101)][_0x494b13(-0xf5,-0x16c)]=this['color'];for(let _0x13fa78=0x0,_0x15a6b8=_0x531145['length'];_0x13fa78<_0x15a6b8;_0x13fa78++){const _0x45ef6d=_0x531145[_0x13fa78],_0x1cee97=this[_0x55025e(-0x107,-0xdd)](_0x45ef6d,_0x45ef6d[_0x55025e(-0x121,-0x154)],_0x45ef6d[_0x494b13(-0x142,-0x15e)],_0x45ef6d['alt']),_0x69f52e=this[_0x55025e(-0x107,-0x193)](_0x45ef6d,_0x45ef6d['tlng'],_0x45ef6d['tlat'],_0x45ef6d[_0x55025e(-0x17,-0x74)]);if(!_0x1cee97||!_0x69f52e)continue;if(_0xe77f2c&&Math[_0x494b13(-0x160,-0x154)](_0x1cee97[0x0]-_0x69f52e[0x0])>=_0x5e4fb7)continue;this['canvasContext'][_0x55025e(-0xf4,-0xde)](_0x1cee97[0x0],_0x1cee97[0x1]),this[_0x55025e(-0x1a,-0x12)][_0x494b13(-0x1e9,-0x206)](_0x69f52e[0x0],_0x69f52e[0x1]);}this['canvasContext']['stroke']();}}['_tomap'](_0x3464bd,_0x2ff7b3,_0x1d7d38,_0x3943b3){const _0x1ed557=Cesium['Cartesian3'][_0x396d78(0x35b,0x378)](_0x2ff7b3,_0x1d7d38,_0x3943b3??this['fixedHeight']),_0x4d1337=this['_map']['scene'];if(_0x4d1337['mode']===Cesium[_0x355a64(0x54f,0x5dc)]['SCENE3D']){const _0x587c2c=new Cesium[(_0x355a64(0x48a,0x4a4))](_0x4d1337['globe'][_0x355a64(0x56e,0x4e8)],_0x4d1337[_0x355a64(0x541,0x541)][_0x355a64(0x4b3,0x4d5)]),_0x55c9ca=_0x587c2c[_0x355a64(0x53d,0x563)](_0x1ed557);if(!_0x55c9ca)return _0x3464bd[_0x355a64(0x514,0x4f0)]=0x0,null;}function _0x355a64(_0x55ff94,_0x4fd15c){return _0x4c63d2(_0x55ff94-0x501,_0x4fd15c);}const _0x1ef0ed=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map']['scene'],_0x1ed557);function _0x396d78(_0x3e124c,_0x56171b){return _0x4c63d2(_0x56171b-0x3eb,_0x3e124c);}return _0x1ef0ed?[_0x1ef0ed['x'],_0x1ef0ed['y']]:null;}[_0x528101(-0xfa,-0xc1)](){function _0x2cfba2(_0x3367e2,_0x2465ad){return _0x528101(_0x3367e2,_0x2465ad- -0x89);}function _0xaded5f(_0x343b06,_0x3e23c6){return _0x528101(_0x3e23c6,_0x343b06- -0x147);}this[_0x2cfba2(-0xfd,-0xb3)][_0xaded5f(-0x208,-0x209)](),delete this['windData'];}[_0x4c63d2(0x0,-0x14)](){this['worker']=new Worker(this['options']['worker']);function _0x253627(_0x1a5c71,_0x5a2564){return _0x4c63d2(_0x1a5c71- -0x1c,_0x5a2564);}this['worker'][_0x253627(-0x46,-0x27)]=_0x176979=>{this[_0xfd4120(0x500,0x4dd)](_0x176979[_0xfd4120(0x409,0x48f)][_0xfd4120(0x442,0x47a)]);function _0x16864f(_0x4bb79d,_0x423420){return _0x253627(_0x423420-0x488,_0x4bb79d);}function _0xfd4120(_0x52df79,_0x333e12){return _0x253627(_0x333e12-0x4eb,_0x52df79);}this['_updateIng2']=![];};function _0x2834b5(_0x16eff3,_0x170299){return _0x528101(_0x16eff3,_0x170299-0x546);}this['windField']={'init':_0x12650d=>{const _0x40ebcc={};function _0x532196(_0x20281f,_0x235f20){return _0x253627(_0x235f20- -0x1,_0x20281f);}_0x40ebcc['type']='init';function _0x1934a3(_0x3dc92b,_0xbfdd76){return _0x253627(_0x3dc92b-0x12d,_0xbfdd76);}_0x40ebcc[_0x1934a3(0x12a,0x109)]=_0x12650d,this[_0x1934a3(0x13f,0xb0)][_0x1934a3(0x84,0xfd)](_0x40ebcc);},'setOptions':_0x54b501=>{const _0x31dbbd={};function _0x200d55(_0x43e5c9,_0x3485e9){return _0x253627(_0x43e5c9-0x4d8,_0x3485e9);}_0x31dbbd['type']=_0x38960a(0xe2,0xc0);function _0x38960a(_0x253f17,_0x1d7f57){return _0x253627(_0x1d7f57-0x108,_0x253f17);}_0x31dbbd['options']=_0x54b501,this[_0x200d55(0x4ea,0x4f2)][_0x200d55(0x42f,0x408)](_0x31dbbd);},'setDate':_0x5a8ee0=>{function _0x5d4ac8(_0x3b862f,_0x7c6ff5){return _0x253627(_0x3b862f-0x4c6,_0x7c6ff5);}function _0x1b627e(_0x564d11,_0x21fccc){return _0x253627(_0x564d11- -0x47,_0x21fccc);}const _0x32a69f={};_0x32a69f['type']=_0x1b627e(-0xbe,-0x5c),_0x32a69f['data']=_0x5a8ee0,this[_0x5d4ac8(0x4d8,0x4f9)][_0x1b627e(-0xf0,-0x105)](_0x32a69f);},'update':()=>{function _0x3a2cbb(_0x3e4442,_0x1b243b){return _0x253627(_0x1b243b-0x30f,_0x3e4442);}if(this['_updateIng2'])return;function _0x289b99(_0x5dc425,_0xe07e4c){return _0x253627(_0xe07e4c- -0x92,_0x5dc425);}this[_0x3a2cbb(0x293,0x2ff)]=!![];const _0x2d76ab={};_0x2d76ab['type']=_0x3a2cbb(0x3a1,0x350),this[_0x289b99(-0xd2,-0x80)][_0x3a2cbb(0x211,0x266)](_0x2d76ab);},'clear':()=>{const _0x5dafb2={};function _0x166832(_0x58fdcc,_0x4bb412){return _0x253627(_0x58fdcc-0x524,_0x4bb412);}_0x5dafb2[_0x166832(0x4c3,0x548)]='clear',this['worker']['postMessage'](_0x5dafb2);}},this['windField'][_0x253627(0x4,0x93)](this[_0x2834b5(0x5d4,0x543)]);}}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x528101(-0x6c,0x15)]=CanvasWindLayer,exports[_0x4c63d2(-0xa0,-0x9e)]=WindLayer,exports['WindUtil']=WindUtil;const _0x3fd9db={};_0x3fd9db[_0x528101(-0x50,0x2a)]=!![],Object[_0x4c63d2(-0xb3,-0x10d)](exports,_0x528101(-0x6f,0x1a),_0x3fd9db);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.8.13",
3
+ "version": "3.9.0",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.8.13"
8
+ "mars3d": "~3.9.0"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"