mars3d-wind 3.8.11 → 3.8.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/mars3d-wind.js +4 -4
  2. package/package.json +2 -2
package/mars3d-wind.js CHANGED
@@ -1,15 +1,15 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.8.11
5
- * 编译日期:2024-12-24 10:46
4
+ * 版本信息:v3.8.13
5
+ * 编译日期:2025-01-20 23:22
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
- * 使用单位:免费公开版 ,2024-08-01
7
+ * 使用单位:火星科技免费公开版 ,2024-08-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(_0x291159,_0x22d5c4){const _0x5a6a96=_0x291159();function _0x760a11(_0x34ad88,_0x3dbfc1){return _0xac00(_0x3dbfc1-0x376,_0x34ad88);}function _0x178db5(_0xa57d09,_0x117609){return _0xac00(_0xa57d09-0x335,_0x117609);}while(!![]){try{const _0x512d8d=-parseInt(_0x178db5(0x558,0x55f))/0x1+parseInt(_0x178db5(0x519,0x56c))/0x2*(parseInt(_0x178db5(0x5e8,0x598))/0x3)+-parseInt(_0x178db5(0x508,0x56f))/0x4+-parseInt(_0x760a11(0x5ac,0x592))/0x5+-parseInt(_0x760a11(0x4e0,0x566))/0x6+-parseInt(_0x178db5(0x5d2,0x5e5))/0x7*(parseInt(_0x760a11(0x5f4,0x60c))/0x8)+parseInt(_0x178db5(0x567,0x513))/0x9;if(_0x512d8d===_0x22d5c4)break;else _0x5a6a96['push'](_0x5a6a96['shift']());}catch(_0x48f080){_0x5a6a96['push'](_0x5a6a96['shift']());}}}(_0x5aa1,0xbf4c0));function _interopNamespace(_0x32a06c){if(_0x32a06c&&_0x32a06c[_0x396c8d(0x10b,0xa5)])return _0x32a06c;var _0x2f3573=Object['create'](null);function _0x16d411(_0x59a9e7,_0x5903a0){return _0xac00(_0x5903a0- -0xd6,_0x59a9e7);}function _0x396c8d(_0x55c6e5,_0x247a84){return _0xac00(_0x247a84- -0x145,_0x55c6e5);}return _0x32a06c&&Object[_0x16d411(0x154,0x173)](_0x32a06c)[_0x396c8d(0x6a,0x9d)](function(_0xcc75e5){if(_0xcc75e5!=='default'){var _0x3d3cad=Object['getOwnPropertyDescriptor'](_0x32a06c,_0xcc75e5);Object['defineProperty'](_0x2f3573,_0xcc75e5,_0x3d3cad['get']?_0x3d3cad:{'enumerable':!![],'get':function(){return _0x32a06c[_0xcc75e5];}});}}),_0x2f3573['default']=_0x32a06c,_0x2f3573;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function _0x1b4f03(_0x215f20,_0x396281){return _0xac00(_0x215f20- -0x212,_0x396281);}function getU(_0x48c306,_0x518794){const _0x4301e1=_0x48c306*Math['cos'](Cesium$2['Math']['toRadians'](_0x518794));return _0x4301e1;}function getV(_0x547914,_0x1bd55d){function _0xf77f62(_0x1808c0,_0x4ce1c5){return _0xac00(_0x4ce1c5-0x56,_0x1808c0);}const _0x2f43dc=_0x547914*Math['sin'](Cesium$2[_0xf77f62(0x21e,0x25b)]['toRadians'](_0x1bd55d));return _0x2f43dc;}function getSpeed(_0x28eb2b,_0x564370){const _0x809247=Math['sqrt'](Math['pow'](_0x28eb2b,0x2)+Math['pow'](_0x564370,0x2));return _0x809247;}function getDirection(_0x3a6412,_0x567c96){function _0x404c72(_0x2d2c94,_0xb108b6){return _0xac00(_0x2d2c94-0x2ae,_0xb108b6);}let _0x525dd7=Cesium$2['Math'][_0x5ea718(0x283,0x21f)](Math[_0x404c72(0x562,0x529)](_0x567c96,_0x3a6412));_0x525dd7+=_0x525dd7<0x0?0x168:0x0;function _0x5ea718(_0x4cf569,_0x572366){return _0xac00(_0x4cf569-0x6c,_0x572366);}return _0x525dd7;}const _0x1994ea={};_0x1994ea['__proto__']=null,_0x1994ea[_0x3e9da2(0x271,0x200)]=getU,_0x1994ea['getV']=getV,_0x1994ea['getSpeed']=getSpeed,_0x1994ea[_0x1b4f03(0x47,0x47)]=getDirection;var WindUtil=_0x1994ea,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=_0x3e9da2(0x30d,0x28f),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='#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';const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static[_0x1b4f03(0x2f,-0x32)](){const _0x4dd04e={};return _0x4dd04e['sources']=[calculateSpeedShader],new ShaderSource$1(_0x4dd04e);}static[_0x1b4f03(0x70,0x7b)](){const _0x32a7ce={};return _0x32a7ce['sources']=[updatePositionShader],new ShaderSource$1(_0x32a7ce);}static['getSegmentDrawVertexShader'](){const _0x25ed11={};return _0x25ed11['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x25ed11);}static['getSegmentDrawFragmentShader'](){const _0x22c4f7={};return _0x22c4f7['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x22c4f7);}static['getPostProcessingPositionShader'](){const _0x150cbc={};return _0x150cbc['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x150cbc);}}function _0x5aa1(){const _0x36c967=['pixelDatatype','wheel','21176010lTVsMT','getUVByXY','processWindData','bounds','show','lineWidth','pointerEvents','geometry','vmax','min','ymin','left','positionWC','componentDatatype','isDestroy','getCalculateSpeedShader','createWindTextures','primitives','textures','FLOAT','CLAMP_TO_EDGE','vmin','canvas','keys','createParticlesTextures','_speedRate','type','mode','number','LINEAR','_calcUV','outputTexture','lat','postMessage','renderState','setDate','requestAnimationFrame','autoClear','frameRateAdjustment','getDirection','zIndex','warn','mouse_move','_bilinearInterpolation','shaderProgram','age','pixelSize','add','min\x20is\x20undefined,\x20calculate\x20min','frameRateMonitor','scene','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','fragmentShaderSource','preExecute','create','frameTime','computing','west','bindEvent','_setOptionsHook','colorTable','requestRender','magnificationFilter','colors','onmessage','context','setGeometry','data','latRange','getPostProcessingPositionShader','stroke','mouseDown','frameRate','tlng','reCreateWindTextures','getRandomLatLng','createCommand','flatMap','execute','wrapT','getUpdatePositionShader','abs','_map','sqrt','commandToExecute','Unknown\x20command\x20type','tlat','_animateFrame','max\x20is\x20undefined,\x20calculate\x20max','Compute','update','refreshTimer','LayerUtil','globe','resize','push','commandType','#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','_addedHook','drawingBufferWidth','8jorYsT','setOptions','pass','floor','depthTexture','attributeLocations','_drawLines','4932487mWOedC','applyViewerParameters','clearCommand','udata','BaseLayer','rawRenderState','STATIC_DRAW','worker','xmax','isDynamic','camera','reverseY','globalAlpha','segmentsColor','prototype','mouse_down','RED','nextParticlesPosition','visible','rendering','cartesianToCartographic','random','3796347wXUmEK','atan2','uniformMap','ellipsoid','framebuffers','componentsPerAttribute','Cesium','_canrefresh','currentParticlesPosition','redraw','postProcessingPosition','maxAge','interpolated','moveTo','none','framebuffer','_onMouseUpEvent','max','SceneMode','dynamic','vdata','particleSystem','particlesTextures','destroyParticlesTextures','onParticlesTextureSizeChange','drawingBufferHeight','commandList','speed','cols','pixelFormat','canvasWidth','updateViewerParameters','EllipsoidalOccluder','CanvasWindLayer','style','isInExtent','particlesTextureSize','SCENE3D','SRC_ALPHA','wrapS','lng','primitiveType','fromCache','east','updatePosition','_colorRamp','ymax','destroy','flipY','xmin','calculateSpeed','5188320ZGuQdv','lineTo','particlesNumber','grid','minificationFilter','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','fixedHeight','viewerParameters','array','values','_onMouseMoveEvent','_calc_speedRate','getUVByPoint','onColorTableChange','WindUtil','forEach','removeChild','2cygEXO','EventType','particles','CanvasWindField','segments','createPrimitives','__esModule','willReadFrequently','setData','RGBA','slice','length','454668UpixGS','_updateIng','options','alpha','reverse','bufferUsage','_onMapWhellEvent','persists','rows','dropRateBump','color','north','#ffffff','OPAQUE','layer','initFrameRate','windField','segmentsDepth','latitude','container','getU','Math','globalCompositeOperation','createRenderingFramebuffers','speedRate','_onMouseDownEvent','canvasContext','off','initWorker','sceneMode','_updateIng2','_pointerEvents','getPrimitives','stringify','Cartesian2','unbindEvent','width','now','call','toDegrees','NEAREST','all','visibility','cancelAnimationFrame','2379870JEDfEd','createSegmentsGeometry','height','bind','dropRate','particlesSpeed','log','281314Ckpfkf','remove','windData','clear','updateOptions','register','vertexShaderSource','south','removeEventListener','clientWidth','windTextures','UNSIGNED_INT','strokeStyle'];_0x5aa1=function(){return _0x36c967;};return _0x5aa1();}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['Cesium'];class CustomPrimitive{constructor(_0xea9577){this[_0x308ccb(0xa6,0x3a)]=_0xea9577[_0x5b3c75(0x488,0x478)],this[_0x5b3c75(0x413,0x41f)]=_0xea9577[_0x308ccb(-0x39,-0x1f)],this['attributeLocations']=_0xea9577['attributeLocations'],this['primitiveType']=_0xea9577[_0x308ccb(-0x61,-0x8f)],this['uniformMap']=_0xea9577['uniformMap']||{};function _0x308ccb(_0x23db93,_0x25b867){return _0x3e9da2(_0x23db93,_0x25b867- -0x254);}this['vertexShaderSource']=_0xea9577['vertexShaderSource'],this[_0x308ccb(0x8f,0xe)]=_0xea9577['fragmentShaderSource'],this[_0x5b3c75(0x47f,0x488)]=_0xea9577['rawRenderState'],this[_0x5b3c75(0x3b1,0x395)]=_0xea9577['framebuffer'],this['outputTexture']=_0xea9577['outputTexture'],this['autoClear']=defaultValue(_0xea9577['autoClear'],![]),this[_0x5b3c75(0x4ad,0x44d)]=_0xea9577['preExecute'],this[_0x308ccb(-0x31,-0x22)]=!![];function _0x5b3c75(_0x34720b,_0x19deeb){return _0x3e9da2(_0x34720b,_0x19deeb-0x1ea);}this['commandToExecute']=undefined,this[_0x308ccb(-0x25,0x47)]=undefined,this['isDynamic']=_0xea9577['isDynamic']??(()=>!![]),this[_0x308ccb(0x88,-0x1)]&&(this[_0x308ccb(0xc7,0x47)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x5b3c75(0x3db,0x395)],'pass':Pass$1[_0x308ccb(-0x78,-0x5b)]}));}[_0x1b4f03(0x6c,0x1c)](_0x4b291c){function _0x31960e(_0x16dfc3,_0x368ce9){return _0x1b4f03(_0x368ce9- -0x4a,_0x16dfc3);}function _0x5b0527(_0x116fc7,_0x4a73e0){return _0x3e9da2(_0x4a73e0,_0x116fc7-0x64);}if(this[_0x31960e(0x27,0x36)]==='Draw'){const _0x4c8124={};_0x4c8124[_0x31960e(0x11,0x17)]=_0x4b291c,_0x4c8124[_0x31960e(0x67,-0x23)]=this[_0x5b0527(0x299,0x295)],_0x4c8124['attributeLocations']=this[_0x31960e(0x51,0x3f)],_0x4c8124[_0x5b0527(0x255,0x235)]=BufferUsage$1[_0x31960e(-0x1b,0x47)];const _0x3476ac=VertexArray$1['fromGeometry'](_0x4c8124),_0x55a4a2={};_0x55a4a2['context']=_0x4b291c,_0x55a4a2[_0x5b0527(0x289,0x287)]=this['vertexShaderSource'],_0x55a4a2['fragmentShaderSource']=this[_0x5b0527(0x2c6,0x2dc)],_0x55a4a2['attributeLocations']=this['attributeLocations'];const _0x45f937=ShaderProgram[_0x5b0527(0x22a,0x219)](_0x55a4a2),_0x48882b=RenderState['fromCache'](this['rawRenderState']),_0x4525a4={};return _0x4525a4['owner']=this,_0x4525a4['vertexArray']=_0x3476ac,_0x4525a4[_0x5b0527(0x229,0x243)]=this['primitiveType'],_0x4525a4['modelMatrix']=Matrix4['IDENTITY'],_0x4525a4[_0x5b0527(0x2b4,0x269)]=_0x48882b,_0x4525a4[_0x5b0527(0x2be,0x334)]=_0x45f937,_0x4525a4['framebuffer']=this['framebuffer'],_0x4525a4[_0x31960e(0x98,0x59)]=this['uniformMap'],_0x4525a4[_0x5b0527(0x2f8,0x2b9)]=Pass$1[_0x5b0527(0x25d,0x1fc)],new DrawCommand(_0x4525a4);}else{if(this['commandType']===_0x5b0527(0x2eb,0x2dc)){const _0x3d1450={};return _0x3d1450['owner']=this,_0x3d1450['fragmentShaderSource']=this['fragmentShaderSource'],_0x3d1450[_0x5b0527(0x315,0x381)]=this['uniformMap'],_0x3d1450['outputTexture']=this['outputTexture'],_0x3d1450[_0x31960e(-0x8f,-0x65)]=!![],new ComputeCommand(_0x3d1450);}else throw new Error(_0x31960e(0x7b,0x2b));}}[_0x3e9da2(0x2a8,0x270)](_0x18adc9,_0xdc3f9e){function _0x17672e(_0x1ae078,_0x587c76){return _0x3e9da2(_0x1ae078,_0x587c76- -0x157);}this['geometry']=_0xdc3f9e;function _0x31b1d3(_0x48839f,_0x2bfd18){return _0x1b4f03(_0x2bfd18- -0x3e,_0x48839f);}defined(this[_0x17672e(0x139,0x12b)])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x18adc9,'geometry':this[_0x31b1d3(-0x9e,-0x17)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x266176){if(!this[_0x125bef(0x683,0x65f)]())return;function _0x231282(_0x2f00b4,_0x45a3d0){return _0x3e9da2(_0x45a3d0,_0x2f00b4-0x22e);}if(!this[_0x125bef(0x613,0x59d)]||!defined(_0x266176))return;!defined(this[_0x125bef(0x663,0x5ed)])&&(this['commandToExecute']=this[_0x231282(0x4a8,0x472)](_0x266176['context']));defined(this[_0x231282(0x491,0x504)])&&this[_0x231282(0x491,0x415)]();if(!_0x266176['commandList']){console['warn']('frameState.commandList\x20is\x20undefined');return;}function _0x125bef(_0x4830ea,_0x2fd57c){return _0x3e9da2(_0x2fd57c,_0x4830ea-0x3e1);}defined(this['clearCommand'])&&_0x266176['commandList']['push'](this[_0x125bef(0x67c,0x61e)]),defined(this['commandToExecute'])&&_0x266176[_0x231282(0x3e4,0x442)][_0x125bef(0x66e,0x6ce)](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){if(defined(this['commandToExecute'])){var _0x4db4cf;(_0x4db4cf=this['commandToExecute'][_0x44c853(-0x2c,-0x41)])===null||_0x4db4cf===void 0x0||_0x4db4cf[_0x294b6e(0x9b,0xff)](),this['commandToExecute']['shaderProgram']=undefined;}function _0x294b6e(_0x283079,_0x304257){return _0x3e9da2(_0x283079,_0x304257- -0xcc);}function _0x44c853(_0x38feaa,_0xe78464){return _0x3e9da2(_0x38feaa,_0xe78464- -0x29b);}return destroyObject(this);}}function deepMerge(_0x5edb9b,_0x3c030f){if(!_0x5edb9b)return _0x3c030f;function _0x5d0c4f(_0x2d7259,_0x4176ee){return _0x3e9da2(_0x2d7259,_0x4176ee- -0x20e);}if(!_0x3c030f)return _0x5edb9b;const _0x55be27={..._0x3c030f},_0x1c0996=_0x55be27;function _0x6af55d(_0x33f35b,_0x59384f){return _0x1b4f03(_0x59384f-0x4f4,_0x33f35b);}for(const _0x13b2a6 in _0x5edb9b){if(Object[_0x5d0c4f(0x33,0x99)]['hasOwnProperty'][_0x5d0c4f(-0x7f,0x4)](_0x5edb9b,_0x13b2a6)){const _0x1b1f2b=_0x5edb9b[_0x13b2a6],_0x1db047=_0x3c030f[_0x13b2a6];if(Array['isArray'](_0x1b1f2b)){_0x1c0996[_0x13b2a6]=_0x1b1f2b[_0x5d0c4f(-0xb,-0x24)]();continue;}if(_0x1b1f2b&&typeof _0x1b1f2b==='object'){_0x1c0996[_0x13b2a6]=deepMerge(_0x1b1f2b,_0x1db047||{});continue;}_0x1b1f2b!==undefined&&(_0x1c0996[_0x13b2a6]=_0x1b1f2b);}}return _0x1c0996;}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(_0x16f8e9,_0x4f789a,_0x4781ea,_0x5300dd,_0x177cf3){this['context']=_0x16f8e9,this['options']=_0x4781ea,this['viewerParameters']=_0x5300dd,this['windData']=_0x4f789a,this[_0x3d06e8(-0x153,-0x1bd)]=0x3c;function _0x3d06e8(_0x525fa0,_0x1ee90c){return _0x3e9da2(_0x1ee90c,_0x525fa0- -0x3c9);}this[_0x3d06e8(-0x175,-0x190)]=0x1;const _0x2f824d={};_0x2f824d['scene']=_0x177cf3,_0x2f824d['samplingWindow']=0x1,_0x2f824d['quietPeriod']=0x0,this[_0x3d06e8(-0x16a,-0x19d)]=new FrameRateMonitor(_0x2f824d),this[_0x3d06e8(-0x1ce,-0x15a)](),this[_0x3d06e8(-0x18b,-0x189)]();function _0x585c6c(_0x1e1eb5,_0x12b807){return _0x3e9da2(_0x12b807,_0x1e1eb5-0x3d9);}this[_0x585c6c(0x61f,0x5a5)](),this['createComputingPrimitives']();}['initFrameRate'](){function _0x44e0b1(_0x554d6b,_0x2ab57a){return _0x1b4f03(_0x554d6b-0x21e,_0x2ab57a);}const _0x17ff18=()=>{function _0x3df1cc(_0x52bff6,_0x2668fc){return _0xac00(_0x2668fc- -0x22f,_0x52bff6);}function _0x5674f1(_0x38969b,_0x597a76){return _0xac00(_0x597a76-0x3d5,_0x38969b);}this[_0x5674f1(0x61b,0x638)]['lastFramesPerSecond']>0x14&&(this[_0x3df1cc(0x50,0x4b)]=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0x17ff18();const _0x2d8120=setInterval(_0x17ff18,0x3e8),_0x2d2201=this['destroy'][_0x44e0b1(0x22b,0x288)](this);this['destroy']=()=>{clearInterval(_0x2d8120),_0x2d2201();};}['createWindTextures'](){const _0x51467b={};_0x51467b['minificationFilter']=TextureMinificationFilter$1[_0x14f504(-0x14c,-0x117)];function _0x14f504(_0x1febdd,_0x1a7e04){return _0x1b4f03(_0x1febdd- -0x189,_0x1a7e04);}_0x51467b[_0x14f504(-0x12b,-0xb9)]=TextureMagnificationFilter$1['LINEAR'];function _0x9d92a8(_0x5d3e4f,_0x105aa7){return _0x1b4f03(_0x105aa7-0x1f3,_0x5d3e4f);}const _0x15bb51={'context':this['context'],'width':this['windData']['width'],'height':this[_0x9d92a8(0x239,0x206)]['height'],'pixelFormat':PixelFormat$1[_0x14f504(-0xee,-0xb0)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x51467b)};this['windTextures']={'U':new Texture$1({..._0x15bb51,'source':{'arrayBufferView':new Float32Array(this['windData']['u'][_0x14f504(-0x1c0,-0x21e)])}}),'V':new Texture$1({..._0x15bb51,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){function _0x2ed456(_0x738723,_0x2ca6fa){return _0x1b4f03(_0x2ca6fa-0x1cc,_0x738723);}const _0x1758ac={};_0x1758ac[_0x23d091(0x27f,0x2a3)]=TextureMinificationFilter$1[_0x23d091(0x2c0,0x2d2)],_0x1758ac['magnificationFilter']=TextureMagnificationFilter$1[_0x23d091(0x2c0,0x26a)];function _0x23d091(_0x22fb39,_0x5804f4){return _0x3e9da2(_0x5804f4,_0x22fb39-0xac);}const _0x17837f={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x2ed456(0x205,0x1ff)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x23d091(0x29a,0x247)]['particlesTextureSize']*this[_0x2ed456(0x212,0x1ac)]['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x1758ac)};this[_0x23d091(0x25e,0x2a6)]={'previousParticlesPosition':new Texture$1(_0x17837f),'currentParticlesPosition':new Texture$1(_0x17837f),'nextParticlesPosition':new Texture$1(_0x17837f),'postProcessingPosition':new Texture$1(_0x17837f),'particlesSpeed':new Texture$1(_0x17837f)};}[_0x1b4f03(-0x5b,-0xd4)](){function _0x3ccb21(_0x81d3cf,_0x283926){return _0x1b4f03(_0x81d3cf-0x1db,_0x283926);}function _0x426b03(_0x587038,_0x3c3c7d){return _0x3e9da2(_0x3c3c7d,_0x587038-0x3ce);}Object[_0x426b03(0x5a6,0x557)](this[_0x426b03(0x580,0x60a)])[_0x3ccb21(0x1ab,0x183)](_0x32d078=>_0x32d078['destroy']());}['createComputingPrimitives'](){function _0xc019ff(_0x5b9f32,_0x5c3f59){return _0x3e9da2(_0x5b9f32,_0x5c3f59-0x245);}function _0x2ba255(_0x52b557,_0x107966){return _0x3e9da2(_0x52b557,_0x107966- -0x18f);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x2ba255(0xdc,0xf8),'uniformMap':{'U':()=>this[_0xc019ff(0x48b,0x46e)]['U'],'V':()=>this[_0x2ba255(0xca,0x9a)]['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this['windData']['u'][_0x2ba255(-0x22,0x1e)]),'vRange':()=>new Cartesian2$1(this['windData']['v'][_0xc019ff(0x4bd,0x47c)],this[_0x2ba255(0x9e,0x92)]['v'][_0xc019ff(0x384,0x3f2)]),'speedRange':()=>new Cartesian2$1(this['windData'][_0x2ba255(0x55,0x28)][_0xc019ff(0x463,0x47c)],this['windData']['speed']['max']),'currentParticlesPosition':()=>this[_0xc019ff(0x3be,0x3f7)]['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x37864f(_0x3441f2,_0x1517be){return _0x2ba255(_0x3441f2,_0x1517be- -0x173);}function _0x2f4a3e(_0x35f0f2,_0x4bf7f2){return _0xc019ff(_0x35f0f2,_0x4bf7f2- -0x46d);}return(this[_0x37864f(-0xc9,-0x12c)]['pixelSize']+0x32)*this[_0x37864f(-0x132,-0x114)]['speedFactor'];},'frameRateAdjustment':()=>this[_0x2ba255(0xed,0xc5)],'dimension':()=>new Cartesian2$1(this['windData'][_0x2ba255(0x53,0x81)],this['windData']['height']),'minimum':()=>new Cartesian2$1(this[_0x2ba255(0xcb,0x92)]['bounds']['west'],this[_0xc019ff(0x49e,0x466)]['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds']['east'],this[_0xc019ff(0x43f,0x466)]['bounds'][_0x2ba255(0xd8,0x68)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0xc019ff(0x38b,0x3f7)]['particlesSpeed'],'preExecute':()=>{const _0x16810d=this[_0x482b73(0x272,0x2b8)]['previousParticlesPosition'];this[_0x38da67(-0x7e,-0xf7)]['previousParticlesPosition']=this['particlesTextures'][_0x482b73(0x264,0x205)];function _0x482b73(_0x11cb0d,_0x43f053){return _0xc019ff(_0x43f053,_0x11cb0d- -0x185);}this['particlesTextures']['currentParticlesPosition']=this['particlesTextures']['postProcessingPosition'],this['particlesTextures'][_0x38da67(-0x116,-0x103)]=_0x16810d;function _0x38da67(_0xe2ec30,_0x148b7b){return _0xc019ff(_0xe2ec30,_0x148b7b- -0x4ee);}this[_0x482b73(0x2ff,0x333)]['calculateSpeed']['commandToExecute']&&(this[_0x482b73(0x2ff,0x2b9)]['calculateSpeed'][_0x38da67(-0x5d,-0x27)]['outputTexture']=this[_0x482b73(0x272,0x273)]['particlesSpeed']);},'isDynamic':()=>this[_0xc019ff(0x3fb,0x433)][_0xc019ff(0x391,0x3f4)]}),'updatePosition':new CustomPrimitive({'commandType':_0x2ba255(0x8a,0xf8),'uniformMap':{'currentParticlesPosition':()=>this[_0x2ba255(0x2,0x23)][_0x2ba255(0x32,0x15)],'particlesSpeed':()=>this[_0xc019ff(0x45d,0x3f7)][_0xc019ff(0x4aa,0x462)]},'fragmentShaderSource':ShaderManager[_0xc019ff(0x461,0x4c3)](),'outputTexture':this[_0x2ba255(0x25,0x23)][_0xc019ff(0x4b7,0x4ef)],'preExecute':()=>{function _0x53bdee(_0x26b60f,_0x1e7207){return _0xc019ff(_0x26b60f,_0x1e7207- -0x2a8);}function _0x36b5fe(_0xb9d540,_0x582064){return _0x2ba255(_0x582064,_0xb9d540-0x145);}this['primitives'][_0x36b5fe(0x17e,0x1d2)]['commandToExecute']&&(this[_0x36b5fe(0x1f5,0x23e)]['updatePosition'][_0x36b5fe(0x238,0x201)][_0x36b5fe(0x203,0x252)]=this[_0x53bdee(0x153,0x14f)]['nextParticlesPosition']);},'isDynamic':()=>this[_0xc019ff(0x413,0x433)]['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x2ba255(0xe3,0x11b)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this[_0x2ba255(-0x34,0x47)]['lonRange'],'latRange':()=>this['viewerParameters'][_0xc019ff(0x52f,0x4b7)],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x2ba255(0xd6,0xa2)]['west'],this[_0x2ba255(0xdb,0x92)][_0x2ba255(0xc0,0xa2)][_0xc019ff(0x3a1,0x40c)]),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this['windData']['bounds']['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this[_0x2ba255(0x7d,0x5f)]['dropRate'],'dropRateBump':()=>this['options'][_0xc019ff(0x3c6,0x43a)],'useViewerBounds':()=>this[_0x2ba255(0xd6,0x5f)]['useViewerBounds']},'fragmentShaderSource':ShaderManager[_0xc019ff(0x4d4,0x4b8)](),'outputTexture':this[_0x2ba255(-0x14,0x23)][_0x2ba255(-0x58,0x17)],'preExecute':()=>{function _0x77b0a9(_0x244e0b,_0x1994a6){return _0x2ba255(_0x244e0b,_0x1994a6-0xb7);}function _0x57b8ee(_0xa7c37c,_0x324712){return _0xc019ff(_0x324712,_0xa7c37c- -0x33e);}this[_0x57b8ee(0x146,0x142)]['postProcessingPosition'][_0x57b8ee(0x189,0x11c)]&&(this['primitives']['postProcessingPosition'][_0x57b8ee(0x189,0x15f)]['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0xc019ff(0x4a8,0x433)]['dynamic']})};}[_0x3e9da2(0x286,0x278)](){function _0x487b26(_0x1e4f58,_0x3bce1c){return _0x1b4f03(_0x3bce1c-0x2bb,_0x1e4f58);}function _0x223b10(_0x18545f,_0x1651b8){return _0x1b4f03(_0x1651b8-0x238,_0x18545f);}this[_0x487b26(0x30e,0x2d6)]['U'][_0x487b26(0x207,0x278)](),this[_0x223b10(0x248,0x253)]['V']['destroy'](),this[_0x487b26(0x283,0x2eb)]();}['updateWindData'](_0x5313d6){this[_0x3fda30(0x63,0x13)]=_0x5313d6;function _0x3fda30(_0x40be77,_0x5da0cb){return _0x3e9da2(_0x5da0cb,_0x40be77- -0x1be);}function _0x4922e4(_0x2aceb2,_0x5906bc){return _0x1b4f03(_0x5906bc-0x4b4,_0x2aceb2);}this[_0x3fda30(0xba,0x8f)]();}[_0x1b4f03(0x15,-0x5b)](_0x57cd1a){function _0x40c2be(_0x474daf,_0x3a7430){return _0x3e9da2(_0x474daf,_0x3a7430-0x2f4);}const _0x331177=_0x57cd1a['flipY']!==undefined&&_0x57cd1a['flipY']!==this['options']['flipY'];function _0x47032a(_0x286b0b,_0x145d15){return _0x1b4f03(_0x145d15-0x37d,_0x286b0b);}this[_0x47032a(0x389,0x35d)]=deepMerge(_0x57cd1a,this['options']),_0x331177&&this[_0x40c2be(0x593,0x56c)]();}['processWindData'](_0x19d29f){const {array:_0x138a70}=_0x19d29f;let {min:_0x1d1260,max:_0x5a390f}=_0x19d29f;function _0x328352(_0x228617,_0x5cf1dd){return _0x3e9da2(_0x5cf1dd,_0x228617- -0xb);}const _0x3c5289=new Float32Array(_0x138a70['length']);function _0x254dbc(_0xf5e040,_0x316338){return _0x3e9da2(_0x316338,_0xf5e040-0x346);}_0x1d1260===undefined&&(console[_0x328352(0x24c,0x27e)](_0x254dbc(0x5a4,0x555)),_0x1d1260=Math['min'](..._0x138a70));_0x5a390f===undefined&&(console['warn'](_0x254dbc(0x5cc,0x5f1)),_0x5a390f=Math['max'](..._0x138a70));const _0x796933=Math['max'](Math[_0x328352(0x274,0x2f5)](_0x1d1260),Math['abs'](_0x5a390f));for(let _0x5e1de5=0x0;_0x5e1de5<_0x138a70['length'];_0x5e1de5++){const _0x1d75a7=_0x138a70[_0x5e1de5]/_0x796933;_0x3c5289[_0x5e1de5]=_0x1d75a7;}return _0x3c5289;}['destroy'](){function _0x52c466(_0x5714b0,_0x12da29){return _0x3e9da2(_0x5714b0,_0x12da29- -0x199);}Object[_0x207b01(0x492,0x435)](this[_0x207b01(0x4e3,0x4bc)])['forEach'](_0x2c1121=>_0x2c1121[_0x207b01(0x485,0x46a)]()),Object[_0x207b01(0x492,0x4b6)](this[_0x52c466(-0x68,0x19)])['forEach'](_0x2e9176=>_0x2e9176[_0x207b01(0x485,0x498)]());function _0x207b01(_0x46f28c,_0x1a5a0c){return _0x3e9da2(_0x1a5a0c,_0x46f28c-0x2ba);}Object['values'](this['primitives'])[_0x207b01(0x498,0x495)](_0x4f554f=>_0x4f554f['destroy']()),this[_0x207b01(0x519,0x4e5)][_0x52c466(0x99,0x32)]();}}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'];function _0xac00(_0x14db8c,_0x3cb93){const _0x5aa14a=_0x5aa1();return _0xac00=function(_0xac0029,_0x14676e){_0xac0029=_0xac0029-0x1a6;let _0x3c606a=_0x5aa14a[_0xac0029];return _0x3c606a;},_0xac00(_0x14db8c,_0x3cb93);}class WindParticlesRendering{constructor(_0x4f9637,_0x3a915d,_0x429c31,_0x11dc2d){this[_0x2c7484(0x3c3,0x3e0)]=_0x4f9637;function _0x2c7484(_0xbc5fcf,_0x5d206f){return _0x1b4f03(_0xbc5fcf-0x362,_0x5d206f);}this[_0x2c7484(0x342,0x32e)]=_0x3a915d,this['viewerParameters']=_0x429c31,this['computing']=_0x11dc2d;(typeof this[_0x2c7484(0x342,0x2d7)][_0x2c7484(0x314,0x391)]!==_0x2c7484(0x39e,0x36a)||this['options']['particlesTextureSize']<=0x0)&&(console['error'](_0x2c7484(0x328,0x34b)),this[_0x2c7484(0x342,0x340)][_0x2c7484(0x314,0x325)]=0x100);this[_0x2c7484(0x3be,0x390)]=this['createColorTableTexture'](),this[_0x380b83(-0x3a,-0x17)]=this['createRenderingTextures']();function _0x380b83(_0x5b9a1c,_0x1cf21c){return _0x3e9da2(_0x1cf21c,_0x5b9a1c- -0x27a);}this['framebuffers']=this[_0x380b83(-0x77,-0xe)](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x3b78f6={};_0x3b78f6[_0x71839f(0x218,0x241)]=this['context'],_0x3b78f6['width']=this[_0x71839f(0x1ed,0x241)]['drawingBufferWidth'],_0x3b78f6[_0x47a24c(-0x127,-0x162)]=this[_0x71839f(0x285,0x241)][_0x71839f(0x1a3,0x187)];function _0x47a24c(_0x36f51e,_0x97e83){return _0x3e9da2(_0x97e83,_0x36f51e- -0x341);}_0x3b78f6[_0x47a24c(-0x188,-0x1e8)]=PixelFormat['RGBA'],_0x3b78f6[_0x47a24c(-0x115,-0xf8)]=PixelDatatype['UNSIGNED_BYTE'];const _0x11b561=_0x3b78f6,_0x109857={};_0x109857[_0x47a24c(-0xd2,-0xf6)]=this['context'],_0x109857['width']=this['context'][_0x47a24c(-0xb0,-0x126)],_0x109857[_0x47a24c(-0x127,-0x1a3)]=this['context']['drawingBufferHeight'];function _0x71839f(_0x2a552c,_0xdbf488){return _0x3e9da2(_0x2a552c,_0xdbf488- -0x2e);}_0x109857[_0x47a24c(-0x188,-0x1f0)]=PixelFormat['DEPTH_COMPONENT'],_0x109857['pixelDatatype']=PixelDatatype[_0x47a24c(-0x117,-0xc0)];const _0x85b349=_0x109857;return{'segmentsColor':new Texture(_0x11b561),'segmentsDepth':new Texture(_0x85b349)};}['createRenderingFramebuffers'](){function _0x3824ea(_0x2f3b10,_0x5a4bcd){return _0x1b4f03(_0x2f3b10- -0xdf,_0x5a4bcd);}const _0x213bf7={};_0x213bf7['context']=this['context'],_0x213bf7['colorTextures']=[this['textures'][_0x37081c(0x3d0,0x3f6)]],_0x213bf7[_0x37081c(0x3eb,0x3e6)]=this[_0x37081c(0x3f4,0x390)]['segmentsDepth'];function _0x37081c(_0x4533df,_0x3375b7){return _0x1b4f03(_0x3375b7-0x35e,_0x4533df);}return{'segments':new Framebuffer(_0x213bf7)};}['destoryRenderingFramebuffers'](){Object['values'](this['framebuffers'])['forEach'](_0x4772ac=>{_0x4772ac['destroy']();});}['createColorTableTexture'](){const _0x4f4c74=new Float32Array(this['options'][_0x4f2731(0x44b,0x45d)][_0x3bce21(0x31,0x49)](_0x270a03=>{function _0x1fd79b(_0x15d3a9,_0x207b84){return _0x4f2731(_0x15d3a9,_0x207b84-0x51);}const _0x58ffce=Color$1['fromCssColorString'](_0x270a03);return[_0x58ffce['red'],_0x58ffce['green'],_0x58ffce['blue'],_0x58ffce[_0x1fd79b(0x3ca,0x430)]];})),_0x2c7612={};_0x2c7612['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x2c7612['magnificationFilter']=TextureMagnificationFilter[_0x4f2731(0x424,0x43b)],_0x2c7612[_0x4f2731(0x3f9,0x3b3)]=TextureWrap[_0x3bce21(0x47,0x10)];function _0x4f2731(_0x12667a,_0x39d53f){return _0x1b4f03(_0x39d53f-0x3fe,_0x12667a);}function _0x3bce21(_0x509e76,_0x4c7726){return _0x3e9da2(_0x509e76,_0x4c7726- -0x232);}return _0x2c7612[_0x3bce21(0x5a,0x4b)]=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this[_0x3bce21(0x9d,0x3d)],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat[_0x3bce21(-0x59,-0x49)],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x2c7612),'source':{'width':this[_0x3bce21(-0x7a,-0x44)]['colors']['length'],'height':0x1,'arrayBufferView':_0x4f4c74}});}['createSegmentsGeometry'](){const _0xad1c8c=0x4,_0x379991=this['options']['particlesTextureSize'];let _0x1a8c40=[];for(let _0x5ef419=0x0;_0x5ef419<_0x379991;_0x5ef419++){for(let _0x3512ca=0x0;_0x3512ca<_0x379991;_0x3512ca++){for(let _0x4069bb=0x0;_0x4069bb<_0xad1c8c;_0x4069bb++){_0x1a8c40[_0x2100cc(0x558,0x5d3)](_0x5ef419/_0x379991),_0x1a8c40[_0x4a6997(0x4b7,0x4f7)](_0x3512ca/_0x379991);}}}_0x1a8c40=new Float32Array(_0x1a8c40);const _0x5bd988=this['options']['particlesTextureSize']**0x2;let _0x2dd07e=[];for(let _0x52aa65=0x0;_0x52aa65<_0x5bd988;_0x52aa65++){_0x2dd07e['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x2dd07e=new Float32Array(_0x2dd07e);let _0x176dc6=[];for(let _0x49b4ba=0x0,_0x3a1426=0x0;_0x49b4ba<_0x5bd988;_0x49b4ba++){_0x176dc6['push'](_0x3a1426+0x0,_0x3a1426+0x1,_0x3a1426+0x2,_0x3a1426+0x2,_0x3a1426+0x1,_0x3a1426+0x3),_0x3a1426+=_0xad1c8c;}function _0x4a6997(_0x63b3f0,_0x21d4bd){return _0x1b4f03(_0x21d4bd-0x478,_0x63b3f0);}_0x176dc6=new Uint32Array(_0x176dc6);const _0x57d91e={};_0x57d91e[_0x2100cc(0x520,0x581)]=ComponentDatatype['FLOAT'];function _0x2100cc(_0xaa2cba,_0x1f6d6a){return _0x3e9da2(_0xaa2cba,_0x1f6d6a-0x346);}_0x57d91e[_0x2100cc(0x5b4,0x5fa)]=0x2,_0x57d91e['values']=_0x1a8c40;const _0x3fbbc8={};_0x3fbbc8['componentDatatype']=ComponentDatatype['FLOAT'],_0x3fbbc8[_0x2100cc(0x60e,0x5fa)]=0x3,_0x3fbbc8['values']=_0x2dd07e;const _0x296f7f=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x57d91e),'normal':new GeometryAttribute(_0x3fbbc8)}),'indices':_0x176dc6});return _0x296f7f;}['createRawRenderState'](_0x390d37){const _0x596154={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x390d37};return Appearance['getDefaultRenderState'](!![],![],_0x596154);}[_0x3e9da2(0x169,0x1e5)](){const _0x1f7405={};function _0x30c8bc(_0xeca196,_0x4e6941){return _0x1b4f03(_0xeca196-0x471,_0x4e6941);}_0x1f7405['st']=0x0,_0x1f7405['normal']=0x1;const _0xf90ef6={};function _0x8fba0c(_0x249b76,_0x343baf){return _0x3e9da2(_0x249b76,_0x343baf- -0x1bd);}_0xf90ef6['enabled']=!![];const _0x12627b={};_0x12627b['enabled']=!![],_0x12627b['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x12627b['blendFuncSource']=WebGLRenderingContext[_0x8fba0c(-0x61,0x5)],_0x12627b['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x18b311={};_0x18b311['viewport']=undefined,_0x18b311['depthTest']=_0xf90ef6,_0x18b311['depthMask']=!![],_0x18b311['blending']=_0x12627b;const _0x3382db=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x1f7405,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this[_0x8fba0c(0xb8,0xa9)][_0x8fba0c(0x75,-0xb)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this['computing'][_0x30c8bc(0x415,0x3f9)][_0x8fba0c(0x68,-0x17)],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x30c8bc(0x480,0x422)],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x254f1f(_0xa55532,_0x15d2d9){return _0x30c8bc(_0x15d2d9- -0x1f4,_0xa55532);}function _0x2f8d7c(_0x1672e3,_0x435322){return _0x8fba0c(_0x1672e3,_0x435322-0x590);}var _0x3b48fd,_0x329270;const _0x493b0c=new Cartesian2(((_0x3b48fd=this['options']['domain'])===null||_0x3b48fd===void 0x0?void 0x0:_0x3b48fd[_0x2f8d7c(0x603,0x60a)])??this[_0x2f8d7c(0x6c2,0x639)]['windData'][_0x2f8d7c(0x58b,0x58a)]['min'],((_0x329270=this['options']['domain'])===null||_0x329270===void 0x0?void 0x0:_0x329270['max'])??this[_0x254f1f(0x2dd,0x2d5)][_0x2f8d7c(0x5bc,0x5f4)][_0x254f1f(0x2ae,0x226)]['max']);return _0x493b0c;},'displayRange':()=>{function _0x224905(_0x3bf356,_0x28cf19){return _0x8fba0c(_0x28cf19,_0x3bf356- -0x8e);}var _0x107f91,_0x2f894c;function _0x14ff6e(_0x56c72c,_0x30fc18){return _0x30c8bc(_0x30fc18- -0xc3,_0x56c72c);}const _0x462335=new Cartesian2(((_0x107f91=this['options']['displayRange'])===null||_0x107f91===void 0x0?void 0x0:_0x107f91['min'])??this[_0x14ff6e(0x3f6,0x406)][_0x224905(-0x2a,-0x76)]['speed']['min'],((_0x2f894c=this['options']['displayRange'])===null||_0x2f894c===void 0x0?void 0x0:_0x2f894c['max'])??this[_0x224905(0x1b,0x47)]['windData'][_0x224905(-0x94,-0xac)]['max']);return _0x462335;},'particleHeight':()=>this['options']['particleHeight']||0x0,'aspect':()=>this[_0x8fba0c(0x42,0xb2)]['drawingBufferWidth']/this['context'][_0x8fba0c(0x3,-0x8)],'pixelSize':()=>this['viewerParameters'][_0x8fba0c(0x79,0x9f)],'lineWidth':()=>{function _0x3d5c6e(_0x7f0a94,_0x3aa3c3){return _0x30c8bc(_0x3aa3c3- -0x1be,_0x7f0a94);}const _0x352574={};_0x352574['min']=0x1,_0x352574['max']=0x2;function _0x101cba(_0x10964c,_0x15fad3){return _0x30c8bc(_0x15fad3- -0x185,_0x10964c);}const _0x3b8438=this[_0x101cba(0x273,0x2cc)]['lineWidth']||_0x352574;return new Cartesian2(_0x3b8438[_0x3d5c6e(0x263,0x2dc)],_0x3b8438['max']);},'lineLength':()=>{const _0x16a1ba={};_0x16a1ba[_0x278c53(0x1b0,0x151)]=0x14;function _0x278c53(_0x484443,_0x43d050){return _0x30c8bc(_0x43d050- -0x349,_0x484443);}_0x16a1ba['max']=0x64;const _0x406ad7=this['options']['lineLength']||_0x16a1ba;return new Cartesian2(_0x406ad7['min'],_0x406ad7['max']);},'is3D':()=>this[_0x8fba0c(0xa,0x19)]['sceneMode']===SceneMode[_0x30c8bc(0x424,0x3ae)],'segmentsDepthTexture':()=>this[_0x8fba0c(0x6d,0x83)][_0x30c8bc(0x460,0x3f5)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x18b311)}),_0xa26c75={};return _0xa26c75[_0x8fba0c(0x51,0x27)]=_0x3382db,_0xa26c75;}[_0x1b4f03(-0x5a,-0x8f)](){const _0xa59c27=this[_0x385384(0x522,0x546)]();function _0x157425(_0x16337b,_0xa64db0){return _0x1b4f03(_0xa64db0-0x343,_0x16337b);}this['primitives']['segments']['geometry']=_0xa59c27;const _0x225f6c={};_0x225f6c[_0x385384(0x57a,0x59c)]=this[_0x157425(0x397,0x3a4)],_0x225f6c['geometry']=_0xa59c27;function _0x385384(_0x16b1dd,_0x34d00f){return _0x1b4f03(_0x34d00f-0x53b,_0x16b1dd);}_0x225f6c['attributeLocations']=this[_0x385384(0x559,0x56c)]['segments']['attributeLocations'],_0x225f6c['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0x2a77f6=VertexArray['fromGeometry'](_0x225f6c);this['primitives'][_0x385384(0x4b6,0x511)]['commandToExecute']&&(this[_0x157425(0x3ac,0x374)]['segments'][_0x157425(0x33d,0x3b7)]['vertexArray']=_0x2a77f6);}['onColorTableChange'](){function _0x36eb33(_0x113853,_0x42d809){return _0x3e9da2(_0x42d809,_0x113853-0x15c);}this[_0x250a2b(0x5f5,0x5fe)][_0x36eb33(0x327,0x338)]();function _0x250a2b(_0x5848dd,_0x23fba0){return _0x1b4f03(_0x23fba0-0x5a2,_0x5848dd);}this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x30433d){const _0x1ac2b0=_0x30433d['colors']&&JSON['stringify'](_0x30433d[_0xd94b77(0x45e,0x45b)])!==JSON[_0xd94b77(0x397,0x3fb)](this[_0xd94b77(0x3a0,0x3dc)][_0x3ace1d(0x2ac,0x27b)]);this['options']=deepMerge(_0x30433d,this[_0xd94b77(0x3ad,0x3dc)]);function _0xd94b77(_0x49a485,_0x55c24){return _0x1b4f03(_0x55c24-0x3fc,_0x49a485);}function _0x3ace1d(_0xc1a5ee,_0x1b7d77){return _0x3e9da2(_0x1b7d77,_0xc1a5ee-0x3f);}_0x1ac2b0&&this[_0x3ace1d(0x21b,0x235)]();}[_0x3e9da2(0x23c,0x1cb)](){function _0x35e3f4(_0x511c9e,_0xfc06f){return _0x1b4f03(_0xfc06f-0x3d9,_0x511c9e);}Object['values'](this[_0x35e3f4(0x48d,0x47e)])[_0x393ddd(0x74,0xb7)](_0x73ab9f=>{_0x73ab9f['destroy']();});function _0x393ddd(_0x4f7ade,_0x4249f5){return _0x1b4f03(_0x4f7ade-0xa4,_0x4249f5);}Object[_0x35e3f4(0x32d,0x3a3)](this['primitives'])['forEach'](_0x9ff02=>{function _0x26a5e6(_0x5a53ae,_0x1a8da1){return _0x35e3f4(_0x1a8da1,_0x5a53ae- -0x1ca);}_0x9ff02[_0x26a5e6(0x1cc,0x205)]();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x1b4f03(-0x6c,-0xf1)];class WindParticleSystem{constructor(_0x229977,_0xe81c54,_0x5799e7,_0x1f253e,_0x4b4164){this[_0x19cce5(0x581,0x533)]=_0x229977,this[_0x19cce5(0x48a,0x4b2)]=_0x5799e7,this[_0x19cce5(0x439,0x49a)]=_0x1f253e;function _0x19cce5(_0x22a9b3,_0x2454f1){return _0x1b4f03(_0x2454f1-0x4d2,_0x22a9b3);}this['computing']=new WindParticlesComputing(_0x229977,_0xe81c54,_0x5799e7,_0x1f253e,_0x4b4164),this['rendering']=new WindParticlesRendering(_0x229977,_0x5799e7,_0x1f253e,this['computing']);function _0xd47cf8(_0x557dc2,_0x132a88){return _0x1b4f03(_0x132a88-0x2b5,_0x557dc2);}this['clearFramebuffers']();}['getPrimitives'](){function _0x5a5ed2(_0x2a5d54,_0x7f2bf0){return _0x3e9da2(_0x2a5d54,_0x7f2bf0-0xb7);}const _0x498987=[this[_0x1b0a2c(0x160,0x1ac)]['primitives'][_0x5a5ed2(0x2ee,0x285)],this['computing'][_0x1b0a2c(0x139,0xe5)][_0x5a5ed2(0x2d6,0x27f)],this['computing'][_0x5a5ed2(0x2fd,0x2f6)]['postProcessingPosition'],this['rendering'][_0x5a5ed2(0x2d6,0x2f6)][_0x1b0a2c(0xde,0xa7)]];function _0x1b0a2c(_0x1c385e,_0x153390){return _0x1b4f03(_0x1c385e-0x108,_0x153390);}return _0x498987;}['clearFramebuffers'](){const _0x4cffbc=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x89313a(_0x13604f,_0x59323c){return _0x3e9da2(_0x59323c,_0x13604f-0x1a4);}function _0x44e768(_0x1977ef,_0x57b357){return _0x1b4f03(_0x1977ef-0x41f,_0x57b357);}Object['keys'](this[_0x44e768(0x4bd,0x4c5)]['framebuffers'])[_0x89313a(0x382,0x311)](_0x236245=>{_0x4cffbc[_0x5d2d96(0x578,0x541)]=this[_0x34864d(-0x158,-0xec)]['framebuffers'][_0x236245];function _0x34864d(_0x599014,_0x40eefd){return _0x89313a(_0x40eefd- -0x53c,_0x599014);}function _0x5d2d96(_0x236fc0,_0x55bc37){return _0x89313a(_0x55bc37-0x1f2,_0x236fc0);}_0x4cffbc[_0x34864d(-0x95,-0x11c)](this['context']);});}['changeOptions'](_0x2f0ead){let _0x4d38e0=![];_0x2f0ead['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x2f0ead['particlesTextureSize']&&(_0x4d38e0=!![]);const _0x1622d7=deepMerge(_0x2f0ead,this['options']);if(_0x1622d7[_0x1f11f7(0xbf,0xb7)]<0x1)throw new Error(_0x1f11f7(0x182,0x158));function _0xd4521a(_0x4ecdaf,_0x283a75){return _0x3e9da2(_0x4ecdaf,_0x283a75-0xee);}this[_0x1f11f7(0x144,0xe5)]=_0x1622d7;function _0x1f11f7(_0xeb10e3,_0x476218){return _0x3e9da2(_0xeb10e3,_0x476218- -0x109);}this[_0xd4521a(0x345,0x39a)][_0xd4521a(0x2a9,0x311)](_0x2f0ead),this['computing'][_0x1f11f7(0x179,0x11a)](_0x2f0ead),_0x4d38e0&&(this['computing'][_0xd4521a(0x2f8,0x2a1)](),this[_0xd4521a(0x2f9,0x354)][_0x1f11f7(0x1bd,0x13d)](),this['rendering']['onParticlesTextureSizeChange']());}[_0x3e9da2(0x27b,0x29a)](_0x2307c6){this['viewerParameters']=_0x2307c6,this['computing']['viewerParameters']=_0x2307c6;function _0x420f6d(_0xbad05c,_0x1c9d10){return _0x3e9da2(_0x1c9d10,_0xbad05c-0x1ac);}this['rendering'][_0x420f6d(0x382,0x39d)]=_0x2307c6;}['destroy'](){this['computing']['destroy']();function _0x3919a8(_0x3ca722,_0x4ebe20){return _0x3e9da2(_0x4ebe20,_0x3ca722- -0x220);}function _0x418756(_0x35319a,_0x3ea402){return _0x1b4f03(_0x35319a-0x119,_0x3ea402);}this[_0x418756(0x1b7,0x133)][_0x3919a8(-0x55,-0x86)]();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x2b6ca6={};_0x2b6ca6['min']=0x1,_0x2b6ca6[_0x3e9da2(0x209,0x1ad)]=0x2;const _0x38b544={};_0x38b544['min']=0x14,_0x38b544['max']=0x64;const _0x24b20b={};_0x24b20b[_0x1b4f03(-0x4e,-0xc8)]=0x64,_0x24b20b['particleHeight']=0x3e8,_0x24b20b['lineWidth']=_0x2b6ca6,_0x24b20b['lineLength']=_0x38b544,_0x24b20b['speedFactor']=0x1,_0x24b20b[_0x3e9da2(0x1cc,0x21c)]=0.003,_0x24b20b['dropRateBump']=0.001,_0x24b20b['colors']=['rgb(206,255,255)'],_0x24b20b[_0x1b4f03(-0x42,-0x26)]=![],_0x24b20b['dynamic']=!![];const DEF_OPTIONS=_0x24b20b;class WindLayer extends BaseLayer$1{constructor(_0x32b08d={}){_0x32b08d={...DEF_OPTIONS,..._0x32b08d},super(_0x32b08d);function _0x4cfcce(_0x37b486,_0x37a1b9){return _0x3e9da2(_0x37a1b9,_0x37b486-0x231);}this[_0x4cfcce(0x49a,0x460)](_0x32b08d,_0x32b08d);}get['layer'](){function _0x46e5fd(_0x4cc64f,_0x48c1d7){return _0x1b4f03(_0x48c1d7-0x1f8,_0x4cc64f);}return this[_0x46e5fd(0x243,0x229)];}get['data'](){function _0x5da574(_0xaa66c,_0x4e080f){return _0x1b4f03(_0xaa66c-0x551,_0x4e080f);}return this[_0x5da574(0x531,0x591)]['data'];}set['data'](_0x22689a){this['options']['data']=_0x22689a;function _0x5f031d(_0x4041ff,_0x377167){return _0x1b4f03(_0x4041ff-0x168,_0x377167);}this[_0x5f031d(0x142,0xd8)](_0x22689a);}get[_0x1b4f03(0x5f,0x8)](){function _0x4b43e3(_0x41d8ff,_0x315779){return _0x1b4f03(_0x41d8ff-0x1a2,_0x315779);}return this[_0x4b43e3(0x182,0x1df)]['colors'];}set['colors'](_0x309a86){this['options']['colors']=_0x309a86;const _0x36ac9d={};_0x36ac9d['colors']=_0x309a86;function _0x20fe3d(_0x2a495b,_0x2441a1){return _0x1b4f03(_0x2a495b- -0x8d,_0x2441a1);}this['_setOptionsHook'](this[_0x20fe3d(-0xad,-0x55)],_0x36ac9d);}['_mountedHook'](){}[_0x3e9da2(0x2e2,0x290)](){function _0x5d2970(_0x1f571e,_0x4345fd){return _0x3e9da2(_0x1f571e,_0x4345fd- -0x2d3);}this[_0x5d2970(-0x68,-0x73)]=this[_0x418495(0x3fe,0x42d)]['scene'],this['camera']=this[_0x5d2970(-0x89,-0x53)][_0x418495(0x421,0x3df)];this[_0x5d2970(-0xc7,-0xe5)]['data']&&this[_0x5d2970(-0x12b,-0xeb)](this['options']['data']);if(!this['windData'])return;this[_0x5d2970(-0x167,-0xfd)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x418495(0x3de,0x3d1)][_0x5d2970(-0x86,-0x8a)]},this[_0x418495(0x339,0x362)](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this['windData'],this[_0x5d2970(-0x112,-0xe5)],this['viewerParameters'],this[_0x418495(0x3de,0x44c)]),this[_0x5d2970(-0x89,-0x94)]=this[_0x418495(0x32f,0x39d)][_0x418495(0x38a,0x3b6)](),this['primitives']['forEach'](_0xf595a6=>{function _0x480c8a(_0x38ec1e,_0x2cfc47){return _0x5d2970(_0x38ec1e,_0x2cfc47-0x132);}function _0x1332d6(_0x369567,_0x9052e2){return _0x5d2970(_0x9052e2,_0x369567-0x3b8);}this['scene'][_0x480c8a(0xd7,0x9e)][_0x480c8a(0x8d,0xbc)](_0xf595a6);}),this[_0x5d2970(0x3c,-0x30)]['percentageChanged']=0.01,this['camera']['changed']['addEventListener'](this[_0x418495(0x339,0x35c)]['bind'](this)),this['scene']['morphComplete']['addEventListener'](this['updateViewerParameters'][_0x5d2970(-0x46,-0xb8)](this));function _0x418495(_0x4ac4a4,_0x208ecf){return _0x3e9da2(_0x208ecf,_0x4ac4a4-0x17e);}window['addEventListener'](_0x418495(0x40a,0x47a),this['updateViewerParameters']['bind'](this));}['_removedHook'](){this[_0x56a8bd(0x703,0x68c)]['changed']['removeEventListener'](this['updateViewerParameters'][_0x56a8bd(0x653,0x604)](this)),this[_0x9629c2(0x182,0x11e)]['morphComplete'][_0x9629c2(0x163,0xe5)](this[_0x9629c2(0x1b,0x79)]['bind'](this));function _0x56a8bd(_0x2211e2,_0x2ee9bf){return _0x1b4f03(_0x2ee9bf-0x5f7,_0x2211e2);}window[_0x9629c2(0x7c,0xe5)]('resize',this[_0x56a8bd(0x578,0x5a4)][_0x56a8bd(0x5ff,0x604)](this));this[_0x56a8bd(0x684,0x628)]&&(this['primitives']['forEach'](_0x47140d=>{function _0x2ae9bd(_0x4c9214,_0x5a02f5){return _0x56a8bd(_0x4c9214,_0x5a02f5- -0x6e1);}function _0x44d70e(_0x16489a,_0x2bdf30){return _0x56a8bd(_0x2bdf30,_0x16489a- -0xcf);}this[_0x2ae9bd(-0xec,-0x98)][_0x2ae9bd(-0x57,-0xb9)][_0x44d70e(0x53a,0x595)](_0x47140d);}),delete this[_0x9629c2(0x133,0xfd)]);function _0x9629c2(_0x18b427,_0x1b3bfa){return _0x1b4f03(_0x1b3bfa-0xcc,_0x18b427);}this['particleSystem']&&(this['particleSystem']['destroy'](),delete this['particleSystem']);}['setData'](_0x17c1b9,_0x2dd4d7){function _0x41cd85(_0x3b7202,_0x4bc433){return _0x3e9da2(_0x3b7202,_0x4bc433- -0x24e);}this[_0x25e106(0x460,0x3e8)]=this['processWindData'](_0x17c1b9);if(_0x2dd4d7){this['_removedHook'](),this['_addedHook']();return;}function _0x25e106(_0x2a3392,_0x56927d){return _0x1b4f03(_0x2a3392-0x44d,_0x56927d);}this[_0x41cd85(-0x1a,-0x9d)]?(this[_0x25e106(0x3f0,0x3cf)][_0x25e106(0x4a5,0x435)]['updateWindData'](this['windData']),this['scene'][_0x25e106(0x4aa,0x4ab)]()):this['_addedHook']();}[_0x3e9da2(0x262,0x269)](_0x4423c6,_0x11e550){function _0x212e5c(_0x1d6196,_0x44a314){return _0x3e9da2(_0x44a314,_0x1d6196-0x15f);}function _0x162ccb(_0x3c0f65,_0x405274){return _0x1b4f03(_0x3c0f65-0xf7,_0x405274);}this[_0x162ccb(0x9a,0x53)]&&(this['particleSystem']['changeOptions'](_0x11e550),this['scene'][_0x162ccb(0x154,0x1c9)]());}[_0x3e9da2(0x210,0x230)](_0x258ab5){var _0x2dd799,_0x421dda;function _0x37f6a9(_0x61e315,_0x504c8b){return _0x1b4f03(_0x61e315- -0x187,_0x504c8b);}function _0x167897(_0x32d94e,_0x1d5a77){return _0x3e9da2(_0x1d5a77,_0x32d94e-0x151);}const _0x5923d7={..._0x258ab5},_0xacfc01=_0x5923d7;!_0xacfc01['height']&&_0xacfc01['rows']&&(_0xacfc01['height']=_0xacfc01[_0x167897(0x345,0x31f)]);!_0xacfc01['width']&&_0xacfc01['cols']&&(_0xacfc01[_0x167897(0x361,0x34a)]=_0xacfc01[_0x37f6a9(-0x1dd,-0x1cb)]);!_0xacfc01['bounds']&&(_0xacfc01['bounds']={'west':_0xacfc01[_0x37f6a9(-0x1c8,-0x230)],'south':_0xacfc01[_0x167897(0x389,0x369)],'east':_0xacfc01[_0x167897(0x3f2,0x423)],'north':_0xacfc01[_0x37f6a9(-0x1cb,-0x142)]});if(!_0xacfc01['u']){const _0x9eb308={};_0x9eb308['array']=_0x258ab5['udata'],_0x9eb308[_0x167897(0x388,0x3bc)]=_0x258ab5['umin'],_0x9eb308['max']=_0x258ab5['umax'],_0xacfc01['u']=_0x9eb308;}if(!_0xacfc01['v']){const _0x168aaf={};_0x168aaf['array']=_0x258ab5[_0x167897(0x301,0x2f9)],_0x168aaf['min']=_0x258ab5[_0x167897(0x394,0x319)],_0x168aaf['max']=_0x258ab5[_0x37f6a9(-0x15f,-0xd9)],_0xacfc01['v']=_0x168aaf;}if(((_0x2dd799=_0xacfc01['speed'])===null||_0x2dd799===void 0x0?void 0x0:_0x2dd799[_0x167897(0x388,0x3e4)])===undefined||((_0x421dda=_0xacfc01['speed'])===null||_0x421dda===void 0x0?void 0x0:_0x421dda['max'])===undefined||_0xacfc01[_0x37f6a9(-0x1de,-0x230)][_0x37f6a9(-0x1be,-0x1e8)]===undefined){const _0x130146={'array':new Float32Array(_0xacfc01['u'][_0x37f6a9(-0x1be,-0x241)]['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x400fe9=0x0;_0x400fe9<_0xacfc01['u']['array']['length'];_0x400fe9++){_0x130146['array'][_0x400fe9]=Math[_0x37f6a9(-0x114,-0xf6)](_0xacfc01['u'][_0x167897(0x328,0x2ed)][_0x400fe9]*_0xacfc01['u'][_0x167897(0x328,0x331)][_0x400fe9]+_0xacfc01['v']['array'][_0x400fe9]*_0xacfc01['v']['array'][_0x400fe9]),_0x130146['array'][_0x400fe9]!==0x0&&(_0x130146['min']=Math[_0x37f6a9(-0x15e,-0x1d6)](_0x130146['min'],_0x130146['array'][_0x400fe9]),_0x130146['max']=Math[_0x37f6a9(-0x1e8,-0x262)](_0x130146['max'],_0x130146['array'][_0x400fe9]));}_0xacfc01['speed']=_0x130146;}return _0xacfc01;}['updateViewerParameters'](){var _0x2d61fa;const _0x514246=this['scene'],_0x303daf=_0x514246[_0x476948(0x568,0x5a2)],_0x2fe451={};_0x2fe451['x']=0x0,_0x2fe451['y']=0x0;const _0x1a2517={};_0x1a2517['x']=0x0,_0x1a2517['y']=_0x303daf['clientHeight'];const _0xc87c99={};_0xc87c99['x']=_0x303daf['clientWidth'],_0xc87c99['y']=0x0;const _0x26e35e={};function _0x476948(_0x1f1b1d,_0x5c457b){return _0x3e9da2(_0x1f1b1d,_0x5c457b-0x35e);}_0x26e35e['x']=_0x303daf[_0x476948(0x521,0x586)],_0x26e35e['y']=_0x303daf['clientHeight'];const _0x6807a7=[_0x2fe451,_0x1a2517,_0xc87c99,_0x26e35e];let _0x3e62cc=0xb4,_0x2709ab=-0xb4,_0x1bac23=0x5a,_0x2eac6d=-0x5a,_0x5e6a39=![];for(const _0x2a20b7 of _0x6807a7){const _0x17dd43=_0x514246[_0x476948(0x605,0x601)]['pickEllipsoid'](new Cesium$1[(_0x1ecc44(0x11c,0xe0))](_0x2a20b7['x'],_0x2a20b7['y']),_0x514246[_0x476948(0x571,0x5e9)]['ellipsoid']);if(!_0x17dd43){_0x5e6a39=!![];break;}const _0xa4bdec=_0x514246['globe'][_0x1ecc44(0x1c0,0x1dd)][_0x476948(0x59e,0x60b)](_0x17dd43),_0x238727=Cesium$1[_0x476948(0x4e1,0x55f)]['toDegrees'](_0xa4bdec['longitude']),_0x781104=Cesium$1[_0x1ecc44(0x10f,0x194)]['toDegrees'](_0xa4bdec[_0x476948(0x540,0x55c)]);_0x3e62cc=Math['min'](_0x3e62cc,_0x238727),_0x2709ab=Math['max'](_0x2709ab,_0x238727),_0x1bac23=Math['min'](_0x1bac23,_0x781104),_0x2eac6d=Math[_0x1ecc44(0xbb,0x12f)](_0x2eac6d,_0x781104);}function _0x1ecc44(_0x353f43,_0x274106){return _0x3e9da2(_0x274106,_0x353f43- -0xf2);}if(!_0x5e6a39){const _0x6644ab=new Cesium$1['Cartesian2'](Math['max'](this['windData']['bounds'][_0x1ecc44(0x175,0xf9)],_0x3e62cc),Math['min'](this['windData']['bounds']['east'],_0x2709ab)),_0x17ecff=new Cesium$1[(_0x476948(0x4ef,0x56c))](Math[_0x476948(0x4c2,0x50b)](this['windData']['bounds']['south'],_0x1bac23),Math[_0x476948(0x572,0x595)](this[_0x476948(0x594,0x57f)]['bounds'][_0x1ecc44(0x105,0x182)],_0x2eac6d)),_0x5c8fc8=(_0x6644ab['y']-_0x6644ab['x'])*0.05,_0x1c3873=(_0x17ecff['y']-_0x17ecff['x'])*0.05;_0x6644ab['x']=Math['max'](this['windData'][_0x1ecc44(0x13f,0x172)]['west'],_0x6644ab['x']-_0x5c8fc8),_0x6644ab['y']=Math['min'](this[_0x476948(0x57d,0x57f)]['bounds']['east'],_0x6644ab['y']+_0x5c8fc8),_0x17ecff['x']=Math[_0x476948(0x482,0x50b)](this[_0x476948(0x57e,0x57f)]['bounds']['south'],_0x17ecff['x']-_0x1c3873),_0x17ecff['y']=Math['min'](this['windData'][_0x476948(0x58b,0x58f)]['north'],_0x17ecff['y']+_0x1c3873),this['viewerParameters']['lonRange']=_0x6644ab,this[_0x1ecc44(0xe4,0xce)]['latRange']=_0x17ecff;const _0x4fed2e=this['windData']['bounds']['east']-this['windData'][_0x476948(0x5c7,0x58f)]['west'],_0x26af64=this['windData'][_0x476948(0x540,0x58f)]['north']-this[_0x476948(0x600,0x57f)]['bounds']['south'],_0x3b649c=(_0x6644ab['y']-_0x6644ab['x'])/_0x4fed2e,_0x5c444f=(_0x17ecff['y']-_0x17ecff['x'])/_0x26af64,_0xf0b7ef=Math['min'](_0x3b649c,_0x5c444f),_0x13ee96=0x3e8*_0xf0b7ef;_0x13ee96>0x0&&(this[_0x1ecc44(0xe4,0x149)]['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0x13ee96)));}this[_0x476948(0x4ae,0x534)][_0x476948(0x548,0x567)]=this['scene']['mode'],(_0x2d61fa=this[_0x1ecc44(0xbf,0x117)])===null||_0x2d61fa===void 0x0||_0x2d61fa['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x552caa,_0x84e91a){const {bounds:_0x5c5309,width:_0x53f1ce,height:_0x2350a5,u:_0x58baa5,v:_0x3a3012,speed:_0x2ba68e}=this['windData'],{flipY:_0x99a533}=this['options'];if(_0x552caa<_0x5c5309['west']||_0x552caa>_0x5c5309[_0x20569d(0x1df,0x230)]||_0x84e91a<_0x5c5309['south']||_0x84e91a>_0x5c5309[_0x20569d(0x254,0x260)])return null;const _0x5796ce=(_0x552caa-_0x5c5309['west'])/(_0x5c5309['east']-_0x5c5309[_0x4d8cd7(0x571,0x5a0)])*(_0x53f1ce-0x1);let _0x5ba217=(_0x84e91a-_0x5c5309[_0x20569d(0x272,0x28f)])/(_0x5c5309['north']-_0x5c5309[_0x20569d(0x24c,0x28f)])*(_0x2350a5-0x1);_0x99a533&&(_0x5ba217=_0x2350a5-0x1-_0x5ba217);const _0x4bdb85=Math['floor'](_0x5796ce),_0x262fa2=Math['floor'](_0x5ba217),_0x4798ab=Math['floor'](_0x5796ce),_0x3ec22e=Math[_0x20569d(0x2a4,0x2a0)](_0x4798ab+0x1,_0x53f1ce-0x1),_0x218f45=Math['floor'](_0x5ba217),_0x5511e0=Math['min'](_0x218f45+0x1,_0x2350a5-0x1),_0x512616=_0x5796ce-_0x4798ab,_0x2ba7a0=_0x5ba217-_0x218f45,_0x5d2d14=_0x262fa2*_0x53f1ce+_0x4bdb85,_0x4791d8=_0x218f45*_0x53f1ce+_0x4798ab,_0x3676eb=_0x218f45*_0x53f1ce+_0x3ec22e,_0x90d5a1=_0x5511e0*_0x53f1ce+_0x4798ab,_0x8df2e3=_0x5511e0*_0x53f1ce+_0x3ec22e,_0x12ec59=_0x58baa5[_0x20569d(0x258,0x240)][_0x4791d8],_0x4161e7=_0x58baa5[_0x20569d(0x1ef,0x240)][_0x3676eb],_0x49504a=_0x58baa5['array'][_0x90d5a1],_0x10389a=_0x58baa5[_0x20569d(0x2b3,0x240)][_0x8df2e3],_0xf099dc=(0x1-_0x512616)*(0x1-_0x2ba7a0)*_0x12ec59+_0x512616*(0x1-_0x2ba7a0)*_0x4161e7+(0x1-_0x512616)*_0x2ba7a0*_0x49504a+_0x512616*_0x2ba7a0*_0x10389a,_0x3d8916=_0x3a3012['array'][_0x4791d8];function _0x20569d(_0x5c0cb5,_0x86087f){return _0x1b4f03(_0x86087f-0x277,_0x5c0cb5);}const _0x3b2981=_0x3a3012[_0x20569d(0x1d2,0x240)][_0x3676eb],_0x3fcfa5=_0x3a3012['array'][_0x90d5a1],_0x503359=_0x3a3012['array'][_0x8df2e3],_0x54f8d0=(0x1-_0x512616)*(0x1-_0x2ba7a0)*_0x3d8916+_0x512616*(0x1-_0x2ba7a0)*_0x3b2981+(0x1-_0x512616)*_0x2ba7a0*_0x3fcfa5+_0x512616*_0x2ba7a0*_0x503359,_0x13ece8=Math['sqrt'](_0xf099dc*_0xf099dc+_0x54f8d0*_0x54f8d0),_0x4a0685={};_0x4a0685['u']=_0x58baa5['array'][_0x5d2d14],_0x4a0685['v']=_0x3a3012['array'][_0x5d2d14],_0x4a0685[_0x4d8cd7(0x4c1,0x483)]=_0x2ba68e['array'][_0x5d2d14];const _0x568199={};_0x568199['u']=_0xf099dc,_0x568199['v']=_0x54f8d0,_0x568199['speed']=_0x13ece8;const _0x4fda39={};_0x4fda39['original']=_0x4a0685,_0x4fda39[_0x4d8cd7(0x4b2,0x51f)]=_0x568199;function _0x4d8cd7(_0x4a8af6,_0x125aeb){return _0x3e9da2(_0x125aeb,_0x4a8af6-0x30a);}return _0x4fda39;}}function _0x3e9da2(_0x4d1795,_0x186b27){return _0xac00(_0x186b27- -0x4,_0x4d1795);}mars3d__namespace[_0x1b4f03(0x7c,0xf7)][_0x1b4f03(0x16,0x49)]('wind',WindLayer),mars3d__namespace[_0x1b4f03(-0x14,0x39)]['WindLayer']=WindLayer;class CanvasParticle{constructor(){function _0x362fa4(_0x4f1cc4,_0x21c9e9){return _0x3e9da2(_0x21c9e9,_0x4f1cc4- -0x23d);}this[_0x362fa4(-0x79,-0xe3)]=null,this['lat']=null,this[_0x3609ee(0x409,0x431)]=null,this['tlat']=null,this[_0x3609ee(0x3ed,0x464)]=null;function _0x3609ee(_0x4a8047,_0x23a037){return _0x1b4f03(_0x4a8047-0x3a0,_0x23a037);}this['speed']=null;}['destroy'](){for(const _0x4a048e in this){delete this[_0x4a048e];}}}class CanvasWindField{constructor(_0x2a5ad8){function _0x530b17(_0x4abce2,_0x5abd0a){return _0x1b4f03(_0x4abce2-0x535,_0x5abd0a);}this[_0x530b17(0x5ba,0x5c1)](_0x2a5ad8);}get['speedRate'](){function _0x3ee1c0(_0x50dafb,_0x271f4e){return _0x3e9da2(_0x50dafb,_0x271f4e- -0x1d4);}return this[_0x3ee1c0(0x21,0x73)];}set['speedRate'](_0x7e3965){function _0x5c8c36(_0x301c5d,_0x35b9f9){return _0x1b4f03(_0x301c5d- -0x11a,_0x35b9f9);}this[_0x5c8c36(-0xe1,-0xcd)]=(0x64-(_0x7e3965>0x63?0x63:_0x7e3965))*0x64;function _0x1e2e29(_0x3c9ed0,_0xa96655){return _0x3e9da2(_0xa96655,_0x3c9ed0-0x1ad);}this['_calc_speedRate']=[(this[_0x5c8c36(-0x87,-0xad)]-this[_0x5c8c36(-0x15b,-0x147)])/this['_speedRate'],(this[_0x5c8c36(-0x15e,-0x18c)]-this[_0x5c8c36(-0xf0,-0x10a)])/this[_0x5c8c36(-0xe1,-0xf9)]];}get['maxAge'](){return this['_maxAge'];}set[_0x1b4f03(-0x67,0x9)](_0x3505cf){this['_maxAge']=_0x3505cf;}['setOptions'](_0x3a50b3){this[_0x492b0a(0x7d,0x74)]=_0x3a50b3,this['maxAge']=_0x3a50b3[_0x492b0a(0x2a,0x2d)]||0x78;function _0x492b0a(_0x4f9a10,_0x338b48){return _0x3e9da2(_0x4f9a10,_0x338b48- -0x17a);}this['speedRate']=_0x3a50b3[_0x49319d(-0xe0,-0xed)]||0x32,this[_0x49319d(-0x102,-0xe7)]=[];function _0x49319d(_0x12091c,_0x1b02eb){return _0x3e9da2(_0x1b02eb,_0x12091c- -0x2e4);}const _0x495930=_0x3a50b3['particlesNumber']||0x1000;for(let _0x5c5ebf=0x0;_0x5c5ebf<_0x495930;_0x5c5ebf++){const _0x5d3bce=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0x5d3bce);}}[_0x1b4f03(0x43,0xc6)](_0x7ec939){this[_0x517070(-0x1bb,-0x177)]=_0x7ec939['rows'];function _0x3091c6(_0x4cad8d,_0x17e019){return _0x1b4f03(_0x4cad8d-0x59a,_0x17e019);}this[_0x517070(-0x12d,-0x1b3)]=_0x7ec939['cols'],this[_0x3091c6(0x559,0x5d1)]=_0x7ec939['xmin'],this['xmax']=_0x7ec939['xmax'],this['ymin']=_0x7ec939[_0x517070(-0x18c,-0x133)],this['ymax']=_0x7ec939['ymax'],this['grid']=[];const _0x294c99=_0x7ec939[_0x517070(-0x63,-0xcf)],_0xf20f47=_0x7ec939[_0x517070(-0x1e2,-0x1bb)];let _0x2de0c9=![];_0x294c99[_0x3091c6(0x577,0x54d)]===this['rows']&&_0x294c99[0x0]['length']===this['cols']&&(_0x2de0c9=!![]);let _0x5c9c81=0x0;function _0x517070(_0x41cf27,_0x26fd3d){return _0x1b4f03(_0x26fd3d- -0x15d,_0x41cf27);}let _0xdc454=null,_0xb02f40=null;for(let _0x54d703=0x0;_0x54d703<this[_0x517070(-0x14c,-0x177)];_0x54d703++){_0xdc454=[];for(let _0x492392=0x0;_0x492392<this['cols'];_0x492392++,_0x5c9c81++){_0x2de0c9?_0xb02f40=this['_calcUV'](_0x294c99[_0x54d703][_0x492392],_0xf20f47[_0x54d703][_0x492392]):_0xb02f40=this[_0x3091c6(0x5d8,0x653)](_0x294c99[_0x5c9c81],_0xf20f47[_0x5c9c81]),_0xdc454[_0x517070(-0xff,-0xde)](_0xb02f40);}this[_0x3091c6(0x55e,0x51c)][_0x517070(-0x146,-0xde)](_0xdc454);}this[_0x517070(-0x174,-0x17d)][_0x517070(-0xdd,-0xc7)]&&this['grid'][_0x517070(-0x1ce,-0x17b)]();}['clear'](){delete this['rows'],delete this['cols'],delete this['xmin'],delete this[_0x2039c5(-0x2,0x5a)],delete this['ymin'],delete this['ymax'],delete this['grid'];function _0x2039c5(_0x6d113d,_0x3e639c){return _0x1b4f03(_0x6d113d- -0x95,_0x3e639c);}delete this['particles'];}['toGridXY'](_0x17232e,_0x456243){function _0x3d4420(_0x4e4c47,_0x5a20e5){return _0x3e9da2(_0x4e4c47,_0x5a20e5-0x2a4);}function _0x42f2e6(_0x29faab,_0x962f81){return _0x3e9da2(_0x29faab,_0x962f81- -0x6a);}const _0xfe0b0f=(_0x17232e-this['xmin'])/(this[_0x3d4420(0x595,0x545)]-this['xmin'])*(this['cols']-0x1),_0x2b63ae=(this[_0x3d4420(0x4b9,0x46e)]-_0x456243)/(this[_0x3d4420(0x4ba,0x46e)]-this['ymin'])*(this[_0x3d4420(0x511,0x498)]-0x1);return[_0xfe0b0f,_0x2b63ae];}['getUVByXY'](_0x52a5b5,_0xabad62){function _0x33916d(_0x1bfeb8,_0x19c322){return _0x1b4f03(_0x1bfeb8-0x90,_0x19c322);}if(_0x52a5b5<0x0||_0x52a5b5>=this['cols']||_0xabad62>=this['rows'])return[0x0,0x0,0x0];const _0x51dbc6=Math['floor'](_0x52a5b5),_0x5c16c2=Math[_0x33916d(0x117,0x8d)](_0xabad62);if(_0x51dbc6===_0x52a5b5&&_0x5c16c2===_0xabad62)return this[_0xb768e3(-0x4f,-0xa7)][_0xabad62][_0x52a5b5];const _0x20a961=_0x51dbc6+0x1,_0x45363b=_0x5c16c2+0x1,_0x196a7a=this['getUVByXY'](_0x51dbc6,_0x5c16c2),_0x2a658f=this['getUVByXY'](_0x20a961,_0x5c16c2),_0x3f19d3=this[_0x33916d(0xb1,0x81)](_0x51dbc6,_0x45363b),_0x488df4=this[_0xb768e3(0xe,0xb)](_0x20a961,_0x45363b);let _0x23a58d=null;try{_0x23a58d=this['_bilinearInterpolation'](_0x52a5b5-_0x51dbc6,_0xabad62-_0x5c16c2,_0x196a7a,_0x2a658f,_0x3f19d3,_0x488df4);}catch(_0x343bc9){console[_0xb768e3(-0x3,0x34)](_0x52a5b5,_0xabad62);}function _0xb768e3(_0x3ffd0d,_0x48b8ae){return _0x1b4f03(_0x3ffd0d- -0x13,_0x48b8ae);}return _0x23a58d;}[_0x3e9da2(0x1f9,0x259)](_0x3ba006,_0x41d1ed,_0x3a779c,_0xf344b,_0x3ee16f,_0x4e5020){const _0x4c15c1=0x1-_0x3ba006,_0xaed071=0x1-_0x41d1ed,_0x59e5e4=_0x4c15c1*_0xaed071,_0x5e18f5=_0x3ba006*_0xaed071,_0x12416d=_0x4c15c1*_0x41d1ed,_0x51bc21=_0x3ba006*_0x41d1ed,_0x3758f0=_0x3a779c[0x0]*_0x59e5e4+_0xf344b[0x0]*_0x5e18f5+_0x3ee16f[0x0]*_0x12416d+_0x4e5020[0x0]*_0x51bc21,_0x2c35d4=_0x3a779c[0x1]*_0x59e5e4+_0xf344b[0x1]*_0x5e18f5+_0x3ee16f[0x1]*_0x12416d+_0x4e5020[0x1]*_0x51bc21;function _0x4f03ef(_0x2ead8e,_0x210511){return _0x3e9da2(_0x210511,_0x2ead8e- -0xdd);}return this[_0x4f03ef(0x16f,0x1c0)](_0x3758f0,_0x2c35d4);}['_calcUV'](_0x47a67a,_0x59cb11){function _0x4f69ab(_0x4f7c03,_0x13f862){return _0x3e9da2(_0x13f862,_0x4f7c03-0x27b);}return[+_0x47a67a,+_0x59cb11,Math[_0x4f69ab(0x4fc,0x551)](_0x47a67a*_0x47a67a+_0x59cb11*_0x59cb11)];}[_0x3e9da2(0x191,0x1db)](_0xe6d6ea,_0x94056d){if(!this[_0xb9f08a(0x48f,0x4ce)](_0xe6d6ea,_0x94056d))return null;function _0x226f66(_0x481efb,_0x52c7f2){return _0x1b4f03(_0x52c7f2-0x3d0,_0x481efb);}const _0x1c594e=this['toGridXY'](_0xe6d6ea,_0x94056d),_0x3238c3=this[_0x226f66(0x3ba,0x3f1)](_0x1c594e[0x0],_0x1c594e[0x1]);function _0xb9f08a(_0x1b37ed,_0x436e91){return _0x3e9da2(_0x1b37ed,_0x436e91-0x30f);}return _0x3238c3;}['isInExtent'](_0xce5884,_0x22d39e){function _0xc97d40(_0x463738,_0x64706d){return _0x1b4f03(_0x463738-0xae,_0x64706d);}return _0xce5884>=this['xmin']&&_0xce5884<=this['xmax']&&_0x22d39e>=this['ymin']&&_0x22d39e<=this[_0xc97d40(0x6a,0x77)]?!![]:![];}['getRandomLatLng'](){const _0x5d8d92=fRandomByfloat(this['xmin'],this['xmax']),_0x18b00f=fRandomByfloat(this['ymin'],this['ymax']),_0x58465a={};function _0xde50ec(_0x334db2,_0xcf5d0d){return _0x3e9da2(_0x334db2,_0xcf5d0d- -0x2dc);}_0x58465a[_0x461afa(0x4c7,0x530)]=_0x18b00f;function _0x461afa(_0x21646d,_0x469a47){return _0x1b4f03(_0x21646d-0x487,_0x469a47);}return _0x58465a[_0x461afa(0x43d,0x48e)]=_0x5d8d92,_0x58465a;}['getParticles'](){function _0x3d1433(_0x42a74f,_0x896c3d){return _0x1b4f03(_0x896c3d-0x5cc,_0x42a74f);}let _0x523877,_0x42adf9,_0x3a0160;function _0x3baa03(_0x53e468,_0x1f1b14){return _0x1b4f03(_0x1f1b14-0x205,_0x53e468);}for(let _0x6f6535=0x0,_0x575ad7=this['particles']['length'];_0x6f6535<_0x575ad7;_0x6f6535++){let _0x3c869f=this[_0x3d1433(0x605,0x5a0)][_0x6f6535];_0x3c869f['age']<=0x0&&(_0x3c869f=this['_randomParticle'](_0x3c869f));if(_0x3c869f['age']>0x0){const _0x4f20af=_0x3c869f[_0x3d1433(0x676,0x635)],_0xbe28c=_0x3c869f[_0x3baa03(0x2b8,0x27b)];_0x3a0160=this[_0x3baa03(0x165,0x1d2)](_0x4f20af,_0xbe28c),_0x3a0160?(_0x523877=_0x4f20af+this[_0x3d1433(0x514,0x598)][0x0]*_0x3a0160[0x0],_0x42adf9=_0xbe28c+this['_calc_speedRate'][0x1]*_0x3a0160[0x1],_0x3c869f['lng']=_0x4f20af,_0x3c869f[_0x3baa03(0x1ed,0x245)]=_0xbe28c,_0x3c869f[_0x3d1433(0x5da,0x635)]=_0x523877,_0x3c869f['tlat']=_0x42adf9,_0x3c869f['speed']=_0x3a0160[0x2],_0x3c869f[_0x3baa03(0x254,0x252)]--):_0x3c869f[_0x3baa03(0x206,0x252)]=0x0;}}return this['particles'];}['_randomParticle'](_0x1f425){let _0x5898f5,_0x43aef9;for(let _0x22dc77=0x0;_0x22dc77<0x1e;_0x22dc77++){_0x5898f5=this[_0x1c2312(0x1d8,0x1b5)](),_0x43aef9=this['getUVByPoint'](_0x5898f5['lng'],_0x5898f5[_0x287b02(-0x10,0x38)]);if(_0x43aef9&&_0x43aef9[0x2]>0x0)break;}if(!_0x43aef9)return _0x1f425;function _0x287b02(_0x17a6d1,_0x1c49cf){return _0x3e9da2(_0x17a6d1,_0x1c49cf- -0x216);}const _0x1255da=_0x5898f5['lng']+this['_calc_speedRate'][0x0]*_0x43aef9[0x0],_0x3eba85=_0x5898f5['lat']+this['_calc_speedRate'][0x1]*_0x43aef9[0x1];_0x1f425['lng']=_0x5898f5[_0x287b02(-0x6,-0x52)],_0x1f425[_0x287b02(0x9b,0x38)]=_0x5898f5[_0x287b02(0x78,0x38)],_0x1f425['tlng']=_0x1255da,_0x1f425[_0x1c2312(0x1e3,0x205)]=_0x3eba85,_0x1f425['age']=Math['round'](0xa+Math[_0x287b02(0x52,0x98)]()*this[_0x1c2312(0x106,0xfe)]),_0x1f425[_0x1c2312(0x116,0x143)]=_0x43aef9[0x2];function _0x1c2312(_0x4418dd,_0x529cd9){return _0x3e9da2(_0x529cd9,_0x4418dd- -0xa1);}return _0x1f425;}['destroy'](){for(const _0x47c676 in this){delete this[_0x47c676];}}}function fRandomByfloat(_0x277957,_0x322fa6){function _0xc65275(_0x2da810,_0x407c54){return _0x1b4f03(_0x2da810-0x30a,_0x407c54);}return _0x277957+Math[_0xc65275(0x3aa,0x351)]()*(_0x322fa6-_0x277957);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x1b4f03(-0x14,-0x89)][_0x1b4f03(0x8f,0x94)];class CanvasWindLayer extends BaseLayer{constructor(_0x54cb0a={}){function _0x3c1021(_0x3d7ff2,_0xeebed9){return _0x3e9da2(_0xeebed9,_0x3d7ff2-0x29);}super(_0x54cb0a),this[_0x3c1021(0x292,0x292)](_0x54cb0a),this['canvas']=null;function _0x1cd2c0(_0x2e5bb3,_0x1db0c2){return _0x1b4f03(_0x2e5bb3-0x1ab,_0x1db0c2);}_0x54cb0a[_0x3c1021(0x296,0x2f4)]&&_0x54cb0a['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x54cb0a));}['_setOptionsHook'](_0x45839f,_0x267c2c){this['frameTime']=0x3e8/(_0x45839f[_0x539add(-0x88,-0x57)]||0xa);function _0x36266b(_0xe42c16,_0x457083){return _0x3e9da2(_0x457083,_0xe42c16- -0x392);}this[_0x36266b(-0x187,-0x1b2)]=this[_0x36266b(-0x1a4,-0x1d5)]['pointerEvents']??![],this[_0x36266b(-0x19c,-0x21f)]=_0x45839f['color']||_0x539add(-0x9a,-0xd5);function _0x539add(_0x27469b,_0x542ae4){return _0x1b4f03(_0x542ae4- -0xbf,_0x27469b);}this[_0x539add(-0x102,-0x9a)]=_0x45839f['lineWidth']||0x1,this['fixedHeight']=_0x45839f['fixedHeight']??0x0,this['reverseY']=_0x45839f['reverseY']??![],this[_0x539add(-0xf5,-0xd1)]&&this[_0x539add(-0x8e,-0xd1)][_0x36266b(-0xff,-0xab)](_0x45839f);}get['layer'](){function _0x391202(_0x3b937b,_0x414334){return _0x1b4f03(_0x3b937b- -0xb4,_0x414334);}return this[_0x391202(-0x7e,-0x2c)];}get['canvasWidth'](){return this['_map']['scene']['canvas']['clientWidth'];}get['canvasHeight'](){return this['_map']['scene']['canvas']['clientHeight'];}get[_0x1b4f03(0x26,0xac)](){function _0x4616bd(_0x141748,_0x2c5307){return _0x3e9da2(_0x2c5307,_0x141748- -0x398);}return this[_0x4616bd(-0x18d,-0x1ea)];}set['pointerEvents'](_0x5f57bb){function _0x1207c8(_0x473322,_0x56503f){return _0x3e9da2(_0x473322,_0x56503f- -0x212);}this['_pointerEvents']=_0x5f57bb;if(!this['canvas'])return;function _0x16962a(_0x3f1c93,_0x38a724){return _0x3e9da2(_0x38a724,_0x3f1c93- -0x22d);}_0x5f57bb?this[_0x16962a(0x17,0x4a)]['style']['pointer-events']=_0x1207c8(0x49,0x3):this['canvas']['style']['pointer-events']=_0x16962a(-0x83,-0x79);}get[_0x3e9da2(0x1fc,0x1d1)](){return this['options']['particlesNumber'];}set['particlesNumber'](_0x391f58){this[_0x47770e(0x224,0x2a8)][_0x270ab5(0x189,0x113)]=_0x391f58;function _0x270ab5(_0x44acd6,_0x11a0aa){return _0x1b4f03(_0x44acd6-0x1c6,_0x11a0aa);}function _0x47770e(_0x387c0c,_0x3bf458){return _0x1b4f03(_0x387c0c-0x244,_0x3bf458);}clearTimeout(this['_canrefresh']),this[_0x47770e(0x1d9,0x1ff)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x3e9da2(0x27a,0x204)](){return this['options']['speedRate'];}set['speedRate'](_0x145e89){this['options']['speedRate']=_0x145e89;function _0x4ec0da(_0x5a0e8b,_0x1973e){return _0x3e9da2(_0x5a0e8b,_0x1973e-0x238);}this['windField']&&(this[_0x4ec0da(0x3fb,0x434)]['speedRate']=_0x145e89);}get[_0x1b4f03(-0x67,-0x67)](){function _0x27b045(_0x357f1d,_0xcbc24){return _0x1b4f03(_0x357f1d-0x1df,_0xcbc24);}function _0x397a53(_0x1096fb,_0x52979b){return _0x3e9da2(_0x52979b,_0x1096fb- -0x1d2);}return this[_0x397a53(0x1c,-0x7)][_0x27b045(0x178,0x1c0)];}set['maxAge'](_0x4c20f3){function _0x4799eb(_0x7a5b22,_0x365d95){return _0x3e9da2(_0x365d95,_0x7a5b22-0x2b);}this['options']['maxAge']=_0x4c20f3;function _0x2f7a45(_0x1941c7,_0x475507){return _0x3e9da2(_0x475507,_0x1941c7- -0x71);}this['windField']&&(this[_0x2f7a45(0x18b,0x152)][_0x2f7a45(0x136,0x16d)]=_0x4c20f3);}get[_0x1b4f03(0x63,0x9a)](){return this['windData'];}set['data'](_0x3c1c0d){this['setData'](_0x3c1c0d);}get['rectangle'](){function _0x3c02e3(_0x5dd652,_0x4a294e){return _0x1b4f03(_0x5dd652-0xa2,_0x4a294e);}let _0x42ea15=this[_0x5a1be9(0x3d7,0x413)][_0x5a1be9(0x33a,0x3bf)],_0x59dd4b=this['windData']['xmax'];function _0x5a1be9(_0x448c21,_0x2129f6){return _0x3e9da2(_0x448c21,_0x2129f6-0x1f2);}let _0x1cd640=this[_0x5a1be9(0x470,0x413)][_0x5a1be9(0x3a6,0x42a)],_0x3ef369=this[_0x3c02e3(0xb5,0xc9)]['ymax'];return _0x59dd4b>=0x167&&_0x42ea15===0x0&&(_0x42ea15=-0xb4,_0x59dd4b=0xb4),_0x42ea15=Math[_0x5a1be9(0x41d,0x39f)](_0x42ea15,-0xb4),_0x59dd4b=Math['min'](_0x59dd4b,0xb4),_0x1cd640=Math['max'](_0x1cd640,-0x5a),_0x3ef369=Math[_0x3c02e3(0xcb,0x108)](_0x3ef369,0x5a),Cesium['Rectangle']['fromDegrees'](_0x42ea15,_0x1cd640,_0x59dd4b,_0x3ef369);}['_showHook'](_0x454d29){function _0x139b9e(_0x133b96,_0x486a32){return _0x3e9da2(_0x486a32,_0x133b96- -0x327);}function _0x5e78fd(_0x56fcf3,_0x166065){return _0x1b4f03(_0x56fcf3-0x373,_0x166065);}_0x454d29?this['_addedHook']():(this[_0x139b9e(-0x106,-0x184)]&&(this[_0x139b9e(-0x139,-0x14b)]['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x496ba0(_0x1daae1,_0x12a455){return _0x1b4f03(_0x12a455- -0x2,_0x1daae1);}function _0x16062c(_0x322b47,_0x127a6b){return _0x3e9da2(_0x322b47,_0x127a6b-0x1e5);}this[_0x496ba0(0x5d,-0x22)][_0x496ba0(0x7c,0x90)]?this[_0x16062c(0x38c,0x3ed)]():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){this[_0x3ffc52(0x12,0x6e)]=this['_createCanvas']();const _0x5a3c85={};_0x5a3c85[_0x3ffc52(-0x4b,0x26)]=!![],this[_0x3ffc52(-0x2c,-0x9f)]=this['canvas']['getContext']('2d',_0x5a3c85);function _0x3ffc52(_0x1cd59e,_0x4d5e09){return _0x3e9da2(_0x4d5e09,_0x1cd59e- -0x232);}this['bindEvent']();function _0x2fb5fd(_0x1c7416,_0x26a877){return _0x1b4f03(_0x1c7416-0x144,_0x26a877);}this[_0x2fb5fd(0x124,0x170)]['data']&&this[_0x2fb5fd(0x11e,0x172)](this['options']['data']);}['_removedHook'](){this['clear'](),this[_0x298918(0x186,0x1b8)]();function _0x4b6332(_0x593c37,_0xc8836c){return _0x3e9da2(_0x593c37,_0xc8836c-0x28);}function _0x298918(_0x1787ed,_0x4c1fd1){return _0x3e9da2(_0x1787ed,_0x4c1fd1- -0x57);}this[_0x298918(0x1b9,0x1ed)]&&(this['_map'][_0x4b6332(0x299,0x227)][_0x4b6332(0x219,0x207)](this[_0x4b6332(0x24b,0x26c)]),delete this[_0x4b6332(0x2b1,0x26c)]);}['_createCanvas'](){const _0x43541c=mars3d__namespace['DomUtil'][_0x4fa92f(0x516,0x538)](_0x5ea73b(-0xf9,-0xc7),'mars3d-canvasWind',this['_map'][_0x5ea73b(-0x13e,-0xb8)]);_0x43541c[_0x4fa92f(0x4d0,0x492)]['position']='absolute',_0x43541c[_0x5ea73b(-0x17f,-0x1e2)]['top']='0px',_0x43541c[_0x4fa92f(0x43d,0x492)][_0x4fa92f(0x4a7,0x50d)]='0px',_0x43541c['style'][_0x4fa92f(0x512,0x4e4)]=this[_0x4fa92f(0x59d,0x554)]['scene']['canvas']['clientWidth']+'px';function _0x4fa92f(_0x284d87,_0x5d157a){return _0x1b4f03(_0x5d157a-0x4e2,_0x284d87);}_0x43541c[_0x5ea73b(-0x17f,-0x1a5)]['height']=this['_map'][_0x5ea73b(-0xdd,-0x156)]['canvas']['clientHeight']+'px',_0x43541c['style']['pointerEvents']=this[_0x4fa92f(0x4c9,0x4df)]?'auto':_0x4fa92f(0x48c,0x47e),_0x43541c['style'][_0x4fa92f(0x546,0x52a)]=this['options'][_0x5ea73b(-0xe7,-0x145)]??0x9,_0x43541c[_0x5ea73b(-0x12d,-0x1b7)]=this['_map']['scene']['canvas']['clientWidth'];function _0x5ea73b(_0x42823e,_0x2c60e9){return _0x3e9da2(_0x2c60e9,_0x42823e- -0x33d);}return _0x43541c['height']=this[_0x5ea73b(-0xbd,-0xdf)][_0x5ea73b(-0xdd,-0x111)]['canvas']['clientHeight'],_0x43541c;}['resize'](){function _0x28dd33(_0x4c3bc0,_0x1bf334){return _0x1b4f03(_0x4c3bc0-0x11a,_0x1bf334);}function _0x1855fa(_0x11d60f,_0x4b7e57){return _0x1b4f03(_0x4b7e57- -0x145,_0x11d60f);}this['canvas']&&(this['canvas'][_0x1855fa(-0x201,-0x195)]['width']=this['_map']['scene']['canvas']['clientWidth']+'px',this['canvas']['style']['height']=this['_map'][_0x28dd33(0x16c,0x122)]['canvas']['clientHeight']+'px',this[_0x28dd33(0x150,0x178)]['width']=this['_map']['scene']['canvas']['clientWidth'],this['canvas'][_0x28dd33(0x126,0xa8)]=this[_0x1855fa(-0xee,-0xd3)][_0x1855fa(-0x10e,-0xf3)]['canvas']['clientHeight']);}[_0x3e9da2(0x25d,0x268)](){function _0x153a13(_0x1243af,_0x52af6e){return _0x3e9da2(_0x52af6e,_0x1243af-0x1e6);}const _0x1a8ed4=this;let _0x3b2db0=Date[_0x153a13(0x3f7,0x430)]();function _0x23d54e(_0xa08383,_0x4a5d56){return _0x3e9da2(_0xa08383,_0x4a5d56-0x2a8);}(function _0x28abd4(){if(_0x1a8ed4[_0x4a6fc8(0x2da,0x312)])return;_0x1a8ed4['_animateFrame']=window[_0x4b15be(0x514,0x584)](_0x28abd4);function _0x4b15be(_0x327c16,_0x58f279){return _0x153a13(_0x58f279-0x14c,_0x327c16);}function _0x4a6fc8(_0x21f0be,_0x204f46){return _0x153a13(_0x21f0be- -0x148,_0x204f46);}if(_0x1a8ed4['show']&&_0x1a8ed4[_0x4a6fc8(0x29a,0x2ad)]){const _0x47b281=Date['now'](),_0x24492e=_0x47b281-_0x3b2db0;_0x24492e>_0x1a8ed4[_0x4b15be(0x5a6,0x597)]&&(_0x3b2db0=_0x47b281-_0x24492e%_0x1a8ed4[_0x4b15be(0x527,0x597)],_0x1a8ed4['update']());}}(),window['addEventListener'](_0x153a13(0x472,0x496),this['resize'][_0x23d54e(0x490,0x4c3)](this),![]),this['mouse_down']=![],this[_0x153a13(0x43e,0x44a)]=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x153a13(0x466,0x458)]['on'](mars3d__namespace['EventType'][_0x23d54e(0x52f,0x51d)],this['_onMouseDownEvent'],this),this[_0x23d54e(0x527,0x528)]['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this)));}[_0x1b4f03(0x1,0x1f)](){function _0x34ebf8(_0x2e00ea,_0x4c8e02){return _0x3e9da2(_0x2e00ea,_0x4c8e02-0x2fc);}window[_0x2711bd(0xf5,0xf8)](this[_0x2711bd(0x163,0xfe)]),delete this['_animateFrame'],window['removeEventListener']('resize',this[_0x2711bd(0x16a,0xf7)]);function _0x2711bd(_0x3a7860,_0x3a63da){return _0x1b4f03(_0x3a7860-0xec,_0x3a63da);}this['options']['mouseHidden']&&(this[_0x2711bd(0x15e,0xf7)]['off'](mars3d__namespace['EventType'][_0x2711bd(0x10b,0x110)],this[_0x34ebf8(0x473,0x4ee)],this),this[_0x2711bd(0x15e,0x193)]['off'](mars3d__namespace[_0x2711bd(0xbf,0x11a)]['mouseDown'],this[_0x2711bd(0xe3,0x16b)],this),this['_map'][_0x2711bd(0xe5,0xd3)](mars3d__namespace['EventType']['mouseUp'],this[_0x2711bd(0x8a,0xf1)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x34ebf8(0x54d,0x4d5)],this));}[_0x3e9da2(0x16c,0x1f2)](_0xed2b23){clearTimeout(this[_0x273143(0x555,0x591)]);if(!this['show']||!this['canvas'])return;function _0x273143(_0x45d946,_0x2e5abf){return _0x1b4f03(_0x45d946-0x4da,_0x2e5abf);}this['canvas']['style'][_0x273143(0x4e2,0x559)]='hidden';function _0x39b84d(_0x1e7221,_0x2365d1){return _0x3e9da2(_0x2365d1,_0x1e7221-0x245);}this['refreshTimer']=setTimeout(()=>{function _0x3c5e0f(_0x4654c8,_0x1997bf){return _0x273143(_0x4654c8- -0x3a9,_0x1997bf);}if(!this[_0x3c5e0f(0x155,0x1d9)])return;function _0x1e09fa(_0x1b5053,_0x2cb51e){return _0x39b84d(_0x2cb51e- -0x46d,_0x1b5053);}this[_0x1e09fa(-0xe8,-0x83)](),this['canvas']['style'][_0x1e09fa(-0x7d,-0x12)]='visible';},0xc8);}['_onMouseDownEvent'](_0x3ee32f){this[_0x291ab8(0x376,0x2f5)]=!![];function _0x291ab8(_0x504afe,_0xcd7d54){return _0x3e9da2(_0x504afe,_0xcd7d54-0x4d);}this[_0x291ab8(0x301,0x2cd)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x8aa210(_0x4030c7,_0x4d8350){return _0x3e9da2(_0x4d8350,_0x4030c7- -0x2dc);}this['_map']['on'](mars3d__namespace[_0x8aa210(-0xfb,-0x75)]['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x53f3ae){function _0x2c87ef(_0x527c6c,_0x3d7b05){return _0x3e9da2(_0x527c6c,_0x3d7b05-0x1d6);}if(!this['show']||!this[_0x2c87ef(0x3ec,0x41a)])return;function _0x314c42(_0x5da886,_0x359511){return _0x1b4f03(_0x359511- -0xa0,_0x5da886);}this['mouse_down']&&(this['canvas'][_0x2c87ef(0x334,0x394)]['visibility']='hidden',this[_0x2c87ef(0x3ea,0x42e)]=!![]);}['_onMouseUpEvent'](_0x2e9a20){if(!this[_0x2276e0(-0x12c,-0x175)]||!this['canvas'])return;this['_map']['off'](mars3d__namespace[_0x2dfe0(-0x115,-0xaa)]['mouseMove'],this['_onMouseMoveEvent'],this);this[_0x2dfe0(0x77,0x1d)]&&this[_0x2276e0(-0x166,-0x14f)]&&this['redraw']();function _0x2276e0(_0x2c6b7d,_0x50b89a){return _0x3e9da2(_0x2c6b7d,_0x50b89a- -0x3a7);}function _0x2dfe0(_0x311ff2,_0x46d5fd){return _0x3e9da2(_0x311ff2,_0x46d5fd- -0x28b);}this[_0x2dfe0(0xb,-0x47)][_0x2dfe0(-0x55,-0xcd)]['visibility']=_0x2dfe0(0xa7,0x20),this[_0x2276e0(-0xe0,-0xff)]=![],this['mouse_move']=![];}['setData'](_0x955540){this['clear'](),this[_0x51151e(0x4be,0x4ac)]=_0x955540;function _0x426ce3(_0x1dfab4,_0x1ab29b){return _0x3e9da2(_0x1dfab4,_0x1ab29b-0x2bf);}function _0x51151e(_0x1de9d7,_0x887ee){return _0x1b4f03(_0x887ee-0x499,_0x1de9d7);}this[_0x426ce3(0x516,0x4bb)]['setDate'](_0x955540),this['redraw']();}[_0x3e9da2(0x1ab,0x1a5)](){if(!this['show'])return;this[_0x43520f(-0x17f,-0x177)]['setOptions'](this['options']);function _0x5d2fa4(_0x503b44,_0x250c9b){return _0x3e9da2(_0x250c9b,_0x503b44- -0x2c2);}function _0x43520f(_0x34e85c,_0x1cbf8a){return _0x3e9da2(_0x34e85c,_0x1cbf8a- -0x373);}this[_0x5d2fa4(-0x3a,-0x7d)]();}[_0x1b4f03(0x7a,0x23)](){function _0x399d6f(_0x57f2c8,_0x4fba86){return _0x1b4f03(_0x57f2c8- -0xda,_0x4fba86);}if(this['_updateIng'])return;this['_updateIng']=!![];if(this[_0x4008ef(0x2db,0x31d)])this['windField']['update']();else{const _0x19be05=this[_0x4008ef(0x277,0x279)]['getParticles']();this['_drawLines'](_0x19be05);}function _0x4008ef(_0x387cda,_0x282004){return _0x3e9da2(_0x387cda,_0x282004-0x7d);}this[_0x4008ef(0x2d0,0x26a)]=![];}[_0x1b4f03(0x8a,0x68)](_0x3808d5){function _0x1850ce(_0x141593,_0x54d800){return _0x1b4f03(_0x54d800- -0x14e,_0x141593);}this['_canvasParticles']=_0x3808d5,this['canvasContext'][_0x1b7961(0x29,-0x1b)]='destination-in';function _0x1b7961(_0x462858,_0x437ee3){return _0x1b4f03(_0x462858-0x35,_0x437ee3);}this['canvasContext']['fillRect'](0x0,0x0,this[_0x1850ce(-0x1be,-0x1a2)],this['canvasHeight']),this[_0x1850ce(-0xd5,-0x156)]['globalCompositeOperation']='lighter',this['canvasContext'][_0x1b7961(0xcc,0xec)]=0.9;const _0x4ec449=this[_0x1850ce(-0xe8,-0xdc)]['scene']['mode']!==Cesium[_0x1850ce(-0x1f4,-0x1ae)]['SCENE3D'],_0x180c85=this[_0x1850ce(-0x17e,-0x1a2)]*0.25;if(this['_colorRamp'])for(let _0x134199=0x0,_0x4dd496=_0x3808d5['length'];_0x134199<_0x4dd496;_0x134199++){const _0xf74cf3=_0x3808d5[_0x134199],_0x58a153=this['_tomap'](_0xf74cf3,_0xf74cf3['lng'],_0xf74cf3[_0x1850ce(-0xb2,-0x10e)],_0xf74cf3['alt']),_0xd294cc=this['_tomap'](_0xf74cf3,_0xf74cf3['tlng'],_0xf74cf3['tlat'],_0xf74cf3['talt']);if(!_0x58a153||!_0xd294cc)continue;if(_0x4ec449&&Math['abs'](_0x58a153[0x0]-_0xd294cc[0x0])>=_0x180c85)continue;this['canvasContext']['beginPath'](),this[_0x1b7961(0x2d,0x35)]['lineWidth']=this[_0x1850ce(-0x178,-0x129)],this[_0x1b7961(0x2d,0x5f)][_0x1b7961(0x52,-0x25)]=this[_0x1b7961(-0x10,-0x18)]['getColor'](_0xf74cf3[_0x1b7961(-0x22,-0xb)]),this['canvasContext'][_0x1850ce(-0x1f3,-0x1b3)](_0x58a153[0x0],_0x58a153[0x1]),this[_0x1b7961(0x2d,-0x17)]['lineTo'](_0xd294cc[0x0],_0xd294cc[0x1]),this[_0x1850ce(-0x105,-0x156)][_0x1850ce(-0xf6,-0xe8)]();}else{this[_0x1b7961(0x2d,0x32)]['beginPath'](),this['canvasContext'][_0x1b7961(0x5a,0x4e)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x1b7961(0x1d,-0x16)];for(let _0x30642f=0x0,_0xdba5bf=_0x3808d5['length'];_0x30642f<_0xdba5bf;_0x30642f++){const _0x3e3c06=_0x3808d5[_0x30642f],_0x19aad3=this['_tomap'](_0x3e3c06,_0x3e3c06['lng'],_0x3e3c06['lat'],_0x3e3c06['alt']),_0x163d2f=this['_tomap'](_0x3e3c06,_0x3e3c06['tlng'],_0x3e3c06[_0x1850ce(-0x14d,-0xd8)],_0x3e3c06['talt']);if(!_0x19aad3||!_0x163d2f)continue;if(_0x4ec449&&Math['abs'](_0x19aad3[0x0]-_0x163d2f[0x0])>=_0x180c85)continue;this['canvasContext']['moveTo'](_0x19aad3[0x0],_0x19aad3[0x1]),this['canvasContext'][_0x1b7961(-0x9,-0x55)](_0x163d2f[0x0],_0x163d2f[0x1]);}this['canvasContext'][_0x1850ce(-0xd1,-0xe8)]();}}['_tomap'](_0x37f2f6,_0x22eedd,_0x186616,_0x55910f){const _0x123bf6=Cesium['Cartesian3']['fromDegrees'](_0x22eedd,_0x186616,_0x55910f??this[_0x346f75(0x1ba,0x186)]);function _0x346f75(_0x42c63e,_0x5110da){return _0x1b4f03(_0x42c63e-0x1f3,_0x5110da);}const _0x4dd4f5=this['_map']['scene'];if(_0x4dd4f5['mode']===Cesium[_0x346f75(0x193,0x1e8)]['SCENE3D']){const _0x5b3eb3=new Cesium[(_0x346f75(0x1a1,0x14d))](_0x4dd4f5['globe']['ellipsoid'],_0x4dd4f5['camera'][_0x362f9c(0x1fa,0x17c)]),_0x49a746=_0x5b3eb3['isPointVisible'](_0x123bf6);if(!_0x49a746)return _0x37f2f6['age']=0x0,null;}function _0x362f9c(_0x4eddf1,_0x241eac){return _0x3e9da2(_0x4eddf1,_0x241eac- -0xbe);}const _0x44434d=mars3d__namespace['PointTrans']['toWindowCoordinates'](this[_0x362f9c(0x1cb,0x1c2)]['scene'],_0x123bf6);return _0x44434d?[_0x44434d['x'],_0x44434d['y']]:null;}['clear'](){this[_0x32faaf(0x56f,0x560)]['clear']();function _0x30bb5a(_0x5db37b,_0x2fe6f0){return _0x1b4f03(_0x5db37b-0x50,_0x2fe6f0);}function _0x32faaf(_0x2df537,_0x3abe20){return _0x1b4f03(_0x2df537-0x581,_0x3abe20);}delete this[_0x30bb5a(0x63,0xc0)];}[_0x1b4f03(-0x6,-0x72)](){this[_0x5362ce(0x469,0x46b)]=new Worker(this['options']['worker']);function _0x13ea9b(_0x3c361f,_0x19849d){return _0x1b4f03(_0x19849d-0x107,_0x3c361f);}function _0x5362ce(_0x4ba813,_0x18759f){return _0x3e9da2(_0x4ba813,_0x18759f-0x1cb);}this[_0x5362ce(0x3fc,0x46b)][_0x13ea9b(0x1e0,0x167)]=_0x3727d4=>{function _0xa63166(_0x40921f,_0x5b890a){return _0x13ea9b(_0x5b890a,_0x40921f-0x228);}this['_drawLines'](_0x3727d4[_0x47075e(-0x11,-0x91)][_0x47075e(-0xa0,-0xeb)]);function _0x47075e(_0x56d0c0,_0xb39db){return _0x13ea9b(_0xb39db,_0x56d0c0- -0x17b);}this['_updateIng2']=![];},this['windField']={'init':_0x4e99a7=>{const _0x414bca={};_0x414bca['type']='init';function _0x270286(_0x465f1d,_0x2e4b5e){return _0x13ea9b(_0x465f1d,_0x2e4b5e-0x17c);}function _0x361505(_0x5a2f50,_0x5ddb90){return _0x5362ce(_0x5ddb90,_0x5a2f50- -0x395);}_0x414bca[_0x361505(0x24,-0x3d)]=_0x4e99a7,this[_0x270286(0x385,0x315)]['postMessage'](_0x414bca);},'setOptions':_0x8cb4b0=>{function _0x4c4cc9(_0x82e5c8,_0x353fe8){return _0x13ea9b(_0x353fe8,_0x82e5c8- -0x192);}const _0x56e32e={};function _0xdf55c9(_0x4d604e,_0x47b97b){return _0x13ea9b(_0x47b97b,_0x4d604e-0x11a);}_0x56e32e[_0xdf55c9(0x25b,0x241)]='setOptions',_0x56e32e['options']=_0x8cb4b0,this['worker'][_0x4c4cc9(-0x4a,-0xf)](_0x56e32e);},'setDate':_0x1fb0d2=>{function _0x141a10(_0x1a0325,_0x513aa6){return _0x13ea9b(_0x513aa6,_0x1a0325- -0xd3);}const _0x49dd57={};function _0x395803(_0x4d0f21,_0x44a410){return _0x5362ce(_0x44a410,_0x4d0f21- -0x402);}_0x49dd57[_0x141a10(0x6e,-0x1a)]='setDate',_0x49dd57['data']=_0x1fb0d2,this['worker'][_0x141a10(0x75,0x78)](_0x49dd57);},'update':()=>{if(this['_updateIng2'])return;function _0x58b350(_0x5d734d,_0x50384){return _0x13ea9b(_0x50384,_0x5d734d- -0x59);}this[_0x58b350(0xaa,0x24)]=!![];const _0x6fedec={};function _0x3b004d(_0x55670f,_0x51e668){return _0x13ea9b(_0x51e668,_0x55670f-0x16b);}_0x6fedec['type']='update',this[_0x3b004d(0x304,0x377)][_0x58b350(0xef,0x8f)](_0x6fedec);},'clear':()=>{function _0x1fefe8(_0x26c825,_0x2df5d2){return _0x13ea9b(_0x2df5d2,_0x26c825-0x21e);}function _0x7c8202(_0x5e018b,_0x338df3){return _0x13ea9b(_0x5e018b,_0x338df3-0x1ad);}const _0x12e67c={};_0x12e67c[_0x1fefe8(0x35f,0x378)]=_0x7c8202(0x2cc,0x2c8),this['worker']['postMessage'](_0x12e67c);}},this[_0x13ea9b(0xb6,0xf5)]['init'](this[_0x13ea9b(0xfc,0xe7)]);}}mars3d__namespace['LayerUtil'][_0x3e9da2(0x1fc,0x224)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x3e9da2(0x1f7,0x1e3)]=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x3e9da2(0x1a0,0x1bd)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x3e9da2(0x1e9,0x1dd)]=WindUtil;const _0x5c1edd={};_0x5c1edd['value']=!![],Object['defineProperty'](exports,'__esModule',_0x5c1edd);
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);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.8.11",
3
+ "version": "3.8.13",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.8.11"
8
+ "mars3d": "~3.8.13"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"