mars3d-wind 3.10.8 → 3.10.9

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.10.8
5
- * 编译日期:2025-11-06 21:52
4
+ * 版本信息:v3.10.9
5
+ * 编译日期:2025-11-28 11:00
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:火星科技免费公开版 ,2025-07-01
8
8
  */
@@ -11,5 +11,5 @@
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';(function(_0x22804b,_0x1c72e9){function _0x3e3ec7(_0x1babe4,_0x215d4e){return _0x5ceb(_0x1babe4-0xc4,_0x215d4e);}function _0x11f267(_0x4f6c60,_0x1f59f0){return _0x5ceb(_0x4f6c60-0x312,_0x1f59f0);}const _0x53feb7=_0x22804b();while(!![]){try{const _0x949054=-parseInt(_0x11f267(0x4dc,0x4b3))/0x1*(parseInt(_0x3e3ec7(0x2c6,0x322))/0x2)+-parseInt(_0x3e3ec7(0x247,0x2b5))/0x3+parseInt(_0x3e3ec7(0x2cb,0x293))/0x4+-parseInt(_0x11f267(0x47d,0x45d))/0x5*(parseInt(_0x11f267(0x48d,0x45e))/0x6)+-parseInt(_0x3e3ec7(0x26d,0x1fd))/0x7+-parseInt(_0x11f267(0x4f0,0x489))/0x8*(-parseInt(_0x11f267(0x440,0x467))/0x9)+parseInt(_0x3e3ec7(0x217,0x1e6))/0xa*(parseInt(_0x3e3ec7(0x288,0x230))/0xb);if(_0x949054===_0x1c72e9)break;else _0x53feb7['push'](_0x53feb7['shift']());}catch(_0x556449){_0x53feb7['push'](_0x53feb7['shift']());}}}(_0x3a67,0x4ad39));function _interopNamespace(_0x333e76){if(_0x333e76&&_0x333e76['__esModule'])return _0x333e76;var _0xb6f135=Object[_0x101a32(-0xe5,-0x12a)](null);function _0x101a32(_0x4c15f1,_0x260c5b){return _0x5ceb(_0x4c15f1- -0x2b2,_0x260c5b);}function _0x7f0a5f(_0x2cb6ef,_0xcc505d){return _0x5ceb(_0xcc505d- -0x320,_0x2cb6ef);}return _0x333e76&&Object['keys'](_0x333e76)[_0x101a32(-0xa4,-0x78)](function(_0x26d89e){function _0x4cab94(_0x2157dd,_0x4333bc){return _0x101a32(_0x4333bc-0xef,_0x2157dd);}function _0x4ae6e4(_0xe9ff50,_0x332293){return _0x7f0a5f(_0xe9ff50,_0x332293- -0x1f);}if(_0x26d89e!=='default'){var _0x25e3b4=Object[_0x4cab94(-0x19,-0x37)](_0x333e76,_0x26d89e);Object['defineProperty'](_0xb6f135,_0x26d89e,_0x25e3b4[_0x4cab94(-0xa,-0x7c)]?_0x25e3b4:{'enumerable':!![],'get':function(){return _0x333e76[_0x26d89e];}});}}),_0xb6f135['default']=_0x333e76,_0xb6f135;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x35d093(-0xa,0x45)];function getU(_0x54876c,_0x2d1fec){function _0x42fac3(_0x45419a,_0x442384){return _0x35d093(_0x45419a,_0x442384-0x15e);}const _0x5f1c59=_0x54876c*Math[_0x676ae3(-0x19c,-0x1a7)](Cesium$2[_0x42fac3(0x19d,0x17d)][_0x42fac3(0x2ae,0x237)](_0x2d1fec));function _0x676ae3(_0x9c87ca,_0x5f03c9){return _0x35d093(_0x5f03c9,_0x9c87ca- -0x1fb);}return _0x5f1c59;}function getV(_0x15f982,_0x4f2889){function _0x8a481(_0x3861f0,_0x482ad6){return _0x35d093(_0x3861f0,_0x482ad6-0x1f1);}const _0x375e16=_0x15f982*Math['sin'](Cesium$2[_0x8a481(0x1df,0x210)]['toRadians'](_0x4f2889));return _0x375e16;}function getSpeed(_0x27992f,_0x57c42c){function _0x3ee293(_0x1f05c1,_0x1ebb93){return _0x35d093(_0x1ebb93,_0x1f05c1-0x60);}const _0x47cd38=Math[_0xf70c25(0x2e6,0x30e)](Math[_0x3ee293(0xe1,0x96)](_0x27992f,0x2)+Math['pow'](_0x57c42c,0x2));function _0xf70c25(_0x1277af,_0x3b1d1c){return _0x35d093(_0x3b1d1c,_0x1277af-0x1e8);}return _0x47cd38;}function getDirection(_0x10cde1,_0x2e8524){let _0x41063e=Cesium$2['Math']['toDegrees'](Math[_0x1142f6(-0x7b,-0xff)](_0x2e8524,_0x10cde1));function _0x1142f6(_0x507c26,_0x26623a){return _0x35d093(_0x26623a,_0x507c26- -0x16d);}return _0x41063e+=_0x41063e<0x0?0x168:0x0,_0x41063e;}const _0x1750ce={};_0x1750ce['__proto__']=null,_0x1750ce['getU']=getU,_0x1750ce[_0x3e09ac(-0x1e0,-0x252)]=getV,_0x1750ce['getSpeed']=getSpeed,_0x1750ce[_0x3e09ac(-0x1f8,-0x1d7)]=getDirection;var WindUtil=_0x1750ce,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a';function _0x3e09ac(_0x5115a0,_0x4e438b){return _0x5ceb(_0x4e438b- -0x38e,_0x5115a0);}var calculateSpeedShader=_0x35d093(0x1b,0x8f),postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader=_0x3e09ac(-0x2e2,-0x262);const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x3e09ac(-0x2a0,-0x256)];class ShaderManager{static[_0x3e09ac(-0x240,-0x24a)](){function _0xdea866(_0x2c9cd7,_0x278a37){return _0x35d093(_0x278a37,_0x2c9cd7-0x129);}const _0x2d09={};return _0x2d09[_0xdea866(0x1a7,0x1da)]=[calculateSpeedShader],new ShaderSource$1(_0x2d09);}static['getUpdatePositionShader'](){const _0x5bfcf4={};function _0x1a5b2d(_0x148ac0,_0x26c13d){return _0x35d093(_0x148ac0,_0x26c13d- -0x1b9);}return _0x5bfcf4[_0x1a5b2d(-0x17a,-0x13b)]=[updatePositionShader],new ShaderSource$1(_0x5bfcf4);}static[_0x3e09ac(-0x1b5,-0x22b)](){const _0x184af5={};return _0x184af5['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x184af5);}static['getSegmentDrawFragmentShader'](){const _0x7269fd={};return _0x7269fd['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x7269fd);}static[_0x35d093(0xa6,0x7b)](){const _0x4adc60={};_0x4adc60[_0x14f288(-0x3e,0x51)]=[postProcessingPositionFragmentShader];function _0x14f288(_0x142967,_0x24d456){return _0x3e09ac(_0x24d456,_0x142967-0x1df);}return new ShaderSource$1(_0x4adc60);}}function _0x3a67(){const _0x1727ec=['update','blendEquation','original','createRawRenderState','off','execute','cos','10830140guIiXa','maxAge','_onMouseDownEvent','particlesSpeed','pickEllipsoid','age','_pointerEvents','colors','bufferUsage','log','LINEAR','ellipsoid','fill','fromCssColorString','_onMapWhellEvent','style','getSegmentDrawVertexShader','wheel','prototype','pixelFormat','rows','getPrimitives','_tomap','DEPTH_COMPONENT','824995oeqvTR','frameState.commandList\x20is\x20undefined','lineLength','getPostProcessingPositionShader','_speedRate','max\x20is\x20undefined,\x20calculate\x20max','sources','context','_calc_speedRate','pow','clientWidth','willReadFrequently','lat','SCENE3D','WindUtil','lineTo','6slKHEa','add','globe','frameRateMonitor','drawingBufferWidth','enabled','west','#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a','914328IcRbmz','canvasHeight','position','clear','normal','worker','persists','_randomParticle','EllipsoidalOccluder','getOwnPropertyDescriptor','_maxAge','frameRateAdjustment','south','xmin','setOptions','commandType','BaseLayer','tlng','mouseDown','pixelDatatype','floor','CanvasWindLayer','keys','viewport','min\x20is\x20undefined,\x20calculate\x20min','flipY','_colorRamp','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','clearFramebuffers','min','_onMouseMoveEvent','vertexArray','CanvasWindField','north','data','owner','bounds','unbindEvent','3442180FxqhhT','uniformMap','array','primitives','strokeStyle','vdata','camera','calculateSpeed','clearCommand','ymax','height','preExecute','cols','_createCanvas','getDirection','createComputingPrimitives','getContext','particlesTextureSize','lng','windField','useViewerBounds','canvasWind','type','geometry','updateWindData','bindEvent','initWorker','11BQkKVF','speedFactor','getDefaultRenderState','rawRenderState','particleSystem','dropRate','2067HEVmJj','talt','toRadians','create','destroyParticlesTextures','requestRender','clientHeight','cartesianToCartographic','umax','fixedHeight','frameRate','EventType','show','length','umin','isInExtent','visible','commandList','autoClear','removeEventListener','8LDDSGL','_onMouseUpEvent','outputTexture','fromGeometry','framebuffer','tlat','FLOAT','atan2','layer','createParticlesTextures','register','refreshTimer','createColorTableTexture','fragmentShaderSource','0px','onColorTableChange','resize','destroy','textures','sqrt','abs','east','pointerEvents','quietPeriod','createRenderingFramebuffers','mouseHidden','grid','values','setData','stringify','globalAlpha','NEAREST','now','WindLayer','TRIANGLES','componentDatatype','298npVvGB','speedRate','createSegmentsGeometry','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','xmax','1142180grQuPK','bind','options','canvasWidth','remove','OPAQUE','rectangle','forEach','mouseUp','updateViewerParameters','postMessage','LayerUtil','redraw','mouseMove','viewerParameters','mode','RGBA','mouse_down','width','currentParticlesPosition','shaderProgram','_addedHook','lineWidth','drawingBufferHeight','_animateFrame','getRandomLatLng','green','mars3d-canvasWind','morphComplete','pass','speed','vmax','segments','slice','random','Rectangle','dropRateBump','scene','container','push','Math','_updateIng','none','primitiveType','windTextures','_map','rendering','zIndex','commandToExecute','number','_setOptionsHook','changeOptions','framebuffers','depthMask','dynamic','fromCache','mouse_move','particles','displayRange','getUVByPoint','color','segmentsDepth','magnificationFilter','reverse','processWindData','isDynamic','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a','percentageChanged','1866852mmMMfE','canvas','max','Draw','applyViewerParameters','wind','createRenderingTextures','_removedHook','blue','particlesNumber','Cesium','windData','frameTime','alpha','getV','setDate','particlesTextures','attributeLocations','computing','Cartesian2','vmin','_bilinearInterpolation','getCalculateSpeedShader','postProcessingPosition','updatePosition','get','STATIC_DRAW','reCreateWindTextures','ymin','canvasContext'];_0x3a67=function(){return _0x1727ec;};return _0x3a67();}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x45d23f){this['commandType']=_0x45d23f[_0x39100b(-0x63,-0x79)],this[_0x37b3e6(0x50d,0x517)]=_0x45d23f[_0x39100b(-0x8c,-0x4b)];function _0x37b3e6(_0x79bf0a,_0x34ea01){return _0x3e09ac(_0x79bf0a,_0x34ea01-0x6e5);}this['attributeLocations']=_0x45d23f[_0x39100b(-0x152,-0xcc)];function _0x39100b(_0x1fbd82,_0x432fdb){return _0x35d093(_0x1fbd82,_0x432fdb- -0x118);}this['primitiveType']=_0x45d23f['primitiveType'],this['uniformMap']=_0x45d23f[_0x39100b(-0xb,-0x61)]||{},this['vertexShaderSource']=_0x45d23f['vertexShaderSource'],this[_0x37b3e6(0x5b1,0x542)]=_0x45d23f[_0x39100b(-0x24,-0x20)],this[_0x37b3e6(0x4a5,0x51e)]=_0x45d23f[_0x39100b(0x17,-0x44)],this[_0x37b3e6(0x5b8,0x539)]=_0x45d23f[_0x39100b(-0xb4,-0x29)],this[_0x39100b(0x34,-0x2b)]=_0x45d23f[_0x37b3e6(0x4a9,0x537)],this[_0x37b3e6(0x53a,0x533)]=_0x45d23f['autoClear']??![],this[_0x39100b(-0x12,-0x57)]=_0x45d23f['preExecute'],this['show']=!![],this[_0x39100b(-0x154,-0xf1)]=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x45d23f[_0x37b3e6(0x4de,0x482)]??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x1899ea){function _0x2a2bfd(_0x4f4de0,_0x196ab){return _0x3e09ac(_0x4f4de0,_0x196ab-0x381);}function _0x2dd663(_0x2101c1,_0x522eba){return _0x3e09ac(_0x2101c1,_0x522eba-0x4a5);}if(this['commandType']===_0x2a2bfd(0xad,0x124)){const _0x5b7478={};_0x5b7478[_0x2dd663(0x25f,0x289)]=_0x1899ea,_0x5b7478['geometry']=this[_0x2a2bfd(0x241,0x1b3)],_0x5b7478['attributeLocations']=this['attributeLocations'],_0x5b7478[_0x2dd663(0x1fd,0x272)]=BufferUsage$1[_0x2dd663(0x1db,0x25f)];const _0x14c8af=VertexArray$1[_0x2a2bfd(0x1e1,0x1d4)](_0x5b7478),_0x1e4626={};_0x1e4626['context']=_0x1899ea,_0x1e4626['vertexShaderSource']=this['vertexShaderSource'],_0x1e4626['fragmentShaderSource']=this['fragmentShaderSource'],_0x1e4626[_0x2dd663(0x283,0x256)]=this[_0x2a2bfd(0x165,0x132)];const _0x115607=ShaderProgram[_0x2dd663(0x29b,0x238)](_0x1e4626),_0x4cc348=RenderState[_0x2a2bfd(0xe2,0x114)](this[_0x2dd663(0x280,0x2de)]),_0x3633d6={};return _0x3633d6[_0x2a2bfd(0x15f,0x199)]=this,_0x3633d6[_0x2dd663(0x252,0x2b9)]=_0x14c8af,_0x3633d6[_0x2a2bfd(0x177,0x108)]=this['primitiveType'],_0x3633d6['modelMatrix']=Matrix4['IDENTITY'],_0x3633d6['renderState']=_0x4cc348,_0x3633d6['shaderProgram']=_0x115607,_0x3633d6['framebuffer']=this['framebuffer'],_0x3633d6[_0x2dd663(0x295,0x2c1)]=this['uniformMap'],_0x3633d6[_0x2a2bfd(0x293,0x217)]=Pass$1['OPAQUE'],new DrawCommand(_0x3633d6);}else{if(this['commandType']==='Compute'){const _0x353330={};return _0x353330['owner']=this,_0x353330[_0x2dd663(0x30b,0x302)]=this[_0x2a2bfd(0x1d1,0x1de)],_0x353330[_0x2dd663(0x29f,0x2c1)]=this[_0x2a2bfd(0x1f3,0x19d)],_0x353330['outputTexture']=this['outputTexture'],_0x353330[_0x2a2bfd(0xfe,0x17c)]=!![],new ComputeCommand(_0x353330);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x14adb1,_0x28c578){function _0x412da7(_0x578812,_0xef1152){return _0x35d093(_0xef1152,_0x578812-0x255);}function _0x233d4f(_0x434124,_0x10a8d7){return _0x35d093(_0x10a8d7,_0x434124-0x146);}this['geometry']=_0x28c578,defined(this[_0x233d4f(0x16d,0xee)])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x14adb1,'geometry':this['geometry'],'attributeLocations':this[_0x233d4f(0x192,0x21e)],'bufferUsage':BufferUsage$1[_0x233d4f(0x19b,0x206)]}));}['update'](_0x5de365){if(!this['isDynamic']())return;if(!this['show']||!defined(_0x5de365))return;!defined(this[_0x15b49a(0x3fd,0x3b8)])&&(this[_0x15b49a(0x32b,0x3b8)]=this['createCommand'](_0x5de365['context']));defined(this['preExecute'])&&this['preExecute']();if(!_0x5de365[_0x15b49a(0x4fe,0x479)]){console['warn'](_0x4fe79d(-0x138,-0x181));return;}function _0x15b49a(_0x58bdba,_0x26d757){return _0x3e09ac(_0x58bdba,_0x26d757-0x62c);}defined(this['clearCommand'])&&_0x5de365[_0x15b49a(0x462,0x479)]['push'](this[_0x15b49a(0x438,0x44f)]);function _0x4fe79d(_0x213e95,_0x234996){return _0x3e09ac(_0x213e95,_0x234996-0xa1);}defined(this[_0x15b49a(0x42d,0x3b8)])&&_0x5de365[_0x4fe79d(-0xea,-0x112)][_0x15b49a(0x398,0x3af)](this['commandToExecute']);}['isDestroyed'](){return![];}[_0x35d093(0x160,0xfc)](){if(defined(this['commandToExecute'])){var _0x3076a3;(_0x3076a3=this[_0x1db60e(-0x16b,-0xdd)][_0x1db60e(-0x6a,-0x25)])===null||_0x3076a3===void 0x0||_0x3076a3[_0x1db60e(-0x96,-0xb6)](),this[_0x1db60e(-0x16b,-0x136)]['shaderProgram']=undefined;}function _0x4db203(_0x3d6059,_0x28762d){return _0x35d093(_0x3d6059,_0x28762d- -0x17d);}function _0x1db60e(_0x19a766,_0x752e5d){return _0x35d093(_0x752e5d,_0x19a766- -0x192);}return destroyObject(this);}}function deepMerge(_0x4ae871,_0x459976){if(!_0x4ae871)return _0x459976;function _0x55f586(_0x5c99a3,_0x33d7d5){return _0x35d093(_0x33d7d5,_0x5c99a3- -0x2a2);}if(!_0x459976)return _0x4ae871;const _0x372d55={..._0x459976},_0x40cf2d=_0x372d55;for(const _0x37e95f in _0x4ae871){if(Object[_0x55f586(-0x230,-0x2af)]['hasOwnProperty']['call'](_0x4ae871,_0x37e95f)){const _0x2ad7af=_0x4ae871[_0x37e95f],_0x410b02=_0x459976[_0x37e95f];if(Array['isArray'](_0x2ad7af)){_0x40cf2d[_0x37e95f]=_0x2ad7af[_0x55f586(-0x16d,-0x1b5)]();continue;}if(_0x2ad7af&&typeof _0x2ad7af==='object'){_0x40cf2d[_0x37e95f]=deepMerge(_0x2ad7af,_0x410b02||{});continue;}_0x2ad7af!==undefined&&(_0x40cf2d[_0x37e95f]=_0x2ad7af);}}function _0x85787d(_0x33c953,_0x47dc33){return _0x3e09ac(_0x47dc33,_0x33c953-0x703);}return _0x40cf2d;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x4e39b6,_0x1fca1b,_0x1d0f50,_0x135ca4,_0x5a7615){this['context']=_0x4e39b6,this['options']=_0x1d0f50,this['viewerParameters']=_0x135ca4;function _0x1dc82a(_0x530deb,_0x24194b){return _0x3e09ac(_0x24194b,_0x530deb-0x3a8);}this['windData']=_0x1fca1b,this['frameRate']=0x3c,this[_0x5f14d6(0x3a1,0x394)]=0x1;const _0x1a0168={};_0x1a0168['scene']=_0x5a7615,_0x1a0168['samplingWindow']=0x1,_0x1a0168[_0x5f14d6(0x408,0x424)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x1a0168),this['initFrameRate']();function _0x5f14d6(_0x544ca5,_0x24c575){return _0x35d093(_0x24c575,_0x544ca5-0x306);}this['createWindTextures'](),this['createParticlesTextures'](),this[_0x1dc82a(0x1d2,0x1d9)]();}['initFrameRate'](){const _0xca4c5f=()=>{function _0x1d1be4(_0x2b5cfa,_0x491586){return _0x5ceb(_0x491586- -0xe6,_0x2b5cfa);}function _0x327b7a(_0x3499d1,_0x181588){return _0x5ceb(_0x181588- -0x9c,_0x3499d1);}this[_0x1d1be4(0x75,0x98)]['lastFramesPerSecond']>0x14&&(this[_0x327b7a(0xec,0x138)]=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this[_0x1d1be4(0xda,0xee)],0x1));};_0xca4c5f();const _0x121c63=setInterval(_0xca4c5f,0x3e8),_0x571d8c=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x121c63),_0x571d8c();};}['createWindTextures'](){function _0x8ec145(_0x39aa90,_0x1507d8){return _0x35d093(_0x1507d8,_0x39aa90-0x11f);}function _0x2bbc01(_0x40cb5a,_0x253f91){return _0x35d093(_0x40cb5a,_0x253f91- -0x13e);}const _0x45dd75={};_0x45dd75['minificationFilter']=TextureMinificationFilter$1[_0x8ec145(0x189,0x212)],_0x45dd75[_0x2bbc01(-0xb2,-0x109)]=TextureMagnificationFilter$1[_0x2bbc01(-0xc1,-0xd4)];const _0x30f174={'context':this['context'],'width':this[_0x8ec145(0x165,0x1c3)][_0x8ec145(0x245,0x229)],'height':this[_0x2bbc01(-0xfa,-0xf8)][_0x8ec145(0x1df,0x1c3)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x45dd75)};this[_0x2bbc01(-0x140,-0x11b)]={'U':new Texture$1({..._0x30f174,'source':{'arrayBufferView':new Float32Array(this[_0x2bbc01(-0xa0,-0xf8)]['u'][_0x2bbc01(-0x12,-0x86)])}}),'V':new Texture$1({..._0x30f174,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x506e53={};function _0x49bdde(_0x1074eb,_0x4e8e02){return _0x3e09ac(_0x4e8e02,_0x1074eb-0x77);}_0x506e53['minificationFilter']=TextureMinificationFilter$1['NEAREST'],_0x506e53['magnificationFilter']=TextureMagnificationFilter$1[_0x49bdde(-0x11a,-0x111)];function _0x2c5d1c(_0xbfe9d2,_0x26535a){return _0x3e09ac(_0xbfe9d2,_0x26535a-0x370);}const _0x5f4096={'context':this[_0x2c5d1c(0x15b,0x154)],'width':this[_0x2c5d1c(0x227,0x1eb)][_0x2c5d1c(0x1e1,0x19c)],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0x2c5d1c(0x203,0x1f9)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options'][_0x2c5d1c(0x1c9,0x19c)]*this[_0x49bdde(-0x10e,-0xb9)][_0x49bdde(-0x15d,-0x1ce)]*0x4)[_0x49bdde(-0x1b8,-0x14a)](0x0)},'sampler':new Sampler$1(_0x506e53)};this[_0x49bdde(-0x1d9,-0x1ee)]={'previousParticlesPosition':new Texture$1(_0x5f4096),'currentParticlesPosition':new Texture$1(_0x5f4096),'nextParticlesPosition':new Texture$1(_0x5f4096),'postProcessingPosition':new Texture$1(_0x5f4096),'particlesSpeed':new Texture$1(_0x5f4096)};}['destroyParticlesTextures'](){function _0x2225c1(_0x389951,_0xeaed2c){return _0x35d093(_0xeaed2c,_0x389951-0x227);}function _0x1b7548(_0x30398f,_0x13ca10){return _0x35d093(_0x13ca10,_0x30398f- -0x50);}Object['values'](this[_0x2225c1(0x272,0x2c9)])[_0x1b7548(0xcb,0xd5)](_0x8c0f94=>_0x8c0f94['destroy']());}[_0x35d093(0xa5,0xc5)](){function _0x12c3b4(_0x7e8337,_0x4b42bb){return _0x3e09ac(_0x7e8337,_0x4b42bb-0x39e);}function _0x87f16b(_0x5df00d,_0x5a22ae){return _0x35d093(_0x5a22ae,_0x5df00d-0x7d);}this[_0x12c3b4(0x1aa,0x1bc)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x87f16b(0xc3,0x69)]['u']['min'],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x12c3b4(0x1c2,0x149)]['v']['min'],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this[_0x12c3b4(0x104,0x149)]['speed']['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x2fc215(_0x54caa7,_0x53e5e2){return _0x87f16b(_0x54caa7-0x3b0,_0x53e5e2);}return(this[_0x2fc215(0x54f,0x583)]['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this[_0x87f16b(0xc3,0x70)]['width'],this[_0x12c3b4(0x1ad,0x149)][_0x87f16b(0x13d,0xc0)]),'minimum':()=>new Cartesian2$1(this[_0x12c3b4(0x1a6,0x149)]['bounds'][_0x12c3b4(0x1e4,0x191)],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this[_0x12c3b4(0x1b2,0x149)][_0x12c3b4(0x1c2,0x1b7)][_0x12c3b4(0x1fa,0x203)],this['windData']['bounds']['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures'][_0x87f16b(0xe0,0x16d)],'preExecute':()=>{const _0x188b71=this[_0x1cc6b9(0x507,0x493)]['previousParticlesPosition'];this[_0x1cc6b9(0x507,0x589)]['previousParticlesPosition']=this[_0x1cc6b9(0x507,0x57d)][_0x1cc6b9(0x5e3,0x65a)];function _0x18c744(_0x2673f1,_0x3c7887){return _0x87f16b(_0x2673f1-0x441,_0x3c7887);}this['particlesTextures'][_0x1cc6b9(0x5e3,0x5d2)]=this[_0x1cc6b9(0x507,0x52e)][_0x1cc6b9(0x50e,0x503)];function _0x1cc6b9(_0x54a7bc,_0x235514){return _0x12c3b4(_0x235514,_0x54a7bc-0x3b9);}this['particlesTextures']['postProcessingPosition']=_0x188b71,this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives'][_0x1cc6b9(0x579,0x528)][_0x1cc6b9(0x4e3,0x4a0)]['outputTexture']=this[_0x1cc6b9(0x507,0x4ea)][_0x1cc6b9(0x51f,0x4e8)]);},'isDynamic':()=>this[_0x12c3b4(0x191,0x219)][_0x87f16b(0xaa,0x8b)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x87f16b(0xc8,0x107)]['currentParticlesPosition'],'particlesSpeed':()=>this[_0x87f16b(0xc8,0xce)][_0x12c3b4(0x180,0x166)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x12c3b4(0x176,0x14e)]['nextParticlesPosition'],'preExecute':()=>{function _0x5521ee(_0x424589,_0x3526fb){return _0x87f16b(_0x3526fb-0x2d4,_0x424589);}function _0x144552(_0x1f5df5,_0x20b04a){return _0x87f16b(_0x1f5df5- -0x31c,_0x20b04a);}this['primitives']['updatePosition'][_0x5521ee(0x400,0x378)]&&(this[_0x144552(-0x1e6,-0x26d)]['updatePosition']['commandToExecute']['outputTexture']=this[_0x144552(-0x254,-0x258)]['nextParticlesPosition']);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this[_0x87f16b(0xc8,0x90)]['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0x12c3b4(0x112,0x149)]['bounds']['west'],this[_0x12c3b4(0x11f,0x149)][_0x12c3b4(0x238,0x1b7)][_0x12c3b4(0x28f,0x203)]),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this['windData'][_0x87f16b(0x131,0x18a)][_0x12c3b4(0x1c8,0x1b4)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this[_0x87f16b(0x193,0x125)]['dropRate'],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this['options'][_0x12c3b4(0x140,0x1cd)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x87f16b(0xc8,0x13d)][_0x12c3b4(0x10a,0x155)],'preExecute':()=>{function _0x4ada62(_0x5c8d34,_0x12c967){return _0x87f16b(_0x12c967-0x31,_0x5c8d34);}function _0x3b6900(_0x49d424,_0x5954ec){return _0x12c3b4(_0x49d424,_0x5954ec- -0x3c3);}this[_0x4ada62(0x1c0,0x167)][_0x4ada62(0x95,0x100)][_0x3b6900(-0x248,-0x299)]&&(this[_0x4ada62(0x1f4,0x167)][_0x4ada62(0x92,0x100)]['commandToExecute'][_0x3b6900(-0x1f9,-0x1d3)]=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0x87f16b(0x193,0x161)]['dynamic']})};}['reCreateWindTextures'](){this[_0x1da76f(0x1a9,0x223)]['U'][_0x18b38e(0x42d,0x3b4)]();function _0x1da76f(_0x55e4d0,_0x306adb){return _0x35d093(_0x55e4d0,_0x306adb-0x200);}this[_0x1da76f(0x26f,0x223)]['V']['destroy']();function _0x18b38e(_0x1ddea3,_0x5e9f44){return _0x35d093(_0x1ddea3,_0x5e9f44-0x2b8);}this['createWindTextures']();}['updateWindData'](_0x5c6dcc){function _0x515e30(_0x56e823,_0x3995c6){return _0x35d093(_0x3995c6,_0x56e823-0x482);}this[_0x515e30(0x4c8,0x449)]=_0x5c6dcc,this['reCreateWindTextures']();}['updateOptions'](_0x221e43){const _0x35a357=_0x221e43[_0x44b608(0x2e5,0x2b1)]!==undefined&&_0x221e43['flipY']!==this['options']['flipY'];function _0x44b608(_0x5613be,_0x34915c){return _0x35d093(_0x34915c,_0x5613be-0x23c);}function _0x5470fb(_0x280747,_0x3fcf52){return _0x35d093(_0x280747,_0x3fcf52-0x391);}this[_0x5470fb(0x51f,0x4a7)]=deepMerge(_0x221e43,this[_0x5470fb(0x4ba,0x4a7)]),_0x35a357&&this[_0x5470fb(0x388,0x3e7)]();}['processWindData'](_0x1e773e){const {array:_0x15e6e7}=_0x1e773e;let {min:_0x4b4c66,max:_0x109689}=_0x1e773e;const _0x42853b=new Float32Array(_0x15e6e7['length']);_0x4b4c66===undefined&&(console['warn'](_0x2e0184(-0x6f,0xd)),_0x4b4c66=Math['min'](..._0x15e6e7));_0x109689===undefined&&(console['warn'](_0x2e0184(0x6f,-0x1e)),_0x109689=Math['max'](..._0x15e6e7));const _0x182f69=Math[_0x2e0184(-0xb0,-0x5e)](Math[_0x2e0184(0xc9,0x64)](_0x4b4c66),Math['abs'](_0x109689));function _0x4c0e91(_0x13079d,_0x464030){return _0x35d093(_0x13079d,_0x464030- -0x65);}for(let _0x991bbc=0x0;_0x991bbc<_0x15e6e7['length'];_0x991bbc++){const _0xeb8582=_0x15e6e7[_0x991bbc]/_0x182f69;_0x42853b[_0x991bbc]=_0xeb8582;}function _0x2e0184(_0x51f9bf,_0x10a86b){return _0x3e09ac(_0x51f9bf,_0x10a86b-0x200);}return _0x42853b;}['destroy'](){Object['values'](this['windTextures'])['forEach'](_0x2211b8=>_0x2211b8['destroy']());function _0xc4843d(_0x56c58d,_0xa6841e){return _0x35d093(_0x56c58d,_0xa6841e- -0x2b9);}function _0x4a6732(_0xcc8bb1,_0x48dd05){return _0x35d093(_0x48dd05,_0xcc8bb1- -0x2cd);}Object[_0xc4843d(-0x23a,-0x1b3)](this['particlesTextures'])[_0xc4843d(-0x11f,-0x19e)](_0x31340b=>_0x31340b['destroy']()),Object[_0x4a6732(-0x1c7,-0x1fa)](this['primitives'])[_0x4a6732(-0x1b2,-0x20a)](_0x4d5fdf=>_0x4d5fdf['destroy']()),this[_0xc4843d(-0x270,-0x22e)][_0x4a6732(-0x1d1,-0x1ed)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x35d093(0xa,0x45)];class WindParticlesRendering{constructor(_0x3a265a,_0x36170b,_0x49854c,_0x18f9cd){this[_0x2601e1(0x1fa,0x1fb)]=_0x3a265a,this['options']=_0x36170b,this['viewerParameters']=_0x49854c,this[_0x2601e1(0x1c8,0x15e)]=_0x18f9cd;function _0x2601e1(_0x5cb5e8,_0x364b0e){return _0x3e09ac(_0x364b0e,_0x5cb5e8-0x416);}(typeof this[_0x2601e1(0x291,0x2a1)][_0x11e8cc(0x36,-0x3d)]!==_0x11e8cc(-0x4f,-0xdc)||this['options']['particlesTextureSize']<=0x0)&&(console['error'](_0x11e8cc(-0x71,0xe)),this['options']['particlesTextureSize']=0x100);function _0x11e8cc(_0x39c91d,_0x4981e7){return _0x3e09ac(_0x39c91d,_0x4981e7-0x197);}this['colorTable']=this['createColorTableTexture'](),this[_0x11e8cc(0x55,-0x7)]=this['createRenderingTextures'](),this['framebuffers']=this[_0x2601e1(0x27e,0x2d4)](),this[_0x2601e1(0x234,0x1ea)]=this['createPrimitives']();}[_0x3e09ac(-0x2e4,-0x25a)](){const _0x115416={};_0x115416[_0x290596(0x5a6,0x548)]=this[_0x290596(0x5c0,0x548)],_0x115416[_0xe3f928(0x4f6,0x523)]=this[_0xe3f928(0x44f,0x477)]['drawingBufferWidth'],_0x115416[_0x290596(0x568,0x589)]=this[_0x290596(0x4f5,0x548)]['drawingBufferHeight'],_0x115416['pixelFormat']=PixelFormat['RGBA'],_0x115416['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x1c0ed0=_0x115416,_0xd76084={};_0xd76084[_0x290596(0x515,0x548)]=this[_0x290596(0x559,0x548)],_0xd76084[_0xe3f928(0x4f6,0x57c)]=this[_0x290596(0x577,0x548)]['drawingBufferWidth'];function _0x290596(_0xf5ace7,_0x145194){return _0x35d093(_0xf5ace7,_0x145194-0x4c9);}_0xd76084['height']=this[_0xe3f928(0x44f,0x445)][_0xe3f928(0x4fb,0x4f0)],_0xd76084[_0x290596(0x542,0x53c)]=PixelFormat[_0x290596(0x594,0x540)],_0xd76084[_0xe3f928(0x473,0x4ac)]=PixelDatatype['UNSIGNED_INT'];function _0xe3f928(_0x441058,_0x42c5f9){return _0x3e09ac(_0x42c5f9,_0x441058-0x66b);}const _0x2a9a1f=_0xd76084;return{'segmentsColor':new Texture(_0x1c0ed0),'segmentsDepth':new Texture(_0x2a9a1f)};}['createRenderingFramebuffers'](){const _0x4e5e18={};function _0x5bb2b6(_0x115abe,_0x4ccfda){return _0x3e09ac(_0x4ccfda,_0x115abe-0x261);}return _0x4e5e18['context']=this[_0x5bb2b6(0x45,0x2a)],_0x4e5e18['colorTextures']=[this['textures']['segmentsColor']],_0x4e5e18['depthTexture']=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x4e5e18)};}['destoryRenderingFramebuffers'](){function _0x109e15(_0x3a7d84,_0xe901b1){return _0x3e09ac(_0x3a7d84,_0xe901b1-0x42b);}Object['values'](this[_0x109e15(0x16b,0x1bb)])['forEach'](_0x37f576=>{function _0x228f51(_0x4d69e5,_0xcb749f){return _0x109e15(_0x4d69e5,_0xcb749f- -0x44d);}_0x37f576[_0x228f51(-0x16f,-0x1c1)]();});}[_0x35d093(0x100,0xf7)](){const _0x46d792=new Float32Array(this[_0xe4f47c(0x4,0x70)][_0xe4f47c(-0xab,-0x10e)]['flatMap'](_0x19974e=>{function _0x3ef2bc(_0x5b1dd8,_0x38fc89){return _0xe4f47c(_0x38fc89-0x399,_0x5b1dd8);}function _0x664bbb(_0x539ad9,_0x23de3d){return _0xe4f47c(_0x23de3d-0x396,_0x539ad9);}const _0x18c3ff=Color$1[_0x3ef2bc(0x36e,0x2f4)](_0x19974e);return[_0x18c3ff['red'],_0x18c3ff[_0x3ef2bc(0x3e6,0x3b5)],_0x18c3ff[_0x664bbb(0x2ec,0x2c7)],_0x18c3ff[_0x3ef2bc(0x2b6,0x2cf)]];}));function _0x9543bf(_0x16aaec,_0x130a7a){return _0x3e09ac(_0x16aaec,_0x130a7a-0x121);}const _0x41917f={};function _0xe4f47c(_0x57f8cd,_0x5a7836){return _0x35d093(_0x5a7836,_0x57f8cd- -0x112);}return _0x41917f['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x41917f[_0x9543bf(-0x1b3,-0x145)]=TextureMagnificationFilter['LINEAR'],_0x41917f['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x41917f['wrapT']=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this['context'],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat[_0x9543bf(0x10,-0x56)],'pixelDatatype':PixelDatatype[_0x9543bf(-0xa8,-0x89)],'sampler':new Sampler(_0x41917f),'source':{'width':this[_0xe4f47c(0x4,0x1a)][_0xe4f47c(-0xab,-0x12d)]['length'],'height':0x1,'arrayBufferView':_0x46d792}});}['createSegmentsGeometry'](){function _0x3e69aa(_0x199d8e,_0x281aff){return _0x35d093(_0x281aff,_0x199d8e-0x214);}const _0x1f693e=0x4,_0x5405ae=this['options']['particlesTextureSize'];let _0x3e61c3=[];for(let _0x3d44b3=0x0;_0x3d44b3<_0x5405ae;_0x3d44b3++){for(let _0x3f4066=0x0;_0x3f4066<_0x5405ae;_0x3f4066++){for(let _0x2cf902=0x0;_0x2cf902<_0x1f693e;_0x2cf902++){_0x3e61c3[_0x3be45a(-0xf3,-0xee)](_0x3d44b3/_0x5405ae),_0x3e61c3[_0x3e69aa(0x232,0x2b9)](_0x3f4066/_0x5405ae);}}}_0x3e61c3=new Float32Array(_0x3e61c3);const _0x32e64c=this['options'][_0x3e69aa(0x2db,0x29b)]**0x2;let _0x4b23d7=[];for(let _0x4813e=0x0;_0x4813e<_0x32e64c;_0x4813e++){_0x4b23d7['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x4b23d7=new Float32Array(_0x4b23d7);let _0x2972f1=[];for(let _0x4f3da8=0x0,_0x36d6f2=0x0;_0x4f3da8<_0x32e64c;_0x4f3da8++){_0x2972f1[_0x3e69aa(0x232,0x2aa)](_0x36d6f2+0x0,_0x36d6f2+0x1,_0x36d6f2+0x2,_0x36d6f2+0x2,_0x36d6f2+0x1,_0x36d6f2+0x3),_0x36d6f2+=_0x1f693e;}_0x2972f1=new Uint32Array(_0x2972f1);const _0xe7ba65={};_0xe7ba65[_0x3e69aa(0x322,0x380)]=ComponentDatatype['FLOAT'],_0xe7ba65['componentsPerAttribute']=0x2,_0xe7ba65['values']=_0x3e61c3;const _0x57bcd6={};_0x57bcd6['componentDatatype']=ComponentDatatype['FLOAT'],_0x57bcd6['componentsPerAttribute']=0x3,_0x57bcd6['values']=_0x4b23d7;const _0x2794e8=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0xe7ba65),'normal':new GeometryAttribute(_0x57bcd6)}),'indices':_0x2972f1});function _0x3be45a(_0x101865,_0x47cd83){return _0x35d093(_0x47cd83,_0x101865- -0x111);}return _0x2794e8;}[_0x35d093(0x81,0x5c)](_0x592e49){const _0x2094e9={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x592e49};function _0x2aa82e(_0x341b93,_0x2e73f3){return _0x35d093(_0x2e73f3,_0x341b93-0x2da);}return Appearance[_0x2aa82e(0x3ad,0x324)](!![],![],_0x2094e9);}['createPrimitives'](){const _0x2e723a={};_0x2e723a['st']=0x0,_0x2e723a[_0x5ef48b(0x346,0x350)]=0x1;const _0x54e950={};_0x54e950[_0x5ef48b(0x33f,0x303)]=!![];const _0x282e5e={};_0x282e5e[_0x5ef48b(0x33f,0x3af)]=!![],_0x282e5e[_0x5ef48b(0x30c,0x306)]=WebGLRenderingContext['FUNC_ADD'],_0x282e5e['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x282e5e['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x56fdb3={};function _0x5ef48b(_0x46733e,_0x2d4bae){return _0x3e09ac(_0x2d4bae,_0x46733e-0x54d);}_0x56fdb3[_0x3850c2(-0x233,-0x243)]=undefined,_0x56fdb3['depthTest']=_0x54e950,_0x56fdb3[_0x5ef48b(0x2de,0x326)]=!![],_0x56fdb3['blending']=_0x282e5e;const _0x2e3ab5=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x2e723a,'geometry':this[_0x5ef48b(0x3c3,0x37f)](),'primitiveType':PrimitiveType[_0x3850c2(-0x1cd,-0x1dd)],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x5ef48b(0x2fd,0x371)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing'][_0x5ef48b(0x2fd,0x271)]['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x5ef48b(0x2ff,0x2cd)][_0x5ef48b(0x2fd,0x2e4)]['postProcessingPosition'],'particlesSpeed':()=>this[_0x3850c2(-0x28d,-0x300)]['particlesTextures'][_0x3850c2(-0x277,-0x2dc)],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{var _0x4cc3e4,_0x341a6d;function _0x34ac31(_0x15eb54,_0x4cdef8){return _0x5ef48b(_0x4cdef8-0x1e3,_0x15eb54);}const _0x2ec41f=new Cartesian2(((_0x4cc3e4=this[_0x34ac31(0x60d,0x5ab)]['domain'])===null||_0x4cc3e4===void 0x0?void 0x0:_0x4cc3e4[_0x4cd54c(0x489,0x485)])??this['computing'][_0x4cd54c(0x422,0x408)][_0x4cd54c(0x50e,0x49f)]['min'],((_0x341a6d=this['options']['domain'])===null||_0x341a6d===void 0x0?void 0x0:_0x341a6d[_0x34ac31(0x524,0x4d2)])??this['computing'][_0x34ac31(0x4ad,0x4db)][_0x4cd54c(0x50e,0x575)][_0x34ac31(0x497,0x4d2)]);function _0x4cd54c(_0x94d2b4,_0x580553){return _0x5ef48b(_0x94d2b4-0x12a,_0x580553);}return _0x2ec41f;},'displayRange':()=>{var _0x308160,_0x152cfd;function _0xc04083(_0xfe9878,_0x426826){return _0x5ef48b(_0x426826-0x11e,_0xfe9878);}const _0xdd0d1c=new Cartesian2(((_0x308160=this['options']['displayRange'])===null||_0x308160===void 0x0?void 0x0:_0x308160['min'])??this[_0x89f2cc(0x261,0x229)]['windData'][_0x89f2cc(0x31e,0x30e)][_0xc04083(0x40d,0x47d)],((_0x152cfd=this['options'][_0xc04083(0x46b,0x401)])===null||_0x152cfd===void 0x0?void 0x0:_0x152cfd['max'])??this['computing'][_0xc04083(0x479,0x416)]['speed'][_0xc04083(0x404,0x40d)]);function _0x89f2cc(_0x3d7bab,_0x5de939){return _0x5ef48b(_0x5de939- -0xd6,_0x3d7bab);}return _0xdd0d1c;},'particleHeight':()=>this['options'][_0x3850c2(-0x1fa,-0x228)]||0x0,'aspect':()=>this['context'][_0x5ef48b(0x33e,0x2ee)]/this['context'][_0x5ef48b(0x3dd,0x37f)],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{const _0x54ce12={};_0x54ce12['min']=0x1,_0x54ce12['max']=0x2;function _0x4ba6d7(_0x342749,_0x18b995){return _0x5ef48b(_0x342749- -0x51a,_0x18b995);}const _0x2a79f0=this[_0x4ba6d7(-0x152,-0x18a)]['lineWidth']||_0x54ce12;return new Cartesian2(_0x2a79f0['min'],_0x2a79f0['max']);},'lineLength':()=>{function _0x3d47ab(_0x5ed37f,_0x5e77d6){return _0x3850c2(_0x5e77d6-0x119,_0x5ed37f);}const _0x14d174={};_0x14d174['min']=0x14;function _0x5a0642(_0x3496cb,_0xbfca62){return _0x5ef48b(_0x3496cb-0x4e,_0xbfca62);}_0x14d174['max']=0x64;const _0x5bd817=this[_0x3d47ab(-0x45,-0xab)][_0x3d47ab(-0x1ac,-0x147)]||_0x14d174;return new Cartesian2(_0x5bd817['min'],_0x5bd817['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x5ef48b(0x337,0x2da)],'segmentsDepthTexture':()=>this[_0x3850c2(-0x1dd,-0x232)][_0x3850c2(-0x2a6,-0x2e7)]},'vertexShaderSource':ShaderManager[_0x5ef48b(0x322,0x2a8)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x56fdb3)}),_0x210115={};_0x210115['segments']=_0x2e3ab5;function _0x3850c2(_0x8ccac0,_0x31750d){return _0x3e09ac(_0x31750d,_0x8ccac0- -0x3f);}return _0x210115;}['onParticlesTextureSizeChange'](){const _0x13a162=this['createSegmentsGeometry']();this[_0x27793d(0x5f4,0x577)]['segments'][_0x27793d(0x536,0x58b)]=_0x13a162;const _0xd903c9={};function _0x27793d(_0x349d12,_0x5a2f61){return _0x35d093(_0x349d12,_0x5a2f61-0x4be);}_0xd903c9['context']=this[_0x285908(-0x41,-0x69)],_0xd903c9[_0x27793d(0x5ec,0x58b)]=_0x13a162;function _0x285908(_0x51bd9f,_0x29e8f1){return _0x3e09ac(_0x29e8f1,_0x51bd9f-0x1db);}_0xd903c9['attributeLocations']=this['primitives']['segments'][_0x27793d(0x4ea,0x50a)],_0xd903c9[_0x285908(-0x58,0xb)]=BufferUsage['STATIC_DRAW'];const _0x7e453=VertexArray['fromGeometry'](_0xd903c9);this['primitives']['segments'][_0x27793d(0x491,0x4e5)]&&(this['primitives'][_0x27793d(0x580,0x5f2)]['commandToExecute']['vertexArray']=_0x7e453);}['onColorTableChange'](){this['colorTable']['destroy']();function _0x2d35cb(_0x81d1f6,_0x14e2b2){return _0x3e09ac(_0x81d1f6,_0x14e2b2-0x4c0);}this['colorTable']=this[_0x2d35cb(0x39f,0x31c)]();}['updateOptions'](_0x56b74e){function _0x23b58b(_0x55a266,_0x1659a9){return _0x3e09ac(_0x1659a9,_0x55a266-0x5c6);}const _0x32adf4=_0x56b74e['colors']&&JSON[_0x20355e(0x478,0x440)](_0x56b74e['colors'])!==JSON['stringify'](this['options']['colors']);this['options']=deepMerge(_0x56b74e,this['options']);function _0x20355e(_0x39fc02,_0x2e5b7b){return _0x35d093(_0x2e5b7b,_0x39fc02-0x370);}_0x32adf4&&this[_0x20355e(0x46a,0x44d)]();}[_0x35d093(0xbb,0xfc)](){Object['values'](this['framebuffers'])['forEach'](_0x596f32=>{function _0x29341c(_0x2f675c,_0x478174){return _0x5ceb(_0x2f675c-0x12,_0x478174);}_0x596f32[_0x29341c(0x201,0x1ba)]();}),Object['values'](this['primitives'])['forEach'](_0x2423e2=>{_0x2423e2['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0xaf0bf9,_0x31dcbc,_0x2c1e08,_0x417a61,_0x55fa93){this[_0x101bf5(0x189,0x131)]=_0xaf0bf9;function _0x6611b9(_0x2e0275,_0x50dc05){return _0x3e09ac(_0x50dc05,_0x2e0275-0x209);}this['options']=_0x2c1e08,this['viewerParameters']=_0x417a61,this['computing']=new WindParticlesComputing(_0xaf0bf9,_0x31dcbc,_0x2c1e08,_0x417a61,_0x55fa93);function _0x101bf5(_0x3eddb2,_0x498ca7){return _0x35d093(_0x498ca7,_0x3eddb2-0x10a);}this['rendering']=new WindParticlesRendering(_0xaf0bf9,_0x2c1e08,_0x417a61,this['computing']),this[_0x6611b9(0x1a,0x99)]();}['getPrimitives'](){const _0x282a7f=[this['computing']['primitives']['calculateSpeed'],this['computing']['primitives'][_0x2d2edc(-0x40,0x3d)],this['computing']['primitives'][_0x528683(0x1f3,0x246)],this[_0x2d2edc(-0x6e,-0xd0)][_0x528683(0x25a,0x222)]['segments']];function _0x2d2edc(_0x116a4a,_0x468cec){return _0x3e09ac(_0x468cec,_0x116a4a-0x208);}function _0x528683(_0x283bb3,_0x3f38ef){return _0x35d093(_0x3f38ef,_0x283bb3-0x1a1);}return _0x282a7f;}['clearFramebuffers'](){const _0x4c97d0=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x1fe35d(-0x112,-0xe8)]});function _0x1fe35d(_0x57e7e4,_0x1af59e){return _0x3e09ac(_0x1af59e,_0x57e7e4-0x70);}function _0x441370(_0x5ef121,_0x6b3ed2){return _0x35d093(_0x6b3ed2,_0x5ef121-0xc4);}Object[_0x441370(0x16a,0x134)](this[_0x441370(0xe9,0xc4)][_0x1fe35d(-0x200,-0x209)])[_0x441370(0x1df,0x26a)](_0x2c244f=>{function _0x355555(_0x17334b,_0x336cc5){return _0x1fe35d(_0x17334b-0x63e,_0x336cc5);}_0x4c97d0['framebuffer']=this['rendering'][_0x54a523(0x4,0x9)][_0x2c244f];function _0x54a523(_0x5868d9,_0x235304){return _0x1fe35d(_0x235304-0x209,_0x5868d9);}_0x4c97d0[_0x54a523(-0x44,0x3c)](this['context']);});}['changeOptions'](_0x4b5d47){let _0x31a06b=![];_0x4b5d47['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x4b5d47['particlesTextureSize']&&(_0x31a06b=!![]);const _0x39ccc1=deepMerge(_0x4b5d47,this[_0x19d914(0x426,0x459)]);if(_0x39ccc1[_0x19d914(0x3d7,0x459)]<0x1)throw new Error(_0x19d914(0x3bb,0x334));this['options']=_0x39ccc1,this['rendering']['updateOptions'](_0x4b5d47);function _0x21cef0(_0x13af46,_0x439581){return _0x35d093(_0x439581,_0x13af46-0x10e);}function _0x19d914(_0x4a8cf4,_0x58127e){return _0x3e09ac(_0x58127e,_0x4a8cf4-0x5ab);}this['computing']['updateOptions'](_0x4b5d47),_0x31a06b&&(this[_0x19d914(0x35d,0x2da)][_0x21cef0(0x1e9,0x202)](),this['computing'][_0x19d914(0x404,0x465)](),this[_0x19d914(0x335,0x35b)]['onParticlesTextureSizeChange']());}[_0x3e09ac(-0x299,-0x25c)](_0x287d7d){function _0x563b05(_0x583d94,_0x552ff9){return _0x35d093(_0x583d94,_0x552ff9- -0x12c);}this['viewerParameters']=_0x287d7d,this[_0x563b05(-0xdd,-0xdf)]['viewerParameters']=_0x287d7d,this['rendering']['viewerParameters']=_0x287d7d;}['destroy'](){function _0x53de6f(_0x5f29e1,_0x317eff){return _0x3e09ac(_0x5f29e1,_0x317eff-0x3fc);}function _0x327578(_0x4e745b,_0x4090a8){return _0x3e09ac(_0x4090a8,_0x4e745b- -0x20);}this[_0x53de6f(0x208,0x1ae)]['destroy'](),this['rendering'][_0x327578(-0x1bf,-0x176)]();}}function _0x35d093(_0x3695b1,_0x34a834){return _0x5ceb(_0x34a834- -0xf3,_0x3695b1);}const Cesium$1=mars3d__namespace[_0x3e09ac(-0x221,-0x256)],BaseLayer$1=mars3d__namespace['layer'][_0x3e09ac(-0x1d1,-0x1fb)],_0xc9185d={};_0xc9185d[_0x35d093(0x29,0xad)]=0x1,_0xc9185d['max']=0x2;const _0x27812b={};_0x27812b['min']=0x14,_0x27812b['max']=0x64;const _0x19992d={};function _0x5ceb(_0x59a82d,_0x263221){const _0x3a6752=_0x3a67();return _0x5ceb=function(_0x5cebc3,_0x4678fe){_0x5cebc3=_0x5cebc3-0x10f;let _0x50b78f=_0x3a6752[_0x5cebc3];return _0x50b78f;},_0x5ceb(_0x59a82d,_0x263221);}_0x19992d['particlesTextureSize']=0x64,_0x19992d[_0x3e09ac(-0x1f0,-0x1bb)]=0x0,_0x19992d['lineWidth']=_0xc9185d,_0x19992d[_0x3e09ac(-0x22a,-0x221)]=_0x27812b,_0x19992d[_0x3e09ac(-0x19e,-0x1c9)]=0x1,_0x19992d[_0x3e09ac(-0x247,-0x1c5)]=0.003,_0x19992d[_0x35d093(0x1c5,0x138)]=0.001,_0x19992d['colors']=['rgb(206,255,255)'],_0x19992d[_0x35d093(0x23,0xa9)]=![],_0x19992d[_0x3e09ac(-0x28c,-0x26e)]=!![];const DEF_OPTIONS=_0x19992d;class WindLayer extends BaseLayer$1{constructor(_0x2a518c={}){_0x2a518c={...DEF_OPTIONS,..._0x2a518c};function _0x275f04(_0x1e68dd,_0x165aea){return _0x35d093(_0x165aea,_0x1e68dd-0x29f);}super(_0x2a518c),this[_0x275f04(0x2c8,0x28a)](_0x2a518c,_0x2a518c);}get[_0x3e09ac(-0x236,-0x1a8)](){return this['primitives'];}get[_0x35d093(0x118,0xb2)](){function _0x2f7384(_0x4d45aa,_0x2db18b){return _0x35d093(_0x2db18b,_0x4d45aa-0x460);}return this[_0x2f7384(0x576,0x4f6)]['data'];}set['data'](_0x47de61){function _0xa433cb(_0x212997,_0x4f41f0){return _0x35d093(_0x4f41f0,_0x212997-0x18b);}function _0x195606(_0x11de78,_0x2e32da){return _0x35d093(_0x2e32da,_0x11de78-0x45c);}this[_0xa433cb(0x2a1,0x296)][_0xa433cb(0x23d,0x2a1)]=_0x47de61,this[_0xa433cb(0x292,0x216)](_0x47de61);}get['colors'](){function _0x199fce(_0x49d274,_0x26aabe){return _0x35d093(_0x49d274,_0x26aabe-0x205);}return this[_0x199fce(0x37a,0x31b)]['colors'];}set['colors'](_0x1679f8){this['options'][_0x4c180b(-0xb,0x53)]=_0x1679f8;const _0x4325c4={};_0x4325c4['colors']=_0x1679f8;function _0x4c180b(_0x5bc0dd,_0x392c52){return _0x35d093(_0x5bc0dd,_0x392c52- -0x14);}this['_setOptionsHook'](this['options'],_0x4325c4);}['_showHook'](_0x41a8d7){function _0x506ca8(_0x4469c8,_0x21d57f){return _0x35d093(_0x21d57f,_0x4469c8- -0x86);}_0x41a8d7?this['_addedHook']():this[_0x506ca8(-0x44,-0x6f)]();}['_mountedHook'](){}['_addedHook'](){this[_0x2fffa0(0x1a6,0x1a8)]=this[_0x2fffa0(0x1ae,0x1e3)][_0x2fffa0(0x1a6,0x13e)];function _0x2fffa0(_0x10b18f,_0xd4edc5){return _0x35d093(_0xd4edc5,_0x10b18f-0x18a);}this['camera']=this['_map']['camera'];this['options']['data']&&this['setData'](this['options'][_0x2fffa0(0x23c,0x1ff)]);if(!this['windData']||!this[_0x80fe89(0x45d,0x43e)])return;this[_0x2fffa0(0x2ac,0x23a)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x80fe89(0x396,0x34b)][_0x2fffa0(0x2ad,0x23d)]},this['updateViewerParameters'](),this[_0x80fe89(0x44f,0x4c9)]=new WindParticleSystem(this[_0x2fffa0(0x1a6,0x1da)][_0x80fe89(0x3f9,0x403)],this[_0x80fe89(0x3c0,0x41b)],this[_0x80fe89(0x490,0x409)],this['viewerParameters'],this[_0x2fffa0(0x1a6,0x20e)]),this[_0x80fe89(0x433,0x3c2)]=this[_0x2fffa0(0x25f,0x2ad)][_0x80fe89(0x3ef,0x37e)](),this[_0x2fffa0(0x243,0x1f9)]['forEach'](_0x2831f7=>{function _0x3d26cb(_0x2327d6,_0x36b329){return _0x80fe89(_0x2327d6- -0x3b3,_0x36b329);}function _0x5a1685(_0x1e5d80,_0x3fc95a){return _0x80fe89(_0x3fc95a- -0x458,_0x1e5d80);}this[_0x5a1685(-0xea,-0xc2)][_0x3d26cb(0x80,0x3)][_0x5a1685(-0x91,-0x55)](_0x2831f7);});function _0x80fe89(_0x35d0c6,_0x23196c){return _0x35d093(_0x23196c,_0x35d0c6-0x37a);}this['camera'][_0x2fffa0(0x1c4,0x186)]=0.01,this[_0x2fffa0(0x246,0x1f2)]['changed']['addEventListener'](this[_0x2fffa0(0x2a7,0x2ba)][_0x2fffa0(0x29f,0x2dc)](this)),this[_0x80fe89(0x396,0x339)][_0x80fe89(0x4aa,0x494)]['addEventListener'](this['updateViewerParameters']['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters'][_0x2fffa0(0x29f,0x279)](this));}['_removedHook'](){function _0x3e924e(_0x3711a7,_0x5776da){return _0x35d093(_0x3711a7,_0x5776da- -0x21d);}this['camera']['changed']['removeEventListener'](this['updateViewerParameters'][_0x1300a0(-0x80,-0x4)](this));function _0x1300a0(_0x5ddfbb,_0xb9b742){return _0x35d093(_0x5ddfbb,_0xb9b742- -0x119);}this['scene'][_0x3e924e(-0xd8,-0xed)][_0x1300a0(-0x4a,-0x2f)](this[_0x3e924e(-0x10f,-0x100)]['bind'](this)),window['removeEventListener']('resize',this['updateViewerParameters'][_0x1300a0(-0x8a,-0x4)](this)),this['primitives']&&(this[_0x3e924e(-0x1b0,-0x164)]['forEach'](_0x3941f9=>{function _0x33763c(_0x1ef946,_0x319e94){return _0x1300a0(_0x319e94,_0x1ef946-0x37a);}function _0x47f2e7(_0x60af4a,_0x55583f){return _0x3e924e(_0x55583f,_0x60af4a-0x1a9);}this['scene'][_0x33763c(0x31a,0x3a0)][_0x47f2e7(0xa4,0x130)](_0x3941f9);}),delete this[_0x1300a0(-0x7,-0x60)]),this[_0x3e924e(-0x1b7,-0x148)]&&(this[_0x3e924e(-0x121,-0x148)][_0x3e924e(-0xfe,-0x121)](),delete this['particleSystem']);}[_0x3e09ac(-0x11b,-0x194)](_0x98ec77,_0x21fc71){this['windData']=this[_0x5688f5(0x3ca,0x427)](_0x98ec77);function _0x5688f5(_0x16e22b,_0x274c33){return _0x3e09ac(_0x16e22b,_0x274c33-0x68b);}if(_0x21fc71){this[_0x217394(0x19d,0x22a)](),this[_0x217394(0x284,0x311)]();return;}function _0x217394(_0x4ef6ef,_0x291ba1){return _0x35d093(_0x4ef6ef,_0x291ba1-0x1e8);}this['particleSystem']?(this[_0x217394(0x274,0x2bd)]['computing'][_0x217394(0x271,0x2b6)](this[_0x5688f5(0x42e,0x436)]),this[_0x217394(0x1e5,0x204)][_0x217394(0x272,0x2c4)]()):this['_addedHook']();}[_0x3e09ac(-0x26d,-0x272)](_0x4caca4,_0x326c4a){function _0x173abf(_0x5e6d6b,_0x4ec1ed){return _0x3e09ac(_0x4ec1ed,_0x5e6d6b- -0x22);}function _0x36aefd(_0x46e2d2,_0x5a98c0){return _0x35d093(_0x5a98c0,_0x46e2d2-0x482);}this['particleSystem']&&(this['particleSystem'][_0x173abf(-0x293,-0x297)](_0x326c4a),this[_0x173abf(-0x2a1,-0x25e)][_0x173abf(-0x1e1,-0x185)]());}['processWindData'](_0x2cf56b){var _0x2d7132,_0x489308;const _0x12bcf4={..._0x2cf56b},_0x548e76=_0x12bcf4;!_0x548e76['height']&&_0x548e76['rows']&&(_0x548e76['height']=_0x548e76['rows']);function _0x232cac(_0x41d9a4,_0x1e5174){return _0x35d093(_0x1e5174,_0x41d9a4- -0x1b6);}!_0x548e76['width']&&_0x548e76['cols']&&(_0x548e76['width']=_0x548e76[_0x16867d(-0x6c,-0x73)]);!_0x548e76['bounds']&&(_0x548e76[_0x16867d(-0x7a,-0xfb)]={'west':_0x548e76['xmin'],'south':_0x548e76[_0x16867d(-0xd7,-0x53)],'east':_0x548e76[_0x16867d(-0x1b,-0x47)],'north':_0x548e76['ymax']});function _0x16867d(_0x114896,_0x3e252a){return _0x35d093(_0x3e252a,_0x114896- -0x12e);}if(!_0x548e76['u']){const _0x33ac2f={};_0x33ac2f[_0x16867d(-0x76,-0x88)]=_0x2cf56b['udata'],_0x33ac2f['min']=_0x2cf56b[_0x16867d(-0x49,-0x42)],_0x33ac2f['max']=_0x2cf56b[_0x16867d(-0x4f,-0x1f)],_0x548e76['u']=_0x33ac2f;}if(!_0x548e76['v']){const _0x297067={};_0x297067['array']=_0x2cf56b['vdata'],_0x297067[_0x16867d(-0x81,-0x40)]=_0x2cf56b[_0x232cac(-0x167,-0x1cb)],_0x297067['max']=_0x2cf56b[_0x232cac(-0x83,-0x2d)],_0x548e76['v']=_0x297067;}if(((_0x2d7132=_0x548e76['speed'])===null||_0x2d7132===void 0x0?void 0x0:_0x2d7132['min'])===undefined||((_0x489308=_0x548e76[_0x232cac(-0x84,-0xff)])===null||_0x489308===void 0x0?void 0x0:_0x489308['max'])===undefined||_0x548e76['speed']['array']===undefined){const _0x5ce3c0={'array':new Float32Array(_0x548e76['u']['array'][_0x16867d(-0x4a,-0x55)]),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x2caf07=0x0;_0x2caf07<_0x548e76['u'][_0x232cac(-0xfe,-0x14b)][_0x232cac(-0xd2,-0x11a)];_0x2caf07++){_0x5ce3c0['array'][_0x2caf07]=Math['sqrt'](_0x548e76['u'][_0x232cac(-0xfe,-0xa2)][_0x2caf07]*_0x548e76['u'][_0x232cac(-0xfe,-0xff)][_0x2caf07]+_0x548e76['v'][_0x232cac(-0xfe,-0xf2)][_0x2caf07]*_0x548e76['v'][_0x16867d(-0x76,0xf)][_0x2caf07]),_0x5ce3c0['array'][_0x2caf07]!==0x0&&(_0x5ce3c0['min']=Math[_0x16867d(-0x81,-0x84)](_0x5ce3c0[_0x232cac(-0x109,-0xa4)],_0x5ce3c0[_0x232cac(-0xfe,-0x153)][_0x2caf07]),_0x5ce3c0['max']=Math[_0x16867d(-0xf1,-0xbb)](_0x5ce3c0['max'],_0x5ce3c0['array'][_0x2caf07]));}_0x548e76[_0x16867d(0x4,0x35)]=_0x5ce3c0;}return _0x548e76;}[_0x35d093(0x144,0x11d)](){var _0x399536;const _0x20abe8=this[_0x1b956b(0xb1,0xd8)];if(!_0x20abe8)return;const _0x4a19ba=_0x20abe8['canvas'],_0x280f8d={};_0x280f8d['x']=0x0,_0x280f8d['y']=0x0;const _0x9bf7c={};_0x9bf7c['x']=0x0,_0x9bf7c['y']=_0x4a19ba['clientHeight'];const _0x37f388={};function _0x1b956b(_0x528ace,_0x2c8a10){return _0x3e09ac(_0x2c8a10,_0x528ace-0x330);}_0x37f388['x']=_0x4a19ba[_0x1b956b(0x117,0x8a)],_0x37f388['y']=0x0;const _0x57ddf0={};_0x57ddf0['x']=_0x4a19ba['clientWidth'],_0x57ddf0['y']=_0x4a19ba['clientHeight'];const _0x12d707=[_0x280f8d,_0x9bf7c,_0x37f388,_0x57ddf0];let _0x20f9a1=0xb4,_0x4e450c=-0xb4,_0x2603af=0x5a,_0x43b1c7=-0x5a;function _0xeab7e8(_0x2cb905,_0x498aab){return _0x35d093(_0x2cb905,_0x498aab-0x1f);}let _0x52e9e2=![];for(const _0x32829c of _0x12d707){const _0x13eec6=_0x20abe8['camera'][_0xeab7e8(0x43,0x83)](new Cesium$1['Cartesian2'](_0x32829c['x'],_0x32829c['y']),_0x20abe8['globe'][_0xeab7e8(0xe5,0x8a)]);if(!_0x13eec6){_0x52e9e2=!![];break;}const _0x6994f3=_0x20abe8[_0xeab7e8(0x9e,0xa9)][_0x1b956b(0x100,0xe2)][_0xeab7e8(0x9b,0xfd)](_0x13eec6),_0x184bab=Cesium$1['Math']['toDegrees'](_0x6994f3['longitude']),_0x40d6a5=Cesium$1['Math']['toDegrees'](_0x6994f3['latitude']);_0x20f9a1=Math['min'](_0x20f9a1,_0x184bab),_0x4e450c=Math[_0xeab7e8(0x94,0x5c)](_0x4e450c,_0x184bab),_0x2603af=Math['min'](_0x2603af,_0x40d6a5),_0x43b1c7=Math['max'](_0x43b1c7,_0x40d6a5);}if(!_0x52e9e2){const _0x3f22a1=new Cesium$1[(_0xeab7e8(0x65,0x6d))](Math['max'](this['windData']['bounds']['west'],_0x20f9a1),Math[_0xeab7e8(0x96,0xcc)](this[_0x1b956b(0xdb,0x169)][_0xeab7e8(0xe5,0xd3)]['east'],_0x4e450c)),_0xf657b9=new Cesium$1['Cartesian2'](Math['max'](this[_0xeab7e8(0xbc,0x65)][_0xeab7e8(0xc1,0xd3)][_0xeab7e8(0x113,0xbb)],_0x2603af),Math['min'](this['windData']['bounds']['north'],_0x43b1c7)),_0x746832=(_0x3f22a1['y']-_0x3f22a1['x'])*0.05,_0x9b1163=(_0xf657b9['y']-_0xf657b9['x'])*0.05;_0x3f22a1['x']=Math[_0xeab7e8(0x3a,0x5c)](this['windData'][_0x1b956b(0x149,0xf0)]['west'],_0x3f22a1['x']-_0x746832),_0x3f22a1['y']=Math[_0x1b956b(0x142,0x102)](this['windData'][_0xeab7e8(0x77,0xd3)]['east'],_0x3f22a1['y']+_0x746832),_0xf657b9['x']=Math[_0xeab7e8(-0x15,0x5c)](this['windData']['bounds'][_0xeab7e8(0xe4,0xbb)],_0xf657b9['x']-_0x9b1163),_0xf657b9['y']=Math['min'](this['windData']['bounds'][_0x1b956b(0x146,0x1a9)],_0xf657b9['y']+_0x9b1163),this[_0xeab7e8(0x10f,0x141)]['lonRange']=_0x3f22a1,this['viewerParameters']['latRange']=_0xf657b9;const _0xdba137=this[_0xeab7e8(0x49,0x65)][_0x1b956b(0x149,0x151)][_0x1b956b(0x195,0x131)]-this[_0x1b956b(0xdb,0x135)]['bounds']['west'],_0x11d29f=this['windData']['bounds'][_0xeab7e8(0x122,0xd0)]-this[_0x1b956b(0xdb,0x15b)][_0xeab7e8(0x13e,0xd3)]['south'],_0x40e21a=(_0x3f22a1['y']-_0x3f22a1['x'])/_0xdba137,_0x44bf02=(_0xf657b9['y']-_0xf657b9['x'])/_0x11d29f,_0x76142f=Math['min'](_0x40e21a,_0x44bf02),_0x410ee0=0x3e8*_0x76142f;_0x410ee0>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0x410ee0)));}this[_0x1b956b(0x1b7,0x147)]['sceneMode']=this['scene'][_0xeab7e8(0x1ce,0x142)],(_0x399536=this[_0xeab7e8(0x14b,0xf4)])===null||_0x399536===void 0x0||_0x399536['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x110b2e,_0x301639){const {bounds:_0x5905d4,width:_0x3e0315,height:_0x57095c,u:_0xc795a8,v:_0x480396,speed:_0x1b9399}=this[_0x161969(0x39e,0x371)],{flipY:_0x5e4c75}=this[_0x106562(0x255,0x279)];function _0x106562(_0x2ad8a9,_0x4301e0){return _0x3e09ac(_0x2ad8a9,_0x4301e0-0x3fe);}if(_0x110b2e<_0x5905d4[_0x161969(0x3e6,0x3ec)]||_0x110b2e>_0x5905d4['east']||_0x301639<_0x5905d4['south']||_0x301639>_0x5905d4[_0x161969(0x409,0x3be)])return null;const _0xed7e2=(_0x110b2e-_0x5905d4['west'])/(_0x5905d4[_0x161969(0x458,0x48a)]-_0x5905d4['west'])*(_0x3e0315-0x1);let _0x2a9deb=(_0x301639-_0x5905d4['south'])/(_0x5905d4['north']-_0x5905d4['south'])*(_0x57095c-0x1);_0x5e4c75&&(_0x2a9deb=_0x57095c-0x1-_0x2a9deb);function _0x161969(_0x1a0efc,_0x29ffde){return _0x3e09ac(_0x29ffde,_0x1a0efc-0x5f3);}const _0x1a4a2d=Math['floor'](_0xed7e2),_0x5e107c=Math['floor'](_0x2a9deb),_0x4cf55b=Math[_0x106562(0x1d8,0x207)](_0xed7e2),_0x14fe2b=Math['min'](_0x4cf55b+0x1,_0x3e0315-0x1),_0x5cc857=Math[_0x161969(0x3fc,0x3f2)](_0x2a9deb),_0x21154a=Math['min'](_0x5cc857+0x1,_0x57095c-0x1),_0xc7d41a=_0xed7e2-_0x4cf55b,_0x1eab5a=_0x2a9deb-_0x5cc857,_0x3e8a10=_0x5e107c*_0x3e0315+_0x1a4a2d,_0x75a0c1=_0x5cc857*_0x3e0315+_0x4cf55b,_0x5a5d6e=_0x5cc857*_0x3e0315+_0x14fe2b,_0x146f6d=_0x21154a*_0x3e0315+_0x4cf55b,_0x48fa93=_0x21154a*_0x3e0315+_0x14fe2b,_0xe6821c=_0xc795a8[_0x161969(0x410,0x454)][_0x75a0c1],_0x3b485c=_0xc795a8['array'][_0x5a5d6e],_0x249e52=_0xc795a8[_0x161969(0x410,0x44c)][_0x146f6d],_0x510bfc=_0xc795a8[_0x161969(0x410,0x474)][_0x48fa93],_0x4a752a=(0x1-_0xc7d41a)*(0x1-_0x1eab5a)*_0xe6821c+_0xc7d41a*(0x1-_0x1eab5a)*_0x3b485c+(0x1-_0xc7d41a)*_0x1eab5a*_0x249e52+_0xc7d41a*_0x1eab5a*_0x510bfc,_0x55039c=_0x480396[_0x161969(0x410,0x468)][_0x75a0c1],_0x5ed2e4=_0x480396['array'][_0x5a5d6e],_0x17e3e2=_0x480396[_0x106562(0x290,0x21b)][_0x146f6d],_0x27e58a=_0x480396[_0x161969(0x410,0x3b8)][_0x48fa93],_0x563490=(0x1-_0xc7d41a)*(0x1-_0x1eab5a)*_0x55039c+_0xc7d41a*(0x1-_0x1eab5a)*_0x5ed2e4+(0x1-_0xc7d41a)*_0x1eab5a*_0x17e3e2+_0xc7d41a*_0x1eab5a*_0x27e58a,_0x54fe33=Math['sqrt'](_0x4a752a*_0x4a752a+_0x563490*_0x563490),_0x2dd44d={};_0x2dd44d['u']=_0xc795a8[_0x161969(0x410,0x3ed)][_0x3e8a10],_0x2dd44d['v']=_0x480396[_0x161969(0x410,0x3c0)][_0x3e8a10],_0x2dd44d[_0x161969(0x48a,0x4fc)]=_0x1b9399['array'][_0x3e8a10];const _0x3039a4={};_0x3039a4['u']=_0x4a752a,_0x3039a4['v']=_0x563490,_0x3039a4['speed']=_0x54fe33;const _0x2c7ea7={};return _0x2c7ea7[_0x161969(0x3b3,0x3bf)]=_0x2dd44d,_0x2c7ea7['interpolated']=_0x3039a4,_0x2c7ea7;}}mars3d__namespace[_0x35d093(0xc5,0x11f)][_0x35d093(0xad,0xf5)](_0x3e09ac(-0x205,-0x25b),WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this[_0x300c16(0x3bb,0x33a)]=null,this['tlng']=null;function _0xbaa03(_0x34571e,_0x2d799b){return _0x3e09ac(_0x34571e,_0x2d799b- -0x52);}this[_0x300c16(0x3c2,0x3a6)]=null;function _0x300c16(_0x5d915e,_0x320223){return _0x3e09ac(_0x5d915e,_0x320223-0x551);}this['age']=null,this['speed']=null;}['destroy'](){for(const _0x60dc9e in this){delete this[_0x60dc9e];}}}class CanvasWindField{constructor(_0x195525){function _0x398a88(_0x112603,_0x1d1fc3){return _0x3e09ac(_0x112603,_0x1d1fc3-0x33e);}this[_0x398a88(0x145,0x141)](_0x195525);}get['speedRate'](){function _0x3539e0(_0x196838,_0x4b63c8){return _0x3e09ac(_0x4b63c8,_0x196838-0x457);}return this[_0x3539e0(0x238,0x23e)];}set[_0x3e09ac(-0x1df,-0x18b)](_0x4ddc44){function _0x5bf084(_0x10c6a2,_0x178fa6){return _0x35d093(_0x178fa6,_0x10c6a2- -0x234);}function _0x3de050(_0x12a9fd,_0x45255b){return _0x35d093(_0x12a9fd,_0x45255b-0x3e3);}this['_speedRate']=(0x64-(_0x4ddc44>0x63?0x63:_0x4ddc44))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this[_0x5bf084(-0x1b8,-0x171)],(this[_0x3de050(0x4fe,0x4a2)]-this[_0x5bf084(-0x1dd,-0x20d)])/this['_speedRate']];}get[_0x35d093(0xef,0x61)](){function _0x4217f0(_0x2c8560,_0x38675e){return _0x35d093(_0x38675e,_0x2c8560-0x328);}return this[_0x4217f0(0x3c2,0x422)];}set[_0x35d093(0xaa,0x61)](_0x63d38f){this['_maxAge']=_0x63d38f;}['setOptions'](_0x41d664){this['options']=_0x41d664;function _0x2b5b64(_0x113416,_0x5a0c7d){return _0x35d093(_0x5a0c7d,_0x113416-0x3dc);}this[_0x2ab24e(-0x1a0,-0x1d2)]=_0x41d664['maxAge']||0x78,this['speedRate']=_0x41d664[_0x2b5b64(0x4ec,0x527)]||0x32,this['particles']=[];const _0x224da8=_0x41d664[_0x2ab24e(-0x1bd,-0x144)]||0x1000;function _0x2ab24e(_0xb6d2a0,_0x49cac9){return _0x3e09ac(_0x49cac9,_0xb6d2a0-0x9a);}for(let _0x484613=0x0;_0x484613<_0x224da8;_0x484613++){const _0x561abb=this[_0x2b5b64(0x473,0x4ad)](new CanvasParticle());this['particles'][_0x2b5b64(0x3fa,0x3d8)](_0x561abb);}}['setDate'](_0x1cc264){this['rows']=_0x1cc264['rows'],this[_0x50a1d4(0x37a,0x363)]=_0x1cc264['cols'],this['xmin']=_0x1cc264['xmin'],this['xmax']=_0x1cc264['xmax'],this[_0x50a1d4(0x29a,0x2f8)]=_0x1cc264['ymin'],this[_0x50a1d4(0x3df,0x360)]=_0x1cc264['ymax'],this[_0x50a1d4(0x393,0x3a6)]=[];const _0x26eebf=_0x1cc264['udata'],_0x5510d3=_0x1cc264[_0x140f73(0x4a3,0x4bd)];let _0xcc0935=![];_0x26eebf[_0x50a1d4(0x367,0x385)]===this[_0x140f73(0x4ca,0x476)]&&_0x26eebf[0x0]['length']===this[_0x140f73(0x45f,0x4c4)]&&(_0xcc0935=!![]);function _0x140f73(_0x454c34,_0x1ba627){return _0x35d093(_0x454c34,_0x1ba627-0x402);}let _0x5d4f6d=0x0,_0x390c5f=null,_0xa5079=null;function _0x50a1d4(_0x1d72b1,_0x27961c){return _0x35d093(_0x1d72b1,_0x27961c-0x2a1);}for(let _0xdb2b38=0x0;_0xdb2b38<this[_0x50a1d4(0x314,0x315)];_0xdb2b38++){_0x390c5f=[];for(let _0x57dcf5=0x0;_0x57dcf5<this['cols'];_0x57dcf5++,_0x5d4f6d++){_0xcc0935?_0xa5079=this['_calcUV'](_0x26eebf[_0xdb2b38][_0x57dcf5],_0x5510d3[_0xdb2b38][_0x57dcf5]):_0xa5079=this['_calcUV'](_0x26eebf[_0x5d4f6d],_0x5510d3[_0x5d4f6d]),_0x390c5f['push'](_0xa5079);}this[_0x50a1d4(0x3e5,0x3a6)]['push'](_0x390c5f);}!this['options'][_0x50a1d4(0x389,0x34a)]&&this['grid'][_0x140f73(0x3e3,0x438)]();}[_0x35d093(0x5b,0x93)](){delete this[_0x33dc3e(-0xc8,-0x143)];function _0x33dc3e(_0x47f8ca,_0x17eb36){return _0x3e09ac(_0x47f8ca,_0x17eb36-0xe4);}delete this['cols'],delete this['xmin'],delete this['xmax'];function _0x1116a7(_0x50f3f1,_0x16a636){return _0x35d093(_0x16a636,_0x50f3f1- -0x29f);}delete this['ymin'],delete this['ymax'],delete this[_0x1116a7(-0x19a,-0x1e8)],delete this['particles'];}['toGridXY'](_0x518418,_0x102379){const _0x346894=(_0x518418-this['xmin'])/(this[_0x5454bc(0x305,0x2e1)]-this['xmin'])*(this[_0x5454bc(0x2b4,0x31f)]-0x1),_0x3abce5=(this['ymax']-_0x102379)/(this['ymax']-this['ymin'])*(this[_0x7ca842(0xb1,0x134)]-0x1);function _0x7ca842(_0x5864b6,_0x123630){return _0x3e09ac(_0x5864b6,_0x123630-0x35b);}function _0x5454bc(_0x28d7b8,_0x3700e2){return _0x35d093(_0x3700e2,_0x28d7b8-0x1f2);}return[_0x346894,_0x3abce5];}['getUVByXY'](_0xd43bb2,_0x218a90){if(_0xd43bb2<0x0||_0xd43bb2>=this['cols']||_0x218a90>=this['rows'])return[0x0,0x0,0x0];function _0x80f926(_0x5b0a1e,_0x50264a){return _0x35d093(_0x50264a,_0x5b0a1e-0x19e);}const _0x26de5e=Math['floor'](_0xd43bb2),_0x4ff81a=Math[_0x80f926(0x242,0x262)](_0x218a90);if(_0x26de5e===_0xd43bb2&&_0x4ff81a===_0x218a90)return this[_0x80f926(0x2a3,0x303)][_0x218a90][_0xd43bb2];const _0x436aba=_0x26de5e+0x1,_0x4f6773=_0x4ff81a+0x1,_0x1629c8=this['getUVByXY'](_0x26de5e,_0x4ff81a),_0x1000f2=this['getUVByXY'](_0x436aba,_0x4ff81a),_0x20512a=this['getUVByXY'](_0x26de5e,_0x4f6773),_0x127f66=this['getUVByXY'](_0x436aba,_0x4f6773);let _0x5cffd5=null;try{_0x5cffd5=this['_bilinearInterpolation'](_0xd43bb2-_0x26de5e,_0x218a90-_0x4ff81a,_0x1629c8,_0x1000f2,_0x20512a,_0x127f66);}catch(_0x1d8f75){console[_0x80f926(0x207,0x1a3)](_0xd43bb2,_0x218a90);}function _0x3bb600(_0x5e7102,_0x11d1ce){return _0x3e09ac(_0x5e7102,_0x11d1ce-0x562);}return _0x5cffd5;}[_0x35d093(0xa7,0x50)](_0x5b78b0,_0x2ae061,_0x492c20,_0x1bbc22,_0x43e7be,_0x28c788){const _0x499695=0x1-_0x5b78b0,_0x395fb8=0x1-_0x2ae061,_0x4f3d99=_0x499695*_0x395fb8,_0x1c1caa=_0x5b78b0*_0x395fb8,_0x11decd=_0x499695*_0x2ae061,_0x6cf04b=_0x5b78b0*_0x2ae061,_0x5a5cc8=_0x492c20[0x0]*_0x4f3d99+_0x1bbc22[0x0]*_0x1c1caa+_0x43e7be[0x0]*_0x11decd+_0x28c788[0x0]*_0x6cf04b,_0x20b5d2=_0x492c20[0x1]*_0x4f3d99+_0x1bbc22[0x1]*_0x1c1caa+_0x43e7be[0x1]*_0x11decd+_0x28c788[0x1]*_0x6cf04b;return this['_calcUV'](_0x5a5cc8,_0x20b5d2);}['_calcUV'](_0x6f0a05,_0x5eca26){return[+_0x6f0a05,+_0x5eca26,Math['sqrt'](_0x6f0a05*_0x6f0a05+_0x5eca26*_0x5eca26)];}['getUVByPoint'](_0x21efcb,_0x10b1fe){if(!this[_0x2341b5(0x16d,0x1ac)](_0x21efcb,_0x10b1fe))return null;function _0x2341b5(_0x394488,_0x8b22c){return _0x35d093(_0x8b22c,_0x394488-0x87);}const _0x1bd8a4=this['toGridXY'](_0x21efcb,_0x10b1fe),_0x3f78bd=this['getUVByXY'](_0x1bd8a4[0x0],_0x1bd8a4[0x1]);return _0x3f78bd;}['isInExtent'](_0x5d2c4e,_0xaf540a){return _0x5d2c4e>=this['xmin']&&_0x5d2c4e<=this['xmax']&&_0xaf540a>=this['ymin']&&_0xaf540a<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0x46800b(_0x39be2d,_0x4a4330){return _0x35d093(_0x4a4330,_0x39be2d-0xb3);}const _0x3e30a0=fRandomByfloat(this[_0x46800b(0x150,0x1a7)],this['xmax']),_0x4fb0fc=fRandomByfloat(this['ymin'],this[_0x46800b(0x172,0x136)]),_0x27f34c={};_0x27f34c['lat']=_0x4fb0fc,_0x27f34c['lng']=_0x3e30a0;function _0x426120(_0x2f061d,_0xee32ea){return _0x3e09ac(_0x2f061d,_0xee32ea-0x6cf);}return _0x27f34c;}['getParticles'](){function _0x4cb06e(_0x27f491,_0x5a19b5){return _0x3e09ac(_0x27f491,_0x5a19b5-0x2f3);}let _0x1fb283,_0xe43f80,_0x400b06;function _0x25b6a5(_0x4375b4,_0x5a2247){return _0x35d093(_0x5a2247,_0x4375b4- -0xd6);}for(let _0x1565ba=0x0,_0x179d29=this['particles']['length'];_0x1565ba<_0x179d29;_0x1565ba++){let _0x44ba32=this['particles'][_0x1565ba];_0x44ba32['age']<=0x0&&(_0x44ba32=this[_0x4cb06e(0x9e,0xef)](_0x44ba32));if(_0x44ba32[_0x25b6a5(-0x71,-0x1e)]>0x0){const _0x2ef86c=_0x44ba32['tlng'],_0x3b1b81=_0x44ba32[_0x25b6a5(0x1a,0x36)];_0x400b06=this['getUVByPoint'](_0x2ef86c,_0x3b1b81),_0x400b06?(_0x1fb283=_0x2ef86c+this[_0x25b6a5(-0x56,-0x23)][0x0]*_0x400b06[0x0],_0xe43f80=_0x3b1b81+this[_0x4cb06e(0x161,0xd8)][0x1]*_0x400b06[0x1],_0x44ba32['lng']=_0x2ef86c,_0x44ba32[_0x25b6a5(-0x52,-0xc7)]=_0x3b1b81,_0x44ba32[_0x25b6a5(-0x35,-0xc3)]=_0x1fb283,_0x44ba32[_0x25b6a5(0x1a,-0x6d)]=_0xe43f80,_0x44ba32['speed']=_0x400b06[0x2],_0x44ba32[_0x4cb06e(0x65,0xbd)]--):_0x44ba32['age']=0x0;}}return this[_0x25b6a5(-0xa6,-0x10a)];}['_randomParticle'](_0x5f4f4e){let _0x16d0dc,_0x586ad3;for(let _0x4999f6=0x0;_0x4999f6<0x1e;_0x4999f6++){_0x16d0dc=this[_0xd44213(0x51b,0x4ea)](),_0x586ad3=this[_0x5626fd(0x34e,0x301)](_0x16d0dc[_0x5626fd(0x3e4,0x3c4)],_0x16d0dc[_0x5626fd(0x3a0,0x3ea)]);if(_0x586ad3&&_0x586ad3[0x2]>0x0)break;}if(!_0x586ad3)return _0x5f4f4e;const _0x5c3cde=_0x16d0dc['lng']+this['_calc_speedRate'][0x0]*_0x586ad3[0x0];function _0x5626fd(_0x26bbc5,_0x487b58){return _0x35d093(_0x487b58,_0x26bbc5-0x31c);}const _0x4530f5=_0x16d0dc['lat']+this[_0x5626fd(0x39c,0x3ff)][0x1]*_0x586ad3[0x1];_0x5f4f4e['lng']=_0x16d0dc[_0xd44213(0x4db,0x485)],_0x5f4f4e['lat']=_0x16d0dc['lat'];function _0xd44213(_0x31d26f,_0x3f11aa){return _0x3e09ac(_0x31d26f,_0x3f11aa-0x658);}return _0x5f4f4e['tlng']=_0x5c3cde,_0x5f4f4e['tlat']=_0x4530f5,_0x5f4f4e[_0xd44213(0x3c3,0x422)]=Math['round'](0xa+Math[_0xd44213(0x49e,0x4f3)]()*this['maxAge']),_0x5f4f4e[_0x5626fd(0x44e,0x4c4)]=_0x586ad3[0x2],_0x5f4f4e;}['destroy'](){for(const _0x29bcc6 in this){delete this[_0x29bcc6];}}}function fRandomByfloat(_0x462b57,_0xa1bd7c){return _0x462b57+Math['random']()*(_0xa1bd7c-_0x462b57);}const Cesium=mars3d__namespace[_0x3e09ac(-0x2a4,-0x256)],BaseLayer=mars3d__namespace['layer'][_0x35d093(0x124,0xa0)];class CanvasWindLayer extends BaseLayer{constructor(_0x58ccc4={}){super(_0x58ccc4);function _0x29d30d(_0x4a6bfd,_0x4bdcc7){return _0x3e09ac(_0x4bdcc7,_0x4a6bfd-0x38e);}function _0x491c1c(_0x256ccd,_0x5ea369){return _0x35d093(_0x5ea369,_0x256ccd- -0xe4);}this[_0x29d30d(0x11c,0x1a5)](_0x58ccc4),this[_0x491c1c(-0xa8,-0x9a)]=null,_0x58ccc4['colors']&&_0x58ccc4['steps']&&(this[_0x29d30d(0x19d,0x1be)]=new mars3d__namespace['ColorRamp'](_0x58ccc4));}[_0x3e09ac(-0x2f9,-0x272)](_0x55ad44,_0x5f19dc){function _0x131465(_0xb5388b,_0x4ee3cc){return _0x3e09ac(_0x4ee3cc,_0xb5388b-0x6b0);}this[_0x131465(0x45c,0x4c3)]=0x3e8/(_0x55ad44[_0x383113(0x359,0x31f)]||0xa),this['_pointerEvents']=this[_0x383113(0x317,0x354)]['pointerEvents']??![];function _0x383113(_0x37f651,_0x2015f9){return _0x35d093(_0x37f651,_0x2015f9-0x23e);}this['color']=_0x55ad44[_0x131465(0x448,0x4b7)]||'#ffffff',this[_0x131465(0x53f,0x556)]=_0x55ad44['lineWidth']||0x1,this['fixedHeight']=_0x55ad44[_0x131465(0x4f5,0x4b7)]??0x0,this[_0x383113(0x333,0x2e7)]=_0x55ad44['flipY']??![],this[_0x383113(0x366,0x307)]&&this[_0x131465(0x4de,0x464)]['setOptions'](_0x55ad44);}get[_0x35d093(0x10a,0xf3)](){return this['canvas'];}get['canvasWidth'](){function _0x1cbff6(_0x340c3d,_0x19739a){return _0x35d093(_0x19739a,_0x340c3d-0x31e);}return this['_map']['scene'][_0x1cbff6(0x35a,0x308)]['clientWidth'];}get[_0x35d093(0xcc,0x91)](){function _0x3f6623(_0x736eca,_0x267c27){return _0x35d093(_0x267c27,_0x736eca- -0x163);}function _0x57505f(_0x21fd1a,_0x164ccd){return _0x35d093(_0x164ccd,_0x21fd1a- -0xda);}return this[_0x57505f(-0xb6,-0x87)][_0x57505f(-0xbe,-0x12d)][_0x3f6623(-0x127,-0x14f)]['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x3e09ac(-0x129,-0x19a)](_0x55da88){this[_0x2635a4(-0x124,-0xb3)]=_0x55da88;if(!this['canvas'])return;function _0x2635a4(_0x4a2e04,_0x4fe43d){return _0x35d093(_0x4a2e04,_0x4fe43d- -0x119);}function _0x4f96da(_0x4f1b52,_0x1e6599){return _0x35d093(_0x4f1b52,_0x1e6599- -0x1c5);}_0x55da88?this['canvas']['style']['pointer-events']='all':this[_0x2635a4(-0x103,-0xdd)]['style']['pointer-events']=_0x2635a4(-0xee,-0xf8);}get[_0x3e09ac(-0x1e8,-0x257)](){function _0x5e689f(_0x58ce08,_0x576b02){return _0x3e09ac(_0x58ce08,_0x576b02-0x4a1);}return this[_0x5e689f(0x28f,0x31c)]['particlesNumber'];}set[_0x35d093(-0x27,0x44)](_0x103fe4){this[_0x531787(0x1a8,0x193)]['particlesNumber']=_0x103fe4,clearTimeout(this['_canrefresh']);function _0x531787(_0x1339d0,_0x242cf0){return _0x3e09ac(_0x242cf0,_0x1339d0-0x32d);}this['_canrefresh']=setTimeout(()=>{function _0x322eff(_0x488180,_0x2c756f){return _0x531787(_0x2c756f- -0x2a,_0x488180);}this[_0x322eff(0x1cb,0x188)]();},0x1f4);}get[_0x35d093(0xc5,0x110)](){return this['options']['speedRate'];}set['speedRate'](_0x568004){function _0x58a5c6(_0x5a0713,_0x5c613c){return _0x35d093(_0x5a0713,_0x5c613c-0x24c);}function _0xfc18f9(_0x1167ba,_0x225994){return _0x3e09ac(_0x1167ba,_0x225994-0x56d);}this[_0xfc18f9(0x38d,0x3e8)]['speedRate']=_0x568004,this['windField']&&(this[_0xfc18f9(0x402,0x39b)][_0x58a5c6(0x3a0,0x35c)]=_0x568004);}get[_0x35d093(0x89,0x61)](){function _0x2aeab4(_0x5dde69,_0x296014){return _0x35d093(_0x296014,_0x5dde69-0x1f7);}return this['options'][_0x2aeab4(0x258,0x20b)];}set['maxAge'](_0x3fca0c){function _0x116522(_0xd1ee9e,_0xbff8c5){return _0x35d093(_0xd1ee9e,_0xbff8c5-0x38e);}this[_0x116522(0x52a,0x4a4)]['maxAge']=_0x3fca0c;function _0x5dbd91(_0x1672b3,_0x377a49){return _0x3e09ac(_0x1672b3,_0x377a49-0x487);}this[_0x5dbd91(0x2ad,0x2b5)]&&(this['windField']['maxAge']=_0x3fca0c);}get[_0x35d093(0xea,0xb2)](){function _0x6fe656(_0x571c68,_0x36cac2){return _0x3e09ac(_0x36cac2,_0x571c68-0x199);}return this[_0x6fe656(-0xbc,-0x85)];}set[_0x35d093(0x64,0xb2)](_0x1f8f07){this['setData'](_0x1f8f07);}get[_0x3e09ac(-0x108,-0x181)](){let _0x490d24=this['windData']['xmin'],_0x33d29f=this[_0x36db78(0x416,0x429)]['xmax'],_0x5c2f63=this['windData'][_0x36db78(0x427,0x457)],_0x3fbb94=this['windData'][_0x3bb2dc(0x3f,0x8f)];_0x33d29f>=0x167&&_0x490d24===0x0&&(_0x490d24=-0xb4,_0x33d29f=0xb4);_0x490d24=Math['max'](_0x490d24,-0xb4);function _0x36db78(_0x2ccf7a,_0xa3f1b4){return _0x35d093(_0xa3f1b4,_0x2ccf7a-0x3d0);}function _0x3bb2dc(_0x474d6a,_0x6252ee){return _0x3e09ac(_0x474d6a,_0x6252ee-0x26b);}return _0x33d29f=Math['min'](_0x33d29f,0xb4),_0x5c2f63=Math['max'](_0x5c2f63,-0x5a),_0x3fbb94=Math['min'](_0x3fbb94,0x5a),Cesium[_0x3bb2dc(0x156,0x107)]['fromDegrees'](_0x490d24,_0x5c2f63,_0x33d29f,_0x3fbb94);}['_showHook'](_0x38438c){function _0x16977d(_0x73a1fa,_0x26c97e){return _0x3e09ac(_0x26c97e,_0x73a1fa-0x464);}function _0x33ff2e(_0xbf4af8,_0x49b406){return _0x35d093(_0x49b406,_0xbf4af8-0x161);}_0x38438c?this['_addedHook']():(this['windData']&&(this[_0x33ff2e(0x277,0x2ab)]['data']=this['windData']),this[_0x16977d(0x20b,0x222)]());}['_mountedHook'](){function _0x172927(_0x5d7374,_0x580a4d){return _0x35d093(_0x5d7374,_0x580a4d-0x4c1);}function _0x4b0f90(_0x4fa101,_0x34ca81){return _0x35d093(_0x4fa101,_0x34ca81- -0x2ba);}this[_0x172927(0x660,0x5d7)][_0x4b0f90(-0x1ac,-0x225)]?this['initWorker']():this[_0x172927(0x58d,0x58a)]=new CanvasWindField(this[_0x172927(0x619,0x5d7)]);}[_0x3e09ac(-0x1c9,-0x172)](){this[_0xe17565(-0x9,-0x88)]=this[_0xe17565(0x7e,0xdf)]();const _0x3dee8c={};_0x3dee8c[_0x46170f(0x463,0x448)]=!![],this[_0x46170f(0x465,0x41d)]=this[_0xe17565(-0x9,-0x2)][_0x46170f(0x429,0x48b)]('2d',_0x3dee8c),this[_0xe17565(0x8a,0x2d)]();function _0x46170f(_0x4c1293,_0x4cdf05){return _0x3e09ac(_0x4c1293,_0x4cdf05-0x660);}function _0xe17565(_0x3914f2,_0x425495){return _0x3e09ac(_0x425495,_0x3914f2-0x256);}this[_0x46170f(0x4b2,0x4db)]['data']&&this['setData'](this['options']['data']);}[_0x35d093(0x36,0x42)](){function _0x57905c(_0x5db2f9,_0x2fa9a4){return _0x35d093(_0x2fa9a4,_0x5db2f9-0x24d);}this[_0x57905c(0x2e0,0x25b)]();function _0x566838(_0x265fad,_0x273d00){return _0x35d093(_0x265fad,_0x273d00-0x421);}this['unbindEvent'](),this['canvas']&&(this[_0x57905c(0x271,0x23f)][_0x57905c(0x26a,0x2ce)]['removeChild'](this[_0x566838(0x495,0x45d)]),delete this['canvas']);}[_0x3e09ac(-0x17b,-0x1d8)](){const _0x10a591=mars3d__namespace['DomUtil'][_0x114f7b(-0xa0,-0xf1)]('canvas',_0x114f7b(-0x56,-0x9c),this[_0x39dea0(0x107,0xfa)][_0x114f7b(-0x130,-0x1ae)]);_0x10a591[_0x39dea0(0x152,0x158)][_0x39dea0(0x175,0x18b)]='absolute',_0x10a591['style']['top']='0px',_0x10a591[_0x39dea0(0x152,0x1b5)]['left']=_0x114f7b(-0x9f,-0xd2),_0x10a591['style'][_0x114f7b(-0xf2,-0xa5)]=this[_0x39dea0(0x107,0x164)]['scene']['canvas']['clientWidth']+'px',_0x10a591[_0x39dea0(0x152,0x12a)][_0x39dea0(0x1a3,0x13b)]=this['_map']['scene'][_0x114f7b(-0x1c6,-0x18f)][_0x39dea0(0x1c0,0x248)]+'px',_0x10a591['style'][_0x39dea0(0x1e4,0x168)]=this['_pointerEvents']?'auto':_0x114f7b(-0x141,-0x1aa);function _0x114f7b(_0x13cf60,_0x458898){return _0x3e09ac(_0x13cf60,_0x458898-0xd0);}_0x10a591['style'][_0x39dea0(0x109,0xac)]=this['options'][_0x39dea0(0x109,0x144)]??0x9;function _0x39dea0(_0x2c3beb,_0x54b833){return _0x3e09ac(_0x54b833,_0x2c3beb-0x37e);}return _0x10a591[_0x114f7b(-0x1d,-0xa5)]=this[_0x39dea0(0x107,0x15a)]['scene'][_0x39dea0(0x11f,0x16c)]['clientWidth'],_0x10a591[_0x39dea0(0x1a3,0x199)]=this['_map'][_0x114f7b(-0x1f2,-0x1af)]['canvas'][_0x39dea0(0x1c0,0x23e)],_0x10a591;}['resize'](){function _0x2b4e11(_0x2b2e9e,_0x2a8b5d){return _0x3e09ac(_0x2a8b5d,_0x2b2e9e-0x5b2);}function _0xbd7ae8(_0x18563e,_0x2b4124){return _0x35d093(_0x18563e,_0x2b4124-0x40d);}this['canvas']&&(this['canvas']['style'][_0x2b4e11(0x43d,0x3e2)]=this['_map']['scene']['canvas'][_0x2b4e11(0x399,0x3b7)]+'px',this['canvas'][_0xbd7ae8(0x442,0x47c)][_0xbd7ae8(0x519,0x4cd)]=this[_0x2b4e11(0x33b,0x300)]['scene']['canvas']['clientHeight']+'px',this[_0xbd7ae8(0x475,0x449)]['width']=this['_map']['scene']['canvas']['clientWidth'],this['canvas']['height']=this[_0x2b4e11(0x33b,0x345)][_0xbd7ae8(0x42b,0x429)][_0x2b4e11(0x353,0x3b1)][_0x2b4e11(0x3f4,0x422)]);}['bindEvent'](){const _0xdac465=this;let _0x282bd7=Date[_0x414f0d(-0x3d,0x4)]();(function _0x3c02f6(){if(_0xdac465['isDestroy'])return;function _0x3b25ec(_0x23fdd7,_0x77dfe2){return _0x414f0d(_0x23fdd7,_0x77dfe2-0x205);}_0xdac465[_0x3b25ec(0x2b6,0x22a)]=window['requestAnimationFrame'](_0x3c02f6);function _0x4d86ee(_0x186082,_0x197775){return _0x414f0d(_0x186082,_0x197775-0x2f0);}if(_0xdac465['show']&&_0xdac465['windField']){const _0x216a3e=Date[_0x4d86ee(0x2d1,0x2f4)](),_0x1cf57c=_0x216a3e-_0x282bd7;_0x1cf57c>_0xdac465['frameTime']&&(_0x282bd7=_0x216a3e-_0x1cf57c%_0xdac465[_0x4d86ee(0x212,0x230)],_0xdac465['update']());}}(),window['addEventListener']('resize',this[_0x414f0d(0x4,-0xc)][_0x414f0d(-0x32,0xe)](this),![]),this['mouse_down']=![],this[_0x3d9fdc(-0x2a3,-0x310)]=![]);function _0x3d9fdc(_0x48ac28,_0x5b60e0){return _0x3e09ac(_0x5b60e0,_0x48ac28- -0x37);}function _0x414f0d(_0x1455d6,_0x5a075b){return _0x3e09ac(_0x1455d6,_0x5a075b-0x194);}this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType'][_0x414f0d(-0xa9,-0x96)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x414f0d(0x29,-0x65)],this[_0x414f0d(-0x116,-0xa5)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x414f0d(-0x21,-0x1b)],this));}[_0x3e09ac(-0x237,-0x1e6)](){window['cancelAnimationFrame'](this['_animateFrame']);function _0x5b4690(_0x1dd6b0,_0x316125){return _0x35d093(_0x316125,_0x1dd6b0-0x2f8);}delete this[_0x5b4690(0x424,0x3bc)],window['removeEventListener']('resize',this['resize']);function _0x207b77(_0x40e603,_0x26f690){return _0x3e09ac(_0x40e603,_0x26f690-0x181);}this[_0x207b77(-0x41,-0x4)][_0x5b4690(0x3fc,0x3c5)]&&(this['_map'][_0x5b4690(0x355,0x3b0)](mars3d__namespace[_0x207b77(-0xe,-0x38)][_0x5b4690(0x369,0x39e)],this[_0x5b4690(0x366,0x3b5)],this),this['_map'][_0x5b4690(0x355,0x2f7)](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x207b77(-0x15e,-0xf6)][_0x207b77(-0x2f,-0xbd)](mars3d__namespace[_0x207b77(-0x89,-0x38)][_0x5b4690(0x414,0x3dc)],this[_0x5b4690(0x3e4,0x45a)],this),this[_0x207b77(-0x99,-0xf6)]['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x5b4690(0x3a6,0x35c)],this));}[_0x35d093(0xf3,0x6e)](_0x2f935e){function _0x38fd8a(_0x288cdb,_0x1f0cf4){return _0x35d093(_0x288cdb,_0x1f0cf4- -0x42);}clearTimeout(this['refreshTimer']);function _0x392bc0(_0xc0c409,_0x136c04){return _0x3e09ac(_0xc0c409,_0x136c04-0x9c);}if(!this['show']||!this['canvas'])return;this[_0x38fd8a(-0x67,-0x6)]['style']['visibility']='hidden',this[_0x392bc0(-0x13b,-0x109)]=setTimeout(()=>{if(!this[_0x33e96f(-0x1ba,-0x199)])return;this['redraw']();function _0x33e96f(_0x446826,_0x125b2f){return _0x392bc0(_0x446826,_0x125b2f- -0x7d);}this['canvas']['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x1f5281){this['mouse_down']=!![],this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x173677(0x354,0x354)],this);function _0x49de8f(_0x342945,_0x4a2045){return _0x35d093(_0x4a2045,_0x342945-0x337);}function _0x173677(_0x252593,_0x647f8){return _0x35d093(_0x252593,_0x647f8-0x2a6);}this[_0x173677(0x2b5,0x2ca)]['on'](mars3d__namespace[_0x49de8f(0x419,0x44b)][_0x49de8f(0x458,0x4b0)],this['_onMouseMoveEvent'],this);}[_0x3e09ac(-0x193,-0x1ed)](_0x26afd0){function _0x4d0b4c(_0xe5aa34,_0x2b70cb){return _0x3e09ac(_0xe5aa34,_0x2b70cb-0x5df);}function _0x53781c(_0x5d317f,_0x1e5c4a){return _0x35d093(_0x1e5c4a,_0x5d317f-0x42c);}if(!this[_0x4d0b4c(0x3d3,0x427)]||!this[_0x53781c(0x468,0x4f5)])return;this[_0x53781c(0x551,0x53d)]&&(this['canvas']['style']['visibility']='hidden',this['mouse_move']=!![]);}[_0x3e09ac(-0x14b,-0x1af)](_0x4bec48){if(!this['show']||!this[_0x97aca2(0x1c2,0x17a)])return;this[_0x48244a(0x3c7,0x365)]['off'](mars3d__namespace[_0x48244a(0x485,0x422)]['mouseMove'],this['_onMouseMoveEvent'],this);function _0x48244a(_0x315c15,_0x152ea9){return _0x35d093(_0x152ea9,_0x315c15-0x3a3);}this['mouse_down']&&this['mouse_move']&&this['redraw']();this[_0x48244a(0x3df,0x464)][_0x48244a(0x412,0x46b)]['visibility']=_0x48244a(0x48a,0x44a);function _0x97aca2(_0x1ab0bf,_0x4aca30){return _0x35d093(_0x1ab0bf,_0x4aca30-0x13e);}this[_0x48244a(0x4c8,0x45f)]=![],this[_0x48244a(0x3d2,0x40b)]=![];}[_0x3e09ac(-0x108,-0x194)](_0x205098){this['clear']();function _0x360c43(_0x24249b,_0x3f947a){return _0x3e09ac(_0x3f947a,_0x24249b-0x4e7);}this['windData']=_0x205098,this['windField'][_0x360c43(0x296,0x215)](_0x205098),this['redraw']();}[_0x35d093(0x18f,0x120)](){if(!this['show'])return;this['windField']['setOptions'](this[_0x2fd193(0x39e,0x327)]);function _0x2fd193(_0x11d007,_0x31e866){return _0x35d093(_0x31e866,_0x11d007-0x288);}this['update']();}['update'](){function _0x2f51ed(_0x5827a0,_0x3ddb47){return _0x3e09ac(_0x3ddb47,_0x5827a0-0xa9);}if(this[_0x2f51ed(-0x1d2,-0x1a0)])return;this['_updateIng']=!![];if(this['worker'])this['windField']['update']();else{const _0x3490cb=this['windField']['getParticles']();this['_drawLines'](_0x3490cb);}this['_updateIng']=![];}['_drawLines'](_0x475b9b){function _0x1976d2(_0x540d16,_0x52e4ee){return _0x35d093(_0x52e4ee,_0x540d16- -0x20);}function _0x3a7476(_0x31aa4e,_0x42dae5){return _0x3e09ac(_0x31aa4e,_0x42dae5-0x5ec);}this['_canvasParticles']=_0x475b9b,this['canvasContext']['globalCompositeOperation']='destination-in',this[_0x1976d2(0x38,0x42)]['fillRect'](0x0,0x0,this[_0x3a7476(0x437,0x468)],this[_0x1976d2(0x71,0x97)]),this[_0x1976d2(0x38,0x2a)]['globalCompositeOperation']='lighter',this['canvasContext'][_0x1976d2(0xe9,0xc4)]=0.9;const _0xd6c1b5=this['_map']['scene']['mode']!==Cesium['SceneMode']['SCENE3D'],_0x319182=this['canvasWidth']*0.25;if(this[_0x1976d2(0x8a,0xeb)])for(let _0x921fc5=0x0,_0x2875dd=_0x475b9b['length'];_0x921fc5<_0x2875dd;_0x921fc5++){const _0x10f334=_0x475b9b[_0x921fc5],_0x13a332=this[_0x3a7476(0x3c9,0x3c7)](_0x10f334,_0x10f334['lng'],_0x10f334['lat'],_0x10f334['alt']),_0x14d788=this[_0x3a7476(0x382,0x3c7)](_0x10f334,_0x10f334[_0x1976d2(0x81,0x55)],_0x10f334[_0x3a7476(0x3b2,0x441)],_0x10f334[_0x3a7476(0x3d0,0x429)]);if(!_0x13a332||!_0x14d788)continue;if(_0xd6c1b5&&Math['abs'](_0x13a332[0x0]-_0x14d788[0x0])>=_0x319182)continue;this[_0x1976d2(0x38,0xa8)]['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext'][_0x1976d2(0x9a,0x23)]=this['_colorRamp']['getColor'](_0x10f334['speed']),this[_0x3a7476(0x3af,0x3a9)]['moveTo'](_0x13a332[0x0],_0x13a332[0x1]),this[_0x1976d2(0x38,0x29)]['lineTo'](_0x14d788[0x0],_0x14d788[0x1]),this[_0x3a7476(0x3a9,0x3a9)]['stroke']();}else{this[_0x3a7476(0x32f,0x3a9)]['beginPath'](),this[_0x3a7476(0x3e4,0x3a9)]['lineWidth']=this[_0x3a7476(0x4e1,0x47b)],this[_0x1976d2(0x38,-0x24)][_0x3a7476(0x44e,0x40b)]=this['color'];for(let _0x4dbfe5=0x0,_0x373369=_0x475b9b['length'];_0x4dbfe5<_0x373369;_0x4dbfe5++){const _0x2d1803=_0x475b9b[_0x4dbfe5],_0x3df34f=this['_tomap'](_0x2d1803,_0x2d1803[_0x3a7476(0x46d,0x419)],_0x2d1803[_0x3a7476(0x35a,0x3d5)],_0x2d1803['alt']),_0x38dac7=this[_0x3a7476(0x401,0x3c7)](_0x2d1803,_0x2d1803['tlng'],_0x2d1803[_0x3a7476(0x450,0x441)],_0x2d1803['talt']);if(!_0x3df34f||!_0x38dac7)continue;if(_0xd6c1b5&&Math['abs'](_0x3df34f[0x0]-_0x38dac7[0x0])>=_0x319182)continue;this['canvasContext']['moveTo'](_0x3df34f[0x0],_0x3df34f[0x1]),this['canvasContext'][_0x3a7476(0x446,0x3d8)](_0x38dac7[0x0],_0x38dac7[0x1]);}this['canvasContext']['stroke']();}}[_0x3e09ac(-0x274,-0x225)](_0x370fa9,_0xc4dc62,_0x459b2c,_0x2d75a7){const _0x40cb5c=Cesium['Cartesian3']['fromDegrees'](_0xc4dc62,_0x459b2c,_0x2d75a7??this[_0x3dd81c(0x5cb,0x55e)]);function _0xb41847(_0x138162,_0x3d85a4){return _0x3e09ac(_0x138162,_0x3d85a4-0x366);}const _0x498468=this[_0xb41847(0xd9,0xef)][_0x3dd81c(0x50b,0x49a)];if(_0x498468['mode']===Cesium['SceneMode']['SCENE3D']){const _0x447c7b=new Cesium[(_0xb41847(0x107,0x163))](_0x498468['globe'][_0xb41847(0x15c,0x136)],_0x498468[_0xb41847(0x1d1,0x187)]['positionWC']),_0x29b231=_0x447c7b['isPointVisible'](_0x40cb5c);if(!_0x29b231)return _0x370fa9['age']=0x0,null;}const _0x107f3d=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map']['scene'],_0x40cb5c);function _0x3dd81c(_0x412845,_0x1f100b){return _0x3e09ac(_0x412845,_0x1f100b-0x719);}return _0x107f3d?[_0x107f3d['x'],_0x107f3d['y']]:null;}['clear'](){function _0x41b26e(_0x4c5dfc,_0x17aad5){return _0x35d093(_0x4c5dfc,_0x17aad5- -0x3a);}this['windField'][_0x41b26e(0xe1,0x59)](),delete this['windData'];}[_0x35d093(0xa5,0xd0)](){this['worker']=new Worker(this[_0x56275a(0x10,0x1d)][_0x5796b8(-0x281,-0x21f)]);function _0x5796b8(_0x138f2f,_0x3f11bf){return _0x3e09ac(_0x138f2f,_0x3f11bf- -0x19);}function _0x56275a(_0x329d7f,_0x46b8dd){return _0x35d093(_0x329d7f,_0x46b8dd- -0xf9);}this[_0x56275a(-0xf2,-0x64)]['onmessage']=_0x51ced4=>{this['_drawLines'](_0x51ced4[_0x4fade6(0x2bd,0x2e9)]['particles']);function _0x4fade6(_0x52191a,_0x35fa1e){return _0x5796b8(_0x52191a,_0x35fa1e-0x4eb);}this['_updateIng2']=![];},this[_0x56275a(-0xa9,-0x30)]={'init':_0x2a5f2a=>{const _0x272675={};_0x272675['type']='init',_0x272675['options']=_0x2a5f2a;function _0x52cbdd(_0x38669a,_0x1c0563){return _0x56275a(_0x38669a,_0x1c0563- -0xd3);}this['worker'][_0x52cbdd(-0xe6,-0xae)](_0x272675);},'setOptions':_0x4ed45f=>{const _0x40ace7={};_0x40ace7['type']='setOptions',_0x40ace7['options']=_0x4ed45f;function _0x1d0f82(_0x17dc0a,_0x2e17f4){return _0x56275a(_0x2e17f4,_0x17dc0a- -0x1b5);}function _0x4fee47(_0xfc2db7,_0x1de4b1){return _0x56275a(_0x1de4b1,_0xfc2db7-0x2ea);}this[_0x4fee47(0x286,0x2e0)][_0x4fee47(0x30f,0x32d)](_0x40ace7);},'setDate':_0x59e6a4=>{const _0x5b8fd2={};_0x5b8fd2['type']='setDate';function _0x3bea7f(_0x56241a,_0x458c56){return _0x56275a(_0x458c56,_0x56241a-0x1e4);}_0x5b8fd2[_0x3bea7f(0x19d,0x1af)]=_0x59e6a4,this['worker']['postMessage'](_0x5b8fd2);},'update':()=>{if(this['_updateIng2'])return;function _0x280c64(_0x433546,_0x4dab46){return _0x56275a(_0x433546,_0x4dab46-0x2cb);}this['_updateIng2']=!![];const _0x4007ff={};function _0x3e25e2(_0x4027e5,_0x2753fa){return _0x5796b8(_0x2753fa,_0x4027e5-0x7);}_0x4007ff[_0x280c64(0x2cf,0x29e)]=_0x280c64(0x28e,0x22b),this[_0x280c64(0x225,0x267)][_0x3e25e2(-0x18f,-0x1dd)](_0x4007ff);},'clear':()=>{const _0x44d134={};_0x44d134[_0x2a6764(-0x1,-0x85)]='clear';function _0x2a6764(_0x72cc66,_0x279839){return _0x5796b8(_0x279839,_0x72cc66-0x1e7);}this['worker']['postMessage'](_0x44d134);}},this['windField']['init'](this[_0x56275a(-0x71,0x1d)]);}}mars3d__namespace[_0x35d093(0xf6,0x11f)][_0x35d093(0x76,0xf5)](_0x3e09ac(-0x257,-0x1d0),CanvasWindLayer),mars3d__namespace['layer'][_0x35d093(0x7c,0xa5)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log']['logInfo']('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports[_0x3e09ac(-0x1ed,-0x1eb)]=CanvasWindField,exports[_0x3e09ac(-0x187,-0x1f6)]=CanvasWindLayer,exports[_0x35d093(0x134,0x10c)]=WindLayer,exports[_0x35d093(0x38,0x86)]=WindUtil;const _0x44d9bc={};_0x44d9bc['value']=!![],Object['defineProperty'](exports,'__esModule',_0x44d9bc);
14
+ 'use strict';(function(_0x30427f,_0x4abc57){const _0x1154d5=_0x30427f();function _0x3c57b4(_0x3b8997,_0x38fd16){return _0x3f35(_0x38fd16-0x2bb,_0x3b8997);}function _0x71a69f(_0x522559,_0x27c5ad){return _0x3f35(_0x522559-0x391,_0x27c5ad);}while(!![]){try{const _0x4028a0=-parseInt(_0x71a69f(0x5cb,0x54f))/0x1*(parseInt(_0x3c57b4(0x55c,0x4e5))/0x2)+-parseInt(_0x3c57b4(0x50a,0x58e))/0x3+-parseInt(_0x71a69f(0x592,0x612))/0x4+parseInt(_0x3c57b4(0x4fb,0x48a))/0x5+parseInt(_0x3c57b4(0x4ef,0x4ab))/0x6+parseInt(_0x3c57b4(0x5a6,0x552))/0x7+parseInt(_0x3c57b4(0x510,0x538))/0x8*(parseInt(_0x71a69f(0x61a,0x699))/0x9);if(_0x4028a0===_0x4abc57)break;else _0x1154d5['push'](_0x1154d5['shift']());}catch(_0x1b670e){_0x1154d5['push'](_0x1154d5['shift']());}}}(_0x23a9,0xb9e3d));function _interopNamespace(_0x298275){if(_0x298275&&_0x298275['__esModule'])return _0x298275;function _0x2bb99f(_0x233735,_0x10f37b){return _0x3f35(_0x10f37b-0xd2,_0x233735);}function _0x46a895(_0x18b1a9,_0x493934){return _0x3f35(_0x493934-0x28,_0x18b1a9);}var _0x1b0992=Object[_0x46a895(0x213,0x237)](null);return _0x298275&&Object[_0x2bb99f(0x2c2,0x2f0)](_0x298275)['forEach'](function(_0x25ced4){function _0x532418(_0x4467d7,_0x157383){return _0x46a895(_0x157383,_0x4467d7- -0x3c);}function _0x5bbda2(_0x53ba19,_0xe3d0d4){return _0x2bb99f(_0xe3d0d4,_0x53ba19-0x2bc);}if(_0x25ced4!==_0x5bbda2(0x5f1,0x57e)){var _0x2e8cb6=Object[_0x532418(0x1d4,0x1d3)](_0x298275,_0x25ced4);Object['defineProperty'](_0x1b0992,_0x25ced4,_0x2e8cb6['get']?_0x2e8cb6:{'enumerable':!![],'get':function(){return _0x298275[_0x25ced4];}});}}),_0x1b0992[_0x46a895(0x2c2,0x28b)]=_0x298275,_0x1b0992;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x4ee3(0x4b2,0x468)];function getU(_0x599afc,_0x4c143e){const _0x2b1c5b=_0x599afc*Math['cos'](Cesium$2[_0x10776b(0x638,0x5e2)]['toRadians'](_0x4c143e));function _0x10776b(_0x26f384,_0x5aaf2f){return _0x4ee3(_0x5aaf2f-0xd6,_0x26f384);}return _0x2b1c5b;}function getV(_0x3868bb,_0x45da9d){const _0x66e27d=_0x3868bb*Math['sin'](Cesium$2['Math']['toRadians'](_0x45da9d));return _0x66e27d;}function getSpeed(_0x54456e,_0x170a2a){const _0xd586b0=Math['sqrt'](Math['pow'](_0x54456e,0x2)+Math['pow'](_0x170a2a,0x2));return _0xd586b0;}function getDirection(_0x239a4a,_0x46d0f){let _0x5e2f35=Cesium$2['Math'][_0x451712(0x6c,0x89)](Math['atan2'](_0x46d0f,_0x239a4a));_0x5e2f35+=_0x5e2f35<0x0?0x168:0x0;function _0x451712(_0x2b85f1,_0x3e176a){return _0x4ee3(_0x3e176a- -0x396,_0x2b85f1);}return _0x5e2f35;}const _0x4942da={};_0x4942da['__proto__']=null,_0x4942da[_0x46d1d0(0x612,0x649)]=getU,_0x4942da['getV']=getV,_0x4942da['getSpeed']=getSpeed,_0x4942da['getDirection']=getDirection;var WindUtil=_0x4942da,updatePositionShader=_0x46d1d0(0x647,0x63e),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=_0x4ee3(0x44b,0x482),renderParticlesFragmentShader=_0x46d1d0(0x5a7,0x5a0),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[_0x46d1d0(0x617,0x5ce)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x3725df={};return _0x3725df['sources']=[calculateSpeedShader],new ShaderSource$1(_0x3725df);}static['getUpdatePositionShader'](){const _0x4616a7={};return _0x4616a7['sources']=[updatePositionShader],new ShaderSource$1(_0x4616a7);}static[_0x46d1d0(0x596,0x575)](){const _0x13f21d={};return _0x13f21d['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x13f21d);}static[_0x46d1d0(0x5c4,0x5aa)](){const _0x47c36a={};return _0x47c36a['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x47c36a);}static[_0x46d1d0(0x649,0x69f)](){const _0xf8a68f={};_0xf8a68f[_0x11c474(0x170,0x163)]=[postProcessingPositionFragmentShader];function _0x11c474(_0x39c126,_0x272f76){return _0x46d1d0(_0x272f76- -0x4c0,_0x39c126);}return new ShaderSource$1(_0xf8a68f);}}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[_0x4ee3(0x4b2,0x49d)];class CustomPrimitive{constructor(_0x187501){this['commandType']=_0x187501['commandType'],this['geometry']=_0x187501[_0x6b2ab9(0x20c,0x1d1)],this['attributeLocations']=_0x187501['attributeLocations'],this[_0x42635f(-0x1,0x17)]=_0x187501[_0x42635f(0x50,0x17)],this[_0x6b2ab9(0x244,0x2cc)]=_0x187501['uniformMap']||{},this['vertexShaderSource']=_0x187501['vertexShaderSource'],this['fragmentShaderSource']=_0x187501['fragmentShaderSource'],this[_0x42635f(0x76,0xbc)]=_0x187501[_0x6b2ab9(0x257,0x2cf)];function _0x42635f(_0x25d5a7,_0xd3e25b){return _0x4ee3(_0xd3e25b- -0x463,_0x25d5a7);}this[_0x6b2ab9(0x1e2,0x212)]=_0x187501[_0x42635f(0x5c,-0x1)],this['outputTexture']=_0x187501['outputTexture'],this['autoClear']=_0x187501['autoClear']??![],this[_0x6b2ab9(0x209,0x23f)]=_0x187501['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x187501[_0x42635f(0x55,0x27)]??(()=>!![]);function _0x6b2ab9(_0x57146d,_0x1bf698){return _0x4ee3(_0x1bf698- -0x250,_0x57146d);}this['autoClear']&&(this[_0x6b2ab9(0x2b9,0x26f)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x6b2ab9(0x257,0x212)],'pass':Pass$1[_0x42635f(0x85,0x69)]}));}['createCommand'](_0x902dc7){function _0x2e81a8(_0x4e865d,_0x5362c8){return _0x46d1d0(_0x4e865d- -0x7d,_0x5362c8);}function _0x39839e(_0x38c727,_0x6425a4){return _0x4ee3(_0x38c727- -0x5fb,_0x6425a4);}if(this['commandType']==='Draw'){const _0x3f6cb7={};_0x3f6cb7['context']=_0x902dc7,_0x3f6cb7[_0x2e81a8(0x509,0x512)]=this['geometry'],_0x3f6cb7['attributeLocations']=this[_0x2e81a8(0x588,0x545)],_0x3f6cb7['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x180b95=VertexArray$1[_0x39839e(-0x126,-0xc5)](_0x3f6cb7),_0x36031d={};_0x36031d[_0x39839e(-0x169,-0xea)]=_0x902dc7,_0x36031d['vertexShaderSource']=this['vertexShaderSource'],_0x36031d['fragmentShaderSource']=this[_0x39839e(-0xf6,-0x8a)],_0x36031d[_0x2e81a8(0x588,0x57a)]=this['attributeLocations'];const _0x9eda7=ShaderProgram[_0x39839e(-0x1b2,-0x1d8)](_0x36031d),_0x1d9ec1=RenderState[_0x2e81a8(0x531,0x4f8)](this['rawRenderState']),_0x46743f={};return _0x46743f[_0x39839e(-0x107,-0xdd)]=this,_0x46743f['vertexArray']=_0x180b95,_0x46743f[_0x39839e(-0x181,-0x203)]=this[_0x39839e(-0x181,-0x1cf)],_0x46743f['modelMatrix']=Matrix4[_0x39839e(-0x170,-0x10e)],_0x46743f['renderState']=_0x1d9ec1,_0x46743f['shaderProgram']=_0x9eda7,_0x46743f[_0x39839e(-0x199,-0x19d)]=this[_0x39839e(-0x199,-0x131)],_0x46743f['uniformMap']=this[_0x39839e(-0xdf,-0xd9)],_0x46743f[_0x39839e(-0x174,-0x1d4)]=Pass$1[_0x2e81a8(0x5b4,0x58d)],new DrawCommand(_0x46743f);}else{if(this['commandType']==='Compute'){const _0x5905cb={};return _0x5905cb['owner']=this,_0x5905cb['fragmentShaderSource']=this['fragmentShaderSource'],_0x5905cb[_0x2e81a8(0x604,0x5a3)]=this[_0x2e81a8(0x604,0x5e2)],_0x5905cb['outputTexture']=this['outputTexture'],_0x5905cb['persists']=!![],new ComputeCommand(_0x5905cb);}else throw new Error(_0x2e81a8(0x53b,0x50b));}}[_0x4ee3(0x468,0x480)](_0x2580bc,_0x2285a5){this[_0x5c8a8f(-0x155,-0x16f)]=_0x2285a5;function _0x5c8a8f(_0x4f2c8f,_0x38b25f){return _0x4ee3(_0x38b25f- -0x590,_0x4f2c8f);}function _0x1ab917(_0x18289f,_0x14173b){return _0x4ee3(_0x18289f- -0x61c,_0x14173b);}defined(this['commandToExecute'])&&(this[_0x5c8a8f(-0xe7,-0xfb)][_0x5c8a8f(-0xaa,-0xc6)]=VertexArray$1[_0x1ab917(-0x147,-0x13b)]({'context':_0x2580bc,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x46d1d0(0x58c,0x5d4)](_0x545ad6){if(!this[_0x2973fc(0x523,0x5a6)]())return;if(!this[_0x33b438(0x421,0x3fe)]||!defined(_0x545ad6))return;function _0x2973fc(_0x1d3fc1,_0x376b79){return _0x46d1d0(_0x1d3fc1- -0xcc,_0x376b79);}!defined(this['commandToExecute'])&&(this['commandToExecute']=this[_0x2973fc(0x587,0x59d)](_0x545ad6[_0x2973fc(0x52b,0x4d6)]));function _0x33b438(_0x15904d,_0x299c42){return _0x46d1d0(_0x15904d- -0x18e,_0x299c42);}defined(this[_0x33b438(0x466,0x43e)])&&this['preExecute']();if(!_0x545ad6['commandList']){console[_0x33b438(0x4dd,0x4e0)]('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x545ad6[_0x2973fc(0x5ba,0x602)]['push'](this[_0x2973fc(0x558,0x512)]),defined(this['commandToExecute'])&&_0x545ad6['commandList']['push'](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){function _0x325030(_0x190adc,_0x4ea3aa){return _0x46d1d0(_0x4ea3aa- -0x5a4,_0x190adc);}if(defined(this['commandToExecute'])){var _0x158d0b;(_0x158d0b=this[_0x325030(0x85,0x56)][_0x325030(0x9b,0x5a)])===null||_0x158d0b===void 0x0||_0x158d0b['destroy'](),this[_0x5c3e22(0x589,0x5bc)]['shaderProgram']=undefined;}function _0x5c3e22(_0x490dc6,_0x3fd27e){return _0x4ee3(_0x3fd27e-0x127,_0x490dc6);}return destroyObject(this);}}function deepMerge(_0x3e37df,_0x57cc4d){if(!_0x3e37df)return _0x57cc4d;if(!_0x57cc4d)return _0x3e37df;const _0xb90ab7={..._0x57cc4d},_0xc9e307=_0xb90ab7;function _0x5cdc97(_0x418299,_0x33ac7f){return _0x46d1d0(_0x418299- -0x2b0,_0x33ac7f);}for(const _0x2a2262 in _0x3e37df){if(Object['prototype']['hasOwnProperty']['call'](_0x3e37df,_0x2a2262)){const _0x3452ba=_0x3e37df[_0x2a2262],_0x3a434e=_0x57cc4d[_0x2a2262];if(Array['isArray'](_0x3452ba)){_0xc9e307[_0x2a2262]=_0x3452ba['slice']();continue;}if(_0x3452ba&&typeof _0x3452ba===_0x5cdc97(0x3c3,0x39a)){_0xc9e307[_0x2a2262]=deepMerge(_0x3452ba,_0x3a434e||{});continue;}_0x3452ba!==undefined&&(_0xc9e307[_0x2a2262]=_0x3452ba);}}return _0xc9e307;}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(_0x584566,_0x4c233b,_0x521d61,_0x2016ac,_0x355b64){this[_0x2f48e7(0x5a6,0x57f)]=_0x584566,this['options']=_0x521d61,this['viewerParameters']=_0x2016ac;function _0x2f48e7(_0x3573a3,_0x443a95){return _0x4ee3(_0x3573a3-0x114,_0x443a95);}this['windData']=_0x4c233b,this[_0x37ef81(0xe7,0x136)]=0x3c,this['frameRateAdjustment']=0x1;const _0x4816e6={};function _0x37ef81(_0xb4cff5,_0x5b7f1e){return _0x4ee3(_0xb4cff5- -0x384,_0x5b7f1e);}_0x4816e6['scene']=_0x355b64,_0x4816e6[_0x2f48e7(0x5f2,0x653)]=0x1,_0x4816e6[_0x2f48e7(0x626,0x5c0)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x4816e6),this['initFrameRate'](),this[_0x2f48e7(0x538,0x4d0)](),this['createParticlesTextures'](),this[_0x2f48e7(0x5ea,0x66b)]();}['initFrameRate'](){const _0x193f65=()=>{function _0x320769(_0x35ebda,_0x36a40d){return _0x3f35(_0x36a40d-0x1de,_0x35ebda);}function _0x20e5f0(_0x22d987,_0x5f46b8){return _0x3f35(_0x5f46b8-0x138,_0x22d987);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this[_0x320769(0x3d5,0x3f5)]=this['frameRateMonitor']['lastFramesPerSecond'],this[_0x320769(0x45c,0x489)]=0x3c/Math['max'](this['frameRate'],0x1));};_0x193f65();const _0x1aa150=setInterval(_0x193f65,0x3e8),_0x23e5bf=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x1aa150),_0x23e5bf();};}['createWindTextures'](){const _0x30366a={};_0x30366a['minificationFilter']=TextureMinificationFilter$1[_0x2b5ebe(0x4e6,0x543)];function _0x28b8d7(_0x300e5d,_0x5437a0){return _0x46d1d0(_0x300e5d- -0x1e0,_0x5437a0);}function _0x2b5ebe(_0x553c1b,_0x3dfa39){return _0x4ee3(_0x553c1b-0xbe,_0x3dfa39);}_0x30366a['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x229638={'context':this[_0x2b5ebe(0x550,0x5a3)],'width':this['windData']['width'],'height':this['windData']['height'],'pixelFormat':PixelFormat$1[_0x28b8d7(0x3b7,0x3fe)],'pixelDatatype':PixelDatatype$1[_0x28b8d7(0x3b5,0x384)],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x30366a)};this['windTextures']={'U':new Texture$1({..._0x229638,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x229638,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x507d83={};_0x507d83['minificationFilter']=TextureMinificationFilter$1['NEAREST'],_0x507d83['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];function _0x33b39d(_0x329332,_0x49d089){return _0x46d1d0(_0x49d089- -0x530,_0x329332);}function _0x334dae(_0x39df20,_0x3bb669){return _0x46d1d0(_0x39df20- -0x6ce,_0x3bb669);}const _0x2b67ef={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this[_0x33b39d(0x104,0xdf)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x33b39d(0x74,0xdf)][_0x33b39d(0xec,0x83)]*this[_0x33b39d(0x109,0xdf)]['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x507d83)};this[_0x334dae(-0x115,-0x12b)]={'previousParticlesPosition':new Texture$1(_0x2b67ef),'currentParticlesPosition':new Texture$1(_0x2b67ef),'nextParticlesPosition':new Texture$1(_0x2b67ef),'postProcessingPosition':new Texture$1(_0x2b67ef),'particlesSpeed':new Texture$1(_0x2b67ef)};}[_0x4ee3(0x500,0x51e)](){function _0xd83071(_0x25c1b7,_0x5ed61f){return _0x46d1d0(_0x25c1b7- -0x107,_0x5ed61f);}function _0x14a0b4(_0x2b7a3f,_0x1486e2){return _0x46d1d0(_0x2b7a3f- -0x69b,_0x1486e2);}Object['values'](this['particlesTextures'])[_0xd83071(0x50d,0x522)](_0x31e728=>_0x31e728[_0x14a0b4(-0xb3,-0xff)]());}['createComputingPrimitives'](){function _0x1f77ff(_0x1c784f,_0xe4d8fb){return _0x46d1d0(_0xe4d8fb- -0x428,_0x1c784f);}function _0x1411ca(_0x31d4e7,_0x42ee89){return _0x46d1d0(_0x31d4e7- -0x2be,_0x42ee89);}this[_0x1411ca(0x3d1,0x419)]={'calculateSpeed':new CustomPrimitive({'commandType':_0x1411ca(0x333,0x38c),'uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this[_0x1411ca(0x3aa,0x3b2)]['V'],'uRange':()=>new Cartesian2$1(this[_0x1411ca(0x337,0x2cb)]['u'][_0x1411ca(0x35c,0x365)],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x1411ca(0x337,0x383)]['v']['min'],this[_0x1f77ff(0x16a,0x1cd)]['v'][_0x1f77ff(0x23b,0x1f9)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed'][_0x1f77ff(0x1e0,0x1f2)],this[_0x1411ca(0x337,0x3b8)][_0x1411ca(0x311,0x30c)]['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x410b61(_0x3456e8,_0x1a7109){return _0x1411ca(_0x1a7109-0x19d,_0x3456e8);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0x410b61(0x4d5,0x4ee)]['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this[_0x1f77ff(0x1aa,0x1cd)]['width'],this['windData'][_0x1411ca(0x3bf,0x344)]),'minimum':()=>new Cartesian2$1(this[_0x1411ca(0x337,0x2bd)][_0x1f77ff(0x26d,0x210)][_0x1f77ff(0x2a2,0x236)],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this[_0x1411ca(0x337,0x377)][_0x1411ca(0x37a,0x384)]['east'],this[_0x1411ca(0x337,0x3a4)][_0x1f77ff(0x270,0x210)][_0x1411ca(0x310,0x2c7)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x1f77ff(0x1eb,0x191)][_0x1f77ff(0x1f0,0x1f3)],'preExecute':()=>{function _0xcb5a83(_0x27f479,_0x3c5915){return _0x1f77ff(_0x3c5915,_0x27f479-0x42f);}const _0x386464=this[_0xcb5a83(0x5c0,0x587)][_0x1fbf19(0x4a4,0x450)];function _0x1fbf19(_0x282ebd,_0x33ae15){return _0x1411ca(_0x282ebd-0x17d,_0x33ae15);}this[_0xcb5a83(0x5c0,0x61f)]['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this[_0x1fbf19(0x478,0x4e3)]['postProcessingPosition'],this['particlesTextures']['postProcessingPosition']=_0x386464,this[_0xcb5a83(0x696,0x703)]['calculateSpeed']['commandToExecute']&&(this[_0xcb5a83(0x696,0x643)]['calculateSpeed']['commandToExecute'][_0x1fbf19(0x4b5,0x4d9)]=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x1411ca(0x35d,0x3ac)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures'][_0x1f77ff(0x23a,0x1d0)],'preExecute':()=>{function _0x42813e(_0x1eec9f,_0x55dd13){return _0x1411ca(_0x55dd13-0xf1,_0x1eec9f);}function _0x60cc5a(_0x14c2ed,_0x18e340){return _0x1f77ff(_0x14c2ed,_0x18e340-0x255);}this[_0x60cc5a(0x47d,0x4bc)]['updatePosition']['commandToExecute']&&(this[_0x42813e(0x448,0x4c2)]['updatePosition'][_0x60cc5a(0x440,0x427)]['outputTexture']=this['particlesTextures'][_0x60cc5a(0x3d7,0x425)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x1f77ff(0x214,0x191)]['nextParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0x1f77ff(0x1ba,0x1cd)]['bounds']['west'],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x1f77ff(0x1e9,0x210)]['south'],this['windData']['bounds']['north']),'randomCoefficient':function(){function _0x15a0f9(_0x1afebc,_0x1238ed){return _0x1f77ff(_0x1afebc,_0x1238ed-0x457);}return Math[_0x15a0f9(0x68e,0x6a4)]();},'dropRate':()=>this['options'][_0x1f77ff(0x2c2,0x266)],'dropRateBump':()=>this['options'][_0x1f77ff(0x248,0x252)],'useViewerBounds':()=>this[_0x1f77ff(0x1a9,0x1e7)]['useViewerBounds']},'fragmentShaderSource':ShaderManager[_0x1411ca(0x38b,0x413)](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x5e69d7(_0x455a61,_0x5ed2d7){return _0x1f77ff(_0x455a61,_0x5ed2d7- -0x23a);}function _0x54382c(_0x5639ad,_0x4125bc){return _0x1411ca(_0x5639ad- -0x2b5,_0x4125bc);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this[_0x5e69d7(0x5a,0x2d)][_0x5e69d7(-0x55,-0xc4)][_0x54382c(0x87,0xa7)][_0x54382c(0x83,0xaf)]=this[_0x54382c(0x46,0x99)]['postProcessingPosition']);},'isDynamic':()=>this['options'][_0x1f77ff(0x1e6,0x263)]})};}['reCreateWindTextures'](){this['windTextures']['U']['destroy']();function _0x4aff50(_0xe7bd3,_0x2c0934){return _0x4ee3(_0xe7bd3- -0x21d,_0x2c0934);}function _0xa5786d(_0x3ce2ad,_0x29b172){return _0x4ee3(_0x29b172- -0xdb,_0x3ce2ad);}this['windTextures']['V'][_0xa5786d(0x35c,0x3a8)](),this[_0xa5786d(0x317,0x349)]();}[_0x4ee3(0x4fc,0x528)](_0x29195a){function _0x3e8d2e(_0x539675,_0x1a56b2){return _0x4ee3(_0x539675- -0x33b,_0x1a56b2);}this['windData']=_0x29195a,this[_0x3e8d2e(0x164,0x153)]();}[_0x4ee3(0x436,0x4ab)](_0x48f63f){const _0x372521=_0x48f63f['flipY']!==undefined&&_0x48f63f['flipY']!==this[_0x434f78(0x5ee,0x5a6)][_0x40671d(0x112,0x160)];this['options']=deepMerge(_0x48f63f,this[_0x434f78(0x57e,0x5a6)]);function _0x40671d(_0x51d8ab,_0x3c7dc1){return _0x46d1d0(_0x51d8ab- -0x51b,_0x3c7dc1);}function _0x434f78(_0x10565f,_0x3d5efa){return _0x4ee3(_0x3d5efa-0xfc,_0x10565f);}_0x372521&&this[_0x434f78(0x537,0x59b)]();}['processWindData'](_0x1159b6){const {array:_0x573d5e}=_0x1159b6;let {min:_0x150e7a,max:_0x949ce9}=_0x1159b6;function _0x16e1ae(_0x591bf6,_0x10ce39){return _0x46d1d0(_0x591bf6- -0x6ef,_0x10ce39);}const _0x12fa82=new Float32Array(_0x573d5e['length']);_0x150e7a===undefined&&(console[_0x16e1ae(-0x84,-0x8d)]('min\x20is\x20undefined,\x20calculate\x20min'),_0x150e7a=Math[_0x2e1c92(0x534,0x552)](..._0x573d5e));function _0x2e1c92(_0x407999,_0x519452){return _0x46d1d0(_0x407999- -0xe6,_0x519452);}_0x949ce9===undefined&&(console[_0x2e1c92(0x585,0x52b)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x949ce9=Math[_0x2e1c92(0x53b,0x598)](..._0x573d5e));const _0x4ba1dc=Math[_0x16e1ae(-0xce,-0xbd)](Math['abs'](_0x150e7a),Math['abs'](_0x949ce9));for(let _0x888bba=0x0;_0x888bba<_0x573d5e[_0x16e1ae(-0xde,-0x81)];_0x888bba++){const _0x110ec1=_0x573d5e[_0x888bba]/_0x4ba1dc;_0x12fa82[_0x888bba]=_0x110ec1;}return _0x12fa82;}['destroy'](){Object[_0x4b8d16(0x532,0x514)](this[_0x2379ca(0x64d,0x645)])[_0x4b8d16(0x574,0x5c0)](_0x3311d1=>_0x3311d1['destroy']()),Object['values'](this['particlesTextures'])[_0x2379ca(0x65a,0x5f1)](_0xd0011e=>_0xd0011e['destroy']());function _0x2379ca(_0x5c3076,_0x5b6e41){return _0x46d1d0(_0x5b6e41- -0x23,_0x5c3076);}function _0x4b8d16(_0x30112f,_0x21a074){return _0x46d1d0(_0x30112f- -0xa0,_0x21a074);}Object['values'](this['primitives'])['forEach'](_0x29cfc3=>_0x29cfc3['destroy']()),this['frameRateMonitor'][_0x4b8d16(0x548,0x541)]();}}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(_0x1ba2cf,_0x1fd4a5,_0x23477b,_0x24ce0e){this[_0x3cbdf3(0x11,0x7b)]=_0x1ba2cf,this[_0x3cbdf3(0x117,0x93)]=_0x1fd4a5,this['viewerParameters']=_0x23477b,this[_0x2d8f01(0x3d6,0x3f8)]=_0x24ce0e;(typeof this['options']['particlesTextureSize']!==_0x3cbdf3(-0x25,0x30)||this[_0x2d8f01(0x418,0x3f1)][_0x3cbdf3(-0x31,0x37)]<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x3cbdf3(0x7d,0x93)]['particlesTextureSize']=0x100);this['colorTable']=this[_0x3cbdf3(0xaf,0x106)]();function _0x3cbdf3(_0x5bcd70,_0x21a6a2){return _0x46d1d0(_0x21a6a2- -0x57c,_0x5bcd70);}this[_0x2d8f01(0x47b,0x423)]=this[_0x3cbdf3(0xfc,0x76)](),this[_0x3cbdf3(0xcd,0xcc)]=this[_0x2d8f01(0x3d0,0x384)]();function _0x2d8f01(_0x38b04f,_0x318563){return _0x4ee3(_0x318563- -0xb9,_0x38b04f);}this['primitives']=this[_0x2d8f01(0x412,0x3c4)]();}['createRenderingTextures'](){const _0x4e1268={};_0x4e1268[_0xaff139(-0x49,-0x3c)]=this[_0xdfa6de(0x1a2,0x124)],_0x4e1268[_0xaff139(-0x17,-0x4a)]=this['context'][_0xdfa6de(0x1ea,0x21b)],_0x4e1268[_0xaff139(0x3d,-0x2e)]=this['context']['drawingBufferHeight'],_0x4e1268[_0xaff139(-0xa7,-0x47)]=PixelFormat['RGBA'],_0x4e1268[_0xaff139(-0x3a,-0xe)]=PixelDatatype['UNSIGNED_BYTE'];const _0x1c7d11=_0x4e1268,_0x1b58a2={};function _0xdfa6de(_0x1429f7,_0x318bca){return _0x46d1d0(_0x1429f7- -0x455,_0x318bca);}_0x1b58a2['context']=this[_0xdfa6de(0x1a2,0x12f)],_0x1b58a2['width']=this[_0xdfa6de(0x1a2,0x11a)]['drawingBufferWidth'],_0x1b58a2['height']=this[_0xdfa6de(0x1a2,0x157)]['drawingBufferHeight'],_0x1b58a2['pixelFormat']=PixelFormat[_0xaff139(-0x59,-0x9d)];function _0xaff139(_0x647ee,_0x5445a8){return _0x46d1d0(_0x647ee- -0x640,_0x5445a8);}_0x1b58a2[_0xdfa6de(0x1b1,0x1c0)]=PixelDatatype['UNSIGNED_INT'];const _0x4a33cc=_0x1b58a2;return{'segmentsColor':new Texture(_0x1c7d11),'segmentsDepth':new Texture(_0x4a33cc)};}['createRenderingFramebuffers'](){const _0x2ceb3f={};function _0x31b0cb(_0x2775a9,_0x598a1c){return _0x46d1d0(_0x598a1c- -0x155,_0x2775a9);}_0x2ceb3f['context']=this['context'],_0x2ceb3f[_0x4024ca(0x361,0x306)]=[this['textures']['segmentsColor']],_0x2ceb3f[_0x4024ca(0x283,0x2ea)]=this[_0x31b0cb(0x548,0x4ec)]['segmentsDepth'];function _0x4024ca(_0x2e049f,_0x771a9e){return _0x4ee3(_0x771a9e- -0x1ad,_0x2e049f);}return{'segments':new Framebuffer(_0x2ceb3f)};}[_0x4ee3(0x43f,0x3c1)](){function _0x414380(_0xec63b3,_0x446fcb){return _0x46d1d0(_0xec63b3- -0x3e,_0x446fcb);}function _0x560fcb(_0x319f14,_0x5d93cf){return _0x4ee3(_0x319f14- -0x3c5,_0x5d93cf);}Object['values'](this[_0x414380(0x60a,0x650)])[_0x560fcb(0xea,0x16d)](_0x2f22dc=>{_0x2f22dc['destroy']();});}[_0x4ee3(0x51d,0x49c)](){const _0x40ad90=new Float32Array(this[_0x4eef0e(0xb6,0xaa)][_0x4eef0e(0x116,0xdc)][_0x93fe45(0x122,0x101)](_0x3919a8=>{function _0x528076(_0x3db5bd,_0x2fdf18){return _0x4eef0e(_0x2fdf18- -0x26,_0x3db5bd);}const _0x57aa8f=Color$1['fromCssColorString'](_0x3919a8);return[_0x57aa8f['red'],_0x57aa8f[_0x528076(0x112,0xef)],_0x57aa8f['blue'],_0x57aa8f['alpha']];})),_0x384e89={};_0x384e89['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x384e89['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x384e89['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x384e89['wrapT']=TextureWrap['CLAMP_TO_EDGE'];function _0x93fe45(_0x5dbbae,_0x33f4d2){return _0x4ee3(_0x5dbbae- -0x3f1,_0x33f4d2);}function _0x4eef0e(_0x23420e,_0x409d93){return _0x46d1d0(_0x23420e- -0x559,_0x409d93);}return new Texture({'context':this[_0x4eef0e(0x9e,0x38)],'width':this[_0x4eef0e(0xb6,0x81)]['colors'][_0x93fe45(0xbb,0x12c)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype[_0x93fe45(0x3f,0xaf)],'sampler':new Sampler(_0x384e89),'source':{'width':this[_0x93fe45(0xb9,0x99)][_0x93fe45(0x119,0xda)][_0x4eef0e(0xb8,0x94)],'height':0x1,'arrayBufferView':_0x40ad90}});}['createSegmentsGeometry'](){const _0x1af0e0=0x4,_0x4f3266=this[_0x1e8e60(0x59f,0x624)]['particlesTextureSize'];let _0x2bf4bf=[];for(let _0x884949=0x0;_0x884949<_0x4f3266;_0x884949++){for(let _0x1e57df=0x0;_0x1e57df<_0x4f3266;_0x1e57df++){for(let _0x1c950d=0x0;_0x1c950d<_0x1af0e0;_0x1c950d++){_0x2bf4bf[_0x1e8e60(0x5a5,0x60e)](_0x884949/_0x4f3266),_0x2bf4bf['push'](_0x1e57df/_0x4f3266);}}}_0x2bf4bf=new Float32Array(_0x2bf4bf);const _0xace2dd=this['options'][_0x1ae28c(0x515,0x552)]**0x2;let _0x5311ef=[];for(let _0xca7682=0x0;_0xca7682<_0xace2dd;_0xca7682++){_0x5311ef[_0x1ae28c(0x5aa,0x598)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x5311ef=new Float32Array(_0x5311ef);let _0x169e77=[];for(let _0x149fd4=0x0,_0x18b799=0x0;_0x149fd4<_0xace2dd;_0x149fd4++){_0x169e77[_0x1ae28c(0x59f,0x598)](_0x18b799+0x0,_0x18b799+0x1,_0x18b799+0x2,_0x18b799+0x2,_0x18b799+0x1,_0x18b799+0x3),_0x18b799+=_0x1af0e0;}_0x169e77=new Uint32Array(_0x169e77);function _0x1ae28c(_0x4907b2,_0x3c8090){return _0x46d1d0(_0x3c8090- -0x61,_0x4907b2);}const _0x40bac1={};_0x40bac1[_0x1ae28c(0x586,0x56b)]=ComponentDatatype['FLOAT'];function _0x1e8e60(_0x10600d,_0x3d4582){return _0x4ee3(_0x3d4582-0x17a,_0x10600d);}_0x40bac1['componentsPerAttribute']=0x2,_0x40bac1[_0x1e8e60(0x5b7,0x5e7)]=_0x2bf4bf;const _0x12cbab={};_0x12cbab[_0x1ae28c(0x56e,0x56b)]=ComponentDatatype['FLOAT'],_0x12cbab[_0x1ae28c(0x639,0x5cf)]=0x3,_0x12cbab[_0x1ae28c(0x5a5,0x571)]=_0x5311ef;const _0x2c603a=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x40bac1),'normal':new GeometryAttribute(_0x12cbab)}),'indices':_0x169e77});return _0x2c603a;}['createRawRenderState'](_0x3f837b){const _0x9c48a={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x3f837b};return Appearance['getDefaultRenderState'](!![],![],_0x9c48a);}[_0x4ee3(0x47d,0x47e)](){const _0x5212a4={};_0x5212a4['st']=0x0,_0x5212a4['normal']=0x1;const _0x20075d={};_0x20075d['enabled']=!![];const _0x19a8f2={};function _0x4b865e(_0x4cef31,_0x3fb9a1){return _0x4ee3(_0x4cef31- -0x574,_0x3fb9a1);}_0x19a8f2[_0x4b865e(-0xd1,-0xf6)]=!![],_0x19a8f2['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x19a8f2[_0x4b865e(-0x100,-0xdb)]=WebGLRenderingContext['SRC_ALPHA'],_0x19a8f2[_0xed9127(0x103,0xf5)]=WebGLRenderingContext[_0x4b865e(-0x114,-0xdc)];const _0x46480d={};_0x46480d['viewport']=undefined,_0x46480d['depthTest']=_0x20075d,_0x46480d['depthMask']=!![],_0x46480d['blending']=_0x19a8f2;const _0x4e0838=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x5212a4,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0xed9127(0xcb,0xd8)],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x4b865e(-0x120,-0xd2)][_0xed9127(0x97,0x3d)],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x4b865e(-0xc3,-0x60)]['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing'][_0x4b865e(-0x120,-0x187)][_0x4b865e(-0xbe,-0x130)],'frameRateAdjustment':()=>this['computing'][_0xed9127(0x116,0xa3)],'colorTable':()=>this[_0xed9127(0x5c,-0x2b)],'domain':()=>{var _0x1a0382,_0x4316aa;function _0x49665b(_0x14bcc1,_0x1c1216){return _0xed9127(_0x1c1216-0x2dd,_0x14bcc1);}const _0x325533=new Cartesian2(((_0x1a0382=this['options'][_0x49665b(0x382,0x32e)])===null||_0x1a0382===void 0x0?void 0x0:_0x1a0382['min'])??this[_0x49665b(0x3fc,0x3a5)][_0x49665b(0x33a,0x384)]['speed'][_0x15d0a1(-0xa4,-0x126)],((_0x4316aa=this['options']['domain'])===null||_0x4316aa===void 0x0?void 0x0:_0x4316aa['max'])??this['computing']['windData'][_0x15d0a1(-0xef,-0x14b)]['max']);function _0x15d0a1(_0x2f3b6e,_0x4efa40){return _0x4b865e(_0x2f3b6e-0x1b,_0x4efa40);}return _0x325533;},'displayRange':()=>{function _0x92eec0(_0x2c0467,_0x526bbc){return _0x4b865e(_0x2c0467-0x17,_0x526bbc);}var _0x3edf1c,_0x2728e4;function _0xa04ecd(_0x418a4c,_0x172f28){return _0xed9127(_0x172f28- -0x1b1,_0x418a4c);}const _0x268f17=new Cartesian2(((_0x3edf1c=this['options']['displayRange'])===null||_0x3edf1c===void 0x0?void 0x0:_0x3edf1c['min'])??this['computing']['windData']['speed']['min'],((_0x2728e4=this['options'][_0xa04ecd(-0xc8,-0x98)])===null||_0x2728e4===void 0x0?void 0x0:_0x2728e4[_0xa04ecd(-0x96,-0xde)])??this[_0x92eec0(-0xac,-0x11d)]['windData']['speed'][_0x92eec0(-0xa1,-0x35)]);return _0x268f17;},'particleHeight':()=>this['options'][_0x4b865e(-0x14b,-0x174)]||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this[_0x4b865e(-0xe2,-0x86)][_0x4b865e(-0x6c,-0x59)],'pixelSize':()=>this[_0x4b865e(-0x123,-0x135)]['pixelSize'],'lineWidth':()=>{const _0x5350ed={};function _0x494728(_0x1f2229,_0x469fa2){return _0x4b865e(_0x469fa2-0x668,_0x1f2229);}_0x5350ed['min']=0x1;function _0x18ae0f(_0x5d6247,_0x28832f){return _0xed9127(_0x28832f-0x35,_0x5d6247);}_0x5350ed[_0x18ae0f(0x15a,0x108)]=0x2;const _0x22ff2f=this[_0x494728(0x5dc,0x59e)]['lineWidth']||_0x5350ed;return new Cartesian2(_0x22ff2f['min'],_0x22ff2f['max']);},'lineLength':()=>{const _0x57ef15={};_0x57ef15[_0x14ed55(0x636,0x5c1)]=0x14,_0x57ef15['max']=0x64;function _0x14ed55(_0x26dd93,_0x2f995a){return _0xed9127(_0x26dd93-0x56a,_0x2f995a);}const _0x1f1c0c=this['options']['lineLength']||_0x57ef15;return new Cartesian2(_0x1f1c0c['min'],_0x1f1c0c['max']);},'is3D':()=>this['viewerParameters'][_0x4b865e(-0xcd,-0x13a)]===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0xed9127(0xf3,0xc7)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0xed9127(0x76,0x1d)](),'rawRenderState':this[_0xed9127(0x9b,0x10d)](_0x46480d)}),_0x280a31={};_0x280a31[_0x4b865e(-0xd0,-0x56)]=_0x4e0838;function _0xed9127(_0x5a4e1b,_0x2a3ffa){return _0x4ee3(_0x5a4e1b- -0x3e9,_0x2a3ffa);}return _0x280a31;}['onParticlesTextureSizeChange'](){const _0x4663bb=this['createSegmentsGeometry']();this[_0x5d0493(0x177,0x1d3)]['segments']['geometry']=_0x4663bb;const _0x703b12={};_0x703b12['context']=this[_0x5d0493(0xdf,0xbc)];function _0x5d0493(_0x1bc628,_0x4306be){return _0x46d1d0(_0x1bc628- -0x518,_0x4306be);}_0x703b12['geometry']=_0x4663bb,_0x703b12['attributeLocations']=this['primitives']['segments']['attributeLocations'],_0x703b12[_0x5d0493(0xbd,0x71)]=BufferUsage[_0x4660e2(0x44d,0x4b1)];function _0x4660e2(_0x46f82d,_0x22e370){return _0x4ee3(_0x22e370- -0x1c,_0x46f82d);}const _0x5eb81b=VertexArray[_0x4660e2(0x4da,0x4b9)](_0x703b12);this[_0x5d0493(0x177,0x1cd)]['segments'][_0x4660e2(0x450,0x479)]&&(this['primitives']['segments']['commandToExecute'][_0x5d0493(0x117,0x162)]=_0x5eb81b);}['onColorTableChange'](){function _0x3179e2(_0x36e263,_0x565a88){return _0x46d1d0(_0x565a88- -0x6f9,_0x36e263);}function _0x416118(_0x434db2,_0x5b2d20){return _0x4ee3(_0x434db2- -0x88,_0x5b2d20);}this[_0x3179e2(-0xcf,-0x14f)]['destroy'](),this[_0x3179e2(-0x114,-0x14f)]=this['createColorTableTexture']();}[_0x4ee3(0x436,0x3f6)](_0x44a499){const _0x13025f=_0x44a499[_0x4d99e2(0x2d5,0x270)]&&JSON['stringify'](_0x44a499['colors'])!==JSON[_0x4d99e2(0x274,0x29d)](this[_0x5ba121(-0x1,-0x1d)]['colors']);function _0x4d99e2(_0x473489,_0x43be2b){return _0x4ee3(_0x473489- -0x235,_0x43be2b);}function _0x5ba121(_0x30ce8c,_0x58e60b){return _0x4ee3(_0x30ce8c- -0x4ab,_0x58e60b);}this['options']=deepMerge(_0x44a499,this[_0x5ba121(-0x1,-0x6b)]),_0x13025f&&this['onColorTableChange']();}['destroy'](){function _0x55824c(_0x48eae0,_0x3907d9){return _0x4ee3(_0x3907d9-0x107,_0x48eae0);}function _0x16793d(_0x5dba28,_0x1d24b0){return _0x46d1d0(_0x5dba28- -0x377,_0x1d24b0);}Object['values'](this[_0x16793d(0x2d1,0x2ec)])['forEach'](_0x8bbb45=>{_0x8bbb45['destroy']();}),Object[_0x55824c(0x4eb,0x574)](this['primitives'])['forEach'](_0x273468=>{_0x273468['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x409519,_0x1b09db,_0x4131cd,_0x403115,_0x41fcd7){this['context']=_0x409519;function _0x3f9d1e(_0xc2eae7,_0x25a03c){return _0x46d1d0(_0x25a03c- -0x5fc,_0xc2eae7);}this[_0xf9b613(-0x189,-0x174)]=_0x4131cd,this['viewerParameters']=_0x403115,this['computing']=new WindParticlesComputing(_0x409519,_0x1b09db,_0x4131cd,_0x403115,_0x41fcd7),this[_0x3f9d1e(0x1b,0x53)]=new WindParticlesRendering(_0x409519,_0x4131cd,_0x403115,this[_0xf9b613(-0x120,-0x16d)]);function _0xf9b613(_0x1bde64,_0x47371a){return _0x4ee3(_0x47371a- -0x61e,_0x1bde64);}this[_0xf9b613(-0xf5,-0x117)]();}['getPrimitives'](){function _0x3e60c6(_0x2fd278,_0x359860){return _0x4ee3(_0x359860- -0x4b1,_0x2fd278);}function _0x1be1a0(_0x1368de,_0x499737){return _0x46d1d0(_0x499737- -0x5b3,_0x1368de);}const _0x162352=[this[_0x1be1a0(0x64,0x63)]['primitives'][_0x3e60c6(0xc3,0x5c)],this['computing'][_0x1be1a0(0x99,0xdc)][_0x3e60c6(-0x1c,-0x56)],this['computing'][_0x1be1a0(0x12b,0xdc)]['postProcessingPosition'],this['rendering']['primitives']['segments']];return _0x162352;}[_0x4ee3(0x507,0x48b)](){function _0x3e9124(_0x2f9ded,_0x165a2e){return _0x46d1d0(_0x2f9ded- -0x587,_0x165a2e);}const _0x1e12df=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x128f82(_0x5ab255,_0x4cba26){return _0x4ee3(_0x5ab255- -0x5f4,_0x4cba26);}Object[_0x128f82(-0x182,-0x1a3)](this[_0x3e9124(0xc8,0xc2)][_0x3e9124(0xc1,0x109)])['forEach'](_0x1d2680=>{function _0x171b00(_0x19b373,_0x5bb838){return _0x128f82(_0x19b373-0xd1,_0x5bb838);}_0x1e12df['framebuffer']=this['rendering']['framebuffers'][_0x1d2680],_0x1e12df[_0x171b00(0x9,0x55)](this['context']);});}['changeOptions'](_0x4a1d81){let _0x212f96=![];function _0x241a4e(_0x1028ee,_0xa0eed5){return _0x4ee3(_0x1028ee- -0xa,_0xa0eed5);}_0x4a1d81['particlesTextureSize']&&this[_0x163760(0x3f5,0x42c)][_0x241a4e(0x444,0x3f5)]!==_0x4a1d81[_0x241a4e(0x444,0x490)]&&(_0x212f96=!![]);const _0x3b3980=deepMerge(_0x4a1d81,this[_0x163760(0x3f5,0x39e)]);if(_0x3b3980['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x3b3980,this['rendering']['updateOptions'](_0x4a1d81),this['computing']['updateOptions'](_0x4a1d81);function _0x163760(_0x1be95e,_0x466183){return _0x4ee3(_0x1be95e- -0xb5,_0x466183);}_0x212f96&&(this['computing']['destroyParticlesTextures'](),this[_0x241a4e(0x4a7,0x4aa)][_0x163760(0x3b7,0x409)](),this['rendering']['onParticlesTextureSizeChange']());}[_0x46d1d0(0x5a0,0x54a)](_0x4bf8dc){this[_0x1e512e(0x1e2,0x211)]=_0x4bf8dc,this['computing'][_0x1e512e(0x1e2,0x169)]=_0x4bf8dc;function _0x536686(_0x242b00,_0x8ec3b9){return _0x4ee3(_0x242b00-0xaa,_0x8ec3b9);}function _0x1e512e(_0x138ff5,_0x563a7b){return _0x46d1d0(_0x138ff5- -0x3d4,_0x563a7b);}this['rendering'][_0x1e512e(0x1e2,0x17c)]=_0x4bf8dc;}['destroy'](){this['computing'][_0x15f628(0x1d4,0x203)]();function _0x15f628(_0x524aa9,_0x76ad1d){return _0x4ee3(_0x76ad1d- -0x280,_0x524aa9);}function _0x449be6(_0x115111,_0x12e382){return _0x46d1d0(_0x115111- -0x56d,_0x12e382);}this[_0x15f628(0x229,0x26a)]['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x4442bd={};_0x4442bd['min']=0x1,_0x4442bd[_0x46d1d0(0x621,0x602)]=0x2;function _0x3f35(_0x281c91,_0x2012f1){const _0x23a9ef=_0x23a9();return _0x3f35=function(_0x3f35b7,_0x381b17){_0x3f35b7=_0x3f35b7-0x1c9;let _0x4ebaff=_0x23a9ef[_0x3f35b7];return _0x4ebaff;},_0x3f35(_0x281c91,_0x2012f1);}const _0x12e7fe={};_0x12e7fe[_0x4ee3(0x4b5,0x520)]=0x14,_0x12e7fe[_0x4ee3(0x4bc,0x485)]=0x64;const _0x4cc292={};_0x4cc292['particlesTextureSize']=0x64,_0x4cc292['fixedHeight']=0x0,_0x4cc292[_0x4ee3(0x52d,0x50d)]=_0x4442bd,_0x4cc292[_0x46d1d0(0x67c,0x626)]=_0x12e7fe,_0x4cc292['speedFactor']=0x1;function _0x46d1d0(_0x503f9d,_0x5dd63d){return _0x3f35(_0x503f9d-0x3b9,_0x5dd63d);}_0x4cc292[_0x46d1d0(0x68e,0x685)]=0.003,_0x4cc292['dropRateBump']=0.001,_0x4cc292[_0x4ee3(0x50a,0x4f7)]=['rgb(206,255,255)'],_0x4cc292[_0x46d1d0(0x62d,0x5cf)]=![],_0x4cc292[_0x46d1d0(0x68b,0x711)]=!![];const DEF_OPTIONS=_0x4cc292;class WindLayer extends BaseLayer$1{constructor(_0x4f5631={}){_0x4f5631={...DEF_OPTIONS,..._0x4f5631};function _0x1a64cd(_0x16a3ee,_0x112cfb){return _0x4ee3(_0x16a3ee- -0x1f0,_0x112cfb);}super(_0x4f5631),this[_0x1a64cd(0x335,0x392)](_0x4f5631,_0x4f5631);}get['layer'](){return this['primitives'];}get[_0x46d1d0(0x600,0x5a2)](){function _0x493485(_0x5e828c,_0x65308a){return _0x46d1d0(_0x5e828c- -0x592,_0x65308a);}return this['options'][_0x493485(0x6e,0x5a)];}set['data'](_0x2a7416){function _0x1adf78(_0x39875c,_0x2365aa){return _0x4ee3(_0x39875c- -0x539,_0x2365aa);}function _0x12980c(_0x552444,_0x57d671){return _0x4ee3(_0x57d671- -0x512,_0x552444);}this[_0x12980c(-0x2c,-0x68)][_0x12980c(-0xc5,-0x77)]=_0x2a7416,this['setData'](_0x2a7416);}get['colors'](){function _0x41b160(_0x587382,_0x140f65){return _0x46d1d0(_0x587382- -0x6c8,_0x140f65);}return this['options'][_0x41b160(-0x59,-0x5b)];}set['colors'](_0xa8bc37){function _0x34c79d(_0x9d2267,_0xab8d80){return _0x46d1d0(_0xab8d80- -0x221,_0x9d2267);}this['options'][_0x5daa53(0x4f5,0x499)]=_0xa8bc37;const _0x2d8fa9={};_0x2d8fa9[_0x5daa53(0x4f5,0x46d)]=_0xa8bc37;function _0x5daa53(_0x42eb16,_0x22c4f4){return _0x46d1d0(_0x42eb16- -0x17a,_0x22c4f4);}this[_0x34c79d(0x4e2,0x469)](this['options'],_0x2d8fa9);}[_0x4ee3(0x488,0x4e6)](_0x33aa12){function _0x3c6b55(_0x5a4d65,_0x27bbcd){return _0x4ee3(_0x27bbcd- -0x3ad,_0x5a4d65);}function _0x9b6d97(_0x42f3a2,_0x2efba4){return _0x46d1d0(_0x42f3a2- -0x20e,_0x2efba4);}_0x33aa12?this[_0x9b6d97(0x466,0x44e)]():this[_0x3c6b55(0xf7,0x86)]();}[_0x46d1d0(0x64c,0x671)](){}['_addedHook'](){this['scene']=this['_map']['scene'],this[_0x44afc8(0x2cd,0x337)]=this[_0x44afc8(0x3a4,0x389)]['camera'];this[_0x44afc8(0x38e,0x39b)]['data']&&this[_0x2dbf3a(0x123,0x9d)](this['options']['data']);function _0x2dbf3a(_0x18472e,_0x3f14ec){return _0x4ee3(_0x18472e- -0x314,_0x3f14ec);}if(!this['windData']||!this[_0x44afc8(0x32b,0x33b)])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x44afc8(0x44d,0x3e0)]['mode']},this[_0x2dbf3a(0x139,0x166)](),this[_0x44afc8(0x33b,0x31c)]=new WindParticleSystem(this[_0x2dbf3a(0x1db,0x1e0)]['context'],this['windData'],this['options'],this['viewerParameters'],this['scene']),this[_0x2dbf3a(0x216,0x1d6)]=this['particleSystem']['getPrimitives'](),this[_0x44afc8(0x48a,0x41b)][_0x2dbf3a(0x19b,0x1cc)](_0x193545=>{this['scene']['primitives']['add'](_0x193545);}),this[_0x44afc8(0x30b,0x337)][_0x2dbf3a(0x1f7,0x273)]=0.01,this[_0x44afc8(0x2b4,0x337)]['changed']['addEventListener'](this['updateViewerParameters']['bind'](this));function _0x44afc8(_0x3d8084,_0x29704c){return _0x46d1d0(_0x29704c- -0x274,_0x3d8084);}this['scene']['morphComplete'][_0x44afc8(0x350,0x364)](this['updateViewerParameters'][_0x44afc8(0x3f0,0x3da)](this)),window['addEventListener']('resize',this['updateViewerParameters']['bind'](this));}['_removedHook'](){function _0x3b1dc3(_0x3a2da0,_0x4ae83a){return _0x4ee3(_0x4ae83a- -0xdc,_0x3a2da0);}function _0x346cab(_0x35fa51,_0xb1c338){return _0x4ee3(_0xb1c338- -0x193,_0x35fa51);}this[_0x3b1dc3(0x321,0x36a)]['changed'][_0x3b1dc3(0x3df,0x41f)](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete'][_0x3b1dc3(0x48e,0x41f)](this['updateViewerParameters']['bind'](this)),window['removeEventListener'](_0x346cab(0x24f,0x2c7),this['updateViewerParameters'][_0x3b1dc3(0x481,0x40d)](this)),this['primitives']&&(this['primitives']['forEach'](_0x8a9491=>{function _0x2c7c2c(_0x3d3a33,_0x13fe5a){return _0x3b1dc3(_0x3d3a33,_0x13fe5a-0x249);}this['scene']['primitives'][_0x2c7c2c(0x57a,0x5e4)](_0x8a9491);}),delete this['primitives']),this['particleSystem']&&(this[_0x3b1dc3(0x2d9,0x34f)][_0x3b1dc3(0x349,0x3a7)](),delete this[_0x346cab(0x22d,0x298)]);}['setData'](_0x5df072,_0x4e0ff5){function _0x36b770(_0x444d07,_0x4b87b3){return _0x4ee3(_0x444d07-0x183,_0x4b87b3);}function _0x323367(_0x4f7887,_0x328752){return _0x4ee3(_0x328752- -0x5c7,_0x4f7887);}this[_0x323367(-0xbe,-0x137)]=this[_0x323367(-0x187,-0x199)](_0x5df072);if(_0x4e0ff5){this['_removedHook'](),this['_addedHook']();return;}this['particleSystem']?(this[_0x36b770(0x5ae,0x624)]['computing']['updateWindData'](this['windData']),this[_0x323367(-0x60,-0xd8)][_0x323367(-0x15e,-0x117)]()):this['_addedHook']();}[_0x4ee3(0x525,0x50d)](_0x57dedd,_0x3cda3f){function _0x268fe0(_0x171997,_0x4c9613){return _0x46d1d0(_0x171997- -0xf4,_0x4c9613);}function _0x2f7060(_0x83d60d,_0x3567c2){return _0x46d1d0(_0x83d60d- -0xc9,_0x3567c2);}this[_0x268fe0(0x49c,0x522)]&&(this['particleSystem']['changeOptions'](_0x3cda3f),this[_0x2f7060(0x58b,0x580)]['requestRender']());}[_0x4ee3(0x42e,0x3ab)](_0x46f090){function _0x43cf66(_0x39ed74,_0xd22338){return _0x4ee3(_0x39ed74-0xa7,_0xd22338);}var _0x505214,_0x17e65f;const _0x29aabd={..._0x46f090},_0x11dbab=_0x29aabd;!_0x11dbab['height']&&_0x11dbab['rows']&&(_0x11dbab[_0x43cf66(0x5bf,0x56b)]=_0x11dbab['rows']);!_0x11dbab[_0x43cf66(0x56b,0x5db)]&&_0x11dbab[_0x8efda7(0x31e,0x386)]&&(_0x11dbab['width']=_0x11dbab['cols']);function _0x8efda7(_0x22907f,_0x173082){return _0x4ee3(_0x173082- -0x153,_0x22907f);}!_0x11dbab['bounds']&&(_0x11dbab['bounds']={'west':_0x11dbab[_0x43cf66(0x4d1,0x462)],'south':_0x11dbab['ymin'],'east':_0x11dbab['xmax'],'north':_0x11dbab[_0x8efda7(0x3e6,0x39a)]});if(!_0x11dbab['u']){const _0x3810d1={};_0x3810d1[_0x8efda7(0x309,0x35b)]=_0x46f090['udata'],_0x3810d1[_0x43cf66(0x55c,0x51b)]=_0x46f090[_0x8efda7(0x317,0x34b)],_0x3810d1['max']=_0x46f090[_0x43cf66(0x4f6,0x4af)],_0x11dbab['u']=_0x3810d1;}if(!_0x11dbab['v']){const _0x29fe1d={};_0x29fe1d[_0x43cf66(0x555,0x4fb)]=_0x46f090['vdata'],_0x29fe1d['min']=_0x46f090['vmin'],_0x29fe1d['max']=_0x46f090['vmax'],_0x11dbab['v']=_0x29fe1d;}if(((_0x505214=_0x11dbab[_0x43cf66(0x511,0x49b)])===null||_0x505214===void 0x0?void 0x0:_0x505214['min'])===undefined||((_0x17e65f=_0x11dbab['speed'])===null||_0x17e65f===void 0x0?void 0x0:_0x17e65f['max'])===undefined||_0x11dbab['speed']['array']===undefined){const _0x2eba51={'array':new Float32Array(_0x11dbab['u'][_0x43cf66(0x555,0x4fa)]['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x300ad6=0x0;_0x300ad6<_0x11dbab['u']['array']['length'];_0x300ad6++){_0x2eba51[_0x43cf66(0x555,0x573)][_0x300ad6]=Math['sqrt'](_0x11dbab['u']['array'][_0x300ad6]*_0x11dbab['u'][_0x43cf66(0x555,0x53a)][_0x300ad6]+_0x11dbab['v']['array'][_0x300ad6]*_0x11dbab['v']['array'][_0x300ad6]),_0x2eba51['array'][_0x300ad6]!==0x0&&(_0x2eba51['min']=Math['min'](_0x2eba51[_0x8efda7(0x3b4,0x362)],_0x2eba51['array'][_0x300ad6]),_0x2eba51['max']=Math['max'](_0x2eba51['max'],_0x2eba51['array'][_0x300ad6]));}_0x11dbab['speed']=_0x2eba51;}return _0x11dbab;}[_0x46d1d0(0x5b2,0x614)](){var _0x1569fb;function _0x26084f(_0x4b1f24,_0x557836){return _0x4ee3(_0x557836- -0x22d,_0x4b1f24);}const _0x161341=this[_0x1b2cf5(0x90,0x3e)];if(!_0x161341)return;const _0x3af968=_0x161341['canvas'],_0x2ab97d={};_0x2ab97d['x']=0x0,_0x2ab97d['y']=0x0;const _0x8772c4={};function _0x1b2cf5(_0x2ee6c3,_0x46db88){return _0x4ee3(_0x46db88- -0x4b1,_0x2ee6c3);}_0x8772c4['x']=0x0,_0x8772c4['y']=_0x3af968['clientHeight'];const _0xe9791c={};_0xe9791c['x']=_0x3af968[_0x1b2cf5(0x7,-0x1b)],_0xe9791c['y']=0x0;const _0x453d2d={};_0x453d2d['x']=_0x3af968['clientWidth'],_0x453d2d['y']=_0x3af968[_0x26084f(0x221,0x1f5)];const _0x24de2b=[_0x2ab97d,_0x8772c4,_0xe9791c,_0x453d2d];let _0x1cc2e2=0xb4,_0x3acabb=-0xb4,_0x28607c=0x5a,_0x2d4b9b=-0x5a,_0x1561ce=![];for(const _0x214884 of _0x24de2b){const _0x53fa54=_0x161341[_0x26084f(0x1f5,0x219)][_0x1b2cf5(0x59,-0xc)](new Cesium$1['Cartesian2'](_0x214884['x'],_0x214884['y']),_0x161341['globe']['ellipsoid']);if(!_0x53fa54){_0x1561ce=!![];break;}const _0x5c47d6=_0x161341['globe']['ellipsoid'][_0x26084f(0x277,0x1f1)](_0x53fa54),_0x2d425d=Cesium$1['Math'][_0x26084f(0x24d,0x1f2)](_0x5c47d6['longitude']),_0x367eec=Cesium$1['Math']['toDegrees'](_0x5c47d6[_0x26084f(0x2c1,0x2d0)]);_0x1cc2e2=Math[_0x1b2cf5(0x5c,0x4)](_0x1cc2e2,_0x2d425d),_0x3acabb=Math[_0x1b2cf5(0x86,0xb)](_0x3acabb,_0x2d425d),_0x28607c=Math['min'](_0x28607c,_0x367eec),_0x2d4b9b=Math[_0x26084f(0x2ad,0x28f)](_0x2d4b9b,_0x367eec);}if(!_0x1561ce){const _0x200107=new Cesium$1['Cartesian2'](Math['max'](this['windData'][_0x1b2cf5(-0x29,0x22)]['west'],_0x1cc2e2),Math[_0x26084f(0x2b0,0x288)](this[_0x26084f(0x290,0x263)][_0x26084f(0x242,0x2a6)]['east'],_0x3acabb)),_0x12ae8f=new Cesium$1['Cartesian2'](Math[_0x1b2cf5(-0x13,0xb)](this['windData']['bounds']['south'],_0x28607c),Math[_0x1b2cf5(-0x17,0x4)](this[_0x1b2cf5(0x39,-0x21)][_0x1b2cf5(-0x5b,0x22)][_0x1b2cf5(0x1a,-0x48)],_0x2d4b9b)),_0x38925e=(_0x200107['y']-_0x200107['x'])*0.05,_0x5950dd=(_0x12ae8f['y']-_0x12ae8f['x'])*0.05;_0x200107['x']=Math[_0x1b2cf5(0x7,0xb)](this['windData']['bounds'][_0x1b2cf5(0xa4,0x48)],_0x200107['x']-_0x38925e),_0x200107['y']=Math['min'](this[_0x1b2cf5(0x32,-0x21)]['bounds']['east'],_0x200107['y']+_0x38925e),_0x12ae8f['x']=Math['max'](this[_0x1b2cf5(0x5f,-0x21)]['bounds']['south'],_0x12ae8f['x']-_0x5950dd),_0x12ae8f['y']=Math[_0x1b2cf5(-0x8,0x4)](this[_0x26084f(0x1e5,0x263)]['bounds'][_0x1b2cf5(-0x7a,-0x48)],_0x12ae8f['y']+_0x5950dd),this['viewerParameters']['lonRange']=_0x200107,this['viewerParameters'][_0x26084f(0x261,0x2c3)]=_0x12ae8f;const _0x6078ef=this[_0x1b2cf5(0x5a,-0x21)]['bounds']['east']-this['windData']['bounds'][_0x26084f(0x322,0x2cc)],_0x5c1cea=this[_0x1b2cf5(0x20,-0x21)]['bounds'][_0x26084f(0x2c3,0x23c)]-this['windData']['bounds'][_0x26084f(0x2fe,0x2c8)],_0x1d8ca6=(_0x200107['y']-_0x200107['x'])/_0x6078ef,_0x2804b3=(_0x12ae8f['y']-_0x12ae8f['x'])/_0x5c1cea,_0x54b119=Math[_0x26084f(0x22b,0x288)](_0x1d8ca6,_0x2804b3),_0xa83f63=0x3e8*_0x54b119;_0xa83f63>0x0&&(this[_0x1b2cf5(0x27,-0x60)][_0x1b2cf5(0x7,-0x69)]=Math['max'](0x0,Math['min'](0x3e8,_0xa83f63)));}this[_0x26084f(0x1c3,0x224)][_0x1b2cf5(-0x65,-0xa)]=this[_0x26084f(0x2ba,0x2c2)][_0x1b2cf5(-0x2a,0x2a)],(_0x1569fb=this['particleSystem'])===null||_0x1569fb===void 0x0||_0x1569fb['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x3e6529,_0x5a7c56){const {bounds:_0x5608c7,width:_0x4391b9,height:_0x5a5a1d,u:_0x563707,v:_0x51d8bb,speed:_0x1986df}=this['windData'],{flipY:_0x3daa9b}=this['options'];if(_0x3e6529<_0x5608c7[_0xeaa319(0x294,0x240)]||_0x3e6529>_0x5608c7[_0xeaa319(0x168,0x1c6)]||_0x5a7c56<_0x5608c7['south']||_0x5a7c56>_0x5608c7['north'])return null;const _0x169795=(_0x3e6529-_0x5608c7['west'])/(_0x5608c7[_0x207a23(-0x11c,-0xf3)]-_0x5608c7[_0x207a23(-0x86,-0x79)])*(_0x4391b9-0x1);let _0x5ea21b=(_0x5a7c56-_0x5608c7['south'])/(_0x5608c7[_0x207a23(-0x135,-0x109)]-_0x5608c7['south'])*(_0x5a5a1d-0x1);_0x3daa9b&&(_0x5ea21b=_0x5a5a1d-0x1-_0x5ea21b);const _0xd43bce=Math[_0x207a23(-0xb0,-0x93)](_0x169795),_0x44c95f=Math['floor'](_0x5ea21b),_0x500374=Math['floor'](_0x169795),_0x46eda8=Math['min'](_0x500374+0x1,_0x4391b9-0x1),_0x28137c=Math['floor'](_0x5ea21b),_0x5c92b9=Math['min'](_0x28137c+0x1,_0x5a5a1d-0x1),_0x421707=_0x169795-_0x500374,_0x5b80d1=_0x5ea21b-_0x28137c,_0x3a29ee=_0x44c95f*_0x4391b9+_0xd43bce,_0x7712af=_0x28137c*_0x4391b9+_0x500374,_0x465818=_0x28137c*_0x4391b9+_0x46eda8,_0x340542=_0x5c92b9*_0x4391b9+_0x500374,_0x30bb81=_0x5c92b9*_0x4391b9+_0x46eda8,_0x27642d=_0x563707[_0x207a23(-0xf8,-0xc4)][_0x7712af],_0x482b3d=_0x563707['array'][_0x465818],_0x6bf273=_0x563707['array'][_0x340542],_0x8e9cd7=_0x563707['array'][_0x30bb81],_0x237d7b=(0x1-_0x421707)*(0x1-_0x5b80d1)*_0x27642d+_0x421707*(0x1-_0x5b80d1)*_0x482b3d+(0x1-_0x421707)*_0x5b80d1*_0x6bf273+_0x421707*_0x5b80d1*_0x8e9cd7,_0x24be43=_0x51d8bb[_0x207a23(-0x144,-0xc4)][_0x7712af],_0xb48d57=_0x51d8bb[_0x207a23(-0xa5,-0xc4)][_0x465818],_0x419804=_0x51d8bb[_0xeaa319(0x276,0x1f5)][_0x340542],_0x1a9c65=_0x51d8bb[_0xeaa319(0x215,0x1f5)][_0x30bb81],_0x204792=(0x1-_0x421707)*(0x1-_0x5b80d1)*_0x24be43+_0x421707*(0x1-_0x5b80d1)*_0xb48d57+(0x1-_0x421707)*_0x5b80d1*_0x419804+_0x421707*_0x5b80d1*_0x1a9c65,_0x283c40=Math['sqrt'](_0x237d7b*_0x237d7b+_0x204792*_0x204792),_0x2e87b1={};_0x2e87b1['u']=_0x563707[_0xeaa319(0x1c7,0x1f5)][_0x3a29ee];function _0x207a23(_0x19d058,_0x28388a){return _0x46d1d0(_0x28388a- -0x6d7,_0x19d058);}_0x2e87b1['v']=_0x51d8bb[_0x207a23(-0xd2,-0xc4)][_0x3a29ee],_0x2e87b1['speed']=_0x1986df['array'][_0x3a29ee];function _0xeaa319(_0xb10a95,_0x1f1ab0){return _0x4ee3(_0x1f1ab0- -0x2b9,_0xb10a95);}const _0x2db732={};_0x2db732['u']=_0x237d7b,_0x2db732['v']=_0x204792,_0x2db732['speed']=_0x283c40;const _0x2c2d3c={};return _0x2c2d3c['original']=_0x2e87b1,_0x2c2d3c['interpolated']=_0x2db732,_0x2c2d3c;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace[_0x46d1d0(0x679,0x667)][_0x46d1d0(0x663,0x655)]=WindLayer;function _0x23a9(){const _0x2801cf=['removeChild','particles','_setOptionsHook','dynamic','2691078ciKsze','_maxAge','dropRate','primitives','style','execute','lineWidth','mouseHidden','cartesianToCartographic','toDegrees','moveTo','geometry','clientHeight','1401455RpaYJs','createWindTextures','WindUtil','redraw','update','LINEAR','fixedHeight','xmin','particleSystem','_onMouseMoveEvent','pointerEvents','processWindData','worker','FLOAT','getSegmentDrawVertexShader','RED','_removedHook','pixelFormat','requestAnimationFrame','updateOptions','setData','_drawLines','postProcessingPosition','domain','applyViewerParameters','getOwnPropertyDescriptor','createRenderingFramebuffers','_canrefresh','destoryRenderingFramebuffers','mouse_move','cancelAnimationFrame','#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','left','6034296ZmFwjD','colorTable','camera','number','pixelSize','fromCache','show','#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','speedRate','updateViewerParameters','particlesTextureSize','umax','visible','viewerParameters','_onMouseUpEvent','Unknown\x20command\x20type','particlesTextures','4187280vmLoXA','setDate','SCENE3D','ymin','EllipsoidalOccluder','resize','updatePosition','hidden','tlng','CanvasWindLayer','getSegmentDrawFragmentShader','ONE_MINUS_SRC_ALPHA','mouse_down','framebuffer','create','unbindEvent','lng','frameTime','componentDatatype','setGeometry','north','speed','frameRate','createParticlesTextures','values','maxAge','_speedRate','bufferUsage','ellipsoid','keys','addEventListener','blendFuncSource','xmax','refreshTimer','remove','register','getRandomLatLng','primitiveType','isPointVisible','talt','createPrimitives','2FSQmvl','east','previousParticlesPosition','destination-in','DEPTH_COMPONENT','destroy','createRawRenderState','positionWC','none','pass','_showHook','round','isDynamic','IDENTITY','Compute','createRenderingTextures','486929GRNdCX','preExecute','windData','outputTexture','context','nextParticlesPosition','push','commandToExecute','clientWidth','depthTexture','_map','shaderProgram','position','data','rectangle','grid','umin','reCreateWindTextures','attributeLocations','pixelDatatype','off','enabled','segments','pickEllipsoid','_pointerEvents','sceneMode','__esModule','stringify','options','Cartesian3','length','getU','array','forEach','requestRender','computing','Cesium','colorTextures','TRIANGLES','min','particlesSpeed','default','globalAlpha','now','mouseMove','windField','max','_colorRamp','sources','clearCommand','stroke','_calc_speedRate','globe','canvasContext','width','canvas','age','zIndex','flipY','rows','vertexArray','componentsPerAttribute','OPAQUE','STATIC_DRAW','setOptions','auto','vdata','64JyioQE','clear','bounds','particlesNumber','fromGeometry','createComputingPrimitives','mouseDown','lat','cols','drawingBufferWidth','mode','textures','841707udEIIf','samplingWindow','floor','pointer-events','steps','#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','framebuffers','getPostProcessingPositionShader','BaseLayer','EventType','_mountedHook','container','bind','rendering','8105923eTAijt','blendFuncDestination','ymax','createCommand','scene','latRange','_updateIng','toGridXY','type','owner','south','visibility','canvasWidth','0px','west','tlat','removeEventListener','updateWindData','latitude','WindLayer','frameRateAdjustment','destroyParticlesTextures','canvasHeight','displayRange','windTextures','toWindowCoordinates','fragmentShaderSource','warn','clearFramebuffers','drawingBufferHeight','green','colors','percentageChanged','Math','calculateSpeed','object','_addedHook','random','beginPath','quietPeriod','flatMap','layer','dropRateBump','_canvasParticles','lineLength','height','globalCompositeOperation','_tomap','_randomParticle','uniformMap','createColorTableTexture','_onMapWhellEvent','rawRenderState','_calcUV','commandList','fillRect'];_0x23a9=function(){return _0x2801cf;};return _0x23a9();}class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this['tlng']=null,this['tlat']=null,this[_0x25d1e5(0x161,0x10f)]=null;function _0x25d1e5(_0x289ca5,_0xafc501){return _0x4ee3(_0x289ca5- -0x365,_0xafc501);}this['speed']=null;}[_0x46d1d0(0x5e8,0x5be)](){for(const _0x464384 in this){delete this[_0x464384];}}}class CanvasWindField{constructor(_0x4c85ad){this['setOptions'](_0x4c85ad);}get['speedRate'](){return this['_speedRate'];}set[_0x4ee3(0x44c,0x457)](_0x3eca76){function _0x135293(_0x2023d1,_0x4b6fb1){return _0x4ee3(_0x2023d1-0x11e,_0x4b6fb1);}function _0x56edc2(_0x4176d0,_0x1bb543){return _0x4ee3(_0x4176d0- -0x2ab,_0x1bb543);}this[_0x56edc2(0x1c4,0x216)]=(0x64-(_0x3eca76>0x63?0x63:_0x3eca76))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x135293(0x60b,0x614)]-this[_0x56edc2(0x1ad,0x14a)])/this[_0x56edc2(0x1c4,0x241)]];}get[_0x4ee3(0x46e,0x4da)](){function _0x243e40(_0x3db8e6,_0x483fce){return _0x46d1d0(_0x3db8e6- -0x4ce,_0x483fce);}return this[_0x243e40(0x1bf,0x147)];}set['maxAge'](_0x37c9ee){function _0x24aed4(_0x2ab410,_0x87afc3){return _0x4ee3(_0x87afc3- -0x236,_0x2ab410);}this[_0x24aed4(0x2ce,0x2f2)]=_0x37c9ee;}['setOptions'](_0x5476db){function _0x410956(_0x381270,_0x338ab9){return _0x4ee3(_0x338ab9-0xb5,_0x381270);}function _0x52d7b6(_0x1f207e,_0x4d9998){return _0x4ee3(_0x4d9998-0xf5,_0x1f207e);}this['options']=_0x5476db,this[_0x52d7b6(0x57b,0x563)]=_0x5476db[_0x52d7b6(0x5bc,0x563)]||0x78,this['speedRate']=_0x5476db[_0x52d7b6(0x55a,0x541)]||0x32,this['particles']=[];const _0x1b1ce8=_0x5476db['particlesNumber']||0x1000;for(let _0x7f530c=0x0;_0x7f530c<_0x1b1ce8;_0x7f530c++){const _0x4cf34e=this['_randomParticle'](new CanvasParticle());this['particles'][_0x52d7b6(0x57f,0x589)](_0x4cf34e);}}[_0x46d1d0(0x5bb,0x576)](_0x4f3f94){function _0x48d7a7(_0x189c32,_0xe7c945){return _0x4ee3(_0xe7c945- -0x2b5,_0x189c32);}this['rows']=_0x4f3f94[_0x48d7a7(0x267,0x214)],this['cols']=_0x4f3f94['cols'],this['xmin']=_0x4f3f94['xmin'],this[_0x48d7a7(0x246,0x1c0)]=_0x4f3f94['xmax'],this[_0x1d9857(0x17d,0x108)]=_0x4f3f94['ymin'],this['ymax']=_0x4f3f94['ymax'],this[_0x1d9857(0x1c2,0x1f8)]=[];const _0x23e8e2=_0x4f3f94['udata'];function _0x1d9857(_0x13abfc,_0xf89de6){return _0x4ee3(_0x13abfc- -0x2db,_0xf89de6);}const _0x701ac7=_0x4f3f94[_0x1d9857(0x1f5,0x1aa)];let _0x40e4c9=![];_0x23e8e2[_0x1d9857(0x1d1,0x167)]===this[_0x1d9857(0x1ee,0x24f)]&&_0x23e8e2[0x0][_0x48d7a7(0x207,0x1f7)]===this['cols']&&(_0x40e4c9=!![]);let _0x25a5a8=0x0,_0x38fc4b=null,_0x58974d=null;for(let _0x357d15=0x0;_0x357d15<this['rows'];_0x357d15++){_0x38fc4b=[];for(let _0x366d61=0x0;_0x366d61<this['cols'];_0x366d61++,_0x25a5a8++){_0x40e4c9?_0x58974d=this['_calcUV'](_0x23e8e2[_0x357d15][_0x366d61],_0x701ac7[_0x357d15][_0x366d61]):_0x58974d=this['_calcUV'](_0x23e8e2[_0x25a5a8],_0x701ac7[_0x25a5a8]),_0x38fc4b[_0x48d7a7(0x263,0x1df)](_0x58974d);}this[_0x1d9857(0x1c2,0x167)]['push'](_0x38fc4b);}!this['options']['flipY']&&this['grid']['reverse']();}[_0x46d1d0(0x637,0x6a0)](){function _0x4a44da(_0x436b7d,_0x21e8ed){return _0x46d1d0(_0x436b7d- -0x49a,_0x21e8ed);}function _0x48742d(_0x3d0631,_0x4236e3){return _0x4ee3(_0x4236e3- -0x16d,_0x3d0631);}delete this[_0x4a44da(0x194,0x179)],delete this['cols'],delete this[_0x48742d(0x33a,0x2bd)],delete this['xmax'],delete this['ymin'],delete this['ymax'],delete this[_0x4a44da(0x168,0x1e2)],delete this['particles'];}['toGridXY'](_0x3eed0e,_0x287ef2){function _0x4564bc(_0x5c1372,_0x1b656a){return _0x46d1d0(_0x1b656a- -0x660,_0x5c1372);}const _0x2253f6=(_0x3eed0e-this[_0x4564bc(-0xe6,-0xd1)])/(this[_0x4564bc(-0x79,-0x86)]-this['xmin'])*(this['cols']-0x1);function _0x105757(_0x151a64,_0x3480b4){return _0x4ee3(_0x151a64- -0x38e,_0x3480b4);}const _0x6fb4d7=(this['ymax']-_0x287ef2)/(this['ymax']-this['ymin'])*(this['rows']-0x1);return[_0x2253f6,_0x6fb4d7];}['getUVByXY'](_0x50bdf2,_0x2e4370){if(_0x50bdf2<0x0||_0x50bdf2>=this[_0x42c482(0x30b,0x2a8)]||_0x2e4370>=this[_0x637c7a(0x54a,0x595)])return[0x0,0x0,0x0];const _0x40a912=Math['floor'](_0x50bdf2),_0x15583=Math[_0x42c482(0x311,0x318)](_0x2e4370);function _0x637c7a(_0x19ec58,_0x8c5908){return _0x4ee3(_0x19ec58-0x81,_0x8c5908);}if(_0x40a912===_0x50bdf2&&_0x15583===_0x2e4370)return this['grid'][_0x2e4370][_0x50bdf2];const _0x1c6865=_0x40a912+0x1,_0x25cd69=_0x15583+0x1,_0x1d5b18=this['getUVByXY'](_0x40a912,_0x15583);function _0x42c482(_0x5d4c30,_0x4e0ef1){return _0x4ee3(_0x5d4c30- -0x1ce,_0x4e0ef1);}const _0x4ac646=this['getUVByXY'](_0x1c6865,_0x15583),_0x1fde8b=this['getUVByXY'](_0x40a912,_0x25cd69),_0x5bfec7=this['getUVByXY'](_0x1c6865,_0x25cd69);let _0x184532=null;try{_0x184532=this['_bilinearInterpolation'](_0x50bdf2-_0x40a912,_0x2e4370-_0x15583,_0x1d5b18,_0x4ac646,_0x1fde8b,_0x5bfec7);}catch(_0x4be891){console['log'](_0x50bdf2,_0x2e4370);}return _0x184532;}['_bilinearInterpolation'](_0x4c3ef0,_0x5bc0cd,_0xb3a05c,_0x280cb0,_0xa773db,_0x304048){const _0x5481cc=0x1-_0x4c3ef0,_0x15b401=0x1-_0x5bc0cd,_0x564323=_0x5481cc*_0x15b401,_0x4223c6=_0x4c3ef0*_0x15b401,_0x9c2f73=_0x5481cc*_0x5bc0cd,_0x2cf79b=_0x4c3ef0*_0x5bc0cd;function _0x44bfb4(_0x59bd0d,_0x11bbbd){return _0x46d1d0(_0x59bd0d- -0x423,_0x11bbbd);}const _0x45e1b1=_0xb3a05c[0x0]*_0x564323+_0x280cb0[0x0]*_0x4223c6+_0xa773db[0x0]*_0x9c2f73+_0x304048[0x0]*_0x2cf79b,_0x9c03f3=_0xb3a05c[0x1]*_0x564323+_0x280cb0[0x1]*_0x4223c6+_0xa773db[0x1]*_0x9c2f73+_0x304048[0x1]*_0x2cf79b;return this[_0x44bfb4(0x262,0x291)](_0x45e1b1,_0x9c03f3);}[_0x46d1d0(0x685,0x67c)](_0x30d127,_0x5d73e6){return[+_0x30d127,+_0x5d73e6,Math['sqrt'](_0x30d127*_0x30d127+_0x5d73e6*_0x5d73e6)];}['getUVByPoint'](_0xb38e14,_0x409707){if(!this['isInExtent'](_0xb38e14,_0x409707))return null;function _0x47663e(_0x2139d5,_0x2e7d41){return _0x46d1d0(_0x2e7d41- -0x178,_0x2139d5);}const _0x53ab6e=this[_0x47663e(0x4f5,0x4df)](_0xb38e14,_0x409707),_0x30bd3f=this['getUVByXY'](_0x53ab6e[0x0],_0x53ab6e[0x1]);return _0x30bd3f;}['isInExtent'](_0x4a1431,_0x2394db){function _0x376337(_0x4831dc,_0x2ec037){return _0x46d1d0(_0x4831dc- -0x3e0,_0x2ec037);}function _0x1f6fca(_0x2f6a6d,_0x43a133){return _0x4ee3(_0x43a133- -0x3ff,_0x2f6a6d);}return _0x4a1431>=this[_0x1f6fca(0x1b,0x2b)]&&_0x4a1431<=this[_0x1f6fca(0x40,0x76)]&&_0x2394db>=this[_0x376337(0x1dd,0x21e)]&&_0x2394db<=this['ymax']?!![]:![];}[_0x46d1d0(0x5de,0x5ab)](){const _0x57340a=fRandomByfloat(this['xmin'],this[_0x58386e(0x23e,0x1e8)]),_0x557ca9=fRandomByfloat(this[_0x3ae449(0x3e1,0x3bb)],this['ymax']);function _0x3ae449(_0x496f55,_0x2d15eb){return _0x46d1d0(_0x2d15eb- -0x202,_0x496f55);}const _0x38bd0d={};function _0x58386e(_0x5b1e84,_0xd54db9){return _0x4ee3(_0xd54db9- -0x28d,_0x5b1e84);}return _0x38bd0d[_0x3ae449(0x3c0,0x43b)]=_0x557ca9,_0x38bd0d['lng']=_0x57340a,_0x38bd0d;}['getParticles'](){let _0x3ca25d,_0x3df53b,_0x58f2ec;for(let _0x2a33a8=0x0,_0x5ca035=this['particles'][_0x1b9aa1(0x211,0x22e)];_0x2a33a8<_0x5ca035;_0x2a33a8++){let _0x29807f=this[_0x1b9aa1(0x289,0x270)][_0x2a33a8];_0x29807f['age']<=0x0&&(_0x29807f=this['_randomParticle'](_0x29807f));if(_0x29807f['age']>0x0){const _0x187871=_0x29807f['tlng'],_0x4121ca=_0x29807f['tlat'];_0x58f2ec=this['getUVByPoint'](_0x187871,_0x4121ca),_0x58f2ec?(_0x3ca25d=_0x187871+this['_calc_speedRate'][0x0]*_0x58f2ec[0x0],_0x3df53b=_0x4121ca+this['_calc_speedRate'][0x1]*_0x58f2ec[0x1],_0x29807f['lng']=_0x187871,_0x29807f['lat']=_0x4121ca,_0x29807f[_0x1b9aa1(0x1c2,0x1c6)]=_0x3ca25d,_0x29807f['tlat']=_0x3df53b,_0x29807f[_0x3e22a7(0x263,0x26a)]=_0x58f2ec[0x2],_0x29807f['age']--):_0x29807f[_0x3e22a7(0x2c6,0x2c6)]=0x0;}}function _0x1b9aa1(_0x32f378,_0x3e4a47){return _0x46d1d0(_0x32f378- -0x400,_0x3e4a47);}function _0x3e22a7(_0x46a180,_0x2b70b9){return _0x46d1d0(_0x2b70b9- -0x365,_0x46a180);}return this[_0x3e22a7(0x37e,0x324)];}[_0x46d1d0(0x680,0x626)](_0x3cc3a5){let _0x2b16d6,_0x5008c5;function _0x6daa44(_0x5df03c,_0x10a5f8){return _0x46d1d0(_0x5df03c- -0x55b,_0x10a5f8);}for(let _0x1c4221=0x0;_0x1c4221<0x1e;_0x1c4221++){_0x2b16d6=this['getRandomLatLng'](),_0x5008c5=this['getUVByPoint'](_0x2b16d6['lng'],_0x2b16d6['lat']);if(_0x5008c5&&_0x5008c5[0x2]>0x0)break;}if(!_0x5008c5)return _0x3cc3a5;const _0x15ae3f=_0x2b16d6[_0xa15acd(0x5a1,0x565)]+this['_calc_speedRate'][0x0]*_0x5008c5[0x0],_0xf22fb9=_0x2b16d6['lat']+this[_0x6daa44(0xcb,0x92)][0x1]*_0x5008c5[0x1];_0x3cc3a5['lng']=_0x2b16d6['lng'];function _0xa15acd(_0x437cda,_0x22acbb){return _0x46d1d0(_0x437cda- -0x29,_0x22acbb);}return _0x3cc3a5['lat']=_0x2b16d6[_0x6daa44(0xe2,0xb1)],_0x3cc3a5[_0xa15acd(0x599,0x5a7)]=_0x15ae3f,_0x3cc3a5[_0x6daa44(0x104,0xaa)]=_0xf22fb9,_0x3cc3a5['age']=Math[_0x6daa44(0x93,0xa1)](0xa+Math['random']()*this['maxAge']),_0x3cc3a5[_0xa15acd(0x5a6,0x55f)]=_0x5008c5[0x2],_0x3cc3a5;}['destroy'](){for(const _0x2e6da8 in this){delete this[_0x2e6da8];}}}function fRandomByfloat(_0x36472e,_0x1b289c){return _0x36472e+Math['random']()*(_0x1b289c-_0x36472e);}const Cesium=mars3d__namespace[_0x46d1d0(0x617,0x602)],BaseLayer=mars3d__namespace[_0x4ee3(0x514,0x555)][_0x46d1d0(0x64a,0x683)];function _0x4ee3(_0x14a192,_0x3fce83){return _0x3f35(_0x14a192-0x254,_0x3fce83);}class CanvasWindLayer extends BaseLayer{constructor(_0x4af0b2={}){function _0x4508d3(_0x458997,_0x40ee77){return _0x46d1d0(_0x40ee77- -0x3fa,_0x458997);}super(_0x4af0b2),this[_0x4508d3(0x230,0x290)](_0x4af0b2);function _0x39d4cf(_0x3185b9,_0x2260d7){return _0x4ee3(_0x3185b9- -0x66,_0x2260d7);}this['canvas']=null,_0x4af0b2[_0x4508d3(0x228,0x275)]&&_0x4af0b2[_0x4508d3(0x204,0x24c)]&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x4af0b2));}[_0x46d1d0(0x68a,0x66f)](_0x490a19,_0x22c625){this['frameTime']=0x3e8/(_0x490a19[_0x2b0204(0x2d,0xab)]||0xa);function _0x2b0204(_0x3d1753,_0x2219e4){return _0x4ee3(_0x3d1753- -0x43e,_0x2219e4);}this[_0x2b0204(0x68,0x24)]=this['options'][_0x2b0204(-0x11,-0x61)]??![];function _0x491af7(_0x3bf8be,_0x320a61){return _0x46d1d0(_0x3bf8be- -0x5ba,_0x320a61);}this['color']=_0x490a19['color']||'#ffffff',this['lineWidth']=_0x490a19['lineWidth']||0x1,this['fixedHeight']=_0x490a19[_0x2b0204(-0x15,-0x78)]??0x0,this[_0x491af7(0x73,0xd4)]=_0x490a19['flipY']??![],this[_0x491af7(0x66,0x3)]&&this[_0x491af7(0x66,-0x18)][_0x491af7(0x79,0x3)](_0x490a19);}get['layer'](){return this['canvas'];}get[_0x4ee3(0x4f7,0x49a)](){function _0x32f815(_0x12cc88,_0x4c3874){return _0x4ee3(_0x12cc88- -0x357,_0x4c3874);}function _0x2827ba(_0x4aa60b,_0x2f040a){return _0x4ee3(_0x4aa60b- -0x4b5,_0x2f040a);}return this[_0x2827ba(-0x1d,-0x1f)][_0x32f815(0x198,0x1b2)]['canvas']['clientWidth'];}get[_0x4ee3(0x501,0x496)](){function _0xf6a706(_0x520862,_0x370af4){return _0x46d1d0(_0x370af4- -0x660,_0x520862);}return this['_map'][_0xf6a706(0x5,-0xc)]['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set['pointerEvents'](_0x9424f8){this['_pointerEvents']=_0x9424f8;function _0x38835b(_0x57bf5c,_0x32c685){return _0x46d1d0(_0x57bf5c- -0x653,_0x32c685);}if(!this['canvas'])return;function _0x4a3532(_0x2f4f9e,_0x589082){return _0x4ee3(_0x589082- -0x2e8,_0x2f4f9e);}_0x9424f8?this['canvas']['style']['pointer-events']='all':this['canvas'][_0x4a3532(0x2c0,0x243)][_0x4a3532(0x1c5,0x1f8)]=_0x4a3532(0x1ad,0x19e);}get[_0x46d1d0(0x639,0x6a0)](){function _0x234ffa(_0x185b59,_0x2bbe05){return _0x4ee3(_0x2bbe05- -0x18a,_0x185b59);}return this['options'][_0x234ffa(0x3ac,0x34a)];}set['particlesNumber'](_0x598d3b){this[_0x2c33e0(0x61e,0x5de)]['particlesNumber']=_0x598d3b;function _0x2c33e0(_0x5424a7,_0x72f19b){return _0x46d1d0(_0x5424a7-0xf,_0x72f19b);}clearTimeout(this['_canrefresh']);function _0x24b7be(_0x166a38,_0x5b39ea){return _0x4ee3(_0x5b39ea- -0x167,_0x166a38);}this[_0x24b7be(0x2c6,0x2d7)]=setTimeout(()=>{function _0x1f1dee(_0x5f458a,_0x2f5a45){return _0x24b7be(_0x5f458a,_0x2f5a45-0x2a8);}this[_0x1f1dee(0x538,0x567)]();},0x1f4);}get[_0x46d1d0(0x5b1,0x58c)](){function _0x46c889(_0x27205d,_0x57409f){return _0x4ee3(_0x27205d- -0x437,_0x57409f);}function _0x2a36ec(_0x10bc3d,_0x28d017){return _0x46d1d0(_0x10bc3d- -0xdf,_0x28d017);}return this[_0x46c889(0x73,0x27)][_0x46c889(0x15,0x4d)];}set[_0x46d1d0(0x5b1,0x5f8)](_0x2b605b){function _0x4fd9ec(_0x1537cc,_0x4af4c4){return _0x4ee3(_0x4af4c4- -0x60b,_0x1537cc);}this[_0x4fd9ec(-0x181,-0x161)]['speedRate']=_0x2b605b;function _0x3d66f5(_0xde60f2,_0x286a46){return _0x46d1d0(_0x286a46-0x11,_0xde60f2);}this['windField']&&(this['windField'][_0x3d66f5(0x547,0x5c2)]=_0x2b605b);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x11f79f){this['options']['maxAge']=_0x11f79f;function _0x3eefbb(_0xac11ac,_0x3664f3){return _0x4ee3(_0xac11ac-0x11d,_0x3664f3);}this['windField']&&(this['windField'][_0x3eefbb(0x58b,0x58b)]=_0x11f79f);}get[_0x46d1d0(0x600,0x686)](){return this['windData'];}set[_0x4ee3(0x49b,0x4ee)](_0x4efa5f){function _0x550b5c(_0x368fef,_0x227870){return _0x46d1d0(_0x368fef- -0xb6,_0x227870);}this[_0x550b5c(0x4e6,0x4a6)](_0x4efa5f);}get[_0x4ee3(0x49c,0x49b)](){function _0x38109b(_0x12c10f,_0x248a33){return _0x4ee3(_0x12c10f- -0x460,_0x248a33);}function _0x258bcc(_0x5508eb,_0x2704ca){return _0x4ee3(_0x5508eb- -0x5b5,_0x2704ca);}let _0xd7501=this[_0x38109b(0x30,0x32)]['xmin'],_0x12249d=this[_0x38109b(0x30,-0x23)][_0x258bcc(-0x140,-0x14f)],_0x4d03a1=this['windData']['ymin'],_0x46646e=this['windData'][_0x38109b(0x8d,0xb2)];return _0x12249d>=0x167&&_0xd7501===0x0&&(_0xd7501=-0xb4,_0x12249d=0xb4),_0xd7501=Math['max'](_0xd7501,-0xb4),_0x12249d=Math[_0x38109b(0x55,0x57)](_0x12249d,0xb4),_0x4d03a1=Math['max'](_0x4d03a1,-0x5a),_0x46646e=Math[_0x38109b(0x55,0x79)](_0x46646e,0x5a),Cesium['Rectangle']['fromDegrees'](_0xd7501,_0x4d03a1,_0x12249d,_0x46646e);}['_showHook'](_0xbb5866){function _0x163b3a(_0x46bd4a,_0xe87dcc){return _0x4ee3(_0x46bd4a- -0x199,_0xe87dcc);}_0xbb5866?this['_addedHook']():(this['windData']&&(this['options']['data']=this[_0x163b3a(0x2f7,0x302)]),this['_removedHook']());}['_mountedHook'](){function _0xffda65(_0x48dd6d,_0x5d9632){return _0x4ee3(_0x5d9632-0xba,_0x48dd6d);}this['options']['worker']?this['initWorker']():this['windField']=new CanvasWindField(this[_0xffda65(0x4f6,0x564)]);}['_addedHook'](){this[_0x8e0dd4(0x18a,0x213)]=this['_createCanvas']();const _0x102cb3={};_0x102cb3['willReadFrequently']=!![],this['canvasContext']=this['canvas']['getContext']('2d',_0x102cb3);function _0x8e0dd4(_0x253791,_0x31d95b){return _0x46d1d0(_0x31d95b- -0x417,_0x253791);}this['bindEvent']();function _0x10d75c(_0x42f7e0,_0x271bc8){return _0x46d1d0(_0x271bc8- -0x5a0,_0x42f7e0);}this[_0x10d75c(0x9a,0x6f)][_0x8e0dd4(0x24c,0x1e9)]&&this['setData'](this[_0x10d75c(0xdd,0x6f)]['data']);}['_removedHook'](){function _0x5ad182(_0x1ae26d,_0x120776){return _0x4ee3(_0x120776- -0x7d,_0x1ae26d);}this['clear'](),this[_0x4808b1(0x53c,0x4cb)]();function _0x4808b1(_0x2cb427,_0x4e6acc){return _0x46d1d0(_0x4e6acc- -0xfe,_0x2cb427);}this['canvas']&&(this[_0x4808b1(0x548,0x4ff)][_0x4808b1(0x506,0x54f)][_0x5ad182(0x482,0x4a6)](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x5c6dc1=mars3d__namespace['DomUtil'][_0x4fc509(0xe1,0xfd)]('canvas','mars3d-canvasWind',this['_map']['container']);_0x5c6dc1['style'][_0x4fc509(0x1ad,0x134)]='absolute',_0x5c6dc1['style']['top']=_0x45375a(0x5a1,0x562),_0x5c6dc1['style'][_0x4fc509(0xc7,0xdd)]='0px',_0x5c6dc1[_0x45375a(0x5d4,0x5e8)]['width']=this['_map'][_0x4fc509(0x123,0x189)]['canvas'][_0x4fc509(0x18f,0x130)]+'px',_0x5c6dc1[_0x45375a(0x5d4,0x558)]['height']=this[_0x4fc509(0x139,0x132)][_0x4fc509(0x14d,0x189)][_0x4fc509(0x1c1,0x15f)]['clientHeight']+'px',_0x5c6dc1[_0x45375a(0x5d4,0x602)]['pointerEvents']=this['_pointerEvents']?_0x4fc509(0x141,0x169):_0x45375a(0x52f,0x507),_0x5c6dc1['style']['zIndex']=this['options'][_0x4fc509(0xe1,0x161)]??0x9;function _0x4fc509(_0x265216,_0x26e3e4){return _0x46d1d0(_0x26e3e4- -0x4cb,_0x265216);}_0x5c6dc1[_0x45375a(0x56d,0x5b1)]=this['_map'][_0x45375a(0x598,0x576)]['canvas'][_0x45375a(0x53f,0x58a)];function _0x45375a(_0x54f218,_0x34fcd3){return _0x4ee3(_0x54f218-0xa9,_0x34fcd3);}return _0x5c6dc1[_0x4fc509(0x21e,0x1b2)]=this['_map']['scene']['canvas']['clientHeight'],_0x5c6dc1;}[_0x46d1d0(0x5bf,0x5b1)](){function _0x171f70(_0x2ed45e,_0x57bb38){return _0x4ee3(_0x57bb38- -0x292,_0x2ed45e);}function _0x4c9610(_0x1ba6aa,_0x3e1c09){return _0x46d1d0(_0x1ba6aa- -0x13,_0x3e1c09);}this[_0x4c9610(0x617,0x680)]&&(this['canvas']['style']['width']=this[_0x4c9610(0x5ea,0x57a)][_0x171f70(0x236,0x25d)]['canvas']['clientWidth']+'px',this['canvas']['style'][_0x4c9610(0x66a,0x622)]=this['_map'][_0x171f70(0x2b4,0x25d)]['canvas'][_0x171f70(0x20f,0x190)]+'px',this['canvas'][_0x4c9610(0x616,0x5eb)]=this['_map']['scene']['canvas']['clientWidth'],this['canvas']['height']=this['_map'][_0x171f70(0x2b3,0x25d)][_0x4c9610(0x617,0x680)]['clientHeight']);}['bindEvent'](){const _0x3c2ff6=this;function _0x2c0225(_0x4aa3f3,_0x40e103){return _0x4ee3(_0x4aa3f3- -0x38e,_0x40e103);}let _0x12bc07=Date[_0x2c0225(0x12b,0x113)]();(function _0xc92e35(){function _0x4c295e(_0x26f066,_0xab993c){return _0x2c0225(_0x26f066- -0x21e,_0xab993c);}if(_0x3c2ff6['isDestroy'])return;function _0x32353b(_0x55eef2,_0x398e9f){return _0x2c0225(_0x55eef2- -0xe5,_0x398e9f);}_0x3c2ff6['_animateFrame']=window[_0x32353b(-0x3e,0xb)](_0xc92e35);if(_0x3c2ff6[_0x4c295e(-0x162,-0x1a3)]&&_0x3c2ff6['windField']){const _0x70835d=Date['now'](),_0x69a50b=_0x70835d-_0x12bc07;_0x69a50b>_0x3c2ff6['frameTime']&&(_0x12bc07=_0x70835d-_0x69a50b%_0x3c2ff6[_0x4c295e(-0x146,-0xc1)],_0x3c2ff6['update']());}}(),window[_0x163fa5(0x57c,0x52a)]('resize',this[_0x2c0225(0xcc,0x50)][_0x163fa5(0x5f2,0x569)](this),![]),this[_0x163fa5(0x56a,0x574)]=![],this['mouse_move']=![]);function _0x163fa5(_0x3d02fe,_0x299013){return _0x4ee3(_0x3d02fe-0x109,_0x299013);}this[_0x2c0225(0x11c,0x177)][_0x163fa5(0x526,0x4f6)]&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x163fa5(0x627,0x65a)],this),this['_map']['on'](mars3d__namespace[_0x163fa5(0x5ef,0x64d)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x2c0225(0x10a,0xcc)]['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x2c0225(0xc4,0x99)],this));}['unbindEvent'](){window[_0x5bcdc2(0x17b,0x13b)](this['_animateFrame']),delete this['_animateFrame'];function _0x5bcdc2(_0x42a8a3,_0x1d6f26){return _0x46d1d0(_0x1d6f26- -0x46b,_0x42a8a3);}function _0x1d1e3a(_0x5befea,_0x20be04){return _0x46d1d0(_0x20be04- -0x29e,_0x5befea);}window['removeEventListener']('resize',this['resize']),this['options']['mouseHidden']&&(this['_map'][_0x5bcdc2(0x181,0x19c)](mars3d__namespace[_0x1d1e3a(0x3e4,0x3ad)]['wheel'],this[_0x5bcdc2(0x294,0x218)],this),this[_0x1d1e3a(0x383,0x35f)][_0x5bcdc2(0x11b,0x19c)](mars3d__namespace['EventType'][_0x1d1e3a(0x3f3,0x39e)],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this[_0x5bcdc2(0x15b,0x14c)],this),this[_0x5bcdc2(0x1f0,0x192)][_0x1d1e3a(0x387,0x369)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x46d1d0(0x683,0x600)](_0x422c88){clearTimeout(this[_0x4e4430(0x100,0x157)]);function _0x4e4430(_0x5a13b3,_0x52e3c8){return _0x46d1d0(_0x52e3c8- -0x484,_0x5a13b3);}if(!this[_0x4e4430(0x12c,0x12b)]||!this['canvas'])return;this['canvas'][_0x9e9894(0x105,0x17b)]['visibility']=_0x4e4430(0xb5,0x13d);function _0x9e9894(_0xee6e82,_0x4141b9){return _0x4ee3(_0x4141b9- -0x3b0,_0xee6e82);}this['refreshTimer']=setTimeout(()=>{function _0x802b16(_0x3865c3,_0x527ab4){return _0x4e4430(_0x3865c3,_0x527ab4-0x3dc);}if(!this[_0x802b16(0x550,0x507)])return;function _0x29f359(_0x2563af,_0x3a71a5){return _0x9e9894(_0x3a71a5,_0x2563af- -0x1ba);}this[_0x802b16(0x556,0x4e3)](),this[_0x802b16(0x5ad,0x582)][_0x29f359(-0x3f,-0x8c)][_0x802b16(0x531,0x5b3)]=_0x802b16(0x4bc,0x50d);},0xc8);}['_onMouseDownEvent'](_0x3e5483){function _0x318706(_0x242d6e,_0x1b252c){return _0x46d1d0(_0x1b252c- -0x362,_0x242d6e);}this['mouse_down']=!![],this['_map'][_0x6e0323(-0x166,-0x13d)](mars3d__namespace[_0x6e0323(-0xf8,-0xf9)]['mouseMove'],this['_onMouseMoveEvent'],this);function _0x6e0323(_0x1fd01d,_0x57bfe0){return _0x46d1d0(_0x57bfe0- -0x744,_0x1fd01d);}this['_map']['on'](mars3d__namespace['EventType'][_0x318706(0x317,0x2bd)],this[_0x318706(0x27a,0x22f)],this);}[_0x4ee3(0x42c,0x3b3)](_0x1ff8bb){function _0x4a6104(_0xfa15d8,_0x41a759){return _0x4ee3(_0xfa15d8- -0x51b,_0x41a759);}if(!this['show']||!this['canvas'])return;function _0xc37bd(_0x1f1dad,_0x16b31a){return _0x46d1d0(_0x16b31a- -0x60b,_0x1f1dad);}this[_0xc37bd(0x28,-0x45)]&&(this['canvas']['style'][_0x4a6104(-0x25,-0x10)]='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x382d48){if(!this[_0x535bee(-0x7d,-0xfb)]||!this[_0x535bee(-0x2,0x1c)])return;this[_0x535bee(-0x2f,-0x49)][_0x4feb6c(-0xd8,-0x10a)](mars3d__namespace[_0x535bee(0x1f,0xe)]['mouseMove'],this[_0x535bee(-0x9b,-0xb3)],this);this['mouse_down']&&this[_0x535bee(-0x87,-0x1c)]&&this[_0x535bee(-0xa1,-0xa3)]();this['canvas'][_0x4feb6c(-0x18,-0x81)]['visibility']=_0x535bee(-0x77,-0x2c),this['mouse_down']=![];function _0x4feb6c(_0x49e302,_0x24a93f){return _0x46d1d0(_0x24a93f- -0x711,_0x49e302);}function _0x535bee(_0x3008c4,_0x5ed84f){return _0x46d1d0(_0x3008c4- -0x62c,_0x5ed84f);}this['mouse_move']=![];}['setData'](_0xcc800b){this['clear'](),this[_0x8aa954(0x3ef,0x46d)]=_0xcc800b,this['windField']['setDate'](_0xcc800b);function _0x8aa954(_0x47326e,_0x2f6aea){return _0x4ee3(_0x47326e- -0xa1,_0x2f6aea);}function _0x402390(_0x43c630,_0x47633f){return _0x4ee3(_0x43c630- -0x469,_0x47633f);}this[_0x8aa954(0x385,0x3bb)]();}['redraw'](){function _0x16dfa4(_0x3c45e1,_0x1f77f1){return _0x4ee3(_0x3c45e1- -0x53e,_0x1f77f1);}if(!this['show'])return;this['windField'][_0x16dfa4(-0x70,-0x7d)](this['options']),this['update']();}['update'](){if(this[_0x20df8c(-0xe1,-0x78)])return;this[_0x28b87a(-0x93,-0x10c)]=!![];if(this['worker'])this['windField']['update']();else{const _0x192b22=this['windField']['getParticles']();this['_drawLines'](_0x192b22);}function _0x20df8c(_0x3ea0d6,_0x2a2d8e){return _0x4ee3(_0x2a2d8e- -0x569,_0x3ea0d6);}function _0x28b87a(_0x2d89ef,_0x413731){return _0x46d1d0(_0x413731- -0x762,_0x2d89ef);}this[_0x20df8c(-0x27,-0x78)]=![];}[_0x4ee3(0x438,0x424)](_0x53e9d2){function _0x3f1f99(_0x4e50ec,_0x2e6d65){return _0x4ee3(_0x4e50ec- -0x2ea,_0x2e6d65);}this[_0x4f1ce8(0x5d5,0x584)]=_0x53e9d2,this['canvasContext']['globalCompositeOperation']=_0x4f1ce8(0x540,0x58b),this['canvasContext'][_0x3f1f99(0x238,0x262)](0x0,0x0,this[_0x3f1f99(0x20d,0x24b)],this[_0x3f1f99(0x217,0x210)]),this[_0x4f1ce8(0x582,0x568)][_0x4f1ce8(0x5d8,0x56d)]='lighter',this[_0x3f1f99(0x1d9,0x228)][_0x4f1ce8(0x577,0x517)]=0.9;const _0x22a830=this[_0x3f1f99(0x1ae,0x13f)][_0x4f1ce8(0x5ae,0x5d7)]['mode']!==Cesium['SceneMode']['SCENE3D'],_0x37c038=this['canvasWidth']*0.25;function _0x4f1ce8(_0x3adb9f,_0x1dbf21){return _0x4ee3(_0x3adb9f-0xbf,_0x1dbf21);}if(this[_0x3f1f99(0x1d3,0x189)])for(let _0x2ed607=0x0,_0x58c91e=_0x53e9d2[_0x4f1ce8(0x56b,0x587)];_0x2ed607<_0x58c91e;_0x2ed607++){const _0xfa48f4=_0x53e9d2[_0x2ed607],_0x5d5001=this[_0x4f1ce8(0x5d9,0x555)](_0xfa48f4,_0xfa48f4[_0x4f1ce8(0x524,0x4f6)],_0xfa48f4['lat'],_0xfa48f4['alt']),_0x591335=this[_0x4f1ce8(0x5d9,0x5d0)](_0xfa48f4,_0xfa48f4['tlng'],_0xfa48f4['tlat'],_0xfa48f4[_0x3f1f99(0x192,0x1bb)]);if(!_0x5d5001||!_0x591335)continue;if(_0x22a830&&Math['abs'](_0x5d5001[0x0]-_0x591335[0x0])>=_0x37c038)continue;this[_0x4f1ce8(0x582,0x533)][_0x3f1f99(0x227,0x1b4)](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this['_colorRamp']['getColor'](_0xfa48f4['speed']),this[_0x3f1f99(0x1d9,0x1f0)]['moveTo'](_0x5d5001[0x0],_0x5d5001[0x1]),this['canvasContext']['lineTo'](_0x591335[0x0],_0x591335[0x1]),this[_0x3f1f99(0x1d9,0x186)][_0x4f1ce8(0x57f,0x57e)]();}else{this['canvasContext']['beginPath'](),this['canvasContext'][_0x3f1f99(0x243,0x23e)]=this[_0x3f1f99(0x243,0x20a)],this['canvasContext']['strokeStyle']=this['color'];for(let _0x45cc14=0x0,_0xea6a12=_0x53e9d2['length'];_0x45cc14<_0xea6a12;_0x45cc14++){const _0x21f334=_0x53e9d2[_0x45cc14],_0x140263=this[_0x3f1f99(0x230,0x1cf)](_0x21f334,_0x21f334['lng'],_0x21f334[_0x3f1f99(0x1ee,0x218)],_0x21f334['alt']),_0x8a2447=this[_0x3f1f99(0x230,0x25b)](_0x21f334,_0x21f334['tlng'],_0x21f334[_0x4f1ce8(0x5b9,0x5d0)],_0x21f334['talt']);if(!_0x140263||!_0x8a2447)continue;if(_0x22a830&&Math['abs'](_0x140263[0x0]-_0x8a2447[0x0])>=_0x37c038)continue;this['canvasContext'][_0x3f1f99(0x136,0x1a6)](_0x140263[0x0],_0x140263[0x1]),this['canvasContext']['lineTo'](_0x8a2447[0x0],_0x8a2447[0x1]);}this['canvasContext']['stroke']();}}[_0x46d1d0(0x67f,0x664)](_0x50225b,_0x10bac9,_0x496986,_0x3640a2){const _0x11f417=Cesium[_0xdafd10(0x2d1,0x31d)]['fromDegrees'](_0x10bac9,_0x496986,_0x3640a2??this['fixedHeight']),_0x47e3a7=this[_0x4b13c7(0x11e,0xe7)]['scene'];if(_0x47e3a7[_0xdafd10(0x301,0x291)]===Cesium['SceneMode'][_0xdafd10(0x27d,0x210)]){const _0xd61e20=new Cesium[(_0xdafd10(0x27f,0x278))](_0x47e3a7[_0x4b13c7(0x148,0xee)][_0x4b13c7(0xf7,0xa2)],_0x47e3a7['camera'][_0xdafd10(0x2ab,0x282)]),_0x3c9210=_0xd61e20[_0xdafd10(0x2a1,0x2e2)](_0x11f417);if(!_0x3c9210)return _0x50225b['age']=0x0,null;}const _0x4f4a4c=mars3d__namespace['PointTrans'][_0xdafd10(0x32a,0x332)](this[_0xdafd10(0x2be,0x2f2)]['scene'],_0x11f417);function _0xdafd10(_0x311fc2,_0x5ac555){return _0x4ee3(_0x311fc2- -0x1da,_0x5ac555);}function _0x4b13c7(_0x2a9deb,_0x3db0dd){return _0x46d1d0(_0x2a9deb- -0x4df,_0x3db0dd);}return _0x4f4a4c?[_0x4f4a4c['x'],_0x4f4a4c['y']]:null;}[_0x4ee3(0x4d2,0x4b8)](){function _0xddbe80(_0x21bde0,_0x3812df){return _0x46d1d0(_0x21bde0- -0x5f3,_0x3812df);}function _0x5d2d11(_0x15430b,_0x36bf6f){return _0x46d1d0(_0x36bf6f- -0x14,_0x15430b);}this[_0x5d2d11(0x61e,0x60c)]['clear'](),delete this[_0xddbe80(0x2,-0x16)];}['initWorker'](){this['worker']=new Worker(this['options']['worker']),this['worker']['onmessage']=_0x2c1ea7=>{function _0x5e3819(_0x4cf198,_0x4e1d7d){return _0x3f35(_0x4cf198- -0x256,_0x4e1d7d);}this['_drawLines'](_0x2c1ea7['data'][_0x5e3819(0x7a,0x4d)]),this['_updateIng2']=![];},this[_0x383028(0x53b,0x52a)]={'init':_0x2c53b4=>{const _0x15950d={};function _0x3e54f0(_0x530a6c,_0x2dd084){return _0x383028(_0x530a6c-0xba,_0x2dd084);}function _0x46734c(_0x1d6b3c,_0x419ccb){return _0x383028(_0x419ccb- -0x670,_0x1d6b3c);}_0x15950d[_0x3e54f0(0x62d,0x620)]='init',_0x15950d[_0x3e54f0(0x5e4,0x5a6)]=_0x2c53b4,this['worker']['postMessage'](_0x15950d);},'setOptions':_0x2db245=>{const _0xc7e1b8={};function _0x23176f(_0x819597,_0x231f20){return _0x383028(_0x231f20-0x82,_0x819597);}_0xc7e1b8['type']=_0x23176f(0x584,0x5d0),_0xc7e1b8['options']=_0x2db245,this['worker']['postMessage'](_0xc7e1b8);},'setDate':_0x418e29=>{function _0x568a7b(_0x2c248f,_0x68580f){return _0x383028(_0x68580f- -0x2f5,_0x2c248f);}const _0x5cfc7c={};_0x5cfc7c[_0x568a7b(0x1f8,0x27e)]='setDate',_0x5cfc7c['data']=_0x418e29,this['worker']['postMessage'](_0x5cfc7c);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x23c5cb={};_0x23c5cb[_0x52ab86(0x6dc,0x67d)]='update';function _0x27d31e(_0x3eb72d,_0x1deb36){return _0x383028(_0x3eb72d- -0x1c7,_0x1deb36);}function _0x52ab86(_0xf01462,_0x5eec95){return _0x383028(_0x5eec95-0x10a,_0xf01462);}this[_0x27d31e(0x2e8,0x2a2)]['postMessage'](_0x23c5cb);},'clear':()=>{const _0x55964d={};_0x55964d[_0x26f53c(0xd3,0xae)]='clear';function _0x26f53c(_0x382ecd,_0x4532fc){return _0x383028(_0x382ecd- -0x4a0,_0x4532fc);}this['worker']['postMessage'](_0x55964d);}};function _0x383028(_0x50a801,_0x3f1127){return _0x4ee3(_0x50a801-0x80,_0x3f1127);}this['windField']['init'](this['options']);}}mars3d__namespace['LayerUtil'][_0x46d1d0(0x5dd,0x5f2)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer'][_0x46d1d0(0x5c3,0x612)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log']['logInfo']('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x4ee3(0x45e,0x4a9)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x46d1d0(0x58a,0x5fd)]=WindUtil;const _0x19734f={};_0x19734f['value']=!![],Object['defineProperty'](exports,_0x46d1d0(0x60d,0x5f9),_0x19734f);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.10.8",
3
+ "version": "3.10.9",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.10.8"
8
+ "mars3d": "~3.10.9"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"