mars3d-wind 3.8.5 → 3.8.6

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.
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.8.5
5
- * 编译日期:2024-10-29 17:24
4
+ * 版本信息:v3.8.6
5
+ * 编译日期:2024-11-06 11:10
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:免费公开版 ,2024-08-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(_0x3ecf10,_0x4f50ff){const _0x190415=_0x3ecf10();function _0x31f2e3(_0x1b24b3,_0x5240cb){return _0x8444(_0x1b24b3- -0x25f,_0x5240cb);}function _0x276674(_0x5119f2,_0x11d1b0){return _0x8444(_0x5119f2-0x63,_0x11d1b0);}while(!![]){try{const _0x24cd43=parseInt(_0x31f2e3(-0x136,-0xfa))/0x1+-parseInt(_0x276674(0x1b5,0x18b))/0x2+-parseInt(_0x31f2e3(-0xdb,-0x76))/0x3*(parseInt(_0x31f2e3(-0x118,-0xc8))/0x4)+-parseInt(_0x276674(0x152,0x1c2))/0x5*(-parseInt(_0x31f2e3(-0x12f,-0x18c))/0x6)+-parseInt(_0x276674(0x107,0xbe))/0x7+parseInt(_0x31f2e3(-0xcf,-0x10e))/0x8+parseInt(_0x276674(0x187,0x1bd))/0x9*(-parseInt(_0x276674(0x1ab,0x1e0))/0xa);if(_0x24cd43===_0x4f50ff)break;else _0x190415['push'](_0x190415['shift']());}catch(_0x1dc0ab){_0x190415['push'](_0x190415['shift']());}}}(_0x3e68,0x41138));function _interopNamespace(_0x4e6bf0){if(_0x4e6bf0&&_0x4e6bf0[_0xe71164(0x3fe,0x442)])return _0x4e6bf0;var _0x343527=Object['create'](null);function _0x5b7ae2(_0x38c141,_0x26ba28){return _0x8444(_0x26ba28- -0x199,_0x38c141);}function _0xe71164(_0x43e6b6,_0x3fa30e){return _0x8444(_0x3fa30e-0x2c2,_0x43e6b6);}return _0x4e6bf0&&Object['keys'](_0x4e6bf0)['forEach'](function(_0x2c55a3){function _0x784d5b(_0x459a03,_0x11fe7f){return _0xe71164(_0x11fe7f,_0x459a03- -0x376);}if(_0x2c55a3!==_0x784d5b(0x63,0xdc)){var _0x155ac9=Object['getOwnPropertyDescriptor'](_0x4e6bf0,_0x2c55a3);Object['defineProperty'](_0x343527,_0x2c55a3,_0x155ac9['get']?_0x155ac9:{'enumerable':!![],'get':function(){return _0x4e6bf0[_0x2c55a3];}});}}),_0x343527[_0xe71164(0x437,0x3d9)]=_0x4e6bf0,_0x343527;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$7=mars3d__namespace['Cesium'];function getU(_0x388c12,_0x359a9f){function _0x265928(_0x1dc47c,_0x4b304f){return _0x8444(_0x1dc47c-0x128,_0x4b304f);}const _0xa25bc5=_0x388c12*Math['cos'](Cesium$7[_0x265928(0x216,0x200)]['toRadians'](_0x359a9f));return _0xa25bc5;}function getV(_0x3a78b3,_0x142474){function _0x29acf7(_0x2a2540,_0x5b3e4b){return _0x8444(_0x5b3e4b- -0x39d,_0x2a2540);}const _0x30920d=_0x3a78b3*Math[_0x458077(0x57,0xc0)](Cesium$7[_0x29acf7(-0x253,-0x2af)]['toRadians'](_0x142474));function _0x458077(_0x13f21b,_0x15367d){return _0x8444(_0x13f21b- -0x94,_0x15367d);}return _0x30920d;}function getSpeed(_0x50daa5,_0x23de9b){function _0x399b89(_0x29efc0,_0xc22ee){return _0x8444(_0xc22ee- -0x23a,_0x29efc0);}const _0x310f05=Math[_0x399b89(-0x18e,-0x18d)](Math['pow'](_0x50daa5,0x2)+Math['pow'](_0x23de9b,0x2));return _0x310f05;}function getDirection(_0xe46eb8,_0x37d505){function _0x50e10d(_0x47f761,_0x2b0d84){return _0x8444(_0x47f761-0x14c,_0x2b0d84);}let _0xaa5a1b=Cesium$7['Math'][_0x50e10d(0x22f,0x28d)](Math['atan2'](_0x37d505,_0xe46eb8));return _0xaa5a1b+=_0xaa5a1b<0x0?0x168:0x0,_0xaa5a1b;}const _0x1d1ddc={};_0x1d1ddc['__proto__']=null,_0x1d1ddc['getU']=getU,_0x1d1ddc[_0x413bec(0x353,0x3ae)]=getV,_0x1d1ddc['getSpeed']=getSpeed,_0x1d1ddc['getDirection']=getDirection;var WindUtil=_0x1d1ddc;const Cesium$6=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x54b749){this[_0x340cae(-0x255,-0x1e0)]=_0x54b749['commandType'],this[_0x1f5429(0x6,-0x5c)]=_0x54b749[_0x1f5429(0x6,0x2a)];function _0x1f5429(_0x43c530,_0x12f315){return _0x413bec(_0x43c530- -0x29e,_0x12f315);}this['attributeLocations']=_0x54b749[_0x340cae(-0x9c,-0x11f)],this[_0x340cae(-0x148,-0x142)]=_0x54b749['primitiveType'];function _0x340cae(_0x1a80ce,_0x45b33d){return _0x413bec(_0x45b33d- -0x46d,_0x1a80ce);}this['uniformMap']=_0x54b749[_0x340cae(-0x74,-0xfe)],this['vertexShaderSource']=_0x54b749['vertexShaderSource'],this['fragmentShaderSource']=_0x54b749['fragmentShaderSource'],this['rawRenderState']=_0x54b749[_0x340cae(-0x21c,-0x19a)],this['framebuffer']=_0x54b749[_0x340cae(-0x13d,-0x118)],this['outputTexture']=_0x54b749[_0x1f5429(0x3c,0x34)],this[_0x340cae(-0x1c1,-0x1d1)]=_0x54b749['autoClear']??![],this['preExecute']=_0x54b749['preExecute'],this[_0x1f5429(-0x39,-0x3f)]=!![],this[_0x1f5429(-0x3c,-0x87)]=undefined,this['clearCommand']=undefined,this[_0x1f5429(-0x2,-0x6c)]&&(this['clearCommand']=new Cesium$6[(_0x1f5429(-0x33,-0x71))]({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x340cae(-0xe7,-0x118)],'pass':Cesium$6[_0x1f5429(0xc,-0x15)]['OPAQUE']}));}[_0x413bec(0x307,0x314)](_0xd7af41){function _0x1a8644(_0x3edb02,_0x1eff6d){return _0x413bec(_0x3edb02- -0x86,_0x1eff6d);}function _0x42f12d(_0x41d584,_0x4195e2){return _0x92c83a(_0x41d584,_0x4195e2-0x148);}switch(this['commandType']){case'Draw':{const _0x4a4652=Cesium$6['VertexArray'][_0x1a8644(0x2a4,0x258)]({'context':_0xd7af41,'geometry':this[_0x42f12d(-0x32,-0x86)],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6[_0x1a8644(0x2b9,0x338)]['STATIC_DRAW']}),_0x38016e={};_0x38016e['context']=_0xd7af41,_0x38016e[_0x42f12d(-0x2b,0x24)]=this['attributeLocations'],_0x38016e['vertexShaderSource']=this['vertexShaderSource'],_0x38016e['fragmentShaderSource']=this[_0x42f12d(0x72,0x2f)];const _0x192dec=Cesium$6['ShaderProgram']['fromCache'](_0x38016e),_0xb997a9=Cesium$6['RenderState']['fromCache'](this['rawRenderState']);return new Cesium$6['DrawCommand']({'owner':this,'vertexArray':_0x4a4652,'primitiveType':this['primitiveType'],'uniformMap':this[_0x1a8644(0x2e9,0x35b)],'modelMatrix':Cesium$6['Matrix4'][_0x42f12d(0x28,0x34)],'shaderProgram':_0x192dec,'framebuffer':this[_0x42f12d(0xa1,0x2b)],'renderState':_0xb997a9,'pass':Cesium$6['Pass']['OPAQUE']});}case'Compute':{const _0x3f3fe5={};return _0x3f3fe5['owner']=this,_0x3f3fe5['fragmentShaderSource']=this[_0x42f12d(-0x1d,0x2f)],_0x3f3fe5['uniformMap']=this['uniformMap'],_0x3f3fe5['outputTexture']=this['outputTexture'],_0x3f3fe5['persists']=!![],new Cesium$6['ComputeCommand'](_0x3f3fe5);}}}['setGeometry'](_0xff8f02,_0x5b16fb){function _0x2a1257(_0x19f3c1,_0x5b31aa){return _0x92c83a(_0x5b31aa,_0x19f3c1-0x384);}this['geometry']=_0x5b16fb;function _0x158c3c(_0x3e1466,_0x221d70){return _0x92c83a(_0x3e1466,_0x221d70-0x196);}const _0x467237=Cesium$6['VertexArray'][_0x158c3c(0xcb,0x4e)]({'context':_0xff8f02,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage'][_0x158c3c(0x15,0x2d)]});this[_0x2a1257(0x174,0x1a8)]['vertexArray']=_0x467237;}[_0x92c83a(-0x12d,-0x13d)](_0x11b423){if(!this[_0x1a869c(0xf3,0x61)])return;if(_0x11b423['mode']!==Cesium$6['SceneMode'][_0x80275a(0x1bb,0x1e8)])return;function _0x1a869c(_0x29cef2,_0x1469c9){return _0x413bec(_0x29cef2- -0x172,_0x1469c9);}!Cesium$6['defined'](this['commandToExecute'])&&(this[_0x1a869c(0xf0,0x152)]=this[_0x1a869c(0x195,0x20f)](_0x11b423['context']));Cesium$6['defined'](this['preExecute'])&&this[_0x80275a(0x196,0x136)]();Cesium$6['defined'](this['clearCommand'])&&_0x11b423['commandList']['push'](this['clearCommand']);function _0x80275a(_0x42b34c,_0x37c7e7){return _0x92c83a(_0x37c7e7,_0x42b34c-0x37f);}_0x11b423['commandList'][_0x1a869c(0x13b,0x17f)](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){function _0x366877(_0x1efc29,_0x5b8bf4){return _0x92c83a(_0x5b8bf4,_0x1efc29-0x119);}if(this['clearCommand']){var _0x5f443f,_0x29dd6a;(_0x5f443f=this[_0x366877(-0xfa,-0x170)])!==null&&_0x5f443f!==void 0x0&&_0x5f443f['vertexArray']&&this[_0x57313c(-0x2e1,-0x2a5)]['vertexArray'][_0x57313c(-0x1dd,-0x17a)](),(_0x29dd6a=this['clearCommand'])!==null&&_0x29dd6a!==void 0x0&&_0x29dd6a[_0x57313c(-0x1d4,-0x21a)]&&this[_0x366877(-0xfa,-0xc0)]['shaderProgram'][_0x366877(0xa,0x49)](),delete this['clearCommand'];}this['commandToExecute']&&(this['commandToExecute']['vertexArray']&&this['commandToExecute']['vertexArray']['destroy'](),this[_0x366877(-0xf7,-0xa7)]['shaderProgram']&&this['commandToExecute']['shaderProgram'][_0x366877(0xa,0x38)](),delete this['commandToExecute']);function _0x57313c(_0x4d6aad,_0x3cc8bf){return _0x413bec(_0x4d6aad- -0x540,_0x3cc8bf);}return Cesium$6[_0x366877(-0x45,-0x46)](this);}}const Cesium$5=mars3d__namespace[_0x413bec(0x350,0x345)],Util=(function(){function _0x5c2b13(_0x29fb07,_0x27bf6d){return _0x413bec(_0x29fb07- -0x3dd,_0x27bf6d);}const _0x579fd2=function(){const _0x3756a0=new Cesium$5['Geometry']({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5[_0xafcd8a(0x1eb,0x24e)]['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});function _0xafcd8a(_0xdea7d2,_0x28ae72){return _0x8444(_0xdea7d2-0x6e,_0x28ae72);}return _0x3756a0;},_0x1965b5=function(_0x45ae2f,_0x1865c6){if(Cesium$5[_0x47f6fa(0x428,0x467)](_0x1865c6)){const _0x4b98b4={};_0x4b98b4[_0x211084(0x61,0x72)]=_0x1865c6,_0x45ae2f['source']=_0x4b98b4;}const _0x4c6fc5=new Cesium$5['Texture'](_0x45ae2f);function _0x211084(_0x3aa957,_0x480ec0){return _0x8444(_0x3aa957- -0xf6,_0x480ec0);}function _0x47f6fa(_0x2c1f8b,_0x49ef88){return _0x8444(_0x2c1f8b-0x363,_0x49ef88);}return _0x4c6fc5;},_0x43b291=function(_0x4431df,_0x3388ea,_0x133d1d){function _0x5671e7(_0x5939bc,_0x12bf3d){return _0x8444(_0x12bf3d- -0x212,_0x5939bc);}const _0x3d9a1a={};_0x3d9a1a['context']=_0x4431df,_0x3d9a1a['colorTextures']=[_0x3388ea],_0x3d9a1a[_0x5671e7(-0x84,-0x10b)]=_0x133d1d;const _0x532ac0=new Cesium$5['Framebuffer'](_0x3d9a1a);return _0x532ac0;},_0x362f9e=function(_0x5c9f8f){const _0x2a8df9=!![],_0x12662f=![],_0x100cf5={};_0x100cf5['viewport']=_0x5c9f8f['viewport'],_0x100cf5['depthTest']=_0x5c9f8f[_0x41f28d(0x16d,0x1c6)],_0x100cf5[_0x41f28d(0xc3,0xfc)]=_0x5c9f8f['depthMask'],_0x100cf5[_0x13dfa4(0x445,0x469)]=_0x5c9f8f['blending'];function _0x41f28d(_0x325154,_0x57cd14){return _0x8444(_0x57cd14-0x3f,_0x325154);}const _0x2000bf=_0x100cf5;function _0x13dfa4(_0x22525f,_0x56da44){return _0x8444(_0x56da44-0x381,_0x22525f);}const _0x2104e4=Cesium$5['Appearance']['getDefaultRenderState'](_0x2a8df9,_0x12662f,_0x2000bf);return _0x2104e4;},_0x5d0a3e=function(_0x468ff1){const _0x2f9c78={},_0x2ea80f=Cesium$5['Math']['mod'](_0x468ff1['west'],Cesium$5[_0x36de75(0x245,0x25b)]['TWO_PI']);function _0x8ef052(_0x398707,_0x1801ac){return _0x8444(_0x398707- -0x2e9,_0x1801ac);}const _0x5c8796=Cesium$5['Math']['mod'](_0x468ff1[_0x8ef052(-0x147,-0x1ab)],Cesium$5['Math']['TWO_PI']),_0x5dccd1=_0x468ff1['width'];let _0x503886,_0x28fdc4;_0x5dccd1>Cesium$5['Math'][_0x36de75(0x282,0x249)]?(_0x503886=0x0,_0x28fdc4=Cesium$5['Math']['TWO_PI']):_0x5c8796-_0x2ea80f<_0x5dccd1?(_0x503886=_0x2ea80f,_0x28fdc4=_0x2ea80f+_0x5dccd1):(_0x503886=_0x2ea80f,_0x28fdc4=_0x5c8796);_0x2f9c78['lon']={'min':Cesium$5[_0x36de75(0x299,0x25b)]['toDegrees'](_0x503886),'max':Cesium$5[_0x36de75(0x219,0x25b)]['toDegrees'](_0x28fdc4)};function _0x36de75(_0x3e3542,_0x334ef5){return _0x8444(_0x334ef5-0x16d,_0x3e3542);}const _0x3ca530=_0x468ff1['south'],_0x569b41=_0x468ff1['north'],_0x254aec=_0x468ff1['height'],_0x109199=_0x254aec>Cesium$5['Math']['PI']/0xc?_0x254aec/0x2:0x0;let _0x4719ef=Cesium$5['Math']['clampToLatitudeRange'](_0x3ca530-_0x109199),_0x2bbe39=Cesium$5['Math'][_0x8ef052(-0x20b,-0x1ed)](_0x569b41+_0x109199);return _0x4719ef<-Cesium$5[_0x8ef052(-0x1fb,-0x1ef)]['PI_OVER_THREE']&&(_0x4719ef=-Cesium$5[_0x36de75(0x2ce,0x25b)][_0x8ef052(-0x235,-0x1c6)]),_0x2bbe39>Cesium$5['Math']['PI_OVER_THREE']&&(_0x2bbe39=Cesium$5['Math']['PI_OVER_TWO']),_0x2f9c78['lat']={'min':Cesium$5['Math'][_0x36de75(0x1cc,0x250)](_0x4719ef),'max':Cesium$5['Math'][_0x8ef052(-0x206,-0x26f)](_0x2bbe39)},_0x2f9c78;},_0xd6ecc2={};return _0xd6ecc2['getFullscreenQuad']=_0x579fd2,_0xd6ecc2['createTexture']=_0x1965b5,_0xd6ecc2['createFramebuffer']=_0x43b291,_0xd6ecc2[_0x5c2b13(-0xec,-0xc0)]=_0x362f9e,_0xd6ecc2['viewRectangleToLonLatRange']=_0x5d0a3e,_0xd6ecc2;}());var fullscreenVert='#version\x20300\x20es\x0a\x0ain\x20vec3\x20position;\x0ain\x20vec2\x20st;\x0a\x0aout\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a\x20\x20gl_Position\x20=\x20vec4(position,\x201.0f);\x0a}\x0a',screenDrawFrag='#version\x20300\x20es\x0a\x0auniform\x20sampler2D\x20trailsColorTexture;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec4\x20trailsColor\x20=\x20texture(trailsColorTexture,\x20textureCoordinate);\x0a\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20if(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20trailsColor;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20}\x0a}\x0a',segmentDrawFrag='#version\x20300\x20es\x0a\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20bool\x20colour;\x0a\x0ain\x20float\x20heightNormalization;\x0ain\x20float\x20speedNormalization;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speedNormalization\x20>\x20zero)\x20{\x0a\x20\x20\x20\x20if(colour)\x20{\x0a\x20\x20\x20\x20\x20\x20fragColor\x20=\x20texture(colorTable,\x20vec2(heightNormalization,\x20zero));\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20fragColor\x20=\x20texture(colorTable,\x20vec2(speedNormalization,\x20zero));\x0a\x20\x20\x20\x20}\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',segmentDrawVert='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20lines\x20drawing\x0ain\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0auniform\x20vec2\x20hRange;\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20vec2\x20wSpeedRange;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0aout\x20float\x20heightNormalization;\x0aout\x20float\x20speedNormalization;\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\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(lonLatLev.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.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+\x20lonLatLev.z;\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(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0f,\x20360.0f)\x20-\x20180.0f;\x0a\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign)\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\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0f;\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\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\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20vec3\x20percent\x20=\x20vec3(0.0f);\x0a\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20if(wSpeedRange.y\x20==\x20wSpeedRange.x)\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x200.0f;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x20(speed.z\x20-\x20wSpeedRange.x)\x20/\x20(wSpeedRange.y\x20-\x20wSpeedRange.x);\x0a\x20\x20}\x0a\x20\x20float\x20norm\x20=\x20length(percent);\x0a\x0a\x20\x20return\x20norm;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20vec3\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20vec3\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20vec3\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rgb;\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\x20\x20\x20\x20//\x20render\x20lines\x20with\x20triangles\x20and\x20miter\x20joint\x0a\x20\x20\x20\x20//\x20read\x20https://blog.scottlogic.com/2019/11/18/drawing-lines-with-webgl.html\x20for\x20detail\x0a\x20\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20projectedCoordinates.next,\x20offsetSign);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.next\x20+\x20offset;\x0a\x20\x20}\x0a\x0a\x20\x20heightNormalization\x20=\x20(currentPosition.z\x20-\x20hRange.x)\x20/\x20(hRange.y\x20-\x20hRange.x);\x0a\x0a\x20\x20speedNormalization\x20=\x20texture(particlesSpeed,\x20particleIndex).a;\x0a}\x0a',trailDrawFrag=_0x413bec(0x268,0x2cb);const Cesium$4=mars3d__namespace[_0x92c83a(-0x96,-0x122)];class ParticlesRendering{constructor(_0x375745,_0x18c8c1,_0x4fb552,_0x274bda,_0x319fa4){this['colour']=_0x4fb552[_0x1a6c6e(0x32a,0x367)]==='height',this[_0x1a6c6e(0x33f,0x2d7)](_0x375745,_0x18c8c1,_0x4fb552[_0xf22a59(-0x1f,0x48)]);function _0x1a6c6e(_0x5995bb,_0x4ae8b0){return _0x413bec(_0x5995bb-0x1a,_0x4ae8b0);}this['createRenderingFramebuffers'](_0x375745);function _0xf22a59(_0x4d6d7e,_0xadbc3c){return _0x413bec(_0xadbc3c- -0x2c8,_0x4d6d7e);}this[_0xf22a59(0x2f,-0x4)](_0x375745,_0x18c8c1,_0x4fb552,_0x274bda,_0x319fa4);}['createRenderingTextures'](_0x5028a0,_0x3c729f,_0x4c575b){const _0x5e0055={};_0x5e0055['context']=_0x5028a0,_0x5e0055[_0x2cb005(0x196,0x183)]=_0x5028a0['drawingBufferWidth'],_0x5e0055[_0x2cb005(0xed,0x158)]=_0x5028a0[_0x2cb005(0x17d,0x1bb)];function _0x2cb005(_0x29a800,_0x27709e){return _0x92c83a(_0x29a800,_0x27709e-0x2fc);}_0x5e0055['pixelFormat']=Cesium$4['PixelFormat']['RGBA'],_0x5e0055['pixelDatatype']=Cesium$4[_0x4ca2eb(0x8d,0x52)]['UNSIGNED_BYTE'];function _0x4ca2eb(_0xd98e85,_0x4e7de6){return _0x92c83a(_0x4e7de6,_0xd98e85-0x1f4);}const _0x1785fb=_0x5e0055,_0x48322a={};_0x48322a['context']=_0x5028a0,_0x48322a[_0x4ca2eb(0x7b,0x37)]=_0x5028a0['drawingBufferWidth'],_0x48322a['height']=_0x5028a0[_0x2cb005(0x1c4,0x1bb)],_0x48322a['pixelFormat']=Cesium$4['PixelFormat'][_0x4ca2eb(0x3f,-0x2b)],_0x48322a[_0x4ca2eb(0x101,0x184)]=Cesium$4['PixelDatatype'][_0x2cb005(0xa2,0xff)];const _0x1c20d3=_0x48322a,_0x27a846=_0x4c575b['length'],_0x347e8d=new Float32Array(_0x27a846*0x3);for(let _0x39034c=0x0;_0x39034c<_0x27a846;_0x39034c++){const _0x25d8dc=Cesium$4['Color']['fromCssColorString'](_0x4c575b[_0x39034c]);_0x347e8d[0x3*_0x39034c]=_0x25d8dc['red'],_0x347e8d[0x3*_0x39034c+0x1]=_0x25d8dc['green'],_0x347e8d[0x3*_0x39034c+0x2]=_0x25d8dc['blue'];}const _0x67410f={'context':_0x5028a0,'width':_0x27a846,'height':0x1,'pixelFormat':Cesium$4['PixelFormat']['RGB'],'pixelDatatype':Cesium$4['PixelDatatype'][_0x4ca2eb(0x6a,0x40)],'sampler':new Cesium$4[(_0x4ca2eb(0xd4,0x164))]({'minificationFilter':Cesium$4['TextureMinificationFilter'][_0x2cb005(0x184,0x17c)],'magnificationFilter':Cesium$4['TextureMagnificationFilter'][_0x2cb005(0x17e,0x17c)]})};this[_0x2cb005(0x217,0x187)]={'segmentsColor':Util[_0x2cb005(0xc5,0x153)](_0x1785fb),'segmentsDepth':Util[_0x2cb005(0x19f,0x153)](_0x1c20d3),'currentTrailsColor':Util[_0x2cb005(0x138,0x153)](_0x1785fb),'currentTrailsDepth':Util[_0x2cb005(0x16f,0x153)](_0x1c20d3),'nextTrailsColor':Util['createTexture'](_0x1785fb),'nextTrailsDepth':Util['createTexture'](_0x1c20d3),'colorTable':Util[_0x4ca2eb(0x4b,0x5b)](_0x67410f,_0x347e8d)};}[_0x413bec(0x2f8,0x34f)](_0x362b9a){function _0x3058e0(_0x35e45e,_0x4da86b){return _0x92c83a(_0x4da86b,_0x35e45e-0x13e);}function _0x47e290(_0x158411,_0x448964){return _0x413bec(_0x158411- -0x31d,_0x448964);}this[_0x47e290(-0x5,-0x6b)]={'segments':Util['createFramebuffer'](_0x362b9a,this[_0x3058e0(-0x37,-0x62)]['segmentsColor'],this[_0x3058e0(-0x37,-0x7e)]['segmentsDepth']),'currentTrails':Util[_0x3058e0(0x37,-0x21)](_0x362b9a,this[_0x47e290(-0x20,0x1d)]['currentTrailsColor'],this[_0x3058e0(-0x37,-0x5d)]['currentTrailsDepth']),'nextTrails':Util['createFramebuffer'](_0x362b9a,this['textures']['nextTrailsColor'],this['textures']['nextTrailsDepth'])};}['createSegmentsGeometry'](_0x685ddf){const _0x49c0f4=0x4;let _0xfc8c66=[];for(let _0x3209b5=0x0;_0x3209b5<_0x685ddf[_0x566841(-0x2a0,-0x27c)];_0x3209b5++){for(let _0x75488c=0x0;_0x75488c<_0x685ddf[_0x566841(-0x233,-0x27c)];_0x75488c++){for(let _0x522beb=0x0;_0x522beb<_0x49c0f4;_0x522beb++){_0xfc8c66['push'](_0x3209b5/_0x685ddf[_0x566841(-0x278,-0x27c)]),_0xfc8c66['push'](_0x75488c/_0x685ddf['particlesTextureSize']);}}}function _0x3edc9d(_0x59d035,_0x116a1f){return _0x92c83a(_0x116a1f,_0x59d035-0x37f);}function _0x566841(_0x2b1742,_0x1a66b3){return _0x92c83a(_0x2b1742,_0x1a66b3- -0x87);}_0xfc8c66=new Float32Array(_0xfc8c66);let _0x1b6bd0=[];for(let _0x2109e3=0x0;_0x2109e3<_0x685ddf[_0x3edc9d(0x16d,0x1f0)];_0x2109e3++){_0x1b6bd0[_0x3edc9d(0x1ba,0x238)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x1b6bd0=new Float32Array(_0x1b6bd0);let _0x31613c=[];for(let _0x51c979=0x0,_0x50ec9d=0x0;_0x51c979<_0x685ddf[_0x3edc9d(0x16d,0x1f3)];_0x51c979++){_0x31613c['push'](_0x50ec9d+0x0,_0x50ec9d+0x1,_0x50ec9d+0x2,_0x50ec9d+0x2,_0x50ec9d+0x1,_0x50ec9d+0x3),_0x50ec9d+=_0x49c0f4;}_0x31613c=new Uint32Array(_0x31613c);const _0x40d72d=new Cesium$4[(_0x3edc9d(0x1c1,0x169))]({'attributes':new Cesium$4[(_0x3edc9d(0x28d,0x264))]({'st':new Cesium$4[(_0x566841(-0x232,-0x28a))]({'componentDatatype':Cesium$4['ComponentDatatype'][_0x566841(-0x1eb,-0x211)],'componentsPerAttribute':0x2,'values':_0xfc8c66}),'normal':new Cesium$4[(_0x3edc9d(0x17c,0x172))]({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':_0x1b6bd0})}),'indices':_0x31613c});return _0x40d72d;}[_0x92c83a(-0x1b6,-0x1ae)](_0x20bf5d,_0x39f76a,_0x5221f7,_0x22a140,_0x33d91a){const _0x349abf=this,_0x57f411={};_0x57f411['st']=0x0,_0x57f411['normal']=0x1;const _0x2917a5={};_0x2917a5[_0x5d2cb2(-0xb1,-0x47)]=[segmentDrawVert];const _0x28deca={};_0x28deca['sources']=[segmentDrawFrag];const _0x252b1c={};_0x252b1c[_0x5d2cb2(-0xc6,-0x4d)]=!![];const _0x281460={};_0x281460[_0x5d2cb2(-0xd1,-0x14e)]=undefined,_0x281460['depthTest']=_0x252b1c,_0x281460['depthMask']=!![];const _0x5cb4f5={};_0x5cb4f5['position']=0x0,_0x5cb4f5['st']=0x1;const _0x10a56a={};_0x10a56a[_0x5d2cb2(-0xa6,-0x73)]=['DISABLE_GL_POSITION_LOG_DEPTH'],_0x10a56a['sources']=[fullscreenVert];const _0x8f2e9b={};_0x8f2e9b[_0x5d2cb2(-0xa6,-0x82)]=[_0x5d2cb2(-0xc1,-0xc2)],_0x8f2e9b[_0x5d2cb2(-0xb1,-0xaf)]=[trailDrawFrag];const _0xa566a5={};_0xa566a5[_0x240a43(0x2cd,0x2bd)]=0x0,_0xa566a5['st']=0x1;const _0xa37cd2={};_0xa37cd2[_0x240a43(0x280,0x2b0)]=['DISABLE_GL_POSITION_LOG_DEPTH'];function _0x240a43(_0x15ba27,_0x406f25){return _0x92c83a(_0x406f25,_0x15ba27-0x466);}_0xa37cd2[_0x240a43(0x275,0x2ff)]=[fullscreenVert];const _0x5c8459={};_0x5c8459[_0x5d2cb2(-0xa6,-0xa0)]=['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],_0x5c8459['sources']=[screenDrawFrag];function _0x5d2cb2(_0x21a988,_0x4b478d){return _0x92c83a(_0x4b478d,_0x21a988-0x140);}const _0x239f2b={};_0x239f2b[_0x5d2cb2(-0xc6,-0xeb)]=![];const _0x319169={};_0x319169['enabled']=!![],this['primitives']={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x57f411,'geometry':this[_0x240a43(0x36f,0x2e4)](_0x5221f7),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'previousParticlesPosition':function(){function _0x25ba2b(_0x528b29,_0x42c10e){return _0x240a43(_0x42c10e- -0x187,_0x528b29);}return _0x33d91a['particlesTextures'][_0x25ba2b(0x17f,0x128)];},'currentParticlesPosition':function(){function _0xf56904(_0x211a8b,_0x2692ec){return _0x5d2cb2(_0x2692ec- -0x12d,_0x211a8b);}return _0x33d91a[_0xf56904(-0xf2,-0x163)]['currentParticlesPosition'];},'postProcessingPosition':function(){return _0x33d91a['particlesTextures']['postProcessingPosition'];},'particlesSpeed':function(){return _0x33d91a['particlesTextures']['particlesSpeed'];},'colorTable':function(){function _0x5465d9(_0x447f77,_0xac96a){return _0x5d2cb2(_0xac96a-0x1c9,_0x447f77);}return _0x349abf['textures'][_0x5465d9(0x178,0x166)];},'aspect':function(){function _0x483711(_0x11c9d3,_0x4d7232){return _0x5d2cb2(_0x4d7232-0x3d7,_0x11c9d3);}return _0x20bf5d['drawingBufferWidth']/_0x20bf5d[_0x483711(0x3e1,0x3d6)];},'H':function(){return _0x39f76a['H']['array'];},'hRange':function(){function _0x35f055(_0x319af3,_0x360891){return _0x240a43(_0x319af3- -0x37,_0x360891);}return new Cesium$4['Cartesian2'](_0x39f76a['H'][_0x35f055(0x275,0x293)],_0x39f76a['H']['max']);},'uSpeedRange':function(){function _0x47ad4e(_0x41b5d7,_0x1ca8d4){return _0x240a43(_0x41b5d7-0x1eb,_0x1ca8d4);}function _0x466289(_0x49e38b,_0x208bad){return _0x240a43(_0x208bad- -0x2a5,_0x49e38b);}return new Cesium$4['Cartesian2'](_0x39f76a['U'][_0x466289(0x95,0x7)],_0x39f76a['U'][_0x47ad4e(0x4a4,0x4ce)]);},'vSpeedRange':function(){function _0x11683d(_0x40c751,_0x241d30){return _0x240a43(_0x40c751-0x222,_0x241d30);}function _0x3fd9c0(_0x154559,_0x2e8ac3){return _0x240a43(_0x2e8ac3- -0x10a,_0x154559);}return new Cesium$4[(_0x3fd9c0(0x1bc,0x17e))](_0x39f76a['V']['min'],_0x39f76a['V'][_0x11683d(0x4db,0x492)]);},'wSpeedRange':function(){function _0x3046da(_0x303801,_0x6ed1b2){return _0x5d2cb2(_0x6ed1b2-0x28c,_0x303801);}function _0x446a51(_0x268a2d,_0x1c7197){return _0x240a43(_0x268a2d- -0xe,_0x1c7197);}return new Cesium$4[(_0x446a51(0x27a,0x2b0))](_0x39f76a['W']['min'],_0x39f76a['W'][_0x446a51(0x2ab,0x287)]);},'pixelSize':function(){function _0x5a7992(_0x1b6348,_0x2dc587){return _0x240a43(_0x1b6348- -0x162,_0x2dc587);}return _0x22a140[_0x5a7992(0x131,0x16a)];},'lineWidth':function(){function _0x541f41(_0x1e6af3,_0x19dfdd){return _0x5d2cb2(_0x19dfdd-0xa9,_0x1e6af3);}return _0x5221f7[_0x541f41(0xaf,0x7a)];},'particleHeight':function(){return _0x5221f7['particleHeight'];},'colour':function(){return _0x349abf['colour'];}},'vertexShaderSource':new Cesium$4[(_0x5d2cb2(-0xe,0x21))](_0x2917a5),'fragmentShaderSource':new Cesium$4[(_0x240a43(0x318,0x36b))](_0x28deca),'rawRenderState':Util[_0x5d2cb2(-0x41,-0x18)](_0x281460),'framebuffer':this[_0x240a43(0x30c,0x2ae)]['segments'],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x5d2cb2(-0xc5,-0x53),'attributeLocations':_0x5cb4f5,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4[_0x240a43(0x282,0x310)][_0x5d2cb2(-0xaa,-0x40)],'uniformMap':{'segmentsColorTexture':function(){function _0x220dce(_0x1cb860,_0x289ba4){return _0x240a43(_0x289ba4- -0x3ec,_0x1cb860);}return _0x349abf['textures'][_0x220dce(-0x188,-0x102)];},'segmentsDepthTexture':function(){function _0x210c0f(_0x36c848,_0x158351){return _0x240a43(_0x36c848-0x1da,_0x158351);}return _0x349abf[_0x210c0f(0x4cb,0x489)]['segmentsDepth'];},'currentTrailsColor':function(){function _0x252bf8(_0x32b8f2,_0x34d1c2){return _0x5d2cb2(_0x34d1c2- -0x17a,_0x32b8f2);}function _0xe7670f(_0xcfbe38,_0x5e4c2d){return _0x5d2cb2(_0x5e4c2d-0xcd,_0xcfbe38);}return _0x349abf['framebuffers'][_0x252bf8(-0xba,-0x13a)][_0x252bf8(-0x20c,-0x196)](0x0);},'trailsDepthTexture':function(){return _0x349abf['framebuffers']['currentTrails']['depthTexture'];},'fadeOpacity':function(){return _0x5221f7['fadeOpacity'];}},'vertexShaderSource':new Cesium$4[(_0x5d2cb2(-0xe,0x4c))](_0x10a56a),'fragmentShaderSource':new Cesium$4[(_0x5d2cb2(-0xe,0x5d))](_0x8f2e9b),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction']['ALWAYS']},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function(){if(_0x5221f7[_0x27d06a(-0x126,-0x111)]){const _0x41d417=_0x349abf[_0x5d3b08(0x47b,0x482)]['currentTrails'];_0x349abf[_0x27d06a(-0x82,-0xc5)]['currentTrails']=_0x349abf['framebuffers'][_0x27d06a(-0x1b4,-0x131)],_0x349abf[_0x5d3b08(0x410,0x482)][_0x5d3b08(0x48c,0x416)]=_0x41d417;}function _0x5d3b08(_0x58e182,_0xa85f8c){return _0x5d2cb2(_0xa85f8c-0x49c,_0x58e182);}_0x349abf['primitives']['trails']['commandToExecute'][_0x5d3b08(0x4b4,0x4bf)]=_0x349abf['framebuffers']['nextTrails'];function _0x27d06a(_0x468b2d,_0x90ef12){return _0x5d2cb2(_0x90ef12- -0xab,_0x468b2d);}_0x349abf[_0x5d3b08(0x3d0,0x405)][_0x27d06a(-0x3f,-0xc0)][_0x5d3b08(0x38b,0x3c9)][_0x27d06a(-0xa8,-0x88)]=_0x349abf[_0x5d3b08(0x42c,0x482)][_0x27d06a(-0x1bb,-0x131)];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0xa566a5,'geometry':Util[_0x5d2cb2(0x25,0x96)](),'primitiveType':Cesium$4[_0x5d2cb2(-0xa4,-0x94)][_0x240a43(0x27c,0x2c7)],'uniformMap':{'trailsColorTexture':function(){function _0x66b39(_0x80ec0a,_0x46611e){return _0x240a43(_0x80ec0a- -0x303,_0x46611e);}function _0x37474a(_0x3d2426,_0x1b679b){return _0x240a43(_0x1b679b- -0x296,_0x3d2426);}return _0x349abf['framebuffers'][_0x37474a(-0x68,0xa)][_0x37474a(0x48,0x74)](0x0);},'trailsDepthTexture':function(){return _0x349abf['framebuffers']['nextTrails']['depthTexture'];}},'vertexShaderSource':new Cesium$4[(_0x5d2cb2(-0xe,0x5e))](_0xa37cd2),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0x5c8459),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':_0x239f2b,'depthMask':!![],'blending':_0x319169}),'framebuffer':undefined})};}}var CalculateSpeedShader=_0x413bec(0x2ee,0x2f3),PostProcessingPositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20norm)\x0a\x0auniform\x20sampler2D\x20H;\x20//\x20particles\x20height\x20textures\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0auniform\x20vec2\x20viewerLonRange;\x0auniform\x20vec2\x20viewerLatRange;\x0a\x0aconst\x20float\x20randomCoefficient\x20=\x200.1f;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0aconst\x20float\x20dropRate\x20=\x200.1f;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0aconst\x20float\x20dropRateBump\x20=\x200.1f;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLatLev.x\x20=\x20clamp(lonLatLev.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20minimum.y,\x20maximum.y);\x0a\x20\x20lonLatLev.z\x20=\x20clamp(lonLatLev.z,\x20minimum.z,\x20maximum.z);\x0a\x0a\x20\x20vec3\x20index3D\x20=\x20vec3(0.0f);\x0a\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20index3D.z\x20=\x20ceil((lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0avec4\x20getTextureValue(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20vec4\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D);\x0a\x20\x20return\x20result;\x0a}\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\x0abool\x20particleNoSpeed(vec3\x20particle)\x20{\x0a\x20\x20vec4\x20speed\x20=\x20getTextureValue(particlesSpeed,\x20particle);\x0a\x20\x20return\x20speed.r\x20==\x200.0f\x20&&\x20speed.g\x20==\x200.0f;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0f);\x0a\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20float\x20height\x20=\x20getTextureValue(H,\x20vec3(randomLon,\x20randomLat,\x20lev)).r;\x0a\x0a\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20height);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20viewerLatRange.x\x20||\x20particle.y\x20>\x20viewerLatRange.y\x20||\x20particle.x\x20<\x20viewerLonRange.x\x20||\x20particle.x\x20>\x20viewerLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec3\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rgb;\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.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\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,\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);\x0a\x20\x20}\x0a}\x0a',UpdatePositionShader=_0x92c83a(-0x214,-0x1f2);function _0x413bec(_0x1c1f0c,_0x3beb87){return _0x8444(_0x1c1f0c-0x1ba,_0x3beb87);}const Cesium$3=mars3d__namespace['Cesium'];class ParticlesComputing{constructor(_0x449949,_0x51aaf2,_0x2d083a,_0x77dcd6){function _0x3bd22e(_0x5d0bff,_0x274f32){return _0x413bec(_0x5d0bff- -0x16e,_0x274f32);}this[_0x4ddeb2(0x14,0x8c)]=_0x51aaf2;function _0x4ddeb2(_0x45add7,_0x5f42e6){return _0x92c83a(_0x45add7,_0x5f42e6-0x1d8);}this[_0x4ddeb2(0x17,0x9e)](_0x449949,_0x51aaf2),this[_0x4ddeb2(0x87,0x33)](_0x449949,_0x2d083a,_0x77dcd6),this[_0x4ddeb2(0x4f,0x7d)](_0x51aaf2,_0x2d083a,_0x77dcd6);}['createWindTextures'](_0x5addc4,_0x1b0ef3){function _0x234403(_0x4e9411,_0x242663){return _0x413bec(_0x242663-0xa0,_0x4e9411);}var _0x4152f2;const _0x4ea216={'context':_0x5addc4,'width':_0x1b0ef3[_0x3d6645(0x370,0x37e)][_0x3d6645(0x452,0x3d5)],'height':_0x1b0ef3['dimensions']['lat']*(_0x1b0ef3[_0x234403(0x392,0x37f)]['lev']||0x1),'pixelFormat':Cesium$3['PixelFormat']['RED'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3[_0x3d6645(0x2dc,0x355)]['NEAREST']})};function _0x3d6645(_0x110c6b,_0x5342a0){return _0x413bec(_0x5342a0-0x9f,_0x110c6b);}this['windTextures']={'U':Util['createTexture'](_0x4ea216,_0x1b0ef3['U'][_0x234403(0x2a5,0x322)]),'V':Util['createTexture'](_0x4ea216,_0x1b0ef3['V'][_0x3d6645(0x2d2,0x321)]),'W':Util[_0x234403(0x396,0x369)](_0x4ea216,((_0x4152f2=_0x1b0ef3['W'])===null||_0x4152f2===void 0x0?void 0x0:_0x4152f2[_0x3d6645(0x37e,0x321)])??_0x1b0ef3['U'][_0x3d6645(0x298,0x321)]),'H':Util['createTexture'](_0x4ea216,_0x1b0ef3['H']['array'])};}['createParticlesTextures'](_0x15b209,_0x3a905e,_0x477701){const _0x276ac9={'context':_0x15b209,'width':_0x3a905e['particlesTextureSize'],'height':_0x3a905e[_0x2e66b1(0x3ee,0x45d)],'pixelFormat':Cesium$3[_0x2b0ee6(0x17b,0x101)]['RGBA'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3[(_0x2b0ee6(0xf6,0x125))]({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter'][_0x2e66b1(0x426,0x4a8)]})};function _0x2e66b1(_0x498165,_0x1deadc){return _0x413bec(_0x1deadc-0x1e0,_0x498165);}const _0x50c192=this[_0x2e66b1(0x519,0x52f)](_0x3a905e[_0x2b0ee6(0x4f,0x33)],_0x477701);function _0x2b0ee6(_0x7dff59,_0x1c7c90){return _0x413bec(_0x1c7c90- -0x22d,_0x7dff59);}const _0x249eb0=new Float32Array(0x4*_0x3a905e['maxParticles'])['fill'](0x0);this['particlesTextures']={'previousParticlesPosition':Util[_0x2b0ee6(0xd0,0x9c)](_0x276ac9,_0x50c192),'currentParticlesPosition':Util['createTexture'](_0x276ac9,_0x50c192),'nextParticlesPosition':Util['createTexture'](_0x276ac9,_0x50c192),'postProcessingPosition':Util['createTexture'](_0x276ac9,_0x50c192),'particlesSpeed':Util['createTexture'](_0x276ac9,_0x249eb0)};}[_0x413bec(0x34f,0x32c)](_0x39cbe4,_0x2e0b79){function _0x390f0a(_0x66b871,_0xf4339f){return _0x413bec(_0x66b871- -0x3c3,_0xf4339f);}const _0x4652eb=new Float32Array(0x4*_0x39cbe4);for(let _0x45b276=0x0;_0x45b276<_0x39cbe4;_0x45b276++){_0x4652eb[0x4*_0x45b276]=Cesium$3[_0x3b988a(-0x8c,-0x80)][_0x390f0a(-0x147,-0x14c)](_0x2e0b79['lonRange']['x'],_0x2e0b79['lonRange']['y']),_0x4652eb[0x4*_0x45b276+0x1]=Cesium$3['Math']['randomBetween'](_0x2e0b79[_0x390f0a(-0x4f,-0xd6)]['x'],_0x2e0b79['latRange']['y']),_0x4652eb[0x4*_0x45b276+0x2]=Cesium$3['Math'][_0x390f0a(-0x147,-0xb7)](this[_0x390f0a(-0x9d,-0x115)][_0x3b988a(-0x5e,-0x58)]['min'],this['data'][_0x3b988a(-0xe,-0x58)][_0x3b988a(-0x8f,-0x63)]),_0x4652eb[0x4*_0x45b276+0x3]=0x0;}function _0x3b988a(_0x45afc0,_0x215dfd){return _0x413bec(_0x215dfd- -0x328,_0x45afc0);}return _0x4652eb;}[_0x92c83a(-0x177,-0xfb)](_0xb61dbf){function _0x1fa775(_0x43b74f,_0x24540d){return _0x413bec(_0x43b74f- -0x344,_0x24540d);}const _0x30bf76=[_0xb61dbf['dimensions']['lon'],_0xb61dbf[_0x431eb9(0x212,0x241)][_0x1fa775(-0x50,-0x9c)],_0xb61dbf[_0x431eb9(0x212,0x1b2)][_0x431eb9(0x203,0x1d2)]],_0x14a695=[_0xb61dbf['lon']['min'],_0xb61dbf['lat'][_0x431eb9(0x1eb,0x1ca)],_0xb61dbf['lev']['min']],_0xcada52=[_0xb61dbf[_0x1fa775(-0xe,-0x2f)][_0x431eb9(0x1f8,0x1ef)],_0xb61dbf['lat'][_0x431eb9(0x1f8,0x171)],_0xb61dbf['lev']['max']],_0x5bdd33=[(_0xcada52[0x0]-_0x14a695[0x0])/(_0x30bf76[0x0]-0x1),(_0xcada52[0x1]-_0x14a695[0x1])/(_0x30bf76[0x1]-0x1),_0x30bf76[0x2]>0x1?(_0xcada52[0x2]-_0x14a695[0x2])/(_0x30bf76[0x2]-0x1):0x1],_0x271f66=Math['floor'](Math[_0x431eb9(0x284,0x274)]()*_0xb61dbf['U'][_0x1fa775(-0xc2,-0x85)]['length']),_0x216198=_0x271f66%(_0x30bf76[0x0]*_0x30bf76[0x1]);function _0x431eb9(_0x4ac309,_0x23fcd2){return _0x413bec(_0x4ac309- -0xcd,_0x23fcd2);}const _0x5ce0a7=Math['floor'](_0x216198/_0x30bf76[0x0]),_0x2e63b3=_0x216198%_0x30bf76[0x0],_0x55db91=Cesium$3['Math']['randomBetween'](_0x14a695[0x0]+_0x2e63b3*_0x5bdd33[0x0],_0x14a695[0x0]+(_0x2e63b3+0x1)*_0x5bdd33[0x0]),_0x3f6bcb=Cesium$3['Math'][_0x1fa775(-0xc8,-0x66)](_0x14a695[0x1]+(_0x5ce0a7-0x1)*_0x5bdd33[0x1],_0x14a695[0x1]+_0x5ce0a7*_0x5bdd33[0x1]),_0x243c88=_0xb61dbf['H'][_0x431eb9(0x1b5,0x1a3)][_0x271f66]||0x0;return[_0x55db91,_0x3f6bcb,_0x243c88];}['destroyParticlesTextures'](){function _0x4ddd0a(_0xb1b88,_0x2787ca){return _0x413bec(_0xb1b88- -0x584,_0x2787ca);}function _0x1454bd(_0x5dcadb,_0x110864){return _0x92c83a(_0x110864,_0x5dcadb-0x287);}Object['keys'](this[_0x4ddd0a(-0x288,-0x2f0)])[_0x4ddd0a(-0x29e,-0x218)](_0xa8f1fc=>{function _0x16c943(_0x35c280,_0x5acb90){return _0x4ddd0a(_0x35c280-0x3b9,_0x5acb90);}this[_0x16c943(0x131,0xf7)][_0xa8f1fc]['destroy']();});}[_0x413bec(0x317,0x370)](_0x539a3b,_0x2ba3d5,_0x59b956){const _0x3dc96b=new Cesium$3['Cartesian3'](_0x539a3b['dimensions'][_0x236f73(0x214,0x273)],_0x539a3b[_0x30960b(0x199,0x215)][_0x30960b(0x1ac,0x22a)],_0x539a3b[_0x236f73(0x263,0x21c)]['lev']);function _0x236f73(_0x3af4ad,_0x2cb249){return _0x413bec(_0x2cb249- -0xc3,_0x3af4ad);}const _0x2e6765=new Cesium$3['Cartesian3'](_0x539a3b['lon']['min'],_0x539a3b['lat']['min'],_0x539a3b[_0x236f73(0x1c9,0x20d)]['min']),_0xc8d2ea=new Cesium$3['Cartesian3'](_0x539a3b['lon'][_0x236f73(0x268,0x202)],_0x539a3b[_0x30960b(0x212,0x22a)]['max'],_0x539a3b['lev']['max']),_0x22bdb7=new Cesium$3['Cartesian3']((_0xc8d2ea['x']-_0x2e6765['x'])/(_0x3dc96b['x']-0x1),(_0xc8d2ea['y']-_0x2e6765['y'])/(_0x3dc96b['y']-0x1),_0x3dc96b['z']>0x1?(_0xc8d2ea['z']-_0x2e6765['z'])/(_0x3dc96b['z']-0x1):0x1),_0x4fddf8=new Cesium$3[(_0x236f73(0x222,0x1d1))](_0x539a3b[_0x236f73(0x2b2,0x273)][_0x30960b(0x209,0x1ee)],_0x539a3b['lon'][_0x236f73(0x187,0x202)]),_0xaf08f1=new Cesium$3['Cartesian2'](_0x539a3b[_0x236f73(0x1af,0x231)]['min'],_0x539a3b[_0x236f73(0x2a3,0x231)][_0x30960b(0x180,0x1fb)]),_0x13d50d=new Cesium$3['Cartesian2'](_0x539a3b['U'][_0x236f73(0x1c9,0x1f5)],_0x539a3b['U']['max']),_0x3b0411=new Cesium$3['Cartesian2'](_0x539a3b['V']['min'],_0x539a3b['V'][_0x30960b(0x24e,0x1fb)]),_0x535abd=new Cesium$3['Cartesian2'](_0x539a3b['W'][_0x236f73(0x1e3,0x1f5)],_0x539a3b['W'][_0x236f73(0x1f4,0x202)]),_0x433c9b=this,_0x166d1f={};_0x166d1f['U']=function(){function _0x2e21fa(_0x5bbf8c,_0x586960){return _0x30960b(_0x586960,_0x5bbf8c- -0x168);}return _0x433c9b[_0x2e21fa(0x79,0x7d)]['U'];},_0x166d1f['V']=function(){function _0x12ed80(_0x5aad3e,_0x34dafa){return _0x30960b(_0x5aad3e,_0x34dafa- -0xbe);}return _0x433c9b[_0x12ed80(0x156,0x123)]['V'];};function _0x30960b(_0x3adf13,_0x52c5c8){return _0x92c83a(_0x3adf13,_0x52c5c8-0x3a8);}_0x166d1f['W']=function(){function _0x596940(_0x2db279,_0x1a3384){return _0x236f73(_0x2db279,_0x1a3384-0x22);}return _0x433c9b[_0x596940(0x296,0x20a)]['W'];},_0x166d1f[_0x30960b(0x30b,0x296)]=function(){return _0x433c9b['particlesTextures']['currentParticlesPosition'];},_0x166d1f['dimension']=function(){return _0x3dc96b;},_0x166d1f['minimum']=function(){return _0x2e6765;},_0x166d1f['maximum']=function(){return _0xc8d2ea;},_0x166d1f[_0x30960b(0x1b9,0x218)]=function(){return _0x22bdb7;},_0x166d1f[_0x236f73(0x278,0x214)]=function(){return _0x13d50d;},_0x166d1f['vSpeedRange']=function(){return _0x3b0411;},_0x166d1f[_0x30960b(0x218,0x1c5)]=function(){return _0x535abd;},_0x166d1f['speedScaleFactor']=function(){function _0x5a8fab(_0x13c863,_0x1974eb){return _0x30960b(_0x1974eb,_0x13c863- -0x34a);}return _0x59b956[_0x5a8fab(-0x175,-0x12e)]*_0x2ba3d5['speedFactor'];};const _0x3a324f={};_0x3a324f['sources']=[CalculateSpeedShader];const _0x3ef068={};_0x3ef068['sources']=[UpdatePositionShader];const _0x34c045={};_0x34c045[_0x30960b(0x138,0x1b7)]=[PostProcessingPositionShader],this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x30960b(0x2ae,0x273),'uniformMap':_0x166d1f,'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x3a324f),'outputTexture':this['particlesTextures'][_0x30960b(0x1b4,0x1e9)],'preExecute':function(){if(_0x2ba3d5!==undefined&&_0x2ba3d5[_0x2573bd(-0x267,-0x20d)]){const _0x3ff531=_0x433c9b[_0x31cf33(-0x2f7,-0x2a2)]['previousParticlesPosition'];_0x433c9b[_0x31cf33(-0x29b,-0x2a2)]['previousParticlesPosition']=_0x433c9b['particlesTextures'][_0x2573bd(-0x1d3,-0x265)],_0x433c9b[_0x31cf33(-0x308,-0x2a2)]['currentParticlesPosition']=_0x433c9b['particlesTextures']['postProcessingPosition'],_0x433c9b[_0x2573bd(-0x237,-0x240)]['postProcessingPosition']=_0x3ff531;}function _0x2573bd(_0x260813,_0x599072){return _0x30960b(_0x599072,_0x260813- -0x469);}function _0x31cf33(_0x37bc90,_0x5c859a){return _0x30960b(_0x37bc90,_0x5c859a- -0x4d4);}_0x433c9b['primitives']['calculateSpeed']['commandToExecute'][_0x31cf33(-0x2f3,-0x2c4)]=_0x433c9b[_0x2573bd(-0x237,-0x288)]['particlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':_0x236f73(0x22a,0x27a),'uniformMap':{'currentParticlesPosition':function(){return _0x433c9b['particlesTextures']['currentParticlesPosition'];},'particlesSpeed':function(){function _0x5cd9b4(_0x3e7482,_0xf5b533){return _0x30960b(_0x3e7482,_0xf5b533- -0x15b);}return _0x433c9b['particlesTextures'][_0x5cd9b4(0x25,0x8e)];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x3ef068),'outputTexture':this[_0x236f73(0x1e9,0x239)]['nextParticlesPosition'],'preExecute':function(){function _0x3377f0(_0x543820,_0x4d3a30){return _0x236f73(_0x543820,_0x4d3a30-0x87);}function _0x16bfff(_0x114c04,_0x20e002){return _0x236f73(_0x114c04,_0x20e002-0x3c);}_0x433c9b['primitives']['updatePosition']['commandToExecute'][_0x16bfff(0x2b3,0x253)]=_0x433c9b[_0x3377f0(0x31f,0x2c0)]['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function(){return _0x433c9b['particlesTextures']['nextParticlesPosition'];},'particlesSpeed':function(){return _0x433c9b['particlesTextures']['particlesSpeed'];},'viewerLonRange':function(){return _0x59b956['lonRange'];},'viewerLatRange':function(){return _0x59b956['latRange'];},'lonRange':function(){return _0x4fddf8;},'latRange':function(){return _0xaf08f1;},'dimension':function(){return _0x3dc96b;},'minimum':function(){return _0x2e6765;},'maximum':function(){return _0xc8d2ea;},'interval':function(){return _0x22bdb7;},'H':function(){return _0x433c9b['windTextures']['H'];},'randomCoefficient':function(){const _0x510dab=Math['random']();return _0x510dab;},'dropRate':function(){function _0x1c462b(_0x4342dd,_0x25e3c9){return _0x30960b(_0x4342dd,_0x25e3c9- -0xe2);}return _0x2ba3d5[_0x1c462b(0x170,0x1a0)];},'dropRateBump':function(){return _0x2ba3d5['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x34c045),'outputTexture':this[_0x236f73(0x25a,0x239)]['postProcessingPosition'],'preExecute':function(){function _0x21989b(_0x20d5fd,_0xb8fdbe){return _0x30960b(_0x20d5fd,_0xb8fdbe-0x4c);}function _0x407e79(_0x55f41c,_0x49f1bb){return _0x30960b(_0x49f1bb,_0x55f41c-0x24f);}_0x433c9b[_0x21989b(0x206,0x21d)]['postProcessingPosition']['commandToExecute']['outputTexture']=_0x433c9b[_0x21989b(0x2ab,0x27e)]['postProcessingPosition'];}})};}}const Cesium$2=mars3d__namespace['Cesium'];class ParticleSystem{constructor(_0xbb6bc4,_0x420644,_0xfc65a,_0x3c1bb1){this['context']=_0xbb6bc4;function _0xbd39e(_0x57cbe6,_0xfc6cf3){return _0x92c83a(_0xfc6cf3,_0x57cbe6-0x3a6);}_0x420644={..._0x420644};_0x420644['udata']&&_0x420644['vdata']&&(_0x420644[_0x296226(0x195,0x206)]={},_0x420644['dimensions']['lon']=_0x420644['cols'],_0x420644['dimensions']['lat']=_0x420644['rows'],_0x420644[_0xbd39e(0x213,0x297)][_0xbd39e(0x204,0x1bd)]=_0x420644[_0xbd39e(0x204,0x22d)]||0x1,_0x420644['lon']={},_0x420644['lon']['min']=_0x420644[_0x296226(0x152,0x1d9)],_0x420644['lon']['max']=_0x420644[_0xbd39e(0x220,0x18f)],_0x420644['lat']={},_0x420644['lat']['min']=_0x420644['ymin'],_0x420644[_0x296226(0x1aa,0x21b)][_0x296226(0x26f,0x1ec)]=_0x420644['ymax'],_0x420644['lev']={},_0x420644['lev']['min']=_0x420644[_0xbd39e(0x253,0x299)]??0x1,_0x420644['lev']['max']=_0x420644[_0xbd39e(0x27c,0x24b)]??0x1,_0x420644['U']={},_0x420644['U'][_0x296226(0x146,0x1a9)]=new Float32Array(_0x420644[_0x296226(0x1c5,0x1cd)]),_0x420644['U']['min']=_0x420644['umin']??Math['min'](..._0x420644[_0x296226(0x20e,0x1cd)]),_0x420644['U']['max']=_0x420644['umax']??Math[_0x296226(0x235,0x1ec)](..._0x420644[_0xbd39e(0x1da,0x1c9)]),_0x420644['V']={},_0x420644['V']['array']=new Float32Array(_0x420644['vdata']),_0x420644['V'][_0x296226(0x255,0x1df)]=_0x420644['vmin']??Math['min'](..._0x420644[_0x296226(0x1a5,0x1ce)]),_0x420644['V'][_0xbd39e(0x1f9,0x179)]=_0x420644['vmax']??Math['max'](..._0x420644['vdata']));!_0x420644['W']&&(_0x420644['W']={'array':new Float32Array(_0x420644['U']['array'][_0x296226(0x28c,0x259)]),'min':0x0,'max':0x0});if(!_0x420644['H']){var _0x2c24a3;_0x420644['H']={'array':new Float32Array(_0x420644['U']['array']['length']),'min':0x0,'max':0x0};if((_0x2c24a3=_0x420644['lev'])!==null&&_0x2c24a3!==void 0x0&&_0x2c24a3['array']){const {lon:_0x4a6388,lat:_0xb4f95b,lev:_0x3688d1}=_0x420644['dimensions'];for(let _0x273d9e=0x0;_0x273d9e<_0x3688d1;_0x273d9e++){for(let _0x1efa1e=0x0;_0x1efa1e<_0xb4f95b;_0x1efa1e++){for(let _0x2cf948=0x0;_0x2cf948<_0x4a6388;_0x2cf948++){const _0x5d0a53=_0x273d9e*(_0x4a6388*_0xb4f95b)+_0x1efa1e*_0x4a6388+_0x2cf948;_0x420644['H']['array'][_0x5d0a53]=_0x420644[_0x296226(0x22f,0x1f7)]['array'][_0x273d9e];}}}_0x420644['H'][_0x296226(0x14e,0x1df)]=Math[_0x296226(0x169,0x1df)](..._0x420644['lev']['array']),_0x420644['H']['max']=Math['max'](..._0x420644['lev']['array']);}}this['data']=_0x420644,this['options']=_0xfc65a,this['viewerParameters']=_0x3c1bb1;function _0x296226(_0x4cbc7b,_0x328f0f){return _0x413bec(_0x328f0f- -0xd9,_0x4cbc7b);}this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this[_0x296226(0x2b2,0x24d)],this[_0xbd39e(0x29d,0x2f9)],this[_0xbd39e(0x1ba,0x210)],this['particlesComputing']);}['canvasResize'](_0x34a80e){this[_0x30b07e(0x272,0x204)][_0x30b07e(0x238,0x245)](),Object[_0x30b07e(0x223,0x272)](this[_0x30b07e(0x272,0x274)][_0x144456(-0x2ae,-0x262)])[_0x144456(-0x273,-0x288)](_0x2d9c02=>{function _0x298186(_0x11fda7,_0xe55f86){return _0x30b07e(_0xe55f86- -0x2c3,_0x11fda7);}this['particlesComputing']['windTextures'][_0x2d9c02][_0x298186(-0x11,0xe)]();}),this['particlesRendering']['textures']['colorTable']['destroy']();function _0x144456(_0x5bd849,_0x4b99a1){return _0x92c83a(_0x4b99a1,_0x5bd849- -0xe7);}Object['keys'](this['particlesRendering'][_0x30b07e(0x286,0x2cd)])[_0x144456(-0x273,-0x2df)](_0x35c7cc=>{function _0x35f493(_0x25de79,_0x2a6edb){return _0x144456(_0x25de79-0x73d,_0x2a6edb);}this['particlesRendering'][_0x35f493(0x4fc,0x49e)][_0x35c7cc]['destroy']();});function _0x30b07e(_0x38b756,_0x4914c0){return _0x413bec(_0x38b756- -0x92,_0x4914c0);}this[_0x144456(-0x23b,-0x2a1)]=_0x34a80e,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this[_0x30b07e(0x2d7,0x34f)],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this[_0x30b07e(0x2d7,0x32a)],this['viewerParameters'],this[_0x144456(-0x255,-0x1e8)]);}['clearFramebuffers'](){const _0x41664f=new Cesium$2[(_0x22527e(-0xd5,-0x5c))]({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass']['OPAQUE']});function _0x397e0f(_0x37bc06,_0x3365d8){return _0x92c83a(_0x3365d8,_0x37bc06-0x3a4);}function _0x22527e(_0x2f1ed5,_0x4ecc05){return _0x413bec(_0x4ecc05- -0x2c7,_0x2f1ed5);}Object['keys'](this['particlesRendering'][_0x397e0f(0x24a,0x20b)])[_0x397e0f(0x218,0x23f)](_0x268b69=>{function _0x53be29(_0xd577a0,_0x2f80e7){return _0x397e0f(_0x2f80e7-0x39,_0xd577a0);}function _0x32dadd(_0x7b08e3,_0x30011f){return _0x397e0f(_0x30011f- -0x1d,_0x7b08e3);}_0x41664f[_0x53be29(0x318,0x2c0)]=this['particlesRendering'][_0x32dadd(0x1cf,0x22d)][_0x268b69],_0x41664f['execute'](this[_0x53be29(0x24f,0x289)]);});}['refreshParticles'](_0xc32cc4,_0x2dc4c8=!![]){_0x2dc4c8&&(this[_0x48859d(0x4c9,0x469)](),this[_0x48859d(0x4dd,0x4dc)]['destroyParticlesTextures'](),this[_0x48859d(0x4c3,0x4dc)][_0x8cac2a(-0x16b,-0x14a)](this['context'],this[_0x48859d(0x56c,0x541)],this[_0x48859d(0x415,0x45e)]));function _0x8cac2a(_0x117d0d,_0x40ca29){return _0x92c83a(_0x40ca29,_0x117d0d-0x3a);}function _0x48859d(_0x2d254b,_0x58c8af){return _0x92c83a(_0x2d254b,_0x58c8af-0x64a);}if(_0xc32cc4){var _0x17ffb5;const _0x5c0d96=this['particlesRendering'][_0x8cac2a(-0xbd,-0xef)](this['options']);this['particlesRendering']['primitives'][_0x8cac2a(-0xef,-0x14c)][_0x48859d(0x45d,0x47c)]=_0x5c0d96;const _0x37055f=Cesium$2[_0x8cac2a(-0x188,-0x1c4)]['fromGeometry']({'context':this[_0x8cac2a(-0x11a,-0x14e)],'geometry':_0x5c0d96,'attributeLocations':this[_0x8cac2a(-0xed,-0x118)]['primitives']['segments'][_0x48859d(0x495,0x526)],'bufferUsage':Cesium$2[_0x8cac2a(-0xf9,-0x164)]['STATIC_DRAW']});(_0x17ffb5=this[_0x8cac2a(-0xed,-0x84)][_0x8cac2a(-0x19d,-0x190)])!==null&&_0x17ffb5!==void 0x0&&(_0x17ffb5=_0x17ffb5['segments'])!==null&&_0x17ffb5!==void 0x0&&_0x17ffb5['commandToExecute']&&(this['particlesRendering'][_0x8cac2a(-0x19d,-0x110)][_0x8cac2a(-0xef,-0x61)]['commandToExecute'][_0x8cac2a(-0x157,-0xef)]=_0x37055f);}}['setOptions'](_0xe4b5d9){function _0x190d4b(_0x5f4519,_0x40ff0e){return _0x413bec(_0x40ff0e- -0x95,_0x5f4519);}let _0x1fa1db=![];this[_0x53b464(0x56f,0x595)][_0x53b464(0x4db,0x48c)]!==_0xe4b5d9['maxParticles']&&(_0x1fa1db=!![]);function _0x53b464(_0x3a1ddf,_0x2fab31){return _0x413bec(_0x2fab31-0x22c,_0x3a1ddf);}Object[_0x190d4b(0x1ef,0x220)](_0xe4b5d9)['forEach'](_0x11f427=>{function _0x121cb2(_0x4fcd39,_0x2c44d1){return _0x190d4b(_0x2c44d1,_0x4fcd39- -0x16c);}this[_0x121cb2(0x168,0x171)][_0x11f427]=_0xe4b5d9[_0x11f427];}),this[_0x190d4b(0x1fe,0x1d5)](_0x1fa1db,_0xe4b5d9[_0x190d4b(0x22b,0x237)]);}['applyViewerParameters'](_0x1e46fc){Object['keys'](_0x1e46fc)[_0xd5ca53(0x128,0x137)](_0x4db38c=>{function _0x48c7fa(_0x91032b,_0x5eec42){return _0xd5ca53(_0x91032b-0x50,_0x5eec42);}this[_0x48c7fa(0x118,0x159)][_0x4db38c]=_0x1e46fc[_0x4db38c];}),this['refreshParticles'](![]);function _0xd5ca53(_0x529452,_0x506a18){return _0x413bec(_0x529452- -0x1be,_0x506a18);}function _0x15f245(_0x3b893c,_0x59d0a1){return _0x413bec(_0x59d0a1- -0x47f,_0x3b893c);}!this['options']['dynamic']&&(this['options']['dynamic']=!![],this[_0xd5ca53(0xba,0x88)](this['options']),setTimeout(()=>{this['options']['dynamic']=![];function _0x4b1b31(_0x291041,_0x1601f1){return _0x15f245(_0x1601f1,_0x291041-0x44d);}this['setOptions'](this[_0x4b1b31(0x337,0x392)]);},0x1f4));}['destroy'](){clearTimeout(this[_0x26d2f7(-0x4f,-0x9a)]),this['particlesComputing'][_0x26d2f7(-0x8b,-0xc4)](),Object['keys'](this[_0x4d2cd7(-0x3,0x64)]['windTextures'])['forEach'](_0x20f26a=>{function _0x2ed102(_0x2cee59,_0x3ebd07){return _0x4d2cd7(_0x3ebd07,_0x2cee59- -0xf1);}this['particlesComputing']['windTextures'][_0x20f26a][_0x2ed102(-0x2e,-0x2a)]();});function _0x26d2f7(_0x1cb0bc,_0x881374){return _0x413bec(_0x1cb0bc- -0x355,_0x881374);}this['particlesRendering']['textures']['colorTable'][_0x4d2cd7(0xce,0xc3)]();function _0x4d2cd7(_0x5bac1c,_0x392e73){return _0x92c83a(_0x5bac1c,_0x392e73-0x1d2);}Object[_0x26d2f7(-0xa0,-0x85)](this[_0x26d2f7(-0xa,-0x2f)]['framebuffers'])['forEach'](_0x4e5654=>{function _0x37ac66(_0x2b5c15,_0x47743e){return _0x4d2cd7(_0x47743e,_0x2b5c15-0x243);}function _0x3c33c7(_0xdc1a0c,_0x1cc5d8){return _0x26d2f7(_0xdc1a0c-0x237,_0x1cc5d8);}this[_0x3c33c7(0x22d,0x200)]['framebuffers'][_0x4e5654][_0x37ac66(0x306,0x328)]();});for(const _0x3627aa in this){delete this[_0x3627aa];}}}function _0x3e68(){const _0x5989b3=['407440bbBQWG','particlesRendering','dropRate','_calcUV','attributeLocations','randomizeParticles','Cesium','random','Sampler','getV','computeViewRectangle','framebuffer','drawingBufferWidth','getFullscreenQuad','removeAll','fragmentShaderSource','moveTo','_onMouseUpEvent','east','setDate','IDENTITY','dropRateBump','currentParticlesPosition','_onMouseDownEvent','getUVByXY','destroy','wheel','CanvasWindField','particlesNumber','clientWidth','scene','options','toWindowCoordinates','createFramebuffer','shaderProgram','off','redraw','uniformMap','windField','removeEventListener','currentTrails','removeChild','latRange','style','getParticles','getValidRange','CanvasWindLayer','_onMapWhellEvent','getRandomLatLng','createSegmentsGeometry','clientHeight','mars3d-canvasWind','clear','pixelDatatype','GeometryAttributes','3085019OdrSAZ','clearCommand','maxParticles','viewport','commandToExecute','now','mode','show','0px','sqrt','#version\x20300\x20es\x0a\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20sampler2D\x20segmentsColorTexture;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0auniform\x20sampler2D\x20currentTrailsColor;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0auniform\x20float\x20fadeOpacity;\x0a\x0aout\x20vec4\x20fragColor;\x0avoid\x20main()\x20{\x0a\x20\x20vec4\x20pointsColor\x20=\x20texture(segmentsColorTexture,\x20textureCoordinate);\x0a\x20\x20vec4\x20trailsColor\x20=\x20texture(currentTrailsColor,\x20textureCoordinate);\x0a\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0f\x20*\x20trailsColor)\x20/\x20255.0f;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0a\x0a\x20\x20float\x20pointsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20if(pointsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20fragColor\x20+\x20pointsColor;\x0a\x20\x20}\x0a\x20\x20if(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20fragColor\x20+\x20trailsColor;\x0a\x20\x20}\x0a\x20\x20gl_FragDepth\x20=\x20min(pointsDepth,\x20trailsDepth);\x0a}\x0a','_updateIng2','refreshParticles','ClearCommand','enabled','Draw','PI_OVER_TWO','GeometryAttribute','mouseUp','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','frameTime','preRender','lineTo','UNSIGNED_INT','_updateIng','depthMask','setOptions','BoundingSphere','WindLayer','globeBoundingSphere','randomBetween','particlesTextureSize','globalAlpha','defined','#version\x20300\x20es\x0a\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20norm)\x20Unit\x20converted\x20to\x20degrees\x20of\x20longitude\x20and\x20latitude\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20speed;\x0a\x20\x20if(length(speed.rgb)\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20}\x0a}\x0a','sources','array','_map','_canvasParticles','_randomParticle','viewerParameters','create','TRIANGLES','preExecute','BaseLayer','tlng','defines','commandType','PrimitiveType','wSpeedRange','canvasContext','clearFramebuffers','grid','getUVByPoint','Cartesian2','#ffffff','THREE_PI_OVER_TWO','_tomap','clampToLatitudeRange','getOptions','bindEvent','primitives','autoClear','toDegrees','setData','pixelSize','postMessage','_canrefresh','blending','register','geometry','sin','udata','vdata','Math','45895yLWNra','Pass','windTextures','nextTrails','push','SCENE3D','ellipsoid','VertexArray','getPixelSize','xmin','particlesSpeed','Geometry','keys','TextureMagnificationFilter','color','min','speedFactor','Rectangle','previousParticlesPosition','mouse_down','DEPTH_COMPONENT','_setOptionsHook','addEventListener','EventType','depthTexture','round','speed','createRenderingPrimitives','max','toGridXY','layer','NEAREST','createTexture','destroyParticlesTextures','worker','dynamic','createParticlesTextures','height','colorTable','lev','default','globe','rawRenderState','canvasWidth','visibility','pointerEvents','uSpeedRange','beginPath','position','outputTexture','lng','WindUtil','auto','1021887GhHqyO','dimensions','speedRate','vertexArray','interval','467823ECVqje','SceneMode','fromDegrees','forEach','refreshTimer','FLOAT','windData','342qawobd','tlat','xmax','particles','#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20W;\x20//\x20upward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20vec2\x20wSpeedRange;\x0auniform\x20float\x20speedScaleFactor;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLatLev.x\x20=\x20clamp(lonLatLev.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20minimum.y,\x20maximum.y);\x0a\x20\x20lonLatLev.z\x20=\x20clamp(lonLatLev.z,\x20minimum.z,\x20maximum.z);\x0a\x0a\x20\x20vec3\x20index3D\x20=\x20vec3(0.0f);\x0a\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20//\x20map\x20the\x20z-axis\x20value\x20to\x20the\x20nearest\x20bit\x20plane\x20to\x20ensure\x20that\x20the\x20result\x20is\x20an\x20integer\x0a\x20\x20index3D.z\x20=\x20ceil((lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z);\x0a\x0a\x20\x20\x20\x20//\x20the\x20st\x20texture\x20coordinate\x20corresponding\x20to\x20(col,\x20row)\x20index\x0a\x20\x20\x20\x20//\x20example\x0a\x20\x20\x20\x20//\x20data\x20array\x20is\x20[0,\x201,\x202,\x203,\x204,\x205,\x207,\x208,\x209],\x20width\x20=\x202,\x20height\x20=\x202,\x20level\x20=\x202\x0a\x20\x20\x20\x20//\x20the\x20content\x20of\x20texture\x20will\x20be\x0a\x20\x20\x20\x20//\x20t\x201.0\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x206\x207\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x202\x203\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0afloat\x20interpolateTexture(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x201.0f\x20*\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x201.0f\x20*\x20interval.y;\x0a\x0a\x20\x20float\x20lon0_lat0\x20=\x20getWindComponent(componentTexture,\x20vec3(lon0,\x20lat0,\x20lev));\x0a\x20\x20float\x20lon1_lat0\x20=\x20getWindComponent(componentTexture,\x20vec3(lon1,\x20lat0,\x20lev));\x0a\x20\x20float\x20lon0_lat1\x20=\x20getWindComponent(componentTexture,\x20vec3(lon0,\x20lat1,\x20lev));\x0a\x20\x20float\x20lon1_lat1\x20=\x20getWindComponent(componentTexture,\x20vec3(lon1,\x20lat1,\x20lev));\x0a\x0a\x20\x20float\x20lon_lat0\x20=\x20mix(lon0_lat0,\x20lon1_lat0,\x20lon\x20-\x20lon0);\x0a\x20\x20float\x20lon_lat1\x20=\x20mix(lon0_lat1,\x20lon1_lat1,\x20lon\x20-\x20lon0);\x0a\x20\x20float\x20lon_lat\x20=\x20mix(lon_lat0,\x20lon_lat1,\x20lat\x20-\x20lat0);\x0a\x20\x20return\x20lon_lat;\x0a}\x0a\x0avec3\x20linearInterpolation(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bilinear_interpolation\x0a\x20\x20float\x20u\x20=\x20interpolateTexture(U,\x20lonLatLev);\x0a\x20\x20float\x20v\x20=\x20interpolateTexture(V,\x20lonLatLev);\x0a\x20\x20float\x20w\x20=\x20interpolateTexture(W,\x20lonLatLev);\x0a\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec3\x20lonLatLev)\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(lonLatLev.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\x0avec3\x20convertSpeedUnitToLonLat(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20float\x20w\x20=\x20speed.z;\x0a\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20return\x20windVectorInLonLatLev;\x0a}\x0a\x0avec3\x20calculateSpeedByRungeKutta2(vec3\x20lonLatLev)\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\x20vec3\x20y_n\x20=\x20lonLatLev;\x0a\x20\x20vec3\x20f_n\x20=\x20linearInterpolation(lonLatLev);\x0a\x20\x20vec3\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec3\x20speed\x20=\x20h\x20*\x20linearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20getRange(vec2\x20range)\x20{\x0a\x20\x20float\x20x1\x20=\x200.0f\x20-\x20range.x;\x0a\x20\x20float\x20x2\x20=\x20range.y\x20-\x200.0f;\x0a\x20\x20if(x1\x20<\x200.0f\x20||\x20x2\x20<\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(abs(x1),\x20abs(x2));\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x20abs(max(x1,\x20x2)));\x0a\x20\x20}\x0a}\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20vec3\x20percent\x20=\x20vec3(0.0f);\x0a\x20\x20vec2\x20uRange\x20=\x20getRange(uSpeedRange);\x0a\x20\x20vec2\x20vRange\x20=\x20getRange(vSpeedRange);\x0a\x20\x20vec2\x20wRange\x20=\x20getRange(wSpeedRange);\x0a\x20\x20if(length(speed.xyz)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x200.0f;\x0a\x20\x20}\x0a\x0a\x20\x20percent.x\x20=\x20(abs(speed.x)\x20-\x20uRange.x)\x20/\x20(uRange.y\x20-\x20uRange.x);\x0a\x20\x20percent.y\x20=\x20(abs(speed.y)\x20-\x20vRange.x)\x20/\x20(vRange.y\x20-\x20vRange.x);\x0a\x20\x20if(wSpeedRange.y\x20==\x20wSpeedRange.x)\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x200.0f;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x20(abs(speed.z)\x20-\x20wRange.x)\x20/\x20(wRange.y\x20-\x20wRange.x);\x0a\x20\x20}\x0a\x20\x20float\x20norm\x20=\x20length(percent);\x0a\x0a\x20\x20return\x20norm;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20speedOrigin\x20=\x20linearInterpolation(lonLatLev);\x0a\x20\x20vec3\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLatLev);\x0a\x20\x20vec3\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLatLev,\x20speed);\x0a\x0a\x20\x20vec4\x20particleSpeed\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speed\x20/\x20speedScaleFactor));\x0a\x20\x20\x20\x20//\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a','cols','bind','createRawRenderState','LINEAR','_onMap_preRenderEvent','lat','_onMouseMoveEvent','segmentsColor','remove','createRenderingFramebuffers','width','applyViewerParameters','_mountedHook','particlesTextures','textures','requestAnimationFrame','strokeStyle','_animateFrame','4jHPkKM','10boSZzM','lineWidth','particlesComputing','steps','canrefresh','createCommand','updateViewerParameters','STATIC_DRAW','mouseMove','PixelDatatype','254216aypyPa','visible','lonRange','resize','colors','arrayBufferView','_removedHook','top','destroyObject','isInExtent','getColorTexture','createComputingPrimitives','framebuffers','wind','_data','mouse_move','ymin','trails','context','levmin','ymax','screen','add','particleSystem','ShaderSource','createRenderingTextures','data','cancelAnimationFrame','_addedHook','_calc_speedRate','fromGeometry','primitiveType','maxAge','rectangle','PixelFormat','_drawLines','globalCompositeOperation','drawingBufferHeight','length','rows','getColor','update','lon','ComponentDatatype','createWindTextures','_maxAge','__esModule','floor','alt','Compute','282108OYBQFD','BufferUsage','LayerUtil','depthTest','canvasWind','unbindEvent','ColorRamp','_pointerEvents','positionWC','canvas','levmax','segments'];_0x3e68=function(){return _0x5989b3;};return _0x3e68();}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x92c83a(-0x182,-0x1e8)],_0x568681={};_0x568681[_0x413bec(0x366,0x31f)]=0x1000,_0x568681['fixedHeight']=0x0,_0x568681['fadeOpacity']=0.996,_0x568681['dropRate']=0.003,_0x568681['dropRateBump']=0.01,_0x568681[_0x92c83a(-0x1b0,-0x1b9)]=0.5,_0x568681['lineWidth']=0x2,_0x568681[_0x92c83a(-0x11d,-0x162)]=['rgb(206,255,255)'],_0x568681['dynamic']=!![];const DEF_OPTIONS=_0x568681;function _0x92c83a(_0x4d781d,_0x9ce9c1){return _0x8444(_0x9ce9c1- -0x2b8,_0x4d781d);}class WindLayer extends BaseLayer$1{constructor(_0xb86718={}){_0xb86718={...DEF_OPTIONS,..._0xb86718},super(_0xb86718),this['_setOptionsHook'](_0xb86718);}get['layer'](){function _0x4703dd(_0x57244b,_0x1397f9){return _0x92c83a(_0x1397f9,_0x57244b-0x4f2);}return this[_0x4703dd(0x31b,0x39c)];}get['data'](){return this['_data'];}set['data'](_0x42d47c){this['setData'](_0x42d47c);}get['colors'](){function _0xecf33e(_0x54d3fb,_0x37f3d8){return _0x413bec(_0x37f3d8-0x4f,_0x54d3fb);}function _0x29ab12(_0x4b3df4,_0x5bbaa4){return _0x92c83a(_0x5bbaa4,_0x4b3df4-0x569);}return this[_0xecf33e(0x338,0x3b8)][_0xecf33e(0x381,0x35f)];}set[_0x92c83a(-0x1bc,-0x162)](_0x151e69){function _0x25348d(_0x508bbd,_0x8365f8){return _0x92c83a(_0x508bbd,_0x8365f8-0x3e5);}this['options']['colors']=_0x151e69;if(this[_0x25348d(0x300,0x296)]){const _0x294015={};_0x294015[_0x52f820(-0x88,0x9)]=_0x151e69,this['particleSystem']['setOptions'](_0x294015);}function _0x52f820(_0x1f9bd5,_0x445cec){return _0x92c83a(_0x1f9bd5,_0x445cec-0x16b);}this['resize']();}[_0x413bec(0x2fb,0x30a)](){}['_addedHook'](){this['scene']=this['_map']['scene'],this['camera']=this['_map']['camera'];function _0x35bcc8(_0x5f328e,_0x170c53){return _0x92c83a(_0x5f328e,_0x170c53-0x548);}this['primitives']=new Cesium$1['PrimitiveCollection'](),this['_map']['scene'][_0x35bcc8(0x3e4,0x371)]['add'](this['primitives']),this[_0x35bcc8(0x2f3,0x35c)]={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0,'lonDisplayRange':new Cesium$1[(_0x35bcc8(0x3a5,0x36a))](),'latDisplayRange':new Cesium$1[(_0x90bfed(-0x357,-0x2ed))]()},this['globeBoundingSphere']=new Cesium$1[(_0x90bfed(-0x29a,-0x308))](Cesium$1['Cartesian3']['ZERO'],Cesium$1['Ellipsoid']['WGS84']['minimumRadius']),this['updateViewerParameters'](),window['addEventListener']('resize',this['resize'][_0x35bcc8(0x34f,0x3c6)](this),![]),this['mouse_down']=![];function _0x90bfed(_0xbf0fc9,_0x259c72){return _0x92c83a(_0xbf0fc9,_0x259c72- -0x10f);}this['mouse_move']=![],this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x90bfed(-0x262,-0x208)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x35bcc8(0x3b8,0x396)]['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['on'](mars3d__namespace[_0x35bcc8(0x31c,0x396)][_0x90bfed(-0x2a6,-0x277)],this['_onMouseMoveEvent'],this),this['_data']&&this[_0x90bfed(-0x2e3,-0x2e3)](this['_data']);}['_removedHook'](){window['removeEventListener'](_0x51031b(-0xe3,-0x10a),this[_0x37a36d(-0x217,-0x1ea)]),this['_map']['off'](mars3d__namespace['EventType']['preRender'],this[_0x51031b(-0xff,-0x133)],this),this[_0x51031b(-0x16f,-0x189)]['off'](mars3d__namespace['EventType'][_0x37a36d(-0x1fb,-0x195)],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace[_0x51031b(-0x132,-0xac)]['mouseDown'],this['_onMouseDownEvent'],this);function _0x37a36d(_0x148b50,_0x41af33){return _0x413bec(_0x41af33- -0x4f9,_0x148b50);}this['_map']['off'](mars3d__namespace['EventType'][_0x37a36d(-0x23c,-0x289)],this[_0x51031b(-0x97,-0xef)],this);function _0x51031b(_0x2d9035,_0x1f451a){return _0x413bec(_0x2d9035- -0x3f2,_0x1f451a);}this[_0x51031b(-0x16f,-0x131)][_0x37a36d(-0x1c7,-0x18c)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['primitives']['removeAll'](),this[_0x51031b(-0x16f,-0xfa)]['scene'][_0x51031b(-0x157,-0xf0)][_0x37a36d(-0x204,-0x202)](this['primitives']);}[_0x92c83a(-0x145,-0x163)](){if(!this['show']||!this['particleSystem'])return;function _0x552ff8(_0x43afab,_0x406250){return _0x413bec(_0x43afab- -0x4de,_0x406250);}this['primitives']['show']=![];function _0x593e30(_0x2c8b2d,_0x8050b2){return _0x413bec(_0x2c8b2d- -0x29e,_0x8050b2);}this['primitives'][_0x593e30(0xba,0x107)](),this['_map']['once'](mars3d__namespace['EventType'][_0x552ff8(-0x26b,-0x2d1)],this['_onMap_preRenderEvent'],this);}[_0x413bec(0x2f3,0x267)](_0x35fd25){this['particleSystem']['canvasResize'](this['scene']['context']),this['addPrimitives'](),this['primitives']['show']=!![];}['_onMapWhellEvent'](_0x296c8c){clearTimeout(this[_0x32102a(0x457,0x419)]);if(!this['show']||!this[_0x32102a(0x493,0x4fe)])return;function _0x32102a(_0x36eba6,_0x33d3b0){return _0x92c83a(_0x33d3b0,_0x36eba6-0x5e2);}function _0x3645e9(_0xd63ef0,_0x4f000d){return _0x92c83a(_0x4f000d,_0xd63ef0-0x442);}this['primitives']['show']=![],this[_0x32102a(0x457,0x4d7)]=setTimeout(()=>{function _0x51386c(_0xa078e,_0xfb85e){return _0x3645e9(_0xfb85e- -0x168,_0xa078e);}if(!this['show'])return;this[_0x51386c(0x189,0x1d6)]();},0xc8);}[_0x92c83a(-0x13b,-0x111)](_0x13c335){this['mouse_down']=!![];}['_onMouseMoveEvent'](_0x4e1079){function _0x36a96c(_0xde6813,_0x53f6a3){return _0x413bec(_0xde6813- -0xad,_0x53f6a3);}if(!this[_0x36a96c(0x1b8,0x14d)]||!this[_0x28688f(0x46e,0x4e6)])return;function _0x28688f(_0x161918,_0x335e37){return _0x413bec(_0x161918-0x14b,_0x335e37);}this['mouse_down']&&(this[_0x28688f(0x3e6,0x431)]['show']=![],this[_0x36a96c(0x26e,0x224)]=!![]);}['_onMouseUpEvent'](_0x38182c){function _0x36e53c(_0x16dce6,_0x2a3337){return _0x92c83a(_0x16dce6,_0x2a3337-0x5d4);}if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&this[_0x45f3db(0x18a,0x1a7)]&&this['redraw']();function _0x45f3db(_0x15b56d,_0x4c8909){return _0x413bec(_0x4c8909- -0x174,_0x15b56d);}this['primitives']['show']=!![],this[_0x45f3db(0xe5,0x148)]=![],this['mouse_move']=![];}['redraw'](){if(!this[_0x9f0c41(0x270,0x2a9)]||!this[_0x5dca71(-0x2df,-0x29e)])return;this['updateViewerParameters']();function _0x9f0c41(_0x25c6f0,_0x58d292){return _0x92c83a(_0x25c6f0,_0x58d292-0x498);}this['particleSystem'][_0x5dca71(-0x24a,-0x200)](this['viewerParameters']);function _0x5dca71(_0x22c970,_0x4af288){return _0x413bec(_0x22c970- -0x544,_0x4af288);}this[_0x5dca71(-0x2a9,-0x2cd)][_0x9f0c41(0x21d,0x28b)]=!![];}[_0x92c83a(-0x18a,-0x1d4)](_0x3069ff){function _0x325e36(_0x4fe338,_0x4435ea){return _0x92c83a(_0x4435ea,_0x4fe338-0x235);}this['_data']=_0x3069ff;function _0x5c7c0a(_0x4fb8f0,_0x369e23){return _0x413bec(_0x4fb8f0- -0x2e0,_0x369e23);}this['particleSystem']&&this[_0x5c7c0a(0x43,0x23)]['destroy'](),this['particleSystem']=new ParticleSystem(this['scene'][_0x325e36(0xe1,0x75)],_0x3069ff,this['getOptions'](),this[_0x5c7c0a(-0x5a,-0xd4)]),this['addPrimitives']();}[_0x413bec(0x2be,0x2fd)](_0x53f0a8,_0x42a0b5){if(_0x53f0a8)for(const _0x1999dd in _0x53f0a8){this[_0x1999dd]=_0x53f0a8[_0x1999dd];}function _0x4ed84c(_0x5d4ead,_0xfe0b37){return _0x92c83a(_0xfe0b37,_0x5d4ead-0x255);}function _0x497e55(_0x546a97,_0x169edc){return _0x413bec(_0x169edc- -0x3ce,_0x546a97);}this['particleSystem']&&this[_0x497e55(-0x11e,-0xab)]['setOptions'](this[_0x497e55(-0x1c4,-0x135)]());}[_0x92c83a(-0x21c,-0x1d9)](){const _0x2b0380=Math['ceil'](Math['sqrt'](this[_0x2729d3(-0xfa,-0xe1)]));this['particlesNumber']=_0x2b0380*_0x2b0380;const _0x43430f={};_0x43430f['particlesTextureSize']=_0x2b0380;function _0x2729d3(_0x2b6757,_0x5cf1e5){return _0x413bec(_0x2b6757- -0x460,_0x5cf1e5);}function _0x27d506(_0x236dfa,_0x48dcaf){return _0x413bec(_0x236dfa- -0xd1,_0x48dcaf);}return _0x43430f['maxParticles']=this[_0x2729d3(-0xfa,-0xfa)],_0x43430f['colors']=this[_0x2729d3(-0x150,-0x11d)],_0x43430f['particleHeight']=this['fixedHeight'],_0x43430f['fadeOpacity']=this['fadeOpacity'],_0x43430f['dropRate']=this[_0x27d506(0x27b,0x1ed)],_0x43430f[_0x27d506(0x28e,0x2a3)]=this['dropRateBump'],_0x43430f[_0x2729d3(-0x1a7,-0x1df)]=this['speedFactor'],_0x43430f['lineWidth']=this[_0x27d506(0x232,0x25c)],_0x43430f['dynamic']=this['dynamic'],_0x43430f;}['addPrimitives'](){function _0x4b8dfd(_0x31f670,_0x56165f){return _0x413bec(_0x56165f-0x15c,_0x31f670);}this[_0x4b8dfd(0x464,0x3f7)]['add'](this['particleSystem']['particlesComputing'][_0x4b8dfd(0x37a,0x3f7)]['calculateSpeed']);function _0x44571a(_0x2ba9d4,_0x44768b){return _0x413bec(_0x44768b-0x7f,_0x2ba9d4);}this[_0x44571a(0x3ab,0x31a)][_0x44571a(0x347,0x3a1)](this[_0x4b8dfd(0x494,0x47f)]['particlesComputing'][_0x44571a(0x339,0x31a)]['updatePosition']),this[_0x4b8dfd(0x36f,0x3f7)]['add'](this[_0x4b8dfd(0x50d,0x47f)]['particlesComputing'][_0x4b8dfd(0x3d4,0x3f7)]['postProcessingPosition']),this['primitives'][_0x4b8dfd(0x48e,0x47e)](this[_0x44571a(0x3cf,0x3a2)]['particlesRendering'][_0x4b8dfd(0x37d,0x3f7)][_0x4b8dfd(0x495,0x4a5)]),this['primitives']['add'](this[_0x44571a(0x329,0x3a2)]['particlesRendering']['primitives']['trails']),this['primitives']['add'](this[_0x44571a(0x31c,0x3a2)]['particlesRendering'][_0x4b8dfd(0x37f,0x3f7)][_0x4b8dfd(0x40a,0x47d)]);}[_0x413bec(0x308,0x334)](){function _0x17d30d(_0x2a0fc1,_0x2223e4){return _0x413bec(_0x2a0fc1- -0x4fc,_0x2223e4);}let _0xfc60c7=this['camera'][_0x17d30d(-0x1a8,-0x237)](this[_0x17971f(-0x1fe,-0x21b)][_0x17971f(-0x294,-0x305)][_0x17971f(-0x2b7,-0x268)]);if(!_0xfc60c7){const _0x49fe17=this['_map']['getExtent']();_0xfc60c7=Cesium$1[_0x17d30d(-0x242,-0x277)]['fromDegrees'](_0x49fe17['xmin'],_0x49fe17[_0x17971f(-0x24a,-0x1c9)],_0x49fe17['xmax'],_0x49fe17['ymax']);}const _0x54eb51=Util['viewRectangleToLonLatRange'](_0xfc60c7);this[_0x17971f(-0x24c,-0x210)]?(this['viewerParameters']['lonRange']['x']=Math['max'](_0x54eb51['lon'][_0x17971f(-0x2ae,-0x33e)],this['_data']['xmin']),this['viewerParameters'][_0x17d30d(-0x1ee,-0x1e7)]['y']=Math['min'](_0x54eb51['lon']['max'],this[_0x17d30d(-0x1e2,-0x188)][_0x17d30d(-0x210,-0x28e)]),this['viewerParameters'][_0x17971f(-0x1f2,-0x27c)]['x']=Math['max'](_0x54eb51['lat'][_0x17d30d(-0x244,-0x28b)],this['_data']['ymin']),this[_0x17d30d(-0x276,-0x2e4)][_0x17971f(-0x1f2,-0x22b)]['y']=Math['min'](_0x54eb51['lat']['max'],this['_data']['ymax'])):(this['viewerParameters'][_0x17971f(-0x258,-0x234)]['x']=_0x54eb51['lon']['min'],this[_0x17d30d(-0x276,-0x2a3)]['lonRange']['y']=_0x54eb51[_0x17971f(-0x230,-0x1ce)]['max'],this[_0x17d30d(-0x276,-0x228)][_0x17d30d(-0x188,-0x196)]['x']=_0x54eb51[_0x17d30d(-0x208,-0x27d)][_0x17d30d(-0x244,-0x205)],this[_0x17971f(-0x2e0,-0x348)]['latRange']['y']=_0x54eb51['lat']['max']);function _0x17971f(_0x4b8802,_0x34dfab){return _0x92c83a(_0x34dfab,_0x4b8802- -0xf4);}let _0xfed35d=this['camera'][_0x17971f(-0x2b5,-0x2fa)](this[_0x17971f(-0x2eb,-0x35e)],this['scene'][_0x17d30d(-0x1a6,-0x180)],this['scene']['drawingBufferHeight']);const _0x206093=this['scene'][_0x17d30d(-0x1cb,-0x226)]*0.3;_0xfed35d<_0x206093&&(_0xfed35d=_0x206093),this['viewerParameters'][_0x17971f(-0x2c7,-0x274)]=_0xfed35d;}}mars3d__namespace[_0x413bec(0x340,0x376)]['register'](_0x92c83a(-0xe0,-0x159),WindLayer),mars3d__namespace['layer'][_0x92c83a(-0x1a1,-0x1f8)]=WindLayer;class CanvasParticle{constructor(){function _0x25f4df(_0x385a98,_0x5837a3){return _0x413bec(_0x5837a3-0x1e3,_0x385a98);}this[_0x3126ea(0x3a4,0x3d9)]=null,this['lat']=null,this['tlng']=null;function _0x3126ea(_0x2e5815,_0x875675){return _0x413bec(_0x2e5815-0xc9,_0x875675);}this[_0x25f4df(0x51b,0x4ce)]=null,this['age']=null,this[_0x3126ea(0x38c,0x35f)]=null;}[_0x92c83a(-0xfe,-0x10f)](){for(const _0x2a7290 in this){delete this[_0x2a7290];}}}class CanvasWindField{constructor(_0xfbc2b4){this['setOptions'](_0xfbc2b4);}get[_0x413bec(0x2e0,0x312)](){return this['_speedRate'];}set[_0x92c83a(-0x14f,-0x192)](_0xb13921){function _0x314560(_0x5d0b84,_0x5ec299){return _0x413bec(_0x5d0b84-0xb2,_0x5ec299);}function _0x58a559(_0x26551c,_0x3d09b7){return _0x92c83a(_0x3d09b7,_0x26551c-0x4ca);}this['_speedRate']=(0x64-(_0xb13921>0x63?0x63:_0xb13921))*0x64,this[_0x58a559(0x381,0x40d)]=[(this[_0x314560(0x39e,0x41d)]-this[_0x58a559(0x30a,0x362)])/this['_speedRate'],(this['ymax']-this['ymin'])/this['_speedRate']];}get['maxAge'](){function _0x59057c(_0x7a57fa,_0x52b8ed){return _0x92c83a(_0x52b8ed,_0x7a57fa-0x4a);}return this[_0x59057c(-0xef,-0x139)];}set['maxAge'](_0xbdef75){function _0x3b427b(_0x4902b8,_0x53060c){return _0x413bec(_0x53060c- -0x90,_0x4902b8);}this[_0x3b427b(0x268,0x2a9)]=_0xbdef75;}[_0x413bec(0x278,0x204)](_0x4f9c37){function _0x24f33f(_0x521dc2,_0x1547f1){return _0x413bec(_0x521dc2- -0x1e5,_0x1547f1);}this['options']=_0x4f9c37,this['maxAge']=_0x4f9c37[_0x46ebc2(0x90,0xf7)]||0x78,this['speedRate']=_0x4f9c37[_0x24f33f(0xfb,0xcb)]||0x32,this['particles']=[];function _0x46ebc2(_0x1e2013,_0x56f753){return _0x413bec(_0x1e2013- -0x29c,_0x56f753);}const _0x411011=_0x4f9c37[_0x46ebc2(0xca,0xdf)]||0x1000;for(let _0x343fef=0x0;_0x343fef<_0x411011;_0x343fef++){const _0x34a5db=this[_0x24f33f(0xa0,0xe4)](new CanvasParticle());this['particles']['push'](_0x34a5db);}}['setDate'](_0x5454a2){function _0x108a0f(_0x7db45f,_0xdb3a7e){return _0x413bec(_0x7db45f- -0x14e,_0xdb3a7e);}this['rows']=_0x5454a2['rows'],this[_0x108a0f(0x1a1,0x11a)]=_0x5454a2['cols'],this['xmin']=_0x5454a2['xmin'],this[_0x108a0f(0x19e,0x19b)]=_0x5454a2[_0x108a0f(0x19e,0x1aa)],this['ymin']=_0x5454a2[_0x108a0f(0x1ce,0x234)],this[_0xbb2bea(0x485,0x424)]=_0x5454a2['ymax'],this['grid']=[];const _0x505869=_0x5454a2[_0x108a0f(0x158,0xea)],_0x4e757d=_0x5454a2['vdata'];let _0x34f2f9=![];_0x505869['length']===this['rows']&&_0x505869[0x0]['length']===this['cols']&&(_0x34f2f9=!![]);function _0xbb2bea(_0x1674fc,_0x936e14){return _0x92c83a(_0x1674fc,_0x936e14-0x576);}let _0x3c5e11=0x0,_0x1da638=null,_0x1596b1=null;for(let _0x4fa378=0x0;_0x4fa378<this[_0xbb2bea(0x4c2,0x437)];_0x4fa378++){_0x1da638=[];for(let _0x57504f=0x0;_0x57504f<this[_0xbb2bea(0x416,0x3f3)];_0x57504f++,_0x3c5e11++){_0x34f2f9?_0x1596b1=this['_calcUV'](_0x505869[_0x4fa378][_0x57504f],_0x4e757d[_0x4fa378][_0x57504f]):_0x1596b1=this['_calcUV'](_0x505869[_0x3c5e11],_0x4e757d[_0x3c5e11]),_0x1da638[_0xbb2bea(0x323,0x3b1)](_0x1596b1);}this['grid']['push'](_0x1da638);}this[_0x108a0f(0x21b,0x256)]['reverseY']&&this['grid']['reverse']();}['clear'](){delete this['rows'],delete this['cols'];function _0x2af6c9(_0x483ce3,_0x40c21b){return _0x413bec(_0x40c21b- -0x35d,_0x483ce3);}delete this[_0x37d76f(-0x226,-0x1dd)];function _0x37d76f(_0x34ef9f,_0xfcfd09){return _0x92c83a(_0x34ef9f,_0xfcfd09- -0x1d);}delete this['xmax'],delete this['ymin'],delete this['ymax'],delete this[_0x2af6c9(-0x92,-0xcb)],delete this['particles'];}[_0x413bec(0x2c6,0x293)](_0x3b5759,_0x20f0c1){function _0x172a2e(_0x4b80d8,_0x3f6d52){return _0x413bec(_0x4b80d8- -0x51a,_0x3f6d52);}function _0x467452(_0x2f6ff7,_0x247549){return _0x413bec(_0x247549- -0x2fb,_0x2f6ff7);}const _0xe6a62=(_0x3b5759-this['xmin'])/(this['xmax']-this[_0x172a2e(-0x268,-0x253)])*(this['cols']-0x1),_0x54a9cb=(this[_0x467452(0x31,0x25)]-_0x20f0c1)/(this['ymax']-this['ymin'])*(this[_0x172a2e(-0x1e7,-0x1f4)]-0x1);return[_0xe6a62,_0x54a9cb];}['getUVByXY'](_0x3e1337,_0x32b30a){if(_0x3e1337<0x0||_0x3e1337>=this['cols']||_0x32b30a>=this['rows'])return[0x0,0x0,0x0];const _0x4b1bc8=Math[_0x3e16aa(-0x264,-0x299)](_0x3e1337),_0x39d484=Math[_0x28b4fa(0x3ca,0x410)](_0x32b30a);if(_0x4b1bc8===_0x3e1337&&_0x39d484===_0x32b30a)return this[_0x28b4fa(0x2fe,0x367)][_0x32b30a][_0x3e1337];const _0x30e6fc=_0x4b1bc8+0x1;function _0x28b4fa(_0x2bf025,_0x25dea5){return _0x413bec(_0x25dea5-0xd5,_0x2bf025);}const _0x255cbb=_0x39d484+0x1,_0x213a59=this['getUVByXY'](_0x4b1bc8,_0x39d484),_0x3b7cbf=this['getUVByXY'](_0x30e6fc,_0x39d484),_0x2056ed=this['getUVByXY'](_0x4b1bc8,_0x255cbb),_0x4443e2=this['getUVByXY'](_0x30e6fc,_0x255cbb);function _0x3e16aa(_0x10461f,_0x5b25c1){return _0x413bec(_0x10461f- -0x59f,_0x5b25c1);}let _0x1c7ad5=null;try{_0x1c7ad5=this['_bilinearInterpolation'](_0x3e1337-_0x4b1bc8,_0x32b30a-_0x39d484,_0x213a59,_0x3b7cbf,_0x2056ed,_0x4443e2);}catch(_0x3b33a6){console['log'](_0x3e1337,_0x32b30a);}return _0x1c7ad5;}['_bilinearInterpolation'](_0xcd4a32,_0x1ec4be,_0x11c529,_0x65e2a0,_0x5ec4f4,_0x298bcf){const _0x46f0b1=0x1-_0xcd4a32,_0x20fc17=0x1-_0x1ec4be,_0xcf50a4=_0x46f0b1*_0x20fc17,_0x34d6e1=_0xcd4a32*_0x20fc17,_0x39886f=_0x46f0b1*_0x1ec4be,_0x2fbd66=_0xcd4a32*_0x1ec4be,_0x5f40a2=_0x11c529[0x0]*_0xcf50a4+_0x65e2a0[0x0]*_0x34d6e1+_0x5ec4f4[0x0]*_0x39886f+_0x298bcf[0x0]*_0x2fbd66,_0x4e5240=_0x11c529[0x1]*_0xcf50a4+_0x65e2a0[0x1]*_0x34d6e1+_0x5ec4f4[0x1]*_0x39886f+_0x298bcf[0x1]*_0x2fbd66;return this['_calcUV'](_0x5f40a2,_0x4e5240);}[_0x92c83a(-0x124,-0x125)](_0x3a0c13,_0x4c655c){return[+_0x3a0c13,+_0x4c655c,Math['sqrt'](_0x3a0c13*_0x3a0c13+_0x4c655c*_0x4c655c)];}[_0x413bec(0x293,0x2f7)](_0x390043,_0x374cc9){if(!this[_0x3f36b9(0xcc,0xa9)](_0x390043,_0x374cc9))return null;function _0x3f36b9(_0x3d147c,_0x5e3029){return _0x92c83a(_0x5e3029,_0x3d147c-0x229);}const _0x5b2e1d=this['toGridXY'](_0x390043,_0x374cc9);function _0x4cff91(_0x21cab7,_0x537180){return _0x92c83a(_0x537180,_0x21cab7-0x124);}const _0x1ed9ca=this[_0x3f36b9(0x119,0xd6)](_0x5b2e1d[0x0],_0x5b2e1d[0x1]);return _0x1ed9ca;}['isInExtent'](_0x2ae9f5,_0x469867){function _0x65ce49(_0x355cc7,_0x40164e){return _0x413bec(_0x40164e- -0x31e,_0x355cc7);}return _0x2ae9f5>=this['xmin']&&_0x2ae9f5<=this[_0x65ce49(-0x35,-0x32)]&&_0x469867>=this['ymin']&&_0x469867<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x1ab6c1=fRandomByfloat(this['xmin'],this[_0x2dd3f2(0x32a,0x3b4)]);function _0x2dd3f2(_0x5a33c0,_0x194eb2){return _0x92c83a(_0x194eb2,_0x5a33c0-0x4b0);}const _0x227050=fRandomByfloat(this['ymin'],this[_0x2dd3f2(0x35e,0x307)]),_0x1a82dd={};function _0x27f089(_0xc088e5,_0x563bfc){return _0x413bec(_0xc088e5- -0x303,_0x563bfc);}return _0x1a82dd[_0x27f089(-0xf,-0x3)]=_0x227050,_0x1a82dd[_0x2dd3f2(0x319,0x2ff)]=_0x1ab6c1,_0x1a82dd;}['getParticles'](){function _0x26747(_0x4eb2fc,_0x537731){return _0x92c83a(_0x537731,_0x4eb2fc-0x649);}let _0x316229,_0x35c669,_0x472783;for(let _0x3bdcd5=0x0,_0x4975ae=this['particles']['length'];_0x3bdcd5<_0x4975ae;_0x3bdcd5++){let _0x1ab30d=this[_0x26747(0x4c4,0x4d0)][_0x3bdcd5];_0x1ab30d['age']<=0x0&&(_0x1ab30d=this[_0x321db6(0xca,0xdc)](_0x1ab30d));if(_0x1ab30d['age']>0x0){const _0x5e98d9=_0x1ab30d[_0x26747(0x462,0x4c4)],_0x307d0b=_0x1ab30d[_0x26747(0x4c2,0x456)];_0x472783=this[_0x321db6(0xd8,0x99)](_0x5e98d9,_0x307d0b),_0x472783?(_0x316229=_0x5e98d9+this[_0x321db6(0x16e,0x196)][0x0]*_0x472783[0x0],_0x35c669=_0x307d0b+this['_calc_speedRate'][0x1]*_0x472783[0x1],_0x1ab30d['lng']=_0x5e98d9,_0x1ab30d[_0x26747(0x4cb,0x545)]=_0x307d0b,_0x1ab30d[_0x321db6(0xd0,0x52)]=_0x316229,_0x1ab30d['tlat']=_0x35c669,_0x1ab30d[_0x26747(0x49a,0x4e1)]=_0x472783[0x2],_0x1ab30d['age']--):_0x1ab30d['age']=0x0;}}function _0x321db6(_0x562f00,_0x4802e0){return _0x413bec(_0x562f00- -0x1bb,_0x4802e0);}return this[_0x321db6(0x132,0x19a)];}['_randomParticle'](_0x4ac1e2){let _0x499cb3,_0x132b66;for(let _0x64263e=0x0;_0x64263e<0x1e;_0x64263e++){_0x499cb3=this[_0xfff302(0x4f5,0x552)](),_0x132b66=this['getUVByPoint'](_0x499cb3['lng'],_0x499cb3['lat']);if(_0x132b66&&_0x132b66[0x2]>0x0)break;}if(!_0x132b66)return _0x4ac1e2;function _0x1cea8a(_0xda6847,_0xd3d79b){return _0x413bec(_0xda6847-0x1e1,_0xd3d79b);}const _0x3e74f1=_0x499cb3['lng']+this['_calc_speedRate'][0x0]*_0x132b66[0x0];function _0xfff302(_0x3ea098,_0x537f32){return _0x92c83a(_0x3ea098,_0x537f32-0x64a);}const _0x44b9cf=_0x499cb3[_0x1cea8a(0x4d5,0x445)]+this[_0x1cea8a(0x50a,0x49b)][0x1]*_0x132b66[0x1];return _0x4ac1e2['lng']=_0x499cb3[_0xfff302(0x42c,0x4b3)],_0x4ac1e2['lat']=_0x499cb3[_0x1cea8a(0x4d5,0x463)],_0x4ac1e2['tlng']=_0x3e74f1,_0x4ac1e2['tlat']=_0x44b9cf,_0x4ac1e2['age']=Math[_0x1cea8a(0x4a3,0x426)](Math['random']()*this['maxAge']),_0x4ac1e2['speed']=_0x132b66[0x2],_0x4ac1e2;}[_0x92c83a(-0x11d,-0x10f)](){for(const _0x5a25bd in this){delete this[_0x5a25bd];}}}function fRandomByfloat(_0x25b235,_0x5313f6){function _0x169eb1(_0x193e0b,_0x24b7cb){return _0x413bec(_0x24b7cb- -0x254,_0x193e0b);}return _0x25b235+Math[_0x169eb1(0xb3,0xfd)]()*(_0x5313f6-_0x25b235);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x92c83a(-0x13c,-0x1ab)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x5dc00d={}){function _0x32b39a(_0x420508,_0x8d5736){return _0x413bec(_0x8d5736- -0x158,_0x420508);}function _0x36c6d8(_0x453a41,_0x8399bc){return _0x92c83a(_0x8399bc,_0x453a41-0x2a7);}super(_0x5dc00d),this[_0x36c6d8(0xf3,0x114)](_0x5dc00d),this['canvas']=null,_0x5dc00d['colors']&&_0x5dc00d[_0x32b39a(0x14f,0x1ad)]&&(this['_colorRamp']=new mars3d__namespace[(_0x36c6d8(0x179,0x14d))](_0x5dc00d));}['_setOptionsHook'](_0x5a1511,_0xfe18b){this['frameTime']=0x3e8/(_0x5a1511['frameRate']||0xa),this[_0x3893ff(-0x176,-0x114)]=this['options']['pointerEvents']??![];function _0x3893ff(_0x4786be,_0x4a71ae){return _0x413bec(_0x4a71ae- -0x459,_0x4786be);}this[_0x27bd63(-0x28f,-0x242)]=_0x5a1511['color']||_0x3893ff(-0x1fd,-0x1c4),this['lineWidth']=_0x5a1511['lineWidth']||0x1;function _0x27bd63(_0x659ed,_0x42adc8){return _0x92c83a(_0x42adc8,_0x659ed- -0xd4);}this['fixedHeight']=_0x5a1511['fixedHeight']??0x0,this['reverseY']=_0x5a1511['reverseY']??![],this['windField']&&this[_0x3893ff(-0xea,-0xe9)][_0x27bd63(-0x2ce,-0x336)](_0x5a1511);}get[_0x413bec(0x2c7,0x2ae)](){return this['canvas'];}get[_0x92c83a(-0x11f,-0x19e)](){function _0x585efa(_0x3f7b1f,_0x431be3){return _0x413bec(_0x431be3- -0x200,_0x3f7b1f);}function _0x232bcd(_0x3a6247,_0x27596a){return _0x92c83a(_0x27596a,_0x3a6247-0x3fc);}return this[_0x585efa(0xf9,0x83)]['scene']['canvas'][_0x232bcd(0x2f1,0x2c0)];}get['canvasHeight'](){function _0x1d8f80(_0x11d5cf,_0x72fa49){return _0x413bec(_0x11d5cf- -0x22e,_0x72fa49);}return this['_map'][_0x1d8f80(0x13a,0x150)]['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x413bec(0x2d6,0x2b7)](_0x4c6857){this[_0x3dcb2b(-0x280,-0x237)]=_0x4c6857;function _0x3dcb2b(_0x56a4a6,_0x51a136){return _0x92c83a(_0x56a4a6,_0x51a136- -0x10a);}function _0x244a2b(_0x5e725e,_0x128cee){return _0x92c83a(_0x5e725e,_0x128cee- -0x5c);}if(!this['canvas'])return;_0x4c6857?this[_0x3dcb2b(-0x2b7,-0x235)]['style']['pointer-events']='all':this['canvas'][_0x244a2b(-0x146,-0x159)]['pointer-events']='none';}get[_0x92c83a(-0x9c,-0x10c)](){return this['options']['particlesNumber'];}set['particlesNumber'](_0x3309b6){this[_0x47f78b(0x372,0x333)][_0x646c96(-0x136,-0x1a5)]=_0x3309b6,clearTimeout(this[_0x646c96(-0x1fb,-0x1a9)]);function _0x646c96(_0x4181c3,_0x58d531){return _0x92c83a(_0x58d531,_0x4181c3- -0x2a);}function _0x47f78b(_0x287f4e,_0x2dea51){return _0x413bec(_0x2dea51- -0x36,_0x287f4e);}this[_0x47f78b(0x2c0,0x26b)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x92c83a(-0x209,-0x192)](){return this['options']['speedRate'];}set[_0x413bec(0x2e0,0x2f8)](_0x2544b4){function _0x4f1ed5(_0xba9ab9,_0x5b7487){return _0x92c83a(_0x5b7487,_0xba9ab9-0x3f6);}this[_0x4f1ed5(0x2ed,0x36f)]['speedRate']=_0x2544b4;function _0x2436ec(_0x36b02d,_0x47ffba){return _0x413bec(_0x36b02d- -0xeb,_0x47ffba);}this[_0x2436ec(0x285,0x2ba)]&&(this[_0x2436ec(0x285,0x203)][_0x4f1ed5(0x264,0x283)]=_0x2544b4);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x2ae427){this[_0x42cfb8(0x3fd,0x467)]['maxAge']=_0x2ae427;function _0x14ac8b(_0x191f99,_0x44c16c){return _0x92c83a(_0x44c16c,_0x191f99-0x25e);}function _0x42cfb8(_0x418360,_0x11c6fa){return _0x92c83a(_0x418360,_0x11c6fa-0x570);}this[_0x14ac8b(0x15c,0x1b9)]&&(this['windField'][_0x14ac8b(0x118,0x104)]=_0x2ae427);}get[_0x413bec(0x326,0x29f)](){function _0x1a6736(_0x359635,_0x5412bb){return _0x413bec(_0x359635-0x19e,_0x5412bb);}return this[_0x1a6736(0x487,0x505)];}set[_0x413bec(0x326,0x395)](_0x1bf3d3){this['setData'](_0x1bf3d3);}get[_0x92c83a(-0xd6,-0x145)](){let _0x4f5c5b=this['windData']['xmin'],_0x1a4288=this['windData']['xmax'],_0x4224f6=this[_0x49908b(0x3bf,0x3d1)][_0x49908b(0x490,0x404)],_0x142565=this[_0x125b98(0x3a6,0x36a)]['ymax'];_0x1a4288>=0x167&&_0x4f5c5b===0x0&&(_0x4f5c5b=-0xb4,_0x1a4288=0xb4);_0x4f5c5b=Math[_0x49908b(0x340,0x3ad)](_0x4f5c5b,-0xb4);function _0x49908b(_0x19bddd,_0x5cc1ec){return _0x413bec(_0x5cc1ec-0xe8,_0x19bddd);}_0x1a4288=Math['min'](_0x1a4288,0xb4),_0x4224f6=Math['max'](_0x4224f6,-0x5a),_0x142565=Math['min'](_0x142565,0x5a);function _0x125b98(_0x18f5af,_0x3a06ab){return _0x413bec(_0x18f5af-0xbd,_0x3a06ab);}return Cesium[_0x125b98(0x377,0x3c2)]['fromDegrees'](_0x4f5c5b,_0x4224f6,_0x1a4288,_0x142565);}['_showHook'](_0x19d3ee){function _0x5d18f2(_0x3cbf54,_0x4577cd){return _0x413bec(_0x3cbf54-0xb2,_0x4577cd);}function _0x4cb8a9(_0x497817,_0x59e487){return _0x413bec(_0x59e487- -0x518,_0x497817);}_0x19d3ee?this[_0x5d18f2(0x3da,0x38a)]():(this['windData']&&(this[_0x4cb8a9(-0x13e,-0x1af)][_0x5d18f2(0x3d8,0x45e)]=this['windData']),this['_removedHook']());}[_0x92c83a(-0x201,-0x177)](){function _0x29f7e4(_0x26f0a5,_0x5d922d){return _0x413bec(_0x5d922d- -0x40b,_0x26f0a5);}function _0x3ccd56(_0x5cdfe6,_0x5171ee){return _0x92c83a(_0x5171ee,_0x5cdfe6-0x129);}this['options'][_0x29f7e4(-0x1c2,-0x140)]?this['initWorker']():this[_0x29f7e4(-0xb4,-0x9b)]=new CanvasWindField(this[_0x3ccd56(0x20,-0xe)]);}[_0x413bec(0x328,0x2c1)](){this[_0x53f818(0xbf,0x100)]=this['_createCanvas']();const _0x257e61={};_0x257e61['willReadFrequently']=!![],this['canvasContext']=this['canvas']['getContext']('2d',_0x257e61);function _0x176d45(_0x3046db,_0x7fb421){return _0x413bec(_0x3046db- -0x366,_0x7fb421);}function _0x53f818(_0x396ad9,_0x27fa94){return _0x92c83a(_0x27fa94,_0x396ad9-0x1ea);}this[_0x53f818(0x12,0x13)](),this[_0x53f818(0xe1,0x9e)][_0x176d45(-0x40,-0x21)]&&this[_0x176d45(-0xc8,-0xc6)](this['options']['data']);}[_0x413bec(0x312,0x38a)](){this['clear']();function _0x37c67b(_0x4b5b13,_0x1e5aa3){return _0x92c83a(_0x4b5b13,_0x1e5aa3-0x4c9);}function _0x42fcd4(_0x58e61f,_0x38bd5c){return _0x413bec(_0x38bd5c-0x14d,_0x58e61f);}this['unbindEvent'](),this[_0x42fcd4(0x4a0,0x494)]&&(this['_map']['container'][_0x37c67b(0x33d,0x3ca)](this['canvas']),delete this[_0x42fcd4(0x47e,0x494)]);}['_createCanvas'](){const _0x2ca42a=mars3d__namespace['DomUtil'][_0x567ada(-0x1f4,-0x279)](_0x3ece4a(0x528,0x53d),_0x3ece4a(0x55e,0x51e),this['_map']['container']);_0x2ca42a['style']['position']='absolute',_0x2ca42a[_0x3ece4a(0x556,0x5ca)][_0x3ece4a(0x4f4,0x515)]='0px';function _0x567ada(_0x463fb3,_0x29d7c2){return _0x92c83a(_0x29d7c2,_0x463fb3- -0x9);}_0x2ca42a[_0x567ada(-0x106,-0x177)]['left']=_0x567ada(-0x215,-0x1a7),_0x2ca42a['style'][_0x567ada(-0x182,-0x1ca)]=this[_0x3ece4a(0x464,0x481)]['scene'][_0x3ece4a(0x528,0x4e2)][_0x567ada(-0x114,-0x16a)]+'px';function _0x3ece4a(_0x205f5d,_0x308159){return _0x92c83a(_0x308159,_0x205f5d-0x653);}return _0x2ca42a[_0x567ada(-0x106,-0x173)]['height']=this['_map']['scene']['canvas']['clientHeight']+'px',_0x2ca42a['style']['pointerEvents']=this[_0x3ece4a(0x526,0x520)]?_0x567ada(-0x19e,-0x1bd):'none',_0x2ca42a['style']['zIndex']=this['options']['zIndex']??0x9,_0x2ca42a[_0x567ada(-0x182,-0x1fb)]=this['_map']['scene']['canvas']['clientWidth'],_0x2ca42a[_0x3ece4a(0x4af,0x474)]=this[_0x3ece4a(0x464,0x477)]['scene']['canvas']['clientHeight'],_0x2ca42a;}['resize'](){function _0x36d97e(_0x5411d5,_0x552909){return _0x92c83a(_0x5411d5,_0x552909- -0x120);}function _0xa40f11(_0x210711,_0xf44255){return _0x92c83a(_0x210711,_0xf44255-0x3d8);}this['canvas']&&(this['canvas']['style'][_0xa40f11(0x213,0x25f)]=this['_map']['scene'][_0xa40f11(0x29d,0x2ad)][_0xa40f11(0x2cb,0x2cd)]+'px',this[_0x36d97e(-0x23b,-0x24b)]['style']['height']=this[_0x36d97e(-0x351,-0x30f)]['scene'][_0xa40f11(0x2cd,0x2ad)][_0x36d97e(-0x285,-0x216)]+'px',this['canvas']['width']=this['_map']['scene'][_0x36d97e(-0x1be,-0x24b)][_0xa40f11(0x2ed,0x2cd)],this[_0x36d97e(-0x2b7,-0x24b)]['height']=this['_map'][_0xa40f11(0x250,0x2ce)][_0x36d97e(-0x1e3,-0x24b)]['clientHeight']);}['bindEvent'](){function _0x2b9a96(_0x29f103,_0x386768){return _0x92c83a(_0x29f103,_0x386768-0x5a6);}const _0x421615=this;function _0x2e114a(_0x526f77,_0x4a9634){return _0x92c83a(_0x526f77,_0x4a9634- -0x8a);}let _0x461796=Date[_0x2e114a(-0x257,-0x299)]();(function _0x209ce2(){function _0x4a9c50(_0x4cf64c,_0x5c4b25){return _0x2e114a(_0x5c4b25,_0x4cf64c-0x726);}function _0x12fc86(_0x3e9d63,_0x50c978){return _0x2e114a(_0x50c978,_0x3e9d63-0x33c);}if(_0x421615['isDestroy'])return;_0x421615['_animateFrame']=window[_0x4a9c50(0x528,0x4f2)](_0x209ce2);if(_0x421615['show']&&_0x421615['windField']){const _0x2227f0=Date['now'](),_0x3dec93=_0x2227f0-_0x461796;_0x3dec93>_0x421615[_0x4a9c50(0x49c,0x4bc)]&&(_0x461796=_0x2227f0-_0x3dec93%_0x421615['frameTime'],_0x421615[_0x12fc86(0x175,0x151)]());}}(),window[_0x2b9a96(0x474,0x3f3)]('resize',this['resize']['bind'](this),![]),this['mouse_down']=![],this[_0x2e114a(-0x222,-0x1e1)]=![],this['options']['mouseHidden']&&(this[_0x2b9a96(0x346,0x3b7)]['on'](mars3d__namespace['EventType'][_0x2e114a(-0x171,-0x198)],this['_onMapWhellEvent'],this),this[_0x2b9a96(0x336,0x3b7)]['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x2b9a96(0x3ee,0x3b7)]['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this)));}[_0x92c83a(-0x19f,-0x12f)](){function _0x1b681a(_0x8b3185,_0xf7ec8d){return _0x413bec(_0xf7ec8d- -0xf2,_0x8b3185);}window[_0x1b681a(0x29b,0x235)](this[_0x1b681a(0x250,0x20e)]);function _0x38154c(_0x5439b2,_0x123631){return _0x92c83a(_0x123631,_0x5439b2-0x61a);}delete this['_animateFrame'],window[_0x1b681a(0x2ca,0x27f)](_0x1b681a(0x27e,0x21d),this[_0x38154c(0x4b7,0x491)]),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x38154c(0x468,0x4b6)][_0x38154c(0x50c,0x4e3)],this[_0x1b681a(0x267,0x287)],this),this[_0x38154c(0x42b,0x477)][_0x38154c(0x515,0x501)](mars3d__namespace[_0x38154c(0x468,0x45e)]['mouseDown'],this[_0x38154c(0x509,0x47c)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this[_0x1b681a(0x14a,0x191)][_0x1b681a(0x22b,0x27b)](mars3d__namespace['EventType'][_0x38154c(0x4b2,0x4e6)],this['_onMouseMoveEvent'],this));}[_0x413bec(0x379,0x31b)](_0x53acd7){clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas']['style']['visibility']='hidden',this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;function _0x1b5b87(_0x4f5fdd,_0x1dd71b){return _0x8444(_0x1dd71b- -0xce,_0x4f5fdd);}function _0x5ea510(_0x3abc61,_0xd8ec54){return _0x8444(_0xd8ec54-0x2ee,_0x3abc61);}this['redraw'](),this[_0x1b5b87(0xee,0xbf)]['style']['visibility']=_0x5ea510(0x48e,0x441);},0xc8);}[_0x92c83a(-0xc3,-0x111)](_0x4588fb){this['mouse_down']=!![];function _0x1a0e56(_0x3f8d7b,_0x59f476){return _0x413bec(_0x3f8d7b- -0x4f7,_0x59f476);}function _0x698a53(_0x347fbe,_0x22686f){return _0x92c83a(_0x22686f,_0x347fbe-0x552);}this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x698a53(0x3d5,0x35f)],this),this[_0x1a0e56(-0x274,-0x286)]['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x4d680d){function _0x3db6c8(_0x230198,_0x201240){return _0x92c83a(_0x230198,_0x201240-0x41e);}function _0x3a96e8(_0x54b89b,_0xf3cf16){return _0x92c83a(_0x54b89b,_0xf3cf16-0x411);}if(!this['show']||!this['canvas'])return;this[_0x3a96e8(0x2ab,0x25b)]&&(this[_0x3a96e8(0x29d,0x2e6)][_0x3a96e8(0x314,0x314)][_0x3db6c8(0x307,0x281)]='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x3c20b3){if(!this['show']||!this['canvas'])return;this['_map']['off'](mars3d__namespace[_0xcf893d(-0xcd,-0x66)]['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this['mouse_move']&&this[_0xcf893d(-0x1f,0x8)]();this[_0xcf893d(-0x46,-0x57)][_0x24a093(0x420,0x414)][_0xcf893d(-0xb8,-0x89)]='visible',this[_0x24a093(0x342,0x35b)]=![];function _0xcf893d(_0x480fd4,_0x21c5c3){return _0x413bec(_0x480fd4- -0x38d,_0x21c5c3);}function _0x24a093(_0x416181,_0x1b7485){return _0x92c83a(_0x416181,_0x1b7485-0x511);}this[_0xcf893d(-0x72,-0xa5)]=![];}['setData'](_0x146315){function _0x2caeba(_0x21b36e,_0x293f60){return _0x413bec(_0x293f60- -0x2a6,_0x21b36e);}this[_0x2caeba(0xd8,0xd8)](),this['windData']=_0x146315,this['windField']['setDate'](_0x146315),this['redraw']();}['redraw'](){function _0x47d2a3(_0x4346dd,_0x3e5875){return _0x413bec(_0x3e5875- -0x401,_0x4346dd);}if(!this['show'])return;this['windField']['setOptions'](this[_0x47d2a3(-0x60,-0x98)]),this['update']();}['update'](){if(this['_updateIng'])return;function _0x139a32(_0x505088,_0x2a035e){return _0x413bec(_0x2a035e- -0x94,_0x505088);}function _0x1e771d(_0x59d737,_0x3c4e68){return _0x413bec(_0x3c4e68- -0x1cf,_0x59d737);}this['_updateIng']=!![];if(this['worker'])this['windField'][_0x1e771d(0xed,0x166)]();else{const _0x5b0092=this[_0x1e771d(0x165,0x1a1)][_0x1e771d(0x16f,0x1a7)]();this['_drawLines'](_0x5b0092);}this[_0x139a32(0x17d,0x1e2)]=![];}[_0x413bec(0x32f,0x321)](_0x4249b8){function _0x63164c(_0xed850d,_0x36c44d){return _0x413bec(_0xed850d- -0x65,_0x36c44d);}this[_0x63164c(0x21f,0x1ea)]=_0x4249b8,this['canvasContext']['globalCompositeOperation']='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext'][_0x63164c(0x2cb,0x317)]='lighter',this['canvasContext'][_0x63164c(0x219,0x20f)]=0.9;function _0x3031a2(_0x117c1a,_0x51f908){return _0x92c83a(_0x117c1a,_0x51f908-0xfe);}const _0x342f1b=this['_map'][_0x3031a2(-0x89,-0xc)][_0x63164c(0x1ff,0x181)]!==Cesium[_0x3031a2(-0xaf,-0x90)][_0x63164c(0x249,0x2ae)],_0x2e01f8=this[_0x3031a2(-0xa4,-0xa0)]*0.25;if(this['_colorRamp'])for(let _0x28ef9b=0x0,_0x1245d2=_0x4249b8['length'];_0x28ef9b<_0x1245d2;_0x28ef9b++){const _0x123803=_0x4249b8[_0x28ef9b],_0x140ab8=this['_tomap'](_0x123803,_0x123803[_0x3031a2(-0xab,-0x99)],_0x123803['lat'],_0x123803[_0x63164c(0x2d7,0x2cb)]),_0x56902c=this[_0x3031a2(-0x84,-0xdd)](_0x123803,_0x123803[_0x63164c(0x226,0x253)],_0x123803[_0x3031a2(-0xbb,-0x89)],_0x123803['talt']);if(!_0x140ab8||!_0x56902c)continue;if(_0x342f1b&&Math['abs'](_0x140ab8[0x0]-_0x56902c[0x0])>=_0x2e01f8)continue;this[_0x63164c(0x22b,0x1dc)][_0x3031a2(-0x12a,-0x9c)](),this[_0x3031a2(-0xfb,-0xe4)][_0x3031a2(-0x57,-0x71)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this['_colorRamp'][_0x63164c(0x2cf,0x34d)](_0x123803['speed']),this[_0x3031a2(-0x7a,-0xe4)][_0x63164c(0x2f5,0x31c)](_0x140ab8[0x0],_0x140ab8[0x1]),this['canvasContext'][_0x63164c(0x20f,0x181)](_0x56902c[0x0],_0x56902c[0x1]),this['canvasContext']['stroke']();}else{this[_0x3031a2(-0x164,-0xe4)][_0x3031a2(-0x23,-0x9c)](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x63164c(0x22b,0x28d)][_0x3031a2(-0xd,-0x75)]=this['color'];for(let _0x2efbac=0x0,_0x1060c0=_0x4249b8['length'];_0x2efbac<_0x1060c0;_0x2efbac++){const _0x44810e=_0x4249b8[_0x2efbac],_0x9dd43b=this[_0x63164c(0x232,0x1a6)](_0x44810e,_0x44810e['lng'],_0x44810e['lat'],_0x44810e[_0x63164c(0x2d7,0x2d1)]),_0x387503=this[_0x3031a2(-0x100,-0xdd)](_0x44810e,_0x44810e['tlng'],_0x44810e['tlat'],_0x44810e['talt']);if(!_0x9dd43b||!_0x387503)continue;if(_0x342f1b&&Math['abs'](_0x9dd43b[0x0]-_0x387503[0x0])>=_0x2e01f8)continue;this['canvasContext'][_0x3031a2(0x55,-0x1a)](_0x9dd43b[0x0],_0x9dd43b[0x1]),this['canvasContext']['lineTo'](_0x387503[0x0],_0x387503[0x1]);}this['canvasContext']['stroke']();}}['_tomap'](_0x4fa97f,_0x37e144,_0xdfdae9,_0x130ff6){function _0x40e8b5(_0x3e031e,_0x1c27c8){return _0x92c83a(_0x1c27c8,_0x3e031e-0x427);}const _0x56b0ba=Cesium['Cartesian3'][_0x40e8b5(0x29a,0x26d)](_0x37e144,_0xdfdae9,_0x130ff6??this['fixedHeight']),_0x20590b=this['_map']['scene'];if(_0x20590b[_0xf62865(0x2ff,0x319)]===Cesium['SceneMode']['SCENE3D']){const _0x38294f=new Cesium['EllipsoidalOccluder'](_0x20590b[_0xf62865(0x3a6,0x387)]['ellipsoid'],_0x20590b['camera'][_0x40e8b5(0x2fb,0x34e)]),_0x5a2929=_0x38294f['isPointVisible'](_0x56b0ba);if(!_0x5a2929)return _0x4fa97f['age']=0x0,null;}const _0x25c911=mars3d__namespace['PointTrans'][_0x40e8b5(0x31f,0x2ba)](this[_0x40e8b5(0x238,0x2c2)][_0x40e8b5(0x31d,0x357)],_0x56b0ba);function _0xf62865(_0x20c1cf,_0x425d6b){return _0x413bec(_0x425d6b-0xb5,_0x20c1cf);}return _0x25c911?[_0x25c911['x'],_0x25c911['y']]:null;}['clear'](){function _0x1afff9(_0x4e98c4,_0x1fbad8){return _0x92c83a(_0x1fbad8,_0x4e98c4-0x5aa);}this['windField'][_0x1afff9(0x4b6,0x42f)](),delete this['windData'];}['initWorker'](){function _0x45ed22(_0x3c9273,_0x535913){return _0x413bec(_0x3c9273-0x15a,_0x535913);}this['worker']=new Worker(this['options']['worker']),this[_0x45ed22(0x425,0x3d2)]['onmessage']=_0x1549e9=>{function _0x3ec16a(_0x5b0e24,_0x4a6ca1){return _0x45ed22(_0x4a6ca1- -0x3b7,_0x5b0e24);}this[_0x3ec16a(0x61,0xd2)](_0x1549e9['data'][_0x5c7bbc(0x1fb,0x211)]);function _0x5c7bbc(_0x39ba89,_0x3c3761){return _0x45ed22(_0x3c3761- -0x236,_0x39ba89);}this['_updateIng2']=![];},this['windField']={'init':_0x36692e=>{const _0x528f29={};function _0x4bf655(_0x33c6e7,_0x32cb8c){return _0x45ed22(_0x33c6e7- -0x264,_0x32cb8c);}_0x528f29['type']='init',_0x528f29[_0x4bf655(0x25f,0x281)]=_0x36692e,this['worker']['postMessage'](_0x528f29);},'setOptions':_0x4eeef5=>{const _0x50f242={};function _0x3f4c1d(_0x1147b7,_0x25188a){return _0x45ed22(_0x1147b7- -0x2aa,_0x25188a);}_0x50f242['type']='setOptions';function _0x345ca9(_0x518e79,_0x5e5dad){return _0x45ed22(_0x5e5dad- -0x506,_0x518e79);}_0x50f242['options']=_0x4eeef5,this[_0x3f4c1d(0x17b,0x14f)][_0x3f4c1d(0x150,0x1da)](_0x50f242);},'setDate':_0x3925de=>{const _0x508b0a={};_0x508b0a['type']=_0x576dfc(-0x83,-0x76);function _0x48b8bf(_0x561cef,_0x135e1e){return _0x45ed22(_0x561cef- -0x639,_0x135e1e);}_0x508b0a['data']=_0x3925de;function _0x576dfc(_0xb00535,_0x5142af){return _0x45ed22(_0xb00535- -0x53a,_0x5142af);}this[_0x48b8bf(-0x214,-0x1bb)][_0x48b8bf(-0x23f,-0x2a8)](_0x508b0a);},'update':()=>{if(this[_0x1df318(-0x189,-0x1ae)])return;this[_0x1df318(-0x189,-0x159)]=!![];const _0x1224cb={};_0x1224cb['type']='update';function _0x1df318(_0x21402d,_0x3d5a9f){return _0x45ed22(_0x21402d- -0x54c,_0x3d5a9f);}function _0x6451a8(_0x55d939,_0x4d3c52){return _0x45ed22(_0x55d939- -0x210,_0x4d3c52);}this['worker']['postMessage'](_0x1224cb);},'clear':()=>{const _0x40142f={};_0x40142f['type']='clear';function _0x9c2211(_0x2069b3,_0x424d53){return _0x45ed22(_0x2069b3- -0xea,_0x424d53);}this['worker'][_0x9c2211(0x310,0x37f)](_0x40142f);}},this['windField']['init'](this['options']);}}mars3d__namespace['LayerUtil'][_0x92c83a(-0x22c,-0x1cf)](_0x92c83a(-0xeb,-0x130),CanvasWindLayer),mars3d__namespace[_0x413bec(0x2c7,0x309)][_0x92c83a(-0xe0,-0xfa)]=CanvasWindLayer,mars3d__namespace[_0x92c83a(-0xb8,-0x10d)]=CanvasWindField,mars3d__namespace[_0x92c83a(-0x1fb,-0x196)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x413bec(0x378,0x404)]=CanvasWindLayer,exports[_0x413bec(0x27a,0x2d9)]=WindLayer,exports['WindUtil']=WindUtil;const _0x46b49e={};function _0x8444(_0x9e3c87,_0x2e1b88){const _0x3e6853=_0x3e68();return _0x8444=function(_0x8444a,_0x424dd7){_0x8444a=_0x8444a-0xa4;let _0x126ca7=_0x3e6853[_0x8444a];return _0x126ca7;},_0x8444(_0x9e3c87,_0x2e1b88);}_0x46b49e['value']=!![],Object['defineProperty'](exports,'__esModule',_0x46b49e);
14
+ 'use strict';(function(_0x158e42,_0x3501e0){const _0x47bf3b=_0x158e42();function _0x17dafc(_0x4f3b75,_0x4ae60f){return _0x32c3(_0x4ae60f- -0x342,_0x4f3b75);}function _0x3fbc1d(_0x5e2e2c,_0x12a3c5){return _0x32c3(_0x5e2e2c- -0x1f6,_0x12a3c5);}while(!![]){try{const _0x3b6039=parseInt(_0x17dafc(-0x20d,-0x27f))/0x1+parseInt(_0x3fbc1d(-0x175,-0x121))/0x2+parseInt(_0x17dafc(-0x2af,-0x268))/0x3*(-parseInt(_0x3fbc1d(-0x168,-0x1e6))/0x4)+-parseInt(_0x17dafc(-0x275,-0x229))/0x5+-parseInt(_0x17dafc(-0x246,-0x227))/0x6+-parseInt(_0x17dafc(-0x1b0,-0x1b7))/0x7*(-parseInt(_0x17dafc(-0x23a,-0x203))/0x8)+-parseInt(_0x3fbc1d(-0x158,-0x117))/0x9*(-parseInt(_0x3fbc1d(-0xc7,-0xaf))/0xa);if(_0x3b6039===_0x3501e0)break;else _0x47bf3b['push'](_0x47bf3b['shift']());}catch(_0x257481){_0x47bf3b['push'](_0x47bf3b['shift']());}}}(_0x15da,0x2e2a0));function _interopNamespace(_0x28f455){if(_0x28f455&&_0x28f455[_0xb5f290(0x1bf,0x23a)])return _0x28f455;function _0x4b1304(_0x5b02b9,_0x5478e1){return _0x32c3(_0x5b02b9-0x89,_0x5478e1);}var _0x441342=Object[_0x4b1304(0x21d,0x2a7)](null);_0x28f455&&Object['keys'](_0x28f455)['forEach'](function(_0x2a3c17){function _0x13388d(_0x212f43,_0x1c82d0){return _0xb5f290(_0x1c82d0,_0x212f43-0x1a3);}if(_0x2a3c17!==_0x13388d(0x3eb,0x39d)){var _0x55248b=Object['getOwnPropertyDescriptor'](_0x28f455,_0x2a3c17);Object['defineProperty'](_0x441342,_0x2a3c17,_0x55248b['get']?_0x55248b:{'enumerable':!![],'get':function(){return _0x28f455[_0x2a3c17];}});}});_0x441342['default']=_0x28f455;function _0xb5f290(_0x34994e,_0x211217){return _0x32c3(_0x211217-0x166,_0x34994e);}return _0x441342;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$7=mars3d__namespace['Cesium'];function getU(_0x4cf8ea,_0x2a0a11){function _0x4633c0(_0x550816,_0xddb27e){return _0x32c3(_0x550816-0x1c9,_0xddb27e);}const _0xadca99=_0x4cf8ea*Math['cos'](Cesium$7[_0x4633c0(0x344,0x346)][_0x707943(0x325,0x396)](_0x2a0a11));function _0x707943(_0x11e352,_0x22b3b5){return _0x32c3(_0x22b3b5-0x299,_0x11e352);}return _0xadca99;}function getV(_0x2643be,_0x3ee0f2){function _0x425d16(_0x1c0cf0,_0x43599d){return _0x32c3(_0x43599d-0x15f,_0x1c0cf0);}const _0x6c1610=_0x2643be*Math[_0x27b97d(0x3aa,0x3aa)](Cesium$7[_0x425d16(0x2dc,0x2da)]['toRadians'](_0x3ee0f2));function _0x27b97d(_0x1ef9a0,_0x5834f8){return _0x32c3(_0x1ef9a0-0x2b5,_0x5834f8);}return _0x6c1610;}function getSpeed(_0x537689,_0x486fe3){function _0x22ec9a(_0x460fa5,_0x1b7b38){return _0x32c3(_0x460fa5- -0x4,_0x1b7b38);}const _0x5daf7f=Math[_0x4bb58a(0x5e,-0x30)](Math[_0x4bb58a(0xdc,0xa4)](_0x537689,0x2)+Math['pow'](_0x486fe3,0x2));function _0x4bb58a(_0x23154b,_0x2ff541){return _0x32c3(_0x23154b- -0x83,_0x2ff541);}return _0x5daf7f;}function getDirection(_0xfb6cbe,_0x34599f){function _0x406ac1(_0x454b6e,_0x489adf){return _0x32c3(_0x454b6e-0x33f,_0x489adf);}let _0x4fb89e=Cesium$7['Math']['toDegrees'](Math[_0x406ac1(0x3cf,0x411)](_0x34599f,_0xfb6cbe));return _0x4fb89e+=_0x4fb89e<0x0?0x168:0x0,_0x4fb89e;}const _0x55b50f={};_0x55b50f[_0x2962c5(-0x39,0x48)]=null,_0x55b50f[_0x59248e(0x43b,0x45b)]=getU,_0x55b50f['getV']=getV,_0x55b50f['getSpeed']=getSpeed,_0x55b50f['getDirection']=getDirection;var WindUtil=_0x55b50f;const Cesium$6=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x3ca5da){this['commandType']=_0x3ca5da[_0x38e592(-0x2d3,-0x279)],this['geometry']=_0x3ca5da['geometry'],this['attributeLocations']=_0x3ca5da['attributeLocations'],this['primitiveType']=_0x3ca5da['primitiveType'],this['uniformMap']=_0x3ca5da['uniformMap'];function _0x1b6058(_0x2ea2a2,_0x5e93e7){return _0x2962c5(_0x2ea2a2,_0x5e93e7-0x27f);}function _0x38e592(_0x5046ee,_0x32478){return _0x59248e(_0x5046ee- -0x61c,_0x32478);}this['vertexShaderSource']=_0x3ca5da[_0x1b6058(0x23e,0x237)],this['fragmentShaderSource']=_0x3ca5da[_0x1b6058(0x28e,0x212)],this['rawRenderState']=_0x3ca5da['rawRenderState'],this[_0x1b6058(0x1f3,0x25b)]=_0x3ca5da['framebuffer'],this['outputTexture']=_0x3ca5da['outputTexture'],this['autoClear']=_0x3ca5da[_0x1b6058(0x331,0x29b)]??![],this['preExecute']=_0x3ca5da['preExecute'],this['show']=!![],this[_0x38e592(-0x292,-0x30b)]=undefined,this[_0x38e592(-0x1e0,-0x265)]=undefined,this['autoClear']&&(this['clearCommand']=new Cesium$6['ClearCommand']({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x38e592(-0x26c,-0x1e2)],'pass':Cesium$6[_0x38e592(-0x28c,-0x279)]['OPAQUE']}));}['createCommand'](_0x3d5d69){function _0x530913(_0x3c3335,_0x632109){return _0x2962c5(_0x3c3335,_0x632109-0x1d8);}function _0x21ad6b(_0x4c9968,_0x57acbe){return _0x2962c5(_0x4c9968,_0x57acbe-0x2c1);}switch(this[_0x530913(0x110,0x14d)]){case _0x21ad6b(0x338,0x305):{const _0x1ae7b3=Cesium$6[_0x530913(0x289,0x242)]['fromGeometry']({'context':_0x3d5d69,'geometry':this['geometry'],'attributeLocations':this[_0x21ad6b(0x312,0x2a7)],'bufferUsage':Cesium$6[_0x21ad6b(0x247,0x251)][_0x530913(0x188,0x189)]}),_0x4e842d={};_0x4e842d[_0x21ad6b(0x2d5,0x295)]=_0x3d5d69,_0x4e842d[_0x530913(0x23a,0x1be)]=this['attributeLocations'],_0x4e842d['vertexShaderSource']=this['vertexShaderSource'],_0x4e842d[_0x21ad6b(0x1f7,0x254)]=this['fragmentShaderSource'];const _0x5dff85=Cesium$6[_0x530913(0x1b7,0x1bf)][_0x21ad6b(0x26d,0x2fb)](_0x4e842d),_0x83adf8=Cesium$6['RenderState']['fromCache'](this['rawRenderState']);return new Cesium$6['DrawCommand']({'owner':this,'vertexArray':_0x1ae7b3,'primitiveType':this['primitiveType'],'uniformMap':this['uniformMap'],'modelMatrix':Cesium$6[_0x530913(0x231,0x19c)]['IDENTITY'],'shaderProgram':_0x5dff85,'framebuffer':this['framebuffer'],'renderState':_0x83adf8,'pass':Cesium$6['Pass']['OPAQUE']});}case _0x21ad6b(0x358,0x2db):{const _0x550a1b={};return _0x550a1b['owner']=this,_0x550a1b['fragmentShaderSource']=this[_0x530913(0x1be,0x16b)],_0x550a1b[_0x530913(0x1f5,0x1dd)]=this['uniformMap'],_0x550a1b[_0x21ad6b(0x21f,0x28d)]=this[_0x21ad6b(0x2ab,0x28d)],_0x550a1b[_0x21ad6b(0x2e5,0x340)]=!![],new Cesium$6['ComputeCommand'](_0x550a1b);}}}[_0x2962c5(-0x66,-0x95)](_0x351637,_0x1eae09){this[_0x5b4c52(-0xa1,-0x2d)]=_0x1eae09;function _0x5b4c52(_0x3d7631,_0x37c98a){return _0x59248e(_0x37c98a- -0x370,_0x3d7631);}function _0x14787e(_0x39e976,_0x410e7b){return _0x59248e(_0x39e976- -0x5e3,_0x410e7b);}const _0x101888=Cesium$6['VertexArray']['fromGeometry']({'context':_0x351637,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']});this[_0x5b4c52(0xaf,0x1a)]['vertexArray']=_0x101888;}['update'](_0x2eda00){function _0x78ccab(_0x4974f4,_0x4edc18){return _0x2962c5(_0x4edc18,_0x4974f4- -0x19b);}if(!this[_0x20802f(0x208,0x18c)])return;if(_0x2eda00['mode']!==Cesium$6['SceneMode'][_0x20802f(0x30b,0x288)])return;!Cesium$6['defined'](this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x2eda00['context']));function _0x20802f(_0x142f5a,_0x874a0){return _0x59248e(_0x142f5a- -0x12e,_0x874a0);}Cesium$6['defined'](this[_0x78ccab(-0x146,-0xd4)])&&this[_0x78ccab(-0x146,-0x1b7)](),Cesium$6['defined'](this['clearCommand'])&&_0x2eda00['commandList'][_0x20802f(0x2f8,0x264)](this[_0x20802f(0x30e,0x2f8)]),_0x2eda00['commandList']['push'](this['commandToExecute']);}['isDestroyed'](){return![];}[_0x59248e(0x430,0x425)](){function _0x4a021e(_0x14838e,_0x43b59d){return _0x59248e(_0x14838e- -0x629,_0x43b59d);}if(this[_0x172b09(-0x52,0x43)]){var _0x132698,_0xf803b9;(_0x132698=this[_0x172b09(-0x52,0x3e)])!==null&&_0x132698!==void 0x0&&_0x132698['vertexArray']&&this[_0x4a021e(-0x1ed,-0x1f0)][_0x172b09(-0x61,-0x4)][_0x4a021e(-0x1f9,-0x19b)](),(_0xf803b9=this['clearCommand'])!==null&&_0xf803b9!==void 0x0&&_0xf803b9['shaderProgram']&&this['clearCommand'][_0x4a021e(-0x1f7,-0x1bb)][_0x4a021e(-0x1f9,-0x195)](),delete this['clearCommand'];}function _0x172b09(_0x284a4d,_0x28ff73){return _0x2962c5(_0x28ff73,_0x284a4d- -0xba);}return this[_0x4a021e(-0x29f,-0x32f)]&&(this['commandToExecute'][_0x4a021e(-0x1fc,-0x1f1)]&&this['commandToExecute'][_0x172b09(-0x61,-0xc3)]['destroy'](),this['commandToExecute']['shaderProgram']&&this['commandToExecute']['shaderProgram']['destroy'](),delete this['commandToExecute']),Cesium$6[_0x4a021e(-0x1e1,-0x1d1)](this);}}const Cesium$5=mars3d__namespace['Cesium'],Util=(function(){const _0x4c0dd5=function(){function _0x1da4dc(_0x411059,_0x270397){return _0x32c3(_0x411059-0x1ff,_0x270397);}function _0x61b028(_0x3ca2b3,_0xae43ee){return _0x32c3(_0x3ca2b3- -0x3a3,_0xae43ee);}const _0x742e25=new Cesium$5['Geometry']({'attributes':new Cesium$5[(_0x61b028(-0x29c,-0x279))]({'position':new Cesium$5[(_0x1da4dc(0x351,0x323))]({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5[(_0x1da4dc(0x351,0x348))]({'componentDatatype':Cesium$5[_0x61b028(-0x286,-0x2a1)][_0x61b028(-0x216,-0x2ab)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x742e25;},_0x543dcc=function(_0x498c52,_0x258394){if(Cesium$5[_0x4599a8(0x3ab,0x31c)](_0x258394)){const _0x1366ca={};_0x1366ca[_0x350461(-0x26,0x2b)]=_0x258394,_0x498c52['source']=_0x1366ca;}function _0x350461(_0x299c1f,_0x4c016c){return _0x32c3(_0x4c016c- -0x126,_0x299c1f);}const _0x146cae=new Cesium$5[(_0x350461(-0x98,-0xc))](_0x498c52);function _0x4599a8(_0x4166f6,_0x3ed79e){return _0x32c3(_0x4166f6-0x271,_0x3ed79e);}return _0x146cae;},_0x41c7db=function(_0x252dad,_0x280f6e,_0x113046){const _0x321f27={};_0x321f27['context']=_0x252dad;function _0xf8f0f2(_0x5f3547,_0x11e1aa){return _0x32c3(_0x11e1aa- -0x226,_0x5f3547);}_0x321f27[_0xf8f0f2(-0xee,-0x15d)]=[_0x280f6e];function _0x55992a(_0x3ee53c,_0x4e53c8){return _0x32c3(_0x4e53c8-0x102,_0x3ee53c);}_0x321f27[_0xf8f0f2(-0x72,-0xf9)]=_0x113046;const _0x2c5c1d=new Cesium$5['Framebuffer'](_0x321f27);return _0x2c5c1d;};function _0x29b800(_0x131de9,_0x2176e8){return _0x59248e(_0x2176e8-0x28,_0x131de9);}const _0x3d4a5b=function(_0x12da8a){const _0x59928f=!![],_0x174a49=![];function _0x48f026(_0x3bb081,_0x2f303e){return _0x32c3(_0x2f303e-0x9f,_0x3bb081);}const _0x1ab335={};_0x1ab335['viewport']=_0x12da8a['viewport'],_0x1ab335[_0x48f026(0xf2,0x17f)]=_0x12da8a['depthTest'];function _0x3242d0(_0xd4a42e,_0x3c7d4a){return _0x32c3(_0xd4a42e- -0x57,_0x3c7d4a);}_0x1ab335['depthMask']=_0x12da8a['depthMask'],_0x1ab335[_0x48f026(0xc0,0x13a)]=_0x12da8a['blending'];const _0x101bf0=_0x1ab335,_0x3a5160=Cesium$5[_0x48f026(0x1ca,0x135)][_0x3242d0(0x65,0x87)](_0x59928f,_0x174a49,_0x101bf0);return _0x3a5160;},_0x58008e=function(_0x33447c){const _0x243daf={},_0x4d39f7=Cesium$5[_0x2de385(0x4e3,0x578)]['mod'](_0x33447c['west'],Cesium$5['Math'][_0x2de385(0x505,0x535)]),_0x1f29a3=Cesium$5['Math'][_0x2de385(0x3fd,0x452)](_0x33447c['east'],Cesium$5['Math']['TWO_PI']),_0x418d69=_0x33447c['width'];let _0x4021f4,_0x279f60;function _0x2572ce(_0x4a562d,_0x2d998f){return _0x32c3(_0x2d998f- -0x77,_0x4a562d);}_0x418d69>Cesium$5[_0x2de385(0x4e3,0x55b)]['THREE_PI_OVER_TWO']?(_0x4021f4=0x0,_0x279f60=Cesium$5['Math'][_0x2572ce(0x1ab,0x126)]):_0x1f29a3-_0x4d39f7<_0x418d69?(_0x4021f4=_0x4d39f7,_0x279f60=_0x4d39f7+_0x418d69):(_0x4021f4=_0x4d39f7,_0x279f60=_0x1f29a3);_0x243daf[_0x2de385(0x4be,0x488)]={'min':Cesium$5[_0x2de385(0x4e3,0x46c)][_0x2572ce(0x12b,0x111)](_0x4021f4),'max':Cesium$5['Math']['toDegrees'](_0x279f60)};const _0x29b536=_0x33447c['south'],_0x6f285d=_0x33447c['north'];function _0x2de385(_0x1051c0,_0x2ba6c0){return _0x32c3(_0x1051c0-0x368,_0x2ba6c0);}const _0x2e672d=_0x33447c['height'],_0x159d77=_0x2e672d>Cesium$5['Math']['PI']/0xc?_0x2e672d/0x2:0x0;let _0x3b83a8=Cesium$5[_0x2572ce(0x86,0x104)]['clampToLatitudeRange'](_0x29b536-_0x159d77),_0x4d9956=Cesium$5[_0x2572ce(0x10f,0x104)]['clampToLatitudeRange'](_0x6f285d+_0x159d77);return _0x3b83a8<-Cesium$5[_0x2572ce(0x14a,0x104)]['PI_OVER_THREE']&&(_0x3b83a8=-Cesium$5['Math']['PI_OVER_TWO']),_0x4d9956>Cesium$5[_0x2572ce(0x11a,0x104)]['PI_OVER_THREE']&&(_0x4d9956=Cesium$5['Math'][_0x2572ce(0x87,0x91)]),_0x243daf['lat']={'min':Cesium$5['Math']['toDegrees'](_0x3b83a8),'max':Cesium$5['Math']['toDegrees'](_0x4d9956)},_0x243daf;},_0x17c5ea={};_0x17c5ea[_0x29b800(0x46f,0x3f0)]=_0x4c0dd5;function _0x9c32ea(_0x33cb7a,_0x1fe14a){return _0x2962c5(_0x33cb7a,_0x1fe14a-0x32c);}return _0x17c5ea['createTexture']=_0x543dcc,_0x17c5ea['createFramebuffer']=_0x41c7db,_0x17c5ea[_0x29b800(0x3fc,0x468)]=_0x3d4a5b,_0x17c5ea[_0x29b800(0x3a9,0x3cb)]=_0x58008e,_0x17c5ea;}());var fullscreenVert='#version\x20300\x20es\x0a\x0ain\x20vec3\x20position;\x0ain\x20vec2\x20st;\x0a\x0aout\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a\x20\x20gl_Position\x20=\x20vec4(position,\x201.0f);\x0a}\x0a';function _0x59248e(_0xdad18b,_0x4ff9f3){return _0x32c3(_0xdad18b-0x2ba,_0x4ff9f3);}var screenDrawFrag='#version\x20300\x20es\x0a\x0auniform\x20sampler2D\x20trailsColorTexture;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec4\x20trailsColor\x20=\x20texture(trailsColorTexture,\x20textureCoordinate);\x0a\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20if(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20trailsColor;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20}\x0a}\x0a',segmentDrawFrag='#version\x20300\x20es\x0a\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20bool\x20colour;\x0a\x0ain\x20float\x20heightNormalization;\x0ain\x20float\x20speedNormalization;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speedNormalization\x20>\x20zero)\x20{\x0a\x20\x20\x20\x20if(colour)\x20{\x0a\x20\x20\x20\x20\x20\x20fragColor\x20=\x20texture(colorTable,\x20vec2(heightNormalization,\x20zero));\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20fragColor\x20=\x20texture(colorTable,\x20vec2(speedNormalization,\x20zero));\x0a\x20\x20\x20\x20}\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',segmentDrawVert=_0x59248e(0x404,0x42b);function _0x2962c5(_0x45e116,_0x2e8e73){return _0x32c3(_0x2e8e73- -0x11a,_0x45e116);}var trailDrawFrag='#version\x20300\x20es\x0a\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20sampler2D\x20segmentsColorTexture;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0auniform\x20sampler2D\x20currentTrailsColor;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0auniform\x20float\x20fadeOpacity;\x0a\x0aout\x20vec4\x20fragColor;\x0avoid\x20main()\x20{\x0a\x20\x20vec4\x20pointsColor\x20=\x20texture(segmentsColorTexture,\x20textureCoordinate);\x0a\x20\x20vec4\x20trailsColor\x20=\x20texture(currentTrailsColor,\x20textureCoordinate);\x0a\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0f\x20*\x20trailsColor)\x20/\x20255.0f;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0a\x0a\x20\x20float\x20pointsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20if(pointsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20fragColor\x20+\x20pointsColor;\x0a\x20\x20}\x0a\x20\x20if(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20fragColor\x20+\x20trailsColor;\x0a\x20\x20}\x0a\x20\x20gl_FragDepth\x20=\x20min(pointsDepth,\x20trailsDepth);\x0a}\x0a';const Cesium$4=mars3d__namespace[_0x59248e(0x454,0x449)];function _0x32c3(_0x3401b3,_0x14849a){const _0x15da5d=_0x15da();return _0x32c3=function(_0x32c399,_0x1ccd8a){_0x32c399=_0x32c399-0x74;let _0x335082=_0x15da5d[_0x32c399];return _0x335082;},_0x32c3(_0x3401b3,_0x14849a);}class ParticlesRendering{constructor(_0xc6d17,_0x23e2bd,_0x25d09e,_0x4be234,_0x4ee47a){this[_0x405836(-0x2cb,-0x23a)]=_0x25d09e['colors']===_0x2a774c(-0x20,-0x94),this[_0x2a774c(-0x85,-0x81)](_0xc6d17,_0x23e2bd,_0x25d09e['colors']);function _0x2a774c(_0x303bc3,_0x44c0ff){return _0x2962c5(_0x44c0ff,_0x303bc3- -0x1e);}this['createRenderingFramebuffers'](_0xc6d17);function _0x405836(_0x329a29,_0x5a850e){return _0x59248e(_0x329a29- -0x691,_0x5a850e);}this['createRenderingPrimitives'](_0xc6d17,_0x23e2bd,_0x25d09e,_0x4be234,_0x4ee47a);}['createRenderingTextures'](_0xcd6802,_0x40a2ad,_0x33eb87){const _0x444e21={};_0x444e21[_0x4ed62e(0xd3,0xb3)]=_0xcd6802,_0x444e21['width']=_0xcd6802['drawingBufferWidth'];function _0x35abc2(_0x21018e,_0x457a01){return _0x2962c5(_0x21018e,_0x457a01-0xaf);}function _0x4ed62e(_0x22218f,_0x49f47e){return _0x59248e(_0x22218f- -0x2d5,_0x49f47e);}_0x444e21['height']=_0xcd6802[_0x35abc2(0x52,0x1f)],_0x444e21['pixelFormat']=Cesium$4[_0x4ed62e(0x145,0x103)][_0x4ed62e(0x8a,-0x4)],_0x444e21[_0x35abc2(0x8c,0x61)]=Cesium$4['PixelDatatype']['UNSIGNED_BYTE'];const _0xd7b90a=_0x444e21,_0x577c6b={};_0x577c6b['context']=_0xcd6802,_0x577c6b[_0x35abc2(0xa5,0xc0)]=_0xcd6802['drawingBufferWidth'],_0x577c6b['height']=_0xcd6802['drawingBufferHeight'],_0x577c6b['pixelFormat']=Cesium$4['PixelFormat']['DEPTH_COMPONENT'],_0x577c6b[_0x35abc2(0x77,0x61)]=Cesium$4['PixelDatatype']['UNSIGNED_INT'];const _0x576bc4=_0x577c6b,_0x37aff=_0x33eb87[_0x4ed62e(0x14e,0x102)],_0x24ff91=new Float32Array(_0x37aff*0x3);for(let _0x191b32=0x0;_0x191b32<_0x37aff;_0x191b32++){const _0x1cbcf7=Cesium$4['Color']['fromCssColorString'](_0x33eb87[_0x191b32]);_0x24ff91[0x3*_0x191b32]=_0x1cbcf7[_0x4ed62e(0xcd,0x149)],_0x24ff91[0x3*_0x191b32+0x1]=_0x1cbcf7[_0x4ed62e(0x17d,0x201)],_0x24ff91[0x3*_0x191b32+0x2]=_0x1cbcf7[_0x35abc2(0x63,0xe2)];}const _0x3e4d66={'context':_0xcd6802,'width':_0x37aff,'height':0x1,'pixelFormat':Cesium$4[_0x35abc2(0xdb,0xf5)][_0x35abc2(0x14f,0xcc)],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4[(_0x4ed62e(0x10f,0x101))]({'minificationFilter':Cesium$4[_0x35abc2(-0x3e,0x26)][_0x35abc2(0x57,0x64)],'magnificationFilter':Cesium$4['TextureMagnificationFilter'][_0x35abc2(0x4f,0x64)]})};this[_0x35abc2(0x7a,0x6a)]={'segmentsColor':Util['createTexture'](_0xd7b90a),'segmentsDepth':Util['createTexture'](_0x576bc4),'currentTrailsColor':Util['createTexture'](_0xd7b90a),'currentTrailsDepth':Util['createTexture'](_0x576bc4),'nextTrailsColor':Util[_0x35abc2(0x54,0x7f)](_0xd7b90a),'nextTrailsDepth':Util[_0x35abc2(0x91,0x7f)](_0x576bc4),'colorTable':Util[_0x4ed62e(0xcf,0xc1)](_0x3e4d66,_0x24ff91)};}['createRenderingFramebuffers'](_0x4804b5){function _0x46cbcd(_0x11d7b4,_0x9841b7){return _0x59248e(_0x11d7b4- -0x194,_0x9841b7);}function _0x1b77c4(_0x10ed61,_0x1c6aee){return _0x59248e(_0x1c6aee- -0x245,_0x10ed61);}this[_0x1b77c4(0x214,0x1a1)]={'segments':Util[_0x1b77c4(0x260,0x1cc)](_0x4804b5,this['textures'][_0x46cbcd(0x238,0x1fc)],this[_0x46cbcd(0x1fb,0x1b6)][_0x46cbcd(0x2b6,0x225)]),'currentTrails':Util[_0x46cbcd(0x27d,0x2a5)](_0x4804b5,this['textures']['currentTrailsColor'],this['textures'][_0x1b77c4(0x23e,0x1dd)]),'nextTrails':Util['createFramebuffer'](_0x4804b5,this[_0x1b77c4(0x196,0x14a)]['nextTrailsColor'],this['textures'][_0x1b77c4(0x297,0x20a)])};}[_0x2962c5(-0x2b,0x17)](_0xee70a8){function _0x3ce7b0(_0x24e96f,_0x148782){return _0x59248e(_0x148782-0xa7,_0x24e96f);}const _0x3aa015=0x4;let _0x226cb4=[];for(let _0x5ee511=0x0;_0x5ee511<_0xee70a8['particlesTextureSize'];_0x5ee511++){for(let _0x548c8a=0x0;_0x548c8a<_0xee70a8['particlesTextureSize'];_0x548c8a++){for(let _0x292bab=0x0;_0x292bab<_0x3aa015;_0x292bab++){_0x226cb4[_0x3ce7b0(0x51a,0x4cd)](_0x5ee511/_0xee70a8['particlesTextureSize']),_0x226cb4[_0x2593db(-0xbe,-0xb5)](_0x548c8a/_0xee70a8['particlesTextureSize']);}}}_0x226cb4=new Float32Array(_0x226cb4);let _0x4ce2a8=[];for(let _0x91c769=0x0;_0x91c769<_0xee70a8['maxParticles'];_0x91c769++){_0x4ce2a8['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x4ce2a8=new Float32Array(_0x4ce2a8);let _0x3ed717=[];function _0x2593db(_0x5641ea,_0x3a5430){return _0x2962c5(_0x3a5430,_0x5641ea- -0x110);}for(let _0x44d1d8=0x0,_0x5d0a8c=0x0;_0x44d1d8<_0xee70a8['maxParticles'];_0x44d1d8++){_0x3ed717[_0x3ce7b0(0x4bf,0x4cd)](_0x5d0a8c+0x0,_0x5d0a8c+0x1,_0x5d0a8c+0x2,_0x5d0a8c+0x2,_0x5d0a8c+0x1,_0x5d0a8c+0x3),_0x5d0a8c+=_0x3aa015;}_0x3ed717=new Uint32Array(_0x3ed717);const _0x50331f=new Cesium$4['Geometry']({'attributes':new Cesium$4[(_0x2593db(-0x123,-0x170))]({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':_0x226cb4}),'normal':new Cesium$4[(_0x3ce7b0(0x532,0x4b3))]({'componentDatatype':Cesium$4['ComponentDatatype'][_0x2593db(-0x9d,-0xa0)],'componentsPerAttribute':0x3,'values':_0x4ce2a8})}),'indices':_0x3ed717});return _0x50331f;}['createRenderingPrimitives'](_0x424cb3,_0x5563de,_0x2d45f1,_0x8015a5,_0x30d845){const _0x49d651=this,_0x3517d3={};_0x3517d3['st']=0x0,_0x3517d3[_0x5c8d9f(0x4a3,0x4fc)]=0x1;const _0x35e51d={};_0x35e51d['sources']=[segmentDrawVert];const _0xc1a7de={};_0xc1a7de['sources']=[segmentDrawFrag];const _0x35adc0={};function _0x54f1e9(_0x1ca2c4,_0x557746){return _0x59248e(_0x1ca2c4- -0x33,_0x557746);}_0x35adc0[_0x54f1e9(0x411,0x3c0)]=!![];const _0x54db63={};_0x54db63[_0x54f1e9(0x379,0x3cc)]=undefined,_0x54db63['depthTest']=_0x35adc0,_0x54db63['depthMask']=!![];const _0x42ea60={};_0x42ea60['position']=0x0,_0x42ea60['st']=0x1;function _0x5c8d9f(_0x1776be,_0x3e53db){return _0x59248e(_0x1776be-0x10c,_0x3e53db);}const _0x116b95={};_0x116b95[_0x5c8d9f(0x53f,0x4fc)]=['DISABLE_GL_POSITION_LOG_DEPTH'],_0x116b95['sources']=[fullscreenVert];const _0x2989b1={};_0x2989b1[_0x5c8d9f(0x53f,0x4d0)]=[_0x5c8d9f(0x471,0x440)],_0x2989b1['sources']=[trailDrawFrag];const _0x4001c6={};_0x4001c6['position']=0x0,_0x4001c6['st']=0x1;const _0x21c9c9={};_0x21c9c9[_0x54f1e9(0x400,0x481)]=['DISABLE_GL_POSITION_LOG_DEPTH'],_0x21c9c9['sources']=[fullscreenVert];const _0x596d42={};_0x596d42['defines']=['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],_0x596d42[_0x54f1e9(0x3a9,0x3f5)]=[screenDrawFrag];const _0x5c4d59={};_0x5c4d59[_0x5c8d9f(0x550,0x5e2)]=![];const _0x5abb4f={};_0x5abb4f[_0x5c8d9f(0x550,0x5bd)]=!![],this['primitives']={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x3517d3,'geometry':this[_0x5c8d9f(0x4f7,0x4b6)](_0x2d45f1),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'previousParticlesPosition':function(){return _0x30d845['particlesTextures']['previousParticlesPosition'];},'currentParticlesPosition':function(){function _0x396695(_0x470a3a,_0x2b6e9c){return _0x54f1e9(_0x2b6e9c-0x42,_0x470a3a);}return _0x30d845[_0x396695(0x2ce,0x342)]['currentParticlesPosition'];},'postProcessingPosition':function(){function _0x5e6744(_0x21a233,_0x1d1ef3){return _0x5c8d9f(_0x1d1ef3- -0x6d0,_0x21a233);}return _0x30d845['particlesTextures'][_0x5e6744(-0x2af,-0x287)];},'particlesSpeed':function(){return _0x30d845['particlesTextures']['particlesSpeed'];},'colorTable':function(){function _0x35db6d(_0x3ce3b0,_0x5c2d16){return _0x5c8d9f(_0x3ce3b0- -0x30a,_0x5c2d16);}function _0x229dce(_0x1422b3,_0x146598){return _0x5c8d9f(_0x146598- -0x402,_0x1422b3);}return _0x49d651[_0x229dce(0x6c,0x99)][_0x229dce(0xb6,0xb4)];},'aspect':function(){function _0x2382bd(_0x4c40c4,_0x11e164){return _0x5c8d9f(_0x11e164- -0x7a7,_0x4c40c4);}return _0x424cb3['drawingBufferWidth']/_0x424cb3[_0x2382bd(-0x33f,-0x357)];},'H':function(){return _0x5563de['H']['array'];},'hRange':function(){function _0x6300b8(_0x46d1bb,_0x13495e){return _0x5c8d9f(_0x46d1bb- -0x4d9,_0x13495e);}function _0x20c1c2(_0x4b7b40,_0x5b7d3a){return _0x54f1e9(_0x4b7b40- -0x62e,_0x5b7d3a);}return new Cesium$4[(_0x6300b8(-0x24,0x4f))](_0x5563de['H']['min'],_0x5563de['H'][_0x6300b8(0x5e,0x55)]);},'uSpeedRange':function(){function _0x22ce48(_0x341eb1,_0x12dc97){return _0x5c8d9f(_0x341eb1- -0x668,_0x12dc97);}return new Cesium$4[(_0x22ce48(-0x1b3,-0x1c2))](_0x5563de['U']['min'],_0x5563de['U']['max']);},'vSpeedRange':function(){return new Cesium$4['Cartesian2'](_0x5563de['V']['min'],_0x5563de['V']['max']);},'wSpeedRange':function(){function _0x28fca6(_0x20265b,_0x23e812){return _0x5c8d9f(_0x20265b- -0x36f,_0x23e812);}return new Cesium$4['Cartesian2'](_0x5563de['W']['min'],_0x5563de['W'][_0x28fca6(0x1c8,0x17e)]);},'pixelSize':function(){function _0x28dbbc(_0x1d5099,_0x4d6b13){return _0x54f1e9(_0x1d5099- -0x441,_0x4d6b13);}return _0x8015a5[_0x28dbbc(-0xf5,-0x164)];},'lineWidth':function(){return _0x2d45f1['lineWidth'];},'particleHeight':function(){return _0x2d45f1['particleHeight'];},'colour':function(){function _0x1169b7(_0x117687,_0x4d6015){return _0x54f1e9(_0x117687- -0x554,_0x4d6015);}return _0x49d651[_0x1169b7(-0x1c1,-0x1a4)];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x35e51d),'fragmentShaderSource':new Cesium$4[(_0x5c8d9f(0x559,0x588))](_0xc1a7de),'rawRenderState':Util['createRawRenderState'](_0x54db63),'framebuffer':this['framebuffers'][_0x5c8d9f(0x483,0x4de)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x42ea60,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType'][_0x5c8d9f(0x531,0x4a7)],'uniformMap':{'segmentsColorTexture':function(){function _0x577ee6(_0x201ef8,_0x4d3088){return _0x54f1e9(_0x201ef8-0xc,_0x4d3088);}return _0x49d651['textures'][_0x577ee6(0x3a5,0x376)];},'segmentsDepthTexture':function(){function _0x52e749(_0x5a6f8a,_0x58b1f5){return _0x54f1e9(_0x58b1f5- -0x47d,_0x5a6f8a);}return _0x49d651['textures'][_0x52e749(-0x4d,-0x66)];},'currentTrailsColor':function(){function _0x508b80(_0x1657ac,_0x5c25a9){return _0x5c8d9f(_0x1657ac- -0x545,_0x5c25a9);}return _0x49d651[_0x508b80(-0x53,0xf)]['currentTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0x19e406(_0x2acca4,_0x17c444){return _0x54f1e9(_0x17c444- -0x3,_0x2acca4);}return _0x49d651['framebuffers'][_0x19e406(0x3c0,0x32a)]['depthTexture'];},'fadeOpacity':function(){return _0x2d45f1['fadeOpacity'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x116b95),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0x2989b1),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction']['ALWAYS']},'depthMask':!![]}),'framebuffer':this[_0x54f1e9(0x3b3,0x3aa)][_0x54f1e9(0x326,0x3b2)],'autoClear':!![],'preExecute':function(){if(_0x2d45f1['dynamic']){const _0x250e09=_0x49d651[_0x1170e7(0x396,0x312)]['currentTrails'];_0x49d651['framebuffers'][_0x42514b(0x30b,0x2af)]=_0x49d651[_0x1170e7(0x396,0x3fa)]['nextTrails'],_0x49d651['framebuffers']['nextTrails']=_0x250e09;}_0x49d651['primitives'][_0x1170e7(0x3ac,0x3ab)][_0x1170e7(0x33a,0x38c)]['framebuffer']=_0x49d651['framebuffers']['nextTrails'];function _0x1170e7(_0x38072b,_0x4bbcdb){return _0x5c8d9f(_0x38072b- -0x15c,_0x4bbcdb);}function _0x42514b(_0x1c2715,_0x4b2103){return _0x54f1e9(_0x1c2715- -0x22,_0x4b2103);}_0x49d651[_0x42514b(0x386,0x307)]['trails'][_0x42514b(0x3e7,0x449)]['framebuffer']=_0x49d651[_0x1170e7(0x396,0x3f0)][_0x1170e7(0x309,0x2fc)];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x4001c6,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'trailsColorTexture':function(){return _0x49d651['framebuffers']['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0xfdc065(_0x1ff63b,_0x5ba7b7){return _0x5c8d9f(_0x5ba7b7- -0x4fd,_0x1ff63b);}function _0x396819(_0x2dd269,_0x378e7a){return _0x5c8d9f(_0x2dd269- -0x48,_0x378e7a);}return _0x49d651[_0xfdc065(-0x2c,-0xb)][_0xfdc065(-0xe4,-0x98)]['depthTexture'];}},'vertexShaderSource':new Cesium$4[(_0x5c8d9f(0x559,0x5cf))](_0x21c9c9),'fragmentShaderSource':new Cesium$4[(_0x5c8d9f(0x559,0x56f))](_0x596d42),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':_0x5c4d59,'depthMask':!![],'blending':_0x5abb4f}),'framebuffer':undefined})};}}var CalculateSpeedShader=_0x2962c5(0x32,-0x17),PostProcessingPositionShader=_0x2962c5(-0x29,-0x7),UpdatePositionShader=_0x59248e(0x338,0x350);const Cesium$3=mars3d__namespace[_0x59248e(0x454,0x4d7)];class ParticlesComputing{constructor(_0x5871ab,_0x344d1a,_0x6581b1,_0x4766b0){this[_0xae8bd4(0x40c,0x478)]=_0x344d1a,this['createWindTextures'](_0x5871ab,_0x344d1a),this['createParticlesTextures'](_0x5871ab,_0x6581b1,_0x4766b0);function _0xae8bd4(_0x55888e,_0x84c85b){return _0x59248e(_0x84c85b-0x122,_0x55888e);}this['createComputingPrimitives'](_0x344d1a,_0x6581b1,_0x4766b0);}['createWindTextures'](_0x133cc9,_0x4e12f5){function _0x3b52d3(_0x2d0e17,_0x334485){return _0x2962c5(_0x334485,_0x2d0e17- -0x1b6);}var _0x125909;const _0x3870f9={'context':_0x133cc9,'width':_0x4e12f5[_0x3b52d3(-0x1f8,-0x25e)]['lon'],'height':_0x4e12f5['dimensions']['lat']*(_0x4e12f5['dimensions']['lev']||0x1),'pixelFormat':Cesium$3['PixelFormat'][_0xbdbce9(0x5,-0x2f)],'pixelDatatype':Cesium$3[_0xbdbce9(-0x90,-0x34)]['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3[_0x3b52d3(-0x23f,-0x214)]['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};function _0xbdbce9(_0x21cefe,_0x3554bb){return _0x2962c5(_0x21cefe,_0x3554bb-0x64);}this[_0x3b52d3(-0x1df,-0x21a)]={'U':Util[_0xbdbce9(0x74,0x34)](_0x3870f9,_0x4e12f5['U'][_0xbdbce9(0x136,0xb1)]),'V':Util['createTexture'](_0x3870f9,_0x4e12f5['V']['array']),'W':Util['createTexture'](_0x3870f9,((_0x125909=_0x4e12f5['W'])===null||_0x125909===void 0x0?void 0x0:_0x125909['array'])??_0x4e12f5['U']['array']),'H':Util['createTexture'](_0x3870f9,_0x4e12f5['H'][_0x3b52d3(-0x169,-0x184)])};}[_0x59248e(0x449,0x44a)](_0x1c1c37,_0x4dc917,_0x1eda30){const _0x266781={'context':_0x1c1c37,'width':_0x4dc917[_0x2433ef(0x278,0x1ef)],'height':_0x4dc917['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3['PixelDatatype'][_0x2433ef(0x320,0x34a)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3[_0x2433ef(0x224,0x2b0)]['NEAREST'],'magnificationFilter':Cesium$3[_0x45fe8a(0x5,-0x55)]['NEAREST']})},_0x438506=this[_0x2433ef(0x261,0x1ee)](_0x4dc917['maxParticles'],_0x1eda30),_0x50031b=new Float32Array(0x4*_0x4dc917['maxParticles'])['fill'](0x0);function _0x2433ef(_0x297479,_0xb8a768){return _0x2962c5(_0xb8a768,_0x297479-0x2ad);}function _0x45fe8a(_0x1fb84d,_0x17e88d){return _0x2962c5(_0x17e88d,_0x1fb84d-0x48);}this['particlesTextures']={'previousParticlesPosition':Util[_0x45fe8a(0x18,-0x2e)](_0x266781,_0x438506),'currentParticlesPosition':Util['createTexture'](_0x266781,_0x438506),'nextParticlesPosition':Util[_0x45fe8a(0x18,-0x6b)](_0x266781,_0x438506),'postProcessingPosition':Util[_0x45fe8a(0x18,-0x1e)](_0x266781,_0x438506),'particlesSpeed':Util['createTexture'](_0x266781,_0x50031b)};}['randomizeParticles'](_0x1b8497,_0x1ae311){const _0x33f202=new Float32Array(0x4*_0x1b8497);function _0x3acb1d(_0x3051f0,_0x329044){return _0x59248e(_0x329044- -0x9d,_0x3051f0);}function _0x30368d(_0x2a9f92,_0x27f6c9){return _0x2962c5(_0x27f6c9,_0x2a9f92-0x4f7);}for(let _0xab52fc=0x0;_0xab52fc<_0x1b8497;_0xab52fc++){_0x33f202[0x4*_0xab52fc]=Cesium$3['Math'][_0x3acb1d(0x2f9,0x32a)](_0x1ae311['lonRange']['x'],_0x1ae311[_0x3acb1d(0x319,0x331)]['y']),_0x33f202[0x4*_0xab52fc+0x1]=Cesium$3['Math'][_0x3acb1d(0x2fc,0x32a)](_0x1ae311[_0x30368d(0x521,0x4fb)]['x'],_0x1ae311['latRange']['y']),_0x33f202[0x4*_0xab52fc+0x2]=Cesium$3['Math']['randomBetween'](this['data']['lev'][_0x30368d(0x481,0x410)],this[_0x3acb1d(0x2ad,0x2b9)]['lev'][_0x3acb1d(0x388,0x38e)]),_0x33f202[0x4*_0xab52fc+0x3]=0x0;}return _0x33f202;}['getValidRange'](_0x4a8bb7){const _0x58992f=[_0x4a8bb7['dimensions']['lon'],_0x4a8bb7[_0x1521e1(0x375,0x3e5)]['lat'],_0x4a8bb7['dimensions'][_0x34bb27(0x152,0x15a)]],_0x447d26=[_0x4a8bb7[_0x34bb27(0x20e,0x2a4)]['min'],_0x4a8bb7[_0x1521e1(0x40b,0x45d)]['min'],_0x4a8bb7[_0x34bb27(0x152,0x119)][_0x1521e1(0x33b,0x3b1)]],_0x5334e9=[_0x4a8bb7['lon'][_0x1521e1(0x4e4,0x47e)],_0x4a8bb7['lat']['max'],_0x4a8bb7['lev']['max']],_0x488ea8=[(_0x5334e9[0x0]-_0x447d26[0x0])/(_0x58992f[0x0]-0x1),(_0x5334e9[0x1]-_0x447d26[0x1])/(_0x58992f[0x1]-0x1),_0x58992f[0x2]>0x1?(_0x5334e9[0x2]-_0x447d26[0x2])/(_0x58992f[0x2]-0x1):0x1];function _0x34bb27(_0x41ac6c,_0x4b471e){return _0x2962c5(_0x4b471e,_0x41ac6c-0x1d2);}const _0x4cdb75=Math['floor'](Math[_0x1521e1(0x363,0x3a4)]()*_0x4a8bb7['U']['array']['length']),_0x3b899c=_0x4cdb75%(_0x58992f[0x0]*_0x58992f[0x1]),_0x4ab6dd=Math['floor'](_0x3b899c/_0x58992f[0x0]),_0x539fb9=_0x3b899c%_0x58992f[0x0],_0x294e17=Cesium$3[_0x1521e1(0x458,0x488)]['randomBetween'](_0x447d26[0x0]+_0x539fb9*_0x488ea8[0x0],_0x447d26[0x0]+(_0x539fb9+0x1)*_0x488ea8[0x0]),_0xfc63a4=Cesium$3[_0x1521e1(0x4d9,0x488)]['randomBetween'](_0x447d26[0x1]+(_0x4ab6dd-0x1)*_0x488ea8[0x1],_0x447d26[0x1]+_0x4ab6dd*_0x488ea8[0x1]),_0x5b6e5a=_0x4a8bb7['H']['array'][_0x4cdb75]||0x0;function _0x1521e1(_0x2d9708,_0x4265bb){return _0x59248e(_0x4265bb-0x53,_0x2d9708);}return[_0x294e17,_0xfc63a4,_0x5b6e5a];}[_0x59248e(0x3da,0x386)](){function _0x1d9984(_0x32b9f7,_0x54d35f){return _0x59248e(_0x32b9f7- -0x2c6,_0x54d35f);}function _0x413e41(_0x38af4d,_0x2efecf){return _0x59248e(_0x2efecf- -0x354,_0x38af4d);}Object[_0x413e41(0x70,0x71)](this[_0x413e41(-0x15,-0x21)])['forEach'](_0x573d32=>{function _0x4b2491(_0x5bf0ce,_0x4ed405){return _0x1d9984(_0x4ed405-0x356,_0x5bf0ce);}function _0xbc1d2c(_0x3b0b48,_0x2d690a){return _0x1d9984(_0x3b0b48-0x38d,_0x2d690a);}this[_0x4b2491(0x3b7,0x3c3)][_0x573d32][_0x4b2491(0x54a,0x4c0)]();});}['createComputingPrimitives'](_0x4f531c,_0x51d3dd,_0x16ae54){const _0x2b9222=new Cesium$3['Cartesian3'](_0x4f531c[_0x4ea85b(0x1fb,0x272)][_0x495f24(-0x33,0x4a)],_0x4f531c['dimensions']['lat'],_0x4f531c['dimensions']['lev']),_0xa219ad=new Cesium$3[(_0x4ea85b(0x34a,0x2f7))](_0x4f531c['lon']['min'],_0x4f531c['lat'][_0x4ea85b(0x223,0x23e)],_0x4f531c[_0x4ea85b(0x244,0x234)]['min']),_0x57858f=new Cesium$3['Cartesian3'](_0x4f531c['lon']['max'],_0x4f531c[_0x4ea85b(0x35f,0x2ea)][_0x495f24(0x9d,0x65)],_0x4f531c['lev']['max']),_0x3889d0=new Cesium$3['Cartesian3']((_0x57858f['x']-_0xa219ad['x'])/(_0x2b9222['x']-0x1),(_0x57858f['y']-_0xa219ad['y'])/(_0x2b9222['y']-0x1),_0x2b9222['z']>0x1?(_0x57858f['z']-_0xa219ad['z'])/(_0x2b9222['z']-0x1):0x1),_0x2a00dd=new Cesium$3[(_0x495f24(-0xa1,-0x1d))](_0x4f531c[_0x495f24(0x93,0x4a)]['min'],_0x4f531c[_0x4ea85b(0x2a0,0x2f0)]['max']),_0x4c5e42=new Cesium$3[(_0x4ea85b(0x216,0x289))](_0x4f531c['lat']['min'],_0x4f531c['lat'][_0x4ea85b(0x397,0x30b)]),_0x10c939=new Cesium$3[(_0x4ea85b(0x2c6,0x289))](_0x4f531c['U'][_0x4ea85b(0x255,0x23e)],_0x4f531c['U']['max']),_0xf4998=new Cesium$3['Cartesian2'](_0x4f531c['V']['min'],_0x4f531c['V']['max']),_0x1763d5=new Cesium$3['Cartesian2'](_0x4f531c['W']['min'],_0x4f531c['W']['max']),_0x3eee87=this,_0xfbff00={};_0xfbff00['U']=function(){function _0x576b74(_0x2d802c,_0x1ac3e2){return _0x4ea85b(_0x1ac3e2,_0x2d802c- -0x25b);}return _0x3eee87[_0x576b74(0x30,0xbb)]['U'];},_0xfbff00['V']=function(){return _0x3eee87['windTextures']['V'];},_0xfbff00['W']=function(){return _0x3eee87['windTextures']['W'];},_0xfbff00[_0x4ea85b(0x287,0x21e)]=function(){return _0x3eee87['particlesTextures']['currentParticlesPosition'];},_0xfbff00['dimension']=function(){return _0x2b9222;},_0xfbff00[_0x495f24(0x36,-0x8)]=function(){return _0xa219ad;},_0xfbff00['maximum']=function(){return _0x57858f;},_0xfbff00['interval']=function(){return _0x3889d0;},_0xfbff00[_0x495f24(0x7b,0x24)]=function(){return _0x10c939;},_0xfbff00['vSpeedRange']=function(){return _0xf4998;};function _0x495f24(_0x3f48ec,_0x3b56b8){return _0x59248e(_0x3b56b8- -0x3c6,_0x3f48ec);}_0xfbff00['wSpeedRange']=function(){return _0x1763d5;},_0xfbff00[_0x4ea85b(0x29f,0x260)]=function(){return _0x16ae54['pixelSize']*_0x51d3dd['speedFactor'];};const _0xb150a1={};_0xb150a1[_0x495f24(0x7a,0x16)]=[CalculateSpeedShader];const _0x5a4731={};_0x5a4731['sources']=[UpdatePositionShader];const _0x236ff6={};function _0x4ea85b(_0x231d2a,_0x1806db){return _0x2962c5(_0x231d2a,_0x1806db-0x2b4);}_0x236ff6['sources']=[PostProcessingPositionShader],this[_0x4ea85b(0x2b3,0x2bb)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':_0xfbff00,'fragmentShaderSource':new Cesium$3['ShaderSource'](_0xb150a1),'outputTexture':this['particlesTextures'][_0x495f24(-0x11,-0x30)],'preExecute':function(){function _0x29e02d(_0x5e47e1,_0x3d615c){return _0x4ea85b(_0x3d615c,_0x5e47e1-0x16e);}if(_0x51d3dd!==undefined&&_0x51d3dd['dynamic']){const _0x4aae0d=_0x3eee87['particlesTextures'][_0x29e02d(0x46c,0x3f5)];_0x3eee87['particlesTextures'][_0x21cc81(0xd8,0x99)]=_0x3eee87['particlesTextures']['currentParticlesPosition'],_0x3eee87['particlesTextures']['currentParticlesPosition']=_0x3eee87[_0x29e02d(0x381,0x31f)][_0x21cc81(-0x73,-0x48)],_0x3eee87[_0x21cc81(-0x35,-0x52)]['postProcessingPosition']=_0x4aae0d;}function _0x21cc81(_0x1db869,_0x395f98){return _0x4ea85b(_0x1db869,_0x395f98- -0x265);}_0x3eee87['primitives']['calculateSpeed']['commandToExecute']['outputTexture']=_0x3eee87[_0x29e02d(0x381,0x398)]['particlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':_0x495f24(0x98,0x28),'uniformMap':{'currentParticlesPosition':function(){function _0x26e6c7(_0x378b15,_0x4e3665){return _0x4ea85b(_0x378b15,_0x4e3665-0x5d);}return _0x3eee87[_0x26e6c7(0x1f2,0x270)]['currentParticlesPosition'];},'particlesSpeed':function(){function _0x40c7f2(_0xd03a58,_0x18c7ba){return _0x4ea85b(_0x18c7ba,_0xd03a58- -0x223);}return _0x3eee87['particlesTextures'][_0x40c7f2(0x53,0xe6)];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x5a4731),'outputTexture':this[_0x4ea85b(0x25b,0x213)]['nextParticlesPosition'],'preExecute':function(){function _0x171e2b(_0x1a970d,_0x207ed3){return _0x495f24(_0x1a970d,_0x207ed3- -0x78);}function _0x5152f1(_0x318b2d,_0x4c951e){return _0x4ea85b(_0x318b2d,_0x4c951e- -0x349);}_0x3eee87['primitives']['updatePosition'][_0x171e2b(-0xbb,-0xb4)]['outputTexture']=_0x3eee87[_0x5152f1(-0x176,-0x136)][_0x5152f1(-0x8b,-0x112)];}}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x4ea85b(0x319,0x2ce),'uniformMap':{'nextParticlesPosition':function(){function _0x38c264(_0x18260e,_0x46cfaf){return _0x495f24(_0x46cfaf,_0x18260e-0x2a7);}return _0x3eee87[_0x38c264(0x214,0x1b8)]['nextParticlesPosition'];},'particlesSpeed':function(){return _0x3eee87['particlesTextures']['particlesSpeed'];},'viewerLonRange':function(){function _0x5bca13(_0x28d084,_0x415f60){return _0x4ea85b(_0x28d084,_0x415f60- -0x522);}return _0x16ae54[_0x5bca13(-0x221,-0x274)];},'viewerLatRange':function(){return _0x16ae54['latRange'];},'lonRange':function(){return _0x2a00dd;},'latRange':function(){return _0x4c5e42;},'dimension':function(){return _0x2b9222;},'minimum':function(){return _0xa219ad;},'maximum':function(){return _0x57858f;},'interval':function(){return _0x3889d0;},'H':function(){return _0x3eee87['windTextures']['H'];},'randomCoefficient':function(){const _0x3c7718=Math['random']();return _0x3c7718;},'dropRate':function(){return _0x51d3dd['dropRate'];},'dropRateBump':function(){return _0x51d3dd['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x236ff6),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':function(){function _0xd54d22(_0x1840cd,_0x5ae3cd){return _0x495f24(_0x1840cd,_0x5ae3cd-0x3a6);}function _0x530018(_0x39d5fc,_0x214f26){return _0x495f24(_0x214f26,_0x39d5fc-0x3f2);}_0x3eee87[_0xd54d22(0x371,0x3bb)]['postProcessingPosition'][_0xd54d22(0x3e3,0x36a)][_0xd54d22(0x38d,0x380)]=_0x3eee87[_0xd54d22(0x353,0x313)][_0xd54d22(0x28c,0x31d)];}})};}}function _0x15da(){const _0x3d1fbe=['SceneMode','_animateFrame','lng','particlesTextures','fromDegrees','canvas','show','CanvasWindLayer','#version\x20300\x20es\x0a\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20norm)\x20Unit\x20converted\x20to\x20degrees\x20of\x20longitude\x20and\x20latitude\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20speed;\x0a\x20\x20if(length(speed.rgb)\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20}\x0a}\x0a','camera','PrimitiveCollection','114362FwoITh','PixelDatatype','postProcessingPosition','currentParticlesPosition','setGeometry','maxAge','RED','updateViewerParameters','geometry','drawingBufferHeight','mouseHidden','setData','globalCompositeOperation','92324xmSCPI','commandType','atan2','TextureMinificationFilter','rectangle','preRender','rgb(206,255,255)','mod','Appearance','random','_onMap_preRenderEvent','OPAQUE','lev','blending','data','nextParticlesPosition','2565iLdahb','nextTrails','container','mode','pointer-events','_canrefresh','min','RGBA','currentTrails','remove','moveTo','execute','BufferUsage','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','zIndex','fragmentShaderSource','left','Ellipsoid','Rectangle','_onMouseDownEvent','stroke','createRenderingTextures','removeAll','dropRateBump','_drawLines','WGS84','dynamic','maxParticles','clientWidth','_updateIng2','getDefaultRenderState','segments','wind','_calcUV','umin','onmessage','update','255010UYvZFV','LayerUtil','pixelSize','speedScaleFactor','resize','fillRect','colorTextures','mouse_down','STATIC_DRAW','pixelDatatype','auto','randomizeParticles','LINEAR','commandToExecute','_onMapWhellEvent','vertexShaderSource','type','__esModule','textures','Pass','TextureMagnificationFilter','dimensions','all','6FbrTRW','color','particlesSpeed','normal','Matrix4','_calc_speedRate','depthTest','sqrt','default','off','particlesComputing','particlesTextureSize','outputTexture','floor','red','viewRectangleToLonLatRange','createTexture','alt','frameTime','particles','context','Cartesian2','colorTable','windTextures','viewport','ymax','mouse_move','sin','framebuffer','computeViewRectangle','WindLayer','fixedHeight','setOptions','add','_onMouseUpEvent','toRadians','EventType','PointTrans','attributeLocations','ShaderProgram','colors','#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20W;\x20//\x20upward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20vec2\x20wSpeedRange;\x0auniform\x20float\x20speedScaleFactor;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLatLev.x\x20=\x20clamp(lonLatLev.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20minimum.y,\x20maximum.y);\x0a\x20\x20lonLatLev.z\x20=\x20clamp(lonLatLev.z,\x20minimum.z,\x20maximum.z);\x0a\x0a\x20\x20vec3\x20index3D\x20=\x20vec3(0.0f);\x0a\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20//\x20map\x20the\x20z-axis\x20value\x20to\x20the\x20nearest\x20bit\x20plane\x20to\x20ensure\x20that\x20the\x20result\x20is\x20an\x20integer\x0a\x20\x20index3D.z\x20=\x20ceil((lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z);\x0a\x0a\x20\x20\x20\x20//\x20the\x20st\x20texture\x20coordinate\x20corresponding\x20to\x20(col,\x20row)\x20index\x0a\x20\x20\x20\x20//\x20example\x0a\x20\x20\x20\x20//\x20data\x20array\x20is\x20[0,\x201,\x202,\x203,\x204,\x205,\x207,\x208,\x209],\x20width\x20=\x202,\x20height\x20=\x202,\x20level\x20=\x202\x0a\x20\x20\x20\x20//\x20the\x20content\x20of\x20texture\x20will\x20be\x0a\x20\x20\x20\x20//\x20t\x201.0\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x206\x207\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x202\x203\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0afloat\x20interpolateTexture(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x201.0f\x20*\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x201.0f\x20*\x20interval.y;\x0a\x0a\x20\x20float\x20lon0_lat0\x20=\x20getWindComponent(componentTexture,\x20vec3(lon0,\x20lat0,\x20lev));\x0a\x20\x20float\x20lon1_lat0\x20=\x20getWindComponent(componentTexture,\x20vec3(lon1,\x20lat0,\x20lev));\x0a\x20\x20float\x20lon0_lat1\x20=\x20getWindComponent(componentTexture,\x20vec3(lon0,\x20lat1,\x20lev));\x0a\x20\x20float\x20lon1_lat1\x20=\x20getWindComponent(componentTexture,\x20vec3(lon1,\x20lat1,\x20lev));\x0a\x0a\x20\x20float\x20lon_lat0\x20=\x20mix(lon0_lat0,\x20lon1_lat0,\x20lon\x20-\x20lon0);\x0a\x20\x20float\x20lon_lat1\x20=\x20mix(lon0_lat1,\x20lon1_lat1,\x20lon\x20-\x20lon0);\x0a\x20\x20float\x20lon_lat\x20=\x20mix(lon_lat0,\x20lon_lat1,\x20lat\x20-\x20lat0);\x0a\x20\x20return\x20lon_lat;\x0a}\x0a\x0avec3\x20linearInterpolation(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bilinear_interpolation\x0a\x20\x20float\x20u\x20=\x20interpolateTexture(U,\x20lonLatLev);\x0a\x20\x20float\x20v\x20=\x20interpolateTexture(V,\x20lonLatLev);\x0a\x20\x20float\x20w\x20=\x20interpolateTexture(W,\x20lonLatLev);\x0a\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec3\x20lonLatLev)\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(lonLatLev.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\x0avec3\x20convertSpeedUnitToLonLat(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20float\x20w\x20=\x20speed.z;\x0a\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20return\x20windVectorInLonLatLev;\x0a}\x0a\x0avec3\x20calculateSpeedByRungeKutta2(vec3\x20lonLatLev)\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\x20vec3\x20y_n\x20=\x20lonLatLev;\x0a\x20\x20vec3\x20f_n\x20=\x20linearInterpolation(lonLatLev);\x0a\x20\x20vec3\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec3\x20speed\x20=\x20h\x20*\x20linearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20getRange(vec2\x20range)\x20{\x0a\x20\x20float\x20x1\x20=\x200.0f\x20-\x20range.x;\x0a\x20\x20float\x20x2\x20=\x20range.y\x20-\x200.0f;\x0a\x20\x20if(x1\x20<\x200.0f\x20||\x20x2\x20<\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(abs(x1),\x20abs(x2));\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x20abs(max(x1,\x20x2)));\x0a\x20\x20}\x0a}\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20vec3\x20percent\x20=\x20vec3(0.0f);\x0a\x20\x20vec2\x20uRange\x20=\x20getRange(uSpeedRange);\x0a\x20\x20vec2\x20vRange\x20=\x20getRange(vSpeedRange);\x0a\x20\x20vec2\x20wRange\x20=\x20getRange(wSpeedRange);\x0a\x20\x20if(length(speed.xyz)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x200.0f;\x0a\x20\x20}\x0a\x0a\x20\x20percent.x\x20=\x20(abs(speed.x)\x20-\x20uRange.x)\x20/\x20(uRange.y\x20-\x20uRange.x);\x0a\x20\x20percent.y\x20=\x20(abs(speed.y)\x20-\x20vRange.x)\x20/\x20(vRange.y\x20-\x20vRange.x);\x0a\x20\x20if(wSpeedRange.y\x20==\x20wSpeedRange.x)\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x200.0f;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x20(abs(speed.z)\x20-\x20wRange.x)\x20/\x20(wRange.y\x20-\x20wRange.x);\x0a\x20\x20}\x0a\x20\x20float\x20norm\x20=\x20length(percent);\x0a\x0a\x20\x20return\x20norm;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20speedOrigin\x20=\x20linearInterpolation(lonLatLev);\x0a\x20\x20vec3\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLatLev);\x0a\x20\x20vec3\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLatLev,\x20speed);\x0a\x0a\x20\x20vec4\x20particleSpeed\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speed\x20/\x20speedScaleFactor));\x0a\x20\x20\x20\x20//\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a','minimum','particleSystem','udata','GeometryAttributes','PI_OVER_TWO','0px','_onMouseMoveEvent','keys','colour','randomBetween','getFullscreenQuad','vdata','bindEvent','_removedHook','segmentsColor','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20norm)\x0a\x0auniform\x20sampler2D\x20H;\x20//\x20particles\x20height\x20textures\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0auniform\x20vec2\x20viewerLonRange;\x0auniform\x20vec2\x20viewerLatRange;\x0a\x0aconst\x20float\x20randomCoefficient\x20=\x200.1f;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0aconst\x20float\x20dropRate\x20=\x200.1f;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0aconst\x20float\x20dropRateBump\x20=\x200.1f;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLatLev.x\x20=\x20clamp(lonLatLev.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20minimum.y,\x20maximum.y);\x0a\x20\x20lonLatLev.z\x20=\x20clamp(lonLatLev.z,\x20minimum.z,\x20maximum.z);\x0a\x0a\x20\x20vec3\x20index3D\x20=\x20vec3(0.0f);\x0a\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20index3D.z\x20=\x20ceil((lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0avec4\x20getTextureValue(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20vec4\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D);\x0a\x20\x20return\x20result;\x0a}\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\x0abool\x20particleNoSpeed(vec3\x20particle)\x20{\x0a\x20\x20vec4\x20speed\x20=\x20getTextureValue(particlesSpeed,\x20particle);\x0a\x20\x20return\x20speed.r\x20==\x200.0f\x20&&\x20speed.g\x20==\x200.0f;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0f);\x0a\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20float\x20height\x20=\x20getTextureValue(H,\x20vec3(randomLon,\x20randomLat,\x20lev)).r;\x0a\x0a\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20height);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20viewerLatRange.x\x20||\x20particle.y\x20>\x20viewerLatRange.y\x20||\x20particle.x\x20<\x20viewerLonRange.x\x20||\x20particle.x\x20>\x20viewerLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec3\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rgb;\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.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\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,\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);\x0a\x20\x20}\x0a}\x0a','lonRange','age','viewerParameters','particlesRendering','height','980040prHpxa','Texture','1627524ouXRgY','isDestroy','ComponentDatatype','unbindEvent','uniformMap','destroyParticlesTextures','primitives','sources','_map','_colorRamp','clientHeight','_maxAge','once','addPrimitives','windData','Sampler','width','framebuffers','depthTexture','scene','8300jUnDlo','uSpeedRange','createSegmentsGeometry','options','speed','Compute','windField','autoClear','RGB','refreshTimer','levmax','defined','speedRate','calculateSpeed','xmax','ymin','410056axWQWu','visibility','worker','trails','canvasWidth','latRange','clearFramebuffers','globe','tlng','BoundingSphere','_setOptionsHook','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20lines\x20drawing\x0ain\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0auniform\x20vec2\x20hRange;\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20vec2\x20wSpeedRange;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0aout\x20float\x20heightNormalization;\x0aout\x20float\x20speedNormalization;\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\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(lonLatLev.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.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+\x20lonLatLev.z;\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(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0f,\x20360.0f)\x20-\x20180.0f;\x0a\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign)\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\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0f;\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\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\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20vec3\x20percent\x20=\x20vec3(0.0f);\x0a\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20if(wSpeedRange.y\x20==\x20wSpeedRange.x)\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x200.0f;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x20(speed.z\x20-\x20wSpeedRange.x)\x20/\x20(wSpeedRange.y\x20-\x20wSpeedRange.x);\x0a\x20\x20}\x0a\x20\x20float\x20norm\x20=\x20length(percent);\x0a\x0a\x20\x20return\x20norm;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20vec3\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20vec3\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20vec3\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rgb;\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\x20\x20\x20\x20//\x20render\x20lines\x20with\x20triangles\x20and\x20miter\x20joint\x0a\x20\x20\x20\x20//\x20read\x20https://blog.scottlogic.com/2019/11/18/drawing-lines-with-webgl.html\x20for\x20detail\x0a\x20\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20projectedCoordinates.next,\x20offsetSign);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.next\x20+\x20offset;\x0a\x20\x20}\x0a\x0a\x20\x20heightNormalization\x20=\x20(currentPosition.z\x20-\x20hRange.x)\x20/\x20(hRange.y\x20-\x20hRange.x);\x0a\x0a\x20\x20speedNormalization\x20=\x20texture(particlesSpeed,\x20particleIndex).a;\x0a}\x0a','grid','wheel','blue','tlat','canvasContext','lat','arrayBufferView','GeometryAttribute','getContext','fromCache','vmax','lon','createFramebuffer','hidden','EllipsoidalOccluder','positionWC','getParticles','mouseMove','Cartesian3','Draw','pow','PixelFormat','rows','__proto__','_randomParticle','previousParticlesPosition','setDate','layer','array','currentTrailsDepth','length','refreshParticles','TRIANGLES','push','_pointerEvents','_speedRate','preExecute','removeEventListener','max','_tomap','vertexArray','ellipsoid','xmin','destroy','clear','shaderProgram','defines','pointerEvents','Math','canvasHeight','visible','cancelAnimationFrame','SCENE3D','drawingBufferWidth','getU','clearCommand','destination-in','VertexArray','mouseDown','createRawRenderState','_bilinearInterpolation','toDegrees','_data','enabled','21kpmXeW','_addedHook','FLOAT','destroyObject','createParticlesTextures','segmentsDepth','getUVByXY','abs','ShaderSource','create','nextTrailsDepth','particlesNumber','mouseUp','green','persists','Cesium','beginPath','lineWidth','TWO_PI','BaseLayer','redraw','style','_updateIng'];_0x15da=function(){return _0x3d1fbe;};return _0x15da();}const Cesium$2=mars3d__namespace[_0x2962c5(0x1a,0x80)];class ParticleSystem{constructor(_0x24e638,_0xb167cb,_0x5070af,_0xb9464){function _0x12affe(_0x5a6ecf,_0x2679a1){return _0x2962c5(_0x5a6ecf,_0x2679a1- -0x96);}this['context']=_0x24e638,_0xb167cb={..._0xb167cb};_0xb167cb['udata']&&_0xb167cb[_0x38827a(0x402,0x3dc)]&&(_0xb167cb[_0x12affe(-0xe3,-0xd8)]={},_0xb167cb[_0x38827a(0x329,0x3a5)]['lon']=_0xb167cb['cols'],_0xb167cb['dimensions'][_0x12affe(-0x2f,-0x60)]=_0xb167cb['rows'],_0xb167cb['dimensions'][_0x38827a(0x34e,0x367)]=_0xb167cb['lev']||0x1,_0xb167cb[_0x12affe(-0xed,-0x5a)]={},_0xb167cb['lon']['min']=_0xb167cb[_0x38827a(0x40a,0x442)],_0xb167cb['lon']['max']=_0xb167cb['xmax'],_0xb167cb[_0x12affe(-0xbd,-0x60)]={},_0xb167cb[_0x38827a(0x3dc,0x41d)][_0x12affe(-0xa7,-0x10c)]=_0xb167cb[_0x12affe(-0x99,-0x72)],_0xb167cb['lat'][_0x12affe(-0x2f,-0x3f)]=_0xb167cb[_0x38827a(0x392,0x3c0)],_0xb167cb['lev']={},_0xb167cb['lev']['min']=_0xb167cb['levmin']??0x1,_0xb167cb['lev'][_0x12affe(-0x1b,-0x3f)]=_0xb167cb[_0x38827a(0x3d1,0x406)]??0x1,_0xb167cb['U']={},_0xb167cb['U']['array']=new Float32Array(_0xb167cb['udata']),_0xb167cb['U'][_0x12affe(-0xda,-0x10c)]=_0xb167cb[_0x38827a(0x3e7,0x38d)]??Math['min'](..._0xb167cb[_0x38827a(0x434,0x3d3)]),_0xb167cb['U']['max']=_0xb167cb['umax']??Math[_0x12affe(-0x1b,-0x3f)](..._0xb167cb['udata']),_0xb167cb['V']={},_0xb167cb['V']['array']=new Float32Array(_0xb167cb['vdata']),_0xb167cb['V'][_0x12affe(-0x10f,-0x10c)]=_0xb167cb['vmin']??Math['min'](..._0xb167cb[_0x12affe(-0xf,-0xa1)]),_0xb167cb['V']['max']=_0xb167cb[_0x12affe(-0xb8,-0x5b)]??Math[_0x12affe(-0x9d,-0x3f)](..._0xb167cb[_0x12affe(-0xf1,-0xa1)]));!_0xb167cb['W']&&(_0xb167cb['W']={'array':new Float32Array(_0xb167cb['U']['array']['length']),'min':0x0,'max':0x0});if(!_0xb167cb['H']){var _0x36ac4c;_0xb167cb['H']={'array':new Float32Array(_0xb167cb['U'][_0x38827a(0x419,0x434)][_0x38827a(0x4c9,0x436)]),'min':0x0,'max':0x0};if((_0x36ac4c=_0xb167cb[_0x12affe(-0xc5,-0x116)])!==null&&_0x36ac4c!==void 0x0&&_0x36ac4c[_0x38827a(0x43e,0x434)]){const {lon:_0x3205a6,lat:_0x5ea499,lev:_0x43bc3f}=_0xb167cb['dimensions'];for(let _0x4e8893=0x0;_0x4e8893<_0x43bc3f;_0x4e8893++){for(let _0x32d9eb=0x0;_0x32d9eb<_0x5ea499;_0x32d9eb++){for(let _0x4aa01f=0x0;_0x4aa01f<_0x3205a6;_0x4aa01f++){const _0x8f4796=_0x4e8893*(_0x3205a6*_0x5ea499)+_0x32d9eb*_0x3205a6+_0x4aa01f;_0xb167cb['H'][_0x38827a(0x491,0x434)][_0x8f4796]=_0xb167cb[_0x38827a(0x3a2,0x367)]['array'][_0x4e8893];}}}_0xb167cb['H']['min']=Math[_0x38827a(0x407,0x371)](..._0xb167cb[_0x12affe(-0x16f,-0x116)]['array']),_0xb167cb['H'][_0x12affe(-0x20,-0x3f)]=Math['max'](..._0xb167cb[_0x12affe(-0x19c,-0x116)][_0x12affe(0x2c,-0x49)]);}}this['data']=_0xb167cb,this['options']=_0x5070af,this['viewerParameters']=_0xb9464,this['particlesComputing']=new ParticlesComputing(this[_0x12affe(-0x12f,-0xc2)],this['data'],this['options'],this[_0x12affe(-0xb8,-0x9a)]);function _0x38827a(_0x36b6a3,_0x5bd0df){return _0x2962c5(_0x36b6a3,_0x5bd0df-0x3e7);}this['particlesRendering']=new ParticlesRendering(this['context'],this[_0x38827a(0x35b,0x369)],this[_0x38827a(0x3c7,0x3ff)],this['viewerParameters'],this['particlesComputing']);}['canvasResize'](_0x2c81bb){this[_0x6a257a(0x211,0x276)][_0x641e2f(-0x79,-0x7d)](),Object[_0x6a257a(0x2b0,0x29d)](this['particlesComputing']['windTextures'])['forEach'](_0x335cca=>{this['particlesComputing']['windTextures'][_0x335cca]['destroy']();}),this['particlesRendering'][_0x6a257a(0x204,0x267)][_0x641e2f(-0x61,-0xad)][_0x6a257a(0x32d,0x308)](),Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](_0x49949d=>{function _0x2cf0fb(_0x2139e8,_0xd2086){return _0x641e2f(_0xd2086,_0x2139e8-0x133);}this['particlesRendering'][_0x2cf0fb(0xc2,0x155)][_0x49949d]['destroy']();});function _0x6a257a(_0xa16b92,_0x3e31c3){return _0x2962c5(_0xa16b92,_0x3e31c3-0x2ac);}this['context']=_0x2c81bb;function _0x641e2f(_0x4b8d20,_0x55e352){return _0x2962c5(_0x4b8d20,_0x55e352- -0x83);}this[_0x6a257a(0x261,0x276)]=new ParticlesComputing(this[_0x6a257a(0x2d5,0x280)],this[_0x641e2f(-0x10b,-0x101)],this[_0x6a257a(0x23d,0x2c4)],this[_0x641e2f(-0x7c,-0x87)]),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this['options'],this['viewerParameters'],this['particlesComputing']);}[_0x2962c5(-0x5,0x2b)](){function _0x7fadfb(_0x185ae3,_0x2b6613){return _0x2962c5(_0x2b6613,_0x185ae3- -0x2c5);}function _0x3c5bd6(_0xbaff32,_0x10cabd){return _0x59248e(_0x10cabd-0xec,_0xbaff32);}const _0x375151=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2[_0x3c5bd6(0x46e,0x47c)][_0x3c5bd6(0x3fd,0x43f)]});Object['keys'](this['particlesRendering'][_0x3c5bd6(0x4a7,0x4d2)])['forEach'](_0x4ac83c=>{_0x375151[_0xccf408(-0x113,-0x144)]=this[_0x3ac48f(-0x32,0x5e)][_0xccf408(-0x14d,-0x10e)][_0x4ac83c];function _0x3ac48f(_0x9f4c28,_0x144b47){return _0x3c5bd6(_0x144b47,_0x9f4c28- -0x4ef);}function _0xccf408(_0x12021c,_0x80d10f){return _0x3c5bd6(_0x12021c,_0x80d10f- -0x5e0);}_0x375151[_0xccf408(-0x217,-0x191)](this[_0x3ac48f(-0x5b,-0x2e)]);});}['refreshParticles'](_0x3055d2,_0x1c0d63=!![]){function _0xc036b7(_0x5f48f7,_0x207f10){return _0x59248e(_0x5f48f7- -0x5d6,_0x207f10);}function _0x1bf0d5(_0x13c034,_0x4f1f4a){return _0x59248e(_0x4f1f4a-0x119,_0x13c034);}_0x1c0d63&&(this['clearFramebuffers'](),this[_0xc036b7(-0x238,-0x1b7)][_0x1bf0d5(0x523,0x4f3)](),this['particlesComputing']['createParticlesTextures'](this[_0xc036b7(-0x22e,-0x1d6)],this[_0xc036b7(-0x1ea,-0x209)],this[_0x1bf0d5(0x569,0x4e9)]));if(_0x3055d2){var _0x184137;const _0x2aff7a=this['particlesRendering']['createSegmentsGeometry'](this[_0x1bf0d5(0x471,0x505)]);this['particlesRendering'][_0x1bf0d5(0x45e,0x4f4)]['segments']['geometry']=_0x2aff7a;const _0x15d766=Cesium$2['VertexArray']['fromGeometry']({'context':this[_0xc036b7(-0x22e,-0x25e)],'geometry':_0x2aff7a,'attributeLocations':this['particlesRendering']['primitives']['segments']['attributeLocations'],'bufferUsage':Cesium$2['BufferUsage'][_0x1bf0d5(0x462,0x49e)]});(_0x184137=this['particlesRendering']['primitives'])!==null&&_0x184137!==void 0x0&&(_0x184137=_0x184137['segments'])!==null&&_0x184137!==void 0x0&&_0x184137[_0x1bf0d5(0x4ad,0x4a3)]&&(this['particlesRendering']['primitives']['segments']['commandToExecute'][_0x1bf0d5(0x569,0x546)]=_0x15d766);}}[_0x2962c5(0x30,-0x20)](_0x3c12f3){let _0x4b6125=![];this[_0x4a120c(-0x179,-0x192)]['maxParticles']!==_0x3c12f3['maxParticles']&&(_0x4b6125=!![]);Object['keys'](_0x3c12f3)['forEach'](_0xf7d7fc=>{function _0x4e5325(_0x51d75d,_0x4f9b15){return _0x4a120c(_0x4f9b15-0x15e,_0x51d75d);}this[_0x4e5325(-0x47,-0x1b)][_0xf7d7fc]=_0x3c12f3[_0xf7d7fc];});function _0x4a120c(_0x49e7d9,_0x145a9a){return _0x59248e(_0x49e7d9- -0x565,_0x145a9a);}this['refreshParticles'](_0x4b6125,_0x3c12f3['dynamic']);}['applyViewerParameters'](_0x48ead5){function _0x541d53(_0x55d274,_0x511e82){return _0x2962c5(_0x55d274,_0x511e82-0x419);}Object['keys'](_0x48ead5)['forEach'](_0x133201=>{function _0x245642(_0x331bff,_0x1458bb){return _0x32c3(_0x331bff-0x30,_0x1458bb);}this[_0x245642(0x146,0x186)][_0x133201]=_0x48ead5[_0x133201];});function _0x155ff7(_0x4051ce,_0x187391){return _0x2962c5(_0x187391,_0x4051ce-0x3a1);}this[_0x155ff7(0x3f1,0x3ee)](![]),!this[_0x155ff7(0x3b9,0x3ea)]['dynamic']&&(this[_0x155ff7(0x3b9,0x342)]['dynamic']=!![],this['setOptions'](this[_0x541d53(0x3e5,0x431)]),setTimeout(()=>{function _0x29c9f6(_0x2b4dcb,_0x1550a8){return _0x541d53(_0x1550a8,_0x2b4dcb- -0x40a);}this[_0x29c9f6(0x27,0x61)]['dynamic']=![];function _0x5d9002(_0x3d7338,_0x3871d3){return _0x541d53(_0x3871d3,_0x3d7338- -0x51e);}this[_0x29c9f6(-0x11,0x1a)](this[_0x5d9002(-0xed,-0x108)]);},0x1f4));}[_0x59248e(0x430,0x3d1)](){clearTimeout(this['canrefresh']);function _0x3b8af6(_0x1ac190,_0x3aa2f8){return _0x2962c5(_0x3aa2f8,_0x1ac190-0xed);}this['particlesComputing']['destroyParticlesTextures'](),Object[_0x377ac7(0x7a,0x20)](this['particlesComputing']['windTextures'])['forEach'](_0x57f355=>{function _0xdf5e85(_0x83c891,_0x186169){return _0x377ac7(_0x83c891,_0x186169-0x438);}this['particlesComputing'][_0xdf5e85(0x4c1,0x43e)][_0x57f355]['destroy']();});function _0x377ac7(_0x421803,_0x4183db){return _0x59248e(_0x4183db- -0x3a5,_0x421803);}this['particlesRendering']['textures'][_0x3b8af6(0xc3,0x7c)]['destroy'](),Object[_0x377ac7(0x2,0x20)](this[_0x377ac7(0x25,0x2c)][_0x377ac7(-0x4c,0x41)])['forEach'](_0x522cd7=>{function _0x4b1183(_0x546764,_0x49faca){return _0x3b8af6(_0x49faca- -0xf4,_0x546764);}function _0x377007(_0x2c5543,_0x5d95a2){return _0x3b8af6(_0x2c5543-0xa,_0x5d95a2);}this[_0x377007(0xf4,0x17a)]['framebuffers'][_0x522cd7][_0x4b1183(0x78,0x55)]();});for(const _0x32785a in this){delete this[_0x32785a];}}}const Cesium$1=mars3d__namespace[_0x59248e(0x454,0x4b7)],BaseLayer$1=mars3d__namespace['layer'][_0x59248e(0x458,0x412)],_0x5e8284={};_0x5e8284['particlesNumber']=0x1000,_0x5e8284['fixedHeight']=0x0,_0x5e8284['fadeOpacity']=0.996,_0x5e8284['dropRate']=0.003,_0x5e8284['dropRateBump']=0.01,_0x5e8284['speedFactor']=0.5,_0x5e8284[_0x59248e(0x456,0x3f6)]=0x2,_0x5e8284[_0x2962c5(0x46,-0x18)]=[_0x2962c5(-0x41,-0x86)],_0x5e8284['dynamic']=!![];const DEF_OPTIONS=_0x5e8284;class WindLayer extends BaseLayer$1{constructor(_0xc2ab73={}){_0xc2ab73={...DEF_OPTIONS,..._0xc2ab73},super(_0xc2ab73),this['_setOptionsHook'](_0xc2ab73);}get['layer'](){function _0x4505bc(_0x5cecbb,_0x3c3fd5){return _0x59248e(_0x3c3fd5- -0x149,_0x5cecbb);}return this[_0x4505bc(0x251,0x292)];}get['data'](){return this['_data'];}set['data'](_0x557dfa){this['setData'](_0x557dfa);}get[_0x59248e(0x3bc,0x3a3)](){return this['options']['colors'];}set['colors'](_0x342cf5){this['options'][_0x1d3076(-0x243,-0x1e8)]=_0x342cf5;function _0x51289b(_0x127b63,_0x50a843){return _0x2962c5(_0x50a843,_0x127b63- -0xd3);}if(this[_0x51289b(-0xe8,-0x55)]){const _0xf3d6eb={};_0xf3d6eb['colors']=_0x342cf5,this['particleSystem']['setOptions'](_0xf3d6eb);}function _0x1d3076(_0x21d8d3,_0x30a6ce){return _0x59248e(_0x30a6ce- -0x5a4,_0x21d8d3);}this[_0x51289b(-0x126,-0x1a8)]();}['_mountedHook'](){}[_0x59248e(0x446,0x46e)](){this['scene']=this['_map'][_0x4f266b(0x274,0x1f6)],this['camera']=this[_0x2f111b(0x4ce,0x4d0)]['camera'],this[_0x2f111b(0x4a0,0x4ce)]=new Cesium$1[(_0x4f266b(0x1ba,0x148))](),this[_0x4f266b(0x1bb,0x1eb)]['scene'][_0x4f266b(0x27c,0x1e9)]['add'](this['primitives']);function _0x4f266b(_0x14de71,_0x24aac9){return _0x2962c5(_0x14de71,_0x24aac9-0x1e2);}this['viewerParameters']={'lonRange':new Cesium$1[(_0x2f111b(0x417,0x49c))](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0,'lonDisplayRange':new Cesium$1[(_0x4f266b(0x15d,0x1b7))](),'latDisplayRange':new Cesium$1['Cartesian2']()},this['globeBoundingSphere']=new Cesium$1[(_0x2f111b(0x582,0x4f5))](Cesium$1['Cartesian3']['ZERO'],Cesium$1[_0x4f266b(0x12a,0x177)][_0x4f266b(0xe9,0x17f)]['minimumRadius']),this['updateViewerParameters'](),window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![];function _0x2f111b(_0x5dcc80,_0x534689){return _0x59248e(_0x534689-0xf3,_0x5dcc80);}this['mouse_move']=![],this['_map']['on'](mars3d__namespace[_0x4f266b(0x168,0x1c6)][_0x4f266b(0x1a3,0x214)],this[_0x4f266b(0x10a,0x199)],this),this['_map']['on'](mars3d__namespace['EventType'][_0x4f266b(0x2b4,0x24d)],this['_onMouseDownEvent'],this),this[_0x4f266b(0x179,0x1eb)]['on'](mars3d__namespace[_0x4f266b(0x18a,0x1c6)][_0x4f266b(0x2c6,0x25f)],this['_onMouseUpEvent'],this),this[_0x2f111b(0x44d,0x4d0)]['on'](mars3d__namespace[_0x4f266b(0x216,0x1c6)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x4f266b(0x2b9,0x251)]&&this['setData'](this[_0x4f266b(0x27e,0x251)]);}[_0x2962c5(0x5b,-0x9)](){window[_0x487096(0x8d,0xd0)]('resize',this['resize']),this[_0x487096(0x40,0xc9)][_0x487096(0x0,-0x18)](mars3d__namespace[_0x17eca3(-0xf4,-0x17e)][_0x487096(-0x50,-0x94)],this['_onMap_preRenderEvent'],this),this['_map'][_0x487096(0x0,-0x9)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this);function _0x17eca3(_0x42ab0d,_0x5dda28){return _0x2962c5(_0x5dda28,_0x42ab0d- -0xd8);}this['_map']['off'](mars3d__namespace['EventType'][_0x487096(0xa2,0x100)],this[_0x17eca3(-0x141,-0x180)],this),this['_map'][_0x487096(0x0,0x49)](mars3d__namespace['EventType'][_0x487096(0xb4,0x42)],this[_0x17eca3(-0xf6,-0x136)],this),this[_0x487096(0x40,0x86)]['off'](mars3d__namespace[_0x487096(0x1b,-0x30)][_0x487096(0x79,0xdd)],this['_onMouseMoveEvent'],this),this['primitives'][_0x487096(-0x2f,0xe)]();function _0x487096(_0x2bf0c9,_0x132147){return _0x59248e(_0x2bf0c9- -0x39d,_0x132147);}this['_map']['scene']['primitives'][_0x487096(-0x3c,0x7)](this[_0x17eca3(-0xd1,-0xcd)]);}['resize'](){function _0x9f7b17(_0x17f564,_0x5c8e54){return _0x2962c5(_0x17f564,_0x5c8e54- -0x273);}if(!this['show']||!this['particleSystem'])return;this['primitives'][_0x2a2a64(0x204,0x176)]=![];function _0x2a2a64(_0x580b61,_0x55b97d){return _0x2962c5(_0x55b97d,_0x580b61-0x2a2);}this[_0x9f7b17(-0x2d7,-0x26c)][_0x2a2a64(0x23c,0x29e)](),this['_map'][_0x9f7b17(-0x1fa,-0x266)](mars3d__namespace[_0x9f7b17(-0x31c,-0x28f)]['preRender'],this[_0x2a2a64(0x220,0x18e)],this);}['_onMap_preRenderEvent'](_0x340601){this[_0x283af9(-0x2a2,-0x29a)]['canvasResize'](this[_0x43dac5(0x4a8,0x4d9)]['context']);function _0x43dac5(_0xe0a6ed,_0x9b7bec){return _0x2962c5(_0xe0a6ed,_0x9b7bec-0x4c5);}function _0x283af9(_0x52652d,_0x453e2e){return _0x59248e(_0x52652d- -0x661,_0x453e2e);}this['addPrimitives'](),this[_0x43dac5(0x53a,0x4cc)]['show']=!![];}['_onMapWhellEvent'](_0x3bc7ad){clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x176b55(-0x9f,-0x11e)])return;function _0x176b55(_0x5734c6,_0x28e519){return _0x59248e(_0x28e519- -0x4dd,_0x5734c6);}function _0x54cd7b(_0xf46cf4,_0x226b0d){return _0x2962c5(_0x226b0d,_0xf46cf4-0x2ba);}this['primitives']['show']=![],this[_0x54cd7b(0x2d8,0x244)]=setTimeout(()=>{if(!this[_0x1fe68b(0x22,-0x39)])return;function _0x1fe68b(_0x2c7a0b,_0x4dd852){return _0x54cd7b(_0x2c7a0b- -0x1fa,_0x4dd852);}this['redraw']();},0xc8);}['_onMouseDownEvent'](_0x34a5df){this['mouse_down']=!![];}[_0x59248e(0x3c4,0x3f9)](_0x26a728){function _0x12603c(_0x105c98,_0x54c8de){return _0x59248e(_0x105c98-0xac,_0x54c8de);}if(!this['show']||!this[_0x12603c(0x46b,0x4b1)])return;function _0x120a90(_0x158610,_0xf755e5){return _0x59248e(_0xf755e5- -0x9c,_0x158610);}this[_0x120a90(0x27b,0x2e8)]&&(this['primitives'][_0x120a90(0x212,0x29a)]=![],this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x569b8a){if(!this[_0x52a4d6(-0x12f,-0x116)]||!this[_0x52a4d6(-0x41,-0x8d)])return;this[_0x52a4d6(-0x118,-0xc8)]&&this['mouse_move']&&this['redraw']();this['primitives']['show']=!![],this['mouse_down']=![];function _0x1bc13b(_0x5c427c,_0x1018ed){return _0x59248e(_0x5c427c- -0x3ca,_0x1018ed);}function _0x52a4d6(_0x3cec6c,_0x4739f3){return _0x59248e(_0x4739f3- -0x44c,_0x3cec6c);}this[_0x52a4d6(-0x45,-0x9e)]=![];}['redraw'](){if(!this['_map']||!this['show'])return;this['updateViewerParameters'](),this['particleSystem']['applyViewerParameters'](this['viewerParameters']),this['primitives']['show']=!![];}['setData'](_0x579eb5){this['_data']=_0x579eb5;function _0x3ed6d7(_0x3c7473,_0x248bd8){return _0x2962c5(_0x248bd8,_0x3c7473- -0x257);}function _0x1e9e5f(_0x552587,_0x25f966){return _0x2962c5(_0x552587,_0x25f966- -0x19f);}this['particleSystem']&&this['particleSystem']['destroy'](),this[_0x3ed6d7(-0x26c,-0x2f4)]=new ParticleSystem(this[_0x1e9e5f(-0x202,-0x18b)][_0x3ed6d7(-0x283,-0x315)],_0x579eb5,this['getOptions'](),this['viewerParameters']),this[_0x1e9e5f(-0x10d,-0x191)]();}['_setOptionsHook'](_0x49b3cc,_0x10857a){if(_0x49b3cc)for(const _0x2188e0 in _0x49b3cc){this[_0x2188e0]=_0x49b3cc[_0x2188e0];}function _0x558ac1(_0xc21ec,_0x52c7f8){return _0x59248e(_0x52c7f8- -0x2cd,_0xc21ec);}this[_0x558ac1(0xfa,0xf2)]&&this['particleSystem']['setOptions'](this['getOptions']());}['getOptions'](){const _0x2eaee3=Math['ceil'](Math['sqrt'](this['particlesNumber']));this['particlesNumber']=_0x2eaee3*_0x2eaee3;const _0x1dc9f5={};_0x1dc9f5[_0x423e4d(-0x12e,-0x112)]=_0x2eaee3;function _0x423e4d(_0x54f8b7,_0x4f6101){return _0x2962c5(_0x54f8b7,_0x4f6101- -0xdd);}_0x1dc9f5[_0x423e4d(-0x143,-0x13e)]=this['particlesNumber'],_0x1dc9f5['colors']=this[_0x1b74d8(-0x52,-0x2b)],_0x1dc9f5['particleHeight']=this['fixedHeight'],_0x1dc9f5['fadeOpacity']=this['fadeOpacity'],_0x1dc9f5['dropRate']=this['dropRate'],_0x1dc9f5['dropRateBump']=this[_0x423e4d(-0x15c,-0x142)],_0x1dc9f5['speedFactor']=this['speedFactor'],_0x1dc9f5['lineWidth']=this[_0x423e4d(-0x41,-0x5b)],_0x1dc9f5['dynamic']=this[_0x423e4d(-0xfd,-0x13f)];function _0x1b74d8(_0x16758d,_0x4e8d1a){return _0x59248e(_0x16758d- -0x40e,_0x4e8d1a);}return _0x1dc9f5;}['addPrimitives'](){this['primitives']['add'](this[_0x5dbe81(-0x4,-0x98)][_0x18bcc2(0x44c,0x49b)]['primitives'][_0x18bcc2(0x4b0,0x4f3)]),this['primitives'][_0x18bcc2(0x455,0x4b2)](this[_0x5dbe81(-0x4,-0x46)]['particlesComputing']['primitives']['updatePosition']),this['primitives'][_0x5dbe81(-0xe,-0x1)](this[_0x18bcc2(0x458,0x4bc)][_0x5dbe81(-0x25,0x1f)][_0x18bcc2(0x463,0x4d8)][_0x5dbe81(-0x86,-0x81)]),this['primitives'][_0x18bcc2(0x491,0x4b2)](this[_0x5dbe81(-0x4,0x38)]['particlesRendering']['primitives'][_0x18bcc2(0x3ed,0x474)]);function _0x18bcc2(_0x49e980,_0x5647bb){return _0x59248e(_0x5647bb-0xfd,_0x49e980);}this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives'][_0x18bcc2(0x4ee,0x4f9)]);function _0x5dbe81(_0x4b7a04,_0x56a863){return _0x2962c5(_0x56a863,_0x4b7a04-0x11);}this['primitives'][_0x5dbe81(-0xe,0x5a)](this[_0x18bcc2(0x452,0x4bc)]['particlesRendering']['primitives']['screen']);}[_0x59248e(0x342,0x37a)](){function _0x1b2ad1(_0x490696,_0x1dd0cc){return _0x59248e(_0x1dd0cc- -0x2a8,_0x490696);}let _0x26569b=this[_0x1b2ad1(0xd2,0x91)][_0x144391(-0x7c,-0x28)](this['scene']['globe']['ellipsoid']);if(!_0x26569b){const _0x4abd59=this['_map']['getExtent']();_0x26569b=Cesium$1['Rectangle'][_0x1b2ad1(0x14,0x8c)](_0x4abd59[_0x144391(0x2,0x7e)],_0x4abd59[_0x1b2ad1(0x16f,0x150)],_0x4abd59['xmax'],_0x4abd59['ymax']);}const _0x2dff7f=Util['viewRectangleToLonLatRange'](_0x26569b);function _0x144391(_0x42ece8,_0x5ac4c6){return _0x2962c5(_0x5ac4c6,_0x42ece8- -0x59);}this['_data']?(this['viewerParameters']['lonRange']['x']=Math['max'](_0x2dff7f['lon']['min'],this[_0x1b2ad1(0x211,0x19b)][_0x1b2ad1(0x1a0,0x187)]),this['viewerParameters']['lonRange']['y']=Math['min'](_0x2dff7f['lon'][_0x144391(-0x2,-0x19)],this['_data']['xmax']),this['viewerParameters']['latRange']['x']=Math['max'](_0x2dff7f['lat']['min'],this['_data'][_0x144391(-0x35,-0x16)]),this[_0x1b2ad1(0x186,0x128)]['latRange']['y']=Math[_0x1b2ad1(0xba,0xb6)](_0x2dff7f[_0x144391(-0x23,-0xac)][_0x1b2ad1(0x112,0x183)],this[_0x144391(0x16,-0x12)]['ymax'])):(this[_0x144391(-0x5d,-0xdd)]['lonRange']['x']=_0x2dff7f['lon']['min'],this['viewerParameters'][_0x1b2ad1(0xb3,0x126)]['y']=_0x2dff7f[_0x144391(-0x1d,0x3a)][_0x144391(-0x2,0x48)],this['viewerParameters'][_0x1b2ad1(0x199,0x156)]['x']=_0x2dff7f[_0x144391(-0x23,-0xc)]['min'],this[_0x144391(-0x5d,-0xdf)][_0x144391(-0x2f,0x56)]['y']=_0x2dff7f[_0x1b2ad1(0x178,0x162)]['max']);let _0x1c41ac=this['camera']['getPixelSize'](this['globeBoundingSphere'],this[_0x144391(-0x45,0x24)][_0x144391(0xd,0x67)],this[_0x144391(-0x45,-0x32)]['drawingBufferHeight']);const _0x239263=this[_0x1b2ad1(0xbb,0x140)]['drawingBufferHeight']*0.3;_0x1c41ac<_0x239263&&(_0x1c41ac=_0x239263),this['viewerParameters'][_0x144391(-0xae,-0x70)]=_0x1c41ac;}}mars3d__namespace[_0x59248e(0x37e,0x3b2)]['register'](_0x59248e(0x378,0x2e2),WindLayer),mars3d__namespace['layer'][_0x2962c5(-0x24,-0x22)]=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this['tlng']=null,this['tlat']=null;function _0x220210(_0x54bb99,_0x27924b){return _0x59248e(_0x27924b-0x5b,_0x54bb99);}this['age']=null,this[_0x220210(0x475,0x448)]=null;}[_0x2962c5(0x8a,0x5c)](){for(const _0x4b8a06 in this){delete this[_0x4b8a06];}}}class CanvasWindField{constructor(_0xe56f55){this['setOptions'](_0xe56f55);}get['speedRate'](){return this['_speedRate'];}set['speedRate'](_0x3b3b22){function _0x1eae69(_0x153ad4,_0x8095d6){return _0x2962c5(_0x8095d6,_0x153ad4- -0x1a3);}function _0x18c771(_0xd4e47b,_0x1b6d3d){return _0x59248e(_0x1b6d3d- -0x639,_0xd4e47b);}this['_speedRate']=(0x64-(_0x3b3b22>0x63?0x63:_0x3b3b22))*0x64,this[_0x18c771(-0x281,-0x2a0)]=[(this['xmax']-this[_0x1eae69(-0x148,-0xfa)])/this[_0x18c771(-0x297,-0x211)],(this['ymax']-this['ymin'])/this[_0x1eae69(-0x14f,-0x167)]];}get[_0x59248e(0x340,0x341)](){function _0x5bfd6d(_0x4f94a5,_0x5244ef){return _0x59248e(_0x5244ef- -0x2f0,_0x4f94a5);}return this[_0x5bfd6d(0xb6,0xf0)];}set[_0x59248e(0x340,0x383)](_0x5daacf){function _0x550b13(_0x47724a,_0x391dee){return _0x59248e(_0x391dee- -0x5c1,_0x47724a);}this[_0x550b13(-0x16e,-0x1e1)]=_0x5daacf;}[_0x59248e(0x3b4,0x354)](_0x929952){this['options']=_0x929952,this['maxAge']=_0x929952[_0x53eb1c(0x1f4,0x17d)]||0x78;function _0x53eb1c(_0x24c3e1,_0x4c35ba){return _0x59248e(_0x4c35ba- -0x1c3,_0x24c3e1);}this['speedRate']=_0x929952['speedRate']||0x32;function _0x5b5259(_0x30368a,_0x543b14){return _0x59248e(_0x30368a- -0x4ce,_0x543b14);}this['particles']=[];const _0x2dadf1=_0x929952['particlesNumber']||0x1000;for(let _0x181df4=0x0;_0x181df4<_0x2dadf1;_0x181df4++){const _0x3a8d50=this['_randomParticle'](new CanvasParticle());this['particles'][_0x5b5259(-0xa8,-0xa3)](_0x3a8d50);}}[_0x2962c5(-0x40,0x4b)](_0x26ba55){this[_0x1bb781(-0xa9,-0x110)]=_0x26ba55['rows'],this['cols']=_0x26ba55['cols'],this['xmin']=_0x26ba55['xmin'],this[_0x1cb1b0(-0x25f,-0x214)]=_0x26ba55['xmax'],this['ymin']=_0x26ba55['ymin'];function _0x1bb781(_0x56b2c8,_0x527dcc){return _0x2962c5(_0x527dcc,_0x56b2c8- -0xf0);}this['ymax']=_0x26ba55['ymax'],this[_0x1bb781(-0xbf,-0x47)]=[];const _0xb95986=_0x26ba55['udata'],_0x1691b1=_0x26ba55['vdata'];let _0x21922f=![];_0xb95986[_0x1cb1b0(-0x233,-0x1de)]===this[_0x1bb781(-0xa9,-0x24)]&&_0xb95986[0x0]['length']===this['cols']&&(_0x21922f=!![]);let _0x135d27=0x0,_0x30c48d=null,_0x40e037=null;function _0x1cb1b0(_0x161026,_0x505222){return _0x59248e(_0x161026- -0x656,_0x505222);}for(let _0x373a16=0x0;_0x373a16<this['rows'];_0x373a16++){_0x30c48d=[];for(let _0x1c764f=0x0;_0x1c764f<this['cols'];_0x1c764f++,_0x135d27++){_0x21922f?_0x40e037=this[_0x1bb781(-0x14b,-0x187)](_0xb95986[_0x373a16][_0x1c764f],_0x1691b1[_0x373a16][_0x1c764f]):_0x40e037=this[_0x1bb781(-0x14b,-0x16a)](_0xb95986[_0x135d27],_0x1691b1[_0x135d27]),_0x30c48d[_0x1bb781(-0x9e,-0x46)](_0x40e037);}this['grid']['push'](_0x30c48d);}this[_0x1cb1b0(-0x26a,-0x2a9)]['reverseY']&&this[_0x1cb1b0(-0x251,-0x2d8)]['reverse']();}[_0x2962c5(-0x2b,0x5d)](){delete this['rows'],delete this['cols'],delete this[_0x442c3f(0x10d,0xf9)],delete this['xmax'],delete this[_0xdbcd29(0x281,0x1ec)],delete this['ymax'];function _0x442c3f(_0x2d5cc5,_0x9a6c62){return _0x59248e(_0x2d5cc5- -0x322,_0x9a6c62);}function _0xdbcd29(_0x56f556,_0x1aea25){return _0x2962c5(_0x56f556,_0x1aea25-0x1c8);}delete this['grid'],delete this[_0xdbcd29(0x1dd,0x19b)];}['toGridXY'](_0x22ff90,_0x49074c){const _0x4e064d=(_0x22ff90-this['xmin'])/(this[_0x84f0ca(0x27d,0x2ee)]-this[_0x3608a5(0x2eb,0x2c6)])*(this['cols']-0x1);function _0x84f0ca(_0x4a2ad0,_0x19599e){return _0x2962c5(_0x19599e,_0x4a2ad0-0x25a);}const _0x4d1411=(this[_0x3608a5(0x251,0x244)]-_0x49074c)/(this['ymax']-this[_0x84f0ca(0x27e,0x23d)])*(this['rows']-0x1);function _0x3608a5(_0x2513f3,_0xc08e01){return _0x59248e(_0xc08e01- -0x169,_0x2513f3);}return[_0x4e064d,_0x4d1411];}[_0x2962c5(0xfb,0x77)](_0x5dac48,_0x43acd7){if(_0x5dac48<0x0||_0x5dac48>=this['cols']||_0x43acd7>=this['rows'])return[0x0,0x0,0x0];const _0xad8044=Math[_0x142be5(0x337,0x2aa)](_0x5dac48),_0x379ae8=Math['floor'](_0x43acd7);if(_0xad8044===_0x5dac48&&_0x379ae8===_0x43acd7)return this['grid'][_0x43acd7][_0x5dac48];const _0x25aabe=_0xad8044+0x1,_0x4f198c=_0x379ae8+0x1,_0x531571=this[_0x5710e2(-0x182,-0x20b)](_0xad8044,_0x379ae8);function _0x5710e2(_0x11356c,_0xc162a1){return _0x59248e(_0xc162a1- -0x656,_0x11356c);}const _0x5a1e16=this['getUVByXY'](_0x25aabe,_0x379ae8),_0x25b419=this['getUVByXY'](_0xad8044,_0x4f198c),_0x42c3f2=this['getUVByXY'](_0x25aabe,_0x4f198c);let _0x821e55=null;try{_0x821e55=this[_0x142be5(0x3d7,0x3f3)](_0x5dac48-_0xad8044,_0x43acd7-_0x379ae8,_0x531571,_0x5a1e16,_0x25b419,_0x42c3f2);}catch(_0x138321){console['log'](_0x5dac48,_0x43acd7);}function _0x142be5(_0x1ded7e,_0x39e63d){return _0x59248e(_0x1ded7e- -0x6a,_0x39e63d);}return _0x821e55;}[_0x2962c5(0x18,0x6d)](_0x293ea0,_0x3295c1,_0x4a5ee4,_0x4c07bf,_0x2f09fe,_0x1a1aeb){const _0x202556=0x1-_0x293ea0,_0x2698f1=0x1-_0x3295c1,_0x10b426=_0x202556*_0x2698f1,_0x16d929=_0x293ea0*_0x2698f1,_0x465a53=_0x202556*_0x3295c1,_0x454076=_0x293ea0*_0x3295c1,_0x1564d2=_0x4a5ee4[0x0]*_0x10b426+_0x4c07bf[0x0]*_0x16d929+_0x2f09fe[0x0]*_0x465a53+_0x1a1aeb[0x0]*_0x454076,_0x55dc19=_0x4a5ee4[0x1]*_0x10b426+_0x4c07bf[0x1]*_0x16d929+_0x2f09fe[0x1]*_0x465a53+_0x1a1aeb[0x1]*_0x454076;return this['_calcUV'](_0x1564d2,_0x55dc19);}[_0x59248e(0x379,0x39f)](_0x2713a6,_0x359931){return[+_0x2713a6,+_0x359931,Math['sqrt'](_0x2713a6*_0x2713a6+_0x359931*_0x359931)];}['getUVByPoint'](_0xeffd41,_0x171901){if(!this['isInExtent'](_0xeffd41,_0x171901))return null;const _0x47a038=this['toGridXY'](_0xeffd41,_0x171901),_0x464b33=this['getUVByXY'](_0x47a038[0x0],_0x47a038[0x1]);return _0x464b33;}['isInExtent'](_0x2ae6dd,_0x19fa16){function _0xcfbf66(_0x5a9175,_0x2a0fb0){return _0x59248e(_0x2a0fb0- -0x618,_0x5a9175);}function _0x22199d(_0x47debf,_0x39b40b){return _0x59248e(_0x39b40b- -0x353,_0x47debf);}return _0x2ae6dd>=this[_0xcfbf66(-0x19a,-0x1e9)]&&_0x2ae6dd<=this[_0xcfbf66(-0x223,-0x221)]&&_0x19fa16>=this['ymin']&&_0x19fa16<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0xff9a61(_0x374dac,_0x49ee32){return _0x2962c5(_0x49ee32,_0x374dac- -0x164);}const _0x105144=fRandomByfloat(this['xmin'],this['xmax']),_0x242323=fRandomByfloat(this['ymin'],this['ymax']),_0x3bea7e={};return _0x3bea7e[_0xff9a61(-0x12e,-0xa2)]=_0x242323,_0x3bea7e['lng']=_0x105144,_0x3bea7e;}[_0x2962c5(0x0,0x41)](){let _0x493191,_0x5eec5f,_0x40de02;function _0x302179(_0x1c6d8f,_0x503e55){return _0x2962c5(_0x503e55,_0x1c6d8f-0x4ca);}function _0x46b42f(_0x105e52,_0x1b52b2){return _0x2962c5(_0x1b52b2,_0x105e52-0x3dc);}for(let _0x2232fa=0x0,_0x42d537=this['particles']['length'];_0x2232fa<_0x42d537;_0x2232fa++){let _0x2c21a8=this[_0x302179(0x49d,0x430)][_0x2232fa];_0x2c21a8['age']<=0x0&&(_0x2c21a8=this['_randomParticle'](_0x2c21a8));if(_0x2c21a8[_0x46b42f(0x3d7,0x3d4)]>0x0){const _0x19e5ab=_0x2c21a8[_0x46b42f(0x409,0x3b9)],_0x53140d=_0x2c21a8[_0x302179(0x4fe,0x4e7)];_0x40de02=this['getUVByPoint'](_0x19e5ab,_0x53140d),_0x40de02?(_0x493191=_0x19e5ab+this['_calc_speedRate'][0x0]*_0x40de02[0x0],_0x5eec5f=_0x53140d+this['_calc_speedRate'][0x1]*_0x40de02[0x1],_0x2c21a8[_0x302179(0x428,0x45a)]=_0x19e5ab,_0x2c21a8['lat']=_0x53140d,_0x2c21a8['tlng']=_0x493191,_0x2c21a8['tlat']=_0x5eec5f,_0x2c21a8[_0x302179(0x4e3,0x559)]=_0x40de02[0x2],_0x2c21a8[_0x46b42f(0x3d7,0x458)]--):_0x2c21a8[_0x302179(0x4c5,0x4e4)]=0x0;}}return this[_0x302179(0x49d,0x44c)];}[_0x2962c5(0x81,0x49)](_0x2ab13f){let _0x1ae25c,_0x5547ba;for(let _0xf6e454=0x0;_0xf6e454<0x1e;_0xf6e454++){_0x1ae25c=this['getRandomLatLng'](),_0x5547ba=this['getUVByPoint'](_0x1ae25c['lng'],_0x1ae25c[_0x49db38(0x1b0,0x1a2)]);if(_0x5547ba&&_0x5547ba[0x2]>0x0)break;}if(!_0x5547ba)return _0x2ab13f;function _0x49db38(_0x548a7d,_0x23718d){return _0x2962c5(_0x23718d,_0x548a7d-0x17a);}const _0x44a5d6=_0x1ae25c['lng']+this['_calc_speedRate'][0x0]*_0x5547ba[0x0];function _0x26d595(_0x283139,_0x27b5de){return _0x2962c5(_0x283139,_0x27b5de- -0x18b);}const _0x1d47bf=_0x1ae25c['lat']+this['_calc_speedRate'][0x1]*_0x5547ba[0x1];return _0x2ab13f['lng']=_0x1ae25c['lng'],_0x2ab13f[_0x26d595(-0x19f,-0x155)]=_0x1ae25c['lat'],_0x2ab13f['tlng']=_0x44a5d6,_0x2ab13f['tlat']=_0x1d47bf,_0x2ab13f['age']=Math['round'](Math[_0x26d595(-0x178,-0x20e)]()*this[_0x26d595(-0x1c1,-0x21f)]),_0x2ab13f[_0x26d595(-0x15f,-0x172)]=_0x5547ba[0x2],_0x2ab13f;}[_0x2962c5(0x58,0x5c)](){for(const _0x3b5845 in this){delete this[_0x3b5845];}}}function fRandomByfloat(_0x5a0406,_0x4bce3b){return _0x5a0406+Math['random']()*(_0x4bce3b-_0x5a0406);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x2962c5(0x1d,0x4c)][_0x59248e(0x458,0x47b)];class CanvasWindLayer extends BaseLayer{constructor(_0x149021={}){function _0x1e166c(_0x5f0709,_0x5e3c4e){return _0x59248e(_0x5e3c4e- -0x1ed,_0x5f0709);}super(_0x149021);function _0x48be19(_0x39053f,_0x44d67f){return _0x2962c5(_0x39053f,_0x44d67f-0x1d);}this['_setOptionsHook'](_0x149021),this['canvas']=null,_0x149021[_0x1e166c(0x19d,0x1cf)]&&_0x149021['steps']&&(this[_0x48be19(0x70,0x27)]=new mars3d__namespace['ColorRamp'](_0x149021));}[_0x2962c5(0xba,0x2f)](_0x5e0482,_0x2bcd37){this[_0x3eb053(-0x1db,-0x22e)]=0x3e8/(_0x5e0482['frameRate']||0xa),this[_0x3eb053(-0x132,-0x1ad)]=this['options']['pointerEvents']??![],this['color']=_0x5e0482['color']||'#ffffff';function _0x913017(_0x3fd6de,_0x38fb81){return _0x2962c5(_0x3fd6de,_0x38fb81-0x53);}this['lineWidth']=_0x5e0482['lineWidth']||0x1;function _0x3eb053(_0x1d37cf,_0x40ec7d){return _0x2962c5(_0x1d37cf,_0x40ec7d- -0x200);}this['fixedHeight']=_0x5e0482[_0x3eb053(-0x28c,-0x221)]??0x0,this['reverseY']=_0x5e0482['reverseY']??![],this['windField']&&this['windField']['setOptions'](_0x5e0482);}get['layer'](){return this['canvas'];}get[_0x59248e(0x3fd,0x3c9)](){function _0x99198b(_0x34dfac,_0x5e4659){return _0x59248e(_0x5e4659- -0x21d,_0x34dfac);}function _0x183882(_0x573c9b,_0x243f2c){return _0x2962c5(_0x573c9b,_0x243f2c- -0x105);}return this[_0x99198b(0x177,0x1c0)]['scene'][_0x183882(-0x1bc,-0x1a4)]['clientWidth'];}get['canvasHeight'](){function _0x44ed63(_0x47b534,_0x12f74f){return _0x59248e(_0x47b534- -0x237,_0x12f74f);}function _0x5a0fde(_0x1e05d9,_0x3b39cc){return _0x59248e(_0x3b39cc- -0x49e,_0x1e05d9);}return this['_map'][_0x44ed63(0x1b1,0x13d)][_0x44ed63(0xfe,0xdf)][_0x5a0fde(-0x8f,-0xbf)];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x2962c5(0x97,0x60)](_0x5080b7){function _0x149a02(_0x19304e,_0x3298ff){return _0x59248e(_0x19304e- -0x43b,_0x3298ff);}function _0x5612bf(_0x25c2f1,_0x32dae0){return _0x2962c5(_0x25c2f1,_0x32dae0- -0x1c1);}this['_pointerEvents']=_0x5080b7;if(!this['canvas'])return;_0x5080b7?this['canvas']['style']['pointer-events']=_0x149a02(-0xa8,-0x16):this['canvas'][_0x149a02(-0x10d,-0xa2)][_0x5612bf(-0x1a9,-0x239)]='none';}get[_0x59248e(0x450,0x3d7)](){return this['options']['particlesNumber'];}set['particlesNumber'](_0x825880){function _0x228257(_0x770857,_0x1359dc){return _0x2962c5(_0x1359dc,_0x770857- -0x1c3);}this['options']['particlesNumber']=_0x825880,clearTimeout(this['_canrefresh']),this[_0x228257(-0x23a,-0x24e)]=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x115490(_0xe8708a,_0x27878b){return _0x59248e(_0x27878b- -0x4bd,_0xe8708a);}function _0x28a826(_0x5ea74d,_0x22c2af){return _0x59248e(_0x22c2af- -0x93,_0x5ea74d);}return this[_0x28a826(0x2fe,0x359)][_0x28a826(0x30b,0x362)];}set[_0x59248e(0x3f5,0x3de)](_0x58aacb){this['options']['speedRate']=_0x58aacb;function _0x2f8927(_0x57db93,_0x3953ff){return _0x59248e(_0x3953ff- -0x49b,_0x57db93);}this['windField']&&(this[_0x2f8927(-0xe4,-0xac)]['speedRate']=_0x58aacb);}get[_0x59248e(0x340,0x357)](){return this['options']['maxAge'];}set[_0x59248e(0x340,0x300)](_0x40b052){function _0x4d7f98(_0x158f9a,_0x274773){return _0x2962c5(_0x274773,_0x158f9a-0x135);}this[_0x4d7f98(0x14d,0x129)]['maxAge']=_0x40b052,this['windField']&&(this['windField']['maxAge']=_0x40b052);}get[_0x59248e(0x356,0x334)](){function _0x109817(_0x543578,_0x3d036c){return _0x2962c5(_0x543578,_0x3d036c-0x1e2);}return this[_0x109817(0x1b3,0x1f1)];}set['data'](_0x5e2d62){function _0x4bd5f8(_0x4919f5,_0x112b10){return _0x59248e(_0x4919f5-0x100,_0x112b10);}this[_0x4bd5f8(0x446,0x4bd)](_0x5e2d62);}get[_0x59248e(0x34c,0x397)](){let _0x2040e6=this['windData']['xmin'],_0x26c0e7=this['windData']['xmax'],_0x42058d=this[_0x48d689(0x89,0x50)]['ymin'],_0x4f91a9=this['windData']['ymax'];_0x26c0e7>=0x167&&_0x2040e6===0x0&&(_0x2040e6=-0xb4,_0x26c0e7=0xb4);_0x2040e6=Math['max'](_0x2040e6,-0xb4),_0x26c0e7=Math['min'](_0x26c0e7,0xb4),_0x42058d=Math['max'](_0x42058d,-0x5a);function _0x48d689(_0x25fb47,_0x581d55){return _0x59248e(_0x581d55- -0x393,_0x25fb47);}function _0x408b63(_0x4bb804,_0x4bcf6b){return _0x2962c5(_0x4bcf6b,_0x4bb804-0x9);}return _0x4f91a9=Math[_0x408b63(-0x6d,-0x7a)](_0x4f91a9,0x5a),Cesium[_0x408b63(-0x61,0x3)][_0x48d689(-0xf5,-0x5f)](_0x2040e6,_0x42058d,_0x26c0e7,_0x4f91a9);}['_showHook'](_0x2f82ea){function _0x485606(_0x1a62e4,_0x151b3b){return _0x59248e(_0x1a62e4-0xa6,_0x151b3b);}function _0x94fdba(_0x37feef,_0x3ece70){return _0x2962c5(_0x37feef,_0x3ece70- -0x258);}_0x2f82ea?this[_0x485606(0x4ec,0x56d)]():(this['windData']&&(this['options']['data']=this[_0x94fdba(-0x1e7,-0x249)]),this[_0x94fdba(-0x2a4,-0x261)]());}['_mountedHook'](){this['options']['worker']?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){this[_0xeabd08(-0x1a,0x53)]=this['_createCanvas']();const _0x10dd8e={};_0x10dd8e['willReadFrequently']=!![],this['canvasContext']=this[_0x415c19(0x20d,0x1c1)][_0x415c19(0x2e5,0x2aa)]('2d',_0x10dd8e);function _0x415c19(_0x29dde8,_0x5dd541){return _0x2962c5(_0x5dd541,_0x29dde8-0x2ac);}this[_0xeabd08(0x7b,0x1a)]();function _0xeabd08(_0x3a91d2,_0x22f9de){return _0x2962c5(_0x22f9de,_0x3a91d2-0x85);}this[_0x415c19(0x2c4,0x295)]['data']&&this['setData'](this['options']['data']);}['_removedHook'](){this['clear']();function _0x107e3f(_0x215bc4,_0x37b1bb){return _0x2962c5(_0x37b1bb,_0x215bc4- -0x124);}function _0x5d5579(_0x3810fc,_0x386b15){return _0x59248e(_0x3810fc-0xb8,_0x386b15);}this['unbindEvent'](),this[_0x5d5579(0x3ed,0x394)]&&(this[_0x107e3f(-0x11b,-0x144)][_0x5d5579(0x412,0x3fa)]['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x4b94ea=mars3d__namespace['DomUtil'][_0x21251c(0x382,0x3a7)](_0x5664be(-0x301,-0x297),'mars3d-canvasWind',this['_map']['container']);_0x4b94ea['style']['position']='absolute',_0x4b94ea[_0x21251c(0x262,0x272)]['top']='0px';function _0x21251c(_0x32bcc8,_0x1e7ce9){return _0x59248e(_0x32bcc8- -0xcc,_0x1e7ce9);}function _0x5664be(_0x473a90,_0x5d4ec0){return _0x59248e(_0x5d4ec0- -0x5cc,_0x473a90);}return _0x4b94ea['style'][_0x21251c(0x29c,0x2f3)]=_0x21251c(0x2f7,0x26b),_0x4b94ea['style']['width']=this['_map']['scene']['canvas']['clientWidth']+'px',_0x4b94ea[_0x21251c(0x262,0x1fc)][_0x21251c(0x306,0x30d)]=this['_map']['scene']['canvas']['clientHeight']+'px',_0x4b94ea[_0x21251c(0x262,0x1d8)][_0x5664be(-0x105,-0x198)]=this[_0x5664be(-0x1df,-0x1a5)]?_0x5664be(-0x282,-0x245):'none',_0x4b94ea['style']['zIndex']=this[_0x5664be(-0x230,-0x1e0)][_0x21251c(0x29a,0x29b)]??0x9,_0x4b94ea[_0x5664be(-0x23a,-0x1e7)]=this[_0x5664be(-0x1de,-0x1ef)][_0x5664be(-0x23f,-0x1e4)][_0x21251c(0x269,0x239)][_0x21251c(0x2a8,0x260)],_0x4b94ea['height']=this['_map'][_0x21251c(0x31c,0x3a8)][_0x5664be(-0x2f8,-0x297)][_0x5664be(-0x275,-0x1ed)],_0x4b94ea;}['resize'](){function _0x193208(_0x166ecc,_0x1b4a33){return _0x59248e(_0x166ecc-0x2e,_0x1b4a33);}function _0x1ce98b(_0x14613f,_0x319ce2){return _0x59248e(_0x319ce2- -0x513,_0x14613f);}this[_0x1ce98b(-0x1c5,-0x1de)]&&(this['canvas'][_0x193208(0x35c,0x306)]['width']=this[_0x1ce98b(-0x160,-0x136)][_0x193208(0x416,0x3ec)][_0x193208(0x363,0x3cc)]['clientWidth']+'px',this[_0x1ce98b(-0x223,-0x1de)][_0x193208(0x35c,0x3a0)][_0x1ce98b(-0x106,-0x141)]=this[_0x1ce98b(-0x125,-0x136)]['scene']['canvas']['clientHeight']+'px',this['canvas'][_0x193208(0x413,0x446)]=this[_0x1ce98b(-0x19c,-0x136)]['scene'][_0x193208(0x363,0x314)][_0x193208(0x3a2,0x360)],this['canvas'][_0x193208(0x400,0x425)]=this['_map']['scene']['canvas']['clientHeight']);}['bindEvent'](){function _0x4ae883(_0x4e8155,_0x33bcef){return _0x59248e(_0x33bcef- -0x364,_0x4e8155);}const _0xbaaa8=this;let _0x5b40ce=Date['now']();(function _0x33c251(){function _0x342778(_0x51ec86,_0x5a6100){return _0x32c3(_0x51ec86-0x1fb,_0x5a6100);}if(_0xbaaa8[_0x342778(0x317,0x347)])return;function _0x24b054(_0xa93c0c,_0x169e5d){return _0x32c3(_0x169e5d-0x34d,_0xa93c0c);}_0xbaaa8[_0x342778(0x272,0x274)]=window['requestAnimationFrame'](_0x33c251);if(_0xbaaa8['show']&&_0xbaaa8['windField']){const _0x54e0e5=Date['now'](),_0x434ffb=_0x54e0e5-_0x5b40ce;_0x434ffb>_0xbaaa8['frameTime']&&(_0x5b40ce=_0x54e0e5-_0x434ffb%_0xbaaa8[_0x342778(0x2e7,0x347)],_0xbaaa8['update']());}}(),window['addEventListener'](_0x2767c4(0x1df,0x24c),this['resize']['bind'](this),![]));function _0x2767c4(_0x29e05e,_0x394d7f){return _0x2962c5(_0x394d7f,_0x29e05e-0x232);}this['mouse_down']=![],this['mouse_move']=![],this['options'][_0x4ae883(0x37,-0x1f)]&&(this[_0x4ae883(0xb5,0x79)]['on'](mars3d__namespace[_0x4ae883(0xa5,0x54)]['wheel'],this['_onMapWhellEvent'],this),this[_0x4ae883(0x7f,0x79)]['on'](mars3d__namespace['EventType'][_0x2767c4(0x29d,0x307)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x2767c4(0x216,0x269)][_0x4ae883(0xd4,0xed)],this['_onMouseUpEvent'],this));}[_0x2962c5(0x7b,0x4)](){window[_0x2d3bdc(0x384,0x40f)](this[_0x2d3bdc(0x35a,0x308)]);function _0x2d3bdc(_0x8215f9,_0x3fda72){return _0x2962c5(_0x8215f9,_0x3fda72-0x3ab);}function _0xe702e6(_0x1c12a5,_0x4fcdbf){return _0x2962c5(_0x4fcdbf,_0x1c12a5- -0x1c2);}delete this['_animateFrame'],window[_0xe702e6(-0x16c,-0x1c4)]('resize',this[_0xe702e6(-0x215,-0x1db)]),this['options'][_0xe702e6(-0x251,-0x1ce)]&&(this[_0xe702e6(-0x1b9,-0x138)][_0xe702e6(-0x1f9,-0x24b)](mars3d__namespace[_0xe702e6(-0x1de,-0x23f)]['wheel'],this[_0xe702e6(-0x20b,-0x25a)],this),this['_map']['off'](mars3d__namespace[_0xe702e6(-0x1de,-0x165)][_0xe702e6(-0x157,-0x1c1)],this[_0x2d3bdc(0x3a1,0x342)],this),this['_map']['off'](mars3d__namespace[_0x2d3bdc(0x340,0x38f)]['mouseUp'],this[_0xe702e6(-0x1e0,-0x25b)],this),this['_map'][_0x2d3bdc(0x3e6,0x374)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x2962c5(0x33,-0x49)](_0x3026b5){clearTimeout(this[_0x306264(-0x30,0xf)]);function _0x4f140b(_0x52d8c4,_0x54c7b5){return _0x59248e(_0x52d8c4- -0x1c5,_0x54c7b5);}function _0x306264(_0x44d8d4,_0x240df0){return _0x2962c5(_0x240df0,_0x44d8d4- -0x4e);}if(!this[_0x4f140b(0x171,0x121)]||!this[_0x306264(-0xed,-0xd1)])return;this[_0x306264(-0xed,-0xa1)][_0x4f140b(0x169,0x1db)][_0x4f140b(0x235,0x1c6)]=_0x306264(-0x10,-0x20),this[_0x306264(-0x30,0x43)]=setTimeout(()=>{if(!this[_0x236b44(0x1b5,0x241)])return;this['redraw']();function _0x236b44(_0x267df1,_0x33da78){return _0x4f140b(_0x267df1-0x44,_0x33da78);}function _0x29f7c8(_0x4a5525,_0x3b8988){return _0x306264(_0x3b8988-0x35f,_0x4a5525);}this['canvas']['style'][_0x29f7c8(0x329,0x337)]=_0x29f7c8(0x39b,0x374);},0xc8);}['_onMouseDownEvent'](_0x563ef4){this[_0x189896(-0x49,-0x65)]=!![];function _0x2ef544(_0x57f434,_0x817710){return _0x59248e(_0x57f434- -0xfc,_0x817710);}this['_map'][_0x2ef544(0x2a1,0x2b9)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x189896(_0x49922d,_0x243c77){return _0x2962c5(_0x49922d,_0x243c77- -0x15);}this[_0x189896(-0x8e,-0xc)]['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x127932){function _0x3b10ad(_0xb60fcb,_0x35d723){return _0x59248e(_0x35d723- -0x320,_0xb60fcb);}function _0x3d6093(_0x5613f8,_0x2f954d){return _0x59248e(_0x2f954d- -0x29f,_0x5613f8);}if(!this[_0x3b10ad(0x42,0x16)]||!this['canvas'])return;this['mouse_down']&&(this['canvas'][_0x3b10ad(0xc,0xe)][_0x3b10ad(0x10c,0xda)]='hidden',this[_0x3b10ad(0x4c,0x8e)]=!![]);}['_onMouseUpEvent'](_0x4be4d2){function _0x443e88(_0x13fd15,_0x42b256){return _0x2962c5(_0x13fd15,_0x42b256-0x6);}function _0x136b0b(_0xe286b5,_0x44611d){return _0x59248e(_0x44611d- -0x126,_0xe286b5);}if(!this['show']||!this['canvas'])return;this[_0x443e88(-0x79,0xf)]['off'](mars3d__namespace[_0x443e88(-0x7b,-0x16)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x136b0b(0x1d8,0x25e)]&&this['mouse_move']&&this[_0x443e88(0x12,0x8b)](),this['canvas']['style'][_0x443e88(0x94,0x2c)]='visible',this['mouse_down']=![],this['mouse_move']=![];}[_0x59248e(0x346,0x341)](_0x291443){this[_0x2e194d(-0x6e,-0xb2)]();function _0x2e194d(_0x3a413b,_0x43b5ae){return _0x59248e(_0x3a413b- -0x49f,_0x43b5ae);}this[_0x554181(0x2b4,0x2ef)]=_0x291443,this['windField']['setDate'](_0x291443);function _0x554181(_0x49d638,_0x3477b9){return _0x2962c5(_0x3477b9,_0x49d638-0x2a5);}this['redraw']();}[_0x59248e(0x459,0x41a)](){function _0x47535c(_0x28f3b7,_0x53369e){return _0x59248e(_0x28f3b7- -0x59,_0x53369e);}if(!this[_0x5cddf1(0xeb,0xff)])return;function _0x5cddf1(_0x1b4d80,_0x3c11fe){return _0x59248e(_0x1b4d80- -0x24b,_0x3c11fe);}this[_0x47535c(0x396,0x3b0)]['setOptions'](this['options']),this[_0x5cddf1(0x131,0x12d)]();}['update'](){if(this['_updateIng'])return;function _0x1a7235(_0xfaf08d,_0x225f90){return _0x59248e(_0x225f90- -0x36b,_0xfaf08d);}function _0x5ea46a(_0x1b1fe6,_0x34b3a7){return _0x2962c5(_0x34b3a7,_0x1b1fe6- -0x10d);}this[_0x1a7235(-0x34,-0x3c)]=!![];if(this[_0x5ea46a(-0xe6,-0x74)])this['windField'][_0x1a7235(0x1b,0x11)]();else{const _0x49353b=this[_0x5ea46a(-0xf2,-0x77)]['getParticles']();this['_drawLines'](_0x49353b);}this['_updateIng']=![];}['_drawLines'](_0x66ad09){this['_canvasParticles']=_0x66ad09,this['canvasContext'][_0x6a9478(-0x16f,-0x13e)]=_0x6a9478(-0x79,-0xc8),this[_0x1d91c(-0x199,-0x1d9)][_0x1d91c(-0x2b1,-0x260)](0x0,0x0,this['canvasWidth'],this[_0x6a9478(-0x80,0x4)]),this[_0x6a9478(-0xad,-0x6f)]['globalCompositeOperation']='lighter',this['canvasContext']['globalAlpha']=0.9;function _0x6a9478(_0x5a32e1,_0x3c97ba){return _0x59248e(_0x5a32e1- -0x4b6,_0x3c97ba);}function _0x1d91c(_0x2a4b93,_0x41d783){return _0x59248e(_0x41d783- -0x5e2,_0x2a4b93);}const _0x52dfc7=this['_map']['scene']['mode']!==Cesium[_0x1d91c(-0x2e2,-0x2b2)]['SCENE3D'],_0x171d57=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x332d5f=0x0,_0x21934f=_0x66ad09['length'];_0x332d5f<_0x21934f;_0x332d5f++){const _0x177cd9=_0x66ad09[_0x332d5f],_0x106ed5=this['_tomap'](_0x177cd9,_0x177cd9['lng'],_0x177cd9[_0x6a9478(-0xac,-0x122)],_0x177cd9[_0x1d91c(-0x260,-0x23d)]),_0x118212=this['_tomap'](_0x177cd9,_0x177cd9[_0x6a9478(-0xb5,-0xb3)],_0x177cd9[_0x1d91c(-0x160,-0x1da)],_0x177cd9['talt']);if(!_0x106ed5||!_0x118212)continue;if(_0x52dfc7&&Math['abs'](_0x106ed5[0x0]-_0x118212[0x0])>=_0x171d57)continue;this['canvasContext']['beginPath'](),this['canvasContext'][_0x1d91c(-0x16d,-0x18c)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this['_colorRamp']['getColor'](_0x177cd9['speed']),this['canvasContext']['moveTo'](_0x106ed5[0x0],_0x106ed5[0x1]),this['canvasContext']['lineTo'](_0x118212[0x0],_0x118212[0x1]),this['canvasContext']['stroke']();}else{this[_0x1d91c(-0x163,-0x1d9)][_0x6a9478(-0x61,-0x56)](),this['canvasContext'][_0x6a9478(-0x60,-0xcb)]=this[_0x6a9478(-0x60,-0xdd)],this['canvasContext']['strokeStyle']=this[_0x1d91c(-0x1dd,-0x24d)];for(let _0x650120=0x0,_0x591887=_0x66ad09[_0x6a9478(-0x93,-0xef)];_0x650120<_0x591887;_0x650120++){const _0x2eac29=_0x66ad09[_0x650120],_0xc4d4c8=this[_0x1d91c(-0x174,-0x1b6)](_0x2eac29,_0x2eac29[_0x1d91c(-0x2f8,-0x2b0)],_0x2eac29['lat'],_0x2eac29[_0x1d91c(-0x29b,-0x23d)]),_0x2749d8=this[_0x1d91c(-0x1ee,-0x1b6)](_0x2eac29,_0x2eac29[_0x1d91c(-0x262,-0x1e1)],_0x2eac29['tlat'],_0x2eac29['talt']);if(!_0xc4d4c8||!_0x2749d8)continue;if(_0x52dfc7&&Math[_0x1d91c(-0x116,-0x196)](_0xc4d4c8[0x0]-_0x2749d8[0x0])>=_0x171d57)continue;this[_0x1d91c(-0x188,-0x1d9)][_0x1d91c(-0x26d,-0x280)](_0xc4d4c8[0x0],_0xc4d4c8[0x1]),this[_0x6a9478(-0xad,-0x1e)]['lineTo'](_0x2749d8[0x0],_0x2749d8[0x1]);}this['canvasContext'][_0x1d91c(-0x1f4,-0x276)]();}}['_tomap'](_0x4698b1,_0x48d406,_0xb4ff1e,_0x2af3f5){const _0x340c14=Cesium['Cartesian3']['fromDegrees'](_0x48d406,_0xb4ff1e,_0x2af3f5??this['fixedHeight']),_0x45c015=this[_0x1ce2bc(-0x20,0x10)][_0x1ce2bc(-0x15,0x3)];function _0x1ce2bc(_0xfaf05d,_0x4854ce){return _0x2962c5(_0x4854ce,_0xfaf05d- -0x29);}if(_0x45c015[_0x59222f(-0x2a6,-0x2de)]===Cesium['SceneMode']['SCENE3D']){const _0xb8e619=new Cesium[(_0x59222f(-0x1ee,-0x195))](_0x45c015[_0x59222f(-0x201,-0x276)][_0x59222f(-0x1d3,-0x1d5)],_0x45c015['camera'][_0x59222f(-0x1ed,-0x1ea)]),_0x586b9f=_0xb8e619['isPointVisible'](_0x340c14);if(!_0x586b9f)return _0x4698b1['age']=0x0,null;}function _0x59222f(_0x1d3d67,_0x5f2b7b){return _0x2962c5(_0x5f2b7b,_0x1d3d67- -0x22d);}const _0x19e4d9=mars3d__namespace[_0x1ce2bc(-0x44,-0xb2)]['toWindowCoordinates'](this['_map'][_0x59222f(-0x219,-0x1a0)],_0x340c14);return _0x19e4d9?[_0x19e4d9['x'],_0x19e4d9['y']]:null;}[_0x2962c5(0x88,0x5d)](){function _0x2b678a(_0x12ff00,_0x5de110){return _0x2962c5(_0x12ff00,_0x5de110- -0x97);}function _0x5a848f(_0x5be630,_0x13448e){return _0x2962c5(_0x13448e,_0x5be630-0x151);}this[_0x2b678a(-0x1,-0x7c)][_0x5a848f(0x1ae,0x22f)](),delete this[_0x5a848f(0x160,0x112)];}['initWorker'](){this['worker']=new Worker(this[_0x2858a5(-0x177,-0x19d)][_0x57187c(0xad,0xe3)]);function _0x2858a5(_0x502404,_0x1c073d){return _0x59248e(_0x502404- -0x563,_0x1c073d);}function _0x57187c(_0x2c854f,_0x24be70){return _0x2962c5(_0x24be70,_0x2c854f-0x86);}this['worker'][_0x2858a5(-0x1e8,-0x168)]=_0x4a3cd5=>{this[_0x26f488(-0x5e,-0x20)](_0x4a3cd5['data']['particles']);function _0x26f488(_0x47e14e,_0x1a69ad){return _0x2858a5(_0x1a69ad-0x1d3,_0x47e14e);}this['_updateIng2']=![];},this[_0x57187c(0xa1,0xec)]={'init':_0x446b3d=>{const _0x453a08={};_0x453a08['type']='init';function _0x293ea1(_0x4083e0,_0x3982e6){return _0x2858a5(_0x4083e0-0x419,_0x3982e6);}function _0x273e67(_0x3d3556,_0x44a3bd){return _0x57187c(_0x3d3556-0x1c,_0x44a3bd);}_0x453a08[_0x293ea1(0x2a2,0x2d8)]=_0x446b3d,this[_0x293ea1(0x2b1,0x2a2)]['postMessage'](_0x453a08);},'setOptions':_0x2c476c=>{const _0x7672df={};_0x7672df['type']='setOptions',_0x7672df['options']=_0x2c476c;function _0x4acd0f(_0x5397c3,_0x2426fc){return _0x57187c(_0x2426fc-0xa7,_0x5397c3);}this[_0x4acd0f(0x1b7,0x154)]['postMessage'](_0x7672df);},'setDate':_0x2f1082=>{const _0x494f73={};_0x494f73[_0x54a881(-0x183,-0x176)]='setDate',_0x494f73[_0x3f3ff4(0x41f,0x46d)]=_0x2f1082;function _0x54a881(_0x105055,_0x4270d1){return _0x57187c(_0x4270d1- -0x1b5,_0x105055);}function _0x3f3ff4(_0x5111ed,_0x5e3469){return _0x2858a5(_0x5111ed-0x62c,_0x5e3469);}this['worker']['postMessage'](_0x494f73);},'update':()=>{if(this['_updateIng2'])return;function _0x7c2c3a(_0xf764c7,_0x2ecdae){return _0x2858a5(_0x2ecdae-0x300,_0xf764c7);}function _0x4c681c(_0x48deb0,_0x5ddd51){return _0x57187c(_0x48deb0-0x389,_0x5ddd51);}this[_0x7c2c3a(0x149,0x112)]=!![];const _0x27bb5b={};_0x27bb5b['type']='update',this[_0x7c2c3a(0x16b,0x198)]['postMessage'](_0x27bb5b);},'clear':()=>{const _0x2b69cc={};function _0x2e9ae1(_0x2a2035,_0x33e8a3){return _0x57187c(_0x33e8a3-0x41b,_0x2a2035);}_0x2b69cc['type']=_0x2e9ae1(0x54e,0x4fe),this['worker']['postMessage'](_0x2b69cc);}},this[_0x57187c(0xa1,0x9c)]['init'](this['options']);}}mars3d__namespace[_0x59248e(0x37e,0x305)]['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer'][_0x59248e(0x337,0x2c0)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x2962c5(-0x96,-0x22)]=WindLayer,exports['WindUtil']=WindUtil;const _0x347801={};_0x347801['value']=!![],Object['defineProperty'](exports,'__esModule',_0x347801);
15
15
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.8.5",
3
+ "version": "3.8.6",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "dist/mars3d-wind.js",
6
6
  "files": [
@@ -8,7 +8,7 @@
8
8
  ],
9
9
  "peerDependencies": {},
10
10
  "devDependencies": {
11
- "mars3d": "~3.8.5"
11
+ "mars3d": "~3.8.6"
12
12
  },
13
13
  "scripts": {
14
14
  "lint": "eslint ./src/**/*.{js,ts} --fix"