mars3d-wind 3.8.13 → 3.8.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mars3d-wind.js +3 -3
- package/package.json +2 -2
package/mars3d-wind.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
|
3
3
|
*
|
|
4
|
-
* 版本信息:v3.8.
|
|
5
|
-
* 编译日期:2025-
|
|
4
|
+
* 版本信息:v3.8.15
|
|
5
|
+
* 编译日期:2025-02-06 14:19
|
|
6
6
|
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
7
|
* 使用单位:火星科技免费公开版 ,2024-08-01
|
|
8
8
|
*/
|
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
|
|
12
12
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
|
|
13
13
|
})(this, (function (exports, mars3d) {
|
|
14
|
-
'use strict';(function(_0x407370,_0x24f7fb){function _0x2f3650(_0x477b99,_0x338280){return _0x457f(_0x338280-0x15b,_0x477b99);}function _0x2d772d(_0x2d0b5b,_0x3327e6){return _0x457f(_0x3327e6-0x34c,_0x2d0b5b);}const _0x4e0b08=_0x407370();while(!![]){try{const _0x5f2dea=parseInt(_0x2f3650(0x2e0,0x2ad))/0x1+-parseInt(_0x2f3650(0x2bf,0x2d8))/0x2+parseInt(_0x2d772d(0x4e2,0x532))/0x3*(parseInt(_0x2d772d(0x448,0x4cd))/0x4)+parseInt(_0x2d772d(0x541,0x57e))/0x5+-parseInt(_0x2f3650(0x35b,0x311))/0x6*(parseInt(_0x2d772d(0x575,0x514))/0x7)+-parseInt(_0x2d772d(0x525,0x54e))/0x8+parseInt(_0x2f3650(0x379,0x2f8))/0x9;if(_0x5f2dea===_0x24f7fb)break;else _0x4e0b08['push'](_0x4e0b08['shift']());}catch(_0x4226f8){_0x4e0b08['push'](_0x4e0b08['shift']());}}}(_0x5a79,0xcae54));function _interopNamespace(_0x6a4bd0){if(_0x6a4bd0&&_0x6a4bd0['__esModule'])return _0x6a4bd0;var _0x4cb8f7=Object['create'](null);_0x6a4bd0&&Object['keys'](_0x6a4bd0)['forEach'](function(_0x552966){function _0x5f4bb1(_0x29ea96,_0x178b99){return _0x457f(_0x178b99- -0x1b0,_0x29ea96);}if(_0x552966!=='default'){var _0x1dd590=Object['getOwnPropertyDescriptor'](_0x6a4bd0,_0x552966);Object['defineProperty'](_0x4cb8f7,_0x552966,_0x1dd590[_0x5f4bb1(0x23,-0x54)]?_0x1dd590:{'enumerable':!![],'get':function(){return _0x6a4bd0[_0x552966];}});}});_0x4cb8f7[_0x204245(0x4e4,0x566)]=_0x6a4bd0;function _0x204245(_0x2177fc,_0x44f3fd){return _0x457f(_0x2177fc-0x2c4,_0x44f3fd);}return _0x4cb8f7;}function _0x457f(_0x2f498b,_0x4385a3){const _0x5a79d3=_0x5a79();return _0x457f=function(_0x457faa,_0xe5895e){_0x457faa=_0x457faa-0x137;let _0x1ba647=_0x5a79d3[_0x457faa];return _0x1ba647;},_0x457f(_0x2f498b,_0x4385a3);}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x5b589a,_0x20e955){const _0x5a7ba6=_0x5b589a*Math['cos'](Cesium$2['Math']['toRadians'](_0x20e955));return _0x5a7ba6;}function getV(_0x18c3a7,_0x1bb7bc){const _0x24f428=_0x18c3a7*Math[_0x4358f1(0x5cf,0x555)](Cesium$2['Math']['toRadians'](_0x1bb7bc));function _0x4358f1(_0x273c24,_0x32f65b){return _0x457f(_0x32f65b-0x396,_0x273c24);}return _0x24f428;}function getSpeed(_0x6ea02,_0x1c1063){const _0x3d48a9=Math['sqrt'](Math[_0x57a32f(-0x90,-0x8d)](_0x6ea02,0x2)+Math['pow'](_0x1c1063,0x2));function _0x57a32f(_0x5cd71e,_0x455682){return _0x457f(_0x455682- -0x238,_0x5cd71e);}return _0x3d48a9;}function getDirection(_0x44674e,_0x52403f){let _0x10ac82=Cesium$2['Math']['toDegrees'](Math['atan2'](_0x52403f,_0x44674e));return _0x10ac82+=_0x10ac82<0x0?0x168:0x0,_0x10ac82;}const _0x4bc55e={};_0x4bc55e[_0x8b6892(-0x1a9,-0x214)]=null,_0x4bc55e[_0x8b6892(-0x204,-0x207)]=getU,_0x4bc55e['getV']=getV,_0x4bc55e['getSpeed']=getSpeed,_0x4bc55e['getDirection']=getDirection;var WindUtil=_0x4bc55e,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader=_0x8b6892(-0x222,-0x220),renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a';function _0x8b6892(_0x36961e,_0x306e1e){return _0x457f(_0x306e1e- -0x3b7,_0x36961e);}var renderParticlesVertexShader=_0x8b6892(-0x29e,-0x269);const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x1d22c3(-0x17d,-0x1b1)];class ShaderManager{static[_0x1d22c3(-0x190,-0x178)](){const _0x111eb1={};return _0x111eb1['sources']=[calculateSpeedShader],new ShaderSource$1(_0x111eb1);}static['getUpdatePositionShader'](){const _0x1464f2={};_0x1464f2[_0x38c4fc(-0xd,0x5e)]=[updatePositionShader];function _0x38c4fc(_0x369b25,_0x35e90c){return _0x1d22c3(_0x369b25-0x13f,_0x35e90c);}return new ShaderSource$1(_0x1464f2);}static['getSegmentDrawVertexShader'](){const _0x3b9aa1={};return _0x3b9aa1['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x3b9aa1);}static['getSegmentDrawFragmentShader'](){const _0x4baa66={};_0x4baa66[_0x187464(-0x1aa,-0x186)]=[renderParticlesFragmentShader];function _0x187464(_0x12bbe2,_0x48ab74){return _0x1d22c3(_0x48ab74- -0x3a,_0x12bbe2);}return new ShaderSource$1(_0x4baa66);}static['getPostProcessingPositionShader'](){const _0x393c3f={};return _0x393c3f['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x393c3f);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defaultValue,defined,destroyObject}=mars3d__namespace[_0x1d22c3(-0x17d,-0x143)];class CustomPrimitive{constructor(_0x338c6e){this['commandType']=_0x338c6e['commandType'],this['geometry']=_0x338c6e['geometry'],this[_0x25031e(0x44c,0x4af)]=_0x338c6e[_0x25031e(0x462,0x4af)];function _0x25031e(_0x186626,_0x2d3715){return _0x8b6892(_0x186626,_0x2d3715-0x6f9);}function _0x2679e1(_0x45d12c,_0x288911){return _0x8b6892(_0x45d12c,_0x288911-0x303);}this['primitiveType']=_0x338c6e[_0x2679e1(0x44,0xc6)],this[_0x2679e1(0x1b9,0x13b)]=_0x338c6e['uniformMap']||{},this[_0x2679e1(0x141,0xcc)]=_0x338c6e['vertexShaderSource'],this['fragmentShaderSource']=_0x338c6e['fragmentShaderSource'],this['rawRenderState']=_0x338c6e[_0x25031e(0x496,0x4ce)],this['framebuffer']=_0x338c6e[_0x25031e(0x442,0x486)],this['outputTexture']=_0x338c6e['outputTexture'],this[_0x25031e(0x495,0x4b8)]=defaultValue(_0x338c6e[_0x2679e1(0xdd,0xc2)],![]),this['preExecute']=_0x338c6e['preExecute'],this[_0x25031e(0x508,0x48e)]=!![],this[_0x25031e(0x4f1,0x52f)]=undefined,this['clearCommand']=undefined,this[_0x25031e(0x45c,0x4c6)]=_0x338c6e['isDynamic']??(()=>!![]),this['autoClear']&&(this[_0x25031e(0x50e,0x49f)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x46fc06){function _0x50c581(_0x21ad82,_0x3cf6f4){return _0x8b6892(_0x21ad82,_0x3cf6f4-0x59e);}function _0x5b5a94(_0x521907,_0x322785){return _0x8b6892(_0x322785,_0x521907-0x137);}if(this[_0x5b5a94(-0x141,-0x101)]==='Draw'){const _0x20688a={};_0x20688a['context']=_0x46fc06,_0x20688a[_0x50c581(0x36a,0x37d)]=this[_0x5b5a94(-0xea,-0x11f)],_0x20688a['attributeLocations']=this[_0x5b5a94(-0x113,-0xb1)],_0x20688a['bufferUsage']=BufferUsage$1[_0x5b5a94(-0x133,-0x146)];const _0x579f07=VertexArray$1[_0x50c581(0x2f0,0x371)](_0x20688a),_0x30b660={};_0x30b660['context']=_0x46fc06,_0x30b660['vertexShaderSource']=this[_0x50c581(0x2dd,0x367)],_0x30b660[_0x50c581(0x3b5,0x3ba)]=this[_0x5b5a94(-0xad,-0xa0)],_0x30b660[_0x50c581(0x2e7,0x354)]=this[_0x5b5a94(-0x113,-0xe8)];const _0x2674a1=ShaderProgram['fromCache'](_0x30b660),_0x28c971=RenderState[_0x5b5a94(-0x146,-0xbc)](this['rawRenderState']),_0x3a80a4={};return _0x3a80a4[_0x5b5a94(-0x13a,-0x177)]=this,_0x3a80a4['vertexArray']=_0x579f07,_0x3a80a4[_0x5b5a94(-0x106,-0x176)]=this['primitiveType'],_0x3a80a4[_0x5b5a94(-0x5a,-0x70)]=Matrix4[_0x5b5a94(-0x6e,-0x38)],_0x3a80a4['renderState']=_0x28c971,_0x3a80a4[_0x50c581(0x406,0x3bb)]=_0x2674a1,_0x3a80a4['framebuffer']=this['framebuffer'],_0x3a80a4['uniformMap']=this['uniformMap'],_0x3a80a4['pass']=Pass$1['OPAQUE'],new DrawCommand(_0x3a80a4);}else{if(this['commandType']==='Compute'){const _0xc1a85c={};return _0xc1a85c['owner']=this,_0xc1a85c['fragmentShaderSource']=this['fragmentShaderSource'],_0xc1a85c['uniformMap']=this['uniformMap'],_0xc1a85c['outputTexture']=this[_0x50c581(0x451,0x3d9)],_0xc1a85c['persists']=!![],new ComputeCommand(_0xc1a85c);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x2befa5,_0x156167){this[_0x18501a(-0x213,-0x24d)]=_0x156167;function _0x18501a(_0x3a67aa,_0x41e5d7){return _0x1d22c3(_0x3a67aa- -0x2f,_0x41e5d7);}function _0x2d1827(_0x397827,_0x1158f4){return _0x1d22c3(_0x397827-0x6bb,_0x1158f4);}defined(this['commandToExecute'])&&(this[_0x2d1827(0x52e,0x502)]['vertexArray']=VertexArray$1[_0x18501a(-0x21f,-0x2ab)]({'context':_0x2befa5,'geometry':this[_0x18501a(-0x213,-0x1b7)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0xb5938a){function _0x1a33d1(_0x2cd02d,_0x161f86){return _0x8b6892(_0x161f86,_0x2cd02d-0x5f2);}if(!this['isDynamic']())return;if(!this['show']||!defined(_0xb5938a))return;!defined(this['commandToExecute'])&&(this['commandToExecute']=this[_0x3685fd(-0x14d,-0x135)](_0xb5938a['context']));defined(this['preExecute'])&&this['preExecute']();if(!_0xb5938a['commandList']){console['warn'](_0x1a33d1(0x3c0,0x443));return;}defined(this[_0x3685fd(-0x1b5,-0x22e)])&&_0xb5938a['commandList'][_0x1a33d1(0x3f3,0x3bc)](this['clearCommand']);function _0x3685fd(_0x2edeea,_0x268e57){return _0x8b6892(_0x268e57,_0x2edeea-0xa5);}defined(this['commandToExecute'])&&_0xb5938a[_0x3685fd(-0x132,-0x1bf)][_0x3685fd(-0x15a,-0x149)](this['commandToExecute']);}[_0x1d22c3(-0x214,-0x281)](){return![];}[_0x1d22c3(-0x224,-0x268)](){function _0x12d80d(_0x45f82d,_0x2b4b5c){return _0x8b6892(_0x45f82d,_0x2b4b5c-0x604);}function _0x488b3c(_0xdb6f5c,_0x33dee4){return _0x8b6892(_0x33dee4,_0xdb6f5c-0x192);}if(defined(this[_0x12d80d(0x468,0x43a)])){var _0x4b17a4;(_0x4b17a4=this[_0x12d80d(0x464,0x43a)]['shaderProgram'])===null||_0x4b17a4===void 0x0||_0x4b17a4[_0x488b3c(-0xcf,-0xfa)](),this[_0x12d80d(0x453,0x43a)]['shaderProgram']=undefined;}return destroyObject(this);}}function deepMerge(_0x4bb373,_0x16576e){if(!_0x4bb373)return _0x16576e;if(!_0x16576e)return _0x4bb373;function _0x2e1c93(_0x46265d,_0x4dba86){return _0x1d22c3(_0x46265d-0x676,_0x4dba86);}const _0x4f36a5={..._0x16576e},_0x5d93a9=_0x4f36a5;for(const _0x476ab4 in _0x4bb373){if(Object['prototype']['hasOwnProperty']['call'](_0x4bb373,_0x476ab4)){const _0x3a17f7=_0x4bb373[_0x476ab4],_0x4f137e=_0x16576e[_0x476ab4];if(Array['isArray'](_0x3a17f7)){_0x5d93a9[_0x476ab4]=_0x3a17f7[_0x2e1c93(0x4c6,0x4f9)]();continue;}if(_0x3a17f7&&typeof _0x3a17f7==='object'){_0x5d93a9[_0x476ab4]=deepMerge(_0x3a17f7,_0x4f137e||{});continue;}_0x3a17f7!==undefined&&(_0x5d93a9[_0x476ab4]=_0x3a17f7);}}return _0x5d93a9;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace[_0x8b6892(-0x1b5,-0x1ba)];class WindParticlesComputing{constructor(_0x59d8f1,_0x16fc30,_0x401c6d,_0x43d988,_0x39c130){this[_0x4d04e2(0x29c,0x2c2)]=_0x59d8f1,this['options']=_0x401c6d,this['viewerParameters']=_0x43d988,this[_0x4d04e2(0x2fb,0x2eb)]=_0x16fc30;function _0x387794(_0x268d61,_0xe27600){return _0x1d22c3(_0xe27600-0x358,_0x268d61);}this['frameRate']=0x3c;function _0x4d04e2(_0x3263de,_0xd52fd7){return _0x1d22c3(_0xd52fd7-0x479,_0x3263de);}this[_0x387794(0x1e7,0x1d2)]=0x1;const _0x39a410={};_0x39a410[_0x4d04e2(0x256,0x2dd)]=_0x39c130,_0x39a410['samplingWindow']=0x1,_0x39a410[_0x387794(0xd5,0x151)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x39a410),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures'](),this[_0x387794(0x1e2,0x197)]();}[_0x1d22c3(-0x1f3,-0x22f)](){const _0xe8188d=()=>{this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0xe8188d();const _0x26367b=setInterval(_0xe8188d,0x3e8),_0x4c4f63=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x26367b),_0x4c4f63();};}[_0x1d22c3(-0x163,-0x117)](){function _0x3b7f1f(_0x3d1b40,_0x4d8d5f){return _0x1d22c3(_0x4d8d5f-0x3dd,_0x3d1b40);}const _0x45003e={};_0x45003e['minificationFilter']=TextureMinificationFilter$1['LINEAR'];function _0x1496ec(_0xad81f1,_0x50655a){return _0x8b6892(_0x50655a,_0xad81f1-0x10b);}_0x45003e[_0x3b7f1f(0x1b0,0x19f)]=TextureMagnificationFilter$1['LINEAR'];const _0x252740={'context':this['context'],'width':this['windData'][_0x3b7f1f(0x2b2,0x2a6)],'height':this['windData']['height'],'pixelFormat':PixelFormat$1[_0x3b7f1f(0x21c,0x1b6)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x3b7f1f(0x26b,0x1fd)]['flipY']??![],'sampler':new Sampler$1(_0x45003e)};this[_0x1496ec(-0x152,-0x1af)]={'U':new Texture$1({..._0x252740,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x252740,'source':{'arrayBufferView':new Float32Array(this['windData']['v'][_0x1496ec(-0x103,-0xad)])}})};}['createParticlesTextures'](){const _0x43aac9={};function _0x35eb92(_0x41aeaa,_0x476e9e){return _0x8b6892(_0x476e9e,_0x41aeaa-0x752);}_0x43aac9['minificationFilter']=TextureMinificationFilter$1[_0x137ff4(0x3ac,0x332)],_0x43aac9['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];const _0x72bf7b={'context':this['context'],'width':this[_0x35eb92(0x535,0x58f)]['particlesTextureSize'],'height':this[_0x137ff4(0x333,0x333)][_0x35eb92(0x51a,0x522)],'pixelFormat':PixelFormat$1[_0x137ff4(0x267,0x2e8)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options'][_0x35eb92(0x51a,0x4cd)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x43aac9)};function _0x137ff4(_0xa143e6,_0x226912){return _0x8b6892(_0xa143e6,_0x226912-0x550);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x72bf7b),'currentParticlesPosition':new Texture$1(_0x72bf7b),'nextParticlesPosition':new Texture$1(_0x72bf7b),'postProcessingPosition':new Texture$1(_0x72bf7b),'particlesSpeed':new Texture$1(_0x72bf7b)};}[_0x1d22c3(-0x146,-0x1a9)](){Object['values'](this['particlesTextures'])['forEach'](_0x164e8d=>_0x164e8d['destroy']());}['createComputingPrimitives'](){function _0x2945a0(_0x435673,_0x42a0f2){return _0x1d22c3(_0x42a0f2-0x1b3,_0x435673);}function _0x4a3370(_0x5ca706,_0x2489a7){return _0x1d22c3(_0x2489a7-0x166,_0x5ca706);}this[_0x2945a0(-0x46,0x0)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this['windData']['v'][_0x2945a0(-0x29,-0x15)]),'speedRange':()=>new Cartesian2$1(this[_0x4a3370(0x55,-0x28)]['speed'][_0x2945a0(0x43,-0x49)],this['windData']['speed'][_0x2945a0(-0x63,-0x15)]),'currentParticlesPosition':()=>this['particlesTextures'][_0x2945a0(-0x64,-0x4f)],'speedScaleFactor':()=>{function _0xa7a046(_0x3fa97e,_0x227941){return _0x4a3370(_0x3fa97e,_0x227941-0x169);}function _0x26f856(_0x152347,_0x26ad1e){return _0x4a3370(_0x152347,_0x26ad1e-0x22e);}return(this[_0xa7a046(0x103,0xe7)]['pixelSize']+0x32)*this['options'][_0xa7a046(0xdf,0xed)];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData'][_0x2945a0(0x5e,0x7c)],this[_0x4a3370(0x3a,-0x28)][_0x4a3370(-0x61,-0x75)]),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0x2945a0(0x99,0x6e)],this['windData'][_0x2945a0(-0x20,-0x6e)]['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds'][_0x4a3370(-0x30,-0x9d)],this[_0x4a3370(-0x94,-0x28)]['bounds'][_0x2945a0(-0x10c,-0x84)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures']['particlesSpeed'],'preExecute':()=>{function _0x50ca9d(_0x553bfc,_0x1e51e7){return _0x4a3370(_0x553bfc,_0x1e51e7- -0xda);}const _0x38f863=this[_0x50ca9d(-0x12f,-0x10b)]['previousParticlesPosition'];this[_0x50ca9d(-0x175,-0x10b)]['previousParticlesPosition']=this[_0x2f91d1(0x2ad,0x282)][_0x2f91d1(0x29f,0x217)];function _0x2f91d1(_0x1f1046,_0x227b7a){return _0x2945a0(_0x1f1046,_0x227b7a-0x266);}this[_0x50ca9d(-0x136,-0x10b)]['currentParticlesPosition']=this[_0x2f91d1(0x206,0x282)]['postProcessingPosition'],this['particlesTextures']['postProcessingPosition']=_0x38f863,this['primitives'][_0x2f91d1(0x296,0x2bb)]['commandToExecute']&&(this['primitives'][_0x50ca9d(-0x119,-0xd2)]['commandToExecute'][_0x2f91d1(0x2a8,0x291)]=this['particlesTextures'][_0x50ca9d(-0xfb,-0xe6)]);},'isDynamic':()=>this[_0x2945a0(-0x88,-0x2d)][_0x4a3370(-0x62,-0x49)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x2945a0(-0xad,-0x4f)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager[_0x2945a0(0xd7,0x51)](),'outputTexture':this[_0x4a3370(-0x1d,-0x31)]['nextParticlesPosition'],'preExecute':()=>{function _0x32f9c6(_0x31bc98,_0x53099c){return _0x4a3370(_0x53099c,_0x31bc98-0x9);}function _0x2cb017(_0x3fa3f7,_0x835b0c){return _0x2945a0(_0x835b0c,_0x3fa3f7- -0x7e);}this['primitives']['updatePosition']['commandToExecute']&&(this['primitives']['updatePosition'][_0x2cb017(-0x58,-0x36)][_0x2cb017(-0x53,0x18)]=this[_0x2cb017(-0x62,-0x8f)][_0x2cb017(-0x34,-0x41)]);},'isDynamic':()=>this[_0x2945a0(0x16,-0x2d)][_0x4a3370(-0x78,-0x49)]}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x2945a0(0x65,0x4a)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters'][_0x4a3370(-0x5e,-0x53)],'latRange':()=>this[_0x4a3370(-0xf2,-0x82)]['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x4a3370(-0x6f,-0xbb)][_0x4a3370(0x87,0x21)],this[_0x2945a0(0x82,0x25)][_0x2945a0(-0x3d,-0x6e)][_0x4a3370(-0xd9,-0x9d)]),'dataLatRange':()=>new Cartesian2$1(this[_0x4a3370(-0x92,-0x28)]['bounds'][_0x4a3370(-0x112,-0xb4)],this[_0x4a3370(-0x16,-0x28)]['bounds']['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options'][_0x2945a0(0x45,0x8)],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this['options']['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures'][_0x2945a0(-0x87,-0x45)],'preExecute':()=>{function _0x56cc37(_0x4a019f,_0x5ae9ae){return _0x2945a0(_0x5ae9ae,_0x4a019f- -0x115);}function _0x291355(_0x1692ae,_0x5010af){return _0x2945a0(_0x5010af,_0x1692ae- -0x3);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this[_0x56cc37(-0x115,-0x109)]['postProcessingPosition']['commandToExecute'][_0x291355(0x28,-0x4b)]=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0x2945a0(-0x81,-0x2d)]['dynamic']})};}['reCreateWindTextures'](){this[_0x5e413e(-0x82,-0xa5)]['U']['destroy']();function _0x27a8d4(_0x5bd31c,_0x1cdac5){return _0x1d22c3(_0x1cdac5-0x22c,_0x5bd31c);}function _0x5e413e(_0x2fedfd,_0x4c4fef){return _0x1d22c3(_0x4c4fef-0x17b,_0x2fedfd);}this['windTextures']['V'][_0x27a8d4(0x2a,0x8)](),this['createWindTextures']();}[_0x8b6892(-0x202,-0x242)](_0x5620b9){this['windData']=_0x5620b9,this['reCreateWindTextures']();}['updateOptions'](_0x1f70d9){const _0x2b3c69=_0x1f70d9['flipY']!==undefined&&_0x1f70d9['flipY']!==this['options']['flipY'];this['options']=deepMerge(_0x1f70d9,this['options']),_0x2b3c69&&this['reCreateWindTextures']();}['processWindData'](_0x56db17){const {array:_0x371c4c}=_0x56db17;let {min:_0x48dca4,max:_0x5656a1}=_0x56db17;function _0x265197(_0x2513bb,_0x225486){return _0x8b6892(_0x225486,_0x2513bb-0x181);}const _0x408b0c=new Float32Array(_0x371c4c[_0x50ab04(0x31e,0x2ca)]);_0x48dca4===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x48dca4=Math['min'](..._0x371c4c));_0x5656a1===undefined&&(console['warn'](_0x50ab04(0x2d0,0x340)),_0x5656a1=Math['max'](..._0x371c4c));function _0x50ab04(_0x47c9b6,_0x3497d1){return _0x1d22c3(_0x47c9b6-0x4bc,_0x3497d1);}const _0x5bdc82=Math['max'](Math[_0x50ab04(0x355,0x2e3)](_0x48dca4),Math['abs'](_0x5656a1));for(let _0x3592c8=0x0;_0x3592c8<_0x371c4c[_0x50ab04(0x31e,0x302)];_0x3592c8++){const _0x5fa176=_0x371c4c[_0x3592c8]/_0x5bdc82;_0x408b0c[_0x3592c8]=_0x5fa176;}return _0x408b0c;}[_0x1d22c3(-0x224,-0x1f8)](){Object['values'](this[_0x595260(0x361,0x3d5)])['forEach'](_0x11c893=>_0x11c893['destroy']());function _0x501824(_0x12d6c5,_0x4d142d){return _0x8b6892(_0x12d6c5,_0x4d142d-0x53c);}Object[_0x595260(0x451,0x3dd)](this['particlesTextures'])['forEach'](_0x398ac3=>_0x398ac3['destroy']()),Object[_0x501824(0x354,0x3cf)](this['primitives'])[_0x595260(0x3e8,0x414)](_0x4a9388=>_0x4a9388[_0x501824(0x27d,0x2db)]());function _0x595260(_0x315831,_0x460d5f){return _0x1d22c3(_0x315831-0x581,_0x460d5f);}this['frameRateMonitor']['destroy']();}}function _0x5a79(){const _0x2b460f=['159WZsEDt','updatePosition','pixelDatatype','absolute','getCalculateSpeedShader','_updateIng2','windData','commandToExecute','fromDegrees','uniformMap','speedRate','_onMouseMoveEvent','outputTexture','#ffffff','frameRateAdjustment','segments','createColorTableTexture','_showHook','_speedRate','mouseMove','_updateIng','FLOAT','clientWidth','Cesium','updateOptions','bind','mouseHidden','grid','11421784jiTdTt','xmin','getParticles','random','lineWidth','isDestroy','particlesSpeed','blendFuncDestination','_colorRamp','colorTable','defineProperty','0px','_pointerEvents','xmax','canvasWidth','nextParticlesPosition','IDENTITY','abs','cols','CanvasWindLayer','flipY','createWindTextures','getUpdatePositionShader','rgb(206,255,255)','longitude','EllipsoidalOccluder','calculateSpeed','morphComplete','setData','type','default','createRawRenderState','fixedHeight','value','fillRect','_onMouseDownEvent','modelMatrix','_calcUV','data','canvasHeight','umax','getSegmentDrawVertexShader','createPrimitives','particlesNumber','sources','talt','keys','hidden','623610HpXqIU','red','destroyParticlesTextures','west','changed','_drawLines','age','ymax','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','_setOptionsHook','Cartesian2','beginPath','updateViewerParameters','setDate','computing','postMessage','getPrimitives','width','framebuffers','none','style','clear','canvas','reverse','values','strokeStyle','refreshTimer','createSegmentsGeometry','original','camera','mouse_move','resize','drawingBufferHeight','_tomap','fromCache','initWorker','magnificationFilter','sqrt','globalCompositeOperation','commandType','number','_randomParticle','applyViewerParameters','north','framebuffer','requestAnimationFrame','owner','onParticlesTextureSizeChange','blue','layer','globe','FUNC_ADD','show','STATIC_DRAW','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a','RGBA','pixelFormat','moveTo','1484177CYTcdn','RED','destoryRenderingFramebuffers','ymin','destroy','toGridXY','getRandomLatLng','bounds','windTextures','domain','get','clearCommand','create','latitude','south','clientHeight','changeOptions','udata','_addedHook','alt','isDestroyed','_onMapWhellEvent','createRenderingTextures','isInExtent','unbindEvent','mouseUp','remove','attributeLocations','ellipsoid','pointer-events','mouse_down','lighter','floor','quietPeriod','left','updateWindData','autoClear','east','currentParticlesPosition','getUVByXY','primitiveType','colors','lat','2599628yGfGqL','min','particlesTextureSize','vertexShaderSource','70456dElxJU','postProcessingPosition','componentDatatype','isDynamic','frameState.commandList\x20is\x20undefined','color','initFrameRate','speed','tlat','fromGeometry','windField','rawRenderState','getUVByPoint','max\x20is\x20undefined,\x20calculate\x20max','stringify','particles','log','viewerParameters','OPAQUE','MAX_VALUE','lng','geometry','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a','speedFactor','NEAREST','options','canvasContext','visibility','18673830LfYhiA','_removedHook','height','wind','add','mars3d-canvasWind','__proto__','cancelAnimationFrame','particleSystem','wrapS','setOptions','now','array','EventType','pow','redraw','dropRateBump','_calc_speedRate','rendering','getU','pickEllipsoid','max','CanvasWindField','update','pixelSize','12AtmWUY','drawingBufferWidth','push','createComputingPrimitives','blendFuncSource','WindUtil','rows','PointTrans','addEventListener','sin','tlng','lonRange','_canrefresh','context','_map','createCommand','bufferUsage','primitives','3705499PTIDpN','worker','slice','dynamic','removeEventListener','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','alpha','dropRate','pointerEvents','top','createParticlesTextures','fragmentShaderSource','shaderProgram','_animateFrame','maxAge','getSegmentDrawFragmentShader','componentsPerAttribute','UNSIGNED_INT','visible','vertexArray','length','BaseLayer','scene','flatMap','commandList','forEach','onColorTableChange','particlesTextures','_onMouseUpEvent','destination-in'];_0x5a79=function(){return _0x2b460f;};return _0x5a79();}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x8b6892(-0x16e,-0x1ba)];class WindParticlesRendering{constructor(_0x2c31cb,_0x1c23b6,_0x25afe6,_0x3c3f68){this[_0x44341b(0x492,0x451)]=_0x2c31cb;function _0x1d772d(_0x50efa0,_0x61553b){return _0x8b6892(_0x61553b,_0x50efa0-0xe7);}this['options']=_0x1c23b6,this[_0x44341b(0x3f2,0x420)]=_0x25afe6,this['computing']=_0x3c3f68;(typeof this['options'][_0x44341b(0x3af,0x40d)]!==_0x1d772d(-0x190,-0x178)||this[_0x1d772d(-0x136,-0x14f)]['particlesTextureSize']<=0x0)&&(console['error'](_0x44341b(0x551,0x4c8)),this['options']['particlesTextureSize']=0x100);this[_0x44341b(0x4d2,0x499)]=this[_0x44341b(0x4a9,0x484)](),this['textures']=this['createRenderingTextures']();function _0x44341b(_0x1c4060,_0x395263){return _0x1d22c3(_0x395263-0x608,_0x1c4060);}this[_0x44341b(0x4c5,0x4d2)]=this['createRenderingFramebuffers'](),this[_0x44341b(0x3f8,0x455)]=this[_0x1d772d(-0xa4,-0x80)]();}[_0x1d22c3(-0x212,-0x1f6)](){const _0x4a0766={};_0x4a0766['context']=this[_0x3c169a(0xe5,0x159)],_0x4a0766[_0x3c169a(0x165,0x170)]=this['context']['drawingBufferWidth'],_0x4a0766['height']=this['context']['drawingBufferHeight'],_0x4a0766['pixelFormat']=PixelFormat['RGBA'],_0x4a0766['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x479b46=_0x4a0766,_0x657ffb={};_0x657ffb[_0x3c169a(0xe5,0x12a)]=this['context'],_0x657ffb['width']=this['context'][_0x2ce171(0x4bd,0x46e)],_0x657ffb[_0x3c169a(0xc1,0x90)]=this['context'][_0x2ce171(0x43e,0x3ee)],_0x657ffb[_0x3c169a(0x72,0x71)]=PixelFormat['DEPTH_COMPONENT'];function _0x2ce171(_0x20e5b3,_0x16b03b){return _0x1d22c3(_0x20e5b3-0x680,_0x16b03b);}_0x657ffb[_0x2ce171(0x4ee,0x4aa)]=PixelDatatype[_0x2ce171(0x4df,0x497)];const _0x35cc84=_0x657ffb;function _0x3c169a(_0x4f6a2a,_0x4837ba){return _0x1d22c3(_0x4f6a2a-0x29c,_0x4837ba);}return{'segmentsColor':new Texture(_0x479b46),'segmentsDepth':new Texture(_0x35cc84)};}['createRenderingFramebuffers'](){const _0x1b2935={};_0x1b2935['context']=this[_0xa11f59(-0x195,-0x1d1)],_0x1b2935['colorTextures']=[this['textures']['segmentsColor']],_0x1b2935['depthTexture']=this['textures']['segmentsDepth'];function _0xa11f59(_0x23e439,_0x53feaf){return _0x8b6892(_0x53feaf,_0x23e439-0x5f);}return{'segments':new Framebuffer(_0x1b2935)};}[_0x1d22c3(-0x226,-0x1e5)](){function _0xf18eee(_0xdc03d0,_0x107372){return _0x1d22c3(_0x107372-0x6f4,_0xdc03d0);}Object['values'](this['framebuffers'])[_0xf18eee(0x4f8,0x55b)](_0x5e6946=>{function _0x5a1214(_0x4c36f5,_0x3346ad){return _0xf18eee(_0x4c36f5,_0x3346ad- -0x66e);}_0x5e6946[_0x5a1214(-0x139,-0x19e)]();});}['createColorTableTexture'](){const _0x23db05=new Float32Array(this['options']['colors'][_0x4664b2(-0x10d,-0x80)](_0x289004=>{const _0x232783=Color$1['fromCssColorString'](_0x289004);function _0x2362b3(_0x6556c6,_0x34991c){return _0x4664b2(_0x6556c6-0x32,_0x34991c);}function _0x4ee3f2(_0x360fd8,_0x3b010f){return _0x4664b2(_0x360fd8-0x26d,_0x3b010f);}return[_0x232783[_0x2362b3(-0x87,-0xeb)],_0x232783['green'],_0x232783[_0x4ee3f2(0xc9,0x61)],_0x232783[_0x2362b3(-0xec,-0xbb)]];})),_0x42e080={};_0x42e080['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x42e080[_0x4664b2(-0x1b0,-0x134)]=TextureMagnificationFilter['LINEAR'],_0x42e080[_0x2f7142(0x35f,0x388)]=TextureWrap['CLAMP_TO_EDGE'],_0x42e080['wrapT']=TextureWrap['CLAMP_TO_EDGE'];function _0x2f7142(_0x4a32f8,_0x4c98dc){return _0x1d22c3(_0x4c98dc-0x55c,_0x4a32f8);}function _0x4664b2(_0x2e0f22,_0x39ba07){return _0x8b6892(_0x39ba07,_0x2e0f22-0xcb);}return new Texture({'context':this['context'],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x42e080),'source':{'width':this['options'][_0x4664b2(-0x171,-0xfa)][_0x2f7142(0x3c0,0x3be)],'height':0x1,'arrayBufferView':_0x23db05}});}['createSegmentsGeometry'](){const _0x157f24=0x4,_0x5d8fe2=this['options']['particlesTextureSize'];let _0x16b1b0=[];for(let _0x23c6bc=0x0;_0x23c6bc<_0x5d8fe2;_0x23c6bc++){for(let _0x3b42da=0x0;_0x3b42da<_0x5d8fe2;_0x3b42da++){for(let _0x314e0e=0x0;_0x314e0e<_0x157f24;_0x314e0e++){_0x16b1b0['push'](_0x23c6bc/_0x5d8fe2),_0x16b1b0['push'](_0x3b42da/_0x5d8fe2);}}}_0x16b1b0=new Float32Array(_0x16b1b0);const _0x10c7ce=this['options']['particlesTextureSize']**0x2;let _0x55923e=[];for(let _0x2be1e2=0x0;_0x2be1e2<_0x10c7ce;_0x2be1e2++){_0x55923e['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x55923e=new Float32Array(_0x55923e);let _0x3744eb=[];for(let _0xb2de88=0x0,_0x35a6b7=0x0;_0xb2de88<_0x10c7ce;_0xb2de88++){_0x3744eb['push'](_0x35a6b7+0x0,_0x35a6b7+0x1,_0x35a6b7+0x2,_0x35a6b7+0x2,_0x35a6b7+0x1,_0x35a6b7+0x3),_0x35a6b7+=_0x157f24;}_0x3744eb=new Uint32Array(_0x3744eb);const _0x30a5da={};_0x30a5da[_0x1cd9a1(0x24f,0x203)]=ComponentDatatype[_0x1cd9a1(0x262,0x27b)],_0x30a5da['componentsPerAttribute']=0x2,_0x30a5da['values']=_0x16b1b0;const _0x504576={};function _0xce6af6(_0x2f7224,_0x4300e7){return _0x8b6892(_0x2f7224,_0x4300e7-0x187);}_0x504576[_0x1cd9a1(0x226,0x203)]=ComponentDatatype[_0x1cd9a1(0x297,0x27b)];function _0x1cd9a1(_0x3db863,_0x3171cc){return _0x1d22c3(_0x3171cc-0x3fa,_0x3db863);}_0x504576[_0x1cd9a1(0x1d6,0x258)]=0x3,_0x504576['values']=_0x55923e;const _0x10514e=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x30a5da),'normal':new GeometryAttribute(_0x504576)}),'indices':_0x3744eb});return _0x10514e;}[_0x1d22c3(-0x159,-0x13b)](_0x151737){const _0x2d95d7={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x151737};return Appearance['getDefaultRenderState'](!![],![],_0x2d95d7);}['createPrimitives'](){const _0x41123c={};_0x41123c['st']=0x0,_0x41123c['normal']=0x1;const _0x2f6dc5={};_0x2f6dc5['enabled']=!![];const _0x5029fb={};_0x5029fb['enabled']=!![],_0x5029fb['blendEquation']=WebGLRenderingContext[_0x325fc0(0x27c,0x22a)],_0x5029fb[_0x325fc0(0x2eb,0x285)]=WebGLRenderingContext['SRC_ALPHA'];function _0x325fc0(_0x142c8e,_0x30540d){return _0x8b6892(_0x30540d,_0x142c8e-0x4e8);}_0x5029fb[_0x325fc0(0x33a,0x3a1)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x2450de={};_0x2450de['viewport']=undefined;function _0x596584(_0x27502f,_0x2c1550){return _0x8b6892(_0x27502f,_0x2c1550-0x794);}_0x2450de['depthTest']=_0x2f6dc5,_0x2450de['depthMask']=!![],_0x2450de['blending']=_0x5029fb;const _0xbad94d=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x41123c,'geometry':this[_0x325fc0(0x37e,0x399)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures']['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this['computing']['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this[_0x325fc0(0x371,0x371)][_0x325fc0(0x314,0x2a4)]['particlesSpeed'],'frameRateAdjustment':()=>this[_0x596584(0x639,0x61d)]['frameRateAdjustment'],'colorTable':()=>this[_0x596584(0x657,0x5e8)],'domain':()=>{var _0x4d6ef9,_0x27e481;const _0xbb6a0e=new Cartesian2(((_0x4d6ef9=this['options']['domain'])===null||_0x4d6ef9===void 0x0?void 0x0:_0x4d6ef9[_0x3060fe(0x6e,0x4f)])??this[_0x9494ad(0x370,0x30d)][_0x9494ad(0x344,0x2b9)][_0x9494ad(0x28d,0x255)]['min'],((_0x27e481=this[_0x3060fe(0xc5,0x6b)][_0x3060fe(0x4,0x2c)])===null||_0x27e481===void 0x0?void 0x0:_0x27e481[_0x3060fe(0xf8,0x83)])??this['computing']['windData'][_0x9494ad(0x20d,0x255)][_0x9494ad(0x2c8,0x27f)]);function _0x3060fe(_0x39defd,_0x174456){return _0x325fc0(_0x174456- -0x260,_0x39defd);}function _0x9494ad(_0x4968be,_0x1cb203){return _0x596584(_0x4968be,_0x1cb203- -0x310);}return _0xbb6a0e;},'displayRange':()=>{var _0x9e061f,_0x23edbf;function _0x540fce(_0x483296,_0x463441){return _0x596584(_0x463441,_0x483296- -0x5da);}function _0x214644(_0xe907a0,_0x25c112){return _0x596584(_0x25c112,_0xe907a0- -0x63e);}const _0x468ed8=new Cartesian2(((_0x9e061f=this['options']['displayRange'])===null||_0x9e061f===void 0x0?void 0x0:_0x9e061f['min'])??this['computing']['windData'][_0x540fce(-0x75,-0x9d)][_0x540fce(-0x7f,-0xfa)],((_0x23edbf=this['options']['displayRange'])===null||_0x23edbf===void 0x0?void 0x0:_0x23edbf[_0x540fce(-0x4b,-0x2c)])??this[_0x214644(-0x21,0x56)]['windData']['speed'][_0x540fce(-0x4b,0x34)]);return _0x468ed8;},'particleHeight':()=>this[_0x596584(0x57d,0x577)]['fixedHeight']||0x0,'aspect':()=>this[_0x325fc0(0x2f4,0x2f8)][_0x325fc0(0x2e8,0x2d1)]/this['context']['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters'][_0x325fc0(0x2e6,0x2ac)],'lineWidth':()=>{const _0x85ebf9={};_0x85ebf9['min']=0x1,_0x85ebf9['max']=0x2;const _0x2bdcb8=this['options']['lineWidth']||_0x85ebf9;return new Cartesian2(_0x2bdcb8['min'],_0x2bdcb8['max']);},'lineLength':()=>{const _0x482557={};_0x482557[_0x5504ce(0x531,0x552)]=0x14;function _0x5504ce(_0x46400c,_0x53d669){return _0x596584(_0x46400c,_0x53d669- -0x9);}_0x482557[_0x5504ce(0x53d,0x586)]=0x64;function _0x3e44f7(_0x1698a9,_0x4a3ad5){return _0x596584(_0x4a3ad5,_0x1698a9- -0x5d0);}const _0x54f896=this['options']['lineLength']||_0x482557;return new Cartesian2(_0x54f896[_0x5504ce(0x5b9,0x552)],_0x54f896['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x596584(0x661,0x608)](),'fragmentShaderSource':ShaderManager[_0x596584(0x5a6,0x5b4)](),'rawRenderState':this[_0x325fc0(0x352,0x39c)](_0x2450de)}),_0x5adbc3={};return _0x5adbc3['segments']=_0xbad94d,_0x5adbc3;}[_0x8b6892(-0x251,-0x270)](){const _0x568445=this['createSegmentsGeometry']();this['primitives'][_0x12a5cd(0x5a,0x64)]['geometry']=_0x568445;const _0x280a3b={};_0x280a3b['context']=this['context'];function _0x12a5cd(_0x2596c3,_0x2a7fdb){return _0x1d22c3(_0x2a7fdb-0x1e9,_0x2596c3);}_0x280a3b[_0x12a5cd(-0x2a,0x5)]=_0x568445,_0x280a3b['attributeLocations']=this['primitives'][_0x49fda1(-0x2c,-0x2)]['attributeLocations'],_0x280a3b[_0x49fda1(-0x5b,-0x6e)]=BufferUsage['STATIC_DRAW'];const _0x11d69d=VertexArray['fromGeometry'](_0x280a3b);function _0x49fda1(_0x46f723,_0xa6779a){return _0x1d22c3(_0x46f723-0x159,_0xa6779a);}this[_0x49fda1(-0x5a,-0x94)][_0x12a5cd(0x9e,0x64)]['commandToExecute']&&(this[_0x12a5cd(0xae,0x36)]['segments'][_0x12a5cd(0xa7,0x5c)][_0x12a5cd(0x2,0x4a)]=_0x11d69d);}['onColorTableChange'](){this[_0x287283(0x33b,0x34c)]['destroy']();function _0x287283(_0x5baa2d,_0x10f730){return _0x8b6892(_0x5baa2d,_0x10f730-0x4f8);}this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x3c4e3c){const _0x496b99=_0x3c4e3c['colors']&&JSON[_0x192a69(0x7,-0x1d)](_0x3c4e3c['colors'])!==JSON[_0x192a69(-0x1e,-0x1d)](this[_0x36920c(0xea,0x109)]['colors']);function _0x36920c(_0x1097ea,_0x3bd431){return _0x8b6892(_0x3bd431,_0x1097ea-0x307);}function _0x192a69(_0x151340,_0x524895){return _0x8b6892(_0x151340,_0x524895-0x20b);}this[_0x36920c(0xea,0xe0)]=deepMerge(_0x3c4e3c,this[_0x192a69(-0x4b,-0x12)]),_0x496b99&&this[_0x36920c(0x132,0x11b)]();}['destroy'](){function _0x1058f5(_0x3fabe8,_0x8da163){return _0x1d22c3(_0x3fabe8-0x642,_0x8da163);}Object['values'](this['framebuffers'])['forEach'](_0x229d16=>{_0x229d16['destroy']();}),Object['values'](this['primitives'])[_0x1058f5(0x4a9,0x47f)](_0xc84337=>{_0xc84337['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x36fbbb,_0x3da766,_0x4bf249,_0x399624,_0x4201e3){this['context']=_0x36fbbb,this[_0x4729f3(0x4f9,0x496)]=_0x4bf249,this['viewerParameters']=_0x399624;function _0x4729f3(_0x290ded,_0x280196){return _0x8b6892(_0x290ded,_0x280196-0x6b3);}this['computing']=new WindParticlesComputing(_0x36fbbb,_0x3da766,_0x4bf249,_0x399624,_0x4201e3);function _0x495058(_0x3d1de6,_0x598473){return _0x1d22c3(_0x598473-0x123,_0x3d1de6);}this[_0x4729f3(0x45a,0x4ab)]=new WindParticlesRendering(_0x36fbbb,_0x4bf249,_0x399624,this[_0x495058(0x19,-0x17)]),this['clearFramebuffers']();}['getPrimitives'](){function _0x35b853(_0x1be5d5,_0x2be9c2){return _0x8b6892(_0x1be5d5,_0x2be9c2-0x15d);}function _0x39414f(_0x1b204f,_0x423bcf){return _0x1d22c3(_0x1b204f-0x526,_0x423bcf);}const _0x3d4812=[this[_0x35b853(0x27,-0x1a)][_0x35b853(-0x11f,-0x93)]['calculateSpeed'],this[_0x35b853(-0x4f,-0x1a)]['primitives'][_0x35b853(-0x25,-0x73)],this[_0x35b853(-0x94,-0x1a)][_0x39414f(0x373,0x2e6)]['postProcessingPosition'],this['rendering'][_0x35b853(-0xec,-0x93)]['segments']];return _0x3d4812;}['clearFramebuffers'](){function _0x51a9c5(_0x2d6f78,_0x576b18){return _0x8b6892(_0x576b18,_0x2d6f78-0x14b);}const _0x3bb945=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x512cd4(0x2da,0x28a)]});function _0x512cd4(_0x2bd241,_0x371362){return _0x1d22c3(_0x2bd241-0x4c1,_0x371362);}Object[_0x51a9c5(-0x3c,0x1e)](this['rendering'][_0x51a9c5(-0x28,0x36)])[_0x51a9c5(-0x8b,-0x47)](_0x105b46=>{_0x3bb945[_0xd3daf4(0x52b,0x4e2)]=this['rendering'][_0xd3daf4(0x5a5,0x5e2)][_0x105b46];function _0x4dd112(_0x11f451,_0x178cb5){return _0x51a9c5(_0x11f451- -0x52,_0x178cb5);}function _0xd3daf4(_0x51e65f,_0x2e288b){return _0x512cd4(_0x2e288b-0x257,_0x51e65f);}_0x3bb945['execute'](this['context']);});}['changeOptions'](_0x5277a5){let _0x73d051=![];_0x5277a5[_0x1f7ac1(-0x48,-0x28)]&&this['options']['particlesTextureSize']!==_0x5277a5[_0x1f7ac1(-0x8e,-0x28)]&&(_0x73d051=!![]);const _0x279c18=deepMerge(_0x5277a5,this['options']);if(_0x279c18[_0x1f7ac1(-0x5d,-0x28)]<0x1)throw new Error(_0x1f7ac1(0x71,0x26));function _0x1f7ac1(_0x847bba,_0x4d8344){return _0x1d22c3(_0x4d8344-0x1d3,_0x847bba);}this['options']=_0x279c18,this['rendering'][_0x3f8b3e(0x1f9,0x19f)](_0x5277a5);function _0x3f8b3e(_0x42bffa,_0x367c21){return _0x1d22c3(_0x42bffa-0x375,_0x367c21);}this[_0x1f7ac1(0x7d,0x99)]['updateOptions'](_0x5277a5),_0x73d051&&(this[_0x3f8b3e(0x23b,0x1e1)]['destroyParticlesTextures'](),this[_0x1f7ac1(0xd4,0x99)][_0x3f8b3e(0x1cd,0x24d)](),this['rendering'][_0x1f7ac1(-0x83,-0x60)]());}[_0x1d22c3(-0x238,-0x1b6)](_0x43491f){this[_0x1efdcb(0x3e7,0x35a)]=_0x43491f;function _0x462f83(_0xdb9337,_0x1fa796){return _0x8b6892(_0x1fa796,_0xdb9337-0x4e0);}this['computing'][_0x1efdcb(0x3e7,0x41a)]=_0x43491f;function _0x1efdcb(_0x27b59b,_0x4df435){return _0x8b6892(_0x4df435,_0x27b59b-0x60c);}this['rendering']['viewerParameters']=_0x43491f;}['destroy'](){function _0x4d4aa8(_0x17604a,_0x34bc7e){return _0x1d22c3(_0x34bc7e-0x456,_0x17604a);}function _0x526d63(_0x2255d9,_0x2b002d){return _0x1d22c3(_0x2b002d-0x92,_0x2255d9);}this['computing'][_0x4d4aa8(0x1cb,0x232)](),this[_0x4d4aa8(0x259,0x28b)]['destroy']();}}function _0x1d22c3(_0x255836,_0x14c6e3){return _0x457f(_0x255836- -0x37a,_0x14c6e3);}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0x8b6892(-0x1f3,-0x26e)]['BaseLayer'],_0x2dc9ff={};_0x2dc9ff['min']=0x1,_0x2dc9ff['max']=0x2;const _0x26f039={};_0x26f039[_0x8b6892(-0x2a5,-0x239)]=0x14,_0x26f039['max']=0x64;const _0x47e23e={};_0x47e23e['particlesTextureSize']=0x64,_0x47e23e['fixedHeight']=0x0,_0x47e23e['lineWidth']=_0x2dc9ff,_0x47e23e['lineLength']=_0x26f039,_0x47e23e['speedFactor']=0x1,_0x47e23e['dropRate']=0.003,_0x47e23e[_0x8b6892(-0x1c2,-0x20a)]=0.001,_0x47e23e['colors']=[_0x1d22c3(-0x161,-0xfd)],_0x47e23e['flipY']=![],_0x47e23e['dynamic']=!![];const DEF_OPTIONS=_0x47e23e;class WindLayer extends BaseLayer$1{constructor(_0x460cbe={}){_0x460cbe={...DEF_OPTIONS,..._0x460cbe};function _0x40eefb(_0x9f043c,_0x405c64){return _0x8b6892(_0x405c64,_0x9f043c-0x1b9);}super(_0x460cbe),this[_0x40eefb(0x3d,0xbb)](_0x460cbe,_0x460cbe);}get['layer'](){return this['primitives'];}get['data'](){return this['options']['data'];}set[_0x8b6892(-0x132,-0x18f)](_0x4ee13d){function _0x358ae7(_0x399cea,_0x523e10){return _0x1d22c3(_0x523e10-0x374,_0x399cea);}function _0x5a4400(_0x32eeab,_0x10f0c3){return _0x8b6892(_0x10f0c3,_0x32eeab- -0x21);}this[_0x5a4400(-0x23e,-0x261)][_0x5a4400(-0x1b0,-0x1b2)]=_0x4ee13d,this['setData'](_0x4ee13d);}get['colors'](){function _0x20cb64(_0x1dad5d,_0x416492){return _0x1d22c3(_0x416492-0x55,_0x1dad5d);}return this['options'][_0x20cb64(-0x1ed,-0x1aa)];}set['colors'](_0x39d131){this['options'][_0x1ae774(0x1af,0x1ff)]=_0x39d131;const _0x57d0f5={};function _0x1ae774(_0x4c926a,_0x244af8){return _0x8b6892(_0x4c926a,_0x244af8-0x43b);}function _0x475e5f(_0x4d0c5a,_0x4aab41){return _0x8b6892(_0x4aab41,_0x4d0c5a-0x73f);}_0x57d0f5[_0x475e5f(0x503,0x49a)]=_0x39d131,this[_0x1ae774(0x28d,0x2bf)](this['options'],_0x57d0f5);}['_mountedHook'](){}['_addedHook'](){this['scene']=this['_map']['scene'],this[_0x5caa9c(0x220,0x1b2)]=this[_0x34751f(0x4d3,0x4a7)]['camera'];this['options']['data']&&this['setData'](this['options']['data']);if(!this['windData'])return;function _0x5caa9c(_0x151f8e,_0x3df895){return _0x1d22c3(_0x151f8e-0x34b,_0x3df895);}this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this['updateViewerParameters'](),this[_0x5caa9c(0x176,0x1d7)]=new WindParticleSystem(this[_0x5caa9c(0x1af,0x1d2)]['context'],this[_0x34751f(0x4ff,0x4cf)],this['options'],this['viewerParameters'],this[_0x34751f(0x547,0x4c1)]),this['primitives']=this['particleSystem'][_0x34751f(0x542,0x525)]();function _0x34751f(_0x10d7ba,_0x53d406){return _0x8b6892(_0x10d7ba,_0x53d406-0x69a);}this['primitives'][_0x34751f(0x54c,0x4c4)](_0x3527e0=>{function _0x24c993(_0x4aa41d,_0x5d7703){return _0x5caa9c(_0x4aa41d- -0x233,_0x5d7703);}function _0x5bc662(_0x216525,_0x20f8aa){return _0x34751f(_0x216525,_0x20f8aa-0xf2);}this['scene'][_0x24c993(-0x9b,-0x8e)][_0x24c993(-0xc1,-0xc2)](_0x3527e0);}),this['camera']['percentageChanged']=0.01,this['camera']['changed']['addEventListener'](this['updateViewerParameters']['bind'](this)),this[_0x5caa9c(0x1af,0x211)]['morphComplete']['addEventListener'](this['updateViewerParameters']['bind'](this)),window[_0x5caa9c(0x18f,0x13d)]('resize',this['updateViewerParameters']['bind'](this));}[_0x8b6892(-0x21a,-0x219)](){function _0x342ceb(_0x1a718c,_0x3fedb6){return _0x1d22c3(_0x1a718c-0x5cf,_0x3fedb6);}this[_0x342ceb(0x4a4,0x436)][_0x341fed(-0xd1,-0x104)]['removeEventListener'](this[_0x342ceb(0x493,0x495)]['bind'](this)),this['scene'][_0x342ceb(0x472,0x487)]['removeEventListener'](this[_0x341fed(-0xc9,-0x63)][_0x341fed(-0x108,-0x16f)](this)),window[_0x341fed(-0x13b,-0xe0)](_0x341fed(-0x1d0,-0x24f),this['updateViewerParameters']['bind'](this));this['primitives']&&(this['primitives']['forEach'](_0x340944=>{function _0x1616c1(_0x5c197c,_0x57ef9d){return _0x342ceb(_0x57ef9d- -0x233,_0x5c197c);}this['scene']['primitives'][_0x1616c1(0x10e,0x18e)](_0x340944);}),delete this['primitives']);function _0x341fed(_0x180a9a,_0x5c0f33){return _0x8b6892(_0x5c0f33,_0x180a9a-0xb0);}this['particleSystem']&&(this['particleSystem'][_0x342ceb(0x3ab,0x35d)](),delete this[_0x341fed(-0x162,-0x150)]);}['setData'](_0x40c7ec,_0x5e937e){this['windData']=this['processWindData'](_0x40c7ec);function _0x10f03b(_0x158ad4,_0x400273){return _0x1d22c3(_0x158ad4-0x488,_0x400273);}if(_0x5e937e){this['_removedHook'](),this['_addedHook']();return;}this['particleSystem']?(this['particleSystem']['computing'][_0x10f03b(0x283,0x307)](this['windData']),this['scene']['requestRender']()):this['_addedHook']();}['_setOptionsHook'](_0x4d8679,_0x5182a1){function _0x154567(_0x2f95cb,_0x152a98){return _0x8b6892(_0x152a98,_0x2f95cb-0x77f);}function _0x3cd104(_0xb0a902,_0x44f2de){return _0x1d22c3(_0x44f2de-0x3df,_0xb0a902);}this[_0x3cd104(0x185,0x20a)]&&(this[_0x154567(0x56d,0x59e)][_0x154567(0x52a,0x54a)](_0x5182a1),this[_0x154567(0x5a6,0x5d0)]['requestRender']());}['processWindData'](_0x40b89f){var _0x73086d,_0x1141b9;const _0x2f6adc={..._0x40b89f},_0x56c5bd=_0x2f6adc;!_0x56c5bd['height']&&_0x56c5bd['rows']&&(_0x56c5bd['height']=_0x56c5bd['rows']);function _0xf97ffa(_0x51eedb,_0x2d8de3){return _0x1d22c3(_0x51eedb- -0x28,_0x2d8de3);}!_0x56c5bd[_0xf97ffa(-0x15f,-0x140)]&&_0x56c5bd['cols']&&(_0x56c5bd['width']=_0x56c5bd['cols']);!_0x56c5bd['bounds']&&(_0x56c5bd['bounds']={'west':_0x56c5bd['xmin'],'south':_0x56c5bd[_0x150737(0x2c8,0x325)],'east':_0x56c5bd['xmax'],'north':_0x56c5bd[_0x150737(0x3ac,0x3a7)]});if(!_0x56c5bd['u']){const _0x152bc1={};_0x152bc1['array']=_0x40b89f[_0x150737(0x2d6,0x304)],_0x152bc1[_0xf97ffa(-0x224,-0x222)]=_0x40b89f['umin'],_0x152bc1['max']=_0x40b89f[_0x150737(0x39d,0x409)],_0x56c5bd['u']=_0x152bc1;}if(!_0x56c5bd['v']){const _0x4cc00a={};_0x4cc00a[_0xf97ffa(-0x1f9,-0x273)]=_0x40b89f['vdata'],_0x4cc00a['min']=_0x40b89f['vmin'],_0x4cc00a[_0xf97ffa(-0x1f0,-0x267)]=_0x40b89f['vmax'],_0x56c5bd['v']=_0x4cc00a;}function _0x150737(_0x1690bb,_0x21dfac){return _0x8b6892(_0x21dfac,_0x1690bb-0x52a);}if(((_0x73086d=_0x56c5bd['speed'])===null||_0x73086d===void 0x0?void 0x0:_0x73086d[_0xf97ffa(-0x224,-0x1ec)])===undefined||((_0x1141b9=_0x56c5bd['speed'])===null||_0x1141b9===void 0x0?void 0x0:_0x1141b9['max'])===undefined||_0x56c5bd['speed']['array']===undefined){const _0x304b8c={'array':new Float32Array(_0x56c5bd['u']['array'][_0xf97ffa(-0x1c6,-0x1ee)]),'min':Number[_0xf97ffa(-0x20e,-0x1a7)],'max':Number['MIN_VALUE']};for(let _0x5a58c5=0x0;_0x5a58c5<_0x56c5bd['u']['array'][_0x150737(0x34f,0x32c)];_0x5a58c5++){_0x304b8c['array'][_0x5a58c5]=Math[_0x150737(0x2b0,0x2f9)](_0x56c5bd['u'][_0x150737(0x31c,0x2fe)][_0x5a58c5]*_0x56c5bd['u'][_0x150737(0x31c,0x298)][_0x5a58c5]+_0x56c5bd['v']['array'][_0x5a58c5]*_0x56c5bd['v'][_0x150737(0x31c,0x3a8)][_0x5a58c5]),_0x304b8c['array'][_0x5a58c5]!==0x0&&(_0x304b8c['min']=Math[_0x150737(0x2f1,0x336)](_0x304b8c['min'],_0x304b8c[_0xf97ffa(-0x1f9,-0x263)][_0x5a58c5]),_0x304b8c[_0x150737(0x325,0x2d2)]=Math[_0xf97ffa(-0x1f0,-0x239)](_0x304b8c['max'],_0x304b8c[_0xf97ffa(-0x1f9,-0x211)][_0x5a58c5]));}_0x56c5bd[_0xf97ffa(-0x21a,-0x1e1)]=_0x304b8c;}return _0x56c5bd;}['updateViewerParameters'](){var _0x2f293c;const _0x152d32=this['scene'],_0x35574e=_0x152d32['canvas'],_0x1996f7={};_0x1996f7['x']=0x0,_0x1996f7['y']=0x0;const _0x564fcf={};function _0x560e50(_0x4fc6a7,_0x4cbee2){return _0x8b6892(_0x4fc6a7,_0x4cbee2-0x79c);}_0x564fcf['x']=0x0;function _0x1effd7(_0x5808e2,_0x395722){return _0x1d22c3(_0x395722-0x6d,_0x5808e2);}_0x564fcf['y']=_0x35574e[_0x560e50(0x52a,0x546)];const _0xe23787={};_0xe23787['x']=_0x35574e[_0x1effd7(-0x180,-0x111)],_0xe23787['y']=0x0;const _0x4eb70f={};_0x4eb70f['x']=_0x35574e['clientWidth'],_0x4eb70f['y']=_0x35574e['clientHeight'];const _0x133091=[_0x1996f7,_0x564fcf,_0xe23787,_0x4eb70f];let _0xa6d096=0xb4,_0x119db2=-0xb4,_0x44e0f3=0x5a,_0x1e4d50=-0x5a,_0x464345=![];for(const _0x2a6c39 of _0x133091){const _0x2a3db1=_0x152d32['camera'][_0x560e50(0x51d,0x596)](new Cesium$1['Cartesian2'](_0x2a6c39['x'],_0x2a6c39['y']),_0x152d32['globe']['ellipsoid']);if(!_0x2a3db1){_0x464345=!![];break;}const _0x5883f5=_0x152d32[_0x560e50(0x4ac,0x52f)][_0x1effd7(-0x223,-0x19f)]['cartesianToCartographic'](_0x2a3db1),_0x3c804f=Cesium$1['Math']['toDegrees'](_0x5883f5[_0x560e50(0x663,0x5ff)]),_0x5e3aaf=Cesium$1['Math']['toDegrees'](_0x5883f5[_0x560e50(0x586,0x544)]);_0xa6d096=Math['min'](_0xa6d096,_0x3c804f),_0x119db2=Math[_0x560e50(0x525,0x597)](_0x119db2,_0x3c804f),_0x44e0f3=Math['min'](_0x44e0f3,_0x5e3aaf),_0x1e4d50=Math['max'](_0x1e4d50,_0x5e3aaf);}if(!_0x464345){const _0x3a3c23=new Cesium$1['Cartesian2'](Math[_0x560e50(0x5b2,0x597)](this['windData'][_0x560e50(0x52c,0x53e)][_0x560e50(0x64d,0x61a)],_0xa6d096),Math['min'](this[_0x1effd7(-0x13c,-0x121)][_0x560e50(0x523,0x53e)][_0x1effd7(-0x169,-0x196)],_0x119db2)),_0x5c06b3=new Cesium$1[(_0x1effd7(-0x48,-0xd1))](Math['max'](this['windData']['bounds']['south'],_0x44e0f3),Math['min'](this[_0x1effd7(-0xab,-0x121)]['bounds']['north'],_0x1e4d50)),_0x40860b=(_0x3a3c23['y']-_0x3a3c23['x'])*0.05,_0x5ef2d4=(_0x5c06b3['y']-_0x5c06b3['x'])*0.05;_0x3a3c23['x']=Math[_0x1effd7(-0x139,-0x15b)](this['windData']['bounds']['west'],_0x3a3c23['x']-_0x40860b),_0x3a3c23['y']=Math[_0x1effd7(-0x123,-0x18f)](this[_0x560e50(0x658,0x5d1)]['bounds'][_0x560e50(0x5b5,0x55c)],_0x3a3c23['y']+_0x40860b),_0x5c06b3['x']=Math['max'](this['windData']['bounds'][_0x560e50(0x4c1,0x545)],_0x5c06b3['x']-_0x5ef2d4),_0x5c06b3['y']=Math['min'](this['windData']['bounds']['north'],_0x5c06b3['y']+_0x5ef2d4),this['viewerParameters']['lonRange']=_0x3a3c23,this['viewerParameters']['latRange']=_0x5c06b3;const _0x1828f2=this[_0x1effd7(-0x174,-0x121)][_0x1effd7(-0x1b6,-0x1b4)]['east']-this['windData'][_0x1effd7(-0x20c,-0x1b4)][_0x560e50(0x665,0x61a)],_0x55da64=this[_0x560e50(0x5e0,0x5d1)]['bounds']['north']-this[_0x560e50(0x624,0x5d1)]['bounds']['south'],_0x2938de=(_0x3a3c23['y']-_0x3a3c23['x'])/_0x1828f2,_0x3b1750=(_0x5c06b3['y']-_0x5c06b3['x'])/_0x55da64,_0x27b543=Math['min'](_0x2938de,_0x3b1750),_0x38bc96=0x3e8*_0x27b543;_0x38bc96>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0x38bc96)));}this[_0x560e50(0x55a,0x577)]['sceneMode']=this[_0x1effd7(-0x17f,-0x12f)]['mode'],(_0x2f293c=this[_0x560e50(0x51e,0x58a)])===null||_0x2f293c===void 0x0||_0x2f293c[_0x1effd7(-0x250,-0x1cb)](this[_0x560e50(0x565,0x577)]);}['getDataAtLonLat'](_0x21ba6c,_0x533cb6){const {bounds:_0x51754c,width:_0xc7107d,height:_0xa287d,u:_0x22dc58,v:_0x4212eb,speed:_0x5defb8}=this[_0x18f1aa(0x93,0xcb)],{flipY:_0x3d86fe}=this[_0x50a9dc(0x2ea,0x32f)];if(_0x21ba6c<_0x51754c[_0x18f1aa(0xfd,0x114)]||_0x21ba6c>_0x51754c['east']||_0x533cb6<_0x51754c['south']||_0x533cb6>_0x51754c[_0x18f1aa(-0x2c,0x22)])return null;const _0x46910f=(_0x21ba6c-_0x51754c['west'])/(_0x51754c['east']-_0x51754c['west'])*(_0xc7107d-0x1);let _0x1afb87=(_0x533cb6-_0x51754c[_0x50a9dc(0x2b0,0x264)])/(_0x51754c['north']-_0x51754c['south'])*(_0xa287d-0x1);_0x3d86fe&&(_0x1afb87=_0xa287d-0x1-_0x1afb87);const _0x47b147=Math['floor'](_0x46910f),_0x1e9300=Math['floor'](_0x1afb87),_0x1ef9a=Math[_0x18f1aa(0x6a,0x51)](_0x46910f),_0x19f249=Math['min'](_0x1ef9a+0x1,_0xc7107d-0x1);function _0x50a9dc(_0x1b21fa,_0x32a761){return _0x1d22c3(_0x1b21fa-0x4ca,_0x32a761);}const _0x4ecaff=Math['floor'](_0x1afb87),_0x424179=Math[_0x18f1aa(0xa5,0x5d)](_0x4ecaff+0x1,_0xa287d-0x1),_0x4d64d5=_0x46910f-_0x1ef9a,_0x4c8968=_0x1afb87-_0x4ecaff,_0x5c9bb6=_0x1e9300*_0xc7107d+_0x47b147,_0x2d45f2=_0x4ecaff*_0xc7107d+_0x1ef9a,_0x270ca2=_0x4ecaff*_0xc7107d+_0x19f249,_0x357c1c=_0x424179*_0xc7107d+_0x1ef9a,_0xde10d4=_0x424179*_0xc7107d+_0x19f249,_0x3aac55=_0x22dc58[_0x18f1aa(0x7d,0x88)][_0x2d45f2],_0x586613=_0x22dc58[_0x18f1aa(0xb1,0x88)][_0x270ca2],_0x327219=_0x22dc58[_0x18f1aa(0xe2,0x88)][_0x357c1c],_0x2101b9=_0x22dc58['array'][_0xde10d4],_0x209281=(0x1-_0x4d64d5)*(0x1-_0x4c8968)*_0x3aac55+_0x4d64d5*(0x1-_0x4c8968)*_0x586613+(0x1-_0x4d64d5)*_0x4c8968*_0x327219+_0x4d64d5*_0x4c8968*_0x2101b9,_0xfc48f0=_0x4212eb['array'][_0x2d45f2],_0x5cf44a=_0x4212eb[_0x18f1aa(0x12,0x88)][_0x270ca2],_0x5539e6=_0x4212eb['array'][_0x357c1c],_0x49ad2c=_0x4212eb['array'][_0xde10d4],_0x3f6791=(0x1-_0x4d64d5)*(0x1-_0x4c8968)*_0xfc48f0+_0x4d64d5*(0x1-_0x4c8968)*_0x5cf44a+(0x1-_0x4d64d5)*_0x4c8968*_0x5539e6+_0x4d64d5*_0x4c8968*_0x49ad2c,_0x366768=Math[_0x18f1aa(0x6c,0x1c)](_0x209281*_0x209281+_0x3f6791*_0x3f6791),_0x4271dc={};_0x4271dc['u']=_0x22dc58[_0x18f1aa(0xc,0x88)][_0x5c9bb6],_0x4271dc['v']=_0x4212eb['array'][_0x5c9bb6],_0x4271dc[_0x18f1aa(0x56,0x67)]=_0x5defb8['array'][_0x5c9bb6];const _0x852a8b={};_0x852a8b['u']=_0x209281,_0x852a8b['v']=_0x3f6791,_0x852a8b['speed']=_0x366768;function _0x18f1aa(_0x314bc6,_0x5022d3){return _0x1d22c3(_0x5022d3-0x259,_0x314bc6);}const _0x2e2751={};return _0x2e2751[_0x50a9dc(0x39e,0x363)]=_0x4271dc,_0x2e2751['interpolated']=_0x852a8b,_0x2e2751;}}mars3d__namespace['LayerUtil']['register'](_0x1d22c3(-0x1da,-0x226),WindLayer),mars3d__namespace[_0x8b6892(-0x249,-0x26e)]['WindLayer']=WindLayer;class CanvasParticle{constructor(){function _0x19407e(_0x44c953,_0x423edf){return _0x1d22c3(_0x44c953-0x513,_0x423edf);}this['lng']=null,this['lat']=null;function _0x1942fa(_0x56ac9a,_0x5dd27c){return _0x1d22c3(_0x5dd27c-0x275,_0x56ac9a);}this['tlng']=null,this[_0x1942fa(0x57,0x84)]=null,this[_0x19407e(0x3d1,0x433)]=null,this[_0x1942fa(0x6,0x83)]=null;}['destroy'](){for(const _0x299ab5 in this){delete this[_0x299ab5];}}}class CanvasWindField{constructor(_0x5aa1a6){function _0x2bb3ed(_0x1c7f48,_0x4eab88){return _0x8b6892(_0x4eab88,_0x1c7f48-0x31b);}this[_0x2bb3ed(0x10b,0x99)](_0x5aa1a6);}get['speedRate'](){function _0x4b6b3b(_0x5d709f,_0x16e10e){return _0x1d22c3(_0x16e10e-0x35e,_0x5d709f);}return this[_0x4b6b3b(0x22b,0x1dc)];}set[_0x1d22c3(-0x18a,-0x179)](_0x5e2b47){this[_0x4eeb9d(0x553,0x516)]=(0x64-(_0x5e2b47>0x63?0x63:_0x5e2b47))*0x64;function _0x4eeb9d(_0x291ff0,_0x56135b){return _0x8b6892(_0x56135b,_0x291ff0-0x712);}function _0x1f9865(_0xe19c03,_0x30848c){return _0x8b6892(_0xe19c03,_0x30848c-0xd2);}this[_0x4eeb9d(0x509,0x592)]=[(this[_0x4eeb9d(0x56a,0x5c2)]-this['xmin'])/this['_speedRate'],(this[_0x1f9865(-0x27,-0xac)]-this[_0x4eeb9d(0x4b0,0x47c)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set[_0x8b6892(-0x1ce,-0x1e1)](_0xa86b9c){this['_maxAge']=_0xa86b9c;}['setOptions'](_0x2474ff){this[_0x3d4f3a(0x407,0x3f4)]=_0x2474ff,this[_0x3543d3(0x5a2,0x581)]=_0x2474ff['maxAge']||0x78,this['speedRate']=_0x2474ff[_0x3d4f3a(0x428,0x44a)]||0x32;function _0x3d4f3a(_0x2b1534,_0x5df00f){return _0x1d22c3(_0x5df00f-0x5d4,_0x2b1534);}this[_0x3543d3(0x539,0x53b)]=[];const _0x4d803e=_0x2474ff[_0x3d4f3a(0x460,0x487)]||0x1000;function _0x3543d3(_0x134b8f,_0x1a10e0){return _0x8b6892(_0x134b8f,_0x1a10e0-0x762);}for(let _0x4229cf=0x0;_0x4229cf<_0x4d803e;_0x4229cf++){const _0x64bd7=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0x64bd7);}}['setDate'](_0x537445){this['rows']=_0x537445[_0x113e87(0x5b6,0x580)],this[_0x310fe0(0x3c8,0x3d4)]=_0x537445['cols'],this['xmin']=_0x537445['xmin'],this[_0x113e87(0x57d,0x5d3)]=_0x537445[_0x113e87(0x571,0x5d3)],this['ymin']=_0x537445[_0x113e87(0x53d,0x519)],this['ymax']=_0x537445[_0x113e87(0x685,0x5fd)];function _0x113e87(_0x14762e,_0x33139a){return _0x1d22c3(_0x33139a-0x73e,_0x14762e);}this['grid']=[];const _0x560d8d=_0x537445['udata'],_0x336e4d=_0x537445['vdata'];let _0x10c9d5=![];_0x560d8d['length']===this['rows']&&_0x560d8d[0x0]['length']===this['cols']&&(_0x10c9d5=!![]);let _0x222b81=0x0,_0x290133=null;function _0x310fe0(_0x2c3645,_0x9bbae7){return _0x1d22c3(_0x9bbae7-0x53a,_0x2c3645);}let _0x591373=null;for(let _0x197303=0x0;_0x197303<this['rows'];_0x197303++){_0x290133=[];for(let _0x5b0957=0x0;_0x5b0957<this[_0x310fe0(0x38e,0x3d4)];_0x5b0957++,_0x222b81++){_0x10c9d5?_0x591373=this[_0x113e87(0x668,0x5eb)](_0x560d8d[_0x197303][_0x5b0957],_0x336e4d[_0x197303][_0x5b0957]):_0x591373=this['_calcUV'](_0x560d8d[_0x222b81],_0x336e4d[_0x222b81]),_0x290133[_0x113e87(0x5b1,0x57c)](_0x591373);}this['grid']['push'](_0x290133);}!this[_0x113e87(0x5db,0x55e)]['flipY']&&this['grid'][_0x310fe0(0x42d,0x409)]();}['clear'](){delete this['rows'];function _0x1e540e(_0x36d455,_0x2fe2af){return _0x1d22c3(_0x2fe2af-0x198,_0x36d455);}function _0x14e3ee(_0x338a1a,_0x2b7aa1){return _0x8b6892(_0x2b7aa1,_0x338a1a-0x51);}delete this['cols'],delete this['xmin'],delete this[_0x14e3ee(-0x157,-0x186)],delete this['ymin'],delete this['ymax'],delete this[_0x1e540e(0x39,0x1f)],delete this['particles'];}[_0x1d22c3(-0x223,-0x29b)](_0x2fe641,_0x224762){function _0x401642(_0x1a452a,_0x52a5db){return _0x1d22c3(_0x1a452a-0x5de,_0x52a5db);}function _0x2f8bc9(_0x24a053,_0x31328b){return _0x8b6892(_0x31328b,_0x24a053-0x37b);}const _0x282a94=(_0x2fe641-this['xmin'])/(this['xmax']-this[_0x401642(0x467,0x45d)])*(this[_0x2f8bc9(0x1d8,0x17f)]-0x1),_0x2ea2c7=(this[_0x401642(0x49d,0x41c)]-_0x224762)/(this['ymax']-this[_0x2f8bc9(0x119,0x18e)])*(this['rows']-0x1);return[_0x282a94,_0x2ea2c7];}['getUVByXY'](_0x2fb502,_0x456460){if(_0x2fb502<0x0||_0x2fb502>=this[_0x5bfa9d(0xc9,0x113)]||_0x456460>=this['rows'])return[0x0,0x0,0x0];const _0x1457f8=Math[_0x5bfa9d(0x27,-0x39)](_0x2fb502),_0x64ef49=Math['floor'](_0x456460);function _0x83de56(_0x2fce71,_0x17944e){return _0x8b6892(_0x2fce71,_0x17944e-0x70f);}if(_0x1457f8===_0x2fb502&&_0x64ef49===_0x456460)return this['grid'][_0x456460][_0x2fb502];const _0x2a01a9=_0x1457f8+0x1,_0x60887d=_0x64ef49+0x1,_0xe680db=this[_0x5bfa9d(0x2e,0x4a)](_0x1457f8,_0x64ef49);function _0x5bfa9d(_0x324f4a,_0x56f54e){return _0x1d22c3(_0x324f4a-0x22f,_0x56f54e);}const _0x537b73=this['getUVByXY'](_0x2a01a9,_0x64ef49),_0x4c7f4b=this[_0x5bfa9d(0x2e,0x64)](_0x1457f8,_0x60887d),_0x3f58ad=this[_0x83de56(0x4e4,0x4d1)](_0x2a01a9,_0x60887d);let _0x6fc04f=null;try{_0x6fc04f=this['_bilinearInterpolation'](_0x2fb502-_0x1457f8,_0x456460-_0x64ef49,_0xe680db,_0x537b73,_0x4c7f4b,_0x3f58ad);}catch(_0x28d6a5){console[_0x83de56(0x4c2,0x4e9)](_0x2fb502,_0x456460);}return _0x6fc04f;}['_bilinearInterpolation'](_0x9dc077,_0xb010e1,_0x3769ac,_0x4d1c31,_0x29a971,_0x3af361){const _0x49b7cf=0x1-_0x9dc077;function _0x17e7c2(_0x326653,_0x404576){return _0x8b6892(_0x404576,_0x326653-0x74f);}const _0xb18760=0x1-_0xb010e1,_0x44352b=_0x49b7cf*_0xb18760,_0x344ac5=_0x9dc077*_0xb18760,_0x286294=_0x49b7cf*_0xb010e1,_0x352802=_0x9dc077*_0xb010e1,_0x5158f8=_0x3769ac[0x0]*_0x44352b+_0x4d1c31[0x0]*_0x344ac5+_0x29a971[0x0]*_0x286294+_0x3af361[0x0]*_0x352802,_0x368ee2=_0x3769ac[0x1]*_0x44352b+_0x4d1c31[0x1]*_0x344ac5+_0x29a971[0x1]*_0x286294+_0x3af361[0x1]*_0x352802;return this[_0x17e7c2(0x5bf,0x5fa)](_0x5158f8,_0x368ee2);}['_calcUV'](_0x2fe74b,_0x24a202){return[+_0x2fe74b,+_0x24a202,Math['sqrt'](_0x2fe74b*_0x2fe74b+_0x24a202*_0x24a202)];}['getUVByPoint'](_0x349e0a,_0x3e1f9c){if(!this[_0x2c661a(0x383,0x368)](_0x349e0a,_0x3e1f9c))return null;function _0x2c661a(_0x4d3d0c,_0xfcb932){return _0x8b6892(_0xfcb932,_0x4d3d0c-0x5d1);}const _0x3b253d=this['toGridXY'](_0x349e0a,_0x3e1f9c),_0x1ca7e2=this['getUVByXY'](_0x3b253d[0x0],_0x3b253d[0x1]);return _0x1ca7e2;}[_0x8b6892(-0x274,-0x24e)](_0x51097f,_0x13f451){function _0x5225c3(_0x1dfe4e,_0x25b0ae){return _0x1d22c3(_0x1dfe4e-0x6b5,_0x25b0ae);}function _0x3e447c(_0x33e320,_0x544bea){return _0x8b6892(_0x33e320,_0x544bea-0x378);}return _0x51097f>=this[_0x5225c3(0x53e,0x532)]&&_0x51097f<=this['xmax']&&_0x13f451>=this[_0x3e447c(0xfc,0x116)]&&_0x13f451<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x5eaf81=fRandomByfloat(this[_0x352e8d(0x547,0x5b9)],this['xmax']),_0x4fd431=fRandomByfloat(this['ymin'],this[_0x352e8d(0x5c4,0x5ef)]),_0x300cac={};function _0x352e8d(_0x443aac,_0xfd931d){return _0x1d22c3(_0xfd931d-0x730,_0x443aac);}_0x300cac['lat']=_0x4fd431;function _0x13a5f5(_0x3188dd,_0x32b9fd){return _0x8b6892(_0x3188dd,_0x32b9fd-0x1fc);}return _0x300cac[_0x352e8d(0x4db,0x54b)]=_0x5eaf81,_0x300cac;}[_0x1d22c3(-0x176,-0x188)](){function _0x5a9c3f(_0xffed65,_0x236ec6){return _0x8b6892(_0x236ec6,_0xffed65-0x780);}function _0x17cefc(_0x341e5a,_0x3df9cd){return _0x1d22c3(_0x341e5a-0x6f4,_0x3df9cd);}let _0x41e5cd,_0x3c0735,_0x5480b9;for(let _0x114818=0x0,_0x104265=this[_0x5a9c3f(0x559,0x5bc)][_0x17cefc(0x556,0x58e)];_0x114818<_0x104265;_0x114818++){let _0x5182c9=this[_0x17cefc(0x50a,0x4e0)][_0x114818];_0x5182c9[_0x17cefc(0x5b2,0x5fc)]<=0x0&&(_0x5182c9=this[_0x5a9c3f(0x50a,0x4ba)](_0x5182c9));if(_0x5182c9['age']>0x0){const _0x4672df=_0x5182c9[_0x17cefc(0x53a,0x509)],_0x326af3=_0x5182c9['tlat'];_0x5480b9=this[_0x17cefc(0x507,0x53b)](_0x4672df,_0x326af3),_0x5480b9?(_0x41e5cd=_0x4672df+this['_calc_speedRate'][0x0]*_0x5480b9[0x0],_0x3c0735=_0x326af3+this[_0x17cefc(0x528,0x56f)][0x1]*_0x5480b9[0x1],_0x5182c9['lng']=_0x4672df,_0x5182c9['lat']=_0x326af3,_0x5182c9[_0x5a9c3f(0x589,0x5e5)]=_0x41e5cd,_0x5182c9[_0x17cefc(0x503,0x52c)]=_0x3c0735,_0x5182c9[_0x5a9c3f(0x551,0x561)]=_0x5480b9[0x2],_0x5182c9['age']--):_0x5182c9['age']=0x0;}}return this['particles'];}[_0x1d22c3(-0x239,-0x204)](_0xa199d6){function _0x5936b8(_0x1c5f71,_0x2758fb){return _0x8b6892(_0x1c5f71,_0x2758fb-0x47b);}let _0x2f3a9b,_0x5052eb;function _0x4b2eed(_0x37d565,_0x418df7){return _0x1d22c3(_0x418df7-0x6a2,_0x37d565);}for(let _0x3351c4=0x0;_0x3351c4<0x1e;_0x3351c4++){_0x2f3a9b=this[_0x4b2eed(0x402,0x480)](),_0x5052eb=this['getUVByPoint'](_0x2f3a9b[_0x5936b8(0x212,0x259)],_0x2f3a9b['lat']);if(_0x5052eb&&_0x5052eb[0x2]>0x0)break;}if(!_0x5052eb)return _0xa199d6;const _0x5b4e46=_0x2f3a9b[_0x4b2eed(0x4a9,0x4bd)]+this['_calc_speedRate'][0x0]*_0x5052eb[0x0],_0x4c209a=_0x2f3a9b['lat']+this[_0x5936b8(0x2c5,0x272)][0x1]*_0x5052eb[0x1];return _0xa199d6['lng']=_0x2f3a9b['lng'],_0xa199d6[_0x4b2eed(0x4f1,0x4a4)]=_0x2f3a9b['lat'],_0xa199d6['tlng']=_0x5b4e46,_0xa199d6[_0x5936b8(0x1e4,0x24d)]=_0x4c209a,_0xa199d6['age']=Math['round'](0xa+Math[_0x5936b8(0x2bc,0x2c9)]()*this[_0x5936b8(0x2b5,0x29a)]),_0xa199d6['speed']=_0x5052eb[0x2],_0xa199d6;}['destroy'](){for(const _0x10b933 in this){delete this[_0x10b933];}}}function fRandomByfloat(_0x53d0e3,_0x239236){function _0x5385d1(_0x5451a6,_0x52d6bd){return _0x8b6892(_0x52d6bd,_0x5451a6-0x728);}return _0x53d0e3+Math[_0x5385d1(0x576,0x510)]()*(_0x239236-_0x53d0e3);}const Cesium=mars3d__namespace[_0x8b6892(-0x1c8,-0x1ba)],BaseLayer=mars3d__namespace['layer'][_0x8b6892(-0x19c,-0x1da)];class CanvasWindLayer extends BaseLayer{constructor(_0x25995e={}){super(_0x25995e),this['_setOptionsHook'](_0x25995e);function _0x419bc8(_0xa0aa9e,_0x3b948b){return _0x8b6892(_0x3b948b,_0xa0aa9e-0x34a);}this['canvas']=null,_0x25995e[_0x419bc8(0x10e,0x96)]&&_0x25995e['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x25995e));}['_setOptionsHook'](_0x323c66,_0x46ffab){function _0x50b509(_0x30d509,_0x547d19){return _0x8b6892(_0x30d509,_0x547d19-0x50b);}this['frameTime']=0x3e8/(_0x323c66['frameRate']||0xa);function _0x5ec613(_0xdd94ea,_0x342e34){return _0x8b6892(_0x342e34,_0xdd94ea-0x569);}this[_0x5ec613(0x3c0,0x3cd)]=this[_0x5ec613(0x34c,0x369)]['pointerEvents']??![],this['color']=_0x323c66[_0x5ec613(0x338,0x3c3)]||_0x50b509(0x399,0x347),this[_0x50b509(0x2e2,0x35a)]=_0x323c66[_0x5ec613(0x3b8,0x443)]||0x1,this[_0x50b509(0x359,0x376)]=_0x323c66[_0x50b509(0x399,0x376)]??0x0,this[_0x5ec613(0x3c8,0x3fd)]=_0x323c66[_0x50b509(0x313,0x36a)]??![],this[_0x5ec613(0x33d,0x2f7)]&&this[_0x5ec613(0x33d,0x380)][_0x5ec613(0x359,0x349)](_0x323c66);}get[_0x8b6892(-0x2e1,-0x26e)](){return this['canvas'];}get['canvasWidth'](){function _0x703ba6(_0x3b13c9,_0x1d51a6){return _0x8b6892(_0x3b13c9,_0x1d51a6-0x307);}function _0x3422a5(_0x571492,_0x224589){return _0x1d22c3(_0x571492-0x2a0,_0x224589);}return this['_map']['scene'][_0x703ba6(0x150,0x198)][_0x703ba6(0x149,0x14c)];}get[_0x8b6892(-0x213,-0x18e)](){return this['_map']['scene']['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x8b6892(-0x1c2,-0x1e7)](_0x1da197){this['_pointerEvents']=_0x1da197;function _0x3abe0c(_0x5ba433,_0x3221b2){return _0x8b6892(_0x3221b2,_0x5ba433-0x288);}if(!this['canvas'])return;function _0x4b3059(_0x3c2219,_0x39f4ff){return _0x8b6892(_0x3c2219,_0x39f4ff-0x1b4);}_0x1da197?this['canvas'][_0x3abe0c(0x117,0xb4)][_0x4b3059(-0x58,-0x94)]='all':this['canvas']['style']['pointer-events']='none';}get['particlesNumber'](){return this['options']['particlesNumber'];}set[_0x1d22c3(-0x14d,-0x184)](_0x53aca3){function _0xd555c9(_0x3c7132,_0x3bceb2){return _0x1d22c3(_0x3c7132- -0x3f,_0x3bceb2);}this['options'][_0xd555c9(-0x18c,-0x1a6)]=_0x53aca3;function _0x5d270f(_0x4fc38f,_0x43128e){return _0x1d22c3(_0x43128e-0x3ab,_0x4fc38f);}clearTimeout(this[_0x5d270f(0x1da,0x1f3)]),this[_0x5d270f(0x179,0x1f3)]=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){return this['options']['speedRate'];}set[_0x8b6892(-0x201,-0x1c7)](_0xf6d800){function _0x45d367(_0x3781b2,_0x2d2157){return _0x8b6892(_0x2d2157,_0x3781b2-0x626);}function _0x55e9c3(_0x2303a8,_0x461f6d){return _0x1d22c3(_0x461f6d-0x94,_0x2303a8);}this['options'][_0x45d367(0x45f,0x4c4)]=_0xf6d800,this[_0x45d367(0x3fa,0x37e)]&&(this[_0x45d367(0x3fa,0x40f)][_0x45d367(0x45f,0x40b)]=_0xf6d800);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x230714){this['options']['maxAge']=_0x230714,this['windField']&&(this['windField']['maxAge']=_0x230714);}get[_0x8b6892(-0x168,-0x18f)](){function _0x1c23da(_0x314550,_0x3e5017){return _0x8b6892(_0x314550,_0x3e5017-0x1e5);}return this[_0x1c23da(-0x38,0x1a)];}set[_0x1d22c3(-0x152,-0xd6)](_0x5bfa1b){function _0x363388(_0x26a623,_0x4ee221){return _0x1d22c3(_0x4ee221-0x6e9,_0x26a623);}this[_0x363388(0x56c,0x58d)](_0x5bfa1b);}get['rectangle'](){let _0x49a7e0=this[_0x352a91(0x45e,0x44e)]['xmin'];function _0x34c1d4(_0x17784e,_0x42b1ec){return _0x1d22c3(_0x17784e-0x543,_0x42b1ec);}let _0x2a28e2=this['windData']['xmax'],_0x25b091=this['windData']['ymin'],_0x5db8c7=this['windData']['ymax'];_0x2a28e2>=0x167&&_0x49a7e0===0x0&&(_0x49a7e0=-0xb4,_0x2a28e2=0xb4);_0x49a7e0=Math['max'](_0x49a7e0,-0xb4),_0x2a28e2=Math['min'](_0x2a28e2,0xb4),_0x25b091=Math[_0x352a91(0x41e,0x414)](_0x25b091,-0x5a),_0x5db8c7=Math['min'](_0x5db8c7,0x5a);function _0x352a91(_0x6a2c01,_0x272d7c){return _0x1d22c3(_0x272d7c-0x5dc,_0x6a2c01);}return Cesium['Rectangle']['fromDegrees'](_0x49a7e0,_0x25b091,_0x2a28e2,_0x5db8c7);}[_0x8b6892(-0x242,-0x1c0)](_0x5ca884){function _0x498984(_0x328620,_0x590343){return _0x1d22c3(_0x328620-0x45c,_0x590343);}_0x5ca884?this['_addedHook']():(this['windData']&&(this['options']['data']=this['windData']),this[_0x498984(0x280,0x203)]());}['_mountedHook'](){function _0x3d4f3c(_0x20c8be,_0x14d10e){return _0x1d22c3(_0x14d10e-0x1d2,_0x20c8be);}function _0x29d00d(_0x1b520e,_0x181fca){return _0x1d22c3(_0x181fca- -0x2b,_0x1b520e);}this[_0x29d00d(-0x1ec,-0x20b)]['worker']?this['initWorker']():this[_0x29d00d(-0x1e1,-0x21a)]=new CanvasWindField(this['options']);}[_0x8b6892(-0x2dd,-0x253)](){this['canvas']=this['_createCanvas']();const _0x48e761={};_0x48e761['willReadFrequently']=!![];function _0xf30d7c(_0x3a5ee0,_0x2d33e3){return _0x8b6892(_0x2d33e3,_0x3a5ee0-0x521);}this['canvasContext']=this[_0x13cda3(0x335,0x3b6)]['getContext']('2d',_0x48e761),this['bindEvent']();function _0x13cda3(_0x2d98b9,_0x1bdf0a){return _0x8b6892(_0x1bdf0a,_0x2d98b9-0x4a4);}this['options'][_0x13cda3(0x315,0x299)]&&this['setData'](this[_0x13cda3(0x287,0x24f)]['data']);}['_removedHook'](){this['clear']();function _0x414752(_0x526864,_0x39fd6a){return _0x1d22c3(_0x526864-0x60,_0x39fd6a);}this['unbindEvent'](),this['canvas']&&(this['_map']['container']['removeChild'](this['canvas']),delete this[_0x414752(-0xd2,-0xbd)]);}['_createCanvas'](){const _0x275f53=mars3d__namespace['DomUtil'][_0x39df67(-0x1c2,-0x235)]('canvas',_0x4dde81(0x120,0x11d),this[_0x4dde81(0x142,0x13f)]['container']);_0x275f53[_0x4dde81(0x1c4,0x1a1)]['position']=_0x4dde81(0x167,0x143),_0x275f53['style'][_0x39df67(-0x15e,-0x1c2)]=_0x39df67(-0x189,-0x186),_0x275f53[_0x4dde81(0x1c4,0x198)][_0x4dde81(0xf2,0x13a)]='0px',_0x275f53['style']['width']=this['_map']['scene'][_0x39df67(-0x1bf,-0x14b)]['clientWidth']+'px',_0x275f53[_0x39df67(-0xd1,-0x14d)]['height']=this[_0x4dde81(0x142,0x113)][_0x39df67(-0x1ea,-0x1b5)]['canvas'][_0x4dde81(0xdf,0x91)]+'px';function _0x39df67(_0x36c1c8,_0x47d3c9){return _0x8b6892(_0x36c1c8,_0x47d3c9-0x24);}_0x275f53['style']['pointerEvents']=this[_0x4dde81(0x18c,0x14b)]?'auto':_0x4dde81(0x1c3,0x17e);function _0x4dde81(_0x4d49ae,_0x51dba5){return _0x1d22c3(_0x4d49ae-0x2f8,_0x51dba5);}return _0x275f53['style']['zIndex']=this['options']['zIndex']??0x9,_0x275f53['width']=this['_map']['scene']['canvas'][_0x39df67(-0x1c0,-0x197)],_0x275f53['height']=this['_map'][_0x4dde81(0x15c,0xd7)]['canvas'][_0x4dde81(0xdf,0x6b)],_0x275f53;}['resize'](){function _0x1803f8(_0x12971f,_0x4b7a4f){return _0x1d22c3(_0x12971f-0x6aa,_0x4b7a4f);}function _0x3c23c9(_0x1c0372,_0xfca557){return _0x1d22c3(_0x1c0372-0x3b9,_0xfca557);}this[_0x1803f8(0x578,0x5f5)]&&(this['canvas']['style'][_0x1803f8(0x573,0x534)]=this['_map']['scene']['canvas'][_0x1803f8(0x52c,0x584)]+'px',this[_0x1803f8(0x578,0x5dd)]['style']['height']=this[_0x3c23c9(0x203,0x239)]['scene']['canvas']['clientHeight']+'px',this[_0x3c23c9(0x287,0x29e)][_0x3c23c9(0x282,0x1f7)]=this[_0x1803f8(0x4f4,0x521)][_0x3c23c9(0x21d,0x1cd)][_0x1803f8(0x578,0x57b)][_0x1803f8(0x52c,0x5b7)],this['canvas'][_0x1803f8(0x4cf,0x4f6)]=this[_0x3c23c9(0x203,0x1a8)]['scene']['canvas']['clientHeight']);}['bindEvent'](){const _0x2b3dc5=this;let _0xd5212c=Date['now']();(function _0x2c3802(){if(_0x2b3dc5[_0x138aea(0x30f,0x349)])return;function _0x138aea(_0x3f1d5c,_0x47f247){return _0x457f(_0x3f1d5c-0x108,_0x47f247);}_0x2b3dc5[_0x138aea(0x2dd,0x329)]=window[_0x564d8f(-0x192,-0x190)](_0x2c3802);function _0x564d8f(_0x17b126,_0x5e4655){return _0x457f(_0x17b126- -0x2d7,_0x5e4655);}if(_0x2b3dc5['show']&&_0x2b3dc5[_0x564d8f(-0x14c,-0x15a)]){const _0x399f5a=Date[_0x564d8f(-0x12f,-0x1b2)](),_0x4138a6=_0x399f5a-_0xd5212c;_0x4138a6>_0x2b3dc5['frameTime']&&(_0xd5212c=_0x399f5a-_0x4138a6%_0x2b3dc5['frameTime'],_0x2b3dc5[_0x564d8f(-0x123,-0xfb)]());}}(),window[_0xd46ff2(0x46a,0x4ca)](_0xd46ff2(0x463,0x443),this[_0x288442(0x36d,0x33e)]['bind'](this),![]),this['mouse_down']=![]);function _0x288442(_0x2cad,_0x27c3c9){return _0x8b6892(_0x27c3c9,_0x2cad-0x5ed);}this['mouse_move']=![];function _0xd46ff2(_0x1667dd,_0x1b10ec){return _0x1d22c3(_0x1b10ec-0x686,_0x1667dd);}this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0xd46ff2(0x583,0x531)],this),this[_0x288442(0x3fa,0x3e5)]['on'](mars3d__namespace['EventType']['mouseUp'],this[_0xd46ff2(0x4c9,0x4f0)],this));}[_0x1d22c3(-0x210,-0x1bc)](){window[_0x13b003(0x135,0xf7)](this[_0x13b003(0x166,0x135)]);function _0x13b003(_0x3e629f,_0x49a0d1){return _0x8b6892(_0x49a0d1,_0x3e629f-0x348);}delete this['_animateFrame'];function _0x13d3a0(_0x5210d6,_0x3b703f){return _0x1d22c3(_0x5210d6-0x51a,_0x3b703f);}window['removeEventListener']('resize',this[_0x13b003(0xc8,0x40)]),this['options'][_0x13d3a0(0x3a0,0x36b)]&&(this['_map']['off'](mars3d__namespace[_0x13b003(0x13b,0xca)]['wheel'],this['_onMapWhellEvent'],this),this[_0x13b003(0x155,0x1d8)]['off'](mars3d__namespace[_0x13b003(0x13b,0xf0)]['mouseDown'],this[_0x13d3a0(0x3c5,0x3e7)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x13d3a0(0x30b,0x28f)],this['_onMouseUpEvent'],this),this[_0x13b003(0x155,0x16b)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x1d22c3(-0x213,-0x26c)](_0xc47389){function _0x478e33(_0x39777a,_0x54fb45){return _0x8b6892(_0x39777a,_0x54fb45-0x6f2);}clearTimeout(this['refreshTimer']);if(!this[_0x3a9b48(0x140,0x166)]||!this[_0x478e33(0x606,0x583)])return;this['canvas']['style']['visibility']='hidden';function _0x3a9b48(_0x4f6ed8,_0x2ef24c){return _0x8b6892(_0x4f6ed8,_0x2ef24c-0x3d1);}this[_0x3a9b48(0x250,0x266)]=setTimeout(()=>{if(!this['show'])return;function _0x1ad780(_0x295a08,_0x470278){return _0x3a9b48(_0x295a08,_0x470278- -0x3af);}function _0x2fb71b(_0x4b68e6,_0x53563b){return _0x3a9b48(_0x53563b,_0x4b68e6-0x339);}this[_0x2fb71b(0x4ff,0x520)](),this[_0x1ad780(-0x159,-0x14d)]['style']['visibility']='visible';},0xc8);}[_0x8b6892(-0x197,-0x192)](_0x34ca65){this['mouse_down']=!![],this[_0x354b12(0xc7,0x73)]['off'](mars3d__namespace[_0x354b12(0xad,0x101)]['mouseMove'],this['_onMouseMoveEvent'],this);function _0x354b12(_0x45c7f1,_0x259846){return _0x1d22c3(_0x45c7f1-0x27d,_0x259846);}function _0x246316(_0x5feb55,_0x314339){return _0x1d22c3(_0x5feb55-0x608,_0x314339);}this[_0x354b12(0xc7,0xe9)]['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x4afdfc){function _0x3758a9(_0xa696e7,_0x434e28){return _0x1d22c3(_0x434e28-0x348,_0xa696e7);}function _0x2b44d2(_0x49b59a,_0x43dcd5){return _0x8b6892(_0x43dcd5,_0x49b59a-0x1bd);}if(!this['show']||!this[_0x3758a9(0x25b,0x216)])return;this['mouse_down']&&(this['canvas'][_0x2b44d2(0x4c,0x58)][_0x2b44d2(-0x5e,-0xa5)]=_0x3758a9(0x18b,0x1ff),this['mouse_move']=!![]);}[_0x1d22c3(-0x196,-0x198)](_0x2a200f){if(!this['show']||!this[_0x5ed684(0x397,0x424)])return;function _0x5ed684(_0x3dcf85,_0x314106){return _0x8b6892(_0x314106,_0x3dcf85-0x506);}this[_0x298891(0x493,0x48e)]['off'](mars3d__namespace['EventType'][_0x5ed684(0x348,0x3b9)],this[_0x5ed684(0x340,0x2f4)],this);function _0x298891(_0x1eecd7,_0x1f1986){return _0x8b6892(_0x1f1986,_0x1eecd7-0x686);}this[_0x5ed684(0x2bf,0x31c)]&&this['mouse_move']&&this['redraw'](),this['canvas'][_0x5ed684(0x395,0x3da)][_0x5ed684(0x2eb,0x340)]=_0x5ed684(0x329,0x379),this[_0x298891(0x43f,0x45e)]=![],this[_0x298891(0x51f,0x51d)]=![];}[_0x1d22c3(-0x15c,-0xea)](_0x55b6a3){function _0x57b091(_0x3aebaf,_0x3aab9c){return _0x1d22c3(_0x3aab9c-0x541,_0x3aebaf);}this[_0x57b091(0x3c5,0x40e)](),this['windData']=_0x55b6a3,this[_0x57b091(0x2fe,0x352)][_0x57b091(0x478,0x406)](_0x55b6a3);function _0x451028(_0x4fb587,_0xebec67){return _0x8b6892(_0xebec67,_0x4fb587-0x3d);}this['redraw']();}['redraw'](){if(!this['show'])return;function _0x2d2dc4(_0x4d131f,_0x35792b){return _0x1d22c3(_0x35792b-0x474,_0x4d131f);}this['windField'][_0x2393ce(-0x26,-0x5c)](this['options']);function _0x2393ce(_0x291101,_0x5080a0){return _0x8b6892(_0x5080a0,_0x291101-0x1ea);}this[_0x2393ce(-0x19,-0x1c)]();}['update'](){if(this['_updateIng'])return;function _0x13606a(_0x1a0b02,_0xac31c5){return _0x1d22c3(_0x1a0b02-0x597,_0xac31c5);}function _0x29dcd0(_0xf56620,_0x1a7ac5){return _0x1d22c3(_0xf56620-0x740,_0x1a7ac5);}this['_updateIng']=!![];if(this['worker'])this['windField']['update']();else{const _0x464449=this['windField']['getParticles']();this[_0x13606a(0x454,0x4df)](_0x464449);}this[_0x29dcd0(0x5c0,0x5a0)]=![];}[_0x1d22c3(-0x143,-0x171)](_0x3f3d5f){this['_canvasParticles']=_0x3f3d5f,this['canvasContext'][_0x28f86f(0x353,0x3df)]=_0x28f86f(0x3fa,0x3cb),this[_0x28f86f(0x3b0,0x3f5)][_0x28f86f(0x439,0x480)](0x0,0x0,this['canvasWidth'],this['canvasHeight']);function _0x1766e2(_0x39b49b,_0x5d5ed3){return _0x8b6892(_0x39b49b,_0x5d5ed3-0x776);}this[_0x28f86f(0x3b0,0x37d)]['globalCompositeOperation']=_0x28f86f(0x386,0x392),this['canvasContext']['globalAlpha']=0.9;function _0x28f86f(_0x5dbe8d,_0x59d8f7){return _0x1d22c3(_0x5dbe8d-0x58f,_0x59d8f7);}const _0x17e177=this[_0x1766e2(0x588,0x583)]['scene']['mode']!==Cesium['SceneMode']['SCENE3D'],_0x2b0404=this[_0x28f86f(0x425,0x430)]*0.25;if(this['_colorRamp'])for(let _0x168a11=0x0,_0x3d8193=_0x3f3d5f['length'];_0x168a11<_0x3d8193;_0x168a11++){const _0x58150f=_0x3f3d5f[_0x168a11],_0xac3092=this[_0x28f86f(0x34e,0x3a8)](_0x58150f,_0x58150f[_0x1766e2(0x5b2,0x554)],_0x58150f[_0x28f86f(0x391,0x3e0)],_0x58150f[_0x28f86f(0x37a,0x392)]),_0xef3f61=this['_tomap'](_0x58150f,_0x58150f['tlng'],_0x58150f['tlat'],_0x58150f['talt']);if(!_0xac3092||!_0xef3f61)continue;if(_0x17e177&&Math['abs'](_0xac3092[0x0]-_0xef3f61[0x0])>=_0x2b0404)continue;this[_0x1766e2(0x5a4,0x55a)][_0x1766e2(0x5cf,0x5fc)](),this[_0x28f86f(0x3b0,0x341)]['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x1766e2(0x543,0x5c9)]['getColor'](_0x58150f['speed']),this['canvasContext']['moveTo'](_0xac3092[0x0],_0xac3092[0x1]),this['canvasContext']['lineTo'](_0xef3f61[0x0],_0xef3f61[0x1]),this[_0x1766e2(0x59f,0x55a)]['stroke']();}else{this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x1766e2(0x5d4,0x55a)][_0x1766e2(0x618,0x60a)]=this[_0x1766e2(0x5d0,0x545)];for(let _0x1d5aa0=0x0,_0x46b03a=_0x3f3d5f['length'];_0x1d5aa0<_0x46b03a;_0x1d5aa0++){const _0x299e59=_0x3f3d5f[_0x1d5aa0],_0x548e01=this['_tomap'](_0x299e59,_0x299e59['lng'],_0x299e59['lat'],_0x299e59['alt']),_0x5d8ff2=this[_0x1766e2(0x4ae,0x4f8)](_0x299e59,_0x299e59['tlng'],_0x299e59['tlat'],_0x299e59[_0x1766e2(0x646,0x5ee)]);if(!_0x548e01||!_0x5d8ff2)continue;if(_0x17e177&&Math['abs'](_0x548e01[0x0]-_0x5d8ff2[0x0])>=_0x2b0404)continue;this[_0x28f86f(0x3b0,0x42f)][_0x28f86f(0x366,0x324)](_0x548e01[0x0],_0x548e01[0x1]),this['canvasContext']['lineTo'](_0x5d8ff2[0x0],_0x5d8ff2[0x1]);}this[_0x28f86f(0x3b0,0x3e8)]['stroke']();}}['_tomap'](_0x19d219,_0x43af5a,_0x34f1fb,_0x17a391){const _0x2857f6=Cesium['Cartesian3'][_0x50bea0(0xb2,0x136)](_0x43af5a,_0x34f1fb,_0x17a391??this['fixedHeight']),_0x12e6b5=this[_0x50bea0(0x88,0x4c)]['scene'];if(_0x12e6b5['mode']===Cesium['SceneMode']['SCENE3D']){const _0x174bbc=new Cesium[(_0x50bea0(0xdf,0xcd))](_0x12e6b5['globe'][_0x57bb1f(0x3f0,0x3d1)],_0x12e6b5['camera']['positionWC']),_0x3b3998=_0x174bbc['isPointVisible'](_0x2857f6);if(!_0x3b3998)return _0x19d219['age']=0x0,null;}const _0x54f2a7=mars3d__namespace[_0x50bea0(0x81,-0x4)]['toWindowCoordinates'](this[_0x50bea0(0x88,-0x2)]['scene'],_0x2857f6);function _0x50bea0(_0x3a8faf,_0x257e62){return _0x8b6892(_0x257e62,_0x3a8faf-0x27b);}function _0x57bb1f(_0x263505,_0x2dec90){return _0x1d22c3(_0x263505-0x5fc,_0x2dec90);}return _0x54f2a7?[_0x54f2a7['x'],_0x54f2a7['y']]:null;}['clear'](){this['windField']['clear'](),delete this['windData'];}[_0x8b6892(-0x25b,-0x27c)](){this[_0x279293(0x2ba,0x2ac)]=new Worker(this['options']['worker']),this['worker']['onmessage']=_0x319665=>{function _0x5e8ebe(_0x85b176,_0x3a00fb){return _0x279293(_0x85b176-0x1b2,_0x3a00fb);}function _0x17698d(_0x2eddee,_0x373f27){return _0x279293(_0x373f27- -0x44d,_0x2eddee);}this['_drawLines'](_0x319665[_0x17698d(-0xe6,-0x134)]['particles']),this[_0x17698d(-0x1e2,-0x171)]=![];};function _0x279293(_0x1c352c,_0x339742){return _0x1d22c3(_0x1c352c-0x46b,_0x339742);}this[_0x24bad6(0x115,0x161)]={'init':_0x360e20=>{const _0x5d4014={};_0x5d4014['type']='init';function _0x464bca(_0xfb6013,_0x509ef2){return _0x24bad6(_0xfb6013,_0x509ef2-0x324);}_0x5d4014['options']=_0x360e20,this[_0x464bca(0x4e7,0x4c3)]['postMessage'](_0x5d4014);},'setOptions':_0x23f758=>{function _0x42c437(_0x19190e,_0x406c92){return _0x24bad6(_0x19190e,_0x406c92-0x5d);}const _0x5a2a66={};_0x5a2a66['type']='setOptions',_0x5a2a66[_0x42c437(0x226,0x1cd)]=_0x23f758;function _0x161721(_0x5d5770,_0x5bd54f){return _0x24bad6(_0x5d5770,_0x5bd54f-0xd1);}this[_0x42c437(0x1fc,0x1fc)]['postMessage'](_0x5a2a66);},'setDate':_0xfa401b=>{const _0x4391c5={};function _0x6f19b9(_0x55db63,_0x2d8c78){return _0x279293(_0x2d8c78- -0x445,_0x55db63);}_0x4391c5['type']=_0x6f19b9(-0xec,-0x115);function _0x23092b(_0x33187e,_0x1933ea){return _0x279293(_0x33187e- -0xeb,_0x1933ea);}_0x4391c5[_0x23092b(0x22e,0x29e)]=_0xfa401b,this['worker']['postMessage'](_0x4391c5);},'update':()=>{if(this['_updateIng2'])return;function _0x4a10d2(_0x2cd2ef,_0x20374d){return _0x24bad6(_0x20374d,_0x2cd2ef-0x3ad);}this['_updateIng2']=!![];function _0x50b89f(_0x509a4d,_0x435262){return _0x24bad6(_0x435262,_0x509a4d- -0x33e);}const _0x230aae={};_0x230aae['type']=_0x4a10d2(0x537,0x4d1),this[_0x4a10d2(0x54c,0x535)][_0x4a10d2(0x5c4,0x545)](_0x230aae);},'clear':()=>{function _0x10bb91(_0x3d4f9c,_0x4ef9cf){return _0x24bad6(_0x3d4f9c,_0x4ef9cf-0x241);}const _0x2963de={};_0x2963de[_0x293074(0x56e,0x57c)]=_0x293074(0x5a2,0x5a4);function _0x293074(_0x40bb6f,_0xdf3f79){return _0x24bad6(_0x40bb6f,_0xdf3f79-0x387);}this[_0x10bb91(0x3dd,0x3e0)][_0x10bb91(0x460,0x458)](_0x2963de);}};function _0x24bad6(_0x3b5b42,_0x5e33ad){return _0x1d22c3(_0x5e33ad-0x350,_0x3b5b42);}this['windField']['init'](this[_0x279293(0x28b,0x292)]);}}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace[_0x8b6892(-0x2ae,-0x26e)][_0x8b6892(-0x226,-0x1a2)]=CanvasWindLayer,mars3d__namespace[_0x8b6892(-0x1b4,-0x204)]=CanvasWindField,mars3d__namespace[_0x1d22c3(-0x1bf,-0x164)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0xf58e62={};_0xf58e62[_0x8b6892(-0x144,-0x194)]=!![],Object[_0x8b6892(-0x209,-0x1ab)](exports,'__esModule',_0xf58e62);
|
|
14
|
+
'use strict';(function(_0x183aa0,_0x203d6c){function _0x41c2b7(_0x251e6f,_0x3e13b6){return _0x4ca7(_0x3e13b6-0x33a,_0x251e6f);}function _0x27f23b(_0x11df44,_0x500303){return _0x4ca7(_0x500303-0x3e4,_0x11df44);}const _0x219c09=_0x183aa0();while(!![]){try{const _0x20d667=parseInt(_0x27f23b(0x680,0x616))/0x1*(parseInt(_0x41c2b7(0x5cc,0x559))/0x2)+parseInt(_0x27f23b(0x6a7,0x635))/0x3*(-parseInt(_0x27f23b(0x68d,0x67f))/0x4)+parseInt(_0x27f23b(0x62f,0x631))/0x5+parseInt(_0x27f23b(0x596,0x607))/0x6*(-parseInt(_0x41c2b7(0x55b,0x54c))/0x7)+parseInt(_0x27f23b(0x60e,0x5e7))/0x8+-parseInt(_0x27f23b(0x672,0x620))/0x9*(parseInt(_0x41c2b7(0x504,0x542))/0xa)+parseInt(_0x41c2b7(0x5dd,0x577))/0xb;if(_0x20d667===_0x203d6c)break;else _0x219c09['push'](_0x219c09['shift']());}catch(_0x372835){_0x219c09['push'](_0x219c09['shift']());}}}(_0x2e44,0x23bfd));function _0x4ca7(_0x3e7118,_0x25ef31){const _0x2e44ea=_0x2e44();return _0x4ca7=function(_0x4ca72e,_0x3109e5){_0x4ca72e=_0x4ca72e-0x1eb;let _0x1e975c=_0x2e44ea[_0x4ca72e];return _0x1e975c;},_0x4ca7(_0x3e7118,_0x25ef31);}function _interopNamespace(_0x3d7db0){if(_0x3d7db0&&_0x3d7db0[_0x360ac1(0x8e,0x100)])return _0x3d7db0;var _0x2d09e9=Object['create'](null);_0x3d7db0&&Object['keys'](_0x3d7db0)[_0x360ac1(0xdf,0xf4)](function(_0x4700f1){if(_0x4700f1!=='default'){var _0x5e3beb=Object['getOwnPropertyDescriptor'](_0x3d7db0,_0x4700f1);Object['defineProperty'](_0x2d09e9,_0x4700f1,_0x5e3beb['get']?_0x5e3beb:{'enumerable':!![],'get':function(){return _0x3d7db0[_0x4700f1];}});}});function _0x16eacf(_0x4ca44f,_0x1ed4f3){return _0x4ca7(_0x4ca44f- -0x65,_0x1ed4f3);}function _0x360ac1(_0x18379a,_0x140255){return _0x4ca7(_0x18379a- -0x196,_0x140255);}return _0x2d09e9['default']=_0x3d7db0,_0x2d09e9;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0xdf1275,_0x47f157){function _0x359830(_0x26fe25,_0x16f4ed){return _0x4ca7(_0x26fe25-0xa3,_0x16f4ed);}function _0x5da213(_0x38d759,_0x59ee2d){return _0x4ca7(_0x38d759-0x5,_0x59ee2d);}const _0x2e701b=_0xdf1275*Math['cos'](Cesium$2[_0x359830(0x357,0x2d2)][_0x5da213(0x22e,0x245)](_0x47f157));return _0x2e701b;}function getV(_0x493f78,_0x34164c){function _0x2e21de(_0x3c079a,_0x1f1606){return _0x4ca7(_0x3c079a-0x2aa,_0x1f1606);}const _0x1cd20b=_0x493f78*Math[_0x2e21de(0x517,0x51f)](Cesium$2['Math']['toRadians'](_0x34164c));return _0x1cd20b;}function _0x2e44(){const _0x4d4f02=['toGridXY','Cartesian2','initFrameRate','samplingWindow','pickEllipsoid','pow','speedFactor','_setOptionsHook','round','refreshTimer','mouse_down','worker','initWorker','textures','frameTime','commandType','Math','viewerParameters','SCENE3D','postMessage','_onMouseUpEvent','LINEAR','CLAMP_TO_EDGE','createRenderingTextures','rows','dropRate','fixedHeight','particles','ymax','geometry','add','colorTable','pixelDatatype','dynamic','width','pointer-events','ymin','mouseHidden','morphComplete','postProcessingPosition','calculateSpeed','renderState','resize','BaseLayer','outputTexture','IDENTITY','primitives','particlesTextureSize','getDefaultRenderState','OPAQUE','_canrefresh','speed','uniformMap','colors','hidden','particlesSpeed','push','canvas','modelMatrix','autoClear','_onMouseDownEvent','framebuffer','frameRate','getRandomLatLng','sqrt','setDate','particleSystem','strokeStyle','_drawLines','segmentsDepth','bufferUsage','vertexArray','getCalculateSpeedShader','layer','bind','vmax','color','Compute','NEAREST','_animateFrame','keys','container','removeChild','wheel','auto','moveTo','height','_onMouseMoveEvent','_speedRate','getU','particlesTextures','createColorTableTexture','west','fillRect','umin','tlat','visibility','left','warn','addEventListener','cols','camera','alpha','changeOptions','canvasContext','bounds','getDirection','data','_showHook','now','prototype','_calcUV','mouseDown','minificationFilter','floor','magnificationFilter','_map','#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','_updateIng','lat','_updateIng2','getParticles','EventType','type','primitiveType','1127680YdDden','WindLayer','processWindData','vertexShaderSource','isInExtent','10erjUiL','owner','destroy','length','attributeLocations','frameState.commandList\x20is\x20undefined','wrapS','createSegmentsGeometry','updatePosition','getUVByPoint','3899gAhvtF','off','createWindTextures','flipY','lonRange','east','clearCommand','_randomParticle','UNSIGNED_BYTE','north','getUpdatePositionShader','createComputingPrimitives','wrapT','5764VRVgaN','RED','rendering','lineTo','726ASXXHm','__esModule','lng','stringify','mouseMove','frameRateAdjustment','toRadians','sources','_tomap','requestRender','domain','scene','flatMap','depthMask','WindUtil','91zZrAXm','SceneMode','register','mouse_move','onParticlesTextureSizeChange','fragmentShaderSource','pointerEvents','particlesNumber','clientHeight','clear','339561dnXmiT','507133ITNCIU','enabled','onmessage','clearFramebuffers','componentsPerAttribute','_calc_speedRate','absolute','changed','previousParticlesPosition','xmin','tlng','value','_bilinearInterpolation','windData','computing','normal','413500ekKSbD','depthTexture','udata','values','280470kYoCir','canvasWidth','alt','array','_canvasParticles','abs','FLOAT','segments','random','toWindowCoordinates','reverse','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','destroyParticlesTextures','speedRate','setOptions','shaderProgram','getUVByXY','pixelSize','useViewerBounds','talt','updateOptions','requestAnimationFrame','isDestroyed','style','applyViewerParameters','dropRateBump','south','_removedHook','sin','init','grid','number','redraw','_colorRamp','lineWidth','isArray','forEach','fromGeometry','show','fill','call','update','currentParticlesPosition','commandToExecute','viewport','getPrimitives','removeEventListener','cartesianToCartographic','clientWidth','age','TRIANGLES','nextParticlesPosition','updateWindData','Cesium','#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','onColorTableChange','min','_pointerEvents','createRawRenderState','xmax','lighter','pass','displayRange','framebuffers','none','getSegmentDrawFragmentShader','context','setData','windField','mode','frameRateMonitor','atan2','Draw','updateViewerParameters','12GhPmpI','max','stroke','zIndex','drawingBufferHeight','options','isDynamic','globe','maxAge'];_0x2e44=function(){return _0x4d4f02;};return _0x2e44();}function getSpeed(_0x505396,_0x204c0b){const _0x57f058=Math['sqrt'](Math['pow'](_0x505396,0x2)+Math[_0x268ef4(0x1e3,0x166)](_0x204c0b,0x2));function _0x268ef4(_0x48df33,_0x7a37c2){return _0x4ca7(_0x48df33- -0xc6,_0x7a37c2);}return _0x57f058;}function getDirection(_0x217a4c,_0x35db91){function _0x311ab5(_0x5090f4,_0x32d26b){return _0x4ca7(_0x5090f4-0x1ac,_0x32d26b);}let _0x3e8d81=Cesium$2['Math']['toDegrees'](Math[_0x311ab5(0x444,0x4bb)](_0x35db91,_0x217a4c));return _0x3e8d81+=_0x3e8d81<0x0?0x168:0x0,_0x3e8d81;}const _0xd989bb={};_0xd989bb['__proto__']=null,_0xd989bb[_0x5c5aa9(0xc5,0x5c)]=getU,_0xd989bb['getV']=getV,_0xd989bb['getSpeed']=getSpeed,_0xd989bb[_0x5c5aa9(-0x48,-0x28)]=getDirection;var WindUtil=_0xd989bb,updatePositionShader=_0x22e09d(0x1af,0x177),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='#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',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=_0x5c5aa9(-0x3d,-0x34);const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x4c45b4={};return _0x4c45b4['sources']=[calculateSpeedShader],new ShaderSource$1(_0x4c45b4);}static[_0x22e09d(0x144,0xd7)](){const _0x21c9e1={};return _0x21c9e1['sources']=[updatePositionShader],new ShaderSource$1(_0x21c9e1);}static['getSegmentDrawVertexShader'](){const _0x255d39={};return _0x255d39['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x255d39);}static['getSegmentDrawFragmentShader'](){const _0x53dfa5={};_0x53dfa5[_0x93a4f(0x42d,0x3ac)]=[renderParticlesFragmentShader];function _0x93a4f(_0x4d6ec4,_0x133fe3){return _0x22e09d(_0x133fe3-0x25a,_0x4d6ec4);}return new ShaderSource$1(_0x53dfa5);}static['getPostProcessingPositionShader'](){const _0x46c9c8={};function _0x4adb97(_0x4539da,_0x763dff){return _0x5c5aa9(_0x763dff-0x121,_0x4539da);}return _0x46c9c8[_0x4adb97(0xb4,0x113)]=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x46c9c8);}}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[_0x22e09d(0x1ae,0x221)];class CustomPrimitive{constructor(_0x32c8f7){this['commandType']=_0x32c8f7['commandType'],this['geometry']=_0x32c8f7[_0x2cc48b(0x4b8,0x430)],this[_0x2cc48b(0x403,0x40b)]=_0x32c8f7['attributeLocations'],this['primitiveType']=_0x32c8f7['primitiveType'];function _0x300d40(_0x4bb43f,_0x29b3fa){return _0x22e09d(_0x4bb43f-0x29c,_0x29b3fa);}this[_0x300d40(0x49c,0x423)]=_0x32c8f7[_0x2cc48b(0x4cf,0x544)]||{},this['vertexShaderSource']=_0x32c8f7[_0x300d40(0x3ca,0x44f)],this[_0x2cc48b(0x42e,0x435)]=_0x32c8f7[_0x2cc48b(0x42e,0x483)];function _0x2cc48b(_0x4ac488,_0x24d30f){return _0x5c5aa9(_0x4ac488-0x42f,_0x24d30f);}this['rawRenderState']=_0x32c8f7['rawRenderState'],this['framebuffer']=_0x32c8f7['framebuffer'],this['outputTexture']=_0x32c8f7[_0x300d40(0x494,0x499)],this['autoClear']=defaultValue(_0x32c8f7[_0x300d40(0x4a3,0x452)],![]),this['preExecute']=_0x32c8f7['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x32c8f7[_0x300d40(0x465,0x411)]??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x2cc48b(0x4d8,0x4f7)],'pass':Pass$1[_0x2cc48b(0x4cc,0x478)]}));}['createCommand'](_0x30352b){function _0x1ccc17(_0x57473d,_0x376ad7){return _0x22e09d(_0x376ad7-0x38,_0x57473d);}function _0x158e01(_0x1a0c30,_0x36f93a){return _0x22e09d(_0x36f93a-0x1b4,_0x1a0c30);}if(this[_0x158e01(0x349,0x38f)]==='Draw'){const _0x557a77={};_0x557a77['context']=_0x30352b,_0x557a77['geometry']=this['geometry'],_0x557a77['attributeLocations']=this['attributeLocations'],_0x557a77['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x1b4b57=VertexArray$1[_0x158e01(0x2db,0x352)](_0x557a77),_0x169ab0={};_0x169ab0['context']=_0x30352b,_0x169ab0['vertexShaderSource']=this['vertexShaderSource'],_0x169ab0['fragmentShaderSource']=this['fragmentShaderSource'],_0x169ab0[_0x158e01(0x33b,0x2e8)]=this['attributeLocations'];const _0x5e15b0=ShaderProgram['fromCache'](_0x169ab0),_0x4330a0=RenderState['fromCache'](this['rawRenderState']),_0x141c64={};return _0x141c64[_0x1ccc17(0x10d,0x169)]=this,_0x141c64[_0x1ccc17(0x25d,0x24b)]=_0x1b4b57,_0x141c64[_0x1ccc17(0x113,0x162)]=this[_0x1ccc17(0x190,0x162)],_0x141c64[_0x1ccc17(0x245,0x23e)]=Matrix4[_0x158e01(0x3c2,0x3ad)],_0x141c64[_0x1ccc17(0x2b3,0x22d)]=_0x4330a0,_0x141c64[_0x1ccc17(0x1e3,0x1c0)]=_0x5e15b0,_0x141c64[_0x158e01(0x40c,0x3bd)]=this[_0x1ccc17(0x288,0x241)],_0x141c64['uniformMap']=this[_0x1ccc17(0x269,0x238)],_0x141c64[_0x158e01(0x3ec,0x36a)]=Pass$1[_0x1ccc17(0x26c,0x235)],new DrawCommand(_0x141c64);}else{if(this['commandType']===_0x1ccc17(0x25e,0x251)){const _0x40cfac={};return _0x40cfac[_0x1ccc17(0xdd,0x169)]=this,_0x40cfac[_0x1ccc17(0x132,0x197)]=this['fragmentShaderSource'],_0x40cfac['uniformMap']=this['uniformMap'],_0x40cfac['outputTexture']=this[_0x158e01(0x408,0x3ac)],_0x40cfac['persists']=!![],new ComputeCommand(_0x40cfac);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x3bffd1,_0x1fb7e3){function _0x128692(_0x482e99,_0x4d426d){return _0x5c5aa9(_0x482e99-0x2bb,_0x4d426d);}function _0x125ac6(_0x750204,_0x175cd1){return _0x5c5aa9(_0x175cd1-0x452,_0x750204);}this[_0x125ac6(0x522,0x4db)]=_0x1fb7e3,defined(this[_0x125ac6(0x4e9,0x496)])&&(this[_0x128692(0x2ff,0x383)][_0x128692(0x36e,0x3ca)]=VertexArray$1[_0x125ac6(0x4b5,0x490)]({'context':_0x3bffd1,'geometry':this[_0x125ac6(0x499,0x4db)],'attributeLocations':this[_0x128692(0x28f,0x2f8)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x5c5aa9(0x42,0x35)](_0x496dd8){if(!this[_0x3a36d9(0x3e8,0x477)]())return;function _0x196dba(_0x49dc09,_0x12a1d5){return _0x5c5aa9(_0x49dc09-0x198,_0x12a1d5);}function _0x3a36d9(_0xc9b831,_0x2bbece){return _0x5c5aa9(_0x2bbece-0x40e,_0xc9b831);}if(!this[_0x3a36d9(0x46f,0x44d)]||!defined(_0x496dd8))return;!defined(this['commandToExecute'])&&(this[_0x196dba(0x1dc,0x213)]=this['createCommand'](_0x496dd8[_0x196dba(0x1f3,0x1f6)]));defined(this['preExecute'])&&this['preExecute']();if(!_0x496dd8['commandList']){console[_0x196dba(0x266,0x29a)](_0x3a36d9(0x3b0,0x3e3));return;}defined(this[_0x3a36d9(0x362,0x3ee)])&&_0x496dd8['commandList'][_0x3a36d9(0x4ec,0x4b2)](this['clearCommand']),defined(this[_0x196dba(0x1dc,0x1fa)])&&_0x496dd8['commandList']['push'](this[_0x196dba(0x1dc,0x228)]);}[_0x22e09d(0x18f,0x166)](){return![];}['destroy'](){function _0x34b5fc(_0x6a81df,_0x2200df){return _0x5c5aa9(_0x6a81df-0x32a,_0x2200df);}if(defined(this[_0x34b5fc(0x36e,0x2fb)])){var _0x28b8b0;(_0x28b8b0=this['commandToExecute'][_0x34b5fc(0x352,0x392)])===null||_0x28b8b0===void 0x0||_0x28b8b0[_0x34b5fc(0x2fc,0x2f3)](),this['commandToExecute'][_0x34b5fc(0x352,0x32d)]=undefined;}function _0x51f56f(_0x151673,_0x3a881e){return _0x22e09d(_0x151673- -0x252,_0x3a881e);}return destroyObject(this);}}function deepMerge(_0xfb37d8,_0x5427da){function _0x1e318c(_0x3120b9,_0x1b323a){return _0x22e09d(_0x1b323a-0x3fd,_0x3120b9);}if(!_0xfb37d8)return _0x5427da;function _0x113959(_0x4c6690,_0x4e598c){return _0x22e09d(_0x4e598c-0x7e,_0x4c6690);}if(!_0x5427da)return _0xfb37d8;const _0x2a04fe={..._0x5427da},_0x4718d6=_0x2a04fe;for(const _0x68d5cd in _0xfb37d8){if(Object[_0x113959(0x17e,0x19a)]['hasOwnProperty'][_0x113959(0x1ef,0x21f)](_0xfb37d8,_0x68d5cd)){const _0x5f0a4b=_0xfb37d8[_0x68d5cd],_0x56d7d5=_0x5427da[_0x68d5cd];if(Array[_0x1e318c(0x61f,0x599)](_0x5f0a4b)){_0x4718d6[_0x68d5cd]=_0x5f0a4b['slice']();continue;}if(_0x5f0a4b&&typeof _0x5f0a4b==='object'){_0x4718d6[_0x68d5cd]=deepMerge(_0x5f0a4b,_0x56d7d5||{});continue;}_0x5f0a4b!==undefined&&(_0x4718d6[_0x68d5cd]=_0x5f0a4b);}}return _0x4718d6;}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(_0x3cbe29,_0x2865dc,_0x58b289,_0x4125a4,_0x46f57b){this['context']=_0x3cbe29;function _0x4ea4a3(_0x254bb0,_0x4ea522){return _0x22e09d(_0x254bb0- -0x1e5,_0x4ea522);}this[_0x4ea4a3(-0x1d,0x19)]=_0x58b289,this['viewerParameters']=_0x4125a4,this['windData']=_0x2865dc,this['frameRate']=0x3c,this[_0x4ea4a3(-0x95,-0x100)]=0x1;function _0x43bad6(_0x42fb11,_0x24b8dc){return _0x5c5aa9(_0x24b8dc-0x15,_0x42fb11);}const _0x54c47a={};_0x54c47a[_0x43bad6(0x4d,0xb)]=_0x46f57b,_0x54c47a[_0x43bad6(0xfd,0x84)]=0x1,_0x54c47a['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x54c47a),this[_0x4ea4a3(-0x17,-0x5a)](),this[_0x4ea4a3(-0xa9,-0x10b)](),this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x36b033=()=>{function _0x284f30(_0x2f7247,_0x46e8ee){return _0x4ca7(_0x2f7247- -0xad,_0x46e8ee);}function _0x4e7562(_0x50ac54,_0x16dd37){return _0x4ca7(_0x50ac54- -0x6,_0x16dd37);}this[_0x4e7562(0x291,0x21d)]['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this[_0x284f30(0x17b,0x1e3)]=0x3c/Math[_0x284f30(0x1ef,0x1ac)](this[_0x4e7562(0x2dc,0x28e)],0x1));};_0x36b033();const _0x533a81=setInterval(_0x36b033,0x3e8);function _0x351008(_0x819df,_0x1074ab){return _0x5c5aa9(_0x819df-0xc,_0x1074ab);}function _0x52c773(_0x279e6d,_0x46c4f7){return _0x5c5aa9(_0x46c4f7-0x34e,_0x279e6d);}const _0x1870a7=this[_0x351008(-0x22,-0x4c)][_0x351008(0xc2,0x3b)](this);this['destroy']=()=>{clearInterval(_0x533a81),_0x1870a7();};}['createWindTextures'](){function _0x3e2db(_0x55955c,_0x329a91){return _0x5c5aa9(_0x55955c-0x210,_0x329a91);}const _0x36cfd1={};_0x36cfd1[_0x22a227(0x290,0x270)]=TextureMinificationFilter$1['LINEAR'],_0x36cfd1['magnificationFilter']=TextureMagnificationFilter$1[_0x3e2db(0x291,0x292)];function _0x22a227(_0x172184,_0x5733e3){return _0x22e09d(_0x5733e3-0x151,_0x172184);}const _0x13593d={'context':this['context'],'width':this[_0x22a227(0x33e,0x2c3)]['width'],'height':this[_0x3e2db(0x222,0x276)]['height'],'pixelFormat':PixelFormat$1[_0x22a227(0x298,0x299)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options'][_0x22a227(0x281,0x28e)]??![],'sampler':new Sampler$1(_0x36cfd1)};this['windTextures']={'U':new Texture$1({..._0x13593d,'source':{'arrayBufferView':new Float32Array(this[_0x3e2db(0x222,0x1c9)]['u']['array'])}}),'V':new Texture$1({..._0x13593d,'source':{'arrayBufferView':new Float32Array(this[_0x3e2db(0x222,0x266)]['v']['array'])}})};}['createParticlesTextures'](){const _0x1e740e={};function _0x2871c0(_0x95001f,_0x397c96){return _0x5c5aa9(_0x95001f-0x51f,_0x397c96);}_0x1e740e[_0xe722e4(0x5fa,0x5cb)]=TextureMinificationFilter$1[_0x2871c0(0x5d9,0x5c3)],_0x1e740e[_0x2871c0(0x4e0,0x55f)]=TextureMagnificationFilter$1[_0xe722e4(0x6e4,0x6c6)];const _0xeab5b8={'context':this['context'],'width':this[_0xe722e4(0x67d,0x674)][_0xe722e4(0x678,0x6a7)],'height':this['options'][_0x2871c0(0x5ba,0x5ab)],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x2871c0(0x587,0x568)][_0xe722e4(0x6b6,0x6a7)]*this[_0x2871c0(0x587,0x56c)]['particlesTextureSize']*0x4)[_0x2871c0(0x55f,0x547)](0x0)},'sampler':new Sampler$1(_0x1e740e)};function _0xe722e4(_0x76c2d7,_0x3f8ae1){return _0x5c5aa9(_0x3f8ae1-0x60c,_0x76c2d7);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0xeab5b8),'currentParticlesPosition':new Texture$1(_0xeab5b8),'nextParticlesPosition':new Texture$1(_0xeab5b8),'postProcessingPosition':new Texture$1(_0xeab5b8),'particlesSpeed':new Texture$1(_0xeab5b8)};}[_0x22e09d(0x185,0x154)](){function _0x4754a0(_0x8285bf,_0x3d833b){return _0x22e09d(_0x8285bf-0x8f,_0x3d833b);}function _0x24fe6f(_0x3c41dc,_0x5c3262){return _0x5c5aa9(_0x5c3262-0x355,_0x3c41dc);}Object[_0x24fe6f(0x369,0x36d)](this['particlesTextures'])[_0x24fe6f(0x37b,0x392)](_0x1673ea=>_0x1673ea['destroy']());}[_0x5c5aa9(-0x1b,-0x39)](){function _0x3f1cd4(_0xccacca,_0x35e670){return _0x5c5aa9(_0x35e670-0x461,_0xccacca);}function _0x30c972(_0x48f641,_0x1dde66){return _0x5c5aa9(_0x1dde66- -0xa,_0x48f641);}this[_0x30c972(0x81,0x90)]={'calculateSpeed':new CustomPrimitive({'commandType':_0x30c972(0x9d,0xaf),'uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this[_0x3f1cd4(0x3f3,0x473)]['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x3f1cd4(0x4f1,0x473)]['v'][_0x30c972(0x99,0x47)],this['windData']['v'][_0x3f1cd4(0x4f0,0x4c5)]),'speedRange':()=>new Cartesian2$1(this['windData'][_0x3f1cd4(0x576,0x500)][_0x3f1cd4(0x522,0x4b2)],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures'][_0x30c972(-0x36,0x39)],'speedScaleFactor':()=>{function _0x367cde(_0x52463f,_0x3d632f){return _0x3f1cd4(_0x3d632f,_0x52463f- -0x226);}function _0x8eaa2d(_0x451551,_0x158637){return _0x30c972(_0x451551,_0x158637-0x479);}return(this[_0x367cde(0x2b8,0x2f7)]['pixelSize']+0x32)*this['options'][_0x367cde(0x2ad,0x2da)];},'frameRateAdjustment':()=>this[_0x30c972(0x13,-0x1a)],'dimension':()=>new Cartesian2$1(this['windData'][_0x30c972(0x19,0x84)],this[_0x30c972(0x3,0x8)][_0x30c972(0x86,0xb8)]),'minimum':()=>new Cartesian2$1(this[_0x3f1cd4(0x491,0x473)]['bounds'][_0x30c972(0x149,0xbe)],this['windData']['bounds'][_0x3f1cd4(0x419,0x494)]),'maximum':()=>new Cartesian2$1(this[_0x30c972(-0x6,0x8)]['bounds'][_0x3f1cd4(0x4ce,0x440)],this['windData'][_0x30c972(-0x53,-0x53)]['north'])},'fragmentShaderSource':ShaderManager[_0x30c972(0xd6,0xaa)](),'outputTexture':this['particlesTextures'][_0x3f1cd4(0x488,0x504)],'preExecute':()=>{const _0x47b9ca=this[_0x3f236b(0x16f,0x17c)]['previousParticlesPosition'];this['particlesTextures']['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'];function _0x3db047(_0x591532,_0xef2549){return _0x30c972(_0x591532,_0xef2549- -0x143);}function _0x3f236b(_0x42ebf4,_0x3f05f5){return _0x3f1cd4(_0x3f05f5,_0x42ebf4- -0x3b8);}this[_0x3f236b(0x16f,0x1d8)]['currentParticlesPosition']=this['particlesTextures'][_0x3db047(-0x116,-0xba)],this['particlesTextures']['postProcessingPosition']=_0x47b9ca,this['primitives'][_0x3f236b(0x13d,0x10a)]['commandToExecute']&&(this['primitives'][_0x3db047(-0x64,-0xb9)]['commandToExecute'][_0x3f236b(0x141,0x170)]=this['particlesTextures'][_0x3db047(-0xe1,-0xaa)]);},'isDynamic':()=>this[_0x3f1cd4(0x47e,0x4c9)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':_0x30c972(0xb3,0xaf),'uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x3f1cd4(0x508,0x4a4)],'particlesSpeed':()=>this[_0x3f1cd4(0x53a,0x527)][_0x3f1cd4(0x53b,0x504)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x30c972(0x106,0xbc)][_0x3f1cd4(0x488,0x4ad)],'preExecute':()=>{function _0x32b210(_0x337c49,_0x57b390){return _0x30c972(_0x337c49,_0x57b390-0xe1);}function _0x4f9b6b(_0x531efa,_0xe359e6){return _0x30c972(_0x531efa,_0xe359e6-0x1b7);}this[_0x32b210(0x176,0x171)]['updatePosition'][_0x32b210(0xe9,0x11b)]&&(this[_0x4f9b6b(0x1ba,0x247)][_0x4f9b6b(0x142,0x185)][_0x32b210(0xa8,0x11b)][_0x4f9b6b(0x263,0x245)]=this['particlesTextures'][_0x4f9b6b(0x1de,0x1f9)]);},'isDynamic':()=>this['options'][_0x3f1cd4(0x46d,0x4ee)]}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x3f1cd4(0x4aa,0x51a),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x30c972(0x41,0x42)],'particlesSpeed':()=>this['particlesTextures'][_0x30c972(0x7f,0x99)],'lonRange':()=>this['viewerParameters'][_0x30c972(0x62,-0x2c)],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0x3f1cd4(0x4db,0x473)][_0x3f1cd4(0x45b,0x418)][_0x30c972(0x3c,0xbe)],this[_0x3f1cd4(0x42a,0x473)]['bounds'][_0x30c972(0x2a,-0x2b)]),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this['windData'][_0x30c972(-0x1c,-0x53)][_0x3f1cd4(0x3e5,0x444)]),'randomCoefficient':function(){function _0x6c36bf(_0x24770b,_0x71df8c){return _0x3f1cd4(_0x71df8c,_0x24770b- -0x521);}return Math[_0x6c36bf(-0x9f,-0xd8)]();},'dropRate':()=>this['options'][_0x30c972(0x9,0x7b)],'dropRateBump':()=>this['options'][_0x30c972(-0x58,0x28)],'useViewerBounds':()=>this['options'][_0x30c972(-0x5b,0x21)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures'][_0x3f1cd4(0x47e,0x4f4)],'preExecute':()=>{function _0x175414(_0x2f4b08,_0x24dc48){return _0x30c972(_0x2f4b08,_0x24dc48-0x318);}function _0x3b1805(_0x5f59aa,_0x575b3c){return _0x30c972(_0x5f59aa,_0x575b3c-0x5ef);}this[_0x175414(0x367,0x3a8)]['postProcessingPosition'][_0x3b1805(0x627,0x629)]&&(this[_0x175414(0x327,0x3a8)]['postProcessingPosition'][_0x3b1805(0x6b6,0x629)][_0x175414(0x31b,0x3a6)]=this[_0x175414(0x3e6,0x3d4)]['postProcessingPosition']);},'isDynamic':()=>this[_0x30c972(-0x1b,0x5e)]['dynamic']})};}['reCreateWindTextures'](){function _0x29faa0(_0x51221c,_0x53dcb8){return _0x5c5aa9(_0x51221c-0x305,_0x53dcb8);}this['windTextures']['U']['destroy'](),this['windTextures']['V'][_0x29faa0(0x2d7,0x2c1)](),this['createWindTextures']();}['updateWindData'](_0x57d07b){this[_0x3bf173(-0x51,-0x4a)]=_0x57d07b;function _0x3bf173(_0x394e41,_0x527d64){return _0x5c5aa9(_0x527d64- -0x5c,_0x394e41);}this['reCreateWindTextures']();}['updateOptions'](_0x1b6d93){const _0x34631f=_0x1b6d93[_0x3bd712(0x528,0x599)]!==undefined&&_0x1b6d93[_0x3bd712(0x53c,0x599)]!==this['options'][_0xc78536(0x26d,0x2e2)];function _0x3bd712(_0x4e7346,_0x2ec323){return _0x5c5aa9(_0x2ec323-0x5bc,_0x4e7346);}function _0xc78536(_0x1c29b5,_0x2857f0){return _0x5c5aa9(_0x1c29b5-0x290,_0x2857f0);}this['options']=deepMerge(_0x1b6d93,this['options']),_0x34631f&&this['reCreateWindTextures']();}['processWindData'](_0x39a5d3){const {array:_0x7a5b53}=_0x39a5d3;function _0x3380ff(_0x43b7d5,_0xb9bda0){return _0x5c5aa9(_0x43b7d5- -0xce,_0xb9bda0);}let {min:_0x367415,max:_0x4dfc9c}=_0x39a5d3;const _0x59245f=new Float32Array(_0x7a5b53['length']);_0x367415===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x367415=Math['min'](..._0x7a5b53));_0x4dfc9c===undefined&&(console[_0x50b85a(0x16e,0x101)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x4dfc9c=Math[_0x3380ff(-0x6a,-0xf6)](..._0x7a5b53));function _0x50b85a(_0x42225e,_0x25681b){return _0x5c5aa9(_0x25681b-0x33,_0x42225e);}const _0x2d12a3=Math['max'](Math['abs'](_0x367415),Math['abs'](_0x4dfc9c));for(let _0x55cb9c=0x0;_0x55cb9c<_0x7a5b53['length'];_0x55cb9c++){const _0x4b2d76=_0x7a5b53[_0x55cb9c]/_0x2d12a3;_0x59245f[_0x55cb9c]=_0x4b2d76;}return _0x59245f;}['destroy'](){Object[_0x117c18(0x630,0x60e)](this['windTextures'])['forEach'](_0x58f7dd=>_0x58f7dd[_0x117c18(0x5d8,0x5c8)]()),Object[_0x117c18(0x5d5,0x60e)](this['particlesTextures'])[_0x3a8e81(0x3e5,0x39f)](_0x249b67=>_0x249b67[_0x3a8e81(0x37a,0x36b)]()),Object['values'](this[_0x3a8e81(0x442,0x44c)])[_0x117c18(0x5c7,0x633)](_0x4349af=>_0x4349af[_0x3a8e81(0x37a,0x331)]());function _0x3a8e81(_0x5a2d96,_0x55acec){return _0x5c5aa9(_0x5a2d96-0x3a8,_0x55acec);}function _0x117c18(_0x3144e6,_0x70ebf9){return _0x22e09d(_0x70ebf9-0x496,_0x3144e6);}this['frameRateMonitor'][_0x3a8e81(0x37a,0x378)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x22e09d(0x1ae,0x122)];class WindParticlesRendering{constructor(_0x4d9895,_0x583828,_0x43f0b9,_0x5a0953){this['context']=_0x4d9895,this[_0x2cca87(0x148,0x178)]=_0x583828;function _0x2cca87(_0x3547e8,_0x13c99c){return _0x5c5aa9(_0x13c99c-0x110,_0x3547e8);}function _0xb2cc35(_0x3fa76e,_0x5a102f){return _0x5c5aa9(_0x5a102f-0x431,_0x3fa76e);}this[_0xb2cc35(0x462,0x4ae)]=_0x43f0b9,this['computing']=_0x5a0953,(typeof this['options'][_0x2cca87(0x1b5,0x1ab)]!==_0xb2cc35(0x47f,0x469)||this['options']['particlesTextureSize']<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options']['particlesTextureSize']=0x100),this['colorTable']=this['createColorTableTexture'](),this[_0xb2cc35(0x436,0x4aa)]=this['createRenderingTextures'](),this['framebuffers']=this['createRenderingFramebuffers'](),this['primitives']=this['createPrimitives']();}[_0x5c5aa9(0x83,0xb8)](){const _0x1ec1f0={};_0x1ec1f0['context']=this['context'];function _0x1c14b5(_0x10c55c,_0x376556){return _0x22e09d(_0x10c55c-0x271,_0x376556);}_0x1ec1f0['width']=this['context']['drawingBufferWidth'];function _0x4c0f3b(_0x3730bc,_0x405110){return _0x5c5aa9(_0x3730bc-0x149,_0x405110);}_0x1ec1f0[_0x1c14b5(0x493,0x518)]=this['context']['drawingBufferHeight'],_0x1ec1f0['pixelFormat']=PixelFormat['RGBA'],_0x1ec1f0['pixelDatatype']=PixelDatatype[_0x4c0f3b(0x12b,0xfb)];const _0x5e7eeb=_0x1ec1f0,_0x4c14e6={};_0x4c14e6['context']=this[_0x1c14b5(0x42c,0x48e)],_0x4c14e6[_0x1c14b5(0x45f,0x3f7)]=this[_0x4c0f3b(0x1a4,0x132)]['drawingBufferWidth'],_0x4c14e6['height']=this['context'][_0x4c0f3b(0x1b0,0x1f7)],_0x4c14e6['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x4c14e6[_0x4c0f3b(0x1d5,0x19a)]=PixelDatatype['UNSIGNED_INT'];const _0x551f47=_0x4c14e6;return{'segmentsColor':new Texture(_0x5e7eeb),'segmentsDepth':new Texture(_0x551f47)};}['createRenderingFramebuffers'](){const _0x1ae8a6={};_0x1ae8a6['context']=this[_0x1d515c(-0x167,-0xe1)];function _0x4ec52a(_0x1541d5,_0x5d380c){return _0x22e09d(_0x1541d5- -0x12b,_0x5d380c);}_0x1ae8a6['colorTextures']=[this['textures']['segmentsColor']];function _0x1d515c(_0x23c5cf,_0x5977c3){return _0x5c5aa9(_0x5977c3- -0x13c,_0x23c5cf);}return _0x1ae8a6[_0x4ec52a(0x4b,-0x7)]=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x1ae8a6)};}['destoryRenderingFramebuffers'](){function _0xcdcd11(_0x2ba07f,_0x49b7dd){return _0x5c5aa9(_0x2ba07f-0x12e,_0x49b7dd);}function _0x2d9f71(_0x4427ef,_0x3c6d01){return _0x5c5aa9(_0x4427ef-0x497,_0x3c6d01);}Object['values'](this[_0x2d9f71(0x4ef,0x55c)])[_0x2d9f71(0x4d4,0x495)](_0x3b761c=>{_0x3b761c['destroy']();});}['createColorTableTexture'](){function _0x6d9cd8(_0x57282c,_0x2d5d5e){return _0x5c5aa9(_0x57282c- -0x8,_0x2d5d5e);}const _0x337f6e=new Float32Array(this[_0x6d9cd8(0x60,0xe7)][_0x6d9cd8(0x99,0x124)][_0x1b2428(0x252,0x1d9)](_0x90c30c=>{function _0x409c99(_0x4b3c47,_0x5e8e96){return _0x6d9cd8(_0x5e8e96-0x485,_0x4b3c47);}const _0x2e4217=Color$1['fromCssColorString'](_0x90c30c);return[_0x2e4217['red'],_0x2e4217['green'],_0x2e4217['blue'],_0x2e4217[_0x409c99(0x479,0x431)]];})),_0x4bd6cb={};_0x4bd6cb[_0x1b2428(0x21a,0x199)]=TextureMinificationFilter['LINEAR'];function _0x1b2428(_0x53a35a,_0x59c517){return _0x5c5aa9(_0x53a35a-0x25b,_0x59c517);}return _0x4bd6cb['magnificationFilter']=TextureMagnificationFilter[_0x6d9cd8(0x79,0xfa)],_0x4bd6cb[_0x1b2428(0x231,0x295)]=TextureWrap['CLAMP_TO_EDGE'],_0x4bd6cb[_0x1b2428(0x241,0x1cc)]=TextureWrap[_0x1b2428(0x2dd,0x250)],new Texture({'context':this['context'],'width':this['options'][_0x1b2428(0x2fc,0x293)]['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype[_0x6d9cd8(0x17,0x7f)],'sampler':new Sampler(_0x4bd6cb),'source':{'width':this['options'][_0x1b2428(0x2fc,0x2a8)]['length'],'height':0x1,'arrayBufferView':_0x337f6e}});}[_0x22e09d(0x137,0xfe)](){const _0x174a4b=0x4;function _0xf728a5(_0x18562a,_0x551af2){return _0x22e09d(_0x18562a-0x158,_0x551af2);}const _0xd558f5=this[_0x3ba1eb(0x5b,-0x1)]['particlesTextureSize'];let _0x548ca0=[];for(let _0xafde50=0x0;_0xafde50<_0xd558f5;_0xafde50++){for(let _0x535728=0x0;_0x535728<_0xd558f5;_0x535728++){for(let _0x5a5693=0x0;_0x5a5693<_0x174a4b;_0x5a5693++){_0x548ca0['push'](_0xafde50/_0xd558f5),_0x548ca0[_0x3ba1eb(0x97,0xed)](_0x535728/_0xd558f5);}}}_0x548ca0=new Float32Array(_0x548ca0);const _0x3fe39b=this[_0xf728a5(0x320,0x334)][_0xf728a5(0x353,0x320)]**0x2;let _0x430df4=[];for(let _0x47222f=0x0;_0x47222f<_0x3fe39b;_0x47222f++){_0x430df4[_0xf728a5(0x35c,0x301)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x430df4=new Float32Array(_0x430df4);let _0x25ecf7=[];for(let _0xb0b516=0x0,_0x4557d0=0x0;_0xb0b516<_0x3fe39b;_0xb0b516++){_0x25ecf7['push'](_0x4557d0+0x0,_0x4557d0+0x1,_0x4557d0+0x2,_0x4557d0+0x2,_0x4557d0+0x1,_0x4557d0+0x3),_0x4557d0+=_0x174a4b;}_0x25ecf7=new Uint32Array(_0x25ecf7);const _0x5fb2b5={};_0x5fb2b5['componentDatatype']=ComponentDatatype['FLOAT'],_0x5fb2b5[_0x3ba1eb(-0x4,0x29)]=0x2,_0x5fb2b5['values']=_0x548ca0;const _0xe970ee={};function _0x3ba1eb(_0x1689b2,_0x44e907){return _0x22e09d(_0x1689b2- -0x16d,_0x44e907);}_0xe970ee['componentDatatype']=ComponentDatatype['FLOAT'],_0xe970ee['componentsPerAttribute']=0x3,_0xe970ee['values']=_0x430df4;const _0x4a34a1=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x5fb2b5),'normal':new GeometryAttribute(_0xe970ee)}),'indices':_0x25ecf7});return _0x4a34a1;}[_0x22e09d(0x1b3,0x1e4)](_0x58e19c){function _0x42b295(_0x5c91c3,_0x1accfc){return _0x5c5aa9(_0x1accfc-0x447,_0x5c91c3);}const _0x2cbdad={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x58e19c};return Appearance[_0x42b295(0x54b,0x4e3)](!![],![],_0x2cbdad);}['createPrimitives'](){const _0x325ddb={};_0x325ddb['st']=0x0;function _0x55f7cd(_0x61d87c,_0x375347){return _0x5c5aa9(_0x61d87c-0x116,_0x375347);}_0x325ddb[_0x469093(0x5e1,0x655)]=0x1;const _0x4ddc7a={};_0x4ddc7a['enabled']=!![];const _0x3c7c8c={};_0x3c7c8c[_0x469093(0x5d3,0x622)]=!![],_0x3c7c8c['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x3c7c8c['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x3c7c8c['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x3ffdf2={};_0x3ffdf2[_0x469093(0x612,0x5b8)]=undefined,_0x3ffdf2['depthTest']=_0x4ddc7a,_0x3ffdf2[_0x55f7cd(0x10e,0xb6)]=!![],_0x3ffdf2['blending']=_0x3c7c8c;const _0x32b634=new CustomPrimitive({'commandType':_0x469093(0x62e,0x64c),'attributeLocations':_0x325ddb,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0x55f7cd(0x161,0x14a)],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures'][_0x469093(0x5da,0x5ea)],'currentParticlesPosition':()=>this[_0x55f7cd(0x129,0x141)][_0x55f7cd(0x1dc,0x267)]['currentParticlesPosition'],'postProcessingPosition':()=>this['computing'][_0x469093(0x693,0x630)]['postProcessingPosition'],'particlesSpeed':()=>this[_0x469093(0x5e0,0x5fb)]['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this['computing'][_0x469093(0x5bd,0x5b4)],'colorTable':()=>this[_0x469093(0x658,0x6e3)],'domain':()=>{var _0x4bdfcf,_0x472cf7;const _0x22aad8=new Cartesian2(((_0x4bdfcf=this['options'][_0x74cae6(-0xa9,-0x114)])===null||_0x4bdfcf===void 0x0?void 0x0:_0x4bdfcf['min'])??this[_0x15b2bb(0x501,0x568)]['windData']['speed'][_0x74cae6(-0x4d,-0x72)],((_0x472cf7=this[_0x74cae6(-0x36,-0xe)]['domain'])===null||_0x472cf7===void 0x0?void 0x0:_0x472cf7[_0x15b2bb(0x548,0x5b9)])??this[_0x74cae6(-0x8b,-0x84)]['windData']['speed'][_0x15b2bb(0x56c,0x5b9)]);function _0x15b2bb(_0x9e48c0,_0x24dba0){return _0x55f7cd(_0x24dba0-0x43f,_0x9e48c0);}function _0x74cae6(_0x2649c6,_0x266e5e){return _0x469093(_0x2649c6- -0x66b,_0x266e5e);}return _0x22aad8;},'displayRange':()=>{var _0x3ed963,_0x4f2ea7;function _0x17fcfc(_0x30c2f5,_0x47c131){return _0x469093(_0x30c2f5- -0x31,_0x47c131);}const _0x396f7c=new Cartesian2(((_0x3ed963=this['options']['displayRange'])===null||_0x3ed963===void 0x0?void 0x0:_0x3ed963[_0x17fcfc(0x5ed,0x659)])??this[_0x17fcfc(0x5af,0x5c3)][_0x2b2ac6(0x2e,0x3b)]['speed'][_0x2b2ac6(0x6d,0xf9)],((_0x4f2ea7=this['options'][_0x17fcfc(0x5f3,0x632)])===null||_0x4f2ea7===void 0x0?void 0x0:_0x4f2ea7['max'])??this['computing']['windData']['speed'][_0x17fcfc(0x600,0x60e)]);function _0x2b2ac6(_0x2399e6,_0x3230da){return _0x55f7cd(_0x2399e6- -0xfa,_0x3230da);}return _0x396f7c;},'particleHeight':()=>this['options'][_0x55f7cd(0x19c,0x133)]||0x0,'aspect':()=>this[_0x469093(0x628,0x656)]['drawingBufferWidth']/this['context'][_0x469093(0x634,0x665)],'pixelSize':()=>this[_0x55f7cd(0x193,0x1bf)]['pixelSize'],'lineWidth':()=>{const _0x35fe01={};function _0x15042d(_0x269d7e,_0xeded46){return _0x469093(_0xeded46- -0x1aa,_0x269d7e);}_0x35fe01[_0x15042d(0x455,0x474)]=0x1,_0x35fe01['max']=0x2;function _0x58e5e9(_0x6eb271,_0x4f7ce5){return _0x469093(_0x4f7ce5- -0x214,_0x6eb271);}const _0x193e8a=this['options'][_0x15042d(0x445,0x45e)]||_0x35fe01;return new Cartesian2(_0x193e8a['min'],_0x193e8a[_0x15042d(0x464,0x487)]);},'lineLength':()=>{const _0x1729cf={};function _0x5ea6dd(_0x12d7d6,_0x28a8dd){return _0x55f7cd(_0x12d7d6-0x3e2,_0x28a8dd);}_0x1729cf[_0x47fe22(0x4aa,0x4a0)]=0x14,_0x1729cf['max']=0x64;const _0x4b2b9e=this['options']['lineLength']||_0x1729cf;function _0x47fe22(_0x14d558,_0x54a680){return _0x55f7cd(_0x54a680-0x339,_0x14d558);}return new Cartesian2(_0x4b2b9e[_0x5ea6dd(0x549,0x570)],_0x4b2b9e['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x55f7cd(0x194,0x154)],'segmentsDepthTexture':()=>this[_0x469093(0x646,0x6a4)][_0x55f7cd(0x1c7,0x1d5)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x469093(0x627,0x667)](),'rawRenderState':this['createRawRenderState'](_0x3ffdf2)});function _0x469093(_0x25bcdf,_0x135fb5){return _0x5c5aa9(_0x25bcdf-0x5cd,_0x135fb5);}const _0x4ed9b4={};return _0x4ed9b4[_0x55f7cd(0x136,0x182)]=_0x32b634,_0x4ed9b4;}[_0x22e09d(0x15e,0xed)](){const _0x18fbdf=this['createSegmentsGeometry']();this['primitives']['segments'][_0x3de40d(0x40a,0x485)]=_0x18fbdf;const _0x5bc836={};_0x5bc836['context']=this['context'],_0x5bc836[_0x32c300(0x526,0x533)]=_0x18fbdf,_0x5bc836['attributeLocations']=this[_0x3de40d(0x4e7,0x496)]['segments']['attributeLocations'];function _0x32c300(_0x5509e9,_0x2c9306){return _0x22e09d(_0x5509e9-0x33d,_0x2c9306);}function _0x3de40d(_0x1c3c6b,_0x26e53c){return _0x22e09d(_0x26e53c-0x29c,_0x1c3c6b);}_0x5bc836[_0x32c300(0x54f,0x599)]=BufferUsage['STATIC_DRAW'];const _0x475fba=VertexArray['fromGeometry'](_0x5bc836);this[_0x32c300(0x537,0x569)]['segments'][_0x32c300(0x4e1,0x4a6)]&&(this['primitives'][_0x32c300(0x4bd,0x44b)]['commandToExecute'][_0x32c300(0x550,0x574)]=_0x475fba);}[_0x5c5aa9(0x50,-0x25)](){function _0x2cead3(_0x30f645,_0x244099){return _0x5c5aa9(_0x30f645-0x4c2,_0x244099);}this['colorTable']['destroy'](),this['colorTable']=this[_0x2cead3(0x589,0x5c9)]();}['updateOptions'](_0x1d7278){const _0x35afc5=_0x1d7278['colors']&&JSON[_0x1066ae(0x2f,0x5)](_0x1d7278['colors'])!==JSON['stringify'](this['options']['colors']);this['options']=deepMerge(_0x1d7278,this[_0x13968a(-0xd2,-0x10b)]);function _0x1066ae(_0x38b5e0,_0x389b5b){return _0x22e09d(_0x389b5b- -0x149,_0x38b5e0);}function _0x13968a(_0x7af2a2,_0xe29c1d){return _0x5c5aa9(_0xe29c1d- -0x173,_0x7af2a2);}_0x35afc5&&this['onColorTableChange']();}[_0x5c5aa9(-0x2e,-0x4c)](){Object['values'](this['framebuffers'])[_0x49b0b4(0x54d,0x53e)](_0x118ed9=>{_0x118ed9['destroy']();});function _0x49b0b4(_0xabc95d,_0xcdd14f){return _0x22e09d(_0xcdd14f-0x3a1,_0xabc95d);}Object['values'](this['primitives'])['forEach'](_0x514422=>{_0x514422['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x54d30b,_0x136fe4,_0x11d026,_0x2b7b0f,_0x5f40d9){this['context']=_0x54d30b,this[_0x38f69b(0x5dc,0x5a4)]=_0x11d026;function _0x38f69b(_0x1b4a7a,_0x1550d8){return _0x5c5aa9(_0x1b4a7a-0x574,_0x1550d8);}function _0x4c6707(_0x40517c,_0x429b62){return _0x5c5aa9(_0x40517c- -0xcd,_0x429b62);}this['viewerParameters']=_0x2b7b0f,this[_0x4c6707(-0xba,-0x7c)]=new WindParticlesComputing(_0x54d30b,_0x136fe4,_0x11d026,_0x2b7b0f,_0x5f40d9),this['rendering']=new WindParticlesRendering(_0x54d30b,_0x11d026,_0x2b7b0f,this['computing']),this['clearFramebuffers']();}[_0x5c5aa9(0x46,0x9)](){const _0x1930b4=[this['computing']['primitives']['calculateSpeed'],this[_0x4aa2a8(-0xed,-0xb5)][_0x481118(0x653,0x6b0)]['updatePosition'],this['computing'][_0x481118(0x653,0x6b2)][_0x4aa2a8(-0x6d,-0x75)],this[_0x4aa2a8(-0x117,-0xde)][_0x481118(0x653,0x66c)][_0x481118(0x5d9,0x664)]];function _0x4aa2a8(_0x29b400,_0x2c0d75){return _0x22e09d(_0x29b400- -0x260,_0x2c0d75);}function _0x481118(_0x37c74a,_0x41388c){return _0x5c5aa9(_0x37c74a-0x5b9,_0x41388c);}return _0x1930b4;}[_0x5c5aa9(0x8,-0x24)](){const _0x2e8218=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0xbd9d5c(0x50b,0x4ca)]});function _0xbd9d5c(_0x575112,_0x4dfa32){return _0x5c5aa9(_0x4dfa32-0x42d,_0x575112);}function _0x20730b(_0x4ed38d,_0x283124){return _0x5c5aa9(_0x283124-0x107,_0x4ed38d);}Object[_0xbd9d5c(0x4fd,0x4e9)](this['rendering'][_0x20730b(0x110,0x15f)])[_0x20730b(0x177,0x144)](_0x5ab14c=>{function _0x1c90df(_0x44dd0f,_0x48cc26){return _0xbd9d5c(_0x48cc26,_0x44dd0f-0x19e);}function _0x4108ce(_0x30d97d,_0x23dff8){return _0xbd9d5c(_0x23dff8,_0x30d97d- -0x31c);}_0x2e8218[_0x1c90df(0x674,0x5e8)]=this['rendering'][_0x4108ce(0x169,0x102)][_0x5ab14c],_0x2e8218['execute'](this[_0x1c90df(0x626,0x67d)]);});}[_0x5c5aa9(-0x4b,-0x56)](_0x3c0f30){let _0x4d8e62=![];_0x3c0f30['particlesTextureSize']&&this[_0xbd1b1c(0x50c,0x4a0)][_0xbd1b1c(0x4c6,0x4d3)]!==_0x3c0f30['particlesTextureSize']&&(_0x4d8e62=!![]);function _0xbd1b1c(_0x498070,_0x1c7be6){return _0x22e09d(_0x1c7be6-0x2d8,_0x498070);}const _0x3145b2=deepMerge(_0x3c0f30,this['options']);if(_0x3145b2['particlesTextureSize']<0x1)throw new Error(_0x3d5b99(0xe1,0x6e));this['options']=_0x3145b2;function _0x3d5b99(_0x3f3c0d,_0x222450){return _0x5c5aa9(_0x222450-0x4a,_0x3f3c0d);}this[_0xbd1b1c(0x3d2,0x421)][_0xbd1b1c(0x412,0x465)](_0x3c0f30),this['computing']['updateOptions'](_0x3c0f30),_0x4d8e62&&(this['computing']['destroyParticlesTextures'](),this['computing']['createParticlesTextures'](),this['rendering']['onParticlesTextureSizeChange']());}[_0x22e09d(0x191,0x119)](_0x13a5ae){this['viewerParameters']=_0x13a5ae;function _0x46ba08(_0x21d9fd,_0x7d107d){return _0x5c5aa9(_0x7d107d-0x12f,_0x21d9fd);}this['computing']['viewerParameters']=_0x13a5ae,this[_0x46ba08(0xbc,0x118)]['viewerParameters']=_0x13a5ae;}['destroy'](){function _0x55ca43(_0x322d94,_0x3595a4){return _0x5c5aa9(_0x3595a4-0x4f2,_0x322d94);}this['computing']['destroy'](),this[_0x55ca43(0x451,0x4db)]['destroy']();}}const Cesium$1=mars3d__namespace[_0x5c5aa9(0x4e,0x87)],BaseLayer$1=mars3d__namespace[_0x22e09d(0x215,0x256)]['BaseLayer'],_0x2eedc5={};_0x2eedc5['min']=0x1,_0x2eedc5[_0x22e09d(0x1c4,0x206)]=0x2;const _0x7d9b3f={};_0x7d9b3f['min']=0x14,_0x7d9b3f['max']=0x64;const _0x34401c={};_0x34401c['particlesTextureSize']=0x64,_0x34401c['fixedHeight']=0x0,_0x34401c[_0x22e09d(0x19b,0x19d)]=_0x2eedc5,_0x34401c['lineLength']=_0x7d9b3f;function _0x22e09d(_0x59ffc2,_0x4b00e8){return _0x4ca7(_0x59ffc2- -0xd8,_0x4b00e8);}_0x34401c[_0x5c5aa9(0x72,0x6c)]=0x1,_0x34401c['dropRate']=0.003,_0x34401c[_0x22e09d(0x192,0x16a)]=0.001,_0x34401c['colors']=['rgb(206,255,255)'],_0x34401c['flipY']=![],_0x34401c['dynamic']=!![];const DEF_OPTIONS=_0x34401c;class WindLayer extends BaseLayer$1{constructor(_0x2ce726={}){_0x2ce726={...DEF_OPTIONS,..._0x2ce726},super(_0x2ce726),this['_setOptionsHook'](_0x2ce726,_0x2ce726);}get[_0x5c5aa9(0xb5,0xcc)](){function _0x4ae8d3(_0x335745,_0x16464a){return _0x22e09d(_0x16464a-0x316,_0x335745);}return this[_0x4ae8d3(0x58d,0x510)];}get[_0x5c5aa9(-0x47,-0x30)](){function _0x25a907(_0x5e78c7,_0x5274b0){return _0x5c5aa9(_0x5e78c7-0x564,_0x5274b0);}function _0x263bda(_0xf5a099,_0x128346){return _0x22e09d(_0xf5a099- -0x278,_0x128346);}return this[_0x25a907(0x5cc,0x551)][_0x263bda(-0x15f,-0x1be)];}set[_0x5c5aa9(-0x47,-0x85)](_0xbd9510){function _0x131d2f(_0x462d2a,_0x241374){return _0x22e09d(_0x462d2a-0x351,_0x241374);}this['options'][_0x131d2f(0x46a,0x4d6)]=_0xbd9510,this['setData'](_0xbd9510);}get[_0x22e09d(0x201,0x240)](){function _0x11f539(_0x58b966,_0x1b6107){return _0x5c5aa9(_0x58b966-0x2f9,_0x1b6107);}return this['options'][_0x11f539(0x39a,0x40e)];}set['colors'](_0x2fbb02){function _0x49480a(_0xc7f11e,_0x3eb67f){return _0x5c5aa9(_0x3eb67f- -0x14,_0xc7f11e);}this[_0x49480a(0xe1,0x54)]['colors']=_0x2fbb02;const _0x5cd1fa={};_0x5cd1fa[_0x49480a(0xfe,0x8d)]=_0x2fbb02;function _0x162262(_0x151063,_0x171ac5){return _0x5c5aa9(_0x171ac5-0x4ee,_0x151063);}this[_0x49480a(0xe1,0x5f)](this['options'],_0x5cd1fa);}['_mountedHook'](){}['_addedHook'](){this[_0x5f429a(0x235,0x2c1)]=this[_0x17932f(0x166,0x1e6)][_0x17932f(0x273,0x21a)],this[_0x5f429a(0x1f2,0x257)]=this[_0x5f429a(0x201,0x1a2)]['camera'];this[_0x5f429a(0x2a7,0x24c)]['data']&&this['setData'](this['options']['data']);if(!this['windData'])return;function _0x5f429a(_0xff4a5e,_0x327dbd){return _0x22e09d(_0xff4a5e-0xdf,_0x327dbd);}this[_0x5f429a(0x2bc,0x339)]={'lonRange':new Cesium$1[(_0x17932f(0x30d,0x291))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x5f429a(0x235,0x237)]['mode']},this['updateViewerParameters'](),this[_0x5f429a(0x2ed,0x358)]=new WindParticleSystem(this['scene']['context'],this['windData'],this[_0x17932f(0x292,0x28c)],this['viewerParameters'],this['scene']);function _0x17932f(_0x498e85,_0x579a15){return _0x5c5aa9(_0x579a15-0x224,_0x498e85);}this[_0x5f429a(0x2d9,0x324)]=this['particleSystem']['getPrimitives'](),this[_0x5f429a(0x2d9,0x290)]['forEach'](_0x7ad6d5=>{function _0x3f4002(_0x54e940,_0x218d73){return _0x17932f(_0x218d73,_0x54e940-0x6b);}function _0x94210d(_0x42d1dd,_0xb60eba){return _0x5f429a(_0xb60eba- -0x197,_0x42d1dd);}this['scene'][_0x94210d(0x1b6,0x142)][_0x94210d(0x123,0x132)](_0x7ad6d5);}),this['camera']['percentageChanged']=0.01,this['camera'][_0x5f429a(0x24b,0x2b9)]['addEventListener'](this['updateViewerParameters'][_0x5f429a(0x2f5,0x291)](this)),this['scene']['morphComplete']['addEventListener'](this['updateViewerParameters'][_0x5f429a(0x2f5,0x28a)](this)),window[_0x17932f(0x2b5,0x2f3)]('resize',this['updateViewerParameters']['bind'](this));}[_0x22e09d(0x194,0x1a5)](){this['camera']['changed']['removeEventListener'](this['updateViewerParameters']['bind'](this)),this['scene'][_0x75f20e(0x5f5,0x5c6)][_0x75f20e(0x5aa,0x559)](this[_0x75f20e(0x5c5,0x573)][_0x43c4eb(0x354,0x340)](this)),window[_0x43c4eb(0x298,0x2d1)]('resize',this[_0x43c4eb(0x263,0x2ec)][_0x43c4eb(0x342,0x340)](this));function _0x43c4eb(_0x2c12d5,_0xac0137){return _0x5c5aa9(_0xac0137-0x28a,_0x2c12d5);}function _0x75f20e(_0x1df3b2,_0x49cf1c){return _0x5c5aa9(_0x1df3b2-0x563,_0x49cf1c);}this['primitives']&&(this[_0x43c4eb(0x33e,0x324)]['forEach'](_0x3f4674=>{function _0x2ec66c(_0x2ba703,_0x4ff1ad){return _0x43c4eb(_0x4ff1ad,_0x2ba703-0x15f);}function _0x4481ba(_0x45ae95,_0x4bd61a){return _0x43c4eb(_0x45ae95,_0x4bd61a- -0x7c);}this[_0x4481ba(0x17e,0x204)][_0x2ec66c(0x483,0x462)]['remove'](_0x3f4674);}),delete this['primitives']),this[_0x75f20e(0x611,0x676)]&&(this['particleSystem']['destroy'](),delete this[_0x75f20e(0x611,0x65b)]);}['setData'](_0xf03793,_0x514226){this['windData']=this['processWindData'](_0xf03793);function _0x4b7ebc(_0x289cce,_0x313fa1){return _0x5c5aa9(_0x289cce-0x127,_0x313fa1);}function _0x2effb4(_0x21904b,_0x504e24){return _0x5c5aa9(_0x21904b-0x44b,_0x504e24);}if(_0x514226){this[_0x4b7ebc(0x15b,0x19c)](),this['_addedHook']();return;}this['particleSystem']?(this['particleSystem']['computing'][_0x2effb4(0x498,0x46a)](this[_0x2effb4(0x45d,0x48a)]),this['scene']['requestRender']()):this['_addedHook']();}[_0x22e09d(0x1d3,0x1f4)](_0x870f3b,_0x2a8ddb){function _0x4c951(_0x1a77f3,_0x37f2af){return _0x22e09d(_0x37f2af- -0xd5,_0x1a77f3);}function _0x512a6f(_0x9536f2,_0x181101){return _0x22e09d(_0x9536f2-0x59,_0x181101);}this[_0x4c951(0x10c,0x139)]&&(this[_0x512a6f(0x267,0x2c7)]['changeOptions'](_0x2a8ddb),this['scene'][_0x4c951(0x83,0x7f)]());}[_0x22e09d(0x12d,0xe0)](_0x1eec06){var _0x56bbb0,_0x416f01;const _0xc77a4a={..._0x1eec06},_0x12eb5c=_0xc77a4a;!_0x12eb5c[_0x2adc41(0x2f,0x64)]&&_0x12eb5c['rows']&&(_0x12eb5c['height']=_0x12eb5c[_0x2adc41(0x4a,0x26)]);!_0x12eb5c['width']&&_0x12eb5c['cols']&&(_0x12eb5c['width']=_0x12eb5c['cols']);function _0x2adc41(_0x269a77,_0x19904b){return _0x22e09d(_0x19904b- -0x1be,_0x269a77);}!_0x12eb5c[_0x2a281c(0x469,0x497)]&&(_0x12eb5c['bounds']={'west':_0x12eb5c[_0x2adc41(-0x8c,-0x50)],'south':_0x12eb5c['ymin'],'east':_0x12eb5c['xmax'],'north':_0x12eb5c[_0x2adc41(0x93,0x2a)]});if(!_0x12eb5c['u']){const _0x1e8533={};_0x1e8533['array']=_0x1eec06[_0x2a281c(0x4c9,0x46f)],_0x1e8533[_0x2adc41(0x5d,-0xd)]=_0x1eec06[_0x2adc41(-0x7,0x6c)],_0x1e8533['max']=_0x1eec06['umax'],_0x12eb5c['u']=_0x1e8533;}if(!_0x12eb5c['v']){const _0x5023b3={};_0x5023b3['array']=_0x1eec06['vdata'],_0x5023b3['min']=_0x1eec06['vmin'],_0x5023b3['max']=_0x1eec06[_0x2a281c(0x569,0x4ec)],_0x12eb5c['v']=_0x5023b3;}function _0x2a281c(_0x72a6d3,_0x3ec297){return _0x22e09d(_0x72a6d3-0x352,_0x3ec297);}if(((_0x56bbb0=_0x12eb5c[_0x2a281c(0x551,0x4dc)])===null||_0x56bbb0===void 0x0?void 0x0:_0x56bbb0[_0x2a281c(0x503,0x518)])===undefined||((_0x416f01=_0x12eb5c['speed'])===null||_0x416f01===void 0x0?void 0x0:_0x416f01[_0x2adc41(0x6a,0x6)])===undefined||_0x12eb5c[_0x2a281c(0x551,0x5bf)]['array']===undefined){const _0xf761f={'array':new Float32Array(_0x12eb5c['u'][_0x2a281c(0x4ce,0x50c)]['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x1a6204=0x0;_0x1a6204<_0x12eb5c['u']['array'][_0x2adc41(-0x80,-0x8b)];_0x1a6204++){_0xf761f[_0x2adc41(-0x25,-0x42)][_0x1a6204]=Math['sqrt'](_0x12eb5c['u']['array'][_0x1a6204]*_0x12eb5c['u'][_0x2a281c(0x4ce,0x44f)][_0x1a6204]+_0x12eb5c['v']['array'][_0x1a6204]*_0x12eb5c['v'][_0x2adc41(-0x1e,-0x42)][_0x1a6204]),_0xf761f[_0x2adc41(0x25,-0x42)][_0x1a6204]!==0x0&&(_0xf761f[_0x2a281c(0x503,0x4b6)]=Math[_0x2a281c(0x503,0x589)](_0xf761f['min'],_0xf761f['array'][_0x1a6204]),_0xf761f['max']=Math[_0x2a281c(0x516,0x56b)](_0xf761f[_0x2adc41(-0x2f,0x6)],_0xf761f['array'][_0x1a6204]));}_0x12eb5c[_0x2adc41(-0x4e,0x41)]=_0xf761f;}return _0x12eb5c;}['updateViewerParameters'](){var _0x24c541;const _0x140557=this['scene'],_0x2528d7=_0x140557[_0x2e7a02(0x5a5,0x615)],_0x5e4679={};_0x5e4679['x']=0x0,_0x5e4679['y']=0x0;const _0xc0c161={};_0xc0c161['x']=0x0,_0xc0c161['y']=_0x2528d7['clientHeight'];const _0x45a180={};_0x45a180['x']=_0x2528d7['clientWidth'],_0x45a180['y']=0x0;const _0x7d13fd={};_0x7d13fd['x']=_0x2528d7['clientWidth'];function _0x431555(_0x243cac,_0x1f321a){return _0x5c5aa9(_0x1f321a-0x390,_0x243cac);}_0x7d13fd['y']=_0x2528d7[_0x2e7a02(0x50c,0x572)];const _0x246a56=[_0x5e4679,_0xc0c161,_0x45a180,_0x7d13fd];let _0x458757=0xb4,_0xf0e44a=-0xb4,_0x1e583b=0x5a;function _0x2e7a02(_0x3cc40f,_0x194183){return _0x22e09d(_0x194183-0x410,_0x3cc40f);}let _0x3031d7=-0x5a,_0x3e7fec=![];for(const _0x7cc75d of _0x246a56){const _0x170b86=_0x140557['camera'][_0x2e7a02(0x639,0x5e0)](new Cesium$1['Cartesian2'](_0x7cc75d['x'],_0x7cc75d['y']),_0x140557[_0x2e7a02(0x586,0x5da)]['ellipsoid']);if(!_0x170b86){_0x3e7fec=!![];break;}const _0x311404=_0x140557['globe']['ellipsoid'][_0x431555(0x426,0x3d8)](_0x170b86),_0x44579b=Cesium$1[_0x431555(0x477,0x40c)]['toDegrees'](_0x311404['longitude']),_0x893b38=Cesium$1['Math']['toDegrees'](_0x311404['latitude']);_0x458757=Math[_0x431555(0x372,0x3e1)](_0x458757,_0x44579b),_0xf0e44a=Math[_0x2e7a02(0x5c2,0x5d4)](_0xf0e44a,_0x44579b),_0x1e583b=Math[_0x431555(0x3d2,0x3e1)](_0x1e583b,_0x893b38),_0x3031d7=Math['max'](_0x3031d7,_0x893b38);}if(!_0x3e7fec){const _0x1b2843=new Cesium$1['Cartesian2'](Math['max'](this['windData'][_0x431555(0x2cc,0x347)]['west'],_0x458757),Math['min'](this[_0x431555(0x38f,0x3a2)]['bounds'][_0x2e7a02(0x57b,0x54f)],_0xf0e44a)),_0x151a31=new Cesium$1[(_0x2e7a02(0x553,0x5dd))](Math['max'](this['windData'][_0x2e7a02(0x4c0,0x527)][_0x2e7a02(0x624,0x5a3)],_0x1e583b),Math[_0x2e7a02(0x558,0x5c1)](this['windData']['bounds'][_0x431555(0x306,0x373)],_0x3031d7)),_0x4bfb9a=(_0x1b2843['y']-_0x1b2843['x'])*0.05,_0x926ca3=(_0x151a31['y']-_0x151a31['x'])*0.05;_0x1b2843['x']=Math[_0x431555(0x459,0x3f4)](this[_0x431555(0x34b,0x3a2)]['bounds']['west'],_0x1b2843['x']-_0x4bfb9a),_0x1b2843['y']=Math['min'](this[_0x2e7a02(0x5a4,0x582)]['bounds']['east'],_0x1b2843['y']+_0x4bfb9a),_0x151a31['x']=Math[_0x431555(0x3f1,0x3f4)](this['windData'][_0x2e7a02(0x49d,0x527)]['south'],_0x151a31['x']-_0x926ca3),_0x151a31['y']=Math['min'](this['windData']['bounds'][_0x431555(0x395,0x373)],_0x151a31['y']+_0x926ca3),this[_0x431555(0x3ff,0x40d)]['lonRange']=_0x1b2843,this['viewerParameters']['latRange']=_0x151a31;const _0xc2c2d2=this[_0x2e7a02(0x556,0x582)]['bounds']['east']-this['windData'][_0x431555(0x3c4,0x347)][_0x2e7a02(0x6c5,0x638)],_0x5eff22=this['windData']['bounds']['north']-this['windData']['bounds']['south'],_0x1e6831=(_0x1b2843['y']-_0x1b2843['x'])/_0xc2c2d2,_0x3700b8=(_0x151a31['y']-_0x151a31['x'])/_0x5eff22,_0x5ab661=Math['min'](_0x1e6831,_0x3700b8),_0x512557=0x3e8*_0x5ab661;_0x512557>0x0&&(this[_0x431555(0x478,0x40d)][_0x431555(0x370,0x3ba)]=Math[_0x2e7a02(0x5c2,0x5d4)](0x0,Math['min'](0x3e8,_0x512557)));}this[_0x431555(0x3f7,0x40d)]['sceneMode']=this['scene'][_0x2e7a02(0x5e5,0x5ce)],(_0x24c541=this['particleSystem'])===null||_0x24c541===void 0x0||_0x24c541[_0x2e7a02(0x584,0x5a1)](this['viewerParameters']);}['getDataAtLonLat'](_0x865b8e,_0x22dcda){const {bounds:_0x3eb660,width:_0x3de831,height:_0x4e75f2,u:_0x2a0027,v:_0x5c422b,speed:_0x44ba8c}=this[_0x2f75f3(0x4cb,0x45e)];function _0xf5b62f(_0x40ddfd,_0x4afa9c){return _0x5c5aa9(_0x40ddfd-0x483,_0x4afa9c);}const {flipY:_0x31dd8f}=this['options'];if(_0x865b8e<_0x3eb660[_0xf5b62f(0x54b,0x5b9)]||_0x865b8e>_0x3eb660['east']||_0x22dcda<_0x3eb660[_0xf5b62f(0x4b6,0x4ef)]||_0x22dcda>_0x3eb660['north'])return null;const _0x35a0eb=(_0x865b8e-_0x3eb660['west'])/(_0x3eb660['east']-_0x3eb660['west'])*(_0x3de831-0x1);let _0x779151=(_0x22dcda-_0x3eb660[_0x2f75f3(0x4b1,0x47f)])/(_0x3eb660['north']-_0x3eb660[_0x2f75f3(0x3f1,0x47f)])*(_0x4e75f2-0x1);_0x31dd8f&&(_0x779151=_0x4e75f2-0x1-_0x779151);const _0x4ca80d=Math[_0xf5b62f(0x443,0x428)](_0x35a0eb),_0x4dd3c8=Math['floor'](_0x779151),_0x2921f6=Math['floor'](_0x35a0eb),_0x2961a6=Math['min'](_0x2921f6+0x1,_0x3de831-0x1),_0x13bb62=Math['floor'](_0x779151),_0x1efeda=Math[_0x2f75f3(0x511,0x49d)](_0x13bb62+0x1,_0x4e75f2-0x1),_0x40c5f7=_0x35a0eb-_0x2921f6,_0x500f7f=_0x779151-_0x13bb62,_0x16b34e=_0x4dd3c8*_0x3de831+_0x4ca80d,_0x1f4917=_0x13bb62*_0x3de831+_0x2921f6,_0x4592f7=_0x13bb62*_0x3de831+_0x2961a6,_0x457ff8=_0x1efeda*_0x3de831+_0x2921f6,_0x2894d6=_0x1efeda*_0x3de831+_0x2961a6,_0x2bca4f=_0x2a0027['array'][_0x1f4917],_0x3a8c69=_0x2a0027[_0xf5b62f(0x49f,0x503)][_0x4592f7],_0x30b70c=_0x2a0027['array'][_0x457ff8],_0x102cd1=_0x2a0027['array'][_0x2894d6],_0x1e1c1a=(0x1-_0x40c5f7)*(0x1-_0x500f7f)*_0x2bca4f+_0x40c5f7*(0x1-_0x500f7f)*_0x3a8c69+(0x1-_0x40c5f7)*_0x500f7f*_0x30b70c+_0x40c5f7*_0x500f7f*_0x102cd1;function _0x2f75f3(_0x3d0d74,_0x4990c3){return _0x5c5aa9(_0x4990c3-0x44c,_0x3d0d74);}const _0x16c782=_0x5c422b['array'][_0x1f4917],_0x246bed=_0x5c422b['array'][_0x4592f7],_0x1a6672=_0x5c422b['array'][_0x457ff8],_0x368b6d=_0x5c422b['array'][_0x2894d6],_0x1d3af8=(0x1-_0x40c5f7)*(0x1-_0x500f7f)*_0x16c782+_0x40c5f7*(0x1-_0x500f7f)*_0x246bed+(0x1-_0x40c5f7)*_0x500f7f*_0x1a6672+_0x40c5f7*_0x500f7f*_0x368b6d,_0x144d07=Math['sqrt'](_0x1e1c1a*_0x1e1c1a+_0x1d3af8*_0x1d3af8),_0x25f08b={};_0x25f08b['u']=_0x2a0027['array'][_0x16b34e],_0x25f08b['v']=_0x5c422b['array'][_0x16b34e],_0x25f08b['speed']=_0x44ba8c[_0xf5b62f(0x49f,0x4e5)][_0x16b34e];const _0x4fe27c={};_0x4fe27c['u']=_0x1e1c1a,_0x4fe27c['v']=_0x1d3af8,_0x4fe27c['speed']=_0x144d07;const _0x35ed0b={};return _0x35ed0b['original']=_0x25f08b,_0x35ed0b['interpolated']=_0x4fe27c,_0x35ed0b;}}function _0x5c5aa9(_0x32b06e,_0x44facc){return _0x4ca7(_0x32b06e- -0x238,_0x44facc);}mars3d__namespace['LayerUtil'][_0x5c5aa9(-0x4,0x6f)]('wind',WindLayer),mars3d__namespace[_0x5c5aa9(0xb5,0x101)][_0x5c5aa9(-0x34,0x43)]=WindLayer;class CanvasParticle{constructor(){this[_0x3ce7d1(-0x8f,-0x34)]=null,this['lat']=null;function _0x26f9c7(_0x1506b1,_0x24faad){return _0x22e09d(_0x1506b1-0x483,_0x24faad);}this[_0x26f9c7(0x5f2,0x612)]=null,this['tlat']=null,this['age']=null;function _0x3ce7d1(_0x59b4f9,_0xc89ffc){return _0x22e09d(_0xc89ffc- -0x181,_0x59b4f9);}this['speed']=null;}['destroy'](){for(const _0x1c4956 in this){delete this[_0x1c4956];}}}class CanvasWindField{constructor(_0x10c055){function _0x1cf79c(_0x53395a,_0x26c395){return _0x22e09d(_0x26c395-0x1a5,_0x53395a);}this[_0x1cf79c(0x2a0,0x32c)](_0x10c055);}get[_0x22e09d(0x186,0x133)](){function _0x3b0040(_0x91f5d7,_0xf0855d){return _0x5c5aa9(_0x91f5d7-0x5b,_0xf0855d);}return this[_0x3b0040(0x11f,0x134)];}set['speedRate'](_0x35bf76){this[_0xa06528(0x422,0x41e)]=(0x64-(_0x35bf76>0x63?0x63:_0x35bf76))*0x64;function _0xa06528(_0x284392,_0x1bbc68){return _0x5c5aa9(_0x1bbc68-0x35a,_0x284392);}function _0x56619c(_0x29121f,_0x39fd01){return _0x22e09d(_0x39fd01- -0xfc,_0x29121f);}this[_0x56619c(0x41,0x6e)]=[(this[_0xa06528(0x416,0x3ae)]-this['xmin'])/this['_speedRate'],(this['ymax']-this[_0x56619c(0x106,0xf4)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0x7bff5){this['_maxAge']=_0x7bff5;}['setOptions'](_0x32717c){function _0xbb2123(_0x2e0db6,_0x5d4a30){return _0x22e09d(_0x2e0db6-0x3d7,_0x5d4a30);}this['options']=_0x32717c,this['maxAge']=_0x32717c[_0xbb2123(0x5a2,0x62a)]||0x78,this[_0xbb2123(0x55d,0x568)]=_0x32717c['speedRate']||0x32,this['particles']=[];function _0xebddc2(_0x315f24,_0x538617){return _0x5c5aa9(_0x315f24-0x5b6,_0x538617);}const _0x57cb21=_0x32717c['particlesNumber']||0x1000;for(let _0x52f0a2=0x0;_0x52f0a2<_0x57cb21;_0x52f0a2++){const _0x28cead=this['_randomParticle'](new CanvasParticle());this[_0xebddc2(0x63d,0x651)]['push'](_0x28cead);}}['setDate'](_0x28c079){this['rows']=_0x28c079['rows'],this['cols']=_0x28c079[_0xf03cc0(0x5c3,0x544)],this['xmin']=_0x28c079[_0xf03cc0(0x501,0x4e6)],this['xmax']=_0x28c079['xmax'],this[_0xf03cc0(0x583,0x5aa)]=_0x28c079['ymin'],this['ymax']=_0x28c079['ymax'],this['grid']=[];const _0x45b7ab=_0x28c079['udata'];function _0xf03cc0(_0x3b9ada,_0x34c27d){return _0x5c5aa9(_0x3b9ada-0x4f3,_0x34c27d);}const _0x4647ca=_0x28c079['vdata'];let _0x47393a=![];_0x45b7ab[_0xf03cc0(0x4c6,0x4ce)]===this['rows']&&_0x45b7ab[0x0]['length']===this[_0xf03cc0(0x5c3,0x5f3)]&&(_0x47393a=!![]);let _0x26d24b=0x0,_0x5470fe=null,_0x20d175=null;function _0x759375(_0x43d20e,_0x4fa863){return _0x22e09d(_0x43d20e- -0xf3,_0x4fa863);}for(let _0x594984=0x0;_0x594984<this['rows'];_0x594984++){_0x5470fe=[];for(let _0x48853e=0x0;_0x48853e<this['cols'];_0x48853e++,_0x26d24b++){_0x47393a?_0x20d175=this[_0xf03cc0(0x4b0,0x489)](_0x45b7ab[_0x594984][_0x48853e],_0x4647ca[_0x594984][_0x48853e]):_0x20d175=this['_calcUV'](_0x45b7ab[_0x26d24b],_0x4647ca[_0x26d24b]),_0x5470fe[_0xf03cc0(0x597,0x5bb)](_0x20d175);}this['grid'][_0xf03cc0(0x597,0x614)](_0x5470fe);}!this['options']['flipY']&&this[_0xf03cc0(0x52a,0x508)][_0x759375(0x90,0x107)]();}['clear'](){delete this['rows'],delete this['cols'],delete this[_0x241e72(0x2bf,0x287)];function _0x241e72(_0x337f9f,_0xe414d2){return _0x5c5aa9(_0x337f9f-0x2b1,_0xe414d2);}delete this[_0x241e72(0x305,0x34b)],delete this[_0x241e72(0x341,0x352)],delete this[_0x3a8c17(-0x58,0x17)],delete this['grid'];function _0x3a8c17(_0x5bdc90,_0x5da171){return _0x22e09d(_0x5bdc90- -0x240,_0x5da171);}delete this['particles'];}[_0x5c5aa9(0x6c,0x9c)](_0x2dc3b9,_0x300f54){const _0x1c9a0e=(_0x2dc3b9-this['xmin'])/(this[_0x501fbc(0x400,0x407)]-this[_0x30bb2f(0x6a,0xf3)])*(this[_0x501fbc(0x498,0x483)]-0x1);function _0x501fbc(_0x4e82ec,_0x4cca7e){return _0x22e09d(_0x4cca7e-0x253,_0x4e82ec);}const _0x1dd2f2=(this['ymax']-_0x300f54)/(this[_0x501fbc(0x42b,0x43b)]-this['ymin'])*(this['rows']-0x1);function _0x30bb2f(_0x306f63,_0x3d11fd){return _0x22e09d(_0x306f63- -0x104,_0x3d11fd);}return[_0x1c9a0e,_0x1dd2f2];}[_0x5c5aa9(0x29,0x8c)](_0x4fdc8f,_0x22fa04){if(_0x4fdc8f<0x0||_0x4fdc8f>=this['cols']||_0x22fa04>=this['rows'])return[0x0,0x0,0x0];const _0x56fb11=Math['floor'](_0x4fdc8f),_0x532e52=Math[_0x5826cc(-0x1b9,-0x13f)](_0x22fa04);if(_0x56fb11===_0x4fdc8f&&_0x532e52===_0x22fa04)return this[_0x5826cc(-0x142,-0x18e)][_0x22fa04][_0x4fdc8f];const _0x4dab3f=_0x56fb11+0x1,_0x248f2c=_0x532e52+0x1,_0xd8f5e=this[_0x2df9b9(0x53a,0x5a0)](_0x56fb11,_0x532e52),_0xbad532=this['getUVByXY'](_0x4dab3f,_0x532e52);function _0x2df9b9(_0x3b3184,_0x4995d0){return _0x5c5aa9(_0x3b3184-0x511,_0x4995d0);}const _0x12edc3=this[_0x2df9b9(0x53a,0x4d0)](_0x56fb11,_0x248f2c),_0x3cb557=this['getUVByXY'](_0x4dab3f,_0x248f2c);let _0x44e3a9=null;function _0x5826cc(_0x5a11a8,_0x436514){return _0x5c5aa9(_0x5a11a8- -0x179,_0x436514);}try{_0x44e3a9=this['_bilinearInterpolation'](_0x4fdc8f-_0x56fb11,_0x22fa04-_0x532e52,_0xd8f5e,_0xbad532,_0x12edc3,_0x3cb557);}catch(_0x130ed5){console['log'](_0x4fdc8f,_0x22fa04);}return _0x44e3a9;}[_0x5c5aa9(0x11,0x48)](_0x4bab44,_0x466861,_0x46a181,_0x53bd67,_0x5902bd,_0xb7a670){const _0x4d651c=0x1-_0x4bab44,_0x10a942=0x1-_0x466861,_0x1def92=_0x4d651c*_0x10a942,_0x46e7ac=_0x4bab44*_0x10a942,_0x2acfbc=_0x4d651c*_0x466861,_0x2a90a3=_0x4bab44*_0x466861,_0x5a9cc7=_0x46a181[0x0]*_0x1def92+_0x53bd67[0x0]*_0x46e7ac+_0x5902bd[0x0]*_0x2acfbc+_0xb7a670[0x0]*_0x2a90a3,_0x251008=_0x46a181[0x1]*_0x1def92+_0x53bd67[0x1]*_0x46e7ac+_0x5902bd[0x1]*_0x2acfbc+_0xb7a670[0x1]*_0x2a90a3;return this['_calcUV'](_0x5a9cc7,_0x251008);}[_0x22e09d(0x11d,0x11c)](_0x279d02,_0x6dbaab){function _0x33e53a(_0x45e2c4,_0x431166){return _0x22e09d(_0x45e2c4-0x1f1,_0x431166);}return[+_0x279d02,+_0x6dbaab,Math[_0x33e53a(0x3fd,0x410)](_0x279d02*_0x279d02+_0x6dbaab*_0x6dbaab)];}[_0x5c5aa9(-0x27,0x28)](_0x272d03,_0x638c9a){function _0x35a930(_0x4d6abf,_0x3dbc2f){return _0x5c5aa9(_0x4d6abf-0x5fe,_0x3dbc2f);}if(!this['isInExtent'](_0x272d03,_0x638c9a))return null;const _0xed130b=this[_0x35a930(0x66a,0x6d2)](_0x272d03,_0x638c9a),_0x2c317e=this['getUVByXY'](_0xed130b[0x0],_0xed130b[0x1]);return _0x2c317e;}[_0x22e09d(0x12f,0x162)](_0x2acff1,_0x47bd95){function _0x2cc275(_0x5f3020,_0xe81d3b){return _0x5c5aa9(_0x5f3020-0x49c,_0xe81d3b);}function _0x5d482b(_0x186431,_0x359fa3){return _0x22e09d(_0x359fa3-0x3a5,_0x186431);}return _0x2acff1>=this['xmin']&&_0x2acff1<=this[_0x2cc275(0x4f0,0x536)]&&_0x47bd95>=this[_0x5d482b(0x50f,0x595)]&&_0x47bd95<=this[_0x2cc275(0x524,0x56f)]?!![]:![];}[_0x22e09d(0x20b,0x25a)](){function _0x2a4f78(_0x174f24,_0x1b463e){return _0x5c5aa9(_0x1b463e-0x3fd,_0x174f24);}const _0x3ef23f=fRandomByfloat(this['xmin'],this['xmax']),_0x2a8268=fRandomByfloat(this[_0x2a4f78(0x440,0x48d)],this['ymax']),_0x125827={};return _0x125827['lat']=_0x2a8268,_0x125827['lng']=_0x3ef23f,_0x125827;}[_0x5c5aa9(-0x39,-0xc5)](){function _0x9c6d4e(_0x3462ca,_0x4f1f9d){return _0x22e09d(_0x3462ca-0x263,_0x4f1f9d);}let _0x3dd9b8,_0x39f7bc,_0x7206e1;for(let _0x5524ba=0x0,_0x330741=this[_0x1c1e5c(0x578,0x5c0)]['length'];_0x5524ba<_0x330741;_0x5524ba++){let _0x243dcf=this[_0x1c1e5c(0x578,0x5eb)][_0x5524ba];_0x243dcf['age']<=0x0&&(_0x243dcf=this[_0x1c1e5c(0x4d2,0x540)](_0x243dcf));if(_0x243dcf['age']>0x0){const _0x542e36=_0x243dcf['tlng'],_0x37ecdd=_0x243dcf['tlat'];_0x7206e1=this['getUVByPoint'](_0x542e36,_0x37ecdd),_0x7206e1?(_0x3dd9b8=_0x542e36+this['_calc_speedRate'][0x0]*_0x7206e1[0x0],_0x39f7bc=_0x37ecdd+this['_calc_speedRate'][0x1]*_0x7206e1[0x1],_0x243dcf['lng']=_0x542e36,_0x243dcf[_0x1c1e5c(0x4b6,0x521)]=_0x37ecdd,_0x243dcf[_0x9c6d4e(0x3d2,0x36b)]=_0x3dd9b8,_0x243dcf['tlat']=_0x39f7bc,_0x243dcf[_0x9c6d4e(0x462,0x4c7)]=_0x7206e1[0x2],_0x243dcf['age']--):_0x243dcf[_0x1c1e5c(0x53b,0x5c5)]=0x0;}}function _0x1c1e5c(_0x244367,_0x1302eb){return _0x5c5aa9(_0x244367-0x4f1,_0x1302eb);}return this['particles'];}[_0x5c5aa9(-0x1f,-0x60)](_0x2e4678){let _0x36e95b,_0x262b96;for(let _0x39c581=0x0;_0x39c581<0x1e;_0x39c581++){_0x36e95b=this['getRandomLatLng'](),_0x262b96=this['getUVByPoint'](_0x36e95b['lng'],_0x36e95b[_0xeb6826(0x2e2,0x331)]);if(_0x262b96&&_0x262b96[0x2]>0x0)break;}if(!_0x262b96)return _0x2e4678;const _0x38c348=_0x36e95b[_0x4dbe8b(0xf6,0x152)]+this['_calc_speedRate'][0x0]*_0x262b96[0x0];function _0xeb6826(_0x953bf6,_0x40947b){return _0x22e09d(_0x40947b-0x20c,_0x953bf6);}const _0x33c822=_0x36e95b['lat']+this['_calc_speedRate'][0x1]*_0x262b96[0x1];_0x2e4678[_0x4dbe8b(0xf6,0x76)]=_0x36e95b[_0xeb6826(0x396,0x359)],_0x2e4678['lat']=_0x36e95b[_0x4dbe8b(0xce,0x125)],_0x2e4678[_0x4dbe8b(0x118,0xd3)]=_0x38c348,_0x2e4678[_0x4dbe8b(0x1d4,0x1bc)]=_0x33c822,_0x2e4678['age']=Math[_0xeb6826(0x3e6,0x3e0)](0xa+Math[_0x4dbe8b(0x12a,0xb9)]()*this['maxAge']),_0x2e4678['speed']=_0x262b96[0x2];function _0x4dbe8b(_0x48478f,_0xd5a674){return _0x5c5aa9(_0x48478f-0x109,_0xd5a674);}return _0x2e4678;}['destroy'](){for(const _0x2ed2f1 in this){delete this[_0x2ed2f1];}}}function fRandomByfloat(_0x3ca9e3,_0x19eee8){return _0x3ca9e3+Math['random']()*(_0x19eee8-_0x3ca9e3);}const Cesium=mars3d__namespace[_0x5c5aa9(0x4e,0x84)],BaseLayer=mars3d__namespace[_0x22e09d(0x215,0x263)][_0x5c5aa9(0x97,0x93)];class CanvasWindLayer extends BaseLayer{constructor(_0x273e3d={}){function _0x588f39(_0x44d7bf,_0x4ebea0){return _0x22e09d(_0x44d7bf-0x320,_0x4ebea0);}super(_0x273e3d),this['_setOptionsHook'](_0x273e3d),this['canvas']=null,_0x273e3d[_0x588f39(0x521,0x4ca)]&&_0x273e3d['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x273e3d));}[_0x22e09d(0x1d3,0x178)](_0x29921f,_0xbe0352){this[_0x5ca69d(0x392,0x329)]=0x3e8/(_0x29921f[_0x5924e0(0x60b,0x63d)]||0xa);function _0x5924e0(_0x573bc7,_0x4d3573){return _0x22e09d(_0x4d3573-0x433,_0x573bc7);}this[_0x5ca69d(0x361,0x301)]=this['options']['pointerEvents']??![];function _0x5ca69d(_0x27e558,_0x18dd05){return _0x22e09d(_0x18dd05-0x14f,_0x27e558);}this[_0x5924e0(0x6cd,0x64b)]=_0x29921f['color']||'#ffffff',this['lineWidth']=_0x29921f[_0x5ca69d(0x318,0x2ea)]||0x1,this['fixedHeight']=_0x29921f['fixedHeight']??0x0,this['flipY']=_0x29921f['flipY']??![],this[_0x5924e0(0x5ab,0x5f0)]&&this['windField'][_0x5924e0(0x550,0x5ba)](_0x29921f);}get['layer'](){function _0x1969e0(_0x336b85,_0x50b7b3){return _0x22e09d(_0x50b7b3-0xfd,_0x336b85);}return this[_0x1969e0(0x326,0x302)];}get[_0x22e09d(0x17a,0x196)](){function _0x374553(_0x3e0e39,_0x2aafef){return _0x5c5aa9(_0x2aafef-0x257,_0x3e0e39);}return this['_map']['scene']['canvas'][_0x374553(0x299,0x2a0)];}get['canvasHeight'](){function _0x3cf427(_0x126164,_0x4d79f5){return _0x5c5aa9(_0x4d79f5- -0x9d,_0x126164);}function _0x399a0d(_0x150d68,_0x5aa602){return _0x5c5aa9(_0x150d68-0x449,_0x5aa602);}return this['_map'][_0x399a0d(0x43f,0x4a4)][_0x399a0d(0x4ee,0x53d)][_0x3cf427(-0xf2,-0x9b)];}get['pointerEvents'](){return this['_pointerEvents'];}set['pointerEvents'](_0x4a3cf9){function _0x313260(_0x37061d,_0x373b73){return _0x5c5aa9(_0x37061d-0x11f,_0x373b73);}this['_pointerEvents']=_0x4a3cf9;if(!this['canvas'])return;function _0x564115(_0x3e5096,_0x2f779e){return _0x22e09d(_0x3e5096-0x240,_0x2f779e);}_0x4a3cf9?this[_0x564115(0x445,0x4a7)]['style'][_0x313260(0x1ae,0x200)]='all':this['canvas'][_0x564115(0x3d0,0x454)][_0x564115(0x42f,0x493)]=_0x564115(0x3f9,0x401);}get[_0x5c5aa9(0x1,0x65)](){return this['options']['particlesNumber'];}set[_0x22e09d(0x161,0x16b)](_0x20097c){function _0x4ba63c(_0x4e5ffa,_0xc71c74){return _0x22e09d(_0x4e5ffa- -0xca,_0xc71c74);}function _0x33662b(_0x1a8d05,_0x3652eb){return _0x5c5aa9(_0x1a8d05-0x2bd,_0x3652eb);}this['options'][_0x33662b(0x2be,0x34c)]=_0x20097c,clearTimeout(this[_0x4ba63c(0x134,0x181)]),this[_0x4ba63c(0x134,0xc6)]=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0xceabca(_0x5d31a5,_0x2fb440){return _0x5c5aa9(_0x5d31a5-0x17b,_0x2fb440);}return this['options'][_0xceabca(0x1a1,0x19d)];}set['speedRate'](_0x19ff9d){this[_0x914ad1(0xad,0x115)]['speedRate']=_0x19ff9d;function _0x914ad1(_0x5a2b30,_0x3f46a8){return _0x22e09d(_0x5a2b30- -0x11b,_0x3f46a8);}function _0x317e19(_0x256cd0,_0x4cc0f2){return _0x22e09d(_0x256cd0-0x473,_0x4cc0f2);}this[_0x317e19(0x630,0x68d)]&&(this['windField'][_0x317e19(0x5f9,0x64e)]=_0x19ff9d);}get[_0x22e09d(0x1cb,0x1e8)](){function _0xd2fc0e(_0x2b01b8,_0x3692b6){return _0x22e09d(_0x3692b6-0x40a,_0x2b01b8);}return this[_0xd2fc0e(0x61f,0x5d2)]['maxAge'];}set['maxAge'](_0x425e4e){function _0x5ea721(_0x36ac6b,_0x561698){return _0x5c5aa9(_0x36ac6b-0xec,_0x561698);}this['options']['maxAge']=_0x425e4e,this['windField']&&(this[_0x5ea721(0x149,0xfb)]['maxAge']=_0x425e4e);}get['data'](){return this['windData'];}set[_0x5c5aa9(-0x47,0x43)](_0x2a82eb){this['setData'](_0x2a82eb);}get['rectangle'](){let _0x14f04b=this['windData']['xmin'],_0x37be95=this['windData'][_0x32d058(0xa3,0xb6)],_0x346af7=this[_0x48ff17(0x33c,0x2f8)][_0x32d058(0xae,0xf2)],_0x558228=this['windData']['ymax'];function _0x48ff17(_0x4fa7b8,_0x55c4ee){return _0x5c5aa9(_0x55c4ee-0x2e6,_0x4fa7b8);}function _0x32d058(_0x215df3,_0x3fe251){return _0x22e09d(_0x3fe251- -0xfe,_0x215df3);}return _0x37be95>=0x167&&_0x14f04b===0x0&&(_0x14f04b=-0xb4,_0x37be95=0xb4),_0x14f04b=Math[_0x32d058(0x55,0xc6)](_0x14f04b,-0xb4),_0x37be95=Math[_0x48ff17(0x3a5,0x337)](_0x37be95,0xb4),_0x346af7=Math[_0x48ff17(0x30c,0x34a)](_0x346af7,-0x5a),_0x558228=Math['min'](_0x558228,0x5a),Cesium['Rectangle']['fromDegrees'](_0x14f04b,_0x346af7,_0x37be95,_0x558228);}[_0x22e09d(0x11a,0x14f)](_0x38edbf){function _0x495272(_0x3322d1,_0x125fbc){return _0x5c5aa9(_0x125fbc-0x42c,_0x3322d1);}function _0x6e5ccc(_0x1542ab,_0x5a72b5){return _0x5c5aa9(_0x1542ab- -0x1a7,_0x5a72b5);}_0x38edbf?this['_addedHook']():(this['windData']&&(this['options'][_0x6e5ccc(-0x1ee,-0x168)]=this[_0x495272(0x3b5,0x43e)]),this[_0x495272(0x3ff,0x460)]());}['_mountedHook'](){function _0x556280(_0x2487e7,_0x15fa31){return _0x5c5aa9(_0x15fa31-0x320,_0x2487e7);}this['options']['worker']?this[_0x556280(0x3f1,0x398)]():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this['_createCanvas']();const _0x17875d={};function _0x5cf819(_0x55a1b4,_0xdd7b9){return _0x22e09d(_0xdd7b9-0x3c,_0x55a1b4);}_0x17875d['willReadFrequently']=!![],this['canvasContext']=this['canvas']['getContext']('2d',_0x17875d);function _0x46c151(_0x5470ce,_0x582066){return _0x5c5aa9(_0x582066-0x242,_0x5470ce);}this['bindEvent'](),this[_0x46c151(0x299,0x2aa)][_0x46c151(0x1b3,0x1fb)]&&this[_0x5cf819(0x259,0x1f8)](this['options'][_0x46c151(0x24e,0x1fb)]);}['_removedHook'](){this['clear'](),this['unbindEvent']();function _0x172848(_0x203708,_0x593e3e){return _0x22e09d(_0x203708-0x421,_0x593e3e);}function _0x3ce664(_0x29c493,_0x21ed6a){return _0x22e09d(_0x21ed6a-0xd0,_0x29c493);}this['canvas']&&(this[_0x172848(0x543,0x582)][_0x3ce664(0x367,0x2ed)][_0x3ce664(0x357,0x2ee)](this[_0x172848(0x626,0x605)]),delete this[_0x172848(0x626,0x666)]);}['_createCanvas'](){const _0x325dfe=mars3d__namespace['DomUtil']['create'](_0x25bd61(0x305,0x284),'mars3d-canvasWind',this['_map']['container']);function _0x33383f(_0x531de5,_0x177195){return _0x22e09d(_0x177195-0x3b0,_0x531de5);}_0x325dfe[_0x25bd61(0x290,0x319)]['position']=_0x33383f(0x518,0x51b),_0x325dfe[_0x25bd61(0x290,0x231)]['top']='0px';function _0x25bd61(_0x529591,_0x5595d7){return _0x22e09d(_0x529591-0x100,_0x5595d7);}return _0x325dfe['style'][_0x33383f(0x5cc,0x5dd)]='0px',_0x325dfe['style']['width']=this['_map'][_0x33383f(0x48b,0x506)][_0x33383f(0x5ca,0x5b5)][_0x33383f(0x5df,0x559)]+'px',_0x325dfe['style']['height']=this[_0x33383f(0x504,0x4d2)][_0x33383f(0x4ae,0x506)]['canvas'][_0x33383f(0x559,0x512)]+'px',_0x325dfe['style'][_0x25bd61(0x260,0x259)]=this[_0x33383f(0x5cf,0x562)]?_0x33383f(0x601,0x5d0):_0x33383f(0x59c,0x569),_0x325dfe['style'][_0x25bd61(0x2c6,0x268)]=this['options']['zIndex']??0x9,_0x325dfe['width']=this[_0x33383f(0x53f,0x4d2)][_0x33383f(0x4f4,0x506)]['canvas'][_0x33383f(0x513,0x559)],_0x325dfe['height']=this[_0x33383f(0x4b4,0x4d2)][_0x33383f(0x57e,0x506)][_0x33383f(0x533,0x5b5)][_0x33383f(0x517,0x512)],_0x325dfe;}[_0x22e09d(0x1f6,0x1d4)](){function _0x369999(_0x446f5c,_0x19385b){return _0x22e09d(_0x19385b-0x360,_0x446f5c);}function _0x3dab0e(_0x2b065c,_0x406c3d){return _0x5c5aa9(_0x2b065c- -0x101,_0x406c3d);}this['canvas']&&(this['canvas']['style']['width']=this['_map'][_0x3dab0e(-0x10b,-0x8f)][_0x3dab0e(-0x5c,-0xb7)][_0x369999(0x4a3,0x509)]+'px',this[_0x369999(0x569,0x565)][_0x369999(0x4e9,0x4f0)][_0x369999(0x519,0x582)]=this[_0x3dab0e(-0x13f,-0xe4)]['scene']['canvas'][_0x369999(0x514,0x4c2)]+'px',this['canvas']['width']=this['_map']['scene'][_0x3dab0e(-0x5c,-0x31)][_0x369999(0x49c,0x509)],this[_0x3dab0e(-0x5c,-0xbb)]['height']=this[_0x369999(0x4dd,0x482)]['scene']['canvas'][_0x3dab0e(-0xff,-0xba)]);}['bindEvent'](){const _0x22d4e3=this;let _0x532f01=Date[_0x1ca465(0x373,0x336)]();(function _0x4b1b15(){function _0x1172ac(_0x4c35b4,_0x27758d){return _0x1ca465(_0x27758d,_0x4c35b4- -0x2a9);}if(_0x22d4e3['isDestroy'])return;_0x22d4e3[_0x1172ac(0x18d,0x1c2)]=window[_0x25dfc6(0x69b,0x639)](_0x4b1b15);function _0x25dfc6(_0x3d5980,_0x1e936e){return _0x1ca465(_0x3d5980,_0x1e936e-0x290);}if(_0x22d4e3[_0x1172ac(0x111,0x135)]&&_0x22d4e3['windField']){const _0x24e4f2=Date[_0x25dfc6(0x61f,0x5c6)](),_0x2942e2=_0x24e4f2-_0x532f01;_0x2942e2>_0x22d4e3[_0x25dfc6(0x6f1,0x685)]&&(_0x532f01=_0x24e4f2-_0x2942e2%_0x22d4e3[_0x1172ac(0x14c,0x124)],_0x22d4e3['update']());}}(),window[_0x52c831(-0x1c,-0xa2)]('resize',this['resize']['bind'](this),![]));function _0x1ca465(_0xcbde5e,_0x51d1b1){return _0x5c5aa9(_0x51d1b1-0x37b,_0xcbde5e);}this['mouse_down']=![],this['mouse_move']=![];function _0x52c831(_0x9e3efb,_0x9129c9){return _0x5c5aa9(_0x9129c9- -0x171,_0x9e3efb);}this['options'][_0x52c831(-0xe6,-0xe0)]&&(this[_0x1ca465(0x35f,0x33d)]['on'](mars3d__namespace['EventType'][_0x1ca465(0x3fa,0x43a)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x52c831(-0x125,-0x1b3)],this[_0x1ca465(0x457,0x423)],this),this[_0x52c831(-0x1e1,-0x1af)]['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x52c831(-0x78,-0xf1)],this));}['unbindEvent'](){window['cancelAnimationFrame'](this['_animateFrame']),delete this['_animateFrame'];function _0xeb7c4b(_0x1839bd,_0xc99d4f){return _0x22e09d(_0x1839bd-0x2e1,_0xc99d4f);}window[_0x1c5d97(-0xd8,-0x141)](_0x1c5d97(-0x89,-0xae),this['resize']);function _0x1c5d97(_0x3db573,_0x27c308){return _0x5c5aa9(_0x3db573- -0x11f,_0x27c308);}this[_0x1c5d97(-0xb7,-0x143)][_0xeb7c4b(0x4d2,0x51d)]&&(this['_map'][_0x1c5d97(-0x144,-0x160)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map'][_0x1c5d97(-0x144,-0x12c)](mars3d__namespace[_0xeb7c4b(0x409,0x3c0)][_0xeb7c4b(0x3ff,0x3ca)],this[_0x1c5d97(-0x77,0xf)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace[_0xeb7c4b(0x409,0x3f3)]['mouseMove'],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x1afe9d){function _0x1a6eb2(_0x377b93,_0x6b3edb){return _0x5c5aa9(_0x377b93-0x44a,_0x6b3edb);}function _0x2edf04(_0x42227e,_0x3a5ed0){return _0x5c5aa9(_0x3a5ed0-0x2a4,_0x42227e);}clearTimeout(this[_0x1a6eb2(0x4bf,0x4c5)]);if(!this[_0x1a6eb2(0x489,0x509)]||!this[_0x2edf04(0x2fc,0x349)])return;this['canvas']['style'][_0x2edf04(0x3a8,0x370)]=_0x1a6eb2(0x4ec,0x52e),this[_0x2edf04(0x290,0x319)]=setTimeout(()=>{function _0x23de44(_0x1003d2,_0x416af1){return _0x1a6eb2(_0x1003d2- -0x183,_0x416af1);}if(!this['show'])return;this[_0x23de44(0x300,0x2a1)]();function _0x470277(_0x1a4a1f,_0xc38884){return _0x2edf04(_0x1a4a1f,_0xc38884- -0x36e);}this['canvas'][_0x470277(-0xec,-0x9a)]['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x2f3018){this[_0x233c18(0x1ce,0x214)]=!![],this['_map'][_0x38acb8(-0x16b,-0x15c)](mars3d__namespace['EventType'][_0x233c18(0x1c5,0x18d)],this['_onMouseMoveEvent'],this);function _0x233c18(_0x2ad197,_0x2bf2d1){return _0x5c5aa9(_0x2bf2d1-0x19e,_0x2ad197);}function _0x38acb8(_0x32360d,_0x5b7f1f){return _0x5c5aa9(_0x5b7f1f- -0x137,_0x32360d);}this[_0x233c18(0x179,0x160)]['on'](mars3d__namespace['EventType'][_0x233c18(0x1de,0x18d)],this[_0x233c18(0x2e0,0x261)],this);}[_0x5c5aa9(0xc3,0x82)](_0x2d571d){function _0x5a203a(_0x483c44,_0x56faa3){return _0x22e09d(_0x483c44-0x3c9,_0x56faa3);}function _0x70642(_0x205e77,_0x46b2ed){return _0x22e09d(_0x46b2ed- -0x11e,_0x205e77);}if(!this[_0x70642(0x52,0x81)]||!this['canvas'])return;this['mouse_down']&&(this[_0x5a203a(0x5ce,0x55b)][_0x70642(0x49,0x72)][_0x5a203a(0x5f5,0x5c7)]='hidden',this[_0x5a203a(0x526,0x4af)]=!![]);}['_onMouseUpEvent'](_0x24b3fe){if(!this['show']||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this['mouse_move']&&this['redraw']();function _0x400e8c(_0x104346,_0x535212){return _0x22e09d(_0x104346- -0x32,_0x535212);}function _0x11f442(_0x432c06,_0x5ee65a){return _0x22e09d(_0x432c06-0x435,_0x5ee65a);}this['canvas']['style']['visibility']='visible',this[_0x11f442(0x60b,0x68d)]=![],this[_0x11f442(0x592,0x5cf)]=![];}['setData'](_0x268db7){this['clear'](),this['windData']=_0x268db7,this['windField']['setDate'](_0x268db7);function _0x5b3fe3(_0x3da083,_0x3bd80c){return _0x5c5aa9(_0x3da083-0x5a7,_0x3bd80c);}this[_0x5b3fe3(0x5e0,0x55c)]();}[_0x22e09d(0x199,0x1cd)](){function _0x185b91(_0x352a29,_0x4ea3bc){return _0x22e09d(_0x352a29-0x32b,_0x4ea3bc);}function _0x4b4de7(_0x11d7ec,_0x907da7){return _0x5c5aa9(_0x11d7ec-0x587,_0x907da7);}if(!this[_0x185b91(0x4ca,0x50e)])return;this[_0x4b4de7(0x5e4,0x5d9)]['setOptions'](this['options']),this[_0x185b91(0x4cd,0x4dd)]();}['update'](){function _0xd60940(_0x698bb1,_0xa3446b){return _0x22e09d(_0x698bb1- -0xf7,_0xa3446b);}if(this[_0x21c1bd(0x2f0,0x36a)])return;function _0x21c1bd(_0x2a6461,_0x1b5a82){return _0x22e09d(_0x2a6461-0x1cc,_0x1b5a82);}this['_updateIng']=!![];if(this['worker'])this[_0x21c1bd(0x389,0x3b5)]['update']();else{const _0x47617f=this['windField'][_0x21c1bd(0x2f3,0x308)]();this[_0xd60940(0x119,0x8a)](_0x47617f);}this['_updateIng']=![];}['_drawLines'](_0x4e85cb){this[_0x24bf7f(-0x127,-0x11b)]=_0x4e85cb,this[_0x73ff6a(0x44b,0x45b)]['globalCompositeOperation']='destination-in',this[_0x73ff6a(0x4c2,0x45b)][_0x73ff6a(0x5b8,0x56e)](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']=_0x73ff6a(0x562,0x4fa);function _0x73ff6a(_0x109493,_0x5c9ebb){return _0x22e09d(_0x5c9ebb-0x345,_0x109493);}this['canvasContext']['globalAlpha']=0.9;const _0x45bac5=this['_map']['scene']['mode']!==Cesium[_0x24bf7f(-0x149,-0xef)]['SCENE3D'];function _0x24bf7f(_0x4df924,_0x275ffb){return _0x5c5aa9(_0x4df924- -0x144,_0x275ffb);}const _0x59b878=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x389623=0x0,_0x326565=_0x4e85cb[_0x73ff6a(0x3f5,0x478)];_0x389623<_0x326565;_0x389623++){const _0x4af296=_0x4e85cb[_0x389623],_0x1ab3e1=this['_tomap'](_0x4af296,_0x4af296['lng'],_0x4af296['lat'],_0x4af296[_0x24bf7f(-0x129,-0x127)]),_0x56ae46=this[_0x73ff6a(0x4f8,0x498)](_0x4af296,_0x4af296['tlng'],_0x4af296[_0x24bf7f(-0x79,-0x9a)],_0x4af296['talt']);if(!_0x1ab3e1||!_0x56ae46)continue;if(_0x45bac5&&Math[_0x24bf7f(-0x126,-0xd4)](_0x1ab3e1[0x0]-_0x56ae46[0x0])>=_0x59b878)continue;this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this[_0x24bf7f(-0x109,-0x96)],this[_0x73ff6a(0x426,0x45b)][_0x24bf7f(-0x95,-0xcc)]=this[_0x73ff6a(0x4a4,0x4df)]['getColor'](_0x4af296['speed']),this['canvasContext']['moveTo'](_0x1ab3e1[0x0],_0x1ab3e1[0x1]),this[_0x24bf7f(-0x18e,-0x139)][_0x73ff6a(0x48b,0x48f)](_0x56ae46[0x0],_0x56ae46[0x1]),this[_0x73ff6a(0x4ad,0x45b)]['stroke']();}else{this['canvasContext']['beginPath'](),this[_0x73ff6a(0x406,0x45b)][_0x24bf7f(-0x109,-0x16f)]=this[_0x24bf7f(-0x109,-0x88)],this['canvasContext'][_0x73ff6a(0x590,0x554)]=this['color'];for(let _0x8ebccd=0x0,_0x5e5a12=_0x4e85cb['length'];_0x8ebccd<_0x5e5a12;_0x8ebccd++){const _0x1d822d=_0x4e85cb[_0x8ebccd],_0x1562ef=this['_tomap'](_0x1d822d,_0x1d822d[_0x24bf7f(-0x157,-0xd8)],_0x1d822d['lat'],_0x1d822d[_0x24bf7f(-0x129,-0xea)]),_0x39a5f3=this[_0x73ff6a(0x4bb,0x498)](_0x1d822d,_0x1d822d[_0x24bf7f(-0x135,-0xf6)],_0x1d822d[_0x73ff6a(0x56a,0x570)],_0x1d822d[_0x73ff6a(0x509,0x4d1)]);if(!_0x1562ef||!_0x39a5f3)continue;if(_0x45bac5&&Math[_0x24bf7f(-0x126,-0xee)](_0x1562ef[0x0]-_0x39a5f3[0x0])>=_0x59b878)continue;this['canvasContext'][_0x24bf7f(-0x83,0x5)](_0x1562ef[0x0],_0x1562ef[0x1]),this['canvasContext']['lineTo'](_0x39a5f3[0x0],_0x39a5f3[0x1]);}this['canvasContext'][_0x73ff6a(0x556,0x50a)]();}}[_0x22e09d(0x153,0x18a)](_0x1fd93e,_0x3c905c,_0x2846f0,_0x481654){function _0x3252d5(_0x3f1256,_0x4dcd94){return _0x22e09d(_0x3f1256- -0x15e,_0x4dcd94);}const _0x22617d=Cesium['Cartesian3']['fromDegrees'](_0x3c905c,_0x2846f0,_0x481654??this['fixedHeight']);function _0x2e7e14(_0x31b4f0,_0x9e0dd5){return _0x5c5aa9(_0x31b4f0- -0x37,_0x9e0dd5);}const _0x469930=this[_0x3252d5(-0x3c,-0xac)]['scene'];if(_0x469930['mode']===Cesium['SceneMode'][_0x3252d5(0x80,0x10)]){const _0x291e1a=new Cesium['EllipsoidalOccluder'](_0x469930[_0x2e7e14(0x33,0x51)]['ellipsoid'],_0x469930[_0x3252d5(-0x4b,-0x3a)]['positionWC']),_0x3cdf5f=_0x291e1a['isPointVisible'](_0x22617d);if(!_0x3cdf5f)return _0x1fd93e[_0x2e7e14(0x13,0x98)]=0x0,null;}const _0x435538=mars3d__namespace['PointTrans'][_0x3252d5(0x24,0x4f)](this['_map']['scene'],_0x22617d);return _0x435538?[_0x435538['x'],_0x435538['y']]:null;}['clear'](){function _0x3028fe(_0x312bc2,_0x5c35ad){return _0x5c5aa9(_0x5c35ad-0xb8,_0x312bc2);}this[_0x2f2f87(-0x3d,-0x3)][_0x2f2f87(-0x97,-0xc3)]();function _0x2f2f87(_0x239154,_0x1def45){return _0x22e09d(_0x239154- -0x1fa,_0x1def45);}delete this[_0x3028fe(0xf2,0xca)];}['initWorker'](){this['worker']=new Worker(this['options'][_0x1fc76b(0x29e,0x289)]),this[_0x1fc76b(0x29e,0x25f)][_0x1fc76b(0x22e,0x2ab)]=_0x467bb4=>{function _0x57180c(_0x8a4835,_0x127eeb){return _0x1fc76b(_0x8a4835-0x20,_0x127eeb);}this['_drawLines'](_0x467bb4[_0x57180c(0x200,0x1b3)]['particles']),this['_updateIng2']=![];},this['windField']={'init':_0x59b56f=>{function _0x2a6f0f(_0x30feb1,_0x539fb1){return _0x4679c5(_0x30feb1-0x1c4,_0x539fb1);}function _0x4f5c81(_0x128dfe,_0x5a80c5){return _0x1fc76b(_0x128dfe- -0x395,_0x5a80c5);}const _0x512fc2={};_0x512fc2['type']=_0x2a6f0f(0x76,0x5c),_0x512fc2['options']=_0x59b56f,this['worker'][_0x4f5c81(-0xef,-0x174)](_0x512fc2);},'setOptions':_0x260c08=>{const _0x480621={};_0x480621['type']='setOptions',_0x480621['options']=_0x260c08,this['worker']['postMessage'](_0x480621);},'setDate':_0x2dc98e=>{function _0x45ca70(_0x39f45e,_0x16dc0b){return _0x4679c5(_0x16dc0b-0x42a,_0x39f45e);}const _0x49016e={};_0x49016e['type']=_0x45ca70(0x338,0x353);function _0xd2a733(_0x456d95,_0x353c39){return _0x1fc76b(_0x456d95- -0xa1,_0x353c39);}_0x49016e[_0x45ca70(0x2b4,0x25f)]=_0x2dc98e,this['worker']['postMessage'](_0x49016e);},'update':()=>{if(this['_updateIng2'])return;this[_0x257d9a(0x3a1,0x364)]=!![];const _0x21ff92={};function _0x257d9a(_0x4cad7d,_0x5c636c){return _0x1fc76b(_0x4cad7d-0x1b4,_0x5c636c);}function _0x1f71ce(_0x49431d,_0x2064f3){return _0x4679c5(_0x49431d-0x208,_0x2064f3);}_0x21ff92['type']=_0x1f71ce(0xc6,0xa7),this['worker']['postMessage'](_0x21ff92);},'clear':()=>{const _0x10be97={};function _0xbff14e(_0x944a99,_0x3cb6aa){return _0x4679c5(_0x944a99-0x70,_0x3cb6aa);}function _0x4df3bf(_0xc5ba12,_0x5eb9b6){return _0x1fc76b(_0xc5ba12- -0x167,_0x5eb9b6);}_0x10be97[_0xbff14e(-0x14b,-0x140)]=_0x4df3bf(0xc3,0x63),this[_0xbff14e(-0x9d,-0xf1)][_0x4df3bf(0x13f,0x167)](_0x10be97);}};function _0x4679c5(_0x2fb1a2,_0x53102c){return _0x22e09d(_0x2fb1a2- -0x2e4,_0x53102c);}function _0x1fc76b(_0x44f88e,_0x1732c3){return _0x5c5aa9(_0x44f88e-0x227,_0x1732c3);}this['windField']['init'](this[_0x1fc76b(0x28f,0x267)]);}}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x22e09d(0x159,0x13c)]=WindUtil;const _0xb99daf={};_0xb99daf[_0x5c5aa9(0x10,0x54)]=!![],Object['defineProperty'](exports,_0x5c5aa9(-0x14,-0xa2),_0xb99daf);
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.8.
|
|
3
|
+
"version": "3.8.15",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.8.
|
|
8
|
+
"mars3d": "~3.8.15"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|