mars3d-wind 3.7.14 → 3.7.15

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.7.14
5
- * 编译日期:2024-05-16 17:31:22
4
+ * 版本信息:v3.7.15
5
+ * 编译日期:2024-05-21 21:44:35
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:免费公开版 ,2024-01-15
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(_0x4f124e,_0xfe8212){function _0x33a499(_0x43da70,_0x55b85c){return _0x29b8(_0x43da70- -0x21d,_0x55b85c);}function _0x390edb(_0x11b642,_0x45b907){return _0x29b8(_0x45b907- -0x16,_0x11b642);}const _0xa77f1d=_0x4f124e();while(!![]){try{const _0x4495e=-parseInt(_0x390edb(0xf6,0x11c))/0x1*(-parseInt(_0x390edb(0xe9,0x8d))/0x2)+parseInt(_0x390edb(0x1de,0x173))/0x3*(-parseInt(_0x390edb(0xaa,0x8e))/0x4)+parseInt(_0x390edb(0x2a,0x91))/0x5*(-parseInt(_0x33a499(-0x103,-0x18c))/0x6)+-parseInt(_0x33a499(-0x133,-0x1c0))/0x7+-parseInt(_0x33a499(-0x169,-0xe7))/0x8*(-parseInt(_0x390edb(0x1b1,0x12e))/0x9)+parseInt(_0x390edb(0x18d,0x15e))/0xa+parseInt(_0x33a499(-0x177,-0x111))/0xb;if(_0x4495e===_0xfe8212)break;else _0xa77f1d['push'](_0xa77f1d['shift']());}catch(_0x16369f){_0xa77f1d['push'](_0xa77f1d['shift']());}}}(_0xc996,0xbc37e));function _0x29b8(_0x51ae00,_0x21d5fd){const _0xc99648=_0xc996();return _0x29b8=function(_0x29b852,_0x5d3d36){_0x29b852=_0x29b852-0x96;let _0x57e9b3=_0xc99648[_0x29b852];return _0x57e9b3;},_0x29b8(_0x51ae00,_0x21d5fd);}function _interopNamespace(_0x624527){if(_0x624527&&_0x624527['__esModule'])return _0x624527;var _0x34cde8=Object['create'](null);function _0x67e546(_0x541c45,_0x43540f){return _0x29b8(_0x541c45- -0x213,_0x43540f);}_0x624527&&Object[_0x67e546(-0x15d,-0x180)](_0x624527)[_0x67e546(-0xa3,-0x88)](function(_0x51c0c4){function _0x366226(_0x5120a,_0x141277){return _0xc43204(_0x141277- -0x2f0,_0x5120a);}if(_0x51c0c4!==_0x366226(-0xc3,-0x5a)){var _0x471a94=Object['getOwnPropertyDescriptor'](_0x624527,_0x51c0c4);Object['defineProperty'](_0x34cde8,_0x51c0c4,_0x471a94['get']?_0x471a94:{'enumerable':!![],'get':function(){return _0x624527[_0x51c0c4];}});}});function _0xc43204(_0x3c7eca,_0x1fb011){return _0x29b8(_0x3c7eca-0xe6,_0x1fb011);}return _0x34cde8[_0x67e546(-0x63,-0x35)]=_0x624527,_0x34cde8;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$7=mars3d__namespace['Cesium'];function getU(_0x4baad1,_0x124d30){function _0x2bcd7d(_0x1cd3d1,_0x4ef9c3){return _0x29b8(_0x4ef9c3- -0x237,_0x1cd3d1);}const _0x509544=_0x4baad1*Math[_0x2bcd7d(-0x60,-0xa4)](Cesium$7['Math']['toRadians'](_0x124d30));return _0x509544;}function getV(_0x5e9362,_0x3b44f2){const _0x54abd5=_0x5e9362*Math['sin'](Cesium$7['Math']['toRadians'](_0x3b44f2));return _0x54abd5;}function getSpeed(_0x3c1076,_0x1ebe21){const _0x3ba3c6=Math['sqrt'](Math['pow'](_0x3c1076,0x2)+Math['pow'](_0x1ebe21,0x2));return _0x3ba3c6;}function getDirection(_0x18199e,_0x450c90){let _0x419cb9=Cesium$7['Math']['toDegrees'](Math['atan2'](_0x450c90,_0x18199e));return _0x419cb9+=_0x419cb9<0x0?0x168:0x0,_0x419cb9;}const _0x5734fe={};_0x5734fe[_0x573119(0x11e,0x123)]=null,_0x5734fe[_0x422f44(-0x17e,-0x16c)]=getU,_0x5734fe['getV']=getV,_0x5734fe['getSpeed']=getSpeed,_0x5734fe[_0x573119(-0x30,0x29)]=getDirection;var WindUtil=_0x5734fe;const Cesium$6=mars3d__namespace['Cesium'];function _0x573119(_0x33e9ce,_0x40e4cb){return _0x29b8(_0x40e4cb- -0x8a,_0x33e9ce);}class CustomPrimitive{constructor(_0x1f8f05){this['commandType']=_0x1f8f05['commandType'],this['geometry']=_0x1f8f05[_0x2114a4(0x20c,0x234)],this[_0x2e13c4(0x1b7,0x1a9)]=_0x1f8f05['attributeLocations'],this['primitiveType']=_0x1f8f05['primitiveType'],this[_0x2114a4(0x288,0x315)]=_0x1f8f05[_0x2e13c4(0x1bd,0x13e)],this['vertexShaderSource']=_0x1f8f05['vertexShaderSource'],this['fragmentShaderSource']=_0x1f8f05['fragmentShaderSource'],this['rawRenderState']=_0x1f8f05[_0x2114a4(0x21a,0x274)],this[_0x2e13c4(0x16a,0x1d2)]=_0x1f8f05['framebuffer'],this['outputTexture']=_0x1f8f05['outputTexture'],this[_0x2114a4(0x2d6,0x26c)]=_0x1f8f05[_0x2e13c4(0x20b,0x198)]??![],this['preExecute']=_0x1f8f05['preExecute'],this['show']=!![];function _0x2114a4(_0x21a71,_0x266dc3){return _0x573119(_0x266dc3,_0x21a71-0x1db);}this['commandToExecute']=undefined,this[_0x2e13c4(0x19d,0x196)]=undefined;function _0x2e13c4(_0x5d6611,_0x45005c){return _0x422f44(_0x45005c,_0x5d6611-0x36c);}this[_0x2114a4(0x2d6,0x311)]&&(this[_0x2e13c4(0x19d,0x16b)]=new Cesium$6['ClearCommand']({'color':new Cesium$6[(_0x2114a4(0x29f,0x2a9))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x2e13c4(0x16a,0x158)],'pass':Cesium$6['Pass'][_0x2e13c4(0x132,0x144)]}));}['createCommand'](_0x4c8259){function _0x3523e4(_0x11a3fe,_0x1227ab){return _0x573119(_0x1227ab,_0x11a3fe- -0x2ed);}function _0x2713f1(_0x5776d4,_0x581cb3){return _0x422f44(_0x581cb3,_0x5776d4-0x449);}switch(this[_0x3523e4(-0x20c,-0x24e)]){case'Draw':{const _0x53eef6=Cesium$6['VertexArray']['fromGeometry']({'context':_0x4c8259,'geometry':this['geometry'],'attributeLocations':this[_0x2713f1(0x294,0x235)],'bufferUsage':Cesium$6[_0x3523e4(-0x1ec,-0x1bb)][_0x3523e4(-0x278,-0x266)]}),_0x57af27={};_0x57af27[_0x3523e4(-0x1d2,-0x1a1)]=_0x4c8259,_0x57af27[_0x2713f1(0x294,0x26e)]=this[_0x3523e4(-0x246,-0x283)],_0x57af27[_0x3523e4(-0x1cc,-0x1b2)]=this['vertexShaderSource'],_0x57af27[_0x3523e4(-0x2da,-0x347)]=this['fragmentShaderSource'];const _0x402d3d=Cesium$6['ShaderProgram']['fromCache'](_0x57af27),_0x539afb=Cesium$6[_0x2713f1(0x26f,0x2f6)]['fromCache'](this[_0x2713f1(0x22c,0x1b7)]);return new Cesium$6['DrawCommand']({'primitiveType':this['primitiveType'],'shaderProgram':_0x402d3d,'vertexArray':_0x53eef6,'modelMatrix':Cesium$6[_0x3523e4(-0x2c8,-0x239)]['IDENTITY'],'renderState':_0x539afb,'uniformMap':this['uniformMap'],'castShadows':![],'receiveShadows':![],'framebuffer':this['framebuffer'],'pass':Cesium$6[_0x2713f1(0x213,0x248)]['OPAQUE'],'pickOnly':!![],'owner':this});}case'Compute':{const _0x57c019={};return _0x57c019['owner']=this,_0x57c019['fragmentShaderSource']=this['fragmentShaderSource'],_0x57c019[_0x3523e4(-0x240,-0x218)]=this[_0x3523e4(-0x240,-0x1b4)],_0x57c019[_0x3523e4(-0x1bb,-0x15f)]=this[_0x3523e4(-0x1bb,-0x1f0)],_0x57c019['persists']=!![],new Cesium$6[(_0x3523e4(-0x1f5,-0x188))](_0x57c019);}}}['setGeometry'](_0x4e5e27,_0x5f08c7){this['geometry']=_0x5f08c7;function _0x95473c(_0x338282,_0x5a3d9a){return _0x573119(_0x338282,_0x5a3d9a-0x266);}function _0x494895(_0xb65c5d,_0x251cbe){return _0x573119(_0x251cbe,_0xb65c5d- -0xc3);}const _0x5efe11=Cesium$6['VertexArray']['fromGeometry']({'context':_0x4e5e27,'geometry':this[_0x494895(-0x92,-0xe3)],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']});this[_0x95473c(0x270,0x2e4)]['vertexArray']=_0x5efe11;}['update'](_0x1457e8){function _0x677bc5(_0x4e9f6d,_0x5f33e6){return _0x573119(_0x4e9f6d,_0x5f33e6-0x2fa);}if(!this['show'])return;if(_0x1457e8[_0x677bc5(0x399,0x350)]!==Cesium$6[_0x149432(0x27d,0x309)]['SCENE3D'])return;!Cesium$6[_0x149432(0x360,0x301)](this['commandToExecute'])&&(this['commandToExecute']=this[_0x677bc5(0x32d,0x38b)](_0x1457e8[_0x149432(0x40c,0x39f)]));function _0x149432(_0x470d20,_0x4268ee){return _0x422f44(_0x470d20,_0x4268ee-0x4e0);}Cesium$6[_0x677bc5(0x325,0x377)](this['preExecute'])&&this[_0x149432(0x2b7,0x2c7)](),Cesium$6['defined'](this[_0x677bc5(0x307,0x387)])&&_0x1457e8[_0x677bc5(0x30c,0x311)]['push'](this[_0x149432(0x290,0x311)]),_0x1457e8[_0x149432(0x30c,0x29b)]['push'](this[_0x149432(0x2b2,0x302)]);}[_0x422f44(-0x1f4,-0x24c)](){return![];}['destroy'](){function _0x3a8433(_0x47cbca,_0x4b3995){return _0x422f44(_0x4b3995,_0x47cbca-0x664);}if(this[_0x3a8433(0x495,0x48b)]){var _0x121a98,_0x558e40;(_0x121a98=this[_0x3a8433(0x495,0x4aa)])!==null&&_0x121a98!==void 0x0&&_0x121a98[_0x3a8433(0x48c,0x4a6)]&&this[_0x3a8433(0x495,0x4e9)]['vertexArray']['destroy'](),(_0x558e40=this[_0x123496(0x44b,0x491)])!==null&&_0x558e40!==void 0x0&&_0x558e40['shaderProgram']&&this['clearCommand'][_0x123496(0x3c9,0x419)]['destroy'](),delete this['clearCommand'];}this['commandToExecute']&&(this['commandToExecute']['vertexArray']&&this['commandToExecute']['vertexArray']['destroy'](),this['commandToExecute']['shaderProgram']&&this['commandToExecute']['shaderProgram'][_0x123496(0x49b,0x42f)](),delete this[_0x123496(0x504,0x482)]);function _0x123496(_0x289427,_0x5f39b9){return _0x422f44(_0x289427,_0x5f39b9-0x660);}return Cesium$6['destroyObject'](this);}}const Cesium$5=mars3d__namespace['Cesium'],Util=(function(){function _0x1938c8(_0x241d15,_0x48f9b0){return _0x573119(_0x241d15,_0x48f9b0-0x287);}const _0x3ae11a=function(){function _0x461a2f(_0x541b3c,_0x30191e){return _0x29b8(_0x541b3c- -0x3a5,_0x30191e);}function _0x358dfc(_0x228f6c,_0x2915aa){return _0x29b8(_0x2915aa- -0x1b5,_0x228f6c);}const _0xfa52a8=new Cesium$5[(_0x461a2f(-0x23f,-0x271))]({'attributes':new Cesium$5[(_0x461a2f(-0x26c,-0x2ce))]({'position':new Cesium$5['GeometryAttribute']({'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['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])});return _0xfa52a8;},_0x3bb934=function(_0x268823,_0x9ef0f2){function _0x2cdfc0(_0x3f8724,_0x88734b){return _0x29b8(_0x3f8724-0x225,_0x88734b);}if(Cesium$5['defined'](_0x9ef0f2)){const _0x4e2713={};_0x4e2713[_0x2cdfc0(0x380,0x34d)]=_0x9ef0f2,_0x268823['source']=_0x4e2713;}const _0x22b35e=new Cesium$5['Texture'](_0x268823);return _0x22b35e;},_0x37e9aa=function(_0x514bdd,_0x129798,_0x1d25c8){const _0x3cab27={};function _0x6a2d96(_0x2dfbc7,_0x5b4f9b){return _0x29b8(_0x2dfbc7-0x1e2,_0x5b4f9b);}_0x3cab27[_0x6a2d96(0x387,0x375)]=_0x514bdd,_0x3cab27[_0x6a2d96(0x2ff,0x342)]=[_0x129798];function _0x31a6f3(_0x1cfe4b,_0x4d1b8f){return _0x29b8(_0x1cfe4b-0x2ba,_0x4d1b8f);}_0x3cab27[_0x6a2d96(0x2fe,0x2aa)]=_0x1d25c8;const _0x5bdd21=new Cesium$5[(_0x31a6f3(0x365,0x327))](_0x3cab27);return _0x5bdd21;},_0x25786e=function(_0x48829e){const _0x302c03=!![],_0xbd7ab7=![];function _0x265a11(_0x56c521,_0x37ae5f){return _0x29b8(_0x37ae5f-0x6c,_0x56c521);}const _0x11294d={};_0x11294d['viewport']=_0x48829e['viewport'],_0x11294d['depthTest']=_0x48829e[_0x265a11(0x210,0x1f0)],_0x11294d['depthMask']=_0x48829e[_0x265a11(0x1ff,0x1a4)],_0x11294d['blending']=_0x48829e['blending'];const _0x483a3f=_0x11294d;function _0x3b9836(_0x1372f5,_0x26a843){return _0x29b8(_0x1372f5-0x14,_0x26a843);}const _0x398c2a=Cesium$5['Appearance'][_0x265a11(0x12f,0x1aa)](_0x302c03,_0xbd7ab7,_0x483a3f);return _0x398c2a;},_0x5dfc91=function(_0x3790b4){const _0xd3d968={},_0x434851=Cesium$5['Math']['mod'](_0x3790b4['west'],Cesium$5['Math'][_0x1bfa27(0xc1,0xc3)]),_0x3d0419=Cesium$5[_0x3c6112(-0x14b,-0x166)]['mod'](_0x3790b4['east'],Cesium$5['Math']['TWO_PI']),_0x16b899=_0x3790b4[_0x1bfa27(0x150,0x1b0)];let _0x1e755e;function _0x3c6112(_0x5cd270,_0xc63b0e){return _0x29b8(_0x5cd270- -0x2ca,_0xc63b0e);}function _0x1bfa27(_0x2af615,_0xaf8d02){return _0x29b8(_0x2af615- -0x10,_0xaf8d02);}let _0x4d1ba6;_0x16b899>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0x1e755e=0x0,_0x4d1ba6=Cesium$5['Math']['TWO_PI']):_0x3d0419-_0x434851<_0x16b899?(_0x1e755e=_0x434851,_0x4d1ba6=_0x434851+_0x16b899):(_0x1e755e=_0x434851,_0x4d1ba6=_0x3d0419);_0xd3d968['lon']={'min':Cesium$5['Math']['toDegrees'](_0x1e755e),'max':Cesium$5['Math'][_0x1bfa27(0x139,0xde)](_0x4d1ba6)};const _0x583814=_0x3790b4[_0x3c6112(-0x151,-0x1d1)],_0x4c35ee=_0x3790b4['north'],_0x20d2f1=_0x3790b4['height'],_0x156bfb=_0x20d2f1>Cesium$5['Math']['PI']/0xc?_0x20d2f1/0x2:0x0;let _0x5030ea=Cesium$5[_0x3c6112(-0x14b,-0x162)][_0x1bfa27(0x17a,0x195)](_0x583814-_0x156bfb),_0x4c9c02=Cesium$5['Math']['clampToLatitudeRange'](_0x4c35ee+_0x156bfb);return _0x5030ea<-Cesium$5['Math']['PI_OVER_THREE']&&(_0x5030ea=-Cesium$5['Math']['PI_OVER_TWO']),_0x4c9c02>Cesium$5['Math']['PI_OVER_THREE']&&(_0x4c9c02=Cesium$5[_0x1bfa27(0x16f,0xe2)][_0x3c6112(-0x1b7,-0x13f)]),_0xd3d968[_0x3c6112(-0x205,-0x1f7)]={'min':Cesium$5['Math']['toDegrees'](_0x5030ea),'max':Cesium$5[_0x1bfa27(0x16f,0x17e)]['toDegrees'](_0x4c9c02)},_0xd3d968;},_0x2fb56e={};return _0x2fb56e['getFullscreenQuad']=_0x3ae11a,_0x2fb56e['createTexture']=_0x3bb934,_0x2fb56e['createFramebuffer']=_0x37e9aa,_0x2fb56e['createRawRenderState']=_0x25786e,_0x2fb56e[_0x1938c8(0x372,0x2fd)]=_0x5dfc91,_0x2fb56e;}());var segmentDraw_vert=_0x422f44(-0x22a,-0x21c),segmentDraw_frag='uniform\x20sampler2D\x20colorTable;\x0a\x0ain\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20out_FragColor\x20=\x20texture(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}\x0a',fullscreen_vert=_0x422f44(-0x1e4,-0x1bb),trailDraw_frag=_0x422f44(-0x1dd,-0x15f),screenDraw_frag='uniform\x20sampler2D\x20trailsColorTexture;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture(trailsColorTexture,\x20textureCoordinate);\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20trailsColor;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x0a}\x0a';const Cesium$4=mars3d__namespace['Cesium'];class ParticlesRendering{constructor(_0x305083,_0x4a8eab,_0x10d9e8,_0x3a2e7b,_0x160f74){function _0x408da5(_0x37f528,_0x3dd825){return _0x573119(_0x37f528,_0x3dd825-0x392);}this[_0x271ada(-0xc9,-0xaf)](_0x305083,_0x4a8eab,_0x10d9e8['colors']);function _0x271ada(_0x3bdd69,_0x4d07c3){return _0x573119(_0x4d07c3,_0x3bdd69- -0x186);}this[_0x408da5(0x3ca,0x427)](_0x305083),this[_0x408da5(0x490,0x458)](_0x305083,_0x10d9e8,_0x3a2e7b,_0x160f74);}[_0x573119(0x154,0xbd)](_0xc366a9,_0x3c42f1,_0x4bd73d){function _0xdf6186(_0x2fcf9b,_0x5c7a18){return _0x422f44(_0x5c7a18,_0x2fcf9b-0x4);}const _0x5e6f78={};_0x5e6f78['context']=_0xc366a9,_0x5e6f78['width']=_0xc366a9['drawingBufferWidth'],_0x5e6f78['height']=_0xc366a9['drawingBufferHeight'],_0x5e6f78['pixelFormat']=Cesium$4[_0x28d3cb(0xb4,0xb8)]['RGBA'],_0x5e6f78['pixelDatatype']=Cesium$4['PixelDatatype']['UNSIGNED_BYTE'];const _0x4ae991=_0x5e6f78,_0xeaf840={};_0xeaf840['context']=_0xc366a9,_0xeaf840['width']=_0xc366a9['drawingBufferWidth'],_0xeaf840['height']=_0xc366a9['drawingBufferHeight'],_0xeaf840[_0x28d3cb(0x155,0x18f)]=Cesium$4['PixelFormat']['DEPTH_COMPONENT'],_0xeaf840['pixelDatatype']=Cesium$4[_0xdf6186(-0x1d5,-0x22d)][_0xdf6186(-0x1f2,-0x19b)];function _0x28d3cb(_0x59cf4a,_0x220d3e){return _0x573119(_0x220d3e,_0x59cf4a-0x3c);}const _0x16e4fc=_0xeaf840,_0xcc6fc=_0x4bd73d['length'],_0xffdcfa=new Float32Array(_0xcc6fc*0x3);for(let _0x1f4620=0x0;_0x1f4620<_0xcc6fc;_0x1f4620++){const _0x40e352=Cesium$4['Color']['fromCssColorString'](_0x4bd73d[_0x1f4620]);_0xffdcfa[0x3*_0x1f4620]=_0x40e352[_0xdf6186(-0x166,-0x176)],_0xffdcfa[0x3*_0x1f4620+0x1]=_0x40e352[_0x28d3cb(0x16b,0x1b2)],_0xffdcfa[0x3*_0x1f4620+0x2]=_0x40e352[_0x28d3cb(0xa8,0x11)];}const _0x14eb06={'context':_0xc366a9,'width':_0xcc6fc,'height':0x1,'pixelFormat':Cesium$4[_0xdf6186(-0x1e0,-0x218)]['RGB'],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4['TextureMinificationFilter']['LINEAR'],'magnificationFilter':Cesium$4[_0xdf6186(-0x140,-0x173)]['LINEAR']})};this[_0xdf6186(-0x1c9,-0x249)]={'segmentsColor':Util[_0xdf6186(-0x17e,-0x169)](_0x4ae991),'segmentsDepth':Util['createTexture'](_0x16e4fc),'currentTrailsColor':Util[_0xdf6186(-0x17e,-0x13b)](_0x4ae991),'currentTrailsDepth':Util['createTexture'](_0x16e4fc),'nextTrailsColor':Util[_0x28d3cb(0x116,0x93)](_0x4ae991),'nextTrailsDepth':Util['createTexture'](_0x16e4fc),'colorTable':Util['createTexture'](_0x14eb06,_0xffdcfa)};}['createRenderingFramebuffers'](_0x474255){function _0x3c6617(_0x12c949,_0x1e3fdd){return _0x573119(_0x1e3fdd,_0x12c949- -0x1d3);}function _0x168900(_0x32dc18,_0x570c2a){return _0x422f44(_0x570c2a,_0x32dc18-0x157);}this[_0x168900(-0xea,-0x140)]={'segments':Util[_0x3c6617(-0xf1,-0xcf)](_0x474255,this['textures']['segmentsColor'],this[_0x168900(-0x76,-0xa)]['segmentsDepth']),'currentTrails':Util[_0x168900(-0x23,0x2)](_0x474255,this['textures'][_0x168900(-0x53,-0x24)],this['textures']['currentTrailsDepth']),'nextTrails':Util['createFramebuffer'](_0x474255,this['textures']['nextTrailsColor'],this[_0x168900(-0x76,-0x77)]['nextTrailsDepth'])};}['createSegmentsGeometry'](_0x37940f){const _0x524698=0x4;let _0x5b5700=[];for(let _0x3be88d=0x0;_0x3be88d<_0x37940f[_0x2b4b63(-0x26f,-0x2e4)];_0x3be88d++){for(let _0x997826=0x0;_0x997826<_0x37940f['particlesTextureSize'];_0x997826++){for(let _0x41fe25=0x0;_0x41fe25<_0x524698;_0x41fe25++){_0x5b5700[_0x1ddf47(-0x9f,-0x108)](_0x3be88d/_0x37940f[_0x2b4b63(-0x26f,-0x1f3)]),_0x5b5700[_0x1ddf47(-0xa8,-0x108)](_0x997826/_0x37940f['particlesTextureSize']);}}}_0x5b5700=new Float32Array(_0x5b5700);let _0xc33c8d=[];const _0x43aa4b=[-0x1,0x1],_0x3c9ff1=[-0x1,0x1];for(let _0x5107cc=0x0;_0x5107cc<_0x37940f[_0x2b4b63(-0x2c9,-0x336)];_0x5107cc++){for(let _0x1b5d4e=0x0;_0x1b5d4e<_0x524698/0x2;_0x1b5d4e++){for(let _0x29b819=0x0;_0x29b819<_0x524698/0x2;_0x29b819++){_0xc33c8d['push'](_0x43aa4b[_0x1b5d4e]),_0xc33c8d['push'](_0x3c9ff1[_0x29b819]),_0xc33c8d['push'](0x0);}}}_0xc33c8d=new Float32Array(_0xc33c8d);const _0x225a6b=0x6*_0x37940f['maxParticles'],_0x3b7e69=new Uint32Array(_0x225a6b);function _0x1ddf47(_0x3b8803,_0x3839fe){return _0x422f44(_0x3b8803,_0x3839fe-0x124);}function _0x2b4b63(_0x4a7f27,_0x200758){return _0x422f44(_0x200758,_0x4a7f27- -0xd5);}for(let _0x1dc7cc=0x0,_0x4ea710=0x0,_0x255300=0x0;_0x1dc7cc<_0x37940f['maxParticles'];_0x1dc7cc++){_0x3b7e69[_0x4ea710++]=_0x255300+0x0,_0x3b7e69[_0x4ea710++]=_0x255300+0x1,_0x3b7e69[_0x4ea710++]=_0x255300+0x2,_0x3b7e69[_0x4ea710++]=_0x255300+0x2,_0x3b7e69[_0x4ea710++]=_0x255300+0x1,_0x3b7e69[_0x4ea710++]=_0x255300+0x3,_0x255300+=0x4;}const _0x16596c=new Cesium$4['Geometry']({'attributes':new Cesium$4[(_0x2b4b63(-0x282,-0x2bb))]({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4[_0x1ddf47(-0x32,-0x32)]['FLOAT'],'componentsPerAttribute':0x2,'values':_0x5b5700}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':_0xc33c8d})}),'indices':_0x3b7e69});return _0x16596c;}[_0x573119(0xc1,0xc6)](_0x42919a,_0x17878d,_0x3a98d4,_0x372a7a){const _0xdee42f=this,_0xcdf7d9={};_0xcdf7d9['st']=0x0,_0xcdf7d9['normal']=0x1;const _0x153284={};_0x153284[_0x4584c9(-0xa,-0x9a)]=[segmentDraw_vert];const _0x462eee={};_0x462eee['sources']=[segmentDraw_frag];const _0x13ac28={};_0x13ac28['enabled']=!![];const _0x4ace33={};function _0x59a6a6(_0x16bce7,_0x5b8659){return _0x422f44(_0x5b8659,_0x16bce7-0x6a0);}_0x4ace33['viewport']=undefined,_0x4ace33[_0x4584c9(-0x49,0x5)]=_0x13ac28,_0x4ace33['depthMask']=!![];const _0x2c74f0={};_0x2c74f0[_0x4584c9(-0x69,-0x37)]=0x0,_0x2c74f0['st']=0x1;const _0x2146ca={};_0x2146ca['defines']=['DISABLE_GL_POSITION_LOG_DEPTH'],_0x2146ca['sources']=[fullscreen_vert];const _0xbf838a={};_0xbf838a[_0x59a6a6(0x4de,0x456)]=[_0x59a6a6(0x495,0x4be)],_0xbf838a['sources']=[trailDraw_frag];const _0x1db20c={};_0x1db20c['position']=0x0,_0x1db20c['st']=0x1;const _0x7b133b={};_0x7b133b['defines']=['DISABLE_GL_POSITION_LOG_DEPTH'],_0x7b133b[_0x4584c9(-0xe7,-0x9a)]=[fullscreen_vert];const _0x602f8d={};function _0x4584c9(_0x23bc11,_0x5678c8){return _0x573119(_0x23bc11,_0x5678c8- -0xf5);}_0x602f8d['defines']=[_0x4584c9(-0x56,-0xa4)],_0x602f8d[_0x59a6a6(0x49f,0x429)]=[screenDraw_frag];const _0x4946ce={};_0x4946ce[_0x59a6a6(0x51f,0x4df)]=![];const _0x2235df={};_0x2235df[_0x59a6a6(0x51f,0x59b)]=!![],this[_0x4584c9(-0x10a,-0x7a)]={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0xcdf7d9,'geometry':this[_0x59a6a6(0x53a,0x4ea)](_0x17878d),'primitiveType':Cesium$4['PrimitiveType'][_0x4584c9(0x80,-0x1)],'uniformMap':{'currentParticlesPosition':function(){return _0x372a7a['particlesTextures']['currentParticlesPosition'];},'postProcessingPosition':function(){function _0x511067(_0x78d9f0,_0x312376){return _0x59a6a6(_0x78d9f0- -0x6d3,_0x312376);}return _0x372a7a['particlesTextures'][_0x511067(-0x213,-0x262)];},'postProcessingSpeed':function(){function _0x599e27(_0x32b6ab,_0x3bf760){return _0x59a6a6(_0x3bf760- -0x448,_0x32b6ab);}return _0x372a7a['particlesTextures'][_0x599e27(-0x14,0x45)];},'colorTable':function(){function _0x32d3d6(_0x386ab3,_0x2b3b0f){return _0x59a6a6(_0x2b3b0f- -0x2c3,_0x386ab3);}function _0x57809a(_0x1c108e,_0x104710){return _0x4584c9(_0x1c108e,_0x104710-0x4e3);}return _0xdee42f[_0x57809a(0x4c6,0x47d)][_0x57809a(0x4a3,0x4fb)];},'aspect':function(){return _0x42919a['drawingBufferWidth']/_0x42919a['drawingBufferHeight'];},'pixelSize':function(){function _0xc943ff(_0x3e3947,_0x2366a6){return _0x4584c9(_0x3e3947,_0x2366a6- -0x182);}return _0x3a98d4[_0xc943ff(-0xc4,-0x149)];},'lineWidth':function(){function _0x14f57e(_0xad14d,_0x59d05a){return _0x59a6a6(_0x59d05a- -0x82,_0xad14d);}return _0x17878d[_0x14f57e(0x550,0x4c6)];},'particleHeight':function(){return _0x17878d['particleHeight'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x153284),'fragmentShaderSource':new Cesium$4[(_0x4584c9(-0xa3,-0x61))](_0x462eee),'rawRenderState':Util['createRawRenderState'](_0x4ace33),'framebuffer':this[_0x59a6a6(0x45f,0x3f9)][_0x4584c9(-0x4b,-0x29)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x59a6a6(0x56e,0x5bd),'attributeLocations':_0x2c74f0,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function(){return _0xdee42f['textures']['segmentsColor'];},'segmentsDepthTexture':function(){return _0xdee42f['textures']['segmentsDepth'];},'currentTrailsColor':function(){function _0x5d84d8(_0x385f53,_0x217334){return _0x4584c9(_0x385f53,_0x217334- -0x234);}function _0x2677bb(_0x4f31e3,_0x672c3c){return _0x59a6a6(_0x4f31e3- -0x86,_0x672c3c);}return _0xdee42f[_0x2677bb(0x3d9,0x3e7)][_0x2677bb(0x3d2,0x38e)]['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0x1df087(_0x4d269d,_0xa13b93){return _0x59a6a6(_0xa13b93- -0x2a2,_0x4d269d);}return _0xdee42f['framebuffers'][_0x1df087(0x1be,0x1b6)]['depthTexture'];},'fadeOpacity':function(){return _0x17878d['fadeOpacity'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x2146ca),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0xbf838a),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction'][_0x4584c9(-0x44,0x2f)]},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function(){function _0x1d3ec6(_0x5c97f7,_0x414ef7){return _0x4584c9(_0x414ef7,_0x5c97f7-0x409);}const _0x30b2ba=_0xdee42f['framebuffers']['currentTrails'];function _0x37dd98(_0x2e3a27,_0xa285ca){return _0x4584c9(_0x2e3a27,_0xa285ca-0x234);}_0xdee42f['framebuffers'][_0x1d3ec6(0x328,0x381)]=_0xdee42f['framebuffers'][_0x1d3ec6(0x41e,0x445)],_0xdee42f['framebuffers']['nextTrails']=_0x30b2ba,_0xdee42f['primitives']['trails'][_0x37dd98(0x1f5,0x1bd)]['framebuffer']=_0xdee42f[_0x1d3ec6(0x32f,0x2c4)][_0x1d3ec6(0x41e,0x403)],_0xdee42f['primitives'][_0x1d3ec6(0x325,0x394)][_0x37dd98(0x139,0x1cc)][_0x37dd98(0x1db,0x199)]=_0xdee42f['framebuffers'][_0x1d3ec6(0x41e,0x4a7)];}}),'screen':new CustomPrimitive({'commandType':_0x4584c9(0x3c,0x35),'attributeLocations':_0x1db20c,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'trailsColorTexture':function(){function _0x4d2f47(_0x426618,_0x599eb2){return _0x4584c9(_0x426618,_0x599eb2- -0x1d1);}function _0x2bc01a(_0x586718,_0x3992fa){return _0x4584c9(_0x586718,_0x3992fa- -0x256);}return _0xdee42f[_0x4d2f47(-0x2d9,-0x2ab)]['nextTrails'][_0x4d2f47(-0x2b2,-0x222)](0x0);},'trailsDepthTexture':function(){function _0x266e4b(_0xcf4146,_0x5d71ba){return _0x59a6a6(_0xcf4146- -0x70,_0x5d71ba);}function _0x5cd5a2(_0x1216b7,_0x18e829){return _0x59a6a6(_0x1216b7- -0x751,_0x18e829);}return _0xdee42f[_0x266e4b(0x3ef,0x438)][_0x5cd5a2(-0x203,-0x261)][_0x266e4b(0x466,0x4e7)];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x7b133b),'fragmentShaderSource':new Cesium$4[(_0x4584c9(0x36,-0x61))](_0x602f8d),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':_0x4946ce,'depthMask':!![],'blending':_0x2235df}),'framebuffer':undefined})};}}var getWind_frag=_0x573119(0x179,0xe7),updateSpeed_frag=_0x422f44(-0x147,-0x1a5),updatePosition_frag='uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0ain\x20vec2\x20v_textureCoordinates;\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\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x0a\x20\x20\x20\x20float\x20term1\x20=\x20111132.92;\x0a\x20\x20\x20\x20float\x20term2\x20=\x20559.82\x20*\x20cos(2.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term3\x20=\x201.175\x20*\x20cos(4.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term4\x20=\x200.0023\x20*\x20cos(6.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20\x20\x20float\x20term5\x20=\x20111412.84\x20*\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20term6\x20=\x2093.5\x20*\x20cos(3.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term7\x20=\x200.118\x20*\x20cos(5.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avoid\x20updatePosition(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20windVectorInLonLatLev;\x0a\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}\x0a',postProcessingPosition_frag='uniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0auniform\x20float\x20dropRate;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0auniform\x20float\x20dropRateBump;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898,\x2078.233,\x204375.85453);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0,\x201.0);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0);\x0a\x20\x20\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20lev);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20\x20\x20return\x20particle.y\x20<\x20-90.0\x20||\x20particle.y\x20>\x2090.0;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20nextSpeed.a;\x0a\x0a\x20\x20\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec2\x20seed2\x20=\x20nextSpeed.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\x0a\x20\x20\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20\x20\x20if\x20(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(randomParticle,\x201.0);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}\x0a',postProcessingSpeed_frag=_0x422f44(-0x16b,-0x19c);const Cesium$3=mars3d__namespace['Cesium'];class ParticlesComputing{constructor(_0x547972,_0x14eae7,_0x5be6da,_0x28e1fb){this['data']=_0x14eae7,this[_0x3221f4(0x1c,0x35)](_0x547972,_0x14eae7);function _0x45c7e8(_0x59ae1f,_0x3b9d95){return _0x573119(_0x59ae1f,_0x3b9d95- -0x8d);}function _0x3221f4(_0x33799b,_0x34b8fd){return _0x573119(_0x34b8fd,_0x33799b- -0xd2);}this[_0x3221f4(0x3c,0x1b)](_0x547972,_0x5be6da,_0x28e1fb),this[_0x3221f4(0x63,0x4e)](_0x14eae7,_0x5be6da,_0x28e1fb);}['createWindTextures'](_0x2739c5,_0x366856){function _0x5ba74e(_0x11a5e9,_0x4484ea){return _0x573119(_0x4484ea,_0x11a5e9-0x248);}const _0x2ddd1b={'context':_0x2739c5,'width':_0x366856['dimensions'][_0x29ded8(0x31,0x6f)],'height':_0x366856['dimensions']['lat']*(_0x366856['dimensions']['lev']||0x1),'pixelFormat':Cesium$3['PixelFormat'][_0x29ded8(-0x2b,0x2d)],'pixelDatatype':Cesium$3['PixelDatatype'][_0x5ba74e(0x365,0x367)],'flipY':![],'sampler':new Cesium$3[(_0x5ba74e(0x31c,0x2e0))]({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0x5ba74e(0x2b6,0x2e4)],'magnificationFilter':Cesium$3[_0x5ba74e(0x360,0x321)]['NEAREST']})};function _0x29ded8(_0x38ecf6,_0x196824){return _0x573119(_0x196824,_0x38ecf6- -0xe6);}this[_0x5ba74e(0x341,0x3a0)]={'U':Util['createTexture'](_0x2ddd1b,_0x366856['U']['array']),'V':Util[_0x29ded8(-0xc,0x5f)](_0x2ddd1b,_0x366856['V']['array'])};}['createParticlesTextures'](_0xebc4af,_0xe3bcd1,_0x27a94f){function _0x295523(_0x5c8d82,_0x56f435){return _0x422f44(_0x56f435,_0x5c8d82-0x268);}const _0x53af57={'context':_0xebc4af,'width':_0xe3bcd1['particlesTextureSize'],'height':_0xe3bcd1['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3[_0x18bb47(0x9d,0x113)][_0x18bb47(0x137,0x122)],'flipY':![],'sampler':new Cesium$3[(_0x295523(0xe0,0x105))]({'minificationFilter':Cesium$3[_0x18bb47(0xca,0xb7)][_0x18bb47(0x88,0x102)],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};function _0x18bb47(_0x521f45,_0x4af9c3){return _0x573119(_0x4af9c3,_0x521f45-0x1a);}const _0xb3fa5d=this['randomizeParticles'](_0xe3bcd1[_0x295523(0x74,-0x20)],_0x27a94f),_0x1c13fb=new Float32Array(0x4*_0xe3bcd1[_0x295523(0x74,0x62)])[_0x295523(0x13c,0x151)](0x0);this[_0x18bb47(0xb6,0x10a)]={'particlesWind':Util[_0x295523(0xe6,0x162)](_0x53af57),'currentParticlesPosition':Util['createTexture'](_0x53af57,_0xb3fa5d),'nextParticlesPosition':Util[_0x295523(0xe6,0xd7)](_0x53af57,_0xb3fa5d),'currentParticlesSpeed':Util[_0x18bb47(0xf4,0x186)](_0x53af57,_0x1c13fb),'nextParticlesSpeed':Util[_0x295523(0xe6,0x96)](_0x53af57,_0x1c13fb),'postProcessingPosition':Util[_0x18bb47(0xf4,0xe2)](_0x53af57,_0xb3fa5d),'postProcessingSpeed':Util[_0x295523(0xe6,0xcb)](_0x53af57,_0x1c13fb)};}['randomizeParticles'](_0x2142a6,_0xb43061){const _0x1ea324=new Float32Array(0x4*_0x2142a6);function _0x3cdc71(_0x3ce12a,_0x250133){return _0x573119(_0x3ce12a,_0x250133-0x35a);}for(let _0xae4379=0x0;_0xae4379<_0x2142a6;_0xae4379++){_0x1ea324[0x4*_0xae4379]=Cesium$3['Math'][_0x5b9e8e(0x71,0xaa)](_0xb43061[_0x3cdc71(0x487,0x40f)]['x'],_0xb43061['lonRange']['y']),_0x1ea324[0x4*_0xae4379+0x1]=Cesium$3['Math'][_0x3cdc71(0x416,0x3c3)](_0xb43061['latRange']['x'],_0xb43061[_0x5b9e8e(0xd7,0x10a)]['y']),_0x1ea324[0x4*_0xae4379+0x2]=Cesium$3['Math']['randomBetween'](this[_0x5b9e8e(0xc3,0xf4)][_0x5b9e8e(0xf9,0x77)]['min'],this[_0x3cdc71(0x488,0x40d)]['lev']['max']),_0x1ea324[0x4*_0xae4379+0x3]=0x0;}function _0x5b9e8e(_0x12ef24,_0x58517f){return _0x573119(_0x12ef24,_0x58517f-0x41);}return _0x1ea324;}[_0x422f44(-0x182,-0x17d)](){function _0x2886f6(_0x292278,_0x24e7ac){return _0x573119(_0x292278,_0x24e7ac- -0x1d4);}function _0x4bc6a9(_0xeb3b37,_0x16d8f3){return _0x573119(_0x16d8f3,_0xeb3b37-0x3b0);}Object['keys'](this[_0x4bc6a9(0x44c,0x493)])[_0x4bc6a9(0x496,0x522)](_0x42b0f9=>{function _0x133f73(_0x49adf2,_0x481ff3){return _0x2886f6(_0x49adf2,_0x481ff3-0x93);}this['particlesTextures'][_0x42b0f9][_0x133f73(-0x18f,-0x116)]();});}['createComputingPrimitives'](_0x854613,_0x1614f8,_0x5446e7){const _0x32aed2=new Cesium$3['Cartesian3'](_0x854613['dimensions']['lon'],_0x854613['dimensions']['lat'],_0x854613['dimensions'][_0x16e310(0x195,0x179)]);function _0x16e310(_0x5d06a1,_0x18c3e8){return _0x422f44(_0x18c3e8,_0x5d06a1-0x3bb);}const _0x1231fc=new Cesium$3[(_0x1ea865(0x2de,0x2b5))](_0x854613['lon']['min'],_0x854613[_0x16e310(0x19a,0x17e)]['min'],_0x854613['lev']['min']),_0x1927f5=new Cesium$3['Cartesian3'](_0x854613['lon']['max'],_0x854613[_0x1ea865(0x1d0,0x238)]['max'],_0x854613['lev'][_0x16e310(0x273,0x238)]),_0x521813=new Cesium$3['Cartesian3']((_0x1927f5['x']-_0x1231fc['x'])/(_0x32aed2['x']-0x1),(_0x1927f5['y']-_0x1231fc['y'])/(_0x32aed2['y']-0x1),_0x32aed2['z']>0x1?(_0x1927f5['z']-_0x1231fc['z'])/(_0x32aed2['z']-0x1):0x1),_0x56701d=new Cesium$3['Cartesian2'](_0x854613['U']['min'],_0x854613['U']['max']),_0x28f43e=new Cesium$3['Cartesian2'](_0x854613['V']['min'],_0x854613['V']['max']),_0x2eb94e=this,_0x3cb1db={};_0x3cb1db['U']=function(){return _0x2eb94e['windTextures']['U'];},_0x3cb1db['V']=function(){return _0x2eb94e['windTextures']['V'];},_0x3cb1db[_0x1ea865(0x27e,0x300)]=function(){function _0x494f84(_0x5abbae,_0x5ced81){return _0x1ea865(_0x5abbae,_0x5ced81- -0x30d);}return _0x2eb94e['particlesTextures'][_0x494f84(-0x12,-0xd)];},_0x3cb1db[_0x1ea865(0x1ee,0x260)]=function(){return _0x32aed2;},_0x3cb1db['minimum']=function(){return _0x1231fc;},_0x3cb1db[_0x16e310(0x290,0x29d)]=function(){return _0x1927f5;},_0x3cb1db[_0x1ea865(0x30f,0x328)]=function(){return _0x521813;};const _0x4945ac={};_0x4945ac['sources']=[getWind_frag];const _0x2c69a0={};_0x2c69a0[_0x16e310(0x1ba,0x18d)]=[updateSpeed_frag];const _0xa00740={};_0xa00740['sources']=[updatePosition_frag];function _0x1ea865(_0x353429,_0x20385f){return _0x573119(_0x353429,_0x20385f-0x1fd);}const _0x4d0e2f={};_0x4d0e2f['sources']=[postProcessingPosition_frag];const _0x2180fe={};_0x2180fe['sources']=[postProcessingSpeed_frag],this[_0x1ea865(0x204,0x278)]={'getWind':new CustomPrimitive({'commandType':_0x1ea865(0x238,0x230),'uniformMap':_0x3cb1db,'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x4945ac),'outputTexture':this[_0x1ea865(0x298,0x299)]['particlesWind'],'preExecute':function(){function _0x353849(_0x204b5d,_0x4fbd2d){return _0x1ea865(_0x4fbd2d,_0x204b5d- -0xe1);}function _0x23c738(_0x130cce,_0x3a3599){return _0x16e310(_0x3a3599- -0x248,_0x130cce);}_0x2eb94e[_0x353849(0x197,0x1f7)][_0x353849(0x238,0x2b8)]['commandToExecute']['outputTexture']=_0x2eb94e[_0x353849(0x1b8,0x137)]['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':_0x16e310(0x192,0x201),'uniformMap':{'currentParticlesSpeed':function(){function _0x405547(_0x2d4c04,_0x3643fc){return _0x1ea865(_0x2d4c04,_0x3643fc- -0x2ba);}function _0x113435(_0x2b60bf,_0x48eea1){return _0x1ea865(_0x48eea1,_0x2b60bf-0x1b9);}return _0x2eb94e[_0x113435(0x452,0x3ee)][_0x405547(-0x3,-0x4a)];},'particlesWind':function(){function _0xc99196(_0x37f8ba,_0x179ca0){return _0x16e310(_0x37f8ba- -0x68,_0x179ca0);}return _0x2eb94e['particlesTextures'][_0xc99196(0x109,0x94)];},'uSpeedRange':function(){return _0x56701d;},'vSpeedRange':function(){return _0x28f43e;},'pixelSize':function(){return _0x5446e7['pixelSize'];},'speedFactor':function(){return _0x1614f8['speedFactor'];}},'fragmentShaderSource':new Cesium$3[(_0x1ea865(0x243,0x291))](_0x2c69a0),'outputTexture':this[_0x1ea865(0x2d5,0x299)][_0x16e310(0x1d0,0x211)],'preExecute':function(){const _0xdcf590=_0x2eb94e['particlesTextures']['currentParticlesSpeed'];function _0x2ab7c1(_0x145db6,_0x25b151){return _0x16e310(_0x25b151-0x50,_0x145db6);}_0x2eb94e['particlesTextures']['currentParticlesSpeed']=_0x2eb94e['particlesTextures']['postProcessingSpeed'],_0x2eb94e[_0x5fb413(0x4,-0xa)]['postProcessingSpeed']=_0xdcf590;function _0x5fb413(_0x47e98f,_0xeb1c1c){return _0x1ea865(_0x47e98f,_0xeb1c1c- -0x2a3);}_0x2eb94e['primitives'][_0x5fb413(0xb0,0x79)]['commandToExecute']['outputTexture']=_0x2eb94e[_0x2ab7c1(0x263,0x24b)]['nextParticlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function(){function _0x1bb33d(_0x4e17e7,_0x5c230c){return _0x1ea865(_0x5c230c,_0x4e17e7- -0x151);}return _0x2eb94e[_0x1bb33d(0x148,0x1aa)]['currentParticlesPosition'];},'currentParticlesSpeed':function(){function _0x194491(_0x4c2e30,_0x1e9120){return _0x16e310(_0x1e9120-0x252,_0x4c2e30);}return _0x2eb94e[_0x194491(0x478,0x44d)]['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0xa00740),'outputTexture':this['particlesTextures'][_0x16e310(0x19d,0x19d)],'preExecute':function(){function _0x3662da(_0x210ad5,_0x33bb66){return _0x1ea865(_0x33bb66,_0x210ad5- -0x3b4);}const _0x5dbd5c=_0x2eb94e[_0x1e4b77(0x9,-0x46)]['currentParticlesPosition'];function _0x1e4b77(_0x26c79a,_0x2aaf3f){return _0x16e310(_0x2aaf3f- -0x241,_0x26c79a);}_0x2eb94e[_0x1e4b77(-0x79,-0x46)][_0x3662da(-0xb4,-0xb3)]=_0x2eb94e['particlesTextures']['postProcessingPosition'],_0x2eb94e[_0x1e4b77(-0x14,-0x46)]['postProcessingPosition']=_0x5dbd5c,_0x2eb94e['primitives']['updatePosition']['commandToExecute']['outputTexture']=_0x2eb94e['particlesTextures'][_0x1e4b77(-0xdd,-0xa4)];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function(){function _0x1b84e2(_0x1bf8f1,_0x51c3b4){return _0x16e310(_0x51c3b4- -0x340,_0x1bf8f1);}return _0x2eb94e[_0x1b84e2(-0x192,-0x145)]['nextParticlesPosition'];},'nextParticlesSpeed':function(){function _0xa8fc0f(_0x4144f3,_0x3b88da){return _0x1ea865(_0x4144f3,_0x3b88da- -0xc5);}return _0x2eb94e[_0xa8fc0f(0x1c0,0x1d4)]['nextParticlesSpeed'];},'lonRange':function(){function _0x3faf0a(_0x31a518,_0x4f8417){return _0x1ea865(_0x31a518,_0x4f8417- -0x522);}return _0x5446e7[_0x3faf0a(-0x1e6,-0x270)];},'latRange':function(){return _0x5446e7['latRange'];},'randomCoefficient':function(){const _0x171534=Math['random']();return _0x171534;},'dropRate':function(){return _0x1614f8['dropRate'];},'dropRateBump':function(){function _0x5da5cd(_0x24e6af,_0x5b1486){return _0x1ea865(_0x5b1486,_0x24e6af-0x1b3);}return _0x1614f8[_0x5da5cd(0x466,0x3f5)];}},'fragmentShaderSource':new Cesium$3[(_0x1ea865(0x293,0x291))](_0x4d0e2f),'outputTexture':this[_0x16e310(0x1fb,0x28b)][_0x1ea865(0x1e9,0x279)],'preExecute':function(){function _0x124de7(_0x3f01ad,_0x30effa){return _0x1ea865(_0x3f01ad,_0x30effa-0x1d1);}_0x2eb94e['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=_0x2eb94e['particlesTextures'][_0x124de7(0x4a9,0x44a)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function(){function _0x47b31a(_0x3d44a9,_0x50aabc){return _0x16e310(_0x3d44a9-0x92,_0x50aabc);}return _0x2eb94e['particlesTextures'][_0x47b31a(0x26d,0x2a8)];},'nextParticlesSpeed':function(){return _0x2eb94e['particlesTextures']['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3[(_0x1ea865(0x205,0x291))](_0x2180fe),'outputTexture':this['particlesTextures']['postProcessingSpeed'],'preExecute':function(){function _0x40828f(_0x59fef8,_0x1ccb1d){return _0x1ea865(_0x59fef8,_0x1ccb1d- -0x271);}function _0x4a94e5(_0x38389d,_0xd346f1){return _0x16e310(_0x38389d-0x178,_0xd346f1);}_0x2eb94e[_0x40828f(-0x63,0x7)][_0x4a94e5(0x320,0x2db)]['commandToExecute']['outputTexture']=_0x2eb94e['particlesTextures']['postProcessingSpeed'];}})};}}const Cesium$2=mars3d__namespace[_0x573119(0x84,0x4f)];class ParticleSystem{constructor(_0x403b07,_0x5c5821,_0x299eeb,_0x993bba){this['context']=_0x403b07,_0x5c5821={..._0x5c5821};_0x5c5821['udata']&&_0x5c5821['vdata']&&(_0x5c5821['dimensions']={},_0x5c5821[_0x39fad9(0x40f,0x466)]['lon']=_0x5c5821['cols'],_0x5c5821['dimensions']['lat']=_0x5c5821['rows'],_0x5c5821[_0x39fad9(0x3fe,0x466)]['lev']=_0x5c5821[_0x36e2c5(0x7d,0x107)]||0x1,_0x5c5821[_0x39fad9(0x4f0,0x46e)]={},_0x5c5821[_0x39fad9(0x41a,0x46e)][_0x36e2c5(0xdf,0x5c)]=_0x5c5821['xmin'],_0x5c5821['lon']['max']=_0x5c5821['xmax'],_0x5c5821[_0x36e2c5(0x82,0x83)]={},_0x5c5821['lat']['min']=_0x5c5821['ymin'],_0x5c5821[_0x39fad9(0x401,0x392)][_0x39fad9(0x45f,0x46b)]=_0x5c5821[_0x39fad9(0x425,0x42e)],_0x5c5821[_0x36e2c5(0x7d,0x10c)]={},_0x5c5821['lev']['min']=_0x5c5821[_0x39fad9(0x36e,0x3ab)]??0x1,_0x5c5821['lev']['max']=_0x5c5821[_0x36e2c5(0xae,0x6f)]??0x1,_0x5c5821['U']={},_0x5c5821['U']['array']=new Float32Array(_0x5c5821['udata']),_0x5c5821['U'][_0x36e2c5(0xdf,0x119)]=_0x5c5821[_0x36e2c5(0x75,0x7b)]??Math['min'](..._0x5c5821[_0x36e2c5(0x103,0xc3)]),_0x5c5821['U']['max']=_0x5c5821['umax']??Math['max'](..._0x5c5821[_0x36e2c5(0x103,0xa0)]),_0x5c5821['V']={},_0x5c5821['V']['array']=new Float32Array(_0x5c5821[_0x39fad9(0x3c8,0x45c)]),_0x5c5821['V']['min']=_0x5c5821['vmin']??Math[_0x39fad9(0x378,0x3ef)](..._0x5c5821['vdata']),_0x5c5821['V'][_0x36e2c5(0x15b,0x1e2)]=_0x5c5821['vmax']??Math['max'](..._0x5c5821['vdata']));this[_0x36e2c5(0xfa,0x17a)]=_0x5c5821;function _0x39fad9(_0x3d79ee,_0x3d6079){return _0x422f44(_0x3d79ee,_0x3d6079-0x5b3);}this['options']=_0x299eeb;function _0x36e2c5(_0x43ff83,_0x28eb44){return _0x573119(_0x28eb44,_0x43ff83-0x47);}this[_0x36e2c5(0xa0,0x119)]=_0x993bba,this['particlesComputing']=new ParticlesComputing(this['context'],this[_0x39fad9(0x3f5,0x40a)],this[_0x36e2c5(0x15c,0xdd)],this['viewerParameters']),this[_0x36e2c5(0x133,0xc4)]=new ParticlesRendering(this['context'],this[_0x36e2c5(0xfa,0x14a)],this['options'],this[_0x39fad9(0x334,0x3b0)],this['particlesComputing']);}['canvasResize'](_0x1fa2ea){this[_0x354aff(0x101,0x153)][_0x4f66f8(0x24e,0x1fe)](),Object['keys'](this['particlesComputing'][_0x354aff(0x15c,0x1a3)])[_0x354aff(0x149,0x124)](_0x514114=>{function _0x526d37(_0x55eb9c,_0x213e42){return _0x4f66f8(_0x55eb9c-0x154,_0x213e42);}this[_0x526d37(0x361,0x34d)]['windTextures'][_0x514114]['destroy']();}),this[_0x4f66f8(0x25b,0x208)][_0x4f66f8(0x1fe,0x251)]['colorTable']['destroy'](),Object['keys'](this[_0x4f66f8(0x25b,0x2e4)]['framebuffers'])[_0x354aff(0x149,0x126)](_0x2f7902=>{function _0xf4c836(_0x15736c,_0x574125){return _0x4f66f8(_0x15736c- -0x33b,_0x574125);}this['particlesRendering'][_0xf4c836(-0x1b1,-0x13d)][_0x2f7902]['destroy']();});function _0x354aff(_0x5579ca,_0x1f0c42){return _0x422f44(_0x1f0c42,_0x5579ca-0x2bf);}this['context']=_0x1fa2ea;function _0x4f66f8(_0x1693c4,_0x296531){return _0x573119(_0x296531,_0x1693c4-0x16f);}this['particlesComputing']=new ParticlesComputing(this['context'],this[_0x354aff(0x116,0x186)],this[_0x354aff(0x178,0x186)],this[_0x354aff(0xbc,0x85)]),this['particlesRendering']=new ParticlesRendering(this[_0x354aff(0x17e,0xe9)],this[_0x354aff(0x116,0x113)],this['options'],this['viewerParameters'],this[_0x4f66f8(0x20d,0x266)]);}['clearFramebuffers'](){function _0x4c4a0f(_0x550d8b,_0x300010){return _0x422f44(_0x550d8b,_0x300010-0x69c);}const _0x3d98ec=new Cesium$2[(_0x3cd17e(0x52e,0x525))]({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass']['OPAQUE']});function _0x3cd17e(_0x4b5f53,_0xc3ba5e){return _0x422f44(_0x4b5f53,_0xc3ba5e-0x6be);}Object[_0x4c4a0f(0x3d5,0x46c)](this['particlesRendering'][_0x3cd17e(0x435,0x47d)])['forEach'](_0xe2c3b6=>{_0x3d98ec['framebuffer']=this['particlesRendering']['framebuffers'][_0xe2c3b6];function _0x3b3db4(_0x50cc7d,_0x1af82d){return _0x4c4a0f(_0x50cc7d,_0x1af82d- -0x57c);}_0x3d98ec['execute'](this[_0x3b3db4(0x4c,-0x21)]);});}[_0x573119(0x1d,0x57)](_0x286b84){this['clearFramebuffers']();function _0x1a8341(_0x55eb4e,_0x1c163){return _0x422f44(_0x1c163,_0x55eb4e-0x56f);}this['particlesComputing'][_0x50ec10(0x4f2,0x4d9)](),this[_0x50ec10(0x4b1,0x48f)][_0x1a8341(0x421,0x49c)](this[_0x50ec10(0x52e,0x5bc)],this['options'],this[_0x50ec10(0x46c,0x4ad)]);function _0x50ec10(_0x5d5ef5,_0xeb571c){return _0x422f44(_0xeb571c,_0x5d5ef5-0x66f);}if(_0x286b84){var _0x540576;const _0x343c09=this['particlesRendering']['createSegmentsGeometry'](this[_0x50ec10(0x528,0x494)]);this['particlesRendering']['primitives'][_0x50ec10(0x4df,0x549)]['geometry']=_0x343c09;const _0x4a748d=Cesium$2[_0x50ec10(0x526,0x549)]['fromGeometry']({'context':this['context'],'geometry':_0x343c09,'attributeLocations':this[_0x50ec10(0x4ff,0x558)]['primitives']['segments'][_0x50ec10(0x4ba,0x471)],'bufferUsage':Cesium$2[_0x50ec10(0x514,0x55a)]['STATIC_DRAW']});(_0x540576=this['particlesRendering'][_0x50ec10(0x48e,0x504)])!==null&&_0x540576!==void 0x0&&(_0x540576=_0x540576['segments'])!==null&&_0x540576!==void 0x0&&_0x540576[_0x1a8341(0x391,0x362)]&&(this[_0x1a8341(0x3ff,0x44b)][_0x50ec10(0x48e,0x4aa)][_0x50ec10(0x4df,0x4d3)][_0x1a8341(0x391,0x378)]['vertexArray']=_0x4a748d);}}['setOptions'](_0x11c4d4){let _0x3f7771=![];this['options']['maxParticles']!==_0x11c4d4[_0x115523(0xf7,0x140)]&&(_0x3f7771=!![]);Object['keys'](_0x11c4d4)['forEach'](_0x35710c=>{function _0x4dba3b(_0xbfd61c,_0x5844d6){return _0x115523(_0xbfd61c,_0x5844d6-0x288);}this[_0x4dba3b(0x3e5,0x475)][_0x35710c]=_0x11c4d4[_0x35710c];});function _0x115523(_0x985993,_0x5017e0){return _0x422f44(_0x985993,_0x5017e0-0x334);}this['refreshParticles'](_0x3f7771);}[_0x573119(0x3b,0xcb)](_0x750c4b){function _0x3a201a(_0x50bbc8,_0x515de2){return _0x573119(_0x50bbc8,_0x515de2-0xa);}function _0x4da32d(_0x29ce5b,_0x16bb5b){return _0x422f44(_0x16bb5b,_0x29ce5b- -0x2d);}Object[_0x4da32d(-0x25d,-0x265)](_0x750c4b)[_0x3a201a(0x169,0xf0)](_0x1ede49=>{this['viewerParameters'][_0x1ede49]=_0x750c4b[_0x1ede49];}),this[_0x4da32d(-0x232,-0x2c4)](![]);}[_0x573119(0x7c,0x2b)](){clearTimeout(this[_0x3e8f41(0x123,0x101)]),this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this[_0x1d7b32(0x4d5,0x533)]['windTextures'])[_0x1d7b32(0x51d,0x4e8)](_0x3dd43a=>{function _0x335062(_0x306cb0,_0x12985b){return _0x1d7b32(_0x12985b- -0x30,_0x306cb0);}this['particlesComputing'][_0x335062(0x590,0x500)][_0x3dd43a]['destroy']();}),this['particlesRendering'][_0x3e8f41(0x134,0xb7)][_0x1d7b32(0x544,0x587)][_0x3e8f41(0xab,0x53)]();function _0x1d7b32(_0x17ac50,_0x223640){return _0x573119(_0x223640,_0x17ac50-0x437);}function _0x3e8f41(_0x301398,_0x49eb96){return _0x422f44(_0x301398,_0x49eb96-0x284);}Object[_0x3e8f41(0xe8,0x54)](this[_0x3e8f41(0xbc,0x114)]['framebuffers'])[_0x3e8f41(0xb4,0x10e)](_0x486eaf=>{function _0x5d9a2d(_0x12eff9,_0x4abe45){return _0x3e8f41(_0x4abe45,_0x12eff9- -0x2de);}function _0x3b95a0(_0x3b73db,_0x2cd432){return _0x1d7b32(_0x2cd432- -0x94,_0x3b73db);}this[_0x5d9a2d(-0x1ca,-0x164)][_0x3b95a0(0x35f,0x3be)][_0x486eaf]['destroy']();});for(const _0x271b12 in this){delete this[_0x271b12];}}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0x573119(0x1e,0x37)][_0x573119(0x30,0xab)],_0x4604fb={};function _0x422f44(_0x283e25,_0x4ae221){return _0x29b8(_0x4ae221- -0x2e6,_0x283e25);}_0x4604fb[_0x422f44(-0x288,-0x224)]=0x1000,_0x4604fb['fixedHeight']=0x0,_0x4604fb[_0x573119(0x154,0xd5)]=0.996,_0x4604fb[_0x422f44(-0x15c,-0x129)]=0.003,_0x4604fb['dropRateBump']=0.01,_0x4604fb[_0x573119(0x1b9,0x125)]=0.5,_0x4604fb[_0x573119(0x133,0x104)]=0x2,_0x4604fb['colors']=['rgb(206,255,255)'];const DEF_OPTIONS=_0x4604fb;class WindLayer extends BaseLayer$1{constructor(_0xdfc919={}){_0xdfc919={...DEF_OPTIONS,..._0xdfc919},super(_0xdfc919),this['_setOptionsHook'](_0xdfc919);}get['layer'](){return this['primitives'];}get['data'](){function _0x346014(_0xc98e1a,_0x341fc3){return _0x573119(_0xc98e1a,_0x341fc3-0x154);}return this[_0x346014(0x1f4,0x1cd)];}set['data'](_0x150fbe){this['setData'](_0x150fbe);}get['colors'](){function _0x52014f(_0x2e2c1c,_0x5f4105){return _0x422f44(_0x5f4105,_0x2e2c1c-0x27);}return this[_0x52014f(-0x120,-0x177)]['colors'];}set[_0x422f44(-0x1db,-0x192)](_0x178b44){this[_0x2e6f33(0x2ef,0x35a)]['colors']=_0x178b44;if(this[_0x2e6f33(0x29a,0x322)]){const _0x271ded={};_0x271ded['colors']=_0x178b44,this[_0x2e6f33(0x2a3,0x322)]['setOptions'](_0x271ded);}function _0x4c481f(_0x1b5462,_0x3ad724){return _0x573119(_0x3ad724,_0x1b5462-0x118);}function _0x2e6f33(_0x544834,_0x1a2354){return _0x422f44(_0x544834,_0x1a2354-0x4a1);}this['resize']();}['_mountedHook'](){}['_addedHook'](){this[_0x5749c6(-0xf6,-0xaf)]=this[_0x30fa72(-0xde,-0x79)]['scene'],this['camera']=this[_0x30fa72(-0x35,-0x79)]['camera'],this['primitives']=new Cesium$1[(_0x30fa72(-0xa0,-0x24))](),this['_map'][_0x30fa72(0x45,-0x4f)]['primitives'][_0x30fa72(-0x4f,0xc)](this['primitives']),this[_0x5749c6(-0xaf,-0xc8)]={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0},this[_0x30fa72(0xe7,0x76)]=new Cesium$1[(_0x30fa72(-0xb2,-0xb5))](Cesium$1[_0x5749c6(-0xfe,-0x69)][_0x30fa72(-0x20,-0x5f)],0.99*0x615299),this['updateViewerParameters'](),window['addEventListener']('resize',this['resize']['bind'](this),![]);function _0x5749c6(_0x3ffdf8,_0x5c1943){return _0x422f44(_0x3ffdf8,_0x5c1943-0x13b);}this[_0x5749c6(-0x132,-0xbd)]=![];function _0x30fa72(_0x5419c1,_0x2b19a4){return _0x573119(_0x5419c1,_0x2b19a4- -0xc1);}this['mouse_move']=![],this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x5749c6(-0x128,-0x9a)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x5749c6(-0xb6,-0x39)],this),this[_0x5749c6(-0x61,-0xd9)]['on'](mars3d__namespace[_0x30fa72(0x34,0x3d)]['mouseUp'],this[_0x5749c6(-0x1a,-0x88)],this),this['_map']['on'](mars3d__namespace['EventType'][_0x5749c6(-0x14d,-0xcc)],this['_onMouseMoveEvent'],this),this['_data']&&this['setData'](this['_data']);}[_0x573119(0x3a,0x18)](){window['removeEventListener']('resize',this['resize']),this['_map']['off'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this);function _0x2792e4(_0x594d8a,_0x177b0c){return _0x573119(_0x594d8a,_0x177b0c-0xc3);}function _0xab15c1(_0x154ad9,_0x34e545){return _0x422f44(_0x154ad9,_0x34e545-0x447);}this['_map'][_0x2792e4(0x12b,0x14e)](mars3d__namespace['EventType'][_0xab15c1(0x2ac,0x25a)],this['_onMapWhellEvent'],this),this[_0x2792e4(0xe1,0x10b)]['off'](mars3d__namespace[_0x2792e4(0x1a2,0x1c1)][_0x2792e4(0x115,0x195)],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace[_0x2792e4(0x209,0x1c1)][_0xab15c1(0x1f2,0x243)],this['_onMouseUpEvent'],this),this['_map'][_0x2792e4(0xcb,0x14e)](mars3d__namespace['EventType'][_0xab15c1(0x209,0x240)],this['_onMouseMoveEvent'],this),this['primitives']['removeAll'](),this['_map']['scene'][_0xab15c1(0x22e,0x266)][_0x2792e4(0xe7,0xd1)](this['primitives']);}[_0x573119(0x17b,0x138)](){if(!this[_0xd6e020(0x397,0x35a)]||!this[_0x2c2fa8(-0xe6,-0x145)])return;function _0x2c2fa8(_0x4a2985,_0x13cb75){return _0x422f44(_0x13cb75,_0x4a2985-0x99);}function _0xd6e020(_0x49eb92,_0x1343bf){return _0x573119(_0x49eb92,_0x1343bf-0x326);}this['primitives'][_0x2c2fa8(-0x18f,-0x1d9)]=![],this[_0x2c2fa8(-0x148,-0x135)][_0x2c2fa8(-0x112,-0xa1)](),this['_map'][_0x2c2fa8(-0x1b4,-0x1af)](mars3d__namespace['EventType'][_0xd6e020(0x2f1,0x36a)],this[_0xd6e020(0x2ea,0x346)],this);}['_onMap_preRenderEvent'](_0x158278){function _0x5835f8(_0x56ea86,_0x337fae){return _0x573119(_0x56ea86,_0x337fae-0x30d);}this['particleSystem'][_0x5835f8(0x4c6,0x439)](this['scene']['context']),this['addPrimitives'](),this['primitives']['show']=!![];}['_onMapWhellEvent'](_0x3de338){clearTimeout(this[_0x2551ec(0x4bd,0x4a6)]);function _0x2551ec(_0xc28a9d,_0x1be5f3){return _0x573119(_0xc28a9d,_0x1be5f3-0x453);}function _0x21c937(_0x19d814,_0x206371){return _0x422f44(_0x206371,_0x19d814-0x49b);}if(!this[_0x21c937(0x273,0x2b4)]||!this[_0x21c937(0x31c,0x3a1)])return;this['primitives']['show']=![],this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;this['redraw']();},0xc8);}['_onMouseDownEvent'](_0x102257){function _0x20e4e6(_0x4bdeae,_0x4de2e8){return _0x573119(_0x4bdeae,_0x4de2e8-0x1d5);}this[_0x20e4e6(0x286,0x239)]=!![];}[_0x422f44(-0xf6,-0x151)](_0x130063){function _0x5d2239(_0x58f962,_0x27f6dc){return _0x573119(_0x27f6dc,_0x58f962- -0xde);}if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&(this['primitives']['show']=![],this[_0x5d2239(-0x38,-0x92)]=!![]);}['_onMouseUpEvent'](_0x263db4){function _0x26c48d(_0x3e864a,_0xa4c084){return _0x422f44(_0xa4c084,_0x3e864a-0x2d4);}if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&this[_0x26c48d(0x11e,0x13a)]&&this[_0x26c48d(0xc8,0xea)]();this['primitives']['show']=!![];function _0x3971bb(_0x29cdbf,_0x511a10){return _0x422f44(_0x29cdbf,_0x511a10-0x31e);}this['mouse_down']=![],this[_0x3971bb(0x1f1,0x168)]=![];}['redraw'](){if(!this['_map']||!this[_0x689623(-0x1fb,-0x247)])return;this[_0x689623(-0x108,-0x19b)]();function _0x689623(_0x4632bc,_0x4e1687){return _0x573119(_0x4632bc,_0x4e1687- -0x27b);}function _0x1ba74e(_0x369d2e,_0x10851b){return _0x422f44(_0x10851b,_0x369d2e-0x327);}this[_0x1ba74e(0x1a8,0x1bc)][_0x1ba74e(0x196,0x210)](this['viewerParameters']),this['primitives']['show']=!![];}['setData'](_0xbdc23b){this['_data']=_0xbdc23b;function _0x2d02a5(_0x57aa26,_0x3a01ae){return _0x573119(_0x57aa26,_0x3a01ae-0x1fa);}this[_0x2d02a5(0x28e,0x2d7)]&&this['particleSystem']['destroy']();function _0x804a82(_0x3b63ec,_0x562945){return _0x573119(_0x3b63ec,_0x562945-0x454);}this['particleSystem']=new ParticleSystem(this[_0x804a82(0x557,0x4c6)][_0x2d02a5(0x33d,0x315)],_0xbdc23b,this['getOptions'](),this[_0x804a82(0x4b0,0x4ad)]),this['addPrimitives']();}[_0x422f44(-0x26a,-0x210)](_0x2d4281,_0x3ff811){if(_0x2d4281)for(const _0x8f06df in _0x2d4281){this[_0x8f06df]=_0x2d4281[_0x8f06df];}function _0x223dc5(_0x1486df,_0x46dc44){return _0x422f44(_0x1486df,_0x46dc44-0x507);}this['particleSystem']&&this['particleSystem'][_0x223dc5(0x39d,0x3ad)](this['getOptions']());}[_0x422f44(-0x227,-0x1ec)](){const _0x39b115=Math['ceil'](Math['sqrt'](this['particlesNumber']));this['particlesNumber']=_0x39b115*_0x39b115;const _0x2f35ef={};_0x2f35ef['particlesTextureSize']=_0x39b115,_0x2f35ef[_0x472f57(0x453,0x48b)]=this['particlesNumber'];function _0x472f57(_0x45efbd,_0x4cb14d){return _0x573119(_0x4cb14d,_0x45efbd-0x3eb);}function _0x202b9a(_0x5c474a,_0x42f787){return _0x573119(_0x42f787,_0x5c474a-0x6b);}return _0x2f35ef['particleHeight']=this['fixedHeight'],_0x2f35ef[_0x202b9a(0x140,0x1af)]=this['fadeOpacity'],_0x2f35ef['dropRate']=this[_0x202b9a(0x19e,0x200)],_0x2f35ef['dropRateBump']=this['dropRateBump'],_0x2f35ef[_0x472f57(0x510,0x585)]=this[_0x202b9a(0x190,0x181)],_0x2f35ef['lineWidth']=this['lineWidth'],_0x2f35ef['colors']=this['colors'],_0x2f35ef;}['addPrimitives'](){this[_0x46a50d(-0x1a9,-0x207)]['add'](this['particleSystem']['particlesComputing']['primitives']['getWind']),this['primitives']['add'](this['particleSystem']['particlesComputing'][_0x46a50d(-0x1a9,-0x194)]['updateSpeed']);function _0x3d9d8d(_0x28a5cb,_0x3101fe){return _0x573119(_0x3101fe,_0x28a5cb-0x37c);}this[_0x46a50d(-0x1a9,-0x225)]['add'](this[_0x46a50d(-0x147,-0x130)][_0x3d9d8d(0x41a,0x3ff)]['primitives']['updatePosition']);function _0x46a50d(_0x1b6683,_0xab858d){return _0x422f44(_0xab858d,_0x1b6683-0x38);}this[_0x3d9d8d(0x3f7,0x44d)]['add'](this['particleSystem']['particlesComputing'][_0x46a50d(-0x1a9,-0x15c)]['postProcessingPosition']),this[_0x46a50d(-0x1a9,-0x16f)]['add'](this[_0x46a50d(-0x147,-0x121)]['particlesComputing'][_0x3d9d8d(0x3f7,0x3e3)][_0x3d9d8d(0x3c5,0x356)]),this['primitives'][_0x3d9d8d(0x449,0x482)](this[_0x3d9d8d(0x459,0x450)]['particlesRendering']['primitives']['segments']),this['primitives']['add'](this['particleSystem'][_0x3d9d8d(0x468,0x4fe)]['primitives'][_0x3d9d8d(0x38d,0x358)]),this[_0x3d9d8d(0x3f7,0x483)][_0x46a50d(-0x157,-0x123)](this[_0x3d9d8d(0x459,0x4a0)][_0x46a50d(-0x138,-0x1a1)]['primitives']['screen']);}['updateViewerParameters'](){let _0x47c71a=this['camera'][_0x596852(-0xf6,-0x77)](this['scene'][_0x351287(-0x5,-0x45)][_0x596852(0xe1,0x7c)]);if(!_0x47c71a){const _0x20b73a=this['_map'][_0x596852(0x36,-0x4d)]();_0x47c71a=Cesium$1[_0x351287(-0x91,-0x6)][_0x596852(-0x7c,0x5)](_0x20b73a[_0x596852(0x81,-0x10)],_0x20b73a['ymin'],_0x20b73a[_0x351287(-0x2,-0x32)],_0x20b73a[_0x351287(0x30,0x8a)]);}const _0x1fc1bc=Util[_0x596852(0x2e,-0x24)](_0x47c71a);this['viewerParameters'][_0x351287(0xe,-0x17)]['x']=_0x1fc1bc['lon'][_0x351287(-0xf,-0xa1)],this['viewerParameters']['lonRange']['y']=_0x1fc1bc['lon'][_0x596852(0xf5,0x7a)],this['viewerParameters']['latRange']['x']=_0x1fc1bc[_0x596852(-0x98,-0x5f)]['min'];function _0x351287(_0x1e2953,_0x49af84){return _0x422f44(_0x49af84,_0x1e2953-0x1b5);}this[_0x596852(0x21,-0x41)][_0x596852(-0x49,0x2f)]['y']=_0x1fc1bc[_0x351287(-0x6c,-0x100)]['max'];function _0x596852(_0x4e3e14,_0x5f1d43){return _0x422f44(_0x4e3e14,_0x5f1d43-0x1c2);}const _0x47fcff=this[_0x351287(0x82,0x79)]['getPixelSize'](this['globeBoundingSphere'],this['scene']['drawingBufferWidth'],this[_0x596852(-0xbb,-0x28)]['drawingBufferHeight']);_0x47fcff>0x0&&(this['viewerParameters']['pixelSize']=_0x47fcff);}}mars3d__namespace[_0x422f44(-0x16c,-0x1f2)][_0x573119(0x127,0xc1)](_0x573119(0x172,0xf1),WindLayer),mars3d__namespace[_0x573119(-0x54,0x37)][_0x422f44(-0x178,-0x142)]=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this[_0x9a5f7c(0x78,0xa2)]=null;function _0x9a5f7c(_0x586300,_0x5e3fa9){return _0x422f44(_0x586300,_0x5e3fa9-0x2c3);}this['tlng']=null;function _0x37e5ca(_0x84dcc3,_0x7424e4){return _0x422f44(_0x7424e4,_0x84dcc3-0x542);}this[_0x37e5ca(0x37d,0x40b)]=null,this[_0x9a5f7c(0x133,0xfd)]=null,this[_0x9a5f7c(0x17c,0x136)]=null;}['destroy'](){for(const _0x5d29fd in this){delete this[_0x5d29fd];}}}class CanvasWindField{constructor(_0x279108){this['setOptions'](_0x279108);}get['speedRate'](){return this['_speedRate'];}set[_0x573119(0x143,0x110)](_0x40d0db){function _0x1805f6(_0x15422b,_0x37b6a3){return _0x573119(_0x15422b,_0x37b6a3-0x241);}this['_speedRate']=(0x64-(_0x40d0db>0x63?0x63:_0x40d0db))*0x64;function _0x2b0d34(_0x2a2d30,_0x1d41e4){return _0x422f44(_0x1d41e4,_0x2a2d30-0x481);}this[_0x1805f6(0x2ea,0x268)]=[(this['xmax']-this['xmin'])/this['_speedRate'],(this['ymax']-this['ymin'])/this[_0x1805f6(0x308,0x348)]];}get[_0x573119(0x8d,0x1e)](){return this['_maxAge'];}set[_0x422f44(-0x22a,-0x23e)](_0x4e17fc){this['_maxAge']=_0x4e17fc;}[_0x573119(0x9e,0x102)](_0x5eebfb){this[_0x4b3392(-0x1be,-0x1e1)]=_0x5eebfb;function _0x29eb8b(_0xfb1ad6,_0x338e9e){return _0x573119(_0x338e9e,_0xfb1ad6-0x3de);}this[_0x29eb8b(0x3fc,0x3bd)]=_0x5eebfb[_0x29eb8b(0x3fc,0x424)]||0x78,this[_0x29eb8b(0x4ee,0x4c3)]=_0x5eebfb[_0x29eb8b(0x4ee,0x508)]||0x32;function _0x4b3392(_0x428864,_0x21e48d){return _0x573119(_0x21e48d,_0x428864- -0x2d3);}this['particles']=[];const _0x2f0238=_0x5eebfb[_0x4b3392(-0x29b,-0x2cd)]||0x1000;for(let _0xe56ff7=0x0;_0xe56ff7<_0x2f0238;_0xe56ff7++){const _0x47e0f0=this[_0x4b3392(-0x20b,-0x1bf)](new CanvasParticle());this['particles']['push'](_0x47e0f0);}}['setDate'](_0x4ebe4e){this['rows']=_0x4ebe4e[_0xe89b8f(0x479,0x492)],this[_0x4bb7a0(0x7d,0x63)]=_0x4ebe4e['cols'],this[_0x4bb7a0(0xc7,0x6d)]=_0x4ebe4e['xmin'],this[_0x4bb7a0(0x53,0x88)]=_0x4ebe4e[_0xe89b8f(0x50b,0x4da)];function _0xe89b8f(_0x3bd260,_0x1f70e4){return _0x573119(_0x3bd260,_0x1f70e4-0x435);}this['ymin']=_0x4ebe4e[_0x4bb7a0(0x9d,0x18)],this[_0x4bb7a0(0xcc,0xba)]=_0x4ebe4e['ymax'],this['grid']=[];const _0x3ec6d8=_0x4ebe4e['udata'],_0x1e092b=_0x4ebe4e[_0xe89b8f(0x4e6,0x53a)];let _0x3b9825=![];_0x3ec6d8['length']===this['rows']&&_0x3ec6d8[0x0]['length']===this[_0xe89b8f(0x51e,0x4b5)]&&(_0x3b9825=!![]);let _0x153713=0x0,_0xb6dc02=null;function _0x4bb7a0(_0x294a46,_0x3ce86c){return _0x422f44(_0x294a46,_0x3ce86c-0x23f);}let _0x510519=null;for(let _0x35c911=0x0;_0x35c911<this['rows'];_0x35c911++){_0xb6dc02=[];for(let _0xc34a7b=0x0;_0xc34a7b<this[_0x4bb7a0(0xb3,0x63)];_0xc34a7b++,_0x153713++){_0x3b9825?_0x510519=this['_calcUV'](_0x3ec6d8[_0x35c911][_0xc34a7b],_0x1e092b[_0x35c911][_0xc34a7b]):_0x510519=this[_0x4bb7a0(0x24,0x3f)](_0x3ec6d8[_0x153713],_0x1e092b[_0x153713]),_0xb6dc02['push'](_0x510519);}this[_0xe89b8f(0x456,0x493)]['push'](_0xb6dc02);}this['options']['reverseY']&&this[_0x4bb7a0(0xb3,0x41)][_0x4bb7a0(0xb1,0x42)]();}[_0x573119(0xed,0xd3)](){delete this[_0x123477(-0x2f8,-0x374)],delete this[_0x123477(-0x2d5,-0x2fd)];function _0x123477(_0x53fba4,_0x514ca0){return _0x573119(_0x514ca0,_0x53fba4- -0x355);}delete this['xmin'],delete this[_0x1915fb(-0xc7,-0x41)],delete this[_0x1915fb(-0x137,-0x100)];function _0x1915fb(_0x457cd5,_0x5b9a40){return _0x573119(_0x5b9a40,_0x457cd5- -0x16c);}delete this['ymax'],delete this[_0x123477(-0x2f7,-0x2cb)],delete this['particles'];}['toGridXY'](_0x227c2b,_0x535280){function _0x4d758e(_0x2f3be5,_0xba3f94){return _0x422f44(_0x2f3be5,_0xba3f94-0x5b3);}function _0x3add92(_0x28877c,_0x574387){return _0x422f44(_0x574387,_0x28877c-0x1b2);}const _0x703f46=(_0x227c2b-this['xmin'])/(this['xmax']-this[_0x3add92(-0x20,-0x79)])*(this['cols']-0x1),_0x2e5b90=(this[_0x4d758e(0x443,0x42e)]-_0x535280)/(this[_0x4d758e(0x421,0x42e)]-this[_0x4d758e(0x3ca,0x38c)])*(this['rows']-0x1);return[_0x703f46,_0x2e5b90];}['getUVByXY'](_0x5109f6,_0xcad5d){if(_0x5109f6<0x0||_0x5109f6>=this['cols']||_0xcad5d>=this[_0x1782c2(0x31e,0x2df)])return[0x0,0x0,0x0];function _0x1782c2(_0x3cedd3,_0x25e458){return _0x422f44(_0x3cedd3,_0x25e458-0x4de);}const _0xc3fd97=Math[_0x3f83aa(0x4cd,0x518)](_0x5109f6);function _0x3f83aa(_0x1e89b2,_0x355ec0){return _0x422f44(_0x355ec0,_0x1e89b2-0x6a3);}const _0xff5cfc=Math[_0x3f83aa(0x4cd,0x48d)](_0xcad5d);if(_0xc3fd97===_0x5109f6&&_0xff5cfc===_0xcad5d)return this[_0x1782c2(0x322,0x2e0)][_0xcad5d][_0x5109f6];const _0x25d0a5=_0xc3fd97+0x1,_0x4f399c=_0xff5cfc+0x1,_0x568a59=this['getUVByXY'](_0xc3fd97,_0xff5cfc),_0x4ea5a4=this[_0x3f83aa(0x532,0x4b2)](_0x25d0a5,_0xff5cfc),_0x1cbeaf=this['getUVByXY'](_0xc3fd97,_0x4f399c),_0x1f16d8=this['getUVByXY'](_0x25d0a5,_0x4f399c);let _0x1f817d=null;try{_0x1f817d=this['_bilinearInterpolation'](_0x5109f6-_0xc3fd97,_0xcad5d-_0xff5cfc,_0x568a59,_0x4ea5a4,_0x1cbeaf,_0x1f16d8);}catch(_0x148d97){console[_0x1782c2(0x37b,0x393)](_0x5109f6,_0xcad5d);}return _0x1f817d;}[_0x573119(0x183,0x134)](_0x5aace3,_0x4c202e,_0x3448a4,_0x59a2f6,_0x1c4d8a,_0x424190){const _0x1a98a4=0x1-_0x5aace3,_0x2f042d=0x1-_0x4c202e;function _0xc1c52b(_0x1290e6,_0x4557ae){return _0x422f44(_0x4557ae,_0x1290e6-0x277);}const _0x429211=_0x1a98a4*_0x2f042d,_0x48a9fd=_0x5aace3*_0x2f042d,_0x481fd7=_0x1a98a4*_0x4c202e,_0x57cb53=_0x5aace3*_0x4c202e,_0x176ba2=_0x3448a4[0x0]*_0x429211+_0x59a2f6[0x0]*_0x48a9fd+_0x1c4d8a[0x0]*_0x481fd7+_0x424190[0x0]*_0x57cb53,_0x3403b8=_0x3448a4[0x1]*_0x429211+_0x59a2f6[0x1]*_0x48a9fd+_0x1c4d8a[0x1]*_0x481fd7+_0x424190[0x1]*_0x57cb53;return this[_0xc1c52b(0x77,0xa)](_0x176ba2,_0x3403b8);}['_calcUV'](_0x59a508,_0x2b3422){return[+_0x59a508,+_0x2b3422,Math['sqrt'](_0x59a508*_0x59a508+_0x2b3422*_0x2b3422)];}[_0x573119(0x7f,0x3c)](_0x3377dd,_0xc7641b){if(!this['isInExtent'](_0x3377dd,_0xc7641b))return null;const _0x1b2a4a=this[_0x3a6edb(0xd1,0x75)](_0x3377dd,_0xc7641b);function _0x3a6edb(_0x5f5502,_0x649804){return _0x573119(_0x649804,_0x5f5502-0x8c);}const _0x19094d=this['getUVByXY'](_0x1b2a4a[0x0],_0x1b2a4a[0x1]);return _0x19094d;}[_0x573119(0xb5,0xb9)](_0x848769,_0x2c7790){function _0x20b932(_0x47d602,_0xa4ba69){return _0x573119(_0xa4ba69,_0x47d602- -0x112);}return _0x848769>=this['xmin']&&_0x848769<=this['xmax']&&_0x2c7790>=this[_0x20b932(-0xdd,-0xdc)]&&_0x2c7790<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x543223=fRandomByfloat(this[_0x4c285c(-0x259,-0x22e)],this['xmax']),_0x44ceaa=fRandomByfloat(this[_0x4c285c(-0x2ae,-0x254)],this['ymax']);function _0x4c285c(_0x5c5f7f,_0x4cd9f3){return _0x573119(_0x4cd9f3,_0x5c5f7f- -0x2e3);}const _0x1108c3={};function _0x37d79f(_0x3d487f,_0x2e1b5b){return _0x422f44(_0x3d487f,_0x2e1b5b-0x4d8);}return _0x1108c3[_0x4c285c(-0x2a8,-0x295)]=_0x44ceaa,_0x1108c3['lng']=_0x543223,_0x1108c3;}[_0x573119(0xa1,0x88)](){let _0x303f13,_0x1ff6ab,_0x1ad9a5;function _0x4a8d26(_0x2a2dae,_0x11b172){return _0x573119(_0x11b172,_0x2a2dae- -0x2eb);}function _0x18d195(_0x1e76e3,_0x3cf37f){return _0x422f44(_0x1e76e3,_0x3cf37f-0x47b);}for(let _0x2a5f4b=0x0,_0x18c05a=this[_0x4a8d26(-0x2a1,-0x2c3)]['length'];_0x2a5f4b<_0x18c05a;_0x2a5f4b++){let _0xe29a18=this['particles'][_0x2a5f4b];_0xe29a18[_0x4a8d26(-0x255,-0x2ab)]<=0x0&&(_0xe29a18=this['_randomParticle'](_0xe29a18));if(_0xe29a18[_0x18d195(0x314,0x2b5)]>0x0){const _0x17f9b6=_0xe29a18['tlng'],_0x4c7a68=_0xe29a18[_0x18d195(0x23a,0x2b6)];_0x1ad9a5=this['getUVByPoint'](_0x17f9b6,_0x4c7a68),_0x1ad9a5?(_0x303f13=_0x17f9b6+this['_calc_speedRate'][0x0]*_0x1ad9a5[0x0],_0x1ff6ab=_0x4c7a68+this['_calc_speedRate'][0x1]*_0x1ad9a5[0x1],_0xe29a18[_0x4a8d26(-0x23f,-0x299)]=_0x17f9b6,_0xe29a18[_0x18d195(0x2cf,0x25a)]=_0x4c7a68,_0xe29a18[_0x4a8d26(-0x2b9,-0x2f4)]=_0x303f13,_0xe29a18[_0x18d195(0x32b,0x2b6)]=_0x1ff6ab,_0xe29a18['speed']=_0x1ad9a5[0x2],_0xe29a18[_0x18d195(0x2c6,0x2b5)]--):_0xe29a18['age']=0x0;}}return this['particles'];}[_0x422f44(-0x1b6,-0x194)](_0x33d311){let _0x1678f3,_0x2de468;for(let _0x2c1fb9=0x0;_0x2c1fb9<0x1e;_0x2c1fb9++){_0x1678f3=this['getRandomLatLng'](),_0x2de468=this[_0x3ed1ac(0x359,0x3b8)](_0x1678f3[_0x3ed1ac(0x3c9,0x392)],_0x1678f3['lat']);if(_0x2de468&&_0x2de468[0x2]>0x0)break;}function _0x19bbdb(_0x458001,_0x87ed6a){return _0x573119(_0x458001,_0x87ed6a-0x384);}if(!_0x2de468)return _0x33d311;const _0x370e9e=_0x1678f3[_0x19bbdb(0x402,0x430)]+this['_calc_speedRate'][0x0]*_0x2de468[0x0],_0x5df5b0=_0x1678f3[_0x19bbdb(0x3dd,0x3bf)]+this[_0x19bbdb(0x388,0x3ab)][0x1]*_0x2de468[0x1];_0x33d311[_0x19bbdb(0x483,0x430)]=_0x1678f3['lng'],_0x33d311['lat']=_0x1678f3[_0x19bbdb(0x349,0x3bf)],_0x33d311['tlng']=_0x370e9e,_0x33d311['tlat']=_0x5df5b0;function _0x3ed1ac(_0x272c16,_0x58ebf1){return _0x422f44(_0x58ebf1,_0x272c16-0x579);}return _0x33d311['age']=Math['round'](Math[_0x19bbdb(0x403,0x3e5)]()*this[_0x19bbdb(0x3fe,0x3a2)]),_0x33d311[_0x19bbdb(0x453,0x453)]=_0x2de468[0x2],_0x33d311;}[_0x422f44(-0x1ee,-0x231)](){for(const _0x540878 in this){delete this[_0x540878];}}}function fRandomByfloat(_0x442c64,_0x4acc81){function _0x3f7163(_0x1583ce,_0x20abe3){return _0x573119(_0x1583ce,_0x20abe3-0x348);}return _0x442c64+Math[_0x3f7163(0x400,0x3a9)]()*(_0x4acc81-_0x442c64);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer'][_0x422f44(-0x235,-0x1b1)];function _0xc996(){const _0xf68c98=['uniformMap','depthMask','GeometryAttributes','TextureMinificationFilter','removeAll','currentTrailsColor','data','getDefaultRenderState','lonRange','dropRateBump','uniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0auniform\x20sampler2D\x20particlesWind;\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20speedFactor;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec3\x20percent\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20\x20\x20float\x20normalization\x20=\x20length(percent);\x0a\x0a\x20\x20\x20\x20return\x20normalization;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20//\x20vec3\x20currentSpeed\x20=\x20texture(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20out_FragColor\x20=\x20nextSpeed;\x0a}\x0a','Cartesian3','isInExtent','36aoxKAG','LUMINANCE','udata','createRenderingTextures','position','toDegrees','uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}\x0a','register','particlesTextureSize','ClearCommand','Color','getContext','createRenderingPrimitives','pointer-events','_randomParticle','latRange','colors','applyViewerParameters','segments','add','steps','speed','positionWC','arrayBufferView','mouseDown','clear','Sampler','fadeOpacity','width','ymax','windField','canrefresh','createTexture','enabled','Geometry','particleSystem','_mountedHook','destroyParticlesTextures','updateViewerParameters','commandType','createFramebuffer','bindEvent','#ffffff','destination-in','forEach','//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0a\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\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x,\x20360.0);\x0a\x20\x20\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20-90.0,\x2090.0);\x0a\x0a\x20\x20\x20\x20vec3\x20index3D\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20index3D.z\x20=\x20(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],\x20width\x20=\x203,\x20height\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\x203\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x202\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWind(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20\x20\x20float\x20result\x20=\x20texture(windTexture,\x20normalizedIndex2D).r;\x0a\x20\x20\x20\x20return\x20result;\x0a}\x0a\x0aconst\x20mat4\x20kernelMatrix\x20=\x20mat4(\x0a\x20\x20\x20\x200.0,\x20-1.0,\x202.0,\x20-1.0,\x20//\x20first\x20column\x0a\x20\x20\x20\x202.0,\x200.0,\x20-5.0,\x203.0,\x20//\x20second\x20column\x0a\x20\x20\x20\x200.0,\x201.0,\x204.0,\x20-3.0,\x20//\x20third\x20column\x0a\x20\x20\x20\x200.0,\x200.0,\x20-1.0,\x201.0\x20//\x20fourth\x20column\x0a);\x0afloat\x20oneDimensionInterpolation(float\x20t,\x20float\x20p0,\x20float\x20p1,\x20float\x20p2,\x20float\x20p3)\x20{\x0a\x20\x20\x20\x20vec4\x20tVec4\x20=\x20vec4(1.0,\x20t,\x20t\x20*\x20t,\x20t\x20*\x20t\x20*\x20t);\x0a\x20\x20\x20\x20tVec4\x20=\x20tVec4\x20/\x202.0;\x0a\x20\x20\x20\x20vec4\x20pVec4\x20=\x20vec4(p0,\x20p1,\x20p2,\x20p3);\x0a\x20\x20\x20\x20return\x20dot((tVec4\x20*\x20kernelMatrix),\x20pVec4);\x0a}\x0a\x0afloat\x20calculateB(sampler2D\x20windTexture,\x20float\x20t,\x20float\x20lon,\x20float\x20lat,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20float\x20lon0\x20=\x20floor(lon)\x20-\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon1\x20=\x20floor(lon);\x0a\x20\x20\x20\x20float\x20lon2\x20=\x20floor(lon)\x20+\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon3\x20=\x20floor(lon)\x20+\x202.0\x20*\x20interval.x;\x0a\x0a\x20\x20\x20\x20float\x20p0\x20=\x20getWind(windTexture,\x20vec3(lon0,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p1\x20=\x20getWind(windTexture,\x20vec3(lon1,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p2\x20=\x20getWind(windTexture,\x20vec3(lon2,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p3\x20=\x20getWind(windTexture,\x20vec3(lon3,\x20lat,\x20lev));\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(t,\x20p0,\x20p1,\x20p2,\x20p3);\x0a}\x0a\x0afloat\x20interpolateOneTexture(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20\x20\x20float\x20lat0\x20=\x20floor(lat)\x20-\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat1\x20=\x20floor(lat);\x0a\x20\x20\x20\x20float\x20lat2\x20=\x20floor(lat)\x20+\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat3\x20=\x20floor(lat)\x20+\x202.0\x20*\x20interval.y;\x0a\x0a\x20\x20\x20\x20vec2\x20coefficient\x20=\x20lonLatLev.xy\x20-\x20floor(lonLatLev.xy);\x0a\x20\x20\x20\x20float\x20b0\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat0,\x20lev);\x0a\x20\x20\x20\x20float\x20b1\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat1,\x20lev);\x0a\x20\x20\x20\x20float\x20b2\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat2,\x20lev);\x0a\x20\x20\x20\x20float\x20b3\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat3,\x20lev);\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(coefficient.y,\x20b0,\x20b1,\x20b2,\x20b3);\x0a}\x0a\x0avec3\x20bicubic(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bicubic_interpolation#Bicubic_convolution_algorithm\x0a\x20\x20\x20\x20float\x20u\x20=\x20interpolateOneTexture(U,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20v\x20=\x20interpolateOneTexture(V,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}\x0a','_onMouseDownEvent','update','2751260KttysJ','getUVByXY','particlesRendering','canvasHeight','createWindTextures','south','getU','wind','red','length','TRIANGLES','Math','createSegmentsGeometry','_colorRamp','ComputeCommand','windTextures','depthTest','autoClear','isPointVisible','uniform\x20sampler2D\x20segmentsColorTexture;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0auniform\x20sampler2D\x20currentTrailsColor;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0auniform\x20float\x20fadeOpacity;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture(segmentsColorTexture,\x20textureCoordinate);\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture(currentTrailsColor,\x20textureCoordinate);\x0a\x0a\x20\x20\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0\x20*\x20trailsColor)\x20/\x20255.0;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0a\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20out_FragColor\x20+\x20pointsColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20out_FragColor\x20+\x20trailsColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20gl_FragDepth\x20=\x20min(pointsDepth,\x20trailsDepth);\x0a}\x0a','EventType','3512793rMdEAR','clampToLatitudeRange','BufferUsage','setOptions','currentParticlesPosition','lineWidth','vdata','ComponentDatatype','_speedRate','reverseY','cos','nextTrails','_onMouseMoveEvent','visible','colorTable','createParticlesTextures','dimensions','speedRate','log','windData','VertexArray','max','options','ellipsoid','lon','TextureMagnificationFilter','pixelFormat','WindLayer','context','getWind','FLOAT','mars3d-canvasWind','updateSpeed','init','vertexShaderSource','CanvasWindField','__proto__','ALWAYS','speedFactor','default','beginPath','worker','camera','Draw','interval','canvasResize','container','pixelSize','green','fill','maximum','outputTexture','dropRate','_bilinearInterpolation','createComputingPrimitives','frameRate','globeBoundingSphere','resize','BoundingSphere','ColorRamp','remove','once','isDestroyed','trails','particlesWind','fragmentShaderSource','currentTrails','shaderProgram','Rectangle','commandList','_removedHook','494806UFaxZB','4zOYdMo','framebuffers','19123566LPpwWp','1570JeHfdZ','maxAge','WindUtil','_onMap_preRenderEvent','Framebuffer','OPAQUE','computeViewRectangle','pointerEvents','Matrix4','Pass','_calc_speedRate','type','getDirection','1872968POlHIu','destroy','keys','zIndex','umin','color','push','geometry','tlng','Compute','show','ymin','lev','layer','particlesNumber','stroke','style','lat','getUVByPoint','frameTime','nextParticlesPosition','rawRenderState','in\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0ain\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20postProcessingSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0aout\x20float\x20speedNormalization;\x0a\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//\x20see\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\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x0a\x20\x20\x20\x20float\x20e2\x20=\x206.69437999014e-3;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x0a\x20\x20\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calcProjectedCoordinate(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\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0,\x20360.0)\x20-\x20180.0;\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0);\x0a\x20\x20\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calcOffset(vec4\x20currentProjectedCoordinate,\x20vec4\x20nextProjectedCoordinate,\x20float\x20offsetSign)\x20{\x0a\x20\x20\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0);\x0a\x20\x20\x20\x20vec2\x20currentXY\x20=\x20(currentProjectedCoordinate.xy\x20/\x20currentProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x20\x20\x20\x20vec2\x20nextXY\x20=\x20(nextProjectedCoordinate.xy\x20/\x20nextProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0;\x0a\x20\x20\x20\x20vec2\x20direction\x20=\x20normalize(nextXY\x20-\x20currentXY);\x0a\x20\x20\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0,\x200.0);\x0a\x20\x20\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20\x20\x20vec3\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex);\x0a\x0a\x20\x20\x20\x20vec4\x20currentProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20vec4\x20nextProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(nextPosition.w\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(nextPosition.xyz);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20pointToUse\x20=\x20normal.x;\x20//\x20-1\x20is\x20currentProjectedCoordinate\x20and\x20+1\x20is\x20nextProjectedCoordinate\x0a\x20\x20\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20pixelSize\x20*\x20calcOffset(currentProjectedCoordinate,\x20nextProjectedCoordinate,\x20offsetSign);\x0a\x20\x20\x20\x20if\x20(pointToUse\x20<\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20currentProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20nextProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20speedNormalization\x20=\x20texture(postProcessingSpeed,\x20particleIndex).a;\x0a}\x0a','cancelAnimationFrame','visibility','preExecute','preRender','toGridXY','globalAlpha','TWO_PI','_map','postProcessingSpeed','particles','canvasWind','_setOptionsHook','getExtent','none','Cesium','redraw','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','clientHeight','refreshTimer','levmin','mouseMove','mode','refreshParticles','mouseUp','viewerParameters','framebuffer','sources','_calcUV','rows','grid','reverse','7153804hTCmKd','random','ZERO','dimension','mouse_down','canvasContext','UNSIGNED_INT','levmax','maxParticles','randomBetween','LayerUtil','height','blue','_updateIng2','NEAREST','wheel','getOptions','nextParticlesSpeed','scene','currentParticlesSpeed','postMessage','STATIC_DRAW','viewRectangleToLonLatRange','_updateIng','PixelFormat','_data','_showHook','primitives','postProcessingPosition','defined','commandToExecute','onmessage','cols','__esModule','RenderState','PixelDatatype','vertexArray','SceneMode','floor','_onMapWhellEvent','getParticles','PI_OVER_TWO','xmin','off','hidden','clearCommand','SCENE3D','textures','13920CTkWDJ','createCommand','depthTexture','colorTextures','ShaderSource','createRenderingFramebuffers','age','tlat','min','_onMouseUpEvent','defines','setData','particlesTextures','PrimitiveCollection','particlesComputing','fromDegrees','0px','in\x20vec3\x20position;\x0ain\x20vec2\x20st;\x0a\x0aout\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0a}\x0a','globe','wgs84ToWindowCoordinates','getColorTexture','xmax','mouse_move','attributeLocations','3KCiMlr','canvas','fixedHeight','BaseLayer','lng'];_0xc996=function(){return _0xf68c98;};return _0xc996();}class CanvasWindLayer extends BaseLayer{constructor(_0x4e3d5b={}){super(_0x4e3d5b),this['_setOptionsHook'](_0x4e3d5b);function _0x50b842(_0x413e68,_0xa3e363){return _0x573119(_0x413e68,_0xa3e363- -0x329);}this[_0x2b1376(0x204,0x297)]=null;function _0x2b1376(_0x163d08,_0x1b611b){return _0x422f44(_0x1b611b,_0x163d08-0x3b7);}_0x4e3d5b['colors']&&_0x4e3d5b[_0x2b1376(0x229,0x1bf)]&&(this[_0x2b1376(0x252,0x204)]=new mars3d__namespace[(_0x50b842(-0x377,-0x31c))](_0x4e3d5b));}[_0x422f44(-0x188,-0x210)](_0x879001,_0x3c8362){function _0x4c564b(_0x3081e6,_0x3fc998){return _0x422f44(_0x3081e6,_0x3fc998-0x445);}this['frameTime']=0x3e8/(_0x879001[_0x4c564b(0x35c,0x31f)]||0xa),this['_pointerEvents']=this[_0x51a26c(-0x139,-0xcf)][_0x4c564b(0x23b,0x20d)]??![],this[_0x4c564b(0x299,0x218)]=_0x879001['color']||_0x51a26c(-0x16a,-0x1b2),this[_0x4c564b(0x2ac,0x2ed)]=_0x879001[_0x51a26c(-0x14a,-0x146)]||0x1;function _0x51a26c(_0x25faad,_0x1ec1ce){return _0x422f44(_0x1ec1ce,_0x25faad-0xe);}this[_0x4c564b(0x28c,0x293)]=_0x879001['fixedHeight']??0x0,this[_0x51a26c(-0x146,-0x19a)]=_0x879001['reverseY']??![],this['windField']&&this['windField'][_0x51a26c(-0x14c,-0x13b)](_0x879001);}get[_0x422f44(-0x1ee,-0x225)](){return this['canvas'];}get['canvasWidth'](){function _0x490d28(_0xe8504d,_0x45e972){return _0x573119(_0x45e972,_0xe8504d-0x1a3);}return this['_map']['scene'][_0x490d28(0x24c,0x223)]['clientWidth'];}get[_0x422f44(-0x1b2,-0x16f)](){function _0x35038f(_0xeaf55c,_0x48e6b6){return _0x573119(_0x48e6b6,_0xeaf55c-0x17f);}return this[_0x35038f(0x1c7,0x1b8)]['scene']['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set['pointerEvents'](_0x31ddc6){this['_pointerEvents']=_0x31ddc6;function _0x495041(_0x5af2fa,_0x7277a1){return _0x422f44(_0x5af2fa,_0x7277a1-0x601);}function _0x198884(_0x1c453a,_0x2c975){return _0x573119(_0x2c975,_0x1c453a-0x38e);}if(!this[_0x198884(0x437,0x3c6)])return;_0x31ddc6?this[_0x198884(0x437,0x3b8)]['style'][_0x495041(0x4f7,0x46c)]='all':this[_0x198884(0x437,0x48f)]['style']['pointer-events']='none';}get['particlesNumber'](){return this['options']['particlesNumber'];}set[_0x573119(0xab,0x38)](_0x650862){this['options']['particlesNumber']=_0x650862,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){return this['options']['speedRate'];}set[_0x573119(0x196,0x110)](_0x54d120){function _0x429530(_0x2994f9,_0x266430){return _0x422f44(_0x266430,_0x2994f9-0x270);}this['options'][_0x429530(0x124,0xaf)]=_0x54d120;function _0x54411e(_0x1a5739,_0x533c65){return _0x422f44(_0x1a5739,_0x533c65-0x4c2);}this['windField']&&(this[_0x429530(0xec,0x8e)][_0x54411e(0x31c,0x376)]=_0x54d120);}get[_0x422f44(-0x1af,-0x23e)](){return this['options']['maxAge'];}set['maxAge'](_0x3b2aeb){function _0xb19eca(_0x3a3fd1,_0x14efd4){return _0x573119(_0x14efd4,_0x3a3fd1- -0x1cc);}this['options']['maxAge']=_0x3b2aeb;function _0xf1837e(_0x35e155,_0x20ed8a){return _0x573119(_0x35e155,_0x20ed8a- -0x14f);}this[_0xf1837e(-0xfa,-0x77)]&&(this[_0xb19eca(-0xf4,-0xe0)]['maxAge']=_0x3b2aeb);}get['data'](){function _0x3130f9(_0x2e6d89,_0x3be3bd){return _0x573119(_0x3be3bd,_0x2e6d89-0x40d);}return this[_0x3130f9(0x51f,0x4a9)];}set[_0x573119(0xd4,0xb3)](_0x4b5f6c){this['setData'](_0x4b5f6c);}[_0x573119(0xc9,0x7a)](_0x1bc19e){function _0x1491a2(_0x9b1694,_0xabf22a){return _0x422f44(_0x9b1694,_0xabf22a-0x67f);}function _0x13a783(_0x2d4907,_0x4ca485){return _0x422f44(_0x4ca485,_0x2d4907-0x11a);}_0x1bc19e?this['_addedHook']():(this['windData']&&(this['options'][_0x1491a2(0x4bc,0x4d6)]=this[_0x1491a2(0x4ed,0x535)]),this['_removedHook']());}[_0x573119(0x7d,0xde)](){function _0x4a6fbd(_0x2a74f6,_0x58aaab){return _0x422f44(_0x2a74f6,_0x58aaab-0x2c3);}function _0x5d2102(_0x47889e,_0x47e726){return _0x422f44(_0x47e726,_0x47889e-0x5cb);}this[_0x4a6fbd(0x133,0x17c)]['worker']?this['initWorker']():this[_0x5d2102(0x447,0x441)]=new CanvasWindField(this['options']);}['_addedHook'](){function _0x52db2b(_0x1d9ee8,_0x286120){return _0x422f44(_0x1d9ee8,_0x286120-0xe3);}this['canvas']=this['_createCanvas']();const _0x13efe5={};_0x13efe5['willReadFrequently']=!![],this[_0x52db2b(-0x107,-0x114)]=this[_0x52db2b(-0x12a,-0xd0)][_0x2e58e8(-0x143,-0x109)]('2d',_0x13efe5),this[_0x2e58e8(-0x67,-0xeb)]();function _0x2e58e8(_0x3be9ac,_0x288be2){return _0x422f44(_0x3be9ac,_0x288be2-0x8e);}this['options'][_0x2e58e8(-0xc4,-0x11b)]&&this[_0x2e58e8(-0xab,-0x133)](this['options'][_0x2e58e8(-0x16b,-0x11b)]);}[_0x573119(-0x9,0x18)](){function _0x16b21e(_0x45221d,_0x4eb83d){return _0x573119(_0x4eb83d,_0x45221d-0x22c);}function _0x36b9e2(_0x38893a,_0x54777a){return _0x573119(_0x54777a,_0x38893a-0x2f1);}this['clear'](),this['unbindEvent'](),this['canvas']&&(this['_map'][_0x16b21e(0x359,0x2f6)]['removeChild'](this['canvas']),delete this[_0x36b9e2(0x39a,0x3cc)]);}['_createCanvas'](){const _0x3b5932=mars3d__namespace['DomUtil']['create']('canvas',_0x4cceee(0x57f,0x549),this['_map']['container']);_0x3b5932['style'][_0x4cceee(0x537,0x4e9)]='absolute',_0x3b5932['style']['top']='0px',_0x3b5932[_0x4cceee(0x4d7,0x465)]['left']=_0x4cceee(0x534,0x4cb),_0x3b5932[_0x92f91b(-0x2ac,-0x22c)][_0x4cceee(0x55c,0x501)]=this['_map'][_0x4cceee(0x449,0x49d)][_0x92f91b(-0x1d5,-0x1bd)]['clientWidth']+'px',_0x3b5932[_0x92f91b(-0x1a8,-0x22c)]['height']=this['_map']['scene']['canvas']['clientHeight']+'px',_0x3b5932[_0x92f91b(-0x1a2,-0x22c)]['pointerEvents']=this['_pointerEvents']?'auto':_0x92f91b(-0x22b,-0x218),_0x3b5932['style']['zIndex']=this['options'][_0x4cceee(0x468,0x458)]??0x9;function _0x92f91b(_0xaf4bc1,_0x487b46){return _0x422f44(_0xaf4bc1,_0x487b46- -0xa);}function _0x4cceee(_0x3cff3f,_0x23e600){return _0x422f44(_0x3cff3f,_0x23e600-0x687);}return _0x3b5932[_0x4cceee(0x583,0x501)]=this['_map']['scene'][_0x92f91b(-0x216,-0x1bd)]['clientWidth'],_0x3b5932[_0x4cceee(0x41d,0x496)]=this['_map'][_0x92f91b(-0x1fb,-0x1f4)]['canvas'][_0x92f91b(-0x28a,-0x214)],_0x3b5932;}['resize'](){function _0x287d47(_0x2a4f,_0x1ffd41){return _0x422f44(_0x1ffd41,_0x2a4f-0x23b);}function _0x539626(_0x38f950,_0x17176f){return _0x573119(_0x17176f,_0x38f950- -0x86);}this['canvas']&&(this['canvas'][_0x287d47(0x19,0x86)][_0x539626(0x50,0x85)]=this['_map']['scene'][_0x539626(0x23,0xc)]['clientWidth']+'px',this['canvas']['style']['height']=this[_0x539626(-0x3e,-0x8e)]['scene']['canvas']['clientHeight']+'px',this[_0x539626(0x23,-0x49)][_0x287d47(0xb5,0x22)]=this['_map']['scene']['canvas']['clientWidth'],this['canvas']['height']=this['_map']['scene']['canvas'][_0x287d47(0x31,-0x62)]);}['bindEvent'](){function _0x59afce(_0x4b9589,_0x461fd3){return _0x422f44(_0x4b9589,_0x461fd3-0x190);}const _0x283be3=this;let _0x125df1=Date['now']();(function _0x55466f(){_0x283be3['animateFrame']=window['requestAnimationFrame'](_0x55466f);function _0x2bc6d3(_0x5da67f,_0x13a11f){return _0x29b8(_0x5da67f-0x73,_0x13a11f);}function _0x195162(_0x371374,_0x199e69){return _0x29b8(_0x199e69-0x12c,_0x371374);}if(_0x283be3[_0x2bc6d3(0x131,0x118)]&&_0x283be3[_0x2bc6d3(0x1d5,0x228)]){const _0x8c4697=Date['now'](),_0x1423ae=_0x8c4697-_0x125df1;_0x1423ae>_0x283be3['frameTime']&&(_0x125df1=_0x8c4697-_0x1423ae%_0x283be3[_0x2bc6d3(0x13a,0xb1)],_0x283be3['update']());}}(),window['addEventListener'](_0x59afce(0x22,0x6c),this['resize']['bind'](this),![]));function _0x11a12a(_0x55378c,_0x573fca){return _0x573119(_0x573fca,_0x55378c-0x33a);}this['mouse_down']=![],this['mouse_move']=![],this[_0x59afce(0x30,0x49)]['mouseHidden']&&(this['_map']['on'](mars3d__namespace[_0x59afce(-0x13,0x32)]['wheel'],this[_0x11a12a(0x3c1,0x450)],this),this[_0x11a12a(0x382,0x344)]['on'](mars3d__namespace[_0x11a12a(0x438,0x3e4)][_0x59afce(0x21,0x6)],this[_0x11a12a(0x422,0x3b1)],this),this[_0x59afce(-0x6e,-0x84)]['on'](mars3d__namespace['EventType'][_0x59afce(-0xc2,-0x74)],this[_0x11a12a(0x3d3,0x388)],this));}['unbindEvent'](){function _0x4505b3(_0xb26cf3,_0x1381de){return _0x422f44(_0xb26cf3,_0x1381de-0x403);}window[_0x43243e(-0x240,-0x2bb)](this['animateFrame']);function _0x43243e(_0x4d3509,_0x27bc11){return _0x422f44(_0x4d3509,_0x27bc11- -0xa0);}delete this['animateFrame'],window['removeEventListener']('resize',this[_0x43243e(-0x258,-0x1c4)]),this[_0x4505b3(0x327,0x2bc)]['mouseHidden']&&(this[_0x43243e(-0x261,-0x2b4)][_0x43243e(-0x26b,-0x271)](mars3d__namespace['EventType'][_0x43243e(-0x2c4,-0x28d)],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace[_0x4505b3(0x216,0x2a5)]['mouseDown'],this[_0x43243e(-0x288,-0x214)],this),this['_map'][_0x43243e(-0x282,-0x271)](mars3d__namespace[_0x43243e(-0x209,-0x1fe)][_0x4505b3(0x1d9,0x1ff)],this['_onMouseUpEvent'],this),this['_map'][_0x43243e(-0x2ad,-0x271)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x573119(0x2f,0x87)](_0xa110b6){clearTimeout(this['refreshTimer']);if(!this[_0x1eb528(0x293,0x2c1)]||!this['canvas'])return;function _0x358887(_0x22e41c,_0x5a6825){return _0x573119(_0x22e41c,_0x5a6825- -0xc2);}this[_0x1eb528(0x2cf,0x336)]['style'][_0x358887(0x17,-0x80)]=_0x358887(-0x5,-0x36);function _0x1eb528(_0xbf65de,_0x21e00b){return _0x422f44(_0xbf65de,_0x21e00b-0x4e9);}this['refreshTimer']=setTimeout(()=>{function _0x35e7d5(_0x55bca7,_0x366da7){return _0x358887(_0x366da7,_0x55bca7-0x4e7);}if(!this[_0x35e7d5(0x459,0x485)])return;this[_0xe35ab(0x30b,0x327)]();function _0xe35ab(_0x2b7428,_0x4c3cce){return _0x358887(_0x4c3cce,_0x2b7428-0x37d);}this['canvas'][_0x35e7d5(0x45f,0x47d)]['visibility']='visible';},0xc8);}[_0x422f44(-0x20a,-0x174)](_0x2be587){function _0x8982b3(_0xc673b9,_0x563b0b){return _0x422f44(_0xc673b9,_0x563b0b-0x572);}function _0x369bf6(_0x557fb2,_0x2110d6){return _0x422f44(_0x2110d6,_0x557fb2- -0xa4);}this['mouse_down']=!![],this['_map']['off'](mars3d__namespace[_0x8982b3(0x414,0x414)][_0x8982b3(0x3eb,0x36b)],this['_onMouseMoveEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this[_0x369bf6(-0x1f5,-0x228)],this);}['_onMouseMoveEvent'](_0x47110a){function _0x1cdbb9(_0x220728,_0xb0e13){return _0x573119(_0x220728,_0xb0e13-0x320);}function _0x2ccc0b(_0x489b0a,_0x5313fd){return _0x422f44(_0x5313fd,_0x489b0a-0x59b);}if(!this[_0x1cdbb9(0x396,0x354)]||!this[_0x2ccc0b(0x3e8,0x3a9)])return;this[_0x1cdbb9(0x32f,0x384)]&&(this['canvas'][_0x1cdbb9(0x30f,0x35a)]['visibility']='hidden',this['mouse_move']=!![]);}[_0x573119(0x111,0x99)](_0x179e0a){if(!this['show']||!this[_0x2614f0(0x1f,0x5f)])return;this['_map'][_0x2614f0(0x1,0x12)](mars3d__namespace[_0x2614f0(0x74,0xf1)][_0x5f56df(0x18c,0x1d9)],this['_onMouseMoveEvent'],this);this['mouse_down']&&this[_0x5f56df(0x1dd,0x17d)]&&this[_0x5f56df(0x187,0x1f3)]();this['canvas']['style']['visibility']=_0x5f56df(0x243,0x247);function _0x2614f0(_0x394079,_0x59389b){return _0x573119(_0x59389b,_0x394079- -0x8a);}this['mouse_down']=![];function _0x5f56df(_0x1be33d,_0x36797f){return _0x422f44(_0x36797f,_0x1be33d-0x393);}this[_0x5f56df(0x1dd,0x26a)]=![];}[_0x573119(0x101,0x9b)](_0x2805c1){this[_0x476394(0x20d,0x22e)](),this[_0x9634c0(-0xeb,-0x79)]=_0x2805c1,this['windField']['setDate'](_0x2805c1);function _0x476394(_0xb6c561,_0x5c171a){return _0x422f44(_0xb6c561,_0x5c171a-0x3b7);}function _0x9634c0(_0x1d6e2a,_0x27eb86){return _0x573119(_0x1d6e2a,_0x27eb86- -0x18b);}this[_0x476394(0x1ba,0x1ab)]();}['redraw'](){if(!this['show'])return;function _0x1bd02d(_0x2541e9,_0x579816){return _0x422f44(_0x579816,_0x2541e9-0x220);}this['windField']['setOptions'](this[_0x1bd02d(0xd9,0x63)]),this['update']();}['update'](){if(this[_0x4b0605(-0x1db,-0x1ff)])return;this['_updateIng']=!![];function _0x3b294f(_0x4079b5,_0x395fae){return _0x422f44(_0x4079b5,_0x395fae- -0x89);}if(this[_0x4b0605(-0xf4,-0x14e)])this['windField'][_0x3b294f(-0x225,-0x1fc)]();else{const _0x9df08f=this['windField'][_0x3b294f(-0x221,-0x25d)]();this['_drawLines'](_0x9df08f);}function _0x4b0605(_0x19546e,_0x33ff8d){return _0x573119(_0x19546e,_0x33ff8d- -0x276);}this['_updateIng']=![];}['_drawLines'](_0x580110){this['canvasContext']['globalCompositeOperation']=_0x5929e7(0x19f,0x1a2),this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x5929e7(0x1a7,0x1b9)]);function _0x52c1fd(_0x998801,_0x3a9fb3){return _0x422f44(_0x998801,_0x3a9fb3-0xce);}this['canvasContext']['globalCompositeOperation']='lighter',this[_0x5929e7(0x11f,0xee)][_0x5929e7(0x100,0x165)]=0.9;const _0x13e2c9=this[_0x52c1fd(-0x178,-0x146)]['scene']['mode']!==Cesium['SceneMode'][_0x5929e7(0x148,0x1d3)],_0x4c6e0a=this['canvasWidth']*0.25;function _0x5929e7(_0xcf631b,_0x180821){return _0x573119(_0x180821,_0xcf631b-0xba);}if(this['_colorRamp'])for(let _0x1364ae=0x0,_0x5e6a5a=_0x580110[_0x52c1fd(-0x5f,-0x9b)];_0x1364ae<_0x5e6a5a;_0x1364ae++){const _0x5a545d=_0x580110[_0x1364ae],_0xcab9ef=this['_tomap'](_0x5a545d[_0x52c1fd(-0x55,-0xe2)],_0x5a545d['lat'],_0x5a545d),_0x2e2540=this['_tomap'](_0x5a545d[_0x5929e7(0xec,0x10d)],_0x5a545d[_0x52c1fd(-0xb4,-0xf7)],_0x5a545d);if(!_0xcab9ef||!_0x2e2540)continue;if(_0x13e2c9&&Math['abs'](_0xcab9ef[0x0]-_0x2e2540[0x0])>=_0x4c6e0a)continue;this[_0x52c1fd(-0x120,-0x129)]['beginPath'](),this[_0x52c1fd(-0x109,-0x129)]['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x5929e7(0x1b1,0x202)]['getColor'](_0x5a545d[_0x52c1fd(-0x13d,-0xbf)]),this[_0x5929e7(0x11f,0x19a)]['moveTo'](_0xcab9ef[0x0],_0xcab9ef[0x1]),this[_0x5929e7(0x11f,0x169)]['lineTo'](_0x2e2540[0x0],_0x2e2540[0x1]),this['canvasContext'][_0x5929e7(0xf3,0x72)]();}else{this['canvasContext'][_0x52c1fd(-0x4a,-0x67)](),this[_0x5929e7(0x11f,0xc9)]['lineWidth']=this[_0x52c1fd(-0x40,-0x8a)],this['canvasContext']['strokeStyle']=this['color'];for(let _0x4f186b=0x0,_0x2f010a=_0x580110['length'];_0x4f186b<_0x2f010a;_0x4f186b++){const _0x3effcd=_0x580110[_0x4f186b],_0x44a3e3=this['_tomap'](_0x3effcd['lng'],_0x3effcd[_0x52c1fd(-0x1af,-0x153)],_0x3effcd),_0x3e2b06=this['_tomap'](_0x3effcd['tlng'],_0x3effcd['tlat'],_0x3effcd);if(!_0x44a3e3||!_0x3e2b06)continue;if(_0x13e2c9&&Math['abs'](_0x44a3e3[0x0]-_0x3e2b06[0x0])>=_0x4c6e0a)continue;this[_0x52c1fd(-0xe1,-0x129)]['moveTo'](_0x44a3e3[0x0],_0x44a3e3[0x1]),this['canvasContext']['lineTo'](_0x3e2b06[0x0],_0x3e2b06[0x1]);}this['canvasContext']['stroke']();}}['_tomap'](_0x42df8a,_0x59c4d8,_0x361446){const _0x27a1dd=Cesium['Cartesian3']['fromDegrees'](_0x42df8a,_0x59c4d8,this['fixedHeight']),_0x50604f=this['_map'][_0x21fb72(0x345,0x2c5)];if(_0x50604f[_0x21fb72(0x329,0x3be)]===Cesium[_0x21fb72(0x358,0x39a)][_0x21fb72(0x361,0x3a8)]){const _0x19b373=new Cesium['EllipsoidalOccluder'](_0x50604f['globe']['ellipsoid'],_0x50604f['camera'][_0x21fb72(0x3a3,0x38e)]),_0x4415fa=_0x19b373[_0x2d79dc(0x1c9,0x1e0)](_0x27a1dd);if(!_0x4415fa)return _0x361446['age']=0x0,null;}const _0x4ea05a=Cesium['SceneTransforms'][_0x21fb72(0x376,0x36e)](this['_map']['scene'],_0x27a1dd);function _0x21fb72(_0x506f89,_0x3a4f3a){return _0x422f44(_0x3a4f3a,_0x506f89-0x52f);}function _0x2d79dc(_0x9202f1,_0x2fa8fe){return _0x573119(_0x9202f1,_0x2fa8fe-0xe4);}return _0x4ea05a?[_0x4ea05a['x'],_0x4ea05a['y']]:null;}['clear'](){this['windField']['clear'](),delete this['windData'];}['initWorker'](){function _0x553603(_0x2b32cb,_0x16f74f){return _0x573119(_0x16f74f,_0x2b32cb- -0x347);}this['worker']=new Worker(this['options']['worker']),this[_0x553603(-0x21f,-0x1c9)][_0x553603(-0x2c8,-0x294)]=_0x3278c0=>{function _0x2034e3(_0x32f368,_0x3d3ad3){return _0x423c1d(_0x3d3ad3,_0x32f368-0x5b);}this['_drawLines'](_0x3278c0['data']['particles']),this[_0x2034e3(0xfe,0xe7)]=![];};function _0x423c1d(_0x40fe0f,_0x1c5849){return _0x573119(_0x40fe0f,_0x1c5849-0x36);}this['windField']={'init':_0x1bb546=>{const _0x35d257={};function _0x39e1da(_0x23ea36,_0x31bd99){return _0x553603(_0x31bd99-0x637,_0x23ea36);}function _0x393dfe(_0x24917c,_0x1aa1da){return _0x553603(_0x24917c-0x743,_0x1aa1da);}_0x35d257['type']=_0x393dfe(0x51c,0x4f6),_0x35d257['options']=_0x1bb546,this['worker'][_0x39e1da(0x397,0x364)](_0x35d257);},'setOptions':_0xac25b0=>{function _0x3c2213(_0x3e4b78,_0x425401){return _0x423c1d(_0x3e4b78,_0x425401- -0x8c);}const _0x28e334={};_0x28e334[_0x3249d1(-0x250,-0x1bd)]='setOptions',_0x28e334[_0x3c2213(0x13b,0xbf)]=_0xac25b0;function _0x3249d1(_0x4e7965,_0x48cf1f){return _0x423c1d(_0x4e7965,_0x48cf1f- -0x21b);}this[_0x3249d1(-0x141,-0xbd)][_0x3c2213(0x2c,0x1e)](_0x28e334);},'setDate':_0x46676a=>{function _0x5f8052(_0x12fe12,_0x1d9c8c){return _0x553603(_0x12fe12-0x2c1,_0x1d9c8c);}const _0x5042fe={};_0x5042fe['type']='setDate',_0x5042fe['data']=_0x46676a,this['worker'][_0x5f8052(-0x12,0x65)](_0x5042fe);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x2400d8={};function _0x203040(_0x3469bc,_0x534f7d){return _0x423c1d(_0x534f7d,_0x3469bc- -0x18f);}_0x2400d8['type']='update',this['worker'][_0x203040(-0xe5,-0xa1)](_0x2400d8);},'clear':()=>{function _0x310067(_0x535a73,_0x571e20){return _0x423c1d(_0x535a73,_0x571e20- -0x263);}const _0x41ff5f={};_0x41ff5f['type']=_0x310067(-0x1b0,-0x15a),this['worker']['postMessage'](_0x41ff5f);}},this[_0x553603(-0x26f,-0x2b3)][_0x423c1d(0x126,0x156)](this[_0x423c1d(0xd8,0x14b)]);}}mars3d__namespace['LayerUtil']['register'](_0x422f44(-0x202,-0x211),CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x573119(0x1ab,0x122)]=CanvasWindField,mars3d__namespace[_0x573119(0x2,0x1f)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x4e7439={};_0x4e7439['value']=!![],Object['defineProperty'](exports,_0x573119(0x31,0x81),_0x4e7439);
14
+ 'use strict';(function(_0x5a63ff,_0x49008e){function _0x1b5418(_0x5af178,_0x1692a2){return _0x9531(_0x1692a2-0x3a9,_0x5af178);}function _0x34ca98(_0x428129,_0x8508b0){return _0x9531(_0x428129-0x268,_0x8508b0);}const _0x19ffb4=_0x5a63ff();while(!![]){try{const _0x1b75b3=parseInt(_0x1b5418(0x635,0x667))/0x1*(parseInt(_0x1b5418(0x611,0x5dd))/0x2)+parseInt(_0x1b5418(0x6c7,0x643))/0x3+parseInt(_0x1b5418(0x6db,0x654))/0x4*(parseInt(_0x1b5418(0x632,0x5d5))/0x5)+parseInt(_0x1b5418(0x5a1,0x5fe))/0x6*(parseInt(_0x34ca98(0x47d,0x3f6))/0x7)+-parseInt(_0x1b5418(0x69c,0x63f))/0x8*(parseInt(_0x1b5418(0x5ce,0x653))/0x9)+-parseInt(_0x1b5418(0x616,0x634))/0xa+-parseInt(_0x34ca98(0x521,0x4b9))/0xb;if(_0x1b75b3===_0x49008e)break;else _0x19ffb4['push'](_0x19ffb4['shift']());}catch(_0x6fe8fb){_0x19ffb4['push'](_0x19ffb4['shift']());}}}(_0xeabd,0x3aa95));function _interopNamespace(_0x2d4b8e){if(_0x2d4b8e&&_0x2d4b8e['__esModule'])return _0x2d4b8e;var _0x46eb6e=Object['create'](null);function _0x59f160(_0x4ca286,_0x3bcc38){return _0x9531(_0x4ca286- -0x3a7,_0x3bcc38);}_0x2d4b8e&&Object['keys'](_0x2d4b8e)[_0x59f160(-0xe1,-0x157)](function(_0x2ec716){function _0x5a06a0(_0xcc349a,_0x1a51fc){return _0x59f160(_0x1a51fc-0x5d7,_0xcc349a);}function _0x2a7d43(_0x2630de,_0x57b159){return _0x59f160(_0x2630de-0x763,_0x57b159);}if(_0x2ec716!==_0x2a7d43(0x5c2,0x5b3)){var _0x1128a1=Object[_0x5a06a0(0x426,0x472)](_0x2d4b8e,_0x2ec716);Object[_0x2a7d43(0x5b4,0x633)](_0x46eb6e,_0x2ec716,_0x1128a1[_0x2a7d43(0x67e,0x658)]?_0x1128a1:{'enumerable':!![],'get':function(){return _0x2d4b8e[_0x2ec716];}});}});_0x46eb6e[_0x491966(-0x138,-0x1be)]=_0x2d4b8e;function _0x491966(_0x407369,_0x163a15){return _0x9531(_0x407369- -0x33e,_0x163a15);}return _0x46eb6e;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$7=mars3d__namespace['Cesium'];function getU(_0x455a31,_0x455f08){const _0x56a85a=_0x455a31*Math['cos'](Cesium$7['Math']['toRadians'](_0x455f08));return _0x56a85a;}function getV(_0x23e3f7,_0xb868c9){function _0x42c4bd(_0x3233a5,_0x2c4459){return _0x9531(_0x3233a5- -0x2ef,_0x2c4459);}const _0x838d60=_0x23e3f7*Math[_0x42c4bd(-0x66,-0xa3)](Cesium$7[_0x55c395(0x221,0x1b8)][_0x42c4bd(-0xc7,-0x13b)](_0xb868c9));function _0x55c395(_0x54c425,_0x386a37){return _0x9531(_0x386a37- -0x6c,_0x54c425);}return _0x838d60;}function getSpeed(_0x115b52,_0x39df4c){function _0x3c291a(_0x4a8821,_0x121d99){return _0x9531(_0x4a8821-0x3af,_0x121d99);}const _0xed1a24=Math[_0x3c291a(0x60b,0x645)](Math['pow'](_0x115b52,0x2)+Math['pow'](_0x39df4c,0x2));return _0xed1a24;}function _0xeabd(){const _0x16d550=['mod','getContext','add','getUVByXY','bind','particleSystem','geometry','postMessage','_onMapWhellEvent','BoundingSphere','_pointerEvents','clear','default','DomUtil','mouse_down','primitives','context','ymin','createWindTextures','getDefaultRenderState','reverseY','TRIANGLES','absolute','STATIC_DRAW','CanvasWindField','willReadFrequently','array','301TrxFsO','Cartesian3','nextTrailsDepth','DrawCommand','VertexArray','requestAnimationFrame','atan2','textures','setDate','PixelFormat','setData','mouseMove','DEPTH_COMPONENT','NEAREST','getOptions','Math','canvasContext','position','height','toRadians','_showHook','particlesRendering','segmentsDepth','677375ZClelb','ShaderSource','_map','scene','resize','_setOptionsHook','PrimitiveType','latRange','542LpKIIN','uniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0auniform\x20float\x20dropRate;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0auniform\x20float\x20dropRateBump;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898,\x2078.233,\x204375.85453);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0,\x201.0);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0);\x0a\x20\x20\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20lev);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20\x20\x20return\x20particle.y\x20<\x20-90.0\x20||\x20particle.y\x20>\x2090.0;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20nextSpeed.a;\x0a\x0a\x20\x20\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec2\x20seed2\x20=\x20nextSpeed.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\x0a\x20\x20\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20\x20\x20if\x20(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(randomParticle,\x201.0);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}\x0a','uniformMap','getRandomLatLng','_colorRamp','windData','enabled','_addedHook','lat','depthTest','currentParticlesPosition','in\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0ain\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20postProcessingSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0aout\x20float\x20speedNormalization;\x0a\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//\x20see\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\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x0a\x20\x20\x20\x20float\x20e2\x20=\x206.69437999014e-3;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x0a\x20\x20\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calcProjectedCoordinate(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\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0,\x20360.0)\x20-\x20180.0;\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0);\x0a\x20\x20\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calcOffset(vec4\x20currentProjectedCoordinate,\x20vec4\x20nextProjectedCoordinate,\x20float\x20offsetSign)\x20{\x0a\x20\x20\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0);\x0a\x20\x20\x20\x20vec2\x20currentXY\x20=\x20(currentProjectedCoordinate.xy\x20/\x20currentProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x20\x20\x20\x20vec2\x20nextXY\x20=\x20(nextProjectedCoordinate.xy\x20/\x20nextProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0;\x0a\x20\x20\x20\x20vec2\x20direction\x20=\x20normalize(nextXY\x20-\x20currentXY);\x0a\x20\x20\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0,\x200.0);\x0a\x20\x20\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20\x20\x20vec3\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex);\x0a\x0a\x20\x20\x20\x20vec4\x20currentProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20vec4\x20nextProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(nextPosition.w\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(nextPosition.xyz);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20pointToUse\x20=\x20normal.x;\x20//\x20-1\x20is\x20currentProjectedCoordinate\x20and\x20+1\x20is\x20nextProjectedCoordinate\x0a\x20\x20\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20pixelSize\x20*\x20calcOffset(currentProjectedCoordinate,\x20nextProjectedCoordinate,\x20offsetSign);\x0a\x20\x20\x20\x20if\x20(pointToUse\x20<\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20currentProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20nextProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20speedNormalization\x20=\x20texture(postProcessingSpeed,\x20particleIndex).a;\x0a}\x0a','colorTable','globeBoundingSphere','getOwnPropertyDescriptor','Color','maximum','createComputingPrimitives','cols','_bilinearInterpolation','width','createSegmentsGeometry','umin','currentTrails','udata','_updateIng','updateSpeed','unbindEvent','clientWidth','nextTrails','removeAll','type','particlesWind','1752McEHpa','GeometryAttribute','createParticlesTextures','WindUtil','dimensions','GeometryAttributes','postProcessingPosition','sqrt','viewRectangleToLonLatRange','maxAge','nextParticlesPosition','outputTexture','stroke','BufferUsage','normal','refreshParticles','_tomap','canvasWidth','dropRateBump','viewerParameters','createTexture','show','cancelAnimationFrame','defined','UNSIGNED_INT','fadeOpacity','destroyObject','_drawLines','vdata','RGB','Cartesian2','rows','min','mode','lng','windField','canvasResize','framebuffers','segmentsColor','EllipsoidalOccluder','TWO_PI','wheel','fillRect','_calc_speedRate','viewport','vertexArray','update','currentParticlesSpeed','fragmentShaderSource','SceneMode','_onMouseUpEvent','_mountedHook','sin','particlesTextureSize','561070XdrQua','ymax','framebuffer','postProcessingSpeed','fixedHeight','_canrefresh','frameTime','setOptions','camera','grid','lonRange','1305512fYYGNW','max','vmin','clearCommand','173850wzgBep','preExecute','toDegrees','ellipsoid','color','layer','shaderProgram','lineWidth','none','applyViewerParameters','xmax','mouse_move','_onMouseMoveEvent','tlat','getUVByPoint','ComponentDatatype','9hkZFoe','4wccCyx','PixelDatatype','wgs84ToWindowCoordinates','push','commandType','defines','north','bindEvent','computeViewRectangle','length','rawRenderState','speedFactor','particlesTextures','toGridXY','1947297TEzcRs','speed','updatePosition','ComputeCommand','options','1589TPSsig','init','RenderState','style','get','abs','OPAQUE','_calcUV','forEach','createFramebuffer','Compute','BaseLayer','drawingBufferHeight','particles','_speedRate','blending','FLOAT','particlesNumber','canvasHeight','getPixelSize','worker','segments','destination-in','colors','tlng','Draw','age','WindLayer','Rectangle','commandToExecute','data','vertexShaderSource','getWind','globalCompositeOperation','_onMouseDownEvent','clearFramebuffers','windTextures','all','randomizeParticles','ClearCommand','sources','lev','uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0ain\x20vec2\x20v_textureCoordinates;\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\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x0a\x20\x20\x20\x20float\x20term1\x20=\x20111132.92;\x0a\x20\x20\x20\x20float\x20term2\x20=\x20559.82\x20*\x20cos(2.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term3\x20=\x201.175\x20*\x20cos(4.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term4\x20=\x200.0023\x20*\x20cos(6.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20\x20\x20float\x20term5\x20=\x20111412.84\x20*\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20term6\x20=\x2093.5\x20*\x20cos(3.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term7\x20=\x200.118\x20*\x20cos(5.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avoid\x20updatePosition(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20windVectorInLonLatLev;\x0a\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}\x0a','_updateIng2','createRawRenderState','_data','mars3d-canvasWind','redraw','canvas','LINEAR','Cesium','nextTrailsColor','round','particlesComputing','LayerUtil','maxParticles','EventType','commandList','keys','particleHeight','speedRate','lon','Pass','depthTexture','ZERO','RGBA','TextureMagnificationFilter','setGeometry','xmin','fromCache','mouseUp','destroy','attributeLocations','0px','off','clientHeight','rgb(206,255,255)','visibility','hidden','defineProperty','value'];_0xeabd=function(){return _0x16d550;};return _0xeabd();}function getDirection(_0x477f0c,_0x5917d0){function _0x3067c8(_0x446712,_0x2bb9ab){return _0x9531(_0x446712- -0x84,_0x2bb9ab);}let _0x2407d5=Cesium$7['Math'][_0x26db15(0x434,0x3fb)](Math[_0x3067c8(0x197,0x125)](_0x5917d0,_0x477f0c));function _0x26db15(_0x28014f,_0x4c4e6e){return _0x9531(_0x4c4e6e-0x15f,_0x28014f);}return _0x2407d5+=_0x2407d5<0x0?0x168:0x0,_0x2407d5;}const _0x2bbf8e={};_0x2bbf8e['__proto__']=null,_0x2bbf8e['getU']=getU,_0x2bbf8e['getV']=getV;function _0x437391(_0x1b479b,_0x55da19){return _0x9531(_0x55da19-0x3e4,_0x1b479b);}_0x2bbf8e['getSpeed']=getSpeed,_0x2bbf8e['getDirection']=getDirection;var WindUtil=_0x2bbf8e;const Cesium$6=mars3d__namespace[_0x437391(0x725,0x6d4)];class CustomPrimitive{constructor(_0x19baef){this['commandType']=_0x19baef['commandType'],this[_0xeeb54c(0x149,0x11d)]=_0x19baef['geometry'],this[_0x5af9dc(0x419,0x41b)]=_0x19baef[_0x5af9dc(0x419,0x3c5)],this['primitiveType']=_0x19baef['primitiveType'],this['uniformMap']=_0x19baef['uniformMap'],this['vertexShaderSource']=_0x19baef['vertexShaderSource'],this['fragmentShaderSource']=_0x19baef[_0x5af9dc(0x4ad,0x511)],this['rawRenderState']=_0x19baef[_0xeeb54c(0x1fe,0x1d2)],this['framebuffer']=_0x19baef['framebuffer'];function _0x5af9dc(_0x4fabf4,_0x2ddfd9){return _0x437391(_0x2ddfd9,_0x4fabf4- -0x1bc);}this['outputTexture']=_0x19baef[_0xeeb54c(0x163,0x17d)],this['autoClear']=_0x19baef['autoClear']??![],this[_0x5af9dc(0x4c3,0x449)]=_0x19baef['preExecute'],this['show']=!![],this[_0xeeb54c(0x1cc,0x1f8)]=undefined;function _0xeeb54c(_0x5b8587,_0x23e36f){return _0x437391(_0x5b8587,_0x23e36f- -0x4c7);}this[_0xeeb54c(0x13e,0x1b6)]=undefined,this['autoClear']&&(this['clearCommand']=new Cesium$6['ClearCommand']({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass'][_0xeeb54c(0x1c9,0x1e1)]}));}['createCommand'](_0x21093f){function _0x29e28b(_0x493dbf,_0x350c5c){return _0x437391(_0x350c5c,_0x493dbf- -0xde);}function _0x42411f(_0x4e475b,_0x1f3ea6){return _0x437391(_0x1f3ea6,_0x4e475b- -0x367);}switch(this[_0x29e28b(0x5b5,0x5d9)]){case'Draw':{const _0x301a94=Cesium$6[_0x29e28b(0x51f,0x512)]['fromGeometry']({'context':_0x21093f,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage'][_0x42411f(0x28e,0x308)]}),_0x375f71={};_0x375f71[_0x29e28b(0x510,0x4e6)]=_0x21093f,_0x375f71['attributeLocations']=this['attributeLocations'],_0x375f71[_0x29e28b(0x5e3,0x5dd)]=this['vertexShaderSource'],_0x375f71[_0x42411f(0x302,0x2f4)]=this['fragmentShaderSource'];const _0x193934=Cesium$6['ShaderProgram']['fromCache'](_0x375f71),_0x5641f0=Cesium$6[_0x29e28b(0x5c6,0x5ac)][_0x29e28b(0x4f4,0x496)](this['rawRenderState']);return new Cesium$6[(_0x29e28b(0x51e,0x4ac))]({'primitiveType':this['primitiveType'],'shaderProgram':_0x193934,'vertexArray':_0x301a94,'modelMatrix':Cesium$6['Matrix4']['IDENTITY'],'renderState':_0x5641f0,'uniformMap':this[_0x29e28b(0x53c,0x4bb)],'castShadows':![],'receiveShadows':![],'framebuffer':this[_0x29e28b(0x593,0x516)],'pass':Cesium$6[_0x42411f(0x264,0x2d9)][_0x42411f(0x341,0x385)],'pickOnly':!![],'owner':this});}case _0x42411f(0x345,0x2d7):{const _0x192185={};return _0x192185['owner']=this,_0x192185[_0x29e28b(0x58b,0x5ec)]=this['fragmentShaderSource'],_0x192185['uniformMap']=this['uniformMap'],_0x192185['outputTexture']=this[_0x29e28b(0x566,0x5d0)],_0x192185['persists']=!![],new Cesium$6[(_0x42411f(0x339,0x3b9))](_0x192185);}}}[_0x437391(0x5af,0x5d0)](_0x3200c0,_0x21df2d){this[_0x3ab447(0x275,0x286)]=_0x21df2d;function _0x4a9abc(_0x559005,_0x4a8d95){return _0x20001d(_0x4a8d95,_0x559005- -0x159);}const _0x594389=Cesium$6[_0x4a9abc(0x450,0x422)]['fromGeometry']({'context':_0x3200c0,'geometry':this[_0x4a9abc(0x437,0x46c)],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6[_0x3ab447(0x2d7,0x2aa)]['STATIC_DRAW']});function _0x3ab447(_0x102fbe,_0x16f049){return _0x20001d(_0x16f049,_0x102fbe- -0x31b);}this[_0x3ab447(0x350,0x390)]['vertexArray']=_0x594389;}[_0x437391(0x666,0x667)](_0x5e51f3){if(!this[_0xbb4543(0x391,0x329)])return;if(_0x5e51f3[_0x524356(-0x39,-0x4)]!==Cesium$6['SceneMode']['SCENE3D'])return;!Cesium$6[_0xbb4543(0x2e1,0x32b)](this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x5e51f3[_0xbb4543(0x2ae,0x2c9)]));Cesium$6['defined'](this[_0x524356(-0x5b,0x21)])&&this['preExecute']();function _0x524356(_0xe5ae8b,_0x5c7095){return _0x437391(_0xe5ae8b,_0x5c7095- -0x65e);}Cesium$6[_0x524356(0x61,-0xe)](this['clearCommand'])&&_0x5e51f3[_0x524356(-0xed,-0x98)][_0xbb4543(0x379,0x36d)](this['clearCommand']);function _0xbb4543(_0x205feb,_0x2dcf08){return _0x20001d(_0x205feb,_0x2dcf08- -0x2d1);}_0x5e51f3['commandList']['push'](this[_0x524356(0xb1,0x61)]);}['isDestroyed'](){return![];}[_0x437391(0x5e3,0x5d4)](){if(this['clearCommand']){var _0x15209d,_0x599025;(_0x15209d=this['clearCommand'])!==null&&_0x15209d!==void 0x0&&_0x15209d[_0x562f16(0x418,0x413)]&&this[_0x2021f3(0x583,0x570)][_0x2021f3(0x56c,0x524)][_0x2021f3(0x4da,0x50d)](),(_0x599025=this['clearCommand'])!==null&&_0x599025!==void 0x0&&_0x599025['shaderProgram']&&this['clearCommand']['shaderProgram'][_0x2021f3(0x4da,0x518)](),delete this['clearCommand'];}function _0x2021f3(_0x135e34,_0x3b1715){return _0x437391(_0x3b1715,_0x135e34- -0xfa);}function _0x562f16(_0x2aeb27,_0x346297){return _0x437391(_0x346297,_0x2aeb27- -0x24e);}return this[_0x2021f3(0x5c5,0x576)]&&(this['commandToExecute'][_0x562f16(0x418,0x392)]&&this['commandToExecute']['vertexArray']['destroy'](),this['commandToExecute'][_0x2021f3(0x58a,0x530)]&&this['commandToExecute'][_0x2021f3(0x58a,0x591)][_0x562f16(0x386,0x31c)](),delete this[_0x2021f3(0x5c5,0x63a)]),Cesium$6[_0x2021f3(0x559,0x4d8)](this);}}const Cesium$5=mars3d__namespace[_0x437391(0x67e,0x6d4)],Util=(function(){const _0x5113a6=function(){const _0x45636f=new Cesium$5['Geometry']({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5['GeometryAttribute']({'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['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])});return _0x45636f;},_0x4e21b2=function(_0x359c35,_0xc5f1e3){if(Cesium$5['defined'](_0xc5f1e3)){const _0xf9475e={};_0xf9475e['arrayBufferView']=_0xc5f1e3,_0x359c35['source']=_0xf9475e;}const _0x18e1f7=new Cesium$5['Texture'](_0x359c35);return _0x18e1f7;},_0x426e4f=function(_0x34fbb0,_0x4accd0,_0x33f054){const _0x384c93={};_0x384c93[_0x5d3906(0x41e,0x41a)]=_0x34fbb0;function _0x5d3906(_0x1cdfc2,_0x1e3898){return _0x9531(_0x1e3898-0x210,_0x1cdfc2);}_0x384c93['colorTextures']=[_0x4accd0];function _0x4f659c(_0x4e1efd,_0x1f9b23){return _0x9531(_0x4e1efd-0x2dd,_0x1f9b23);}_0x384c93[_0x4f659c(0x4c5,0x46f)]=_0x33f054;const _0x20573b=new Cesium$5['Framebuffer'](_0x384c93);return _0x20573b;},_0x4cdd28=function(_0x586bd9){const _0xadf52e=!![];function _0x5687b5(_0x473387,_0x1e884e){return _0x9531(_0x473387- -0x239,_0x1e884e);}const _0x4cb495=![],_0x5ccc41={};_0x5ccc41[_0x5687b5(0x48,0xb3)]=_0x586bd9['viewport'];function _0x595697(_0x10d0bc,_0x61dbc7){return _0x9531(_0x10d0bc- -0x128,_0x61dbc7);}_0x5ccc41['depthTest']=_0x586bd9['depthTest'],_0x5ccc41['depthMask']=_0x586bd9['depthMask'],_0x5ccc41[_0x595697(0x1a5,0x140)]=_0x586bd9['blending'];const _0x1f4ba0=_0x5ccc41,_0x4a175d=Cesium$5['Appearance'][_0x595697(0xe5,0x97)](_0xadf52e,_0x4cb495,_0x1f4ba0);return _0x4a175d;},_0x4cc6b3=function(_0x30912e){const _0x4cab3b={},_0x23ff9d=Cesium$5[_0x35e045(0x258,0x26f)][_0x35e045(0x22e,0x2a2)](_0x30912e['west'],Cesium$5[_0xe95473(0x2f,0x2e)]['TWO_PI']),_0x78c8f3=Cesium$5['Math'][_0x35e045(0x22e,0x2b3)](_0x30912e['east'],Cesium$5['Math'][_0xe95473(0x95,0x87)]),_0x7a78eb=_0x30912e['width'];let _0x326c50,_0x3db79a;_0x7a78eb>Cesium$5[_0xe95473(-0x45,0x2e)]['THREE_PI_OVER_TWO']?(_0x326c50=0x0,_0x3db79a=Cesium$5[_0x35e045(0x258,0x218)]['TWO_PI']):_0x78c8f3-_0x23ff9d<_0x7a78eb?(_0x326c50=_0x23ff9d,_0x3db79a=_0x23ff9d+_0x7a78eb):(_0x326c50=_0x23ff9d,_0x3db79a=_0x78c8f3);_0x4cab3b['lon']={'min':Cesium$5['Math']['toDegrees'](_0x326c50),'max':Cesium$5[_0xe95473(0x2b,0x2e)][_0x35e045(0x2d0,0x2d6)](_0x3db79a)};const _0x4d534b=_0x30912e['south'],_0x18bd03=_0x30912e[_0x35e045(0x2e5,0x25a)],_0x3543fd=_0x30912e[_0x35e045(0x25b,0x27b)],_0x4e4c7e=_0x3543fd>Cesium$5['Math']['PI']/0xc?_0x3543fd/0x2:0x0;let _0x5632fe=Cesium$5['Math']['clampToLatitudeRange'](_0x4d534b-_0x4e4c7e);function _0x35e045(_0x108629,_0x56ff7a){return _0x9531(_0x108629-0x34,_0x56ff7a);}let _0x55168b=Cesium$5['Math']['clampToLatitudeRange'](_0x18bd03+_0x4e4c7e);_0x5632fe<-Cesium$5['Math']['PI_OVER_THREE']&&(_0x5632fe=-Cesium$5['Math']['PI_OVER_TWO']);function _0xe95473(_0x3cec97,_0xd20abf){return _0x9531(_0xd20abf- -0x1f6,_0x3cec97);}return _0x55168b>Cesium$5[_0x35e045(0x258,0x223)]['PI_OVER_THREE']&&(_0x55168b=Cesium$5[_0xe95473(0x5,0x2e)]['PI_OVER_TWO']),_0x4cab3b[_0x35e045(0x270,0x2f1)]={'min':Cesium$5['Math']['toDegrees'](_0x5632fe),'max':Cesium$5['Math'][_0x35e045(0x2d0,0x33d)](_0x55168b)},_0x4cab3b;},_0x406633={};_0x406633['getFullscreenQuad']=_0x5113a6,_0x406633['createTexture']=_0x4e21b2,_0x406633['createFramebuffer']=_0x426e4f,_0x406633['createRawRenderState']=_0x4cdd28,_0x406633[_0x269320(-0xe5,-0x14a)]=_0x4cc6b3;function _0x269320(_0x37ee83,_0x53af24){return _0x20001d(_0x53af24,_0x37ee83- -0x6d2);}return _0x406633;}());var segmentDraw_vert=_0x437391(0x5e0,0x623),segmentDraw_frag='uniform\x20sampler2D\x20colorTable;\x0a\x0ain\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20out_FragColor\x20=\x20texture(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}\x0a',fullscreen_vert='in\x20vec3\x20position;\x0ain\x20vec2\x20st;\x0a\x0aout\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0a}\x0a',trailDraw_frag='uniform\x20sampler2D\x20segmentsColorTexture;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0auniform\x20sampler2D\x20currentTrailsColor;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0auniform\x20float\x20fadeOpacity;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture(segmentsColorTexture,\x20textureCoordinate);\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture(currentTrailsColor,\x20textureCoordinate);\x0a\x0a\x20\x20\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0\x20*\x20trailsColor)\x20/\x20255.0;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0a\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20out_FragColor\x20+\x20pointsColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20out_FragColor\x20+\x20trailsColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20gl_FragDepth\x20=\x20min(pointsDepth,\x20trailsDepth);\x0a}\x0a',screenDraw_frag='uniform\x20sampler2D\x20trailsColorTexture;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture(trailsColorTexture,\x20textureCoordinate);\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20trailsColor;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x0a}\x0a';const Cesium$4=mars3d__namespace[_0x437391(0x755,0x6d4)];class ParticlesRendering{constructor(_0x1bf565,_0x535c7d,_0x2487e7,_0x42cb8,_0x4a811c){this['createRenderingTextures'](_0x1bf565,_0x535c7d,_0x2487e7['colors']),this['createRenderingFramebuffers'](_0x1bf565),this['createRenderingPrimitives'](_0x1bf565,_0x2487e7,_0x42cb8,_0x4a811c);}['createRenderingTextures'](_0x3dadc0,_0x4a04e4,_0x2065b6){function _0x39e437(_0x4d94aa,_0x335ff0){return _0x437391(_0x335ff0,_0x4d94aa- -0x2fc);}const _0x5681cf={};_0x5681cf['context']=_0x3dadc0,_0x5681cf[_0x57e8f2(0x441,0x474)]=_0x3dadc0['drawingBufferWidth'],_0x5681cf['height']=_0x3dadc0[_0x39e437(0x3b2,0x371)],_0x5681cf['pixelFormat']=Cesium$4[_0x39e437(0x306,0x298)]['RGBA'],_0x5681cf['pixelDatatype']=Cesium$4[_0x57e8f2(0x4a5,0x513)]['UNSIGNED_BYTE'];const _0x29f237=_0x5681cf,_0x410599={};_0x410599['context']=_0x3dadc0,_0x410599['width']=_0x3dadc0['drawingBufferWidth'];function _0x57e8f2(_0x41cb77,_0x4f2d12){return _0x20001d(_0x4f2d12,_0x41cb77- -0x197);}_0x410599[_0x57e8f2(0x420,0x40a)]=_0x3dadc0['drawingBufferHeight'],_0x410599['pixelFormat']=Cesium$4[_0x57e8f2(0x417,0x408)][_0x39e437(0x309,0x35e)],_0x410599['pixelDatatype']=Cesium$4[_0x39e437(0x394,0x3eb)][_0x39e437(0x355,0x359)];const _0x3452ee=_0x410599,_0x257a95=_0x2065b6['length'],_0x26b451=new Float32Array(_0x257a95*0x3);for(let _0x196e95=0x0;_0x196e95<_0x257a95;_0x196e95++){const _0x2d8769=Cesium$4[_0x39e437(0x32b,0x3a1)]['fromCssColorString'](_0x2065b6[_0x196e95]);_0x26b451[0x3*_0x196e95]=_0x2d8769['red'],_0x26b451[0x3*_0x196e95+0x1]=_0x2d8769['green'],_0x26b451[0x3*_0x196e95+0x2]=_0x2d8769['blue'];}const _0x4fb48a={'context':_0x3dadc0,'width':_0x257a95,'height':0x1,'pixelFormat':Cesium$4[_0x57e8f2(0x417,0x3ea)][_0x39e437(0x35a,0x377)],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4['TextureMinificationFilter'][_0x39e437(0x3d7,0x41f)],'magnificationFilter':Cesium$4[_0x39e437(0x2d3,0x24e)][_0x57e8f2(0x4e8,0x4b4)]})};this[_0x39e437(0x304,0x2aa)]={'segmentsColor':Util['createTexture'](_0x29f237),'segmentsDepth':Util['createTexture'](_0x3452ee),'currentTrailsColor':Util[_0x57e8f2(0x462,0x4dd)](_0x29f237),'currentTrailsDepth':Util[_0x57e8f2(0x462,0x40c)](_0x3452ee),'nextTrailsColor':Util['createTexture'](_0x29f237),'nextTrailsDepth':Util['createTexture'](_0x3452ee),'colorTable':Util['createTexture'](_0x4fb48a,_0x26b451)};}['createRenderingFramebuffers'](_0x36565d){function _0x19b48f(_0x418c5d,_0x2f5f6f){return _0x20001d(_0x418c5d,_0x2f5f6f- -0x53d);}function _0x23afc1(_0x5babe3,_0x4b2847){return _0x437391(_0x5babe3,_0x4b2847- -0x765);}this['framebuffers']={'segments':Util['createFramebuffer'](_0x36565d,this['textures'][_0x23afc1(-0x124,-0x106)],this['textures'][_0x19b48f(0xcd,0x7e)]),'currentTrails':Util['createFramebuffer'](_0x36565d,this[_0x23afc1(-0x17c,-0x165)]['currentTrailsColor'],this['textures']['currentTrailsDepth']),'nextTrails':Util[_0x19b48f(0xf5,0x11a)](_0x36565d,this[_0x23afc1(-0x16b,-0x165)][_0x23afc1(-0x11d,-0x1a5)],this['textures'][_0x23afc1(-0x1cb,-0x16a)])};}['createSegmentsGeometry'](_0x25d4b1){const _0x7120e0=0x4;let _0x455775=[];function _0x494a1f(_0x31cce3,_0x573d55){return _0x20001d(_0x31cce3,_0x573d55- -0x263);}for(let _0x23b04a=0x0;_0x23b04a<_0x25d4b1[_0x494a1f(0x432,0x3b7)];_0x23b04a++){for(let _0x20caba=0x0;_0x20caba<_0x25d4b1['particlesTextureSize'];_0x20caba++){for(let _0x5d6633=0x0;_0x5d6633<_0x7120e0;_0x5d6633++){_0x455775['push'](_0x23b04a/_0x25d4b1['particlesTextureSize']),_0x455775[_0x494a1f(0x460,0x3db)](_0x20caba/_0x25d4b1[_0x1ff3f3(0x528,0x5a6)]);}}}_0x455775=new Float32Array(_0x455775);let _0x3a0289=[];const _0x4574af=[-0x1,0x1];function _0x1ff3f3(_0x2b34bc,_0xfbf72e){return _0x437391(_0x2b34bc,_0xfbf72e- -0xc8);}const _0x5b180d=[-0x1,0x1];for(let _0x3fcf8b=0x0;_0x3fcf8b<_0x25d4b1['maxParticles'];_0x3fcf8b++){for(let _0x2c5660=0x0;_0x2c5660<_0x7120e0/0x2;_0x2c5660++){for(let _0x42f4d7=0x0;_0x42f4d7<_0x7120e0/0x2;_0x42f4d7++){_0x3a0289['push'](_0x4574af[_0x2c5660]),_0x3a0289[_0x494a1f(0x3c6,0x3db)](_0x5b180d[_0x42f4d7]),_0x3a0289[_0x494a1f(0x3cb,0x3db)](0x0);}}}_0x3a0289=new Float32Array(_0x3a0289);const _0x52a734=0x6*_0x25d4b1[_0x1ff3f3(0x495,0x4fc)],_0x56164b=new Uint32Array(_0x52a734);for(let _0x59f2b6=0x0,_0x1738be=0x0,_0x410c44=0x0;_0x59f2b6<_0x25d4b1['maxParticles'];_0x59f2b6++){_0x56164b[_0x1738be++]=_0x410c44+0x0,_0x56164b[_0x1738be++]=_0x410c44+0x1,_0x56164b[_0x1738be++]=_0x410c44+0x2,_0x56164b[_0x1738be++]=_0x410c44+0x2,_0x56164b[_0x1738be++]=_0x410c44+0x1,_0x56164b[_0x1738be++]=_0x410c44+0x3,_0x410c44+=0x4;}const _0x2afc60=new Cesium$4['Geometry']({'attributes':new Cesium$4[(_0x1ff3f3(0x540,0x576))]({'st':new Cesium$4[(_0x1ff3f3(0x571,0x572))]({'componentDatatype':Cesium$4[_0x494a1f(0x35b,0x3d6)][_0x494a1f(0x40f,0x3fb)],'componentsPerAttribute':0x2,'values':_0x455775}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype'][_0x494a1f(0x3c8,0x3fb)],'componentsPerAttribute':0x3,'values':_0x3a0289})}),'indices':_0x56164b});return _0x2afc60;}['createRenderingPrimitives'](_0x369349,_0x778875,_0x567cdf,_0x5de2a8){const _0x1409ac=this,_0x38586a={};function _0x42b2c9(_0x1f0abd,_0x331946){return _0x437391(_0x331946,_0x1f0abd- -0x58a);}_0x38586a['st']=0x0,_0x38586a[_0x12b133(0x1b2,0x1a9)]=0x1;const _0x2eb19f={};_0x2eb19f[_0x12b133(0x1d2,0x22c)]=[segmentDraw_vert];const _0x23745b={};_0x23745b['sources']=[segmentDraw_frag];const _0x266b6a={};_0x266b6a['enabled']=!![];const _0x3bd990={};_0x3bd990[_0x42b2c9(0xdb,0xc2)]=undefined,_0x3bd990[_0x12b133(0x183,0x183)]=_0x266b6a,_0x3bd990['depthMask']=!![];const _0x31ecab={};_0x31ecab['position']=0x0,_0x31ecab['st']=0x1;const _0x421479={};_0x421479['defines']=['DISABLE_GL_POSITION_LOG_DEPTH'],_0x421479['sources']=[fullscreen_vert];const _0x50efe6={};_0x50efe6[_0x42b2c9(0x10a,0xae)]=['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],_0x50efe6['sources']=[trailDraw_frag];const _0x2d6b74={};_0x2d6b74['position']=0x0,_0x2d6b74['st']=0x1;const _0x2a59ba={};_0x2a59ba['defines']=['DISABLE_GL_POSITION_LOG_DEPTH'];function _0x12b133(_0x412a0b,_0x396c73){return _0x437391(_0x412a0b,_0x396c73- -0x49e);}_0x2a59ba['sources']=[fullscreen_vert];const _0x5e9770={};_0x5e9770[_0x42b2c9(0x10a,0xd2)]=['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],_0x5e9770['sources']=[screenDraw_frag];const _0x38733d={};_0x38733d['enabled']=![];const _0x116a18={};_0x116a18[_0x42b2c9(0x94,0x31)]=!![],this['primitives']={'segments':new CustomPrimitive({'commandType':_0x12b133(0x28a,0x21d),'attributeLocations':_0x38586a,'geometry':this[_0x12b133(0x12c,0x18f)](_0x778875),'primitiveType':Cesium$4[_0x42b2c9(0x8c,0xdd)][_0x42b2c9(0x69,0x69)],'uniformMap':{'currentParticlesPosition':function(){function _0x3f446a(_0x4b3f1b,_0x51c912){return _0x12b133(_0x51c912,_0x4b3f1b-0x212);}return _0x5de2a8['particlesTextures'][_0x3f446a(0x396,0x410)];},'postProcessingPosition':function(){function _0x2ae765(_0x55b487,_0x3a7534){return _0x42b2c9(_0x55b487-0x48a,_0x3a7534);}return _0x5de2a8[_0x2ae765(0x59b,0x597)]['postProcessingPosition'];},'postProcessingSpeed':function(){return _0x5de2a8['particlesTextures']['postProcessingSpeed'];},'colorTable':function(){function _0x3d10b0(_0x4075fb,_0x6b6635){return _0x12b133(_0x4075fb,_0x6b6635- -0x207);}function _0x45f549(_0xd0863b,_0x5bd3a1){return _0x12b133(_0xd0863b,_0x5bd3a1- -0x21);}return _0x1409ac[_0x3d10b0(-0xaa,-0xa5)][_0x3d10b0(-0x36,-0x81)];},'aspect':function(){function _0x47f191(_0x242f9f,_0x62d706){return _0x42b2c9(_0x62d706-0x58,_0x242f9f);}return _0x369349['drawingBufferWidth']/_0x369349[_0x47f191(0xfb,0x17c)];},'pixelSize':function(){return _0x567cdf['pixelSize'];},'lineWidth':function(){return _0x778875['lineWidth'];},'particleHeight':function(){function _0x3e702d(_0x35fc49,_0x5a2eb7){return _0x42b2c9(_0x5a2eb7-0x467,_0x35fc49);}return _0x778875[_0x3e702d(0x524,0x4a5)];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x2eb19f),'fragmentShaderSource':new Cesium$4[(_0x12b133(0x1d4,0x173))](_0x23745b),'rawRenderState':Util['createRawRenderState'](_0x3bd990),'framebuffer':this[_0x12b133(0x24b,0x1c0)]['segments'],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x42b2c9(0x131,0x168),'attributeLocations':_0x31ecab,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType'][_0x12b133(0x1aa,0x155)],'uniformMap':{'segmentsColorTexture':function(){function _0x381ef4(_0x23bfa3,_0x1d65ad){return _0x12b133(_0x23bfa3,_0x1d65ad-0x30d);}return _0x1409ac[_0x381ef4(0x47e,0x46f)]['segmentsColor'];},'segmentsDepthTexture':function(){function _0x137b85(_0x188e0d,_0x435e07){return _0x12b133(_0x188e0d,_0x435e07- -0x4a);}return _0x1409ac[_0x137b85(0x106,0x118)]['segmentsDepth'];},'currentTrailsColor':function(){function _0x5a6abb(_0x3712b1,_0x2b5f64){return _0x42b2c9(_0x2b5f64-0x39f,_0x3712b1);}return _0x1409ac['framebuffers'][_0x5a6abb(0x3d6,0x444)]['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0xe80117(_0x8ee97e,_0x18fb05){return _0x12b133(_0x18fb05,_0x8ee97e-0x312);}return _0x1409ac['framebuffers']['currentTrails'][_0xe80117(0x440,0x41e)];},'fadeOpacity':function(){return _0x778875['fadeOpacity'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x421479),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0x50efe6),'rawRenderState':Util[_0x12b133(0x1b6,0x230)]({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction']['ALWAYS']},'depthMask':!![]}),'framebuffer':this[_0x42b2c9(0xd4,0x137)]['nextTrails'],'autoClear':!![],'preExecute':function(){const _0x5d7388=_0x1409ac[_0xc3b398(0x5cf,0x575)]['currentTrails'];_0x1409ac['framebuffers']['currentTrails']=_0x1409ac[_0x53bc08(0x106,0x111)]['nextTrails'];function _0x53bc08(_0x54fb9b,_0x4e0b5e){return _0x42b2c9(_0x54fb9b-0x32,_0x4e0b5e);}function _0xc3b398(_0x4ed26d,_0x142aa1){return _0x42b2c9(_0x142aa1-0x4a1,_0x4ed26d);}_0x1409ac[_0xc3b398(0x514,0x575)]['nextTrails']=_0x5d7388,_0x1409ac[_0x53bc08(0x95,0xb9)]['trails']['commandToExecute']['framebuffer']=_0x1409ac[_0x53bc08(0x106,0x10f)]['nextTrails'],_0x1409ac['primitives']['trails'][_0xc3b398(0x5db,0x594)]['framebuffer']=_0x1409ac['framebuffers']['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x2d6b74,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'trailsColorTexture':function(){function _0x373526(_0x57b66b,_0x1fa0b1){return _0x42b2c9(_0x57b66b-0x1b5,_0x1fa0b1);}return _0x1409ac[_0x373526(0x289,0x22a)]['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0xba389c(_0x57936a,_0xe53dc8){return _0x42b2c9(_0x57936a- -0x1a3,_0xe53dc8);}function _0x23626a(_0x13a381,_0x13a724){return _0x12b133(_0x13a724,_0x13a381-0x3a9);}return _0x1409ac['framebuffers'][_0xba389c(-0xf8,-0xbf)][_0x23626a(0x4d7,0x49a)];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x2a59ba),'fragmentShaderSource':new Cesium$4[(_0x42b2c9(0x87,0x3a))](_0x5e9770),'rawRenderState':Util[_0x12b133(0x1e2,0x230)]({'viewport':undefined,'depthTest':_0x38733d,'depthMask':!![],'blending':_0x116a18}),'framebuffer':undefined})};}}var getWind_frag='//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0a\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\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x,\x20360.0);\x0a\x20\x20\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20-90.0,\x2090.0);\x0a\x0a\x20\x20\x20\x20vec3\x20index3D\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20index3D.z\x20=\x20(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],\x20width\x20=\x203,\x20height\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\x203\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x202\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWind(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20\x20\x20float\x20result\x20=\x20texture(windTexture,\x20normalizedIndex2D).r;\x0a\x20\x20\x20\x20return\x20result;\x0a}\x0a\x0aconst\x20mat4\x20kernelMatrix\x20=\x20mat4(\x0a\x20\x20\x20\x200.0,\x20-1.0,\x202.0,\x20-1.0,\x20//\x20first\x20column\x0a\x20\x20\x20\x202.0,\x200.0,\x20-5.0,\x203.0,\x20//\x20second\x20column\x0a\x20\x20\x20\x200.0,\x201.0,\x204.0,\x20-3.0,\x20//\x20third\x20column\x0a\x20\x20\x20\x200.0,\x200.0,\x20-1.0,\x201.0\x20//\x20fourth\x20column\x0a);\x0afloat\x20oneDimensionInterpolation(float\x20t,\x20float\x20p0,\x20float\x20p1,\x20float\x20p2,\x20float\x20p3)\x20{\x0a\x20\x20\x20\x20vec4\x20tVec4\x20=\x20vec4(1.0,\x20t,\x20t\x20*\x20t,\x20t\x20*\x20t\x20*\x20t);\x0a\x20\x20\x20\x20tVec4\x20=\x20tVec4\x20/\x202.0;\x0a\x20\x20\x20\x20vec4\x20pVec4\x20=\x20vec4(p0,\x20p1,\x20p2,\x20p3);\x0a\x20\x20\x20\x20return\x20dot((tVec4\x20*\x20kernelMatrix),\x20pVec4);\x0a}\x0a\x0afloat\x20calculateB(sampler2D\x20windTexture,\x20float\x20t,\x20float\x20lon,\x20float\x20lat,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20float\x20lon0\x20=\x20floor(lon)\x20-\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon1\x20=\x20floor(lon);\x0a\x20\x20\x20\x20float\x20lon2\x20=\x20floor(lon)\x20+\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon3\x20=\x20floor(lon)\x20+\x202.0\x20*\x20interval.x;\x0a\x0a\x20\x20\x20\x20float\x20p0\x20=\x20getWind(windTexture,\x20vec3(lon0,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p1\x20=\x20getWind(windTexture,\x20vec3(lon1,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p2\x20=\x20getWind(windTexture,\x20vec3(lon2,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p3\x20=\x20getWind(windTexture,\x20vec3(lon3,\x20lat,\x20lev));\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(t,\x20p0,\x20p1,\x20p2,\x20p3);\x0a}\x0a\x0afloat\x20interpolateOneTexture(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20\x20\x20float\x20lat0\x20=\x20floor(lat)\x20-\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat1\x20=\x20floor(lat);\x0a\x20\x20\x20\x20float\x20lat2\x20=\x20floor(lat)\x20+\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat3\x20=\x20floor(lat)\x20+\x202.0\x20*\x20interval.y;\x0a\x0a\x20\x20\x20\x20vec2\x20coefficient\x20=\x20lonLatLev.xy\x20-\x20floor(lonLatLev.xy);\x0a\x20\x20\x20\x20float\x20b0\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat0,\x20lev);\x0a\x20\x20\x20\x20float\x20b1\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat1,\x20lev);\x0a\x20\x20\x20\x20float\x20b2\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat2,\x20lev);\x0a\x20\x20\x20\x20float\x20b3\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat3,\x20lev);\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(coefficient.y,\x20b0,\x20b1,\x20b2,\x20b3);\x0a}\x0a\x0avec3\x20bicubic(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bicubic_interpolation#Bicubic_convolution_algorithm\x0a\x20\x20\x20\x20float\x20u\x20=\x20interpolateOneTexture(U,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20v\x20=\x20interpolateOneTexture(V,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}\x0a',updateSpeed_frag='uniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0auniform\x20sampler2D\x20particlesWind;\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20speedFactor;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec3\x20percent\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20\x20\x20float\x20normalization\x20=\x20length(percent);\x0a\x0a\x20\x20\x20\x20return\x20normalization;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20//\x20vec3\x20currentSpeed\x20=\x20texture(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20out_FragColor\x20=\x20nextSpeed;\x0a}\x0a',updatePosition_frag=_0x20001d(0x6af,0x678),postProcessingPosition_frag=_0x20001d(0x549,0x5c5),postProcessingSpeed_frag='uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}\x0a';const Cesium$3=mars3d__namespace['Cesium'];class ParticlesComputing{constructor(_0x402c71,_0x47a238,_0x8861c9,_0x408d38){this['data']=_0x47a238,this[_0x189210(0x17b,0x1a2)](_0x402c71,_0x47a238),this['createParticlesTextures'](_0x402c71,_0x8861c9,_0x408d38);function _0x189210(_0x580322,_0x1ef6ea){return _0x437391(_0x1ef6ea,_0x580322- -0x475);}this['createComputingPrimitives'](_0x47a238,_0x8861c9,_0x408d38);}[_0x437391(0x5b8,0x5f0)](_0x9235fc,_0x4ce054){function _0x363af6(_0x1d4d46,_0x4c9d8c){return _0x437391(_0x1d4d46,_0x4c9d8c- -0x411);}function _0x11861b(_0x4f8df7,_0x5a5c32){return _0x437391(_0x5a5c32,_0x4f8df7- -0x107);}const _0x473379={'context':_0x9235fc,'width':_0x4ce054['dimensions'][_0x363af6(0x151,0x1b9)],'height':_0x4ce054['dimensions']['lat']*(_0x4ce054['dimensions']['lev']||0x1),'pixelFormat':Cesium$3['PixelFormat']['LUMINANCE'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0x11861b(0x4ff,0x4bf)],'magnificationFilter':Cesium$3[_0x363af6(0x243,0x1be)][_0x363af6(0x224,0x1f5)]})};this['windTextures']={'U':Util[_0x11861b(0x546,0x4cd)](_0x473379,_0x4ce054['U'][_0x363af6(0x162,0x1e7)]),'V':Util['createTexture'](_0x473379,_0x4ce054['V'][_0x11861b(0x4f1,0x514)])};}[_0x437391(0x66d,0x63b)](_0x5d1e6d,_0x19ee8e,_0x4fdb00){const _0x175781={'context':_0x5d1e6d,'width':_0x19ee8e['particlesTextureSize'],'height':_0x19ee8e[_0x2135bd(0x39e,0x36d)],'pixelFormat':Cesium$3[_0x24cfac(0x4fb,0x49d)][_0x2135bd(0x2b5,0x2cd)],'pixelDatatype':Cesium$3[_0x2135bd(0x3a5,0x38f)][_0x24cfac(0x5ab,0x598)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3[_0x24cfac(0x4c8,0x53c)][_0x2135bd(0x306,0x305)]})};function _0x24cfac(_0x367012,_0x2a2f5a){return _0x437391(_0x2a2f5a,_0x367012- -0x107);}function _0x2135bd(_0x69ae07,_0x3ee1d2){return _0x437391(_0x69ae07,_0x3ee1d2- -0x301);}const _0xc8c4ae=this[_0x24cfac(0x5c1,0x597)](_0x19ee8e['maxParticles'],_0x4fdb00),_0x45323a=new Float32Array(0x4*_0x19ee8e[_0x2135bd(0x2e1,0x2c3)])['fill'](0x0);this[_0x24cfac(0x594,0x537)]={'particlesWind':Util[_0x2135bd(0x322,0x34c)](_0x175781),'currentParticlesPosition':Util['createTexture'](_0x175781,_0xc8c4ae),'nextParticlesPosition':Util['createTexture'](_0x175781,_0xc8c4ae),'currentParticlesSpeed':Util[_0x24cfac(0x546,0x521)](_0x175781,_0x45323a),'nextParticlesSpeed':Util['createTexture'](_0x175781,_0x45323a),'postProcessingPosition':Util['createTexture'](_0x175781,_0xc8c4ae),'postProcessingSpeed':Util['createTexture'](_0x175781,_0x45323a)};}['randomizeParticles'](_0xcc6ecc,_0x3e8f19){function _0x4c5225(_0x3174c1,_0x4cdcb3){return _0x437391(_0x3174c1,_0x4cdcb3- -0x2df);}const _0x5f3929=new Float32Array(0x4*_0xcc6ecc);function _0x54fb27(_0xd92308,_0x1119b7){return _0x437391(_0xd92308,_0x1119b7- -0x5dd);}for(let _0x14015b=0x0;_0x14015b<_0xcc6ecc;_0x14015b++){_0x5f3929[0x4*_0x14015b]=Cesium$3['Math']['randomBetween'](_0x3e8f19['lonRange']['x'],_0x3e8f19['lonRange']['y']),_0x5f3929[0x4*_0x14015b+0x1]=Cesium$3['Math']['randomBetween'](_0x3e8f19['latRange']['x'],_0x3e8f19['latRange']['y']),_0x5f3929[0x4*_0x14015b+0x2]=Cesium$3['Math']['randomBetween'](this['data'][_0x54fb27(0x177,0xee)][_0x54fb27(0xcd,0x7c)],this['data'][_0x54fb27(0x146,0xee)]['max']),_0x5f3929[0x4*_0x14015b+0x3]=0x0;}return _0x5f3929;}['destroyParticlesTextures'](){function _0x5e19dc(_0x2d9bca,_0x487857){return _0x437391(_0x2d9bca,_0x487857- -0x145);}Object['keys'](this[_0x5e19dc(0x561,0x556)])['forEach'](_0x5318fa=>{this['particlesTextures'][_0x5318fa]['destroy']();});}[_0x437391(0x628,0x629)](_0x18fb41,_0x459d89,_0x187189){const _0x3ba965=new Cesium$3['Cartesian3'](_0x18fb41['dimensions']['lon'],_0x18fb41['dimensions']['lat'],_0x18fb41['dimensions']['lev']),_0x217a0c=new Cesium$3['Cartesian3'](_0x18fb41['lon']['min'],_0x18fb41['lat']['min'],_0x18fb41['lev'][_0x5626f3(-0x22,0x63)]),_0x40e15c=new Cesium$3[(_0x2aa746(0x589,0x614))](_0x18fb41['lon']['max'],_0x18fb41['lat'][_0x5626f3(0x0,-0x14)],_0x18fb41['lev'][_0x2aa746(0x60a,0x68a)]),_0x3b2874=new Cesium$3[(_0x5626f3(-0x81,-0xf0))]((_0x40e15c['x']-_0x217a0c['x'])/(_0x3ba965['x']-0x1),(_0x40e15c['y']-_0x217a0c['y'])/(_0x3ba965['y']-0x1),_0x3ba965['z']>0x1?(_0x40e15c['z']-_0x217a0c['z'])/(_0x3ba965['z']-0x1):0x1),_0x2e3861=new Cesium$3['Cartesian2'](_0x18fb41['U'][_0x2aa746(0x5e8,0x626)],_0x18fb41['U']['max']),_0x5c1cc4=new Cesium$3['Cartesian2'](_0x18fb41['V']['min'],_0x18fb41['V'][_0x5626f3(0x0,0x20)]),_0x30b264=this,_0x4492e3={};_0x4492e3['U']=function(){function _0x50bffd(_0x4d400d,_0x3f6b3a){return _0x2aa746(_0x3f6b3a- -0x37c,_0x4d400d);}return _0x30b264[_0x50bffd(0x2c3,0x2d9)]['U'];},_0x4492e3['V']=function(){function _0x5cb4a5(_0x3482c0,_0x3a870a){return _0x5626f3(_0x3a870a-0x3e7,_0x3482c0);}return _0x30b264[_0x5cb4a5(0x3e2,0x432)]['V'];},_0x4492e3['currentParticlesPosition']=function(){return _0x30b264['particlesTextures']['currentParticlesPosition'];},_0x4492e3['dimension']=function(){return _0x3ba965;},_0x4492e3['minimum']=function(){return _0x217a0c;},_0x4492e3[_0x2aa746(0x5b7,0x5c9)]=function(){return _0x40e15c;};function _0x5626f3(_0x27eaeb,_0x4cea76){return _0x437391(_0x4cea76,_0x27eaeb- -0x67b);}_0x4492e3['interval']=function(){return _0x3b2874;};const _0x4b1b77={};_0x4b1b77['sources']=[getWind_frag];const _0x1c453a={};_0x1c453a['sources']=[updateSpeed_frag];const _0xeb7f3f={};_0xeb7f3f[_0x5626f3(0x4f,0x26)]=[updatePosition_frag];const _0x556c7e={};_0x556c7e['sources']=[postProcessingPosition_frag];const _0x2f0416={};function _0x2aa746(_0x1bd04e,_0xaaa556){return _0x437391(_0xaaa556,_0x1bd04e- -0x71);}_0x2f0416['sources']=[postProcessingSpeed_frag],this['primitives']={'getWind':new CustomPrimitive({'commandType':_0x2aa746(0x63b,0x642),'uniformMap':_0x4492e3,'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x4b1b77),'outputTexture':this['particlesTextures']['particlesWind'],'preExecute':function(){function _0x2bc17c(_0x94782c,_0x575427){return _0x5626f3(_0x575427-0x514,_0x94782c);}function _0x1b1f75(_0x1a3ac4,_0x4712ec){return _0x5626f3(_0x1a3ac4-0x582,_0x4712ec);}_0x30b264[_0x1b1f75(0x4f4,0x515)][_0x1b1f75(0x5c9,0x58a)]['commandToExecute']['outputTexture']=_0x30b264[_0x1b1f75(0x5a2,0x621)]['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesSpeed':function(){function _0x450e2b(_0x2fdd36,_0x425379){return _0x2aa746(_0x2fdd36- -0x304,_0x425379);}return _0x30b264['particlesTextures'][_0x450e2b(0x2f3,0x27b)];},'particlesWind':function(){function _0x518414(_0x3cf380,_0x13a996){return _0x2aa746(_0x13a996- -0x724,_0x3cf380);}function _0x212ef6(_0x1b3dfe,_0x1ddae9){return _0x5626f3(_0x1ddae9-0x3d2,_0x1b3dfe);}return _0x30b264[_0x518414(-0x97,-0xfa)][_0x518414(-0x108,-0x15d)];},'uSpeedRange':function(){return _0x2e3861;},'vSpeedRange':function(){return _0x5c1cc4;},'pixelSize':function(){return _0x187189['pixelSize'];},'speedFactor':function(){function _0x288fd2(_0x174e64,_0x1eec9c){return _0x2aa746(_0x1eec9c- -0x5ae,_0x174e64);}return _0x459d89[_0x288fd2(0xc8,0x7b)];}},'fragmentShaderSource':new Cesium$3[(_0x5626f3(-0x6a,-0xd3))](_0x1c453a),'outputTexture':this[_0x2aa746(0x62a,0x5c8)]['nextParticlesSpeed'],'preExecute':function(){const _0xb98b52=_0x30b264['particlesTextures']['currentParticlesSpeed'];_0x30b264[_0x24518e(0xbe,0x3e)][_0x3331e3(0x4,-0x7e)]=_0x30b264['particlesTextures']['postProcessingSpeed'],_0x30b264[_0x3331e3(-0xb4,-0x4b)][_0x24518e(0x95,0xbe)]=_0xb98b52;function _0x3331e3(_0xe8ddbf,_0x370989){return _0x5626f3(_0x370989- -0x6b,_0xe8ddbf);}function _0x24518e(_0x2a3023,_0x595ed6){return _0x5626f3(_0x2a3023-0x9e,_0x595ed6);}_0x30b264['primitives'][_0x24518e(0x55,0x27)][_0x3331e3(-0x3,-0x27)][_0x3331e3(-0xef,-0xa2)]=_0x30b264['particlesTextures']['nextParticlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':_0x2aa746(0x63b,0x5c8),'uniformMap':{'currentParticlesPosition':function(){function _0x60bab6(_0x5a1208,_0x1e2482){return _0x5626f3(_0x5a1208- -0x13a,_0x1e2482);}return _0x30b264['particlesTextures'][_0x60bab6(-0x193,-0x1c9)];},'currentParticlesSpeed':function(){return _0x30b264['particlesTextures']['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0xeb7f3f),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function(){const _0x534ec8=_0x30b264['particlesTextures']['currentParticlesPosition'];_0x30b264[_0x53b91a(0x468,0x4a7)][_0x53b91a(0x3ef,0x418)]=_0x30b264[_0x53b91a(0x468,0x4ee)]['postProcessingPosition'];function _0x53b91a(_0x394c16,_0x5a7cec){return _0x5626f3(_0x394c16-0x448,_0x5a7cec);}_0x30b264[_0x53b91a(0x468,0x4a3)]['postProcessingPosition']=_0x534ec8;function _0x4f391a(_0x321244,_0x17518d){return _0x5626f3(_0x17518d-0x261,_0x321244);}_0x30b264['primitives'][_0x4f391a(0x2d7,0x285)]['commandToExecute']['outputTexture']=_0x30b264[_0x53b91a(0x468,0x4ec)][_0x4f391a(0x1e2,0x229)];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function(){function _0x30009e(_0x1d5ed2,_0x53766a){return _0x5626f3(_0x53766a-0x1ba,_0x1d5ed2);}return _0x30b264[_0x30009e(0x179,0x1da)]['nextParticlesPosition'];},'nextParticlesSpeed':function(){return _0x30b264['particlesTextures']['nextParticlesSpeed'];},'lonRange':function(){function _0x2434ac(_0x4b4c18,_0x18af2e){return _0x5626f3(_0x18af2e- -0x100,_0x4b4c18);}return _0x187189[_0x2434ac(-0xa7,-0x102)];},'latRange':function(){function _0x10de41(_0x96d68d,_0x406649){return _0x5626f3(_0x406649-0x4e8,_0x96d68d);}return _0x187189[_0x10de41(0x46c,0x484)];},'randomCoefficient':function(){const _0x625c66=Math['random']();return _0x625c66;},'dropRate':function(){return _0x459d89['dropRate'];},'dropRateBump':function(){return _0x459d89['dropRateBump'];}},'fragmentShaderSource':new Cesium$3[(_0x5626f3(-0x6a,-0x92))](_0x556c7e),'outputTexture':this[_0x5626f3(0x20,0xa0)][_0x2aa746(0x5ce,0x556)],'preExecute':function(){function _0x4dbbd4(_0x505387,_0x20317e){return _0x5626f3(_0x20317e-0x241,_0x505387);}_0x30b264['primitives']['postProcessingPosition'][_0x4dbbd4(0x21b,0x285)]['outputTexture']=_0x30b264['particlesTextures']['postProcessingPosition'];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function(){function _0x6889cc(_0x71e189,_0x3ff56e){return _0x5626f3(_0x3ff56e-0x99,_0x71e189);}function _0x52732d(_0x5e4f03,_0xec5f62){return _0x2aa746(_0x5e4f03- -0x43f,_0xec5f62);}return _0x30b264[_0x52732d(0x1eb,0x1f5)][_0x6889cc(-0x24,0x5d)];},'nextParticlesSpeed':function(){return _0x30b264['particlesTextures']['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3[(_0x5626f3(-0x6a,-0x7d))](_0x2f0416),'outputTexture':this['particlesTextures']['postProcessingSpeed'],'preExecute':function(){function _0x3a64c6(_0x13074d,_0x1c1bc1){return _0x2aa746(_0x1c1bc1- -0x4c3,_0x13074d);}function _0x146eae(_0xc20f7,_0x2292c7){return _0x5626f3(_0xc20f7-0x28,_0x2292c7);}_0x30b264['primitives'][_0x146eae(0x1f,0x8e)][_0x3a64c6(0x16c,0x18b)]['outputTexture']=_0x30b264['particlesTextures']['postProcessingSpeed'];}})};}}const Cesium$2=mars3d__namespace['Cesium'];class ParticleSystem{constructor(_0x5e11c5,_0x5acfa5,_0x468a81,_0x34a22f){this['context']=_0x5e11c5,_0x5acfa5={..._0x5acfa5};_0x5acfa5['udata']&&_0x5acfa5['vdata']&&(_0x5acfa5['dimensions']={},_0x5acfa5[_0x3d1c71(0x547,0x557)]['lon']=_0x5acfa5[_0x3d1c71(0x534,0x540)],_0x5acfa5['dimensions'][_0x1d90a2(0x2a9,0x32f)]=_0x5acfa5['rows'],_0x5acfa5[_0x3d1c71(0x547,0x4da)]['lev']=_0x5acfa5['lev']||0x1,_0x5acfa5['lon']={},_0x5acfa5['lon']['min']=_0x5acfa5['xmin'],_0x5acfa5[_0x3d1c71(0x4d4,0x4e8)]['max']=_0x5acfa5['xmax'],_0x5acfa5['lat']={},_0x5acfa5[_0x3d1c71(0x52a,0x4be)]['min']=_0x5acfa5['ymin'],_0x5acfa5[_0x3d1c71(0x52a,0x5b3)]['max']=_0x5acfa5['ymax'],_0x5acfa5['lev']={},_0x5acfa5['lev'][_0x3d1c71(0x563,0x553)]=_0x5acfa5['levmin']??0x1,_0x5acfa5[_0x3d1c71(0x5d5,0x633)][_0x1d90a2(0x304,0x2c1)]=_0x5acfa5['levmax']??0x1,_0x5acfa5['U']={},_0x5acfa5['U']['array']=new Float32Array(_0x5acfa5['udata']),_0x5acfa5['U'][_0x1d90a2(0x2e2,0x32d)]=_0x5acfa5[_0x3d1c71(0x538,0x5b1)]??Math[_0x3d1c71(0x563,0x5ba)](..._0x5acfa5[_0x3d1c71(0x53a,0x4c8)]),_0x5acfa5['U'][_0x1d90a2(0x304,0x355)]=_0x5acfa5['umax']??Math['max'](..._0x5acfa5['udata']),_0x5acfa5['V']={},_0x5acfa5['V'][_0x1d90a2(0x281,0x2e5)]=new Float32Array(_0x5acfa5[_0x1d90a2(0x2de,0x337)]),_0x5acfa5['V']['min']=_0x5acfa5[_0x1d90a2(0x305,0x377)]??Math['min'](..._0x5acfa5[_0x3d1c71(0x55f,0x5d3)]),_0x5acfa5['V']['max']=_0x5acfa5['vmax']??Math['max'](..._0x5acfa5[_0x3d1c71(0x55f,0x511)]));this['data']=_0x5acfa5,this['options']=_0x468a81,this['viewerParameters']=_0x34a22f,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this[_0x1d90a2(0x2d5,0x352)]);function _0x1d90a2(_0x31e13c,_0x1129e0){return _0x437391(_0x1129e0,_0x31e13c- -0x377);}function _0x3d1c71(_0x19569a,_0x3bd845){return _0x437391(_0x3bd845,_0x19569a- -0xf6);}this['particlesRendering']=new ParticlesRendering(this[_0x3d1c71(0x4f8,0x4d5)],this['data'],this[_0x3d1c71(0x5ab,0x5d7)],this['viewerParameters'],this['particlesComputing']);}[_0x437391(0x6c9,0x65d)](_0x12a021){this[_0xc18af6(0x71,0xb8)]['destroyParticlesTextures']();function _0xc18af6(_0x10b5ef,_0x2c46cb){return _0x20001d(_0x2c46cb,_0x10b5ef- -0x4fd);}Object['keys'](this['particlesComputing']['windTextures'])['forEach'](_0x39caea=>{this['particlesComputing']['windTextures'][_0x39caea]['destroy']();}),this['particlesRendering'][_0x2b2a14(0x234,0x2b5)]['colorTable'][_0xc18af6(0x83,0x100)](),Object['keys'](this[_0x2b2a14(0x271,0x2c3)]['framebuffers'])[_0x2b2a14(0x375,0x35f)](_0x3fec68=>{function _0x355e42(_0xea091d,_0x453834){return _0x2b2a14(_0x453834,_0xea091d- -0x282);}function _0x27b0d0(_0x4ac881,_0x5bd638){return _0xc18af6(_0x4ac881- -0x255,_0x5bd638);}this[_0x27b0d0(-0x198,-0x169)][_0x355e42(0x91,0x90)][_0x3fec68]['destroy']();}),this['context']=_0x12a021;function _0x2b2a14(_0x466373,_0x18ca03){return _0x437391(_0x466373,_0x18ca03- -0x34b);}this[_0xc18af6(0x71,0xdd)]=new ParticlesComputing(this['context'],this['data'],this[_0x2b2a14(0x340,0x356)],this[_0x2b2a14(0x2c5,0x301)]),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this['options'],this[_0xc18af6(0xfb,0x16c)],this[_0xc18af6(0x71,0xcb)]);}['clearFramebuffers'](){function _0x28a497(_0x32c3f7,_0x1580c3){return _0x20001d(_0x32c3f7,_0x1580c3- -0x6fe);}const _0x34bc66=new Cesium$2[(_0x28a497(-0x69,-0x89))]({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2[_0x247d4a(0x3ce,0x39c)]['OPAQUE']});function _0x247d4a(_0x494153,_0x22b295){return _0x20001d(_0x22b295,_0x494153- -0x1a9);}Object[_0x28a497(-0x17f,-0x18b)](this[_0x28a497(-0x110,-0x144)]['framebuffers'])['forEach'](_0x298d2d=>{function _0x41464a(_0x2b49c5,_0x4d8e64){return _0x247d4a(_0x2b49c5- -0x47d,_0x4d8e64);}_0x34bc66[_0x41464a(-0x9,0x48)]=this['particlesRendering']['framebuffers'][_0x298d2d],_0x34bc66['execute'](this['context']);});}[_0x437391(0x661,0x648)](_0x45fe3a){this[_0xf47197(0x5ce,0x5dd)]();function _0xf47197(_0x470be5,_0x555295){return _0x437391(_0x555295,_0x470be5- -0xf7);}this['particlesComputing']['destroyParticlesTextures'](),this[_0xcd60e1(0xcf,0xab)][_0xcd60e1(0x148,0x18d)](this[_0xcd60e1(0xfb,0x17e)],this[_0xf47197(0x5aa,0x601)],this['viewerParameters']);function _0xcd60e1(_0x16fea1,_0x44f332){return _0x437391(_0x44f332,_0x16fea1- -0x4f3);}if(_0x45fe3a){var _0x5258c0;const _0x1f8126=this['particlesRendering'][_0xf47197(0x536,0x532)](this['options']);this[_0xcd60e1(0x11b,0x100)]['primitives'][_0xcd60e1(0x1c4,0x1c0)][_0xcd60e1(0xf1,0x150)]=_0x1f8126;const _0x580b00=Cesium$2['VertexArray']['fromGeometry']({'context':this['context'],'geometry':_0x1f8126,'attributeLocations':this['particlesRendering']['primitives']['segments']['attributeLocations'],'bufferUsage':Cesium$2[_0xcd60e1(0x153,0x1c5)][_0xcd60e1(0x102,0x13e)]});(_0x5258c0=this['particlesRendering']['primitives'])!==null&&_0x5258c0!==void 0x0&&(_0x5258c0=_0x5258c0['segments'])!==null&&_0x5258c0!==void 0x0&&_0x5258c0['commandToExecute']&&(this['particlesRendering']['primitives'][_0xf47197(0x5c0,0x629)]['commandToExecute'][_0xcd60e1(0x173,0x14f)]=_0x580b00);}}['setOptions'](_0x265884){let _0xa5ab07=![];function _0x2a3753(_0x45f5ac,_0x1552a9){return _0x437391(_0x45f5ac,_0x1552a9- -0x738);}function _0x3d37ed(_0x3df9ba,_0x582049){return _0x437391(_0x3df9ba,_0x582049- -0x1b4);}this['options'][_0x3d37ed(0x445,0x410)]!==_0x265884['maxParticles']&&(_0xa5ab07=!![]),Object['keys'](_0x265884)['forEach'](_0x2651d4=>{function _0x21e56e(_0x14d48a,_0x458780){return _0x3d37ed(_0x458780,_0x14d48a- -0x10e);}this[_0x21e56e(0x3df,0x35a)][_0x2651d4]=_0x265884[_0x2651d4];}),this[_0x2a3753(-0x100,-0xf0)](_0xa5ab07);}[_0x437391(0x676,0x687)](_0x3642d9){function _0x4e6d7b(_0x22b114,_0x18b701){return _0x437391(_0x18b701,_0x22b114- -0x2fd);}Object['keys'](_0x3642d9)['forEach'](_0x4f9a60=>{function _0x110f18(_0x272097,_0x4eee06){return _0x9531(_0x4eee06- -0x11b,_0x272097);}this[_0x110f18(0x15b,0x14d)][_0x4f9a60]=_0x3642d9[_0x4f9a60];}),this[_0x4e6d7b(0x34b,0x305)](![]);}['destroy'](){clearTimeout(this['canrefresh']);function _0x29b83b(_0x58a68d,_0x498e83){return _0x20001d(_0x58a68d,_0x498e83- -0x3ac);}this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this['particlesComputing'][_0x29b83b(0x333,0x2c6)])['forEach'](_0x398db9=>{this['particlesComputing']['windTextures'][_0x398db9]['destroy']();});function _0x3478a3(_0x34d69f,_0x560c2f){return _0x437391(_0x34d69f,_0x560c2f- -0x1cf);}this[_0x29b83b(0x1f0,0x20e)][_0x3478a3(0x4b4,0x431)]['colorTable']['destroy'](),Object['keys'](this[_0x29b83b(0x1f1,0x20e)][_0x29b83b(0x292,0x25e)])[_0x3478a3(0x481,0x4db)](_0xceb97a=>{this['particlesRendering']['framebuffers'][_0xceb97a]['destroy']();});for(const _0x289699 in this){delete this[_0x289699];}}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x437391(0x653,0x6ad)],_0x2b45b1={};_0x2b45b1[_0x437391(0x65d,0x6b3)]=0x1000,_0x2b45b1['fixedHeight']=0x0,_0x2b45b1['fadeOpacity']=0.996,_0x2b45b1['dropRate']=0.003,_0x2b45b1[_0x20001d(0x574,0x5f7)]=0.01,_0x2b45b1['speedFactor']=0.5,_0x2b45b1['lineWidth']=0x2,_0x2b45b1['colors']=[_0x20001d(0x4fe,0x585)];const DEF_OPTIONS=_0x2b45b1;class WindLayer extends BaseLayer$1{constructor(_0x1ecd65={}){_0x1ecd65={...DEF_OPTIONS,..._0x1ecd65},super(_0x1ecd65),this['_setOptionsHook'](_0x1ecd65);}get['layer'](){function _0x57cf2f(_0xaed7c4,_0x3ad852){return _0x20001d(_0x3ad852,_0xaed7c4- -0x646);}return this[_0x57cf2f(-0xad,-0x10e)];}get['data'](){return this['_data'];}set[_0x437391(0x66f,0x6c0)](_0x1fafe8){this['setData'](_0x1fafe8);}get['colors'](){return this['options']['colors'];}set['colors'](_0x1fd780){function _0x48a711(_0x90db4d,_0x7d5e60){return _0x20001d(_0x90db4d,_0x7d5e60- -0x34b);}function _0x266136(_0x33c27b,_0x4febce){return _0x437391(_0x33c27b,_0x4febce- -0x218);}this['options'][_0x266136(0x4f3,0x4a1)]=_0x1fd780;if(this[_0x48a711(0x1fd,0x244)]){const _0x5b159f={};_0x5b159f['colors']=_0x1fd780,this['particleSystem'][_0x266136(0x3f6,0x45e)](_0x5b159f);}this['resize']();}[_0x20001d(0x63e,0x618)](){}[_0x437391(0x5a1,0x61f)](){this['scene']=this[_0x4370bb(0x7c,0xb9)][_0x27774a(0x519,0x505)],this[_0x27774a(0x5a0,0x569)]=this['_map'][_0x4370bb(0xe1,0x5b)],this[_0x4370bb(0x57,0x78)]=new Cesium$1['PrimitiveCollection'](),this[_0x27774a(0x549,0x504)]['scene']['primitives'][_0x4370bb(0x4a,0x19)](this[_0x27774a(0x475,0x4df)]),this[_0x4370bb(0xb6,0x5c)]={'lonRange':new Cesium$1[(_0x27774a(0x539,0x549))](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0},this[_0x27774a(0x540,0x517)]=new Cesium$1[(_0x4370bb(0x51,0x98))](Cesium$1['Cartesian3'][_0x4370bb(0x37,0xaf)],0.99*0x615299);function _0x4370bb(_0x44bdf1,_0x54fd33){return _0x437391(_0x54fd33,_0x44bdf1- -0x596);}this['updateViewerParameters'](),window['addEventListener'](_0x4370bb(0x7e,0x4a),this[_0x4370bb(0x7e,0x8b)][_0x27774a(0x525,0x4d4)](this),![]),this[_0x27774a(0x514,0x4de)]=![],this['mouse_move']=![],this[_0x4370bb(0x7c,0x30)]['on'](mars3d__namespace[_0x27774a(0x4ca,0x4b7)][_0x27774a(0x4e1,0x554)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x4370bb(0x12e,0xf7)],this);function _0x27774a(_0x4e093a,_0x11e41e){return _0x437391(_0x4e093a,_0x11e41e- -0x10e);}this[_0x27774a(0x47c,0x504)]['on'](mars3d__namespace[_0x27774a(0x497,0x4b7)][_0x27774a(0x4d1,0x4c5)],this['_onMouseUpEvent'],this),this[_0x27774a(0x52e,0x504)]['on'](mars3d__namespace['EventType']['mouseMove'],this[_0x4370bb(0xf4,0x89)],this),this[_0x27774a(0x5af,0x5c1)]&&this['setData'](this['_data']);}['_removedHook'](){window['removeEventListener']('resize',this['resize']),this[_0x445e8a(0x615,0x689)]['off'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this),this[_0x445e8a(0x615,0x696)]['off'](mars3d__namespace[_0x1c8b7a(0x4bc,0x49a)][_0x445e8a(0x665,0x6e4)],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x445e8a(0x6c7,0x6a6)],this),this[_0x445e8a(0x615,0x5ef)]['off'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x1c8b7a(_0x4c2d02,_0x302dda){return _0x437391(_0x4c2d02,_0x302dda- -0x12b);}function _0x445e8a(_0x4e2eda,_0x2e5707){return _0x437391(_0x2e5707,_0x4e2eda-0x3);}this['primitives']['removeAll'](),this[_0x1c8b7a(0x494,0x4e7)][_0x445e8a(0x616,0x5e7)][_0x445e8a(0x5f0,0x62d)]['remove'](this[_0x445e8a(0x5f0,0x5c4)]);}[_0x20001d(0x623,0x5c0)](){function _0x3578f4(_0x6e6d73,_0x1709c6){return _0x437391(_0x1709c6,_0x6e6d73- -0x213);}if(!this['show']||!this['particleSystem'])return;this[_0x140693(0x17d,0x194)]['show']=![];function _0x140693(_0x3d55ac,_0x516010){return _0x437391(_0x3d55ac,_0x516010- -0x459);}this['primitives'][_0x3578f4(0x423,0x46c)](),this['_map']['once'](mars3d__namespace[_0x140693(0x16c,0x16c)]['preRender'],this['_onMap_preRenderEvent'],this);}['_onMap_preRenderEvent'](_0x590760){this['particleSystem']['canvasResize'](this['scene']['context']),this['addPrimitives'](),this['primitives']['show']=!![];}[_0x437391(0x5e8,0x5e6)](_0x5ca9b1){function _0x4d1257(_0x22c87d,_0x53cdf3){return _0x437391(_0x22c87d,_0x53cdf3- -0x6c4);}clearTimeout(this['refreshTimer']);if(!this[_0x4d1257(0x4,-0x76)]||!this['particleSystem'])return;this[_0x4d1257(-0x71,-0xd7)][_0x25927e(0x4df,0x561)]=![];function _0x25927e(_0x45d630,_0x75f856){return _0x437391(_0x75f856,_0x45d630- -0x16f);}this['refreshTimer']=setTimeout(()=>{function _0x3f1b7c(_0x3e8229,_0x4e16ce){return _0x4d1257(_0x3e8229,_0x4e16ce-0x419);}if(!this[_0x3f1b7c(0x3a0,0x3a3)])return;this['redraw']();},0xc8);}['_onMouseDownEvent'](_0x484156){this['mouse_down']=!![];}['_onMouseMoveEvent'](_0x4f3fa0){function _0x1ec01e(_0x59f2e1,_0x22ebf5){return _0x20001d(_0x59f2e1,_0x22ebf5- -0x5d2);}if(!this['show']||!this['particleSystem'])return;function _0x45a559(_0x335f50,_0x356282){return _0x20001d(_0x335f50,_0x356282- -0x14d);}this[_0x45a559(0x498,0x44b)]&&(this['primitives'][_0x45a559(0x459,0x4ad)]=![],this['mouse_move']=!![]);}[_0x20001d(0x58d,0x617)](_0x2e9107){if(!this[_0x1cfdea(0x5e3,0x5e1)]||!this[_0x1cfdea(0x518,0x576)])return;this['mouse_down']&&this[_0x1cfdea(0x664,0x61c)]&&this['redraw']();this['primitives']['show']=!![],this['mouse_down']=![];function _0x1cfdea(_0x33f225,_0x1645a7){return _0x437391(_0x33f225,_0x1645a7- -0x6d);}function _0x4f9898(_0x1a1f59,_0x22f259){return _0x20001d(_0x22f259,_0x1a1f59- -0x48e);}this[_0x4f9898(0x1a7,0x1d5)]=![];}[_0x437391(0x677,0x6d1)](){if(!this['_map']||!this[_0x4e7050(-0x13d,-0x1c8)])return;this['updateViewerParameters'](),this[_0x54b9b7(0x3bd,0x359)]['applyViewerParameters'](this['viewerParameters']);function _0x4e7050(_0x44a8e3,_0x2bca5e){return _0x20001d(_0x2bca5e,_0x44a8e3- -0x737);}function _0x54b9b7(_0x3e3677,_0x575476){return _0x437391(_0x575476,_0x3e3677- -0x226);}this['primitives'][_0x54b9b7(0x428,0x425)]=!![];}['setData'](_0xd0dac6){this[_0x562b4c(0x4,0x27)]=_0xd0dac6;function _0x562b4c(_0x3bd80d,_0x18fb23){return _0x437391(_0x18fb23,_0x3bd80d- -0x6cb);}this[_0x562b4c(-0xe8,-0x64)]&&this[_0x562b4c(-0xe8,-0xe3)][_0x7e1513(0x1df,0x1cc)]();function _0x7e1513(_0x430c06,_0x126256){return _0x437391(_0x430c06,_0x126256- -0x408);}this[_0x562b4c(-0xe8,-0xc8)]=new ParticleSystem(this['scene'][_0x7e1513(0x242,0x1e6)],_0xd0dac6,this[_0x7e1513(0x17b,0x1ff)](),this['viewerParameters']),this['addPrimitives']();}[_0x20001d(0x627,0x5c1)](_0x8c66a4,_0x437f45){if(_0x8c66a4)for(const _0x5ce146 in _0x8c66a4){this[_0x5ce146]=_0x8c66a4[_0x5ce146];}function _0x17e084(_0x5ede1c,_0x5573f5){return _0x437391(_0x5573f5,_0x5ede1c- -0x77b);}function _0x26011a(_0x12dbc5,_0x450856){return _0x20001d(_0x12dbc5,_0x450856- -0x64a);}this[_0x17e084(-0x198,-0x1bf)]&&this['particleSystem']['setOptions'](this[_0x26011a(-0x1d,-0x97)]());}['getOptions'](){const _0xef27f7=Math['ceil'](Math['sqrt'](this['particlesNumber']));this['particlesNumber']=_0xef27f7*_0xef27f7;const _0x25651e={};function _0xcfbd0(_0xe58070,_0x1f3a89){return _0x20001d(_0xe58070,_0x1f3a89- -0x145);}function _0x349b24(_0x1b1ca2,_0x21409f){return _0x437391(_0x21409f,_0x1b1ca2- -0xc5);}return _0x25651e['particlesTextureSize']=_0xef27f7,_0x25651e[_0xcfbd0(0x430,0x42b)]=this[_0xcfbd0(0x4df,0x51a)],_0x25651e[_0xcfbd0(0x467,0x42f)]=this['fixedHeight'],_0x25651e['fadeOpacity']=this[_0xcfbd0(0x506,0x4b9)],_0x25651e['dropRate']=this['dropRate'],_0x25651e[_0xcfbd0(0x4ca,0x4b2)]=this[_0xcfbd0(0x4b3,0x4b2)],_0x25651e[_0x349b24(0x5d5,0x573)]=this[_0xcfbd0(0x586,0x501)],_0x25651e[_0xcfbd0(0x485,0x4ec)]=this[_0x349b24(0x5c0,0x555)],_0x25651e['colors']=this[_0x349b24(0x5f4,0x626)],_0x25651e;}['addPrimitives'](){this['primitives']['add'](this['particleSystem'][_0x667891(-0x19b,-0x162)]['primitives'][_0x667891(-0x9b,-0x46)]),this['primitives']['add'](this[_0x667891(-0x17a,-0x137)][_0x318c51(-0x1d,0x36)]['primitives'][_0x318c51(0x54,0xa6)]);function _0x318c51(_0x36313d,_0x4a763f){return _0x20001d(_0x36313d,_0x4a763f- -0x538);}this['primitives'][_0x667891(-0x17d,-0x1c4)](this[_0x318c51(0xb3,0x57)]['particlesComputing'][_0x318c51(0x5a,0x61)]['updatePosition']);function _0x667891(_0x16cc8f,_0x16bd95){return _0x20001d(_0x16bd95,_0x16cc8f- -0x709);}this[_0x318c51(0x5d,0x61)]['add'](this[_0x667891(-0x17a,-0x1a2)][_0x318c51(0x92,0x36)]['primitives']['postProcessingPosition']),this[_0x318c51(0x52,0x61)][_0x667891(-0x17d,-0x1f7)](this['particleSystem']['particlesComputing'][_0x318c51(0x4c,0x61)][_0x318c51(0x104,0xe6)]),this[_0x318c51(-0x9,0x61)]['add'](this['particleSystem']['particlesRendering'][_0x667891(-0x170,-0x170)]['segments']),this['primitives'][_0x667891(-0x17d,-0x10e)](this['particleSystem']['particlesRendering']['primitives']['trails']),this[_0x318c51(0xe9,0x61)]['add'](this['particleSystem']['particlesRendering'][_0x667891(-0x170,-0x10f)]['screen']);}['updateViewerParameters'](){let _0x3b4d6d=this['camera'][_0x2e8ebe(0x36f,0x3b0)](this['scene']['globe'][_0x2e8ebe(0x359,0x375)]);function _0x35483c(_0x165657,_0x31b0f8){return _0x437391(_0x31b0f8,_0x165657- -0x702);}if(!_0x3b4d6d){const _0x34d094=this[_0x35483c(-0xf0,-0x6a)]['getExtent']();_0x3b4d6d=Cesium$1[_0x35483c(-0x44,-0xad)]['fromDegrees'](_0x34d094['xmin'],_0x34d094['ymin'],_0x34d094['xmax'],_0x34d094['ymax']);}const _0x390027=Util[_0x35483c(-0xc1,-0x13a)](_0x3b4d6d);function _0x2e8ebe(_0x3e99f6,_0x1daf2f){return _0x20001d(_0x1daf2f,_0x3e99f6- -0x2d4);}this['viewerParameters']['lonRange']['x']=_0x390027[_0x2e8ebe(0x2a2,0x2c9)][_0x2e8ebe(0x331,0x3b1)],this[_0x2e8ebe(0x324,0x31a)]['lonRange']['y']=_0x390027[_0x2e8ebe(0x2a2,0x2a9)]['max'],this['viewerParameters'][_0x2e8ebe(0x2ef,0x320)]['x']=_0x390027[_0x2e8ebe(0x2f8,0x279)][_0x2e8ebe(0x331,0x384)],this['viewerParameters']['latRange']['y']=_0x390027['lat']['max'];const _0x271869=this['camera'][_0x35483c(-0x4d,-0x5)](this[_0x35483c(-0xdd,-0xaf)],this['scene']['drawingBufferWidth'],this['scene'][_0x35483c(-0x54,0x1f)]);_0x271869>0x0&&(this['viewerParameters']['pixelSize']=_0x271869);}}mars3d__namespace[_0x437391(0x5be,0x5c3)]['register']('wind',WindLayer),mars3d__namespace['layer'][_0x20001d(0x6ee,0x669)]=WindLayer;class CanvasParticle{constructor(){this[_0x252f8a(0x205,0x249)]=null,this[_0x47e2ac(0x1bd,0x244)]=null,this[_0x47e2ac(0x257,0x2b6)]=null;function _0x252f8a(_0xd58f72,_0x581e7a){return _0x437391(_0xd58f72,_0x581e7a- -0x412);}this[_0x252f8a(0x1ee,0x279)]=null;function _0x47e2ac(_0x542df4,_0x2a5ffd){return _0x437391(_0x2a5ffd,_0x542df4- -0x463);}this[_0x47e2ac(0x259,0x29b)]=null,this['speed']=null;}['destroy'](){for(const _0x481a99 in this){delete this[_0x481a99];}}}class CanvasWindField{constructor(_0x509d47){this['setOptions'](_0x509d47);}get[_0x437391(0x626,0x5c9)](){function _0x5160c4(_0x5b2d68,_0x496fa1){return _0x20001d(_0x496fa1,_0x5b2d68- -0x638);}return this[_0x5160c4(0x24,0x29)];}set['speedRate'](_0x54ef6a){function _0x314e1b(_0x221752,_0x5d1998){return _0x437391(_0x5d1998,_0x221752- -0x6b0);}function _0x3f0c9b(_0x5f1860,_0x3f0a75){return _0x437391(_0x3f0a75,_0x5f1860- -0x6ae);}this[_0x3f0c9b(0x2,0x88)]=(0x64-(_0x54ef6a>0x63?0x63:_0x54ef6a))*0x64,this['_calc_speedRate']=[(this[_0x314e1b(-0x28,0x1c)]-this['xmin'])/this[_0x314e1b(0x0,0x1e)],(this['ymax']-this[_0x3f0c9b(-0xbf,-0xef)])/this[_0x314e1b(0x0,0x5b)]];}get[_0x437391(0x5c7,0x642)](){return this['_maxAge'];}set[_0x437391(0x66a,0x642)](_0x1140fa){this['_maxAge']=_0x1140fa;}['setOptions'](_0x3f0ad5){this[_0x3bb40a(0x39d,0x358)]=_0x3f0ad5,this[_0x5c332a(0x4d7,0x48c)]=_0x3f0ad5['maxAge']||0x78,this[_0x5c332a(0x428,0x413)]=_0x3f0ad5[_0x5c332a(0x430,0x413)]||0x32;function _0x5c332a(_0x5bf34c,_0x22e7d4){return _0x20001d(_0x5bf34c,_0x22e7d4- -0x162);}this[_0x3bb40a(0x3ab,0x3c2)]=[];const _0x40487f=_0x3f0ad5[_0x3bb40a(0x3af,0x39e)]||0x1000;function _0x3bb40a(_0x981c3,_0xc088e){return _0x20001d(_0xc088e,_0x981c3- -0x2b0);}for(let _0x577c4a=0x0;_0x577c4a<_0x40487f;_0x577c4a++){const _0x5d7aa8=this['_randomParticle'](new CanvasParticle());this[_0x3bb40a(0x3ab,0x419)]['push'](_0x5d7aa8);}}[_0x20001d(0x5ff,0x5ad)](_0x1b6440){this['rows']=_0x1b6440['rows'],this[_0x27607c(0x208,0x281)]=_0x1b6440[_0x394526(-0x12d,-0x143)];function _0x394526(_0x34a9e7,_0x5d5ed4){return _0x20001d(_0x5d5ed4,_0x34a9e7- -0x703);}this['xmin']=_0x1b6440[_0x27607c(0x1af,0x209)],this['xmax']=_0x1b6440['xmax'],this['ymin']=_0x1b6440[_0x394526(-0x168,-0x17c)],this['ymax']=_0x1b6440['ymax'],this['grid']=[];const _0x1c0039=_0x1b6440[_0x27607c(0x20e,0x1cc)],_0x5a8a92=_0x1b6440['vdata'];let _0x2a47be=![];_0x1c0039[_0x394526(-0xbf,-0xc0)]===this['rows']&&_0x1c0039[0x0]['length']===this['cols']&&(_0x2a47be=!![]);let _0x93312c=0x0;function _0x27607c(_0x5d3edb,_0x99579a){return _0x437391(_0x99579a,_0x5d3edb- -0x422);}let _0x3c7fbf=null,_0x28b602=null;for(let _0x26b853=0x0;_0x26b853<this['rows'];_0x26b853++){_0x3c7fbf=[];for(let _0x544534=0x0;_0x544534<this[_0x394526(-0x12d,-0xc9)];_0x544534++,_0x93312c++){_0x2a47be?_0x28b602=this[_0x27607c(0x287,0x29d)](_0x1c0039[_0x26b853][_0x544534],_0x5a8a92[_0x26b853][_0x544534]):_0x28b602=this['_calcUV'](_0x1c0039[_0x93312c],_0x5a8a92[_0x93312c]),_0x3c7fbf[_0x27607c(0x270,0x22a)](_0x28b602);}this['grid'][_0x394526(-0xc5,-0x64)](_0x3c7fbf);}this[_0x394526(-0xb6,-0x13d)][_0x394526(-0x165,-0x1a0)]&&this['grid']['reverse']();}['clear'](){delete this[_0x25ceed(0x269,0x2c8)],delete this['cols'],delete this[_0x2f0204(-0x133,-0xf8)];function _0x2f0204(_0x7a92f,_0x51f037){return _0x20001d(_0x7a92f,_0x51f037- -0x675);}function _0x25ceed(_0xef40bc,_0x5e17af){return _0x20001d(_0x5e17af,_0xef40bc- -0x39b);}delete this['xmax'],delete this['ymin'],delete this[_0x2f0204(-0x7b,-0x59)],delete this['grid'],delete this['particles'];}[_0x20001d(0x68c,0x648)](_0x307274,_0x3da581){function _0x137a9e(_0x5e0758,_0x3b9fd4){return _0x20001d(_0x3b9fd4,_0x5e0758- -0x28a);}const _0x3d7243=(_0x307274-this[_0x114994(0x101,0x151)])/(this[_0x114994(0x226,0x208)]-this['xmin'])*(this['cols']-0x1);function _0x114994(_0xd02e11,_0x3cda2e){return _0x20001d(_0xd02e11,_0x3cda2e- -0x42c);}const _0x255669=(this['ymax']-_0x3da581)/(this[_0x137a9e(0x392,0x3a5)]-this['ymin'])*(this['rows']-0x1);return[_0x3d7243,_0x255669];}[_0x20001d(0x53e,0x58d)](_0x26952e,_0x4ab524){if(_0x26952e<0x0||_0x26952e>=this[_0x4f80c6(0x478,0x4a8)]||_0x4ab524>=this['rows'])return[0x0,0x0,0x0];const _0x4c9352=Math['floor'](_0x26952e),_0x3c2012=Math['floor'](_0x4ab524);if(_0x4c9352===_0x26952e&&_0x3c2012===_0x4ab524)return this[_0x4f80c6(0x54a,0x4f6)][_0x4ab524][_0x26952e];const _0x58bb07=_0x4c9352+0x1,_0x51fa90=_0x3c2012+0x1;function _0x268d42(_0x31d3f8,_0x2851d7){return _0x437391(_0x2851d7,_0x31d3f8- -0x1b2);}function _0x4f80c6(_0x2dd7fb,_0x526609){return _0x20001d(_0x2dd7fb,_0x526609- -0x12e);}const _0x5d3afe=this[_0x268d42(0x42f,0x487)](_0x4c9352,_0x3c2012),_0x337d22=this['getUVByXY'](_0x58bb07,_0x3c2012),_0x405223=this['getUVByXY'](_0x4c9352,_0x51fa90),_0x2585e9=this['getUVByXY'](_0x58bb07,_0x51fa90);let _0x1d9b87=null;try{_0x1d9b87=this[_0x268d42(0x479,0x4ed)](_0x26952e-_0x4c9352,_0x4ab524-_0x3c2012,_0x5d3afe,_0x337d22,_0x405223,_0x2585e9);}catch(_0x48d281){console['log'](_0x26952e,_0x4ab524);}return _0x1d9b87;}[_0x437391(0x6b0,0x62b)](_0x6b9cfa,_0x3ee529,_0x34a022,_0x1e572b,_0x379c1b,_0x55d2b9){const _0x287ca2=0x1-_0x6b9cfa,_0x32589c=0x1-_0x3ee529,_0x54748b=_0x287ca2*_0x32589c,_0x1985fa=_0x6b9cfa*_0x32589c;function _0x2e0933(_0x4adbd4,_0x2de9ef){return _0x437391(_0x4adbd4,_0x2de9ef- -0x3ff);}const _0x55596e=_0x287ca2*_0x3ee529,_0x13e54a=_0x6b9cfa*_0x3ee529,_0x5aa918=_0x34a022[0x0]*_0x54748b+_0x1e572b[0x0]*_0x1985fa+_0x379c1b[0x0]*_0x55596e+_0x55d2b9[0x0]*_0x13e54a,_0x5306d1=_0x34a022[0x1]*_0x54748b+_0x1e572b[0x1]*_0x1985fa+_0x379c1b[0x1]*_0x55596e+_0x55d2b9[0x1]*_0x13e54a;return this[_0x2e0933(0x271,0x2aa)](_0x5aa918,_0x5306d1);}['_calcUV'](_0x3e275c,_0x2f8be0){return[+_0x3e275c,+_0x2f8be0,Math['sqrt'](_0x3e275c*_0x3e275c+_0x2f8be0*_0x2f8be0)];}['getUVByPoint'](_0x1bf239,_0x33e562){function _0x13d1e8(_0x16cd7d,_0x4426a7){return _0x437391(_0x16cd7d,_0x4426a7- -0x6d7);}if(!this['isInExtent'](_0x1bf239,_0x33e562))return null;const _0x2ae37d=this['toGridXY'](_0x1bf239,_0x33e562),_0x2bd65a=this[_0x13d1e8(-0x9b,-0xf6)](_0x2ae37d[0x0],_0x2ae37d[0x1]);return _0x2bd65a;}['isInExtent'](_0x48d111,_0x4f06b8){function _0x36fc81(_0x2f9fb0,_0x4580d8){return _0x20001d(_0x2f9fb0,_0x4580d8- -0x226);}function _0x25cbab(_0x6df7b4,_0x4a20c8){return _0x437391(_0x6df7b4,_0x4a20c8- -0x4e8);}return _0x48d111>=this[_0x36fc81(0x39c,0x357)]&&_0x48d111<=this[_0x36fc81(0x424,0x40e)]&&_0x4f06b8>=this[_0x36fc81(0x397,0x375)]&&_0x4f06b8<=this['ymax']?!![]:![];}[_0x20001d(0x5b2,0x5c7)](){const _0x2d027c=fRandomByfloat(this['xmin'],this[_0xf622bc(0x3c7,0x421)]),_0x4fe290=fRandomByfloat(this[_0x1a9718(-0x176,-0x115)],this['ymax']),_0x343e11={};function _0xf622bc(_0x21f03f,_0x432c95){return _0x20001d(_0x432c95,_0x21f03f- -0x26d);}function _0x1a9718(_0x576c54,_0x29e427){return _0x20001d(_0x29e427,_0x576c54- -0x711);}return _0x343e11[_0x1a9718(-0x145,-0x16e)]=_0x4fe290,_0x343e11['lng']=_0x2d027c,_0x343e11;}['getParticles'](){function _0x4d2179(_0x4b9aa3,_0x5c9575){return _0x437391(_0x5c9575,_0x4b9aa3- -0x373);}function _0x43ab36(_0x449693,_0x16feaa){return _0x437391(_0x16feaa,_0x449693- -0x53c);}let _0x2ddc32,_0x5d3564,_0x352f15;for(let _0x1f896b=0x0,_0x8993ea=this['particles'][_0x43ab36(0x15c,0xd3)];_0x1f896b<_0x8993ea;_0x1f896b++){let _0xaddacb=this[_0x43ab36(0x173,0x1fa)][_0x1f896b];_0xaddacb[_0x4d2179(0x349,0x3b2)]<=0x0&&(_0xaddacb=this['_randomParticle'](_0xaddacb));if(_0xaddacb['age']>0x0){const _0x5be851=_0xaddacb[_0x43ab36(0x17e,0x1d7)],_0x279531=_0xaddacb['tlat'];_0x352f15=this['getUVByPoint'](_0x5be851,_0x279531),_0x352f15?(_0x2ddc32=_0x5be851+this[_0x4d2179(0x2f1,0x28c)][0x0]*_0x352f15[0x0],_0x5d3564=_0x279531+this[_0x43ab36(0x128,0xe9)][0x1]*_0x352f15[0x1],_0xaddacb['lng']=_0x5be851,_0xaddacb['lat']=_0x279531,_0xaddacb['tlng']=_0x2ddc32,_0xaddacb['tlat']=_0x5d3564,_0xaddacb[_0x43ab36(0x162,0xe1)]=_0x352f15[0x2],_0xaddacb[_0x43ab36(0x180,0x105)]--):_0xaddacb['age']=0x0;}}return this['particles'];}['_randomParticle'](_0x31ab22){let _0x5653ba,_0x55ed05;for(let _0x2bafcc=0x0;_0x2bafcc<0x1e;_0x2bafcc++){_0x5653ba=this['getRandomLatLng'](),_0x55ed05=this[_0x460ada(-0x9c,-0xe7)](_0x5653ba[_0x460ada(-0xcd,-0x69)],_0x5653ba[_0x460ada(-0x108,-0xfa)]);if(_0x55ed05&&_0x55ed05[0x2]>0x0)break;}if(!_0x55ed05)return _0x31ab22;const _0x813599=_0x5653ba['lng']+this[_0x5adb7a(0x2f0,0x297)][0x0]*_0x55ed05[0x0],_0x3aae=_0x5653ba[_0x460ada(-0x108,-0x152)]+this[_0x5adb7a(0x2f0,0x359)][0x1]*_0x55ed05[0x1];_0x31ab22['lng']=_0x5653ba[_0x5adb7a(0x2e7,0x2d1)],_0x31ab22['lat']=_0x5653ba['lat'],_0x31ab22['tlng']=_0x813599;function _0x460ada(_0x15b8f5,_0x3e3fb7){return _0x20001d(_0x3e3fb7,_0x15b8f5- -0x6d4);}function _0x5adb7a(_0x2f4ff7,_0x3d02a3){return _0x20001d(_0x3d02a3,_0x2f4ff7- -0x320);}return _0x31ab22['tlat']=_0x3aae,_0x31ab22[_0x5adb7a(0x348,0x2ed)]=Math[_0x460ada(-0x167,-0x187)](Math['random']()*this[_0x5adb7a(0x2ce,0x2ed)]),_0x31ab22['speed']=_0x55ed05[0x2],_0x31ab22;}['destroy'](){for(const _0x53a054 in this){delete this[_0x53a054];}}}function fRandomByfloat(_0x20f657,_0x211b4c){return _0x20f657+Math['random']()*(_0x211b4c-_0x20f657);}const Cesium=mars3d__namespace[_0x437391(0x69b,0x6d4)],BaseLayer=mars3d__namespace['layer'][_0x20001d(0x6cb,0x659)];function _0x9531(_0x439939,_0x427385){const _0xeabdd0=_0xeabd();return _0x9531=function(_0x95318b,_0xaeca30){_0x95318b=_0x95318b-0x1dc;let _0x45658c=_0xeabdd0[_0x95318b];return _0x45658c;},_0x9531(_0x439939,_0x427385);}class CanvasWindLayer extends BaseLayer{constructor(_0x450df2={}){function _0xd028d(_0x32bf46,_0x3d9a09){return _0x20001d(_0x32bf46,_0x3d9a09-0x55);}super(_0x450df2),this['_setOptionsHook'](_0x450df2),this['canvas']=null,_0x450df2[_0xd028d(0x6e8,0x6ba)]&&_0x450df2['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x450df2));}[_0x437391(0x606,0x615)](_0x49f827,_0x10d0e9){this[_0x4b3971(0x130,0xd2)]=0x3e8/(_0x49f827['frameRate']||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![],this[_0x3c0941(0x38b,0x403)]=_0x49f827[_0x4b3971(0x13d,0x165)]||'#ffffff',this['lineWidth']=_0x49f827['lineWidth']||0x1;function _0x4b3971(_0x37e3d5,_0x2354da){return _0x437391(_0x2354da,_0x37e3d5- -0x545);}function _0x3c0941(_0x558208,_0x168ad6){return _0x20001d(_0x168ad6,_0x558208- -0x2a3);}this['fixedHeight']=_0x49f827['fixedHeight']??0x0,this[_0x4b3971(0xad,0x59)]=_0x49f827['reverseY']??![],this[_0x3c0941(0x365,0x355)]&&this['windField'][_0x3c0941(0x37f,0x3e1)](_0x49f827);}get['layer'](){function _0x3bd4e0(_0x41c258,_0x4dd2f5){return _0x20001d(_0x4dd2f5,_0x41c258- -0x1a);}return this[_0x3bd4e0(0x664,0x6ce)];}get[_0x437391(0x5fa,0x64a)](){function _0x45aa4e(_0x2e55b3,_0x53717c){return _0x437391(_0x53717c,_0x2e55b3- -0x73d);}function _0x5a1e7a(_0xb115c8,_0x406eb5){return _0x20001d(_0xb115c8,_0x406eb5- -0x22);}return this['_map'][_0x5a1e7a(0x5f7,0x59d)]['canvas'][_0x45aa4e(-0x109,-0xc3)];}get[_0x437391(0x67a,0x6b4)](){function _0x30e205(_0x526d76,_0x1904f9){return _0x20001d(_0x526d76,_0x1904f9- -0x112);}function _0x1c57cc(_0x283a1e,_0x547b92){return _0x20001d(_0x283a1e,_0x547b92- -0x1fb);}return this[_0x1c57cc(0x352,0x3c3)]['scene']['canvas'][_0x1c57cc(0x319,0x389)];}get['pointerEvents'](){function _0x1908f6(_0x67919d,_0x44c048){return _0x20001d(_0x44c048,_0x67919d- -0x262);}return this[_0x1908f6(0x332,0x38d)];}set['pointerEvents'](_0x5937a5){this['_pointerEvents']=_0x5937a5;function _0x193e30(_0x614f97,_0x2bfc64){return _0x437391(_0x614f97,_0x2bfc64- -0x753);}function _0x584c6a(_0x5b1ac9,_0x4e1a83){return _0x437391(_0x4e1a83,_0x5b1ac9- -0x6e4);}if(!this['canvas'])return;_0x5937a5?this['canvas'][_0x584c6a(-0x3f,-0x59)]['pointer-events']=_0x193e30(-0xf5,-0x8c):this[_0x584c6a(-0x12,0x74)]['style']['pointer-events']=_0x584c6a(-0x5e,-0xa4);}get['particlesNumber'](){return this['options']['particlesNumber'];}set['particlesNumber'](_0x59ec23){this[_0x2bff65(0x421,0x3b7)][_0x2bff65(0x433,0x485)]=_0x59ec23,clearTimeout(this[_0x2bff65(0x3f4,0x381)]);function _0x2bff65(_0x17ca23,_0x2d69b9){return _0x20001d(_0x2d69b9,_0x17ca23- -0x22c);}function _0x9c6bab(_0x5e5e92,_0x2239fb){return _0x20001d(_0x2239fb,_0x5e5e92- -0x14);}this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0xecab1e(_0x2dd640,_0x2622a8){return _0x437391(_0x2dd640,_0x2622a8- -0x2b2);}function _0x2c60f7(_0x424d6f,_0x294366){return _0x437391(_0x424d6f,_0x294366- -0x58e);}return this[_0xecab1e(0x37e,0x3ef)][_0xecab1e(0x34c,0x317)];}set['speedRate'](_0x4e4fe1){function _0x3d3a64(_0x43a341,_0x1662dc){return _0x20001d(_0x43a341,_0x1662dc- -0x349);}this[_0x3d3a64(0x2e6,0x304)]['speedRate']=_0x4e4fe1;function _0x324c9e(_0x4907ad,_0x34ff2d){return _0x437391(_0x34ff2d,_0x4907ad- -0x56b);}this[_0x324c9e(0xf1,0x11e)]&&(this[_0x3d3a64(0x2b6,0x2bf)][_0x3d3a64(0x1b5,0x22c)]=_0x4e4fe1);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x378569){function _0x1e325b(_0x1b88ed,_0x3a12ff){return _0x437391(_0x3a12ff,_0x1b88ed- -0x535);}this[_0x1e325b(0x16c,0x1b2)]['maxAge']=_0x378569,this['windField']&&(this['windField']['maxAge']=_0x378569);}get['data'](){return this['windData'];}set[_0x437391(0x6e0,0x6c0)](_0x15576d){this['setData'](_0x15576d);}[_0x437391(0x62f,0x60d)](_0x4ac196){function _0x50c953(_0x1300f2,_0x2ecbf7){return _0x437391(_0x2ecbf7,_0x1300f2- -0x8b);}function _0xc11fb6(_0x2462c3,_0xbfe953){return _0x20001d(_0x2462c3,_0xbfe953- -0x4c6);}_0x4ac196?this['_addedHook']():(this[_0x50c953(0x592,0x566)]&&(this[_0xc11fb6(0x17a,0x187)]['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x153ce1(_0x118b74,_0x4adc2d){return _0x20001d(_0x118b74,_0x4adc2d- -0xa8);}function _0x3dfc27(_0x80d004,_0xdce495){return _0x20001d(_0x80d004,_0xdce495- -0x5af);}this[_0x3dfc27(0x7e,0x9e)][_0x153ce1(0x54c,0x5ba)]?this['initWorker']():this[_0x3dfc27(0xf,0x59)]=new CanvasWindField(this[_0x153ce1(0x56b,0x5a5)]);}[_0x20001d(0x64f,0x5cb)](){this['canvas']=this['_createCanvas']();function _0x2be48(_0x28eb41,_0xd98602){return _0x20001d(_0x28eb41,_0xd98602- -0x2e6);}const _0x43715b={};_0x43715b[_0x2be48(0x244,0x2bd)]=!![],this[_0x214437(0x4f2,0x4a1)]=this[_0x214437(0x4fd,0x56a)][_0x214437(0x3fb,0x477)]('2d',_0x43715b);function _0x214437(_0x34e647,_0xc6c700){return _0x20001d(_0x34e647,_0xc6c700- -0x114);}this[_0x2be48(0x3b7,0x35c)](),this['options']['data']&&this[_0x2be48(0x305,0x2c9)](this['options']['data']);}['_removedHook'](){this[_0x2c528d(0x248,0x220)]();function _0x186e03(_0x22af14,_0x586464){return _0x20001d(_0x586464,_0x22af14- -0x1a0);}function _0x2c528d(_0x3b40aa,_0x59f17c){return _0x20001d(_0x3b40aa,_0x59f17c- -0x375);}this[_0x2c528d(0x1fb,0x26a)](),this[_0x186e03(0x4de,0x462)]&&(this['_map']['container']['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x1a8a4e=mars3d__namespace[_0x2c214c(0x12f,0xa6)]['create'](_0x4b0baa(0x579,0x500),_0x2c214c(0x20e,0x18b),this['_map']['container']);_0x1a8a4e[_0x4b0baa(0x54c,0x5bf)][_0x4b0baa(0x4b1,0x49c)]=_0x4b0baa(0x49b,0x490),_0x1a8a4e['style']['top']='0px',_0x1a8a4e['style']['left']=_0x2c214c(0x8e,0x91),_0x1a8a4e['style']['width']=this[_0x2c214c(0x47,0xcd)]['scene'][_0x2c214c(0x12d,0x18d)]['clientWidth']+'px';function _0x2c214c(_0x132e4e,_0xc82e45){return _0x437391(_0x132e4e,_0xc82e45- -0x545);}function _0x4b0baa(_0x4c1373,_0x367b3f){return _0x437391(_0x367b3f,_0x4c1373- -0x159);}return _0x1a8a4e['style']['height']=this[_0x4b0baa(0x4b9,0x504)]['scene'][_0x2c214c(0x209,0x18d)]['clientHeight']+'px',_0x1a8a4e['style']['pointerEvents']=this[_0x2c214c(0x123,0xa3)]?'auto':_0x4b0baa(0x52d,0x4f4),_0x1a8a4e[_0x4b0baa(0x54c,0x4d7)]['zIndex']=this[_0x4b0baa(0x548,0x5cc)]['zIndex']??0x9,_0x1a8a4e['width']=this['_map']['scene']['canvas']['clientWidth'],_0x1a8a4e['height']=this['_map']['scene']['canvas'][_0x2c214c(0x102,0x93)],_0x1a8a4e;}[_0x20001d(0x644,0x5c0)](){function _0x377e46(_0x2d871e,_0x5dffb0){return _0x20001d(_0x2d871e,_0x5dffb0- -0xe6);}function _0x3a0b34(_0x30ecb9,_0x229fe1){return _0x20001d(_0x30ecb9,_0x229fe1- -0x1d4);}this[_0x3a0b34(0x42b,0x4aa)]&&(this[_0x3a0b34(0x521,0x4aa)][_0x3a0b34(0x4f7,0x47d)]['width']=this[_0x3a0b34(0x462,0x3ea)][_0x377e46(0x4bf,0x4d9)]['canvas']['clientWidth']+'px',this['canvas'][_0x3a0b34(0x454,0x47d)][_0x377e46(0x462,0x4d1)]=this['_map'][_0x377e46(0x543,0x4d9)]['canvas'][_0x3a0b34(0x328,0x3b0)]+'px',this[_0x377e46(0x5c7,0x598)]['width']=this['_map'][_0x3a0b34(0x424,0x3eb)][_0x377e46(0x56e,0x598)]['clientWidth'],this['canvas']['height']=this['_map']['scene']['canvas'][_0x377e46(0x4be,0x49e)]);}['bindEvent'](){const _0x1480d1=this;let _0x367730=Date['now']();(function _0x4e2a60(){function _0x2367cc(_0x16e8ab,_0x2095b2){return _0x9531(_0x2095b2- -0x22c,_0x16e8ab);}_0x1480d1['animateFrame']=window[_0x2367cc(0x29,-0x12)](_0x4e2a60);if(_0x1480d1['show']&&_0x1480d1['windField']){const _0x4fc07e=Date['now'](),_0x3bb7ad=_0x4fc07e-_0x367730;_0x3bb7ad>_0x1480d1['frameTime']&&(_0x367730=_0x4fc07e-_0x3bb7ad%_0x1480d1['frameTime'],_0x1480d1['update']());}}());function _0x18b07a(_0x86de21,_0x125a08){return _0x20001d(_0x125a08,_0x86de21- -0x40b);}window['addEventListener']('resize',this['resize'][_0x41e917(-0x24,0x2d)](this),![]),this['mouse_down']=![];function _0x41e917(_0x50386b,_0x714c74){return _0x437391(_0x50386b,_0x714c74- -0x5b5);}this[_0x18b07a(0x22a,0x282)]=![],this[_0x18b07a(0x242,0x283)]['mouseHidden']&&(this['_map']['on'](mars3d__namespace[_0x41e917(0x1b,0x10)][_0x18b07a(0x203,0x25f)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x18b07a(0x166,0x172)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x41e917(0x1f,0x10)]['mouseUp'],this['_onMouseUpEvent'],this));}['unbindEvent'](){function _0x3d67d8(_0x36b50d,_0x57c0fb){return _0x437391(_0x57c0fb,_0x36b50d- -0xd1);}function _0x330cd(_0x58acb0,_0x4e3ffd){return _0x437391(_0x58acb0,_0x4e3ffd- -0x61);}window[_0x3d67d8(0x57e,0x5fe)](this['animateFrame']),delete this['animateFrame'],window['removeEventListener'](_0x3d67d8(0x543,0x52f),this[_0x3d67d8(0x543,0x540)]),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x3d67d8(0x4f4,0x561)][_0x330cd(0x5f0,0x601)],this[_0x330cd(0x5ea,0x585)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x330cd(0x6d8,0x663)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x3d67d8(0x502,0x4e2)],this[_0x3d67d8(0x59a,0x5b5)],this),this[_0x3d67d8(0x541,0x511)]['off'](mars3d__namespace[_0x330cd(0x5b9,0x564)]['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x20001d(0x5c5,0x592)](_0x59adb9){clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x348abe(0x9c,0xfa)])return;function _0x348abe(_0x30728b,_0x253b18){return _0x20001d(_0x30728b,_0x253b18- -0x584);}this['canvas']['style']['visibility']=_0xc60b85(0x5a5,0x5c2);function _0xc60b85(_0x67b555,_0x214f8e){return _0x437391(_0x67b555,_0x214f8e- -0x19);}this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;this[_0x2ae702(0x5c6,0x64c)]();function _0x2ae702(_0x12e934,_0x2924cd){return _0xc60b85(_0x2924cd,_0x12e934- -0xf2);}function _0x1ec910(_0x190b0c,_0xeda224){return _0xc60b85(_0x190b0c,_0xeda224- -0x5b8);}this[_0x2ae702(0x5c7,0x621)][_0x2ae702(0x59a,0x5c3)]['visibility']='visible';},0xc8);}[_0x437391(0x698,0x6c4)](_0x46e277){function _0x400299(_0x5f2a45,_0x4f455c){return _0x437391(_0x4f455c,_0x5f2a45- -0x1ba);}this[_0x5d19c7(-0x1b6,-0x1fd)]=!![],this['_map'][_0x400299(0x41d,0x44f)](mars3d__namespace['EventType']['mouseMove'],this[_0x400299(0x4d0,0x550)],this);function _0x5d19c7(_0x412720,_0x1c1a1c){return _0x437391(_0x1c1a1c,_0x412720- -0x7a2);}this[_0x5d19c7(-0x190,-0x14d)]['on'](mars3d__namespace[_0x5d19c7(-0x1dd,-0x252)][_0x400299(0x44a,0x43c)],this[_0x400299(0x4d0,0x4b5)],this);}['_onMouseMoveEvent'](_0x3b99bd){if(!this['show']||!this['canvas'])return;function _0x34cd7e(_0x32afbc,_0x13e877){return _0x437391(_0x13e877,_0x32afbc- -0x576);}function _0x561e2c(_0x8f9e0a,_0x14e2ac){return _0x20001d(_0x14e2ac,_0x8f9e0a- -0x28c);}this[_0x561e2c(0x30c,0x2fc)]&&(this[_0x34cd7e(0x15c,0x159)][_0x34cd7e(0x12f,0x132)][_0x34cd7e(0x64,0x71)]=_0x561e2c(0x2fb,0x315),this[_0x34cd7e(0x113,0xba)]=!![]);}['_onMouseUpEvent'](_0x513505){if(!this['show']||!this['canvas'])return;this['_map'][_0x5d8008(0xf3,0xea)](mars3d__namespace[_0x5d8008(0xe1,0x74)][_0x5d8008(0x120,0xd9)],this['_onMouseMoveEvent'],this);function _0x5e1ecd(_0x17151e,_0x83b3ff){return _0x20001d(_0x83b3ff,_0x17151e- -0x2b1);}this['mouse_down']&&this['mouse_move']&&this[_0x5e1ecd(0x3cc,0x389)]();function _0x5d8008(_0x342788,_0x3bc5bf){return _0x437391(_0x3bc5bf,_0x342788- -0x4e4);}this['canvas']['style'][_0x5d8008(0xf6,0x12d)]='visible',this['mouse_down']=![],this['mouse_move']=![];}['setData'](_0x4d3a1e){this[_0x127a5b(-0x167,-0x136)](),this['windData']=_0x4d3a1e,this['windField']['setDate'](_0x4d3a1e);function _0x127a5b(_0x54d304,_0x1928ba){return _0x20001d(_0x54d304,_0x1928ba- -0x6cb);}this['redraw']();}['redraw'](){if(!this['show'])return;this['windField']['setOptions'](this['options']),this['update']();}['update'](){function _0x19226d(_0x22d57c,_0x3a5bdb){return _0x437391(_0x22d57c,_0x3a5bdb- -0x20f);}if(this[_0x19226d(0x423,0x422)])return;this[_0x19226d(0x3b4,0x422)]=!![];function _0x4b6bed(_0xd8c2a7,_0x3503e7){return _0x20001d(_0xd8c2a7,_0x3503e7- -0x569);}if(this['worker'])this['windField'][_0x4b6bed(0x46,0xaa)]();else{const _0x14f3bf=this['windField']['getParticles']();this[_0x19226d(0x4a7,0x445)](_0x14f3bf);}this[_0x19226d(0x3ec,0x422)]=![];}[_0x20001d(0x5fa,0x600)](_0x453cba){this['canvasContext']['globalCompositeOperation']=_0x488138(0x683,0x615),this[_0x52aec7(0x143,0x179)][_0x52aec7(0x19d,0x1cb)](0x0,0x0,this[_0x52aec7(0x184,0x1a7)],this['canvasHeight']);function _0x488138(_0x54ead4,_0x15d2c7){return _0x437391(_0x15d2c7,_0x54ead4- -0x35);}this['canvasContext'][_0x488138(0x68e,0x661)]='lighter',this[_0x52aec7(0x143,0x186)]['globalAlpha']=0.9;const _0x1919e4=this[_0x488138(0x5dd,0x55f)][_0x488138(0x5de,0x5c0)][_0x52aec7(0x194,0x19f)]!==Cesium[_0x488138(0x635,0x5e3)]['SCENE3D'];function _0x52aec7(_0x4370a3,_0x452eeb){return _0x437391(_0x452eeb,_0x4370a3- -0x4c6);}const _0x5e651b=this['canvasWidth']*0.25;if(this[_0x52aec7(0x156,0x121)])for(let _0x449fd5=0x0,_0xf1ec69=_0x453cba['length'];_0x449fd5<_0xf1ec69;_0x449fd5++){const _0x5c7166=_0x453cba[_0x449fd5],_0x5f111d=this['_tomap'](_0x5c7166['lng'],_0x5c7166['lat'],_0x5c7166),_0x3573b4=this['_tomap'](_0x5c7166['tlng'],_0x5c7166['tlat'],_0x5c7166);if(!_0x5f111d||!_0x3573b4)continue;if(_0x1919e4&&Math[_0x488138(0x672,0x638)](_0x5f111d[0x0]-_0x3573b4[0x0])>=_0x5e651b)continue;this[_0x52aec7(0x143,0x12e)]['beginPath'](),this['canvasContext']['lineWidth']=this[_0x52aec7(0x1bf,0x159)],this['canvasContext']['strokeStyle']=this[_0x52aec7(0x156,0x126)]['getColor'](_0x5c7166['speed']),this[_0x488138(0x5d4,0x624)]['moveTo'](_0x5f111d[0x0],_0x5f111d[0x1]),this['canvasContext']['lineTo'](_0x3573b4[0x0],_0x3573b4[0x1]),this['canvasContext']['stroke']();}else{this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this[_0x488138(0x650,0x618)],this[_0x52aec7(0x143,0xfa)]['strokeStyle']=this['color'];for(let _0x172b85=0x0,_0x472365=_0x453cba[_0x52aec7(0x1d2,0x1a2)];_0x172b85<_0x472365;_0x172b85++){const _0x55d283=_0x453cba[_0x172b85],_0x328a98=this[_0x52aec7(0x183,0x152)](_0x55d283['lng'],_0x55d283['lat'],_0x55d283),_0x3032c5=this[_0x52aec7(0x183,0x20b)](_0x55d283['tlng'],_0x55d283['tlat'],_0x55d283);if(!_0x328a98||!_0x3032c5)continue;if(_0x1919e4&&Math['abs'](_0x328a98[0x0]-_0x3032c5[0x0])>=_0x5e651b)continue;this['canvasContext']['moveTo'](_0x328a98[0x0],_0x328a98[0x1]),this['canvasContext']['lineTo'](_0x3032c5[0x0],_0x3032c5[0x1]);}this['canvasContext'][_0x488138(0x610,0x696)]();}}['_tomap'](_0x1b2ad9,_0x5ec5be,_0x7d8b95){const _0x26a776=Cesium[_0x3185f8(0x15c,0xd6)]['fromDegrees'](_0x1b2ad9,_0x5ec5be,this[_0x3fec7f(0x3c2,0x422)]);function _0x3185f8(_0x11a00f,_0x28f1e8){return _0x20001d(_0x28f1e8,_0x11a00f- -0x44a);}function _0x3fec7f(_0xd6fd5,_0x31496a){return _0x437391(_0xd6fd5,_0x31496a- -0x251);}const _0x4cd785=this[_0x3185f8(0x174,0x17d)]['scene'];if(_0x4cd785['mode']===Cesium['SceneMode']['SCENE3D']){const _0x37a6a7=new Cesium[(_0x3185f8(0x1c2,0x1f1))](_0x4cd785['globe']['ellipsoid'],_0x4cd785[_0x3fec7f(0x44b,0x426)]['positionWC']),_0xeb8c78=_0x37a6a7['isPointVisible'](_0x26a776);if(!_0xeb8c78)return _0x7d8b95[_0x3fec7f(0x45a,0x46b)]=0x0,null;}const _0x2e0597=Cesium['SceneTransforms'][_0x3185f8(0x1f3,0x226)](this[_0x3fec7f(0x37a,0x3c1)][_0x3185f8(0x175,0x179)],_0x26a776);return _0x2e0597?[_0x2e0597['x'],_0x2e0597['y']]:null;}['clear'](){function _0xb69705(_0x17372b,_0x33c848){return _0x20001d(_0x33c848,_0x17372b- -0x436);}function _0x1c6658(_0x3d8006,_0x1ff14c){return _0x20001d(_0x3d8006,_0x1ff14c- -0x1d7);}this['windField'][_0xb69705(0x15f,0x114)](),delete this[_0xb69705(0x193,0x133)];}['initWorker'](){function _0x3e09ce(_0x333fcf,_0x2694cc){return _0x20001d(_0x333fcf,_0x2694cc- -0x24a);}this[_0x3e09ce(0x3d8,0x418)]=new Worker(this['options']['worker']),this[_0x3e09ce(0x417,0x418)]['onmessage']=_0x37f9f7=>{function _0x5c60a2(_0x6a2e6,_0x5479c5){return _0x565dd2(_0x6a2e6,_0x5479c5- -0x4da);}function _0x4e8ae9(_0xf49a9b,_0x329a34){return _0x565dd2(_0xf49a9b,_0x329a34- -0x75e);}this[_0x4e8ae9(-0x1a6,-0x137)](_0x37f9f7[_0x5c60a2(0x153,0x1b9)][_0x5c60a2(0x211,0x1a8)]),this[_0x5c60a2(0x23b,0x1c6)]=![];},this[_0x3e09ce(0x347,0x3be)]={'init':_0xbfc967=>{const _0x2f7bcb={};function _0x13963a(_0x5e1179,_0x28f3bd){return _0x3e09ce(_0x5e1179,_0x28f3bd- -0x13e);}_0x2f7bcb[_0x13963a(0x263,0x25b)]=_0x14e0dc(0x43d,0x40d),_0x2f7bcb['options']=_0xbfc967;function _0x14e0dc(_0x3ca24d,_0x589b52){return _0x565dd2(_0x589b52,_0x3ca24d- -0x239);}this['worker']['postMessage'](_0x2f7bcb);},'setOptions':_0x1a4195=>{const _0x5c5eb6={};function _0x245006(_0x8b3549,_0x4d5ca5){return _0x3e09ce(_0x4d5ca5,_0x8b3549- -0x45);}_0x5c5eb6[_0x245006(0x354,0x32e)]=_0x113898(0x182,0x1f4),_0x5c5eb6['options']=_0x1a4195;function _0x113898(_0x1c55bb,_0x36a854){return _0x565dd2(_0x36a854,_0x1c55bb- -0x4c7);}this[_0x113898(0x1c2,0x21f)]['postMessage'](_0x5c5eb6);},'setDate':_0x490f7e=>{function _0x2f9bb2(_0x2c48c9,_0x5c66e5){return _0x3e09ce(_0x2c48c9,_0x5c66e5-0x246);}function _0x33cb54(_0x578dd1,_0xebed3c){return _0x3e09ce(_0xebed3c,_0x578dd1-0x293);}const _0x302a45={};_0x302a45['type']=_0x33cb54(0x5f6,0x5d0),_0x302a45['data']=_0x490f7e,this[_0x2f9bb2(0x642,0x65e)]['postMessage'](_0x302a45);},'update':()=>{if(this[_0x1cc8e3(0x46c,0x4cb)])return;function _0x301ab7(_0x2ba294,_0x38e6e3){return _0x565dd2(_0x2ba294,_0x38e6e3- -0xe);}function _0x1cc8e3(_0x25c3c6,_0x4b2c48){return _0x3e09ce(_0x25c3c6,_0x4b2c48-0x9c);}this[_0x301ab7(0x70e,0x692)]=!![];const _0x1a4552={};_0x1a4552[_0x301ab7(0x64e,0x5fc)]=_0x1cc8e3(0x4e5,0x465),this['worker'][_0x1cc8e3(0x3f9,0x3e3)](_0x1a4552);},'clear':()=>{function _0x37a055(_0x38c60d,_0x1ed0d7){return _0x565dd2(_0x1ed0d7,_0x38c60d- -0x391);}const _0x2e0b88={};_0x2e0b88['type']='clear',this[_0x37a055(0x2f8,0x375)]['postMessage'](_0x2e0b88);}};function _0x565dd2(_0x466e80,_0x683460){return _0x437391(_0x466e80,_0x683460- -0x2d);}this['windField']['init'](this['options']);}}mars3d__namespace[_0x20001d(0x5ec,0x56f)]['register']('canvasWind',CanvasWindLayer),mars3d__namespace[_0x20001d(0x5db,0x62f)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x437391(0x6c3,0x63c)]=WindUtil,exports[_0x20001d(0x622,0x5a2)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x437391(0x689,0x63c)]=WindUtil;const _0x513c65={};_0x513c65[_0x437391(0x5e1,0x5dd)]=!![];function _0x20001d(_0x40700,_0x2e4d50){return _0x9531(_0x2e4d50-0x390,_0x40700);}Object['defineProperty'](exports,'__esModule',_0x513c65);
15
15
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.7.14",
3
+ "version": "3.7.15",
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.7.14"
11
+ "mars3d": "~3.7.15"
12
12
  },
13
13
  "scripts": {
14
14
  "lint": "eslint ./src/**/*.{js,ts} --fix"