mars3d-wind 3.10.6 → 3.10.8
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.10.
|
|
5
|
-
* 编译日期:2025-
|
|
4
|
+
* 版本信息:v3.10.8
|
|
5
|
+
* 编译日期:2025-11-06 21:52
|
|
6
6
|
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
7
|
* 使用单位:火星科技免费公开版 ,2025-07-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(_0x337657,_0x55cdcf){function _0x182591(_0x493a56,_0x461eda){return _0x269f(_0x461eda-0x1,_0x493a56);}const _0x3e68e6=_0x337657();function _0x4edeb8(_0x3495c0,_0x479f18){return _0x269f(_0x3495c0-0x17a,_0x479f18);}while(!![]){try{const _0x4b2543=parseInt(_0x182591(0x17b,0xff))/0x1*(parseInt(_0x4edeb8(0x226,0x24e))/0x2)+parseInt(_0x4edeb8(0x2e5,0x345))/0x3+parseInt(_0x182591(0x1a0,0x19a))/0x4*(-parseInt(_0x182591(0x17c,0x133))/0x5)+-parseInt(_0x182591(0x136,0xd8))/0x6+-parseInt(_0x182591(0x1a0,0x139))/0x7+parseInt(_0x4edeb8(0x2d5,0x28a))/0x8*(parseInt(_0x4edeb8(0x261,0x262))/0x9)+-parseInt(_0x182591(0xd7,0x87))/0xa;if(_0x4b2543===_0x55cdcf)break;else _0x3e68e6['push'](_0x3e68e6['shift']());}catch(_0x5805f9){_0x3e68e6['push'](_0x3e68e6['shift']());}}}(_0x56db,0xb07f3));function _interopNamespace(_0x2ba0be){if(_0x2ba0be&&_0x2ba0be['__esModule'])return _0x2ba0be;var _0x442e75=Object['create'](null);_0x2ba0be&&Object['keys'](_0x2ba0be)[_0x5d53d5(-0x242,-0x244)](function(_0x1f0430){function _0x3935b1(_0x1dd924,_0x375074){return _0x5d53d5(_0x1dd924-0x798,_0x375074);}function _0x3a551f(_0x4b02b8,_0x51785a){return _0x5d53d5(_0x4b02b8-0x34,_0x51785a);}if(_0x1f0430!==_0x3935b1(0x46e,0x3dd)){var _0x3c6c9e=Object[_0x3935b1(0x51b,0x514)](_0x2ba0be,_0x1f0430);Object[_0x3a551f(-0x29d,-0x309)](_0x442e75,_0x1f0430,_0x3c6c9e[_0x3935b1(0x4c4,0x438)]?_0x3c6c9e:{'enumerable':!![],'get':function(){return _0x2ba0be[_0x1f0430];}});}});_0x442e75['default']=_0x2ba0be;function _0x5d53d5(_0x5839b0,_0x30d1b4){return _0x269f(_0x5839b0- -0x3c2,_0x30d1b4);}return _0x442e75;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x4fee29,_0x198e17){function _0x4f9b6e(_0x498f05,_0x1f2771){return _0x269f(_0x1f2771-0x174,_0x498f05);}function _0x323117(_0x2771a0,_0x4d3c40){return _0x269f(_0x2771a0-0x2a,_0x4d3c40);}const _0x155a5b=_0x4fee29*Math[_0x4f9b6e(0x386,0x2f7)](Cesium$2[_0x323117(0x16d,0x15b)][_0x4f9b6e(0x2be,0x2c9)](_0x198e17));return _0x155a5b;}function getV(_0x5e66af,_0xc37d48){const _0x9051ec=_0x5e66af*Math['sin'](Cesium$2['Math'][_0x37604b(0x42c,0x406)](_0xc37d48));function _0x37604b(_0x10710a,_0x308bee){return _0x269f(_0x308bee-0x2b1,_0x10710a);}return _0x9051ec;}function getSpeed(_0x2ee8a4,_0xe93962){const _0x4bc298=Math[_0x40b7cd(0x10,-0x7e)](Math['pow'](_0x2ee8a4,0x2)+Math['pow'](_0xe93962,0x2));function _0x40b7cd(_0x578b87,_0x58af2d){return _0x269f(_0x58af2d- -0x19c,_0x578b87);}return _0x4bc298;}function getDirection(_0x1446d2,_0x1c84ff){let _0x16b233=Cesium$2['Math'][_0x2d78fc(0x463,0x44e)](Math['atan2'](_0x1c84ff,_0x1446d2));function _0x2d78fc(_0x465c56,_0x317381){return _0x269f(_0x465c56-0x380,_0x317381);}return _0x16b233+=_0x16b233<0x0?0x168:0x0,_0x16b233;}function _0x269f(_0x1763c4,_0xa4d770){const _0x56db2f=_0x56db();return _0x269f=function(_0x269f51,_0x5e6cb8){_0x269f51=_0x269f51-0x7a;let _0x11e0de=_0x56db2f[_0x269f51];return _0x11e0de;},_0x269f(_0x1763c4,_0xa4d770);}const _0x2dc8e3={};_0x2dc8e3['__proto__']=null,_0x2dc8e3[_0x5e8d5a(0xa0,0x89)]=getU,_0x2dc8e3['getV']=getV,_0x2dc8e3[_0x5e8d5a(0x119,0xb8)]=getSpeed,_0x2dc8e3[_0x2e1fe6(-0x16c,-0x103)]=getDirection;var WindUtil=_0x2dc8e3,updatePositionShader=_0x5e8d5a(0xc3,0x9d),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=_0x5e8d5a(0x130,0xbb);function _0x5e8d5a(_0x2e57ef,_0x15b32e){return _0x269f(_0x15b32e- -0x2a,_0x2e57ef);}var 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[_0x5e8d5a(0x166,0x102)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x3c3148={};_0x3c3148[_0x4806c3(-0xfb,-0x164)]=[calculateSpeedShader];function _0x4806c3(_0x31e7c,_0x38ab51){return _0x5e8d5a(_0x31e7c,_0x38ab51- -0x257);}return new ShaderSource$1(_0x3c3148);}static[_0x2e1fe6(-0x1a5,-0x191)](){const _0x3f599a={};_0x3f599a[_0x5db2e1(0x212,0x182)]=[updatePositionShader];function _0x5db2e1(_0x26b02d,_0x5e30c0){return _0x2e1fe6(_0x26b02d-0x3cd,_0x5e30c0);}return new ShaderSource$1(_0x3f599a);}static['getSegmentDrawVertexShader'](){const _0x18aa63={};return _0x18aa63['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x18aa63);}static['getSegmentDrawFragmentShader'](){const _0x17d1ae={};return _0x17d1ae['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x17d1ae);}static[_0x5e8d5a(-0x21,0x5e)](){const _0x2d0fee={};function _0xe1c8f(_0xd57115,_0x4a05fc){return _0x2e1fe6(_0x4a05fc- -0x27,_0xd57115);}return _0x2d0fee[_0xe1c8f(-0x1bb,-0x1e2)]=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x2d0fee);}}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[_0x5e8d5a(0xa3,0x102)];class CustomPrimitive{constructor(_0x2ac04c){this['commandType']=_0x2ac04c[_0x5b6c89(0x368,0x3f7)],this['geometry']=_0x2ac04c['geometry'];function _0x4491c3(_0x3f36,_0x361f50){return _0x5e8d5a(_0x3f36,_0x361f50- -0x22);}function _0x5b6c89(_0x8fda53,_0x3f505d){return _0x2e1fe6(_0x3f505d-0x593,_0x8fda53);}this[_0x5b6c89(0x335,0x3b3)]=_0x2ac04c['attributeLocations'],this[_0x5b6c89(0x3be,0x42f)]=_0x2ac04c[_0x5b6c89(0x456,0x42f)],this['uniformMap']=_0x2ac04c[_0x4491c3(0x44,0x39)]||{},this[_0x5b6c89(0x3ce,0x41c)]=_0x2ac04c['vertexShaderSource'],this['fragmentShaderSource']=_0x2ac04c[_0x4491c3(0x1c5,0x138)],this['rawRenderState']=_0x2ac04c[_0x4491c3(0x11,0x4e)],this['framebuffer']=_0x2ac04c[_0x4491c3(0x6b,0xbf)],this['outputTexture']=_0x2ac04c[_0x4491c3(0xcd,0x4f)],this['autoClear']=_0x2ac04c[_0x4491c3(0x9b,0x81)]??![],this[_0x4491c3(0xcd,0x14e)]=_0x2ac04c[_0x4491c3(0xee,0x14e)],this['show']=!![],this['commandToExecute']=undefined,this[_0x5b6c89(0x428,0x406)]=undefined,this[_0x5b6c89(0x493,0x449)]=_0x2ac04c['isDynamic']??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}[_0x5e8d5a(0x17e,0x11c)](_0x1a2c1e){function _0x3ddd10(_0x5d67e4,_0xb8509b){return _0x2e1fe6(_0x5d67e4-0xf5,_0xb8509b);}function _0x2485a2(_0x1a9b3e,_0x47633d){return _0x5e8d5a(_0x47633d,_0x1a9b3e-0x1f5);}if(this[_0x3ddd10(-0xa7,-0x17)]===_0x3ddd10(-0xfa,-0x178)){const _0x124607={};_0x124607[_0x3ddd10(-0x12a,-0xa4)]=_0x1a2c1e,_0x124607[_0x2485a2(0x2ee,0x376)]=this[_0x3ddd10(-0xc0,-0x145)],_0x124607[_0x3ddd10(-0xeb,-0xb2)]=this[_0x2485a2(0x2c3,0x32c)],_0x124607['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x383111=VertexArray$1['fromGeometry'](_0x124607),_0x3a6b80={};_0x3a6b80[_0x2485a2(0x284,0x2e5)]=_0x1a2c1e,_0x3a6b80['vertexShaderSource']=this['vertexShaderSource'],_0x3a6b80['fragmentShaderSource']=this['fragmentShaderSource'],_0x3a6b80[_0x2485a2(0x2c3,0x295)]=this[_0x3ddd10(-0xeb,-0x14d)];const _0x460b8b=ShaderProgram['fromCache'](_0x3a6b80),_0x1b34ca=RenderState['fromCache'](this['rawRenderState']),_0x5d316b={};return _0x5d316b[_0x2485a2(0x25a,0x1db)]=this,_0x5d316b['vertexArray']=_0x383111,_0x5d316b[_0x2485a2(0x33f,0x35a)]=this[_0x2485a2(0x33f,0x2ae)],_0x5d316b[_0x2485a2(0x2f9,0x2e7)]=Matrix4['IDENTITY'],_0x5d316b[_0x2485a2(0x25d,0x2a8)]=_0x1b34ca,_0x5d316b['shaderProgram']=_0x460b8b,_0x5d316b['framebuffer']=this['framebuffer'],_0x5d316b['uniformMap']=this[_0x3ddd10(-0x15e,-0x118)],_0x5d316b['pass']=Pass$1['OPAQUE'],new DrawCommand(_0x5d316b);}else{if(this['commandType']===_0x2485a2(0x249,0x1f4)){const _0x43f4c1={};return _0x43f4c1['owner']=this,_0x43f4c1[_0x3ddd10(-0x5f,-0x70)]=this[_0x2485a2(0x34f,0x3d5)],_0x43f4c1[_0x2485a2(0x250,0x20d)]=this['uniformMap'],_0x43f4c1['outputTexture']=this[_0x2485a2(0x266,0x24d)],_0x43f4c1[_0x2485a2(0x352,0x341)]=!![],new ComputeCommand(_0x43f4c1);}else throw new Error(_0x2485a2(0x2db,0x279));}}['setGeometry'](_0x38bddc,_0x351d11){function _0x3d253a(_0x28e059,_0x4fcd9f){return _0x2e1fe6(_0x28e059-0x6b,_0x4fcd9f);}this['geometry']=_0x351d11,defined(this[_0x3d253a(-0xd5,-0x11e)])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x38bddc,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0xe385f3){if(!this[_0x4d2a0d(0x1f8,0x214)]())return;function _0x299069(_0x443728,_0x3bef35){return _0x5e8d5a(_0x443728,_0x3bef35-0x3b4);}if(!this['show']||!defined(_0xe385f3))return;!defined(this['commandToExecute'])&&(this[_0x4d2a0d(0x1e7,0x21e)]=this['createCommand'](_0xe385f3[_0x299069(0x3bf,0x443)]));defined(this['preExecute'])&&this[_0x299069(0x541,0x524)]();function _0x4d2a0d(_0x44f815,_0x3e91cf){return _0x2e1fe6(_0x3e91cf-0x35e,_0x44f815);}if(!_0xe385f3[_0x4d2a0d(0x1be,0x1d6)]){console['warn']('frameState.commandList\x20is\x20undefined');return;}defined(this[_0x299069(0x477,0x4d5)])&&_0xe385f3['commandList'][_0x299069(0x51a,0x505)](this['clearCommand']),defined(this['commandToExecute'])&&_0xe385f3['commandList']['push'](this['commandToExecute']);}[_0x2e1fe6(-0x145,-0x127)](){return![];}[_0x5e8d5a(0x58,0x58)](){if(defined(this[_0x4d053d(-0x1b3,-0x1b8)])){var _0x342761;(_0x342761=this['commandToExecute']['shaderProgram'])===null||_0x342761===void 0x0||_0x342761['destroy'](),this['commandToExecute']['shaderProgram']=undefined;}function _0x4d053d(_0x2503ff,_0x37aadc){return _0x2e1fe6(_0x2503ff- -0x73,_0x37aadc);}return destroyObject(this);}}function deepMerge(_0x3f5d28,_0x27efc3){function _0x5eb964(_0x52f1a7,_0x4fa17c){return _0x2e1fe6(_0x4fa17c- -0x44,_0x52f1a7);}if(!_0x3f5d28)return _0x27efc3;if(!_0x27efc3)return _0x3f5d28;const _0x346edc={..._0x27efc3},_0x261767=_0x346edc;for(const _0x155d96 in _0x3f5d28){if(Object['prototype']['hasOwnProperty'][_0x5eb964(-0x2e0,-0x283)](_0x3f5d28,_0x155d96)){const _0x4890ca=_0x3f5d28[_0x155d96],_0x40ae7b=_0x27efc3[_0x155d96];if(Array['isArray'](_0x4890ca)){_0x261767[_0x155d96]=_0x4890ca['slice']();continue;}if(_0x4890ca&&typeof _0x4890ca==='object'){_0x261767[_0x155d96]=deepMerge(_0x4890ca,_0x40ae7b||{});continue;}_0x4890ca!==undefined&&(_0x261767[_0x155d96]=_0x4890ca);}}return _0x261767;}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[_0x2e1fe6(-0x1ac,-0x16b)];class WindParticlesComputing{constructor(_0x2af4ef,_0x47bead,_0x3db10e,_0x43085e,_0x473ee6){this[_0x4b6225(-0x2b8,-0x2b6)]=_0x2af4ef,this['options']=_0x3db10e,this[_0x4b6225(-0x2a0,-0x32e)]=_0x43085e,this['windData']=_0x47bead,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x3ea952={};_0x3ea952[_0x4b6225(-0x222,-0x26d)]=_0x473ee6;function _0x4b6225(_0x2e2f80,_0x40d6d0){return _0x2e1fe6(_0x2e2f80- -0x99,_0x40d6d0);}_0x3ea952[_0x2608ed(-0x2c2,-0x279)]=0x1,_0x3ea952[_0x2608ed(-0x2e1,-0x26a)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x3ea952),this[_0x2608ed(-0x20f,-0x284)](),this['createWindTextures']();function _0x2608ed(_0x15b567,_0x5ba225){return _0x5e8d5a(_0x15b567,_0x5ba225- -0x357);}this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x4797ab=()=>{function _0x934f95(_0x4777b9,_0x53fddb){return _0x269f(_0x53fddb-0x11f,_0x4777b9);}function _0x15b6fd(_0x4cdf83,_0x18dafb){return _0x269f(_0x18dafb-0x24b,_0x4cdf83);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this[_0x934f95(0x17a,0x1bf)]=this[_0x15b6fd(0x3c5,0x384)]['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0x4797ab();const _0xee9fa9=setInterval(_0x4797ab,0x3e8),_0x53b1d2=this['destroy'][_0x4ea67a(0xf3,0x12c)](this);function _0x4ea67a(_0x411a2e,_0x38b448){return _0x2e1fe6(_0x38b448-0x272,_0x411a2e);}this['destroy']=()=>{clearInterval(_0xee9fa9),_0x53b1d2();};}['createWindTextures'](){function _0xd0743(_0x1aa962,_0x2785f4){return _0x5e8d5a(_0x2785f4,_0x1aa962-0x1a6);}const _0x25560d={};function _0x5662be(_0x27b2d5,_0xc64df0){return _0x5e8d5a(_0xc64df0,_0x27b2d5-0x396);}_0x25560d['minificationFilter']=TextureMinificationFilter$1[_0x5662be(0x472,0x4b3)],_0x25560d[_0xd0743(0x2c0,0x282)]=TextureMagnificationFilter$1['LINEAR'];const _0x576738={'context':this[_0xd0743(0x235,0x1b4)],'width':this['windData'][_0x5662be(0x476,0x42e)],'height':this['windData'][_0x5662be(0x4de,0x565)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1[_0xd0743(0x27f,0x2a1)],'flipY':this['options'][_0x5662be(0x4a9,0x4f8)]??![],'sampler':new Sampler$1(_0x25560d)};this['windTextures']={'U':new Texture$1({..._0x576738,'source':{'arrayBufferView':new Float32Array(this[_0xd0743(0x2d2,0x2b1)]['u']['array'])}}),'V':new Texture$1({..._0x576738,'source':{'arrayBufferView':new Float32Array(this[_0x5662be(0x4c2,0x502)]['v']['array'])}})};}['createParticlesTextures'](){function _0x3e81da(_0xc6b11,_0x1033f9){return _0x5e8d5a(_0xc6b11,_0x1033f9- -0x2f5);}const _0x58983d={};_0x58983d['minificationFilter']=TextureMinificationFilter$1[_0x3e81da(-0x21f,-0x207)];function _0x53fca5(_0x2189de,_0x4d9923){return _0x2e1fe6(_0x4d9923-0x66,_0x2189de);}_0x58983d['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];const _0x506af2={'context':this['context'],'width':this[_0x53fca5(-0x1a7,-0x178)]['particlesTextureSize'],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0x3e81da(-0x104,-0x189)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options']['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x58983d)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x506af2),'currentParticlesPosition':new Texture$1(_0x506af2),'nextParticlesPosition':new Texture$1(_0x506af2),'postProcessingPosition':new Texture$1(_0x506af2),'particlesSpeed':new Texture$1(_0x506af2)};}['destroyParticlesTextures'](){function _0x153b59(_0x1211f6,_0x6c1c55){return _0x2e1fe6(_0x6c1c55-0x523,_0x1211f6);}Object['values'](this['particlesTextures'])[_0x153b59(0x434,0x3cb)](_0x54ad82=>_0x54ad82['destroy']());}[_0x5e8d5a(0x1ec,0x15b)](){function _0x1dc5ee(_0x50a8c5,_0x1a2575){return _0x5e8d5a(_0x50a8c5,_0x1a2575- -0x19e);}function _0x58dc03(_0xb9d657,_0x4cdca3){return _0x5e8d5a(_0xb9d657,_0x4cdca3- -0xc6);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x58dc03(-0xf8,-0x72),'uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this[_0x58dc03(0x5a,0x66)]['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x1dc5ee(-0x67,-0x72)]['v']['min'],this['windData']['v'][_0x1dc5ee(-0x12,-0x6b)]),'speedRange':()=>new Cartesian2$1(this[_0x1dc5ee(-0xad,-0x72)]['speed']['min'],this[_0x58dc03(0x67,0x66)]['speed']['max']),'currentParticlesPosition':()=>this[_0x58dc03(-0xb2,-0x4d)][_0x58dc03(0x11,-0x6)],'speedScaleFactor':()=>{function _0x3be6bd(_0x2f2c16,_0x10e759){return _0x1dc5ee(_0x10e759,_0x2f2c16- -0x107);}function _0x390688(_0x3689dd,_0x40cd8c){return _0x58dc03(_0x40cd8c,_0x3689dd-0x2e8);}return(this['viewerParameters'][_0x3be6bd(-0x22a,-0x220)]+0x32)*this[_0x390688(0x2f2,0x2db)][_0x3be6bd(-0x228,-0x1b3)];},'frameRateAdjustment':()=>this[_0x58dc03(0xa7,0x85)],'dimension':()=>new Cartesian2$1(this['windData']['width'],this['windData'][_0x58dc03(0x104,0x82)]),'minimum':()=>new Cartesian2$1(this[_0x1dc5ee(-0xcc,-0x72)]['bounds']['west'],this['windData'][_0x1dc5ee(-0xae,-0x38)]['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds']['east'],this['windData']['bounds']['north'])},'fragmentShaderSource':ShaderManager[_0x58dc03(0x135,0xac)](),'outputTexture':this['particlesTextures']['particlesSpeed'],'preExecute':()=>{const _0x5a036b=this[_0x577f41(-0x298,-0x2b1)]['previousParticlesPosition'];function _0x577f41(_0x4efb9c,_0x2d62a3){return _0x1dc5ee(_0x2d62a3,_0x4efb9c- -0x173);}this['particlesTextures'][_0x397f12(-0x22d,-0x285)]=this[_0x397f12(-0x28e,-0x2eb)][_0x397f12(-0x247,-0x24a)],this['particlesTextures']['currentParticlesPosition']=this['particlesTextures'][_0x577f41(-0x270,-0x1e6)];function _0x397f12(_0x49de53,_0x40fa72){return _0x58dc03(_0x40fa72,_0x49de53- -0x241);}this[_0x577f41(-0x298,-0x297)][_0x577f41(-0x270,-0x28b)]=_0x5a036b,this['primitives'][_0x397f12(-0x1c2,-0x131)][_0x397f12(-0x199,-0x1b5)]&&(this[_0x577f41(-0x24f,-0x220)]['calculateSpeed']['commandToExecute'][_0x397f12(-0x296,-0x2e6)]=this['particlesTextures'][_0x397f12(-0x1d9,-0x171)]);},'isDynamic':()=>this[_0x58dc03(0x44,0xa)][_0x1dc5ee(-0x170,-0x13e)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x4d387c(_0x425c37,_0x31601d){return _0x58dc03(_0x31601d,_0x425c37- -0x81);}function _0xe57ff2(_0x1e02a5,_0x1fa3c2){return _0x58dc03(_0x1e02a5,_0x1fa3c2-0x218);}this['primitives'][_0xe57ff2(0x22d,0x1a7)]['commandToExecute']&&(this[_0xe57ff2(0x24c,0x214)]['updatePosition'][_0xe57ff2(0x25b,0x2c0)][_0xe57ff2(0x1a9,0x1c3)]=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this[_0x1dc5ee(-0xb1,-0x125)]['particlesSpeed'],'lonRange':()=>this[_0x58dc03(-0xf,-0x1f)][_0x58dc03(0x3f,0x9b)],'latRange':()=>this['viewerParameters'][_0x58dc03(0x54,0x10)],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x58dc03(0x103,0xa0)]['west'],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this[_0x1dc5ee(-0xd,-0x72)]['bounds']['south'],this['windData'][_0x1dc5ee(0x5a,-0x38)]['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this[_0x1dc5ee(-0xfa,-0xce)][_0x58dc03(-0xd0,-0x4e)],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this[_0x58dc03(-0x51,0xa)]['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x1dc5ee(-0xc8,-0x125)]['postProcessingPosition'],'preExecute':()=>{function _0xc3db4a(_0x2f0fe1,_0x5c912d){return _0x1dc5ee(_0x5c912d,_0x2f0fe1- -0x1d5);}function _0x29e8e3(_0x2724a3,_0x466831){return _0x1dc5ee(_0x466831,_0x2724a3-0x4aa);}this['primitives'][_0x29e8e3(0x3ad,0x3a2)][_0x29e8e3(0x47a,0x406)]&&(this['primitives'][_0x29e8e3(0x3ad,0x31e)]['commandToExecute']['outputTexture']=this[_0x29e8e3(0x385,0x34c)]['postProcessingPosition']);},'isDynamic':()=>this[_0x58dc03(0x7f,0xa)][_0x1dc5ee(-0x19b,-0x13e)]})};}[_0x5e8d5a(0xdc,0xdf)](){this['windTextures']['U']['destroy'](),this[_0x1da0fe(0x57,-0x35)]['V']['destroy']();function _0x1da0fe(_0xdeaab9,_0x54f1fb){return _0x5e8d5a(_0xdeaab9,_0x54f1fb- -0xf1);}this['createWindTextures']();}['updateWindData'](_0x278378){this[_0x55b145(0xd6,0x78)]=_0x278378;function _0x55b145(_0x14ec3a,_0x1586f3){return _0x5e8d5a(_0x14ec3a,_0x1586f3- -0xb4);}this['reCreateWindTextures']();}[_0x2e1fe6(-0x248,-0x229)](_0x164220){const _0x5cf2d8=_0x164220['flipY']!==undefined&&_0x164220['flipY']!==this['options']['flipY'];this[_0x5e1726(-0x165,-0x1b9)]=deepMerge(_0x164220,this['options']);function _0x5e1726(_0x58e809,_0x5b352f){return _0x2e1fe6(_0x5b352f-0x25,_0x58e809);}_0x5cf2d8&&this['reCreateWindTextures']();}[_0x2e1fe6(-0x197,-0x14e)](_0x2bfa76){const {array:_0x58dff2}=_0x2bfa76;let {min:_0x2e143a,max:_0x5633f5}=_0x2bfa76;const _0x1616e1=new Float32Array(_0x58dff2[_0x23bb6b(-0xff,-0x131)]);_0x2e143a===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x2e143a=Math['min'](..._0x58dff2));_0x5633f5===undefined&&(console[_0x23bb6b(-0x9c,-0x107)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x5633f5=Math[_0x43a939(0x1f9,0x184)](..._0x58dff2));const _0x34225c=Math['max'](Math[_0x43a939(0xb4,0x107)](_0x2e143a),Math['abs'](_0x5633f5));function _0x23bb6b(_0x3085e6,_0x4219cb){return _0x2e1fe6(_0x3085e6-0x12f,_0x4219cb);}for(let _0x52fdb7=0x0;_0x52fdb7<_0x58dff2['length'];_0x52fdb7++){const _0x283485=_0x58dff2[_0x52fdb7]/_0x34225c;_0x1616e1[_0x52fdb7]=_0x283485;}function _0x43a939(_0x1fa0ff,_0x1af600){return _0x2e1fe6(_0x1af600-0x2ff,_0x1fa0ff);}return _0x1616e1;}['destroy'](){Object[_0x25453e(-0x1ab,-0x14a)](this['windTextures'])[_0x291d12(0x97,0xb5)](_0x18c8a6=>_0x18c8a6['destroy']()),Object['values'](this['particlesTextures'])['forEach'](_0x3d5e17=>_0x3d5e17[_0x25453e(-0x162,-0x1d4)]());function _0x291d12(_0x1a44ed,_0x1f22d1){return _0x2e1fe6(_0x1f22d1-0x20d,_0x1a44ed);}function _0x25453e(_0xa60f5b,_0x5c961d){return _0x5e8d5a(_0xa60f5b,_0x5c961d- -0x22c);}Object['values'](this['primitives'])['forEach'](_0x33778e=>_0x33778e[_0x25453e(-0x1aa,-0x1d4)]()),this['frameRateMonitor'][_0x291d12(-0x65,-0x49)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x5e8d5a(0x103,0x102)];class WindParticlesRendering{constructor(_0x364781,_0x28c371,_0x2d5e94,_0x139956){this[_0x5b913f(0x4e9,0x49f)]=_0x364781,this[_0x93cfbb(0x408,0x3f1)]=_0x28c371;function _0x93cfbb(_0x5c7b49,_0x212448){return _0x2e1fe6(_0x212448-0x5cf,_0x5c7b49);}this['viewerParameters']=_0x2d5e94,this['computing']=_0x139956;(typeof this[_0x93cfbb(0x444,0x3f1)]['particlesTextureSize']!==_0x5b913f(0x5e1,0x559)||this[_0x93cfbb(0x41f,0x3f1)][_0x5b913f(0x462,0x46d)]<=0x0)&&(console[_0x93cfbb(0x4e6,0x476)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options']['particlesTextureSize']=0x100);this['colorTable']=this['createColorTableTexture'](),this['textures']=this[_0x5b913f(0x48c,0x4b5)](),this['framebuffers']=this[_0x5b913f(0x550,0x520)]();function _0x5b913f(_0x1e1511,_0x27cec2){return _0x2e1fe6(_0x27cec2-0x6be,_0x1e1511);}this['primitives']=this['createPrimitives']();}[_0x5e8d5a(0x8b,0xa5)](){const _0x41c652={};function _0x1311ff(_0x2f03b1,_0x34b8ba){return _0x2e1fe6(_0x2f03b1-0x50d,_0x34b8ba);}_0x41c652[_0x21d0fa(0x1cb,0x173)]=this['context'],_0x41c652['width']=this['context']['drawingBufferWidth'],_0x41c652[_0x1311ff(0x3a7,0x3fa)]=this['context'][_0x1311ff(0x2ef,0x2c3)];function _0x21d0fa(_0x3b5444,_0x49884b){return _0x2e1fe6(_0x49884b-0x392,_0x3b5444);}_0x41c652['pixelFormat']=PixelFormat['RGBA'],_0x41c652['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x1e2f20=_0x41c652,_0x166e0a={};_0x166e0a['context']=this['context'],_0x166e0a['width']=this['context']['drawingBufferWidth'],_0x166e0a['height']=this[_0x1311ff(0x2ee,0x2b6)]['drawingBufferHeight'],_0x166e0a[_0x21d0fa(0x1e3,0x16c)]=PixelFormat['DEPTH_COMPONENT'],_0x166e0a['pixelDatatype']=PixelDatatype[_0x21d0fa(0x1b7,0x243)];const _0xc376fb=_0x166e0a;return{'segmentsColor':new Texture(_0x1e2f20),'segmentsDepth':new Texture(_0xc376fb)};}['createRenderingFramebuffers'](){function _0xbfc465(_0x4b168a,_0x32749d){return _0x5e8d5a(_0x32749d,_0x4b168a- -0x18d);}const _0x5c6ccf={};_0x5c6ccf[_0x273c41(-0x3a,-0x72)]=this['context'];function _0x273c41(_0x1c5c3a,_0x4adabe){return _0x5e8d5a(_0x4adabe,_0x1c5c3a- -0xc9);}return _0x5c6ccf[_0xbfc465(-0x88,-0xc0)]=[this['textures'][_0x273c41(-0x14,-0x14)]],_0x5c6ccf['depthTexture']=this[_0xbfc465(-0x83,-0xdb)]['segmentsDepth'],{'segments':new Framebuffer(_0x5c6ccf)};}['destoryRenderingFramebuffers'](){function _0x5b0749(_0x27e677,_0x588605){return _0x5e8d5a(_0x588605,_0x27e677-0x204);}function _0x5a1f95(_0x3ff07a,_0x247a47){return _0x5e8d5a(_0x247a47,_0x3ff07a-0x7a);}Object[_0x5a1f95(0x15c,0x129)](this['framebuffers'])[_0x5b0749(0x35a,0x332)](_0x2d8099=>{_0x2d8099['destroy']();});}[_0x2e1fe6(-0x16f,-0x145)](){const _0x1c72a3=new Float32Array(this['options']['colors'][_0x1facb3(-0x1d0,-0x240)](_0x213ac8=>{function _0x41ec0b(_0x781737,_0x431263){return _0x1facb3(_0x781737,_0x431263-0x57f);}function _0xcbd2b5(_0x5a29e0,_0xa25b14){return _0x1facb3(_0xa25b14,_0x5a29e0-0x36a);}const _0x42d2fc=Color$1['fromCssColorString'](_0x213ac8);return[_0x42d2fc['red'],_0x42d2fc['green'],_0x42d2fc[_0xcbd2b5(0xee,0x11e)],_0x42d2fc[_0x41ec0b(0x426,0x3e7)]];})),_0x1306a9={};function _0x249b10(_0x27240a,_0x4e7747){return _0x2e1fe6(_0x27240a-0x59a,_0x4e7747);}_0x1306a9[_0x1facb3(-0x221,-0x1e1)]=TextureMinificationFilter[_0x249b10(0x3c8,0x416)];function _0x1facb3(_0x5a21c6,_0x4d5320){return _0x2e1fe6(_0x4d5320- -0x2d,_0x5a21c6);}return _0x1306a9['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x1306a9[_0x1facb3(-0x184,-0x1f1)]=TextureWrap[_0x1facb3(-0x28d,-0x242)],_0x1306a9[_0x1facb3(-0x157,-0x1db)]=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this[_0x249b10(0x37b,0x308)],'width':this['options'][_0x249b10(0x44a,0x3c0)][_0x1facb3(-0x1ff,-0x25b)],'height':0x1,'pixelFormat':PixelFormat[_0x1facb3(-0xe3,-0x16f)],'pixelDatatype':PixelDatatype[_0x249b10(0x3c5,0x334)],'sampler':new Sampler(_0x1306a9),'source':{'width':this['options']['colors'][_0x1facb3(-0x1dc,-0x25b)],'height':0x1,'arrayBufferView':_0x1c72a3}});}['createSegmentsGeometry'](){function _0x2fc260(_0x19a50e,_0x3db56d){return _0x2e1fe6(_0x3db56d-0x540,_0x19a50e);}const _0x22cfd1=0x4,_0x46c7a7=this[_0x33f164(0x43c,0x4bf)][_0x33f164(0x498,0x44c)];let _0x16e608=[];for(let _0x17e070=0x0;_0x17e070<_0x46c7a7;_0x17e070++){for(let _0x30a3ec=0x0;_0x30a3ec<_0x46c7a7;_0x30a3ec++){for(let _0x5f5571=0x0;_0x5f5571<_0x22cfd1;_0x5f5571++){_0x16e608[_0x2fc260(0x3c4,0x3e3)](_0x17e070/_0x46c7a7),_0x16e608['push'](_0x30a3ec/_0x46c7a7);}}}_0x16e608=new Float32Array(_0x16e608);const _0x48d978=this[_0x33f164(0x4ba,0x4bf)]['particlesTextureSize']**0x2;let _0x2821aa=[];for(let _0x312e06=0x0;_0x312e06<_0x48d978;_0x312e06++){_0x2821aa['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x2821aa=new Float32Array(_0x2821aa);let _0xfee3e7=[];for(let _0x30bb26=0x0,_0xd06e6f=0x0;_0x30bb26<_0x48d978;_0x30bb26++){_0xfee3e7[_0x33f164(0x518,0x540)](_0xd06e6f+0x0,_0xd06e6f+0x1,_0xd06e6f+0x2,_0xd06e6f+0x2,_0xd06e6f+0x1,_0xd06e6f+0x3),_0xd06e6f+=_0x22cfd1;}_0xfee3e7=new Uint32Array(_0xfee3e7);function _0x33f164(_0x12f863,_0x27f015){return _0x5e8d5a(_0x12f863,_0x27f015-0x3ef);}const _0x4629bf={};_0x4629bf[_0x2fc260(0x35b,0x3e0)]=ComponentDatatype['FLOAT'],_0x4629bf['componentsPerAttribute']=0x2,_0x4629bf[_0x2fc260(0x3d1,0x374)]=_0x16e608;const _0x4a2296={};_0x4a2296['componentDatatype']=ComponentDatatype['FLOAT'],_0x4a2296[_0x2fc260(0x397,0x32c)]=0x3,_0x4a2296['values']=_0x2821aa;const _0x50e75f=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x4629bf),'normal':new GeometryAttribute(_0x4a2296)}),'indices':_0xfee3e7});return _0x50e75f;}['createRawRenderState'](_0x540c01){const _0x361465={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x540c01};return Appearance['getDefaultRenderState'](!![],![],_0x361465);}['createPrimitives'](){const _0x40d222={};_0x40d222['st']=0x0,_0x40d222[_0x44fe2a(0x36a,0x3e7)]=0x1;const _0x185d68={};_0x185d68['enabled']=!![];const _0x1ed6f7={};function _0x44fe2a(_0x391aa1,_0x31f86e){return _0x2e1fe6(_0x31f86e-0x5ad,_0x391aa1);}function _0x4d9e88(_0x3ccf14,_0x37114c){return _0x2e1fe6(_0x37114c-0x342,_0x3ccf14);}_0x1ed6f7['enabled']=!![],_0x1ed6f7[_0x4d9e88(0xe0,0xed)]=WebGLRenderingContext[_0x44fe2a(0x3b2,0x38d)],_0x1ed6f7['blendFuncSource']=WebGLRenderingContext[_0x4d9e88(0x1ad,0x1f9)],_0x1ed6f7['blendFuncDestination']=WebGLRenderingContext[_0x44fe2a(0x30b,0x382)];const _0x4ee677={};_0x4ee677['viewport']=undefined,_0x4ee677['depthTest']=_0x185d68,_0x4ee677[_0x44fe2a(0x362,0x3ad)]=!![],_0x4ee677['blending']=_0x1ed6f7;const _0x172463=new CustomPrimitive({'commandType':_0x44fe2a(0x3f4,0x3be),'attributeLocations':_0x40d222,'geometry':this[_0x44fe2a(0x447,0x3eb)](),'primitiveType':PrimitiveType[_0x44fe2a(0x343,0x37e)],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures'][_0x4d9e88(0xe8,0x16e)],'currentParticlesPosition':()=>this[_0x44fe2a(0x363,0x36c)]['particlesTextures'][_0x4d9e88(0x154,0x154)],'postProcessingPosition':()=>this['computing']['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this[_0x44fe2a(0x39c,0x36c)]['particlesTextures'][_0x4d9e88(0x252,0x1c2)],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this[_0x44fe2a(0x40e,0x44f)],'domain':()=>{var _0x2d1267,_0x208cb1;function _0x1b198c(_0x536822,_0x47d4a7){return _0x4d9e88(_0x47d4a7,_0x536822- -0x2ee);}const _0x29af7e=new Cartesian2(((_0x2d1267=this['options']['domain'])===null||_0x2d1267===void 0x0?void 0x0:_0x2d1267['min'])??this[_0x17bc24(-0x5c,0xc)]['windData']['speed'][_0x1b198c(-0x16a,-0x1d0)],((_0x208cb1=this['options']['domain'])===null||_0x208cb1===void 0x0?void 0x0:_0x208cb1[_0x1b198c(-0x127,-0x1a9)])??this['computing']['windData']['speed'][_0x1b198c(-0x127,-0xfb)]);function _0x17bc24(_0x5d2f3c,_0x3b0f60){return _0x44fe2a(_0x5d2f3c,_0x3b0f60- -0x360);}return _0x29af7e;},'displayRange':()=>{var _0x2bf311,_0x4eeac1;function _0x5d6575(_0x6c4862,_0x5e3d3c){return _0x4d9e88(_0x6c4862,_0x5e3d3c- -0x37e);}const _0x31f87f=new Cartesian2(((_0x2bf311=this[_0x5d6575(-0x215,-0x21a)]['displayRange'])===null||_0x2bf311===void 0x0?void 0x0:_0x2bf311['min'])??this['computing']['windData'][_0x164925(0x2f9,0x364)][_0x5d6575(-0x1e2,-0x1fa)],((_0x4eeac1=this[_0x164925(0x344,0x32f)]['displayRange'])===null||_0x4eeac1===void 0x0?void 0x0:_0x4eeac1[_0x5d6575(-0x166,-0x1b7)])??this[_0x5d6575(-0x1fe,-0x27d)][_0x164925(0x3a0,0x391)][_0x5d6575(-0x274,-0x265)]['max']);function _0x164925(_0x154724,_0x331c24){return _0x4d9e88(_0x331c24,_0x154724-0x1e0);}return _0x31f87f;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context'][_0x4d9e88(0x133,0xff)]/this[_0x44fe2a(0x3d2,0x38e)][_0x4d9e88(0x142,0x124)],'pixelSize':()=>this['viewerParameters'][_0x44fe2a(0x3df,0x37a)],'lineWidth':()=>{function _0x3574c2(_0x3fbe01,_0x139aca){return _0x4d9e88(_0x139aca,_0x3fbe01-0x325);}const _0x59bd9a={};function _0x378064(_0x1bac50,_0x541043){return _0x4d9e88(_0x541043,_0x1bac50- -0xa1);}_0x59bd9a['min']=0x1,_0x59bd9a['max']=0x2;const _0x15d0ca=this['options'][_0x3574c2(0x46a,0x46b)]||_0x59bd9a;return new Cartesian2(_0x15d0ca[_0x378064(0xe3,0x58)],_0x15d0ca['max']);},'lineLength':()=>{const _0xcf15d5={};_0xcf15d5[_0x5cccb9(0x3b5,0x3a3)]=0x14,_0xcf15d5[_0x5cccb9(0x3f8,0x3b2)]=0x64;const _0xbdbce0=this['options'][_0x46c8de(-0x1f5,-0x16a)]||_0xcf15d5;function _0x46c8de(_0x5334ff,_0x1c440){return _0x44fe2a(_0x1c440,_0x5334ff- -0x5a6);}function _0x5cccb9(_0x22439c,_0x17e73e){return _0x44fe2a(_0x17e73e,_0x22439c- -0x3a);}return new Cartesian2(_0xbdbce0['min'],_0xbdbce0[_0x5cccb9(0x3f8,0x3b7)]);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x44fe2a(0x3cd,0x39f)],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x44fe2a(0x2eb,0x360)](),'rawRenderState':this['createRawRenderState'](_0x4ee677)}),_0x4c1e85={};return _0x4c1e85[_0x4d9e88(0x180,0x14e)]=_0x172463,_0x4c1e85;}['onParticlesTextureSizeChange'](){const _0x3dd12c=this['createSegmentsGeometry']();this[_0x1e3ac1(0x450,0x427)]['segments']['geometry']=_0x3dd12c;function _0x25f180(_0x2800e0,_0xa49c6b){return _0x2e1fe6(_0xa49c6b-0x634,_0x2800e0);}const _0x21695d={};function _0x1e3ac1(_0x5f0831,_0x40e02e){return _0x5e8d5a(_0x5f0831,_0x40e02e-0x365);}_0x21695d['context']=this['context'],_0x21695d[_0x1e3ac1(0x3dc,0x45e)]=_0x3dd12c,_0x21695d['attributeLocations']=this['primitives']['segments'][_0x25f180(0x478,0x454)],_0x21695d['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0x518ed4=VertexArray['fromGeometry'](_0x21695d);this['primitives']['segments'][_0x1e3ac1(0x478,0x4d3)]&&(this['primitives']['segments']['commandToExecute']['vertexArray']=_0x518ed4);}['onColorTableChange'](){this['colorTable'][_0x3f6be4(-0x33f,-0x311)]();function _0x3f6be4(_0x3a49c4,_0x300e41){return _0x2e1fe6(_0x3a49c4- -0xe9,_0x300e41);}function _0x3faca6(_0x47bbbc,_0x16e36b){return _0x5e8d5a(_0x47bbbc,_0x16e36b- -0x85);}this[_0x3f6be4(-0x247,-0x234)]=this['createColorTableTexture']();}[_0x5e8d5a(0x96,0x66)](_0x1e876d){function _0x3959af(_0x57fab2,_0x12d7cb){return _0x2e1fe6(_0x12d7cb-0x514,_0x57fab2);}function _0xa38e3a(_0x342aa9,_0x5eed09){return _0x5e8d5a(_0x342aa9,_0x5eed09- -0x1d2);}const _0xa81981=_0x1e876d['colors']&&JSON['stringify'](_0x1e876d[_0x3959af(0x3b8,0x3c4)])!==JSON['stringify'](this['options']['colors']);this['options']=deepMerge(_0x1e876d,this['options']),_0xa81981&&this[_0x3959af(0x39f,0x34f)]();}[_0x5e8d5a(-0xc,0x58)](){function _0x2ac80c(_0xebac89,_0x2a9c0c){return _0x5e8d5a(_0x2a9c0c,_0xebac89- -0x89);}Object['values'](this[_0x17fd2d(0x465,0x426)])[_0x2ac80c(0xcd,0xce)](_0x35cb19=>{function _0x53702b(_0x3d1bce,_0x51ca14){return _0x2ac80c(_0x51ca14-0x3aa,_0x3d1bce);}_0x35cb19[_0x53702b(0x3c7,0x379)]();});function _0x17fd2d(_0x34dc67,_0x3458a5){return _0x5e8d5a(_0x3458a5,_0x34dc67-0x3b2);}Object['values'](this[_0x2ac80c(0x39,-0xb)])[_0x17fd2d(0x508,0x562)](_0x2f2c3a=>{_0x2f2c3a['destroy']();}),this[_0x17fd2d(0x502,0x51f)]['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x14efa8,_0x3879d1,_0x39c3d2,_0x17b636,_0x46ff2e){this['context']=_0x14efa8,this['options']=_0x39c3d2,this['viewerParameters']=_0x17b636,this['computing']=new WindParticlesComputing(_0x14efa8,_0x3879d1,_0x39c3d2,_0x17b636,_0x46ff2e),this['rendering']=new WindParticlesRendering(_0x14efa8,_0x39c3d2,_0x17b636,this['computing']),this['clearFramebuffers']();}['getPrimitives'](){const _0x273ba6=[this[_0x1da1ad(-0x164,-0x102)]['primitives'][_0x1da1ad(0x42,-0x2a)],this['computing']['primitives'][_0x29b6fc(-0x206,-0x18c)],this[_0x1da1ad(-0x130,-0x102)][_0x29b6fc(-0x11c,-0x11f)][_0x29b6fc(-0xfe,-0x140)],this['rendering'][_0x1da1ad(-0x77,-0xad)]['segments']];function _0x1da1ad(_0x288071,_0x35fc21){return _0x5e8d5a(_0x288071,_0x35fc21- -0x16f);}function _0x29b6fc(_0x3792d7,_0x3069b8){return _0x2e1fe6(_0x3069b8-0xcd,_0x3792d7);}return _0x273ba6;}['clearFramebuffers'](){function _0x3db7ce(_0x2b0d6d,_0x5062e1){return _0x2e1fe6(_0x2b0d6d-0x14b,_0x5062e1);}function _0x5b3665(_0x53cf25,_0xb8dce){return _0x2e1fe6(_0xb8dce-0x209,_0x53cf25);}const _0x2cd205=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x5b3665(0x101,0x9b)]});Object['keys'](this['rendering'][_0x5b3665(0x5e,0xe)])[_0x3db7ce(-0xd,-0x30)](_0x432874=>{_0x2cd205['framebuffer']=this['rendering'][_0x6a433(0x49,-0x47)][_0x432874];function _0x6a433(_0x171335,_0x3b61fe){return _0x5b3665(_0x171335,_0x3b61fe- -0x55);}function _0x44fcad(_0x21a3a4,_0x5f223d){return _0x5b3665(_0x5f223d,_0x21a3a4- -0x56);}_0x2cd205[_0x6a433(0x48,-0x22)](this['context']);});}[_0x5e8d5a(0x1a9,0x14f)](_0x240c9a){let _0x357c83=![];_0x240c9a['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x240c9a['particlesTextureSize']&&(_0x357c83=!![]);const _0x670814=deepMerge(_0x240c9a,this['options']);if(_0x670814['particlesTextureSize']<0x1)throw new Error(_0x3134db(0x30b,0x2eb));this['options']=_0x670814,this[_0x3134db(0x3a7,0x333)]['updateOptions'](_0x240c9a),this['computing']['updateOptions'](_0x240c9a);function _0x1e0cfb(_0x32729c,_0x26cb78){return _0x5e8d5a(_0x32729c,_0x26cb78-0xad);}function _0x3134db(_0x162610,_0xd2627){return _0x5e8d5a(_0x162610,_0xd2627-0x26d);}_0x357c83&&(this[_0x3134db(0x2ed,0x2da)]['destroyParticlesTextures'](),this[_0x3134db(0x267,0x2da)]['createParticlesTextures'](),this[_0x1e0cfb(0x12a,0x173)][_0x1e0cfb(0x115,0x13a)]());}['applyViewerParameters'](_0x37d1fe){this['viewerParameters']=_0x37d1fe,this[_0x1d7131(0x138,0x12a)]['viewerParameters']=_0x37d1fe;function _0x1d7131(_0xe4d45b,_0x1cccbf){return _0x2e1fe6(_0x1cccbf-0x36b,_0xe4d45b);}this['rendering']['viewerParameters']=_0x37d1fe;}['destroy'](){this['computing']['destroy']();function _0x3fa32c(_0x5137d1,_0x5c6e22){return _0x2e1fe6(_0x5c6e22-0x3a6,_0x5137d1);}this['rendering'][_0x3fa32c(0x11b,0x150)]();}}function _0x56db(){const _0x253e67=['wrapT','vdata','Cesium','getUVByPoint','modelMatrix','colorTextures','rectangle','_bilinearInterpolation','10ksEJDB','getUpdatePositionShader','textures','_onMouseUpEvent','layer','mouseDown','4125058bAlOKS','frameRateMonitor','createRenderingFramebuffers','random','commandType','flipY','dropRateBump','unbindEvent','WindLayer','processWindData','tlng','Math','magnificationFilter','getOwnPropertyDescriptor','createCommand','east','cols','pickEllipsoid','_map','clearCommand','vmax','globalCompositeOperation','WindUtil','scene','commandList','removeEventListener','getDataAtLonLat','#ffffff','_showHook','toRadians','windData','LayerUtil','particlesSpeed','ellipsoid','toGridXY','924064vfbwgs','changed','max','particlesNumber','SceneMode','update','vertexShaderSource','MIN_VALUE','color','canvasContext','mouseMove','_mountedHook','type','_tomap','createColorTableTexture','OPAQUE','2897808mGpkuo','getDirection','alpha','_onMouseDownEvent','calculateSpeed','_updateIng','mouseUp','height','number','primitiveType','frameRateAdjustment','PointTrans','wheel','componentDatatype','changeOptions','colorTable','push','particles','floor','getUVByXY','error','forEach','_removedHook','requestAnimationFrame','cos','fragmentShaderSource','createComputingPrimitives','container','persists','colors','UNSIGNED_INT','_setOptionsHook','lonRange','_colorRamp','pointer-events','isDynamic','SRC_ALPHA','bounds','getColor','bind','isDestroyed','xmin','__esModule','RGBA','longitude','commandToExecute','1967332vGWBlf','preExecute','mouse_move','getCalculateSpeedShader','register','getParticles','ymin','maxAge','Compute','updatePosition','clientHeight','canvasHeight','destroy','blendEquation','_randomParticle','uniformMap','12840230WZHwls','particlesTextureSize','getPostProcessingPositionShader','blue','dynamic','getSegmentDrawFragmentShader','initWorker','updateViewerParameters','Cartesian2','owner','updateOptions','cancelAnimationFrame','renderState','mouse_down','canvasWidth','drawingBufferWidth','speedRate','computing','default','call','rawRenderState','outputTexture','bindEvent','globe','setDate','data','frameRate','resize','dropRate','particlesTextures','show','pixelSize','clientWidth','speedFactor','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','TRIANGLES','length','grid','142VBLkLb','ONE_MINUS_SRC_ALPHA','umin','speed','_speedRate','array','pixelFormat','getU','north','worker','camera','onParticlesTextureSizeChange','FUNC_ADD','context','drawingBufferHeight','setData','stroke','BaseLayer','style','absolute','rows','addEventListener','alt','CLAMP_TO_EDGE','componentsPerAttribute','flatMap','canvas','#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','fixedHeight','value','SCENE3D','postProcessingPosition','_calc_speedRate','autoClear','DomUtil','createRenderingTextures','CanvasWindField','viewerParameters','MAX_VALUE','_animateFrame','particleSystem','postMessage','ymax','154218DcFcyl','depthMask','_calcUV','round','lineWidth','lineLength','framebuffers','now','segmentsColor','abs','_updateIng2','getSpeed','toDegrees','segments','#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','windTextures','99nJbICp','ColorRamp','Draw','currentParticlesPosition','mars3d-canvasWind','primitives','init','get','windField','rendering','defineProperty','_onMouseMoveEvent','pointerEvents','_createCanvas','original','isInExtent','_addedHook','attributeLocations','west','options','lng','clear','initFrameRate','19283PWAKGi','onmessage','latRange','mode','execute','FLOAT','previousParticlesPosition','position','LINEAR','talt','samplingWindow','reCreateWindTextures','width','framebuffer','values','warn','south','destination-in','Unknown\x20command\x20type','willReadFrequently','normal','onColorTableChange','wrapS','toWindowCoordinates','createSegmentsGeometry','quietPeriod','NEAREST','EventType','min','xmax','off','sources','sqrt','CanvasWindLayer','tlat','_drawLines','left','geometry','minificationFilter','lat','reverse','zIndex','EllipsoidalOccluder','morphComplete'];_0x56db=function(){return _0x253e67;};return _0x56db();}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x2e1fe6(-0x21b,-0x1c7)],_0x1c3357={};_0x1c3357['min']=0x1,_0x1c3357[_0x2e1fe6(-0x17b,-0x127)]=0x2;const _0x36ff20={};_0x36ff20['min']=0x14,_0x36ff20[_0x5e8d5a(0xe1,0x133)]=0x64;const _0x192cb0={};_0x192cb0[_0x2e1fe6(-0x251,-0x243)]=0x64,_0x192cb0['fixedHeight']=0x0,_0x192cb0['lineWidth']=_0x1c3357,_0x192cb0[_0x5e8d5a(0xf2,0xb2)]=_0x36ff20,_0x192cb0['speedFactor']=0x1,_0x192cb0[_0x5e8d5a(0xd3,0x78)]=0.003,_0x192cb0[_0x2e1fe6(-0x19a,-0x220)]=0.001,_0x192cb0[_0x2e1fe6(-0x150,-0xe9)]=['rgb(206,255,255)'],_0x192cb0['flipY']=![],_0x192cb0[_0x2e1fe6(-0x24e,-0x214)]=!![];const DEF_OPTIONS=_0x192cb0;class WindLayer extends BaseLayer$1{constructor(_0x39b2f3={}){_0x39b2f3={...DEF_OPTIONS,..._0x39b2f3};function _0x60ae38(_0x4f359e,_0x1a3263){return _0x2e1fe6(_0x4f359e-0x6bf,_0x1a3263);}super(_0x39b2f3),this[_0x60ae38(0x571,0x559)](_0x39b2f3,_0x39b2f3);}get['layer'](){function _0x4d5e2a(_0x410b1f,_0x35d62c){return _0x2e1fe6(_0x410b1f-0x674,_0x35d62c);}return this[_0x4d5e2a(0x488,0x4e6)];}get[_0x2e1fe6(-0x239,-0x26d)](){function _0x385d67(_0x22e5a2,_0x527860){return _0x5e8d5a(_0x22e5a2,_0x527860- -0x2fd);}return this['options'][_0x385d67(-0x24b,-0x288)];}set['data'](_0xf0f1dc){this['options']['data']=_0xf0f1dc,this['setData'](_0xf0f1dc);}get['colors'](){function _0xd7d3ad(_0x583af5,_0x22bdaf){return _0x5e8d5a(_0x22bdaf,_0x583af5- -0x9c);}function _0x503530(_0x4c0ec2,_0x5c224b){return _0x2e1fe6(_0x5c224b-0x589,_0x4c0ec2);}return this[_0x503530(0x3f4,0x3ab)][_0xd7d3ad(0xc2,0x32)];}set[_0x2e1fe6(-0x150,-0x19e)](_0x389da7){this[_0x41e1a3(0x2e9,0x327)]['colors']=_0x389da7;function _0x4b39ba(_0x209cd3,_0x54bca9){return _0x5e8d5a(_0x209cd3,_0x54bca9-0xa5);}const _0x375021={};_0x375021[_0x41e1a3(0x377,0x3de)]=_0x389da7;function _0x41e1a3(_0x55da67,_0x2e6828){return _0x2e1fe6(_0x55da67-0x4c7,_0x2e6828);}this[_0x41e1a3(0x379,0x320)](this['options'],_0x375021);}['_showHook'](_0x24177f){_0x24177f?this['_addedHook']():this['_removedHook']();}[_0x2e1fe6(-0x172,-0x177)](){}[_0x2e1fe6(-0x1e1,-0x249)](){this['scene']=this['_map'][_0x1e9857(0x4dd,0x4b8)],this[_0x1e9857(0x444,0x472)]=this[_0x557641(0x4de,0x452)][_0x1e9857(0x444,0x480)];function _0x557641(_0x4d0436,_0x458c2f){return _0x2e1fe6(_0x458c2f-0x5e0,_0x4d0436);}this['options'][_0x1e9857(0x42d,0x409)]&&this[_0x1e9857(0x449,0x47f)](this['options']['data']);if(!this[_0x1e9857(0x4e4,0x55b)]||!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']},this[_0x557641(0x31f,0x395)](),this[_0x1e9857(0x462,0x3ef)]=new WindParticleSystem(this[_0x557641(0x49e,0x457)][_0x557641(0x3a8,0x3c1)],this['windData'],this[_0x1e9857(0x488,0x411)],this[_0x557641(0x406,0x3d9)],this[_0x1e9857(0x4dd,0x4a9)]),this[_0x557641(0x366,0x3f4)]=this[_0x1e9857(0x462,0x426)]['getPrimitives']();function _0x1e9857(_0x59aff0,_0x22d015){return _0x2e1fe6(_0x59aff0-0x666,_0x22d015);}this['primitives']['forEach'](_0x19b273=>{function _0x5cc930(_0x2ae5fa,_0x485107){return _0x557641(_0x2ae5fa,_0x485107- -0x66f);}this[_0x5cc930(-0x18a,-0x218)]['primitives']['add'](_0x19b273);}),this[_0x557641(0x44a,0x3be)]['percentageChanged']=0.01,this[_0x557641(0x378,0x3be)]['changed']['addEventListener'](this[_0x1e9857(0x41b,0x3c3)]['bind'](this)),this['scene']['morphComplete'][_0x557641(0x442,0x3c9)](this[_0x1e9857(0x41b,0x494)]['bind'](this)),window[_0x557641(0x3c9,0x3c9)]('resize',this[_0x1e9857(0x41b,0x410)][_0x557641(0x419,0x49a)](this));}[_0x2e1fe6(-0x157,-0xc9)](){function _0x1df964(_0x152942,_0x35fe2a){return _0x5e8d5a(_0x152942,_0x35fe2a- -0x2e9);}this['camera'][_0x5a7409(-0x283,-0x1fb)][_0x5a7409(-0x28e,-0x2a8)](this['updateViewerParameters']['bind'](this)),this['scene'][_0x5a7409(-0x2b6,-0x26e)]['removeEventListener'](this['updateViewerParameters'][_0x1df964(-0x144,-0x181)](this));function _0x5a7409(_0x2c04c8,_0x8f7de8){return _0x2e1fe6(_0x2c04c8- -0x107,_0x8f7de8);}window['removeEventListener'](_0x5a7409(-0x33e,-0x2cf),this['updateViewerParameters']['bind'](this)),this['primitives']&&(this['primitives'][_0x5a7409(-0x25f,-0x218)](_0x122c25=>{function _0x3302c9(_0x1577f9,_0xdb0a7a){return _0x1df964(_0xdb0a7a,_0x1577f9-0x104);}this[_0x3302c9(-0xc0,-0x7f)]['primitives']['remove'](_0x122c25);}),delete this['primitives']),this['particleSystem']&&(this['particleSystem']['destroy'](),delete this[_0x1df964(-0x226,-0x23f)]);}['setData'](_0x19d357,_0x5e83ff){function _0x3a257e(_0x19c83a,_0x3098a2){return _0x5e8d5a(_0x19c83a,_0x3098a2-0x19d);}this['windData']=this['processWindData'](_0x19d357);if(_0x5e83ff){this[_0x3a257e(0x2c0,0x2f4)](),this[_0x39dbe7(0x405,0x48e)]();return;}function _0x39dbe7(_0x2e77d5,_0x3163c9){return _0x5e8d5a(_0x3163c9,_0x2e77d5-0x338);}this['particleSystem']?(this[_0x39dbe7(0x3e2,0x3d0)][_0x3a257e(0x277,0x20a)]['updateWindData'](this['windData']),this['scene']['requestRender']()):this['_addedHook']();}['_setOptionsHook'](_0x493873,_0x486975){this['particleSystem']&&(this['particleSystem']['changeOptions'](_0x486975),this['scene']['requestRender']());}['processWindData'](_0x291852){var _0x44d106,_0x382fa4;const _0x2a8370={..._0x291852},_0x172a4c=_0x2a8370;!_0x172a4c['height']&&_0x172a4c['rows']&&(_0x172a4c['height']=_0x172a4c['rows']);!_0x172a4c[_0x11dbbb(-0x266,-0x269)]&&_0x172a4c[_0x558ce8(0x142,0x187)]&&(_0x172a4c['width']=_0x172a4c['cols']);!_0x172a4c[_0x558ce8(0x18a,0x1a0)]&&(_0x172a4c['bounds']={'west':_0x172a4c['xmin'],'south':_0x172a4c[_0x558ce8(0x76,0xc4)],'east':_0x172a4c['xmax'],'north':_0x172a4c[_0x558ce8(0xd0,0x145)]});if(!_0x172a4c['u']){const _0x266b5a={};_0x266b5a['array']=_0x291852['udata'],_0x266b5a['min']=_0x291852[_0x11dbbb(-0x2bf,-0x2c5)],_0x266b5a[_0x11dbbb(-0x25c,-0x216)]=_0x291852['umax'],_0x172a4c['u']=_0x266b5a;}function _0x11dbbb(_0x44c739,_0xf1bd75){return _0x2e1fe6(_0xf1bd75- -0x9b,_0x44c739);}if(!_0x172a4c['v']){const _0x266a2c={};_0x266a2c['array']=_0x291852['vdata'],_0x266a2c['min']=_0x291852['vmin'],_0x266a2c[_0x558ce8(0x157,0x179)]=_0x291852[_0x11dbbb(-0x243,-0x227)],_0x172a4c['v']=_0x266a2c;}function _0x558ce8(_0x74f4dd,_0x44f1a3){return _0x5e8d5a(_0x44f1a3,_0x74f4dd-0x24);}if(((_0x44d106=_0x172a4c['speed'])===null||_0x44d106===void 0x0?void 0x0:_0x44d106[_0x11dbbb(-0x1d4,-0x259)])===undefined||((_0x382fa4=_0x172a4c[_0x558ce8(0xa9,0x10a)])===null||_0x382fa4===void 0x0?void 0x0:_0x382fa4['max'])===undefined||_0x172a4c[_0x558ce8(0xa9,0x95)]['array']===undefined){const _0x3ffe76={'array':new Float32Array(_0x172a4c['u'][_0x558ce8(0xab,0x122)]['length']),'min':Number[_0x11dbbb(-0x289,-0x2a1)],'max':Number[_0x11dbbb(-0x1ea,-0x211)]};for(let _0x4baa40=0x0;_0x4baa40<_0x172a4c['u'][_0x11dbbb(-0x272,-0x2c2)][_0x11dbbb(-0x271,-0x2c9)];_0x4baa40++){_0x3ffe76['array'][_0x4baa40]=Math['sqrt'](_0x172a4c['u'][_0x11dbbb(-0x236,-0x2c2)][_0x4baa40]*_0x172a4c['u'][_0x558ce8(0xab,0x1f)][_0x4baa40]+_0x172a4c['v']['array'][_0x4baa40]*_0x172a4c['v']['array'][_0x4baa40]),_0x3ffe76['array'][_0x4baa40]!==0x0&&(_0x3ffe76[_0x11dbbb(-0x1ed,-0x259)]=Math[_0x11dbbb(-0x231,-0x259)](_0x3ffe76['min'],_0x3ffe76[_0x558ce8(0xab,0xf8)][_0x4baa40]),_0x3ffe76['max']=Math['max'](_0x3ffe76[_0x558ce8(0x157,0x1c4)],_0x3ffe76[_0x11dbbb(-0x2c1,-0x2c2)][_0x4baa40]));}_0x172a4c['speed']=_0x3ffe76;}return _0x172a4c;}[_0x2e1fe6(-0x24b,-0x23b)](){var _0x25bd94;const _0x258261=this['scene'];if(!_0x258261)return;const _0x36dd07=_0x258261['canvas'];function _0x224bf8(_0x2b76ed,_0x27ba11){return _0x5e8d5a(_0x27ba11,_0x2b76ed-0x75);}const _0x3fbe7e={};_0x3fbe7e['x']=0x0,_0x3fbe7e['y']=0x0;const _0xeda44e={};_0xeda44e['x']=0x0,_0xeda44e['y']=_0x36dd07[_0x224bf8(0xcb,0xf0)];const _0x3835f2={};_0x3835f2['x']=_0x36dd07[_0x26975d(-0x164,-0xd9)],_0x3835f2['y']=0x0;const _0x57fe2f={};_0x57fe2f['x']=_0x36dd07['clientWidth'],_0x57fe2f['y']=_0x36dd07[_0x224bf8(0xcb,0x61)];const _0x818b83=[_0x3fbe7e,_0xeda44e,_0x3835f2,_0x57fe2f];let _0x44c17c=0xb4,_0x3a86eb=-0xb4,_0x2cb00c=0x5a,_0x504c23=-0x5a;function _0x26975d(_0x40634e,_0x2a1b2e){return _0x2e1fe6(_0x2a1b2e-0x159,_0x40634e);}let _0x25d0b7=![];for(const _0x58571b of _0x818b83){const _0x379e97=_0x258261[_0x26975d(-0xe5,-0xc9)][_0x224bf8(0x194,0x1b6)](new Cesium$1['Cartesian2'](_0x58571b['x'],_0x58571b['y']),_0x258261['globe']['ellipsoid']);if(!_0x379e97){_0x25d0b7=!![];break;}const _0x3f2c1e=_0x258261[_0x26975d(-0xf7,-0xe2)][_0x224bf8(0x1a4,0x205)]['cartesianToCartographic'](_0x379e97),_0x397557=Cesium$1[_0x26975d(0x3f,-0x3c)]['toDegrees'](_0x3f2c1e[_0x224bf8(0x1e2,0x171)]),_0x4d95af=Cesium$1['Math']['toDegrees'](_0x3f2c1e['latitude']);_0x44c17c=Math['min'](_0x44c17c,_0x397557),_0x3a86eb=Math[_0x26975d(0x6,-0x22)](_0x3a86eb,_0x397557),_0x2cb00c=Math[_0x224bf8(0x165,0x11b)](_0x2cb00c,_0x4d95af),_0x504c23=Math['max'](_0x504c23,_0x4d95af);}if(!_0x25d0b7){const _0x465270=new Cesium$1[(_0x224bf8(0xd9,0xc2))](Math['max'](this[_0x26975d(0x28,-0x29)]['bounds']['west'],_0x44c17c),Math['min'](this['windData']['bounds'][_0x224bf8(0x192,0x211)],_0x3a86eb)),_0x23e3bf=new Cesium$1['Cartesian2'](Math['max'](this['windData']['bounds']['south'],_0x2cb00c),Math['min'](this['windData']['bounds']['north'],_0x504c23)),_0x1ef13b=(_0x465270['y']-_0x465270['x'])*0.05,_0x53e750=(_0x23e3bf['y']-_0x23e3bf['x'])*0.05;_0x465270['x']=Math[_0x26975d(-0xb2,-0x22)](this[_0x224bf8(0x1a1,0x111)]['bounds']['west'],_0x465270['x']-_0x1ef13b),_0x465270['y']=Math['min'](this['windData']['bounds']['east'],_0x465270['y']+_0x1ef13b),_0x23e3bf['x']=Math['max'](this[_0x224bf8(0x1a1,0x1ae)][_0x26975d(-0x2a,0x11)][_0x26975d(-0xb1,-0x71)],_0x23e3bf['x']-_0x53e750),_0x23e3bf['y']=Math[_0x26975d(-0x45,-0x65)](this[_0x224bf8(0x1a1,0x133)]['bounds']['north'],_0x23e3bf['y']+_0x53e750),this[_0x224bf8(0x11c,0x158)]['lonRange']=_0x465270,this[_0x26975d(-0x5a,-0xae)]['latRange']=_0x23e3bf;const _0x3c106a=this[_0x224bf8(0x1a1,0x145)][_0x26975d(0x6c,0x11)][_0x26975d(0x40,-0x38)]-this[_0x224bf8(0x1a1,0x219)][_0x26975d(-0x42,0x11)]['west'],_0x4f69ed=this[_0x26975d(0x65,-0x29)]['bounds']['north']-this[_0x224bf8(0x1a1,0x1a9)][_0x26975d(0x95,0x11)]['south'],_0x16d387=(_0x465270['y']-_0x465270['x'])/_0x3c106a,_0x5b1a2b=(_0x23e3bf['y']-_0x23e3bf['x'])/_0x4f69ed,_0xc34a5c=Math['min'](_0x16d387,_0x5b1a2b),_0xe9b69a=0x3e8*_0xc34a5c;_0xe9b69a>0x0&&(this[_0x224bf8(0x11c,0x11c)][_0x224bf8(0xf0,0x14e)]=Math['max'](0x0,Math['min'](0x3e8,_0xe9b69a)));}this['viewerParameters']['sceneMode']=this['scene']['mode'],(_0x25bd94=this['particleSystem'])===null||_0x25bd94===void 0x0||_0x25bd94['applyViewerParameters'](this['viewerParameters']);}[_0x5e8d5a(0x1ae,0x128)](_0x5b3922,_0x5584d8){function _0x6c0812(_0x39a00f,_0x1c733c){return _0x2e1fe6(_0x1c733c-0x3e1,_0x39a00f);}const {bounds:_0x4a4876,width:_0x8f9ea0,height:_0x5ab72b,u:_0x457cf3,v:_0x2fd514,speed:_0x3e8baa}=this['windData'],{flipY:_0x3a248d}=this['options'];if(_0x5b3922<_0x4a4876['west']||_0x5b3922>_0x4a4876[_0x525530(0xc,-0x6f)]||_0x5584d8<_0x4a4876['south']||_0x5584d8>_0x4a4876[_0x525530(-0x87,-0x84)])return null;const _0x3d3864=(_0x5b3922-_0x4a4876[_0x6c0812(0x22e,0x202)])/(_0x4a4876[_0x525530(0xc,-0x6e)]-_0x4a4876['west'])*(_0x8f9ea0-0x1);let _0x259b64=(_0x5584d8-_0x4a4876[_0x525530(-0x2d,-0x68)])/(_0x4a4876['north']-_0x4a4876['south'])*(_0x5ab72b-0x1);_0x3a248d&&(_0x259b64=_0x5ab72b-0x1-_0x259b64);const _0x57fb66=Math['floor'](_0x3d3864),_0x1ec020=Math['floor'](_0x259b64),_0x5d1c5b=Math['floor'](_0x3d3864),_0x2659c7=Math['min'](_0x5d1c5b+0x1,_0x8f9ea0-0x1),_0x54d8ed=Math['floor'](_0x259b64),_0x235fd1=Math[_0x6c0812(0x1c5,0x223)](_0x54d8ed+0x1,_0x5ab72b-0x1),_0x27f634=_0x3d3864-_0x5d1c5b,_0x3f2cd9=_0x259b64-_0x54d8ed,_0x39611e=_0x1ec020*_0x8f9ea0+_0x57fb66,_0x31862b=_0x54d8ed*_0x8f9ea0+_0x5d1c5b,_0x199732=_0x54d8ed*_0x8f9ea0+_0x2659c7,_0x24a2bf=_0x235fd1*_0x8f9ea0+_0x5d1c5b,_0x37fd5d=_0x235fd1*_0x8f9ea0+_0x2659c7,_0x365128=_0x457cf3['array'][_0x31862b],_0x5ee51f=_0x457cf3[_0x6c0812(0x204,0x1ba)][_0x199732],_0x151d44=_0x457cf3[_0x525530(-0x8a,-0x99)][_0x24a2bf],_0x2612f2=_0x457cf3[_0x6c0812(0x159,0x1ba)][_0x37fd5d],_0x47cd1e=(0x1-_0x27f634)*(0x1-_0x3f2cd9)*_0x365128+_0x27f634*(0x1-_0x3f2cd9)*_0x5ee51f+(0x1-_0x27f634)*_0x3f2cd9*_0x151d44+_0x27f634*_0x3f2cd9*_0x2612f2,_0x26e365=_0x2fd514[_0x6c0812(0x20c,0x1ba)][_0x31862b],_0x332c86=_0x2fd514['array'][_0x199732],_0x2e1218=_0x2fd514['array'][_0x24a2bf],_0x43bd60=_0x2fd514[_0x6c0812(0x19a,0x1ba)][_0x37fd5d],_0x560f52=(0x1-_0x27f634)*(0x1-_0x3f2cd9)*_0x26e365+_0x27f634*(0x1-_0x3f2cd9)*_0x332c86+(0x1-_0x27f634)*_0x3f2cd9*_0x2e1218+_0x27f634*_0x3f2cd9*_0x43bd60,_0x45ef01=Math['sqrt'](_0x47cd1e*_0x47cd1e+_0x560f52*_0x560f52),_0x555589={};_0x555589['u']=_0x457cf3['array'][_0x39611e];function _0x525530(_0x88f3c0,_0x4d96ed){return _0x5e8d5a(_0x4d96ed,_0x88f3c0- -0x111);}_0x555589['v']=_0x2fd514[_0x6c0812(0x23c,0x1ba)][_0x39611e],_0x555589['speed']=_0x3e8baa['array'][_0x39611e];const _0x452b03={};_0x452b03['u']=_0x47cd1e,_0x452b03['v']=_0x560f52,_0x452b03['speed']=_0x45ef01;const _0x3b25b={};return _0x3b25b[_0x6c0812(0x269,0x1fe)]=_0x555589,_0x3b25b['interpolated']=_0x452b03,_0x3b25b;}}mars3d__namespace[_0x2e1fe6(-0x181,-0x170)][_0x5e8d5a(0x58,0x50)]('wind',WindLayer),mars3d__namespace['layer'][_0x5e8d5a(0x197,0x116)]=WindLayer;class CanvasParticle{constructor(){function _0x3683b1(_0x4fad02,_0x4a0c71){return _0x5e8d5a(_0x4a0c71,_0x4fad02-0xb6);}this['lng']=null;function _0x12b4a3(_0x5b4731,_0xcd1ded){return _0x5e8d5a(_0xcd1ded,_0x5b4731-0x5e);}this['lat']=null,this[_0x3683b1(0x1ce,0x1e5)]=null,this[_0x12b4a3(0x154,0xfe)]=null,this['age']=null,this[_0x12b4a3(0xe3,0xad)]=null;}['destroy'](){for(const _0x33d694 in this){delete this[_0x33d694];}}}class CanvasWindField{constructor(_0x305aab){this['setOptions'](_0x305aab);}get[_0x5e8d5a(0x34,0x6c)](){return this['_speedRate'];}set['speedRate'](_0x4e7445){this[_0xe250a0(0xea,0xbc)]=(0x64-(_0x4e7445>0x63?0x63:_0x4e7445))*0x64;function _0xe250a0(_0x73289,_0x524247){return _0x5e8d5a(_0x73289,_0x524247-0x36);}function _0x14e736(_0x1545af,_0xd06c37){return _0x5e8d5a(_0x1545af,_0xd06c37-0x111);}this['_calc_speedRate']=[(this['xmax']-this[_0xe250a0(0x14a,0x1a0)])/this['_speedRate'],(this[_0xe250a0(0x16f,0xe2)]-this['ymin'])/this[_0xe250a0(0xdb,0xbc)]];}get[_0x2e1fe6(-0x25b,-0x203)](){return this['_maxAge'];}set['maxAge'](_0x55c7d3){this['_maxAge']=_0x55c7d3;}['setOptions'](_0x1a391e){function _0x56c310(_0x5a86a5,_0x44e389){return _0x2e1fe6(_0x5a86a5- -0x92,_0x44e389);}function _0x122e86(_0x1037cf,_0x1ef157){return _0x5e8d5a(_0x1037cf,_0x1ef157-0xc);}this[_0x122e86(0xc2,0xdc)]=_0x1a391e,this['maxAge']=_0x1a391e[_0x56c310(-0x2ed,-0x33c)]||0x78,this[_0x56c310(-0x2d4,-0x262)]=_0x1a391e['speedRate']||0x32,this[_0x122e86(0x164,0x15e)]=[];const _0x2c4db2=_0x1a391e[_0x56c310(-0x20c,-0x19e)]||0x1000;for(let _0x5180fe=0x0;_0x5180fe<_0x2c4db2;_0x5180fe++){const _0x32e0ab=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0x32e0ab);}}[_0x2e1fe6(-0x23a,-0x29c)](_0x1ddf03){this['rows']=_0x1ddf03[_0x5388e9(-0xb2,-0x62)],this['cols']=_0x1ddf03['cols'],this[_0x4b50f5(0x38b,0x3b8)]=_0x1ddf03['xmin'],this[_0x4b50f5(0x3a9,0x33f)]=_0x1ddf03[_0x5388e9(-0x57,-0x2d)],this[_0x5388e9(-0xf6,-0x79)]=_0x1ddf03[_0x4b50f5(0x2d2,0x2a0)],this['ymax']=_0x1ddf03['ymax'],this['grid']=[];const _0x1ba90d=_0x1ddf03['udata'],_0x47f69c=_0x1ddf03[_0x4b50f5(0x3d4,0x34f)];let _0x36d712=![];function _0x4b50f5(_0x2a7efb,_0x2beb8e){return _0x2e1fe6(_0x2beb8e-0x4fc,_0x2a7efb);}_0x1ba90d['length']===this[_0x5388e9(-0xb2,-0x40)]&&_0x1ba90d[0x0][_0x4b50f5(0x298,0x2ce)]===this[_0x4b50f5(0x360,0x36c)]&&(_0x36d712=!![]);let _0x5ac5a4=0x0,_0xbf5779=null,_0x18f5a0=null;function _0x5388e9(_0x236d70,_0x29b5a0){return _0x5e8d5a(_0x29b5a0,_0x236d70- -0x148);}for(let _0x381eaa=0x0;_0x381eaa<this['rows'];_0x381eaa++){_0xbf5779=[];for(let _0x378704=0x0;_0x378704<this[_0x5388e9(-0x2a,-0x6)];_0x378704++,_0x5ac5a4++){_0x36d712?_0x18f5a0=this['_calcUV'](_0x1ba90d[_0x381eaa][_0x378704],_0x47f69c[_0x381eaa][_0x378704]):_0x18f5a0=this['_calcUV'](_0x1ba90d[_0x5ac5a4],_0x47f69c[_0x5ac5a4]),_0xbf5779['push'](_0x18f5a0);}this[_0x4b50f5(0x2be,0x2cf)]['push'](_0xbf5779);}!this[_0x5388e9(-0x78,0xd)]['flipY']&&this['grid'][_0x5388e9(-0x4c,-0x52)]();}[_0x2e1fe6(-0x1dc,-0x19b)](){delete this[_0x1df734(0x104,0x17f)],delete this[_0x25c443(-0x29b,-0x23d)],delete this['xmin'];function _0x1df734(_0x5a91da,_0x230ff8){return _0x2e1fe6(_0x230ff8-0x397,_0x5a91da);}delete this[_0x1df734(0x266,0x1da)];function _0x25c443(_0x4f7362,_0x3b621d){return _0x5e8d5a(_0x3b621d,_0x4f7362- -0x3b9);}delete this['ymin'],delete this[_0x1df734(0x212,0x195)],delete this['grid'],delete this['particles'];}[_0x2e1fe6(-0x17e,-0x1cd)](_0x2b0c3c,_0x4193ab){function _0x3b5794(_0x43dd16,_0x18e2b4){return _0x2e1fe6(_0x18e2b4-0x47e,_0x43dd16);}const _0x46db94=(_0x2b0c3c-this['xmin'])/(this['xmax']-this['xmin'])*(this[_0x3b5794(0x283,0x2ee)]-0x1);function _0x10111b(_0xb39827,_0x3adcf9){return _0x2e1fe6(_0x3adcf9-0x132,_0xb39827);}const _0x29dc70=(this['ymax']-_0x4193ab)/(this[_0x3b5794(0x1fb,0x27c)]-this['ymin'])*(this[_0x3b5794(0x245,0x266)]-0x1);return[_0x46db94,_0x29dc70];}['getUVByXY'](_0x2442c6,_0xe8b23c){if(_0x2442c6<0x0||_0x2442c6>=this[_0xb88073(0x37c,0x354)]||_0xe8b23c>=this['rows'])return[0x0,0x0,0x0];const _0x2d974e=Math[_0xb88073(0x3b1,0x437)](_0x2442c6),_0xdf2a62=Math[_0x2e9385(-0x45,0x25)](_0xe8b23c);function _0x2e9385(_0x27a47c,_0x43468a){return _0x2e1fe6(_0x27a47c-0x116,_0x43468a);}if(_0x2d974e===_0x2442c6&&_0xdf2a62===_0xe8b23c)return this[_0x2e9385(-0x117,-0x1a4)][_0xe8b23c][_0x2442c6];const _0x202b9f=_0x2d974e+0x1,_0x37ba9c=_0xdf2a62+0x1,_0x29d78e=this['getUVByXY'](_0x2d974e,_0xdf2a62),_0x342d68=this['getUVByXY'](_0x202b9f,_0xdf2a62),_0x41b73c=this['getUVByXY'](_0x2d974e,_0x37ba9c),_0xb9c48b=this[_0x2e9385(-0x44,-0x62)](_0x202b9f,_0x37ba9c);let _0xeb7a1c=null;try{_0xeb7a1c=this[_0xb88073(0x365,0x38d)](_0x2442c6-_0x2d974e,_0xe8b23c-_0xdf2a62,_0x29d78e,_0x342d68,_0x41b73c,_0xb9c48b);}catch(_0x50b7f4){console['log'](_0x2442c6,_0xe8b23c);}function _0xb88073(_0x25e7f0,_0x3cbab0){return _0x5e8d5a(_0x3cbab0,_0x25e7f0-0x25e);}return _0xeb7a1c;}['_bilinearInterpolation'](_0x2fc54b,_0x148296,_0x1fa6a1,_0x5a554f,_0x49443f,_0x2665bc){const _0x4eb8c2=0x1-_0x2fc54b,_0x1e5f10=0x1-_0x148296,_0x3654b8=_0x4eb8c2*_0x1e5f10,_0x2f1014=_0x2fc54b*_0x1e5f10,_0x10f74a=_0x4eb8c2*_0x148296,_0x3a6bef=_0x2fc54b*_0x148296,_0x5c3eef=_0x1fa6a1[0x0]*_0x3654b8+_0x5a554f[0x0]*_0x2f1014+_0x49443f[0x0]*_0x10f74a+_0x2665bc[0x0]*_0x3a6bef,_0xe1f9dc=_0x1fa6a1[0x1]*_0x3654b8+_0x5a554f[0x1]*_0x2f1014+_0x49443f[0x1]*_0x10f74a+_0x2665bc[0x1]*_0x3a6bef;return this['_calcUV'](_0x5c3eef,_0xe1f9dc);}[_0x5e8d5a(0x46,0xaf)](_0x39cfbe,_0x59bed2){function _0x3ad134(_0x4f331d,_0x50a712){return _0x2e1fe6(_0x4f331d- -0x100,_0x50a712);}return[+_0x39cfbe,+_0x59bed2,Math[_0x3ad134(-0x2ba,-0x2c4)](_0x39cfbe*_0x39cfbe+_0x59bed2*_0x59bed2)];}[_0x2e1fe6(-0x1ab,-0x168)](_0x58c362,_0x52614b){function _0x4839a3(_0x520d4c,_0x12cbb6){return _0x2e1fe6(_0x520d4c-0x176,_0x12cbb6);}if(!this[_0x4839a3(-0x6c,-0x83)](_0x58c362,_0x52614b))return null;const _0x372db2=this['toGridXY'](_0x58c362,_0x52614b),_0x5999f5=this['getUVByXY'](_0x372db2[0x0],_0x372db2[0x1]);return _0x5999f5;}['isInExtent'](_0x1bafb2,_0x1cdeff){function _0x45bab3(_0x479a85,_0x5b934f){return _0x2e1fe6(_0x479a85-0x5b5,_0x5b934f);}function _0x2693ad(_0x4597a6,_0x475043){return _0x5e8d5a(_0x475043,_0x4597a6-0x153);}return _0x1bafb2>=this['xmin']&&_0x1bafb2<=this['xmax']&&_0x1cdeff>=this[_0x2693ad(0x1a5,0x14e)]&&_0x1cdeff<=this[_0x2693ad(0x1ff,0x221)]?!![]:![];}['getRandomLatLng'](){const _0x1cf719=fRandomByfloat(this[_0x4d67a9(0x94,0x123)],this['xmax']);function _0x4ae81f(_0x146344,_0x2987da){return _0x2e1fe6(_0x2987da-0x3b7,_0x146344);}const _0x510762=fRandomByfloat(this[_0x4d67a9(0x52,0xb)],this['ymax']),_0x259a9c={};_0x259a9c[_0x4d67a9(0x53,0xb4)]=_0x510762;function _0x4d67a9(_0x37c1f9,_0x137de3){return _0x5e8d5a(_0x37c1f9,_0x137de3- -0x47);}return _0x259a9c['lng']=_0x1cf719,_0x259a9c;}[_0x5e8d5a(0x69,0x51)](){let _0x3b7d2,_0x51715a,_0x2c6c1a;for(let _0x2a6158=0x0,_0x4500dc=this[_0x4df0af(0x47d,0x4a0)][_0x4df0af(0x3cd,0x3ce)];_0x2a6158<_0x4500dc;_0x2a6158++){let _0x496f8b=this[_0x5885be(-0x8,0x56)][_0x2a6158];_0x496f8b['age']<=0x0&&(_0x496f8b=this['_randomParticle'](_0x496f8b));if(_0x496f8b['age']>0x0){const _0x331061=_0x496f8b[_0x5885be(-0x62,0x1c)],_0x36f8b4=_0x496f8b[_0x4df0af(0x459,0x444)];_0x2c6c1a=this['getUVByPoint'](_0x331061,_0x36f8b4),_0x2c6c1a?(_0x3b7d2=_0x331061+this[_0x4df0af(0x45f,0x3f0)][0x0]*_0x2c6c1a[0x0],_0x51715a=_0x36f8b4+this['_calc_speedRate'][0x1]*_0x2c6c1a[0x1],_0x496f8b[_0x5885be(0x31,-0x2b)]=_0x331061,_0x496f8b['lat']=_0x36f8b4,_0x496f8b['tlng']=_0x3b7d2,_0x496f8b['tlat']=_0x51715a,_0x496f8b['speed']=_0x2c6c1a[0x2],_0x496f8b['age']--):_0x496f8b['age']=0x0;}}function _0x4df0af(_0x3050ae,_0x53cc02){return _0x5e8d5a(_0x3050ae,_0x53cc02-0x34e);}function _0x5885be(_0x50af5c,_0x48e9a6){return _0x5e8d5a(_0x50af5c,_0x48e9a6- -0xfc);}return this['particles'];}[_0x2e1fe6(-0x254,-0x26d)](_0x3b2d49){function _0x55146d(_0x5455f2,_0x107181){return _0x5e8d5a(_0x107181,_0x5455f2-0x316);}let _0x1958b6,_0x5747ae;for(let _0x11b522=0x0;_0x11b522<0x1e;_0x11b522++){_0x1958b6=this['getRandomLatLng'](),_0x5747ae=this['getUVByPoint'](_0x1958b6['lng'],_0x1958b6['lat']);if(_0x5747ae&&_0x5747ae[0x2]>0x0)break;}if(!_0x5747ae)return _0x3b2d49;const _0x32077c=_0x1958b6['lng']+this['_calc_speedRate'][0x0]*_0x5747ae[0x0],_0x36594f=_0x1958b6['lat']+this['_calc_speedRate'][0x1]*_0x5747ae[0x1];_0x3b2d49['lng']=_0x1958b6['lng'];function _0x394847(_0x2ac221,_0x2a1a6d){return _0x2e1fe6(_0x2ac221-0x474,_0x2a1a6d);}return _0x3b2d49['lat']=_0x1958b6['lat'],_0x3b2d49['tlng']=_0x32077c,_0x3b2d49['tlat']=_0x36594f,_0x3b2d49['age']=Math[_0x394847(0x276,0x2aa)](0xa+Math['random']()*this[_0x55146d(0x369,0x38a)]),_0x3b2d49[_0x394847(0x24b,0x283)]=_0x5747ae[0x2],_0x3b2d49;}[_0x5e8d5a(0x32,0x58)](){for(const _0x58b443 in this){delete this[_0x58b443];}}}function fRandomByfloat(_0x495b65,_0x55518b){function _0x20f1be(_0x347b40,_0x296e6b){return _0x2e1fe6(_0x296e6b-0x30f,_0x347b40);}return _0x495b65+Math[_0x20f1be(0x101,0x172)]()*(_0x55518b-_0x495b65);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x1f2606={}){super(_0x1f2606),this[_0x15644c(0x53e,0x4f0)](_0x1f2606),this['canvas']=null;function _0x1c8fff(_0x1b0ec2,_0x474480){return _0x2e1fe6(_0x474480-0xf2,_0x1b0ec2);}function _0x15644c(_0x1bd3cd,_0xe1b3e4){return _0x2e1fe6(_0xe1b3e4-0x63e,_0x1bd3cd);}_0x1f2606[_0x1c8fff(0x1e,-0x5e)]&&_0x1f2606['steps']&&(this[_0x15644c(0x472,0x4f2)]=new mars3d__namespace[(_0x1c8fff(-0xa6,-0xfe))](_0x1f2606));}['_setOptionsHook'](_0x35931e,_0x57a92c){this['frameTime']=0x3e8/(_0x35931e['frameRate']||0xa),this['_pointerEvents']=this[_0x23d135(0x1eb,0x1c0)][_0x23d135(0x1e4,0x1ca)]??![],this['color']=_0x35931e['color']||_0x1b71b4(-0xc1,-0xe2);function _0x23d135(_0x4ada01,_0x4fbcf1){return _0x5e8d5a(_0x4fbcf1,_0x4ada01-0x11b);}function _0x1b71b4(_0x18bd9b,_0xee3f69){return _0x5e8d5a(_0xee3f69,_0x18bd9b- -0x1ea);}this[_0x1b71b4(-0x139,-0xcf)]=_0x35931e['lineWidth']||0x1,this[_0x1b71b4(-0x14c,-0x1a5)]=_0x35931e['fixedHeight']??0x0,this['flipY']=_0x35931e['flipY']??![],this[_0x1b71b4(-0x125,-0xd0)]&&this[_0x1b71b4(-0x125,-0x190)]['setOptions'](_0x35931e);}get[_0x5e8d5a(0xfa,0x10c)](){return this['canvas'];}get[_0x2e1fe6(-0x244,-0x2a3)](){function _0x50adcc(_0x167c9b,_0x169784){return _0x5e8d5a(_0x169784,_0x167c9b-0x2d6);}return this['_map']['scene']['canvas'][_0x50adcc(0x352,0x34c)];}get[_0x2e1fe6(-0x257,-0x214)](){function _0x4c695a(_0x1b7591,_0x440cd6){return _0x2e1fe6(_0x1b7591- -0x106,_0x440cd6);}return this[_0x4c695a(-0x294,-0x20a)]['scene']['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set['pointerEvents'](_0x131f3d){function _0x6d5fef(_0x405eb0,_0x1dac2b){return _0x5e8d5a(_0x405eb0,_0x1dac2b-0x2d9);}function _0x39b917(_0x1bc8cd,_0x52425d){return _0x5e8d5a(_0x1bc8cd,_0x52425d-0x202);}this['_pointerEvents']=_0x131f3d;if(!this['canvas'])return;_0x131f3d?this['canvas'][_0x39b917(0x236,0x296)][_0x39b917(0x36d,0x365)]='all':this['canvas'][_0x39b917(0x270,0x296)][_0x39b917(0x30d,0x365)]='none';}get['particlesNumber'](){function _0x2f02b1(_0x56bf92,_0x1cb600){return _0x5e8d5a(_0x56bf92,_0x1cb600- -0x9c);}return this['options'][_0x2f02b1(0xb0,0x98)];}set['particlesNumber'](_0x29bd45){this[_0x2a5c3f(0x3b3,0x329)][_0x2a5c3f(0x417,0x38a)]=_0x29bd45;function _0x3a67c7(_0x2fbad0,_0x12228e){return _0x2e1fe6(_0x12228e-0x67a,_0x2fbad0);}function _0x2a5c3f(_0x2ed6d7,_0x388a52){return _0x2e1fe6(_0x2ed6d7-0x591,_0x388a52);}clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){return this['options']['speedRate'];}set[_0x2e1fe6(-0x242,-0x289)](_0x1a62cc){this['options'][_0x29625f(0x459,0x3ee)]=_0x1a62cc;function _0x29625f(_0x59006d,_0x2cf1eb){return _0x5e8d5a(_0x59006d,_0x2cf1eb-0x382);}function _0x463ce2(_0x31538c,_0x2c55c4){return _0x5e8d5a(_0x2c55c4,_0x31538c-0x341);}this[_0x463ce2(0x406,0x45f)]&&(this[_0x463ce2(0x406,0x3d4)][_0x463ce2(0x3ad,0x430)]=_0x1a62cc);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x4a0dcf){this[_0x4d5710(0x1,-0x42)][_0x4d5710(-0xba,-0xbf)]=_0x4a0dcf;function _0x130fa7(_0x5025d0,_0x5b64e2){return _0x5e8d5a(_0x5025d0,_0x5b64e2- -0x2dc);}function _0x4d5710(_0x360860,_0x453714){return _0x2e1fe6(_0x453714-0x19c,_0x360860);}this[_0x4d5710(-0xc7,-0x4d)]&&(this[_0x130fa7(-0x1ac,-0x217)]['maxAge']=_0x4a0dcf);}get[_0x5e8d5a(0xf7,0x75)](){function _0xd943a3(_0x257948,_0x48974b){return _0x5e8d5a(_0x257948,_0x48974b-0x1a2);}return this[_0xd943a3(0x2bd,0x2ce)];}set['data'](_0x3e838a){this['setData'](_0x3e838a);}get[_0x2e1fe6(-0x1a8,-0x131)](){let _0x3d8e7f=this['windData']['xmin'],_0x632777=this['windData'][_0x3f322b(0x54a,0x4ff)];function _0x5a4a3c(_0x6303a1,_0x333901){return _0x5e8d5a(_0x6303a1,_0x333901- -0x25);}let _0x1f51ad=this[_0x3f322b(0x4ab,0x53a)]['ymin'];function _0x3f322b(_0x4a2aa4,_0x53400c){return _0x5e8d5a(_0x4a2aa4,_0x53400c-0x40e);}let _0x3570b7=this[_0x5a4a3c(0xd0,0x107)]['ymax'];return _0x632777>=0x167&&_0x3d8e7f===0x0&&(_0x3d8e7f=-0xb4,_0x632777=0xb4),_0x3d8e7f=Math['max'](_0x3d8e7f,-0xb4),_0x632777=Math['min'](_0x632777,0xb4),_0x1f51ad=Math[_0x3f322b(0x5bf,0x541)](_0x1f51ad,-0x5a),_0x3570b7=Math['min'](_0x3570b7,0x5a),Cesium['Rectangle']['fromDegrees'](_0x3d8e7f,_0x1f51ad,_0x632777,_0x3570b7);}[_0x2e1fe6(-0x184,-0x1a7)](_0x47262d){function _0x320428(_0x3a57ce,_0x5941d4){return _0x2e1fe6(_0x3a57ce-0x221,_0x5941d4);}function _0x2f14db(_0x403d8d,_0x4c8a00){return _0x2e1fe6(_0x4c8a00-0x2c5,_0x403d8d);}_0x47262d?this['_addedHook']():(this['windData']&&(this[_0x320428(0x43,-0x49)]['data']=this[_0x2f14db(0x135,0x143)]),this[_0x2f14db(0x1d7,0x16e)]());}['_mountedHook'](){function _0x8ca7e7(_0x366e7d,_0x1211bb){return _0x2e1fe6(_0x1211bb-0x48a,_0x366e7d);}this['options'][_0x8ca7e7(0x226,0x267)]?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}[_0x5e8d5a(0x45,0xcd)](){this['canvas']=this['_createCanvas']();const _0x30237a={};_0x30237a[_0x31ec08(0x514,0x4ca)]=!![],this[_0x31ec08(0x541,0x51d)]=this['canvas']['getContext']('2d',_0x30237a);function _0x31ec08(_0x23e050,_0x301b9c){return _0x5e8d5a(_0x23e050,_0x301b9c-0x3e3);}function _0xcb659d(_0x16c15a,_0x1f465c){return _0x2e1fe6(_0x16c15a-0x2a7,_0x1f465c);}this[_0xcb659d(0x6b,0xf8)](),this['options'][_0xcb659d(0x6e,0xbe)]&&this['setData'](this[_0x31ec08(0x473,0x4b3)][_0x31ec08(0x49a,0x458)]);}[_0x2e1fe6(-0x157,-0x12b)](){this[_0x4d028f(-0x19c,-0x139)](),this['unbindEvent']();function _0x4d028f(_0x3e66a5,_0x1573f0){return _0x2e1fe6(_0x3e66a5-0x40,_0x1573f0);}function _0x3b9315(_0x38b3bc,_0xd39e5a){return _0x2e1fe6(_0x38b3bc-0x86,_0xd39e5a);}this['canvas']&&(this['_map'][_0x4d028f(-0x112,-0x17f)]['removeChild'](this[_0x4d028f(-0x1d2,-0x1c7)]),delete this[_0x3b9315(-0x18c,-0x140)]);}[_0x5e8d5a(0x137,0xca)](){const _0x3fea73=mars3d__namespace[_0x38d703(-0x164,-0x127)]['create'](_0x38d703(-0x111,-0x12f),_0x38d703(-0x91,-0x10a),this['_map'][_0x38d703(0x13,-0x6f)]);_0x3fea73['style'][_0x38d703(-0xb9,-0xf0)]=_0x3089a7(0x2f9,0x2d3),_0x3fea73[_0x38d703(-0x146,-0x137)]['top']='0px';function _0x38d703(_0x5b58fa,_0x18dd5c){return _0x2e1fe6(_0x18dd5c-0xe3,_0x5b58fa);}_0x3fea73[_0x38d703(-0xec,-0x137)][_0x3089a7(0x35c,0x332)]='0px',_0x3fea73['style']['width']=this['_map']['scene']['canvas'][_0x38d703(-0x196,-0x14f)]+'px',_0x3fea73['style']['height']=this[_0x3089a7(0x384,0x3cb)][_0x38d703(-0x4c,-0xa6)]['canvas']['clientHeight']+'px',_0x3fea73['style'][_0x3089a7(0x32d,0x336)]=this['_pointerEvents']?'auto':'none',_0x3fea73['style'][_0x38d703(-0xbd,-0xce)]=this[_0x3089a7(0x334,0x3bd)]['zIndex']??0x9;function _0x3089a7(_0x22b437,_0x1db69b){return _0x2e1fe6(_0x22b437-0x512,_0x1db69b);}return _0x3fea73['width']=this['_map']['scene']['canvas']['clientWidth'],_0x3fea73['height']=this[_0x3089a7(0x384,0x3c1)][_0x38d703(-0x50,-0xa6)]['canvas']['clientHeight'],_0x3fea73;}[_0x5e8d5a(0xae,0x77)](){function _0x579026(_0xcf6aa8,_0x2eabee){return _0x5e8d5a(_0x2eabee,_0xcf6aa8-0xeb);}function _0x17b4f6(_0x471439,_0x3c4df2){return _0x5e8d5a(_0x3c4df2,_0x471439- -0x217);}this['canvas']&&(this['canvas']['style']['width']=this[_0x17b4f6(-0xf7,-0xde)]['scene']['canvas']['clientWidth']+'px',this['canvas'][_0x17b4f6(-0x183,-0x1d8)][_0x579026(0x233,0x284)]=this['_map']['scene'][_0x17b4f6(-0x17b,-0x173)]['clientHeight']+'px',this['canvas']['width']=this['_map']['scene']['canvas']['clientWidth'],this[_0x579026(0x187,0x12a)][_0x17b4f6(-0xcf,-0x15e)]=this['_map']['scene']['canvas'][_0x579026(0x141,0xc4)]);}['bindEvent'](){const _0x1b03f0=this;let _0x51903b=Date[_0x29cdde(0x67,0xef)]();function _0x1a38da(_0x1d3d64,_0x1177cc){return _0x2e1fe6(_0x1177cc-0x2d4,_0x1d3d64);}(function _0x2b0e55(){function _0x1e7e2a(_0x999d42,_0x40fb7b){return _0x29cdde(_0x999d42,_0x40fb7b-0xa9);}if(_0x1b03f0['isDestroy'])return;function _0x4bcd07(_0x10aace,_0x5e7a1a){return _0x29cdde(_0x10aace,_0x5e7a1a-0x223);}_0x1b03f0['_animateFrame']=window[_0x1e7e2a(0x2ae,0x23c)](_0x2b0e55);if(_0x1b03f0['show']&&_0x1b03f0['windField']){const _0xfe459e=Date['now'](),_0x132a27=_0xfe459e-_0x51903b;_0x132a27>_0x1b03f0['frameTime']&&(_0x51903b=_0xfe459e-_0x132a27%_0x1b03f0['frameTime'],_0x1b03f0[_0x4bcd07(0x36e,0x394)]());}}(),window['addEventListener'](_0x29cdde(0x54,0xb2),this[_0x1a38da(0x124,0x9d)][_0x1a38da(0x205,0x18e)](this),![]),this[_0x1a38da(0x6f,0x8f)]=![]);function _0x29cdde(_0x5b3c77,_0x418478){return _0x2e1fe6(_0x418478-0x2e9,_0x5b3c77);}this[_0x29cdde(0x157,0x1ac)]=![],this[_0x29cdde(0xd4,0x10b)]['mouseHidden']&&(this[_0x29cdde(0x171,0x15b)]['on'](mars3d__namespace[_0x1a38da(0x15c,0x115)][_0x29cdde(0x15c,0x188)],this['_onMapWhellEvent'],this),this[_0x1a38da(0x1a9,0x146)]['on'](mars3d__namespace[_0x1a38da(0x8e,0x115)][_0x29cdde(0xe3,0x148)],this[_0x29cdde(0x112,0x17f)],this),this[_0x29cdde(0x183,0x15b)]['on'](mars3d__namespace[_0x29cdde(0x166,0x12a)][_0x1a38da(0x1e8,0x16d)],this['_onMouseUpEvent'],this));}[_0x5e8d5a(0x144,0x115)](){window[_0x1cfcc5(0x1ca,0x1b4)](this['_animateFrame']),delete this[_0x2f1bda(0x4b9,0x4d7)];function _0x1cfcc5(_0x15685f,_0xed4b89){return _0x2e1fe6(_0xed4b89-0x3fb,_0x15685f);}window[_0x2f1bda(0x537,0x571)]('resize',this['resize']);function _0x2f1bda(_0x287297,_0x42506b){return _0x5e8d5a(_0x42506b,_0x287297-0x410);}this['options']['mouseHidden']&&(this[_0x2f1bda(0x530,0x53c)][_0x1cfcc5(0x221,0x23f)](mars3d__namespace['EventType'][_0x1cfcc5(0x301,0x29a)],this['_onMapWhellEvent'],this),this['_map'][_0x2f1bda(0x502,0x481)](mars3d__namespace['EventType'][_0x1cfcc5(0x289,0x25a)],this['_onMouseDownEvent'],this),this['_map'][_0x1cfcc5(0x20c,0x23f)](mars3d__namespace[_0x2f1bda(0x4ff,0x4ec)][_0x2f1bda(0x557,0x5c7)],this['_onMouseUpEvent'],this),this[_0x1cfcc5(0x2b3,0x26d)]['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x1cfcc5(0x1ce,0x215)],this));}['_onMapWhellEvent'](_0x4ce78f){function _0x339dab(_0x4f88e1,_0x59d2d2){return _0x2e1fe6(_0x59d2d2-0x191,_0x4f88e1);}clearTimeout(this['refreshTimer']);function _0x12451e(_0x24dab0,_0x2eef5f){return _0x5e8d5a(_0x2eef5f,_0x24dab0-0x76);}if(!this[_0x339dab(-0x36,-0xa3)]||!this['canvas'])return;this['canvas'][_0x12451e(0x10a,0x108)]['visibility']='hidden',this['refreshTimer']=setTimeout(()=>{function _0x2e81e9(_0x332ea9,_0x517441){return _0x12451e(_0x517441-0x111,_0x332ea9);}if(!this[_0x2e81e9(0x24b,0x201)])return;function _0x3f8f93(_0x22de22,_0x3499a2){return _0x339dab(_0x22de22,_0x3499a2-0x266);}this['redraw'](),this[_0x2e81e9(0x23a,0x223)][_0x3f8f93(0x16a,0x1dd)]['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x55ba19){this['mouse_down']=!![];function _0x1b0963(_0x17f893,_0x12c55b){return _0x2e1fe6(_0x12c55b- -0x71,_0x17f893);}this['_map'][_0x24e1b3(0x41b,0x43a)](mars3d__namespace[_0x24e1b3(0x477,0x437)]['mouseMove'],this[_0x24e1b3(0x3c2,0x410)],this);function _0x24e1b3(_0x185a9e,_0x3006cb){return _0x2e1fe6(_0x3006cb-0x5f6,_0x185a9e);}this[_0x1b0963(-0x1b7,-0x1ff)]['on'](mars3d__namespace[_0x24e1b3(0x3ba,0x437)][_0x24e1b3(0x4b2,0x483)],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x37c199){if(!this[_0x158ac5(-0x291,-0x272)]||!this['canvas'])return;function _0x5b9359(_0x212257,_0x41e83c){return _0x2e1fe6(_0x41e83c-0x475,_0x212257);}function _0x158ac5(_0x85bb04,_0xefedae){return _0x2e1fe6(_0x85bb04- -0x5d,_0xefedae);}this[_0x158ac5(-0x2a2,-0x325)]&&(this[_0x158ac5(-0x26f,-0x1f8)]['style']['visibility']='hidden',this[_0x5b9359(0x2a6,0x338)]=!![]);}[_0x2e1fe6(-0x1a3,-0x123)](_0x35ceb3){function _0x5cb887(_0x12588f,_0x355146){return _0x2e1fe6(_0x355146-0x36d,_0x12588f);}if(!this['show']||!this[_0x77af74(-0x2b3,-0x226)])return;this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x77af74(-0x1cb,-0x1fa)],this);this[_0x5cb887(0x10c,0x128)]&&this['mouse_move']&&this['redraw']();function _0x77af74(_0x3c5d0b,_0x13c693){return _0x2e1fe6(_0x13c693- -0x14,_0x3c5d0b);}this['canvas']['style']['visibility']='visible',this['mouse_down']=![],this[_0x5cb887(0x1d9,0x230)]=![];}['setData'](_0x42178a){function _0x3135c5(_0x282a00,_0x29850e){return _0x2e1fe6(_0x29850e-0x108,_0x282a00);}this['clear']();function _0x380a54(_0x59086c,_0x4fff97){return _0x2e1fe6(_0x59086c-0x5b2,_0x4fff97);}this[_0x3135c5(-0x69,-0x7a)]=_0x42178a,this[_0x3135c5(-0x113,-0xe1)][_0x3135c5(-0x11b,-0x132)](_0x42178a),this['redraw']();}['redraw'](){if(!this[_0x8095(-0x28c,-0x234)])return;this['windField']['setOptions'](this['options']);function _0x8095(_0x433fb3,_0x224731){return _0x5e8d5a(_0x433fb3,_0x224731- -0x2ae);}this['update']();}['update'](){if(this['_updateIng'])return;this[_0x5a9bbd(0x543,0x4b6)]=!![];if(this['worker'])this[_0x5a9bbd(0x4c2,0x4cd)]['update']();else{const _0xa6669c=this[_0x5c9757(0x9b,0xaf)][_0x5a9bbd(0x44e,0x4a6)]();this['_drawLines'](_0xa6669c);}function _0x5a9bbd(_0x129df3,_0x43832d){return _0x2e1fe6(_0x129df3-0x6ab,_0x43832d);}function _0x5c9757(_0x545016,_0x4050d8){return _0x5e8d5a(_0x545016,_0x4050d8- -0x16);}this[_0x5c9757(0x149,0x130)]=![];}['_drawLines'](_0x326b0e){this['_canvasParticles']=_0x326b0e,this['canvasContext']['globalCompositeOperation']=_0x2b2686(0x276,0x29d),this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x36961c(-0x2a8,-0x336)]);function _0x36961c(_0x6bff75,_0x4e14d6){return _0x2e1fe6(_0x4e14d6- -0xdf,_0x6bff75);}this[_0x2b2686(0x2a6,0x2f2)][_0x36961c(-0x2a8,-0x26a)]='lighter',this[_0x36961c(-0x2ce,-0x253)]['globalAlpha']=0.9;const _0x44c536=this[_0x36961c(-0x223,-0x26d)]['scene'][_0x2b2686(0x2e7,0x28f)]!==Cesium[_0x2b2686(0x285,0x2ed)]['SCENE3D'];function _0x2b2686(_0x11739c,_0x4da091){return _0x5e8d5a(_0x11739c,_0x4da091-0x1b8);}const _0x2da9d3=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x1f5d58=0x0,_0x47834a=_0x326b0e['length'];_0x1f5d58<_0x47834a;_0x1f5d58++){const _0x3ae727=_0x326b0e[_0x1f5d58],_0x357d6f=this['_tomap'](_0x3ae727,_0x3ae727[_0x2b2686(0x30c,0x289)],_0x3ae727[_0x36961c(-0x2b1,-0x292)],_0x3ae727[_0x2b2686(0x2c1,0x250)]),_0x1c5745=this['_tomap'](_0x3ae727,_0x3ae727['tlng'],_0x3ae727['tlat'],_0x3ae727[_0x2b2686(0x2f7,0x295)]);if(!_0x357d6f||!_0x1c5745)continue;if(_0x44c536&&Math[_0x2b2686(0x249,0x26e)](_0x357d6f[0x0]-_0x1c5745[0x0])>=_0x2da9d3)continue;this[_0x36961c(-0x22d,-0x253)]['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x36961c(-0x26e,-0x22b)][_0x36961c(-0x24d,-0x226)](_0x3ae727['speed']),this['canvasContext']['moveTo'](_0x357d6f[0x0],_0x357d6f[0x1]),this['canvasContext']['lineTo'](_0x1c5745[0x0],_0x1c5745[0x1]),this['canvasContext'][_0x2b2686(0x1dc,0x24a)]();}else{this[_0x2b2686(0x27b,0x2f2)]['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x2b2686(0x32f,0x2f1)];for(let _0x5c5f16=0x0,_0x57430e=_0x326b0e[_0x36961c(-0x2c8,-0x30d)];_0x5c5f16<_0x57430e;_0x5c5f16++){const _0x845782=_0x326b0e[_0x5c5f16],_0x19b539=this[_0x36961c(-0x275,-0x24f)](_0x845782,_0x845782['lng'],_0x845782['lat'],_0x845782['alt']),_0x457e1d=this['_tomap'](_0x845782,_0x845782['tlng'],_0x845782['tlat'],_0x845782['talt']);if(!_0x19b539||!_0x457e1d)continue;if(_0x44c536&&Math['abs'](_0x19b539[0x0]-_0x457e1d[0x0])>=_0x2da9d3)continue;this[_0x2b2686(0x2a2,0x2f2)]['moveTo'](_0x19b539[0x0],_0x19b539[0x1]),this['canvasContext']['lineTo'](_0x457e1d[0x0],_0x457e1d[0x1]);}this[_0x36961c(-0x1c2,-0x253)]['stroke']();}}['_tomap'](_0x30e293,_0x44ff95,_0x50b230,_0x1b7b93){function _0x515923(_0x37a8b6,_0x5595e9){return _0x5e8d5a(_0x5595e9,_0x37a8b6- -0x35c);}const _0x4c902c=Cesium['Cartesian3']['fromDegrees'](_0x44ff95,_0x50b230,_0x1b7b93??this['fixedHeight']);function _0x58c0e2(_0xbbc091,_0x19f57a){return _0x5e8d5a(_0xbbc091,_0x19f57a-0x323);}const _0x597137=this['_map']['scene'];if(_0x597137['mode']===Cesium[_0x515923(-0x227,-0x1bc)]['SCENE3D']){const _0x262894=new Cesium[(_0x515923(-0x25e,-0x1df))](_0x597137[_0x58c0e2(0x3e6,0x396)][_0x515923(-0x22d,-0x1a5)],_0x597137['camera']['positionWC']),_0x472407=_0x262894['isPointVisible'](_0x4c902c);if(!_0x472407)return _0x30e293['age']=0x0,null;}const _0x19d531=mars3d__namespace[_0x515923(-0x210,-0x1b6)][_0x58c0e2(0x425,0x40e)](this[_0x515923(-0x23c,-0x1c8)][_0x58c0e2(0x47f,0x448)],_0x4c902c);return _0x19d531?[_0x19d531['x'],_0x19d531['y']]:null;}['clear'](){this['windField']['clear'](),delete this['windData'];}[_0x5e8d5a(0xa1,0x62)](){this[_0x4698df(-0x53,-0x73)]=new Worker(this[_0x344451(0x16,0x6e)]['worker']);function _0x4698df(_0x572483,_0x44f933){return _0x5e8d5a(_0x44f933,_0x572483- -0xde);}this[_0x344451(-0x2f,0x17)][_0x4698df(-0x9,-0x35)]=_0x37c6f3=>{this[_0x46ee36(0x470,0x4f5)](_0x37c6f3['data']['particles']);function _0x46ee36(_0x16540d,_0x56b9fe){return _0x4698df(_0x56b9fe-0x4dc,_0x16540d);}function _0x103896(_0x143e0d,_0x330241){return _0x344451(_0x143e0d-0x3ec,_0x330241);}this[_0x46ee36(0x45f,0x4b5)]=![];},this['windField']={'init':_0xcff5a5=>{function _0x4782cc(_0x26bd69,_0x687a43){return _0x4698df(_0x687a43- -0x28e,_0x26bd69);}const _0x3aa45d={};_0x3aa45d[_0x4782cc(-0x28a,-0x22f)]='init';function _0x135f00(_0x3fb294,_0xee05eb){return _0x344451(_0x3fb294-0x36f,_0xee05eb);}_0x3aa45d['options']=_0xcff5a5,this[_0x4782cc(-0x2ae,-0x2e1)][_0x4782cc(-0x284,-0x2c1)](_0x3aa45d);},'setOptions':_0x2b5e9f=>{const _0x564ca7={};_0x564ca7['type']='setOptions',_0x564ca7['options']=_0x2b5e9f,this['worker']['postMessage'](_0x564ca7);},'setDate':_0x19269c=>{const _0x56153e={};_0x56153e['type']='setDate',_0x56153e['data']=_0x19269c;function _0x38a034(_0xd96b4,_0x2bf249){return _0x4698df(_0x2bf249- -0x107,_0xd96b4);}this[_0x38a034(-0xf9,-0x15a)]['postMessage'](_0x56153e);},'update':()=>{if(this['_updateIng2'])return;this[_0x2b754a(0x19b,0x179)]=!![];function _0x2b754a(_0x3a7c93,_0x1ecdc0){return _0x344451(_0x1ecdc0-0x17c,_0x3a7c93);}function _0x513d27(_0x2770d7,_0x2f2dad){return _0x4698df(_0x2f2dad-0x1a4,_0x2770d7);}const _0x243309={};_0x243309['type']=_0x513d27(0x275,0x1fc),this['worker'][_0x513d27(0x11b,0x171)](_0x243309);},'clear':()=>{function _0xf71505(_0x14ac74,_0x251c88){return _0x4698df(_0x251c88-0x150,_0x14ac74);}function _0x7fe1f1(_0x26e16a,_0x1647f5){return _0x344451(_0x26e16a- -0x243,_0x1647f5);}const _0x2727fc={};_0x2727fc['type']='clear',this[_0x7fe1f1(-0x272,-0x269)][_0xf71505(0xf7,0x11d)](_0x2727fc);}};function _0x344451(_0x402fac,_0x2a9cf5){return _0x2e1fe6(_0x402fac-0x1f4,_0x2a9cf5);}this['windField'][_0x344451(0x9,-0x68)](this[_0x4698df(-0xe,-0x87)]);}}mars3d__namespace['LayerUtil'][_0x2e1fe6(-0x25e,-0x296)]('canvasWind',CanvasWindLayer),mars3d__namespace[_0x5e8d5a(0x129,0x10c)][_0x5e8d5a(0x15f,0xf5)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log']['logInfo']('mars3d-wind插件\x20注册成功'),mars3d__namespace[_0x5e8d5a(0x180,0x124)]=WindUtil;function _0x2e1fe6(_0x57b351,_0x429c3d){return _0x269f(_0x57b351- -0x2d8,_0x429c3d);}exports[_0x5e8d5a(0x50,0xa6)]=CanvasWindField,exports[_0x2e1fe6(-0x1b9,-0x19b)]=CanvasWindLayer,exports[_0x2e1fe6(-0x198,-0x1f7)]=WindLayer,exports[_0x2e1fe6(-0x18a,-0x19a)]=WindUtil;const _0x56e641={};_0x56e641[_0x2e1fe6(-0x20f,-0x203)]=!![],Object[_0x2e1fe6(-0x1e7,-0x24e)](exports,_0x5e8d5a(0x148,0x16b),_0x56e641);
|
|
14
|
+
'use strict';(function(_0x22804b,_0x1c72e9){function _0x3e3ec7(_0x1babe4,_0x215d4e){return _0x5ceb(_0x1babe4-0xc4,_0x215d4e);}function _0x11f267(_0x4f6c60,_0x1f59f0){return _0x5ceb(_0x4f6c60-0x312,_0x1f59f0);}const _0x53feb7=_0x22804b();while(!![]){try{const _0x949054=-parseInt(_0x11f267(0x4dc,0x4b3))/0x1*(parseInt(_0x3e3ec7(0x2c6,0x322))/0x2)+-parseInt(_0x3e3ec7(0x247,0x2b5))/0x3+parseInt(_0x3e3ec7(0x2cb,0x293))/0x4+-parseInt(_0x11f267(0x47d,0x45d))/0x5*(parseInt(_0x11f267(0x48d,0x45e))/0x6)+-parseInt(_0x3e3ec7(0x26d,0x1fd))/0x7+-parseInt(_0x11f267(0x4f0,0x489))/0x8*(-parseInt(_0x11f267(0x440,0x467))/0x9)+parseInt(_0x3e3ec7(0x217,0x1e6))/0xa*(parseInt(_0x3e3ec7(0x288,0x230))/0xb);if(_0x949054===_0x1c72e9)break;else _0x53feb7['push'](_0x53feb7['shift']());}catch(_0x556449){_0x53feb7['push'](_0x53feb7['shift']());}}}(_0x3a67,0x4ad39));function _interopNamespace(_0x333e76){if(_0x333e76&&_0x333e76['__esModule'])return _0x333e76;var _0xb6f135=Object[_0x101a32(-0xe5,-0x12a)](null);function _0x101a32(_0x4c15f1,_0x260c5b){return _0x5ceb(_0x4c15f1- -0x2b2,_0x260c5b);}function _0x7f0a5f(_0x2cb6ef,_0xcc505d){return _0x5ceb(_0xcc505d- -0x320,_0x2cb6ef);}return _0x333e76&&Object['keys'](_0x333e76)[_0x101a32(-0xa4,-0x78)](function(_0x26d89e){function _0x4cab94(_0x2157dd,_0x4333bc){return _0x101a32(_0x4333bc-0xef,_0x2157dd);}function _0x4ae6e4(_0xe9ff50,_0x332293){return _0x7f0a5f(_0xe9ff50,_0x332293- -0x1f);}if(_0x26d89e!=='default'){var _0x25e3b4=Object[_0x4cab94(-0x19,-0x37)](_0x333e76,_0x26d89e);Object['defineProperty'](_0xb6f135,_0x26d89e,_0x25e3b4[_0x4cab94(-0xa,-0x7c)]?_0x25e3b4:{'enumerable':!![],'get':function(){return _0x333e76[_0x26d89e];}});}}),_0xb6f135['default']=_0x333e76,_0xb6f135;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x35d093(-0xa,0x45)];function getU(_0x54876c,_0x2d1fec){function _0x42fac3(_0x45419a,_0x442384){return _0x35d093(_0x45419a,_0x442384-0x15e);}const _0x5f1c59=_0x54876c*Math[_0x676ae3(-0x19c,-0x1a7)](Cesium$2[_0x42fac3(0x19d,0x17d)][_0x42fac3(0x2ae,0x237)](_0x2d1fec));function _0x676ae3(_0x9c87ca,_0x5f03c9){return _0x35d093(_0x5f03c9,_0x9c87ca- -0x1fb);}return _0x5f1c59;}function getV(_0x15f982,_0x4f2889){function _0x8a481(_0x3861f0,_0x482ad6){return _0x35d093(_0x3861f0,_0x482ad6-0x1f1);}const _0x375e16=_0x15f982*Math['sin'](Cesium$2[_0x8a481(0x1df,0x210)]['toRadians'](_0x4f2889));return _0x375e16;}function getSpeed(_0x27992f,_0x57c42c){function _0x3ee293(_0x1f05c1,_0x1ebb93){return _0x35d093(_0x1ebb93,_0x1f05c1-0x60);}const _0x47cd38=Math[_0xf70c25(0x2e6,0x30e)](Math[_0x3ee293(0xe1,0x96)](_0x27992f,0x2)+Math['pow'](_0x57c42c,0x2));function _0xf70c25(_0x1277af,_0x3b1d1c){return _0x35d093(_0x3b1d1c,_0x1277af-0x1e8);}return _0x47cd38;}function getDirection(_0x10cde1,_0x2e8524){let _0x41063e=Cesium$2['Math']['toDegrees'](Math[_0x1142f6(-0x7b,-0xff)](_0x2e8524,_0x10cde1));function _0x1142f6(_0x507c26,_0x26623a){return _0x35d093(_0x26623a,_0x507c26- -0x16d);}return _0x41063e+=_0x41063e<0x0?0x168:0x0,_0x41063e;}const _0x1750ce={};_0x1750ce['__proto__']=null,_0x1750ce['getU']=getU,_0x1750ce[_0x3e09ac(-0x1e0,-0x252)]=getV,_0x1750ce['getSpeed']=getSpeed,_0x1750ce[_0x3e09ac(-0x1f8,-0x1d7)]=getDirection;var WindUtil=_0x1750ce,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';function _0x3e09ac(_0x5115a0,_0x4e438b){return _0x5ceb(_0x4e438b- -0x38e,_0x5115a0);}var calculateSpeedShader=_0x35d093(0x1b,0x8f),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=_0x3e09ac(-0x2e2,-0x262);const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x3e09ac(-0x2a0,-0x256)];class ShaderManager{static[_0x3e09ac(-0x240,-0x24a)](){function _0xdea866(_0x2c9cd7,_0x278a37){return _0x35d093(_0x278a37,_0x2c9cd7-0x129);}const _0x2d09={};return _0x2d09[_0xdea866(0x1a7,0x1da)]=[calculateSpeedShader],new ShaderSource$1(_0x2d09);}static['getUpdatePositionShader'](){const _0x5bfcf4={};function _0x1a5b2d(_0x148ac0,_0x26c13d){return _0x35d093(_0x148ac0,_0x26c13d- -0x1b9);}return _0x5bfcf4[_0x1a5b2d(-0x17a,-0x13b)]=[updatePositionShader],new ShaderSource$1(_0x5bfcf4);}static[_0x3e09ac(-0x1b5,-0x22b)](){const _0x184af5={};return _0x184af5['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x184af5);}static['getSegmentDrawFragmentShader'](){const _0x7269fd={};return _0x7269fd['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x7269fd);}static[_0x35d093(0xa6,0x7b)](){const _0x4adc60={};_0x4adc60[_0x14f288(-0x3e,0x51)]=[postProcessingPositionFragmentShader];function _0x14f288(_0x142967,_0x24d456){return _0x3e09ac(_0x24d456,_0x142967-0x1df);}return new ShaderSource$1(_0x4adc60);}}function _0x3a67(){const _0x1727ec=['update','blendEquation','original','createRawRenderState','off','execute','cos','10830140guIiXa','maxAge','_onMouseDownEvent','particlesSpeed','pickEllipsoid','age','_pointerEvents','colors','bufferUsage','log','LINEAR','ellipsoid','fill','fromCssColorString','_onMapWhellEvent','style','getSegmentDrawVertexShader','wheel','prototype','pixelFormat','rows','getPrimitives','_tomap','DEPTH_COMPONENT','824995oeqvTR','frameState.commandList\x20is\x20undefined','lineLength','getPostProcessingPositionShader','_speedRate','max\x20is\x20undefined,\x20calculate\x20max','sources','context','_calc_speedRate','pow','clientWidth','willReadFrequently','lat','SCENE3D','WindUtil','lineTo','6slKHEa','add','globe','frameRateMonitor','drawingBufferWidth','enabled','west','#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','914328IcRbmz','canvasHeight','position','clear','normal','worker','persists','_randomParticle','EllipsoidalOccluder','getOwnPropertyDescriptor','_maxAge','frameRateAdjustment','south','xmin','setOptions','commandType','BaseLayer','tlng','mouseDown','pixelDatatype','floor','CanvasWindLayer','keys','viewport','min\x20is\x20undefined,\x20calculate\x20min','flipY','_colorRamp','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','clearFramebuffers','min','_onMouseMoveEvent','vertexArray','CanvasWindField','north','data','owner','bounds','unbindEvent','3442180FxqhhT','uniformMap','array','primitives','strokeStyle','vdata','camera','calculateSpeed','clearCommand','ymax','height','preExecute','cols','_createCanvas','getDirection','createComputingPrimitives','getContext','particlesTextureSize','lng','windField','useViewerBounds','canvasWind','type','geometry','updateWindData','bindEvent','initWorker','11BQkKVF','speedFactor','getDefaultRenderState','rawRenderState','particleSystem','dropRate','2067HEVmJj','talt','toRadians','create','destroyParticlesTextures','requestRender','clientHeight','cartesianToCartographic','umax','fixedHeight','frameRate','EventType','show','length','umin','isInExtent','visible','commandList','autoClear','removeEventListener','8LDDSGL','_onMouseUpEvent','outputTexture','fromGeometry','framebuffer','tlat','FLOAT','atan2','layer','createParticlesTextures','register','refreshTimer','createColorTableTexture','fragmentShaderSource','0px','onColorTableChange','resize','destroy','textures','sqrt','abs','east','pointerEvents','quietPeriod','createRenderingFramebuffers','mouseHidden','grid','values','setData','stringify','globalAlpha','NEAREST','now','WindLayer','TRIANGLES','componentDatatype','298npVvGB','speedRate','createSegmentsGeometry','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','xmax','1142180grQuPK','bind','options','canvasWidth','remove','OPAQUE','rectangle','forEach','mouseUp','updateViewerParameters','postMessage','LayerUtil','redraw','mouseMove','viewerParameters','mode','RGBA','mouse_down','width','currentParticlesPosition','shaderProgram','_addedHook','lineWidth','drawingBufferHeight','_animateFrame','getRandomLatLng','green','mars3d-canvasWind','morphComplete','pass','speed','vmax','segments','slice','random','Rectangle','dropRateBump','scene','container','push','Math','_updateIng','none','primitiveType','windTextures','_map','rendering','zIndex','commandToExecute','number','_setOptionsHook','changeOptions','framebuffers','depthMask','dynamic','fromCache','mouse_move','particles','displayRange','getUVByPoint','color','segmentsDepth','magnificationFilter','reverse','processWindData','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','percentageChanged','1866852mmMMfE','canvas','max','Draw','applyViewerParameters','wind','createRenderingTextures','_removedHook','blue','particlesNumber','Cesium','windData','frameTime','alpha','getV','setDate','particlesTextures','attributeLocations','computing','Cartesian2','vmin','_bilinearInterpolation','getCalculateSpeedShader','postProcessingPosition','updatePosition','get','STATIC_DRAW','reCreateWindTextures','ymin','canvasContext'];_0x3a67=function(){return _0x1727ec;};return _0x3a67();}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(_0x45d23f){this['commandType']=_0x45d23f[_0x39100b(-0x63,-0x79)],this[_0x37b3e6(0x50d,0x517)]=_0x45d23f[_0x39100b(-0x8c,-0x4b)];function _0x37b3e6(_0x79bf0a,_0x34ea01){return _0x3e09ac(_0x79bf0a,_0x34ea01-0x6e5);}this['attributeLocations']=_0x45d23f[_0x39100b(-0x152,-0xcc)];function _0x39100b(_0x1fbd82,_0x432fdb){return _0x35d093(_0x1fbd82,_0x432fdb- -0x118);}this['primitiveType']=_0x45d23f['primitiveType'],this['uniformMap']=_0x45d23f[_0x39100b(-0xb,-0x61)]||{},this['vertexShaderSource']=_0x45d23f['vertexShaderSource'],this[_0x37b3e6(0x5b1,0x542)]=_0x45d23f[_0x39100b(-0x24,-0x20)],this[_0x37b3e6(0x4a5,0x51e)]=_0x45d23f[_0x39100b(0x17,-0x44)],this[_0x37b3e6(0x5b8,0x539)]=_0x45d23f[_0x39100b(-0xb4,-0x29)],this[_0x39100b(0x34,-0x2b)]=_0x45d23f[_0x37b3e6(0x4a9,0x537)],this[_0x37b3e6(0x53a,0x533)]=_0x45d23f['autoClear']??![],this[_0x39100b(-0x12,-0x57)]=_0x45d23f['preExecute'],this['show']=!![],this[_0x39100b(-0x154,-0xf1)]=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x45d23f[_0x37b3e6(0x4de,0x482)]??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x1899ea){function _0x2a2bfd(_0x4f4de0,_0x196ab){return _0x3e09ac(_0x4f4de0,_0x196ab-0x381);}function _0x2dd663(_0x2101c1,_0x522eba){return _0x3e09ac(_0x2101c1,_0x522eba-0x4a5);}if(this['commandType']===_0x2a2bfd(0xad,0x124)){const _0x5b7478={};_0x5b7478[_0x2dd663(0x25f,0x289)]=_0x1899ea,_0x5b7478['geometry']=this[_0x2a2bfd(0x241,0x1b3)],_0x5b7478['attributeLocations']=this['attributeLocations'],_0x5b7478[_0x2dd663(0x1fd,0x272)]=BufferUsage$1[_0x2dd663(0x1db,0x25f)];const _0x14c8af=VertexArray$1[_0x2a2bfd(0x1e1,0x1d4)](_0x5b7478),_0x1e4626={};_0x1e4626['context']=_0x1899ea,_0x1e4626['vertexShaderSource']=this['vertexShaderSource'],_0x1e4626['fragmentShaderSource']=this['fragmentShaderSource'],_0x1e4626[_0x2dd663(0x283,0x256)]=this[_0x2a2bfd(0x165,0x132)];const _0x115607=ShaderProgram[_0x2dd663(0x29b,0x238)](_0x1e4626),_0x4cc348=RenderState[_0x2a2bfd(0xe2,0x114)](this[_0x2dd663(0x280,0x2de)]),_0x3633d6={};return _0x3633d6[_0x2a2bfd(0x15f,0x199)]=this,_0x3633d6[_0x2dd663(0x252,0x2b9)]=_0x14c8af,_0x3633d6[_0x2a2bfd(0x177,0x108)]=this['primitiveType'],_0x3633d6['modelMatrix']=Matrix4['IDENTITY'],_0x3633d6['renderState']=_0x4cc348,_0x3633d6['shaderProgram']=_0x115607,_0x3633d6['framebuffer']=this['framebuffer'],_0x3633d6[_0x2dd663(0x295,0x2c1)]=this['uniformMap'],_0x3633d6[_0x2a2bfd(0x293,0x217)]=Pass$1['OPAQUE'],new DrawCommand(_0x3633d6);}else{if(this['commandType']==='Compute'){const _0x353330={};return _0x353330['owner']=this,_0x353330[_0x2dd663(0x30b,0x302)]=this[_0x2a2bfd(0x1d1,0x1de)],_0x353330[_0x2dd663(0x29f,0x2c1)]=this[_0x2a2bfd(0x1f3,0x19d)],_0x353330['outputTexture']=this['outputTexture'],_0x353330[_0x2a2bfd(0xfe,0x17c)]=!![],new ComputeCommand(_0x353330);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x14adb1,_0x28c578){function _0x412da7(_0x578812,_0xef1152){return _0x35d093(_0xef1152,_0x578812-0x255);}function _0x233d4f(_0x434124,_0x10a8d7){return _0x35d093(_0x10a8d7,_0x434124-0x146);}this['geometry']=_0x28c578,defined(this[_0x233d4f(0x16d,0xee)])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x14adb1,'geometry':this['geometry'],'attributeLocations':this[_0x233d4f(0x192,0x21e)],'bufferUsage':BufferUsage$1[_0x233d4f(0x19b,0x206)]}));}['update'](_0x5de365){if(!this['isDynamic']())return;if(!this['show']||!defined(_0x5de365))return;!defined(this[_0x15b49a(0x3fd,0x3b8)])&&(this[_0x15b49a(0x32b,0x3b8)]=this['createCommand'](_0x5de365['context']));defined(this['preExecute'])&&this['preExecute']();if(!_0x5de365[_0x15b49a(0x4fe,0x479)]){console['warn'](_0x4fe79d(-0x138,-0x181));return;}function _0x15b49a(_0x58bdba,_0x26d757){return _0x3e09ac(_0x58bdba,_0x26d757-0x62c);}defined(this['clearCommand'])&&_0x5de365[_0x15b49a(0x462,0x479)]['push'](this[_0x15b49a(0x438,0x44f)]);function _0x4fe79d(_0x213e95,_0x234996){return _0x3e09ac(_0x213e95,_0x234996-0xa1);}defined(this[_0x15b49a(0x42d,0x3b8)])&&_0x5de365[_0x4fe79d(-0xea,-0x112)][_0x15b49a(0x398,0x3af)](this['commandToExecute']);}['isDestroyed'](){return![];}[_0x35d093(0x160,0xfc)](){if(defined(this['commandToExecute'])){var _0x3076a3;(_0x3076a3=this[_0x1db60e(-0x16b,-0xdd)][_0x1db60e(-0x6a,-0x25)])===null||_0x3076a3===void 0x0||_0x3076a3[_0x1db60e(-0x96,-0xb6)](),this[_0x1db60e(-0x16b,-0x136)]['shaderProgram']=undefined;}function _0x4db203(_0x3d6059,_0x28762d){return _0x35d093(_0x3d6059,_0x28762d- -0x17d);}function _0x1db60e(_0x19a766,_0x752e5d){return _0x35d093(_0x752e5d,_0x19a766- -0x192);}return destroyObject(this);}}function deepMerge(_0x4ae871,_0x459976){if(!_0x4ae871)return _0x459976;function _0x55f586(_0x5c99a3,_0x33d7d5){return _0x35d093(_0x33d7d5,_0x5c99a3- -0x2a2);}if(!_0x459976)return _0x4ae871;const _0x372d55={..._0x459976},_0x40cf2d=_0x372d55;for(const _0x37e95f in _0x4ae871){if(Object[_0x55f586(-0x230,-0x2af)]['hasOwnProperty']['call'](_0x4ae871,_0x37e95f)){const _0x2ad7af=_0x4ae871[_0x37e95f],_0x410b02=_0x459976[_0x37e95f];if(Array['isArray'](_0x2ad7af)){_0x40cf2d[_0x37e95f]=_0x2ad7af[_0x55f586(-0x16d,-0x1b5)]();continue;}if(_0x2ad7af&&typeof _0x2ad7af==='object'){_0x40cf2d[_0x37e95f]=deepMerge(_0x2ad7af,_0x410b02||{});continue;}_0x2ad7af!==undefined&&(_0x40cf2d[_0x37e95f]=_0x2ad7af);}}function _0x85787d(_0x33c953,_0x47dc33){return _0x3e09ac(_0x47dc33,_0x33c953-0x703);}return _0x40cf2d;}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(_0x4e39b6,_0x1fca1b,_0x1d0f50,_0x135ca4,_0x5a7615){this['context']=_0x4e39b6,this['options']=_0x1d0f50,this['viewerParameters']=_0x135ca4;function _0x1dc82a(_0x530deb,_0x24194b){return _0x3e09ac(_0x24194b,_0x530deb-0x3a8);}this['windData']=_0x1fca1b,this['frameRate']=0x3c,this[_0x5f14d6(0x3a1,0x394)]=0x1;const _0x1a0168={};_0x1a0168['scene']=_0x5a7615,_0x1a0168['samplingWindow']=0x1,_0x1a0168[_0x5f14d6(0x408,0x424)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x1a0168),this['initFrameRate']();function _0x5f14d6(_0x544ca5,_0x24c575){return _0x35d093(_0x24c575,_0x544ca5-0x306);}this['createWindTextures'](),this['createParticlesTextures'](),this[_0x1dc82a(0x1d2,0x1d9)]();}['initFrameRate'](){const _0xca4c5f=()=>{function _0x1d1be4(_0x2b5cfa,_0x491586){return _0x5ceb(_0x491586- -0xe6,_0x2b5cfa);}function _0x327b7a(_0x3499d1,_0x181588){return _0x5ceb(_0x181588- -0x9c,_0x3499d1);}this[_0x1d1be4(0x75,0x98)]['lastFramesPerSecond']>0x14&&(this[_0x327b7a(0xec,0x138)]=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this[_0x1d1be4(0xda,0xee)],0x1));};_0xca4c5f();const _0x121c63=setInterval(_0xca4c5f,0x3e8),_0x571d8c=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x121c63),_0x571d8c();};}['createWindTextures'](){function _0x8ec145(_0x39aa90,_0x1507d8){return _0x35d093(_0x1507d8,_0x39aa90-0x11f);}function _0x2bbc01(_0x40cb5a,_0x253f91){return _0x35d093(_0x40cb5a,_0x253f91- -0x13e);}const _0x45dd75={};_0x45dd75['minificationFilter']=TextureMinificationFilter$1[_0x8ec145(0x189,0x212)],_0x45dd75[_0x2bbc01(-0xb2,-0x109)]=TextureMagnificationFilter$1[_0x2bbc01(-0xc1,-0xd4)];const _0x30f174={'context':this['context'],'width':this[_0x8ec145(0x165,0x1c3)][_0x8ec145(0x245,0x229)],'height':this[_0x2bbc01(-0xfa,-0xf8)][_0x8ec145(0x1df,0x1c3)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x45dd75)};this[_0x2bbc01(-0x140,-0x11b)]={'U':new Texture$1({..._0x30f174,'source':{'arrayBufferView':new Float32Array(this[_0x2bbc01(-0xa0,-0xf8)]['u'][_0x2bbc01(-0x12,-0x86)])}}),'V':new Texture$1({..._0x30f174,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x506e53={};function _0x49bdde(_0x1074eb,_0x4e8e02){return _0x3e09ac(_0x4e8e02,_0x1074eb-0x77);}_0x506e53['minificationFilter']=TextureMinificationFilter$1['NEAREST'],_0x506e53['magnificationFilter']=TextureMagnificationFilter$1[_0x49bdde(-0x11a,-0x111)];function _0x2c5d1c(_0xbfe9d2,_0x26535a){return _0x3e09ac(_0xbfe9d2,_0x26535a-0x370);}const _0x5f4096={'context':this[_0x2c5d1c(0x15b,0x154)],'width':this[_0x2c5d1c(0x227,0x1eb)][_0x2c5d1c(0x1e1,0x19c)],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0x2c5d1c(0x203,0x1f9)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options'][_0x2c5d1c(0x1c9,0x19c)]*this[_0x49bdde(-0x10e,-0xb9)][_0x49bdde(-0x15d,-0x1ce)]*0x4)[_0x49bdde(-0x1b8,-0x14a)](0x0)},'sampler':new Sampler$1(_0x506e53)};this[_0x49bdde(-0x1d9,-0x1ee)]={'previousParticlesPosition':new Texture$1(_0x5f4096),'currentParticlesPosition':new Texture$1(_0x5f4096),'nextParticlesPosition':new Texture$1(_0x5f4096),'postProcessingPosition':new Texture$1(_0x5f4096),'particlesSpeed':new Texture$1(_0x5f4096)};}['destroyParticlesTextures'](){function _0x2225c1(_0x389951,_0xeaed2c){return _0x35d093(_0xeaed2c,_0x389951-0x227);}function _0x1b7548(_0x30398f,_0x13ca10){return _0x35d093(_0x13ca10,_0x30398f- -0x50);}Object['values'](this[_0x2225c1(0x272,0x2c9)])[_0x1b7548(0xcb,0xd5)](_0x8c0f94=>_0x8c0f94['destroy']());}[_0x35d093(0xa5,0xc5)](){function _0x12c3b4(_0x7e8337,_0x4b42bb){return _0x3e09ac(_0x7e8337,_0x4b42bb-0x39e);}function _0x87f16b(_0x5df00d,_0x5a22ae){return _0x35d093(_0x5a22ae,_0x5df00d-0x7d);}this[_0x12c3b4(0x1aa,0x1bc)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x87f16b(0xc3,0x69)]['u']['min'],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x12c3b4(0x1c2,0x149)]['v']['min'],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this[_0x12c3b4(0x104,0x149)]['speed']['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x2fc215(_0x54caa7,_0x53e5e2){return _0x87f16b(_0x54caa7-0x3b0,_0x53e5e2);}return(this[_0x2fc215(0x54f,0x583)]['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this[_0x87f16b(0xc3,0x70)]['width'],this[_0x12c3b4(0x1ad,0x149)][_0x87f16b(0x13d,0xc0)]),'minimum':()=>new Cartesian2$1(this[_0x12c3b4(0x1a6,0x149)]['bounds'][_0x12c3b4(0x1e4,0x191)],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this[_0x12c3b4(0x1b2,0x149)][_0x12c3b4(0x1c2,0x1b7)][_0x12c3b4(0x1fa,0x203)],this['windData']['bounds']['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures'][_0x87f16b(0xe0,0x16d)],'preExecute':()=>{const _0x188b71=this[_0x1cc6b9(0x507,0x493)]['previousParticlesPosition'];this[_0x1cc6b9(0x507,0x589)]['previousParticlesPosition']=this[_0x1cc6b9(0x507,0x57d)][_0x1cc6b9(0x5e3,0x65a)];function _0x18c744(_0x2673f1,_0x3c7887){return _0x87f16b(_0x2673f1-0x441,_0x3c7887);}this['particlesTextures'][_0x1cc6b9(0x5e3,0x5d2)]=this[_0x1cc6b9(0x507,0x52e)][_0x1cc6b9(0x50e,0x503)];function _0x1cc6b9(_0x54a7bc,_0x235514){return _0x12c3b4(_0x235514,_0x54a7bc-0x3b9);}this['particlesTextures']['postProcessingPosition']=_0x188b71,this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives'][_0x1cc6b9(0x579,0x528)][_0x1cc6b9(0x4e3,0x4a0)]['outputTexture']=this[_0x1cc6b9(0x507,0x4ea)][_0x1cc6b9(0x51f,0x4e8)]);},'isDynamic':()=>this[_0x12c3b4(0x191,0x219)][_0x87f16b(0xaa,0x8b)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x87f16b(0xc8,0x107)]['currentParticlesPosition'],'particlesSpeed':()=>this[_0x87f16b(0xc8,0xce)][_0x12c3b4(0x180,0x166)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x12c3b4(0x176,0x14e)]['nextParticlesPosition'],'preExecute':()=>{function _0x5521ee(_0x424589,_0x3526fb){return _0x87f16b(_0x3526fb-0x2d4,_0x424589);}function _0x144552(_0x1f5df5,_0x20b04a){return _0x87f16b(_0x1f5df5- -0x31c,_0x20b04a);}this['primitives']['updatePosition'][_0x5521ee(0x400,0x378)]&&(this[_0x144552(-0x1e6,-0x26d)]['updatePosition']['commandToExecute']['outputTexture']=this[_0x144552(-0x254,-0x258)]['nextParticlesPosition']);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this[_0x87f16b(0xc8,0x90)]['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0x12c3b4(0x112,0x149)]['bounds']['west'],this[_0x12c3b4(0x11f,0x149)][_0x12c3b4(0x238,0x1b7)][_0x12c3b4(0x28f,0x203)]),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this['windData'][_0x87f16b(0x131,0x18a)][_0x12c3b4(0x1c8,0x1b4)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this[_0x87f16b(0x193,0x125)]['dropRate'],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this['options'][_0x12c3b4(0x140,0x1cd)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x87f16b(0xc8,0x13d)][_0x12c3b4(0x10a,0x155)],'preExecute':()=>{function _0x4ada62(_0x5c8d34,_0x12c967){return _0x87f16b(_0x12c967-0x31,_0x5c8d34);}function _0x3b6900(_0x49d424,_0x5954ec){return _0x12c3b4(_0x49d424,_0x5954ec- -0x3c3);}this[_0x4ada62(0x1c0,0x167)][_0x4ada62(0x95,0x100)][_0x3b6900(-0x248,-0x299)]&&(this[_0x4ada62(0x1f4,0x167)][_0x4ada62(0x92,0x100)]['commandToExecute'][_0x3b6900(-0x1f9,-0x1d3)]=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0x87f16b(0x193,0x161)]['dynamic']})};}['reCreateWindTextures'](){this[_0x1da76f(0x1a9,0x223)]['U'][_0x18b38e(0x42d,0x3b4)]();function _0x1da76f(_0x55e4d0,_0x306adb){return _0x35d093(_0x55e4d0,_0x306adb-0x200);}this[_0x1da76f(0x26f,0x223)]['V']['destroy']();function _0x18b38e(_0x1ddea3,_0x5e9f44){return _0x35d093(_0x1ddea3,_0x5e9f44-0x2b8);}this['createWindTextures']();}['updateWindData'](_0x5c6dcc){function _0x515e30(_0x56e823,_0x3995c6){return _0x35d093(_0x3995c6,_0x56e823-0x482);}this[_0x515e30(0x4c8,0x449)]=_0x5c6dcc,this['reCreateWindTextures']();}['updateOptions'](_0x221e43){const _0x35a357=_0x221e43[_0x44b608(0x2e5,0x2b1)]!==undefined&&_0x221e43['flipY']!==this['options']['flipY'];function _0x44b608(_0x5613be,_0x34915c){return _0x35d093(_0x34915c,_0x5613be-0x23c);}function _0x5470fb(_0x280747,_0x3fcf52){return _0x35d093(_0x280747,_0x3fcf52-0x391);}this[_0x5470fb(0x51f,0x4a7)]=deepMerge(_0x221e43,this[_0x5470fb(0x4ba,0x4a7)]),_0x35a357&&this[_0x5470fb(0x388,0x3e7)]();}['processWindData'](_0x1e773e){const {array:_0x15e6e7}=_0x1e773e;let {min:_0x4b4c66,max:_0x109689}=_0x1e773e;const _0x42853b=new Float32Array(_0x15e6e7['length']);_0x4b4c66===undefined&&(console['warn'](_0x2e0184(-0x6f,0xd)),_0x4b4c66=Math['min'](..._0x15e6e7));_0x109689===undefined&&(console['warn'](_0x2e0184(0x6f,-0x1e)),_0x109689=Math['max'](..._0x15e6e7));const _0x182f69=Math[_0x2e0184(-0xb0,-0x5e)](Math[_0x2e0184(0xc9,0x64)](_0x4b4c66),Math['abs'](_0x109689));function _0x4c0e91(_0x13079d,_0x464030){return _0x35d093(_0x13079d,_0x464030- -0x65);}for(let _0x991bbc=0x0;_0x991bbc<_0x15e6e7['length'];_0x991bbc++){const _0xeb8582=_0x15e6e7[_0x991bbc]/_0x182f69;_0x42853b[_0x991bbc]=_0xeb8582;}function _0x2e0184(_0x51f9bf,_0x10a86b){return _0x3e09ac(_0x51f9bf,_0x10a86b-0x200);}return _0x42853b;}['destroy'](){Object['values'](this['windTextures'])['forEach'](_0x2211b8=>_0x2211b8['destroy']());function _0xc4843d(_0x56c58d,_0xa6841e){return _0x35d093(_0x56c58d,_0xa6841e- -0x2b9);}function _0x4a6732(_0xcc8bb1,_0x48dd05){return _0x35d093(_0x48dd05,_0xcc8bb1- -0x2cd);}Object[_0xc4843d(-0x23a,-0x1b3)](this['particlesTextures'])[_0xc4843d(-0x11f,-0x19e)](_0x31340b=>_0x31340b['destroy']()),Object[_0x4a6732(-0x1c7,-0x1fa)](this['primitives'])[_0x4a6732(-0x1b2,-0x20a)](_0x4d5fdf=>_0x4d5fdf['destroy']()),this[_0xc4843d(-0x270,-0x22e)][_0x4a6732(-0x1d1,-0x1ed)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x35d093(0xa,0x45)];class WindParticlesRendering{constructor(_0x3a265a,_0x36170b,_0x49854c,_0x18f9cd){this[_0x2601e1(0x1fa,0x1fb)]=_0x3a265a,this['options']=_0x36170b,this['viewerParameters']=_0x49854c,this[_0x2601e1(0x1c8,0x15e)]=_0x18f9cd;function _0x2601e1(_0x5cb5e8,_0x364b0e){return _0x3e09ac(_0x364b0e,_0x5cb5e8-0x416);}(typeof this[_0x2601e1(0x291,0x2a1)][_0x11e8cc(0x36,-0x3d)]!==_0x11e8cc(-0x4f,-0xdc)||this['options']['particlesTextureSize']<=0x0)&&(console['error'](_0x11e8cc(-0x71,0xe)),this['options']['particlesTextureSize']=0x100);function _0x11e8cc(_0x39c91d,_0x4981e7){return _0x3e09ac(_0x39c91d,_0x4981e7-0x197);}this['colorTable']=this['createColorTableTexture'](),this[_0x11e8cc(0x55,-0x7)]=this['createRenderingTextures'](),this['framebuffers']=this[_0x2601e1(0x27e,0x2d4)](),this[_0x2601e1(0x234,0x1ea)]=this['createPrimitives']();}[_0x3e09ac(-0x2e4,-0x25a)](){const _0x115416={};_0x115416[_0x290596(0x5a6,0x548)]=this[_0x290596(0x5c0,0x548)],_0x115416[_0xe3f928(0x4f6,0x523)]=this[_0xe3f928(0x44f,0x477)]['drawingBufferWidth'],_0x115416[_0x290596(0x568,0x589)]=this[_0x290596(0x4f5,0x548)]['drawingBufferHeight'],_0x115416['pixelFormat']=PixelFormat['RGBA'],_0x115416['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x1c0ed0=_0x115416,_0xd76084={};_0xd76084[_0x290596(0x515,0x548)]=this[_0x290596(0x559,0x548)],_0xd76084[_0xe3f928(0x4f6,0x57c)]=this[_0x290596(0x577,0x548)]['drawingBufferWidth'];function _0x290596(_0xf5ace7,_0x145194){return _0x35d093(_0xf5ace7,_0x145194-0x4c9);}_0xd76084['height']=this[_0xe3f928(0x44f,0x445)][_0xe3f928(0x4fb,0x4f0)],_0xd76084[_0x290596(0x542,0x53c)]=PixelFormat[_0x290596(0x594,0x540)],_0xd76084[_0xe3f928(0x473,0x4ac)]=PixelDatatype['UNSIGNED_INT'];function _0xe3f928(_0x441058,_0x42c5f9){return _0x3e09ac(_0x42c5f9,_0x441058-0x66b);}const _0x2a9a1f=_0xd76084;return{'segmentsColor':new Texture(_0x1c0ed0),'segmentsDepth':new Texture(_0x2a9a1f)};}['createRenderingFramebuffers'](){const _0x4e5e18={};function _0x5bb2b6(_0x115abe,_0x4ccfda){return _0x3e09ac(_0x4ccfda,_0x115abe-0x261);}return _0x4e5e18['context']=this[_0x5bb2b6(0x45,0x2a)],_0x4e5e18['colorTextures']=[this['textures']['segmentsColor']],_0x4e5e18['depthTexture']=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x4e5e18)};}['destoryRenderingFramebuffers'](){function _0x109e15(_0x3a7d84,_0xe901b1){return _0x3e09ac(_0x3a7d84,_0xe901b1-0x42b);}Object['values'](this[_0x109e15(0x16b,0x1bb)])['forEach'](_0x37f576=>{function _0x228f51(_0x4d69e5,_0xcb749f){return _0x109e15(_0x4d69e5,_0xcb749f- -0x44d);}_0x37f576[_0x228f51(-0x16f,-0x1c1)]();});}[_0x35d093(0x100,0xf7)](){const _0x46d792=new Float32Array(this[_0xe4f47c(0x4,0x70)][_0xe4f47c(-0xab,-0x10e)]['flatMap'](_0x19974e=>{function _0x3ef2bc(_0x5b1dd8,_0x38fc89){return _0xe4f47c(_0x38fc89-0x399,_0x5b1dd8);}function _0x664bbb(_0x539ad9,_0x23de3d){return _0xe4f47c(_0x23de3d-0x396,_0x539ad9);}const _0x18c3ff=Color$1[_0x3ef2bc(0x36e,0x2f4)](_0x19974e);return[_0x18c3ff['red'],_0x18c3ff[_0x3ef2bc(0x3e6,0x3b5)],_0x18c3ff[_0x664bbb(0x2ec,0x2c7)],_0x18c3ff[_0x3ef2bc(0x2b6,0x2cf)]];}));function _0x9543bf(_0x16aaec,_0x130a7a){return _0x3e09ac(_0x16aaec,_0x130a7a-0x121);}const _0x41917f={};function _0xe4f47c(_0x57f8cd,_0x5a7836){return _0x35d093(_0x5a7836,_0x57f8cd- -0x112);}return _0x41917f['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x41917f[_0x9543bf(-0x1b3,-0x145)]=TextureMagnificationFilter['LINEAR'],_0x41917f['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x41917f['wrapT']=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this['context'],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat[_0x9543bf(0x10,-0x56)],'pixelDatatype':PixelDatatype[_0x9543bf(-0xa8,-0x89)],'sampler':new Sampler(_0x41917f),'source':{'width':this[_0xe4f47c(0x4,0x1a)][_0xe4f47c(-0xab,-0x12d)]['length'],'height':0x1,'arrayBufferView':_0x46d792}});}['createSegmentsGeometry'](){function _0x3e69aa(_0x199d8e,_0x281aff){return _0x35d093(_0x281aff,_0x199d8e-0x214);}const _0x1f693e=0x4,_0x5405ae=this['options']['particlesTextureSize'];let _0x3e61c3=[];for(let _0x3d44b3=0x0;_0x3d44b3<_0x5405ae;_0x3d44b3++){for(let _0x3f4066=0x0;_0x3f4066<_0x5405ae;_0x3f4066++){for(let _0x2cf902=0x0;_0x2cf902<_0x1f693e;_0x2cf902++){_0x3e61c3[_0x3be45a(-0xf3,-0xee)](_0x3d44b3/_0x5405ae),_0x3e61c3[_0x3e69aa(0x232,0x2b9)](_0x3f4066/_0x5405ae);}}}_0x3e61c3=new Float32Array(_0x3e61c3);const _0x32e64c=this['options'][_0x3e69aa(0x2db,0x29b)]**0x2;let _0x4b23d7=[];for(let _0x4813e=0x0;_0x4813e<_0x32e64c;_0x4813e++){_0x4b23d7['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x4b23d7=new Float32Array(_0x4b23d7);let _0x2972f1=[];for(let _0x4f3da8=0x0,_0x36d6f2=0x0;_0x4f3da8<_0x32e64c;_0x4f3da8++){_0x2972f1[_0x3e69aa(0x232,0x2aa)](_0x36d6f2+0x0,_0x36d6f2+0x1,_0x36d6f2+0x2,_0x36d6f2+0x2,_0x36d6f2+0x1,_0x36d6f2+0x3),_0x36d6f2+=_0x1f693e;}_0x2972f1=new Uint32Array(_0x2972f1);const _0xe7ba65={};_0xe7ba65[_0x3e69aa(0x322,0x380)]=ComponentDatatype['FLOAT'],_0xe7ba65['componentsPerAttribute']=0x2,_0xe7ba65['values']=_0x3e61c3;const _0x57bcd6={};_0x57bcd6['componentDatatype']=ComponentDatatype['FLOAT'],_0x57bcd6['componentsPerAttribute']=0x3,_0x57bcd6['values']=_0x4b23d7;const _0x2794e8=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0xe7ba65),'normal':new GeometryAttribute(_0x57bcd6)}),'indices':_0x2972f1});function _0x3be45a(_0x101865,_0x47cd83){return _0x35d093(_0x47cd83,_0x101865- -0x111);}return _0x2794e8;}[_0x35d093(0x81,0x5c)](_0x592e49){const _0x2094e9={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x592e49};function _0x2aa82e(_0x341b93,_0x2e73f3){return _0x35d093(_0x2e73f3,_0x341b93-0x2da);}return Appearance[_0x2aa82e(0x3ad,0x324)](!![],![],_0x2094e9);}['createPrimitives'](){const _0x2e723a={};_0x2e723a['st']=0x0,_0x2e723a[_0x5ef48b(0x346,0x350)]=0x1;const _0x54e950={};_0x54e950[_0x5ef48b(0x33f,0x303)]=!![];const _0x282e5e={};_0x282e5e[_0x5ef48b(0x33f,0x3af)]=!![],_0x282e5e[_0x5ef48b(0x30c,0x306)]=WebGLRenderingContext['FUNC_ADD'],_0x282e5e['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x282e5e['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x56fdb3={};function _0x5ef48b(_0x46733e,_0x2d4bae){return _0x3e09ac(_0x2d4bae,_0x46733e-0x54d);}_0x56fdb3[_0x3850c2(-0x233,-0x243)]=undefined,_0x56fdb3['depthTest']=_0x54e950,_0x56fdb3[_0x5ef48b(0x2de,0x326)]=!![],_0x56fdb3['blending']=_0x282e5e;const _0x2e3ab5=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x2e723a,'geometry':this[_0x5ef48b(0x3c3,0x37f)](),'primitiveType':PrimitiveType[_0x3850c2(-0x1cd,-0x1dd)],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x5ef48b(0x2fd,0x371)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing'][_0x5ef48b(0x2fd,0x271)]['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x5ef48b(0x2ff,0x2cd)][_0x5ef48b(0x2fd,0x2e4)]['postProcessingPosition'],'particlesSpeed':()=>this[_0x3850c2(-0x28d,-0x300)]['particlesTextures'][_0x3850c2(-0x277,-0x2dc)],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{var _0x4cc3e4,_0x341a6d;function _0x34ac31(_0x15eb54,_0x4cdef8){return _0x5ef48b(_0x4cdef8-0x1e3,_0x15eb54);}const _0x2ec41f=new Cartesian2(((_0x4cc3e4=this[_0x34ac31(0x60d,0x5ab)]['domain'])===null||_0x4cc3e4===void 0x0?void 0x0:_0x4cc3e4[_0x4cd54c(0x489,0x485)])??this['computing'][_0x4cd54c(0x422,0x408)][_0x4cd54c(0x50e,0x49f)]['min'],((_0x341a6d=this['options']['domain'])===null||_0x341a6d===void 0x0?void 0x0:_0x341a6d[_0x34ac31(0x524,0x4d2)])??this['computing'][_0x34ac31(0x4ad,0x4db)][_0x4cd54c(0x50e,0x575)][_0x34ac31(0x497,0x4d2)]);function _0x4cd54c(_0x94d2b4,_0x580553){return _0x5ef48b(_0x94d2b4-0x12a,_0x580553);}return _0x2ec41f;},'displayRange':()=>{var _0x308160,_0x152cfd;function _0xc04083(_0xfe9878,_0x426826){return _0x5ef48b(_0x426826-0x11e,_0xfe9878);}const _0xdd0d1c=new Cartesian2(((_0x308160=this['options']['displayRange'])===null||_0x308160===void 0x0?void 0x0:_0x308160['min'])??this[_0x89f2cc(0x261,0x229)]['windData'][_0x89f2cc(0x31e,0x30e)][_0xc04083(0x40d,0x47d)],((_0x152cfd=this['options'][_0xc04083(0x46b,0x401)])===null||_0x152cfd===void 0x0?void 0x0:_0x152cfd['max'])??this['computing'][_0xc04083(0x479,0x416)]['speed'][_0xc04083(0x404,0x40d)]);function _0x89f2cc(_0x3d7bab,_0x5de939){return _0x5ef48b(_0x5de939- -0xd6,_0x3d7bab);}return _0xdd0d1c;},'particleHeight':()=>this['options'][_0x3850c2(-0x1fa,-0x228)]||0x0,'aspect':()=>this['context'][_0x5ef48b(0x33e,0x2ee)]/this['context'][_0x5ef48b(0x3dd,0x37f)],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{const _0x54ce12={};_0x54ce12['min']=0x1,_0x54ce12['max']=0x2;function _0x4ba6d7(_0x342749,_0x18b995){return _0x5ef48b(_0x342749- -0x51a,_0x18b995);}const _0x2a79f0=this[_0x4ba6d7(-0x152,-0x18a)]['lineWidth']||_0x54ce12;return new Cartesian2(_0x2a79f0['min'],_0x2a79f0['max']);},'lineLength':()=>{function _0x3d47ab(_0x5ed37f,_0x5e77d6){return _0x3850c2(_0x5e77d6-0x119,_0x5ed37f);}const _0x14d174={};_0x14d174['min']=0x14;function _0x5a0642(_0x3496cb,_0xbfca62){return _0x5ef48b(_0x3496cb-0x4e,_0xbfca62);}_0x14d174['max']=0x64;const _0x5bd817=this[_0x3d47ab(-0x45,-0xab)][_0x3d47ab(-0x1ac,-0x147)]||_0x14d174;return new Cartesian2(_0x5bd817['min'],_0x5bd817['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x5ef48b(0x337,0x2da)],'segmentsDepthTexture':()=>this[_0x3850c2(-0x1dd,-0x232)][_0x3850c2(-0x2a6,-0x2e7)]},'vertexShaderSource':ShaderManager[_0x5ef48b(0x322,0x2a8)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x56fdb3)}),_0x210115={};_0x210115['segments']=_0x2e3ab5;function _0x3850c2(_0x8ccac0,_0x31750d){return _0x3e09ac(_0x31750d,_0x8ccac0- -0x3f);}return _0x210115;}['onParticlesTextureSizeChange'](){const _0x13a162=this['createSegmentsGeometry']();this[_0x27793d(0x5f4,0x577)]['segments'][_0x27793d(0x536,0x58b)]=_0x13a162;const _0xd903c9={};function _0x27793d(_0x349d12,_0x5a2f61){return _0x35d093(_0x349d12,_0x5a2f61-0x4be);}_0xd903c9['context']=this[_0x285908(-0x41,-0x69)],_0xd903c9[_0x27793d(0x5ec,0x58b)]=_0x13a162;function _0x285908(_0x51bd9f,_0x29e8f1){return _0x3e09ac(_0x29e8f1,_0x51bd9f-0x1db);}_0xd903c9['attributeLocations']=this['primitives']['segments'][_0x27793d(0x4ea,0x50a)],_0xd903c9[_0x285908(-0x58,0xb)]=BufferUsage['STATIC_DRAW'];const _0x7e453=VertexArray['fromGeometry'](_0xd903c9);this['primitives']['segments'][_0x27793d(0x491,0x4e5)]&&(this['primitives'][_0x27793d(0x580,0x5f2)]['commandToExecute']['vertexArray']=_0x7e453);}['onColorTableChange'](){this['colorTable']['destroy']();function _0x2d35cb(_0x81d1f6,_0x14e2b2){return _0x3e09ac(_0x81d1f6,_0x14e2b2-0x4c0);}this['colorTable']=this[_0x2d35cb(0x39f,0x31c)]();}['updateOptions'](_0x56b74e){function _0x23b58b(_0x55a266,_0x1659a9){return _0x3e09ac(_0x1659a9,_0x55a266-0x5c6);}const _0x32adf4=_0x56b74e['colors']&&JSON[_0x20355e(0x478,0x440)](_0x56b74e['colors'])!==JSON['stringify'](this['options']['colors']);this['options']=deepMerge(_0x56b74e,this['options']);function _0x20355e(_0x39fc02,_0x2e5b7b){return _0x35d093(_0x2e5b7b,_0x39fc02-0x370);}_0x32adf4&&this[_0x20355e(0x46a,0x44d)]();}[_0x35d093(0xbb,0xfc)](){Object['values'](this['framebuffers'])['forEach'](_0x596f32=>{function _0x29341c(_0x2f675c,_0x478174){return _0x5ceb(_0x2f675c-0x12,_0x478174);}_0x596f32[_0x29341c(0x201,0x1ba)]();}),Object['values'](this['primitives'])['forEach'](_0x2423e2=>{_0x2423e2['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0xaf0bf9,_0x31dcbc,_0x2c1e08,_0x417a61,_0x55fa93){this[_0x101bf5(0x189,0x131)]=_0xaf0bf9;function _0x6611b9(_0x2e0275,_0x50dc05){return _0x3e09ac(_0x50dc05,_0x2e0275-0x209);}this['options']=_0x2c1e08,this['viewerParameters']=_0x417a61,this['computing']=new WindParticlesComputing(_0xaf0bf9,_0x31dcbc,_0x2c1e08,_0x417a61,_0x55fa93);function _0x101bf5(_0x3eddb2,_0x498ca7){return _0x35d093(_0x498ca7,_0x3eddb2-0x10a);}this['rendering']=new WindParticlesRendering(_0xaf0bf9,_0x2c1e08,_0x417a61,this['computing']),this[_0x6611b9(0x1a,0x99)]();}['getPrimitives'](){const _0x282a7f=[this['computing']['primitives']['calculateSpeed'],this['computing']['primitives'][_0x2d2edc(-0x40,0x3d)],this['computing']['primitives'][_0x528683(0x1f3,0x246)],this[_0x2d2edc(-0x6e,-0xd0)][_0x528683(0x25a,0x222)]['segments']];function _0x2d2edc(_0x116a4a,_0x468cec){return _0x3e09ac(_0x468cec,_0x116a4a-0x208);}function _0x528683(_0x283bb3,_0x3f38ef){return _0x35d093(_0x3f38ef,_0x283bb3-0x1a1);}return _0x282a7f;}['clearFramebuffers'](){const _0x4c97d0=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x1fe35d(-0x112,-0xe8)]});function _0x1fe35d(_0x57e7e4,_0x1af59e){return _0x3e09ac(_0x1af59e,_0x57e7e4-0x70);}function _0x441370(_0x5ef121,_0x6b3ed2){return _0x35d093(_0x6b3ed2,_0x5ef121-0xc4);}Object[_0x441370(0x16a,0x134)](this[_0x441370(0xe9,0xc4)][_0x1fe35d(-0x200,-0x209)])[_0x441370(0x1df,0x26a)](_0x2c244f=>{function _0x355555(_0x17334b,_0x336cc5){return _0x1fe35d(_0x17334b-0x63e,_0x336cc5);}_0x4c97d0['framebuffer']=this['rendering'][_0x54a523(0x4,0x9)][_0x2c244f];function _0x54a523(_0x5868d9,_0x235304){return _0x1fe35d(_0x235304-0x209,_0x5868d9);}_0x4c97d0[_0x54a523(-0x44,0x3c)](this['context']);});}['changeOptions'](_0x4b5d47){let _0x31a06b=![];_0x4b5d47['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x4b5d47['particlesTextureSize']&&(_0x31a06b=!![]);const _0x39ccc1=deepMerge(_0x4b5d47,this[_0x19d914(0x426,0x459)]);if(_0x39ccc1[_0x19d914(0x3d7,0x459)]<0x1)throw new Error(_0x19d914(0x3bb,0x334));this['options']=_0x39ccc1,this['rendering']['updateOptions'](_0x4b5d47);function _0x21cef0(_0x13af46,_0x439581){return _0x35d093(_0x439581,_0x13af46-0x10e);}function _0x19d914(_0x4a8cf4,_0x58127e){return _0x3e09ac(_0x58127e,_0x4a8cf4-0x5ab);}this['computing']['updateOptions'](_0x4b5d47),_0x31a06b&&(this[_0x19d914(0x35d,0x2da)][_0x21cef0(0x1e9,0x202)](),this['computing'][_0x19d914(0x404,0x465)](),this[_0x19d914(0x335,0x35b)]['onParticlesTextureSizeChange']());}[_0x3e09ac(-0x299,-0x25c)](_0x287d7d){function _0x563b05(_0x583d94,_0x552ff9){return _0x35d093(_0x583d94,_0x552ff9- -0x12c);}this['viewerParameters']=_0x287d7d,this[_0x563b05(-0xdd,-0xdf)]['viewerParameters']=_0x287d7d,this['rendering']['viewerParameters']=_0x287d7d;}['destroy'](){function _0x53de6f(_0x5f29e1,_0x317eff){return _0x3e09ac(_0x5f29e1,_0x317eff-0x3fc);}function _0x327578(_0x4e745b,_0x4090a8){return _0x3e09ac(_0x4090a8,_0x4e745b- -0x20);}this[_0x53de6f(0x208,0x1ae)]['destroy'](),this['rendering'][_0x327578(-0x1bf,-0x176)]();}}function _0x35d093(_0x3695b1,_0x34a834){return _0x5ceb(_0x34a834- -0xf3,_0x3695b1);}const Cesium$1=mars3d__namespace[_0x3e09ac(-0x221,-0x256)],BaseLayer$1=mars3d__namespace['layer'][_0x3e09ac(-0x1d1,-0x1fb)],_0xc9185d={};_0xc9185d[_0x35d093(0x29,0xad)]=0x1,_0xc9185d['max']=0x2;const _0x27812b={};_0x27812b['min']=0x14,_0x27812b['max']=0x64;const _0x19992d={};function _0x5ceb(_0x59a82d,_0x263221){const _0x3a6752=_0x3a67();return _0x5ceb=function(_0x5cebc3,_0x4678fe){_0x5cebc3=_0x5cebc3-0x10f;let _0x50b78f=_0x3a6752[_0x5cebc3];return _0x50b78f;},_0x5ceb(_0x59a82d,_0x263221);}_0x19992d['particlesTextureSize']=0x64,_0x19992d[_0x3e09ac(-0x1f0,-0x1bb)]=0x0,_0x19992d['lineWidth']=_0xc9185d,_0x19992d[_0x3e09ac(-0x22a,-0x221)]=_0x27812b,_0x19992d[_0x3e09ac(-0x19e,-0x1c9)]=0x1,_0x19992d[_0x3e09ac(-0x247,-0x1c5)]=0.003,_0x19992d[_0x35d093(0x1c5,0x138)]=0.001,_0x19992d['colors']=['rgb(206,255,255)'],_0x19992d[_0x35d093(0x23,0xa9)]=![],_0x19992d[_0x3e09ac(-0x28c,-0x26e)]=!![];const DEF_OPTIONS=_0x19992d;class WindLayer extends BaseLayer$1{constructor(_0x2a518c={}){_0x2a518c={...DEF_OPTIONS,..._0x2a518c};function _0x275f04(_0x1e68dd,_0x165aea){return _0x35d093(_0x165aea,_0x1e68dd-0x29f);}super(_0x2a518c),this[_0x275f04(0x2c8,0x28a)](_0x2a518c,_0x2a518c);}get[_0x3e09ac(-0x236,-0x1a8)](){return this['primitives'];}get[_0x35d093(0x118,0xb2)](){function _0x2f7384(_0x4d45aa,_0x2db18b){return _0x35d093(_0x2db18b,_0x4d45aa-0x460);}return this[_0x2f7384(0x576,0x4f6)]['data'];}set['data'](_0x47de61){function _0xa433cb(_0x212997,_0x4f41f0){return _0x35d093(_0x4f41f0,_0x212997-0x18b);}function _0x195606(_0x11de78,_0x2e32da){return _0x35d093(_0x2e32da,_0x11de78-0x45c);}this[_0xa433cb(0x2a1,0x296)][_0xa433cb(0x23d,0x2a1)]=_0x47de61,this[_0xa433cb(0x292,0x216)](_0x47de61);}get['colors'](){function _0x199fce(_0x49d274,_0x26aabe){return _0x35d093(_0x49d274,_0x26aabe-0x205);}return this[_0x199fce(0x37a,0x31b)]['colors'];}set['colors'](_0x1679f8){this['options'][_0x4c180b(-0xb,0x53)]=_0x1679f8;const _0x4325c4={};_0x4325c4['colors']=_0x1679f8;function _0x4c180b(_0x5bc0dd,_0x392c52){return _0x35d093(_0x5bc0dd,_0x392c52- -0x14);}this['_setOptionsHook'](this['options'],_0x4325c4);}['_showHook'](_0x41a8d7){function _0x506ca8(_0x4469c8,_0x21d57f){return _0x35d093(_0x21d57f,_0x4469c8- -0x86);}_0x41a8d7?this['_addedHook']():this[_0x506ca8(-0x44,-0x6f)]();}['_mountedHook'](){}['_addedHook'](){this[_0x2fffa0(0x1a6,0x1a8)]=this[_0x2fffa0(0x1ae,0x1e3)][_0x2fffa0(0x1a6,0x13e)];function _0x2fffa0(_0x10b18f,_0xd4edc5){return _0x35d093(_0xd4edc5,_0x10b18f-0x18a);}this['camera']=this['_map']['camera'];this['options']['data']&&this['setData'](this['options'][_0x2fffa0(0x23c,0x1ff)]);if(!this['windData']||!this[_0x80fe89(0x45d,0x43e)])return;this[_0x2fffa0(0x2ac,0x23a)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x80fe89(0x396,0x34b)][_0x2fffa0(0x2ad,0x23d)]},this['updateViewerParameters'](),this[_0x80fe89(0x44f,0x4c9)]=new WindParticleSystem(this[_0x2fffa0(0x1a6,0x1da)][_0x80fe89(0x3f9,0x403)],this[_0x80fe89(0x3c0,0x41b)],this[_0x80fe89(0x490,0x409)],this['viewerParameters'],this[_0x2fffa0(0x1a6,0x20e)]),this[_0x80fe89(0x433,0x3c2)]=this[_0x2fffa0(0x25f,0x2ad)][_0x80fe89(0x3ef,0x37e)](),this[_0x2fffa0(0x243,0x1f9)]['forEach'](_0x2831f7=>{function _0x3d26cb(_0x2327d6,_0x36b329){return _0x80fe89(_0x2327d6- -0x3b3,_0x36b329);}function _0x5a1685(_0x1e5d80,_0x3fc95a){return _0x80fe89(_0x3fc95a- -0x458,_0x1e5d80);}this[_0x5a1685(-0xea,-0xc2)][_0x3d26cb(0x80,0x3)][_0x5a1685(-0x91,-0x55)](_0x2831f7);});function _0x80fe89(_0x35d0c6,_0x23196c){return _0x35d093(_0x23196c,_0x35d0c6-0x37a);}this['camera'][_0x2fffa0(0x1c4,0x186)]=0.01,this[_0x2fffa0(0x246,0x1f2)]['changed']['addEventListener'](this[_0x2fffa0(0x2a7,0x2ba)][_0x2fffa0(0x29f,0x2dc)](this)),this[_0x80fe89(0x396,0x339)][_0x80fe89(0x4aa,0x494)]['addEventListener'](this['updateViewerParameters']['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters'][_0x2fffa0(0x29f,0x279)](this));}['_removedHook'](){function _0x3e924e(_0x3711a7,_0x5776da){return _0x35d093(_0x3711a7,_0x5776da- -0x21d);}this['camera']['changed']['removeEventListener'](this['updateViewerParameters'][_0x1300a0(-0x80,-0x4)](this));function _0x1300a0(_0x5ddfbb,_0xb9b742){return _0x35d093(_0x5ddfbb,_0xb9b742- -0x119);}this['scene'][_0x3e924e(-0xd8,-0xed)][_0x1300a0(-0x4a,-0x2f)](this[_0x3e924e(-0x10f,-0x100)]['bind'](this)),window['removeEventListener']('resize',this['updateViewerParameters'][_0x1300a0(-0x8a,-0x4)](this)),this['primitives']&&(this[_0x3e924e(-0x1b0,-0x164)]['forEach'](_0x3941f9=>{function _0x33763c(_0x1ef946,_0x319e94){return _0x1300a0(_0x319e94,_0x1ef946-0x37a);}function _0x47f2e7(_0x60af4a,_0x55583f){return _0x3e924e(_0x55583f,_0x60af4a-0x1a9);}this['scene'][_0x33763c(0x31a,0x3a0)][_0x47f2e7(0xa4,0x130)](_0x3941f9);}),delete this[_0x1300a0(-0x7,-0x60)]),this[_0x3e924e(-0x1b7,-0x148)]&&(this[_0x3e924e(-0x121,-0x148)][_0x3e924e(-0xfe,-0x121)](),delete this['particleSystem']);}[_0x3e09ac(-0x11b,-0x194)](_0x98ec77,_0x21fc71){this['windData']=this[_0x5688f5(0x3ca,0x427)](_0x98ec77);function _0x5688f5(_0x16e22b,_0x274c33){return _0x3e09ac(_0x16e22b,_0x274c33-0x68b);}if(_0x21fc71){this[_0x217394(0x19d,0x22a)](),this[_0x217394(0x284,0x311)]();return;}function _0x217394(_0x4ef6ef,_0x291ba1){return _0x35d093(_0x4ef6ef,_0x291ba1-0x1e8);}this['particleSystem']?(this[_0x217394(0x274,0x2bd)]['computing'][_0x217394(0x271,0x2b6)](this[_0x5688f5(0x42e,0x436)]),this[_0x217394(0x1e5,0x204)][_0x217394(0x272,0x2c4)]()):this['_addedHook']();}[_0x3e09ac(-0x26d,-0x272)](_0x4caca4,_0x326c4a){function _0x173abf(_0x5e6d6b,_0x4ec1ed){return _0x3e09ac(_0x4ec1ed,_0x5e6d6b- -0x22);}function _0x36aefd(_0x46e2d2,_0x5a98c0){return _0x35d093(_0x5a98c0,_0x46e2d2-0x482);}this['particleSystem']&&(this['particleSystem'][_0x173abf(-0x293,-0x297)](_0x326c4a),this[_0x173abf(-0x2a1,-0x25e)][_0x173abf(-0x1e1,-0x185)]());}['processWindData'](_0x2cf56b){var _0x2d7132,_0x489308;const _0x12bcf4={..._0x2cf56b},_0x548e76=_0x12bcf4;!_0x548e76['height']&&_0x548e76['rows']&&(_0x548e76['height']=_0x548e76['rows']);function _0x232cac(_0x41d9a4,_0x1e5174){return _0x35d093(_0x1e5174,_0x41d9a4- -0x1b6);}!_0x548e76['width']&&_0x548e76['cols']&&(_0x548e76['width']=_0x548e76[_0x16867d(-0x6c,-0x73)]);!_0x548e76['bounds']&&(_0x548e76[_0x16867d(-0x7a,-0xfb)]={'west':_0x548e76['xmin'],'south':_0x548e76[_0x16867d(-0xd7,-0x53)],'east':_0x548e76[_0x16867d(-0x1b,-0x47)],'north':_0x548e76['ymax']});function _0x16867d(_0x114896,_0x3e252a){return _0x35d093(_0x3e252a,_0x114896- -0x12e);}if(!_0x548e76['u']){const _0x33ac2f={};_0x33ac2f[_0x16867d(-0x76,-0x88)]=_0x2cf56b['udata'],_0x33ac2f['min']=_0x2cf56b[_0x16867d(-0x49,-0x42)],_0x33ac2f['max']=_0x2cf56b[_0x16867d(-0x4f,-0x1f)],_0x548e76['u']=_0x33ac2f;}if(!_0x548e76['v']){const _0x297067={};_0x297067['array']=_0x2cf56b['vdata'],_0x297067[_0x16867d(-0x81,-0x40)]=_0x2cf56b[_0x232cac(-0x167,-0x1cb)],_0x297067['max']=_0x2cf56b[_0x232cac(-0x83,-0x2d)],_0x548e76['v']=_0x297067;}if(((_0x2d7132=_0x548e76['speed'])===null||_0x2d7132===void 0x0?void 0x0:_0x2d7132['min'])===undefined||((_0x489308=_0x548e76[_0x232cac(-0x84,-0xff)])===null||_0x489308===void 0x0?void 0x0:_0x489308['max'])===undefined||_0x548e76['speed']['array']===undefined){const _0x5ce3c0={'array':new Float32Array(_0x548e76['u']['array'][_0x16867d(-0x4a,-0x55)]),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x2caf07=0x0;_0x2caf07<_0x548e76['u'][_0x232cac(-0xfe,-0x14b)][_0x232cac(-0xd2,-0x11a)];_0x2caf07++){_0x5ce3c0['array'][_0x2caf07]=Math['sqrt'](_0x548e76['u'][_0x232cac(-0xfe,-0xa2)][_0x2caf07]*_0x548e76['u'][_0x232cac(-0xfe,-0xff)][_0x2caf07]+_0x548e76['v'][_0x232cac(-0xfe,-0xf2)][_0x2caf07]*_0x548e76['v'][_0x16867d(-0x76,0xf)][_0x2caf07]),_0x5ce3c0['array'][_0x2caf07]!==0x0&&(_0x5ce3c0['min']=Math[_0x16867d(-0x81,-0x84)](_0x5ce3c0[_0x232cac(-0x109,-0xa4)],_0x5ce3c0[_0x232cac(-0xfe,-0x153)][_0x2caf07]),_0x5ce3c0['max']=Math[_0x16867d(-0xf1,-0xbb)](_0x5ce3c0['max'],_0x5ce3c0['array'][_0x2caf07]));}_0x548e76[_0x16867d(0x4,0x35)]=_0x5ce3c0;}return _0x548e76;}[_0x35d093(0x144,0x11d)](){var _0x399536;const _0x20abe8=this[_0x1b956b(0xb1,0xd8)];if(!_0x20abe8)return;const _0x4a19ba=_0x20abe8['canvas'],_0x280f8d={};_0x280f8d['x']=0x0,_0x280f8d['y']=0x0;const _0x9bf7c={};_0x9bf7c['x']=0x0,_0x9bf7c['y']=_0x4a19ba['clientHeight'];const _0x37f388={};function _0x1b956b(_0x528ace,_0x2c8a10){return _0x3e09ac(_0x2c8a10,_0x528ace-0x330);}_0x37f388['x']=_0x4a19ba[_0x1b956b(0x117,0x8a)],_0x37f388['y']=0x0;const _0x57ddf0={};_0x57ddf0['x']=_0x4a19ba['clientWidth'],_0x57ddf0['y']=_0x4a19ba['clientHeight'];const _0x12d707=[_0x280f8d,_0x9bf7c,_0x37f388,_0x57ddf0];let _0x20f9a1=0xb4,_0x4e450c=-0xb4,_0x2603af=0x5a,_0x43b1c7=-0x5a;function _0xeab7e8(_0x2cb905,_0x498aab){return _0x35d093(_0x2cb905,_0x498aab-0x1f);}let _0x52e9e2=![];for(const _0x32829c of _0x12d707){const _0x13eec6=_0x20abe8['camera'][_0xeab7e8(0x43,0x83)](new Cesium$1['Cartesian2'](_0x32829c['x'],_0x32829c['y']),_0x20abe8['globe'][_0xeab7e8(0xe5,0x8a)]);if(!_0x13eec6){_0x52e9e2=!![];break;}const _0x6994f3=_0x20abe8[_0xeab7e8(0x9e,0xa9)][_0x1b956b(0x100,0xe2)][_0xeab7e8(0x9b,0xfd)](_0x13eec6),_0x184bab=Cesium$1['Math']['toDegrees'](_0x6994f3['longitude']),_0x40d6a5=Cesium$1['Math']['toDegrees'](_0x6994f3['latitude']);_0x20f9a1=Math['min'](_0x20f9a1,_0x184bab),_0x4e450c=Math[_0xeab7e8(0x94,0x5c)](_0x4e450c,_0x184bab),_0x2603af=Math['min'](_0x2603af,_0x40d6a5),_0x43b1c7=Math['max'](_0x43b1c7,_0x40d6a5);}if(!_0x52e9e2){const _0x3f22a1=new Cesium$1[(_0xeab7e8(0x65,0x6d))](Math['max'](this['windData']['bounds']['west'],_0x20f9a1),Math[_0xeab7e8(0x96,0xcc)](this[_0x1b956b(0xdb,0x169)][_0xeab7e8(0xe5,0xd3)]['east'],_0x4e450c)),_0xf657b9=new Cesium$1['Cartesian2'](Math['max'](this[_0xeab7e8(0xbc,0x65)][_0xeab7e8(0xc1,0xd3)][_0xeab7e8(0x113,0xbb)],_0x2603af),Math['min'](this['windData']['bounds']['north'],_0x43b1c7)),_0x746832=(_0x3f22a1['y']-_0x3f22a1['x'])*0.05,_0x9b1163=(_0xf657b9['y']-_0xf657b9['x'])*0.05;_0x3f22a1['x']=Math[_0xeab7e8(0x3a,0x5c)](this['windData'][_0x1b956b(0x149,0xf0)]['west'],_0x3f22a1['x']-_0x746832),_0x3f22a1['y']=Math[_0x1b956b(0x142,0x102)](this['windData'][_0xeab7e8(0x77,0xd3)]['east'],_0x3f22a1['y']+_0x746832),_0xf657b9['x']=Math[_0xeab7e8(-0x15,0x5c)](this['windData']['bounds'][_0xeab7e8(0xe4,0xbb)],_0xf657b9['x']-_0x9b1163),_0xf657b9['y']=Math['min'](this['windData']['bounds'][_0x1b956b(0x146,0x1a9)],_0xf657b9['y']+_0x9b1163),this[_0xeab7e8(0x10f,0x141)]['lonRange']=_0x3f22a1,this['viewerParameters']['latRange']=_0xf657b9;const _0xdba137=this[_0xeab7e8(0x49,0x65)][_0x1b956b(0x149,0x151)][_0x1b956b(0x195,0x131)]-this[_0x1b956b(0xdb,0x135)]['bounds']['west'],_0x11d29f=this['windData']['bounds'][_0xeab7e8(0x122,0xd0)]-this[_0x1b956b(0xdb,0x15b)][_0xeab7e8(0x13e,0xd3)]['south'],_0x40e21a=(_0x3f22a1['y']-_0x3f22a1['x'])/_0xdba137,_0x44bf02=(_0xf657b9['y']-_0xf657b9['x'])/_0x11d29f,_0x76142f=Math['min'](_0x40e21a,_0x44bf02),_0x410ee0=0x3e8*_0x76142f;_0x410ee0>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0x410ee0)));}this[_0x1b956b(0x1b7,0x147)]['sceneMode']=this['scene'][_0xeab7e8(0x1ce,0x142)],(_0x399536=this[_0xeab7e8(0x14b,0xf4)])===null||_0x399536===void 0x0||_0x399536['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x110b2e,_0x301639){const {bounds:_0x5905d4,width:_0x3e0315,height:_0x57095c,u:_0xc795a8,v:_0x480396,speed:_0x1b9399}=this[_0x161969(0x39e,0x371)],{flipY:_0x5e4c75}=this[_0x106562(0x255,0x279)];function _0x106562(_0x2ad8a9,_0x4301e0){return _0x3e09ac(_0x2ad8a9,_0x4301e0-0x3fe);}if(_0x110b2e<_0x5905d4[_0x161969(0x3e6,0x3ec)]||_0x110b2e>_0x5905d4['east']||_0x301639<_0x5905d4['south']||_0x301639>_0x5905d4[_0x161969(0x409,0x3be)])return null;const _0xed7e2=(_0x110b2e-_0x5905d4['west'])/(_0x5905d4[_0x161969(0x458,0x48a)]-_0x5905d4['west'])*(_0x3e0315-0x1);let _0x2a9deb=(_0x301639-_0x5905d4['south'])/(_0x5905d4['north']-_0x5905d4['south'])*(_0x57095c-0x1);_0x5e4c75&&(_0x2a9deb=_0x57095c-0x1-_0x2a9deb);function _0x161969(_0x1a0efc,_0x29ffde){return _0x3e09ac(_0x29ffde,_0x1a0efc-0x5f3);}const _0x1a4a2d=Math['floor'](_0xed7e2),_0x5e107c=Math['floor'](_0x2a9deb),_0x4cf55b=Math[_0x106562(0x1d8,0x207)](_0xed7e2),_0x14fe2b=Math['min'](_0x4cf55b+0x1,_0x3e0315-0x1),_0x5cc857=Math[_0x161969(0x3fc,0x3f2)](_0x2a9deb),_0x21154a=Math['min'](_0x5cc857+0x1,_0x57095c-0x1),_0xc7d41a=_0xed7e2-_0x4cf55b,_0x1eab5a=_0x2a9deb-_0x5cc857,_0x3e8a10=_0x5e107c*_0x3e0315+_0x1a4a2d,_0x75a0c1=_0x5cc857*_0x3e0315+_0x4cf55b,_0x5a5d6e=_0x5cc857*_0x3e0315+_0x14fe2b,_0x146f6d=_0x21154a*_0x3e0315+_0x4cf55b,_0x48fa93=_0x21154a*_0x3e0315+_0x14fe2b,_0xe6821c=_0xc795a8[_0x161969(0x410,0x454)][_0x75a0c1],_0x3b485c=_0xc795a8['array'][_0x5a5d6e],_0x249e52=_0xc795a8[_0x161969(0x410,0x44c)][_0x146f6d],_0x510bfc=_0xc795a8[_0x161969(0x410,0x474)][_0x48fa93],_0x4a752a=(0x1-_0xc7d41a)*(0x1-_0x1eab5a)*_0xe6821c+_0xc7d41a*(0x1-_0x1eab5a)*_0x3b485c+(0x1-_0xc7d41a)*_0x1eab5a*_0x249e52+_0xc7d41a*_0x1eab5a*_0x510bfc,_0x55039c=_0x480396[_0x161969(0x410,0x468)][_0x75a0c1],_0x5ed2e4=_0x480396['array'][_0x5a5d6e],_0x17e3e2=_0x480396[_0x106562(0x290,0x21b)][_0x146f6d],_0x27e58a=_0x480396[_0x161969(0x410,0x3b8)][_0x48fa93],_0x563490=(0x1-_0xc7d41a)*(0x1-_0x1eab5a)*_0x55039c+_0xc7d41a*(0x1-_0x1eab5a)*_0x5ed2e4+(0x1-_0xc7d41a)*_0x1eab5a*_0x17e3e2+_0xc7d41a*_0x1eab5a*_0x27e58a,_0x54fe33=Math['sqrt'](_0x4a752a*_0x4a752a+_0x563490*_0x563490),_0x2dd44d={};_0x2dd44d['u']=_0xc795a8[_0x161969(0x410,0x3ed)][_0x3e8a10],_0x2dd44d['v']=_0x480396[_0x161969(0x410,0x3c0)][_0x3e8a10],_0x2dd44d[_0x161969(0x48a,0x4fc)]=_0x1b9399['array'][_0x3e8a10];const _0x3039a4={};_0x3039a4['u']=_0x4a752a,_0x3039a4['v']=_0x563490,_0x3039a4['speed']=_0x54fe33;const _0x2c7ea7={};return _0x2c7ea7[_0x161969(0x3b3,0x3bf)]=_0x2dd44d,_0x2c7ea7['interpolated']=_0x3039a4,_0x2c7ea7;}}mars3d__namespace[_0x35d093(0xc5,0x11f)][_0x35d093(0xad,0xf5)](_0x3e09ac(-0x205,-0x25b),WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this[_0x300c16(0x3bb,0x33a)]=null,this['tlng']=null;function _0xbaa03(_0x34571e,_0x2d799b){return _0x3e09ac(_0x34571e,_0x2d799b- -0x52);}this[_0x300c16(0x3c2,0x3a6)]=null;function _0x300c16(_0x5d915e,_0x320223){return _0x3e09ac(_0x5d915e,_0x320223-0x551);}this['age']=null,this['speed']=null;}['destroy'](){for(const _0x60dc9e in this){delete this[_0x60dc9e];}}}class CanvasWindField{constructor(_0x195525){function _0x398a88(_0x112603,_0x1d1fc3){return _0x3e09ac(_0x112603,_0x1d1fc3-0x33e);}this[_0x398a88(0x145,0x141)](_0x195525);}get['speedRate'](){function _0x3539e0(_0x196838,_0x4b63c8){return _0x3e09ac(_0x4b63c8,_0x196838-0x457);}return this[_0x3539e0(0x238,0x23e)];}set[_0x3e09ac(-0x1df,-0x18b)](_0x4ddc44){function _0x5bf084(_0x10c6a2,_0x178fa6){return _0x35d093(_0x178fa6,_0x10c6a2- -0x234);}function _0x3de050(_0x12a9fd,_0x45255b){return _0x35d093(_0x12a9fd,_0x45255b-0x3e3);}this['_speedRate']=(0x64-(_0x4ddc44>0x63?0x63:_0x4ddc44))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this[_0x5bf084(-0x1b8,-0x171)],(this[_0x3de050(0x4fe,0x4a2)]-this[_0x5bf084(-0x1dd,-0x20d)])/this['_speedRate']];}get[_0x35d093(0xef,0x61)](){function _0x4217f0(_0x2c8560,_0x38675e){return _0x35d093(_0x38675e,_0x2c8560-0x328);}return this[_0x4217f0(0x3c2,0x422)];}set[_0x35d093(0xaa,0x61)](_0x63d38f){this['_maxAge']=_0x63d38f;}['setOptions'](_0x41d664){this['options']=_0x41d664;function _0x2b5b64(_0x113416,_0x5a0c7d){return _0x35d093(_0x5a0c7d,_0x113416-0x3dc);}this[_0x2ab24e(-0x1a0,-0x1d2)]=_0x41d664['maxAge']||0x78,this['speedRate']=_0x41d664[_0x2b5b64(0x4ec,0x527)]||0x32,this['particles']=[];const _0x224da8=_0x41d664[_0x2ab24e(-0x1bd,-0x144)]||0x1000;function _0x2ab24e(_0xb6d2a0,_0x49cac9){return _0x3e09ac(_0x49cac9,_0xb6d2a0-0x9a);}for(let _0x484613=0x0;_0x484613<_0x224da8;_0x484613++){const _0x561abb=this[_0x2b5b64(0x473,0x4ad)](new CanvasParticle());this['particles'][_0x2b5b64(0x3fa,0x3d8)](_0x561abb);}}['setDate'](_0x1cc264){this['rows']=_0x1cc264['rows'],this[_0x50a1d4(0x37a,0x363)]=_0x1cc264['cols'],this['xmin']=_0x1cc264['xmin'],this['xmax']=_0x1cc264['xmax'],this[_0x50a1d4(0x29a,0x2f8)]=_0x1cc264['ymin'],this[_0x50a1d4(0x3df,0x360)]=_0x1cc264['ymax'],this[_0x50a1d4(0x393,0x3a6)]=[];const _0x26eebf=_0x1cc264['udata'],_0x5510d3=_0x1cc264[_0x140f73(0x4a3,0x4bd)];let _0xcc0935=![];_0x26eebf[_0x50a1d4(0x367,0x385)]===this[_0x140f73(0x4ca,0x476)]&&_0x26eebf[0x0]['length']===this[_0x140f73(0x45f,0x4c4)]&&(_0xcc0935=!![]);function _0x140f73(_0x454c34,_0x1ba627){return _0x35d093(_0x454c34,_0x1ba627-0x402);}let _0x5d4f6d=0x0,_0x390c5f=null,_0xa5079=null;function _0x50a1d4(_0x1d72b1,_0x27961c){return _0x35d093(_0x1d72b1,_0x27961c-0x2a1);}for(let _0xdb2b38=0x0;_0xdb2b38<this[_0x50a1d4(0x314,0x315)];_0xdb2b38++){_0x390c5f=[];for(let _0x57dcf5=0x0;_0x57dcf5<this['cols'];_0x57dcf5++,_0x5d4f6d++){_0xcc0935?_0xa5079=this['_calcUV'](_0x26eebf[_0xdb2b38][_0x57dcf5],_0x5510d3[_0xdb2b38][_0x57dcf5]):_0xa5079=this['_calcUV'](_0x26eebf[_0x5d4f6d],_0x5510d3[_0x5d4f6d]),_0x390c5f['push'](_0xa5079);}this[_0x50a1d4(0x3e5,0x3a6)]['push'](_0x390c5f);}!this['options'][_0x50a1d4(0x389,0x34a)]&&this['grid'][_0x140f73(0x3e3,0x438)]();}[_0x35d093(0x5b,0x93)](){delete this[_0x33dc3e(-0xc8,-0x143)];function _0x33dc3e(_0x47f8ca,_0x17eb36){return _0x3e09ac(_0x47f8ca,_0x17eb36-0xe4);}delete this['cols'],delete this['xmin'],delete this['xmax'];function _0x1116a7(_0x50f3f1,_0x16a636){return _0x35d093(_0x16a636,_0x50f3f1- -0x29f);}delete this['ymin'],delete this['ymax'],delete this[_0x1116a7(-0x19a,-0x1e8)],delete this['particles'];}['toGridXY'](_0x518418,_0x102379){const _0x346894=(_0x518418-this['xmin'])/(this[_0x5454bc(0x305,0x2e1)]-this['xmin'])*(this[_0x5454bc(0x2b4,0x31f)]-0x1),_0x3abce5=(this['ymax']-_0x102379)/(this['ymax']-this['ymin'])*(this[_0x7ca842(0xb1,0x134)]-0x1);function _0x7ca842(_0x5864b6,_0x123630){return _0x3e09ac(_0x5864b6,_0x123630-0x35b);}function _0x5454bc(_0x28d7b8,_0x3700e2){return _0x35d093(_0x3700e2,_0x28d7b8-0x1f2);}return[_0x346894,_0x3abce5];}['getUVByXY'](_0xd43bb2,_0x218a90){if(_0xd43bb2<0x0||_0xd43bb2>=this['cols']||_0x218a90>=this['rows'])return[0x0,0x0,0x0];function _0x80f926(_0x5b0a1e,_0x50264a){return _0x35d093(_0x50264a,_0x5b0a1e-0x19e);}const _0x26de5e=Math['floor'](_0xd43bb2),_0x4ff81a=Math[_0x80f926(0x242,0x262)](_0x218a90);if(_0x26de5e===_0xd43bb2&&_0x4ff81a===_0x218a90)return this[_0x80f926(0x2a3,0x303)][_0x218a90][_0xd43bb2];const _0x436aba=_0x26de5e+0x1,_0x4f6773=_0x4ff81a+0x1,_0x1629c8=this['getUVByXY'](_0x26de5e,_0x4ff81a),_0x1000f2=this['getUVByXY'](_0x436aba,_0x4ff81a),_0x20512a=this['getUVByXY'](_0x26de5e,_0x4f6773),_0x127f66=this['getUVByXY'](_0x436aba,_0x4f6773);let _0x5cffd5=null;try{_0x5cffd5=this['_bilinearInterpolation'](_0xd43bb2-_0x26de5e,_0x218a90-_0x4ff81a,_0x1629c8,_0x1000f2,_0x20512a,_0x127f66);}catch(_0x1d8f75){console[_0x80f926(0x207,0x1a3)](_0xd43bb2,_0x218a90);}function _0x3bb600(_0x5e7102,_0x11d1ce){return _0x3e09ac(_0x5e7102,_0x11d1ce-0x562);}return _0x5cffd5;}[_0x35d093(0xa7,0x50)](_0x5b78b0,_0x2ae061,_0x492c20,_0x1bbc22,_0x43e7be,_0x28c788){const _0x499695=0x1-_0x5b78b0,_0x395fb8=0x1-_0x2ae061,_0x4f3d99=_0x499695*_0x395fb8,_0x1c1caa=_0x5b78b0*_0x395fb8,_0x11decd=_0x499695*_0x2ae061,_0x6cf04b=_0x5b78b0*_0x2ae061,_0x5a5cc8=_0x492c20[0x0]*_0x4f3d99+_0x1bbc22[0x0]*_0x1c1caa+_0x43e7be[0x0]*_0x11decd+_0x28c788[0x0]*_0x6cf04b,_0x20b5d2=_0x492c20[0x1]*_0x4f3d99+_0x1bbc22[0x1]*_0x1c1caa+_0x43e7be[0x1]*_0x11decd+_0x28c788[0x1]*_0x6cf04b;return this['_calcUV'](_0x5a5cc8,_0x20b5d2);}['_calcUV'](_0x6f0a05,_0x5eca26){return[+_0x6f0a05,+_0x5eca26,Math['sqrt'](_0x6f0a05*_0x6f0a05+_0x5eca26*_0x5eca26)];}['getUVByPoint'](_0x21efcb,_0x10b1fe){if(!this[_0x2341b5(0x16d,0x1ac)](_0x21efcb,_0x10b1fe))return null;function _0x2341b5(_0x394488,_0x8b22c){return _0x35d093(_0x8b22c,_0x394488-0x87);}const _0x1bd8a4=this['toGridXY'](_0x21efcb,_0x10b1fe),_0x3f78bd=this['getUVByXY'](_0x1bd8a4[0x0],_0x1bd8a4[0x1]);return _0x3f78bd;}['isInExtent'](_0x5d2c4e,_0xaf540a){return _0x5d2c4e>=this['xmin']&&_0x5d2c4e<=this['xmax']&&_0xaf540a>=this['ymin']&&_0xaf540a<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0x46800b(_0x39be2d,_0x4a4330){return _0x35d093(_0x4a4330,_0x39be2d-0xb3);}const _0x3e30a0=fRandomByfloat(this[_0x46800b(0x150,0x1a7)],this['xmax']),_0x4fb0fc=fRandomByfloat(this['ymin'],this[_0x46800b(0x172,0x136)]),_0x27f34c={};_0x27f34c['lat']=_0x4fb0fc,_0x27f34c['lng']=_0x3e30a0;function _0x426120(_0x2f061d,_0xee32ea){return _0x3e09ac(_0x2f061d,_0xee32ea-0x6cf);}return _0x27f34c;}['getParticles'](){function _0x4cb06e(_0x27f491,_0x5a19b5){return _0x3e09ac(_0x27f491,_0x5a19b5-0x2f3);}let _0x1fb283,_0xe43f80,_0x400b06;function _0x25b6a5(_0x4375b4,_0x5a2247){return _0x35d093(_0x5a2247,_0x4375b4- -0xd6);}for(let _0x1565ba=0x0,_0x179d29=this['particles']['length'];_0x1565ba<_0x179d29;_0x1565ba++){let _0x44ba32=this['particles'][_0x1565ba];_0x44ba32['age']<=0x0&&(_0x44ba32=this[_0x4cb06e(0x9e,0xef)](_0x44ba32));if(_0x44ba32[_0x25b6a5(-0x71,-0x1e)]>0x0){const _0x2ef86c=_0x44ba32['tlng'],_0x3b1b81=_0x44ba32[_0x25b6a5(0x1a,0x36)];_0x400b06=this['getUVByPoint'](_0x2ef86c,_0x3b1b81),_0x400b06?(_0x1fb283=_0x2ef86c+this[_0x25b6a5(-0x56,-0x23)][0x0]*_0x400b06[0x0],_0xe43f80=_0x3b1b81+this[_0x4cb06e(0x161,0xd8)][0x1]*_0x400b06[0x1],_0x44ba32['lng']=_0x2ef86c,_0x44ba32[_0x25b6a5(-0x52,-0xc7)]=_0x3b1b81,_0x44ba32[_0x25b6a5(-0x35,-0xc3)]=_0x1fb283,_0x44ba32[_0x25b6a5(0x1a,-0x6d)]=_0xe43f80,_0x44ba32['speed']=_0x400b06[0x2],_0x44ba32[_0x4cb06e(0x65,0xbd)]--):_0x44ba32['age']=0x0;}}return this[_0x25b6a5(-0xa6,-0x10a)];}['_randomParticle'](_0x5f4f4e){let _0x16d0dc,_0x586ad3;for(let _0x4999f6=0x0;_0x4999f6<0x1e;_0x4999f6++){_0x16d0dc=this[_0xd44213(0x51b,0x4ea)](),_0x586ad3=this[_0x5626fd(0x34e,0x301)](_0x16d0dc[_0x5626fd(0x3e4,0x3c4)],_0x16d0dc[_0x5626fd(0x3a0,0x3ea)]);if(_0x586ad3&&_0x586ad3[0x2]>0x0)break;}if(!_0x586ad3)return _0x5f4f4e;const _0x5c3cde=_0x16d0dc['lng']+this['_calc_speedRate'][0x0]*_0x586ad3[0x0];function _0x5626fd(_0x26bbc5,_0x487b58){return _0x35d093(_0x487b58,_0x26bbc5-0x31c);}const _0x4530f5=_0x16d0dc['lat']+this[_0x5626fd(0x39c,0x3ff)][0x1]*_0x586ad3[0x1];_0x5f4f4e['lng']=_0x16d0dc[_0xd44213(0x4db,0x485)],_0x5f4f4e['lat']=_0x16d0dc['lat'];function _0xd44213(_0x31d26f,_0x3f11aa){return _0x3e09ac(_0x31d26f,_0x3f11aa-0x658);}return _0x5f4f4e['tlng']=_0x5c3cde,_0x5f4f4e['tlat']=_0x4530f5,_0x5f4f4e[_0xd44213(0x3c3,0x422)]=Math['round'](0xa+Math[_0xd44213(0x49e,0x4f3)]()*this['maxAge']),_0x5f4f4e[_0x5626fd(0x44e,0x4c4)]=_0x586ad3[0x2],_0x5f4f4e;}['destroy'](){for(const _0x29bcc6 in this){delete this[_0x29bcc6];}}}function fRandomByfloat(_0x462b57,_0xa1bd7c){return _0x462b57+Math['random']()*(_0xa1bd7c-_0x462b57);}const Cesium=mars3d__namespace[_0x3e09ac(-0x2a4,-0x256)],BaseLayer=mars3d__namespace['layer'][_0x35d093(0x124,0xa0)];class CanvasWindLayer extends BaseLayer{constructor(_0x58ccc4={}){super(_0x58ccc4);function _0x29d30d(_0x4a6bfd,_0x4bdcc7){return _0x3e09ac(_0x4bdcc7,_0x4a6bfd-0x38e);}function _0x491c1c(_0x256ccd,_0x5ea369){return _0x35d093(_0x5ea369,_0x256ccd- -0xe4);}this[_0x29d30d(0x11c,0x1a5)](_0x58ccc4),this[_0x491c1c(-0xa8,-0x9a)]=null,_0x58ccc4['colors']&&_0x58ccc4['steps']&&(this[_0x29d30d(0x19d,0x1be)]=new mars3d__namespace['ColorRamp'](_0x58ccc4));}[_0x3e09ac(-0x2f9,-0x272)](_0x55ad44,_0x5f19dc){function _0x131465(_0xb5388b,_0x4ee3cc){return _0x3e09ac(_0x4ee3cc,_0xb5388b-0x6b0);}this[_0x131465(0x45c,0x4c3)]=0x3e8/(_0x55ad44[_0x383113(0x359,0x31f)]||0xa),this['_pointerEvents']=this[_0x383113(0x317,0x354)]['pointerEvents']??![];function _0x383113(_0x37f651,_0x2015f9){return _0x35d093(_0x37f651,_0x2015f9-0x23e);}this['color']=_0x55ad44[_0x131465(0x448,0x4b7)]||'#ffffff',this[_0x131465(0x53f,0x556)]=_0x55ad44['lineWidth']||0x1,this['fixedHeight']=_0x55ad44[_0x131465(0x4f5,0x4b7)]??0x0,this[_0x383113(0x333,0x2e7)]=_0x55ad44['flipY']??![],this[_0x383113(0x366,0x307)]&&this[_0x131465(0x4de,0x464)]['setOptions'](_0x55ad44);}get[_0x35d093(0x10a,0xf3)](){return this['canvas'];}get['canvasWidth'](){function _0x1cbff6(_0x340c3d,_0x19739a){return _0x35d093(_0x19739a,_0x340c3d-0x31e);}return this['_map']['scene'][_0x1cbff6(0x35a,0x308)]['clientWidth'];}get[_0x35d093(0xcc,0x91)](){function _0x3f6623(_0x736eca,_0x267c27){return _0x35d093(_0x267c27,_0x736eca- -0x163);}function _0x57505f(_0x21fd1a,_0x164ccd){return _0x35d093(_0x164ccd,_0x21fd1a- -0xda);}return this[_0x57505f(-0xb6,-0x87)][_0x57505f(-0xbe,-0x12d)][_0x3f6623(-0x127,-0x14f)]['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x3e09ac(-0x129,-0x19a)](_0x55da88){this[_0x2635a4(-0x124,-0xb3)]=_0x55da88;if(!this['canvas'])return;function _0x2635a4(_0x4a2e04,_0x4fe43d){return _0x35d093(_0x4a2e04,_0x4fe43d- -0x119);}function _0x4f96da(_0x4f1b52,_0x1e6599){return _0x35d093(_0x4f1b52,_0x1e6599- -0x1c5);}_0x55da88?this['canvas']['style']['pointer-events']='all':this[_0x2635a4(-0x103,-0xdd)]['style']['pointer-events']=_0x2635a4(-0xee,-0xf8);}get[_0x3e09ac(-0x1e8,-0x257)](){function _0x5e689f(_0x58ce08,_0x576b02){return _0x3e09ac(_0x58ce08,_0x576b02-0x4a1);}return this[_0x5e689f(0x28f,0x31c)]['particlesNumber'];}set[_0x35d093(-0x27,0x44)](_0x103fe4){this[_0x531787(0x1a8,0x193)]['particlesNumber']=_0x103fe4,clearTimeout(this['_canrefresh']);function _0x531787(_0x1339d0,_0x242cf0){return _0x3e09ac(_0x242cf0,_0x1339d0-0x32d);}this['_canrefresh']=setTimeout(()=>{function _0x322eff(_0x488180,_0x2c756f){return _0x531787(_0x2c756f- -0x2a,_0x488180);}this[_0x322eff(0x1cb,0x188)]();},0x1f4);}get[_0x35d093(0xc5,0x110)](){return this['options']['speedRate'];}set['speedRate'](_0x568004){function _0x58a5c6(_0x5a0713,_0x5c613c){return _0x35d093(_0x5a0713,_0x5c613c-0x24c);}function _0xfc18f9(_0x1167ba,_0x225994){return _0x3e09ac(_0x1167ba,_0x225994-0x56d);}this[_0xfc18f9(0x38d,0x3e8)]['speedRate']=_0x568004,this['windField']&&(this[_0xfc18f9(0x402,0x39b)][_0x58a5c6(0x3a0,0x35c)]=_0x568004);}get[_0x35d093(0x89,0x61)](){function _0x2aeab4(_0x5dde69,_0x296014){return _0x35d093(_0x296014,_0x5dde69-0x1f7);}return this['options'][_0x2aeab4(0x258,0x20b)];}set['maxAge'](_0x3fca0c){function _0x116522(_0xd1ee9e,_0xbff8c5){return _0x35d093(_0xd1ee9e,_0xbff8c5-0x38e);}this[_0x116522(0x52a,0x4a4)]['maxAge']=_0x3fca0c;function _0x5dbd91(_0x1672b3,_0x377a49){return _0x3e09ac(_0x1672b3,_0x377a49-0x487);}this[_0x5dbd91(0x2ad,0x2b5)]&&(this['windField']['maxAge']=_0x3fca0c);}get[_0x35d093(0xea,0xb2)](){function _0x6fe656(_0x571c68,_0x36cac2){return _0x3e09ac(_0x36cac2,_0x571c68-0x199);}return this[_0x6fe656(-0xbc,-0x85)];}set[_0x35d093(0x64,0xb2)](_0x1f8f07){this['setData'](_0x1f8f07);}get[_0x3e09ac(-0x108,-0x181)](){let _0x490d24=this['windData']['xmin'],_0x33d29f=this[_0x36db78(0x416,0x429)]['xmax'],_0x5c2f63=this['windData'][_0x36db78(0x427,0x457)],_0x3fbb94=this['windData'][_0x3bb2dc(0x3f,0x8f)];_0x33d29f>=0x167&&_0x490d24===0x0&&(_0x490d24=-0xb4,_0x33d29f=0xb4);_0x490d24=Math['max'](_0x490d24,-0xb4);function _0x36db78(_0x2ccf7a,_0xa3f1b4){return _0x35d093(_0xa3f1b4,_0x2ccf7a-0x3d0);}function _0x3bb2dc(_0x474d6a,_0x6252ee){return _0x3e09ac(_0x474d6a,_0x6252ee-0x26b);}return _0x33d29f=Math['min'](_0x33d29f,0xb4),_0x5c2f63=Math['max'](_0x5c2f63,-0x5a),_0x3fbb94=Math['min'](_0x3fbb94,0x5a),Cesium[_0x3bb2dc(0x156,0x107)]['fromDegrees'](_0x490d24,_0x5c2f63,_0x33d29f,_0x3fbb94);}['_showHook'](_0x38438c){function _0x16977d(_0x73a1fa,_0x26c97e){return _0x3e09ac(_0x26c97e,_0x73a1fa-0x464);}function _0x33ff2e(_0xbf4af8,_0x49b406){return _0x35d093(_0x49b406,_0xbf4af8-0x161);}_0x38438c?this['_addedHook']():(this['windData']&&(this[_0x33ff2e(0x277,0x2ab)]['data']=this['windData']),this[_0x16977d(0x20b,0x222)]());}['_mountedHook'](){function _0x172927(_0x5d7374,_0x580a4d){return _0x35d093(_0x5d7374,_0x580a4d-0x4c1);}function _0x4b0f90(_0x4fa101,_0x34ca81){return _0x35d093(_0x4fa101,_0x34ca81- -0x2ba);}this[_0x172927(0x660,0x5d7)][_0x4b0f90(-0x1ac,-0x225)]?this['initWorker']():this[_0x172927(0x58d,0x58a)]=new CanvasWindField(this[_0x172927(0x619,0x5d7)]);}[_0x3e09ac(-0x1c9,-0x172)](){this[_0xe17565(-0x9,-0x88)]=this[_0xe17565(0x7e,0xdf)]();const _0x3dee8c={};_0x3dee8c[_0x46170f(0x463,0x448)]=!![],this[_0x46170f(0x465,0x41d)]=this[_0xe17565(-0x9,-0x2)][_0x46170f(0x429,0x48b)]('2d',_0x3dee8c),this[_0xe17565(0x8a,0x2d)]();function _0x46170f(_0x4c1293,_0x4cdf05){return _0x3e09ac(_0x4c1293,_0x4cdf05-0x660);}function _0xe17565(_0x3914f2,_0x425495){return _0x3e09ac(_0x425495,_0x3914f2-0x256);}this[_0x46170f(0x4b2,0x4db)]['data']&&this['setData'](this['options']['data']);}[_0x35d093(0x36,0x42)](){function _0x57905c(_0x5db2f9,_0x2fa9a4){return _0x35d093(_0x2fa9a4,_0x5db2f9-0x24d);}this[_0x57905c(0x2e0,0x25b)]();function _0x566838(_0x265fad,_0x273d00){return _0x35d093(_0x265fad,_0x273d00-0x421);}this['unbindEvent'](),this['canvas']&&(this[_0x57905c(0x271,0x23f)][_0x57905c(0x26a,0x2ce)]['removeChild'](this[_0x566838(0x495,0x45d)]),delete this['canvas']);}[_0x3e09ac(-0x17b,-0x1d8)](){const _0x10a591=mars3d__namespace['DomUtil'][_0x114f7b(-0xa0,-0xf1)]('canvas',_0x114f7b(-0x56,-0x9c),this[_0x39dea0(0x107,0xfa)][_0x114f7b(-0x130,-0x1ae)]);_0x10a591[_0x39dea0(0x152,0x158)][_0x39dea0(0x175,0x18b)]='absolute',_0x10a591['style']['top']='0px',_0x10a591[_0x39dea0(0x152,0x1b5)]['left']=_0x114f7b(-0x9f,-0xd2),_0x10a591['style'][_0x114f7b(-0xf2,-0xa5)]=this[_0x39dea0(0x107,0x164)]['scene']['canvas']['clientWidth']+'px',_0x10a591[_0x39dea0(0x152,0x12a)][_0x39dea0(0x1a3,0x13b)]=this['_map']['scene'][_0x114f7b(-0x1c6,-0x18f)][_0x39dea0(0x1c0,0x248)]+'px',_0x10a591['style'][_0x39dea0(0x1e4,0x168)]=this['_pointerEvents']?'auto':_0x114f7b(-0x141,-0x1aa);function _0x114f7b(_0x13cf60,_0x458898){return _0x3e09ac(_0x13cf60,_0x458898-0xd0);}_0x10a591['style'][_0x39dea0(0x109,0xac)]=this['options'][_0x39dea0(0x109,0x144)]??0x9;function _0x39dea0(_0x2c3beb,_0x54b833){return _0x3e09ac(_0x54b833,_0x2c3beb-0x37e);}return _0x10a591[_0x114f7b(-0x1d,-0xa5)]=this[_0x39dea0(0x107,0x15a)]['scene'][_0x39dea0(0x11f,0x16c)]['clientWidth'],_0x10a591[_0x39dea0(0x1a3,0x199)]=this['_map'][_0x114f7b(-0x1f2,-0x1af)]['canvas'][_0x39dea0(0x1c0,0x23e)],_0x10a591;}['resize'](){function _0x2b4e11(_0x2b2e9e,_0x2a8b5d){return _0x3e09ac(_0x2a8b5d,_0x2b2e9e-0x5b2);}function _0xbd7ae8(_0x18563e,_0x2b4124){return _0x35d093(_0x18563e,_0x2b4124-0x40d);}this['canvas']&&(this['canvas']['style'][_0x2b4e11(0x43d,0x3e2)]=this['_map']['scene']['canvas'][_0x2b4e11(0x399,0x3b7)]+'px',this['canvas'][_0xbd7ae8(0x442,0x47c)][_0xbd7ae8(0x519,0x4cd)]=this[_0x2b4e11(0x33b,0x300)]['scene']['canvas']['clientHeight']+'px',this[_0xbd7ae8(0x475,0x449)]['width']=this['_map']['scene']['canvas']['clientWidth'],this['canvas']['height']=this[_0x2b4e11(0x33b,0x345)][_0xbd7ae8(0x42b,0x429)][_0x2b4e11(0x353,0x3b1)][_0x2b4e11(0x3f4,0x422)]);}['bindEvent'](){const _0xdac465=this;let _0x282bd7=Date[_0x414f0d(-0x3d,0x4)]();(function _0x3c02f6(){if(_0xdac465['isDestroy'])return;function _0x3b25ec(_0x23fdd7,_0x77dfe2){return _0x414f0d(_0x23fdd7,_0x77dfe2-0x205);}_0xdac465[_0x3b25ec(0x2b6,0x22a)]=window['requestAnimationFrame'](_0x3c02f6);function _0x4d86ee(_0x186082,_0x197775){return _0x414f0d(_0x186082,_0x197775-0x2f0);}if(_0xdac465['show']&&_0xdac465['windField']){const _0x216a3e=Date[_0x4d86ee(0x2d1,0x2f4)](),_0x1cf57c=_0x216a3e-_0x282bd7;_0x1cf57c>_0xdac465['frameTime']&&(_0x282bd7=_0x216a3e-_0x1cf57c%_0xdac465[_0x4d86ee(0x212,0x230)],_0xdac465['update']());}}(),window['addEventListener']('resize',this[_0x414f0d(0x4,-0xc)][_0x414f0d(-0x32,0xe)](this),![]),this['mouse_down']=![],this[_0x3d9fdc(-0x2a3,-0x310)]=![]);function _0x3d9fdc(_0x48ac28,_0x5b60e0){return _0x3e09ac(_0x5b60e0,_0x48ac28- -0x37);}function _0x414f0d(_0x1455d6,_0x5a075b){return _0x3e09ac(_0x1455d6,_0x5a075b-0x194);}this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType'][_0x414f0d(-0xa9,-0x96)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x414f0d(0x29,-0x65)],this[_0x414f0d(-0x116,-0xa5)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x414f0d(-0x21,-0x1b)],this));}[_0x3e09ac(-0x237,-0x1e6)](){window['cancelAnimationFrame'](this['_animateFrame']);function _0x5b4690(_0x1dd6b0,_0x316125){return _0x35d093(_0x316125,_0x1dd6b0-0x2f8);}delete this[_0x5b4690(0x424,0x3bc)],window['removeEventListener']('resize',this['resize']);function _0x207b77(_0x40e603,_0x26f690){return _0x3e09ac(_0x40e603,_0x26f690-0x181);}this[_0x207b77(-0x41,-0x4)][_0x5b4690(0x3fc,0x3c5)]&&(this['_map'][_0x5b4690(0x355,0x3b0)](mars3d__namespace[_0x207b77(-0xe,-0x38)][_0x5b4690(0x369,0x39e)],this[_0x5b4690(0x366,0x3b5)],this),this['_map'][_0x5b4690(0x355,0x2f7)](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x207b77(-0x15e,-0xf6)][_0x207b77(-0x2f,-0xbd)](mars3d__namespace[_0x207b77(-0x89,-0x38)][_0x5b4690(0x414,0x3dc)],this[_0x5b4690(0x3e4,0x45a)],this),this[_0x207b77(-0x99,-0xf6)]['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x5b4690(0x3a6,0x35c)],this));}[_0x35d093(0xf3,0x6e)](_0x2f935e){function _0x38fd8a(_0x288cdb,_0x1f0cf4){return _0x35d093(_0x288cdb,_0x1f0cf4- -0x42);}clearTimeout(this['refreshTimer']);function _0x392bc0(_0xc0c409,_0x136c04){return _0x3e09ac(_0xc0c409,_0x136c04-0x9c);}if(!this['show']||!this['canvas'])return;this[_0x38fd8a(-0x67,-0x6)]['style']['visibility']='hidden',this[_0x392bc0(-0x13b,-0x109)]=setTimeout(()=>{if(!this[_0x33e96f(-0x1ba,-0x199)])return;this['redraw']();function _0x33e96f(_0x446826,_0x125b2f){return _0x392bc0(_0x446826,_0x125b2f- -0x7d);}this['canvas']['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x1f5281){this['mouse_down']=!![],this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x173677(0x354,0x354)],this);function _0x49de8f(_0x342945,_0x4a2045){return _0x35d093(_0x4a2045,_0x342945-0x337);}function _0x173677(_0x252593,_0x647f8){return _0x35d093(_0x252593,_0x647f8-0x2a6);}this[_0x173677(0x2b5,0x2ca)]['on'](mars3d__namespace[_0x49de8f(0x419,0x44b)][_0x49de8f(0x458,0x4b0)],this['_onMouseMoveEvent'],this);}[_0x3e09ac(-0x193,-0x1ed)](_0x26afd0){function _0x4d0b4c(_0xe5aa34,_0x2b70cb){return _0x3e09ac(_0xe5aa34,_0x2b70cb-0x5df);}function _0x53781c(_0x5d317f,_0x1e5c4a){return _0x35d093(_0x1e5c4a,_0x5d317f-0x42c);}if(!this[_0x4d0b4c(0x3d3,0x427)]||!this[_0x53781c(0x468,0x4f5)])return;this[_0x53781c(0x551,0x53d)]&&(this['canvas']['style']['visibility']='hidden',this['mouse_move']=!![]);}[_0x3e09ac(-0x14b,-0x1af)](_0x4bec48){if(!this['show']||!this[_0x97aca2(0x1c2,0x17a)])return;this[_0x48244a(0x3c7,0x365)]['off'](mars3d__namespace[_0x48244a(0x485,0x422)]['mouseMove'],this['_onMouseMoveEvent'],this);function _0x48244a(_0x315c15,_0x152ea9){return _0x35d093(_0x152ea9,_0x315c15-0x3a3);}this['mouse_down']&&this['mouse_move']&&this['redraw']();this[_0x48244a(0x3df,0x464)][_0x48244a(0x412,0x46b)]['visibility']=_0x48244a(0x48a,0x44a);function _0x97aca2(_0x1ab0bf,_0x4aca30){return _0x35d093(_0x1ab0bf,_0x4aca30-0x13e);}this[_0x48244a(0x4c8,0x45f)]=![],this[_0x48244a(0x3d2,0x40b)]=![];}[_0x3e09ac(-0x108,-0x194)](_0x205098){this['clear']();function _0x360c43(_0x24249b,_0x3f947a){return _0x3e09ac(_0x3f947a,_0x24249b-0x4e7);}this['windData']=_0x205098,this['windField'][_0x360c43(0x296,0x215)](_0x205098),this['redraw']();}[_0x35d093(0x18f,0x120)](){if(!this['show'])return;this['windField']['setOptions'](this[_0x2fd193(0x39e,0x327)]);function _0x2fd193(_0x11d007,_0x31e866){return _0x35d093(_0x31e866,_0x11d007-0x288);}this['update']();}['update'](){function _0x2f51ed(_0x5827a0,_0x3ddb47){return _0x3e09ac(_0x3ddb47,_0x5827a0-0xa9);}if(this[_0x2f51ed(-0x1d2,-0x1a0)])return;this['_updateIng']=!![];if(this['worker'])this['windField']['update']();else{const _0x3490cb=this['windField']['getParticles']();this['_drawLines'](_0x3490cb);}this['_updateIng']=![];}['_drawLines'](_0x475b9b){function _0x1976d2(_0x540d16,_0x52e4ee){return _0x35d093(_0x52e4ee,_0x540d16- -0x20);}function _0x3a7476(_0x31aa4e,_0x42dae5){return _0x3e09ac(_0x31aa4e,_0x42dae5-0x5ec);}this['_canvasParticles']=_0x475b9b,this['canvasContext']['globalCompositeOperation']='destination-in',this[_0x1976d2(0x38,0x42)]['fillRect'](0x0,0x0,this[_0x3a7476(0x437,0x468)],this[_0x1976d2(0x71,0x97)]),this[_0x1976d2(0x38,0x2a)]['globalCompositeOperation']='lighter',this['canvasContext'][_0x1976d2(0xe9,0xc4)]=0.9;const _0xd6c1b5=this['_map']['scene']['mode']!==Cesium['SceneMode']['SCENE3D'],_0x319182=this['canvasWidth']*0.25;if(this[_0x1976d2(0x8a,0xeb)])for(let _0x921fc5=0x0,_0x2875dd=_0x475b9b['length'];_0x921fc5<_0x2875dd;_0x921fc5++){const _0x10f334=_0x475b9b[_0x921fc5],_0x13a332=this[_0x3a7476(0x3c9,0x3c7)](_0x10f334,_0x10f334['lng'],_0x10f334['lat'],_0x10f334['alt']),_0x14d788=this[_0x3a7476(0x382,0x3c7)](_0x10f334,_0x10f334[_0x1976d2(0x81,0x55)],_0x10f334[_0x3a7476(0x3b2,0x441)],_0x10f334[_0x3a7476(0x3d0,0x429)]);if(!_0x13a332||!_0x14d788)continue;if(_0xd6c1b5&&Math['abs'](_0x13a332[0x0]-_0x14d788[0x0])>=_0x319182)continue;this[_0x1976d2(0x38,0xa8)]['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext'][_0x1976d2(0x9a,0x23)]=this['_colorRamp']['getColor'](_0x10f334['speed']),this[_0x3a7476(0x3af,0x3a9)]['moveTo'](_0x13a332[0x0],_0x13a332[0x1]),this[_0x1976d2(0x38,0x29)]['lineTo'](_0x14d788[0x0],_0x14d788[0x1]),this[_0x3a7476(0x3a9,0x3a9)]['stroke']();}else{this[_0x3a7476(0x32f,0x3a9)]['beginPath'](),this[_0x3a7476(0x3e4,0x3a9)]['lineWidth']=this[_0x3a7476(0x4e1,0x47b)],this[_0x1976d2(0x38,-0x24)][_0x3a7476(0x44e,0x40b)]=this['color'];for(let _0x4dbfe5=0x0,_0x373369=_0x475b9b['length'];_0x4dbfe5<_0x373369;_0x4dbfe5++){const _0x2d1803=_0x475b9b[_0x4dbfe5],_0x3df34f=this['_tomap'](_0x2d1803,_0x2d1803[_0x3a7476(0x46d,0x419)],_0x2d1803[_0x3a7476(0x35a,0x3d5)],_0x2d1803['alt']),_0x38dac7=this[_0x3a7476(0x401,0x3c7)](_0x2d1803,_0x2d1803['tlng'],_0x2d1803[_0x3a7476(0x450,0x441)],_0x2d1803['talt']);if(!_0x3df34f||!_0x38dac7)continue;if(_0xd6c1b5&&Math['abs'](_0x3df34f[0x0]-_0x38dac7[0x0])>=_0x319182)continue;this['canvasContext']['moveTo'](_0x3df34f[0x0],_0x3df34f[0x1]),this['canvasContext'][_0x3a7476(0x446,0x3d8)](_0x38dac7[0x0],_0x38dac7[0x1]);}this['canvasContext']['stroke']();}}[_0x3e09ac(-0x274,-0x225)](_0x370fa9,_0xc4dc62,_0x459b2c,_0x2d75a7){const _0x40cb5c=Cesium['Cartesian3']['fromDegrees'](_0xc4dc62,_0x459b2c,_0x2d75a7??this[_0x3dd81c(0x5cb,0x55e)]);function _0xb41847(_0x138162,_0x3d85a4){return _0x3e09ac(_0x138162,_0x3d85a4-0x366);}const _0x498468=this[_0xb41847(0xd9,0xef)][_0x3dd81c(0x50b,0x49a)];if(_0x498468['mode']===Cesium['SceneMode']['SCENE3D']){const _0x447c7b=new Cesium[(_0xb41847(0x107,0x163))](_0x498468['globe'][_0xb41847(0x15c,0x136)],_0x498468[_0xb41847(0x1d1,0x187)]['positionWC']),_0x29b231=_0x447c7b['isPointVisible'](_0x40cb5c);if(!_0x29b231)return _0x370fa9['age']=0x0,null;}const _0x107f3d=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map']['scene'],_0x40cb5c);function _0x3dd81c(_0x412845,_0x1f100b){return _0x3e09ac(_0x412845,_0x1f100b-0x719);}return _0x107f3d?[_0x107f3d['x'],_0x107f3d['y']]:null;}['clear'](){function _0x41b26e(_0x4c5dfc,_0x17aad5){return _0x35d093(_0x4c5dfc,_0x17aad5- -0x3a);}this['windField'][_0x41b26e(0xe1,0x59)](),delete this['windData'];}[_0x35d093(0xa5,0xd0)](){this['worker']=new Worker(this[_0x56275a(0x10,0x1d)][_0x5796b8(-0x281,-0x21f)]);function _0x5796b8(_0x138f2f,_0x3f11bf){return _0x3e09ac(_0x138f2f,_0x3f11bf- -0x19);}function _0x56275a(_0x329d7f,_0x46b8dd){return _0x35d093(_0x329d7f,_0x46b8dd- -0xf9);}this[_0x56275a(-0xf2,-0x64)]['onmessage']=_0x51ced4=>{this['_drawLines'](_0x51ced4[_0x4fade6(0x2bd,0x2e9)]['particles']);function _0x4fade6(_0x52191a,_0x35fa1e){return _0x5796b8(_0x52191a,_0x35fa1e-0x4eb);}this['_updateIng2']=![];},this[_0x56275a(-0xa9,-0x30)]={'init':_0x2a5f2a=>{const _0x272675={};_0x272675['type']='init',_0x272675['options']=_0x2a5f2a;function _0x52cbdd(_0x38669a,_0x1c0563){return _0x56275a(_0x38669a,_0x1c0563- -0xd3);}this['worker'][_0x52cbdd(-0xe6,-0xae)](_0x272675);},'setOptions':_0x4ed45f=>{const _0x40ace7={};_0x40ace7['type']='setOptions',_0x40ace7['options']=_0x4ed45f;function _0x1d0f82(_0x17dc0a,_0x2e17f4){return _0x56275a(_0x2e17f4,_0x17dc0a- -0x1b5);}function _0x4fee47(_0xfc2db7,_0x1de4b1){return _0x56275a(_0x1de4b1,_0xfc2db7-0x2ea);}this[_0x4fee47(0x286,0x2e0)][_0x4fee47(0x30f,0x32d)](_0x40ace7);},'setDate':_0x59e6a4=>{const _0x5b8fd2={};_0x5b8fd2['type']='setDate';function _0x3bea7f(_0x56241a,_0x458c56){return _0x56275a(_0x458c56,_0x56241a-0x1e4);}_0x5b8fd2[_0x3bea7f(0x19d,0x1af)]=_0x59e6a4,this['worker']['postMessage'](_0x5b8fd2);},'update':()=>{if(this['_updateIng2'])return;function _0x280c64(_0x433546,_0x4dab46){return _0x56275a(_0x433546,_0x4dab46-0x2cb);}this['_updateIng2']=!![];const _0x4007ff={};function _0x3e25e2(_0x4027e5,_0x2753fa){return _0x5796b8(_0x2753fa,_0x4027e5-0x7);}_0x4007ff[_0x280c64(0x2cf,0x29e)]=_0x280c64(0x28e,0x22b),this[_0x280c64(0x225,0x267)][_0x3e25e2(-0x18f,-0x1dd)](_0x4007ff);},'clear':()=>{const _0x44d134={};_0x44d134[_0x2a6764(-0x1,-0x85)]='clear';function _0x2a6764(_0x72cc66,_0x279839){return _0x5796b8(_0x279839,_0x72cc66-0x1e7);}this['worker']['postMessage'](_0x44d134);}},this['windField']['init'](this[_0x56275a(-0x71,0x1d)]);}}mars3d__namespace[_0x35d093(0xf6,0x11f)][_0x35d093(0x76,0xf5)](_0x3e09ac(-0x257,-0x1d0),CanvasWindLayer),mars3d__namespace['layer'][_0x35d093(0x7c,0xa5)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log']['logInfo']('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports[_0x3e09ac(-0x1ed,-0x1eb)]=CanvasWindField,exports[_0x3e09ac(-0x187,-0x1f6)]=CanvasWindLayer,exports[_0x35d093(0x134,0x10c)]=WindLayer,exports[_0x35d093(0x38,0x86)]=WindUtil;const _0x44d9bc={};_0x44d9bc['value']=!![],Object['defineProperty'](exports,'__esModule',_0x44d9bc);
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.10.
|
|
3
|
+
"version": "3.10.8",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.10.
|
|
8
|
+
"mars3d": "~3.10.8"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|