mars3d-wind 3.11.2 → 3.11.4
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-04
|
|
4
|
+
* 版本信息:v3.11.4
|
|
5
|
+
* 编译日期:2026-06-04 19:46
|
|
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(_0x4db8e9,_0x622875){const _0x36bc73=_0x4db8e9();function _0x1927a2(_0x80b20e,_0xd5864e){return _0x34ed(_0xd5864e-0x296,_0x80b20e);}function _0x4ac8f3(_0x1d8c1d,_0x2bfbf7){return _0x34ed(_0x1d8c1d- -0x2bd,_0x2bfbf7);}while(!![]){try{const _0x5e9345=parseInt(_0x1927a2(0x42d,0x489))/0x1*(-parseInt(_0x1927a2(0x4e0,0x482))/0x2)+-parseInt(_0x4ac8f3(-0x69,-0x2))/0x3+parseInt(_0x4ac8f3(-0x2,-0x65))/0x4*(-parseInt(_0x1927a2(0x491,0x491))/0x5)+parseInt(_0x1927a2(0x512,0x48a))/0x6+parseInt(_0x1927a2(0x491,0x4a6))/0x7+-parseInt(_0x4ac8f3(-0x67,-0x3f))/0x8*(parseInt(_0x4ac8f3(-0x5e,-0x3d))/0x9)+parseInt(_0x4ac8f3(-0x98,-0xd6))/0xa;if(_0x5e9345===_0x622875)break;else _0x36bc73['push'](_0x36bc73['shift']());}catch(_0x4203be){_0x36bc73['push'](_0x36bc73['shift']());}}}(_0x55d3,0x74d76));function _interopNamespace(_0x2eed67){if(_0x2eed67&&_0x2eed67[_0x1b255f(0x3a2,0x35a)])return _0x2eed67;var _0x2839a3=Object['create'](null);_0x2eed67&&Object[_0x1b255f(0x30e,0x327)](_0x2eed67)[_0x1b255f(0x293,0x28b)](function(_0x362c9c){function _0x3e58b5(_0x539b5b,_0xdb1a3d){return _0x1b255f(_0xdb1a3d,_0x539b5b-0x22d);}if(_0x362c9c!==_0x3e58b5(0x4e7,0x523)){var _0x49d022=Object['getOwnPropertyDescriptor'](_0x2eed67,_0x362c9c);Object['defineProperty'](_0x2839a3,_0x362c9c,_0x49d022['get']?_0x49d022:{'enumerable':!![],'get':function(){return _0x2eed67[_0x362c9c];}});}});_0x2839a3[_0x4668bb(0x58f,0x59c)]=_0x2eed67;function _0x1b255f(_0x57c468,_0x210260){return _0x34ed(_0x210260-0xa2,_0x57c468);}function _0x4668bb(_0x42119b,_0x40233b){return _0x34ed(_0x40233b-0x384,_0x42119b);}return _0x2839a3;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x59525a,_0x599916){function _0x402c2b(_0x2fdff2,_0x34cbd8){return _0x34ed(_0x34cbd8- -0x99,_0x2fdff2);}const _0x4b06ed=_0x59525a*Math['cos'](Cesium$2['Math'][_0x402c2b(0x1eb,0x1e3)](_0x599916));return _0x4b06ed;}function getV(_0x572f4d,_0x120021){const _0x1548f2=_0x572f4d*Math['sin'](Cesium$2[_0x4c535a(0x2cc,0x31f)]['toRadians'](_0x120021));function _0x4c535a(_0x12c768,_0x321062){return _0x34ed(_0x321062-0xcd,_0x12c768);}return _0x1548f2;}function getSpeed(_0x24da37,_0x4a80c7){const _0x5d1981=Math['sqrt'](Math['pow'](_0x24da37,0x2)+Math['pow'](_0x4a80c7,0x2));return _0x5d1981;}function getDirection(_0x56e068,_0x55bb35){function _0x5866cd(_0x1e4aaa,_0x478954){return _0x34ed(_0x478954-0x357,_0x1e4aaa);}let _0x43596c=Cesium$2[_0x5866cd(0x54a,0x5a9)]['toDegrees'](Math['atan2'](_0x55bb35,_0x56e068));return _0x43596c+=_0x43596c<0x0?0x168:0x0,_0x43596c;}const _0x60ab1b={};_0x60ab1b[_0x27febc(0x1a,-0x6c)]=null,_0x60ab1b[_0x27febc(-0x8e,-0xed)]=getU,_0x60ab1b['getV']=getV,_0x60ab1b['getSpeed']=getSpeed,_0x60ab1b['getDirection']=getDirection;function _0x27febc(_0x198352,_0x3b426f){return _0x34ed(_0x198352- -0x295,_0x3b426f);}var WindUtil=_0x60ab1b;const version=_0x27febc(-0x9d,-0x50),buildTime='2026-04-08\x2016:11';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=_0x27febc(-0xbc,-0x5a),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[_0x27febc(-0x7b,0xc)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x3dc1c5={};return _0x3dc1c5['sources']=[calculateSpeedShader],new ShaderSource$1(_0x3dc1c5);}static['getUpdatePositionShader'](){const _0x16a733={};return _0x16a733['sources']=[updatePositionShader],new ShaderSource$1(_0x16a733);}static['getSegmentDrawVertexShader'](){function _0x5d5b33(_0x461bf7,_0x42d864){return _0x4445ca(_0x461bf7,_0x42d864- -0xef);}const _0x208715={};return _0x208715[_0x5d5b33(0x3fc,0x45f)]=[renderParticlesVertexShader],new ShaderSource$1(_0x208715);}static['getSegmentDrawFragmentShader'](){const _0x5ceef4={};return _0x5ceef4['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x5ceef4);}static['getPostProcessingPositionShader'](){function _0x5cb7a3(_0x73efab,_0x14474e){return _0x27febc(_0x14474e- -0xa2,_0x73efab);}const _0x383c96={};return _0x383c96[_0x5cb7a3(-0xde,-0x114)]=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x383c96);}}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[_0x4445ca(0x4c6,0x545)];class CustomPrimitive{constructor(_0x3f3413){this['commandType']=_0x3f3413['commandType'];function _0x45aa87(_0x2d228c,_0x4d88d5){return _0x4445ca(_0x2d228c,_0x4d88d5- -0x66e);}this['geometry']=_0x3f3413[_0x4cd839(0x17c,0x1ae)],this[_0x4cd839(0x21c,0x1b4)]=_0x3f3413[_0x45aa87(-0x10c,-0x11f)],this['primitiveType']=_0x3f3413[_0x45aa87(-0x1c5,-0x15d)],this['uniformMap']=_0x3f3413['uniformMap']||{},this[_0x4cd839(0x246,0x256)]=_0x3f3413[_0x4cd839(0x234,0x256)],this[_0x45aa87(-0xe0,-0xf6)]=_0x3f3413['fragmentShaderSource'],this['rawRenderState']=_0x3f3413[_0x45aa87(-0x3,-0x7f)],this[_0x45aa87(-0x7c,-0x6d)]=_0x3f3413['framebuffer'],this[_0x45aa87(-0xbc,-0xde)]=_0x3f3413[_0x45aa87(-0xde,-0xde)],this['autoClear']=_0x3f3413['autoClear']??![],this[_0x45aa87(-0x179,-0x136)]=_0x3f3413['preExecute'],this['show']=!![],this[_0x45aa87(-0x11b,-0xcf)]=undefined,this[_0x45aa87(-0x195,-0x16f)]=undefined,this[_0x4cd839(0x135,0x17e)]=_0x3f3413[_0x4cd839(0x162,0x17e)]??(()=>!![]);function _0x4cd839(_0x1c12f1,_0x20effd){return _0x4445ca(_0x1c12f1,_0x20effd- -0x39b);}this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x10f39f){function _0x4bc518(_0x1866b8,_0x4e7f28){return _0x27febc(_0x4e7f28-0x429,_0x1866b8);}function _0x5e9f88(_0x17f0f3,_0x3261a8){return _0x27febc(_0x17f0f3-0x17f,_0x3261a8);}if(this['commandType']==='Draw'){const _0x374514={};_0x374514['context']=_0x10f39f,_0x374514[_0x5e9f88(0x108,0x176)]=this['geometry'],_0x374514['attributeLocations']=this['attributeLocations'],_0x374514['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x490c4e=VertexArray$1[_0x5e9f88(0x18b,0x165)](_0x374514),_0x2a3601={};_0x2a3601[_0x4bc518(0x4a7,0x429)]=_0x10f39f,_0x2a3601['vertexShaderSource']=this[_0x4bc518(0x3ec,0x45a)],_0x2a3601['fragmentShaderSource']=this[_0x5e9f88(0x137,0x175)],_0x2a3601[_0x5e9f88(0x10e,0xf7)]=this['attributeLocations'];const _0x3abbdf=ShaderProgram['fromCache'](_0x2a3601),_0x4e6014=RenderState[_0x5e9f88(0xbc,0xe3)](this['rawRenderState']),_0x10da6d={};return _0x10da6d[_0x5e9f88(0x159,0x138)]=this,_0x10da6d[_0x5e9f88(0xed,0x9e)]=_0x490c4e,_0x10da6d[_0x4bc518(0x34e,0x37a)]=this[_0x4bc518(0x3df,0x37a)],_0x10da6d['modelMatrix']=Matrix4['IDENTITY'],_0x10da6d['renderState']=_0x4e6014,_0x10da6d['shaderProgram']=_0x3abbdf,_0x10da6d['framebuffer']=this['framebuffer'],_0x10da6d['uniformMap']=this['uniformMap'],_0x10da6d['pass']=Pass$1[_0x5e9f88(0x18e,0x1b6)],new DrawCommand(_0x10da6d);}else{if(this['commandType']==='Compute'){const _0x5dda8e={};return _0x5dda8e[_0x5e9f88(0x159,0x108)]=this,_0x5dda8e['fragmentShaderSource']=this[_0x5e9f88(0x137,0x112)],_0x5dda8e[_0x5e9f88(0x190,0x138)]=this[_0x4bc518(0x47f,0x43a)],_0x5dda8e['outputTexture']=this['outputTexture'],_0x5dda8e[_0x4bc518(0x48a,0x400)]=!![],new ComputeCommand(_0x5dda8e);}else throw new Error(_0x4bc518(0x367,0x3c8));}}['setGeometry'](_0x21e9da,_0x398575){this[_0x2a1cb7(0x4bd,0x435)]=_0x398575;function _0x2a1cb7(_0x1ef2d1,_0x4284c7){return _0x27febc(_0x4284c7-0x4ac,_0x1ef2d1);}function _0x237a8f(_0x4de1c4,_0x45c3cf){return _0x4445ca(_0x4de1c4,_0x45c3cf- -0x539);}defined(this['commandToExecute'])&&(this['commandToExecute'][_0x2a1cb7(0x3f0,0x41a)]=VertexArray$1[_0x2a1cb7(0x4bc,0x4b8)]({'context':_0x21e9da,'geometry':this[_0x237a8f(-0x1c,0x10)],'attributeLocations':this[_0x2a1cb7(0x421,0x43b)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x4445ca(0x528,0x55b)](_0x58ec54){function _0x57ee08(_0x319731,_0x1fc88d){return _0x4445ca(_0x319731,_0x1fc88d- -0x22b);}if(!this['isDynamic']())return;if(!this[_0x37579d(0x61d,0x69f)]||!defined(_0x58ec54))return;function _0x37579d(_0x553b35,_0x2a04df){return _0x4445ca(_0x2a04df,_0x553b35-0x1f);}!defined(this[_0x57ee08(0x314,0x374)])&&(this[_0x37579d(0x5be,0x5d6)]=this['createCommand'](_0x58ec54['context']));defined(this[_0x37579d(0x557,0x5ad)])&&this[_0x37579d(0x557,0x5e1)]();if(!_0x58ec54['commandList']){console['warn'](_0x37579d(0x554,0x4f3));return;}defined(this[_0x37579d(0x51e,0x572)])&&_0x58ec54[_0x57ee08(0x43f,0x3c5)]['push'](this['clearCommand']),defined(this['commandToExecute'])&&_0x58ec54['commandList']['push'](this[_0x57ee08(0x390,0x374)]);}['isDestroyed'](){return![];}['destroy'](){if(defined(this[_0x129430(0x572,0x519)])){var _0x70a61b;(_0x70a61b=this['commandToExecute'][_0x10247d(0x584,0x507)])===null||_0x70a61b===void 0x0||_0x70a61b[_0x129430(0x4a1,0x503)](),this[_0x10247d(0x577,0x571)]['shaderProgram']=undefined;}function _0x129430(_0x170c12,_0x281cab){return _0x4445ca(_0x170c12,_0x281cab- -0x86);}function _0x10247d(_0x2055de,_0x50b1c2){return _0x27febc(_0x2055de-0x598,_0x50b1c2);}return destroyObject(this);}}function deepMerge(_0x53361e,_0xc12b0e){if(!_0x53361e)return _0xc12b0e;if(!_0xc12b0e)return _0x53361e;function _0x426586(_0x189e64,_0x4b02e1){return _0x27febc(_0x4b02e1-0x5b9,_0x189e64);}const _0x5d9cab={..._0xc12b0e};function _0x355838(_0x2012ee,_0xa6ee25){return _0x4445ca(_0xa6ee25,_0x2012ee-0x8e);}const _0x1bc1ab=_0x5d9cab;for(const _0x524041 in _0x53361e){if(Object['prototype']['hasOwnProperty']['call'](_0x53361e,_0x524041)){const _0x102919=_0x53361e[_0x524041],_0x1cee42=_0xc12b0e[_0x524041];if(Array['isArray'](_0x102919)){_0x1bc1ab[_0x524041]=_0x102919[_0x355838(0x65e,0x61a)]();continue;}if(_0x102919&&typeof _0x102919===_0x426586(0x4b2,0x50c)){_0x1bc1ab[_0x524041]=deepMerge(_0x102919,_0x1cee42||{});continue;}_0x102919!==undefined&&(_0x1bc1ab[_0x524041]=_0x102919);}}return _0x1bc1ab;}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(_0xf50c62,_0x16c741,_0x6bcb31,_0x393705,_0x2bd38f){this[_0xa11870(-0x6,0x17)]=_0xf50c62,this[_0x213d62(0x26e,0x2a1)]=_0x6bcb31,this['viewerParameters']=_0x393705,this[_0x213d62(0x23d,0x20c)]=_0x16c741;function _0xa11870(_0x20745e,_0x55f647){return _0x4445ca(_0x20745e,_0x55f647- -0x5a9);}this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x605e5b={};_0x605e5b['scene']=_0x2bd38f,_0x605e5b[_0xa11870(0x9,-0x1b)]=0x1,_0x605e5b[_0x213d62(0x1ea,0x17c)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x605e5b),this[_0x213d62(0x28e,0x215)](),this['createWindTextures']();function _0x213d62(_0x6a68ec,_0x1828fc){return _0x27febc(_0x6a68ec-0x249,_0x1828fc);}this[_0x213d62(0x281,0x295)](),this[_0x213d62(0x27f,0x213)]();}[_0x4445ca(0x65f,0x605)](){const _0x506c9d=()=>{function _0x3badba(_0x52dedc,_0xf3896e){return _0x34ed(_0x52dedc- -0x38e,_0xf3896e);}function _0x42c9f8(_0x424184,_0x29f1b2){return _0x34ed(_0x424184- -0xc4,_0x29f1b2);}this[_0x42c9f8(0x205,0x196)]['lastFramesPerSecond']>0x14&&(this['frameRate']=this[_0x3badba(-0xc5,-0x47)][_0x42c9f8(0x163,0x161)],this[_0x3badba(-0xb3,-0x50)]=0x3c/Math[_0x3badba(-0xc0,-0x88)](this[_0x42c9f8(0x14b,0x134)],0x1));};function _0x738ec7(_0x5ca6b4,_0x436bd3){return _0x27febc(_0x5ca6b4-0x674,_0x436bd3);}_0x506c9d();const _0x182074=setInterval(_0x506c9d,0x3e8),_0x248f03=this['destroy']['bind'](this);this[_0x738ec7(0x63d,0x604)]=()=>{clearInterval(_0x182074),_0x248f03();};}['createWindTextures'](){const _0x3b15d6={};function _0x358e60(_0x1407e9,_0x56f73f){return _0x4445ca(_0x56f73f,_0x1407e9- -0x30e);}_0x3b15d6['minificationFilter']=TextureMinificationFilter$1['LINEAR'];function _0x52a162(_0x43b4e3,_0x59d306){return _0x27febc(_0x59d306-0x11a,_0x43b4e3);}_0x3b15d6['magnificationFilter']=TextureMagnificationFilter$1[_0x52a162(0x114,0x107)];const _0x1f7f78={'context':this[_0x52a162(0x10f,0x11a)],'width':this['windData'][_0x52a162(0x1ba,0x143)],'height':this['windData']['height'],'pixelFormat':PixelFormat$1[_0x52a162(0x149,0x144)],'pixelDatatype':PixelDatatype$1[_0x52a162(0xb5,0xef)],'flipY':this[_0x358e60(0x2d7,0x33e)][_0x52a162(0xe4,0x6f)]??![],'sampler':new Sampler$1(_0x3b15d6)};this[_0x52a162(0xdf,0xc1)]={'U':new Texture$1({..._0x1f7f78,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x1f7f78,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x2293f0={};_0x2293f0[_0x3f0853(0xf6,0x9b)]=TextureMinificationFilter$1['NEAREST'];function _0x3f0853(_0x335100,_0x3fcbba){return _0x4445ca(_0x3fcbba,_0x335100- -0x4bf);}_0x2293f0[_0x3f0853(0x125,0x158)]=TextureMagnificationFilter$1[_0x2b140c(0x2bc,0x2a3)];function _0x2b140c(_0x49c248,_0x3efc2c){return _0x4445ca(_0x3efc2c,_0x49c248- -0x305);}const _0xa28d0f={'context':this[_0x3f0853(0x101,0x16d)],'width':this['options'][_0x3f0853(0x44,0x86)],'height':this['options'][_0x3f0853(0x44,0xce)],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x3f0853(0xd6,0xb6)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this[_0x3f0853(0x126,0x159)][_0x2b140c(0x1fe,0x21e)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x2293f0)};this[_0x2b140c(0x216,0x205)]={'previousParticlesPosition':new Texture$1(_0xa28d0f),'currentParticlesPosition':new Texture$1(_0xa28d0f),'nextParticlesPosition':new Texture$1(_0xa28d0f),'postProcessingPosition':new Texture$1(_0xa28d0f),'particlesSpeed':new Texture$1(_0xa28d0f)};}[_0x4445ca(0x5d2,0x5a9)](){Object['values'](this['particlesTextures'])['forEach'](_0x56f463=>_0x56f463['destroy']());}[_0x27febc(0x36,0x96)](){function _0x109418(_0x7bc12e,_0x4b959c){return _0x4445ca(_0x7bc12e,_0x4b959c- -0x589);}function _0x4fd1e2(_0x53c48e,_0x36b221){return _0x27febc(_0x53c48e- -0x1a,_0x36b221);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x4fd1e2(-0x26,-0x68)]['u']['min'],this[_0x109418(-0x52,0x2b)]['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x109418(0x49,0x2b)]['v'][_0x4fd1e2(-0x60,-0x60)],this[_0x4fd1e2(-0x26,0x37)]['v']['max']),'speedRange':()=>new Cartesian2$1(this[_0x4fd1e2(-0x26,0x1c)]['speed']['min'],this[_0x109418(-0x12,0x2b)]['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures'][_0x109418(-0x13,0x58)],'speedScaleFactor':()=>{function _0x59efa2(_0x21348b,_0x22913e){return _0x109418(_0x22913e,_0x21348b- -0x11);}return(this['viewerParameters'][_0x59efa2(0x71,0x98)]+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this[_0x4fd1e2(0x2c,-0x4d)],'dimension':()=>new Cartesian2$1(this[_0x4fd1e2(-0x26,-0xab)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds']['west'],this['windData']['bounds'][_0x4fd1e2(0x2,0x2b)]),'maximum':()=>new Cartesian2$1(this['windData']['bounds'][_0x4fd1e2(-0xc,0x4d)],this[_0x109418(0x79,0x2b)]['bounds'][_0x109418(0x4,-0x68)])},'fragmentShaderSource':ShaderManager[_0x4fd1e2(-0x63,-0x10)](),'outputTexture':this[_0x109418(-0x17,-0x6e)][_0x109418(-0x3b,-0x48)],'preExecute':()=>{function _0x381766(_0xc1e707,_0x205d77){return _0x109418(_0xc1e707,_0x205d77-0x28);}const _0x46be6b=this['particlesTextures'][_0x9d19f9(0x3df,0x419)];this['particlesTextures']['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'],this[_0x9d19f9(0x473,0x429)]['currentParticlesPosition']=this['particlesTextures'][_0x381766(0x85,0xa9)];function _0x9d19f9(_0x48d3f7,_0x49a08f){return _0x4fd1e2(_0x49a08f-0x4e8,_0x48d3f7);}this['particlesTextures']['postProcessingPosition']=_0x46be6b,this[_0x9d19f9(0x44c,0x461)]['calculateSpeed'][_0x381766(0x3c,0x3e)]&&(this[_0x381766(-0x1e,-0xe)]['calculateSpeed'][_0x381766(0xa9,0x3e)][_0x381766(0x85,0x2f)]=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this[_0x4fd1e2(0xb,0x34)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager[_0x109418(-0xa8,-0x80)](),'outputTexture':this['particlesTextures'][_0x4fd1e2(0x3,0x41)],'preExecute':()=>{function _0x5208ff(_0x2cdf9e,_0x451184){return _0x4fd1e2(_0x451184-0x378,_0x2cdf9e);}function _0x42c8d4(_0x410df3,_0x5e0c18){return _0x109418(_0x5e0c18,_0x410df3-0x130);}this['primitives'][_0x42c8d4(0xfb,0x146)]['commandToExecute']&&(this['primitives'][_0x42c8d4(0xfb,0xdd)][_0x5208ff(0x2fa,0x33d)]['outputTexture']=this[_0x5208ff(0x245,0x2b9)][_0x42c8d4(0x184,0x1be)]);},'isDynamic':()=>this['options'][_0x4fd1e2(0x14,0x21)]}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x109418(-0x65,0xa),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x109418(0x5b,0x54)],'particlesSpeed':()=>this[_0x109418(-0xf9,-0x6e)]['particlesSpeed'],'lonRange':()=>this['viewerParameters'][_0x4fd1e2(-0x13,0x1d)],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0x4fd1e2(-0x26,0x49)][_0x4fd1e2(-0xcb,-0x47)]['west'],this[_0x109418(0x5e,0x2b)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds'][_0x4fd1e2(0x2,-0x43)],this['windData'][_0x109418(-0xb0,-0x7a)]['north']),'randomCoefficient':function(){function _0x9ede30(_0x284d07,_0x3341af){return _0x109418(_0x3341af,_0x284d07-0x4e);}return Math[_0x9ede30(0x37,0xb1)]();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this[_0x4fd1e2(0xb,-0x1)][_0x109418(-0x64,-0x26)],'useViewerBounds':()=>this[_0x109418(0x4c,0x5c)][_0x109418(0x52,0x63)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x4fd1e2(-0xbf,-0x5c)]['postProcessingPosition'],'preExecute':()=>{function _0x1441f6(_0x2a61a9,_0x1a9765){return _0x4fd1e2(_0x1a9765-0x53c,_0x2a61a9);}function _0x33c5b2(_0x546a5b,_0x415bd5){return _0x109418(_0x415bd5,_0x546a5b-0x489);}this[_0x1441f6(0x480,0x4b5)]['postProcessingPosition'][_0x33c5b2(0x49f,0x42a)]&&(this['primitives'][_0x1441f6(0x5ed,0x56c)][_0x33c5b2(0x49f,0x483)]['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0x109418(0x57,0x5c)][_0x109418(0x87,0x65)]})};}['reCreateWindTextures'](){function _0x185f46(_0x1caaf7,_0x4814d8){return _0x27febc(_0x1caaf7- -0x132,_0x4814d8);}this[_0x185f46(-0x18b,-0x1d4)]['U']['destroy'](),this['windTextures']['V']['destroy'](),this['createWindTextures']();}[_0x4445ca(0x578,0x551)](_0x3bad27){function _0x4ae8a9(_0x4d38ee,_0x236966){return _0x4445ca(_0x236966,_0x4d38ee-0xc);}this['windData']=_0x3bad27,this[_0x4ae8a9(0x54b,0x57d)]();}['updateOptions'](_0x1f55d3){const _0x4d4ca4=_0x1f55d3['flipY']!==undefined&&_0x1f55d3[_0x121889(0x1ab,0x1f8)]!==this['options']['flipY'];function _0x121889(_0x18dda3,_0x3f6537){return _0x27febc(_0x18dda3-0x256,_0x3f6537);}this['options']=deepMerge(_0x1f55d3,this[_0x121889(0x27b,0x222)]);function _0x397aef(_0xf2c78a,_0x4b46a9){return _0x4445ca(_0xf2c78a,_0x4b46a9- -0x388);}_0x4d4ca4&&this[_0x121889(0x1d5,0x1c5)]();}[_0x27febc(-0x42,-0x99)](_0x1c27e7){const {array:_0x34c4ad}=_0x1c27e7;function _0x5ef094(_0x11c85d,_0x425a60){return _0x4445ca(_0x425a60,_0x11c85d- -0x54b);}let {min:_0x3c6e70,max:_0x5f188d}=_0x1c27e7;const _0x2be7a6=new Float32Array(_0x34c4ad[_0x1b2d24(-0x1f9,-0x1e6)]);_0x3c6e70===undefined&&(console['warn'](_0x1b2d24(-0x1c2,-0x1c8)),_0x3c6e70=Math['min'](..._0x34c4ad));function _0x1b2d24(_0x5a2e0d,_0x109be2){return _0x4445ca(_0x5a2e0d,_0x109be2- -0x6ed);}_0x5f188d===undefined&&(console[_0x5ef094(0x82,0xf2)](_0x1b2d24(-0x137,-0xfa)),_0x5f188d=Math[_0x1b2d24(-0x123,-0xf4)](..._0x34c4ad));const _0x401303=Math[_0x1b2d24(-0xd0,-0xf4)](Math[_0x5ef094(0x3b,-0x48)](_0x3c6e70),Math[_0x1b2d24(-0x101,-0x167)](_0x5f188d));for(let _0x38ff8d=0x0;_0x38ff8d<_0x34c4ad[_0x5ef094(-0x44,0x36)];_0x38ff8d++){const _0x3fb78c=_0x34c4ad[_0x38ff8d]/_0x401303;_0x2be7a6[_0x38ff8d]=_0x3fb78c;}return _0x2be7a6;}[_0x4445ca(0x580,0x589)](){function _0x41a14e(_0x22a490,_0x36f54f){return _0x27febc(_0x36f54f-0x2b,_0x22a490);}function _0x359a81(_0x33650b,_0x122f6b){return _0x27febc(_0x33650b-0x13b,_0x122f6b);}Object['values'](this[_0x41a14e(0x2f,-0x2e)])['forEach'](_0x58210b=>_0x58210b['destroy']()),Object[_0x41a14e(-0x1e,0x23)](this[_0x41a14e(-0x13,-0x7a)])['forEach'](_0x218b23=>_0x218b23['destroy']()),Object['values'](this['primitives'])[_0x41a14e(-0x57,-0x81)](_0x2ff09e=>_0x2ff09e[_0x41a14e(0x15,-0xc)]()),this[_0x41a14e(0xa9,0x5f)][_0x41a14e(-0x4f,-0xc)]();}}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(_0x2ba58c,_0x1c41dd,_0x28f45f,_0xe8e89f){this['context']=_0x2ba58c,this['options']=_0x1c41dd,this['viewerParameters']=_0x28f45f,this[_0x4ab8c2(0x335,0x37d)]=_0xe8e89f;function _0x4ab8c2(_0x2e6ab7,_0x4e12bd){return _0x4445ca(_0x4e12bd,_0x2e6ab7- -0x25c);}function _0x24febf(_0x3031b1,_0x1cdb00){return _0x27febc(_0x3031b1-0x239,_0x1cdb00);}(typeof this[_0x24febf(0x25e,0x2c6)][_0x24febf(0x17c,0x15e)]!=='number'||this[_0x24febf(0x25e,0x29d)][_0x24febf(0x17c,0x146)]<=0x0)&&(console[_0x4ab8c2(0x37f,0x338)](_0x4ab8c2(0x2e8,0x28a)),this[_0x24febf(0x25e,0x229)][_0x24febf(0x17c,0x1e7)]=0x100),this[_0x4ab8c2(0x32b,0x2ed)]=this[_0x24febf(0x23e,0x23a)](),this['textures']=this['createRenderingTextures'](),this[_0x24febf(0x243,0x290)]=this[_0x4ab8c2(0x345,0x3b5)](),this[_0x24febf(0x1cc,0x1a4)]=this['createPrimitives']();}['createRenderingTextures'](){const _0x25f4b9={};_0x25f4b9['context']=this['context'],_0x25f4b9[_0x33145c(0x24b,0x2a6)]=this[_0x33145c(0x273,0x27d)]['drawingBufferWidth'],_0x25f4b9[_0x1fcffa(0x311,0x2c7)]=this[_0x1fcffa(0x35b,0x3b9)]['drawingBufferHeight'],_0x25f4b9['pixelFormat']=PixelFormat['RGBA'];function _0x33145c(_0x27db25,_0x2be6e9){return _0x4445ca(_0x27db25,_0x2be6e9- -0x343);}_0x25f4b9[_0x1fcffa(0x39a,0x416)]=PixelDatatype['UNSIGNED_BYTE'];const _0x2c9334=_0x25f4b9,_0x1cfe68={};function _0x1fcffa(_0x170349,_0xdc3722){return _0x4445ca(_0xdc3722,_0x170349- -0x265);}_0x1cfe68['context']=this['context'],_0x1cfe68[_0x1fcffa(0x384,0x327)]=this[_0x1fcffa(0x35b,0x35f)][_0x33145c(0x233,0x265)],_0x1cfe68['height']=this[_0x33145c(0x283,0x27d)]['drawingBufferHeight'],_0x1cfe68[_0x33145c(0x272,0x283)]=PixelFormat['DEPTH_COMPONENT'],_0x1cfe68['pixelDatatype']=PixelDatatype['UNSIGNED_INT'];const _0x227b58=_0x1cfe68;return{'segmentsColor':new Texture(_0x2c9334),'segmentsDepth':new Texture(_0x227b58)};}[_0x27febc(-0x1f,-0x3c)](){const _0x156f78={};_0x156f78[_0x3c61dd(-0x104,-0x18c)]=this['context'];function _0x3c61dd(_0x1d0e2a,_0x5167fc){return _0x27febc(_0x1d0e2a- -0x104,_0x5167fc);}_0x156f78[_0x12a42b(0x6e,0x6)]=[this['textures'][_0x3c61dd(-0x11a,-0xaf)]];function _0x12a42b(_0x5382d9,_0x4fe162){return _0x27febc(_0x4fe162-0x69,_0x5382d9);}return _0x156f78['depthTexture']=this[_0x3c61dd(-0xbd,-0x121)]['segmentsDepth'],{'segments':new Framebuffer(_0x156f78)};}['destoryRenderingFramebuffers'](){function _0x1394a4(_0x39dc88,_0x4c0a68){return _0x27febc(_0x4c0a68-0x3c,_0x39dc88);}Object[_0x1394a4(0xb4,0x34)](this['framebuffers'])['forEach'](_0x4cd803=>{_0x4cd803['destroy']();});}[_0x27febc(0x5,0x3b)](){const _0x16f25a=new Float32Array(this['options'][_0x2649fe(0x49,0x1)]['flatMap'](_0x4102c1=>{function _0x1b6bfb(_0x236841,_0x5cf69a){return _0x2649fe(_0x236841,_0x5cf69a- -0x7c);}const _0x117c76=Color$1['fromCssColorString'](_0x4102c1);return[_0x117c76['red'],_0x117c76[_0x1b6bfb(-0x42,-0x36)],_0x117c76['blue'],_0x117c76['alpha']];}));function _0x38fb76(_0x47c599,_0x3cafa1){return _0x4445ca(_0x47c599,_0x3cafa1- -0x228);}const _0x5687b2={};_0x5687b2['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x5687b2['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x5687b2['wrapS']=TextureWrap[_0x2649fe(-0x86,-0x34)];function _0x2649fe(_0xba8097,_0x1593d1){return _0x27febc(_0x1593d1-0x34,_0xba8097);}return _0x5687b2['wrapT']=TextureWrap[_0x38fb76(0x350,0x330)],new Texture({'context':this['context'],'width':this[_0x2649fe(0xb8,0x59)][_0x2649fe(-0x88,0x1)]['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x5687b2),'source':{'width':this['options']['colors'][_0x2649fe(-0xb2,-0x85)],'height':0x1,'arrayBufferView':_0x16f25a}});}[_0x4445ca(0x5ce,0x560)](){const _0x7c279a=0x4,_0x19f607=this[_0x363333(0x449,0x44d)]['particlesTextureSize'];function _0x267446(_0x157e68,_0x1c70ea){return _0x27febc(_0x1c70ea-0x7,_0x157e68);}let _0x1e8ec3=[];for(let _0x28b003=0x0;_0x28b003<_0x19f607;_0x28b003++){for(let _0x9a07e7=0x0;_0x9a07e7<_0x19f607;_0x9a07e7++){for(let _0x1772db=0x0;_0x1772db<_0x7c279a;_0x1772db++){_0x1e8ec3['push'](_0x28b003/_0x19f607),_0x1e8ec3[_0x363333(0x378,0x39b)](_0x9a07e7/_0x19f607);}}}_0x1e8ec3=new Float32Array(_0x1e8ec3);const _0x2f925a=this['options']['particlesTextureSize']**0x2;let _0x5a4290=[];for(let _0x456224=0x0;_0x456224<_0x2f925a;_0x456224++){_0x5a4290['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x5a4290=new Float32Array(_0x5a4290);let _0x505f5f=[];for(let _0x360caa=0x0,_0x2898a2=0x0;_0x360caa<_0x2f925a;_0x360caa++){_0x505f5f[_0x363333(0x414,0x39b)](_0x2898a2+0x0,_0x2898a2+0x1,_0x2898a2+0x2,_0x2898a2+0x2,_0x2898a2+0x1,_0x2898a2+0x3),_0x2898a2+=_0x7c279a;}_0x505f5f=new Uint32Array(_0x505f5f);const _0xbb3701={};function _0x363333(_0x11f590,_0x3dcb7f){return _0x27febc(_0x3dcb7f-0x428,_0x11f590);}_0xbb3701[_0x363333(0x3c1,0x3a4)]=ComponentDatatype['FLOAT'],_0xbb3701['componentsPerAttribute']=0x2,_0xbb3701['values']=_0x1e8ec3;const _0x2314a8={};_0x2314a8['componentDatatype']=ComponentDatatype['FLOAT'],_0x2314a8['componentsPerAttribute']=0x3,_0x2314a8['values']=_0x5a4290;const _0x261e55=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0xbb3701),'normal':new GeometryAttribute(_0x2314a8)}),'indices':_0x505f5f});return _0x261e55;}['createRawRenderState'](_0x8799ba){const _0xf0a13c={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x8799ba};return Appearance['getDefaultRenderState'](!![],![],_0xf0a13c);}[_0x27febc(-0x3e,0x14)](){const _0x1dd820={};_0x1dd820['st']=0x0,_0x1dd820['normal']=0x1;const _0x525c51={};_0x525c51[_0x3feff1(0x42a,0x412)]=!![];const _0x3c0837={};_0x3c0837['enabled']=!![],_0x3c0837[_0x15d2e5(0x4b7,0x4f8)]=WebGLRenderingContext[_0x3feff1(0x49e,0x417)],_0x3c0837['blendFuncSource']=WebGLRenderingContext[_0x3feff1(0x3bb,0x3ed)],_0x3c0837[_0x15d2e5(0x49b,0x480)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x256a22={};_0x256a22[_0x15d2e5(0x49f,0x491)]=undefined,_0x256a22['depthTest']=_0x525c51,_0x256a22[_0x3feff1(0x3bb,0x3b4)]=!![],_0x256a22['blending']=_0x3c0837;const _0x166659=new CustomPrimitive({'commandType':_0x15d2e5(0x54f,0x4cf),'attributeLocations':_0x1dd820,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0x15d2e5(0x474,0x428)],'uniformMap':{'previousParticlesPosition':()=>this[_0x15d2e5(0x4b4,0x48c)]['particlesTextures'][_0x15d2e5(0x3a9,0x406)],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x15d2e5(0x4c6,0x48c)]['particlesTextures'][_0x3feff1(0x507,0x48d)],'particlesSpeed':()=>this[_0x15d2e5(0x4da,0x48c)]['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this['computing'][_0x15d2e5(0x4a0,0x501)],'colorTable':()=>this[_0x3feff1(0x47c,0x40a)],'domain':()=>{function _0x845f07(_0x3dc9b2,_0x501bda){return _0x15d2e5(_0x501bda,_0x3dc9b2- -0x42f);}var _0x33019e,_0x596306;const _0x4da1c0=new Cartesian2(((_0x33019e=this[_0x845f07(0xb1,0xce)][_0x3a522c(0x5ad,0x5b9)])===null||_0x33019e===void 0x0?void 0x0:_0x33019e['min'])??this['computing']['windData']['speed']['min'],((_0x596306=this['options']['domain'])===null||_0x596306===void 0x0?void 0x0:_0x596306['max'])??this['computing'][_0x845f07(0x80,0xc4)][_0x845f07(0x2e,0x9)]['max']);function _0x3a522c(_0x388dbb,_0x490c09){return _0x15d2e5(_0x490c09,_0x388dbb-0xf4);}return _0x4da1c0;},'displayRange':()=>{function _0x1364eb(_0x24a26d,_0x2b2869){return _0x3feff1(_0x2b2869,_0x24a26d- -0x199);}function _0x49a1d5(_0x13a857,_0x5e3338){return _0x15d2e5(_0x13a857,_0x5e3338-0xee);}var _0x360fb1,_0x3b7615;const _0x2fdfe8=new Cartesian2(((_0x360fb1=this['options'][_0x1364eb(0x2b5,0x260)])===null||_0x360fb1===void 0x0?void 0x0:_0x360fb1[_0x49a1d5(0x59e,0x563)])??this['computing']['windData']['speed']['min'],((_0x3b7615=this['options']['displayRange'])===null||_0x3b7615===void 0x0?void 0x0:_0x3b7615[_0x1364eb(0x2e3,0x304)])??this['computing']['windData']['speed']['max']);return _0x2fdfe8;},'particleHeight':()=>this[_0x15d2e5(0x4d8,0x4e0)]['fixedHeight']||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context']['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters'][_0x15d2e5(0x58f,0x506)],'lineWidth':()=>{function _0x3c6ccc(_0x5082b4,_0x14035f){return _0x3feff1(_0x14035f,_0x5082b4- -0x568);}const _0x1462d0={};_0x1462d0[_0x560ae7(0x327,0x2ca)]=0x1,_0x1462d0['max']=0x2;const _0x3a447=this[_0x560ae7(0x2ba,0x335)]['lineWidth']||_0x1462d0;function _0x560ae7(_0x41db3a,_0xc4f0d9){return _0x15d2e5(_0x41db3a,_0xc4f0d9- -0x1ab);}return new Cartesian2(_0x3a447['min'],_0x3a447[_0x560ae7(0x3ae,0x349)]);},'lineLength':()=>{const _0x26890d={};_0x26890d['min']=0x14,_0x26890d['max']=0x64;const _0x557759=this['options']['lineLength']||_0x26890d;return new Cartesian2(_0x557759['min'],_0x557759['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0x15d2e5(0x498,0x502)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x15d2e5(0x519,0x4f6)](),'rawRenderState':this['createRawRenderState'](_0x256a22)}),_0x3e7f9={};_0x3e7f9[_0x3feff1(0x43d,0x3e9)]=_0x166659;function _0x15d2e5(_0x208de9,_0x27ed27){return _0x4445ca(_0x208de9,_0x27ed27- -0x105);}function _0x3feff1(_0x268fd6,_0x3beda2){return _0x27febc(_0x3beda2-0x443,_0x268fd6);}return _0x3e7f9;}[_0x4445ca(0x524,0x569)](){const _0x2e7ad9=this['createSegmentsGeometry']();this[_0xe7cdcf(0x4ec,0x494)][_0x411c44(-0x17,0x59)]['geometry']=_0x2e7ad9;const _0x246969={};_0x246969[_0x411c44(0x43,0xbd)]=this['context'],_0x246969[_0x411c44(-0x34,-0x71)]=_0x2e7ad9,_0x246969['attributeLocations']=this[_0x411c44(-0x2a,-0xd)][_0x411c44(-0x17,0x1b)]['attributeLocations'],_0x246969['bufferUsage']=BufferUsage['STATIC_DRAW'];function _0xe7cdcf(_0x753c0c,_0x960095){return _0x27febc(_0x960095-0x501,_0x753c0c);}const _0x556c4d=VertexArray[_0x411c44(0x4f,-0x1b)](_0x246969);function _0x411c44(_0x179e83,_0x138990){return _0x27febc(_0x179e83-0x43,_0x138990);}this['primitives'][_0x411c44(-0x17,-0x17)]['commandToExecute']&&(this['primitives']['segments'][_0xe7cdcf(0x4f1,0x4e0)][_0x411c44(-0x4f,-0x41)]=_0x556c4d);}['onColorTableChange'](){function _0x5d434a(_0x51223e,_0x207263){return _0x4445ca(_0x51223e,_0x207263- -0x24);}function _0x271b07(_0x4206b8,_0x24900b){return _0x27febc(_0x24900b-0x5e7,_0x4206b8);}this[_0x5d434a(0x4ea,0x563)]['destroy'](),this[_0x271b07(0x621,0x5ae)]=this['createColorTableTexture']();}['updateOptions'](_0x1c6606){const _0x1557d1=_0x1c6606['colors']&&JSON[_0x390b43(0x59d,0x513)](_0x1c6606['colors'])!==JSON['stringify'](this[_0x390b43(0x586,0x608)]['colors']);function _0x28b387(_0x239db4,_0x4fb29a){return _0x4445ca(_0x4fb29a,_0x239db4-0xa9);}this['options']=deepMerge(_0x1c6606,this['options']);function _0x390b43(_0x571c46,_0x1ee9af){return _0x4445ca(_0x1ee9af,_0x571c46- -0x5f);}_0x1557d1&&this['onColorTableChange']();}['destroy'](){function _0x2e4540(_0x3f0ad6,_0x582c26){return _0x4445ca(_0x582c26,_0x3f0ad6- -0x40);}Object['values'](this[_0x2e4540(0x58a,0x50b)])['forEach'](_0xfc4e2f=>{_0xfc4e2f['destroy']();}),Object['values'](this['primitives'])['forEach'](_0x4eb2fe=>{_0x4eb2fe['destroy']();});function _0x57b48d(_0x4c499a,_0x1a3b58){return _0x27febc(_0x4c499a-0xc3,_0x1a3b58);}this[_0x57b48d(0x8a,0xbe)][_0x2e4540(0x549,0x560)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x4445ca(0x558,0x545)];class WindParticleSystem{constructor(_0x23aa6b,_0x2ff768,_0x23ecd4,_0x10fd4d,_0x5f442e){this[_0x58d9a2(0x180,0x1ac)]=_0x23aa6b,this['options']=_0x23ecd4,this['viewerParameters']=_0x10fd4d;function _0x542c83(_0x46e1a8,_0x34a751){return _0x4445ca(_0x34a751,_0x46e1a8- -0x67d);}this[_0x542c83(-0xec,-0xa1)]=new WindParticlesComputing(_0x23aa6b,_0x2ff768,_0x23ecd4,_0x10fd4d,_0x5f442e),this[_0x542c83(-0xcc,-0x133)]=new WindParticlesRendering(_0x23aa6b,_0x23ecd4,_0x10fd4d,this['computing']);function _0x58d9a2(_0x19a7e0,_0x667e9c){return _0x27febc(_0x667e9c-0x1ac,_0x19a7e0);}this[_0x542c83(-0xf1,-0xd5)]();}['getPrimitives'](){function _0x2e6e11(_0x4f511a,_0x32a0b0){return _0x4445ca(_0x32a0b0,_0x4f511a- -0x57d);}const _0x4e83bd=[this['computing'][_0x5aced8(0x53d,0x4b7)]['calculateSpeed'],this[_0x2e6e11(0x14,-0x12)]['primitives']['updatePosition'],this[_0x5aced8(0x4c2,0x4f5)][_0x2e6e11(-0x2a,0x5a)]['postProcessingPosition'],this[_0x5aced8(0x54e,0x515)]['primitives'][_0x2e6e11(-0x17,0x16)]];function _0x5aced8(_0x51e6c6,_0xdc4624){return _0x4445ca(_0x51e6c6,_0xdc4624- -0x9c);}return _0x4e83bd;}[_0x27febc(-0x34,-0x50)](){function _0x4be84e(_0x1cc6b7,_0x5b260b){return _0x4445ca(_0x5b260b,_0x1cc6b7- -0x6bd);}const _0x2447ff=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x4fc10b(_0x8efce1,_0x35b073){return _0x4445ca(_0x8efce1,_0x35b073- -0x56f);}Object[_0x4be84e(-0x10d,-0xcb)](this[_0x4fc10b(0x88,0x42)][_0x4fc10b(-0x18,0x5b)])['forEach'](_0x1a762f=>{_0x2447ff['framebuffer']=this[_0x4a5a92(0x130,0x117)]['framebuffers'][_0x1a762f];function _0x4a5a92(_0x4adb12,_0x290070){return _0x4be84e(_0x290070-0x223,_0x4adb12);}_0x2447ff['execute'](this['context']);});}['changeOptions'](_0x119a1c){function _0xfa039(_0x183b7e,_0x1d94f7){return _0x27febc(_0x1d94f7-0x4b7,_0x183b7e);}let _0x22faa2=![];_0x119a1c['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x119a1c['particlesTextureSize']&&(_0x22faa2=!![]);const _0x78f6=deepMerge(_0x119a1c,this[_0xfa039(0x457,0x4dc)]);if(_0x78f6['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x78f6;function _0x362327(_0xdaa3b2,_0x447fe2){return _0x4445ca(_0x447fe2,_0xdaa3b2-0x4e);}this[_0xfa039(0x50c,0x4a8)][_0xfa039(0x4a0,0x467)](_0x119a1c),this['computing']['updateOptions'](_0x119a1c),_0x22faa2&&(this[_0x362327(0x5df,0x564)]['destroyParticlesTextures'](),this[_0xfa039(0x42e,0x488)][_0xfa039(0x49d,0x4ef)](),this['rendering'][_0x362327(0x5b7,0x5c8)]());}['applyViewerParameters'](_0x2d7b54){function _0x30ddfc(_0x4bc860,_0x32093f){return _0x4445ca(_0x4bc860,_0x32093f- -0x4e5);}this[_0x8e174d(0x62c,0x5ea)]=_0x2d7b54,this['computing']['viewerParameters']=_0x2d7b54;function _0x8e174d(_0x2bfd17,_0x555557){return _0x4445ca(_0x555557,_0x2bfd17-0x7e);}this['rendering'][_0x30ddfc(0xb7,0xc9)]=_0x2d7b54;}['destroy'](){function _0x4ce076(_0xa2e43f,_0x2ffde7){return _0x27febc(_0x2ffde7- -0xaf,_0xa2e43f);}this[_0x4ce076(-0x10c,-0xde)]['destroy'](),this['rendering']['destroy']();}}function _0x34ed(_0x168d26,_0xb79efa){const _0x55d3af=_0x55d3();return _0x34ed=function(_0x34ed1d,_0x345800){_0x34ed1d=_0x34ed1d-0x1d2;let _0x3ffc07=_0x55d3af[_0x34ed1d];return _0x3ffc07;},_0x34ed(_0x168d26,_0xb79efa);}const Cesium$1=mars3d__namespace[_0x27febc(-0x7b,-0x4f)],BaseLayer$1=mars3d__namespace[_0x27febc(-0x27,-0x43)]['BaseLayer'],_0x414cde={};_0x414cde['min']=0x1,_0x414cde[_0x4445ca(0x659,0x5f9)]=0x2;const _0x1a4a96={};_0x1a4a96[_0x4445ca(0x5f3,0x57a)]=0x14,_0x1a4a96['max']=0x64;const _0x1eee4f={};_0x1eee4f[_0x4445ca(0x504,0x503)]=0x64,_0x1eee4f['fixedHeight']=0x0,_0x1eee4f['lineWidth']=_0x414cde,_0x1eee4f['lineLength']=_0x1a4a96,_0x1eee4f['speedFactor']=0x1,_0x1eee4f[_0x4445ca(0x502,0x55a)]=0.003,_0x1eee4f['dropRateBump']=0.001,_0x1eee4f[_0x4445ca(0x507,0x58d)]=[_0x4445ca(0x560,0x4fe)],_0x1eee4f[_0x4445ca(0x4fe,0x515)]=![],_0x1eee4f['dynamic']=!![];const DEF_OPTIONS=_0x1eee4f;class WindLayer extends BaseLayer$1{constructor(_0x1fe0da={}){_0x1fe0da={...DEF_OPTIONS,..._0x1fe0da},super(_0x1fe0da),this['_setOptionsHook'](_0x1fe0da,_0x1fe0da);}get['layer'](){function _0x2a30e7(_0x2eed5d,_0x5ac3ff){return _0x27febc(_0x2eed5d-0x35d,_0x5ac3ff);}return this[_0x2a30e7(0x2f0,0x28a)];}get[_0x27febc(-0x2e,0x26)](){return this['options']['data'];}set[_0x4445ca(0x5c5,0x592)](_0x3fe9a7){function _0x47c80b(_0x5a8d51,_0x1a51e8){return _0x27febc(_0x5a8d51-0x242,_0x1a51e8);}this[_0x3101d5(0x214,0x1a5)]['data']=_0x3fe9a7;function _0x3101d5(_0x4e5e42,_0x373f87){return _0x27febc(_0x373f87-0x180,_0x4e5e42);}this[_0x3101d5(0x1e0,0x196)](_0x3fe9a7);}get['colors'](){function _0x5558c4(_0x285242,_0x553928){return _0x27febc(_0x285242- -0x143,_0x553928);}return this['options'][_0x5558c4(-0x176,-0x137)];}set['colors'](_0x469dbb){this['options']['colors']=_0x469dbb;const _0x45f203={};_0x45f203[_0x41dafa(-0x136,-0x15c)]=_0x469dbb;function _0x41dafa(_0xc1dac5,_0x11cfba){return _0x4445ca(_0xc1dac5,_0x11cfba- -0x6e9);}this['_setOptionsHook'](this['options'],_0x45f203);}[_0x4445ca(0x4e7,0x516)](_0x3eebda){function _0x48c17b(_0x3a5224,_0xe96940){return _0x4445ca(_0xe96940,_0x3a5224- -0x3f3);}_0x3eebda?this['_addedHook']():this[_0x48c17b(0x1ca,0x15c)]();}['_mountedHook'](){}['_addedHook'](){this[_0x4337f4(0x3d5,0x411)]=this[_0x4337f4(0x3a9,0x3e3)]['scene'],this['camera']=this[_0x4a70dc(0x32f,0x2c8)]['camera'];this['options']['data']&&this['setData'](this['options'][_0x4337f4(0x422,0x473)]);if(!this[_0x4a70dc(0x326,0x37a)]||!this['show'])return;this[_0x4a70dc(0x34d,0x374)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']};function _0x4a70dc(_0x54be0c,_0x361eea){return _0x27febc(_0x361eea-0x386,_0x54be0c);}this['updateViewerParameters'](),this[_0x4a70dc(0x401,0x3d2)]=new WindParticleSystem(this[_0x4337f4(0x495,0x411)][_0x4337f4(0x4c6,0x4a1)],this['windData'],this[_0x4337f4(0x54e,0x4c6)],this['viewerParameters'],this[_0x4a70dc(0x346,0x2f6)]),this[_0x4337f4(0x470,0x434)]=this['particleSystem'][_0x4a70dc(0x31e,0x39d)]();function _0x4337f4(_0x398644,_0x2c2e0d){return _0x27febc(_0x2c2e0d-0x4a1,_0x398644);}this[_0x4337f4(0x429,0x434)]['forEach'](_0x5747a1=>{function _0x53493f(_0x3860e6,_0x18f57a){return _0x4a70dc(_0x3860e6,_0x18f57a- -0x1c9);}this[_0x53493f(0x149,0x12d)]['primitives']['add'](_0x5747a1);}),this['camera']['percentageChanged']=0.01,this['camera']['changed']['addEventListener'](this[_0x4337f4(0x3e2,0x42c)][_0x4337f4(0x481,0x490)](this)),this['scene']['morphComplete'][_0x4337f4(0x4c5,0x4ce)](this['updateViewerParameters'][_0x4337f4(0x4f6,0x490)](this)),window['addEventListener']('resize',this[_0x4337f4(0x479,0x42c)]['bind'](this));}['_removedHook'](){this['camera'][_0x4d01e9(0x4a,0x82)][_0x8fe13e(0x35e,0x394)](this['updateViewerParameters']['bind'](this));function _0x8fe13e(_0xc158e5,_0x420f88){return _0x4445ca(_0xc158e5,_0x420f88- -0x1da);}this['scene']['morphComplete'][_0x8fe13e(0x352,0x394)](this['updateViewerParameters']['bind'](this));function _0x4d01e9(_0x17248a,_0x5563c4){return _0x4445ca(_0x5563c4,_0x17248a- -0x56f);}window[_0x8fe13e(0x41f,0x394)](_0x4d01e9(-0x5d,0x15),this['updateViewerParameters']['bind'](this)),this['primitives']&&(this['primitives']['forEach'](_0x22599b=>{this['scene']['primitives']['remove'](_0x22599b);}),delete this[_0x8fe13e(0x3e9,0x379)]),this['particleSystem']&&(this['particleSystem'][_0x8fe13e(0x3b1,0x3af)](),delete this['particleSystem']);}[_0x27febc(0x16,-0xe)](_0xd59f5c,_0x1ef1a0){this['windData']=this[_0x390600(0x37a,0x3b9)](_0xd59f5c);function _0x390600(_0x3d2f44,_0x490b0c){return _0x4445ca(_0x490b0c,_0x3d2f44- -0x204);}function _0x149ca4(_0x4bbc1a,_0x1d1d9e){return _0x27febc(_0x4bbc1a-0x1b9,_0x1d1d9e);}if(_0x1ef1a0){this[_0x149ca4(0x1b6,0x21a)](),this['_addedHook']();return;}this[_0x149ca4(0x205,0x28e)]?(this['particleSystem'][_0x149ca4(0x18a,0x17e)]['updateWindData'](this['windData']),this['scene']['requestRender']()):this['_addedHook']();}['_setOptionsHook'](_0x2624d1,_0xbebb94){function _0xcc140f(_0x2bb7a7,_0x523919){return _0x4445ca(_0x2bb7a7,_0x523919- -0x20f);}function _0x1f28b3(_0x7972f,_0x3a336c){return _0x27febc(_0x3a336c- -0x52,_0x7972f);}this[_0x1f28b3(-0x2d,-0x6)]&&(this['particleSystem'][_0x1f28b3(-0xeb,-0x6e)](_0xbebb94),this['scene']['requestRender']());}['processWindData'](_0x4455d2){var _0x41017b,_0x2ba6c6;function _0x704f5b(_0x5dcf7e,_0x37efc6){return _0x4445ca(_0x5dcf7e,_0x37efc6-0x29);}const _0x4cefed={..._0x4455d2},_0x27e92a=_0x4cefed;function _0x155e55(_0x50991a,_0x1070eb){return _0x27febc(_0x50991a-0x30,_0x1070eb);}!_0x27e92a['height']&&_0x27e92a['rows']&&(_0x27e92a['height']=_0x27e92a['rows']);!_0x27e92a[_0x155e55(0x59,0x6a)]&&_0x27e92a['cols']&&(_0x27e92a['width']=_0x27e92a[_0x155e55(0x78,0xcf)]);!_0x27e92a['bounds']&&(_0x27e92a['bounds']={'west':_0x27e92a['xmin'],'south':_0x27e92a[_0x704f5b(0x6a0,0x629)],'east':_0x27e92a['xmax'],'north':_0x27e92a['ymax']});if(!_0x27e92a['u']){const _0x44a939={};_0x44a939['array']=_0x4455d2['udata'],_0x44a939[_0x155e55(-0x16,0x5b)]=_0x4455d2['umin'],_0x44a939[_0x704f5b(0x604,0x622)]=_0x4455d2['umax'],_0x27e92a['u']=_0x44a939;}if(!_0x27e92a['v']){const _0x2c08d4={};_0x2c08d4['array']=_0x4455d2['vdata'],_0x2c08d4['min']=_0x4455d2['vmin'],_0x2c08d4['max']=_0x4455d2['vmax'],_0x27e92a['v']=_0x2c08d4;}if(((_0x41017b=_0x27e92a['speed'])===null||_0x41017b===void 0x0?void 0x0:_0x41017b['min'])===undefined||((_0x2ba6c6=_0x27e92a[_0x704f5b(0x51b,0x58b)])===null||_0x2ba6c6===void 0x0?void 0x0:_0x2ba6c6['max'])===undefined||_0x27e92a[_0x704f5b(0x59b,0x58b)][_0x155e55(0x22,0x92)]===undefined){const _0x218727={'array':new Float32Array(_0x27e92a['u']['array'][_0x155e55(-0x89,-0xf0)]),'min':Number['MAX_VALUE'],'max':Number[_0x704f5b(0x574,0x582)]};for(let _0xeff64f=0x0;_0xeff64f<_0x27e92a['u']['array'][_0x704f5b(0x4d1,0x530)];_0xeff64f++){_0x218727['array'][_0xeff64f]=Math['sqrt'](_0x27e92a['u']['array'][_0xeff64f]*_0x27e92a['u']['array'][_0xeff64f]+_0x27e92a['v'][_0x155e55(0x22,0x73)][_0xeff64f]*_0x27e92a['v'][_0x155e55(0x22,0x91)][_0xeff64f]),_0x218727[_0x704f5b(0x610,0x5db)][_0xeff64f]!==0x0&&(_0x218727[_0x155e55(-0x16,-0x87)]=Math[_0x704f5b(0x5c7,0x5a3)](_0x218727['min'],_0x218727[_0x155e55(0x22,-0x54)][_0xeff64f]),_0x218727['max']=Math['max'](_0x218727[_0x704f5b(0x652,0x622)],_0x218727['array'][_0xeff64f]));}_0x27e92a['speed']=_0x218727;}return _0x27e92a;}['updateViewerParameters'](){var _0x5d7fd9;const _0x30fe15=this[_0x1b464c(0x163,0x176)];if(!_0x30fe15)return;const _0x249742=_0x30fe15['canvas'],_0x54ddb4={};_0x54ddb4['x']=0x0;function _0x1b464c(_0x2e1ea8,_0x557d0a){return _0x27febc(_0x557d0a-0x206,_0x2e1ea8);}_0x54ddb4['y']=0x0;const _0x175c26={};_0x175c26['x']=0x0,_0x175c26['y']=_0x249742[_0x1b464c(0x234,0x24f)];function _0x5e5e0c(_0x5b2e86,_0x5efda7){return _0x27febc(_0x5b2e86-0x38d,_0x5efda7);}const _0x29f41d={};_0x29f41d['x']=_0x249742[_0x5e5e0c(0x3ad,0x435)],_0x29f41d['y']=0x0;const _0x9b7005={};_0x9b7005['x']=_0x249742['clientWidth'],_0x9b7005['y']=_0x249742['clientHeight'];const _0x506af1=[_0x54ddb4,_0x175c26,_0x29f41d,_0x9b7005];let _0x1305f7=0xb4,_0x51b3e0=-0xb4,_0x493c98=0x5a,_0x4e938a=-0x5a,_0x27bed9=![];for(const _0x5b82e4 of _0x506af1){const _0x5723f7=_0x30fe15['camera']['pickEllipsoid'](new Cesium$1[(_0x1b464c(0x1b5,0x21f))](_0x5b82e4['x'],_0x5b82e4['y']),_0x30fe15[_0x1b464c(0x16b,0x1bf)][_0x1b464c(0x150,0x183)]);if(!_0x5723f7){_0x27bed9=!![];break;}const _0xa21058=_0x30fe15['globe'][_0x1b464c(0x141,0x183)]['cartesianToCartographic'](_0x5723f7),_0x3af2a7=Cesium$1['Math']['toDegrees'](_0xa21058['longitude']),_0x16784f=Cesium$1[_0x1b464c(0x1d4,0x1c3)][_0x1b464c(0x1ec,0x23d)](_0xa21058['latitude']);_0x1305f7=Math[_0x5e5e0c(0x347,0x354)](_0x1305f7,_0x3af2a7),_0x51b3e0=Math['max'](_0x51b3e0,_0x3af2a7),_0x493c98=Math['min'](_0x493c98,_0x16784f),_0x4e938a=Math['max'](_0x4e938a,_0x16784f);}if(!_0x27bed9){const _0x5100b9=new Cesium$1[(_0x5e5e0c(0x3a6,0x425))](Math[_0x1b464c(0x23e,0x23f)](this['windData'][_0x5e5e0c(0x2dc,0x26f)][_0x1b464c(0x153,0x162)],_0x1305f7),Math['min'](this['windData']['bounds']['east'],_0x51b3e0)),_0x1cf93a=new Cesium$1[(_0x5e5e0c(0x3a6,0x329))](Math['max'](this['windData']['bounds']['south'],_0x493c98),Math['min'](this['windData']['bounds'][_0x5e5e0c(0x2ee,0x2c6)],_0x4e938a)),_0x9455b=(_0x5100b9['y']-_0x5100b9['x'])*0.05,_0xde653=(_0x1cf93a['y']-_0x1cf93a['x'])*0.05;_0x5100b9['x']=Math[_0x1b464c(0x243,0x23f)](this[_0x5e5e0c(0x381,0x32c)][_0x1b464c(0x132,0x155)]['west'],_0x5100b9['x']-_0x9455b),_0x5100b9['y']=Math['min'](this[_0x5e5e0c(0x381,0x405)]['bounds']['east'],_0x5100b9['y']+_0x9455b),_0x1cf93a['x']=Math['max'](this['windData']['bounds']['south'],_0x1cf93a['x']-_0xde653),_0x1cf93a['y']=Math[_0x5e5e0c(0x347,0x336)](this[_0x5e5e0c(0x381,0x35b)][_0x1b464c(0x120,0x155)]['north'],_0x1cf93a['y']+_0xde653),this['viewerParameters'][_0x5e5e0c(0x394,0x322)]=_0x5100b9,this[_0x5e5e0c(0x37b,0x3d7)][_0x5e5e0c(0x36d,0x318)]=_0x1cf93a;const _0x2a8fac=this['windData'][_0x5e5e0c(0x2dc,0x2a3)]['east']-this['windData']['bounds'][_0x5e5e0c(0x2e9,0x27c)],_0x54fe10=this[_0x1b464c(0x25f,0x1fa)][_0x5e5e0c(0x2dc,0x2a1)]['north']-this[_0x5e5e0c(0x381,0x380)][_0x5e5e0c(0x2dc,0x30a)]['south'],_0x3f49eb=(_0x5100b9['y']-_0x5100b9['x'])/_0x2a8fac,_0x40fe5b=(_0x1cf93a['y']-_0x1cf93a['x'])/_0x54fe10,_0x3647c4=Math[_0x5e5e0c(0x347,0x2e9)](_0x3f49eb,_0x40fe5b),_0x31632f=0x3e8*_0x3647c4;_0x31632f>0x0&&(this['viewerParameters']['pixelSize']=Math[_0x1b464c(0x2bd,0x23f)](0x0,Math[_0x1b464c(0x16d,0x1c0)](0x3e8,_0x31632f)));}this[_0x1b464c(0x16a,0x1f4)][_0x1b464c(0x234,0x1bb)]=this['scene']['mode'],(_0x5d7fd9=this['particleSystem'])===null||_0x5d7fd9===void 0x0||_0x5d7fd9['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x1a5cfd,_0x7270fe){const {bounds:_0x51e98c,width:_0x4b840c,height:_0x31609f,u:_0xd64309,v:_0x11725f,speed:_0x36766c}=this[_0x5c04d4(0x616,0x601)],{flipY:_0x293b7b}=this[_0x5c04d4(0x647,0x5ea)];if(_0x1a5cfd<_0x51e98c[_0x761fbd(0x28f,0x21c)]||_0x1a5cfd>_0x51e98c['east']||_0x7270fe<_0x51e98c['south']||_0x7270fe>_0x51e98c['north'])return null;const _0x54df2c=(_0x1a5cfd-_0x51e98c['west'])/(_0x51e98c[_0x761fbd(0x263,0x2ce)]-_0x51e98c['west'])*(_0x4b840c-0x1);let _0x157ea4=(_0x7270fe-_0x51e98c[_0x5c04d4(0x63e,0x628)])/(_0x51e98c['north']-_0x51e98c['south'])*(_0x31609f-0x1);_0x293b7b&&(_0x157ea4=_0x31609f-0x1-_0x157ea4);const _0x2b63c0=Math['floor'](_0x54df2c),_0x54f825=Math['floor'](_0x157ea4),_0x5dc2be=Math[_0x5c04d4(0x5ed,0x64c)](_0x54df2c),_0x4b8c1e=Math[_0x5c04d4(0x5dc,0x616)](_0x5dc2be+0x1,_0x4b840c-0x1),_0x25980b=Math['floor'](_0x157ea4),_0x4b1b64=Math[_0x761fbd(0x248,0x27a)](_0x25980b+0x1,_0x31609f-0x1),_0x3c5163=_0x54df2c-_0x5dc2be,_0x10135f=_0x157ea4-_0x25980b,_0x46c68f=_0x54f825*_0x4b840c+_0x2b63c0,_0x2eded4=_0x25980b*_0x4b840c+_0x5dc2be,_0x3f2fdc=_0x25980b*_0x4b840c+_0x4b8c1e,_0x508192=_0x4b1b64*_0x4b840c+_0x5dc2be,_0x3329ee=_0x4b1b64*_0x4b840c+_0x4b8c1e,_0x3ae4b2=_0xd64309['array'][_0x2eded4],_0x452cf2=_0xd64309['array'][_0x3f2fdc],_0xd38716=_0xd64309['array'][_0x508192],_0x63ddac=_0xd64309[_0x761fbd(0x232,0x2b2)][_0x3329ee];function _0x761fbd(_0x1721aa,_0x17ce8f){return _0x27febc(_0x17ce8f-0x2c0,_0x1721aa);}const _0xb8b1b7=(0x1-_0x3c5163)*(0x1-_0x10135f)*_0x3ae4b2+_0x3c5163*(0x1-_0x10135f)*_0x452cf2+(0x1-_0x3c5163)*_0x10135f*_0xd38716+_0x3c5163*_0x10135f*_0x63ddac,_0x3c1ece=_0x11725f[_0x5c04d4(0x614,0x592)][_0x2eded4],_0x5f5184=_0x11725f['array'][_0x3f2fdc],_0x3961dc=_0x11725f['array'][_0x508192],_0x527a5b=_0x11725f[_0x5c04d4(0x614,0x5c9)][_0x3329ee],_0x324442=(0x1-_0x3c5163)*(0x1-_0x10135f)*_0x3c1ece+_0x3c5163*(0x1-_0x10135f)*_0x5f5184+(0x1-_0x3c5163)*_0x10135f*_0x3961dc+_0x3c5163*_0x10135f*_0x527a5b,_0x194d39=Math[_0x5c04d4(0x5af,0x637)](_0xb8b1b7*_0xb8b1b7+_0x324442*_0x324442),_0x3c501b={};_0x3c501b['u']=_0xd64309['array'][_0x46c68f],_0x3c501b['v']=_0x11725f[_0x761fbd(0x2ca,0x2b2)][_0x46c68f];function _0x5c04d4(_0x20b714,_0x52de99){return _0x4445ca(_0x52de99,_0x20b714-0x62);}_0x3c501b['speed']=_0x36766c['array'][_0x46c68f];const _0x4b4d95={};_0x4b4d95['u']=_0xb8b1b7,_0x4b4d95['v']=_0x324442,_0x4b4d95[_0x5c04d4(0x5c4,0x5a9)]=_0x194d39;const _0xb8a85c={};return _0xb8a85c['original']=_0x3c501b,_0xb8a85c[_0x5c04d4(0x5c0,0x5a4)]=_0x4b4d95,_0xb8a85c;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this[_0x426556(0x2a2,0x2ca)]=null;function _0x426556(_0x1ff5f7,_0x47c4d9){return _0x4445ca(_0x1ff5f7,_0x47c4d9- -0x278);}this['lat']=null,this['tlng']=null,this[_0x426556(0x32a,0x2de)]=null;function _0x2b39ec(_0x4e7463,_0x2bbf01){return _0x27febc(_0x4e7463-0x1d3,_0x2bbf01);}this[_0x426556(0x31f,0x367)]=null,this['speed']=null;}[_0x27febc(-0x37,-0x34)](){for(const _0x163021 in this){delete this[_0x163021];}}}class CanvasWindField{constructor(_0x4f4860){this['setOptions'](_0x4f4860);}get[_0x27febc(0x9,0x49)](){function _0x3f4742(_0x476f01,_0x2c25a3){return _0x27febc(_0x2c25a3-0x262,_0x476f01);}return this[_0x3f4742(0x214,0x213)];}set[_0x27febc(0x9,-0x8)](_0x33a58a){function _0x288628(_0xfcbc7f,_0x55f65c){return _0x27febc(_0x55f65c-0x59d,_0xfcbc7f);}function _0x9d6bde(_0x30e080,_0x2cff87){return _0x4445ca(_0x30e080,_0x2cff87- -0x33f);}this[_0x9d6bde(0x253,0x232)]=(0x64-(_0x33a58a>0x63?0x63:_0x33a58a))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this[_0x288628(0x512,0x54e)],(this['ymax']-this['ymin'])/this['_speedRate']];}get[_0x27febc(-0x58,0x2f)](){return this['_maxAge'];}set['maxAge'](_0x25d261){this['_maxAge']=_0x25d261;}['setOptions'](_0x19892b){function _0x35329d(_0x26c01e,_0x24c59c){return _0x27febc(_0x24c59c-0x453,_0x26c01e);}this['options']=_0x19892b,this['maxAge']=_0x19892b['maxAge']||0x78;function _0x153138(_0x472f1e,_0x2f78c1){return _0x4445ca(_0x472f1e,_0x2f78c1- -0x4ed);}this['speedRate']=_0x19892b['speedRate']||0x32,this[_0x153138(0xd1,0x108)]=[];const _0x3814b7=_0x19892b['particlesNumber']||0x1000;for(let _0x2f112f=0x0;_0x2f112f<_0x3814b7;_0x2f112f++){const _0x4dbc8e=this[_0x35329d(0x525,0x4a3)](new CanvasParticle());this['particles'][_0x153138(0x12,0x46)](_0x4dbc8e);}}['setDate'](_0x960381){this[_0x887bf9(0x44f,0x3e5)]=_0x960381[_0x191997(-0xb2,-0x42)],this[_0x887bf9(0x435,0x488)]=_0x960381[_0x191997(0xdc,0x61)],this['xmin']=_0x960381['xmin'],this['xmax']=_0x960381['xmax'],this[_0x191997(0x43,0x59)]=_0x960381[_0x887bf9(0x44c,0x480)],this[_0x887bf9(0x39e,0x390)]=_0x960381[_0x887bf9(0x37c,0x390)],this['grid']=[];const _0x31d7d0=_0x960381['udata'];function _0x191997(_0x2a7177,_0x328fe4){return _0x4445ca(_0x2a7177,_0x328fe4- -0x5a7);}const _0x11d16a=_0x960381['vdata'];let _0x76bb0e=![];function _0x887bf9(_0x21371a,_0x134f02){return _0x27febc(_0x134f02-0x440,_0x21371a);}_0x31d7d0['length']===this['rows']&&_0x31d7d0[0x0]['length']===this['cols']&&(_0x76bb0e=!![]);let _0x540fbe=0x0,_0x239ed7=null,_0xc5312c=null;for(let _0xc734dc=0x0;_0xc734dc<this['rows'];_0xc734dc++){_0x239ed7=[];for(let _0x155bc0=0x0;_0x155bc0<this['cols'];_0x155bc0++,_0x540fbe++){_0x76bb0e?_0xc5312c=this[_0x887bf9(0x3e2,0x3f4)](_0x31d7d0[_0xc734dc][_0x155bc0],_0x11d16a[_0xc734dc][_0x155bc0]):_0xc5312c=this['_calcUV'](_0x31d7d0[_0x540fbe],_0x11d16a[_0x540fbe]),_0x239ed7['push'](_0xc5312c);}this[_0x191997(-0x29,-0x9)]['push'](_0x239ed7);}!this[_0x887bf9(0x453,0x465)]['flipY']&&this[_0x887bf9(0x439,0x41e)]['reverse']();}['clear'](){function _0x46f32a(_0x1607e6,_0x301e12){return _0x4445ca(_0x1607e6,_0x301e12- -0x14f);}delete this['rows'];function _0x4f61f3(_0x6f8685,_0x509e71){return _0x4445ca(_0x509e71,_0x6f8685- -0x552);}delete this[_0x4f61f3(0xb6,0xf3)],delete this[_0x46f32a(0x417,0x475)],delete this['xmax'],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this['particles'];}[_0x27febc(-0x23,-0x8f)](_0x589e3b,_0x4c0642){function _0x264d71(_0x37d957,_0x4d3afa){return _0x27febc(_0x4d3afa-0x5a2,_0x37d957);}const _0x19d7f8=(_0x589e3b-this['xmin'])/(this['xmax']-this['xmin'])*(this[_0xd6c77b(0x4e,0x49)]-0x1);function _0xd6c77b(_0x34000d,_0x114ecb){return _0x4445ca(_0x114ecb,_0x34000d- -0x5ba);}const _0x4f9bd9=(this['ymax']-_0x4c0642)/(this[_0x264d71(0x4c3,0x4f2)]-this['ymin'])*(this['rows']-0x1);return[_0x19d7f8,_0x4f9bd9];}[_0x4445ca(0x50c,0x52c)](_0x1b6f81,_0x29ade4){if(_0x1b6f81<0x0||_0x1b6f81>=this[_0x3aade5(0x129,0x155)]||_0x29ade4>=this['rows'])return[0x0,0x0,0x0];const _0x4296e9=Math['floor'](_0x1b6f81),_0x5ac5a1=Math['floor'](_0x29ade4);if(_0x4296e9===_0x1b6f81&&_0x5ac5a1===_0x29ade4)return this['grid'][_0x29ade4][_0x1b6f81];const _0xaa43cf=_0x4296e9+0x1;function _0x3aade5(_0x5cc5d7,_0x1e6f16){return _0x4445ca(_0x1e6f16,_0x5cc5d7- -0x4df);}const _0x4af8ec=_0x5ac5a1+0x1,_0x58652e=this['getUVByXY'](_0x4296e9,_0x5ac5a1),_0x16ff27=this[_0x299209(0x15f,0x11d)](_0xaa43cf,_0x5ac5a1);function _0x299209(_0x232553,_0x14ec50){return _0x4445ca(_0x232553,_0x14ec50- -0x40f);}const _0x19973f=this['getUVByXY'](_0x4296e9,_0x4af8ec),_0x437c9c=this[_0x299209(0x16d,0x11d)](_0xaa43cf,_0x4af8ec);let _0x429c4f=null;try{_0x429c4f=this['_bilinearInterpolation'](_0x1b6f81-_0x4296e9,_0x29ade4-_0x5ac5a1,_0x58652e,_0x16ff27,_0x19973f,_0x437c9c);}catch(_0x2cf33c){console[_0x299209(0x114,0x11b)](_0x1b6f81,_0x29ade4);}return _0x429c4f;}['_bilinearInterpolation'](_0x26c5e3,_0x51f1e2,_0x4a4dcd,_0x336b74,_0x4cb6a4,_0x2fea48){const _0xc051bf=0x1-_0x26c5e3,_0x114a7c=0x1-_0x51f1e2,_0x16b9c3=_0xc051bf*_0x114a7c,_0x3e7b81=_0x26c5e3*_0x114a7c,_0xaabec2=_0xc051bf*_0x51f1e2,_0x582a13=_0x26c5e3*_0x51f1e2,_0x47e6d4=_0x4a4dcd[0x0]*_0x16b9c3+_0x336b74[0x0]*_0x3e7b81+_0x4cb6a4[0x0]*_0xaabec2+_0x2fea48[0x0]*_0x582a13,_0x335ea7=_0x4a4dcd[0x1]*_0x16b9c3+_0x336b74[0x1]*_0x3e7b81+_0x4cb6a4[0x1]*_0xaabec2+_0x2fea48[0x1]*_0x582a13;return this['_calcUV'](_0x47e6d4,_0x335ea7);}['_calcUV'](_0x4f4465,_0xb9e396){function _0x45c571(_0x41788b,_0x113df8){return _0x4445ca(_0x113df8,_0x41788b- -0x558);}return[+_0x4f4465,+_0xb9e396,Math[_0x45c571(-0xb,0x7)](_0x4f4465*_0x4f4465+_0xb9e396*_0xb9e396)];}['getUVByPoint'](_0x4d502a,_0x10602f){if(!this[_0x27d962(-0xfb,-0x163)](_0x4d502a,_0x10602f))return null;function _0x545a4b(_0x1d3e26,_0x133043){return _0x27febc(_0x133043-0x244,_0x1d3e26);}const _0xfe510f=this[_0x27d962(-0x162,-0x103)](_0x4d502a,_0x10602f),_0x53eed7=this['getUVByXY'](_0xfe510f[0x0],_0xfe510f[0x1]);function _0x27d962(_0x2a9414,_0x478203){return _0x4445ca(_0x478203,_0x2a9414- -0x6ff);}return _0x53eed7;}[_0x27febc(0x44,0xa4)](_0x497dc1,_0x2068eb){function _0x4ac8c2(_0x303ee5,_0x12e81b){return _0x4445ca(_0x303ee5,_0x12e81b- -0x36b);}function _0x4df925(_0x466b4f,_0x501d77){return _0x27febc(_0x501d77-0x46d,_0x466b4f);}return _0x497dc1>=this[_0x4ac8c2(0x2ce,0x259)]&&_0x497dc1<=this[_0x4df925(0x3b5,0x3e4)]&&_0x2068eb>=this[_0x4df925(0x516,0x4ad)]&&_0x2068eb<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x3667de=fRandomByfloat(this[_0x12d04a(0xf9,0xca)],this['xmax']),_0x4afbae=fRandomByfloat(this['ymin'],this['ymax']);function _0x39b21b(_0xb71763,_0x3dbee2){return _0x27febc(_0x3dbee2-0xbe,_0xb71763);}const _0x44ab68={};_0x44ab68['lat']=_0x4afbae,_0x44ab68[_0x12d04a(0x77,-0x4)]=_0x3667de;function _0x12d04a(_0x29030b,_0x1a475f){return _0x27febc(_0x29030b-0xf5,_0x1a475f);}return _0x44ab68;}[_0x4445ca(0x636,0x5e8)](){let _0x49471b,_0x388389,_0x326ab4;for(let _0x29ae34=0x0,_0x2fb3ca=this['particles'][_0x11d7f1(0x4e2,0x549)];_0x29ae34<_0x2fb3ca;_0x29ae34++){let _0x187034=this['particles'][_0x29ae34];_0x187034['age']<=0x0&&(_0x187034=this[_0x524e82(0x3e6,0x39d)](_0x187034));if(_0x187034['age']>0x0){const _0x18c21e=_0x187034['tlng'],_0x5c0862=_0x187034['tlat'];_0x326ab4=this['getUVByPoint'](_0x18c21e,_0x5c0862),_0x326ab4?(_0x49471b=_0x18c21e+this['_calc_speedRate'][0x0]*_0x326ab4[0x0],_0x388389=_0x5c0862+this['_calc_speedRate'][0x1]*_0x326ab4[0x1],_0x187034[_0x11d7f1(0x51d,0x57e)]=_0x18c21e,_0x187034[_0x524e82(0x35a,0x315)]=_0x5c0862,_0x187034['tlng']=_0x49471b,_0x187034[_0x524e82(0x32f,0x2e3)]=_0x388389,_0x187034['speed']=_0x326ab4[0x2],_0x187034[_0x524e82(0x3da,0x36c)]--):_0x187034[_0x11d7f1(0x5ba,0x53a)]=0x0;}}function _0x11d7f1(_0x6649ab,_0x190cd8){return _0x27febc(_0x6649ab-0x59b,_0x190cd8);}function _0x524e82(_0x2c01a2,_0x5d4e39){return _0x4445ca(_0x2c01a2,_0x5d4e39- -0x273);}return this[_0x11d7f1(0x5d0,0x620)];}[_0x27febc(0x50,0x1d)](_0x4143d8){let _0x4d009b,_0x56a8de;function _0x5a4b2e(_0x10b44c,_0x379ec0){return _0x4445ca(_0x10b44c,_0x379ec0-0x27);}for(let _0x24beff=0x0;_0x24beff<0x1e;_0x24beff++){_0x4d009b=this['getRandomLatLng'](),_0x56a8de=this[_0x562862(0x4ad,0x46e)](_0x4d009b[_0x5a4b2e(0x528,0x569)],_0x4d009b['lat']);if(_0x56a8de&&_0x56a8de[0x2]>0x0)break;}if(!_0x56a8de)return _0x4143d8;const _0x537e81=_0x4d009b['lng']+this[_0x5a4b2e(0x66c,0x634)][0x0]*_0x56a8de[0x0],_0x8e49a8=_0x4d009b['lat']+this['_calc_speedRate'][0x1]*_0x56a8de[0x1];_0x4143d8[_0x5a4b2e(0x51a,0x569)]=_0x4d009b[_0x562862(0x3e6,0x3fa)];function _0x562862(_0x2581b1,_0x50b1bc){return _0x4445ca(_0x2581b1,_0x50b1bc- -0x148);}return _0x4143d8['lat']=_0x4d009b['lat'],_0x4143d8[_0x562862(0x3e7,0x463)]=_0x537e81,_0x4143d8['tlat']=_0x8e49a8,_0x4143d8['age']=Math[_0x562862(0x372,0x3d2)](0xa+Math[_0x5a4b2e(0x615,0x599)]()*this['maxAge']),_0x4143d8[_0x562862(0x453,0x41a)]=_0x56a8de[0x2],_0x4143d8;}[_0x27febc(-0x37,-0x99)](){for(const _0x21b05b in this){delete this[_0x21b05b];}}}function fRandomByfloat(_0xfdff4f,_0x14743d){function _0x39eb5f(_0x2aaa8a,_0x3f71cc){return _0x4445ca(_0x3f71cc,_0x2aaa8a- -0x49a);}return _0xfdff4f+Math[_0x39eb5f(0xd8,0x52)]()*(_0x14743d-_0xfdff4f);}const Cesium=mars3d__namespace[_0x4445ca(0x526,0x545)],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x12a0d4={}){function _0xb2a53c(_0xf30bab,_0x3c5615){return _0x4445ca(_0xf30bab,_0x3c5615- -0x6e5);}super(_0x12a0d4),this['_setOptionsHook'](_0x12a0d4),this['canvas']=null;function _0x1dd362(_0x1658f5,_0x45edd4){return _0x4445ca(_0x45edd4,_0x1658f5- -0x29f);}_0x12a0d4[_0xb2a53c(-0x1b3,-0x158)]&&_0x12a0d4['steps']&&(this[_0xb2a53c(-0x21f,-0x1af)]=new mars3d__namespace[(_0x1dd362(0x2dd,0x320))](_0x12a0d4));}[_0x4445ca(0x5e6,0x5c8)](_0xfccc45,_0x293f4a){function _0x43f1c1(_0x5b3908,_0x326a18){return _0x4445ca(_0x326a18,_0x5b3908-0x7);}this['frameTime']=0x3e8/(_0xfccc45['frameRate']||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![],this['color']=_0xfccc45[_0x43f1c1(0x5dc,0x57a)]||'#ffffff',this[_0x43f1c1(0x57a,0x5dc)]=_0xfccc45['lineWidth']||0x1,this['fixedHeight']=_0xfccc45['fixedHeight']??0x0,this['flipY']=_0xfccc45['flipY']??![];function _0x15b7ef(_0x4660bc,_0x3a25ff){return _0x27febc(_0x3a25ff-0x644,_0x4660bc);}this[_0x43f1c1(0x576,0x51f)]&&this['windField'][_0x15b7ef(0x5e9,0x5c4)](_0xfccc45);}get['layer'](){function _0x35113f(_0xa9537,_0x5cdd94){return _0x27febc(_0xa9537-0x2a9,_0x5cdd94);}return this[_0x35113f(0x2d0,0x2d8)];}get['canvasWidth'](){return this['_map']['scene']['canvas']['clientWidth'];}get[_0x27febc(0x4e,0x14)](){function _0x2876c6(_0xe96394,_0x6e7217){return _0x27febc(_0x6e7217-0x2ad,_0xe96394);}function _0x406c04(_0x320501,_0x14e1a5){return _0x4445ca(_0x14e1a5,_0x320501- -0x7f);}return this[_0x406c04(0x483,0x469)][_0x406c04(0x4b1,0x4b4)]['canvas']['clientHeight'];}get[_0x27febc(-0x6,-0x2)](){return this['_pointerEvents'];}set['pointerEvents'](_0x2d286e){function _0x5f2c2a(_0x597978,_0x11412e){return _0x4445ca(_0x597978,_0x11412e- -0x389);}this[_0x3d05f0(-0xd,-0x33)]=_0x2d286e;function _0x3d05f0(_0x59a6f7,_0x5373a8){return _0x27febc(_0x59a6f7-0x38,_0x5373a8);}if(!this[_0x3d05f0(0x5f,-0xa)])return;_0x2d286e?this['canvas'][_0x3d05f0(0x56,0x8e)][_0x3d05f0(-0x4a,-0x74)]='all':this[_0x3d05f0(0x5f,0xd1)]['style'][_0x3d05f0(-0x4a,-0x33)]=_0x3d05f0(-0x8,0x6f);}get['particlesNumber'](){function _0x1bf6c2(_0x2af336,_0x162a7b){return _0x4445ca(_0x2af336,_0x162a7b- -0x400);}function _0xefefe6(_0x1b25b8,_0x163a43){return _0x27febc(_0x163a43-0xc8,_0x1b25b8);}return this[_0x1bf6c2(0x23e,0x1e5)][_0xefefe6(0x93,0x10b)];}set['particlesNumber'](_0x4d49c8){function _0x4e6a02(_0x555a31,_0xeb7113){return _0x27febc(_0x555a31-0xbe,_0xeb7113);}this['options'][_0x4e6a02(0x101,0xb3)]=_0x4d49c8,clearTimeout(this['_canrefresh']);function _0x51c566(_0x5e8568,_0x14571b){return _0x4445ca(_0x5e8568,_0x14571b- -0x3f7);}this[_0x4e6a02(0x29,0x5e)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x4445ca(0x5ec,0x5c9)](){function _0x4e0fd7(_0x739bf9,_0x49d14a){return _0x27febc(_0x49d14a-0x60,_0x739bf9);}function _0x5bb07b(_0x570c4a,_0x433077){return _0x4445ca(_0x433077,_0x570c4a- -0x7b);}return this[_0x4e0fd7(0x18,0x85)][_0x5bb07b(0x54e,0x4ee)];}set[_0x27febc(0x9,0x25)](_0xd96477){this['options']['speedRate']=_0xd96477;function _0x4c9ee3(_0x5c3c97,_0x15faf5){return _0x4445ca(_0x15faf5,_0x5c3c97-0x4);}this[_0x4c9ee3(0x573,0x588)]&&(this['windField']['speedRate']=_0xd96477);}get['maxAge'](){function _0x5456e5(_0xa71a24,_0x3a73fd){return _0x4445ca(_0x3a73fd,_0xa71a24- -0xb4);}return this[_0x5456e5(0x531,0x529)]['maxAge'];}set['maxAge'](_0x10d90f){function _0x5bdd37(_0x112654,_0x1bd1cd){return _0x4445ca(_0x112654,_0x1bd1cd- -0x57);}function _0x12510a(_0x17b97c,_0x383f9d){return _0x4445ca(_0x383f9d,_0x17b97c- -0x365);}this[_0x12510a(0x280,0x232)][_0x12510a(0x203,0x20a)]=_0x10d90f,this['windField']&&(this[_0x12510a(0x20a,0x259)]['maxAge']=_0x10d90f);}get['data'](){return this['windData'];}set['data'](_0x20d466){this['setData'](_0x20d466);}get[_0x4445ca(0x582,0x522)](){function _0x253ab4(_0x458b6c,_0x2ff4a2){return _0x4445ca(_0x458b6c,_0x2ff4a2- -0x5c1);}let _0x18e637=this['windData'][_0x253ab4(-0x68,0x3)];function _0x1efccc(_0x4a91df,_0x3bff86){return _0x27febc(_0x3bff86- -0x46,_0x4a91df);}let _0xed1995=this[_0x253ab4(0x33,-0xd)]['xmax'],_0x6035aa=this[_0x253ab4(-0x94,-0xd)]['ymin'],_0x291354=this['windData']['ymax'];return _0xed1995>=0x167&&_0x18e637===0x0&&(_0x18e637=-0xb4,_0xed1995=0xb4),_0x18e637=Math['max'](_0x18e637,-0xb4),_0xed1995=Math[_0x253ab4(-0x6e,-0x47)](_0xed1995,0xb4),_0x6035aa=Math['max'](_0x6035aa,-0x5a),_0x291354=Math['min'](_0x291354,0x5a),Cesium['Rectangle']['fromDegrees'](_0x18e637,_0x6035aa,_0xed1995,_0x291354);}['_showHook'](_0x16e18b){function _0x3bc1dd(_0x17f268,_0x551911){return _0x4445ca(_0x551911,_0x17f268- -0x361);}function _0x554d38(_0x1ac979,_0x205a16){return _0x4445ca(_0x1ac979,_0x205a16- -0x456);}_0x16e18b?this['_addedHook']():(this[_0x3bc1dd(0x253,0x1e0)]&&(this['options']['data']=this[_0x3bc1dd(0x253,0x295)]),this[_0x3bc1dd(0x25c,0x2d6)]());}[_0x27febc(0x18,0x97)](){function _0x2ef02e(_0x4a3171,_0x24057c){return _0x4445ca(_0x4a3171,_0x24057c- -0x4da);}function _0x296403(_0x1b546e,_0x51acba){return _0x4445ca(_0x1b546e,_0x51acba- -0x10c);}this['options'][_0x296403(0x44b,0x423)]?this['initWorker']():this['windField']=new CanvasWindField(this[_0x296403(0x485,0x4d9)]);}[_0x27febc(-0x1a,0x64)](){this[_0x25fbaa(0x1ea,0x1cc)]=this['_createCanvas']();function _0x25fbaa(_0x29576f,_0x5b44dc){return _0x27febc(_0x29576f-0x1c3,_0x5b44dc);}const _0x39c607={};function _0x4a693c(_0x260136,_0x4eb842){return _0x27febc(_0x260136-0x10c,_0x4eb842);}_0x39c607[_0x25fbaa(0x16f,0x1b9)]=!![],this['canvasContext']=this[_0x25fbaa(0x1ea,0x1d5)]['getContext']('2d',_0x39c607),this['bindEvent'](),this['options'][_0x4a693c(0xde,0x54)]&&this['setData'](this[_0x4a693c(0x131,0x106)][_0x4a693c(0xde,0x64)]);}['_removedHook'](){function _0x11488c(_0x59f614,_0x4da999){return _0x4445ca(_0x59f614,_0x4da999- -0x16c);}this['clear']();function _0x9a47f6(_0x544119,_0x3e00d0){return _0x4445ca(_0x544119,_0x3e00d0- -0x2f1);}this[_0x9a47f6(0x249,0x233)](),this['canvas']&&(this['_map']['container'][_0x9a47f6(0x32b,0x2b2)](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x19d4f3=mars3d__namespace['DomUtil'][_0x5e09f4(0x3ec,0x41d)](_0x5e09f4(0x449,0x448),'mars3d-canvasWind',this[_0x1663d4(0x2ef,0x372)]['container']);function _0x5e09f4(_0x429e7f,_0x1568bf){return _0x27febc(_0x1568bf-0x421,_0x429e7f);}_0x19d4f3['style']['position']='absolute',_0x19d4f3[_0x1663d4(0x3cb,0x40b)][_0x5e09f4(0x4e7,0x472)]='0px',_0x19d4f3[_0x1663d4(0x3cb,0x3be)][_0x5e09f4(0x3ee,0x37e)]=_0x5e09f4(0x3f9,0x423),_0x19d4f3[_0x1663d4(0x3cb,0x3ad)][_0x5e09f4(0x450,0x44a)]=this[_0x5e09f4(0x2ff,0x363)][_0x1663d4(0x31d,0x38d)]['canvas']['clientWidth']+'px',_0x19d4f3['style']['height']=this['_map'][_0x5e09f4(0x40b,0x391)]['canvas'][_0x5e09f4(0x42a,0x46a)]+'px',_0x19d4f3[_0x5e09f4(0x454,0x43f)]['pointerEvents']=this[_0x5e09f4(0x44e,0x3dc)]?'auto':_0x1663d4(0x36d,0x3f0),_0x19d4f3['style']['zIndex']=this[_0x5e09f4(0x45c,0x446)]['zIndex']??0x9,_0x19d4f3[_0x1663d4(0x3d6,0x34d)]=this['_map']['scene'][_0x5e09f4(0x429,0x448)]['clientWidth'],_0x19d4f3['height']=this['_map']['scene'][_0x1663d4(0x3d4,0x3a3)]['clientHeight'];function _0x1663d4(_0xfc9f59,_0x5bc277){return _0x27febc(_0xfc9f59-0x3ad,_0x5bc277);}return _0x19d4f3;}[_0x4445ca(0x48e,0x512)](){function _0x4114e3(_0xade68a,_0x3a36bf){return _0x27febc(_0x3a36bf-0x534,_0xade68a);}function _0x47667d(_0x371c26,_0x50ee7e){return _0x27febc(_0x50ee7e-0x599,_0x371c26);}this['canvas']&&(this[_0x47667d(0x60f,0x5c0)]['style']['width']=this[_0x4114e3(0x3fd,0x476)][_0x47667d(0x568,0x509)]['canvas']['clientWidth']+'px',this['canvas']['style']['height']=this['_map'][_0x47667d(0x519,0x509)]['canvas']['clientHeight']+'px',this[_0x4114e3(0x527,0x55b)]['width']=this['_map']['scene']['canvas']['clientWidth'],this['canvas']['height']=this['_map']['scene'][_0x4114e3(0x594,0x55b)][_0x47667d(0x647,0x5e2)]);}['bindEvent'](){function _0x486cbf(_0x1e35ee,_0x4b5f4b){return _0x4445ca(_0x1e35ee,_0x4b5f4b- -0x6e9);}const _0x43e2df=this;let _0x12a721=Date[_0x486cbf(-0x15b,-0x1a2)]();(function _0x170142(){if(_0x43e2df['isDestroy'])return;function _0x82f0ee(_0x435325,_0xc57a23){return _0x486cbf(_0x435325,_0xc57a23-0x3ef);}_0x43e2df['_animateFrame']=window['requestAnimationFrame'](_0x170142);function _0x4196f1(_0x1b8015,_0x15a10e){return _0x486cbf(_0x15a10e,_0x1b8015-0x605);}if(_0x43e2df['show']&&_0x43e2df['windField']){const _0x422eb7=Date[_0x82f0ee(0x2c1,0x24d)](),_0xc0cda7=_0x422eb7-_0x12a721;_0xc0cda7>_0x43e2df['frameTime']&&(_0x12a721=_0x422eb7-_0xc0cda7%_0x43e2df['frameTime'],_0x43e2df[_0x4196f1(0x477,0x40b)]());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![]);function _0x401504(_0x1359b4,_0x5cd8a6){return _0x4445ca(_0x1359b4,_0x5cd8a6- -0x63c);}this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x486cbf(-0x182,-0x1e7)]['on'](mars3d__namespace[_0x486cbf(-0x16f,-0x1d1)][_0x401504(-0x1b5,-0x132)],this[_0x401504(-0x1a3,-0x12e)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x486cbf(-0xe0,-0x107)],this));}[_0x27febc(-0x9c,-0x46)](){window['cancelAnimationFrame'](this['_animateFrame']),delete this['_animateFrame'];function _0x28b280(_0x452260,_0x19609b){return _0x4445ca(_0x452260,_0x19609b- -0x566);}function _0x45718f(_0x15065b,_0x69b42e){return _0x27febc(_0x15065b-0x281,_0x69b42e);}window[_0x45718f(0x22f,0x1bb)]('resize',this[_0x28b280(-0xc2,-0x54)]),this['options'][_0x45718f(0x1e1,0x195)]&&(this['_map'][_0x28b280(-0x64,0x1d)](mars3d__namespace[_0x28b280(0x7,-0x4e)]['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace[_0x45718f(0x1d9,0x18d)][_0x28b280(-0x90,-0x5c)],this[_0x45718f(0x1cf,0x229)],this),this[_0x45718f(0x1c3,0x1d5)]['off'](mars3d__namespace['EventType'][_0x28b280(-0xa5,-0x1e)],this['_onMouseUpEvent'],this),this[_0x28b280(0x4,-0x64)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x4445ca(0x5c5,0x54a)](_0x2b0f28){function _0xe2d57c(_0x132e7a,_0x42de62){return _0x4445ca(_0x42de62,_0x132e7a- -0xfb);}function _0x142e27(_0x11576a,_0x4303a0){return _0x27febc(_0x11576a-0x1e2,_0x4303a0);}clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0xe2d57c(0x4ec,0x54a)])return;this['canvas'][_0x142e27(0x200,0x242)][_0x142e27(0x1c7,0x212)]='hidden',this[_0x142e27(0x1d9,0x262)]=setTimeout(()=>{function _0x22ca80(_0x466a08,_0x18e697){return _0x142e27(_0x18e697- -0x220,_0x466a08);}if(!this['show'])return;function _0x5d2f1d(_0x145dc7,_0x781df0){return _0x142e27(_0x145dc7- -0x15e,_0x781df0);}this[_0x22ca80(-0x119,-0xf8)](),this[_0x22ca80(0x1c,-0x17)]['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x1bcf96){function _0x1f0a76(_0x323ac8,_0x1b0159){return _0x27febc(_0x1b0159-0x148,_0x323ac8);}this[_0x1f0a76(0x9d,0xf5)]=!![];function _0x3d8ccf(_0x25834d,_0x328be4){return _0x27febc(_0x328be4-0xfd,_0x25834d);}this['_map']['off'](mars3d__namespace[_0x3d8ccf(0x3,0x55)][_0x3d8ccf(0x95,0xd8)],this[_0x3d8ccf(0xfe,0xfc)],this),this['_map']['on'](mars3d__namespace[_0x3d8ccf(0xa0,0x55)]['mouseMove'],this[_0x1f0a76(0x17a,0x147)],this);}[_0x4445ca(0x640,0x5bf)](_0x19074d){function _0x529093(_0xae9016,_0x310955){return _0x4445ca(_0xae9016,_0x310955- -0x3fa);}function _0xe20fcf(_0x4d3d72,_0x3fc510){return _0x27febc(_0x4d3d72-0x64f,_0x3fc510);}if(!this['show']||!this['canvas'])return;this['mouse_down']&&(this[_0x529093(0x240,0x1ed)]['style']['visibility']='hidden',this[_0xe20fcf(0x652,0x604)]=!![]);}[_0x27febc(0x22,0x97)](_0x5d12c3){function _0x23409a(_0x1eed03,_0x34ccb7){return _0x4445ca(_0x1eed03,_0x34ccb7- -0x1a1);}if(!this['show']||!this[_0x14c33d(0x97,0x61)])return;this['_map'][_0x14c33d(0x33,0x51)](mars3d__namespace[_0x14c33d(-0x38,0x4c)][_0x14c33d(0x4b,-0x1c)],this[_0x23409a(0x3c5,0x41e)],this);this['mouse_down']&&this[_0x23409a(0x4ab,0x422)]&&this[_0x23409a(0x34e,0x365)]();this[_0x23409a(0x407,0x446)]['style'][_0x14c33d(0x55,0x9c)]='visible';function _0x14c33d(_0x5772e1,_0x1255cb){return _0x4445ca(_0x1255cb,_0x5772e1- -0x550);}this[_0x23409a(0x442,0x3cc)]=![],this['mouse_move']=![];}[_0x27febc(0x16,0x51)](_0x5a667b){function _0x3f80a9(_0x494e81,_0x567b20){return _0x4445ca(_0x567b20,_0x494e81- -0x6fb);}this['clear'](),this[_0x3f80a9(-0x147,-0xf4)]=_0x5a667b,this[_0x415410(-0x64,-0xe7)][_0x3f80a9(-0xec,-0x85)](_0x5a667b);function _0x415410(_0x3d66d3,_0x255d1f){return _0x4445ca(_0x3d66d3,_0x255d1f- -0x656);}this['redraw']();}['redraw'](){function _0x224198(_0x4fea09,_0x52915e){return _0x4445ca(_0x52915e,_0x4fea09- -0x591);}function _0x3b1b40(_0x3edd22,_0x1107f8){return _0x4445ca(_0x3edd22,_0x1107f8- -0xe4);}if(!this['show'])return;this[_0x224198(-0x22,0x56)][_0x3b1b40(0x400,0x45c)](this[_0x224198(0x54,0x8e)]),this['update']();}['update'](){function _0x3c2f0a(_0x4bcf3f,_0x41babe){return _0x4445ca(_0x41babe,_0x4bcf3f- -0x366);}if(this['_updateIng'])return;function _0x5ec637(_0x13438b,_0x4f7f00){return _0x4445ca(_0x13438b,_0x4f7f00- -0x67d);}this[_0x3c2f0a(0x255,0x2b5)]=!![];if(this['worker'])this[_0x5ec637(-0xc5,-0x10e)]['update']();else{const _0x334a71=this[_0x3c2f0a(0x209,0x240)]['getParticles']();this['_drawLines'](_0x334a71);}this['_updateIng']=![];}['_drawLines'](_0x4dd270){this['_canvasParticles']=_0x4dd270,this['canvasContext'][_0x38918d(-0x46,0x1c)]='destination-in';function _0x4d4543(_0x7c134d,_0x162203){return _0x27febc(_0x7c134d-0x5b2,_0x162203);}this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']);function _0x38918d(_0x1c41f3,_0x1f6563){return _0x4445ca(_0x1c41f3,_0x1f6563- -0x518);}this[_0x38918d(0xfc,0x8a)][_0x38918d(0x50,0x1c)]=_0x4d4543(0x549,0x5a9),this[_0x4d4543(0x594,0x539)]['globalAlpha']=0.9;const _0x57811d=this['_map'][_0x38918d(0x17,0x18)]['mode']!==Cesium['SceneMode'][_0x38918d(-0x71,-0x17)],_0x2eb1e8=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x7901dc=0x0,_0x17b045=_0x4dd270['length'];_0x7901dc<_0x17b045;_0x7901dc++){const _0x160dc1=_0x4dd270[_0x7901dc],_0x5c85f2=this[_0x38918d(0x65,-0x13)](_0x160dc1,_0x160dc1[_0x38918d(0xaa,0x2a)],_0x160dc1['lat'],_0x160dc1[_0x4d4543(0x4fe,0x582)]),_0x35ef53=this[_0x38918d(0x16,-0x13)](_0x160dc1,_0x160dc1['tlng'],_0x160dc1[_0x38918d(0x81,0x3e)],_0x160dc1['talt']);if(!_0x5c85f2||!_0x35ef53)continue;if(_0x57811d&&Math[_0x38918d(-0x5,0x6e)](_0x5c85f2[0x0]-_0x35ef53[0x0])>=_0x2eb1e8)continue;this['canvasContext']['beginPath'](),this['canvasContext'][_0x4d4543(0x565,0x4e8)]=this['lineWidth'],this[_0x38918d(0x95,0x8a)]['strokeStyle']=this[_0x38918d(0x6b,0x1e)]['getColor'](_0x160dc1['speed']),this[_0x4d4543(0x594,0x517)][_0x38918d(-0x8a,-0x10)](_0x5c85f2[0x0],_0x5c85f2[0x1]),this['canvasContext'][_0x38918d(0x86,0x9b)](_0x35ef53[0x0],_0x35ef53[0x1]),this['canvasContext']['stroke']();}else{this[_0x38918d(0xf2,0x8a)][_0x38918d(0x21,0x84)](),this[_0x38918d(0x5d,0x8a)][_0x4d4543(0x565,0x586)]=this[_0x4d4543(0x565,0x4ee)],this[_0x4d4543(0x594,0x555)][_0x4d4543(0x5dd,0x653)]=this['color'];for(let _0x2d9d93=0x0,_0x1c526d=_0x4dd270[_0x38918d(-0x13,-0x11)];_0x2d9d93<_0x1c526d;_0x2d9d93++){const _0x3fc465=_0x4dd270[_0x2d9d93],_0x586d97=this[_0x38918d(-0x7a,-0x13)](_0x3fc465,_0x3fc465['lng'],_0x3fc465['lat'],_0x3fc465['alt']),_0x511faf=this['_tomap'](_0x3fc465,_0x3fc465[_0x4d4543(0x59d,0x600)],_0x3fc465[_0x4d4543(0x548,0x4da)],_0x3fc465['talt']);if(!_0x586d97||!_0x511faf)continue;if(_0x57811d&&Math['abs'](_0x586d97[0x0]-_0x511faf[0x0])>=_0x2eb1e8)continue;this['canvasContext']['moveTo'](_0x586d97[0x0],_0x586d97[0x1]),this[_0x4d4543(0x594,0x5c3)][_0x38918d(0x76,0x9b)](_0x511faf[0x0],_0x511faf[0x1]);}this['canvasContext']['stroke']();}}['_tomap'](_0x5a831a,_0x57bdf3,_0x55fcf1,_0x4296ae){const _0x3bd017=Cesium[_0x2ff29a(0x489,0x4a1)]['fromDegrees'](_0x57bdf3,_0x55fcf1,_0x4296ae??this[_0x5ec0bb(-0x1c0,-0x1bd)]);function _0x5ec0bb(_0x30e818,_0x19cb6a){return _0x4445ca(_0x19cb6a,_0x30e818- -0x6c0);}const _0x2557d9=this['_map']['scene'];if(_0x2557d9['mode']===Cesium[_0x5ec0bb(-0x155,-0x1d8)][_0x2ff29a(0x49e,0x446)]){const _0x2d8c9b=new Cesium[(_0x2ff29a(0x476,0x452))](_0x2557d9['globe']['ellipsoid'],_0x2557d9[_0x5ec0bb(-0xce,-0x13f)][_0x2ff29a(0x4aa,0x48b)]),_0x30ddfe=_0x2d8c9b['isPointVisible'](_0x3bd017);if(!_0x30ddfe)return _0x5a831a['age']=0x0,null;}function _0x2ff29a(_0x32a4fd,_0x5e136b){return _0x27febc(_0x5e136b-0x505,_0x32a4fd);}const _0x3a1664=mars3d__namespace[_0x5ec0bb(-0x16b,-0x1db)][_0x2ff29a(0x3e3,0x46e)](this[_0x2ff29a(0x454,0x447)]['scene'],_0x3bd017);return _0x3a1664?[_0x3a1664['x'],_0x3a1664['y']]:null;}['clear'](){this[_0x3f8c46(0x26,0x69)]['clear']();function _0x3f8c46(_0x240e9f,_0x2ce695){return _0x27febc(_0x240e9f-0x77,_0x2ce695);}delete this['windData'];}['initWorker'](){this[_0x398ff0(0x29,-0x20)]=new Worker(this['options'][_0x23530c(0x559,0x592)]);function _0x398ff0(_0x562437,_0x2844f4){return _0x27febc(_0x562437-0xba,_0x2844f4);}this['worker'][_0x398ff0(0xfc,0x149)]=_0x380bca=>{this[_0x36de5e(0x118,0xf4)](_0x380bca['data'][_0x2b1808(0x3dc,0x36e)]);function _0x2b1808(_0x834687,_0x3810f4){return _0x398ff0(_0x834687-0x2ed,_0x3810f4);}function _0x36de5e(_0x3a0536,_0x43cbd1){return _0x23530c(_0x3a0536- -0x43a,_0x43cbd1);}this['_updateIng2']=![];};function _0x23530c(_0x428546,_0x7fe77b){return _0x27febc(_0x428546-0x5ea,_0x7fe77b);}this['windField']={'init':_0x4a7a14=>{function _0x1bb825(_0x2eb2e5,_0x35baa9){return _0x398ff0(_0x35baa9-0x1c2,_0x2eb2e5);}const _0x5ce180={};_0x5ce180['type']=_0x1d867e(0x4bb,0x479),_0x5ce180['options']=_0x4a7a14;function _0x1d867e(_0x2dbb08,_0x46534f){return _0x398ff0(_0x2dbb08-0x49a,_0x46534f);}this[_0x1d867e(0x4c3,0x44c)]['postMessage'](_0x5ce180);},'setOptions':_0x37f933=>{const _0x397936={};_0x397936[_0x2cace7(-0x20f,-0x188)]='setOptions',_0x397936[_0xb22568(0x2cb,0x30d)]=_0x37f933;function _0x2cace7(_0x1ef036,_0xe1e226){return _0x398ff0(_0xe1e226- -0x206,_0x1ef036);}function _0xb22568(_0x3d2587,_0x41831f){return _0x398ff0(_0x3d2587-0x1ec,_0x41831f);}this['worker']['postMessage'](_0x397936);},'setDate':_0x31c7b7=>{function _0x3fe3f0(_0x3c2abd,_0x3b77dc){return _0x398ff0(_0x3b77dc-0x49d,_0x3c2abd);}const _0x5357a1={};_0x5357a1[_0x361899(-0x128,-0x1b0)]=_0x361899(-0x9d,-0x11e);function _0x361899(_0x4c00f3,_0x6115f0){return _0x23530c(_0x4c00f3- -0x6d6,_0x6115f0);}_0x5357a1['data']=_0x31c7b7,this['worker'][_0x361899(-0x148,-0x140)](_0x5357a1);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];function _0x3e4fb7(_0x3a6d0d,_0x45c663){return _0x398ff0(_0x45c663-0x11f,_0x3a6d0d);}function _0xef3d69(_0x19219d,_0x5b2a8b){return _0x398ff0(_0x19219d-0x4f8,_0x5b2a8b);}const _0x40abf5={};_0x40abf5['type']=_0x3e4fb7(0x1e4,0x174),this['worker'][_0x3e4fb7(0x139,0x17d)](_0x40abf5);},'clear':()=>{function _0x14433d(_0x1680bc,_0x1ce7e7){return _0x398ff0(_0x1ce7e7- -0x8b,_0x1680bc);}function _0x490b8d(_0x29a95a,_0x30446){return _0x398ff0(_0x30446-0x37f,_0x29a95a);}const _0x1168b0={};_0x1168b0[_0x490b8d(0x3ee,0x3fd)]='clear',this['worker'][_0x490b8d(0x41f,0x3dd)](_0x1168b0);}},this[_0x398ff0(0x69,0x96)][_0x398ff0(0x21,-0x2c)](this['options']);}}mars3d__namespace['LayerUtil']['register'](_0x27febc(0x3a,0xc2),CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x4445ca(0x4fd,0x54c)]=CanvasWindField,mars3d__namespace['Log'][_0x4445ca(0x5d8,0x598)]('mars3d-wind插件注册成功\x20\x20\x20\x20\x20版本:'+version+'\x20\x20\x20\x20编译日期:'+buildTime),mars3d__namespace[_0x27febc(-0x87,-0xb9)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x27febc(0x13,-0x6e)]=CanvasWindLayer;function _0x4445ca(_0x22b220,_0x5c245e){return _0x34ed(_0x5c245e-0x32b,_0x22b220);}exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;function _0x55d3(){const _0x2daba2=['tlat','lighter','CLAMP_TO_EDGE','MIN_VALUE','dropRate','update','Cartesian3','colorTextures','interpolated','Unknown\x20command\x20type','createSegmentsGeometry','quietPeriod','speed','dropRateBump','postMessage','rows','segments','windTextures','maxAge','onParticlesTextureSizeChange','SRC_ALPHA','SceneMode','willReadFrequently','mouse_down','removeEventListener','windField','updateOptions','_speedRate','random','lineWidth','_calcUV','sceneMode','height','getCalculateSpeedShader','fragmentShaderSource','globe','min','_pointerEvents','ColorRamp','Math','processWindData','2318325GcIoOY','none','48qsSROK','createPrimitives','off','type','blendFuncDestination','abs','colorTable','lat','destroy','1185876EpPzMq','floor','clearFramebuffers','colors','samplingWindow','enabled','outputTexture','computing','data','Compute','FUNC_ADD','FLOAT','viewport','persists','logInfo','layer','owner','mouseMove','beginPath','toGridXY','grid','commandToExecute','latRange','createRenderingFramebuffers','canvasContext','removeChild','changeOptions','visibility','_addedHook','toRadians','drawingBufferWidth','destroyParticlesTextures','segmentsColor','tlng','shaderProgram','LINEAR','viewerParameters','bind','keys','rendering','array','lineTo','windData','minificationFilter','getUVByPoint','refreshTimer','values','changed','pointerEvents','_updateIng','create','_removedHook','domain','_onMouseMoveEvent','context','NEAREST','0px','mouse_move','xmin','createColorTableTexture','pixelFormat','lonRange','_setOptionsHook','speedRate','framebuffers','displayRange','fromGeometry','warn','east','OPAQUE','slice','uniformMap','green','CanvasWindLayer','Draw','color','setData','getPrimitives','_mountedHook','Cartesian2','__proto__','error','south','nextParticlesPosition','style','age','clientWidth','currentParticlesPosition','_onMouseUpEvent','__esModule','magnificationFilter','options','1032qOZySI','canvas','getParticles','width','RED','strokeStyle','useViewerBounds','addEventListener','dynamic','rawRenderState','commandList','vertexShaderSource','camera','max\x20is\x20undefined,\x20calculate\x20max','frameRateMonitor','particles','createComputingPrimitives','toDegrees','createParticlesTextures','max','canvasWind','getSegmentDrawFragmentShader','stringify','blendEquation','show','pixelDatatype','ymin','framebuffer','onmessage','particlesNumber','isInExtent','initFrameRate','frameRateAdjustment','textures','cols','clientHeight','postProcessingPosition','pixelSize','particleSystem','_calc_speedRate','canvasHeight','setDate','_randomParticle','top','fromCache','rgb(206,255,255)','clearCommand','fixedHeight','SCENE3D','_map','particlesTextureSize','#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','_tomap','redraw','length','moveTo','getUpdatePositionShader','mouseDown','previousParticlesPosition','alt','EllipsoidalOccluder','_onMouseDownEvent','bounds','ymax','primitiveType','resize','object','forEach','flipY','_showHook','1466264SiNPyd','EventType','isDynamic','round','particlesTextures','west','left','1CRkcEM','3041646cHWSxd','mouseHidden','north','rectangle','3.11.2','unbindEvent','min\x20is\x20undefined,\x20calculate\x20min','11495zdLfzx','init','_drawLines','toWindowCoordinates','log','_canrefresh','getUVByXY','TRIANGLES','vertexArray','worker','scene','depthMask','getU','push','globalCompositeOperation','frameState.commandList\x20is\x20undefined','_colorRamp','xmax','preExecute','WindUtil','frameRate','5305433MSDnFO','componentDatatype','ellipsoid','pointer-events','reCreateWindTextures','setOptions','particlesSpeed','lng','default','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','Cesium','positionWC','now','mouseUp','geometry','_onMapWhellEvent','updateViewerParameters','CanvasWindField','sqrt','sources','attributeLocations','21033550DKjFJg','updateWindData','lastFramesPerSecond','primitives','updatePosition','PointTrans'];_0x55d3=function(){return _0x2daba2;};return _0x55d3();}const _0xf8226={};_0xf8226['value']=!![],Object['defineProperty'](exports,_0x4445ca(0x559,0x5e3),_0xf8226);
|
|
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);
|
|
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.4",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.11.
|
|
8
|
+
"mars3d": "~3.11.4"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|