mars3d-wind 3.11.3 → 3.11.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mars3d-wind.js +3 -3
- package/package.json +2 -2
package/mars3d-wind.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
|
3
3
|
*
|
|
4
|
-
* 版本信息:v3.11.
|
|
5
|
-
* 编译日期:2026-
|
|
4
|
+
* 版本信息:v3.11.5
|
|
5
|
+
* 编译日期:2026-07-08 13:19
|
|
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(_0x55b43d,_0x31d27b){function _0x9287c6(_0x5aaeff,_0x3d0ff2){return _0x5ea3(_0x5aaeff-0x1c7,_0x3d0ff2);}const _0x3bdcfb=_0x55b43d();function _0x17add5(_0x1d6d12,_0x468e40){return _0x5ea3(_0x1d6d12- -0x1e9,_0x468e40);}while(!![]){try{const _0x170e9b=parseInt(_0x17add5(-0x156,-0x1cb))/0x1*(parseInt(_0x9287c6(0x34e,0x3d6))/0x2)+parseInt(_0x9287c6(0x303,0x31a))/0x3*(parseInt(_0x17add5(-0x119,-0x111))/0x4)+parseInt(_0x9287c6(0x2d8,0x285))/0x5+parseInt(_0x9287c6(0x30d,0x2a8))/0x6+-parseInt(_0x17add5(-0x11a,-0x128))/0x7+parseInt(_0x17add5(-0x134,-0x1b0))/0x8+-parseInt(_0x9287c6(0x315,0x2de))/0x9;if(_0x170e9b===_0x31d27b)break;else _0x3bdcfb['push'](_0x3bdcfb['shift']());}catch(_0x3b8d15){_0x3bdcfb['push'](_0x3bdcfb['shift']());}}}(_0x3488,0xe8ba0));function _interopNamespace(_0x59e061){if(_0x59e061&&_0x59e061[_0x1b571d(0x3c5,0x418)])return _0x59e061;function _0x1b571d(_0x35b999,_0x4ab5b){return _0x5ea3(_0x35b999-0x295,_0x4ab5b);}var _0x1f3e89=Object['create'](null);_0x59e061&&Object[_0x1b571d(0x3e6,0x3d9)](_0x59e061)[_0x1b571d(0x3e2,0x462)](function(_0x1f3202){function _0x1dcf64(_0x338298,_0x3b75ea){return _0x1b571d(_0x338298- -0x540,_0x3b75ea);}if(_0x1f3202!=='default'){var _0x2ef887=Object['getOwnPropertyDescriptor'](_0x59e061,_0x1f3202);Object[_0x1dcf64(-0x130,-0xf3)](_0x1f3e89,_0x1f3202,_0x2ef887['get']?_0x2ef887:{'enumerable':!![],'get':function(){return _0x59e061[_0x1f3202];}});}});_0x1f3e89[_0x1b571d(0x3b5,0x3a6)]=_0x59e061;function _0xc463b2(_0x4b80d7,_0x406267){return _0x5ea3(_0x406267- -0x15a,_0x4b80d7);}return _0x1f3e89;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x46033d,_0x155e52){const _0x228c4b=_0x46033d*Math['cos'](Cesium$2['Math']['toRadians'](_0x155e52));return _0x228c4b;}function getV(_0x3996da,_0xaa1115){const _0x2292c0=_0x3996da*Math['sin'](Cesium$2['Math']['toRadians'](_0xaa1115));return _0x2292c0;}function getSpeed(_0x274a7f,_0x279865){const _0x1d0eef=Math['sqrt'](Math['pow'](_0x274a7f,0x2)+Math['pow'](_0x279865,0x2));return _0x1d0eef;}function getDirection(_0x3f0f15,_0x38af22){let _0x2f80d3=Cesium$2[_0x14339f(0x1df,0x220)]['toDegrees'](Math['atan2'](_0x38af22,_0x3f0f15));_0x2f80d3+=_0x2f80d3<0x0?0x168:0x0;function _0x14339f(_0x556bb5,_0x1b06ee){return _0x5ea3(_0x556bb5-0x12e,_0x1b06ee);}return _0x2f80d3;}const _0x1f77f8={};_0x1f77f8[_0x5c4e84(0x1d2,0x162)]=null,_0x1f77f8['getU']=getU,_0x1f77f8['getV']=getV,_0x1f77f8['getSpeed']=getSpeed,_0x1f77f8['getDirection']=getDirection;var WindUtil=_0x1f77f8;const version=_0x580342(0x432,0x3b5),buildTime='2026-05-13\x2011:55';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=_0x5c4e84(0x217,0x287),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[_0x580342(0x333,0x366)];function _0x5ea3(_0x4664be,_0x226f3c){const _0x3488c0=_0x3488();return _0x5ea3=function(_0x5ea326,_0x4e748b){_0x5ea326=_0x5ea326-0x7f;let _0x31b150=_0x3488c0[_0x5ea326];return _0x31b150;},_0x5ea3(_0x4664be,_0x226f3c);}class ShaderManager{static[_0x5c4e84(0x1d4,0x219)](){const _0x267f79={};_0x267f79[_0x5d2ade(0x1d2,0x1b0)]=[calculateSpeedShader];function _0x5d2ade(_0x953902,_0x5c8dd7){return _0x580342(_0x5c8dd7,_0x953902- -0x11d);}return new ShaderSource$1(_0x267f79);}static['getUpdatePositionShader'](){const _0xc45e25={};function _0x3f5dab(_0x208429,_0x1f3879){return _0x580342(_0x208429,_0x1f3879- -0x413);}return _0xc45e25[_0x3f5dab(-0xcf,-0x124)]=[updatePositionShader],new ShaderSource$1(_0xc45e25);}static[_0x5c4e84(0x244,0x24d)](){function _0x6a6a93(_0x24e1ef,_0x3eeaab){return _0x5c4e84(_0x3eeaab-0x10c,_0x24e1ef);}const _0x3ccaae={};return _0x3ccaae[_0x6a6a93(0x34b,0x2df)]=[renderParticlesVertexShader],new ShaderSource$1(_0x3ccaae);}static['getSegmentDrawFragmentShader'](){const _0x28f7d6={};function _0x3f985a(_0x42fd18,_0x3a4ca1){return _0x580342(_0x42fd18,_0x3a4ca1- -0x39d);}return _0x28f7d6[_0x3f985a(-0x103,-0xae)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x28f7d6);}static['getPostProcessingPositionShader'](){const _0x50b4b4={};return _0x50b4b4['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x50b4b4);}}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(_0x202d14){this[_0x191404(-0x146,-0x141)]=_0x202d14[_0x4415b4(0x1a,0x3d)];function _0x4415b4(_0x379eec,_0x555a95){return _0x580342(_0x555a95,_0x379eec- -0x37a);}function _0x191404(_0x319db1,_0x136600){return _0x580342(_0x136600,_0x319db1- -0x4da);}this[_0x191404(-0x1b3,-0x1a0)]=_0x202d14[_0x4415b4(-0x53,-0x64)],this['attributeLocations']=_0x202d14[_0x191404(-0x140,-0xbf)],this[_0x191404(-0x15e,-0x198)]=_0x202d14[_0x4415b4(0x2,0x7a)],this['uniformMap']=_0x202d14['uniformMap']||{},this['vertexShaderSource']=_0x202d14['vertexShaderSource'],this['fragmentShaderSource']=_0x202d14['fragmentShaderSource'],this['rawRenderState']=_0x202d14[_0x191404(-0x14c,-0x13a)],this[_0x191404(-0x184,-0xff)]=_0x202d14['framebuffer'],this['outputTexture']=_0x202d14['outputTexture'],this['autoClear']=_0x202d14[_0x4415b4(0x17,0x2c)]??![],this[_0x4415b4(-0x44,-0xba)]=_0x202d14['preExecute'],this['show']=!![],this[_0x191404(-0x18d,-0x1b4)]=undefined,this['clearCommand']=undefined,this[_0x191404(-0x232,-0x25a)]=_0x202d14[_0x191404(-0x232,-0x1f4)]??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x4415b4(-0x24,-0x80)],'pass':Pass$1[_0x191404(-0x22a,-0x26b)]}));}['createCommand'](_0xd42dc2){function _0x578e35(_0x4675e1,_0x94ed9){return _0x5c4e84(_0x94ed9- -0x12d,_0x4675e1);}function _0x1c00d9(_0x38a9be,_0x298e43){return _0x5c4e84(_0x38a9be-0x53,_0x298e43);}if(this[_0x1c00d9(0x2cb,0x25e)]==='Draw'){const _0x13b395={};_0x13b395['context']=_0xd42dc2,_0x13b395['geometry']=this['geometry'],_0x13b395[_0x1c00d9(0x2d1,0x30a)]=this['attributeLocations'],_0x13b395[_0x1c00d9(0x2e4,0x2e8)]=BufferUsage$1['STATIC_DRAW'];const _0x44d41e=VertexArray$1['fromGeometry'](_0x13b395),_0x3ac360={};_0x3ac360['context']=_0xd42dc2,_0x3ac360['vertexShaderSource']=this['vertexShaderSource'],_0x3ac360['fragmentShaderSource']=this['fragmentShaderSource'],_0x3ac360[_0x1c00d9(0x2d1,0x280)]=this[_0x1c00d9(0x2d1,0x256)];const _0x5341b6=ShaderProgram['fromCache'](_0x3ac360),_0x4ee906=RenderState[_0x578e35(0x1f,0x62)](this['rawRenderState']),_0x305933={};return _0x305933['owner']=this,_0x305933[_0x1c00d9(0x249,0x281)]=_0x44d41e,_0x305933['primitiveType']=this['primitiveType'],_0x305933[_0x578e35(0xf9,0x111)]=Matrix4['IDENTITY'],_0x305933['renderState']=_0x4ee906,_0x305933['shaderProgram']=_0x5341b6,_0x305933['framebuffer']=this['framebuffer'],_0x305933['uniformMap']=this['uniformMap'],_0x305933[_0x1c00d9(0x258,0x2dc)]=Pass$1['OPAQUE'],new DrawCommand(_0x305933);}else{if(this['commandType']===_0x1c00d9(0x1ee,0x213)){const _0x309e0f={};return _0x309e0f[_0x578e35(0x10f,0xa1)]=this,_0x309e0f['fragmentShaderSource']=this[_0x578e35(0x54,0x68)],_0x309e0f['uniformMap']=this[_0x1c00d9(0x28f,0x2b9)],_0x309e0f['outputTexture']=this[_0x1c00d9(0x216,0x251)],_0x309e0f[_0x578e35(0x1b0,0x134)]=!![],new ComputeCommand(_0x309e0f);}else throw new Error('Unknown\x20command\x20type');}}[_0x580342(0x342,0x2fa)](_0x457de0,_0x2dfe7e){this['geometry']=_0x2dfe7e;function _0x358689(_0xeebd31,_0x49a808){return _0x5c4e84(_0xeebd31- -0x1f7,_0x49a808);}function _0x51852b(_0x4391e0,_0x58c747){return _0x5c4e84(_0x58c747- -0x138,_0x4391e0);}defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x457de0,'geometry':this[_0x358689(0x14,-0x67)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x51852b(0x62,0x82)]}));}[_0x580342(0x3e7,0x39b)](_0x2ed03b){if(!this['isDynamic']())return;if(!this['show']||!defined(_0x2ed03b))return;!defined(this[_0x409684(-0x1e4,-0x1e8)])&&(this[_0x55ffcf(0x164,0x189)]=this[_0x55ffcf(0x1c9,0x19d)](_0x2ed03b[_0x55ffcf(0x1b2,0x1b5)]));function _0x409684(_0x41ada4,_0x5dc1c1){return _0x580342(_0x41ada4,_0x5dc1c1- -0x535);}defined(this[_0x409684(-0x226,-0x1ff)])&&this['preExecute']();if(!_0x2ed03b['commandList']){console['warn']('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x2ed03b['commandList']['push'](this[_0x409684(-0x255,-0x1e0)]);function _0x55ffcf(_0x493e88,_0x4f267a){return _0x580342(_0x493e88,_0x4f267a- -0x1c4);}defined(this[_0x409684(-0x185,-0x1e8)])&&_0x2ed03b['commandList']['push'](this[_0x409684(-0x19c,-0x1e8)]);}['isDestroyed'](){return![];}['destroy'](){function _0x52b3f4(_0x9e6111,_0x560c93){return _0x580342(_0x560c93,_0x9e6111- -0x7e);}function _0x29e99e(_0x3421ab,_0x428330){return _0x580342(_0x3421ab,_0x428330- -0x580);}if(defined(this['commandToExecute'])){var _0x39a39e;(_0x39a39e=this['commandToExecute']['shaderProgram'])===null||_0x39a39e===void 0x0||_0x39a39e['destroy'](),this[_0x29e99e(-0x1c7,-0x233)][_0x29e99e(-0x2c3,-0x2ab)]=undefined;}return destroyObject(this);}}function deepMerge(_0x11d246,_0x48b53e){if(!_0x11d246)return _0x48b53e;if(!_0x48b53e)return _0x11d246;const _0x4a4c29={..._0x48b53e},_0x21bae1=_0x4a4c29;function _0xd12f52(_0x52819b,_0x45abdd){return _0x580342(_0x52819b,_0x45abdd- -0xf6);}function _0x11af50(_0x265a32,_0x388ddf){return _0x5c4e84(_0x388ddf- -0x3df,_0x265a32);}for(const _0x52f508 in _0x11d246){if(Object['prototype'][_0x11af50(-0x1cd,-0x1fd)]['call'](_0x11d246,_0x52f508)){const _0x1fc211=_0x11d246[_0x52f508],_0x287bba=_0x48b53e[_0x52f508];if(Array['isArray'](_0x1fc211)){_0x21bae1[_0x52f508]=_0x1fc211['slice']();continue;}if(_0x1fc211&&typeof _0x1fc211===_0x11af50(-0x1fc,-0x1d8)){_0x21bae1[_0x52f508]=deepMerge(_0x1fc211,_0x287bba||{});continue;}_0x1fc211!==undefined&&(_0x21bae1[_0x52f508]=_0x1fc211);}}return _0x21bae1;}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[_0x580342(0x34a,0x366)];class WindParticlesComputing{constructor(_0x4b6651,_0x2b60ad,_0x575ac7,_0x1dcb89,_0x1e1950){this[_0x2f05e8(0xe9,0x95)]=_0x4b6651,this[_0x4863b0(-0x5f,-0x94)]=_0x575ac7,this['viewerParameters']=_0x1dcb89,this[_0x4863b0(-0xe0,-0x69)]=_0x2b60ad,this['frameRate']=0x3c,this[_0x4863b0(-0x101,-0xba)]=0x1;function _0x4863b0(_0x431add,_0x3eb14c){return _0x580342(_0x431add,_0x3eb14c- -0x408);}const _0x62df8e={};_0x62df8e[_0x2f05e8(0xb8,0x4a)]=_0x1e1950;function _0x2f05e8(_0x520ba4,_0x24b742){return _0x580342(_0x520ba4,_0x24b742- -0x2e4);}_0x62df8e[_0x4863b0(-0xcc,-0x73)]=0x1,_0x62df8e['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x62df8e),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x58aaa2=()=>{function _0x5afdf5(_0x5105fd,_0x11a326){return _0x5ea3(_0x5105fd-0x20b,_0x11a326);}function _0x2b2c89(_0x390739,_0x576c05){return _0x5ea3(_0x390739-0xb4,_0x576c05);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this[_0x2b2c89(0x1d9,0x1d2)]=0x3c/Math[_0x2b2c89(0x21d,0x1f2)](this['frameRate'],0x1));};_0x58aaa2();const _0x3efed1=setInterval(_0x58aaa2,0x3e8);function _0x33c5c1(_0x4c4aac,_0x34fb61){return _0x580342(_0x4c4aac,_0x34fb61- -0x129);}const _0x2e11e6=this['destroy']['bind'](this);this[_0x33c5c1(0x290,0x233)]=()=>{clearInterval(_0x3efed1),_0x2e11e6();};}[_0x5c4e84(0x1c9,0x1c9)](){const _0x393781={};_0x393781[_0x21dffa(0x1ba,0x1f2)]=TextureMinificationFilter$1[_0x38fda7(0x2dc,0x30d)],_0x393781[_0x21dffa(0x1f2,0x243)]=TextureMagnificationFilter$1['LINEAR'];const _0x48b2fc={'context':this[_0x38fda7(0x2d0,0x2f3)],'width':this['windData']['width'],'height':this[_0x38fda7(0x2c2,0x319)]['height'],'pixelFormat':PixelFormat$1[_0x38fda7(0x1f3,0x240)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x21dffa(0x1be,0x185)]['flipY']??![],'sampler':new Sampler$1(_0x393781)};function _0x21dffa(_0x85e8a4,_0x419457){return _0x5c4e84(_0x85e8a4- -0x9a,_0x419457);}function _0x38fda7(_0x2b4edb,_0x11016b){return _0x5c4e84(_0x11016b-0x96,_0x2b4edb);}this[_0x38fda7(0x26c,0x2b1)]={'U':new Texture$1({..._0x48b2fc,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x48b2fc,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){function _0x18af6e(_0x2f1af3,_0xffc085){return _0x5c4e84(_0xffc085-0xf6,_0x2f1af3);}const _0x553542={};_0x553542['minificationFilter']=TextureMinificationFilter$1[_0x384356(0x45e,0x46c)],_0x553542['magnificationFilter']=TextureMagnificationFilter$1[_0x384356(0x45e,0x439)];const _0xf95c08={'context':this[_0x18af6e(0x2ef,0x353)],'width':this[_0x18af6e(0x367,0x34e)]['particlesTextureSize'],'height':this[_0x384356(0x51c,0x52b)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x18af6e(0x3c7,0x34e)]['particlesTextureSize']*this['options']['particlesTextureSize']*0x4)[_0x18af6e(0x2d0,0x283)](0x0)},'sampler':new Sampler$1(_0x553542)};function _0x384356(_0xf44597,_0x208531){return _0x580342(_0x208531,_0xf44597-0x1a8);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0xf95c08),'currentParticlesPosition':new Texture$1(_0xf95c08),'nextParticlesPosition':new Texture$1(_0xf95c08),'postProcessingPosition':new Texture$1(_0xf95c08),'particlesSpeed':new Texture$1(_0xf95c08)};}['destroyParticlesTextures'](){Object['values'](this['particlesTextures'])['forEach'](_0x3be755=>_0x3be755['destroy']());}[_0x5c4e84(0x290,0x28a)](){function _0x2df44f(_0x50414e,_0x13bf46){return _0x580342(_0x50414e,_0x13bf46- -0x3e);}function _0x149fc4(_0xfdcaba,_0x171a6e){return _0x580342(_0xfdcaba,_0x171a6e-0x41);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this[_0x2df44f(0x352,0x361)]['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x149fc4(0x417,0x3e0)]['v'][_0x2df44f(0x35f,0x349)],this[_0x2df44f(0x389,0x361)]['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData']['speed'][_0x2df44f(0x32f,0x349)],this[_0x2df44f(0x30e,0x361)][_0x2df44f(0x36a,0x306)]['max']),'currentParticlesPosition':()=>this[_0x2df44f(0x391,0x321)]['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x18c417(_0x5d4da2,_0x5ad227){return _0x149fc4(_0x5ad227,_0x5d4da2- -0x165);}function _0x2472b3(_0x268ea9,_0x377c3e){return _0x149fc4(_0x377c3e,_0x268ea9- -0x202);}return(this[_0x2472b3(0x156,0xfd)]['pixelSize']+0x32)*this[_0x18c417(0x250,0x279)]['speedFactor'];},'frameRateAdjustment':()=>this[_0x2df44f(0x397,0x310)],'dimension':()=>new Cartesian2$1(this[_0x2df44f(0x3b5,0x361)]['width'],this[_0x2df44f(0x3d8,0x361)][_0x2df44f(0x279,0x2c6)]),'minimum':()=>new Cartesian2$1(this['windData'][_0x149fc4(0x3d2,0x3e2)]['west'],this['windData'][_0x2df44f(0x393,0x363)]['south']),'maximum':()=>new Cartesian2$1(this[_0x2df44f(0x302,0x361)]['bounds'][_0x2df44f(0x303,0x32f)],this[_0x149fc4(0x3a1,0x3e0)][_0x149fc4(0x3fa,0x3e2)]['north'])},'fragmentShaderSource':ShaderManager[_0x149fc4(0x39b,0x331)](),'outputTexture':this['particlesTextures']['particlesSpeed'],'preExecute':()=>{function _0x13c903(_0x23baa6,_0x43f13e){return _0x2df44f(_0x43f13e,_0x23baa6- -0x582);}const _0x384ad8=this['particlesTextures'][_0x13c903(-0x215,-0x1cd)];this['particlesTextures']['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'];function _0xaf2be8(_0x5afbb2,_0x3afead){return _0x149fc4(_0x5afbb2,_0x3afead- -0x433);}this['particlesTextures']['currentParticlesPosition']=this[_0x13c903(-0x261,-0x2a4)][_0x13c903(-0x2c1,-0x2b0)],this['particlesTextures'][_0xaf2be8(-0x140,-0xf3)]=_0x384ad8,this['primitives'][_0x13c903(-0x23d,-0x247)]['commandToExecute']&&(this['primitives'][_0xaf2be8(-0x8,-0x6f)][_0x13c903(-0x273,-0x211)]['outputTexture']=this['particlesTextures'][_0x13c903(-0x2ed,-0x305)]);},'isDynamic':()=>this[_0x2df44f(0x355,0x336)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x149fc4(0x315,0x301)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x6344ff(_0x3474e5,_0x548e7a){return _0x2df44f(_0x3474e5,_0x548e7a- -0x2a3);}function _0x104cdb(_0x3353f0,_0x560b45){return _0x149fc4(_0x560b45,_0x3353f0- -0x4e1);}this[_0x6344ff(0xe7,0x8d)]['updatePosition']['commandToExecute']&&(this['primitives']['updatePosition'][_0x6344ff(0x80,0x6c)][_0x104cdb(-0x1c1,-0x236)]=this[_0x6344ff(0xd1,0x7e)][_0x6344ff(0x11f,0xb6)]);},'isDynamic':()=>this[_0x2df44f(0x3af,0x336)]['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x2df44f(0x36c,0x321)]['nextParticlesPosition'],'particlesSpeed':()=>this[_0x149fc4(0x425,0x3a0)]['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this[_0x2df44f(0x2b1,0x2d9)][_0x149fc4(0x35e,0x36a)],'dataLonRange':()=>new Cartesian2$1(this[_0x2df44f(0x390,0x361)]['bounds'][_0x149fc4(0x382,0x2ff)],this['windData'][_0x149fc4(0x45b,0x3e2)][_0x149fc4(0x344,0x3ae)]),'dataLatRange':()=>new Cartesian2$1(this[_0x149fc4(0x38f,0x3e0)][_0x2df44f(0x352,0x363)][_0x2df44f(0x2c0,0x335)],this['windData'][_0x2df44f(0x3d4,0x363)][_0x2df44f(0x367,0x34e)]),'randomCoefficient':function(){function _0x164059(_0x291993,_0x1e9ccf){return _0x2df44f(_0x1e9ccf,_0x291993- -0x242);}return Math[_0x164059(0x5d,0xd0)]();},'dropRate':()=>this[_0x149fc4(0x374,0x3b5)][_0x149fc4(0x2c7,0x2fe)],'dropRateBump':()=>this[_0x149fc4(0x3dd,0x3b5)][_0x2df44f(0x319,0x2d8)],'useViewerBounds':()=>this['options']['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures'][_0x149fc4(0x2c3,0x340)],'preExecute':()=>{function _0x122859(_0x16a5a0,_0xadf102){return _0x2df44f(_0x16a5a0,_0xadf102- -0x218);}function _0x850cc3(_0x501d6e,_0x199482){return _0x149fc4(_0x199482,_0x501d6e-0x11b);}this['primitives'][_0x850cc3(0x45b,0x497)]['commandToExecute']&&(this['primitives']['postProcessingPosition'][_0x122859(0xf7,0xf7)]['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this['options'][_0x149fc4(0x3db,0x3a5)]})};}[_0x580342(0x2fc,0x36a)](){this['windTextures']['U'][_0x2008a6(-0x175,-0x10f)]();function _0x2008a6(_0x5b152b,_0xa23159){return _0x580342(_0xa23159,_0x5b152b- -0x4d1);}this[_0x34cb5f(-0x69,-0xf0)]['V']['destroy']();function _0x34cb5f(_0x6cbfd8,_0x5d4dc4){return _0x5c4e84(_0x6cbfd8- -0x284,_0x5d4dc4);}this['createWindTextures']();}['updateWindData'](_0x10bdb4){function _0x4ac491(_0x2028a8,_0x46d98c){return _0x5c4e84(_0x2028a8- -0x314,_0x46d98c);}this[_0x4ac491(-0x91,-0xd)]=_0x10bdb4,this['reCreateWindTextures']();}['updateOptions'](_0x3690b8){const _0x540569=_0x3690b8['flipY']!==undefined&&_0x3690b8['flipY']!==this['options'][_0x3b4e5a(0x31,0x35)];function _0x269d24(_0x15485b,_0x44ff55){return _0x5c4e84(_0x15485b-0x244,_0x44ff55);}this[_0x3b4e5a(0xa3,0xc8)]=deepMerge(_0x3690b8,this[_0x3b4e5a(0xf2,0xc8)]);function _0x3b4e5a(_0x44d082,_0x2a66c2){return _0x580342(_0x44d082,_0x2a66c2- -0x2ac);}_0x540569&&this['reCreateWindTextures']();}['processWindData'](_0x40f63a){const {array:_0x1f04d3}=_0x40f63a;function _0x45d636(_0x870f4,_0x60acc8){return _0x580342(_0x60acc8,_0x870f4- -0x3dd);}let {min:_0x3532c1,max:_0x5765a3}=_0x40f63a;const _0x4ed7a9=new Float32Array(_0x1f04d3['length']);_0x3532c1===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x3532c1=Math['min'](..._0x1f04d3));_0x5765a3===undefined&&(console['warn'](_0x45d636(-0xc5,-0xee)),_0x5765a3=Math['max'](..._0x1f04d3));const _0x2a2bfd=Math[_0x45d636(-0x4b,-0x2a)](Math['abs'](_0x3532c1),Math[_0x48da68(0x2cc,0x251)](_0x5765a3));function _0x48da68(_0x54bf7a,_0x53f896){return _0x580342(_0x54bf7a,_0x53f896- -0xd3);}for(let _0x56aae6=0x0;_0x56aae6<_0x1f04d3[_0x45d636(-0xf9,-0x117)];_0x56aae6++){const _0x265d2a=_0x1f04d3[_0x56aae6]/_0x2a2bfd;_0x4ed7a9[_0x56aae6]=_0x265d2a;}return _0x4ed7a9;}['destroy'](){Object['values'](this['windTextures'])['forEach'](_0x838f36=>_0x838f36['destroy']()),Object['values'](this['particlesTextures'])['forEach'](_0x1f3996=>_0x1f3996[_0x1be11f(0x333,0x398)]());function _0x3de2bd(_0x1673bf,_0x207456){return _0x5c4e84(_0x207456- -0x26b,_0x1673bf);}Object[_0x3de2bd(-0xf4,-0xc8)](this[_0x1be11f(0x345,0x34f)])['forEach'](_0x1b052b=>_0x1b052b['destroy']());function _0x1be11f(_0x416c5a,_0x72b522){return _0x580342(_0x72b522,_0x416c5a- -0x29);}this['frameRateMonitor'][_0x3de2bd(-0x86,-0x2b)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x5c4e84(0x24a,0x25b)];class WindParticlesRendering{constructor(_0x61684b,_0x36888a,_0x1e07f4,_0x4b0980){this[_0x5a8572(-0x289,-0x243)]=_0x61684b,this['options']=_0x36888a,this[_0x5a8572(-0x2eb,-0x336)]=_0x1e07f4,this['computing']=_0x4b0980;function _0x5a8572(_0x91c674,_0xdbffb6){return _0x580342(_0xdbffb6,_0x91c674- -0x602);}(typeof this['options'][_0x53a1dc(0x5ab,0x531)]!=='number'||this[_0x5a8572(-0x28e,-0x2c4)]['particlesTextureSize']<=0x0)&&(console[_0x53a1dc(0x549,0x4db)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options'][_0x5a8572(-0x269,-0x287)]=0x100);this['colorTable']=this['createColorTableTexture']();function _0x53a1dc(_0x465cd8,_0x4f9730){return _0x5c4e84(_0x4f9730-0x2b4,_0x465cd8);}this[_0x53a1dc(0x4e7,0x4f6)]=this['createRenderingTextures'](),this['framebuffers']=this['createRenderingFramebuffers'](),this[_0x5a8572(-0x294,-0x2e9)]=this['createPrimitives']();}['createRenderingTextures'](){const _0x5d1bfb={};_0x5d1bfb['context']=this[_0x5bc7b8(0x52c,0x547)],_0x5d1bfb[_0x5bc7b8(0x4b3,0x46a)]=this['context']['drawingBufferWidth'],_0x5d1bfb[_0x276f15(0x262,0x2d8)]=this[_0x5bc7b8(0x52c,0x4d5)][_0x5bc7b8(0x565,0x4ed)],_0x5d1bfb['pixelFormat']=PixelFormat['RGBA'];function _0x276f15(_0x303f66,_0x24404d){return _0x580342(_0x24404d,_0x303f66- -0xa2);}function _0x5bc7b8(_0xcc30a3,_0x28198f){return _0x580342(_0x28198f,_0xcc30a3-0x1b3);}_0x5d1bfb['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x37aaa2=_0x5d1bfb,_0x5341b5={};_0x5341b5['context']=this['context'],_0x5341b5[_0x276f15(0x25e,0x217)]=this['context']['drawingBufferWidth'],_0x5341b5['height']=this[_0x276f15(0x2d7,0x285)][_0x276f15(0x310,0x355)],_0x5341b5[_0x5bc7b8(0x4b9,0x488)]=PixelFormat['DEPTH_COMPONENT'],_0x5341b5['pixelDatatype']=PixelDatatype['UNSIGNED_INT'];const _0x3ab6bb=_0x5341b5;return{'segmentsColor':new Texture(_0x37aaa2),'segmentsDepth':new Texture(_0x3ab6bb)};}['createRenderingFramebuffers'](){const _0x4de42e={};function _0x5055c4(_0x351883,_0x574709){return _0x580342(_0x351883,_0x574709-0x70);}function _0x46f53e(_0x15c2f3,_0x3c8aca){return _0x580342(_0x3c8aca,_0x15c2f3- -0x49f);}return _0x4de42e[_0x5055c4(0x43c,0x3e9)]=this[_0x5055c4(0x469,0x3e9)],_0x4de42e['colorTextures']=[this[_0x5055c4(0x3c3,0x3ce)][_0x46f53e(-0x167,-0x161)]],_0x4de42e['depthTexture']=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x4de42e)};}['destoryRenderingFramebuffers'](){Object['values'](this['framebuffers'])['forEach'](_0x36a520=>{_0x36a520['destroy']();});}['createColorTableTexture'](){const _0x41afbd=new Float32Array(this[_0x39fa3d(0x350,0x37a)][_0x3d9c45(0x2ed,0x33e)][_0x39fa3d(0x33f,0x349)](_0x189102=>{const _0x2613dc=Color$1[_0x25eb8e(0x390,0x3f6)](_0x189102);function _0x25eb8e(_0x33f5dd,_0x28c27c){return _0x3d9c45(_0x33f5dd,_0x28c27c-0x94);}return[_0x2613dc['red'],_0x2613dc['green'],_0x2613dc['blue'],_0x2613dc['alpha']];})),_0x54cc3e={};_0x54cc3e['minificationFilter']=TextureMinificationFilter[_0x39fa3d(0x36f,0x3cd)];function _0x3d9c45(_0xdf23f7,_0x43d305){return _0x5c4e84(_0x43d305-0x183,_0xdf23f7);}function _0x39fa3d(_0x355f27,_0x5171ca){return _0x580342(_0x5171ca,_0x355f27- -0x24);}return _0x54cc3e['magnificationFilter']=TextureMagnificationFilter[_0x3d9c45(0x47a,0x3fa)],_0x54cc3e['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x54cc3e[_0x3d9c45(0x2d7,0x339)]=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this[_0x3d9c45(0x3df,0x3e0)],'width':this[_0x39fa3d(0x350,0x36d)]['colors'][_0x39fa3d(0x2c0,0x31c)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x54cc3e),'source':{'width':this[_0x39fa3d(0x350,0x35f)][_0x39fa3d(0x2b3,0x2c3)][_0x39fa3d(0x2c0,0x271)],'height':0x1,'arrayBufferView':_0x41afbd}});}['createSegmentsGeometry'](){const _0x4056f3=0x4,_0xecce6e=this[_0x5783c8(0x125,0xc2)]['particlesTextureSize'];let _0x4f95e4=[];for(let _0x3399ea=0x0;_0x3399ea<_0xecce6e;_0x3399ea++){for(let _0x5846eb=0x0;_0x5846eb<_0xecce6e;_0x5846eb++){for(let _0x4952b2=0x0;_0x4952b2<_0x4056f3;_0x4952b2++){_0x4f95e4['push'](_0x3399ea/_0xecce6e),_0x4f95e4[_0x3de1de(-0x27c,-0x2ec)](_0x5846eb/_0xecce6e);}}}_0x4f95e4=new Float32Array(_0x4f95e4);const _0x3e0a52=this['options']['particlesTextureSize']**0x2;let _0x3a72c8=[];for(let _0x2e93bb=0x0;_0x2e93bb<_0x3e0a52;_0x2e93bb++){_0x3a72c8['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x3a72c8=new Float32Array(_0x3a72c8);let _0x1c225f=[];for(let _0x4456d3=0x0,_0x1b089=0x0;_0x4456d3<_0x3e0a52;_0x4456d3++){_0x1c225f['push'](_0x1b089+0x0,_0x1b089+0x1,_0x1b089+0x2,_0x1b089+0x2,_0x1b089+0x1,_0x1b089+0x3),_0x1b089+=_0x4056f3;}_0x1c225f=new Uint32Array(_0x1c225f);const _0x2af791={};_0x2af791['componentDatatype']=ComponentDatatype[_0x5783c8(0x26,-0x8)],_0x2af791['componentsPerAttribute']=0x2;function _0x5783c8(_0xeb2175,_0x427d7d){return _0x5c4e84(_0x427d7d- -0x196,_0xeb2175);}_0x2af791['values']=_0x4f95e4;const _0x11f396={};function _0x3de1de(_0x28764e,_0x5aea39){return _0x5c4e84(_0x28764e- -0x46c,_0x5aea39);}_0x11f396['componentDatatype']=ComponentDatatype[_0x3de1de(-0x2de,-0x2a3)],_0x11f396['componentsPerAttribute']=0x3,_0x11f396['values']=_0x3a72c8;const _0x83c814=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x2af791),'normal':new GeometryAttribute(_0x11f396)}),'indices':_0x1c225f});return _0x83c814;}['createRawRenderState'](_0xef1fc2){const _0x5ee91e={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0xef1fc2};return Appearance['getDefaultRenderState'](!![],![],_0x5ee91e);}[_0x5c4e84(0x225,0x27f)](){const _0x3812ab={};_0x3812ab['st']=0x0,_0x3812ab[_0x40fd1c(-0x1c3,-0x1be)]=0x1;const _0x20e033={};_0x20e033['enabled']=!![];function _0x40fd1c(_0x134f99,_0x5656b6){return _0x5c4e84(_0x5656b6- -0x38a,_0x134f99);}const _0x2d5863={};_0x2d5863['enabled']=!![],_0x2d5863['blendEquation']=WebGLRenderingContext[_0x40fd1c(-0x81,-0xf7)],_0x2d5863['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x2d5863[_0x40fd1c(-0xe8,-0xfd)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x102ce1={};function _0x16f7e3(_0x149bc5,_0x29c2b7){return _0x580342(_0x29c2b7,_0x149bc5-0x3d);}_0x102ce1[_0x40fd1c(-0x17a,-0x1e3)]=undefined,_0x102ce1[_0x16f7e3(0x37b,0x3a2)]=_0x20e033,_0x102ce1[_0x16f7e3(0x35d,0x380)]=!![],_0x102ce1['blending']=_0x2d5863;const _0x5dfa27=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x3812ab,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this[_0x16f7e3(0x331,0x39c)][_0x16f7e3(0x39c,0x3b7)][_0x16f7e3(0x3e8,0x470)],'currentParticlesPosition':()=>this[_0x40fd1c(-0x13e,-0x1b2)][_0x40fd1c(-0xdb,-0x147)][_0x16f7e3(0x2fd,0x31c)],'postProcessingPosition':()=>this['computing']['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x16f7e3(0x310,0x32f)],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this[_0x16f7e3(0x328,0x334)],'domain':()=>{var _0x4909d4,_0x2fbb81;function _0x3dd07d(_0xbd78cb,_0x15b74b){return _0x40fd1c(_0xbd78cb,_0x15b74b-0x109);}function _0x5e2054(_0x5dbd8b,_0x2d792e){return _0x16f7e3(_0x2d792e- -0x58d,_0x5dbd8b);}const _0x541618=new Cartesian2(((_0x4909d4=this['options']['domain'])===null||_0x4909d4===void 0x0?void 0x0:_0x4909d4['min'])??this['computing']['windData'][_0x3dd07d(-0xc6,-0x59)]['min'],((_0x2fbb81=this[_0x5e2054(-0x18d,-0x1dc)]['domain'])===null||_0x2fbb81===void 0x0?void 0x0:_0x2fbb81['max'])??this['computing'][_0x5e2054(-0x227,-0x1b1)][_0x3dd07d(-0x2f,-0x59)]['max']);return _0x541618;},'displayRange':()=>{function _0x412464(_0xd3f8d,_0x51c7cd){return _0x40fd1c(_0xd3f8d,_0x51c7cd- -0x147);}function _0x442c3c(_0x3749a6,_0x4212e6){return _0x16f7e3(_0x4212e6- -0x2f5,_0x3749a6);}var _0x390457,_0xc61530;const _0x3e1ea6=new Cartesian2(((_0x390457=this['options']['displayRange'])===null||_0x390457===void 0x0?void 0x0:_0x390457[_0x442c3c(0x7d,0xcf)])??this[_0x412464(-0x2a5,-0x2f9)]['windData'][_0x412464(-0x29d,-0x2a9)]['min'],((_0xc61530=this[_0x412464(-0x22a,-0x279)][_0x412464(-0x269,-0x2b2)])===null||_0xc61530===void 0x0?void 0x0:_0xc61530[_0x442c3c(0xd2,0xda)])??this[_0x442c3c(-0xa,0x3c)][_0x412464(-0x2b5,-0x24e)]['speed'][_0x412464(-0x1d9,-0x25b)]);return _0x3e1ea6;},'particleHeight':()=>this['options'][_0x16f7e3(0x379,0x312)]||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this[_0x16f7e3(0x3b6,0x3f2)]['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{const _0x27edc8={};function _0x21754b(_0x5f04c6,_0xd8ff41){return _0x40fd1c(_0x5f04c6,_0xd8ff41-0x4a9);}_0x27edc8['min']=0x1,_0x27edc8[_0x2869fe(0xb4,0x43)]=0x2;function _0x2869fe(_0x362238,_0xaefead){return _0x16f7e3(_0x362238- -0x31b,_0xaefead);}const _0x30a786=this[_0x2869fe(0x96,0x95)]['lineWidth']||_0x27edc8;return new Cartesian2(_0x30a786[_0x2869fe(0xa9,0x11c)],_0x30a786['max']);},'lineLength':()=>{const _0xcd1b84={};_0xcd1b84['min']=0x14,_0xcd1b84[_0x993420(-0x2c9,-0x257)]=0x64;function _0x993420(_0x5ddbb6,_0xc33529){return _0x16f7e3(_0xc33529- -0x626,_0x5ddbb6);}function _0x3379e8(_0x65388a,_0x4c946b){return _0x40fd1c(_0x4c946b,_0x65388a-0x61a);}const _0x4b108a=this['options']['lineLength']||_0xcd1b84;return new Cartesian2(_0x4b108a['min'],_0x4b108a[_0x993420(-0x289,-0x257)]);},'is3D':()=>this[_0x16f7e3(0x354,0x2d6)]['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x102ce1)}),_0x2392f6={};return _0x2392f6['segments']=_0x5dfa27,_0x2392f6;}[_0x580342(0x373,0x38b)](){const _0x310e7f=this['createSegmentsGeometry']();this[_0x480ac9(0x5c,0x36)]['segments']['geometry']=_0x310e7f;const _0x583c39={};function _0x51671d(_0x38408e,_0x3a31a1){return _0x5c4e84(_0x3a31a1-0x1f8,_0x38408e);}_0x583c39['context']=this[_0x480ac9(0xad,0x41)],_0x583c39['geometry']=_0x310e7f,_0x583c39['attributeLocations']=this['primitives']['segments'][_0x480ac9(0x20,0x62)],_0x583c39['bufferUsage']=BufferUsage[_0x51671d(0x426,0x3b2)];function _0x480ac9(_0x70a382,_0x7269c2){return _0x5c4e84(_0x7269c2- -0x21c,_0x70a382);}const _0x8c5103=VertexArray[_0x480ac9(-0x99,-0x3b)](_0x583c39);this['primitives'][_0x51671d(0x3a6,0x3f6)]['commandToExecute']&&(this[_0x51671d(0x3e0,0x44a)]['segments']['commandToExecute'][_0x480ac9(-0x3d,-0x26)]=_0x8c5103);}['onColorTableChange'](){this['colorTable']['destroy']();function _0x5e5caf(_0x4c3634,_0x1e49da){return _0x580342(_0x4c3634,_0x1e49da- -0x3db);}this[_0x5e5caf(-0xcc,-0xf0)]=this['createColorTableTexture']();}['updateOptions'](_0x42bfa8){const _0x3a9c63=_0x42bfa8['colors']&&JSON[_0x31b93e(0x3e6,0x430)](_0x42bfa8[_0x31b93e(0x3f1,0x3a8)])!==JSON['stringify'](this['options']['colors']);function _0x31b93e(_0x156f17,_0xff116a){return _0x580342(_0xff116a,_0x156f17-0x11a);}function _0x5ed4a9(_0x1c25f2,_0x11043e){return _0x5c4e84(_0x1c25f2-0x58,_0x11043e);}this[_0x5ed4a9(0x2b0,0x293)]=deepMerge(_0x42bfa8,this['options']),_0x3a9c63&&this['onColorTableChange']();}[_0x580342(0x369,0x35c)](){Object['values'](this[_0xd895c8(0x19c,0x134)])['forEach'](_0x3ca063=>{_0x3ca063['destroy']();}),Object[_0xd895c8(0x16c,0x12e)](this['primitives'])['forEach'](_0x21095a=>{_0x21095a['destroy']();});function _0xbd1ae2(_0x3dc6b9,_0x5ca4a0){return _0x5c4e84(_0x3dc6b9- -0x1a,_0x5ca4a0);}function _0xd895c8(_0x5077c5,_0x202319){return _0x580342(_0x5077c5,_0x202319- -0x191);}this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x580342(0x346,0x366)];class WindParticleSystem{constructor(_0x3ce626,_0x530167,_0x227218,_0x14d836,_0x535a9a){function _0x2dd058(_0x18de82,_0x4341b2){return _0x5c4e84(_0x4341b2- -0x5b,_0x18de82);}this['context']=_0x3ce626,this['options']=_0x227218;function _0x21e40d(_0x198648,_0x59a8af){return _0x580342(_0x59a8af,_0x198648- -0xe2);}this['viewerParameters']=_0x14d836,this[_0x2dd058(0x115,0x17d)]=new WindParticlesComputing(_0x3ce626,_0x530167,_0x227218,_0x14d836,_0x535a9a),this['rendering']=new WindParticlesRendering(_0x3ce626,_0x227218,_0x14d836,this[_0x21e40d(0x212,0x257)]),this['clearFramebuffers']();}['getPrimitives'](){function _0x4c4329(_0x49b1a4,_0x5b7e69){return _0x580342(_0x49b1a4,_0x5b7e69- -0x33e);}function _0x33e2a7(_0x5e3674,_0x449590){return _0x5c4e84(_0x449590- -0x8f,_0x5e3674);}const _0x30aed4=[this['computing'][_0x4c4329(0xa0,0x30)]['calculateSpeed'],this[_0x33e2a7(0x1af,0x149)][_0x33e2a7(0x1f5,0x1c3)][_0x4c4329(0x95,0x2a)],this[_0x33e2a7(0x138,0x149)][_0x4c4329(0x25,0x30)][_0x4c4329(-0x93,-0x3f)],this[_0x4c4329(-0x35,0x43)]['primitives'][_0x33e2a7(0x13f,0x16f)]];return _0x30aed4;}['clearFramebuffers'](){function _0x21d974(_0x1c81e3,_0xe4d9e1){return _0x580342(_0x1c81e3,_0xe4d9e1- -0x16);}const _0x4a3d96=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});Object['keys'](this[_0x21d974(0x3c0,0x36b)]['framebuffers'])['forEach'](_0x127f8b=>{function _0xf2a8c8(_0x3cc6da,_0x1d4b62){return _0x21d974(_0x1d4b62,_0x3cc6da- -0x102);}_0x4a3d96[_0xf2a8c8(0x23e,0x1f0)]=this[_0xf2a8c8(0x269,0x255)][_0xf2a8c8(0x1ad,0x1eb)][_0x127f8b];function _0x52a5f5(_0x5a2b47,_0x1270dc){return _0x21d974(_0x1270dc,_0x5a2b47- -0x4d);}_0x4a3d96['execute'](this[_0x52a5f5(0x316,0x2fd)]);});}[_0x580342(0x397,0x39c)](_0x5b99fe){let _0x5c3522=![];_0x5b99fe['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x5b99fe[_0x518fb9(0x149,0x18b)]&&(_0x5c3522=!![]);function _0x518fb9(_0x3046cf,_0xc55fd9){return _0x580342(_0x3046cf,_0xc55fd9- -0x20e);}function _0x1bb449(_0x4250e1,_0x44881c){return _0x5c4e84(_0x4250e1- -0x2f7,_0x44881c);}const _0x359a5f=deepMerge(_0x5b99fe,this[_0x1bb449(-0x9f,-0x108)]);if(_0x359a5f['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x359a5f,this[_0x1bb449(-0x92,-0x40)][_0x518fb9(0x11e,0x15d)](_0x5b99fe),this['computing'][_0x518fb9(0xeb,0x15d)](_0x5b99fe),_0x5c3522&&(this[_0x1bb449(-0x11f,-0xa3)]['destroyParticlesTextures'](),this[_0x518fb9(0xbc,0xe6)]['createParticlesTextures'](),this['rendering'][_0x518fb9(0x17f,0x17d)]());}['applyViewerParameters'](_0x5e01e3){this['viewerParameters']=_0x5e01e3;function _0x4dd93a(_0x352070,_0xe560e3){return _0x580342(_0xe560e3,_0x352070-0x40);}function _0x2e02eb(_0x687aee,_0x30b02e){return _0x580342(_0x687aee,_0x30b02e- -0x1d8);}this[_0x2e02eb(0x176,0x11c)]['viewerParameters']=_0x5e01e3,this['rendering'][_0x4dd93a(0x357,0x331)]=_0x5e01e3;}[_0x5c4e84(0x240,0x2bb)](){function _0x5e56ee(_0x1bbcd3,_0x394ffb){return _0x580342(_0x1bbcd3,_0x394ffb- -0x3c3);}this['computing'][_0x5e56ee(0x1e,-0x67)](),this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0x580342(0x31b,0x352)]['BaseLayer'],_0x561378={};function _0x3488(){const _0x1f07f4=['LayerUtil','NEAREST','Compute','mouse_move','steps','setData','isInExtent','1AamVKi','dropRate','west','values','currentParticlesPosition','remove','resize','viewport','cols','framebuffers','RED','pointerEvents','particlesNumber','ymin','bindEvent','canvas','stringify','getDataAtLonLat','tlat','stroke','particles','mouseDown','wrapT','particlesSpeed','MAX_VALUE','shaderProgram','STATIC_DRAW','colors','getUVByXY','mouseUp','Math','visibility','worker','random','4565176yQNmUF','outputTexture','_calcUV','flipY','getContext','_createCanvas','length','createWindTextures','strokeStyle','_randomParticle','normal','WindUtil','owner','colorTable','pickEllipsoid','updateViewerParameters','__proto__','sources','getCalculateSpeedShader','_mountedHook','addEventListener','umax','computing','_setOptionsHook','_animateFrame','unbindEvent','3686690dXoTNH','3036164kMLhll','setGeometry','fromCssColorString','requestAnimationFrame','fromGeometry','hasOwnProperty','postProcessingPosition','width','sqrt','refreshTimer','getPrimitives','height','container','pixelFormat','now','globe','_map','ymax','Cartesian2','push','changed','log','xmin','rows','latitude','vertexArray','getRandomLatLng','PointTrans','lonRange','dropRateBump','viewerParameters','max\x20is\x20undefined,\x20calculate\x20max','CanvasWindField','segments','CanvasWindLayer','xmax','initWorker','speedRate','left','depthMask','pass','vdata','object','abs','particleSystem','ellipsoid','geometry','redraw','latRange','wheel','mouseHidden','_calc_speedRate','_onMouseMoveEvent','scene','_onMouseDownEvent','lighter','sceneMode','lineTo','#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','canvasContext','frameTime','preExecute','windTextures','segmentsColor','tlng','4409270rEIGqt','displayRange','fixedHeight','setDate','depthTest','pointer-events','age','createPrimitives','umin','error','speed','camera','willReadFrequently','array','_canvasParticles','default','postMessage','maxAge','grid','commandToExecute','frameRateAdjustment','udata','toGridXY','_removedHook','layer','_drawLines','clientWidth','clearCommand','framebuffer','0px','uniformMap','__esModule','modelMatrix','zIndex','destroy','bind','textures','particlesTextures','getSegmentDrawVertexShader','createCommand','off','flatMap','dynamic','3HqVXeV','Cesium','clientHeight','updatePosition','toDegrees','reCreateWindTextures','updateOptions','style','east','primitives','6057624tvDjJp','minificationFilter','cartesianToCartographic','_colorRamp','south','options','_tomap','forEach','28285848nGcEoJ','_addedHook','context','keys','rgb(206,255,255)','primitiveType','persists','canvasWidth','morphComplete','none','rendering','original','calculateSpeed','floor','mouse_down','_onMapWhellEvent','min','data','getParticles','SCENE3D','onParticlesTextureSizeChange','north','lineLength','rawRenderState','onmessage','BaseLayer','autoClear','max','LINEAR','commandType','samplingWindow','lat','nextParticlesPosition','Log','particlesTextureSize','attributeLocations','update','changeOptions','windField','talt','windData','EventType','bounds','mode','lng','defineProperty','mars3d-wind插件注册成功\x20\x20\x20\x20\x20版本:','_canrefresh','MIN_VALUE','magnificationFilter','blendFuncDestination','lineWidth','previousParticlesPosition','createComputingPrimitives','bufferUsage','_pointerEvents','FUNC_ADD','2803288URwxjC','processWindData','drawingBufferHeight','EllipsoidalOccluder','DomUtil','3.11.3','moveTo','isDynamic','fill','FLOAT','fromCache','\x20\x20\x20\x20编译日期:','_updateIng','type','clear','OPAQUE','fragmentShaderSource','beginPath','interpolated','show'];_0x3488=function(){return _0x1f07f4;};return _0x3488();}_0x561378['min']=0x1,_0x561378['max']=0x2;function _0x5c4e84(_0x45ab6c,_0x366b0b){return _0x5ea3(_0x45ab6c-0x10d,_0x366b0b);}const _0x40b1a0={};_0x40b1a0['min']=0x14,_0x40b1a0[_0x5c4e84(0x276,0x2de)]=0x64;const _0x4c11fd={};_0x4c11fd['particlesTextureSize']=0x64,_0x4c11fd['fixedHeight']=0x0,_0x4c11fd[_0x5c4e84(0x28e,0x230)]=_0x561378,_0x4c11fd[_0x5c4e84(0x271,0x2e7)]=_0x40b1a0,_0x4c11fd['speedFactor']=0x1,_0x4c11fd[_0x5c4e84(0x1a1,0x1d9)]=0.003,_0x4c11fd[_0x5c4e84(0x1fa,0x17d)]=0.001,_0x4c11fd['colors']=[_0x5c4e84(0x25f,0x2c9)];function _0x580342(_0x4346f1,_0x418a65){return _0x5ea3(_0x418a65-0x229,_0x4346f1);}_0x4c11fd['flipY']=![],_0x4c11fd[_0x5c4e84(0x248,0x285)]=!![];const DEF_OPTIONS=_0x4c11fd;class WindLayer extends BaseLayer$1{constructor(_0x2efe27={}){function _0x170c1c(_0x2e0d1e,_0x12e187){return _0x580342(_0x12e187,_0x2e0d1e- -0x22b);}_0x2efe27={...DEF_OPTIONS,..._0x2efe27},super(_0x2efe27),this[_0x170c1c(0xca,0x5e)](_0x2efe27,_0x2efe27);}get['layer'](){function _0x50ea31(_0x2dc17b,_0x12b27a){return _0x580342(_0x2dc17b,_0x12b27a- -0x241);}return this[_0x50ea31(0x116,0x12d)];}get['data'](){return this['options']['data'];}set['data'](_0x15f34c){this['options']['data']=_0x15f34c,this['setData'](_0x15f34c);}get['colors'](){function _0x451fb2(_0x42c4a9,_0x5be380){return _0x5c4e84(_0x42c4a9- -0x1d0,_0x5be380);}return this['options'][_0x451fb2(-0x15,0x38)];}set['colors'](_0x32d9f8){function _0x52a0a5(_0x5301cd,_0x43fcdd){return _0x580342(_0x5301cd,_0x43fcdd- -0x3d6);}this['options']['colors']=_0x32d9f8;const _0x49148b={};_0x49148b[_0x52a0a5(-0x114,-0xff)]=_0x32d9f8,this['_setOptionsHook'](this['options'],_0x49148b);}['_showHook'](_0x2c1fa2){_0x2c1fa2?this['_addedHook']():this['_removedHook']();}[_0x580342(0x2d8,0x2f1)](){}['_addedHook'](){this[_0x3ed197(0x49d,0x43e)]=this[_0x3ed197(0x478,0x4d1)][_0x3ed197(0x49d,0x514)],this[_0xb819bb(0x4eb,0x4dd)]=this['_map'][_0x3ed197(0x4b4,0x47e)];this['options'][_0x3ed197(0x4f7,0x493)]&&this['setData'](this['options'][_0x3ed197(0x4f7,0x50d)]);if(!this['windData']||!this['show'])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1[(_0x3ed197(0x47a,0x4b4))](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene'][_0x3ed197(0x511,0x49e)]},this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene'][_0xb819bb(0x494,0x511)],this['windData'],this[_0x3ed197(0x4e3,0x45e)],this['viewerParameters'],this[_0x3ed197(0x49d,0x439)]),this['primitives']=this[_0x3ed197(0x494,0x411)][_0x3ed197(0x472,0x411)](),this['primitives'][_0xb819bb(0x4fe,0x50e)](_0x137ad0=>{function _0x3763c8(_0x3e577c,_0x2ef80c){return _0xb819bb(_0x2ef80c,_0x3e577c- -0x10d);}this['scene'][_0x3763c8(0x3f9,0x3af)]['add'](_0x137ad0);}),this['camera']['percentageChanged']=0.01,this['camera'][_0xb819bb(0x42d,0x4a5)]['addEventListener'](this['updateViewerParameters'][_0xb819bb(0x54e,0x4f5)](this));function _0x3ed197(_0x2bd08f,_0x2330fb){return _0x580342(_0x2330fb,_0x2bd08f-0x16f);}function _0xb819bb(_0x3dc20d,_0x3767d2){return _0x580342(_0x3dc20d,_0x3767d2-0x198);}this[_0x3ed197(0x49d,0x4e3)]['morphComplete']['addEventListener'](this['updateViewerParameters'][_0xb819bb(0x48f,0x4f5)](this)),window[_0xb819bb(0x508,0x48a)]('resize',this['updateViewerParameters']['bind'](this));}['_removedHook'](){this['camera'][_0x59adac(0x4d7,0x452)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),this[_0x5353bd(0x4e3,0x4e7)][_0x5353bd(0x534,0x4ef)]['removeEventListener'](this['updateViewerParameters'][_0x5353bd(0x512,0x548)](this)),window['removeEventListener']('resize',this[_0x5353bd(0x4a2,0x449)][_0x5353bd(0x512,0x571)](this));this[_0x59adac(0x50a,0x4b3)]&&(this['primitives'][_0x59adac(0x461,0x4bb)](_0x219df=>{function _0x120986(_0x562a2c,_0x4f0203){return _0x5353bd(_0x4f0203- -0x23c,_0x562a2c);}function _0x394129(_0x1ba775,_0x25d57c){return _0x59adac(_0x1ba775,_0x25d57c- -0x6c6);}this[_0x120986(0x24f,0x2a7)]['primitives'][_0x394129(-0x279,-0x2c0)](_0x219df);}),delete this['primitives']);function _0x59adac(_0x300f23,_0x1e6a74){return _0x5c4e84(_0x1e6a74-0x261,_0x300f23);}function _0x5353bd(_0x2a57fb,_0x585f47){return _0x580342(_0x585f47,_0x2a57fb-0x1b5);}this['particleSystem']&&(this['particleSystem'][_0x5353bd(0x511,0x595)](),delete this['particleSystem']);}[_0x5c4e84(0x19e,0x16a)](_0x394c6c,_0x85038a){function _0x522904(_0x1b4d04,_0x25bfcc){return _0x580342(_0x1b4d04,_0x25bfcc- -0x4c7);}this['windData']=this[_0x5c3c9f(0x484,0x418)](_0x394c6c);if(_0x85038a){this[_0x522904(-0x14d,-0x176)](),this['_addedHook']();return;}function _0x5c3c9f(_0xe2856f,_0x3216e5){return _0x5c4e84(_0x3216e5-0x183,_0xe2856f);}this[_0x5c3c9f(0x390,0x38c)]?(this[_0x5c3c9f(0x328,0x38c)]['computing']['updateWindData'](this[_0x5c3c9f(0x3e4,0x406)]),this['scene']['requestRender']()):this['_addedHook']();}['_setOptionsHook'](_0x4ac116,_0xbcf3cf){function _0x10d193(_0x103354,_0x4b4d79){return _0x580342(_0x4b4d79,_0x103354- -0x5e9);}function _0x2c08fb(_0x27a9cc,_0x5eb8eb){return _0x5c4e84(_0x27a9cc- -0x46d,_0x5eb8eb);}this[_0x10d193(-0x2c4,-0x268)]&&(this[_0x2c08fb(-0x264,-0x290)][_0x2c08fb(-0x1ed,-0x262)](_0xbcf3cf),this['scene']['requestRender']());}['processWindData'](_0x5c175b){function _0x3b0af3(_0x51d2ec,_0x2d83ba){return _0x5c4e84(_0x51d2ec- -0x295,_0x2d83ba);}var _0x47c8c3,_0x3bd099;const _0x4f04ca={..._0x5c175b},_0x2102f2=_0x4f04ca;!_0x2102f2['height']&&_0x2102f2['rows']&&(_0x2102f2['height']=_0x2102f2[_0x17cc98(0x2c0,0x2ac)]);!_0x2102f2['width']&&_0x2102f2['cols']&&(_0x2102f2['width']=_0x2102f2[_0x17cc98(0x274,0x217)]);!_0x2102f2[_0x3b0af3(-0x10,-0x55)]&&(_0x2102f2[_0x3b0af3(-0x10,-0x2b)]={'west':_0x2102f2[_0x17cc98(0x2bf,0x2d7)],'south':_0x2102f2['ymin'],'east':_0x2102f2[_0x17cc98(0x2cc,0x332)],'north':_0x2102f2['ymax']});function _0x17cc98(_0x462020,_0x23c2d3){return _0x5c4e84(_0x462020-0xcc,_0x23c2d3);}if(!_0x2102f2['u']){const _0x409853={};_0x409853[_0x17cc98(0x2f7,0x27c)]=_0x5c175b[_0x3b0af3(-0x62,-0x7c)],_0x409853[_0x17cc98(0x337,0x2ca)]=_0x5c175b[_0x3b0af3(-0x6f,0x18)],_0x409853['max']=_0x5c175b[_0x17cc98(0x2a3,0x268)],_0x2102f2['u']=_0x409853;}if(!_0x2102f2['v']){const _0x4de0b0={};_0x4de0b0[_0x17cc98(0x2f7,0x2da)]=_0x5c175b[_0x17cc98(0x2d2,0x29c)],_0x4de0b0['min']=_0x5c175b['vmin'],_0x4de0b0['max']=_0x5c175b['vmax'],_0x2102f2['v']=_0x4de0b0;}if(((_0x47c8c3=_0x2102f2[_0x3b0af3(-0x6d,-0x1b)])===null||_0x47c8c3===void 0x0?void 0x0:_0x47c8c3[_0x3b0af3(-0x2a,-0x8a)])===undefined||((_0x3bd099=_0x2102f2['speed'])===null||_0x3bd099===void 0x0?void 0x0:_0x3bd099['max'])===undefined||_0x2102f2['speed'][_0x17cc98(0x2f7,0x356)]===undefined){const _0x3f1156={'array':new Float32Array(_0x2102f2['u'][_0x17cc98(0x2f7,0x319)]['length']),'min':Number[_0x17cc98(0x284,0x265)],'max':Number[_0x3b0af3(-0xa,-0x4b)]};for(let _0x18d7df=0x0;_0x18d7df<_0x2102f2['u']['array'][_0x17cc98(0x294,0x29d)];_0x18d7df++){_0x3f1156['array'][_0x18d7df]=Math['sqrt'](_0x2102f2['u'][_0x17cc98(0x2f7,0x339)][_0x18d7df]*_0x2102f2['u'][_0x3b0af3(-0x6a,-0xd)][_0x18d7df]+_0x2102f2['v']['array'][_0x18d7df]*_0x2102f2['v'][_0x3b0af3(-0x6a,-0x69)][_0x18d7df]),_0x3f1156['array'][_0x18d7df]!==0x0&&(_0x3f1156[_0x3b0af3(-0x2a,0x45)]=Math[_0x3b0af3(-0x2a,-0x9b)](_0x3f1156['min'],_0x3f1156[_0x3b0af3(-0x6a,-0xb3)][_0x18d7df]),_0x3f1156[_0x3b0af3(-0x1f,-0x54)]=Math[_0x17cc98(0x342,0x340)](_0x3f1156['max'],_0x3f1156['array'][_0x18d7df]));}_0x2102f2['speed']=_0x3f1156;}return _0x2102f2;}['updateViewerParameters'](){var _0x5a7bea;const _0x38d233=this[_0x5036d1(0x273,0x203)];if(!_0x38d233)return;const _0x1fc8d7=_0x38d233[_0x5036d1(0x210,0x242)],_0x330792={};_0x330792['x']=0x0,_0x330792['y']=0x0;const _0x3fceb3={};_0x3fceb3['x']=0x0,_0x3fceb3['y']=_0x1fc8d7[_0x5036d1(0x2ac,0x31d)];const _0x12b35f={};_0x12b35f['x']=_0x1fc8d7[_0xaa6ae0(0x1ba,0x210)],_0x12b35f['y']=0x0;const _0x1a53bc={};_0x1a53bc['x']=_0x1fc8d7['clientWidth'],_0x1a53bc['y']=_0x1fc8d7['clientHeight'];const _0x50b10d=[_0x330792,_0x3fceb3,_0x12b35f,_0x1a53bc];let _0x10ba1b=0xb4,_0x29233a=-0xb4;function _0xaa6ae0(_0x11e975,_0x51bffd){return _0x5c4e84(_0x11e975- -0x7e,_0x51bffd);}let _0x27c9c2=0x5a,_0x5bb831=-0x5a,_0x4b803a=![];for(const _0x23f50b of _0x50b10d){const _0x43d647=_0x38d233['camera'][_0x5036d1(0x231,0x254)](new Cesium$1['Cartesian2'](_0x23f50b['x'],_0x23f50b['y']),_0x38d233[_0x5036d1(0x24d,0x27a)][_0x5036d1(0x26b,0x28b)]);if(!_0x43d647){_0x4b803a=!![];break;}const _0x4358fd=_0x38d233['globe']['ellipsoid'][_0x5036d1(0x2b6,0x255)](_0x43d647),_0x31c8f4=Cesium$1['Math'][_0x5036d1(0x2ae,0x26a)](_0x4358fd['longitude']),_0x4361c3=Cesium$1[_0xaa6ae0(0x140,0xfd)]['toDegrees'](_0x4358fd[_0xaa6ae0(0x177,0x151)]);_0x10ba1b=Math['min'](_0x10ba1b,_0x31c8f4),_0x29233a=Math['max'](_0x29233a,_0x31c8f4),_0x27c9c2=Math['min'](_0x27c9c2,_0x4361c3),_0x5bb831=Math['max'](_0x5bb831,_0x4361c3);}if(!_0x4b803a){const _0x1df4c6=new Cesium$1['Cartesian2'](Math[_0xaa6ae0(0x1f8,0x272)](this[_0xaa6ae0(0x205,0x1ed)][_0x5036d1(0x2e6,0x27f)][_0x5036d1(0x203,0x202)],_0x10ba1b),Math[_0xaa6ae0(0x1ed,0x199)](this[_0xaa6ae0(0x205,0x1da)]['bounds']['east'],_0x29233a)),_0x13abf8=new Cesium$1['Cartesian2'](Math['max'](this[_0xaa6ae0(0x205,0x23c)][_0x5036d1(0x2e6,0x326)][_0x5036d1(0x2b8,0x27e)],_0x27c9c2),Math['min'](this['windData'][_0xaa6ae0(0x207,0x1b3)]['north'],_0x5bb831)),_0x1a8b3e=(_0x1df4c6['y']-_0x1df4c6['x'])*0.05,_0x2d1bcd=(_0x13abf8['y']-_0x13abf8['x'])*0.05;_0x1df4c6['x']=Math[_0xaa6ae0(0x1f8,0x21a)](this[_0xaa6ae0(0x205,0x286)]['bounds']['west'],_0x1df4c6['x']-_0x1a8b3e),_0x1df4c6['y']=Math[_0xaa6ae0(0x1ed,0x1f1)](this[_0x5036d1(0x2e4,0x298)]['bounds']['east'],_0x1df4c6['y']+_0x1a8b3e),_0x13abf8['x']=Math['max'](this[_0xaa6ae0(0x205,0x25a)][_0x5036d1(0x2e6,0x2a6)][_0x5036d1(0x2b8,0x305)],_0x13abf8['x']-_0x2d1bcd),_0x13abf8['y']=Math['min'](this['windData'][_0x5036d1(0x2e6,0x2b5)][_0xaa6ae0(0x1f2,0x216)],_0x13abf8['y']+_0x2d1bcd),this['viewerParameters'][_0x5036d1(0x25a,0x2db)]=_0x1df4c6,this['viewerParameters'][_0x5036d1(0x26e,0x254)]=_0x13abf8;const _0x2927db=this['windData']['bounds']['east']-this['windData']['bounds']['west'],_0x40384c=this['windData']['bounds'][_0xaa6ae0(0x1f2,0x1d0)]-this['windData'][_0x5036d1(0x2e6,0x2a9)]['south'],_0x2b39af=(_0x1df4c6['y']-_0x1df4c6['x'])/_0x2927db,_0xed4ba3=(_0x13abf8['y']-_0x13abf8['x'])/_0x40384c,_0x1d7021=Math[_0x5036d1(0x2cc,0x245)](_0x2b39af,_0xed4ba3),_0x5af5dc=0x3e8*_0x1d7021;_0x5af5dc>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math[_0x5036d1(0x2cc,0x269)](0x3e8,_0x5af5dc)));}function _0x5036d1(_0x1ecc3c,_0xb57034){return _0x580342(_0xb57034,_0x1ecc3c- -0xbb);}this['viewerParameters'][_0x5036d1(0x276,0x20f)]=this[_0x5036d1(0x273,0x2f6)]['mode'],(_0x5a7bea=this['particleSystem'])===null||_0x5a7bea===void 0x0||_0x5a7bea['applyViewerParameters'](this['viewerParameters']);}[_0x580342(0x2b2,0x2cd)](_0x1051f0,_0x2c69c7){const {bounds:_0x24a221,width:_0x258ae9,height:_0x3cf8d1,u:_0x2a1c35,v:_0x1ba374,speed:_0x2600fa}=this[_0x904ae9(0x28a,0x2cc)],{flipY:_0x64ce23}=this[_0x904ae9(0x2c2,0x2a1)];if(_0x1051f0<_0x24a221['west']||_0x1051f0>_0x24a221[_0x904ae9(0x21c,0x29a)]||_0x2c69c7<_0x24a221[_0xaa40a0(0x428,0x406)]||_0x2c69c7>_0x24a221[_0xaa40a0(0x441,0x498)])return null;const _0x561e3d=(_0x1051f0-_0x24a221[_0xaa40a0(0x373,0x343)])/(_0x24a221[_0xaa40a0(0x422,0x3a2)]-_0x24a221['west'])*(_0x258ae9-0x1);let _0x4e89f8=(_0x2c69c7-_0x24a221['south'])/(_0x24a221['north']-_0x24a221['south'])*(_0x3cf8d1-0x1);_0x64ce23&&(_0x4e89f8=_0x3cf8d1-0x1-_0x4e89f8);const _0x24f445=Math['floor'](_0x561e3d),_0x4ec377=Math[_0xaa40a0(0x439,0x40e)](_0x4e89f8),_0x5ada70=Math['floor'](_0x561e3d),_0x15ae54=Math['min'](_0x5ada70+0x1,_0x258ae9-0x1),_0x5543d5=Math[_0x904ae9(0x241,0x2b1)](_0x4e89f8),_0xa359de=Math['min'](_0x5543d5+0x1,_0x3cf8d1-0x1),_0x326284=_0x561e3d-_0x5ada70,_0x4a45d6=_0x4e89f8-_0x5543d5,_0x4b5e30=_0x4ec377*_0x258ae9+_0x24f445,_0x8b373c=_0x5543d5*_0x258ae9+_0x5ada70,_0x3926a3=_0x5543d5*_0x258ae9+_0x15ae54,_0x34c2b3=_0xa359de*_0x258ae9+_0x5ada70,_0x2891a5=_0xa359de*_0x258ae9+_0x15ae54;function _0x904ae9(_0x12d155,_0x499cab){return _0x580342(_0x12d155,_0x499cab- -0xd3);}const _0x2c1ac4=_0x2a1c35[_0x904ae9(0x2b4,0x274)][_0x8b373c],_0x4366c6=_0x2a1c35[_0x904ae9(0x2da,0x274)][_0x3926a3],_0x2db0d1=_0x2a1c35['array'][_0x34c2b3],_0x525be0=_0x2a1c35['array'][_0x2891a5],_0x321390=(0x1-_0x326284)*(0x1-_0x4a45d6)*_0x2c1ac4+_0x326284*(0x1-_0x4a45d6)*_0x4366c6+(0x1-_0x326284)*_0x4a45d6*_0x2db0d1+_0x326284*_0x4a45d6*_0x525be0;function _0xaa40a0(_0x2e725e,_0x2663f5){return _0x580342(_0x2663f5,_0x2e725e-0xb5);}const _0x19656c=_0x1ba374[_0x904ae9(0x2c4,0x274)][_0x8b373c],_0x197b83=_0x1ba374[_0x904ae9(0x20c,0x274)][_0x3926a3],_0x2b35bd=_0x1ba374[_0xaa40a0(0x3fc,0x395)][_0x34c2b3],_0x4b847d=_0x1ba374['array'][_0x2891a5],_0x3518f5=(0x1-_0x326284)*(0x1-_0x4a45d6)*_0x19656c+_0x326284*(0x1-_0x4a45d6)*_0x197b83+(0x1-_0x326284)*_0x4a45d6*_0x2b35bd+_0x326284*_0x4a45d6*_0x4b847d,_0x59019c=Math[_0x904ae9(0x1f2,0x22e)](_0x321390*_0x321390+_0x3518f5*_0x3518f5),_0x3468b3={};_0x3468b3['u']=_0x2a1c35['array'][_0x4b5e30],_0x3468b3['v']=_0x1ba374['array'][_0x4b5e30],_0x3468b3['speed']=_0x2600fa['array'][_0x4b5e30];const _0xe51ce4={};_0xe51ce4['u']=_0x321390,_0xe51ce4['v']=_0x3518f5,_0xe51ce4['speed']=_0x59019c;const _0x1b235e={};return _0x1b235e[_0xaa40a0(0x437,0x41a)]=_0x3468b3,_0x1b235e[_0x904ae9(0x263,0x1e0)]=_0xe51ce4,_0x1b235e;}}mars3d__namespace[_0x580342(0x2ca,0x2b5)]['register']('wind',WindLayer),mars3d__namespace[_0x5c4e84(0x236,0x1c8)]['WindLayer']=WindLayer;class CanvasParticle{constructor(){function _0x3e3327(_0x403b2b,_0x295c44){return _0x580342(_0x403b2b,_0x295c44-0xd2);}function _0x244633(_0x19797f,_0x3f64d9){return _0x580342(_0x19797f,_0x3f64d9- -0x460);}this['lng']=null,this['lat']=null,this[_0x244633(-0x1ac,-0x127)]=null,this[_0x244633(-0x1c7,-0x192)]=null,this[_0x3e3327(0x469,0x412)]=null,this['speed']=null;}['destroy'](){for(const _0x5070e9 in this){delete this[_0x5070e9];}}}class CanvasWindField{constructor(_0x570540){this['setOptions'](_0x570540);}get['speedRate'](){return this['_speedRate'];}set['speedRate'](_0x1c27c7){function _0x4baffc(_0x3b5a29,_0x585390){return _0x580342(_0x585390,_0x3b5a29- -0x5c7);}function _0x97e6a2(_0x7c63eb,_0x299224){return _0x580342(_0x299224,_0x7c63eb- -0x5fe);}this['_speedRate']=(0x64-(_0x1c27c7>0x63?0x63:_0x1c27c7))*0x64,this[_0x97e6a2(-0x2d2,-0x276)]=[(this['xmax']-this[_0x97e6a2(-0x2ef,-0x2b3)])/this['_speedRate'],(this['ymax']-this['ymin'])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0x47b70d){this['_maxAge']=_0x47b70d;}['setOptions'](_0x212442){this['options']=_0x212442,this['maxAge']=_0x212442[_0x2693e2(0x3d7,0x3fd)]||0x78;function _0x56f727(_0x3126ac,_0x997c8){return _0x5c4e84(_0x997c8- -0x2ce,_0x3126ac);}function _0x2693e2(_0x4a00c7,_0x11ba36){return _0x5c4e84(_0x4a00c7-0x1a8,_0x11ba36);}this['speedRate']=_0x212442['speedRate']||0x32,this[_0x56f727(-0x12e,-0x11a)]=[];const _0x180280=_0x212442['particlesNumber']||0x1000;for(let _0x4a0f68=0x0;_0x4a0f68<_0x180280;_0x4a0f68++){const _0x3e36b9=this[_0x2693e2(0x373,0x356)](new CanvasParticle());this[_0x56f727(-0xcf,-0x11a)][_0x2693e2(0x398,0x330)](_0x3e36b9);}}[_0x5c4e84(0x221,0x1c0)](_0x1dd384){this['rows']=_0x1dd384['rows'],this['cols']=_0x1dd384[_0x3d13cb(0x459,0x434)],this[_0x4c1a05(0x170,0x1c7)]=_0x1dd384[_0x4c1a05(0x170,0x1c1)],this[_0x3d13cb(0x449,0x48c)]=_0x1dd384[_0x3d13cb(0x4a4,0x48c)],this[_0x3d13cb(0x40e,0x439)]=_0x1dd384['ymin'],this[_0x4c1a05(0x16b,0x124)]=_0x1dd384['ymax'],this[_0x3d13cb(0x4ea,0x4bc)]=[];const _0xc04011=_0x1dd384['udata'],_0x589765=_0x1dd384[_0x3d13cb(0x48d,0x492)];function _0x4c1a05(_0x50a9c7,_0x13fdfd){return _0x580342(_0x13fdfd,_0x50a9c7- -0x19f);}let _0x310f99=![];_0xc04011['length']===this[_0x4c1a05(0x171,0x1bb)]&&_0xc04011[0x0]['length']===this['cols']&&(_0x310f99=!![]);let _0x29b65a=0x0,_0x485dad=null,_0x2ed97b=null;function _0x3d13cb(_0x24dded,_0x3d8fd7){return _0x580342(_0x24dded,_0x3d8fd7-0x170);}for(let _0x1398cd=0x0;_0x1398cd<this['rows'];_0x1398cd++){_0x485dad=[];for(let _0x7f31d6=0x0;_0x7f31d6<this[_0x4c1a05(0x125,0xd1)];_0x7f31d6++,_0x29b65a++){_0x310f99?_0x2ed97b=this['_calcUV'](_0xc04011[_0x1398cd][_0x7f31d6],_0x589765[_0x1398cd][_0x7f31d6]):_0x2ed97b=this['_calcUV'](_0xc04011[_0x29b65a],_0x589765[_0x29b65a]),_0x485dad[_0x3d13cb(0x473,0x47c)](_0x2ed97b);}this[_0x4c1a05(0x1ad,0x17a)]['push'](_0x485dad);}!this[_0x3d13cb(0x522,0x4e4)][_0x4c1a05(0x142,0x13f)]&&this['grid']['reverse']();}['clear'](){delete this['rows'],delete this['cols'];function _0x563612(_0x61694d,_0x17b918){return _0x580342(_0x17b918,_0x61694d- -0x368);}delete this['xmin'],delete this['xmax'],delete this[_0x264096(-0x281,-0x2a5)];function _0x264096(_0x394cbf,_0x50dc16){return _0x580342(_0x394cbf,_0x50dc16- -0x56e);}delete this['ymax'],delete this[_0x563612(-0x1c,-0xd)],delete this['particles'];}[_0x580342(0x2f0,0x350)](_0xb6dc65,_0x92e705){function _0x4710b5(_0x543674,_0x31ca57){return _0x5c4e84(_0x31ca57-0xa5,_0x543674);}function _0x3a3080(_0x457864,_0x3e915b){return _0x5c4e84(_0x457864-0x13,_0x3e915b);}const _0xcb5da3=(_0xb6dc65-this[_0x4710b5(0x275,0x298)])/(this['xmax']-this[_0x4710b5(0x26e,0x298)])*(this['cols']-0x1),_0x10f2f3=(this[_0x3a3080(0x201,0x27b)]-_0x92e705)/(this['ymax']-this['ymin'])*(this['rows']-0x1);return[_0xcb5da3,_0x10f2f3];}[_0x580342(0x2c8,0x2d8)](_0x3aedfa,_0x16c210){if(_0x3aedfa<0x0||_0x3aedfa>=this['cols']||_0x16c210>=this[_0x278a21(0x476,0x4bf)])return[0x0,0x0,0x0];const _0x1f932e=Math[_0x278a21(0x4ea,0x4e7)](_0x3aedfa),_0x237d49=Math['floor'](_0x16c210);if(_0x1f932e===_0x3aedfa&&_0x237d49===_0x16c210)return this['grid'][_0x16c210][_0x3aedfa];const _0x55a3c7=_0x1f932e+0x1;function _0x278a21(_0x23968b,_0x414177){return _0x5c4e84(_0x23968b-0x282,_0x414177);}const _0x2e94d1=_0x237d49+0x1,_0x4e2db0=this['getUVByXY'](_0x1f932e,_0x237d49);function _0x4acd8e(_0x4b997c,_0x56cd9f){return _0x580342(_0x56cd9f,_0x4b997c- -0x303);}const _0x3f8475=this['getUVByXY'](_0x55a3c7,_0x237d49),_0x240d09=this['getUVByXY'](_0x1f932e,_0x2e94d1),_0x3445c1=this['getUVByXY'](_0x55a3c7,_0x2e94d1);let _0x10a180=null;try{_0x10a180=this['_bilinearInterpolation'](_0x3aedfa-_0x1f932e,_0x16c210-_0x237d49,_0x4e2db0,_0x3f8475,_0x240d09,_0x3445c1);}catch(_0x35ea39){console[_0x4acd8e(0xb,0x46)](_0x3aedfa,_0x16c210);}return _0x10a180;}['_bilinearInterpolation'](_0x79303b,_0x307e49,_0x48965c,_0x4ef418,_0x4cde47,_0x27937f){const _0xc9546e=0x1-_0x79303b,_0x3e0470=0x1-_0x307e49,_0x1dfd07=_0xc9546e*_0x3e0470,_0x317678=_0x79303b*_0x3e0470,_0x38efc2=_0xc9546e*_0x307e49,_0x3a71ff=_0x79303b*_0x307e49,_0x2a6466=_0x48965c[0x0]*_0x1dfd07+_0x4ef418[0x0]*_0x317678+_0x4cde47[0x0]*_0x38efc2+_0x27937f[0x0]*_0x3a71ff,_0x4b57f6=_0x48965c[0x1]*_0x1dfd07+_0x4ef418[0x1]*_0x317678+_0x4cde47[0x1]*_0x38efc2+_0x27937f[0x1]*_0x3a71ff;return this['_calcUV'](_0x2a6466,_0x4b57f6);}[_0x5c4e84(0x1c4,0x1a1)](_0x53decd,_0xc1ce7a){return[+_0x53decd,+_0xc1ce7a,Math['sqrt'](_0x53decd*_0x53decd+_0xc1ce7a*_0xc1ce7a)];}['getUVByPoint'](_0x1a4598,_0x239bbc){function _0x3ad8e7(_0x3d8026,_0x2ea6c6){return _0x5c4e84(_0x2ea6c6-0x4f,_0x3d8026);}if(!this[_0x3ad8e7(0x16a,0x1ee)](_0x1a4598,_0x239bbc))return null;const _0x11b050=this['toGridXY'](_0x1a4598,_0x239bbc),_0x210482=this['getUVByXY'](_0x11b050[0x0],_0x11b050[0x1]);return _0x210482;}[_0x580342(0x338,0x2bb)](_0x13f051,_0x12806c){function _0x558045(_0x3aa231,_0x454f5c){return _0x5c4e84(_0x3aa231- -0x3d6,_0x454f5c);}function _0x39b9cf(_0x2a3c1f,_0x5f1428){return _0x580342(_0x2a3c1f,_0x5f1428- -0x502);}return _0x13f051>=this['xmin']&&_0x13f051<=this[_0x558045(-0x1d6,-0x23a)]&&_0x12806c>=this['ymin']&&_0x12806c<=this[_0x39b9cf(-0x261,-0x1f8)]?!![]:![];}['getRandomLatLng'](){const _0x141973=fRandomByfloat(this[_0x2bd317(0x1fc,0x195)],this['xmax']),_0x27e200=fRandomByfloat(this['ymin'],this[_0x2bd317(0x1ea,0x190)]);function _0x2bd317(_0x1bd439,_0x44566b){return _0x5c4e84(_0x44566b- -0x5e,_0x1bd439);}function _0x59404b(_0x3c49c7,_0x4b3439){return _0x580342(_0x4b3439,_0x3c49c7- -0x15f);}const _0x1cd59f={};return _0x1cd59f['lat']=_0x27e200,_0x1cd59f['lng']=_0x141973,_0x1cd59f;}[_0x5c4e84(0x26d,0x2d0)](){function _0x42fa30(_0x4d1ca4,_0x4842bc){return _0x580342(_0x4d1ca4,_0x4842bc-0x1b2);}let _0x3eacb7,_0x5d3c85,_0x39b948;for(let _0xe677a=0x0,_0x8f82cd=this['particles']['length'];_0xe677a<_0x8f82cd;_0xe677a++){let _0x46eb64=this[_0x3c9ae7(0x1ea,0x20d)][_0xe677a];_0x46eb64[_0x3c9ae7(0x25a,0x2bd)]<=0x0&&(_0x46eb64=this[_0x3c9ae7(0x201,0x1fb)](_0x46eb64));if(_0x46eb64[_0x42fa30(0x4c9,0x4f2)]>0x0){const _0x4cd27e=_0x46eb64['tlng'],_0x332c92=_0x46eb64[_0x3c9ae7(0x1e8,0x1fb)];_0x39b948=this['getUVByPoint'](_0x4cd27e,_0x332c92),_0x39b948?(_0x3eacb7=_0x4cd27e+this['_calc_speedRate'][0x0]*_0x39b948[0x0],_0x5d3c85=_0x332c92+this['_calc_speedRate'][0x1]*_0x39b948[0x1],_0x46eb64['lng']=_0x4cd27e,_0x46eb64['lat']=_0x332c92,_0x46eb64['tlng']=_0x3eacb7,_0x46eb64['tlat']=_0x5d3c85,_0x46eb64['speed']=_0x39b948[0x2],_0x46eb64['age']--):_0x46eb64['age']=0x0;}}function _0x3c9ae7(_0x3b64b4,_0x58d0ea){return _0x580342(_0x58d0ea,_0x3b64b4- -0xe6);}return this[_0x3c9ae7(0x1ea,0x1d6)];}['_randomParticle'](_0x4bd425){let _0x1d54d9,_0x5905d1;function _0x32c8c9(_0x1a4466,_0x17c36e){return _0x5c4e84(_0x17c36e-0xfd,_0x1a4466);}for(let _0x378e3b=0x0;_0x378e3b<0x1e;_0x378e3b++){_0x1d54d9=this[_0x32c8c9(0x26d,0x2f4)](),_0x5905d1=this['getUVByPoint'](_0x1d54d9[_0x32c8c9(0x3a1,0x384)],_0x1d54d9['lat']);if(_0x5905d1&&_0x5905d1[0x2]>0x0)break;}if(!_0x5905d1)return _0x4bd425;const _0x12efa4=_0x1d54d9['lng']+this['_calc_speedRate'][0x0]*_0x5905d1[0x0],_0x759cde=_0x1d54d9['lat']+this[_0x32c8c9(0x295,0x30d)][0x1]*_0x5905d1[0x1];_0x4bd425[_0x4c0516(0x20b,0x1ff)]=_0x1d54d9['lng'],_0x4bd425[_0x4c0516(0x1fe,0x1f7)]=_0x1d54d9['lat'],_0x4bd425[_0x32c8c9(0x2cb,0x31a)]=_0x12efa4,_0x4bd425['tlat']=_0x759cde;function _0x4c0516(_0x52ac46,_0x5c197b){return _0x5c4e84(_0x52ac46- -0x7c,_0x5c197b);}return _0x4bd425['age']=Math['round'](0xa+Math['random']()*this[_0x4c0516(0x1b3,0x14e)]),_0x4bd425[_0x4c0516(0x1ac,0x1b2)]=_0x5905d1[0x2],_0x4bd425;}[_0x580342(0x2d8,0x35c)](){for(const _0x5be871 in this){delete this[_0x5be871];}}}function fRandomByfloat(_0x1b21a4,_0x2f4ef7){return _0x1b21a4+Math['random']()*(_0x2f4ef7-_0x1b21a4);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer'][_0x580342(0x384,0x390)];class CanvasWindLayer extends BaseLayer{constructor(_0x4ef524={}){super(_0x4ef524);function _0x170c25(_0x38bf46,_0x2e972a){return _0x5c4e84(_0x38bf46- -0x12,_0x2e972a);}this[_0x29d743(-0x22c,-0x29f)](_0x4ef524),this[_0x29d743(-0x256,-0x2b2)]=null;function _0x29d743(_0x2ae98b,_0x8b13a8){return _0x5c4e84(_0x2ae98b- -0x405,_0x8b13a8);}_0x4ef524['colors']&&_0x4ef524[_0x170c25(0x18b,0x12b)]&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x4ef524));}[_0x5c4e84(0x1d9,0x15b)](_0x51209f,_0x3a6a8a){this['frameTime']=0x3e8/(_0x51209f['frameRate']||0xa),this[_0x129095(0x276,0x1ff)]=this['options'][_0x440b68(-0x4f,-0x66)]??![];function _0x129095(_0xfd7217,_0x1059c7){return _0x5c4e84(_0x1059c7- -0x93,_0xfd7217);}this['color']=_0x51209f['color']||'#ffffff',this['lineWidth']=_0x51209f[_0x440b68(0x94,0x77)]||0x1,this['fixedHeight']=_0x51209f[_0x440b68(0x26,-0x49)]??0x0;function _0x440b68(_0x4c13e1,_0x5682c4){return _0x5c4e84(_0x4c13e1- -0x1fa,_0x5682c4);}this[_0x129095(0x15c,0x132)]=_0x51209f['flipY']??![],this['windField']&&this[_0x440b68(0x87,0xf4)]['setOptions'](_0x51209f);}get['layer'](){return this['canvas'];}get[_0x580342(0x3d0,0x37e)](){return this['_map']['scene']['canvas']['clientWidth'];}get['canvasHeight'](){return this['_map']['scene']['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set['pointerEvents'](_0x17c6c7){function _0x109090(_0xb24dbd,_0x1a5649){return _0x580342(_0xb24dbd,_0x1a5649- -0x29a);}this[_0x109090(0x101,0x114)]=_0x17c6c7;function _0x2ba3de(_0x4e2238,_0x54bfb7){return _0x580342(_0x54bfb7,_0x4e2238- -0x1ee);}if(!this[_0x2ba3de(0xdd,0x76)])return;_0x17c6c7?this['canvas']['style'][_0x2ba3de(0x151,0x12e)]='all':this['canvas']['style']['pointer-events']=_0x109090(0x146,0xe6);}get[_0x5c4e84(0x1ac,0x12c)](){function _0x7bc718(_0x373971,_0xbe14c){return _0x5c4e84(_0x373971- -0x3da,_0xbe14c);}return this['options'][_0x7bc718(-0x22e,-0x271)];}set[_0x580342(0x2d1,0x2c8)](_0x5440af){function _0x51772f(_0x27800a,_0x429d2f){return _0x580342(_0x429d2f,_0x27800a-0x73);}this[_0x439bd3(0x258,0x27a)]['particlesNumber']=_0x5440af;function _0x439bd3(_0x32387b,_0x53e73e){return _0x5c4e84(_0x32387b-0x0,_0x53e73e);}clearTimeout(this['_canrefresh']),this[_0x439bd3(0x28a,0x20d)]=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0xcea81b(_0x253453,_0x22aa7c){return _0x5c4e84(_0x253453- -0x42d,_0x22aa7c);}return this[_0xcea81b(-0x1d5,-0x1e0)]['speedRate'];}set[_0x5c4e84(0x202,0x183)](_0x202c3e){this[_0x3ece73(0x2ba,0x328)]['speedRate']=_0x202c3e;function _0x49a5de(_0x5f4bad,_0x4e0364){return _0x580342(_0x4e0364,_0x5f4bad- -0x2ae);}function _0x3ece73(_0x484cd1,_0x5a8434){return _0x580342(_0x5a8434,_0x484cd1- -0xba);}this['windField']&&(this['windField'][_0x3ece73(0x264,0x20b)]=_0x202c3e);}get['maxAge'](){function _0x41262a(_0x2264d7,_0x3d976d){return _0x580342(_0x2264d7,_0x3d976d-0x185);}return this[_0x41262a(0x49b,0x4f9)]['maxAge'];}set['maxAge'](_0x430066){this['options']['maxAge']=_0x430066;function _0x5335b8(_0x84be5a,_0x5c58ce){return _0x5c4e84(_0x5c58ce- -0x208,_0x84be5a);}function _0x54a25c(_0x945c8a,_0x526e71){return _0x5c4e84(_0x945c8a- -0x125,_0x526e71);}this[_0x5335b8(0xbb,0x79)]&&(this['windField'][_0x5335b8(0x16,0x27)]=_0x430066);}get['data'](){return this['windData'];}set[_0x580342(0x3f2,0x388)](_0x43db70){this['setData'](_0x43db70);}get['rectangle'](){let _0x28da50=this['windData'][_0x590c72(-0x141,-0x1b5)],_0x3a9930=this['windData']['xmax'];function _0x11d272(_0x537b53,_0x5ac059){return _0x5c4e84(_0x5ac059- -0x237,_0x537b53);}let _0x488cbd=this['windData']['ymin'],_0x1ebb97=this[_0x11d272(-0x30,0x4c)][_0x11d272(-0xa8,-0x49)];_0x3a9930>=0x167&&_0x28da50===0x0&&(_0x28da50=-0xb4,_0x3a9930=0xb4);_0x28da50=Math['max'](_0x28da50,-0xb4);function _0x590c72(_0x135800,_0x3cd56e){return _0x580342(_0x3cd56e,_0x135800- -0x450);}return _0x3a9930=Math['min'](_0x3a9930,0xb4),_0x488cbd=Math['max'](_0x488cbd,-0x5a),_0x1ebb97=Math['min'](_0x1ebb97,0x5a),Cesium['Rectangle']['fromDegrees'](_0x28da50,_0x488cbd,_0x3a9930,_0x1ebb97);}['_showHook'](_0x114085){function _0x4fa136(_0x3fd5e3,_0x451c11){return _0x5c4e84(_0x3fd5e3- -0x445,_0x451c11);}function _0x4c9b3b(_0xc45bd5,_0x5d26b0){return _0x5c4e84(_0xc45bd5- -0x3f0,_0x5d26b0);}_0x114085?this[_0x4fa136(-0x1e9,-0x234)]():(this['windData']&&(this['options'][_0x4c9b3b(-0x184,-0x161)]=this[_0x4fa136(-0x1c2,-0x185)]),this['_removedHook']());}['_mountedHook'](){function _0xaba13f(_0x5e81a6,_0x183fe5){return _0x5c4e84(_0x183fe5- -0xe,_0x5e81a6);}function _0x33abf7(_0x29db6e,_0x56e94f){return _0x580342(_0x29db6e,_0x56e94f-0x178);}this[_0x33abf7(0x55a,0x4ec)]['worker']?this[_0x33abf7(0x42d,0x495)]():this[_0xaba13f(0x2db,0x273)]=new CanvasWindField(this['options']);}['_addedHook'](){function _0x2a9fb0(_0x327046,_0x26d2c4){return _0x580342(_0x26d2c4,_0x327046-0xe9);}this[_0xd518ca(0x1c4,0x239)]=this[_0x2a9fb0(0x3cc,0x3db)]();function _0xd518ca(_0x2058fa,_0x270336){return _0x580342(_0x2058fa,_0x270336- -0x92);}const _0x4e2d6e={};_0x4e2d6e[_0xd518ca(0x2b6,0x2b4)]=!![],this[_0xd518ca(0x269,0x2a2)]=this[_0x2a9fb0(0x3b4,0x386)][_0xd518ca(0x1f3,0x250)]('2d',_0x4e2d6e),this['bindEvent'](),this[_0x2a9fb0(0x45d,0x4da)][_0xd518ca(0x2f8,0x2f6)]&&this['setData'](this[_0x2a9fb0(0x45d,0x49f)]['data']);}[_0x580342(0x314,0x351)](){function _0x5cbd99(_0x4917f6,_0x41be45){return _0x580342(_0x4917f6,_0x41be45- -0x509);}this[_0x33991f(-0x106,-0xc5)](),this[_0x5cbd99(-0x1ba,-0x212)]();function _0x33991f(_0x502bd3,_0x36af40){return _0x580342(_0x502bd3,_0x36af40- -0x374);}this['canvas']&&(this[_0x33991f(-0xb5,-0x6b)][_0x5cbd99(-0x21d,-0x204)]['removeChild'](this['canvas']),delete this[_0x5cbd99(-0x2ac,-0x23e)]);}[_0x5c4e84(0x1c7,0x1c0)](){const _0x36c476=mars3d__namespace[_0x36888e(0x549,0x50b)]['create'](_0x13acaa(-0x1b1,-0x167),'mars3d-canvasWind',this[_0x13acaa(-0x11e,-0x129)][_0x36888e(0x3f3,0x45c)]);_0x36c476[_0x36888e(0x4a5,0x4c3)]['position']='absolute',_0x36c476[_0x36888e(0x530,0x4c3)]['top']='0px',_0x36c476[_0x13acaa(-0x72,-0xc6)][_0x13acaa(-0xaa,-0x113)]=_0x13acaa(-0xdc,-0xdb);function _0x13acaa(_0xc67701,_0x1a1d64){return _0x5c4e84(_0x1a1d64- -0x316,_0xc67701);}_0x36c476['style']['width']=this['_map']['scene'][_0x13acaa(-0x131,-0x167)][_0x13acaa(-0x70,-0xde)]+'px',_0x36c476[_0x36888e(0x517,0x4c3)]['height']=this['_map']['scene']['canvas']['clientHeight']+'px',_0x36c476[_0x36888e(0x481,0x4c3)][_0x36888e(0x426,0x41e)]=this['_pointerEvents']?'auto':'none';function _0x36888e(_0xb013ec,_0x1f0956){return _0x5c4e84(_0x1f0956-0x273,_0xb013ec);}return _0x36c476[_0x13acaa(-0x81,-0xc6)][_0x36888e(0x519,0x4b2)]=this['options']['zIndex']??0x9,_0x36c476['width']=this['_map'][_0x13acaa(-0xb6,-0x104)]['canvas'][_0x36888e(0x49b,0x4ab)],_0x36c476[_0x36888e(0x41e,0x45b)]=this[_0x36888e(0x490,0x460)]['scene']['canvas']['clientHeight'],_0x36c476;}[_0x5c4e84(0x1a6,0x1d5)](){function _0x5b5276(_0x7694d2,_0x5ba11c){return _0x5c4e84(_0x7694d2-0x272,_0x5ba11c);}function _0x5cf3c2(_0x338c5b,_0x445e07){return _0x5c4e84(_0x338c5b- -0xc8,_0x445e07);}this['canvas']&&(this['canvas'][_0x5cf3c2(0x188,0x108)][_0x5cf3c2(0x11c,0x169)]=this['_map'][_0x5b5276(0x484,0x4fd)]['canvas'][_0x5b5276(0x4aa,0x459)]+'px',this['canvas']['style'][_0x5b5276(0x45a,0x4c2)]=this['_map']['scene'][_0x5cf3c2(0xe7,0x92)]['clientHeight']+'px',this['canvas']['width']=this['_map'][_0x5b5276(0x484,0x4b4)]['canvas']['clientWidth'],this[_0x5cf3c2(0xe7,0xc5)]['height']=this['_map']['scene'][_0x5b5276(0x421,0x421)][_0x5b5276(0x4bd,0x539)]);}[_0x5c4e84(0x1ae,0x15e)](){function _0x27e796(_0x3d7a2d,_0xabab66){return _0x5c4e84(_0xabab66- -0x1b2,_0x3d7a2d);}const _0xbd4976=this;let _0x3efef1=Date['now']();(function _0x4105a3(){function _0x524e09(_0x39eb21,_0x1a80c1){return _0x5ea3(_0x1a80c1- -0x1d0,_0x39eb21);}function _0x21363e(_0x211067,_0x4677b3){return _0x5ea3(_0x4677b3-0x275,_0x211067);}if(_0xbd4976['isDestroy'])return;_0xbd4976['_animateFrame']=window[_0x524e09(-0x10c,-0xfd)](_0x4105a3);if(_0xbd4976['show']&&_0xbd4976[_0x524e09(-0x7d,-0x5c)]){const _0x29779b=Date[_0x21363e(0x2e0,0x353)](),_0x29c6d8=_0x29779b-_0x3efef1;_0x29c6d8>_0xbd4976[_0x21363e(0x315,0x381)]&&(_0x3efef1=_0x29779b-_0x29c6d8%_0xbd4976['frameTime'],_0xbd4976['update']());}}(),window['addEventListener']('resize',this['resize'][_0x27e796(0x109,0x8f)](this),![]));function _0x413d78(_0x531e20,_0x52b445){return _0x5c4e84(_0x52b445- -0x251,_0x531e20);}this[_0x413d78(0x3f,0x18)]=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType'][_0x27e796(0xcb,0x5c)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x27e796(0x96,0xd2)][_0x27e796(0x8a,0x3)],this[_0x413d78(-0xa9,-0x3e)],this),this[_0x27e796(0x33,0x3b)]['on'](mars3d__namespace['EventType'][_0x27e796(0x5c,0xb)],this['_onMouseUpEvent'],this));}['unbindEvent'](){window['cancelAnimationFrame'](this[_0x1f095d(-0x239,-0x251)]),delete this[_0x9903b9(-0x1e2,-0x185)];function _0x1f095d(_0x4f4044,_0x4b1548){return _0x5c4e84(_0x4b1548- -0x42b,_0x4f4044);}function _0x9903b9(_0x2bf523,_0x385890){return _0x5c4e84(_0x2bf523- -0x3bc,_0x385890);}window['removeEventListener'](_0x1f095d(-0x2f7,-0x285),this[_0x1f095d(-0x2cb,-0x285)]),this[_0x9903b9(-0x164,-0x1d0)][_0x9903b9(-0x1ad,-0x15d)]&&(this['_map']['off'](mars3d__namespace[_0x9903b9(-0x138,-0x18b)]['wheel'],this[_0x9903b9(-0x152,-0xf1)],this),this['_map']['off'](mars3d__namespace[_0x9903b9(-0x138,-0x156)][_0x9903b9(-0x207,-0x20b)],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace[_0x9903b9(-0x138,-0x16b)]['mouseUp'],this['_onMouseUpEvent'],this),this['_map'][_0x1f095d(-0x256,-0x1e5)](mars3d__namespace[_0x1f095d(-0x127,-0x1a7)]['mouseMove'],this[_0x9903b9(-0x1ab,-0x1f5)],this));}[_0x5c4e84(0x26a,0x2e0)](_0x20a55c){function _0x23928c(_0x80f4dd,_0x72c678){return _0x5c4e84(_0x72c678- -0x2d0,_0x80f4dd);}clearTimeout(this[_0x11f735(0x2ea,0x297)]);function _0x11f735(_0x11f3d1,_0x4d117a){return _0x5c4e84(_0x11f3d1-0x104,_0x4d117a);}if(!this['show']||!this[_0x23928c(-0x164,-0x121)])return;this[_0x11f735(0x2b3,0x25f)][_0x23928c(-0x92,-0x80)][_0x11f735(0x2c3,0x241)]='hidden',this[_0x23928c(-0x11d,-0xea)]=setTimeout(()=>{function _0x3398e6(_0x4f3fa6,_0x4f2adb){return _0x23928c(_0x4f2adb,_0x4f3fa6- -0x214);}if(!this['show'])return;function _0x5164e5(_0x219cb5,_0x1035ae){return _0x23928c(_0x219cb5,_0x1035ae-0x445);}this[_0x3398e6(-0x2d8,-0x326)](),this['canvas'][_0x3398e6(-0x294,-0x2ed)][_0x3398e6(-0x325,-0x304)]='visible';},0xc8);}['_onMouseDownEvent'](_0x1a3a98){this['mouse_down']=!![],this[_0xfaa4da(0xa0,0x11f)][_0x4a244e(-0x26a,-0x23c)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0xfaa4da(_0x54172e,_0x1c3d00){return _0x5c4e84(_0x54172e- -0x14d,_0x1c3d00);}function _0x4a244e(_0x31c7db,_0x219850){return _0x580342(_0x31c7db,_0x219850- -0x59e);}this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this[_0xfaa4da(0xc4,0x11d)],this);}['_onMouseMoveEvent'](_0x5e78f0){function _0x1a7caa(_0x52cbf6,_0x171947){return _0x580342(_0x171947,_0x52cbf6- -0x517);}function _0x29bfad(_0x5be41a,_0x853d7){return _0x580342(_0x853d7,_0x5be41a- -0xd6);}if(!this['show']||!this['canvas'])return;this['mouse_down']&&(this[_0x1a7caa(-0x24c,-0x27e)][_0x29bfad(0x296,0x290)]['visibility']='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x10c5d7){if(!this[_0x19f45c(0x2e5,0x292)]||!this['canvas'])return;this[_0x4b2f09(0x468,0x462)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this['mouse_move']&&this['redraw']();this['canvas'][_0x4b2f09(0x504,0x4c5)][_0x4b2f09(0x436,0x434)]='visible',this[_0x4b2f09(0x4c9,0x4de)]=![];function _0x19f45c(_0x10403a,_0x5544aa){return _0x580342(_0x10403a,_0x5544aa- -0x22);}function _0x4b2f09(_0x4573b9,_0x38bd48){return _0x580342(_0x4573b9,_0x38bd48-0x159);}this[_0x4b2f09(0x42f,0x411)]=![];}['setData'](_0x3e05e3){function _0x51222a(_0x525f3a,_0x328e6b){return _0x5c4e84(_0x328e6b-0x8f,_0x525f3a);}this[_0xb8b5c9(0x342,0x382)]();function _0xb8b5c9(_0x3fb7f4,_0x40d6cc){return _0x580342(_0x3fb7f4,_0x40d6cc-0xd3);}this[_0x51222a(0x316,0x312)]=_0x3e05e3,this['windField']['setDate'](_0x3e05e3),this[_0xb8b5c9(0x405,0x3fb)]();}['redraw'](){function _0x38411b(_0x11a24a,_0x4e1dc1){return _0x5c4e84(_0x4e1dc1- -0x76,_0x11a24a);}if(!this['show'])return;this[_0x539ba3(0x4f0,0x510)]['setOptions'](this[_0x539ba3(0x4c7,0x4d0)]);function _0x539ba3(_0x5e2d9f,_0x32d359){return _0x580342(_0x32d359,_0x5e2d9f-0x153);}this['update']();}[_0x580342(0x3ca,0x39b)](){if(this[_0x55e383(-0x2bd,-0x2e4)])return;function _0x2830fc(_0x40f4aa,_0x52149c){return _0x580342(_0x52149c,_0x40f4aa- -0x3e2);}this[_0x55e383(-0x2bd,-0x241)]=!![];if(this['worker'])this['windField']['update']();else{const _0x3a3c9f=this['windField'][_0x2830fc(-0x59,-0xa2)]();this['_drawLines'](_0x3a3c9f);}function _0x55e383(_0x56fd81,_0x4573fb){return _0x580342(_0x4573fb,_0x56fd81- -0x56a);}this[_0x2830fc(-0x135,-0x11d)]=![];}['_drawLines'](_0x496424){this[_0x3e88e5(-0x26,-0x3c)]=_0x496424;function _0x2860a2(_0x286db0,_0x1d1d15){return _0x580342(_0x1d1d15,_0x286db0- -0x3a);}this['canvasContext']['globalCompositeOperation']='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this[_0x3e88e5(0x10,0x69)],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']=_0x2860a2(0x2f6,0x325),this[_0x2860a2(0x2fa,0x2b3)]['globalAlpha']=0.9;const _0x1d24cf=this[_0x2860a2(0x2cf,0x254)][_0x3e88e5(-0x40,-0x15)]['mode']!==Cesium['SceneMode']['SCENE3D'];function _0x3e88e5(_0x5e64a4,_0x138eb1){return _0x580342(_0x138eb1,_0x5e64a4- -0x36e);}const _0x2a3a34=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0xbd4d35=0x0,_0x5314f0=_0x496424['length'];_0xbd4d35<_0x5314f0;_0xbd4d35++){const _0x5b772d=_0x496424[_0xbd4d35],_0x4dc4b1=this[_0x2860a2(0x33b,0x35a)](_0x5b772d,_0x5b772d[_0x2860a2(0x369,0x380)],_0x5b772d['lat'],_0x5b772d['alt']),_0x59c661=this[_0x2860a2(0x33b,0x311)](_0x5b772d,_0x5b772d[_0x3e88e5(-0x35,0x40)],_0x5b772d[_0x3e88e5(-0xa0,-0x7a)],_0x5b772d['talt']);if(!_0x4dc4b1||!_0x59c661)continue;if(_0x1d24cf&&Math['abs'](_0x4dc4b1[0x0]-_0x59c661[0x0])>=_0x2a3a34)continue;this[_0x2860a2(0x2fa,0x2a3)][_0x3e88e5(-0xbc,-0xb6)](),this['canvasContext'][_0x2860a2(0x370,0x330)]=this['lineWidth'],this[_0x2860a2(0x2fa,0x2fb)]['strokeStyle']=this[_0x2860a2(0x338,0x2ec)]['getColor'](_0x5b772d[_0x3e88e5(-0x2a,0x11)]),this['canvasContext']['moveTo'](_0x4dc4b1[0x0],_0x4dc4b1[0x1]),this[_0x3e88e5(-0x3a,-0x31)][_0x2860a2(0x2f8,0x2b7)](_0x59c661[0x0],_0x59c661[0x1]),this['canvasContext'][_0x2860a2(0x295,0x26a)]();}else{this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext'][_0x2860a2(0x2ac,0x326)]=this['color'];for(let _0x3ba1cb=0x0,_0x454d4f=_0x496424['length'];_0x3ba1cb<_0x454d4f;_0x3ba1cb++){const _0x120eb9=_0x496424[_0x3ba1cb],_0x1fc042=this['_tomap'](_0x120eb9,_0x120eb9['lng'],_0x120eb9['lat'],_0x120eb9['alt']),_0x2068a5=this['_tomap'](_0x120eb9,_0x120eb9[_0x2860a2(0x2ff,0x2dc)],_0x120eb9[_0x3e88e5(-0xa0,-0x1a)],_0x120eb9[_0x3e88e5(0x30,-0xf)]);if(!_0x1fc042||!_0x2068a5)continue;if(_0x1d24cf&&Math['abs'](_0x1fc042[0x0]-_0x2068a5[0x0])>=_0x2a3a34)continue;this[_0x2860a2(0x2fa,0x36b)][_0x3e88e5(0x48,0xc2)](_0x1fc042[0x0],_0x1fc042[0x1]),this[_0x2860a2(0x2fa,0x2b5)]['lineTo'](_0x2068a5[0x0],_0x2068a5[0x1]);}this['canvasContext']['stroke']();}}[_0x5c4e84(0x259,0x258)](_0x356a96,_0x2e8591,_0x232fd7,_0x4d2793){const _0x223f70=Cesium['Cartesian3']['fromDegrees'](_0x2e8591,_0x232fd7,_0x4d2793??this[_0x2f80f3(-0x24f,-0x2a3)]),_0x2dcb78=this[_0x2f80f3(-0x2d8,-0x2d6)]['scene'];if(_0x2dcb78[_0x5b1c26(0x3cd,0x375)]===Cesium['SceneMode'][_0x2f80f3(-0x26b,-0x255)]){const _0x1816bd=new Cesium[(_0x5b1c26(0x3de,0x3e0))](_0x2dcb78[_0x2f80f3(-0x348,-0x2d7)]['ellipsoid'],_0x2dcb78['camera']['positionWC']),_0x3c0233=_0x1816bd['isPointVisible'](_0x223f70);if(!_0x3c0233)return _0x356a96[_0x5b1c26(0x36b,0x320)]=0x0,null;}function _0x5b1c26(_0x539133,_0x48acab){return _0x580342(_0x48acab,_0x539133-0x2b);}function _0x2f80f3(_0x510c2d,_0x5ca455){return _0x5c4e84(_0x5ca455- -0x4c3,_0x510c2d);}const _0x21d4a2=mars3d__namespace[_0x5b1c26(0x33f,0x396)]['toWindowCoordinates'](this[_0x5b1c26(0x334,0x32b)][_0x5b1c26(0x359,0x2f5)],_0x223f70);return _0x21d4a2?[_0x21d4a2['x'],_0x21d4a2['y']]:null;}[_0x5c4e84(0x193,0x112)](){function _0x48a171(_0xfac33c,_0x35bced){return _0x5c4e84(_0x35bced- -0x84,_0xfac33c);}this['windField'][_0x313708(0xfc,0x142)]();function _0x313708(_0x2407b8,_0x33fcea){return _0x580342(_0x33fcea,_0x2407b8- -0x1b3);}delete this[_0x48a171(0x232,0x1ff)];}[_0x5c4e84(0x201,0x1d7)](){function _0x4bb998(_0x24a928,_0x554b26){return _0x580342(_0x24a928,_0x554b26-0xa9);}this[_0x194924(-0x16d,-0xfc)]=new Worker(this[_0x194924(-0xd5,-0x14c)]['worker']);function _0x194924(_0x4bd8c8,_0x4e32f5){return _0x5c4e84(_0x4bd8c8- -0x32d,_0x4e32f5);}this['worker'][_0x194924(-0xba,-0x63)]=_0x2305d2=>{function _0x4a4260(_0xd0217d,_0x597863){return _0x4bb998(_0x597863,_0xd0217d- -0x240);}this[_0x4a4260(0x1bc,0x1d3)](_0x2305d2['data']['particles']),this['_updateIng2']=![];},this['windField']={'init':_0x14a921=>{const _0x2f536a={};_0x2f536a[_0x1218d0(0x243,0x22e)]='init';function _0x222ec6(_0x16b548,_0x15063f){return _0x4bb998(_0x15063f,_0x16b548- -0x3c0);}_0x2f536a['options']=_0x14a921;function _0x1218d0(_0xe6356d,_0x469ef8){return _0x4bb998(_0x469ef8,_0xe6356d- -0x114);}this[_0x1218d0(0x271,0x277)][_0x1218d0(0x2df,0x267)](_0x2f536a);},'setOptions':_0x3d49e0=>{function _0x372be1(_0x422a62,_0x2678c5){return _0x194924(_0x2678c5-0x59a,_0x422a62);}const _0x14d200={};_0x14d200[_0x372be1(0x38d,0x3ff)]='setOptions';function _0x5781e5(_0x5e3918,_0x567490){return _0x4bb998(_0x5e3918,_0x567490- -0x368);}_0x14d200['options']=_0x3d49e0,this[_0x372be1(0x3ed,0x42d)][_0x5781e5(0x62,0x8b)](_0x14d200);},'setDate':_0x48ab56=>{function _0x2803e2(_0x581dfa,_0x476443){return _0x4bb998(_0x476443,_0x581dfa- -0x5fe);}const _0x210e01={};_0x210e01[_0x36a4de(-0x194,-0x1a5)]=_0x36a4de(-0x190,-0x116);function _0x36a4de(_0x4a786a,_0x1d8751){return _0x194924(_0x1d8751- -0xa,_0x4a786a);}_0x210e01['data']=_0x48ab56,this[_0x2803e2(-0x279,-0x2ba)]['postMessage'](_0x210e01);},'update':()=>{function _0x2bd2a6(_0x98fa78,_0x39247c){return _0x4bb998(_0x98fa78,_0x39247c- -0x570);}if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x30f2af={};_0x30f2af[_0x2bd2a6(-0x25f,-0x219)]='update',this['worker']['postMessage'](_0x30f2af);},'clear':()=>{const _0xd51576={};_0xd51576['type']='clear',this['worker']['postMessage'](_0xd51576);}},this['windField']['init'](this[_0x194924(-0xd5,-0xbd)]);}}mars3d__namespace[_0x5c4e84(0x199,0x18b)]['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer'][_0x580342(0x391,0x31b)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x580342(0x3e7,0x398)]['logInfo'](_0x5c4e84(0x289,0x30d)+version+_0x580342(0x2c6,0x2ac)+buildTime),mars3d__namespace['WindUtil']=WindUtil,exports[_0x5c4e84(0x1fd,0x1c4)]=CanvasWindField,exports[_0x580342(0x379,0x31b)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x5c4e84(0x1cd,0x237)]=WindUtil;const _0x415122={};_0x415122['value']=!![],Object[_0x5c4e84(0x288,0x2c0)](exports,_0x5c4e84(0x23d,0x23b),_0x415122);
|
|
14
|
+
'use strict';(function(_0x364134,_0x42036f){function _0x4f0185(_0x33c86b,_0x12f58c){return _0x1b08(_0x12f58c- -0x271,_0x33c86b);}const _0x43b2da=_0x364134();function _0x5839d4(_0x5f16f6,_0x4d3ddd){return _0x1b08(_0x4d3ddd-0x142,_0x5f16f6);}while(!![]){try{const _0x360f9b=parseInt(_0x4f0185(-0x144,-0x167))/0x1*(-parseInt(_0x5839d4(0x373,0x30c))/0x2)+parseInt(_0x4f0185(-0x147,-0xdc))/0x3+-parseInt(_0x5839d4(0x2fd,0x2f3))/0x4*(parseInt(_0x4f0185(-0xef,-0xfc))/0x5)+parseInt(_0x5839d4(0x32a,0x2d3))/0x6*(parseInt(_0x4f0185(-0xb8,-0xe3))/0x7)+parseInt(_0x4f0185(-0xbe,-0xd5))/0x8*(parseInt(_0x4f0185(-0x119,-0xa6))/0x9)+-parseInt(_0x4f0185(-0x1a5,-0x130))/0xa+-parseInt(_0x5839d4(0x294,0x21f))/0xb*(parseInt(_0x4f0185(-0x108,-0x164))/0xc);if(_0x360f9b===_0x42036f)break;else _0x43b2da['push'](_0x43b2da['shift']());}catch(_0x3d4b6d){_0x43b2da['push'](_0x43b2da['shift']());}}}(_0x2db9,0x1a591));function _interopNamespace(_0x343675){if(_0x343675&&_0x343675[_0x2498be(0x27a,0x2e8)])return _0x343675;var _0x2377e8=Object[_0x4b6697(-0x3d,-0x91)](null);function _0x2498be(_0x494cfe,_0x1397f0){return _0x1b08(_0x1397f0-0x206,_0x494cfe);}_0x343675&&Object[_0x2498be(0x3a6,0x3a3)](_0x343675)['forEach'](function(_0x479dff){function _0x42c7c9(_0x4b1077,_0x25b2d5){return _0x2498be(_0x4b1077,_0x25b2d5-0xab);}function _0xd217a0(_0x4b8494,_0x2a4c85){return _0x2498be(_0x2a4c85,_0x4b8494- -0x41c);}if(_0x479dff!=='default'){var _0x28e5d3=Object[_0x42c7c9(0x4a3,0x484)](_0x343675,_0x479dff);Object[_0x42c7c9(0x3a3,0x390)](_0x2377e8,_0x479dff,_0x28e5d3[_0x42c7c9(0x420,0x45e)]?_0x28e5d3:{'enumerable':!![],'get':function(){return _0x343675[_0x479dff];}});}});function _0x4b6697(_0x57ed76,_0x45cdf1){return _0x1b08(_0x45cdf1- -0x246,_0x57ed76);}return _0x2377e8['default']=_0x343675,_0x2377e8;}var mars3d__namespace=_interopNamespace(mars3d);function _0x308ef9(_0x3bb818,_0xde44ea){return _0x1b08(_0x3bb818- -0x19f,_0xde44ea);}function _0x1b08(_0x20dfe5,_0x5c5d71){_0x20dfe5=_0x20dfe5-0xbf;const _0x2db92a=_0x2db9();let _0x1b081b=_0x2db92a[_0x20dfe5];return _0x1b081b;}const Cesium$2=mars3d__namespace[_0x441fa5(-0xb,-0x6)];function getU(_0x3b612f,_0x41e097){const _0x1d869d=_0x3b612f*Math['cos'](Cesium$2['Math'][_0x1a5fee(-0x196,-0x116)](_0x41e097));function _0x1a5fee(_0x494c4c,_0x472b47){return _0x441fa5(_0x494c4c- -0x14a,_0x472b47);}return _0x1d869d;}function getV(_0x4fbebe,_0x227e06){function _0x4354db(_0x582c4b,_0x2669c4){return _0x441fa5(_0x2669c4-0x494,_0x582c4b);}const _0x5ab305=_0x4fbebe*Math[_0x4354db(0x524,0x51c)](Cesium$2['Math']['toRadians'](_0x227e06));return _0x5ab305;}function _0x2db9(){const _0x204556=['ymax','number','2026-07-08\x2013:18','tlat','setOptions','componentsPerAttribute','particlesTextures','createRenderingFramebuffers','currentParticlesPosition','BaseLayer','Cesium','particlesNumber','IDENTITY','destroy','frameRateAdjustment','mouse_move','1580810yMyasK','_onMapWhellEvent','position','mars3d-canvasWind','mouseUp','blendFuncSource','pixelSize','context','style','UNSIGNED_INT','attributeLocations','sources','particleSystem','vmax','Math','blendFuncDestination','_addedHook','canvasContext','isDestroy','bufferUsage','removeEventListener','alt','speedRate','xmin','addEventListener','primitiveType','applyViewerParameters','canvas','framebuffers','SCENE3D','createComputingPrimitives','dropRateBump','Unknown\x20command\x20type','visibility','vdata','framebuffer','_onMouseDownEvent','cols','umax','north','east','south','lastFramesPerSecond','getSegmentDrawFragmentShader','dropRate','mode','quietPeriod','talt','wheel','createParticlesTextures','sqrt','magnificationFilter','38035uvzAsp','commandToExecute','updateViewerParameters','modelMatrix','EventType','_onMouseMoveEvent','_speedRate','zIndex','globe','pixelFormat','fixedHeight','length','xmax','displayRange','updatePosition','_removedHook','call','particlesSpeed','_onMouseUpEvent','getUpdatePositionShader','pointerEvents','latRange','viewerParameters','geometry','LayerUtil','455469tSVxfk','layer','getUVByPoint','18GEBfbm','uniformMap','top','segmentsColor','386337FGrOez','__proto__','frameRate','resize','floor','windTextures','UNSIGNED_BYTE','8mUbMUk','keys','reCreateWindTextures','grid','shaderProgram','data','fill','processWindData','onParticlesTextureSizeChange','type','atan2','original','_randomParticle','moveTo','clear','useViewerBounds','Draw','get','rows','lat','getDefaultRenderState','8NpssVN','drawingBufferWidth','worker','age','create','RGBA','previousParticlesPosition','isDestroyed','scene','west','rawRenderState','frameState.commandList\x20is\x20undefined','segments','unbindEvent','colorTextures','changeOptions','LINEAR','outputTexture','show','nextParticlesPosition','max','none','getCalculateSpeedShader','color','_tomap','196372OlSxbQ','1553103pfuyRa','createCommand','mouseHidden','sin','dynamic','getPrimitives','min','FUNC_ADD','getOwnPropertyDescriptor','maxAge','_calc_speedRate','wrapT','requestAnimationFrame','latitude','minificationFilter','FLOAT','getV','pixelDatatype','speed','getRandomLatLng','hidden','NEAREST','computing','fromCache','postProcessingPosition','isDynamic','#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','windField','tlng','lng','colors','reverse','clientWidth','_drawLines','all','frameRateMonitor','Cartesian2','changed','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','ellipsoid','values','cartesianToCartographic','left','wind','_animateFrame','208549dKnDVI','stringify','defineProperty','clearCommand','windData','__esModule','blue','vertexShaderSource','flipY','primitives','PointTrans','SceneMode','bind','_mountedHook','lineLength','particlesTextureSize','_calcUV','calculateSpeed','width','bounds','particles','wrapS','normal','ymin','ColorRamp','canvasWind','renderState','options','_maxAge','toRadians','morphComplete','_updateIng2','0px','vertexArray','STATIC_DRAW','redraw','createRenderingTextures','getU','blending','isInExtent','stroke','getUVByXY','array','createPrimitives','owner','2XmapSK','flatMap','postMessage','12TvwOxp','container','height','auto','commandType','rendering','cancelAnimationFrame','onColorTableChange','requestRender','lineWidth','preExecute','drawingBufferHeight','strokeStyle','forEach','CanvasWindLayer','clientHeight','_colorRamp','steps','camera','initFrameRate','canvasHeight','push','colorTable','depthTest','mouseDown','createWindTextures','_updateIng','enabled','hasOwnProperty','fragmentShaderSource','createColorTableTexture','_setOptionsHook','off','pass','_map','warn'];_0x2db9=function(){return _0x204556;};return _0x2db9();}function getSpeed(_0xf78802,_0x154604){function _0x44457f(_0x956f79,_0xce832d){return _0x441fa5(_0xce832d- -0x266,_0x956f79);}const _0x19f3eb=Math[_0x44457f(-0x2c6,-0x239)](Math['pow'](_0xf78802,0x2)+Math['pow'](_0x154604,0x2));return _0x19f3eb;}function getDirection(_0x26d9cf,_0x299be5){let _0x3cd420=Cesium$2[_0x333ee9(0x73,0x4c)]['toDegrees'](Math[_0x333ee9(0xf1,0xa3)](_0x299be5,_0x26d9cf));_0x3cd420+=_0x3cd420<0x0?0x168:0x0;function _0x49a791(_0x2b0e8d,_0x900b79){return _0x441fa5(_0x2b0e8d-0x1ea,_0x900b79);}function _0x333ee9(_0x5b80d9,_0x3bffb0){return _0x441fa5(_0x3bffb0-0x43,_0x5b80d9);}return _0x3cd420;}const _0x247575={};_0x247575[_0x308ef9(-0x9,0x7e)]=null,_0x247575[_0x441fa5(-0x44,-0x92)]=getU,_0x247575[_0x441fa5(-0x86,-0xfd)]=getV,_0x247575['getSpeed']=getSpeed,_0x247575['getDirection']=getDirection;var WindUtil=_0x247575;const version='3.11.5',buildTime=_0x441fa5(-0x13,0x30);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=_0x308ef9(-0xd5,-0x70);const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x308ef9(-0x64,-0x7e)];class ShaderManager{static['getCalculateSpeedShader'](){const _0xfb8abe={};function _0x1f9aae(_0x4cdf38,_0x3886a1){return _0x308ef9(_0x4cdf38-0x332,_0x3886a1);}return _0xfb8abe[_0x1f9aae(0x2df,0x337)]=[calculateSpeedShader],new ShaderSource$1(_0xfb8abe);}static[_0x441fa5(0x42,-0x21)](){const _0x12cc0e={};return _0x12cc0e['sources']=[updatePositionShader],new ShaderSource$1(_0x12cc0e);}static['getSegmentDrawVertexShader'](){function _0x34ec0c(_0x15a567,_0x427800){return _0x308ef9(_0x15a567-0x42,_0x427800);}const _0x2fe26c={};return _0x2fe26c[_0x34ec0c(-0x11,0x47)]=[renderParticlesVertexShader],new ShaderSource$1(_0x2fe26c);}static['getSegmentDrawFragmentShader'](){function _0x20064c(_0x140e22,_0x7e6532){return _0x308ef9(_0x7e6532-0x57d,_0x140e22);}const _0x1cda20={};return _0x1cda20[_0x20064c(0x4d1,0x52a)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x1cda20);}static['getPostProcessingPositionShader'](){const _0x4834de={};function _0x414a9b(_0x19464c,_0x18e08f){return _0x308ef9(_0x18e08f-0x3d2,_0x19464c);}return _0x4834de[_0x414a9b(0x341,0x37f)]=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x4834de);}}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[_0x308ef9(-0x64,-0x42)];class CustomPrimitive{constructor(_0x1fbe8c){this[_0x2d59ae(0x3b0,0x39b)]=_0x1fbe8c[_0x2d59ae(0x3b0,0x439)],this['geometry']=_0x1fbe8c[_0x2e9cce(0x4f0,0x49c)],this['attributeLocations']=_0x1fbe8c['attributeLocations'],this[_0x2e9cce(0x4be,0x4db)]=_0x1fbe8c['primitiveType'],this['uniformMap']=_0x1fbe8c['uniformMap']||{},this[_0x2e9cce(0x448,0x3ff)]=_0x1fbe8c[_0x2e9cce(0x448,0x444)],this[_0x2e9cce(0x48e,0x4a5)]=_0x1fbe8c[_0x2d59ae(0x3c9,0x443)];function _0x2e9cce(_0xd34560,_0xbc6c11){return _0x441fa5(_0xd34560-0x4aa,_0xbc6c11);}function _0x2d59ae(_0x3376e5,_0x1aded2){return _0x308ef9(_0x3376e5-0x43e,_0x1aded2);}this['rawRenderState']=_0x1fbe8c['rawRenderState'],this['framebuffer']=_0x1fbe8c['framebuffer'],this[_0x2d59ae(0x461,0x498)]=_0x1fbe8c['outputTexture'],this['autoClear']=_0x1fbe8c['autoClear']??![],this['preExecute']=_0x1fbe8c['preExecute'],this[_0x2d59ae(0x462,0x412)]=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this[_0x2d59ae(0x368,0x381)]=_0x1fbe8c['isDynamic']??(()=>!![]),this['autoClear']&&(this[_0x2d59ae(0x37f,0x386)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x2d59ae(0x403,0x3e0)],'pass':Pass$1['OPAQUE']}));}[_0x308ef9(0x2d,0x9c)](_0x43c438){function _0xc8b519(_0x1579de,_0x31d635){return _0x308ef9(_0x31d635- -0x1a0,_0x1579de);}function _0x2bf702(_0x32837d,_0x7e2a6){return _0x308ef9(_0x7e2a6-0xa7,_0x32837d);}if(this['commandType']===_0x2bf702(0x102,0xb4)){const _0x4fadb7={};_0x4fadb7[_0xc8b519(-0x26d,-0x1f7)]=_0x43c438,_0x4fadb7[_0xc8b519(-0x1b2,-0x1b3)]=this['geometry'],_0x4fadb7['attributeLocations']=this['attributeLocations'],_0x4fadb7[_0xc8b519(-0x201,-0x1eb)]=BufferUsage$1['STATIC_DRAW'];const _0x5aff0a=VertexArray$1['fromGeometry'](_0x4fadb7),_0x637b01={};_0x637b01['context']=_0x43c438,_0x637b01['vertexShaderSource']=this[_0x2bf702(-0x8c,-0x14)],_0x637b01[_0xc8b519(-0x19f,-0x215)]=this['fragmentShaderSource'],_0x637b01['attributeLocations']=this[_0x2bf702(-0xe,0x53)];const _0x20355c=ShaderProgram[_0x2bf702(-0x13,-0x31)](_0x637b01),_0x18c3e8=RenderState['fromCache'](this[_0xc8b519(-0x1df,-0x184)]),_0x556d8b={};return _0x556d8b[_0x2bf702(-0x3,0x11)]=this,_0x556d8b[_0x2bf702(-0x37,0x6)]=_0x5aff0a,_0x556d8b[_0x2bf702(0x4d,0x62)]=this['primitiveType'],_0x556d8b[_0x2bf702(0xa1,0x80)]=Matrix4[_0x2bf702(-0x2,0x45)],_0x556d8b[_0xc8b519(-0x26f,-0x248)]=_0x18c3e8,_0x556d8b['shaderProgram']=_0x20355c,_0x556d8b['framebuffer']=this[_0xc8b519(-0x1a8,-0x1db)],_0x556d8b[_0xc8b519(-0x1ca,-0x1ad)]=this['uniformMap'],_0x556d8b[_0x2bf702(-0x6,0x36)]=Pass$1['OPAQUE'],new DrawCommand(_0x556d8b);}else{if(this['commandType']==='Compute'){const _0x216804={};return _0x216804['owner']=this,_0x216804[_0x2bf702(0x53,0x32)]=this['fragmentShaderSource'],_0x216804['uniformMap']=this['uniformMap'],_0x216804[_0x2bf702(0x13f,0xca)]=this['outputTexture'],_0x216804['persists']=!![],new ComputeCommand(_0x216804);}else throw new Error(_0xc8b519(-0x189,-0x1de));}}['setGeometry'](_0x196944,_0x3944d8){function _0x41fdfc(_0x440730,_0x10074a){return _0x308ef9(_0x10074a- -0xdb,_0x440730);}function _0x35b4ba(_0x3389ff,_0x1b3faf){return _0x308ef9(_0x3389ff-0x256,_0x1b3faf);}this[_0x41fdfc(-0x14d,-0xee)]=_0x3944d8,defined(this[_0x41fdfc(-0x10e,-0x104)])&&(this['commandToExecute'][_0x35b4ba(0x1b5,0x198)]=VertexArray$1['fromGeometry']({'context':_0x196944,'geometry':this['geometry'],'attributeLocations':this[_0x41fdfc(-0x18e,-0x12f)],'bufferUsage':BufferUsage$1[_0x35b4ba(0x1b6,0x12e)]}));}['update'](_0x2233af){if(!this['isDynamic']())return;if(!this['show']||!defined(_0x2233af))return;!defined(this['commandToExecute'])&&(this[_0xde3050(0x484,0x47e)]=this['createCommand'](_0x2233af[_0xde3050(0x3fe,0x450)]));function _0x54e89d(_0x5ce66a,_0x33b541){return _0x308ef9(_0x5ce66a-0x3e1,_0x33b541);}defined(this[_0x54e89d(0x359,0x316)])&&this[_0xde3050(0x421,0x41f)]();function _0xde3050(_0x54eca5,_0x5a31d6){return _0x308ef9(_0x5a31d6-0x4a7,_0x54eca5);}if(!_0x2233af['commandList']){console[_0x54e89d(0x372,0x2ec)](_0xde3050(0x530,0x4c4));return;}defined(this[_0xde3050(0x3c8,0x3e8)])&&_0x2233af['commandList'][_0xde3050(0x44a,0x42a)](this[_0x54e89d(0x322,0x383)]),defined(this['commandToExecute'])&&_0x2233af['commandList'][_0xde3050(0x453,0x42a)](this[_0x54e89d(0x3b8,0x43c)]);}[_0x308ef9(0x19,0x61)](){return![];}['destroy'](){function _0x5034eb(_0x4eac49,_0x3656cc){return _0x308ef9(_0x3656cc- -0x14e,_0x4eac49);}function _0x318f68(_0x12d771,_0x2979ec){return _0x441fa5(_0x2979ec-0x3d0,_0x12d771);}if(defined(this['commandToExecute'])){var _0x2bfccd;(_0x2bfccd=this[_0x318f68(0x48d,0x400)]['shaderProgram'])===null||_0x2bfccd===void 0x0||_0x2bfccd[_0x318f68(0x397,0x3c8)](),this['commandToExecute'][_0x318f68(0x3d7,0x42a)]=undefined;}return destroyObject(this);}}function deepMerge(_0x216580,_0x321122){function _0x5e516e(_0x3b096d,_0x47fcb9){return _0x308ef9(_0x3b096d-0x30a,_0x47fcb9);}if(!_0x216580)return _0x321122;if(!_0x321122)return _0x216580;const _0x5f3108={..._0x321122},_0x3a5248=_0x5f3108;function _0x36103f(_0x2606c1,_0x5326ab){return _0x441fa5(_0x2606c1-0x249,_0x5326ab);}for(const _0x167ce9 in _0x216580){if(Object['prototype'][_0x36103f(0x22c,0x21a)][_0x5e516e(0x2f0,0x2db)](_0x216580,_0x167ce9)){const _0x16b0e6=_0x216580[_0x167ce9],_0xe3966=_0x321122[_0x167ce9];if(Array['isArray'](_0x16b0e6)){_0x3a5248[_0x167ce9]=_0x16b0e6['slice']();continue;}if(_0x16b0e6&&typeof _0x16b0e6==='object'){_0x3a5248[_0x167ce9]=deepMerge(_0x16b0e6,_0xe3966||{});continue;}_0x16b0e6!==undefined&&(_0x3a5248[_0x167ce9]=_0x16b0e6);}}return _0x3a5248;}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(_0x110d46,_0x90a959,_0xd95a1e,_0x16b06c,_0xe5976e){this['context']=_0x110d46;function _0x5e3eed(_0x234e86,_0xd977b3){return _0x308ef9(_0x234e86-0x44b,_0xd977b3);}this[_0x4e2165(-0x2e,0x3b)]=_0xd95a1e;function _0x4e2165(_0x3eb1f7,_0x170236){return _0x308ef9(_0x3eb1f7-0x79,_0x170236);}this['viewerParameters']=_0x16b06c,this['windData']=_0x90a959,this[_0x5e3eed(0x443,0x3dd)]=0x3c,this['frameRateAdjustment']=0x1;const _0x2dc080={};_0x2dc080['scene']=_0xe5976e,_0x2dc080['samplingWindow']=0x1,_0x2dc080[_0x4e2165(0x49,-0x3)]=0x0,this[_0x5e3eed(0x37f,0x311)]=new FrameRateMonitor(_0x2dc080),this[_0x4e2165(-0x6,-0x25)](),this[_0x5e3eed(0x3d2,0x40d)](),this[_0x4e2165(0x4c,0x48)](),this[_0x4e2165(0x39,0x8e)]();}['initFrameRate'](){const _0x39ac70=()=>{function _0x3b4934(_0x2fee84,_0x4ec99d){return _0x1b08(_0x2fee84- -0x226,_0x4ec99d);}function _0x50ab33(_0x1f1483,_0x18350f){return _0x1b08(_0x18350f- -0x72,_0x1f1483);}this['frameRateMonitor'][_0x3b4934(-0xbb,-0xf0)]>0x14&&(this['frameRate']=this['frameRateMonitor'][_0x50ab33(0xc3,0xf9)],this[_0x3b4934(-0xe7,-0x160)]=0x3c/Math[_0x50ab33(0x1df,0x153)](this['frameRate'],0x1));};_0x39ac70();const _0x2b3fbc=setInterval(_0x39ac70,0x3e8),_0xbb4d3b=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x2b3fbc),_0xbb4d3b();};}[_0x308ef9(-0x79,-0x7d)](){function _0x33450f(_0x21a247,_0x26cef7){return _0x308ef9(_0x21a247- -0x34,_0x26cef7);}const _0x4d105f={};_0x4d105f[_0x4c40aa(0x1fa,0x1d8)]=TextureMinificationFilter$1[_0x33450f(-0x12,-0x30)],_0x4d105f['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];function _0x4c40aa(_0x5bf258,_0x178dd1){return _0x441fa5(_0x5bf258-0x167,_0x178dd1);}const _0x28700a={'context':this['context'],'width':this['windData']['width'],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options'][_0x4c40aa(0x106,0x91)]??![],'sampler':new Sampler$1(_0x4d105f)};this[_0x4c40aa(0x1bb,0x13e)]={'U':new Texture$1({..._0x28700a,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x28700a,'source':{'arrayBufferView':new Float32Array(this[_0x33450f(-0xf2,-0x76)]['v'][_0x33450f(-0xcc,-0x46)])}})};}['createParticlesTextures'](){const _0x5f2749={};_0x5f2749['minificationFilter']=TextureMinificationFilter$1[_0x2e6435(-0xac,-0xfd)];function _0x2e6435(_0x252131,_0x385637){return _0x308ef9(_0x252131-0x2e,_0x385637);}_0x5f2749['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];function _0xb5f344(_0x1c82da,_0x4d4c79){return _0x308ef9(_0x4d4c79- -0x5e,_0x1c82da);}const _0x460618={'context':this['context'],'width':this[_0xb5f344(-0xe8,-0x105)][_0xb5f344(-0x157,-0x111)],'height':this[_0x2e6435(-0x79,-0xc7)]['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0x2e6435(0x45,0x12)],'pixelDatatype':PixelDatatype$1[_0x2e6435(-0xb2,-0x8f)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options']['particlesTextureSize']*0x4)[_0x2e6435(0x31,-0x36)](0x0)},'sampler':new Sampler$1(_0x5f2749)};this[_0x2e6435(-0x3a,-0x22)]={'previousParticlesPosition':new Texture$1(_0x460618),'currentParticlesPosition':new Texture$1(_0x460618),'nextParticlesPosition':new Texture$1(_0x460618),'postProcessingPosition':new Texture$1(_0x460618),'particlesSpeed':new Texture$1(_0x460618)};}['destroyParticlesTextures'](){function _0x3e3df6(_0x359431,_0x371c94){return _0x308ef9(_0x371c94-0x10f,_0x359431);}Object['values'](this[_0x3e3df6(0x4d,0xa7)])['forEach'](_0x58ca90=>_0x58ca90['destroy']());}['createComputingPrimitives'](){function _0x43838c(_0x13ae79,_0x284a0f){return _0x441fa5(_0x284a0f- -0x2,_0x13ae79);}function _0x2b6a63(_0x4adf40,_0x453b56){return _0x441fa5(_0x453b56- -0x258,_0x4adf40);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0x2b6a63(-0x25b,-0x204)]['U'],'V':()=>this[_0x43838c(0x9e,0x52)]['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this[_0x2b6a63(-0x32a,-0x2bd)]['u'][_0x2b6a63(-0x1be,-0x1d9)]),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this['windData']['v'][_0x43838c(0xde,0x7d)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this[_0x43838c(-0xa4,-0x67)][_0x43838c(-0xdf,-0x86)]['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x13de5d(_0x4fb69f,_0x34d664){return _0x2b6a63(_0x4fb69f,_0x34d664-0xb1);}function _0x466543(_0x34ac02,_0x97be72){return _0x43838c(_0x97be72,_0x34ac02-0x4be);}return(this[_0x466543(0x501,0x50c)][_0x13de5d(-0x1db,-0x1a6)]+0x32)*this[_0x466543(0x46e,0x499)]['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this[_0x43838c(0x1c,-0x67)]['width'],this[_0x43838c(-0x5,-0x67)]['height']),'minimum':()=>new Cartesian2$1(this['windData'][_0x43838c(-0xae,-0x58)][_0x43838c(0x5e,0x72)],this[_0x2b6a63(-0x2da,-0x2bd)][_0x43838c(-0x79,-0x58)]['south']),'maximum':()=>new Cartesian2$1(this[_0x2b6a63(-0x258,-0x2bd)]['bounds']['east'],this['windData'][_0x43838c(-0x2a,-0x58)][_0x2b6a63(-0x21e,-0x236)])},'fragmentShaderSource':ShaderManager[_0x2b6a63(-0x19e,-0x1d7)](),'outputTexture':this[_0x43838c(-0x50,-0x11)][_0x43838c(0x92,0x3e)],'preExecute':()=>{const _0x3e1aa6=this[_0x6f56ce(-0x186,-0x199)][_0xfbdcb7(0x4ce,0x50b)];this['particlesTextures'][_0x6f56ce(-0x104,-0x119)]=this[_0x6f56ce(-0x11b,-0x199)][_0x6f56ce(-0x180,-0x197)];function _0xfbdcb7(_0x4ca62d,_0x9ccf8e){return _0x2b6a63(_0x4ca62d,_0x9ccf8e-0x6f2);}function _0x6f56ce(_0x5c7acd,_0x531f20){return _0x2b6a63(_0x5c7acd,_0x531f20-0xce);}this['particlesTextures']['currentParticlesPosition']=this['particlesTextures']['postProcessingPosition'],this['particlesTextures'][_0xfbdcb7(0x45d,0x41c)]=_0x3e1aa6,this[_0x6f56ce(-0x190,-0x1ea)][_0x6f56ce(-0x23a,-0x1e2)][_0xfbdcb7(0x4fb,0x4ca)]&&(this['primitives'][_0xfbdcb7(0x3de,0x442)]['commandToExecute']['outputTexture']=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x2b6a63(-0x282,-0x265)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager[_0x43838c(0x57,0x40)](),'outputTexture':this['particlesTextures'][_0x43838c(0x7b,0x7c)],'preExecute':()=>{function _0x485a60(_0x2d7023,_0x3e734c){return _0x2b6a63(_0x2d7023,_0x3e734c-0x588);}function _0x1db9a9(_0x9142b3,_0x245465){return _0x2b6a63(_0x9142b3,_0x245465-0x617);}this[_0x485a60(0x32f,0x2d0)][_0x485a60(0x346,0x36d)][_0x1db9a9(0x37c,0x3ef)]&&(this['primitives']['updatePosition'][_0x1db9a9(0x409,0x3ef)]['outputTexture']=this[_0x1db9a9(0x41e,0x3b0)]['nextParticlesPosition']);},'isDynamic':()=>this[_0x2b6a63(-0x259,-0x2a6)][_0x2b6a63(-0x247,-0x1cf)]}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x43838c(0x77,-0x11)][_0x43838c(0x65,0x7c)],'particlesSpeed':()=>this['particlesTextures'][_0x43838c(0x6d,0x3e)],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this['viewerParameters'][_0x2b6a63(-0x25f,-0x214)],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x2b6a63(-0x338,-0x2ae)][_0x2b6a63(-0x216,-0x1e4)],this[_0x2b6a63(-0x2ea,-0x2bd)][_0x43838c(-0x53,-0x58)][_0x2b6a63(-0x26e,-0x235)]),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds'][_0x2b6a63(-0x2a7,-0x234)],this[_0x2b6a63(-0x23a,-0x2bd)]['bounds'][_0x2b6a63(-0x229,-0x236)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this['options'][_0x43838c(-0x20,0x18)],'useViewerBounds':()=>this[_0x43838c(-0x98,-0x50)][_0x43838c(-0x11,0x63)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures'][_0x43838c(-0x39,-0x80)],'preExecute':()=>{function _0x2c17dc(_0x5ede1b,_0x855751){return _0x43838c(_0x5ede1b,_0x855751- -0xff);}function _0x5dd20b(_0x216f6c,_0x15163b){return _0x2b6a63(_0x216f6c,_0x15163b-0x3da);}this[_0x2c17dc(-0xe0,-0x161)]['postProcessingPosition']['commandToExecute']&&(this['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=this['particlesTextures'][_0x5dd20b(0xf0,0x104)]);},'isDynamic':()=>this['options']['dynamic']})};}['reCreateWindTextures'](){function _0x533ac2(_0x5d2b0b,_0x5f29b2){return _0x308ef9(_0x5d2b0b-0x49a,_0x5f29b2);}this['windTextures']['U']['destroy'](),this['windTextures']['V'][_0x533ac2(0x439,0x4bc)](),this['createWindTextures']();}['updateWindData'](_0x38bc57){function _0xe7b4ed(_0x55aaea,_0x4d0172){return _0x441fa5(_0x55aaea- -0x82,_0x4d0172);}this[_0xe7b4ed(-0xe7,-0x158)]=_0x38bc57,this['reCreateWindTextures']();}['updateOptions'](_0x4d9a51){function _0x589c77(_0xbceaa1,_0xc5e0ef){return _0x441fa5(_0xc5e0ef-0x284,_0xbceaa1);}function _0x3291d7(_0x420cd5,_0x5651a0){return _0x308ef9(_0x5651a0-0x19f,_0x420cd5);}const _0x1873d0=_0x4d9a51['flipY']!==undefined&&_0x4d9a51['flipY']!==this[_0x589c77(0x2a0,0x236)][_0x589c77(0x28c,0x223)];this['options']=deepMerge(_0x4d9a51,this[_0x589c77(0x22a,0x236)]),_0x1873d0&&this[_0x3291d7(0x22c,0x19e)]();}[_0x441fa5(0x5d,-0x5)](_0x3e6a29){const {array:_0x3c8f1b}=_0x3e6a29;let {min:_0x443da8,max:_0x95f1d0}=_0x3e6a29;const _0x402b44=new Float32Array(_0x3c8f1b[_0x49ad96(-0x214,-0x1e7)]);_0x443da8===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x443da8=Math['min'](..._0x3c8f1b));function _0x49ad96(_0x1ce9de,_0x4a35c0){return _0x441fa5(_0x4a35c0- -0x221,_0x1ce9de);}_0x95f1d0===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x95f1d0=Math['max'](..._0x3c8f1b));const _0x889bd1=Math['max'](Math['abs'](_0x443da8),Math['abs'](_0x95f1d0));for(let _0xa91af7=0x0;_0xa91af7<_0x3c8f1b['length'];_0xa91af7++){const _0x1290f9=_0x3c8f1b[_0xa91af7]/_0x889bd1;_0x402b44[_0xa91af7]=_0x1290f9;}return _0x402b44;}['destroy'](){function _0xd55257(_0x3960e8,_0x515feb){return _0x441fa5(_0x3960e8-0x3e,_0x515feb);}Object['values'](this[_0xd55257(0x92,0x97)])[_0x393d7c(-0x145,-0x1cd)](_0x38ff3e=>_0x38ff3e['destroy']());function _0x393d7c(_0x4bf7f2,_0x7e3e67){return _0x441fa5(_0x7e3e67- -0x1a1,_0x4bf7f2);}Object[_0x393d7c(-0x258,-0x20f)](this['particlesTextures'])['forEach'](_0x18e7ee=>_0x18e7ee['destroy']()),Object['values'](this[_0xd55257(-0x22,-0x9e)])['forEach'](_0x7a6c5d=>_0x7a6c5d[_0x393d7c(-0x1a6,-0x1a9)]()),this['frameRateMonitor'][_0xd55257(0x36,0x89)]();}}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(_0x3c0fac,_0x4dc253,_0x6c096b,_0x3b9f7c){function _0x4b57f4(_0x50906d,_0xd67d96){return _0x441fa5(_0xd67d96-0x451,_0x50906d);}this['context']=_0x3c0fac,this[_0x5105d8(0x34b,0x365)]=_0x4dc253,this['viewerParameters']=_0x6c096b,this['computing']=_0x3b9f7c;(typeof this[_0x4b57f4(0x3f8,0x403)]['particlesTextureSize']!==_0x4b57f4(0x3bb,0x43d)||this[_0x4b57f4(0x434,0x403)]['particlesTextureSize']<=0x0)&&(console['error'](_0x4b57f4(0x3f9,0x3e1)),this[_0x4b57f4(0x3dd,0x403)]['particlesTextureSize']=0x100);this['colorTable']=this['createColorTableTexture']();function _0x5105d8(_0xae42a5,_0xa7adda){return _0x441fa5(_0xa7adda-0x3b3,_0xae42a5);}this['textures']=this[_0x5105d8(0x358,0x36e)](),this['framebuffers']=this[_0x5105d8(0x3e1,0x3a5)](),this['primitives']=this[_0x4b57f4(0x41c,0x413)]();}['createRenderingTextures'](){const _0x2efb5b={};_0x2efb5b['context']=this['context'],_0x2efb5b[_0x46e6c5(0x13b,0x197)]=this['context']['drawingBufferWidth'],_0x2efb5b['height']=this[_0x46e6c5(0x180,0x1f0)]['drawingBufferHeight'],_0x2efb5b['pixelFormat']=PixelFormat[_0x46e6c5(0x2d4,0x25e)],_0x2efb5b[_0x46e6c5(0xe4,0x169)]=PixelDatatype[_0x1e6196(0x20d,0x194)];const _0x226179=_0x2efb5b;function _0x46e6c5(_0x1d8c65,_0x2cf7b0){return _0x441fa5(_0x2cf7b0-0x1ee,_0x1d8c65);}const _0x4a04bb={};_0x4a04bb['context']=this[_0x46e6c5(0x1b3,0x1f0)];function _0x1e6196(_0x2e6536,_0x58e87b){return _0x308ef9(_0x2e6536-0x211,_0x58e87b);}_0x4a04bb['width']=this['context']['drawingBufferWidth'],_0x4a04bb[_0x46e6c5(0x1ee,0x1b7)]=this[_0x46e6c5(0x1ae,0x1f0)]['drawingBufferHeight'],_0x4a04bb[_0x46e6c5(0x1de,0x226)]=PixelFormat['DEPTH_COMPONENT'],_0x4a04bb['pixelDatatype']=PixelDatatype[_0x46e6c5(0x17d,0x1f2)];const _0x373658=_0x4a04bb;return{'segmentsColor':new Texture(_0x226179),'segmentsDepth':new Texture(_0x373658)};}['createRenderingFramebuffers'](){function _0x1f35e6(_0x413f92,_0x2cdc00){return _0x308ef9(_0x413f92-0x2a1,_0x2cdc00);}const _0x432075={};function _0x47fe81(_0x15233c,_0x103e60){return _0x308ef9(_0x15233c- -0x231,_0x103e60);}return _0x432075[_0x1f35e6(0x24a,0x2ab)]=this['context'],_0x432075[_0x47fe81(-0x211,-0x202)]=[this['textures'][_0x1f35e6(0x296,0x27d)]],_0x432075['depthTexture']=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x432075)};}['destoryRenderingFramebuffers'](){function _0x9e1007(_0x3e40de,_0x52985d){return _0x441fa5(_0x52985d-0x411,_0x3e40de);}function _0x17724d(_0x4763d8,_0x809305){return _0x441fa5(_0x4763d8-0x3e1,_0x809305);}Object['values'](this[_0x9e1007(0x471,0x428)])[_0x17724d(0x3b5,0x3a7)](_0x4b3bc0=>{_0x4b3bc0['destroy']();});}[_0x441fa5(-0x1b,-0x14)](){const _0x487d06=new Float32Array(this['options']['colors'][_0x3b79e0(-0x140,-0xf4)](_0x50e9d2=>{const _0x1ca3a5=Color$1['fromCssColorString'](_0x50e9d2);function _0x5777fc(_0x35820c,_0x3b58f6){return _0x3b79e0(_0x3b58f6,_0x35820c- -0x181);}return[_0x1ca3a5['red'],_0x1ca3a5['green'],_0x1ca3a5[_0x5777fc(-0x29d,-0x32b)],_0x1ca3a5['alpha']];})),_0x25df2a={};function _0x3b79e0(_0x37fb76,_0x2a7f76){return _0x308ef9(_0x2a7f76- -0x60,_0x37fb76);}_0x25df2a[_0x1c4039(0x3b4,0x344)]=TextureMinificationFilter['LINEAR'],_0x25df2a[_0x1c4039(0x367,0x2df)]=TextureMagnificationFilter['LINEAR'],_0x25df2a[_0x1c4039(0x2b2,0x25d)]=TextureWrap['CLAMP_TO_EDGE'];function _0x1c4039(_0x446bba,_0x377913){return _0x308ef9(_0x377913-0x30a,_0x446bba);}return _0x25df2a[_0x1c4039(0x309,0x341)]=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this[_0x3b79e0(-0x134,-0xb7)],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x25df2a),'source':{'width':this['options'][_0x1c4039(0x2b8,0x239)][_0x1c4039(0x369,0x2eb)],'height':0x1,'arrayBufferView':_0x487d06}});}['createSegmentsGeometry'](){const _0x1555ad=0x4,_0x4c05f3=this[_0x2d58cd(0x3dd,0x448)]['particlesTextureSize'];let _0x4dce1d=[];for(let _0x499cf1=0x0;_0x499cf1<_0x4c05f3;_0x499cf1++){for(let _0x3854f=0x0;_0x3854f<_0x4c05f3;_0x3854f++){for(let _0x4fb580=0x0;_0x4fb580<_0x1555ad;_0x4fb580++){_0x4dce1d[_0x2d58cd(0x407,0x3e4)](_0x499cf1/_0x4c05f3),_0x4dce1d['push'](_0x3854f/_0x4c05f3);}}}_0x4dce1d=new Float32Array(_0x4dce1d);const _0x28ebc9=this['options'][_0x2d58cd(0x3d1,0x3b9)]**0x2;let _0x405d1f=[];for(let _0x3e2c00=0x0;_0x3e2c00<_0x28ebc9;_0x3e2c00++){_0x405d1f[_0x445267(-0x1d,0x4c)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x405d1f=new Float32Array(_0x405d1f);let _0x555057=[];for(let _0x3b3d0a=0x0,_0x111049=0x0;_0x3b3d0a<_0x28ebc9;_0x3b3d0a++){_0x555057['push'](_0x111049+0x0,_0x111049+0x1,_0x111049+0x2,_0x111049+0x2,_0x111049+0x1,_0x111049+0x3),_0x111049+=_0x1555ad;}function _0x2d58cd(_0x101ff4,_0x11b664){return _0x308ef9(_0x101ff4-0x484,_0x11b664);}_0x555057=new Uint32Array(_0x555057);function _0x445267(_0x3b8174,_0x5836bf){return _0x308ef9(_0x5836bf-0xc9,_0x3b8174);}const _0x49b5cf={};_0x49b5cf['componentDatatype']=ComponentDatatype['FLOAT'],_0x49b5cf['componentsPerAttribute']=0x2,_0x49b5cf[_0x2d58cd(0x3bd,0x407)]=_0x4dce1d;const _0x1e4d22={};_0x1e4d22['componentDatatype']=ComponentDatatype[_0x445267(-0x72,-0x17)],_0x1e4d22[_0x2d58cd(0x41b,0x457)]=0x3,_0x1e4d22['values']=_0x405d1f;const _0x1c55d6=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x49b5cf),'normal':new GeometryAttribute(_0x1e4d22)}),'indices':_0x555057});return _0x1c55d6;}['createRawRenderState'](_0x5ef333){function _0x5bb59c(_0x4b21e1,_0x3a15dd){return _0x441fa5(_0x3a15dd-0x203,_0x4b21e1);}const _0x2f8e1b={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x5ef333};return Appearance[_0x5bb59c(0x2a6,0x26d)](!![],![],_0x2f8e1b);}['createPrimitives'](){const _0x12d1cb={};_0x12d1cb['st']=0x0,_0x12d1cb[_0x4a51cf(0x2b8,0x267)]=0x1;const _0x1c941a={};_0x1c941a[_0x32a3dc(0x2b0,0x329)]=!![];const _0x1650d5={};_0x1650d5[_0x32a3dc(0x2b0,0x2c5)]=!![],_0x1650d5['blendEquation']=WebGLRenderingContext[_0x4a51cf(0x397,0x3ce)],_0x1650d5[_0x4a51cf(0x30b,0x27d)]=WebGLRenderingContext['SRC_ALPHA'],_0x1650d5[_0x32a3dc(0x2d8,0x28d)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];function _0x4a51cf(_0x26dffc,_0x2330bd){return _0x441fa5(_0x26dffc-0x30b,_0x2330bd);}const _0xc4e48c={};_0xc4e48c['viewport']=undefined,_0xc4e48c[_0x32a3dc(0x2ac,0x235)]=_0x1c941a,_0xc4e48c['depthMask']=!![];function _0x32a3dc(_0x4bebfb,_0x40f88a){return _0x441fa5(_0x4bebfb-0x2ce,_0x40f88a);}_0xc4e48c[_0x32a3dc(0x28b,0x24b)]=_0x1650d5;const _0xa86664=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x12d1cb,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this[_0x32a3dc(0x24e,0x257)]['particlesTextures']['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures'][_0x32a3dc(0x2c1,0x250)],'postProcessingPosition':()=>this['computing'][_0x4a51cf(0x2fc,0x2af)]['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{var _0x266b1b,_0x51eb0f;function _0x5ec7aa(_0x375096,_0x530295){return _0x4a51cf(_0x375096- -0x4f2,_0x530295);}const _0x36a562=new Cartesian2(((_0x266b1b=this[_0x5ec7aa(-0x235,-0x261)]['domain'])===null||_0x266b1b===void 0x0?void 0x0:_0x266b1b['min'])??this['computing']['windData']['speed']['min'],((_0x51eb0f=this['options']['domain'])===null||_0x51eb0f===void 0x0?void 0x0:_0x51eb0f['max'])??this['computing'][_0x208d58(0x1f6,0x1a9)]['speed']['max']);function _0x208d58(_0x36e626,_0x34299c){return _0x32a3dc(_0x36e626- -0x73,_0x34299c);}return _0x36a562;},'displayRange':()=>{var _0xf62507,_0x5e4adc;function _0x422c2d(_0x481c01,_0xde149){return _0x4a51cf(_0x481c01-0x21c,_0xde149);}const _0x68da1b=new Cartesian2(((_0xf62507=this['options'][_0xf106a3(0x4bc,0x48a)])===null||_0xf62507===void 0x0?void 0x0:_0xf62507[_0x422c2d(0x5b2,0x5ef)])??this[_0xf106a3(0x400,0x403)][_0xf106a3(0x41b,0x49e)][_0x422c2d(0x4a3,0x490)][_0xf106a3(0x50b,0x58d)],((_0x5e4adc=this['options']['displayRange'])===null||_0x5e4adc===void 0x0?void 0x0:_0x5e4adc['max'])??this['computing']['windData'][_0xf106a3(0x3fc,0x393)]['max']);function _0xf106a3(_0x1b42ed,_0x322096){return _0x4a51cf(_0x1b42ed-0x175,_0x322096);}return _0x68da1b;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this[_0x32a3dc(0x2d0,0x2a9)][_0x32a3dc(0x33a,0x34f)]/this[_0x4a51cf(0x30d,0x2cc)][_0x4a51cf(0x2dd,0x2f1)],'pixelSize':()=>this[_0x4a51cf(0x350,0x2f4)]['pixelSize'],'lineWidth':()=>{const _0x41942e={};function _0x166e30(_0x4bed92,_0x1e194d){return _0x32a3dc(_0x1e194d- -0x177,_0x4bed92);}_0x41942e[_0x104a48(0x4b3,0x45f)]=0x1,_0x41942e[_0x104a48(0x4a7,0x430)]=0x2;function _0x104a48(_0x477662,_0x55d14d){return _0x4a51cf(_0x477662-0x11d,_0x55d14d);}const _0x17bd8a=this['options']['lineWidth']||_0x41942e;return new Cartesian2(_0x17bd8a['min'],_0x17bd8a['max']);},'lineLength':()=>{const _0x2d6546={};_0x2d6546['min']=0x14,_0x2d6546[_0x35bf03(-0x17d,-0x194)]=0x64;function _0x35bf03(_0x129e44,_0x2a5416){return _0x4a51cf(_0x2a5416- -0x51e,_0x129e44);}function _0x1009ef(_0x507a20,_0x2706a2){return _0x32a3dc(_0x507a20- -0x2ac,_0x2706a2);}const _0xa36dc5=this[_0x1009ef(-0x2c,-0x6c)][_0x35bf03(-0x2c3,-0x26e)]||_0x2d6546;return new Cartesian2(_0xa36dc5['min'],_0xa36dc5[_0x35bf03(-0x1d6,-0x194)]);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x32a3dc(0x2e6,0x298)],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x32a3dc(0x2f4,0x2bf)](),'rawRenderState':this['createRawRenderState'](_0xc4e48c)}),_0x5e2186={};return _0x5e2186[_0x32a3dc(0x345,0x303)]=_0xa86664,_0x5e2186;}[_0x441fa5(0x5e,-0x14)](){const _0x5c7a90=this['createSegmentsGeometry']();this[_0x584bba(-0x232,-0x1bd)]['segments']['geometry']=_0x5c7a90;const _0x36d8fa={};_0x36d8fa[_0x584bba(-0x1d0,-0x24f)]=this['context'],_0x36d8fa[_0x584bba(-0x18c,-0x134)]=_0x5c7a90,_0x36d8fa['attributeLocations']=this[_0x584bba(-0x232,-0x1be)][_0x584bba(-0x15b,-0x14c)][_0x4a0813(-0x123,-0x196)];function _0x4a0813(_0x1d9349,_0x3bd262){return _0x308ef9(_0x3bd262- -0x142,_0x1d9349);}function _0x584bba(_0x4090ce,_0xe1b198){return _0x441fa5(_0x4090ce- -0x1d2,_0xe1b198);}_0x36d8fa[_0x584bba(-0x1c4,-0x19c)]=BufferUsage['STATIC_DRAW'];const _0x13bf44=VertexArray['fromGeometry'](_0x36d8fa);this[_0x584bba(-0x232,-0x1a6)][_0x584bba(-0x15b,-0x1af)]['commandToExecute']&&(this['primitives']['segments'][_0x584bba(-0x1a2,-0x152)]['vertexArray']=_0x13bf44);}['onColorTableChange'](){this['colorTable']['destroy'](),this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x2de12a){const _0x93a9ad=_0x2de12a['colors']&&JSON[_0x311dd3(0x70,0x86)](_0x2de12a['colors'])!==JSON['stringify'](this[_0x4a5bbc(-0x215,-0x247)]['colors']);this[_0x311dd3(0x20,0xa0)]=deepMerge(_0x2de12a,this['options']);function _0x4a5bbc(_0x374c48,_0x19c520){return _0x308ef9(_0x19c520- -0x1a0,_0x374c48);}function _0x311dd3(_0x26b963,_0x457ffb){return _0x308ef9(_0x457ffb-0x147,_0x26b963);}_0x93a9ad&&this[_0x4a5bbc(-0x27d,-0x22b)]();}['destroy'](){function _0x49abf7(_0x1a1ad4,_0x46d9b8){return _0x441fa5(_0x1a1ad4-0x90,_0x46d9b8);}Object[_0x34d130(-0xb,-0x90)](this['framebuffers'])[_0x34d130(0x37,0x6e)](_0x6356e4=>{_0x6356e4['destroy']();});function _0x34d130(_0xf913e7,_0x2f75fe){return _0x308ef9(_0xf913e7-0xbc,_0x2f75fe);}Object['values'](this[_0x49abf7(0x30,0x47)])[_0x49abf7(0x64,0x4e)](_0x24ad9b=>{_0x24ad9b['destroy']();}),this[_0x49abf7(0x6d,0xb2)]['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x308ef9(-0x64,-0xbb)];class WindParticleSystem{constructor(_0x415e28,_0x220792,_0x4586b1,_0x57d85c,_0x37c183){this['context']=_0x415e28;function _0x3f4f83(_0xb99830,_0x50320a){return _0x308ef9(_0xb99830-0x2f,_0x50320a);}this[_0x3f4f83(-0x78,-0xa8)]=_0x4586b1;function _0x7e8c9b(_0x15930e,_0x54ad47){return _0x441fa5(_0x15930e-0x1d9,_0x54ad47);}this[_0x3f4f83(0x1b,0x40)]=_0x57d85c,this['computing']=new WindParticlesComputing(_0x415e28,_0x220792,_0x4586b1,_0x57d85c,_0x37c183),this['rendering']=new WindParticlesRendering(_0x415e28,_0x4586b1,_0x57d85c,this['computing']),this['clearFramebuffers']();}[_0x308ef9(0x31,0x22)](){const _0x478bb4=[this[_0x443417(0xf0,0x96)]['primitives'][_0x1c46f3(-0x1fb,-0x210)],this['computing'][_0x443417(0x110,0xd6)]['updatePosition'],this[_0x443417(0xf0,0xc4)]['primitives'][_0x443417(0xf2,0x145)],this['rendering']['primitives']['segments']];function _0x443417(_0x29cb58,_0x1f0ba0){return _0x308ef9(_0x29cb58-0x1c9,_0x1f0ba0);}function _0x1c46f3(_0x1944b6,_0x3c17d4){return _0x308ef9(_0x1944b6- -0x14a,_0x3c17d4);}return _0x478bb4;}['clearFramebuffers'](){const _0x1413a1=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x20cee8(_0x17046f,_0x396b27){return _0x308ef9(_0x17046f-0x15c,_0x396b27);}function _0x29ab2f(_0xeaa642,_0x102dbe){return _0x441fa5(_0xeaa642-0x3e2,_0x102dbe);}Object[_0x20cee8(0x15a,0x1ba)](this['rendering']['framebuffers'])[_0x20cee8(0xd7,0x93)](_0x1e1602=>{_0x1413a1[_0x5e3e9f(0x4fd,0x510)]=this['rendering']['framebuffers'][_0x1e1602];function _0x5e3e9f(_0x2b9207,_0x13d15f){return _0x29ab2f(_0x2b9207-0xfd,_0x13d15f);}_0x1413a1['execute'](this['context']);});}['changeOptions'](_0x44122d){let _0x322795=![];_0x44122d['particlesTextureSize']&&this[_0x3bc9d8(0x404,0x385)]['particlesTextureSize']!==_0x44122d[_0x3bc9d8(0x318,0x379)]&&(_0x322795=!![]);const _0x4ca73b=deepMerge(_0x44122d,this[_0x47e92d(0x40e,0x3a3)]);if(_0x4ca73b['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x4ca73b;function _0x3bc9d8(_0x5aa665,_0x513aff){return _0x441fa5(_0x513aff-0x3d3,_0x5aa665);}function _0x47e92d(_0x817991,_0x66a353){return _0x441fa5(_0x817991-0x45c,_0x66a353);}this['rendering']['updateOptions'](_0x44122d),this[_0x47e92d(0x3dc,0x37c)]['updateOptions'](_0x44122d),_0x322795&&(this['computing']['destroyParticlesTextures'](),this['computing']['createParticlesTextures'](),this['rendering']['onParticlesTextureSizeChange']());}[_0x441fa5(0x15,0x1e)](_0xeef79){function _0x4c646b(_0x287f50,_0x4d2b03){return _0x308ef9(_0x4d2b03-0x467,_0x287f50);}this['viewerParameters']=_0xeef79;function _0x5d3faf(_0xb3866c,_0x5d0654){return _0x441fa5(_0x5d0654-0x29f,_0xb3866c);}this['computing'][_0x5d3faf(0x330,0x2e4)]=_0xeef79,this[_0x5d3faf(0x1df,0x26b)]['viewerParameters']=_0xeef79;}['destroy'](){function _0x3314d5(_0x220703,_0x351d29){return _0x308ef9(_0x351d29-0x45d,_0x220703);}this[_0x57c73c(-0x6a,-0xea)][_0x3314d5(0x37f,0x3fc)]();function _0x57c73c(_0x467188,_0x401d3a){return _0x441fa5(_0x401d3a- -0x6a,_0x467188);}this['rendering'][_0x57c73c(-0xfe,-0x72)]();}}const Cesium$1=mars3d__namespace[_0x441fa5(-0xb,0x7d)],BaseLayer$1=mars3d__namespace['layer'][_0x308ef9(-0x65,-0xb0)],_0x16ff7c={};_0x16ff7c['min']=0x1,_0x16ff7c['max']=0x2;const _0x281333={};_0x281333['min']=0x14,_0x281333[_0x441fa5(0x7f,0x2b)]=0x64;const _0x349357={};_0x349357['particlesTextureSize']=0x64,_0x349357['fixedHeight']=0x0,_0x349357[_0x308ef9(-0x89,-0xcc)]=_0x16ff7c,_0x349357['lineLength']=_0x281333,_0x349357['speedFactor']=0x1,_0x349357[_0x308ef9(-0x32,-0x32)]=0.003,_0x349357['dropRateBump']=0.001,_0x349357[_0x441fa5(-0x78,-0x1)]=['rgb(206,255,255)'],_0x349357[_0x308ef9(-0xba,-0x134)]=![],_0x349357['dynamic']=!![];const DEF_OPTIONS=_0x349357;class WindLayer extends BaseLayer$1{constructor(_0x3e327a={}){_0x3e327a={...DEF_OPTIONS,..._0x3e327a},super(_0x3e327a),this['_setOptionsHook'](_0x3e327a,_0x3e327a);}get[_0x441fa5(0x49,0x60)](){function _0x43f06b(_0x1a4ff0,_0x41065c){return _0x308ef9(_0x41065c-0x105,_0x1a4ff0);}return this[_0x43f06b(0x70,0x4c)];}get['data'](){return this['options']['data'];}set[_0x441fa5(0x5b,0xce)](_0x1ef1ca){function _0x5eff30(_0x130baf,_0x208bfb){return _0x308ef9(_0x130baf-0x3f6,_0x208bfb);}this[_0x5eff30(0x34f,0x35f)]['data']=_0x1ef1ca,this['setData'](_0x1ef1ca);}get['colors'](){function _0x43e52b(_0x1a3f7e,_0x53864c){return _0x441fa5(_0x53864c-0x24d,_0x1a3f7e);}return this[_0x43e52b(0x1c8,0x1ff)]['colors'];}set[_0x441fa5(-0x78,-0xa1)](_0x563b99){function _0x308d9c(_0x47b96d,_0x4dc3a2){return _0x441fa5(_0x4dc3a2-0x212,_0x47b96d);}this[_0x2bb53f(0x291,0x263)][_0x2bb53f(0x214,0x239)]=_0x563b99;const _0x14ed60={};_0x14ed60[_0x2bb53f(0x29d,0x239)]=_0x563b99;function _0x2bb53f(_0x308046,_0x45a287){return _0x441fa5(_0x45a287-0x2b1,_0x308046);}this[_0x308d9c(0x242,0x1f8)](this[_0x308d9c(0x1f3,0x1c4)],_0x14ed60);}['_showHook'](_0x1aee12){_0x1aee12?this['_addedHook']():this['_removedHook']();}[_0x441fa5(-0x5c,-0x94)](){}[_0x308ef9(-0x4e,-0x92)](){this[_0xfc8bf6(0x8d,0xf4)]=this['_map']['scene'],this[_0x1b013e(0x52,-0x2b)]=this[_0x1b013e(0x6d,-0x1b)]['camera'];function _0x1b013e(_0x431cb9,_0x1004c9){return _0x441fa5(_0x1004c9- -0x4,_0x431cb9);}this['options']['data']&&this['setData'](this[_0x1b013e(-0xdd,-0x52)]['data']);if(!this[_0xfc8bf6(-0x4b,0x17)]||!this['show'])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']};function _0xfc8bf6(_0x5199e9,_0x8be0cb){return _0x308ef9(_0x5199e9-0x73,_0x8be0cb);}this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene'][_0xfc8bf6(0x1c,0x3a)],this['windData'],this['options'],this['viewerParameters'],this[_0x1b013e(0x30,0x6f)]),this[_0x1b013e(-0xe2,-0x64)]=this['particleSystem']['getPrimitives'](),this['primitives']['forEach'](_0x36fb55=>{function _0x12f774(_0x487460,_0x50fc18){return _0xfc8bf6(_0x487460-0x5e,_0x50fc18);}this[_0x12f774(0xeb,0xd6)]['primitives']['add'](_0x36fb55);}),this['camera']['percentageChanged']=0.01,this[_0x1b013e(0xc,-0x2b)][_0x1b013e(-0x2a,-0x75)]['addEventListener'](this[_0xfc8bf6(0x4b,0xb)][_0x1b013e(-0xc5,-0x61)](this)),this['scene']['morphComplete']['addEventListener'](this[_0xfc8bf6(0x4b,0x88)]['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters']['bind'](this));}[_0x308ef9(-0x1b,-0x6a)](){function _0x332b55(_0x570420,_0x48d485){return _0x441fa5(_0x570420- -0x7a,_0x48d485);}this['camera'][_0x332b55(-0xeb,-0x112)]['removeEventListener'](this['updateViewerParameters']['bind'](this));function _0x20a39f(_0x2f53b8,_0x27a1e8){return _0x441fa5(_0x27a1e8- -0x21e,_0x2f53b8);}this['scene'][_0x20a39f(-0x1ee,-0x269)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),window[_0x20a39f(-0x262,-0x20f)](_0x332b55(-0x28,-0x97),this['updateViewerParameters']['bind'](this)),this[_0x332b55(-0xda,-0xeb)]&&(this['primitives'][_0x20a39f(-0x1e0,-0x24a)](_0x3595a4=>{this['scene']['primitives']['remove'](_0x3595a4);}),delete this[_0x332b55(-0xda,-0xf3)]),this['particleSystem']&&(this['particleSystem'][_0x332b55(-0x82,-0x58)](),delete this['particleSystem']);}['setData'](_0x4bd3f4,_0x595051){function _0xcb441e(_0x344090,_0x1a82bb){return _0x441fa5(_0x344090-0x2de,_0x1a82bb);}this['windData']=this[_0xcb441e(0x33b,0x39e)](_0x4bd3f4);function _0xa370e1(_0x39384d,_0x276a56){return _0x441fa5(_0x276a56-0x25d,_0x39384d);}if(_0x595051){this[_0xa370e1(0x2f5,0x29b)](),this['_addedHook']();return;}this[_0xcb441e(0x2e5,0x27a)]?(this['particleSystem']['computing']['updateWindData'](this['windData']),this[_0xcb441e(0x351,0x3bb)][_0xa370e1(0x1fd,0x22c)]()):this['_addedHook']();}[_0x441fa5(-0x1a,0x4d)](_0x2c102b,_0x201215){function _0x5f0d32(_0x89ae4c,_0x20ddc6){return _0x308ef9(_0x89ae4c-0x234,_0x20ddc6);}function _0x3e0f5c(_0x243d00,_0x3ab2a5){return _0x441fa5(_0x243d00- -0x1b8,_0x3ab2a5);}this['particleSystem']&&(this['particleSystem'][_0x3e0f5c(-0x13e,-0x166)](_0x201215),this[_0x3e0f5c(-0x145,-0x118)][_0x5f0d32(0x1aa,0x172)]());}[_0x308ef9(0x4,-0x65)](_0x5a28de){var _0x5a15ca,_0x1d69a5;const _0x35f201={..._0x5a28de};function _0x353e6a(_0x182f12,_0x504b5b){return _0x308ef9(_0x504b5b-0x2b2,_0x182f12);}const _0x552246=_0x35f201;!_0x552246['height']&&_0x552246[_0x353e6a(0x2b9,0x2c1)]&&(_0x552246[_0x353e6a(0x21f,0x222)]=_0x552246['rows']);!_0x552246['width']&&_0x552246['cols']&&(_0x552246[_0x353e6a(0x209,0x202)]=_0x552246['cols']);!_0x552246['bounds']&&(_0x552246[_0x1579af(-0x235,-0x1cb)]={'west':_0x552246['xmin'],'south':_0x552246['ymin'],'east':_0x552246[_0x353e6a(0x290,0x294)],'north':_0x552246['ymax']});function _0x1579af(_0x344779,_0x578920){return _0x308ef9(_0x344779- -0x186,_0x578920);}if(!_0x552246['u']){const _0x29cf49={};_0x29cf49[_0x353e6a(0x24f,0x21a)]=_0x5a28de['udata'],_0x29cf49['min']=_0x5a28de['umin'],_0x29cf49['max']=_0x5a28de[_0x353e6a(0x257,0x27a)],_0x552246['u']=_0x29cf49;}if(!_0x552246['v']){const _0x290983={};_0x290983[_0x1579af(-0x21e,-0x1cd)]=_0x5a28de['vdata'],_0x290983[_0x353e6a(0x358,0x2e4)]=_0x5a28de['vmin'],_0x290983['max']=_0x5a28de[_0x353e6a(0x2cd,0x261)],_0x552246['v']=_0x290983;}if(((_0x5a15ca=_0x552246[_0x353e6a(0x215,0x1d5)])===null||_0x5a15ca===void 0x0?void 0x0:_0x5a15ca[_0x1579af(-0x154,-0xdc)])===undefined||((_0x1d69a5=_0x552246[_0x1579af(-0x263,-0x204)])===null||_0x1d69a5===void 0x0?void 0x0:_0x1d69a5['max'])===undefined||_0x552246[_0x353e6a(0x1c9,0x1d5)]['array']===undefined){const _0x248355={'array':new Float32Array(_0x552246['u']['array'][_0x1579af(-0x1a5,-0x1ed)]),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x5bb62a=0x0;_0x5bb62a<_0x552246['u']['array']['length'];_0x5bb62a++){_0x248355[_0x353e6a(0x1e3,0x21a)][_0x5bb62a]=Math['sqrt'](_0x552246['u']['array'][_0x5bb62a]*_0x552246['u']['array'][_0x5bb62a]+_0x552246['v'][_0x353e6a(0x1f1,0x21a)][_0x5bb62a]*_0x552246['v']['array'][_0x5bb62a]),_0x248355[_0x353e6a(0x1ac,0x21a)][_0x5bb62a]!==0x0&&(_0x248355['min']=Math['min'](_0x248355['min'],_0x248355['array'][_0x5bb62a]),_0x248355['max']=Math[_0x1579af(-0x160,-0x1dd)](_0x248355['max'],_0x248355['array'][_0x5bb62a]));}_0x552246['speed']=_0x248355;}return _0x552246;}[_0x308ef9(-0x28,0x5d)](){var _0x58b0ff;const _0xc7344=this['scene'];if(!_0xc7344)return;const _0x5d269c=_0xc7344[_0x59c49c(0x536,0x563)],_0x2ac4ca={};_0x2ac4ca['x']=0x0,_0x2ac4ca['y']=0x0;function _0x59c49c(_0x473671,_0x565b34){return _0x308ef9(_0x473671-0x579,_0x565b34);}const _0x80b2d9={};_0x80b2d9['x']=0x0,_0x80b2d9['y']=_0x5d269c['clientHeight'];const _0x3e0674={};_0x3e0674['x']=_0x5d269c['clientWidth'],_0x3e0674['y']=0x0;function _0x2c6d6c(_0x276672,_0x52b9a8){return _0x441fa5(_0x276672-0x3ee,_0x52b9a8);}const _0x45bb1e={};_0x45bb1e['x']=_0x5d269c[_0x2c6d6c(0x378,0x389)],_0x45bb1e['y']=_0x5d269c[_0x2c6d6c(0x3c4,0x343)];const _0x5998d0=[_0x2ac4ca,_0x80b2d9,_0x3e0674,_0x45bb1e];let _0x4c4cc7=0xb4,_0x4fca7b=-0xb4,_0x32ecbb=0x5a,_0x2ff3dc=-0x5a,_0x4f7fd2=![];for(const _0x25bd74 of _0x5998d0){const _0x435057=_0xc7344['camera']['pickEllipsoid'](new Cesium$1[(_0x59c49c(0x4ae,0x53b))](_0x25bd74['x'],_0x25bd74['y']),_0xc7344[_0x59c49c(0x557,0x56c)]['ellipsoid']);if(!_0x435057){_0x4f7fd2=!![];break;}const _0x4c9b9e=_0xc7344[_0x59c49c(0x557,0x4e0)][_0x59c49c(0x4b1,0x44b)][_0x2c6d6c(0x381,0x3ac)](_0x435057),_0x4582ca=Cesium$1['Math']['toDegrees'](_0x4c9b9e['longitude']),_0x35d105=Cesium$1['Math']['toDegrees'](_0x4c9b9e[_0x59c49c(0x5b2,0x590)]);_0x4c4cc7=Math['min'](_0x4c4cc7,_0x4582ca),_0x4fca7b=Math[_0x59c49c(0x59f,0x52f)](_0x4fca7b,_0x4582ca),_0x32ecbb=Math['min'](_0x32ecbb,_0x35d105),_0x2ff3dc=Math[_0x59c49c(0x59f,0x54f)](_0x2ff3dc,_0x35d105);}if(!_0x4f7fd2){const _0x1224f3=new Cesium$1['Cartesian2'](Math['max'](this[_0x2c6d6c(0x389,0x322)]['bounds'][_0x2c6d6c(0x462,0x47c)],_0x4c4cc7),Math['min'](this['windData'][_0x2c6d6c(0x398,0x37b)][_0x59c49c(0x543,0x523)],_0x4fca7b)),_0x42b78d=new Cesium$1['Cartesian2'](Math['max'](this['windData']['bounds'][_0x2c6d6c(0x412,0x3e5)],_0x32ecbb),Math['min'](this[_0x59c49c(0x4bb,0x523)]['bounds'][_0x59c49c(0x542,0x4e8)],_0x2ff3dc)),_0x3c5689=(_0x1224f3['y']-_0x1224f3['x'])*0.05,_0x28339f=(_0x42b78d['y']-_0x42b78d['x'])*0.05;_0x1224f3['x']=Math['max'](this['windData'][_0x2c6d6c(0x398,0x3d0)]['west'],_0x1224f3['x']-_0x3c5689),_0x1224f3['y']=Math['min'](this['windData']['bounds']['east'],_0x1224f3['y']+_0x3c5689),_0x42b78d['x']=Math[_0x2c6d6c(0x46d,0x42a)](this[_0x59c49c(0x4bb,0x4a9)]['bounds'][_0x59c49c(0x544,0x5ce)],_0x42b78d['x']-_0x28339f),_0x42b78d['y']=Math[_0x59c49c(0x5ab,0x5bb)](this[_0x2c6d6c(0x389,0x404)]['bounds'][_0x59c49c(0x542,0x563)],_0x42b78d['y']+_0x28339f),this['viewerParameters']['lonRange']=_0x1224f3,this[_0x59c49c(0x565,0x4fd)]['latRange']=_0x42b78d;const _0x7360b6=this['windData']['bounds']['east']-this[_0x2c6d6c(0x389,0x325)][_0x59c49c(0x4ca,0x530)][_0x59c49c(0x594,0x558)],_0x5a6567=this['windData']['bounds']['north']-this[_0x59c49c(0x4bb,0x442)][_0x2c6d6c(0x398,0x3c7)]['south'],_0x2239d1=(_0x1224f3['y']-_0x1224f3['x'])/_0x7360b6,_0x249fc5=(_0x42b78d['y']-_0x42b78d['x'])/_0x5a6567,_0x423478=Math['min'](_0x2239d1,_0x249fc5),_0xf89edd=0x3e8*_0x423478;_0xf89edd>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0xf89edd)));}this[_0x59c49c(0x565,0x53c)]['sceneMode']=this['scene']['mode'],(_0x58b0ff=this['particleSystem'])===null||_0x58b0ff===void 0x0||_0x58b0ff['applyViewerParameters'](this[_0x2c6d6c(0x433,0x45c)]);}['getDataAtLonLat'](_0x36b98c,_0x4d0147){const {bounds:_0x531d38,width:_0x51f607,height:_0x49fd54,u:_0x59949c,v:_0x5f300b,speed:_0x58630b}=this['windData'];function _0xd05344(_0x4f4c09,_0xe78be){return _0x441fa5(_0xe78be-0x3b6,_0x4f4c09);}const {flipY:_0x59ecc4}=this[_0xd05344(0x3df,0x368)];if(_0x36b98c<_0x531d38['west']||_0x36b98c>_0x531d38['east']||_0x4d0147<_0x531d38['south']||_0x4d0147>_0x531d38['north'])return null;const _0x2c0a1a=(_0x36b98c-_0x531d38['west'])/(_0x531d38['east']-_0x531d38['west'])*(_0x51f607-0x1);let _0x277d04=(_0x4d0147-_0x531d38[_0xd05344(0x3cc,0x3da)])/(_0x531d38[_0xd05344(0x435,0x3d8)]-_0x531d38['south'])*(_0x49fd54-0x1);_0x59ecc4&&(_0x277d04=_0x49fd54-0x1-_0x277d04);const _0x4a9487=Math['floor'](_0x2c0a1a),_0xe01856=Math[_0x2dd0d9(-0xf,0x34)](_0x277d04),_0x574a77=Math[_0xd05344(0x476,0x409)](_0x2c0a1a),_0x4dd276=Math[_0x2dd0d9(0xc2,0x6c)](_0x574a77+0x1,_0x51f607-0x1),_0x3a814e=Math[_0xd05344(0x3ea,0x409)](_0x277d04),_0x1ad5e7=Math[_0xd05344(0x3ce,0x441)](_0x3a814e+0x1,_0x49fd54-0x1),_0x4fec16=_0x2c0a1a-_0x574a77,_0x456cd1=_0x277d04-_0x3a814e,_0x55423d=_0xe01856*_0x51f607+_0x4a9487,_0x321879=_0x3a814e*_0x51f607+_0x574a77,_0x5cf9a0=_0x3a814e*_0x51f607+_0x4dd276,_0x2a3564=_0x1ad5e7*_0x51f607+_0x574a77,_0x30a00c=_0x1ad5e7*_0x51f607+_0x4dd276,_0x51f3ff=_0x59949c[_0x2dd0d9(-0x47,-0x5e)][_0x321879],_0x4f4638=_0x59949c[_0x2dd0d9(-0xa7,-0x5e)][_0x5cf9a0],_0x1ed5d4=_0x59949c['array'][_0x2a3564],_0x57a431=_0x59949c['array'][_0x30a00c],_0x1f965d=(0x1-_0x4fec16)*(0x1-_0x456cd1)*_0x51f3ff+_0x4fec16*(0x1-_0x456cd1)*_0x4f4638+(0x1-_0x4fec16)*_0x456cd1*_0x1ed5d4+_0x4fec16*_0x456cd1*_0x57a431,_0x49fe18=_0x5f300b[_0x2dd0d9(0x16,-0x5e)][_0x321879],_0xc31cc0=_0x5f300b['array'][_0x5cf9a0],_0x35b29f=_0x5f300b['array'][_0x2a3564],_0x4eb73f=_0x5f300b['array'][_0x30a00c],_0x24439c=(0x1-_0x4fec16)*(0x1-_0x456cd1)*_0x49fe18+_0x4fec16*(0x1-_0x456cd1)*_0xc31cc0+(0x1-_0x4fec16)*_0x456cd1*_0x35b29f+_0x4fec16*_0x456cd1*_0x4eb73f;function _0x2dd0d9(_0x1302c6,_0x295d29){return _0x308ef9(_0x295d29-0x3a,_0x1302c6);}const _0x150e92=Math['sqrt'](_0x1f965d*_0x1f965d+_0x24439c*_0x24439c),_0x2df571={};_0x2df571['u']=_0x59949c['array'][_0x55423d],_0x2df571['v']=_0x5f300b[_0xd05344(0x3df,0x377)][_0x55423d],_0x2df571['speed']=_0x58630b['array'][_0x55423d];const _0x384ea5={};_0x384ea5['u']=_0x1f965d,_0x384ea5['v']=_0x24439c,_0x384ea5['speed']=_0x150e92;const _0x4c79b0={};return _0x4c79b0[_0xd05344(0x480,0x417)]=_0x2df571,_0x4c79b0['interpolated']=_0x384ea5,_0x4c79b0;}}mars3d__namespace['LayerUtil']['register'](_0x308ef9(-0xc4,-0x80),WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this[_0x1ecbe2(-0x16d,-0x133)]=null,this[_0x3e2c83(0x314,0x331)]=null;function _0x3e2c83(_0x317f64,_0x5e2238){return _0x441fa5(_0x5e2238-0x2c8,_0x317f64);}function _0x1ecbe2(_0x506f2d,_0x270a7b){return _0x308ef9(_0x270a7b- -0x61,_0x506f2d);}this['tlng']=null,this['tlat']=null,this[_0x3e2c83(0x397,0x336)]=null,this['speed']=null;}['destroy'](){for(const _0x527a7a in this){delete this[_0x527a7a];}}}class CanvasWindField{constructor(_0x5863e3){this['setOptions'](_0x5863e3);}get[_0x308ef9(-0x48,-0x78)](){return this['_speedRate'];}set['speedRate'](_0x32c889){function _0x4a67a1(_0x18baa6,_0x100a80){return _0x308ef9(_0x100a80-0x2b0,_0x18baa6);}function _0x2e823f(_0x2c8485,_0x4f29f0){return _0x308ef9(_0x2c8485-0x21d,_0x4f29f0);}this[_0x4a67a1(0x29c,0x28c)]=(0x64-(_0x32c889>0x63?0x63:_0x32c889))*0x64,this['_calc_speedRate']=[(this['xmax']-this[_0x4a67a1(0x25d,0x269)])/this['_speedRate'],(this['ymax']-this[_0x2e823f(0x172,0x142)])/this[_0x4a67a1(0x271,0x28c)]];}get[_0x308ef9(0x35,0x9f)](){function _0x15281c(_0x4c23c0,_0x1eec99){return _0x308ef9(_0x1eec99-0x316,_0x4c23c0);}return this[_0x15281c(0x287,0x270)];}set['maxAge'](_0x36633c){this['_maxAge']=_0x36633c;}['setOptions'](_0x5cc218){this['options']=_0x5cc218,this['maxAge']=_0x5cc218['maxAge']||0x78,this[_0x39da70(-0x1ff,-0x263)]=_0x5cc218[_0x39da70(-0x1ff,-0x19f)]||0x32;function _0x2e0a7d(_0x4579a8,_0x4954cf){return _0x441fa5(_0x4954cf-0xdd,_0x4579a8);}this[_0x39da70(-0x265,-0x232)]=[];const _0x5dd0e8=_0x5cc218['particlesNumber']||0x1000;function _0x39da70(_0x46cc41,_0x483346){return _0x441fa5(_0x46cc41- -0x210,_0x483346);}for(let _0x16a9e5=0x0;_0x16a9e5<_0x5dd0e8;_0x16a9e5++){const _0x2e541a=this[_0x39da70(-0x1ae,-0x155)](new CanvasParticle());this['particles']['push'](_0x2e541a);}}['setDate'](_0x26b5ce){this['rows']=_0x26b5ce['rows'],this['cols']=_0x26b5ce[_0x31b075(0x26,0x68)],this['xmin']=_0x26b5ce['xmin'],this[_0x2a8a8d(0x543,0x4e1)]=_0x26b5ce['xmax'],this['ymin']=_0x26b5ce[_0x2a8a8d(0x498,0x454)],this[_0x31b075(0x8,0x33)]=_0x26b5ce[_0x2a8a8d(0x510,0x491)],this[_0x2a8a8d(0x476,0x4ff)]=[];const _0x411cbe=_0x26b5ce['udata'],_0x453958=_0x26b5ce[_0x31b075(0x3a,0x65)];function _0x31b075(_0x528d80,_0x41aa83){return _0x441fa5(_0x41aa83-0x48,_0x528d80);}let _0x2c06b7=![];_0x411cbe['length']===this[_0x31b075(0x80,0xb0)]&&_0x411cbe[0x0]['length']===this[_0x31b075(0xa9,0x68)]&&(_0x2c06b7=!![]);let _0x38c9d0=0x0,_0x570dd7=null,_0x2a5fee=null;function _0x2a8a8d(_0x300673,_0x28c525){return _0x441fa5(_0x28c525-0x4a6,_0x300673);}for(let _0x572f5a=0x0;_0x572f5a<this['rows'];_0x572f5a++){_0x570dd7=[];for(let _0x36359c=0x0;_0x36359c<this[_0x2a8a8d(0x442,0x4c6)];_0x36359c++,_0x38c9d0++){_0x2c06b7?_0x2a5fee=this[_0x31b075(-0x8,-0x11)](_0x411cbe[_0x572f5a][_0x36359c],_0x453958[_0x572f5a][_0x36359c]):_0x2a5fee=this['_calcUV'](_0x411cbe[_0x38c9d0],_0x453958[_0x38c9d0]),_0x570dd7[_0x31b075(-0x1b,0x24)](_0x2a5fee);}this['grid']['push'](_0x570dd7);}!this['options'][_0x2a8a8d(0x3c3,0x445)]&&this[_0x2a8a8d(0x4be,0x4ff)][_0x31b075(-0xa8,-0x2f)]();}['clear'](){delete this['rows'],delete this['cols'],delete this['xmin'];function _0x5d04e6(_0x4633d2,_0x4bc863){return _0x441fa5(_0x4633d2-0x20b,_0x4bc863);}delete this['xmax'],delete this['ymin'],delete this['ymax'],delete this[_0x5d04e6(0x264,0x21d)],delete this['particles'];}['toGridXY'](_0x40b654,_0x4d91bc){function _0x11fd6c(_0x595266,_0x431813){return _0x308ef9(_0x595266- -0x1e9,_0x431813);}const _0x884d88=(_0x40b654-this['xmin'])/(this['xmax']-this[_0x11fd6c(-0x230,-0x1c7)])*(this[_0x2cea8a(0x4f1,0x49e)]-0x1),_0x54ba6a=(this['ymax']-_0x4d91bc)/(this['ymax']-this['ymin'])*(this['rows']-0x1);function _0x2cea8a(_0x3e9690,_0xd470c3){return _0x441fa5(_0xd470c3-0x47e,_0x3e9690);}return[_0x884d88,_0x54ba6a];}['getUVByXY'](_0x58ac81,_0x18dbbe){if(_0x58ac81<0x0||_0x58ac81>=this[_0x2dec64(-0x8a,-0xad)]||_0x18dbbe>=this['rows'])return[0x0,0x0,0x0];const _0x4e2bad=Math[_0x2dec64(-0x26,-0x7a)](_0x58ac81),_0xd7d1a2=Math[_0x26d280(-0x6f,-0x6a)](_0x18dbbe);if(_0x4e2bad===_0x58ac81&&_0xd7d1a2===_0x18dbbe)return this[_0x26d280(-0x2,-0x64)][_0x18dbbe][_0x58ac81];const _0x43a73e=_0x4e2bad+0x1;function _0x2dec64(_0x6276a6,_0x35f162){return _0x308ef9(_0x35f162- -0x74,_0x6276a6);}const _0x1b1648=_0xd7d1a2+0x1,_0x1b115f=this['getUVByXY'](_0x4e2bad,_0xd7d1a2),_0x1208a5=this['getUVByXY'](_0x43a73e,_0xd7d1a2),_0x589ab5=this['getUVByXY'](_0x4e2bad,_0x1b1648),_0x37329b=this[_0x2dec64(-0x188,-0x10d)](_0x43a73e,_0x1b1648);let _0x212abe=null;try{_0x212abe=this['_bilinearInterpolation'](_0x58ac81-_0x4e2bad,_0x18dbbe-_0xd7d1a2,_0x1b115f,_0x1208a5,_0x589ab5,_0x37329b);}catch(_0xbb187c){console['log'](_0x58ac81,_0x18dbbe);}function _0x26d280(_0x1da5de,_0x333f1e){return _0x441fa5(_0x333f1e- -0xbd,_0x1da5de);}return _0x212abe;}['_bilinearInterpolation'](_0xb119b5,_0x379b17,_0x5eec5b,_0x3f6d7a,_0x25f47e,_0x2701a9){const _0x590710=0x1-_0xb119b5,_0x22cf5f=0x1-_0x379b17,_0x3e5f7d=_0x590710*_0x22cf5f,_0x45a887=_0xb119b5*_0x22cf5f,_0x484f76=_0x590710*_0x379b17,_0x374443=_0xb119b5*_0x379b17,_0x4960fc=_0x5eec5b[0x0]*_0x3e5f7d+_0x3f6d7a[0x0]*_0x45a887+_0x25f47e[0x0]*_0x484f76+_0x2701a9[0x0]*_0x374443,_0x2cd093=_0x5eec5b[0x1]*_0x3e5f7d+_0x3f6d7a[0x1]*_0x45a887+_0x25f47e[0x1]*_0x484f76+_0x2701a9[0x1]*_0x374443;return this['_calcUV'](_0x4960fc,_0x2cd093);}['_calcUV'](_0x4c7888,_0x28c4f1){return[+_0x4c7888,+_0x28c4f1,Math['sqrt'](_0x4c7888*_0x4c7888+_0x28c4f1*_0x28c4f1)];}['getUVByPoint'](_0x208ac7,_0x46c5ca){if(!this[_0x3a9450(0x1fc,0x1de)](_0x208ac7,_0x46c5ca))return null;function _0x3a9450(_0x354203,_0x183e05){return _0x441fa5(_0x354203-0x23e,_0x183e05);}const _0x157562=this['toGridXY'](_0x208ac7,_0x46c5ca),_0x1822ad=this['getUVByXY'](_0x157562[0x0],_0x157562[0x1]);return _0x1822ad;}['isInExtent'](_0x1659ce,_0x4af6a0){return _0x1659ce>=this['xmin']&&_0x1659ce<=this['xmax']&&_0x4af6a0>=this['ymin']&&_0x4af6a0<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x54c6d8=fRandomByfloat(this[_0xf581ba(-0x97,-0x11f)],this['xmax']),_0x4b8906=fRandomByfloat(this['ymin'],this['ymax']),_0x5f4b03={};_0x5f4b03['lat']=_0x4b8906;function _0xf581ba(_0x25de57,_0x13594e){return _0x308ef9(_0x13594e- -0xd8,_0x25de57);}return _0x5f4b03['lng']=_0x54c6d8,_0x5f4b03;}['getParticles'](){let _0x377fda,_0x4d00f7,_0x5d9437;function _0x6c5e0c(_0x37ff86,_0x169951){return _0x441fa5(_0x37ff86-0x25a,_0x169951);}for(let _0x3ce84a=0x0,_0x26dd23=this['particles'][_0x6c5e0c(0x294,0x271)];_0x3ce84a<_0x26dd23;_0x3ce84a++){let _0x28fe99=this['particles'][_0x3ce84a];_0x28fe99['age']<=0x0&&(_0x28fe99=this['_randomParticle'](_0x28fe99));if(_0x28fe99['age']>0x0){const _0x23e16e=_0x28fe99[_0x29642e(-0x2fe,-0x2ad)],_0x2bde88=_0x28fe99['tlat'];_0x5d9437=this[_0x6c5e0c(0x2a4,0x2c2)](_0x23e16e,_0x2bde88),_0x5d9437?(_0x377fda=_0x23e16e+this['_calc_speedRate'][0x0]*_0x5d9437[0x0],_0x4d00f7=_0x2bde88+this[_0x6c5e0c(0x2e9,0x294)][0x1]*_0x5d9437[0x1],_0x28fe99['lng']=_0x23e16e,_0x28fe99['lat']=_0x2bde88,_0x28fe99[_0x29642e(-0x30b,-0x2ad)]=_0x377fda,_0x28fe99['tlat']=_0x4d00f7,_0x28fe99[_0x29642e(-0x345,-0x2b7)]=_0x5d9437[0x2],_0x28fe99['age']--):_0x28fe99[_0x6c5e0c(0x2c8,0x2f4)]=0x0;}}function _0x29642e(_0x24c57d,_0x578811){return _0x308ef9(_0x578811- -0x1da,_0x24c57d);}return this['particles'];}['_randomParticle'](_0x154cf9){let _0x10bc3e,_0x455b21;for(let _0x55e570=0x0;_0x55e570<0x1e;_0x55e570++){_0x10bc3e=this[_0x3f0007(-0x276,-0x26e)](),_0x455b21=this[_0x17b878(0x1ea,0x169)](_0x10bc3e[_0x3f0007(-0x1da,-0x264)],_0x10bc3e['lat']);if(_0x455b21&&_0x455b21[0x2]>0x0)break;}if(!_0x455b21)return _0x154cf9;const _0x13dc45=_0x10bc3e[_0x17b878(0x10e,0xa6)]+this['_calc_speedRate'][0x0]*_0x455b21[0x0],_0x2d0f24=_0x10bc3e['lat']+this['_calc_speedRate'][0x1]*_0x455b21[0x1];_0x154cf9['lng']=_0x10bc3e['lng'];function _0x3f0007(_0x3ef3d9,_0x24ad04){return _0x308ef9(_0x24ad04- -0x192,_0x3ef3d9);}_0x154cf9['lat']=_0x10bc3e['lat'];function _0x17b878(_0x32476d,_0x311205){return _0x308ef9(_0x311205-0x178,_0x32476d);}return _0x154cf9['tlng']=_0x13dc45,_0x154cf9[_0x3f0007(-0x224,-0x1fd)]=_0x2d0f24,_0x154cf9['age']=Math['round'](0xa+Math['random']()*this['maxAge']),_0x154cf9[_0x17b878(0x77,0x9b)]=_0x455b21[0x2],_0x154cf9;}['destroy'](){for(const _0x4b908b in this){delete this[_0x4b908b];}}}function fRandomByfloat(_0x42f0a0,_0x1101bb){return _0x42f0a0+Math['random']()*(_0x1101bb-_0x42f0a0);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x224146={}){super(_0x224146),this['_setOptionsHook'](_0x224146);function _0x10ac7a(_0x337023,_0x5924c9){return _0x441fa5(_0x337023-0x104,_0x5924c9);}this['canvas']=null;function _0x8dbeff(_0xe67cec,_0x2488c7){return _0x441fa5(_0xe67cec- -0x11d,_0x2488c7);}_0x224146[_0x10ac7a(0x8c,0x21)]&&_0x224146[_0x10ac7a(0xdc,0xde)]&&(this['_colorRamp']=new mars3d__namespace[(_0x8dbeff(-0x16e,-0x168))](_0x224146));}[_0x441fa5(-0x1a,-0x87)](_0x48a79b,_0x18b3d8){this['frameTime']=0x3e8/(_0x48a79b['frameRate']||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![],this['color']=_0x48a79b[_0x3ba166(0x45a,0x4a5)]||'#ffffff';function _0x3ba166(_0x545634,_0x29880b){return _0x441fa5(_0x545634-0x3d8,_0x29880b);}this[_0x3ba166(0x3a8,0x330)]=_0x48a79b[_0x3ba166(0x3a8,0x3fa)]||0x1,this[_0xaa0339(0x2e1,0x2e5)]=_0x48a79b['fixedHeight']??0x0;function _0xaa0339(_0xebba97,_0x11b6fb){return _0x308ef9(_0x11b6fb-0x305,_0xebba97);}this[_0xaa0339(0x2bc,0x24b)]=_0x48a79b[_0x3ba166(0x377,0x3ee)]??![],this[_0xaa0339(0x2bb,0x231)]&&this['windField']['setOptions'](_0x48a79b);}get[_0x441fa5(0x49,0x3c)](){function _0x48c6b6(_0x15b3eb,_0x50e045){return _0x308ef9(_0x50e045- -0x16c,_0x15b3eb);}return this[_0x48c6b6(-0x1a7,-0x1af)];}get['canvasWidth'](){function _0x3463fb(_0x4be45a,_0x57c836){return _0x441fa5(_0x4be45a-0x19d,_0x57c836);}return this['_map'][_0x3463fb(0x210,0x297)]['canvas']['clientWidth'];}get[_0x308ef9(-0x7e,-0xd)](){function _0xb50196(_0x51d19a,_0x366154){return _0x441fa5(_0x51d19a-0xb3,_0x366154);}function _0x29990c(_0x1dc5a9,_0x6a1671){return _0x308ef9(_0x1dc5a9-0x3f3,_0x6a1671);}return this[_0x29990c(0x383,0x3f0)]['scene']['canvas'][_0x29990c(0x370,0x38b)];}get[_0x308ef9(-0x16,0x1a)](){return this['_pointerEvents'];}set['pointerEvents'](_0x19cc1e){this['_pointerEvents']=_0x19cc1e;function _0x2c5465(_0x447613,_0x449851){return _0x308ef9(_0x449851-0x15c,_0x447613);}if(!this['canvas'])return;function _0x436037(_0x34f078,_0x27524a){return _0x308ef9(_0x27524a-0x119,_0x34f078);}_0x19cc1e?this[_0x2c5465(0xa0,0x119)]['style']['pointer-events']=_0x2c5465(0x68,0x8f):this['canvas']['style']['pointer-events']=_0x436037(0x130,0x140);}get[_0x308ef9(-0x63,-0x46)](){return this['options']['particlesNumber'];}set[_0x441fa5(-0xa,0x43)](_0x242db5){this['options']['particlesNumber']=_0x242db5,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{function _0x9a27d4(_0x16252d,_0x1ff1da){return _0x1b08(_0x16252d- -0x1a9,_0x1ff1da);}this[_0x9a27d4(-0xa9,-0xdb)]();},0x1f4);}get['speedRate'](){return this['options']['speedRate'];}set[_0x441fa5(0x11,-0xd)](_0x47af7b){function _0x463308(_0x126bbb,_0x49bb96){return _0x441fa5(_0x49bb96- -0x246,_0x126bbb);}function _0x49d9b2(_0x3e79d0,_0x485079){return _0x441fa5(_0x3e79d0- -0x1d,_0x485079);}this[_0x49d9b2(-0x6b,-0x2)][_0x49d9b2(-0xc,-0x26)]=_0x47af7b,this['windField']&&(this[_0x49d9b2(-0x98,-0x81)]['speedRate']=_0x47af7b);}get['maxAge'](){function _0x1473d7(_0x168f01,_0x140656){return _0x441fa5(_0x140656-0x1cd,_0x168f01);}return this[_0x1473d7(0x1f9,0x17f)]['maxAge'];}set['maxAge'](_0x34ed7e){function _0x16e5f1(_0x5d94e8,_0x132dcb){return _0x441fa5(_0x132dcb-0x138,_0x5d94e8);}function _0x304292(_0x1bd7f3,_0x58985c){return _0x308ef9(_0x1bd7f3- -0x221,_0x58985c);}this['options'][_0x304292(-0x1ec,-0x268)]=_0x34ed7e,this[_0x16e5f1(0x93,0xbd)]&&(this['windField']['maxAge']=_0x34ed7e);}get['data'](){function _0x43b3dd(_0x4375cc,_0x1a4487){return _0x441fa5(_0x1a4487-0x4dd,_0x4375cc);}return this[_0x43b3dd(0x4ab,0x478)];}set['data'](_0x136315){this['setData'](_0x136315);}get['rectangle'](){let _0x2d5c29=this[_0xf3c5e1(-0x157,-0xed)][_0x51c115(-0xb7,-0x10e)],_0x2cd6ce=this['windData'][_0xf3c5e1(-0xb7,-0xd5)],_0x9f0750=this[_0x51c115(-0x12e,-0x100)]['ymin'],_0x4b04ee=this['windData']['ymax'];_0x2cd6ce>=0x167&&_0x2d5c29===0x0&&(_0x2d5c29=-0xb4,_0x2cd6ce=0xb4);_0x2d5c29=Math['max'](_0x2d5c29,-0xb4),_0x2cd6ce=Math[_0x51c115(-0x3e,-0xb0)](_0x2cd6ce,0xb4),_0x9f0750=Math['max'](_0x9f0750,-0x5a);function _0x51c115(_0x5be0bc,_0x1bd217){return _0x441fa5(_0x5be0bc- -0xc9,_0x1bd217);}_0x4b04ee=Math[_0xf3c5e1(-0x67,0x4)](_0x4b04ee,0x5a);function _0xf3c5e1(_0x4b9b66,_0x565091){return _0x441fa5(_0x4b9b66- -0xf2,_0x565091);}return Cesium['Rectangle']['fromDegrees'](_0x2d5c29,_0x9f0750,_0x2cd6ce,_0x4b04ee);}['_showHook'](_0x4e489c){function _0xffef1b(_0x10aad9,_0x24dc4a){return _0x308ef9(_0x10aad9-0x29d,_0x24dc4a);}function _0x264719(_0x1ca928,_0x317e54){return _0x441fa5(_0x1ca928-0x45,_0x317e54);}_0x4e489c?this['_addedHook']():(this[_0xffef1b(0x1df,0x158)]&&(this[_0x264719(-0x9,-0x28)]['data']=this['windData']),this[_0x264719(0x83,0xd9)]());}[_0x308ef9(-0xb5,-0xaa)](){function _0x44fb26(_0x3f7524,_0x182208){return _0x308ef9(_0x182208-0x4aa,_0x3f7524);}function _0x26e40e(_0x2c055e,_0x50646e){return _0x441fa5(_0x50646e- -0x222,_0x2c055e);}this[_0x44fb26(0x3c8,0x403)][_0x26e40e(-0x1a8,-0x1b5)]?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}[_0x308ef9(-0x4e,-0x95)](){this['canvas']=this['_createCanvas']();const _0x2c795d={};function _0x227c3e(_0x4d3bbe,_0x400e4f){return _0x308ef9(_0x400e4f-0x4df,_0x4d3bbe);}function _0x5eda7a(_0x3d3699,_0x2a5250){return _0x441fa5(_0x2a5250- -0x133,_0x3d3699);}_0x2c795d['willReadFrequently']=!![],this['canvasContext']=this['canvas']['getContext']('2d',_0x2c795d),this['bindEvent'](),this['options'][_0x5eda7a(-0xd3,-0xd8)]&&this['setData'](this[_0x5eda7a(-0x1f3,-0x181)]['data']);}[_0x441fa5(0x3e,-0x42)](){function _0x30fc11(_0x14049f,_0x15e022){return _0x441fa5(_0x14049f-0x4d5,_0x15e022);}function _0x40f838(_0x165b18,_0x28faba){return _0x441fa5(_0x165b18-0x34d,_0x28faba);}this['clear'](),this[_0x30fc11(0x54d,0x5b9)](),this[_0x40f838(0x363,0x33b)]&&(this['_map']['container']['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){function _0x321bc7(_0xbab33d,_0x25b714){return _0x441fa5(_0xbab33d- -0x1b8,_0x25b714);}function _0x33f86e(_0x100917,_0x4d543a){return _0x441fa5(_0x4d543a-0x1b1,_0x100917);}const _0x585c6b=mars3d__namespace['DomUtil']['create']('canvas',_0x321bc7(-0x1ba,-0x1a3),this['_map'][_0x33f86e(0x145,0x179)]);return _0x585c6b[_0x321bc7(-0x1b5,-0x18f)][_0x321bc7(-0x1bb,-0x16b)]='absolute',_0x585c6b['style'][_0x33f86e(0x26a,0x1fe)]='0px',_0x585c6b['style'][_0x321bc7(-0x224,-0x24f)]=_0x321bc7(-0x201,-0x17c),_0x585c6b[_0x321bc7(-0x1b5,-0x13f)]['width']=this[_0x321bc7(-0x1cf,-0x1de)]['scene']['canvas']['clientWidth']+'px',_0x585c6b[_0x33f86e(0x135,0x1b4)][_0x321bc7(-0x1ef,-0x193)]=this['_map']['scene'][_0x321bc7(-0x1a2,-0x133)][_0x321bc7(-0x1e2,-0x221)]+'px',_0x585c6b['style'][_0x33f86e(0x1b3,0x1f4)]=this['_pointerEvents']?_0x33f86e(0xf2,0x17b):_0x33f86e(0x24f,0x231),_0x585c6b['style'][_0x321bc7(-0x182,-0x170)]=this['options']['zIndex']??0x9,_0x585c6b['width']=this['_map']['scene']['canvas'][_0x321bc7(-0x22e,-0x22f)],_0x585c6b[_0x33f86e(0x119,0x17a)]=this['_map']['scene']['canvas']['clientHeight'],_0x585c6b;}['resize'](){function _0x309b6c(_0xb3b70d,_0x2c970a){return _0x308ef9(_0xb3b70d- -0x63,_0x2c970a);}function _0x3138d3(_0x322559,_0x3dc405){return _0x308ef9(_0x322559-0x368,_0x3dc405);}this['canvas']&&(this[_0x3138d3(0x325,0x375)]['style']['width']=this['_map'][_0x3138d3(0x382,0x3ae)]['canvas']['clientWidth']+'px',this[_0x3138d3(0x325,0x3a9)][_0x3138d3(0x312,0x2bb)][_0x3138d3(0x2d8,0x26f)]=this['_map']['scene']['canvas']['clientHeight']+'px',this['canvas']['width']=this['_map'][_0x309b6c(-0x49,-0x5f)]['canvas']['clientWidth'],this['canvas']['height']=this['_map']['scene']['canvas'][_0x309b6c(-0xe6,-0xf8)]);}['bindEvent'](){const _0xf65730=this;let _0x1ecd80=Date['now']();function _0x4efd30(_0xb9f948,_0x275293){return _0x441fa5(_0x275293-0x269,_0xb9f948);}(function _0x38f48e(){function _0x13b9e2(_0x45c748,_0x546f3c){return _0x1b08(_0x546f3c-0xca,_0x45c748);}function _0x242da4(_0x1175ad,_0x406c79){return _0x1b08(_0x406c79- -0xfe,_0x1175ad);}if(_0xf65730[_0x13b9e2(0x267,0x21d)])return;_0xf65730['_animateFrame']=window[_0x242da4(0xf6,0xd9)](_0x38f48e);if(_0xf65730[_0x242da4(0xb1,0xc5)]&&_0xf65730[_0x242da4(-0x20,-0x33)]){const _0x2ea083=Date['now'](),_0x5972e2=_0x2ea083-_0x1ecd80;_0x5972e2>_0xf65730['frameTime']&&(_0x1ecd80=_0x2ea083-_0x5972e2%_0xf65730['frameTime'],_0xf65730['update']());}}(),window[_0x4efd30(0x302,0x27c)](_0x10fe51(0x1cb,0x1d9),this[_0x4efd30(0x2e3,0x2bb)]['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![]);function _0x10fe51(_0x127797,_0x22fa8f){return _0x308ef9(_0x127797-0x1d2,_0x22fa8f);}this[_0x4efd30(0x1e0,0x21b)][_0x4efd30(0x32e,0x2f0)]&&(this['_map']['on'](mars3d__namespace['EventType'][_0x4efd30(0x2af,0x294)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x4efd30(0x2a6,0x29c)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x4efd30(0x25f,0x29c)][_0x4efd30(0x2a9,0x268)],this[_0x4efd30(0x25c,0x2aa)],this));}[_0x308ef9(0x1f,-0x4f)](){window[_0x21e448(-0xee,-0xcd)](this[_0xc261b9(-0x24c,-0x1c4)]),delete this['_animateFrame'],window['removeEventListener'](_0x21e448(-0xc8,-0x48),this['resize']);function _0xc261b9(_0x265531,_0xfad1e1){return _0x308ef9(_0xfad1e1- -0x101,_0x265531);}function _0x21e448(_0x190afb,_0x56b78a){return _0x441fa5(_0x56b78a- -0x9a,_0x190afb);}this[_0xc261b9(-0x199,-0x1a8)][_0x21e448(0x35,-0x13)]&&(this['_map']['off'](mars3d__namespace['EventType']['wheel'],this[_0x21e448(-0xfd,-0x9e)],this),this['_map'][_0xc261b9(-0x166,-0x173)](mars3d__namespace['EventType'][_0x21e448(-0x36,-0xbb)],this[_0x21e448(0x1,-0x7b)],this),this['_map'][_0xc261b9(-0x185,-0x173)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this[_0x21e448(-0x11c,-0xb1)][_0xc261b9(-0x1ae,-0x173)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x40a872){clearTimeout(this['refreshTimer']);if(!this[_0xf25a52(0x453,0x491)]||!this[_0x45a771(0x91,0xc9)])return;this['canvas']['style'][_0xf25a52(0x48c,0x430)]=_0xf25a52(0x338,0x392);function _0x45a771(_0x32d0f0,_0x3cf772){return _0x308ef9(_0x3cf772-0x10c,_0x32d0f0);}function _0xf25a52(_0x4dde92,_0x649e4c){return _0x308ef9(_0x649e4c-0x46d,_0x4dde92);}this['refreshTimer']=setTimeout(()=>{function _0x54f8a3(_0x28b9d7,_0x5774a8){return _0xf25a52(_0x28b9d7,_0x5774a8- -0x119);}if(!this[_0x5ec047(0x4de,0x4d4)])return;function _0x5ec047(_0x4bea2e,_0x210512){return _0xf25a52(_0x4bea2e,_0x210512-0x43);}this['redraw'](),this[_0x54f8a3(0x394,0x311)]['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x72ac51){function _0x2ed991(_0x5ecae2,_0x2cf885){return _0x441fa5(_0x2cf885-0x45a,_0x5ecae2);}this['mouse_down']=!![],this['_map'][_0x5aed2e(0x24c,0x2b5)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x5aed2e(_0x1d48cc,_0x114ddf){return _0x441fa5(_0x114ddf-0x2ce,_0x1d48cc);}this[_0x2ed991(0x43a,0x443)]['on'](mars3d__namespace['EventType']['mouseMove'],this[_0x2ed991(0x518,0x48e)],this);}[_0x441fa5(0x34,-0x57)](_0x338e14){function _0x3a0eeb(_0x56df64,_0x57edec){return _0x441fa5(_0x56df64-0x2c0,_0x57edec);}if(!this[_0x3a0eeb(0x33d,0x34d)]||!this[_0x667146(0x329,0x2c1)])return;function _0x667146(_0x2adb59,_0x2c7432){return _0x441fa5(_0x2c7432-0x2ab,_0x2adb59);}this['mouse_down']&&(this['canvas']['style']['visibility']=_0x667146(0x281,0x229),this[_0x3a0eeb(0x2ba,0x2e6)]=!![]);}['_onMouseUpEvent'](_0x26621f){if(!this[_0x367585(0x21c,0x291)]||!this['canvas'])return;function _0x5c6da2(_0x32d2e5,_0x5c89eb){return _0x308ef9(_0x5c89eb-0x1e1,_0x32d2e5);}this[_0x367585(0x263,0x1fd)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this[_0x5c6da2(0x10c,0x182)]&&this[_0x5c6da2(0xf4,0x142)]();function _0x367585(_0x4416d5,_0x4bd390){return _0x441fa5(_0x4bd390-0x214,_0x4416d5);}this['canvas']['style']['visibility']='visible',this['mouse_down']=![],this[_0x5c6da2(0x1d4,0x182)]=![];}['setData'](_0x4b9ce2){function _0x4947d2(_0xf45f2,_0x157b29){return _0x441fa5(_0x157b29- -0xa4,_0xf45f2);}this['clear'](),this[_0x24b5c5(-0x263,-0x2d2)]=_0x4b9ce2,this['windField']['setDate'](_0x4b9ce2);function _0x24b5c5(_0x717842,_0x410bba){return _0x308ef9(_0x410bba- -0x214,_0x717842);}this[_0x24b5c5(-0x2cc,-0x2b3)]();}['redraw'](){if(!this['show'])return;this[_0x29a357(0x1dd,0x25a)][_0x29a357(0x316,0x2c4)](this[_0x29a357(0x2dc,0x287)]);function _0x52076e(_0x13ecbb,_0x8c5092){return _0x308ef9(_0x13ecbb-0x26a,_0x8c5092);}function _0x29a357(_0xa1a3bc,_0x2a60cc){return _0x441fa5(_0x2a60cc-0x2d5,_0xa1a3bc);}this['update']();}['update'](){function _0x14b409(_0x2b89cc,_0x2ebb3e){return _0x441fa5(_0x2b89cc-0x425,_0x2ebb3e);}if(this['_updateIng'])return;function _0x317f05(_0x30a2a6,_0x18f39d){return _0x308ef9(_0x18f39d- -0x173,_0x30a2a6);}this[_0x317f05(-0x1c6,-0x1eb)]=!![];if(this[_0x14b409(0x492,0x4d6)])this[_0x14b409(0x3aa,0x3c1)]['update']();else{const _0x500e96=this['windField']['getParticles']();this[_0x317f05(-0x1fc,-0x241)](_0x500e96);}this['_updateIng']=![];}['_drawLines'](_0xe48897){this['_canvasParticles']=_0xe48897,this[_0x4e0a17(0x461,0x4b8)]['globalCompositeOperation']='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x4303c0(-0x184,-0x1d7)]),this['canvasContext']['globalCompositeOperation']='lighter',this[_0x4e0a17(0x461,0x410)]['globalAlpha']=0.9;function _0x4303c0(_0xd52903,_0x10f587){return _0x441fa5(_0xd52903- -0x15f,_0x10f587);}function _0x4e0a17(_0x181de2,_0x52aad3){return _0x308ef9(_0x181de2-0x4ae,_0x52aad3);}const _0x542b69=this['_map'][_0x4303c0(-0xec,-0x141)]['mode']!==Cesium['SceneMode']['SCENE3D'],_0x466fb0=this['canvasWidth']*0.25;if(this[_0x4e0a17(0x42c,0x445)])for(let _0x29f750=0x0,_0x1a9839=_0xe48897['length'];_0x29f750<_0x1a9839;_0x29f750++){const _0x36ab08=_0xe48897[_0x29f750],_0x6719b1=this[_0x4303c0(-0xdc,-0x153)](_0x36ab08,_0x36ab08['lng'],_0x36ab08['lat'],_0x36ab08['alt']),_0x2477cd=this[_0x4e0a17(0x4d8,0x470)](_0x36ab08,_0x36ab08['tlng'],_0x36ab08['tlat'],_0x36ab08['talt']);if(!_0x6719b1||!_0x2477cd)continue;if(_0x542b69&&Math['abs'](_0x6719b1[0x0]-_0x2477cd[0x0])>=_0x466fb0)continue;this[_0x4303c0(-0x153,-0x1d4)]['beginPath'](),this['canvasContext']['lineWidth']=this[_0x4e0a17(0x425,0x3c3)],this['canvasContext'][_0x4e0a17(0x428,0x49e)]=this['_colorRamp']['getColor'](_0x36ab08['speed']),this[_0x4e0a17(0x461,0x3f7)]['moveTo'](_0x6719b1[0x0],_0x6719b1[0x1]),this[_0x4303c0(-0x153,-0x1d4)]['lineTo'](_0x2477cd[0x0],_0x2477cd[0x1]),this[_0x4303c0(-0x153,-0x121)]['stroke']();}else{this['canvasContext']['beginPath'](),this[_0x4303c0(-0x153,-0x1c7)]['lineWidth']=this['lineWidth'],this[_0x4303c0(-0x153,-0x1b7)][_0x4e0a17(0x428,0x45f)]=this[_0x4e0a17(0x4d7,0x553)];for(let _0x402a9d=0x0,_0x5645ca=_0xe48897[_0x4303c0(-0x125,-0x168)];_0x402a9d<_0x5645ca;_0x402a9d++){const _0x2ad11a=_0xe48897[_0x402a9d],_0x33e7c4=this['_tomap'](_0x2ad11a,_0x2ad11a[_0x4e0a17(0x3dc,0x45d)],_0x2ad11a[_0x4e0a17(0x4be,0x496)],_0x2ad11a[_0x4303c0(-0x14f,-0xc8)]),_0x55ffbb=this['_tomap'](_0x2ad11a,_0x2ad11a['tlng'],_0x2ad11a[_0x4303c0(-0x171,-0x189)],_0x2ad11a[_0x4e0a17(0x47f,0x4f2)]);if(!_0x33e7c4||!_0x55ffbb)continue;if(_0x542b69&&Math['abs'](_0x33e7c4[0x0]-_0x55ffbb[0x0])>=_0x466fb0)continue;this['canvasContext'][_0x4303c0(-0xfc,-0x17e)](_0x33e7c4[0x0],_0x33e7c4[0x1]),this[_0x4e0a17(0x461,0x488)]['lineTo'](_0x55ffbb[0x0],_0x55ffbb[0x1]);}this[_0x4e0a17(0x461,0x3f8)][_0x4e0a17(0x414,0x41d)]();}}['_tomap'](_0x1d4439,_0x56a3bb,_0x5cd7db,_0x3b8778){function _0x2c313d(_0x285ac5,_0x402f64){return _0x308ef9(_0x402f64-0x498,_0x285ac5);}const _0x36e34f=Cesium['Cartesian3']['fromDegrees'](_0x56a3bb,_0x5cd7db,_0x3b8778??this['fixedHeight']),_0x7c9118=this[_0x2c313d(0x466,0x428)]['scene'];if(_0x7c9118[_0x2c313d(0x4f1,0x467)]===Cesium[_0x2c313d(0x35d,0x3e1)]['SCENE3D']){const _0x563cde=new Cesium['EllipsoidalOccluder'](_0x7c9118['globe']['ellipsoid'],_0x7c9118['camera']['positionWC']),_0x35e752=_0x563cde['isPointVisible'](_0x36e34f);if(!_0x35e752)return _0x1d4439[_0x138c00(0x553,0x52d)]=0x0,null;}const _0x3bc67e=mars3d__namespace[_0x2c313d(0x3a2,0x3e0)]['toWindowCoordinates'](this['_map']['scene'],_0x36e34f);function _0x138c00(_0x3e07d1,_0x19bf65){return _0x308ef9(_0x19bf65-0x518,_0x3e07d1);}return _0x3bc67e?[_0x3bc67e['x'],_0x3bc67e['y']]:null;}['clear'](){function _0x47db8a(_0xa44b7d,_0x244945){return _0x308ef9(_0xa44b7d- -0x42,_0x244945);}this['windField'][_0x47db8a(-0x37,0x1e)](),delete this['windData'];}['initWorker'](){this[_0x2d9dff(-0x144,-0x15e)]=new Worker(this['options']['worker']),this['worker']['onmessage']=_0x542dd1=>{this[_0x241d78(0x4e5,0x4b1)](_0x542dd1['data'][_0x241d78(0x54f,0x4d1)]);function _0x241d78(_0x3a706e,_0x3f3e68){return _0x2d9dff(_0x3f3e68-0x6d7,_0x3a706e);}function _0x4c05c7(_0x2e6e94,_0x201da8){return _0x2d9dff(_0x2e6e94-0x2c6,_0x201da8);}this[_0x241d78(0x531,0x4dc)]=![];};function _0x2d9dff(_0x2f6c4d,_0x3bc28b){return _0x308ef9(_0x2f6c4d- -0x158,_0x3bc28b);}this['windField']={'init':_0x5abea1=>{const _0x5e8936={};_0x5e8936['type']='init',_0x5e8936['options']=_0x5abea1,this['worker']['postMessage'](_0x5e8936);},'setOptions':_0x13f4a1=>{const _0x201d27={};_0x201d27['type']='setOptions',_0x201d27['options']=_0x13f4a1,this['worker']['postMessage'](_0x201d27);},'setDate':_0x568206=>{const _0xf5cadc={};_0xf5cadc[_0x1a2342(0x390,0x315)]='setDate',_0xf5cadc[_0x2d712d(0x18c,0x160)]=_0x568206;function _0x1a2342(_0xc34dd2,_0x5d275c){return _0x2d9dff(_0xc34dd2-0x4e2,_0x5d275c);}function _0x2d712d(_0x57f703,_0x1f8d16){return _0x2d9dff(_0x1f8d16-0x2b6,_0x57f703);}this['worker'][_0x1a2342(0x2f7,0x2ab)](_0xf5cadc);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x30c51d={};function _0x1d63c2(_0xa02cf9,_0x33bc91){return _0x2d9dff(_0xa02cf9-0x352,_0x33bc91);}_0x30c51d['type']='update',this['worker'][_0x1d63c2(0x167,0xf4)](_0x30c51d);},'clear':()=>{function _0x4aa40c(_0x15ce2f,_0x661276){return _0x2d9dff(_0x15ce2f-0x5ad,_0x661276);}const _0x4c1232={};function _0x4a368e(_0x428746,_0x32da2f){return _0x2d9dff(_0x32da2f-0x1a8,_0x428746);}_0x4c1232['type']=_0x4a368e(0x4c,0x5b),this[_0x4aa40c(0x469,0x403)]['postMessage'](_0x4c1232);}},this['windField']['init'](this['options']);}}mars3d__namespace[_0x308ef9(-0x12,-0x4)]['register'](_0x441fa5(-0x50,-0x35),CanvasWindLayer),mars3d__namespace[_0x308ef9(-0x10,0x54)][_0x308ef9(-0x84,-0x10c)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log']['logInfo']('mars3d-wind插件注册成功\x20\x20\x20\x20\x20版本:'+version+'\x20\x20\x20\x20编译日期:'+buildTime),mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x30eac9={};_0x30eac9['value']=!![];function _0x441fa5(_0xe32fa8,_0x308fb9){return _0x1b08(_0xe32fa8- -0x146,_0x308fb9);}Object[_0x441fa5(-0x67,-0xb4)](exports,'__esModule',_0x30eac9);
|
|
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.5",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.11.
|
|
8
|
+
"mars3d": "~3.11.5"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|