mars3d-wind 3.9.7 → 3.9.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.9.7
5
- * 编译日期:2025-04-21 19:49
4
+ * 版本信息:v3.9.9
5
+ * 编译日期:2025-05-07 09:33
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:火星科技免费公开版 ,2025-02-01
8
8
  */
@@ -11,5 +11,5 @@
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';function _0x2e747d(_0x140783,_0x4f8fd9){return _0x1e9b(_0x4f8fd9- -0x166,_0x140783);}(function(_0x11308f,_0x3c8d6b){function _0x2ea8eb(_0x35d061,_0x4bbbd5){return _0x1e9b(_0x35d061- -0x295,_0x4bbbd5);}const _0x45adfc=_0x11308f();function _0x25b517(_0x56e566,_0x42b2ab){return _0x1e9b(_0x56e566- -0x1fe,_0x42b2ab);}while(!![]){try{const _0xb779aa=-parseInt(_0x2ea8eb(-0x15c,-0x1a8))/0x1*(-parseInt(_0x25b517(-0x9d,-0x21))/0x2)+-parseInt(_0x25b517(0x7,-0x7f))/0x3+parseInt(_0x25b517(-0x76,-0xeb))/0x4*(parseInt(_0x2ea8eb(-0xb0,-0x122))/0x5)+-parseInt(_0x2ea8eb(-0xbd,-0x139))/0x6*(-parseInt(_0x2ea8eb(-0x112,-0x128))/0x7)+parseInt(_0x2ea8eb(-0xec,-0x109))/0x8+-parseInt(_0x25b517(-0x6b,0xa))/0x9*(parseInt(_0x25b517(0x31,0x4b))/0xa)+-parseInt(_0x25b517(-0x38,0x36))/0xb;if(_0xb779aa===_0x3c8d6b)break;else _0x45adfc['push'](_0x45adfc['shift']());}catch(_0x1380b9){_0x45adfc['push'](_0x45adfc['shift']());}}}(_0x2570,0x6401c));function _interopNamespace(_0x392ee2){function _0x567616(_0x25cb17,_0x5d78f7){return _0x1e9b(_0x25cb17- -0x30,_0x5d78f7);}if(_0x392ee2&&_0x392ee2[_0x567616(0x100,0x176)])return _0x392ee2;function _0x352515(_0x339eee,_0x547774){return _0x1e9b(_0x339eee- -0x378,_0x547774);}var _0x320fd3=Object[_0x352515(-0x166,-0x155)](null);return _0x392ee2&&Object['keys'](_0x392ee2)['forEach'](function(_0x408396){function _0x1172d0(_0x13e15b,_0x1fa876){return _0x567616(_0x13e15b- -0x248,_0x1fa876);}function _0x2851dd(_0x3101e4,_0x44c6a1){return _0x352515(_0x3101e4-0x703,_0x44c6a1);}if(_0x408396!==_0x2851dd(0x5ab,0x545)){var _0x2c9b87=Object['getOwnPropertyDescriptor'](_0x392ee2,_0x408396);Object['defineProperty'](_0x320fd3,_0x408396,_0x2c9b87[_0x2851dd(0x55c,0x502)]?_0x2c9b87:{'enumerable':!![],'get':function(){return _0x392ee2[_0x408396];}});}}),_0x320fd3['default']=_0x392ee2,_0x320fd3;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x37aa63,_0xb025e8){function _0x4362b7(_0x3bed2d,_0x458b8f){return _0x1e9b(_0x3bed2d- -0x314,_0x458b8f);}function _0x5eede0(_0x3d80e2,_0x521a40){return _0x1e9b(_0x521a40-0xb1,_0x3d80e2);}const _0x30c570=_0x37aa63*Math[_0x4362b7(-0xe3,-0x83)](Cesium$2['Math'][_0x4362b7(-0x183,-0x188)](_0xb025e8));return _0x30c570;}function _0x4086ac(_0x3b17b0,_0x348c4d){return _0x1e9b(_0x348c4d- -0x82,_0x3b17b0);}function getV(_0x2dd46d,_0x3f362d){const _0x1d1925=_0x2dd46d*Math['sin'](Cesium$2['Math'][_0x240ee1(0x1c4,0x142)](_0x3f362d));function _0x240ee1(_0x2a5a4c,_0x458bb8){return _0x1e9b(_0x2a5a4c-0x33,_0x458bb8);}return _0x1d1925;}function getSpeed(_0x24ad65,_0x1b0393){function _0x426bb0(_0x52c1c0,_0x348001){return _0x1e9b(_0x348001- -0x32b,_0x52c1c0);}const _0x5e6433=Math['sqrt'](Math['pow'](_0x24ad65,0x2)+Math[_0x426bb0(-0x14e,-0x11a)](_0x1b0393,0x2));return _0x5e6433;}function getDirection(_0x1b54db,_0x182bec){let _0x5ec519=Cesium$2['Math']['toDegrees'](Math[_0x4607da(0x451,0x418)](_0x182bec,_0x1b54db));function _0x4607da(_0x598032,_0x21c72a){return _0x1e9b(_0x21c72a-0x1f6,_0x598032);}return _0x5ec519+=_0x5ec519<0x0?0x168:0x0,_0x5ec519;}const _0x2b5825={};_0x2b5825['__proto__']=null,_0x2b5825['getU']=getU,_0x2b5825['getV']=getV,_0x2b5825['getSpeed']=getSpeed,_0x2b5825['getDirection']=getDirection;var WindUtil=_0x2b5825,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader=_0x4086ac(0x1e0,0x17d),postProcessingPositionFragmentShader=_0x2e747d(0x2a,0x65),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=_0x2e747d(-0x25,-0x9);const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x39a03c={};return _0x39a03c['sources']=[calculateSpeedShader],new ShaderSource$1(_0x39a03c);}static['getUpdatePositionShader'](){const _0x4541e6={};return _0x4541e6['sources']=[updatePositionShader],new ShaderSource$1(_0x4541e6);}static[_0x2e747d(0x121,0xb0)](){const _0x37e999={};return _0x37e999['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x37e999);}static['getSegmentDrawFragmentShader'](){const _0x35f93d={};return _0x35f93d['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x35f93d);}static[_0x2e747d(-0x99,-0x1e)](){const _0x324a2e={};return _0x324a2e['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x324a2e);}}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[_0x2e747d(0x2c,-0x38)];class CustomPrimitive{constructor(_0xc88303){this['commandType']=_0xc88303[_0x58e34f(-0x21a,-0x1a9)],this['geometry']=_0xc88303[_0x36acea(-0x176,-0x1f2)],this[_0x36acea(-0xe8,-0xdc)]=_0xc88303[_0x36acea(-0xe8,-0x100)],this['primitiveType']=_0xc88303[_0x36acea(-0x14b,-0x190)],this[_0x36acea(-0x105,-0xae)]=_0xc88303['uniformMap']||{},this['vertexShaderSource']=_0xc88303[_0x36acea(-0x10a,-0x137)],this[_0x58e34f(-0x1b2,-0x1b5)]=_0xc88303['fragmentShaderSource'],this['rawRenderState']=_0xc88303[_0x36acea(-0x161,-0x176)],this[_0x58e34f(-0x150,-0xdd)]=_0xc88303['framebuffer'];function _0x36acea(_0x7b87d9,_0x22191a){return _0x2e747d(_0x22191a,_0x7b87d9- -0x196);}this['outputTexture']=_0xc88303['outputTexture'],this['autoClear']=_0xc88303['autoClear']??![];function _0x58e34f(_0x3d1ed3,_0x16ff47){return _0x2e747d(_0x3d1ed3,_0x16ff47- -0x198);}this[_0x58e34f(-0xf1,-0x14f)]=_0xc88303['preExecute'],this[_0x36acea(-0x10c,-0x139)]=!![],this[_0x36acea(-0x11f,-0x15e)]=undefined,this['clearCommand']=undefined,this[_0x36acea(-0x164,-0x1c8)]=_0xc88303['isDynamic']??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x36acea(-0xdb,-0xfd)],'pass':Pass$1[_0x36acea(-0x168,-0x188)]}));}[_0x2e747d(0x6e,-0xa)](_0x13ace3){function _0x498ebb(_0x3f3a1a,_0x3ebe45){return _0x4086ac(_0x3f3a1a,_0x3ebe45-0x26d);}function _0x204c47(_0xdda062,_0x172978){return _0x4086ac(_0xdda062,_0x172978- -0x22);}if(this['commandType']==='Draw'){const _0x29dd35={};_0x29dd35['context']=_0x13ace3,_0x29dd35['geometry']=this['geometry'],_0x29dd35[_0x204c47(0x133,0x170)]=this[_0x498ebb(0x46f,0x3ff)],_0x29dd35[_0x498ebb(0x47e,0x425)]=BufferUsage$1['STATIC_DRAW'];const _0x42133d=VertexArray$1[_0x498ebb(0x350,0x38e)](_0x29dd35),_0x241187={};_0x241187['context']=_0x13ace3,_0x241187['vertexShaderSource']=this['vertexShaderSource'],_0x241187['fragmentShaderSource']=this['fragmentShaderSource'],_0x241187[_0x204c47(0x111,0x170)]=this[_0x204c47(0x1a9,0x170)];const _0x70aea3=ShaderProgram['fromCache'](_0x241187),_0x9cdf91=RenderState[_0x498ebb(0x2f1,0x351)](this[_0x498ebb(0x3d6,0x386)]),_0xa45f83={};return _0xa45f83['owner']=this,_0xa45f83[_0x498ebb(0x362,0x38a)]=_0x42133d,_0xa45f83['primitiveType']=this[_0x498ebb(0x393,0x39c)],_0xa45f83[_0x204c47(0x86,0xda)]=Matrix4[_0x498ebb(0x2ef,0x352)],_0xa45f83['renderState']=_0x9cdf91,_0xa45f83['shaderProgram']=_0x70aea3,_0xa45f83['framebuffer']=this['framebuffer'],_0xa45f83[_0x204c47(0x138,0x153)]=this['uniformMap'],_0xa45f83['pass']=Pass$1['OPAQUE'],new DrawCommand(_0xa45f83);}else{if(this['commandType']==='Compute'){const _0x35fb2e={};return _0x35fb2e['owner']=this,_0x35fb2e['fragmentShaderSource']=this['fragmentShaderSource'],_0x35fb2e[_0x498ebb(0x3b6,0x3e2)]=this['uniformMap'],_0x35fb2e['outputTexture']=this['outputTexture'],_0x35fb2e[_0x204c47(0x12f,0x115)]=!![],new ComputeCommand(_0x35fb2e);}else throw new Error(_0x204c47(0x17c,0x12c));}}['setGeometry'](_0x219071,_0x36843f){function _0x4980e6(_0x564a09,_0x4ec096){return _0x2e747d(_0x564a09,_0x4ec096-0x3d8);}function _0x13328d(_0x8e25f9,_0x3677e7){return _0x4086ac(_0x8e25f9,_0x3677e7- -0x46);}this['geometry']=_0x36843f,defined(this[_0x13328d(0x155,0x115)])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x219071,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x13328d(0x184,0x16b)]}));}['update'](_0x51c186){if(!this[_0xb812ba(0x263,0x23c)]())return;if(!this[_0xb812ba(0x2bb,0x24d)]||!defined(_0x51c186))return;!defined(this[_0x3786a6(0xf1,0xe7)])&&(this['commandToExecute']=this[_0x3786a6(0x70,0x88)](_0x51c186['context']));defined(this['preExecute'])&&this['preExecute']();if(!_0x51c186['commandList']){console[_0xb812ba(0x294,0x2b2)]('frameState.commandList\x20is\x20undefined');return;}function _0x3786a6(_0xe0168c,_0x4a62c0){return _0x4086ac(_0x4a62c0,_0xe0168c- -0x6a);}function _0xb812ba(_0x4e166c,_0x2cc0f8){return _0x4086ac(_0x2cc0f8,_0x4e166c-0x14d);}defined(this[_0xb812ba(0x2d5,0x2fb)])&&_0x51c186['commandList']['push'](this['clearCommand']),defined(this['commandToExecute'])&&_0x51c186[_0x3786a6(0xc0,0xdb)]['push'](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){if(defined(this[_0x598a3b(-0x3d,-0x7c)])){var _0x14ff6c;(_0x14ff6c=this['commandToExecute']['shaderProgram'])===null||_0x14ff6c===void 0x0||_0x14ff6c['destroy'](),this[_0x598a3b(-0x46,-0x7c)]['shaderProgram']=undefined;}function _0x5d17ee(_0x4712fe,_0x213285){return _0x2e747d(_0x4712fe,_0x213285- -0x1dc);}function _0x598a3b(_0x25d726,_0x2f2b6b){return _0x4086ac(_0x25d726,_0x2f2b6b- -0x1d7);}return destroyObject(this);}}function deepMerge(_0x3ef7b6,_0x3c49d4){function _0x1f2b4c(_0x578efc,_0x3f79f4){return _0x4086ac(_0x3f79f4,_0x578efc- -0x1b8);}if(!_0x3ef7b6)return _0x3c49d4;if(!_0x3c49d4)return _0x3ef7b6;const _0x3e0ffd={..._0x3c49d4},_0x3bd7f7=_0x3e0ffd;for(const _0x17eeb2 in _0x3ef7b6){if(Object[_0x1f2b4c(-0x7b,-0x54)]['hasOwnProperty']['call'](_0x3ef7b6,_0x17eeb2)){const _0x7cf7d3=_0x3ef7b6[_0x17eeb2],_0x5ad9bf=_0x3c49d4[_0x17eeb2];if(Array['isArray'](_0x7cf7d3)){_0x3bd7f7[_0x17eeb2]=_0x7cf7d3[_0x428784(0x416,0x410)]();continue;}if(_0x7cf7d3&&typeof _0x7cf7d3==='object'){_0x3bd7f7[_0x17eeb2]=deepMerge(_0x7cf7d3,_0x5ad9bf||{});continue;}_0x7cf7d3!==undefined&&(_0x3bd7f7[_0x17eeb2]=_0x7cf7d3);}}function _0x428784(_0x12ce42,_0x1065de){return _0x2e747d(_0x12ce42,_0x1065de-0x445);}return _0x3bd7f7;}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(_0x231999,_0x255572,_0x13a94c,_0x45f6aa,_0x55986a){this['context']=_0x231999,this['options']=_0x13a94c,this['viewerParameters']=_0x45f6aa,this[_0x2903ca(0x160,0x105)]=_0x255572;function _0x551cbf(_0x34c92a,_0x39bb1b){return _0x2e747d(_0x34c92a,_0x39bb1b-0x40d);}this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x17a607={};_0x17a607['scene']=_0x55986a,_0x17a607[_0x551cbf(0x47f,0x4cd)]=0x1,_0x17a607['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x17a607);function _0x2903ca(_0x44dd8e,_0x52d1f9){return _0x4086ac(_0x44dd8e,_0x52d1f9-0x38);}this['initFrameRate'](),this[_0x551cbf(0x48a,0x4c1)](),this[_0x2903ca(0x14c,0x144)](),this['createComputingPrimitives']();}[_0x2e747d(0xe2,0x5c)](){function _0x50f213(_0x1450d2,_0x22bdec){return _0x2e747d(_0x1450d2,_0x22bdec-0x457);}const _0x4e1afc=()=>{function _0x5c297d(_0x470b51,_0x5b9758){return _0x1e9b(_0x470b51- -0x101,_0x5b9758);}function _0x433c1d(_0x7f69f7,_0x264b9a){return _0x1e9b(_0x7f69f7- -0x15c,_0x264b9a);}this['frameRateMonitor'][_0x433c1d(0x39,0xa3)]>0x14&&(this['frameRate']=this[_0x5c297d(0xc3,0x41)]['lastFramesPerSecond'],this[_0x433c1d(-0xe,-0x8)]=0x3c/Math[_0x5c297d(0xff,0x84)](this[_0x433c1d(0xad,0x9d)],0x1));};_0x4e1afc();const _0x345987=setInterval(_0x4e1afc,0x3e8),_0x4ffd41=this[_0x50f213(0x4c7,0x492)]['bind'](this);this['destroy']=()=>{clearInterval(_0x345987),_0x4ffd41();};}[_0x4086ac(0x11e,0x198)](){const _0x51aa52={};_0x51aa52[_0x14723e(-0x160,-0x13e)]=TextureMinificationFilter$1['LINEAR'];function _0x556132(_0x337c9e,_0x2c0f87){return _0x4086ac(_0x337c9e,_0x2c0f87-0x421);}function _0x14723e(_0x36ceec,_0x100fc8){return _0x2e747d(_0x36ceec,_0x100fc8- -0x152);}_0x51aa52['magnificationFilter']=TextureMagnificationFilter$1[_0x556132(0x607,0x5cd)];const _0x30a20c={'context':this['context'],'width':this[_0x556132(0x52d,0x4ee)][_0x14723e(-0x167,-0x15e)],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x556132(0x5ed,0x567)]['flipY']??![],'sampler':new Sampler$1(_0x51aa52)};this[_0x14723e(-0x9f,-0xc4)]={'U':new Texture$1({..._0x30a20c,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x30a20c,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){function _0x471a07(_0x5ac9cb,_0x138ae2){return _0x2e747d(_0x138ae2,_0x5ac9cb-0x2ce);}const _0xf0573c={};function _0x267ff3(_0x1f57d1,_0xb5a813){return _0x2e747d(_0xb5a813,_0x1f57d1-0xa2);}_0xf0573c[_0x471a07(0x2e2,0x323)]=TextureMinificationFilter$1['NEAREST'],_0xf0573c['magnificationFilter']=TextureMagnificationFilter$1[_0x471a07(0x2ed,0x2d6)];const _0x33a30e={'context':this['context'],'width':this['options'][_0x267ff3(0x122,0x156)],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0x471a07(0x37d,0x3a2)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x267ff3(0x104,0x9d)][_0x471a07(0x34e,0x2d8)]*this['options']['particlesTextureSize']*0x4)[_0x471a07(0x390,0x321)](0x0)},'sampler':new Sampler$1(_0xf0573c)};this[_0x471a07(0x28f,0x278)]={'previousParticlesPosition':new Texture$1(_0x33a30e),'currentParticlesPosition':new Texture$1(_0x33a30e),'nextParticlesPosition':new Texture$1(_0x33a30e),'postProcessingPosition':new Texture$1(_0x33a30e),'particlesSpeed':new Texture$1(_0x33a30e)};}['destroyParticlesTextures'](){function _0xe2794c(_0x801ef3,_0x17c051){return _0x2e747d(_0x17c051,_0x801ef3- -0x231);}Object['values'](this['particlesTextures'])['forEach'](_0x85e39e=>_0x85e39e[_0xe2794c(-0x1f6,-0x210)]());}[_0x4086ac(0xf6,0x17c)](){function _0x38346c(_0x399783,_0x4dc75a){return _0x4086ac(_0x4dc75a,_0x399783-0xb6);}function _0x164b25(_0x53bc0e,_0xaced18){return _0x2e747d(_0xaced18,_0x53bc0e- -0x15f);}this[_0x164b25(-0xde,-0x8a)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this[_0x164b25(-0xd1,-0x144)]['V'],'uRange':()=>new Cartesian2$1(this['windData']['u'][_0x164b25(-0x102,-0x181)],this[_0x164b25(-0x176,-0x195)]['u'][_0x164b25(-0xc5,-0x95)]),'vRange':()=>new Cartesian2$1(this[_0x164b25(-0x176,-0x1d1)]['v']['min'],this[_0x164b25(-0x176,-0x1aa)]['v'][_0x164b25(-0xc5,-0xef)]),'speedRange':()=>new Cartesian2$1(this[_0x38346c(0x183,0x124)][_0x38346c(0x1f1,0x1c2)]['min'],this[_0x38346c(0x183,0x141)][_0x38346c(0x1f1,0x16a)][_0x164b25(-0xc5,-0x9a)]),'currentParticlesPosition':()=>this['particlesTextures'][_0x164b25(-0x156,-0x129)],'speedScaleFactor':()=>{return(this['viewerParameters']['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this[_0x164b25(-0x177,-0x1ba)],'dimension':()=>new Cartesian2$1(this['windData'][_0x38346c(0x18e,0x20a)],this[_0x38346c(0x183,0x1b5)][_0x164b25(-0xaa,-0x12f)]),'minimum':()=>new Cartesian2$1(this[_0x164b25(-0x176,-0xf0)]['bounds'][_0x164b25(-0xb9,-0x5e)],this[_0x38346c(0x183,0x14e)][_0x38346c(0x1af,0x144)]['south']),'maximum':()=>new Cartesian2$1(this[_0x164b25(-0x176,-0x1e3)][_0x164b25(-0x14a,-0xc2)]['east'],this['windData'][_0x38346c(0x1af,0x135)]['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x164b25(-0x19e,-0x1be)][_0x38346c(0x1e7,0x161)],'preExecute':()=>{const _0x380e21=this[_0x2b12f4(0x407,0x462)]['previousParticlesPosition'];function _0x373d5a(_0x416898,_0x57b3ee){return _0x164b25(_0x57b3ee-0x6a0,_0x416898);}this['particlesTextures'][_0x373d5a(0x586,0x503)]=this['particlesTextures'][_0x2b12f4(0x475,0x4aa)],this[_0x373d5a(0x526,0x502)]['currentParticlesPosition']=this['particlesTextures'][_0x2b12f4(0x50e,0x534)],this['particlesTextures'][_0x373d5a(0x570,0x5d4)]=_0x380e21;function _0x2b12f4(_0x286b32,_0x1fb26e){return _0x164b25(_0x1fb26e-0x600,_0x286b32);}this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives']['calculateSpeed']['commandToExecute']['outputTexture']=this[_0x2b12f4(0x46c,0x462)]['particlesSpeed']);},'isDynamic':()=>this[_0x38346c(0x1fc,0x1f0)][_0x38346c(0x18c,0x204)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x164b25(-0x112,-0x188)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x317b01(_0x44df52,_0x32bf7d){return _0x38346c(_0x32bf7d-0x161,_0x44df52);}function _0x480890(_0x26e5a8,_0x37ddfb){return _0x38346c(_0x26e5a8-0x360,_0x37ddfb);}this[_0x480890(0x57b,0x5b6)][_0x317b01(0x323,0x2eb)][_0x480890(0x571,0x57f)]&&(this['primitives'][_0x317b01(0x35b,0x2eb)][_0x317b01(0x370,0x372)]['outputTexture']=this['particlesTextures'][_0x317b01(0x331,0x35c)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x164b25(-0x19e,-0x1a1)][_0x38346c(0x1fb,0x26f)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters'][_0x164b25(-0x10f,-0x11c)],'latRange':()=>this['viewerParameters'][_0x38346c(0x16c,0x175)],'dataLonRange':()=>new Cartesian2$1(this[_0x164b25(-0x176,-0xf5)][_0x164b25(-0x14a,-0xf3)][_0x164b25(-0xb9,-0x111)],this[_0x164b25(-0x176,-0x1e3)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds'][_0x164b25(-0x18f,-0x14f)],this['windData']['bounds']['north']),'randomCoefficient':function(){function _0x28c66c(_0x287fb5,_0x596089){return _0x164b25(_0x287fb5- -0xf1,_0x596089);}return Math[_0x28c66c(-0x28c,-0x2a6)]();},'dropRate':()=>this[_0x38346c(0x1fc,0x1dd)]['dropRate'],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this[_0x38346c(0x1fc,0x253)][_0x164b25(-0x188,-0x1f7)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x38346c(0x15b,0x138)]['postProcessingPosition'],'preExecute':()=>{function _0x534715(_0x1362bb,_0x53e5df){return _0x164b25(_0x1362bb-0x3e3,_0x53e5df);}function _0x7dfb59(_0x438ffa,_0x3fba86){return _0x38346c(_0x3fba86- -0x2ab,_0x438ffa);}this['primitives'][_0x7dfb59(-0x7,-0x7e)]['commandToExecute']&&(this['primitives']['postProcessingPosition']['commandToExecute'][_0x534715(0x331,0x365)]=this[_0x534715(0x245,0x264)][_0x534715(0x317,0x39b)]);},'isDynamic':()=>this['options']['dynamic']})};}['reCreateWindTextures'](){function _0x2dd00b(_0x2021b5,_0x108452){return _0x4086ac(_0x108452,_0x2021b5- -0x219);}this['windTextures']['U'][_0x2dd00b(-0xfa,-0xac)](),this['windTextures']['V'][_0x2dd00b(-0xfa,-0x115)]();function _0x175fb2(_0x1593c6,_0x91c357){return _0x2e747d(_0x1593c6,_0x91c357- -0x2f);}this['createWindTextures']();}[_0x2e747d(-0x3d,-0x2a)](_0x5563e2){this['windData']=_0x5563e2,this['reCreateWindTextures']();}['updateOptions'](_0x34aa0a){const _0x176d7a=_0x34aa0a['flipY']!==undefined&&_0x34aa0a['flipY']!==this['options'][_0x35f40d(-0x239,-0x2b3)];this['options']=deepMerge(_0x34aa0a,this['options']);function _0x35f40d(_0x1a404c,_0x20a4d4){return _0x2e747d(_0x20a4d4,_0x1a404c- -0x224);}_0x176d7a&&this['reCreateWindTextures']();}['processWindData'](_0x1f4b2b){const {array:_0x518282}=_0x1f4b2b;let {min:_0x475b57,max:_0x4948a5}=_0x1f4b2b;const _0x739615=new Float32Array(_0x518282['length']);_0x475b57===undefined&&(console[_0x24bcea(0x541,0x4cd)](_0x1cf945(0x241,0x290)),_0x475b57=Math['min'](..._0x518282));_0x4948a5===undefined&&(console['warn'](_0x24bcea(0x4ba,0x4e8)),_0x4948a5=Math[_0x24bcea(0x579,0x504)](..._0x518282));const _0x1f6bda=Math[_0x24bcea(0x50e,0x504)](Math[_0x1cf945(0x267,0x1f1)](_0x475b57),Math['abs'](_0x4948a5));for(let _0x8d3c3d=0x0;_0x8d3c3d<_0x518282[_0x24bcea(0x466,0x45b)];_0x8d3c3d++){const _0x2da82f=_0x518282[_0x8d3c3d]/_0x1f6bda;_0x739615[_0x8d3c3d]=_0x2da82f;}function _0x24bcea(_0x16bf12,_0x113f4c){return _0x2e747d(_0x16bf12,_0x113f4c-0x46a);}function _0x1cf945(_0x69ad23,_0x46706a){return _0x4086ac(_0x69ad23,_0x46706a-0x144);}return _0x739615;}['destroy'](){Object['values'](this[_0x35e9f2(0x231,0x1b8)])['forEach'](_0xdcc8f0=>_0xdcc8f0[_0x35e9f2(0x1de,0x1a2)]()),Object[_0x89e55(0x39,0x7)](this['particlesTextures'])['forEach'](_0x1158c0=>_0x1158c0['destroy']());function _0x35e9f2(_0xbce973,_0x4e9dca){return _0x4086ac(_0x4e9dca,_0xbce973-0xbf);}function _0x89e55(_0x50b3e5,_0x5c301f){return _0x4086ac(_0x5c301f,_0x50b3e5- -0x117);}Object['values'](this['primitives'])[_0x89e55(0x84,0x7d)](_0x2b2763=>_0x2b2763[_0x35e9f2(0x1de,0x1ae)]()),this['frameRateMonitor'][_0x35e9f2(0x1de,0x1ec)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x2e747d(-0x72,-0x38)];class WindParticlesRendering{constructor(_0x266abf,_0x3afe3c,_0xd61864,_0x537abc){this[_0x473e0e(-0x216,-0x246)]=_0x266abf,this['options']=_0x3afe3c,this[_0x159072(0x26d,0x23f)]=_0xd61864,this['computing']=_0x537abc;(typeof this[_0x159072(0x1a0,0x1cc)]['particlesTextureSize']!=='number'||this['options']['particlesTextureSize']<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x159072(0x1f4,0x1cc)]['particlesTextureSize']=0x100);function _0x473e0e(_0x3d4d52,_0x13f501){return _0x2e747d(_0x3d4d52,_0x13f501- -0x258);}function _0x159072(_0x39d30b,_0x2f2bb8){return _0x2e747d(_0x39d30b,_0x2f2bb8-0x16a);}this[_0x473e0e(-0x17e,-0x189)]=this[_0x473e0e(-0x24e,-0x206)](),this[_0x159072(0x18b,0x143)]=this['createRenderingTextures'](),this['framebuffers']=this['createRenderingFramebuffers'](),this[_0x159072(0x1d9,0x1eb)]=this['createPrimitives']();}['createRenderingTextures'](){const _0x3253ce={};_0x3253ce['context']=this['context'],_0x3253ce['width']=this[_0x31cc30(-0x1ad,-0x1ff)][_0x36a436(-0x1d9,-0x1d2)];function _0x31cc30(_0x4f13e5,_0x1e9a89){return _0x4086ac(_0x1e9a89,_0x4f13e5- -0x2a3);}_0x3253ce[_0x36a436(-0x1a7,-0x16c)]=this['context']['drawingBufferHeight'],_0x3253ce[_0x31cc30(-0xee,-0xfb)]=PixelFormat['RGBA'],_0x3253ce[_0x36a436(-0x116,-0x180)]=PixelDatatype['UNSIGNED_BYTE'];function _0x36a436(_0x1c503c,_0x338c37){return _0x4086ac(_0x1c503c,_0x338c37- -0x305);}const _0x4170f6=_0x3253ce,_0x242381={};_0x242381[_0x31cc30(-0x1ad,-0x1a3)]=this[_0x31cc30(-0x1ad,-0x1bf)],_0x242381['width']=this['context'][_0x31cc30(-0x170,-0x197)],_0x242381['height']=this['context']['drawingBufferHeight'],_0x242381[_0x36a436(-0x178,-0x150)]=PixelFormat['DEPTH_COMPONENT'],_0x242381[_0x31cc30(-0x11e,-0xdd)]=PixelDatatype['UNSIGNED_INT'];const _0xfa0b2e=_0x242381;return{'segmentsColor':new Texture(_0x4170f6),'segmentsDepth':new Texture(_0xfa0b2e)};}[_0x2e747d(0x31,0xa7)](){const _0x429563={};_0x429563[_0x5bc707(0x1d9,0x1bf)]=this['context'],_0x429563['colorTextures']=[this['textures']['segmentsColor']],_0x429563[_0x15125f(0x4a4,0x487)]=this[_0x15125f(0x453,0x428)]['segmentsDepth'];function _0x15125f(_0x1f0805,_0x4d9d8b){return _0x2e747d(_0x1f0805,_0x4d9d8b-0x44f);}function _0x5bc707(_0x10076b,_0x4152f4){return _0x4086ac(_0x4152f4,_0x10076b-0xe3);}return{'segments':new Framebuffer(_0x429563)};}[_0x4086ac(0x14c,0xc3)](){function _0x15e1ca(_0x1bdab4,_0xd0e152){return _0x2e747d(_0x1bdab4,_0xd0e152-0x37e);}Object['values'](this[_0x15e1ca(0x3ba,0x40d)])['forEach'](_0x25842c=>{_0x25842c['destroy']();});}[_0x2e747d(-0x19,0x52)](){const _0x4e4aa1=new Float32Array(this['options']['colors']['flatMap'](_0x2b00ba=>{function _0x3f9bad(_0x6c8f2b,_0x55e0b9){return _0x1e9b(_0x55e0b9- -0x3dd,_0x6c8f2b);}const _0x5ce435=Color$1['fromCssColorString'](_0x2b00ba);return[_0x5ce435['red'],_0x5ce435['green'],_0x5ce435['blue'],_0x5ce435[_0x3f9bad(-0x25d,-0x27e)]];})),_0x3a9f0e={};_0x3a9f0e['minificationFilter']=TextureMinificationFilter[_0x492d5(-0x57,-0x1)];function _0x324d96(_0x140aa0,_0x3efaaa){return _0x2e747d(_0x3efaaa,_0x140aa0-0x546);}_0x3a9f0e[_0x324d96(0x584,0x55f)]=TextureMagnificationFilter[_0x324d96(0x60e,0x602)],_0x3a9f0e['wrapS']=TextureWrap['CLAMP_TO_EDGE'];function _0x492d5(_0xc56e07,_0x201620){return _0x4086ac(_0x201620,_0xc56e07- -0x203);}return _0x3a9f0e[_0x324d96(0x543,0x4fc)]=TextureWrap[_0x492d5(-0x62,-0x5f)],new Texture({'context':this[_0x324d96(0x558,0x528)],'width':this['options']['colors'][_0x324d96(0x537,0x59a)],'height':0x1,'pixelFormat':PixelFormat[_0x492d5(-0x70,0x19)],'pixelDatatype':PixelDatatype[_0x492d5(-0x131,-0xbb)],'sampler':new Sampler(_0x3a9f0e),'source':{'width':this[_0x324d96(0x5a8,0x630)][_0x324d96(0x553,0x506)]['length'],'height':0x1,'arrayBufferView':_0x4e4aa1}});}[_0x4086ac(0xd7,0xfd)](){const _0x2c7a7a=0x4,_0x6aa959=this['options']['particlesTextureSize'];let _0x5e9afc=[];for(let _0x364ec4=0x0;_0x364ec4<_0x6aa959;_0x364ec4++){for(let _0x45a845=0x0;_0x45a845<_0x6aa959;_0x45a845++){for(let _0x3eeb70=0x0;_0x3eeb70<_0x2c7a7a;_0x3eeb70++){_0x5e9afc['push'](_0x364ec4/_0x6aa959),_0x5e9afc[_0x4c9b1b(0x52c,0x513)](_0x45a845/_0x6aa959);}}}_0x5e9afc=new Float32Array(_0x5e9afc);function _0x137d8c(_0xc4df74,_0x1f8c75){return _0x4086ac(_0x1f8c75,_0xc4df74-0x2e0);}const _0x23090a=this['options']['particlesTextureSize']**0x2;let _0x5cb003=[];for(let _0x47ba8e=0x0;_0x47ba8e<_0x23090a;_0x47ba8e++){_0x5cb003[_0x137d8c(0x447,0x4ce)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x5cb003=new Float32Array(_0x5cb003);let _0x550539=[];for(let _0x210657=0x0,_0x3fce36=0x0;_0x210657<_0x23090a;_0x210657++){_0x550539['push'](_0x3fce36+0x0,_0x3fce36+0x1,_0x3fce36+0x2,_0x3fce36+0x2,_0x3fce36+0x1,_0x3fce36+0x3),_0x3fce36+=_0x2c7a7a;}_0x550539=new Uint32Array(_0x550539);const _0x28b07d={};_0x28b07d[_0x137d8c(0x3e8,0x43b)]=ComponentDatatype['FLOAT'],_0x28b07d['componentsPerAttribute']=0x2,_0x28b07d['values']=_0x5e9afc;const _0x5db851={};_0x5db851[_0x137d8c(0x3e8,0x3fd)]=ComponentDatatype['FLOAT'],_0x5db851['componentsPerAttribute']=0x3,_0x5db851['values']=_0x5cb003;function _0x4c9b1b(_0x834d59,_0x46c62d){return _0x2e747d(_0x834d59,_0x46c62d-0x490);}const _0x4aeccf=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x28b07d),'normal':new GeometryAttribute(_0x5db851)}),'indices':_0x550539});return _0x4aeccf;}[_0x4086ac(0x92,0xb5)](_0x2bdaaf){function _0xb7748f(_0x404da7,_0x26bda1){return _0x4086ac(_0x26bda1,_0x404da7- -0x187);}const _0x502a48={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x2bdaaf};return Appearance[_0xb7748f(-0x52,0x39)](!![],![],_0x502a48);}[_0x4086ac(0x134,0x100)](){const _0x218952={};_0x218952['st']=0x0,_0x218952['normal']=0x1;const _0x3471df={};_0x3471df['enabled']=!![];function _0x4b7927(_0xb256ac,_0x5cd75a){return _0x2e747d(_0xb256ac,_0x5cd75a-0x529);}const _0x4b289f={};_0x4b289f[_0x4b7927(0x507,0x584)]=!![],_0x4b289f[_0x4b7927(0x639,0x5ae)]=WebGLRenderingContext['FUNC_ADD'],_0x4b289f[_0x1eb56f(-0x237,-0x214)]=WebGLRenderingContext[_0x1eb56f(-0x1e2,-0x1e8)],_0x4b289f['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x596db7={};_0x596db7['viewport']=undefined,_0x596db7[_0x1eb56f(-0x17e,-0x171)]=_0x3471df,_0x596db7['depthMask']=!![],_0x596db7[_0x4b7927(0x574,0x53f)]=_0x4b289f;const _0xd1480f=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x218952,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x4b7927(0x546,0x4ea)][_0x4b7927(0x481,0x4eb)],'currentParticlesPosition':()=>this[_0x1eb56f(-0x134,-0x149)]['particlesTextures'][_0x4b7927(0x59c,0x532)],'postProcessingPosition':()=>this['computing'][_0x4b7927(0x4fd,0x4ea)]['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this[_0x4b7927(0x567,0x5ee)]['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x368ba4(_0x280949,_0x115ba4){return _0x1eb56f(_0x280949,_0x115ba4-0x464);}var _0x2ba3ac,_0x41cac0;const _0x2998fa=new Cartesian2(((_0x2ba3ac=this['options'][_0x556412(0x2da,0x26f)])===null||_0x2ba3ac===void 0x0?void 0x0:_0x2ba3ac['min'])??this['computing']['windData'][_0x556412(0x345,0x2c7)][_0x556412(0x28a,0x2cd)],((_0x41cac0=this['options']['domain'])===null||_0x41cac0===void 0x0?void 0x0:_0x41cac0['max'])??this[_0x556412(0x391,0x335)][_0x368ba4(0x1ed,0x23f)]['speed'][_0x556412(0x2fb,0x30a)]);function _0x556412(_0x5865e4,_0x3e5485){return _0x1eb56f(_0x5865e4,_0x3e5485-0x47e);}return _0x2998fa;},'displayRange':()=>{function _0xe402a3(_0x1ec64e,_0x46897b){return _0x4b7927(_0x46897b,_0x1ec64e- -0x65e);}var _0x3319d5,_0x4d4ccc;const _0x177705=new Cartesian2(((_0x3319d5=this['options']['displayRange'])===null||_0x3319d5===void 0x0?void 0x0:_0x3319d5['min'])??this[_0xe402a3(-0x70,-0x97)][_0xe402a3(-0x14c,-0xf1)][_0x408de8(0x431,0x43a)]['min'],((_0x4d4ccc=this[_0xe402a3(-0xd3,-0x15c)][_0xe402a3(-0x84,-0x2)])===null||_0x4d4ccc===void 0x0?void 0x0:_0x4d4ccc['max'])??this[_0xe402a3(-0x70,-0x12)][_0x408de8(0x3c3,0x397)]['speed']['max']);function _0x408de8(_0x57bf02,_0x556dbe){return _0x4b7927(_0x556dbe,_0x57bf02- -0x14f);}return _0x177705;},'particleHeight':()=>this[_0x4b7927(0x5d1,0x58b)][_0x1eb56f(-0x1f8,-0x236)]||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context'][_0x1eb56f(-0x265,-0x247)],'pixelSize':()=>this['viewerParameters'][_0x1eb56f(-0x206,-0x1c0)],'lineWidth':()=>{function _0x3870f1(_0x3d6068,_0x36fb19){return _0x1eb56f(_0x36fb19,_0x3d6068-0x602);}const _0x30df66={};_0x30df66['min']=0x1;function _0x202988(_0x2543d8,_0x3ce0f4){return _0x4b7927(_0x2543d8,_0x3ce0f4- -0x630);}_0x30df66['max']=0x2;const _0x27a83f=this['options'][_0x202988(-0x111,-0xe2)]||_0x30df66;return new Cartesian2(_0x27a83f['min'],_0x27a83f[_0x202988(-0x31,-0x6d)]);},'lineLength':()=>{const _0x46982d={};function _0xc5af70(_0x47c938,_0x3d8e93){return _0x1eb56f(_0x47c938,_0x3d8e93-0x4f9);}_0x46982d['min']=0x14,_0x46982d['max']=0x64;const _0x1946e5=this['options']['lineLength']||_0x46982d;return new Cartesian2(_0x1946e5[_0xc5af70(0x30e,0x348)],_0x1946e5['max']);},'is3D':()=>this[_0x1eb56f(-0x1bd,-0x139)]['sceneMode']===SceneMode[_0x4b7927(0x63f,0x5f5)],'segmentsDepthTexture':()=>this[_0x1eb56f(-0x291,-0x235)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x4b7927(0x58b,0x553)](),'rawRenderState':this['createRawRenderState'](_0x596db7)});function _0x1eb56f(_0xb18309,_0x48d0d0){return _0x2e747d(_0xb18309,_0x48d0d0- -0x20e);}const _0x4f51a3={};return _0x4f51a3[_0x1eb56f(-0x17e,-0x1cf)]=_0xd1480f,_0x4f51a3;}['onParticlesTextureSizeChange'](){const _0x5f2b25=this['createSegmentsGeometry']();this['primitives']['segments']['geometry']=_0x5f2b25;function _0x40a8fe(_0x57b170,_0x293180){return _0x2e747d(_0x57b170,_0x293180-0x324);}const _0xbb375c={};_0xbb375c[_0x40a8fe(0x2db,0x336)]=this[_0x40a8fe(0x2b3,0x336)],_0xbb375c['geometry']=_0x5f2b25;function _0x542db4(_0x51ae5b,_0x34c526){return _0x2e747d(_0x34c526,_0x51ae5b- -0x1d9);}_0xbb375c['attributeLocations']=this['primitives'][_0x40a8fe(0x35a,0x363)]['attributeLocations'],_0xbb375c[_0x542db4(-0x105,-0x83)]=BufferUsage[_0x542db4(-0x10c,-0xe7)];const _0x351512=VertexArray['fromGeometry'](_0xbb375c);this['primitives'][_0x40a8fe(0x2ed,0x363)][_0x542db4(-0x162,-0x14a)]&&(this[_0x40a8fe(0x3fd,0x3a5)][_0x542db4(-0x19a,-0x13a)]['commandToExecute']['vertexArray']=_0x351512);}['onColorTableChange'](){this[_0x427cb3(0x468,0x46b)]['destroy']();function _0x427cb3(_0x361629,_0x1c4488){return _0x4086ac(_0x1c4488,_0x361629-0x2b5);}function _0x143929(_0x1b7d71,_0x55e000){return _0x4086ac(_0x55e000,_0x1b7d71-0x81);}this['colorTable']=this[_0x143929(0x1b7,0x183)]();}[_0x2e747d(0x69,0x87)](_0x4e0f5a){function _0x59f44b(_0x132175,_0x41e7fb){return _0x2e747d(_0x132175,_0x41e7fb- -0x1d);}const _0x2d0506=_0x4e0f5a[_0x485f53(-0x12a,-0xe9)]&&JSON['stringify'](_0x4e0f5a['colors'])!==JSON['stringify'](this[_0x59f44b(-0x5,0x45)][_0x485f53(-0xc8,-0xe9)]);this['options']=deepMerge(_0x4e0f5a,this['options']);function _0x485f53(_0xbb5752,_0x9a4782){return _0x4086ac(_0xbb5752,_0x9a4782- -0x1da);}_0x2d0506&&this['onColorTableChange']();}[_0x4086ac(0x19f,0x11f)](){Object['values'](this['framebuffers'])[_0x590a46(0x59,-0x12)](_0x4ad89f=>{_0x4ad89f['destroy']();}),Object[_0x590a46(0xe,-0x23)](this[_0x590a46(0x23,-0x52)])[_0x45c4d6(0xa7,0x26)](_0x573c2e=>{function _0x138914(_0x41b487,_0x5276bb){return _0x590a46(_0x41b487- -0x214,_0x5276bb);}_0x573c2e[_0x138914(-0x237,-0x21d)]();});function _0x590a46(_0x189a16,_0x207efa){return _0x2e747d(_0x207efa,_0x189a16- -0x5e);}function _0x45c4d6(_0x24db20,_0x59df7d){return _0x4086ac(_0x59df7d,_0x24db20- -0xf4);}this['colorTable'][_0x590a46(-0x23,0x4b)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x4086ac(0x130,0xac)];class WindParticleSystem{constructor(_0x26b79f,_0x1725b9,_0x1f56ee,_0x346ac9,_0x1d4b8c){this['context']=_0x26b79f,this['options']=_0x1f56ee,this['viewerParameters']=_0x346ac9,this['computing']=new WindParticlesComputing(_0x26b79f,_0x1725b9,_0x1f56ee,_0x346ac9,_0x1d4b8c),this['rendering']=new WindParticlesRendering(_0x26b79f,_0x1f56ee,_0x346ac9,this['computing']),this['clearFramebuffers']();}[_0x4086ac(0x144,0x12e)](){function _0x4908f5(_0x58476a,_0x8c56ad){return _0x4086ac(_0x8c56ad,_0x58476a-0x183);}const _0x41b372=[this[_0x1c16ab(0x1f4,0x275)]['primitives']['calculateSpeed'],this['computing']['primitives']['updatePosition'],this[_0x4908f5(0x32c,0x3b7)]['primitives']['postProcessingPosition'],this[_0x4908f5(0x31d,0x33a)]['primitives']['segments']];function _0x1c16ab(_0x256ef1,_0x3903cd){return _0x2e747d(_0x256ef1,_0x3903cd-0x1b0);}return _0x41b372;}[_0x2e747d(0x35,0x96)](){function _0x159d3c(_0xe925a6,_0x5d869a){return _0x2e747d(_0x5d869a,_0xe925a6-0x3e3);}function _0x3dd3c0(_0x28d880,_0x2038f2){return _0x2e747d(_0x2038f2,_0x28d880- -0x21);}const _0x5aebb3=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x159d3c(0x411,0x466)]});Object['keys'](this[_0x159d3c(0x499,0x4ae)][_0x3dd3c0(0x6e,0x28)])['forEach'](_0x582895=>{function _0x5901fa(_0x396f48,_0x32024a){return _0x3dd3c0(_0x396f48-0x0,_0x32024a);}_0x5aebb3['framebuffer']=this['rendering']['framebuffers'][_0x582895],_0x5aebb3['execute'](this[_0x5901fa(-0xf,0x52)]);});}['changeOptions'](_0x413f1a){let _0x4567b2=![];_0x413f1a['particlesTextureSize']&&this['options'][_0x58ce7f(-0x5b,-0x5f)]!==_0x413f1a['particlesTextureSize']&&(_0x4567b2=!![]);function _0x58ce7f(_0x44e587,_0x186d1a){return _0x2e747d(_0x44e587,_0x186d1a- -0xdf);}const _0x4f4244=deepMerge(_0x413f1a,this['options']);if(_0x4f4244['particlesTextureSize']<0x1)throw new Error(_0x1f15f9(0x422,0x403));function _0x1f15f9(_0x542146,_0xb2bf36){return _0x2e747d(_0xb2bf36,_0x542146-0x3a0);}this[_0x58ce7f(-0xfa,-0x7d)]=_0x4f4244,this['rendering']['updateOptions'](_0x413f1a),this['computing'][_0x58ce7f(-0xb8,-0x58)](_0x413f1a),_0x4567b2&&(this[_0x58ce7f(-0x91,-0x1a)]['destroyParticlesTextures'](),this['computing']['createParticlesTextures'](),this[_0x58ce7f(-0x1c,-0x29)]['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x478693){function _0x5b7741(_0x3d49eb,_0x2b394c){return _0x2e747d(_0x3d49eb,_0x2b394c- -0x138);}this[_0x5b7741(-0x97,-0x63)]=_0x478693,this['computing'][_0x4e46a3(0x46c,0x49b)]=_0x478693;function _0x4e46a3(_0x5ac762,_0x4f0a46){return _0x4086ac(_0x5ac762,_0x4f0a46-0x2e2);}this[_0x5b7741(-0x41,-0x82)]['viewerParameters']=_0x478693;}['destroy'](){this[_0x3f09f8(0x127,0x17a)][_0x11933a(0x3da,0x439)]();function _0x3f09f8(_0x307f99,_0x246e6f){return _0x4086ac(_0x307f99,_0x246e6f- -0x2f);}function _0x11933a(_0x1ea74a,_0x53f674){return _0x2e747d(_0x53f674,_0x1ea74a-0x39f);}this[_0x11933a(0x455,0x3e7)]['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x4086ac(0x1d9,0x1a7)],_0x50ec5a={};_0x50ec5a[_0x2e747d(0xae,0x5d)]=0x1,_0x50ec5a['max']=0x2;const _0x2fe553={};_0x2fe553['min']=0x14,_0x2fe553['max']=0x64;const _0x159caa={};function _0x2570(){const _0x1f37ce=['updateViewerParameters','updateWindData','useViewerBounds','fixedHeight','textures','_pointerEvents','_canrefresh','_calcUV','particlesNumber','_bilinearInterpolation','destoryRenderingFramebuffers','isPointVisible','morphComplete','getPostProcessingPositionShader','fragmentShaderSource','windField','cancelAnimationFrame','rows','zIndex','frameRateAdjustment','windData','requestRender','flipY','globe','style','FLOAT','commandType','updatePosition','length','dynamic','mouse_move','width','clientHeight','createCommand','#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','_onMouseDownEvent','alpha','blendFuncSource','106oPtNES','umin','wrapT','_addedHook','domain','fromCache','IDENTITY','redraw','_mountedHook','talt','scene','_animateFrame','_tomap','ymax','currentParticlesPosition','stroke','EventType','particles','colors','absolute','sqrt','tlat','bindEvent','context','postMessage','minificationFilter','bounds','blending','ColorRamp','modelMatrix','createSegmentsGeometry','data','Cartesian2','createPrimitives','924959rAMGXo','udata','NEAREST','geometry','lineTo','4AEyfDh','sceneMode','componentDatatype','lineWidth','SRC_ALPHA','remove','createParticlesTextures','canvas','getSegmentDrawFragmentShader','toRadians','visibility','1947843xZWLkT','OPAQUE','lastFramesPerSecond','_removedHook','positionWC','isDynamic','xmin','resize','rawRenderState','bind','pointer-events','depthTexture','vertexArray','_onMapWhellEvent','destroy','vdata','fromGeometry','magnificationFilter','segments','MIN_VALUE','_updateIng','speedRate','2443480IpwWwy','cartesianToCartographic','canvasWidth','commandList','steps','_map','preExecute','getPrimitives','primitiveType','clear','particlesSpeed','pixelSize','drawingBufferWidth','lonRange','getDefaultRenderState','createColorTableTexture','persists','CanvasWindField','willReadFrequently','_colorRamp','speed','update','prototype','canvasContext','enabled','initFrameRate','min','frameRateMonitor','removeChild','10890517vZokce','nextParticlesPosition','options','warn','_maxAge','#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','setDate','defineProperty','min\x20is\x20undefined,\x20calculate\x20min','ellipsoid','Unknown\x20command\x20type','get','values','register','ymin','Cartesian3','dropRate','now','12tBaLqX','percentageChanged','tlng','isInExtent','_randomParticle','commandToExecute','worker','original','Math','_drawLines','cols','_setOptionsHook','max\x20is\x20undefined,\x20calculate\x20max','2433945GWDPZq','particlesTextureSize','primitives','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','push','init','blendEquation','_createCanvas','updateOptions','off','particleSystem','show','_showHook','vertexShaderSource','globalCompositeOperation','windTextures','framebuffers','isDestroy','uniformMap','mode','postProcessingPosition','age','DomUtil','clearFramebuffers','hidden','createComputingPrimitives','#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','max','_onMouseMoveEvent','WindLayer','depthTest','lighter','256695gulAZc','setOptions','pixelDatatype','pointerEvents','frameRate','clearCommand','layer','west','createRenderingFramebuffers','camera','getParticles','type','pow','create','outputTexture','attributeLocations','RGBA','getSegmentDrawVertexShader','displayRange','lat','setData','createWindTextures','height','rendering','forEach','addEventListener','fromDegrees','default','framebuffer','atan2','CLAMP_TO_EDGE','add','north','samplingWindow','mouseHidden','fill','BaseLayer','getUVByXY','computing','array','0px','LINEAR','10yQeHwH','canvasHeight','cos','SCENE3D','STATIC_DRAW','destination-in','colorTable','EllipsoidalOccluder','pixelFormat','processWindData','mouseUp','bufferUsage','viewerParameters','lng','particlesTextures','previousParticlesPosition','xmax','random','beginPath','grid','drawingBufferHeight','Cesium','abs','__esModule','slice','toGridXY','getUVByPoint','mouseMove','maxAge','south','createRawRenderState','latRange','12173ngisCw','east'];_0x2570=function(){return _0x1f37ce;};return _0x2570();}_0x159caa[_0x2e747d(0xe6,0x80)]=0x64,_0x159caa[_0x4086ac(0xcd,0xbc)]=0x0,_0x159caa['lineWidth']=_0x50ec5a,_0x159caa['lineLength']=_0x2fe553,_0x159caa['speedFactor']=0x1,_0x159caa[_0x2e747d(0x20,0x70)]=0.003,_0x159caa['dropRateBump']=0.001,_0x159caa['colors']=['rgb(206,255,255)'],_0x159caa['flipY']=![],_0x159caa[_0x4086ac(0xbb,0xd6)]=!![];const DEF_OPTIONS=_0x159caa;class WindLayer extends BaseLayer$1{constructor(_0x9a5f86={}){_0x9a5f86={...DEF_OPTIONS,..._0x9a5f86},super(_0x9a5f86),this['_setOptionsHook'](_0x9a5f86,_0x9a5f86);}get['layer'](){function _0x3123d9(_0x1499df,_0x2f7e55){return _0x2e747d(_0x2f7e55,_0x1499df- -0x146);}return this[_0x3123d9(-0xc5,-0x92)];}get[_0x4086ac(0xd1,0xfe)](){function _0x49fecf(_0x248dfd,_0xc1b96){return _0x4086ac(_0x248dfd,_0xc1b96-0x3a6);}function _0x3fbe6b(_0x77781a,_0x30dc68){return _0x4086ac(_0x30dc68,_0x77781a-0x1cd);}return this[_0x3fbe6b(0x313,0x364)][_0x3fbe6b(0x2cb,0x325)];}set['data'](_0x545fc9){function _0x12f9ee(_0x234c84,_0x1f96fe){return _0x2e747d(_0x1f96fe,_0x234c84-0x349);}this[_0x12f9ee(0x3ab,0x3c6)][_0x4ad879(0x454,0x408)]=_0x545fc9;function _0x4ad879(_0x472a32,_0x23e2ac){return _0x2e747d(_0x472a32,_0x23e2ac-0x3ee);}this[_0x12f9ee(0x3fc,0x3b2)](_0x545fc9);}get['colors'](){function _0x1c0047(_0x25d539,_0x550ceb){return _0x2e747d(_0x550ceb,_0x25d539-0x3a4);}return this[_0x1c0047(0x406,0x448)]['colors'];}set['colors'](_0x5c944f){this['options'][_0x5db4af(-0x59,-0x91)]=_0x5c944f;function _0x5db4af(_0x43e9e0,_0x13f8ee){return _0x2e747d(_0x43e9e0,_0x13f8ee- -0x9e);}function _0x11a1f5(_0x53a067,_0x4e1d71){return _0x2e747d(_0x4e1d71,_0x53a067-0x186);}const _0x3d1cb2={};_0x3d1cb2[_0x11a1f5(0x193,0x218)]=_0x5c944f,this['_setOptionsHook'](this['options'],_0x3d1cb2);}[_0x4086ac(0x105,0x16f)](_0x24031a){function _0x34526a(_0x4c6675,_0x2f4951){return _0x4086ac(_0x4c6675,_0x2f4951- -0x2ab);}_0x24031a?this[_0x34526a(-0x1fc,-0x1c9)]():this['_removedHook']();}[_0x2e747d(0x10,0x3)](){}['_addedHook'](){this['scene']=this['_map']['scene'],this['camera']=this['_map'][_0x3997a2(-0x16b,-0x1bd)];function _0x3c0aa3(_0x384a03,_0xc1b7dc){return _0x2e747d(_0xc1b7dc,_0x384a03-0x499);}this['options'][_0x3c0aa3(0x4b3,0x451)]&&this['setData'](this['options'][_0x3c0aa3(0x4b3,0x459)]);if(!this['windData']||!this[_0x3c0aa3(0x523,0x4c2)])return;this[_0x3c0aa3(0x56e,0x543)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this[_0x3c0aa3(0x46e,0x4e7)](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this['windData'],this['options'],this['viewerParameters'],this['scene']),this[_0x3c0aa3(0x51a,0x58a)]=this['particleSystem']['getPrimitives'](),this['primitives'][_0x3997a2(-0x15c,-0xde)](_0x38d538=>{function _0x3dc4bd(_0x8d5e3e,_0x4c3efb){return _0x3c0aa3(_0x8d5e3e- -0x23f,_0x4c3efb);}function _0x84819f(_0x57a353,_0x40250d){return _0x3c0aa3(_0x57a353- -0x36,_0x40250d);}this['scene'][_0x3dc4bd(0x2db,0x2e7)][_0x3dc4bd(0x318,0x2b3)](_0x38d538);});function _0x3997a2(_0x1a63af,_0x442e39){return _0x4086ac(_0x442e39,_0x1a63af- -0x2f7);}this['camera'][_0x3997a2(-0x1a0,-0x163)]=0.01,this['camera']['changed']['addEventListener'](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete'][_0x3997a2(-0x15b,-0x141)](this[_0x3c0aa3(0x46e,0x44a)]['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters'][_0x3997a2(-0x1dd,-0x21b)](this));}[_0x4086ac(0x19b,0x114)](){this[_0x162722(-0x2a,0x14)]['changed']['removeEventListener'](this[_0x162722(-0xfd,-0xc5)][_0x202d07(-0x176,-0x165)](this)),this[_0x162722(-0xcd,-0x9b)][_0x162722(-0xf1,-0xd8)]['removeEventListener'](this['updateViewerParameters']['bind'](this));function _0x202d07(_0xd4d504,_0x30f297){return _0x2e747d(_0xd4d504,_0x30f297- -0x19b);}function _0x162722(_0x1d5a90,_0x20bfdc){return _0x4086ac(_0x20bfdc,_0x1d5a90- -0x1b6);}window['removeEventListener']('resize',this['updateViewerParameters']['bind'](this)),this['primitives']&&(this[_0x162722(-0x51,-0x53)][_0x202d07(-0xd9,-0xe4)](_0x386a3=>{function _0x1da8bf(_0x2df145,_0x14e044){return _0x162722(_0x14e044- -0x112,_0x2df145);}function _0x4a2732(_0x57ce3f,_0x34c8b8){return _0x162722(_0x34c8b8-0x3b,_0x57ce3f);}this['scene'][_0x1da8bf(-0x196,-0x163)][_0x1da8bf(-0x134,-0x1bd)](_0x386a3);}),delete this['primitives']),this[_0x162722(-0x49,-0xf)]&&(this[_0x162722(-0x49,0x20)][_0x162722(-0x97,-0xd3)](),delete this['particleSystem']);}['setData'](_0x43fa27,_0x42bbe2){function _0x320c4f(_0x1e6a54,_0x20c948){return _0x4086ac(_0x1e6a54,_0x20c948-0x173);}this['windData']=this[_0x320c4f(0x2b1,0x329)](_0x43fa27);if(_0x42bbe2){this[_0x31f1e1(-0x1d,0x14)](),this['_addedHook']();return;}function _0x31f1e1(_0x394020,_0x2a15ec){return _0x4086ac(_0x394020,_0x2a15ec- -0x100);}this['particleSystem']?(this[_0x31f1e1(0x3a,0x6d)][_0x320c4f(0x2d5,0x31c)][_0x31f1e1(-0xbf,-0x46)](this['windData']),this[_0x320c4f(0x1d2,0x25c)]['requestRender']()):this['_addedHook']();}[_0x2e747d(0x59,0x7d)](_0x52c3a4,_0x1469c3){function _0x5ab6d4(_0x2ed6ab,_0x575164){return _0x4086ac(_0x575164,_0x2ed6ab- -0x2c1);}function _0x1cdfe6(_0x307e49,_0x801613){return _0x2e747d(_0x801613,_0x307e49- -0x7a);}this[_0x5ab6d4(-0x154,-0x11f)]&&(this[_0x5ab6d4(-0x154,-0x176)]['changeOptions'](_0x1469c3),this['scene'][_0x1cdfe6(-0x90,-0x1b)]());}['processWindData'](_0x46432f){var _0x1460b9,_0x10f71;function _0xcdb141(_0x9fd328,_0xa0e956){return _0x2e747d(_0xa0e956,_0x9fd328-0x519);}const _0x19e474={..._0x46432f},_0x1ffa1f=_0x19e474;!_0x1ffa1f[_0x516de2(0x54a,0x4dd)]&&_0x1ffa1f['rows']&&(_0x1ffa1f['height']=_0x1ffa1f[_0xcdb141(0x4ff,0x4d5)]);!_0x1ffa1f[_0xcdb141(0x50d,0x4fb)]&&_0x1ffa1f[_0x516de2(0x511,0x4f5)]&&(_0x1ffa1f['width']=_0x1ffa1f['cols']);!_0x1ffa1f[_0x516de2(0x4aa,0x48d)]&&(_0x1ffa1f[_0x516de2(0x4aa,0x528)]={'west':_0x1ffa1f['xmin'],'south':_0x1ffa1f['ymin'],'east':_0x1ffa1f['xmax'],'north':_0x1ffa1f[_0xcdb141(0x521,0x49d)]});if(!_0x1ffa1f['u']){const _0x1811ae={};_0x1811ae['array']=_0x46432f['udata'],_0x1811ae['min']=_0x46432f[_0x516de2(0x491,0x445)],_0x1811ae['max']=_0x46432f['umax'],_0x1ffa1f['u']=_0x1811ae;}function _0x516de2(_0x5d1ef7,_0x1c317b){return _0x4086ac(_0x1c317b,_0x5d1ef7-0x3b1);}if(!_0x1ffa1f['v']){const _0x49bbbf={};_0x49bbbf['array']=_0x46432f[_0x516de2(0x4d1,0x492)],_0x49bbbf['min']=_0x46432f['vmin'],_0x49bbbf[_0x516de2(0x52f,0x5ad)]=_0x46432f['vmax'],_0x1ffa1f['v']=_0x49bbbf;}if(((_0x1460b9=_0x1ffa1f[_0xcdb141(0x570,0x5f7)])===null||_0x1460b9===void 0x0?void 0x0:_0x1460b9[_0xcdb141(0x576,0x5f4)])===undefined||((_0x10f71=_0x1ffa1f[_0x516de2(0x4ec,0x574)])===null||_0x10f71===void 0x0?void 0x0:_0x10f71[_0x516de2(0x52f,0x4fb)])===undefined||_0x1ffa1f[_0xcdb141(0x570,0x4e7)]['array']===undefined){const _0x27cbfa={'array':new Float32Array(_0x1ffa1f['u'][_0x516de2(0x55b,0x588)]['length']),'min':Number['MAX_VALUE'],'max':Number[_0x516de2(0x4d5,0x46c)]};for(let _0x23e88a=0x0;_0x23e88a<_0x1ffa1f['u'][_0x516de2(0x55b,0x5b7)][_0x516de2(0x486,0x4f3)];_0x23e88a++){_0x27cbfa['array'][_0x23e88a]=Math[_0x516de2(0x4a4,0x4af)](_0x1ffa1f['u']['array'][_0x23e88a]*_0x1ffa1f['u'][_0xcdb141(0x5df,0x5fe)][_0x23e88a]+_0x1ffa1f['v'][_0xcdb141(0x5df,0x5c6)][_0x23e88a]*_0x1ffa1f['v']['array'][_0x23e88a]),_0x27cbfa[_0xcdb141(0x5df,0x57c)][_0x23e88a]!==0x0&&(_0x27cbfa['min']=Math['min'](_0x27cbfa[_0xcdb141(0x576,0x581)],_0x27cbfa[_0x516de2(0x55b,0x5ae)][_0x23e88a]),_0x27cbfa['max']=Math['max'](_0x27cbfa['max'],_0x27cbfa['array'][_0x23e88a]));}_0x1ffa1f[_0xcdb141(0x570,0x50c)]=_0x27cbfa;}return _0x1ffa1f;}['updateViewerParameters'](){var _0x58c6ba;function _0x395814(_0x52c9d9,_0xe24e4f){return _0x4086ac(_0xe24e4f,_0x52c9d9- -0x206);}function _0x11baf5(_0x512853,_0x3428fc){return _0x4086ac(_0x512853,_0x3428fc- -0x19f);}const _0x61a8f8=this['scene'];if(!_0x61a8f8)return;const _0x241eb3=_0x61a8f8['canvas'],_0x38fdd2={};_0x38fdd2['x']=0x0,_0x38fdd2['y']=0x0;const _0x1c3299={};_0x1c3299['x']=0x0,_0x1c3299['y']=_0x241eb3['clientHeight'];const _0x17815f={};_0x17815f['x']=_0x241eb3['clientWidth'],_0x17815f['y']=0x0;const _0xb7a59a={};_0xb7a59a['x']=_0x241eb3['clientWidth'],_0xb7a59a['y']=_0x241eb3['clientHeight'];const _0x49e54b=[_0x38fdd2,_0x1c3299,_0x17815f,_0xb7a59a];let _0x362a42=0xb4,_0x3bc161=-0xb4,_0x2e8008=0x5a,_0x4c7262=-0x5a,_0x11d178=![];for(const _0x1b2517 of _0x49e54b){const _0x3804bd=_0x61a8f8['camera']['pickEllipsoid'](new Cesium$1[(_0x395814(-0x107,-0xb9))](_0x1b2517['x'],_0x1b2517['y']),_0x61a8f8[_0x395814(-0x136,-0x12f)][_0x395814(-0xb9,-0xb9)]);if(!_0x3804bd){_0x11d178=!![];break;}const _0x32ba52=_0x61a8f8['globe'][_0x395814(-0xb9,-0xf4)][_0x395814(-0xde,-0x118)](_0x3804bd),_0x291f1b=Cesium$1[_0x11baf5(-0x73,-0x41)]['toDegrees'](_0x32ba52['longitude']),_0x1098f3=Cesium$1[_0x11baf5(-0x6b,-0x41)]['toDegrees'](_0x32ba52['latitude']);_0x362a42=Math['min'](_0x362a42,_0x291f1b),_0x3bc161=Math[_0x11baf5(-0x4c,-0x21)](_0x3bc161,_0x291f1b),_0x2e8008=Math[_0x11baf5(0x11,-0x5e)](_0x2e8008,_0x1098f3),_0x4c7262=Math[_0x395814(-0x88,-0x81)](_0x4c7262,_0x1098f3);}if(!_0x11d178){const _0x21f698=new Cesium$1[(_0x11baf5(-0x43,-0xa0))](Math['max'](this['windData']['bounds']['west'],_0x362a42),Math['min'](this[_0x11baf5(-0x56,-0xd2)]['bounds']['east'],_0x3bc161)),_0x1e1f8e=new Cesium$1['Cartesian2'](Math[_0x11baf5(-0xa9,-0x21)](this['windData'][_0x395814(-0x10d,-0x98)]['south'],_0x2e8008),Math[_0x11baf5(-0xd3,-0x5e)](this[_0x395814(-0x139,-0x156)][_0x395814(-0x10d,-0xec)][_0x395814(-0x63,-0xa4)],_0x4c7262)),_0x4d5987=(_0x21f698['y']-_0x21f698['x'])*0.05,_0x494009=(_0x1e1f8e['y']-_0x1e1f8e['x'])*0.05;_0x21f698['x']=Math[_0x395814(-0x88,-0xd2)](this['windData']['bounds']['west'],_0x21f698['x']-_0x4d5987),_0x21f698['y']=Math['min'](this['windData']['bounds'][_0x395814(-0x14e,-0x14a)],_0x21f698['y']+_0x4d5987),_0x1e1f8e['x']=Math[_0x395814(-0x88,-0x6e)](this[_0x11baf5(-0x95,-0xd2)]['bounds']['south'],_0x1e1f8e['x']-_0x494009),_0x1e1f8e['y']=Math[_0x11baf5(-0x89,-0x5e)](this[_0x395814(-0x139,-0x10f)][_0x11baf5(-0xee,-0xa6)]['north'],_0x1e1f8e['y']+_0x494009),this['viewerParameters'][_0x11baf5(-0x3f,-0x6b)]=_0x21f698,this[_0x11baf5(0xa,0x1a)]['latRange']=_0x1e1f8e;const _0x44f86e=this['windData'][_0x395814(-0x10d,-0x189)]['east']-this['windData'][_0x11baf5(-0x62,-0xa6)]['west'],_0x2583c8=this['windData']['bounds']['north']-this['windData']['bounds']['south'],_0x506cc8=(_0x21f698['y']-_0x21f698['x'])/_0x44f86e,_0x5a95ee=(_0x1e1f8e['y']-_0x1e1f8e['x'])/_0x2583c8,_0x14c4a0=Math['min'](_0x506cc8,_0x5a95ee),_0x3298dd=0x3e8*_0x14c4a0;_0x3298dd>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0x3298dd)));}this[_0x11baf5(0x7a,0x1a)][_0x11baf5(-0x118,-0x98)]=this['scene']['mode'],(_0x58c6ba=this[_0x395814(-0x99,-0x55)])===null||_0x58c6ba===void 0x0||_0x58c6ba['applyViewerParameters'](this[_0x11baf5(0x6f,0x1a)]);}['getDataAtLonLat'](_0xd4055e,_0x5b7eaa){const {bounds:_0x15410e,width:_0x3ddeac,height:_0x21a671,u:_0x37082a,v:_0x4b8eac,speed:_0x4fffa3}=this['windData'],{flipY:_0x565753}=this['options'];if(_0xd4055e<_0x15410e['west']||_0xd4055e>_0x15410e['east']||_0x5b7eaa<_0x15410e[_0x1f06a2(0x12e,0xf1)]||_0x5b7eaa>_0x15410e['north'])return null;function _0x549261(_0x47c3ec,_0x56d42a){return _0x4086ac(_0x47c3ec,_0x56d42a-0x278);}const _0x2189ae=(_0xd4055e-_0x15410e['west'])/(_0x15410e['east']-_0x15410e[_0x1f06a2(0x1ba,0x1c7)])*(_0x3ddeac-0x1);let _0x23c24a=(_0x5b7eaa-_0x15410e[_0x1f06a2(0x8b,0xf1)])/(_0x15410e['north']-_0x15410e[_0x1f06a2(0x170,0xf1)])*(_0x21a671-0x1);_0x565753&&(_0x23c24a=_0x21a671-0x1-_0x23c24a);const _0x5ae635=Math['floor'](_0x2189ae),_0x56a881=Math['floor'](_0x23c24a),_0x385798=Math['floor'](_0x2189ae),_0x56a8e0=Math[_0x1f06a2(0x1e5,0x17e)](_0x385798+0x1,_0x3ddeac-0x1),_0x494813=Math['floor'](_0x23c24a),_0x503bc9=Math['min'](_0x494813+0x1,_0x21a671-0x1),_0x54e6a5=_0x2189ae-_0x385798,_0x4cb845=_0x23c24a-_0x494813,_0x22cb6b=_0x56a881*_0x3ddeac+_0x5ae635,_0x2458ff=_0x494813*_0x3ddeac+_0x385798,_0x4547e6=_0x494813*_0x3ddeac+_0x56a8e0,_0x346398=_0x503bc9*_0x3ddeac+_0x385798,_0x358422=_0x503bc9*_0x3ddeac+_0x56a8e0,_0x1cc594=_0x37082a['array'][_0x2458ff],_0x523199=_0x37082a[_0x1f06a2(0x23b,0x1e7)][_0x4547e6],_0x39e035=_0x37082a['array'][_0x346398],_0x43610a=_0x37082a['array'][_0x358422],_0xe3cde0=(0x1-_0x54e6a5)*(0x1-_0x4cb845)*_0x1cc594+_0x54e6a5*(0x1-_0x4cb845)*_0x523199+(0x1-_0x54e6a5)*_0x4cb845*_0x39e035+_0x54e6a5*_0x4cb845*_0x43610a,_0x393d5c=_0x4b8eac['array'][_0x2458ff],_0x36fa55=_0x4b8eac['array'][_0x4547e6],_0x36fcdf=_0x4b8eac['array'][_0x346398];function _0x1f06a2(_0x3b3dd6,_0x2b8c9b){return _0x2e747d(_0x3b3dd6,_0x2b8c9b-0x121);}const _0x48cf77=_0x4b8eac['array'][_0x358422],_0x119cde=(0x1-_0x54e6a5)*(0x1-_0x4cb845)*_0x393d5c+_0x54e6a5*(0x1-_0x4cb845)*_0x36fa55+(0x1-_0x54e6a5)*_0x4cb845*_0x36fcdf+_0x54e6a5*_0x4cb845*_0x48cf77,_0x551073=Math[_0x1f06a2(0x141,0x130)](_0xe3cde0*_0xe3cde0+_0x119cde*_0x119cde),_0x53185d={};_0x53185d['u']=_0x37082a[_0x1f06a2(0x1fc,0x1e7)][_0x22cb6b],_0x53185d['v']=_0x4b8eac['array'][_0x22cb6b],_0x53185d[_0x1f06a2(0x128,0x178)]=_0x4fffa3['array'][_0x22cb6b];const _0x8c053b={};_0x8c053b['u']=_0xe3cde0,_0x8c053b['v']=_0x119cde,_0x8c053b['speed']=_0x551073;const _0x39d1cb={};return _0x39d1cb[_0x549261(0x44b,0x3d5)]=_0x53185d,_0x39d1cb['interpolated']=_0x8c053b,_0x39d1cb;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;function _0x1e9b(_0x2df3d2,_0x53e2aa){const _0x257013=_0x2570();return _0x1e9b=function(_0x1e9b09,_0x4f6013){_0x1e9b09=_0x1e9b09-0x126;let _0x1b2b66=_0x257013[_0x1e9b09];return _0x1b2b66;},_0x1e9b(_0x2df3d2,_0x53e2aa);}class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this[_0xadf279(0x3e6,0x44d)]=null;function _0xadf279(_0x2a365d,_0xe7b913){return _0x4086ac(_0xe7b913,_0x2a365d-0x28e);}function _0x25703e(_0x3de057,_0x4a692d){return _0x4086ac(_0x3de057,_0x4a692d-0x43a);}this['tlat']=null,this[_0xadf279(0x406,0x3c3)]=null,this['speed']=null;}['destroy'](){for(const _0x2885f9 in this){delete this[_0x2885f9];}}}class CanvasWindField{constructor(_0x45f61a){this['setOptions'](_0x45f61a);}get['speedRate'](){return this['_speedRate'];}set[_0x4086ac(0x1a8,0x126)](_0x3146a5){this['_speedRate']=(0x64-(_0x3146a5>0x63?0x63:_0x3146a5))*0x64;function _0x2d34b7(_0x12dbf2,_0x16072b){return _0x4086ac(_0x12dbf2,_0x16072b-0x1d4);}function _0x1c7175(_0xc7e42,_0x2cee26){return _0x2e747d(_0xc7e42,_0x2cee26- -0xcb);}this['_calc_speedRate']=[(this['xmax']-this[_0x1c7175(-0xaa,-0x98)])/this['_speedRate'],(this[_0x1c7175(-0xc1,-0xc3)]-this['ymin'])/this['_speedRate']];}get[_0x2e747d(-0x7,-0x31)](){function _0x22c6be(_0x1b031c,_0x13b2bb){return _0x4086ac(_0x13b2bb,_0x1b031c-0xd4);}return this[_0x22c6be(0x21c,0x1de)];}set[_0x2e747d(-0x66,-0x31)](_0x2e62f7){function _0x429255(_0x30967e,_0x35a3fc){return _0x2e747d(_0x35a3fc,_0x30967e-0x35);}this[_0x429255(0x99,0x7c)]=_0x2e62f7;}['setOptions'](_0x5ad951){this['options']=_0x5ad951;function _0x47a444(_0x269d0c,_0x5e9f2b){return _0x2e747d(_0x269d0c,_0x5e9f2b- -0xef);}this[_0x27e48e(0x2e8,0x2dd)]=_0x5ad951[_0x27e48e(0x2e8,0x36f)]||0x78,this[_0x27e48e(0x35b,0x315)]=_0x5ad951['speedRate']||0x32,this['particles']=[];function _0x27e48e(_0x3c40a3,_0x336836){return _0x2e747d(_0x336836,_0x3c40a3-0x319);}const _0x6a6fd6=_0x5ad951[_0x27e48e(0x2f6,0x36d)]||0x1000;for(let _0x1e61f6=0x0;_0x1e61f6<_0x6a6fd6;_0x1e61f6++){const _0x18b9b4=this['_randomParticle'](new CanvasParticle());this[_0x27e48e(0x325,0x383)][_0x47a444(-0x5b,-0x6c)](_0x18b9b4);}}[_0x4086ac(0x137,0x14a)](_0x152d02){this['rows']=_0x152d02['rows'],this[_0x3b0fc4(0x112,0x8d)]=_0x152d02[_0x3b0fc4(0x4a,0x8d)];function _0x382e3f(_0xeba981,_0x4e6b89){return _0x4086ac(_0x4e6b89,_0xeba981-0x370);}this[_0x3b0fc4(0x7f,0x44)]=_0x152d02[_0x3b0fc4(0x88,0x44)],this['xmax']=_0x152d02[_0x3b0fc4(0x5c,-0x2c)],this[_0x382e3f(0x4c2,0x4cc)]=_0x152d02['ymin'],this['ymax']=_0x152d02['ymax'];function _0x3b0fc4(_0x545da9,_0x1a4519){return _0x2e747d(_0x545da9,_0x1a4519-0x11);}this['grid']=[];const _0x3cde30=_0x152d02[_0x3b0fc4(0x5,0x2f)],_0x5ae255=_0x152d02['vdata'];let _0x479b19=![];_0x3cde30['length']===this['rows']&&_0x3cde30[0x0]['length']===this['cols']&&(_0x479b19=!![]);let _0x291dec=0x0,_0xd3535c=null,_0x104950=null;for(let _0x380d1f=0x0;_0x380d1f<this['rows'];_0x380d1f++){_0xd3535c=[];for(let _0xfd77d2=0x0;_0xfd77d2<this[_0x382e3f(0x4d0,0x526)];_0xfd77d2++,_0x291dec++){_0x479b19?_0x104950=this[_0x382e3f(0x430,0x444)](_0x3cde30[_0x380d1f][_0xfd77d2],_0x5ae255[_0x380d1f][_0xfd77d2]):_0x104950=this['_calcUV'](_0x3cde30[_0x291dec],_0x5ae255[_0x291dec]),_0xd3535c['push'](_0x104950);}this['grid'][_0x382e3f(0x4d7,0x475)](_0xd3535c);}!this[_0x382e3f(0x4b6,0x4c8)]['flipY']&&this['grid']['reverse']();}[_0x2e747d(0x40,0x4c)](){function _0x4d7a29(_0x3bf138,_0x13c006){return _0x4086ac(_0x3bf138,_0x13c006-0x192);}delete this[_0x4d7a29(0x258,0x25c)],delete this['cols'],delete this['xmin'];function _0x25e2e5(_0x2a5e51,_0x2fdad3){return _0x4086ac(_0x2fdad3,_0x2a5e51- -0x361);}delete this[_0x4d7a29(0x232,0x239)],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this[_0x4d7a29(0x220,0x282)];}['toGridXY'](_0x2ef7fd,_0x2d2b03){function _0xca5b21(_0x49b080,_0x2af53d){return _0x4086ac(_0x49b080,_0x2af53d- -0x337);}const _0x2ebd39=(_0x2ef7fd-this['xmin'])/(this['xmax']-this[_0xca5b21(-0x28a,-0x220)])*(this['cols']-0x1);function _0x4acb9f(_0x149c0f,_0x4d5278){return _0x2e747d(_0x4d5278,_0x149c0f-0x203);}const _0x5c332a=(this['ymax']-_0x2d2b03)/(this[_0x4acb9f(0x20b,0x230)]-this['ymin'])*(this[_0xca5b21(-0x1eb,-0x26d)]-0x1);return[_0x2ebd39,_0x5c332a];}['getUVByXY'](_0x5376d2,_0x3aa3f7){if(_0x5376d2<0x0||_0x5376d2>=this['cols']||_0x3aa3f7>=this['rows'])return[0x0,0x0,0x0];function _0x42536f(_0x38298f,_0x57d385){return _0x4086ac(_0x38298f,_0x57d385- -0x90);}const _0x385f8a=Math['floor'](_0x5376d2),_0x101d50=Math['floor'](_0x3aa3f7);function _0x46ccee(_0xdf82fb,_0x36177c){return _0x4086ac(_0x36177c,_0xdf82fb- -0x47);}if(_0x385f8a===_0x5376d2&&_0x101d50===_0x3aa3f7)return this[_0x46ccee(0x63,0xc0)][_0x3aa3f7][_0x5376d2];const _0x7b62ad=_0x385f8a+0x1,_0x599059=_0x101d50+0x1,_0x3e3fe0=this['getUVByXY'](_0x385f8a,_0x101d50),_0x1e0370=this['getUVByXY'](_0x7b62ad,_0x101d50),_0x533066=this[_0x42536f(0x149,0x118)](_0x385f8a,_0x599059),_0x15c2be=this['getUVByXY'](_0x7b62ad,_0x599059);let _0x386e75=null;try{_0x386e75=this[_0x46ccee(0x7b,0xf6)](_0x5376d2-_0x385f8a,_0x3aa3f7-_0x101d50,_0x3e3fe0,_0x1e0370,_0x533066,_0x15c2be);}catch(_0x251178){console['log'](_0x5376d2,_0x3aa3f7);}return _0x386e75;}[_0x2e747d(0x61,-0x22)](_0x2ce959,_0x4ccf4c,_0x1e3e7c,_0x5575ec,_0x2c73b3,_0x4e8681){const _0x42d510=0x1-_0x2ce959,_0x413e18=0x1-_0x4ccf4c,_0x358d87=_0x42d510*_0x413e18,_0x36e9a0=_0x2ce959*_0x413e18,_0x5cd5a2=_0x42d510*_0x4ccf4c,_0x1882ba=_0x2ce959*_0x4ccf4c,_0x26556b=_0x1e3e7c[0x0]*_0x358d87+_0x5575ec[0x0]*_0x36e9a0+_0x2c73b3[0x0]*_0x5cd5a2+_0x4e8681[0x0]*_0x1882ba,_0x16af40=_0x1e3e7c[0x1]*_0x358d87+_0x5575ec[0x1]*_0x36e9a0+_0x2c73b3[0x1]*_0x5cd5a2+_0x4e8681[0x1]*_0x1882ba;return this['_calcUV'](_0x26556b,_0x16af40);}[_0x2e747d(-0x16,-0x24)](_0x36363e,_0xf6d6ef){return[+_0x36363e,+_0xf6d6ef,Math['sqrt'](_0x36363e*_0x36363e+_0xf6d6ef*_0xf6d6ef)];}['getUVByPoint'](_0x3cb43c,_0xc4c777){function _0x502eaf(_0x43d274,_0x5f4039){return _0x4086ac(_0x43d274,_0x5f4039-0x230);}if(!this[_0x502eaf(0x3df,0x389)](_0x3cb43c,_0xc4c777))return null;function _0x6bff41(_0x223f7f,_0x2ea1b9){return _0x4086ac(_0x2ea1b9,_0x223f7f- -0xc2);}const _0x3b930b=this[_0x502eaf(0x25e,0x2e0)](_0x3cb43c,_0xc4c777),_0x543a44=this[_0x6bff41(0xe6,0x8b)](_0x3b930b[0x0],_0x3b930b[0x1]);return _0x543a44;}['isInExtent'](_0x87d6d2,_0x5282c1){function _0x43e8a7(_0x503b2d,_0x5259aa){return _0x4086ac(_0x503b2d,_0x5259aa-0x30a);}function _0x15bb01(_0x16c58b,_0x1982f0){return _0x4086ac(_0x16c58b,_0x1982f0- -0x23a);}return _0x87d6d2>=this[_0x15bb01(-0x136,-0x123)]&&_0x87d6d2<=this[_0x43e8a7(0x3f9,0x3b1)]&&_0x5282c1>=this['ymin']&&_0x5282c1<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x5d2567=fRandomByfloat(this['xmin'],this['xmax']);function _0x18150d(_0x3cab8a,_0x1dadb8){return _0x4086ac(_0x3cab8a,_0x1dadb8- -0x2e0);}const _0x2c6714=fRandomByfloat(this[_0x3264f7(0x57e,0x5dd)],this['ymax']),_0x1c9f4b={};_0x1c9f4b['lat']=_0x2c6714,_0x1c9f4b[_0x3264f7(0x4d0,0x520)]=_0x5d2567;function _0x3264f7(_0x55c1e7,_0x2e731c){return _0x4086ac(_0x2e731c,_0x55c1e7-0x42c);}return _0x1c9f4b;}[_0x4086ac(0x193,0x18d)](){let _0x3abdcb,_0x2260ab,_0x3efd2c;function _0x10a9fe(_0x47d431,_0x554641){return _0x2e747d(_0x554641,_0x47d431-0x102);}for(let _0x4bc17e=0x0,_0x10d4ed=this['particles'][_0x2ccaf2(-0x249,-0x24b)];_0x4bc17e<_0x10d4ed;_0x4bc17e++){let _0x35152a=this['particles'][_0x4bc17e];_0x35152a[_0x2ccaf2(-0x1a6,-0x1d6)]<=0x0&&(_0x35152a=this[_0x10a9fe(0x178,0x1c4)](_0x35152a));if(_0x35152a[_0x2ccaf2(-0x1a6,-0x162)]>0x0){const _0x1000a2=_0x35152a['tlng'],_0x5db85f=_0x35152a['tlat'];_0x3efd2c=this[_0x10a9fe(0xcf,0xca)](_0x1000a2,_0x5db85f),_0x3efd2c?(_0x3abdcb=_0x1000a2+this['_calc_speedRate'][0x0]*_0x3efd2c[0x0],_0x2260ab=_0x5db85f+this['_calc_speedRate'][0x1]*_0x3efd2c[0x1],_0x35152a[_0x2ccaf2(-0x27a,-0x2e3)]=_0x1000a2,_0x35152a['lat']=_0x5db85f,_0x35152a[_0x10a9fe(0x176,0x16a)]=_0x3abdcb,_0x35152a['tlat']=_0x2260ab,_0x35152a['speed']=_0x3efd2c[0x2],_0x35152a['age']--):_0x35152a['age']=0x0;}}function _0x2ccaf2(_0x570014,_0x42bb7d){return _0x4086ac(_0x42bb7d,_0x570014- -0x31e);}return this[_0x10a9fe(0x10e,0x112)];}[_0x4086ac(0xfa,0x15a)](_0x4c3924){function _0x39df81(_0x1100ae,_0x214b7a){return _0x4086ac(_0x1100ae,_0x214b7a- -0x2d6);}let _0x109ddf,_0xf9e721;function _0x34eba2(_0x463608,_0x2debc6){return _0x4086ac(_0x463608,_0x2debc6-0xcd);}for(let _0x3e7d78=0x0;_0x3e7d78<0x1e;_0x3e7d78++){_0x109ddf=this['getRandomLatLng'](),_0xf9e721=this['getUVByPoint'](_0x109ddf[_0x34eba2(0x1d4,0x171)],_0x109ddf['lat']);if(_0xf9e721&&_0xf9e721[0x2]>0x0)break;}if(!_0xf9e721)return _0x4c3924;const _0x273424=_0x109ddf[_0x34eba2(0x171,0x171)]+this['_calc_speedRate'][0x0]*_0xf9e721[0x0],_0x327461=_0x109ddf['lat']+this['_calc_speedRate'][0x1]*_0xf9e721[0x1];return _0x4c3924[_0x39df81(-0x1c4,-0x232)]=_0x109ddf[_0x39df81(-0x2ab,-0x232)],_0x4c3924['lat']=_0x109ddf['lat'],_0x4c3924['tlng']=_0x273424,_0x4c3924[_0x34eba2(0x1c4,0x1c1)]=_0x327461,_0x4c3924['age']=Math['round'](0xa+Math['random']()*this['maxAge']),_0x4c3924[_0x34eba2(0x1be,0x208)]=_0xf9e721[0x2],_0x4c3924;}['destroy'](){for(const _0x27838a in this){delete this[_0x27838a];}}}function fRandomByfloat(_0x5e7870,_0x288cc6){function _0x593fcb(_0xbc0867,_0x32c012){return _0x4086ac(_0xbc0867,_0x32c012-0xd2);}return _0x5e7870+Math[_0x593fcb(0x16e,0x17a)]()*(_0x288cc6-_0x5e7870);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x4086ac(0x1d6,0x189)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x18226d={}){super(_0x18226d);function _0x10d2a3(_0x41108c,_0x1c2377){return _0x2e747d(_0x1c2377,_0x41108c- -0xe5);}function _0x3e04b2(_0x31dbdf,_0x49554b){return _0x4086ac(_0x49554b,_0x31dbdf-0x61);}this['_setOptionsHook'](_0x18226d),this[_0x10d2a3(-0xbc,-0xc4)]=null,_0x18226d['colors']&&_0x18226d[_0x3e04b2(0x18c,0x145)]&&(this['_colorRamp']=new mars3d__namespace[(_0x3e04b2(0x15c,0x153))](_0x18226d));}[_0x4086ac(0x107,0x161)](_0x1e70d3,_0x2af8e0){function _0x5587ba(_0x4c231e,_0x405471){return _0x4086ac(_0x405471,_0x4c231e- -0x2bb);}function _0x5ca769(_0x1b0b1a,_0x8118da){return _0x4086ac(_0x1b0b1a,_0x8118da- -0xc5);}this['frameTime']=0x3e8/(_0x1e70d3['frameRate']||0xa),this[_0x5ca769(0x5f,-0x7)]=this['options']['pointerEvents']??![],this['color']=_0x1e70d3['color']||'#ffffff',this['lineWidth']=_0x1e70d3['lineWidth']||0x1,this['fixedHeight']=_0x1e70d3[_0x5587ba(-0x1ff,-0x239)]??0x0,this['flipY']=_0x1e70d3['flipY']??![],this[_0x5ca769(0x48,0x3)]&&this[_0x5587ba(-0x1f3,-0x21f)][_0x5ca769(0x72,0xbf)](_0x1e70d3);}get['layer'](){return this['canvas'];}get['canvasWidth'](){function _0x302549(_0x242aa5,_0x22d199){return _0x2e747d(_0x242aa5,_0x22d199-0x495);}function _0xc9f58f(_0x1e927c,_0x166431){return _0x2e747d(_0x1e927c,_0x166431-0x206);}return this['_map'][_0xc9f58f(0x231,0x20b)][_0xc9f58f(0x28c,0x22f)]['clientWidth'];}get['canvasHeight'](){return this['_map']['scene']['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x2e747d(0xc4,0xa2)](_0x26870b){this[_0x2d9521(-0x192,-0x134)]=_0x26870b;if(!this['canvas'])return;function _0x3aa356(_0x2fceff,_0x1e3ac8){return _0x4086ac(_0x2fceff,_0x1e3ac8- -0x352);}function _0x2d9521(_0x5d7839,_0x2266db){return _0x2e747d(_0x5d7839,_0x2266db- -0x10e);}_0x26870b?this['canvas'][_0x3aa356(-0x255,-0x281)]['pointer-events']='all':this['canvas'][_0x3aa356(-0x30c,-0x281)][_0x2d9521(-0x8a,-0xd7)]='none';}get['particlesNumber'](){function _0x2e81e2(_0x1291e2,_0xeef4d4){return _0x2e747d(_0x1291e2,_0xeef4d4- -0x14d);}return this[_0x2e81e2(-0x13e,-0xeb)]['particlesNumber'];}set[_0x4086ac(0x61,0xc1)](_0x298c43){function _0x26b025(_0x268ef0,_0x32530f){return _0x4086ac(_0x32530f,_0x268ef0- -0x150);}this['options']['particlesNumber']=_0x298c43,clearTimeout(this['_canrefresh']),this[_0x26b025(-0x91,-0x10)]=setTimeout(()=>{function _0x3664b3(_0x3c1d03,_0x22aaea){return _0x26b025(_0x3c1d03-0xa2,_0x22aaea);}this[_0x3664b3(0x38,0x64)]();},0x1f4);}get['speedRate'](){function _0x1c4cdc(_0x44151c,_0x3f8c2b){return _0x4086ac(_0x44151c,_0x3f8c2b-0x13d);}return this[_0x1c4cdc(0x268,0x283)]['speedRate'];}set[_0x2e747d(0x19,0x42)](_0x5599c1){function _0x24deb3(_0x23740a,_0x533014){return _0x2e747d(_0x23740a,_0x533014-0xec);}this['options']['speedRate']=_0x5599c1,this['windField']&&(this[_0x24deb3(0xa6,0xd0)]['speedRate']=_0x5599c1);}get['maxAge'](){return this['options']['maxAge'];}set[_0x4086ac(0x13c,0xb3)](_0x4439ec){this['options']['maxAge']=_0x4439ec,this['windField']&&(this['windField']['maxAge']=_0x4439ec);}get[_0x4086ac(0x82,0xfe)](){return this['windData'];}set['data'](_0x4c93a3){function _0x2c1d54(_0x54e8b5,_0xc24acb){return _0x4086ac(_0x54e8b5,_0xc24acb-0x31f);}this[_0x2c1d54(0x461,0x4b6)](_0x4c93a3);}get['rectangle'](){let _0x3ece57=this[_0x367075(0x1cc,0x1e9)]['xmin'],_0x270c1b=this['windData'][_0x367075(0x1a6,0x22e)],_0x48d14=this['windData']['ymin'],_0xc99f8=this[_0x1d592f(-0xff,-0xf8)][_0x1d592f(-0xe0,-0x104)];_0x270c1b>=0x167&&_0x3ece57===0x0&&(_0x3ece57=-0xb4,_0x270c1b=0xb4);_0x3ece57=Math['max'](_0x3ece57,-0xb4);function _0x1d592f(_0x378f2e,_0x35c049){return _0x4086ac(_0x35c049,_0x378f2e- -0x1cc);}_0x270c1b=Math['min'](_0x270c1b,0xb4),_0x48d14=Math['max'](_0x48d14,-0x5a);function _0x367075(_0xa58a,_0x7570fc){return _0x2e747d(_0x7570fc,_0xa58a-0x1e3);}return _0xc99f8=Math[_0x1d592f(-0x8b,-0xb4)](_0xc99f8,0x5a),Cesium['Rectangle'][_0x1d592f(-0x2f,-0x51)](_0x3ece57,_0x48d14,_0x270c1b,_0xc99f8);}[_0x2e747d(0xbd,0x8b)](_0xae9bbe){function _0x5d7c1f(_0x480fec,_0x583555){return _0x2e747d(_0x480fec,_0x583555-0x2e3);}function _0x30477b(_0x5a517f,_0x2bef3f){return _0x2e747d(_0x5a517f,_0x2bef3f- -0x1e5);}_0xae9bbe?this['_addedHook']():(this[_0x5d7c1f(0x265,0x2cc)]&&(this['options'][_0x5d7c1f(0x366,0x2fd)]=this[_0x5d7c1f(0x2bb,0x2cc)]),this[_0x30477b(-0x1a4,-0x1b5)]());}['_mountedHook'](){function _0x430513(_0x128ecf,_0x18a7bd){return _0x4086ac(_0x18a7bd,_0x128ecf-0x3b5);}function _0x20601e(_0x23dd84,_0x26ef92){return _0x4086ac(_0x23dd84,_0x26ef92-0x422);}this['options']['worker']?this['initWorker']():this[_0x20601e(0x4f7,0x4ea)]=new CanvasWindField(this[_0x20601e(0x4f0,0x568)]);}[_0x2e747d(0x67,-0x2)](){function _0x530bc4(_0x1bb746,_0xf64ded){return _0x4086ac(_0x1bb746,_0xf64ded-0x1f8);}this[_0x530bc4(0x37e,0x305)]=this[_0x530bc4(0x3af,0x362)]();function _0x3f46ba(_0x4e45ae,_0x342158){return _0x2e747d(_0x4e45ae,_0x342158-0x4aa);}const _0x36b8ad={};_0x36b8ad[_0x3f46ba(0x4a3,0x4ff)]=!![],this[_0x530bc4(0x327,0x336)]=this[_0x530bc4(0x30a,0x305)]['getContext']('2d',_0x36b8ad),this[_0x3f46ba(0x4bf,0x4bb)](),this[_0x530bc4(0x308,0x33e)]['data']&&this['setData'](this[_0x3f46ba(0x489,0x50c)][_0x530bc4(0x299,0x2f6)]);}['_removedHook'](){function _0xd188b4(_0x12e19d,_0x114917){return _0x2e747d(_0x114917,_0x12e19d-0x52f);}this['clear']();function _0x1819cf(_0x3ec739,_0x3e2a71){return _0x2e747d(_0x3ec739,_0x3e2a71- -0x185);}this['unbindEvent'](),this[_0xd188b4(0x558,0x5ab)]&&(this['_map']['container'][_0xd188b4(0x58e,0x5eb)](this['canvas']),delete this['canvas']);}[_0x4086ac(0xe2,0x16a)](){const _0x5c5393=mars3d__namespace[_0x544449(0x4bd,0x4dd)][_0x544449(0x4d4,0x49f)](_0x544449(0x451,0x446),'mars3d-canvasWind',this['_map']['container']);_0x5c5393[_0x544449(0x415,0x3f9)]['position']=_0x544449(0x436,0x3e8),_0x5c5393[_0xeaa35e(-0x267,-0x2ae)]['top']=_0x544449(0x4ef,0x4ac),_0x5c5393[_0xeaa35e(-0x267,-0x2ae)]['left']=_0xeaa35e(-0x18d,-0x1b2),_0x5c5393['style']['width']=this[_0x544449(0x470,0x4b9)]['scene']['canvas']['clientWidth']+'px',_0x5c5393['style'][_0x544449(0x4dd,0x4df)]=this[_0x544449(0x470,0x449)][_0x544449(0x42d,0x3f8)]['canvas'][_0xeaa35e(-0x25f,-0x1e7)]+'px',_0x5c5393['style'][_0x544449(0x4ca,0x4c8)]=this['_pointerEvents']?'auto':'none';function _0xeaa35e(_0x24554a,_0x1ab88f){return _0x4086ac(_0x1ab88f,_0x24554a- -0x338);}_0x5c5393['style'][_0x544449(0x40f,0x490)]=this[_0x544449(0x48a,0x461)]['zIndex']??0x9;function _0x544449(_0x56d3d4,_0x295a7b){return _0x4086ac(_0x295a7b,_0x56d3d4-0x344);}return _0x5c5393['width']=this['_map']['scene']['canvas']['clientWidth'],_0x5c5393[_0xeaa35e(-0x19f,-0x13e)]=this['_map']['scene'][_0x544449(0x451,0x3f6)]['clientHeight'],_0x5c5393;}[_0x2e747d(-0x20,0x34)](){function _0x1f8dfa(_0x1827dd,_0x535e0a){return _0x4086ac(_0x535e0a,_0x1827dd-0x20b);}function _0x2c06b8(_0x4a29f6,_0x485d22){return _0x4086ac(_0x485d22,_0x4a29f6-0x349);}this['canvas']&&(this[_0x2c06b8(0x456,0x3ea)][_0x2c06b8(0x41a,0x467)]['width']=this[_0x2c06b8(0x475,0x444)][_0x2c06b8(0x432,0x436)]['canvas']['clientWidth']+'px',this['canvas'][_0x1f8dfa(0x2dc,0x297)]['height']=this['_map']['scene']['canvas']['clientHeight']+'px',this['canvas']['width']=this['_map'][_0x2c06b8(0x432,0x49c)]['canvas']['clientWidth'],this['canvas'][_0x1f8dfa(0x3a4,0x3f6)]=this[_0x2c06b8(0x475,0x48f)]['scene']['canvas'][_0x1f8dfa(0x2e4,0x318)]);}['bindEvent'](){const _0x1706bc=this;function _0x45533a(_0x43d180,_0x3139f5){return _0x4086ac(_0x43d180,_0x3139f5- -0xd5);}let _0x347b65=Date['now']();(function _0x36a111(){if(_0x1706bc[_0xa5f03f(-0xd8,-0x67)])return;function _0xa5f03f(_0x116b78,_0x289d9d){return _0x1e9b(_0x289d9d- -0x25d,_0x116b78);}function _0x3ef004(_0x1e0dfe,_0x3ff513){return _0x1e9b(_0x3ff513-0x176,_0x1e0dfe);}_0x1706bc[_0xa5f03f(-0xe8,-0xf1)]=window['requestAnimationFrame'](_0x36a111);if(_0x1706bc[_0x3ef004(0x32c,0x366)]&&_0x1706bc['windField']){const _0x452dc5=Date[_0x3ef004(0x36d,0x34d)](),_0x6c67fd=_0x452dc5-_0x347b65;_0x6c67fd>_0x1706bc['frameTime']&&(_0x347b65=_0x452dc5-_0x6c67fd%_0x1706bc['frameTime'],_0x1706bc['update']());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![]);function _0x3ca9ba(_0x809e87,_0x3862df){return _0x2e747d(_0x3862df,_0x809e87-0x305);}this['options'][_0x3ca9ba(0x3c6,0x3b9)]&&(this['_map']['on'](mars3d__namespace[_0x45533a(0x6f,0x1a)]['wheel'],this[_0x45533a(0x72,0x49)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x45533a(0x80,0x7)],this),this[_0x45533a(0x6f,0x57)]['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this));}['unbindEvent'](){window[_0x43f07a(-0x15f,-0x1e7)](this['_animateFrame']);function _0x43f07a(_0x482c5e,_0x295dd9){return _0x2e747d(_0x295dd9,_0x482c5e- -0x144);}delete this[_0x43f07a(-0x13e,-0x1aa)];function _0x22e549(_0x3e36e4,_0x4f4541){return _0x4086ac(_0x3e36e4,_0x4f4541-0x239);}window['removeEventListener']('resize',this[_0x22e549(0x337,0x351)]),this[_0x22e549(0x3a6,0x37f)]['mouseHidden']&&(this['_map'][_0x43f07a(-0xbc,-0x64)](mars3d__namespace[_0x22e549(0x2ea,0x328)]['wheel'],this[_0x22e549(0x371,0x357)],this),this[_0x22e549(0x2f4,0x365)]['off'](mars3d__namespace[_0x22e549(0x2ac,0x328)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x43f07a(-0x71,-0xbd)],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x22e549(0x290,0x2eb)],this[_0x43f07a(-0xa9,-0xbb)],this));}['_onMapWhellEvent'](_0x3636c9){function _0xe1477b(_0x2e07c4,_0x1046f6){return _0x4086ac(_0x2e07c4,_0x1046f6- -0xdb);}function _0x519e32(_0x396f1e,_0x2322ef){return _0x2e747d(_0x2322ef,_0x396f1e- -0x211);}clearTimeout(this['refreshTimer']);if(!this[_0xe1477b(0x7f,0x93)]||!this['canvas'])return;this[_0x519e32(-0x1e8,-0x1cf)]['style'][_0x519e32(-0x1e5,-0x21c)]='hidden',this['refreshTimer']=setTimeout(()=>{if(!this[_0x34ca82(-0xbb,-0xac)])return;function _0x34ca82(_0x5c3410,_0x437c1e){return _0x519e32(_0x437c1e-0xdb,_0x5c3410);}function _0xd1912e(_0xb5925f,_0x38689d){return _0x519e32(_0x38689d-0x527,_0xb5925f);}this['redraw'](),this['canvas'][_0x34ca82(-0x10e,-0x149)]['visibility']='visible';},0xc8);}[_0x4086ac(0xf2,0xdc)](_0x4d4b12){function _0x573ca3(_0x15e28c,_0x12d57c){return _0x4086ac(_0x15e28c,_0x12d57c-0x1ee);}this['mouse_down']=!![],this[_0x573ca3(0x387,0x31a)]['off'](mars3d__namespace[_0x1cb373(0x52b,0x59e)][_0x1cb373(0x4ee,0x4d7)],this['_onMouseMoveEvent'],this);function _0x1cb373(_0x4450b8,_0x4c5aad){return _0x4086ac(_0x4c5aad,_0x4450b8-0x43c);}this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x3e64b7){function _0x240256(_0x3462e0,_0x478d0a){return _0x4086ac(_0x3462e0,_0x478d0a- -0x108);}function _0x1e0d71(_0x37a11f,_0x56c767){return _0x4086ac(_0x37a11f,_0x56c767-0x290);}if(!this['show']||!this[_0x1e0d71(0x315,0x39d)])return;this['mouse_down']&&(this[_0x240256(0x1c,0x5)][_0x240256(-0x64,-0x37)][_0x1e0d71(0x3db,0x3a0)]=_0x240256(0x98,0x73),this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x101be4){function _0x5c81e0(_0x35daae,_0x1c0d52){return _0x4086ac(_0x35daae,_0x1c0d52-0x1a8);}if(!this['show']||!this[_0x5c81e0(0x270,0x2b5)])return;this[_0x33e90c(0x27,0xa2)][_0x5c81e0(0x2eb,0x314)](mars3d__namespace[_0x33e90c(-0x16,-0x2c)]['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this[_0x33e90c(-0x2e,-0x5e)]&&this['redraw']();this[_0x33e90c(0x8,-0x1a)]['style']['visibility']='visible';function _0x33e90c(_0x197c4c,_0x423a50){return _0x2e747d(_0x423a50,_0x197c4c- -0x21);}this['mouse_down']=![],this[_0x5c81e0(0x2ca,0x27f)]=![];}[_0x2e747d(0xd5,0xb3)](_0x137de9){function _0x4c588f(_0x468a52,_0xdf5c73){return _0x4086ac(_0x468a52,_0xdf5c73-0x3f4);}function _0x4cb251(_0x15fe64,_0x201e06){return _0x4086ac(_0x201e06,_0x15fe64-0x41a);}this['clear'](),this[_0x4cb251(0x4e7,0x4b1)]=_0x137de9,this['windField']['setDate'](_0x137de9),this[_0x4c588f(0x524,0x4da)]();}[_0x4086ac(0x166,0xe6)](){function _0x37c216(_0x5e39f0,_0x128061){return _0x4086ac(_0x128061,_0x5e39f0-0x65);}if(!this[_0x1a78be(-0x98,-0x3c)])return;function _0x1a78be(_0x2b57ed,_0x1254e4){return _0x2e747d(_0x2b57ed,_0x1254e4- -0xc6);}this['windField']['setOptions'](this[_0x1a78be(-0x65,-0x64)]),this[_0x37c216(0x1a1,0x194)]();}['update'](){function _0x62a7d2(_0x33435e,_0x430963){return _0x4086ac(_0x430963,_0x33435e-0x33c);}if(this[_0x62a7d2(0x461,0x3fd)])return;function _0x36bfac(_0x3368f8,_0x586614){return _0x4086ac(_0x586614,_0x3368f8-0x73);}this['_updateIng']=!![];if(this[_0x62a7d2(0x498,0x4e9)])this[_0x62a7d2(0x404,0x382)]['update']();else{const _0x7a1eaf=this['windField']['getParticles']();this[_0x62a7d2(0x49b,0x425)](_0x7a1eaf);}this['_updateIng']=![];}['_drawLines'](_0x246769){this['_canvasParticles']=_0x246769,this['canvasContext'][_0x55b717(0x455,0x4b7)]=_0x9fda0d(0x232,0x210),this[_0x9fda0d(0x1be,0x148)]['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x55b717(0x55d,0x4f4)]),this[_0x9fda0d(0x1be,0x189)][_0x55b717(0x4ec,0x4b7)]=_0x55b717(0x454,0x4c8),this['canvasContext']['globalAlpha']=0.9;const _0x2168f9=this[_0x55b717(0x3fd,0x472)]['scene'][_0x55b717(0x4c9,0x4bc)]!==Cesium['SceneMode'][_0x9fda0d(0x230,0x207)];function _0x55b717(_0x2fde7f,_0x482cfc){return _0x4086ac(_0x2fde7f,_0x482cfc-0x346);}function _0x9fda0d(_0x3f6ec5,_0x53c5b7){return _0x2e747d(_0x53c5b7,_0x3f6ec5-0x164);}const _0x306f87=this[_0x55b717(0x4ad,0x46f)]*0.25;if(this['_colorRamp'])for(let _0x30069d=0x0,_0x5c2e05=_0x246769['length'];_0x30069d<_0x5c2e05;_0x30069d++){const _0xc4c847=_0x246769[_0x30069d],_0x2c2144=this[_0x55b717(0x3ad,0x431)](_0xc4c847,_0xc4c847[_0x9fda0d(0x124,0x10a)],_0xc4c847['lat'],_0xc4c847['alt']),_0x343b9e=this[_0x55b717(0x4a1,0x431)](_0xc4c847,_0xc4c847['tlng'],_0xc4c847[_0x9fda0d(0x174,0xf4)],_0xc4c847[_0x9fda0d(0x168,0x17b)]);if(!_0x2c2144||!_0x343b9e)continue;if(_0x2168f9&&Math[_0x9fda0d(0x12d,0x182)](_0x2c2144[0x0]-_0x343b9e[0x0])>=_0x306f87)continue;this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x55b717(0x43e,0x484)]['strokeStyle']=this[_0x9fda0d(0x1ba,0x1b8)]['getColor'](_0xc4c847['speed']),this['canvasContext']['moveTo'](_0x2c2144[0x0],_0x2c2144[0x1]),this['canvasContext'][_0x55b717(0x430,0x44b)](_0x343b9e[0x0],_0x343b9e[0x1]),this[_0x9fda0d(0x1be,0x17a)][_0x9fda0d(0x16e,0x199)]();}else{this['canvasContext'][_0x55b717(0x3bf,0x3ef)](),this['canvasContext'][_0x9fda0d(0x189,0x205)]=this['lineWidth'],this[_0x9fda0d(0x1be,0x16c)]['strokeStyle']=this['color'];for(let _0x24384f=0x0,_0x223a32=_0x246769[_0x55b717(0x46a,0x41b)];_0x24384f<_0x223a32;_0x24384f++){const _0xc794c=_0x246769[_0x24384f],_0x251817=this[_0x9fda0d(0x16b,0x13f)](_0xc794c,_0xc794c[_0x9fda0d(0x124,0xc3)],_0xc794c[_0x9fda0d(0x216,0x1b8)],_0xc794c['alt']),_0x54974a=this['_tomap'](_0xc794c,_0xc794c['tlng'],_0xc794c['tlat'],_0xc794c[_0x9fda0d(0x168,0xed)]);if(!_0x251817||!_0x54974a)continue;if(_0x2168f9&&Math[_0x9fda0d(0x12d,0xdc)](_0x251817[0x0]-_0x54974a[0x0])>=_0x306f87)continue;this[_0x9fda0d(0x1be,0x21f)]['moveTo'](_0x251817[0x0],_0x251817[0x1]),this['canvasContext']['lineTo'](_0x54974a[0x0],_0x54974a[0x1]);}this['canvasContext'][_0x9fda0d(0x16e,0xec)]();}}['_tomap'](_0x58f161,_0x26842e,_0x48097a,_0x2d9ccc){const _0x7272aa=Cesium[_0x18e51b(0xa5,0xce)]['fromDegrees'](_0x26842e,_0x48097a,_0x2d9ccc??this['fixedHeight']);function _0x18e51b(_0x1f0bee,_0x414bde){return _0x2e747d(_0x1f0bee,_0x414bde-0x5f);}const _0x33307a=this[_0x2c85db(0x2b3,0x302)][_0x2c85db(0x270,0x28f)];if(_0x33307a[_0x18e51b(0xac,0xf1)]===Cesium['SceneMode'][_0x18e51b(0xfc,0x12b)]){const _0x52bae1=new Cesium[(_0x2c85db(0x33b,0x2f7))](_0x33307a['globe']['ellipsoid'],_0x33307a[_0x18e51b(0xa9,0x107)][_0x18e51b(0xf6,0x90)]),_0x98180e=_0x52bae1[_0x2c85db(0x24b,0x23e)](_0x7272aa);if(!_0x98180e)return _0x58f161['age']=0x0,null;}function _0x2c85db(_0x4644f3,_0x2b114b){return _0x4086ac(_0x2b114b,_0x4644f3-0x187);}const _0x3ce145=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map']['scene'],_0x7272aa);return _0x3ce145?[_0x3ce145['x'],_0x3ce145['y']]:null;}[_0x2e747d(0xb2,0x4c)](){this['windField'][_0x35149d(0x1cb,0x22d)]();function _0x1adfa2(_0x81eeb,_0x45770d){return _0x4086ac(_0x45770d,_0x81eeb- -0x171);}function _0x35149d(_0x117d29,_0x32200d){return _0x4086ac(_0x32200d,_0x117d29-0x9b);}delete this[_0x35149d(0x168,0xde)];}['initWorker'](){function _0x56276f(_0xd9faaf,_0x277faa){return _0x4086ac(_0xd9faaf,_0x277faa-0x224);}this[_0xf31f93(0xe4,0xff)]=new Worker(this[_0x56276f(0x323,0x36a)]['worker']),this[_0xf31f93(0x155,0xff)]['onmessage']=_0x21d05b=>{this['_drawLines'](_0x21d05b['data']['particles']),this['_updateIng2']=![];},this['windField']={'init':_0x386fd0=>{const _0x525d58={};function _0x4147f7(_0x114033,_0x3b7f1d){return _0xf31f93(_0x114033,_0x3b7f1d- -0x13b);}function _0x6b7117(_0x28503b,_0x44c51d){return _0x56276f(_0x28503b,_0x44c51d-0xe5);}_0x525d58[_0x4147f7(0x6,-0xa)]=_0x6b7117(0x3fe,0x471),_0x525d58['options']=_0x386fd0,this[_0x6b7117(0x3df,0x465)][_0x6b7117(0x376,0x400)](_0x525d58);},'setOptions':_0x191c0d=>{const _0x20ec89={};_0x20ec89[_0xf12efa(0x1c6,0x161)]='setOptions';function _0xf12efa(_0x447731,_0x4af81a){return _0x56276f(_0x4af81a,_0x447731- -0x1ec);}_0x20ec89['options']=_0x191c0d;function _0x47782d(_0x395100,_0x14ef96){return _0x56276f(_0x14ef96,_0x395100-0x22d);}this[_0xf12efa(0x194,0x207)]['postMessage'](_0x20ec89);},'setDate':_0x9c5de2=>{const _0x666e8f={};_0x666e8f[_0x3208b7(0x97,0x9c)]='setDate';function _0x1b97c2(_0x2fcca4,_0x6ad040){return _0x56276f(_0x6ad040,_0x2fcca4- -0x44e);}_0x666e8f['data']=_0x9c5de2;function _0x3208b7(_0x4e3fbb,_0xc6f2a7){return _0x56276f(_0xc6f2a7,_0x4e3fbb- -0x31b);}this[_0x1b97c2(-0xce,-0x11e)]['postMessage'](_0x666e8f);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x4f7e81={};_0x4f7e81['type']=_0x1bc2b5(0x59c,0x5c4);function _0x340da7(_0x56d361,_0x2bf478){return _0x56276f(_0x2bf478,_0x56d361- -0x18a);}function _0x1bc2b5(_0x5f4294,_0x24c5ad){return _0x56276f(_0x24c5ad,_0x5f4294-0x23c);}this['worker'][_0x1bc2b5(0x557,0x558)](_0x4f7e81);},'clear':()=>{function _0x512e60(_0x39dcd6,_0x4931f0){return _0x56276f(_0x39dcd6,_0x4931f0- -0x2b8);}const _0x326637={};_0x326637['type']='clear',this['worker'][_0x512e60(0x82,0x63)](_0x326637);}};function _0xf31f93(_0x28e383,_0x520089){return _0x4086ac(_0x28e383,_0x520089- -0x5d);}this['windField'][_0x56276f(0x409,0x38c)](this['options']);}}mars3d__namespace['LayerUtil'][_0x4086ac(0xd5,0x151)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports[_0x2e747d(-0x18,0x54)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x2e747d(0x40,0x9c)]=WindLayer,exports['WindUtil']=WindUtil;const _0x3e20a2={};_0x3e20a2['value']=!![],Object[_0x4086ac(0x133,0x14b)](exports,'__esModule',_0x3e20a2);
14
+ 'use strict';(function(_0x14324f,_0x55fb34){function _0x1d757b(_0x117123,_0x1a86a3){return _0x3300(_0x1a86a3-0x159,_0x117123);}function _0x37fc1f(_0x127afe,_0x4bf32a){return _0x3300(_0x4bf32a- -0x8d,_0x127afe);}const _0x1427c2=_0x14324f();while(!![]){try{const _0x1c8df1=-parseInt(_0x1d757b(0x26f,0x28e))/0x1+parseInt(_0x37fc1f(0x61,0xc2))/0x2*(-parseInt(_0x37fc1f(0x35,0x92))/0x3)+parseInt(_0x1d757b(0x1d7,0x224))/0x4+-parseInt(_0x1d757b(0x285,0x2c4))/0x5+parseInt(_0x37fc1f(0xe8,0xc8))/0x6*(parseInt(_0x37fc1f(0x79,0x24))/0x7)+-parseInt(_0x1d757b(0x2c5,0x265))/0x8*(parseInt(_0x37fc1f(-0x39,0x50))/0x9)+parseInt(_0x37fc1f(0xc9,0xbe))/0xa;if(_0x1c8df1===_0x55fb34)break;else _0x1427c2['push'](_0x1427c2['shift']());}catch(_0x23b2fe){_0x1427c2['push'](_0x1427c2['shift']());}}}(_0x461c,0x4739f));function _interopNamespace(_0x107184){function _0x48f5db(_0x1fb33b,_0x4a3cf1){return _0x3300(_0x4a3cf1- -0x70,_0x1fb33b);}if(_0x107184&&_0x107184[_0x358feb(0x1f3,0x1d9)])return _0x107184;var _0x55676f=Object[_0x358feb(0x1e4,0x215)](null);_0x107184&&Object[_0x358feb(0x1a6,0x12c)](_0x107184)[_0x48f5db(0x60,0x46)](function(_0xf893bb){function _0x14eb8f(_0x32fe07,_0x470a63){return _0x48f5db(_0x470a63,_0x32fe07-0x1ba);}function _0x10f343(_0x5487fa,_0x13fafd){return _0x358feb(_0x5487fa-0x29b,_0x13fafd);}if(_0xf893bb!=='default'){var _0x472a88=Object['getOwnPropertyDescriptor'](_0x107184,_0xf893bb);Object[_0x10f343(0x492,0x518)](_0x55676f,_0xf893bb,_0x472a88[_0x10f343(0x45e,0x419)]?_0x472a88:{'enumerable':!![],'get':function(){return _0x107184[_0xf893bb];}});}});function _0x358feb(_0x478dda,_0xc7821c){return _0x3300(_0x478dda-0x138,_0xc7821c);}return _0x55676f[_0x358feb(0x1f6,0x1f0)]=_0x107184,_0x55676f;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x26861d,_0x4f8ba8){const _0x1297dd=_0x26861d*Math[_0x585639(0x359,0x329)](Cesium$2['Math']['toRadians'](_0x4f8ba8));function _0x585639(_0x351adb,_0xb8f5db){return _0x3300(_0xb8f5db-0x24d,_0x351adb);}return _0x1297dd;}function getV(_0x5dda29,_0x19d315){const _0x13f4ed=_0x5dda29*Math[_0x19f8a8(-0x5d,-0x1a)](Cesium$2[_0x532e45(0xa8,0xc8)]['toRadians'](_0x19d315));function _0x532e45(_0x2d5d8a,_0x4bb338){return _0x3300(_0x2d5d8a- -0x7c,_0x4bb338);}function _0x19f8a8(_0x374ef8,_0x46e8f1){return _0x3300(_0x46e8f1- -0x82,_0x374ef8);}return _0x13f4ed;}function getSpeed(_0x11f0fb,_0x5aa561){const _0x18ff23=Math[_0x2d1d1d(-0x2b6,-0x2d9)](Math[_0x2d1d1d(-0x2ba,-0x2e2)](_0x11f0fb,0x2)+Math['pow'](_0x5aa561,0x2));function _0x2d1d1d(_0x3aa6b9,_0x42360d){return _0x3300(_0x3aa6b9- -0x3e4,_0x42360d);}function _0x1b16c4(_0x3071fc,_0xd80fba){return _0x3300(_0xd80fba- -0x341,_0x3071fc);}return _0x18ff23;}function getDirection(_0x648e0d,_0x542cac){let _0x2fbc37=Cesium$2[_0x63fa84(-0x110,-0x14a)]['toDegrees'](Math[_0x1a3e0b(-0x2d4,-0x349)](_0x542cac,_0x648e0d));_0x2fbc37+=_0x2fbc37<0x0?0x168:0x0;function _0x1a3e0b(_0x402f99,_0x58d3ff){return _0x3300(_0x58d3ff- -0x3de,_0x402f99);}function _0x63fa84(_0x4d1365,_0x4f213a){return _0x3300(_0x4d1365- -0x234,_0x4f213a);}return _0x2fbc37;}const _0x2caa87={};_0x2caa87[_0x47b22c(-0x24c,-0x241)]=null,_0x2caa87[_0x47b22c(-0x157,-0x165)]=getU,_0x2caa87[_0x2b8e51(0x33c,0x370)]=getV,_0x2caa87[_0x2b8e51(0x2b4,0x2b5)]=getSpeed,_0x2caa87[_0x47b22c(-0x152,-0x1d9)]=getDirection;var WindUtil=_0x2caa87,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader=_0x47b22c(-0x1fd,-0x206);const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x15f749={};function _0x3bbb9f(_0x5493ee,_0x16bc92){return _0x2b8e51(_0x5493ee,_0x16bc92- -0x1c9);}return _0x15f749[_0x3bbb9f(0xbf,0xfd)]=[calculateSpeedShader],new ShaderSource$1(_0x15f749);}static['getUpdatePositionShader'](){const _0x9b9817={};return _0x9b9817['sources']=[updatePositionShader],new ShaderSource$1(_0x9b9817);}static[_0x2b8e51(0x28a,0x2db)](){const _0x196a10={};return _0x196a10['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x196a10);}static['getSegmentDrawFragmentShader'](){const _0x53010d={};function _0x412365(_0x508884,_0x3842d0){return _0x47b22c(_0x508884-0x274,_0x3842d0);}return _0x53010d[_0x412365(0x58,0xc4)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x53010d);}static[_0x47b22c(-0x241,-0x260)](){const _0x17f5ab={};return _0x17f5ab['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x17f5ab);}}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(_0x452914){this['commandType']=_0x452914[_0x5b726f(0x181,0x1b3)],this['geometry']=_0x452914['geometry'],this['attributeLocations']=_0x452914['attributeLocations'],this['primitiveType']=_0x452914[_0x5b726f(0x157,0x106)],this['uniformMap']=_0x452914['uniformMap']||{},this['vertexShaderSource']=_0x452914[_0x5b726f(0x171,0x197)],this['fragmentShaderSource']=_0x452914[_0x5b726f(0x108,0x101)],this['rawRenderState']=_0x452914[_0x5b726f(0x16c,0x1f3)],this['framebuffer']=_0x452914['framebuffer'],this['outputTexture']=_0x452914['outputTexture'],this[_0x553966(-0x20d,-0x21b)]=_0x452914['autoClear']??![],this['preExecute']=_0x452914[_0x553966(-0x167,-0x1a1)],this[_0x553966(-0x19c,-0x1bc)]=!![],this[_0x553966(-0x23d,-0x22c)]=undefined,this['clearCommand']=undefined;function _0x5b726f(_0x1b0f5f,_0xcf558b){return _0x2b8e51(_0x1b0f5f,_0xcf558b- -0x193);}function _0x553966(_0x47b4f3,_0x4b5864){return _0x47b22c(_0x4b5864- -0x48,_0x47b4f3);}this['isDynamic']=_0x452914['isDynamic']??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x15638d){function _0x117e44(_0x114468,_0x1209fc){return _0x47b22c(_0x114468-0x32f,_0x1209fc);}function _0x36c264(_0x4765a3,_0x947dcc){return _0x2b8e51(_0x947dcc,_0x4765a3- -0x5e9);}if(this[_0x36c264(-0x2a3,-0x301)]==='Draw'){const _0x509ab9={};_0x509ab9['context']=_0x15638d,_0x509ab9[_0x36c264(-0x2a9,-0x23a)]=this[_0x36c264(-0x2a9,-0x272)],_0x509ab9['attributeLocations']=this['attributeLocations'],_0x509ab9['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x3ef1e9=VertexArray$1[_0x117e44(0x170,0x14d)](_0x509ab9),_0x16ecca={};_0x16ecca['context']=_0x15638d,_0x16ecca['vertexShaderSource']=this[_0x36c264(-0x2bf,-0x260)],_0x16ecca[_0x36c264(-0x355,-0x32f)]=this[_0x117e44(0xe1,0x110)],_0x16ecca[_0x117e44(0x11e,0x15f)]=this['attributeLocations'];const _0x350a59=ShaderProgram['fromCache'](_0x16ecca),_0x5b1b74=RenderState['fromCache'](this[_0x36c264(-0x263,-0x2cc)]),_0x167ce1={};return _0x167ce1['owner']=this,_0x167ce1['vertexArray']=_0x3ef1e9,_0x167ce1['primitiveType']=this[_0x36c264(-0x350,-0x308)],_0x167ce1['modelMatrix']=Matrix4['IDENTITY'],_0x167ce1[_0x117e44(0x165,0x150)]=_0x5b1b74,_0x167ce1[_0x117e44(0x11a,0x119)]=_0x350a59,_0x167ce1[_0x36c264(-0x24b,-0x2c0)]=this[_0x36c264(-0x24b,-0x1dd)],_0x167ce1['uniformMap']=this['uniformMap'],_0x167ce1['pass']=Pass$1['OPAQUE'],new DrawCommand(_0x167ce1);}else{if(this['commandType']===_0x36c264(-0x2af,-0x2dd)){const _0x166638={};return _0x166638[_0x117e44(0x1de,0x247)]=this,_0x166638['fragmentShaderSource']=this['fragmentShaderSource'],_0x166638['uniformMap']=this['uniformMap'],_0x166638['outputTexture']=this['outputTexture'],_0x166638[_0x36c264(-0x2a0,-0x268)]=!![],new ComputeCommand(_0x166638);}else throw new Error(_0x36c264(-0x338,-0x312));}}['setGeometry'](_0x2519d8,_0x17f0f5){this['geometry']=_0x17f0f5;function _0x8ff98f(_0x36b1cd,_0x8900b){return _0x47b22c(_0x36b1cd-0x664,_0x8900b);}function _0x439e37(_0x2cd259,_0x1e3582){return _0x47b22c(_0x1e3582-0x200,_0x2cd259);}defined(this[_0x439e37(-0x67,0x1c)])&&(this[_0x8ff98f(0x480,0x49a)][_0x439e37(0x29,0x40)]=VertexArray$1['fromGeometry']({'context':_0x2519d8,'geometry':this['geometry'],'attributeLocations':this[_0x8ff98f(0x453,0x455)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x5b772c){function _0x1b361d(_0xe5c082,_0x731819){return _0x47b22c(_0x731819- -0x59,_0xe5c082);}if(!this[_0x1b361d(-0x24f,-0x1d7)]())return;if(!this['show']||!defined(_0x5b772c))return;!defined(this[_0x1e1773(0x1d4,0x24f)])&&(this['commandToExecute']=this[_0x1e1773(0x2a0,0x2c6)](_0x5b772c[_0x1e1773(0x2b7,0x2c5)]));function _0x1e1773(_0x3cb0f8,_0xb99c21){return _0x2b8e51(_0x3cb0f8,_0xb99c21- -0xaf);}defined(this[_0x1b361d(-0x16f,-0x1b2)])&&this['preExecute']();if(!_0x5b772c[_0x1b361d(-0x155,-0x1dc)]){console['warn']('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x5b772c['commandList']['push'](this['clearCommand']),defined(this['commandToExecute'])&&_0x5b772c[_0x1b361d(-0x24c,-0x1dc)][_0x1e1773(0x32b,0x2e3)](this[_0x1e1773(0x241,0x24f)]);}[_0x2b8e51(0x303,0x33e)](){return![];}['destroy'](){function _0x1ed6bc(_0x11f3d9,_0x5f2ddc){return _0x2b8e51(_0x11f3d9,_0x5f2ddc- -0x1b4);}function _0x5b1d4f(_0x143f7c,_0x4b3db9){return _0x47b22c(_0x4b3db9-0x1ed,_0x143f7c);}if(defined(this['commandToExecute'])){var _0x1587d8;(_0x1587d8=this['commandToExecute'][_0x1ed6bc(0x15b,0x119)])===null||_0x1587d8===void 0x0||_0x1587d8['destroy'](),this[_0x1ed6bc(0x122,0x14a)][_0x5b1d4f(-0x54,-0x28)]=undefined;}return destroyObject(this);}}function deepMerge(_0x14d95a,_0x3fceae){if(!_0x14d95a)return _0x3fceae;if(!_0x3fceae)return _0x14d95a;const _0x5cade4={..._0x3fceae},_0xe07373=_0x5cade4;function _0x414f11(_0x5badbe,_0x530b91){return _0x2b8e51(_0x5badbe,_0x530b91- -0x599);}for(const _0x3d0f61 in _0x14d95a){if(Object['prototype']['hasOwnProperty'][_0x414f11(-0x23f,-0x206)](_0x14d95a,_0x3d0f61)){const _0x5837e6=_0x14d95a[_0x3d0f61],_0x3d24b3=_0x3fceae[_0x3d0f61];if(Array['isArray'](_0x5837e6)){_0xe07373[_0x3d0f61]=_0x5837e6['slice']();continue;}if(_0x5837e6&&typeof _0x5837e6==='object'){_0xe07373[_0x3d0f61]=deepMerge(_0x5837e6,_0x3d24b3||{});continue;}_0x5837e6!==undefined&&(_0xe07373[_0x3d0f61]=_0x5837e6);}}return _0xe07373;}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[_0x47b22c(-0x1d9,-0x15a)];class WindParticlesComputing{constructor(_0x4a2e07,_0x261032,_0x2d3f5b,_0x42ddec,_0x4c7997){this['context']=_0x4a2e07,this[_0x4a5493(0x1bf,0x1a4)]=_0x2d3f5b,this[_0x4a5493(0x1e5,0x1c6)]=_0x42ddec,this['windData']=_0x261032,this[_0x20f933(0x2a4,0x30b)]=0x3c,this['frameRateAdjustment']=0x1;const _0x1d89eb={};_0x1d89eb[_0x4a5493(0x23d,0x1c2)]=_0x4c7997,_0x1d89eb['samplingWindow']=0x1,_0x1d89eb['quietPeriod']=0x0;function _0x20f933(_0x4aef53,_0x50075b){return _0x2b8e51(_0x4aef53,_0x50075b- -0x45);}function _0x4a5493(_0x543971,_0x341f14){return _0x47b22c(_0x341f14-0x357,_0x543971);}this[_0x20f933(0x225,0x26d)]=new FrameRateMonitor(_0x1d89eb),this[_0x4a5493(0xf6,0x112)](),this['createWindTextures'](),this[_0x20f933(0x233,0x266)](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x4a17ba=()=>{function _0x517286(_0x21675d,_0x58ba8b){return _0x3300(_0x21675d- -0x312,_0x58ba8b);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math[_0x517286(-0x1ba,-0x136)](this['frameRate'],0x1));};_0x4a17ba();const _0x323482=setInterval(_0x4a17ba,0x3e8),_0x424e56=this['destroy']['bind'](this);function _0x1068d0(_0x4192c8,_0x174786){return _0x47b22c(_0x4192c8-0x4cf,_0x174786);}this[_0x1068d0(0x2d5,0x251)]=()=>{clearInterval(_0x323482),_0x424e56();};}['createWindTextures'](){function _0x6af672(_0xccd55,_0x391add){return _0x47b22c(_0xccd55-0x1c6,_0x391add);}const _0x5085ce={};_0x5085ce['minificationFilter']=TextureMinificationFilter$1[_0x6af672(0xc,-0x30)];function _0x4c5a3c(_0x1bf5c8,_0x25ead6){return _0x2b8e51(_0x1bf5c8,_0x25ead6- -0x195);}_0x5085ce[_0x4c5a3c(0x1e3,0x16f)]=TextureMagnificationFilter$1['LINEAR'];const _0x522ead={'context':this[_0x6af672(0x58,0x28)],'width':this['windData']['width'],'height':this[_0x6af672(0x3c,0x22)]['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x6af672(0x13,-0x3f)][_0x4c5a3c(0x13c,0x109)]??![],'sampler':new Sampler$1(_0x5085ce)};this['windTextures']={'U':new Texture$1({..._0x522ead,'source':{'arrayBufferView':new Float32Array(this[_0x6af672(0x3c,0x67)]['u']['array'])}}),'V':new Texture$1({..._0x522ead,'source':{'arrayBufferView':new Float32Array(this[_0x4c5a3c(0x16e,0x1c3)]['v'][_0x4c5a3c(0xbe,0xfc)])}})};}[_0x2b8e51(0x2d1,0x2ab)](){function _0x23fd9b(_0x1ea130,_0x1e05e5){return _0x47b22c(_0x1ea130-0x34,_0x1e05e5);}const _0x4fcfe2={};function _0x51ac18(_0x35c2a1,_0x4ed4e3){return _0x2b8e51(_0x4ed4e3,_0x35c2a1-0x196);}_0x4fcfe2['minificationFilter']=TextureMinificationFilter$1[_0x23fd9b(-0x138,-0x11a)],_0x4fcfe2[_0x23fd9b(-0x1aa,-0x1cb)]=TextureMagnificationFilter$1[_0x51ac18(0x50c,0x4b9)];const _0x267517={'context':this[_0x51ac18(0x50a,0x55c)],'width':this['options']['particlesTextureSize'],'height':this[_0x23fd9b(-0x17f,-0x114)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options'][_0x23fd9b(-0x204,-0x1bd)]*0x4)[_0x51ac18(0x4a1,0x49c)](0x0)},'sampler':new Sampler$1(_0x4fcfe2)};this[_0x51ac18(0x52f,0x52b)]={'previousParticlesPosition':new Texture$1(_0x267517),'currentParticlesPosition':new Texture$1(_0x267517),'nextParticlesPosition':new Texture$1(_0x267517),'postProcessingPosition':new Texture$1(_0x267517),'particlesSpeed':new Texture$1(_0x267517)};}[_0x47b22c(-0x23d,-0x1c6)](){function _0x5d15d7(_0x4e8881,_0x158d57){return _0x2b8e51(_0x4e8881,_0x158d57-0x100);}function _0x23df8d(_0x2f0c41,_0x1df067){return _0x47b22c(_0x1df067-0x2fc,_0x2f0c41);}Object[_0x5d15d7(0x42a,0x3f8)](this[_0x23df8d(0x150,0x1b3)])['forEach'](_0x38cab9=>_0x38cab9['destroy']());}['createComputingPrimitives'](){function _0x12c4bc(_0xc2021b,_0x21e41c){return _0x47b22c(_0x21e41c- -0x7a,_0xc2021b);}function _0xb61b23(_0x4170b7,_0x322460){return _0x2b8e51(_0x322460,_0x4170b7- -0x388);}this[_0x12c4bc(-0x1e2,-0x200)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0xb61b23(-0xd5,-0x136)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this[_0x12c4bc(-0x230,-0x204)]['u']['max']),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this['windData']['v'][_0xb61b23(-0xc,0x3d)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed'][_0x12c4bc(-0x327,-0x2a2)],this[_0xb61b23(-0x30,0x59)][_0xb61b23(-0x17,-0x88)][_0x12c4bc(-0x1c0,-0x1e0)]),'currentParticlesPosition':()=>this[_0xb61b23(0x11,-0x7a)]['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x2d284a(_0x3a047a,_0x2d0847){return _0x12c4bc(_0x2d0847,_0x3a047a-0x29c);}function _0x2e40ed(_0x3bac05,_0x24715a){return _0x12c4bc(_0x3bac05,_0x24715a-0x53e);}return(this[_0x2d284a(0x91,0xf6)]['pixelSize']+0x32)*this[_0x2e40ed(0x331,0x311)]['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData'][_0x12c4bc(-0x226,-0x29d)],this[_0xb61b23(-0x30,0x4e)]['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0x12c4bc(-0x1a8,-0x1da)],this['windData'][_0x12c4bc(-0x1b8,-0x242)]['south']),'maximum':()=>new Cartesian2$1(this[_0xb61b23(-0x30,0x2c)]['bounds'][_0x12c4bc(-0x261,-0x257)],this['windData'][_0x12c4bc(-0x1d3,-0x242)][_0x12c4bc(-0x27b,-0x24c)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x12c4bc(-0x1b1,-0x1c3)][_0x12c4bc(-0x261,-0x1f4)],'preExecute':()=>{const _0x43a40a=this['particlesTextures'][_0x5026c4(0x4b6,0x46e)];this['particlesTextures']['previousParticlesPosition']=this[_0x5026c4(0x4f8,0x519)]['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this[_0x5026c4(0x49c,0x519)][_0x5026c4(0x4c2,0x476)];function _0x5026c4(_0x5a799a,_0x376708){return _0xb61b23(_0x376708-0x508,_0x5a799a);}function _0x474f5a(_0x9616d,_0x2b27b6){return _0x12c4bc(_0x2b27b6,_0x9616d-0x695);}this['particlesTextures'][_0x474f5a(0x42f,0x4a3)]=_0x43a40a,this['primitives']['calculateSpeed']['commandToExecute']&&(this[_0x474f5a(0x495,0x436)]['calculateSpeed'][_0x474f5a(0x437,0x3da)]['outputTexture']=this[_0x5026c4(0x54c,0x519)]['particlesSpeed']);},'isDynamic':()=>this['options'][_0x12c4bc(-0x223,-0x237)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x12c4bc(-0x283,-0x24a)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager[_0xb61b23(-0x2e,0x15)](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x1dd09b(_0x3a783b,_0x2a9e35){return _0x12c4bc(_0x3a783b,_0x2a9e35-0x133);}function _0x137c60(_0x41a263,_0xd12f7d){return _0xb61b23(_0x41a263-0x241,_0xd12f7d);}this[_0x1dd09b(-0xbd,-0xcd)]['updatePosition']['commandToExecute']&&(this['primitives']['updatePosition']['commandToExecute'][_0x1dd09b(-0xa7,-0xd6)]=this[_0x137c60(0x252,0x217)][_0x137c60(0x236,0x216)]);},'isDynamic':()=>this['options'][_0xb61b23(-0x63,-0x89)]}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x12c4bc(-0x19f,-0x222),'uniformMap':{'nextParticlesPosition':()=>this[_0x12c4bc(-0x1fe,-0x1c3)]['nextParticlesPosition'],'particlesSpeed':()=>this[_0xb61b23(0x11,0x63)][_0xb61b23(-0x20,-0x77)],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0xb61b23(-0x30,-0x5d)]['bounds']['west'],this['windData']['bounds'][_0x12c4bc(-0x2d0,-0x257)]),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds'][_0x12c4bc(-0x286,-0x283)],this['windData']['bounds']['north']),'randomCoefficient':function(){function _0x54b0ba(_0x4f34a4,_0x385cf6){return _0xb61b23(_0x385cf6- -0xd4,_0x4f34a4);}return Math[_0x54b0ba(-0x18d,-0x17e)]();},'dropRate':()=>this['options'][_0x12c4bc(-0x221,-0x29f)],'dropRateBump':()=>this[_0x12c4bc(-0x1c9,-0x22d)][_0x12c4bc(-0x23a,-0x29b)],'useViewerBounds':()=>this[_0x12c4bc(-0x292,-0x22d)][_0xb61b23(-0x6f,-0x9a)]},'fragmentShaderSource':ShaderManager[_0x12c4bc(-0x2e9,-0x2bb)](),'outputTexture':this[_0x12c4bc(-0x22b,-0x1c3)]['postProcessingPosition'],'preExecute':()=>{function _0x3286a3(_0x273190,_0x445941){return _0xb61b23(_0x445941-0x4e4,_0x273190);}function _0x12d0cd(_0x2255ba,_0x1e30c4){return _0xb61b23(_0x2255ba-0x380,_0x1e30c4);}this[_0x12d0cd(0x354,0x2d4)]['postProcessingPosition']['commandToExecute']&&(this[_0x3286a3(0x4c4,0x4b8)]['postProcessingPosition']['commandToExecute'][_0x3286a3(0x501,0x4af)]=this[_0x12d0cd(0x391,0x3f1)][_0x3286a3(0x44c,0x452)]);},'isDynamic':()=>this[_0xb61b23(-0x59,-0xda)]['dynamic']})};}['reCreateWindTextures'](){function _0xbfa9e6(_0x15450f,_0x4c1898){return _0x2b8e51(_0x15450f,_0x4c1898-0xc0);}function _0x2ae23c(_0x902a52,_0x344dbe){return _0x47b22c(_0x344dbe-0x48,_0x902a52);}this['windTextures']['U'][_0xbfa9e6(0x377,0x3a8)](),this[_0xbfa9e6(0x3d1,0x373)]['V']['destroy'](),this[_0x2ae23c(-0x12e,-0x198)]();}['updateWindData'](_0x17a44c){function _0x5b94eb(_0x1d23fc,_0x4fa4ea){return _0x2b8e51(_0x1d23fc,_0x4fa4ea- -0xd);}this['windData']=_0x17a44c,this[_0x5b94eb(0x203,0x28d)]();}[_0x47b22c(-0x234,-0x260)](_0x30c8ce){const _0x577e26=_0x30c8ce['flipY']!==undefined&&_0x30c8ce['flipY']!==this[_0x3f38e8(-0x232,-0x227)]['flipY'];this['options']=deepMerge(_0x30c8ce,this['options']);function _0x3f38e8(_0x4144a2,_0x2ebfc6){return _0x47b22c(_0x4144a2- -0x7f,_0x2ebfc6);}_0x577e26&&this['reCreateWindTextures']();}['processWindData'](_0x4a77c4){const {array:_0x45deaf}=_0x4a77c4;let {min:_0x5bddea,max:_0x148418}=_0x4a77c4;function _0x2ca8f6(_0x43d5c8,_0xc783e6){return _0x47b22c(_0x43d5c8-0x53f,_0xc783e6);}function _0x489029(_0x59e439,_0x2645d0){return _0x47b22c(_0x2645d0- -0xea,_0x59e439);}const _0x2f5754=new Float32Array(_0x45deaf['length']);_0x5bddea===undefined&&(console['warn'](_0x489029(-0x2d5,-0x2e1)),_0x5bddea=Math['min'](..._0x45deaf));_0x148418===undefined&&(console[_0x2ca8f6(0x364,0x300)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x148418=Math['max'](..._0x45deaf));const _0x3698a1=Math['max'](Math['abs'](_0x5bddea),Math[_0x2ca8f6(0x306,0x319)](_0x148418));for(let _0x5245c8=0x0;_0x5245c8<_0x45deaf['length'];_0x5245c8++){const _0xeb6397=_0x45deaf[_0x5245c8]/_0x3698a1;_0x2f5754[_0x5245c8]=_0xeb6397;}return _0x2f5754;}[_0x2b8e51(0x300,0x2e8)](){Object['values'](this['windTextures'])['forEach'](_0x3f76cc=>_0x3f76cc['destroy']()),Object['values'](this['particlesTextures'])['forEach'](_0x36bf83=>_0x36bf83[_0x2eeeba(-0x6f,-0xe9)]()),Object[_0x2eeeba(-0x81,-0xd9)](this[_0x2eeeba(-0x8d,-0x75)])['forEach'](_0xce387f=>_0xce387f['destroy']());function _0x58ca41(_0x3c84ae,_0x5c641b){return _0x2b8e51(_0x3c84ae,_0x5c641b- -0x178);}function _0x2eeeba(_0x4907a8,_0x5b15cc){return _0x2b8e51(_0x4907a8,_0x5b15cc- -0x3d1);}this[_0x58ca41(0xaf,0x13a)][_0x58ca41(0x12f,0x170)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x47b22c(-0x1d9,-0x1d3)];class WindParticlesRendering{constructor(_0x3a5347,_0x4cf937,_0x439595,_0x30a6f3){this['context']=_0x3a5347,this['options']=_0x4cf937,this['viewerParameters']=_0x439595;function _0x13de9d(_0x538506,_0x21c604){return _0x2b8e51(_0x538506,_0x21c604-0x5a);}this['computing']=_0x30a6f3;(typeof this[_0x13de9d(0x373,0x389)]['particlesTextureSize']!=='number'||this['options'][_0x13de9d(0x2e7,0x304)]<=0x0)&&(console[_0x51a96d(0x1ee,0x1b7)](_0x51a96d(0x102,0x130)),this['options']['particlesTextureSize']=0x100);this['colorTable']=this[_0x13de9d(0x2cf,0x2fe)](),this['textures']=this['createRenderingTextures']();function _0x51a96d(_0x2dfcca,_0x208adf){return _0x2b8e51(_0x208adf,_0x2dfcca- -0x19e);}this[_0x51a96d(0x1dc,0x1e7)]=this['createRenderingFramebuffers'](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x5c7f85={};_0x5c7f85[_0x45168f(0xec,0x105)]=this[_0x3d7edf(-0x18e,-0x1b2)];function _0x3d7edf(_0x2ad102,_0x360381){return _0x47b22c(_0x360381- -0x44,_0x2ad102);}_0x5c7f85[_0x3d7edf(-0x2d7,-0x267)]=this['context']['drawingBufferWidth'],_0x5c7f85['height']=this['context']['drawingBufferHeight'],_0x5c7f85['pixelFormat']=PixelFormat['RGBA'],_0x5c7f85['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x385802=_0x5c7f85,_0x1d4fa0={};_0x1d4fa0[_0x45168f(0xec,0x14c)]=this[_0x45168f(0xec,0x81)],_0x1d4fa0['width']=this['context'][_0x45168f(0x112,0xc3)],_0x1d4fa0[_0x45168f(0x82,0x77)]=this['context']['drawingBufferHeight'];function _0x45168f(_0x5fd889,_0x552f6f){return _0x47b22c(_0x5fd889-0x25a,_0x552f6f);}_0x1d4fa0['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x1d4fa0['pixelDatatype']=PixelDatatype[_0x3d7edf(-0x1ad,-0x20f)];const _0x4ef1f1=_0x1d4fa0;return{'segmentsColor':new Texture(_0x385802),'segmentsDepth':new Texture(_0x4ef1f1)};}[_0x2b8e51(0x269,0x2c2)](){const _0x5108d2={};_0x5108d2['context']=this['context'];function _0x8aa77a(_0x255e76,_0x3ccb22){return _0x2b8e51(_0x255e76,_0x3ccb22- -0x3a8);}_0x5108d2[_0x22e442(0x403,0x3af)]=[this[_0x22e442(0x50c,0x4cb)][_0x8aa77a(-0xf7,-0x119)]];function _0x22e442(_0x50a9ed,_0x2de69f){return _0x2b8e51(_0x2de69f,_0x50a9ed-0x178);}return _0x5108d2['depthTexture']=this['textures'][_0x8aa77a(0x20,-0x11)],{'segments':new Framebuffer(_0x5108d2)};}['destoryRenderingFramebuffers'](){function _0x395115(_0x493900,_0xdf3bd0){return _0x47b22c(_0x493900- -0x9d,_0xdf3bd0);}Object['values'](this['framebuffers'])[_0x395115(-0x2a5,-0x2cf)](_0x2dcea7=>{function _0x304c67(_0x4d4040,_0x22c807){return _0x395115(_0x22c807-0x481,_0x4d4040);}_0x2dcea7[_0x304c67(0x18f,0x1ea)]();});}['createColorTableTexture'](){const _0x50f95a=new Float32Array(this['options'][_0x1d1a91(0x579,0x533)][_0x1d1a91(0x4fa,0x536)](_0x64e49b=>{function _0x4d51f1(_0x22cbac,_0x20c489){return _0x3b811c(_0x20c489- -0x202,_0x22cbac);}const _0x29bedf=Color$1['fromCssColorString'](_0x64e49b);function _0xe043b9(_0x120cdb,_0x237a24){return _0x1d1a91(_0x237a24,_0x120cdb- -0x52f);}return[_0x29bedf[_0xe043b9(-0x67,-0x25)],_0x29bedf['green'],_0x29bedf[_0xe043b9(-0xa0,-0x70)],_0x29bedf['alpha']];})),_0x4d889e={};_0x4d889e['minificationFilter']=TextureMinificationFilter[_0x3b811c(0x15,0x37)],_0x4d889e[_0x3b811c(-0xf,-0x3)]=TextureMagnificationFilter['LINEAR'],_0x4d889e[_0x1d1a91(0x4e6,0x4f5)]=TextureWrap['CLAMP_TO_EDGE'];function _0x3b811c(_0x219ed2,_0x373a1a){return _0x2b8e51(_0x373a1a,_0x219ed2- -0x313);}_0x4d889e[_0x3b811c(-0x20,0x46)]=TextureWrap[_0x3b811c(0x77,0x30)];function _0x1d1a91(_0x4eb402,_0x568ae6){return _0x2b8e51(_0x4eb402,_0x568ae6-0x1b3);}return new Texture({'context':this['context'],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x4d889e),'source':{'width':this[_0x1d1a91(0x4d9,0x4e2)]['colors']['length'],'height':0x1,'arrayBufferView':_0x50f95a}});}['createSegmentsGeometry'](){const _0x38a2be=0x4,_0x595d87=this[_0x3b70e5(0x4d3,0x548)][_0x43e09d(0x137,0x1a7)];let _0x5746d5=[];for(let _0x2a888d=0x0;_0x2a888d<_0x595d87;_0x2a888d++){for(let _0x1c2d88=0x0;_0x1c2d88<_0x595d87;_0x1c2d88++){for(let _0x434bf9=0x0;_0x434bf9<_0x38a2be;_0x434bf9++){_0x5746d5['push'](_0x2a888d/_0x595d87),_0x5746d5['push'](_0x1c2d88/_0x595d87);}}}function _0x43e09d(_0x1a872d,_0x5910c6){return _0x47b22c(_0x5910c6-0x3df,_0x1a872d);}_0x5746d5=new Float32Array(_0x5746d5);const _0x59f17a=this['options']['particlesTextureSize']**0x2;let _0x4bd112=[];for(let _0x31d72b=0x0;_0x31d72b<_0x59f17a;_0x31d72b++){_0x4bd112['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x4bd112=new Float32Array(_0x4bd112);let _0x10cc3b=[];for(let _0x30dbcd=0x0,_0x36a2de=0x0;_0x30dbcd<_0x59f17a;_0x30dbcd++){_0x10cc3b['push'](_0x36a2de+0x0,_0x36a2de+0x1,_0x36a2de+0x2,_0x36a2de+0x2,_0x36a2de+0x1,_0x36a2de+0x3),_0x36a2de+=_0x38a2be;}_0x10cc3b=new Uint32Array(_0x10cc3b);const _0x11f9fa={};_0x11f9fa[_0x43e09d(0x1f6,0x25d)]=ComponentDatatype['FLOAT'],_0x11f9fa[_0x3b70e5(0x43c,0x483)]=0x2;function _0x3b70e5(_0x3c3693,_0x4cad88){return _0x47b22c(_0x3c3693-0x686,_0x4cad88);}_0x11f9fa['values']=_0x5746d5;const _0x345249={};_0x345249['componentDatatype']=ComponentDatatype['FLOAT'],_0x345249['componentsPerAttribute']=0x3,_0x345249[_0x3b70e5(0x49c,0x447)]=_0x4bd112;const _0x33c081=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x11f9fa),'normal':new GeometryAttribute(_0x345249)}),'indices':_0x10cc3b});return _0x33c081;}['createRawRenderState'](_0x5dbdd7){const _0x2eb865={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x5dbdd7};function _0x3c2d48(_0x2a3c32,_0x3e97b8){return _0x2b8e51(_0x2a3c32,_0x3e97b8-0xee);}return Appearance[_0x3c2d48(0x4b2,0x433)](!![],![],_0x2eb865);}[_0x2b8e51(0x310,0x2b6)](){const _0x1a7fcd={};function _0x4298ad(_0x22ff86,_0x13da83){return _0x47b22c(_0x13da83-0x1ad,_0x22ff86);}_0x1a7fcd['st']=0x0,_0x1a7fcd['normal']=0x1;const _0x2b5490={};_0x2b5490[_0x523665(0x3b2,0x3e0)]=!![];const _0x37a0c1={};_0x37a0c1['enabled']=!![],_0x37a0c1[_0x4298ad(0x27,-0x4c)]=WebGLRenderingContext['FUNC_ADD'],_0x37a0c1['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x37a0c1['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x36bf0c={};_0x36bf0c['viewport']=undefined,_0x36bf0c[_0x4298ad(-0x61,-0x8e)]=_0x2b5490,_0x36bf0c[_0x523665(0x428,0x3a1)]=!![],_0x36bf0c['blending']=_0x37a0c1;const _0x4464e3=new CustomPrimitive({'commandType':_0x4298ad(-0xec,-0x63),'attributeLocations':_0x1a7fcd,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0x4298ad(-0x54,-0x8)],'uniformMap':{'previousParticlesPosition':()=>this[_0x4298ad(-0x2e,0xf)][_0x523665(0x480,0x44e)][_0x4298ad(-0x5d,-0x47)],'currentParticlesPosition':()=>this[_0x523665(0x3cc,0x3f9)]['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this['computing']['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this[_0x4298ad(0x6f,0xf)]['particlesTextures'][_0x4298ad(0x6b,0x33)],'frameRateAdjustment':()=>this['computing'][_0x523665(0x37d,0x3ff)],'colorTable':()=>this[_0x4298ad(-0x3c,-0xa7)],'domain':()=>{var _0x358209,_0x4ceae2;function _0x3a081(_0x2fc305,_0x140b3e){return _0x4298ad(_0x140b3e,_0x2fc305-0x2ca);}const _0x220220=new Cartesian2(((_0x358209=this[_0x3a081(0x2c4,0x2a6)][_0x3a081(0x2d6,0x303)])===null||_0x358209===void 0x0?void 0x0:_0x358209['min'])??this['computing'][_0xc205e5(0x1a8,0x1c7)]['speed'][_0xc205e5(0x198,0x129)],((_0x4ceae2=this['options']['domain'])===null||_0x4ceae2===void 0x0?void 0x0:_0x4ceae2[_0x3a081(0x311,0x302)])??this[_0xc205e5(0x190,0x1b3)]['windData'][_0x3a081(0x306,0x391)][_0x3a081(0x311,0x2fc)]);function _0xc205e5(_0x47443b,_0x710291){return _0x523665(_0x47443b,_0x710291- -0x246);}return _0x220220;},'displayRange':()=>{function _0x2a3d71(_0x25d0e0,_0x517d19){return _0x4298ad(_0x517d19,_0x25d0e0- -0x115);}var _0x16161d,_0x398bbc;function _0x2f8eb3(_0xfc91f6,_0x757a0){return _0x523665(_0x757a0,_0xfc91f6- -0x290);}const _0x5ec25f=new Cartesian2(((_0x16161d=this['options'][_0x2a3d71(-0xbd,-0x3e)])===null||_0x16161d===void 0x0?void 0x0:_0x16161d[_0x2f8eb3(0xdf,0x150)])??this['computing'][_0x2f8eb3(0x17d,0x19e)][_0x2a3d71(-0xd9,-0x66)]['min'],((_0x398bbc=this[_0x2f8eb3(0x154,0xf3)][_0x2f8eb3(0x1b2,0x20c)])===null||_0x398bbc===void 0x0?void 0x0:_0x398bbc['max'])??this[_0x2a3d71(-0x106,-0x13a)][_0x2f8eb3(0x17d,0x147)]['speed']['max']);return _0x5ec25f;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this[_0x523665(0x467,0x429)]['drawingBufferWidth']/this[_0x523665(0x479,0x429)]['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{const _0x416cd4={};_0x416cd4['min']=0x1,_0x416cd4['max']=0x2;const _0x277d3f=this['options']['lineWidth']||_0x416cd4;return new Cartesian2(_0x277d3f['min'],_0x277d3f['max']);},'lineLength':()=>{const _0x58b7c7={};_0x58b7c7['min']=0x14,_0x58b7c7['max']=0x64;const _0x5de82f=this['options']['lineLength']||_0x58b7c7;return new Cartesian2(_0x5de82f['min'],_0x5de82f['max']);},'is3D':()=>this['viewerParameters'][_0x4298ad(-0xa6,-0x3b)]===SceneMode[_0x4298ad(-0x44,0x31)],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x36bf0c)}),_0x3788f9={};function _0x523665(_0x3c4e1d,_0x4de7de){return _0x2b8e51(_0x3c4e1d,_0x4de7de-0xb5);}return _0x3788f9['segments']=_0x4464e3,_0x3788f9;}[_0x47b22c(-0x1f2,-0x24f)](){const _0x1023a0=this[_0x1b4fb0(0x126,0xca)]();this[_0x2dd537(0x199,0x1e5)][_0x1b4fb0(0x17b,0x188)][_0x2dd537(0x17d,0x11f)]=_0x1023a0;const _0x46c012={};function _0x2dd537(_0x13ba09,_0x1d3a8f){return _0x47b22c(_0x13ba09-0x31f,_0x1d3a8f);}function _0x1b4fb0(_0x428c14,_0x360c08){return _0x47b22c(_0x428c14-0x341,_0x360c08);}_0x46c012[_0x1b4fb0(0x1d3,0x1d9)]=this['context'],_0x46c012['geometry']=_0x1023a0,_0x46c012['attributeLocations']=this[_0x1b4fb0(0x1bb,0x221)]['segments']['attributeLocations'],_0x46c012['bufferUsage']=BufferUsage[_0x1b4fb0(0x17e,0xfa)];const _0x41dcb4=VertexArray['fromGeometry'](_0x46c012);this['primitives']['segments']['commandToExecute']&&(this['primitives']['segments']['commandToExecute']['vertexArray']=_0x41dcb4);}['onColorTableChange'](){this['colorTable']['destroy']();function _0x927dec(_0x322854,_0x4dbd56){return _0x47b22c(_0x4dbd56-0x65b,_0x322854);}function _0x55a753(_0x4f6f9a,_0x462b64){return _0x47b22c(_0x4f6f9a-0x214,_0x462b64);}this[_0x55a753(-0x40,0x3d)]=this[_0x55a753(-0x2a,-0x1d)]();}[_0x2b8e51(0x249,0x2ae)](_0x13aac1){const _0x5c21f6=_0x13aac1['colors']&&JSON['stringify'](_0x13aac1[_0x3248f0(-0xb3,-0x100)])!==JSON[_0x3248f0(-0xd8,-0x8a)](this[_0x5d30ff(-0x94,-0xa9)][_0x5d30ff(-0x43,-0xad)]);function _0x5d30ff(_0x11c96a,_0x4f012d){return _0x2b8e51(_0x4f012d,_0x11c96a- -0x3c3);}this['options']=deepMerge(_0x13aac1,this[_0x3248f0(-0x104,-0x81)]);function _0x3248f0(_0x5b75c6,_0x1add4c){return _0x47b22c(_0x5b75c6-0xaf,_0x1add4c);}_0x5c21f6&&this['onColorTableChange']();}[_0x47b22c(-0x1fa,-0x25d)](){Object['values'](this[_0x508d2b(0x2fd,0x27e)])['forEach'](_0x2a6804=>{function _0x4013ba(_0x4cc2b8,_0x4afaf1){return _0x508d2b(_0x4cc2b8-0x33,_0x4afaf1);}_0x2a6804[_0x4013ba(0x29e,0x2bd)]();});function _0x508d2b(_0x4a3604,_0x339e90){return _0x47b22c(_0x4a3604-0x465,_0x339e90);}Object['values'](this[_0x16ad0c(0x21e,0x288)])['forEach'](_0x2d1738=>{_0x2d1738['destroy']();});function _0x16ad0c(_0x50c78a,_0x31abcf){return _0x2b8e51(_0x31abcf,_0x50c78a- -0x13e);}this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x3b1ddb,_0x37ed6e,_0xb81cb1,_0x454f1b,_0x2086ca){function _0x260e98(_0x2c6be2,_0x3029cb){return _0x47b22c(_0x3029cb- -0x77,_0x2c6be2);}this['context']=_0x3b1ddb;function _0x2622ff(_0xfcfe53,_0x2d071b){return _0x47b22c(_0x2d071b-0x13b,_0xfcfe53);}this['options']=_0xb81cb1,this[_0x2622ff(-0xb,-0x56)]=_0x454f1b,this[_0x260e98(-0x20e,-0x215)]=new WindParticlesComputing(_0x3b1ddb,_0x37ed6e,_0xb81cb1,_0x454f1b,_0x2086ca),this['rendering']=new WindParticlesRendering(_0x3b1ddb,_0xb81cb1,_0x454f1b,this['computing']),this['clearFramebuffers']();}['getPrimitives'](){function _0x33420f(_0x4ca985,_0x1ec45d){return _0x2b8e51(_0x4ca985,_0x1ec45d-0x160);}const _0x2aaf41=[this['computing']['primitives']['calculateSpeed'],this['computing']['primitives'][_0x33420f(0x475,0x3fb)],this['computing']['primitives'][_0x33420f(0x444,0x456)],this['rendering'][_0x1f73f5(0x171,0x18e)][_0x1f73f5(0x131,0x16a)]];function _0x1f73f5(_0x5ce29b,_0xcffb76){return _0x47b22c(_0x5ce29b-0x2f7,_0xcffb76);}return _0x2aaf41;}[_0x47b22c(-0x1ab,-0x1b6)](){const _0x5e5726=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x71b397(_0x13f997,_0x2ebb99){return _0x47b22c(_0x2ebb99-0x593,_0x13f997);}Object[_0x71b397(0x327,0x343)](this['rendering']['framebuffers'])['forEach'](_0x45ce33=>{function _0x4edc63(_0x141a09,_0x5841ce){return _0x71b397(_0x141a09,_0x5841ce- -0x2e5);}function _0x3d998e(_0x3eae75,_0x4142bb){return _0x71b397(_0x4142bb,_0x3eae75- -0x643);}_0x5e5726[_0x4edc63(0x1a1,0x16a)]=this[_0x4edc63(0x137,0xff)][_0x4edc63(0xd5,0x146)][_0x45ce33],_0x5e5726[_0x4edc63(0x15d,0x113)](this[_0x3d998e(-0x21e,-0x1b9)]);});}['changeOptions'](_0x109ba4){let _0x46dc4a=![];_0x109ba4[_0x50a059(0x3a8,0x356)]&&this['options']['particlesTextureSize']!==_0x109ba4['particlesTextureSize']&&(_0x46dc4a=!![]);const _0x22f7ff=deepMerge(_0x109ba4,this['options']);function _0x4a1c2f(_0x4998f2,_0x3981a0){return _0x47b22c(_0x4998f2-0x4af,_0x3981a0);}if(_0x22f7ff['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x22f7ff,this[_0x50a059(0x431,0x46b)]['updateOptions'](_0x109ba4);function _0x50a059(_0x5c122b,_0x49d35a){return _0x47b22c(_0x5c122b-0x5e0,_0x49d35a);}this['computing'][_0x4a1c2f(0x27b,0x294)](_0x109ba4),_0x46dc4a&&(this['computing']['destroyParticlesTextures'](),this['computing'][_0x50a059(0x3a9,0x3ed)](),this[_0x50a059(0x431,0x40d)][_0x4a1c2f(0x2bd,0x2e1)]());}['applyViewerParameters'](_0x5c2827){function _0x8e1043(_0x2594f7,_0x50c824){return _0x47b22c(_0x50c824-0x104,_0x2594f7);}this['viewerParameters']=_0x5c2827,this['computing']['viewerParameters']=_0x5c2827,this['rendering'][_0x8e1043(-0x7d,-0x8d)]=_0x5c2827;}[_0x47b22c(-0x1fa,-0x1ad)](){this['computing']['destroy'](),this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x2b8e51(0x34b,0x2f1)],_0x3f5752={};_0x3f5752[_0x2b8e51(0x24b,0x2ba)]=0x1,_0x3f5752['max']=0x2;const _0x53835d={};_0x53835d[_0x47b22c(-0x228,-0x1d5)]=0x14,_0x53835d['max']=0x64;const _0x580b68={};function _0x461c(){const _0x2c2a34=['off','reverse','getColor','south','forEach','getSegmentDrawVertexShader','blue','fromDegrees','random','__esModule','_setOptionsHook','unbindEvent','default','defineProperty','_canrefresh','#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','bindEvent','bind','destroy','blendEquation','tlng','min\x20is\x20undefined,\x20calculate\x20min','depthMask','particles','previousParticlesPosition','2003332GriGRb','onParticlesTextureSizeChange','BaseLayer','_tomap','wrapT','steps','EllipsoidalOccluder','postProcessingPosition','updateWindData','values','mode','sceneMode','mouseDown','_onMouseUpEvent','round','commandToExecute','data','cos','735327TAKmsr','createWindTextures','canvasContext','magnificationFilter','east','EventType','warn','mouse_down','Cesium','height','fill','absolute','isInExtent','particlesNumber','autoClear','north','_onMouseMoveEvent','currentParticlesPosition','add','vdata','red','rectangle','UNSIGNED_INT','renderState','useViewerBounds','bounds','clientHeight','segments','Rectangle','clear','STATIC_DRAW','resize','getContext','vertexArray','fromGeometry','mouseMove','dynamic','grid','postMessage','LINEAR','frameTime','vertexShaderSource','enabled','camera','TRIANGLES','style','options','24xutBup','_addedHook','_onMouseDownEvent','rendering','cancelAnimationFrame','xmax','maxAge','clearFramebuffers','particleSystem','getUVByXY','Compute','stroke','_maxAge','_colorRamp','isDestroyed','willReadFrequently','geometry','domain','wrapS','5541BsVval','computing','getDefaultRenderState','commandType','execute','Math','persists','frameRateAdjustment','_removedHook','setOptions','scene','pow','ymax','frameRate','viewerParameters','sqrt','outputTexture','_calcUV','lat','lineWidth','floor','windData','33793LPArYm','getUpdatePositionShader','stringify','primitives','clientWidth','pointerEvents','commandList','componentDatatype','pixelSize','addEventListener','visibility','isDynamic','top','SCENE3D','mouseUp','particlesSpeed','_updateIng2','initWorker','updateViewerParameters','mars3d-canvasWind','age','show','1924120CzGTwh','getV','speed','percentageChanged','130OwtNah','context','createCommand','NEAREST','canvasWidth','alt','69702zZLhcn','framebuffers','tlat','max','nextParticlesPosition','xmin','canvas','colors','globe','west','flatMap','_pointerEvents','fixedHeight','rawRenderState','_calc_speedRate','worker','preExecute','CLAMP_TO_EDGE','getU','error','displayRange','mouseHidden','2219955eTrgSC','getDirection','owner','push','call','textures','pointer-events','windField','segmentsDepth','layer','particlesTextures','drawingBufferWidth','lonRange','fillRect','ymin','framebuffer','setDate','colorTextures','sin','visible','colorTable','segmentsColor','type','array','keys','speedRate','fragmentShaderSource','beginPath','__proto__','strokeStyle','componentsPerAttribute','primitiveType','reCreateWindTextures','updatePosition','latitude','initFrameRate','flipY','toWindowCoordinates','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','getPostProcessingPositionShader','mouse_move','init','createColorTableTexture','destroyParticlesTextures','morphComplete','depthTest','lighter','abs','particlesTextureSize','createParticlesTextures','left','_animateFrame','updateOptions','get','_canvasParticles','Unknown\x20command\x20type','frameRateMonitor','windTextures','rows','getSpeed','createPrimitives','setData','length','atan2','min','getDataAtLonLat','Cartesian2','dropRate','lng','width','toDegrees','dropRateBump','createRenderingFramebuffers','_map','cols','ellipsoid','sources','createSegmentsGeometry','removeChild','toGridXY','applyViewerParameters','LayerUtil','isPointVisible','shaderProgram','changed','redraw','create','attributeLocations','Draw','globalCompositeOperation','zIndex','266xtzoES'];_0x461c=function(){return _0x2c2a34;};return _0x461c();}_0x580b68['particlesTextureSize']=0x64;function _0x2b8e51(_0x95fe7f,_0x4b1ee0){return _0x3300(_0x4b1ee0-0x224,_0x95fe7f);}_0x580b68[_0x47b22c(-0x15d,-0x100)]=0x0,_0x580b68['lineWidth']=_0x3f5752,_0x580b68['lineLength']=_0x53835d,_0x580b68['speedFactor']=0x1,_0x580b68[_0x2b8e51(0x312,0x2bd)]=0.003,_0x580b68[_0x47b22c(-0x221,-0x261)]=0.001,_0x580b68[_0x47b22c(-0x162,-0xd9)]=['rgb(206,255,255)'],_0x580b68[_0x47b22c(-0x244,-0x1cb)]=![],_0x580b68['dynamic']=!![];const DEF_OPTIONS=_0x580b68;class WindLayer extends BaseLayer$1{constructor(_0x3a8a7a={}){function _0x8a0812(_0xd99036,_0x3f5b8f){return _0x47b22c(_0x3f5b8f-0x65e,_0xd99036);}_0x3a8a7a={...DEF_OPTIONS,..._0x3a8a7a},super(_0x3a8a7a),this[_0x8a0812(0x454,0x45c)](_0x3a8a7a,_0x3a8a7a);}get[_0x47b22c(-0x14a,-0xed)](){return this['primitives'];}get['data'](){return this['options']['data'];}set[_0x2b8e51(0x303,0x2ff)](_0x694280){function _0x163660(_0x537306,_0x5c1f37){return _0x2b8e51(_0x537306,_0x5c1f37- -0x46e);}this['options']['data']=_0x694280,this[_0x163660(-0x147,-0x1b7)](_0x694280);}get['colors'](){function _0x37f163(_0x2a19d0,_0x18a3d9){return _0x47b22c(_0x18a3d9- -0x56,_0x2a19d0);}return this['options'][_0x37f163(-0x17e,-0x1b8)];}set['colors'](_0x367fe){this[_0x59aaba(0x137,0xb3)]['colors']=_0x367fe;function _0x59aaba(_0x6eb89a,_0x11323d){return _0x47b22c(_0x6eb89a-0x2ea,_0x11323d);}const _0x181166={};_0x181166['colors']=_0x367fe,this['_setOptionsHook'](this['options'],_0x181166);}['_showHook'](_0x66bf63){function _0x2bde2c(_0x47ccb2,_0x3830ea){return _0x2b8e51(_0x47ccb2,_0x3830ea- -0x45b);}_0x66bf63?this['_addedHook']():this[_0x2bde2c(-0x18f,-0x110)]();}['_mountedHook'](){}[_0x47b22c(-0x1b1,-0x127)](){this['scene']=this['_map']['scene'],this['camera']=this['_map'][_0x55e940(-0x4a,-0x79)];this[_0x4d41bb(0x3ce,0x406)]['data']&&this['setData'](this['options']['data']);function _0x4d41bb(_0x3df5c8,_0x39546c){return _0x47b22c(_0x3df5c8-0x581,_0x39546c);}if(!this['windData']||!this['show'])return;this['viewerParameters']={'lonRange':new Cesium$1[(_0x4d41bb(0x35b,0x336))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this[_0x55e940(-0xa2,-0x3a)](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this[_0x4d41bb(0x3f7,0x3f0)],this['options'],this['viewerParameters'],this['scene']),this[_0x4d41bb(0x3fb,0x430)]=this[_0x55e940(-0x44,-0x6d)]['getPrimitives']();function _0x55e940(_0x35c3c2,_0x168655){return _0x47b22c(_0x168655-0x13d,_0x35c3c2);}this[_0x4d41bb(0x3fb,0x3eb)]['forEach'](_0x46ad78=>{function _0x167c8a(_0x511df0,_0x2eaac4){return _0x4d41bb(_0x511df0- -0x591,_0x2eaac4);}function _0x288d33(_0x7bb682,_0xb75c69){return _0x55e940(_0x7bb682,_0xb75c69-0x20f);}this[_0x288d33(0x1ea,0x1b7)][_0x167c8a(-0x196,-0x1e3)][_0x167c8a(-0x1df,-0x190)](_0x46ad78);}),this[_0x55e940(-0x9a,-0x79)][_0x4d41bb(0x411,0x444)]=0.01,this['camera']['changed']['addEventListener'](this['updateViewerParameters'][_0x4d41bb(0x386,0x3ec)](this)),this[_0x4d41bb(0x3ec,0x3ef)][_0x4d41bb(0x345,0x3b0)][_0x4d41bb(0x401,0x396)](this[_0x4d41bb(0x40a,0x390)][_0x4d41bb(0x386,0x3be)](this)),window['addEventListener'](_0x4d41bb(0x3bf,0x379),this['updateViewerParameters']['bind'](this));}['_removedHook'](){function _0x4c8bbb(_0x1e9262,_0x15028d){return _0x2b8e51(_0x1e9262,_0x15028d- -0x8e);}this['camera'][_0x4c8bbb(0x2b2,0x240)]['removeEventListener'](this[_0x4c8bbb(0x280,0x2dd)][_0x534866(-0xc3,-0x5b)](this)),this['scene'][_0x4c8bbb(0x20f,0x218)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),window['removeEventListener']('resize',this[_0x4c8bbb(0x258,0x2dd)][_0x534866(-0x36,-0x5b)](this));this['primitives']&&(this['primitives']['forEach'](_0x5d5404=>{function _0x1ad5f7(_0x452b40,_0xf7b81b){return _0x4c8bbb(_0xf7b81b,_0x452b40- -0x469);}this[_0x1ad5f7(-0x1aa,-0x1d8)]['primitives']['remove'](_0x5d5404);}),delete this['primitives']);function _0x534866(_0xa79c74,_0x3e74a9){return _0x2b8e51(_0xa79c74,_0x3e74a9- -0x342);}this['particleSystem']&&(this['particleSystem']['destroy'](),delete this[_0x534866(-0x55,-0xa)]);}[_0x47b22c(-0x22b,-0x1dc)](_0x29b899,_0x4d4799){this[_0x7e3276(0xa,-0x6)]=this['processWindData'](_0x29b899);if(_0x4d4799){this[_0x7e3276(-0x3,0x45)](),this['_addedHook']();return;}function _0x7e3276(_0x30b712,_0x350a41){return _0x47b22c(_0x30b712-0x194,_0x350a41);}function _0x2ed502(_0x4bbaa2,_0x258cab){return _0x2b8e51(_0x4bbaa2,_0x258cab- -0x9d);}this['particleSystem']?(this[_0x2ed502(0x2e5,0x29b)][_0x7e3276(-0xa,-0x7a)][_0x7e3276(-0x57,-0xc4)](this['windData']),this['scene']['requestRender']()):this[_0x7e3276(-0x1d,0x38)]();}[_0x2b8e51(0x32e,0x2e0)](_0xc164a4,_0x35d4ca){function _0x2e13ab(_0x4b8e79,_0x1e5ab6){return _0x2b8e51(_0x4b8e79,_0x1e5ab6- -0x529);}function _0x2da541(_0x5ad19e,_0x43b508){return _0x2b8e51(_0x5ad19e,_0x43b508- -0x18a);}this[_0x2e13ab(-0x1da,-0x1f1)]&&(this[_0x2da541(0x1bd,0x1ae)]['changeOptions'](_0x35d4ca),this['scene']['requestRender']());}['processWindData'](_0x3c09d0){var _0x24afa7,_0x2bde44;const _0x48bf7f={..._0x3c09d0},_0x54cecd=_0x48bf7f;!_0x54cecd['height']&&_0x54cecd[_0x38bb4d(0x38b,0x3c5)]&&(_0x54cecd[_0x38bb4d(0x3d1,0x41b)]=_0x54cecd[_0x298ae6(-0x197,-0x1ff)]);!_0x54cecd['width']&&_0x54cecd['cols']&&(_0x54cecd['width']=_0x54cecd['cols']);!_0x54cecd[_0x38bb4d(0x42c,0x42b)]&&(_0x54cecd['bounds']={'west':_0x54cecd['xmin'],'south':_0x54cecd['ymin'],'east':_0x54cecd['xmax'],'north':_0x54cecd[_0x298ae6(-0x19b,-0x164)]});function _0x298ae6(_0x3134a6,_0x105382){return _0x2b8e51(_0x3134a6,_0x105382- -0x4b3);}if(!_0x54cecd['u']){const _0x1ddc52={};_0x1ddc52[_0x38bb4d(0x35f,0x3a2)]=_0x3c09d0['udata'],_0x1ddc52['min']=_0x3c09d0['umin'],_0x1ddc52['max']=_0x3c09d0['umax'],_0x54cecd['u']=_0x1ddc52;}function _0x38bb4d(_0x54f824,_0xd8269a){return _0x47b22c(_0xd8269a-0x5f3,_0x54f824);}if(!_0x54cecd['v']){const _0x2f2426={};_0x2f2426['array']=_0x3c09d0[_0x38bb4d(0x3ee,0x425)],_0x2f2426['min']=_0x3c09d0['vmin'],_0x2f2426[_0x298ae6(-0x1a4,-0x137)]=_0x3c09d0['vmax'],_0x54cecd['v']=_0x2f2426;}if(((_0x24afa7=_0x54cecd['speed'])===null||_0x24afa7===void 0x0?void 0x0:_0x24afa7[_0x38bb4d(0x3df,0x3cb)])===undefined||((_0x2bde44=_0x54cecd['speed'])===null||_0x2bde44===void 0x0?void 0x0:_0x2bde44['max'])===undefined||_0x54cecd['speed'][_0x38bb4d(0x397,0x3a2)]===undefined){const _0x1b02d0={'array':new Float32Array(_0x54cecd['u']['array'][_0x298ae6(-0x19b,-0x1fb)]),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x34c09a=0x0;_0x34c09a<_0x54cecd['u']['array']['length'];_0x34c09a++){_0x1b02d0['array'][_0x34c09a]=Math[_0x38bb4d(0x4b0,0x463)](_0x54cecd['u'][_0x298ae6(-0x1a2,-0x222)][_0x34c09a]*_0x54cecd['u']['array'][_0x34c09a]+_0x54cecd['v']['array'][_0x34c09a]*_0x54cecd['v'][_0x298ae6(-0x238,-0x222)][_0x34c09a]),_0x1b02d0['array'][_0x34c09a]!==0x0&&(_0x1b02d0[_0x298ae6(-0x217,-0x1f9)]=Math[_0x38bb4d(0x430,0x3cb)](_0x1b02d0[_0x38bb4d(0x3ac,0x3cb)],_0x1b02d0['array'][_0x34c09a]),_0x1b02d0['max']=Math[_0x298ae6(-0x150,-0x137)](_0x1b02d0['max'],_0x1b02d0['array'][_0x34c09a]));}_0x54cecd[_0x38bb4d(0x4f6,0x482)]=_0x1b02d0;}return _0x54cecd;}['updateViewerParameters'](){var _0x38fc65;const _0x5bd21e=this[_0x5e7499(-0x97,-0x1c)];function _0x5e7499(_0x1ee5a4,_0x42d5fd){return _0x47b22c(_0x1ee5a4-0xfe,_0x42d5fd);}if(!_0x5bd21e)return;const _0x3833c6=_0x5bd21e['canvas'],_0x4bac5c={};_0x4bac5c['x']=0x0,_0x4bac5c['y']=0x0;const _0x44c0f4={};_0x44c0f4['x']=0x0,_0x44c0f4['y']=_0x3833c6['clientHeight'];const _0x194a2e={};_0x194a2e['x']=_0x3833c6['clientWidth'],_0x194a2e['y']=0x0;const _0x2f88e9={};_0x2f88e9['x']=_0x3833c6[_0x5e7499(-0x87,-0x10a)],_0x2f88e9['y']=_0x3833c6['clientHeight'];const _0x5917b8=[_0x4bac5c,_0x44c0f4,_0x194a2e,_0x2f88e9];function _0x103aac(_0x5f021b,_0x476ce5){return _0x47b22c(_0x5f021b-0x4f7,_0x476ce5);}let _0x457f75=0xb4,_0x468a32=-0xb4,_0x30a360=0x5a,_0x3557ce=-0x5a,_0x1350fa=![];for(const _0x2f239f of _0x5917b8){const _0x301cf1=_0x5bd21e['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x2f239f['x'],_0x2f239f['y']),_0x5bd21e[_0x5e7499(-0x63,-0xce)][_0x5e7499(-0x11f,-0x193)]);if(!_0x301cf1){_0x1350fa=!![];break;}const _0x32ff57=_0x5bd21e[_0x103aac(0x396,0x330)][_0x5e7499(-0x11f,-0x155)]['cartesianToCartographic'](_0x301cf1),_0x53c65d=Cesium$1[_0x103aac(0x35d,0x3b9)]['toDegrees'](_0x32ff57['longitude']),_0x1fa818=Cesium$1['Math'][_0x5e7499(-0x124,-0x194)](_0x32ff57[_0x103aac(0x2b1,0x258)]);_0x457f75=Math['min'](_0x457f75,_0x53c65d),_0x468a32=Math['max'](_0x468a32,_0x53c65d),_0x30a360=Math[_0x5e7499(-0x12a,-0xb3)](_0x30a360,_0x1fa818),_0x3557ce=Math['max'](_0x3557ce,_0x1fa818);}if(!_0x1350fa){const _0xaaff33=new Cesium$1['Cartesian2'](Math[_0x103aac(0x391,0x384)](this['windData']['bounds']['west'],_0x457f75),Math['min'](this['windData']['bounds']['east'],_0x468a32)),_0xc47eef=new Cesium$1[(_0x5e7499(-0x128,-0x1a2))](Math['max'](this[_0x103aac(0x36d,0x2f7)][_0x103aac(0x32f,0x304)]['south'],_0x30a360),Math['min'](this[_0x103aac(0x36d,0x3cb)]['bounds']['north'],_0x3557ce)),_0x29b4df=(_0xaaff33['y']-_0xaaff33['x'])*0.05,_0x3beabe=(_0xc47eef['y']-_0xc47eef['x'])*0.05;_0xaaff33['x']=Math['max'](this['windData'][_0x5e7499(-0xca,-0x82)][_0x103aac(0x397,0x30d)],_0xaaff33['x']-_0x29b4df),_0xaaff33['y']=Math['min'](this['windData']['bounds']['east'],_0xaaff33['y']+_0x29b4df),_0xc47eef['x']=Math['max'](this['windData'][_0x5e7499(-0xca,-0xb8)][_0x103aac(0x2ee,0x330)],_0xc47eef['x']-_0x3beabe),_0xc47eef['y']=Math['min'](this[_0x5e7499(-0x8c,-0xc1)]['bounds'][_0x103aac(0x325,0x2c0)],_0xc47eef['y']+_0x3beabe),this[_0x5e7499(-0x93,-0xfa)][_0x103aac(0x3b0,0x3f8)]=_0xaaff33,this['viewerParameters']['latRange']=_0xc47eef;const _0x17383f=this['windData'][_0x5e7499(-0xca,-0xba)]['east']-this['windData']['bounds']['west'],_0x289dbf=this[_0x103aac(0x36d,0x371)][_0x103aac(0x32f,0x345)][_0x5e7499(-0xd4,-0x5d)]-this[_0x5e7499(-0x8c,-0x8b)][_0x5e7499(-0xca,-0xd3)][_0x103aac(0x2ee,0x2dc)],_0x37ee97=(_0xaaff33['y']-_0xaaff33['x'])/_0x17383f,_0x275068=(_0xc47eef['y']-_0xc47eef['x'])/_0x289dbf,_0x1daf8f=Math['min'](_0x37ee97,_0x275068),_0x3ff05b=0x3e8*_0x1daf8f;_0x3ff05b>0x0&&(this[_0x5e7499(-0x93,-0x1a)][_0x103aac(0x376,0x337)]=Math[_0x5e7499(-0x68,-0xd4)](0x0,Math[_0x5e7499(-0x12a,-0x194)](0x3e8,_0x3ff05b)));}this['viewerParameters'][_0x103aac(0x30f,0x28d)]=this[_0x103aac(0x362,0x33f)]['mode'],(_0x38fc65=this['particleSystem'])===null||_0x38fc65===void 0x0||_0x38fc65[_0x103aac(0x2df,0x2a0)](this[_0x5e7499(-0x93,-0xfa)]);}[_0x47b22c(-0x227,-0x1bd)](_0x4c8d41,_0x124d1d){const {bounds:_0x3efbdb,width:_0x2f9b0e,height:_0x45b5dd,u:_0x285e62,v:_0x337bc3,speed:_0xd67b22}=this['windData'],{flipY:_0x151631}=this['options'];if(_0x4c8d41<_0x3efbdb['west']||_0x4c8d41>_0x3efbdb[_0x389e47(-0x283,-0x272)]||_0x124d1d<_0x3efbdb['south']||_0x124d1d>_0x3efbdb['north'])return null;const _0x6999c6=(_0x4c8d41-_0x3efbdb['west'])/(_0x3efbdb['east']-_0x3efbdb[_0x3e631d(-0xb4,-0x74)])*(_0x2f9b0e-0x1);let _0x11a66c=(_0x124d1d-_0x3efbdb['south'])/(_0x3efbdb[_0x389e47(-0x278,-0x2f8)]-_0x3efbdb['south'])*(_0x45b5dd-0x1);_0x151631&&(_0x11a66c=_0x45b5dd-0x1-_0x11a66c);const _0x197201=Math[_0x3e631d(-0x122,-0x9f)](_0x6999c6),_0x5ba55a=Math[_0x389e47(-0x231,-0x239)](_0x11a66c),_0x2b8896=Math[_0x3e631d(-0xbf,-0x9f)](_0x6999c6),_0x2ae957=Math['min'](_0x2b8896+0x1,_0x2f9b0e-0x1),_0x21ac26=Math[_0x3e631d(-0x8f,-0x9f)](_0x11a66c),_0x3a015c=Math[_0x389e47(-0x2ce,-0x297)](_0x21ac26+0x1,_0x45b5dd-0x1);function _0x3e631d(_0x18338a,_0x442191){return _0x47b22c(_0x442191-0xec,_0x18338a);}const _0x2c7bf5=_0x6999c6-_0x2b8896,_0xfb4678=_0x11a66c-_0x21ac26,_0x1c2118=_0x5ba55a*_0x2f9b0e+_0x197201,_0x3f1988=_0x21ac26*_0x2f9b0e+_0x2b8896,_0x33049d=_0x21ac26*_0x2f9b0e+_0x2ae957,_0xe6818b=_0x3a015c*_0x2f9b0e+_0x2b8896,_0x1d7a82=_0x3a015c*_0x2f9b0e+_0x2ae957,_0x4a42e8=_0x285e62['array'][_0x3f1988],_0x499452=_0x285e62['array'][_0x33049d];function _0x389e47(_0x4b692b,_0x1c5025){return _0x2b8e51(_0x1c5025,_0x4b692b- -0x588);}const _0x562e44=_0x285e62['array'][_0xe6818b],_0x4f00ff=_0x285e62['array'][_0x1d7a82],_0x11a9ba=(0x1-_0x2c7bf5)*(0x1-_0xfb4678)*_0x4a42e8+_0x2c7bf5*(0x1-_0xfb4678)*_0x499452+(0x1-_0x2c7bf5)*_0xfb4678*_0x562e44+_0x2c7bf5*_0xfb4678*_0x4f00ff,_0x35b43e=_0x337bc3['array'][_0x3f1988],_0x4494ff=_0x337bc3['array'][_0x33049d],_0x113e2a=_0x337bc3[_0x389e47(-0x2f7,-0x370)][_0xe6818b],_0x17cdcb=_0x337bc3['array'][_0x1d7a82],_0x439399=(0x1-_0x2c7bf5)*(0x1-_0xfb4678)*_0x35b43e+_0x2c7bf5*(0x1-_0xfb4678)*_0x4494ff+(0x1-_0x2c7bf5)*_0xfb4678*_0x113e2a+_0x2c7bf5*_0xfb4678*_0x17cdcb,_0x1702dc=Math['sqrt'](_0x11a9ba*_0x11a9ba+_0x439399*_0x439399),_0x45dd49={};_0x45dd49['u']=_0x285e62[_0x3e631d(-0xfa,-0x165)][_0x1c2118],_0x45dd49['v']=_0x337bc3[_0x3e631d(-0x173,-0x165)][_0x1c2118],_0x45dd49['speed']=_0xd67b22[_0x3e631d(-0x153,-0x165)][_0x1c2118];const _0x3ed0ca={};_0x3ed0ca['u']=_0x11a9ba,_0x3ed0ca['v']=_0x439399,_0x3ed0ca['speed']=_0x1702dc;const _0xf9006c={};return _0xf9006c['original']=_0x45dd49,_0xf9006c['interpolated']=_0x3ed0ca,_0xf9006c;}}function _0x3300(_0x20a1e0,_0x397951){const _0x461cc9=_0x461c();return _0x3300=function(_0x330002,_0x19e933){_0x330002=_0x330002-0x67;let _0x4f612a=_0x461cc9[_0x330002];return _0x4f612a;},_0x3300(_0x20a1e0,_0x397951);}mars3d__namespace[_0x2b8e51(0x278,0x2cb)]['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){function _0x5a1054(_0x215446,_0x5969f2){return _0x2b8e51(_0x215446,_0x5969f2- -0x4f);}this['lng']=null;function _0x2a3819(_0x1fda6b,_0x53b438){return _0x47b22c(_0x1fda6b-0x22a,_0x53b438);}this['lat']=null,this[_0x5a1054(0x217,0x29b)]=null,this['tlat']=null,this['age']=null,this[_0x5a1054(0x37b,0x322)]=null;}['destroy'](){for(const _0x544924 in this){delete this[_0x544924];}}}class CanvasWindField{constructor(_0x46e177){function _0x258987(_0x4c9278,_0x20f18d){return _0x47b22c(_0x20f18d-0x1e0,_0x4c9278);}this[_0x258987(0xa9,0x4a)](_0x46e177);}get[_0x2b8e51(0x267,0x293)](){return this['_speedRate'];}set['speedRate'](_0x586f51){this['_speedRate']=(0x64-(_0x586f51>0x63?0x63:_0x586f51))*0x64;function _0x61353b(_0x4d292d,_0x34597b){return _0x47b22c(_0x4d292d-0x175,_0x34597b);}this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this['ymax']-this[_0x61353b(0x30,-0x4b)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0x1ba14a){function _0x5f3302(_0x5fdcea,_0x15b7ba){return _0x47b22c(_0x5fdcea-0xea,_0x15b7ba);}this[_0x5f3302(-0xbc,-0x36)]=_0x1ba14a;}['setOptions'](_0x5f0988){this['options']=_0x5f0988,this[_0x495e0c(-0x16,-0x4a)]=_0x5f0988['maxAge']||0x78,this[_0x2b72a2(0x368,0x313)]=_0x5f0988[_0x2b72a2(0x368,0x322)]||0x32;function _0x2b72a2(_0x1164a9,_0x2ae3d7){return _0x47b22c(_0x1164a9-0x5b7,_0x2ae3d7);}this['particles']=[];function _0x495e0c(_0x3c0bae,_0x46f5c1){return _0x47b22c(_0x3c0bae-0x196,_0x46f5c1);}const _0x422dc4=_0x5f0988['particlesNumber']||0x1000;for(let _0x1c4268=0x0;_0x1c4268<_0x422dc4;_0x1c4268++){const _0x29ea15=this['_randomParticle'](new CanvasParticle());this['particles'][_0x2b72a2(0x467,0x48d)](_0x29ea15);}}[_0x2b8e51(0x3af,0x39f)](_0x3e64ac){this['rows']=_0x3e64ac['rows'],this[_0x31de3d(-0x112,-0x8f)]=_0x3e64ac[_0x31de3d(-0x10a,-0x8f)],this['xmin']=_0x3e64ac['xmin'],this['xmax']=_0x3e64ac['xmax'];function _0x31de3d(_0x441a09,_0x28a942){return _0x2b8e51(_0x441a09,_0x28a942- -0x353);}this[_0x31de3d(-0x31,0x4a)]=_0x3e64ac['ymin'],this['ymax']=_0x3e64ac['ymax'],this['grid']=[];function _0x206c84(_0x925b62,_0xb912f1){return _0x47b22c(_0x925b62-0x58f,_0xb912f1);}const _0x521dcf=_0x3e64ac['udata'],_0x3c5fb7=_0x3e64ac['vdata'];let _0x13f0c2=![];_0x521dcf[_0x31de3d(-0xfe,-0x9b)]===this['rows']&&_0x521dcf[0x0][_0x206c84(0x365,0x387)]===this[_0x206c84(0x371,0x3c5)]&&(_0x13f0c2=!![]);let _0x173022=0x0,_0xd5de0e=null,_0x72be56=null;for(let _0x1a9476=0x0;_0x1a9476<this['rows'];_0x1a9476++){_0xd5de0e=[];for(let _0x595dd4=0x0;_0x595dd4<this['cols'];_0x595dd4++,_0x173022++){_0x13f0c2?_0x72be56=this['_calcUV'](_0x521dcf[_0x1a9476][_0x595dd4],_0x3c5fb7[_0x1a9476][_0x595dd4]):_0x72be56=this[_0x31de3d(0x18,0x1)](_0x521dcf[_0x173022],_0x3c5fb7[_0x173022]),_0xd5de0e['push'](_0x72be56);}this['grid']['push'](_0xd5de0e);}!this[_0x31de3d(-0x88,-0x24)]['flipY']&&this[_0x206c84(0x3d3,0x3c0)][_0x206c84(0x384,0x3b9)]();}['clear'](){function _0x19e7e7(_0x1a9bc6,_0x159cb6){return _0x2b8e51(_0x1a9bc6,_0x159cb6-0x17a);}delete this[_0x39b310(0x2b0,0x334)],delete this['cols'],delete this[_0x19e7e7(0x481,0x4f8)],delete this[_0x39b310(0x3f7,0x3b5)];function _0x39b310(_0x28ed33,_0x26ee59){return _0x47b22c(_0x26ee59-0x562,_0x28ed33);}delete this['ymin'],delete this['ymax'],delete this['grid'],delete this[_0x19e7e7(0x3f1,0x467)];}['toGridXY'](_0x5c0b12,_0x3593f3){const _0x1e4de5=(_0x5c0b12-this[_0x2bea22(0x32b,0x2ac)])/(this['xmax']-this[_0x2bea22(0x32b,0x37a)])*(this['cols']-0x1),_0x3ab86f=(this[_0x2bea22(0x2fc,0x2ee)]-_0x3593f3)/(this['ymax']-this['ymin'])*(this[_0x2bea22(0x261,0x232)]-0x1);function _0x2bea22(_0x4d5644,_0x581bbe){return _0x2b8e51(_0x581bbe,_0x4d5644- -0x53);}function _0x1034e1(_0x17cdac,_0x3a5cce){return _0x47b22c(_0x3a5cce-0xb8,_0x17cdac);}return[_0x1e4de5,_0x3ab86f];}[_0x47b22c(-0x1a9,-0x1e5)](_0x18de79,_0x3dc9b8){if(_0x18de79<0x0||_0x18de79>=this['cols']||_0x3dc9b8>=this[_0x49f29c(-0x30a,-0x281)])return[0x0,0x0,0x0];const _0x182f3e=Math[_0x49f29c(-0x1fd,-0x1de)](_0x18de79);function _0x49f29c(_0x45715c,_0x3abfaf){return _0x47b22c(_0x3abfaf- -0x53,_0x45715c);}const _0x31b848=Math['floor'](_0x3dc9b8);if(_0x182f3e===_0x18de79&&_0x31b848===_0x3dc9b8)return this['grid'][_0x3dc9b8][_0x18de79];const _0x326462=_0x182f3e+0x1,_0x203823=_0x31b848+0x1,_0x5dd417=this['getUVByXY'](_0x182f3e,_0x31b848);function _0x59fd51(_0x2ef2cb,_0x585d8a){return _0x2b8e51(_0x585d8a,_0x2ef2cb-0xb2);}const _0x157d56=this['getUVByXY'](_0x326462,_0x31b848),_0x4b78ef=this['getUVByXY'](_0x182f3e,_0x203823),_0x1a9b59=this[_0x59fd51(0x3eb,0x416)](_0x326462,_0x203823);let _0x299f16=null;try{_0x299f16=this['_bilinearInterpolation'](_0x18de79-_0x182f3e,_0x3dc9b8-_0x31b848,_0x5dd417,_0x157d56,_0x4b78ef,_0x1a9b59);}catch(_0x1701de){console['log'](_0x18de79,_0x3dc9b8);}return _0x299f16;}['_bilinearInterpolation'](_0x595e3c,_0x5d4234,_0x45f563,_0x188545,_0x1f5b76,_0x567d37){const _0x12faaa=0x1-_0x595e3c,_0x4f7945=0x1-_0x5d4234,_0x15c26c=_0x12faaa*_0x4f7945,_0x141f3e=_0x595e3c*_0x4f7945,_0x6d4a13=_0x12faaa*_0x5d4234,_0x2df4de=_0x595e3c*_0x5d4234,_0x5e11e5=_0x45f563[0x0]*_0x15c26c+_0x188545[0x0]*_0x141f3e+_0x1f5b76[0x0]*_0x6d4a13+_0x567d37[0x0]*_0x2df4de,_0x3fd418=_0x45f563[0x1]*_0x15c26c+_0x188545[0x1]*_0x141f3e+_0x1f5b76[0x1]*_0x6d4a13+_0x567d37[0x1]*_0x2df4de;return this['_calcUV'](_0x5e11e5,_0x3fd418);}[_0x47b22c(-0x18e,-0x1bb)](_0x48c59d,_0x3ddb87){return[+_0x48c59d,+_0x3ddb87,Math['sqrt'](_0x48c59d*_0x48c59d+_0x3ddb87*_0x3ddb87)];}['getUVByPoint'](_0x408bee,_0x2e22f3){function _0x3d9266(_0x52e7bb,_0x42c038){return _0x2b8e51(_0x52e7bb,_0x42c038- -0x90);}function _0x25b97f(_0x59bb3b,_0x163a9e){return _0x47b22c(_0x59bb3b-0x3e0,_0x163a9e);}if(!this['isInExtent'](_0x408bee,_0x2e22f3))return null;const _0x55a3d4=this[_0x3d9266(0x27b,0x239)](_0x408bee,_0x2e22f3),_0x302761=this[_0x3d9266(0x264,0x2a9)](_0x55a3d4[0x0],_0x55a3d4[0x1]);return _0x302761;}[_0x47b22c(-0x1d5,-0x18b)](_0x1dbec5,_0x4c2de9){function _0x3cf0ec(_0x226f59,_0x203d8a){return _0x47b22c(_0x203d8a-0x473,_0x226f59);}return _0x1dbec5>=this['xmin']&&_0x1dbec5<=this['xmax']&&_0x4c2de9>=this[_0x3cf0ec(0x367,0x32e)]&&_0x4c2de9<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x1b2a6d=fRandomByfloat(this['xmin'],this[_0x22b31f(-0x71,-0xbf)]),_0x273656=fRandomByfloat(this['ymin'],this['ymax']);function _0x1c2e4e(_0x571b20,_0x3d8d44){return _0x47b22c(_0x571b20-0x616,_0x3d8d44);}const _0x416fb1={};_0x416fb1[_0x1c2e4e(0x489,0x4c0)]=_0x273656,_0x416fb1['lng']=_0x1b2a6d;function _0x22b31f(_0x48aea9,_0x1b7e73){return _0x47b22c(_0x1b7e73-0xee,_0x48aea9);}return _0x416fb1;}['getParticles'](){function _0xb2d531(_0x3fa85e,_0x2d1021){return _0x47b22c(_0x2d1021-0x5ab,_0x3fa85e);}let _0x904137,_0x116d1c,_0x56531e;function _0x364316(_0x43f2ba,_0x357a5c){return _0x2b8e51(_0x43f2ba,_0x357a5c- -0x320);}for(let _0x3abbee=0x0,_0x46baea=this['particles']['length'];_0x3abbee<_0x46baea;_0x3abbee++){let _0x4d48b0=this['particles'][_0x3abbee];_0x4d48b0['age']<=0x0&&(_0x4d48b0=this['_randomParticle'](_0x4d48b0));if(_0x4d48b0['age']>0x0){const _0x5ac121=_0x4d48b0['tlng'],_0x544c57=_0x4d48b0[_0xb2d531(0x4b8,0x444)];_0x56531e=this['getUVByPoint'](_0x5ac121,_0x544c57),_0x56531e?(_0x904137=_0x5ac121+this[_0x364316(0xd3,0x67)][0x0]*_0x56531e[0x0],_0x116d1c=_0x544c57+this[_0x364316(0x7f,0x67)][0x1]*_0x56531e[0x1],_0x4d48b0['lng']=_0x5ac121,_0x4d48b0[_0x364316(0x33,0x35)]=_0x544c57,_0x4d48b0['tlng']=_0x904137,_0x4d48b0[_0x364316(0xcb,0x5b)]=_0x116d1c,_0x4d48b0[_0x364316(-0x7,0x51)]=_0x56531e[0x2],_0x4d48b0['age']--):_0x4d48b0['age']=0x0;}}return this['particles'];}['_randomParticle'](_0x473780){let _0x1176f9,_0x453f7a;function _0x5c6325(_0x16e12b,_0x5084d3){return _0x47b22c(_0x16e12b-0x4a9,_0x5084d3);}for(let _0x3faddf=0x0;_0x3faddf<0x1e;_0x3faddf++){_0x1176f9=this['getRandomLatLng'](),_0x453f7a=this['getUVByPoint'](_0x1176f9['lng'],_0x1176f9['lat']);if(_0x453f7a&&_0x453f7a[0x2]>0x0)break;}if(!_0x453f7a)return _0x473780;const _0x2286d5=_0x1176f9['lng']+this['_calc_speedRate'][0x0]*_0x453f7a[0x0],_0x115737=_0x1176f9[_0x5c6325(0x31c,0x2de)]+this['_calc_speedRate'][0x1]*_0x453f7a[0x1];_0x473780[_0x5c6325(0x285,0x2f1)]=_0x1176f9[_0x5c6325(0x285,0x2e1)],_0x473780[_0x356cce(0x281,0x2a3)]=_0x1176f9[_0x356cce(0x281,0x229)],_0x473780['tlng']=_0x2286d5,_0x473780[_0x5c6325(0x342,0x3c8)]=_0x115737,_0x473780[_0x356cce(0x299,0x306)]=Math[_0x5c6325(0x2c4,0x258)](0xa+Math['random']()*this['maxAge']),_0x473780[_0x356cce(0x29d,0x2d5)]=_0x453f7a[0x2];function _0x356cce(_0x421d90,_0x8d924e){return _0x47b22c(_0x421d90-0x40e,_0x8d924e);}return _0x473780;}[_0x2b8e51(0x2ba,0x2e8)](){for(const _0x4b334f in this){delete this[_0x4b334f];}}}function fRandomByfloat(_0x1b14d5,_0x577b00){function _0x2bbe32(_0x4d3604,_0x22d024){return _0x2b8e51(_0x22d024,_0x4d3604- -0x3a4);}return _0x1b14d5+Math[_0x2bbe32(-0xc6,-0xfb)]()*(_0x577b00-_0x1b14d5);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer'][_0x47b22c(-0x1f1,-0x231)];class CanvasWindLayer extends BaseLayer{constructor(_0x5ab44b={}){super(_0x5ab44b),this[_0x364299(0x38b,0x32a)](_0x5ab44b);function _0x364299(_0x543114,_0x91e1a){return _0x2b8e51(_0x543114,_0x91e1a-0x4a);}function _0x5c97ad(_0x414e47,_0x5d41a0){return _0x47b22c(_0x414e47-0x634,_0x5d41a0);}this['canvas']=null,_0x5ab44b['colors']&&_0x5ab44b[_0x364299(0x2f6,0x33e)]&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x5ab44b));}['_setOptionsHook'](_0x122137,_0x552e71){this[_0x1093ed(-0x137,-0xe7)]=0x3e8/(_0x122137[_0x3298dd(0x3d8,0x3a1)]||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![],this['color']=_0x122137['color']||'#ffffff',this['lineWidth']=_0x122137['lineWidth']||0x1;function _0x3298dd(_0x423cb3,_0x3b2ff2){return _0x47b22c(_0x423cb3-0x56a,_0x3b2ff2);}function _0x1093ed(_0x48731d,_0x41a1a2){return _0x2b8e51(_0x48731d,_0x41a1a2- -0x410);}this['fixedHeight']=_0x122137[_0x3298dd(0x40d,0x453)]??0x0,this[_0x3298dd(0x326,0x2a3)]=_0x122137['flipY']??![],this['windField']&&this[_0x3298dd(0x41e,0x47e)]['setOptions'](_0x122137);}get[_0x2b8e51(0x373,0x398)](){function _0x5d14f1(_0x191f16,_0x3bf219){return _0x47b22c(_0x191f16-0x581,_0x3bf219);}return this[_0x5d14f1(0x41e,0x3b9)];}get[_0x47b22c(-0x16b,-0x161)](){function _0xd76fee(_0x48a148,_0x4fc33a){return _0x47b22c(_0x48a148-0x658,_0x4fc33a);}function _0x54d9fc(_0x2af6cf,_0x2222b6){return _0x47b22c(_0x2af6cf-0x474,_0x2222b6);}return this[_0x54d9fc(0x255,0x251)][_0x54d9fc(0x2df,0x257)][_0x54d9fc(0x311,0x35f)][_0xd76fee(0x4d3,0x555)];}get['canvasHeight'](){return this['_map']['scene']['canvas']['clientHeight'];}get[_0x47b22c(-0x184,-0x172)](){function _0x100c37(_0x2f6517,_0x2598e2){return _0x47b22c(_0x2f6517-0x509,_0x2598e2);}return this[_0x100c37(0x3ab,0x382)];}set[_0x47b22c(-0x184,-0x16f)](_0x425094){function _0x4138ca(_0x4e4dc9,_0xb542ec){return _0x2b8e51(_0xb542ec,_0x4e4dc9- -0x4ff);}this[_0x141fe8(0x1d4,0x223)]=_0x425094;function _0x141fe8(_0x150156,_0x5be851){return _0x47b22c(_0x150156-0x332,_0x5be851);}if(!this[_0x141fe8(0x1cf,0x207)])return;_0x425094?this['canvas']['style'][_0x141fe8(0x1e5,0x1c2)]='all':this['canvas']['style']['pointer-events']='none';}get[_0x2b8e51(0x341,0x30e)](){function _0xc88d78(_0x43aaff,_0x4587ed){return _0x2b8e51(_0x43aaff,_0x4587ed- -0x36);}return this['options'][_0xc88d78(0x2ed,0x2d8)];}set['particlesNumber'](_0x1e6bd8){function _0x1c26d3(_0x4b7238,_0x547cab){return _0x2b8e51(_0x547cab,_0x4b7238- -0x13f);}this[_0x1c26d3(0x1f0,0x1b2)]['particlesNumber']=_0x1e6bd8;function _0x5650a3(_0x5f373f,_0xbe9f84){return _0x47b22c(_0x5f373f-0x12e,_0xbe9f84);}clearTimeout(this[_0x1c26d3(0x1a5,0x230)]),this[_0x1c26d3(0x1a5,0x145)]=setTimeout(()=>{function _0x129b7e(_0x114ee1,_0x2da949){return _0x1c26d3(_0x2da949-0x19c,_0x114ee1);}this[_0x129b7e(0x2c8,0x32c)]();},0x1f4);}get[_0x2b8e51(0x271,0x293)](){function _0x3203ee(_0x4390cd,_0x1677ab){return _0x2b8e51(_0x4390cd,_0x1677ab- -0x287);}return this[_0x3203ee(0xa4,0xa8)]['speedRate'];}set[_0x2b8e51(0x20b,0x293)](_0x14a3ac){function _0x5bdb69(_0x29823b,_0xeeedfd){return _0x2b8e51(_0x29823b,_0xeeedfd-0x49);}function _0x105b36(_0x2ba568,_0x35ec20){return _0x2b8e51(_0x35ec20,_0x2ba568- -0x21);}this['options']['speedRate']=_0x14a3ac,this[_0x5bdb69(0x43d,0x3df)]&&(this['windField'][_0x105b36(0x272,0x224)]=_0x14a3ac);}get[_0x2b8e51(0x2cb,0x336)](){return this['options']['maxAge'];}set['maxAge'](_0x389b0c){this['options'][_0xff1dcb(0x406,0x3fe)]=_0x389b0c;function _0xff1dcb(_0x13436d,_0x16ff71){return _0x47b22c(_0x13436d-0x5b2,_0x16ff71);}function _0x3089e0(_0x1ee488,_0x1151d5){return _0x47b22c(_0x1ee488- -0xd2,_0x1151d5);}this[_0xff1dcb(0x466,0x4d6)]&&(this['windField'][_0xff1dcb(0x406,0x485)]=_0x389b0c);}get[_0x2b8e51(0x2a0,0x2ff)](){function _0x25c363(_0x2e370a,_0x40fa71){return _0x2b8e51(_0x2e370a,_0x40fa71- -0x40);}return this[_0x25c363(0x39a,0x318)];}set['data'](_0x40821f){function _0x4d7364(_0x155adc,_0xdf6ad6){return _0x47b22c(_0x155adc-0x157,_0xdf6ad6);}this[_0x4d7364(-0xd4,-0x13d)](_0x40821f);}get[_0x47b22c(-0x1cc,-0x165)](){let _0xcf959=this['windData']['xmin'],_0x978b1e=this[_0xc60791(0x4e4,0x489)]['xmax'],_0x2826ff=this['windData']['ymin'],_0x113ed6=this[_0xc60791(0x4e4,0x534)][_0x5983b8(0x342,0x332)];_0x978b1e>=0x167&&_0xcf959===0x0&&(_0xcf959=-0xb4,_0x978b1e=0xb4);_0xcf959=Math['max'](_0xcf959,-0xb4);function _0xc60791(_0x10bea7,_0x516943){return _0x2b8e51(_0x516943,_0x10bea7-0x18c);}_0x978b1e=Math[_0xc60791(0x446,0x3d5)](_0x978b1e,0xb4),_0x2826ff=Math[_0x5983b8(0x36f,0x3e5)](_0x2826ff,-0x5a),_0x113ed6=Math[_0x5983b8(0x2ad,0x2a3)](_0x113ed6,0x5a);function _0x5983b8(_0x57aceb,_0x2648df){return _0x47b22c(_0x57aceb-0x4d5,_0x2648df);}return Cesium[_0xc60791(0x4a9,0x4bb)]['fromDegrees'](_0xcf959,_0x2826ff,_0x978b1e,_0x113ed6);}['_showHook'](_0x25c993){_0x25c993?this['_addedHook']():(this['windData']&&(this['options']['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x4417fa(_0x158c5f,_0x31b564){return _0x2b8e51(_0x31b564,_0x158c5f- -0x513);}function _0xd3512e(_0x25e675,_0x301338){return _0x2b8e51(_0x25e675,_0x301338- -0x5ed);}this['options'][_0xd3512e(-0x220,-0x265)]?this[_0xd3512e(-0x2d1,-0x283)]():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){this[_0x956ab3(0x2ad,0x2ed)]=this['_createCanvas']();const _0x13ad89={};_0x13ad89[_0x956ab3(0x26d,0x280)]=!![],this['canvasContext']=this['canvas'][_0x956ab3(0x24f,0x200)]('2d',_0x13ad89);function _0x956ab3(_0x57684f,_0x59e4e4){return _0x47b22c(_0x57684f-0x410,_0x59e4e4);}function _0x5126dc(_0x3e07cc,_0x533347){return _0x2b8e51(_0x3e07cc,_0x533347-0x1bc);}this[_0x956ab3(0x214,0x243)](),this['options']['data']&&this['setData'](this['options'][_0x956ab3(0x22d,0x2a6)]);}['_removedHook'](){this['clear'](),this[_0x23a8dc(-0x22,-0x49)]();function _0x31b22b(_0x1d13e2,_0x3312f6){return _0x47b22c(_0x3312f6-0x680,_0x1d13e2);}function _0x23a8dc(_0x760ce6,_0x418eab){return _0x2b8e51(_0x418eab,_0x760ce6- -0x303);}this[_0x31b22b(0x565,0x51d)]&&(this[_0x31b22b(0x4c5,0x461)]['container'][_0x31b22b(0x499,0x466)](this[_0x31b22b(0x57c,0x51d)]),delete this['canvas']);}['_createCanvas'](){const _0x4bbab1=mars3d__namespace['DomUtil']['create']('canvas',_0x25c879(-0x237,-0x288),this['_map']['container']);_0x4bbab1['style']['position']=_0x307716(-0x236,-0x210),_0x4bbab1[_0x25c879(-0x275,-0x2cb)][_0x307716(-0x1dd,-0x17d)]='0px',_0x4bbab1['style'][_0x307716(-0x296,-0x275)]='0px',_0x4bbab1['style']['width']=this['_map'][_0x25c879(-0x256,-0x2bf)]['canvas']['clientWidth']+'px',_0x4bbab1['style'][_0x307716(-0x238,-0x233)]=this['_map']['scene'][_0x25c879(-0x224,-0x1e6)]['clientHeight']+'px';function _0x307716(_0xbb2af7,_0x51e0f7){return _0x47b22c(_0xbb2af7- -0x60,_0x51e0f7);}_0x4bbab1['style']['pointerEvents']=this[_0x25c879(-0x21f,-0x27d)]?'auto':'none',_0x4bbab1['style'][_0x25c879(-0x2cf,-0x2d7)]=this['options'][_0x307716(-0x26e,-0x28e)]??0x9;function _0x25c879(_0x1ffbf7,_0x5817ae){return _0x47b22c(_0x1ffbf7- -0xc1,_0x5817ae);}return _0x4bbab1[_0x307716(-0x283,-0x2eb)]=this['_map']['scene'][_0x25c879(-0x224,-0x29e)][_0x25c879(-0x246,-0x1d7)],_0x4bbab1['height']=this['_map']['scene']['canvas'][_0x307716(-0x227,-0x2a8)],_0x4bbab1;}['resize'](){function _0x5bf434(_0x1a334b,_0x2ff3a4){return _0x2b8e51(_0x2ff3a4,_0x1a334b- -0x2a2);}function _0x27a3f4(_0x2758cd,_0x4dcfca){return _0x47b22c(_0x4dcfca-0x494,_0x2758cd);}this['canvas']&&(this[_0x27a3f4(0x352,0x331)]['style']['width']=this[_0x27a3f4(0x28c,0x275)]['scene']['canvas']['clientWidth']+'px',this['canvas'][_0x27a3f4(0x328,0x2e0)]['height']=this[_0x5bf434(0x21,-0x64)][_0x5bf434(0xab,0x79)][_0x27a3f4(0x33a,0x331)][_0x27a3f4(0x2ed,0x2cd)]+'px',this[_0x27a3f4(0x335,0x331)]['width']=this['_map']['scene']['canvas']['clientWidth'],this['canvas']['height']=this['_map']['scene'][_0x27a3f4(0x2ce,0x331)][_0x27a3f4(0x285,0x2cd)]);}['bindEvent'](){const _0x2ffcc5=this;let _0x12a1c2=Date['now']();function _0x2884a9(_0x38bd76,_0x7fe43e){return _0x47b22c(_0x7fe43e-0x311,_0x38bd76);}(function _0x139f40(){if(_0x2ffcc5['isDestroy'])return;_0x2ffcc5['_animateFrame']=window['requestAnimationFrame'](_0x139f40);function _0xa63c84(_0x3d2c97,_0x97de9d){return _0x3300(_0x97de9d-0x2ce,_0x3d2c97);}if(_0x2ffcc5['show']&&_0x2ffcc5['windField']){const _0xe0bc6d=Date['now'](),_0x270de9=_0xe0bc6d-_0x12a1c2;_0x270de9>_0x2ffcc5['frameTime']&&(_0x12a1c2=_0xe0bc6d-_0x270de9%_0x2ffcc5[_0xa63c84(0x3bc,0x3d3)],_0x2ffcc5['update']());}}());function _0x8b7d0c(_0x879e85,_0x40eb27){return _0x2b8e51(_0x40eb27,_0x879e85- -0x47);}window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x2884a9(0x89,0xf2)]['on'](mars3d__namespace['EventType'][_0x2884a9(0x106,0x12a)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x8b7d0c(0x320,0x3a6)],this[_0x2884a9(0xff,0x12b)],this));}['unbindEvent'](){function _0x230e9e(_0x5ce473,_0x1af4e3){return _0x47b22c(_0x1af4e3-0x4db,_0x5ce473);}window[_0x230e9e(0x30b,0x32d)](this[_0x36b46b(-0x22,-0x8)]),delete this['_animateFrame'],window['removeEventListener'](_0x36b46b(0x51,0x21),this[_0x36b46b(0x51,0xb3)]);function _0x36b46b(_0x41c2d7,_0x1dbf58){return _0x2b8e51(_0x1dbf58,_0x41c2d7- -0x2cf);}this['options'][_0x36b46b(0xbf,0x4f)]&&(this['_map'][_0x230e9e(0x33a,0x2cf)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x36b46b(-0xc,-0x6e)]['off'](mars3d__namespace[_0x36b46b(0x37,0x91)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x36b46b(0x7,-0x18)](mars3d__namespace['EventType'][_0x36b46b(0x98,0x116)],this[_0x36b46b(0x2d,0x37)],this),this['_map'][_0x36b46b(0x7,0x91)](mars3d__namespace[_0x36b46b(0x37,0xb8)][_0x230e9e(0x2df,0x31d)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x321a0c){clearTimeout(this['refreshTimer']);function _0xb66141(_0x2428ec,_0xe56d48){return _0x47b22c(_0x2428ec-0xef,_0xe56d48);}function _0x185a41(_0x33fdb3,_0x9cac95){return _0x47b22c(_0x9cac95-0x559,_0x33fdb3);}if(!this[_0x185a41(0x3ca,0x3e5)]||!this[_0x185a41(0x440,0x3f6)])return;this[_0xb66141(-0x74,-0x39)]['style']['visibility']='hidden',this['refreshTimer']=setTimeout(()=>{function _0x5979ca(_0x3e1693,_0x11ddf2){return _0x185a41(_0x11ddf2,_0x3e1693- -0x158);}if(!this[_0x27132c(0x3d,0xa0)])return;this['redraw']();function _0x27132c(_0xeb3141,_0x2d7373){return _0x185a41(_0xeb3141,_0x2d7373- -0x345);}this[_0x5979ca(0x29e,0x2b9)]['style']['visibility']='visible';},0xc8);}[_0x2b8e51(0x376,0x332)](_0x25cf1b){function _0x593a78(_0x3be966,_0x44187c){return _0x2b8e51(_0x3be966,_0x44187c- -0x3cf);}this['mouse_down']=!![],this['_map']['off'](mars3d__namespace['EventType'][_0x593a78(-0x91,-0xab)],this['_onMouseMoveEvent'],this);function _0x1c3911(_0x571b4b,_0x421715){return _0x47b22c(_0x421715-0x22d,_0x571b4b);}this[_0x1c3911(-0x79,0xe)]['on'](mars3d__namespace[_0x1c3911(-0x2c,0x51)][_0x1c3911(0x16,0x6f)],this[_0x593a78(-0xd2,-0xbe)],this);}['_onMouseMoveEvent'](_0x95a379){function _0x5de0f8(_0xc6e63e,_0x47c9ea){return _0x2b8e51(_0xc6e63e,_0x47c9ea- -0x44c);}if(!this['show']||!this['canvas'])return;function _0x4f2685(_0x353e3a,_0xcecc0d){return _0x47b22c(_0xcecc0d- -0xfb,_0x353e3a);}this['mouse_down']&&(this['canvas'][_0x5de0f8(-0x17b,-0x11e)][_0x5de0f8(-0x8a,-0xe9)]='hidden',this[_0x4f2685(-0x31c,-0x33b)]=!![]);}['_onMouseUpEvent'](_0x209fa0){if(!this[_0x57d270(0x571,0x524)]||!this[_0x6670f2(0x445,0x40d)])return;this[_0x57d270(0x49d,0x479)]['off'](mars3d__namespace[_0x57d270(0x53b,0x4bc)][_0x57d270(0x4b1,0x4da)],this[_0x57d270(0x523,0x4c7)],this);function _0x57d270(_0x1fe0cb,_0x287f71){return _0x47b22c(_0x287f71-0x698,_0x1fe0cb);}this[_0x57d270(0x494,0x4be)]&&this['mouse_move']&&this[_0x6670f2(0x395,0x341)]();function _0x6670f2(_0x41ad88,_0x43313a){return _0x47b22c(_0x41ad88-0x5a8,_0x43313a);}this[_0x57d270(0x550,0x535)]['style'][_0x6670f2(0x429,0x400)]=_0x57d270(0x4c9,0x443),this['mouse_down']=![],this['mouse_move']=![];}['setData'](_0x54e7cc){this[_0x2dee0e(0x1b1,0x1f4)](),this['windData']=_0x54e7cc;function _0x585925(_0x2ff79f,_0x1b4380){return _0x47b22c(_0x2ff79f-0x5ac,_0x1b4380);}this['windField']['setDate'](_0x54e7cc);function _0x2dee0e(_0x19976f,_0x4fcb88){return _0x47b22c(_0x19976f-0x375,_0x4fcb88);}this[_0x585925(0x399,0x32c)]();}['redraw'](){function _0x476db4(_0x102e8f,_0x474582){return _0x2b8e51(_0x102e8f,_0x474582- -0x5de);}if(!this['show'])return;this[_0x476db4(-0x1ef,-0x248)][_0x473b62(0x4aa,0x4bb)](this[_0x476db4(-0x234,-0x2af)]);function _0x473b62(_0x8283bc,_0x2978af){return _0x47b22c(_0x8283bc-0x640,_0x2978af);}this['update']();}['update'](){if(this['_updateIng'])return;this['_updateIng']=!![];if(this[_0x5d8b48(0x210,0x217)])this['windField']['update']();else{const _0x31483a=this['windField']['getParticles']();this['_drawLines'](_0x31483a);}function _0x5d8b48(_0x2f3f61,_0x29d4a1){return _0x2b8e51(_0x29d4a1,_0x2f3f61- -0x178);}this['_updateIng']=![];}['_drawLines'](_0x38c1e6){function _0x2ca97a(_0x1f2578,_0x48e69d){return _0x47b22c(_0x48e69d-0x29a,_0x1f2578);}this[_0x2ca97a(0x28,0x68)]=_0x38c1e6,this[_0x2ca97a(0xf2,0xbb)][_0x2ca97a(0x5d,0x8b)]='destination-in',this['canvasContext'][_0x2ca97a(0x104,0x154)](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this[_0x18e771(0x4ab,0x45a)]['globalCompositeOperation']=_0x2ca97a(0x7b,0x60),this[_0x18e771(0x4ab,0x481)]['globalAlpha']=0.9;function _0x18e771(_0x3dd5f2,_0x8c78a6){return _0x2b8e51(_0x8c78a6,_0x3dd5f2-0x1a8);}const _0x40073e=this['_map'][_0x2ca97a(0x150,0x105)]['mode']!==Cesium['SceneMode'][_0x18e771(0x50e,0x4fa)],_0x352a1c=this[_0x18e771(0x51f,0x5a8)]*0.25;if(this[_0x2ca97a(0x9f,0xf5)])for(let _0x5774f0=0x0,_0xd80921=_0x38c1e6[_0x2ca97a(0xb5,0x70)];_0x5774f0<_0xd80921;_0x5774f0++){const _0xee27b=_0x38c1e6[_0x5774f0],_0x591de6=this['_tomap'](_0xee27b,_0xee27b['lng'],_0xee27b[_0x2ca97a(0xa7,0x10d)],_0xee27b['alt']),_0xe524b5=this['_tomap'](_0xee27b,_0xee27b[_0x2ca97a(0xb9,0xa2)],_0xee27b['tlat'],_0xee27b['talt']);if(!_0x591de6||!_0xe524b5)continue;if(_0x40073e&&Math[_0x18e771(0x451,0x405)](_0x591de6[0x0]-_0xe524b5[0x0])>=_0x352a1c)continue;this['canvasContext'][_0x18e771(0x43d,0x4ad)](),this[_0x18e771(0x4ab,0x4e3)][_0x18e771(0x4fe,0x4eb)]=this[_0x2ca97a(0xf3,0x10e)],this['canvasContext'][_0x18e771(0x43f,0x46a)]=this['_colorRamp'][_0x18e771(0x480,0x4d8)](_0xee27b['speed']),this['canvasContext']['moveTo'](_0x591de6[0x0],_0x591de6[0x1]),this['canvasContext']['lineTo'](_0xe524b5[0x0],_0xe524b5[0x1]),this[_0x18e771(0x4ab,0x519)][_0x18e771(0x4e3,0x55c)]();}else{this[_0x18e771(0x4ab,0x428)]['beginPath'](),this['canvasContext']['lineWidth']=this[_0x18e771(0x4fe,0x523)],this['canvasContext'][_0x18e771(0x43f,0x487)]=this['color'];for(let _0xbd10bd=0x0,_0x2afada=_0x38c1e6['length'];_0xbd10bd<_0x2afada;_0xbd10bd++){const _0x5b00f0=_0x38c1e6[_0xbd10bd],_0x3e60e2=this['_tomap'](_0x5b00f0,_0x5b00f0['lng'],_0x5b00f0[_0x18e771(0x4fd,0x55c)],_0x5b00f0[_0x2ca97a(0x186,0x130)]),_0xff8a7a=this[_0x2ca97a(0xd3,0xaa)](_0x5b00f0,_0x5b00f0['tlng'],_0x5b00f0['tlat'],_0x5b00f0['talt']);if(!_0x3e60e2||!_0xff8a7a)continue;if(_0x40073e&&Math['abs'](_0x3e60e2[0x0]-_0xff8a7a[0x0])>=_0x352a1c)continue;this['canvasContext']['moveTo'](_0x3e60e2[0x0],_0x3e60e2[0x1]),this['canvasContext']['lineTo'](_0xff8a7a[0x0],_0xff8a7a[0x1]);}this[_0x18e771(0x4ab,0x4ee)][_0x2ca97a(0x128,0xf3)]();}}[_0x47b22c(-0x1f0,-0x1b0)](_0x31fcec,_0x572d43,_0x5f3e98,_0x100331){const _0x197887=Cesium['Cartesian3'][_0x581808(0xf,-0x67)](_0x572d43,_0x5f3e98,_0x100331??this['fixedHeight']),_0x46bf1b=this[_0x581808(-0x28,-0x81)][_0x581808(0x68,0x9)];function _0x3c0042(_0x4f5fbe,_0x46fd63){return _0x2b8e51(_0x46fd63,_0x4f5fbe- -0xe0);}if(_0x46bf1b[_0x3c0042(0x219,0x24c)]===Cesium['SceneMode']['SCENE3D']){const _0x37a31b=new Cesium[(_0x581808(0x25,-0x4f))](_0x46bf1b['globe']['ellipsoid'],_0x46bf1b['camera']['positionWC']),_0x31dcf0=_0x37a31b[_0x581808(-0xb2,-0x78)](_0x197887);if(!_0x31dcf0)return _0x31fcec['age']=0x0,null;}const _0x4a03fc=mars3d__namespace['PointTrans'][_0x3c0042(0x1bf,0x1cf)](this[_0x3c0042(0x1e3,0x1fd)]['scene'],_0x197887);function _0x581808(_0xd3f906,_0x5bd639){return _0x47b22c(_0x5bd639-0x19e,_0xd3f906);}return _0x4a03fc?[_0x4a03fc['x'],_0x4a03fc['y']]:null;}['clear'](){function _0x21d10e(_0x2bd18a,_0x2eb6d8){return _0x47b22c(_0x2bd18a-0x101,_0x2eb6d8);}this[_0x31314e(-0x149,-0x148)][_0x21d10e(-0xc3,-0xe2)]();function _0x31314e(_0x4416a0,_0x29345d){return _0x47b22c(_0x29345d-0x4,_0x4416a0);}delete this[_0x21d10e(-0x89,-0xe8)];}['initWorker'](){function _0x217d39(_0x1c2964,_0x1e4ae3){return _0x2b8e51(_0x1e4ae3,_0x1c2964-0x1be);}this['worker']=new Worker(this['options'][_0x217d39(0x546,0x5c3)]),this['worker']['onmessage']=_0x1c91ed=>{function _0x36fb84(_0x4a7732,_0x1893d6){return _0x217d39(_0x1893d6- -0x41c,_0x4a7732);}function _0x5042fc(_0x500a78,_0x2fd964){return _0x217d39(_0x2fd964- -0x145,_0x500a78);}this['_drawLines'](_0x1c91ed[_0x5042fc(0x3a5,0x378)][_0x36fb84(0x111,0x8f)]),this['_updateIng2']=![];},this[_0x217d39(0x554,0x5d3)]={'init':_0x3882c8=>{const _0x5e7483={};_0x5e7483[_0xae1bdc(-0x21a,-0x1db)]=_0x4e4d6b(0x34f,0x2d4);function _0x4e4d6b(_0x372265,_0x34bdff){return _0x217d39(_0x372265- -0x112,_0x34bdff);}_0x5e7483['options']=_0x3882c8;function _0xae1bdc(_0x56a2f9,_0x464931){return _0x217d39(_0x464931- -0x629,_0x56a2f9);}this['worker']['postMessage'](_0x5e7483);},'setOptions':_0x597d8=>{const _0x3e2738={};function _0x1af99e(_0x5521fc,_0x57e2ea){return _0x217d39(_0x5521fc- -0x4e2,_0x57e2ea);}_0x3e2738['type']='setOptions',_0x3e2738['options']=_0x597d8,this['worker'][_0x1af99e(0x3,0x73)](_0x3e2738);},'setDate':_0xed2287=>{function _0x31c493(_0xe0b7f0,_0x30c0e1){return _0x3be416(_0xe0b7f0,_0x30c0e1- -0x486);}const _0xdf4537={};function _0x495082(_0x34f84f,_0x384ac6){return _0x217d39(_0x34f84f-0x2,_0x384ac6);}_0xdf4537['type']=_0x31c493(-0x50,-0xa4),_0xdf4537[_0x495082(0x4bf,0x4e4)]=_0xed2287,this['worker']['postMessage'](_0xdf4537);},'update':()=>{if(this['_updateIng2'])return;function _0x45c1c7(_0x27cb69,_0x2b5397){return _0x217d39(_0x27cb69- -0x369,_0x2b5397);}this[_0x5b270a(0x29b,0x2d5)]=!![];const _0xf210={};_0xf210['type']='update';function _0x5b270a(_0x5cd85c,_0x77a7f8){return _0x3be416(_0x77a7f8,_0x5cd85c- -0x111);}this['worker'][_0x45c1c7(0x17c,0x17c)](_0xf210);},'clear':()=>{const _0x858302={};_0x858302[_0x5a5ec(0x5,0x17)]=_0x5a5ec(0xd2,0xa5);function _0x524465(_0x479a6c,_0x5a49c4){return _0x3be416(_0x5a49c4,_0x479a6c- -0x313);}function _0x5a5ec(_0x4d9775,_0x4b7629){return _0x217d39(_0x4b7629- -0x437,_0x4d9775);}this['worker']['postMessage'](_0x858302);}};function _0x3be416(_0x2571c1,_0x41f8a1){return _0x47b22c(_0x41f8a1-0x525,_0x2571c1);}this['windField']['init'](this[_0x217d39(0x4ed,0x4f7)]);}}mars3d__namespace[_0x47b22c(-0x217,-0x23f)]['register']('canvasWind',CanvasWindLayer);function _0x47b22c(_0x76ad28,_0x565c97){return _0x3300(_0x76ad28- -0x2be,_0x565c97);}mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x2f4a41={};_0x2f4a41['value']=!![],Object['defineProperty'](exports,'__esModule',_0x2f4a41);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.9.7",
3
+ "version": "3.9.9",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.9.7"
8
+ "mars3d": "~3.9.9"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"