mars3d-wind 3.4.19 → 3.4.20

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.4.19
5
- * 编译日期:2022-12-26 19:59:16
4
+ * 版本信息:v3.4.20
5
+ * 编译日期:2023-01-09 21:00:08
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:免费公开版 ,2022-06-01
8
8
  */
@@ -11,5 +11,5 @@
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';var _0x25db9a=_0x4750;(function(_0xf3b9e4,_0x399533){var _0x44c9fa=_0x4750,_0x49fa1d=_0xf3b9e4();while(!![]){try{var _0x14e606=-parseInt(_0x44c9fa(0x108))/0x1*(parseInt(_0x44c9fa(0x87))/0x2)+-parseInt(_0x44c9fa(0xde))/0x3*(parseInt(_0x44c9fa(0xc6))/0x4)+-parseInt(_0x44c9fa(0x15e))/0x5+-parseInt(_0x44c9fa(0xe8))/0x6+parseInt(_0x44c9fa(0x13b))/0x7*(parseInt(_0x44c9fa(0x147))/0x8)+-parseInt(_0x44c9fa(0xd0))/0x9*(-parseInt(_0x44c9fa(0xb1))/0xa)+parseInt(_0x44c9fa(0xcb))/0xb;if(_0x14e606===_0x399533)break;else _0x49fa1d['push'](_0x49fa1d['shift']());}catch(_0x3913e3){_0x49fa1d['push'](_0x49fa1d['shift']());}}}(_0x130f,0x79b3f));function _0x4750(_0x118a31,_0x4d7d4a){var _0x130f0e=_0x130f();return _0x4750=function(_0x475037,_0x1eea6f){_0x475037=_0x475037-0x85;var _0x130c56=_0x130f0e[_0x475037];return _0x130c56;},_0x4750(_0x118a31,_0x4d7d4a);}function _interopNamespace(_0x54f4a7){if(_0x54f4a7&&_0x54f4a7['__esModule'])return _0x54f4a7;var _0x5ae1c4=Object['create'](null);return _0x54f4a7&&Object['keys'](_0x54f4a7)['forEach'](function(_0x29707f){var _0x5c5866=_0x4750;if(_0x29707f!=='default'){var _0x4f0e82=Object['getOwnPropertyDescriptor'](_0x54f4a7,_0x29707f);Object[_0x5c5866(0xfb)](_0x5ae1c4,_0x29707f,_0x4f0e82['get']?_0x4f0e82:{'enumerable':!![],'get':function(){return _0x54f4a7[_0x29707f];}});}}),_0x5ae1c4['default']=_0x54f4a7,_0x5ae1c4;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x569b85,_0x549c05){var _0x5631a8=_0x569b85*Math['cos'](Cesium$7['Math']['toRadians'](_0x549c05));return _0x5631a8;}function getV(_0x595cee,_0x41a4da){var _0x4344a8=_0x595cee*Math['sin'](Cesium$7['Math']['toRadians'](_0x41a4da));return _0x4344a8;}function getSpeed(_0x415c22,_0x19a42d){var _0x499ec9=_0x4750,_0x18c2c0=Math['sqrt'](Math['pow'](_0x415c22,0x2)+Math[_0x499ec9(0xf1)](_0x19a42d,0x2));return _0x18c2c0;}function getDirection(_0xea3e21,_0x2d2417){var _0x110041=_0x4750,_0x41bcb2=Cesium$7[_0x110041(0x88)]['toDegrees'](Math[_0x110041(0x14d)](_0x2d2417,_0xea3e21));return _0x41bcb2+=_0x41bcb2<0x0?0x168:0x0,_0x41bcb2;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x46f10f,_0x411b07){var _0x1e932c=_0x4750,_0xc05841=Object['keys'](_0x46f10f);if(Object['getOwnPropertySymbols']){var _0x504110=Object['getOwnPropertySymbols'](_0x46f10f);_0x411b07&&(_0x504110=_0x504110[_0x1e932c(0x9a)](function(_0x29ac96){var _0x187ea4=_0x1e932c;return Object['getOwnPropertyDescriptor'](_0x46f10f,_0x29ac96)[_0x187ea4(0x122)];})),_0xc05841['push']['apply'](_0xc05841,_0x504110);}return _0xc05841;}function _objectSpread2(_0x202bf5){var _0x4b210f=_0x4750;for(var _0x1e8073=0x1;_0x1e8073<arguments['length'];_0x1e8073++){var _0x140132=null!=arguments[_0x1e8073]?arguments[_0x1e8073]:{};_0x1e8073%0x2?ownKeys(Object(_0x140132),!0x0)['forEach'](function(_0x2e703f){_defineProperty(_0x202bf5,_0x2e703f,_0x140132[_0x2e703f]);}):Object['getOwnPropertyDescriptors']?Object['defineProperties'](_0x202bf5,Object['getOwnPropertyDescriptors'](_0x140132)):ownKeys(Object(_0x140132))[_0x4b210f(0xdd)](function(_0x575bfd){var _0x4fab06=_0x4b210f;Object[_0x4fab06(0xfb)](_0x202bf5,_0x575bfd,Object[_0x4fab06(0x174)](_0x140132,_0x575bfd));});}return _0x202bf5;}function _classCallCheck(_0x28b12c,_0x4589cb){var _0x41c4ad=_0x4750;if(!(_0x28b12c instanceof _0x4589cb))throw new TypeError(_0x41c4ad(0x86));}function _defineProperties(_0x458cb3,_0x590bb2){var _0x1ee3f8=_0x4750;for(var _0x13c738=0x0;_0x13c738<_0x590bb2[_0x1ee3f8(0x93)];_0x13c738++){var _0x28edd2=_0x590bb2[_0x13c738];_0x28edd2['enumerable']=_0x28edd2['enumerable']||![],_0x28edd2['configurable']=!![];if(_0x1ee3f8(0xea)in _0x28edd2)_0x28edd2['writable']=!![];Object[_0x1ee3f8(0xfb)](_0x458cb3,_0x28edd2['key'],_0x28edd2);}}function _createClass(_0x254be5,_0x47ee7c,_0x69041d){var _0x50c5a5=_0x4750;if(_0x47ee7c)_defineProperties(_0x254be5['prototype'],_0x47ee7c);if(_0x69041d)_defineProperties(_0x254be5,_0x69041d);return Object[_0x50c5a5(0xfb)](_0x254be5,'prototype',{'writable':![]}),_0x254be5;}function _0x130f(){var _0xb34fc3=['strokeStyle','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','6522HPEJuR','Math','commandList','_onMap_preRenderEvent','updateSpeed','push','tlat','uniformMap','DrawCommand','attributeLocations','@@iterator','vmax','length','CanvasWindLayer','particlesRendering','globalCompositeOperation','options','clear','age','filter','getRandomLatLng','ShaderSource','framebuffer','mouseMove','FLOAT','getUVByXY','primitives','call','particleSystem','depthTexture','segmentsColor','context','destroy','layer','mouse_move','initWorker','latRange','Geometry','data','resize','100%','lev','359400BgKIVO','visible','autoClear','destroyParticlesTextures','umin','createCommand','ymin','lineWidth','getPixelSize','getOptions','_data','mouseDown','Draw','onmessage','string','_map','OPAQUE','primitiveType','getDefaultRenderState','round','WindUtil','10576aEdPFK','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\x0avarying\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=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture2D(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20nextSpeed;\x0a}','cols','PrimitiveType','style','11992057dpVACG','VertexArray','segments','clearCommand','LUMINANCE','45INHUji','nextTrails','particles','refreshParticles','windField','currentParticlesSpeed','xmin','redraw','_onMapWhellEvent','lat','color','canvasHeight','colorTable','forEach','747bOYvCU','windTextures','commandType','floor','canvas','vdata','lon','createSegmentsGeometry','fadeOpacity','geometry','3648852amXMcu','colors','value','randomizeParticles','particlesComputing','pointerEvents','keys','rows','defined','pow','clearFramebuffers','STATIC_DRAW','__proto__','dimensions','RGBA','array','_speedRate','randomBetween','Cartesian3','defineProperty','fillRect','off','currentTrails','add','visibility','textures','commandToExecute','ComponentDatatype','particlesTextureSize','ellipsoid','Set','getParticles','37qOJiSe','show','ALWAYS','speedRate','updatePosition','Cartesian2','pixelSize','getFullscreenQuad','clientHeight','TRIANGLES','_maxAge','TextureMinificationFilter','postMessage','max','dropRateBump','_onMouseMoveEvent','remove','particlesNumber','isInExtent','register','outputTexture','prototype','_setOptionsHook','drawingBufferHeight','apply','bindEvent','enumerable','Compute','framebuffers','particlesTextures','Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined','worker','DepthFunction','fixedHeight','positionWC','createParticlesTextures','tlng','removeAll','PI_OVER_TWO','create','random','vertexArray','xmax','lonRange','createRenderingFramebuffers','_createCanvas','BoundingSphere','createRenderingTextures','appendChild','animateFrame','setOptions','981659nDmSuP','setAttribute','hidden','grid','fromCssColorString','viewerParameters','camera','maxAge','postProcessingPosition','bind','createTexture','trails','56plpigm','canvasContext','reverseY','0px','mouseUp','log','atan2','updateViewerParameters','constructor','getPrototypeOf','_calcUV','toDegrees','addPrimitives','mouse_down','min','_onMouseUpEvent','scene','shaderProgram','fromGeometry','getUVByPoint','undefined','_addedHook','update','1829480jUkBgJ','_onMouseDownEvent','Matrix4','PixelFormat','_pointerEvents','_drawLines','currentParticlesPosition','Cesium','canvasWidth','GeometryAttribute','NEAREST','TWO_PI','fill','Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','ymax','beginPath','arrayBufferView','Sampler','red','EventType','windData','getWind','getOwnPropertyDescriptor','postProcessingSpeed','maxParticles','DISABLE_LOG_DEPTH_FRAGMENT_WRITE'];_0x130f=function(){return _0xb34fc3;};return _0x130f();}function _defineProperty(_0x272f6d,_0x7a4a8b,_0x35ce8d){var _0x20f957=_0x4750;return _0x7a4a8b in _0x272f6d?Object[_0x20f957(0xfb)](_0x272f6d,_0x7a4a8b,{'value':_0x35ce8d,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x272f6d[_0x7a4a8b]=_0x35ce8d,_0x272f6d;}function _inherits(_0x2be85d,_0x5a3535){var _0x6671e4=_0x4750;if(typeof _0x5a3535!=='function'&&_0x5a3535!==null)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x2be85d['prototype']=Object[_0x6671e4(0x12f)](_0x5a3535&&_0x5a3535['prototype'],{'constructor':{'value':_0x2be85d,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x2be85d,'prototype',{'writable':![]});if(_0x5a3535)_setPrototypeOf(_0x2be85d,_0x5a3535);}function _getPrototypeOf(_0x3a57c3){var _0x4f3b54=_0x4750;return _getPrototypeOf=Object['setPrototypeOf']?Object[_0x4f3b54(0x150)]['bind']():function _0xa43630(_0x55c96b){var _0x5ee2b3=_0x4f3b54;return _0x55c96b['__proto__']||Object[_0x5ee2b3(0x150)](_0x55c96b);},_getPrototypeOf(_0x3a57c3);}function _setPrototypeOf(_0x3fb42c,_0x5cf7f7){return _setPrototypeOf=Object['setPrototypeOf']?Object['setPrototypeOf']['bind']():function _0x354ffe(_0x19b459,_0x314f6a){var _0x336f7c=_0x4750;return _0x19b459[_0x336f7c(0xf4)]=_0x314f6a,_0x19b459;},_setPrototypeOf(_0x3fb42c,_0x5cf7f7);}function _isNativeReflectConstruct(){var _0x330b4b=_0x4750;if(typeof Reflect===_0x330b4b(0x15b)||!Reflect['construct'])return![];if(Reflect['construct']['sham'])return![];if(typeof Proxy==='function')return!![];try{return Boolean[_0x330b4b(0x11d)]['valueOf'][_0x330b4b(0xa2)](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x4c70ca){return![];}}function _assertThisInitialized(_0x551175){if(_0x551175===void 0x0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x551175;}function _possibleConstructorReturn(_0x496348,_0x5c8b1f){var _0x15ed00=_0x4750;if(_0x5c8b1f&&(typeof _0x5c8b1f==='object'||typeof _0x5c8b1f==='function'))return _0x5c8b1f;else{if(_0x5c8b1f!==void 0x0)throw new TypeError(_0x15ed00(0x126));}return _assertThisInitialized(_0x496348);}function _createSuper(_0x1f770e){var _0x2f50ff=_isNativeReflectConstruct();return function _0x352a48(){var _0x394a7c=_0x4750,_0x3a46c0=_getPrototypeOf(_0x1f770e),_0x570abd;if(_0x2f50ff){var _0x3bed0e=_getPrototypeOf(this)['constructor'];_0x570abd=Reflect['construct'](_0x3a46c0,arguments,_0x3bed0e);}else _0x570abd=_0x3a46c0[_0x394a7c(0x120)](this,arguments);return _possibleConstructorReturn(this,_0x570abd);};}function _toConsumableArray(_0x9340d3){return _arrayWithoutHoles(_0x9340d3)||_iterableToArray(_0x9340d3)||_unsupportedIterableToArray(_0x9340d3)||_nonIterableSpread();}function _arrayWithoutHoles(_0xbfb9f2){if(Array['isArray'](_0xbfb9f2))return _arrayLikeToArray(_0xbfb9f2);}function _iterableToArray(_0x105d94){var _0x19ac91=_0x4750;if(typeof Symbol!=='undefined'&&_0x105d94[Symbol['iterator']]!=null||_0x105d94[_0x19ac91(0x91)]!=null)return Array['from'](_0x105d94);}function _unsupportedIterableToArray(_0x52a82a,_0x3ea721){var _0x474ca3=_0x4750;if(!_0x52a82a)return;if(typeof _0x52a82a===_0x474ca3(0xbf))return _arrayLikeToArray(_0x52a82a,_0x3ea721);var _0xdb7fc0=Object[_0x474ca3(0x11d)]['toString'][_0x474ca3(0xa2)](_0x52a82a)['slice'](0x8,-0x1);if(_0xdb7fc0==='Object'&&_0x52a82a['constructor'])_0xdb7fc0=_0x52a82a[_0x474ca3(0x14f)]['name'];if(_0xdb7fc0==='Map'||_0xdb7fc0===_0x474ca3(0x106))return Array['from'](_0x52a82a);if(_0xdb7fc0==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0xdb7fc0))return _arrayLikeToArray(_0x52a82a,_0x3ea721);}function _arrayLikeToArray(_0x4ee7bb,_0x33834a){var _0x2fed3e=_0x4750;if(_0x33834a==null||_0x33834a>_0x4ee7bb[_0x2fed3e(0x93)])_0x33834a=_0x4ee7bb['length'];for(var _0x18eed3=0x0,_0x29faae=new Array(_0x33834a);_0x18eed3<_0x33834a;_0x18eed3++)_0x29faae[_0x18eed3]=_0x4ee7bb[_0x18eed3];return _0x29faae;}function _nonIterableSpread(){var _0x13677b=_0x4750;throw new TypeError(_0x13677b(0x16b));}var Cesium$6=mars3d__namespace['Cesium'],CustomPrimitive=(function(){var _0x57f528=_0x4750;function _0x46d9d7(_0x9e4c2d){var _0x1690af=_0x4750,_0x3cb457;_classCallCheck(this,_0x46d9d7),this[_0x1690af(0xe0)]=_0x9e4c2d[_0x1690af(0xe0)],this['geometry']=_0x9e4c2d[_0x1690af(0xe7)],this['attributeLocations']=_0x9e4c2d[_0x1690af(0x90)],this['primitiveType']=_0x9e4c2d[_0x1690af(0xc2)],this['uniformMap']=_0x9e4c2d[_0x1690af(0x8e)],this['vertexShaderSource']=_0x9e4c2d['vertexShaderSource'],this['fragmentShaderSource']=_0x9e4c2d['fragmentShaderSource'],this['rawRenderState']=_0x9e4c2d['rawRenderState'],this['framebuffer']=_0x9e4c2d[_0x1690af(0x9d)],this[_0x1690af(0x11c)]=_0x9e4c2d['outputTexture'],this[_0x1690af(0xb3)]=(_0x3cb457=_0x9e4c2d[_0x1690af(0xb3)])!==null&&_0x3cb457!==void 0x0?_0x3cb457:![],this['preExecute']=_0x9e4c2d['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=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']['OPAQUE']}));}return _createClass(_0x46d9d7,[{'key':_0x57f528(0xb6),'value':function _0x1d035f(_0x45d456){var _0x5ae254=_0x57f528;switch(this['commandType']){case _0x5ae254(0xbd):{var _0x17ff07=Cesium$6[_0x5ae254(0xcc)][_0x5ae254(0x159)]({'context':_0x45d456,'geometry':this['geometry'],'attributeLocations':this[_0x5ae254(0x90)],'bufferUsage':Cesium$6['BufferUsage'][_0x5ae254(0xf3)]}),_0x21ebaf=Cesium$6['ShaderProgram']['fromCache']({'context':_0x45d456,'attributeLocations':this[_0x5ae254(0x90)],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this['fragmentShaderSource']}),_0x3ea030=Cesium$6['RenderState']['fromCache'](this['rawRenderState']);return new Cesium$6[(_0x5ae254(0x8f))]({'primitiveType':this['primitiveType'],'shaderProgram':_0x21ebaf,'vertexArray':_0x17ff07,'modelMatrix':Cesium$6[_0x5ae254(0x160)]['IDENTITY'],'renderState':_0x3ea030,'uniformMap':this['uniformMap'],'castShadows':![],'receiveShadows':![],'framebuffer':this[_0x5ae254(0x9d)],'pass':Cesium$6['Pass'][_0x5ae254(0xc1)],'pickOnly':!![],'owner':this});}case'Compute':{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this[_0x5ae254(0x8e)],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':'setGeometry','value':function _0xffce2b(_0x5718bb,_0x491aa0){var _0x24d8be=_0x57f528;this['geometry']=_0x491aa0;var _0x16ba09=Cesium$6['VertexArray'][_0x24d8be(0x159)]({'context':_0x5718bb,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage'][_0x24d8be(0xf3)]});this['commandToExecute']['vertexArray']=_0x16ba09;}},{'key':_0x57f528(0x15d),'value':function _0x4ce0c7(_0x288120){var _0x5c4fa5=_0x57f528;if(!this['show'])return;if(_0x288120['mode']!==Cesium$6['SceneMode']['SCENE3D'])return;!Cesium$6['defined'](this['commandToExecute'])&&(this[_0x5c4fa5(0x102)]=this['createCommand'](_0x288120['context'])),Cesium$6['defined'](this['preExecute'])&&this['preExecute'](),Cesium$6[_0x5c4fa5(0xf0)](this['clearCommand'])&&_0x288120['commandList'][_0x5c4fa5(0x8c)](this[_0x5c4fa5(0xce)]),_0x288120[_0x5c4fa5(0x89)]['push'](this['commandToExecute']);}},{'key':'isDestroyed','value':function _0x97ab8d(){return![];}},{'key':'destroy','value':function _0x39b0f0(){var _0x199071=_0x57f528;if(this['clearCommand']){var _0x3c4887,_0x4c8639;(_0x3c4887=this['clearCommand'])!==null&&_0x3c4887!==void 0x0&&_0x3c4887['vertexArray']&&this['clearCommand'][_0x199071(0x131)]['destroy'](),(_0x4c8639=this[_0x199071(0xce)])!==null&&_0x4c8639!==void 0x0&&_0x4c8639['shaderProgram']&&this['clearCommand'][_0x199071(0x158)][_0x199071(0xa7)](),delete this[_0x199071(0xce)];}return this['commandToExecute']&&(this[_0x199071(0x102)]['vertexArray']&&this['commandToExecute']['vertexArray']['destroy'](),this['commandToExecute'][_0x199071(0x158)]&&this['commandToExecute']['shaderProgram']['destroy'](),delete this['commandToExecute']),Cesium$6['destroyObject'](this);}}]),_0x46d9d7;}()),Cesium$5=mars3d__namespace['Cesium'],Util=(function(){var _0x5df4d5=function _0x21b9a0(){var _0xbfeebd=_0x4750,_0x3f8088=new Cesium$5[(_0xbfeebd(0xac))]({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5[(_0xbfeebd(0x167))]({'componentDatatype':Cesium$5['ComponentDatatype'][_0xbfeebd(0x9f)],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5[(_0xbfeebd(0x167))]({'componentDatatype':Cesium$5[_0xbfeebd(0x103)]['FLOAT'],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x3f8088;},_0x50b4a3=function _0x334cbc(_0x232100,_0x4ca5de){var _0x7c1d92=_0x4750;if(Cesium$5['defined'](_0x4ca5de)){var _0x16bc0c={};_0x16bc0c[_0x7c1d92(0x16e)]=_0x4ca5de,_0x232100['source']=_0x16bc0c;}var _0x5bb7b3=new Cesium$5['Texture'](_0x232100);return _0x5bb7b3;},_0x52f4f0=function _0xd27d76(_0x3cfabc,_0x3183a0,_0x2832ce){var _0x330240=new Cesium$5['Framebuffer']({'context':_0x3cfabc,'colorTextures':[_0x3183a0],'depthTexture':_0x2832ce});return _0x330240;},_0x28f716=function _0x159b7a(_0x351126){var _0x4f4f86=_0x4750,_0x2e9ff2=!![],_0x5f265b=![],_0x2e510d={'viewport':_0x351126['viewport'],'depthTest':_0x351126['depthTest'],'depthMask':_0x351126['depthMask'],'blending':_0x351126['blending']},_0x55654f=Cesium$5['Appearance'][_0x4f4f86(0xc3)](_0x2e9ff2,_0x5f265b,_0x2e510d);return _0x55654f;},_0x2989d8=function _0x1e1fcf(_0xbed7aa){var _0x1d9eb1=_0x4750,_0x1a4696={},_0x8e49f7=Cesium$5['Math']['mod'](_0xbed7aa['west'],Cesium$5['Math'][_0x1d9eb1(0x169)]),_0x1eeecf=Cesium$5[_0x1d9eb1(0x88)]['mod'](_0xbed7aa['east'],Cesium$5['Math'][_0x1d9eb1(0x169)]),_0x2d7ebf=_0xbed7aa['width'],_0xdc714f,_0x593250;_0x2d7ebf>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0xdc714f=0x0,_0x593250=Cesium$5['Math'][_0x1d9eb1(0x169)]):_0x1eeecf-_0x8e49f7<_0x2d7ebf?(_0xdc714f=_0x8e49f7,_0x593250=_0x8e49f7+_0x2d7ebf):(_0xdc714f=_0x8e49f7,_0x593250=_0x1eeecf);_0x1a4696[_0x1d9eb1(0xe4)]={'min':Cesium$5['Math']['toDegrees'](_0xdc714f),'max':Cesium$5['Math'][_0x1d9eb1(0x152)](_0x593250)};var _0xfad965=_0xbed7aa['south'],_0x8de97a=_0xbed7aa['north'],_0x105089=_0xbed7aa['height'],_0xc94e71=_0x105089>Cesium$5[_0x1d9eb1(0x88)]['PI']/0xc?_0x105089/0x2:0x0,_0x553dfd=Cesium$5[_0x1d9eb1(0x88)]['clampToLatitudeRange'](_0xfad965-_0xc94e71),_0xfd890f=Cesium$5[_0x1d9eb1(0x88)]['clampToLatitudeRange'](_0x8de97a+_0xc94e71);return _0x553dfd<-Cesium$5[_0x1d9eb1(0x88)]['PI_OVER_THREE']&&(_0x553dfd=-Cesium$5['Math'][_0x1d9eb1(0x12e)]),_0xfd890f>Cesium$5['Math']['PI_OVER_THREE']&&(_0xfd890f=Cesium$5[_0x1d9eb1(0x88)][_0x1d9eb1(0x12e)]),_0x1a4696['lat']={'min':Cesium$5['Math'][_0x1d9eb1(0x152)](_0x553dfd),'max':Cesium$5[_0x1d9eb1(0x88)]['toDegrees'](_0xfd890f)},_0x1a4696;};return{'getFullscreenQuad':_0x5df4d5,'createTexture':_0x50b4a3,'createFramebuffer':_0x52f4f0,'createRawRenderState':_0x28f716,'viewRectangleToLonLatRange':_0x2989d8};}()),segmentDraw_vert='attribute\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0aattribute\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\x0avarying\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\x20\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x20\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x20\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=\x20texture2D(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture2D(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=\x20texture2D(postProcessingSpeed,\x20particleIndex).a;\x0a}',segmentDraw_frag='uniform\x20sampler2D\x20colorTable;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20texture2D(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}',fullscreen_vert='attribute\x20vec3\x20position;\x0d\x0aattribute\x20vec2\x20st;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0d\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0d\x0a}',trailDraw_frag='uniform\x20sampler2D\x20segmentsColorTexture;\x0d\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0d\x0a\x0d\x0auniform\x20sampler2D\x20currentTrailsColor;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0auniform\x20float\x20fadeOpacity;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture2D(segmentsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(currentTrailsColor,\x20textureCoordinate);\x0d\x0a\x0d\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\x0d\x0a\x0d\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture2D(segmentsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20pointsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20gl_FragDepthEXT\x20=\x20min(pointsDepth,\x20trailsDepth);\x0d\x0a}',screenDraw_frag='uniform\x20sampler2D\x20trailsColorTexture;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(trailsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x20else\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20}\x0d\x0a}',Cesium$4=mars3d__namespace[_0x25db9a(0x165)],ParticlesRendering=(function(){var _0x30ab0b=_0x25db9a;function _0x310acb(_0x147b8b,_0xc1cd7e,_0x273533,_0x380dce,_0x2347fb){var _0x55669e=_0x4750;_classCallCheck(this,_0x310acb),this['createRenderingTextures'](_0x147b8b,_0xc1cd7e,_0x273533['colors']),this[_0x55669e(0x134)](_0x147b8b),this['createRenderingPrimitives'](_0x147b8b,_0x273533,_0x380dce,_0x2347fb);}return _createClass(_0x310acb,[{'key':_0x30ab0b(0x137),'value':function _0x5eaa49(_0x3984dd,_0xc5036f,_0x9ade35){var _0x46ac84=_0x30ab0b,_0x5c6e2f={'context':_0x3984dd,'width':_0x3984dd['drawingBufferWidth'],'height':_0x3984dd['drawingBufferHeight'],'pixelFormat':Cesium$4[_0x46ac84(0x161)][_0x46ac84(0xf6)],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_BYTE']},_0x275c25={'context':_0x3984dd,'width':_0x3984dd['drawingBufferWidth'],'height':_0x3984dd[_0x46ac84(0x11f)],'pixelFormat':Cesium$4['PixelFormat']['DEPTH_COMPONENT'],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_INT']},_0x7997a6=_0x9ade35['length'],_0x52a773=new Float32Array(_0x7997a6*0x3);for(var _0x32676b=0x0;_0x32676b<_0x7997a6;_0x32676b++){var _0x40c9f7=Cesium$4['Color'][_0x46ac84(0x13f)](_0x9ade35[_0x32676b]);_0x52a773[0x3*_0x32676b]=_0x40c9f7[_0x46ac84(0x170)],_0x52a773[0x3*_0x32676b+0x1]=_0x40c9f7['green'],_0x52a773[0x3*_0x32676b+0x2]=_0x40c9f7['blue'];}var _0x46f833={'context':_0x3984dd,'width':_0x7997a6,'height':0x1,'pixelFormat':Cesium$4[_0x46ac84(0x161)]['RGB'],'pixelDatatype':Cesium$4['PixelDatatype'][_0x46ac84(0x9f)],'sampler':new Cesium$4[(_0x46ac84(0x16f))]({'minificationFilter':Cesium$4['TextureMinificationFilter']['LINEAR'],'magnificationFilter':Cesium$4['TextureMagnificationFilter']['LINEAR']})};this[_0x46ac84(0x101)]={'segmentsColor':Util['createTexture'](_0x5c6e2f),'segmentsDepth':Util['createTexture'](_0x275c25),'currentTrailsColor':Util['createTexture'](_0x5c6e2f),'currentTrailsDepth':Util['createTexture'](_0x275c25),'nextTrailsColor':Util['createTexture'](_0x5c6e2f),'nextTrailsDepth':Util['createTexture'](_0x275c25),'colorTable':Util['createTexture'](_0x46f833,_0x52a773)};}},{'key':_0x30ab0b(0x134),'value':function _0x1b3ec8(_0x481979){var _0x8fbabe=_0x30ab0b;this['framebuffers']={'segments':Util['createFramebuffer'](_0x481979,this['textures'][_0x8fbabe(0xa5)],this[_0x8fbabe(0x101)]['segmentsDepth']),'currentTrails':Util['createFramebuffer'](_0x481979,this['textures']['currentTrailsColor'],this['textures']['currentTrailsDepth']),'nextTrails':Util['createFramebuffer'](_0x481979,this['textures']['nextTrailsColor'],this['textures']['nextTrailsDepth'])};}},{'key':'createSegmentsGeometry','value':function _0x4daa0(_0x53b5ba){var _0x25f445=_0x30ab0b,_0x1f1fd2=0x4,_0x10139d=[];for(var _0x308a4a=0x0;_0x308a4a<_0x53b5ba[_0x25f445(0x104)];_0x308a4a++){for(var _0x38a7aa=0x0;_0x38a7aa<_0x53b5ba['particlesTextureSize'];_0x38a7aa++){for(var _0x8887a2=0x0;_0x8887a2<_0x1f1fd2;_0x8887a2++){_0x10139d[_0x25f445(0x8c)](_0x308a4a/_0x53b5ba['particlesTextureSize']),_0x10139d['push'](_0x38a7aa/_0x53b5ba[_0x25f445(0x104)]);}}}_0x10139d=new Float32Array(_0x10139d);var _0x34a4f8=[],_0xd274d0=[-0x1,0x1],_0x527114=[-0x1,0x1];for(var _0x4b7675=0x0;_0x4b7675<_0x53b5ba['maxParticles'];_0x4b7675++){for(var _0x4e91b9=0x0;_0x4e91b9<_0x1f1fd2/0x2;_0x4e91b9++){for(var _0x2fdb62=0x0;_0x2fdb62<_0x1f1fd2/0x2;_0x2fdb62++){_0x34a4f8['push'](_0xd274d0[_0x4e91b9]),_0x34a4f8['push'](_0x527114[_0x2fdb62]),_0x34a4f8['push'](0x0);}}}_0x34a4f8=new Float32Array(_0x34a4f8);var _0xa4bcc7=0x6*_0x53b5ba[_0x25f445(0x176)],_0x49c402=new Uint32Array(_0xa4bcc7);for(var _0xa6e340=0x0,_0x3baa75=0x0,_0x2aa987=0x0;_0xa6e340<_0x53b5ba['maxParticles'];_0xa6e340++){_0x49c402[_0x3baa75++]=_0x2aa987+0x0,_0x49c402[_0x3baa75++]=_0x2aa987+0x1,_0x49c402[_0x3baa75++]=_0x2aa987+0x2,_0x49c402[_0x3baa75++]=_0x2aa987+0x2,_0x49c402[_0x3baa75++]=_0x2aa987+0x1,_0x49c402[_0x3baa75++]=_0x2aa987+0x3,_0x2aa987+=0x4;}var _0x3f3133=new Cesium$4['Geometry']({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4[_0x25f445(0x103)][_0x25f445(0x9f)],'componentsPerAttribute':0x2,'values':_0x10139d}),'normal':new Cesium$4[(_0x25f445(0x167))]({'componentDatatype':Cesium$4[_0x25f445(0x103)]['FLOAT'],'componentsPerAttribute':0x3,'values':_0x34a4f8})}),'indices':_0x49c402});return _0x3f3133;}},{'key':'createRenderingPrimitives','value':function _0x1ef128(_0x30936e,_0x22299b,_0x14da17,_0x58e036){var _0x201b73=_0x30ab0b,_0x375401=this;this[_0x201b73(0xa1)]={'segments':new CustomPrimitive({'commandType':_0x201b73(0xbd),'attributeLocations':{'st':0x0,'normal':0x1},'geometry':this['createSegmentsGeometry'](_0x22299b),'primitiveType':Cesium$4[_0x201b73(0xc9)]['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function _0x1f1cf8(){return _0x58e036['particlesTextures']['currentParticlesPosition'];},'postProcessingPosition':function _0x155e0e(){var _0x5ad1f4=_0x201b73;return _0x58e036['particlesTextures'][_0x5ad1f4(0x143)];},'postProcessingSpeed':function _0x5d63b5(){var _0x4b6827=_0x201b73;return _0x58e036['particlesTextures'][_0x4b6827(0x175)];},'colorTable':function _0x279f91(){var _0x5f0f8b=_0x201b73;return _0x375401[_0x5f0f8b(0x101)][_0x5f0f8b(0xdc)];},'aspect':function _0x1052f6(){var _0x3dfef6=_0x201b73;return _0x30936e['drawingBufferWidth']/_0x30936e[_0x3dfef6(0x11f)];},'pixelSize':function _0x137ffc(){return _0x14da17['pixelSize'];},'lineWidth':function _0x298413(){var _0x18d637=_0x201b73;return _0x22299b[_0x18d637(0xb8)];},'particleHeight':function _0x304933(){return _0x22299b['particleHeight'];}},'vertexShaderSource':new Cesium$4[(_0x201b73(0x9c))]({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this['framebuffers']['segments'],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x201b73(0xbd),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0x5181c0(){var _0x52e68b=_0x201b73;return _0x375401[_0x52e68b(0x101)]['segmentsColor'];},'segmentsDepthTexture':function _0xd84e9f(){return _0x375401['textures']['segmentsDepth'];},'currentTrailsColor':function _0x370ea0(){var _0x46746b=_0x201b73;return _0x375401['framebuffers'][_0x46746b(0xfe)]['getColorTexture'](0x0);},'trailsDepthTexture':function _0x531d8f(){var _0x19f39d=_0x201b73;return _0x375401[_0x19f39d(0x124)][_0x19f39d(0xfe)][_0x19f39d(0xa4)];},'fadeOpacity':function _0x3da127(){var _0x1ec444=_0x201b73;return _0x22299b[_0x1ec444(0xe6)];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x201b73(0x9c))]({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[trailDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4[_0x201b73(0x128)][_0x201b73(0x10a)]},'depthMask':!![]}),'framebuffer':this[_0x201b73(0x124)][_0x201b73(0xd1)],'autoClear':!![],'preExecute':function _0x20f23f(){var _0x26429f=_0x201b73,_0x1d3926=_0x375401['framebuffers']['currentTrails'];_0x375401['framebuffers']['currentTrails']=_0x375401['framebuffers'][_0x26429f(0xd1)],_0x375401['framebuffers'][_0x26429f(0xd1)]=_0x1d3926,_0x375401['primitives']['trails']['commandToExecute']['framebuffer']=_0x375401['framebuffers'][_0x26429f(0xd1)],_0x375401[_0x26429f(0xa1)][_0x26429f(0x146)]['clearCommand'][_0x26429f(0x9d)]=_0x375401['framebuffers']['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':_0x201b73(0xbd),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x201b73(0x10f)](),'primitiveType':Cesium$4[_0x201b73(0xc9)][_0x201b73(0x111)],'uniformMap':{'trailsColorTexture':function _0x53d6ef(){return _0x375401['framebuffers']['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x340fea(){var _0x45d761=_0x201b73;return _0x375401[_0x45d761(0x124)][_0x45d761(0xd1)][_0x45d761(0xa4)];}},'vertexShaderSource':new Cesium$4[(_0x201b73(0x9c))]({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x201b73(0x9c))]({'defines':[_0x201b73(0x177)],'sources':[screenDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x310acb;}()),getWind_frag='//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x20\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\x0avarying\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=\x20texture2D(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=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}',updateSpeed_frag=_0x25db9a(0xc7),updatePosition_frag='uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0avarying\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\x20gl_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=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\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\x0avarying\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=\x20texture2D(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture2D(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\x20gl_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\x20gl_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}',postProcessingSpeed_frag='uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture2D(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture2D(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}',Cesium$3=mars3d__namespace['Cesium'],ParticlesComputing=(function(){var _0x50f65d=_0x25db9a;function _0xe66580(_0x5e15d7,_0x4aeb89,_0x430415,_0x1b2be1){var _0x9aa874=_0x4750;_classCallCheck(this,_0xe66580),this[_0x9aa874(0xad)]=_0x4aeb89,this['createWindTextures'](_0x5e15d7,_0x4aeb89),this[_0x9aa874(0x12b)](_0x5e15d7,_0x430415,_0x1b2be1),this['createComputingPrimitives'](_0x4aeb89,_0x430415,_0x1b2be1);}return _createClass(_0xe66580,[{'key':'createWindTextures','value':function _0x457bd1(_0xae3148,_0x3d2369){var _0x1bac8b=_0x4750,_0x4ae897={'context':_0xae3148,'width':_0x3d2369[_0x1bac8b(0xf5)]['lon'],'height':_0x3d2369['dimensions']['lat']*(_0x3d2369['dimensions']['lev']||0x1),'pixelFormat':Cesium$3['PixelFormat'][_0x1bac8b(0xcf)],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0x1bac8b(0x168)],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};this['windTextures']={'U':Util[_0x1bac8b(0x145)](_0x4ae897,_0x3d2369['U'][_0x1bac8b(0xf7)]),'V':Util[_0x1bac8b(0x145)](_0x4ae897,_0x3d2369['V'][_0x1bac8b(0xf7)])};}},{'key':_0x50f65d(0x12b),'value':function _0x156dc1(_0x4fcfe7,_0x24c5b1,_0xe7e48a){var _0x10b155=_0x50f65d,_0x3df732={'context':_0x4fcfe7,'width':_0x24c5b1[_0x10b155(0x104)],'height':_0x24c5b1['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3[(_0x10b155(0x16f))]({'minificationFilter':Cesium$3[_0x10b155(0x113)]['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter'][_0x10b155(0x168)]})},_0x46948b=this[_0x10b155(0xeb)](_0x24c5b1[_0x10b155(0x176)],_0xe7e48a),_0x5f2b37=new Float32Array(0x4*_0x24c5b1['maxParticles'])[_0x10b155(0x16a)](0x0);this[_0x10b155(0x125)]={'particlesWind':Util['createTexture'](_0x3df732),'currentParticlesPosition':Util['createTexture'](_0x3df732,_0x46948b),'nextParticlesPosition':Util[_0x10b155(0x145)](_0x3df732,_0x46948b),'currentParticlesSpeed':Util['createTexture'](_0x3df732,_0x5f2b37),'nextParticlesSpeed':Util['createTexture'](_0x3df732,_0x5f2b37),'postProcessingPosition':Util[_0x10b155(0x145)](_0x3df732,_0x46948b),'postProcessingSpeed':Util['createTexture'](_0x3df732,_0x5f2b37)};}},{'key':_0x50f65d(0xeb),'value':function _0x4fbfbd(_0x5d5ff4,_0x308e9e){var _0xe42677=_0x50f65d,_0xc642a0=new Float32Array(0x4*_0x5d5ff4);for(var _0x3633ad=0x0;_0x3633ad<_0x5d5ff4;_0x3633ad++){_0xc642a0[0x4*_0x3633ad]=Cesium$3['Math'][_0xe42677(0xf9)](_0x308e9e['lonRange']['x'],_0x308e9e[_0xe42677(0x133)]['y']),_0xc642a0[0x4*_0x3633ad+0x1]=Cesium$3['Math']['randomBetween'](_0x308e9e['latRange']['x'],_0x308e9e['latRange']['y']),_0xc642a0[0x4*_0x3633ad+0x2]=Cesium$3['Math']['randomBetween'](this[_0xe42677(0xad)]['lev']['min'],this['data']['lev'][_0xe42677(0x115)]),_0xc642a0[0x4*_0x3633ad+0x3]=0x0;}return _0xc642a0;}},{'key':_0x50f65d(0xb4),'value':function _0x37dced(){var _0x470fc6=this;Object['keys'](this['particlesTextures'])['forEach'](function(_0x2aa43f){var _0xa7998e=_0x4750;_0x470fc6[_0xa7998e(0x125)][_0x2aa43f]['destroy']();});}},{'key':'createComputingPrimitives','value':function _0x516aee(_0x539ee7,_0x2d7ada,_0x2f51aa){var _0x4590a0=_0x50f65d,_0x479109=new Cesium$3['Cartesian3'](_0x539ee7['dimensions']['lon'],_0x539ee7['dimensions']['lat'],_0x539ee7['dimensions'][_0x4590a0(0xb0)]),_0x333683=new Cesium$3['Cartesian3'](_0x539ee7['lon']['min'],_0x539ee7['lat']['min'],_0x539ee7['lev'][_0x4590a0(0x155)]),_0x26a104=new Cesium$3[(_0x4590a0(0xfa))](_0x539ee7['lon'][_0x4590a0(0x115)],_0x539ee7['lat'][_0x4590a0(0x115)],_0x539ee7['lev'][_0x4590a0(0x115)]),_0x4f5c26=new Cesium$3['Cartesian3']((_0x26a104['x']-_0x333683['x'])/(_0x479109['x']-0x1),(_0x26a104['y']-_0x333683['y'])/(_0x479109['y']-0x1),_0x479109['z']>0x1?(_0x26a104['z']-_0x333683['z'])/(_0x479109['z']-0x1):0x1),_0x4bee2b=new Cesium$3[(_0x4590a0(0x10d))](_0x539ee7['U'][_0x4590a0(0x155)],_0x539ee7['U'][_0x4590a0(0x115)]),_0x4b0f08=new Cesium$3['Cartesian2'](_0x539ee7['V'][_0x4590a0(0x155)],_0x539ee7['V']['max']),_0xfada1=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':function _0x45f8c9(){return _0xfada1['windTextures']['U'];},'V':function _0x5545cf(){return _0xfada1['windTextures']['V'];},'currentParticlesPosition':function _0x381f08(){return _0xfada1['particlesTextures']['currentParticlesPosition'];},'dimension':function _0x475170(){return _0x479109;},'minimum':function _0x1cf3d6(){return _0x333683;},'maximum':function _0x5e87a9(){return _0x26a104;},'interval':function _0x32314e(){return _0x4f5c26;}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[getWind_frag]}),'outputTexture':this['particlesTextures']['particlesWind'],'preExecute':function _0x2cb3e2(){var _0x194523=_0x4590a0;_0xfada1['primitives'][_0x194523(0x173)][_0x194523(0x102)]['outputTexture']=_0xfada1[_0x194523(0x125)]['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':_0x4590a0(0x123),'uniformMap':{'currentParticlesSpeed':function _0x9ee428(){var _0x39e18d=_0x4590a0;return _0xfada1[_0x39e18d(0x125)]['currentParticlesSpeed'];},'particlesWind':function _0x20d452(){return _0xfada1['particlesTextures']['particlesWind'];},'uSpeedRange':function _0x1fd5b4(){return _0x4bee2b;},'vSpeedRange':function _0x3c999b(){return _0x4b0f08;},'pixelSize':function _0x3c3548(){var _0xa75e5e=_0x4590a0;return _0x2f51aa[_0xa75e5e(0x10e)];},'speedFactor':function _0x41cf4b(){return _0x2d7ada['speedFactor'];}},'fragmentShaderSource':new Cesium$3[(_0x4590a0(0x9c))]({'sources':[updateSpeed_frag]}),'outputTexture':this['particlesTextures']['nextParticlesSpeed'],'preExecute':function _0x15fbba(){var _0x1c55bc=_0x4590a0,_0x1f6064=_0xfada1['particlesTextures']['currentParticlesSpeed'];_0xfada1[_0x1c55bc(0x125)]['currentParticlesSpeed']=_0xfada1[_0x1c55bc(0x125)]['postProcessingSpeed'],_0xfada1['particlesTextures']['postProcessingSpeed']=_0x1f6064,_0xfada1['primitives'][_0x1c55bc(0x8b)]['commandToExecute'][_0x1c55bc(0x11c)]=_0xfada1['particlesTextures']['nextParticlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x3cd11e(){return _0xfada1['particlesTextures']['currentParticlesPosition'];},'currentParticlesSpeed':function _0x1aa5f6(){var _0x3f787c=_0x4590a0;return _0xfada1[_0x3f787c(0x125)][_0x3f787c(0xd5)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0x1b6430(){var _0x82bfed=_0x4590a0,_0x10d80c=_0xfada1['particlesTextures'][_0x82bfed(0x164)];_0xfada1['particlesTextures']['currentParticlesPosition']=_0xfada1['particlesTextures']['postProcessingPosition'],_0xfada1['particlesTextures']['postProcessingPosition']=_0x10d80c,_0xfada1['primitives']['updatePosition']['commandToExecute']['outputTexture']=_0xfada1['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0xb48c89(){return _0xfada1['particlesTextures']['nextParticlesPosition'];},'nextParticlesSpeed':function _0x1f0dd6(){return _0xfada1['particlesTextures']['nextParticlesSpeed'];},'lonRange':function _0x2d886c(){var _0x58c625=_0x4590a0;return _0x2f51aa[_0x58c625(0x133)];},'latRange':function _0x1cd2d7(){var _0x8b7fa6=_0x4590a0;return _0x2f51aa[_0x8b7fa6(0xab)];},'randomCoefficient':function _0x306685(){var _0x2c5e44=Math['random']();return _0x2c5e44;},'dropRate':function _0xaa7174(){return _0x2d7ada['dropRate'];},'dropRateBump':function _0xbd0b7d(){return _0x2d7ada['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures'][_0x4590a0(0x143)],'preExecute':function _0x1ff23b(){var _0x34edf5=_0x4590a0;_0xfada1[_0x34edf5(0xa1)]['postProcessingPosition']['commandToExecute']['outputTexture']=_0xfada1['particlesTextures'][_0x34edf5(0x143)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0x31e097(){var _0x3008bd=_0x4590a0;return _0xfada1['particlesTextures'][_0x3008bd(0x143)];},'nextParticlesSpeed':function _0xf2e2f2(){var _0x36de6e=_0x4590a0;return _0xfada1[_0x36de6e(0x125)]['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3[(_0x4590a0(0x9c))]({'sources':[postProcessingSpeed_frag]}),'outputTexture':this['particlesTextures'][_0x4590a0(0x175)],'preExecute':function _0x47d204(){var _0x15d795=_0x4590a0;_0xfada1['primitives']['postProcessingSpeed'][_0x15d795(0x102)][_0x15d795(0x11c)]=_0xfada1['particlesTextures'][_0x15d795(0x175)];}})};}}]),_0xe66580;}()),Cesium$2=mars3d__namespace[_0x25db9a(0x165)],ParticleSystem=(function(){var _0x28e4f0=_0x25db9a;function _0x504563(_0xc85642,_0x566740,_0x4b1289,_0xf44169){var _0x1908d2=_0x4750;_classCallCheck(this,_0x504563),this['context']=_0xc85642,_0x566740=_objectSpread2({},_0x566740);if(_0x566740['udata']&&_0x566740[_0x1908d2(0xe3)]){var _0x439ac9,_0x54f62c,_0x2c4c65,_0x104e80,_0x5b2350,_0x412eb2;_0x566740['dimensions']={},_0x566740[_0x1908d2(0xf5)]['lon']=_0x566740['cols'],_0x566740['dimensions'][_0x1908d2(0xd9)]=_0x566740['rows'],_0x566740['dimensions']['lev']=_0x566740['lev']||0x1,_0x566740['lon']={},_0x566740['lon']['min']=_0x566740[_0x1908d2(0xd6)],_0x566740['lon']['max']=_0x566740[_0x1908d2(0x132)],_0x566740['lat']={},_0x566740['lat']['min']=_0x566740['ymin'],_0x566740['lat']['max']=_0x566740['ymax'],_0x566740[_0x1908d2(0xb0)]={},_0x566740['lev']['min']=(_0x439ac9=_0x566740['levmin'])!==null&&_0x439ac9!==void 0x0?_0x439ac9:0x1,_0x566740[_0x1908d2(0xb0)]['max']=(_0x54f62c=_0x566740['levmax'])!==null&&_0x54f62c!==void 0x0?_0x54f62c:0x1,_0x566740['U']={},_0x566740['U'][_0x1908d2(0xf7)]=new Float32Array(_0x566740['udata']),_0x566740['U']['min']=(_0x2c4c65=_0x566740[_0x1908d2(0xb5)])!==null&&_0x2c4c65!==void 0x0?_0x2c4c65:Math[_0x1908d2(0x155)][_0x1908d2(0x120)](Math,_toConsumableArray(_0x566740['udata'])),_0x566740['U'][_0x1908d2(0x115)]=(_0x104e80=_0x566740['umax'])!==null&&_0x104e80!==void 0x0?_0x104e80:Math[_0x1908d2(0x115)]['apply'](Math,_toConsumableArray(_0x566740['udata'])),_0x566740['V']={},_0x566740['V'][_0x1908d2(0xf7)]=new Float32Array(_0x566740[_0x1908d2(0xe3)]),_0x566740['V']['min']=(_0x5b2350=_0x566740['vmin'])!==null&&_0x5b2350!==void 0x0?_0x5b2350:Math['min'][_0x1908d2(0x120)](Math,_toConsumableArray(_0x566740['vdata'])),_0x566740['V']['max']=(_0x412eb2=_0x566740[_0x1908d2(0x92)])!==null&&_0x412eb2!==void 0x0?_0x412eb2:Math['max'][_0x1908d2(0x120)](Math,_toConsumableArray(_0x566740[_0x1908d2(0xe3)]));}this['data']=_0x566740,this['options']=_0x4b1289,this['viewerParameters']=_0xf44169,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this[_0x1908d2(0xad)],this['options'],this['viewerParameters'],this[_0x1908d2(0xec)]);}return _createClass(_0x504563,[{'key':'canvasResize','value':function _0x2ac0e9(_0x3a1c0a){var _0xb1db5e=_0x4750,_0xc6eef1=this;this[_0xb1db5e(0xec)][_0xb1db5e(0xb4)](),Object['keys'](this[_0xb1db5e(0xec)]['windTextures'])['forEach'](function(_0x281445){var _0x11c1c6=_0xb1db5e;_0xc6eef1['particlesComputing']['windTextures'][_0x281445][_0x11c1c6(0xa7)]();}),this[_0xb1db5e(0x95)]['textures']['colorTable']['destroy'](),Object['keys'](this[_0xb1db5e(0x95)]['framebuffers'])['forEach'](function(_0x1cc86e){_0xc6eef1['particlesRendering']['framebuffers'][_0x1cc86e]['destroy']();}),this['context']=_0x3a1c0a,this['particlesComputing']=new ParticlesComputing(this['context'],this[_0xb1db5e(0xad)],this['options'],this['viewerParameters']),this[_0xb1db5e(0x95)]=new ParticlesRendering(this[_0xb1db5e(0xa6)],this['data'],this['options'],this[_0xb1db5e(0x140)],this[_0xb1db5e(0xec)]);}},{'key':_0x28e4f0(0xf2),'value':function _0x550e38(){var _0x551a4b=this,_0x5d1765=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass']['OPAQUE']});Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](function(_0x5629e8){var _0x43912f=_0x4750;_0x5d1765[_0x43912f(0x9d)]=_0x551a4b['particlesRendering'][_0x43912f(0x124)][_0x5629e8],_0x5d1765['execute'](_0x551a4b['context']);});}},{'key':_0x28e4f0(0xd3),'value':function _0xbcda93(_0x1f44ce){var _0x25520c=_0x28e4f0;this['clearFramebuffers'](),this['particlesComputing'][_0x25520c(0xb4)](),this[_0x25520c(0xec)]['createParticlesTextures'](this['context'],this['options'],this['viewerParameters']);if(_0x1f44ce){var _0x3c016f=this[_0x25520c(0x95)][_0x25520c(0xe5)](this['options']);this[_0x25520c(0x95)]['primitives']['segments']['geometry']=_0x3c016f;var _0x555b48=Cesium$2['VertexArray'][_0x25520c(0x159)]({'context':this[_0x25520c(0xa6)],'geometry':_0x3c016f,'attributeLocations':this[_0x25520c(0x95)][_0x25520c(0xa1)]['segments']['attributeLocations'],'bufferUsage':Cesium$2['BufferUsage'][_0x25520c(0xf3)]});this['particlesRendering'][_0x25520c(0xa1)]['segments']['commandToExecute']['vertexArray']=_0x555b48;}}},{'key':'setOptions','value':function _0x320243(_0x5cb988){var _0x464386=_0x28e4f0,_0x1b72f4=this,_0x18922b=![];this['options'][_0x464386(0x176)]!==_0x5cb988['maxParticles']&&(_0x18922b=!![]),Object['keys'](_0x5cb988)['forEach'](function(_0x56dd54){_0x1b72f4['options'][_0x56dd54]=_0x5cb988[_0x56dd54];}),this[_0x464386(0xd3)](_0x18922b);}},{'key':'applyViewerParameters','value':function _0x2a46b3(_0x15b721){var _0x5bfd04=_0x28e4f0,_0x544c78=this;Object['keys'](_0x15b721)[_0x5bfd04(0xdd)](function(_0x567526){var _0x5d4cdb=_0x5bfd04;_0x544c78[_0x5d4cdb(0x140)][_0x567526]=_0x15b721[_0x567526];}),this['refreshParticles'](![]);}},{'key':'destroy','value':function _0x516e5a(){var _0x58a0ac=_0x28e4f0,_0x44ff07=this;clearTimeout(this['canrefresh']),this['particlesComputing'][_0x58a0ac(0xb4)](),Object[_0x58a0ac(0xee)](this['particlesComputing']['windTextures'])[_0x58a0ac(0xdd)](function(_0x582830){var _0x2bace4=_0x58a0ac;_0x44ff07['particlesComputing'][_0x2bace4(0xdf)][_0x582830][_0x2bace4(0xa7)]();}),this['particlesRendering']['textures'][_0x58a0ac(0xdc)]['destroy'](),Object[_0x58a0ac(0xee)](this['particlesRendering']['framebuffers'])['forEach'](function(_0x4d8b1a){var _0x120258=_0x58a0ac;_0x44ff07[_0x120258(0x95)]['framebuffers'][_0x4d8b1a][_0x120258(0xa7)]();});for(var _0x254ec8 in this){delete this[_0x254ec8];}}}]),_0x504563;}()),Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0x25db9a(0xa8)]['BaseLayer'],DEF_OPTIONS={'particlesNumber':0x1000,'fixedHeight':0x0,'fadeOpacity':0.996,'dropRate':0.003,'dropRateBump':0.01,'speedFactor':0.5,'lineWidth':0x2,'colors':['rgb(206,255,255)']},WindLayer=function(_0x148948){var _0x4626f0=_0x25db9a;_inherits(_0x13d157,_0x148948);var _0x44624e=_createSuper(_0x13d157);function _0x13d157(){var _0x599b21,_0x1692f1=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x13d157),_0x1692f1=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x1692f1),_0x599b21=_0x44624e['call'](this,_0x1692f1),_0x599b21['_setOptionsHook'](_0x1692f1),_0x599b21;}return _createClass(_0x13d157,[{'key':'layer','get':function _0x46995d(){return this['primitives'];}},{'key':'data','get':function _0x4000e4(){return this['_data'];},'set':function _0x2f6785(_0x47fb82){this['setData'](_0x47fb82);}},{'key':'colors','get':function _0x3f82ac(){return this['options']['colors'];},'set':function _0x4f9f61(_0x389248){var _0x3d9a1d=_0x4750;this['options']['colors']=_0x389248,this[_0x3d9a1d(0xa3)]&&this['particleSystem']['setOptions']({'colors':_0x389248}),this[_0x3d9a1d(0xae)]();}},{'key':'_mountedHook','value':function _0x24f8b6(){}},{'key':_0x4626f0(0x15c),'value':function _0x1c5d7e(){var _0x222b13=_0x4626f0;this['scene']=this[_0x222b13(0xc0)]['scene'],this['camera']=this['_map'][_0x222b13(0x141)],this['primitives']=new Cesium$1['PrimitiveCollection'](),this[_0x222b13(0xc0)][_0x222b13(0x157)]['primitives']['add'](this['primitives']),this['viewerParameters']={'lonRange':new Cesium$1[(_0x222b13(0x10d))](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0},this['globeBoundingSphere']=new Cesium$1[(_0x222b13(0x136))](Cesium$1[_0x222b13(0xfa)]['ZERO'],0.99*0x615299),this[_0x222b13(0x14e)](),window['addEventListener'](_0x222b13(0xae),this['resize'][_0x222b13(0x144)](this),![]),this[_0x222b13(0x154)]=![],this[_0x222b13(0xa9)]=![],this[_0x222b13(0xc0)]['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x222b13(0xc0)]['on'](mars3d__namespace['EventType'][_0x222b13(0xbc)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x222b13(0x14b)],this[_0x222b13(0x156)],this),this['_map']['on'](mars3d__namespace[_0x222b13(0x171)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x222b13(0xbb)]&&this['setData'](this[_0x222b13(0xbb)]);}},{'key':'_removedHook','value':function _0x1bdb47(){var _0x27404b=_0x4626f0;window['removeEventListener']('resize',this['resize']),this[_0x27404b(0xc0)]['off'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this),this['_map'][_0x27404b(0xfd)](mars3d__namespace['EventType']['wheel'],this[_0x27404b(0xd8)],this),this[_0x27404b(0xc0)][_0x27404b(0xfd)](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x27404b(0xc0)][_0x27404b(0xfd)](mars3d__namespace['EventType']['mouseUp'],this[_0x27404b(0x156)],this),this[_0x27404b(0xc0)][_0x27404b(0xfd)](mars3d__namespace[_0x27404b(0x171)][_0x27404b(0x9e)],this['_onMouseMoveEvent'],this),this['primitives']['removeAll'](),this['_map']['scene']['primitives'][_0x27404b(0x118)](this[_0x27404b(0xa1)]);}},{'key':'resize','value':function _0x417dc6(){var _0x22fb53=_0x4626f0;if(!this[_0x22fb53(0x109)]||!this['particleSystem'])return;this['primitives'][_0x22fb53(0x109)]=![],this[_0x22fb53(0xa1)][_0x22fb53(0x12d)](),this[_0x22fb53(0xc0)]['once'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this);}},{'key':_0x4626f0(0x8a),'value':function _0xc8e0fd(_0x58bb2d){var _0x31ea03=_0x4626f0;this['particleSystem']['canvasResize'](this['scene']['context']),this['addPrimitives'](),this[_0x31ea03(0xa1)]['show']=!![];}},{'key':'_onMapWhellEvent','value':function _0x1ade04(_0x3932c9){var _0x46838d=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['particleSystem'])return;this['primitives']['show']=![],this['refreshTimer']=setTimeout(function(){var _0x184a05=_0x4750;if(!_0x46838d['show'])return;_0x46838d[_0x184a05(0xd7)]();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x140502(_0x49dba0){this['mouse_down']=!![];}},{'key':'_onMouseMoveEvent','value':function _0x4ff18c(_0x4066e8){var _0x35029b=_0x4626f0;if(!this['show']||!this[_0x35029b(0xa3)])return;this['mouse_down']&&(this['primitives'][_0x35029b(0x109)]=![],this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x2782fe(_0x2b7830){var _0xa66d6a=_0x4626f0;if(!this[_0xa66d6a(0x109)]||!this['particleSystem'])return;this['mouse_down']&&this[_0xa66d6a(0xa9)]&&this['redraw'](),this[_0xa66d6a(0xa1)][_0xa66d6a(0x109)]=!![],this['mouse_down']=![],this['mouse_move']=![];}},{'key':_0x4626f0(0xd7),'value':function _0xa8e2a5(){var _0x2c91d3=_0x4626f0;if(!this[_0x2c91d3(0xc0)]||!this['show'])return;this[_0x2c91d3(0x14e)](),this['particleSystem']['applyViewerParameters'](this['viewerParameters']),this[_0x2c91d3(0xa1)]['show']=!![];}},{'key':'setData','value':function _0x30b851(_0xd3f8f4){var _0x18472c=_0x4626f0;this['_data']=_0xd3f8f4,this['particleSystem']&&this[_0x18472c(0xa3)][_0x18472c(0xa7)](),this['particleSystem']=new ParticleSystem(this[_0x18472c(0x157)]['context'],_0xd3f8f4,this['getOptions'](),this['viewerParameters']),this[_0x18472c(0x153)]();}},{'key':'_setOptionsHook','value':function _0x4d48a7(_0x4fd359,_0x23c56b){if(_0x4fd359)for(var _0x44d671 in _0x4fd359){this[_0x44d671]=_0x4fd359[_0x44d671];}this['particleSystem']&&this['particleSystem']['setOptions'](this['getOptions']());}},{'key':_0x4626f0(0xba),'value':function _0x14f538(){var _0x1f234f=_0x4626f0,_0x169fc9=Math['ceil'](Math['sqrt'](this['particlesNumber']));return this['particlesNumber']=_0x169fc9*_0x169fc9,{'particlesTextureSize':_0x169fc9,'maxParticles':this[_0x1f234f(0x119)],'particleHeight':this[_0x1f234f(0x129)],'fadeOpacity':this['fadeOpacity'],'dropRate':this['dropRate'],'dropRateBump':this[_0x1f234f(0x116)],'speedFactor':this['speedFactor'],'lineWidth':this[_0x1f234f(0xb8)],'colors':this[_0x1f234f(0xe9)]};}},{'key':'addPrimitives','value':function _0x90e3cf(){var _0x95d7ca=_0x4626f0;this['primitives']['add'](this['particleSystem']['particlesComputing'][_0x95d7ca(0xa1)]['getWind']),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives'][_0x95d7ca(0x8b)]),this['primitives']['add'](this[_0x95d7ca(0xa3)]['particlesComputing'][_0x95d7ca(0xa1)][_0x95d7ca(0x10c)]),this['primitives']['add'](this['particleSystem']['particlesComputing'][_0x95d7ca(0xa1)]['postProcessingPosition']),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives']['postProcessingSpeed']),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives'][_0x95d7ca(0xcd)]),this[_0x95d7ca(0xa1)][_0x95d7ca(0xff)](this[_0x95d7ca(0xa3)][_0x95d7ca(0x95)]['primitives']['trails']),this[_0x95d7ca(0xa1)]['add'](this[_0x95d7ca(0xa3)]['particlesRendering']['primitives']['screen']);}},{'key':'updateViewerParameters','value':function _0x196c7e(){var _0x481587=_0x4626f0,_0x49e797=this[_0x481587(0x141)]['computeViewRectangle'](this['scene']['globe'][_0x481587(0x105)]);if(!_0x49e797){var _0x4f1e71=this['_map']['getExtent']();_0x49e797=Cesium$1['Rectangle']['fromDegrees'](_0x4f1e71[_0x481587(0xd6)],_0x4f1e71['ymin'],_0x4f1e71[_0x481587(0x132)],_0x4f1e71[_0x481587(0x16c)]);}var _0x2ed134=Util['viewRectangleToLonLatRange'](_0x49e797);this['viewerParameters']['lonRange']['x']=_0x2ed134['lon']['min'],this['viewerParameters']['lonRange']['y']=_0x2ed134['lon'][_0x481587(0x115)],this['viewerParameters'][_0x481587(0xab)]['x']=_0x2ed134['lat']['min'],this[_0x481587(0x140)]['latRange']['y']=_0x2ed134['lat']['max'];var _0x587440=this['camera'][_0x481587(0xb9)](this['globeBoundingSphere'],this[_0x481587(0x157)]['drawingBufferWidth'],this[_0x481587(0x157)]['drawingBufferHeight']);_0x587440>0x0&&(this[_0x481587(0x140)][_0x481587(0x10e)]=_0x587440);}}]),_0x13d157;}(BaseLayer$1);mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){var _0x27b04c=_0x25db9a;function _0x2caa13(){_classCallCheck(this,_0x2caa13),this['lng']=null,this['lat']=null,this['tlng']=null,this['tlat']=null,this['age']=null;}return _createClass(_0x2caa13,[{'key':_0x27b04c(0xa7),'value':function _0x505113(){for(var _0x41ccd8 in this){delete this[_0x41ccd8];}}}]),_0x2caa13;}()),CanvasWindField=(function(){var _0x403f5f=_0x25db9a;function _0x29b510(_0x4e585c){_classCallCheck(this,_0x29b510),this['setOptions'](_0x4e585c);}return _createClass(_0x29b510,[{'key':_0x403f5f(0x10b),'get':function _0x4a9b9a(){var _0x1afd2c=_0x403f5f;return this[_0x1afd2c(0xf8)];},'set':function _0x234c01(_0x174de6){var _0x2cb8e1=_0x403f5f;this['_speedRate']=(0x64-(_0x174de6>0x63?0x63:_0x174de6))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this[_0x2cb8e1(0xf8)],(this['ymax']-this['ymin'])/this[_0x2cb8e1(0xf8)]];}},{'key':'maxAge','get':function _0x36f326(){var _0x31fecc=_0x403f5f;return this[_0x31fecc(0x112)];},'set':function _0x51fbbb(_0x3ead31){var _0x7bf83d=_0x403f5f;this[_0x7bf83d(0x112)]=_0x3ead31;}},{'key':_0x403f5f(0x13a),'value':function _0x12f63f(_0x2c7e6f){var _0x299889=_0x403f5f;this['options']=_0x2c7e6f,this[_0x299889(0x142)]=_0x2c7e6f['maxAge']||0x78,this['speedRate']=_0x2c7e6f[_0x299889(0x10b)]||0x32,this[_0x299889(0xd2)]=[];var _0x2d1186=_0x2c7e6f['particlesNumber']||0x1000;for(var _0x51f415=0x0;_0x51f415<_0x2d1186;_0x51f415++){var _0x2aaae4=this['_randomParticle'](new CanvasParticle());this['particles'][_0x299889(0x8c)](_0x2aaae4);}}},{'key':'setDate','value':function _0x199731(_0xe9ca59){var _0x3aff10=_0x403f5f;this['rows']=_0xe9ca59[_0x3aff10(0xef)],this[_0x3aff10(0xc8)]=_0xe9ca59['cols'],this[_0x3aff10(0xd6)]=_0xe9ca59['xmin'],this['xmax']=_0xe9ca59[_0x3aff10(0x132)],this['ymin']=_0xe9ca59[_0x3aff10(0xb7)],this['ymax']=_0xe9ca59['ymax'],this['grid']=[];var _0x381e4d=_0xe9ca59['udata'],_0x397073=_0xe9ca59['vdata'],_0x18a044=![];_0x381e4d[_0x3aff10(0x93)]===this[_0x3aff10(0xef)]&&_0x381e4d[0x0]['length']===this[_0x3aff10(0xc8)]&&(_0x18a044=!![]);var _0x4f82c9=0x0,_0x1895be=null,_0x5a7625=null;for(var _0x3355ba=0x0;_0x3355ba<this['rows'];_0x3355ba++){_0x1895be=[];for(var _0x49778e=0x0;_0x49778e<this[_0x3aff10(0xc8)];_0x49778e++,_0x4f82c9++){_0x18a044?_0x5a7625=this['_calcUV'](_0x381e4d[_0x3355ba][_0x49778e],_0x397073[_0x3355ba][_0x49778e]):_0x5a7625=this['_calcUV'](_0x381e4d[_0x4f82c9],_0x397073[_0x4f82c9]),_0x1895be['push'](_0x5a7625);}this['grid']['push'](_0x1895be);}this['options'][_0x3aff10(0x149)]&&this[_0x3aff10(0x13e)]['reverse']();}},{'key':_0x403f5f(0x98),'value':function _0x16bf41(){var _0x5d7e4e=_0x403f5f;delete this['rows'],delete this[_0x5d7e4e(0xc8)],delete this['xmin'],delete this[_0x5d7e4e(0x132)],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this['particles'];}},{'key':'toGridXY','value':function _0x587544(_0x27835a,_0x3cfcae){var _0x40a192=_0x403f5f,_0x3956ee=(_0x27835a-this['xmin'])/(this['xmax']-this['xmin'])*(this['cols']-0x1),_0x8b62d1=(this['ymax']-_0x3cfcae)/(this[_0x40a192(0x16c)]-this['ymin'])*(this['rows']-0x1);return[_0x3956ee,_0x8b62d1];}},{'key':'getUVByXY','value':function _0x2a1ad6(_0x554d0c,_0x4cb9d7){var _0x18698a=_0x403f5f;if(_0x554d0c<0x0||_0x554d0c>=this['cols']||_0x4cb9d7>=this[_0x18698a(0xef)])return[0x0,0x0,0x0];var _0x4cd8b4=Math['floor'](_0x554d0c),_0x3a03dd=Math[_0x18698a(0xe1)](_0x4cb9d7);if(_0x4cd8b4===_0x554d0c&&_0x3a03dd===_0x4cb9d7)return this['grid'][_0x4cb9d7][_0x554d0c];var _0x4a41c4=_0x4cd8b4+0x1,_0x5657fb=_0x3a03dd+0x1,_0x521191=this['getUVByXY'](_0x4cd8b4,_0x3a03dd),_0x404b86=this['getUVByXY'](_0x4a41c4,_0x3a03dd),_0x7b62cb=this['getUVByXY'](_0x4cd8b4,_0x5657fb),_0x5346de=this['getUVByXY'](_0x4a41c4,_0x5657fb),_0xc5c840=null;try{_0xc5c840=this['_bilinearInterpolation'](_0x554d0c-_0x4cd8b4,_0x4cb9d7-_0x3a03dd,_0x521191,_0x404b86,_0x7b62cb,_0x5346de);}catch(_0x196b2a){console[_0x18698a(0x14c)](_0x554d0c,_0x4cb9d7);}return _0xc5c840;}},{'key':'_bilinearInterpolation','value':function _0x1fe2d7(_0x29ad91,_0x421302,_0xea7e38,_0x584409,_0x1fa4f2,_0x38a2c1){var _0x3abbdd=_0x403f5f,_0x2a9a59=0x1-_0x29ad91,_0x1b7cb9=0x1-_0x421302,_0x2cdfc4=_0x2a9a59*_0x1b7cb9,_0x13e616=_0x29ad91*_0x1b7cb9,_0x45c7f4=_0x2a9a59*_0x421302,_0x1f4637=_0x29ad91*_0x421302,_0x455f20=_0xea7e38[0x0]*_0x2cdfc4+_0x584409[0x0]*_0x13e616+_0x1fa4f2[0x0]*_0x45c7f4+_0x38a2c1[0x0]*_0x1f4637,_0x4605dd=_0xea7e38[0x1]*_0x2cdfc4+_0x584409[0x1]*_0x13e616+_0x1fa4f2[0x1]*_0x45c7f4+_0x38a2c1[0x1]*_0x1f4637;return this[_0x3abbdd(0x151)](_0x455f20,_0x4605dd);}},{'key':_0x403f5f(0x151),'value':function _0x135987(_0x2f6bc6,_0x2ef633){return[+_0x2f6bc6,+_0x2ef633,Math['sqrt'](_0x2f6bc6*_0x2f6bc6+_0x2ef633*_0x2ef633)];}},{'key':_0x403f5f(0x15a),'value':function _0xbbf9d3(_0x5aa3f6,_0xd63b85){var _0x1fa0e3=_0x403f5f;if(!this['isInExtent'](_0x5aa3f6,_0xd63b85))return null;var _0x55da10=this['toGridXY'](_0x5aa3f6,_0xd63b85),_0x256753=this[_0x1fa0e3(0xa0)](_0x55da10[0x0],_0x55da10[0x1]);return _0x256753;}},{'key':_0x403f5f(0x11a),'value':function _0x2821ee(_0x27bb11,_0x2b0a43){var _0x5eace5=_0x403f5f;return _0x27bb11>=this[_0x5eace5(0xd6)]&&_0x27bb11<=this[_0x5eace5(0x132)]&&_0x2b0a43>=this['ymin']&&_0x2b0a43<=this['ymax']?!![]:![];}},{'key':_0x403f5f(0x9b),'value':function _0x3ac821(){var _0x5d0791=fRandomByfloat(this['xmin'],this['xmax']),_0x2df607=fRandomByfloat(this['ymin'],this['ymax']);return{'lat':_0x2df607,'lng':_0x5d0791};}},{'key':'getParticles','value':function _0x1fe5f1(){var _0x53fd62=_0x403f5f,_0x9a7906,_0x148d48,_0x2c65b8;for(var _0x493a40=0x0,_0x38483a=this[_0x53fd62(0xd2)]['length'];_0x493a40<_0x38483a;_0x493a40++){var _0x138f96=this['particles'][_0x493a40];_0x138f96[_0x53fd62(0x99)]<=0x0&&(_0x138f96=this['_randomParticle'](_0x138f96));if(_0x138f96['age']>0x0){var _0x46152b=_0x138f96['tlng'],_0x4867f1=_0x138f96['tlat'];_0x2c65b8=this['getUVByPoint'](_0x46152b,_0x4867f1),_0x2c65b8?(_0x9a7906=_0x46152b+this['_calc_speedRate'][0x0]*_0x2c65b8[0x0],_0x148d48=_0x4867f1+this['_calc_speedRate'][0x1]*_0x2c65b8[0x1],_0x138f96['lng']=_0x46152b,_0x138f96['lat']=_0x4867f1,_0x138f96[_0x53fd62(0x12c)]=_0x9a7906,_0x138f96[_0x53fd62(0x8d)]=_0x148d48,_0x138f96[_0x53fd62(0x99)]--):_0x138f96['age']=0x0;}}return this['particles'];}},{'key':'_randomParticle','value':function _0x27228c(_0x1e4f48){var _0x6f6be3=_0x403f5f,_0x300c7e,_0x121248;for(var _0x497d3b=0x0;_0x497d3b<0x1e;_0x497d3b++){_0x300c7e=this['getRandomLatLng'](),_0x121248=this[_0x6f6be3(0x15a)](_0x300c7e['lng'],_0x300c7e['lat']);if(_0x121248&&_0x121248[0x2]>0x0)break;}if(!_0x121248)return _0x1e4f48;var _0x265deb=_0x300c7e['lng']+this['_calc_speedRate'][0x0]*_0x121248[0x0],_0x386a28=_0x300c7e['lat']+this['_calc_speedRate'][0x1]*_0x121248[0x1];return _0x1e4f48['lng']=_0x300c7e['lng'],_0x1e4f48['lat']=_0x300c7e['lat'],_0x1e4f48['tlng']=_0x265deb,_0x1e4f48['tlat']=_0x386a28,_0x1e4f48['age']=Math[_0x6f6be3(0xc4)](Math[_0x6f6be3(0x130)]()*this['maxAge']),_0x1e4f48;}},{'key':'destroy','value':function _0x85a661(){for(var _0x4f02e9 in this){delete this[_0x4f02e9];}}}]),_0x29b510;}());function fRandomByfloat(_0xdf040e,_0x1ec8d7){return _0xdf040e+Math['random']()*(_0x1ec8d7-_0xdf040e);}var Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'],CanvasWindLayer=function(_0x4333cc){var _0x599a20=_0x25db9a;_inherits(_0x5a66db,_0x4333cc);var _0x57f55e=_createSuper(_0x5a66db);function _0x5a66db(){var _0x1818d2=_0x4750,_0x1838b4,_0xa48b9b=arguments[_0x1818d2(0x93)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x5a66db),_0x1838b4=_0x57f55e['call'](this,_0xa48b9b),_0x1838b4['_setOptionsHook'](_0xa48b9b),_0x1838b4['canvas']=null,_0x1838b4;}return _createClass(_0x5a66db,[{'key':_0x599a20(0x11e),'value':function _0x502843(_0x24fb56,_0x20f982){var _0x5b5a4e=_0x599a20,_0x36559f,_0x28c2a3,_0x41b59e;this['frameTime']=0x3e8/(_0x24fb56['frameRate']||0xa),this['_pointerEvents']=(_0x36559f=this['options']['pointerEvents'])!==null&&_0x36559f!==void 0x0?_0x36559f:![],this[_0x5b5a4e(0xda)]=_0x24fb56[_0x5b5a4e(0xda)]||'#ffffff',this['lineWidth']=_0x24fb56[_0x5b5a4e(0xb8)]||0x1,this['fixedHeight']=(_0x28c2a3=_0x24fb56['fixedHeight'])!==null&&_0x28c2a3!==void 0x0?_0x28c2a3:0x0,this['reverseY']=(_0x41b59e=_0x24fb56['reverseY'])!==null&&_0x41b59e!==void 0x0?_0x41b59e:![],this['windField']&&this[_0x5b5a4e(0xd4)][_0x5b5a4e(0x13a)](_0x24fb56);}},{'key':'layer','get':function _0x344657(){return this['canvas'];}},{'key':_0x599a20(0x166),'get':function _0x139fee(){var _0x21bb02=_0x599a20;return this['_map'][_0x21bb02(0x157)][_0x21bb02(0xe2)]['clientWidth'];}},{'key':'canvasHeight','get':function _0x283696(){var _0x1f7058=_0x599a20;return this['_map'][_0x1f7058(0x157)]['canvas'][_0x1f7058(0x110)];}},{'key':_0x599a20(0xed),'get':function _0x2b2a8b(){return this['_pointerEvents'];},'set':function _0x4b13ce(_0x356d6f){var _0x3f0125=_0x599a20;this[_0x3f0125(0x162)]=_0x356d6f;if(!this[_0x3f0125(0xe2)])return;_0x356d6f?this[_0x3f0125(0xe2)]['style']['pointer-events']='all':this['canvas'][_0x3f0125(0xca)]['pointer-events']='none';}},{'key':'particlesNumber','get':function _0x4bf606(){return this['options']['particlesNumber'];},'set':function _0x368f1e(_0x322898){var _0x12eee8=this;this['options']['particlesNumber']=_0x322898,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(function(){_0x12eee8['redraw']();},0x1f4);}},{'key':'speedRate','get':function _0x454ad8(){var _0x27ea6c=_0x599a20;return this[_0x27ea6c(0x97)]['speedRate'];},'set':function _0x2fe8b0(_0x4dca58){var _0x31d60b=_0x599a20;this[_0x31d60b(0x97)]['speedRate']=_0x4dca58,this['windField']&&(this['windField']['speedRate']=_0x4dca58);}},{'key':'maxAge','get':function _0x36a0b4(){return this['options']['maxAge'];},'set':function _0x30c50c(_0xea7c67){var _0x17d0a7=_0x599a20;this['options']['maxAge']=_0xea7c67,this['windField']&&(this[_0x17d0a7(0xd4)]['maxAge']=_0xea7c67);}},{'key':'data','get':function _0x3bc44b(){return this['windData'];},'set':function _0x3b3fbc(_0x120dad){this['setData'](_0x120dad);}},{'key':'_showHook','value':function _0x470436(_0x4bcd43){var _0x51f2ad=_0x599a20;_0x4bcd43?this['_addedHook']():(this[_0x51f2ad(0x172)]&&(this['options']['data']=this[_0x51f2ad(0x172)]),this['_removedHook']());}},{'key':'_mountedHook','value':function _0x485d9(){var _0x4eca50=_0x599a20;this[_0x4eca50(0x97)]['worker']?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}},{'key':'_addedHook','value':function _0x1f50b1(){var _0x184825=_0x599a20;this['canvas']=this[_0x184825(0x135)](),this['canvasContext']=this[_0x184825(0xe2)]['getContext']('2d',{'willReadFrequently':!![]}),this['bindEvent'](),this['options'][_0x184825(0xad)]&&this['setData'](this['options']['data']);}},{'key':'_removedHook','value':function _0x10020f(){var _0x35b4bb=_0x599a20;this[_0x35b4bb(0x98)](),this['unbindEvent'](),this[_0x35b4bb(0xe2)]&&(this['_map']['container']['removeChild'](this['canvas']),delete this['canvas']);}},{'key':'_createCanvas','value':function _0x316f11(){var _0x31eb63=_0x599a20,_0x3c3af5=document['createElement'](_0x31eb63(0xe2));_0x3c3af5['style']['position']='absolute',_0x3c3af5['style']['top']='0px',_0x3c3af5[_0x31eb63(0xca)]['left']=_0x31eb63(0x14a),_0x3c3af5['style']['width']='100%',_0x3c3af5['style']['height']=_0x31eb63(0xaf),_0x3c3af5['style'][_0x31eb63(0xed)]=this['_pointerEvents']?'auto':'none',_0x3c3af5['style']['zIndex']=0xa,_0x3c3af5[_0x31eb63(0x13c)]('id','canvasWindy'),_0x3c3af5['setAttribute']('class','canvasWindy'),this[_0x31eb63(0xc0)]['container'][_0x31eb63(0x138)](_0x3c3af5);var _0x4a01e8=this[_0x31eb63(0xc0)]['scene'];return _0x3c3af5['width']=_0x4a01e8['canvas']['clientWidth'],_0x3c3af5['height']=_0x4a01e8['canvas'][_0x31eb63(0x110)],_0x3c3af5;}},{'key':'resize','value':function _0x1b0da2(){var _0x4f1b43=_0x599a20;this['canvas']&&(this['canvas']['width']=this['canvasWidth'],this[_0x4f1b43(0xe2)]['height']=this[_0x4f1b43(0xdb)]);}},{'key':_0x599a20(0x121),'value':function _0x499550(){var _0x52fa12=_0x599a20,_0x2f2ed3=this,_0x5328e0=Date['now']();(function _0x90bf4a(){_0x2f2ed3['animateFrame']=window['requestAnimationFrame'](_0x90bf4a);if(_0x2f2ed3['show']&&_0x2f2ed3['windField']){var _0x160281=Date['now'](),_0x27181e=_0x160281-_0x5328e0;_0x27181e>_0x2f2ed3['frameTime']&&(_0x5328e0=_0x160281-_0x27181e%_0x2f2ed3['frameTime'],_0x2f2ed3['update']());}}(),window['addEventListener'](_0x52fa12(0xae),this['resize'][_0x52fa12(0x144)](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this[_0x52fa12(0xc0)]['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x52fa12(0x171)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this)));}},{'key':'unbindEvent','value':function _0x87df3e(){var _0x46526d=_0x599a20;window['cancelAnimationFrame'](this['animateFrame']),delete this[_0x46526d(0x139)],window['removeEventListener']('resize',this['resize']),this[_0x46526d(0x97)]['mouseHidden']&&(this[_0x46526d(0xc0)]['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x46526d(0xc0)]['off'](mars3d__namespace[_0x46526d(0x171)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x46526d(0xfd)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x46526d(0x9e)],this[_0x46526d(0x117)],this));}},{'key':_0x599a20(0xd8),'value':function _0x182ba1(_0x1211c2){var _0x3f2533=_0x599a20,_0x323c1c=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x3f2533(0xe2)])return;this['canvas']['style']['visibility']='hidden',this['refreshTimer']=setTimeout(function(){var _0xc60897=_0x3f2533;if(!_0x323c1c['show'])return;_0x323c1c['redraw'](),_0x323c1c['canvas'][_0xc60897(0xca)]['visibility']='visible';},0xc8);}},{'key':_0x599a20(0x15f),'value':function _0xede8f9(_0x47954a){var _0xb48169=_0x599a20;this[_0xb48169(0x154)]=!![],this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['_map']['on'](mars3d__namespace[_0xb48169(0x171)][_0xb48169(0x9e)],this['_onMouseMoveEvent'],this);}},{'key':_0x599a20(0x117),'value':function _0x5a66c6(_0x1a50d4){var _0x2c42fb=_0x599a20;if(!this['show']||!this[_0x2c42fb(0xe2)])return;this['mouse_down']&&(this[_0x2c42fb(0xe2)]['style'][_0x2c42fb(0x100)]=_0x2c42fb(0x13d),this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x588180(_0x1afa36){var _0x317097=_0x599a20;if(!this['show']||!this['canvas'])return;this['_map'][_0x317097(0xfd)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['canvas']['style']['visibility']=_0x317097(0xb2),this[_0x317097(0x154)]=![],this[_0x317097(0xa9)]=![];}},{'key':'setData','value':function _0x1d3f70(_0x5f1c1c){var _0xa37f49=_0x599a20;this['clear'](),this['windData']=_0x5f1c1c,this['windField']['setDate'](_0x5f1c1c),this[_0xa37f49(0xd7)]();}},{'key':'redraw','value':function _0x282e6c(){if(!this['show'])return;this['windField']['setOptions'](this['options']),this['update']();}},{'key':'update','value':function _0x46e7dc(){var _0x5c6202=_0x599a20;if(this['_updateIng'])return;this['_updateIng']=!![];if(this['worker'])this[_0x5c6202(0xd4)][_0x5c6202(0x15d)]();else{var _0x285261=this['windField'][_0x5c6202(0x107)]();this['_drawLines'](_0x285261);}this['_updateIng']=![];}},{'key':_0x599a20(0x163),'value':function _0x1cc232(_0x582713){var _0x44cd95=_0x599a20;this[_0x44cd95(0x148)][_0x44cd95(0x96)]='destination-in',this['canvasContext'][_0x44cd95(0xfc)](0x0,0x0,this['canvasWidth'],this[_0x44cd95(0xdb)]),this[_0x44cd95(0x148)]['globalCompositeOperation']='lighter',this['canvasContext']['globalAlpha']=0.9,this['canvasContext'][_0x44cd95(0x16d)](),this['canvasContext'][_0x44cd95(0xb8)]=this['lineWidth'],this['canvasContext'][_0x44cd95(0x85)]=this[_0x44cd95(0xda)];var _0x7a9f40=this[_0x44cd95(0xc0)]['scene']['mode']!==Cesium['SceneMode']['SCENE3D'];for(var _0x5a6c8=0x0,_0x34fbef=_0x582713['length'];_0x5a6c8<_0x34fbef;_0x5a6c8++){var _0x25c1e2=_0x582713[_0x5a6c8],_0x42c26a=this['_tomap'](_0x25c1e2['lng'],_0x25c1e2['lat'],_0x25c1e2),_0x3aa87e=this['_tomap'](_0x25c1e2['tlng'],_0x25c1e2['tlat'],_0x25c1e2);if(!_0x42c26a||!_0x3aa87e)continue;if(_0x7a9f40&&Math['abs'](_0x42c26a[0x0]-_0x3aa87e[0x0])>=this[_0x44cd95(0x166)])continue;this[_0x44cd95(0x148)]['moveTo'](_0x42c26a[0x0],_0x42c26a[0x1]),this['canvasContext']['lineTo'](_0x3aa87e[0x0],_0x3aa87e[0x1]);}this[_0x44cd95(0x148)]['stroke']();}},{'key':'_tomap','value':function _0x3f1e47(_0x2102df,_0x4560f9,_0x55694d){var _0x1f7eca=_0x599a20,_0x13ad3=Cesium['Cartesian3']['fromDegrees'](_0x2102df,_0x4560f9,this[_0x1f7eca(0x129)]),_0x39dda0=this[_0x1f7eca(0xc0)]['scene'];if(_0x39dda0['mode']===Cesium['SceneMode']['SCENE3D']){var _0x13b407=new Cesium['EllipsoidalOccluder'](_0x39dda0['globe'][_0x1f7eca(0x105)],_0x39dda0[_0x1f7eca(0x141)][_0x1f7eca(0x12a)]),_0x2b618f=_0x13b407['isPointVisible'](_0x13ad3);if(!_0x2b618f)return _0x55694d['age']=0x0,null;}var _0x1756bc=Cesium['SceneTransforms']['wgs84ToWindowCoordinates'](this['_map']['scene'],_0x13ad3);return _0x1756bc?[_0x1756bc['x'],_0x1756bc['y']]:null;}},{'key':'clear','value':function _0x83d83(){this['windField']['clear'](),delete this['windData'];}},{'key':_0x599a20(0xaa),'value':function _0x59d7ff(){var _0x1ad9ed=_0x599a20,_0x419fcc=this;this[_0x1ad9ed(0x127)]=new Worker(this['options']['worker']),this['worker'][_0x1ad9ed(0xbe)]=function(_0x31f6c8){var _0xb1dbe5=_0x1ad9ed;_0x419fcc['_drawLines'](_0x31f6c8[_0xb1dbe5(0xad)]['particles']),_0x419fcc['_updateIng2']=![];},this[_0x1ad9ed(0xd4)]={'init':function _0xc49fe4(_0x478164){_0x419fcc['worker']['postMessage']({'type':'init','options':_0x478164});},'setOptions':function _0x3190b0(_0x40b2fa){var _0x55b392=_0x1ad9ed;_0x419fcc['worker'][_0x55b392(0x114)]({'type':'setOptions','options':_0x40b2fa});},'setDate':function _0x59fa0c(_0x2a4743){_0x419fcc['worker']['postMessage']({'type':'setDate','data':_0x2a4743});},'update':function _0x339bbc(){var _0x4c4f41=_0x1ad9ed;if(_0x419fcc['_updateIng2'])return;_0x419fcc['_updateIng2']=!![],_0x419fcc[_0x4c4f41(0x127)]['postMessage']({'type':'update'});},'clear':function _0x5b3805(){var _0x19ebcc=_0x1ad9ed;_0x419fcc[_0x19ebcc(0x127)][_0x19ebcc(0x114)]({'type':'clear'});}},this[_0x1ad9ed(0xd4)]['init'](this['options']);}}]),_0x5a66db;}(BaseLayer);mars3d__namespace['LayerUtil'][_0x25db9a(0x11b)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer'][_0x25db9a(0x94)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x25db9a(0xc5)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x25db9a(0x94)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x25db9a(0xc5)]=WindUtil,Object['defineProperty'](exports,'__esModule',{'value':!![]});
14
+ 'use strict';var _0x5a162f=_0x4cc5;(function(_0x1a41e6,_0x35dd1a){var _0x395420=_0x4cc5,_0x3486d4=_0x1a41e6();while(!![]){try{var _0x32fa6b=parseInt(_0x395420(0x120))/0x1+parseInt(_0x395420(0xd5))/0x2+parseInt(_0x395420(0x199))/0x3+parseInt(_0x395420(0x1bb))/0x4+parseInt(_0x395420(0x122))/0x5*(parseInt(_0x395420(0x1a0))/0x6)+parseInt(_0x395420(0x1af))/0x7*(parseInt(_0x395420(0x15c))/0x8)+parseInt(_0x395420(0x1ad))/0x9*(-parseInt(_0x395420(0x162))/0xa);if(_0x32fa6b===_0x35dd1a)break;else _0x3486d4['push'](_0x3486d4['shift']());}catch(_0x51f892){_0x3486d4['push'](_0x3486d4['shift']());}}}(_0x34ba,0x894fc));function _interopNamespace(_0x2bc4a3){if(_0x2bc4a3&&_0x2bc4a3['__esModule'])return _0x2bc4a3;var _0x3352c1=Object['create'](null);return _0x2bc4a3&&Object['keys'](_0x2bc4a3)['forEach'](function(_0x227542){var _0x17f1ac=_0x4cc5;if(_0x227542!=='default'){var _0x443ce9=Object[_0x17f1ac(0x17e)](_0x2bc4a3,_0x227542);Object['defineProperty'](_0x3352c1,_0x227542,_0x443ce9['get']?_0x443ce9:{'enumerable':!![],'get':function(){return _0x2bc4a3[_0x227542];}});}}),_0x3352c1['default']=_0x2bc4a3,_0x3352c1;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x33822b,_0xcc6a5b){var _0x690b13=_0x4cc5,_0x485545=_0x33822b*Math['cos'](Cesium$7['Math'][_0x690b13(0x115)](_0xcc6a5b));return _0x485545;}function getV(_0x38e04b,_0x231ec4){var _0x46bd54=_0x38e04b*Math['sin'](Cesium$7['Math']['toRadians'](_0x231ec4));return _0x46bd54;}function getSpeed(_0x3b842a,_0x205f74){var _0x43e181=Math['sqrt'](Math['pow'](_0x3b842a,0x2)+Math['pow'](_0x205f74,0x2));return _0x43e181;}function _0x34ba(){var _0xb4fb62=['height','lng','string','from','Compute','BufferUsage','getOptions','mouse_down','apply','_calcUV','_data','32CFoUHp','particlesComputing','vdata','_bilinearInterpolation','nextTrailsDepth','outputTexture','170CInCTG','Cartesian2','appendChild','ymin','value','getUVByPoint','getColorTexture','camera','container','UNSIGNED_BYTE','clientHeight','resize','trails','context','LayerUtil','key','Set','createRawRenderState','getExtent','createRenderingFramebuffers','_onMouseDownEvent','maxParticles','fromDegrees','_onMapWhellEvent','PixelFormat','postMessage','IDENTITY','bind','getOwnPropertyDescriptor','init','speedFactor','particlesTextures','cols','show','test','windTextures','Draw','enumerable','xmax','attributeLocations','setDate','applyViewerParameters','_removedHook','fadeOpacity','DEPTH_COMPONENT','RenderState','frameTime','geometry','ShaderProgram','GeometryAttribute','udata','BaseLayer','particleSystem','preExecute','OPAQUE','2585550qgIiKN','_canrefresh','createFramebuffer','fromGeometry','levmax','EllipsoidalOccluder','_onMouseUpEvent','6cmOpfx','WindUtil','bindEvent','destroy','NEAREST','stroke','windField','filter','canvasContext','object','nextParticlesSpeed','createParticlesTextures','segments','1860741yfzhnZ','drawingBufferWidth','1688575yBJguz','xmin','LINEAR','round','reverse','destroyObject','pointer-events','random','tlng','autoClear','drawingBufferHeight','forEach','2950812dQEbjd','Framebuffer','commandToExecute','_onMap_preRenderEvent','PrimitiveType','mouseMove','currentTrailsColor','viewerParameters','depthTest','options','fill','lonRange','EventType','getUVByXY','createCommand','SCENE3D','primitives','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function','toDegrees','mouseDown','canvasWindy','tlat','_pointerEvents','FLOAT','418500qiQKyD','commandType','createTexture','0px','width','_createCanvas','_drawLines','ymax','Cesium','commandList','red','_updateIng','defined','maxAge','floor','framebuffer','removeAll','CanvasWindLayer','setOptions','Cartesian3','style','update','scene','now','off','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\x0avarying\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=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture2D(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20nextSpeed;\x0a}','currentTrails','keys','requestAnimationFrame','_mountedHook','updateViewerParameters','_randomParticle','createSegmentsGeometry','min','uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture2D(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture2D(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}','particlesNumber','Object','wheel','refreshParticles','lev','ellipsoid','mouse_move','dimensions','visibility','setData','postProcessingPosition','PI_OVER_THREE','all','rawRenderState','__proto__','refreshTimer','SceneTransforms','TWO_PI','auto','log','Pass','lon','Math','_speedRate','age','lineWidth','particlesRendering','_tomap','getFullscreenQuad','toRadians','windData','layer','canvasHeight','framebuffers','removeChild','RGBA','uniform\x20sampler2D\x20segmentsColorTexture;\x0d\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0d\x0a\x0d\x0auniform\x20sampler2D\x20currentTrailsColor;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0auniform\x20float\x20fadeOpacity;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture2D(segmentsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(currentTrailsColor,\x20textureCoordinate);\x0d\x0a\x0d\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\x0d\x0a\x0d\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture2D(segmentsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20pointsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20gl_FragDepthEXT\x20=\x20min(pointsDepth,\x20trailsDepth);\x0d\x0a}','colorTable','RGB','configurable','183972SxaSRG','particles','5597430yfUlLE','data','rows','textures','defineProperties','redraw','class','register','reverseY','prototype','particlesWind','addEventListener','worker','globe','length','Sampler','currentParticlesSpeed','add','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\x0avarying\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=\x20texture2D(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture2D(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\x20gl_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\x20gl_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}','canvasWind','writable','mod','getOwnPropertySymbols','primitiveType','lat','postProcessingSpeed','isArray','west','PI_OVER_TWO','_map','segmentsDepth','construct','vertexArray','clearCommand','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','grid','_addedHook','slice','canvas','currentParticlesPosition','max','ShaderSource','SceneMode','Geometry','_calc_speedRate','strokeStyle','constructor'];_0x34ba=function(){return _0xb4fb62;};return _0x34ba();}function getDirection(_0x5433ab,_0x7a700){var _0x3066e0=_0x4cc5,_0x5b42ca=Cesium$7[_0x3066e0(0x10e)]['toDegrees'](Math['atan2'](_0x7a700,_0x5433ab));return _0x5b42ca+=_0x5b42ca<0x0?0x168:0x0,_0x5b42ca;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x124f2c,_0x18edd3){var _0x31255d=_0x4cc5,_0x3ce6b3=Object['keys'](_0x124f2c);if(Object[_0x31255d(0x138)]){var _0x28a310=Object['getOwnPropertySymbols'](_0x124f2c);_0x18edd3&&(_0x28a310=_0x28a310[_0x31255d(0x1a7)](function(_0x3ad53b){var _0x33e244=_0x31255d;return Object['getOwnPropertyDescriptor'](_0x124f2c,_0x3ad53b)[_0x33e244(0x187)];})),_0x3ce6b3['push']['apply'](_0x3ce6b3,_0x28a310);}return _0x3ce6b3;}function _objectSpread2(_0x3cfaaa){var _0x3480b4=_0x4cc5;for(var _0x129043=0x1;_0x129043<arguments['length'];_0x129043++){var _0x20a5d8=null!=arguments[_0x129043]?arguments[_0x129043]:{};_0x129043%0x2?ownKeys(Object(_0x20a5d8),!0x0)['forEach'](function(_0x172f96){_defineProperty(_0x3cfaaa,_0x172f96,_0x20a5d8[_0x172f96]);}):Object['getOwnPropertyDescriptors']?Object[_0x3480b4(0x126)](_0x3cfaaa,Object['getOwnPropertyDescriptors'](_0x20a5d8)):ownKeys(Object(_0x20a5d8))[_0x3480b4(0x1ba)](function(_0x5a102f){Object['defineProperty'](_0x3cfaaa,_0x5a102f,Object['getOwnPropertyDescriptor'](_0x20a5d8,_0x5a102f));});}return _0x3cfaaa;}function _classCallCheck(_0x1ca0bc,_0x549806){var _0x3633e7=_0x4cc5;if(!(_0x1ca0bc instanceof _0x549806))throw new TypeError(_0x3633e7(0x144));}function _defineProperties(_0x1cb0a1,_0xc06e46){var _0x8d6de0=_0x4cc5;for(var _0xa4661b=0x0;_0xa4661b<_0xc06e46['length'];_0xa4661b++){var _0x6d436b=_0xc06e46[_0xa4661b];_0x6d436b['enumerable']=_0x6d436b[_0x8d6de0(0x187)]||![],_0x6d436b[_0x8d6de0(0x11f)]=!![];if(_0x8d6de0(0x166)in _0x6d436b)_0x6d436b[_0x8d6de0(0x136)]=!![];Object['defineProperty'](_0x1cb0a1,_0x6d436b[_0x8d6de0(0x171)],_0x6d436b);}}function _createClass(_0x1ceeca,_0x362d80,_0x34c265){var _0x43272d=_0x4cc5;if(_0x362d80)_defineProperties(_0x1ceeca['prototype'],_0x362d80);if(_0x34c265)_defineProperties(_0x1ceeca,_0x34c265);return Object['defineProperty'](_0x1ceeca,_0x43272d(0x12b),{'writable':![]}),_0x1ceeca;}function _defineProperty(_0x431ab7,_0xe7b498,_0x10157f){return _0xe7b498 in _0x431ab7?Object['defineProperty'](_0x431ab7,_0xe7b498,{'value':_0x10157f,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x431ab7[_0xe7b498]=_0x10157f,_0x431ab7;}function _inherits(_0x1c267f,_0x324784){var _0x3f35dc=_0x4cc5;if(typeof _0x324784!=='function'&&_0x324784!==null)throw new TypeError(_0x3f35dc(0xce));_0x1c267f['prototype']=Object['create'](_0x324784&&_0x324784[_0x3f35dc(0x12b)],{'constructor':{'value':_0x1c267f,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x1c267f,_0x3f35dc(0x12b),{'writable':![]});if(_0x324784)_setPrototypeOf(_0x1c267f,_0x324784);}function _getPrototypeOf(_0x464db6){return _getPrototypeOf=Object['setPrototypeOf']?Object['getPrototypeOf']['bind']():function _0x4b2d46(_0x141701){var _0x129757=_0x4cc5;return _0x141701[_0x129757(0x106)]||Object['getPrototypeOf'](_0x141701);},_getPrototypeOf(_0x464db6);}function _setPrototypeOf(_0xb12050,_0x9979c3){return _setPrototypeOf=Object['setPrototypeOf']?Object['setPrototypeOf']['bind']():function _0x51e506(_0x184f25,_0x4ea7ec){return _0x184f25['__proto__']=_0x4ea7ec,_0x184f25;},_setPrototypeOf(_0xb12050,_0x9979c3);}function _isNativeReflectConstruct(){var _0xc5dfec=_0x4cc5;if(typeof Reflect==='undefined'||!Reflect[_0xc5dfec(0x141)])return![];if(Reflect[_0xc5dfec(0x141)]['sham'])return![];if(typeof Proxy==='function')return!![];try{return Boolean['prototype']['valueOf']['call'](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x44f161){return![];}}function _assertThisInitialized(_0x3b694c){if(_0x3b694c===void 0x0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x3b694c;}function _possibleConstructorReturn(_0x1fb47b,_0xe8ac2d){var _0x2444c8=_0x4cc5;if(_0xe8ac2d&&(typeof _0xe8ac2d===_0x2444c8(0x1a9)||typeof _0xe8ac2d==='function'))return _0xe8ac2d;else{if(_0xe8ac2d!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x1fb47b);}function _createSuper(_0xa00a44){var _0x18318e=_isNativeReflectConstruct();return function _0x23b92f(){var _0x47017b=_0x4cc5,_0x22b59a=_getPrototypeOf(_0xa00a44),_0x1564ba;if(_0x18318e){var _0x1790e1=_getPrototypeOf(this)[_0x47017b(0x150)];_0x1564ba=Reflect['construct'](_0x22b59a,arguments,_0x1790e1);}else _0x1564ba=_0x22b59a['apply'](this,arguments);return _possibleConstructorReturn(this,_0x1564ba);};}function _toConsumableArray(_0x2de4a4){return _arrayWithoutHoles(_0x2de4a4)||_iterableToArray(_0x2de4a4)||_unsupportedIterableToArray(_0x2de4a4)||_nonIterableSpread();}function _arrayWithoutHoles(_0x28938f){var _0x33a1f3=_0x4cc5;if(Array[_0x33a1f3(0x13c)](_0x28938f))return _arrayLikeToArray(_0x28938f);}function _iterableToArray(_0x1c163c){var _0x9e0847=_0x4cc5;if(typeof Symbol!=='undefined'&&_0x1c163c[Symbol['iterator']]!=null||_0x1c163c['@@iterator']!=null)return Array[_0x9e0847(0x154)](_0x1c163c);}function _unsupportedIterableToArray(_0x159df7,_0x55f047){var _0x489cf9=_0x4cc5;if(!_0x159df7)return;if(typeof _0x159df7===_0x489cf9(0x153))return _arrayLikeToArray(_0x159df7,_0x55f047);var _0x3e6a93=Object['prototype']['toString']['call'](_0x159df7)[_0x489cf9(0x147)](0x8,-0x1);if(_0x3e6a93===_0x489cf9(0xf9)&&_0x159df7['constructor'])_0x3e6a93=_0x159df7['constructor']['name'];if(_0x3e6a93==='Map'||_0x3e6a93===_0x489cf9(0x172))return Array['from'](_0x159df7);if(_0x3e6a93==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x489cf9(0x184)](_0x3e6a93))return _arrayLikeToArray(_0x159df7,_0x55f047);}function _arrayLikeToArray(_0x28c2f8,_0x2543df){if(_0x2543df==null||_0x2543df>_0x28c2f8['length'])_0x2543df=_0x28c2f8['length'];for(var _0x2ea78e=0x0,_0x5c5713=new Array(_0x2543df);_0x2ea78e<_0x2543df;_0x2ea78e++)_0x5c5713[_0x2ea78e]=_0x28c2f8[_0x2ea78e];return _0x5c5713;}function _nonIterableSpread(){throw new TypeError('Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}var Cesium$6=mars3d__namespace['Cesium'],CustomPrimitive=(function(){var _0x4a405c=_0x4cc5;function _0xb18d06(_0x2d0398){var _0x332626=_0x4cc5,_0x57e0ee;_classCallCheck(this,_0xb18d06),this['commandType']=_0x2d0398['commandType'],this['geometry']=_0x2d0398['geometry'],this['attributeLocations']=_0x2d0398['attributeLocations'],this['primitiveType']=_0x2d0398[_0x332626(0x139)],this['uniformMap']=_0x2d0398['uniformMap'],this['vertexShaderSource']=_0x2d0398['vertexShaderSource'],this['fragmentShaderSource']=_0x2d0398['fragmentShaderSource'],this[_0x332626(0x105)]=_0x2d0398['rawRenderState'],this[_0x332626(0xe4)]=_0x2d0398['framebuffer'],this['outputTexture']=_0x2d0398['outputTexture'],this['autoClear']=(_0x57e0ee=_0x2d0398['autoClear'])!==null&&_0x57e0ee!==void 0x0?_0x57e0ee:![],this['preExecute']=_0x2d0398['preExecute'],this[_0x332626(0x183)]=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this[_0x332626(0x1b8)]&&(this[_0x332626(0x143)]=new Cesium$6['ClearCommand']({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass'][_0x332626(0x198)]}));}return _createClass(_0xb18d06,[{'key':_0x4a405c(0xcb),'value':function _0x59dfa3(_0x54f9c2){var _0x1484a1=_0x4a405c;switch(this[_0x1484a1(0xd6)]){case'Draw':{var _0x2a00a5=Cesium$6['VertexArray'][_0x1484a1(0x19c)]({'context':_0x54f9c2,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']}),_0x476074=Cesium$6[_0x1484a1(0x192)]['fromCache']({'context':_0x54f9c2,'attributeLocations':this[_0x1484a1(0x189)],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this['fragmentShaderSource']}),_0x5d9f00=Cesium$6[_0x1484a1(0x18f)]['fromCache'](this['rawRenderState']);return new Cesium$6['DrawCommand']({'primitiveType':this['primitiveType'],'shaderProgram':_0x476074,'vertexArray':_0x2a00a5,'modelMatrix':Cesium$6['Matrix4'][_0x1484a1(0x17c)],'renderState':_0x5d9f00,'uniformMap':this['uniformMap'],'castShadows':![],'receiveShadows':![],'framebuffer':this[_0x1484a1(0xe4)],'pass':Cesium$6['Pass'][_0x1484a1(0x198)],'pickOnly':!![],'owner':this});}case'Compute':{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this['uniformMap'],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':'setGeometry','value':function _0x4cb396(_0x1457ac,_0x478151){var _0x5322a9=_0x4a405c;this[_0x5322a9(0x191)]=_0x478151;var _0x267fa9=Cesium$6['VertexArray']['fromGeometry']({'context':_0x1457ac,'geometry':this['geometry'],'attributeLocations':this[_0x5322a9(0x189)],'bufferUsage':Cesium$6[_0x5322a9(0x156)]['STATIC_DRAW']});this['commandToExecute'][_0x5322a9(0x142)]=_0x267fa9;}},{'key':'update','value':function _0x5b62ca(_0x48cc69){var _0x32adc3=_0x4a405c;if(!this['show'])return;if(_0x48cc69['mode']!==Cesium$6['SceneMode'][_0x32adc3(0xcc)])return;!Cesium$6['defined'](this[_0x32adc3(0x1bd)])&&(this['commandToExecute']=this[_0x32adc3(0xcb)](_0x48cc69['context'])),Cesium$6[_0x32adc3(0xe1)](this[_0x32adc3(0x197)])&&this['preExecute'](),Cesium$6[_0x32adc3(0xe1)](this[_0x32adc3(0x143)])&&_0x48cc69['commandList']['push'](this['clearCommand']),_0x48cc69[_0x32adc3(0xde)]['push'](this[_0x32adc3(0x1bd)]);}},{'key':'isDestroyed','value':function _0x5e9392(){return![];}},{'key':'destroy','value':function _0x14c16c(){var _0x12bebb=_0x4a405c;if(this['clearCommand']){var _0x5b97cf,_0x12a3b7;(_0x5b97cf=this[_0x12bebb(0x143)])!==null&&_0x5b97cf!==void 0x0&&_0x5b97cf[_0x12bebb(0x142)]&&this['clearCommand']['vertexArray']['destroy'](),(_0x12a3b7=this['clearCommand'])!==null&&_0x12a3b7!==void 0x0&&_0x12a3b7['shaderProgram']&&this['clearCommand']['shaderProgram']['destroy'](),delete this['clearCommand'];}return this['commandToExecute']&&(this['commandToExecute'][_0x12bebb(0x142)]&&this['commandToExecute']['vertexArray'][_0x12bebb(0x1a3)](),this[_0x12bebb(0x1bd)]['shaderProgram']&&this[_0x12bebb(0x1bd)]['shaderProgram']['destroy'](),delete this['commandToExecute']),Cesium$6[_0x12bebb(0x1b4)](this);}}]),_0xb18d06;}()),Cesium$5=mars3d__namespace[_0x5a162f(0xdd)],Util=(function(){var _0x407f3c=function _0x4a68c9(){var _0x5e280f=_0x4cc5,_0x174e23=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[(_0x5e280f(0x193))]({'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 _0x174e23;},_0x5f3331=function _0x1cb3aa(_0x377452,_0x20dcdc){if(Cesium$5['defined'](_0x20dcdc)){var _0x10e322={};_0x10e322['arrayBufferView']=_0x20dcdc,_0x377452['source']=_0x10e322;}var _0x28785b=new Cesium$5['Texture'](_0x377452);return _0x28785b;},_0x1ff3f8=function _0xd15525(_0x25c070,_0x111771,_0x267ea0){var _0x55caa2=_0x4cc5,_0x550772=new Cesium$5[(_0x55caa2(0x1bc))]({'context':_0x25c070,'colorTextures':[_0x111771],'depthTexture':_0x267ea0});return _0x550772;},_0x2248ee=function _0x4e15b2(_0x4b31d4){var _0x54a016=_0x4cc5,_0x2d2416=!![],_0x3485a9=![],_0x5b4624={'viewport':_0x4b31d4['viewport'],'depthTest':_0x4b31d4[_0x54a016(0xc5)],'depthMask':_0x4b31d4['depthMask'],'blending':_0x4b31d4['blending']},_0xaa4e09=Cesium$5['Appearance']['getDefaultRenderState'](_0x2d2416,_0x3485a9,_0x5b4624);return _0xaa4e09;},_0x2bedf8=function _0x398394(_0x2a3fce){var _0x1a0765=_0x4cc5,_0x17b05d={},_0x37fe44=Cesium$5['Math'][_0x1a0765(0x137)](_0x2a3fce[_0x1a0765(0x13d)],Cesium$5['Math']['TWO_PI']),_0x3612a0=Cesium$5['Math']['mod'](_0x2a3fce['east'],Cesium$5['Math'][_0x1a0765(0x109)]),_0x688bce=_0x2a3fce['width'],_0x1e0259,_0x448cf;_0x688bce>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0x1e0259=0x0,_0x448cf=Cesium$5[_0x1a0765(0x10e)]['TWO_PI']):_0x3612a0-_0x37fe44<_0x688bce?(_0x1e0259=_0x37fe44,_0x448cf=_0x37fe44+_0x688bce):(_0x1e0259=_0x37fe44,_0x448cf=_0x3612a0);_0x17b05d['lon']={'min':Cesium$5['Math'][_0x1a0765(0xcf)](_0x1e0259),'max':Cesium$5['Math']['toDegrees'](_0x448cf)};var _0x3d11b0=_0x2a3fce['south'],_0x5d54be=_0x2a3fce['north'],_0xaaac5d=_0x2a3fce[_0x1a0765(0x151)],_0x5f39d9=_0xaaac5d>Cesium$5['Math']['PI']/0xc?_0xaaac5d/0x2:0x0,_0x4061d8=Cesium$5['Math']['clampToLatitudeRange'](_0x3d11b0-_0x5f39d9),_0x2210ae=Cesium$5['Math']['clampToLatitudeRange'](_0x5d54be+_0x5f39d9);return _0x4061d8<-Cesium$5[_0x1a0765(0x10e)][_0x1a0765(0x103)]&&(_0x4061d8=-Cesium$5['Math']['PI_OVER_TWO']),_0x2210ae>Cesium$5['Math'][_0x1a0765(0x103)]&&(_0x2210ae=Cesium$5[_0x1a0765(0x10e)][_0x1a0765(0x13e)]),_0x17b05d[_0x1a0765(0x13a)]={'min':Cesium$5['Math'][_0x1a0765(0xcf)](_0x4061d8),'max':Cesium$5['Math'][_0x1a0765(0xcf)](_0x2210ae)},_0x17b05d;};return{'getFullscreenQuad':_0x407f3c,'createTexture':_0x5f3331,'createFramebuffer':_0x1ff3f8,'createRawRenderState':_0x2248ee,'viewRectangleToLonLatRange':_0x2bedf8};}()),segmentDraw_vert='attribute\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0aattribute\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\x0avarying\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\x20\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x20\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x20\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=\x20texture2D(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture2D(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=\x20texture2D(postProcessingSpeed,\x20particleIndex).a;\x0a}',segmentDraw_frag='uniform\x20sampler2D\x20colorTable;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20texture2D(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}',fullscreen_vert='attribute\x20vec3\x20position;\x0d\x0aattribute\x20vec2\x20st;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0d\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0d\x0a}',trailDraw_frag=_0x5a162f(0x11c),screenDraw_frag='uniform\x20sampler2D\x20trailsColorTexture;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(trailsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x20else\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20}\x0d\x0a}',Cesium$4=mars3d__namespace['Cesium'],ParticlesRendering=(function(){var _0x47c98b=_0x5a162f;function _0x151d7b(_0x186d56,_0x1a792e,_0x163a0a,_0x27037b,_0x36c4e5){var _0x2becd8=_0x4cc5;_classCallCheck(this,_0x151d7b),this['createRenderingTextures'](_0x186d56,_0x1a792e,_0x163a0a['colors']),this[_0x2becd8(0x175)](_0x186d56),this['createRenderingPrimitives'](_0x186d56,_0x163a0a,_0x27037b,_0x36c4e5);}return _createClass(_0x151d7b,[{'key':'createRenderingTextures','value':function _0x148f45(_0x53fe66,_0x4b8c50,_0x8b2f9a){var _0x673dea=_0x4cc5,_0x2361cc={'context':_0x53fe66,'width':_0x53fe66[_0x673dea(0x1ae)],'height':_0x53fe66['drawingBufferHeight'],'pixelFormat':Cesium$4[_0x673dea(0x17a)]['RGBA'],'pixelDatatype':Cesium$4['PixelDatatype'][_0x673dea(0x16b)]},_0x32a9ec={'context':_0x53fe66,'width':_0x53fe66['drawingBufferWidth'],'height':_0x53fe66['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat'][_0x673dea(0x18e)],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_INT']},_0x40ef0d=_0x8b2f9a[_0x673dea(0x130)],_0x1981e9=new Float32Array(_0x40ef0d*0x3);for(var _0x22c87a=0x0;_0x22c87a<_0x40ef0d;_0x22c87a++){var _0x5e22cd=Cesium$4['Color']['fromCssColorString'](_0x8b2f9a[_0x22c87a]);_0x1981e9[0x3*_0x22c87a]=_0x5e22cd[_0x673dea(0xdf)],_0x1981e9[0x3*_0x22c87a+0x1]=_0x5e22cd['green'],_0x1981e9[0x3*_0x22c87a+0x2]=_0x5e22cd['blue'];}var _0x43292e={'context':_0x53fe66,'width':_0x40ef0d,'height':0x1,'pixelFormat':Cesium$4[_0x673dea(0x17a)][_0x673dea(0x11e)],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4[(_0x673dea(0x131))]({'minificationFilter':Cesium$4['TextureMinificationFilter'][_0x673dea(0x1b1)],'magnificationFilter':Cesium$4['TextureMagnificationFilter']['LINEAR']})};this['textures']={'segmentsColor':Util['createTexture'](_0x2361cc),'segmentsDepth':Util['createTexture'](_0x32a9ec),'currentTrailsColor':Util['createTexture'](_0x2361cc),'currentTrailsDepth':Util[_0x673dea(0xd7)](_0x32a9ec),'nextTrailsColor':Util['createTexture'](_0x2361cc),'nextTrailsDepth':Util['createTexture'](_0x32a9ec),'colorTable':Util[_0x673dea(0xd7)](_0x43292e,_0x1981e9)};}},{'key':'createRenderingFramebuffers','value':function _0x1e26a7(_0x26990c){var _0x59a67a=_0x4cc5;this['framebuffers']={'segments':Util[_0x59a67a(0x19b)](_0x26990c,this[_0x59a67a(0x125)]['segmentsColor'],this['textures'][_0x59a67a(0x140)]),'currentTrails':Util['createFramebuffer'](_0x26990c,this[_0x59a67a(0x125)][_0x59a67a(0xc3)],this['textures']['currentTrailsDepth']),'nextTrails':Util['createFramebuffer'](_0x26990c,this['textures']['nextTrailsColor'],this['textures'][_0x59a67a(0x160)])};}},{'key':_0x47c98b(0xf5),'value':function _0x31552d(_0x2eb26f){var _0x8ccd84=_0x47c98b,_0x5866de=0x4,_0x4b25c1=[];for(var _0x536333=0x0;_0x536333<_0x2eb26f['particlesTextureSize'];_0x536333++){for(var _0x2ab7f0=0x0;_0x2ab7f0<_0x2eb26f['particlesTextureSize'];_0x2ab7f0++){for(var _0x1db4b4=0x0;_0x1db4b4<_0x5866de;_0x1db4b4++){_0x4b25c1['push'](_0x536333/_0x2eb26f['particlesTextureSize']),_0x4b25c1['push'](_0x2ab7f0/_0x2eb26f['particlesTextureSize']);}}}_0x4b25c1=new Float32Array(_0x4b25c1);var _0x3fcf17=[],_0x5708fb=[-0x1,0x1],_0x67fe86=[-0x1,0x1];for(var _0x165068=0x0;_0x165068<_0x2eb26f['maxParticles'];_0x165068++){for(var _0x51379f=0x0;_0x51379f<_0x5866de/0x2;_0x51379f++){for(var _0x316366=0x0;_0x316366<_0x5866de/0x2;_0x316366++){_0x3fcf17['push'](_0x5708fb[_0x51379f]),_0x3fcf17['push'](_0x67fe86[_0x316366]),_0x3fcf17['push'](0x0);}}}_0x3fcf17=new Float32Array(_0x3fcf17);var _0xcd095d=0x6*_0x2eb26f['maxParticles'],_0x88093c=new Uint32Array(_0xcd095d);for(var _0x32ec2a=0x0,_0x162ed1=0x0,_0x2529d0=0x0;_0x32ec2a<_0x2eb26f[_0x8ccd84(0x177)];_0x32ec2a++){_0x88093c[_0x162ed1++]=_0x2529d0+0x0,_0x88093c[_0x162ed1++]=_0x2529d0+0x1,_0x88093c[_0x162ed1++]=_0x2529d0+0x2,_0x88093c[_0x162ed1++]=_0x2529d0+0x2,_0x88093c[_0x162ed1++]=_0x2529d0+0x1,_0x88093c[_0x162ed1++]=_0x2529d0+0x3,_0x2529d0+=0x4;}var _0x2c91d6=new Cesium$4[(_0x8ccd84(0x14d))]({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype'][_0x8ccd84(0xd4)],'componentsPerAttribute':0x2,'values':_0x4b25c1}),'normal':new Cesium$4[(_0x8ccd84(0x193))]({'componentDatatype':Cesium$4['ComponentDatatype'][_0x8ccd84(0xd4)],'componentsPerAttribute':0x3,'values':_0x3fcf17})}),'indices':_0x88093c});return _0x2c91d6;}},{'key':'createRenderingPrimitives','value':function _0x283dd7(_0x2008fc,_0x441303,_0x38522e,_0x102fd3){var _0x489d16=_0x47c98b,_0x3843d1=this;this['primitives']={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'st':0x0,'normal':0x1},'geometry':this[_0x489d16(0xf5)](_0x441303),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function _0x45920a(){return _0x102fd3['particlesTextures']['currentParticlesPosition'];},'postProcessingPosition':function _0x142621(){var _0x6db190=_0x489d16;return _0x102fd3[_0x6db190(0x181)]['postProcessingPosition'];},'postProcessingSpeed':function _0x4d328b(){return _0x102fd3['particlesTextures']['postProcessingSpeed'];},'colorTable':function _0x1930c9(){return _0x3843d1['textures']['colorTable'];},'aspect':function _0x52a068(){return _0x2008fc['drawingBufferWidth']/_0x2008fc['drawingBufferHeight'];},'pixelSize':function _0x48e316(){return _0x38522e['pixelSize'];},'lineWidth':function _0x2de6ec(){var _0xe9cf43=_0x489d16;return _0x441303[_0xe9cf43(0x111)];},'particleHeight':function _0x491803(){return _0x441303['particleHeight'];}},'vertexShaderSource':new Cesium$4[(_0x489d16(0x14b))]({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this['framebuffers'][_0x489d16(0x1ac)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x489d16(0x186),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0x3bd622(){var _0x21205d=_0x489d16;return _0x3843d1[_0x21205d(0x125)]['segmentsColor'];},'segmentsDepthTexture':function _0x5e5c7b(){return _0x3843d1['textures']['segmentsDepth'];},'currentTrailsColor':function _0x906426(){var _0x417aaf=_0x489d16;return _0x3843d1[_0x417aaf(0x119)]['currentTrails'][_0x417aaf(0x168)](0x0);},'trailsDepthTexture':function _0x391b71(){var _0xf79d85=_0x489d16;return _0x3843d1[_0xf79d85(0x119)][_0xf79d85(0xef)]['depthTexture'];},'fadeOpacity':function _0x5687f1(){return _0x441303['fadeOpacity'];}},'vertexShaderSource':new Cesium$4[(_0x489d16(0x14b))]({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x489d16(0x14b))]({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[trailDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction']['ALWAYS']},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function _0x3e999e(){var _0x5b8bf6=_0x489d16,_0x36016c=_0x3843d1['framebuffers']['currentTrails'];_0x3843d1['framebuffers']['currentTrails']=_0x3843d1['framebuffers']['nextTrails'],_0x3843d1['framebuffers']['nextTrails']=_0x36016c,_0x3843d1['primitives']['trails']['commandToExecute']['framebuffer']=_0x3843d1['framebuffers']['nextTrails'],_0x3843d1[_0x5b8bf6(0xcd)]['trails'][_0x5b8bf6(0x143)][_0x5b8bf6(0xe4)]=_0x3843d1[_0x5b8bf6(0x119)]['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x489d16(0x114)](),'primitiveType':Cesium$4[_0x489d16(0xc1)]['TRIANGLES'],'uniformMap':{'trailsColorTexture':function _0x25abc2(){return _0x3843d1['framebuffers']['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x1b21ee(){return _0x3843d1['framebuffers']['nextTrails']['depthTexture'];}},'vertexShaderSource':new Cesium$4[(_0x489d16(0x14b))]({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[screenDraw_frag]}),'rawRenderState':Util[_0x489d16(0x173)]({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x151d7b;}()),getWind_frag='//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x20\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\x0avarying\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=\x20texture2D(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=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}',updateSpeed_frag=_0x5a162f(0xee),updatePosition_frag='uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0avarying\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\x20gl_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=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}',postProcessingPosition_frag=_0x5a162f(0x134),postProcessingSpeed_frag=_0x5a162f(0xf7),Cesium$3=mars3d__namespace['Cesium'],ParticlesComputing=(function(){function _0x50810a(_0x2d03c7,_0x1b32af,_0x2f1c4f,_0x30dbd5){_classCallCheck(this,_0x50810a),this['data']=_0x1b32af,this['createWindTextures'](_0x2d03c7,_0x1b32af),this['createParticlesTextures'](_0x2d03c7,_0x2f1c4f,_0x30dbd5),this['createComputingPrimitives'](_0x1b32af,_0x2f1c4f,_0x30dbd5);}return _createClass(_0x50810a,[{'key':'createWindTextures','value':function _0xddb97a(_0x1c6ba6,_0x5cd10d){var _0x1bf512=_0x4cc5,_0x276f5c={'context':_0x1c6ba6,'width':_0x5cd10d[_0x1bf512(0xff)]['lon'],'height':_0x5cd10d['dimensions'][_0x1bf512(0x13a)]*(_0x5cd10d['dimensions']['lev']||0x1),'pixelFormat':Cesium$3[_0x1bf512(0x17a)]['LUMINANCE'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};this['windTextures']={'U':Util['createTexture'](_0x276f5c,_0x5cd10d['U']['array']),'V':Util[_0x1bf512(0xd7)](_0x276f5c,_0x5cd10d['V']['array'])};}},{'key':'createParticlesTextures','value':function _0x2054c2(_0x3d9751,_0x2f4c58,_0x4a86cc){var _0x1fc907=_0x4cc5,_0x4c9366={'context':_0x3d9751,'width':_0x2f4c58['particlesTextureSize'],'height':_0x2f4c58['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat'][_0x1fc907(0x11b)],'pixelDatatype':Cesium$3['PixelDatatype'][_0x1fc907(0xd4)],'flipY':![],'sampler':new Cesium$3[(_0x1fc907(0x131))]({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter'][_0x1fc907(0x1a4)]})},_0x3834b5=this['randomizeParticles'](_0x2f4c58['maxParticles'],_0x4a86cc),_0x1ea31a=new Float32Array(0x4*_0x2f4c58['maxParticles'])[_0x1fc907(0xc7)](0x0);this[_0x1fc907(0x181)]={'particlesWind':Util['createTexture'](_0x4c9366),'currentParticlesPosition':Util['createTexture'](_0x4c9366,_0x3834b5),'nextParticlesPosition':Util['createTexture'](_0x4c9366,_0x3834b5),'currentParticlesSpeed':Util['createTexture'](_0x4c9366,_0x1ea31a),'nextParticlesSpeed':Util['createTexture'](_0x4c9366,_0x1ea31a),'postProcessingPosition':Util['createTexture'](_0x4c9366,_0x3834b5),'postProcessingSpeed':Util[_0x1fc907(0xd7)](_0x4c9366,_0x1ea31a)};}},{'key':'randomizeParticles','value':function _0x483784(_0x1f6e18,_0x2ba23e){var _0xd35d1=_0x4cc5,_0x3ab646=new Float32Array(0x4*_0x1f6e18);for(var _0x26defb=0x0;_0x26defb<_0x1f6e18;_0x26defb++){_0x3ab646[0x4*_0x26defb]=Cesium$3['Math']['randomBetween'](_0x2ba23e[_0xd35d1(0xc8)]['x'],_0x2ba23e['lonRange']['y']),_0x3ab646[0x4*_0x26defb+0x1]=Cesium$3['Math']['randomBetween'](_0x2ba23e['latRange']['x'],_0x2ba23e['latRange']['y']),_0x3ab646[0x4*_0x26defb+0x2]=Cesium$3['Math']['randomBetween'](this['data']['lev']['min'],this['data'][_0xd35d1(0xfc)][_0xd35d1(0x14a)]),_0x3ab646[0x4*_0x26defb+0x3]=0x0;}return _0x3ab646;}},{'key':'destroyParticlesTextures','value':function _0x3e7e7c(){var _0x988f20=_0x4cc5,_0x14c438=this;Object['keys'](this[_0x988f20(0x181)])['forEach'](function(_0x5ece94){_0x14c438['particlesTextures'][_0x5ece94]['destroy']();});}},{'key':'createComputingPrimitives','value':function _0x242bad(_0x440703,_0x50ca58,_0x4a1f47){var _0x455b96=_0x4cc5,_0x27f51c=new Cesium$3[(_0x455b96(0xe8))](_0x440703['dimensions'][_0x455b96(0x10d)],_0x440703['dimensions']['lat'],_0x440703['dimensions']['lev']),_0x2dcacb=new Cesium$3[(_0x455b96(0xe8))](_0x440703[_0x455b96(0x10d)]['min'],_0x440703[_0x455b96(0x13a)][_0x455b96(0xf6)],_0x440703['lev'][_0x455b96(0xf6)]),_0x4114a5=new Cesium$3['Cartesian3'](_0x440703['lon']['max'],_0x440703[_0x455b96(0x13a)]['max'],_0x440703['lev'][_0x455b96(0x14a)]),_0x40ba73=new Cesium$3['Cartesian3']((_0x4114a5['x']-_0x2dcacb['x'])/(_0x27f51c['x']-0x1),(_0x4114a5['y']-_0x2dcacb['y'])/(_0x27f51c['y']-0x1),_0x27f51c['z']>0x1?(_0x4114a5['z']-_0x2dcacb['z'])/(_0x27f51c['z']-0x1):0x1),_0x199136=new Cesium$3[(_0x455b96(0x163))](_0x440703['U']['min'],_0x440703['U'][_0x455b96(0x14a)]),_0x251d3c=new Cesium$3[(_0x455b96(0x163))](_0x440703['V']['min'],_0x440703['V']['max']),_0x2a3d7e=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':function _0x215d55(){var _0x1e9c64=_0x455b96;return _0x2a3d7e[_0x1e9c64(0x185)]['U'];},'V':function _0x3f9904(){return _0x2a3d7e['windTextures']['V'];},'currentParticlesPosition':function _0x4cb3c9(){var _0x27374b=_0x455b96;return _0x2a3d7e['particlesTextures'][_0x27374b(0x149)];},'dimension':function _0x11f29a(){return _0x27f51c;},'minimum':function _0x2df596(){return _0x2dcacb;},'maximum':function _0x2aca28(){return _0x4114a5;},'interval':function _0x41310a(){return _0x40ba73;}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[getWind_frag]}),'outputTexture':this[_0x455b96(0x181)][_0x455b96(0x12c)],'preExecute':function _0x42092a(){var _0x49b465=_0x455b96;_0x2a3d7e['primitives']['getWind'][_0x49b465(0x1bd)][_0x49b465(0x161)]=_0x2a3d7e['particlesTextures']['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':_0x455b96(0x155),'uniformMap':{'currentParticlesSpeed':function _0x5674a5(){var _0x49e364=_0x455b96;return _0x2a3d7e[_0x49e364(0x181)][_0x49e364(0x132)];},'particlesWind':function _0x152fa9(){var _0x79df64=_0x455b96;return _0x2a3d7e[_0x79df64(0x181)]['particlesWind'];},'uSpeedRange':function _0x4059c5(){return _0x199136;},'vSpeedRange':function _0x4b91df(){return _0x251d3c;},'pixelSize':function _0x3322bb(){return _0x4a1f47['pixelSize'];},'speedFactor':function _0x36140e(){var _0x33d796=_0x455b96;return _0x50ca58[_0x33d796(0x180)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updateSpeed_frag]}),'outputTexture':this[_0x455b96(0x181)][_0x455b96(0x1aa)],'preExecute':function _0x1f0ee0(){var _0x4f2fed=_0x455b96,_0x5ad20f=_0x2a3d7e['particlesTextures'][_0x4f2fed(0x132)];_0x2a3d7e[_0x4f2fed(0x181)]['currentParticlesSpeed']=_0x2a3d7e[_0x4f2fed(0x181)]['postProcessingSpeed'],_0x2a3d7e[_0x4f2fed(0x181)]['postProcessingSpeed']=_0x5ad20f,_0x2a3d7e[_0x4f2fed(0xcd)]['updateSpeed'][_0x4f2fed(0x1bd)]['outputTexture']=_0x2a3d7e[_0x4f2fed(0x181)][_0x4f2fed(0x1aa)];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x5df8fd(){return _0x2a3d7e['particlesTextures']['currentParticlesPosition'];},'currentParticlesSpeed':function _0xf078d7(){return _0x2a3d7e['particlesTextures']['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3[(_0x455b96(0x14b))]({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0xd946c6(){var _0x5eea17=_0x455b96,_0x1efb47=_0x2a3d7e['particlesTextures']['currentParticlesPosition'];_0x2a3d7e[_0x5eea17(0x181)]['currentParticlesPosition']=_0x2a3d7e['particlesTextures']['postProcessingPosition'],_0x2a3d7e['particlesTextures']['postProcessingPosition']=_0x1efb47,_0x2a3d7e['primitives']['updatePosition'][_0x5eea17(0x1bd)][_0x5eea17(0x161)]=_0x2a3d7e['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0x33d71b(){return _0x2a3d7e['particlesTextures']['nextParticlesPosition'];},'nextParticlesSpeed':function _0x4c8fee(){var _0x19f30f=_0x455b96;return _0x2a3d7e[_0x19f30f(0x181)]['nextParticlesSpeed'];},'lonRange':function _0x13e9b4(){var _0x4b3baf=_0x455b96;return _0x4a1f47[_0x4b3baf(0xc8)];},'latRange':function _0x193a2d(){return _0x4a1f47['latRange'];},'randomCoefficient':function _0x61b906(){var _0x223dff=Math['random']();return _0x223dff;},'dropRate':function _0x2de7eb(){return _0x50ca58['dropRate'];},'dropRateBump':function _0x3aecac(){return _0x50ca58['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures'][_0x455b96(0x102)],'preExecute':function _0x4fb248(){var _0x89c3fb=_0x455b96;_0x2a3d7e['primitives']['postProcessingPosition']['commandToExecute'][_0x89c3fb(0x161)]=_0x2a3d7e['particlesTextures'][_0x89c3fb(0x102)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0x47cb52(){var _0x155537=_0x455b96;return _0x2a3d7e['particlesTextures'][_0x155537(0x102)];},'nextParticlesSpeed':function _0x1294e2(){return _0x2a3d7e['particlesTextures']['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingSpeed_frag]}),'outputTexture':this['particlesTextures']['postProcessingSpeed'],'preExecute':function _0x10b7f7(){_0x2a3d7e['primitives']['postProcessingSpeed']['commandToExecute']['outputTexture']=_0x2a3d7e['particlesTextures']['postProcessingSpeed'];}})};}}]),_0x50810a;}()),Cesium$2=mars3d__namespace['Cesium'],ParticleSystem=(function(){var _0x10bb64=_0x5a162f;function _0x18e615(_0x2eb929,_0x2806d6,_0x1cce3b,_0x55cf87){var _0x136836=_0x4cc5;_classCallCheck(this,_0x18e615),this['context']=_0x2eb929,_0x2806d6=_objectSpread2({},_0x2806d6);if(_0x2806d6[_0x136836(0x194)]&&_0x2806d6['vdata']){var _0x534bb0,_0xac2765,_0x1a190d,_0x44a57f,_0x595ea2,_0x3efe39;_0x2806d6['dimensions']={},_0x2806d6[_0x136836(0xff)][_0x136836(0x10d)]=_0x2806d6['cols'],_0x2806d6['dimensions'][_0x136836(0x13a)]=_0x2806d6[_0x136836(0x124)],_0x2806d6['dimensions'][_0x136836(0xfc)]=_0x2806d6['lev']||0x1,_0x2806d6['lon']={},_0x2806d6['lon']['min']=_0x2806d6[_0x136836(0x1b0)],_0x2806d6['lon']['max']=_0x2806d6[_0x136836(0x188)],_0x2806d6['lat']={},_0x2806d6[_0x136836(0x13a)]['min']=_0x2806d6['ymin'],_0x2806d6['lat'][_0x136836(0x14a)]=_0x2806d6['ymax'],_0x2806d6['lev']={},_0x2806d6['lev'][_0x136836(0xf6)]=(_0x534bb0=_0x2806d6['levmin'])!==null&&_0x534bb0!==void 0x0?_0x534bb0:0x1,_0x2806d6[_0x136836(0xfc)]['max']=(_0xac2765=_0x2806d6[_0x136836(0x19d)])!==null&&_0xac2765!==void 0x0?_0xac2765:0x1,_0x2806d6['U']={},_0x2806d6['U']['array']=new Float32Array(_0x2806d6['udata']),_0x2806d6['U']['min']=(_0x1a190d=_0x2806d6['umin'])!==null&&_0x1a190d!==void 0x0?_0x1a190d:Math[_0x136836(0xf6)][_0x136836(0x159)](Math,_toConsumableArray(_0x2806d6[_0x136836(0x194)])),_0x2806d6['U']['max']=(_0x44a57f=_0x2806d6['umax'])!==null&&_0x44a57f!==void 0x0?_0x44a57f:Math['max'][_0x136836(0x159)](Math,_toConsumableArray(_0x2806d6[_0x136836(0x194)])),_0x2806d6['V']={},_0x2806d6['V']['array']=new Float32Array(_0x2806d6['vdata']),_0x2806d6['V']['min']=(_0x595ea2=_0x2806d6['vmin'])!==null&&_0x595ea2!==void 0x0?_0x595ea2:Math[_0x136836(0xf6)]['apply'](Math,_toConsumableArray(_0x2806d6['vdata'])),_0x2806d6['V'][_0x136836(0x14a)]=(_0x3efe39=_0x2806d6['vmax'])!==null&&_0x3efe39!==void 0x0?_0x3efe39:Math['max'][_0x136836(0x159)](Math,_toConsumableArray(_0x2806d6[_0x136836(0x15e)]));}this['data']=_0x2806d6,this[_0x136836(0xc6)]=_0x1cce3b,this['viewerParameters']=_0x55cf87,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this[_0x136836(0x16f)],this['data'],this['options'],this['viewerParameters'],this['particlesComputing']);}return _createClass(_0x18e615,[{'key':'canvasResize','value':function _0x34bb52(_0x43ce8a){var _0x3f6978=_0x4cc5,_0x57e6b4=this;this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this['particlesComputing'][_0x3f6978(0x185)])[_0x3f6978(0x1ba)](function(_0x51df82){var _0x15974a=_0x3f6978;_0x57e6b4['particlesComputing'][_0x15974a(0x185)][_0x51df82]['destroy']();}),this[_0x3f6978(0x112)]['textures'][_0x3f6978(0x11d)]['destroy'](),Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](function(_0x2e0c56){var _0x207e52=_0x3f6978;_0x57e6b4['particlesRendering'][_0x207e52(0x119)][_0x2e0c56]['destroy']();}),this['context']=_0x43ce8a,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this['options'],this['viewerParameters'],this[_0x3f6978(0x15d)]);}},{'key':'clearFramebuffers','value':function _0x4c3c30(){var _0x70e51d=_0x4cc5,_0x11fa17=this,_0x353778=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2[_0x70e51d(0x10c)][_0x70e51d(0x198)]});Object['keys'](this['particlesRendering'][_0x70e51d(0x119)])[_0x70e51d(0x1ba)](function(_0x130427){_0x353778['framebuffer']=_0x11fa17['particlesRendering']['framebuffers'][_0x130427],_0x353778['execute'](_0x11fa17['context']);});}},{'key':_0x10bb64(0xfb),'value':function _0x3a1fad(_0x1d6c8e){var _0x123e87=_0x10bb64;this['clearFramebuffers'](),this['particlesComputing']['destroyParticlesTextures'](),this['particlesComputing'][_0x123e87(0x1ab)](this['context'],this['options'],this['viewerParameters']);if(_0x1d6c8e){var _0x43203b=this[_0x123e87(0x112)]['createSegmentsGeometry'](this['options']);this[_0x123e87(0x112)]['primitives']['segments']['geometry']=_0x43203b;var _0x5df0ea=Cesium$2['VertexArray']['fromGeometry']({'context':this['context'],'geometry':_0x43203b,'attributeLocations':this[_0x123e87(0x112)][_0x123e87(0xcd)]['segments']['attributeLocations'],'bufferUsage':Cesium$2['BufferUsage']['STATIC_DRAW']});this['particlesRendering']['primitives']['segments']['commandToExecute']['vertexArray']=_0x5df0ea;}}},{'key':'setOptions','value':function _0x4c691e(_0x59964c){var _0x38a0f4=_0x10bb64,_0x4119f9=this,_0x1384c3=![];this['options']['maxParticles']!==_0x59964c[_0x38a0f4(0x177)]&&(_0x1384c3=!![]),Object[_0x38a0f4(0xf0)](_0x59964c)['forEach'](function(_0xa9d222){_0x4119f9['options'][_0xa9d222]=_0x59964c[_0xa9d222];}),this['refreshParticles'](_0x1384c3);}},{'key':_0x10bb64(0x18b),'value':function _0x326f4d(_0x5ccc17){var _0x33fc35=_0x10bb64,_0x43b578=this;Object[_0x33fc35(0xf0)](_0x5ccc17)['forEach'](function(_0x4cc5d5){_0x43b578['viewerParameters'][_0x4cc5d5]=_0x5ccc17[_0x4cc5d5];}),this['refreshParticles'](![]);}},{'key':_0x10bb64(0x1a3),'value':function _0x3e8ee4(){var _0x361e33=_0x10bb64,_0x49e099=this;clearTimeout(this['canrefresh']),this['particlesComputing']['destroyParticlesTextures'](),Object[_0x361e33(0xf0)](this['particlesComputing'][_0x361e33(0x185)])[_0x361e33(0x1ba)](function(_0x5a319e){var _0x1cce39=_0x361e33;_0x49e099['particlesComputing'][_0x1cce39(0x185)][_0x5a319e]['destroy']();}),this['particlesRendering'][_0x361e33(0x125)]['colorTable']['destroy'](),Object['keys'](this['particlesRendering'][_0x361e33(0x119)])[_0x361e33(0x1ba)](function(_0x3ea4b0){var _0x185174=_0x361e33;_0x49e099['particlesRendering']['framebuffers'][_0x3ea4b0][_0x185174(0x1a3)]();});for(var _0x2b5634 in this){delete this[_0x2b5634];}}}]),_0x18e615;}()),Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],DEF_OPTIONS={'particlesNumber':0x1000,'fixedHeight':0x0,'fadeOpacity':0.996,'dropRate':0.003,'dropRateBump':0.01,'speedFactor':0.5,'lineWidth':0x2,'colors':['rgb(206,255,255)']},WindLayer=function(_0x1017a2){var _0x1f1f43=_0x5a162f;_inherits(_0x250aea,_0x1017a2);var _0x40742f=_createSuper(_0x250aea);function _0x250aea(){var _0x2a1a38,_0x19beb9=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x250aea),_0x19beb9=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x19beb9),_0x2a1a38=_0x40742f['call'](this,_0x19beb9),_0x2a1a38['_setOptionsHook'](_0x19beb9),_0x2a1a38;}return _createClass(_0x250aea,[{'key':_0x1f1f43(0x117),'get':function _0x238152(){return this['primitives'];}},{'key':'data','get':function _0x3a1414(){var _0x1ee689=_0x1f1f43;return this[_0x1ee689(0x15b)];},'set':function _0x47e718(_0x1e6e6c){this['setData'](_0x1e6e6c);}},{'key':'colors','get':function _0xd77e17(){return this['options']['colors'];},'set':function _0x1fd440(_0x4cab7c){var _0x341fae=_0x1f1f43;this[_0x341fae(0xc6)]['colors']=_0x4cab7c,this[_0x341fae(0x196)]&&this['particleSystem']['setOptions']({'colors':_0x4cab7c}),this['resize']();}},{'key':'_mountedHook','value':function _0x591c85(){}},{'key':_0x1f1f43(0x146),'value':function _0x2c21d6(){var _0x1c900c=_0x1f1f43;this['scene']=this['_map'][_0x1c900c(0xeb)],this[_0x1c900c(0x169)]=this['_map']['camera'],this['primitives']=new Cesium$1['PrimitiveCollection'](),this[_0x1c900c(0x13f)]['scene']['primitives'][_0x1c900c(0x133)](this['primitives']),this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1[(_0x1c900c(0x163))](),'pixelSize':0x0},this['globeBoundingSphere']=new Cesium$1['BoundingSphere'](Cesium$1[_0x1c900c(0xe8)]['ZERO'],0.99*0x615299),this['updateViewerParameters'](),window[_0x1c900c(0x12d)]('resize',this[_0x1c900c(0x16d)][_0x1c900c(0x17d)](this),![]),this['mouse_down']=![],this[_0x1c900c(0xfe)]=![],this['_map']['on'](mars3d__namespace['EventType'][_0x1c900c(0xfa)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x1c900c(0xc9)]['mouseUp'],this[_0x1c900c(0x19f)],this),this['_map']['on'](mars3d__namespace[_0x1c900c(0xc9)][_0x1c900c(0xc2)],this['_onMouseMoveEvent'],this),this['_data']&&this['setData'](this['_data']);}},{'key':'_removedHook','value':function _0xcab22(){var _0x20b140=_0x1f1f43;window['removeEventListener']('resize',this[_0x20b140(0x16d)]),this['_map']['off'](mars3d__namespace['EventType']['preRender'],this[_0x20b140(0x1be)],this),this['_map'][_0x20b140(0xed)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x20b140(0x176)],this),this['_map']['off'](mars3d__namespace[_0x20b140(0xc9)]['mouseUp'],this['_onMouseUpEvent'],this),this[_0x20b140(0x13f)][_0x20b140(0xed)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x20b140(0xcd)][_0x20b140(0xe5)](),this['_map']['scene']['primitives']['remove'](this['primitives']);}},{'key':'resize','value':function _0x29cdfc(){var _0x5a9f60=_0x1f1f43;if(!this['show']||!this['particleSystem'])return;this[_0x5a9f60(0xcd)]['show']=![],this['primitives']['removeAll'](),this[_0x5a9f60(0x13f)]['once'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this);}},{'key':'_onMap_preRenderEvent','value':function _0xd8514a(_0x14d3a0){var _0x28b887=_0x1f1f43;this['particleSystem']['canvasResize'](this['scene']['context']),this['addPrimitives'](),this[_0x28b887(0xcd)][_0x28b887(0x183)]=!![];}},{'key':_0x1f1f43(0x179),'value':function _0x49005b(_0x5309f8){var _0x9c827c=_0x1f1f43,_0x23ebf0=this;clearTimeout(this[_0x9c827c(0x107)]);if(!this['show']||!this['particleSystem'])return;this['primitives']['show']=![],this['refreshTimer']=setTimeout(function(){var _0x5164be=_0x9c827c;if(!_0x23ebf0['show'])return;_0x23ebf0[_0x5164be(0x127)]();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x5134c8(_0x15e82d){var _0x3384e6=_0x1f1f43;this[_0x3384e6(0x158)]=!![];}},{'key':'_onMouseMoveEvent','value':function _0x5d131f(_0x2fe1ef){var _0x29fba3=_0x1f1f43;if(!this['show']||!this['particleSystem'])return;this[_0x29fba3(0x158)]&&(this['primitives']['show']=![],this[_0x29fba3(0xfe)]=!![]);}},{'key':'_onMouseUpEvent','value':function _0x2c72a3(_0x4618a4){var _0x5b7cb9=_0x1f1f43;if(!this['show']||!this[_0x5b7cb9(0x196)])return;this['mouse_down']&&this[_0x5b7cb9(0xfe)]&&this['redraw'](),this['primitives'][_0x5b7cb9(0x183)]=!![],this['mouse_down']=![],this['mouse_move']=![];}},{'key':_0x1f1f43(0x127),'value':function _0x458636(){var _0x3b22bd=_0x1f1f43;if(!this[_0x3b22bd(0x13f)]||!this['show'])return;this[_0x3b22bd(0xf3)](),this[_0x3b22bd(0x196)][_0x3b22bd(0x18b)](this['viewerParameters']),this['primitives'][_0x3b22bd(0x183)]=!![];}},{'key':_0x1f1f43(0x101),'value':function _0x5ef449(_0x1de4b5){var _0x4287b1=_0x1f1f43;this['_data']=_0x1de4b5,this['particleSystem']&&this['particleSystem'][_0x4287b1(0x1a3)](),this['particleSystem']=new ParticleSystem(this['scene'][_0x4287b1(0x16f)],_0x1de4b5,this['getOptions'](),this['viewerParameters']),this['addPrimitives']();}},{'key':'_setOptionsHook','value':function _0xd92d18(_0x1a17da,_0x3f9b2f){var _0x4e7994=_0x1f1f43;if(_0x1a17da)for(var _0x3e5e9d in _0x1a17da){this[_0x3e5e9d]=_0x1a17da[_0x3e5e9d];}this['particleSystem']&&this['particleSystem']['setOptions'](this[_0x4e7994(0x157)]());}},{'key':_0x1f1f43(0x157),'value':function _0x104122(){var _0x1d7587=_0x1f1f43,_0x20a661=Math['ceil'](Math['sqrt'](this['particlesNumber']));return this['particlesNumber']=_0x20a661*_0x20a661,{'particlesTextureSize':_0x20a661,'maxParticles':this['particlesNumber'],'particleHeight':this['fixedHeight'],'fadeOpacity':this[_0x1d7587(0x18d)],'dropRate':this['dropRate'],'dropRateBump':this['dropRateBump'],'speedFactor':this['speedFactor'],'lineWidth':this['lineWidth'],'colors':this['colors']};}},{'key':'addPrimitives','value':function _0x19d7b4(){var _0x1640a1=_0x1f1f43;this['primitives']['add'](this['particleSystem'][_0x1640a1(0x15d)][_0x1640a1(0xcd)]['getWind']),this['primitives'][_0x1640a1(0x133)](this['particleSystem'][_0x1640a1(0x15d)]['primitives']['updateSpeed']),this['primitives'][_0x1640a1(0x133)](this['particleSystem']['particlesComputing']['primitives']['updatePosition']),this['primitives'][_0x1640a1(0x133)](this['particleSystem']['particlesComputing']['primitives']['postProcessingPosition']),this['primitives'][_0x1640a1(0x133)](this['particleSystem']['particlesComputing'][_0x1640a1(0xcd)][_0x1640a1(0x13b)]),this[_0x1640a1(0xcd)][_0x1640a1(0x133)](this[_0x1640a1(0x196)]['particlesRendering']['primitives']['segments']),this['primitives']['add'](this[_0x1640a1(0x196)]['particlesRendering'][_0x1640a1(0xcd)][_0x1640a1(0x16e)]),this[_0x1640a1(0xcd)][_0x1640a1(0x133)](this['particleSystem'][_0x1640a1(0x112)]['primitives']['screen']);}},{'key':'updateViewerParameters','value':function _0x42d68b(){var _0x41ff58=_0x1f1f43,_0x59849b=this['camera']['computeViewRectangle'](this['scene'][_0x41ff58(0x12f)][_0x41ff58(0xfd)]);if(!_0x59849b){var _0x541257=this['_map'][_0x41ff58(0x174)]();_0x59849b=Cesium$1['Rectangle'][_0x41ff58(0x178)](_0x541257[_0x41ff58(0x1b0)],_0x541257[_0x41ff58(0x165)],_0x541257[_0x41ff58(0x188)],_0x541257['ymax']);}var _0x2cca36=Util['viewRectangleToLonLatRange'](_0x59849b);this[_0x41ff58(0xc4)][_0x41ff58(0xc8)]['x']=_0x2cca36['lon']['min'],this['viewerParameters']['lonRange']['y']=_0x2cca36['lon']['max'],this['viewerParameters']['latRange']['x']=_0x2cca36[_0x41ff58(0x13a)]['min'],this['viewerParameters']['latRange']['y']=_0x2cca36['lat']['max'];var _0x6a33e=this[_0x41ff58(0x169)]['getPixelSize'](this['globeBoundingSphere'],this['scene']['drawingBufferWidth'],this['scene'][_0x41ff58(0x1b9)]);_0x6a33e>0x0&&(this['viewerParameters']['pixelSize']=_0x6a33e);}}]),_0x250aea;}(BaseLayer$1);function _0x4cc5(_0x424579,_0x440db7){var _0x34ba55=_0x34ba();return _0x4cc5=function(_0x4cc53a,_0x4329e0){_0x4cc53a=_0x4cc53a-0xc1;var _0x32dba1=_0x34ba55[_0x4cc53a];return _0x32dba1;},_0x4cc5(_0x424579,_0x440db7);}mars3d__namespace[_0x5a162f(0x170)][_0x5a162f(0x129)]('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){var _0x431aa0=_0x5a162f;function _0x1976ed(){var _0x331867=_0x4cc5;_classCallCheck(this,_0x1976ed),this[_0x331867(0x152)]=null,this[_0x331867(0x13a)]=null,this[_0x331867(0x1b7)]=null,this['tlat']=null,this['age']=null;}return _createClass(_0x1976ed,[{'key':_0x431aa0(0x1a3),'value':function _0x5e3ff7(){for(var _0x15db4c in this){delete this[_0x15db4c];}}}]),_0x1976ed;}()),CanvasWindField=(function(){var _0x2ba6d6=_0x5a162f;function _0xe26015(_0x299a18){_classCallCheck(this,_0xe26015),this['setOptions'](_0x299a18);}return _createClass(_0xe26015,[{'key':'speedRate','get':function _0x57ac30(){return this['_speedRate'];},'set':function _0x38a393(_0x740019){var _0x43af91=_0x4cc5;this[_0x43af91(0x10f)]=(0x64-(_0x740019>0x63?0x63:_0x740019))*0x64,this[_0x43af91(0x14e)]=[(this['xmax']-this[_0x43af91(0x1b0)])/this['_speedRate'],(this[_0x43af91(0xdc)]-this['ymin'])/this['_speedRate']];}},{'key':'maxAge','get':function _0x1d2762(){return this['_maxAge'];},'set':function _0x67642a(_0x2e9f7c){this['_maxAge']=_0x2e9f7c;}},{'key':_0x2ba6d6(0xe7),'value':function _0x56e92a(_0x2445e0){var _0x430aa6=_0x2ba6d6;this['options']=_0x2445e0,this['maxAge']=_0x2445e0[_0x430aa6(0xe2)]||0x78,this['speedRate']=_0x2445e0['speedRate']||0x32,this['particles']=[];var _0x278ab1=_0x2445e0['particlesNumber']||0x1000;for(var _0x111ec0=0x0;_0x111ec0<_0x278ab1;_0x111ec0++){var _0xb8a8a2=this['_randomParticle'](new CanvasParticle());this[_0x430aa6(0x121)]['push'](_0xb8a8a2);}}},{'key':'setDate','value':function _0x859261(_0x3cd2fb){var _0x551932=_0x2ba6d6;this[_0x551932(0x124)]=_0x3cd2fb['rows'],this['cols']=_0x3cd2fb[_0x551932(0x182)],this['xmin']=_0x3cd2fb[_0x551932(0x1b0)],this['xmax']=_0x3cd2fb[_0x551932(0x188)],this[_0x551932(0x165)]=_0x3cd2fb['ymin'],this[_0x551932(0xdc)]=_0x3cd2fb['ymax'],this['grid']=[];var _0x506a46=_0x3cd2fb['udata'],_0x5540c9=_0x3cd2fb[_0x551932(0x15e)],_0x332c2b=![];_0x506a46[_0x551932(0x130)]===this['rows']&&_0x506a46[0x0]['length']===this['cols']&&(_0x332c2b=!![]);var _0x10bae6=0x0,_0x39fabe=null,_0x219b92=null;for(var _0x4c2248=0x0;_0x4c2248<this[_0x551932(0x124)];_0x4c2248++){_0x39fabe=[];for(var _0x18ab60=0x0;_0x18ab60<this[_0x551932(0x182)];_0x18ab60++,_0x10bae6++){_0x332c2b?_0x219b92=this[_0x551932(0x15a)](_0x506a46[_0x4c2248][_0x18ab60],_0x5540c9[_0x4c2248][_0x18ab60]):_0x219b92=this[_0x551932(0x15a)](_0x506a46[_0x10bae6],_0x5540c9[_0x10bae6]),_0x39fabe['push'](_0x219b92);}this['grid']['push'](_0x39fabe);}this['options']['reverseY']&&this['grid'][_0x551932(0x1b3)]();}},{'key':'clear','value':function _0x47aef9(){var _0x578118=_0x2ba6d6;delete this['rows'],delete this['cols'],delete this[_0x578118(0x1b0)],delete this[_0x578118(0x188)],delete this[_0x578118(0x165)],delete this['ymax'],delete this['grid'],delete this['particles'];}},{'key':'toGridXY','value':function _0x3ad05d(_0x357412,_0x4e920f){var _0x23caea=_0x2ba6d6,_0x7b4715=(_0x357412-this['xmin'])/(this[_0x23caea(0x188)]-this[_0x23caea(0x1b0)])*(this['cols']-0x1),_0x2c52b3=(this['ymax']-_0x4e920f)/(this['ymax']-this['ymin'])*(this['rows']-0x1);return[_0x7b4715,_0x2c52b3];}},{'key':'getUVByXY','value':function _0x3298ed(_0x23a5cb,_0x4e2008){var _0x4672cf=_0x2ba6d6;if(_0x23a5cb<0x0||_0x23a5cb>=this['cols']||_0x4e2008>=this[_0x4672cf(0x124)])return[0x0,0x0,0x0];var _0x5ad0bd=Math[_0x4672cf(0xe3)](_0x23a5cb),_0x4ac934=Math['floor'](_0x4e2008);if(_0x5ad0bd===_0x23a5cb&&_0x4ac934===_0x4e2008)return this[_0x4672cf(0x145)][_0x4e2008][_0x23a5cb];var _0x4bbf9f=_0x5ad0bd+0x1,_0x1c0cbc=_0x4ac934+0x1,_0x5e4a8f=this['getUVByXY'](_0x5ad0bd,_0x4ac934),_0x18772f=this['getUVByXY'](_0x4bbf9f,_0x4ac934),_0x4467a2=this[_0x4672cf(0xca)](_0x5ad0bd,_0x1c0cbc),_0x503d95=this['getUVByXY'](_0x4bbf9f,_0x1c0cbc),_0x4ebe3b=null;try{_0x4ebe3b=this[_0x4672cf(0x15f)](_0x23a5cb-_0x5ad0bd,_0x4e2008-_0x4ac934,_0x5e4a8f,_0x18772f,_0x4467a2,_0x503d95);}catch(_0x1f6dd0){console[_0x4672cf(0x10b)](_0x23a5cb,_0x4e2008);}return _0x4ebe3b;}},{'key':'_bilinearInterpolation','value':function _0x3fdb97(_0x106124,_0x160b79,_0x2e5052,_0x2fbbbd,_0x4244f6,_0x272377){var _0x1869ce=0x1-_0x106124,_0x4801a6=0x1-_0x160b79,_0x48750f=_0x1869ce*_0x4801a6,_0x4ea309=_0x106124*_0x4801a6,_0xded291=_0x1869ce*_0x160b79,_0x81f90a=_0x106124*_0x160b79,_0xd971fb=_0x2e5052[0x0]*_0x48750f+_0x2fbbbd[0x0]*_0x4ea309+_0x4244f6[0x0]*_0xded291+_0x272377[0x0]*_0x81f90a,_0x9b19e5=_0x2e5052[0x1]*_0x48750f+_0x2fbbbd[0x1]*_0x4ea309+_0x4244f6[0x1]*_0xded291+_0x272377[0x1]*_0x81f90a;return this['_calcUV'](_0xd971fb,_0x9b19e5);}},{'key':_0x2ba6d6(0x15a),'value':function _0x1b3b41(_0x35858b,_0x5a5981){return[+_0x35858b,+_0x5a5981,Math['sqrt'](_0x35858b*_0x35858b+_0x5a5981*_0x5a5981)];}},{'key':_0x2ba6d6(0x167),'value':function _0xa99029(_0x1e447d,_0x4b1d93){var _0x39ce60=_0x2ba6d6;if(!this['isInExtent'](_0x1e447d,_0x4b1d93))return null;var _0x2be363=this['toGridXY'](_0x1e447d,_0x4b1d93),_0x5a58ec=this[_0x39ce60(0xca)](_0x2be363[0x0],_0x2be363[0x1]);return _0x5a58ec;}},{'key':'isInExtent','value':function _0x78e29e(_0x3b5aa4,_0x4163c){var _0x493a3e=_0x2ba6d6;return _0x3b5aa4>=this[_0x493a3e(0x1b0)]&&_0x3b5aa4<=this['xmax']&&_0x4163c>=this[_0x493a3e(0x165)]&&_0x4163c<=this[_0x493a3e(0xdc)]?!![]:![];}},{'key':'getRandomLatLng','value':function _0x564af8(){var _0x37347a=_0x2ba6d6,_0x447863=fRandomByfloat(this[_0x37347a(0x1b0)],this[_0x37347a(0x188)]),_0x3547bc=fRandomByfloat(this['ymin'],this['ymax']);return{'lat':_0x3547bc,'lng':_0x447863};}},{'key':'getParticles','value':function _0x1378c2(){var _0x3453f1=_0x2ba6d6,_0xbc05f5,_0x352f73,_0x5f2bfe;for(var _0x44b078=0x0,_0x505269=this['particles']['length'];_0x44b078<_0x505269;_0x44b078++){var _0x1bcd3a=this['particles'][_0x44b078];_0x1bcd3a[_0x3453f1(0x110)]<=0x0&&(_0x1bcd3a=this[_0x3453f1(0xf4)](_0x1bcd3a));if(_0x1bcd3a['age']>0x0){var _0x678312=_0x1bcd3a['tlng'],_0x2e2529=_0x1bcd3a['tlat'];_0x5f2bfe=this[_0x3453f1(0x167)](_0x678312,_0x2e2529),_0x5f2bfe?(_0xbc05f5=_0x678312+this[_0x3453f1(0x14e)][0x0]*_0x5f2bfe[0x0],_0x352f73=_0x2e2529+this['_calc_speedRate'][0x1]*_0x5f2bfe[0x1],_0x1bcd3a['lng']=_0x678312,_0x1bcd3a['lat']=_0x2e2529,_0x1bcd3a['tlng']=_0xbc05f5,_0x1bcd3a[_0x3453f1(0xd2)]=_0x352f73,_0x1bcd3a['age']--):_0x1bcd3a['age']=0x0;}}return this['particles'];}},{'key':_0x2ba6d6(0xf4),'value':function _0x386980(_0x42407){var _0x141c6c=_0x2ba6d6,_0x3a1f81,_0x159ad6;for(var _0x3f3116=0x0;_0x3f3116<0x1e;_0x3f3116++){_0x3a1f81=this['getRandomLatLng'](),_0x159ad6=this[_0x141c6c(0x167)](_0x3a1f81[_0x141c6c(0x152)],_0x3a1f81['lat']);if(_0x159ad6&&_0x159ad6[0x2]>0x0)break;}if(!_0x159ad6)return _0x42407;var _0x428843=_0x3a1f81[_0x141c6c(0x152)]+this['_calc_speedRate'][0x0]*_0x159ad6[0x0],_0xc46a65=_0x3a1f81['lat']+this['_calc_speedRate'][0x1]*_0x159ad6[0x1];return _0x42407[_0x141c6c(0x152)]=_0x3a1f81['lng'],_0x42407[_0x141c6c(0x13a)]=_0x3a1f81['lat'],_0x42407['tlng']=_0x428843,_0x42407['tlat']=_0xc46a65,_0x42407['age']=Math[_0x141c6c(0x1b2)](Math[_0x141c6c(0x1b6)]()*this['maxAge']),_0x42407;}},{'key':'destroy','value':function _0x23d5b1(){for(var _0x46be01 in this){delete this[_0x46be01];}}}]),_0xe26015;}());function fRandomByfloat(_0x2bf585,_0x29b55f){var _0x13e5f3=_0x5a162f;return _0x2bf585+Math[_0x13e5f3(0x1b6)]()*(_0x29b55f-_0x2bf585);}var Cesium=mars3d__namespace[_0x5a162f(0xdd)],BaseLayer=mars3d__namespace[_0x5a162f(0x117)][_0x5a162f(0x195)],CanvasWindLayer=function(_0x4241fa){var _0x236abd=_0x5a162f;_inherits(_0x5350c2,_0x4241fa);var _0x250882=_createSuper(_0x5350c2);function _0x5350c2(){var _0xa6adf2,_0x4b59c5=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x5350c2),_0xa6adf2=_0x250882['call'](this,_0x4b59c5),_0xa6adf2['_setOptionsHook'](_0x4b59c5),_0xa6adf2['canvas']=null,_0xa6adf2;}return _createClass(_0x5350c2,[{'key':'_setOptionsHook','value':function _0x2c8001(_0x2811a8,_0x5c69f6){var _0x285e57=_0x4cc5,_0x5046cb,_0x5475c2,_0x2d4c85;this[_0x285e57(0x190)]=0x3e8/(_0x2811a8['frameRate']||0xa),this[_0x285e57(0xd3)]=(_0x5046cb=this[_0x285e57(0xc6)]['pointerEvents'])!==null&&_0x5046cb!==void 0x0?_0x5046cb:![],this['color']=_0x2811a8['color']||'#ffffff',this['lineWidth']=_0x2811a8[_0x285e57(0x111)]||0x1,this['fixedHeight']=(_0x5475c2=_0x2811a8['fixedHeight'])!==null&&_0x5475c2!==void 0x0?_0x5475c2:0x0,this['reverseY']=(_0x2d4c85=_0x2811a8[_0x285e57(0x12a)])!==null&&_0x2d4c85!==void 0x0?_0x2d4c85:![],this[_0x285e57(0x1a6)]&&this[_0x285e57(0x1a6)][_0x285e57(0xe7)](_0x2811a8);}},{'key':'layer','get':function _0x16288c(){return this['canvas'];}},{'key':'canvasWidth','get':function _0x4e4954(){return this['_map']['scene']['canvas']['clientWidth'];}},{'key':'canvasHeight','get':function _0x560b88(){var _0x2f65ac=_0x4cc5;return this[_0x2f65ac(0x13f)]['scene']['canvas'][_0x2f65ac(0x16c)];}},{'key':'pointerEvents','get':function _0x4efc47(){return this['_pointerEvents'];},'set':function _0x1aac04(_0x38ffeb){var _0x59cbcc=_0x4cc5;this['_pointerEvents']=_0x38ffeb;if(!this['canvas'])return;_0x38ffeb?this['canvas']['style'][_0x59cbcc(0x1b5)]=_0x59cbcc(0x104):this[_0x59cbcc(0x148)][_0x59cbcc(0xe9)][_0x59cbcc(0x1b5)]='none';}},{'key':'particlesNumber','get':function _0xc08b5(){var _0xf0f6fd=_0x4cc5;return this[_0xf0f6fd(0xc6)]['particlesNumber'];},'set':function _0x2e84c9(_0xc00870){var _0x224aa8=_0x4cc5,_0x49e062=this;this['options'][_0x224aa8(0xf8)]=_0xc00870,clearTimeout(this[_0x224aa8(0x19a)]),this['_canrefresh']=setTimeout(function(){var _0x21b4aa=_0x224aa8;_0x49e062[_0x21b4aa(0x127)]();},0x1f4);}},{'key':'speedRate','get':function _0x3eb646(){return this['options']['speedRate'];},'set':function _0x3e7f5f(_0x929dbd){this['options']['speedRate']=_0x929dbd,this['windField']&&(this['windField']['speedRate']=_0x929dbd);}},{'key':_0x236abd(0xe2),'get':function _0x643f2e(){return this['options']['maxAge'];},'set':function _0x2f781c(_0x4afecf){var _0x441dba=_0x236abd;this['options'][_0x441dba(0xe2)]=_0x4afecf,this['windField']&&(this[_0x441dba(0x1a6)][_0x441dba(0xe2)]=_0x4afecf);}},{'key':'data','get':function _0xb85ac3(){return this['windData'];},'set':function _0x2e104f(_0x57c7f0){this['setData'](_0x57c7f0);}},{'key':'_showHook','value':function _0x414aff(_0x4a4135){var _0x1d6460=_0x236abd;_0x4a4135?this['_addedHook']():(this[_0x1d6460(0x116)]&&(this['options'][_0x1d6460(0x123)]=this['windData']),this['_removedHook']());}},{'key':_0x236abd(0xf2),'value':function _0x135ffe(){var _0x3d58e2=_0x236abd;this[_0x3d58e2(0xc6)][_0x3d58e2(0x12e)]?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}},{'key':_0x236abd(0x146),'value':function _0x4a4881(){var _0x23a235=_0x236abd;this[_0x23a235(0x148)]=this['_createCanvas'](),this['canvasContext']=this['canvas']['getContext']('2d',{'willReadFrequently':!![]}),this[_0x23a235(0x1a2)](),this[_0x23a235(0xc6)]['data']&&this['setData'](this[_0x23a235(0xc6)]['data']);}},{'key':_0x236abd(0x18c),'value':function _0x2bd15d(){var _0x52043e=_0x236abd;this['clear'](),this['unbindEvent'](),this['canvas']&&(this['_map'][_0x52043e(0x16a)][_0x52043e(0x11a)](this['canvas']),delete this['canvas']);}},{'key':_0x236abd(0xda),'value':function _0x23952a(){var _0x3f5673=_0x236abd,_0x1db842=document['createElement'](_0x3f5673(0x148));_0x1db842[_0x3f5673(0xe9)]['position']='absolute',_0x1db842['style']['top']='0px',_0x1db842[_0x3f5673(0xe9)]['left']=_0x3f5673(0xd8),_0x1db842['style'][_0x3f5673(0xd9)]='100%',_0x1db842['style']['height']='100%',_0x1db842['style']['pointerEvents']=this[_0x3f5673(0xd3)]?_0x3f5673(0x10a):'none',_0x1db842[_0x3f5673(0xe9)]['zIndex']=0xa,_0x1db842['setAttribute']('id','canvasWindy'),_0x1db842['setAttribute'](_0x3f5673(0x128),_0x3f5673(0xd1)),this['_map']['container'][_0x3f5673(0x164)](_0x1db842);var _0x41e46b=this[_0x3f5673(0x13f)]['scene'];return _0x1db842[_0x3f5673(0xd9)]=_0x41e46b['canvas']['clientWidth'],_0x1db842['height']=_0x41e46b['canvas']['clientHeight'],_0x1db842;}},{'key':_0x236abd(0x16d),'value':function _0x463376(){var _0x547f00=_0x236abd;this['canvas']&&(this[_0x547f00(0x148)]['width']=this['canvasWidth'],this['canvas']['height']=this['canvasHeight']);}},{'key':'bindEvent','value':function _0x390a19(){var _0xab1120=_0x236abd,_0x11b536=this,_0x1653a0=Date[_0xab1120(0xec)]();(function _0x3c13d0(){var _0x27263b=_0xab1120;_0x11b536['animateFrame']=window[_0x27263b(0xf1)](_0x3c13d0);if(_0x11b536['show']&&_0x11b536[_0x27263b(0x1a6)]){var _0x11fd99=Date['now'](),_0x3604be=_0x11fd99-_0x1653a0;_0x3604be>_0x11b536['frameTime']&&(_0x1653a0=_0x11fd99-_0x3604be%_0x11b536['frameTime'],_0x11b536['update']());}}(),window['addEventListener'](_0xab1120(0x16d),this[_0xab1120(0x16d)]['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType'][_0xab1120(0xfa)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0xab1120(0xd0)],this['_onMouseDownEvent'],this),this[_0xab1120(0x13f)]['on'](mars3d__namespace['EventType']['mouseUp'],this[_0xab1120(0x19f)],this)));}},{'key':'unbindEvent','value':function _0x1613f8(){var _0x1056ba=_0x236abd;window['cancelAnimationFrame'](this['animateFrame']),delete this['animateFrame'],window['removeEventListener'](_0x1056ba(0x16d),this['resize']),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace[_0x1056ba(0xc9)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this[_0x1056ba(0x19f)],this),this['_map'][_0x1056ba(0xed)](mars3d__namespace[_0x1056ba(0xc9)]['mouseMove'],this['_onMouseMoveEvent'],this));}},{'key':'_onMapWhellEvent','value':function _0x2f07a4(_0x42b130){var _0x3ef18e=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas']['style']['visibility']='hidden',this['refreshTimer']=setTimeout(function(){var _0x2b2209=_0x4cc5;if(!_0x3ef18e['show'])return;_0x3ef18e[_0x2b2209(0x127)](),_0x3ef18e[_0x2b2209(0x148)]['style']['visibility']='visible';},0xc8);}},{'key':_0x236abd(0x176),'value':function _0x46d293(_0x1551fc){var _0x513572=_0x236abd;this[_0x513572(0x158)]=!![],this['_map'][_0x513572(0xed)](mars3d__namespace[_0x513572(0xc9)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x513572(0x13f)]['on'](mars3d__namespace[_0x513572(0xc9)][_0x513572(0xc2)],this['_onMouseMoveEvent'],this);}},{'key':'_onMouseMoveEvent','value':function _0x3bf68c(_0x54e3bc){var _0x124498=_0x236abd;if(!this['show']||!this['canvas'])return;this['mouse_down']&&(this[_0x124498(0x148)]['style'][_0x124498(0x100)]='hidden',this[_0x124498(0xfe)]=!![]);}},{'key':'_onMouseUpEvent','value':function _0x2c4bc7(_0x3c520d){var _0x18e9ad=_0x236abd;if(!this['show']||!this['canvas'])return;this['_map'][_0x18e9ad(0xed)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this[_0x18e9ad(0x148)]['style'][_0x18e9ad(0x100)]='visible',this['mouse_down']=![],this['mouse_move']=![];}},{'key':_0x236abd(0x101),'value':function _0x412236(_0x47d051){var _0x38cd3d=_0x236abd;this['clear'](),this['windData']=_0x47d051,this['windField'][_0x38cd3d(0x18a)](_0x47d051),this['redraw']();}},{'key':'redraw','value':function _0x22c52b(){var _0x43c1e4=_0x236abd;if(!this['show'])return;this['windField'][_0x43c1e4(0xe7)](this['options']),this['update']();}},{'key':'update','value':function _0x12c60e(){var _0x317dd4=_0x236abd;if(this[_0x317dd4(0xe0)])return;this['_updateIng']=!![];if(this[_0x317dd4(0x12e)])this['windField']['update']();else{var _0x3e6588=this[_0x317dd4(0x1a6)]['getParticles']();this[_0x317dd4(0xdb)](_0x3e6588);}this['_updateIng']=![];}},{'key':'_drawLines','value':function _0x2bdc3d(_0x1662d1){var _0x28caee=_0x236abd;this['canvasContext']['globalCompositeOperation']='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x28caee(0x118)]),this['canvasContext']['globalCompositeOperation']='lighter',this[_0x28caee(0x1a8)]['globalAlpha']=0.9,this['canvasContext']['beginPath'](),this[_0x28caee(0x1a8)]['lineWidth']=this[_0x28caee(0x111)],this['canvasContext'][_0x28caee(0x14f)]=this['color'];var _0x12f381=this['_map']['scene']['mode']!==Cesium[_0x28caee(0x14c)]['SCENE3D'];for(var _0x5cf12e=0x0,_0x24851c=_0x1662d1[_0x28caee(0x130)];_0x5cf12e<_0x24851c;_0x5cf12e++){var _0x113c9f=_0x1662d1[_0x5cf12e],_0x4b1944=this['_tomap'](_0x113c9f['lng'],_0x113c9f['lat'],_0x113c9f),_0x33659f=this['_tomap'](_0x113c9f['tlng'],_0x113c9f['tlat'],_0x113c9f);if(!_0x4b1944||!_0x33659f)continue;if(_0x12f381&&Math['abs'](_0x4b1944[0x0]-_0x33659f[0x0])>=this['canvasWidth'])continue;this['canvasContext']['moveTo'](_0x4b1944[0x0],_0x4b1944[0x1]),this['canvasContext']['lineTo'](_0x33659f[0x0],_0x33659f[0x1]);}this[_0x28caee(0x1a8)][_0x28caee(0x1a5)]();}},{'key':_0x236abd(0x113),'value':function _0x49696f(_0x137d8d,_0x1bb5a9,_0x21b93f){var _0x1ac9fc=_0x236abd,_0x5a6589=Cesium[_0x1ac9fc(0xe8)]['fromDegrees'](_0x137d8d,_0x1bb5a9,this['fixedHeight']),_0x5ad7b7=this[_0x1ac9fc(0x13f)]['scene'];if(_0x5ad7b7['mode']===Cesium['SceneMode']['SCENE3D']){var _0x5570b8=new Cesium[(_0x1ac9fc(0x19e))](_0x5ad7b7['globe']['ellipsoid'],_0x5ad7b7[_0x1ac9fc(0x169)]['positionWC']),_0x5b3a40=_0x5570b8['isPointVisible'](_0x5a6589);if(!_0x5b3a40)return _0x21b93f['age']=0x0,null;}var _0x315b4c=Cesium[_0x1ac9fc(0x108)]['wgs84ToWindowCoordinates'](this['_map']['scene'],_0x5a6589);return _0x315b4c?[_0x315b4c['x'],_0x315b4c['y']]:null;}},{'key':'clear','value':function _0x157764(){var _0x477cab=_0x236abd;this[_0x477cab(0x1a6)]['clear'](),delete this[_0x477cab(0x116)];}},{'key':'initWorker','value':function _0x5bab1a(){var _0x455a84=_0x236abd,_0x4848a7=this;this['worker']=new Worker(this[_0x455a84(0xc6)][_0x455a84(0x12e)]),this['worker']['onmessage']=function(_0x3ef531){_0x4848a7['_drawLines'](_0x3ef531['data']['particles']),_0x4848a7['_updateIng2']=![];},this['windField']={'init':function _0x5ee940(_0x2ffcea){var _0x397ebc=_0x455a84;_0x4848a7[_0x397ebc(0x12e)]['postMessage']({'type':'init','options':_0x2ffcea});},'setOptions':function _0x3683ab(_0x19f407){var _0x16ba15=_0x455a84;_0x4848a7['worker'][_0x16ba15(0x17b)]({'type':_0x16ba15(0xe7),'options':_0x19f407});},'setDate':function _0x49e739(_0x1aeb2f){var _0x503ff1=_0x455a84;_0x4848a7[_0x503ff1(0x12e)]['postMessage']({'type':_0x503ff1(0x18a),'data':_0x1aeb2f});},'update':function _0x27033e(){var _0x468db5=_0x455a84;if(_0x4848a7['_updateIng2'])return;_0x4848a7['_updateIng2']=!![],_0x4848a7['worker']['postMessage']({'type':_0x468db5(0xea)});},'clear':function _0x458231(){_0x4848a7['worker']['postMessage']({'type':'clear'});}},this['windField'][_0x455a84(0x17f)](this['options']);}}]),_0x5350c2;}(BaseLayer);mars3d__namespace['LayerUtil']['register'](_0x5a162f(0x135),CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x5a162f(0xe6)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x5a162f(0x1a1)]=WindUtil,Object['defineProperty'](exports,'__esModule',{'value':!![]});
15
15
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.4.19",
3
+ "version": "3.4.20",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "dist/mars3d-wind.js",
6
6
  "files": [
@@ -8,7 +8,7 @@
8
8
  ],
9
9
  "dependencies": {},
10
10
  "devDependencies": {
11
- "mars3d": "~3.4.19"
11
+ "mars3d": "~3.4.20"
12
12
  },
13
13
  "scripts": {
14
14
  "lint": "eslint ./src/**/*.{js,ts} --fix"