mars3d-wind 3.4.21 → 3.4.22
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.
- package/dist/mars3d-wind.js +3 -3
- package/package.json +2 -2
package/dist/mars3d-wind.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
|
3
3
|
*
|
|
4
|
-
* 版本信息:v3.4.
|
|
5
|
-
* 编译日期:2023-
|
|
4
|
+
* 版本信息:v3.4.22
|
|
5
|
+
* 编译日期:2023-02-06 19:58:01
|
|
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 _0x28e3fd=_0x2ed4;function _0x2ed4(_0x5721e4,_0x15000d){var _0x3b5ba6=_0x3b5b();return _0x2ed4=function(_0x2ed45d,_0x2b6463){_0x2ed45d=_0x2ed45d-0x6b;var _0x3cd2dc=_0x3b5ba6[_0x2ed45d];return _0x3cd2dc;},_0x2ed4(_0x5721e4,_0x15000d);}(function(_0x463c40,_0x4e2603){var _0x5b44c8=_0x2ed4,_0x44dba6=_0x463c40();while(!![]){try{var _0x3b48a1=parseInt(_0x5b44c8(0x12b))/0x1+-parseInt(_0x5b44c8(0x80))/0x2*(parseInt(_0x5b44c8(0x7c))/0x3)+parseInt(_0x5b44c8(0x13c))/0x4+-parseInt(_0x5b44c8(0x14c))/0x5*(parseInt(_0x5b44c8(0xe5))/0x6)+parseInt(_0x5b44c8(0xd8))/0x7+parseInt(_0x5b44c8(0x151))/0x8*(parseInt(_0x5b44c8(0x8a))/0x9)+-parseInt(_0x5b44c8(0x10d))/0xa;if(_0x3b48a1===_0x4e2603)break;else _0x44dba6['push'](_0x44dba6['shift']());}catch(_0x179353){_0x44dba6['push'](_0x44dba6['shift']());}}}(_0x3b5b,0xed841));function _interopNamespace(_0x4ac792){var _0x49878f=_0x2ed4;if(_0x4ac792&&_0x4ac792[_0x49878f(0xf5)])return _0x4ac792;var _0x561a33=Object[_0x49878f(0xa6)](null);return _0x4ac792&&Object['keys'](_0x4ac792)['forEach'](function(_0x1c690e){if(_0x1c690e!=='default'){var _0x363574=Object['getOwnPropertyDescriptor'](_0x4ac792,_0x1c690e);Object['defineProperty'](_0x561a33,_0x1c690e,_0x363574['get']?_0x363574:{'enumerable':!![],'get':function(){return _0x4ac792[_0x1c690e];}});}}),_0x561a33['default']=_0x4ac792,_0x561a33;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x22b278,_0x2e0fa8){var _0x490d9e=_0x2ed4,_0x4ebc96=_0x22b278*Math[_0x490d9e(0x138)](Cesium$7['Math']['toRadians'](_0x2e0fa8));return _0x4ebc96;}function getV(_0x201320,_0x4c593a){var _0x1e7ebe=_0x201320*Math['sin'](Cesium$7['Math']['toRadians'](_0x4c593a));return _0x1e7ebe;}function getSpeed(_0x352b04,_0x2c2e02){var _0x22dbf9=_0x2ed4,_0x52935e=Math['sqrt'](Math[_0x22dbf9(0x15e)](_0x352b04,0x2)+Math['pow'](_0x2c2e02,0x2));return _0x52935e;}function getDirection(_0x17b6a8,_0x582d71){var _0x3fde5d=_0x2ed4,_0x36167f=Cesium$7[_0x3fde5d(0x11e)][_0x3fde5d(0x154)](Math['atan2'](_0x582d71,_0x17b6a8));return _0x36167f+=_0x36167f<0x0?0x168:0x0,_0x36167f;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x2389f8,_0x3160a8){var _0x96d754=_0x2ed4,_0x5244e3=Object['keys'](_0x2389f8);if(Object['getOwnPropertySymbols']){var _0x3db1c8=Object[_0x96d754(0x6c)](_0x2389f8);_0x3160a8&&(_0x3db1c8=_0x3db1c8['filter'](function(_0x2fd11c){var _0x4d6766=_0x96d754;return Object['getOwnPropertyDescriptor'](_0x2389f8,_0x2fd11c)[_0x4d6766(0x6d)];})),_0x5244e3[_0x96d754(0xcb)]['apply'](_0x5244e3,_0x3db1c8);}return _0x5244e3;}function _objectSpread2(_0x4f945d){var _0x533722=_0x2ed4;for(var _0x486b5b=0x1;_0x486b5b<arguments[_0x533722(0x146)];_0x486b5b++){var _0x14999b=null!=arguments[_0x486b5b]?arguments[_0x486b5b]:{};_0x486b5b%0x2?ownKeys(Object(_0x14999b),!0x0)['forEach'](function(_0x4f67fa){_defineProperty(_0x4f945d,_0x4f67fa,_0x14999b[_0x4f67fa]);}):Object['getOwnPropertyDescriptors']?Object[_0x533722(0x156)](_0x4f945d,Object['getOwnPropertyDescriptors'](_0x14999b)):ownKeys(Object(_0x14999b))['forEach'](function(_0x518413){var _0x377d72=_0x533722;Object[_0x377d72(0xb5)](_0x4f945d,_0x518413,Object['getOwnPropertyDescriptor'](_0x14999b,_0x518413));});}return _0x4f945d;}function _classCallCheck(_0x6afdff,_0x22efc2){if(!(_0x6afdff instanceof _0x22efc2))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x2c2cfc,_0x4c0085){var _0x4e09b7=_0x2ed4;for(var _0x2b547c=0x0;_0x2b547c<_0x4c0085['length'];_0x2b547c++){var _0x41cac0=_0x4c0085[_0x2b547c];_0x41cac0[_0x4e09b7(0x6d)]=_0x41cac0['enumerable']||![],_0x41cac0[_0x4e09b7(0x6f)]=!![];if('value'in _0x41cac0)_0x41cac0[_0x4e09b7(0xa1)]=!![];Object['defineProperty'](_0x2c2cfc,_0x41cac0['key'],_0x41cac0);}}function _0x3b5b(){var _0x18e271=['_calc_speedRate','getUVByPoint','frameRate','globalAlpha','depthMask','context','getUVByXY','_drawLines','sqrt','randomizeParticles','vertexArray','postProcessingSpeed','4172196uikWfH','dropRateBump','_setOptionsHook','maxAge','top','class','currentParticlesPosition','scene','_mountedHook','dimensions','ymax','ymin','defined','6rXmlga','particlesNumber','isInExtent','canvasHeight','createWindTextures','createRawRenderState','latRange','computeViewRectangle','unbindEvent','age','data','Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','primitives','PrimitiveType','particlesTextureSize','PrimitiveCollection','__esModule','rawRenderState','bindEvent','clearCommand','WindLayer','getWind','segments','redraw','isPointVisible','keys','particlesWind','commandList','nextTrails','undefined','clientHeight','clearFramebuffers','removeAll','mouseUp','getColorTexture','ComponentDatatype','getOptions','wind','windTextures','forEach','11921720uYVSth','fromDegrees','setAttribute','segmentsDepth','trails','max','pointerEvents','_tomap','fromCssColorString','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function','FLOAT','Compute','options','currentTrails','mod','_pointerEvents','postMessage','Math','destroyParticlesTextures','currentParticlesSpeed','maxParticles','lonRange','applyViewerParameters','Texture','canvasContext','createTexture','depthTexture','viewerParameters','lng','shaderProgram','1053168okDcLj','globalCompositeOperation','postProcessingPosition','particlesComputing','initWorker','windField','_updateIng','createFramebuffer','particlesTextures','visibility','abs','nextTrailsDepth','attributeLocations','cos','SceneMode','commandType','lev','5332072Vnhmbl','addPrimitives','pointer-events','destroy','speedRate','NEAREST','lineWidth','Pass','BoundingSphere','Cartesian3','length','from','drawingBufferWidth','segmentsColor','getPrototypeOf','setOptions','7766455bfRnnE','geometry','preExecute','color','mouse_move','6358768RieCXC','prototype','requestAnimationFrame','toDegrees','isDestroyed','defineProperties','_calcUV','red','grid','valueOf','show','STATIC_DRAW','LayerUtil','pow','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}','resize','log','clampToLatitudeRange','tlat','addEventListener','wheel','//\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}','fromGeometry','apply','_onMouseMoveEvent','viewport','execute','_showHook','pixelSize','call','createComputingPrimitives','TextureMagnificationFilter','100%','mouse_down','SCENE3D','getOwnPropertySymbols','enumerable','_map','configurable','clear','toGridXY','reverseY','lat','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}','constructor','min','slice','udata','PI_OVER_TWO','createRenderingPrimitives','EventType','12KOSPlg','outputTexture','PixelDatatype','currentTrailsDepth','29366pqroUs','GeometryAttribute','0px','canvas','green','textures','Appearance','windData','container','Object','9yPHZYW','setDate','Cartesian2','particles','update','xmax','add','vmax','_onMouseUpEvent','uniformMap','layer','particleSystem','ShaderSource','tlng','refreshParticles','camera','createRenderingTextures','createParticlesTextures','_addedHook','fillRect','drawingBufferHeight','globeBoundingSphere','Cesium','writable','framebuffer','CanvasWindLayer','nextParticlesPosition','setData','create','canvasWind','screen','Draw','west','random','xmin','@@iterator','beginPath','style','lighter','lon','LUMINANCE','LINEAR','register','defineProperty','array','construct','blue','bind','off','_onMapWhellEvent','mouseDown','mode','canvasWidth','rows','vdata','colors','EllipsoidalOccluder','commandToExecute','hidden','none','particlesRendering','cols','framebuffers','removeChild','DepthFunction','push'];_0x3b5b=function(){return _0x18e271;};return _0x3b5b();}function _createClass(_0x2a4844,_0x1e2eea,_0x8b36da){var _0x18cc6a=_0x2ed4;if(_0x1e2eea)_defineProperties(_0x2a4844[_0x18cc6a(0x152)],_0x1e2eea);if(_0x8b36da)_defineProperties(_0x2a4844,_0x8b36da);return Object[_0x18cc6a(0xb5)](_0x2a4844,'prototype',{'writable':![]}),_0x2a4844;}function _defineProperty(_0x110358,_0x496646,_0x1948e2){return _0x496646 in _0x110358?Object['defineProperty'](_0x110358,_0x496646,{'value':_0x1948e2,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x110358[_0x496646]=_0x1948e2,_0x110358;}function _inherits(_0x3bab90,_0x4c0437){var _0x239ca4=_0x2ed4;if(typeof _0x4c0437!=='function'&&_0x4c0437!==null)throw new TypeError(_0x239ca4(0x116));_0x3bab90['prototype']=Object[_0x239ca4(0xa6)](_0x4c0437&&_0x4c0437[_0x239ca4(0x152)],{'constructor':{'value':_0x3bab90,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x3bab90,_0x239ca4(0x152),{'writable':![]});if(_0x4c0437)_setPrototypeOf(_0x3bab90,_0x4c0437);}function _getPrototypeOf(_0xdb70dc){var _0x3e6a4d=_0x2ed4;return _getPrototypeOf=Object['setPrototypeOf']?Object['getPrototypeOf'][_0x3e6a4d(0xb9)]():function _0x5cc829(_0x2b8ae6){var _0x585895=_0x3e6a4d;return _0x2b8ae6['__proto__']||Object[_0x585895(0x14a)](_0x2b8ae6);},_getPrototypeOf(_0xdb70dc);}function _setPrototypeOf(_0x236f7c,_0x2ffd61){return _setPrototypeOf=Object['setPrototypeOf']?Object['setPrototypeOf']['bind']():function _0x1db957(_0x2eeb9f,_0x2b6897){return _0x2eeb9f['__proto__']=_0x2b6897,_0x2eeb9f;},_setPrototypeOf(_0x236f7c,_0x2ffd61);}function _isNativeReflectConstruct(){var _0x577b25=_0x2ed4;if(typeof Reflect==='undefined'||!Reflect['construct'])return![];if(Reflect[_0x577b25(0xb7)]['sham'])return![];if(typeof Proxy==='function')return!![];try{return Boolean['prototype'][_0x577b25(0x15a)]['call'](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x217d1f){return![];}}function _assertThisInitialized(_0x41b446){if(_0x41b446===void 0x0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x41b446;}function _possibleConstructorReturn(_0x475b41,_0xfdca3a){if(_0xfdca3a&&(typeof _0xfdca3a==='object'||typeof _0xfdca3a==='function'))return _0xfdca3a;else{if(_0xfdca3a!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x475b41);}function _createSuper(_0x194b9b){var _0x583d0f=_isNativeReflectConstruct();return function _0x4fcc39(){var _0x23a888=_getPrototypeOf(_0x194b9b),_0x5deb71;if(_0x583d0f){var _0x5cbf3d=_getPrototypeOf(this)['constructor'];_0x5deb71=Reflect['construct'](_0x23a888,arguments,_0x5cbf3d);}else _0x5deb71=_0x23a888['apply'](this,arguments);return _possibleConstructorReturn(this,_0x5deb71);};}function _toConsumableArray(_0x2190b8){return _arrayWithoutHoles(_0x2190b8)||_iterableToArray(_0x2190b8)||_unsupportedIterableToArray(_0x2190b8)||_nonIterableSpread();}function _arrayWithoutHoles(_0x23ed51){if(Array['isArray'](_0x23ed51))return _arrayLikeToArray(_0x23ed51);}function _iterableToArray(_0x4548ef){var _0x434fce=_0x2ed4;if(typeof Symbol!==_0x434fce(0x102)&&_0x4548ef[Symbol['iterator']]!=null||_0x4548ef[_0x434fce(0xad)]!=null)return Array['from'](_0x4548ef);}function _unsupportedIterableToArray(_0x40a3dc,_0x342107){var _0x1d053b=_0x2ed4;if(!_0x40a3dc)return;if(typeof _0x40a3dc==='string')return _arrayLikeToArray(_0x40a3dc,_0x342107);var _0xf89f84=Object[_0x1d053b(0x152)]['toString']['call'](_0x40a3dc)[_0x1d053b(0x77)](0x8,-0x1);if(_0xf89f84===_0x1d053b(0x89)&&_0x40a3dc[_0x1d053b(0x75)])_0xf89f84=_0x40a3dc['constructor']['name'];if(_0xf89f84==='Map'||_0xf89f84==='Set')return Array[_0x1d053b(0x147)](_0x40a3dc);if(_0xf89f84==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0xf89f84))return _arrayLikeToArray(_0x40a3dc,_0x342107);}function _arrayLikeToArray(_0x36fd20,_0xac09e2){var _0x5e8b7b=_0x2ed4;if(_0xac09e2==null||_0xac09e2>_0x36fd20[_0x5e8b7b(0x146)])_0xac09e2=_0x36fd20['length'];for(var _0x36b009=0x0,_0x15f16b=new Array(_0xac09e2);_0x36b009<_0xac09e2;_0x36b009++)_0x15f16b[_0x36b009]=_0x36fd20[_0x36b009];return _0x15f16b;}function _nonIterableSpread(){var _0x14dae1=_0x2ed4;throw new TypeError(_0x14dae1(0xf0));}var Cesium$6=mars3d__namespace[_0x28e3fd(0xa0)],CustomPrimitive=(function(){var _0x589272=_0x28e3fd;function _0x5f0601(_0xda9079){var _0x390ce0=_0x2ed4,_0x3a117c;_classCallCheck(this,_0x5f0601),this[_0x390ce0(0x13a)]=_0xda9079[_0x390ce0(0x13a)],this[_0x390ce0(0x14d)]=_0xda9079['geometry'],this[_0x390ce0(0x137)]=_0xda9079['attributeLocations'],this['primitiveType']=_0xda9079['primitiveType'],this[_0x390ce0(0x93)]=_0xda9079['uniformMap'],this['vertexShaderSource']=_0xda9079['vertexShaderSource'],this['fragmentShaderSource']=_0xda9079['fragmentShaderSource'],this['rawRenderState']=_0xda9079[_0x390ce0(0xf6)],this[_0x390ce0(0xa2)]=_0xda9079['framebuffer'],this[_0x390ce0(0x7d)]=_0xda9079['outputTexture'],this['autoClear']=(_0x3a117c=_0xda9079['autoClear'])!==null&&_0x3a117c!==void 0x0?_0x3a117c:![],this['preExecute']=_0xda9079[_0x390ce0(0x14e)],this[_0x390ce0(0x15b)]=!![],this['commandToExecute']=undefined,this[_0x390ce0(0xf8)]=undefined,this['autoClear']&&(this['clearCommand']=new Cesium$6['ClearCommand']({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Cesium$6[_0x390ce0(0x143)]['OPAQUE']}));}return _createClass(_0x5f0601,[{'key':'createCommand','value':function _0x11a855(_0x246056){var _0x565c2d=_0x2ed4;switch(this['commandType']){case _0x565c2d(0xa9):{var _0x5a3184=Cesium$6['VertexArray']['fromGeometry']({'context':_0x246056,'geometry':this['geometry'],'attributeLocations':this[_0x565c2d(0x137)],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']}),_0x315a3b=Cesium$6['ShaderProgram']['fromCache']({'context':_0x246056,'attributeLocations':this[_0x565c2d(0x137)],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this['fragmentShaderSource']}),_0x3298bf=Cesium$6['RenderState']['fromCache'](this['rawRenderState']);return new Cesium$6['DrawCommand']({'primitiveType':this['primitiveType'],'shaderProgram':_0x315a3b,'vertexArray':_0x5a3184,'modelMatrix':Cesium$6['Matrix4']['IDENTITY'],'renderState':_0x3298bf,'uniformMap':this[_0x565c2d(0x93)],'castShadows':![],'receiveShadows':![],'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass']['OPAQUE'],'pickOnly':!![],'owner':this});}case _0x565c2d(0x118):{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this['uniformMap'],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':'setGeometry','value':function _0x57b0a9(_0x5071f2,_0xf33a8c){var _0x398662=_0x2ed4;this[_0x398662(0x14d)]=_0xf33a8c;var _0x2325f6=Cesium$6['VertexArray'][_0x398662(0x167)]({'context':_0x5071f2,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']});this[_0x398662(0xc3)][_0x398662(0xd6)]=_0x2325f6;}},{'key':'update','value':function _0x177ff1(_0x54cf32){var _0xc68a08=_0x2ed4;if(!this['show'])return;if(_0x54cf32[_0xc68a08(0xbd)]!==Cesium$6['SceneMode'][_0xc68a08(0x6b)])return;!Cesium$6['defined'](this[_0xc68a08(0xc3)])&&(this['commandToExecute']=this['createCommand'](_0x54cf32[_0xc68a08(0xd1)])),Cesium$6['defined'](this['preExecute'])&&this['preExecute'](),Cesium$6[_0xc68a08(0xe4)](this[_0xc68a08(0xf8)])&&_0x54cf32['commandList']['push'](this['clearCommand']),_0x54cf32[_0xc68a08(0x100)][_0xc68a08(0xcb)](this['commandToExecute']);}},{'key':_0x589272(0x155),'value':function _0x26ab18(){return![];}},{'key':'destroy','value':function _0x136857(){var _0x26ef1c=_0x589272;if(this[_0x26ef1c(0xf8)]){var _0x14b50f,_0x4d5d42;(_0x14b50f=this['clearCommand'])!==null&&_0x14b50f!==void 0x0&&_0x14b50f['vertexArray']&&this['clearCommand'][_0x26ef1c(0xd6)]['destroy'](),(_0x4d5d42=this[_0x26ef1c(0xf8)])!==null&&_0x4d5d42!==void 0x0&&_0x4d5d42[_0x26ef1c(0x12a)]&&this[_0x26ef1c(0xf8)][_0x26ef1c(0x12a)]['destroy'](),delete this['clearCommand'];}return this['commandToExecute']&&(this['commandToExecute']['vertexArray']&&this['commandToExecute']['vertexArray'][_0x26ef1c(0x13f)](),this[_0x26ef1c(0xc3)]['shaderProgram']&&this['commandToExecute']['shaderProgram'][_0x26ef1c(0x13f)](),delete this[_0x26ef1c(0xc3)]),Cesium$6['destroyObject'](this);}}]),_0x5f0601;}()),Cesium$5=mars3d__namespace['Cesium'],Util=(function(){var _0x5239ec=function _0x197c19(){var _0x38fc65=_0x2ed4,_0x2b7ce3=new Cesium$5['Geometry']({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5[(_0x38fc65(0x81))]({'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[(_0x38fc65(0x81))]({'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 _0x2b7ce3;},_0x4f77b0=function _0x25ec52(_0x1e6de8,_0x1973f5){var _0x2f01bf=_0x2ed4;if(Cesium$5['defined'](_0x1973f5)){var _0x2cf70f={};_0x2cf70f['arrayBufferView']=_0x1973f5,_0x1e6de8['source']=_0x2cf70f;}var _0x42310c=new Cesium$5[(_0x2f01bf(0x124))](_0x1e6de8);return _0x42310c;},_0xfb4dcd=function _0x48e0da(_0x2c4f33,_0x325882,_0x61e66){var _0xddd049=new Cesium$5['Framebuffer']({'context':_0x2c4f33,'colorTextures':[_0x325882],'depthTexture':_0x61e66});return _0xddd049;},_0x5d53f7=function _0x8936d4(_0x6c34bf){var _0x1c8a59=_0x2ed4,_0x43cdfc=!![],_0x207c6c=![],_0x799f20={'viewport':_0x6c34bf[_0x1c8a59(0x16a)],'depthTest':_0x6c34bf['depthTest'],'depthMask':_0x6c34bf[_0x1c8a59(0xd0)],'blending':_0x6c34bf['blending']},_0x2da349=Cesium$5[_0x1c8a59(0x86)]['getDefaultRenderState'](_0x43cdfc,_0x207c6c,_0x799f20);return _0x2da349;},_0x2d84e1=function _0x254d59(_0x1c8867){var _0x40a565=_0x2ed4,_0x56591f={},_0x5140eb=Cesium$5['Math']['mod'](_0x1c8867[_0x40a565(0xaa)],Cesium$5[_0x40a565(0x11e)]['TWO_PI']),_0x202f7b=Cesium$5[_0x40a565(0x11e)][_0x40a565(0x11b)](_0x1c8867['east'],Cesium$5['Math']['TWO_PI']),_0x39924a=_0x1c8867['width'],_0x5585c7,_0xdf88c7;_0x39924a>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0x5585c7=0x0,_0xdf88c7=Cesium$5['Math']['TWO_PI']):_0x202f7b-_0x5140eb<_0x39924a?(_0x5585c7=_0x5140eb,_0xdf88c7=_0x5140eb+_0x39924a):(_0x5585c7=_0x5140eb,_0xdf88c7=_0x202f7b);_0x56591f['lon']={'min':Cesium$5['Math']['toDegrees'](_0x5585c7),'max':Cesium$5['Math']['toDegrees'](_0xdf88c7)};var _0x289e5b=_0x1c8867['south'],_0x13999d=_0x1c8867['north'],_0xb91477=_0x1c8867['height'],_0x4fec69=_0xb91477>Cesium$5['Math']['PI']/0xc?_0xb91477/0x2:0x0,_0x3be5f0=Cesium$5['Math'][_0x40a565(0x162)](_0x289e5b-_0x4fec69),_0x1fb930=Cesium$5['Math']['clampToLatitudeRange'](_0x13999d+_0x4fec69);return _0x3be5f0<-Cesium$5['Math']['PI_OVER_THREE']&&(_0x3be5f0=-Cesium$5['Math'][_0x40a565(0x79)]),_0x1fb930>Cesium$5['Math']['PI_OVER_THREE']&&(_0x1fb930=Cesium$5['Math'][_0x40a565(0x79)]),_0x56591f['lat']={'min':Cesium$5['Math']['toDegrees'](_0x3be5f0),'max':Cesium$5['Math']['toDegrees'](_0x1fb930)},_0x56591f;};return{'getFullscreenQuad':_0x5239ec,'createTexture':_0x4f77b0,'createFramebuffer':_0xfb4dcd,'createRawRenderState':_0x5d53f7,'viewRectangleToLonLatRange':_0x2d84e1};}()),segmentDraw_vert='attribute\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0aattribute\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20postProcessingSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x20\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x20\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x20\x0a\x20\x20\x20\x20float\x20e2\x20=\x206.69437999014e-3;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x0a\x20\x20\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calcProjectedCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0,\x20360.0)\x20-\x20180.0;\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0);\x0a\x20\x20\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calcOffset(vec4\x20currentProjectedCoordinate,\x20vec4\x20nextProjectedCoordinate,\x20float\x20offsetSign)\x20{\x0a\x20\x20\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0);\x0a\x20\x20\x20\x20vec2\x20currentXY\x20=\x20(currentProjectedCoordinate.xy\x20/\x20currentProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x20\x20\x20\x20vec2\x20nextXY\x20=\x20(nextProjectedCoordinate.xy\x20/\x20nextProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0;\x0a\x20\x20\x20\x20vec2\x20direction\x20=\x20normalize(nextXY\x20-\x20currentXY);\x0a\x20\x20\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0,\x200.0);\x0a\x20\x20\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20\x20\x20vec3\x20currentPosition\x20=\x20texture2D(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture2D(postProcessingPosition,\x20particleIndex);\x0a\x0a\x20\x20\x20\x20vec4\x20currentProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20vec4\x20nextProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(nextPosition.w\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(nextPosition.xyz);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20pointToUse\x20=\x20normal.x;\x20//\x20-1\x20is\x20currentProjectedCoordinate\x20and\x20+1\x20is\x20nextProjectedCoordinate\x0a\x20\x20\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20pixelSize\x20*\x20calcOffset(currentProjectedCoordinate,\x20nextProjectedCoordinate,\x20offsetSign);\x0a\x20\x20\x20\x20if\x20(pointToUse\x20<\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20currentProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20nextProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20speedNormalization\x20=\x20texture2D(postProcessingSpeed,\x20particleIndex).a;\x0a}',segmentDraw_frag='uniform\x20sampler2D\x20colorTable;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20texture2D(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}',fullscreen_vert='attribute\x20vec3\x20position;\x0d\x0aattribute\x20vec2\x20st;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0d\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0d\x0a}',trailDraw_frag=_0x28e3fd(0x74),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 _0x1af34e=_0x28e3fd;function _0x27bf07(_0x593fcf,_0x3de59f,_0x2ddf52,_0x38b102,_0x16848b){_classCallCheck(this,_0x27bf07),this['createRenderingTextures'](_0x593fcf,_0x3de59f,_0x2ddf52['colors']),this['createRenderingFramebuffers'](_0x593fcf),this['createRenderingPrimitives'](_0x593fcf,_0x2ddf52,_0x38b102,_0x16848b);}return _createClass(_0x27bf07,[{'key':_0x1af34e(0x9a),'value':function _0x26ad32(_0x5dc46f,_0x32771f,_0x153137){var _0x4bd959=_0x1af34e,_0x26e750={'context':_0x5dc46f,'width':_0x5dc46f['drawingBufferWidth'],'height':_0x5dc46f[_0x4bd959(0x9e)],'pixelFormat':Cesium$4['PixelFormat']['RGBA'],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_BYTE']},_0xdf81d2={'context':_0x5dc46f,'width':_0x5dc46f['drawingBufferWidth'],'height':_0x5dc46f['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat']['DEPTH_COMPONENT'],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_INT']},_0x359a7a=_0x153137[_0x4bd959(0x146)],_0x1e09d2=new Float32Array(_0x359a7a*0x3);for(var _0x18c3cb=0x0;_0x18c3cb<_0x359a7a;_0x18c3cb++){var _0x2d603b=Cesium$4['Color'][_0x4bd959(0x115)](_0x153137[_0x18c3cb]);_0x1e09d2[0x3*_0x18c3cb]=_0x2d603b[_0x4bd959(0x158)],_0x1e09d2[0x3*_0x18c3cb+0x1]=_0x2d603b[_0x4bd959(0x84)],_0x1e09d2[0x3*_0x18c3cb+0x2]=_0x2d603b[_0x4bd959(0xb8)];}var _0x50ffff={'context':_0x5dc46f,'width':_0x359a7a,'height':0x1,'pixelFormat':Cesium$4['PixelFormat']['RGB'],'pixelDatatype':Cesium$4['PixelDatatype'][_0x4bd959(0x117)],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4['TextureMinificationFilter'][_0x4bd959(0xb3)],'magnificationFilter':Cesium$4[_0x4bd959(0x170)]['LINEAR']})};this['textures']={'segmentsColor':Util['createTexture'](_0x26e750),'segmentsDepth':Util['createTexture'](_0xdf81d2),'currentTrailsColor':Util['createTexture'](_0x26e750),'currentTrailsDepth':Util['createTexture'](_0xdf81d2),'nextTrailsColor':Util[_0x4bd959(0x126)](_0x26e750),'nextTrailsDepth':Util['createTexture'](_0xdf81d2),'colorTable':Util['createTexture'](_0x50ffff,_0x1e09d2)};}},{'key':'createRenderingFramebuffers','value':function _0xb6e8e3(_0x430ec9){var _0x20daa6=_0x1af34e;this['framebuffers']={'segments':Util[_0x20daa6(0x132)](_0x430ec9,this['textures']['segmentsColor'],this['textures'][_0x20daa6(0x110)]),'currentTrails':Util['createFramebuffer'](_0x430ec9,this[_0x20daa6(0x85)]['currentTrailsColor'],this[_0x20daa6(0x85)][_0x20daa6(0x7f)]),'nextTrails':Util['createFramebuffer'](_0x430ec9,this['textures']['nextTrailsColor'],this['textures'][_0x20daa6(0x136)])};}},{'key':'createSegmentsGeometry','value':function _0x494028(_0x5cdf41){var _0x2c8cd1=_0x1af34e,_0x1c3bb5=0x4,_0x5b95b7=[];for(var _0x4ab0ea=0x0;_0x4ab0ea<_0x5cdf41['particlesTextureSize'];_0x4ab0ea++){for(var _0x281969=0x0;_0x281969<_0x5cdf41['particlesTextureSize'];_0x281969++){for(var _0x30c026=0x0;_0x30c026<_0x1c3bb5;_0x30c026++){_0x5b95b7['push'](_0x4ab0ea/_0x5cdf41['particlesTextureSize']),_0x5b95b7[_0x2c8cd1(0xcb)](_0x281969/_0x5cdf41[_0x2c8cd1(0xf3)]);}}}_0x5b95b7=new Float32Array(_0x5b95b7);var _0xc5e9ee=[],_0x4f21c2=[-0x1,0x1],_0x2e4f31=[-0x1,0x1];for(var _0x152afa=0x0;_0x152afa<_0x5cdf41['maxParticles'];_0x152afa++){for(var _0x7053dd=0x0;_0x7053dd<_0x1c3bb5/0x2;_0x7053dd++){for(var _0x59baf5=0x0;_0x59baf5<_0x1c3bb5/0x2;_0x59baf5++){_0xc5e9ee['push'](_0x4f21c2[_0x7053dd]),_0xc5e9ee['push'](_0x2e4f31[_0x59baf5]),_0xc5e9ee['push'](0x0);}}}_0xc5e9ee=new Float32Array(_0xc5e9ee);var _0x4143de=0x6*_0x5cdf41[_0x2c8cd1(0x121)],_0x1b97f7=new Uint32Array(_0x4143de);for(var _0x285343=0x0,_0x1c4330=0x0,_0x338867=0x0;_0x285343<_0x5cdf41[_0x2c8cd1(0x121)];_0x285343++){_0x1b97f7[_0x1c4330++]=_0x338867+0x0,_0x1b97f7[_0x1c4330++]=_0x338867+0x1,_0x1b97f7[_0x1c4330++]=_0x338867+0x2,_0x1b97f7[_0x1c4330++]=_0x338867+0x2,_0x1b97f7[_0x1c4330++]=_0x338867+0x1,_0x1b97f7[_0x1c4330++]=_0x338867+0x3,_0x338867+=0x4;}var _0x40663c=new Cesium$4['Geometry']({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4[(_0x2c8cd1(0x81))]({'componentDatatype':Cesium$4['ComponentDatatype'][_0x2c8cd1(0x117)],'componentsPerAttribute':0x2,'values':_0x5b95b7}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4[_0x2c8cd1(0x108)]['FLOAT'],'componentsPerAttribute':0x3,'values':_0xc5e9ee})}),'indices':_0x1b97f7});return _0x40663c;}},{'key':_0x1af34e(0x7a),'value':function _0x448faf(_0x1a45e3,_0x144213,_0x58cd80,_0x2402d){var _0x1c6e3c=_0x1af34e,_0x486292=this;this[_0x1c6e3c(0xf1)]={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'st':0x0,'normal':0x1},'geometry':this['createSegmentsGeometry'](_0x144213),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function _0x45b3c7(){var _0x7026fb=_0x1c6e3c;return _0x2402d['particlesTextures'][_0x7026fb(0xde)];},'postProcessingPosition':function _0x4c8779(){var _0x39b344=_0x1c6e3c;return _0x2402d[_0x39b344(0x133)]['postProcessingPosition'];},'postProcessingSpeed':function _0x2b3933(){var _0x655df0=_0x1c6e3c;return _0x2402d[_0x655df0(0x133)]['postProcessingSpeed'];},'colorTable':function _0x27809e(){return _0x486292['textures']['colorTable'];},'aspect':function _0x31fbb9(){var _0x5a3356=_0x1c6e3c;return _0x1a45e3[_0x5a3356(0x148)]/_0x1a45e3[_0x5a3356(0x9e)];},'pixelSize':function _0x39f8b7(){return _0x58cd80['pixelSize'];},'lineWidth':function _0x79eadb(){return _0x144213['lineWidth'];},'particleHeight':function _0x4e18c8(){return _0x144213['particleHeight'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_frag]}),'rawRenderState':Util[_0x1c6e3c(0xea)]({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this['framebuffers'][_0x1c6e3c(0xfb)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0x45ae75(){var _0x2076b6=_0x1c6e3c;return _0x486292['textures'][_0x2076b6(0x149)];},'segmentsDepthTexture':function _0x308dba(){return _0x486292['textures']['segmentsDepth'];},'currentTrailsColor':function _0x3bd09a(){var _0x44cc7d=_0x1c6e3c;return _0x486292[_0x44cc7d(0xc8)][_0x44cc7d(0x11a)][_0x44cc7d(0x107)](0x0);},'trailsDepthTexture':function _0x552e65(){var _0x440dfa=_0x1c6e3c;return _0x486292[_0x440dfa(0xc8)]['currentTrails']['depthTexture'];},'fadeOpacity':function _0x3430ba(){return _0x144213['fadeOpacity'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x1c6e3c(0x96))]({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[trailDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4[_0x1c6e3c(0xca)]['ALWAYS']},'depthMask':!![]}),'framebuffer':this[_0x1c6e3c(0xc8)]['nextTrails'],'autoClear':!![],'preExecute':function _0x2ce99f(){var _0x161fe7=_0x1c6e3c,_0x17cd1f=_0x486292['framebuffers']['currentTrails'];_0x486292['framebuffers'][_0x161fe7(0x11a)]=_0x486292['framebuffers']['nextTrails'],_0x486292['framebuffers']['nextTrails']=_0x17cd1f,_0x486292[_0x161fe7(0xf1)]['trails']['commandToExecute']['framebuffer']=_0x486292['framebuffers']['nextTrails'],_0x486292['primitives'][_0x161fe7(0x111)]['clearCommand']['framebuffer']=_0x486292[_0x161fe7(0xc8)][_0x161fe7(0x101)];}}),'screen':new CustomPrimitive({'commandType':_0x1c6e3c(0xa9),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4[_0x1c6e3c(0xf2)]['TRIANGLES'],'uniformMap':{'trailsColorTexture':function _0x5a34e5(){var _0x553ad4=_0x1c6e3c;return _0x486292[_0x553ad4(0xc8)][_0x553ad4(0x101)]['getColorTexture'](0x0);},'trailsDepthTexture':function _0x52c5ab(){var _0x447a6d=_0x1c6e3c;return _0x486292['framebuffers']['nextTrails'][_0x447a6d(0x127)];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[screenDraw_frag]}),'rawRenderState':Util[_0x1c6e3c(0xea)]({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x27bf07;}()),getWind_frag=_0x28e3fd(0x166),updateSpeed_frag=_0x28e3fd(0x15f),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 _0x13e042=_0x28e3fd;function _0x3e791(_0x5e4ae5,_0x28551a,_0x253d5d,_0x149d2c){var _0x335c7a=_0x2ed4;_classCallCheck(this,_0x3e791),this['data']=_0x28551a,this['createWindTextures'](_0x5e4ae5,_0x28551a),this[_0x335c7a(0x9b)](_0x5e4ae5,_0x253d5d,_0x149d2c),this['createComputingPrimitives'](_0x28551a,_0x253d5d,_0x149d2c);}return _createClass(_0x3e791,[{'key':_0x13e042(0xe9),'value':function _0xd9f58f(_0x2f28ef,_0x37c214){var _0x3756e7=_0x13e042,_0x441636={'context':_0x2f28ef,'width':_0x37c214['dimensions']['lon'],'height':_0x37c214['dimensions']['lat']*(_0x37c214['dimensions'][_0x3756e7(0x13b)]||0x1),'pixelFormat':Cesium$3['PixelFormat'][_0x3756e7(0xb2)],'pixelDatatype':Cesium$3[_0x3756e7(0x7e)]['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3[_0x3756e7(0x170)]['NEAREST']})};this[_0x3756e7(0x10b)]={'U':Util['createTexture'](_0x441636,_0x37c214['U']['array']),'V':Util['createTexture'](_0x441636,_0x37c214['V'][_0x3756e7(0xb6)])};}},{'key':'createParticlesTextures','value':function _0x37b530(_0x1280a8,_0x4a227b,_0xa826dd){var _0x10cdad=_0x13e042,_0xdba324={'context':_0x1280a8,'width':_0x4a227b['particlesTextureSize'],'height':_0x4a227b['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0x10cdad(0x141)],'magnificationFilter':Cesium$3['TextureMagnificationFilter'][_0x10cdad(0x141)]})},_0x185d43=this['randomizeParticles'](_0x4a227b[_0x10cdad(0x121)],_0xa826dd),_0x48f2fc=new Float32Array(0x4*_0x4a227b['maxParticles'])['fill'](0x0);this['particlesTextures']={'particlesWind':Util['createTexture'](_0xdba324),'currentParticlesPosition':Util['createTexture'](_0xdba324,_0x185d43),'nextParticlesPosition':Util['createTexture'](_0xdba324,_0x185d43),'currentParticlesSpeed':Util[_0x10cdad(0x126)](_0xdba324,_0x48f2fc),'nextParticlesSpeed':Util['createTexture'](_0xdba324,_0x48f2fc),'postProcessingPosition':Util['createTexture'](_0xdba324,_0x185d43),'postProcessingSpeed':Util[_0x10cdad(0x126)](_0xdba324,_0x48f2fc)};}},{'key':_0x13e042(0xd5),'value':function _0x4e6e1b(_0x537113,_0x161503){var _0x114cb4=_0x13e042,_0x43f64d=new Float32Array(0x4*_0x537113);for(var _0x3d272b=0x0;_0x3d272b<_0x537113;_0x3d272b++){_0x43f64d[0x4*_0x3d272b]=Cesium$3['Math']['randomBetween'](_0x161503['lonRange']['x'],_0x161503['lonRange']['y']),_0x43f64d[0x4*_0x3d272b+0x1]=Cesium$3['Math']['randomBetween'](_0x161503['latRange']['x'],_0x161503[_0x114cb4(0xeb)]['y']),_0x43f64d[0x4*_0x3d272b+0x2]=Cesium$3['Math']['randomBetween'](this['data'][_0x114cb4(0x13b)]['min'],this['data']['lev']['max']),_0x43f64d[0x4*_0x3d272b+0x3]=0x0;}return _0x43f64d;}},{'key':'destroyParticlesTextures','value':function _0x33d59e(){var _0x5809ac=_0x13e042,_0xbb5577=this;Object[_0x5809ac(0xfe)](this[_0x5809ac(0x133)])[_0x5809ac(0x10c)](function(_0x46e90b){var _0x42d528=_0x5809ac;_0xbb5577[_0x42d528(0x133)][_0x46e90b][_0x42d528(0x13f)]();});}},{'key':_0x13e042(0x16f),'value':function _0x37234a(_0x4591bf,_0x5cb3f6,_0x55668a){var _0x3e67aa=_0x13e042,_0x234f1f=new Cesium$3['Cartesian3'](_0x4591bf['dimensions']['lon'],_0x4591bf['dimensions']['lat'],_0x4591bf['dimensions'][_0x3e67aa(0x13b)]),_0x49bcfc=new Cesium$3['Cartesian3'](_0x4591bf[_0x3e67aa(0xb1)]['min'],_0x4591bf[_0x3e67aa(0x73)][_0x3e67aa(0x76)],_0x4591bf['lev'][_0x3e67aa(0x76)]),_0x123f03=new Cesium$3['Cartesian3'](_0x4591bf['lon'][_0x3e67aa(0x112)],_0x4591bf['lat'][_0x3e67aa(0x112)],_0x4591bf[_0x3e67aa(0x13b)]['max']),_0x420f2e=new Cesium$3['Cartesian3']((_0x123f03['x']-_0x49bcfc['x'])/(_0x234f1f['x']-0x1),(_0x123f03['y']-_0x49bcfc['y'])/(_0x234f1f['y']-0x1),_0x234f1f['z']>0x1?(_0x123f03['z']-_0x49bcfc['z'])/(_0x234f1f['z']-0x1):0x1),_0x51611c=new Cesium$3['Cartesian2'](_0x4591bf['U']['min'],_0x4591bf['U']['max']),_0x1aa25b=new Cesium$3['Cartesian2'](_0x4591bf['V'][_0x3e67aa(0x76)],_0x4591bf['V']['max']),_0x4f8598=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':_0x3e67aa(0x118),'uniformMap':{'U':function _0x2e7fb3(){return _0x4f8598['windTextures']['U'];},'V':function _0x44fda9(){var _0x181c5a=_0x3e67aa;return _0x4f8598[_0x181c5a(0x10b)]['V'];},'currentParticlesPosition':function _0x58d54f(){var _0x2a7246=_0x3e67aa;return _0x4f8598['particlesTextures'][_0x2a7246(0xde)];},'dimension':function _0x16d654(){return _0x234f1f;},'minimum':function _0x4a6c48(){return _0x49bcfc;},'maximum':function _0x43d4be(){return _0x123f03;},'interval':function _0x114e2c(){return _0x420f2e;}},'fragmentShaderSource':new Cesium$3[(_0x3e67aa(0x96))]({'sources':[getWind_frag]}),'outputTexture':this['particlesTextures'][_0x3e67aa(0xff)],'preExecute':function _0x28839b(){var _0x4cbd3d=_0x3e67aa;_0x4f8598[_0x4cbd3d(0xf1)]['getWind']['commandToExecute'][_0x4cbd3d(0x7d)]=_0x4f8598[_0x4cbd3d(0x133)][_0x4cbd3d(0xff)];}}),'updateSpeed':new CustomPrimitive({'commandType':_0x3e67aa(0x118),'uniformMap':{'currentParticlesSpeed':function _0x2fab38(){return _0x4f8598['particlesTextures']['currentParticlesSpeed'];},'particlesWind':function _0x2e4b08(){var _0x48f57a=_0x3e67aa;return _0x4f8598['particlesTextures'][_0x48f57a(0xff)];},'uSpeedRange':function _0x5ef2fc(){return _0x51611c;},'vSpeedRange':function _0x49526e(){return _0x1aa25b;},'pixelSize':function _0x5b55f8(){var _0x3bb187=_0x3e67aa;return _0x55668a[_0x3bb187(0x16d)];},'speedFactor':function _0x440ba6(){return _0x5cb3f6['speedFactor'];}},'fragmentShaderSource':new Cesium$3[(_0x3e67aa(0x96))]({'sources':[updateSpeed_frag]}),'outputTexture':this['particlesTextures']['nextParticlesSpeed'],'preExecute':function _0x2e0209(){var _0x1ac6bd=_0x3e67aa,_0x2aa9c2=_0x4f8598['particlesTextures']['currentParticlesSpeed'];_0x4f8598['particlesTextures'][_0x1ac6bd(0x120)]=_0x4f8598['particlesTextures']['postProcessingSpeed'],_0x4f8598[_0x1ac6bd(0x133)]['postProcessingSpeed']=_0x2aa9c2,_0x4f8598[_0x1ac6bd(0xf1)]['updateSpeed'][_0x1ac6bd(0xc3)]['outputTexture']=_0x4f8598[_0x1ac6bd(0x133)]['nextParticlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x24db43(){return _0x4f8598['particlesTextures']['currentParticlesPosition'];},'currentParticlesSpeed':function _0x436a06(){var _0x3c89f6=_0x3e67aa;return _0x4f8598[_0x3c89f6(0x133)]['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3[(_0x3e67aa(0x96))]({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0x450f20(){var _0x309955=_0x3e67aa,_0x38c154=_0x4f8598['particlesTextures']['currentParticlesPosition'];_0x4f8598[_0x309955(0x133)]['currentParticlesPosition']=_0x4f8598['particlesTextures']['postProcessingPosition'],_0x4f8598['particlesTextures'][_0x309955(0x12d)]=_0x38c154,_0x4f8598['primitives']['updatePosition']['commandToExecute']['outputTexture']=_0x4f8598['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0x3cbcae(){var _0x10e5c8=_0x3e67aa;return _0x4f8598['particlesTextures'][_0x10e5c8(0xa4)];},'nextParticlesSpeed':function _0x585a79(){return _0x4f8598['particlesTextures']['nextParticlesSpeed'];},'lonRange':function _0x2733ea(){return _0x55668a['lonRange'];},'latRange':function _0x1aeea9(){var _0x1bee29=_0x3e67aa;return _0x55668a[_0x1bee29(0xeb)];},'randomCoefficient':function _0x2e6df1(){var _0x540148=Math['random']();return _0x540148;},'dropRate':function _0x14ee76(){return _0x5cb3f6['dropRate'];},'dropRateBump':function _0x33de58(){var _0xada776=_0x3e67aa;return _0x5cb3f6[_0xada776(0xd9)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures'][_0x3e67aa(0x12d)],'preExecute':function _0x1374b2(){var _0x3b9832=_0x3e67aa;_0x4f8598['primitives'][_0x3b9832(0x12d)]['commandToExecute']['outputTexture']=_0x4f8598['particlesTextures'][_0x3b9832(0x12d)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0xe8cf0d(){return _0x4f8598['particlesTextures']['postProcessingPosition'];},'nextParticlesSpeed':function _0x43b803(){var _0x307b01=_0x3e67aa;return _0x4f8598[_0x307b01(0x133)]['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingSpeed_frag]}),'outputTexture':this['particlesTextures'][_0x3e67aa(0xd7)],'preExecute':function _0xfe1a3b(){var _0x12c1e8=_0x3e67aa;_0x4f8598['primitives']['postProcessingSpeed']['commandToExecute']['outputTexture']=_0x4f8598[_0x12c1e8(0x133)]['postProcessingSpeed'];}})};}}]),_0x3e791;}()),Cesium$2=mars3d__namespace['Cesium'],ParticleSystem=(function(){var _0x22daf5=_0x28e3fd;function _0xb43e8d(_0x44a4f5,_0x39a2de,_0x4c5967,_0x4d761f){var _0x2a4b9c=_0x2ed4;_classCallCheck(this,_0xb43e8d),this[_0x2a4b9c(0xd1)]=_0x44a4f5,_0x39a2de=_objectSpread2({},_0x39a2de);if(_0x39a2de['udata']&&_0x39a2de['vdata']){var _0x3b0337,_0x21c08e,_0x1c70f2,_0x5f28f3,_0xe860a6,_0x195d55;_0x39a2de[_0x2a4b9c(0xe1)]={},_0x39a2de['dimensions'][_0x2a4b9c(0xb1)]=_0x39a2de['cols'],_0x39a2de['dimensions']['lat']=_0x39a2de[_0x2a4b9c(0xbf)],_0x39a2de['dimensions']['lev']=_0x39a2de['lev']||0x1,_0x39a2de[_0x2a4b9c(0xb1)]={},_0x39a2de['lon'][_0x2a4b9c(0x76)]=_0x39a2de['xmin'],_0x39a2de['lon']['max']=_0x39a2de['xmax'],_0x39a2de['lat']={},_0x39a2de[_0x2a4b9c(0x73)]['min']=_0x39a2de['ymin'],_0x39a2de['lat']['max']=_0x39a2de['ymax'],_0x39a2de[_0x2a4b9c(0x13b)]={},_0x39a2de['lev'][_0x2a4b9c(0x76)]=(_0x3b0337=_0x39a2de['levmin'])!==null&&_0x3b0337!==void 0x0?_0x3b0337:0x1,_0x39a2de['lev'][_0x2a4b9c(0x112)]=(_0x21c08e=_0x39a2de['levmax'])!==null&&_0x21c08e!==void 0x0?_0x21c08e:0x1,_0x39a2de['U']={},_0x39a2de['U'][_0x2a4b9c(0xb6)]=new Float32Array(_0x39a2de['udata']),_0x39a2de['U']['min']=(_0x1c70f2=_0x39a2de['umin'])!==null&&_0x1c70f2!==void 0x0?_0x1c70f2:Math['min']['apply'](Math,_toConsumableArray(_0x39a2de[_0x2a4b9c(0x78)])),_0x39a2de['U'][_0x2a4b9c(0x112)]=(_0x5f28f3=_0x39a2de['umax'])!==null&&_0x5f28f3!==void 0x0?_0x5f28f3:Math['max'][_0x2a4b9c(0x168)](Math,_toConsumableArray(_0x39a2de['udata'])),_0x39a2de['V']={},_0x39a2de['V']['array']=new Float32Array(_0x39a2de[_0x2a4b9c(0xc0)]),_0x39a2de['V'][_0x2a4b9c(0x76)]=(_0xe860a6=_0x39a2de['vmin'])!==null&&_0xe860a6!==void 0x0?_0xe860a6:Math['min']['apply'](Math,_toConsumableArray(_0x39a2de[_0x2a4b9c(0xc0)])),_0x39a2de['V']['max']=(_0x195d55=_0x39a2de[_0x2a4b9c(0x91)])!==null&&_0x195d55!==void 0x0?_0x195d55:Math[_0x2a4b9c(0x112)]['apply'](Math,_toConsumableArray(_0x39a2de['vdata']));}this['data']=_0x39a2de,this[_0x2a4b9c(0x119)]=_0x4c5967,this['viewerParameters']=_0x4d761f,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this[_0x2a4b9c(0xd1)],this[_0x2a4b9c(0xef)],this['options'],this[_0x2a4b9c(0x128)],this['particlesComputing']);}return _createClass(_0xb43e8d,[{'key':'canvasResize','value':function _0x55fe98(_0x2b84e3){var _0x56e8c8=_0x2ed4,_0x105daa=this;this[_0x56e8c8(0x12e)][_0x56e8c8(0x11f)](),Object['keys'](this[_0x56e8c8(0x12e)]['windTextures'])['forEach'](function(_0x2b04ce){var _0x10db8f=_0x56e8c8;_0x105daa['particlesComputing']['windTextures'][_0x2b04ce][_0x10db8f(0x13f)]();}),this['particlesRendering']['textures']['colorTable']['destroy'](),Object[_0x56e8c8(0xfe)](this['particlesRendering']['framebuffers'])['forEach'](function(_0x2dc8cf){var _0x35732a=_0x56e8c8;_0x105daa[_0x35732a(0xc6)]['framebuffers'][_0x2dc8cf][_0x35732a(0x13f)]();}),this['context']=_0x2b84e3,this[_0x56e8c8(0x12e)]=new ParticlesComputing(this['context'],this[_0x56e8c8(0xef)],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this[_0x56e8c8(0xef)],this['options'],this['viewerParameters'],this[_0x56e8c8(0x12e)]);}},{'key':_0x22daf5(0x104),'value':function _0x3ed04c(){var _0x2f360a=_0x22daf5,_0x512a94=this,_0x21e8d6=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass']['OPAQUE']});Object[_0x2f360a(0xfe)](this['particlesRendering']['framebuffers'])[_0x2f360a(0x10c)](function(_0x33cc80){var _0x2a9066=_0x2f360a;_0x21e8d6[_0x2a9066(0xa2)]=_0x512a94['particlesRendering'][_0x2a9066(0xc8)][_0x33cc80],_0x21e8d6[_0x2a9066(0x16b)](_0x512a94['context']);});}},{'key':_0x22daf5(0x98),'value':function _0x99b2a(_0x4b89d9){var _0x437b95=_0x22daf5;this['clearFramebuffers'](),this[_0x437b95(0x12e)]['destroyParticlesTextures'](),this['particlesComputing']['createParticlesTextures'](this['context'],this[_0x437b95(0x119)],this['viewerParameters']);if(_0x4b89d9){var _0x3e857e=this['particlesRendering']['createSegmentsGeometry'](this[_0x437b95(0x119)]);this['particlesRendering']['primitives']['segments']['geometry']=_0x3e857e;var _0x4d86b4=Cesium$2['VertexArray'][_0x437b95(0x167)]({'context':this['context'],'geometry':_0x3e857e,'attributeLocations':this[_0x437b95(0xc6)]['primitives']['segments'][_0x437b95(0x137)],'bufferUsage':Cesium$2['BufferUsage'][_0x437b95(0x15c)]});this['particlesRendering'][_0x437b95(0xf1)]['segments']['commandToExecute'][_0x437b95(0xd6)]=_0x4d86b4;}}},{'key':'setOptions','value':function _0x45d2a3(_0x4a2a16){var _0x3c76c5=_0x22daf5,_0x252a19=this,_0x9bae92=![];this['options']['maxParticles']!==_0x4a2a16[_0x3c76c5(0x121)]&&(_0x9bae92=!![]),Object['keys'](_0x4a2a16)[_0x3c76c5(0x10c)](function(_0x42c632){var _0x5ba9e2=_0x3c76c5;_0x252a19[_0x5ba9e2(0x119)][_0x42c632]=_0x4a2a16[_0x42c632];}),this[_0x3c76c5(0x98)](_0x9bae92);}},{'key':'applyViewerParameters','value':function _0x1b5419(_0x3c6e9a){var _0x41fd88=_0x22daf5,_0x4aac8a=this;Object['keys'](_0x3c6e9a)['forEach'](function(_0x27461f){var _0x45c18b=_0x2ed4;_0x4aac8a[_0x45c18b(0x128)][_0x27461f]=_0x3c6e9a[_0x27461f];}),this[_0x41fd88(0x98)](![]);}},{'key':'destroy','value':function _0x42e9a2(){var _0x1a5324=_0x22daf5,_0x5f161b=this;clearTimeout(this['canrefresh']),this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this['particlesComputing'][_0x1a5324(0x10b)])['forEach'](function(_0x54677e){var _0xcf72e1=_0x1a5324;_0x5f161b['particlesComputing'][_0xcf72e1(0x10b)][_0x54677e]['destroy']();}),this['particlesRendering'][_0x1a5324(0x85)]['colorTable']['destroy'](),Object['keys'](this[_0x1a5324(0xc6)][_0x1a5324(0xc8)])[_0x1a5324(0x10c)](function(_0x9f7a91){var _0x49c6af=_0x1a5324;_0x5f161b['particlesRendering'][_0x49c6af(0xc8)][_0x9f7a91]['destroy']();});for(var _0x55b0d7 in this){delete this[_0x55b0d7];}}}]),_0xb43e8d;}()),Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],DEF_OPTIONS={'particlesNumber':0x1000,'fixedHeight':0x0,'fadeOpacity':0.996,'dropRate':0.003,'dropRateBump':0.01,'speedFactor':0.5,'lineWidth':0x2,'colors':['rgb(206,255,255)']},WindLayer=function(_0xf2bec){var _0x334db8=_0x28e3fd;_inherits(_0x42bca0,_0xf2bec);var _0x54f972=_createSuper(_0x42bca0);function _0x42bca0(){var _0x5603a5=_0x2ed4,_0x440f99,_0x200cad=arguments[_0x5603a5(0x146)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x42bca0),_0x200cad=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x200cad),_0x440f99=_0x54f972['call'](this,_0x200cad),_0x440f99['_setOptionsHook'](_0x200cad),_0x440f99;}return _createClass(_0x42bca0,[{'key':'layer','get':function _0x5ae681(){return this['primitives'];}},{'key':_0x334db8(0xef),'get':function _0x2e4839(){return this['_data'];},'set':function _0x4be966(_0x10cd2d){var _0x1b3e4f=_0x334db8;this[_0x1b3e4f(0xa5)](_0x10cd2d);}},{'key':_0x334db8(0xc1),'get':function _0x44b72d(){return this['options']['colors'];},'set':function _0xd32c96(_0x386e5e){this['options']['colors']=_0x386e5e,this['particleSystem']&&this['particleSystem']['setOptions']({'colors':_0x386e5e}),this['resize']();}},{'key':'_mountedHook','value':function _0x24c86d(){}},{'key':_0x334db8(0x9c),'value':function _0x522e56(){var _0x4849d2=_0x334db8;this['scene']=this['_map'][_0x4849d2(0xdf)],this['camera']=this['_map']['camera'],this['primitives']=new Cesium$1[(_0x4849d2(0xf4))](),this['_map']['scene']['primitives']['add'](this['primitives']),this['viewerParameters']={'lonRange':new Cesium$1[(_0x4849d2(0x8c))](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0},this[_0x4849d2(0x9f)]=new Cesium$1[(_0x4849d2(0x144))](Cesium$1[_0x4849d2(0x145)]['ZERO'],0.99*0x615299),this['updateViewerParameters'](),window[_0x4849d2(0x164)](_0x4849d2(0x160),this[_0x4849d2(0x160)][_0x4849d2(0xb9)](this),![]),this[_0x4849d2(0x172)]=![],this['mouse_move']=![],this['_map']['on'](mars3d__namespace[_0x4849d2(0x7b)]['wheel'],this['_onMapWhellEvent'],this),this[_0x4849d2(0x6e)]['on'](mars3d__namespace[_0x4849d2(0x7b)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x4849d2(0x7b)]['mouseUp'],this['_onMouseUpEvent'],this),this[_0x4849d2(0x6e)]['on'](mars3d__namespace['EventType']['mouseMove'],this[_0x4849d2(0x169)],this),this['_data']&&this['setData'](this['_data']);}},{'key':'_removedHook','value':function _0x174118(){var _0x5ec0dc=_0x334db8;window['removeEventListener'](_0x5ec0dc(0x160),this['resize']),this[_0x5ec0dc(0x6e)]['off'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this),this[_0x5ec0dc(0x6e)]['off'](mars3d__namespace['EventType']['wheel'],this[_0x5ec0dc(0xbb)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x5ec0dc(0xba)](mars3d__namespace[_0x5ec0dc(0x7b)]['mouseUp'],this['_onMouseUpEvent'],this),this[_0x5ec0dc(0x6e)][_0x5ec0dc(0xba)](mars3d__namespace['EventType']['mouseMove'],this[_0x5ec0dc(0x169)],this),this['primitives'][_0x5ec0dc(0x105)](),this['_map'][_0x5ec0dc(0xdf)]['primitives']['remove'](this['primitives']);}},{'key':'resize','value':function _0x3fdc18(){var _0x326791=_0x334db8;if(!this['show']||!this[_0x326791(0x95)])return;this['primitives']['show']=![],this['primitives']['removeAll'](),this[_0x326791(0x6e)]['once'](mars3d__namespace[_0x326791(0x7b)]['preRender'],this['_onMap_preRenderEvent'],this);}},{'key':'_onMap_preRenderEvent','value':function _0x55b423(_0x4da68c){var _0x26a6e0=_0x334db8;this[_0x26a6e0(0x95)]['canvasResize'](this['scene']['context']),this[_0x26a6e0(0x13d)](),this['primitives'][_0x26a6e0(0x15b)]=!![];}},{'key':_0x334db8(0xbb),'value':function _0x3f8484(_0x200a32){var _0x3d4bb2=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['particleSystem'])return;this['primitives']['show']=![],this['refreshTimer']=setTimeout(function(){if(!_0x3d4bb2['show'])return;_0x3d4bb2['redraw']();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x4987fb(_0x5809ba){var _0x32d9b1=_0x334db8;this[_0x32d9b1(0x172)]=!![];}},{'key':_0x334db8(0x169),'value':function _0x2bbe2e(_0x3db7e3){var _0x12a4d8=_0x334db8;if(!this['show']||!this['particleSystem'])return;this[_0x12a4d8(0x172)]&&(this['primitives']['show']=![],this[_0x12a4d8(0x150)]=!![]);}},{'key':'_onMouseUpEvent','value':function _0x5427cf(_0x57443a){var _0x16999e=_0x334db8;if(!this['show']||!this[_0x16999e(0x95)])return;this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['primitives']['show']=!![],this['mouse_down']=![],this['mouse_move']=![];}},{'key':_0x334db8(0xfc),'value':function _0x1062c3(){var _0x22964d=_0x334db8;if(!this['_map']||!this['show'])return;this['updateViewerParameters'](),this['particleSystem'][_0x22964d(0x123)](this[_0x22964d(0x128)]),this['primitives']['show']=!![];}},{'key':_0x334db8(0xa5),'value':function _0x37838e(_0x343350){var _0xd75078=_0x334db8;this['_data']=_0x343350,this[_0xd75078(0x95)]&&this[_0xd75078(0x95)][_0xd75078(0x13f)](),this[_0xd75078(0x95)]=new ParticleSystem(this[_0xd75078(0xdf)][_0xd75078(0xd1)],_0x343350,this['getOptions'](),this[_0xd75078(0x128)]),this['addPrimitives']();}},{'key':'_setOptionsHook','value':function _0x3c8c05(_0x16d816,_0x4f85ad){var _0x274cca=_0x334db8;if(_0x16d816)for(var _0x10f16f in _0x16d816){this[_0x10f16f]=_0x16d816[_0x10f16f];}this[_0x274cca(0x95)]&&this['particleSystem']['setOptions'](this['getOptions']());}},{'key':_0x334db8(0x109),'value':function _0x2f014d(){var _0x400491=_0x334db8,_0x43f125=Math['ceil'](Math[_0x400491(0xd4)](this['particlesNumber']));return this['particlesNumber']=_0x43f125*_0x43f125,{'particlesTextureSize':_0x43f125,'maxParticles':this[_0x400491(0xe6)],'particleHeight':this['fixedHeight'],'fadeOpacity':this['fadeOpacity'],'dropRate':this['dropRate'],'dropRateBump':this['dropRateBump'],'speedFactor':this['speedFactor'],'lineWidth':this['lineWidth'],'colors':this['colors']};}},{'key':'addPrimitives','value':function _0x518396(){var _0x26d9c4=_0x334db8;this['primitives'][_0x26d9c4(0x90)](this['particleSystem'][_0x26d9c4(0x12e)][_0x26d9c4(0xf1)][_0x26d9c4(0xfa)]),this[_0x26d9c4(0xf1)]['add'](this['particleSystem']['particlesComputing']['primitives']['updateSpeed']),this['primitives'][_0x26d9c4(0x90)](this['particleSystem']['particlesComputing']['primitives']['updatePosition']),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives'][_0x26d9c4(0x12d)]),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives'][_0x26d9c4(0xd7)]),this[_0x26d9c4(0xf1)]['add'](this[_0x26d9c4(0x95)]['particlesRendering']['primitives']['segments']),this['primitives']['add'](this['particleSystem']['particlesRendering'][_0x26d9c4(0xf1)][_0x26d9c4(0x111)]),this['primitives']['add'](this[_0x26d9c4(0x95)]['particlesRendering']['primitives'][_0x26d9c4(0xa8)]);}},{'key':'updateViewerParameters','value':function _0x3a9390(){var _0xf75719=_0x334db8,_0x2c7ab4=this['camera'][_0xf75719(0xec)](this['scene']['globe']['ellipsoid']);if(!_0x2c7ab4){var _0x2376b9=this['_map']['getExtent']();_0x2c7ab4=Cesium$1['Rectangle']['fromDegrees'](_0x2376b9['xmin'],_0x2376b9[_0xf75719(0xe3)],_0x2376b9[_0xf75719(0x8f)],_0x2376b9['ymax']);}var _0x47f4af=Util['viewRectangleToLonLatRange'](_0x2c7ab4);this['viewerParameters']['lonRange']['x']=_0x47f4af['lon']['min'],this['viewerParameters'][_0xf75719(0x122)]['y']=_0x47f4af[_0xf75719(0xb1)]['max'],this[_0xf75719(0x128)][_0xf75719(0xeb)]['x']=_0x47f4af['lat']['min'],this['viewerParameters']['latRange']['y']=_0x47f4af[_0xf75719(0x73)][_0xf75719(0x112)];var _0x1bc6c6=this[_0xf75719(0x99)]['getPixelSize'](this['globeBoundingSphere'],this['scene']['drawingBufferWidth'],this[_0xf75719(0xdf)]['drawingBufferHeight']);_0x1bc6c6>0x0&&(this['viewerParameters']['pixelSize']=_0x1bc6c6);}}]),_0x42bca0;}(BaseLayer$1);mars3d__namespace['LayerUtil']['register'](_0x28e3fd(0x10a),WindLayer),mars3d__namespace[_0x28e3fd(0x94)][_0x28e3fd(0xf9)]=WindLayer;var CanvasParticle=(function(){function _0x5f4bbd(){var _0x187ad3=_0x2ed4;_classCallCheck(this,_0x5f4bbd),this['lng']=null,this['lat']=null,this['tlng']=null,this[_0x187ad3(0x163)]=null,this[_0x187ad3(0xee)]=null;}return _createClass(_0x5f4bbd,[{'key':'destroy','value':function _0x37b35f(){for(var _0x34d7cf in this){delete this[_0x34d7cf];}}}]),_0x5f4bbd;}()),CanvasWindField=(function(){var _0x299bb4=_0x28e3fd;function _0x2ee272(_0x31308c){_classCallCheck(this,_0x2ee272),this['setOptions'](_0x31308c);}return _createClass(_0x2ee272,[{'key':'speedRate','get':function _0x26d6ef(){return this['_speedRate'];},'set':function _0x289f33(_0x54cfd0){var _0x32fd1b=_0x2ed4;this['_speedRate']=(0x64-(_0x54cfd0>0x63?0x63:_0x54cfd0))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x32fd1b(0xe2)]-this['ymin'])/this['_speedRate']];}},{'key':_0x299bb4(0xdb),'get':function _0x2a655c(){return this['_maxAge'];},'set':function _0x3a8a19(_0x439885){this['_maxAge']=_0x439885;}},{'key':'setOptions','value':function _0x59c519(_0xed3dd9){var _0x419285=_0x299bb4;this['options']=_0xed3dd9,this['maxAge']=_0xed3dd9['maxAge']||0x78,this['speedRate']=_0xed3dd9['speedRate']||0x32,this[_0x419285(0x8d)]=[];var _0x2d66ff=_0xed3dd9[_0x419285(0xe6)]||0x1000;for(var _0x52ad3e=0x0;_0x52ad3e<_0x2d66ff;_0x52ad3e++){var _0x3f9cb3=this['_randomParticle'](new CanvasParticle());this['particles'][_0x419285(0xcb)](_0x3f9cb3);}}},{'key':'setDate','value':function _0x369e56(_0x4964f4){var _0x368cae=_0x299bb4;this['rows']=_0x4964f4[_0x368cae(0xbf)],this['cols']=_0x4964f4['cols'],this[_0x368cae(0xac)]=_0x4964f4[_0x368cae(0xac)],this['xmax']=_0x4964f4[_0x368cae(0x8f)],this['ymin']=_0x4964f4['ymin'],this['ymax']=_0x4964f4['ymax'],this['grid']=[];var _0x4803ab=_0x4964f4['udata'],_0x4d236f=_0x4964f4[_0x368cae(0xc0)],_0x39451f=![];_0x4803ab[_0x368cae(0x146)]===this['rows']&&_0x4803ab[0x0]['length']===this['cols']&&(_0x39451f=!![]);var _0x5ed29f=0x0,_0x88c98a=null,_0x5e0ad1=null;for(var _0x2cb1e5=0x0;_0x2cb1e5<this[_0x368cae(0xbf)];_0x2cb1e5++){_0x88c98a=[];for(var _0xed0dda=0x0;_0xed0dda<this['cols'];_0xed0dda++,_0x5ed29f++){_0x39451f?_0x5e0ad1=this[_0x368cae(0x157)](_0x4803ab[_0x2cb1e5][_0xed0dda],_0x4d236f[_0x2cb1e5][_0xed0dda]):_0x5e0ad1=this[_0x368cae(0x157)](_0x4803ab[_0x5ed29f],_0x4d236f[_0x5ed29f]),_0x88c98a[_0x368cae(0xcb)](_0x5e0ad1);}this[_0x368cae(0x159)]['push'](_0x88c98a);}this['options']['reverseY']&&this['grid']['reverse']();}},{'key':_0x299bb4(0x70),'value':function _0x416b57(){var _0x476489=_0x299bb4;delete this[_0x476489(0xbf)],delete this['cols'],delete this['xmin'],delete this['xmax'],delete this[_0x476489(0xe3)],delete this['ymax'],delete this['grid'],delete this['particles'];}},{'key':_0x299bb4(0x71),'value':function _0x59288c(_0x4e4e36,_0x547fe7){var _0x396824=_0x299bb4,_0x251dad=(_0x4e4e36-this['xmin'])/(this['xmax']-this[_0x396824(0xac)])*(this['cols']-0x1),_0x420b3e=(this['ymax']-_0x547fe7)/(this['ymax']-this[_0x396824(0xe3)])*(this['rows']-0x1);return[_0x251dad,_0x420b3e];}},{'key':'getUVByXY','value':function _0x42b4ba(_0xec8350,_0xcd6e8b){var _0x5305fe=_0x299bb4;if(_0xec8350<0x0||_0xec8350>=this[_0x5305fe(0xc7)]||_0xcd6e8b>=this['rows'])return[0x0,0x0,0x0];var _0x125dbc=Math['floor'](_0xec8350),_0x13ef6f=Math['floor'](_0xcd6e8b);if(_0x125dbc===_0xec8350&&_0x13ef6f===_0xcd6e8b)return this[_0x5305fe(0x159)][_0xcd6e8b][_0xec8350];var _0x94a0f=_0x125dbc+0x1,_0x4fcc71=_0x13ef6f+0x1,_0x2c0efc=this['getUVByXY'](_0x125dbc,_0x13ef6f),_0x2d7403=this['getUVByXY'](_0x94a0f,_0x13ef6f),_0x42e354=this[_0x5305fe(0xd2)](_0x125dbc,_0x4fcc71),_0x3f975e=this['getUVByXY'](_0x94a0f,_0x4fcc71),_0x4c6983=null;try{_0x4c6983=this['_bilinearInterpolation'](_0xec8350-_0x125dbc,_0xcd6e8b-_0x13ef6f,_0x2c0efc,_0x2d7403,_0x42e354,_0x3f975e);}catch(_0x3295f4){console[_0x5305fe(0x161)](_0xec8350,_0xcd6e8b);}return _0x4c6983;}},{'key':'_bilinearInterpolation','value':function _0xfd09e8(_0x13a544,_0x2f70b6,_0x400713,_0x7d4e7f,_0x1b6f04,_0xd73640){var _0x1a0727=_0x299bb4,_0x578996=0x1-_0x13a544,_0x1f1d3d=0x1-_0x2f70b6,_0x53373c=_0x578996*_0x1f1d3d,_0x2eeece=_0x13a544*_0x1f1d3d,_0xa1bda0=_0x578996*_0x2f70b6,_0x57a205=_0x13a544*_0x2f70b6,_0x28b9a5=_0x400713[0x0]*_0x53373c+_0x7d4e7f[0x0]*_0x2eeece+_0x1b6f04[0x0]*_0xa1bda0+_0xd73640[0x0]*_0x57a205,_0x33900e=_0x400713[0x1]*_0x53373c+_0x7d4e7f[0x1]*_0x2eeece+_0x1b6f04[0x1]*_0xa1bda0+_0xd73640[0x1]*_0x57a205;return this[_0x1a0727(0x157)](_0x28b9a5,_0x33900e);}},{'key':'_calcUV','value':function _0x3b57e1(_0x5ed277,_0x178990){return[+_0x5ed277,+_0x178990,Math['sqrt'](_0x5ed277*_0x5ed277+_0x178990*_0x178990)];}},{'key':_0x299bb4(0xcd),'value':function _0x9b7fa8(_0x201ed5,_0xeeba57){var _0x609934=_0x299bb4;if(!this[_0x609934(0xe7)](_0x201ed5,_0xeeba57))return null;var _0x542889=this['toGridXY'](_0x201ed5,_0xeeba57),_0x1b3f8c=this['getUVByXY'](_0x542889[0x0],_0x542889[0x1]);return _0x1b3f8c;}},{'key':_0x299bb4(0xe7),'value':function _0x2e3cf7(_0x53a61c,_0x5a1a92){var _0x1fcc15=_0x299bb4;return _0x53a61c>=this['xmin']&&_0x53a61c<=this[_0x1fcc15(0x8f)]&&_0x5a1a92>=this['ymin']&&_0x5a1a92<=this['ymax']?!![]:![];}},{'key':'getRandomLatLng','value':function _0x44a1bd(){var _0x4b72e0=fRandomByfloat(this['xmin'],this['xmax']),_0x4010d6=fRandomByfloat(this['ymin'],this['ymax']);return{'lat':_0x4010d6,'lng':_0x4b72e0};}},{'key':'getParticles','value':function _0x15cdc3(){var _0x3ea8bb=_0x299bb4,_0x5ccd09,_0x3dc23b,_0x40fc46;for(var _0x318813=0x0,_0x13a06f=this['particles']['length'];_0x318813<_0x13a06f;_0x318813++){var _0x356265=this['particles'][_0x318813];_0x356265['age']<=0x0&&(_0x356265=this['_randomParticle'](_0x356265));if(_0x356265['age']>0x0){var _0x3e4ae7=_0x356265['tlng'],_0x32c98a=_0x356265[_0x3ea8bb(0x163)];_0x40fc46=this['getUVByPoint'](_0x3e4ae7,_0x32c98a),_0x40fc46?(_0x5ccd09=_0x3e4ae7+this[_0x3ea8bb(0xcc)][0x0]*_0x40fc46[0x0],_0x3dc23b=_0x32c98a+this[_0x3ea8bb(0xcc)][0x1]*_0x40fc46[0x1],_0x356265['lng']=_0x3e4ae7,_0x356265['lat']=_0x32c98a,_0x356265[_0x3ea8bb(0x97)]=_0x5ccd09,_0x356265['tlat']=_0x3dc23b,_0x356265['age']--):_0x356265['age']=0x0;}}return this['particles'];}},{'key':'_randomParticle','value':function _0x1fda63(_0x501c49){var _0x13d8fd=_0x299bb4,_0x24ac7c,_0x1c2ca5;for(var _0x5e1d3c=0x0;_0x5e1d3c<0x1e;_0x5e1d3c++){_0x24ac7c=this['getRandomLatLng'](),_0x1c2ca5=this['getUVByPoint'](_0x24ac7c[_0x13d8fd(0x129)],_0x24ac7c[_0x13d8fd(0x73)]);if(_0x1c2ca5&&_0x1c2ca5[0x2]>0x0)break;}if(!_0x1c2ca5)return _0x501c49;var _0x2039e5=_0x24ac7c[_0x13d8fd(0x129)]+this[_0x13d8fd(0xcc)][0x0]*_0x1c2ca5[0x0],_0x284571=_0x24ac7c['lat']+this['_calc_speedRate'][0x1]*_0x1c2ca5[0x1];return _0x501c49['lng']=_0x24ac7c['lng'],_0x501c49['lat']=_0x24ac7c['lat'],_0x501c49['tlng']=_0x2039e5,_0x501c49['tlat']=_0x284571,_0x501c49['age']=Math['round'](Math[_0x13d8fd(0xab)]()*this['maxAge']),_0x501c49;}},{'key':_0x299bb4(0x13f),'value':function _0x2acfd9(){for(var _0x5b44d1 in this){delete this[_0x5b44d1];}}}]),_0x2ee272;}());function fRandomByfloat(_0x184997,_0x3b5030){return _0x184997+Math['random']()*(_0x3b5030-_0x184997);}var Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'],CanvasWindLayer=function(_0x461d81){var _0x1f335f=_0x28e3fd;_inherits(_0xd5c692,_0x461d81);var _0x1d4eff=_createSuper(_0xd5c692);function _0xd5c692(){var _0x45b7e3=_0x2ed4,_0x278ca5,_0x13b242=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0xd5c692),_0x278ca5=_0x1d4eff[_0x45b7e3(0x16e)](this,_0x13b242),_0x278ca5[_0x45b7e3(0xda)](_0x13b242),_0x278ca5['canvas']=null,_0x278ca5;}return _createClass(_0xd5c692,[{'key':_0x1f335f(0xda),'value':function _0x3a262f(_0x304aa5,_0x309361){var _0x5e6d3e=_0x1f335f,_0x252563,_0x9b216d,_0x414c32;this['frameTime']=0x3e8/(_0x304aa5[_0x5e6d3e(0xce)]||0xa),this['_pointerEvents']=(_0x252563=this[_0x5e6d3e(0x119)]['pointerEvents'])!==null&&_0x252563!==void 0x0?_0x252563:![],this[_0x5e6d3e(0x14f)]=_0x304aa5['color']||'#ffffff',this[_0x5e6d3e(0x142)]=_0x304aa5['lineWidth']||0x1,this['fixedHeight']=(_0x9b216d=_0x304aa5['fixedHeight'])!==null&&_0x9b216d!==void 0x0?_0x9b216d:0x0,this['reverseY']=(_0x414c32=_0x304aa5[_0x5e6d3e(0x72)])!==null&&_0x414c32!==void 0x0?_0x414c32:![],this['windField']&&this['windField']['setOptions'](_0x304aa5);}},{'key':_0x1f335f(0x94),'get':function _0x1f44a4(){return this['canvas'];}},{'key':'canvasWidth','get':function _0x568fbd(){return this['_map']['scene']['canvas']['clientWidth'];}},{'key':'canvasHeight','get':function _0x35f4db(){var _0x587387=_0x1f335f;return this[_0x587387(0x6e)]['scene']['canvas']['clientHeight'];}},{'key':_0x1f335f(0x113),'get':function _0x4a294c(){return this['_pointerEvents'];},'set':function _0x12f451(_0x26aca7){var _0x536bbb=_0x1f335f;this['_pointerEvents']=_0x26aca7;if(!this['canvas'])return;_0x26aca7?this['canvas']['style'][_0x536bbb(0x13e)]='all':this['canvas'][_0x536bbb(0xaf)]['pointer-events']='none';}},{'key':'particlesNumber','get':function _0x2e9f4a(){var _0xe21712=_0x1f335f;return this[_0xe21712(0x119)][_0xe21712(0xe6)];},'set':function _0x39790e(_0x6c366a){var _0x2754b9=_0x1f335f,_0x281f6a=this;this['options'][_0x2754b9(0xe6)]=_0x6c366a,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(function(){var _0x527642=_0x2754b9;_0x281f6a[_0x527642(0xfc)]();},0x1f4);}},{'key':'speedRate','get':function _0x124415(){var _0x14fbfa=_0x1f335f;return this['options'][_0x14fbfa(0x140)];},'set':function _0x24bf98(_0x253fe8){var _0x104d99=_0x1f335f;this['options']['speedRate']=_0x253fe8,this[_0x104d99(0x130)]&&(this['windField']['speedRate']=_0x253fe8);}},{'key':'maxAge','get':function _0x37d333(){var _0x4f3bca=_0x1f335f;return this[_0x4f3bca(0x119)][_0x4f3bca(0xdb)];},'set':function _0x5e7509(_0x30e5bc){var _0x71c984=_0x1f335f;this['options'][_0x71c984(0xdb)]=_0x30e5bc,this[_0x71c984(0x130)]&&(this['windField']['maxAge']=_0x30e5bc);}},{'key':'data','get':function _0x5e9c7c(){return this['windData'];},'set':function _0x53f1be(_0x3c70a5){this['setData'](_0x3c70a5);}},{'key':_0x1f335f(0x16c),'value':function _0x215ccb(_0x249190){var _0x43d8cd=_0x1f335f;_0x249190?this['_addedHook']():(this['windData']&&(this[_0x43d8cd(0x119)][_0x43d8cd(0xef)]=this[_0x43d8cd(0x87)]),this['_removedHook']());}},{'key':_0x1f335f(0xe0),'value':function _0x4d0427(){var _0x19139b=_0x1f335f;this[_0x19139b(0x119)]['worker']?this['initWorker']():this[_0x19139b(0x130)]=new CanvasWindField(this['options']);}},{'key':_0x1f335f(0x9c),'value':function _0x7350b2(){this['canvas']=this['_createCanvas'](),this['canvasContext']=this['canvas']['getContext']('2d',{'willReadFrequently':!![]}),this['bindEvent'](),this['options']['data']&&this['setData'](this['options']['data']);}},{'key':'_removedHook','value':function _0x3d9fcb(){var _0x236921=_0x1f335f;this['clear'](),this[_0x236921(0xed)](),this['canvas']&&(this[_0x236921(0x6e)]['container'][_0x236921(0xc9)](this['canvas']),delete this['canvas']);}},{'key':'_createCanvas','value':function _0x33911e(){var _0x156942=_0x1f335f,_0xb13fae=document['createElement']('canvas');_0xb13fae['style']['position']='absolute',_0xb13fae[_0x156942(0xaf)][_0x156942(0xdc)]='0px',_0xb13fae['style']['left']=_0x156942(0x82),_0xb13fae[_0x156942(0xaf)]['width']=_0x156942(0x171),_0xb13fae[_0x156942(0xaf)]['height']='100%',_0xb13fae['style']['pointerEvents']=this[_0x156942(0x11c)]?'auto':_0x156942(0xc5),_0xb13fae['style']['zIndex']=0xa,_0xb13fae['setAttribute']('id','canvasWindy'),_0xb13fae[_0x156942(0x10f)](_0x156942(0xdd),'canvasWindy'),this['_map'][_0x156942(0x88)]['appendChild'](_0xb13fae);var _0x5801eb=this[_0x156942(0x6e)]['scene'];return _0xb13fae['width']=_0x5801eb[_0x156942(0x83)]['clientWidth'],_0xb13fae['height']=_0x5801eb['canvas'][_0x156942(0x103)],_0xb13fae;}},{'key':'resize','value':function _0x46afc7(){var _0x477500=_0x1f335f;this['canvas']&&(this['canvas']['width']=this[_0x477500(0xbe)],this[_0x477500(0x83)]['height']=this['canvasHeight']);}},{'key':_0x1f335f(0xf7),'value':function _0x103f05(){var _0x32aede=_0x1f335f,_0x9ee27=this,_0x290efd=Date['now']();(function _0x20dd46(){var _0x3469b3=_0x2ed4;_0x9ee27['animateFrame']=window[_0x3469b3(0x153)](_0x20dd46);if(_0x9ee27[_0x3469b3(0x15b)]&&_0x9ee27['windField']){var _0x4b7d05=Date['now'](),_0x2e2cc5=_0x4b7d05-_0x290efd;_0x2e2cc5>_0x9ee27['frameTime']&&(_0x290efd=_0x4b7d05-_0x2e2cc5%_0x9ee27['frameTime'],_0x9ee27['update']());}}(),window['addEventListener']('resize',this['resize'][_0x32aede(0xb9)](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this[_0x32aede(0x6e)]['on'](mars3d__namespace['EventType'][_0x32aede(0x165)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x32aede(0x7b)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x32aede(0x6e)]['on'](mars3d__namespace[_0x32aede(0x7b)]['mouseUp'],this[_0x32aede(0x92)],this)));}},{'key':'unbindEvent','value':function _0x18d2b9(){var _0x83cf0b=_0x1f335f;window['cancelAnimationFrame'](this['animateFrame']),delete this['animateFrame'],window['removeEventListener'](_0x83cf0b(0x160),this['resize']),this[_0x83cf0b(0x119)]['mouseHidden']&&(this[_0x83cf0b(0x6e)][_0x83cf0b(0xba)](mars3d__namespace['EventType'][_0x83cf0b(0x165)],this['_onMapWhellEvent'],this),this['_map'][_0x83cf0b(0xba)](mars3d__namespace['EventType'][_0x83cf0b(0xbc)],this['_onMouseDownEvent'],this),this[_0x83cf0b(0x6e)]['off'](mars3d__namespace['EventType'][_0x83cf0b(0x106)],this['_onMouseUpEvent'],this),this['_map'][_0x83cf0b(0xba)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}},{'key':'_onMapWhellEvent','value':function _0x5b8390(_0x416c54){var _0x44197c=_0x1f335f,_0x47c8d4=this;clearTimeout(this['refreshTimer']);if(!this[_0x44197c(0x15b)]||!this['canvas'])return;this['canvas'][_0x44197c(0xaf)]['visibility']=_0x44197c(0xc4),this['refreshTimer']=setTimeout(function(){var _0x57b167=_0x44197c;if(!_0x47c8d4['show'])return;_0x47c8d4['redraw'](),_0x47c8d4['canvas'][_0x57b167(0xaf)]['visibility']='visible';},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x5d55e0(_0xea44b1){var _0x29cadc=_0x1f335f;this['mouse_down']=!![],this['_map'][_0x29cadc(0xba)](mars3d__namespace['EventType']['mouseMove'],this[_0x29cadc(0x169)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}},{'key':'_onMouseMoveEvent','value':function _0x39bef6(_0x506201){var _0x4e24cb=_0x1f335f;if(!this[_0x4e24cb(0x15b)]||!this[_0x4e24cb(0x83)])return;this[_0x4e24cb(0x172)]&&(this['canvas'][_0x4e24cb(0xaf)][_0x4e24cb(0x134)]='hidden',this[_0x4e24cb(0x150)]=!![]);}},{'key':'_onMouseUpEvent','value':function _0x4e8740(_0x5ec17f){var _0x5779de=_0x1f335f;if(!this['show']||!this['canvas'])return;this[_0x5779de(0x6e)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x5779de(0x172)]&&this['mouse_move']&&this['redraw'](),this[_0x5779de(0x83)]['style']['visibility']='visible',this['mouse_down']=![],this['mouse_move']=![];}},{'key':'setData','value':function _0x28c718(_0x5cad2d){var _0x296b6e=_0x1f335f;this['clear'](),this['windData']=_0x5cad2d,this['windField']['setDate'](_0x5cad2d),this[_0x296b6e(0xfc)]();}},{'key':_0x1f335f(0xfc),'value':function _0x5e913d(){var _0x59388c=_0x1f335f;if(!this['show'])return;this[_0x59388c(0x130)]['setOptions'](this['options']),this['update']();}},{'key':'update','value':function _0x12010f(){var _0x4619b1=_0x1f335f;if(this['_updateIng'])return;this[_0x4619b1(0x131)]=!![];if(this['worker'])this['windField'][_0x4619b1(0x8e)]();else{var _0x26df39=this['windField']['getParticles']();this['_drawLines'](_0x26df39);}this[_0x4619b1(0x131)]=![];}},{'key':_0x1f335f(0xd3),'value':function _0x42fcf4(_0x13319d){var _0x168d1b=_0x1f335f;this['canvasContext'][_0x168d1b(0x12c)]='destination-in',this['canvasContext'][_0x168d1b(0x9d)](0x0,0x0,this['canvasWidth'],this[_0x168d1b(0xe8)]),this['canvasContext']['globalCompositeOperation']=_0x168d1b(0xb0),this['canvasContext'][_0x168d1b(0xcf)]=0.9,this['canvasContext'][_0x168d1b(0xae)](),this['canvasContext'][_0x168d1b(0x142)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this['color'];var _0x231b88=this['_map']['scene']['mode']!==Cesium[_0x168d1b(0x139)]['SCENE3D'];for(var _0x3d1215=0x0,_0x4cfa1b=_0x13319d[_0x168d1b(0x146)];_0x3d1215<_0x4cfa1b;_0x3d1215++){var _0x1c069d=_0x13319d[_0x3d1215],_0x654b64=this['_tomap'](_0x1c069d['lng'],_0x1c069d['lat'],_0x1c069d),_0x30cdae=this['_tomap'](_0x1c069d['tlng'],_0x1c069d['tlat'],_0x1c069d);if(!_0x654b64||!_0x30cdae)continue;if(_0x231b88&&Math[_0x168d1b(0x135)](_0x654b64[0x0]-_0x30cdae[0x0])>=this['canvasWidth'])continue;this[_0x168d1b(0x125)]['moveTo'](_0x654b64[0x0],_0x654b64[0x1]),this[_0x168d1b(0x125)]['lineTo'](_0x30cdae[0x0],_0x30cdae[0x1]);}this['canvasContext']['stroke']();}},{'key':_0x1f335f(0x114),'value':function _0x1ad32b(_0x4665ee,_0x4cf3c1,_0x34d796){var _0x1b0584=_0x1f335f,_0x527f6e=Cesium['Cartesian3'][_0x1b0584(0x10e)](_0x4665ee,_0x4cf3c1,this['fixedHeight']),_0x3024ee=this[_0x1b0584(0x6e)]['scene'];if(_0x3024ee['mode']===Cesium['SceneMode']['SCENE3D']){var _0x144731=new Cesium[(_0x1b0584(0xc2))](_0x3024ee['globe']['ellipsoid'],_0x3024ee['camera']['positionWC']),_0x180fea=_0x144731[_0x1b0584(0xfd)](_0x527f6e);if(!_0x180fea)return _0x34d796[_0x1b0584(0xee)]=0x0,null;}var _0x4f67a3=Cesium['SceneTransforms']['wgs84ToWindowCoordinates'](this[_0x1b0584(0x6e)]['scene'],_0x527f6e);return _0x4f67a3?[_0x4f67a3['x'],_0x4f67a3['y']]:null;}},{'key':_0x1f335f(0x70),'value':function _0x435e0a(){var _0x2ad797=_0x1f335f;this['windField']['clear'](),delete this[_0x2ad797(0x87)];}},{'key':_0x1f335f(0x12f),'value':function _0x4e0bc3(){var _0x210aec=_0x1f335f,_0x56d7da=this;this['worker']=new Worker(this['options']['worker']),this['worker']['onmessage']=function(_0x3d9422){var _0x32fbbb=_0x2ed4;_0x56d7da[_0x32fbbb(0xd3)](_0x3d9422['data']['particles']),_0x56d7da['_updateIng2']=![];},this[_0x210aec(0x130)]={'init':function _0x2a559b(_0x31c770){_0x56d7da['worker']['postMessage']({'type':'init','options':_0x31c770});},'setOptions':function _0x1ca0ba(_0x4528ab){var _0xd0366b=_0x210aec;_0x56d7da['worker']['postMessage']({'type':_0xd0366b(0x14b),'options':_0x4528ab});},'setDate':function _0x241a67(_0x5739d7){var _0x55ae4d=_0x210aec;_0x56d7da['worker']['postMessage']({'type':_0x55ae4d(0x8b),'data':_0x5739d7});},'update':function _0x4608db(){var _0x3acec6=_0x210aec;if(_0x56d7da['_updateIng2'])return;_0x56d7da['_updateIng2']=!![],_0x56d7da['worker'][_0x3acec6(0x11d)]({'type':'update'});},'clear':function _0x254341(){var _0x3654ce=_0x210aec;_0x56d7da['worker']['postMessage']({'type':_0x3654ce(0x70)});}},this['windField']['init'](this['options']);}}]),_0xd5c692;}(BaseLayer);mars3d__namespace[_0x28e3fd(0x15d)][_0x28e3fd(0xb4)](_0x28e3fd(0xa7),CanvasWindLayer),mars3d__namespace[_0x28e3fd(0x94)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x28e3fd(0xa3)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil,Object['defineProperty'](exports,'__esModule',{'value':!![]});
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.22",
|
|
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.
|
|
11
|
+
"mars3d": "~3.4.22"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
14
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|