mars3d-wind 3.11.4 → 3.11.6
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.11.
|
|
5
|
-
* 编译日期:2026-
|
|
4
|
+
* 版本信息:v3.11.6
|
|
5
|
+
* 编译日期:2026-08-08 17:03
|
|
6
6
|
* 版权所有:Copyright by http://mars3d.cn
|
|
7
7
|
* 使用单位:免费公开版 ,2026-02-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(_0x3dafe8,_0x26dfff){function _0x1a00d7(_0x531837,_0x366846){return _0x9e58(_0x531837-0x51,_0x366846);}const _0x78789c=_0x3dafe8();function _0x33661f(_0x2ce9d0,_0x3e1c2b){return _0x9e58(_0x3e1c2b-0x223,_0x2ce9d0);}while(!![]){try{const _0x1c48ce=-parseInt(_0x33661f(0x472,0x438))/0x1+-parseInt(_0x33661f(0x3ca,0x43a))/0x2+-parseInt(_0x1a00d7(0x292,0x2f8))/0x3+parseInt(_0x1a00d7(0x316,0x2dc))/0x4+parseInt(_0x33661f(0x4c9,0x448))/0x5*(-parseInt(_0x1a00d7(0x28d,0x27d))/0x6)+-parseInt(_0x33661f(0x464,0x496))/0x7+parseInt(_0x1a00d7(0x242,0x295))/0x8*(parseInt(_0x1a00d7(0x308,0x28f))/0x9);if(_0x1c48ce===_0x26dfff)break;else _0x78789c['push'](_0x78789c['shift']());}catch(_0x304fcb){_0x78789c['push'](_0x78789c['shift']());}}}(_0x4f7c,0xa20fb));function _interopNamespace(_0x33ff2b){if(_0x33ff2b&&_0x33ff2b[_0x2bfcb3(0x19e,0x16c)])return _0x33ff2b;var _0x8dd592=Object[_0x2bfcb3(0x1ac,0x156)](null);_0x33ff2b&&Object[_0xc9c77f(0x530,0x52e)](_0x33ff2b)[_0x2bfcb3(0x128,0x18c)](function(_0x4fc7ab){function _0x582826(_0x2770b0,_0xd8ee4d){return _0xc9c77f(_0x2770b0,_0xd8ee4d-0x6d);}if(_0x4fc7ab!==_0x582826(0x658,0x5e1)){var _0x6ca6e=Object['getOwnPropertyDescriptor'](_0x33ff2b,_0x4fc7ab);Object['defineProperty'](_0x8dd592,_0x4fc7ab,_0x6ca6e['get']?_0x6ca6e:{'enumerable':!![],'get':function(){return _0x33ff2b[_0x4fc7ab];}});}});function _0x2bfcb3(_0x39af6f,_0x15a957){return _0x9e58(_0x15a957- -0x144,_0x39af6f);}function _0xc9c77f(_0x56ec0f,_0x2bffcb){return _0x9e58(_0x2bffcb-0x334,_0x56ec0f);}return _0x8dd592['default']=_0x33ff2b,_0x8dd592;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0xf913b1,_0x1ecfca){const _0x2308b1=_0xf913b1*Math[_0x1ba0d8(0x341,0x3c0)](Cesium$2['Math']['toRadians'](_0x1ecfca));function _0x1ba0d8(_0x29593c,_0x2f0560){return _0x9e58(_0x2f0560-0x144,_0x29593c);}return _0x2308b1;}function getV(_0x644043,_0x264781){const _0x5b8857=_0x644043*Math['sin'](Cesium$2['Math']['toRadians'](_0x264781));return _0x5b8857;}function getSpeed(_0x509013,_0x1cd0ec){function _0x22988d(_0x546d81,_0x5e6d3b){return _0x9e58(_0x546d81- -0x1ba,_0x5e6d3b);}const _0x2c0f55=Math['sqrt'](Math['pow'](_0x509013,0x2)+Math[_0x22988d(0xa7,0xba)](_0x1cd0ec,0x2));return _0x2c0f55;}function getDirection(_0x313d7c,_0xd3f825){let _0x37de93=Cesium$2[_0x296118(0x4b0,0x4f0)][_0x4460ba(0x494,0x4c9)](Math['atan2'](_0xd3f825,_0x313d7c));_0x37de93+=_0x37de93<0x0?0x168:0x0;function _0x296118(_0x358b5f,_0x28a3c3){return _0x9e58(_0x358b5f-0x21b,_0x28a3c3);}function _0x4460ba(_0x395667,_0x126762){return _0x9e58(_0x126762-0x2eb,_0x395667);}return _0x37de93;}const _0x4b72f1={};function _0xaafa2(_0x57ad37,_0x52f3d8){return _0x9e58(_0x57ad37- -0xa0,_0x52f3d8);}function _0x8e8939(_0x5b10b1,_0x43ce30){return _0x9e58(_0x5b10b1- -0xc8,_0x43ce30);}_0x4b72f1['__proto__']=null,_0x4b72f1['getU']=getU,_0x4b72f1[_0x8e8939(0x20d,0x294)]=getV,_0x4b72f1[_0xaafa2(0x1d5,0x188)]=getSpeed,_0x4b72f1['getDirection']=getDirection;var WindUtil=_0x4b72f1;const version=_0xaafa2(0x1bf,0x13b),buildTime='2026-06-04\x2019:44';var 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='#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=_0xaafa2(0x13d,0x167);function _0x9e58(_0x51f9f4,_0xe879b6){const _0x4f7c6e=_0x4f7c();return _0x9e58=function(_0x9e5803,_0xe2dcb8){_0x9e5803=_0x9e5803-0x1d7;let _0x577a54=_0x4f7c6e[_0x9e5803];return _0x577a54;},_0x9e58(_0x51f9f4,_0xe879b6);}const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0xaafa2(0x206,0x1de)];class ShaderManager{static[_0x8e8939(0x1c5,0x22d)](){function _0x30e37f(_0x195606,_0x2a3967){return _0x8e8939(_0x2a3967-0x247,_0x195606);}const _0x2efdf6={};return _0x2efdf6[_0x30e37f(0x3fa,0x3b0)]=[calculateSpeedShader],new ShaderSource$1(_0x2efdf6);}static['getUpdatePositionShader'](){const _0x39597f={};function _0x22fa6a(_0x2f7851,_0x16f2b0){return _0xaafa2(_0x16f2b0- -0x20f,_0x2f7851);}return _0x39597f[_0x22fa6a(0x4,-0x7e)]=[updatePositionShader],new ShaderSource$1(_0x39597f);}static[_0xaafa2(0x14d,0x105)](){const _0x145e5b={};function _0x53f2f5(_0x4f0c1f,_0x4f3b10){return _0x8e8939(_0x4f3b10-0x11d,_0x4f0c1f);}return _0x145e5b[_0x53f2f5(0x246,0x286)]=[renderParticlesVertexShader],new ShaderSource$1(_0x145e5b);}static['getSegmentDrawFragmentShader'](){const _0x14980d={};function _0x547860(_0x138000,_0x5850cf){return _0x8e8939(_0x5850cf- -0x263,_0x138000);}return _0x14980d[_0x547860(-0x16a,-0xfa)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x14980d);}static[_0xaafa2(0x1d9,0x18d)](){const _0x2095db={};function _0x338cb8(_0x480053,_0x588aa0){return _0xaafa2(_0x480053-0x39e,_0x588aa0);}return _0x2095db[_0x338cb8(0x52f,0x4e0)]=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x2095db);}}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,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x43b143){this['commandType']=_0x43b143[_0x166f8d(-0xa3,-0x25)],this[_0x30d81c(0x470,0x40e)]=_0x43b143['geometry'],this[_0x166f8d(0x25,-0x44)]=_0x43b143['attributeLocations'],this[_0x166f8d(-0x116,-0xb7)]=_0x43b143['primitiveType'];function _0x30d81c(_0x1e7349,_0x5f2e49){return _0x8e8939(_0x5f2e49-0x27b,_0x1e7349);}this[_0x166f8d(0x38,-0x34)]=_0x43b143['uniformMap']||{},this['vertexShaderSource']=_0x43b143['vertexShaderSource'],this['fragmentShaderSource']=_0x43b143[_0x30d81c(0x3d1,0x3d3)];function _0x166f8d(_0x9cea5,_0x2dc8fb){return _0x8e8939(_0x2dc8fb- -0x1e7,_0x9cea5);}this['rawRenderState']=_0x43b143[_0x30d81c(0x3cc,0x398)],this['framebuffer']=_0x43b143['framebuffer'],this['outputTexture']=_0x43b143['outputTexture'],this['autoClear']=_0x43b143['autoClear']??![],this[_0x30d81c(0x468,0x444)]=_0x43b143['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this[_0x166f8d(-0xaa,-0x1f)]=undefined,this['isDynamic']=_0x43b143[_0x166f8d(0x5f,0x3e)]??(()=>!![]),this['autoClear']&&(this[_0x166f8d(-0x7b,-0x1f)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x166f8d(-0xc3,-0x58)],'pass':Pass$1[_0x30d81c(0x3db,0x3c9)]}));}['createCommand'](_0x1f968f){function _0x13bfa1(_0x275c27,_0x1d30fe){return _0x8e8939(_0x1d30fe- -0x2e5,_0x275c27);}function _0x3dcdf0(_0x4119ae,_0x5622ff){return _0xaafa2(_0x4119ae-0x2b3,_0x5622ff);}if(this['commandType']==='Draw'){const _0x4d7ded={};_0x4d7ded[_0x3dcdf0(0x4f1,0x4e5)]=_0x1f968f,_0x4d7ded['geometry']=this[_0x3dcdf0(0x46e,0x490)],_0x4d7ded[_0x3dcdf0(0x47e,0x48e)]=this['attributeLocations'],_0x4d7ded['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x3f88c7=VertexArray$1['fromGeometry'](_0x4d7ded),_0xcb50a8={};_0xcb50a8['context']=_0x1f968f,_0xcb50a8['vertexShaderSource']=this['vertexShaderSource'],_0xcb50a8['fragmentShaderSource']=this[_0x3dcdf0(0x433,0x4ad)],_0xcb50a8['attributeLocations']=this['attributeLocations'];const _0x155fe2=ShaderProgram['fromCache'](_0xcb50a8),_0x1b512e=RenderState['fromCache'](this[_0x3dcdf0(0x3f8,0x438)]),_0xc82b8e={};return _0xc82b8e[_0x13bfa1(-0x163,-0x13b)]=this,_0xc82b8e[_0x13bfa1(-0x10e,-0x14a)]=_0x3f88c7,_0xc82b8e[_0x13bfa1(-0x16d,-0x1b5)]=this['primitiveType'],_0xc82b8e['modelMatrix']=Matrix4['IDENTITY'],_0xc82b8e['renderState']=_0x1b512e,_0xc82b8e[_0x13bfa1(-0x237,-0x1cc)]=_0x155fe2,_0xc82b8e[_0x13bfa1(-0xff,-0x156)]=this['framebuffer'],_0xc82b8e['uniformMap']=this['uniformMap'],_0xc82b8e[_0x13bfa1(-0x1c4,-0x14b)]=Pass$1['OPAQUE'],new DrawCommand(_0xc82b8e);}else{if(this[_0x13bfa1(-0xe0,-0x123)]==='Compute'){const _0x4af377={};return _0x4af377[_0x13bfa1(-0x16d,-0x13b)]=this,_0x4af377['fragmentShaderSource']=this['fragmentShaderSource'],_0x4af377[_0x13bfa1(-0x154,-0x132)]=this['uniformMap'],_0x4af377['outputTexture']=this['outputTexture'],_0x4af377['persists']=!![],new ComputeCommand(_0x4af377);}else throw new Error(_0x13bfa1(-0x1ad,-0x172));}}[_0x8e8939(0x155,0x1bf)](_0x5d60f5,_0x42a6df){function _0x1e369c(_0x1e32ab,_0x49212e){return _0xaafa2(_0x49212e-0x1a2,_0x1e32ab);}function _0x2961bd(_0x20dffc,_0x54a93a){return _0xaafa2(_0x54a93a-0x110,_0x20dffc);}this['geometry']=_0x42a6df,defined(this[_0x1e369c(0x31b,0x3a2)])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x5d60f5,'geometry':this[_0x1e369c(0x353,0x35d)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x438285){function _0x3eb73c(_0xd52008,_0x3722b0){return _0xaafa2(_0xd52008- -0x1ce,_0x3722b0);}function _0x11abde(_0x39cfa3,_0x292c8b){return _0xaafa2(_0x39cfa3-0x10a,_0x292c8b);}if(!this['isDynamic']())return;if(!this['show']||!defined(_0x438285))return;!defined(this[_0x11abde(0x30a,0x328)])&&(this['commandToExecute']=this['createCommand'](_0x438285['context']));defined(this['preExecute'])&&this['preExecute']();if(!_0x438285[_0x11abde(0x34a,0x3b9)]){console[_0x3eb73c(-0x86,-0x11)](_0x11abde(0x29e,0x228));return;}defined(this['clearCommand'])&&_0x438285[_0x11abde(0x34a,0x305)]['push'](this['clearCommand']),defined(this[_0x11abde(0x30a,0x363)])&&_0x438285['commandList']['push'](this['commandToExecute']);}['isDestroyed'](){return![];}[_0x8e8939(0x209,0x217)](){function _0x2ad49a(_0x395af1,_0x2ac7b7){return _0xaafa2(_0x395af1-0x320,_0x2ac7b7);}function _0xdcc0de(_0x5ecf95,_0x301aa3){return _0xaafa2(_0x5ecf95- -0x30b,_0x301aa3);}if(defined(this[_0x2ad49a(0x520,0x573)])){var _0x11b343;(_0x11b343=this[_0x2ad49a(0x520,0x51d)][_0x2ad49a(0x461,0x448)])===null||_0x11b343===void 0x0||_0x11b343[_0x2ad49a(0x551,0x518)](),this['commandToExecute'][_0xdcc0de(-0x1ca,-0x1a7)]=undefined;}return destroyObject(this);}}function deepMerge(_0x1a46df,_0x2bf4e3){function _0x3ecbe1(_0x22b1ac,_0x514f4f){return _0xaafa2(_0x22b1ac- -0x23d,_0x514f4f);}if(!_0x1a46df)return _0x2bf4e3;function _0x1f9479(_0x3b896,_0xee38bd){return _0xaafa2(_0x3b896-0x20,_0xee38bd);}if(!_0x2bf4e3)return _0x1a46df;const _0x45616f={..._0x2bf4e3},_0x3f02f4=_0x45616f;for(const _0x499742 in _0x1a46df){if(Object['prototype'][_0x1f9479(0x224,0x19e)][_0x1f9479(0x1a4,0x200)](_0x1a46df,_0x499742)){const _0x27d2af=_0x1a46df[_0x499742],_0x1e7693=_0x2bf4e3[_0x499742];if(Array['isArray'](_0x27d2af)){_0x3f02f4[_0x499742]=_0x27d2af['slice']();continue;}if(_0x27d2af&&typeof _0x27d2af===_0x3ecbe1(-0xd2,-0x75)){_0x3f02f4[_0x499742]=deepMerge(_0x27d2af,_0x1e7693||{});continue;}_0x27d2af!==undefined&&(_0x3f02f4[_0x499742]=_0x27d2af);}}return _0x3f02f4;}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(_0x233adb,_0xd9b65a,_0x310498,_0x2d12f1,_0x530379){this['context']=_0x233adb,this[_0x4da2c4(0x158,0x124)]=_0x310498;function _0x57cc07(_0x20e2f5,_0x47bf1d){return _0xaafa2(_0x20e2f5-0x1c6,_0x47bf1d);}this['viewerParameters']=_0x2d12f1,this['windData']=_0xd9b65a,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0xe46203={};_0xe46203['scene']=_0x530379,_0xe46203[_0x4da2c4(0x16e,0x15b)]=0x1,_0xe46203[_0x4da2c4(0x64,0xb7)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0xe46203),this['initFrameRate']();function _0x4da2c4(_0x225f3e,_0xdbf40a){return _0xaafa2(_0xdbf40a- -0xd3,_0x225f3e);}this[_0x4da2c4(0x131,0x111)](),this['createParticlesTextures'](),this[_0x4da2c4(0xe5,0x146)]();}['initFrameRate'](){const _0xc5f24=()=>{function _0x50e196(_0x453581,_0x47f63c){return _0x9e58(_0x453581- -0x1c8,_0x47f63c);}function _0x97248f(_0xf10143,_0x203ab1){return _0x9e58(_0x203ab1-0x2d5,_0xf10143);}this[_0x50e196(0x11c,0x12c)]['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this[_0x50e196(0xc7,0x14e)]=0x3c/Math['max'](this[_0x97248f(0x582,0x580)],0x1));};_0xc5f24();const _0x23992a=setInterval(_0xc5f24,0x3e8),_0x3aa31d=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x23992a),_0x3aa31d();};}[_0xaafa2(0x1e4,0x176)](){function _0x5811f6(_0x49ffba,_0x1e7b4e){return _0xaafa2(_0x1e7b4e- -0xcf,_0x49ffba);}const _0x2e486a={};function _0x271cda(_0x1045b8,_0x1aca1a){return _0x8e8939(_0x1aca1a-0x29f,_0x1045b8);}_0x2e486a['minificationFilter']=TextureMinificationFilter$1['LINEAR'],_0x2e486a['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x594bdc={'context':this['context'],'width':this['windData']['width'],'height':this[_0x5811f6(0x161,0x149)]['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1[_0x271cda(0x48c,0x4c2)],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x2e486a)};this['windTextures']={'U':new Texture$1({..._0x594bdc,'source':{'arrayBufferView':new Float32Array(this[_0x5811f6(0x177,0x149)]['u'][_0x5811f6(0xda,0x114)])}}),'V':new Texture$1({..._0x594bdc,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x37841a={};function _0x36963e(_0x1604a7,_0x12daf1){return _0x8e8939(_0x12daf1-0x40a,_0x1604a7);}function _0x56842b(_0x523513,_0x1c1480){return _0xaafa2(_0x1c1480- -0xb9,_0x523513);}_0x37841a['minificationFilter']=TextureMinificationFilter$1[_0x36963e(0x586,0x5a6)],_0x37841a['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];const _0x152214={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x36963e(0x633,0x62d)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x56842b(0xf1,0x13e)][_0x36963e(0x526,0x5ac)]*this[_0x36963e(0x5c7,0x5d9)]['particlesTextureSize']*0x4)[_0x56842b(0x15c,0x174)](0x0)},'sampler':new Sampler$1(_0x37841a)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x152214),'currentParticlesPosition':new Texture$1(_0x152214),'nextParticlesPosition':new Texture$1(_0x152214),'postProcessingPosition':new Texture$1(_0x152214),'particlesSpeed':new Texture$1(_0x152214)};}['destroyParticlesTextures'](){function _0x36507c(_0x108485,_0x19295c){return _0xaafa2(_0x19295c- -0x25,_0x108485);}Object['values'](this['particlesTextures'])[_0x36507c(0x234,0x20b)](_0x3c0767=>_0x3c0767['destroy']());}['createComputingPrimitives'](){function _0x352ff2(_0x348b1c,_0x444aca){return _0x8e8939(_0x348b1c-0x317,_0x444aca);}function _0x35cc4d(_0x4c516e,_0x12868f){return _0x8e8939(_0x4c516e- -0xb5,_0x12868f);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0x35cc4d(0xf7,0x12c)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x352ff2(0x507,0x54f)]['u']['min'],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this['windData']['v'][_0x35cc4d(0x84,0x35)],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData']['speed'][_0x352ff2(0x450,0x4c4)],this['windData']['speed'][_0x352ff2(0x494,0x477)]),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{return(this['viewerParameters']['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this[_0x35cc4d(0x112,0x13a)],'dimension':()=>new Cartesian2$1(this['windData'][_0x352ff2(0x523,0x539)],this[_0x35cc4d(0x13b,0x181)]['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds']['west'],this['windData']['bounds'][_0x352ff2(0x539,0x4fe)]),'maximum':()=>new Cartesian2$1(this['windData']['bounds'][_0x352ff2(0x457,0x459)],this['windData']['bounds']['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x352ff2(0x48c,0x502)][_0x35cc4d(0xac,0x4a)],'preExecute':()=>{const _0x5ce4a7=this['particlesTextures'][_0x595845(0x183,0x1b1)];function _0x198ef2(_0x20e007,_0x7e728f){return _0x35cc4d(_0x20e007- -0x12a,_0x7e728f);}function _0x595845(_0x487b1c,_0x4b6175){return _0x35cc4d(_0x4b6175-0x11a,_0x487b1c);}this['particlesTextures']['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'],this['particlesTextures'][_0x595845(0x23d,0x1e8)]=this[_0x198ef2(-0x6a,-0x84)]['postProcessingPosition'],this[_0x198ef2(-0x6a,-0x48)]['postProcessingPosition']=_0x5ce4a7,this[_0x595845(0x1f1,0x1ea)]['calculateSpeed']['commandToExecute']&&(this[_0x198ef2(-0x5a,-0x98)]['calculateSpeed']['commandToExecute'][_0x198ef2(0x23,-0x16)]=this[_0x595845(0x21f,0x1da)][_0x198ef2(-0x7e,-0xf4)]);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':_0x35cc4d(0xba,0x4f),'uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this[_0x35cc4d(0xc0,0x87)][_0x352ff2(0x478,0x4ab)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x3b16e7(_0x2ef640,_0x367845){return _0x35cc4d(_0x2ef640-0x128,_0x367845);}function _0x3e692f(_0x2810d9,_0x3ad779){return _0x35cc4d(_0x2810d9-0x19d,_0x3ad779);}this['primitives']['updatePosition'][_0x3b16e7(0x24b,0x2b2)]&&(this[_0x3b16e7(0x1f8,0x1d2)][_0x3e692f(0x291,0x259)]['commandToExecute']['outputTexture']=this[_0x3e692f(0x25d,0x1f4)]['nextParticlesPosition']);},'isDynamic':()=>this['options'][_0x35cc4d(0x82,-0x6)]}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x35cc4d(0xc0,0x104)]['nextParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x352ff2(0x478,0x432)],'lonRange':()=>this['viewerParameters'][_0x352ff2(0x4bf,0x49f)],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0x352ff2(0x507,0x4fa)]['bounds']['west'],this[_0x35cc4d(0x13b,0x105)][_0x35cc4d(0xcc,0x99)]['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this[_0x352ff2(0x507,0x51c)]['bounds']['north']),'randomCoefficient':function(){function _0x124c2d(_0x16bfda,_0x58199f){return _0x35cc4d(_0x16bfda-0x304,_0x58199f);}return Math[_0x124c2d(0x453,0x4a3)]();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this[_0x35cc4d(0x11a,0x10b)]['dropRateBump'],'useViewerBounds':()=>this[_0x352ff2(0x4e6,0x47d)]['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x10694d(_0x442b57,_0x11600b){return _0x35cc4d(_0x11600b- -0x2e,_0x442b57);}function _0x47a89f(_0xc2fec3,_0x37d1fb){return _0x352ff2(_0x37d1fb- -0x375,_0xc2fec3);}this['primitives']['postProcessingPosition'][_0x10694d(0xf2,0xf5)]&&(this[_0x10694d(0xa9,0xa2)]['postProcessingPosition']['commandToExecute']['outputTexture']=this[_0x47a89f(0xdf,0x117)][_0x47a89f(0x12d,0x15b)]);},'isDynamic':()=>this['options'][_0x35cc4d(0x82,0x37)]})};}['reCreateWindTextures'](){function _0x580f6c(_0x3be9e5,_0x316793){return _0xaafa2(_0x3be9e5- -0xb2,_0x316793);}this[_0x34ea72(0x5c,0x7d)]['U']['destroy'](),this['windTextures']['V'][_0x34ea72(0xb9,0x12d)]();function _0x34ea72(_0x4b944d,_0x11049b){return _0x8e8939(_0x4b944d- -0x150,_0x11049b);}this['createWindTextures']();}[_0x8e8939(0x122,0x100)](_0x4c3c58){function _0x1445a9(_0xf7e247,_0x334383){return _0x8e8939(_0x334383-0x66,_0xf7e247);}this[_0x1445a9(0x21d,0x256)]=_0x4c3c58,this['reCreateWindTextures']();}['updateOptions'](_0x5ba7ac){const _0x2cd1cb=_0x5ba7ac[_0x5cbfe4(0x22d,0x224)]!==undefined&&_0x5ba7ac['flipY']!==this[_0x5ee0b0(0x1c4,0x202)]['flipY'];function _0x5cbfe4(_0x33f0ea,_0x3e3947){return _0x8e8939(_0x33f0ea-0xbd,_0x3e3947);}function _0x5ee0b0(_0x47ef38,_0x1212f0){return _0xaafa2(_0x1212f0-0xb,_0x47ef38);}this[_0x5ee0b0(0x207,0x202)]=deepMerge(_0x5ba7ac,this['options']),_0x2cd1cb&&this['reCreateWindTextures']();}[_0x8e8939(0x207,0x231)](_0x4cd85e){const {array:_0x4bd948}=_0x4cd85e;let {min:_0x1e9103,max:_0x1f1f54}=_0x4cd85e;const _0x2a3634=new Float32Array(_0x4bd948[_0x32d7ec(-0x76,-0x6c)]);function _0x407765(_0x2cd3fa,_0x276cdf){return _0xaafa2(_0x276cdf- -0x2b7,_0x2cd3fa);}_0x1e9103===undefined&&(console[_0x407765(-0x1d9,-0x16f)](_0x32d7ec(-0x194,-0x126)),_0x1e9103=Math['min'](..._0x4bd948));_0x1f1f54===undefined&&(console[_0x407765(-0x1b9,-0x16f)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x1f1f54=Math['max'](..._0x4bd948));const _0x365258=Math['max'](Math[_0x407765(-0x157,-0xeb)](_0x1e9103),Math['abs'](_0x1f1f54));for(let _0x257b2b=0x0;_0x257b2b<_0x4bd948[_0x407765(-0xea,-0x93)];_0x257b2b++){const _0x6616e9=_0x4bd948[_0x257b2b]/_0x365258;_0x2a3634[_0x257b2b]=_0x6616e9;}function _0x32d7ec(_0x1e9db3,_0x1744b3){return _0x8e8939(_0x1744b3- -0x268,_0x1e9db3);}return _0x2a3634;}['destroy'](){function _0x879bfe(_0x35fdb6,_0x238b1d){return _0xaafa2(_0x238b1d-0x2f0,_0x35fdb6);}function _0x573341(_0x11831a,_0x3104a0){return _0xaafa2(_0x3104a0-0x157,_0x11831a);}Object['values'](this['windTextures'])['forEach'](_0x2d6475=>_0x2d6475[_0x879bfe(0x515,0x521)]()),Object['values'](this['particlesTextures'])['forEach'](_0x3fc805=>_0x3fc805['destroy']()),Object['values'](this['primitives'])['forEach'](_0x8b5a89=>_0x8b5a89['destroy']()),this['frameRateMonitor'][_0x573341(0x351,0x388)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0xaafa2(0x206,0x18e)];class WindParticlesRendering{constructor(_0x3dbd1e,_0x2cea34,_0x363d67,_0x43c70f){function _0x132f7f(_0x3e4ea0,_0x397342){return _0xaafa2(_0x397342- -0x2be,_0x3e4ea0);}this[_0x3abeea(0x162,0x1be)]=_0x3dbd1e;function _0x3abeea(_0x5b11a8,_0x5a4398){return _0xaafa2(_0x5b11a8- -0xdc,_0x5a4398);}this[_0x132f7f(-0xec,-0xc7)]=_0x2cea34,this['viewerParameters']=_0x363d67,this['computing']=_0x43c70f,(typeof this[_0x3abeea(0x11b,0x90)]['particlesTextureSize']!=='number'||this[_0x3abeea(0x11b,0x152)]['particlesTextureSize']<=0x0)&&(console[_0x3abeea(0xa5,0x88)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options']['particlesTextureSize']=0x100),this['colorTable']=this['createColorTableTexture'](),this[_0x132f7f(-0x41,-0x85)]=this[_0x3abeea(0x15a,0x145)](),this['framebuffers']=this[_0x132f7f(-0x128,-0xc2)](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x324dec={};_0x324dec[_0x56b52b(0x15a,0x195)]=this['context'],_0x324dec['width']=this['context']['drawingBufferWidth'],_0x324dec['height']=this['context'][_0x56b52b(0x13d,0xf1)],_0x324dec['pixelFormat']=PixelFormat['RGBA'],_0x324dec['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x4c9b06=_0x324dec,_0x5a1c16={};function _0x56b52b(_0x8905e0,_0x590e07){return _0x8e8939(_0x590e07- -0x81,_0x8905e0);}_0x5a1c16['context']=this['context'],_0x5a1c16[_0x56b52b(0x19f,0x18b)]=this[_0x56b52b(0x21f,0x195)][_0x5dad36(-0x35,-0xb1)],_0x5a1c16['height']=this['context']['drawingBufferHeight'],_0x5a1c16['pixelFormat']=PixelFormat['DEPTH_COMPONENT'];function _0x5dad36(_0x232441,_0x53a4db){return _0xaafa2(_0x232441- -0x242,_0x53a4db);}_0x5a1c16[_0x5dad36(-0xf6,-0x71)]=PixelDatatype[_0x5dad36(-0xca,-0x148)];const _0x515804=_0x5a1c16;return{'segmentsColor':new Texture(_0x4c9b06),'segmentsDepth':new Texture(_0x515804)};}[_0x8e8939(0x1d4,0x1b8)](){function _0x2baaa9(_0x513795,_0x10d9fc){return _0xaafa2(_0x513795- -0x203,_0x10d9fc);}function _0x1ee178(_0x760af3,_0x26135d){return _0x8e8939(_0x26135d-0x1ff,_0x760af3);}const _0x12ab4c={};return _0x12ab4c[_0x2baaa9(0x3b,0x4f)]=this['context'],_0x12ab4c['colorTextures']=[this['textures'][_0x1ee178(0x428,0x426)]],_0x12ab4c[_0x2baaa9(-0x3b,-0x97)]=this[_0x2baaa9(0x36,-0x7)]['segmentsDepth'],{'segments':new Framebuffer(_0x12ab4c)};}[_0xaafa2(0x243,0x24d)](){function _0x33ddc1(_0x265323,_0x4d5dc0){return _0x8e8939(_0x4d5dc0-0x40,_0x265323);}function _0x21f173(_0x57d304,_0x2b5ee5){return _0xaafa2(_0x2b5ee5-0x219,_0x57d304);}Object[_0x21f173(0x4aa,0x421)](this[_0x21f173(0x3ea,0x440)])[_0x21f173(0x4d1,0x449)](_0x5d0610=>{function _0x397520(_0x1210e1,_0xa1fbbe){return _0x21f173(_0xa1fbbe,_0x1210e1- -0x3e7);}_0x5d0610[_0x397520(0x63,0xba)]();});}['createColorTableTexture'](){const _0x2d6f52=new Float32Array(this['options']['colors'][_0x22ed08(0x378,0x39a)](_0x339524=>{function _0x1b7992(_0x3c79b4,_0x3f771d){return _0x22ed08(_0x3c79b4,_0x3f771d-0x1fc);}function _0x24339f(_0x1feb99,_0x5dd60f){return _0x22ed08(_0x1feb99,_0x5dd60f-0x11b);}const _0x3aecdf=Color$1[_0x24339f(0x55d,0x4da)](_0x339524);return[_0x3aecdf['red'],_0x3aecdf['green'],_0x3aecdf['blue'],_0x3aecdf[_0x24339f(0x3cd,0x3dc)]];})),_0x6ad623={};_0x6ad623[_0x22ed08(0x2bc,0x300)]=TextureMinificationFilter['LINEAR'];function _0x22ed08(_0x1acba2,_0x563eae){return _0x8e8939(_0x563eae-0x1af,_0x1acba2);}function _0x336c55(_0x32ca54,_0x491aed){return _0xaafa2(_0x32ca54-0x36b,_0x491aed);}return _0x6ad623['magnificationFilter']=TextureMagnificationFilter[_0x336c55(0x58b,0x569)],_0x6ad623['wrapS']=TextureWrap[_0x22ed08(0x388,0x302)],_0x6ad623['wrapT']=TextureWrap[_0x22ed08(0x303,0x302)],new Texture({'context':this['context'],'width':this['options']['colors'][_0x22ed08(0x403,0x3ab)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype[_0x336c55(0x5b6,0x52c)],'sampler':new Sampler(_0x6ad623),'source':{'width':this['options']['colors']['length'],'height':0x1,'arrayBufferView':_0x2d6f52}});}['createSegmentsGeometry'](){function _0x910f0d(_0x1205ae,_0x58afdf){return _0xaafa2(_0x58afdf-0x468,_0x1205ae);}const _0x416526=0x4,_0x3b1005=this['options']['particlesTextureSize'];let _0x1d0a7f=[];for(let _0x2eb424=0x0;_0x2eb424<_0x3b1005;_0x2eb424++){for(let _0xa5ea94=0x0;_0xa5ea94<_0x3b1005;_0xa5ea94++){for(let _0x1eee5e=0x0;_0x1eee5e<_0x416526;_0x1eee5e++){_0x1d0a7f['push'](_0x2eb424/_0x3b1005),_0x1d0a7f['push'](_0xa5ea94/_0x3b1005);}}}_0x1d0a7f=new Float32Array(_0x1d0a7f);const _0x7b9226=this[_0x910f0d(0x648,0x65f)]['particlesTextureSize']**0x2;let _0x238e45=[];for(let _0x56a045=0x0;_0x56a045<_0x7b9226;_0x56a045++){_0x238e45[_0x910f0d(0x63b,0x60e)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x238e45=new Float32Array(_0x238e45);let _0x13b2e1=[];for(let _0x45690b=0x0,_0x348500=0x0;_0x45690b<_0x7b9226;_0x45690b++){_0x13b2e1['push'](_0x348500+0x0,_0x348500+0x1,_0x348500+0x2,_0x348500+0x2,_0x348500+0x1,_0x348500+0x3),_0x348500+=_0x416526;}_0x13b2e1=new Uint32Array(_0x13b2e1);const _0x219180={};_0x219180[_0x1569f5(0x570,0x4fb)]=ComponentDatatype[_0x910f0d(0x707,0x6b3)],_0x219180['componentsPerAttribute']=0x2,_0x219180['values']=_0x1d0a7f;const _0x47e136={};_0x47e136['componentDatatype']=ComponentDatatype['FLOAT'];function _0x1569f5(_0xb492a1,_0x116385){return _0x8e8939(_0x116385-0x328,_0xb492a1);}_0x47e136['componentsPerAttribute']=0x3,_0x47e136[_0x910f0d(0x636,0x670)]=_0x238e45;const _0x267b18=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x219180),'normal':new GeometryAttribute(_0x47e136)}),'indices':_0x13b2e1});return _0x267b18;}[_0xaafa2(0x1c9,0x13e)](_0x2bd689){const _0x3f7b81={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x2bd689};return Appearance['getDefaultRenderState'](!![],![],_0x3f7b81);}[_0x8e8939(0x1f7,0x1ce)](){const _0xddaf77={};_0xddaf77['st']=0x0,_0xddaf77['normal']=0x1;const _0x18faa3={};_0x18faa3[_0x1c8a7b(-0x11e,-0x142)]=!![];const _0x10bbb4={};_0x10bbb4['enabled']=!![],_0x10bbb4['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x10bbb4['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'];function _0x1c8a7b(_0xd4333e,_0xde953){return _0xaafa2(_0xde953- -0x2b4,_0xd4333e);}_0x10bbb4['blendFuncDestination']=WebGLRenderingContext[_0x1c8a7b(-0xf5,-0x104)];const _0x10d8aa={};_0x10d8aa['viewport']=undefined,_0x10d8aa['depthTest']=_0x18faa3,_0x10d8aa['depthMask']=!![],_0x10d8aa['blending']=_0x10bbb4;const _0x1637b3=new CustomPrimitive({'commandType':_0x1c8a7b(-0xec,-0x6f),'attributeLocations':_0xddaf77,'geometry':this[_0x34821b(0x104,0xde)](),'primitiveType':PrimitiveType[_0x34821b(0x77,0x4b)],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x34821b(0x99,0x94)]['previousParticlesPosition'],'currentParticlesPosition':()=>this[_0x34821b(0x1e,0x32)]['particlesTextures'][_0x1c8a7b(-0x137,-0x109)],'postProcessingPosition':()=>this['computing'][_0x34821b(0xca,0x94)]['postProcessingPosition'],'particlesSpeed':()=>this[_0x34821b(-0x33,0x32)][_0x34821b(0x7f,0x94)][_0x34821b(0x9a,0x80)],'frameRateAdjustment':()=>this['computing'][_0x1c8a7b(-0x121,-0xc5)],'colorTable':()=>this['colorTable'],'domain':()=>{var _0x26c26c,_0x3f4604;const _0xcc043d=new Cartesian2(((_0x26c26c=this[_0x1673ec(0x94,0x89)]['domain'])===null||_0x26c26c===void 0x0?void 0x0:_0x26c26c['min'])??this['computing']['windData']['speed'][_0x1673ec(-0x55,-0xd)],((_0x3f4604=this[_0x1673ec(0xce,0x89)]['domain'])===null||_0x3f4604===void 0x0?void 0x0:_0x3f4604['max'])??this['computing'][_0x1673ec(0x98,0xaa)][_0x1673ec(0x3e,-0x1e)][_0x3d2dda(0x480,0x4d6)]);function _0x3d2dda(_0x453e7d,_0x2663ec){return _0x34821b(_0x2663ec,_0x453e7d-0x3e4);}function _0x1673ec(_0x336fbe,_0x515e8a){return _0x1c8a7b(_0x336fbe,_0x515e8a-0x146);}return _0xcc043d;},'displayRange':()=>{var _0x269f52,_0x1fffde;const _0x2bf9bd=new Cartesian2(((_0x269f52=this['options']['displayRange'])===null||_0x269f52===void 0x0?void 0x0:_0x269f52[_0x35cb67(-0x96,-0x95)])??this['computing']['windData'][_0x35cb67(-0xe9,-0xa6)][_0x35cb67(-0x55,-0x95)],((_0x1fffde=this['options']['displayRange'])===null||_0x1fffde===void 0x0?void 0x0:_0x1fffde[_0x2891bf(0x597,0x523)])??this['computing']['windData']['speed']['max']);function _0x2891bf(_0x3f309e,_0xee55fc){return _0x1c8a7b(_0x3f309e,_0xee55fc-0x632);}function _0x35cb67(_0x9925c2,_0x577abd){return _0x1c8a7b(_0x9925c2,_0x577abd-0xbe);}return _0x2bf9bd;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context'][_0x34821b(0x8b,0x91)],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{const _0x2f3410={};_0x2f3410['min']=0x1,_0x2f3410[_0x291e30(-0x4e,-0x54)]=0x2;const _0x3f3c3c=this['options']['lineWidth']||_0x2f3410;function _0x2e792f(_0x27741a,_0x4cb21d){return _0x34821b(_0x27741a,_0x4cb21d-0x4b2);}function _0x291e30(_0x31f2bf,_0x568258){return _0x34821b(_0x568258,_0x31f2bf- -0xea);}return new Cartesian2(_0x3f3c3c[_0x291e30(-0x92,-0x94)],_0x3f3c3c[_0x2e792f(0x5d1,0x54e)]);},'lineLength':()=>{function _0x593089(_0xf9ed23,_0x1ab0ca){return _0x34821b(_0x1ab0ca,_0xf9ed23-0x266);}function _0x2215bd(_0x3d1bf8,_0x402bf6){return _0x1c8a7b(_0x3d1bf8,_0x402bf6-0x264);}const _0x25b2c7={};_0x25b2c7['min']=0x14,_0x25b2c7['max']=0x64;const _0x288f1f=this[_0x593089(0x354,0x381)][_0x2215bd(0x1a9,0x146)]||_0x25b2c7;return new Cartesian2(_0x288f1f['min'],_0x288f1f[_0x593089(0x302,0x2b4)]);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x1c8a7b(-0xe9,-0xd5)],'segmentsDepthTexture':()=>this[_0x34821b(0xd4,0x130)]['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x34821b(0x12,0x44)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x1c8a7b(-0x13a,-0xeb)](_0x10d8aa)});function _0x34821b(_0x54728a,_0x58e089){return _0xaafa2(_0x58e089- -0x109,_0x54728a);}const _0x55eb0d={};return _0x55eb0d[_0x1c8a7b(-0x128,-0x145)]=_0x1637b3,_0x55eb0d;}['onParticlesTextureSizeChange'](){const _0x3e8302=this['createSegmentsGeometry']();this[_0x561fd0(0x41a,0x41d)][_0x230cea(0x31,0x34)]['geometry']=_0x3e8302;function _0x230cea(_0x539980,_0x5a62c7){return _0x8e8939(_0x5a62c7- -0x113,_0x539980);}const _0x501254={};_0x501254['context']=this['context'],_0x501254[_0x561fd0(0x428,0x3cf)]=_0x3e8302,_0x501254['attributeLocations']=this['primitives'][_0x561fd0(0x3dc,0x43f)]['attributeLocations'],_0x501254['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0x3f89ba=VertexArray[_0x561fd0(0x400,0x382)](_0x501254);function _0x561fd0(_0x15ba8d,_0xf616fe){return _0xaafa2(_0x15ba8d-0x26d,_0xf616fe);}this['primitives']['segments'][_0x561fd0(0x46d,0x4c0)]&&(this[_0x561fd0(0x41a,0x498)][_0x561fd0(0x3dc,0x426)][_0x561fd0(0x46d,0x4bd)][_0x561fd0(0x430,0x4ac)]=_0x3f89ba);}['onColorTableChange'](){function _0x39dd4c(_0x36edc4,_0x233f94){return _0xaafa2(_0x36edc4-0x210,_0x233f94);}this[_0x46ea1a(0x4d7,0x48b)][_0x46ea1a(0x4f8,0x52e)]();function _0x46ea1a(_0x542e43,_0x1bd291){return _0x8e8939(_0x1bd291-0x325,_0x542e43);}this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x1207ef){function _0x13317f(_0x41057a,_0x5b95d9){return _0xaafa2(_0x5b95d9- -0x272,_0x41057a);}function _0x2a69c3(_0x2674b9,_0x2682c9){return _0xaafa2(_0x2682c9-0x15f,_0x2674b9);}const _0x4d77db=_0x1207ef['colors']&&JSON[_0x13317f(-0xbe,-0x115)](_0x1207ef['colors'])!==JSON['stringify'](this[_0x2a69c3(0x2ed,0x356)][_0x13317f(-0x92,-0x10c)]);this[_0x13317f(-0x53,-0x7b)]=deepMerge(_0x1207ef,this['options']),_0x4d77db&&this[_0x2a69c3(0x31c,0x2db)]();}['destroy'](){Object[_0x77e635(0x535,0x583)](this['framebuffers'])['forEach'](_0x1e217e=>{_0x1e217e['destroy']();});function _0x281fff(_0x5596ee,_0x2aedf4){return _0xaafa2(_0x5596ee-0x9c,_0x2aedf4);}function _0x77e635(_0x32f786,_0x4360d5){return _0x8e8939(_0x32f786-0x355,_0x4360d5);}Object['values'](this[_0x281fff(0x249,0x1e5)])[_0x77e635(0x55d,0x4dc)](_0x495bd9=>{_0x495bd9['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x8e8939(0x1de,0x1ef)];class WindParticleSystem{constructor(_0x33fb9b,_0x4b1c38,_0x518b53,_0x39fdf8,_0x5313a3){this['context']=_0x33fb9b;function _0x46fbff(_0x72c85a,_0x4da729){return _0xaafa2(_0x4da729-0x3bc,_0x72c85a);}this['options']=_0x518b53,this[_0x46fbff(0x571,0x58a)]=_0x39fdf8;function _0x49f4b5(_0x5e032d,_0xf6bbb8){return _0x8e8939(_0x5e032d-0xec,_0xf6bbb8);}this[_0x49f4b5(0x1ff,0x253)]=new WindParticlesComputing(_0x33fb9b,_0x4b1c38,_0x518b53,_0x39fdf8,_0x5313a3),this['rendering']=new WindParticlesRendering(_0x33fb9b,_0x518b53,_0x39fdf8,this['computing']),this['clearFramebuffers']();}['getPrimitives'](){function _0x570dd6(_0x5356bd,_0x567cb9){return _0x8e8939(_0x5356bd- -0xa4,_0x567cb9);}const _0x3c43d6=[this[_0x41a3be(0x264,0x2ec)]['primitives'][_0x570dd6(0x16e,0x1b3)],this[_0x41a3be(0x2c4,0x2ec)][_0x570dd6(0xe1,0x10a)]['updatePosition'],this[_0x570dd6(0x6f,0x8c)][_0x570dd6(0xe1,0xbb)]['postProcessingPosition'],this['rendering']['primitives']['segments']];function _0x41a3be(_0x3a4947,_0x58dc90){return _0x8e8939(_0x58dc90-0x1d9,_0x3a4947);}return _0x3c43d6;}[_0xaafa2(0x1bd,0x153)](){const _0x1ca74b=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x5da3f1(_0x191ce3,_0xca0f2d){return _0x8e8939(_0xca0f2d-0x6c,_0x191ce3);}function _0x40a358(_0x40b479,_0x386094){return _0x8e8939(_0x386094-0x429,_0x40b479);}Object[_0x40a358(0x4fd,0x55b)](this['rendering']['framebuffers'])[_0x40a358(0x68e,0x631)](_0x12bf1=>{function _0x310ddb(_0x155c89,_0x284641){return _0x40a358(_0x284641,_0x155c89- -0x1c0);}_0x1ca74b['framebuffer']=this[_0xb0aa46(0x327,0x385)]['framebuffers'][_0x12bf1];function _0xb0aa46(_0x3e89b4,_0x37239a){return _0x40a358(_0x3e89b4,_0x37239a- -0x220);}_0x1ca74b[_0xb0aa46(0x330,0x39f)](this['context']);});}['changeOptions'](_0x31a1e3){function _0x187f65(_0x54cf33,_0x8e775c){return _0xaafa2(_0x8e775c- -0x1e1,_0x54cf33);}let _0x5bca39=![];function _0x5cc3c(_0x15b2b9,_0xa62e76){return _0xaafa2(_0xa62e76-0x1eb,_0x15b2b9);}_0x31a1e3['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x31a1e3[_0x5cc3c(0x3b4,0x3b5)]&&(_0x5bca39=!![]);const _0x205991=deepMerge(_0x31a1e3,this['options']);if(_0x205991['particlesTextureSize']<0x1)throw new Error(_0x5cc3c(0x378,0x3f7));this['options']=_0x205991,this[_0x187f65(-0xa5,-0x3d)]['updateOptions'](_0x31a1e3),this['computing']['updateOptions'](_0x31a1e3),_0x5bca39&&(this['computing'][_0x187f65(0x3a,-0x7)](),this[_0x187f65(-0x117,-0xa6)][_0x187f65(0x33,-0x12)](),this['rendering']['onParticlesTextureSizeChange']());}[_0x8e8939(0x182,0x15d)](_0x1c7639){this['viewerParameters']=_0x1c7639,this['computing']['viewerParameters']=_0x1c7639;function _0x2c69c2(_0x51eac4,_0x4be963){return _0x8e8939(_0x4be963- -0x113,_0x51eac4);}this['rendering'][_0x2c69c2(0xba,0x93)]=_0x1c7639;}[_0xaafa2(0x231,0x28e)](){function _0x440ec0(_0x16f5f4,_0x432e50){return _0xaafa2(_0x432e50- -0x5e,_0x16f5f4);}function _0x465867(_0x1ef891,_0x4a59ca){return _0xaafa2(_0x1ef891-0x29f,_0x4a59ca);}this[_0x440ec0(0x11b,0xdd)][_0x465867(0x4d0,0x499)](),this['rendering'][_0x465867(0x4d0,0x51f)]();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x8e8939(0x1a5,0x225)],_0x372c25={};_0x372c25['min']=0x1,_0x372c25[_0x8e8939(0x17d,0x128)]=0x2;const _0x329450={};_0x329450['min']=0x14,_0x329450['max']=0x64;function _0x4f7c(){const _0x403d0d=['outputTexture','strokeStyle','random','fill','samplingWindow','processWindData','forEach','destroy','mouse_down','getRandomLatLng','width','getV','createRenderingTextures','wind','fromCssColorString','textures','calculateSpeed','type','position','_tomap','context','lineTo','commandList','now','style','destoryRenderingFramebuffers','frameRateMonitor','Draw','initWorker','getParticles','mode','bind','south','FLOAT','_updateIng','isDynamic','EventType','segmentsColor','interpolated','tlat','getUVByPoint','alpha','computing','removeEventListener','#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','toDegrees','cols','globalAlpha','shaderProgram','redraw','show','globalCompositeOperation','rawRenderState','xmin','addEventListener','warn','_randomParticle','updateWindData','vmin','pixelDatatype','getSegmentDrawVertexShader','positionWC','maxAge','speed','16561648zUAFlv','requestRender','vdata','TRIANGLES','layer','container','talt','primitiveType','_calcUV','keys','_showHook','ymax','stringify','logInfo','dynamic','canvasWidth','min','lineWidth','camera','lighter','height','colors','_updateIng2','east','getDataAtLonLat','min\x20is\x20undefined,\x20calculate\x20min','object','sqrt','removeChild','value','segments','SceneMode','cartesianToCartographic','enabled','percentageChanged','previousParticlesPosition','546945JgaBTK','OPAQUE','2077706aTHUZn','UNSIGNED_INT','minificationFilter','updateViewerParameters','CLAMP_TO_EDGE','onColorTableChange','setGeometry','pointerEvents','Rectangle','fragmentShaderSource','error','postMessage','latRange','call','210sGYqme','floor','fromDegrees','_setOptionsHook','particlesSpeed','quietPeriod','particleSystem','particlesNumber','age','colorTable','setOptions','changed','sources','ellipsoid','fromGeometry','frameState.commandList\x20is\x20undefined','_bilinearInterpolation','lineLength','Compute','flipY','windField','drawingBufferHeight','Unknown\x20command\x20type','162678zJSZAh','particlesTextures','color','ymin','default','2211243SmJjnk','mars3d-canvasWind','visible','rendering','max','push','LayerUtil','morphComplete','bounds','applyViewerParameters','currentParticlesPosition','mouseHidden','primitives','_animateFrame','fixedHeight','ONE_MINUS_SRC_ALPHA','_addedHook','setData','lng','xmax','grid','none','framebuffer','setDate','init','tlng','geometry','canvasContext','clearFramebuffers','execute','3.11.4','_onMouseMoveEvent','pow','pass','vertexArray','NEAREST','off','_speedRate','lat','depthTexture','createRawRenderState','particlesTextureSize','attributeLocations','abs','BaseLayer','viewerParameters','createParticlesTextures','lonRange','updatePosition','owner','1888705gpNKZZ','windTextures','getSpeed','update','PointTrans','Cartesian2','getPostProcessingPositionShader','destroyParticlesTextures','uniformMap','cos','data','absolute','SCENE3D','_removedHook','postProcessingPosition','getContext','array','createWindTextures','#ffffff','willReadFrequently','createSegmentsGeometry','pointer-events','isInExtent','commandType','bindEvent','pixelSize','getCalculateSpeedShader','beginPath','frameRateAdjustment','clearCommand','preExecute','clear','_onMouseDownEvent','scene','Math','speedFactor','options','resize','rows','create','componentDatatype','createRenderingFramebuffers','toGridXY','canvas','cancelAnimationFrame','commandToExecute','speedRate','worker','refreshTimer','hasOwnProperty','register','Cesium','clientWidth','values','\x20\x20\x20\x20编译日期:','getUVByXY','frameRate','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','drawingBufferWidth','CanvasWindField','moveTo','__esModule','mouseUp','DomUtil','flatMap','_pointerEvents','_colorRamp','_map','18svrCwx','windData','createComputingPrimitives','mouseMove','stroke','round','_onMouseUpEvent','_canrefresh','createPrimitives','LINEAR','canvasHeight','west','fillRect','length','1019324vEAzrt','WindLayer','framebuffers','mouse_move','isPointVisible'];_0x4f7c=function(){return _0x403d0d;};return _0x4f7c();}const _0x55df1e={};_0x55df1e['particlesTextureSize']=0x64,_0x55df1e['fixedHeight']=0x0,_0x55df1e[_0xaafa2(0x162,0x10b)]=_0x372c25,_0x55df1e['lineLength']=_0x329450,_0x55df1e[_0xaafa2(0x1f6,0x210)]=0x1,_0x55df1e['dropRate']=0.003,_0x55df1e['dropRateBump']=0.001,_0x55df1e['colors']=['rgb(206,255,255)'],_0x55df1e['flipY']=![],_0x55df1e[_0x8e8939(0x137,0xb0)]=!![];const DEF_OPTIONS=_0x55df1e;class WindLayer extends BaseLayer$1{constructor(_0x27bddb={}){_0x27bddb={...DEF_OPTIONS,..._0x27bddb},super(_0x27bddb),this['_setOptionsHook'](_0x27bddb,_0x27bddb);}get['layer'](){function _0x4a3d51(_0x17490b,_0x3dc48d){return _0x8e8939(_0x3dc48d-0x27f,_0x17490b);}return this[_0x4a3d51(0x3a6,0x404)];}get['data'](){return this['options']['data'];}set['data'](_0x2c065b){this['options'][_0x38b2aa(0x305,0x35e)]=_0x2c065b;function _0x38b2aa(_0x3f6882,_0x5adea2){return _0xaafa2(_0x3f6882-0x128,_0x5adea2);}this['setData'](_0x2c065b);}get[_0x8e8939(0x13e,0x123)](){return this['options']['colors'];}set['colors'](_0x1b4cb8){this[_0x36d643(0x6b7,0x635)][_0x36d643(0x580,0x5a4)]=_0x1b4cb8;function _0x41fc32(_0x5f2bea,_0x57dd99){return _0x8e8939(_0x57dd99-0x3c2,_0x5f2bea);}function _0x36d643(_0x35d310,_0x59360f){return _0x8e8939(_0x59360f-0x466,_0x35d310);}const _0x105083={};_0x105083['colors']=_0x1b4cb8,this['_setOptionsHook'](this['options'],_0x105083);}[_0x8e8939(0x133,0x16c)](_0x306d09){function _0x4bd26c(_0x43991b,_0x52b1fa){return _0xaafa2(_0x43991b-0x19a,_0x52b1fa);}_0x306d09?this['_addedHook']():this[_0x4bd26c(0x37a,0x315)]();}['_mountedHook'](){}['_addedHook'](){this['scene']=this[_0x562a03(-0x3,-0x86)]['scene'],this['camera']=this[_0x562a03(-0x3,-0x17)][_0x210578(0x421,0x473)];this['options'][_0x562a03(-0x3c,-0x54)]&&this[_0x562a03(-0x67,0x21)](this['options']['data']);function _0x210578(_0x78e67d,_0x425920){return _0xaafa2(_0x78e67d-0x2be,_0x425920);}if(!this[_0x562a03(-0x1,0x36)]||!this[_0x562a03(-0xd6,-0xfc)])return;this[_0x210578(0x48c,0x427)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x210578(0x4b2,0x4a9)]['mode']},this['updateViewerParameters'](),this[_0x562a03(-0x8e,-0x15)]=new WindParticleSystem(this['scene']['context'],this['windData'],this[_0x562a03(-0x22,-0x32)],this[_0x562a03(-0x4b,-0xb8)],this['scene']),this['primitives']=this[_0x210578(0x449,0x443)]['getPrimitives']();function _0x562a03(_0x457809,_0x1c7348){return _0x8e8939(_0x457809- -0x1f1,_0x1c7348);}this[_0x562a03(-0x6c,-0x52)]['forEach'](_0x28055d=>{function _0x5b2f51(_0x31c2a6,_0x46e5e3){return _0x210578(_0x46e5e3-0x7f,_0x31c2a6);}this[_0x5b2f51(0x596,0x531)]['primitives']['add'](_0x28055d);}),this['camera'][_0x210578(0x431,0x406)]=0.01,this['camera']['changed'][_0x210578(0x405,0x478)](this[_0x210578(0x438,0x408)]['bind'](this)),this['scene'][_0x210578(0x466,0x3e6)]['addEventListener'](this[_0x562a03(-0x9f,-0xf5)][_0x562a03(0x30,-0x13)](this)),window['addEventListener'](_0x210578(0x4b6,0x49f),this['updateViewerParameters']['bind'](this));}[_0xaafa2(0x1e0,0x247)](){this['camera'][_0x4d5795(-0xa6,-0x89)]['removeEventListener'](this[_0x4d5795(-0xda,-0x9f)][_0x4d5795(0xac,0x30)](this));function _0x28f4fe(_0x3eca2d,_0x511dcd){return _0xaafa2(_0x3eca2d- -0x2f,_0x511dcd);}this['scene']['morphComplete'][_0x28f4fe(0x10d,0x160)](this['updateViewerParameters'][_0x4d5795(0xba,0x30)](this));function _0x4d5795(_0x1cb9db,_0x5d1415){return _0x8e8939(_0x5d1415- -0x1f1,_0x1cb9db);}window['removeEventListener']('resize',this['updateViewerParameters']['bind'](this)),this['primitives']&&(this['primitives']['forEach'](_0x4bf812=>{function _0x31df08(_0x515f52,_0x86269b){return _0x4d5795(_0x86269b,_0x515f52-0x3c2);}this['scene'][_0x31df08(0x356,0x3e1)]['remove'](_0x4bf812);}),delete this['primitives']),this['particleSystem']&&(this['particleSystem'][_0x4d5795(-0x6c,0x18)](),delete this['particleSystem']);}[_0xaafa2(0x1b2,0x207)](_0x55e4d4,_0xeee0cb){this[_0x36abb0(0x73,-0x13)]=this['processWindData'](_0x55e4d4);function _0x2cbdc2(_0x4e1e90,_0x5ea757){return _0x8e8939(_0x4e1e90-0x404,_0x5ea757);}function _0x36abb0(_0x505e24,_0x32aedb){return _0x8e8939(_0x32aedb- -0x203,_0x505e24);}if(_0xeee0cb){this[_0x36abb0(-0x41,-0x4b)](),this[_0x36abb0(-0xdc,-0x7a)]();return;}this[_0x36abb0(-0xd7,-0xa0)]?(this[_0x2cbdc2(0x567,0x56f)]['computing']['updateWindData'](this['windData']),this['scene']['requestRender']()):this['_addedHook']();}[_0x8e8939(0x160,0x1b7)](_0x4a8fe6,_0x9123e8){function _0x54d9c1(_0x2e5933,_0x47e04e){return _0xaafa2(_0x47e04e-0x2f3,_0x2e5933);}function _0x5b6e17(_0x3afca3,_0x2cb3fe){return _0xaafa2(_0x3afca3-0x1e5,_0x2cb3fe);}this[_0x5b6e17(0x370,0x361)]&&(this['particleSystem']['changeOptions'](_0x9123e8),this[_0x54d9c1(0x49d,0x4e7)][_0x54d9c1(0x403,0x445)]());}[_0xaafa2(0x22f,0x22f)](_0x220cef){var _0x36a188,_0x1f06e3;const _0x494993={..._0x220cef};function _0x2f868d(_0x3eb195,_0x234cab){return _0xaafa2(_0x3eb195- -0x268,_0x234cab);}const _0x38454f=_0x494993;!_0x38454f[_0x2f868d(-0x103,-0x17a)]&&_0x38454f['rows']&&(_0x38454f['height']=_0x38454f[_0x2f868d(-0x6f,-0xbb)]);!_0x38454f['width']&&_0x38454f['cols']&&(_0x38454f['width']=_0x38454f['cols']);!_0x38454f['bounds']&&(_0x38454f['bounds']={'west':_0x38454f['xmin'],'south':_0x38454f['ymin'],'east':_0x38454f['xmax'],'north':_0x38454f[_0x17ae11(0x5ab,0x561)]});if(!_0x38454f['u']){const _0x129f0b={};_0x129f0b['array']=_0x220cef['udata'],_0x129f0b['min']=_0x220cef['umin'],_0x129f0b['max']=_0x220cef['umax'],_0x38454f['u']=_0x129f0b;}if(!_0x38454f['v']){const _0x377e02={};_0x377e02[_0x17ae11(0x671,0x5e8)]=_0x220cef['vdata'],_0x377e02[_0x2f868d(-0x107,-0x98)]=_0x220cef[_0x17ae11(0x544,0x550)],_0x377e02[_0x2f868d(-0xc3,-0xe9)]=_0x220cef['vmax'],_0x38454f['v']=_0x377e02;}function _0x17ae11(_0x147dce,_0x3d5d94){return _0xaafa2(_0x3d5d94-0x405,_0x147dce);}if(((_0x36a188=_0x38454f['speed'])===null||_0x36a188===void 0x0?void 0x0:_0x36a188['min'])===undefined||((_0x1f06e3=_0x38454f[_0x17ae11(0x567,0x555)])===null||_0x1f06e3===void 0x0?void 0x0:_0x1f06e3[_0x17ae11(0x52b,0x5aa)])===undefined||_0x38454f[_0x2f868d(-0x118,-0x12d)]['array']===undefined){const _0x5307c2={'array':new Float32Array(_0x38454f['u'][_0x17ae11(0x646,0x5e8)][_0x2f868d(-0x44,-0xb3)]),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x305d2d=0x0;_0x305d2d<_0x38454f['u']['array'][_0x2f868d(-0x44,-0x1)];_0x305d2d++){_0x5307c2[_0x17ae11(0x669,0x5e8)][_0x305d2d]=Math[_0x2f868d(-0xfc,-0x103)](_0x38454f['u'][_0x2f868d(-0x85,-0x10f)][_0x305d2d]*_0x38454f['u']['array'][_0x305d2d]+_0x38454f['v']['array'][_0x305d2d]*_0x38454f['v']['array'][_0x305d2d]),_0x5307c2['array'][_0x305d2d]!==0x0&&(_0x5307c2[_0x2f868d(-0x107,-0x119)]=Math[_0x17ae11(0x4db,0x566)](_0x5307c2[_0x17ae11(0x53a,0x566)],_0x5307c2['array'][_0x305d2d]),_0x5307c2['max']=Math['max'](_0x5307c2['max'],_0x5307c2['array'][_0x305d2d]));}_0x38454f[_0x2f868d(-0x118,-0x16d)]=_0x5307c2;}return _0x38454f;}['updateViewerParameters'](){var _0x1f7ae4;const _0x1deb7b=this['scene'];function _0x227846(_0x3ada75,_0x56fdaa){return _0x8e8939(_0x3ada75-0xa8,_0x56fdaa);}if(!_0x1deb7b)return;const _0x5fe92d=_0x1deb7b['canvas'],_0x4fb5ba={};_0x4fb5ba['x']=0x0,_0x4fb5ba['y']=0x0;const _0x39b0e6={};_0x39b0e6['x']=0x0,_0x39b0e6['y']=_0x5fe92d['clientHeight'];const _0x41fd72={};_0x41fd72['x']=_0x5fe92d[_0x3e52ac(0x518,0x511)],_0x41fd72['y']=0x0;const _0x5e803f={};_0x5e803f['x']=_0x5fe92d[_0x3e52ac(0x518,0x51f)],_0x5e803f['y']=_0x5fe92d['clientHeight'];const _0x5338ad=[_0x4fb5ba,_0x39b0e6,_0x41fd72,_0x5e803f];let _0x219673=0xb4;function _0x3e52ac(_0x460ff4,_0x4dbbf5){return _0x8e8939(_0x460ff4-0x339,_0x4dbbf5);}let _0x530927=-0xb4,_0x106c5e=0x5a,_0x522851=-0x5a,_0x28ccca=![];for(const _0x2c6f79 of _0x5338ad){const _0x12c3c4=_0x1deb7b[_0x227846(0x1e3,0x200)]['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x2c6f79['x'],_0x2c6f79['y']),_0x1deb7b['globe']['ellipsoid']);if(!_0x12c3c4){_0x28ccca=!![];break;}const _0x2bfbe3=_0x1deb7b['globe'][_0x227846(0x212,0x295)][_0x3e52ac(0x482,0x498)](_0x12c3c4),_0x59ad6e=Cesium$1[_0x3e52ac(0x506,0x4a3)][_0x227846(0x1be,0x1ac)](_0x2bfbe3['longitude']),_0x3c32d8=Cesium$1[_0x3e52ac(0x506,0x56e)]['toDegrees'](_0x2bfbe3['latitude']);_0x219673=Math['min'](_0x219673,_0x59ad6e),_0x530927=Math['max'](_0x530927,_0x59ad6e),_0x106c5e=Math['min'](_0x106c5e,_0x3c32d8),_0x522851=Math['max'](_0x522851,_0x3c32d8);}if(!_0x28ccca){const _0x2ec0fc=new Cesium$1['Cartesian2'](Math['max'](this['windData']['bounds']['west'],_0x219673),Math[_0x3e52ac(0x472,0x4c7)](this['windData']['bounds']['east'],_0x530927)),_0x47e6fe=new Cesium$1[(_0x3e52ac(0x4e9,0x513))](Math['max'](this[_0x3e52ac(0x529,0x5a7)]['bounds']['south'],_0x106c5e),Math['min'](this['windData']['bounds']['north'],_0x522851)),_0x3649d1=(_0x2ec0fc['y']-_0x2ec0fc['x'])*0.05,_0x12b1b6=(_0x47e6fe['y']-_0x47e6fe['x'])*0.05;_0x2ec0fc['x']=Math[_0x227846(0x225,0x24f)](this[_0x3e52ac(0x529,0x58a)]['bounds'][_0x227846(0x2a2,0x2a2)],_0x2ec0fc['x']-_0x3649d1),_0x2ec0fc['y']=Math['min'](this[_0x227846(0x298,0x215)]['bounds']['east'],_0x2ec0fc['y']+_0x3649d1),_0x47e6fe['x']=Math[_0x227846(0x225,0x20d)](this['windData'][_0x227846(0x229,0x288)][_0x3e52ac(0x55b,0x531)],_0x47e6fe['x']-_0x12b1b6),_0x47e6fe['y']=Math[_0x227846(0x1e1,0x180)](this[_0x227846(0x298,0x297)][_0x227846(0x229,0x1a1)]['north'],_0x47e6fe['y']+_0x12b1b6),this[_0x227846(0x24e,0x1f3)][_0x227846(0x250,0x23c)]=_0x2ec0fc,this[_0x227846(0x24e,0x234)][_0x227846(0x203,0x1be)]=_0x47e6fe;const _0x56ad2d=this['windData']['bounds']['east']-this['windData'][_0x3e52ac(0x4ba,0x53d)][_0x3e52ac(0x533,0x4b0)],_0x3cae0d=this['windData']['bounds']['north']-this['windData']['bounds'][_0x3e52ac(0x55b,0x5b9)],_0x9e426e=(_0x2ec0fc['y']-_0x2ec0fc['x'])/_0x56ad2d,_0x4cb59f=(_0x47e6fe['y']-_0x47e6fe['x'])/_0x3cae0d,_0x471312=Math['min'](_0x9e426e,_0x4cb59f),_0x1f0d73=0x3e8*_0x471312;_0x1f0d73>0x0&&(this[_0x3e52ac(0x4df,0x498)][_0x3e52ac(0x4fd,0x556)]=Math['max'](0x0,Math['min'](0x3e8,_0x1f0d73)));}this['viewerParameters']['sceneMode']=this[_0x3e52ac(0x505,0x4bc)][_0x3e52ac(0x559,0x581)],(_0x1f7ae4=this[_0x227846(0x20b,0x226)])===null||_0x1f7ae4===void 0x0||_0x1f7ae4['applyViewerParameters'](this['viewerParameters']);}[_0x8e8939(0x141,0x11f)](_0x3b1a01,_0x49b8cb){const {bounds:_0x1aa616,width:_0x198f5c,height:_0x1403b8,u:_0x31641e,v:_0x1389d1,speed:_0x1b5985}=this[_0x494399(0x443,0x483)],{flipY:_0x508781}=this[_0x22de80(0x26e,0x29e)];if(_0x3b1a01<_0x1aa616['west']||_0x3b1a01>_0x1aa616['east']||_0x49b8cb<_0x1aa616['south']||_0x49b8cb>_0x1aa616['north'])return null;const _0x52d05b=(_0x3b1a01-_0x1aa616[_0x494399(0x4c9,0x48d)])/(_0x1aa616[_0x494399(0x440,0x3d3)]-_0x1aa616['west'])*(_0x198f5c-0x1);let _0x562ed7=(_0x49b8cb-_0x1aa616['south'])/(_0x1aa616['north']-_0x1aa616[_0x494399(0x4de,0x4b5)])*(_0x1403b8-0x1);_0x508781&&(_0x562ed7=_0x1403b8-0x1-_0x562ed7);const _0x21788d=Math[_0x494399(0x3f3,0x3f1)](_0x52d05b),_0x14f39f=Math['floor'](_0x562ed7),_0x2f50aa=Math['floor'](_0x52d05b),_0x5da262=Math[_0x494399(0x3a5,0x3cc)](_0x2f50aa+0x1,_0x198f5c-0x1),_0x4be847=Math['floor'](_0x562ed7),_0x39396e=Math['min'](_0x4be847+0x1,_0x1403b8-0x1),_0x25df0d=_0x52d05b-_0x2f50aa,_0x98eaf=_0x562ed7-_0x4be847,_0x9d4784=_0x14f39f*_0x198f5c+_0x21788d,_0x141000=_0x4be847*_0x198f5c+_0x2f50aa,_0x39473d=_0x4be847*_0x198f5c+_0x5da262,_0xba9f50=_0x39396e*_0x198f5c+_0x2f50aa,_0x5c1ccc=_0x39396e*_0x198f5c+_0x5da262,_0x4a10b1=_0x31641e['array'][_0x141000],_0x504460=_0x31641e[_0x494399(0x449,0x44e)][_0x39473d],_0x905003=_0x31641e[_0x494399(0x3c2,0x44e)][_0xba9f50];function _0x494399(_0x20c376,_0x2d974d){return _0xaafa2(_0x2d974d-0x26b,_0x20c376);}const _0x15e9fb=_0x31641e['array'][_0x5c1ccc],_0x16005a=(0x1-_0x25df0d)*(0x1-_0x98eaf)*_0x4a10b1+_0x25df0d*(0x1-_0x98eaf)*_0x504460+(0x1-_0x25df0d)*_0x98eaf*_0x905003+_0x25df0d*_0x98eaf*_0x15e9fb,_0x442532=_0x1389d1['array'][_0x141000],_0x2baaf0=_0x1389d1['array'][_0x39473d],_0x15976b=_0x1389d1['array'][_0xba9f50],_0x4a3f29=_0x1389d1[_0x494399(0x445,0x44e)][_0x5c1ccc],_0x2041e1=(0x1-_0x25df0d)*(0x1-_0x98eaf)*_0x442532+_0x25df0d*(0x1-_0x98eaf)*_0x2baaf0+(0x1-_0x25df0d)*_0x98eaf*_0x15976b+_0x25df0d*_0x98eaf*_0x4a3f29;function _0x22de80(_0x1f5de7,_0x518bba){return _0xaafa2(_0x1f5de7-0x77,_0x518bba);}const _0x4bea61=Math[_0x22de80(0x1e3,0x250)](_0x16005a*_0x16005a+_0x2041e1*_0x2041e1),_0x41f484={};_0x41f484['u']=_0x31641e['array'][_0x9d4784],_0x41f484['v']=_0x1389d1['array'][_0x9d4784],_0x41f484['speed']=_0x1b5985['array'][_0x9d4784];const _0x582786={};_0x582786['u']=_0x16005a,_0x582786['v']=_0x2041e1,_0x582786[_0x494399(0x43a,0x3bb)]=_0x4bea61;const _0x13fa9e={};return _0x13fa9e['original']=_0x41f484,_0x13fa9e[_0x22de80(0x1ae,0x15a)]=_0x582786,_0x13fa9e;}}mars3d__namespace[_0xaafa2(0x1a7,0x1e7)][_0xaafa2(0x205,0x1c1)](_0xaafa2(0x237,0x200),WindLayer),mars3d__namespace[_0x8e8939(0x12d,0x165)][_0x8e8939(0x1fe,0x190)]=WindLayer;class CanvasParticle{constructor(){this[_0x12cfa9(-0x10d,-0x18e)]=null,this['lat']=null,this['tlng']=null,this[_0x3e60eb(0x3b,0xa2)]=null;function _0x12cfa9(_0x5a710f,_0x39f38e){return _0xaafa2(_0x5a710f- -0x2c0,_0x39f38e);}function _0x3e60eb(_0x57bf9e,_0x10b6e1){return _0x8e8939(_0x10b6e1- -0x6e,_0x57bf9e);}this['age']=null,this['speed']=null;}['destroy'](){for(const _0xd6765b in this){delete this[_0xd6765b];}}}class CanvasWindField{constructor(_0x3c1fac){this['setOptions'](_0x3c1fac);}get[_0xaafa2(0x201,0x1ab)](){function _0x3da1ec(_0x4abb9d,_0xab70ba){return _0xaafa2(_0xab70ba- -0x15d,_0x4abb9d);}return this[_0x3da1ec(0xb,0x69)];}set['speedRate'](_0x3d8b27){function _0x3828e2(_0x19eea7,_0x291484){return _0xaafa2(_0x19eea7- -0x47,_0x291484);}this['_speedRate']=(0x64-(_0x3d8b27>0x63?0x63:_0x3d8b27))*0x64;function _0x29ae93(_0x2a7fa6,_0x15a30c){return _0x8e8939(_0x15a30c-0x2c6,_0x2a7fa6);}this['_calc_speedRate']=[(this['xmax']-this[_0x3828e2(0xff,0x168)])/this['_speedRate'],(this[_0x29ae93(0x37f,0x3fa)]-this[_0x3828e2(0x158,0x11b)])/this[_0x3828e2(0x17f,0x16f)]];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0x5f17a8){this['_maxAge']=_0x5f17a8;}[_0xaafa2(0x18f,0x16c)](_0x27ed01){this[_0x576e11(-0x73,-0xfa)]=_0x27ed01,this['maxAge']=_0x27ed01[_0x3f8355(0x243,0x2b5)]||0x78,this['speedRate']=_0x27ed01['speedRate']||0x32;function _0x3f8355(_0x3d0173,_0x19fc76){return _0xaafa2(_0x3d0173-0xf4,_0x19fc76);}this['particles']=[];function _0x576e11(_0xc8b037,_0x255cd5){return _0xaafa2(_0xc8b037- -0x26a,_0x255cd5);}const _0x444284=_0x27ed01['particlesNumber']||0x1000;for(let _0x3b3508=0x0;_0x3b3508<_0x444284;_0x3b3508++){const _0x399cb6=this[_0x576e11(-0x121,-0xa9)](new CanvasParticle());this['particles'][_0x576e11(-0xc4,-0x9a)](_0x399cb6);}}[_0x8e8939(0x190,0x104)](_0x1cf01d){this[_0x2d1c04(0x127,0x165)]=_0x1cf01d[_0x2d1c04(0x131,0x165)],this[_0x2d1c04(0x135,0xab)]=_0x1cf01d['cols'],this['xmin']=_0x1cf01d[_0x3afd5d(-0x1eb,-0x166)],this[_0x3afd5d(-0x17d,-0x169)]=_0x1cf01d['xmax'];function _0x3afd5d(_0x412b56,_0xfe6498){return _0x8e8939(_0x412b56- -0x309,_0xfe6498);}this['ymin']=_0x1cf01d['ymin'],this['ymax']=_0x1cf01d[_0x3afd5d(-0x1d5,-0x25e)];function _0x2d1c04(_0x4fe4d1,_0x59b75d){return _0x8e8939(_0x59b75d- -0x6c,_0x4fe4d1);}this[_0x3afd5d(-0x17c,-0x15f)]=[];const _0x3df26e=_0x1cf01d['udata'],_0x2259ca=_0x1cf01d[_0x2d1c04(0xd9,0xbf)];let _0x728dae=![];_0x3df26e[_0x3afd5d(-0x10d,-0x103)]===this['rows']&&_0x3df26e[0x0]['length']===this['cols']&&(_0x728dae=!![]);let _0x9ecade=0x0,_0x3bd46a=null,_0x3204cf=null;for(let _0x1880be=0x0;_0x1880be<this['rows'];_0x1880be++){_0x3bd46a=[];for(let _0x5e3ca2=0x0;_0x5e3ca2<this[_0x3afd5d(-0x1f2,-0x255)];_0x5e3ca2++,_0x9ecade++){_0x728dae?_0x3204cf=this[_0x3afd5d(-0x1d8,-0x1a5)](_0x3df26e[_0x1880be][_0x5e3ca2],_0x2259ca[_0x1880be][_0x5e3ca2]):_0x3204cf=this[_0x3afd5d(-0x1d8,-0x1e4)](_0x3df26e[_0x9ecade],_0x2259ca[_0x9ecade]),_0x3bd46a[_0x2d1c04(0x176,0x112)](_0x3204cf);}this[_0x2d1c04(0x112,0x121)]['push'](_0x3bd46a);}!this[_0x3afd5d(-0x13a,-0xce)]['flipY']&&this['grid']['reverse']();}['clear'](){delete this['rows'];function _0x211cd7(_0x592aa5,_0x3b80cb){return _0x8e8939(_0x592aa5-0x1b5,_0x3b80cb);}delete this[_0x211cd7(0x2cc,0x253)],delete this[_0xa07e72(0x17f,0x1ef)],delete this['xmax'];function _0xa07e72(_0x646063,_0x1845f2){return _0x8e8939(_0x1845f2-0xd1,_0x646063);}delete this['ymin'],delete this[_0x211cd7(0x2e9,0x288)],delete this[_0xa07e72(0x2b3,0x25e)],delete this['particles'];}[_0xaafa2(0x1fd,0x257)](_0x31bb6e,_0x1d3636){function _0x378c9f(_0x36f287,_0x1e7c06){return _0x8e8939(_0x1e7c06-0x24c,_0x36f287);}function _0x400f8b(_0x270140,_0x5c44c6){return _0x8e8939(_0x5c44c6-0x58,_0x270140);}const _0x40fd7=(_0x31bb6e-this['xmin'])/(this['xmax']-this['xmin'])*(this['cols']-0x1),_0x4537d5=(this[_0x378c9f(0x340,0x380)]-_0x1d3636)/(this['ymax']-this[_0x378c9f(0x3ef,0x3c3)])*(this[_0x378c9f(0x43a,0x41d)]-0x1);return[_0x40fd7,_0x4537d5];}['getUVByXY'](_0x590d36,_0x8395ad){if(_0x590d36<0x0||_0x590d36>=this['cols']||_0x8395ad>=this['rows'])return[0x0,0x0,0x0];const _0x1f4a0d=Math['floor'](_0x590d36),_0x41c263=Math[_0x160072(0x4c3,0x4de)](_0x8395ad);if(_0x1f4a0d===_0x590d36&&_0x41c263===_0x8395ad)return this['grid'][_0x8395ad][_0x590d36];const _0x602c17=_0x1f4a0d+0x1,_0x523d11=_0x41c263+0x1,_0x2cdb7e=this[_0x3fc2d2(0x4dc,0x537)](_0x1f4a0d,_0x41c263);function _0x3fc2d2(_0x879357,_0x521e37){return _0xaafa2(_0x521e37-0x32d,_0x879357);}const _0xf66184=this['getUVByXY'](_0x602c17,_0x41c263),_0x1eb552=this[_0x160072(0x547,0x5bf)](_0x1f4a0d,_0x523d11),_0x53ca87=this[_0x3fc2d2(0x5bf,0x537)](_0x602c17,_0x523d11);let _0x23b58e=null;try{_0x23b58e=this['_bilinearInterpolation'](_0x590d36-_0x1f4a0d,_0x8395ad-_0x41c263,_0x2cdb7e,_0xf66184,_0x1eb552,_0x53ca87);}catch(_0x498285){console['log'](_0x590d36,_0x8395ad);}function _0x160072(_0x1ded3b,_0x5f3d5f){return _0x8e8939(_0x1ded3b-0x365,_0x5f3d5f);}return _0x23b58e;}[_0xaafa2(0x195,0x21b)](_0x455ac5,_0x5e537d,_0x25e6ea,_0x2a25eb,_0x395036,_0x260022){const _0x581849=0x1-_0x455ac5,_0x16ef7b=0x1-_0x5e537d,_0x5b7b4b=_0x581849*_0x16ef7b,_0xe93089=_0x455ac5*_0x16ef7b,_0x1c059e=_0x581849*_0x5e537d,_0x3bce12=_0x455ac5*_0x5e537d,_0x1bc4ed=_0x25e6ea[0x0]*_0x5b7b4b+_0x2a25eb[0x0]*_0xe93089+_0x395036[0x0]*_0x1c059e+_0x260022[0x0]*_0x3bce12,_0x138f02=_0x25e6ea[0x1]*_0x5b7b4b+_0x2a25eb[0x1]*_0xe93089+_0x395036[0x1]*_0x1c059e+_0x260022[0x1]*_0x3bce12;return this['_calcUV'](_0x1bc4ed,_0x138f02);}['_calcUV'](_0x18d735,_0x187296){return[+_0x18d735,+_0x187296,Math['sqrt'](_0x18d735*_0x18d735+_0x187296*_0x187296)];}[_0x8e8939(0x111,0xd8)](_0xd38ac9,_0x4a74b5){if(!this['isInExtent'](_0xd38ac9,_0x4a74b5))return null;function _0x1ffc69(_0x17c61a,_0x532249){return _0xaafa2(_0x532249-0x354,_0x17c61a);}function _0x547077(_0x3fe801,_0x5b4617){return _0xaafa2(_0x3fe801-0x305,_0x5b4617);}const _0x53dc8f=this[_0x1ffc69(0x540,0x551)](_0xd38ac9,_0x4a74b5),_0x130589=this[_0x547077(0x50f,0x4dc)](_0x53dc8f[0x0],_0x53dc8f[0x1]);return _0x130589;}[_0xaafa2(0x1e9,0x1e4)](_0x5097cb,_0x18c26b){function _0x6b053d(_0x339b7a,_0x336a8d){return _0xaafa2(_0x339b7a-0x13e,_0x336a8d);}return _0x5097cb>=this['xmin']&&_0x5097cb<=this['xmax']&&_0x18c26b>=this['ymin']&&_0x18c26b<=this[_0x6b053d(0x29a,0x2e4)]?!![]:![];}['getRandomLatLng'](){const _0x411304=fRandomByfloat(this['xmin'],this[_0x31d65e(0xbd,0xf2)]),_0xd6276=fRandomByfloat(this[_0x31d65e(0xa8,0x2f)],this[_0x5a2f3c(0x306,0x295)]),_0x2f3bbf={};_0x2f3bbf['lat']=_0xd6276,_0x2f3bbf[_0x31d65e(0xbc,0x12b)]=_0x411304;function _0x31d65e(_0x45fada,_0x2f18ca){return _0x8e8939(_0x45fada- -0xcf,_0x2f18ca);}function _0x5a2f3c(_0x443827,_0xaf5eca){return _0xaafa2(_0x443827-0x1aa,_0xaf5eca);}return _0x2f3bbf;}['getParticles'](){function _0x2c11ae(_0x4518bd,_0x3d045c){return _0xaafa2(_0x3d045c- -0xd8,_0x4518bd);}function _0x3b0026(_0x1fcdfe,_0x5166d5){return _0xaafa2(_0x5166d5-0x224,_0x1fcdfe);}let _0x5c20e0,_0x388594,_0x530bab;for(let _0x461339=0x0,_0x1d3f68=this['particles'][_0x3b0026(0x4c7,0x448)];_0x461339<_0x1d3f68;_0x461339++){let _0x1a9c96=this['particles'][_0x461339];_0x1a9c96['age']<=0x0&&(_0x1a9c96=this[_0x2c11ae(0x84,0x71)](_0x1a9c96));if(_0x1a9c96['age']>0x0){const _0x40fbb3=_0x1a9c96['tlng'],_0x23d310=_0x1a9c96[_0x3b0026(0x2fb,0x35c)];_0x530bab=this['getUVByPoint'](_0x40fbb3,_0x23d310),_0x530bab?(_0x5c20e0=_0x40fbb3+this['_calc_speedRate'][0x0]*_0x530bab[0x0],_0x388594=_0x23d310+this['_calc_speedRate'][0x1]*_0x530bab[0x1],_0x1a9c96['lng']=_0x40fbb3,_0x1a9c96['lat']=_0x23d310,_0x1a9c96['tlng']=_0x5c20e0,_0x1a9c96['tlat']=_0x388594,_0x1a9c96['speed']=_0x530bab[0x2],_0x1a9c96['age']--):_0x1a9c96[_0x3b0026(0x412,0x3b1)]=0x0;}}return this['particles'];}['_randomParticle'](_0x5d395c){let _0x197fb2,_0x555f7b;for(let _0x2874c6=0x0;_0x2874c6<0x1e;_0x2874c6++){_0x197fb2=this[_0x1fd4f2(0x2e4,0x2be)](),_0x555f7b=this[_0x1fd4f2(0x192,0x1c4)](_0x197fb2[_0x9eed2c(0x23,0x21)],_0x197fb2['lat']);if(_0x555f7b&&_0x555f7b[0x2]>0x0)break;}function _0x1fd4f2(_0x20624d,_0x52cef4){return _0xaafa2(_0x52cef4-0x8b,_0x20624d);}if(!_0x555f7b)return _0x5d395c;const _0x14b5f4=_0x197fb2['lng']+this['_calc_speedRate'][0x0]*_0x555f7b[0x0],_0x31050b=_0x197fb2['lat']+this['_calc_speedRate'][0x1]*_0x555f7b[0x1];_0x5d395c[_0x9eed2c(0x23,0x48)]=_0x197fb2['lng'],_0x5d395c['lat']=_0x197fb2['lat'],_0x5d395c[_0x9eed2c(0x2a,0x2a)]=_0x14b5f4,_0x5d395c[_0x9eed2c(-0x58,-0x7f)]=_0x31050b,_0x5d395c['age']=Math[_0x9eed2c(0x8c,0x115)](0xa+Math['random']()*this['maxAge']),_0x5d395c['speed']=_0x555f7b[0x2];function _0x9eed2c(_0x24022f,_0x2fd900){return _0xaafa2(_0x24022f- -0x190,_0x2fd900);}return _0x5d395c;}['destroy'](){for(const _0x4b9361 in this){delete this[_0x4b9361];}}}function fRandomByfloat(_0x6131d0,_0x3d6668){function _0x5389cd(_0xdd70e7,_0x24c2a0){return _0xaafa2(_0xdd70e7-0x236,_0x24c2a0);}return _0x6131d0+Math[_0x5389cd(0x462,0x471)]()*(_0x3d6668-_0x6131d0);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x19c3ed={}){super(_0x19c3ed),this['_setOptionsHook'](_0x19c3ed),this['canvas']=null,_0x19c3ed['colors']&&_0x19c3ed['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x19c3ed));}['_setOptionsHook'](_0x1476ea,_0x4cb71c){this['frameTime']=0x3e8/(_0x1476ea['frameRate']||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![],this['color']=_0x1476ea[_0x3c03fd(0x2f9,0x367)]||_0x599cd6(0x88,0x17),this['lineWidth']=_0x1476ea['lineWidth']||0x1,this[_0x599cd6(0x1e,-0x1f)]=_0x1476ea['fixedHeight']??0x0;function _0x3c03fd(_0x1ee0c5,_0x3dd749){return _0xaafa2(_0x1ee0c5-0x15b,_0x3dd749);}function _0x599cd6(_0x493895,_0x5bec3f){return _0x8e8939(_0x5bec3f- -0x1a6,_0x493895);}this[_0x599cd6(0x4d,-0x36)]=_0x1476ea['flipY']??![],this[_0x3c03fd(0x2f4,0x29e)]&&this['windField']['setOptions'](_0x1476ea);}get[_0x8e8939(0x12d,0x199)](){return this['canvas'];}get[_0x8e8939(0x138,0xf6)](){function _0xd2e121(_0x3bc710,_0x47ee2d){return _0xaafa2(_0x3bc710- -0x1ae,_0x47ee2d);}return this['_map']['scene']['canvas'][_0xd2e121(0x59,0x2b)];}get['canvasHeight'](){function _0x3c5204(_0x5c513c,_0x5374e2){return _0xaafa2(_0x5c513c-0x454,_0x5374e2);}return this[_0x3c5204(0x66a,0x5e2)]['scene']['canvas']['clientHeight'];}get['pointerEvents'](){function _0x1f038c(_0x1ce809,_0x4ff614){return _0xaafa2(_0x4ff614-0x486,_0x1ce809);}return this[_0x1f038c(0x641,0x69a)];}set[_0xaafa2(0x17e,0x1f4)](_0x2f90a1){this['_pointerEvents']=_0x2f90a1;function _0x569db9(_0x20e62d,_0x53704e){return _0x8e8939(_0x20e62d- -0x166,_0x53704e);}if(!this['canvas'])return;_0x2f90a1?this['canvas']['style'][_0x569db9(0x5a,0xde)]='all':this['canvas']['style']['pointer-events']='none';}get[_0xaafa2(0x18c,0x16f)](){function _0x26871a(_0x154fec,_0x2ff647){return _0x8e8939(_0x154fec- -0x30c,_0x2ff647);}return this['options'][_0x26871a(-0x1a8,-0x187)];}set['particlesNumber'](_0xea7d2b){this['options']['particlesNumber']=_0xea7d2b,clearTimeout(this[_0x250eaf(0x55,0x8)]);function _0x457539(_0x4f9def,_0x5a3e1f){return _0xaafa2(_0x5a3e1f-0x3c1,_0x4f9def);}function _0x250eaf(_0x4e9064,_0x117f0b){return _0xaafa2(_0x4e9064- -0x1c9,_0x117f0b);}this[_0x250eaf(0x55,0x76)]=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x5b63d4(_0x4b893a,_0x2da1a9){return _0x8e8939(_0x4b893a- -0x2a4,_0x2da1a9);}function _0x18c7e6(_0x353172,_0x252718){return _0xaafa2(_0x353172- -0xec,_0x252718);}return this[_0x18c7e6(0x10b,0x180)][_0x5b63d4(-0xcb,-0x65)];}set['speedRate'](_0x47108d){this[_0x533ff9(0x3d0,0x3dd)]['speedRate']=_0x47108d;function _0x533ff9(_0x265ec2,_0x284e0a){return _0xaafa2(_0x284e0a-0x1e6,_0x265ec2);}function _0x17cd6c(_0x3c4212,_0x2c97ad){return _0x8e8939(_0x2c97ad- -0x15,_0x3c4212);}this['windField']&&(this['windField'][_0x17cd6c(0x1c1,0x1c4)]=_0x47108d);}get['maxAge'](){function _0x4c2b37(_0xae4bd3,_0x285e6c){return _0xaafa2(_0x285e6c-0x311,_0xae4bd3);}return this['options'][_0x4c2b37(0x4d0,0x460)];}set['maxAge'](_0x6b547d){function _0x576bac(_0x549f40,_0x50b323){return _0xaafa2(_0x50b323- -0x3,_0x549f40);}function _0x1281f0(_0x275413,_0x5e9de6){return _0xaafa2(_0x275413-0x2ff,_0x5e9de6);}this[_0x576bac(0x1b7,0x1f4)][_0x576bac(0xc9,0x14c)]=_0x6b547d,this['windField']&&(this[_0x1281f0(0x498,0x48a)]['maxAge']=_0x6b547d);}get['data'](){function _0xdfacab(_0x241618,_0x3e008f){return _0xaafa2(_0x3e008f-0x29e,_0x241618);}return this[_0xdfacab(0x458,0x4b6)];}set['data'](_0x1d95c0){this['setData'](_0x1d95c0);}get['rectangle'](){let _0xeb0b37=this['windData']['xmin'],_0x5cc18c=this['windData'][_0x4c34c9(0x41c,0x458)],_0x2aed44=this['windData']['ymin'],_0x58b888=this[_0x4c34c9(0x480,0x43b)][_0x3b8be2(-0x140,-0xcd)];_0x5cc18c>=0x167&&_0xeb0b37===0x0&&(_0xeb0b37=-0xb4,_0x5cc18c=0xb4);function _0x3b8be2(_0x1220c1,_0x30543b){return _0xaafa2(_0x1220c1- -0x29c,_0x30543b);}_0xeb0b37=Math[_0x4c34c9(0x40d,0x3b3)](_0xeb0b37,-0xb4),_0x5cc18c=Math['min'](_0x5cc18c,0xb4),_0x2aed44=Math['max'](_0x2aed44,-0x5a),_0x58b888=Math[_0x3b8be2(-0x13b,-0x106)](_0x58b888,0x5a);function _0x4c34c9(_0x23572f,_0x25f001){return _0x8e8939(_0x23572f-0x290,_0x25f001);}return Cesium[_0x3b8be2(-0x11d,-0x155)][_0x3b8be2(-0x115,-0xc7)](_0xeb0b37,_0x2aed44,_0x5cc18c,_0x58b888);}[_0xaafa2(0x15b,0x15c)](_0x66a34e){function _0x929631(_0xdd65,_0x38494b){return _0x8e8939(_0x38494b- -0x159,_0xdd65);}function _0x22b430(_0xd72654,_0x124e15){return _0xaafa2(_0xd72654- -0x2d8,_0x124e15);}_0x66a34e?this[_0x22b430(-0x127,-0x122)]():(this['windData']&&(this['options']['data']=this[_0x929631(0xcf,0x97)]),this[_0x22b430(-0xf8,-0xff)]());}['_mountedHook'](){function _0x1bdb20(_0x589bc1,_0x1e272d){return _0xaafa2(_0x589bc1- -0x5e,_0x1e272d);}function _0x506260(_0x48ca3e,_0x53232b){return _0xaafa2(_0x53232b- -0x234,_0x48ca3e);}this[_0x1bdb20(0x199,0x211)][_0x1bdb20(0x1a4,0x1e9)]?this[_0x1bdb20(0x1e8,0x224)]():this[_0x506260(-0x28,-0x9b)]=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this['_createCanvas']();function _0x539b15(_0x213876,_0x1f0b0a){return _0x8e8939(_0x1f0b0a- -0x121,_0x213876);}const _0x9e1e4={};_0x9e1e4[_0xdbd63c(0x461,0x4d4)]=!![],this[_0x539b15(0x2c,0x73)]=this[_0x539b15(0xbe,0xb5)][_0xdbd63c(0x4c6,0x4d0)]('2d',_0x9e1e4),this['bindEvent']();function _0xdbd63c(_0x2d9f3a,_0x1e7c20){return _0xaafa2(_0x1e7c20-0x2ee,_0x2d9f3a);}this[_0xdbd63c(0x485,0x4e5)]['data']&&this['setData'](this[_0xdbd63c(0x525,0x4e5)]['data']);}[_0x8e8939(0x1b8,0x1df)](){function _0x298676(_0x4276de,_0x2a0499){return _0x8e8939(_0x2a0499-0x76,_0x4276de);}this['clear']();function _0x2f52b5(_0x556e5f,_0x48f505){return _0x8e8939(_0x556e5f-0x121,_0x48f505);}this['unbindEvent'](),this['canvas']&&(this[_0x2f52b5(0x30f,0x2fe)]['container'][_0x298676(0x1ad,0x1bb)](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x3d891a=mars3d__namespace[_0x9924cd(0x67c,0x6b1)]['create'](_0x1cc2fa(0x46c,0x43d),_0x1cc2fa(0x410,0x44f),this[_0x9924cd(0x680,0x614)][_0x1cc2fa(0x3c4,0x370)]);_0x3d891a['style'][_0x1cc2fa(0x4aa,0x507)]=_0x1cc2fa(0x44c,0x3c2),_0x3d891a[_0x1cc2fa(0x4b0,0x529)]['top']='0px';function _0x9924cd(_0x4c3156,_0x596669){return _0x8e8939(_0x4c3156-0x492,_0x596669);}_0x3d891a['style']['left']='0px',_0x3d891a[_0x1cc2fa(0x4b0,0x516)]['width']=this[_0x1cc2fa(0x484,0x491)]['scene']['canvas']['clientWidth']+'px',_0x3d891a['style']['height']=this['_map'][_0x9924cd(0x65e,0x5d5)]['canvas']['clientHeight']+'px';function _0x1cc2fa(_0x21199f,_0xb89553){return _0x8e8939(_0x21199f-0x296,_0xb89553);}return _0x3d891a['style']['pointerEvents']=this['_pointerEvents']?'auto':_0x9924cd(0x620,0x69a),_0x3d891a[_0x1cc2fa(0x4b0,0x4a1)]['zIndex']=this['options']['zIndex']??0x9,_0x3d891a['width']=this[_0x9924cd(0x680,0x6e1)]['scene'][_0x1cc2fa(0x46c,0x414)]['clientWidth'],_0x3d891a['height']=this[_0x1cc2fa(0x484,0x47f)]['scene'][_0x1cc2fa(0x46c,0x4c6)]['clientHeight'],_0x3d891a;}['resize'](){function _0x243588(_0x40ebf4,_0x1353c1){return _0x8e8939(_0x40ebf4-0x34d,_0x1353c1);}function _0x3357c9(_0xf2a1c5,_0x157116){return _0x8e8939(_0xf2a1c5- -0xbe,_0x157116);}this['canvas']&&(this[_0x3357c9(0x118,0xd0)][_0x243588(0x567,0x4e1)]['width']=this[_0x243588(0x53b,0x4e6)][_0x3357c9(0x10e,0xf2)][_0x243588(0x523,0x516)][_0x243588(0x52c,0x54d)]+'px',this['canvas'][_0x243588(0x567,0x51d)][_0x243588(0x48a,0x463)]=this['_map']['scene'][_0x3357c9(0x118,0xfa)]['clientHeight']+'px',this['canvas']['width']=this[_0x3357c9(0x130,0x199)]['scene'][_0x3357c9(0x118,0x162)][_0x243588(0x52c,0x52f)],this['canvas'][_0x3357c9(0x7f,0x93)]=this['_map']['scene']['canvas']['clientHeight']);}[_0xaafa2(0x1eb,0x17d)](){const _0x57eed3=this;let _0x19b3b3=Date['now']();function _0x46edd0(_0x5bd757,_0x493993){return _0x8e8939(_0x5bd757-0x1d7,_0x493993);}(function _0x581b0c(){function _0x10a490(_0x5726c7,_0x5ee5e5){return _0x9e58(_0x5726c7-0x361,_0x5ee5e5);}if(_0x57eed3['isDestroy'])return;_0x57eed3['_animateFrame']=window['requestAnimationFrame'](_0x581b0c);function _0x1bb5f7(_0x5319b9,_0x169001){return _0x9e58(_0x169001- -0x28f,_0x5319b9);}if(_0x57eed3['show']&&_0x57eed3[_0x1bb5f7(-0xb6,-0x56)]){const _0x30d95f=Date[_0x10a490(0x642,0x5cb)](),_0x579930=_0x30d95f-_0x19b3b3;_0x579930>_0x57eed3['frameTime']&&(_0x19b3b3=_0x30d95f-_0x579930%_0x57eed3['frameTime'],_0x57eed3['update']());}}(),window['addEventListener']('resize',this[_0x544043(0x8a,0x10c)]['bind'](this),![]),this[_0x544043(0xc4,0xe4)]=![],this[_0x46edd0(0x3d7,0x404)]=![]);function _0x544043(_0x4544c8,_0x22c3e7){return _0x8e8939(_0x4544c8- -0x146,_0x22c3e7);}this['options'][_0x544043(0x3e,0x39)]&&(this['_map']['on'](mars3d__namespace[_0x544043(0xe0,0x15b)]['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x544043(0x85,0x7b)],this),this['_map']['on'](mars3d__namespace['EventType'][_0x544043(0xa3,0xad)],this['_onMouseUpEvent'],this));}['unbindEvent'](){window[_0x14272d(0x192,0x17a)](this['_animateFrame']);function _0x14272d(_0x4706d6,_0x127162){return _0xaafa2(_0x127162- -0x85,_0x4706d6);}delete this[_0x14272d(0x103,0x129)],window['removeEventListener']('resize',this['resize']);function _0x7aba9d(_0x1930ed,_0x3e8c19){return _0xaafa2(_0x1930ed-0x480,_0x3e8c19);}this[_0x7aba9d(0x677,0x674)]['mouseHidden']&&(this[_0x7aba9d(0x696,0x66a)]['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x7aba9d(0x673,0x608)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x7aba9d(0x691,0x66d)],this['_onMouseUpEvent'],this),this[_0x14272d(0x1b6,0x191)][_0x7aba9d(0x645,0x657)](mars3d__namespace[_0x7aba9d(0x6ce,0x6b0)][_0x7aba9d(0x69a,0x63c)],this[_0x7aba9d(0x640,0x61f)],this));}['_onMapWhellEvent'](_0xc9f436){function _0x4d975f(_0x281f4e,_0x3ece43){return _0xaafa2(_0x281f4e- -0x217,_0x3ece43);}clearTimeout(this['refreshTimer']);if(!this[_0x4d975f(-0xd4,-0xa5)]||!this['canvas'])return;function _0xf36be9(_0x2898e5,_0x28aeca){return _0xaafa2(_0x28aeca-0x1b0,_0x2898e5);}this[_0xf36be9(0x33e,0x3ae)]['style']['visibility']='hidden',this[_0x4d975f(-0x14,0x49)]=setTimeout(()=>{if(!this['show'])return;function _0x1d33f7(_0x948b17,_0x28f7e9){return _0x4d975f(_0x28f7e9-0x396,_0x948b17);}function _0x2cc24a(_0x54098d,_0x4a988c){return _0x4d975f(_0x54098d-0x375,_0x4a988c);}this[_0x1d33f7(0x2a5,0x2c1)](),this['canvas']['style']['visibility']=_0x2cc24a(0x301,0x317);},0xc8);}[_0x8e8939(0x1cb,0x1ff)](_0x460bd3){function _0x1c906d(_0x5d4f6b,_0x3277d8){return _0xaafa2(_0x5d4f6b-0x474,_0x3277d8);}this[_0x533bf1(0x702,0x6ab)]=!![];function _0x533bf1(_0xace8a7,_0x18e59c){return _0xaafa2(_0x18e59c-0x479,_0xace8a7);}this['_map']['off'](mars3d__namespace[_0x1c906d(0x6c2,0x733)]['mouseMove'],this['_onMouseMoveEvent'],this),this['_map']['on'](mars3d__namespace[_0x1c906d(0x6c2,0x6de)]['mouseMove'],this['_onMouseMoveEvent'],this);}[_0x8e8939(0x198,0x20e)](_0x53e3ab){function _0x36c34c(_0x2bdc33,_0xa7897c){return _0xaafa2(_0xa7897c- -0x28e,_0x2bdc33);}function _0x4f3f2c(_0x163923,_0x161392){return _0xaafa2(_0x161392- -0x1d8,_0x163923);}if(!this['show']||!this['canvas'])return;this[_0x36c34c(-0x5,-0x5c)]&&(this['canvas'][_0x4f3f2c(0x37,0x6a)]['visibility']='hidden',this['mouse_move']=!![]);}[_0x8e8939(0x1f5,0x1fb)](_0xeb9e84){function _0x2030a1(_0x1ef8b1,_0x320f2e){return _0xaafa2(_0x320f2e-0x6b,_0x1ef8b1);}if(!this['show']||!this['canvas'])return;this['_map'][_0x2030a1(0x251,0x230)](mars3d__namespace[_0x2030a1(0x2b4,0x2b9)][_0x5ec96d(0x512,0x557)],this['_onMouseMoveEvent'],this);this['mouse_down']&&this['mouse_move']&&this['redraw']();this['canvas']['style']['visibility']='visible',this['mouse_down']=![];function _0x5ec96d(_0x78a426,_0x5c4158){return _0xaafa2(_0x5c4158-0x33d,_0x78a426);}this['mouse_move']=![];}['setData'](_0x2a37a1){this['clear'](),this['windData']=_0x2a37a1,this['windField']['setDate'](_0x2a37a1),this['redraw']();}['redraw'](){if(!this[_0x4c4585(-0x67,-0xa0)])return;this['windField']['setOptions'](this[_0x4c4585(0x1c,0x14)]);function _0x4c4585(_0xcbf837,_0x16a1a2){return _0x8e8939(_0x16a1a2- -0x1bb,_0xcbf837);}function _0x4d4008(_0x4d0a86,_0x1baac2){return _0x8e8939(_0x4d0a86-0x186,_0x1baac2);}this[_0x4c4585(0x7b,-0xd)]();}['update'](){function _0x460fcc(_0x28a9e1,_0x24fe24){return _0xaafa2(_0x24fe24-0x411,_0x28a9e1);}if(this['_updateIng'])return;this[_0x460fcc(0x63b,0x65d)]=!![];function _0x25e8b0(_0x46bf0f,_0x2189a1){return _0xaafa2(_0x46bf0f-0x28d,_0x2189a1);}if(this['worker'])this[_0x25e8b0(0x426,0x479)]['update']();else{const _0x553734=this['windField'][_0x25e8b0(0x4d4,0x557)]();this['_drawLines'](_0x553734);}this['_updateIng']=![];}['_drawLines'](_0x43627f){function _0x47497b(_0x4d3137,_0x58107e){return _0xaafa2(_0x58107e-0x7,_0x4d3137);}this['_canvasParticles']=_0x43627f,this['canvasContext'][_0x47497b(0xeb,0x14b)]='destination-in',this[_0x47497b(0x22c,0x1c3)][_0x47497b(0x291,0x22a)](0x0,0x0,this[_0x3ed31f(-0x11a,-0x134)],this[_0x3ed31f(-0xee,-0x73)]),this['canvasContext']['globalCompositeOperation']=_0x47497b(0x17a,0x16b),this[_0x3ed31f(-0xf0,-0xd8)][_0x3ed31f(-0x14c,-0x154)]=0.9;const _0x14ad3a=this['_map']['scene']['mode']!==Cesium['SceneMode'][_0x3ed31f(-0xae,-0xb5)];function _0x3ed31f(_0xfe42bd,_0x3ec53b){return _0x8e8939(_0x3ec53b- -0x26c,_0xfe42bd);}const _0x40c13a=this['canvasWidth']*0.25;if(this[_0x47497b(0x294,0x21c)])for(let _0x394dae=0x0,_0x53cd4e=_0x43627f['length'];_0x394dae<_0x53cd4e;_0x394dae++){const _0x226861=_0x43627f[_0x394dae],_0x36c0d7=this[_0x47497b(0x1db,0x244)](_0x226861,_0x226861['lng'],_0x226861[_0x3ed31f(-0xf7,-0xcd)],_0x226861['alt']),_0x1ec373=this[_0x47497b(0x259,0x244)](_0x226861,_0x226861[_0x47497b(0x1de,0x1c1)],_0x226861['tlat'],_0x226861[_0x3ed31f(-0x1b4,-0x13d)]);if(!_0x36c0d7||!_0x1ec373)continue;if(_0x14ad3a&&Math[_0x47497b(0x1ed,0x1d3)](_0x36c0d7[0x0]-_0x1ec373[0x0])>=_0x40c13a)continue;this['canvasContext'][_0x47497b(0x17c,0x1f5)](),this['canvasContext']['lineWidth']=this[_0x3ed31f(-0x109,-0x132)],this['canvasContext'][_0x3ed31f(-0x9d,-0x69)]=this['_colorRamp']['getColor'](_0x226861[_0x47497b(0xd9,0x157)]),this[_0x3ed31f(-0x5a,-0xd8)][_0x3ed31f(-0x102,-0x85)](_0x36c0d7[0x0],_0x36c0d7[0x1]),this[_0x3ed31f(-0xf4,-0xd8)][_0x47497b(0x245,0x246)](_0x1ec373[0x0],_0x1ec373[0x1]),this[_0x47497b(0x154,0x1c3)]['stroke']();}else{this[_0x3ed31f(-0x14f,-0xd8)][_0x47497b(0x16e,0x1f5)](),this[_0x47497b(0x1c9,0x1c3)]['lineWidth']=this['lineWidth'],this[_0x47497b(0x238,0x1c3)]['strokeStyle']=this['color'];for(let _0x4455be=0x0,_0x5bc382=_0x43627f[_0x3ed31f(0x17,-0x70)];_0x4455be<_0x5bc382;_0x4455be++){const _0x158b06=_0x43627f[_0x4455be],_0x42362b=this[_0x47497b(0x2cb,0x244)](_0x158b06,_0x158b06['lng'],_0x158b06['lat'],_0x158b06['alt']),_0x150867=this[_0x47497b(0x248,0x244)](_0x158b06,_0x158b06[_0x3ed31f(-0x67,-0xda)],_0x158b06['tlat'],_0x158b06['talt']);if(!_0x42362b||!_0x150867)continue;if(_0x14ad3a&&Math['abs'](_0x42362b[0x0]-_0x150867[0x0])>=_0x40c13a)continue;this['canvasContext'][_0x47497b(0x1ad,0x216)](_0x42362b[0x0],_0x42362b[0x1]),this[_0x47497b(0x1ee,0x1c3)]['lineTo'](_0x150867[0x0],_0x150867[0x1]);}this['canvasContext'][_0x47497b(0x1e4,0x222)]();}}['_tomap'](_0x13d3f3,_0xd823de,_0x48f02b,_0x5bdf43){const _0xd9a6d9=Cesium['Cartesian3']['fromDegrees'](_0xd823de,_0x48f02b,_0x5bdf43??this['fixedHeight']),_0x376be3=this['_map']['scene'];if(_0x376be3[_0x408695(0x4d4,0x506)]===Cesium[_0x408695(0x3bb,0x42e)]['SCENE3D']){const _0x2ed8ae=new Cesium['EllipsoidalOccluder'](_0x376be3['globe']['ellipsoid'],_0x376be3[_0x408695(0x482,0x421)][_0x408695(0x41c,0x40c)]),_0x34c2a4=_0x2ed8ae[_0x408695(0x541,0x4e7)](_0xd9a6d9);if(!_0x34c2a4)return _0x13d3f3['age']=0x0,null;}function _0x586476(_0x3bd415,_0x4f93f4){return _0x8e8939(_0x4f93f4-0x3e7,_0x3bd415);}const _0x41a80b=mars3d__namespace[_0x586476(0x55e,0x596)]['toWindowCoordinates'](this['_map']['scene'],_0xd9a6d9);function _0x408695(_0x54541f,_0x178418){return _0xaafa2(_0x178418-0x2be,_0x54541f);}return _0x41a80b?[_0x41a80b['x'],_0x41a80b['y']]:null;}['clear'](){function _0xd431f(_0x70ee0c,_0x5b38e0){return _0x8e8939(_0x70ee0c-0x1aa,_0x5b38e0);}this['windField'][_0xd431f(0x374,0x32c)](),delete this['windData'];}['initWorker'](){function _0x31fa08(_0x106269,_0x268251){return _0x8e8939(_0x106269- -0xad,_0x268251);}this['worker']=new Worker(this[_0x539e41(0x134,0x145)]['worker']),this[_0x539e41(0x1d6,0x150)]['onmessage']=_0x4cec3d=>{function _0x44a88e(_0x2441ef,_0x2d8d28){return _0x539e41(_0x2d8d28,_0x2441ef-0x22b);}this['_drawLines'](_0x4cec3d['data']['particles']),this[_0x44a88e(0x2e0,0x33f)]=![];};function _0x539e41(_0x10fa2b,_0x37537d){return _0xaafa2(_0x37537d- -0xb2,_0x10fa2b);}this['windField']={'init':_0x413855=>{const _0x26615d={};function _0x19add9(_0x56f731,_0x3d38f2){return _0x539e41(_0x56f731,_0x3d38f2-0x388);}function _0x5ad3ac(_0x11321f,_0x1dd6cc){return _0x31fa08(_0x1dd6cc- -0x72,_0x11321f);}_0x26615d['type']=_0x5ad3ac(0xb,0x72),_0x26615d['options']=_0x413855,this[_0x19add9(0x4ea,0x4d8)][_0x19add9(0x492,0x458)](_0x26615d);},'setOptions':_0x4dfdcb=>{const _0x4d431d={};_0x4d431d[_0x3e71b7(0x1ea,0x197)]=_0x3e71b7(0x13e,0x15c);function _0x3200b1(_0x1fef5a,_0xddf40b){return _0x539e41(_0xddf40b,_0x1fef5a-0x26d);}function _0x3e71b7(_0x1e8c1b,_0x2b5551){return _0x31fa08(_0x1e8c1b-0x84,_0x2b5551);}_0x4d431d['options']=_0x4dfdcb,this['worker']['postMessage'](_0x4d431d);},'setDate':_0x386413=>{const _0x4b205c={};_0x4b205c['type']=_0x1f02ee(0x22c,0x1e8),_0x4b205c[_0x238519(-0xfc,-0x85)]=_0x386413;function _0x1f02ee(_0x452412,_0x3e59e8){return _0x31fa08(_0x3e59e8-0x105,_0x452412);}function _0x238519(_0x158057,_0x3f1048){return _0x31fa08(_0x3f1048- -0x18d,_0x158057);}this[_0x238519(-0x7f,-0x60)][_0x238519(-0x62,-0xe0)](_0x4b205c);},'update':()=>{if(this[_0x3d53c4(0x5a0,0x5d0)])return;this['_updateIng2']=!![];function _0x3d53c4(_0x4dfd58,_0x331a3e){return _0x539e41(_0x4dfd58,_0x331a3e-0x51b);}function _0x8a6d32(_0x5d0cd4,_0x10d901){return _0x539e41(_0x5d0cd4,_0x10d901-0x52b);}const _0x349271={};_0x349271['type']=_0x8a6d32(0x6d7,0x64f),this['worker']['postMessage'](_0x349271);},'clear':()=>{const _0x431e9c={};function _0x3fb4fc(_0x468616,_0x497b96){return _0x31fa08(_0x468616- -0x12e,_0x497b96);}function _0x157d96(_0x5ad1ea,_0xa709a7){return _0x539e41(_0xa709a7,_0x5ad1ea-0xf8);}_0x431e9c['type']='clear',this[_0x3fb4fc(-0x1,-0x5b)][_0x3fb4fc(-0x81,-0x83)](_0x431e9c);}},this['windField']['init'](this['options']);}}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0xaafa2(0x20e,0x292)]=CanvasWindField,mars3d__namespace['Log'][_0x8e8939(0x136,0x14c)]('mars3d-wind插件注册成功\x20\x20\x20\x20\x20版本:'+version+_0x8e8939(0x1e1,0x255)+buildTime),mars3d__namespace['WindUtil']=WindUtil,exports[_0xaafa2(0x20e,0x23c)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x5ee2de={};_0x5ee2de[_0xaafa2(0x16e,0x14c)]=!![],Object['defineProperty'](exports,_0xaafa2(0x210,0x222),_0x5ee2de);
|
|
14
|
+
'use strict';(function(_0x447df3,_0x98ef5c){function _0x3c8360(_0x36f603,_0x45b9e2){return _0x4e0b(_0x36f603-0x57,_0x45b9e2);}function _0x4303fa(_0x2a3099,_0x116746){return _0x4e0b(_0x2a3099-0x307,_0x116746);}const _0x26da2b=_0x447df3();while(!![]){try{const _0x395924=parseInt(_0x3c8360(0x1be,0x22a))/0x1+-parseInt(_0x4303fa(0x48f,0x4c8))/0x2+-parseInt(_0x3c8360(0x1b7,0x1d4))/0x3+-parseInt(_0x3c8360(0x1c8,0x16d))/0x4*(parseInt(_0x3c8360(0x1cf,0x1e6))/0x5)+-parseInt(_0x4303fa(0x403,0x43f))/0x6*(parseInt(_0x3c8360(0x1d8,0x1f6))/0x7)+parseInt(_0x3c8360(0x14f,0xc9))/0x8*(-parseInt(_0x4303fa(0x4a5,0x44c))/0x9)+parseInt(_0x3c8360(0x138,0x1b6))/0xa*(parseInt(_0x4303fa(0x48b,0x480))/0xb);if(_0x395924===_0x98ef5c)break;else _0x26da2b['push'](_0x26da2b['shift']());}catch(_0x4f2750){_0x26da2b['push'](_0x26da2b['shift']());}}}(_0x4d1e,0xae904));function _interopNamespace(_0x427108){if(_0x427108&&_0x427108[_0xfa1c88(-0xea,-0x165)])return _0x427108;var _0x41dbad=Object['create'](null);_0x427108&&Object[_0xfa1c88(-0x118,-0x167)](_0x427108)[_0x49669a(-0x210,-0x29d)](function(_0x50764d){function _0x47a4c0(_0x23cf84,_0x35c911){return _0x49669a(_0x23cf84,_0x35c911-0x4a0);}if(_0x50764d!=='default'){var _0x1d61b4=Object[_0x47a4c0(0x192,0x1c8)](_0x427108,_0x50764d);Object['defineProperty'](_0x41dbad,_0x50764d,_0x1d61b4['get']?_0x1d61b4:{'enumerable':!![],'get':function(){return _0x427108[_0x50764d];}});}});function _0x49669a(_0x33569b,_0x413f28){return _0x4e0b(_0x413f28- -0x3ad,_0x33569b);}_0x41dbad[_0x49669a(-0x2f8,-0x316)]=_0x427108;function _0xfa1c88(_0x5afe16,_0x5ab98e){return _0x4e0b(_0x5afe16- -0x212,_0x5ab98e);}return _0x41dbad;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x2c006c,_0x400772){const _0xf044a=_0x2c006c*Math[_0x2dd7f8(0x175,0x18e)](Cesium$2['Math']['toRadians'](_0x400772));function _0x2dd7f8(_0x492cb6,_0x4faca5){return _0x4e0b(_0x492cb6-0x55,_0x4faca5);}return _0xf044a;}function getV(_0x1e3fe5,_0x2a8350){const _0x4f8caf=_0x1e3fe5*Math['sin'](Cesium$2['Math']['toRadians'](_0x2a8350));return _0x4f8caf;}function _0x3fc01e(_0x1adb53,_0x220883){return _0x4e0b(_0x1adb53- -0x2e0,_0x220883);}function getSpeed(_0x3ce820,_0x548267){const _0x38c68d=Math[_0x39c9f3(0x129,0x9c)](Math['pow'](_0x3ce820,0x2)+Math['pow'](_0x548267,0x2));function _0x39c9f3(_0x223661,_0x471cfb){return _0x4e0b(_0x471cfb- -0xfb,_0x223661);}return _0x38c68d;}function getDirection(_0x23db74,_0x510508){let _0x297f13=Cesium$2[_0x55de7f(0x1e5,0x273)]['toDegrees'](Math[_0x40decb(0x164,0x19d)](_0x510508,_0x23db74));_0x297f13+=_0x297f13<0x0?0x168:0x0;function _0x40decb(_0x2aa3dd,_0x384f10){return _0x4e0b(_0x384f10-0x3c,_0x2aa3dd);}function _0x55de7f(_0x20da00,_0x4fc22b){return _0x4e0b(_0x4fc22b-0x10a,_0x20da00);}return _0x297f13;}const _0x81c5b4={};function _0x4d1e(){const _0x1e92c6=['keys','flipY','4932KqmrGi','bindEvent','createRawRenderState','commandToExecute','grid','_calcUV','isInExtent','outputTexture','EventType','onColorTableChange','displayRange','tlng','processWindData','framebuffer','lineWidth','clientHeight','min','worker','SRC_ALPHA','createCommand','forEach','speed','reCreateWindTextures','lineTo','createComputingPrimitives','abs','wheel','fixedHeight','steps','createRenderingFramebuffers','_onMouseMoveEvent','vertexShaderSource','sources','#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','destroy','lng','cos','speedFactor','container','execute','windData','viewport','2026-08-08\x2017:02','length','__esModule','windTextures','addEventListener','dropRateBump','scene','createSegmentsGeometry','particlesTextures','calculateSpeed','MAX_VALUE','redraw','frameRate','particlesSpeed','mouse_down','_pointerEvents','camera','bounds','blendEquation','visible','style','destination-in','UNSIGNED_INT','windField','getV','_bilinearInterpolation','width','particles','viewerParameters','primitives','max','minificationFilter','isDestroy','clearCommand','beginPath','udata','toGridXY','primitiveType','commandList','LayerUtil','_updateIng','_removedHook','attributeLocations','getDefaultRenderState','Cartesian2','preExecute','_mountedHook','_setOptionsHook','getParticles','options','globe','_onMouseUpEvent','segments','absolute','fillRect','ellipsoid','stroke','mouse_move','3623418oMdErm','atan2','previousParticlesPosition','colors','getUpdatePositionShader','Log','pixelDatatype','1132389DlEJHD','isDynamic','Math','_showHook','getCalculateSpeedShader','postMessage','lat','currentParticlesPosition','setDate','RGBA','12zMOHFc','pointerEvents','visibility','DEPTH_COMPONENT','color','SCENE3D','latRange','463665BErNFG','bind','interpolated','flatMap','onmessage','alt','east','age','normal','2968FIiZrj','BaseLayer','fill','366487hyWjkF','postProcessingPosition','height','xmax','474218LCXRoL','getRandomLatLng','requestRender','_drawLines','south','particleSystem','vdata','frameRateMonitor','cancelAnimationFrame','removeEventListener','getUVByPoint','rawRenderState','top','OPAQUE','updateWindData','sqrt','show','pixelFormat','requestAnimationFrame','#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','array','getPrimitives','534510tXMoIe','layer','canvas','createColorTableTexture','createParticlesTextures','particlesTextureSize','none','_addedHook','lighter','rows','nextParticlesPosition','bufferUsage','globalCompositeOperation','_map','componentsPerAttribute','framebuffers','MIN_VALUE','canvasWind','owner','clear','pickEllipsoid','_canrefresh','tlat','slice','resize','isDestroyed','getSegmentDrawFragmentShader','Compute','ymax','default','cols','floor','clearFramebuffers','shaderProgram','fromCssColorString','_onMapWhellEvent','getDirection','_calc_speedRate','push','geometry','now','canvasContext','textures','depthTest','create','commandType','mode','onParticlesTextureSizeChange','clientWidth','_randomParticle','NEAREST','computing','particlesNumber','updatePosition','umax','Cesium','dropRate','segmentsDepth','values','mouseMove','toDegrees','canvasWidth','colorTable','setData','dynamic','maxAge','off','logInfo','ymin','zIndex','mouseDown','createWindTextures','warn','renderState','data','stringify','initFrameRate','CanvasWindLayer','WindUtil','_tomap','mouseHidden','north','context','samplingWindow','fromDegrees','destoryRenderingFramebuffers','drawingBufferHeight','3.11.6','uniformMap','setOptions','vertexArray','getOwnPropertyDescriptor','position','xmin','LINEAR','add','_speedRate','update','lonRange','WindLayer','type','fragmentShaderSource','fromGeometry','550lVbRQm','CanvasWindField','lineLength','ColorRamp','magnificationFilter','getUVByXY','fromCache','applyViewerParameters','autoClear','isPointVisible','rendering','green','speedRate','_createCanvas','talt','STATIC_DRAW','pixelSize','updateViewerParameters','random','west','changed','_colorRamp','call','24yWitPg','_onMouseDownEvent'];_0x4d1e=function(){return _0x1e92c6;};return _0x4d1e();}_0x81c5b4['__proto__']=null,_0x81c5b4['getU']=getU,_0x81c5b4[_0x3fc01e(-0x1a2,-0x18d)]=getV,_0x81c5b4['getSpeed']=getSpeed,_0x81c5b4[_0x3fc01e(-0x242,-0x248)]=getDirection;var WindUtil=_0x81c5b4;const version=_0x38f528(0x24f,0x2d4),buildTime=_0x38f528(0x2a4,0x25f);var 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=_0x3fc01e(-0x1c3,-0x254),renderParticlesFragmentShader=_0x38f528(0x319,0x2e4),renderParticlesVertexShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a';const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x3fc01e(-0x22f,-0x1e8)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x262f37={};return _0x262f37['sources']=[calculateSpeedShader],new ShaderSource$1(_0x262f37);}static[_0x38f528(0x2e2,0x323)](){function _0x3d9fc8(_0x1b523e,_0x1a65b3){return _0x3fc01e(_0x1a65b3- -0xf6,_0x1b523e);}const _0x476aad={};return _0x476aad[_0x3d9fc8(-0x294,-0x2ba)]=[updatePositionShader],new ShaderSource$1(_0x476aad);}static['getSegmentDrawVertexShader'](){const _0x5f1155={};_0x5f1155[_0x5aa1a8(0x2f1,0x2e6)]=[renderParticlesVertexShader];function _0x5aa1a8(_0x45ba3b,_0x1d3a80){return _0x3fc01e(_0x1d3a80-0x4aa,_0x45ba3b);}return new ShaderSource$1(_0x5f1155);}static[_0x3fc01e(-0x24c,-0x29a)](){const _0x30e182={};return _0x30e182['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x30e182);}static['getPostProcessingPositionShader'](){const _0x2f6d4d={};return _0x2f6d4d['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x2f6d4d);}}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,defined,destroyObject}=mars3d__namespace[_0x38f528(0x22f,0x2a2)];function _0x4e0b(_0x36a9b3,_0x14d125){_0x36a9b3=_0x36a9b3-0x7c;const _0x4d1eb6=_0x4d1e();let _0x4e0b2c=_0x4d1eb6[_0x36a9b3];return _0x4e0b2c;}class CustomPrimitive{constructor(_0x2ac23b){this['commandType']=_0x2ac23b['commandType'],this['geometry']=_0x2ac23b['geometry'],this['attributeLocations']=_0x2ac23b[_0xd782c4(-0x98,-0x45)],this[_0xbb552d(0x433,0x3a6)]=_0x2ac23b['primitiveType'],this['uniformMap']=_0x2ac23b['uniformMap']||{},this[_0xd782c4(-0xaa,-0x7a)]=_0x2ac23b['vertexShaderSource'],this[_0xbb552d(0x3c7,0x3d4)]=_0x2ac23b[_0xbb552d(0x3c7,0x3a2)],this[_0xd782c4(0x36,-0x2)]=_0x2ac23b['rawRenderState'],this['framebuffer']=_0x2ac23b[_0xbb552d(0x3f1,0x3a4)],this['outputTexture']=_0x2ac23b['outputTexture'],this[_0xd782c4(-0x9c,-0xac)]=_0x2ac23b['autoClear']??![],this[_0xbb552d(0x43b,0x3c7)]=_0x2ac23b['preExecute'],this[_0xbb552d(0x480,0x43a)]=!![],this[_0xd782c4(-0x45,-0x96)]=undefined,this['clearCommand']=undefined;function _0xbb552d(_0x4a81cc,_0x1e83ab){return _0x38f528(_0x4a81cc-0x16a,_0x1e83ab);}this['isDynamic']=_0x2ac23b[_0xd782c4(-0x34,-0x2d)]??(()=>!![]);function _0xd782c4(_0x14f829,_0x122b02){return _0x3fc01e(_0x122b02-0x14b,_0x14f829);}this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}[_0x38f528(0x28d,0x229)](_0x1ba861){function _0x223bc1(_0x2d362d,_0x252033){return _0x3fc01e(_0x252033-0x577,_0x2d362d);}function _0x27641b(_0x45ab62,_0x37ab71){return _0x3fc01e(_0x37ab71-0x36e,_0x45ab62);}if(this['commandType']==='Draw'){const _0x490d9b={};_0x490d9b['context']=_0x1ba861,_0x490d9b[_0x223bc1(0x35b,0x338)]=this['geometry'],_0x490d9b['attributeLocations']=this[_0x27641b(0x1c6,0x1de)],_0x490d9b[_0x27641b(0x165,0x113)]=BufferUsage$1[_0x27641b(0x115,0x17e)];const _0x56d087=VertexArray$1['fromGeometry'](_0x490d9b),_0x118668={};_0x118668[_0x27641b(0x137,0x15a)]=_0x1ba861,_0x118668['vertexShaderSource']=this['vertexShaderSource'],_0x118668['fragmentShaderSource']=this[_0x223bc1(0x362,0x376)],_0x118668['attributeLocations']=this['attributeLocations'];const _0x185374=ShaderProgram['fromCache'](_0x118668),_0x45a283=RenderState[_0x27641b(0x163,0x175)](this[_0x223bc1(0x3fe,0x42a)]),_0x422f40={};return _0x422f40['owner']=this,_0x422f40['vertexArray']=_0x56d087,_0x422f40[_0x27641b(0x22e,0x1d9)]=this['primitiveType'],_0x422f40['modelMatrix']=Matrix4['IDENTITY'],_0x422f40[_0x27641b(0x142,0x151)]=_0x45a283,_0x422f40[_0x27641b(0xbe,0x129)]=_0x185374,_0x422f40[_0x27641b(0x160,0x197)]=this[_0x27641b(0x137,0x197)],_0x422f40['uniformMap']=this[_0x27641b(0xd5,0x160)],_0x422f40['pass']=Pass$1[_0x223bc1(0x485,0x42c)],new DrawCommand(_0x422f40);}else{if(this[_0x223bc1(0x301,0x33e)]===_0x27641b(0xcf,0x123)){const _0x49bc6e={};return _0x49bc6e[_0x223bc1(0x315,0x323)]=this,_0x49bc6e['fragmentShaderSource']=this[_0x223bc1(0x3cb,0x376)],_0x49bc6e['uniformMap']=this[_0x27641b(0x1bb,0x160)],_0x49bc6e['outputTexture']=this[_0x27641b(0x1fc,0x191)],_0x49bc6e['persists']=!![],new ComputeCommand(_0x49bc6e);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x3fd077,_0x3fccf4){function _0x3a1a69(_0x6e0942,_0x5de3d5){return _0x38f528(_0x6e0942-0x23f,_0x5de3d5);}this['geometry']=_0x3fccf4;function _0x51be3b(_0x51459b,_0x1e63f5){return _0x38f528(_0x51459b- -0x261,_0x1e63f5);}defined(this[_0x51be3b(0x1c,0x63)])&&(this[_0x51be3b(0x1c,0x23)]['vertexArray']=VertexArray$1[_0x51be3b(-0x3,-0x2b)]({'context':_0x3fd077,'geometry':this['geometry'],'attributeLocations':this[_0x51be3b(0x6d,0x70)],'bufferUsage':BufferUsage$1[_0x3a1a69(0x4ad,0x506)]}));}[_0x38f528(0x259,0x2a5)](_0x4debe8){if(!this[_0x826788(0x509,0x52d)]())return;if(!this['show']||!defined(_0x4debe8))return;!defined(this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x4debe8['context']));defined(this[_0x826788(0x4d7,0x518)])&&this[_0x25ae0d(0xa1,0x13)]();if(!_0x4debe8['commandList']){console[_0x826788(0x4d1,0x487)]('frameState.commandList\x20is\x20undefined');return;}defined(this[_0x826788(0x4ee,0x50c)])&&_0x4debe8[_0x25ae0d(0x9a,0x5a)][_0x25ae0d(-0x12,-0x92)](this['clearCommand']);function _0x826788(_0x481a44,_0x342d36){return _0x38f528(_0x342d36-0x247,_0x481a44);}function _0x25ae0d(_0x3bf822,_0x5caf8c){return _0x3fc01e(_0x3bf822-0x22e,_0x5caf8c);}defined(this['commandToExecute'])&&_0x4debe8['commandList']['push'](this['commandToExecute']);}[_0x38f528(0x211,0x1db)](){return![];}[_0x38f528(0x29c,0x2ae)](){function _0xd9017b(_0xd88f78,_0x382143){return _0x38f528(_0x382143- -0x2a0,_0xd88f78);}function _0x11edbd(_0x18d43c,_0x581e9b){return _0x3fc01e(_0x18d43c-0x489,_0x581e9b);}if(defined(this['commandToExecute'])){var _0x3bd8f5;(_0x3bd8f5=this['commandToExecute'][_0x11edbd(0x244,0x273)])===null||_0x3bd8f5===void 0x0||_0x3bd8f5[_0xd9017b(0x69,-0x4)](),this['commandToExecute']['shaderProgram']=undefined;}return destroyObject(this);}}function deepMerge(_0x261af4,_0x247f03){if(!_0x261af4)return _0x247f03;if(!_0x247f03)return _0x261af4;function _0x34939f(_0x5dcbce,_0x3dcb09){return _0x3fc01e(_0x3dcb09- -0x47,_0x5dcbce);}const _0x32534c={..._0x247f03},_0x4c487c=_0x32534c;function _0x1fc6e8(_0x46402d,_0x3635c3){return _0x38f528(_0x3635c3-0x18d,_0x46402d);}for(const _0x4011a1 in _0x261af4){if(Object['prototype']['hasOwnProperty'][_0x34939f(-0x28d,-0x230)](_0x261af4,_0x4011a1)){const _0x210590=_0x261af4[_0x4011a1],_0x3d04e3=_0x247f03[_0x4011a1];if(Array['isArray'](_0x210590)){_0x4c487c[_0x4011a1]=_0x210590[_0x34939f(-0x227,-0x296)]();continue;}if(_0x210590&&typeof _0x210590==='object'){_0x4c487c[_0x4011a1]=deepMerge(_0x210590,_0x3d04e3||{});continue;}_0x210590!==undefined&&(_0x4c487c[_0x4011a1]=_0x210590);}}return _0x4c487c;}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(_0x1e62dc,_0x3d14cb,_0x567a47,_0x5d86cf,_0x18dbe6){this[_0x67dbe9(-0x1e4,-0x229)]=_0x1e62dc,this['options']=_0x567a47,this['viewerParameters']=_0x5d86cf,this[_0x67dbe9(-0x18c,-0x108)]=_0x3d14cb,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x55a798={};_0x55a798['scene']=_0x18dbe6;function _0x67dbe9(_0x5a13c5,_0x47f1ea){return _0x38f528(_0x5a13c5- -0x42e,_0x47f1ea);}_0x55a798[_0x67dbe9(-0x1e3,-0x213)]=0x1,_0x55a798['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x55a798),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures']();function _0x49f672(_0x2e4004,_0x534761){return _0x3fc01e(_0x534761-0x267,_0x2e4004);}this['createComputingPrimitives']();}[_0x3fc01e(-0x21a,-0x2aa)](){function _0x46dbee(_0x4fa31c,_0x52023e){return _0x38f528(_0x4fa31c- -0x3ea,_0x52023e);}const _0x58d37a=()=>{function _0x505093(_0x5c0ff5,_0x498e0b){return _0x4e0b(_0x5c0ff5-0x2fe,_0x498e0b);}function _0x19cb7c(_0x46dfda,_0x70c37){return _0x4e0b(_0x70c37-0x74,_0x46dfda);}this[_0x19cb7c(0x225,0x203)]['lastFramesPerSecond']>0x14&&(this[_0x19cb7c(0x15e,0x1a6)]=this[_0x505093(0x48d,0x470)]['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0x58d37a();const _0x4abb0e=setInterval(_0x58d37a,0x3e8);function _0x5e54f8(_0x2fc483,_0x3f07c9){return _0x38f528(_0x3f07c9- -0x2c2,_0x2fc483);}const _0x395a8e=this[_0x46dbee(-0x14e,-0x1a0)]['bind'](this);this[_0x5e54f8(0x4f,-0x26)]=()=>{clearInterval(_0x4abb0e),_0x395a8e();};}[_0x38f528(0x23f,0x2cc)](){function _0xb36798(_0x3f3404,_0x11be36){return _0x3fc01e(_0x3f3404-0x279,_0x11be36);}const _0x1d50f0={};_0x1d50f0['minificationFilter']=TextureMinificationFilter$1['LINEAR'];function _0x4e4203(_0x589829,_0x17bdfa){return _0x3fc01e(_0x17bdfa- -0xb1,_0x589829);}_0x1d50f0['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x315534={'context':this['context'],'width':this['windData'][_0x4e4203(-0x2c5,-0x251)],'height':this[_0xb36798(0xbd,0x30)][_0x4e4203(-0x246,-0x20b)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x1d50f0)};this[_0xb36798(0xc2,0x123)]={'U':new Texture$1({..._0x315534,'source':{'arrayBufferView':new Float32Array(this[_0x4e4203(-0x2a4,-0x26d)]['u'][_0xb36798(0x135,0x1c4)])}}),'V':new Texture$1({..._0x315534,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}[_0x38f528(0x1fc,0x1d3)](){const _0x525f15={};function _0x5e2488(_0x5afe65,_0x2d9829){return _0x3fc01e(_0x2d9829-0x53d,_0x5afe65);}_0x525f15[_0x2ccf08(-0x18c,-0x108)]=TextureMinificationFilter$1['NEAREST'];function _0x2ccf08(_0xc62b5f,_0x254d21){return _0x3fc01e(_0x254d21-0x93,_0xc62b5f);}_0x525f15['magnificationFilter']=TextureMagnificationFilter$1[_0x2ccf08(-0x17d,-0x1a1)];const _0x2b59d0={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this[_0x5e2488(0x413,0x3b4)][_0x2ccf08(-0x172,-0x1ce)],'pixelFormat':PixelFormat$1[_0x2ccf08(-0x73,-0xdd)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this[_0x2ccf08(-0x88,-0xf6)]['particlesTextureSize']*0x4)[_0x2ccf08(-0x144,-0xca)](0x0)},'sampler':new Sampler$1(_0x525f15)};this[_0x5e2488(0x3b5,0x38b)]={'previousParticlesPosition':new Texture$1(_0x2b59d0),'currentParticlesPosition':new Texture$1(_0x2b59d0),'nextParticlesPosition':new Texture$1(_0x2b59d0),'postProcessingPosition':new Texture$1(_0x2b59d0),'particlesSpeed':new Texture$1(_0x2b59d0)};}['destroyParticlesTextures'](){Object['values'](this['particlesTextures'])['forEach'](_0x285f79=>_0x285f79['destroy']());}[_0x3fc01e(-0x1cc,-0x17f)](){function _0x6281b6(_0x2b86ce,_0x2bbbac){return _0x3fc01e(_0x2bbbac-0x242,_0x2b86ce);}function _0x5cca27(_0x15b4d7,_0x552350){return _0x38f528(_0x15b4d7-0x1a7,_0x552350);}this[_0x5cca27(0x468,0x457)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0x5cca27(0x44e,0x46b)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x6281b6(0x76,0x86)]['u']['min'],this['windData']['u'][_0x5cca27(0x469,0x4b1)]),'vRange':()=>new Cartesian2$1(this['windData']['v'][_0x5cca27(0x431,0x3c6)],this['windData']['v'][_0x6281b6(0xe9,0xa6)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed'][_0x5cca27(0x431,0x3d7)],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures'][_0x5cca27(0x493,0x514)],'speedScaleFactor':()=>{function _0xd2feff(_0x14ee20,_0x184934){return _0x5cca27(_0x184934- -0x509,_0x14ee20);}return(this[_0xd2feff(-0x63,-0xa2)]['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData']['width'],this[_0x5cca27(0x449,0x4ad)]['height']),'minimum':()=>new Cartesian2$1(this[_0x5cca27(0x449,0x40a)][_0x6281b6(0xb1,0x99)]['west'],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds']['east'],this[_0x5cca27(0x449,0x40f)]['bounds'][_0x6281b6(-0x47,0x2d)])},'fragmentShaderSource':ShaderManager[_0x5cca27(0x490,0x465)](),'outputTexture':this['particlesTextures'][_0x6281b6(0x6a,0x95)],'preExecute':()=>{function _0x2e1a80(_0x3411c3,_0x40a217){return _0x6281b6(_0x3411c3,_0x40a217-0x19c);}const _0x9aea5a=this['particlesTextures']['previousParticlesPosition'];function _0x1863f4(_0x2f0504,_0x37ec0e){return _0x6281b6(_0x2f0504,_0x37ec0e-0x269);}this['particlesTextures'][_0x2e1a80(0x219,0x260)]=this[_0x2e1a80(0x281,0x22c)]['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this[_0x2e1a80(0x22a,0x22c)][_0x1863f4(0x3b6,0x350)],this[_0x1863f4(0x32c,0x2f9)]['postProcessingPosition']=_0x9aea5a,this[_0x2e1a80(0x1d3,0x241)]['calculateSpeed']['commandToExecute']&&(this['primitives'][_0x1863f4(0x26e,0x2fa)][_0x2e1a80(0x1b8,0x1fd)][_0x2e1a80(0x23e,0x201)]=this[_0x2e1a80(0x22f,0x22c)][_0x2e1a80(0x1ef,0x231)]);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x6281b6(0x8f,0x90)]['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x6281b6(0xa9,0x90)]['nextParticlesPosition'],'preExecute':()=>{function _0xb63950(_0x4fff5b,_0x50cd74){return _0x5cca27(_0x50cd74- -0x180,_0x4fff5b);}function _0x3d0370(_0x41734a,_0xf730ce){return _0x6281b6(_0xf730ce,_0x41734a- -0x236);}this['primitives'][_0x3d0370(-0x225,-0x1bb)]['commandToExecute']&&(this['primitives']['updatePosition']['commandToExecute'][_0x3d0370(-0x1d1,-0x177)]=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x5cca27(0x3ba,0x3fe),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x6281b6(-0xab,-0x1a)],'particlesSpeed':()=>this[_0x5cca27(0x453,0x3dc)]['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this[_0x6281b6(0x115,0xa4)][_0x6281b6(0x68,0xd9)],'dataLonRange':()=>new Cartesian2$1(this[_0x6281b6(0x8d,0x86)]['bounds'][_0x6281b6(0x36,0x56)],this[_0x5cca27(0x449,0x47f)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this['windData'][_0x5cca27(0x45c,0x47f)][_0x6281b6(-0x18,0x2d)]),'randomCoefficient':function(){function _0x4a225a(_0x17bfd9,_0x5ca1f4){return _0x5cca27(_0x17bfd9- -0x350,_0x5ca1f4);}return Math[_0x4a225a(0xc8,0xa7)]();},'dropRate':()=>this['options'][_0x6281b6(-0x8,0x14)],'dropRateBump':()=>this[_0x5cca27(0x47c,0x4a8)]['dropRateBump'],'useViewerBounds':()=>this['options']['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x245543(_0x423d28,_0x1b1923){return _0x6281b6(_0x423d28,_0x1b1923- -0x279);}function _0x3e7fe6(_0x406da5,_0x5e38eb){return _0x5cca27(_0x406da5- -0x5b6,_0x5e38eb);}this[_0x245543(-0x24d,-0x1d4)]['postProcessingPosition'][_0x3e7fe6(-0x192,-0x217)]&&(this[_0x3e7fe6(-0x14e,-0x155)]['postProcessingPosition']['commandToExecute']['outputTexture']=this[_0x245543(-0x21a,-0x1e9)]['postProcessingPosition']);},'isDynamic':()=>this['options'][_0x6281b6(-0x69,0x1c)]})};}[_0x38f528(0x290,0x319)](){function _0x59514e(_0x5cf68f,_0x3bb6e4){return _0x38f528(_0x3bb6e4-0x3c,_0x5cf68f);}this['windTextures']['U']['destroy'](),this['windTextures']['V']['destroy'](),this[_0x59514e(0x297,0x27b)]();}[_0x3fc01e(-0x14a,-0xcd)](_0x2f1832){this[_0x1af3e3(0x16a,0x18a)]=_0x2f1832;function _0x1af3e3(_0x3b01e4,_0x44060a){return _0x3fc01e(_0x3b01e4-0x326,_0x44060a);}this['reCreateWindTextures']();}['updateOptions'](_0x2ddbb1){function _0x2c9c5b(_0x376b80,_0x461562){return _0x38f528(_0x461562- -0x4cc,_0x376b80);}const _0x55bb1c=_0x2ddbb1['flipY']!==undefined&&_0x2ddbb1['flipY']!==this['options'][_0x322c24(0x40c,0x443)];function _0x322c24(_0x8b3cab,_0x595216){return _0x3fc01e(_0x8b3cab-0x5f1,_0x595216);}this['options']=deepMerge(_0x2ddbb1,this[_0x2c9c5b(-0x236,-0x1f7)]),_0x55bb1c&&this['reCreateWindTextures']();}['processWindData'](_0x4ab95a){const {array:_0x401aef}=_0x4ab95a;function _0x4b6ef7(_0x4c69fa,_0x153ad1){return _0x38f528(_0x4c69fa- -0x1a,_0x153ad1);}let {min:_0x26775a,max:_0x513031}=_0x4ab95a;const _0x4e1ea6=new Float32Array(_0x401aef['length']);_0x26775a===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x26775a=Math['min'](..._0x401aef));_0x513031===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x513031=Math[_0x290931(0x2fc,0x2e9)](..._0x401aef));const _0x10acae=Math[_0x4b6ef7(0x2a8,0x2d9)](Math[_0x4b6ef7(0x279,0x2fe)](_0x26775a),Math['abs'](_0x513031));for(let _0x5b7d2b=0x0;_0x5b7d2b<_0x401aef[_0x290931(0x2df,0x2dd)];_0x5b7d2b++){const _0x22d611=_0x401aef[_0x5b7d2b]/_0x10acae;_0x4e1ea6[_0x5b7d2b]=_0x22d611;}function _0x290931(_0x3450dc,_0x195427){return _0x3fc01e(_0x3450dc-0x498,_0x195427);}return _0x4e1ea6;}[_0x3fc01e(-0x1c2,-0x1aa)](){function _0xb02bec(_0x5df766,_0x209a81){return _0x3fc01e(_0x5df766-0x461,_0x209a81);}Object[_0xb02bec(0x235,0x2bc)](this[_0x537d78(0x411,0x478)])[_0x537d78(0x442,0x45f)](_0x57a6f5=>_0x57a6f5[_0xb02bec(0x29f,0x311)]()),Object[_0xb02bec(0x235,0x26f)](this['particlesTextures'])['forEach'](_0x20e214=>_0x20e214['destroy']()),Object[_0xb02bec(0x235,0x294)](this['primitives'])['forEach'](_0x6c6736=>_0x6c6736[_0x537d78(0x4c3,0x46d)]());function _0x537d78(_0x431f8d,_0x39e776){return _0x38f528(_0x39e776-0x1d1,_0x431f8d);}this['frameRateMonitor']['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x48c44e,_0x26283a,_0x23e796,_0x926b12){this[_0x33aa85(0x64,0xd9)]=_0x48c44e,this[_0x33aa85(0xef,0x175)]=_0x26283a,this[_0x33aa85(0xda,0x109)]=_0x23e796,this[_0x1875ac(-0x82,-0xb8)]=_0x926b12;function _0x33aa85(_0xd11026,_0x492b89){return _0x3fc01e(_0xd11026-0x278,_0x492b89);}(typeof this['options'][_0x33aa85(0x17,-0x6a)]!=='number'||this['options'][_0x1875ac(-0x12e,-0xe6)]<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x1875ac(-0x40,-0xe)]['particlesTextureSize']=0x100);function _0x1875ac(_0x1e459,_0x195f7f){return _0x3fc01e(_0x195f7f-0x17b,_0x1e459);}this['colorTable']=this[_0x33aa85(0x15,-0x2f)](),this[_0x33aa85(0x3c,0x89)]=this['createRenderingTextures'](),this['framebuffers']=this[_0x33aa85(0xb1,0xef)](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x5e6661={};_0x5e6661[_0x46b85d(-0x56,-0x37)]=this[_0xb2def(-0x278,-0x20e)],_0x5e6661['width']=this['context']['drawingBufferWidth'],_0x5e6661[_0x46b85d(0xd7,0x83)]=this['context'][_0xb2def(-0x1b9,-0x20a)],_0x5e6661['pixelFormat']=PixelFormat[_0x46b85d(0xe9,0x6d)];function _0x46b85d(_0x1afe3e,_0x2d7a8d){return _0x38f528(_0x2d7a8d- -0x281,_0x1afe3e);}_0x5e6661[_0xb2def(-0x201,-0x174)]=PixelDatatype['UNSIGNED_BYTE'];const _0x2ebf99=_0x5e6661,_0x44f4dd={};_0x44f4dd['context']=this['context'],_0x44f4dd['width']=this['context']['drawingBufferWidth'],_0x44f4dd['height']=this['context']['drawingBufferHeight'];function _0xb2def(_0x5642fa,_0xb47d75){return _0x3fc01e(_0xb47d75-0x6,_0x5642fa);}_0x44f4dd[_0xb2def(-0x130,-0x141)]=PixelFormat[_0x46b85d(0xcb,0x71)],_0x44f4dd[_0x46b85d(0x50,0x63)]=PixelDatatype[_0xb2def(-0x215,-0x19e)];const _0x2e7f5c=_0x44f4dd;return{'segmentsColor':new Texture(_0x2ebf99),'segmentsDepth':new Texture(_0x2e7f5c)};}['createRenderingFramebuffers'](){const _0xc811b9={};_0xc811b9[_0x18a8e3(0x39b,0x3d9)]=this['context'],_0xc811b9['colorTextures']=[this['textures']['segmentsColor']];function _0x38cd60(_0x438d0c,_0x1465cc){return _0x3fc01e(_0x1465cc-0x34d,_0x438d0c);}_0xc811b9['depthTexture']=this['textures'][_0x18a8e3(0x382,0x344)];function _0x18a8e3(_0x5aae07,_0x4421a6){return _0x3fc01e(_0x5aae07-0x5af,_0x4421a6);}return{'segments':new Framebuffer(_0xc811b9)};}[_0x38f528(0x24d,0x1c0)](){function _0x369a74(_0x1d2085,_0x44c7c5){return _0x38f528(_0x1d2085- -0x137,_0x44c7c5);}Object[_0x369a74(0xfb,0x104)](this['framebuffers'])['forEach'](_0x4f0d0d=>{_0x4f0d0d['destroy']();});}[_0x38f528(0x1fb,0x1f3)](){function _0x235c4d(_0x59a2d5,_0x427e9f){return _0x3fc01e(_0x427e9f-0x392,_0x59a2d5);}const _0x1f1048=new Float32Array(this['options'][_0x5c98be(0x3b2,0x441)][_0x235c4d(0x28f,0x22d)](_0x32dfb6=>{function _0x37d254(_0x522c76,_0x2d32be){return _0x5c98be(_0x522c76- -0xc7,_0x2d32be);}function _0x33fea6(_0x26fc73,_0x5e6be5){return _0x5c98be(_0x26fc73- -0x1ad,_0x5e6be5);}const _0x49872b=Color$1[_0x37d254(0x224,0x1d4)](_0x32dfb6);return[_0x49872b['red'],_0x49872b[_0x37d254(0x274,0x1ed)],_0x49872b['blue'],_0x49872b['alpha']];})),_0x235918={};_0x235918['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x235918[_0x235c4d(0x1a9,0x197)]=TextureMagnificationFilter[_0x5c98be(0x327,0x2b7)],_0x235918['wrapS']=TextureWrap['CLAMP_TO_EDGE'];function _0x5c98be(_0x100508,_0x215cba){return _0x3fc01e(_0x100508-0x52f,_0x215cba);}return _0x235918['wrapT']=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this['context'],'width':this['options'][_0x5c98be(0x3b2,0x34c)][_0x235c4d(0x18f,0x1d9)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x235918),'source':{'width':this['options']['colors']['length'],'height':0x1,'arrayBufferView':_0x1f1048}});}[_0x3fc01e(-0x1b3,-0x182)](){function _0x1b2344(_0x461093,_0x5226b7){return _0x3fc01e(_0x461093-0x297,_0x5226b7);}const _0x48e500=0x4,_0x4c130e=this[_0x226a58(-0x142,-0x1ca)]['particlesTextureSize'];let _0xc586ba=[];for(let _0xa2cac3=0x0;_0xa2cac3<_0x4c130e;_0xa2cac3++){for(let _0x933bd=0x0;_0x933bd<_0x4c130e;_0x933bd++){for(let _0x3c6423=0x0;_0x3c6423<_0x48e500;_0x3c6423++){_0xc586ba['push'](_0xa2cac3/_0x4c130e),_0xc586ba[_0x226a58(-0x28d,-0x281)](_0x933bd/_0x4c130e);}}}_0xc586ba=new Float32Array(_0xc586ba);const _0x31a9f1=this['options']['particlesTextureSize']**0x2;let _0xabcfb8=[];for(let _0x1951c5=0x0;_0x1951c5<_0x31a9f1;_0x1951c5++){_0xabcfb8[_0x226a58(-0x26f,-0x281)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0xabcfb8=new Float32Array(_0xabcfb8);function _0x226a58(_0x5711c2,_0x4a25e8){return _0x38f528(_0x4a25e8- -0x49f,_0x5711c2);}let _0x14836e=[];for(let _0x3ffa66=0x0,_0x26f400=0x0;_0x3ffa66<_0x31a9f1;_0x3ffa66++){_0x14836e[_0x226a58(-0x300,-0x281)](_0x26f400+0x0,_0x26f400+0x1,_0x26f400+0x2,_0x26f400+0x2,_0x26f400+0x1,_0x26f400+0x3),_0x26f400+=_0x48e500;}_0x14836e=new Uint32Array(_0x14836e);const _0x323b24={};_0x323b24['componentDatatype']=ComponentDatatype['FLOAT'],_0x323b24['componentsPerAttribute']=0x2,_0x323b24[_0x226a58(-0x252,-0x26d)]=_0xc586ba;const _0xaf1f2a={};_0xaf1f2a['componentDatatype']=ComponentDatatype['FLOAT'],_0xaf1f2a[_0x1b2344(0x3f,0xb7)]=0x3,_0xaf1f2a['values']=_0xabcfb8;const _0x1a2c84=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x323b24),'normal':new GeometryAttribute(_0xaf1f2a)}),'indices':_0x14836e});return _0x1a2c84;}[_0x38f528(0x27c,0x25a)](_0x4b9464){const _0x66a5d={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x4b9464};function _0x4f9246(_0x2afe3f,_0x8d7169){return _0x38f528(_0x2afe3f-0x15f,_0x8d7169);}return Appearance[_0x4f9246(0x42e,0x447)](!![],![],_0x66a5d);}['createPrimitives'](){const _0x14cf7e={};function _0x323a65(_0x5af9db,_0x45ab8c){return _0x38f528(_0x45ab8c- -0x1c9,_0x5af9db);}_0x14cf7e['st']=0x0,_0x14cf7e[_0x1b504e(-0x13b,-0xad)]=0x1;const _0x52a907={};_0x52a907['enabled']=!![];const _0x550144={};_0x550144['enabled']=!![],_0x550144[_0x1b504e(-0x9e,-0xf5)]=WebGLRenderingContext['FUNC_ADD'],_0x550144['blendFuncSource']=WebGLRenderingContext[_0x323a65(0xf1,0xc3)],_0x550144['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x56995c={};_0x56995c[_0x323a65(0x13c,0xda)]=undefined,_0x56995c[_0x323a65(0x88,0x5a)]=_0x52a907,_0x56995c['depthMask']=!![],_0x56995c['blending']=_0x550144;const _0x3a3b0c=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x14cf7e,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x323a65(0x166,0xe3)]['previousParticlesPosition'],'currentParticlesPosition':()=>this[_0x1b504e(-0x170,-0x180)]['particlesTextures'][_0x323a65(0x165,0x123)],'postProcessingPosition':()=>this['computing']['particlesTextures'][_0x323a65(0x1c3,0x13a)],'particlesSpeed':()=>this['computing'][_0x1b504e(-0x122,-0xff)]['particlesSpeed'],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{var _0x63e6d1,_0xa96da8;function _0x5d217f(_0x4a7302,_0x35e215){return _0x323a65(_0x35e215,_0x4a7302-0x3e0);}const _0x35faf7=new Cartesian2(((_0x63e6d1=this['options']['domain'])===null||_0x63e6d1===void 0x0?void 0x0:_0x63e6d1[_0x58856d(0x35d,0x36b)])??this['computing'][_0x5d217f(0x4b9,0x4f7)]['speed'][_0x5d217f(0x4a1,0x4b8)],((_0xa96da8=this['options']['domain'])===null||_0xa96da8===void 0x0?void 0x0:_0xa96da8['max'])??this['computing']['windData']['speed'][_0x5d217f(0x4d9,0x554)]);function _0x58856d(_0x61c5cf,_0x54d109){return _0x323a65(_0x61c5cf,_0x54d109-0x2aa);}return _0x35faf7;},'displayRange':()=>{var _0x1737ef,_0xc65993;function _0x4ffb00(_0x4e8d8e,_0x150fcd){return _0x1b504e(_0x4e8d8e,_0x150fcd- -0xa2);}function _0xd6e3dd(_0x1aa423,_0x4451df){return _0x1b504e(_0x1aa423,_0x4451df- -0xba);}const _0x520a4e=new Cartesian2(((_0x1737ef=this['options'][_0xd6e3dd(-0x25b,-0x1e1)])===null||_0x1737ef===void 0x0?void 0x0:_0x1737ef[_0xd6e3dd(-0x1f9,-0x1db)])??this[_0x4ffb00(-0x2a4,-0x222)]['windData']['speed']['min'],((_0xc65993=this['options'][_0xd6e3dd(-0x261,-0x1e1)])===null||_0xc65993===void 0x0?void 0x0:_0xc65993[_0x4ffb00(-0x1fb,-0x18b)])??this['computing']['windData']['speed']['max']);return _0x520a4e;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context'][_0x1b504e(-0x1cb,-0x15d)],'pixelSize':()=>this['viewerParameters'][_0x1b504e(-0x1a6,-0x13c)],'lineWidth':()=>{const _0x156903={};function _0x5b8a1d(_0x2f33fc,_0xf4de83){return _0x1b504e(_0xf4de83,_0x2f33fc- -0x1b1);}function _0x1725f3(_0x514d10,_0x4a55b1){return _0x1b504e(_0x514d10,_0x4a55b1-0xcf);}_0x156903[_0x5b8a1d(-0x2d2,-0x2f2)]=0x1,_0x156903[_0x5b8a1d(-0x29a,-0x2e8)]=0x2;const _0x261a1b=this['options'][_0x1725f3(-0xac,-0x54)]||_0x156903;return new Cartesian2(_0x261a1b['min'],_0x261a1b['max']);},'lineLength':()=>{const _0x1d860b={};_0x1d860b['min']=0x14,_0x1d860b[_0xce451(0x77,0x1c)]=0x64;function _0x4a1584(_0xbb89f7,_0x8aeecb){return _0x323a65(_0x8aeecb,_0xbb89f7-0x432);}function _0xce451(_0x111be4,_0x8547a4){return _0x1b504e(_0x111be4,_0x8547a4-0x105);}const _0x49c520=this['options'][_0x4a1584(0x4ca,0x4a2)]||_0x1d860b;return new Cartesian2(_0x49c520['min'],_0x49c520[_0x4a1584(0x52b,0x56e)]);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x1b504e(-0xe4,-0xb7)],'segmentsDepthTexture':()=>this[_0x323a65(-0x27,0x59)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x323a65(0xad,0x49)](),'rawRenderState':this[_0x1b504e(-0xa1,-0x12f)](_0x56995c)}),_0x672f42={};function _0x1b504e(_0x191ea6,_0x145482){return _0x38f528(_0x145482- -0x3ab,_0x191ea6);}return _0x672f42[_0x1b504e(-0x11f,-0xd3)]=_0x3a3b0c,_0x672f42;}['onParticlesTextureSizeChange'](){function _0x139f5a(_0x3f7a51,_0x4ad17f){return _0x3fc01e(_0x3f7a51-0x426,_0x4ad17f);}const _0x1b2558=this[_0x2f4ee7(-0x1b5,-0x21a)]();this[_0x139f5a(0x289,0x238)]['segments']['geometry']=_0x1b2558;const _0x23721d={};_0x23721d[_0x2f4ee7(-0x23c,-0x27b)]=this['context'],_0x23721d['geometry']=_0x1b2558,_0x23721d['attributeLocations']=this[_0x2f4ee7(-0x296,-0x204)][_0x139f5a(0x2a0,0x239)]['attributeLocations'],_0x23721d[_0x139f5a(0x1cb,0x1e6)]=BufferUsage['STATIC_DRAW'];const _0x31ebb8=VertexArray[_0x139f5a(0x226,0x29f)](_0x23721d);function _0x2f4ee7(_0x2aa1a4,_0x5d6349){return _0x38f528(_0x5d6349- -0x4c5,_0x2aa1a4);}this[_0x139f5a(0x289,0x301)]['segments'][_0x2f4ee7(-0x2a7,-0x248)]&&(this['primitives'][_0x2f4ee7(-0x15f,-0x1ed)][_0x2f4ee7(-0x20f,-0x248)][_0x2f4ee7(-0x2bf,-0x273)]=_0x31ebb8);}['onColorTableChange'](){function _0x30b0dd(_0x134ab0,_0x5de824){return _0x38f528(_0x134ab0-0x65,_0x5de824);}this[_0x30b0dd(0x29b,0x317)]['destroy'](),this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x4c808e){const _0x1cb53e=_0x4c808e['colors']&&JSON['stringify'](_0x4c808e[_0x29a08f(0x3a5,0x37d)])!==JSON[_0x226085(0x2f8,0x27c)](this['options'][_0x29a08f(0x3e7,0x37d)]);function _0x29a08f(_0x52ee24,_0x25cc57){return _0x3fc01e(_0x25cc57-0x4fa,_0x52ee24);}this['options']=deepMerge(_0x4c808e,this['options']);function _0x226085(_0x416c2c,_0x5ec1af){return _0x38f528(_0x5ec1af-0x39,_0x416c2c);}_0x1cb53e&&this[_0x29a08f(0x2d3,0x31f)]();}['destroy'](){function _0x43b1d7(_0x3d5dd6,_0x19d47d){return _0x38f528(_0x3d5dd6-0x63,_0x19d47d);}Object[_0x3cf8bc(0x331,0x332)](this[_0x3cf8bc(0x28c,0x307)])['forEach'](_0x2d2f5a=>{_0x2d2f5a['destroy']();});function _0x3cf8bc(_0x824217,_0x117b8a){return _0x38f528(_0x117b8a-0x100,_0x824217);}Object['values'](this[_0x3cf8bc(0x344,0x3c1)])['forEach'](_0x46dc05=>{function _0x4a15e0(_0x1f58a3,_0x23fe52){return _0x3cf8bc(_0x23fe52,_0x1f58a3- -0x240);}_0x46dc05[_0x4a15e0(0x15c,0x12b)]();}),this[_0x3cf8bc(0x2e4,0x336)][_0x43b1d7(0x2ff,0x2f7)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x432a5a,_0x54d886,_0x249d44,_0x306cc8,_0xb103b7){this[_0x1a54bf(-0x10a,-0xa9)]=_0x432a5a,this['options']=_0x249d44,this['viewerParameters']=_0x306cc8,this['computing']=new WindParticlesComputing(_0x432a5a,_0x54d886,_0x249d44,_0x306cc8,_0xb103b7);function _0x1a54bf(_0x2aaed7,_0x3771ec){return _0x38f528(_0x2aaed7- -0x354,_0x3771ec);}this[_0x1a54bf(-0xeb,-0x16c)]=new WindParticlesRendering(_0x432a5a,_0x249d44,_0x306cc8,this['computing']);function _0x136d51(_0x4c1a87,_0x997614){return _0x38f528(_0x4c1a87- -0x3c,_0x997614);}this['clearFramebuffers']();}[_0x38f528(0x31b,0x2ae)](){function _0x1536ab(_0x1a6445,_0x13858e){return _0x3fc01e(_0x1a6445- -0x34,_0x13858e);}function _0x2ff88f(_0x3eb9ad,_0x4d2a6c){return _0x38f528(_0x3eb9ad- -0x141,_0x4d2a6c);}const _0x5c3f78=[this['computing']['primitives']['calculateSpeed'],this['computing'][_0x1536ab(-0x1d1,-0x1b9)]['updatePosition'],this['computing'][_0x2ff88f(0x180,0xff)][_0x2ff88f(0x1c2,0x23f)],this['rendering']['primitives']['segments']];return _0x5c3f78;}[_0x3fc01e(-0x246,-0x248)](){const _0x4526a5=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x1eb4f4(_0x4dd773,_0x56b60f){return _0x38f528(_0x56b60f- -0x552,_0x4dd773);}function _0x596501(_0x3f5d04,_0x5761ce){return _0x38f528(_0x3f5d04- -0x503,_0x5761ce);}Object[_0x1eb4f4(-0x29b,-0x2da)](this[_0x596501(-0x29a,-0x27a)]['framebuffers'])['forEach'](_0x36c95a=>{_0x4526a5['framebuffer']=this['rendering']['framebuffers'][_0x36c95a];function _0x4da8f9(_0x3e001b,_0x2f56cb){return _0x596501(_0x3e001b-0x5e4,_0x2f56cb);}function _0x5d278e(_0x4b9670,_0x814786){return _0x1eb4f4(_0x814786,_0x4b9670-0x11f);}_0x4526a5[_0x5d278e(-0x192,-0x1d3)](this[_0x4da8f9(0x32b,0x2e7)]);});}['changeOptions'](_0xf11430){function _0x2d6b23(_0x339c6e,_0x11b19a){return _0x38f528(_0x11b19a-0x70,_0x339c6e);}let _0x364063=![];function _0x4b5dc2(_0x3f0db9,_0x240b4d){return _0x38f528(_0x240b4d-0x248,_0x3f0db9);}_0xf11430[_0x4b5dc2(0x464,0x445)]&&this['options'][_0x2d6b23(0x230,0x26d)]!==_0xf11430['particlesTextureSize']&&(_0x364063=!![]);const _0x47d950=deepMerge(_0xf11430,this['options']);if(_0x47d950[_0x2d6b23(0x237,0x26d)]<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x47d950,this['rendering']['updateOptions'](_0xf11430),this['computing']['updateOptions'](_0xf11430),_0x364063&&(this['computing']['destroyParticlesTextures'](),this[_0x4b5dc2(0x4da,0x473)]['createParticlesTextures'](),this['rendering'][_0x2d6b23(0x253,0x297)]());}[_0x38f528(0x266,0x27c)](_0x40aa9c){this[_0x11f44d(0x36e,0x386)]=_0x40aa9c,this[_0x11f44d(0x280,0x2f1)][_0x11f44d(0x402,0x386)]=_0x40aa9c;function _0xbb841b(_0x4b8f32,_0x2f487b){return _0x3fc01e(_0x2f487b-0x686,_0x4b8f32);}function _0x11f44d(_0xeb1482,_0x4c5fb4){return _0x3fc01e(_0x4c5fb4-0x524,_0xeb1482);}this['rendering'][_0x11f44d(0x3a8,0x386)]=_0x40aa9c;}['destroy'](){function _0x5607f4(_0x2df692,_0x57ea76){return _0x3fc01e(_0x2df692-0x459,_0x57ea76);}this['computing'][_0x5607f4(0x297,0x2eb)]();function _0x44c213(_0x56453a,_0x2e26e3){return _0x38f528(_0x56453a- -0x210,_0x2e26e3);}this['rendering'][_0x44c213(0x8c,0xcf)]();}}const Cesium$1=mars3d__namespace[_0x3fc01e(-0x22f,-0x1b2)],BaseLayer$1=mars3d__namespace[_0x3fc01e(-0x141,-0x17c)][_0x38f528(0x300,0x330)],_0x30d63f={};_0x30d63f['min']=0x1,_0x30d63f[_0x3fc01e(-0x19c,-0x160)]=0x2;const _0xc3d4e2={};_0xc3d4e2[_0x3fc01e(-0x1d4,-0x1f3)]=0x14,_0xc3d4e2[_0x38f528(0x2c2,0x337)]=0x64;const _0x2520fa={};_0x2520fa[_0x3fc01e(-0x261,-0x245)]=0x64,_0x2520fa[_0x38f528(0x295,0x324)]=0x0,_0x2520fa['lineWidth']=_0x30d63f,_0x2520fa[_0x38f528(0x261,0x2ac)]=_0xc3d4e2,_0x2520fa[_0x38f528(0x29f,0x28f)]=0x1,_0x2520fa['dropRate']=0.003,_0x2520fa[_0x38f528(0x2a9,0x23d)]=0.001,_0x2520fa[_0x38f528(0x2e1,0x28a)]=['rgb(206,255,255)'],_0x2520fa[_0x38f528(0x279,0x2b9)]=![],_0x2520fa['dynamic']=!![];const DEF_OPTIONS=_0x2520fa;class WindLayer extends BaseLayer$1{constructor(_0x78d367={}){_0x78d367={...DEF_OPTIONS,..._0x78d367},super(_0x78d367);function _0x256e48(_0xbdd36e,_0x151cb9){return _0x38f528(_0xbdd36e-0x200,_0x151cb9);}this[_0x256e48(0x4d3,0x526)](_0x78d367,_0x78d367);}get['layer'](){return this['primitives'];}get[_0x38f528(0x242,0x1b8)](){function _0x28f4b9(_0x4be5b1,_0x4cfac2){return _0x38f528(_0x4be5b1-0x11d,_0x4cfac2);}return this[_0x28f4b9(0x3f2,0x45a)]['data'];}set[_0x38f528(0x242,0x289)](_0x526557){function _0x5d92ee(_0x2b225a,_0x5b007a){return _0x3fc01e(_0x2b225a- -0xd5,_0x5b007a);}this['options'][_0x5d92ee(-0x2f1,-0x295)]=_0x526557,this['setData'](_0x526557);}get['colors'](){function _0x1d46ed(_0x28b4ec,_0x415473){return _0x38f528(_0x28b4ec-0x74,_0x415473);}return this[_0x1d46ed(0x349,0x39e)]['colors'];}set[_0x38f528(0x2e1,0x26b)](_0x59d253){function _0x400f2f(_0x53a716,_0x482637){return _0x38f528(_0x482637-0x1bd,_0x53a716);}function _0x303708(_0x3811b6,_0x213bbf){return _0x38f528(_0x213bbf- -0x1da,_0x3811b6);}this[_0x303708(0x79,0xfb)]['colors']=_0x59d253;const _0x1c67af={};_0x1c67af[_0x400f2f(0x501,0x49e)]=_0x59d253,this['_setOptionsHook'](this['options'],_0x1c67af);}[_0x3fc01e(-0x176,-0xea)](_0x2d2ae3){function _0x46bc1e(_0x17a9b8,_0x49bf39){return _0x38f528(_0x17a9b8- -0x1a6,_0x49bf39);}_0x2d2ae3?this['_addedHook']():this[_0x46bc1e(0x127,0x173)]();}[_0x3fc01e(-0x18c,-0x126)](){}[_0x38f528(0x1ff,0x170)](){this['scene']=this['_map'][_0x37b4e4(-0x186,-0x169)],this['camera']=this[_0x32aeb8(-0xcd,-0x10b)]['camera'];this[_0x37b4e4(-0x1aa,-0x13e)][_0x37b4e4(-0x16e,-0x1d1)]&&this['setData'](this['options']['data']);if(!this['windData']||!this[_0x37b4e4(-0xb8,-0xfd)])return;this[_0x37b4e4(-0x101,-0x153)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x37b4e4(-0x1b7,-0x169)][_0x32aeb8(-0x110,-0xea)]};function _0x32aeb8(_0x345c5b,_0x298a09){return _0x38f528(_0x298a09- -0x310,_0x345c5b);}this['updateViewerParameters']();function _0x37b4e4(_0x30f451,_0x1e6051){return _0x3fc01e(_0x1e6051-0x4b,_0x30f451);}this['particleSystem']=new WindParticleSystem(this['scene'][_0x37b4e4(-0x1df,-0x1c9)],this['windData'],this[_0x32aeb8(0x4b,-0x3b)],this[_0x32aeb8(-0x15,-0x50)],this['scene']),this['primitives']=this['particleSystem']['getPrimitives'](),this['primitives']['forEach'](_0x210685=>{function _0x46796d(_0x4d6d2c,_0x2f1753){return _0x37b4e4(_0x2f1753,_0x4d6d2c-0x3b6);}function _0x4b6085(_0x42c8cb,_0x3fa266){return _0x37b4e4(_0x3fa266,_0x42c8cb-0x4a);}this[_0x4b6085(-0x11f,-0xaa)]['primitives'][_0x46796d(0x1fa,0x19d)](_0x210685);}),this[_0x37b4e4(-0x135,-0x15f)]['percentageChanged']=0.01,this['camera'][_0x32aeb8(-0x38,-0x9d)][_0x37b4e4(-0x12e,-0x16b)](this[_0x37b4e4(-0x22d,-0x1a3)][_0x37b4e4(-0xd0,-0x11c)](this)),this['scene']['morphComplete']['addEventListener'](this[_0x32aeb8(-0x48,-0xa0)][_0x32aeb8(0x54,-0x19)](this)),window['addEventListener'](_0x32aeb8(-0x95,-0x100),this['updateViewerParameters']['bind'](this));}['_removedHook'](){function _0x252ca2(_0x4aa044,_0x5a7b5b){return _0x38f528(_0x4aa044- -0x8a,_0x5a7b5b);}this[_0x252ca2(0x22a,0x219)]['changed'][_0x252ca2(0x285,0x25f)](this['updateViewerParameters']['bind'](this)),this[_0x252ca2(0x220,0x1a5)]['morphComplete'][_0x252ca2(0x285,0x30e)](this[_0x252ca2(0x1e6,0x235)]['bind'](this)),window[_0x1a3a23(0x3b3,0x421)](_0x1a3a23(0x39f,0x322),this[_0x1a3a23(0x35a,0x382)]['bind'](this));function _0x1a3a23(_0x4b2fc9,_0x4674b5){return _0x38f528(_0x4674b5-0x112,_0x4b2fc9);}this['primitives']&&(this[_0x252ca2(0x237,0x1fb)][_0x252ca2(0x204,0x1cd)](_0x4585e4=>{this['scene']['primitives']['remove'](_0x4585e4);}),delete this['primitives']),this['particleSystem']&&(this[_0x252ca2(0x281,0x22f)]['destroy'](),delete this['particleSystem']);}['setData'](_0x24e772,_0xf9d517){this['windData']=this[_0x1d59ba(0x357,0x36b)](_0x24e772);if(_0xf9d517){this['_removedHook'](),this['_addedHook']();return;}function _0x1d59ba(_0x406aa3,_0x5eab58){return _0x38f528(_0x5eab58-0xe5,_0x406aa3);}function _0x1018f8(_0x17377a,_0x5236e9){return _0x3fc01e(_0x17377a-0x342,_0x5236e9);}this[_0x1018f8(0x1ef,0x1c7)]?(this[_0x1d59ba(0x399,0x3f0)]['computing']['updateWindData'](this['windData']),this[_0x1018f8(0x18e,0x1cb)][_0x1d59ba(0x39b,0x3ed)]()):this['_addedHook']();}['_setOptionsHook'](_0x517006,_0x15210a){function _0x424518(_0x44061b,_0x47f654){return _0x3fc01e(_0x47f654- -0xa1,_0x44061b);}function _0x5fe279(_0x9e68a4,_0x6682a7){return _0x38f528(_0x6682a7-0x59,_0x9e68a4);}this[_0x5fe279(0x32e,0x364)]&&(this[_0x424518(-0x170,-0x1f4)]['changeOptions'](_0x15210a),this['scene']['requestRender']());}['processWindData'](_0x251b7b){var _0x204e25,_0x583e48;const _0x445710={..._0x251b7b},_0x2b04c5=_0x445710;function _0x41cde3(_0x4f5945,_0x2b33e6){return _0x38f528(_0x4f5945- -0x17,_0x2b33e6);}!_0x2b04c5['height']&&_0x2b04c5[_0x41cde3(0x1ea,0x160)]&&(_0x2b04c5['height']=_0x2b04c5['rows']);!_0x2b04c5['width']&&_0x2b04c5['cols']&&(_0x2b04c5[_0x41cde3(0x2a7,0x234)]=_0x2b04c5[_0x59fb3a(-0x4,-0x37)]);!_0x2b04c5[_0x59fb3a(0x9b,0xa1)]&&(_0x2b04c5[_0x41cde3(0x29e,0x21f)]={'west':_0x2b04c5[_0x41cde3(0x23e,0x226)],'south':_0x2b04c5['ymin'],'east':_0x2b04c5['xmax'],'north':_0x2b04c5['ymax']});function _0x59fb3a(_0x7fe0d3,_0x2b63f6){return _0x3fc01e(_0x7fe0d3-0x244,_0x2b63f6);}if(!_0x2b04c5['u']){const _0x29889c={};_0x29889c[_0x41cde3(0x303,0x2d2)]=_0x251b7b['udata'],_0x29889c[_0x59fb3a(0x70,0x86)]=_0x251b7b['umin'],_0x29889c[_0x59fb3a(0xa8,0x136)]=_0x251b7b[_0x59fb3a(0x14,0x72)],_0x2b04c5['u']=_0x29889c;}if(!_0x2b04c5['v']){const _0x318a29={};_0x318a29['array']=_0x251b7b['vdata'],_0x318a29['min']=_0x251b7b['vmin'],_0x318a29[_0x41cde3(0x2ab,0x316)]=_0x251b7b['vmax'],_0x2b04c5['v']=_0x318a29;}if(((_0x204e25=_0x2b04c5['speed'])===null||_0x204e25===void 0x0?void 0x0:_0x204e25[_0x59fb3a(0x70,0x9)])===undefined||((_0x583e48=_0x2b04c5[_0x41cde3(0x278,0x22e)])===null||_0x583e48===void 0x0?void 0x0:_0x583e48[_0x41cde3(0x2ab,0x30e)])===undefined||_0x2b04c5['speed']['array']===undefined){const _0x26e37c={'array':new Float32Array(_0x2b04c5['u']['array']['length']),'min':Number[_0x41cde3(0x297,0x312)],'max':Number[_0x59fb3a(-0x12,0x58)]};for(let _0x2c5f01=0x0;_0x2c5f01<_0x2b04c5['u']['array'][_0x41cde3(0x28e,0x254)];_0x2c5f01++){_0x26e37c[_0x59fb3a(0x100,0x8a)][_0x2c5f01]=Math['sqrt'](_0x2b04c5['u']['array'][_0x2c5f01]*_0x2b04c5['u']['array'][_0x2c5f01]+_0x2b04c5['v'][_0x59fb3a(0x100,0xc7)][_0x2c5f01]*_0x2b04c5['v']['array'][_0x2c5f01]),_0x26e37c[_0x41cde3(0x303,0x28e)][_0x2c5f01]!==0x0&&(_0x26e37c[_0x41cde3(0x273,0x2bc)]=Math['min'](_0x26e37c['min'],_0x26e37c[_0x41cde3(0x303,0x34c)][_0x2c5f01]),_0x26e37c[_0x59fb3a(0xa8,0x119)]=Math['max'](_0x26e37c[_0x59fb3a(0xa8,0xfb)],_0x26e37c[_0x59fb3a(0x100,0x163)][_0x2c5f01]));}_0x2b04c5[_0x41cde3(0x278,0x271)]=_0x26e37c;}return _0x2b04c5;}['updateViewerParameters'](){var _0x468d37;const _0x10c3e4=this['scene'];if(!_0x10c3e4)return;const _0x565476=_0x10c3e4['canvas'],_0x23bf0d={};_0x23bf0d['x']=0x0,_0x23bf0d['y']=0x0;function _0x532bc2(_0xd34ab1,_0x353176){return _0x3fc01e(_0xd34ab1- -0x6f,_0x353176);}const _0xf5adb7={};_0xf5adb7['x']=0x0,_0xf5adb7['y']=_0x565476['clientHeight'];const _0x21ebfb={};_0x21ebfb['x']=_0x565476[_0x532bc2(-0x2a5,-0x270)],_0x21ebfb['y']=0x0;const _0x1214ff={};_0x1214ff['x']=_0x565476[_0xa5c520(0x213,0x22b)],_0x1214ff['y']=_0x565476['clientHeight'];const _0x263dfc=[_0x23bf0d,_0xf5adb7,_0x21ebfb,_0x1214ff];let _0x345b1e=0xb4,_0x70fc12=-0xb4,_0x4c2b4d=0x5a,_0x11e72f=-0x5a,_0x5ef7db=![];for(const _0x452664 of _0x263dfc){const _0x3f7dce=_0x10c3e4[_0x532bc2(-0x219,-0x1ce)][_0x532bc2(-0x2c1,-0x25e)](new Cesium$1['Cartesian2'](_0x452664['x'],_0x452664['y']),_0x10c3e4['globe'][_0xa5c520(0x2c6,0x34a)]);if(!_0x3f7dce){_0x5ef7db=!![];break;}const _0x4ddd8d=_0x10c3e4[_0xa5c520(0x2c1,0x2a8)]['ellipsoid']['cartesianToCartographic'](_0x3f7dce),_0x5bde54=Cesium$1['Math']['toDegrees'](_0x4ddd8d['longitude']),_0x1ac7e3=Cesium$1['Math'][_0xa5c520(0x21f,0x289)](_0x4ddd8d['latitude']);_0x345b1e=Math['min'](_0x345b1e,_0x5bde54),_0x70fc12=Math['max'](_0x70fc12,_0x5bde54),_0x4c2b4d=Math['min'](_0x4c2b4d,_0x1ac7e3),_0x11e72f=Math['max'](_0x11e72f,_0x1ac7e3);}function _0xa5c520(_0x306750,_0x243012){return _0x38f528(_0x306750- -0x15,_0x243012);}if(!_0x5ef7db){const _0x27bced=new Cesium$1[(_0x532bc2(-0x1fd,-0x228))](Math[_0x532bc2(-0x20b,-0x21d)](this['windData']['bounds'][_0xa5c520(0x25d,0x287)],_0x345b1e),Math[_0xa5c520(0x275,0x29d)](this[_0x532bc2(-0x22b,-0x264)]['bounds'][_0xa5c520(0x2e7,0x269)],_0x70fc12)),_0x2e9cc6=new Cesium$1['Cartesian2'](Math[_0x532bc2(-0x20b,-0x259)](this['windData'][_0x532bc2(-0x218,-0x2a0)][_0xa5c520(0x2f5,0x2bb)],_0x4c2b4d),Math['min'](this['windData']['bounds']['north'],_0x11e72f)),_0x3da4cb=(_0x27bced['y']-_0x27bced['x'])*0.05,_0x45315a=(_0x2e9cc6['y']-_0x2e9cc6['x'])*0.05;_0x27bced['x']=Math['max'](this['windData'][_0x532bc2(-0x218,-0x2a2)][_0x532bc2(-0x25b,-0x21a)],_0x27bced['x']-_0x3da4cb),_0x27bced['y']=Math['min'](this[_0xa5c520(0x28d,0x260)]['bounds'][_0xa5c520(0x2e7,0x2b6)],_0x27bced['y']+_0x3da4cb),_0x2e9cc6['x']=Math['max'](this[_0xa5c520(0x28d,0x2a6)][_0x532bc2(-0x218,-0x1a5)]['south'],_0x2e9cc6['x']-_0x45315a),_0x2e9cc6['y']=Math['min'](this['windData']['bounds']['north'],_0x2e9cc6['y']+_0x45315a),this[_0xa5c520(0x2ab,0x2f4)][_0xa5c520(0x245,0x1dd)]=_0x27bced,this['viewerParameters'][_0xa5c520(0x2e0,0x293)]=_0x2e9cc6;const _0x5c82b1=this['windData']['bounds']['east']-this[_0xa5c520(0x28d,0x2bb)]['bounds'][_0x532bc2(-0x25b,-0x213)],_0x4ec5e7=this[_0x532bc2(-0x22b,-0x1a3)][_0xa5c520(0x2a0,0x277)]['north']-this['windData'][_0xa5c520(0x2a0,0x2eb)][_0xa5c520(0x2f5,0x297)],_0x5ae1e5=(_0x27bced['y']-_0x27bced['x'])/_0x5c82b1,_0x422f26=(_0x2e9cc6['y']-_0x2e9cc6['x'])/_0x4ec5e7,_0x28c688=Math['min'](_0x5ae1e5,_0x422f26),_0x50a854=0x3e8*_0x28c688;_0x50a854>0x0&&(this['viewerParameters'][_0xa5c520(0x25a,0x2a4)]=Math['max'](0x0,Math[_0xa5c520(0x275,0x2f6)](0x3e8,_0x50a854)));}this[_0xa5c520(0x2ab,0x28e)]['sceneMode']=this['scene']['mode'],(_0x468d37=this['particleSystem'])===null||_0x468d37===void 0x0||_0x468d37[_0xa5c520(0x251,0x258)](this[_0x532bc2(-0x20d,-0x276)]);}['getDataAtLonLat'](_0x155dfa,_0x134e83){const {bounds:_0x1cc516,width:_0x8662df,height:_0x5edd6b,u:_0x2a2c39,v:_0x5b54ea,speed:_0x334eee}=this['windData'],{flipY:_0x3e3c17}=this['options'];if(_0x155dfa<_0x1cc516[_0x3297a9(0x1f0,0x1a3)]||_0x155dfa>_0x1cc516[_0x5053c6(-0x145,-0x1d2)]||_0x134e83<_0x1cc516[_0x3297a9(0x2c7,0x23b)]||_0x134e83>_0x1cc516['north'])return null;const _0x20408d=(_0x155dfa-_0x1cc516[_0x5053c6(-0x1cf,-0x1b2)])/(_0x1cc516['east']-_0x1cc516['west'])*(_0x8662df-0x1);let _0x1f1606=(_0x134e83-_0x1cc516['south'])/(_0x1cc516[_0x3297a9(0xff,0x17a)]-_0x1cc516['south'])*(_0x5edd6b-0x1);_0x3e3c17&&(_0x1f1606=_0x5edd6b-0x1-_0x1f1606);const _0x373598=Math['floor'](_0x20408d),_0x44a8da=Math[_0x5053c6(-0x22a,-0x29a)](_0x1f1606),_0x3c6002=Math['floor'](_0x20408d),_0x1b56df=Math[_0x5053c6(-0x1b7,-0x14e)](_0x3c6002+0x1,_0x8662df-0x1),_0x4e030d=Math[_0x5053c6(-0x22a,-0x226)](_0x1f1606),_0xbb6667=Math['min'](_0x4e030d+0x1,_0x5edd6b-0x1),_0x12f009=_0x20408d-_0x3c6002,_0x5c53af=_0x1f1606-_0x4e030d,_0x8790fa=_0x44a8da*_0x8662df+_0x373598;function _0x5053c6(_0xca66d7,_0x5e93e2){return _0x3fc01e(_0xca66d7-0x1d,_0x5e93e2);}const _0x530f04=_0x4e030d*_0x8662df+_0x3c6002,_0x1d1301=_0x4e030d*_0x8662df+_0x1b56df;function _0x3297a9(_0x3317cd,_0x3311d8){return _0x38f528(_0x3311d8- -0xcf,_0x3317cd);}const _0x330635=_0xbb6667*_0x8662df+_0x3c6002,_0x4e08fe=_0xbb6667*_0x8662df+_0x1b56df,_0x2e888e=_0x2a2c39['array'][_0x530f04],_0xba109c=_0x2a2c39['array'][_0x1d1301],_0x4d62cc=_0x2a2c39[_0x5053c6(-0x127,-0xce)][_0x330635],_0x356493=_0x2a2c39['array'][_0x4e08fe],_0xd803ab=(0x1-_0x12f009)*(0x1-_0x5c53af)*_0x2e888e+_0x12f009*(0x1-_0x5c53af)*_0xba109c+(0x1-_0x12f009)*_0x5c53af*_0x4d62cc+_0x12f009*_0x5c53af*_0x356493,_0x433479=_0x5b54ea['array'][_0x530f04],_0x51e7e0=_0x5b54ea['array'][_0x1d1301],_0x4e3d2c=_0x5b54ea['array'][_0x330635],_0x5479a4=_0x5b54ea['array'][_0x4e08fe],_0x118b40=(0x1-_0x12f009)*(0x1-_0x5c53af)*_0x433479+_0x12f009*(0x1-_0x5c53af)*_0x51e7e0+(0x1-_0x12f009)*_0x5c53af*_0x4e3d2c+_0x12f009*_0x5c53af*_0x5479a4,_0x1de44b=Math[_0x5053c6(-0x12c,-0x15e)](_0xd803ab*_0xd803ab+_0x118b40*_0x118b40),_0x41ba8c={};_0x41ba8c['u']=_0x2a2c39['array'][_0x8790fa],_0x41ba8c['v']=_0x5b54ea['array'][_0x8790fa],_0x41ba8c[_0x3297a9(0x24c,0x1c0)]=_0x334eee['array'][_0x8790fa];const _0x5d6ca0={};_0x5d6ca0['u']=_0xd803ab,_0x5d6ca0['v']=_0x118b40,_0x5d6ca0['speed']=_0x1de44b;const _0x582a40={};return _0x582a40['original']=_0x41ba8c,_0x582a40[_0x3297a9(0x29a,0x229)]=_0x5d6ca0,_0x582a40;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this['tlng']=null,this[_0x1bbd18(0x373,0x36f)]=null;function _0x1bbd18(_0xbe85d1,_0x20309d){return _0x38f528(_0xbe85d1-0x165,_0x20309d);}this[_0x1bbd18(0x462,0x477)]=null;function _0x46a657(_0x293894,_0x3032d7){return _0x3fc01e(_0x293894-0x25a,_0x3032d7);}this['speed']=null;}['destroy'](){for(const _0x155b7c in this){delete this[_0x155b7c];}}}class CanvasWindField{constructor(_0x2131a6){this['setOptions'](_0x2131a6);}get[_0x3fc01e(-0x1f3,-0x26f)](){function _0x5c3eae(_0x4e660e,_0x5a15aa){return _0x3fc01e(_0x5a15aa- -0x2d,_0x4e660e);}return this[_0x5c3eae(-0x1d4,-0x233)];}set['speedRate'](_0x22c8c7){function _0x7fc9b2(_0x23b8d3,_0x2b2a56){return _0x3fc01e(_0x23b8d3-0x55f,_0x2b2a56);}this[_0x3532d1(0x17c,0x113)]=(0x64-(_0x22c8c7>0x63?0x63:_0x22c8c7))*0x64;function _0x3532d1(_0x41f08d,_0x39b7f6){return _0x38f528(_0x39b7f6- -0x145,_0x41f08d);}this['_calc_speedRate']=[(this['xmax']-this[_0x3532d1(0x16d,0x110)])/this['_speedRate'],(this[_0x3532d1(0x15d,0xcf)]-this[_0x3532d1(0xa9,0xf7)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set[_0x3fc01e(-0x225,-0x269)](_0x352287){this['_maxAge']=_0x352287;}[_0x3fc01e(-0x20d,-0x188)](_0x58d8a6){this['options']=_0x58d8a6,this[_0x15eca5(0x320,0x36b)]=_0x58d8a6['maxAge']||0x78,this['speedRate']=_0x58d8a6[_0x418ebc(-0xe6,-0x174)]||0x32;function _0x15eca5(_0x152110,_0x4a780d){return _0x38f528(_0x4a780d-0x132,_0x152110);}this[_0x15eca5(0x383,0x3f1)]=[];const _0x142a2e=_0x58d8a6['particlesNumber']||0x1000;function _0x418ebc(_0x3137ca,_0xfbecba){return _0x38f528(_0x3137ca- -0x351,_0xfbecba);}for(let _0x12a15a=0x0;_0x12a15a<_0x142a2e;_0x12a15a++){const _0x379ae6=this[_0x418ebc(-0x128,-0x161)](new CanvasParticle());this['particles']['push'](_0x379ae6);}}[_0x3fc01e(-0x171,-0x1cb)](_0x224981){this[_0x3b9736(0x5f,0xba)]=_0x224981['rows'];function _0x2701aa(_0x321c15,_0x47cd80){return _0x3fc01e(_0x47cd80-0x262,_0x321c15);}this[_0x3b9736(0xa5,0xcf)]=_0x224981[_0x2701aa(0x68,0x1a)],this[_0x2701aa(0xac,0x59)]=_0x224981['xmin'],this[_0x2701aa(0xac,0x109)]=_0x224981[_0x2701aa(0x10d,0x109)],this[_0x3b9736(0xb4,0xf5)]=_0x224981['ymin'],this['ymax']=_0x224981[_0x2701aa(0x56,0x18)],this[_0x3b9736(0x15d,0x137)]=[];const _0x2678d7=_0x224981[_0x3b9736(0x175,0x180)],_0x2b2751=_0x224981[_0x2701aa(0x136,0x110)];let _0xf0792a=![];_0x2678d7['length']===this['rows']&&_0x2678d7[0x0][_0x2701aa(0x3f,0xa9)]===this['cols']&&(_0xf0792a=!![]);let _0xdf1b9f=0x0,_0x46923c=null,_0x2e337f=null;for(let _0x4a9b16=0x0;_0x4a9b16<this['rows'];_0x4a9b16++){_0x46923c=[];for(let _0x2cd8d0=0x0;_0x2cd8d0<this['cols'];_0x2cd8d0++,_0xdf1b9f++){_0xf0792a?_0x2e337f=this['_calcUV'](_0x2678d7[_0x4a9b16][_0x2cd8d0],_0x2b2751[_0x4a9b16][_0x2cd8d0]):_0x2e337f=this['_calcUV'](_0x2678d7[_0xdf1b9f],_0x2b2751[_0xdf1b9f]),_0x46923c['push'](_0x2e337f);}this[_0x3b9736(0x1a4,0x137)][_0x2701aa(0x2f,0x22)](_0x46923c);}function _0x3b9736(_0x2da1d9,_0x32b7ed){return _0x3fc01e(_0x32b7ed-0x317,_0x2da1d9);}!this['options'][_0x3b9736(0x170,0x132)]&&this[_0x2701aa(0x4a,0x82)]['reverse']();}['clear'](){delete this[_0x201838(-0x193,-0x11e)],delete this['cols'],delete this[_0xcf3d33(-0x240,-0x27d)],delete this[_0xcf3d33(-0x184,-0x1cd)],delete this['ymin'],delete this[_0x201838(-0xea,-0x10b)];function _0xcf3d33(_0x4480dd,_0x663d1c){return _0x3fc01e(_0x663d1c- -0x74,_0x4480dd);}delete this[_0xcf3d33(-0x2a6,-0x254)];function _0x201838(_0x100721,_0x1158e6){return _0x3fc01e(_0x1158e6-0x13f,_0x100721);}delete this['particles'];}['toGridXY'](_0x4fad0e,_0x2010a4){function _0x500f1a(_0x1286c4,_0xa6c94c){return _0x3fc01e(_0x1286c4-0x293,_0xa6c94c);}const _0x11ab0c=(_0x4fad0e-this['xmin'])/(this['xmax']-this['xmin'])*(this['cols']-0x1),_0x3a3053=(this[_0x500f1a(0x49,0x2f)]-_0x2010a4)/(this['ymax']-this['ymin'])*(this['rows']-0x1);return[_0x11ab0c,_0x3a3053];}['getUVByXY'](_0x41101c,_0x27a0ba){if(_0x41101c<0x0||_0x41101c>=this['cols']||_0x27a0ba>=this[_0x6ffc94(0xc8,0x120)])return[0x0,0x0,0x0];const _0x58b77b=Math['floor'](_0x41101c),_0x3b4abb=Math['floor'](_0x27a0ba);if(_0x58b77b===_0x41101c&&_0x3b4abb===_0x27a0ba)return this[_0xe7938d(0x1c1,0x136)][_0x27a0ba][_0x41101c];function _0x6ffc94(_0x4a428d,_0x73ab2d){return _0x38f528(_0x4a428d- -0x139,_0x73ab2d);}const _0x10e420=_0x58b77b+0x1,_0x523da6=_0x3b4abb+0x1,_0x46e6d4=this['getUVByXY'](_0x58b77b,_0x3b4abb);function _0xe7938d(_0x30c129,_0xf02881){return _0x3fc01e(_0xf02881-0x316,_0x30c129);}const _0x3967e5=this[_0x6ffc94(0x12b,0x148)](_0x10e420,_0x3b4abb),_0x55f43c=this[_0x6ffc94(0x12b,0x174)](_0x58b77b,_0x523da6),_0x772665=this['getUVByXY'](_0x10e420,_0x523da6);let _0x119998=null;try{_0x119998=this['_bilinearInterpolation'](_0x41101c-_0x58b77b,_0x27a0ba-_0x3b4abb,_0x46e6d4,_0x3967e5,_0x55f43c,_0x772665);}catch(_0x936f69){console['log'](_0x41101c,_0x27a0ba);}return _0x119998;}[_0x38f528(0x2bd,0x2bb)](_0x276c19,_0x11ad70,_0x431def,_0x5aa4d4,_0x4b9a93,_0x105617){const _0x20b9d9=0x1-_0x276c19,_0x2d8ed7=0x1-_0x11ad70;function _0x31054d(_0x151ba6,_0x1946e3){return _0x3fc01e(_0x1946e3- -0x108,_0x151ba6);}const _0x5ba8ac=_0x20b9d9*_0x2d8ed7,_0x551587=_0x276c19*_0x2d8ed7,_0x37be66=_0x20b9d9*_0x11ad70,_0x47f57e=_0x276c19*_0x11ad70,_0x5253c2=_0x431def[0x0]*_0x5ba8ac+_0x5aa4d4[0x0]*_0x551587+_0x4b9a93[0x0]*_0x37be66+_0x105617[0x0]*_0x47f57e,_0x342feb=_0x431def[0x1]*_0x5ba8ac+_0x5aa4d4[0x1]*_0x551587+_0x4b9a93[0x1]*_0x37be66+_0x105617[0x1]*_0x47f57e;return this[_0x31054d(-0x26d,-0x2e7)](_0x5253c2,_0x342feb);}['_calcUV'](_0x2e049b,_0x29d515){return[+_0x2e049b,+_0x29d515,Math['sqrt'](_0x2e049b*_0x2e049b+_0x29d515*_0x29d515)];}['getUVByPoint'](_0x5cf793,_0x30e16e){if(!this['isInExtent'](_0x5cf793,_0x30e16e))return null;function _0xbf4971(_0x4bbbe6,_0x1ce772){return _0x3fc01e(_0x1ce772-0x2e6,_0x4bbbe6);}const _0x7ba226=this[_0xbf4971(0x145,0x150)](_0x5cf793,_0x30e16e),_0x3c6401=this['getUVByXY'](_0x7ba226[0x0],_0x7ba226[0x1]);return _0x3c6401;}[_0x3fc01e(-0x1de,-0x1b3)](_0x332979,_0x5e0a57){function _0x1e228a(_0x5b851e,_0x17d709){return _0x38f528(_0x17d709-0x60,_0x5b851e);}function _0x4774c2(_0x238fd0,_0x3de0c9){return _0x3fc01e(_0x238fd0-0x26b,_0x3de0c9);}return _0x332979>=this[_0x1e228a(0x240,0x2b5)]&&_0x332979<=this['xmax']&&_0x5e0a57>=this['ymin']&&_0x5e0a57<=this[_0x4774c2(0x21,-0x38)]?!![]:![];}[_0x3fc01e(-0x157,-0x157)](){const _0x423a19=fRandomByfloat(this['xmin'],this['xmax']);function _0x3f243a(_0x13ddf2,_0x246206){return _0x3fc01e(_0x13ddf2-0x22f,_0x246206);}const _0x5f560d=fRandomByfloat(this[_0x3f243a(0xd,0x52)],this[_0x3f243a(-0x1b,0x77)]),_0x35ee06={};_0x35ee06['lat']=_0x5f560d;function _0x5a5f3b(_0x10a197,_0x3100b0){return _0x3fc01e(_0x3100b0-0x39c,_0x10a197);}return _0x35ee06['lng']=_0x423a19,_0x35ee06;}[_0x3fc01e(-0x18a,-0x110)](){function _0x56a8cb(_0x49f1f3,_0x39d94b){return _0x38f528(_0x49f1f3- -0x230,_0x39d94b);}let _0x39c05e,_0x4b67ab,_0x3fbb56;function _0x227bb1(_0x537fae,_0x506b82){return _0x3fc01e(_0x506b82-0x54c,_0x537fae);}for(let _0x16632d=0x0,_0x32918a=this[_0x56a8cb(0x8f,0xbf)][_0x227bb1(0x36d,0x393)];_0x16632d<_0x32918a;_0x16632d++){let _0x2c7983=this['particles'][_0x16632d];_0x2c7983['age']<=0x0&&(_0x2c7983=this[_0x227bb1(0x2d1,0x317)](_0x2c7983));if(_0x2c7983[_0x227bb1(0x45b,0x3eb)]>0x0){const _0x5bbf80=_0x2c7983[_0x227bb1(0x32a,0x373)],_0x15e884=_0x2c7983['tlat'];_0x3fbb56=this['getUVByPoint'](_0x5bbf80,_0x15e884),_0x3fbb56?(_0x39c05e=_0x5bbf80+this['_calc_speedRate'][0x0]*_0x3fbb56[0x0],_0x4b67ab=_0x15e884+this['_calc_speedRate'][0x1]*_0x3fbb56[0x1],_0x2c7983['lng']=_0x5bbf80,_0x2c7983['lat']=_0x15e884,_0x2c7983[_0x227bb1(0x392,0x373)]=_0x39c05e,_0x2c7983['tlat']=_0x4b67ab,_0x2c7983[_0x56a8cb(0x5f,-0x27)]=_0x3fbb56[0x2],_0x2c7983['age']--):_0x2c7983['age']=0x0;}}return this[_0x56a8cb(0x8f,0x57)];}['_randomParticle'](_0x5d368c){let _0x2e9d2c,_0x62c769;function _0x325b05(_0x17a8c2,_0x3e1737){return _0x3fc01e(_0x17a8c2-0x2b1,_0x3e1737);}for(let _0x26c6d4=0x0;_0x26c6d4<0x1e;_0x26c6d4++){_0x2e9d2c=this['getRandomLatLng'](),_0x62c769=this[_0x325b05(0x163,0x16e)](_0x2e9d2c[_0x325b05(0xf0,0x136)],_0x2e9d2c[_0x325b05(0x13e,0x189)]);if(_0x62c769&&_0x62c769[0x2]>0x0)break;}if(!_0x62c769)return _0x5d368c;const _0x1f7f62=_0x2e9d2c['lng']+this[_0x325b05(0x70,0x88)][0x0]*_0x62c769[0x0],_0x3400f6=_0x2e9d2c[_0x325b05(0x13e,0x10d)]+this['_calc_speedRate'][0x1]*_0x62c769[0x1];_0x5d368c['lng']=_0x2e9d2c['lng'],_0x5d368c['lat']=_0x2e9d2c[_0x11ee6d(0x2ac,0x227)];function _0x11ee6d(_0x3ad8fb,_0x5bd1ed){return _0x38f528(_0x3ad8fb- -0x3f,_0x5bd1ed);}return _0x5d368c['tlng']=_0x1f7f62,_0x5d368c[_0x325b05(0x61,0xd2)]=_0x3400f6,_0x5d368c[_0x325b05(0x150,0xfe)]=Math['round'](0xa+Math['random']()*this[_0x11ee6d(0x1fa,0x22a)]),_0x5d368c[_0x325b05(0xe2,0x82)]=_0x62c769[0x2],_0x5d368c;}['destroy'](){for(const _0x1d98f5 in this){delete this[_0x1d98f5];}}}function _0x38f528(_0x39d5ae,_0x37c397){return _0x4e0b(_0x39d5ae-0x17e,_0x37c397);}function fRandomByfloat(_0x5452d6,_0x97a602){return _0x5452d6+Math['random']()*(_0x97a602-_0x5452d6);}const Cesium=mars3d__namespace[_0x3fc01e(-0x22f,-0x1e9)],BaseLayer=mars3d__namespace[_0x3fc01e(-0x141,-0x1ca)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x366170={}){super(_0x366170),this['_setOptionsHook'](_0x366170);function _0x5715e6(_0x4a6805,_0x1753bd){return _0x3fc01e(_0x1753bd-0x59c,_0x4a6805);}this['canvas']=null;function _0x1be4ff(_0x2048f4,_0x248416){return _0x3fc01e(_0x248416-0x69d,_0x2048f4);}_0x366170['colors']&&_0x366170[_0x5715e6(0x3b4,0x3d4)]&&(this['_colorRamp']=new mars3d__namespace[(_0x1be4ff(0x4a3,0x4a1))](_0x366170));}['_setOptionsHook'](_0x174e93,_0x2eff33){this['frameTime']=0x3e8/(_0x174e93[_0x1ac377(-0xc1,-0xef)]||0xa);function _0x5aa7a4(_0x288d89,_0x186941){return _0x38f528(_0x288d89- -0x2a5,_0x186941);}function _0x1ac377(_0x3ee929,_0x1bbd6a){return _0x38f528(_0x1bbd6a- -0x39f,_0x3ee929);}this[_0x5aa7a4(0xe,0x10)]=this[_0x1ac377(-0x82,-0xca)]['pointerEvents']??![],this['color']=_0x174e93['color']||'#ffffff',this['lineWidth']=_0x174e93['lineWidth']||0x1,this[_0x1ac377(-0x145,-0x10a)]=_0x174e93['fixedHeight']??0x0,this[_0x5aa7a4(-0x2c,-0x3f)]=_0x174e93[_0x5aa7a4(-0x2c,-0x2a)]??![],this['windField']&&this['windField']['setOptions'](_0x174e93);}get[_0x3fc01e(-0x141,-0x110)](){function _0x1da788(_0x3fc567,_0x187e24){return _0x3fc01e(_0x3fc567-0x359,_0x187e24);}return this[_0x1da788(0xf5,0xe7)];}get[_0x38f528(0x235,0x218)](){function _0x4ea887(_0x10069a,_0x3e91e9){return _0x3fc01e(_0x10069a-0x15e,_0x3e91e9);}return this['_map']['scene'][_0x4ea887(-0x106,-0xa9)]['clientWidth'];}get['canvasHeight'](){function _0x8e70df(_0x5f12f9,_0x2ed1f7){return _0x38f528(_0x5f12f9- -0x4e3,_0x2ed1f7);}return this['_map']['scene'][_0x8e70df(-0x2e9,-0x27a)]['clientHeight'];}get[_0x38f528(0x2f0,0x2f4)](){return this['_pointerEvents'];}set['pointerEvents'](_0x4480eb){this[_0x18ec2c(0x276,0x27b)]=_0x4480eb;function _0x18ec2c(_0x5aabb7,_0x5b64b6){return _0x3fc01e(_0x5b64b6-0x426,_0x5aabb7);}if(!this['canvas'])return;_0x4480eb?this['canvas']['style']['pointer-events']='all':this['canvas']['style']['pointer-events']='none';}get[_0x3fc01e(-0x232,-0x1b5)](){function _0x3b542e(_0x583779,_0x50791c){return _0x3fc01e(_0x50791c-0x654,_0x583779);}return this[_0x3b542e(0x4ef,0x4cb)]['particlesNumber'];}set['particlesNumber'](_0x4fc457){this['options'][_0x3d561a(-0x2b7,-0x246)]=_0x4fc457;function _0x3d561a(_0x273ef4,_0x2712e8){return _0x38f528(_0x2712e8- -0x472,_0x273ef4);}clearTimeout(this[_0x3d561a(-0x219,-0x265)]);function _0x26d21b(_0x7b9301,_0x466a88){return _0x38f528(_0x7b9301- -0xa4,_0x466a88);}this['_canrefresh']=setTimeout(()=>{function _0x5e97bd(_0x318a36,_0x42f066){return _0x3d561a(_0x318a36,_0x42f066-0x471);}this[_0x5e97bd(0x324,0x2ae)]();},0x1f4);}get[_0x3fc01e(-0x1f3,-0x233)](){function _0x26e8c8(_0x319613,_0x923bf7){return _0x38f528(_0x319613- -0x463,_0x923bf7);}return this[_0x26e8c8(-0x18e,-0x1b5)]['speedRate'];}set[_0x3fc01e(-0x1f3,-0x26a)](_0x4a4343){function _0xe527d7(_0x50b343,_0xde8e65){return _0x3fc01e(_0xde8e65-0x3b7,_0x50b343);}this['options'][_0xe527d7(0x17e,0x1c4)]=_0x4a4343,this['windField']&&(this['windField']['speedRate']=_0x4a4343);}get[_0x3fc01e(-0x225,-0x1da)](){return this['options']['maxAge'];}set['maxAge'](_0x206b86){this[_0x14978c(0x122,0x17c)]['maxAge']=_0x206b86;function _0x14978c(_0x13a4a8,_0x3bb5bd){return _0x3fc01e(_0x3bb5bd-0x305,_0x13a4a8);}this['windField']&&(this['windField']['maxAge']=_0x206b86);}get[_0x38f528(0x242,0x209)](){return this['windData'];}set['data'](_0x1bbe98){this['setData'](_0x1bbe98);}get['rectangle'](){let _0x5c26b0=this[_0x335fee(0x11,-0x11)][_0x30ea98(0x310,0x2b9)],_0xdd3d1c=this[_0x335fee(-0x39,-0x11)]['xmax'],_0x14cb64=this[_0x30ea98(0x35d,0x3b9)]['ymin'],_0x4aa828=this['windData'][_0x335fee(-0x100,-0x9f)];_0xdd3d1c>=0x167&&_0x5c26b0===0x0&&(_0x5c26b0=-0xb4,_0xdd3d1c=0xb4);function _0x30ea98(_0x552045,_0x1d382d){return _0x3fc01e(_0x552045-0x519,_0x1d382d);}_0x5c26b0=Math[_0x30ea98(0x37d,0x3e2)](_0x5c26b0,-0xb4);function _0x335fee(_0xa8a703,_0x139116){return _0x38f528(_0x139116- -0x2b3,_0xa8a703);}return _0xdd3d1c=Math[_0x30ea98(0x345,0x36c)](_0xdd3d1c,0xb4),_0x14cb64=Math[_0x30ea98(0x37d,0x304)](_0x14cb64,-0x5a),_0x4aa828=Math['min'](_0x4aa828,0x5a),Cesium['Rectangle'][_0x335fee(0x2b,-0x67)](_0x5c26b0,_0x14cb64,_0xdd3d1c,_0x4aa828);}[_0x3fc01e(-0x176,-0xea)](_0x29772d){function _0x283321(_0x2f23dd,_0x30a989){return _0x3fc01e(_0x30a989-0x19c,_0x2f23dd);}function _0x32e6b6(_0x2778bd,_0x2fde4d){return _0x38f528(_0x2778bd- -0x26b,_0x2fde4d);}_0x29772d?this['_addedHook']():(this[_0x32e6b6(0x37,0x94)]&&(this[_0x283321(-0x2e,0x13)]['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x1fe8c1(_0x2f3021,_0xd3e8ef){return _0x3fc01e(_0xd3e8ef-0x95,_0x2f3021);}function _0x3cccfc(_0x4ec7a4,_0x3f42e1){return _0x38f528(_0x3f42e1- -0x73,_0x4ec7a4);}this['options'][_0x3cccfc(0x24b,0x218)]?this['initWorker']():this[_0x1fe8c1(-0x145,-0x10e)]=new CanvasWindField(this[_0x1fe8c1(-0x164,-0xf4)]);}['_addedHook'](){this[_0x3eb918(-0x2b0,-0x318)]=this[_0x3eb918(-0x23e,-0x1ae)]();const _0x5d3384={};_0x5d3384['willReadFrequently']=!![];function _0x3eb918(_0x5a4e94,_0x2ff634){return _0x38f528(_0x5a4e94- -0x4aa,_0x2ff634);}this[_0x3eb918(-0x289,-0x2c6)]=this['canvas']['getContext']('2d',_0x5d3384);function _0x47908e(_0x4dbd45,_0x4155e5){return _0x38f528(_0x4155e5-0x149,_0x4dbd45);}this[_0x3eb918(-0x22f,-0x2a3)](),this[_0x3eb918(-0x1d5,-0x159)]['data']&&this[_0x3eb918(-0x273,-0x2c1)](this['options']['data']);}[_0x3fc01e(-0x191,-0x1d5)](){this['clear']();function _0x33a96d(_0x5cecd6,_0x22a642){return _0x3fc01e(_0x22a642-0x66d,_0x5cecd6);}function _0x1bbe9a(_0x152a75,_0x59ef7e){return _0x3fc01e(_0x152a75-0x46e,_0x59ef7e);}this['unbindEvent'](),this['canvas']&&(this['_map'][_0x1bbe9a(0x2b0,0x295)]['removeChild'](this[_0x1bbe9a(0x20a,0x22a)]),delete this['canvas']);}[_0x3fc01e(-0x1f2,-0x1d3)](){function _0x5b8c3a(_0x36a4cd,_0x50a8b3){return _0x3fc01e(_0x50a8b3-0x335,_0x36a4cd);}const _0x3acb6f=mars3d__namespace['DomUtil'][_0x3d1517(0x340,0x2b2)]('canvas','mars3d-canvasWind',this['_map'][_0x5b8c3a(0x129,0x177)]);_0x3acb6f['style'][_0x3d1517(0x370,0x2fb)]=_0x3d1517(0x3f5,0x478);function _0x3d1517(_0x14a8b1,_0x5b8a43){return _0x3fc01e(_0x14a8b1-0x57a,_0x5b8a43);}return _0x3acb6f[_0x3d1517(0x3d4,0x3aa)][_0x5b8c3a(0x201,0x1e9)]='0px',_0x3acb6f['style']['left']='0px',_0x3acb6f[_0x3d1517(0x3d4,0x39e)]['width']=this['_map'][_0x3d1517(0x3c6,0x400)][_0x5b8c3a(0x8d,0xd1)][_0x5b8c3a(0xf5,0xff)]+'px',_0x3acb6f['style']['height']=this['_map']['scene']['canvas']['clientHeight']+'px',_0x3acb6f['style'][_0x3d1517(0x40c,0x440)]=this[_0x3d1517(0x3cf,0x3be)]?'auto':_0x5b8c3a(0x4b,0xd5),_0x3acb6f['style'][_0x3d1517(0x359,0x3e3)]=this[_0x5b8c3a(0x1a6,0x1ac)][_0x3d1517(0x359,0x3af)]??0x9,_0x3acb6f['width']=this[_0x5b8c3a(0x8a,0xdc)][_0x5b8c3a(0x12b,0x181)]['canvas'][_0x5b8c3a(0x101,0xff)],_0x3acb6f[_0x3d1517(0x420,0x43e)]=this[_0x5b8c3a(0x87,0xdc)]['scene']['canvas']['clientHeight'],_0x3acb6f;}['resize'](){function _0x151883(_0x1be9d6,_0x409027){return _0x3fc01e(_0x1be9d6-0x1a,_0x409027);}function _0x18d24e(_0x43a537,_0x248638){return _0x38f528(_0x248638- -0x3e3,_0x43a537);}this['canvas']&&(this[_0x18d24e(-0x229,-0x1e9)]['style'][_0x151883(-0x186,-0x146)]=this['_map']['scene']['canvas']['clientWidth']+'px',this['canvas']['style']['height']=this['_map'][_0x151883(-0x19a,-0x118)][_0x151883(-0x24a,-0x20a)][_0x151883(-0x1bb,-0x159)]+'px',this['canvas'][_0x151883(-0x186,-0x164)]=this[_0x18d24e(-0x24a,-0x1de)]['scene'][_0x151883(-0x24a,-0x1bd)][_0x18d24e(-0x218,-0x1bb)],this['canvas'][_0x151883(-0x140,-0x110)]=this['_map']['scene']['canvas'][_0x151883(-0x1bb,-0x16d)]);}['bindEvent'](){const _0x46c271=this;let _0x486fa7=Date[_0x1a6395(0xca,0x11a)]();(function _0x5a7f3b(){function _0x14d138(_0x556688,_0x52a4bf){return _0x1a6395(_0x52a4bf-0x235,_0x556688);}function _0x35a7ef(_0x367d9d,_0x374653){return _0x1a6395(_0x367d9d- -0x3fd,_0x374653);}if(_0x46c271[_0x14d138(0x361,0x3a3)])return;_0x46c271['_animateFrame']=window[_0x35a7ef(-0x23b,-0x293)](_0x5a7f3b);if(_0x46c271['show']&&_0x46c271['windField']){const _0x85fa0b=Date[_0x35a7ef(-0x333,-0x34f)](),_0x2cb035=_0x85fa0b-_0x486fa7;_0x2cb035>_0x46c271['frameTime']&&(_0x486fa7=_0x85fa0b-_0x2cb035%_0x46c271['frameTime'],_0x46c271['update']());}}(),window[_0x3e1556(0x4ba,0x44a)](_0x1a6395(0xba,0x29),this[_0x1a6395(0xba,0x5a)]['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![]);function _0x3e1556(_0xa6942a,_0x2a3ac7){return _0x3fc01e(_0xa6942a-0x670,_0x2a3ac7);}function _0x1a6395(_0x418e2f,_0x1befe0){return _0x3fc01e(_0x418e2f-0x308,_0x1befe0);}this['options'][_0x3e1556(0x45a,0x3e1)]&&(this['_map']['on'](mars3d__namespace['EventType'][_0x1a6395(0x13e,0x102)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x1a6395(0xe8,0x99)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x1a6395(0x181,0x20a)],this));}['unbindEvent'](){function _0x10fe74(_0x101c16,_0x581f4b){return _0x3fc01e(_0x101c16-0x67,_0x581f4b);}window[_0x15207d(0x1ad,0x17f)](this['_animateFrame']);function _0x15207d(_0x589cde,_0xef9f09){return _0x38f528(_0x589cde- -0x161,_0xef9f09);}delete this['_animateFrame'],window['removeEventListener'](_0x15207d(0xaf,0xd0),this['resize']),this[_0x10fe74(-0x122,-0xea)]['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x10fe74(-0x175,-0x1d3)]['wheel'],this[_0x10fe74(-0x1dc,-0x264)],this),this['_map']['off'](mars3d__namespace[_0x10fe74(-0x175,-0x1df)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x15207d(0xd9,0x146)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x38f528(0x21b,0x1f2)](_0x590342){clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas']['style']['visibility']='hidden',this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;this['redraw']();function _0x22ddce(_0x31e666,_0x26c7a9){return _0x4e0b(_0x26c7a9-0x1d,_0x31e666);}this['canvas']['style'][_0x22ddce(0xfe,0x190)]='visible';},0xc8);}[_0x38f528(0x277,0x20d)](_0x5986c9){function _0x4c468c(_0x44b946,_0x2f4f92){return _0x38f528(_0x2f4f92- -0x376,_0x44b946);}this[_0x4c468c(-0x8c,-0xc4)]=!![],this[_0x4c468c(-0xf8,-0x171)][_0x46d10e(-0x119,-0x91)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x46d10e(_0x459d49,_0x3c0b4b){return _0x38f528(_0x459d49- -0x353,_0x3c0b4b);}this['_map']['on'](mars3d__namespace[_0x46d10e(-0xd1,-0x97)][_0x46d10e(-0x120,-0x13c)],this['_onMouseMoveEvent'],this);}[_0x38f528(0x298,0x21a)](_0x2652ab){function _0x55e81f(_0x4930ec,_0x44484e){return _0x3fc01e(_0x44484e-0x172,_0x4930ec);}function _0x2f2de0(_0x1ab9c4,_0x2840c0){return _0x38f528(_0x2840c0- -0x3ca,_0x1ab9c4);}if(!this[_0x55e81f(0xba,0x2a)]||!this[_0x2f2de0(-0x211,-0x1d0)])return;this['mouse_down']&&(this['canvas']['style']['visibility']='hidden',this[_0x55e81f(-0x2d,-0xf)]=!![]);}['_onMouseUpEvent'](_0x5b5492){if(!this['show']||!this['canvas'])return;function _0x10be7a(_0x19d735,_0x25562b){return _0x38f528(_0x19d735-0x15d,_0x25562b);}this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this['mouse_move']&&this['redraw']();this[_0x10be7a(0x357,0x334)]['style'][_0x52dd8d(0x212,0x288)]=_0x52dd8d(0x1d8,0x1d7);function _0x52dd8d(_0x805c1f,_0x2186d8){return _0x3fc01e(_0x805c1f-0x37f,_0x2186d8);}this[_0x10be7a(0x40f,0x47f)]=![],this['mouse_move']=![];}['setData'](_0xdb65b6){this['clear']();function _0x434a43(_0x32d090,_0x2db1c2){return _0x3fc01e(_0x2db1c2- -0x46,_0x32d090);}function _0x513407(_0x355bea,_0x1db671){return _0x38f528(_0x1db671-0x1bc,_0x355bea);}this['windData']=_0xdb65b6,this['windField'][_0x434a43(-0x21a,-0x1b7)](_0xdb65b6),this[_0x434a43(-0x227,-0x1f5)]();}[_0x3fc01e(-0x1af,-0x1b9)](){if(!this['show'])return;this['windField']['setOptions'](this[_0x22de94(0x3de,0x3fe)]);function _0x22de94(_0x27c855,_0x1008cf){return _0x3fc01e(_0x27c855-0x567,_0x1008cf);}this['update']();}[_0x38f528(0x259,0x20c)](){if(this['_updateIng'])return;function _0x57cc5c(_0x2c8835,_0xfa1daa){return _0x38f528(_0x2c8835-0x1f2,_0xfa1daa);}this['_updateIng']=!![];if(this[_0x52baff(-0x238,-0x26f)])this['windField']['update']();else{const _0x447406=this['windField'][_0x57cc5c(0x4c6,0x54c)]();this[_0x52baff(-0x1ba,-0x195)](_0x447406);}function _0x52baff(_0x3e4f76,_0x55d548){return _0x3fc01e(_0x3e4f76- -0x65,_0x55d548);}this[_0x57cc5c(0x4be,0x49e)]=![];}[_0x3fc01e(-0x155,-0x1a3)](_0x3f451e){this['_canvasParticles']=_0x3f451e,this[_0x23c21e(0x411,0x485)][_0x23c21e(0x486,0x468)]=_0x387098(0x437,0x3fb),this[_0x387098(0x39f,0x39a)][_0x23c21e(0x57b,0x53e)](0x0,0x0,this[_0x23c21e(0x467,0x499)],this['canvasHeight']),this[_0x23c21e(0x442,0x485)]['globalCompositeOperation']=_0x387098(0x37e,0x336);function _0x23c21e(_0x446b1e,_0x3a11a7){return _0x38f528(_0x3a11a7-0x264,_0x446b1e);}this['canvasContext']['globalAlpha']=0.9;const _0x54065a=this[_0x387098(0x383,0x3d0)]['scene']['mode']!==Cesium['SceneMode'][_0x387098(0x472,0x4d1)];function _0x387098(_0x3bf490,_0xde174e){return _0x38f528(_0x3bf490-0x17e,_0xde174e);}const _0x19bf1b=this['canvasWidth']*0.25;if(this[_0x23c21e(0x54d,0x4d8)])for(let _0x5d9be5=0x0,_0x1218b8=_0x3f451e['length'];_0x5d9be5<_0x1218b8;_0x5d9be5++){const _0x6f080d=_0x3f451e[_0x5d9be5],_0x207c88=this[_0x387098(0x3c5,0x376)](_0x6f080d,_0x6f080d[_0x387098(0x41b,0x434)],_0x6f080d['lat'],_0x6f080d['alt']),_0xf6a5da=this[_0x387098(0x3c5,0x44d)](_0x6f080d,_0x6f080d[_0x387098(0x403,0x3c0)],_0x6f080d[_0x23c21e(0x4ec,0x472)],_0x6f080d[_0x23c21e(0x4b6,0x4d1)]);if(!_0x207c88||!_0xf6a5da)continue;if(_0x54065a&&Math['abs'](_0x207c88[0x0]-_0xf6a5da[0x0])>=_0x19bf1b)continue;this[_0x23c21e(0x4bc,0x485)][_0x387098(0x444,0x3d4)](),this['canvasContext']['lineWidth']=this[_0x387098(0x406,0x388)],this['canvasContext']['strokeStyle']=this[_0x23c21e(0x4a2,0x4d8)]['getColor'](_0x6f080d[_0x387098(0x40d,0x467)]),this['canvasContext']['moveTo'](_0x207c88[0x0],_0x207c88[0x1]),this['canvasContext'][_0x23c21e(0x4b4,0x4f5)](_0xf6a5da[0x0],_0xf6a5da[0x1]),this['canvasContext']['stroke']();}else{this[_0x387098(0x39f,0x42e)][_0x387098(0x444,0x406)](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x387098(0x39f,0x3da)]['strokeStyle']=this[_0x387098(0x471,0x483)];for(let _0x4f56a2=0x0,_0x389f6a=_0x3f451e[_0x387098(0x423,0x3c8)];_0x4f56a2<_0x389f6a;_0x4f56a2++){const _0x423962=_0x3f451e[_0x4f56a2],_0x36ea18=this['_tomap'](_0x423962,_0x423962['lng'],_0x423962[_0x387098(0x469,0x459)],_0x423962[_0x387098(0x479,0x410)]),_0x33ea04=this['_tomap'](_0x423962,_0x423962['tlng'],_0x423962[_0x387098(0x38c,0x3ec)],_0x423962['talt']);if(!_0x36ea18||!_0x33ea04)continue;if(_0x54065a&&Math[_0x387098(0x411,0x3e2)](_0x36ea18[0x0]-_0x33ea04[0x0])>=_0x19bf1b)continue;this[_0x23c21e(0x42e,0x485)]['moveTo'](_0x36ea18[0x0],_0x36ea18[0x1]),this[_0x23c21e(0x43d,0x485)][_0x23c21e(0x4bc,0x4f5)](_0x33ea04[0x0],_0x33ea04[0x1]);}this[_0x387098(0x39f,0x3e2)][_0x387098(0x45a,0x449)]();}}['_tomap'](_0x3e48c6,_0x2024a2,_0x3faae5,_0xe5efb2){const _0x8108c1=Cesium['Cartesian3']['fromDegrees'](_0x2024a2,_0x3faae5,_0xe5efb2??this[_0x3f99fc(0x36b,0x2f8)]),_0x4abd15=this['_map'][_0x288a4e(-0x278,-0x2dd)];if(_0x4abd15['mode']===Cesium['SceneMode']['SCENE3D']){const _0x53d51c=new Cesium['EllipsoidalOccluder'](_0x4abd15[_0x3f99fc(0x309,0x339)]['ellipsoid'],_0x4abd15['camera']['positionWC']),_0x2f5bf7=_0x53d51c[_0x288a4e(-0x2ba,-0x329)](_0x8108c1);if(!_0x2f5bf7)return _0x3e48c6[_0x288a4e(-0x225,-0x1d4)]=0x0,null;}function _0x288a4e(_0x12ecc8,_0x566163){return _0x38f528(_0x12ecc8- -0x522,_0x566163);}const _0x417d9e=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map'][_0x3f99fc(0x2a6,0x30d)],_0x8108c1);function _0x3f99fc(_0x3b458f,_0x5ac160){return _0x38f528(_0x5ac160-0x63,_0x3b458f);}return _0x417d9e?[_0x417d9e['x'],_0x417d9e['y']]:null;}['clear'](){function _0x158a59(_0x93add9,_0x233984){return _0x3fc01e(_0x233984-0x5d3,_0x93add9);}this[_0x2860e4(-0xb0,-0x89)][_0x158a59(0x411,0x380)]();function _0x2860e4(_0x28ecec,_0x8278b3){return _0x3fc01e(_0x28ecec-0xf3,_0x8278b3);}delete this['windData'];}['initWorker'](){this['worker']=new Worker(this['options']['worker']);function _0x729035(_0x3cf139,_0x5eda54){return _0x38f528(_0x3cf139-0x5,_0x5eda54);}this['worker'][_0x3c30e6(0x3f3,0x45c)]=_0x10baec=>{this['_drawLines'](_0x10baec[_0xad6077(-0x248,-0x2c7)]['particles']);function _0xad6077(_0x458044,_0x4e153a){return _0x3c30e6(_0x458044- -0x583,_0x4e153a);}this['_updateIng2']=![];};function _0x3c30e6(_0x23ad2f,_0x2efe76){return _0x3fc01e(_0x23ad2f-0x557,_0x2efe76);}this['windField']={'init':_0x4703a2=>{const _0x1e544c={};function _0x273180(_0x3254db,_0x38eebd){return _0x3c30e6(_0x38eebd-0xd,_0x3254db);}_0x1e544c['type']='init',_0x1e544c['options']=_0x4703a2,this[_0x273180(0x348,0x391)]['postMessage'](_0x1e544c);},'setOptions':_0x10daa5=>{const _0x33ba83={};_0x33ba83['type']='setOptions';function _0x27f6f5(_0x3bd37d,_0x31d596){return _0x3c30e6(_0x3bd37d-0xd9,_0x31d596);}function _0xf1f376(_0x3246de,_0xf21d39){return _0x3c30e6(_0x3246de- -0x365,_0xf21d39);}_0x33ba83[_0x27f6f5(0x4a7,0x448)]=_0x10daa5,this['worker'][_0xf1f376(0x7e,-0x2)](_0x33ba83);},'setDate':_0x1f0b32=>{const _0x4161ab={};function _0x5460d5(_0x4e4479,_0x2d9daa){return _0x3c30e6(_0x4e4479-0xd,_0x2d9daa);}function _0x2de094(_0x1bd9f2,_0x58b440){return _0x3c30e6(_0x1bd9f2- -0x377,_0x58b440);}_0x4161ab[_0x5460d5(0x362,0x3b9)]='setDate',_0x4161ab['data']=_0x1f0b32,this[_0x2de094(0xd,0xc)]['postMessage'](_0x4161ab);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x51fa8f={};_0x51fa8f['type']='update',this['worker']['postMessage'](_0x51fa8f);},'clear':()=>{const _0x1cf827={};function _0x528b76(_0x421820,_0x384802){return _0x3c30e6(_0x421820- -0x5c1,_0x384802);}function _0x499c58(_0x22841b,_0xa24595){return _0x3c30e6(_0x22841b- -0x523,_0xa24595);}_0x1cf827['type']=_0x499c58(-0x21f,-0x2a3),this[_0x528b76(-0x23d,-0x28b)]['postMessage'](_0x1cf827);}},this[_0x729035(0x2c0,0x2c5)]['init'](this['options']);}}mars3d__namespace[_0x38f528(0x2cb,0x348)]['register'](_0x3fc01e(-0x255,-0x208),CanvasWindLayer),mars3d__namespace['layer'][_0x3fc01e(-0x219,-0x18a)]=CanvasWindLayer,mars3d__namespace[_0x3fc01e(-0x1fe,-0x1a8)]=CanvasWindField,mars3d__namespace[_0x3fc01e(-0x17b,-0x1bf)][_0x3fc01e(-0x223,-0x207)]('mars3d-wind插件注册成功\x20\x20\x20\x20\x20版本:'+version+'\x20\x20\x20\x20编译日期:'+buildTime),mars3d__namespace['WindUtil']=WindUtil,exports[_0x38f528(0x260,0x20e)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x3fc01e(-0x203,-0x21d)]=WindLayer,exports[_0x3fc01e(-0x218,-0x194)]=WindUtil;const _0x39118d={};_0x39118d['value']=!![],Object['defineProperty'](exports,'__esModule',_0x39118d);
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.11.
|
|
3
|
+
"version": "3.11.6",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.11.
|
|
8
|
+
"mars3d": "~3.11.6"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|