16 lines
90 KiB
JavaScript
16 lines
90 KiB
JavaScript
/**
|
||
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
||
*
|
||
* 版本信息:v3.4.20
|
||
* 编译日期:2023-01-10 12:55:42
|
||
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
||
* 使用单位:免费公开版 ,2022-06-01
|
||
*/
|
||
(function (global, factory) {
|
||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, (window.mars3d || require('mars3d'))) :
|
||
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
|
||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
|
||
})(this, (function (exports, mars3d) {
|
||
'use strict';var _0x2f5537=_0x2e61;(function(_0x3d3879,_0x14c76e){var _0x43fd2d=_0x2e61,_0x15a216=_0x3d3879();while(!![]){try{var _0x22f930=parseInt(_0x43fd2d(0x1e8))/0x1*(-parseInt(_0x43fd2d(0x197))/0x2)+parseInt(_0x43fd2d(0x164))/0x3+-parseInt(_0x43fd2d(0x138))/0x4*(-parseInt(_0x43fd2d(0x194))/0x5)+-parseInt(_0x43fd2d(0x1e5))/0x6*(parseInt(_0x43fd2d(0x155))/0x7)+parseInt(_0x43fd2d(0x19b))/0x8*(-parseInt(_0x43fd2d(0x20a))/0x9)+parseInt(_0x43fd2d(0x188))/0xa*(-parseInt(_0x43fd2d(0x19e))/0xb)+parseInt(_0x43fd2d(0x20b))/0xc;if(_0x22f930===_0x14c76e)break;else _0x15a216['push'](_0x15a216['shift']());}catch(_0x26b771){_0x15a216['push'](_0x15a216['shift']());}}}(_0xdb1a,0x32366));function _interopNamespace(_0x5e0b5d){if(_0x5e0b5d&&_0x5e0b5d['__esModule'])return _0x5e0b5d;var _0x1b0ba8=Object['create'](null);return _0x5e0b5d&&Object['keys'](_0x5e0b5d)['forEach'](function(_0x30561e){if(_0x30561e!=='default'){var _0x198028=Object['getOwnPropertyDescriptor'](_0x5e0b5d,_0x30561e);Object['defineProperty'](_0x1b0ba8,_0x30561e,_0x198028['get']?_0x198028:{'enumerable':!![],'get':function(){return _0x5e0b5d[_0x30561e];}});}}),_0x1b0ba8['default']=_0x5e0b5d,_0x1b0ba8;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x2e39af,_0x33e693){var _0x2c8459=_0x2e39af*Math['cos'](Cesium$7['Math']['toRadians'](_0x33e693));return _0x2c8459;}function getV(_0x4aa32d,_0x2c94bf){var _0x5d1701=_0x2e61,_0x5c52b2=_0x4aa32d*Math['sin'](Cesium$7[_0x5d1701(0x1d7)]['toRadians'](_0x2c94bf));return _0x5c52b2;}function getSpeed(_0x4c2b14,_0x1827c3){var _0x388716=_0x2e61,_0x65da28=Math[_0x388716(0x166)](Math['pow'](_0x4c2b14,0x2)+Math[_0x388716(0x153)](_0x1827c3,0x2));return _0x65da28;}function getDirection(_0x4b3928,_0x2d77f6){var _0x30d44a=Cesium$7['Math']['toDegrees'](Math['atan2'](_0x2d77f6,_0x4b3928));return _0x30d44a+=_0x30d44a<0x0?0x168:0x0,_0x30d44a;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x1ac86f,_0x409681){var _0x2ed95b=_0x2e61,_0x184a5f=Object['keys'](_0x1ac86f);if(Object['getOwnPropertySymbols']){var _0x2e9d67=Object['getOwnPropertySymbols'](_0x1ac86f);_0x409681&&(_0x2e9d67=_0x2e9d67['filter'](function(_0x289935){return Object['getOwnPropertyDescriptor'](_0x1ac86f,_0x289935)['enumerable'];})),_0x184a5f['push'][_0x2ed95b(0x217)](_0x184a5f,_0x2e9d67);}return _0x184a5f;}function _objectSpread2(_0x4ec8ec){var _0xdc3c3a=_0x2e61;for(var _0x25fb1d=0x1;_0x25fb1d<arguments['length'];_0x25fb1d++){var _0x53451d=null!=arguments[_0x25fb1d]?arguments[_0x25fb1d]:{};_0x25fb1d%0x2?ownKeys(Object(_0x53451d),!0x0)['forEach'](function(_0x2a4905){_defineProperty(_0x4ec8ec,_0x2a4905,_0x53451d[_0x2a4905]);}):Object['getOwnPropertyDescriptors']?Object[_0xdc3c3a(0x1ff)](_0x4ec8ec,Object['getOwnPropertyDescriptors'](_0x53451d)):ownKeys(Object(_0x53451d))['forEach'](function(_0x1ced77){var _0x102bf8=_0xdc3c3a;Object['defineProperty'](_0x4ec8ec,_0x1ced77,Object[_0x102bf8(0x154)](_0x53451d,_0x1ced77));});}return _0x4ec8ec;}function _classCallCheck(_0x27ae3b,_0x4376c4){if(!(_0x27ae3b instanceof _0x4376c4))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x2b1e71,_0x5a64de){var _0x465ea7=_0x2e61;for(var _0x113518=0x0;_0x113518<_0x5a64de['length'];_0x113518++){var _0x53a67c=_0x5a64de[_0x113518];_0x53a67c['enumerable']=_0x53a67c['enumerable']||![],_0x53a67c[_0x465ea7(0x168)]=!![];if(_0x465ea7(0x192)in _0x53a67c)_0x53a67c['writable']=!![];Object['defineProperty'](_0x2b1e71,_0x53a67c['key'],_0x53a67c);}}function _createClass(_0x5a693e,_0x556d96,_0x2c77e4){if(_0x556d96)_defineProperties(_0x5a693e['prototype'],_0x556d96);if(_0x2c77e4)_defineProperties(_0x5a693e,_0x2c77e4);return Object['defineProperty'](_0x5a693e,'prototype',{'writable':![]}),_0x5a693e;}function _defineProperty(_0x19130c,_0x10410a,_0x1b3082){return _0x10410a in _0x19130c?Object['defineProperty'](_0x19130c,_0x10410a,{'value':_0x1b3082,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x19130c[_0x10410a]=_0x1b3082,_0x19130c;}function _inherits(_0x30582e,_0x42906f){var _0x246574=_0x2e61;if(typeof _0x42906f!==_0x246574(0x1ae)&&_0x42906f!==null)throw new TypeError(_0x246574(0x12c));_0x30582e[_0x246574(0x208)]=Object[_0x246574(0x149)](_0x42906f&&_0x42906f['prototype'],{'constructor':{'value':_0x30582e,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x30582e,'prototype',{'writable':![]});if(_0x42906f)_setPrototypeOf(_0x30582e,_0x42906f);}function _getPrototypeOf(_0x35a1ff){return _getPrototypeOf=Object['setPrototypeOf']?Object['getPrototypeOf']['bind']():function _0xbca6ff(_0x4db473){return _0x4db473['__proto__']||Object['getPrototypeOf'](_0x4db473);},_getPrototypeOf(_0x35a1ff);}function _setPrototypeOf(_0x756129,_0x53f525){var _0x43c8ef=_0x2e61;return _setPrototypeOf=Object[_0x43c8ef(0x141)]?Object[_0x43c8ef(0x141)]['bind']():function _0x476448(_0x41d00f,_0x3d2e10){return _0x41d00f['__proto__']=_0x3d2e10,_0x41d00f;},_setPrototypeOf(_0x756129,_0x53f525);}function _0xdb1a(){var _0x35c85e=['createRenderingTextures','style','pointerEvents','getWind','visibility','setAttribute','PI_OVER_TWO','_speedRate','primitiveType','animateFrame','_addedHook','constructor','bindEvent','lon','destroy','SceneMode','cols','mouseUp','commandType','tlng','79450GkfeHQ','TWO_PI','update','getUVByPoint','Rectangle','currentTrailsColor','IDENTITY','_onMap_preRenderEvent','isInExtent','depthTexture','value','createParticlesTextures','1649535MHqESY','globalCompositeOperation','rawRenderState','4DGoQCq','_updateIng','array','LINEAR','24bhvIWk','GeometryAttribute','_calc_speedRate','429qPQEHr','bind','TextureMagnificationFilter','_onMapWhellEvent','beginPath','grid','maxAge','particles','createTexture','globe','random','framebuffers','segmentsColor','age','pointer-events','class','function','Matrix4','getParticles','vdata','getColorTexture','PixelDatatype','createFramebuffer','Pass','nextTrails','framebuffer','globeBoundingSphere','nextParticlesPosition','lonRange','clearFramebuffers','from','attributeLocations','length','particlesTextureSize','windTextures','west','FLOAT','forEach','_setOptionsHook','Color','fromDegrees','appendChild','drawingBufferHeight','rows','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}','requestAnimationFrame','defined','floor','absolute','worker','dimensions','particlesTextures','outputTexture','clear','canvasWidth','_calcUV','#ffffff','Math','speedFactor','wgs84ToWindowCoordinates','Cartesian2','postProcessingPosition','segments','clearCommand','red','addPrimitives','_tomap','scene','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}','DISABLE_GL_POSITION_LOG_DEPTH','trails','146022Usatuf','OPAQUE','_onMouseUpEvent','178491WXpYYu','getFullscreenQuad','fadeOpacity','setOptions','updateViewerParameters','mouseDown','_maxAge','destroyObject','getContext','ymax','BufferUsage','particlesNumber','strokeStyle','PrimitiveType','commandToExecute','NEAREST','reverse','createCommand','CanvasWindField','stroke','100%','createRenderingFramebuffers','height','defineProperties','currentTrails','initWorker','none','Cartesian3','particlesComputing','windField','options','nextTrailsColor','prototype','getUVByXY','458523GnMuME','5702988BDTqby','_canrefresh','fromCssColorString','autoClear','Map','_updateIng2','lng','RenderState','SCENE3D','speedRate','_map','canvasResize','apply','mouseMove','ALWAYS','windData','Draw','EventType','viewRectangleToLonLatRange','round','canvasContext','fixedHeight','register','off','particlesRendering','mouse_down','primitives','_onMouseDownEvent','preRender','Appearance','layer','colors','updateSpeed','udata','getRandomLatLng','mouse_move','push','Compute','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function','construct','preExecute','fragmentShaderSource','_data','refreshTimer','PI_OVER_THREE','_mountedHook','nextParticlesSpeed','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','TextureMinificationFilter','context','4OysENS','particleSystem','_onMouseMoveEvent','max','canvas','camera','createComputingPrimitives','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}','Cesium','setPrototypeOf','colorTable','randomBetween','mode','vertexShaderSource','createSegmentsGeometry','show','min','create','GeometryAttributes','SceneTransforms','THREE_PI_OVER_TWO','_removedHook','color','viewerParameters','width','ShaderSource','VertexArray','pow','getOwnPropertyDescriptor','21Pjruzg','clampToLatitudeRange','remove','resize','add','textures','keys','undefined','currentParticlesPosition','lat','redraw','setData','data','mouseHidden','_showHook','879609xTbFcD','geometry','sqrt','setDate','configurable','refreshParticles','WindUtil','postProcessingSpeed','shaderProgram','log','segmentsDepth','frameTime','ymin','xmax','vertexArray','BaseLayer'];_0xdb1a=function(){return _0x35c85e;};return _0xdb1a();}function _isNativeReflectConstruct(){var _0x4e38c6=_0x2e61;if(typeof Reflect===_0x4e38c6(0x15c)||!Reflect['construct'])return![];if(Reflect['construct']['sham'])return![];if(typeof Proxy==='function')return!![];try{return Boolean[_0x4e38c6(0x208)]['valueOf']['call'](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x5c56f7){return![];}}function _assertThisInitialized(_0x45926d){if(_0x45926d===void 0x0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x45926d;}function _possibleConstructorReturn(_0x45a9e5,_0x3f5d68){if(_0x3f5d68&&(typeof _0x3f5d68==='object'||typeof _0x3f5d68==='function'))return _0x3f5d68;else{if(_0x3f5d68!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x45a9e5);}function _createSuper(_0x4f5c84){var _0x3d820d=_isNativeReflectConstruct();return function _0x470867(){var _0x4995e2=_0x2e61,_0x270f70=_getPrototypeOf(_0x4f5c84),_0x597ae9;if(_0x3d820d){var _0x4424b8=_getPrototypeOf(this)[_0x4995e2(0x17f)];_0x597ae9=Reflect[_0x4995e2(0x12d)](_0x270f70,arguments,_0x4424b8);}else _0x597ae9=_0x270f70['apply'](this,arguments);return _possibleConstructorReturn(this,_0x597ae9);};}function _toConsumableArray(_0x8f0c2a){return _arrayWithoutHoles(_0x8f0c2a)||_iterableToArray(_0x8f0c2a)||_unsupportedIterableToArray(_0x8f0c2a)||_nonIterableSpread();}function _arrayWithoutHoles(_0x4dd811){if(Array['isArray'](_0x4dd811))return _arrayLikeToArray(_0x4dd811);}function _iterableToArray(_0x5e75ff){var _0x2cdc65=_0x2e61;if(typeof Symbol!=='undefined'&&_0x5e75ff[Symbol['iterator']]!=null||_0x5e75ff['@@iterator']!=null)return Array[_0x2cdc65(0x1bc)](_0x5e75ff);}function _unsupportedIterableToArray(_0x231694,_0x5bab81){var _0x55c103=_0x2e61;if(!_0x231694)return;if(typeof _0x231694==='string')return _arrayLikeToArray(_0x231694,_0x5bab81);var _0x70c8ed=Object['prototype']['toString']['call'](_0x231694)['slice'](0x8,-0x1);if(_0x70c8ed==='Object'&&_0x231694['constructor'])_0x70c8ed=_0x231694['constructor']['name'];if(_0x70c8ed===_0x55c103(0x20f)||_0x70c8ed==='Set')return Array[_0x55c103(0x1bc)](_0x231694);if(_0x70c8ed==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x70c8ed))return _arrayLikeToArray(_0x231694,_0x5bab81);}function _0x2e61(_0x372146,_0x513a8c){var _0xdb1a1f=_0xdb1a();return _0x2e61=function(_0x2e6157,_0x37f45e){_0x2e6157=_0x2e6157-0x127;var _0x5e7789=_0xdb1a1f[_0x2e6157];return _0x5e7789;},_0x2e61(_0x372146,_0x513a8c);}function _arrayLikeToArray(_0x39c74d,_0x1b4c38){var _0x53c0bf=_0x2e61;if(_0x1b4c38==null||_0x1b4c38>_0x39c74d['length'])_0x1b4c38=_0x39c74d[_0x53c0bf(0x1be)];for(var _0x120dc7=0x0,_0x640f5=new Array(_0x1b4c38);_0x120dc7<_0x1b4c38;_0x120dc7++)_0x640f5[_0x120dc7]=_0x39c74d[_0x120dc7];return _0x640f5;}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[_0x2f5537(0x140)],CustomPrimitive=(function(){var _0x5bf8d6=_0x2f5537;function _0x134b36(_0x30dd47){var _0x468864=_0x2e61,_0x401cf9;_classCallCheck(this,_0x134b36),this[_0x468864(0x186)]=_0x30dd47[_0x468864(0x186)],this['geometry']=_0x30dd47['geometry'],this['attributeLocations']=_0x30dd47[_0x468864(0x1bd)],this['primitiveType']=_0x30dd47['primitiveType'],this['uniformMap']=_0x30dd47['uniformMap'],this['vertexShaderSource']=_0x30dd47['vertexShaderSource'],this[_0x468864(0x12f)]=_0x30dd47['fragmentShaderSource'],this[_0x468864(0x196)]=_0x30dd47['rawRenderState'],this['framebuffer']=_0x30dd47[_0x468864(0x1b7)],this['outputTexture']=_0x30dd47[_0x468864(0x1d2)],this['autoClear']=(_0x401cf9=_0x30dd47[_0x468864(0x20e)])!==null&&_0x401cf9!==void 0x0?_0x401cf9:![],this['preExecute']=_0x30dd47['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['autoClear']&&(this['clearCommand']=new Cesium$6['ClearCommand']({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x468864(0x1b7)],'pass':Cesium$6[_0x468864(0x1b5)][_0x468864(0x1e6)]}));}return _createClass(_0x134b36,[{'key':_0x5bf8d6(0x1f9),'value':function _0x170774(_0xe11c1f){var _0x32eb71=_0x5bf8d6;switch(this[_0x32eb71(0x186)]){case _0x32eb71(0x21b):{var _0x26f30a=Cesium$6[_0x32eb71(0x152)]['fromGeometry']({'context':_0xe11c1f,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6[_0x32eb71(0x1f2)]['STATIC_DRAW']}),_0x1882e3=Cesium$6['ShaderProgram']['fromCache']({'context':_0xe11c1f,'attributeLocations':this['attributeLocations'],'vertexShaderSource':this[_0x32eb71(0x145)],'fragmentShaderSource':this['fragmentShaderSource']}),_0x193c5f=Cesium$6[_0x32eb71(0x212)]['fromCache'](this['rawRenderState']);return new Cesium$6['DrawCommand']({'primitiveType':this[_0x32eb71(0x17c)],'shaderProgram':_0x1882e3,'vertexArray':_0x26f30a,'modelMatrix':Cesium$6[_0x32eb71(0x1af)][_0x32eb71(0x18e)],'renderState':_0x193c5f,'uniformMap':this['uniformMap'],'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':'setGeometry','value':function _0x2284ca(_0x577990,_0x19257a){var _0x3a7f64=_0x5bf8d6;this['geometry']=_0x19257a;var _0x1a8207=Cesium$6['VertexArray']['fromGeometry']({'context':_0x577990,'geometry':this[_0x3a7f64(0x165)],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']});this['commandToExecute']['vertexArray']=_0x1a8207;}},{'key':_0x5bf8d6(0x18a),'value':function _0x18fe19(_0x5e787f){var _0x5cfd80=_0x5bf8d6;if(!this['show'])return;if(_0x5e787f['mode']!==Cesium$6[_0x5cfd80(0x183)][_0x5cfd80(0x213)])return;!Cesium$6['defined'](this['commandToExecute'])&&(this['commandToExecute']=this[_0x5cfd80(0x1f9)](_0x5e787f['context'])),Cesium$6['defined'](this['preExecute'])&&this[_0x5cfd80(0x12e)](),Cesium$6['defined'](this[_0x5cfd80(0x1dd)])&&_0x5e787f['commandList'][_0x5cfd80(0x12a)](this['clearCommand']),_0x5e787f['commandList']['push'](this['commandToExecute']);}},{'key':'isDestroyed','value':function _0x95c6d9(){return![];}},{'key':'destroy','value':function _0x3da2e7(){var _0x1e8ea3=_0x5bf8d6;if(this['clearCommand']){var _0x332e2b,_0x31251f;(_0x332e2b=this['clearCommand'])!==null&&_0x332e2b!==void 0x0&&_0x332e2b['vertexArray']&&this['clearCommand'][_0x1e8ea3(0x172)]['destroy'](),(_0x31251f=this['clearCommand'])!==null&&_0x31251f!==void 0x0&&_0x31251f['shaderProgram']&&this[_0x1e8ea3(0x1dd)][_0x1e8ea3(0x16c)]['destroy'](),delete this[_0x1e8ea3(0x1dd)];}return this['commandToExecute']&&(this['commandToExecute']['vertexArray']&&this['commandToExecute']['vertexArray']['destroy'](),this['commandToExecute']['shaderProgram']&&this[_0x1e8ea3(0x1f6)]['shaderProgram']['destroy'](),delete this[_0x1e8ea3(0x1f6)]),Cesium$6[_0x1e8ea3(0x1ef)](this);}}]),_0x134b36;}()),Cesium$5=mars3d__namespace[_0x2f5537(0x140)],Util=(function(){var _0xd2092a=function _0x2c3d2e(){var _0x5d98eb=_0x2e61,_0x5f20c1=new Cesium$5['Geometry']({'attributes':new Cesium$5[(_0x5d98eb(0x14a))]({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype'][_0x5d98eb(0x1c2)],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x5f20c1;},_0x2c66f6=function _0x736602(_0x24089f,_0x27c8dc){var _0x2afbda=_0x2e61;if(Cesium$5[_0x2afbda(0x1cc)](_0x27c8dc)){var _0x196251={};_0x196251['arrayBufferView']=_0x27c8dc,_0x24089f['source']=_0x196251;}var _0x5a88e7=new Cesium$5['Texture'](_0x24089f);return _0x5a88e7;},_0x58e86a=function _0x5ab501(_0x188721,_0x4be635,_0x39cd73){var _0x1337ce=new Cesium$5['Framebuffer']({'context':_0x188721,'colorTextures':[_0x4be635],'depthTexture':_0x39cd73});return _0x1337ce;},_0x6c5dbe=function _0x1631ad(_0x24c5cb){var _0x1510d6=_0x2e61,_0xaf5007=!![],_0x3b5f64=![],_0x3adca7={'viewport':_0x24c5cb['viewport'],'depthTest':_0x24c5cb['depthTest'],'depthMask':_0x24c5cb['depthMask'],'blending':_0x24c5cb['blending']},_0x4912c7=Cesium$5[_0x1510d6(0x228)]['getDefaultRenderState'](_0xaf5007,_0x3b5f64,_0x3adca7);return _0x4912c7;},_0x1fd618=function _0x4603eb(_0x367ca3){var _0x2e5b2d=_0x2e61,_0x411821={},_0x131f3d=Cesium$5['Math']['mod'](_0x367ca3[_0x2e5b2d(0x1c1)],Cesium$5[_0x2e5b2d(0x1d7)]['TWO_PI']),_0x508e11=Cesium$5['Math']['mod'](_0x367ca3['east'],Cesium$5['Math']['TWO_PI']),_0x102474=_0x367ca3[_0x2e5b2d(0x150)],_0x39fc00,_0x1a3102;_0x102474>Cesium$5[_0x2e5b2d(0x1d7)][_0x2e5b2d(0x14c)]?(_0x39fc00=0x0,_0x1a3102=Cesium$5['Math'][_0x2e5b2d(0x189)]):_0x508e11-_0x131f3d<_0x102474?(_0x39fc00=_0x131f3d,_0x1a3102=_0x131f3d+_0x102474):(_0x39fc00=_0x131f3d,_0x1a3102=_0x508e11);_0x411821['lon']={'min':Cesium$5['Math']['toDegrees'](_0x39fc00),'max':Cesium$5['Math']['toDegrees'](_0x1a3102)};var _0x56746b=_0x367ca3['south'],_0x38d667=_0x367ca3['north'],_0x5dfe77=_0x367ca3[_0x2e5b2d(0x1fe)],_0x815984=_0x5dfe77>Cesium$5[_0x2e5b2d(0x1d7)]['PI']/0xc?_0x5dfe77/0x2:0x0,_0x29b879=Cesium$5['Math'][_0x2e5b2d(0x156)](_0x56746b-_0x815984),_0x553852=Cesium$5[_0x2e5b2d(0x1d7)][_0x2e5b2d(0x156)](_0x38d667+_0x815984);return _0x29b879<-Cesium$5[_0x2e5b2d(0x1d7)][_0x2e5b2d(0x132)]&&(_0x29b879=-Cesium$5[_0x2e5b2d(0x1d7)]['PI_OVER_TWO']),_0x553852>Cesium$5['Math']['PI_OVER_THREE']&&(_0x553852=Cesium$5['Math'][_0x2e5b2d(0x17a)]),_0x411821['lat']={'min':Cesium$5['Math']['toDegrees'](_0x29b879),'max':Cesium$5[_0x2e5b2d(0x1d7)]['toDegrees'](_0x553852)},_0x411821;};return{'getFullscreenQuad':_0xd2092a,'createTexture':_0x2c66f6,'createFramebuffer':_0x58e86a,'createRawRenderState':_0x6c5dbe,'viewRectangleToLonLatRange':_0x1fd618};}()),segmentDraw_vert=_0x2f5537(0x13f),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=_0x2f5537(0x1ca),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(){var _0x56dfe2=_0x2f5537;function _0x465db8(_0x3c85de,_0xa2c114,_0x3d48d5,_0x469337,_0x488c50){var _0x536a58=_0x2e61;_classCallCheck(this,_0x465db8),this[_0x536a58(0x174)](_0x3c85de,_0xa2c114,_0x3d48d5[_0x536a58(0x22a)]),this[_0x536a58(0x1fd)](_0x3c85de),this['createRenderingPrimitives'](_0x3c85de,_0x3d48d5,_0x469337,_0x488c50);}return _createClass(_0x465db8,[{'key':'createRenderingTextures','value':function _0x227887(_0xe6631a,_0x48021b,_0x3196ec){var _0x3ad841=_0x2e61,_0xdd6665={'context':_0xe6631a,'width':_0xe6631a['drawingBufferWidth'],'height':_0xe6631a['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat']['RGBA'],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_BYTE']},_0x1f9f1c={'context':_0xe6631a,'width':_0xe6631a['drawingBufferWidth'],'height':_0xe6631a['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat']['DEPTH_COMPONENT'],'pixelDatatype':Cesium$4[_0x3ad841(0x1b3)]['UNSIGNED_INT']},_0x40ebe9=_0x3196ec[_0x3ad841(0x1be)],_0x505110=new Float32Array(_0x40ebe9*0x3);for(var _0x103e46=0x0;_0x103e46<_0x40ebe9;_0x103e46++){var _0x34f124=Cesium$4[_0x3ad841(0x1c5)][_0x3ad841(0x20d)](_0x3196ec[_0x103e46]);_0x505110[0x3*_0x103e46]=_0x34f124[_0x3ad841(0x1de)],_0x505110[0x3*_0x103e46+0x1]=_0x34f124['green'],_0x505110[0x3*_0x103e46+0x2]=_0x34f124['blue'];}var _0xfe8945={'context':_0xe6631a,'width':_0x40ebe9,'height':0x1,'pixelFormat':Cesium$4['PixelFormat']['RGB'],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4['TextureMinificationFilter'][_0x3ad841(0x19a)],'magnificationFilter':Cesium$4[_0x3ad841(0x1a0)]['LINEAR']})};this[_0x3ad841(0x15a)]={'segmentsColor':Util['createTexture'](_0xdd6665),'segmentsDepth':Util[_0x3ad841(0x1a6)](_0x1f9f1c),'currentTrailsColor':Util['createTexture'](_0xdd6665),'currentTrailsDepth':Util['createTexture'](_0x1f9f1c),'nextTrailsColor':Util['createTexture'](_0xdd6665),'nextTrailsDepth':Util['createTexture'](_0x1f9f1c),'colorTable':Util['createTexture'](_0xfe8945,_0x505110)};}},{'key':'createRenderingFramebuffers','value':function _0x179fdf(_0x5d10ed){var _0x4f597d=_0x2e61;this[_0x4f597d(0x1a9)]={'segments':Util[_0x4f597d(0x1b4)](_0x5d10ed,this[_0x4f597d(0x15a)]['segmentsColor'],this['textures']['segmentsDepth']),'currentTrails':Util[_0x4f597d(0x1b4)](_0x5d10ed,this['textures'][_0x4f597d(0x18d)],this['textures']['currentTrailsDepth']),'nextTrails':Util['createFramebuffer'](_0x5d10ed,this['textures'][_0x4f597d(0x207)],this[_0x4f597d(0x15a)]['nextTrailsDepth'])};}},{'key':_0x56dfe2(0x146),'value':function _0x1c59d7(_0x27d0ea){var _0x42e7d8=_0x56dfe2,_0x2c2a18=0x4,_0x2bfd3c=[];for(var _0x45e4b6=0x0;_0x45e4b6<_0x27d0ea[_0x42e7d8(0x1bf)];_0x45e4b6++){for(var _0x47fb6c=0x0;_0x47fb6c<_0x27d0ea['particlesTextureSize'];_0x47fb6c++){for(var _0x477a03=0x0;_0x477a03<_0x2c2a18;_0x477a03++){_0x2bfd3c['push'](_0x45e4b6/_0x27d0ea['particlesTextureSize']),_0x2bfd3c['push'](_0x47fb6c/_0x27d0ea[_0x42e7d8(0x1bf)]);}}}_0x2bfd3c=new Float32Array(_0x2bfd3c);var _0x2fdefa=[],_0x4d0e87=[-0x1,0x1],_0x246eb5=[-0x1,0x1];for(var _0x38cd6e=0x0;_0x38cd6e<_0x27d0ea['maxParticles'];_0x38cd6e++){for(var _0x2568ff=0x0;_0x2568ff<_0x2c2a18/0x2;_0x2568ff++){for(var _0x1d8059=0x0;_0x1d8059<_0x2c2a18/0x2;_0x1d8059++){_0x2fdefa['push'](_0x4d0e87[_0x2568ff]),_0x2fdefa[_0x42e7d8(0x12a)](_0x246eb5[_0x1d8059]),_0x2fdefa[_0x42e7d8(0x12a)](0x0);}}}_0x2fdefa=new Float32Array(_0x2fdefa);var _0x215ec6=0x6*_0x27d0ea['maxParticles'],_0x20a869=new Uint32Array(_0x215ec6);for(var _0x2f4191=0x0,_0x2479a2=0x0,_0x313fef=0x0;_0x2f4191<_0x27d0ea['maxParticles'];_0x2f4191++){_0x20a869[_0x2479a2++]=_0x313fef+0x0,_0x20a869[_0x2479a2++]=_0x313fef+0x1,_0x20a869[_0x2479a2++]=_0x313fef+0x2,_0x20a869[_0x2479a2++]=_0x313fef+0x2,_0x20a869[_0x2479a2++]=_0x313fef+0x1,_0x20a869[_0x2479a2++]=_0x313fef+0x3,_0x313fef+=0x4;}var _0x50e491=new Cesium$4['Geometry']({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4[(_0x42e7d8(0x19c))]({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':_0x2bfd3c}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype'][_0x42e7d8(0x1c2)],'componentsPerAttribute':0x3,'values':_0x2fdefa})}),'indices':_0x20a869});return _0x50e491;}},{'key':'createRenderingPrimitives','value':function _0x2e8abd(_0x43ce86,_0x3d6dc7,_0x295a6a,_0x4119a8){var _0x29897b=_0x56dfe2,_0x1c695f=this;this['primitives']={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'st':0x0,'normal':0x1},'geometry':this[_0x29897b(0x146)](_0x3d6dc7),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function _0x59331b(){var _0xc9c34e=_0x29897b;return _0x4119a8['particlesTextures'][_0xc9c34e(0x15d)];},'postProcessingPosition':function _0x41eb38(){var _0x13df25=_0x29897b;return _0x4119a8['particlesTextures'][_0x13df25(0x1db)];},'postProcessingSpeed':function _0x5461f4(){var _0x406740=_0x29897b;return _0x4119a8[_0x406740(0x1d1)]['postProcessingSpeed'];},'colorTable':function _0x5298a8(){var _0x29110a=_0x29897b;return _0x1c695f['textures'][_0x29110a(0x142)];},'aspect':function _0x55221b(){var _0x5a0738=_0x29897b;return _0x43ce86['drawingBufferWidth']/_0x43ce86[_0x5a0738(0x1c8)];},'pixelSize':function _0x504ad3(){return _0x295a6a['pixelSize'];},'lineWidth':function _0x20e903(){return _0x3d6dc7['lineWidth'];},'particleHeight':function _0x12f0fc(){return _0x3d6dc7['particleHeight'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'sources':[segmentDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this['framebuffers'][_0x29897b(0x1dc)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x29897b(0x21b),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x29897b(0x1e9)](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0xaaacc8(){var _0x590947=_0x29897b;return _0x1c695f[_0x590947(0x15a)][_0x590947(0x1aa)];},'segmentsDepthTexture':function _0x3fbd2a(){var _0x15bc31=_0x29897b;return _0x1c695f['textures'][_0x15bc31(0x16e)];},'currentTrailsColor':function _0x497584(){var _0x2ba65b=_0x29897b;return _0x1c695f[_0x2ba65b(0x1a9)]['currentTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x4f46eb(){var _0x19c791=_0x29897b;return _0x1c695f['framebuffers']['currentTrails'][_0x19c791(0x191)];},'fadeOpacity':function _0x543837(){return _0x3d6dc7['fadeOpacity'];}},'vertexShaderSource':new Cesium$4[(_0x29897b(0x151))]({'defines':[_0x29897b(0x1e3)],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x29897b(0x135)],'sources':[trailDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction'][_0x29897b(0x219)]},'depthMask':!![]}),'framebuffer':this['framebuffers'][_0x29897b(0x1b6)],'autoClear':!![],'preExecute':function _0x5eabeb(){var _0x2d617a=_0x29897b,_0x26a6c7=_0x1c695f['framebuffers'][_0x2d617a(0x200)];_0x1c695f['framebuffers']['currentTrails']=_0x1c695f[_0x2d617a(0x1a9)]['nextTrails'],_0x1c695f[_0x2d617a(0x1a9)]['nextTrails']=_0x26a6c7,_0x1c695f['primitives']['trails']['commandToExecute']['framebuffer']=_0x1c695f['framebuffers']['nextTrails'],_0x1c695f['primitives']['trails']['clearCommand']['framebuffer']=_0x1c695f['framebuffers'][_0x2d617a(0x1b6)];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':Util[_0x29897b(0x1e9)](),'primitiveType':Cesium$4[_0x29897b(0x1f5)]['TRIANGLES'],'uniformMap':{'trailsColorTexture':function _0x2af727(){var _0x12291b=_0x29897b;return _0x1c695f['framebuffers']['nextTrails'][_0x12291b(0x1b2)](0x0);},'trailsDepthTexture':function _0x4063a3(){return _0x1c695f['framebuffers']['nextTrails']['depthTexture'];}},'vertexShaderSource':new Cesium$4[(_0x29897b(0x151))]({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x29897b(0x151))]({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[screenDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x465db8;}()),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=_0x2f5537(0x1e2),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 _0xc72feb=_0x2f5537;function _0x92c73c(_0x3c2086,_0x4e1e68,_0x14af29,_0x27396f){var _0x1684e7=_0x2e61;_classCallCheck(this,_0x92c73c),this[_0x1684e7(0x161)]=_0x4e1e68,this['createWindTextures'](_0x3c2086,_0x4e1e68),this['createParticlesTextures'](_0x3c2086,_0x14af29,_0x27396f),this['createComputingPrimitives'](_0x4e1e68,_0x14af29,_0x27396f);}return _createClass(_0x92c73c,[{'key':'createWindTextures','value':function _0xed712e(_0x5281b4,_0x852605){var _0x18ece9=_0x2e61,_0x1106f2={'context':_0x5281b4,'width':_0x852605[_0x18ece9(0x1d0)][_0x18ece9(0x181)],'height':_0x852605['dimensions'][_0x18ece9(0x15e)]*(_0x852605[_0x18ece9(0x1d0)]['lev']||0x1),'pixelFormat':Cesium$3['PixelFormat']['LUMINANCE'],'pixelDatatype':Cesium$3['PixelDatatype'][_0x18ece9(0x1c2)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3[_0x18ece9(0x136)][_0x18ece9(0x1f7)],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};this['windTextures']={'U':Util[_0x18ece9(0x1a6)](_0x1106f2,_0x852605['U']['array']),'V':Util['createTexture'](_0x1106f2,_0x852605['V'][_0x18ece9(0x199)])};}},{'key':_0xc72feb(0x193),'value':function _0x559661(_0x2e8519,_0x9a192d,_0x5e1369){var _0x1136ce=_0xc72feb,_0x466304={'context':_0x2e8519,'width':_0x9a192d[_0x1136ce(0x1bf)],'height':_0x9a192d['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})},_0x34f40f=this['randomizeParticles'](_0x9a192d['maxParticles'],_0x5e1369),_0x17d155=new Float32Array(0x4*_0x9a192d['maxParticles'])['fill'](0x0);this['particlesTextures']={'particlesWind':Util[_0x1136ce(0x1a6)](_0x466304),'currentParticlesPosition':Util['createTexture'](_0x466304,_0x34f40f),'nextParticlesPosition':Util['createTexture'](_0x466304,_0x34f40f),'currentParticlesSpeed':Util['createTexture'](_0x466304,_0x17d155),'nextParticlesSpeed':Util['createTexture'](_0x466304,_0x17d155),'postProcessingPosition':Util['createTexture'](_0x466304,_0x34f40f),'postProcessingSpeed':Util[_0x1136ce(0x1a6)](_0x466304,_0x17d155)};}},{'key':'randomizeParticles','value':function _0x2ec0ed(_0x384b01,_0x49e766){var _0x38daf6=_0xc72feb,_0xcb6c24=new Float32Array(0x4*_0x384b01);for(var _0x2ed5cb=0x0;_0x2ed5cb<_0x384b01;_0x2ed5cb++){_0xcb6c24[0x4*_0x2ed5cb]=Cesium$3['Math']['randomBetween'](_0x49e766['lonRange']['x'],_0x49e766['lonRange']['y']),_0xcb6c24[0x4*_0x2ed5cb+0x1]=Cesium$3[_0x38daf6(0x1d7)][_0x38daf6(0x143)](_0x49e766['latRange']['x'],_0x49e766['latRange']['y']),_0xcb6c24[0x4*_0x2ed5cb+0x2]=Cesium$3['Math'][_0x38daf6(0x143)](this['data']['lev']['min'],this['data']['lev']['max']),_0xcb6c24[0x4*_0x2ed5cb+0x3]=0x0;}return _0xcb6c24;}},{'key':'destroyParticlesTextures','value':function _0x5b9839(){var _0x27e6d0=_0xc72feb,_0x5b5941=this;Object[_0x27e6d0(0x15b)](this['particlesTextures'])[_0x27e6d0(0x1c3)](function(_0x474265){var _0x191ece=_0x27e6d0;_0x5b5941['particlesTextures'][_0x474265][_0x191ece(0x182)]();});}},{'key':_0xc72feb(0x13e),'value':function _0x7ae5ea(_0x595836,_0x47c398,_0x180f1c){var _0x5bab6d=_0xc72feb,_0x2ad51c=new Cesium$3['Cartesian3'](_0x595836['dimensions']['lon'],_0x595836['dimensions'][_0x5bab6d(0x15e)],_0x595836['dimensions']['lev']),_0x151d5a=new Cesium$3['Cartesian3'](_0x595836['lon']['min'],_0x595836['lat']['min'],_0x595836['lev']['min']),_0x2f8257=new Cesium$3[(_0x5bab6d(0x203))](_0x595836[_0x5bab6d(0x181)]['max'],_0x595836['lat']['max'],_0x595836['lev']['max']),_0x48d0f7=new Cesium$3[(_0x5bab6d(0x203))]((_0x2f8257['x']-_0x151d5a['x'])/(_0x2ad51c['x']-0x1),(_0x2f8257['y']-_0x151d5a['y'])/(_0x2ad51c['y']-0x1),_0x2ad51c['z']>0x1?(_0x2f8257['z']-_0x151d5a['z'])/(_0x2ad51c['z']-0x1):0x1),_0x408d95=new Cesium$3['Cartesian2'](_0x595836['U'][_0x5bab6d(0x148)],_0x595836['U']['max']),_0x1098fe=new Cesium$3['Cartesian2'](_0x595836['V'][_0x5bab6d(0x148)],_0x595836['V']['max']),_0x2fb114=this;this[_0x5bab6d(0x225)]={'getWind':new CustomPrimitive({'commandType':_0x5bab6d(0x12b),'uniformMap':{'U':function _0xa5d842(){var _0x29c77e=_0x5bab6d;return _0x2fb114[_0x29c77e(0x1c0)]['U'];},'V':function _0x3e0c06(){return _0x2fb114['windTextures']['V'];},'currentParticlesPosition':function _0x27430b(){return _0x2fb114['particlesTextures']['currentParticlesPosition'];},'dimension':function _0x72c454(){return _0x2ad51c;},'minimum':function _0x497dcd(){return _0x151d5a;},'maximum':function _0x26df8d(){return _0x2f8257;},'interval':function _0x2a3688(){return _0x48d0f7;}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[getWind_frag]}),'outputTexture':this['particlesTextures']['particlesWind'],'preExecute':function _0x35830b(){var _0x216376=_0x5bab6d;_0x2fb114['primitives']['getWind']['commandToExecute']['outputTexture']=_0x2fb114[_0x216376(0x1d1)]['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesSpeed':function _0x104d88(){var _0xc6cc96=_0x5bab6d;return _0x2fb114[_0xc6cc96(0x1d1)]['currentParticlesSpeed'];},'particlesWind':function _0xf545f6(){var _0x3f379d=_0x5bab6d;return _0x2fb114[_0x3f379d(0x1d1)]['particlesWind'];},'uSpeedRange':function _0xc54e47(){return _0x408d95;},'vSpeedRange':function _0x21c5ec(){return _0x1098fe;},'pixelSize':function _0x47984a(){return _0x180f1c['pixelSize'];},'speedFactor':function _0x42fc2c(){return _0x47c398['speedFactor'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updateSpeed_frag]}),'outputTexture':this[_0x5bab6d(0x1d1)]['nextParticlesSpeed'],'preExecute':function _0x2d9f24(){var _0x4f68ab=_0x5bab6d,_0x2ab415=_0x2fb114[_0x4f68ab(0x1d1)]['currentParticlesSpeed'];_0x2fb114['particlesTextures']['currentParticlesSpeed']=_0x2fb114['particlesTextures']['postProcessingSpeed'],_0x2fb114[_0x4f68ab(0x1d1)]['postProcessingSpeed']=_0x2ab415,_0x2fb114['primitives'][_0x4f68ab(0x22b)]['commandToExecute'][_0x4f68ab(0x1d2)]=_0x2fb114['particlesTextures']['nextParticlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x5d07a2(){var _0x497e66=_0x5bab6d;return _0x2fb114['particlesTextures'][_0x497e66(0x15d)];},'currentParticlesSpeed':function _0x41d098(){return _0x2fb114['particlesTextures']['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0x478e55(){var _0x14842f=_0x5bab6d,_0x431ff3=_0x2fb114['particlesTextures'][_0x14842f(0x15d)];_0x2fb114['particlesTextures']['currentParticlesPosition']=_0x2fb114[_0x14842f(0x1d1)][_0x14842f(0x1db)],_0x2fb114['particlesTextures'][_0x14842f(0x1db)]=_0x431ff3,_0x2fb114['primitives']['updatePosition']['commandToExecute']['outputTexture']=_0x2fb114['particlesTextures'][_0x14842f(0x1b9)];}}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x5bab6d(0x12b),'uniformMap':{'nextParticlesPosition':function _0x3b53f2(){var _0x4c790f=_0x5bab6d;return _0x2fb114['particlesTextures'][_0x4c790f(0x1b9)];},'nextParticlesSpeed':function _0x1e1a1d(){return _0x2fb114['particlesTextures']['nextParticlesSpeed'];},'lonRange':function _0xce4677(){var _0x18464e=_0x5bab6d;return _0x180f1c[_0x18464e(0x1ba)];},'latRange':function _0x1f5544(){return _0x180f1c['latRange'];},'randomCoefficient':function _0x56ca3c(){var _0x9733dd=Math['random']();return _0x9733dd;},'dropRate':function _0x21c6bb(){return _0x47c398['dropRate'];},'dropRateBump':function _0x1ea763(){return _0x47c398['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingPosition_frag]}),'outputTexture':this[_0x5bab6d(0x1d1)]['postProcessingPosition'],'preExecute':function _0xc3ecc5(){_0x2fb114['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=_0x2fb114['particlesTextures']['postProcessingPosition'];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0x4fa510(){var _0x36da0d=_0x5bab6d;return _0x2fb114[_0x36da0d(0x1d1)]['postProcessingPosition'];},'nextParticlesSpeed':function _0xa756ff(){var _0x2de6f1=_0x5bab6d;return _0x2fb114['particlesTextures'][_0x2de6f1(0x134)];}},'fragmentShaderSource':new Cesium$3[(_0x5bab6d(0x151))]({'sources':[postProcessingSpeed_frag]}),'outputTexture':this[_0x5bab6d(0x1d1)][_0x5bab6d(0x16b)],'preExecute':function _0x8bc01a(){var _0xcc0e1c=_0x5bab6d;_0x2fb114[_0xcc0e1c(0x225)][_0xcc0e1c(0x16b)][_0xcc0e1c(0x1f6)][_0xcc0e1c(0x1d2)]=_0x2fb114['particlesTextures']['postProcessingSpeed'];}})};}}]),_0x92c73c;}()),Cesium$2=mars3d__namespace['Cesium'],ParticleSystem=(function(){var _0x19ca88=_0x2f5537;function _0x7e92f2(_0x1ac477,_0x4ffca7,_0x2b4711,_0x3a7bad){var _0x33695f=_0x2e61;_classCallCheck(this,_0x7e92f2),this[_0x33695f(0x137)]=_0x1ac477,_0x4ffca7=_objectSpread2({},_0x4ffca7);if(_0x4ffca7[_0x33695f(0x127)]&&_0x4ffca7['vdata']){var _0x293b21,_0x4b586c,_0x28fe02,_0x3e94a2,_0x52c051,_0x5805aa;_0x4ffca7['dimensions']={},_0x4ffca7[_0x33695f(0x1d0)][_0x33695f(0x181)]=_0x4ffca7['cols'],_0x4ffca7['dimensions']['lat']=_0x4ffca7['rows'],_0x4ffca7['dimensions']['lev']=_0x4ffca7['lev']||0x1,_0x4ffca7[_0x33695f(0x181)]={},_0x4ffca7['lon']['min']=_0x4ffca7['xmin'],_0x4ffca7[_0x33695f(0x181)][_0x33695f(0x13b)]=_0x4ffca7['xmax'],_0x4ffca7['lat']={},_0x4ffca7['lat']['min']=_0x4ffca7[_0x33695f(0x170)],_0x4ffca7[_0x33695f(0x15e)]['max']=_0x4ffca7['ymax'],_0x4ffca7['lev']={},_0x4ffca7['lev']['min']=(_0x293b21=_0x4ffca7['levmin'])!==null&&_0x293b21!==void 0x0?_0x293b21:0x1,_0x4ffca7['lev']['max']=(_0x4b586c=_0x4ffca7['levmax'])!==null&&_0x4b586c!==void 0x0?_0x4b586c:0x1,_0x4ffca7['U']={},_0x4ffca7['U']['array']=new Float32Array(_0x4ffca7['udata']),_0x4ffca7['U']['min']=(_0x28fe02=_0x4ffca7['umin'])!==null&&_0x28fe02!==void 0x0?_0x28fe02:Math['min'][_0x33695f(0x217)](Math,_toConsumableArray(_0x4ffca7[_0x33695f(0x127)])),_0x4ffca7['U']['max']=(_0x3e94a2=_0x4ffca7['umax'])!==null&&_0x3e94a2!==void 0x0?_0x3e94a2:Math['max'][_0x33695f(0x217)](Math,_toConsumableArray(_0x4ffca7['udata'])),_0x4ffca7['V']={},_0x4ffca7['V']['array']=new Float32Array(_0x4ffca7[_0x33695f(0x1b1)]),_0x4ffca7['V']['min']=(_0x52c051=_0x4ffca7['vmin'])!==null&&_0x52c051!==void 0x0?_0x52c051:Math[_0x33695f(0x148)]['apply'](Math,_toConsumableArray(_0x4ffca7['vdata'])),_0x4ffca7['V']['max']=(_0x5805aa=_0x4ffca7['vmax'])!==null&&_0x5805aa!==void 0x0?_0x5805aa:Math[_0x33695f(0x13b)]['apply'](Math,_toConsumableArray(_0x4ffca7[_0x33695f(0x1b1)]));}this[_0x33695f(0x161)]=_0x4ffca7,this['options']=_0x2b4711,this['viewerParameters']=_0x3a7bad,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this[_0x33695f(0x14f)]),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this['options'],this['viewerParameters'],this['particlesComputing']);}return _createClass(_0x7e92f2,[{'key':_0x19ca88(0x216),'value':function _0x8417a3(_0x5287be){var _0x46674d=_0x19ca88,_0x1b220f=this;this[_0x46674d(0x204)]['destroyParticlesTextures'](),Object['keys'](this[_0x46674d(0x204)][_0x46674d(0x1c0)])[_0x46674d(0x1c3)](function(_0x22337c){var _0x28f53d=_0x46674d;_0x1b220f['particlesComputing'][_0x28f53d(0x1c0)][_0x22337c]['destroy']();}),this[_0x46674d(0x223)]['textures']['colorTable']['destroy'](),Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](function(_0x35fb9a){_0x1b220f['particlesRendering']['framebuffers'][_0x35fb9a]['destroy']();}),this[_0x46674d(0x137)]=_0x5287be,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this[_0x46674d(0x223)]=new ParticlesRendering(this['context'],this['data'],this['options'],this['viewerParameters'],this['particlesComputing']);}},{'key':_0x19ca88(0x1bb),'value':function _0x5b43a9(){var _0x4f77bb=_0x19ca88,_0x189e55=this,_0x1e8d6e=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2[_0x4f77bb(0x1b5)][_0x4f77bb(0x1e6)]});Object['keys'](this['particlesRendering'][_0x4f77bb(0x1a9)])['forEach'](function(_0x48adce){_0x1e8d6e['framebuffer']=_0x189e55['particlesRendering']['framebuffers'][_0x48adce],_0x1e8d6e['execute'](_0x189e55['context']);});}},{'key':'refreshParticles','value':function _0x36f3ce(_0xa7ebfd){var _0x2e586c=_0x19ca88;this[_0x2e586c(0x1bb)](),this[_0x2e586c(0x204)]['destroyParticlesTextures'](),this['particlesComputing']['createParticlesTextures'](this['context'],this['options'],this[_0x2e586c(0x14f)]);if(_0xa7ebfd){var _0x1dc76d=this[_0x2e586c(0x223)]['createSegmentsGeometry'](this['options']);this['particlesRendering']['primitives']['segments']['geometry']=_0x1dc76d;var _0x2cdc5b=Cesium$2[_0x2e586c(0x152)]['fromGeometry']({'context':this['context'],'geometry':_0x1dc76d,'attributeLocations':this['particlesRendering'][_0x2e586c(0x225)]['segments'][_0x2e586c(0x1bd)],'bufferUsage':Cesium$2[_0x2e586c(0x1f2)]['STATIC_DRAW']});this[_0x2e586c(0x223)]['primitives']['segments']['commandToExecute']['vertexArray']=_0x2cdc5b;}}},{'key':'setOptions','value':function _0x4ae201(_0x4585ce){var _0x3af3d7=_0x19ca88,_0x3dfd8a=this,_0x1c8f8b=![];this['options']['maxParticles']!==_0x4585ce['maxParticles']&&(_0x1c8f8b=!![]),Object[_0x3af3d7(0x15b)](_0x4585ce)['forEach'](function(_0x43bdf0){_0x3dfd8a['options'][_0x43bdf0]=_0x4585ce[_0x43bdf0];}),this[_0x3af3d7(0x169)](_0x1c8f8b);}},{'key':'applyViewerParameters','value':function _0x2b17de(_0xae9881){var _0x3d92b4=_0x19ca88,_0xdf7454=this;Object['keys'](_0xae9881)['forEach'](function(_0x32eb5f){var _0x71634=_0x2e61;_0xdf7454[_0x71634(0x14f)][_0x32eb5f]=_0xae9881[_0x32eb5f];}),this[_0x3d92b4(0x169)](![]);}},{'key':'destroy','value':function _0x4e4b2a(){var _0x9d7b82=_0x19ca88,_0x6bbe7b=this;clearTimeout(this['canrefresh']),this[_0x9d7b82(0x204)]['destroyParticlesTextures'](),Object['keys'](this[_0x9d7b82(0x204)]['windTextures'])['forEach'](function(_0x3d8a7f){var _0x32ab02=_0x9d7b82;_0x6bbe7b[_0x32ab02(0x204)]['windTextures'][_0x3d8a7f]['destroy']();}),this[_0x9d7b82(0x223)]['textures'][_0x9d7b82(0x142)]['destroy'](),Object[_0x9d7b82(0x15b)](this[_0x9d7b82(0x223)][_0x9d7b82(0x1a9)])['forEach'](function(_0x5654ee){_0x6bbe7b['particlesRendering']['framebuffers'][_0x5654ee]['destroy']();});for(var _0xbb7c0f in this){delete this[_0xbb7c0f];}}}]),_0x7e92f2;}()),Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],DEF_OPTIONS={'particlesNumber':0x1000,'fixedHeight':0x0,'fadeOpacity':0.996,'dropRate':0.003,'dropRateBump':0.01,'speedFactor':0.5,'lineWidth':0x2,'colors':['rgb(206,255,255)']},WindLayer=function(_0x16620c){var _0x344af0=_0x2f5537;_inherits(_0x200d45,_0x16620c);var _0x17a224=_createSuper(_0x200d45);function _0x200d45(){var _0x329ab6=_0x2e61,_0x3bef83,_0xbef6f5=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x200d45),_0xbef6f5=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0xbef6f5),_0x3bef83=_0x17a224['call'](this,_0xbef6f5),_0x3bef83[_0x329ab6(0x1c4)](_0xbef6f5),_0x3bef83;}return _createClass(_0x200d45,[{'key':'layer','get':function _0x5891f5(){return this['primitives'];}},{'key':_0x344af0(0x161),'get':function _0x46cb95(){return this['_data'];},'set':function _0x407b93(_0x2b9f7b){var _0x58f3b6=_0x344af0;this[_0x58f3b6(0x160)](_0x2b9f7b);}},{'key':_0x344af0(0x22a),'get':function _0x3dd66b(){var _0x5e6938=_0x344af0;return this[_0x5e6938(0x206)]['colors'];},'set':function _0x338ea2(_0x5580ad){var _0x3e1f97=_0x344af0;this[_0x3e1f97(0x206)][_0x3e1f97(0x22a)]=_0x5580ad,this['particleSystem']&&this[_0x3e1f97(0x139)]['setOptions']({'colors':_0x5580ad}),this['resize']();}},{'key':'_mountedHook','value':function _0x309194(){}},{'key':'_addedHook','value':function _0x3aa0b3(){var _0x41696a=_0x344af0;this['scene']=this['_map']['scene'],this['camera']=this['_map'][_0x41696a(0x13d)],this[_0x41696a(0x225)]=new Cesium$1['PrimitiveCollection'](),this['_map'][_0x41696a(0x1e1)][_0x41696a(0x225)]['add'](this[_0x41696a(0x225)]),this[_0x41696a(0x14f)]={'lonRange':new Cesium$1[(_0x41696a(0x1da))](),'latRange':new Cesium$1[(_0x41696a(0x1da))](),'pixelSize':0x0},this[_0x41696a(0x1b8)]=new Cesium$1['BoundingSphere'](Cesium$1[_0x41696a(0x203)]['ZERO'],0.99*0x615299),this['updateViewerParameters'](),window['addEventListener'](_0x41696a(0x158),this['resize'][_0x41696a(0x19f)](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x41696a(0x1a1)],this),this[_0x41696a(0x215)]['on'](mars3d__namespace['EventType'][_0x41696a(0x1ed)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x41696a(0x1e7)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['_data']&&this[_0x41696a(0x160)](this['_data']);}},{'key':'_removedHook','value':function _0x2d1c79(){var _0x288f73=_0x344af0;window['removeEventListener'](_0x288f73(0x158),this['resize']),this[_0x288f73(0x215)]['off'](mars3d__namespace[_0x288f73(0x21c)]['preRender'],this['_onMap_preRenderEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['wheel'],this[_0x288f73(0x1a1)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace[_0x288f73(0x21c)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x288f73(0x225)]['removeAll'](),this[_0x288f73(0x215)][_0x288f73(0x1e1)][_0x288f73(0x225)][_0x288f73(0x157)](this['primitives']);}},{'key':_0x344af0(0x158),'value':function _0x3e5d0c(){var _0x50af41=_0x344af0;if(!this['show']||!this['particleSystem'])return;this['primitives']['show']=![],this['primitives']['removeAll'](),this[_0x50af41(0x215)]['once'](mars3d__namespace['EventType'][_0x50af41(0x227)],this[_0x50af41(0x18f)],this);}},{'key':_0x344af0(0x18f),'value':function _0x54b431(_0x13bd9e){var _0x10f47e=_0x344af0;this[_0x10f47e(0x139)]['canvasResize'](this[_0x10f47e(0x1e1)]['context']),this['addPrimitives'](),this['primitives']['show']=!![];}},{'key':_0x344af0(0x1a1),'value':function _0x51f810(_0x458972){var _0x4d3572=_0x344af0,_0x50a8d3=this;clearTimeout(this[_0x4d3572(0x131)]);if(!this['show']||!this[_0x4d3572(0x139)])return;this[_0x4d3572(0x225)]['show']=![],this['refreshTimer']=setTimeout(function(){if(!_0x50a8d3['show'])return;_0x50a8d3['redraw']();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x397b39(_0x31bea6){var _0x411118=_0x344af0;this[_0x411118(0x224)]=!![];}},{'key':'_onMouseMoveEvent','value':function _0x4334e5(_0x46328a){var _0x5b5da7=_0x344af0;if(!this[_0x5b5da7(0x147)]||!this[_0x5b5da7(0x139)])return;this['mouse_down']&&(this[_0x5b5da7(0x225)]['show']=![],this[_0x5b5da7(0x129)]=!![]);}},{'key':_0x344af0(0x1e7),'value':function _0x40f661(_0x15d843){var _0x590b77=_0x344af0;if(!this['show']||!this['particleSystem'])return;this[_0x590b77(0x224)]&&this['mouse_move']&&this['redraw'](),this['primitives']['show']=!![],this[_0x590b77(0x224)]=![],this[_0x590b77(0x129)]=![];}},{'key':'redraw','value':function _0x2f51a1(){var _0x3d05e3=_0x344af0;if(!this[_0x3d05e3(0x215)]||!this['show'])return;this[_0x3d05e3(0x1ec)](),this['particleSystem']['applyViewerParameters'](this['viewerParameters']),this['primitives']['show']=!![];}},{'key':'setData','value':function _0x32e4c3(_0x2285e9){var _0x71fd99=_0x344af0;this[_0x71fd99(0x130)]=_0x2285e9,this['particleSystem']&&this['particleSystem'][_0x71fd99(0x182)](),this['particleSystem']=new ParticleSystem(this['scene']['context'],_0x2285e9,this['getOptions'](),this[_0x71fd99(0x14f)]),this['addPrimitives']();}},{'key':'_setOptionsHook','value':function _0x3ec98f(_0xa99756,_0x142da1){if(_0xa99756)for(var _0x230c55 in _0xa99756){this[_0x230c55]=_0xa99756[_0x230c55];}this['particleSystem']&&this['particleSystem']['setOptions'](this['getOptions']());}},{'key':'getOptions','value':function _0x3da507(){var _0x4edb97=_0x344af0,_0x39bcd8=Math['ceil'](Math['sqrt'](this[_0x4edb97(0x1f3)]));return this[_0x4edb97(0x1f3)]=_0x39bcd8*_0x39bcd8,{'particlesTextureSize':_0x39bcd8,'maxParticles':this[_0x4edb97(0x1f3)],'particleHeight':this['fixedHeight'],'fadeOpacity':this[_0x4edb97(0x1ea)],'dropRate':this['dropRate'],'dropRateBump':this['dropRateBump'],'speedFactor':this[_0x4edb97(0x1d8)],'lineWidth':this['lineWidth'],'colors':this['colors']};}},{'key':_0x344af0(0x1df),'value':function _0x205768(){var _0x418ca6=_0x344af0;this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives'][_0x418ca6(0x177)]),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives']['updateSpeed']),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives']['updatePosition']),this['primitives'][_0x418ca6(0x159)](this[_0x418ca6(0x139)]['particlesComputing']['primitives'][_0x418ca6(0x1db)]),this['primitives']['add'](this['particleSystem']['particlesComputing'][_0x418ca6(0x225)]['postProcessingSpeed']),this['primitives']['add'](this['particleSystem'][_0x418ca6(0x223)]['primitives']['segments']),this[_0x418ca6(0x225)][_0x418ca6(0x159)](this['particleSystem']['particlesRendering']['primitives'][_0x418ca6(0x1e4)]),this['primitives']['add'](this['particleSystem']['particlesRendering'][_0x418ca6(0x225)]['screen']);}},{'key':'updateViewerParameters','value':function _0x594b6c(){var _0x18e5f5=_0x344af0,_0x172af8=this['camera']['computeViewRectangle'](this['scene']['globe']['ellipsoid']);if(!_0x172af8){var _0x34c72c=this['_map']['getExtent']();_0x172af8=Cesium$1[_0x18e5f5(0x18c)][_0x18e5f5(0x1c6)](_0x34c72c['xmin'],_0x34c72c['ymin'],_0x34c72c['xmax'],_0x34c72c['ymax']);}var _0x25e879=Util[_0x18e5f5(0x21d)](_0x172af8);this['viewerParameters'][_0x18e5f5(0x1ba)]['x']=_0x25e879['lon']['min'],this['viewerParameters'][_0x18e5f5(0x1ba)]['y']=_0x25e879['lon'][_0x18e5f5(0x13b)],this['viewerParameters']['latRange']['x']=_0x25e879['lat']['min'],this[_0x18e5f5(0x14f)]['latRange']['y']=_0x25e879['lat']['max'];var _0x1bab2a=this['camera']['getPixelSize'](this[_0x18e5f5(0x1b8)],this[_0x18e5f5(0x1e1)]['drawingBufferWidth'],this['scene']['drawingBufferHeight']);_0x1bab2a>0x0&&(this['viewerParameters']['pixelSize']=_0x1bab2a);}}]),_0x200d45;}(BaseLayer$1);mars3d__namespace['LayerUtil'][_0x2f5537(0x221)]('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){function _0x2a7ed2(){var _0x1fb8c1=_0x2e61;_classCallCheck(this,_0x2a7ed2),this['lng']=null,this['lat']=null,this[_0x1fb8c1(0x187)]=null,this['tlat']=null,this[_0x1fb8c1(0x1ab)]=null;}return _createClass(_0x2a7ed2,[{'key':'destroy','value':function _0x1fa435(){for(var _0x514ea5 in this){delete this[_0x514ea5];}}}]),_0x2a7ed2;}()),CanvasWindField=(function(){var _0x2e475f=_0x2f5537;function _0x64f00d(_0xb781b6){_classCallCheck(this,_0x64f00d),this['setOptions'](_0xb781b6);}return _createClass(_0x64f00d,[{'key':'speedRate','get':function _0x866b90(){return this['_speedRate'];},'set':function _0x536ced(_0x6a223e){var _0x407d84=_0x2e61;this['_speedRate']=(0x64-(_0x6a223e>0x63?0x63:_0x6a223e))*0x64,this[_0x407d84(0x19d)]=[(this[_0x407d84(0x171)]-this['xmin'])/this[_0x407d84(0x17b)],(this['ymax']-this[_0x407d84(0x170)])/this[_0x407d84(0x17b)]];}},{'key':'maxAge','get':function _0x42f18b(){return this['_maxAge'];},'set':function _0x300a76(_0x318e6c){var _0x14e3d0=_0x2e61;this[_0x14e3d0(0x1ee)]=_0x318e6c;}},{'key':_0x2e475f(0x1eb),'value':function _0x211271(_0x18a402){var _0x3c4019=_0x2e475f;this[_0x3c4019(0x206)]=_0x18a402,this['maxAge']=_0x18a402[_0x3c4019(0x1a4)]||0x78,this[_0x3c4019(0x214)]=_0x18a402[_0x3c4019(0x214)]||0x32,this[_0x3c4019(0x1a5)]=[];var _0x2c9020=_0x18a402['particlesNumber']||0x1000;for(var _0x20970b=0x0;_0x20970b<_0x2c9020;_0x20970b++){var _0xe9550=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0xe9550);}}},{'key':'setDate','value':function _0x4f4eed(_0x2203eb){var _0x5a6c6a=_0x2e475f;this[_0x5a6c6a(0x1c9)]=_0x2203eb['rows'],this['cols']=_0x2203eb['cols'],this['xmin']=_0x2203eb['xmin'],this[_0x5a6c6a(0x171)]=_0x2203eb[_0x5a6c6a(0x171)],this['ymin']=_0x2203eb['ymin'],this[_0x5a6c6a(0x1f1)]=_0x2203eb['ymax'],this['grid']=[];var _0x4bd7e0=_0x2203eb['udata'],_0x3b79e7=_0x2203eb['vdata'],_0x255fe5=![];_0x4bd7e0['length']===this['rows']&&_0x4bd7e0[0x0]['length']===this['cols']&&(_0x255fe5=!![]);var _0x8b7697=0x0,_0x56d101=null,_0x3fe286=null;for(var _0x5f37d6=0x0;_0x5f37d6<this['rows'];_0x5f37d6++){_0x56d101=[];for(var _0x204cf5=0x0;_0x204cf5<this['cols'];_0x204cf5++,_0x8b7697++){_0x255fe5?_0x3fe286=this['_calcUV'](_0x4bd7e0[_0x5f37d6][_0x204cf5],_0x3b79e7[_0x5f37d6][_0x204cf5]):_0x3fe286=this['_calcUV'](_0x4bd7e0[_0x8b7697],_0x3b79e7[_0x8b7697]),_0x56d101['push'](_0x3fe286);}this['grid']['push'](_0x56d101);}this['options']['reverseY']&&this['grid'][_0x5a6c6a(0x1f8)]();}},{'key':'clear','value':function _0xffcc15(){var _0x30da94=_0x2e475f;delete this['rows'],delete this[_0x30da94(0x184)],delete this['xmin'],delete this[_0x30da94(0x171)],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this['particles'];}},{'key':'toGridXY','value':function _0x5b99d1(_0x40630c,_0x144aa4){var _0x4bd412=_0x2e475f,_0x5e1ce4=(_0x40630c-this['xmin'])/(this['xmax']-this['xmin'])*(this['cols']-0x1),_0x478010=(this['ymax']-_0x144aa4)/(this['ymax']-this['ymin'])*(this[_0x4bd412(0x1c9)]-0x1);return[_0x5e1ce4,_0x478010];}},{'key':'getUVByXY','value':function _0x19576a(_0x137f9e,_0x1d55b2){var _0x4346a2=_0x2e475f;if(_0x137f9e<0x0||_0x137f9e>=this['cols']||_0x1d55b2>=this[_0x4346a2(0x1c9)])return[0x0,0x0,0x0];var _0x3a8e54=Math[_0x4346a2(0x1cd)](_0x137f9e),_0x1f7e13=Math[_0x4346a2(0x1cd)](_0x1d55b2);if(_0x3a8e54===_0x137f9e&&_0x1f7e13===_0x1d55b2)return this[_0x4346a2(0x1a3)][_0x1d55b2][_0x137f9e];var _0x4f3b7c=_0x3a8e54+0x1,_0x37adc3=_0x1f7e13+0x1,_0x1f86d8=this[_0x4346a2(0x209)](_0x3a8e54,_0x1f7e13),_0x3fb207=this['getUVByXY'](_0x4f3b7c,_0x1f7e13),_0x3bf6b5=this['getUVByXY'](_0x3a8e54,_0x37adc3),_0x2ffc5c=this['getUVByXY'](_0x4f3b7c,_0x37adc3),_0x595f0d=null;try{_0x595f0d=this['_bilinearInterpolation'](_0x137f9e-_0x3a8e54,_0x1d55b2-_0x1f7e13,_0x1f86d8,_0x3fb207,_0x3bf6b5,_0x2ffc5c);}catch(_0xae4e9c){console[_0x4346a2(0x16d)](_0x137f9e,_0x1d55b2);}return _0x595f0d;}},{'key':'_bilinearInterpolation','value':function _0x396513(_0xaf9818,_0x23e52c,_0x1a38f7,_0x42f2f7,_0x11f7bf,_0x3102bc){var _0x59c519=_0x2e475f,_0x5d3f90=0x1-_0xaf9818,_0x4f4e6b=0x1-_0x23e52c,_0x4ed7e4=_0x5d3f90*_0x4f4e6b,_0x597a87=_0xaf9818*_0x4f4e6b,_0x244be3=_0x5d3f90*_0x23e52c,_0x2d0b7e=_0xaf9818*_0x23e52c,_0x9324cc=_0x1a38f7[0x0]*_0x4ed7e4+_0x42f2f7[0x0]*_0x597a87+_0x11f7bf[0x0]*_0x244be3+_0x3102bc[0x0]*_0x2d0b7e,_0x29b053=_0x1a38f7[0x1]*_0x4ed7e4+_0x42f2f7[0x1]*_0x597a87+_0x11f7bf[0x1]*_0x244be3+_0x3102bc[0x1]*_0x2d0b7e;return this[_0x59c519(0x1d5)](_0x9324cc,_0x29b053);}},{'key':'_calcUV','value':function _0x267ac3(_0x1e8208,_0x4a2edc){var _0x22628a=_0x2e475f;return[+_0x1e8208,+_0x4a2edc,Math[_0x22628a(0x166)](_0x1e8208*_0x1e8208+_0x4a2edc*_0x4a2edc)];}},{'key':_0x2e475f(0x18b),'value':function _0x599864(_0x39b637,_0x13eb10){var _0x185e37=_0x2e475f;if(!this[_0x185e37(0x190)](_0x39b637,_0x13eb10))return null;var _0x11971f=this['toGridXY'](_0x39b637,_0x13eb10),_0x22a0a0=this['getUVByXY'](_0x11971f[0x0],_0x11971f[0x1]);return _0x22a0a0;}},{'key':_0x2e475f(0x190),'value':function _0x257a66(_0x47de90,_0x5a8023){var _0x14ce87=_0x2e475f;return _0x47de90>=this['xmin']&&_0x47de90<=this[_0x14ce87(0x171)]&&_0x5a8023>=this[_0x14ce87(0x170)]&&_0x5a8023<=this[_0x14ce87(0x1f1)]?!![]:![];}},{'key':'getRandomLatLng','value':function _0x32afed(){var _0x16e907=_0x2e475f,_0x2e9ede=fRandomByfloat(this['xmin'],this['xmax']),_0x363c6b=fRandomByfloat(this[_0x16e907(0x170)],this['ymax']);return{'lat':_0x363c6b,'lng':_0x2e9ede};}},{'key':_0x2e475f(0x1b0),'value':function _0x4ddd6b(){var _0x3ec9d6=_0x2e475f,_0x17d642,_0x1acd51,_0x14a8b2;for(var _0x19241f=0x0,_0x58afe5=this['particles'][_0x3ec9d6(0x1be)];_0x19241f<_0x58afe5;_0x19241f++){var _0x21b457=this[_0x3ec9d6(0x1a5)][_0x19241f];_0x21b457[_0x3ec9d6(0x1ab)]<=0x0&&(_0x21b457=this['_randomParticle'](_0x21b457));if(_0x21b457['age']>0x0){var _0x2901ed=_0x21b457['tlng'],_0x332dbf=_0x21b457['tlat'];_0x14a8b2=this['getUVByPoint'](_0x2901ed,_0x332dbf),_0x14a8b2?(_0x17d642=_0x2901ed+this['_calc_speedRate'][0x0]*_0x14a8b2[0x0],_0x1acd51=_0x332dbf+this[_0x3ec9d6(0x19d)][0x1]*_0x14a8b2[0x1],_0x21b457['lng']=_0x2901ed,_0x21b457[_0x3ec9d6(0x15e)]=_0x332dbf,_0x21b457['tlng']=_0x17d642,_0x21b457['tlat']=_0x1acd51,_0x21b457['age']--):_0x21b457[_0x3ec9d6(0x1ab)]=0x0;}}return this[_0x3ec9d6(0x1a5)];}},{'key':'_randomParticle','value':function _0x2ddb4c(_0x37d47e){var _0x37513f=_0x2e475f,_0x5d643e,_0x115d81;for(var _0x1b0fac=0x0;_0x1b0fac<0x1e;_0x1b0fac++){_0x5d643e=this[_0x37513f(0x128)](),_0x115d81=this['getUVByPoint'](_0x5d643e['lng'],_0x5d643e['lat']);if(_0x115d81&&_0x115d81[0x2]>0x0)break;}if(!_0x115d81)return _0x37d47e;var _0x543794=_0x5d643e['lng']+this['_calc_speedRate'][0x0]*_0x115d81[0x0],_0x433bf3=_0x5d643e['lat']+this['_calc_speedRate'][0x1]*_0x115d81[0x1];return _0x37d47e[_0x37513f(0x211)]=_0x5d643e['lng'],_0x37d47e['lat']=_0x5d643e['lat'],_0x37d47e[_0x37513f(0x187)]=_0x543794,_0x37d47e['tlat']=_0x433bf3,_0x37d47e['age']=Math[_0x37513f(0x21e)](Math[_0x37513f(0x1a8)]()*this[_0x37513f(0x1a4)]),_0x37d47e;}},{'key':'destroy','value':function _0x2ac553(){for(var _0x3af6b8 in this){delete this[_0x3af6b8];}}}]),_0x64f00d;}());function fRandomByfloat(_0x118b1a,_0x3cf806){return _0x118b1a+Math['random']()*(_0x3cf806-_0x118b1a);}var Cesium=mars3d__namespace[_0x2f5537(0x140)],BaseLayer=mars3d__namespace['layer'][_0x2f5537(0x173)],CanvasWindLayer=function(_0x2ef83a){var _0x1de7f1=_0x2f5537;_inherits(_0x4d0e32,_0x2ef83a);var _0x3518c1=_createSuper(_0x4d0e32);function _0x4d0e32(){var _0x137246,_0x32c014=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x4d0e32),_0x137246=_0x3518c1['call'](this,_0x32c014),_0x137246['_setOptionsHook'](_0x32c014),_0x137246['canvas']=null,_0x137246;}return _createClass(_0x4d0e32,[{'key':'_setOptionsHook','value':function _0x20d04b(_0x50f8a6,_0x1656c8){var _0x48b3d3=_0x2e61,_0x2ac997,_0x506cec,_0x3c5c62;this[_0x48b3d3(0x16f)]=0x3e8/(_0x50f8a6['frameRate']||0xa),this['_pointerEvents']=(_0x2ac997=this[_0x48b3d3(0x206)][_0x48b3d3(0x176)])!==null&&_0x2ac997!==void 0x0?_0x2ac997:![],this['color']=_0x50f8a6[_0x48b3d3(0x14e)]||_0x48b3d3(0x1d6),this['lineWidth']=_0x50f8a6['lineWidth']||0x1,this['fixedHeight']=(_0x506cec=_0x50f8a6[_0x48b3d3(0x220)])!==null&&_0x506cec!==void 0x0?_0x506cec:0x0,this['reverseY']=(_0x3c5c62=_0x50f8a6['reverseY'])!==null&&_0x3c5c62!==void 0x0?_0x3c5c62:![],this[_0x48b3d3(0x205)]&&this[_0x48b3d3(0x205)]['setOptions'](_0x50f8a6);}},{'key':_0x1de7f1(0x229),'get':function _0x7e3d07(){return this['canvas'];}},{'key':_0x1de7f1(0x1d4),'get':function _0xe2f2ce(){return this['_map']['scene']['canvas']['clientWidth'];}},{'key':'canvasHeight','get':function _0x42694(){var _0x5698a1=_0x1de7f1;return this['_map'][_0x5698a1(0x1e1)][_0x5698a1(0x13c)]['clientHeight'];}},{'key':_0x1de7f1(0x176),'get':function _0x38d210(){return this['_pointerEvents'];},'set':function _0x4cfe4d(_0x4e7898){var _0x1662e9=_0x1de7f1;this['_pointerEvents']=_0x4e7898;if(!this['canvas'])return;_0x4e7898?this['canvas'][_0x1662e9(0x175)]['pointer-events']='all':this['canvas'][_0x1662e9(0x175)][_0x1662e9(0x1ac)]='none';}},{'key':'particlesNumber','get':function _0x442a09(){var _0x2cd1fc=_0x1de7f1;return this[_0x2cd1fc(0x206)]['particlesNumber'];},'set':function _0x7fef92(_0x11cec7){var _0x30afed=_0x1de7f1,_0x1b13f3=this;this[_0x30afed(0x206)][_0x30afed(0x1f3)]=_0x11cec7,clearTimeout(this[_0x30afed(0x20c)]),this[_0x30afed(0x20c)]=setTimeout(function(){_0x1b13f3['redraw']();},0x1f4);}},{'key':'speedRate','get':function _0x37fe8e(){var _0x50ea50=_0x1de7f1;return this[_0x50ea50(0x206)]['speedRate'];},'set':function _0x78ee96(_0x3f3e5c){var _0x31e0f8=_0x1de7f1;this['options']['speedRate']=_0x3f3e5c,this[_0x31e0f8(0x205)]&&(this[_0x31e0f8(0x205)][_0x31e0f8(0x214)]=_0x3f3e5c);}},{'key':'maxAge','get':function _0x2dcdb2(){return this['options']['maxAge'];},'set':function _0x2f57ff(_0x394b53){var _0x53ebcb=_0x1de7f1;this[_0x53ebcb(0x206)]['maxAge']=_0x394b53,this['windField']&&(this[_0x53ebcb(0x205)]['maxAge']=_0x394b53);}},{'key':'data','get':function _0x2d7ad6(){var _0x3ca5a9=_0x1de7f1;return this[_0x3ca5a9(0x21a)];},'set':function _0x577257(_0x11cd79){this['setData'](_0x11cd79);}},{'key':_0x1de7f1(0x163),'value':function _0x1f99fc(_0x3cc7a5){var _0x52d656=_0x1de7f1;_0x3cc7a5?this[_0x52d656(0x17e)]():(this[_0x52d656(0x21a)]&&(this['options']['data']=this[_0x52d656(0x21a)]),this['_removedHook']());}},{'key':_0x1de7f1(0x133),'value':function _0x457a18(){var _0x597ab7=_0x1de7f1;this['options']['worker']?this[_0x597ab7(0x201)]():this['windField']=new CanvasWindField(this['options']);}},{'key':_0x1de7f1(0x17e),'value':function _0x111fcc(){var _0x364ab6=_0x1de7f1;this['canvas']=this['_createCanvas'](),this['canvasContext']=this[_0x364ab6(0x13c)][_0x364ab6(0x1f0)]('2d',{'willReadFrequently':!![]}),this['bindEvent'](),this['options']['data']&&this['setData'](this['options']['data']);}},{'key':_0x1de7f1(0x14d),'value':function _0x5ca152(){var _0x3bea42=_0x1de7f1;this[_0x3bea42(0x1d3)](),this['unbindEvent'](),this['canvas']&&(this[_0x3bea42(0x215)]['container']['removeChild'](this[_0x3bea42(0x13c)]),delete this['canvas']);}},{'key':'_createCanvas','value':function _0x55369a(){var _0x571af5=_0x1de7f1,_0x1ba452=document['createElement']('canvas');_0x1ba452['style']['position']=_0x571af5(0x1ce),_0x1ba452['style']['top']='0px',_0x1ba452['style']['left']='0px',_0x1ba452[_0x571af5(0x175)]['width']=_0x571af5(0x1fc),_0x1ba452['style']['height']='100%',_0x1ba452['style'][_0x571af5(0x176)]=this['_pointerEvents']?'auto':_0x571af5(0x202),_0x1ba452['style']['zIndex']=0xa,_0x1ba452[_0x571af5(0x179)]('id','canvasWindy'),_0x1ba452['setAttribute'](_0x571af5(0x1ad),'canvasWindy'),this[_0x571af5(0x215)]['container'][_0x571af5(0x1c7)](_0x1ba452);var _0x7c77be=this['_map']['scene'];return _0x1ba452['width']=_0x7c77be['canvas']['clientWidth'],_0x1ba452['height']=_0x7c77be['canvas']['clientHeight'],_0x1ba452;}},{'key':'resize','value':function _0x3bff6a(){var _0x5af75a=_0x1de7f1;this[_0x5af75a(0x13c)]&&(this['canvas']['width']=this['canvasWidth'],this['canvas']['height']=this['canvasHeight']);}},{'key':_0x1de7f1(0x180),'value':function _0x3fc7a9(){var _0x1e4b02=_0x1de7f1,_0x473360=this,_0x5978e9=Date['now']();(function _0x333def(){var _0x54bfd7=_0x2e61;_0x473360[_0x54bfd7(0x17d)]=window[_0x54bfd7(0x1cb)](_0x333def);if(_0x473360['show']&&_0x473360['windField']){var _0x504b08=Date['now'](),_0x27e9ae=_0x504b08-_0x5978e9;_0x27e9ae>_0x473360[_0x54bfd7(0x16f)]&&(_0x5978e9=_0x504b08-_0x27e9ae%_0x473360['frameTime'],_0x473360[_0x54bfd7(0x18a)]());}}(),window['addEventListener']('resize',this[_0x1e4b02(0x158)][_0x1e4b02(0x19f)](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x1e4b02(0x21c)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x1e4b02(0x21c)]['mouseUp'],this['_onMouseUpEvent'],this)));}},{'key':'unbindEvent','value':function _0x1741d2(){var _0x1e8bb7=_0x1de7f1;window['cancelAnimationFrame'](this['animateFrame']),delete this[_0x1e8bb7(0x17d)],window['removeEventListener']('resize',this[_0x1e8bb7(0x158)]),this['options'][_0x1e8bb7(0x162)]&&(this['_map']['off'](mars3d__namespace['EventType']['wheel'],this[_0x1e8bb7(0x1a1)],this),this['_map'][_0x1e8bb7(0x222)](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x1e8bb7(0x185)],this['_onMouseUpEvent'],this),this[_0x1e8bb7(0x215)]['off'](mars3d__namespace[_0x1e8bb7(0x21c)]['mouseMove'],this['_onMouseMoveEvent'],this));}},{'key':'_onMapWhellEvent','value':function _0x460615(_0x21068f){var _0x3eb45d=_0x1de7f1,_0x3b009b=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this[_0x3eb45d(0x13c)][_0x3eb45d(0x175)]['visibility']='hidden',this[_0x3eb45d(0x131)]=setTimeout(function(){var _0x1eb060=_0x3eb45d;if(!_0x3b009b['show'])return;_0x3b009b['redraw'](),_0x3b009b[_0x1eb060(0x13c)][_0x1eb060(0x175)][_0x1eb060(0x178)]='visible';},0xc8);}},{'key':_0x1de7f1(0x226),'value':function _0x2ce542(_0x10227a){var _0x245b97=_0x1de7f1;this[_0x245b97(0x224)]=!![],this['_map'][_0x245b97(0x222)](mars3d__namespace['EventType'][_0x245b97(0x218)],this['_onMouseMoveEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}},{'key':_0x1de7f1(0x13a),'value':function _0x5e765a(_0xd6fefa){var _0xb3c5df=_0x1de7f1;if(!this['show']||!this[_0xb3c5df(0x13c)])return;this[_0xb3c5df(0x224)]&&(this['canvas']['style']['visibility']='hidden',this[_0xb3c5df(0x129)]=!![]);}},{'key':'_onMouseUpEvent','value':function _0x3d1c7a(_0x22c972){var _0x268dd8=_0x1de7f1;if(!this['show']||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this[_0x268dd8(0x13c)]['style']['visibility']='visible',this['mouse_down']=![],this[_0x268dd8(0x129)]=![];}},{'key':'setData','value':function _0x4a6a2a(_0x4c1cae){var _0x343653=_0x1de7f1;this['clear'](),this[_0x343653(0x21a)]=_0x4c1cae,this['windField'][_0x343653(0x167)](_0x4c1cae),this['redraw']();}},{'key':_0x1de7f1(0x15f),'value':function _0x39f4cc(){var _0x2e22ca=_0x1de7f1;if(!this['show'])return;this['windField']['setOptions'](this['options']),this[_0x2e22ca(0x18a)]();}},{'key':'update','value':function _0x4431ae(){var _0x48e561=_0x1de7f1;if(this[_0x48e561(0x198)])return;this['_updateIng']=!![];if(this['worker'])this['windField'][_0x48e561(0x18a)]();else{var _0x264f21=this['windField']['getParticles']();this['_drawLines'](_0x264f21);}this[_0x48e561(0x198)]=![];}},{'key':'_drawLines','value':function _0x56602b(_0x1fe181){var _0x2f9efa=_0x1de7f1;this['canvasContext'][_0x2f9efa(0x195)]='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext'][_0x2f9efa(0x195)]='lighter',this['canvasContext']['globalAlpha']=0.9,this['canvasContext'][_0x2f9efa(0x1a2)](),this[_0x2f9efa(0x21f)]['lineWidth']=this['lineWidth'],this[_0x2f9efa(0x21f)][_0x2f9efa(0x1f4)]=this['color'];var _0x67f5f4=this['_map']['scene'][_0x2f9efa(0x144)]!==Cesium[_0x2f9efa(0x183)][_0x2f9efa(0x213)];for(var _0x481aa0=0x0,_0x55ebed=_0x1fe181['length'];_0x481aa0<_0x55ebed;_0x481aa0++){var _0x45305c=_0x1fe181[_0x481aa0],_0x1cd58b=this['_tomap'](_0x45305c['lng'],_0x45305c[_0x2f9efa(0x15e)],_0x45305c),_0x549f76=this[_0x2f9efa(0x1e0)](_0x45305c['tlng'],_0x45305c['tlat'],_0x45305c);if(!_0x1cd58b||!_0x549f76)continue;if(_0x67f5f4&&Math['abs'](_0x1cd58b[0x0]-_0x549f76[0x0])>=this['canvasWidth'])continue;this['canvasContext']['moveTo'](_0x1cd58b[0x0],_0x1cd58b[0x1]),this[_0x2f9efa(0x21f)]['lineTo'](_0x549f76[0x0],_0x549f76[0x1]);}this['canvasContext'][_0x2f9efa(0x1fb)]();}},{'key':'_tomap','value':function _0x44e8d8(_0x179224,_0xe129f3,_0xbcd3c2){var _0x38f87f=_0x1de7f1,_0x59369d=Cesium[_0x38f87f(0x203)]['fromDegrees'](_0x179224,_0xe129f3,this['fixedHeight']),_0xa5f9ac=this['_map']['scene'];if(_0xa5f9ac[_0x38f87f(0x144)]===Cesium[_0x38f87f(0x183)]['SCENE3D']){var _0x1a88c2=new Cesium['EllipsoidalOccluder'](_0xa5f9ac[_0x38f87f(0x1a7)]['ellipsoid'],_0xa5f9ac['camera']['positionWC']),_0x4fa5e9=_0x1a88c2['isPointVisible'](_0x59369d);if(!_0x4fa5e9)return _0xbcd3c2['age']=0x0,null;}var _0x18904a=Cesium[_0x38f87f(0x14b)][_0x38f87f(0x1d9)](this[_0x38f87f(0x215)]['scene'],_0x59369d);return _0x18904a?[_0x18904a['x'],_0x18904a['y']]:null;}},{'key':_0x1de7f1(0x1d3),'value':function _0x3cf8ee(){var _0x48dd70=_0x1de7f1;this[_0x48dd70(0x205)]['clear'](),delete this['windData'];}},{'key':'initWorker','value':function _0x153c66(){var _0x19e20a=_0x1de7f1,_0x41d41d=this;this['worker']=new Worker(this['options']['worker']),this[_0x19e20a(0x1cf)]['onmessage']=function(_0x2cb3a3){var _0x41c2d3=_0x19e20a;_0x41d41d['_drawLines'](_0x2cb3a3[_0x41c2d3(0x161)]['particles']),_0x41d41d['_updateIng2']=![];},this[_0x19e20a(0x205)]={'init':function _0x1417bb(_0x4977fe){_0x41d41d['worker']['postMessage']({'type':'init','options':_0x4977fe});},'setOptions':function _0x1eba50(_0x4e399d){_0x41d41d['worker']['postMessage']({'type':'setOptions','options':_0x4e399d});},'setDate':function _0x20ba3e(_0x36948e){_0x41d41d['worker']['postMessage']({'type':'setDate','data':_0x36948e});},'update':function _0x5eace2(){var _0xf6c431=_0x19e20a;if(_0x41d41d['_updateIng2'])return;_0x41d41d[_0xf6c431(0x210)]=!![],_0x41d41d['worker']['postMessage']({'type':'update'});},'clear':function _0x50de7b(){var _0x56ddf9=_0x19e20a;_0x41d41d[_0x56ddf9(0x1cf)]['postMessage']({'type':_0x56ddf9(0x1d3)});}},this['windField']['init'](this['options']);}}]),_0x4d0e32;}(BaseLayer);mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x2f5537(0x1fa)]=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x2f5537(0x16a)]=WindUtil,Object['defineProperty'](exports,'__esModule',{'value':!![]});
|
||
}));
|