Lin_Ye_Fang_Huo/public/lib/mars3d/plugins/wind/mars3d-wind.js

16 lines
90 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* 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':!![]});
}));