mars3d-wind 3.11.1 → 3.11.2

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.
Files changed (2) hide show
  1. package/mars3d-wind.js +3 -3
  2. package/package.json +2 -2
package/mars3d-wind.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.11.1
5
- * 编译日期:2026-03-17 19:23
4
+ * 版本信息:v3.11.2
5
+ * 编译日期:2026-04-08 16:13
6
6
  * 版权所有:Copyright by http://mars3d.cn
7
7
  * 使用单位:免费公开版 ,2026-02-01
8
8
  */
@@ -11,5 +11,5 @@
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';function _0x100c(_0x4a1e28,_0x4ca283){const _0x54793c=_0x5479();return _0x100c=function(_0x100cfb,_0x2c2894){_0x100cfb=_0x100cfb-0x1e2;let _0x359193=_0x54793c[_0x100cfb];return _0x359193;},_0x100c(_0x4a1e28,_0x4ca283);}(function(_0x5b64f5,_0xcd4961){function _0x4e7f50(_0x3b9f85,_0x98a55b){return _0x100c(_0x98a55b-0x287,_0x3b9f85);}const _0x5e4c3a=_0x5b64f5();function _0x4d45e6(_0x414c3c,_0x103c3a){return _0x100c(_0x103c3a- -0x2bd,_0x414c3c);}while(!![]){try{const _0x231dc0=-parseInt(_0x4d45e6(0x13,-0x2))/0x1+parseInt(_0x4d45e6(-0x74,-0xb6))/0x2+parseInt(_0x4e7f50(0x4b3,0x507))/0x3+parseInt(_0x4d45e6(-0xc0,-0xd8))/0x4*(parseInt(_0x4e7f50(0x4f5,0x535))/0x5)+-parseInt(_0x4d45e6(-0x61,0x2))/0x6+-parseInt(_0x4e7f50(0x45f,0x4cf))/0x7*(-parseInt(_0x4e7f50(0x4da,0x51a))/0x8)+-parseInt(_0x4d45e6(-0xb9,-0xda))/0x9;if(_0x231dc0===_0xcd4961)break;else _0x5e4c3a['push'](_0x5e4c3a['shift']());}catch(_0x2ae7da){_0x5e4c3a['push'](_0x5e4c3a['shift']());}}}(_0x5479,0xdc917));function _interopNamespace(_0x2bab2d){if(_0x2bab2d&&_0x2bab2d['__esModule'])return _0x2bab2d;var _0x3521cd=Object[_0x2b531b(0x3d5,0x397)](null);_0x2bab2d&&Object['keys'](_0x2bab2d)['forEach'](function(_0x2d4e17){if(_0x2d4e17!=='default'){var _0x8759f8=Object['getOwnPropertyDescriptor'](_0x2bab2d,_0x2d4e17);Object['defineProperty'](_0x3521cd,_0x2d4e17,_0x8759f8['get']?_0x8759f8:{'enumerable':!![],'get':function(){return _0x2bab2d[_0x2d4e17];}});}});function _0x2b531b(_0xa764bf,_0x4ad1a8){return _0x100c(_0x4ad1a8-0x187,_0xa764bf);}return _0x3521cd['default']=_0x2bab2d,_0x3521cd;}function _0x560305(_0x1c836b,_0x548654){return _0x100c(_0x1c836b-0x33a,_0x548654);}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x1b7648,_0x58e9ea){const _0x5a45f3=_0x1b7648*Math['cos'](Cesium$2['Math']['toRadians'](_0x58e9ea));return _0x5a45f3;}function getV(_0x478f69,_0x2d4c3c){function _0x21e066(_0x262117,_0x2c4fc1){return _0x100c(_0x2c4fc1-0x1d5,_0x262117);}const _0x464873=_0x478f69*Math['sin'](Cesium$2[_0x21e066(0x3b1,0x3f2)]['toRadians'](_0x2d4c3c));return _0x464873;}function getSpeed(_0x45e166,_0x3d35cb){function _0x1e02a7(_0x1817b3,_0x56ae11){return _0x100c(_0x1817b3- -0x24a,_0x56ae11);}const _0xbb620e=Math[_0x4adb38(-0x7d,-0x101)](Math['pow'](_0x45e166,0x2)+Math[_0x4adb38(0x4,-0x60)](_0x3d35cb,0x2));function _0x4adb38(_0x1437cf,_0x27e0c3){return _0x100c(_0x27e0c3- -0x32c,_0x1437cf);}return _0xbb620e;}function getDirection(_0x312aa1,_0x3296c4){function _0x225d02(_0x5d8e26,_0x532c55){return _0x100c(_0x532c55-0x2c3,_0x5d8e26);}function _0x406d82(_0x167870,_0x4c4249){return _0x100c(_0x4c4249-0x2a6,_0x167870);}let _0x5c3cf7=Cesium$2[_0x225d02(0x528,0x4e0)]['toDegrees'](Math[_0x406d82(0x4be,0x4a0)](_0x3296c4,_0x312aa1));return _0x5c3cf7+=_0x5c3cf7<0x0?0x168:0x0,_0x5c3cf7;}const _0x373e32={};_0x373e32['__proto__']=null,_0x373e32['getU']=getU,_0x373e32['getV']=getV,_0x373e32[_0x413ef9(-0x10,-0x69)]=getSpeed,_0x373e32[_0x560305(0x5a7,0x59f)]=getDirection;var WindUtil=_0x373e32;const version=_0x560305(0x56b,0x524),buildTime='2026-03-17\x2019:22';var updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader=_0x560305(0x53f,0x5b2);const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static[_0x560305(0x53d,0x5b2)](){const _0x2d7dae={};return _0x2d7dae['sources']=[calculateSpeedShader],new ShaderSource$1(_0x2d7dae);}static['getUpdatePositionShader'](){const _0x400160={};return _0x400160['sources']=[updatePositionShader],new ShaderSource$1(_0x400160);}static['getSegmentDrawVertexShader'](){function _0x577831(_0x1f489e,_0x542957){return _0x413ef9(_0x1f489e-0x39f,_0x542957);}const _0x5726ca={};return _0x5726ca[_0x577831(0x463,0x409)]=[renderParticlesVertexShader],new ShaderSource$1(_0x5726ca);}static[_0x560305(0x5c7,0x58e)](){const _0x48551b={};return _0x48551b['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x48551b);}static[_0x560305(0x5bb,0x5d1)](){const _0x2ba58c={};return _0x2ba58c['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x2ba58c);}}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[_0x560305(0x5e2,0x570)];class CustomPrimitive{constructor(_0x5f153e){function _0x4fc3d3(_0x1bff74,_0x4996f3){return _0x413ef9(_0x1bff74-0x146,_0x4996f3);}this[_0x4965e6(0x59a,0x58d)]=_0x5f153e['commandType'],this['geometry']=_0x5f153e[_0x4fc3d3(0x1b1,0x130)],this['attributeLocations']=_0x5f153e['attributeLocations'],this['primitiveType']=_0x5f153e[_0x4965e6(0x4f9,0x50a)],this['uniformMap']=_0x5f153e[_0x4fc3d3(0x198,0x1b2)]||{},this[_0x4fc3d3(0x226,0x289)]=_0x5f153e['vertexShaderSource'],this['fragmentShaderSource']=_0x5f153e['fragmentShaderSource'],this[_0x4965e6(0x564,0x4ea)]=_0x5f153e['rawRenderState'],this['framebuffer']=_0x5f153e['framebuffer'],this['outputTexture']=_0x5f153e['outputTexture'];function _0x4965e6(_0x35564a,_0xe62360){return _0x413ef9(_0xe62360-0x4ab,_0x35564a);}this['autoClear']=_0x5f153e[_0x4965e6(0x561,0x53c)]??![],this[_0x4965e6(0x498,0x4a1)]=_0x5f153e[_0x4fc3d3(0x13c,0xe9)],this['show']=!![],this['commandToExecute']=undefined,this[_0x4965e6(0x513,0x581)]=undefined,this['isDynamic']=_0x5f153e[_0x4965e6(0x449,0x490)]??(()=>!![]),this[_0x4fc3d3(0x1d7,0x214)]&&(this[_0x4965e6(0x5ed,0x581)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}[_0x560305(0x5e9,0x5ce)](_0x2b3dbf){function _0x4d0046(_0x3e5cb8,_0xf79906){return _0x560305(_0x3e5cb8- -0x56e,_0xf79906);}function _0xa5bc6a(_0x3bff85,_0x244205){return _0x413ef9(_0x3bff85- -0x100,_0x244205);}if(this[_0x4d0046(0xb4,0x6e)]===_0xa5bc6a(-0xac,-0x74)){const _0x26599d={};_0x26599d['context']=_0x2b3dbf,_0x26599d['geometry']=this[_0x4d0046(0x3d,0xc1)],_0x26599d[_0x4d0046(0xa9,0x67)]=this[_0x4d0046(0xa9,0xf0)],_0x26599d[_0xa5bc6a(-0x48,-0xb5)]=BufferUsage$1['STATIC_DRAW'];const _0x3d709c=VertexArray$1['fromGeometry'](_0x26599d),_0x508b98={};_0x508b98['context']=_0x2b3dbf,_0x508b98[_0xa5bc6a(-0x20,0x4e)]=this[_0xa5bc6a(-0x20,0xb)],_0x508b98['fragmentShaderSource']=this['fragmentShaderSource'],_0x508b98['attributeLocations']=this['attributeLocations'];const _0x466a20=ShaderProgram['fromCache'](_0x508b98),_0x32b232=RenderState['fromCache'](this['rawRenderState']),_0x443daf={};return _0x443daf[_0x4d0046(-0x4b,0x37)]=this,_0x443daf['vertexArray']=_0x3d709c,_0x443daf[_0x4d0046(0x31,0x64)]=this['primitiveType'],_0x443daf[_0x4d0046(-0x8,0x22)]=Matrix4['IDENTITY'],_0x443daf['renderState']=_0x32b232,_0x443daf[_0xa5bc6a(-0x7a,-0x49)]=_0x466a20,_0x443daf['framebuffer']=this['framebuffer'],_0x443daf['uniformMap']=this[_0x4d0046(0x24,0x8b)],_0x443daf['pass']=Pass$1[_0x4d0046(0x45,0x99)],new DrawCommand(_0x443daf);}else{if(this['commandType']==='Compute'){const _0x3dda65={};return _0x3dda65['owner']=this,_0x3dda65['fragmentShaderSource']=this['fragmentShaderSource'],_0x3dda65[_0xa5bc6a(-0xae,-0xac)]=this['uniformMap'],_0x3dda65['outputTexture']=this[_0x4d0046(0x1c,-0x45)],_0x3dda65[_0xa5bc6a(-0xef,-0xbc)]=!![],new ComputeCommand(_0x3dda65);}else throw new Error(_0x4d0046(0x29,0x9c));}}['setGeometry'](_0x33b121,_0x18b54f){function _0x1c570a(_0x4bfaf0,_0x52ea6d){return _0x413ef9(_0x4bfaf0-0x87,_0x52ea6d);}this['geometry']=_0x18b54f;function _0x3cc99f(_0x41942c,_0x49f6c3){return _0x560305(_0x41942c-0x7a,_0x49f6c3);}defined(this['commandToExecute'])&&(this[_0x3cc99f(0x682,0x696)][_0x1c570a(0xb3,0xec)]=VertexArray$1['fromGeometry']({'context':_0x33b121,'geometry':this[_0x3cc99f(0x625,0x5a2)],'attributeLocations':this[_0x3cc99f(0x691,0x678)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x560305(0x583,0x54a)](_0x5ae944){if(!this['isDynamic']())return;if(!this['show']||!defined(_0x5ae944))return;!defined(this[_0x2139f4(0x271,0x1f2)])&&(this['commandToExecute']=this[_0x2139f4(0x213,0x1d3)](_0x5ae944['context']));function _0x2139f4(_0x1befb5,_0x2d0353){return _0x560305(_0x2d0353- -0x416,_0x1befb5);}defined(this['preExecute'])&&this['preExecute']();if(!_0x5ae944['commandList']){console['warn']('frameState.commandList\x20is\x20undefined');return;}function _0x78a427(_0x420512,_0x71c542){return _0x560305(_0x71c542- -0x2f4,_0x420512);}defined(this[_0x78a427(0x304,0x322)])&&_0x5ae944[_0x2139f4(0x162,0x164)]['push'](this['clearCommand']),defined(this[_0x78a427(0x397,0x314)])&&_0x5ae944[_0x2139f4(0x146,0x164)][_0x2139f4(0x194,0x118)](this[_0x2139f4(0x1c8,0x1f2)]);}[_0x560305(0x5a9,0x596)](){return![];}[_0x560305(0x532,0x565)](){function _0x3b5acb(_0x79446d,_0x5cff11){return _0x560305(_0x79446d- -0x54d,_0x5cff11);}function _0x222d67(_0x362a3d,_0x6644f){return _0x560305(_0x362a3d- -0x2cb,_0x6644f);}if(defined(this[_0x222d67(0x33d,0x389)])){var _0x2a6305;(_0x2a6305=this['commandToExecute']['shaderProgram'])===null||_0x2a6305===void 0x0||_0x2a6305['destroy'](),this['commandToExecute'][_0x3b5acb(0x79,0x5c)]=undefined;}return destroyObject(this);}}function deepMerge(_0x53eb46,_0x364c25){if(!_0x53eb46)return _0x364c25;function _0x4e32c1(_0x173f51,_0x11ae2e){return _0x413ef9(_0x11ae2e-0x1f0,_0x173f51);}if(!_0x364c25)return _0x53eb46;const _0x8a91c5={..._0x364c25},_0x49cba8=_0x8a91c5;for(const _0x50adfb in _0x53eb46){if(Object['prototype']['hasOwnProperty'][_0x4e32c1(0x1f2,0x1dd)](_0x53eb46,_0x50adfb)){const _0x1a8aeb=_0x53eb46[_0x50adfb],_0xf1f388=_0x364c25[_0x50adfb];if(Array['isArray'](_0x1a8aeb)){_0x49cba8[_0x50adfb]=_0x1a8aeb[_0x3e5b68(0x18a,0x17e)]();continue;}if(_0x1a8aeb&&typeof _0x1a8aeb==='object'){_0x49cba8[_0x50adfb]=deepMerge(_0x1a8aeb,_0xf1f388||{});continue;}_0x1a8aeb!==undefined&&(_0x49cba8[_0x50adfb]=_0x1a8aeb);}}function _0x3e5b68(_0x330017,_0x1c914c){return _0x413ef9(_0x1c914c-0xe0,_0x330017);}return _0x49cba8;}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(_0x1dabee,_0x37b9f7,_0x51e928,_0x5a6382,_0x3ac779){this[_0x4edbcf(0x531,0x530)]=_0x1dabee,this['options']=_0x51e928,this[_0x4ec95f(0x16e,0x125)]=_0x5a6382,this['windData']=_0x37b9f7,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x3b5fd1={};function _0x4edbcf(_0x316049,_0x4a6d03){return _0x560305(_0x4a6d03- -0x3e,_0x316049);}_0x3b5fd1[_0x4edbcf(0x5d6,0x58a)]=_0x3ac779,_0x3b5fd1['samplingWindow']=0x1,_0x3b5fd1[_0x4edbcf(0x4e1,0x52f)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x3b5fd1),this['initFrameRate'](),this['createWindTextures']();function _0x4ec95f(_0x712ed7,_0x433ce6){return _0x413ef9(_0x712ed7-0x170,_0x433ce6);}this[_0x4ec95f(0x21f,0x1d4)](),this[_0x4edbcf(0x547,0x4ec)]();}[_0x560305(0x55a,0x592)](){const _0x4aed8f=()=>{function _0x195882(_0x2583f3,_0x1034c7){return _0x100c(_0x1034c7-0x156,_0x2583f3);}function _0x49b4f8(_0x2236ac,_0x2150f7){return _0x100c(_0x2236ac- -0x86,_0x2150f7);}this['frameRateMonitor'][_0x49b4f8(0x198,0x15f)]>0x14&&(this[_0x195882(0x366,0x38f)]=this[_0x195882(0x41a,0x434)][_0x195882(0x3f4,0x374)],this['frameRateAdjustment']=0x3c/Math['max'](this[_0x195882(0x349,0x38f)],0x1));};_0x4aed8f();const _0x5d6289=setInterval(_0x4aed8f,0x3e8),_0x41d47e=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x5d6289),_0x41d47e();};}['createWindTextures'](){const _0x5a3493={};function _0x220c4f(_0x3ee433,_0x58b742){return _0x413ef9(_0x3ee433-0x354,_0x58b742);}_0x5a3493['minificationFilter']=TextureMinificationFilter$1[_0x220c4f(0x3b0,0x410)];function _0x3700ca(_0x35f3ca,_0x5b97a5){return _0x560305(_0x5b97a5- -0x5a,_0x35f3ca);}_0x5a3493[_0x220c4f(0x345,0x392)]=TextureMagnificationFilter$1['LINEAR'];const _0x41a976={'context':this[_0x220c4f(0x382,0x34d)],'width':this[_0x3700ca(0x5d4,0x55e)]['width'],'height':this[_0x3700ca(0x54b,0x55e)]['height'],'pixelFormat':PixelFormat$1[_0x220c4f(0x3dd,0x3ee)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x5a3493)};this['windTextures']={'U':new Texture$1({..._0x41a976,'source':{'arrayBufferView':new Float32Array(this[_0x3700ca(0x56a,0x55e)]['u'][_0x220c4f(0x340,0x2ff)])}}),'V':new Texture$1({..._0x41a976,'source':{'arrayBufferView':new Float32Array(this[_0x220c4f(0x3cc,0x3e9)]['v']['array'])}})};}['createParticlesTextures'](){const _0x4c13e1={};_0x4c13e1['minificationFilter']=TextureMinificationFilter$1[_0x3b14de(0x3b5,0x3c1)],_0x4c13e1['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];const _0x369eee={'context':this['context'],'width':this['options'][_0x3b14de(0x329,0x2c1)],'height':this[_0x3b14de(0x3a6,0x336)][_0x38d5ec(0x36e,0x3ee)],'pixelFormat':PixelFormat$1[_0x38d5ec(0x3b4,0x424)],'pixelDatatype':PixelDatatype$1[_0x38d5ec(0x494,0x49c)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options'][_0x38d5ec(0x40e,0x3ee)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x4c13e1)};function _0x3b14de(_0x31f5e5,_0xa5c90f){return _0x413ef9(_0x31f5e5-0x327,_0xa5c90f);}function _0x38d5ec(_0x48c983,_0x9262fe){return _0x413ef9(_0x9262fe-0x3ec,_0x48c983);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x369eee),'currentParticlesPosition':new Texture$1(_0x369eee),'nextParticlesPosition':new Texture$1(_0x369eee),'postProcessingPosition':new Texture$1(_0x369eee),'particlesSpeed':new Texture$1(_0x369eee)};}['destroyParticlesTextures'](){function _0x2dab4a(_0x4309e7,_0xcf5415){return _0x560305(_0x4309e7- -0x1b6,_0xcf5415);}function _0x45f1ac(_0x58dbf5,_0x249a47){return _0x560305(_0x249a47- -0x6aa,_0x58dbf5);}Object[_0x2dab4a(0x39f,0x38c)](this[_0x45f1ac(-0xaa,-0xa1)])[_0x45f1ac(-0x14e,-0x17f)](_0x3d4fc2=>_0x3d4fc2['destroy']());}[_0x413ef9(-0x16,0x9)](){function _0xd68c53(_0x106f75,_0x563a87){return _0x560305(_0x563a87- -0x4e4,_0x106f75);}function _0xe3fecc(_0x466989,_0x2ba6d8){return _0x413ef9(_0x2ba6d8-0x45a,_0x466989);}this[_0xe3fecc(0x415,0x489)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0xe3fecc(0x464,0x4a9)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u'][_0xd68c53(0xf2,0xb9)],this['windData']['u'][_0xe3fecc(0x4bc,0x453)]),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this['windData']['v'][_0xe3fecc(0x496,0x453)]),'speedRange':()=>new Cartesian2$1(this[_0xd68c53(0xc8,0xd4)][_0xd68c53(0x14b,0xca)]['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this[_0xe3fecc(0x544,0x523)]['currentParticlesPosition'],'speedScaleFactor':()=>{return(this['viewerParameters']['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this[_0xe3fecc(0x47c,0x4d2)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds']['west'],this[_0xe3fecc(0x4f6,0x4d2)]['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds']['east'],this[_0xd68c53(0xe5,0xd4)][_0xd68c53(0x15e,0x112)][_0xe3fecc(0x5a3,0x521)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures'][_0xe3fecc(0x5a1,0x526)],'preExecute':()=>{const _0xb5bcbb=this['particlesTextures']['previousParticlesPosition'];this[_0x4ccbc4(0x388,0x3da)][_0x3fcd12(0x545,0x532)]=this[_0x3fcd12(0x626,0x657)]['currentParticlesPosition'];function _0x4ccbc4(_0x1853f8,_0x4cd2e4){return _0xd68c53(_0x4cd2e4,_0x1853f8-0x263);}this['particlesTextures']['currentParticlesPosition']=this['particlesTextures']['postProcessingPosition'];function _0x3fcd12(_0x453673,_0x368198){return _0xe3fecc(_0x368198,_0x453673-0x103);}this[_0x3fcd12(0x626,0x5d7)][_0x4ccbc4(0x341,0x2dd)]=_0xb5bcbb,this['primitives']['calculateSpeed']['commandToExecute']&&(this[_0x4ccbc4(0x2ee,0x32a)][_0x4ccbc4(0x2b7,0x2f6)]['commandToExecute'][_0x3fcd12(0x5a7,0x5f5)]=this[_0x4ccbc4(0x388,0x3ee)]['particlesSpeed']);},'isDynamic':()=>this[_0xe3fecc(0x48f,0x4d9)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0xe3fecc(0x4ca,0x460)],'particlesSpeed':()=>this[_0xd68c53(0xaf,0x125)]['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0xe3fecc(0x4dc,0x523)]['nextParticlesPosition'],'preExecute':()=>{function _0x330f53(_0x477372,_0x5f28fa){return _0xd68c53(_0x5f28fa,_0x477372-0x150);}function _0xe6abdb(_0x5bbdc2,_0x1b665e){return _0xd68c53(_0x1b665e,_0x5bbdc2-0x57);}this[_0x330f53(0x1db,0x1b3)]['updatePosition']['commandToExecute']&&(this[_0x330f53(0x1db,0x242)]['updatePosition'][_0x330f53(0x274,0x291)][_0x330f53(0x1f6,0x184)]=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0xe3fecc(0x50e,0x526)],'lonRange':()=>this['viewerParameters'][_0xd68c53(0xb7,0xa0)],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData']['bounds']['west'],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0xd68c53(0x192,0x112)][_0xd68c53(0x52,0x78)],this['windData']['bounds'][_0xd68c53(0xce,0x123)]),'randomCoefficient':function(){function _0x1d1c0c(_0x41bffc,_0x3ee12c){return _0xe3fecc(_0x3ee12c,_0x41bffc- -0x396);}return Math[_0x1d1c0c(0x112,0x153)]();},'dropRate':()=>this['options'][_0xd68c53(0xc9,0x100)],'dropRateBump':()=>this[_0xe3fecc(0x538,0x4d9)]['dropRateBump'],'useViewerBounds':()=>this['options'][_0xe3fecc(0x3fd,0x440)]},'fragmentShaderSource':ShaderManager[_0xe3fecc(0x4f6,0x4d5)](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{this['primitives']['postProcessingPosition']['commandToExecute']&&(this['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0xe3fecc(0x50f,0x4d9)][_0xd68c53(0x18a,0x107)]})};}[_0x413ef9(0x53,-0xf)](){this[_0x9e97b9(0x280,0x231)]['U']['destroy']();function _0x441b5a(_0x2c3600,_0x2338e0){return _0x560305(_0x2338e0- -0x154,_0x2c3600);}function _0x9e97b9(_0x111ceb,_0x56539d){return _0x560305(_0x56539d- -0x35e,_0x111ceb);}this[_0x441b5a(0x3c8,0x43b)]['V']['destroy'](),this[_0x441b5a(0x4b4,0x488)]();}['updateWindData'](_0xb65e6c){this['windData']=_0xb65e6c;function _0x2d60b8(_0x5291c7,_0x18fbdd){return _0x413ef9(_0x5291c7-0x1ae,_0x18fbdd);}this[_0x2d60b8(0x201,0x1b2)]();}['updateOptions'](_0x247e8c){const _0x114b60=_0x247e8c[_0x3c04f4(-0xed,-0xa8)]!==undefined&&_0x247e8c['flipY']!==this['options']['flipY'];this['options']=deepMerge(_0x247e8c,this[_0x3c04f4(-0xf1,-0x144)]);function _0x3c04f4(_0x25dd5a,_0x25663f){return _0x560305(_0x25dd5a- -0x6b0,_0x25663f);}function _0x1c345c(_0x11f055,_0x22c82c){return _0x413ef9(_0x22c82c-0x24,_0x11f055);}_0x114b60&&this['reCreateWindTextures']();}['processWindData'](_0x3362ed){const {array:_0x134382}=_0x3362ed;let {min:_0x2279ef,max:_0x2b9927}=_0x3362ed;const _0x49e210=new Float32Array(_0x134382['length']);_0x2279ef===undefined&&(console[_0x34c63a(0x157,0x126)](_0x34c63a(0x194,0x10f)),_0x2279ef=Math['min'](..._0x134382));_0x2b9927===undefined&&(console[_0x34c63a(0x194,0x126)](_0x2d5223(-0x136,-0x110)),_0x2b9927=Math[_0x34c63a(0xd5,0x63)](..._0x134382));const _0x18257f=Math['max'](Math[_0x34c63a(0x91,0xc0)](_0x2279ef),Math['abs'](_0x2b9927));function _0x2d5223(_0x547d7e,_0x1a7ca9){return _0x560305(_0x1a7ca9- -0x6f1,_0x547d7e);}for(let _0x7c032b=0x0;_0x7c032b<_0x134382[_0x2d5223(-0xd0,-0x121)];_0x7c032b++){const _0x158bbd=_0x134382[_0x7c032b]/_0x18257f;_0x49e210[_0x7c032b]=_0x158bbd;}function _0x34c63a(_0x5b64e2,_0x57c08f){return _0x560305(_0x57c08f- -0x4d6,_0x5b64e2);}return _0x49e210;}['destroy'](){Object['values'](this['windTextures'])['forEach'](_0x4b023e=>_0x4b023e[_0x12a13e(0x313,0x324)]());function _0xcbb3e3(_0x3dee49,_0x4d8ecb){return _0x560305(_0x4d8ecb- -0xb2,_0x3dee49);}Object[_0x12a13e(0x3be,0x347)](this[_0x12a13e(0x38d,0x3fb)])[_0xcbb3e3(0x45a,0x479)](_0x558ae5=>_0x558ae5['destroy']());function _0x12a13e(_0x320e1a,_0x4b32cc){return _0x413ef9(_0x4b32cc-0x332,_0x320e1a);}Object[_0x12a13e(0x2f2,0x347)](this[_0x12a13e(0x36e,0x361)])['forEach'](_0x5dd1ea=>_0x5dd1ea['destroy']()),this[_0x12a13e(0x421,0x40a)]['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x3bc6b0,_0x412fba,_0x452159,_0x2b88f9){this['context']=_0x3bc6b0,this['options']=_0x412fba;function _0x42ad0b(_0x1a45c,_0x464e9b){return _0x560305(_0x1a45c- -0x5f8,_0x464e9b);}this['viewerParameters']=_0x452159;function _0x1d8eda(_0x450cf5,_0x39440b){return _0x560305(_0x39440b- -0x38a,_0x450cf5);}this['computing']=_0x2b88f9,(typeof this[_0x42ad0b(-0x39,-0x59)][_0x42ad0b(-0xb6,-0x134)]!==_0x42ad0b(0x2c,-0x11)||this[_0x42ad0b(-0x39,0x4b)]['particlesTextureSize']<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x1d8eda(0x24e,0x235)][_0x1d8eda(0x1d1,0x1b8)]=0x100),this[_0x42ad0b(-0xb4,-0xf2)]=this['createColorTableTexture'](),this['textures']=this[_0x1d8eda(0x215,0x25d)](),this['framebuffers']=this['createRenderingFramebuffers'](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x44d8f1={};_0x44d8f1['context']=this['context'];function _0x36b533(_0x157aaa,_0x3d7089){return _0x413ef9(_0x3d7089-0x558,_0x157aaa);}_0x44d8f1['width']=this['context']['drawingBufferWidth'];function _0x52a37e(_0x4f6e4b,_0x3dd107){return _0x413ef9(_0x3dd107-0x4f9,_0x4f6e4b);}_0x44d8f1['height']=this['context'][_0x36b533(0x621,0x5a0)],_0x44d8f1['pixelFormat']=PixelFormat['RGBA'],_0x44d8f1['pixelDatatype']=PixelDatatype[_0x52a37e(0x555,0x572)];const _0x46788c=_0x44d8f1,_0x491a8d={};_0x491a8d['context']=this['context'],_0x491a8d[_0x36b533(0x629,0x622)]=this['context']['drawingBufferWidth'],_0x491a8d['height']=this[_0x36b533(0x5e5,0x586)]['drawingBufferHeight'],_0x491a8d['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x491a8d[_0x52a37e(0x587,0x5ba)]=PixelDatatype['UNSIGNED_INT'];const _0x5f3257=_0x491a8d;return{'segmentsColor':new Texture(_0x46788c),'segmentsDepth':new Texture(_0x5f3257)};}[_0x560305(0x5ad,0x5cf)](){const _0x565a03={};_0x565a03['context']=this[_0x4c33e8(0x188,0x181)],_0x565a03['colorTextures']=[this['textures']['segmentsColor']],_0x565a03['depthTexture']=this['textures']['segmentsDepth'];function _0x4c33e8(_0x27cece,_0x420d48){return _0x560305(_0x420d48- -0x3ed,_0x27cece);}return{'segments':new Framebuffer(_0x565a03)};}['destoryRenderingFramebuffers'](){Object['values'](this['framebuffers'])['forEach'](_0x1ef83c=>{function _0x4f1d83(_0x7a0578,_0x57c3fc){return _0x100c(_0x7a0578- -0x379,_0x57c3fc);}_0x1ef83c[_0x4f1d83(-0x181,-0x162)]();});}[_0x413ef9(0xcd,0x109)](){const _0x25ee62=new Float32Array(this[_0x52204f(-0x68,-0xd1)]['colors']['flatMap'](_0x3db979=>{function _0x3cb2ab(_0x55413b,_0xd3a132){return _0x52204f(_0xd3a132-0x376,_0x55413b);}const _0x139eaf=Color$1['fromCssColorString'](_0x3db979);return[_0x139eaf['red'],_0x139eaf[_0x3cb2ab(0x29f,0x2c0)],_0x139eaf['blue'],_0x139eaf['alpha']];})),_0x9563e={};function _0x1f09a2(_0x891c37,_0x2680f1){return _0x413ef9(_0x2680f1-0x2d2,_0x891c37);}_0x9563e['minificationFilter']=TextureMinificationFilter[_0x1f09a2(0x2f8,0x32e)];function _0x52204f(_0x26215d,_0x4edb9a){return _0x413ef9(_0x26215d- -0xe7,_0x4edb9a);}return _0x9563e['magnificationFilter']=TextureMagnificationFilter[_0x52204f(-0x8b,-0x86)],_0x9563e['wrapS']=TextureWrap[_0x1f09a2(0x309,0x2f2)],_0x9563e['wrapT']=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this['context'],'width':this[_0x52204f(-0x68,-0x8a)]['colors'][_0x52204f(-0x57,-0x8e)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x9563e),'source':{'width':this['options'][_0x52204f(-0xb0,-0x38)]['length'],'height':0x1,'arrayBufferView':_0x25ee62}});}['createSegmentsGeometry'](){const _0x1364b7=0x4,_0x20419d=this['options']['particlesTextureSize'];let _0x42f362=[];function _0x396bf5(_0x990e6e,_0x1b663d){return _0x560305(_0x990e6e- -0x1cf,_0x1b663d);}for(let _0xb13388=0x0;_0xb13388<_0x20419d;_0xb13388++){for(let _0x4c8f16=0x0;_0x4c8f16<_0x20419d;_0x4c8f16++){for(let _0xb001c0=0x0;_0xb001c0<_0x1364b7;_0xb001c0++){_0x42f362['push'](_0xb13388/_0x20419d),_0x42f362[_0x396bf5(0x35f,0x2e9)](_0x4c8f16/_0x20419d);}}}_0x42f362=new Float32Array(_0x42f362);const _0x55f56a=this[_0x396bf5(0x3f0,0x3c9)]['particlesTextureSize']**0x2;let _0x1bbc2b=[];for(let _0x52eb46=0x0;_0x52eb46<_0x55f56a;_0x52eb46++){_0x1bbc2b['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x1bbc2b=new Float32Array(_0x1bbc2b);let _0x54670e=[];for(let _0x2db187=0x0,_0x54bad0=0x0;_0x2db187<_0x55f56a;_0x2db187++){_0x54670e['push'](_0x54bad0+0x0,_0x54bad0+0x1,_0x54bad0+0x2,_0x54bad0+0x2,_0x54bad0+0x1,_0x54bad0+0x3),_0x54bad0+=_0x1364b7;}_0x54670e=new Uint32Array(_0x54670e);const _0x4a0102={};_0x4a0102['componentDatatype']=ComponentDatatype[_0x2948ab(0x34f,0x3a3)];function _0x2948ab(_0x38df7f,_0x26ae2d){return _0x413ef9(_0x38df7f-0x29f,_0x26ae2d);}_0x4a0102[_0x2948ab(0x33a,0x36d)]=0x2,_0x4a0102['values']=_0x42f362;const _0x3fd3a5={};_0x3fd3a5['componentDatatype']=ComponentDatatype['FLOAT'],_0x3fd3a5[_0x2948ab(0x33a,0x31b)]=0x3,_0x3fd3a5[_0x396bf5(0x386,0x360)]=_0x1bbc2b;const _0x56d0b1=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x4a0102),'normal':new GeometryAttribute(_0x3fd3a5)}),'indices':_0x54670e});return _0x56d0b1;}['createRawRenderState'](_0x491fd0){const _0x2c6468={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x491fd0};return Appearance['getDefaultRenderState'](!![],![],_0x2c6468);}['createPrimitives'](){const _0x39b6bd={};_0x39b6bd['st']=0x0,_0x39b6bd['normal']=0x1;const _0x4dafa7={};_0x4dafa7[_0x2b7930(-0x7f,-0xf)]=!![];const _0x2f1587={};_0x2f1587['enabled']=!![],_0x2f1587[_0x40dcbc(0x50a,0x589)]=WebGLRenderingContext[_0x40dcbc(0x5ad,0x5d9)],_0x2f1587['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'];function _0x40dcbc(_0x448451,_0x7a91c4){return _0x560305(_0x7a91c4- -0x19,_0x448451);}function _0x2b7930(_0x4ea53f,_0x4927fb){return _0x413ef9(_0x4927fb- -0xa7,_0x4ea53f);}_0x2f1587['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x5a947d={};_0x5a947d[_0x2b7930(-0x64,-0x1d)]=undefined,_0x5a947d[_0x40dcbc(0x623,0x59e)]=_0x4dafa7,_0x5a947d['depthMask']=!![],_0x5a947d[_0x40dcbc(0x5a6,0x587)]=_0x2f1587;const _0x34c505=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x39b6bd,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures']['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this['computing'][_0x40dcbc(0x5ad,0x5f0)][_0x2b7930(-0x52,-0x25)],'particlesSpeed':()=>this[_0x40dcbc(0x4a6,0x507)]['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this['computing'][_0x2b7930(-0x101,-0xcb)],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x186a36(_0x535fc3,_0x296601){return _0x40dcbc(_0x296601,_0x535fc3- -0x3b2);}var _0x1c4142,_0x365457;const _0x3382e0=new Cartesian2(((_0x1c4142=this['options'][_0x5e944d(0x1b3,0x195)])===null||_0x1c4142===void 0x0?void 0x0:_0x1c4142[_0x5e944d(0x1ba,0x211)])??this['computing'][_0x5e944d(0x271,0x22c)][_0x5e944d(0x204,0x222)]['min'],((_0x365457=this['options']['domain'])===null||_0x365457===void 0x0?void 0x0:_0x365457['max'])??this['computing'][_0x5e944d(0x1d0,0x22c)]['speed'][_0x5e944d(0x171,0x1ad)]);function _0x5e944d(_0x358e60,_0x1e4f38){return _0x40dcbc(_0x358e60,_0x1e4f38- -0x373);}return _0x3382e0;},'displayRange':()=>{var _0x5af4d0,_0x85b4d1;function _0x436cb5(_0x5b61ee,_0x4aec15){return _0x40dcbc(_0x5b61ee,_0x4aec15- -0x553);}function _0x1c8234(_0x3c038f,_0x50991d){return _0x40dcbc(_0x3c038f,_0x50991d- -0xcf);}const _0x58f6e2=new Cartesian2(((_0x5af4d0=this['options']['displayRange'])===null||_0x5af4d0===void 0x0?void 0x0:_0x5af4d0['min'])??this['computing'][_0x436cb5(0xab,0x4c)][_0x1c8234(0x548,0x4c6)]['min'],((_0x85b4d1=this['options']['displayRange'])===null||_0x85b4d1===void 0x0?void 0x0:_0x85b4d1[_0x436cb5(0x28,-0x33)])??this[_0x436cb5(-0x23,-0x4c)]['windData']['speed'][_0x1c8234(0x3cb,0x451)]);return _0x58f6e2;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this[_0x40dcbc(0x508,0x555)]['drawingBufferHeight'],'pixelSize':()=>this[_0x2b7930(-0x113,-0xa9)]['pixelSize'],'lineWidth':()=>{const _0x105240={};_0x105240[_0x4e9a18(0x626,0x63e)]=0x1,_0x105240['max']=0x2;const _0x43bcb2=this['options']['lineWidth']||_0x105240;function _0x4e9a18(_0x40f8c9,_0x88f83f){return _0x2b7930(_0x88f83f,_0x40f8c9-0x670);}return new Cartesian2(_0x43bcb2['min'],_0x43bcb2['max']);},'lineLength':()=>{function _0x5edd3f(_0x1ef62c,_0xa73bc6){return _0x2b7930(_0xa73bc6,_0x1ef62c- -0x117);}const _0x3691e3={};_0x3691e3[_0x5edd3f(-0x161,-0xf9)]=0x14,_0x3691e3['max']=0x64;const _0x1e31f1=this[_0x5edd3f(-0x13f,-0x18b)]['lineLength']||_0x3691e3;function _0x18691a(_0x450c43,_0x100236){return _0x40dcbc(_0x100236,_0x450c43- -0x31a);}return new Cartesian2(_0x1e31f1[_0x5edd3f(-0x161,-0x108)],_0x1e31f1['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x2b7930(0x55,0x2a)],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x40dcbc(0x595,0x5f7)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x5a947d)}),_0x3c9cfa={};return _0x3c9cfa['segments']=_0x34c505,_0x3c9cfa;}['onParticlesTextureSizeChange'](){const _0x280e8f=this['createSegmentsGeometry']();this[_0x1b0ae6(0x357,0x2f8)][_0x1b0ae6(0x31b,0x29d)]['geometry']=_0x280e8f;const _0x1b357e={};_0x1b357e['context']=this['context'],_0x1b357e[_0x1b0ae6(0x393,0x40f)]=_0x280e8f,_0x1b357e['attributeLocations']=this['primitives']['segments']['attributeLocations'],_0x1b357e['bufferUsage']=BufferUsage['STATIC_DRAW'];function _0xd431f9(_0x248786,_0x1a2e6c){return _0x560305(_0x1a2e6c- -0xeb,_0x248786);}const _0x41f2be=VertexArray['fromGeometry'](_0x1b357e);function _0x1b0ae6(_0x2a7f4d,_0x4470ec){return _0x413ef9(_0x2a7f4d-0x328,_0x4470ec);}this[_0x1b0ae6(0x357,0x2fa)]['segments']['commandToExecute']&&(this['primitives']['segments']['commandToExecute'][_0x1b0ae6(0x354,0x351)]=_0x41f2be);}['onColorTableChange'](){this[_0x52e46f(0x30b,0x2a2)]['destroy']();function _0x52e46f(_0x10badb,_0x118adc){return _0x413ef9(_0x118adc-0x29e,_0x10badb);}this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x2946e2){const _0x117c3c=_0x2946e2[_0x4c8c8d(0x19a,0x20d)]&&JSON[_0x4c8c8d(0x1cb,0x1f7)](_0x2946e2[_0x4c8c8d(0x18f,0x20d)])!==JSON['stringify'](this['options']['colors']);function _0x4c8c8d(_0x2cc6d3,_0x584312){return _0x413ef9(_0x584312-0x1d6,_0x2cc6d3);}function _0x13f298(_0x5cbcfc,_0x5c5b7f){return _0x413ef9(_0x5c5b7f-0x48b,_0x5cbcfc);}this['options']=deepMerge(_0x2946e2,this['options']),_0x117c3c&&this[_0x4c8c8d(0x175,0x1ea)]();}['destroy'](){function _0x3927a6(_0x4fc381,_0x581179){return _0x413ef9(_0x4fc381-0x22c,_0x581179);}function _0x283970(_0x40debf,_0x5c0c54){return _0x413ef9(_0x40debf-0x181,_0x5c0c54);}Object['values'](this['framebuffers'])['forEach'](_0x22ad20=>{function _0xb7af14(_0x498eca,_0x14d6c2){return _0x100c(_0x14d6c2- -0x21c,_0x498eca);}_0x22ad20[_0xb7af14(-0x86,-0x24)]();}),Object['values'](this[_0x3927a6(0x25b,0x263)])[_0x3927a6(0x217,0x1be)](_0x1f6f94=>{_0x1f6f94['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x413ef9(0xa2,0x75)];class WindParticleSystem{constructor(_0xa1e679,_0x2cbb5b,_0x344f47,_0xd9994,_0x50c7e2){function _0x246123(_0x9756ca,_0x531e5a){return _0x413ef9(_0x531e5a- -0x66,_0x9756ca);}this['context']=_0xa1e679;function _0x2f47ae(_0x33882e,_0x5a6e22){return _0x560305(_0x33882e- -0x52b,_0x5a6e22);}this['options']=_0x344f47,this['viewerParameters']=_0xd9994,this[_0x246123(-0x93,-0x86)]=new WindParticlesComputing(_0xa1e679,_0x2cbb5b,_0x344f47,_0xd9994,_0x50c7e2),this[_0x2f47ae(0x76,0x88)]=new WindParticlesRendering(_0xa1e679,_0x344f47,_0xd9994,this['computing']),this['clearFramebuffers']();}[_0x560305(0x548,0x502)](){function _0x4645aa(_0x230d35,_0x427c38){return _0x413ef9(_0x427c38-0x6f,_0x230d35);}const _0x16e339=[this[_0x23128d(0x59b,0x5a3)]['primitives'][_0x23128d(0x625,0x5bb)],this['computing']['primitives']['updatePosition'],this['computing'][_0x4645aa(0xdb,0x9e)]['postProcessingPosition'],this[_0x4645aa(0xb6,0xd0)][_0x23128d(0x5d3,0x5f2)][_0x23128d(0x5c7,0x5b6)]];function _0x23128d(_0x2c7345,_0x3c65a2){return _0x560305(_0x3c65a2-0x83,_0x2c7345);}return _0x16e339;}[_0x560305(0x5a8,0x615)](){function _0x5503ce(_0x321d28,_0x4e043c){return _0x560305(_0x321d28- -0x34a,_0x4e043c);}const _0xcef1c5=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x402a50(0x49a,0x4e8)]});function _0x402a50(_0x329d44,_0x33fa81){return _0x413ef9(_0x329d44-0x427,_0x33fa81);}Object[_0x402a50(0x464,0x487)](this['rendering']['framebuffers'])['forEach'](_0x52fd4b=>{_0xcef1c5['framebuffer']=this['rendering'][_0x425fca(-0xcc,-0x148)][_0x52fd4b];function _0x4d697d(_0x19d018,_0x5bd512){return _0x402a50(_0x5bd512- -0x54a,_0x19d018);}function _0x425fca(_0x2a5c8d,_0x449385){return _0x402a50(_0x2a5c8d- -0x55d,_0x449385);}_0xcef1c5[_0x425fca(-0x59,-0x8d)](this[_0x425fca(-0x108,-0x12d)]);});}[_0x413ef9(0xbf,0x12d)](_0x3b1145){let _0x3ca1b6=![];function _0x36cd6b(_0x47a431,_0x54fdc6){return _0x560305(_0x47a431- -0x643,_0x54fdc6);}_0x3b1145['particlesTextureSize']&&this[_0x36cd6b(-0x84,-0x6b)]['particlesTextureSize']!==_0x3b1145['particlesTextureSize']&&(_0x3ca1b6=!![]);const _0x155bdc=deepMerge(_0x3b1145,this[_0x36cd6b(-0x84,-0x87)]);if(_0x155bdc['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this[_0x36cd6b(-0x84,-0xbc)]=_0x155bdc,this['rendering'][_0x1c1eb1(0x32,0x7f)](_0x3b1145);function _0x1c1eb1(_0x4e5142,_0x4ed396){return _0x413ef9(_0x4e5142- -0xb3,_0x4ed396);}this['computing'][_0x1c1eb1(0x32,0xa0)](_0x3b1145),_0x3ca1b6&&(this['computing'][_0x36cd6b(-0xb2,-0xb1)](),this['computing']['createParticlesTextures'](),this['rendering']['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0xcb0149){function _0xc5a6e6(_0x36ec5f,_0x22cbfb){return _0x560305(_0x36ec5f- -0x12a,_0x22cbfb);}this[_0xc5a6e6(0x414,0x40c)]=_0xcb0149;function _0x17a026(_0x122a17,_0x30bbec){return _0x560305(_0x30bbec- -0x1a0,_0x122a17);}this[_0xc5a6e6(0x3f6,0x444)]['viewerParameters']=_0xcb0149,this['rendering'][_0xc5a6e6(0x414,0x3dd)]=_0xcb0149;}['destroy'](){function _0x1d4b17(_0x1c7dfa,_0x344f24){return _0x413ef9(_0x1c7dfa- -0x10b,_0x344f24);}this['computing'][_0x1d4b17(-0x119,-0x14b)](),this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace[_0x413ef9(0xa2,0xc4)],BaseLayer$1=mars3d__namespace[_0x560305(0x537,0x599)][_0x413ef9(0x5,0x6c)],_0x31a1b4={};_0x31a1b4['min']=0x1,_0x31a1b4['max']=0x2;const _0x433d75={};function _0x413ef9(_0x2066e6,_0x3a7cf8){return _0x100c(_0x2066e6- -0x206,_0x3a7cf8);}_0x433d75[_0x413ef9(0x5d,-0x1e)]=0x14,_0x433d75['max']=0x64;const _0x1b465f={};_0x1b465f['particlesTextureSize']=0x64,_0x1b465f['fixedHeight']=0x0,_0x1b465f['lineWidth']=_0x31a1b4,_0x1b465f[_0x413ef9(0x50,0x91)]=_0x433d75,_0x1b465f['speedFactor']=0x1,_0x1b465f['dropRate']=0.003,_0x1b465f['dropRateBump']=0.001,_0x1b465f['colors']=[_0x413ef9(0xc5,0x9f)],_0x1b465f['flipY']=![],_0x1b465f['dynamic']=!![];const DEF_OPTIONS=_0x1b465f;class WindLayer extends BaseLayer$1{constructor(_0x97b981={}){_0x97b981={...DEF_OPTIONS,..._0x97b981},super(_0x97b981),this['_setOptionsHook'](_0x97b981,_0x97b981);}get[_0x560305(0x537,0x569)](){return this['primitives'];}get['data'](){function _0x5781c8(_0x55a532,_0x3e9930){return _0x560305(_0x3e9930- -0xa3,_0x55a532);}return this[_0x5781c8(0x49d,0x51c)]['data'];}set['data'](_0x5b07b0){this['options']['data']=_0x5b07b0;function _0x3d5b4(_0x302b69,_0xc9be6a){return _0x413ef9(_0xc9be6a-0xc5,_0x302b69);}this[_0x3d5b4(0x14a,0xcc)](_0x5b07b0);}get['colors'](){function _0x264747(_0x40328a,_0x50091f){return _0x413ef9(_0x50091f-0x2ef,_0x40328a);}function _0x1d4799(_0x29d5d1,_0x2c8b2c){return _0x560305(_0x29d5d1- -0x12,_0x2c8b2c);}return this[_0x1d4799(0x5ad,0x54e)][_0x1d4799(0x565,0x511)];}set['colors'](_0x620a7d){this[_0x26b9f2(0x3dd,0x3de)]['colors']=_0x620a7d;const _0x246499={};function _0x26b9f2(_0x2cc95e,_0x16b5ac){return _0x560305(_0x2cc95e- -0x1e2,_0x16b5ac);}_0x246499['colors']=_0x620a7d,this['_setOptionsHook'](this['options'],_0x246499);}[_0x560305(0x524,0x574)](_0x3a29a1){function _0x2f1468(_0x527a4d,_0x392e4a){return _0x413ef9(_0x392e4a-0x5e6,_0x527a4d);}_0x3a29a1?this[_0x2f1468(0x651,0x6c2)]():this['_removedHook']();}['_mountedHook'](){}[_0x413ef9(0xdc,0xe9)](){function _0x8cfba3(_0x532541,_0x7e66d4){return _0x413ef9(_0x532541-0x3d0,_0x7e66d4);}this['scene']=this['_map'][_0x4b10fd(0x623,0x664)],this[_0x4b10fd(0x69c,0x6bb)]=this['_map'][_0x4b10fd(0x63d,0x6bb)];this[_0x4b10fd(0x661,0x65b)][_0x8cfba3(0x3fa,0x415)]&&this['setData'](this['options'][_0x4b10fd(0x5c7,0x606)]);if(!this[_0x4b10fd(0x621,0x654)]||!this['show'])return;function _0x4b10fd(_0x3cb518,_0x34e1fb){return _0x560305(_0x34e1fb-0x9c,_0x3cb518);}this[_0x4b10fd(0x647,0x5da)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1[(_0x8cfba3(0x3db,0x3e1))](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x8cfba3(0x458,0x43e)][_0x4b10fd(0x5cd,0x5ef)]},this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this[_0x8cfba3(0x458,0x463)]['context'],this[_0x4b10fd(0x642,0x654)],this['options'],this['viewerParameters'],this[_0x8cfba3(0x458,0x414)]),this[_0x4b10fd(0x5fa,0x60b)]=this['particleSystem'][_0x4b10fd(0x5bf,0x5e4)](),this['primitives']['forEach'](_0x536c22=>{function _0x291755(_0x1d718d,_0x251df6){return _0x4b10fd(_0x251df6,_0x1d718d- -0x661);}this['scene']['primitives'][_0x291755(0x15,0x4c)](_0x536c22);}),this['camera'][_0x4b10fd(0x649,0x67f)]=0.01,this[_0x8cfba3(0x4af,0x495)]['changed'][_0x8cfba3(0x400,0x384)](this[_0x4b10fd(0x70a,0x68f)][_0x4b10fd(0x577,0x5fb)](this)),this[_0x4b10fd(0x668,0x664)]['morphComplete']['addEventListener'](this['updateViewerParameters'][_0x8cfba3(0x3ef,0x3a1)](this)),window['addEventListener'](_0x8cfba3(0x3cb,0x3bf),this['updateViewerParameters'][_0x4b10fd(0x57b,0x5fb)](this));}['_removedHook'](){this[_0x227eb5(0x25a,0x1d7)]['changed'][_0x5e4edc(0x5c7,0x5e7)](this['updateViewerParameters']['bind'](this));function _0x5e4edc(_0x2c5736,_0x529b7c){return _0x413ef9(_0x2c5736-0x543,_0x529b7c);}this['scene']['morphComplete']['removeEventListener'](this['updateViewerParameters']['bind'](this));function _0x227eb5(_0x12aa44,_0x4a4312){return _0x413ef9(_0x12aa44-0x17b,_0x4a4312);}window[_0x5e4edc(0x5c7,0x5cf)]('resize',this[_0x5e4edc(0x5f6,0x5e2)]['bind'](this)),this['primitives']&&(this['primitives']['forEach'](_0x30a915=>{this['scene']['primitives']['remove'](_0x30a915);}),delete this['primitives']),this[_0x227eb5(0x1c8,0x23c)]&&(this['particleSystem']['destroy'](),delete this[_0x227eb5(0x1c8,0x1d8)]);}[_0x413ef9(0x7,0x3f)](_0x13ea9d,_0x3178df){this['windData']=this[_0x54a5b2(0x18c,0x1b1)](_0x13ea9d);function _0x233236(_0x3590b6,_0x32a33f){return _0x413ef9(_0x32a33f- -0x1d9,_0x3590b6);}function _0x54a5b2(_0x1b849a,_0x3482ee){return _0x560305(_0x3482ee- -0x422,_0x1b849a);}if(_0x3178df){this['_removedHook'](),this['_addedHook']();return;}this['particleSystem']?(this['particleSystem']['computing'][_0x54a5b2(0x8d,0x10d)](this['windData']),this['scene'][_0x54a5b2(0x11d,0x13b)]()):this['_addedHook']();}['_setOptionsHook'](_0x3837d5,_0x13ea4c){function _0x1b7ccc(_0x38c850,_0x4cbc0f){return _0x413ef9(_0x4cbc0f-0x1f8,_0x38c850);}this['particleSystem']&&(this['particleSystem'][_0x1b7ccc(0x246,0x2b7)](_0x13ea4c),this['scene']['requestRender']());}['processWindData'](_0x2ab55f){var _0x447990,_0x24946f;const _0xc1971b={..._0x2ab55f},_0x74c2e7=_0xc1971b;!_0x74c2e7['height']&&_0x74c2e7['rows']&&(_0x74c2e7['height']=_0x74c2e7['rows']);function _0x485ab6(_0x1d9753,_0x43af81){return _0x413ef9(_0x1d9753-0x44e,_0x43af81);}!_0x74c2e7[_0x384f27(0x697,0x662)]&&_0x74c2e7['cols']&&(_0x74c2e7['width']=_0x74c2e7['cols']);!_0x74c2e7[_0x485ab6(0x504,0x491)]&&(_0x74c2e7[_0x384f27(0x684,0x64e)]={'west':_0x74c2e7['xmin'],'south':_0x74c2e7['ymin'],'east':_0x74c2e7[_0x384f27(0x606,0x676)],'north':_0x74c2e7['ymax']});if(!_0x74c2e7['u']){const _0x34618e={};_0x34618e[_0x384f27(0x59f,0x584)]=_0x2ab55f['udata'],_0x34618e['min']=_0x2ab55f['umin'],_0x34618e[_0x384f27(0x5c3,0x591)]=_0x2ab55f['umax'],_0x74c2e7['u']=_0x34618e;}function _0x384f27(_0x4bf55f,_0x28a0a7){return _0x560305(_0x28a0a7-0x58,_0x4bf55f);}if(!_0x74c2e7['v']){const _0x42138b={};_0x42138b['array']=_0x2ab55f[_0x485ab6(0x4fc,0x476)],_0x42138b[_0x485ab6(0x4ab,0x476)]=_0x2ab55f['vmin'],_0x42138b[_0x485ab6(0x447,0x4b0)]=_0x2ab55f['vmax'],_0x74c2e7['v']=_0x42138b;}if(((_0x447990=_0x74c2e7[_0x485ab6(0x4bc,0x4de)])===null||_0x447990===void 0x0?void 0x0:_0x447990['min'])===undefined||((_0x24946f=_0x74c2e7['speed'])===null||_0x24946f===void 0x0?void 0x0:_0x24946f['max'])===undefined||_0x74c2e7['speed']['array']===undefined){const _0x3d8e50={'array':new Float32Array(_0x74c2e7['u'][_0x384f27(0x580,0x584)]['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x21ef6c=0x0;_0x21ef6c<_0x74c2e7['u'][_0x384f27(0x5a8,0x584)][_0x384f27(0x61d,0x628)];_0x21ef6c++){_0x3d8e50['array'][_0x21ef6c]=Math[_0x485ab6(0x473,0x483)](_0x74c2e7['u'][_0x384f27(0x5fb,0x584)][_0x21ef6c]*_0x74c2e7['u']['array'][_0x21ef6c]+_0x74c2e7['v'][_0x384f27(0x5c5,0x584)][_0x21ef6c]*_0x74c2e7['v'][_0x485ab6(0x43a,0x40b)][_0x21ef6c]),_0x3d8e50['array'][_0x21ef6c]!==0x0&&(_0x3d8e50[_0x384f27(0x647,0x5f5)]=Math[_0x485ab6(0x4ab,0x452)](_0x3d8e50['min'],_0x3d8e50[_0x485ab6(0x43a,0x4a0)][_0x21ef6c]),_0x3d8e50['max']=Math['max'](_0x3d8e50[_0x384f27(0x516,0x591)],_0x3d8e50[_0x384f27(0x535,0x584)][_0x21ef6c]));}_0x74c2e7['speed']=_0x3d8e50;}return _0x74c2e7;}['updateViewerParameters'](){var _0x1fb740;const _0x88aca5=this[_0x47534c(0x67f,0x633)];if(!_0x88aca5)return;const _0x3b6e96=_0x88aca5[_0x47534c(0x653,0x5eb)],_0x228ec0={};_0x228ec0['x']=0x0,_0x228ec0['y']=0x0;const _0x46a30a={};_0x46a30a['x']=0x0,_0x46a30a['y']=_0x3b6e96[_0x597f04(0x220,0x231)];const _0x44bec2={};_0x44bec2['x']=_0x3b6e96['clientWidth'],_0x44bec2['y']=0x0;const _0xb00f2b={};_0xb00f2b['x']=_0x3b6e96[_0x597f04(0x2ba,0x303)];function _0x47534c(_0x53de00,_0xe6ea42){return _0x560305(_0xe6ea42-0x6b,_0x53de00);}_0xb00f2b['y']=_0x3b6e96[_0x47534c(0x584,0x5bd)];const _0x240795=[_0x228ec0,_0x46a30a,_0x44bec2,_0xb00f2b];let _0x2fbb5e=0xb4,_0x3b3d4a=-0xb4,_0xf26c84=0x5a,_0x540063=-0x5a,_0x5ef309=![];for(const _0x2241d6 of _0x240795){const _0x165ffc=_0x88aca5[_0x597f04(0x2ed,0x277)][_0x597f04(0x284,0x2cb)](new Cesium$1[(_0x47534c(0x5dd,0x5b6))](_0x2241d6['x'],_0x2241d6['y']),_0x88aca5[_0x597f04(0x21e,0x275)]['ellipsoid']);if(!_0x165ffc){_0x5ef309=!![];break;}const _0x327cd0=_0x88aca5['globe'][_0x597f04(0x2c2,0x28a)]['cartesianToCartographic'](_0x165ffc),_0x4fead6=Cesium$1[_0x47534c(0x60b,0x5c2)][_0x47534c(0x65e,0x65c)](_0x327cd0[_0x47534c(0x62b,0x648)]),_0x57555e=Cesium$1[_0x597f04(0x225,0x1db)]['toDegrees'](_0x327cd0[_0x47534c(0x5f1,0x5b9)]);_0x2fbb5e=Math[_0x47534c(0x659,0x608)](_0x2fbb5e,_0x4fead6),_0x3b3d4a=Math[_0x597f04(0x207,0x1ba)](_0x3b3d4a,_0x4fead6),_0xf26c84=Math['min'](_0xf26c84,_0x57555e),_0x540063=Math[_0x597f04(0x207,0x21d)](_0x540063,_0x57555e);}if(!_0x5ef309){const _0x515665=new Cesium$1[(_0x597f04(0x219,0x278))](Math[_0x597f04(0x207,0x1a4)](this['windData']['bounds']['west'],_0x2fbb5e),Math['min'](this[_0x47534c(0x5e5,0x623)][_0x597f04(0x2c4,0x2ff)][_0x47534c(0x57a,0x5e9)],_0x3b3d4a)),_0x2cc2b4=new Cesium$1[(_0x47534c(0x60d,0x5b6))](Math['max'](this[_0x47534c(0x677,0x623)]['bounds'][_0x47534c(0x550,0x5c7)],_0xf26c84),Math['min'](this[_0x597f04(0x286,0x227)][_0x47534c(0x5eb,0x661)]['north'],_0x540063)),_0x34f2a1=(_0x515665['y']-_0x515665['x'])*0.05,_0x3326e4=(_0x2cc2b4['y']-_0x2cc2b4['x'])*0.05;_0x515665['x']=Math[_0x47534c(0x5fa,0x5a4)](this['windData'][_0x47534c(0x617,0x661)]['west'],_0x515665['x']-_0x34f2a1),_0x515665['y']=Math['min'](this['windData']['bounds'][_0x597f04(0x24c,0x222)],_0x515665['y']+_0x34f2a1),_0x2cc2b4['x']=Math['max'](this['windData'][_0x597f04(0x2c4,0x309)][_0x597f04(0x22a,0x1ba)],_0x2cc2b4['x']-_0x3326e4),_0x2cc2b4['y']=Math['min'](this[_0x47534c(0x5e6,0x623)]['bounds']['north'],_0x2cc2b4['y']+_0x3326e4),this['viewerParameters'][_0x597f04(0x252,0x21e)]=_0x515665,this['viewerParameters']['latRange']=_0x2cc2b4;const _0x59a6d0=this['windData'][_0x597f04(0x2c4,0x2d2)][_0x47534c(0x626,0x5e9)]-this['windData']['bounds']['west'],_0x26d2fc=this[_0x597f04(0x286,0x24d)]['bounds']['north']-this['windData']['bounds'][_0x47534c(0x5d4,0x5c7)],_0x5fcbd7=(_0x515665['y']-_0x515665['x'])/_0x59a6d0,_0x10711a=(_0x2cc2b4['y']-_0x2cc2b4['x'])/_0x26d2fc,_0x4b83c7=Math[_0x597f04(0x26b,0x2a9)](_0x5fcbd7,_0x10711a),_0x1fa806=0x3e8*_0x4b83c7;_0x1fa806>0x0&&(this['viewerParameters'][_0x47534c(0x677,0x66e)]=Math[_0x597f04(0x207,0x1ff)](0x0,Math['min'](0x3e8,_0x1fa806)));}this['viewerParameters'][_0x597f04(0x272,0x26b)]=this[_0x47534c(0x63f,0x633)]['mode'];function _0x597f04(_0x249d0d,_0x4b1a0a){return _0x413ef9(_0x249d0d-0x20e,_0x4b1a0a);}(_0x1fb740=this[_0x597f04(0x25b,0x24f)])===null||_0x1fb740===void 0x0||_0x1fb740['applyViewerParameters'](this[_0x597f04(0x20c,0x223)]);}[_0x413ef9(0x7d,-0x8)](_0x3c623b,_0x5d1b65){const {bounds:_0x176005,width:_0xdc0db3,height:_0x3633d5,u:_0x568f5b,v:_0x3ee57f,speed:_0x12c376}=this['windData'],{flipY:_0x2c615d}=this['options'];if(_0x3c623b<_0x176005['west']||_0x3c623b>_0x176005['east']||_0x5d1b65<_0x176005[_0x39f25d(0x527,0x595)]||_0x5d1b65>_0x176005['north'])return null;const _0x1ae9c9=(_0x3c623b-_0x176005['west'])/(_0x176005['east']-_0x176005['west'])*(_0xdc0db3-0x1);let _0x4ab44f=(_0x5d1b65-_0x176005[_0x357018(0x1c2,0x1e9)])/(_0x176005['north']-_0x176005[_0x357018(0x195,0x1e9)])*(_0x3633d5-0x1);_0x2c615d&&(_0x4ab44f=_0x3633d5-0x1-_0x4ab44f);function _0x357018(_0x2b4944,_0x2b5775){return _0x413ef9(_0x2b5775-0x1cd,_0x2b4944);}const _0x2793b1=Math['floor'](_0x1ae9c9),_0x2446cb=Math['floor'](_0x4ab44f),_0x7729cf=Math['floor'](_0x1ae9c9),_0x419a48=Math[_0x39f25d(0x61f,0x5d6)](_0x7729cf+0x1,_0xdc0db3-0x1),_0x1869db=Math['floor'](_0x4ab44f),_0x26ffa9=Math['min'](_0x1869db+0x1,_0x3633d5-0x1),_0x2480f3=_0x1ae9c9-_0x7729cf,_0x588dbd=_0x4ab44f-_0x1869db,_0x2818fe=_0x2446cb*_0xdc0db3+_0x2793b1,_0x2017a3=_0x1869db*_0xdc0db3+_0x7729cf,_0x5ab77b=_0x1869db*_0xdc0db3+_0x419a48,_0x230186=_0x26ffa9*_0xdc0db3+_0x7729cf,_0x35c39c=_0x26ffa9*_0xdc0db3+_0x419a48;function _0x39f25d(_0x2fd41b,_0xd18953){return _0x413ef9(_0xd18953-0x579,_0x2fd41b);}const _0x35b0d5=_0x568f5b['array'][_0x2017a3],_0x508d8b=_0x568f5b[_0x39f25d(0x5a5,0x565)][_0x5ab77b],_0x48320b=_0x568f5b['array'][_0x230186],_0x4c2558=_0x568f5b[_0x39f25d(0x5ba,0x565)][_0x35c39c],_0x339f67=(0x1-_0x2480f3)*(0x1-_0x588dbd)*_0x35b0d5+_0x2480f3*(0x1-_0x588dbd)*_0x508d8b+(0x1-_0x2480f3)*_0x588dbd*_0x48320b+_0x2480f3*_0x588dbd*_0x4c2558,_0x1fc92d=_0x3ee57f[_0x39f25d(0x59d,0x565)][_0x2017a3],_0x3f3c55=_0x3ee57f[_0x357018(0x1ba,0x1b9)][_0x5ab77b],_0x3c696a=_0x3ee57f[_0x357018(0x16d,0x1b9)][_0x230186],_0x3b20df=_0x3ee57f[_0x39f25d(0x570,0x565)][_0x35c39c],_0x14b139=(0x1-_0x2480f3)*(0x1-_0x588dbd)*_0x1fc92d+_0x2480f3*(0x1-_0x588dbd)*_0x3f3c55+(0x1-_0x2480f3)*_0x588dbd*_0x3c696a+_0x2480f3*_0x588dbd*_0x3b20df,_0x2b6880=Math['sqrt'](_0x339f67*_0x339f67+_0x14b139*_0x14b139),_0x2c3be5={};_0x2c3be5['u']=_0x568f5b['array'][_0x2818fe],_0x2c3be5['v']=_0x3ee57f[_0x39f25d(0x59e,0x565)][_0x2818fe],_0x2c3be5[_0x357018(0x1c8,0x23b)]=_0x12c376['array'][_0x2818fe];const _0x11088c={};_0x11088c['u']=_0x339f67,_0x11088c['v']=_0x14b139,_0x11088c['speed']=_0x2b6880;const _0x2e4711={};return _0x2e4711[_0x357018(0x20e,0x1c2)]=_0x2c3be5,_0x2e4711['interpolated']=_0x11088c,_0x2e4711;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this['tlng']=null;function _0x366cfd(_0x14a79e,_0x44b14a){return _0x413ef9(_0x14a79e-0x478,_0x44b14a);}this['tlat']=null,this['age']=null,this[_0x366cfd(0x4e6,0x50f)]=null;}[_0x560305(0x532,0x4f5)](){for(const _0x338799 in this){delete this[_0x338799];}}}class CanvasWindField{constructor(_0x66c227){this['setOptions'](_0x66c227);}get['speedRate'](){return this['_speedRate'];}set[_0x560305(0x562,0x5d3)](_0x1b75b4){this['_speedRate']=(0x64-(_0x1b75b4>0x63?0x63:_0x1b75b4))*0x64;function _0x13ba6c(_0x3d628f,_0x4b936a){return _0x560305(_0x4b936a- -0x245,_0x3d628f);}function _0x5010d5(_0x164dbc,_0x279eda){return _0x560305(_0x164dbc- -0xdb,_0x279eda);}this['_calc_speedRate']=[(this[_0x5010d5(0x543,0x57e)]-this[_0x5010d5(0x4f1,0x510)])/this[_0x5010d5(0x522,0x58e)],(this['ymax']-this[_0x5010d5(0x4c0,0x4d6)])/this[_0x5010d5(0x522,0x58b)]];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0xfa9bad){this['_maxAge']=_0xfa9bad;}['setOptions'](_0x543052){this[_0x5a2f64(0x567,0x54c)]=_0x543052,this['maxAge']=_0x543052[_0x538190(0x31a,0x393)]||0x78;function _0x538190(_0x54f72c,_0x79f4b0){return _0x413ef9(_0x54f72c-0x301,_0x79f4b0);}this[_0x5a2f64(0x47a,0x4ef)]=_0x543052['speedRate']||0x32;function _0x5a2f64(_0x3d4cb5,_0x347ea1){return _0x560305(_0x347ea1- -0x73,_0x3d4cb5);}this[_0x538190(0x32a,0x2d1)]=[];const _0x223563=_0x543052[_0x538190(0x3e2,0x3f6)]||0x1000;for(let _0x26c618=0x0;_0x26c618<_0x223563;_0x26c618++){const _0x1c41f5=this[_0x538190(0x3ae,0x3c7)](new CanvasParticle());this['particles']['push'](_0x1c41f5);}}['setDate'](_0x37d0ae){this[_0x3ef1af(0x54d,0x547)]=_0x37d0ae['rows'],this['cols']=_0x37d0ae[_0x3ef1af(0x4f7,0x492)],this[_0x5d5631(0xfb,0x128)]=_0x37d0ae[_0x5d5631(0xeb,0x128)],this[_0x3ef1af(0x5a0,0x5d6)]=_0x37d0ae['xmax'],this['ymin']=_0x37d0ae[_0x3ef1af(0x51d,0x4ba)],this['ymax']=_0x37d0ae['ymax'],this['grid']=[];const _0x21abb6=_0x37d0ae[_0x5d5631(0x15b,0xe3)];function _0x5d5631(_0x584837,_0x440ab9){return _0x560305(_0x440ab9- -0x4a4,_0x584837);}const _0x2b6ad2=_0x37d0ae['vdata'];let _0x1561a7=![];_0x21abb6['length']===this['rows']&&_0x21abb6[0x0]['length']===this['cols']&&(_0x1561a7=!![]);let _0x16d9a2=0x0,_0x7dda2e=null,_0x30f3d3=null;function _0x3ef1af(_0xc20f60,_0x286f50){return _0x413ef9(_0xc20f60-0x4c2,_0x286f50);}for(let _0xdf1e5=0x0;_0xdf1e5<this[_0x5d5631(0xcb,0x127)];_0xdf1e5++){_0x7dda2e=[];for(let _0x487e58=0x0;_0x487e58<this['cols'];_0x487e58++,_0x16d9a2++){_0x1561a7?_0x30f3d3=this[_0x3ef1af(0x59c,0x5ad)](_0x21abb6[_0xdf1e5][_0x487e58],_0x2b6ad2[_0xdf1e5][_0x487e58]):_0x30f3d3=this['_calcUV'](_0x21abb6[_0x16d9a2],_0x2b6ad2[_0x16d9a2]),_0x7dda2e[_0x3ef1af(0x4b0,0x491)](_0x30f3d3);}this['grid'][_0x5d5631(0x9b,0x8a)](_0x7dda2e);}!this[_0x5d5631(0xeb,0x11b)][_0x5d5631(0x121,0x11f)]&&this['grid']['reverse']();}['clear'](){function _0x3e7b56(_0x46ad05,_0x15dda0){return _0x413ef9(_0x46ad05- -0x175,_0x15dda0);}delete this['rows'];function _0x108e1c(_0x31d2dd,_0x4ab7bc){return _0x413ef9(_0x4ab7bc-0x504,_0x31d2dd);}delete this['cols'],delete this[_0x3e7b56(-0xe9,-0x14d)],delete this[_0x3e7b56(-0x97,-0x1c)],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this['particles'];}['toGridXY'](_0x3ebc9b,_0x54691b){function _0x170714(_0x55f228,_0x4c3907){return _0x560305(_0x4c3907- -0x4fc,_0x55f228);}function _0x272a38(_0x3f8ea8,_0x4b8f80){return _0x560305(_0x3f8ea8- -0x1a9,_0x4b8f80);}const _0x45c7d3=(_0x3ebc9b-this['xmin'])/(this['xmax']-this[_0x170714(0x100,0xd0)])*(this['cols']-0x1),_0x488bd9=(this[_0x272a38(0x457,0x442)]-_0x54691b)/(this[_0x170714(0xdc,0x104)]-this['ymin'])*(this['rows']-0x1);return[_0x45c7d3,_0x488bd9];}['getUVByXY'](_0x39a525,_0x1c52e2){if(_0x39a525<0x0||_0x39a525>=this['cols']||_0x1c52e2>=this[_0xfb4e91(0x5c8,0x622)])return[0x0,0x0,0x0];const _0xb234c7=Math[_0xfb4e91(0x6a2,0x655)](_0x39a525),_0x833efe=Math[_0x1f46bf(0xce,0x79)](_0x1c52e2);if(_0xb234c7===_0x39a525&&_0x833efe===_0x1c52e2)return this['grid'][_0x1c52e2][_0x39a525];function _0xfb4e91(_0x553083,_0x16ceb9){return _0x560305(_0x16ceb9-0x57,_0x553083);}const _0x45fbba=_0xb234c7+0x1;function _0x1f46bf(_0x20bdfa,_0x54cebb){return _0x560305(_0x54cebb- -0x585,_0x20bdfa);}const _0x2d71d2=_0x833efe+0x1,_0x806020=this[_0x1f46bf(-0x98,-0x67)](_0xb234c7,_0x833efe),_0x5c315c=this['getUVByXY'](_0x45fbba,_0x833efe),_0x23671b=this['getUVByXY'](_0xb234c7,_0x2d71d2),_0x27e017=this[_0x1f46bf(-0x3c,-0x67)](_0x45fbba,_0x2d71d2);let _0x56d2da=null;try{_0x56d2da=this['_bilinearInterpolation'](_0x39a525-_0xb234c7,_0x1c52e2-_0x833efe,_0x806020,_0x5c315c,_0x23671b,_0x27e017);}catch(_0x1ba588){console[_0xfb4e91(0x5c8,0x5bf)](_0x39a525,_0x1c52e2);}return _0x56d2da;}[_0x560305(0x57b,0x57e)](_0x36ece1,_0x41db7b,_0x380b53,_0x34acf3,_0x25a9b4,_0xb040d1){const _0x23c213=0x1-_0x36ece1,_0x381f3b=0x1-_0x41db7b,_0x12d7a3=_0x23c213*_0x381f3b,_0x57340a=_0x36ece1*_0x381f3b,_0x252c32=_0x23c213*_0x41db7b,_0x2e7c30=_0x36ece1*_0x41db7b;function _0x589f51(_0x3e4be8,_0x56cab3){return _0x560305(_0x3e4be8- -0x5fc,_0x56cab3);}const _0x286f2f=_0x380b53[0x0]*_0x12d7a3+_0x34acf3[0x0]*_0x57340a+_0x25a9b4[0x0]*_0x252c32+_0xb040d1[0x0]*_0x2e7c30,_0xe15838=_0x380b53[0x1]*_0x12d7a3+_0x34acf3[0x1]*_0x57340a+_0x25a9b4[0x1]*_0x252c32+_0xb040d1[0x1]*_0x2e7c30;return this[_0x589f51(0x1e,0x1f)](_0x286f2f,_0xe15838);}[_0x413ef9(0xda,0x139)](_0xd77c6f,_0xa931f1){function _0x345143(_0x4021fd,_0x49bf72){return _0x413ef9(_0x4021fd-0x7d,_0x49bf72);}return[+_0xd77c6f,+_0xa931f1,Math[_0x345143(0xa2,0xea)](_0xd77c6f*_0xd77c6f+_0xa931f1*_0xa931f1)];}[_0x560305(0x5ea,0x63d)](_0x5b374e,_0x3a0c57){function _0x2e9aa8(_0x53f445,_0x235591){return _0x560305(_0x235591- -0x559,_0x53f445);}if(!this['isInExtent'](_0x5b374e,_0x3a0c57))return null;const _0x53267e=this[_0x2e9aa8(0x62,0xc2)](_0x5b374e,_0x3a0c57),_0x3ec863=this['getUVByXY'](_0x53267e[0x0],_0x53267e[0x1]);return _0x3ec863;}['isInExtent'](_0x205406,_0x4164e6){function _0x3d55c6(_0x3d9c21,_0x571494){return _0x560305(_0x571494- -0x4a5,_0x3d9c21);}return _0x205406>=this['xmin']&&_0x205406<=this[_0x3d55c6(0xfe,0x179)]&&_0x4164e6>=this['ymin']&&_0x4164e6<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x2441b8=fRandomByfloat(this['xmin'],this['xmax']),_0x1135c8=fRandomByfloat(this[_0x47c45a(0x58c,0x529)],this['ymax']),_0xe9ef32={};_0xe9ef32['lat']=_0x1135c8;function _0x47c45a(_0x545a07,_0xf27ddc){return _0x413ef9(_0x545a07-0x531,_0xf27ddc);}return _0xe9ef32['lng']=_0x2441b8,_0xe9ef32;}['getParticles'](){function _0x55f6b7(_0x123f8c,_0x123761){return _0x413ef9(_0x123761-0x1a1,_0x123f8c);}let _0x8c8af0,_0x34b283,_0x2198b9;for(let _0x35fd72=0x0,_0x52412b=this['particles']['length'];_0x35fd72<_0x52412b;_0x35fd72++){let _0x405082=this['particles'][_0x35fd72];_0x405082['age']<=0x0&&(_0x405082=this[_0x55f6b7(0x29f,0x24e)](_0x405082));if(_0x405082['age']>0x0){const _0x2550f8=_0x405082['tlng'],_0x32b220=_0x405082[_0x50d04a(-0x45,-0x3e)];_0x2198b9=this[_0x50d04a(0x83,0x83)](_0x2550f8,_0x32b220),_0x2198b9?(_0x8c8af0=_0x2550f8+this[_0x50d04a(0xd1,0x59)][0x0]*_0x2198b9[0x0],_0x34b283=_0x32b220+this[_0x50d04a(0x40,0x59)][0x1]*_0x2198b9[0x1],_0x405082[_0x50d04a(0x3e,-0x1b)]=_0x2550f8,_0x405082['lat']=_0x32b220,_0x405082['tlng']=_0x8c8af0,_0x405082['tlat']=_0x34b283,_0x405082['speed']=_0x2198b9[0x2],_0x405082['age']--):_0x405082['age']=0x0;}}function _0x50d04a(_0x19eee4,_0x65a3e7){return _0x413ef9(_0x65a3e7- -0x27,_0x19eee4);}return this['particles'];}['_randomParticle'](_0x5eb44a){let _0x25ac4c,_0x140e02;for(let _0x387080=0x0;_0x387080<0x1e;_0x387080++){_0x25ac4c=this['getRandomLatLng'](),_0x140e02=this['getUVByPoint'](_0x25ac4c['lng'],_0x25ac4c[_0x4c82d3(0x4c,0x30)]);if(_0x140e02&&_0x140e02[0x2]>0x0)break;}if(!_0x140e02)return _0x5eb44a;const _0x433afb=_0x25ac4c['lng']+this[_0x4c82d3(0x4b,0x3f)][0x0]*_0x140e02[0x0],_0x2200de=_0x25ac4c[_0x1c2daa(0x203,0x261)]+this[_0x1c2daa(0x1f0,0x260)][0x1]*_0x140e02[0x1];_0x5eb44a[_0x4c82d3(-0x29,0x17)]=_0x25ac4c[_0x4c82d3(-0x29,-0x1)],_0x5eb44a[_0x4c82d3(0x4c,0x51)]=_0x25ac4c['lat'],_0x5eb44a['tlng']=_0x433afb,_0x5eb44a['tlat']=_0x2200de,_0x5eb44a['age']=Math[_0x1c2daa(0x1fa,0x216)](0xa+Math[_0x1c2daa(0x1bb,0x22e)]()*this['maxAge']),_0x5eb44a['speed']=_0x140e02[0x2];function _0x4c82d3(_0x46001f,_0x378588){return _0x413ef9(_0x46001f- -0x35,_0x378588);}function _0x1c2daa(_0x35eee6,_0x18e658){return _0x560305(_0x18e658- -0x360,_0x35eee6);}return _0x5eb44a;}['destroy'](){for(const _0x12a1e5 in this){delete this[_0x12a1e5];}}}function _0x5479(){const _0x4023ee=['22868217mWmuVG','getUVByXY','12ZTvflp','computing','domain','tlng','owner','_showHook','isDynamic','useViewerBounds','toWindowCoordinates','previousParticlesPosition','tlat','createComputingPrimitives','forEach','array','call','push','updateWindData','getSpeed','magnificationFilter','destroy','segments','atan2','original','preExecute','layer','calculateSpeed','max','hidden','resize','_map','getCalculateSpeedShader','viewerParameters','#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','isPointVisible','2676848oBEODM','particlesTextureSize','_removedHook','colorTable','BaseLayer','currentParticlesPosition','setData','getPrimitives','mouseMove','create','Cartesian2','lng','zIndex','latitude','mouseHidden','globe','persists','clientHeight','mode','onColorTableChange','values','visible','Math','lastFramesPerSecond','maxAge','initFrameRate','redraw','south','requestRender','mouseUp','bind','CLAMP_TO_EDGE','stringify','speedRate','alt','all','sqrt','modelMatrix','EventType','log','particles','data','3.11.1','vertexArray','quietPeriod','context','primitives','addEventListener','green','lineWidth','frameRate','0px','cols','round','colors','RGBA','fixedHeight','commandList','_bilinearInterpolation','bindEvent','keys','east','rawRenderState','canvas','canvasWind','21ptdRiv','update','lonRange','strokeStyle','requestAnimationFrame','udata','drawingBufferHeight','moveTo','outputTexture','pointer-events','_onMouseUpEvent','particleSystem','random','windTextures','lineLength','destroyParticlesTextures','uniformMap','reCreateWindTextures','Draw','stroke','abs','Unknown\x20command\x20type','top','_animateFrame','postMessage','ymin','LINEAR','min','SceneMode','primitiveType','blending','rendering','blendEquation','show','sceneMode','PointTrans','fillRect','getDirection','clearFramebuffers','isDestroyed','framebuffers','geometry','_tomap','createRenderingFramebuffers','speed','talt','mouse_move','globalAlpha','canvasContext','OPAQUE','windField','register','pickEllipsoid','depthTest','windData','UNSIGNED_BYTE','3442077nDgvjU','getPostProcessingPositionShader','_colorRamp','getDataAtLonLat','style','options','_calc_speedRate','lat','postProcessingPosition','flipY','removeEventListener','#ffffff','shaderProgram','getSegmentDrawFragmentShader','scene','RED','viewport','rows','xmin','3693464BHEbcv','NEAREST','isDestroy','length','autoClear','setOptions','processWindData','canvasWidth','initWorker','container','type','enabled','mouse_down','add','componentsPerAttribute','createWindTextures','longitude','slice','worker','pointerEvents','max\x20is\x20undefined,\x20calculate\x20max','Cesium','percentageChanged','dropRate','min\x20is\x20undefined,\x20calculate\x20min','logInfo','createRenderingTextures','2885180mFOUnA','createCommand','getUVByPoint','dynamic','clientWidth','_randomParticle','vdata','createParticlesTextures','FLOAT','toDegrees','FUNC_ADD','updateViewerParameters','ellipsoid','1388818QPHRrg','bounds','init','bufferUsage','4612572aZtdRi','clear','CanvasWindLayer','warn','_speedRate','floor','changeOptions','ymax','pixelDatatype','visibility','pixelSize','sources','rgb(206,255,255)','pow','north','commandToExecute','particlesTextures','width','_updateIng2','particlesSpeed','createColorTableTexture','canvasHeight','now','getSegmentDrawVertexShader','SCENE3D','off','setDate','WindUtil','WindLayer','clearCommand','attributeLocations','frameRateMonitor','_onMouseMoveEvent','_calcUV','toGridXY','_addedHook','execute','xmax','camera','vertexShaderSource','particlesNumber','commandType','unbindEvent','number','updateOptions','_pointerEvents','cancelAnimationFrame','frameRateAdjustment'];_0x5479=function(){return _0x4023ee;};return _0x5479();}function fRandomByfloat(_0x133228,_0x3289c5){function _0x4c0fcd(_0x304caf,_0x29487a){return _0x560305(_0x29487a- -0x46c,_0x304caf);}return _0x133228+Math[_0x4c0fcd(0x18c,0x122)]()*(_0x3289c5-_0x133228);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x560305(0x537,0x5a4)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x43d4={}){super(_0x43d4);function _0xca0ffc(_0x5d726a,_0x403a6b){return _0x560305(_0x403a6b- -0x4b1,_0x5d726a);}this['_setOptionsHook'](_0x43d4),this['canvas']=null,_0x43d4['colors']&&_0x43d4['steps']&&(this[_0xca0ffc(0x10d,0x10b)]=new mars3d__namespace['ColorRamp'](_0x43d4));}['_setOptionsHook'](_0x5c0733,_0x23a946){this['frameTime']=0x3e8/(_0x5c0733['frameRate']||0xa);function _0x18f739(_0x2e555c,_0x567f21){return _0x413ef9(_0x567f21-0x5b6,_0x2e555c);}this['_pointerEvents']=this['options']['pointerEvents']??![];function _0x13f483(_0x591379,_0x64ad86){return _0x560305(_0x591379- -0x463,_0x64ad86);}this['color']=_0x5c0733['color']||_0x18f739(0x6a5,0x63b),this['lineWidth']=_0x5c0733['lineWidth']||0x1,this['fixedHeight']=_0x5c0733['fixedHeight']??0x0,this[_0x13f483(0x160,0x16d)]=_0x5c0733[_0x18f739(0x653,0x639)]??![],this['windField']&&this['windField']['setOptions'](_0x5c0733);}get['layer'](){function _0x27f648(_0x22840e,_0x2a82de){return _0x560305(_0x22840e- -0x4b,_0x2a82de);}return this[_0x27f648(0x535,0x524)];}get['canvasWidth'](){function _0x4121a6(_0x4db482,_0x34eea8){return _0x413ef9(_0x4db482-0xb9,_0x34eea8);}return this['_map']['scene'][_0x4121a6(0xf9,0x78)]['clientWidth'];}get[_0x413ef9(0xce,0x7b)](){function _0xda0c92(_0x2ffe33,_0x19e380){return _0x413ef9(_0x2ffe33-0x5bb,_0x19e380);}function _0x25c8c0(_0x1f92ad,_0x583d3e){return _0x560305(_0x583d3e- -0x2f4,_0x1f92ad);}return this['_map'][_0x25c8c0(0x34d,0x2d4)]['canvas'][_0xda0c92(0x5cd,0x614)];}get[_0x560305(0x5e0,0x57f)](){return this['_pointerEvents'];}set[_0x413ef9(0xa0,0x65)](_0x1551f9){function _0x3ea570(_0x40c86e,_0x1c93e2){return _0x413ef9(_0x40c86e-0x5c8,_0x1c93e2);}this[_0x3ea570(0x6ae,0x662)]=_0x1551f9;function _0x330649(_0x3ba127,_0x267c7b){return _0x560305(_0x267c7b- -0x593,_0x3ba127);}if(!this['canvas'])return;_0x1551f9?this['canvas'][_0x3ea570(0x646,0x631)]['pointer-events']=_0x3ea570(0x5ec,0x61c):this[_0x330649(-0x39,-0x13)]['style'][_0x3ea570(0x613,0x646)]='none';}get[_0x560305(0x621,0x5b2)](){function _0x59f13a(_0x5071b1,_0x335608){return _0x560305(_0x335608- -0x1e5,_0x5071b1);}function _0x9de6e9(_0x39124e,_0x4ea956){return _0x413ef9(_0x4ea956-0x581,_0x39124e);}return this[_0x59f13a(0x44b,0x3da)][_0x9de6e9(0x612,0x662)];}set['particlesNumber'](_0x32d1ad){this[_0x2376f6(0x35c,0x3d2)]['particlesNumber']=_0x32d1ad;function _0x2376f6(_0x4b140c,_0x4a645c){return _0x413ef9(_0x4b140c-0x2dd,_0x4a645c);}clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{function _0x21c972(_0x51cdd0,_0x1b5309){return _0x2376f6(_0x51cdd0-0x15a,_0x1b5309);}this[_0x21c972(0x452,0x412)]();},0x1f4);}get[_0x560305(0x562,0x502)](){return this['options']['speedRate'];}set['speedRate'](_0x48df2a){this['options'][_0x108a6f(0x439,0x3ca)]=_0x48df2a;function _0x108a6f(_0x4d4426,_0x205390){return _0x413ef9(_0x4d4426-0x417,_0x205390);}this['windField']&&(this['windField']['speedRate']=_0x48df2a);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x751427){this['options'][_0x3b0865(0x1f6,0x1fe)]=_0x751427;function _0x3b0865(_0x8d95d,_0x3f77a2){return _0x560305(_0x3f77a2- -0x35b,_0x8d95d);}this['windField']&&(this['windField']['maxAge']=_0x751427);}get[_0x560305(0x56a,0x5c6)](){return this['windData'];}set[_0x560305(0x56a,0x561)](_0xd0f66b){this['setData'](_0xd0f66b);}get['rectangle'](){let _0x2cc459=this['windData']['xmin'],_0x1980a=this[_0x6042df(-0xff,-0x176)][_0x6042df(-0x99,-0xc7)],_0x5810e8=this['windData']['ymin'],_0x4f907f=this['windData'][_0x6042df(-0xb7,-0x109)];_0x1980a>=0x167&&_0x2cc459===0x0&&(_0x2cc459=-0xb4,_0x1980a=0xb4);function _0x3865e2(_0x445450,_0x18cc3d){return _0x413ef9(_0x18cc3d-0x1d7,_0x445450);}_0x2cc459=Math['max'](_0x2cc459,-0xb4);function _0x6042df(_0x46e8a0,_0x42c204){return _0x560305(_0x46e8a0- -0x6b7,_0x42c204);}return _0x1980a=Math[_0x6042df(-0x11a,-0xf3)](_0x1980a,0xb4),_0x5810e8=Math['max'](_0x5810e8,-0x5a),_0x4f907f=Math[_0x6042df(-0x11a,-0xbe)](_0x4f907f,0x5a),Cesium['Rectangle']['fromDegrees'](_0x2cc459,_0x5810e8,_0x1980a,_0x4f907f);}['_showHook'](_0x3d42b7){function _0x2d5526(_0x3a3a44,_0x65d7b9){return _0x413ef9(_0x65d7b9-0x30b,_0x3a3a44);}_0x3d42b7?this['_addedHook']():(this['windData']&&(this['options']['data']=this['windData']),this[_0x2d5526(0x38f,0x30e)]());}['_mountedHook'](){function _0x416174(_0x3b14e4,_0x3ce4b6){return _0x560305(_0x3b14e4- -0x40e,_0x3ce4b6);}this['options']['worker']?this[_0x416174(0x1c7,0x201)]():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){function _0xd83f18(_0xee2517,_0x311ce1){return _0x560305(_0xee2517- -0x3b8,_0x311ce1);}this[_0xd83f18(0x1c8,0x1dc)]=this['_createCanvas']();const _0x47106d={};_0x47106d['willReadFrequently']=!![];function _0x1ed717(_0x261339,_0x2b79ab){return _0x413ef9(_0x2b79ab-0x54a,_0x261339);}this[_0x1ed717(0x59c,0x5bc)]=this['canvas']['getContext']('2d',_0x47106d),this['bindEvent'](),this['options']['data']&&this['setData'](this[_0x1ed717(0x5e4,0x5c9)][_0x1ed717(0x5df,0x574)]);}[_0x560305(0x543,0x4e2)](){function _0x537ac2(_0x53abf2,_0x71685f){return _0x413ef9(_0x71685f-0x55a,_0x53abf2);}this[_0x184e0d(0x36f,0x2ee)]();function _0x184e0d(_0x4ab290,_0x5a05f8){return _0x413ef9(_0x4ab290-0x2b5,_0x5a05f8);}this['unbindEvent'](),this[_0x184e0d(0x2f5,0x2d2)]&&(this['_map'][_0x537ac2(0x5f0,0x5f0)]['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x204920=mars3d__namespace['DomUtil'][_0x472f8a(0x53e,0x536)](_0x472f8a(0x5d2,0x56c),'mars3d-canvasWind',this['_map'][_0x38052b(0x4b0,0x469)]);_0x204920[_0x38052b(0x4a5,0x451)]['position']='absolute';function _0x472f8a(_0x4a8b2c,_0x32a980){return _0x560305(_0x32a980- -0x14,_0x4a8b2c);}_0x204920['style'][_0x472f8a(0x556,0x584)]='0px',_0x204920[_0x38052b(0x444,0x451)]['left']=_0x38052b(0x387,0x407),_0x204920['style']['width']=this['_map'][_0x472f8a(0x585,0x5b4)]['canvas'][_0x472f8a(0x5e7,0x5d8)]+'px',_0x204920[_0x38052b(0x46b,0x451)]['height']=this[_0x472f8a(0x570,0x528)]['scene']['canvas'][_0x38052b(0x452,0x3e5)]+'px';function _0x38052b(_0x57d36d,_0x1dc035){return _0x413ef9(_0x1dc035-0x3d3,_0x57d36d);}return _0x204920[_0x38052b(0x4d6,0x451)]['pointerEvents']=this['_pointerEvents']?'auto':'none',_0x204920[_0x38052b(0x3de,0x451)]['zIndex']=this['options'][_0x472f8a(0x4c1,0x539)]??0x9,_0x204920['width']=this['_map']['scene']['canvas'][_0x38052b(0x4dc,0x47f)],_0x204920['height']=this[_0x472f8a(0x4d9,0x528)][_0x38052b(0x48e,0x45b)][_0x472f8a(0x529,0x56c)]['clientHeight'],_0x204920;}['resize'](){function _0x325035(_0x8ce61b,_0x405ca7){return _0x560305(_0x8ce61b- -0x3a7,_0x405ca7);}function _0x2512e3(_0x152072,_0x41589e){return _0x560305(_0x41589e- -0xa4,_0x152072);}this[_0x2512e3(0x4aa,0x4dc)]&&(this[_0x2512e3(0x486,0x4dc)]['style'][_0x2512e3(0x59d,0x566)]=this[_0x2512e3(0x4b2,0x498)][_0x325035(0x221,0x1b4)][_0x325035(0x1d9,0x174)]['clientWidth']+'px',this['canvas']['style']['height']=this[_0x325035(0x195,0x13b)][_0x2512e3(0x556,0x524)][_0x2512e3(0x4ec,0x4dc)]['clientHeight']+'px',this[_0x2512e3(0x4d3,0x4dc)]['width']=this['_map'][_0x325035(0x221,0x1b8)][_0x325035(0x1d9,0x1fa)][_0x325035(0x245,0x1e5)],this['canvas']['height']=this[_0x2512e3(0x4ee,0x498)][_0x2512e3(0x52c,0x524)]['canvas']['clientHeight']);}[_0x560305(0x57c,0x4f9)](){const _0x2edfad=this;let _0x452d8e=Date['now']();(function _0x4243da(){if(_0x2edfad[_0x16e346(0x28c,0x2fc)])return;function _0x16e346(_0xd296df,_0xc63233){return _0x100c(_0xc63233-0x67,_0xd296df);}function _0x30ecfb(_0x196fd2,_0x1106fa){return _0x100c(_0x196fd2- -0x5e,_0x1106fa);}_0x2edfad['_animateFrame']=window[_0x16e346(0x254,0x2b3)](_0x4243da);if(_0x2edfad[_0x16e346(0x325,0x2d0)]&&_0x2edfad[_0x16e346(0x2e0,0x2e1)]){const _0xcc5c28=Date[_0x16e346(0x372,0x33c)](),_0x8dc97a=_0xcc5c28-_0x452d8e;_0x8dc97a>_0x2edfad['frameTime']&&(_0x452d8e=_0xcc5c28-_0x8dc97a%_0x2edfad['frameTime'],_0x2edfad['update']());}}(),window[_0x4f5d42(0x1b5,0x187)]('resize',this['resize']['bind'](this),![]));function _0x4f5d42(_0xa192cd,_0x187a08){return _0x413ef9(_0x187a08-0x157,_0xa192cd);}function _0x420053(_0x4a007e,_0x5198e6){return _0x560305(_0x5198e6- -0x46d,_0x4a007e);}this[_0x4f5d42(0x1e1,0x1f0)]=![],this[_0x4f5d42(0x1ee,0x1c7)]=![],this[_0x4f5d42(0x199,0x1d6)][_0x4f5d42(0x16a,0x166)]&&(this['_map']['on'](mars3d__namespace[_0x4f5d42(0x12e,0x17e)]['wheel'],this['_onMapWhellEvent'],this),this[_0x420053(0x78,0xcf)]['on'](mars3d__namespace[_0x420053(0x145,0xfa)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x420053(0x79,0xfa)][_0x420053(0x9d,0xf1)],this[_0x420053(0x162,0x11f)],this));}[_0x560305(0x623,0x615)](){function _0x51e495(_0x1151ea,_0x1c2aeb){return _0x560305(_0x1c2aeb- -0x66c,_0x1151ea);}window[_0x12c240(0x119,0x19d)](this['_animateFrame']);function _0x12c240(_0x3edaf4,_0x2408b9){return _0x560305(_0x3edaf4- -0x50e,_0x2408b9);}delete this[_0x51e495(-0x84,-0xd3)],window['removeEventListener'](_0x51e495(-0x105,-0x131),this['resize']),this['options'][_0x51e495(-0xc0,-0x11d)]&&(this['_map']['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x12c240(0x2e,0x17)][_0x12c240(0x104,0x182)](mars3d__namespace[_0x51e495(-0x172,-0x105)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x12c240(0x50,0xbe)],this['_onMouseUpEvent'],this),this[_0x51e495(-0x184,-0x130)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x48356d){function _0x43f846(_0x4cc849,_0x1af27d){return _0x413ef9(_0x4cc849-0x532,_0x1af27d);}function _0x14155e(_0x3d2147,_0x3df612){return _0x413ef9(_0x3d2147-0x3ca,_0x3df612);}clearTimeout(this['refreshTimer']);if(!this[_0x14155e(0x42d,0x430)]||!this['canvas'])return;this['canvas'][_0x43f846(0x5b0,0x59c)]['visibility']=_0x14155e(0x3c4,0x3ce),this['refreshTimer']=setTimeout(()=>{function _0x236b8a(_0x27e5c9,_0x39a8f5){return _0x14155e(_0x39a8f5- -0x3e9,_0x27e5c9);}if(!this['show'])return;this['redraw'](),this['canvas']['style']['visibility']=_0x236b8a(0x5f,-0x9);},0xc8);}['_onMouseDownEvent'](_0x32c2e6){function _0x1c5632(_0xdc4651,_0x583010){return _0x560305(_0xdc4651- -0x3a2,_0x583010);}this[_0x255308(0x167,0x174)]=!![];function _0x255308(_0xd046d3,_0x2f0052){return _0x560305(_0xd046d3- -0x472,_0x2f0052);}this[_0x1c5632(0x19a,0x19d)]['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x255308(0x1a7,0x158)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this[_0x1c5632(0x277,0x212)],this);}[_0x560305(0x619,0x5b5)](_0x59ab41){function _0x1d03d6(_0x16f20d,_0x11e167){return _0x413ef9(_0x11e167- -0xb0,_0x16f20d);}function _0x301ff8(_0x147f0a,_0x54c17a){return _0x413ef9(_0x147f0a-0x114,_0x54c17a);}if(!this['show']||!this['canvas'])return;this[_0x1d03d6(-0x52,-0x17)]&&(this['canvas']['style'][_0x301ff8(0x1d6,0x15b)]='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x4709d4){if(!this[_0x93e544(-0x121,-0xd4)]||!this['canvas'])return;this['_map'][_0x93e544(-0xb2,-0xd6)](mars3d__namespace['EventType'][_0x93e544(-0x17b,-0x11c)],this[_0x93e544(-0xab,-0x4f)],this);function _0x288322(_0x56d60e,_0x2879b2){return _0x560305(_0x56d60e- -0x6f9,_0x2879b2);}this['mouse_down']&&this['mouse_move']&&this[_0x93e544(-0x169,-0x103)]();this[_0x93e544(-0x144,-0xdb)]['style']['visibility']='visible';function _0x93e544(_0x10e408,_0x308174){return _0x413ef9(_0x10e408- -0x184,_0x308174);}this['mouse_down']=![],this[_0x93e544(-0x114,-0x12c)]=![];}[_0x413ef9(0x7,0x26)](_0x2b3a3b){this[_0x2027e4(0x64b,0x678)](),this['windData']=_0x2b3a3b;function _0x1fc780(_0x1cc5fa,_0x3974da){return _0x560305(_0x3974da- -0x6ec,_0x1cc5fa);}this['windField'][_0x2027e4(0x6de,0x691)](_0x2b3a3b);function _0x2027e4(_0x460908,_0x33ee60){return _0x560305(_0x33ee60-0x7e,_0x460908);}this['redraw']();}['redraw'](){if(!this['show'])return;this['windField'][_0x578e34(0x586,0x543)](this[_0x4b01f7(0x455,0x48a)]);function _0x4b01f7(_0x257593,_0xaeba3d){return _0x560305(_0xaeba3d- -0x135,_0x257593);}function _0x578e34(_0x120413,_0x5c866a){return _0x560305(_0x120413- -0x4c,_0x5c866a);}this['update']();}['update'](){function _0xa816f6(_0x4913b7,_0x5ad61c){return _0x560305(_0x4913b7-0x13,_0x5ad61c);}if(this['_updateIng'])return;function _0x4bda21(_0x5315c9,_0x1f64dc){return _0x413ef9(_0x1f64dc-0x15,_0x5315c9);}this['_updateIng']=!![];if(this['worker'])this[_0xa816f6(0x5c7,0x5e2)][_0x4bda21(0x6c,0x58)]();else{const _0x13ddc3=this['windField']['getParticles']();this['_drawLines'](_0x13ddc3);}this['_updateIng']=![];}['_drawLines'](_0x504834){function _0x29082f(_0x333a89,_0x717102){return _0x560305(_0x333a89- -0x63a,_0x717102);}function _0x39b7f0(_0x11a511,_0x162579){return _0x560305(_0x11a511- -0x3ae,_0x162579);}this['_canvasParticles']=_0x504834,this['canvasContext']['globalCompositeOperation']='destination-in',this['canvasContext'][_0x39b7f0(0x1f8,0x1de)](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']='lighter',this['canvasContext'][_0x29082f(-0x89,-0x99)]=0.9;const _0xebcfd9=this['_map'][_0x39b7f0(0x21a,0x28d)]['mode']!==Cesium[_0x29082f(-0x9c,-0x41)][_0x39b7f0(0x263,0x238)],_0x1e6556=this[_0x29082f(-0x66,-0xc2)]*0.25;if(this['_colorRamp'])for(let _0x46666b=0x0,_0x351493=_0x504834['length'];_0x46666b<_0x351493;_0x46666b++){const _0x45128c=_0x504834[_0x46666b],_0xc437f6=this[_0x39b7f0(0x1fe,0x233)](_0x45128c,_0x45128c[_0x29082f(-0xee,-0x8f)],_0x45128c[_0x29082f(-0x79,-0x8c)],_0x45128c[_0x29082f(-0xd7,-0x75)]),_0x48abd7=this['_tomap'](_0x45128c,_0x45128c[_0x39b7f0(0x174,0x1d7)],_0x45128c['tlat'],_0x45128c['talt']);if(!_0xc437f6||!_0x48abd7)continue;if(_0xebcfd9&&Math['abs'](_0xc437f6[0x0]-_0x48abd7[0x0])>=_0x1e6556)continue;this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this[_0x39b7f0(0x1c4,0x195)],this[_0x39b7f0(0x204,0x20f)][_0x39b7f0(0x1d7,0x22e)]=this[_0x29082f(-0x7e,-0x76)]['getColor'](_0x45128c[_0x29082f(-0x8c,-0xfa)]),this[_0x29082f(-0x88,-0xa4)][_0x29082f(-0xb1,-0x52)](_0xc437f6[0x0],_0xc437f6[0x1]),this['canvasContext']['lineTo'](_0x48abd7[0x0],_0x48abd7[0x1]),this['canvasContext'][_0x29082f(-0xa5,-0x6c)]();}else{this[_0x29082f(-0x88,-0xf8)]['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext'][_0x39b7f0(0x1d7,0x158)]=this['color'];for(let _0x3341d9=0x0,_0x366814=_0x504834['length'];_0x3341d9<_0x366814;_0x3341d9++){const _0xc6ed61=_0x504834[_0x3341d9],_0x5efe03=this[_0x29082f(-0x8e,-0xc1)](_0xc6ed61,_0xc6ed61['lng'],_0xc6ed61['lat'],_0xc6ed61['alt']),_0x546bb1=this['_tomap'](_0xc6ed61,_0xc6ed61['tlng'],_0xc6ed61['tlat'],_0xc6ed61[_0x29082f(-0x8b,-0x1e)]);if(!_0x5efe03||!_0x546bb1)continue;if(_0xebcfd9&&Math[_0x39b7f0(0x1e8,0x218)](_0x5efe03[0x0]-_0x546bb1[0x0])>=_0x1e6556)continue;this[_0x29082f(-0x88,-0x2e)][_0x29082f(-0xb1,-0x8a)](_0x5efe03[0x0],_0x5efe03[0x1]),this['canvasContext']['lineTo'](_0x546bb1[0x0],_0x546bb1[0x1]);}this['canvasContext']['stroke']();}}['_tomap'](_0x3dbeab,_0x3accfb,_0x380782,_0x3815f1){function _0x22476a(_0x2b416c,_0x5dc046){return _0x413ef9(_0x5dc046-0x24,_0x2b416c);}const _0x30974c=Cesium['Cartesian3']['fromDegrees'](_0x3accfb,_0x380782,_0x3815f1??this[_0x22476a(0x61,0x5d)]),_0x5151=this[_0x22476a(0x1c,0x20)][_0x22476a(0x132,0xac)];if(_0x5151['mode']===Cesium[_0x4b0f3e(0x1de,0x17f)]['SCENE3D']){const _0xe185b3=new Cesium['EllipsoidalOccluder'](_0x5151['globe'][_0x22476a(0xee,0xd8)],_0x5151['camera']['positionWC']),_0x36ee33=_0xe185b3[_0x22476a(0x49,0x24)](_0x30974c);if(!_0x36ee33)return _0x3dbeab['age']=0x0,null;}const _0x5167cc=mars3d__namespace[_0x4b0f3e(0x1e5,0x193)][_0x4b0f3e(0x167,0x11f)](this['_map'][_0x4b0f3e(0x208,0x1c1)],_0x30974c);function _0x4b0f3e(_0x1b0372,_0x257970){return _0x560305(_0x1b0372- -0x3c0,_0x257970);}return _0x5167cc?[_0x5167cc['x'],_0x5167cc['y']]:null;}['clear'](){function _0x1d41df(_0x28dcc0,_0x2d62a3){return _0x560305(_0x2d62a3- -0x21f,_0x28dcc0);}function _0x28aeb4(_0x321b27,_0x2bc9e5){return _0x413ef9(_0x321b27- -0x79,_0x2bc9e5);}this[_0x28aeb4(-0x5,-0x78)]['clear'](),delete this[_0x28aeb4(-0x1,0x3b)];}['initWorker'](){this[_0x51bcd8(0x617,0x62f)]=new Worker(this[_0x51bcd8(0x5aa,0x60f)]['worker']);function _0x51bcd8(_0x1633e7,_0x1e0334){return _0x560305(_0x1e0334-0x50,_0x1633e7);}this['worker']['onmessage']=_0x1e17c0=>{this['_drawLines'](_0x1e17c0['data']['particles']);function _0x1ced0c(_0x4d023b,_0x9fefcd){return _0x1bf92c(_0x4d023b,_0x9fefcd- -0xf1);}this[_0x1ced0c(-0x13c,-0xf0)]=![];};function _0x1bf92c(_0x4dc550,_0x5911a0){return _0x560305(_0x5911a0- -0x60a,_0x4dc550);}this['windField']={'init':_0x59d62b=>{function _0x3f83c2(_0x4b7c47,_0x16e172){return _0x51bcd8(_0x16e172,_0x4b7c47- -0x2b8);}function _0x4a3aff(_0x578fe6,_0x5cdb6d){return _0x51bcd8(_0x578fe6,_0x5cdb6d- -0x5df);}const _0x493cff={};_0x493cff[_0x4a3aff(0x20,0x48)]=_0x3f83c2(0x38f,0x30c),_0x493cff['options']=_0x59d62b,this[_0x4a3aff(0xb0,0x50)]['postMessage'](_0x493cff);},'setOptions':_0x1db167=>{const _0xa5955a={};function _0x249683(_0x48bf1a,_0x1b3c6d){return _0x51bcd8(_0x1b3c6d,_0x48bf1a- -0x454);}_0xa5955a['type']=_0x2623d4(0x5c4,0x59c),_0xa5955a[_0x2623d4(0x540,0x589)]=_0x1db167;function _0x2623d4(_0x17a792,_0xf8b4fb){return _0x51bcd8(_0x17a792,_0xf8b4fb- -0x86);}this['worker']['postMessage'](_0xa5955a);},'setDate':_0x3c9d2c=>{function _0x1044cd(_0x45d24f,_0x1c40f3){return _0x51bcd8(_0x45d24f,_0x1c40f3- -0x3ac);}const _0x256edb={};_0x256edb['type']=_0x1044cd(0x26f,0x2b7);function _0x4d01cf(_0x5b423a,_0x29eef3){return _0x1bf92c(_0x5b423a,_0x29eef3- -0xa5);}_0x256edb['data']=_0x3c9d2c,this[_0x1044cd(0x2df,0x283)]['postMessage'](_0x256edb);},'update':()=>{if(this[_0x328d7c(0x43f,0x3f6)])return;this[_0x5754d2(0x406,0x410)]=!![];function _0x328d7c(_0x1c70a3,_0x12aa90){return _0x1bf92c(_0x1c70a3,_0x12aa90-0x3f5);}const _0x16f393={};function _0x5754d2(_0x29c68c,_0x31a1d3){return _0x51bcd8(_0x31a1d3,_0x29c68c- -0x255);}_0x16f393['type']='update',this['worker']['postMessage'](_0x16f393);},'clear':()=>{function _0x50c912(_0x5657a6,_0x3a6ede){return _0x1bf92c(_0x5657a6,_0x3a6ede-0x39a);}const _0x438be6={};_0x438be6['type']=_0x50c912(0x341,0x38a);function _0x4555bd(_0x500a12,_0x3c03f7){return _0x51bcd8(_0x3c03f7,_0x500a12- -0x447);}this[_0x4555bd(0x1e8,0x184)][_0x4555bd(0x1a3,0x148)](_0x438be6);}},this['windField'][_0x1bf92c(0x5,-0x13)](this['options']);}}mars3d__namespace['LayerUtil'][_0x413ef9(0x75,0xec)](_0x560305(0x581,0x5a6),CanvasWindLayer),mars3d__namespace['layer'][_0x413ef9(0xbb,0xfa)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log'][_0x413ef9(0xa6,0x72)]('mars3d-wind插件注册成功\x20\x20\x20\x20\x20版本:'+version+'\x20\x20\x20\x20编译日期:'+buildTime),mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x560305(0x615,0x663)]=WindLayer,exports[_0x560305(0x614,0x672)]=WindUtil;const _0x2d7119={};_0x2d7119['value']=!![],Object['defineProperty'](exports,'__esModule',_0x2d7119);
14
+ 'use strict';(function(_0x4db8e9,_0x622875){const _0x36bc73=_0x4db8e9();function _0x1927a2(_0x80b20e,_0xd5864e){return _0x34ed(_0xd5864e-0x296,_0x80b20e);}function _0x4ac8f3(_0x1d8c1d,_0x2bfbf7){return _0x34ed(_0x1d8c1d- -0x2bd,_0x2bfbf7);}while(!![]){try{const _0x5e9345=parseInt(_0x1927a2(0x42d,0x489))/0x1*(-parseInt(_0x1927a2(0x4e0,0x482))/0x2)+-parseInt(_0x4ac8f3(-0x69,-0x2))/0x3+parseInt(_0x4ac8f3(-0x2,-0x65))/0x4*(-parseInt(_0x1927a2(0x491,0x491))/0x5)+parseInt(_0x1927a2(0x512,0x48a))/0x6+parseInt(_0x1927a2(0x491,0x4a6))/0x7+-parseInt(_0x4ac8f3(-0x67,-0x3f))/0x8*(parseInt(_0x4ac8f3(-0x5e,-0x3d))/0x9)+parseInt(_0x4ac8f3(-0x98,-0xd6))/0xa;if(_0x5e9345===_0x622875)break;else _0x36bc73['push'](_0x36bc73['shift']());}catch(_0x4203be){_0x36bc73['push'](_0x36bc73['shift']());}}}(_0x55d3,0x74d76));function _interopNamespace(_0x2eed67){if(_0x2eed67&&_0x2eed67[_0x1b255f(0x3a2,0x35a)])return _0x2eed67;var _0x2839a3=Object['create'](null);_0x2eed67&&Object[_0x1b255f(0x30e,0x327)](_0x2eed67)[_0x1b255f(0x293,0x28b)](function(_0x362c9c){function _0x3e58b5(_0x539b5b,_0xdb1a3d){return _0x1b255f(_0xdb1a3d,_0x539b5b-0x22d);}if(_0x362c9c!==_0x3e58b5(0x4e7,0x523)){var _0x49d022=Object['getOwnPropertyDescriptor'](_0x2eed67,_0x362c9c);Object['defineProperty'](_0x2839a3,_0x362c9c,_0x49d022['get']?_0x49d022:{'enumerable':!![],'get':function(){return _0x2eed67[_0x362c9c];}});}});_0x2839a3[_0x4668bb(0x58f,0x59c)]=_0x2eed67;function _0x1b255f(_0x57c468,_0x210260){return _0x34ed(_0x210260-0xa2,_0x57c468);}function _0x4668bb(_0x42119b,_0x40233b){return _0x34ed(_0x40233b-0x384,_0x42119b);}return _0x2839a3;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x59525a,_0x599916){function _0x402c2b(_0x2fdff2,_0x34cbd8){return _0x34ed(_0x34cbd8- -0x99,_0x2fdff2);}const _0x4b06ed=_0x59525a*Math['cos'](Cesium$2['Math'][_0x402c2b(0x1eb,0x1e3)](_0x599916));return _0x4b06ed;}function getV(_0x572f4d,_0x120021){const _0x1548f2=_0x572f4d*Math['sin'](Cesium$2[_0x4c535a(0x2cc,0x31f)]['toRadians'](_0x120021));function _0x4c535a(_0x12c768,_0x321062){return _0x34ed(_0x321062-0xcd,_0x12c768);}return _0x1548f2;}function getSpeed(_0x24da37,_0x4a80c7){const _0x5d1981=Math['sqrt'](Math['pow'](_0x24da37,0x2)+Math['pow'](_0x4a80c7,0x2));return _0x5d1981;}function getDirection(_0x56e068,_0x55bb35){function _0x5866cd(_0x1e4aaa,_0x478954){return _0x34ed(_0x478954-0x357,_0x1e4aaa);}let _0x43596c=Cesium$2[_0x5866cd(0x54a,0x5a9)]['toDegrees'](Math['atan2'](_0x55bb35,_0x56e068));return _0x43596c+=_0x43596c<0x0?0x168:0x0,_0x43596c;}const _0x60ab1b={};_0x60ab1b[_0x27febc(0x1a,-0x6c)]=null,_0x60ab1b[_0x27febc(-0x8e,-0xed)]=getU,_0x60ab1b['getV']=getV,_0x60ab1b['getSpeed']=getSpeed,_0x60ab1b['getDirection']=getDirection;function _0x27febc(_0x198352,_0x3b426f){return _0x34ed(_0x198352- -0x295,_0x3b426f);}var WindUtil=_0x60ab1b;const version=_0x27febc(-0x9d,-0x50),buildTime='2026-04-08\x2016:11';var updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader=_0x27febc(-0xbc,-0x5a),renderParticlesVertexShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a';const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x27febc(-0x7b,0xc)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x3dc1c5={};return _0x3dc1c5['sources']=[calculateSpeedShader],new ShaderSource$1(_0x3dc1c5);}static['getUpdatePositionShader'](){const _0x16a733={};return _0x16a733['sources']=[updatePositionShader],new ShaderSource$1(_0x16a733);}static['getSegmentDrawVertexShader'](){function _0x5d5b33(_0x461bf7,_0x42d864){return _0x4445ca(_0x461bf7,_0x42d864- -0xef);}const _0x208715={};return _0x208715[_0x5d5b33(0x3fc,0x45f)]=[renderParticlesVertexShader],new ShaderSource$1(_0x208715);}static['getSegmentDrawFragmentShader'](){const _0x5ceef4={};return _0x5ceef4['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x5ceef4);}static['getPostProcessingPositionShader'](){function _0x5cb7a3(_0x73efab,_0x14474e){return _0x27febc(_0x14474e- -0xa2,_0x73efab);}const _0x383c96={};return _0x383c96[_0x5cb7a3(-0xde,-0x114)]=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x383c96);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace[_0x4445ca(0x4c6,0x545)];class CustomPrimitive{constructor(_0x3f3413){this['commandType']=_0x3f3413['commandType'];function _0x45aa87(_0x2d228c,_0x4d88d5){return _0x4445ca(_0x2d228c,_0x4d88d5- -0x66e);}this['geometry']=_0x3f3413[_0x4cd839(0x17c,0x1ae)],this[_0x4cd839(0x21c,0x1b4)]=_0x3f3413[_0x45aa87(-0x10c,-0x11f)],this['primitiveType']=_0x3f3413[_0x45aa87(-0x1c5,-0x15d)],this['uniformMap']=_0x3f3413['uniformMap']||{},this[_0x4cd839(0x246,0x256)]=_0x3f3413[_0x4cd839(0x234,0x256)],this[_0x45aa87(-0xe0,-0xf6)]=_0x3f3413['fragmentShaderSource'],this['rawRenderState']=_0x3f3413[_0x45aa87(-0x3,-0x7f)],this[_0x45aa87(-0x7c,-0x6d)]=_0x3f3413['framebuffer'],this[_0x45aa87(-0xbc,-0xde)]=_0x3f3413[_0x45aa87(-0xde,-0xde)],this['autoClear']=_0x3f3413['autoClear']??![],this[_0x45aa87(-0x179,-0x136)]=_0x3f3413['preExecute'],this['show']=!![],this[_0x45aa87(-0x11b,-0xcf)]=undefined,this[_0x45aa87(-0x195,-0x16f)]=undefined,this[_0x4cd839(0x135,0x17e)]=_0x3f3413[_0x4cd839(0x162,0x17e)]??(()=>!![]);function _0x4cd839(_0x1c12f1,_0x20effd){return _0x4445ca(_0x1c12f1,_0x20effd- -0x39b);}this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x10f39f){function _0x4bc518(_0x1866b8,_0x4e7f28){return _0x27febc(_0x4e7f28-0x429,_0x1866b8);}function _0x5e9f88(_0x17f0f3,_0x3261a8){return _0x27febc(_0x17f0f3-0x17f,_0x3261a8);}if(this['commandType']==='Draw'){const _0x374514={};_0x374514['context']=_0x10f39f,_0x374514[_0x5e9f88(0x108,0x176)]=this['geometry'],_0x374514['attributeLocations']=this['attributeLocations'],_0x374514['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x490c4e=VertexArray$1[_0x5e9f88(0x18b,0x165)](_0x374514),_0x2a3601={};_0x2a3601[_0x4bc518(0x4a7,0x429)]=_0x10f39f,_0x2a3601['vertexShaderSource']=this[_0x4bc518(0x3ec,0x45a)],_0x2a3601['fragmentShaderSource']=this[_0x5e9f88(0x137,0x175)],_0x2a3601[_0x5e9f88(0x10e,0xf7)]=this['attributeLocations'];const _0x3abbdf=ShaderProgram['fromCache'](_0x2a3601),_0x4e6014=RenderState[_0x5e9f88(0xbc,0xe3)](this['rawRenderState']),_0x10da6d={};return _0x10da6d[_0x5e9f88(0x159,0x138)]=this,_0x10da6d[_0x5e9f88(0xed,0x9e)]=_0x490c4e,_0x10da6d[_0x4bc518(0x34e,0x37a)]=this[_0x4bc518(0x3df,0x37a)],_0x10da6d['modelMatrix']=Matrix4['IDENTITY'],_0x10da6d['renderState']=_0x4e6014,_0x10da6d['shaderProgram']=_0x3abbdf,_0x10da6d['framebuffer']=this['framebuffer'],_0x10da6d['uniformMap']=this['uniformMap'],_0x10da6d['pass']=Pass$1[_0x5e9f88(0x18e,0x1b6)],new DrawCommand(_0x10da6d);}else{if(this['commandType']==='Compute'){const _0x5dda8e={};return _0x5dda8e[_0x5e9f88(0x159,0x108)]=this,_0x5dda8e['fragmentShaderSource']=this[_0x5e9f88(0x137,0x112)],_0x5dda8e[_0x5e9f88(0x190,0x138)]=this[_0x4bc518(0x47f,0x43a)],_0x5dda8e['outputTexture']=this['outputTexture'],_0x5dda8e[_0x4bc518(0x48a,0x400)]=!![],new ComputeCommand(_0x5dda8e);}else throw new Error(_0x4bc518(0x367,0x3c8));}}['setGeometry'](_0x21e9da,_0x398575){this[_0x2a1cb7(0x4bd,0x435)]=_0x398575;function _0x2a1cb7(_0x1ef2d1,_0x4284c7){return _0x27febc(_0x4284c7-0x4ac,_0x1ef2d1);}function _0x237a8f(_0x4de1c4,_0x45c3cf){return _0x4445ca(_0x4de1c4,_0x45c3cf- -0x539);}defined(this['commandToExecute'])&&(this['commandToExecute'][_0x2a1cb7(0x3f0,0x41a)]=VertexArray$1[_0x2a1cb7(0x4bc,0x4b8)]({'context':_0x21e9da,'geometry':this[_0x237a8f(-0x1c,0x10)],'attributeLocations':this[_0x2a1cb7(0x421,0x43b)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x4445ca(0x528,0x55b)](_0x58ec54){function _0x57ee08(_0x319731,_0x1fc88d){return _0x4445ca(_0x319731,_0x1fc88d- -0x22b);}if(!this['isDynamic']())return;if(!this[_0x37579d(0x61d,0x69f)]||!defined(_0x58ec54))return;function _0x37579d(_0x553b35,_0x2a04df){return _0x4445ca(_0x2a04df,_0x553b35-0x1f);}!defined(this[_0x57ee08(0x314,0x374)])&&(this[_0x37579d(0x5be,0x5d6)]=this['createCommand'](_0x58ec54['context']));defined(this[_0x37579d(0x557,0x5ad)])&&this[_0x37579d(0x557,0x5e1)]();if(!_0x58ec54['commandList']){console['warn'](_0x37579d(0x554,0x4f3));return;}defined(this[_0x37579d(0x51e,0x572)])&&_0x58ec54[_0x57ee08(0x43f,0x3c5)]['push'](this['clearCommand']),defined(this['commandToExecute'])&&_0x58ec54['commandList']['push'](this[_0x57ee08(0x390,0x374)]);}['isDestroyed'](){return![];}['destroy'](){if(defined(this[_0x129430(0x572,0x519)])){var _0x70a61b;(_0x70a61b=this['commandToExecute'][_0x10247d(0x584,0x507)])===null||_0x70a61b===void 0x0||_0x70a61b[_0x129430(0x4a1,0x503)](),this[_0x10247d(0x577,0x571)]['shaderProgram']=undefined;}function _0x129430(_0x170c12,_0x281cab){return _0x4445ca(_0x170c12,_0x281cab- -0x86);}function _0x10247d(_0x2055de,_0x50b1c2){return _0x27febc(_0x2055de-0x598,_0x50b1c2);}return destroyObject(this);}}function deepMerge(_0x53361e,_0xc12b0e){if(!_0x53361e)return _0xc12b0e;if(!_0xc12b0e)return _0x53361e;function _0x426586(_0x189e64,_0x4b02e1){return _0x27febc(_0x4b02e1-0x5b9,_0x189e64);}const _0x5d9cab={..._0xc12b0e};function _0x355838(_0x2012ee,_0xa6ee25){return _0x4445ca(_0xa6ee25,_0x2012ee-0x8e);}const _0x1bc1ab=_0x5d9cab;for(const _0x524041 in _0x53361e){if(Object['prototype']['hasOwnProperty']['call'](_0x53361e,_0x524041)){const _0x102919=_0x53361e[_0x524041],_0x1cee42=_0xc12b0e[_0x524041];if(Array['isArray'](_0x102919)){_0x1bc1ab[_0x524041]=_0x102919[_0x355838(0x65e,0x61a)]();continue;}if(_0x102919&&typeof _0x102919===_0x426586(0x4b2,0x50c)){_0x1bc1ab[_0x524041]=deepMerge(_0x102919,_0x1cee42||{});continue;}_0x102919!==undefined&&(_0x1bc1ab[_0x524041]=_0x102919);}}return _0x1bc1ab;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0xf50c62,_0x16c741,_0x6bcb31,_0x393705,_0x2bd38f){this[_0xa11870(-0x6,0x17)]=_0xf50c62,this[_0x213d62(0x26e,0x2a1)]=_0x6bcb31,this['viewerParameters']=_0x393705,this[_0x213d62(0x23d,0x20c)]=_0x16c741;function _0xa11870(_0x20745e,_0x55f647){return _0x4445ca(_0x20745e,_0x55f647- -0x5a9);}this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x605e5b={};_0x605e5b['scene']=_0x2bd38f,_0x605e5b[_0xa11870(0x9,-0x1b)]=0x1,_0x605e5b[_0x213d62(0x1ea,0x17c)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x605e5b),this[_0x213d62(0x28e,0x215)](),this['createWindTextures']();function _0x213d62(_0x6a68ec,_0x1828fc){return _0x27febc(_0x6a68ec-0x249,_0x1828fc);}this[_0x213d62(0x281,0x295)](),this[_0x213d62(0x27f,0x213)]();}[_0x4445ca(0x65f,0x605)](){const _0x506c9d=()=>{function _0x3badba(_0x52dedc,_0xf3896e){return _0x34ed(_0x52dedc- -0x38e,_0xf3896e);}function _0x42c9f8(_0x424184,_0x29f1b2){return _0x34ed(_0x424184- -0xc4,_0x29f1b2);}this[_0x42c9f8(0x205,0x196)]['lastFramesPerSecond']>0x14&&(this['frameRate']=this[_0x3badba(-0xc5,-0x47)][_0x42c9f8(0x163,0x161)],this[_0x3badba(-0xb3,-0x50)]=0x3c/Math[_0x3badba(-0xc0,-0x88)](this[_0x42c9f8(0x14b,0x134)],0x1));};function _0x738ec7(_0x5ca6b4,_0x436bd3){return _0x27febc(_0x5ca6b4-0x674,_0x436bd3);}_0x506c9d();const _0x182074=setInterval(_0x506c9d,0x3e8),_0x248f03=this['destroy']['bind'](this);this[_0x738ec7(0x63d,0x604)]=()=>{clearInterval(_0x182074),_0x248f03();};}['createWindTextures'](){const _0x3b15d6={};function _0x358e60(_0x1407e9,_0x56f73f){return _0x4445ca(_0x56f73f,_0x1407e9- -0x30e);}_0x3b15d6['minificationFilter']=TextureMinificationFilter$1['LINEAR'];function _0x52a162(_0x43b4e3,_0x59d306){return _0x27febc(_0x59d306-0x11a,_0x43b4e3);}_0x3b15d6['magnificationFilter']=TextureMagnificationFilter$1[_0x52a162(0x114,0x107)];const _0x1f7f78={'context':this[_0x52a162(0x10f,0x11a)],'width':this['windData'][_0x52a162(0x1ba,0x143)],'height':this['windData']['height'],'pixelFormat':PixelFormat$1[_0x52a162(0x149,0x144)],'pixelDatatype':PixelDatatype$1[_0x52a162(0xb5,0xef)],'flipY':this[_0x358e60(0x2d7,0x33e)][_0x52a162(0xe4,0x6f)]??![],'sampler':new Sampler$1(_0x3b15d6)};this[_0x52a162(0xdf,0xc1)]={'U':new Texture$1({..._0x1f7f78,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x1f7f78,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x2293f0={};_0x2293f0[_0x3f0853(0xf6,0x9b)]=TextureMinificationFilter$1['NEAREST'];function _0x3f0853(_0x335100,_0x3fcbba){return _0x4445ca(_0x3fcbba,_0x335100- -0x4bf);}_0x2293f0[_0x3f0853(0x125,0x158)]=TextureMagnificationFilter$1[_0x2b140c(0x2bc,0x2a3)];function _0x2b140c(_0x49c248,_0x3efc2c){return _0x4445ca(_0x3efc2c,_0x49c248- -0x305);}const _0xa28d0f={'context':this[_0x3f0853(0x101,0x16d)],'width':this['options'][_0x3f0853(0x44,0x86)],'height':this['options'][_0x3f0853(0x44,0xce)],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x3f0853(0xd6,0xb6)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this[_0x3f0853(0x126,0x159)][_0x2b140c(0x1fe,0x21e)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x2293f0)};this[_0x2b140c(0x216,0x205)]={'previousParticlesPosition':new Texture$1(_0xa28d0f),'currentParticlesPosition':new Texture$1(_0xa28d0f),'nextParticlesPosition':new Texture$1(_0xa28d0f),'postProcessingPosition':new Texture$1(_0xa28d0f),'particlesSpeed':new Texture$1(_0xa28d0f)};}[_0x4445ca(0x5d2,0x5a9)](){Object['values'](this['particlesTextures'])['forEach'](_0x56f463=>_0x56f463['destroy']());}[_0x27febc(0x36,0x96)](){function _0x109418(_0x7bc12e,_0x4b959c){return _0x4445ca(_0x7bc12e,_0x4b959c- -0x589);}function _0x4fd1e2(_0x53c48e,_0x36b221){return _0x27febc(_0x53c48e- -0x1a,_0x36b221);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x4fd1e2(-0x26,-0x68)]['u']['min'],this[_0x109418(-0x52,0x2b)]['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x109418(0x49,0x2b)]['v'][_0x4fd1e2(-0x60,-0x60)],this[_0x4fd1e2(-0x26,0x37)]['v']['max']),'speedRange':()=>new Cartesian2$1(this[_0x4fd1e2(-0x26,0x1c)]['speed']['min'],this[_0x109418(-0x12,0x2b)]['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures'][_0x109418(-0x13,0x58)],'speedScaleFactor':()=>{function _0x59efa2(_0x21348b,_0x22913e){return _0x109418(_0x22913e,_0x21348b- -0x11);}return(this['viewerParameters'][_0x59efa2(0x71,0x98)]+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this[_0x4fd1e2(0x2c,-0x4d)],'dimension':()=>new Cartesian2$1(this[_0x4fd1e2(-0x26,-0xab)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds']['west'],this['windData']['bounds'][_0x4fd1e2(0x2,0x2b)]),'maximum':()=>new Cartesian2$1(this['windData']['bounds'][_0x4fd1e2(-0xc,0x4d)],this[_0x109418(0x79,0x2b)]['bounds'][_0x109418(0x4,-0x68)])},'fragmentShaderSource':ShaderManager[_0x4fd1e2(-0x63,-0x10)](),'outputTexture':this[_0x109418(-0x17,-0x6e)][_0x109418(-0x3b,-0x48)],'preExecute':()=>{function _0x381766(_0xc1e707,_0x205d77){return _0x109418(_0xc1e707,_0x205d77-0x28);}const _0x46be6b=this['particlesTextures'][_0x9d19f9(0x3df,0x419)];this['particlesTextures']['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'],this[_0x9d19f9(0x473,0x429)]['currentParticlesPosition']=this['particlesTextures'][_0x381766(0x85,0xa9)];function _0x9d19f9(_0x48d3f7,_0x49a08f){return _0x4fd1e2(_0x49a08f-0x4e8,_0x48d3f7);}this['particlesTextures']['postProcessingPosition']=_0x46be6b,this[_0x9d19f9(0x44c,0x461)]['calculateSpeed'][_0x381766(0x3c,0x3e)]&&(this[_0x381766(-0x1e,-0xe)]['calculateSpeed'][_0x381766(0xa9,0x3e)][_0x381766(0x85,0x2f)]=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this[_0x4fd1e2(0xb,0x34)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager[_0x109418(-0xa8,-0x80)](),'outputTexture':this['particlesTextures'][_0x4fd1e2(0x3,0x41)],'preExecute':()=>{function _0x5208ff(_0x2cdf9e,_0x451184){return _0x4fd1e2(_0x451184-0x378,_0x2cdf9e);}function _0x42c8d4(_0x410df3,_0x5e0c18){return _0x109418(_0x5e0c18,_0x410df3-0x130);}this['primitives'][_0x42c8d4(0xfb,0x146)]['commandToExecute']&&(this['primitives'][_0x42c8d4(0xfb,0xdd)][_0x5208ff(0x2fa,0x33d)]['outputTexture']=this[_0x5208ff(0x245,0x2b9)][_0x42c8d4(0x184,0x1be)]);},'isDynamic':()=>this['options'][_0x4fd1e2(0x14,0x21)]}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x109418(-0x65,0xa),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x109418(0x5b,0x54)],'particlesSpeed':()=>this[_0x109418(-0xf9,-0x6e)]['particlesSpeed'],'lonRange':()=>this['viewerParameters'][_0x4fd1e2(-0x13,0x1d)],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0x4fd1e2(-0x26,0x49)][_0x4fd1e2(-0xcb,-0x47)]['west'],this[_0x109418(0x5e,0x2b)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds'][_0x4fd1e2(0x2,-0x43)],this['windData'][_0x109418(-0xb0,-0x7a)]['north']),'randomCoefficient':function(){function _0x9ede30(_0x284d07,_0x3341af){return _0x109418(_0x3341af,_0x284d07-0x4e);}return Math[_0x9ede30(0x37,0xb1)]();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this[_0x4fd1e2(0xb,-0x1)][_0x109418(-0x64,-0x26)],'useViewerBounds':()=>this[_0x109418(0x4c,0x5c)][_0x109418(0x52,0x63)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x4fd1e2(-0xbf,-0x5c)]['postProcessingPosition'],'preExecute':()=>{function _0x1441f6(_0x2a61a9,_0x1a9765){return _0x4fd1e2(_0x1a9765-0x53c,_0x2a61a9);}function _0x33c5b2(_0x546a5b,_0x415bd5){return _0x109418(_0x415bd5,_0x546a5b-0x489);}this[_0x1441f6(0x480,0x4b5)]['postProcessingPosition'][_0x33c5b2(0x49f,0x42a)]&&(this['primitives'][_0x1441f6(0x5ed,0x56c)][_0x33c5b2(0x49f,0x483)]['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0x109418(0x57,0x5c)][_0x109418(0x87,0x65)]})};}['reCreateWindTextures'](){function _0x185f46(_0x1caaf7,_0x4814d8){return _0x27febc(_0x1caaf7- -0x132,_0x4814d8);}this[_0x185f46(-0x18b,-0x1d4)]['U']['destroy'](),this['windTextures']['V']['destroy'](),this['createWindTextures']();}[_0x4445ca(0x578,0x551)](_0x3bad27){function _0x4ae8a9(_0x4d38ee,_0x236966){return _0x4445ca(_0x236966,_0x4d38ee-0xc);}this['windData']=_0x3bad27,this[_0x4ae8a9(0x54b,0x57d)]();}['updateOptions'](_0x1f55d3){const _0x4d4ca4=_0x1f55d3['flipY']!==undefined&&_0x1f55d3[_0x121889(0x1ab,0x1f8)]!==this['options']['flipY'];function _0x121889(_0x18dda3,_0x3f6537){return _0x27febc(_0x18dda3-0x256,_0x3f6537);}this['options']=deepMerge(_0x1f55d3,this[_0x121889(0x27b,0x222)]);function _0x397aef(_0xf2c78a,_0x4b46a9){return _0x4445ca(_0xf2c78a,_0x4b46a9- -0x388);}_0x4d4ca4&&this[_0x121889(0x1d5,0x1c5)]();}[_0x27febc(-0x42,-0x99)](_0x1c27e7){const {array:_0x34c4ad}=_0x1c27e7;function _0x5ef094(_0x11c85d,_0x425a60){return _0x4445ca(_0x425a60,_0x11c85d- -0x54b);}let {min:_0x3c6e70,max:_0x5f188d}=_0x1c27e7;const _0x2be7a6=new Float32Array(_0x34c4ad[_0x1b2d24(-0x1f9,-0x1e6)]);_0x3c6e70===undefined&&(console['warn'](_0x1b2d24(-0x1c2,-0x1c8)),_0x3c6e70=Math['min'](..._0x34c4ad));function _0x1b2d24(_0x5a2e0d,_0x109be2){return _0x4445ca(_0x5a2e0d,_0x109be2- -0x6ed);}_0x5f188d===undefined&&(console[_0x5ef094(0x82,0xf2)](_0x1b2d24(-0x137,-0xfa)),_0x5f188d=Math[_0x1b2d24(-0x123,-0xf4)](..._0x34c4ad));const _0x401303=Math[_0x1b2d24(-0xd0,-0xf4)](Math[_0x5ef094(0x3b,-0x48)](_0x3c6e70),Math[_0x1b2d24(-0x101,-0x167)](_0x5f188d));for(let _0x38ff8d=0x0;_0x38ff8d<_0x34c4ad[_0x5ef094(-0x44,0x36)];_0x38ff8d++){const _0x3fb78c=_0x34c4ad[_0x38ff8d]/_0x401303;_0x2be7a6[_0x38ff8d]=_0x3fb78c;}return _0x2be7a6;}[_0x4445ca(0x580,0x589)](){function _0x41a14e(_0x22a490,_0x36f54f){return _0x27febc(_0x36f54f-0x2b,_0x22a490);}function _0x359a81(_0x33650b,_0x122f6b){return _0x27febc(_0x33650b-0x13b,_0x122f6b);}Object['values'](this[_0x41a14e(0x2f,-0x2e)])['forEach'](_0x58210b=>_0x58210b['destroy']()),Object[_0x41a14e(-0x1e,0x23)](this[_0x41a14e(-0x13,-0x7a)])['forEach'](_0x218b23=>_0x218b23['destroy']()),Object['values'](this['primitives'])[_0x41a14e(-0x57,-0x81)](_0x2ff09e=>_0x2ff09e[_0x41a14e(0x15,-0xc)]()),this[_0x41a14e(0xa9,0x5f)][_0x41a14e(-0x4f,-0xc)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x2ba58c,_0x1c41dd,_0x28f45f,_0xe8e89f){this['context']=_0x2ba58c,this['options']=_0x1c41dd,this['viewerParameters']=_0x28f45f,this[_0x4ab8c2(0x335,0x37d)]=_0xe8e89f;function _0x4ab8c2(_0x2e6ab7,_0x4e12bd){return _0x4445ca(_0x4e12bd,_0x2e6ab7- -0x25c);}function _0x24febf(_0x3031b1,_0x1cdb00){return _0x27febc(_0x3031b1-0x239,_0x1cdb00);}(typeof this[_0x24febf(0x25e,0x2c6)][_0x24febf(0x17c,0x15e)]!=='number'||this[_0x24febf(0x25e,0x29d)][_0x24febf(0x17c,0x146)]<=0x0)&&(console[_0x4ab8c2(0x37f,0x338)](_0x4ab8c2(0x2e8,0x28a)),this[_0x24febf(0x25e,0x229)][_0x24febf(0x17c,0x1e7)]=0x100),this[_0x4ab8c2(0x32b,0x2ed)]=this[_0x24febf(0x23e,0x23a)](),this['textures']=this['createRenderingTextures'](),this[_0x24febf(0x243,0x290)]=this[_0x4ab8c2(0x345,0x3b5)](),this[_0x24febf(0x1cc,0x1a4)]=this['createPrimitives']();}['createRenderingTextures'](){const _0x25f4b9={};_0x25f4b9['context']=this['context'],_0x25f4b9[_0x33145c(0x24b,0x2a6)]=this[_0x33145c(0x273,0x27d)]['drawingBufferWidth'],_0x25f4b9[_0x1fcffa(0x311,0x2c7)]=this[_0x1fcffa(0x35b,0x3b9)]['drawingBufferHeight'],_0x25f4b9['pixelFormat']=PixelFormat['RGBA'];function _0x33145c(_0x27db25,_0x2be6e9){return _0x4445ca(_0x27db25,_0x2be6e9- -0x343);}_0x25f4b9[_0x1fcffa(0x39a,0x416)]=PixelDatatype['UNSIGNED_BYTE'];const _0x2c9334=_0x25f4b9,_0x1cfe68={};function _0x1fcffa(_0x170349,_0xdc3722){return _0x4445ca(_0xdc3722,_0x170349- -0x265);}_0x1cfe68['context']=this['context'],_0x1cfe68[_0x1fcffa(0x384,0x327)]=this[_0x1fcffa(0x35b,0x35f)][_0x33145c(0x233,0x265)],_0x1cfe68['height']=this[_0x33145c(0x283,0x27d)]['drawingBufferHeight'],_0x1cfe68[_0x33145c(0x272,0x283)]=PixelFormat['DEPTH_COMPONENT'],_0x1cfe68['pixelDatatype']=PixelDatatype['UNSIGNED_INT'];const _0x227b58=_0x1cfe68;return{'segmentsColor':new Texture(_0x2c9334),'segmentsDepth':new Texture(_0x227b58)};}[_0x27febc(-0x1f,-0x3c)](){const _0x156f78={};_0x156f78[_0x3c61dd(-0x104,-0x18c)]=this['context'];function _0x3c61dd(_0x1d0e2a,_0x5167fc){return _0x27febc(_0x1d0e2a- -0x104,_0x5167fc);}_0x156f78[_0x12a42b(0x6e,0x6)]=[this['textures'][_0x3c61dd(-0x11a,-0xaf)]];function _0x12a42b(_0x5382d9,_0x4fe162){return _0x27febc(_0x4fe162-0x69,_0x5382d9);}return _0x156f78['depthTexture']=this[_0x3c61dd(-0xbd,-0x121)]['segmentsDepth'],{'segments':new Framebuffer(_0x156f78)};}['destoryRenderingFramebuffers'](){function _0x1394a4(_0x39dc88,_0x4c0a68){return _0x27febc(_0x4c0a68-0x3c,_0x39dc88);}Object[_0x1394a4(0xb4,0x34)](this['framebuffers'])['forEach'](_0x4cd803=>{_0x4cd803['destroy']();});}[_0x27febc(0x5,0x3b)](){const _0x16f25a=new Float32Array(this['options'][_0x2649fe(0x49,0x1)]['flatMap'](_0x4102c1=>{function _0x1b6bfb(_0x236841,_0x5cf69a){return _0x2649fe(_0x236841,_0x5cf69a- -0x7c);}const _0x117c76=Color$1['fromCssColorString'](_0x4102c1);return[_0x117c76['red'],_0x117c76[_0x1b6bfb(-0x42,-0x36)],_0x117c76['blue'],_0x117c76['alpha']];}));function _0x38fb76(_0x47c599,_0x3cafa1){return _0x4445ca(_0x47c599,_0x3cafa1- -0x228);}const _0x5687b2={};_0x5687b2['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x5687b2['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x5687b2['wrapS']=TextureWrap[_0x2649fe(-0x86,-0x34)];function _0x2649fe(_0xba8097,_0x1593d1){return _0x27febc(_0x1593d1-0x34,_0xba8097);}return _0x5687b2['wrapT']=TextureWrap[_0x38fb76(0x350,0x330)],new Texture({'context':this['context'],'width':this[_0x2649fe(0xb8,0x59)][_0x2649fe(-0x88,0x1)]['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x5687b2),'source':{'width':this['options']['colors'][_0x2649fe(-0xb2,-0x85)],'height':0x1,'arrayBufferView':_0x16f25a}});}[_0x4445ca(0x5ce,0x560)](){const _0x7c279a=0x4,_0x19f607=this[_0x363333(0x449,0x44d)]['particlesTextureSize'];function _0x267446(_0x157e68,_0x1c70ea){return _0x27febc(_0x1c70ea-0x7,_0x157e68);}let _0x1e8ec3=[];for(let _0x28b003=0x0;_0x28b003<_0x19f607;_0x28b003++){for(let _0x9a07e7=0x0;_0x9a07e7<_0x19f607;_0x9a07e7++){for(let _0x1772db=0x0;_0x1772db<_0x7c279a;_0x1772db++){_0x1e8ec3['push'](_0x28b003/_0x19f607),_0x1e8ec3[_0x363333(0x378,0x39b)](_0x9a07e7/_0x19f607);}}}_0x1e8ec3=new Float32Array(_0x1e8ec3);const _0x2f925a=this['options']['particlesTextureSize']**0x2;let _0x5a4290=[];for(let _0x456224=0x0;_0x456224<_0x2f925a;_0x456224++){_0x5a4290['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x5a4290=new Float32Array(_0x5a4290);let _0x505f5f=[];for(let _0x360caa=0x0,_0x2898a2=0x0;_0x360caa<_0x2f925a;_0x360caa++){_0x505f5f[_0x363333(0x414,0x39b)](_0x2898a2+0x0,_0x2898a2+0x1,_0x2898a2+0x2,_0x2898a2+0x2,_0x2898a2+0x1,_0x2898a2+0x3),_0x2898a2+=_0x7c279a;}_0x505f5f=new Uint32Array(_0x505f5f);const _0xbb3701={};function _0x363333(_0x11f590,_0x3dcb7f){return _0x27febc(_0x3dcb7f-0x428,_0x11f590);}_0xbb3701[_0x363333(0x3c1,0x3a4)]=ComponentDatatype['FLOAT'],_0xbb3701['componentsPerAttribute']=0x2,_0xbb3701['values']=_0x1e8ec3;const _0x2314a8={};_0x2314a8['componentDatatype']=ComponentDatatype['FLOAT'],_0x2314a8['componentsPerAttribute']=0x3,_0x2314a8['values']=_0x5a4290;const _0x261e55=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0xbb3701),'normal':new GeometryAttribute(_0x2314a8)}),'indices':_0x505f5f});return _0x261e55;}['createRawRenderState'](_0x8799ba){const _0xf0a13c={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x8799ba};return Appearance['getDefaultRenderState'](!![],![],_0xf0a13c);}[_0x27febc(-0x3e,0x14)](){const _0x1dd820={};_0x1dd820['st']=0x0,_0x1dd820['normal']=0x1;const _0x525c51={};_0x525c51[_0x3feff1(0x42a,0x412)]=!![];const _0x3c0837={};_0x3c0837['enabled']=!![],_0x3c0837[_0x15d2e5(0x4b7,0x4f8)]=WebGLRenderingContext[_0x3feff1(0x49e,0x417)],_0x3c0837['blendFuncSource']=WebGLRenderingContext[_0x3feff1(0x3bb,0x3ed)],_0x3c0837[_0x15d2e5(0x49b,0x480)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x256a22={};_0x256a22[_0x15d2e5(0x49f,0x491)]=undefined,_0x256a22['depthTest']=_0x525c51,_0x256a22[_0x3feff1(0x3bb,0x3b4)]=!![],_0x256a22['blending']=_0x3c0837;const _0x166659=new CustomPrimitive({'commandType':_0x15d2e5(0x54f,0x4cf),'attributeLocations':_0x1dd820,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0x15d2e5(0x474,0x428)],'uniformMap':{'previousParticlesPosition':()=>this[_0x15d2e5(0x4b4,0x48c)]['particlesTextures'][_0x15d2e5(0x3a9,0x406)],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x15d2e5(0x4c6,0x48c)]['particlesTextures'][_0x3feff1(0x507,0x48d)],'particlesSpeed':()=>this[_0x15d2e5(0x4da,0x48c)]['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this['computing'][_0x15d2e5(0x4a0,0x501)],'colorTable':()=>this[_0x3feff1(0x47c,0x40a)],'domain':()=>{function _0x845f07(_0x3dc9b2,_0x501bda){return _0x15d2e5(_0x501bda,_0x3dc9b2- -0x42f);}var _0x33019e,_0x596306;const _0x4da1c0=new Cartesian2(((_0x33019e=this[_0x845f07(0xb1,0xce)][_0x3a522c(0x5ad,0x5b9)])===null||_0x33019e===void 0x0?void 0x0:_0x33019e['min'])??this['computing']['windData']['speed']['min'],((_0x596306=this['options']['domain'])===null||_0x596306===void 0x0?void 0x0:_0x596306['max'])??this['computing'][_0x845f07(0x80,0xc4)][_0x845f07(0x2e,0x9)]['max']);function _0x3a522c(_0x388dbb,_0x490c09){return _0x15d2e5(_0x490c09,_0x388dbb-0xf4);}return _0x4da1c0;},'displayRange':()=>{function _0x1364eb(_0x24a26d,_0x2b2869){return _0x3feff1(_0x2b2869,_0x24a26d- -0x199);}function _0x49a1d5(_0x13a857,_0x5e3338){return _0x15d2e5(_0x13a857,_0x5e3338-0xee);}var _0x360fb1,_0x3b7615;const _0x2fdfe8=new Cartesian2(((_0x360fb1=this['options'][_0x1364eb(0x2b5,0x260)])===null||_0x360fb1===void 0x0?void 0x0:_0x360fb1[_0x49a1d5(0x59e,0x563)])??this['computing']['windData']['speed']['min'],((_0x3b7615=this['options']['displayRange'])===null||_0x3b7615===void 0x0?void 0x0:_0x3b7615[_0x1364eb(0x2e3,0x304)])??this['computing']['windData']['speed']['max']);return _0x2fdfe8;},'particleHeight':()=>this[_0x15d2e5(0x4d8,0x4e0)]['fixedHeight']||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context']['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters'][_0x15d2e5(0x58f,0x506)],'lineWidth':()=>{function _0x3c6ccc(_0x5082b4,_0x14035f){return _0x3feff1(_0x14035f,_0x5082b4- -0x568);}const _0x1462d0={};_0x1462d0[_0x560ae7(0x327,0x2ca)]=0x1,_0x1462d0['max']=0x2;const _0x3a447=this[_0x560ae7(0x2ba,0x335)]['lineWidth']||_0x1462d0;function _0x560ae7(_0x41db3a,_0xc4f0d9){return _0x15d2e5(_0x41db3a,_0xc4f0d9- -0x1ab);}return new Cartesian2(_0x3a447['min'],_0x3a447[_0x560ae7(0x3ae,0x349)]);},'lineLength':()=>{const _0x26890d={};_0x26890d['min']=0x14,_0x26890d['max']=0x64;const _0x557759=this['options']['lineLength']||_0x26890d;return new Cartesian2(_0x557759['min'],_0x557759['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0x15d2e5(0x498,0x502)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x15d2e5(0x519,0x4f6)](),'rawRenderState':this['createRawRenderState'](_0x256a22)}),_0x3e7f9={};_0x3e7f9[_0x3feff1(0x43d,0x3e9)]=_0x166659;function _0x15d2e5(_0x208de9,_0x27ed27){return _0x4445ca(_0x208de9,_0x27ed27- -0x105);}function _0x3feff1(_0x268fd6,_0x3beda2){return _0x27febc(_0x3beda2-0x443,_0x268fd6);}return _0x3e7f9;}[_0x4445ca(0x524,0x569)](){const _0x2e7ad9=this['createSegmentsGeometry']();this[_0xe7cdcf(0x4ec,0x494)][_0x411c44(-0x17,0x59)]['geometry']=_0x2e7ad9;const _0x246969={};_0x246969[_0x411c44(0x43,0xbd)]=this['context'],_0x246969[_0x411c44(-0x34,-0x71)]=_0x2e7ad9,_0x246969['attributeLocations']=this[_0x411c44(-0x2a,-0xd)][_0x411c44(-0x17,0x1b)]['attributeLocations'],_0x246969['bufferUsage']=BufferUsage['STATIC_DRAW'];function _0xe7cdcf(_0x753c0c,_0x960095){return _0x27febc(_0x960095-0x501,_0x753c0c);}const _0x556c4d=VertexArray[_0x411c44(0x4f,-0x1b)](_0x246969);function _0x411c44(_0x179e83,_0x138990){return _0x27febc(_0x179e83-0x43,_0x138990);}this['primitives'][_0x411c44(-0x17,-0x17)]['commandToExecute']&&(this['primitives']['segments'][_0xe7cdcf(0x4f1,0x4e0)][_0x411c44(-0x4f,-0x41)]=_0x556c4d);}['onColorTableChange'](){function _0x5d434a(_0x51223e,_0x207263){return _0x4445ca(_0x51223e,_0x207263- -0x24);}function _0x271b07(_0x4206b8,_0x24900b){return _0x27febc(_0x24900b-0x5e7,_0x4206b8);}this[_0x5d434a(0x4ea,0x563)]['destroy'](),this[_0x271b07(0x621,0x5ae)]=this['createColorTableTexture']();}['updateOptions'](_0x1c6606){const _0x1557d1=_0x1c6606['colors']&&JSON[_0x390b43(0x59d,0x513)](_0x1c6606['colors'])!==JSON['stringify'](this[_0x390b43(0x586,0x608)]['colors']);function _0x28b387(_0x239db4,_0x4fb29a){return _0x4445ca(_0x4fb29a,_0x239db4-0xa9);}this['options']=deepMerge(_0x1c6606,this['options']);function _0x390b43(_0x571c46,_0x1ee9af){return _0x4445ca(_0x1ee9af,_0x571c46- -0x5f);}_0x1557d1&&this['onColorTableChange']();}['destroy'](){function _0x2e4540(_0x3f0ad6,_0x582c26){return _0x4445ca(_0x582c26,_0x3f0ad6- -0x40);}Object['values'](this[_0x2e4540(0x58a,0x50b)])['forEach'](_0xfc4e2f=>{_0xfc4e2f['destroy']();}),Object['values'](this['primitives'])['forEach'](_0x4eb2fe=>{_0x4eb2fe['destroy']();});function _0x57b48d(_0x4c499a,_0x1a3b58){return _0x27febc(_0x4c499a-0xc3,_0x1a3b58);}this[_0x57b48d(0x8a,0xbe)][_0x2e4540(0x549,0x560)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x4445ca(0x558,0x545)];class WindParticleSystem{constructor(_0x23aa6b,_0x2ff768,_0x23ecd4,_0x10fd4d,_0x5f442e){this[_0x58d9a2(0x180,0x1ac)]=_0x23aa6b,this['options']=_0x23ecd4,this['viewerParameters']=_0x10fd4d;function _0x542c83(_0x46e1a8,_0x34a751){return _0x4445ca(_0x34a751,_0x46e1a8- -0x67d);}this[_0x542c83(-0xec,-0xa1)]=new WindParticlesComputing(_0x23aa6b,_0x2ff768,_0x23ecd4,_0x10fd4d,_0x5f442e),this[_0x542c83(-0xcc,-0x133)]=new WindParticlesRendering(_0x23aa6b,_0x23ecd4,_0x10fd4d,this['computing']);function _0x58d9a2(_0x19a7e0,_0x667e9c){return _0x27febc(_0x667e9c-0x1ac,_0x19a7e0);}this[_0x542c83(-0xf1,-0xd5)]();}['getPrimitives'](){function _0x2e6e11(_0x4f511a,_0x32a0b0){return _0x4445ca(_0x32a0b0,_0x4f511a- -0x57d);}const _0x4e83bd=[this['computing'][_0x5aced8(0x53d,0x4b7)]['calculateSpeed'],this[_0x2e6e11(0x14,-0x12)]['primitives']['updatePosition'],this[_0x5aced8(0x4c2,0x4f5)][_0x2e6e11(-0x2a,0x5a)]['postProcessingPosition'],this[_0x5aced8(0x54e,0x515)]['primitives'][_0x2e6e11(-0x17,0x16)]];function _0x5aced8(_0x51e6c6,_0xdc4624){return _0x4445ca(_0x51e6c6,_0xdc4624- -0x9c);}return _0x4e83bd;}[_0x27febc(-0x34,-0x50)](){function _0x4be84e(_0x1cc6b7,_0x5b260b){return _0x4445ca(_0x5b260b,_0x1cc6b7- -0x6bd);}const _0x2447ff=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x4fc10b(_0x8efce1,_0x35b073){return _0x4445ca(_0x8efce1,_0x35b073- -0x56f);}Object[_0x4be84e(-0x10d,-0xcb)](this[_0x4fc10b(0x88,0x42)][_0x4fc10b(-0x18,0x5b)])['forEach'](_0x1a762f=>{_0x2447ff['framebuffer']=this[_0x4a5a92(0x130,0x117)]['framebuffers'][_0x1a762f];function _0x4a5a92(_0x4adb12,_0x290070){return _0x4be84e(_0x290070-0x223,_0x4adb12);}_0x2447ff['execute'](this['context']);});}['changeOptions'](_0x119a1c){function _0xfa039(_0x183b7e,_0x1d94f7){return _0x27febc(_0x1d94f7-0x4b7,_0x183b7e);}let _0x22faa2=![];_0x119a1c['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x119a1c['particlesTextureSize']&&(_0x22faa2=!![]);const _0x78f6=deepMerge(_0x119a1c,this[_0xfa039(0x457,0x4dc)]);if(_0x78f6['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x78f6;function _0x362327(_0xdaa3b2,_0x447fe2){return _0x4445ca(_0x447fe2,_0xdaa3b2-0x4e);}this[_0xfa039(0x50c,0x4a8)][_0xfa039(0x4a0,0x467)](_0x119a1c),this['computing']['updateOptions'](_0x119a1c),_0x22faa2&&(this[_0x362327(0x5df,0x564)]['destroyParticlesTextures'](),this[_0xfa039(0x42e,0x488)][_0xfa039(0x49d,0x4ef)](),this['rendering'][_0x362327(0x5b7,0x5c8)]());}['applyViewerParameters'](_0x2d7b54){function _0x30ddfc(_0x4bc860,_0x32093f){return _0x4445ca(_0x4bc860,_0x32093f- -0x4e5);}this[_0x8e174d(0x62c,0x5ea)]=_0x2d7b54,this['computing']['viewerParameters']=_0x2d7b54;function _0x8e174d(_0x2bfd17,_0x555557){return _0x4445ca(_0x555557,_0x2bfd17-0x7e);}this['rendering'][_0x30ddfc(0xb7,0xc9)]=_0x2d7b54;}['destroy'](){function _0x4ce076(_0xa2e43f,_0x2ffde7){return _0x27febc(_0x2ffde7- -0xaf,_0xa2e43f);}this[_0x4ce076(-0x10c,-0xde)]['destroy'](),this['rendering']['destroy']();}}function _0x34ed(_0x168d26,_0xb79efa){const _0x55d3af=_0x55d3();return _0x34ed=function(_0x34ed1d,_0x345800){_0x34ed1d=_0x34ed1d-0x1d2;let _0x3ffc07=_0x55d3af[_0x34ed1d];return _0x3ffc07;},_0x34ed(_0x168d26,_0xb79efa);}const Cesium$1=mars3d__namespace[_0x27febc(-0x7b,-0x4f)],BaseLayer$1=mars3d__namespace[_0x27febc(-0x27,-0x43)]['BaseLayer'],_0x414cde={};_0x414cde['min']=0x1,_0x414cde[_0x4445ca(0x659,0x5f9)]=0x2;const _0x1a4a96={};_0x1a4a96[_0x4445ca(0x5f3,0x57a)]=0x14,_0x1a4a96['max']=0x64;const _0x1eee4f={};_0x1eee4f[_0x4445ca(0x504,0x503)]=0x64,_0x1eee4f['fixedHeight']=0x0,_0x1eee4f['lineWidth']=_0x414cde,_0x1eee4f['lineLength']=_0x1a4a96,_0x1eee4f['speedFactor']=0x1,_0x1eee4f[_0x4445ca(0x502,0x55a)]=0.003,_0x1eee4f['dropRateBump']=0.001,_0x1eee4f[_0x4445ca(0x507,0x58d)]=[_0x4445ca(0x560,0x4fe)],_0x1eee4f[_0x4445ca(0x4fe,0x515)]=![],_0x1eee4f['dynamic']=!![];const DEF_OPTIONS=_0x1eee4f;class WindLayer extends BaseLayer$1{constructor(_0x1fe0da={}){_0x1fe0da={...DEF_OPTIONS,..._0x1fe0da},super(_0x1fe0da),this['_setOptionsHook'](_0x1fe0da,_0x1fe0da);}get['layer'](){function _0x2a30e7(_0x2eed5d,_0x5ac3ff){return _0x27febc(_0x2eed5d-0x35d,_0x5ac3ff);}return this[_0x2a30e7(0x2f0,0x28a)];}get[_0x27febc(-0x2e,0x26)](){return this['options']['data'];}set[_0x4445ca(0x5c5,0x592)](_0x3fe9a7){function _0x47c80b(_0x5a8d51,_0x1a51e8){return _0x27febc(_0x5a8d51-0x242,_0x1a51e8);}this[_0x3101d5(0x214,0x1a5)]['data']=_0x3fe9a7;function _0x3101d5(_0x4e5e42,_0x373f87){return _0x27febc(_0x373f87-0x180,_0x4e5e42);}this[_0x3101d5(0x1e0,0x196)](_0x3fe9a7);}get['colors'](){function _0x5558c4(_0x285242,_0x553928){return _0x27febc(_0x285242- -0x143,_0x553928);}return this['options'][_0x5558c4(-0x176,-0x137)];}set['colors'](_0x469dbb){this['options']['colors']=_0x469dbb;const _0x45f203={};_0x45f203[_0x41dafa(-0x136,-0x15c)]=_0x469dbb;function _0x41dafa(_0xc1dac5,_0x11cfba){return _0x4445ca(_0xc1dac5,_0x11cfba- -0x6e9);}this['_setOptionsHook'](this['options'],_0x45f203);}[_0x4445ca(0x4e7,0x516)](_0x3eebda){function _0x48c17b(_0x3a5224,_0xe96940){return _0x4445ca(_0xe96940,_0x3a5224- -0x3f3);}_0x3eebda?this['_addedHook']():this[_0x48c17b(0x1ca,0x15c)]();}['_mountedHook'](){}['_addedHook'](){this[_0x4337f4(0x3d5,0x411)]=this[_0x4337f4(0x3a9,0x3e3)]['scene'],this['camera']=this[_0x4a70dc(0x32f,0x2c8)]['camera'];this['options']['data']&&this['setData'](this['options'][_0x4337f4(0x422,0x473)]);if(!this[_0x4a70dc(0x326,0x37a)]||!this['show'])return;this[_0x4a70dc(0x34d,0x374)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']};function _0x4a70dc(_0x54be0c,_0x361eea){return _0x27febc(_0x361eea-0x386,_0x54be0c);}this['updateViewerParameters'](),this[_0x4a70dc(0x401,0x3d2)]=new WindParticleSystem(this[_0x4337f4(0x495,0x411)][_0x4337f4(0x4c6,0x4a1)],this['windData'],this[_0x4337f4(0x54e,0x4c6)],this['viewerParameters'],this[_0x4a70dc(0x346,0x2f6)]),this[_0x4337f4(0x470,0x434)]=this['particleSystem'][_0x4a70dc(0x31e,0x39d)]();function _0x4337f4(_0x398644,_0x2c2e0d){return _0x27febc(_0x2c2e0d-0x4a1,_0x398644);}this[_0x4337f4(0x429,0x434)]['forEach'](_0x5747a1=>{function _0x53493f(_0x3860e6,_0x18f57a){return _0x4a70dc(_0x3860e6,_0x18f57a- -0x1c9);}this[_0x53493f(0x149,0x12d)]['primitives']['add'](_0x5747a1);}),this['camera']['percentageChanged']=0.01,this['camera']['changed']['addEventListener'](this[_0x4337f4(0x3e2,0x42c)][_0x4337f4(0x481,0x490)](this)),this['scene']['morphComplete'][_0x4337f4(0x4c5,0x4ce)](this['updateViewerParameters'][_0x4337f4(0x4f6,0x490)](this)),window['addEventListener']('resize',this[_0x4337f4(0x479,0x42c)]['bind'](this));}['_removedHook'](){this['camera'][_0x4d01e9(0x4a,0x82)][_0x8fe13e(0x35e,0x394)](this['updateViewerParameters']['bind'](this));function _0x8fe13e(_0xc158e5,_0x420f88){return _0x4445ca(_0xc158e5,_0x420f88- -0x1da);}this['scene']['morphComplete'][_0x8fe13e(0x352,0x394)](this['updateViewerParameters']['bind'](this));function _0x4d01e9(_0x17248a,_0x5563c4){return _0x4445ca(_0x5563c4,_0x17248a- -0x56f);}window[_0x8fe13e(0x41f,0x394)](_0x4d01e9(-0x5d,0x15),this['updateViewerParameters']['bind'](this)),this['primitives']&&(this['primitives']['forEach'](_0x22599b=>{this['scene']['primitives']['remove'](_0x22599b);}),delete this[_0x8fe13e(0x3e9,0x379)]),this['particleSystem']&&(this['particleSystem'][_0x8fe13e(0x3b1,0x3af)](),delete this['particleSystem']);}[_0x27febc(0x16,-0xe)](_0xd59f5c,_0x1ef1a0){this['windData']=this[_0x390600(0x37a,0x3b9)](_0xd59f5c);function _0x390600(_0x3d2f44,_0x490b0c){return _0x4445ca(_0x490b0c,_0x3d2f44- -0x204);}function _0x149ca4(_0x4bbc1a,_0x1d1d9e){return _0x27febc(_0x4bbc1a-0x1b9,_0x1d1d9e);}if(_0x1ef1a0){this[_0x149ca4(0x1b6,0x21a)](),this['_addedHook']();return;}this[_0x149ca4(0x205,0x28e)]?(this['particleSystem'][_0x149ca4(0x18a,0x17e)]['updateWindData'](this['windData']),this['scene']['requestRender']()):this['_addedHook']();}['_setOptionsHook'](_0x2624d1,_0xbebb94){function _0xcc140f(_0x2bb7a7,_0x523919){return _0x4445ca(_0x2bb7a7,_0x523919- -0x20f);}function _0x1f28b3(_0x7972f,_0x3a336c){return _0x27febc(_0x3a336c- -0x52,_0x7972f);}this[_0x1f28b3(-0x2d,-0x6)]&&(this['particleSystem'][_0x1f28b3(-0xeb,-0x6e)](_0xbebb94),this['scene']['requestRender']());}['processWindData'](_0x4455d2){var _0x41017b,_0x2ba6c6;function _0x704f5b(_0x5dcf7e,_0x37efc6){return _0x4445ca(_0x5dcf7e,_0x37efc6-0x29);}const _0x4cefed={..._0x4455d2},_0x27e92a=_0x4cefed;function _0x155e55(_0x50991a,_0x1070eb){return _0x27febc(_0x50991a-0x30,_0x1070eb);}!_0x27e92a['height']&&_0x27e92a['rows']&&(_0x27e92a['height']=_0x27e92a['rows']);!_0x27e92a[_0x155e55(0x59,0x6a)]&&_0x27e92a['cols']&&(_0x27e92a['width']=_0x27e92a[_0x155e55(0x78,0xcf)]);!_0x27e92a['bounds']&&(_0x27e92a['bounds']={'west':_0x27e92a['xmin'],'south':_0x27e92a[_0x704f5b(0x6a0,0x629)],'east':_0x27e92a['xmax'],'north':_0x27e92a['ymax']});if(!_0x27e92a['u']){const _0x44a939={};_0x44a939['array']=_0x4455d2['udata'],_0x44a939[_0x155e55(-0x16,0x5b)]=_0x4455d2['umin'],_0x44a939[_0x704f5b(0x604,0x622)]=_0x4455d2['umax'],_0x27e92a['u']=_0x44a939;}if(!_0x27e92a['v']){const _0x2c08d4={};_0x2c08d4['array']=_0x4455d2['vdata'],_0x2c08d4['min']=_0x4455d2['vmin'],_0x2c08d4['max']=_0x4455d2['vmax'],_0x27e92a['v']=_0x2c08d4;}if(((_0x41017b=_0x27e92a['speed'])===null||_0x41017b===void 0x0?void 0x0:_0x41017b['min'])===undefined||((_0x2ba6c6=_0x27e92a[_0x704f5b(0x51b,0x58b)])===null||_0x2ba6c6===void 0x0?void 0x0:_0x2ba6c6['max'])===undefined||_0x27e92a[_0x704f5b(0x59b,0x58b)][_0x155e55(0x22,0x92)]===undefined){const _0x218727={'array':new Float32Array(_0x27e92a['u']['array'][_0x155e55(-0x89,-0xf0)]),'min':Number['MAX_VALUE'],'max':Number[_0x704f5b(0x574,0x582)]};for(let _0xeff64f=0x0;_0xeff64f<_0x27e92a['u']['array'][_0x704f5b(0x4d1,0x530)];_0xeff64f++){_0x218727['array'][_0xeff64f]=Math['sqrt'](_0x27e92a['u']['array'][_0xeff64f]*_0x27e92a['u']['array'][_0xeff64f]+_0x27e92a['v'][_0x155e55(0x22,0x73)][_0xeff64f]*_0x27e92a['v'][_0x155e55(0x22,0x91)][_0xeff64f]),_0x218727[_0x704f5b(0x610,0x5db)][_0xeff64f]!==0x0&&(_0x218727[_0x155e55(-0x16,-0x87)]=Math[_0x704f5b(0x5c7,0x5a3)](_0x218727['min'],_0x218727[_0x155e55(0x22,-0x54)][_0xeff64f]),_0x218727['max']=Math['max'](_0x218727[_0x704f5b(0x652,0x622)],_0x218727['array'][_0xeff64f]));}_0x27e92a['speed']=_0x218727;}return _0x27e92a;}['updateViewerParameters'](){var _0x5d7fd9;const _0x30fe15=this[_0x1b464c(0x163,0x176)];if(!_0x30fe15)return;const _0x249742=_0x30fe15['canvas'],_0x54ddb4={};_0x54ddb4['x']=0x0;function _0x1b464c(_0x2e1ea8,_0x557d0a){return _0x27febc(_0x557d0a-0x206,_0x2e1ea8);}_0x54ddb4['y']=0x0;const _0x175c26={};_0x175c26['x']=0x0,_0x175c26['y']=_0x249742[_0x1b464c(0x234,0x24f)];function _0x5e5e0c(_0x5b2e86,_0x5efda7){return _0x27febc(_0x5b2e86-0x38d,_0x5efda7);}const _0x29f41d={};_0x29f41d['x']=_0x249742[_0x5e5e0c(0x3ad,0x435)],_0x29f41d['y']=0x0;const _0x9b7005={};_0x9b7005['x']=_0x249742['clientWidth'],_0x9b7005['y']=_0x249742['clientHeight'];const _0x506af1=[_0x54ddb4,_0x175c26,_0x29f41d,_0x9b7005];let _0x1305f7=0xb4,_0x51b3e0=-0xb4,_0x493c98=0x5a,_0x4e938a=-0x5a,_0x27bed9=![];for(const _0x5b82e4 of _0x506af1){const _0x5723f7=_0x30fe15['camera']['pickEllipsoid'](new Cesium$1[(_0x1b464c(0x1b5,0x21f))](_0x5b82e4['x'],_0x5b82e4['y']),_0x30fe15[_0x1b464c(0x16b,0x1bf)][_0x1b464c(0x150,0x183)]);if(!_0x5723f7){_0x27bed9=!![];break;}const _0xa21058=_0x30fe15['globe'][_0x1b464c(0x141,0x183)]['cartesianToCartographic'](_0x5723f7),_0x3af2a7=Cesium$1['Math']['toDegrees'](_0xa21058['longitude']),_0x16784f=Cesium$1[_0x1b464c(0x1d4,0x1c3)][_0x1b464c(0x1ec,0x23d)](_0xa21058['latitude']);_0x1305f7=Math[_0x5e5e0c(0x347,0x354)](_0x1305f7,_0x3af2a7),_0x51b3e0=Math['max'](_0x51b3e0,_0x3af2a7),_0x493c98=Math['min'](_0x493c98,_0x16784f),_0x4e938a=Math['max'](_0x4e938a,_0x16784f);}if(!_0x27bed9){const _0x5100b9=new Cesium$1[(_0x5e5e0c(0x3a6,0x425))](Math[_0x1b464c(0x23e,0x23f)](this['windData'][_0x5e5e0c(0x2dc,0x26f)][_0x1b464c(0x153,0x162)],_0x1305f7),Math['min'](this['windData']['bounds']['east'],_0x51b3e0)),_0x1cf93a=new Cesium$1[(_0x5e5e0c(0x3a6,0x329))](Math['max'](this['windData']['bounds']['south'],_0x493c98),Math['min'](this['windData']['bounds'][_0x5e5e0c(0x2ee,0x2c6)],_0x4e938a)),_0x9455b=(_0x5100b9['y']-_0x5100b9['x'])*0.05,_0xde653=(_0x1cf93a['y']-_0x1cf93a['x'])*0.05;_0x5100b9['x']=Math[_0x1b464c(0x243,0x23f)](this[_0x5e5e0c(0x381,0x32c)][_0x1b464c(0x132,0x155)]['west'],_0x5100b9['x']-_0x9455b),_0x5100b9['y']=Math['min'](this[_0x5e5e0c(0x381,0x405)]['bounds']['east'],_0x5100b9['y']+_0x9455b),_0x1cf93a['x']=Math['max'](this['windData']['bounds']['south'],_0x1cf93a['x']-_0xde653),_0x1cf93a['y']=Math[_0x5e5e0c(0x347,0x336)](this[_0x5e5e0c(0x381,0x35b)][_0x1b464c(0x120,0x155)]['north'],_0x1cf93a['y']+_0xde653),this['viewerParameters'][_0x5e5e0c(0x394,0x322)]=_0x5100b9,this[_0x5e5e0c(0x37b,0x3d7)][_0x5e5e0c(0x36d,0x318)]=_0x1cf93a;const _0x2a8fac=this['windData'][_0x5e5e0c(0x2dc,0x2a3)]['east']-this['windData']['bounds'][_0x5e5e0c(0x2e9,0x27c)],_0x54fe10=this[_0x1b464c(0x25f,0x1fa)][_0x5e5e0c(0x2dc,0x2a1)]['north']-this[_0x5e5e0c(0x381,0x380)][_0x5e5e0c(0x2dc,0x30a)]['south'],_0x3f49eb=(_0x5100b9['y']-_0x5100b9['x'])/_0x2a8fac,_0x40fe5b=(_0x1cf93a['y']-_0x1cf93a['x'])/_0x54fe10,_0x3647c4=Math[_0x5e5e0c(0x347,0x2e9)](_0x3f49eb,_0x40fe5b),_0x31632f=0x3e8*_0x3647c4;_0x31632f>0x0&&(this['viewerParameters']['pixelSize']=Math[_0x1b464c(0x2bd,0x23f)](0x0,Math[_0x1b464c(0x16d,0x1c0)](0x3e8,_0x31632f)));}this[_0x1b464c(0x16a,0x1f4)][_0x1b464c(0x234,0x1bb)]=this['scene']['mode'],(_0x5d7fd9=this['particleSystem'])===null||_0x5d7fd9===void 0x0||_0x5d7fd9['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x1a5cfd,_0x7270fe){const {bounds:_0x51e98c,width:_0x4b840c,height:_0x31609f,u:_0xd64309,v:_0x11725f,speed:_0x36766c}=this[_0x5c04d4(0x616,0x601)],{flipY:_0x293b7b}=this[_0x5c04d4(0x647,0x5ea)];if(_0x1a5cfd<_0x51e98c[_0x761fbd(0x28f,0x21c)]||_0x1a5cfd>_0x51e98c['east']||_0x7270fe<_0x51e98c['south']||_0x7270fe>_0x51e98c['north'])return null;const _0x54df2c=(_0x1a5cfd-_0x51e98c['west'])/(_0x51e98c[_0x761fbd(0x263,0x2ce)]-_0x51e98c['west'])*(_0x4b840c-0x1);let _0x157ea4=(_0x7270fe-_0x51e98c[_0x5c04d4(0x63e,0x628)])/(_0x51e98c['north']-_0x51e98c['south'])*(_0x31609f-0x1);_0x293b7b&&(_0x157ea4=_0x31609f-0x1-_0x157ea4);const _0x2b63c0=Math['floor'](_0x54df2c),_0x54f825=Math['floor'](_0x157ea4),_0x5dc2be=Math[_0x5c04d4(0x5ed,0x64c)](_0x54df2c),_0x4b8c1e=Math[_0x5c04d4(0x5dc,0x616)](_0x5dc2be+0x1,_0x4b840c-0x1),_0x25980b=Math['floor'](_0x157ea4),_0x4b1b64=Math[_0x761fbd(0x248,0x27a)](_0x25980b+0x1,_0x31609f-0x1),_0x3c5163=_0x54df2c-_0x5dc2be,_0x10135f=_0x157ea4-_0x25980b,_0x46c68f=_0x54f825*_0x4b840c+_0x2b63c0,_0x2eded4=_0x25980b*_0x4b840c+_0x5dc2be,_0x3f2fdc=_0x25980b*_0x4b840c+_0x4b8c1e,_0x508192=_0x4b1b64*_0x4b840c+_0x5dc2be,_0x3329ee=_0x4b1b64*_0x4b840c+_0x4b8c1e,_0x3ae4b2=_0xd64309['array'][_0x2eded4],_0x452cf2=_0xd64309['array'][_0x3f2fdc],_0xd38716=_0xd64309['array'][_0x508192],_0x63ddac=_0xd64309[_0x761fbd(0x232,0x2b2)][_0x3329ee];function _0x761fbd(_0x1721aa,_0x17ce8f){return _0x27febc(_0x17ce8f-0x2c0,_0x1721aa);}const _0xb8b1b7=(0x1-_0x3c5163)*(0x1-_0x10135f)*_0x3ae4b2+_0x3c5163*(0x1-_0x10135f)*_0x452cf2+(0x1-_0x3c5163)*_0x10135f*_0xd38716+_0x3c5163*_0x10135f*_0x63ddac,_0x3c1ece=_0x11725f[_0x5c04d4(0x614,0x592)][_0x2eded4],_0x5f5184=_0x11725f['array'][_0x3f2fdc],_0x3961dc=_0x11725f['array'][_0x508192],_0x527a5b=_0x11725f[_0x5c04d4(0x614,0x5c9)][_0x3329ee],_0x324442=(0x1-_0x3c5163)*(0x1-_0x10135f)*_0x3c1ece+_0x3c5163*(0x1-_0x10135f)*_0x5f5184+(0x1-_0x3c5163)*_0x10135f*_0x3961dc+_0x3c5163*_0x10135f*_0x527a5b,_0x194d39=Math[_0x5c04d4(0x5af,0x637)](_0xb8b1b7*_0xb8b1b7+_0x324442*_0x324442),_0x3c501b={};_0x3c501b['u']=_0xd64309['array'][_0x46c68f],_0x3c501b['v']=_0x11725f[_0x761fbd(0x2ca,0x2b2)][_0x46c68f];function _0x5c04d4(_0x20b714,_0x52de99){return _0x4445ca(_0x52de99,_0x20b714-0x62);}_0x3c501b['speed']=_0x36766c['array'][_0x46c68f];const _0x4b4d95={};_0x4b4d95['u']=_0xb8b1b7,_0x4b4d95['v']=_0x324442,_0x4b4d95[_0x5c04d4(0x5c4,0x5a9)]=_0x194d39;const _0xb8a85c={};return _0xb8a85c['original']=_0x3c501b,_0xb8a85c[_0x5c04d4(0x5c0,0x5a4)]=_0x4b4d95,_0xb8a85c;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this[_0x426556(0x2a2,0x2ca)]=null;function _0x426556(_0x1ff5f7,_0x47c4d9){return _0x4445ca(_0x1ff5f7,_0x47c4d9- -0x278);}this['lat']=null,this['tlng']=null,this[_0x426556(0x32a,0x2de)]=null;function _0x2b39ec(_0x4e7463,_0x2bbf01){return _0x27febc(_0x4e7463-0x1d3,_0x2bbf01);}this[_0x426556(0x31f,0x367)]=null,this['speed']=null;}[_0x27febc(-0x37,-0x34)](){for(const _0x163021 in this){delete this[_0x163021];}}}class CanvasWindField{constructor(_0x4f4860){this['setOptions'](_0x4f4860);}get[_0x27febc(0x9,0x49)](){function _0x3f4742(_0x476f01,_0x2c25a3){return _0x27febc(_0x2c25a3-0x262,_0x476f01);}return this[_0x3f4742(0x214,0x213)];}set[_0x27febc(0x9,-0x8)](_0x33a58a){function _0x288628(_0xfcbc7f,_0x55f65c){return _0x27febc(_0x55f65c-0x59d,_0xfcbc7f);}function _0x9d6bde(_0x30e080,_0x2cff87){return _0x4445ca(_0x30e080,_0x2cff87- -0x33f);}this[_0x9d6bde(0x253,0x232)]=(0x64-(_0x33a58a>0x63?0x63:_0x33a58a))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this[_0x288628(0x512,0x54e)],(this['ymax']-this['ymin'])/this['_speedRate']];}get[_0x27febc(-0x58,0x2f)](){return this['_maxAge'];}set['maxAge'](_0x25d261){this['_maxAge']=_0x25d261;}['setOptions'](_0x19892b){function _0x35329d(_0x26c01e,_0x24c59c){return _0x27febc(_0x24c59c-0x453,_0x26c01e);}this['options']=_0x19892b,this['maxAge']=_0x19892b['maxAge']||0x78;function _0x153138(_0x472f1e,_0x2f78c1){return _0x4445ca(_0x472f1e,_0x2f78c1- -0x4ed);}this['speedRate']=_0x19892b['speedRate']||0x32,this[_0x153138(0xd1,0x108)]=[];const _0x3814b7=_0x19892b['particlesNumber']||0x1000;for(let _0x2f112f=0x0;_0x2f112f<_0x3814b7;_0x2f112f++){const _0x4dbc8e=this[_0x35329d(0x525,0x4a3)](new CanvasParticle());this['particles'][_0x153138(0x12,0x46)](_0x4dbc8e);}}['setDate'](_0x960381){this[_0x887bf9(0x44f,0x3e5)]=_0x960381[_0x191997(-0xb2,-0x42)],this[_0x887bf9(0x435,0x488)]=_0x960381[_0x191997(0xdc,0x61)],this['xmin']=_0x960381['xmin'],this['xmax']=_0x960381['xmax'],this[_0x191997(0x43,0x59)]=_0x960381[_0x887bf9(0x44c,0x480)],this[_0x887bf9(0x39e,0x390)]=_0x960381[_0x887bf9(0x37c,0x390)],this['grid']=[];const _0x31d7d0=_0x960381['udata'];function _0x191997(_0x2a7177,_0x328fe4){return _0x4445ca(_0x2a7177,_0x328fe4- -0x5a7);}const _0x11d16a=_0x960381['vdata'];let _0x76bb0e=![];function _0x887bf9(_0x21371a,_0x134f02){return _0x27febc(_0x134f02-0x440,_0x21371a);}_0x31d7d0['length']===this['rows']&&_0x31d7d0[0x0]['length']===this['cols']&&(_0x76bb0e=!![]);let _0x540fbe=0x0,_0x239ed7=null,_0xc5312c=null;for(let _0xc734dc=0x0;_0xc734dc<this['rows'];_0xc734dc++){_0x239ed7=[];for(let _0x155bc0=0x0;_0x155bc0<this['cols'];_0x155bc0++,_0x540fbe++){_0x76bb0e?_0xc5312c=this[_0x887bf9(0x3e2,0x3f4)](_0x31d7d0[_0xc734dc][_0x155bc0],_0x11d16a[_0xc734dc][_0x155bc0]):_0xc5312c=this['_calcUV'](_0x31d7d0[_0x540fbe],_0x11d16a[_0x540fbe]),_0x239ed7['push'](_0xc5312c);}this[_0x191997(-0x29,-0x9)]['push'](_0x239ed7);}!this[_0x887bf9(0x453,0x465)]['flipY']&&this[_0x887bf9(0x439,0x41e)]['reverse']();}['clear'](){function _0x46f32a(_0x1607e6,_0x301e12){return _0x4445ca(_0x1607e6,_0x301e12- -0x14f);}delete this['rows'];function _0x4f61f3(_0x6f8685,_0x509e71){return _0x4445ca(_0x509e71,_0x6f8685- -0x552);}delete this[_0x4f61f3(0xb6,0xf3)],delete this[_0x46f32a(0x417,0x475)],delete this['xmax'],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this['particles'];}[_0x27febc(-0x23,-0x8f)](_0x589e3b,_0x4c0642){function _0x264d71(_0x37d957,_0x4d3afa){return _0x27febc(_0x4d3afa-0x5a2,_0x37d957);}const _0x19d7f8=(_0x589e3b-this['xmin'])/(this['xmax']-this['xmin'])*(this[_0xd6c77b(0x4e,0x49)]-0x1);function _0xd6c77b(_0x34000d,_0x114ecb){return _0x4445ca(_0x114ecb,_0x34000d- -0x5ba);}const _0x4f9bd9=(this['ymax']-_0x4c0642)/(this[_0x264d71(0x4c3,0x4f2)]-this['ymin'])*(this['rows']-0x1);return[_0x19d7f8,_0x4f9bd9];}[_0x4445ca(0x50c,0x52c)](_0x1b6f81,_0x29ade4){if(_0x1b6f81<0x0||_0x1b6f81>=this[_0x3aade5(0x129,0x155)]||_0x29ade4>=this['rows'])return[0x0,0x0,0x0];const _0x4296e9=Math['floor'](_0x1b6f81),_0x5ac5a1=Math['floor'](_0x29ade4);if(_0x4296e9===_0x1b6f81&&_0x5ac5a1===_0x29ade4)return this['grid'][_0x29ade4][_0x1b6f81];const _0xaa43cf=_0x4296e9+0x1;function _0x3aade5(_0x5cc5d7,_0x1e6f16){return _0x4445ca(_0x1e6f16,_0x5cc5d7- -0x4df);}const _0x4af8ec=_0x5ac5a1+0x1,_0x58652e=this['getUVByXY'](_0x4296e9,_0x5ac5a1),_0x16ff27=this[_0x299209(0x15f,0x11d)](_0xaa43cf,_0x5ac5a1);function _0x299209(_0x232553,_0x14ec50){return _0x4445ca(_0x232553,_0x14ec50- -0x40f);}const _0x19973f=this['getUVByXY'](_0x4296e9,_0x4af8ec),_0x437c9c=this[_0x299209(0x16d,0x11d)](_0xaa43cf,_0x4af8ec);let _0x429c4f=null;try{_0x429c4f=this['_bilinearInterpolation'](_0x1b6f81-_0x4296e9,_0x29ade4-_0x5ac5a1,_0x58652e,_0x16ff27,_0x19973f,_0x437c9c);}catch(_0x2cf33c){console[_0x299209(0x114,0x11b)](_0x1b6f81,_0x29ade4);}return _0x429c4f;}['_bilinearInterpolation'](_0x26c5e3,_0x51f1e2,_0x4a4dcd,_0x336b74,_0x4cb6a4,_0x2fea48){const _0xc051bf=0x1-_0x26c5e3,_0x114a7c=0x1-_0x51f1e2,_0x16b9c3=_0xc051bf*_0x114a7c,_0x3e7b81=_0x26c5e3*_0x114a7c,_0xaabec2=_0xc051bf*_0x51f1e2,_0x582a13=_0x26c5e3*_0x51f1e2,_0x47e6d4=_0x4a4dcd[0x0]*_0x16b9c3+_0x336b74[0x0]*_0x3e7b81+_0x4cb6a4[0x0]*_0xaabec2+_0x2fea48[0x0]*_0x582a13,_0x335ea7=_0x4a4dcd[0x1]*_0x16b9c3+_0x336b74[0x1]*_0x3e7b81+_0x4cb6a4[0x1]*_0xaabec2+_0x2fea48[0x1]*_0x582a13;return this['_calcUV'](_0x47e6d4,_0x335ea7);}['_calcUV'](_0x4f4465,_0xb9e396){function _0x45c571(_0x41788b,_0x113df8){return _0x4445ca(_0x113df8,_0x41788b- -0x558);}return[+_0x4f4465,+_0xb9e396,Math[_0x45c571(-0xb,0x7)](_0x4f4465*_0x4f4465+_0xb9e396*_0xb9e396)];}['getUVByPoint'](_0x4d502a,_0x10602f){if(!this[_0x27d962(-0xfb,-0x163)](_0x4d502a,_0x10602f))return null;function _0x545a4b(_0x1d3e26,_0x133043){return _0x27febc(_0x133043-0x244,_0x1d3e26);}const _0xfe510f=this[_0x27d962(-0x162,-0x103)](_0x4d502a,_0x10602f),_0x53eed7=this['getUVByXY'](_0xfe510f[0x0],_0xfe510f[0x1]);function _0x27d962(_0x2a9414,_0x478203){return _0x4445ca(_0x478203,_0x2a9414- -0x6ff);}return _0x53eed7;}[_0x27febc(0x44,0xa4)](_0x497dc1,_0x2068eb){function _0x4ac8c2(_0x303ee5,_0x12e81b){return _0x4445ca(_0x303ee5,_0x12e81b- -0x36b);}function _0x4df925(_0x466b4f,_0x501d77){return _0x27febc(_0x501d77-0x46d,_0x466b4f);}return _0x497dc1>=this[_0x4ac8c2(0x2ce,0x259)]&&_0x497dc1<=this[_0x4df925(0x3b5,0x3e4)]&&_0x2068eb>=this[_0x4df925(0x516,0x4ad)]&&_0x2068eb<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x3667de=fRandomByfloat(this[_0x12d04a(0xf9,0xca)],this['xmax']),_0x4afbae=fRandomByfloat(this['ymin'],this['ymax']);function _0x39b21b(_0xb71763,_0x3dbee2){return _0x27febc(_0x3dbee2-0xbe,_0xb71763);}const _0x44ab68={};_0x44ab68['lat']=_0x4afbae,_0x44ab68[_0x12d04a(0x77,-0x4)]=_0x3667de;function _0x12d04a(_0x29030b,_0x1a475f){return _0x27febc(_0x29030b-0xf5,_0x1a475f);}return _0x44ab68;}[_0x4445ca(0x636,0x5e8)](){let _0x49471b,_0x388389,_0x326ab4;for(let _0x29ae34=0x0,_0x2fb3ca=this['particles'][_0x11d7f1(0x4e2,0x549)];_0x29ae34<_0x2fb3ca;_0x29ae34++){let _0x187034=this['particles'][_0x29ae34];_0x187034['age']<=0x0&&(_0x187034=this[_0x524e82(0x3e6,0x39d)](_0x187034));if(_0x187034['age']>0x0){const _0x18c21e=_0x187034['tlng'],_0x5c0862=_0x187034['tlat'];_0x326ab4=this['getUVByPoint'](_0x18c21e,_0x5c0862),_0x326ab4?(_0x49471b=_0x18c21e+this['_calc_speedRate'][0x0]*_0x326ab4[0x0],_0x388389=_0x5c0862+this['_calc_speedRate'][0x1]*_0x326ab4[0x1],_0x187034[_0x11d7f1(0x51d,0x57e)]=_0x18c21e,_0x187034[_0x524e82(0x35a,0x315)]=_0x5c0862,_0x187034['tlng']=_0x49471b,_0x187034[_0x524e82(0x32f,0x2e3)]=_0x388389,_0x187034['speed']=_0x326ab4[0x2],_0x187034[_0x524e82(0x3da,0x36c)]--):_0x187034[_0x11d7f1(0x5ba,0x53a)]=0x0;}}function _0x11d7f1(_0x6649ab,_0x190cd8){return _0x27febc(_0x6649ab-0x59b,_0x190cd8);}function _0x524e82(_0x2c01a2,_0x5d4e39){return _0x4445ca(_0x2c01a2,_0x5d4e39- -0x273);}return this[_0x11d7f1(0x5d0,0x620)];}[_0x27febc(0x50,0x1d)](_0x4143d8){let _0x4d009b,_0x56a8de;function _0x5a4b2e(_0x10b44c,_0x379ec0){return _0x4445ca(_0x10b44c,_0x379ec0-0x27);}for(let _0x24beff=0x0;_0x24beff<0x1e;_0x24beff++){_0x4d009b=this['getRandomLatLng'](),_0x56a8de=this[_0x562862(0x4ad,0x46e)](_0x4d009b[_0x5a4b2e(0x528,0x569)],_0x4d009b['lat']);if(_0x56a8de&&_0x56a8de[0x2]>0x0)break;}if(!_0x56a8de)return _0x4143d8;const _0x537e81=_0x4d009b['lng']+this[_0x5a4b2e(0x66c,0x634)][0x0]*_0x56a8de[0x0],_0x8e49a8=_0x4d009b['lat']+this['_calc_speedRate'][0x1]*_0x56a8de[0x1];_0x4143d8[_0x5a4b2e(0x51a,0x569)]=_0x4d009b[_0x562862(0x3e6,0x3fa)];function _0x562862(_0x2581b1,_0x50b1bc){return _0x4445ca(_0x2581b1,_0x50b1bc- -0x148);}return _0x4143d8['lat']=_0x4d009b['lat'],_0x4143d8[_0x562862(0x3e7,0x463)]=_0x537e81,_0x4143d8['tlat']=_0x8e49a8,_0x4143d8['age']=Math[_0x562862(0x372,0x3d2)](0xa+Math[_0x5a4b2e(0x615,0x599)]()*this['maxAge']),_0x4143d8[_0x562862(0x453,0x41a)]=_0x56a8de[0x2],_0x4143d8;}[_0x27febc(-0x37,-0x99)](){for(const _0x21b05b in this){delete this[_0x21b05b];}}}function fRandomByfloat(_0xfdff4f,_0x14743d){function _0x39eb5f(_0x2aaa8a,_0x3f71cc){return _0x4445ca(_0x3f71cc,_0x2aaa8a- -0x49a);}return _0xfdff4f+Math[_0x39eb5f(0xd8,0x52)]()*(_0x14743d-_0xfdff4f);}const Cesium=mars3d__namespace[_0x4445ca(0x526,0x545)],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x12a0d4={}){function _0xb2a53c(_0xf30bab,_0x3c5615){return _0x4445ca(_0xf30bab,_0x3c5615- -0x6e5);}super(_0x12a0d4),this['_setOptionsHook'](_0x12a0d4),this['canvas']=null;function _0x1dd362(_0x1658f5,_0x45edd4){return _0x4445ca(_0x45edd4,_0x1658f5- -0x29f);}_0x12a0d4[_0xb2a53c(-0x1b3,-0x158)]&&_0x12a0d4['steps']&&(this[_0xb2a53c(-0x21f,-0x1af)]=new mars3d__namespace[(_0x1dd362(0x2dd,0x320))](_0x12a0d4));}[_0x4445ca(0x5e6,0x5c8)](_0xfccc45,_0x293f4a){function _0x43f1c1(_0x5b3908,_0x326a18){return _0x4445ca(_0x326a18,_0x5b3908-0x7);}this['frameTime']=0x3e8/(_0xfccc45['frameRate']||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![],this['color']=_0xfccc45[_0x43f1c1(0x5dc,0x57a)]||'#ffffff',this[_0x43f1c1(0x57a,0x5dc)]=_0xfccc45['lineWidth']||0x1,this['fixedHeight']=_0xfccc45['fixedHeight']??0x0,this['flipY']=_0xfccc45['flipY']??![];function _0x15b7ef(_0x4660bc,_0x3a25ff){return _0x27febc(_0x3a25ff-0x644,_0x4660bc);}this[_0x43f1c1(0x576,0x51f)]&&this['windField'][_0x15b7ef(0x5e9,0x5c4)](_0xfccc45);}get['layer'](){function _0x35113f(_0xa9537,_0x5cdd94){return _0x27febc(_0xa9537-0x2a9,_0x5cdd94);}return this[_0x35113f(0x2d0,0x2d8)];}get['canvasWidth'](){return this['_map']['scene']['canvas']['clientWidth'];}get[_0x27febc(0x4e,0x14)](){function _0x2876c6(_0xe96394,_0x6e7217){return _0x27febc(_0x6e7217-0x2ad,_0xe96394);}function _0x406c04(_0x320501,_0x14e1a5){return _0x4445ca(_0x14e1a5,_0x320501- -0x7f);}return this[_0x406c04(0x483,0x469)][_0x406c04(0x4b1,0x4b4)]['canvas']['clientHeight'];}get[_0x27febc(-0x6,-0x2)](){return this['_pointerEvents'];}set['pointerEvents'](_0x2d286e){function _0x5f2c2a(_0x597978,_0x11412e){return _0x4445ca(_0x597978,_0x11412e- -0x389);}this[_0x3d05f0(-0xd,-0x33)]=_0x2d286e;function _0x3d05f0(_0x59a6f7,_0x5373a8){return _0x27febc(_0x59a6f7-0x38,_0x5373a8);}if(!this[_0x3d05f0(0x5f,-0xa)])return;_0x2d286e?this['canvas'][_0x3d05f0(0x56,0x8e)][_0x3d05f0(-0x4a,-0x74)]='all':this[_0x3d05f0(0x5f,0xd1)]['style'][_0x3d05f0(-0x4a,-0x33)]=_0x3d05f0(-0x8,0x6f);}get['particlesNumber'](){function _0x1bf6c2(_0x2af336,_0x162a7b){return _0x4445ca(_0x2af336,_0x162a7b- -0x400);}function _0xefefe6(_0x1b25b8,_0x163a43){return _0x27febc(_0x163a43-0xc8,_0x1b25b8);}return this[_0x1bf6c2(0x23e,0x1e5)][_0xefefe6(0x93,0x10b)];}set['particlesNumber'](_0x4d49c8){function _0x4e6a02(_0x555a31,_0xeb7113){return _0x27febc(_0x555a31-0xbe,_0xeb7113);}this['options'][_0x4e6a02(0x101,0xb3)]=_0x4d49c8,clearTimeout(this['_canrefresh']);function _0x51c566(_0x5e8568,_0x14571b){return _0x4445ca(_0x5e8568,_0x14571b- -0x3f7);}this[_0x4e6a02(0x29,0x5e)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x4445ca(0x5ec,0x5c9)](){function _0x4e0fd7(_0x739bf9,_0x49d14a){return _0x27febc(_0x49d14a-0x60,_0x739bf9);}function _0x5bb07b(_0x570c4a,_0x433077){return _0x4445ca(_0x433077,_0x570c4a- -0x7b);}return this[_0x4e0fd7(0x18,0x85)][_0x5bb07b(0x54e,0x4ee)];}set[_0x27febc(0x9,0x25)](_0xd96477){this['options']['speedRate']=_0xd96477;function _0x4c9ee3(_0x5c3c97,_0x15faf5){return _0x4445ca(_0x15faf5,_0x5c3c97-0x4);}this[_0x4c9ee3(0x573,0x588)]&&(this['windField']['speedRate']=_0xd96477);}get['maxAge'](){function _0x5456e5(_0xa71a24,_0x3a73fd){return _0x4445ca(_0x3a73fd,_0xa71a24- -0xb4);}return this[_0x5456e5(0x531,0x529)]['maxAge'];}set['maxAge'](_0x10d90f){function _0x5bdd37(_0x112654,_0x1bd1cd){return _0x4445ca(_0x112654,_0x1bd1cd- -0x57);}function _0x12510a(_0x17b97c,_0x383f9d){return _0x4445ca(_0x383f9d,_0x17b97c- -0x365);}this[_0x12510a(0x280,0x232)][_0x12510a(0x203,0x20a)]=_0x10d90f,this['windField']&&(this[_0x12510a(0x20a,0x259)]['maxAge']=_0x10d90f);}get['data'](){return this['windData'];}set['data'](_0x20d466){this['setData'](_0x20d466);}get[_0x4445ca(0x582,0x522)](){function _0x253ab4(_0x458b6c,_0x2ff4a2){return _0x4445ca(_0x458b6c,_0x2ff4a2- -0x5c1);}let _0x18e637=this['windData'][_0x253ab4(-0x68,0x3)];function _0x1efccc(_0x4a91df,_0x3bff86){return _0x27febc(_0x3bff86- -0x46,_0x4a91df);}let _0xed1995=this[_0x253ab4(0x33,-0xd)]['xmax'],_0x6035aa=this[_0x253ab4(-0x94,-0xd)]['ymin'],_0x291354=this['windData']['ymax'];return _0xed1995>=0x167&&_0x18e637===0x0&&(_0x18e637=-0xb4,_0xed1995=0xb4),_0x18e637=Math['max'](_0x18e637,-0xb4),_0xed1995=Math[_0x253ab4(-0x6e,-0x47)](_0xed1995,0xb4),_0x6035aa=Math['max'](_0x6035aa,-0x5a),_0x291354=Math['min'](_0x291354,0x5a),Cesium['Rectangle']['fromDegrees'](_0x18e637,_0x6035aa,_0xed1995,_0x291354);}['_showHook'](_0x16e18b){function _0x3bc1dd(_0x17f268,_0x551911){return _0x4445ca(_0x551911,_0x17f268- -0x361);}function _0x554d38(_0x1ac979,_0x205a16){return _0x4445ca(_0x1ac979,_0x205a16- -0x456);}_0x16e18b?this['_addedHook']():(this[_0x3bc1dd(0x253,0x1e0)]&&(this['options']['data']=this[_0x3bc1dd(0x253,0x295)]),this[_0x3bc1dd(0x25c,0x2d6)]());}[_0x27febc(0x18,0x97)](){function _0x2ef02e(_0x4a3171,_0x24057c){return _0x4445ca(_0x4a3171,_0x24057c- -0x4da);}function _0x296403(_0x1b546e,_0x51acba){return _0x4445ca(_0x1b546e,_0x51acba- -0x10c);}this['options'][_0x296403(0x44b,0x423)]?this['initWorker']():this['windField']=new CanvasWindField(this[_0x296403(0x485,0x4d9)]);}[_0x27febc(-0x1a,0x64)](){this[_0x25fbaa(0x1ea,0x1cc)]=this['_createCanvas']();function _0x25fbaa(_0x29576f,_0x5b44dc){return _0x27febc(_0x29576f-0x1c3,_0x5b44dc);}const _0x39c607={};function _0x4a693c(_0x260136,_0x4eb842){return _0x27febc(_0x260136-0x10c,_0x4eb842);}_0x39c607[_0x25fbaa(0x16f,0x1b9)]=!![],this['canvasContext']=this[_0x25fbaa(0x1ea,0x1d5)]['getContext']('2d',_0x39c607),this['bindEvent'](),this['options'][_0x4a693c(0xde,0x54)]&&this['setData'](this[_0x4a693c(0x131,0x106)][_0x4a693c(0xde,0x64)]);}['_removedHook'](){function _0x11488c(_0x59f614,_0x4da999){return _0x4445ca(_0x59f614,_0x4da999- -0x16c);}this['clear']();function _0x9a47f6(_0x544119,_0x3e00d0){return _0x4445ca(_0x544119,_0x3e00d0- -0x2f1);}this[_0x9a47f6(0x249,0x233)](),this['canvas']&&(this['_map']['container'][_0x9a47f6(0x32b,0x2b2)](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x19d4f3=mars3d__namespace['DomUtil'][_0x5e09f4(0x3ec,0x41d)](_0x5e09f4(0x449,0x448),'mars3d-canvasWind',this[_0x1663d4(0x2ef,0x372)]['container']);function _0x5e09f4(_0x429e7f,_0x1568bf){return _0x27febc(_0x1568bf-0x421,_0x429e7f);}_0x19d4f3['style']['position']='absolute',_0x19d4f3[_0x1663d4(0x3cb,0x40b)][_0x5e09f4(0x4e7,0x472)]='0px',_0x19d4f3[_0x1663d4(0x3cb,0x3be)][_0x5e09f4(0x3ee,0x37e)]=_0x5e09f4(0x3f9,0x423),_0x19d4f3[_0x1663d4(0x3cb,0x3ad)][_0x5e09f4(0x450,0x44a)]=this[_0x5e09f4(0x2ff,0x363)][_0x1663d4(0x31d,0x38d)]['canvas']['clientWidth']+'px',_0x19d4f3['style']['height']=this['_map'][_0x5e09f4(0x40b,0x391)]['canvas'][_0x5e09f4(0x42a,0x46a)]+'px',_0x19d4f3[_0x5e09f4(0x454,0x43f)]['pointerEvents']=this[_0x5e09f4(0x44e,0x3dc)]?'auto':_0x1663d4(0x36d,0x3f0),_0x19d4f3['style']['zIndex']=this[_0x5e09f4(0x45c,0x446)]['zIndex']??0x9,_0x19d4f3[_0x1663d4(0x3d6,0x34d)]=this['_map']['scene'][_0x5e09f4(0x429,0x448)]['clientWidth'],_0x19d4f3['height']=this['_map']['scene'][_0x1663d4(0x3d4,0x3a3)]['clientHeight'];function _0x1663d4(_0xfc9f59,_0x5bc277){return _0x27febc(_0xfc9f59-0x3ad,_0x5bc277);}return _0x19d4f3;}[_0x4445ca(0x48e,0x512)](){function _0x4114e3(_0xade68a,_0x3a36bf){return _0x27febc(_0x3a36bf-0x534,_0xade68a);}function _0x47667d(_0x371c26,_0x50ee7e){return _0x27febc(_0x50ee7e-0x599,_0x371c26);}this['canvas']&&(this[_0x47667d(0x60f,0x5c0)]['style']['width']=this[_0x4114e3(0x3fd,0x476)][_0x47667d(0x568,0x509)]['canvas']['clientWidth']+'px',this['canvas']['style']['height']=this['_map'][_0x47667d(0x519,0x509)]['canvas']['clientHeight']+'px',this[_0x4114e3(0x527,0x55b)]['width']=this['_map']['scene']['canvas']['clientWidth'],this['canvas']['height']=this['_map']['scene'][_0x4114e3(0x594,0x55b)][_0x47667d(0x647,0x5e2)]);}['bindEvent'](){function _0x486cbf(_0x1e35ee,_0x4b5f4b){return _0x4445ca(_0x1e35ee,_0x4b5f4b- -0x6e9);}const _0x43e2df=this;let _0x12a721=Date[_0x486cbf(-0x15b,-0x1a2)]();(function _0x170142(){if(_0x43e2df['isDestroy'])return;function _0x82f0ee(_0x435325,_0xc57a23){return _0x486cbf(_0x435325,_0xc57a23-0x3ef);}_0x43e2df['_animateFrame']=window['requestAnimationFrame'](_0x170142);function _0x4196f1(_0x1b8015,_0x15a10e){return _0x486cbf(_0x15a10e,_0x1b8015-0x605);}if(_0x43e2df['show']&&_0x43e2df['windField']){const _0x422eb7=Date[_0x82f0ee(0x2c1,0x24d)](),_0xc0cda7=_0x422eb7-_0x12a721;_0xc0cda7>_0x43e2df['frameTime']&&(_0x12a721=_0x422eb7-_0xc0cda7%_0x43e2df['frameTime'],_0x43e2df[_0x4196f1(0x477,0x40b)]());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![]);function _0x401504(_0x1359b4,_0x5cd8a6){return _0x4445ca(_0x1359b4,_0x5cd8a6- -0x63c);}this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x486cbf(-0x182,-0x1e7)]['on'](mars3d__namespace[_0x486cbf(-0x16f,-0x1d1)][_0x401504(-0x1b5,-0x132)],this[_0x401504(-0x1a3,-0x12e)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x486cbf(-0xe0,-0x107)],this));}[_0x27febc(-0x9c,-0x46)](){window['cancelAnimationFrame'](this['_animateFrame']),delete this['_animateFrame'];function _0x28b280(_0x452260,_0x19609b){return _0x4445ca(_0x452260,_0x19609b- -0x566);}function _0x45718f(_0x15065b,_0x69b42e){return _0x27febc(_0x15065b-0x281,_0x69b42e);}window[_0x45718f(0x22f,0x1bb)]('resize',this[_0x28b280(-0xc2,-0x54)]),this['options'][_0x45718f(0x1e1,0x195)]&&(this['_map'][_0x28b280(-0x64,0x1d)](mars3d__namespace[_0x28b280(0x7,-0x4e)]['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace[_0x45718f(0x1d9,0x18d)][_0x28b280(-0x90,-0x5c)],this[_0x45718f(0x1cf,0x229)],this),this[_0x45718f(0x1c3,0x1d5)]['off'](mars3d__namespace['EventType'][_0x28b280(-0xa5,-0x1e)],this['_onMouseUpEvent'],this),this[_0x28b280(0x4,-0x64)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x4445ca(0x5c5,0x54a)](_0x2b0f28){function _0xe2d57c(_0x132e7a,_0x42de62){return _0x4445ca(_0x42de62,_0x132e7a- -0xfb);}function _0x142e27(_0x11576a,_0x4303a0){return _0x27febc(_0x11576a-0x1e2,_0x4303a0);}clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0xe2d57c(0x4ec,0x54a)])return;this['canvas'][_0x142e27(0x200,0x242)][_0x142e27(0x1c7,0x212)]='hidden',this[_0x142e27(0x1d9,0x262)]=setTimeout(()=>{function _0x22ca80(_0x466a08,_0x18e697){return _0x142e27(_0x18e697- -0x220,_0x466a08);}if(!this['show'])return;function _0x5d2f1d(_0x145dc7,_0x781df0){return _0x142e27(_0x145dc7- -0x15e,_0x781df0);}this[_0x22ca80(-0x119,-0xf8)](),this[_0x22ca80(0x1c,-0x17)]['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x1bcf96){function _0x1f0a76(_0x323ac8,_0x1b0159){return _0x27febc(_0x1b0159-0x148,_0x323ac8);}this[_0x1f0a76(0x9d,0xf5)]=!![];function _0x3d8ccf(_0x25834d,_0x328be4){return _0x27febc(_0x328be4-0xfd,_0x25834d);}this['_map']['off'](mars3d__namespace[_0x3d8ccf(0x3,0x55)][_0x3d8ccf(0x95,0xd8)],this[_0x3d8ccf(0xfe,0xfc)],this),this['_map']['on'](mars3d__namespace[_0x3d8ccf(0xa0,0x55)]['mouseMove'],this[_0x1f0a76(0x17a,0x147)],this);}[_0x4445ca(0x640,0x5bf)](_0x19074d){function _0x529093(_0xae9016,_0x310955){return _0x4445ca(_0xae9016,_0x310955- -0x3fa);}function _0xe20fcf(_0x4d3d72,_0x3fc510){return _0x27febc(_0x4d3d72-0x64f,_0x3fc510);}if(!this['show']||!this['canvas'])return;this['mouse_down']&&(this[_0x529093(0x240,0x1ed)]['style']['visibility']='hidden',this[_0xe20fcf(0x652,0x604)]=!![]);}[_0x27febc(0x22,0x97)](_0x5d12c3){function _0x23409a(_0x1eed03,_0x34ccb7){return _0x4445ca(_0x1eed03,_0x34ccb7- -0x1a1);}if(!this['show']||!this[_0x14c33d(0x97,0x61)])return;this['_map'][_0x14c33d(0x33,0x51)](mars3d__namespace[_0x14c33d(-0x38,0x4c)][_0x14c33d(0x4b,-0x1c)],this[_0x23409a(0x3c5,0x41e)],this);this['mouse_down']&&this[_0x23409a(0x4ab,0x422)]&&this[_0x23409a(0x34e,0x365)]();this[_0x23409a(0x407,0x446)]['style'][_0x14c33d(0x55,0x9c)]='visible';function _0x14c33d(_0x5772e1,_0x1255cb){return _0x4445ca(_0x1255cb,_0x5772e1- -0x550);}this[_0x23409a(0x442,0x3cc)]=![],this['mouse_move']=![];}[_0x27febc(0x16,0x51)](_0x5a667b){function _0x3f80a9(_0x494e81,_0x567b20){return _0x4445ca(_0x567b20,_0x494e81- -0x6fb);}this['clear'](),this[_0x3f80a9(-0x147,-0xf4)]=_0x5a667b,this[_0x415410(-0x64,-0xe7)][_0x3f80a9(-0xec,-0x85)](_0x5a667b);function _0x415410(_0x3d66d3,_0x255d1f){return _0x4445ca(_0x3d66d3,_0x255d1f- -0x656);}this['redraw']();}['redraw'](){function _0x224198(_0x4fea09,_0x52915e){return _0x4445ca(_0x52915e,_0x4fea09- -0x591);}function _0x3b1b40(_0x3edd22,_0x1107f8){return _0x4445ca(_0x3edd22,_0x1107f8- -0xe4);}if(!this['show'])return;this[_0x224198(-0x22,0x56)][_0x3b1b40(0x400,0x45c)](this[_0x224198(0x54,0x8e)]),this['update']();}['update'](){function _0x3c2f0a(_0x4bcf3f,_0x41babe){return _0x4445ca(_0x41babe,_0x4bcf3f- -0x366);}if(this['_updateIng'])return;function _0x5ec637(_0x13438b,_0x4f7f00){return _0x4445ca(_0x13438b,_0x4f7f00- -0x67d);}this[_0x3c2f0a(0x255,0x2b5)]=!![];if(this['worker'])this[_0x5ec637(-0xc5,-0x10e)]['update']();else{const _0x334a71=this[_0x3c2f0a(0x209,0x240)]['getParticles']();this['_drawLines'](_0x334a71);}this['_updateIng']=![];}['_drawLines'](_0x4dd270){this['_canvasParticles']=_0x4dd270,this['canvasContext'][_0x38918d(-0x46,0x1c)]='destination-in';function _0x4d4543(_0x7c134d,_0x162203){return _0x27febc(_0x7c134d-0x5b2,_0x162203);}this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']);function _0x38918d(_0x1c41f3,_0x1f6563){return _0x4445ca(_0x1c41f3,_0x1f6563- -0x518);}this[_0x38918d(0xfc,0x8a)][_0x38918d(0x50,0x1c)]=_0x4d4543(0x549,0x5a9),this[_0x4d4543(0x594,0x539)]['globalAlpha']=0.9;const _0x57811d=this['_map'][_0x38918d(0x17,0x18)]['mode']!==Cesium['SceneMode'][_0x38918d(-0x71,-0x17)],_0x2eb1e8=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x7901dc=0x0,_0x17b045=_0x4dd270['length'];_0x7901dc<_0x17b045;_0x7901dc++){const _0x160dc1=_0x4dd270[_0x7901dc],_0x5c85f2=this[_0x38918d(0x65,-0x13)](_0x160dc1,_0x160dc1[_0x38918d(0xaa,0x2a)],_0x160dc1['lat'],_0x160dc1[_0x4d4543(0x4fe,0x582)]),_0x35ef53=this[_0x38918d(0x16,-0x13)](_0x160dc1,_0x160dc1['tlng'],_0x160dc1[_0x38918d(0x81,0x3e)],_0x160dc1['talt']);if(!_0x5c85f2||!_0x35ef53)continue;if(_0x57811d&&Math[_0x38918d(-0x5,0x6e)](_0x5c85f2[0x0]-_0x35ef53[0x0])>=_0x2eb1e8)continue;this['canvasContext']['beginPath'](),this['canvasContext'][_0x4d4543(0x565,0x4e8)]=this['lineWidth'],this[_0x38918d(0x95,0x8a)]['strokeStyle']=this[_0x38918d(0x6b,0x1e)]['getColor'](_0x160dc1['speed']),this[_0x4d4543(0x594,0x517)][_0x38918d(-0x8a,-0x10)](_0x5c85f2[0x0],_0x5c85f2[0x1]),this['canvasContext'][_0x38918d(0x86,0x9b)](_0x35ef53[0x0],_0x35ef53[0x1]),this['canvasContext']['stroke']();}else{this[_0x38918d(0xf2,0x8a)][_0x38918d(0x21,0x84)](),this[_0x38918d(0x5d,0x8a)][_0x4d4543(0x565,0x586)]=this[_0x4d4543(0x565,0x4ee)],this[_0x4d4543(0x594,0x555)][_0x4d4543(0x5dd,0x653)]=this['color'];for(let _0x2d9d93=0x0,_0x1c526d=_0x4dd270[_0x38918d(-0x13,-0x11)];_0x2d9d93<_0x1c526d;_0x2d9d93++){const _0x3fc465=_0x4dd270[_0x2d9d93],_0x586d97=this[_0x38918d(-0x7a,-0x13)](_0x3fc465,_0x3fc465['lng'],_0x3fc465['lat'],_0x3fc465['alt']),_0x511faf=this['_tomap'](_0x3fc465,_0x3fc465[_0x4d4543(0x59d,0x600)],_0x3fc465[_0x4d4543(0x548,0x4da)],_0x3fc465['talt']);if(!_0x586d97||!_0x511faf)continue;if(_0x57811d&&Math['abs'](_0x586d97[0x0]-_0x511faf[0x0])>=_0x2eb1e8)continue;this['canvasContext']['moveTo'](_0x586d97[0x0],_0x586d97[0x1]),this[_0x4d4543(0x594,0x5c3)][_0x38918d(0x76,0x9b)](_0x511faf[0x0],_0x511faf[0x1]);}this['canvasContext']['stroke']();}}['_tomap'](_0x5a831a,_0x57bdf3,_0x55fcf1,_0x4296ae){const _0x3bd017=Cesium[_0x2ff29a(0x489,0x4a1)]['fromDegrees'](_0x57bdf3,_0x55fcf1,_0x4296ae??this[_0x5ec0bb(-0x1c0,-0x1bd)]);function _0x5ec0bb(_0x30e818,_0x19cb6a){return _0x4445ca(_0x19cb6a,_0x30e818- -0x6c0);}const _0x2557d9=this['_map']['scene'];if(_0x2557d9['mode']===Cesium[_0x5ec0bb(-0x155,-0x1d8)][_0x2ff29a(0x49e,0x446)]){const _0x2d8c9b=new Cesium[(_0x2ff29a(0x476,0x452))](_0x2557d9['globe']['ellipsoid'],_0x2557d9[_0x5ec0bb(-0xce,-0x13f)][_0x2ff29a(0x4aa,0x48b)]),_0x30ddfe=_0x2d8c9b['isPointVisible'](_0x3bd017);if(!_0x30ddfe)return _0x5a831a['age']=0x0,null;}function _0x2ff29a(_0x32a4fd,_0x5e136b){return _0x27febc(_0x5e136b-0x505,_0x32a4fd);}const _0x3a1664=mars3d__namespace[_0x5ec0bb(-0x16b,-0x1db)][_0x2ff29a(0x3e3,0x46e)](this[_0x2ff29a(0x454,0x447)]['scene'],_0x3bd017);return _0x3a1664?[_0x3a1664['x'],_0x3a1664['y']]:null;}['clear'](){this[_0x3f8c46(0x26,0x69)]['clear']();function _0x3f8c46(_0x240e9f,_0x2ce695){return _0x27febc(_0x240e9f-0x77,_0x2ce695);}delete this['windData'];}['initWorker'](){this[_0x398ff0(0x29,-0x20)]=new Worker(this['options'][_0x23530c(0x559,0x592)]);function _0x398ff0(_0x562437,_0x2844f4){return _0x27febc(_0x562437-0xba,_0x2844f4);}this['worker'][_0x398ff0(0xfc,0x149)]=_0x380bca=>{this[_0x36de5e(0x118,0xf4)](_0x380bca['data'][_0x2b1808(0x3dc,0x36e)]);function _0x2b1808(_0x834687,_0x3810f4){return _0x398ff0(_0x834687-0x2ed,_0x3810f4);}function _0x36de5e(_0x3a0536,_0x43cbd1){return _0x23530c(_0x3a0536- -0x43a,_0x43cbd1);}this['_updateIng2']=![];};function _0x23530c(_0x428546,_0x7fe77b){return _0x27febc(_0x428546-0x5ea,_0x7fe77b);}this['windField']={'init':_0x4a7a14=>{function _0x1bb825(_0x2eb2e5,_0x35baa9){return _0x398ff0(_0x35baa9-0x1c2,_0x2eb2e5);}const _0x5ce180={};_0x5ce180['type']=_0x1d867e(0x4bb,0x479),_0x5ce180['options']=_0x4a7a14;function _0x1d867e(_0x2dbb08,_0x46534f){return _0x398ff0(_0x2dbb08-0x49a,_0x46534f);}this[_0x1d867e(0x4c3,0x44c)]['postMessage'](_0x5ce180);},'setOptions':_0x37f933=>{const _0x397936={};_0x397936[_0x2cace7(-0x20f,-0x188)]='setOptions',_0x397936[_0xb22568(0x2cb,0x30d)]=_0x37f933;function _0x2cace7(_0x1ef036,_0xe1e226){return _0x398ff0(_0xe1e226- -0x206,_0x1ef036);}function _0xb22568(_0x3d2587,_0x41831f){return _0x398ff0(_0x3d2587-0x1ec,_0x41831f);}this['worker']['postMessage'](_0x397936);},'setDate':_0x31c7b7=>{function _0x3fe3f0(_0x3c2abd,_0x3b77dc){return _0x398ff0(_0x3b77dc-0x49d,_0x3c2abd);}const _0x5357a1={};_0x5357a1[_0x361899(-0x128,-0x1b0)]=_0x361899(-0x9d,-0x11e);function _0x361899(_0x4c00f3,_0x6115f0){return _0x23530c(_0x4c00f3- -0x6d6,_0x6115f0);}_0x5357a1['data']=_0x31c7b7,this['worker'][_0x361899(-0x148,-0x140)](_0x5357a1);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];function _0x3e4fb7(_0x3a6d0d,_0x45c663){return _0x398ff0(_0x45c663-0x11f,_0x3a6d0d);}function _0xef3d69(_0x19219d,_0x5b2a8b){return _0x398ff0(_0x19219d-0x4f8,_0x5b2a8b);}const _0x40abf5={};_0x40abf5['type']=_0x3e4fb7(0x1e4,0x174),this['worker'][_0x3e4fb7(0x139,0x17d)](_0x40abf5);},'clear':()=>{function _0x14433d(_0x1680bc,_0x1ce7e7){return _0x398ff0(_0x1ce7e7- -0x8b,_0x1680bc);}function _0x490b8d(_0x29a95a,_0x30446){return _0x398ff0(_0x30446-0x37f,_0x29a95a);}const _0x1168b0={};_0x1168b0[_0x490b8d(0x3ee,0x3fd)]='clear',this['worker'][_0x490b8d(0x41f,0x3dd)](_0x1168b0);}},this[_0x398ff0(0x69,0x96)][_0x398ff0(0x21,-0x2c)](this['options']);}}mars3d__namespace['LayerUtil']['register'](_0x27febc(0x3a,0xc2),CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x4445ca(0x4fd,0x54c)]=CanvasWindField,mars3d__namespace['Log'][_0x4445ca(0x5d8,0x598)]('mars3d-wind插件注册成功\x20\x20\x20\x20\x20版本:'+version+'\x20\x20\x20\x20编译日期:'+buildTime),mars3d__namespace[_0x27febc(-0x87,-0xb9)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x27febc(0x13,-0x6e)]=CanvasWindLayer;function _0x4445ca(_0x22b220,_0x5c245e){return _0x34ed(_0x5c245e-0x32b,_0x22b220);}exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;function _0x55d3(){const _0x2daba2=['tlat','lighter','CLAMP_TO_EDGE','MIN_VALUE','dropRate','update','Cartesian3','colorTextures','interpolated','Unknown\x20command\x20type','createSegmentsGeometry','quietPeriod','speed','dropRateBump','postMessage','rows','segments','windTextures','maxAge','onParticlesTextureSizeChange','SRC_ALPHA','SceneMode','willReadFrequently','mouse_down','removeEventListener','windField','updateOptions','_speedRate','random','lineWidth','_calcUV','sceneMode','height','getCalculateSpeedShader','fragmentShaderSource','globe','min','_pointerEvents','ColorRamp','Math','processWindData','2318325GcIoOY','none','48qsSROK','createPrimitives','off','type','blendFuncDestination','abs','colorTable','lat','destroy','1185876EpPzMq','floor','clearFramebuffers','colors','samplingWindow','enabled','outputTexture','computing','data','Compute','FUNC_ADD','FLOAT','viewport','persists','logInfo','layer','owner','mouseMove','beginPath','toGridXY','grid','commandToExecute','latRange','createRenderingFramebuffers','canvasContext','removeChild','changeOptions','visibility','_addedHook','toRadians','drawingBufferWidth','destroyParticlesTextures','segmentsColor','tlng','shaderProgram','LINEAR','viewerParameters','bind','keys','rendering','array','lineTo','windData','minificationFilter','getUVByPoint','refreshTimer','values','changed','pointerEvents','_updateIng','create','_removedHook','domain','_onMouseMoveEvent','context','NEAREST','0px','mouse_move','xmin','createColorTableTexture','pixelFormat','lonRange','_setOptionsHook','speedRate','framebuffers','displayRange','fromGeometry','warn','east','OPAQUE','slice','uniformMap','green','CanvasWindLayer','Draw','color','setData','getPrimitives','_mountedHook','Cartesian2','__proto__','error','south','nextParticlesPosition','style','age','clientWidth','currentParticlesPosition','_onMouseUpEvent','__esModule','magnificationFilter','options','1032qOZySI','canvas','getParticles','width','RED','strokeStyle','useViewerBounds','addEventListener','dynamic','rawRenderState','commandList','vertexShaderSource','camera','max\x20is\x20undefined,\x20calculate\x20max','frameRateMonitor','particles','createComputingPrimitives','toDegrees','createParticlesTextures','max','canvasWind','getSegmentDrawFragmentShader','stringify','blendEquation','show','pixelDatatype','ymin','framebuffer','onmessage','particlesNumber','isInExtent','initFrameRate','frameRateAdjustment','textures','cols','clientHeight','postProcessingPosition','pixelSize','particleSystem','_calc_speedRate','canvasHeight','setDate','_randomParticle','top','fromCache','rgb(206,255,255)','clearCommand','fixedHeight','SCENE3D','_map','particlesTextureSize','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a','_tomap','redraw','length','moveTo','getUpdatePositionShader','mouseDown','previousParticlesPosition','alt','EllipsoidalOccluder','_onMouseDownEvent','bounds','ymax','primitiveType','resize','object','forEach','flipY','_showHook','1466264SiNPyd','EventType','isDynamic','round','particlesTextures','west','left','1CRkcEM','3041646cHWSxd','mouseHidden','north','rectangle','3.11.2','unbindEvent','min\x20is\x20undefined,\x20calculate\x20min','11495zdLfzx','init','_drawLines','toWindowCoordinates','log','_canrefresh','getUVByXY','TRIANGLES','vertexArray','worker','scene','depthMask','getU','push','globalCompositeOperation','frameState.commandList\x20is\x20undefined','_colorRamp','xmax','preExecute','WindUtil','frameRate','5305433MSDnFO','componentDatatype','ellipsoid','pointer-events','reCreateWindTextures','setOptions','particlesSpeed','lng','default','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','Cesium','positionWC','now','mouseUp','geometry','_onMapWhellEvent','updateViewerParameters','CanvasWindField','sqrt','sources','attributeLocations','21033550DKjFJg','updateWindData','lastFramesPerSecond','primitives','updatePosition','PointTrans'];_0x55d3=function(){return _0x2daba2;};return _0x55d3();}const _0xf8226={};_0xf8226['value']=!![],Object['defineProperty'](exports,_0x4445ca(0x559,0x5e3),_0xf8226);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.11.1",
3
+ "version": "3.11.2",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.11.1"
8
+ "mars3d": "~3.11.2"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"