mars3d-wind 3.4.21 → 3.4.23

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.21
5
- * 编译日期:2023-01-17 20:42:48
4
+ * 版本信息:v3.4.23
5
+ * 编译日期:2023-02-20 17:11:20
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 _0x521b0e=_0x4fd8;(function(_0x163a72,_0x2b63bc){var _0xf5419c=_0x4fd8,_0x1e327e=_0x163a72();while(!![]){try{var _0x42cc9a=-parseInt(_0xf5419c(0x1d2))/0x1*(-parseInt(_0xf5419c(0x242))/0x2)+parseInt(_0xf5419c(0x199))/0x3*(-parseInt(_0xf5419c(0x1db))/0x4)+-parseInt(_0xf5419c(0x224))/0x5*(-parseInt(_0xf5419c(0x16b))/0x6)+-parseInt(_0xf5419c(0x18c))/0x7+-parseInt(_0xf5419c(0x1ff))/0x8+-parseInt(_0xf5419c(0x251))/0x9+-parseInt(_0xf5419c(0x1bc))/0xa*(-parseInt(_0xf5419c(0x192))/0xb);if(_0x42cc9a===_0x2b63bc)break;else _0x1e327e['push'](_0x1e327e['shift']());}catch(_0x1b13a3){_0x1e327e['push'](_0x1e327e['shift']());}}}(_0x2bab,0xb08bd));function _interopNamespace(_0xebf88d){var _0x2f67dc=_0x4fd8;if(_0xebf88d&&_0xebf88d['__esModule'])return _0xebf88d;var _0x14e2c2=Object['create'](null);return _0xebf88d&&Object[_0x2f67dc(0x1e6)](_0xebf88d)['forEach'](function(_0x41eea7){if(_0x41eea7!=='default'){var _0x20224a=Object['getOwnPropertyDescriptor'](_0xebf88d,_0x41eea7);Object['defineProperty'](_0x14e2c2,_0x41eea7,_0x20224a['get']?_0x20224a:{'enumerable':!![],'get':function(){return _0xebf88d[_0x41eea7];}});}}),_0x14e2c2[_0x2f67dc(0x176)]=_0xebf88d,_0x14e2c2;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x264768,_0x25574f){var _0x4ee3c3=_0x4fd8,_0x208c9e=_0x264768*Math['cos'](Cesium$7[_0x4ee3c3(0x204)]['toRadians'](_0x25574f));return _0x208c9e;}function getV(_0x273929,_0x3909d7){var _0x2744ce=_0x273929*Math['sin'](Cesium$7['Math']['toRadians'](_0x3909d7));return _0x2744ce;}function getSpeed(_0x42c72a,_0x4208b7){var _0xb0d4b4=Math['sqrt'](Math['pow'](_0x42c72a,0x2)+Math['pow'](_0x4208b7,0x2));return _0xb0d4b4;}function getDirection(_0x3e8664,_0x330771){var _0x2b41f1=_0x4fd8,_0x88f2d4=Cesium$7['Math'][_0x2b41f1(0x23e)](Math[_0x2b41f1(0x254)](_0x330771,_0x3e8664));return _0x88f2d4+=_0x88f2d4<0x0?0x168:0x0,_0x88f2d4;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x4f56e7,_0x3559eb){var _0x2e7814=_0x4fd8,_0x11727c=Object[_0x2e7814(0x1e6)](_0x4f56e7);if(Object['getOwnPropertySymbols']){var _0x150e92=Object[_0x2e7814(0x1d3)](_0x4f56e7);_0x3559eb&&(_0x150e92=_0x150e92['filter'](function(_0x56534d){var _0x12c723=_0x2e7814;return Object[_0x12c723(0x1c3)](_0x4f56e7,_0x56534d)[_0x12c723(0x21b)];})),_0x11727c['push'][_0x2e7814(0x243)](_0x11727c,_0x150e92);}return _0x11727c;}function _objectSpread2(_0x20228c){var _0x46bb62=_0x4fd8;for(var _0x334e8a=0x1;_0x334e8a<arguments[_0x46bb62(0x1e2)];_0x334e8a++){var _0x18d3fa=null!=arguments[_0x334e8a]?arguments[_0x334e8a]:{};_0x334e8a%0x2?ownKeys(Object(_0x18d3fa),!0x0)['forEach'](function(_0x325aea){_defineProperty(_0x20228c,_0x325aea,_0x18d3fa[_0x325aea]);}):Object['getOwnPropertyDescriptors']?Object[_0x46bb62(0x1cb)](_0x20228c,Object['getOwnPropertyDescriptors'](_0x18d3fa)):ownKeys(Object(_0x18d3fa))[_0x46bb62(0x24b)](function(_0x509afa){var _0x3dac36=_0x46bb62;Object['defineProperty'](_0x20228c,_0x509afa,Object[_0x3dac36(0x1c3)](_0x18d3fa,_0x509afa));});}return _0x20228c;}function _classCallCheck(_0x3286bc,_0x3e9257){if(!(_0x3286bc instanceof _0x3e9257))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x2bab(){var _0x3a5a5f=['undefined','framebuffer','tlng','umin','canrefresh','Pass','addPrimitives','frameTime','_addedHook','SceneTransforms','fromGeometry','show','mouseMove','absolute','windTextures','canvas','particles','7583344ZXpaqR','canvasWidth','commandToExecute','maxParticles','resize','Math','constructor','_onMap_preRenderEvent','Map','options','removeEventListener','wheel','_calc_speedRate','sham','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','uniformMap','ShaderSource','PrimitiveType','textures','configurable','lev','blue','particlesRendering','latRange','ZERO','depthTest','none','currentTrails','enumerable','onmessage','PixelDatatype','TWO_PI','Appearance','now','age','_map','randomizeParticles','2110aUkHmZ','register','Compute','getOptions','randomBetween','update','random','cols','primitives','_removedHook','lng','createComputingPrimitives','left','Cartesian3','height','rows','mode','ymax','setData','fillRect','width','GeometryAttribute','BufferUsage','bind','vmax','EllipsoidalOccluder','toDegrees','updateViewerParameters','redraw','createElement','24xqnSQT','apply','_onMouseMoveEvent','OPAQUE','nextParticlesSpeed','removeChild','_canrefresh','vertexShaderSource','abs','forEach','_onMapWhellEvent','getFullscreenQuad','setPrototypeOf','particleHeight','color','12743730ncQMGp','0px','clear','atan2','globalAlpha','dimensions','globalCompositeOperation','container','key','mouseDown','camera','value','_pointerEvents','viewRectangleToLonLatRange','min','postProcessingPosition','rgb(206,255,255)','colorTable','mouse_down','ALWAYS','createWindTextures','Cesium','_speedRate','_onMouseDownEvent','10062UNnrdN','attributeLocations','xmin','Cartesian2','DEPTH_COMPONENT','setOptions','particlesNumber','strokeStyle','Color','windData','style','default','globeBoundingSphere','colors','nextTrails','dropRate','WindLayer','from','push','destroy','object','canvasResize','xmax','Framebuffer','PrimitiveCollection','north','nextTrailsColor','construct','fromDegrees','ymin','particlesWind','vdata','pointerEvents','8600473Dnjmtg','createFramebuffer','100%','lon','context','worker','11YnsKmk','scene','_drawLines','defined','RGBA','trails','SCENE3D','1827SgsbGy','rawRenderState','clearCommand','lineWidth','segments','particlesComputing','TRIANGLES','requestAnimationFrame','maxAge','particlesTextureSize','wind','Draw','vertexArray','_randomParticle','viewerParameters','lat','windField','animateFrame','fadeOpacity','umax','clampToLatitudeRange','appendChild','createCommand','_data','data','canvasHeight','CanvasWindField','pixelSize','currentParticlesPosition','_onMouseUpEvent','slice','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}','THREE_PI_OVER_TWO','postProcessingSpeed','tlat','43302970bnGBkB','BoundingSphere','globe','unbindEvent','layer','drawingBufferHeight','EventType','getOwnPropertyDescriptor','preExecute','TextureMagnificationFilter','_tomap','particleSystem','speedFactor','ShaderProgram','visible','defineProperties','framebuffers','toGridXY','createRawRenderState','getUVByXY','max','_calcUV','38819azbaqR','getOwnPropertySymbols','particlesTextures','defineProperty','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}','createTexture','FLOAT','clientWidth','mouseUp','7804bFViyu','udata','canvasContext','array','_setOptionsHook','WindUtil','GeometryAttributes','length','SceneMode','autoClear','createRenderingTextures','keys','mod','setDate','ClearCommand','initWorker','refreshTimer','reverse','_mountedHook'];_0x2bab=function(){return _0x3a5a5f;};return _0x2bab();}function _defineProperties(_0x5e41a5,_0x2b0f3b){var _0x537ded=_0x4fd8;for(var _0xe81942=0x0;_0xe81942<_0x2b0f3b['length'];_0xe81942++){var _0x4d4ee7=_0x2b0f3b[_0xe81942];_0x4d4ee7['enumerable']=_0x4d4ee7['enumerable']||![],_0x4d4ee7[_0x537ded(0x212)]=!![];if(_0x537ded(0x15e)in _0x4d4ee7)_0x4d4ee7['writable']=!![];Object[_0x537ded(0x1d5)](_0x5e41a5,_0x4d4ee7[_0x537ded(0x15b)],_0x4d4ee7);}}function _createClass(_0x12da64,_0x15298d,_0x38622c){if(_0x15298d)_defineProperties(_0x12da64['prototype'],_0x15298d);if(_0x38622c)_defineProperties(_0x12da64,_0x38622c);return Object['defineProperty'](_0x12da64,'prototype',{'writable':![]}),_0x12da64;}function _defineProperty(_0x5184e1,_0x2132d3,_0x134352){var _0x3c681e=_0x4fd8;return _0x2132d3 in _0x5184e1?Object[_0x3c681e(0x1d5)](_0x5184e1,_0x2132d3,{'value':_0x134352,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x5184e1[_0x2132d3]=_0x134352,_0x5184e1;}function _inherits(_0x5512a1,_0x312e34){if(typeof _0x312e34!=='function'&&_0x312e34!==null)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x5512a1['prototype']=Object['create'](_0x312e34&&_0x312e34['prototype'],{'constructor':{'value':_0x5512a1,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x5512a1,'prototype',{'writable':![]});if(_0x312e34)_setPrototypeOf(_0x5512a1,_0x312e34);}function _getPrototypeOf(_0x12ff55){var _0x272c97=_0x4fd8;return _getPrototypeOf=Object[_0x272c97(0x24e)]?Object['getPrototypeOf']['bind']():function _0x1ca628(_0x9fd765){return _0x9fd765['__proto__']||Object['getPrototypeOf'](_0x9fd765);},_getPrototypeOf(_0x12ff55);}function _setPrototypeOf(_0x463038,_0x4aef33){var _0x232faa=_0x4fd8;return _setPrototypeOf=Object[_0x232faa(0x24e)]?Object['setPrototypeOf'][_0x232faa(0x23b)]():function _0x5b5e45(_0x32ebc6,_0x3e0308){return _0x32ebc6['__proto__']=_0x3e0308,_0x32ebc6;},_setPrototypeOf(_0x463038,_0x4aef33);}function _isNativeReflectConstruct(){var _0x215db2=_0x4fd8;if(typeof Reflect===_0x215db2(0x1ee)||!Reflect['construct'])return![];if(Reflect['construct'][_0x215db2(0x20c)])return![];if(typeof Proxy==='function')return!![];try{return Boolean['prototype']['valueOf']['call'](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x549d89){return![];}}function _assertThisInitialized(_0x4f6230){if(_0x4f6230===void 0x0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x4f6230;}function _possibleConstructorReturn(_0x3a7764,_0x20afa2){var _0x4aa6d9=_0x4fd8;if(_0x20afa2&&(typeof _0x20afa2===_0x4aa6d9(0x17f)||typeof _0x20afa2==='function'))return _0x20afa2;else{if(_0x20afa2!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x3a7764);}function _createSuper(_0x387abd){var _0x5cbd24=_isNativeReflectConstruct();return function _0x5d78e8(){var _0x139dba=_0x4fd8,_0x59468c=_getPrototypeOf(_0x387abd),_0x38b59b;if(_0x5cbd24){var _0x570c57=_getPrototypeOf(this)['constructor'];_0x38b59b=Reflect[_0x139dba(0x186)](_0x59468c,arguments,_0x570c57);}else _0x38b59b=_0x59468c['apply'](this,arguments);return _possibleConstructorReturn(this,_0x38b59b);};}function _toConsumableArray(_0x3f10b5){return _arrayWithoutHoles(_0x3f10b5)||_iterableToArray(_0x3f10b5)||_unsupportedIterableToArray(_0x3f10b5)||_nonIterableSpread();}function _arrayWithoutHoles(_0x42014f){if(Array['isArray'](_0x42014f))return _arrayLikeToArray(_0x42014f);}function _iterableToArray(_0x388d50){var _0x55ccbf=_0x4fd8;if(typeof Symbol!==_0x55ccbf(0x1ee)&&_0x388d50[Symbol['iterator']]!=null||_0x388d50['@@iterator']!=null)return Array[_0x55ccbf(0x17c)](_0x388d50);}function _unsupportedIterableToArray(_0x11510d,_0x291966){var _0x106f85=_0x4fd8;if(!_0x11510d)return;if(typeof _0x11510d==='string')return _arrayLikeToArray(_0x11510d,_0x291966);var _0x196095=Object['prototype']['toString']['call'](_0x11510d)[_0x106f85(0x1b7)](0x8,-0x1);if(_0x196095==='Object'&&_0x11510d['constructor'])_0x196095=_0x11510d[_0x106f85(0x205)]['name'];if(_0x196095===_0x106f85(0x207)||_0x196095==='Set')return Array[_0x106f85(0x17c)](_0x11510d);if(_0x196095==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x196095))return _arrayLikeToArray(_0x11510d,_0x291966);}function _arrayLikeToArray(_0x5d4ade,_0x4a38a5){if(_0x4a38a5==null||_0x4a38a5>_0x5d4ade['length'])_0x4a38a5=_0x5d4ade['length'];for(var _0x36097e=0x0,_0x98f63b=new Array(_0x4a38a5);_0x36097e<_0x4a38a5;_0x36097e++)_0x98f63b[_0x36097e]=_0x5d4ade[_0x36097e];return _0x98f63b;}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 _0x4eaf6c=_0x4fd8;function _0x472bda(_0x276de7){var _0x18831a=_0x4fd8,_0xc32c9c;_classCallCheck(this,_0x472bda),this['commandType']=_0x276de7['commandType'],this['geometry']=_0x276de7['geometry'],this['attributeLocations']=_0x276de7[_0x18831a(0x16c)],this['primitiveType']=_0x276de7['primitiveType'],this['uniformMap']=_0x276de7['uniformMap'],this['vertexShaderSource']=_0x276de7['vertexShaderSource'],this['fragmentShaderSource']=_0x276de7['fragmentShaderSource'],this['rawRenderState']=_0x276de7['rawRenderState'],this['framebuffer']=_0x276de7['framebuffer'],this['outputTexture']=_0x276de7['outputTexture'],this['autoClear']=(_0xc32c9c=_0x276de7['autoClear'])!==null&&_0xc32c9c!==void 0x0?_0xc32c9c:![],this['preExecute']=_0x276de7[_0x18831a(0x1c4)],this['show']=!![],this['commandToExecute']=undefined,this[_0x18831a(0x19b)]=undefined,this[_0x18831a(0x1e4)]&&(this['clearCommand']=new Cesium$6[(_0x18831a(0x1e9))]({'color':new Cesium$6[(_0x18831a(0x173))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x18831a(0x1ef)],'pass':Cesium$6[_0x18831a(0x1f3)]['OPAQUE']}));}return _createClass(_0x472bda,[{'key':'createCommand','value':function _0x10c251(_0x249d65){var _0x3ea939=_0x4fd8;switch(this['commandType']){case'Draw':{var _0x171aa6=Cesium$6['VertexArray'][_0x3ea939(0x1f8)]({'context':_0x249d65,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']}),_0x590492=Cesium$6[_0x3ea939(0x1c9)]['fromCache']({'context':_0x249d65,'attributeLocations':this[_0x3ea939(0x16c)],'vertexShaderSource':this[_0x3ea939(0x249)],'fragmentShaderSource':this['fragmentShaderSource']}),_0x156c9c=Cesium$6['RenderState']['fromCache'](this[_0x3ea939(0x19a)]);return new Cesium$6['DrawCommand']({'primitiveType':this['primitiveType'],'shaderProgram':_0x590492,'vertexArray':_0x171aa6,'modelMatrix':Cesium$6['Matrix4']['IDENTITY'],'renderState':_0x156c9c,'uniformMap':this[_0x3ea939(0x20e)],'castShadows':![],'receiveShadows':![],'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass']['OPAQUE'],'pickOnly':!![],'owner':this});}case'Compute':{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this[_0x3ea939(0x20e)],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':'setGeometry','value':function _0x152a5d(_0x325f3b,_0x31e76e){this['geometry']=_0x31e76e;var _0x168164=Cesium$6['VertexArray']['fromGeometry']({'context':_0x325f3b,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']});this['commandToExecute']['vertexArray']=_0x168164;}},{'key':'update','value':function _0x4c2811(_0x210f34){var _0x1f5ad3=_0x4fd8;if(!this['show'])return;if(_0x210f34[_0x1f5ad3(0x234)]!==Cesium$6[_0x1f5ad3(0x1e3)]['SCENE3D'])return;!Cesium$6['defined'](this[_0x1f5ad3(0x201)])&&(this['commandToExecute']=this[_0x1f5ad3(0x1af)](_0x210f34[_0x1f5ad3(0x190)])),Cesium$6[_0x1f5ad3(0x195)](this[_0x1f5ad3(0x1c4)])&&this[_0x1f5ad3(0x1c4)](),Cesium$6['defined'](this['clearCommand'])&&_0x210f34['commandList']['push'](this['clearCommand']),_0x210f34['commandList']['push'](this['commandToExecute']);}},{'key':'isDestroyed','value':function _0x3a659e(){return![];}},{'key':_0x4eaf6c(0x17e),'value':function _0x54fc0d(){var _0x1b4354=_0x4eaf6c;if(this['clearCommand']){var _0x3575d0,_0x46a34c;(_0x3575d0=this['clearCommand'])!==null&&_0x3575d0!==void 0x0&&_0x3575d0['vertexArray']&&this[_0x1b4354(0x19b)][_0x1b4354(0x1a5)]['destroy'](),(_0x46a34c=this['clearCommand'])!==null&&_0x46a34c!==void 0x0&&_0x46a34c['shaderProgram']&&this['clearCommand']['shaderProgram']['destroy'](),delete this['clearCommand'];}return this['commandToExecute']&&(this['commandToExecute'][_0x1b4354(0x1a5)]&&this['commandToExecute'][_0x1b4354(0x1a5)]['destroy'](),this[_0x1b4354(0x201)]['shaderProgram']&&this[_0x1b4354(0x201)]['shaderProgram']['destroy'](),delete this[_0x1b4354(0x201)]),Cesium$6['destroyObject'](this);}}]),_0x472bda;}()),Cesium$5=mars3d__namespace['Cesium'],Util=(function(){var _0x224bd8=function _0x2b2db0(){var _0x33554e=_0x4fd8,_0x9fe4d5=new Cesium$5['Geometry']({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5[(_0x33554e(0x239))]({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x9fe4d5;},_0x4f2f70=function _0x38eaac(_0x486682,_0x18c12d){var _0x12cd3a=_0x4fd8;if(Cesium$5[_0x12cd3a(0x195)](_0x18c12d)){var _0x2034bb={};_0x2034bb['arrayBufferView']=_0x18c12d,_0x486682['source']=_0x2034bb;}var _0x4b1acd=new Cesium$5['Texture'](_0x486682);return _0x4b1acd;},_0x4c8a92=function _0x1fb82e(_0x2fac26,_0x30ba33,_0x2c4de3){var _0x526f9a=_0x4fd8,_0x5e06b6=new Cesium$5[(_0x526f9a(0x182))]({'context':_0x2fac26,'colorTextures':[_0x30ba33],'depthTexture':_0x2c4de3});return _0x5e06b6;},_0x516a14=function _0x47abac(_0x5c03f7){var _0x3dffce=_0x4fd8,_0x2b13d8=!![],_0x5dbc69=![],_0x5247e3={'viewport':_0x5c03f7['viewport'],'depthTest':_0x5c03f7[_0x3dffce(0x218)],'depthMask':_0x5c03f7['depthMask'],'blending':_0x5c03f7['blending']},_0x26282c=Cesium$5[_0x3dffce(0x21f)]['getDefaultRenderState'](_0x2b13d8,_0x5dbc69,_0x5247e3);return _0x26282c;},_0x29e2de=function _0x4de79a(_0x37c73d){var _0x28dbdb=_0x4fd8,_0x16060b={},_0x107242=Cesium$5[_0x28dbdb(0x204)]['mod'](_0x37c73d['west'],Cesium$5[_0x28dbdb(0x204)]['TWO_PI']),_0x467b19=Cesium$5[_0x28dbdb(0x204)][_0x28dbdb(0x1e7)](_0x37c73d['east'],Cesium$5[_0x28dbdb(0x204)][_0x28dbdb(0x21e)]),_0x22865a=_0x37c73d[_0x28dbdb(0x238)],_0x8c8955,_0x41f40a;_0x22865a>Cesium$5['Math'][_0x28dbdb(0x1b9)]?(_0x8c8955=0x0,_0x41f40a=Cesium$5[_0x28dbdb(0x204)]['TWO_PI']):_0x467b19-_0x107242<_0x22865a?(_0x8c8955=_0x107242,_0x41f40a=_0x107242+_0x22865a):(_0x8c8955=_0x107242,_0x41f40a=_0x467b19);_0x16060b['lon']={'min':Cesium$5['Math'][_0x28dbdb(0x23e)](_0x8c8955),'max':Cesium$5[_0x28dbdb(0x204)]['toDegrees'](_0x41f40a)};var _0x151a9e=_0x37c73d['south'],_0x2728d5=_0x37c73d[_0x28dbdb(0x184)],_0x59b321=_0x37c73d['height'],_0x190642=_0x59b321>Cesium$5[_0x28dbdb(0x204)]['PI']/0xc?_0x59b321/0x2:0x0,_0x2c47d6=Cesium$5['Math']['clampToLatitudeRange'](_0x151a9e-_0x190642),_0x4cb456=Cesium$5[_0x28dbdb(0x204)][_0x28dbdb(0x1ad)](_0x2728d5+_0x190642);return _0x2c47d6<-Cesium$5['Math']['PI_OVER_THREE']&&(_0x2c47d6=-Cesium$5['Math']['PI_OVER_TWO']),_0x4cb456>Cesium$5['Math']['PI_OVER_THREE']&&(_0x4cb456=Cesium$5[_0x28dbdb(0x204)]['PI_OVER_TWO']),_0x16060b['lat']={'min':Cesium$5['Math'][_0x28dbdb(0x23e)](_0x2c47d6),'max':Cesium$5['Math'][_0x28dbdb(0x23e)](_0x4cb456)},_0x16060b;};return{'getFullscreenQuad':_0x224bd8,'createTexture':_0x4f2f70,'createFramebuffer':_0x4c8a92,'createRawRenderState':_0x516a14,'viewRectangleToLonLatRange':_0x29e2de};}()),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=_0x521b0e(0x1b8),fullscreen_vert=_0x521b0e(0x1d6),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[_0x521b0e(0x168)],ParticlesRendering=(function(){var _0x25c3c8=_0x521b0e;function _0x58e3ba(_0x32a19a,_0x2b90ae,_0x54b2cb,_0x1fa963,_0x474f51){_classCallCheck(this,_0x58e3ba),this['createRenderingTextures'](_0x32a19a,_0x2b90ae,_0x54b2cb['colors']),this['createRenderingFramebuffers'](_0x32a19a),this['createRenderingPrimitives'](_0x32a19a,_0x54b2cb,_0x1fa963,_0x474f51);}return _createClass(_0x58e3ba,[{'key':_0x25c3c8(0x1e5),'value':function _0x4b4c17(_0x23148e,_0x5f1565,_0x1d7360){var _0x27209b=_0x25c3c8,_0x350ae6={'context':_0x23148e,'width':_0x23148e['drawingBufferWidth'],'height':_0x23148e['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat'][_0x27209b(0x196)],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_BYTE']},_0x253b32={'context':_0x23148e,'width':_0x23148e['drawingBufferWidth'],'height':_0x23148e[_0x27209b(0x1c1)],'pixelFormat':Cesium$4['PixelFormat'][_0x27209b(0x16f)],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_INT']},_0x4781e3=_0x1d7360['length'],_0xe654a6=new Float32Array(_0x4781e3*0x3);for(var _0x2fc28e=0x0;_0x2fc28e<_0x4781e3;_0x2fc28e++){var _0x25240b=Cesium$4['Color']['fromCssColorString'](_0x1d7360[_0x2fc28e]);_0xe654a6[0x3*_0x2fc28e]=_0x25240b['red'],_0xe654a6[0x3*_0x2fc28e+0x1]=_0x25240b['green'],_0xe654a6[0x3*_0x2fc28e+0x2]=_0x25240b[_0x27209b(0x214)];}var _0x8a397c={'context':_0x23148e,'width':_0x4781e3,'height':0x1,'pixelFormat':Cesium$4['PixelFormat']['RGB'],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4['TextureMinificationFilter']['LINEAR'],'magnificationFilter':Cesium$4['TextureMagnificationFilter']['LINEAR']})};this['textures']={'segmentsColor':Util['createTexture'](_0x350ae6),'segmentsDepth':Util[_0x27209b(0x1d7)](_0x253b32),'currentTrailsColor':Util['createTexture'](_0x350ae6),'currentTrailsDepth':Util['createTexture'](_0x253b32),'nextTrailsColor':Util['createTexture'](_0x350ae6),'nextTrailsDepth':Util['createTexture'](_0x253b32),'colorTable':Util['createTexture'](_0x8a397c,_0xe654a6)};}},{'key':'createRenderingFramebuffers','value':function _0x4f4d61(_0x343516){var _0x9fa44=_0x25c3c8;this['framebuffers']={'segments':Util['createFramebuffer'](_0x343516,this['textures']['segmentsColor'],this['textures']['segmentsDepth']),'currentTrails':Util[_0x9fa44(0x18d)](_0x343516,this['textures']['currentTrailsColor'],this['textures']['currentTrailsDepth']),'nextTrails':Util['createFramebuffer'](_0x343516,this[_0x9fa44(0x211)][_0x9fa44(0x185)],this[_0x9fa44(0x211)]['nextTrailsDepth'])};}},{'key':'createSegmentsGeometry','value':function _0x25a242(_0x329e75){var _0x35b0f0=_0x25c3c8,_0x11b23c=0x4,_0x25e8a4=[];for(var _0x9929da=0x0;_0x9929da<_0x329e75['particlesTextureSize'];_0x9929da++){for(var _0x471187=0x0;_0x471187<_0x329e75['particlesTextureSize'];_0x471187++){for(var _0x38dc8f=0x0;_0x38dc8f<_0x11b23c;_0x38dc8f++){_0x25e8a4['push'](_0x9929da/_0x329e75[_0x35b0f0(0x1a2)]),_0x25e8a4['push'](_0x471187/_0x329e75['particlesTextureSize']);}}}_0x25e8a4=new Float32Array(_0x25e8a4);var _0x430c9d=[],_0x1fca09=[-0x1,0x1],_0x1d64ea=[-0x1,0x1];for(var _0x2e30f2=0x0;_0x2e30f2<_0x329e75['maxParticles'];_0x2e30f2++){for(var _0x5c7f6e=0x0;_0x5c7f6e<_0x11b23c/0x2;_0x5c7f6e++){for(var _0x20a485=0x0;_0x20a485<_0x11b23c/0x2;_0x20a485++){_0x430c9d['push'](_0x1fca09[_0x5c7f6e]),_0x430c9d['push'](_0x1d64ea[_0x20a485]),_0x430c9d['push'](0x0);}}}_0x430c9d=new Float32Array(_0x430c9d);var _0x27e8ed=0x6*_0x329e75['maxParticles'],_0x442c52=new Uint32Array(_0x27e8ed);for(var _0x450d49=0x0,_0x3d2216=0x0,_0x3b5b97=0x0;_0x450d49<_0x329e75['maxParticles'];_0x450d49++){_0x442c52[_0x3d2216++]=_0x3b5b97+0x0,_0x442c52[_0x3d2216++]=_0x3b5b97+0x1,_0x442c52[_0x3d2216++]=_0x3b5b97+0x2,_0x442c52[_0x3d2216++]=_0x3b5b97+0x2,_0x442c52[_0x3d2216++]=_0x3b5b97+0x1,_0x442c52[_0x3d2216++]=_0x3b5b97+0x3,_0x3b5b97+=0x4;}var _0xdff5ed=new Cesium$4['Geometry']({'attributes':new Cesium$4[(_0x35b0f0(0x1e1))]({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':_0x25e8a4}),'normal':new Cesium$4[(_0x35b0f0(0x239))]({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':_0x430c9d})}),'indices':_0x442c52});return _0xdff5ed;}},{'key':'createRenderingPrimitives','value':function _0x506e06(_0x3ba9c2,_0x304b12,_0x113fcf,_0x2ff6cc){var _0x22d73c=_0x25c3c8,_0x304476=this;this['primitives']={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'st':0x0,'normal':0x1},'geometry':this['createSegmentsGeometry'](_0x304b12),'primitiveType':Cesium$4[_0x22d73c(0x210)]['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function _0x14a2c1(){return _0x2ff6cc['particlesTextures']['currentParticlesPosition'];},'postProcessingPosition':function _0xfa2e2(){return _0x2ff6cc['particlesTextures']['postProcessingPosition'];},'postProcessingSpeed':function _0x354bbe(){return _0x2ff6cc['particlesTextures']['postProcessingSpeed'];},'colorTable':function _0x307e0a(){return _0x304476['textures']['colorTable'];},'aspect':function _0x1135c9(){var _0xd57ed=_0x22d73c;return _0x3ba9c2['drawingBufferWidth']/_0x3ba9c2[_0xd57ed(0x1c1)];},'pixelSize':function _0x57de7c(){return _0x113fcf['pixelSize'];},'lineWidth':function _0x1c9039(){var _0x15c3bf=_0x22d73c;return _0x304b12[_0x15c3bf(0x19c)];},'particleHeight':function _0x1654cc(){var _0x18b027=_0x22d73c;return _0x304b12[_0x18b027(0x24f)];}},'vertexShaderSource':new Cesium$4[(_0x22d73c(0x20f))]({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this[_0x22d73c(0x1cc)]['segments'],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType'][_0x22d73c(0x19f)],'uniformMap':{'segmentsColorTexture':function _0x482468(){return _0x304476['textures']['segmentsColor'];},'segmentsDepthTexture':function _0x26322e(){return _0x304476['textures']['segmentsDepth'];},'currentTrailsColor':function _0x2be106(){var _0x1e1666=_0x22d73c;return _0x304476[_0x1e1666(0x1cc)][_0x1e1666(0x21a)]['getColorTexture'](0x0);},'trailsDepthTexture':function _0x5b6b7d(){var _0x1b25bc=_0x22d73c;return _0x304476[_0x1b25bc(0x1cc)]['currentTrails']['depthTexture'];},'fadeOpacity':function _0x4d5243(){return _0x304b12['fadeOpacity'];}},'vertexShaderSource':new Cesium$4[(_0x22d73c(0x20f))]({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x22d73c(0x20d)],'sources':[trailDraw_frag]}),'rawRenderState':Util[_0x22d73c(0x1ce)]({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction'][_0x22d73c(0x166)]},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function _0x241dbe(){var _0xb4ae5e=_0x22d73c,_0x7ab791=_0x304476['framebuffers'][_0xb4ae5e(0x21a)];_0x304476['framebuffers'][_0xb4ae5e(0x21a)]=_0x304476['framebuffers'][_0xb4ae5e(0x179)],_0x304476[_0xb4ae5e(0x1cc)][_0xb4ae5e(0x179)]=_0x7ab791,_0x304476[_0xb4ae5e(0x22c)][_0xb4ae5e(0x197)]['commandToExecute']['framebuffer']=_0x304476['framebuffers'][_0xb4ae5e(0x179)],_0x304476['primitives']['trails']['clearCommand']['framebuffer']=_0x304476[_0xb4ae5e(0x1cc)]['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':_0x22d73c(0x1a4),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x22d73c(0x24d)](),'primitiveType':Cesium$4[_0x22d73c(0x210)][_0x22d73c(0x19f)],'uniformMap':{'trailsColorTexture':function _0x2601dc(){return _0x304476['framebuffers']['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x167dcc(){var _0x350cbe=_0x22d73c;return _0x304476[_0x350cbe(0x1cc)]['nextTrails']['depthTexture'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x22d73c(0x20f))]({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[screenDraw_frag]}),'rawRenderState':Util[_0x22d73c(0x1ce)]({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x58e3ba;}()),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='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}',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 _0x216c09=_0x521b0e;function _0xb989e5(_0x5a9439,_0x45d5f3,_0x186e5b,_0x2b595e){var _0x54ebbc=_0x4fd8;_classCallCheck(this,_0xb989e5),this['data']=_0x45d5f3,this['createWindTextures'](_0x5a9439,_0x45d5f3),this['createParticlesTextures'](_0x5a9439,_0x186e5b,_0x2b595e),this[_0x54ebbc(0x22f)](_0x45d5f3,_0x186e5b,_0x2b595e);}return _createClass(_0xb989e5,[{'key':_0x216c09(0x167),'value':function _0x3e093f(_0x39a3a1,_0x210a42){var _0x5df9e1=_0x216c09,_0x1319c0={'context':_0x39a3a1,'width':_0x210a42['dimensions'][_0x5df9e1(0x18f)],'height':_0x210a42['dimensions']['lat']*(_0x210a42['dimensions'][_0x5df9e1(0x213)]||0x1),'pixelFormat':Cesium$3['PixelFormat']['LUMINANCE'],'pixelDatatype':Cesium$3[_0x5df9e1(0x21d)][_0x5df9e1(0x1d8)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3[_0x5df9e1(0x1c5)]['NEAREST']})};this['windTextures']={'U':Util[_0x5df9e1(0x1d7)](_0x1319c0,_0x210a42['U']['array']),'V':Util['createTexture'](_0x1319c0,_0x210a42['V'][_0x5df9e1(0x1de)])};}},{'key':'createParticlesTextures','value':function _0x5c5cc3(_0x57175c,_0x14c5ae,_0x4f3666){var _0x2c37de=_0x216c09,_0x4de3a7={'context':_0x57175c,'width':_0x14c5ae[_0x2c37de(0x1a2)],'height':_0x14c5ae['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat'][_0x2c37de(0x196)],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})},_0x12486e=this['randomizeParticles'](_0x14c5ae['maxParticles'],_0x4f3666),_0x2313af=new Float32Array(0x4*_0x14c5ae['maxParticles'])['fill'](0x0);this['particlesTextures']={'particlesWind':Util['createTexture'](_0x4de3a7),'currentParticlesPosition':Util['createTexture'](_0x4de3a7,_0x12486e),'nextParticlesPosition':Util[_0x2c37de(0x1d7)](_0x4de3a7,_0x12486e),'currentParticlesSpeed':Util[_0x2c37de(0x1d7)](_0x4de3a7,_0x2313af),'nextParticlesSpeed':Util['createTexture'](_0x4de3a7,_0x2313af),'postProcessingPosition':Util[_0x2c37de(0x1d7)](_0x4de3a7,_0x12486e),'postProcessingSpeed':Util[_0x2c37de(0x1d7)](_0x4de3a7,_0x2313af)};}},{'key':_0x216c09(0x223),'value':function _0x4fbdc0(_0xcd57a3,_0x533c19){var _0x20a787=_0x216c09,_0x59c20a=new Float32Array(0x4*_0xcd57a3);for(var _0x3330f8=0x0;_0x3330f8<_0xcd57a3;_0x3330f8++){_0x59c20a[0x4*_0x3330f8]=Cesium$3['Math'][_0x20a787(0x228)](_0x533c19['lonRange']['x'],_0x533c19['lonRange']['y']),_0x59c20a[0x4*_0x3330f8+0x1]=Cesium$3[_0x20a787(0x204)][_0x20a787(0x228)](_0x533c19['latRange']['x'],_0x533c19[_0x20a787(0x216)]['y']),_0x59c20a[0x4*_0x3330f8+0x2]=Cesium$3[_0x20a787(0x204)]['randomBetween'](this['data']['lev']['min'],this['data']['lev']['max']),_0x59c20a[0x4*_0x3330f8+0x3]=0x0;}return _0x59c20a;}},{'key':'destroyParticlesTextures','value':function _0x1beb2b(){var _0x3e53a7=this;Object['keys'](this['particlesTextures'])['forEach'](function(_0x241539){var _0x1f02d6=_0x4fd8;_0x3e53a7[_0x1f02d6(0x1d4)][_0x241539]['destroy']();});}},{'key':'createComputingPrimitives','value':function _0x5d5eb3(_0x581ec9,_0x53c6a9,_0x9ba232){var _0xade940=_0x216c09,_0x1ed1f3=new Cesium$3['Cartesian3'](_0x581ec9['dimensions']['lon'],_0x581ec9[_0xade940(0x158)][_0xade940(0x1a8)],_0x581ec9[_0xade940(0x158)]['lev']),_0x4e2fd1=new Cesium$3[(_0xade940(0x231))](_0x581ec9[_0xade940(0x18f)][_0xade940(0x161)],_0x581ec9['lat']['min'],_0x581ec9[_0xade940(0x213)]['min']),_0x4f2c87=new Cesium$3['Cartesian3'](_0x581ec9['lon']['max'],_0x581ec9['lat'][_0xade940(0x1d0)],_0x581ec9['lev'][_0xade940(0x1d0)]),_0xdcf6ca=new Cesium$3['Cartesian3']((_0x4f2c87['x']-_0x4e2fd1['x'])/(_0x1ed1f3['x']-0x1),(_0x4f2c87['y']-_0x4e2fd1['y'])/(_0x1ed1f3['y']-0x1),_0x1ed1f3['z']>0x1?(_0x4f2c87['z']-_0x4e2fd1['z'])/(_0x1ed1f3['z']-0x1):0x1),_0x457987=new Cesium$3['Cartesian2'](_0x581ec9['U']['min'],_0x581ec9['U']['max']),_0x512aac=new Cesium$3[(_0xade940(0x16e))](_0x581ec9['V']['min'],_0x581ec9['V']['max']),_0x41ce8f=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':_0xade940(0x226),'uniformMap':{'U':function _0x816a0(){var _0x3555e0=_0xade940;return _0x41ce8f[_0x3555e0(0x1fc)]['U'];},'V':function _0x53edeb(){var _0x526155=_0xade940;return _0x41ce8f[_0x526155(0x1fc)]['V'];},'currentParticlesPosition':function _0x371ddf(){return _0x41ce8f['particlesTextures']['currentParticlesPosition'];},'dimension':function _0x236e40(){return _0x1ed1f3;},'minimum':function _0x29060c(){return _0x4e2fd1;},'maximum':function _0x479032(){return _0x4f2c87;},'interval':function _0x37d4d1(){return _0xdcf6ca;}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[getWind_frag]}),'outputTexture':this['particlesTextures'][_0xade940(0x189)],'preExecute':function _0x2546b9(){var _0x1d90c0=_0xade940;_0x41ce8f['primitives']['getWind']['commandToExecute']['outputTexture']=_0x41ce8f['particlesTextures'][_0x1d90c0(0x189)];}}),'updateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesSpeed':function _0x517956(){return _0x41ce8f['particlesTextures']['currentParticlesSpeed'];},'particlesWind':function _0x34ebda(){return _0x41ce8f['particlesTextures']['particlesWind'];},'uSpeedRange':function _0x3df8bd(){return _0x457987;},'vSpeedRange':function _0x3a75b2(){return _0x512aac;},'pixelSize':function _0x4ed0b7(){var _0x590e9f=_0xade940;return _0x9ba232[_0x590e9f(0x1b4)];},'speedFactor':function _0xbd7d7d(){var _0xdc0c5b=_0xade940;return _0x53c6a9[_0xdc0c5b(0x1c8)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updateSpeed_frag]}),'outputTexture':this['particlesTextures'][_0xade940(0x246)],'preExecute':function _0x5be0cb(){var _0x4641bb=_0xade940,_0x2d7325=_0x41ce8f['particlesTextures']['currentParticlesSpeed'];_0x41ce8f[_0x4641bb(0x1d4)]['currentParticlesSpeed']=_0x41ce8f[_0x4641bb(0x1d4)][_0x4641bb(0x1ba)],_0x41ce8f['particlesTextures'][_0x4641bb(0x1ba)]=_0x2d7325,_0x41ce8f['primitives']['updateSpeed'][_0x4641bb(0x201)]['outputTexture']=_0x41ce8f['particlesTextures']['nextParticlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x24a3eb(){var _0x164a16=_0xade940;return _0x41ce8f[_0x164a16(0x1d4)][_0x164a16(0x1b5)];},'currentParticlesSpeed':function _0x26fa91(){return _0x41ce8f['particlesTextures']['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3[(_0xade940(0x20f))]({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0x473f5d(){var _0x490988=_0xade940,_0xfeda25=_0x41ce8f['particlesTextures']['currentParticlesPosition'];_0x41ce8f[_0x490988(0x1d4)]['currentParticlesPosition']=_0x41ce8f['particlesTextures']['postProcessingPosition'],_0x41ce8f['particlesTextures']['postProcessingPosition']=_0xfeda25,_0x41ce8f['primitives']['updatePosition'][_0x490988(0x201)]['outputTexture']=_0x41ce8f['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0x176a34(){var _0x54f0b9=_0xade940;return _0x41ce8f[_0x54f0b9(0x1d4)]['nextParticlesPosition'];},'nextParticlesSpeed':function _0x5b7eaf(){var _0x5b1c81=_0xade940;return _0x41ce8f[_0x5b1c81(0x1d4)]['nextParticlesSpeed'];},'lonRange':function _0x4cd478(){return _0x9ba232['lonRange'];},'latRange':function _0x559938(){var _0x14ebaa=_0xade940;return _0x9ba232[_0x14ebaa(0x216)];},'randomCoefficient':function _0xe1f272(){var _0x4d6ee2=_0xade940,_0x5a7334=Math[_0x4d6ee2(0x22a)]();return _0x5a7334;},'dropRate':function _0xfcf341(){var _0x36c240=_0xade940;return _0x53c6a9[_0x36c240(0x17a)];},'dropRateBump':function _0x49f1d6(){return _0x53c6a9['dropRateBump'];}},'fragmentShaderSource':new Cesium$3[(_0xade940(0x20f))]({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures'][_0xade940(0x162)],'preExecute':function _0x1fb4f6(){var _0x47ca6b=_0xade940;_0x41ce8f['primitives'][_0x47ca6b(0x162)][_0x47ca6b(0x201)]['outputTexture']=_0x41ce8f['particlesTextures']['postProcessingPosition'];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0x32bbaa(){return _0x41ce8f['particlesTextures']['postProcessingPosition'];},'nextParticlesSpeed':function _0x1a6d09(){var _0x3e9d92=_0xade940;return _0x41ce8f['particlesTextures'][_0x3e9d92(0x246)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingSpeed_frag]}),'outputTexture':this[_0xade940(0x1d4)]['postProcessingSpeed'],'preExecute':function _0x38a6b6(){_0x41ce8f['primitives']['postProcessingSpeed']['commandToExecute']['outputTexture']=_0x41ce8f['particlesTextures']['postProcessingSpeed'];}})};}}]),_0xb989e5;}()),Cesium$2=mars3d__namespace['Cesium'],ParticleSystem=(function(){var _0x93ec85=_0x521b0e;function _0x30eb8d(_0x1467bd,_0x4a91fb,_0x5edaa3,_0x4cd718){var _0x20a7eb=_0x4fd8;_classCallCheck(this,_0x30eb8d),this[_0x20a7eb(0x190)]=_0x1467bd,_0x4a91fb=_objectSpread2({},_0x4a91fb);if(_0x4a91fb['udata']&&_0x4a91fb['vdata']){var _0x412c31,_0x304c7d,_0x436f0f,_0x268b2b,_0x2e9d15,_0x967bbc;_0x4a91fb['dimensions']={},_0x4a91fb['dimensions']['lon']=_0x4a91fb['cols'],_0x4a91fb['dimensions']['lat']=_0x4a91fb['rows'],_0x4a91fb['dimensions']['lev']=_0x4a91fb['lev']||0x1,_0x4a91fb[_0x20a7eb(0x18f)]={},_0x4a91fb['lon'][_0x20a7eb(0x161)]=_0x4a91fb['xmin'],_0x4a91fb['lon']['max']=_0x4a91fb['xmax'],_0x4a91fb['lat']={},_0x4a91fb['lat']['min']=_0x4a91fb[_0x20a7eb(0x188)],_0x4a91fb[_0x20a7eb(0x1a8)]['max']=_0x4a91fb[_0x20a7eb(0x235)],_0x4a91fb['lev']={},_0x4a91fb[_0x20a7eb(0x213)][_0x20a7eb(0x161)]=(_0x412c31=_0x4a91fb['levmin'])!==null&&_0x412c31!==void 0x0?_0x412c31:0x1,_0x4a91fb['lev'][_0x20a7eb(0x1d0)]=(_0x304c7d=_0x4a91fb['levmax'])!==null&&_0x304c7d!==void 0x0?_0x304c7d:0x1,_0x4a91fb['U']={},_0x4a91fb['U']['array']=new Float32Array(_0x4a91fb['udata']),_0x4a91fb['U']['min']=(_0x436f0f=_0x4a91fb[_0x20a7eb(0x1f1)])!==null&&_0x436f0f!==void 0x0?_0x436f0f:Math['min']['apply'](Math,_toConsumableArray(_0x4a91fb['udata'])),_0x4a91fb['U'][_0x20a7eb(0x1d0)]=(_0x268b2b=_0x4a91fb[_0x20a7eb(0x1ac)])!==null&&_0x268b2b!==void 0x0?_0x268b2b:Math['max']['apply'](Math,_toConsumableArray(_0x4a91fb['udata'])),_0x4a91fb['V']={},_0x4a91fb['V']['array']=new Float32Array(_0x4a91fb['vdata']),_0x4a91fb['V'][_0x20a7eb(0x161)]=(_0x2e9d15=_0x4a91fb['vmin'])!==null&&_0x2e9d15!==void 0x0?_0x2e9d15:Math[_0x20a7eb(0x161)]['apply'](Math,_toConsumableArray(_0x4a91fb['vdata'])),_0x4a91fb['V']['max']=(_0x967bbc=_0x4a91fb[_0x20a7eb(0x23c)])!==null&&_0x967bbc!==void 0x0?_0x967bbc:Math['max']['apply'](Math,_toConsumableArray(_0x4a91fb[_0x20a7eb(0x18a)]));}this[_0x20a7eb(0x1b1)]=_0x4a91fb,this[_0x20a7eb(0x208)]=_0x5edaa3,this['viewerParameters']=_0x4cd718,this[_0x20a7eb(0x19e)]=new ParticlesComputing(this['context'],this['data'],this[_0x20a7eb(0x208)],this[_0x20a7eb(0x1a7)]),this[_0x20a7eb(0x215)]=new ParticlesRendering(this[_0x20a7eb(0x190)],this['data'],this[_0x20a7eb(0x208)],this[_0x20a7eb(0x1a7)],this[_0x20a7eb(0x19e)]);}return _createClass(_0x30eb8d,[{'key':'canvasResize','value':function _0x35b0d5(_0x372f45){var _0x561c15=_0x4fd8,_0x4a768a=this;this[_0x561c15(0x19e)]['destroyParticlesTextures'](),Object['keys'](this[_0x561c15(0x19e)]['windTextures'])[_0x561c15(0x24b)](function(_0x5590a6){var _0x23b567=_0x561c15;_0x4a768a[_0x23b567(0x19e)]['windTextures'][_0x5590a6]['destroy']();}),this['particlesRendering']['textures'][_0x561c15(0x164)][_0x561c15(0x17e)](),Object['keys'](this['particlesRendering']['framebuffers'])[_0x561c15(0x24b)](function(_0x5a9816){var _0x3ed347=_0x561c15;_0x4a768a['particlesRendering']['framebuffers'][_0x5a9816][_0x3ed347(0x17e)]();}),this['context']=_0x372f45,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this[_0x561c15(0x208)],this[_0x561c15(0x1a7)]),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this[_0x561c15(0x208)],this['viewerParameters'],this['particlesComputing']);}},{'key':'clearFramebuffers','value':function _0x57e832(){var _0x12630a=_0x4fd8,_0x397d2c=this,_0x58a035=new Cesium$2[(_0x12630a(0x1e9))]({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass'][_0x12630a(0x245)]});Object['keys'](this['particlesRendering'][_0x12630a(0x1cc)])[_0x12630a(0x24b)](function(_0xa57ae5){var _0x49c12c=_0x12630a;_0x58a035[_0x49c12c(0x1ef)]=_0x397d2c['particlesRendering']['framebuffers'][_0xa57ae5],_0x58a035['execute'](_0x397d2c['context']);});}},{'key':'refreshParticles','value':function _0x280553(_0x59a826){var _0x423a4f=_0x4fd8;this['clearFramebuffers'](),this[_0x423a4f(0x19e)]['destroyParticlesTextures'](),this['particlesComputing']['createParticlesTextures'](this['context'],this[_0x423a4f(0x208)],this[_0x423a4f(0x1a7)]);if(_0x59a826){var _0x2e5184=this[_0x423a4f(0x215)]['createSegmentsGeometry'](this['options']);this['particlesRendering'][_0x423a4f(0x22c)][_0x423a4f(0x19d)]['geometry']=_0x2e5184;var _0xc9f8c7=Cesium$2['VertexArray']['fromGeometry']({'context':this['context'],'geometry':_0x2e5184,'attributeLocations':this['particlesRendering']['primitives']['segments'][_0x423a4f(0x16c)],'bufferUsage':Cesium$2[_0x423a4f(0x23a)]['STATIC_DRAW']});this['particlesRendering']['primitives']['segments'][_0x423a4f(0x201)]['vertexArray']=_0xc9f8c7;}}},{'key':_0x93ec85(0x170),'value':function _0x4207e9(_0x4452f0){var _0x2dfcfb=_0x93ec85,_0x5a9a8b=this,_0x1208ca=![];this['options'][_0x2dfcfb(0x202)]!==_0x4452f0[_0x2dfcfb(0x202)]&&(_0x1208ca=!![]),Object[_0x2dfcfb(0x1e6)](_0x4452f0)['forEach'](function(_0x3505e4){var _0x1351ff=_0x2dfcfb;_0x5a9a8b[_0x1351ff(0x208)][_0x3505e4]=_0x4452f0[_0x3505e4];}),this['refreshParticles'](_0x1208ca);}},{'key':'applyViewerParameters','value':function _0x36fb8a(_0x37e788){var _0xe6b67f=this;Object['keys'](_0x37e788)['forEach'](function(_0x42f4a4){_0xe6b67f['viewerParameters'][_0x42f4a4]=_0x37e788[_0x42f4a4];}),this['refreshParticles'](![]);}},{'key':'destroy','value':function _0x283be5(){var _0x4c2d74=_0x93ec85,_0x1e3ae9=this;clearTimeout(this[_0x4c2d74(0x1f2)]),this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this['particlesComputing']['windTextures'])['forEach'](function(_0x56f277){_0x1e3ae9['particlesComputing']['windTextures'][_0x56f277]['destroy']();}),this['particlesRendering']['textures'][_0x4c2d74(0x164)]['destroy'](),Object['keys'](this[_0x4c2d74(0x215)][_0x4c2d74(0x1cc)])[_0x4c2d74(0x24b)](function(_0xfc5b0){_0x1e3ae9['particlesRendering']['framebuffers'][_0xfc5b0]['destroy']();});for(var _0x40e3ad in this){delete this[_0x40e3ad];}}}]),_0x30eb8d;}()),Cesium$1=mars3d__namespace[_0x521b0e(0x168)],BaseLayer$1=mars3d__namespace[_0x521b0e(0x1c0)]['BaseLayer'],DEF_OPTIONS={'particlesNumber':0x1000,'fixedHeight':0x0,'fadeOpacity':0.996,'dropRate':0.003,'dropRateBump':0.01,'speedFactor':0.5,'lineWidth':0x2,'colors':[_0x521b0e(0x163)]},WindLayer=function(_0x262c41){var _0x4d0f9b=_0x521b0e;_inherits(_0x3d0fd2,_0x262c41);var _0x41cbd9=_createSuper(_0x3d0fd2);function _0x3d0fd2(){var _0x3e8132,_0x55dc90=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x3d0fd2),_0x55dc90=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x55dc90),_0x3e8132=_0x41cbd9['call'](this,_0x55dc90),_0x3e8132['_setOptionsHook'](_0x55dc90),_0x3e8132;}return _createClass(_0x3d0fd2,[{'key':'layer','get':function _0x4ab504(){return this['primitives'];}},{'key':'data','get':function _0x305410(){return this['_data'];},'set':function _0x5cc310(_0x2970c4){var _0x5cc707=_0x4fd8;this[_0x5cc707(0x236)](_0x2970c4);}},{'key':'colors','get':function _0x10ca81(){var _0x369626=_0x4fd8;return this['options'][_0x369626(0x178)];},'set':function _0x4f330f(_0x43e9ae){this['options']['colors']=_0x43e9ae,this['particleSystem']&&this['particleSystem']['setOptions']({'colors':_0x43e9ae}),this['resize']();}},{'key':'_mountedHook','value':function _0x18bef4(){}},{'key':_0x4d0f9b(0x1f6),'value':function _0x310c17(){var _0x323fcb=_0x4d0f9b;this['scene']=this['_map']['scene'],this['camera']=this[_0x323fcb(0x222)]['camera'],this['primitives']=new Cesium$1[(_0x323fcb(0x183))](),this[_0x323fcb(0x222)]['scene']['primitives']['add'](this[_0x323fcb(0x22c)]),this['viewerParameters']={'lonRange':new Cesium$1[(_0x323fcb(0x16e))](),'latRange':new Cesium$1[(_0x323fcb(0x16e))](),'pixelSize':0x0},this[_0x323fcb(0x177)]=new Cesium$1[(_0x323fcb(0x1bd))](Cesium$1['Cartesian3'][_0x323fcb(0x217)],0.99*0x615299),this['updateViewerParameters'](),window['addEventListener'](_0x323fcb(0x203),this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this[_0x323fcb(0x222)]['on'](mars3d__namespace[_0x323fcb(0x1c2)][_0x323fcb(0x20a)],this['_onMapWhellEvent'],this),this[_0x323fcb(0x222)]['on'](mars3d__namespace[_0x323fcb(0x1c2)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x323fcb(0x222)]['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this[_0x323fcb(0x222)]['on'](mars3d__namespace['EventType'][_0x323fcb(0x1fa)],this[_0x323fcb(0x244)],this),this['_data']&&this['setData'](this[_0x323fcb(0x1b0)]);}},{'key':'_removedHook','value':function _0x1d2419(){var _0x525aa4=_0x4d0f9b;window[_0x525aa4(0x209)](_0x525aa4(0x203),this['resize']),this['_map']['off'](mars3d__namespace['EventType']['preRender'],this[_0x525aa4(0x206)],this),this[_0x525aa4(0x222)]['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x525aa4(0x1da)],this[_0x525aa4(0x1b6)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x525aa4(0x244)],this),this['primitives']['removeAll'](),this['_map']['scene']['primitives']['remove'](this['primitives']);}},{'key':_0x4d0f9b(0x203),'value':function _0x2991f4(){var _0x235d53=_0x4d0f9b;if(!this['show']||!this['particleSystem'])return;this[_0x235d53(0x22c)]['show']=![],this[_0x235d53(0x22c)]['removeAll'](),this['_map']['once'](mars3d__namespace[_0x235d53(0x1c2)]['preRender'],this[_0x235d53(0x206)],this);}},{'key':'_onMap_preRenderEvent','value':function _0x3875f8(_0xca69e0){var _0x7888f4=_0x4d0f9b;this['particleSystem'][_0x7888f4(0x180)](this['scene']['context']),this[_0x7888f4(0x1f4)](),this['primitives']['show']=!![];}},{'key':'_onMapWhellEvent','value':function _0x470b71(_0x17f6e2){var _0x4b3d20=_0x4d0f9b,_0x2949d7=this;clearTimeout(this['refreshTimer']);if(!this[_0x4b3d20(0x1f9)]||!this['particleSystem'])return;this['primitives']['show']=![],this[_0x4b3d20(0x1eb)]=setTimeout(function(){if(!_0x2949d7['show'])return;_0x2949d7['redraw']();},0xc8);}},{'key':_0x4d0f9b(0x16a),'value':function _0x2a278c(_0x143a5f){this['mouse_down']=!![];}},{'key':'_onMouseMoveEvent','value':function _0x39a2a0(_0x120e3b){var _0xe35a95=_0x4d0f9b;if(!this[_0xe35a95(0x1f9)]||!this['particleSystem'])return;this[_0xe35a95(0x165)]&&(this['primitives']['show']=![],this['mouse_move']=!![]);}},{'key':_0x4d0f9b(0x1b6),'value':function _0x37cf76(_0x30d3fd){var _0x12ed2a=_0x4d0f9b;if(!this[_0x12ed2a(0x1f9)]||!this[_0x12ed2a(0x1c7)])return;this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['primitives']['show']=!![],this[_0x12ed2a(0x165)]=![],this['mouse_move']=![];}},{'key':'redraw','value':function _0x159f21(){var _0x60752c=_0x4d0f9b;if(!this[_0x60752c(0x222)]||!this['show'])return;this[_0x60752c(0x23f)](),this[_0x60752c(0x1c7)]['applyViewerParameters'](this[_0x60752c(0x1a7)]),this['primitives'][_0x60752c(0x1f9)]=!![];}},{'key':_0x4d0f9b(0x236),'value':function _0x2bcbb6(_0x4a1a74){var _0x51c5f8=_0x4d0f9b;this[_0x51c5f8(0x1b0)]=_0x4a1a74,this['particleSystem']&&this[_0x51c5f8(0x1c7)]['destroy'](),this[_0x51c5f8(0x1c7)]=new ParticleSystem(this['scene']['context'],_0x4a1a74,this['getOptions'](),this[_0x51c5f8(0x1a7)]),this['addPrimitives']();}},{'key':'_setOptionsHook','value':function _0x137b3a(_0x107d83,_0x545f35){var _0x4651b4=_0x4d0f9b;if(_0x107d83)for(var _0x5cda8a in _0x107d83){this[_0x5cda8a]=_0x107d83[_0x5cda8a];}this['particleSystem']&&this['particleSystem']['setOptions'](this[_0x4651b4(0x227)]());}},{'key':'getOptions','value':function _0x1952ec(){var _0x47805c=_0x4d0f9b,_0x1201e5=Math['ceil'](Math['sqrt'](this['particlesNumber']));return this['particlesNumber']=_0x1201e5*_0x1201e5,{'particlesTextureSize':_0x1201e5,'maxParticles':this[_0x47805c(0x171)],'particleHeight':this['fixedHeight'],'fadeOpacity':this[_0x47805c(0x1ab)],'dropRate':this[_0x47805c(0x17a)],'dropRateBump':this['dropRateBump'],'speedFactor':this['speedFactor'],'lineWidth':this['lineWidth'],'colors':this[_0x47805c(0x178)]};}},{'key':'addPrimitives','value':function _0x19bb27(){var _0x15fca9=_0x4d0f9b;this['primitives']['add'](this['particleSystem']['particlesComputing'][_0x15fca9(0x22c)]['getWind']),this['primitives']['add'](this[_0x15fca9(0x1c7)][_0x15fca9(0x19e)]['primitives']['updateSpeed']),this[_0x15fca9(0x22c)]['add'](this['particleSystem']['particlesComputing']['primitives']['updatePosition']),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives'][_0x15fca9(0x162)]),this['primitives']['add'](this[_0x15fca9(0x1c7)]['particlesComputing']['primitives'][_0x15fca9(0x1ba)]),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives'][_0x15fca9(0x19d)]),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['trails']),this[_0x15fca9(0x22c)]['add'](this[_0x15fca9(0x1c7)]['particlesRendering'][_0x15fca9(0x22c)]['screen']);}},{'key':'updateViewerParameters','value':function _0x49f2a0(){var _0x361dcb=_0x4d0f9b,_0x3e1482=this['camera']['computeViewRectangle'](this[_0x361dcb(0x193)][_0x361dcb(0x1be)]['ellipsoid']);if(!_0x3e1482){var _0xd13e57=this['_map']['getExtent']();_0x3e1482=Cesium$1['Rectangle']['fromDegrees'](_0xd13e57['xmin'],_0xd13e57[_0x361dcb(0x188)],_0xd13e57['xmax'],_0xd13e57['ymax']);}var _0x41ffbb=Util[_0x361dcb(0x160)](_0x3e1482);this['viewerParameters']['lonRange']['x']=_0x41ffbb['lon']['min'],this[_0x361dcb(0x1a7)]['lonRange']['y']=_0x41ffbb['lon']['max'],this[_0x361dcb(0x1a7)][_0x361dcb(0x216)]['x']=_0x41ffbb[_0x361dcb(0x1a8)]['min'],this['viewerParameters'][_0x361dcb(0x216)]['y']=_0x41ffbb[_0x361dcb(0x1a8)]['max'];var _0x32760a=this[_0x361dcb(0x15d)]['getPixelSize'](this['globeBoundingSphere'],this['scene']['drawingBufferWidth'],this['scene']['drawingBufferHeight']);_0x32760a>0x0&&(this['viewerParameters']['pixelSize']=_0x32760a);}}]),_0x3d0fd2;}(BaseLayer$1);function _0x4fd8(_0x24e06c,_0x13208b){var _0x2bab30=_0x2bab();return _0x4fd8=function(_0x4fd816,_0x494aba){_0x4fd816=_0x4fd816-0x158;var _0x2c2204=_0x2bab30[_0x4fd816];return _0x2c2204;},_0x4fd8(_0x24e06c,_0x13208b);}mars3d__namespace['LayerUtil']['register'](_0x521b0e(0x1a3),WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){function _0x3385c7(){var _0x4ee55c=_0x4fd8;_classCallCheck(this,_0x3385c7),this['lng']=null,this[_0x4ee55c(0x1a8)]=null,this[_0x4ee55c(0x1f0)]=null,this['tlat']=null,this['age']=null;}return _createClass(_0x3385c7,[{'key':'destroy','value':function _0x50ca06(){for(var _0x19b7dc in this){delete this[_0x19b7dc];}}}]),_0x3385c7;}()),CanvasWindField=(function(){var _0x2e1199=_0x521b0e;function _0x391e0b(_0x53a3fa){_classCallCheck(this,_0x391e0b),this['setOptions'](_0x53a3fa);}return _createClass(_0x391e0b,[{'key':'speedRate','get':function _0x464c1a(){var _0x93a04=_0x4fd8;return this[_0x93a04(0x169)];},'set':function _0x537481(_0x34f7db){var _0x19d9f9=_0x4fd8;this['_speedRate']=(0x64-(_0x34f7db>0x63?0x63:_0x34f7db))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x19d9f9(0x235)]-this['ymin'])/this['_speedRate']];}},{'key':'maxAge','get':function _0x25ac53(){return this['_maxAge'];},'set':function _0xef5909(_0x12040a){this['_maxAge']=_0x12040a;}},{'key':'setOptions','value':function _0x4abcdd(_0x5f14ef){var _0xd37f85=_0x4fd8;this['options']=_0x5f14ef,this[_0xd37f85(0x1a1)]=_0x5f14ef['maxAge']||0x78,this['speedRate']=_0x5f14ef['speedRate']||0x32,this['particles']=[];var _0x4bbeff=_0x5f14ef['particlesNumber']||0x1000;for(var _0x31e1cc=0x0;_0x31e1cc<_0x4bbeff;_0x31e1cc++){var _0x5a57db=this['_randomParticle'](new CanvasParticle());this['particles'][_0xd37f85(0x17d)](_0x5a57db);}}},{'key':'setDate','value':function _0x5e2940(_0x4c3223){var _0x3a48ab=_0x4fd8;this['rows']=_0x4c3223[_0x3a48ab(0x233)],this[_0x3a48ab(0x22b)]=_0x4c3223[_0x3a48ab(0x22b)],this['xmin']=_0x4c3223['xmin'],this['xmax']=_0x4c3223['xmax'],this['ymin']=_0x4c3223[_0x3a48ab(0x188)],this['ymax']=_0x4c3223['ymax'],this['grid']=[];var _0x277388=_0x4c3223[_0x3a48ab(0x1dc)],_0x1f2104=_0x4c3223['vdata'],_0x155f5b=![];_0x277388[_0x3a48ab(0x1e2)]===this['rows']&&_0x277388[0x0]['length']===this['cols']&&(_0x155f5b=!![]);var _0x21d44c=0x0,_0x5cc6c4=null,_0x1f356e=null;for(var _0x56945a=0x0;_0x56945a<this[_0x3a48ab(0x233)];_0x56945a++){_0x5cc6c4=[];for(var _0x3802e0=0x0;_0x3802e0<this['cols'];_0x3802e0++,_0x21d44c++){_0x155f5b?_0x1f356e=this[_0x3a48ab(0x1d1)](_0x277388[_0x56945a][_0x3802e0],_0x1f2104[_0x56945a][_0x3802e0]):_0x1f356e=this[_0x3a48ab(0x1d1)](_0x277388[_0x21d44c],_0x1f2104[_0x21d44c]),_0x5cc6c4['push'](_0x1f356e);}this['grid']['push'](_0x5cc6c4);}this['options']['reverseY']&&this['grid'][_0x3a48ab(0x1ec)]();}},{'key':_0x2e1199(0x253),'value':function _0x4abd65(){var _0x1d34db=_0x2e1199;delete this['rows'],delete this[_0x1d34db(0x22b)],delete this[_0x1d34db(0x16d)],delete this['xmax'],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this['particles'];}},{'key':'toGridXY','value':function _0x2ab7ae(_0x3050b2,_0x58bb06){var _0x386e14=_0x2e1199,_0x157373=(_0x3050b2-this[_0x386e14(0x16d)])/(this['xmax']-this['xmin'])*(this['cols']-0x1),_0x3bfac2=(this['ymax']-_0x58bb06)/(this['ymax']-this[_0x386e14(0x188)])*(this['rows']-0x1);return[_0x157373,_0x3bfac2];}},{'key':_0x2e1199(0x1cf),'value':function _0x580001(_0x2d58e5,_0x1042f3){var _0x5279ba=_0x2e1199;if(_0x2d58e5<0x0||_0x2d58e5>=this['cols']||_0x1042f3>=this['rows'])return[0x0,0x0,0x0];var _0x329b5a=Math['floor'](_0x2d58e5),_0x245a66=Math['floor'](_0x1042f3);if(_0x329b5a===_0x2d58e5&&_0x245a66===_0x1042f3)return this['grid'][_0x1042f3][_0x2d58e5];var _0x23da0b=_0x329b5a+0x1,_0x14d45f=_0x245a66+0x1,_0x3efe5a=this['getUVByXY'](_0x329b5a,_0x245a66),_0x74c103=this[_0x5279ba(0x1cf)](_0x23da0b,_0x245a66),_0x31a62f=this['getUVByXY'](_0x329b5a,_0x14d45f),_0x54207a=this[_0x5279ba(0x1cf)](_0x23da0b,_0x14d45f),_0xa7d700=null;try{_0xa7d700=this['_bilinearInterpolation'](_0x2d58e5-_0x329b5a,_0x1042f3-_0x245a66,_0x3efe5a,_0x74c103,_0x31a62f,_0x54207a);}catch(_0xbba1ef){console['log'](_0x2d58e5,_0x1042f3);}return _0xa7d700;}},{'key':'_bilinearInterpolation','value':function _0x3489f5(_0x2b2ca6,_0x4cecdf,_0x3771cf,_0x430ac1,_0x21493e,_0x902df4){var _0x4799e0=0x1-_0x2b2ca6,_0x40b722=0x1-_0x4cecdf,_0x3e4fb6=_0x4799e0*_0x40b722,_0xc744e3=_0x2b2ca6*_0x40b722,_0x4828d5=_0x4799e0*_0x4cecdf,_0x5e6fd1=_0x2b2ca6*_0x4cecdf,_0x65b42c=_0x3771cf[0x0]*_0x3e4fb6+_0x430ac1[0x0]*_0xc744e3+_0x21493e[0x0]*_0x4828d5+_0x902df4[0x0]*_0x5e6fd1,_0x3d3c6c=_0x3771cf[0x1]*_0x3e4fb6+_0x430ac1[0x1]*_0xc744e3+_0x21493e[0x1]*_0x4828d5+_0x902df4[0x1]*_0x5e6fd1;return this['_calcUV'](_0x65b42c,_0x3d3c6c);}},{'key':_0x2e1199(0x1d1),'value':function _0x48037d(_0x197bab,_0x2d44a3){return[+_0x197bab,+_0x2d44a3,Math['sqrt'](_0x197bab*_0x197bab+_0x2d44a3*_0x2d44a3)];}},{'key':'getUVByPoint','value':function _0x36877b(_0x15667f,_0x48aaf9){var _0x580058=_0x2e1199;if(!this['isInExtent'](_0x15667f,_0x48aaf9))return null;var _0x43fc99=this[_0x580058(0x1cd)](_0x15667f,_0x48aaf9),_0x423143=this['getUVByXY'](_0x43fc99[0x0],_0x43fc99[0x1]);return _0x423143;}},{'key':'isInExtent','value':function _0x167817(_0x580958,_0x1afe50){var _0x5e4f70=_0x2e1199;return _0x580958>=this[_0x5e4f70(0x16d)]&&_0x580958<=this[_0x5e4f70(0x181)]&&_0x1afe50>=this['ymin']&&_0x1afe50<=this[_0x5e4f70(0x235)]?!![]:![];}},{'key':'getRandomLatLng','value':function _0xb53201(){var _0x14619e=_0x2e1199,_0x1ed988=fRandomByfloat(this['xmin'],this[_0x14619e(0x181)]),_0x4adf17=fRandomByfloat(this['ymin'],this['ymax']);return{'lat':_0x4adf17,'lng':_0x1ed988};}},{'key':'getParticles','value':function _0x21e715(){var _0x1a7256=_0x2e1199,_0x5b1977,_0x2c8360,_0x2bec7f;for(var _0x28ddd7=0x0,_0x35381a=this['particles']['length'];_0x28ddd7<_0x35381a;_0x28ddd7++){var _0xd1aec3=this['particles'][_0x28ddd7];_0xd1aec3[_0x1a7256(0x221)]<=0x0&&(_0xd1aec3=this[_0x1a7256(0x1a6)](_0xd1aec3));if(_0xd1aec3[_0x1a7256(0x221)]>0x0){var _0x38438e=_0xd1aec3[_0x1a7256(0x1f0)],_0x3480e1=_0xd1aec3['tlat'];_0x2bec7f=this['getUVByPoint'](_0x38438e,_0x3480e1),_0x2bec7f?(_0x5b1977=_0x38438e+this['_calc_speedRate'][0x0]*_0x2bec7f[0x0],_0x2c8360=_0x3480e1+this[_0x1a7256(0x20b)][0x1]*_0x2bec7f[0x1],_0xd1aec3[_0x1a7256(0x22e)]=_0x38438e,_0xd1aec3['lat']=_0x3480e1,_0xd1aec3[_0x1a7256(0x1f0)]=_0x5b1977,_0xd1aec3['tlat']=_0x2c8360,_0xd1aec3['age']--):_0xd1aec3['age']=0x0;}}return this['particles'];}},{'key':_0x2e1199(0x1a6),'value':function _0x52910e(_0x44c002){var _0x4cf7b3=_0x2e1199,_0x4c01e9,_0x444c24;for(var _0x5d1f78=0x0;_0x5d1f78<0x1e;_0x5d1f78++){_0x4c01e9=this['getRandomLatLng'](),_0x444c24=this['getUVByPoint'](_0x4c01e9['lng'],_0x4c01e9['lat']);if(_0x444c24&&_0x444c24[0x2]>0x0)break;}if(!_0x444c24)return _0x44c002;var _0x348d21=_0x4c01e9['lng']+this['_calc_speedRate'][0x0]*_0x444c24[0x0],_0x277c74=_0x4c01e9['lat']+this['_calc_speedRate'][0x1]*_0x444c24[0x1];return _0x44c002[_0x4cf7b3(0x22e)]=_0x4c01e9['lng'],_0x44c002['lat']=_0x4c01e9[_0x4cf7b3(0x1a8)],_0x44c002['tlng']=_0x348d21,_0x44c002[_0x4cf7b3(0x1bb)]=_0x277c74,_0x44c002[_0x4cf7b3(0x221)]=Math['round'](Math['random']()*this['maxAge']),_0x44c002;}},{'key':_0x2e1199(0x17e),'value':function _0x999cae(){for(var _0x2d5f27 in this){delete this[_0x2d5f27];}}}]),_0x391e0b;}());function fRandomByfloat(_0x2cb1eb,_0x10127e){return _0x2cb1eb+Math['random']()*(_0x10127e-_0x2cb1eb);}var Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'],CanvasWindLayer=function(_0x2327dd){var _0xf7c89a=_0x521b0e;_inherits(_0x48f148,_0x2327dd);var _0x42974a=_createSuper(_0x48f148);function _0x48f148(){var _0x1a5c75=_0x4fd8,_0x29d281,_0x3a26f2=arguments[_0x1a5c75(0x1e2)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x48f148),_0x29d281=_0x42974a['call'](this,_0x3a26f2),_0x29d281['_setOptionsHook'](_0x3a26f2),_0x29d281[_0x1a5c75(0x1fd)]=null,_0x29d281;}return _createClass(_0x48f148,[{'key':_0xf7c89a(0x1df),'value':function _0xbcb606(_0x3386df,_0x36f329){var _0x5a30be=_0xf7c89a,_0x7fdb0b,_0x45dd29,_0x14d17e;this[_0x5a30be(0x1f5)]=0x3e8/(_0x3386df['frameRate']||0xa),this[_0x5a30be(0x15f)]=(_0x7fdb0b=this['options'][_0x5a30be(0x18b)])!==null&&_0x7fdb0b!==void 0x0?_0x7fdb0b:![],this['color']=_0x3386df[_0x5a30be(0x250)]||'#ffffff',this[_0x5a30be(0x19c)]=_0x3386df['lineWidth']||0x1,this['fixedHeight']=(_0x45dd29=_0x3386df['fixedHeight'])!==null&&_0x45dd29!==void 0x0?_0x45dd29:0x0,this['reverseY']=(_0x14d17e=_0x3386df['reverseY'])!==null&&_0x14d17e!==void 0x0?_0x14d17e:![],this[_0x5a30be(0x1a9)]&&this[_0x5a30be(0x1a9)][_0x5a30be(0x170)](_0x3386df);}},{'key':'layer','get':function _0x4c69fc(){var _0x4bd122=_0xf7c89a;return this[_0x4bd122(0x1fd)];}},{'key':_0xf7c89a(0x200),'get':function _0x5a9e0a(){return this['_map']['scene']['canvas']['clientWidth'];}},{'key':_0xf7c89a(0x1b2),'get':function _0x102065(){return this['_map']['scene']['canvas']['clientHeight'];}},{'key':'pointerEvents','get':function _0x4458a0(){return this['_pointerEvents'];},'set':function _0xcb5498(_0x48e7d4){var _0xa64743=_0xf7c89a;this['_pointerEvents']=_0x48e7d4;if(!this[_0xa64743(0x1fd)])return;_0x48e7d4?this['canvas'][_0xa64743(0x175)]['pointer-events']='all':this['canvas']['style']['pointer-events']=_0xa64743(0x219);}},{'key':_0xf7c89a(0x171),'get':function _0x549b7a(){return this['options']['particlesNumber'];},'set':function _0x4fbec6(_0x2346d6){var _0x2ab4aa=_0xf7c89a,_0x3b28aa=this;this['options']['particlesNumber']=_0x2346d6,clearTimeout(this[_0x2ab4aa(0x248)]),this['_canrefresh']=setTimeout(function(){_0x3b28aa['redraw']();},0x1f4);}},{'key':'speedRate','get':function _0x3e5307(){return this['options']['speedRate'];},'set':function _0x19b5fc(_0x489525){var _0x2c5283=_0xf7c89a;this['options']['speedRate']=_0x489525,this[_0x2c5283(0x1a9)]&&(this['windField']['speedRate']=_0x489525);}},{'key':_0xf7c89a(0x1a1),'get':function _0x517fb4(){return this['options']['maxAge'];},'set':function _0x42765f(_0x39b65e){var _0x3ba284=_0xf7c89a;this['options'][_0x3ba284(0x1a1)]=_0x39b65e,this['windField']&&(this['windField']['maxAge']=_0x39b65e);}},{'key':_0xf7c89a(0x1b1),'get':function _0x1067a8(){return this['windData'];},'set':function _0x5c27d1(_0x5870da){var _0x47c1ed=_0xf7c89a;this[_0x47c1ed(0x236)](_0x5870da);}},{'key':'_showHook','value':function _0x52494a(_0x1d89e7){var _0x35cde0=_0xf7c89a;_0x1d89e7?this['_addedHook']():(this['windData']&&(this['options'][_0x35cde0(0x1b1)]=this['windData']),this[_0x35cde0(0x22d)]());}},{'key':_0xf7c89a(0x1ed),'value':function _0x52797b(){var _0x3df327=_0xf7c89a;this['options']['worker']?this[_0x3df327(0x1ea)]():this['windField']=new CanvasWindField(this[_0x3df327(0x208)]);}},{'key':_0xf7c89a(0x1f6),'value':function _0x58cc60(){var _0x153fdc=_0xf7c89a;this['canvas']=this['_createCanvas'](),this['canvasContext']=this[_0x153fdc(0x1fd)]['getContext']('2d',{'willReadFrequently':!![]}),this['bindEvent'](),this['options'][_0x153fdc(0x1b1)]&&this[_0x153fdc(0x236)](this['options']['data']);}},{'key':'_removedHook','value':function _0xc2e9e(){var _0x5d506d=_0xf7c89a;this['clear'](),this['unbindEvent'](),this['canvas']&&(this['_map'][_0x5d506d(0x15a)][_0x5d506d(0x247)](this['canvas']),delete this['canvas']);}},{'key':'_createCanvas','value':function _0x3eaf91(){var _0xe8db7a=_0xf7c89a,_0xba2e03=document[_0xe8db7a(0x241)](_0xe8db7a(0x1fd));_0xba2e03['style']['position']=_0xe8db7a(0x1fb),_0xba2e03[_0xe8db7a(0x175)]['top']=_0xe8db7a(0x252),_0xba2e03[_0xe8db7a(0x175)][_0xe8db7a(0x230)]='0px',_0xba2e03[_0xe8db7a(0x175)][_0xe8db7a(0x238)]='100%',_0xba2e03[_0xe8db7a(0x175)][_0xe8db7a(0x232)]=_0xe8db7a(0x18e),_0xba2e03['style']['pointerEvents']=this['_pointerEvents']?'auto':'none',_0xba2e03['style']['zIndex']=0xa,_0xba2e03['setAttribute']('id','canvasWindy'),_0xba2e03['setAttribute']('class','canvasWindy'),this['_map']['container'][_0xe8db7a(0x1ae)](_0xba2e03);var _0x5cb754=this['_map']['scene'];return _0xba2e03['width']=_0x5cb754['canvas'][_0xe8db7a(0x1d9)],_0xba2e03[_0xe8db7a(0x232)]=_0x5cb754['canvas']['clientHeight'],_0xba2e03;}},{'key':'resize','value':function _0x897908(){var _0x4d88f6=_0xf7c89a;this['canvas']&&(this[_0x4d88f6(0x1fd)]['width']=this['canvasWidth'],this['canvas'][_0x4d88f6(0x232)]=this['canvasHeight']);}},{'key':'bindEvent','value':function _0x1a0597(){var _0x5ad78e=_0xf7c89a,_0x2a950e=this,_0x35bcda=Date[_0x5ad78e(0x220)]();(function _0x22b613(){var _0xf7568=_0x5ad78e;_0x2a950e['animateFrame']=window[_0xf7568(0x1a0)](_0x22b613);if(_0x2a950e['show']&&_0x2a950e[_0xf7568(0x1a9)]){var _0x54df36=Date['now'](),_0x1db07d=_0x54df36-_0x35bcda;_0x1db07d>_0x2a950e['frameTime']&&(_0x35bcda=_0x54df36-_0x1db07d%_0x2a950e[_0xf7568(0x1f5)],_0x2a950e[_0xf7568(0x229)]());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType'][_0x5ad78e(0x20a)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x5ad78e(0x15c)],this['_onMouseDownEvent'],this),this[_0x5ad78e(0x222)]['on'](mars3d__namespace[_0x5ad78e(0x1c2)]['mouseUp'],this['_onMouseUpEvent'],this)));}},{'key':_0xf7c89a(0x1bf),'value':function _0x108e90(){var _0x250bfd=_0xf7c89a;window['cancelAnimationFrame'](this['animateFrame']),delete this[_0x250bfd(0x1aa)],window['removeEventListener']('resize',this['resize']),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x250bfd(0x1c2)][_0x250bfd(0x20a)],this['_onMapWhellEvent'],this),this[_0x250bfd(0x222)]['off'](mars3d__namespace[_0x250bfd(0x1c2)]['mouseDown'],this[_0x250bfd(0x16a)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x250bfd(0x1da)],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x250bfd(0x244)],this));}},{'key':_0xf7c89a(0x24c),'value':function _0xd53e58(_0x254283){var _0x5562a5=_0xf7c89a,_0x143773=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas']['style']['visibility']='hidden',this[_0x5562a5(0x1eb)]=setTimeout(function(){var _0xf15c0d=_0x5562a5;if(!_0x143773['show'])return;_0x143773[_0xf15c0d(0x240)](),_0x143773[_0xf15c0d(0x1fd)]['style']['visibility']='visible';},0xc8);}},{'key':_0xf7c89a(0x16a),'value':function _0x5d68b5(_0x327e38){var _0x46098d=_0xf7c89a;this['mouse_down']=!![],this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this[_0x46098d(0x244)],this);}},{'key':_0xf7c89a(0x244),'value':function _0x584783(_0x31a454){if(!this['show']||!this['canvas'])return;this['mouse_down']&&(this['canvas']['style']['visibility']='hidden',this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x5f566c(_0x5edc52){var _0x4f06bc=_0xf7c89a;if(!this[_0x4f06bc(0x1f9)]||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType'][_0x4f06bc(0x1fa)],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['canvas']['style']['visibility']=_0x4f06bc(0x1ca),this['mouse_down']=![],this['mouse_move']=![];}},{'key':'setData','value':function _0x151418(_0x36aac4){var _0x2b8a13=_0xf7c89a;this['clear'](),this[_0x2b8a13(0x174)]=_0x36aac4,this[_0x2b8a13(0x1a9)][_0x2b8a13(0x1e8)](_0x36aac4),this['redraw']();}},{'key':'redraw','value':function _0x422ce6(){var _0x14fab0=_0xf7c89a;if(!this['show'])return;this['windField'][_0x14fab0(0x170)](this['options']),this[_0x14fab0(0x229)]();}},{'key':_0xf7c89a(0x229),'value':function _0x34c368(){var _0x439648=_0xf7c89a;if(this['_updateIng'])return;this['_updateIng']=!![];if(this[_0x439648(0x191)])this['windField']['update']();else{var _0x50e9f8=this['windField']['getParticles']();this['_drawLines'](_0x50e9f8);}this['_updateIng']=![];}},{'key':_0xf7c89a(0x194),'value':function _0x2c271d(_0x1eb4d9){var _0x689fe9=_0xf7c89a;this['canvasContext'][_0x689fe9(0x159)]='destination-in',this['canvasContext'][_0x689fe9(0x237)](0x0,0x0,this[_0x689fe9(0x200)],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']='lighter',this[_0x689fe9(0x1dd)][_0x689fe9(0x255)]=0.9,this[_0x689fe9(0x1dd)]['beginPath'](),this[_0x689fe9(0x1dd)]['lineWidth']=this['lineWidth'],this['canvasContext'][_0x689fe9(0x172)]=this['color'];var _0x33fa7f=this[_0x689fe9(0x222)]['scene']['mode']!==Cesium['SceneMode']['SCENE3D'];for(var _0x37796a=0x0,_0x5f1031=_0x1eb4d9[_0x689fe9(0x1e2)];_0x37796a<_0x5f1031;_0x37796a++){var _0x247dda=_0x1eb4d9[_0x37796a],_0x587f49=this['_tomap'](_0x247dda['lng'],_0x247dda[_0x689fe9(0x1a8)],_0x247dda),_0x35cd10=this[_0x689fe9(0x1c6)](_0x247dda[_0x689fe9(0x1f0)],_0x247dda['tlat'],_0x247dda);if(!_0x587f49||!_0x35cd10)continue;if(_0x33fa7f&&Math[_0x689fe9(0x24a)](_0x587f49[0x0]-_0x35cd10[0x0])>=this['canvasWidth'])continue;this['canvasContext']['moveTo'](_0x587f49[0x0],_0x587f49[0x1]),this['canvasContext']['lineTo'](_0x35cd10[0x0],_0x35cd10[0x1]);}this['canvasContext']['stroke']();}},{'key':'_tomap','value':function _0x232ae2(_0x4d088b,_0x3538d5,_0x54c12c){var _0x14e6e4=_0xf7c89a,_0x106bf5=Cesium['Cartesian3'][_0x14e6e4(0x187)](_0x4d088b,_0x3538d5,this['fixedHeight']),_0x164d29=this[_0x14e6e4(0x222)]['scene'];if(_0x164d29[_0x14e6e4(0x234)]===Cesium[_0x14e6e4(0x1e3)][_0x14e6e4(0x198)]){var _0x1271a7=new Cesium[(_0x14e6e4(0x23d))](_0x164d29['globe']['ellipsoid'],_0x164d29['camera']['positionWC']),_0x1e25a5=_0x1271a7['isPointVisible'](_0x106bf5);if(!_0x1e25a5)return _0x54c12c[_0x14e6e4(0x221)]=0x0,null;}var _0x41591f=Cesium[_0x14e6e4(0x1f7)]['wgs84ToWindowCoordinates'](this['_map']['scene'],_0x106bf5);return _0x41591f?[_0x41591f['x'],_0x41591f['y']]:null;}},{'key':'clear','value':function _0x186cfc(){this['windField']['clear'](),delete this['windData'];}},{'key':'initWorker','value':function _0x2698b4(){var _0x3a410b=_0xf7c89a,_0xdd7e9c=this;this[_0x3a410b(0x191)]=new Worker(this['options']['worker']),this['worker'][_0x3a410b(0x21c)]=function(_0x109355){var _0x5ad387=_0x3a410b;_0xdd7e9c['_drawLines'](_0x109355['data'][_0x5ad387(0x1fe)]),_0xdd7e9c['_updateIng2']=![];},this['windField']={'init':function _0x4775c5(_0x253947){var _0x3afde3=_0x3a410b;_0xdd7e9c[_0x3afde3(0x191)]['postMessage']({'type':'init','options':_0x253947});},'setOptions':function _0x34a13c(_0x5aeb38){var _0x5123b1=_0x3a410b;_0xdd7e9c[_0x5123b1(0x191)]['postMessage']({'type':_0x5123b1(0x170),'options':_0x5aeb38});},'setDate':function _0x15e3a3(_0x148557){_0xdd7e9c['worker']['postMessage']({'type':'setDate','data':_0x148557});},'update':function _0x5b0137(){if(_0xdd7e9c['_updateIng2'])return;_0xdd7e9c['_updateIng2']=!![],_0xdd7e9c['worker']['postMessage']({'type':'update'});},'clear':function _0x5c9f43(){var _0x241ea3=_0x3a410b;_0xdd7e9c[_0x241ea3(0x191)]['postMessage']({'type':_0x241ea3(0x253)});}},this['windField']['init'](this['options']);}}]),_0x48f148;}(BaseLayer);mars3d__namespace['LayerUtil'][_0x521b0e(0x225)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x521b0e(0x1b3)]=CanvasWindField,mars3d__namespace[_0x521b0e(0x1e0)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x521b0e(0x17b)]=WindLayer,exports[_0x521b0e(0x1e0)]=WindUtil,Object['defineProperty'](exports,'__esModule',{'value':!![]});
14
+ 'use strict';var _0x231b9c=_0x134e;(function(_0x860095,_0x5f3636){var _0xc3376b=_0x134e,_0x76b1d1=_0x860095();while(!![]){try{var _0x58c7ef=-parseInt(_0xc3376b(0x111))/0x1*(parseInt(_0xc3376b(0x16d))/0x2)+parseInt(_0xc3376b(0x1c6))/0x3+-parseInt(_0xc3376b(0x17b))/0x4+parseInt(_0xc3376b(0x186))/0x5+parseInt(_0xc3376b(0x18a))/0x6+-parseInt(_0xc3376b(0xe3))/0x7*(-parseInt(_0xc3376b(0x116))/0x8)+-parseInt(_0xc3376b(0x199))/0x9;if(_0x58c7ef===_0x5f3636)break;else _0x76b1d1['push'](_0x76b1d1['shift']());}catch(_0x14c83d){_0x76b1d1['push'](_0x76b1d1['shift']());}}}(_0x2ad6,0xce403));function _interopNamespace(_0x59cdfd){if(_0x59cdfd&&_0x59cdfd['__esModule'])return _0x59cdfd;var _0x173a09=Object['create'](null);return _0x59cdfd&&Object['keys'](_0x59cdfd)['forEach'](function(_0x127b70){var _0x14c7cd=_0x134e;if(_0x127b70!=='default'){var _0x9bd76b=Object[_0x14c7cd(0x13c)](_0x59cdfd,_0x127b70);Object['defineProperty'](_0x173a09,_0x127b70,_0x9bd76b['get']?_0x9bd76b:{'enumerable':!![],'get':function(){return _0x59cdfd[_0x127b70];}});}}),_0x173a09['default']=_0x59cdfd,_0x173a09;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x51c384,_0x5290f9){var _0x2aaecd=_0x134e,_0x2f9e25=_0x51c384*Math['cos'](Cesium$7[_0x2aaecd(0xea)][_0x2aaecd(0x10c)](_0x5290f9));return _0x2f9e25;}function _0x134e(_0x344798,_0xff1c04){var _0x2ad6b7=_0x2ad6();return _0x134e=function(_0x134e0d,_0x4a0592){_0x134e0d=_0x134e0d-0xce;var _0x395ebd=_0x2ad6b7[_0x134e0d];return _0x395ebd;},_0x134e(_0x344798,_0xff1c04);}function getV(_0x4eb65b,_0x376e34){var _0x3539e8=_0x134e,_0x44d922=_0x4eb65b*Math['sin'](Cesium$7[_0x3539e8(0xea)]['toRadians'](_0x376e34));return _0x44d922;}function getSpeed(_0xa46667,_0x3c1699){var _0x38a349=Math['sqrt'](Math['pow'](_0xa46667,0x2)+Math['pow'](_0x3c1699,0x2));return _0x38a349;}function getDirection(_0x479266,_0x2a6c51){var _0x4af61d=Cesium$7['Math']['toDegrees'](Math['atan2'](_0x2a6c51,_0x479266));return _0x4af61d+=_0x4af61d<0x0?0x168:0x0,_0x4af61d;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0xb31876,_0xf7251b){var _0x47f794=_0x134e,_0x47bb31=Object['keys'](_0xb31876);if(Object['getOwnPropertySymbols']){var _0x18fdaf=Object[_0x47f794(0x157)](_0xb31876);_0xf7251b&&(_0x18fdaf=_0x18fdaf['filter'](function(_0x3ae557){return Object['getOwnPropertyDescriptor'](_0xb31876,_0x3ae557)['enumerable'];})),_0x47bb31['push']['apply'](_0x47bb31,_0x18fdaf);}return _0x47bb31;}function _objectSpread2(_0x4bd059){var _0x5da876=_0x134e;for(var _0x43b2bd=0x1;_0x43b2bd<arguments['length'];_0x43b2bd++){var _0xf8fa3=null!=arguments[_0x43b2bd]?arguments[_0x43b2bd]:{};_0x43b2bd%0x2?ownKeys(Object(_0xf8fa3),!0x0)['forEach'](function(_0x286166){_defineProperty(_0x4bd059,_0x286166,_0xf8fa3[_0x286166]);}):Object['getOwnPropertyDescriptors']?Object[_0x5da876(0x125)](_0x4bd059,Object['getOwnPropertyDescriptors'](_0xf8fa3)):ownKeys(Object(_0xf8fa3))['forEach'](function(_0x117bce){var _0x36366f=_0x5da876;Object[_0x36366f(0x112)](_0x4bd059,_0x117bce,Object['getOwnPropertyDescriptor'](_0xf8fa3,_0x117bce));});}return _0x4bd059;}function _classCallCheck(_0x14ae95,_0x54fe90){var _0x42aae3=_0x134e;if(!(_0x14ae95 instanceof _0x54fe90))throw new TypeError(_0x42aae3(0x1d6));}function _defineProperties(_0x437378,_0x395b54){var _0x26d989=_0x134e;for(var _0x336696=0x0;_0x336696<_0x395b54[_0x26d989(0x176)];_0x336696++){var _0x1ce9a9=_0x395b54[_0x336696];_0x1ce9a9['enumerable']=_0x1ce9a9[_0x26d989(0x1b7)]||![],_0x1ce9a9['configurable']=!![];if('value'in _0x1ce9a9)_0x1ce9a9['writable']=!![];Object['defineProperty'](_0x437378,_0x1ce9a9['key'],_0x1ce9a9);}}function _createClass(_0x142677,_0x26fd5a,_0xd7d9f1){if(_0x26fd5a)_defineProperties(_0x142677['prototype'],_0x26fd5a);if(_0xd7d9f1)_defineProperties(_0x142677,_0xd7d9f1);return Object['defineProperty'](_0x142677,'prototype',{'writable':![]}),_0x142677;}function _defineProperty(_0x56b929,_0x26ed03,_0x5d2261){return _0x26ed03 in _0x56b929?Object['defineProperty'](_0x56b929,_0x26ed03,{'value':_0x5d2261,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x56b929[_0x26ed03]=_0x5d2261,_0x56b929;}function _inherits(_0x503d08,_0x154aa3){var _0x295d85=_0x134e;if(typeof _0x154aa3!=='function'&&_0x154aa3!==null)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x503d08[_0x295d85(0xd8)]=Object['create'](_0x154aa3&&_0x154aa3['prototype'],{'constructor':{'value':_0x503d08,'writable':!![],'configurable':!![]}}),Object[_0x295d85(0x112)](_0x503d08,'prototype',{'writable':![]});if(_0x154aa3)_setPrototypeOf(_0x503d08,_0x154aa3);}function _getPrototypeOf(_0x233e4a){var _0x63a2dd=_0x134e;return _getPrototypeOf=Object['setPrototypeOf']?Object[_0x63a2dd(0x106)][_0x63a2dd(0x14a)]():function _0xd633f4(_0x12e618){var _0x44e317=_0x63a2dd;return _0x12e618['__proto__']||Object[_0x44e317(0x106)](_0x12e618);},_getPrototypeOf(_0x233e4a);}function _0x2ad6(){var _0x401dd0=['source','bind','createRawRenderState','forEach','height','frameTime','_data','camera','keys','BaseLayer','canvasHeight','commandType','mod','fill','getOwnPropertySymbols','ComponentDatatype','_onMapWhellEvent','south','framebuffers','umax','destroy','Compute','data','postProcessingSpeed','PixelDatatype','construct','pixelSize','from','frameRate','dropRate','_updateIng2','levmin','string','_map','Arguments','particleSystem','92vGlMPd','viewRectangleToLonLatRange','maxParticles','setGeometry','colorTable','framebuffer','RenderState','destroyObject','currentParticlesPosition','length','preExecute','resize','lng','TextureMagnificationFilter','1400264PyKQQZ','getWind','clear','segments','strokeStyle','speedRate','_speedRate','PI_OVER_THREE','width','scene','now','1181355LbwifZ','fromDegrees','min','setOptions','4948470LTCTjr','createRenderingTextures','visible','show','random','Cesium','globeBoundingSphere','depthTest','off','postProcessingPosition','_onMouseUpEvent','getParticles','toGridXY','textures','lonRange','5361381cJVwjR','wheel','xmax','dimensions','uniformMap','createTexture','autoClear','requestAnimationFrame','setAttribute','Pass','green','canvas','clampToLatitudeRange','getRandomLatLng','NEAREST','100%','add','getColorTexture','mouseMove','init','GeometryAttribute','SceneMode','particlesTextureSize','stroke','particlesComputing','__proto__','windData','applyViewerParameters','none','ymax','enumerable','setPrototypeOf','max','_showHook','defined','outputTexture','drawingBufferHeight','TRIANGLES','cols','windField','addEventListener','createSegmentsGeometry','Framebuffer','once','iterator','2588340Rllsbx','lon','currentTrails','tlat','Cartesian2','particlesNumber','canvasWidth','udata','wgs84ToWindowCoordinates','setData','removeEventListener','__esModule','_onMouseMoveEvent','drawingBufferWidth','SCENE3D','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}','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','update','WindUtil','0px','context','BoundingSphere','fromCssColorString','lat','VertexArray','createWindTextures','options','sqrt','prototype','particles','fragmentShaderSource','createCommand','style','lev','nextTrails','currentTrailsDepth','umin','Rectangle','undefined','106064vkyCHG','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}','initWorker','particlesTextures','Map','globalCompositeOperation','postMessage','Math','wind','isPointVisible','_drawLines','color','lineWidth','mouse_move','canvasWindy','_tomap','_pointerEvents','_setOptionsHook','createComputingPrimitives','getUVByPoint','globe','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','cancelAnimationFrame','canvasContext','worker','vdata','createFramebuffer','maxAge','FLOAT','commandToExecute','vertexArray','getFullscreenQuad','mouseUp','constructor','_onMouseDownEvent','getPrototypeOf','clearCommand','latRange','ShaderSource','pointerEvents','DISABLE_GL_POSITION_LOG_DEPTH','toRadians','left','visibility','viewerParameters','WindLayer','34847FRmPAc','defineProperty','updateViewerParameters','age','_updateIng','776MlvGCX','clearFramebuffers','this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called','_canrefresh','ymin','getOptions','register','depthTexture','particlesRendering','ALWAYS','DrawCommand','addPrimitives','_bilinearInterpolation','PixelFormat','ShaderProgram','defineProperties','rawRenderState','grid','PI_OVER_TWO','nextParticlesSpeed','Draw','push','bindEvent','currentTrailsColor','windTextures','colors','container','updatePosition','xmin','Color','toDegrees','createRenderingPrimitives','mouse_down','redraw','isArray','mouseHidden','STATIC_DRAW','EventType','getOwnPropertyDescriptor','_calcUV','array','attributeLocations','clientHeight','rows','primitives','ClearCommand','_calc_speedRate','shaderProgram','clientWidth','TWO_PI','speedFactor'];_0x2ad6=function(){return _0x401dd0;};return _0x2ad6();}function _setPrototypeOf(_0x13b4af,_0x262198){var _0x293ba4=_0x134e;return _setPrototypeOf=Object['setPrototypeOf']?Object[_0x293ba4(0x1b8)]['bind']():function _0x44252d(_0xe4c72c,_0x3ec3f4){var _0x238ad3=_0x293ba4;return _0xe4c72c[_0x238ad3(0x1b2)]=_0x3ec3f4,_0xe4c72c;},_setPrototypeOf(_0x13b4af,_0x262198);}function _isNativeReflectConstruct(){var _0x2ec5ca=_0x134e;if(typeof Reflect===_0x2ec5ca(0xe2)||!Reflect[_0x2ec5ca(0x162)])return![];if(Reflect['construct']['sham'])return![];if(typeof Proxy==='function')return!![];try{return Boolean['prototype']['valueOf']['call'](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x16f6c7){return![];}}function _assertThisInitialized(_0x2313ce){var _0x35dad1=_0x134e;if(_0x2313ce===void 0x0)throw new ReferenceError(_0x35dad1(0x118));return _0x2313ce;}function _possibleConstructorReturn(_0x5768af,_0x46c693){if(_0x46c693&&(typeof _0x46c693==='object'||typeof _0x46c693==='function'))return _0x46c693;else{if(_0x46c693!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x5768af);}function _createSuper(_0x136a20){var _0x4267d7=_isNativeReflectConstruct();return function _0x285acf(){var _0x106bca=_0x134e,_0x2b0555=_getPrototypeOf(_0x136a20),_0x87b6e6;if(_0x4267d7){var _0x694bcd=_getPrototypeOf(this)[_0x106bca(0x104)];_0x87b6e6=Reflect['construct'](_0x2b0555,arguments,_0x694bcd);}else _0x87b6e6=_0x2b0555['apply'](this,arguments);return _possibleConstructorReturn(this,_0x87b6e6);};}function _toConsumableArray(_0x48093d){return _arrayWithoutHoles(_0x48093d)||_iterableToArray(_0x48093d)||_unsupportedIterableToArray(_0x48093d)||_nonIterableSpread();}function _arrayWithoutHoles(_0x56b6fc){var _0x4944ba=_0x134e;if(Array[_0x4944ba(0x138)](_0x56b6fc))return _arrayLikeToArray(_0x56b6fc);}function _iterableToArray(_0x1d6a91){var _0x275be4=_0x134e;if(typeof Symbol!=='undefined'&&_0x1d6a91[Symbol[_0x275be4(0x1c5)]]!=null||_0x1d6a91['@@iterator']!=null)return Array[_0x275be4(0x164)](_0x1d6a91);}function _unsupportedIterableToArray(_0x2eb982,_0x241b5a){var _0x3a3208=_0x134e;if(!_0x2eb982)return;if(typeof _0x2eb982===_0x3a3208(0x169))return _arrayLikeToArray(_0x2eb982,_0x241b5a);var _0x265779=Object['prototype']['toString']['call'](_0x2eb982)['slice'](0x8,-0x1);if(_0x265779==='Object'&&_0x2eb982['constructor'])_0x265779=_0x2eb982['constructor']['name'];if(_0x265779===_0x3a3208(0xe7)||_0x265779==='Set')return Array['from'](_0x2eb982);if(_0x265779===_0x3a3208(0x16b)||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x265779))return _arrayLikeToArray(_0x2eb982,_0x241b5a);}function _arrayLikeToArray(_0x5621fa,_0x289a9e){if(_0x289a9e==null||_0x289a9e>_0x5621fa['length'])_0x289a9e=_0x5621fa['length'];for(var _0x49e36a=0x0,_0x3ed000=new Array(_0x289a9e);_0x49e36a<_0x289a9e;_0x49e36a++)_0x3ed000[_0x49e36a]=_0x5621fa[_0x49e36a];return _0x3ed000;}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 _0x4febdc=_0x134e;function _0x38c8d6(_0x2bb9df){var _0x3d43a6=_0x134e,_0x15525b;_classCallCheck(this,_0x38c8d6),this[_0x3d43a6(0x154)]=_0x2bb9df['commandType'],this['geometry']=_0x2bb9df['geometry'],this['attributeLocations']=_0x2bb9df['attributeLocations'],this['primitiveType']=_0x2bb9df['primitiveType'],this['uniformMap']=_0x2bb9df['uniformMap'],this['vertexShaderSource']=_0x2bb9df['vertexShaderSource'],this['fragmentShaderSource']=_0x2bb9df[_0x3d43a6(0xda)],this['rawRenderState']=_0x2bb9df[_0x3d43a6(0x126)],this[_0x3d43a6(0x172)]=_0x2bb9df['framebuffer'],this['outputTexture']=_0x2bb9df['outputTexture'],this['autoClear']=(_0x15525b=_0x2bb9df['autoClear'])!==null&&_0x15525b!==void 0x0?_0x15525b:![],this['preExecute']=_0x2bb9df['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this[_0x3d43a6(0x107)]=undefined,this[_0x3d43a6(0x19f)]&&(this['clearCommand']=new Cesium$6[(_0x3d43a6(0x143))]({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Cesium$6[_0x3d43a6(0x1a2)]['OPAQUE']}));}return _createClass(_0x38c8d6,[{'key':_0x4febdc(0xdb),'value':function _0x16b2da(_0x5571a6){var _0x34049e=_0x4febdc;switch(this['commandType']){case _0x34049e(0x12a):{var _0x369b55=Cesium$6['VertexArray']['fromGeometry']({'context':_0x5571a6,'geometry':this['geometry'],'attributeLocations':this[_0x34049e(0x13f)],'bufferUsage':Cesium$6['BufferUsage'][_0x34049e(0x13a)]}),_0x31b719=Cesium$6[_0x34049e(0x124)]['fromCache']({'context':_0x5571a6,'attributeLocations':this['attributeLocations'],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this['fragmentShaderSource']}),_0xa006c5=Cesium$6[_0x34049e(0x173)]['fromCache'](this['rawRenderState']);return new Cesium$6[(_0x34049e(0x120))]({'primitiveType':this['primitiveType'],'shaderProgram':_0x31b719,'vertexArray':_0x369b55,'modelMatrix':Cesium$6['Matrix4']['IDENTITY'],'renderState':_0xa006c5,'uniformMap':this[_0x34049e(0x19d)],'castShadows':![],'receiveShadows':![],'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass']['OPAQUE'],'pickOnly':!![],'owner':this});}case'Compute':{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this['uniformMap'],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':_0x4febdc(0x170),'value':function _0x4e0ca1(_0x52c70e,_0x406add){var _0x418e1a=_0x4febdc;this['geometry']=_0x406add;var _0x25a778=Cesium$6[_0x418e1a(0xd4)]['fromGeometry']({'context':_0x52c70e,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage'][_0x418e1a(0x13a)]});this[_0x418e1a(0x100)]['vertexArray']=_0x25a778;}},{'key':'update','value':function _0x3e83b8(_0x49cfc7){var _0x15f7a8=_0x4febdc;if(!this[_0x15f7a8(0x18d)])return;if(_0x49cfc7['mode']!==Cesium$6['SceneMode']['SCENE3D'])return;!Cesium$6['defined'](this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x49cfc7[_0x15f7a8(0xd0)])),Cesium$6['defined'](this['preExecute'])&&this[_0x15f7a8(0x177)](),Cesium$6['defined'](this['clearCommand'])&&_0x49cfc7['commandList']['push'](this['clearCommand']),_0x49cfc7['commandList'][_0x15f7a8(0x12b)](this['commandToExecute']);}},{'key':'isDestroyed','value':function _0x3df103(){return![];}},{'key':'destroy','value':function _0x9eec8b(){var _0x1c4683=_0x4febdc;if(this['clearCommand']){var _0x551381,_0x34183a;(_0x551381=this[_0x1c4683(0x107)])!==null&&_0x551381!==void 0x0&&_0x551381['vertexArray']&&this['clearCommand'][_0x1c4683(0x101)]['destroy'](),(_0x34183a=this[_0x1c4683(0x107)])!==null&&_0x34183a!==void 0x0&&_0x34183a['shaderProgram']&&this['clearCommand'][_0x1c4683(0x145)][_0x1c4683(0x15d)](),delete this['clearCommand'];}return this[_0x1c4683(0x100)]&&(this['commandToExecute']['vertexArray']&&this['commandToExecute'][_0x1c4683(0x101)]['destroy'](),this['commandToExecute'][_0x1c4683(0x145)]&&this['commandToExecute']['shaderProgram']['destroy'](),delete this['commandToExecute']),Cesium$6[_0x1c4683(0x174)](this);}}]),_0x38c8d6;}()),Cesium$5=mars3d__namespace['Cesium'],Util=(function(){var _0xca3201=function _0x28f62c(){var _0x2d5f80=_0x134e,_0x4a4eb6=new Cesium$5['Geometry']({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype'][_0x2d5f80(0xff)],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5[(_0x2d5f80(0x1ad))]({'componentDatatype':Cesium$5[_0x2d5f80(0x158)][_0x2d5f80(0xff)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x4a4eb6;},_0x3fec32=function _0xab1b5c(_0x20cda1,_0x161c50){var _0x5684be=_0x134e;if(Cesium$5[_0x5684be(0x1bb)](_0x161c50)){var _0x598af3={};_0x598af3['arrayBufferView']=_0x161c50,_0x20cda1[_0x5684be(0x149)]=_0x598af3;}var _0x45fbe3=new Cesium$5['Texture'](_0x20cda1);return _0x45fbe3;},_0x5b7788=function _0x1fc609(_0x5d6431,_0x46a8d4,_0x1bdfb2){var _0x50dbe2=_0x134e,_0x4635d6=new Cesium$5[(_0x50dbe2(0x1c3))]({'context':_0x5d6431,'colorTextures':[_0x46a8d4],'depthTexture':_0x1bdfb2});return _0x4635d6;},_0x452681=function _0x558a31(_0x21b0ed){var _0x2122fe=_0x134e,_0x2f469c=!![],_0x5c1ac1=![],_0x2b766={'viewport':_0x21b0ed['viewport'],'depthTest':_0x21b0ed[_0x2122fe(0x191)],'depthMask':_0x21b0ed['depthMask'],'blending':_0x21b0ed['blending']},_0x46b235=Cesium$5['Appearance']['getDefaultRenderState'](_0x2f469c,_0x5c1ac1,_0x2b766);return _0x46b235;},_0x38a012=function _0x5137d2(_0x3b90f7){var _0x5ba25d=_0x134e,_0x37f686={},_0x5b27e2=Cesium$5[_0x5ba25d(0xea)][_0x5ba25d(0x155)](_0x3b90f7['west'],Cesium$5['Math'][_0x5ba25d(0x147)]),_0x4a71a4=Cesium$5['Math']['mod'](_0x3b90f7['east'],Cesium$5['Math'][_0x5ba25d(0x147)]),_0x20d6f3=_0x3b90f7['width'],_0x4cd7e8,_0x255ebb;_0x20d6f3>Cesium$5[_0x5ba25d(0xea)]['THREE_PI_OVER_TWO']?(_0x4cd7e8=0x0,_0x255ebb=Cesium$5['Math']['TWO_PI']):_0x4a71a4-_0x5b27e2<_0x20d6f3?(_0x4cd7e8=_0x5b27e2,_0x255ebb=_0x5b27e2+_0x20d6f3):(_0x4cd7e8=_0x5b27e2,_0x255ebb=_0x4a71a4);_0x37f686['lon']={'min':Cesium$5['Math']['toDegrees'](_0x4cd7e8),'max':Cesium$5['Math'][_0x5ba25d(0x134)](_0x255ebb)};var _0x38b579=_0x3b90f7[_0x5ba25d(0x15a)],_0x8baa19=_0x3b90f7['north'],_0x2f6fc6=_0x3b90f7['height'],_0x196b5f=_0x2f6fc6>Cesium$5['Math']['PI']/0xc?_0x2f6fc6/0x2:0x0,_0x45b6a0=Cesium$5[_0x5ba25d(0xea)][_0x5ba25d(0x1a5)](_0x38b579-_0x196b5f),_0x476f76=Cesium$5['Math']['clampToLatitudeRange'](_0x8baa19+_0x196b5f);return _0x45b6a0<-Cesium$5['Math']['PI_OVER_THREE']&&(_0x45b6a0=-Cesium$5[_0x5ba25d(0xea)][_0x5ba25d(0x128)]),_0x476f76>Cesium$5[_0x5ba25d(0xea)][_0x5ba25d(0x182)]&&(_0x476f76=Cesium$5['Math']['PI_OVER_TWO']),_0x37f686['lat']={'min':Cesium$5['Math']['toDegrees'](_0x45b6a0),'max':Cesium$5[_0x5ba25d(0xea)]['toDegrees'](_0x476f76)},_0x37f686;};return{'getFullscreenQuad':_0xca3201,'createTexture':_0x3fec32,'createFramebuffer':_0x5b7788,'createRawRenderState':_0x452681,'viewRectangleToLonLatRange':_0x38a012};}()),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=_0x231b9c(0xe4),trailDraw_frag=_0x231b9c(0x1d5),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 _0x292f3a=_0x231b9c;function _0x32680a(_0x1db2f1,_0x2ad5ce,_0x4b85d9,_0x3a47df,_0x3a9ee3){var _0x3d3ce1=_0x134e;_classCallCheck(this,_0x32680a),this['createRenderingTextures'](_0x1db2f1,_0x2ad5ce,_0x4b85d9[_0x3d3ce1(0x12f)]),this['createRenderingFramebuffers'](_0x1db2f1),this[_0x3d3ce1(0x135)](_0x1db2f1,_0x4b85d9,_0x3a47df,_0x3a9ee3);}return _createClass(_0x32680a,[{'key':_0x292f3a(0x18b),'value':function _0x3561e9(_0xf0a9aa,_0x591cfc,_0x16337c){var _0x326fe3=_0x292f3a,_0x33b254={'context':_0xf0a9aa,'width':_0xf0a9aa[_0x326fe3(0x1d3)],'height':_0xf0a9aa['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat']['RGBA'],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_BYTE']},_0x558415={'context':_0xf0a9aa,'width':_0xf0a9aa[_0x326fe3(0x1d3)],'height':_0xf0a9aa['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat']['DEPTH_COMPONENT'],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_INT']},_0x56589c=_0x16337c['length'],_0xdffef8=new Float32Array(_0x56589c*0x3);for(var _0x37e186=0x0;_0x37e186<_0x56589c;_0x37e186++){var _0x5aa4e1=Cesium$4[_0x326fe3(0x133)][_0x326fe3(0xd2)](_0x16337c[_0x37e186]);_0xdffef8[0x3*_0x37e186]=_0x5aa4e1['red'],_0xdffef8[0x3*_0x37e186+0x1]=_0x5aa4e1[_0x326fe3(0x1a3)],_0xdffef8[0x3*_0x37e186+0x2]=_0x5aa4e1['blue'];}var _0x2ee318={'context':_0xf0a9aa,'width':_0x56589c,'height':0x1,'pixelFormat':Cesium$4[_0x326fe3(0x123)]['RGB'],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4['TextureMinificationFilter']['LINEAR'],'magnificationFilter':Cesium$4['TextureMagnificationFilter']['LINEAR']})};this['textures']={'segmentsColor':Util['createTexture'](_0x33b254),'segmentsDepth':Util['createTexture'](_0x558415),'currentTrailsColor':Util['createTexture'](_0x33b254),'currentTrailsDepth':Util[_0x326fe3(0x19e)](_0x558415),'nextTrailsColor':Util['createTexture'](_0x33b254),'nextTrailsDepth':Util[_0x326fe3(0x19e)](_0x558415),'colorTable':Util['createTexture'](_0x2ee318,_0xdffef8)};}},{'key':'createRenderingFramebuffers','value':function _0xda0575(_0x5716a4){var _0x5f3ecd=_0x292f3a;this[_0x5f3ecd(0x15b)]={'segments':Util['createFramebuffer'](_0x5716a4,this['textures']['segmentsColor'],this['textures']['segmentsDepth']),'currentTrails':Util['createFramebuffer'](_0x5716a4,this['textures'][_0x5f3ecd(0x12d)],this['textures'][_0x5f3ecd(0xdf)]),'nextTrails':Util[_0x5f3ecd(0xfd)](_0x5716a4,this['textures']['nextTrailsColor'],this[_0x5f3ecd(0x197)]['nextTrailsDepth'])};}},{'key':_0x292f3a(0x1c2),'value':function _0x5aa5d2(_0x2cff30){var _0x5d978d=_0x292f3a,_0x59d58e=0x4,_0x1cb3a7=[];for(var _0x210184=0x0;_0x210184<_0x2cff30['particlesTextureSize'];_0x210184++){for(var _0x33d81f=0x0;_0x33d81f<_0x2cff30['particlesTextureSize'];_0x33d81f++){for(var _0x2b083c=0x0;_0x2b083c<_0x59d58e;_0x2b083c++){_0x1cb3a7[_0x5d978d(0x12b)](_0x210184/_0x2cff30['particlesTextureSize']),_0x1cb3a7['push'](_0x33d81f/_0x2cff30['particlesTextureSize']);}}}_0x1cb3a7=new Float32Array(_0x1cb3a7);var _0x9c11ad=[],_0x47f9a8=[-0x1,0x1],_0x2be919=[-0x1,0x1];for(var _0x2bfc97=0x0;_0x2bfc97<_0x2cff30[_0x5d978d(0x16f)];_0x2bfc97++){for(var _0x18e651=0x0;_0x18e651<_0x59d58e/0x2;_0x18e651++){for(var _0x584b58=0x0;_0x584b58<_0x59d58e/0x2;_0x584b58++){_0x9c11ad['push'](_0x47f9a8[_0x18e651]),_0x9c11ad['push'](_0x2be919[_0x584b58]),_0x9c11ad[_0x5d978d(0x12b)](0x0);}}}_0x9c11ad=new Float32Array(_0x9c11ad);var _0xaaa657=0x6*_0x2cff30[_0x5d978d(0x16f)],_0x419312=new Uint32Array(_0xaaa657);for(var _0x230dd1=0x0,_0x56d994=0x0,_0xe76da0=0x0;_0x230dd1<_0x2cff30[_0x5d978d(0x16f)];_0x230dd1++){_0x419312[_0x56d994++]=_0xe76da0+0x0,_0x419312[_0x56d994++]=_0xe76da0+0x1,_0x419312[_0x56d994++]=_0xe76da0+0x2,_0x419312[_0x56d994++]=_0xe76da0+0x2,_0x419312[_0x56d994++]=_0xe76da0+0x1,_0x419312[_0x56d994++]=_0xe76da0+0x3,_0xe76da0+=0x4;}var _0xf8b8c0=new Cesium$4['Geometry']({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4[_0x5d978d(0x158)]['FLOAT'],'componentsPerAttribute':0x2,'values':_0x1cb3a7}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4[_0x5d978d(0x158)][_0x5d978d(0xff)],'componentsPerAttribute':0x3,'values':_0x9c11ad})}),'indices':_0x419312});return _0xf8b8c0;}},{'key':'createRenderingPrimitives','value':function _0x12a554(_0xba0653,_0x3cabcd,_0xba134,_0x489515){var _0x163dcb=_0x292f3a,_0xc7b8d9=this;this['primitives']={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'st':0x0,'normal':0x1},'geometry':this['createSegmentsGeometry'](_0x3cabcd),'primitiveType':Cesium$4['PrimitiveType'][_0x163dcb(0x1be)],'uniformMap':{'currentParticlesPosition':function _0x1d830d(){return _0x489515['particlesTextures']['currentParticlesPosition'];},'postProcessingPosition':function _0x3b4106(){var _0x30a966=_0x163dcb;return _0x489515[_0x30a966(0xe6)][_0x30a966(0x193)];},'postProcessingSpeed':function _0x502121(){return _0x489515['particlesTextures']['postProcessingSpeed'];},'colorTable':function _0x558819(){var _0x1a6594=_0x163dcb;return _0xc7b8d9[_0x1a6594(0x197)]['colorTable'];},'aspect':function _0x3c1cd0(){return _0xba0653['drawingBufferWidth']/_0xba0653['drawingBufferHeight'];},'pixelSize':function _0xd027c3(){return _0xba134['pixelSize'];},'lineWidth':function _0x1f1eab(){var _0x1167d4=_0x163dcb;return _0x3cabcd[_0x1167d4(0xef)];},'particleHeight':function _0x119dc7(){return _0x3cabcd['particleHeight'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4[(_0x163dcb(0x109))]({'sources':[segmentDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this['framebuffers']['segments'],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x163dcb(0x12a),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x163dcb(0x102)](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0x263b5d(){return _0xc7b8d9['textures']['segmentsColor'];},'segmentsDepthTexture':function _0x24d599(){return _0xc7b8d9['textures']['segmentsDepth'];},'currentTrailsColor':function _0x29d265(){var _0x3c40ad=_0x163dcb;return _0xc7b8d9[_0x3c40ad(0x15b)]['currentTrails'][_0x3c40ad(0x1aa)](0x0);},'trailsDepthTexture':function _0x178230(){var _0x35229f=_0x163dcb;return _0xc7b8d9[_0x35229f(0x15b)][_0x35229f(0x1c8)]['depthTexture'];},'fadeOpacity':function _0x55761d(){return _0x3cabcd['fadeOpacity'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x163dcb(0xf8)],'sources':[trailDraw_frag]}),'rawRenderState':Util[_0x163dcb(0x14b)]({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction'][_0x163dcb(0x11f)]},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function _0x2a8227(){var _0x2ab3e7=_0x163dcb,_0x1b83aa=_0xc7b8d9[_0x2ab3e7(0x15b)]['currentTrails'];_0xc7b8d9[_0x2ab3e7(0x15b)]['currentTrails']=_0xc7b8d9['framebuffers'][_0x2ab3e7(0xde)],_0xc7b8d9['framebuffers']['nextTrails']=_0x1b83aa,_0xc7b8d9['primitives']['trails'][_0x2ab3e7(0x100)][_0x2ab3e7(0x172)]=_0xc7b8d9[_0x2ab3e7(0x15b)]['nextTrails'],_0xc7b8d9['primitives']['trails']['clearCommand']['framebuffer']=_0xc7b8d9['framebuffers'][_0x2ab3e7(0xde)];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType'][_0x163dcb(0x1be)],'uniformMap':{'trailsColorTexture':function _0x2d1716(){return _0xc7b8d9['framebuffers']['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x6bb73(){var _0x506ea2=_0x163dcb;return _0xc7b8d9[_0x506ea2(0x15b)]['nextTrails'][_0x506ea2(0x11d)];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x163dcb(0x10b)],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x163dcb(0xf8)],'sources':[screenDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x32680a;}()),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='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}',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 _0x13a3a0=_0x231b9c;function _0x5cee30(_0x2a1b6a,_0x272b34,_0x3339f3,_0x4b7455){var _0x5cb5bb=_0x134e;_classCallCheck(this,_0x5cee30),this['data']=_0x272b34,this[_0x5cb5bb(0xd5)](_0x2a1b6a,_0x272b34),this['createParticlesTextures'](_0x2a1b6a,_0x3339f3,_0x4b7455),this['createComputingPrimitives'](_0x272b34,_0x3339f3,_0x4b7455);}return _createClass(_0x5cee30,[{'key':'createWindTextures','value':function _0x2344ca(_0x3955a9,_0x39b6d8){var _0x55422f=_0x134e,_0x26984d={'context':_0x3955a9,'width':_0x39b6d8['dimensions'][_0x55422f(0x1c7)],'height':_0x39b6d8['dimensions']['lat']*(_0x39b6d8[_0x55422f(0x19c)]['lev']||0x1),'pixelFormat':Cesium$3[_0x55422f(0x123)]['LUMINANCE'],'pixelDatatype':Cesium$3['PixelDatatype'][_0x55422f(0xff)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0x55422f(0x1a7)],'magnificationFilter':Cesium$3[_0x55422f(0x17a)]['NEAREST']})};this[_0x55422f(0x12e)]={'U':Util['createTexture'](_0x26984d,_0x39b6d8['U'][_0x55422f(0x13e)]),'V':Util['createTexture'](_0x26984d,_0x39b6d8['V'][_0x55422f(0x13e)])};}},{'key':'createParticlesTextures','value':function _0x25e902(_0x91ad84,_0x5c2e61,_0x264b5e){var _0x5a9080=_0x134e,_0x201d25={'context':_0x91ad84,'width':_0x5c2e61['particlesTextureSize'],'height':_0x5c2e61[_0x5a9080(0x1af)],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3[_0x5a9080(0x161)]['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})},_0x491aca=this['randomizeParticles'](_0x5c2e61[_0x5a9080(0x16f)],_0x264b5e),_0x5a11ee=new Float32Array(0x4*_0x5c2e61[_0x5a9080(0x16f)])[_0x5a9080(0x156)](0x0);this['particlesTextures']={'particlesWind':Util['createTexture'](_0x201d25),'currentParticlesPosition':Util['createTexture'](_0x201d25,_0x491aca),'nextParticlesPosition':Util['createTexture'](_0x201d25,_0x491aca),'currentParticlesSpeed':Util['createTexture'](_0x201d25,_0x5a11ee),'nextParticlesSpeed':Util['createTexture'](_0x201d25,_0x5a11ee),'postProcessingPosition':Util[_0x5a9080(0x19e)](_0x201d25,_0x491aca),'postProcessingSpeed':Util[_0x5a9080(0x19e)](_0x201d25,_0x5a11ee)};}},{'key':'randomizeParticles','value':function _0x7d5ef1(_0x1a41a0,_0x552887){var _0x584968=_0x134e,_0x223a03=new Float32Array(0x4*_0x1a41a0);for(var _0x528528=0x0;_0x528528<_0x1a41a0;_0x528528++){_0x223a03[0x4*_0x528528]=Cesium$3['Math']['randomBetween'](_0x552887['lonRange']['x'],_0x552887['lonRange']['y']),_0x223a03[0x4*_0x528528+0x1]=Cesium$3['Math']['randomBetween'](_0x552887[_0x584968(0x108)]['x'],_0x552887['latRange']['y']),_0x223a03[0x4*_0x528528+0x2]=Cesium$3['Math']['randomBetween'](this['data']['lev']['min'],this['data'][_0x584968(0xdd)][_0x584968(0x1b9)]),_0x223a03[0x4*_0x528528+0x3]=0x0;}return _0x223a03;}},{'key':'destroyParticlesTextures','value':function _0x8516b8(){var _0x5a8f9e=this;Object['keys'](this['particlesTextures'])['forEach'](function(_0x358674){_0x5a8f9e['particlesTextures'][_0x358674]['destroy']();});}},{'key':_0x13a3a0(0xf5),'value':function _0x193481(_0x20cb6c,_0x56ce29,_0x1c690a){var _0x339156=_0x13a3a0,_0x55b57e=new Cesium$3['Cartesian3'](_0x20cb6c['dimensions'][_0x339156(0x1c7)],_0x20cb6c[_0x339156(0x19c)][_0x339156(0xd3)],_0x20cb6c['dimensions']['lev']),_0x3a8dbf=new Cesium$3['Cartesian3'](_0x20cb6c['lon']['min'],_0x20cb6c['lat']['min'],_0x20cb6c['lev']['min']),_0x4667de=new Cesium$3['Cartesian3'](_0x20cb6c['lon']['max'],_0x20cb6c['lat'][_0x339156(0x1b9)],_0x20cb6c['lev']['max']),_0x2a2f61=new Cesium$3['Cartesian3']((_0x4667de['x']-_0x3a8dbf['x'])/(_0x55b57e['x']-0x1),(_0x4667de['y']-_0x3a8dbf['y'])/(_0x55b57e['y']-0x1),_0x55b57e['z']>0x1?(_0x4667de['z']-_0x3a8dbf['z'])/(_0x55b57e['z']-0x1):0x1),_0x444e47=new Cesium$3[(_0x339156(0x1ca))](_0x20cb6c['U'][_0x339156(0x188)],_0x20cb6c['U']['max']),_0x5471c7=new Cesium$3['Cartesian2'](_0x20cb6c['V']['min'],_0x20cb6c['V'][_0x339156(0x1b9)]),_0x4ea826=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':function _0x3721bc(){return _0x4ea826['windTextures']['U'];},'V':function _0x34296f(){var _0x4e2b88=_0x339156;return _0x4ea826[_0x4e2b88(0x12e)]['V'];},'currentParticlesPosition':function _0x4fd714(){var _0x3a0c7d=_0x339156;return _0x4ea826['particlesTextures'][_0x3a0c7d(0x175)];},'dimension':function _0x5135ea(){return _0x55b57e;},'minimum':function _0x3b027e(){return _0x3a8dbf;},'maximum':function _0x1334ae(){return _0x4667de;},'interval':function _0x4d3084(){return _0x2a2f61;}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[getWind_frag]}),'outputTexture':this['particlesTextures']['particlesWind'],'preExecute':function _0x4f668d(){var _0x54aa1b=_0x339156;_0x4ea826['primitives']['getWind']['commandToExecute'][_0x54aa1b(0x1bc)]=_0x4ea826['particlesTextures']['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':_0x339156(0x15e),'uniformMap':{'currentParticlesSpeed':function _0x5177f9(){return _0x4ea826['particlesTextures']['currentParticlesSpeed'];},'particlesWind':function _0xe67ca4(){var _0x4feb35=_0x339156;return _0x4ea826[_0x4feb35(0xe6)]['particlesWind'];},'uSpeedRange':function _0x2762bf(){return _0x444e47;},'vSpeedRange':function _0x5fb711(){return _0x5471c7;},'pixelSize':function _0x310775(){var _0xcc5ff6=_0x339156;return _0x1c690a[_0xcc5ff6(0x163)];},'speedFactor':function _0x160141(){var _0x58eaff=_0x339156;return _0x56ce29[_0x58eaff(0x148)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updateSpeed_frag]}),'outputTexture':this[_0x339156(0xe6)]['nextParticlesSpeed'],'preExecute':function _0x1d6af5(){var _0x5258e4=_0x339156,_0x344318=_0x4ea826[_0x5258e4(0xe6)]['currentParticlesSpeed'];_0x4ea826['particlesTextures']['currentParticlesSpeed']=_0x4ea826[_0x5258e4(0xe6)]['postProcessingSpeed'],_0x4ea826[_0x5258e4(0xe6)][_0x5258e4(0x160)]=_0x344318,_0x4ea826[_0x5258e4(0x142)]['updateSpeed'][_0x5258e4(0x100)]['outputTexture']=_0x4ea826['particlesTextures']['nextParticlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x16bad9(){return _0x4ea826['particlesTextures']['currentParticlesPosition'];},'currentParticlesSpeed':function _0x16c20e(){var _0x1d3e05=_0x339156;return _0x4ea826[_0x1d3e05(0xe6)]['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0x569fcb(){var _0x5ae638=_0x339156,_0x32de19=_0x4ea826['particlesTextures'][_0x5ae638(0x175)];_0x4ea826['particlesTextures']['currentParticlesPosition']=_0x4ea826['particlesTextures']['postProcessingPosition'],_0x4ea826['particlesTextures'][_0x5ae638(0x193)]=_0x32de19,_0x4ea826['primitives']['updatePosition']['commandToExecute']['outputTexture']=_0x4ea826['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0x455988(){return _0x4ea826['particlesTextures']['nextParticlesPosition'];},'nextParticlesSpeed':function _0x2d2b40(){var _0x19b551=_0x339156;return _0x4ea826['particlesTextures'][_0x19b551(0x129)];},'lonRange':function _0x25002c(){return _0x1c690a['lonRange'];},'latRange':function _0x315c22(){var _0x10603e=_0x339156;return _0x1c690a[_0x10603e(0x108)];},'randomCoefficient':function _0x2219cf(){var _0x19484e=Math['random']();return _0x19484e;},'dropRate':function _0x7b286d(){return _0x56ce29['dropRate'];},'dropRateBump':function _0x1566a5(){return _0x56ce29['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':function _0x4e479d(){var _0x432695=_0x339156;_0x4ea826['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=_0x4ea826['particlesTextures'][_0x432695(0x193)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':_0x339156(0x15e),'uniformMap':{'postProcessingPosition':function _0x4fc1a8(){return _0x4ea826['particlesTextures']['postProcessingPosition'];},'nextParticlesSpeed':function _0x3a30a4(){return _0x4ea826['particlesTextures']['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingSpeed_frag]}),'outputTexture':this['particlesTextures']['postProcessingSpeed'],'preExecute':function _0x22c4ea(){var _0xf4dc57=_0x339156;_0x4ea826[_0xf4dc57(0x142)]['postProcessingSpeed'][_0xf4dc57(0x100)]['outputTexture']=_0x4ea826['particlesTextures'][_0xf4dc57(0x160)];}})};}}]),_0x5cee30;}()),Cesium$2=mars3d__namespace[_0x231b9c(0x18f)],ParticleSystem=(function(){var _0xab842b=_0x231b9c;function _0x5a571f(_0x313967,_0x3d7d29,_0x49cc7f,_0x4d2ea2){var _0x5c08c4=_0x134e;_classCallCheck(this,_0x5a571f),this['context']=_0x313967,_0x3d7d29=_objectSpread2({},_0x3d7d29);if(_0x3d7d29['udata']&&_0x3d7d29['vdata']){var _0x53eb78,_0x569f88,_0x497fed,_0x52aa2,_0x7a54ad,_0x5ddb8c;_0x3d7d29[_0x5c08c4(0x19c)]={},_0x3d7d29[_0x5c08c4(0x19c)]['lon']=_0x3d7d29[_0x5c08c4(0x1bf)],_0x3d7d29['dimensions'][_0x5c08c4(0xd3)]=_0x3d7d29['rows'],_0x3d7d29['dimensions'][_0x5c08c4(0xdd)]=_0x3d7d29['lev']||0x1,_0x3d7d29['lon']={},_0x3d7d29[_0x5c08c4(0x1c7)]['min']=_0x3d7d29['xmin'],_0x3d7d29['lon'][_0x5c08c4(0x1b9)]=_0x3d7d29[_0x5c08c4(0x19b)],_0x3d7d29['lat']={},_0x3d7d29['lat']['min']=_0x3d7d29['ymin'],_0x3d7d29['lat']['max']=_0x3d7d29['ymax'],_0x3d7d29['lev']={},_0x3d7d29[_0x5c08c4(0xdd)]['min']=(_0x53eb78=_0x3d7d29[_0x5c08c4(0x168)])!==null&&_0x53eb78!==void 0x0?_0x53eb78:0x1,_0x3d7d29[_0x5c08c4(0xdd)]['max']=(_0x569f88=_0x3d7d29['levmax'])!==null&&_0x569f88!==void 0x0?_0x569f88:0x1,_0x3d7d29['U']={},_0x3d7d29['U']['array']=new Float32Array(_0x3d7d29[_0x5c08c4(0x1cd)]),_0x3d7d29['U']['min']=(_0x497fed=_0x3d7d29[_0x5c08c4(0xe0)])!==null&&_0x497fed!==void 0x0?_0x497fed:Math[_0x5c08c4(0x188)]['apply'](Math,_toConsumableArray(_0x3d7d29['udata'])),_0x3d7d29['U']['max']=(_0x52aa2=_0x3d7d29[_0x5c08c4(0x15c)])!==null&&_0x52aa2!==void 0x0?_0x52aa2:Math['max']['apply'](Math,_toConsumableArray(_0x3d7d29[_0x5c08c4(0x1cd)])),_0x3d7d29['V']={},_0x3d7d29['V'][_0x5c08c4(0x13e)]=new Float32Array(_0x3d7d29[_0x5c08c4(0xfc)]),_0x3d7d29['V']['min']=(_0x7a54ad=_0x3d7d29['vmin'])!==null&&_0x7a54ad!==void 0x0?_0x7a54ad:Math[_0x5c08c4(0x188)]['apply'](Math,_toConsumableArray(_0x3d7d29[_0x5c08c4(0xfc)])),_0x3d7d29['V']['max']=(_0x5ddb8c=_0x3d7d29['vmax'])!==null&&_0x5ddb8c!==void 0x0?_0x5ddb8c:Math['max']['apply'](Math,_toConsumableArray(_0x3d7d29['vdata']));}this['data']=_0x3d7d29,this['options']=_0x49cc7f,this[_0x5c08c4(0x10f)]=_0x4d2ea2,this[_0x5c08c4(0x1b1)]=new ParticlesComputing(this[_0x5c08c4(0xd0)],this[_0x5c08c4(0x15f)],this[_0x5c08c4(0xd6)],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this[_0x5c08c4(0xd0)],this['data'],this[_0x5c08c4(0xd6)],this[_0x5c08c4(0x10f)],this['particlesComputing']);}return _createClass(_0x5a571f,[{'key':'canvasResize','value':function _0x107af1(_0x2789e7){var _0x25a590=_0x134e,_0x522e7b=this;this[_0x25a590(0x1b1)]['destroyParticlesTextures'](),Object['keys'](this['particlesComputing']['windTextures'])['forEach'](function(_0x56bb9a){_0x522e7b['particlesComputing']['windTextures'][_0x56bb9a]['destroy']();}),this[_0x25a590(0x11e)][_0x25a590(0x197)]['colorTable']['destroy'](),Object[_0x25a590(0x151)](this['particlesRendering'][_0x25a590(0x15b)])['forEach'](function(_0x440ee0){_0x522e7b['particlesRendering']['framebuffers'][_0x440ee0]['destroy']();}),this['context']=_0x2789e7,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['particlesComputing']);}},{'key':_0xab842b(0x117),'value':function _0x2b6fab(){var _0x54d7b4=_0xab842b,_0x4f7e2a=this,_0x521e08=new Cesium$2['ClearCommand']({'color':new Cesium$2[(_0x54d7b4(0x133))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass']['OPAQUE']});Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](function(_0x3004bb){var _0x3118f0=_0x54d7b4;_0x521e08['framebuffer']=_0x4f7e2a['particlesRendering'][_0x3118f0(0x15b)][_0x3004bb],_0x521e08['execute'](_0x4f7e2a[_0x3118f0(0xd0)]);});}},{'key':'refreshParticles','value':function _0x3d3039(_0x286fee){var _0x41d0e7=_0xab842b;this[_0x41d0e7(0x117)](),this['particlesComputing']['destroyParticlesTextures'](),this['particlesComputing']['createParticlesTextures'](this['context'],this['options'],this['viewerParameters']);if(_0x286fee){var _0x3729d4=this[_0x41d0e7(0x11e)]['createSegmentsGeometry'](this[_0x41d0e7(0xd6)]);this[_0x41d0e7(0x11e)][_0x41d0e7(0x142)][_0x41d0e7(0x17e)]['geometry']=_0x3729d4;var _0x3e952d=Cesium$2['VertexArray']['fromGeometry']({'context':this['context'],'geometry':_0x3729d4,'attributeLocations':this['particlesRendering'][_0x41d0e7(0x142)]['segments']['attributeLocations'],'bufferUsage':Cesium$2['BufferUsage']['STATIC_DRAW']});this['particlesRendering']['primitives']['segments'][_0x41d0e7(0x100)][_0x41d0e7(0x101)]=_0x3e952d;}}},{'key':'setOptions','value':function _0x30572f(_0x1e07b4){var _0x383b1c=_0xab842b,_0x1d7731=this,_0x5decd7=![];this['options']['maxParticles']!==_0x1e07b4[_0x383b1c(0x16f)]&&(_0x5decd7=!![]),Object['keys'](_0x1e07b4)['forEach'](function(_0xe077b4){_0x1d7731['options'][_0xe077b4]=_0x1e07b4[_0xe077b4];}),this['refreshParticles'](_0x5decd7);}},{'key':_0xab842b(0x1b4),'value':function _0x52c54c(_0x193860){var _0x4e9030=_0xab842b,_0x19c9dd=this;Object[_0x4e9030(0x151)](_0x193860)['forEach'](function(_0x2ea778){_0x19c9dd['viewerParameters'][_0x2ea778]=_0x193860[_0x2ea778];}),this['refreshParticles'](![]);}},{'key':'destroy','value':function _0x5821aa(){var _0x1562bd=_0xab842b,_0x13c4be=this;clearTimeout(this['canrefresh']),this['particlesComputing']['destroyParticlesTextures'](),Object[_0x1562bd(0x151)](this[_0x1562bd(0x1b1)]['windTextures'])[_0x1562bd(0x14c)](function(_0x199070){_0x13c4be['particlesComputing']['windTextures'][_0x199070]['destroy']();}),this['particlesRendering']['textures'][_0x1562bd(0x171)][_0x1562bd(0x15d)](),Object['keys'](this[_0x1562bd(0x11e)]['framebuffers'])['forEach'](function(_0x41b929){var _0x3f1e77=_0x1562bd;_0x13c4be['particlesRendering'][_0x3f1e77(0x15b)][_0x41b929]['destroy']();});for(var _0x367701 in this){delete this[_0x367701];}}}]),_0x5a571f;}()),Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x231b9c(0x152)],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(_0x255e0b){var _0x448812=_0x231b9c;_inherits(_0xf05aa4,_0x255e0b);var _0x566104=_createSuper(_0xf05aa4);function _0xf05aa4(){var _0x3834ed=_0x134e,_0x1a199d,_0x2fbbce=arguments[_0x3834ed(0x176)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0xf05aa4),_0x2fbbce=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x2fbbce),_0x1a199d=_0x566104['call'](this,_0x2fbbce),_0x1a199d['_setOptionsHook'](_0x2fbbce),_0x1a199d;}return _createClass(_0xf05aa4,[{'key':'layer','get':function _0x1227c6(){var _0x2dde3a=_0x134e;return this[_0x2dde3a(0x142)];}},{'key':'data','get':function _0x1434c9(){return this['_data'];},'set':function _0x3a6f9e(_0x5b0046){var _0x1153f6=_0x134e;this[_0x1153f6(0x1cf)](_0x5b0046);}},{'key':'colors','get':function _0x25db9c(){return this['options']['colors'];},'set':function _0x2bba1c(_0x46b196){var _0xe83e10=_0x134e;this[_0xe83e10(0xd6)]['colors']=_0x46b196,this['particleSystem']&&this['particleSystem'][_0xe83e10(0x189)]({'colors':_0x46b196}),this['resize']();}},{'key':'_mountedHook','value':function _0x4b7bd9(){}},{'key':'_addedHook','value':function _0x4f61fe(){var _0x1e7e59=_0x134e;this['scene']=this['_map'][_0x1e7e59(0x184)],this['camera']=this['_map'][_0x1e7e59(0x150)],this[_0x1e7e59(0x142)]=new Cesium$1['PrimitiveCollection'](),this[_0x1e7e59(0x16a)][_0x1e7e59(0x184)]['primitives']['add'](this['primitives']),this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1[(_0x1e7e59(0x1ca))](),'pixelSize':0x0},this[_0x1e7e59(0x190)]=new Cesium$1[(_0x1e7e59(0xd1))](Cesium$1['Cartesian3']['ZERO'],0.99*0x615299),this[_0x1e7e59(0x113)](),window[_0x1e7e59(0x1c1)](_0x1e7e59(0x178),this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['_map']['on'](mars3d__namespace[_0x1e7e59(0x13b)]['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x1e7e59(0x103)],this['_onMouseUpEvent'],this),this['_map']['on'](mars3d__namespace[_0x1e7e59(0x13b)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x1e7e59(0x14f)]&&this['setData'](this[_0x1e7e59(0x14f)]);}},{'key':'_removedHook','value':function _0x3bae8c(){var _0x111d75=_0x134e;window['removeEventListener'](_0x111d75(0x178),this['resize']),this[_0x111d75(0x16a)][_0x111d75(0x192)](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this),this['_map'][_0x111d75(0x192)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x111d75(0x105)],this),this['_map'][_0x111d75(0x192)](mars3d__namespace['EventType']['mouseUp'],this[_0x111d75(0x194)],this),this['_map'][_0x111d75(0x192)](mars3d__namespace[_0x111d75(0x13b)]['mouseMove'],this['_onMouseMoveEvent'],this),this['primitives']['removeAll'](),this['_map']['scene']['primitives']['remove'](this['primitives']);}},{'key':'resize','value':function _0x23e848(){var _0xfd4ba=_0x134e;if(!this[_0xfd4ba(0x18d)]||!this[_0xfd4ba(0x16c)])return;this[_0xfd4ba(0x142)]['show']=![],this['primitives']['removeAll'](),this[_0xfd4ba(0x16a)][_0xfd4ba(0x1c4)](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this);}},{'key':'_onMap_preRenderEvent','value':function _0x3bc59a(_0x550f68){var _0x4a2cd7=_0x134e;this['particleSystem']['canvasResize'](this['scene']['context']),this[_0x4a2cd7(0x121)](),this['primitives']['show']=!![];}},{'key':_0x448812(0x159),'value':function _0xb6245d(_0x5a8489){var _0x20485f=_0x448812,_0x2fa86d=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x20485f(0x16c)])return;this['primitives']['show']=![],this['refreshTimer']=setTimeout(function(){var _0xc618ea=_0x20485f;if(!_0x2fa86d[_0xc618ea(0x18d)])return;_0x2fa86d['redraw']();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x4ae08b(_0x40b69c){this['mouse_down']=!![];}},{'key':'_onMouseMoveEvent','value':function _0x4f9dff(_0x26c4eb){var _0x69be3e=_0x448812;if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&(this['primitives'][_0x69be3e(0x18d)]=![],this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x26c2d2(_0x2d4bbc){var _0x3f4e85=_0x448812;if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['primitives']['show']=!![],this[_0x3f4e85(0x136)]=![],this['mouse_move']=![];}},{'key':'redraw','value':function _0x52f6dd(){var _0x1d30c5=_0x448812;if(!this['_map']||!this[_0x1d30c5(0x18d)])return;this['updateViewerParameters'](),this['particleSystem'][_0x1d30c5(0x1b4)](this[_0x1d30c5(0x10f)]),this['primitives']['show']=!![];}},{'key':'setData','value':function _0x312547(_0x4cee09){var _0x1c2e49=_0x448812;this['_data']=_0x4cee09,this['particleSystem']&&this['particleSystem']['destroy'](),this[_0x1c2e49(0x16c)]=new ParticleSystem(this['scene'][_0x1c2e49(0xd0)],_0x4cee09,this['getOptions'](),this['viewerParameters']),this['addPrimitives']();}},{'key':_0x448812(0xf4),'value':function _0xa88e13(_0x18f087,_0x5c5e42){var _0x38e9ce=_0x448812;if(_0x18f087)for(var _0xab64a7 in _0x18f087){this[_0xab64a7]=_0x18f087[_0xab64a7];}this['particleSystem']&&this['particleSystem'][_0x38e9ce(0x189)](this[_0x38e9ce(0x11b)]());}},{'key':'getOptions','value':function _0x1a10a5(){var _0x52f68e=_0x448812,_0x4804ed=Math['ceil'](Math[_0x52f68e(0xd7)](this[_0x52f68e(0x1cb)]));return this['particlesNumber']=_0x4804ed*_0x4804ed,{'particlesTextureSize':_0x4804ed,'maxParticles':this[_0x52f68e(0x1cb)],'particleHeight':this['fixedHeight'],'fadeOpacity':this['fadeOpacity'],'dropRate':this[_0x52f68e(0x166)],'dropRateBump':this['dropRateBump'],'speedFactor':this[_0x52f68e(0x148)],'lineWidth':this['lineWidth'],'colors':this['colors']};}},{'key':'addPrimitives','value':function _0xdaf56c(){var _0x4209fd=_0x448812;this['primitives'][_0x4209fd(0x1a9)](this['particleSystem']['particlesComputing']['primitives'][_0x4209fd(0x17c)]),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives']['updateSpeed']),this['primitives'][_0x4209fd(0x1a9)](this[_0x4209fd(0x16c)]['particlesComputing']['primitives'][_0x4209fd(0x131)]),this[_0x4209fd(0x142)][_0x4209fd(0x1a9)](this[_0x4209fd(0x16c)]['particlesComputing'][_0x4209fd(0x142)]['postProcessingPosition']),this[_0x4209fd(0x142)]['add'](this[_0x4209fd(0x16c)]['particlesComputing']['primitives']['postProcessingSpeed']),this[_0x4209fd(0x142)][_0x4209fd(0x1a9)](this['particleSystem']['particlesRendering']['primitives']['segments']),this[_0x4209fd(0x142)][_0x4209fd(0x1a9)](this[_0x4209fd(0x16c)][_0x4209fd(0x11e)][_0x4209fd(0x142)]['trails']),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['screen']);}},{'key':_0x448812(0x113),'value':function _0x9fd81e(){var _0x992db4=_0x448812,_0x4e3e08=this[_0x992db4(0x150)]['computeViewRectangle'](this['scene'][_0x992db4(0xf7)]['ellipsoid']);if(!_0x4e3e08){var _0x851ec7=this[_0x992db4(0x16a)]['getExtent']();_0x4e3e08=Cesium$1[_0x992db4(0xe1)]['fromDegrees'](_0x851ec7['xmin'],_0x851ec7[_0x992db4(0x11a)],_0x851ec7[_0x992db4(0x19b)],_0x851ec7['ymax']);}var _0x13b2e4=Util[_0x992db4(0x16e)](_0x4e3e08);this[_0x992db4(0x10f)][_0x992db4(0x198)]['x']=_0x13b2e4['lon'][_0x992db4(0x188)],this[_0x992db4(0x10f)]['lonRange']['y']=_0x13b2e4['lon'][_0x992db4(0x1b9)],this[_0x992db4(0x10f)][_0x992db4(0x108)]['x']=_0x13b2e4['lat']['min'],this[_0x992db4(0x10f)][_0x992db4(0x108)]['y']=_0x13b2e4[_0x992db4(0xd3)]['max'];var _0x9f08a2=this['camera']['getPixelSize'](this['globeBoundingSphere'],this['scene'][_0x992db4(0x1d3)],this['scene'][_0x992db4(0x1bd)]);_0x9f08a2>0x0&&(this[_0x992db4(0x10f)][_0x992db4(0x163)]=_0x9f08a2);}}]),_0xf05aa4;}(BaseLayer$1);mars3d__namespace['LayerUtil'][_0x231b9c(0x11c)](_0x231b9c(0xeb),WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){function _0x35f184(){var _0x13219b=_0x134e;_classCallCheck(this,_0x35f184),this['lng']=null,this['lat']=null,this['tlng']=null,this[_0x13219b(0x1c9)]=null,this['age']=null;}return _createClass(_0x35f184,[{'key':'destroy','value':function _0x1b95aa(){for(var _0x3398ba in this){delete this[_0x3398ba];}}}]),_0x35f184;}()),CanvasWindField=(function(){var _0x56d136=_0x231b9c;function _0x1ef0b7(_0x1f6a4d){_classCallCheck(this,_0x1ef0b7),this['setOptions'](_0x1f6a4d);}return _createClass(_0x1ef0b7,[{'key':'speedRate','get':function _0x4bd8f7(){return this['_speedRate'];},'set':function _0x45e11f(_0x512615){var _0x3ee697=_0x134e;this['_speedRate']=(0x64-(_0x512615>0x63?0x63:_0x512615))*0x64,this['_calc_speedRate']=[(this['xmax']-this[_0x3ee697(0x132)])/this[_0x3ee697(0x181)],(this['ymax']-this['ymin'])/this['_speedRate']];}},{'key':'maxAge','get':function _0xf4002d(){return this['_maxAge'];},'set':function _0x32152d(_0xe6ca3){this['_maxAge']=_0xe6ca3;}},{'key':'setOptions','value':function _0xdf1496(_0x4851d8){var _0x13fa23=_0x134e;this['options']=_0x4851d8,this[_0x13fa23(0xfe)]=_0x4851d8[_0x13fa23(0xfe)]||0x78,this[_0x13fa23(0x180)]=_0x4851d8[_0x13fa23(0x180)]||0x32,this['particles']=[];var _0x333a5b=_0x4851d8['particlesNumber']||0x1000;for(var _0xd805f2=0x0;_0xd805f2<_0x333a5b;_0xd805f2++){var _0x15632b=this['_randomParticle'](new CanvasParticle());this[_0x13fa23(0xd9)]['push'](_0x15632b);}}},{'key':'setDate','value':function _0x5437ac(_0x1b4079){var _0x21d613=_0x134e;this[_0x21d613(0x141)]=_0x1b4079['rows'],this['cols']=_0x1b4079[_0x21d613(0x1bf)],this['xmin']=_0x1b4079['xmin'],this['xmax']=_0x1b4079['xmax'],this['ymin']=_0x1b4079[_0x21d613(0x11a)],this['ymax']=_0x1b4079['ymax'],this['grid']=[];var _0x403783=_0x1b4079['udata'],_0x1ebc1b=_0x1b4079['vdata'],_0x1ab5b7=![];_0x403783['length']===this[_0x21d613(0x141)]&&_0x403783[0x0]['length']===this[_0x21d613(0x1bf)]&&(_0x1ab5b7=!![]);var _0x40a0aa=0x0,_0x4c63a7=null,_0x500335=null;for(var _0x4ef818=0x0;_0x4ef818<this['rows'];_0x4ef818++){_0x4c63a7=[];for(var _0x5c2d35=0x0;_0x5c2d35<this['cols'];_0x5c2d35++,_0x40a0aa++){_0x1ab5b7?_0x500335=this[_0x21d613(0x13d)](_0x403783[_0x4ef818][_0x5c2d35],_0x1ebc1b[_0x4ef818][_0x5c2d35]):_0x500335=this['_calcUV'](_0x403783[_0x40a0aa],_0x1ebc1b[_0x40a0aa]),_0x4c63a7['push'](_0x500335);}this['grid']['push'](_0x4c63a7);}this['options']['reverseY']&&this[_0x21d613(0x127)]['reverse']();}},{'key':'clear','value':function _0x1715c4(){var _0x4fc136=_0x134e;delete this[_0x4fc136(0x141)],delete this['cols'],delete this['xmin'],delete this[_0x4fc136(0x19b)],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this['particles'];}},{'key':'toGridXY','value':function _0x501c2b(_0x35ac32,_0x26bdc4){var _0x51025e=_0x134e,_0x5ee8c3=(_0x35ac32-this['xmin'])/(this['xmax']-this['xmin'])*(this[_0x51025e(0x1bf)]-0x1),_0x3553f9=(this['ymax']-_0x26bdc4)/(this[_0x51025e(0x1b6)]-this['ymin'])*(this['rows']-0x1);return[_0x5ee8c3,_0x3553f9];}},{'key':'getUVByXY','value':function _0x5bdafc(_0x4946ab,_0x579490){if(_0x4946ab<0x0||_0x4946ab>=this['cols']||_0x579490>=this['rows'])return[0x0,0x0,0x0];var _0x3a336e=Math['floor'](_0x4946ab),_0x234b0d=Math['floor'](_0x579490);if(_0x3a336e===_0x4946ab&&_0x234b0d===_0x579490)return this['grid'][_0x579490][_0x4946ab];var _0x367af8=_0x3a336e+0x1,_0x2e00ab=_0x234b0d+0x1,_0x2ce33a=this['getUVByXY'](_0x3a336e,_0x234b0d),_0x28a706=this['getUVByXY'](_0x367af8,_0x234b0d),_0x476bf5=this['getUVByXY'](_0x3a336e,_0x2e00ab),_0x29979f=this['getUVByXY'](_0x367af8,_0x2e00ab),_0x528106=null;try{_0x528106=this['_bilinearInterpolation'](_0x4946ab-_0x3a336e,_0x579490-_0x234b0d,_0x2ce33a,_0x28a706,_0x476bf5,_0x29979f);}catch(_0x3b1b7c){console['log'](_0x4946ab,_0x579490);}return _0x528106;}},{'key':_0x56d136(0x122),'value':function _0x1dd50e(_0x885f7c,_0x1dab53,_0x390355,_0x3899b5,_0x299bfa,_0x4f3fd5){var _0x53a051=0x1-_0x885f7c,_0xeeb5ad=0x1-_0x1dab53,_0x1fb15c=_0x53a051*_0xeeb5ad,_0x468cfd=_0x885f7c*_0xeeb5ad,_0xffe702=_0x53a051*_0x1dab53,_0x538260=_0x885f7c*_0x1dab53,_0x568fe7=_0x390355[0x0]*_0x1fb15c+_0x3899b5[0x0]*_0x468cfd+_0x299bfa[0x0]*_0xffe702+_0x4f3fd5[0x0]*_0x538260,_0x45022a=_0x390355[0x1]*_0x1fb15c+_0x3899b5[0x1]*_0x468cfd+_0x299bfa[0x1]*_0xffe702+_0x4f3fd5[0x1]*_0x538260;return this['_calcUV'](_0x568fe7,_0x45022a);}},{'key':'_calcUV','value':function _0x5813e0(_0x7e1534,_0x5d139e){var _0x2bc960=_0x56d136;return[+_0x7e1534,+_0x5d139e,Math[_0x2bc960(0xd7)](_0x7e1534*_0x7e1534+_0x5d139e*_0x5d139e)];}},{'key':'getUVByPoint','value':function _0x138acf(_0x124ad1,_0x32a3c5){var _0x2131a7=_0x56d136;if(!this['isInExtent'](_0x124ad1,_0x32a3c5))return null;var _0x66e1c8=this[_0x2131a7(0x196)](_0x124ad1,_0x32a3c5),_0xc15170=this['getUVByXY'](_0x66e1c8[0x0],_0x66e1c8[0x1]);return _0xc15170;}},{'key':'isInExtent','value':function _0x57d8d3(_0x2b3d4b,_0x43c1bf){var _0x15ecdb=_0x56d136;return _0x2b3d4b>=this['xmin']&&_0x2b3d4b<=this[_0x15ecdb(0x19b)]&&_0x43c1bf>=this[_0x15ecdb(0x11a)]&&_0x43c1bf<=this['ymax']?!![]:![];}},{'key':_0x56d136(0x1a6),'value':function _0x43f56d(){var _0x3278b0=_0x56d136,_0x2b4cd1=fRandomByfloat(this[_0x3278b0(0x132)],this['xmax']),_0x16f25f=fRandomByfloat(this['ymin'],this['ymax']);return{'lat':_0x16f25f,'lng':_0x2b4cd1};}},{'key':'getParticles','value':function _0xc52905(){var _0x5e93a3=_0x56d136,_0x234e63,_0x34fe82,_0x3b6457;for(var _0x5f317b=0x0,_0x1f3329=this['particles']['length'];_0x5f317b<_0x1f3329;_0x5f317b++){var _0x4cc595=this['particles'][_0x5f317b];_0x4cc595['age']<=0x0&&(_0x4cc595=this['_randomParticle'](_0x4cc595));if(_0x4cc595['age']>0x0){var _0x50d20e=_0x4cc595['tlng'],_0x1ca85d=_0x4cc595['tlat'];_0x3b6457=this['getUVByPoint'](_0x50d20e,_0x1ca85d),_0x3b6457?(_0x234e63=_0x50d20e+this['_calc_speedRate'][0x0]*_0x3b6457[0x0],_0x34fe82=_0x1ca85d+this['_calc_speedRate'][0x1]*_0x3b6457[0x1],_0x4cc595[_0x5e93a3(0x179)]=_0x50d20e,_0x4cc595['lat']=_0x1ca85d,_0x4cc595['tlng']=_0x234e63,_0x4cc595['tlat']=_0x34fe82,_0x4cc595['age']--):_0x4cc595[_0x5e93a3(0x114)]=0x0;}}return this['particles'];}},{'key':'_randomParticle','value':function _0x2961d1(_0x45f9db){var _0x1c4c83=_0x56d136,_0x2ead4f,_0x298c35;for(var _0x354aac=0x0;_0x354aac<0x1e;_0x354aac++){_0x2ead4f=this[_0x1c4c83(0x1a6)](),_0x298c35=this[_0x1c4c83(0xf6)](_0x2ead4f[_0x1c4c83(0x179)],_0x2ead4f['lat']);if(_0x298c35&&_0x298c35[0x2]>0x0)break;}if(!_0x298c35)return _0x45f9db;var _0x41ce31=_0x2ead4f['lng']+this['_calc_speedRate'][0x0]*_0x298c35[0x0],_0x4dd4cd=_0x2ead4f['lat']+this[_0x1c4c83(0x144)][0x1]*_0x298c35[0x1];return _0x45f9db['lng']=_0x2ead4f['lng'],_0x45f9db['lat']=_0x2ead4f['lat'],_0x45f9db['tlng']=_0x41ce31,_0x45f9db[_0x1c4c83(0x1c9)]=_0x4dd4cd,_0x45f9db['age']=Math['round'](Math[_0x1c4c83(0x18e)]()*this['maxAge']),_0x45f9db;}},{'key':'destroy','value':function _0x5ebc3(){for(var _0x1d168b in this){delete this[_0x1d168b];}}}]),_0x1ef0b7;}());function fRandomByfloat(_0x59e5c4,_0x574286){return _0x59e5c4+Math['random']()*(_0x574286-_0x59e5c4);}var Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'],CanvasWindLayer=function(_0x220d9a){var _0x1bc262=_0x231b9c;_inherits(_0x479427,_0x220d9a);var _0x49b80e=_createSuper(_0x479427);function _0x479427(){var _0x45d06c=_0x134e,_0x632806,_0x41cc86=arguments[_0x45d06c(0x176)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x479427),_0x632806=_0x49b80e['call'](this,_0x41cc86),_0x632806['_setOptionsHook'](_0x41cc86),_0x632806[_0x45d06c(0x1a4)]=null,_0x632806;}return _createClass(_0x479427,[{'key':'_setOptionsHook','value':function _0x462da5(_0x1d52ff,_0x13755d){var _0x561eef=_0x134e,_0x4c59ef,_0x8751f6,_0x4682d9;this[_0x561eef(0x14e)]=0x3e8/(_0x1d52ff[_0x561eef(0x165)]||0xa),this[_0x561eef(0xf3)]=(_0x4c59ef=this['options']['pointerEvents'])!==null&&_0x4c59ef!==void 0x0?_0x4c59ef:![],this[_0x561eef(0xee)]=_0x1d52ff['color']||'#ffffff',this['lineWidth']=_0x1d52ff['lineWidth']||0x1,this['fixedHeight']=(_0x8751f6=_0x1d52ff['fixedHeight'])!==null&&_0x8751f6!==void 0x0?_0x8751f6:0x0,this['reverseY']=(_0x4682d9=_0x1d52ff['reverseY'])!==null&&_0x4682d9!==void 0x0?_0x4682d9:![],this['windField']&&this['windField']['setOptions'](_0x1d52ff);}},{'key':'layer','get':function _0x349294(){return this['canvas'];}},{'key':'canvasWidth','get':function _0x23983d(){var _0x166115=_0x134e;return this['_map'][_0x166115(0x184)]['canvas'][_0x166115(0x146)];}},{'key':_0x1bc262(0x153),'get':function _0x293550(){var _0x43f51f=_0x1bc262;return this[_0x43f51f(0x16a)][_0x43f51f(0x184)]['canvas'][_0x43f51f(0x140)];}},{'key':_0x1bc262(0x10a),'get':function _0x269f70(){return this['_pointerEvents'];},'set':function _0x552fe8(_0x305afe){var _0x34ec2e=_0x1bc262;this[_0x34ec2e(0xf3)]=_0x305afe;if(!this['canvas'])return;_0x305afe?this['canvas']['style']['pointer-events']='all':this['canvas'][_0x34ec2e(0xdc)]['pointer-events']=_0x34ec2e(0x1b5);}},{'key':'particlesNumber','get':function _0x41def0(){var _0xa2f425=_0x1bc262;return this[_0xa2f425(0xd6)][_0xa2f425(0x1cb)];},'set':function _0xa513b5(_0x3afe5a){var _0x43ba2d=_0x1bc262,_0x3108ad=this;this['options'][_0x43ba2d(0x1cb)]=_0x3afe5a,clearTimeout(this[_0x43ba2d(0x119)]),this[_0x43ba2d(0x119)]=setTimeout(function(){var _0x4439cb=_0x43ba2d;_0x3108ad[_0x4439cb(0x137)]();},0x1f4);}},{'key':_0x1bc262(0x180),'get':function _0x27a290(){var _0x1e58a7=_0x1bc262;return this['options'][_0x1e58a7(0x180)];},'set':function _0x5c8d12(_0x297578){var _0x1bfe27=_0x1bc262;this['options']['speedRate']=_0x297578,this['windField']&&(this['windField'][_0x1bfe27(0x180)]=_0x297578);}},{'key':'maxAge','get':function _0x2d757b(){var _0x4ba592=_0x1bc262;return this['options'][_0x4ba592(0xfe)];},'set':function _0x8a1da8(_0x2bab66){var _0x465658=_0x1bc262;this['options']['maxAge']=_0x2bab66,this['windField']&&(this[_0x465658(0x1c0)][_0x465658(0xfe)]=_0x2bab66);}},{'key':_0x1bc262(0x15f),'get':function _0x3f3144(){return this['windData'];},'set':function _0x5735f7(_0x4933d7){this['setData'](_0x4933d7);}},{'key':_0x1bc262(0x1ba),'value':function _0x5a35a5(_0x5037da){var _0x519c1f=_0x1bc262;_0x5037da?this['_addedHook']():(this['windData']&&(this['options'][_0x519c1f(0x15f)]=this[_0x519c1f(0x1b3)]),this['_removedHook']());}},{'key':'_mountedHook','value':function _0x11936f(){var _0x28bb7d=_0x1bc262;this['options']['worker']?this[_0x28bb7d(0xe5)]():this['windField']=new CanvasWindField(this['options']);}},{'key':'_addedHook','value':function _0xe86cb5(){var _0x550bdf=_0x1bc262;this['canvas']=this['_createCanvas'](),this[_0x550bdf(0xfa)]=this['canvas']['getContext']('2d',{'willReadFrequently':!![]}),this[_0x550bdf(0x12c)](),this['options'][_0x550bdf(0x15f)]&&this['setData'](this[_0x550bdf(0xd6)]['data']);}},{'key':'_removedHook','value':function _0x56c8b3(){var _0x5ed4ed=_0x1bc262;this[_0x5ed4ed(0x17d)](),this['unbindEvent'](),this['canvas']&&(this['_map'][_0x5ed4ed(0x130)]['removeChild'](this['canvas']),delete this[_0x5ed4ed(0x1a4)]);}},{'key':'_createCanvas','value':function _0x2e73f8(){var _0x510660=_0x1bc262,_0x51cfe3=document['createElement']('canvas');_0x51cfe3['style']['position']='absolute',_0x51cfe3['style']['top']='0px',_0x51cfe3[_0x510660(0xdc)][_0x510660(0x10d)]=_0x510660(0xcf),_0x51cfe3[_0x510660(0xdc)][_0x510660(0x183)]='100%',_0x51cfe3[_0x510660(0xdc)]['height']=_0x510660(0x1a8),_0x51cfe3[_0x510660(0xdc)][_0x510660(0x10a)]=this['_pointerEvents']?'auto':'none',_0x51cfe3['style']['zIndex']=0xa,_0x51cfe3[_0x510660(0x1a1)]('id',_0x510660(0xf1)),_0x51cfe3[_0x510660(0x1a1)]('class','canvasWindy'),this['_map'][_0x510660(0x130)]['appendChild'](_0x51cfe3);var _0x3175d1=this['_map']['scene'];return _0x51cfe3[_0x510660(0x183)]=_0x3175d1['canvas']['clientWidth'],_0x51cfe3[_0x510660(0x14d)]=_0x3175d1['canvas'][_0x510660(0x140)],_0x51cfe3;}},{'key':_0x1bc262(0x178),'value':function _0x50ec91(){this['canvas']&&(this['canvas']['width']=this['canvasWidth'],this['canvas']['height']=this['canvasHeight']);}},{'key':_0x1bc262(0x12c),'value':function _0x343acb(){var _0x27c88e=_0x1bc262,_0x557444=this,_0x3c9d3a=Date[_0x27c88e(0x185)]();(function _0x34b907(){var _0x2d995c=_0x27c88e;_0x557444['animateFrame']=window[_0x2d995c(0x1a0)](_0x34b907);if(_0x557444['show']&&_0x557444[_0x2d995c(0x1c0)]){var _0x95d4b1=Date[_0x2d995c(0x185)](),_0x47ef25=_0x95d4b1-_0x3c9d3a;_0x47ef25>_0x557444['frameTime']&&(_0x3c9d3a=_0x95d4b1-_0x47ef25%_0x557444['frameTime'],_0x557444['update']());}}(),window['addEventListener'](_0x27c88e(0x178),this['resize'][_0x27c88e(0x14a)](this),![]),this['mouse_down']=![],this['mouse_move']=![],this[_0x27c88e(0xd6)][_0x27c88e(0x139)]&&(this[_0x27c88e(0x16a)]['on'](mars3d__namespace['EventType'][_0x27c88e(0x19a)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x27c88e(0x13b)][_0x27c88e(0x103)],this['_onMouseUpEvent'],this)));}},{'key':'unbindEvent','value':function _0x5ce83c(){var _0x7a8082=_0x1bc262;window[_0x7a8082(0xf9)](this['animateFrame']),delete this['animateFrame'],window[_0x7a8082(0x1d0)](_0x7a8082(0x178),this['resize']),this[_0x7a8082(0xd6)]['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x7a8082(0x13b)][_0x7a8082(0x19a)],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace[_0x7a8082(0x13b)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x7a8082(0x192)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this[_0x7a8082(0x16a)]['off'](mars3d__namespace['EventType'][_0x7a8082(0x1ab)],this[_0x7a8082(0x1d2)],this));}},{'key':'_onMapWhellEvent','value':function _0x515cdb(_0x4203c7){var _0x4254ea=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas']['style']['visibility']='hidden',this['refreshTimer']=setTimeout(function(){var _0x186f5b=_0x134e;if(!_0x4254ea['show'])return;_0x4254ea[_0x186f5b(0x137)](),_0x4254ea[_0x186f5b(0x1a4)][_0x186f5b(0xdc)]['visibility']='visible';},0xc8);}},{'key':'_onMouseDownEvent','value':function _0xc7335c(_0x4ab953){var _0x5f54ae=_0x1bc262;this['mouse_down']=!![],this['_map'][_0x5f54ae(0x192)](mars3d__namespace['EventType'][_0x5f54ae(0x1ab)],this['_onMouseMoveEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}},{'key':'_onMouseMoveEvent','value':function _0x16c6ec(_0x5e047b){var _0x99b1a6=_0x1bc262;if(!this['show']||!this['canvas'])return;this['mouse_down']&&(this[_0x99b1a6(0x1a4)]['style'][_0x99b1a6(0x10e)]='hidden',this['mouse_move']=!![]);}},{'key':_0x1bc262(0x194),'value':function _0x1c6fbd(_0x1f2d56){var _0x52ea39=_0x1bc262;if(!this[_0x52ea39(0x18d)]||!this[_0x52ea39(0x1a4)])return;this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x52ea39(0x1d2)],this),this[_0x52ea39(0x136)]&&this['mouse_move']&&this['redraw'](),this['canvas']['style']['visibility']=_0x52ea39(0x18c),this['mouse_down']=![],this[_0x52ea39(0xf0)]=![];}},{'key':_0x1bc262(0x1cf),'value':function _0x4f8066(_0xfde142){var _0x2040c3=_0x1bc262;this['clear'](),this['windData']=_0xfde142,this[_0x2040c3(0x1c0)]['setDate'](_0xfde142),this['redraw']();}},{'key':_0x1bc262(0x137),'value':function _0x2b13d8(){var _0x2917be=_0x1bc262;if(!this['show'])return;this['windField'][_0x2917be(0x189)](this['options']),this['update']();}},{'key':'update','value':function _0x26e8bc(){var _0x5002be=_0x1bc262;if(this['_updateIng'])return;this[_0x5002be(0x115)]=!![];if(this[_0x5002be(0xfb)])this[_0x5002be(0x1c0)]['update']();else{var _0x2f0616=this['windField'][_0x5002be(0x195)]();this[_0x5002be(0xed)](_0x2f0616);}this[_0x5002be(0x115)]=![];}},{'key':_0x1bc262(0xed),'value':function _0x18f0c6(_0x393512){var _0x36500b=_0x1bc262;this['canvasContext'][_0x36500b(0xe8)]='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']='lighter',this['canvasContext']['globalAlpha']=0.9,this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this[_0x36500b(0xef)],this['canvasContext'][_0x36500b(0x17f)]=this['color'];var _0x16522b=this['_map']['scene']['mode']!==Cesium['SceneMode'][_0x36500b(0x1d4)];for(var _0x15e59e=0x0,_0x542dd3=_0x393512[_0x36500b(0x176)];_0x15e59e<_0x542dd3;_0x15e59e++){var _0x53c5ed=_0x393512[_0x15e59e],_0x4ea57b=this['_tomap'](_0x53c5ed['lng'],_0x53c5ed['lat'],_0x53c5ed),_0x2d5423=this['_tomap'](_0x53c5ed['tlng'],_0x53c5ed['tlat'],_0x53c5ed);if(!_0x4ea57b||!_0x2d5423)continue;if(_0x16522b&&Math['abs'](_0x4ea57b[0x0]-_0x2d5423[0x0])>=this[_0x36500b(0x1cc)])continue;this['canvasContext']['moveTo'](_0x4ea57b[0x0],_0x4ea57b[0x1]),this[_0x36500b(0xfa)]['lineTo'](_0x2d5423[0x0],_0x2d5423[0x1]);}this['canvasContext'][_0x36500b(0x1b0)]();}},{'key':_0x1bc262(0xf2),'value':function _0x70b23d(_0x3ef38d,_0xee8255,_0x44fbd3){var _0x26db45=_0x1bc262,_0x3edf96=Cesium['Cartesian3'][_0x26db45(0x187)](_0x3ef38d,_0xee8255,this['fixedHeight']),_0x5cd663=this[_0x26db45(0x16a)]['scene'];if(_0x5cd663['mode']===Cesium[_0x26db45(0x1ae)]['SCENE3D']){var _0x33fc19=new Cesium['EllipsoidalOccluder'](_0x5cd663['globe']['ellipsoid'],_0x5cd663[_0x26db45(0x150)]['positionWC']),_0x3eb55f=_0x33fc19[_0x26db45(0xec)](_0x3edf96);if(!_0x3eb55f)return _0x44fbd3[_0x26db45(0x114)]=0x0,null;}var _0x12c9c1=Cesium['SceneTransforms'][_0x26db45(0x1ce)](this['_map'][_0x26db45(0x184)],_0x3edf96);return _0x12c9c1?[_0x12c9c1['x'],_0x12c9c1['y']]:null;}},{'key':'clear','value':function _0x166c98(){var _0x389019=_0x1bc262;this[_0x389019(0x1c0)][_0x389019(0x17d)](),delete this['windData'];}},{'key':'initWorker','value':function _0x44133b(){var _0x9ce35c=_0x1bc262,_0x115758=this;this['worker']=new Worker(this['options']['worker']),this['worker']['onmessage']=function(_0x3b1be6){_0x115758['_drawLines'](_0x3b1be6['data']['particles']),_0x115758['_updateIng2']=![];},this['windField']={'init':function _0x1e2278(_0x3a7ea5){_0x115758['worker']['postMessage']({'type':'init','options':_0x3a7ea5});},'setOptions':function _0x3256cb(_0xe84406){var _0x1ec596=_0x134e;_0x115758[_0x1ec596(0xfb)]['postMessage']({'type':_0x1ec596(0x189),'options':_0xe84406});},'setDate':function _0x1815af(_0x593e46){var _0x14d631=_0x134e;_0x115758[_0x14d631(0xfb)]['postMessage']({'type':'setDate','data':_0x593e46});},'update':function _0x29192e(){var _0x31a459=_0x134e;if(_0x115758['_updateIng2'])return;_0x115758[_0x31a459(0x167)]=!![],_0x115758['worker'][_0x31a459(0xe9)]({'type':_0x31a459(0x1d7)});},'clear':function _0x54b5fe(){var _0x24afaa=_0x134e;_0x115758['worker'][_0x24afaa(0xe9)]({'type':'clear'});}},this['windField'][_0x9ce35c(0x1ac)](this[_0x9ce35c(0xd6)]);}}]),_0x479427;}(BaseLayer);mars3d__namespace['LayerUtil'][_0x231b9c(0x11c)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x231b9c(0x110)]=WindLayer,exports[_0x231b9c(0xce)]=WindUtil,Object['defineProperty'](exports,_0x231b9c(0x1d1),{'value':!![]});
15
15
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.4.21",
3
+ "version": "3.4.23",
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.21"
11
+ "mars3d": "~3.4.23"
12
12
  },
13
13
  "scripts": {
14
14
  "lint": "eslint ./src/**/*.{js,ts} --fix"