mars3d-wind 3.4.23 → 3.4.25
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.25
|
|
5
|
+
* 编译日期:2023-03-06 21:06:29
|
|
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 _0x231b9c=_0x134e;(function(_0x860095,_0x5f3636){var _0xc3376b=_0x134e,_0x76b1d1=_0x860095();while(!![]){try{var _0x58c7ef=-parseInt(_0xc3376b(0x111))/0x1*(parseInt(_0xc3376b(0x16d))/0x2)+parseInt(_0xc3376b(0x1c6))/0x3+-parseInt(_0xc3376b(0x17b))/0x4+parseInt(_0xc3376b(0x186))/0x5+parseInt(_0xc3376b(0x18a))/0x6+-parseInt(_0xc3376b(0xe3))/0x7*(-parseInt(_0xc3376b(0x116))/0x8)+-parseInt(_0xc3376b(0x199))/0x9;if(_0x58c7ef===_0x5f3636)break;else _0x76b1d1['push'](_0x76b1d1['shift']());}catch(_0x14c83d){_0x76b1d1['push'](_0x76b1d1['shift']());}}}(_0x2ad6,0xce403));function _interopNamespace(_0x59cdfd){if(_0x59cdfd&&_0x59cdfd['__esModule'])return _0x59cdfd;var _0x173a09=Object['create'](null);return _0x59cdfd&&Object['keys'](_0x59cdfd)['forEach'](function(_0x127b70){var _0x14c7cd=_0x134e;if(_0x127b70!=='default'){var _0x9bd76b=Object[_0x14c7cd(0x13c)](_0x59cdfd,_0x127b70);Object['defineProperty'](_0x173a09,_0x127b70,_0x9bd76b['get']?_0x9bd76b:{'enumerable':!![],'get':function(){return _0x59cdfd[_0x127b70];}});}}),_0x173a09['default']=_0x59cdfd,_0x173a09;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x51c384,_0x5290f9){var _0x2aaecd=_0x134e,_0x2f9e25=_0x51c384*Math['cos'](Cesium$7[_0x2aaecd(0xea)][_0x2aaecd(0x10c)](_0x5290f9));return _0x2f9e25;}function _0x134e(_0x344798,_0xff1c04){var _0x2ad6b7=_0x2ad6();return _0x134e=function(_0x134e0d,_0x4a0592){_0x134e0d=_0x134e0d-0xce;var _0x395ebd=_0x2ad6b7[_0x134e0d];return _0x395ebd;},_0x134e(_0x344798,_0xff1c04);}function getV(_0x4eb65b,_0x376e34){var _0x3539e8=_0x134e,_0x44d922=_0x4eb65b*Math['sin'](Cesium$7[_0x3539e8(0xea)]['toRadians'](_0x376e34));return _0x44d922;}function getSpeed(_0xa46667,_0x3c1699){var _0x38a349=Math['sqrt'](Math['pow'](_0xa46667,0x2)+Math['pow'](_0x3c1699,0x2));return _0x38a349;}function getDirection(_0x479266,_0x2a6c51){var _0x4af61d=Cesium$7['Math']['toDegrees'](Math['atan2'](_0x2a6c51,_0x479266));return _0x4af61d+=_0x4af61d<0x0?0x168:0x0,_0x4af61d;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0xb31876,_0xf7251b){var _0x47f794=_0x134e,_0x47bb31=Object['keys'](_0xb31876);if(Object['getOwnPropertySymbols']){var _0x18fdaf=Object[_0x47f794(0x157)](_0xb31876);_0xf7251b&&(_0x18fdaf=_0x18fdaf['filter'](function(_0x3ae557){return Object['getOwnPropertyDescriptor'](_0xb31876,_0x3ae557)['enumerable'];})),_0x47bb31['push']['apply'](_0x47bb31,_0x18fdaf);}return _0x47bb31;}function _objectSpread2(_0x4bd059){var _0x5da876=_0x134e;for(var _0x43b2bd=0x1;_0x43b2bd<arguments['length'];_0x43b2bd++){var _0xf8fa3=null!=arguments[_0x43b2bd]?arguments[_0x43b2bd]:{};_0x43b2bd%0x2?ownKeys(Object(_0xf8fa3),!0x0)['forEach'](function(_0x286166){_defineProperty(_0x4bd059,_0x286166,_0xf8fa3[_0x286166]);}):Object['getOwnPropertyDescriptors']?Object[_0x5da876(0x125)](_0x4bd059,Object['getOwnPropertyDescriptors'](_0xf8fa3)):ownKeys(Object(_0xf8fa3))['forEach'](function(_0x117bce){var _0x36366f=_0x5da876;Object[_0x36366f(0x112)](_0x4bd059,_0x117bce,Object['getOwnPropertyDescriptor'](_0xf8fa3,_0x117bce));});}return _0x4bd059;}function _classCallCheck(_0x14ae95,_0x54fe90){var _0x42aae3=_0x134e;if(!(_0x14ae95 instanceof _0x54fe90))throw new TypeError(_0x42aae3(0x1d6));}function _defineProperties(_0x437378,_0x395b54){var _0x26d989=_0x134e;for(var _0x336696=0x0;_0x336696<_0x395b54[_0x26d989(0x176)];_0x336696++){var _0x1ce9a9=_0x395b54[_0x336696];_0x1ce9a9['enumerable']=_0x1ce9a9[_0x26d989(0x1b7)]||![],_0x1ce9a9['configurable']=!![];if('value'in _0x1ce9a9)_0x1ce9a9['writable']=!![];Object['defineProperty'](_0x437378,_0x1ce9a9['key'],_0x1ce9a9);}}function _createClass(_0x142677,_0x26fd5a,_0xd7d9f1){if(_0x26fd5a)_defineProperties(_0x142677['prototype'],_0x26fd5a);if(_0xd7d9f1)_defineProperties(_0x142677,_0xd7d9f1);return Object['defineProperty'](_0x142677,'prototype',{'writable':![]}),_0x142677;}function _defineProperty(_0x56b929,_0x26ed03,_0x5d2261){return _0x26ed03 in _0x56b929?Object['defineProperty'](_0x56b929,_0x26ed03,{'value':_0x5d2261,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x56b929[_0x26ed03]=_0x5d2261,_0x56b929;}function _inherits(_0x503d08,_0x154aa3){var _0x295d85=_0x134e;if(typeof _0x154aa3!=='function'&&_0x154aa3!==null)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x503d08[_0x295d85(0xd8)]=Object['create'](_0x154aa3&&_0x154aa3['prototype'],{'constructor':{'value':_0x503d08,'writable':!![],'configurable':!![]}}),Object[_0x295d85(0x112)](_0x503d08,'prototype',{'writable':![]});if(_0x154aa3)_setPrototypeOf(_0x503d08,_0x154aa3);}function _getPrototypeOf(_0x233e4a){var _0x63a2dd=_0x134e;return _getPrototypeOf=Object['setPrototypeOf']?Object[_0x63a2dd(0x106)][_0x63a2dd(0x14a)]():function _0xd633f4(_0x12e618){var _0x44e317=_0x63a2dd;return _0x12e618['__proto__']||Object[_0x44e317(0x106)](_0x12e618);},_getPrototypeOf(_0x233e4a);}function _0x2ad6(){var _0x401dd0=['source','bind','createRawRenderState','forEach','height','frameTime','_data','camera','keys','BaseLayer','canvasHeight','commandType','mod','fill','getOwnPropertySymbols','ComponentDatatype','_onMapWhellEvent','south','framebuffers','umax','destroy','Compute','data','postProcessingSpeed','PixelDatatype','construct','pixelSize','from','frameRate','dropRate','_updateIng2','levmin','string','_map','Arguments','particleSystem','92vGlMPd','viewRectangleToLonLatRange','maxParticles','setGeometry','colorTable','framebuffer','RenderState','destroyObject','currentParticlesPosition','length','preExecute','resize','lng','TextureMagnificationFilter','1400264PyKQQZ','getWind','clear','segments','strokeStyle','speedRate','_speedRate','PI_OVER_THREE','width','scene','now','1181355LbwifZ','fromDegrees','min','setOptions','4948470LTCTjr','createRenderingTextures','visible','show','random','Cesium','globeBoundingSphere','depthTest','off','postProcessingPosition','_onMouseUpEvent','getParticles','toGridXY','textures','lonRange','5361381cJVwjR','wheel','xmax','dimensions','uniformMap','createTexture','autoClear','requestAnimationFrame','setAttribute','Pass','green','canvas','clampToLatitudeRange','getRandomLatLng','NEAREST','100%','add','getColorTexture','mouseMove','init','GeometryAttribute','SceneMode','particlesTextureSize','stroke','particlesComputing','__proto__','windData','applyViewerParameters','none','ymax','enumerable','setPrototypeOf','max','_showHook','defined','outputTexture','drawingBufferHeight','TRIANGLES','cols','windField','addEventListener','createSegmentsGeometry','Framebuffer','once','iterator','2588340Rllsbx','lon','currentTrails','tlat','Cartesian2','particlesNumber','canvasWidth','udata','wgs84ToWindowCoordinates','setData','removeEventListener','__esModule','_onMouseMoveEvent','drawingBufferWidth','SCENE3D','uniform\x20sampler2D\x20segmentsColorTexture;\x0d\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0d\x0a\x0d\x0auniform\x20sampler2D\x20currentTrailsColor;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0auniform\x20float\x20fadeOpacity;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture2D(segmentsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(currentTrailsColor,\x20textureCoordinate);\x0d\x0a\x0d\x0a\x20\x20\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0\x20*\x20trailsColor)\x20/\x20255.0;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0d\x0a\x0d\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture2D(segmentsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20pointsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20gl_FragDepthEXT\x20=\x20min(pointsDepth,\x20trailsDepth);\x0d\x0a}','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','update','WindUtil','0px','context','BoundingSphere','fromCssColorString','lat','VertexArray','createWindTextures','options','sqrt','prototype','particles','fragmentShaderSource','createCommand','style','lev','nextTrails','currentTrailsDepth','umin','Rectangle','undefined','106064vkyCHG','attribute\x20vec3\x20position;\x0d\x0aattribute\x20vec2\x20st;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0d\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0d\x0a}','initWorker','particlesTextures','Map','globalCompositeOperation','postMessage','Math','wind','isPointVisible','_drawLines','color','lineWidth','mouse_move','canvasWindy','_tomap','_pointerEvents','_setOptionsHook','createComputingPrimitives','getUVByPoint','globe','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','cancelAnimationFrame','canvasContext','worker','vdata','createFramebuffer','maxAge','FLOAT','commandToExecute','vertexArray','getFullscreenQuad','mouseUp','constructor','_onMouseDownEvent','getPrototypeOf','clearCommand','latRange','ShaderSource','pointerEvents','DISABLE_GL_POSITION_LOG_DEPTH','toRadians','left','visibility','viewerParameters','WindLayer','34847FRmPAc','defineProperty','updateViewerParameters','age','_updateIng','776MlvGCX','clearFramebuffers','this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called','_canrefresh','ymin','getOptions','register','depthTexture','particlesRendering','ALWAYS','DrawCommand','addPrimitives','_bilinearInterpolation','PixelFormat','ShaderProgram','defineProperties','rawRenderState','grid','PI_OVER_TWO','nextParticlesSpeed','Draw','push','bindEvent','currentTrailsColor','windTextures','colors','container','updatePosition','xmin','Color','toDegrees','createRenderingPrimitives','mouse_down','redraw','isArray','mouseHidden','STATIC_DRAW','EventType','getOwnPropertyDescriptor','_calcUV','array','attributeLocations','clientHeight','rows','primitives','ClearCommand','_calc_speedRate','shaderProgram','clientWidth','TWO_PI','speedFactor'];_0x2ad6=function(){return _0x401dd0;};return _0x2ad6();}function _setPrototypeOf(_0x13b4af,_0x262198){var _0x293ba4=_0x134e;return _setPrototypeOf=Object['setPrototypeOf']?Object[_0x293ba4(0x1b8)]['bind']():function _0x44252d(_0xe4c72c,_0x3ec3f4){var _0x238ad3=_0x293ba4;return _0xe4c72c[_0x238ad3(0x1b2)]=_0x3ec3f4,_0xe4c72c;},_setPrototypeOf(_0x13b4af,_0x262198);}function _isNativeReflectConstruct(){var _0x2ec5ca=_0x134e;if(typeof Reflect===_0x2ec5ca(0xe2)||!Reflect[_0x2ec5ca(0x162)])return![];if(Reflect['construct']['sham'])return![];if(typeof Proxy==='function')return!![];try{return Boolean['prototype']['valueOf']['call'](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x16f6c7){return![];}}function _assertThisInitialized(_0x2313ce){var _0x35dad1=_0x134e;if(_0x2313ce===void 0x0)throw new ReferenceError(_0x35dad1(0x118));return _0x2313ce;}function _possibleConstructorReturn(_0x5768af,_0x46c693){if(_0x46c693&&(typeof _0x46c693==='object'||typeof _0x46c693==='function'))return _0x46c693;else{if(_0x46c693!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x5768af);}function _createSuper(_0x136a20){var _0x4267d7=_isNativeReflectConstruct();return function _0x285acf(){var _0x106bca=_0x134e,_0x2b0555=_getPrototypeOf(_0x136a20),_0x87b6e6;if(_0x4267d7){var _0x694bcd=_getPrototypeOf(this)[_0x106bca(0x104)];_0x87b6e6=Reflect['construct'](_0x2b0555,arguments,_0x694bcd);}else _0x87b6e6=_0x2b0555['apply'](this,arguments);return _possibleConstructorReturn(this,_0x87b6e6);};}function _toConsumableArray(_0x48093d){return _arrayWithoutHoles(_0x48093d)||_iterableToArray(_0x48093d)||_unsupportedIterableToArray(_0x48093d)||_nonIterableSpread();}function _arrayWithoutHoles(_0x56b6fc){var _0x4944ba=_0x134e;if(Array[_0x4944ba(0x138)](_0x56b6fc))return _arrayLikeToArray(_0x56b6fc);}function _iterableToArray(_0x1d6a91){var _0x275be4=_0x134e;if(typeof Symbol!=='undefined'&&_0x1d6a91[Symbol[_0x275be4(0x1c5)]]!=null||_0x1d6a91['@@iterator']!=null)return Array[_0x275be4(0x164)](_0x1d6a91);}function _unsupportedIterableToArray(_0x2eb982,_0x241b5a){var _0x3a3208=_0x134e;if(!_0x2eb982)return;if(typeof _0x2eb982===_0x3a3208(0x169))return _arrayLikeToArray(_0x2eb982,_0x241b5a);var _0x265779=Object['prototype']['toString']['call'](_0x2eb982)['slice'](0x8,-0x1);if(_0x265779==='Object'&&_0x2eb982['constructor'])_0x265779=_0x2eb982['constructor']['name'];if(_0x265779===_0x3a3208(0xe7)||_0x265779==='Set')return Array['from'](_0x2eb982);if(_0x265779===_0x3a3208(0x16b)||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x265779))return _arrayLikeToArray(_0x2eb982,_0x241b5a);}function _arrayLikeToArray(_0x5621fa,_0x289a9e){if(_0x289a9e==null||_0x289a9e>_0x5621fa['length'])_0x289a9e=_0x5621fa['length'];for(var _0x49e36a=0x0,_0x3ed000=new Array(_0x289a9e);_0x49e36a<_0x289a9e;_0x49e36a++)_0x3ed000[_0x49e36a]=_0x5621fa[_0x49e36a];return _0x3ed000;}function _nonIterableSpread(){throw new TypeError('Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}var Cesium$6=mars3d__namespace['Cesium'],CustomPrimitive=(function(){var _0x4febdc=_0x134e;function _0x38c8d6(_0x2bb9df){var _0x3d43a6=_0x134e,_0x15525b;_classCallCheck(this,_0x38c8d6),this[_0x3d43a6(0x154)]=_0x2bb9df['commandType'],this['geometry']=_0x2bb9df['geometry'],this['attributeLocations']=_0x2bb9df['attributeLocations'],this['primitiveType']=_0x2bb9df['primitiveType'],this['uniformMap']=_0x2bb9df['uniformMap'],this['vertexShaderSource']=_0x2bb9df['vertexShaderSource'],this['fragmentShaderSource']=_0x2bb9df[_0x3d43a6(0xda)],this['rawRenderState']=_0x2bb9df[_0x3d43a6(0x126)],this[_0x3d43a6(0x172)]=_0x2bb9df['framebuffer'],this['outputTexture']=_0x2bb9df['outputTexture'],this['autoClear']=(_0x15525b=_0x2bb9df['autoClear'])!==null&&_0x15525b!==void 0x0?_0x15525b:![],this['preExecute']=_0x2bb9df['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this[_0x3d43a6(0x107)]=undefined,this[_0x3d43a6(0x19f)]&&(this['clearCommand']=new Cesium$6[(_0x3d43a6(0x143))]({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Cesium$6[_0x3d43a6(0x1a2)]['OPAQUE']}));}return _createClass(_0x38c8d6,[{'key':_0x4febdc(0xdb),'value':function _0x16b2da(_0x5571a6){var _0x34049e=_0x4febdc;switch(this['commandType']){case _0x34049e(0x12a):{var _0x369b55=Cesium$6['VertexArray']['fromGeometry']({'context':_0x5571a6,'geometry':this['geometry'],'attributeLocations':this[_0x34049e(0x13f)],'bufferUsage':Cesium$6['BufferUsage'][_0x34049e(0x13a)]}),_0x31b719=Cesium$6[_0x34049e(0x124)]['fromCache']({'context':_0x5571a6,'attributeLocations':this['attributeLocations'],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this['fragmentShaderSource']}),_0xa006c5=Cesium$6[_0x34049e(0x173)]['fromCache'](this['rawRenderState']);return new Cesium$6[(_0x34049e(0x120))]({'primitiveType':this['primitiveType'],'shaderProgram':_0x31b719,'vertexArray':_0x369b55,'modelMatrix':Cesium$6['Matrix4']['IDENTITY'],'renderState':_0xa006c5,'uniformMap':this[_0x34049e(0x19d)],'castShadows':![],'receiveShadows':![],'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass']['OPAQUE'],'pickOnly':!![],'owner':this});}case'Compute':{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this['uniformMap'],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':_0x4febdc(0x170),'value':function _0x4e0ca1(_0x52c70e,_0x406add){var _0x418e1a=_0x4febdc;this['geometry']=_0x406add;var _0x25a778=Cesium$6[_0x418e1a(0xd4)]['fromGeometry']({'context':_0x52c70e,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage'][_0x418e1a(0x13a)]});this[_0x418e1a(0x100)]['vertexArray']=_0x25a778;}},{'key':'update','value':function _0x3e83b8(_0x49cfc7){var _0x15f7a8=_0x4febdc;if(!this[_0x15f7a8(0x18d)])return;if(_0x49cfc7['mode']!==Cesium$6['SceneMode']['SCENE3D'])return;!Cesium$6['defined'](this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x49cfc7[_0x15f7a8(0xd0)])),Cesium$6['defined'](this['preExecute'])&&this[_0x15f7a8(0x177)](),Cesium$6['defined'](this['clearCommand'])&&_0x49cfc7['commandList']['push'](this['clearCommand']),_0x49cfc7['commandList'][_0x15f7a8(0x12b)](this['commandToExecute']);}},{'key':'isDestroyed','value':function _0x3df103(){return![];}},{'key':'destroy','value':function _0x9eec8b(){var _0x1c4683=_0x4febdc;if(this['clearCommand']){var _0x551381,_0x34183a;(_0x551381=this[_0x1c4683(0x107)])!==null&&_0x551381!==void 0x0&&_0x551381['vertexArray']&&this['clearCommand'][_0x1c4683(0x101)]['destroy'](),(_0x34183a=this[_0x1c4683(0x107)])!==null&&_0x34183a!==void 0x0&&_0x34183a['shaderProgram']&&this['clearCommand'][_0x1c4683(0x145)][_0x1c4683(0x15d)](),delete this['clearCommand'];}return this[_0x1c4683(0x100)]&&(this['commandToExecute']['vertexArray']&&this['commandToExecute'][_0x1c4683(0x101)]['destroy'](),this['commandToExecute'][_0x1c4683(0x145)]&&this['commandToExecute']['shaderProgram']['destroy'](),delete this['commandToExecute']),Cesium$6[_0x1c4683(0x174)](this);}}]),_0x38c8d6;}()),Cesium$5=mars3d__namespace['Cesium'],Util=(function(){var _0xca3201=function _0x28f62c(){var _0x2d5f80=_0x134e,_0x4a4eb6=new Cesium$5['Geometry']({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype'][_0x2d5f80(0xff)],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5[(_0x2d5f80(0x1ad))]({'componentDatatype':Cesium$5[_0x2d5f80(0x158)][_0x2d5f80(0xff)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x4a4eb6;},_0x3fec32=function _0xab1b5c(_0x20cda1,_0x161c50){var _0x5684be=_0x134e;if(Cesium$5[_0x5684be(0x1bb)](_0x161c50)){var _0x598af3={};_0x598af3['arrayBufferView']=_0x161c50,_0x20cda1[_0x5684be(0x149)]=_0x598af3;}var _0x45fbe3=new Cesium$5['Texture'](_0x20cda1);return _0x45fbe3;},_0x5b7788=function _0x1fc609(_0x5d6431,_0x46a8d4,_0x1bdfb2){var _0x50dbe2=_0x134e,_0x4635d6=new Cesium$5[(_0x50dbe2(0x1c3))]({'context':_0x5d6431,'colorTextures':[_0x46a8d4],'depthTexture':_0x1bdfb2});return _0x4635d6;},_0x452681=function _0x558a31(_0x21b0ed){var _0x2122fe=_0x134e,_0x2f469c=!![],_0x5c1ac1=![],_0x2b766={'viewport':_0x21b0ed['viewport'],'depthTest':_0x21b0ed[_0x2122fe(0x191)],'depthMask':_0x21b0ed['depthMask'],'blending':_0x21b0ed['blending']},_0x46b235=Cesium$5['Appearance']['getDefaultRenderState'](_0x2f469c,_0x5c1ac1,_0x2b766);return _0x46b235;},_0x38a012=function _0x5137d2(_0x3b90f7){var _0x5ba25d=_0x134e,_0x37f686={},_0x5b27e2=Cesium$5[_0x5ba25d(0xea)][_0x5ba25d(0x155)](_0x3b90f7['west'],Cesium$5['Math'][_0x5ba25d(0x147)]),_0x4a71a4=Cesium$5['Math']['mod'](_0x3b90f7['east'],Cesium$5['Math'][_0x5ba25d(0x147)]),_0x20d6f3=_0x3b90f7['width'],_0x4cd7e8,_0x255ebb;_0x20d6f3>Cesium$5[_0x5ba25d(0xea)]['THREE_PI_OVER_TWO']?(_0x4cd7e8=0x0,_0x255ebb=Cesium$5['Math']['TWO_PI']):_0x4a71a4-_0x5b27e2<_0x20d6f3?(_0x4cd7e8=_0x5b27e2,_0x255ebb=_0x5b27e2+_0x20d6f3):(_0x4cd7e8=_0x5b27e2,_0x255ebb=_0x4a71a4);_0x37f686['lon']={'min':Cesium$5['Math']['toDegrees'](_0x4cd7e8),'max':Cesium$5['Math'][_0x5ba25d(0x134)](_0x255ebb)};var _0x38b579=_0x3b90f7[_0x5ba25d(0x15a)],_0x8baa19=_0x3b90f7['north'],_0x2f6fc6=_0x3b90f7['height'],_0x196b5f=_0x2f6fc6>Cesium$5['Math']['PI']/0xc?_0x2f6fc6/0x2:0x0,_0x45b6a0=Cesium$5[_0x5ba25d(0xea)][_0x5ba25d(0x1a5)](_0x38b579-_0x196b5f),_0x476f76=Cesium$5['Math']['clampToLatitudeRange'](_0x8baa19+_0x196b5f);return _0x45b6a0<-Cesium$5['Math']['PI_OVER_THREE']&&(_0x45b6a0=-Cesium$5[_0x5ba25d(0xea)][_0x5ba25d(0x128)]),_0x476f76>Cesium$5[_0x5ba25d(0xea)][_0x5ba25d(0x182)]&&(_0x476f76=Cesium$5['Math']['PI_OVER_TWO']),_0x37f686['lat']={'min':Cesium$5['Math']['toDegrees'](_0x45b6a0),'max':Cesium$5[_0x5ba25d(0xea)]['toDegrees'](_0x476f76)},_0x37f686;};return{'getFullscreenQuad':_0xca3201,'createTexture':_0x3fec32,'createFramebuffer':_0x5b7788,'createRawRenderState':_0x452681,'viewRectangleToLonLatRange':_0x38a012};}()),segmentDraw_vert='attribute\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0aattribute\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20postProcessingSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x20\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x20\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x20\x0a\x20\x20\x20\x20float\x20e2\x20=\x206.69437999014e-3;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x0a\x20\x20\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calcProjectedCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0,\x20360.0)\x20-\x20180.0;\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0);\x0a\x20\x20\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calcOffset(vec4\x20currentProjectedCoordinate,\x20vec4\x20nextProjectedCoordinate,\x20float\x20offsetSign)\x20{\x0a\x20\x20\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0);\x0a\x20\x20\x20\x20vec2\x20currentXY\x20=\x20(currentProjectedCoordinate.xy\x20/\x20currentProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x20\x20\x20\x20vec2\x20nextXY\x20=\x20(nextProjectedCoordinate.xy\x20/\x20nextProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0;\x0a\x20\x20\x20\x20vec2\x20direction\x20=\x20normalize(nextXY\x20-\x20currentXY);\x0a\x20\x20\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0,\x200.0);\x0a\x20\x20\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20\x20\x20vec3\x20currentPosition\x20=\x20texture2D(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture2D(postProcessingPosition,\x20particleIndex);\x0a\x0a\x20\x20\x20\x20vec4\x20currentProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20vec4\x20nextProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(nextPosition.w\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(nextPosition.xyz);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20pointToUse\x20=\x20normal.x;\x20//\x20-1\x20is\x20currentProjectedCoordinate\x20and\x20+1\x20is\x20nextProjectedCoordinate\x0a\x20\x20\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20pixelSize\x20*\x20calcOffset(currentProjectedCoordinate,\x20nextProjectedCoordinate,\x20offsetSign);\x0a\x20\x20\x20\x20if\x20(pointToUse\x20<\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20currentProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20nextProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20speedNormalization\x20=\x20texture2D(postProcessingSpeed,\x20particleIndex).a;\x0a}',segmentDraw_frag='uniform\x20sampler2D\x20colorTable;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20texture2D(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}',fullscreen_vert=_0x231b9c(0xe4),trailDraw_frag=_0x231b9c(0x1d5),screenDraw_frag='uniform\x20sampler2D\x20trailsColorTexture;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(trailsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x20else\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20}\x0d\x0a}',Cesium$4=mars3d__namespace['Cesium'],ParticlesRendering=(function(){var _0x292f3a=_0x231b9c;function _0x32680a(_0x1db2f1,_0x2ad5ce,_0x4b85d9,_0x3a47df,_0x3a9ee3){var _0x3d3ce1=_0x134e;_classCallCheck(this,_0x32680a),this['createRenderingTextures'](_0x1db2f1,_0x2ad5ce,_0x4b85d9[_0x3d3ce1(0x12f)]),this['createRenderingFramebuffers'](_0x1db2f1),this[_0x3d3ce1(0x135)](_0x1db2f1,_0x4b85d9,_0x3a47df,_0x3a9ee3);}return _createClass(_0x32680a,[{'key':_0x292f3a(0x18b),'value':function _0x3561e9(_0xf0a9aa,_0x591cfc,_0x16337c){var _0x326fe3=_0x292f3a,_0x33b254={'context':_0xf0a9aa,'width':_0xf0a9aa[_0x326fe3(0x1d3)],'height':_0xf0a9aa['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat']['RGBA'],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_BYTE']},_0x558415={'context':_0xf0a9aa,'width':_0xf0a9aa[_0x326fe3(0x1d3)],'height':_0xf0a9aa['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat']['DEPTH_COMPONENT'],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_INT']},_0x56589c=_0x16337c['length'],_0xdffef8=new Float32Array(_0x56589c*0x3);for(var _0x37e186=0x0;_0x37e186<_0x56589c;_0x37e186++){var _0x5aa4e1=Cesium$4[_0x326fe3(0x133)][_0x326fe3(0xd2)](_0x16337c[_0x37e186]);_0xdffef8[0x3*_0x37e186]=_0x5aa4e1['red'],_0xdffef8[0x3*_0x37e186+0x1]=_0x5aa4e1[_0x326fe3(0x1a3)],_0xdffef8[0x3*_0x37e186+0x2]=_0x5aa4e1['blue'];}var _0x2ee318={'context':_0xf0a9aa,'width':_0x56589c,'height':0x1,'pixelFormat':Cesium$4[_0x326fe3(0x123)]['RGB'],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4['TextureMinificationFilter']['LINEAR'],'magnificationFilter':Cesium$4['TextureMagnificationFilter']['LINEAR']})};this['textures']={'segmentsColor':Util['createTexture'](_0x33b254),'segmentsDepth':Util['createTexture'](_0x558415),'currentTrailsColor':Util['createTexture'](_0x33b254),'currentTrailsDepth':Util[_0x326fe3(0x19e)](_0x558415),'nextTrailsColor':Util['createTexture'](_0x33b254),'nextTrailsDepth':Util[_0x326fe3(0x19e)](_0x558415),'colorTable':Util['createTexture'](_0x2ee318,_0xdffef8)};}},{'key':'createRenderingFramebuffers','value':function _0xda0575(_0x5716a4){var _0x5f3ecd=_0x292f3a;this[_0x5f3ecd(0x15b)]={'segments':Util['createFramebuffer'](_0x5716a4,this['textures']['segmentsColor'],this['textures']['segmentsDepth']),'currentTrails':Util['createFramebuffer'](_0x5716a4,this['textures'][_0x5f3ecd(0x12d)],this['textures'][_0x5f3ecd(0xdf)]),'nextTrails':Util[_0x5f3ecd(0xfd)](_0x5716a4,this['textures']['nextTrailsColor'],this[_0x5f3ecd(0x197)]['nextTrailsDepth'])};}},{'key':_0x292f3a(0x1c2),'value':function _0x5aa5d2(_0x2cff30){var _0x5d978d=_0x292f3a,_0x59d58e=0x4,_0x1cb3a7=[];for(var _0x210184=0x0;_0x210184<_0x2cff30['particlesTextureSize'];_0x210184++){for(var _0x33d81f=0x0;_0x33d81f<_0x2cff30['particlesTextureSize'];_0x33d81f++){for(var _0x2b083c=0x0;_0x2b083c<_0x59d58e;_0x2b083c++){_0x1cb3a7[_0x5d978d(0x12b)](_0x210184/_0x2cff30['particlesTextureSize']),_0x1cb3a7['push'](_0x33d81f/_0x2cff30['particlesTextureSize']);}}}_0x1cb3a7=new Float32Array(_0x1cb3a7);var _0x9c11ad=[],_0x47f9a8=[-0x1,0x1],_0x2be919=[-0x1,0x1];for(var _0x2bfc97=0x0;_0x2bfc97<_0x2cff30[_0x5d978d(0x16f)];_0x2bfc97++){for(var _0x18e651=0x0;_0x18e651<_0x59d58e/0x2;_0x18e651++){for(var _0x584b58=0x0;_0x584b58<_0x59d58e/0x2;_0x584b58++){_0x9c11ad['push'](_0x47f9a8[_0x18e651]),_0x9c11ad['push'](_0x2be919[_0x584b58]),_0x9c11ad[_0x5d978d(0x12b)](0x0);}}}_0x9c11ad=new Float32Array(_0x9c11ad);var _0xaaa657=0x6*_0x2cff30[_0x5d978d(0x16f)],_0x419312=new Uint32Array(_0xaaa657);for(var _0x230dd1=0x0,_0x56d994=0x0,_0xe76da0=0x0;_0x230dd1<_0x2cff30[_0x5d978d(0x16f)];_0x230dd1++){_0x419312[_0x56d994++]=_0xe76da0+0x0,_0x419312[_0x56d994++]=_0xe76da0+0x1,_0x419312[_0x56d994++]=_0xe76da0+0x2,_0x419312[_0x56d994++]=_0xe76da0+0x2,_0x419312[_0x56d994++]=_0xe76da0+0x1,_0x419312[_0x56d994++]=_0xe76da0+0x3,_0xe76da0+=0x4;}var _0xf8b8c0=new Cesium$4['Geometry']({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4[_0x5d978d(0x158)]['FLOAT'],'componentsPerAttribute':0x2,'values':_0x1cb3a7}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4[_0x5d978d(0x158)][_0x5d978d(0xff)],'componentsPerAttribute':0x3,'values':_0x9c11ad})}),'indices':_0x419312});return _0xf8b8c0;}},{'key':'createRenderingPrimitives','value':function _0x12a554(_0xba0653,_0x3cabcd,_0xba134,_0x489515){var _0x163dcb=_0x292f3a,_0xc7b8d9=this;this['primitives']={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'st':0x0,'normal':0x1},'geometry':this['createSegmentsGeometry'](_0x3cabcd),'primitiveType':Cesium$4['PrimitiveType'][_0x163dcb(0x1be)],'uniformMap':{'currentParticlesPosition':function _0x1d830d(){return _0x489515['particlesTextures']['currentParticlesPosition'];},'postProcessingPosition':function _0x3b4106(){var _0x30a966=_0x163dcb;return _0x489515[_0x30a966(0xe6)][_0x30a966(0x193)];},'postProcessingSpeed':function _0x502121(){return _0x489515['particlesTextures']['postProcessingSpeed'];},'colorTable':function _0x558819(){var _0x1a6594=_0x163dcb;return _0xc7b8d9[_0x1a6594(0x197)]['colorTable'];},'aspect':function _0x3c1cd0(){return _0xba0653['drawingBufferWidth']/_0xba0653['drawingBufferHeight'];},'pixelSize':function _0xd027c3(){return _0xba134['pixelSize'];},'lineWidth':function _0x1f1eab(){var _0x1167d4=_0x163dcb;return _0x3cabcd[_0x1167d4(0xef)];},'particleHeight':function _0x119dc7(){return _0x3cabcd['particleHeight'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4[(_0x163dcb(0x109))]({'sources':[segmentDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this['framebuffers']['segments'],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x163dcb(0x12a),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x163dcb(0x102)](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0x263b5d(){return _0xc7b8d9['textures']['segmentsColor'];},'segmentsDepthTexture':function _0x24d599(){return _0xc7b8d9['textures']['segmentsDepth'];},'currentTrailsColor':function _0x29d265(){var _0x3c40ad=_0x163dcb;return _0xc7b8d9[_0x3c40ad(0x15b)]['currentTrails'][_0x3c40ad(0x1aa)](0x0);},'trailsDepthTexture':function _0x178230(){var _0x35229f=_0x163dcb;return _0xc7b8d9[_0x35229f(0x15b)][_0x35229f(0x1c8)]['depthTexture'];},'fadeOpacity':function _0x55761d(){return _0x3cabcd['fadeOpacity'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x163dcb(0xf8)],'sources':[trailDraw_frag]}),'rawRenderState':Util[_0x163dcb(0x14b)]({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction'][_0x163dcb(0x11f)]},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function _0x2a8227(){var _0x2ab3e7=_0x163dcb,_0x1b83aa=_0xc7b8d9[_0x2ab3e7(0x15b)]['currentTrails'];_0xc7b8d9[_0x2ab3e7(0x15b)]['currentTrails']=_0xc7b8d9['framebuffers'][_0x2ab3e7(0xde)],_0xc7b8d9['framebuffers']['nextTrails']=_0x1b83aa,_0xc7b8d9['primitives']['trails'][_0x2ab3e7(0x100)][_0x2ab3e7(0x172)]=_0xc7b8d9[_0x2ab3e7(0x15b)]['nextTrails'],_0xc7b8d9['primitives']['trails']['clearCommand']['framebuffer']=_0xc7b8d9['framebuffers'][_0x2ab3e7(0xde)];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType'][_0x163dcb(0x1be)],'uniformMap':{'trailsColorTexture':function _0x2d1716(){return _0xc7b8d9['framebuffers']['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x6bb73(){var _0x506ea2=_0x163dcb;return _0xc7b8d9[_0x506ea2(0x15b)]['nextTrails'][_0x506ea2(0x11d)];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x163dcb(0x10b)],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x163dcb(0xf8)],'sources':[screenDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x32680a;}()),getWind_frag='//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x20\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x,\x20360.0);\x0a\x20\x20\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20-90.0,\x2090.0);\x0a\x0a\x20\x20\x20\x20vec3\x20index3D\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20index3D.z\x20=\x20(lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z;\x0a\x0a\x20\x20\x20\x20//\x20the\x20st\x20texture\x20coordinate\x20corresponding\x20to\x20(col,\x20row)\x20index\x0a\x20\x20\x20\x20//\x20example\x0a\x20\x20\x20\x20//\x20data\x20array\x20is\x20[0,\x201,\x202,\x203,\x204,\x205],\x20width\x20=\x203,\x20height\x20=\x202\x0a\x20\x20\x20\x20//\x20the\x20content\x20of\x20texture\x20will\x20be\x0a\x20\x20\x20\x20//\x20t\x201.0\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x203\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x202\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWind(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20\x20\x20float\x20result\x20=\x20texture2D(windTexture,\x20normalizedIndex2D).r;\x0a\x20\x20\x20\x20return\x20result;\x0a}\x0a\x0aconst\x20mat4\x20kernelMatrix\x20=\x20mat4(\x0a\x20\x20\x20\x200.0,\x20-1.0,\x202.0,\x20-1.0,\x20//\x20first\x20column\x0a\x20\x20\x20\x202.0,\x200.0,\x20-5.0,\x203.0,\x20//\x20second\x20column\x0a\x20\x20\x20\x200.0,\x201.0,\x204.0,\x20-3.0,\x20//\x20third\x20column\x0a\x20\x20\x20\x200.0,\x200.0,\x20-1.0,\x201.0\x20//\x20fourth\x20column\x0a);\x0afloat\x20oneDimensionInterpolation(float\x20t,\x20float\x20p0,\x20float\x20p1,\x20float\x20p2,\x20float\x20p3)\x20{\x0a\x20\x20\x20\x20vec4\x20tVec4\x20=\x20vec4(1.0,\x20t,\x20t\x20*\x20t,\x20t\x20*\x20t\x20*\x20t);\x0a\x20\x20\x20\x20tVec4\x20=\x20tVec4\x20/\x202.0;\x0a\x20\x20\x20\x20vec4\x20pVec4\x20=\x20vec4(p0,\x20p1,\x20p2,\x20p3);\x0a\x20\x20\x20\x20return\x20dot((tVec4\x20*\x20kernelMatrix),\x20pVec4);\x0a}\x0a\x0afloat\x20calculateB(sampler2D\x20windTexture,\x20float\x20t,\x20float\x20lon,\x20float\x20lat,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20float\x20lon0\x20=\x20floor(lon)\x20-\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon1\x20=\x20floor(lon);\x0a\x20\x20\x20\x20float\x20lon2\x20=\x20floor(lon)\x20+\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon3\x20=\x20floor(lon)\x20+\x202.0\x20*\x20interval.x;\x0a\x0a\x20\x20\x20\x20float\x20p0\x20=\x20getWind(windTexture,\x20vec3(lon0,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p1\x20=\x20getWind(windTexture,\x20vec3(lon1,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p2\x20=\x20getWind(windTexture,\x20vec3(lon2,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p3\x20=\x20getWind(windTexture,\x20vec3(lon3,\x20lat,\x20lev));\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(t,\x20p0,\x20p1,\x20p2,\x20p3);\x0a}\x0a\x0afloat\x20interpolateOneTexture(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20\x20\x20float\x20lat0\x20=\x20floor(lat)\x20-\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat1\x20=\x20floor(lat);\x0a\x20\x20\x20\x20float\x20lat2\x20=\x20floor(lat)\x20+\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat3\x20=\x20floor(lat)\x20+\x202.0\x20*\x20interval.y;\x0a\x0a\x20\x20\x20\x20vec2\x20coefficient\x20=\x20lonLatLev.xy\x20-\x20floor(lonLatLev.xy);\x0a\x20\x20\x20\x20float\x20b0\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat0,\x20lev);\x0a\x20\x20\x20\x20float\x20b1\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat1,\x20lev);\x0a\x20\x20\x20\x20float\x20b2\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat2,\x20lev);\x0a\x20\x20\x20\x20float\x20b3\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat3,\x20lev);\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(coefficient.y,\x20b0,\x20b1,\x20b2,\x20b3);\x0a}\x0a\x0avec3\x20bicubic(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bicubic_interpolation#Bicubic_convolution_algorithm\x0a\x20\x20\x20\x20float\x20u\x20=\x20interpolateOneTexture(U,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20v\x20=\x20interpolateOneTexture(V,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}',updateSpeed_frag='uniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0auniform\x20sampler2D\x20particlesWind;\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20speedFactor;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec3\x20percent\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20\x20\x20float\x20normalization\x20=\x20length(percent);\x0a\x0a\x20\x20\x20\x20return\x20normalization;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20//\x20vec3\x20currentSpeed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture2D(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20nextSpeed;\x0a}',updatePosition_frag='uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20lengthOfLonLat(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x0a\x20\x20\x20\x20float\x20term1\x20=\x20111132.92;\x0a\x20\x20\x20\x20float\x20term2\x20=\x20559.82\x20*\x20cos(2.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term3\x20=\x201.175\x20*\x20cos(4.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term4\x20=\x200.0023\x20*\x20cos(6.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20\x20\x20float\x20term5\x20=\x20111412.84\x20*\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20term6\x20=\x2093.5\x20*\x20cos(3.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term7\x20=\x200.118\x20*\x20cos(5.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avoid\x20updatePosition(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20windVectorInLonLatLev;\x0a\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}',postProcessingPosition_frag='uniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0auniform\x20float\x20dropRate;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0auniform\x20float\x20dropRateBump;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898,\x2078.233,\x204375.85453);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0,\x201.0);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0);\x0a\x20\x20\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20lev);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20\x20\x20return\x20particle.y\x20<\x20-90.0\x20||\x20particle.y\x20>\x2090.0;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20texture2D(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture2D(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20nextSpeed.a;\x0a\x0a\x20\x20\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec2\x20seed2\x20=\x20nextSpeed.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\x0a\x20\x20\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20\x20\x20if\x20(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(randomParticle,\x201.0);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}',postProcessingSpeed_frag='uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture2D(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture2D(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}',Cesium$3=mars3d__namespace['Cesium'],ParticlesComputing=(function(){var _0x13a3a0=_0x231b9c;function _0x5cee30(_0x2a1b6a,_0x272b34,_0x3339f3,_0x4b7455){var _0x5cb5bb=_0x134e;_classCallCheck(this,_0x5cee30),this['data']=_0x272b34,this[_0x5cb5bb(0xd5)](_0x2a1b6a,_0x272b34),this['createParticlesTextures'](_0x2a1b6a,_0x3339f3,_0x4b7455),this['createComputingPrimitives'](_0x272b34,_0x3339f3,_0x4b7455);}return _createClass(_0x5cee30,[{'key':'createWindTextures','value':function _0x2344ca(_0x3955a9,_0x39b6d8){var _0x55422f=_0x134e,_0x26984d={'context':_0x3955a9,'width':_0x39b6d8['dimensions'][_0x55422f(0x1c7)],'height':_0x39b6d8['dimensions']['lat']*(_0x39b6d8[_0x55422f(0x19c)]['lev']||0x1),'pixelFormat':Cesium$3[_0x55422f(0x123)]['LUMINANCE'],'pixelDatatype':Cesium$3['PixelDatatype'][_0x55422f(0xff)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0x55422f(0x1a7)],'magnificationFilter':Cesium$3[_0x55422f(0x17a)]['NEAREST']})};this[_0x55422f(0x12e)]={'U':Util['createTexture'](_0x26984d,_0x39b6d8['U'][_0x55422f(0x13e)]),'V':Util['createTexture'](_0x26984d,_0x39b6d8['V'][_0x55422f(0x13e)])};}},{'key':'createParticlesTextures','value':function _0x25e902(_0x91ad84,_0x5c2e61,_0x264b5e){var _0x5a9080=_0x134e,_0x201d25={'context':_0x91ad84,'width':_0x5c2e61['particlesTextureSize'],'height':_0x5c2e61[_0x5a9080(0x1af)],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3[_0x5a9080(0x161)]['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})},_0x491aca=this['randomizeParticles'](_0x5c2e61[_0x5a9080(0x16f)],_0x264b5e),_0x5a11ee=new Float32Array(0x4*_0x5c2e61[_0x5a9080(0x16f)])[_0x5a9080(0x156)](0x0);this['particlesTextures']={'particlesWind':Util['createTexture'](_0x201d25),'currentParticlesPosition':Util['createTexture'](_0x201d25,_0x491aca),'nextParticlesPosition':Util['createTexture'](_0x201d25,_0x491aca),'currentParticlesSpeed':Util['createTexture'](_0x201d25,_0x5a11ee),'nextParticlesSpeed':Util['createTexture'](_0x201d25,_0x5a11ee),'postProcessingPosition':Util[_0x5a9080(0x19e)](_0x201d25,_0x491aca),'postProcessingSpeed':Util[_0x5a9080(0x19e)](_0x201d25,_0x5a11ee)};}},{'key':'randomizeParticles','value':function _0x7d5ef1(_0x1a41a0,_0x552887){var _0x584968=_0x134e,_0x223a03=new Float32Array(0x4*_0x1a41a0);for(var _0x528528=0x0;_0x528528<_0x1a41a0;_0x528528++){_0x223a03[0x4*_0x528528]=Cesium$3['Math']['randomBetween'](_0x552887['lonRange']['x'],_0x552887['lonRange']['y']),_0x223a03[0x4*_0x528528+0x1]=Cesium$3['Math']['randomBetween'](_0x552887[_0x584968(0x108)]['x'],_0x552887['latRange']['y']),_0x223a03[0x4*_0x528528+0x2]=Cesium$3['Math']['randomBetween'](this['data']['lev']['min'],this['data'][_0x584968(0xdd)][_0x584968(0x1b9)]),_0x223a03[0x4*_0x528528+0x3]=0x0;}return _0x223a03;}},{'key':'destroyParticlesTextures','value':function _0x8516b8(){var _0x5a8f9e=this;Object['keys'](this['particlesTextures'])['forEach'](function(_0x358674){_0x5a8f9e['particlesTextures'][_0x358674]['destroy']();});}},{'key':_0x13a3a0(0xf5),'value':function _0x193481(_0x20cb6c,_0x56ce29,_0x1c690a){var _0x339156=_0x13a3a0,_0x55b57e=new Cesium$3['Cartesian3'](_0x20cb6c['dimensions'][_0x339156(0x1c7)],_0x20cb6c[_0x339156(0x19c)][_0x339156(0xd3)],_0x20cb6c['dimensions']['lev']),_0x3a8dbf=new Cesium$3['Cartesian3'](_0x20cb6c['lon']['min'],_0x20cb6c['lat']['min'],_0x20cb6c['lev']['min']),_0x4667de=new Cesium$3['Cartesian3'](_0x20cb6c['lon']['max'],_0x20cb6c['lat'][_0x339156(0x1b9)],_0x20cb6c['lev']['max']),_0x2a2f61=new Cesium$3['Cartesian3']((_0x4667de['x']-_0x3a8dbf['x'])/(_0x55b57e['x']-0x1),(_0x4667de['y']-_0x3a8dbf['y'])/(_0x55b57e['y']-0x1),_0x55b57e['z']>0x1?(_0x4667de['z']-_0x3a8dbf['z'])/(_0x55b57e['z']-0x1):0x1),_0x444e47=new Cesium$3[(_0x339156(0x1ca))](_0x20cb6c['U'][_0x339156(0x188)],_0x20cb6c['U']['max']),_0x5471c7=new Cesium$3['Cartesian2'](_0x20cb6c['V']['min'],_0x20cb6c['V'][_0x339156(0x1b9)]),_0x4ea826=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':function _0x3721bc(){return _0x4ea826['windTextures']['U'];},'V':function _0x34296f(){var _0x4e2b88=_0x339156;return _0x4ea826[_0x4e2b88(0x12e)]['V'];},'currentParticlesPosition':function _0x4fd714(){var _0x3a0c7d=_0x339156;return _0x4ea826['particlesTextures'][_0x3a0c7d(0x175)];},'dimension':function _0x5135ea(){return _0x55b57e;},'minimum':function _0x3b027e(){return _0x3a8dbf;},'maximum':function _0x1334ae(){return _0x4667de;},'interval':function _0x4d3084(){return _0x2a2f61;}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[getWind_frag]}),'outputTexture':this['particlesTextures']['particlesWind'],'preExecute':function _0x4f668d(){var _0x54aa1b=_0x339156;_0x4ea826['primitives']['getWind']['commandToExecute'][_0x54aa1b(0x1bc)]=_0x4ea826['particlesTextures']['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':_0x339156(0x15e),'uniformMap':{'currentParticlesSpeed':function _0x5177f9(){return _0x4ea826['particlesTextures']['currentParticlesSpeed'];},'particlesWind':function _0xe67ca4(){var _0x4feb35=_0x339156;return _0x4ea826[_0x4feb35(0xe6)]['particlesWind'];},'uSpeedRange':function _0x2762bf(){return _0x444e47;},'vSpeedRange':function _0x5fb711(){return _0x5471c7;},'pixelSize':function _0x310775(){var _0xcc5ff6=_0x339156;return _0x1c690a[_0xcc5ff6(0x163)];},'speedFactor':function _0x160141(){var _0x58eaff=_0x339156;return _0x56ce29[_0x58eaff(0x148)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updateSpeed_frag]}),'outputTexture':this[_0x339156(0xe6)]['nextParticlesSpeed'],'preExecute':function _0x1d6af5(){var _0x5258e4=_0x339156,_0x344318=_0x4ea826[_0x5258e4(0xe6)]['currentParticlesSpeed'];_0x4ea826['particlesTextures']['currentParticlesSpeed']=_0x4ea826[_0x5258e4(0xe6)]['postProcessingSpeed'],_0x4ea826[_0x5258e4(0xe6)][_0x5258e4(0x160)]=_0x344318,_0x4ea826[_0x5258e4(0x142)]['updateSpeed'][_0x5258e4(0x100)]['outputTexture']=_0x4ea826['particlesTextures']['nextParticlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x16bad9(){return _0x4ea826['particlesTextures']['currentParticlesPosition'];},'currentParticlesSpeed':function _0x16c20e(){var _0x1d3e05=_0x339156;return _0x4ea826[_0x1d3e05(0xe6)]['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0x569fcb(){var _0x5ae638=_0x339156,_0x32de19=_0x4ea826['particlesTextures'][_0x5ae638(0x175)];_0x4ea826['particlesTextures']['currentParticlesPosition']=_0x4ea826['particlesTextures']['postProcessingPosition'],_0x4ea826['particlesTextures'][_0x5ae638(0x193)]=_0x32de19,_0x4ea826['primitives']['updatePosition']['commandToExecute']['outputTexture']=_0x4ea826['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0x455988(){return _0x4ea826['particlesTextures']['nextParticlesPosition'];},'nextParticlesSpeed':function _0x2d2b40(){var _0x19b551=_0x339156;return _0x4ea826['particlesTextures'][_0x19b551(0x129)];},'lonRange':function _0x25002c(){return _0x1c690a['lonRange'];},'latRange':function _0x315c22(){var _0x10603e=_0x339156;return _0x1c690a[_0x10603e(0x108)];},'randomCoefficient':function _0x2219cf(){var _0x19484e=Math['random']();return _0x19484e;},'dropRate':function _0x7b286d(){return _0x56ce29['dropRate'];},'dropRateBump':function _0x1566a5(){return _0x56ce29['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':function _0x4e479d(){var _0x432695=_0x339156;_0x4ea826['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=_0x4ea826['particlesTextures'][_0x432695(0x193)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':_0x339156(0x15e),'uniformMap':{'postProcessingPosition':function _0x4fc1a8(){return _0x4ea826['particlesTextures']['postProcessingPosition'];},'nextParticlesSpeed':function _0x3a30a4(){return _0x4ea826['particlesTextures']['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingSpeed_frag]}),'outputTexture':this['particlesTextures']['postProcessingSpeed'],'preExecute':function _0x22c4ea(){var _0xf4dc57=_0x339156;_0x4ea826[_0xf4dc57(0x142)]['postProcessingSpeed'][_0xf4dc57(0x100)]['outputTexture']=_0x4ea826['particlesTextures'][_0xf4dc57(0x160)];}})};}}]),_0x5cee30;}()),Cesium$2=mars3d__namespace[_0x231b9c(0x18f)],ParticleSystem=(function(){var _0xab842b=_0x231b9c;function _0x5a571f(_0x313967,_0x3d7d29,_0x49cc7f,_0x4d2ea2){var _0x5c08c4=_0x134e;_classCallCheck(this,_0x5a571f),this['context']=_0x313967,_0x3d7d29=_objectSpread2({},_0x3d7d29);if(_0x3d7d29['udata']&&_0x3d7d29['vdata']){var _0x53eb78,_0x569f88,_0x497fed,_0x52aa2,_0x7a54ad,_0x5ddb8c;_0x3d7d29[_0x5c08c4(0x19c)]={},_0x3d7d29[_0x5c08c4(0x19c)]['lon']=_0x3d7d29[_0x5c08c4(0x1bf)],_0x3d7d29['dimensions'][_0x5c08c4(0xd3)]=_0x3d7d29['rows'],_0x3d7d29['dimensions'][_0x5c08c4(0xdd)]=_0x3d7d29['lev']||0x1,_0x3d7d29['lon']={},_0x3d7d29[_0x5c08c4(0x1c7)]['min']=_0x3d7d29['xmin'],_0x3d7d29['lon'][_0x5c08c4(0x1b9)]=_0x3d7d29[_0x5c08c4(0x19b)],_0x3d7d29['lat']={},_0x3d7d29['lat']['min']=_0x3d7d29['ymin'],_0x3d7d29['lat']['max']=_0x3d7d29['ymax'],_0x3d7d29['lev']={},_0x3d7d29[_0x5c08c4(0xdd)]['min']=(_0x53eb78=_0x3d7d29[_0x5c08c4(0x168)])!==null&&_0x53eb78!==void 0x0?_0x53eb78:0x1,_0x3d7d29[_0x5c08c4(0xdd)]['max']=(_0x569f88=_0x3d7d29['levmax'])!==null&&_0x569f88!==void 0x0?_0x569f88:0x1,_0x3d7d29['U']={},_0x3d7d29['U']['array']=new Float32Array(_0x3d7d29[_0x5c08c4(0x1cd)]),_0x3d7d29['U']['min']=(_0x497fed=_0x3d7d29[_0x5c08c4(0xe0)])!==null&&_0x497fed!==void 0x0?_0x497fed:Math[_0x5c08c4(0x188)]['apply'](Math,_toConsumableArray(_0x3d7d29['udata'])),_0x3d7d29['U']['max']=(_0x52aa2=_0x3d7d29[_0x5c08c4(0x15c)])!==null&&_0x52aa2!==void 0x0?_0x52aa2:Math['max']['apply'](Math,_toConsumableArray(_0x3d7d29[_0x5c08c4(0x1cd)])),_0x3d7d29['V']={},_0x3d7d29['V'][_0x5c08c4(0x13e)]=new Float32Array(_0x3d7d29[_0x5c08c4(0xfc)]),_0x3d7d29['V']['min']=(_0x7a54ad=_0x3d7d29['vmin'])!==null&&_0x7a54ad!==void 0x0?_0x7a54ad:Math[_0x5c08c4(0x188)]['apply'](Math,_toConsumableArray(_0x3d7d29[_0x5c08c4(0xfc)])),_0x3d7d29['V']['max']=(_0x5ddb8c=_0x3d7d29['vmax'])!==null&&_0x5ddb8c!==void 0x0?_0x5ddb8c:Math['max']['apply'](Math,_toConsumableArray(_0x3d7d29['vdata']));}this['data']=_0x3d7d29,this['options']=_0x49cc7f,this[_0x5c08c4(0x10f)]=_0x4d2ea2,this[_0x5c08c4(0x1b1)]=new ParticlesComputing(this[_0x5c08c4(0xd0)],this[_0x5c08c4(0x15f)],this[_0x5c08c4(0xd6)],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this[_0x5c08c4(0xd0)],this['data'],this[_0x5c08c4(0xd6)],this[_0x5c08c4(0x10f)],this['particlesComputing']);}return _createClass(_0x5a571f,[{'key':'canvasResize','value':function _0x107af1(_0x2789e7){var _0x25a590=_0x134e,_0x522e7b=this;this[_0x25a590(0x1b1)]['destroyParticlesTextures'](),Object['keys'](this['particlesComputing']['windTextures'])['forEach'](function(_0x56bb9a){_0x522e7b['particlesComputing']['windTextures'][_0x56bb9a]['destroy']();}),this[_0x25a590(0x11e)][_0x25a590(0x197)]['colorTable']['destroy'](),Object[_0x25a590(0x151)](this['particlesRendering'][_0x25a590(0x15b)])['forEach'](function(_0x440ee0){_0x522e7b['particlesRendering']['framebuffers'][_0x440ee0]['destroy']();}),this['context']=_0x2789e7,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this['options'],this['viewerParameters'],this['particlesComputing']);}},{'key':_0xab842b(0x117),'value':function _0x2b6fab(){var _0x54d7b4=_0xab842b,_0x4f7e2a=this,_0x521e08=new Cesium$2['ClearCommand']({'color':new Cesium$2[(_0x54d7b4(0x133))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass']['OPAQUE']});Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](function(_0x3004bb){var _0x3118f0=_0x54d7b4;_0x521e08['framebuffer']=_0x4f7e2a['particlesRendering'][_0x3118f0(0x15b)][_0x3004bb],_0x521e08['execute'](_0x4f7e2a[_0x3118f0(0xd0)]);});}},{'key':'refreshParticles','value':function _0x3d3039(_0x286fee){var _0x41d0e7=_0xab842b;this[_0x41d0e7(0x117)](),this['particlesComputing']['destroyParticlesTextures'](),this['particlesComputing']['createParticlesTextures'](this['context'],this['options'],this['viewerParameters']);if(_0x286fee){var _0x3729d4=this[_0x41d0e7(0x11e)]['createSegmentsGeometry'](this[_0x41d0e7(0xd6)]);this[_0x41d0e7(0x11e)][_0x41d0e7(0x142)][_0x41d0e7(0x17e)]['geometry']=_0x3729d4;var _0x3e952d=Cesium$2['VertexArray']['fromGeometry']({'context':this['context'],'geometry':_0x3729d4,'attributeLocations':this['particlesRendering'][_0x41d0e7(0x142)]['segments']['attributeLocations'],'bufferUsage':Cesium$2['BufferUsage']['STATIC_DRAW']});this['particlesRendering']['primitives']['segments'][_0x41d0e7(0x100)][_0x41d0e7(0x101)]=_0x3e952d;}}},{'key':'setOptions','value':function _0x30572f(_0x1e07b4){var _0x383b1c=_0xab842b,_0x1d7731=this,_0x5decd7=![];this['options']['maxParticles']!==_0x1e07b4[_0x383b1c(0x16f)]&&(_0x5decd7=!![]),Object['keys'](_0x1e07b4)['forEach'](function(_0xe077b4){_0x1d7731['options'][_0xe077b4]=_0x1e07b4[_0xe077b4];}),this['refreshParticles'](_0x5decd7);}},{'key':_0xab842b(0x1b4),'value':function _0x52c54c(_0x193860){var _0x4e9030=_0xab842b,_0x19c9dd=this;Object[_0x4e9030(0x151)](_0x193860)['forEach'](function(_0x2ea778){_0x19c9dd['viewerParameters'][_0x2ea778]=_0x193860[_0x2ea778];}),this['refreshParticles'](![]);}},{'key':'destroy','value':function _0x5821aa(){var _0x1562bd=_0xab842b,_0x13c4be=this;clearTimeout(this['canrefresh']),this['particlesComputing']['destroyParticlesTextures'](),Object[_0x1562bd(0x151)](this[_0x1562bd(0x1b1)]['windTextures'])[_0x1562bd(0x14c)](function(_0x199070){_0x13c4be['particlesComputing']['windTextures'][_0x199070]['destroy']();}),this['particlesRendering']['textures'][_0x1562bd(0x171)][_0x1562bd(0x15d)](),Object['keys'](this[_0x1562bd(0x11e)]['framebuffers'])['forEach'](function(_0x41b929){var _0x3f1e77=_0x1562bd;_0x13c4be['particlesRendering'][_0x3f1e77(0x15b)][_0x41b929]['destroy']();});for(var _0x367701 in this){delete this[_0x367701];}}}]),_0x5a571f;}()),Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x231b9c(0x152)],DEF_OPTIONS={'particlesNumber':0x1000,'fixedHeight':0x0,'fadeOpacity':0.996,'dropRate':0.003,'dropRateBump':0.01,'speedFactor':0.5,'lineWidth':0x2,'colors':['rgb(206,255,255)']},WindLayer=function(_0x255e0b){var _0x448812=_0x231b9c;_inherits(_0xf05aa4,_0x255e0b);var _0x566104=_createSuper(_0xf05aa4);function _0xf05aa4(){var _0x3834ed=_0x134e,_0x1a199d,_0x2fbbce=arguments[_0x3834ed(0x176)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0xf05aa4),_0x2fbbce=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x2fbbce),_0x1a199d=_0x566104['call'](this,_0x2fbbce),_0x1a199d['_setOptionsHook'](_0x2fbbce),_0x1a199d;}return _createClass(_0xf05aa4,[{'key':'layer','get':function _0x1227c6(){var _0x2dde3a=_0x134e;return this[_0x2dde3a(0x142)];}},{'key':'data','get':function _0x1434c9(){return this['_data'];},'set':function _0x3a6f9e(_0x5b0046){var _0x1153f6=_0x134e;this[_0x1153f6(0x1cf)](_0x5b0046);}},{'key':'colors','get':function _0x25db9c(){return this['options']['colors'];},'set':function _0x2bba1c(_0x46b196){var _0xe83e10=_0x134e;this[_0xe83e10(0xd6)]['colors']=_0x46b196,this['particleSystem']&&this['particleSystem'][_0xe83e10(0x189)]({'colors':_0x46b196}),this['resize']();}},{'key':'_mountedHook','value':function _0x4b7bd9(){}},{'key':'_addedHook','value':function _0x4f61fe(){var _0x1e7e59=_0x134e;this['scene']=this['_map'][_0x1e7e59(0x184)],this['camera']=this['_map'][_0x1e7e59(0x150)],this[_0x1e7e59(0x142)]=new Cesium$1['PrimitiveCollection'](),this[_0x1e7e59(0x16a)][_0x1e7e59(0x184)]['primitives']['add'](this['primitives']),this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1[(_0x1e7e59(0x1ca))](),'pixelSize':0x0},this[_0x1e7e59(0x190)]=new Cesium$1[(_0x1e7e59(0xd1))](Cesium$1['Cartesian3']['ZERO'],0.99*0x615299),this[_0x1e7e59(0x113)](),window[_0x1e7e59(0x1c1)](_0x1e7e59(0x178),this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['_map']['on'](mars3d__namespace[_0x1e7e59(0x13b)]['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x1e7e59(0x103)],this['_onMouseUpEvent'],this),this['_map']['on'](mars3d__namespace[_0x1e7e59(0x13b)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x1e7e59(0x14f)]&&this['setData'](this[_0x1e7e59(0x14f)]);}},{'key':'_removedHook','value':function _0x3bae8c(){var _0x111d75=_0x134e;window['removeEventListener'](_0x111d75(0x178),this['resize']),this[_0x111d75(0x16a)][_0x111d75(0x192)](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this),this['_map'][_0x111d75(0x192)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x111d75(0x105)],this),this['_map'][_0x111d75(0x192)](mars3d__namespace['EventType']['mouseUp'],this[_0x111d75(0x194)],this),this['_map'][_0x111d75(0x192)](mars3d__namespace[_0x111d75(0x13b)]['mouseMove'],this['_onMouseMoveEvent'],this),this['primitives']['removeAll'](),this['_map']['scene']['primitives']['remove'](this['primitives']);}},{'key':'resize','value':function _0x23e848(){var _0xfd4ba=_0x134e;if(!this[_0xfd4ba(0x18d)]||!this[_0xfd4ba(0x16c)])return;this[_0xfd4ba(0x142)]['show']=![],this['primitives']['removeAll'](),this[_0xfd4ba(0x16a)][_0xfd4ba(0x1c4)](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this);}},{'key':'_onMap_preRenderEvent','value':function _0x3bc59a(_0x550f68){var _0x4a2cd7=_0x134e;this['particleSystem']['canvasResize'](this['scene']['context']),this[_0x4a2cd7(0x121)](),this['primitives']['show']=!![];}},{'key':_0x448812(0x159),'value':function _0xb6245d(_0x5a8489){var _0x20485f=_0x448812,_0x2fa86d=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x20485f(0x16c)])return;this['primitives']['show']=![],this['refreshTimer']=setTimeout(function(){var _0xc618ea=_0x20485f;if(!_0x2fa86d[_0xc618ea(0x18d)])return;_0x2fa86d['redraw']();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x4ae08b(_0x40b69c){this['mouse_down']=!![];}},{'key':'_onMouseMoveEvent','value':function _0x4f9dff(_0x26c4eb){var _0x69be3e=_0x448812;if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&(this['primitives'][_0x69be3e(0x18d)]=![],this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x26c2d2(_0x2d4bbc){var _0x3f4e85=_0x448812;if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['primitives']['show']=!![],this[_0x3f4e85(0x136)]=![],this['mouse_move']=![];}},{'key':'redraw','value':function _0x52f6dd(){var _0x1d30c5=_0x448812;if(!this['_map']||!this[_0x1d30c5(0x18d)])return;this['updateViewerParameters'](),this['particleSystem'][_0x1d30c5(0x1b4)](this[_0x1d30c5(0x10f)]),this['primitives']['show']=!![];}},{'key':'setData','value':function _0x312547(_0x4cee09){var _0x1c2e49=_0x448812;this['_data']=_0x4cee09,this['particleSystem']&&this['particleSystem']['destroy'](),this[_0x1c2e49(0x16c)]=new ParticleSystem(this['scene'][_0x1c2e49(0xd0)],_0x4cee09,this['getOptions'](),this['viewerParameters']),this['addPrimitives']();}},{'key':_0x448812(0xf4),'value':function _0xa88e13(_0x18f087,_0x5c5e42){var _0x38e9ce=_0x448812;if(_0x18f087)for(var _0xab64a7 in _0x18f087){this[_0xab64a7]=_0x18f087[_0xab64a7];}this['particleSystem']&&this['particleSystem'][_0x38e9ce(0x189)](this[_0x38e9ce(0x11b)]());}},{'key':'getOptions','value':function _0x1a10a5(){var _0x52f68e=_0x448812,_0x4804ed=Math['ceil'](Math[_0x52f68e(0xd7)](this[_0x52f68e(0x1cb)]));return this['particlesNumber']=_0x4804ed*_0x4804ed,{'particlesTextureSize':_0x4804ed,'maxParticles':this[_0x52f68e(0x1cb)],'particleHeight':this['fixedHeight'],'fadeOpacity':this['fadeOpacity'],'dropRate':this[_0x52f68e(0x166)],'dropRateBump':this['dropRateBump'],'speedFactor':this[_0x52f68e(0x148)],'lineWidth':this['lineWidth'],'colors':this['colors']};}},{'key':'addPrimitives','value':function _0xdaf56c(){var _0x4209fd=_0x448812;this['primitives'][_0x4209fd(0x1a9)](this['particleSystem']['particlesComputing']['primitives'][_0x4209fd(0x17c)]),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives']['updateSpeed']),this['primitives'][_0x4209fd(0x1a9)](this[_0x4209fd(0x16c)]['particlesComputing']['primitives'][_0x4209fd(0x131)]),this[_0x4209fd(0x142)][_0x4209fd(0x1a9)](this[_0x4209fd(0x16c)]['particlesComputing'][_0x4209fd(0x142)]['postProcessingPosition']),this[_0x4209fd(0x142)]['add'](this[_0x4209fd(0x16c)]['particlesComputing']['primitives']['postProcessingSpeed']),this[_0x4209fd(0x142)][_0x4209fd(0x1a9)](this['particleSystem']['particlesRendering']['primitives']['segments']),this[_0x4209fd(0x142)][_0x4209fd(0x1a9)](this[_0x4209fd(0x16c)][_0x4209fd(0x11e)][_0x4209fd(0x142)]['trails']),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['screen']);}},{'key':_0x448812(0x113),'value':function _0x9fd81e(){var _0x992db4=_0x448812,_0x4e3e08=this[_0x992db4(0x150)]['computeViewRectangle'](this['scene'][_0x992db4(0xf7)]['ellipsoid']);if(!_0x4e3e08){var _0x851ec7=this[_0x992db4(0x16a)]['getExtent']();_0x4e3e08=Cesium$1[_0x992db4(0xe1)]['fromDegrees'](_0x851ec7['xmin'],_0x851ec7[_0x992db4(0x11a)],_0x851ec7[_0x992db4(0x19b)],_0x851ec7['ymax']);}var _0x13b2e4=Util[_0x992db4(0x16e)](_0x4e3e08);this[_0x992db4(0x10f)][_0x992db4(0x198)]['x']=_0x13b2e4['lon'][_0x992db4(0x188)],this[_0x992db4(0x10f)]['lonRange']['y']=_0x13b2e4['lon'][_0x992db4(0x1b9)],this[_0x992db4(0x10f)][_0x992db4(0x108)]['x']=_0x13b2e4['lat']['min'],this[_0x992db4(0x10f)][_0x992db4(0x108)]['y']=_0x13b2e4[_0x992db4(0xd3)]['max'];var _0x9f08a2=this['camera']['getPixelSize'](this['globeBoundingSphere'],this['scene'][_0x992db4(0x1d3)],this['scene'][_0x992db4(0x1bd)]);_0x9f08a2>0x0&&(this[_0x992db4(0x10f)][_0x992db4(0x163)]=_0x9f08a2);}}]),_0xf05aa4;}(BaseLayer$1);mars3d__namespace['LayerUtil'][_0x231b9c(0x11c)](_0x231b9c(0xeb),WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){function _0x35f184(){var _0x13219b=_0x134e;_classCallCheck(this,_0x35f184),this['lng']=null,this['lat']=null,this['tlng']=null,this[_0x13219b(0x1c9)]=null,this['age']=null;}return _createClass(_0x35f184,[{'key':'destroy','value':function _0x1b95aa(){for(var _0x3398ba in this){delete this[_0x3398ba];}}}]),_0x35f184;}()),CanvasWindField=(function(){var _0x56d136=_0x231b9c;function _0x1ef0b7(_0x1f6a4d){_classCallCheck(this,_0x1ef0b7),this['setOptions'](_0x1f6a4d);}return _createClass(_0x1ef0b7,[{'key':'speedRate','get':function _0x4bd8f7(){return this['_speedRate'];},'set':function _0x45e11f(_0x512615){var _0x3ee697=_0x134e;this['_speedRate']=(0x64-(_0x512615>0x63?0x63:_0x512615))*0x64,this['_calc_speedRate']=[(this['xmax']-this[_0x3ee697(0x132)])/this[_0x3ee697(0x181)],(this['ymax']-this['ymin'])/this['_speedRate']];}},{'key':'maxAge','get':function _0xf4002d(){return this['_maxAge'];},'set':function _0x32152d(_0xe6ca3){this['_maxAge']=_0xe6ca3;}},{'key':'setOptions','value':function _0xdf1496(_0x4851d8){var _0x13fa23=_0x134e;this['options']=_0x4851d8,this[_0x13fa23(0xfe)]=_0x4851d8[_0x13fa23(0xfe)]||0x78,this[_0x13fa23(0x180)]=_0x4851d8[_0x13fa23(0x180)]||0x32,this['particles']=[];var _0x333a5b=_0x4851d8['particlesNumber']||0x1000;for(var _0xd805f2=0x0;_0xd805f2<_0x333a5b;_0xd805f2++){var _0x15632b=this['_randomParticle'](new CanvasParticle());this[_0x13fa23(0xd9)]['push'](_0x15632b);}}},{'key':'setDate','value':function _0x5437ac(_0x1b4079){var _0x21d613=_0x134e;this[_0x21d613(0x141)]=_0x1b4079['rows'],this['cols']=_0x1b4079[_0x21d613(0x1bf)],this['xmin']=_0x1b4079['xmin'],this['xmax']=_0x1b4079['xmax'],this['ymin']=_0x1b4079[_0x21d613(0x11a)],this['ymax']=_0x1b4079['ymax'],this['grid']=[];var _0x403783=_0x1b4079['udata'],_0x1ebc1b=_0x1b4079['vdata'],_0x1ab5b7=![];_0x403783['length']===this[_0x21d613(0x141)]&&_0x403783[0x0]['length']===this[_0x21d613(0x1bf)]&&(_0x1ab5b7=!![]);var _0x40a0aa=0x0,_0x4c63a7=null,_0x500335=null;for(var _0x4ef818=0x0;_0x4ef818<this['rows'];_0x4ef818++){_0x4c63a7=[];for(var _0x5c2d35=0x0;_0x5c2d35<this['cols'];_0x5c2d35++,_0x40a0aa++){_0x1ab5b7?_0x500335=this[_0x21d613(0x13d)](_0x403783[_0x4ef818][_0x5c2d35],_0x1ebc1b[_0x4ef818][_0x5c2d35]):_0x500335=this['_calcUV'](_0x403783[_0x40a0aa],_0x1ebc1b[_0x40a0aa]),_0x4c63a7['push'](_0x500335);}this['grid']['push'](_0x4c63a7);}this['options']['reverseY']&&this[_0x21d613(0x127)]['reverse']();}},{'key':'clear','value':function _0x1715c4(){var _0x4fc136=_0x134e;delete this[_0x4fc136(0x141)],delete this['cols'],delete this['xmin'],delete this[_0x4fc136(0x19b)],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this['particles'];}},{'key':'toGridXY','value':function _0x501c2b(_0x35ac32,_0x26bdc4){var _0x51025e=_0x134e,_0x5ee8c3=(_0x35ac32-this['xmin'])/(this['xmax']-this['xmin'])*(this[_0x51025e(0x1bf)]-0x1),_0x3553f9=(this['ymax']-_0x26bdc4)/(this[_0x51025e(0x1b6)]-this['ymin'])*(this['rows']-0x1);return[_0x5ee8c3,_0x3553f9];}},{'key':'getUVByXY','value':function _0x5bdafc(_0x4946ab,_0x579490){if(_0x4946ab<0x0||_0x4946ab>=this['cols']||_0x579490>=this['rows'])return[0x0,0x0,0x0];var _0x3a336e=Math['floor'](_0x4946ab),_0x234b0d=Math['floor'](_0x579490);if(_0x3a336e===_0x4946ab&&_0x234b0d===_0x579490)return this['grid'][_0x579490][_0x4946ab];var _0x367af8=_0x3a336e+0x1,_0x2e00ab=_0x234b0d+0x1,_0x2ce33a=this['getUVByXY'](_0x3a336e,_0x234b0d),_0x28a706=this['getUVByXY'](_0x367af8,_0x234b0d),_0x476bf5=this['getUVByXY'](_0x3a336e,_0x2e00ab),_0x29979f=this['getUVByXY'](_0x367af8,_0x2e00ab),_0x528106=null;try{_0x528106=this['_bilinearInterpolation'](_0x4946ab-_0x3a336e,_0x579490-_0x234b0d,_0x2ce33a,_0x28a706,_0x476bf5,_0x29979f);}catch(_0x3b1b7c){console['log'](_0x4946ab,_0x579490);}return _0x528106;}},{'key':_0x56d136(0x122),'value':function _0x1dd50e(_0x885f7c,_0x1dab53,_0x390355,_0x3899b5,_0x299bfa,_0x4f3fd5){var _0x53a051=0x1-_0x885f7c,_0xeeb5ad=0x1-_0x1dab53,_0x1fb15c=_0x53a051*_0xeeb5ad,_0x468cfd=_0x885f7c*_0xeeb5ad,_0xffe702=_0x53a051*_0x1dab53,_0x538260=_0x885f7c*_0x1dab53,_0x568fe7=_0x390355[0x0]*_0x1fb15c+_0x3899b5[0x0]*_0x468cfd+_0x299bfa[0x0]*_0xffe702+_0x4f3fd5[0x0]*_0x538260,_0x45022a=_0x390355[0x1]*_0x1fb15c+_0x3899b5[0x1]*_0x468cfd+_0x299bfa[0x1]*_0xffe702+_0x4f3fd5[0x1]*_0x538260;return this['_calcUV'](_0x568fe7,_0x45022a);}},{'key':'_calcUV','value':function _0x5813e0(_0x7e1534,_0x5d139e){var _0x2bc960=_0x56d136;return[+_0x7e1534,+_0x5d139e,Math[_0x2bc960(0xd7)](_0x7e1534*_0x7e1534+_0x5d139e*_0x5d139e)];}},{'key':'getUVByPoint','value':function _0x138acf(_0x124ad1,_0x32a3c5){var _0x2131a7=_0x56d136;if(!this['isInExtent'](_0x124ad1,_0x32a3c5))return null;var _0x66e1c8=this[_0x2131a7(0x196)](_0x124ad1,_0x32a3c5),_0xc15170=this['getUVByXY'](_0x66e1c8[0x0],_0x66e1c8[0x1]);return _0xc15170;}},{'key':'isInExtent','value':function _0x57d8d3(_0x2b3d4b,_0x43c1bf){var _0x15ecdb=_0x56d136;return _0x2b3d4b>=this['xmin']&&_0x2b3d4b<=this[_0x15ecdb(0x19b)]&&_0x43c1bf>=this[_0x15ecdb(0x11a)]&&_0x43c1bf<=this['ymax']?!![]:![];}},{'key':_0x56d136(0x1a6),'value':function _0x43f56d(){var _0x3278b0=_0x56d136,_0x2b4cd1=fRandomByfloat(this[_0x3278b0(0x132)],this['xmax']),_0x16f25f=fRandomByfloat(this['ymin'],this['ymax']);return{'lat':_0x16f25f,'lng':_0x2b4cd1};}},{'key':'getParticles','value':function _0xc52905(){var _0x5e93a3=_0x56d136,_0x234e63,_0x34fe82,_0x3b6457;for(var _0x5f317b=0x0,_0x1f3329=this['particles']['length'];_0x5f317b<_0x1f3329;_0x5f317b++){var _0x4cc595=this['particles'][_0x5f317b];_0x4cc595['age']<=0x0&&(_0x4cc595=this['_randomParticle'](_0x4cc595));if(_0x4cc595['age']>0x0){var _0x50d20e=_0x4cc595['tlng'],_0x1ca85d=_0x4cc595['tlat'];_0x3b6457=this['getUVByPoint'](_0x50d20e,_0x1ca85d),_0x3b6457?(_0x234e63=_0x50d20e+this['_calc_speedRate'][0x0]*_0x3b6457[0x0],_0x34fe82=_0x1ca85d+this['_calc_speedRate'][0x1]*_0x3b6457[0x1],_0x4cc595[_0x5e93a3(0x179)]=_0x50d20e,_0x4cc595['lat']=_0x1ca85d,_0x4cc595['tlng']=_0x234e63,_0x4cc595['tlat']=_0x34fe82,_0x4cc595['age']--):_0x4cc595[_0x5e93a3(0x114)]=0x0;}}return this['particles'];}},{'key':'_randomParticle','value':function _0x2961d1(_0x45f9db){var _0x1c4c83=_0x56d136,_0x2ead4f,_0x298c35;for(var _0x354aac=0x0;_0x354aac<0x1e;_0x354aac++){_0x2ead4f=this[_0x1c4c83(0x1a6)](),_0x298c35=this[_0x1c4c83(0xf6)](_0x2ead4f[_0x1c4c83(0x179)],_0x2ead4f['lat']);if(_0x298c35&&_0x298c35[0x2]>0x0)break;}if(!_0x298c35)return _0x45f9db;var _0x41ce31=_0x2ead4f['lng']+this['_calc_speedRate'][0x0]*_0x298c35[0x0],_0x4dd4cd=_0x2ead4f['lat']+this[_0x1c4c83(0x144)][0x1]*_0x298c35[0x1];return _0x45f9db['lng']=_0x2ead4f['lng'],_0x45f9db['lat']=_0x2ead4f['lat'],_0x45f9db['tlng']=_0x41ce31,_0x45f9db[_0x1c4c83(0x1c9)]=_0x4dd4cd,_0x45f9db['age']=Math['round'](Math[_0x1c4c83(0x18e)]()*this['maxAge']),_0x45f9db;}},{'key':'destroy','value':function _0x5ebc3(){for(var _0x1d168b in this){delete this[_0x1d168b];}}}]),_0x1ef0b7;}());function fRandomByfloat(_0x59e5c4,_0x574286){return _0x59e5c4+Math['random']()*(_0x574286-_0x59e5c4);}var Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'],CanvasWindLayer=function(_0x220d9a){var _0x1bc262=_0x231b9c;_inherits(_0x479427,_0x220d9a);var _0x49b80e=_createSuper(_0x479427);function _0x479427(){var _0x45d06c=_0x134e,_0x632806,_0x41cc86=arguments[_0x45d06c(0x176)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x479427),_0x632806=_0x49b80e['call'](this,_0x41cc86),_0x632806['_setOptionsHook'](_0x41cc86),_0x632806[_0x45d06c(0x1a4)]=null,_0x632806;}return _createClass(_0x479427,[{'key':'_setOptionsHook','value':function _0x462da5(_0x1d52ff,_0x13755d){var _0x561eef=_0x134e,_0x4c59ef,_0x8751f6,_0x4682d9;this[_0x561eef(0x14e)]=0x3e8/(_0x1d52ff[_0x561eef(0x165)]||0xa),this[_0x561eef(0xf3)]=(_0x4c59ef=this['options']['pointerEvents'])!==null&&_0x4c59ef!==void 0x0?_0x4c59ef:![],this[_0x561eef(0xee)]=_0x1d52ff['color']||'#ffffff',this['lineWidth']=_0x1d52ff['lineWidth']||0x1,this['fixedHeight']=(_0x8751f6=_0x1d52ff['fixedHeight'])!==null&&_0x8751f6!==void 0x0?_0x8751f6:0x0,this['reverseY']=(_0x4682d9=_0x1d52ff['reverseY'])!==null&&_0x4682d9!==void 0x0?_0x4682d9:![],this['windField']&&this['windField']['setOptions'](_0x1d52ff);}},{'key':'layer','get':function _0x349294(){return this['canvas'];}},{'key':'canvasWidth','get':function _0x23983d(){var _0x166115=_0x134e;return this['_map'][_0x166115(0x184)]['canvas'][_0x166115(0x146)];}},{'key':_0x1bc262(0x153),'get':function _0x293550(){var _0x43f51f=_0x1bc262;return this[_0x43f51f(0x16a)][_0x43f51f(0x184)]['canvas'][_0x43f51f(0x140)];}},{'key':_0x1bc262(0x10a),'get':function _0x269f70(){return this['_pointerEvents'];},'set':function _0x552fe8(_0x305afe){var _0x34ec2e=_0x1bc262;this[_0x34ec2e(0xf3)]=_0x305afe;if(!this['canvas'])return;_0x305afe?this['canvas']['style']['pointer-events']='all':this['canvas'][_0x34ec2e(0xdc)]['pointer-events']=_0x34ec2e(0x1b5);}},{'key':'particlesNumber','get':function _0x41def0(){var _0xa2f425=_0x1bc262;return this[_0xa2f425(0xd6)][_0xa2f425(0x1cb)];},'set':function _0xa513b5(_0x3afe5a){var _0x43ba2d=_0x1bc262,_0x3108ad=this;this['options'][_0x43ba2d(0x1cb)]=_0x3afe5a,clearTimeout(this[_0x43ba2d(0x119)]),this[_0x43ba2d(0x119)]=setTimeout(function(){var _0x4439cb=_0x43ba2d;_0x3108ad[_0x4439cb(0x137)]();},0x1f4);}},{'key':_0x1bc262(0x180),'get':function _0x27a290(){var _0x1e58a7=_0x1bc262;return this['options'][_0x1e58a7(0x180)];},'set':function _0x5c8d12(_0x297578){var _0x1bfe27=_0x1bc262;this['options']['speedRate']=_0x297578,this['windField']&&(this['windField'][_0x1bfe27(0x180)]=_0x297578);}},{'key':'maxAge','get':function _0x2d757b(){var _0x4ba592=_0x1bc262;return this['options'][_0x4ba592(0xfe)];},'set':function _0x8a1da8(_0x2bab66){var _0x465658=_0x1bc262;this['options']['maxAge']=_0x2bab66,this['windField']&&(this[_0x465658(0x1c0)][_0x465658(0xfe)]=_0x2bab66);}},{'key':_0x1bc262(0x15f),'get':function _0x3f3144(){return this['windData'];},'set':function _0x5735f7(_0x4933d7){this['setData'](_0x4933d7);}},{'key':_0x1bc262(0x1ba),'value':function _0x5a35a5(_0x5037da){var _0x519c1f=_0x1bc262;_0x5037da?this['_addedHook']():(this['windData']&&(this['options'][_0x519c1f(0x15f)]=this[_0x519c1f(0x1b3)]),this['_removedHook']());}},{'key':'_mountedHook','value':function _0x11936f(){var _0x28bb7d=_0x1bc262;this['options']['worker']?this[_0x28bb7d(0xe5)]():this['windField']=new CanvasWindField(this['options']);}},{'key':'_addedHook','value':function _0xe86cb5(){var _0x550bdf=_0x1bc262;this['canvas']=this['_createCanvas'](),this[_0x550bdf(0xfa)]=this['canvas']['getContext']('2d',{'willReadFrequently':!![]}),this[_0x550bdf(0x12c)](),this['options'][_0x550bdf(0x15f)]&&this['setData'](this[_0x550bdf(0xd6)]['data']);}},{'key':'_removedHook','value':function _0x56c8b3(){var _0x5ed4ed=_0x1bc262;this[_0x5ed4ed(0x17d)](),this['unbindEvent'](),this['canvas']&&(this['_map'][_0x5ed4ed(0x130)]['removeChild'](this['canvas']),delete this[_0x5ed4ed(0x1a4)]);}},{'key':'_createCanvas','value':function _0x2e73f8(){var _0x510660=_0x1bc262,_0x51cfe3=document['createElement']('canvas');_0x51cfe3['style']['position']='absolute',_0x51cfe3['style']['top']='0px',_0x51cfe3[_0x510660(0xdc)][_0x510660(0x10d)]=_0x510660(0xcf),_0x51cfe3[_0x510660(0xdc)][_0x510660(0x183)]='100%',_0x51cfe3[_0x510660(0xdc)]['height']=_0x510660(0x1a8),_0x51cfe3[_0x510660(0xdc)][_0x510660(0x10a)]=this['_pointerEvents']?'auto':'none',_0x51cfe3['style']['zIndex']=0xa,_0x51cfe3[_0x510660(0x1a1)]('id',_0x510660(0xf1)),_0x51cfe3[_0x510660(0x1a1)]('class','canvasWindy'),this['_map'][_0x510660(0x130)]['appendChild'](_0x51cfe3);var _0x3175d1=this['_map']['scene'];return _0x51cfe3[_0x510660(0x183)]=_0x3175d1['canvas']['clientWidth'],_0x51cfe3[_0x510660(0x14d)]=_0x3175d1['canvas'][_0x510660(0x140)],_0x51cfe3;}},{'key':_0x1bc262(0x178),'value':function _0x50ec91(){this['canvas']&&(this['canvas']['width']=this['canvasWidth'],this['canvas']['height']=this['canvasHeight']);}},{'key':_0x1bc262(0x12c),'value':function _0x343acb(){var _0x27c88e=_0x1bc262,_0x557444=this,_0x3c9d3a=Date[_0x27c88e(0x185)]();(function _0x34b907(){var _0x2d995c=_0x27c88e;_0x557444['animateFrame']=window[_0x2d995c(0x1a0)](_0x34b907);if(_0x557444['show']&&_0x557444[_0x2d995c(0x1c0)]){var _0x95d4b1=Date[_0x2d995c(0x185)](),_0x47ef25=_0x95d4b1-_0x3c9d3a;_0x47ef25>_0x557444['frameTime']&&(_0x3c9d3a=_0x95d4b1-_0x47ef25%_0x557444['frameTime'],_0x557444['update']());}}(),window['addEventListener'](_0x27c88e(0x178),this['resize'][_0x27c88e(0x14a)](this),![]),this['mouse_down']=![],this['mouse_move']=![],this[_0x27c88e(0xd6)][_0x27c88e(0x139)]&&(this[_0x27c88e(0x16a)]['on'](mars3d__namespace['EventType'][_0x27c88e(0x19a)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x27c88e(0x13b)][_0x27c88e(0x103)],this['_onMouseUpEvent'],this)));}},{'key':'unbindEvent','value':function _0x5ce83c(){var _0x7a8082=_0x1bc262;window[_0x7a8082(0xf9)](this['animateFrame']),delete this['animateFrame'],window[_0x7a8082(0x1d0)](_0x7a8082(0x178),this['resize']),this[_0x7a8082(0xd6)]['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x7a8082(0x13b)][_0x7a8082(0x19a)],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace[_0x7a8082(0x13b)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x7a8082(0x192)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this[_0x7a8082(0x16a)]['off'](mars3d__namespace['EventType'][_0x7a8082(0x1ab)],this[_0x7a8082(0x1d2)],this));}},{'key':'_onMapWhellEvent','value':function _0x515cdb(_0x4203c7){var _0x4254ea=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas']['style']['visibility']='hidden',this['refreshTimer']=setTimeout(function(){var _0x186f5b=_0x134e;if(!_0x4254ea['show'])return;_0x4254ea[_0x186f5b(0x137)](),_0x4254ea[_0x186f5b(0x1a4)][_0x186f5b(0xdc)]['visibility']='visible';},0xc8);}},{'key':'_onMouseDownEvent','value':function _0xc7335c(_0x4ab953){var _0x5f54ae=_0x1bc262;this['mouse_down']=!![],this['_map'][_0x5f54ae(0x192)](mars3d__namespace['EventType'][_0x5f54ae(0x1ab)],this['_onMouseMoveEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}},{'key':'_onMouseMoveEvent','value':function _0x16c6ec(_0x5e047b){var _0x99b1a6=_0x1bc262;if(!this['show']||!this['canvas'])return;this['mouse_down']&&(this[_0x99b1a6(0x1a4)]['style'][_0x99b1a6(0x10e)]='hidden',this['mouse_move']=!![]);}},{'key':_0x1bc262(0x194),'value':function _0x1c6fbd(_0x1f2d56){var _0x52ea39=_0x1bc262;if(!this[_0x52ea39(0x18d)]||!this[_0x52ea39(0x1a4)])return;this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x52ea39(0x1d2)],this),this[_0x52ea39(0x136)]&&this['mouse_move']&&this['redraw'](),this['canvas']['style']['visibility']=_0x52ea39(0x18c),this['mouse_down']=![],this[_0x52ea39(0xf0)]=![];}},{'key':_0x1bc262(0x1cf),'value':function _0x4f8066(_0xfde142){var _0x2040c3=_0x1bc262;this['clear'](),this['windData']=_0xfde142,this[_0x2040c3(0x1c0)]['setDate'](_0xfde142),this['redraw']();}},{'key':_0x1bc262(0x137),'value':function _0x2b13d8(){var _0x2917be=_0x1bc262;if(!this['show'])return;this['windField'][_0x2917be(0x189)](this['options']),this['update']();}},{'key':'update','value':function _0x26e8bc(){var _0x5002be=_0x1bc262;if(this['_updateIng'])return;this[_0x5002be(0x115)]=!![];if(this[_0x5002be(0xfb)])this[_0x5002be(0x1c0)]['update']();else{var _0x2f0616=this['windField'][_0x5002be(0x195)]();this[_0x5002be(0xed)](_0x2f0616);}this[_0x5002be(0x115)]=![];}},{'key':_0x1bc262(0xed),'value':function _0x18f0c6(_0x393512){var _0x36500b=_0x1bc262;this['canvasContext'][_0x36500b(0xe8)]='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']='lighter',this['canvasContext']['globalAlpha']=0.9,this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this[_0x36500b(0xef)],this['canvasContext'][_0x36500b(0x17f)]=this['color'];var _0x16522b=this['_map']['scene']['mode']!==Cesium['SceneMode'][_0x36500b(0x1d4)];for(var _0x15e59e=0x0,_0x542dd3=_0x393512[_0x36500b(0x176)];_0x15e59e<_0x542dd3;_0x15e59e++){var _0x53c5ed=_0x393512[_0x15e59e],_0x4ea57b=this['_tomap'](_0x53c5ed['lng'],_0x53c5ed['lat'],_0x53c5ed),_0x2d5423=this['_tomap'](_0x53c5ed['tlng'],_0x53c5ed['tlat'],_0x53c5ed);if(!_0x4ea57b||!_0x2d5423)continue;if(_0x16522b&&Math['abs'](_0x4ea57b[0x0]-_0x2d5423[0x0])>=this[_0x36500b(0x1cc)])continue;this['canvasContext']['moveTo'](_0x4ea57b[0x0],_0x4ea57b[0x1]),this[_0x36500b(0xfa)]['lineTo'](_0x2d5423[0x0],_0x2d5423[0x1]);}this['canvasContext'][_0x36500b(0x1b0)]();}},{'key':_0x1bc262(0xf2),'value':function _0x70b23d(_0x3ef38d,_0xee8255,_0x44fbd3){var _0x26db45=_0x1bc262,_0x3edf96=Cesium['Cartesian3'][_0x26db45(0x187)](_0x3ef38d,_0xee8255,this['fixedHeight']),_0x5cd663=this[_0x26db45(0x16a)]['scene'];if(_0x5cd663['mode']===Cesium[_0x26db45(0x1ae)]['SCENE3D']){var _0x33fc19=new Cesium['EllipsoidalOccluder'](_0x5cd663['globe']['ellipsoid'],_0x5cd663[_0x26db45(0x150)]['positionWC']),_0x3eb55f=_0x33fc19[_0x26db45(0xec)](_0x3edf96);if(!_0x3eb55f)return _0x44fbd3[_0x26db45(0x114)]=0x0,null;}var _0x12c9c1=Cesium['SceneTransforms'][_0x26db45(0x1ce)](this['_map'][_0x26db45(0x184)],_0x3edf96);return _0x12c9c1?[_0x12c9c1['x'],_0x12c9c1['y']]:null;}},{'key':'clear','value':function _0x166c98(){var _0x389019=_0x1bc262;this[_0x389019(0x1c0)][_0x389019(0x17d)](),delete this['windData'];}},{'key':'initWorker','value':function _0x44133b(){var _0x9ce35c=_0x1bc262,_0x115758=this;this['worker']=new Worker(this['options']['worker']),this['worker']['onmessage']=function(_0x3b1be6){_0x115758['_drawLines'](_0x3b1be6['data']['particles']),_0x115758['_updateIng2']=![];},this['windField']={'init':function _0x1e2278(_0x3a7ea5){_0x115758['worker']['postMessage']({'type':'init','options':_0x3a7ea5});},'setOptions':function _0x3256cb(_0xe84406){var _0x1ec596=_0x134e;_0x115758[_0x1ec596(0xfb)]['postMessage']({'type':_0x1ec596(0x189),'options':_0xe84406});},'setDate':function _0x1815af(_0x593e46){var _0x14d631=_0x134e;_0x115758[_0x14d631(0xfb)]['postMessage']({'type':'setDate','data':_0x593e46});},'update':function _0x29192e(){var _0x31a459=_0x134e;if(_0x115758['_updateIng2'])return;_0x115758[_0x31a459(0x167)]=!![],_0x115758['worker'][_0x31a459(0xe9)]({'type':_0x31a459(0x1d7)});},'clear':function _0x54b5fe(){var _0x24afaa=_0x134e;_0x115758['worker'][_0x24afaa(0xe9)]({'type':'clear'});}},this['windField'][_0x9ce35c(0x1ac)](this[_0x9ce35c(0xd6)]);}}]),_0x479427;}(BaseLayer);mars3d__namespace['LayerUtil'][_0x231b9c(0x11c)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x231b9c(0x110)]=WindLayer,exports[_0x231b9c(0xce)]=WindUtil,Object['defineProperty'](exports,_0x231b9c(0x1d1),{'value':!![]});
|
|
14
|
+
'use strict';var _0x44264c=_0x2b52;(function(_0x484c8d,_0x35d23f){var _0x472359=_0x2b52,_0x2d2132=_0x484c8d();while(!![]){try{var _0x176563=parseInt(_0x472359(0x16e))/0x1*(parseInt(_0x472359(0xbf))/0x2)+parseInt(_0x472359(0x191))/0x3+-parseInt(_0x472359(0x1a3))/0x4+parseInt(_0x472359(0x18d))/0x5+-parseInt(_0x472359(0x113))/0x6*(-parseInt(_0x472359(0x12e))/0x7)+-parseInt(_0x472359(0x12b))/0x8*(-parseInt(_0x472359(0xc8))/0x9)+parseInt(_0x472359(0xd0))/0xa*(-parseInt(_0x472359(0x19c))/0xb);if(_0x176563===_0x35d23f)break;else _0x2d2132['push'](_0x2d2132['shift']());}catch(_0xc6cb8e){_0x2d2132['push'](_0x2d2132['shift']());}}}(_0x5679,0xec734));function _interopNamespace(_0x569db5){var _0x57c6ca=_0x2b52;if(_0x569db5&&_0x569db5[_0x57c6ca(0xf7)])return _0x569db5;var _0x310855=Object['create'](null);return _0x569db5&&Object['keys'](_0x569db5)['forEach'](function(_0x4149d8){if(_0x4149d8!=='default'){var _0x5bbbc3=Object['getOwnPropertyDescriptor'](_0x569db5,_0x4149d8);Object['defineProperty'](_0x310855,_0x4149d8,_0x5bbbc3['get']?_0x5bbbc3:{'enumerable':!![],'get':function(){return _0x569db5[_0x4149d8];}});}}),_0x310855['default']=_0x569db5,_0x310855;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace[_0x44264c(0xbe)];function getU(_0x58bc78,_0x1848b0){var _0x27a18a=_0x58bc78*Math['cos'](Cesium$7['Math']['toRadians'](_0x1848b0));return _0x27a18a;}function getV(_0x741784,_0x2aa8df){var _0x293bf8=_0x44264c,_0x2f0eda=_0x741784*Math[_0x293bf8(0xaf)](Cesium$7['Math']['toRadians'](_0x2aa8df));return _0x2f0eda;}function getSpeed(_0x4fef6e,_0x1f96d5){var _0x3a060c=_0x44264c,_0x18f7a3=Math[_0x3a060c(0x138)](Math['pow'](_0x4fef6e,0x2)+Math['pow'](_0x1f96d5,0x2));return _0x18f7a3;}function getDirection(_0x18afa7,_0x2bea81){var _0x20c50d=_0x44264c,_0x2dbda8=Cesium$7['Math']['toDegrees'](Math[_0x20c50d(0x170)](_0x2bea81,_0x18afa7));return _0x2dbda8+=_0x2dbda8<0x0?0x168:0x0,_0x2dbda8;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x55ec1e,_0x32e8a3){var _0x3d44ef=_0x44264c,_0x3ea379=Object['keys'](_0x55ec1e);if(Object['getOwnPropertySymbols']){var _0x122d12=Object[_0x3d44ef(0xb5)](_0x55ec1e);_0x32e8a3&&(_0x122d12=_0x122d12['filter'](function(_0x76c485){return Object['getOwnPropertyDescriptor'](_0x55ec1e,_0x76c485)['enumerable'];})),_0x3ea379['push']['apply'](_0x3ea379,_0x122d12);}return _0x3ea379;}function _0x5679(){var _0x37ed66=['_speedRate','postMessage','depthTest','fragmentShaderSource','rows','getRandomLatLng','postProcessingPosition','attributeLocations','WindLayer','createRenderingPrimitives','scene','createRenderingFramebuffers','width','canvasContext','TextureMagnificationFilter','uniformMap','undefined','particlesRendering','beginPath','mode','max','animateFrame','ShaderProgram','__esModule','_createCanvas','abs','GeometryAttributes','maxAge','lonRange','globalAlpha','primitives','height','east','particlesTextures','lon','__proto__','0px','nextTrails','getFullscreenQuad','Cartesian3','_randomParticle','from','constructor','clearFramebuffers','createTexture','getUVByXY','canvasHeight','destroy','keys','style','canvas','6RHpKGb','PixelFormat','hidden','particlesTextureSize','_tomap','xmax','show','particleSystem','getExtent','clampToLatitudeRange','windTextures','vdata','levmin','getParticles','tlat','wheel','mouseMove','this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called','camera','segments','PI_OVER_THREE','mouse_move','VertexArray','reverseY','128oUscRT','clear','clearCommand','3974726ixSKFh','PixelDatatype','bind','defined','drawingBufferHeight','windField','redraw','Geometry','fadeOpacity','floor','sqrt','valueOf','viewRectangleToLonLatRange','_onMouseUpEvent','getWind','commandList','canvasWindy','SCENE3D','setData','createWindTextures','min','autoClear','globe','visibility','ceil','setOptions','register','value','off','Math','init','geometry','clientHeight','Matrix4','Compute','initWorker','ALWAYS','setDate','left','_map','framebuffers','windData','DEPTH_COMPONENT','nextTrailsColor','commandToExecute','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function','primitiveType','options','currentParticlesPosition','SceneTransforms','maxParticles','apply','random','segmentsDepth','_onMap_preRenderEvent','ComponentDatatype','particlesComputing','particlesNumber','age','cols','toDegrees','grid','GeometryAttribute','lineWidth','1635911bJBKXX','_addedHook','atan2','top','nextParticlesSpeed','_drawLines','push','dimensions','TWO_PI','nextParticlesPosition','PrimitiveCollection','red','colors','mouseUp','createComputingPrimitives','speedRate','array','refreshTimer','length','pointer-events','auto','outputTexture','stroke','absolute','key','Color','_onMouseMoveEvent','FLOAT','ellipsoid','ShaderSource','south','1714475yBlMLs','forEach','add','lat','2655543HKLLOH','getPixelSize','viewport','_onMapWhellEvent','data','TextureMinificationFilter','EventType','function','context','framebuffer','currentParticlesSpeed','11wzzsYF','viewerParameters','xmin','textures','_data','createRawRenderState','frameTime','7343836JuSdmv','destroyObject','writable','mouseDown','fromDegrees','BoundingSphere','applyViewerParameters','Map','getOptions','ymin','update','_mountedHook','positionWC','sin','fromGeometry','defineProperty','NEAREST','resize','pixelSize','getOwnPropertySymbols','Draw','_canrefresh','TRIANGLES','_calcUV','mouse_down','vertexArray','Appearance','lng','Cesium','2PyljGl','globalCompositeOperation','tlng','OPAQUE','blue','lev','createFramebuffer','postProcessingSpeed','ZERO','1007055GZpJvI','refreshParticles','prototype','updateViewerParameters','Set','dropRateBump','commandType','getOwnPropertyDescriptor','24176660mcpzTz','100%','currentTrails','worker','Texture','_onMouseDownEvent','pointerEvents','addPrimitives','latRange','ymax','SceneMode','execute','construct','BufferUsage','CanvasWindLayer','canvasWidth'];_0x5679=function(){return _0x37ed66;};return _0x5679();}function _objectSpread2(_0x242247){var _0x58793a=_0x44264c;for(var _0x2cd617=0x1;_0x2cd617<arguments['length'];_0x2cd617++){var _0x2ae34a=null!=arguments[_0x2cd617]?arguments[_0x2cd617]:{};_0x2cd617%0x2?ownKeys(Object(_0x2ae34a),!0x0)[_0x58793a(0x18e)](function(_0x4dd19e){_defineProperty(_0x242247,_0x4dd19e,_0x2ae34a[_0x4dd19e]);}):Object['getOwnPropertyDescriptors']?Object['defineProperties'](_0x242247,Object['getOwnPropertyDescriptors'](_0x2ae34a)):ownKeys(Object(_0x2ae34a))['forEach'](function(_0x5f15b3){var _0x4eedb1=_0x58793a;Object[_0x4eedb1(0xb1)](_0x242247,_0x5f15b3,Object[_0x4eedb1(0xcf)](_0x2ae34a,_0x5f15b3));});}return _0x242247;}function _classCallCheck(_0x2df3ae,_0x400d5d){if(!(_0x2df3ae instanceof _0x400d5d))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x2b52(_0x564639,_0x33afd4){var _0x567955=_0x5679();return _0x2b52=function(_0x2b5206,_0x59a1cd){_0x2b5206=_0x2b5206-0xa8;var _0x2bc6f4=_0x567955[_0x2b5206];return _0x2bc6f4;},_0x2b52(_0x564639,_0x33afd4);}function _defineProperties(_0x2724c9,_0x2ab7ca){var _0x903a8d=_0x44264c;for(var _0x227870=0x0;_0x227870<_0x2ab7ca[_0x903a8d(0x180)];_0x227870++){var _0x15e672=_0x2ab7ca[_0x227870];_0x15e672['enumerable']=_0x15e672['enumerable']||![],_0x15e672['configurable']=!![];if(_0x903a8d(0x149)in _0x15e672)_0x15e672[_0x903a8d(0x1a5)]=!![];Object['defineProperty'](_0x2724c9,_0x15e672[_0x903a8d(0x186)],_0x15e672);}}function _createClass(_0x9ff552,_0x2ef285,_0x2b534b){var _0x51610b=_0x44264c;if(_0x2ef285)_defineProperties(_0x9ff552[_0x51610b(0xca)],_0x2ef285);if(_0x2b534b)_defineProperties(_0x9ff552,_0x2b534b);return Object['defineProperty'](_0x9ff552,'prototype',{'writable':![]}),_0x9ff552;}function _defineProperty(_0x5dc1b1,_0x4e84d2,_0x2be100){return _0x4e84d2 in _0x5dc1b1?Object['defineProperty'](_0x5dc1b1,_0x4e84d2,{'value':_0x2be100,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x5dc1b1[_0x4e84d2]=_0x2be100,_0x5dc1b1;}function _inherits(_0x49374f,_0x28855e){var _0x2d021b=_0x44264c;if(typeof _0x28855e!=='function'&&_0x28855e!==null)throw new TypeError(_0x2d021b(0x15b));_0x49374f['prototype']=Object['create'](_0x28855e&&_0x28855e['prototype'],{'constructor':{'value':_0x49374f,'writable':!![],'configurable':!![]}}),Object[_0x2d021b(0xb1)](_0x49374f,'prototype',{'writable':![]});if(_0x28855e)_setPrototypeOf(_0x49374f,_0x28855e);}function _getPrototypeOf(_0x46c2ed){return _getPrototypeOf=Object['setPrototypeOf']?Object['getPrototypeOf']['bind']():function _0x5e4995(_0xe0a173){return _0xe0a173['__proto__']||Object['getPrototypeOf'](_0xe0a173);},_getPrototypeOf(_0x46c2ed);}function _setPrototypeOf(_0x12a388,_0x509f76){var _0x120de3=_0x44264c;return _setPrototypeOf=Object['setPrototypeOf']?Object['setPrototypeOf'][_0x120de3(0x130)]():function _0x2df00e(_0x276080,_0x51d39d){var _0x2024ea=_0x120de3;return _0x276080[_0x2024ea(0x103)]=_0x51d39d,_0x276080;},_setPrototypeOf(_0x12a388,_0x509f76);}function _isNativeReflectConstruct(){var _0x3a9117=_0x44264c;if(typeof Reflect===_0x3a9117(0xf0)||!Reflect[_0x3a9117(0xdc)])return![];if(Reflect['construct']['sham'])return![];if(typeof Proxy===_0x3a9117(0x198))return!![];try{return Boolean[_0x3a9117(0xca)][_0x3a9117(0x139)]['call'](Reflect[_0x3a9117(0xdc)](Boolean,[],function(){})),!![];}catch(_0x3cfa3a){return![];}}function _assertThisInitialized(_0x15801a){var _0x2b962d=_0x44264c;if(_0x15801a===void 0x0)throw new ReferenceError(_0x2b962d(0x124));return _0x15801a;}function _possibleConstructorReturn(_0x288420,_0x57742d){if(_0x57742d&&(typeof _0x57742d==='object'||typeof _0x57742d==='function'))return _0x57742d;else{if(_0x57742d!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x288420);}function _createSuper(_0x1d3a5f){var _0xf598e1=_isNativeReflectConstruct();return function _0x34c9ec(){var _0x2fbf90=_0x2b52,_0x44dbe3=_getPrototypeOf(_0x1d3a5f),_0x4e1c75;if(_0xf598e1){var _0x420311=_getPrototypeOf(this)['constructor'];_0x4e1c75=Reflect['construct'](_0x44dbe3,arguments,_0x420311);}else _0x4e1c75=_0x44dbe3[_0x2fbf90(0x161)](this,arguments);return _possibleConstructorReturn(this,_0x4e1c75);};}function _toConsumableArray(_0x224404){return _arrayWithoutHoles(_0x224404)||_iterableToArray(_0x224404)||_unsupportedIterableToArray(_0x224404)||_nonIterableSpread();}function _arrayWithoutHoles(_0x6307e7){if(Array['isArray'](_0x6307e7))return _arrayLikeToArray(_0x6307e7);}function _iterableToArray(_0x4ba3ee){var _0x591609=_0x44264c;if(typeof Symbol!=='undefined'&&_0x4ba3ee[Symbol['iterator']]!=null||_0x4ba3ee['@@iterator']!=null)return Array[_0x591609(0x109)](_0x4ba3ee);}function _unsupportedIterableToArray(_0x387d2d,_0x4566ce){var _0x158dda=_0x44264c;if(!_0x387d2d)return;if(typeof _0x387d2d==='string')return _arrayLikeToArray(_0x387d2d,_0x4566ce);var _0x16dee4=Object['prototype']['toString']['call'](_0x387d2d)['slice'](0x8,-0x1);if(_0x16dee4==='Object'&&_0x387d2d[_0x158dda(0x10a)])_0x16dee4=_0x387d2d['constructor']['name'];if(_0x16dee4===_0x158dda(0xa9)||_0x16dee4===_0x158dda(0xcc))return Array['from'](_0x387d2d);if(_0x16dee4==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x16dee4))return _arrayLikeToArray(_0x387d2d,_0x4566ce);}function _arrayLikeToArray(_0x57623a,_0x39bff3){if(_0x39bff3==null||_0x39bff3>_0x57623a['length'])_0x39bff3=_0x57623a['length'];for(var _0x443127=0x0,_0x437513=new Array(_0x39bff3);_0x443127<_0x39bff3;_0x443127++)_0x437513[_0x443127]=_0x57623a[_0x443127];return _0x437513;}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 _0x177bb7=_0x44264c;function _0x4e3c9e(_0x1a7b36){var _0x535fe5=_0x2b52,_0x52bf8d;_classCallCheck(this,_0x4e3c9e),this['commandType']=_0x1a7b36[_0x535fe5(0xce)],this[_0x535fe5(0x14d)]=_0x1a7b36['geometry'],this['attributeLocations']=_0x1a7b36['attributeLocations'],this[_0x535fe5(0x15c)]=_0x1a7b36['primitiveType'],this['uniformMap']=_0x1a7b36['uniformMap'],this['vertexShaderSource']=_0x1a7b36['vertexShaderSource'],this[_0x535fe5(0xe3)]=_0x1a7b36[_0x535fe5(0xe3)],this['rawRenderState']=_0x1a7b36['rawRenderState'],this['framebuffer']=_0x1a7b36['framebuffer'],this[_0x535fe5(0x183)]=_0x1a7b36['outputTexture'],this[_0x535fe5(0x143)]=(_0x52bf8d=_0x1a7b36[_0x535fe5(0x143)])!==null&&_0x52bf8d!==void 0x0?_0x52bf8d:![],this['preExecute']=_0x1a7b36['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['autoClear']&&(this['clearCommand']=new Cesium$6['ClearCommand']({'color':new Cesium$6[(_0x535fe5(0x187))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x535fe5(0x19a)],'pass':Cesium$6['Pass'][_0x535fe5(0xc2)]}));}return _createClass(_0x4e3c9e,[{'key':'createCommand','value':function _0x3c5ec9(_0x360ffe){var _0x5c71bf=_0x2b52;switch(this['commandType']){case _0x5c71bf(0xb6):{var _0x2ab973=Cesium$6[_0x5c71bf(0x129)]['fromGeometry']({'context':_0x360ffe,'geometry':this['geometry'],'attributeLocations':this[_0x5c71bf(0xe7)],'bufferUsage':Cesium$6[_0x5c71bf(0xdd)]['STATIC_DRAW']}),_0x424499=Cesium$6[_0x5c71bf(0xf6)]['fromCache']({'context':_0x360ffe,'attributeLocations':this['attributeLocations'],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this['fragmentShaderSource']}),_0x595898=Cesium$6['RenderState']['fromCache'](this['rawRenderState']);return new Cesium$6['DrawCommand']({'primitiveType':this['primitiveType'],'shaderProgram':_0x424499,'vertexArray':_0x2ab973,'modelMatrix':Cesium$6[_0x5c71bf(0x14f)]['IDENTITY'],'renderState':_0x595898,'uniformMap':this['uniformMap'],'castShadows':![],'receiveShadows':![],'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass'][_0x5c71bf(0xc2)],'pickOnly':!![],'owner':this});}case _0x5c71bf(0x150):{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this[_0x5c71bf(0xef)],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':'setGeometry','value':function _0x4b6178(_0x4b89fd,_0x387fe0){var _0x1bf80b=_0x2b52;this['geometry']=_0x387fe0;var _0x46e12b=Cesium$6['VertexArray']['fromGeometry']({'context':_0x4b89fd,'geometry':this['geometry'],'attributeLocations':this[_0x1bf80b(0xe7)],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']});this['commandToExecute']['vertexArray']=_0x46e12b;}},{'key':_0x177bb7(0xac),'value':function _0x31b1a4(_0x229148){var _0x470876=_0x177bb7;if(!this['show'])return;if(_0x229148[_0x470876(0xf3)]!==Cesium$6['SceneMode']['SCENE3D'])return;!Cesium$6['defined'](this['commandToExecute'])&&(this[_0x470876(0x15a)]=this['createCommand'](_0x229148['context'])),Cesium$6[_0x470876(0x131)](this['preExecute'])&&this['preExecute'](),Cesium$6[_0x470876(0x131)](this['clearCommand'])&&_0x229148[_0x470876(0x13d)][_0x470876(0x174)](this['clearCommand']),_0x229148['commandList']['push'](this['commandToExecute']);}},{'key':'isDestroyed','value':function _0x4b4b47(){return![];}},{'key':'destroy','value':function _0x271b20(){var _0x12433f=_0x177bb7;if(this['clearCommand']){var _0x3b390b,_0x5351b5;(_0x3b390b=this[_0x12433f(0x12d)])!==null&&_0x3b390b!==void 0x0&&_0x3b390b['vertexArray']&&this[_0x12433f(0x12d)]['vertexArray']['destroy'](),(_0x5351b5=this['clearCommand'])!==null&&_0x5351b5!==void 0x0&&_0x5351b5['shaderProgram']&&this['clearCommand']['shaderProgram']['destroy'](),delete this[_0x12433f(0x12d)];}return this['commandToExecute']&&(this['commandToExecute']['vertexArray']&&this['commandToExecute'][_0x12433f(0xbb)]['destroy'](),this['commandToExecute']['shaderProgram']&&this['commandToExecute']['shaderProgram']['destroy'](),delete this['commandToExecute']),Cesium$6[_0x12433f(0x1a4)](this);}}]),_0x4e3c9e;}()),Cesium$5=mars3d__namespace[_0x44264c(0xbe)],Util=(function(){var _0x1c6cd1=function _0x3498a3(){var _0xcc3ceb=_0x2b52,_0x5a7908=new Cesium$5[(_0xcc3ceb(0x135))]({'attributes':new Cesium$5[(_0xcc3ceb(0xfa))]({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5[_0xcc3ceb(0x165)]['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5[(_0xcc3ceb(0x16c))]({'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 _0x5a7908;},_0x580151=function _0x5a79b6(_0x5c1764,_0x2c4d14){var _0xea566d=_0x2b52;if(Cesium$5['defined'](_0x2c4d14)){var _0x14f1da={};_0x14f1da['arrayBufferView']=_0x2c4d14,_0x5c1764['source']=_0x14f1da;}var _0x2b1397=new Cesium$5[(_0xea566d(0xd4))](_0x5c1764);return _0x2b1397;},_0x39ff4a=function _0x408d14(_0x3efc69,_0x122881,_0x536452){var _0x5b65ba=new Cesium$5['Framebuffer']({'context':_0x3efc69,'colorTextures':[_0x122881],'depthTexture':_0x536452});return _0x5b65ba;},_0x29370d=function _0x3946a6(_0x5630ca){var _0x100b4d=_0x2b52,_0xc8d542=!![],_0x559749=![],_0x59ad9c={'viewport':_0x5630ca[_0x100b4d(0x193)],'depthTest':_0x5630ca[_0x100b4d(0xe2)],'depthMask':_0x5630ca['depthMask'],'blending':_0x5630ca['blending']},_0x5c39e3=Cesium$5[_0x100b4d(0xbc)]['getDefaultRenderState'](_0xc8d542,_0x559749,_0x59ad9c);return _0x5c39e3;},_0xe0b00e=function _0x313443(_0x6d2a43){var _0x13881a=_0x2b52,_0x49b314={},_0x5590e0=Cesium$5[_0x13881a(0x14b)]['mod'](_0x6d2a43['west'],Cesium$5[_0x13881a(0x14b)][_0x13881a(0x176)]),_0x5b136d=Cesium$5['Math']['mod'](_0x6d2a43[_0x13881a(0x100)],Cesium$5['Math']['TWO_PI']),_0x53fe76=_0x6d2a43[_0x13881a(0xec)],_0x24c0f4,_0x2ca5f1;_0x53fe76>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0x24c0f4=0x0,_0x2ca5f1=Cesium$5['Math']['TWO_PI']):_0x5b136d-_0x5590e0<_0x53fe76?(_0x24c0f4=_0x5590e0,_0x2ca5f1=_0x5590e0+_0x53fe76):(_0x24c0f4=_0x5590e0,_0x2ca5f1=_0x5b136d);_0x49b314['lon']={'min':Cesium$5['Math']['toDegrees'](_0x24c0f4),'max':Cesium$5['Math'][_0x13881a(0x16a)](_0x2ca5f1)};var _0x35970e=_0x6d2a43[_0x13881a(0x18c)],_0x4aa75e=_0x6d2a43['north'],_0x2295bc=_0x6d2a43[_0x13881a(0xff)],_0x4b7cd7=_0x2295bc>Cesium$5[_0x13881a(0x14b)]['PI']/0xc?_0x2295bc/0x2:0x0,_0x440400=Cesium$5['Math'][_0x13881a(0x11c)](_0x35970e-_0x4b7cd7),_0x302cea=Cesium$5['Math'][_0x13881a(0x11c)](_0x4aa75e+_0x4b7cd7);return _0x440400<-Cesium$5['Math']['PI_OVER_THREE']&&(_0x440400=-Cesium$5['Math']['PI_OVER_TWO']),_0x302cea>Cesium$5[_0x13881a(0x14b)][_0x13881a(0x127)]&&(_0x302cea=Cesium$5[_0x13881a(0x14b)]['PI_OVER_TWO']),_0x49b314['lat']={'min':Cesium$5[_0x13881a(0x14b)]['toDegrees'](_0x440400),'max':Cesium$5['Math']['toDegrees'](_0x302cea)},_0x49b314;};return{'getFullscreenQuad':_0x1c6cd1,'createTexture':_0x580151,'createFramebuffer':_0x39ff4a,'createRawRenderState':_0x29370d,'viewRectangleToLonLatRange':_0xe0b00e};}()),segmentDraw_vert='attribute\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0aattribute\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20postProcessingSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x20\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x20\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x20\x0a\x20\x20\x20\x20float\x20e2\x20=\x206.69437999014e-3;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x0a\x20\x20\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calcProjectedCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0,\x20360.0)\x20-\x20180.0;\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0);\x0a\x20\x20\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calcOffset(vec4\x20currentProjectedCoordinate,\x20vec4\x20nextProjectedCoordinate,\x20float\x20offsetSign)\x20{\x0a\x20\x20\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0);\x0a\x20\x20\x20\x20vec2\x20currentXY\x20=\x20(currentProjectedCoordinate.xy\x20/\x20currentProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x20\x20\x20\x20vec2\x20nextXY\x20=\x20(nextProjectedCoordinate.xy\x20/\x20nextProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0;\x0a\x20\x20\x20\x20vec2\x20direction\x20=\x20normalize(nextXY\x20-\x20currentXY);\x0a\x20\x20\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0,\x200.0);\x0a\x20\x20\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20\x20\x20vec3\x20currentPosition\x20=\x20texture2D(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture2D(postProcessingPosition,\x20particleIndex);\x0a\x0a\x20\x20\x20\x20vec4\x20currentProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20vec4\x20nextProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(nextPosition.w\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(nextPosition.xyz);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20pointToUse\x20=\x20normal.x;\x20//\x20-1\x20is\x20currentProjectedCoordinate\x20and\x20+1\x20is\x20nextProjectedCoordinate\x0a\x20\x20\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20pixelSize\x20*\x20calcOffset(currentProjectedCoordinate,\x20nextProjectedCoordinate,\x20offsetSign);\x0a\x20\x20\x20\x20if\x20(pointToUse\x20<\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20currentProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20nextProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20speedNormalization\x20=\x20texture2D(postProcessingSpeed,\x20particleIndex).a;\x0a}',segmentDraw_frag='uniform\x20sampler2D\x20colorTable;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20texture2D(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}',fullscreen_vert='attribute\x20vec3\x20position;\x0d\x0aattribute\x20vec2\x20st;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0d\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0d\x0a}',trailDraw_frag='uniform\x20sampler2D\x20segmentsColorTexture;\x0d\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0d\x0a\x0d\x0auniform\x20sampler2D\x20currentTrailsColor;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0auniform\x20float\x20fadeOpacity;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture2D(segmentsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(currentTrailsColor,\x20textureCoordinate);\x0d\x0a\x0d\x0a\x20\x20\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0\x20*\x20trailsColor)\x20/\x20255.0;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0d\x0a\x0d\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture2D(segmentsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20pointsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20gl_FragDepthEXT\x20=\x20min(pointsDepth,\x20trailsDepth);\x0d\x0a}',screenDraw_frag='uniform\x20sampler2D\x20trailsColorTexture;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(trailsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x20else\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20}\x0d\x0a}',Cesium$4=mars3d__namespace['Cesium'],ParticlesRendering=(function(){function _0x200c46(_0x9cfb91,_0xbcb45e,_0x18e106,_0x2a8a5f,_0x375c13){var _0x2e4045=_0x2b52;_classCallCheck(this,_0x200c46),this['createRenderingTextures'](_0x9cfb91,_0xbcb45e,_0x18e106['colors']),this[_0x2e4045(0xeb)](_0x9cfb91),this[_0x2e4045(0xe9)](_0x9cfb91,_0x18e106,_0x2a8a5f,_0x375c13);}return _createClass(_0x200c46,[{'key':'createRenderingTextures','value':function _0x28bd31(_0x388ef9,_0x58a6f5,_0x39c255){var _0x1f16c1=_0x2b52,_0x156d89={'context':_0x388ef9,'width':_0x388ef9['drawingBufferWidth'],'height':_0x388ef9['drawingBufferHeight'],'pixelFormat':Cesium$4[_0x1f16c1(0x114)]['RGBA'],'pixelDatatype':Cesium$4[_0x1f16c1(0x12f)]['UNSIGNED_BYTE']},_0x1c7570={'context':_0x388ef9,'width':_0x388ef9['drawingBufferWidth'],'height':_0x388ef9['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat'][_0x1f16c1(0x158)],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_INT']},_0x4c0fe2=_0x39c255[_0x1f16c1(0x180)],_0x5c10f4=new Float32Array(_0x4c0fe2*0x3);for(var _0x597fc6=0x0;_0x597fc6<_0x4c0fe2;_0x597fc6++){var _0x387710=Cesium$4['Color']['fromCssColorString'](_0x39c255[_0x597fc6]);_0x5c10f4[0x3*_0x597fc6]=_0x387710[_0x1f16c1(0x179)],_0x5c10f4[0x3*_0x597fc6+0x1]=_0x387710['green'],_0x5c10f4[0x3*_0x597fc6+0x2]=_0x387710[_0x1f16c1(0xc3)];}var _0xad5072={'context':_0x388ef9,'width':_0x4c0fe2,'height':0x1,'pixelFormat':Cesium$4['PixelFormat']['RGB'],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4[_0x1f16c1(0x196)]['LINEAR'],'magnificationFilter':Cesium$4['TextureMagnificationFilter']['LINEAR']})};this['textures']={'segmentsColor':Util['createTexture'](_0x156d89),'segmentsDepth':Util['createTexture'](_0x1c7570),'currentTrailsColor':Util['createTexture'](_0x156d89),'currentTrailsDepth':Util['createTexture'](_0x1c7570),'nextTrailsColor':Util['createTexture'](_0x156d89),'nextTrailsDepth':Util['createTexture'](_0x1c7570),'colorTable':Util['createTexture'](_0xad5072,_0x5c10f4)};}},{'key':'createRenderingFramebuffers','value':function _0x514539(_0x2fab83){var _0x1ebd77=_0x2b52;this['framebuffers']={'segments':Util[_0x1ebd77(0xc5)](_0x2fab83,this['textures']['segmentsColor'],this['textures']['segmentsDepth']),'currentTrails':Util['createFramebuffer'](_0x2fab83,this[_0x1ebd77(0x19f)]['currentTrailsColor'],this['textures']['currentTrailsDepth']),'nextTrails':Util['createFramebuffer'](_0x2fab83,this[_0x1ebd77(0x19f)][_0x1ebd77(0x159)],this['textures']['nextTrailsDepth'])};}},{'key':'createSegmentsGeometry','value':function _0x5b7358(_0x3d005c){var _0x4668df=_0x2b52,_0x34bb56=0x4,_0x1e56ee=[];for(var _0x46a618=0x0;_0x46a618<_0x3d005c['particlesTextureSize'];_0x46a618++){for(var _0x10658f=0x0;_0x10658f<_0x3d005c['particlesTextureSize'];_0x10658f++){for(var _0x3986a4=0x0;_0x3986a4<_0x34bb56;_0x3986a4++){_0x1e56ee['push'](_0x46a618/_0x3d005c['particlesTextureSize']),_0x1e56ee['push'](_0x10658f/_0x3d005c[_0x4668df(0x116)]);}}}_0x1e56ee=new Float32Array(_0x1e56ee);var _0x398f15=[],_0x377e21=[-0x1,0x1],_0x3cb98d=[-0x1,0x1];for(var _0x1e3976=0x0;_0x1e3976<_0x3d005c['maxParticles'];_0x1e3976++){for(var _0x19540b=0x0;_0x19540b<_0x34bb56/0x2;_0x19540b++){for(var _0x55a2de=0x0;_0x55a2de<_0x34bb56/0x2;_0x55a2de++){_0x398f15['push'](_0x377e21[_0x19540b]),_0x398f15[_0x4668df(0x174)](_0x3cb98d[_0x55a2de]),_0x398f15[_0x4668df(0x174)](0x0);}}}_0x398f15=new Float32Array(_0x398f15);var _0x40f480=0x6*_0x3d005c['maxParticles'],_0x3ffeec=new Uint32Array(_0x40f480);for(var _0x1f1ccc=0x0,_0x2a3fb0=0x0,_0x1af62a=0x0;_0x1f1ccc<_0x3d005c[_0x4668df(0x160)];_0x1f1ccc++){_0x3ffeec[_0x2a3fb0++]=_0x1af62a+0x0,_0x3ffeec[_0x2a3fb0++]=_0x1af62a+0x1,_0x3ffeec[_0x2a3fb0++]=_0x1af62a+0x2,_0x3ffeec[_0x2a3fb0++]=_0x1af62a+0x2,_0x3ffeec[_0x2a3fb0++]=_0x1af62a+0x1,_0x3ffeec[_0x2a3fb0++]=_0x1af62a+0x3,_0x1af62a+=0x4;}var _0x4b7358=new Cesium$4[(_0x4668df(0x135))]({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype'][_0x4668df(0x189)],'componentsPerAttribute':0x2,'values':_0x1e56ee}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':_0x398f15})}),'indices':_0x3ffeec});return _0x4b7358;}},{'key':'createRenderingPrimitives','value':function _0x3bfb7e(_0x4f7819,_0x1b8228,_0x5149ad,_0x45c04f){var _0x2ad90b=_0x2b52,_0x387627=this;this[_0x2ad90b(0xfe)]={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'st':0x0,'normal':0x1},'geometry':this['createSegmentsGeometry'](_0x1b8228),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function _0x42fbdb(){var _0x578c21=_0x2ad90b;return _0x45c04f['particlesTextures'][_0x578c21(0x15e)];},'postProcessingPosition':function _0x3ae2a9(){return _0x45c04f['particlesTextures']['postProcessingPosition'];},'postProcessingSpeed':function _0x77189b(){var _0x3b0f64=_0x2ad90b;return _0x45c04f['particlesTextures'][_0x3b0f64(0xc6)];},'colorTable':function _0x101cf2(){return _0x387627['textures']['colorTable'];},'aspect':function _0x2326b3(){return _0x4f7819['drawingBufferWidth']/_0x4f7819['drawingBufferHeight'];},'pixelSize':function _0x58f49a(){return _0x5149ad['pixelSize'];},'lineWidth':function _0x42d70b(){return _0x1b8228['lineWidth'];},'particleHeight':function _0x29c278(){return _0x1b8228['particleHeight'];}},'vertexShaderSource':new Cesium$4[(_0x2ad90b(0x18b))]({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4[(_0x2ad90b(0x18b))]({'sources':[segmentDraw_frag]}),'rawRenderState':Util[_0x2ad90b(0x1a1)]({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this['framebuffers'][_0x2ad90b(0x126)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x2ad90b(0xb6),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x2ad90b(0x106)](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0x28297e(){var _0x5b7432=_0x2ad90b;return _0x387627[_0x5b7432(0x19f)]['segmentsColor'];},'segmentsDepthTexture':function _0x4e6ed7(){var _0x412c92=_0x2ad90b;return _0x387627[_0x412c92(0x19f)][_0x412c92(0x163)];},'currentTrailsColor':function _0x556be1(){return _0x387627['framebuffers']['currentTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x190400(){return _0x387627['framebuffers']['currentTrails']['depthTexture'];},'fadeOpacity':function _0x570055(){var _0x16b2b6=_0x2ad90b;return _0x1b8228[_0x16b2b6(0x136)];}},'vertexShaderSource':new Cesium$4[(_0x2ad90b(0x18b))]({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[trailDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction'][_0x2ad90b(0x152)]},'depthMask':!![]}),'framebuffer':this['framebuffers'][_0x2ad90b(0x105)],'autoClear':!![],'preExecute':function _0x547d4b(){var _0x3bfb45=_0x2ad90b,_0x1c4684=_0x387627['framebuffers']['currentTrails'];_0x387627['framebuffers'][_0x3bfb45(0xd2)]=_0x387627['framebuffers']['nextTrails'],_0x387627['framebuffers']['nextTrails']=_0x1c4684,_0x387627['primitives']['trails']['commandToExecute']['framebuffer']=_0x387627['framebuffers']['nextTrails'],_0x387627['primitives']['trails']['clearCommand']['framebuffer']=_0x387627['framebuffers'][_0x3bfb45(0x105)];}}),'screen':new CustomPrimitive({'commandType':_0x2ad90b(0xb6),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType'][_0x2ad90b(0xb8)],'uniformMap':{'trailsColorTexture':function _0x212e05(){var _0x89fe99=_0x2ad90b;return _0x387627['framebuffers'][_0x89fe99(0x105)]['getColorTexture'](0x0);},'trailsDepthTexture':function _0x5cf5ed(){return _0x387627['framebuffers']['nextTrails']['depthTexture'];}},'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[_0x2ad90b(0x1a1)]({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x200c46;}()),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 _0x5bcf10=_0x44264c;function _0x677f28(_0xc7a8c5,_0x3bcfa7,_0x2aeac9,_0x409400){_classCallCheck(this,_0x677f28),this['data']=_0x3bcfa7,this['createWindTextures'](_0xc7a8c5,_0x3bcfa7),this['createParticlesTextures'](_0xc7a8c5,_0x2aeac9,_0x409400),this['createComputingPrimitives'](_0x3bcfa7,_0x2aeac9,_0x409400);}return _createClass(_0x677f28,[{'key':_0x5bcf10(0x141),'value':function _0x409386(_0x37b0cb,_0x4d6f5b){var _0x355931=_0x5bcf10,_0x101f07={'context':_0x37b0cb,'width':_0x4d6f5b['dimensions']['lon'],'height':_0x4d6f5b['dimensions'][_0x355931(0x190)]*(_0x4d6f5b['dimensions'][_0x355931(0xc4)]||0x1),'pixelFormat':Cesium$3['PixelFormat']['LUMINANCE'],'pixelDatatype':Cesium$3['PixelDatatype'][_0x355931(0x189)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};this['windTextures']={'U':Util['createTexture'](_0x101f07,_0x4d6f5b['U'][_0x355931(0x17e)]),'V':Util['createTexture'](_0x101f07,_0x4d6f5b['V']['array'])};}},{'key':'createParticlesTextures','value':function _0x3b5db9(_0x48f32c,_0x22631c,_0x4fe256){var _0xe3bf5a=_0x5bcf10,_0xef43b8={'context':_0x48f32c,'width':_0x22631c[_0xe3bf5a(0x116)],'height':_0x22631c['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0xe3bf5a(0xb2)],'magnificationFilter':Cesium$3[_0xe3bf5a(0xee)]['NEAREST']})},_0x126358=this['randomizeParticles'](_0x22631c['maxParticles'],_0x4fe256),_0x1f38c7=new Float32Array(0x4*_0x22631c['maxParticles'])['fill'](0x0);this['particlesTextures']={'particlesWind':Util['createTexture'](_0xef43b8),'currentParticlesPosition':Util[_0xe3bf5a(0x10c)](_0xef43b8,_0x126358),'nextParticlesPosition':Util['createTexture'](_0xef43b8,_0x126358),'currentParticlesSpeed':Util['createTexture'](_0xef43b8,_0x1f38c7),'nextParticlesSpeed':Util[_0xe3bf5a(0x10c)](_0xef43b8,_0x1f38c7),'postProcessingPosition':Util['createTexture'](_0xef43b8,_0x126358),'postProcessingSpeed':Util['createTexture'](_0xef43b8,_0x1f38c7)};}},{'key':'randomizeParticles','value':function _0x47a2ba(_0x54687d,_0x5aea0e){var _0xefc74c=_0x5bcf10,_0xf277ac=new Float32Array(0x4*_0x54687d);for(var _0x208322=0x0;_0x208322<_0x54687d;_0x208322++){_0xf277ac[0x4*_0x208322]=Cesium$3[_0xefc74c(0x14b)]['randomBetween'](_0x5aea0e['lonRange']['x'],_0x5aea0e['lonRange']['y']),_0xf277ac[0x4*_0x208322+0x1]=Cesium$3['Math']['randomBetween'](_0x5aea0e['latRange']['x'],_0x5aea0e[_0xefc74c(0xd8)]['y']),_0xf277ac[0x4*_0x208322+0x2]=Cesium$3[_0xefc74c(0x14b)]['randomBetween'](this['data']['lev']['min'],this[_0xefc74c(0x195)]['lev'][_0xefc74c(0xf4)]),_0xf277ac[0x4*_0x208322+0x3]=0x0;}return _0xf277ac;}},{'key':'destroyParticlesTextures','value':function _0x3ed98a(){var _0x184739=_0x5bcf10,_0x177d21=this;Object['keys'](this[_0x184739(0x101)])['forEach'](function(_0x25ba00){var _0xb60f9f=_0x184739;_0x177d21['particlesTextures'][_0x25ba00][_0xb60f9f(0x10f)]();});}},{'key':_0x5bcf10(0x17c),'value':function _0x304099(_0x30206b,_0x4e54ed,_0x8fcce7){var _0x9d8b09=_0x5bcf10,_0x29a20a=new Cesium$3['Cartesian3'](_0x30206b[_0x9d8b09(0x175)]['lon'],_0x30206b[_0x9d8b09(0x175)]['lat'],_0x30206b['dimensions'][_0x9d8b09(0xc4)]),_0x95c836=new Cesium$3['Cartesian3'](_0x30206b['lon']['min'],_0x30206b['lat']['min'],_0x30206b[_0x9d8b09(0xc4)][_0x9d8b09(0x142)]),_0x56f1c9=new Cesium$3['Cartesian3'](_0x30206b[_0x9d8b09(0x102)][_0x9d8b09(0xf4)],_0x30206b['lat'][_0x9d8b09(0xf4)],_0x30206b['lev']['max']),_0xdef723=new Cesium$3['Cartesian3']((_0x56f1c9['x']-_0x95c836['x'])/(_0x29a20a['x']-0x1),(_0x56f1c9['y']-_0x95c836['y'])/(_0x29a20a['y']-0x1),_0x29a20a['z']>0x1?(_0x56f1c9['z']-_0x95c836['z'])/(_0x29a20a['z']-0x1):0x1),_0x4e99ba=new Cesium$3['Cartesian2'](_0x30206b['U']['min'],_0x30206b['U'][_0x9d8b09(0xf4)]),_0x33e60e=new Cesium$3['Cartesian2'](_0x30206b['V']['min'],_0x30206b['V']['max']),_0x28cd12=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':function _0x5dffd3(){return _0x28cd12['windTextures']['U'];},'V':function _0xa1dd66(){var _0x13f2cc=_0x9d8b09;return _0x28cd12[_0x13f2cc(0x11d)]['V'];},'currentParticlesPosition':function _0x1dca39(){return _0x28cd12['particlesTextures']['currentParticlesPosition'];},'dimension':function _0x4f9ef9(){return _0x29a20a;},'minimum':function _0x5b768e(){return _0x95c836;},'maximum':function _0x299480(){return _0x56f1c9;},'interval':function _0x54e61f(){return _0xdef723;}},'fragmentShaderSource':new Cesium$3[(_0x9d8b09(0x18b))]({'sources':[getWind_frag]}),'outputTexture':this['particlesTextures']['particlesWind'],'preExecute':function _0x515b3a(){var _0x15df74=_0x9d8b09;_0x28cd12['primitives']['getWind']['commandToExecute']['outputTexture']=_0x28cd12[_0x15df74(0x101)]['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesSpeed':function _0x2fef56(){return _0x28cd12['particlesTextures']['currentParticlesSpeed'];},'particlesWind':function _0x3927b6(){return _0x28cd12['particlesTextures']['particlesWind'];},'uSpeedRange':function _0x39b224(){return _0x4e99ba;},'vSpeedRange':function _0x500d98(){return _0x33e60e;},'pixelSize':function _0x3da7a0(){return _0x8fcce7['pixelSize'];},'speedFactor':function _0x1114f6(){return _0x4e54ed['speedFactor'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updateSpeed_frag]}),'outputTexture':this['particlesTextures']['nextParticlesSpeed'],'preExecute':function _0x57ae41(){var _0x3c700b=_0x9d8b09,_0x36230c=_0x28cd12['particlesTextures'][_0x3c700b(0x19b)];_0x28cd12['particlesTextures']['currentParticlesSpeed']=_0x28cd12['particlesTextures'][_0x3c700b(0xc6)],_0x28cd12['particlesTextures']['postProcessingSpeed']=_0x36230c,_0x28cd12[_0x3c700b(0xfe)]['updateSpeed']['commandToExecute'][_0x3c700b(0x183)]=_0x28cd12['particlesTextures']['nextParticlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x5dc913(){var _0x19622c=_0x9d8b09;return _0x28cd12[_0x19622c(0x101)]['currentParticlesPosition'];},'currentParticlesSpeed':function _0x57239e(){return _0x28cd12['particlesTextures']['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updatePosition_frag]}),'outputTexture':this[_0x9d8b09(0x101)]['nextParticlesPosition'],'preExecute':function _0x31b542(){var _0x1bfcec=_0x9d8b09,_0x1af1df=_0x28cd12[_0x1bfcec(0x101)]['currentParticlesPosition'];_0x28cd12['particlesTextures'][_0x1bfcec(0x15e)]=_0x28cd12['particlesTextures']['postProcessingPosition'],_0x28cd12[_0x1bfcec(0x101)][_0x1bfcec(0xe6)]=_0x1af1df,_0x28cd12['primitives']['updatePosition']['commandToExecute']['outputTexture']=_0x28cd12[_0x1bfcec(0x101)][_0x1bfcec(0x177)];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0x346d47(){return _0x28cd12['particlesTextures']['nextParticlesPosition'];},'nextParticlesSpeed':function _0x361772(){return _0x28cd12['particlesTextures']['nextParticlesSpeed'];},'lonRange':function _0x32d524(){var _0x18f554=_0x9d8b09;return _0x8fcce7[_0x18f554(0xfc)];},'latRange':function _0x4f8151(){return _0x8fcce7['latRange'];},'randomCoefficient':function _0x12a247(){var _0x4f4090=_0x9d8b09,_0x204ea4=Math[_0x4f4090(0x162)]();return _0x204ea4;},'dropRate':function _0x4eb8cd(){return _0x4e54ed['dropRate'];},'dropRateBump':function _0x19a9b3(){return _0x4e54ed['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':function _0x2ef290(){var _0x436f13=_0x9d8b09;_0x28cd12['primitives'][_0x436f13(0xe6)]['commandToExecute'][_0x436f13(0x183)]=_0x28cd12['particlesTextures'][_0x436f13(0xe6)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0x4022b6(){var _0x2272af=_0x9d8b09;return _0x28cd12[_0x2272af(0x101)][_0x2272af(0xe6)];},'nextParticlesSpeed':function _0x5110f8(){var _0x42dd2e=_0x9d8b09;return _0x28cd12['particlesTextures'][_0x42dd2e(0x172)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingSpeed_frag]}),'outputTexture':this[_0x9d8b09(0x101)]['postProcessingSpeed'],'preExecute':function _0x11d65b(){var _0x1d01f9=_0x9d8b09;_0x28cd12[_0x1d01f9(0xfe)]['postProcessingSpeed']['commandToExecute']['outputTexture']=_0x28cd12['particlesTextures'][_0x1d01f9(0xc6)];}})};}}]),_0x677f28;}()),Cesium$2=mars3d__namespace[_0x44264c(0xbe)],ParticleSystem=(function(){var _0x54d95e=_0x44264c;function _0x4348aa(_0x319b71,_0x3db062,_0x46e5fc,_0x39a507){var _0x5ebc16=_0x2b52;_classCallCheck(this,_0x4348aa),this['context']=_0x319b71,_0x3db062=_objectSpread2({},_0x3db062);if(_0x3db062['udata']&&_0x3db062['vdata']){var _0x38f25e,_0x154114,_0x128e65,_0x51e6b1,_0x34ef6e,_0x1d1c73;_0x3db062[_0x5ebc16(0x175)]={},_0x3db062[_0x5ebc16(0x175)]['lon']=_0x3db062['cols'],_0x3db062['dimensions']['lat']=_0x3db062['rows'],_0x3db062[_0x5ebc16(0x175)]['lev']=_0x3db062['lev']||0x1,_0x3db062['lon']={},_0x3db062['lon']['min']=_0x3db062['xmin'],_0x3db062['lon']['max']=_0x3db062['xmax'],_0x3db062[_0x5ebc16(0x190)]={},_0x3db062['lat']['min']=_0x3db062['ymin'],_0x3db062['lat']['max']=_0x3db062[_0x5ebc16(0xd9)],_0x3db062['lev']={},_0x3db062[_0x5ebc16(0xc4)]['min']=(_0x38f25e=_0x3db062[_0x5ebc16(0x11f)])!==null&&_0x38f25e!==void 0x0?_0x38f25e:0x1,_0x3db062[_0x5ebc16(0xc4)]['max']=(_0x154114=_0x3db062['levmax'])!==null&&_0x154114!==void 0x0?_0x154114:0x1,_0x3db062['U']={},_0x3db062['U']['array']=new Float32Array(_0x3db062['udata']),_0x3db062['U'][_0x5ebc16(0x142)]=(_0x128e65=_0x3db062['umin'])!==null&&_0x128e65!==void 0x0?_0x128e65:Math[_0x5ebc16(0x142)]['apply'](Math,_toConsumableArray(_0x3db062['udata'])),_0x3db062['U']['max']=(_0x51e6b1=_0x3db062['umax'])!==null&&_0x51e6b1!==void 0x0?_0x51e6b1:Math['max']['apply'](Math,_toConsumableArray(_0x3db062['udata'])),_0x3db062['V']={},_0x3db062['V']['array']=new Float32Array(_0x3db062['vdata']),_0x3db062['V']['min']=(_0x34ef6e=_0x3db062['vmin'])!==null&&_0x34ef6e!==void 0x0?_0x34ef6e:Math['min']['apply'](Math,_toConsumableArray(_0x3db062[_0x5ebc16(0x11e)])),_0x3db062['V'][_0x5ebc16(0xf4)]=(_0x1d1c73=_0x3db062['vmax'])!==null&&_0x1d1c73!==void 0x0?_0x1d1c73:Math[_0x5ebc16(0xf4)]['apply'](Math,_toConsumableArray(_0x3db062[_0x5ebc16(0x11e)]));}this['data']=_0x3db062,this['options']=_0x46e5fc,this['viewerParameters']=_0x39a507,this['particlesComputing']=new ParticlesComputing(this[_0x5ebc16(0x199)],this['data'],this['options'],this['viewerParameters']),this[_0x5ebc16(0xf1)]=new ParticlesRendering(this['context'],this['data'],this['options'],this[_0x5ebc16(0x19d)],this['particlesComputing']);}return _createClass(_0x4348aa,[{'key':'canvasResize','value':function _0x3925b7(_0x5803f0){var _0x367e4b=_0x2b52,_0x10368b=this;this[_0x367e4b(0x166)]['destroyParticlesTextures'](),Object[_0x367e4b(0x110)](this[_0x367e4b(0x166)]['windTextures'])['forEach'](function(_0x3a98db){_0x10368b['particlesComputing']['windTextures'][_0x3a98db]['destroy']();}),this['particlesRendering'][_0x367e4b(0x19f)]['colorTable']['destroy'](),Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](function(_0x3a4f28){var _0x2dfc16=_0x367e4b;_0x10368b[_0x2dfc16(0xf1)]['framebuffers'][_0x3a4f28]['destroy']();}),this['context']=_0x5803f0,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this[_0x367e4b(0x19d)]),this['particlesRendering']=new ParticlesRendering(this[_0x367e4b(0x199)],this[_0x367e4b(0x195)],this['options'],this['viewerParameters'],this['particlesComputing']);}},{'key':_0x54d95e(0x10b),'value':function _0x10d7d1(){var _0x1c763b=_0x54d95e,_0x28553d=this,_0x4bc191=new Cesium$2['ClearCommand']({'color':new Cesium$2[(_0x1c763b(0x187))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass'][_0x1c763b(0xc2)]});Object['keys'](this['particlesRendering'][_0x1c763b(0x156)])['forEach'](function(_0x315b91){var _0x12df62=_0x1c763b;_0x4bc191['framebuffer']=_0x28553d['particlesRendering']['framebuffers'][_0x315b91],_0x4bc191[_0x12df62(0xdb)](_0x28553d[_0x12df62(0x199)]);});}},{'key':_0x54d95e(0xc9),'value':function _0x3c331d(_0x487036){var _0x55b4ba=_0x54d95e;this['clearFramebuffers'](),this[_0x55b4ba(0x166)]['destroyParticlesTextures'](),this[_0x55b4ba(0x166)]['createParticlesTextures'](this['context'],this['options'],this['viewerParameters']);if(_0x487036){var _0xfb681d=this['particlesRendering']['createSegmentsGeometry'](this['options']);this['particlesRendering']['primitives']['segments']['geometry']=_0xfb681d;var _0x44dfcd=Cesium$2[_0x55b4ba(0x129)][_0x55b4ba(0xb0)]({'context':this['context'],'geometry':_0xfb681d,'attributeLocations':this['particlesRendering']['primitives']['segments']['attributeLocations'],'bufferUsage':Cesium$2['BufferUsage']['STATIC_DRAW']});this['particlesRendering'][_0x55b4ba(0xfe)]['segments']['commandToExecute']['vertexArray']=_0x44dfcd;}}},{'key':'setOptions','value':function _0x59e873(_0x4c876e){var _0x158fea=_0x54d95e,_0x4d84a6=this,_0x30092c=![];this['options']['maxParticles']!==_0x4c876e['maxParticles']&&(_0x30092c=!![]),Object[_0x158fea(0x110)](_0x4c876e)[_0x158fea(0x18e)](function(_0x393026){_0x4d84a6['options'][_0x393026]=_0x4c876e[_0x393026];}),this['refreshParticles'](_0x30092c);}},{'key':_0x54d95e(0xa8),'value':function _0x454c2d(_0x19de38){var _0xa53b3a=this;Object['keys'](_0x19de38)['forEach'](function(_0x4a1414){var _0x12af9c=_0x2b52;_0xa53b3a[_0x12af9c(0x19d)][_0x4a1414]=_0x19de38[_0x4a1414];}),this['refreshParticles'](![]);}},{'key':'destroy','value':function _0x41ac7a(){var _0x44ee74=_0x54d95e,_0x2aa7c6=this;clearTimeout(this['canrefresh']),this['particlesComputing']['destroyParticlesTextures'](),Object[_0x44ee74(0x110)](this[_0x44ee74(0x166)]['windTextures'])['forEach'](function(_0x55fb2c){_0x2aa7c6['particlesComputing']['windTextures'][_0x55fb2c]['destroy']();}),this[_0x44ee74(0xf1)]['textures']['colorTable']['destroy'](),Object['keys'](this['particlesRendering']['framebuffers'])[_0x44ee74(0x18e)](function(_0xa47f07){_0x2aa7c6['particlesRendering']['framebuffers'][_0xa47f07]['destroy']();});for(var _0x3f0712 in this){delete this[_0x3f0712];}}}]),_0x4348aa;}()),Cesium$1=mars3d__namespace[_0x44264c(0xbe)],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(_0x2449e1){var _0x35de6f=_0x44264c;_inherits(_0x1ee51e,_0x2449e1);var _0x14ccb8=_createSuper(_0x1ee51e);function _0x1ee51e(){var _0xc22d13,_0x5a898a=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x1ee51e),_0x5a898a=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x5a898a),_0xc22d13=_0x14ccb8['call'](this,_0x5a898a),_0xc22d13['_setOptionsHook'](_0x5a898a),_0xc22d13;}return _createClass(_0x1ee51e,[{'key':'layer','get':function _0x5b5d21(){return this['primitives'];}},{'key':_0x35de6f(0x195),'get':function _0x15a5a5(){return this['_data'];},'set':function _0x1ced05(_0x394db9){var _0x42e3ea=_0x35de6f;this[_0x42e3ea(0x140)](_0x394db9);}},{'key':'colors','get':function _0x10fe0a(){var _0x438570=_0x35de6f;return this[_0x438570(0x15d)]['colors'];},'set':function _0x14f49d(_0x558d82){var _0x4e8ac5=_0x35de6f;this['options']['colors']=_0x558d82,this[_0x4e8ac5(0x11a)]&&this[_0x4e8ac5(0x11a)]['setOptions']({'colors':_0x558d82}),this['resize']();}},{'key':'_mountedHook','value':function _0x13b5fa(){}},{'key':'_addedHook','value':function _0x443917(){var _0x435404=_0x35de6f;this['scene']=this['_map']['scene'],this['camera']=this['_map']['camera'],this['primitives']=new Cesium$1[(_0x435404(0x178))](),this[_0x435404(0x155)]['scene'][_0x435404(0xfe)]['add'](this['primitives']),this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0},this['globeBoundingSphere']=new Cesium$1[(_0x435404(0x1a8))](Cesium$1[_0x435404(0x107)][_0x435404(0xc7)],0.99*0x615299),this['updateViewerParameters'](),window['addEventListener']('resize',this['resize']['bind'](this),![]),this[_0x435404(0xba)]=![],this['mouse_move']=![],this[_0x435404(0x155)]['on'](mars3d__namespace['EventType']['wheel'],this[_0x435404(0x194)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x435404(0xd5)],this),this[_0x435404(0x155)]['on'](mars3d__namespace['EventType'][_0x435404(0x17b)],this['_onMouseUpEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this[_0x435404(0x188)],this),this[_0x435404(0x1a0)]&&this['setData'](this['_data']);}},{'key':'_removedHook','value':function _0x45e10c(){var _0x15b829=_0x35de6f;window['removeEventListener'](_0x15b829(0xb3),this[_0x15b829(0xb3)]),this['_map'][_0x15b829(0x14a)](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this),this['_map'][_0x15b829(0x14a)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x15b829(0x155)]['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x15b829(0x17b)],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['primitives']['removeAll'](),this[_0x15b829(0x155)]['scene']['primitives']['remove'](this['primitives']);}},{'key':'resize','value':function _0x44c907(){var _0x23b4ba=_0x35de6f;if(!this[_0x23b4ba(0x119)]||!this['particleSystem'])return;this['primitives']['show']=![],this[_0x23b4ba(0xfe)]['removeAll'](),this[_0x23b4ba(0x155)]['once'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this);}},{'key':_0x35de6f(0x164),'value':function _0x5f18e2(_0x1444fa){var _0x500c6c=_0x35de6f;this[_0x500c6c(0x11a)]['canvasResize'](this['scene']['context']),this[_0x500c6c(0xd7)](),this['primitives']['show']=!![];}},{'key':_0x35de6f(0x194),'value':function _0x3aa64e(_0x4a20e0){var _0x1b4595=_0x35de6f,_0x18854b=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['particleSystem'])return;this['primitives']['show']=![],this[_0x1b4595(0x17f)]=setTimeout(function(){var _0x2034f4=_0x1b4595;if(!_0x18854b['show'])return;_0x18854b[_0x2034f4(0x134)]();},0xc8);}},{'key':_0x35de6f(0xd5),'value':function _0xb06899(_0x5b74d3){this['mouse_down']=!![];}},{'key':_0x35de6f(0x188),'value':function _0x472bf9(_0x5d45b5){if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&(this['primitives']['show']=![],this['mouse_move']=!![]);}},{'key':_0x35de6f(0x13b),'value':function _0x303cba(_0x9f81e9){var _0x24d727=_0x35de6f;if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['primitives'][_0x24d727(0x119)]=!![],this['mouse_down']=![],this[_0x24d727(0x128)]=![];}},{'key':'redraw','value':function _0x4a5023(){var _0x85f974=_0x35de6f;if(!this[_0x85f974(0x155)]||!this[_0x85f974(0x119)])return;this[_0x85f974(0xcb)](),this['particleSystem']['applyViewerParameters'](this[_0x85f974(0x19d)]),this['primitives']['show']=!![];}},{'key':'setData','value':function _0x3d8139(_0x423650){var _0x5c552b=_0x35de6f;this[_0x5c552b(0x1a0)]=_0x423650,this['particleSystem']&&this[_0x5c552b(0x11a)]['destroy'](),this['particleSystem']=new ParticleSystem(this[_0x5c552b(0xea)]['context'],_0x423650,this[_0x5c552b(0xaa)](),this['viewerParameters']),this[_0x5c552b(0xd7)]();}},{'key':'_setOptionsHook','value':function _0x1c7fbf(_0x2a61e6,_0x3c21f0){var _0x3b7142=_0x35de6f;if(_0x2a61e6)for(var _0x310d60 in _0x2a61e6){this[_0x310d60]=_0x2a61e6[_0x310d60];}this[_0x3b7142(0x11a)]&&this['particleSystem']['setOptions'](this['getOptions']());}},{'key':_0x35de6f(0xaa),'value':function _0x138040(){var _0x395f16=_0x35de6f,_0x3f061b=Math[_0x395f16(0x146)](Math[_0x395f16(0x138)](this['particlesNumber']));return this['particlesNumber']=_0x3f061b*_0x3f061b,{'particlesTextureSize':_0x3f061b,'maxParticles':this[_0x395f16(0x167)],'particleHeight':this['fixedHeight'],'fadeOpacity':this['fadeOpacity'],'dropRate':this['dropRate'],'dropRateBump':this[_0x395f16(0xcd)],'speedFactor':this['speedFactor'],'lineWidth':this['lineWidth'],'colors':this[_0x395f16(0x17a)]};}},{'key':_0x35de6f(0xd7),'value':function _0x2046e2(){var _0x70f007=_0x35de6f;this['primitives'][_0x70f007(0x18f)](this[_0x70f007(0x11a)]['particlesComputing'][_0x70f007(0xfe)][_0x70f007(0x13c)]),this['primitives']['add'](this['particleSystem'][_0x70f007(0x166)]['primitives']['updateSpeed']),this['primitives']['add'](this['particleSystem'][_0x70f007(0x166)][_0x70f007(0xfe)]['updatePosition']),this['primitives'][_0x70f007(0x18f)](this['particleSystem']['particlesComputing'][_0x70f007(0xfe)]['postProcessingPosition']),this['primitives']['add'](this[_0x70f007(0x11a)]['particlesComputing']['primitives']['postProcessingSpeed']),this[_0x70f007(0xfe)]['add'](this[_0x70f007(0x11a)][_0x70f007(0xf1)]['primitives']['segments']),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['trails']),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['screen']);}},{'key':'updateViewerParameters','value':function _0x54b8a5(){var _0x5392cc=_0x35de6f,_0x27e46d=this[_0x5392cc(0x125)]['computeViewRectangle'](this[_0x5392cc(0xea)]['globe'][_0x5392cc(0x18a)]);if(!_0x27e46d){var _0x1f95ee=this[_0x5392cc(0x155)][_0x5392cc(0x11b)]();_0x27e46d=Cesium$1['Rectangle'][_0x5392cc(0x1a7)](_0x1f95ee['xmin'],_0x1f95ee['ymin'],_0x1f95ee['xmax'],_0x1f95ee[_0x5392cc(0xd9)]);}var _0xbafa7e=Util[_0x5392cc(0x13a)](_0x27e46d);this['viewerParameters'][_0x5392cc(0xfc)]['x']=_0xbafa7e[_0x5392cc(0x102)][_0x5392cc(0x142)],this['viewerParameters'][_0x5392cc(0xfc)]['y']=_0xbafa7e['lon']['max'],this[_0x5392cc(0x19d)]['latRange']['x']=_0xbafa7e['lat']['min'],this['viewerParameters']['latRange']['y']=_0xbafa7e['lat']['max'];var _0x5bb998=this['camera'][_0x5392cc(0x192)](this['globeBoundingSphere'],this['scene']['drawingBufferWidth'],this['scene'][_0x5392cc(0x132)]);_0x5bb998>0x0&&(this['viewerParameters'][_0x5392cc(0xb4)]=_0x5bb998);}}]),_0x1ee51e;}(BaseLayer$1);mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){function _0x2c1e02(){var _0x3e6c27=_0x2b52;_classCallCheck(this,_0x2c1e02),this[_0x3e6c27(0xbd)]=null,this['lat']=null,this['tlng']=null,this[_0x3e6c27(0x121)]=null,this['age']=null;}return _createClass(_0x2c1e02,[{'key':'destroy','value':function _0x3d8fde(){for(var _0x1e250f in this){delete this[_0x1e250f];}}}]),_0x2c1e02;}()),CanvasWindField=(function(){var _0x36dad1=_0x44264c;function _0x38d7d2(_0x73cbce){_classCallCheck(this,_0x38d7d2),this['setOptions'](_0x73cbce);}return _createClass(_0x38d7d2,[{'key':'speedRate','get':function _0x3300f5(){return this['_speedRate'];},'set':function _0x247618(_0x4ae553){var _0x186ce1=_0x2b52;this[_0x186ce1(0xe0)]=(0x64-(_0x4ae553>0x63?0x63:_0x4ae553))*0x64,this['_calc_speedRate']=[(this[_0x186ce1(0x118)]-this['xmin'])/this[_0x186ce1(0xe0)],(this[_0x186ce1(0xd9)]-this[_0x186ce1(0xab)])/this[_0x186ce1(0xe0)]];}},{'key':'maxAge','get':function _0x17f6f9(){return this['_maxAge'];},'set':function _0x480600(_0x53ce8e){this['_maxAge']=_0x53ce8e;}},{'key':_0x36dad1(0x147),'value':function _0x4f7d4c(_0x56770d){var _0x13d8d0=_0x36dad1;this['options']=_0x56770d,this['maxAge']=_0x56770d[_0x13d8d0(0xfb)]||0x78,this['speedRate']=_0x56770d['speedRate']||0x32,this['particles']=[];var _0x82651d=_0x56770d['particlesNumber']||0x1000;for(var _0x78825f=0x0;_0x78825f<_0x82651d;_0x78825f++){var _0x60a0b8=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0x60a0b8);}}},{'key':'setDate','value':function _0x501890(_0x239fc3){var _0x27d805=_0x36dad1;this['rows']=_0x239fc3[_0x27d805(0xe4)],this['cols']=_0x239fc3['cols'],this['xmin']=_0x239fc3['xmin'],this[_0x27d805(0x118)]=_0x239fc3['xmax'],this['ymin']=_0x239fc3[_0x27d805(0xab)],this['ymax']=_0x239fc3['ymax'],this[_0x27d805(0x16b)]=[];var _0x2e09b5=_0x239fc3['udata'],_0x50b35c=_0x239fc3['vdata'],_0x5db9c2=![];_0x2e09b5[_0x27d805(0x180)]===this['rows']&&_0x2e09b5[0x0][_0x27d805(0x180)]===this[_0x27d805(0x169)]&&(_0x5db9c2=!![]);var _0x1dc15a=0x0,_0x2bfe2e=null,_0x5ca090=null;for(var _0x275e11=0x0;_0x275e11<this['rows'];_0x275e11++){_0x2bfe2e=[];for(var _0x1d481e=0x0;_0x1d481e<this['cols'];_0x1d481e++,_0x1dc15a++){_0x5db9c2?_0x5ca090=this['_calcUV'](_0x2e09b5[_0x275e11][_0x1d481e],_0x50b35c[_0x275e11][_0x1d481e]):_0x5ca090=this['_calcUV'](_0x2e09b5[_0x1dc15a],_0x50b35c[_0x1dc15a]),_0x2bfe2e['push'](_0x5ca090);}this['grid']['push'](_0x2bfe2e);}this['options']['reverseY']&&this[_0x27d805(0x16b)]['reverse']();}},{'key':_0x36dad1(0x12c),'value':function _0x4df59d(){var _0x576d5e=_0x36dad1;delete this['rows'],delete this[_0x576d5e(0x169)],delete this['xmin'],delete this['xmax'],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this['particles'];}},{'key':'toGridXY','value':function _0x467433(_0x2570b3,_0x55ebb2){var _0x1b6ffa=_0x36dad1,_0x327b4b=(_0x2570b3-this['xmin'])/(this['xmax']-this[_0x1b6ffa(0x19e)])*(this['cols']-0x1),_0x1d506e=(this[_0x1b6ffa(0xd9)]-_0x55ebb2)/(this['ymax']-this[_0x1b6ffa(0xab)])*(this['rows']-0x1);return[_0x327b4b,_0x1d506e];}},{'key':'getUVByXY','value':function _0x33220b(_0x427049,_0x352143){var _0x4d3d09=_0x36dad1;if(_0x427049<0x0||_0x427049>=this['cols']||_0x352143>=this['rows'])return[0x0,0x0,0x0];var _0x1f8bed=Math['floor'](_0x427049),_0x1fc6cd=Math[_0x4d3d09(0x137)](_0x352143);if(_0x1f8bed===_0x427049&&_0x1fc6cd===_0x352143)return this[_0x4d3d09(0x16b)][_0x352143][_0x427049];var _0x274487=_0x1f8bed+0x1,_0x1a1688=_0x1fc6cd+0x1,_0x2ba883=this[_0x4d3d09(0x10d)](_0x1f8bed,_0x1fc6cd),_0x201544=this['getUVByXY'](_0x274487,_0x1fc6cd),_0x114498=this['getUVByXY'](_0x1f8bed,_0x1a1688),_0x536669=this['getUVByXY'](_0x274487,_0x1a1688),_0x5b5334=null;try{_0x5b5334=this['_bilinearInterpolation'](_0x427049-_0x1f8bed,_0x352143-_0x1fc6cd,_0x2ba883,_0x201544,_0x114498,_0x536669);}catch(_0x3a2209){console['log'](_0x427049,_0x352143);}return _0x5b5334;}},{'key':'_bilinearInterpolation','value':function _0x2519b7(_0x3216b9,_0x3ce678,_0x235f19,_0x416b1d,_0xbbbb36,_0x335f4d){var _0x3ac4d8=_0x36dad1,_0x283750=0x1-_0x3216b9,_0x493e1c=0x1-_0x3ce678,_0x461f30=_0x283750*_0x493e1c,_0x45179b=_0x3216b9*_0x493e1c,_0x16d137=_0x283750*_0x3ce678,_0x51f241=_0x3216b9*_0x3ce678,_0x3eaf89=_0x235f19[0x0]*_0x461f30+_0x416b1d[0x0]*_0x45179b+_0xbbbb36[0x0]*_0x16d137+_0x335f4d[0x0]*_0x51f241,_0x22a94f=_0x235f19[0x1]*_0x461f30+_0x416b1d[0x1]*_0x45179b+_0xbbbb36[0x1]*_0x16d137+_0x335f4d[0x1]*_0x51f241;return this[_0x3ac4d8(0xb9)](_0x3eaf89,_0x22a94f);}},{'key':_0x36dad1(0xb9),'value':function _0x7e4a84(_0x47dd79,_0x415137){return[+_0x47dd79,+_0x415137,Math['sqrt'](_0x47dd79*_0x47dd79+_0x415137*_0x415137)];}},{'key':'getUVByPoint','value':function _0x10519f(_0x225409,_0x48df61){if(!this['isInExtent'](_0x225409,_0x48df61))return null;var _0xc6e884=this['toGridXY'](_0x225409,_0x48df61),_0x38be3a=this['getUVByXY'](_0xc6e884[0x0],_0xc6e884[0x1]);return _0x38be3a;}},{'key':'isInExtent','value':function _0x4e192f(_0x5a31d4,_0x9e129e){var _0x445ae6=_0x36dad1;return _0x5a31d4>=this[_0x445ae6(0x19e)]&&_0x5a31d4<=this['xmax']&&_0x9e129e>=this['ymin']&&_0x9e129e<=this['ymax']?!![]:![];}},{'key':_0x36dad1(0xe5),'value':function _0x72a32d(){var _0x4be634=fRandomByfloat(this['xmin'],this['xmax']),_0xff27bf=fRandomByfloat(this['ymin'],this['ymax']);return{'lat':_0xff27bf,'lng':_0x4be634};}},{'key':_0x36dad1(0x120),'value':function _0x1f012e(){var _0x54593a=_0x36dad1,_0x1f6251,_0x392219,_0x26bf4c;for(var _0x286361=0x0,_0x408cd1=this['particles']['length'];_0x286361<_0x408cd1;_0x286361++){var _0x175dfe=this['particles'][_0x286361];_0x175dfe['age']<=0x0&&(_0x175dfe=this[_0x54593a(0x108)](_0x175dfe));if(_0x175dfe['age']>0x0){var _0x4ebe4d=_0x175dfe['tlng'],_0x435c56=_0x175dfe[_0x54593a(0x121)];_0x26bf4c=this['getUVByPoint'](_0x4ebe4d,_0x435c56),_0x26bf4c?(_0x1f6251=_0x4ebe4d+this['_calc_speedRate'][0x0]*_0x26bf4c[0x0],_0x392219=_0x435c56+this['_calc_speedRate'][0x1]*_0x26bf4c[0x1],_0x175dfe['lng']=_0x4ebe4d,_0x175dfe['lat']=_0x435c56,_0x175dfe[_0x54593a(0xc1)]=_0x1f6251,_0x175dfe[_0x54593a(0x121)]=_0x392219,_0x175dfe[_0x54593a(0x168)]--):_0x175dfe['age']=0x0;}}return this['particles'];}},{'key':'_randomParticle','value':function _0x817a8a(_0x571f88){var _0x2162af=_0x36dad1,_0x783dbd,_0x386a90;for(var _0x517fd0=0x0;_0x517fd0<0x1e;_0x517fd0++){_0x783dbd=this['getRandomLatLng'](),_0x386a90=this['getUVByPoint'](_0x783dbd['lng'],_0x783dbd['lat']);if(_0x386a90&&_0x386a90[0x2]>0x0)break;}if(!_0x386a90)return _0x571f88;var _0x5c266b=_0x783dbd['lng']+this['_calc_speedRate'][0x0]*_0x386a90[0x0],_0x5c1460=_0x783dbd['lat']+this['_calc_speedRate'][0x1]*_0x386a90[0x1];return _0x571f88['lng']=_0x783dbd[_0x2162af(0xbd)],_0x571f88['lat']=_0x783dbd[_0x2162af(0x190)],_0x571f88['tlng']=_0x5c266b,_0x571f88['tlat']=_0x5c1460,_0x571f88['age']=Math['round'](Math['random']()*this[_0x2162af(0xfb)]),_0x571f88;}},{'key':'destroy','value':function _0x37a329(){for(var _0x3763b8 in this){delete this[_0x3763b8];}}}]),_0x38d7d2;}());function fRandomByfloat(_0x5cfd0d,_0xeaa31c){return _0x5cfd0d+Math['random']()*(_0xeaa31c-_0x5cfd0d);}var Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'],CanvasWindLayer=function(_0x2611d6){var _0xb800f3=_0x44264c;_inherits(_0x39a98c,_0x2611d6);var _0x464620=_createSuper(_0x39a98c);function _0x39a98c(){var _0x2eeeb6=_0x2b52,_0x5c6905,_0x1c1b2a=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x39a98c),_0x5c6905=_0x464620['call'](this,_0x1c1b2a),_0x5c6905['_setOptionsHook'](_0x1c1b2a),_0x5c6905[_0x2eeeb6(0x112)]=null,_0x5c6905;}return _createClass(_0x39a98c,[{'key':'_setOptionsHook','value':function _0x2fc3dc(_0x3c24c6,_0x35273e){var _0x3ec390=_0x2b52,_0x2cd29c,_0x22412b,_0x2ffd4a;this[_0x3ec390(0x1a2)]=0x3e8/(_0x3c24c6['frameRate']||0xa),this['_pointerEvents']=(_0x2cd29c=this['options'][_0x3ec390(0xd6)])!==null&&_0x2cd29c!==void 0x0?_0x2cd29c:![],this['color']=_0x3c24c6['color']||'#ffffff',this[_0x3ec390(0x16d)]=_0x3c24c6[_0x3ec390(0x16d)]||0x1,this['fixedHeight']=(_0x22412b=_0x3c24c6['fixedHeight'])!==null&&_0x22412b!==void 0x0?_0x22412b:0x0,this['reverseY']=(_0x2ffd4a=_0x3c24c6[_0x3ec390(0x12a)])!==null&&_0x2ffd4a!==void 0x0?_0x2ffd4a:![],this[_0x3ec390(0x133)]&&this['windField']['setOptions'](_0x3c24c6);}},{'key':'layer','get':function _0x3c2fc3(){var _0xf5e393=_0x2b52;return this[_0xf5e393(0x112)];}},{'key':'canvasWidth','get':function _0xc31cf5(){return this['_map']['scene']['canvas']['clientWidth'];}},{'key':_0xb800f3(0x10e),'get':function _0x5c8a76(){var _0x1d3dcf=_0xb800f3;return this[_0x1d3dcf(0x155)]['scene']['canvas']['clientHeight'];}},{'key':'pointerEvents','get':function _0x467033(){return this['_pointerEvents'];},'set':function _0x3a0605(_0x131754){var _0x4bc9c6=_0xb800f3;this['_pointerEvents']=_0x131754;if(!this[_0x4bc9c6(0x112)])return;_0x131754?this['canvas']['style'][_0x4bc9c6(0x181)]='all':this['canvas']['style']['pointer-events']='none';}},{'key':'particlesNumber','get':function _0x397185(){return this['options']['particlesNumber'];},'set':function _0x1e9b98(_0x25d3ee){var _0x54f4d1=_0xb800f3,_0x23c30d=this;this[_0x54f4d1(0x15d)]['particlesNumber']=_0x25d3ee,clearTimeout(this[_0x54f4d1(0xb7)]),this[_0x54f4d1(0xb7)]=setTimeout(function(){_0x23c30d['redraw']();},0x1f4);}},{'key':_0xb800f3(0x17d),'get':function _0x22329e(){var _0x13af93=_0xb800f3;return this[_0x13af93(0x15d)]['speedRate'];},'set':function _0x456413(_0x8bea42){var _0x42c9e2=_0xb800f3;this['options']['speedRate']=_0x8bea42,this['windField']&&(this[_0x42c9e2(0x133)][_0x42c9e2(0x17d)]=_0x8bea42);}},{'key':'maxAge','get':function _0x2e833f(){return this['options']['maxAge'];},'set':function _0x31bb54(_0x33db4e){var _0x396ecf=_0xb800f3;this['options'][_0x396ecf(0xfb)]=_0x33db4e,this['windField']&&(this[_0x396ecf(0x133)][_0x396ecf(0xfb)]=_0x33db4e);}},{'key':'data','get':function _0x4eaa98(){return this['windData'];},'set':function _0x13a9cf(_0x24fc77){this['setData'](_0x24fc77);}},{'key':'_showHook','value':function _0x5876b8(_0x46032e){var _0x151199=_0xb800f3;_0x46032e?this[_0x151199(0x16f)]():(this['windData']&&(this['options'][_0x151199(0x195)]=this['windData']),this['_removedHook']());}},{'key':_0xb800f3(0xad),'value':function _0x13cbf9(){var _0x114f73=_0xb800f3;this['options']['worker']?this[_0x114f73(0x151)]():this['windField']=new CanvasWindField(this['options']);}},{'key':'_addedHook','value':function _0x3a918e(){var _0x25803d=_0xb800f3;this[_0x25803d(0x112)]=this['_createCanvas'](),this['canvasContext']=this['canvas']['getContext']('2d',{'willReadFrequently':!![]}),this['bindEvent'](),this['options'][_0x25803d(0x195)]&&this[_0x25803d(0x140)](this['options']['data']);}},{'key':'_removedHook','value':function _0x2622aa(){var _0x199b60=_0xb800f3;this[_0x199b60(0x12c)](),this['unbindEvent'](),this[_0x199b60(0x112)]&&(this[_0x199b60(0x155)]['container']['removeChild'](this[_0x199b60(0x112)]),delete this['canvas']);}},{'key':_0xb800f3(0xf8),'value':function _0x292c2a(){var _0x33de31=_0xb800f3,_0x491d82=document['createElement'](_0x33de31(0x112));_0x491d82['style']['position']=_0x33de31(0x185),_0x491d82[_0x33de31(0x111)][_0x33de31(0x171)]='0px',_0x491d82['style'][_0x33de31(0x154)]=_0x33de31(0x104),_0x491d82['style']['width']='100%',_0x491d82['style']['height']=_0x33de31(0xd1),_0x491d82[_0x33de31(0x111)]['pointerEvents']=this['_pointerEvents']?_0x33de31(0x182):'none',_0x491d82['style']['zIndex']=0xa,_0x491d82['setAttribute']('id',_0x33de31(0x13e)),_0x491d82['setAttribute']('class','canvasWindy'),this['_map']['container']['appendChild'](_0x491d82);var _0x6aa27b=this['_map']['scene'];return _0x491d82['width']=_0x6aa27b['canvas']['clientWidth'],_0x491d82['height']=_0x6aa27b['canvas'][_0x33de31(0x14e)],_0x491d82;}},{'key':'resize','value':function _0x44eff7(){var _0x45b85f=_0xb800f3;this['canvas']&&(this['canvas']['width']=this['canvasWidth'],this['canvas']['height']=this[_0x45b85f(0x10e)]);}},{'key':'bindEvent','value':function _0x36f41a(){var _0x1c7064=_0xb800f3,_0x14d6ab=this,_0x1e4bc9=Date['now']();(function _0x23b1e8(){var _0x1624c2=_0x2b52;_0x14d6ab['animateFrame']=window['requestAnimationFrame'](_0x23b1e8);if(_0x14d6ab['show']&&_0x14d6ab['windField']){var _0x28d6a6=Date['now'](),_0x3e778d=_0x28d6a6-_0x1e4bc9;_0x3e778d>_0x14d6ab['frameTime']&&(_0x1e4bc9=_0x28d6a6-_0x3e778d%_0x14d6ab[_0x1624c2(0x1a2)],_0x14d6ab['update']());}}(),window['addEventListener'](_0x1c7064(0xb3),this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this[_0x1c7064(0x155)]['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x1c7064(0x197)]['mouseDown'],this[_0x1c7064(0xd5)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this)));}},{'key':'unbindEvent','value':function _0x47800e(){var _0x2aa072=_0xb800f3;window['cancelAnimationFrame'](this['animateFrame']),delete this[_0x2aa072(0xf5)],window['removeEventListener']('resize',this[_0x2aa072(0xb3)]),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x2aa072(0x197)][_0x2aa072(0x122)],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x2aa072(0x1a6)],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this[_0x2aa072(0x155)][_0x2aa072(0x14a)](mars3d__namespace['EventType'][_0x2aa072(0x123)],this[_0x2aa072(0x188)],this));}},{'key':'_onMapWhellEvent','value':function _0x452fd6(_0x470e75){var _0x4d814e=_0xb800f3,_0x1e7333=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x4d814e(0x112)])return;this['canvas']['style']['visibility']=_0x4d814e(0x115),this['refreshTimer']=setTimeout(function(){var _0x45779f=_0x4d814e;if(!_0x1e7333[_0x45779f(0x119)])return;_0x1e7333['redraw'](),_0x1e7333['canvas']['style']['visibility']='visible';},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x58bf5b(_0x5d5cc0){var _0x468e2c=_0xb800f3;this['mouse_down']=!![],this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x468e2c(0x188)],this),this[_0x468e2c(0x155)]['on'](mars3d__namespace[_0x468e2c(0x197)]['mouseMove'],this['_onMouseMoveEvent'],this);}},{'key':'_onMouseMoveEvent','value':function _0x1be5ee(_0x29f22b){var _0x52767d=_0xb800f3;if(!this[_0x52767d(0x119)]||!this[_0x52767d(0x112)])return;this[_0x52767d(0xba)]&&(this['canvas']['style'][_0x52767d(0x145)]='hidden',this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0xad6861(_0x2e4800){var _0x357975=_0xb800f3;if(!this['show']||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['mouse_down']&&this[_0x357975(0x128)]&&this['redraw'](),this['canvas'][_0x357975(0x111)][_0x357975(0x145)]='visible',this['mouse_down']=![],this[_0x357975(0x128)]=![];}},{'key':'setData','value':function _0x214bd2(_0x742a3e){var _0xfa25b6=_0xb800f3;this[_0xfa25b6(0x12c)](),this[_0xfa25b6(0x157)]=_0x742a3e,this['windField'][_0xfa25b6(0x153)](_0x742a3e),this['redraw']();}},{'key':'redraw','value':function _0x2bd523(){var _0x5467d7=_0xb800f3;if(!this['show'])return;this[_0x5467d7(0x133)][_0x5467d7(0x147)](this['options']),this[_0x5467d7(0xac)]();}},{'key':_0xb800f3(0xac),'value':function _0x1500a2(){var _0x10c608=_0xb800f3;if(this['_updateIng'])return;this['_updateIng']=!![];if(this['worker'])this[_0x10c608(0x133)]['update']();else{var _0x303a27=this[_0x10c608(0x133)]['getParticles']();this['_drawLines'](_0x303a27);}this['_updateIng']=![];}},{'key':_0xb800f3(0x173),'value':function _0x350f21(_0x5a079c){var _0x41be61=_0xb800f3;this['canvasContext'][_0x41be61(0xc0)]='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this[_0x41be61(0xdf)],this['canvasHeight']),this['canvasContext'][_0x41be61(0xc0)]='lighter',this[_0x41be61(0xed)][_0x41be61(0xfd)]=0.9,this['canvasContext'][_0x41be61(0xf2)](),this['canvasContext'][_0x41be61(0x16d)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this['color'];var _0xab8f04=this['_map']['scene'][_0x41be61(0xf3)]!==Cesium['SceneMode'][_0x41be61(0x13f)];for(var _0x3d6867=0x0,_0x4f48c7=_0x5a079c[_0x41be61(0x180)];_0x3d6867<_0x4f48c7;_0x3d6867++){var _0xe4546=_0x5a079c[_0x3d6867],_0x75661a=this['_tomap'](_0xe4546['lng'],_0xe4546['lat'],_0xe4546),_0x309549=this['_tomap'](_0xe4546['tlng'],_0xe4546['tlat'],_0xe4546);if(!_0x75661a||!_0x309549)continue;if(_0xab8f04&&Math[_0x41be61(0xf9)](_0x75661a[0x0]-_0x309549[0x0])>=this['canvasWidth'])continue;this[_0x41be61(0xed)]['moveTo'](_0x75661a[0x0],_0x75661a[0x1]),this['canvasContext']['lineTo'](_0x309549[0x0],_0x309549[0x1]);}this[_0x41be61(0xed)][_0x41be61(0x184)]();}},{'key':_0xb800f3(0x117),'value':function _0x99c25d(_0x5c0d24,_0x78d9de,_0x3490e3){var _0xc1efa4=_0xb800f3,_0x3770eb=Cesium['Cartesian3'][_0xc1efa4(0x1a7)](_0x5c0d24,_0x78d9de,this['fixedHeight']),_0x54aa25=this['_map'][_0xc1efa4(0xea)];if(_0x54aa25['mode']===Cesium[_0xc1efa4(0xda)]['SCENE3D']){var _0x35e199=new Cesium['EllipsoidalOccluder'](_0x54aa25[_0xc1efa4(0x144)][_0xc1efa4(0x18a)],_0x54aa25['camera'][_0xc1efa4(0xae)]),_0x1ad7b6=_0x35e199['isPointVisible'](_0x3770eb);if(!_0x1ad7b6)return _0x3490e3['age']=0x0,null;}var _0x570291=Cesium[_0xc1efa4(0x15f)]['wgs84ToWindowCoordinates'](this[_0xc1efa4(0x155)]['scene'],_0x3770eb);return _0x570291?[_0x570291['x'],_0x570291['y']]:null;}},{'key':'clear','value':function _0x2f42f7(){var _0x4bdc4c=_0xb800f3;this['windField'][_0x4bdc4c(0x12c)](),delete this[_0x4bdc4c(0x157)];}},{'key':'initWorker','value':function _0x459467(){var _0x225eb4=_0xb800f3,_0x4265aa=this;this[_0x225eb4(0xd3)]=new Worker(this['options']['worker']),this[_0x225eb4(0xd3)]['onmessage']=function(_0x468c62){var _0x43adaa=_0x225eb4;_0x4265aa[_0x43adaa(0x173)](_0x468c62['data']['particles']),_0x4265aa['_updateIng2']=![];},this['windField']={'init':function _0x4ecd28(_0x506636){var _0x331a7a=_0x225eb4;_0x4265aa['worker']['postMessage']({'type':_0x331a7a(0x14c),'options':_0x506636});},'setOptions':function _0x57cade(_0x3f8896){var _0x258a94=_0x225eb4;_0x4265aa['worker'][_0x258a94(0xe1)]({'type':'setOptions','options':_0x3f8896});},'setDate':function _0x481e90(_0x25b154){_0x4265aa['worker']['postMessage']({'type':'setDate','data':_0x25b154});},'update':function _0x190602(){var _0xda88ef=_0x225eb4;if(_0x4265aa['_updateIng2'])return;_0x4265aa['_updateIng2']=!![],_0x4265aa[_0xda88ef(0xd3)][_0xda88ef(0xe1)]({'type':'update'});},'clear':function _0x359578(){_0x4265aa['worker']['postMessage']({'type':'clear'});}},this[_0x225eb4(0x133)]['init'](this['options']);}}]),_0x39a98c;}(BaseLayer);mars3d__namespace['LayerUtil'][_0x44264c(0x148)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x44264c(0xde)]=CanvasWindLayer,exports[_0x44264c(0xe8)]=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.25",
|
|
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.25"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
14
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|