mars3d-wind 3.5.0 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,15 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.5.0
5
- * 编译日期:2023-03-17 08:59:22
4
+ * 版本信息:v3.5.1
5
+ * 编译日期:2023-03-27 17:50:09
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
- * 使用单位:免费公开版 ,2022-10-01
7
+ * 使用单位:免费公开版 ,2023-03-17
8
8
  */
9
9
  (function (global, factory) {
10
10
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, (window.mars3d || require('mars3d'))) :
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';var _0x34bf58=_0x170b;(function(_0x323483,_0x3579c0){var _0x28def0=_0x170b,_0xc2f86b=_0x323483();while(!![]){try{var _0x53b0af=-parseInt(_0x28def0(0x1a3))/0x1+-parseInt(_0x28def0(0x160))/0x2*(-parseInt(_0x28def0(0x14d))/0x3)+parseInt(_0x28def0(0x148))/0x4*(parseInt(_0x28def0(0x19f))/0x5)+parseInt(_0x28def0(0x1e4))/0x6+parseInt(_0x28def0(0x165))/0x7+-parseInt(_0x28def0(0x17f))/0x8+parseInt(_0x28def0(0x137))/0x9*(-parseInt(_0x28def0(0x11a))/0xa);if(_0x53b0af===_0x3579c0)break;else _0xc2f86b['push'](_0xc2f86b['shift']());}catch(_0x32ae6d){_0xc2f86b['push'](_0xc2f86b['shift']());}}}(_0x2721,0xa3933));function _interopNamespace(_0x1e34ad){var _0x320630=_0x170b;if(_0x1e34ad&&_0x1e34ad[_0x320630(0x13e)])return _0x1e34ad;var _0x756f05=Object['create'](null);return _0x1e34ad&&Object['keys'](_0x1e34ad)['forEach'](function(_0xfe6a29){var _0x14c50a=_0x320630;if(_0xfe6a29!==_0x14c50a(0x14f)){var _0x401f88=Object['getOwnPropertyDescriptor'](_0x1e34ad,_0xfe6a29);Object['defineProperty'](_0x756f05,_0xfe6a29,_0x401f88['get']?_0x401f88:{'enumerable':!![],'get':function(){return _0x1e34ad[_0xfe6a29];}});}}),_0x756f05['default']=_0x1e34ad,_0x756f05;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0xf89174,_0x37ddf8){var _0x5e28ae=_0x170b,_0x30436e=_0xf89174*Math['cos'](Cesium$7[_0x5e28ae(0x1d1)][_0x5e28ae(0x181)](_0x37ddf8));return _0x30436e;}function getV(_0x12db4b,_0x2bd4b5){var _0xa13474=_0x170b,_0x1db6d4=_0x12db4b*Math[_0xa13474(0x12f)](Cesium$7['Math']['toRadians'](_0x2bd4b5));return _0x1db6d4;}function getSpeed(_0x46de05,_0x18ae6c){var _0x4dc3eb=Math['sqrt'](Math['pow'](_0x46de05,0x2)+Math['pow'](_0x18ae6c,0x2));return _0x4dc3eb;}function getDirection(_0x46fc32,_0xe21002){var _0x12bed2=Cesium$7['Math']['toDegrees'](Math['atan2'](_0xe21002,_0x46fc32));return _0x12bed2+=_0x12bed2<0x0?0x168:0x0,_0x12bed2;}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0xc34830,_0x54afa8){var _0x36169a=_0x170b,_0x58fc79=Object[_0x36169a(0x1e9)](_0xc34830);if(Object['getOwnPropertySymbols']){var _0x23bb3b=Object[_0x36169a(0x1d7)](_0xc34830);_0x54afa8&&(_0x23bb3b=_0x23bb3b[_0x36169a(0x16b)](function(_0x31c00c){return Object['getOwnPropertyDescriptor'](_0xc34830,_0x31c00c)['enumerable'];})),_0x58fc79['push'][_0x36169a(0x108)](_0x58fc79,_0x23bb3b);}return _0x58fc79;}function _objectSpread2(_0x5b4426){var _0x2296a6=_0x170b;for(var _0x162024=0x1;_0x162024<arguments['length'];_0x162024++){var _0x4f9282=null!=arguments[_0x162024]?arguments[_0x162024]:{};_0x162024%0x2?ownKeys(Object(_0x4f9282),!0x0)['forEach'](function(_0x4de8a5){_defineProperty(_0x5b4426,_0x4de8a5,_0x4f9282[_0x4de8a5]);}):Object['getOwnPropertyDescriptors']?Object['defineProperties'](_0x5b4426,Object['getOwnPropertyDescriptors'](_0x4f9282)):ownKeys(Object(_0x4f9282))[_0x2296a6(0x17c)](function(_0xfb0049){var _0x25d4e9=_0x2296a6;Object['defineProperty'](_0x5b4426,_0xfb0049,Object[_0x25d4e9(0x18f)](_0x4f9282,_0xfb0049));});}return _0x5b4426;}function _0x2721(){var _0x1cc0df=['lat','red','LINEAR','canvasWidth','xmin','ellipsoid','TWO_PI','position','pointerEvents','Pass','clear','nextTrailsColor','UNSIGNED_BYTE','animateFrame','globalAlpha','forEach','lonRange','redraw','10546552mdItRd','class','toRadians','uniform\x20sampler2D\x20colorTable;\x0a\x0ain\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20out_FragColor\x20=\x20texture(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}\x0a','postProcessingSpeed','ZERO','height','mode','__proto__','primitives','particlesTextures','resize','particles','construct','mouseMove','textures','getOwnPropertyDescriptor','Cartesian2','shaderProgram','source','fromGeometry','defined','ymax','tlat','rgb(206,255,255)','push','ComponentDatatype','addPrimitives','Cartesian3','WindLayer','_setOptionsHook','vertexArray','128195BNGgBG','in\x20vec3\x20position;\x0ain\x20vec2\x20st;\x0a\x0aout\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0a}\x0a','south','segmentsColor','871919DMdrUc','computeViewRectangle','initWorker','PrimitiveType','Compute','canvasContext','max','createFramebuffer','_updateIng2','uniformMap','levmin','data','EventType','SceneMode','_onMouseMoveEvent','destroy','randomBetween','maxAge','lev','blue','globalCompositeOperation','ymin','stroke','geometry','Draw','_updateIng','vdata','PrimitiveCollection','enumerable','getPrototypeOf','windField','postProcessingPosition','hidden','register','ShaderSource','mouse_down','_calc_speedRate','lon','rawRenderState','particlesNumber','toGridXY','particlesRendering','DISABLE_GL_POSITION_LOG_DEPTH','particlesComputing','drawingBufferWidth','commandToExecute','Math','reverseY','autoClear','viewerParameters','createSegmentsGeometry','nextParticlesSpeed','getOwnPropertySymbols','getColorTexture','from','canvasResize','PI_OVER_THREE','createParticlesTextures','strokeStyle','Arguments','speedRate','RGBA','getUVByPoint','_drawLines','colorTable','4956378NHIPSZ','in\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0ain\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\x0aout\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\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\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=\x20texture(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture(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=\x20texture(postProcessingSpeed,\x20particleIndex).a;\x0a}\x0a','camera','uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0ain\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\x20out_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=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}\x0a','updateViewerParameters','keys','udata','createComputingPrimitives','_onMouseDownEvent','_onMouseUpEvent','LayerUtil','function','createTexture','style','fragmentShaderSource','worker','BufferUsage','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','round','prototype','wheel','SceneTransforms','frameTime','visible','pixelSize','Framebuffer','PixelFormat','grid','framebuffers','canvasWindy','wgs84ToWindowCoordinates','CanvasWindField','scene','uniform\x20sampler2D\x20segmentsColorTexture;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0auniform\x20sampler2D\x20currentTrailsColor;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0auniform\x20float\x20fadeOpacity;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture(segmentsColorTexture,\x20textureCoordinate);\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture(currentTrailsColor,\x20textureCoordinate);\x0a\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\x0a\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20out_FragColor\x20+\x20pointsColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20out_FragColor\x20+\x20trailsColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20gl_FragDepth\x20=\x20min(pointsDepth,\x20trailsDepth);\x0a}\x0a','postMessage','apply','Set','tlng','primitiveType','destroyParticlesTextures','lineTo','NEAREST','clearCommand','update','maxParticles','_onMapWhellEvent','options','setPrototypeOf','createWindTextures','show','addEventListener','clearFramebuffers','context','75630GuuMGF','length','currentTrails','defineProperty','nextTrailsDepth','nextTrails','wind','lng','container','all','preRender','removeEventListener','_speedRate','commandType','attributeLocations','dimensions','createRenderingFramebuffers','Geometry','toString','LUMINANCE','windTextures','sin','positionWC','refreshTimer','_map','mouse_move','createRawRenderState','canvas','rows','342KXkZQu','TRIANGLES','_randomParticle','toDegrees','STATIC_DRAW','colors','vmin','__esModule','setOptions','_data','moveTo','particleSystem','_removedHook','getOptions','min','particlesTextureSize','fadeOpacity','64lgIEXQ','_onMap_preRenderEvent','off','isInExtent','currentTrailsColor','669VebjlC','canvasHeight','default','dropRateBump','_canrefresh','cols','Cesium','GeometryAttribute','TextureMinificationFilter','getUVByXY','_maxAge','framebuffer','TextureMagnificationFilter','viewRectangleToLonLatRange','particlesWind','xmax','setData','_calcUV','100%','11314OEErpS','commandList','_pointerEvents','Rectangle','createElement','4548859PnMOws','PixelDatatype','layer','createRenderingTextures','removeAll','segments','filter','random'];_0x2721=function(){return _0x1cc0df;};return _0x2721();}function _0x170b(_0x11162c,_0x30bcf3){var _0x272189=_0x2721();return _0x170b=function(_0x170b60,_0xfeb92a){_0x170b60=_0x170b60-0xf5;var _0x41cadc=_0x272189[_0x170b60];return _0x41cadc;},_0x170b(_0x11162c,_0x30bcf3);}function _classCallCheck(_0x205ec3,_0x432e9d){if(!(_0x205ec3 instanceof _0x432e9d))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x2cfb0b,_0x26fdeb){var _0x4d9a0a=_0x170b;for(var _0x10571d=0x0;_0x10571d<_0x26fdeb[_0x4d9a0a(0x11b)];_0x10571d++){var _0x476043=_0x26fdeb[_0x10571d];_0x476043[_0x4d9a0a(0x1bf)]=_0x476043['enumerable']||![],_0x476043['configurable']=!![];if('value'in _0x476043)_0x476043['writable']=!![];Object['defineProperty'](_0x2cfb0b,_0x476043['key'],_0x476043);}}function _createClass(_0x580a46,_0x552531,_0x1bb94d){if(_0x552531)_defineProperties(_0x580a46['prototype'],_0x552531);if(_0x1bb94d)_defineProperties(_0x580a46,_0x1bb94d);return Object['defineProperty'](_0x580a46,'prototype',{'writable':![]}),_0x580a46;}function _defineProperty(_0x4567be,_0x2c56e4,_0x3603c0){return _0x2c56e4 in _0x4567be?Object['defineProperty'](_0x4567be,_0x2c56e4,{'value':_0x3603c0,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x4567be[_0x2c56e4]=_0x3603c0,_0x4567be;}function _inherits(_0x3b6d1e,_0x2abdb3){var _0x36cb75=_0x170b;if(typeof _0x2abdb3!=='function'&&_0x2abdb3!==null)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x3b6d1e['prototype']=Object['create'](_0x2abdb3&&_0x2abdb3['prototype'],{'constructor':{'value':_0x3b6d1e,'writable':!![],'configurable':!![]}}),Object[_0x36cb75(0x11d)](_0x3b6d1e,'prototype',{'writable':![]});if(_0x2abdb3)_setPrototypeOf(_0x3b6d1e,_0x2abdb3);}function _getPrototypeOf(_0x550f0c){var _0x2214f4=_0x170b;return _getPrototypeOf=Object[_0x2214f4(0x114)]?Object['getPrototypeOf']:function _0x25c4cb(_0x44f28d){var _0x117afc=_0x2214f4;return _0x44f28d['__proto__']||Object[_0x117afc(0x1c0)](_0x44f28d);},_getPrototypeOf(_0x550f0c);}function _setPrototypeOf(_0x1fae47,_0x589131){return _setPrototypeOf=Object['setPrototypeOf']||function _0x2f50fb(_0x630fff,_0x3e71c0){var _0x9daad7=_0x170b;return _0x630fff[_0x9daad7(0x187)]=_0x3e71c0,_0x630fff;},_setPrototypeOf(_0x1fae47,_0x589131);}function _isNativeReflectConstruct(){var _0x2e4f84=_0x170b;if(typeof Reflect==='undefined'||!Reflect['construct'])return![];if(Reflect[_0x2e4f84(0x18c)]['sham'])return![];if(typeof Proxy===_0x2e4f84(0x1ef))return!![];try{return Boolean[_0x2e4f84(0xf8)]['valueOf']['call'](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x4aa4f5){return![];}}function _assertThisInitialized(_0x50ea1d){if(_0x50ea1d===void 0x0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x50ea1d;}function _possibleConstructorReturn(_0x35b26d,_0x57dca4){if(_0x57dca4&&(typeof _0x57dca4==='object'||typeof _0x57dca4==='function'))return _0x57dca4;else{if(_0x57dca4!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x35b26d);}function _createSuper(_0x4126c3){var _0x415b1e=_isNativeReflectConstruct();return function _0xd90acf(){var _0x1d214c=_getPrototypeOf(_0x4126c3),_0xa746df;if(_0x415b1e){var _0x42d09b=_getPrototypeOf(this)['constructor'];_0xa746df=Reflect['construct'](_0x1d214c,arguments,_0x42d09b);}else _0xa746df=_0x1d214c['apply'](this,arguments);return _possibleConstructorReturn(this,_0xa746df);};}function _toConsumableArray(_0xf6aba4){return _arrayWithoutHoles(_0xf6aba4)||_iterableToArray(_0xf6aba4)||_unsupportedIterableToArray(_0xf6aba4)||_nonIterableSpread();}function _arrayWithoutHoles(_0x3320d8){if(Array['isArray'](_0x3320d8))return _arrayLikeToArray(_0x3320d8);}function _iterableToArray(_0x173200){var _0x38fdb0=_0x170b;if(typeof Symbol!=='undefined'&&_0x173200[Symbol['iterator']]!=null||_0x173200['@@iterator']!=null)return Array[_0x38fdb0(0x1d9)](_0x173200);}function _unsupportedIterableToArray(_0x2bab04,_0x24ab51){var _0x1b9d0c=_0x170b;if(!_0x2bab04)return;if(typeof _0x2bab04==='string')return _arrayLikeToArray(_0x2bab04,_0x24ab51);var _0x266baa=Object['prototype'][_0x1b9d0c(0x12c)]['call'](_0x2bab04)['slice'](0x8,-0x1);if(_0x266baa==='Object'&&_0x2bab04['constructor'])_0x266baa=_0x2bab04['constructor']['name'];if(_0x266baa==='Map'||_0x266baa===_0x1b9d0c(0x109))return Array['from'](_0x2bab04);if(_0x266baa===_0x1b9d0c(0x1de)||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x266baa))return _arrayLikeToArray(_0x2bab04,_0x24ab51);}function _arrayLikeToArray(_0x1abaf9,_0x555d37){if(_0x555d37==null||_0x555d37>_0x1abaf9['length'])_0x555d37=_0x1abaf9['length'];for(var _0x1a1412=0x0,_0x151867=new Array(_0x555d37);_0x1a1412<_0x555d37;_0x1a1412++)_0x151867[_0x1a1412]=_0x1abaf9[_0x1a1412];return _0x151867;}function _nonIterableSpread(){throw new TypeError('Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}var Cesium$6=mars3d__namespace['Cesium'],CustomPrimitive=(function(){var _0x24b33d=_0x170b;function _0x376d3c(_0x5d6904){var _0x2af6c3=_0x170b,_0x3035f6;_classCallCheck(this,_0x376d3c),this['commandType']=_0x5d6904['commandType'],this['geometry']=_0x5d6904['geometry'],this['attributeLocations']=_0x5d6904[_0x2af6c3(0x128)],this['primitiveType']=_0x5d6904[_0x2af6c3(0x10b)],this[_0x2af6c3(0x1ac)]=_0x5d6904['uniformMap'],this['vertexShaderSource']=_0x5d6904['vertexShaderSource'],this[_0x2af6c3(0x1f2)]=_0x5d6904['fragmentShaderSource'],this[_0x2af6c3(0x1c9)]=_0x5d6904['rawRenderState'],this['framebuffer']=_0x5d6904[_0x2af6c3(0x158)],this['outputTexture']=_0x5d6904['outputTexture'],this['autoClear']=(_0x3035f6=_0x5d6904['autoClear'])!==null&&_0x3035f6!==void 0x0?_0x3035f6:![],this['preExecute']=_0x5d6904['preExecute'],this['show']=!![],this[_0x2af6c3(0x1d0)]=undefined,this['clearCommand']=undefined,this[_0x2af6c3(0x1d3)]&&(this['clearCommand']=new Cesium$6['ClearCommand']({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Cesium$6[_0x2af6c3(0x176)]['OPAQUE']}));}return _createClass(_0x376d3c,[{'key':'createCommand','value':function _0x4d903f(_0x4606ba){var _0x5ca1d2=_0x170b;switch(this[_0x5ca1d2(0x127)]){case'Draw':{var _0x14d9e8=Cesium$6['VertexArray']['fromGeometry']({'context':_0x4606ba,'geometry':this[_0x5ca1d2(0x1ba)],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage'][_0x5ca1d2(0x13b)]}),_0x4ce1ae=Cesium$6['ShaderProgram']['fromCache']({'context':_0x4606ba,'attributeLocations':this['attributeLocations'],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this['fragmentShaderSource']}),_0x461505=Cesium$6['RenderState']['fromCache'](this[_0x5ca1d2(0x1c9)]);return new Cesium$6['DrawCommand']({'primitiveType':this[_0x5ca1d2(0x10b)],'shaderProgram':_0x4ce1ae,'vertexArray':_0x14d9e8,'modelMatrix':Cesium$6['Matrix4']['IDENTITY'],'renderState':_0x461505,'uniformMap':this[_0x5ca1d2(0x1ac)],'castShadows':![],'receiveShadows':![],'framebuffer':this['framebuffer'],'pass':Cesium$6[_0x5ca1d2(0x176)]['OPAQUE'],'pickOnly':!![],'owner':this});}case _0x5ca1d2(0x1a7):{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this[_0x5ca1d2(0x1f2)],'uniformMap':this['uniformMap'],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':'setGeometry','value':function _0x34d70d(_0x1fd3f6,_0x12aa4b){var _0x3ba807=_0x170b;this['geometry']=_0x12aa4b;var _0x55461d=Cesium$6['VertexArray'][_0x3ba807(0x193)]({'context':_0x1fd3f6,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']});this['commandToExecute']['vertexArray']=_0x55461d;}},{'key':'update','value':function _0x3f5520(_0x2e3824){var _0x1caedf=_0x170b;if(!this['show'])return;if(_0x2e3824[_0x1caedf(0x186)]!==Cesium$6[_0x1caedf(0x1b0)]['SCENE3D'])return;!Cesium$6['defined'](this[_0x1caedf(0x1d0)])&&(this[_0x1caedf(0x1d0)]=this['createCommand'](_0x2e3824['context'])),Cesium$6['defined'](this['preExecute'])&&this['preExecute'](),Cesium$6[_0x1caedf(0x194)](this[_0x1caedf(0x10f)])&&_0x2e3824[_0x1caedf(0x161)][_0x1caedf(0x198)](this['clearCommand']),_0x2e3824[_0x1caedf(0x161)]['push'](this[_0x1caedf(0x1d0)]);}},{'key':'isDestroyed','value':function _0xd85412(){return![];}},{'key':_0x24b33d(0x1b2),'value':function _0x193d7f(){var _0x1f9e11=_0x24b33d;if(this['clearCommand']){var _0x2c9e82,_0x1a5644;(_0x2c9e82=this['clearCommand'])!==null&&_0x2c9e82!==void 0x0&&_0x2c9e82[_0x1f9e11(0x19e)]&&this[_0x1f9e11(0x10f)]['vertexArray'][_0x1f9e11(0x1b2)](),(_0x1a5644=this['clearCommand'])!==null&&_0x1a5644!==void 0x0&&_0x1a5644['shaderProgram']&&this[_0x1f9e11(0x10f)]['shaderProgram'][_0x1f9e11(0x1b2)](),delete this['clearCommand'];}return this['commandToExecute']&&(this['commandToExecute']['vertexArray']&&this['commandToExecute']['vertexArray'][_0x1f9e11(0x1b2)](),this['commandToExecute'][_0x1f9e11(0x191)]&&this[_0x1f9e11(0x1d0)][_0x1f9e11(0x191)][_0x1f9e11(0x1b2)](),delete this[_0x1f9e11(0x1d0)]),Cesium$6['destroyObject'](this);}}]),_0x376d3c;}()),Cesium$5=mars3d__namespace[_0x34bf58(0x153)],Util=(function(){var _0x461bf5=function _0x23c48b(){var _0x6e0c53=_0x170b,_0x225039=new Cesium$5[(_0x6e0c53(0x12b))]({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5[_0x6e0c53(0x199)]['FLOAT'],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x225039;},_0xd1d44d=function _0x34ddac(_0x5f31f6,_0x5c88e8){var _0x43f544=_0x170b;if(Cesium$5['defined'](_0x5c88e8)){var _0x54ed8d={};_0x54ed8d['arrayBufferView']=_0x5c88e8,_0x5f31f6[_0x43f544(0x192)]=_0x54ed8d;}var _0x407971=new Cesium$5['Texture'](_0x5f31f6);return _0x407971;},_0x49cdd1=function _0x3f5749(_0x361402,_0x6cb375,_0x307e3b){var _0x23c012=_0x170b,_0x26a36e=new Cesium$5[(_0x23c012(0xfe))]({'context':_0x361402,'colorTextures':[_0x6cb375],'depthTexture':_0x307e3b});return _0x26a36e;},_0x1e500a=function _0x2eac12(_0x58ed87){var _0x1427ac=!![],_0x14a897=![],_0x1170e8={'viewport':_0x58ed87['viewport'],'depthTest':_0x58ed87['depthTest'],'depthMask':_0x58ed87['depthMask'],'blending':_0x58ed87['blending']},_0x54e316=Cesium$5['Appearance']['getDefaultRenderState'](_0x1427ac,_0x14a897,_0x1170e8);return _0x54e316;},_0x4b64c9=function _0x212ae5(_0x534550){var _0x1c64ab=_0x170b,_0x41f006={},_0x332708=Cesium$5['Math']['mod'](_0x534550['west'],Cesium$5['Math']['TWO_PI']),_0x2cb330=Cesium$5['Math']['mod'](_0x534550['east'],Cesium$5['Math']['TWO_PI']),_0x525593=_0x534550['width'],_0x56f538,_0x154b65;_0x525593>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0x56f538=0x0,_0x154b65=Cesium$5['Math'][_0x1c64ab(0x173)]):_0x2cb330-_0x332708<_0x525593?(_0x56f538=_0x332708,_0x154b65=_0x332708+_0x525593):(_0x56f538=_0x332708,_0x154b65=_0x2cb330);_0x41f006[_0x1c64ab(0x1c8)]={'min':Cesium$5[_0x1c64ab(0x1d1)][_0x1c64ab(0x13a)](_0x56f538),'max':Cesium$5[_0x1c64ab(0x1d1)]['toDegrees'](_0x154b65)};var _0x121c27=_0x534550[_0x1c64ab(0x1a1)],_0xa841d2=_0x534550['north'],_0x27ded7=_0x534550[_0x1c64ab(0x185)],_0x5da4c9=_0x27ded7>Cesium$5['Math']['PI']/0xc?_0x27ded7/0x2:0x0,_0x4d285b=Cesium$5[_0x1c64ab(0x1d1)]['clampToLatitudeRange'](_0x121c27-_0x5da4c9),_0x4acfdf=Cesium$5[_0x1c64ab(0x1d1)]['clampToLatitudeRange'](_0xa841d2+_0x5da4c9);return _0x4d285b<-Cesium$5[_0x1c64ab(0x1d1)][_0x1c64ab(0x1db)]&&(_0x4d285b=-Cesium$5['Math']['PI_OVER_TWO']),_0x4acfdf>Cesium$5[_0x1c64ab(0x1d1)]['PI_OVER_THREE']&&(_0x4acfdf=Cesium$5['Math']['PI_OVER_TWO']),_0x41f006[_0x1c64ab(0x16d)]={'min':Cesium$5[_0x1c64ab(0x1d1)]['toDegrees'](_0x4d285b),'max':Cesium$5['Math']['toDegrees'](_0x4acfdf)},_0x41f006;};return{'getFullscreenQuad':_0x461bf5,'createTexture':_0xd1d44d,'createFramebuffer':_0x49cdd1,'createRawRenderState':_0x1e500a,'viewRectangleToLonLatRange':_0x4b64c9};}()),segmentDraw_vert=_0x34bf58(0x1e5),segmentDraw_frag=_0x34bf58(0x182),fullscreen_vert=_0x34bf58(0x1a0),trailDraw_frag=_0x34bf58(0x106),screenDraw_frag='uniform\x20sampler2D\x20trailsColorTexture;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture(trailsColorTexture,\x20textureCoordinate);\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20trailsColor;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x0a}\x0a',Cesium$4=mars3d__namespace['Cesium'],ParticlesRendering=(function(){var _0x236a9e=_0x34bf58;function _0x36d7da(_0x3d41df,_0x509f72,_0x402ff6,_0x13a4ef,_0x3c4a22){var _0x459d81=_0x170b;_classCallCheck(this,_0x36d7da),this[_0x459d81(0x168)](_0x3d41df,_0x509f72,_0x402ff6['colors']),this[_0x459d81(0x12a)](_0x3d41df),this['createRenderingPrimitives'](_0x3d41df,_0x402ff6,_0x13a4ef,_0x3c4a22);}return _createClass(_0x36d7da,[{'key':'createRenderingTextures','value':function _0x4ace87(_0x32560b,_0x213c71,_0x4c4170){var _0x3418ae=_0x170b,_0x1b59a6={'context':_0x32560b,'width':_0x32560b[_0x3418ae(0x1cf)],'height':_0x32560b['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat']['RGBA'],'pixelDatatype':Cesium$4['PixelDatatype'][_0x3418ae(0x179)]},_0x1b50b9={'context':_0x32560b,'width':_0x32560b['drawingBufferWidth'],'height':_0x32560b['drawingBufferHeight'],'pixelFormat':Cesium$4['PixelFormat']['DEPTH_COMPONENT'],'pixelDatatype':Cesium$4[_0x3418ae(0x166)]['UNSIGNED_INT']},_0x1ff8f3=_0x4c4170['length'],_0x126168=new Float32Array(_0x1ff8f3*0x3);for(var _0x39da45=0x0;_0x39da45<_0x1ff8f3;_0x39da45++){var _0x2ca381=Cesium$4['Color']['fromCssColorString'](_0x4c4170[_0x39da45]);_0x126168[0x3*_0x39da45]=_0x2ca381[_0x3418ae(0x16e)],_0x126168[0x3*_0x39da45+0x1]=_0x2ca381['green'],_0x126168[0x3*_0x39da45+0x2]=_0x2ca381[_0x3418ae(0x1b6)];}var _0xb744f1={'context':_0x32560b,'width':_0x1ff8f3,'height':0x1,'pixelFormat':Cesium$4['PixelFormat']['RGB'],'pixelDatatype':Cesium$4[_0x3418ae(0x166)]['FLOAT'],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4[_0x3418ae(0x155)][_0x3418ae(0x16f)],'magnificationFilter':Cesium$4[_0x3418ae(0x159)]['LINEAR']})};this[_0x3418ae(0x18e)]={'segmentsColor':Util['createTexture'](_0x1b59a6),'segmentsDepth':Util['createTexture'](_0x1b50b9),'currentTrailsColor':Util['createTexture'](_0x1b59a6),'currentTrailsDepth':Util['createTexture'](_0x1b50b9),'nextTrailsColor':Util['createTexture'](_0x1b59a6),'nextTrailsDepth':Util[_0x3418ae(0x1f0)](_0x1b50b9),'colorTable':Util[_0x3418ae(0x1f0)](_0xb744f1,_0x126168)};}},{'key':'createRenderingFramebuffers','value':function _0x3b42c5(_0x43ff7a){var _0x3425f2=_0x170b;this[_0x3425f2(0x101)]={'segments':Util['createFramebuffer'](_0x43ff7a,this[_0x3425f2(0x18e)][_0x3425f2(0x1a2)],this['textures']['segmentsDepth']),'currentTrails':Util[_0x3425f2(0x1aa)](_0x43ff7a,this[_0x3425f2(0x18e)][_0x3425f2(0x14c)],this['textures']['currentTrailsDepth']),'nextTrails':Util[_0x3425f2(0x1aa)](_0x43ff7a,this['textures'][_0x3425f2(0x178)],this['textures'][_0x3425f2(0x11e)])};}},{'key':_0x236a9e(0x1d5),'value':function _0x4c2ee5(_0xce935d){var _0x79d158=_0x236a9e,_0x44a467=0x4,_0x3df853=[];for(var _0x5f1be8=0x0;_0x5f1be8<_0xce935d[_0x79d158(0x146)];_0x5f1be8++){for(var _0x12bcbd=0x0;_0x12bcbd<_0xce935d[_0x79d158(0x146)];_0x12bcbd++){for(var _0x4672bf=0x0;_0x4672bf<_0x44a467;_0x4672bf++){_0x3df853[_0x79d158(0x198)](_0x5f1be8/_0xce935d['particlesTextureSize']),_0x3df853[_0x79d158(0x198)](_0x12bcbd/_0xce935d['particlesTextureSize']);}}}_0x3df853=new Float32Array(_0x3df853);var _0x118f62=[],_0x477669=[-0x1,0x1],_0x483931=[-0x1,0x1];for(var _0x492068=0x0;_0x492068<_0xce935d['maxParticles'];_0x492068++){for(var _0x29d6fe=0x0;_0x29d6fe<_0x44a467/0x2;_0x29d6fe++){for(var _0x1c5ad3=0x0;_0x1c5ad3<_0x44a467/0x2;_0x1c5ad3++){_0x118f62['push'](_0x477669[_0x29d6fe]),_0x118f62['push'](_0x483931[_0x1c5ad3]),_0x118f62['push'](0x0);}}}_0x118f62=new Float32Array(_0x118f62);var _0x412173=0x6*_0xce935d[_0x79d158(0x111)],_0x11f939=new Uint32Array(_0x412173);for(var _0x53f8ee=0x0,_0x5e2493=0x0,_0x3b18eb=0x0;_0x53f8ee<_0xce935d['maxParticles'];_0x53f8ee++){_0x11f939[_0x5e2493++]=_0x3b18eb+0x0,_0x11f939[_0x5e2493++]=_0x3b18eb+0x1,_0x11f939[_0x5e2493++]=_0x3b18eb+0x2,_0x11f939[_0x5e2493++]=_0x3b18eb+0x2,_0x11f939[_0x5e2493++]=_0x3b18eb+0x1,_0x11f939[_0x5e2493++]=_0x3b18eb+0x3,_0x3b18eb+=0x4;}var _0x24cf7f=new Cesium$4[(_0x79d158(0x12b))]({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4[(_0x79d158(0x154))]({'componentDatatype':Cesium$4[_0x79d158(0x199)]['FLOAT'],'componentsPerAttribute':0x2,'values':_0x3df853}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':_0x118f62})}),'indices':_0x11f939});return _0x24cf7f;}},{'key':'createRenderingPrimitives','value':function _0x2ced6e(_0xad0e93,_0x3d7c50,_0x54a9c1,_0x439090){var _0x5f2568=_0x236a9e,_0x19e070=this;this['primitives']={'segments':new CustomPrimitive({'commandType':_0x5f2568(0x1bb),'attributeLocations':{'st':0x0,'normal':0x1},'geometry':this[_0x5f2568(0x1d5)](_0x3d7c50),'primitiveType':Cesium$4[_0x5f2568(0x1a6)][_0x5f2568(0x138)],'uniformMap':{'currentParticlesPosition':function _0x32d0e2(){var _0x31b8e5=_0x5f2568;return _0x439090[_0x31b8e5(0x189)]['currentParticlesPosition'];},'postProcessingPosition':function _0x26a9ca(){var _0x2b6e44=_0x5f2568;return _0x439090[_0x2b6e44(0x189)][_0x2b6e44(0x1c2)];},'postProcessingSpeed':function _0x479421(){return _0x439090['particlesTextures']['postProcessingSpeed'];},'colorTable':function _0x25e915(){var _0x894ffa=_0x5f2568;return _0x19e070['textures'][_0x894ffa(0x1e3)];},'aspect':function _0x5dfdea(){return _0xad0e93['drawingBufferWidth']/_0xad0e93['drawingBufferHeight'];},'pixelSize':function _0x4404df(){return _0x54a9c1['pixelSize'];},'lineWidth':function _0x172814(){return _0x3d7c50['lineWidth'];},'particleHeight':function _0x41175c(){return _0x3d7c50['particleHeight'];}},'vertexShaderSource':new Cesium$4[(_0x5f2568(0x1c5))]({'sources':[segmentDraw_vert]}),'fragmentShaderSource':new Cesium$4[(_0x5f2568(0x1c5))]({'sources':[segmentDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![]},'depthMask':!![]}),'framebuffer':this['framebuffers'][_0x5f2568(0x16a)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x5f2568(0x1bb),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0x35a3f5(){var _0x4031e2=_0x5f2568;return _0x19e070['textures'][_0x4031e2(0x1a2)];},'segmentsDepthTexture':function _0x344327(){return _0x19e070['textures']['segmentsDepth'];},'currentTrailsColor':function _0x4871f5(){var _0x394cc8=_0x5f2568;return _0x19e070['framebuffers'][_0x394cc8(0x11c)][_0x394cc8(0x1d8)](0x0);},'trailsDepthTexture':function _0xe586b3(){return _0x19e070['framebuffers']['currentTrails']['depthTexture'];},'fadeOpacity':function _0x592905(){var _0x42d285=_0x5f2568;return _0x3d7c50[_0x42d285(0x147)];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x5f2568(0x1cd)],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x5f2568(0x1c5))]({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[trailDraw_frag]}),'rawRenderState':Util[_0x5f2568(0x134)]({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction']['ALWAYS']},'depthMask':!![]}),'framebuffer':this[_0x5f2568(0x101)]['nextTrails'],'autoClear':!![],'preExecute':function _0x448087(){var _0x2f8aae=_0x5f2568,_0x38ce8c=_0x19e070['framebuffers'][_0x2f8aae(0x11c)];_0x19e070['framebuffers']['currentTrails']=_0x19e070['framebuffers'][_0x2f8aae(0x11f)],_0x19e070['framebuffers'][_0x2f8aae(0x11f)]=_0x38ce8c,_0x19e070[_0x2f8aae(0x188)]['trails']['commandToExecute']['framebuffer']=_0x19e070['framebuffers']['nextTrails'],_0x19e070['primitives']['trails'][_0x2f8aae(0x10f)][_0x2f8aae(0x158)]=_0x19e070['framebuffers']['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType'][_0x5f2568(0x138)],'uniformMap':{'trailsColorTexture':function _0x31da8e(){var _0x445df1=_0x5f2568;return _0x19e070[_0x445df1(0x101)][_0x445df1(0x11f)]['getColorTexture'](0x0);},'trailsDepthTexture':function _0x340e3c(){return _0x19e070['framebuffers']['nextTrails']['depthTexture'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x5f2568(0x1cd)],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':[_0x5f2568(0xf6)],'sources':[screenDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x36d7da;}()),getWind_frag='//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\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\x0ain\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=\x20texture(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=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}\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\x0ain\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=\x20texture(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20out_FragColor\x20=\x20nextSpeed;\x0a}\x0a',updatePosition_frag=_0x34bf58(0x1e7),postProcessingPosition_frag='uniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0auniform\x20float\x20dropRate;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0auniform\x20float\x20dropRateBump;\x0a\x0ain\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=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture(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\x20out_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\x20out_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}\x0a',postProcessingSpeed_frag='uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}\x0a',Cesium$3=mars3d__namespace[_0x34bf58(0x153)],ParticlesComputing=(function(){var _0x2bd110=_0x34bf58;function _0x226c02(_0x379b1c,_0x23b0f5,_0x3cac31,_0x37648a){var _0x19e8dd=_0x170b;_classCallCheck(this,_0x226c02),this['data']=_0x23b0f5,this[_0x19e8dd(0x115)](_0x379b1c,_0x23b0f5),this['createParticlesTextures'](_0x379b1c,_0x3cac31,_0x37648a),this['createComputingPrimitives'](_0x23b0f5,_0x3cac31,_0x37648a);}return _createClass(_0x226c02,[{'key':'createWindTextures','value':function _0x9fe9c1(_0x16a7bf,_0x58b3){var _0x59ca56=_0x170b,_0x3483f7={'context':_0x16a7bf,'width':_0x58b3['dimensions'][_0x59ca56(0x1c8)],'height':_0x58b3['dimensions'][_0x59ca56(0x16d)]*(_0x58b3['dimensions']['lev']||0x1),'pixelFormat':Cesium$3['PixelFormat'][_0x59ca56(0x12d)],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0x59ca56(0x10e)],'magnificationFilter':Cesium$3[_0x59ca56(0x159)]['NEAREST']})};this[_0x59ca56(0x12e)]={'U':Util['createTexture'](_0x3483f7,_0x58b3['U']['array']),'V':Util['createTexture'](_0x3483f7,_0x58b3['V']['array'])};}},{'key':'createParticlesTextures','value':function _0x45b247(_0x16f81e,_0x56b636,_0x35b699){var _0x168acb=_0x170b,_0x1b35f9={'context':_0x16f81e,'width':_0x56b636[_0x168acb(0x146)],'height':_0x56b636['particlesTextureSize'],'pixelFormat':Cesium$3[_0x168acb(0xff)][_0x168acb(0x1e0)],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})},_0x5175e6=this['randomizeParticles'](_0x56b636[_0x168acb(0x111)],_0x35b699),_0x497f2d=new Float32Array(0x4*_0x56b636['maxParticles'])['fill'](0x0);this['particlesTextures']={'particlesWind':Util['createTexture'](_0x1b35f9),'currentParticlesPosition':Util[_0x168acb(0x1f0)](_0x1b35f9,_0x5175e6),'nextParticlesPosition':Util['createTexture'](_0x1b35f9,_0x5175e6),'currentParticlesSpeed':Util[_0x168acb(0x1f0)](_0x1b35f9,_0x497f2d),'nextParticlesSpeed':Util['createTexture'](_0x1b35f9,_0x497f2d),'postProcessingPosition':Util[_0x168acb(0x1f0)](_0x1b35f9,_0x5175e6),'postProcessingSpeed':Util['createTexture'](_0x1b35f9,_0x497f2d)};}},{'key':'randomizeParticles','value':function _0x4e18a7(_0x363abf,_0x1be795){var _0x29f29c=_0x170b,_0x5d351c=new Float32Array(0x4*_0x363abf);for(var _0x519ab9=0x0;_0x519ab9<_0x363abf;_0x519ab9++){_0x5d351c[0x4*_0x519ab9]=Cesium$3['Math']['randomBetween'](_0x1be795['lonRange']['x'],_0x1be795['lonRange']['y']),_0x5d351c[0x4*_0x519ab9+0x1]=Cesium$3[_0x29f29c(0x1d1)][_0x29f29c(0x1b3)](_0x1be795['latRange']['x'],_0x1be795['latRange']['y']),_0x5d351c[0x4*_0x519ab9+0x2]=Cesium$3[_0x29f29c(0x1d1)][_0x29f29c(0x1b3)](this['data']['lev']['min'],this['data']['lev']['max']),_0x5d351c[0x4*_0x519ab9+0x3]=0x0;}return _0x5d351c;}},{'key':_0x2bd110(0x10c),'value':function _0x1e1480(){var _0x36385e=_0x2bd110,_0x2d1140=this;Object[_0x36385e(0x1e9)](this['particlesTextures'])['forEach'](function(_0x17c7c1){_0x2d1140['particlesTextures'][_0x17c7c1]['destroy']();});}},{'key':_0x2bd110(0x1eb),'value':function _0x26f9ca(_0x1da2bf,_0x16e3ef,_0x2a9622){var _0xce8ef9=_0x2bd110,_0x26282a=new Cesium$3[(_0xce8ef9(0x19b))](_0x1da2bf['dimensions']['lon'],_0x1da2bf['dimensions'][_0xce8ef9(0x16d)],_0x1da2bf[_0xce8ef9(0x129)]['lev']),_0x21a1b4=new Cesium$3['Cartesian3'](_0x1da2bf['lon']['min'],_0x1da2bf[_0xce8ef9(0x16d)]['min'],_0x1da2bf['lev'][_0xce8ef9(0x145)]),_0x57ee02=new Cesium$3[(_0xce8ef9(0x19b))](_0x1da2bf['lon']['max'],_0x1da2bf['lat'][_0xce8ef9(0x1a9)],_0x1da2bf['lev'][_0xce8ef9(0x1a9)]),_0x1a99ae=new Cesium$3['Cartesian3']((_0x57ee02['x']-_0x21a1b4['x'])/(_0x26282a['x']-0x1),(_0x57ee02['y']-_0x21a1b4['y'])/(_0x26282a['y']-0x1),_0x26282a['z']>0x1?(_0x57ee02['z']-_0x21a1b4['z'])/(_0x26282a['z']-0x1):0x1),_0xbf7e10=new Cesium$3['Cartesian2'](_0x1da2bf['U']['min'],_0x1da2bf['U']['max']),_0x1071d9=new Cesium$3[(_0xce8ef9(0x190))](_0x1da2bf['V']['min'],_0x1da2bf['V']['max']),_0x1fb876=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':function _0x219d6b(){return _0x1fb876['windTextures']['U'];},'V':function _0x382920(){return _0x1fb876['windTextures']['V'];},'currentParticlesPosition':function _0x33b4bf(){return _0x1fb876['particlesTextures']['currentParticlesPosition'];},'dimension':function _0x56824a(){return _0x26282a;},'minimum':function _0x2360cf(){return _0x21a1b4;},'maximum':function _0x21ff88(){return _0x57ee02;},'interval':function _0x1ec679(){return _0x1a99ae;}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[getWind_frag]}),'outputTexture':this['particlesTextures'][_0xce8ef9(0x15b)],'preExecute':function _0x41e7c2(){var _0x4c2379=_0xce8ef9;_0x1fb876['primitives']['getWind'][_0x4c2379(0x1d0)]['outputTexture']=_0x1fb876[_0x4c2379(0x189)]['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesSpeed':function _0x23fa1c(){return _0x1fb876['particlesTextures']['currentParticlesSpeed'];},'particlesWind':function _0x2b6e3f(){var _0x222399=_0xce8ef9;return _0x1fb876[_0x222399(0x189)]['particlesWind'];},'uSpeedRange':function _0x517c5f(){return _0xbf7e10;},'vSpeedRange':function _0x465c1a(){return _0x1071d9;},'pixelSize':function _0x303791(){return _0x2a9622['pixelSize'];},'speedFactor':function _0x3baf2e(){return _0x16e3ef['speedFactor'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updateSpeed_frag]}),'outputTexture':this['particlesTextures']['nextParticlesSpeed'],'preExecute':function _0x1edf90(){var _0x48ee24=_0xce8ef9,_0xadd790=_0x1fb876[_0x48ee24(0x189)]['currentParticlesSpeed'];_0x1fb876['particlesTextures']['currentParticlesSpeed']=_0x1fb876['particlesTextures']['postProcessingSpeed'],_0x1fb876['particlesTextures']['postProcessingSpeed']=_0xadd790,_0x1fb876['primitives']['updateSpeed']['commandToExecute']['outputTexture']=_0x1fb876['particlesTextures'][_0x48ee24(0x1d6)];}}),'updatePosition':new CustomPrimitive({'commandType':_0xce8ef9(0x1a7),'uniformMap':{'currentParticlesPosition':function _0x390b41(){return _0x1fb876['particlesTextures']['currentParticlesPosition'];},'currentParticlesSpeed':function _0x5616d3(){var _0x3b37a9=_0xce8ef9;return _0x1fb876[_0x3b37a9(0x189)]['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0x54af30(){var _0x3c8586=_0xce8ef9,_0x1b702a=_0x1fb876[_0x3c8586(0x189)]['currentParticlesPosition'];_0x1fb876['particlesTextures']['currentParticlesPosition']=_0x1fb876['particlesTextures'][_0x3c8586(0x1c2)],_0x1fb876[_0x3c8586(0x189)]['postProcessingPosition']=_0x1b702a,_0x1fb876['primitives']['updatePosition']['commandToExecute']['outputTexture']=_0x1fb876['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0x1deb1c(){return _0x1fb876['particlesTextures']['nextParticlesPosition'];},'nextParticlesSpeed':function _0x36217e(){var _0x3a764b=_0xce8ef9;return _0x1fb876['particlesTextures'][_0x3a764b(0x1d6)];},'lonRange':function _0x421fb4(){return _0x2a9622['lonRange'];},'latRange':function _0x5bdbc6(){return _0x2a9622['latRange'];},'randomCoefficient':function _0x300fd6(){var _0x3f5b16=Math['random']();return _0x3f5b16;},'dropRate':function _0x133bdb(){return _0x16e3ef['dropRate'];},'dropRateBump':function _0xff3393(){var _0x2728a3=_0xce8ef9;return _0x16e3ef[_0x2728a3(0x150)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':function _0x665953(){var _0x15c6ba=_0xce8ef9;_0x1fb876['primitives'][_0x15c6ba(0x1c2)]['commandToExecute']['outputTexture']=_0x1fb876['particlesTextures']['postProcessingPosition'];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':_0xce8ef9(0x1a7),'uniformMap':{'postProcessingPosition':function _0x26ed6d(){var _0x4d8476=_0xce8ef9;return _0x1fb876[_0x4d8476(0x189)]['postProcessingPosition'];},'nextParticlesSpeed':function _0x3a2575(){return _0x1fb876['particlesTextures']['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingSpeed_frag]}),'outputTexture':this[_0xce8ef9(0x189)][_0xce8ef9(0x183)],'preExecute':function _0x4680e2(){var _0x19cc29=_0xce8ef9;_0x1fb876[_0x19cc29(0x188)]['postProcessingSpeed']['commandToExecute']['outputTexture']=_0x1fb876[_0x19cc29(0x189)]['postProcessingSpeed'];}})};}}]),_0x226c02;}()),Cesium$2=mars3d__namespace['Cesium'],ParticleSystem=(function(){var _0xd58f6b=_0x34bf58;function _0x189fc8(_0x18ad4b,_0x2ed5f8,_0xe532ee,_0x2dd057){var _0xafc1a2=_0x170b;_classCallCheck(this,_0x189fc8),this[_0xafc1a2(0x119)]=_0x18ad4b,_0x2ed5f8=_objectSpread2({},_0x2ed5f8);if(_0x2ed5f8['udata']&&_0x2ed5f8[_0xafc1a2(0x1bd)]){var _0x420511,_0x3954b7,_0x27ec8e,_0x51d43b,_0x21328d,_0x2ab9ab;_0x2ed5f8['dimensions']={},_0x2ed5f8['dimensions']['lon']=_0x2ed5f8[_0xafc1a2(0x152)],_0x2ed5f8['dimensions'][_0xafc1a2(0x16d)]=_0x2ed5f8[_0xafc1a2(0x136)],_0x2ed5f8['dimensions']['lev']=_0x2ed5f8[_0xafc1a2(0x1b5)]||0x1,_0x2ed5f8[_0xafc1a2(0x1c8)]={},_0x2ed5f8['lon']['min']=_0x2ed5f8['xmin'],_0x2ed5f8['lon'][_0xafc1a2(0x1a9)]=_0x2ed5f8['xmax'],_0x2ed5f8['lat']={},_0x2ed5f8[_0xafc1a2(0x16d)][_0xafc1a2(0x145)]=_0x2ed5f8['ymin'],_0x2ed5f8['lat']['max']=_0x2ed5f8['ymax'],_0x2ed5f8['lev']={},_0x2ed5f8['lev']['min']=(_0x420511=_0x2ed5f8[_0xafc1a2(0x1ad)])!==null&&_0x420511!==void 0x0?_0x420511:0x1,_0x2ed5f8['lev']['max']=(_0x3954b7=_0x2ed5f8['levmax'])!==null&&_0x3954b7!==void 0x0?_0x3954b7:0x1,_0x2ed5f8['U']={},_0x2ed5f8['U']['array']=new Float32Array(_0x2ed5f8[_0xafc1a2(0x1ea)]),_0x2ed5f8['U']['min']=(_0x27ec8e=_0x2ed5f8['umin'])!==null&&_0x27ec8e!==void 0x0?_0x27ec8e:Math['min']['apply'](Math,_toConsumableArray(_0x2ed5f8['udata'])),_0x2ed5f8['U'][_0xafc1a2(0x1a9)]=(_0x51d43b=_0x2ed5f8['umax'])!==null&&_0x51d43b!==void 0x0?_0x51d43b:Math[_0xafc1a2(0x1a9)]['apply'](Math,_toConsumableArray(_0x2ed5f8['udata'])),_0x2ed5f8['V']={},_0x2ed5f8['V']['array']=new Float32Array(_0x2ed5f8['vdata']),_0x2ed5f8['V']['min']=(_0x21328d=_0x2ed5f8[_0xafc1a2(0x13d)])!==null&&_0x21328d!==void 0x0?_0x21328d:Math['min']['apply'](Math,_toConsumableArray(_0x2ed5f8['vdata'])),_0x2ed5f8['V']['max']=(_0x2ab9ab=_0x2ed5f8['vmax'])!==null&&_0x2ab9ab!==void 0x0?_0x2ab9ab:Math[_0xafc1a2(0x1a9)]['apply'](Math,_toConsumableArray(_0x2ed5f8[_0xafc1a2(0x1bd)]));}this['data']=_0x2ed5f8,this[_0xafc1a2(0x113)]=_0xe532ee,this['viewerParameters']=_0x2dd057,this[_0xafc1a2(0x1ce)]=new ParticlesComputing(this['context'],this[_0xafc1a2(0x1ae)],this[_0xafc1a2(0x113)],this['viewerParameters']),this[_0xafc1a2(0x1cc)]=new ParticlesRendering(this[_0xafc1a2(0x119)],this[_0xafc1a2(0x1ae)],this['options'],this['viewerParameters'],this[_0xafc1a2(0x1ce)]);}return _createClass(_0x189fc8,[{'key':_0xd58f6b(0x1da),'value':function _0x3ddc72(_0x5f15ce){var _0x2a9468=_0xd58f6b,_0x227c68=this;this[_0x2a9468(0x1ce)][_0x2a9468(0x10c)](),Object['keys'](this['particlesComputing']['windTextures'])['forEach'](function(_0x1b7261){var _0x3426a6=_0x2a9468;_0x227c68['particlesComputing']['windTextures'][_0x1b7261][_0x3426a6(0x1b2)]();}),this['particlesRendering']['textures']['colorTable']['destroy'](),Object['keys'](this['particlesRendering'][_0x2a9468(0x101)])['forEach'](function(_0x320252){var _0xf774f7=_0x2a9468;_0x227c68[_0xf774f7(0x1cc)]['framebuffers'][_0x320252]['destroy']();}),this['context']=_0x5f15ce,this[_0x2a9468(0x1ce)]=new ParticlesComputing(this['context'],this['data'],this[_0x2a9468(0x113)],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this[_0x2a9468(0x119)],this[_0x2a9468(0x1ae)],this['options'],this['viewerParameters'],this[_0x2a9468(0x1ce)]);}},{'key':'clearFramebuffers','value':function _0x39dbfa(){var _0x46320e=_0xd58f6b,_0x47f913=this,_0x203b5a=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2[_0x46320e(0x176)]['OPAQUE']});Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](function(_0x1286e3){var _0x4beb3c=_0x46320e;_0x203b5a['framebuffer']=_0x47f913['particlesRendering']['framebuffers'][_0x1286e3],_0x203b5a['execute'](_0x47f913[_0x4beb3c(0x119)]);});}},{'key':'refreshParticles','value':function _0x18575f(_0x316c0c){var _0x9b456d=_0xd58f6b;this[_0x9b456d(0x118)](),this['particlesComputing']['destroyParticlesTextures'](),this['particlesComputing'][_0x9b456d(0x1dc)](this['context'],this['options'],this['viewerParameters']);if(_0x316c0c){var _0x1c4934=this[_0x9b456d(0x1cc)]['createSegmentsGeometry'](this['options']);this['particlesRendering']['primitives']['segments']['geometry']=_0x1c4934;var _0x40ec0a=Cesium$2['VertexArray']['fromGeometry']({'context':this['context'],'geometry':_0x1c4934,'attributeLocations':this['particlesRendering']['primitives']['segments']['attributeLocations'],'bufferUsage':Cesium$2[_0x9b456d(0xf5)]['STATIC_DRAW']});this[_0x9b456d(0x1cc)][_0x9b456d(0x188)][_0x9b456d(0x16a)]['commandToExecute']['vertexArray']=_0x40ec0a;}}},{'key':'setOptions','value':function _0x474672(_0x256766){var _0x1e51ae=_0xd58f6b,_0x130204=this,_0x356a6e=![];this['options'][_0x1e51ae(0x111)]!==_0x256766[_0x1e51ae(0x111)]&&(_0x356a6e=!![]),Object[_0x1e51ae(0x1e9)](_0x256766)['forEach'](function(_0x34767e){var _0x459099=_0x1e51ae;_0x130204[_0x459099(0x113)][_0x34767e]=_0x256766[_0x34767e];}),this['refreshParticles'](_0x356a6e);}},{'key':'applyViewerParameters','value':function _0x1e5fc6(_0x494990){var _0x483a78=_0xd58f6b,_0x3bf70d=this;Object['keys'](_0x494990)[_0x483a78(0x17c)](function(_0x423e88){_0x3bf70d['viewerParameters'][_0x423e88]=_0x494990[_0x423e88];}),this['refreshParticles'](![]);}},{'key':'destroy','value':function _0x4db6a0(){var _0x2956b2=_0xd58f6b,_0x1b4707=this;clearTimeout(this['canrefresh']),this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this['particlesComputing'][_0x2956b2(0x12e)])[_0x2956b2(0x17c)](function(_0x3561a9){var _0x3baff9=_0x2956b2;_0x1b4707[_0x3baff9(0x1ce)]['windTextures'][_0x3561a9][_0x3baff9(0x1b2)]();}),this[_0x2956b2(0x1cc)]['textures'][_0x2956b2(0x1e3)]['destroy'](),Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](function(_0x14a9b9){var _0x5338c5=_0x2956b2;_0x1b4707['particlesRendering'][_0x5338c5(0x101)][_0x14a9b9]['destroy']();});for(var _0x1425c5 in this){delete this[_0x1425c5];}}}]),_0x189fc8;}()),Cesium$1=mars3d__namespace[_0x34bf58(0x153)],BaseLayer$1=mars3d__namespace[_0x34bf58(0x167)]['BaseLayer'],DEF_OPTIONS={'particlesNumber':0x1000,'fixedHeight':0x0,'fadeOpacity':0.996,'dropRate':0.003,'dropRateBump':0.01,'speedFactor':0.5,'lineWidth':0x2,'colors':[_0x34bf58(0x197)]},WindLayer=function(_0x28de7c){var _0x9429c6=_0x34bf58;_inherits(_0x186132,_0x28de7c);var _0xe180f2=_createSuper(_0x186132);function _0x186132(){var _0x45ad78=_0x170b,_0x48b863,_0x32b70e=arguments[_0x45ad78(0x11b)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x186132),_0x32b70e=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x32b70e),_0x48b863=_0xe180f2['call'](this,_0x32b70e),_0x48b863[_0x45ad78(0x19d)](_0x32b70e),_0x48b863;}return _createClass(_0x186132,[{'key':'layer','get':function _0x3c3af7(){return this['primitives'];}},{'key':'data','get':function _0x5a6654(){var _0x34b2df=_0x170b;return this[_0x34b2df(0x140)];},'set':function _0x231c06(_0x1271f3){var _0x5c9084=_0x170b;this[_0x5c9084(0x15d)](_0x1271f3);}},{'key':_0x9429c6(0x13c),'get':function _0x400299(){var _0x538303=_0x9429c6;return this[_0x538303(0x113)]['colors'];},'set':function _0x330f16(_0x440100){this['options']['colors']=_0x440100,this['particleSystem']&&this['particleSystem']['setOptions']({'colors':_0x440100}),this['resize']();}},{'key':'_mountedHook','value':function _0x4cfabe(){}},{'key':'_addedHook','value':function _0x4aa76b(){var _0x2f10d6=_0x9429c6;this[_0x2f10d6(0x105)]=this['_map']['scene'],this['camera']=this['_map']['camera'],this['primitives']=new Cesium$1[(_0x2f10d6(0x1be))](),this[_0x2f10d6(0x132)]['scene'][_0x2f10d6(0x188)]['add'](this['primitives']),this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1[(_0x2f10d6(0x190))](),'pixelSize':0x0},this['globeBoundingSphere']=new Cesium$1['BoundingSphere'](Cesium$1['Cartesian3'][_0x2f10d6(0x184)],0.99*0x615299),this['updateViewerParameters'](),window[_0x2f10d6(0x117)]('resize',this['resize']['bind'](this),![]),this[_0x2f10d6(0x1c6)]=![],this['mouse_move']=![],this['_map']['on'](mars3d__namespace[_0x2f10d6(0x1af)]['wheel'],this[_0x2f10d6(0x112)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x2f10d6(0x132)]['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['_data']&&this[_0x2f10d6(0x15d)](this[_0x2f10d6(0x140)]);}},{'key':_0x9429c6(0x143),'value':function _0x5811ce(){var _0x316393=_0x9429c6;window['removeEventListener']('resize',this['resize']),this['_map'][_0x316393(0x14a)](mars3d__namespace[_0x316393(0x1af)][_0x316393(0x124)],this[_0x316393(0x149)],this),this['_map'][_0x316393(0x14a)](mars3d__namespace['EventType'][_0x316393(0xf9)],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x316393(0x1ec)],this),this['_map'][_0x316393(0x14a)](mars3d__namespace[_0x316393(0x1af)]['mouseUp'],this['_onMouseUpEvent'],this),this[_0x316393(0x132)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x316393(0x188)]['removeAll'](),this[_0x316393(0x132)]['scene']['primitives']['remove'](this['primitives']);}},{'key':'resize','value':function _0x25528d(){var _0x25b810=_0x9429c6;if(!this['show']||!this['particleSystem'])return;this[_0x25b810(0x188)][_0x25b810(0x116)]=![],this['primitives'][_0x25b810(0x169)](),this['_map']['once'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this);}},{'key':'_onMap_preRenderEvent','value':function _0x275f0b(_0x1b5453){var _0x4af729=_0x9429c6;this['particleSystem'][_0x4af729(0x1da)](this[_0x4af729(0x105)]['context']),this[_0x4af729(0x19a)](),this['primitives']['show']=!![];}},{'key':'_onMapWhellEvent','value':function _0x354b00(_0x4de1e9){var _0x546abc=_0x9429c6,_0x17ae2a=this;clearTimeout(this['refreshTimer']);if(!this[_0x546abc(0x116)]||!this['particleSystem'])return;this['primitives']['show']=![],this[_0x546abc(0x131)]=setTimeout(function(){if(!_0x17ae2a['show'])return;_0x17ae2a['redraw']();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x28378c(_0x6f473f){this['mouse_down']=!![];}},{'key':'_onMouseMoveEvent','value':function _0x22ee6f(_0x353fc2){var _0x2804b9=_0x9429c6;if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&(this[_0x2804b9(0x188)][_0x2804b9(0x116)]=![],this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x1f2f03(_0x5bd197){var _0x307b51=_0x9429c6;if(!this[_0x307b51(0x116)]||!this['particleSystem'])return;this['mouse_down']&&this[_0x307b51(0x133)]&&this['redraw'](),this[_0x307b51(0x188)]['show']=!![],this['mouse_down']=![],this['mouse_move']=![];}},{'key':'redraw','value':function _0x552831(){var _0x34e2bd=_0x9429c6;if(!this[_0x34e2bd(0x132)]||!this['show'])return;this['updateViewerParameters'](),this[_0x34e2bd(0x142)]['applyViewerParameters'](this['viewerParameters']),this[_0x34e2bd(0x188)]['show']=!![];}},{'key':'setData','value':function _0x433d17(_0x34e328){var _0x854fcc=_0x9429c6;this['_data']=_0x34e328,this['particleSystem']&&this[_0x854fcc(0x142)]['destroy'](),this['particleSystem']=new ParticleSystem(this[_0x854fcc(0x105)]['context'],_0x34e328,this['getOptions'](),this['viewerParameters']),this[_0x854fcc(0x19a)]();}},{'key':'_setOptionsHook','value':function _0x350755(_0xe63903,_0x20a6ad){var _0x34da97=_0x9429c6;if(_0xe63903)for(var _0x1edf3e in _0xe63903){this[_0x1edf3e]=_0xe63903[_0x1edf3e];}this['particleSystem']&&this['particleSystem'][_0x34da97(0x13f)](this['getOptions']());}},{'key':_0x9429c6(0x144),'value':function _0x4a1d4c(){var _0x4c8891=_0x9429c6,_0x48dc35=Math['ceil'](Math['sqrt'](this['particlesNumber']));return this[_0x4c8891(0x1ca)]=_0x48dc35*_0x48dc35,{'particlesTextureSize':_0x48dc35,'maxParticles':this['particlesNumber'],'particleHeight':this['fixedHeight'],'fadeOpacity':this['fadeOpacity'],'dropRate':this['dropRate'],'dropRateBump':this['dropRateBump'],'speedFactor':this['speedFactor'],'lineWidth':this['lineWidth'],'colors':this[_0x4c8891(0x13c)]};}},{'key':_0x9429c6(0x19a),'value':function _0x9c848b(){var _0x5e49d6=_0x9429c6;this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives']['getWind']),this[_0x5e49d6(0x188)]['add'](this['particleSystem']['particlesComputing']['primitives']['updateSpeed']),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives']['updatePosition']),this[_0x5e49d6(0x188)]['add'](this['particleSystem'][_0x5e49d6(0x1ce)]['primitives']['postProcessingPosition']),this['primitives']['add'](this[_0x5e49d6(0x142)]['particlesComputing']['primitives']['postProcessingSpeed']),this['primitives']['add'](this[_0x5e49d6(0x142)]['particlesRendering']['primitives']['segments']),this['primitives']['add'](this['particleSystem'][_0x5e49d6(0x1cc)]['primitives']['trails']),this[_0x5e49d6(0x188)]['add'](this[_0x5e49d6(0x142)]['particlesRendering']['primitives']['screen']);}},{'key':_0x9429c6(0x1e8),'value':function _0x2f19be(){var _0x429fe4=_0x9429c6,_0x8b4551=this[_0x429fe4(0x1e6)][_0x429fe4(0x1a4)](this['scene']['globe'][_0x429fe4(0x172)]);if(!_0x8b4551){var _0x11178a=this['_map']['getExtent']();_0x8b4551=Cesium$1[_0x429fe4(0x163)]['fromDegrees'](_0x11178a['xmin'],_0x11178a['ymin'],_0x11178a['xmax'],_0x11178a['ymax']);}var _0x22cdb3=Util[_0x429fe4(0x15a)](_0x8b4551);this[_0x429fe4(0x1d4)][_0x429fe4(0x17d)]['x']=_0x22cdb3[_0x429fe4(0x1c8)]['min'],this[_0x429fe4(0x1d4)][_0x429fe4(0x17d)]['y']=_0x22cdb3['lon']['max'],this['viewerParameters']['latRange']['x']=_0x22cdb3['lat']['min'],this['viewerParameters']['latRange']['y']=_0x22cdb3['lat']['max'];var _0x28c79d=this[_0x429fe4(0x1e6)]['getPixelSize'](this['globeBoundingSphere'],this[_0x429fe4(0x105)]['drawingBufferWidth'],this['scene']['drawingBufferHeight']);_0x28c79d>0x0&&(this['viewerParameters'][_0x429fe4(0xfd)]=_0x28c79d);}}]),_0x186132;}(BaseLayer$1);mars3d__namespace[_0x34bf58(0x1ee)][_0x34bf58(0x1c4)](_0x34bf58(0x120),WindLayer),mars3d__namespace['layer'][_0x34bf58(0x19c)]=WindLayer;var CanvasParticle=(function(){function _0x493057(){var _0x4867cc=_0x170b;_classCallCheck(this,_0x493057),this['lng']=null,this[_0x4867cc(0x16d)]=null,this['tlng']=null,this['tlat']=null,this['age']=null;}return _createClass(_0x493057,[{'key':'destroy','value':function _0xe50a8(){for(var _0xbbe8cc in this){delete this[_0xbbe8cc];}}}]),_0x493057;}()),CanvasWindField=(function(){var _0x3b263c=_0x34bf58;function _0x16829c(_0x3b77f8){var _0x1ca86b=_0x170b;_classCallCheck(this,_0x16829c),this[_0x1ca86b(0x13f)](_0x3b77f8);}return _createClass(_0x16829c,[{'key':_0x3b263c(0x1df),'get':function _0x22dde6(){return this['_speedRate'];},'set':function _0x27618d(_0xfa2a97){var _0x19d958=_0x3b263c;this['_speedRate']=(0x64-(_0xfa2a97>0x63?0x63:_0xfa2a97))*0x64,this[_0x19d958(0x1c7)]=[(this['xmax']-this['xmin'])/this['_speedRate'],(this['ymax']-this[_0x19d958(0x1b8)])/this[_0x19d958(0x126)]];}},{'key':'maxAge','get':function _0x35a60f(){var _0x58598b=_0x3b263c;return this[_0x58598b(0x157)];},'set':function _0x15e9de(_0x3b0ca6){var _0x2fadca=_0x3b263c;this[_0x2fadca(0x157)]=_0x3b0ca6;}},{'key':_0x3b263c(0x13f),'value':function _0x8e1403(_0x15f8a2){var _0x1449b3=_0x3b263c;this['options']=_0x15f8a2,this['maxAge']=_0x15f8a2['maxAge']||0x78,this['speedRate']=_0x15f8a2[_0x1449b3(0x1df)]||0x32,this['particles']=[];var _0x1a3d09=_0x15f8a2['particlesNumber']||0x1000;for(var _0x14ab52=0x0;_0x14ab52<_0x1a3d09;_0x14ab52++){var _0x2504d7=this[_0x1449b3(0x139)](new CanvasParticle());this[_0x1449b3(0x18b)]['push'](_0x2504d7);}}},{'key':'setDate','value':function _0x2db7e5(_0x46db62){var _0x1d2ecf=_0x3b263c;this['rows']=_0x46db62['rows'],this['cols']=_0x46db62['cols'],this['xmin']=_0x46db62[_0x1d2ecf(0x171)],this[_0x1d2ecf(0x15c)]=_0x46db62[_0x1d2ecf(0x15c)],this[_0x1d2ecf(0x1b8)]=_0x46db62['ymin'],this[_0x1d2ecf(0x195)]=_0x46db62[_0x1d2ecf(0x195)],this[_0x1d2ecf(0x100)]=[];var _0x23fef9=_0x46db62['udata'],_0x22676a=_0x46db62['vdata'],_0x5e4711=![];_0x23fef9['length']===this[_0x1d2ecf(0x136)]&&_0x23fef9[0x0][_0x1d2ecf(0x11b)]===this[_0x1d2ecf(0x152)]&&(_0x5e4711=!![]);var _0x512a62=0x0,_0x1a8fc5=null,_0x34c5c8=null;for(var _0xf3926a=0x0;_0xf3926a<this[_0x1d2ecf(0x136)];_0xf3926a++){_0x1a8fc5=[];for(var _0x29b7b2=0x0;_0x29b7b2<this[_0x1d2ecf(0x152)];_0x29b7b2++,_0x512a62++){_0x5e4711?_0x34c5c8=this['_calcUV'](_0x23fef9[_0xf3926a][_0x29b7b2],_0x22676a[_0xf3926a][_0x29b7b2]):_0x34c5c8=this[_0x1d2ecf(0x15e)](_0x23fef9[_0x512a62],_0x22676a[_0x512a62]),_0x1a8fc5[_0x1d2ecf(0x198)](_0x34c5c8);}this['grid']['push'](_0x1a8fc5);}this['options']['reverseY']&&this[_0x1d2ecf(0x100)]['reverse']();}},{'key':'clear','value':function _0x3c6fc9(){var _0x429a9a=_0x3b263c;delete this['rows'],delete this['cols'],delete this[_0x429a9a(0x171)],delete this['xmax'],delete this[_0x429a9a(0x1b8)],delete this['ymax'],delete this[_0x429a9a(0x100)],delete this['particles'];}},{'key':_0x3b263c(0x1cb),'value':function _0x318675(_0x2ea171,_0x4b2215){var _0x4ea0d5=_0x3b263c,_0xff6b18=(_0x2ea171-this['xmin'])/(this[_0x4ea0d5(0x15c)]-this[_0x4ea0d5(0x171)])*(this['cols']-0x1),_0x28869e=(this['ymax']-_0x4b2215)/(this[_0x4ea0d5(0x195)]-this['ymin'])*(this[_0x4ea0d5(0x136)]-0x1);return[_0xff6b18,_0x28869e];}},{'key':_0x3b263c(0x156),'value':function _0x5a65bb(_0x45b7ea,_0x1b3b35){var _0x5850b5=_0x3b263c;if(_0x45b7ea<0x0||_0x45b7ea>=this['cols']||_0x1b3b35>=this['rows'])return[0x0,0x0,0x0];var _0x343e95=Math['floor'](_0x45b7ea),_0x51c0c3=Math['floor'](_0x1b3b35);if(_0x343e95===_0x45b7ea&&_0x51c0c3===_0x1b3b35)return this['grid'][_0x1b3b35][_0x45b7ea];var _0x71e8f6=_0x343e95+0x1,_0x59d3d0=_0x51c0c3+0x1,_0x2e8a06=this[_0x5850b5(0x156)](_0x343e95,_0x51c0c3),_0x1fb251=this['getUVByXY'](_0x71e8f6,_0x51c0c3),_0x3f3a4f=this['getUVByXY'](_0x343e95,_0x59d3d0),_0x59f33f=this[_0x5850b5(0x156)](_0x71e8f6,_0x59d3d0),_0x5b97a1=null;try{_0x5b97a1=this['_bilinearInterpolation'](_0x45b7ea-_0x343e95,_0x1b3b35-_0x51c0c3,_0x2e8a06,_0x1fb251,_0x3f3a4f,_0x59f33f);}catch(_0x323d1a){console['log'](_0x45b7ea,_0x1b3b35);}return _0x5b97a1;}},{'key':'_bilinearInterpolation','value':function _0x1830b8(_0x3c67f4,_0x4225f9,_0x2dded9,_0x2c6348,_0x302c48,_0x5720c5){var _0x2cc933=0x1-_0x3c67f4,_0x3500f2=0x1-_0x4225f9,_0x324156=_0x2cc933*_0x3500f2,_0x41b41a=_0x3c67f4*_0x3500f2,_0x30d6ae=_0x2cc933*_0x4225f9,_0x30be49=_0x3c67f4*_0x4225f9,_0x395200=_0x2dded9[0x0]*_0x324156+_0x2c6348[0x0]*_0x41b41a+_0x302c48[0x0]*_0x30d6ae+_0x5720c5[0x0]*_0x30be49,_0x2dda16=_0x2dded9[0x1]*_0x324156+_0x2c6348[0x1]*_0x41b41a+_0x302c48[0x1]*_0x30d6ae+_0x5720c5[0x1]*_0x30be49;return this['_calcUV'](_0x395200,_0x2dda16);}},{'key':'_calcUV','value':function _0x2e1e77(_0x9c3285,_0x15e4bf){return[+_0x9c3285,+_0x15e4bf,Math['sqrt'](_0x9c3285*_0x9c3285+_0x15e4bf*_0x15e4bf)];}},{'key':'getUVByPoint','value':function _0x37b16f(_0xc039e9,_0x192331){var _0x3453f1=_0x3b263c;if(!this[_0x3453f1(0x14b)](_0xc039e9,_0x192331))return null;var _0x55d70b=this['toGridXY'](_0xc039e9,_0x192331),_0x55548d=this[_0x3453f1(0x156)](_0x55d70b[0x0],_0x55d70b[0x1]);return _0x55548d;}},{'key':'isInExtent','value':function _0xaceba1(_0x4d8aab,_0x3e3ce0){var _0x30ab2e=_0x3b263c;return _0x4d8aab>=this['xmin']&&_0x4d8aab<=this[_0x30ab2e(0x15c)]&&_0x3e3ce0>=this['ymin']&&_0x3e3ce0<=this[_0x30ab2e(0x195)]?!![]:![];}},{'key':'getRandomLatLng','value':function _0x2b0e3d(){var _0x5c2f95=_0x3b263c,_0x420d3a=fRandomByfloat(this['xmin'],this[_0x5c2f95(0x15c)]),_0x2841af=fRandomByfloat(this['ymin'],this['ymax']);return{'lat':_0x2841af,'lng':_0x420d3a};}},{'key':'getParticles','value':function _0x30f55d(){var _0x18b768=_0x3b263c,_0x529ee9,_0x19783d,_0x3cdbff;for(var _0x5e0ab7=0x0,_0xdf8f21=this['particles']['length'];_0x5e0ab7<_0xdf8f21;_0x5e0ab7++){var _0x381c25=this['particles'][_0x5e0ab7];_0x381c25['age']<=0x0&&(_0x381c25=this[_0x18b768(0x139)](_0x381c25));if(_0x381c25['age']>0x0){var _0x2dc195=_0x381c25['tlng'],_0x293b8e=_0x381c25['tlat'];_0x3cdbff=this['getUVByPoint'](_0x2dc195,_0x293b8e),_0x3cdbff?(_0x529ee9=_0x2dc195+this['_calc_speedRate'][0x0]*_0x3cdbff[0x0],_0x19783d=_0x293b8e+this[_0x18b768(0x1c7)][0x1]*_0x3cdbff[0x1],_0x381c25[_0x18b768(0x121)]=_0x2dc195,_0x381c25[_0x18b768(0x16d)]=_0x293b8e,_0x381c25[_0x18b768(0x10a)]=_0x529ee9,_0x381c25['tlat']=_0x19783d,_0x381c25['age']--):_0x381c25['age']=0x0;}}return this[_0x18b768(0x18b)];}},{'key':_0x3b263c(0x139),'value':function _0x584b4e(_0xea57bd){var _0xa9d495=_0x3b263c,_0x6b80f,_0x5287ca;for(var _0xaa9247=0x0;_0xaa9247<0x1e;_0xaa9247++){_0x6b80f=this['getRandomLatLng'](),_0x5287ca=this[_0xa9d495(0x1e1)](_0x6b80f['lng'],_0x6b80f['lat']);if(_0x5287ca&&_0x5287ca[0x2]>0x0)break;}if(!_0x5287ca)return _0xea57bd;var _0x1a6875=_0x6b80f['lng']+this[_0xa9d495(0x1c7)][0x0]*_0x5287ca[0x0],_0x406f23=_0x6b80f[_0xa9d495(0x16d)]+this['_calc_speedRate'][0x1]*_0x5287ca[0x1];return _0xea57bd['lng']=_0x6b80f['lng'],_0xea57bd['lat']=_0x6b80f['lat'],_0xea57bd[_0xa9d495(0x10a)]=_0x1a6875,_0xea57bd[_0xa9d495(0x196)]=_0x406f23,_0xea57bd['age']=Math[_0xa9d495(0xf7)](Math['random']()*this[_0xa9d495(0x1b4)]),_0xea57bd;}},{'key':'destroy','value':function _0x367a5b(){for(var _0x4ca59b in this){delete this[_0x4ca59b];}}}]),_0x16829c;}());function fRandomByfloat(_0x4992d9,_0x5c69e3){var _0x2c01f3=_0x34bf58;return _0x4992d9+Math[_0x2c01f3(0x16c)]()*(_0x5c69e3-_0x4992d9);}var Cesium=mars3d__namespace[_0x34bf58(0x153)],BaseLayer=mars3d__namespace[_0x34bf58(0x167)]['BaseLayer'],CanvasWindLayer=function(_0x132a81){var _0x41b4b4=_0x34bf58;_inherits(_0x330573,_0x132a81);var _0x480fd4=_createSuper(_0x330573);function _0x330573(){var _0x20184d=_0x170b,_0x33d5f7,_0x1390cc=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x330573),_0x33d5f7=_0x480fd4['call'](this,_0x1390cc),_0x33d5f7[_0x20184d(0x19d)](_0x1390cc),_0x33d5f7[_0x20184d(0x135)]=null,_0x33d5f7;}return _createClass(_0x330573,[{'key':_0x41b4b4(0x19d),'value':function _0x159732(_0x134310,_0x55dfdc){var _0x4891fa=_0x41b4b4,_0x3e516f,_0x475147,_0x5e0476;this[_0x4891fa(0xfb)]=0x3e8/(_0x134310['frameRate']||0xa),this['_pointerEvents']=(_0x3e516f=this['options']['pointerEvents'])!==null&&_0x3e516f!==void 0x0?_0x3e516f:![],this['color']=_0x134310['color']||'#ffffff',this['lineWidth']=_0x134310['lineWidth']||0x1,this['fixedHeight']=(_0x475147=_0x134310['fixedHeight'])!==null&&_0x475147!==void 0x0?_0x475147:0x0,this['reverseY']=(_0x5e0476=_0x134310[_0x4891fa(0x1d2)])!==null&&_0x5e0476!==void 0x0?_0x5e0476:![],this['windField']&&this[_0x4891fa(0x1c1)]['setOptions'](_0x134310);}},{'key':_0x41b4b4(0x167),'get':function _0x454b18(){return this['canvas'];}},{'key':'canvasWidth','get':function _0x519a8b(){var _0x52d5ef=_0x41b4b4;return this['_map'][_0x52d5ef(0x105)]['canvas']['clientWidth'];}},{'key':_0x41b4b4(0x14e),'get':function _0x37028a(){var _0x3eadeb=_0x41b4b4;return this['_map']['scene'][_0x3eadeb(0x135)]['clientHeight'];}},{'key':_0x41b4b4(0x175),'get':function _0x308af9(){return this['_pointerEvents'];},'set':function _0x3976a2(_0x313467){var _0x156804=_0x41b4b4;this['_pointerEvents']=_0x313467;if(!this[_0x156804(0x135)])return;_0x313467?this[_0x156804(0x135)][_0x156804(0x1f1)]['pointer-events']=_0x156804(0x123):this[_0x156804(0x135)]['style']['pointer-events']='none';}},{'key':_0x41b4b4(0x1ca),'get':function _0x4f0aca(){var _0xcf9c97=_0x41b4b4;return this['options'][_0xcf9c97(0x1ca)];},'set':function _0x287388(_0x1edb1e){var _0x435aa0=_0x41b4b4,_0x10a3b4=this;this['options']['particlesNumber']=_0x1edb1e,clearTimeout(this[_0x435aa0(0x151)]),this[_0x435aa0(0x151)]=setTimeout(function(){_0x10a3b4['redraw']();},0x1f4);}},{'key':_0x41b4b4(0x1df),'get':function _0x2f2949(){var _0x1f7b55=_0x41b4b4;return this['options'][_0x1f7b55(0x1df)];},'set':function _0x4dc1ec(_0x4e0fb5){var _0x21d8fd=_0x41b4b4;this[_0x21d8fd(0x113)]['speedRate']=_0x4e0fb5,this['windField']&&(this['windField']['speedRate']=_0x4e0fb5);}},{'key':'maxAge','get':function _0x361ee9(){var _0x2aac67=_0x41b4b4;return this['options'][_0x2aac67(0x1b4)];},'set':function _0x3b8182(_0x2c34de){var _0x441311=_0x41b4b4;this['options']['maxAge']=_0x2c34de,this[_0x441311(0x1c1)]&&(this['windField']['maxAge']=_0x2c34de);}},{'key':_0x41b4b4(0x1ae),'get':function _0x418ac5(){return this['windData'];},'set':function _0x85688e(_0x2aff36){var _0x2ec80b=_0x41b4b4;this[_0x2ec80b(0x15d)](_0x2aff36);}},{'key':'_showHook','value':function _0x1657b2(_0x5a6148){var _0x342272=_0x41b4b4;_0x5a6148?this['_addedHook']():(this['windData']&&(this[_0x342272(0x113)][_0x342272(0x1ae)]=this['windData']),this[_0x342272(0x143)]());}},{'key':'_mountedHook','value':function _0x1dac95(){var _0x56a37b=_0x41b4b4;this['options']['worker']?this['initWorker']():this[_0x56a37b(0x1c1)]=new CanvasWindField(this[_0x56a37b(0x113)]);}},{'key':'_addedHook','value':function _0x304535(){var _0x323e48=_0x41b4b4;this[_0x323e48(0x135)]=this['_createCanvas'](),this['canvasContext']=this['canvas']['getContext']('2d',{'willReadFrequently':!![]}),this['bindEvent'](),this[_0x323e48(0x113)]['data']&&this['setData'](this['options']['data']);}},{'key':'_removedHook','value':function _0x292fa9(){var _0x46a9ee=_0x41b4b4;this[_0x46a9ee(0x177)](),this['unbindEvent'](),this['canvas']&&(this['_map']['container']['removeChild'](this['canvas']),delete this['canvas']);}},{'key':'_createCanvas','value':function _0x13c526(){var _0x4d625d=_0x41b4b4,_0x14b5cd=document[_0x4d625d(0x164)]('canvas');_0x14b5cd['style'][_0x4d625d(0x174)]='absolute',_0x14b5cd['style']['top']='0px',_0x14b5cd[_0x4d625d(0x1f1)]['left']='0px',_0x14b5cd['style']['width']=_0x4d625d(0x15f),_0x14b5cd['style']['height']='100%',_0x14b5cd[_0x4d625d(0x1f1)][_0x4d625d(0x175)]=this[_0x4d625d(0x162)]?'auto':'none',_0x14b5cd['style']['zIndex']=0xa,_0x14b5cd['setAttribute']('id',_0x4d625d(0x102)),_0x14b5cd['setAttribute'](_0x4d625d(0x180),'canvasWindy'),this['_map'][_0x4d625d(0x122)]['appendChild'](_0x14b5cd);var _0x1d056e=this['_map']['scene'];return _0x14b5cd['width']=_0x1d056e[_0x4d625d(0x135)]['clientWidth'],_0x14b5cd[_0x4d625d(0x185)]=_0x1d056e['canvas']['clientHeight'],_0x14b5cd;}},{'key':'resize','value':function _0x31798f(){var _0x582283=_0x41b4b4;this['canvas']&&(this['canvas']['width']=this['canvasWidth'],this[_0x582283(0x135)]['height']=this['canvasHeight']);}},{'key':'bindEvent','value':function _0x57cd06(){var _0x257bc2=_0x41b4b4,_0x5c60fa=this,_0x3c76dd=Date['now']();(function _0x552a34(){var _0x3cfb6d=_0x170b;_0x5c60fa['animateFrame']=window['requestAnimationFrame'](_0x552a34);if(_0x5c60fa['show']&&_0x5c60fa['windField']){var _0x1c4472=Date['now'](),_0x30f852=_0x1c4472-_0x3c76dd;_0x30f852>_0x5c60fa['frameTime']&&(_0x3c76dd=_0x1c4472-_0x30f852%_0x5c60fa[_0x3cfb6d(0xfb)],_0x5c60fa['update']());}}(),window[_0x257bc2(0x117)]('resize',this[_0x257bc2(0x18a)]['bind'](this),![]),this[_0x257bc2(0x1c6)]=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x257bc2(0x112)],this),this['_map']['on'](mars3d__namespace[_0x257bc2(0x1af)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x257bc2(0x1ed)],this)));}},{'key':'unbindEvent','value':function _0x1920a6(){var _0x113bea=_0x41b4b4;window['cancelAnimationFrame'](this[_0x113bea(0x17a)]),delete this['animateFrame'],window[_0x113bea(0x125)](_0x113bea(0x18a),this['resize']),this['options']['mouseHidden']&&(this['_map'][_0x113bea(0x14a)](mars3d__namespace['EventType']['wheel'],this[_0x113bea(0x112)],this),this['_map']['off'](mars3d__namespace[_0x113bea(0x1af)]['mouseDown'],this[_0x113bea(0x1ec)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this[_0x113bea(0x132)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}},{'key':'_onMapWhellEvent','value':function _0x43723a(_0x347a3b){var _0x175ba5=_0x41b4b4,_0x4cbfd8=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x175ba5(0x135)])return;this['canvas'][_0x175ba5(0x1f1)]['visibility']='hidden',this[_0x175ba5(0x131)]=setTimeout(function(){var _0x26c1b1=_0x175ba5;if(!_0x4cbfd8['show'])return;_0x4cbfd8['redraw'](),_0x4cbfd8['canvas']['style']['visibility']=_0x26c1b1(0xfc);},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x452eb9(_0x56aab3){var _0x4bc35b=_0x41b4b4;this['mouse_down']=!![],this[_0x4bc35b(0x132)]['off'](mars3d__namespace['EventType'][_0x4bc35b(0x18d)],this['_onMouseMoveEvent'],this),this[_0x4bc35b(0x132)]['on'](mars3d__namespace['EventType']['mouseMove'],this[_0x4bc35b(0x1b1)],this);}},{'key':_0x41b4b4(0x1b1),'value':function _0x34e68c(_0x5964f3){var _0x29b8ea=_0x41b4b4;if(!this[_0x29b8ea(0x116)]||!this['canvas'])return;this['mouse_down']&&(this[_0x29b8ea(0x135)][_0x29b8ea(0x1f1)]['visibility']=_0x29b8ea(0x1c3),this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x4c70a1(_0x30e37c){var _0x3ed335=_0x41b4b4;if(!this['show']||!this[_0x3ed335(0x135)])return;this[_0x3ed335(0x132)]['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x3ed335(0x1b1)],this),this['mouse_down']&&this[_0x3ed335(0x133)]&&this[_0x3ed335(0x17e)](),this['canvas']['style']['visibility']='visible',this['mouse_down']=![],this[_0x3ed335(0x133)]=![];}},{'key':'setData','value':function _0x5720a3(_0x247065){var _0x598f96=_0x41b4b4;this[_0x598f96(0x177)](),this['windData']=_0x247065,this[_0x598f96(0x1c1)]['setDate'](_0x247065),this['redraw']();}},{'key':'redraw','value':function _0x45cb07(){var _0x39f562=_0x41b4b4;if(!this['show'])return;this['windField'][_0x39f562(0x13f)](this['options']),this['update']();}},{'key':_0x41b4b4(0x110),'value':function _0xdb778(){var _0x3de97d=_0x41b4b4;if(this[_0x3de97d(0x1bc)])return;this[_0x3de97d(0x1bc)]=!![];if(this['worker'])this['windField']['update']();else{var _0x303046=this['windField']['getParticles']();this[_0x3de97d(0x1e2)](_0x303046);}this[_0x3de97d(0x1bc)]=![];}},{'key':'_drawLines','value':function _0x38876c(_0x1f48ad){var _0xb7e82f=_0x41b4b4;this['canvasContext'][_0xb7e82f(0x1b7)]='destination-in',this[_0xb7e82f(0x1a8)]['fillRect'](0x0,0x0,this[_0xb7e82f(0x170)],this[_0xb7e82f(0x14e)]),this['canvasContext']['globalCompositeOperation']='lighter',this[_0xb7e82f(0x1a8)][_0xb7e82f(0x17b)]=0.9,this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0xb7e82f(0x1a8)][_0xb7e82f(0x1dd)]=this['color'];var _0x4c36f4=this['_map']['scene']['mode']!==Cesium['SceneMode']['SCENE3D'];for(var _0x41c4cc=0x0,_0x527e2b=_0x1f48ad['length'];_0x41c4cc<_0x527e2b;_0x41c4cc++){var _0x2e39a7=_0x1f48ad[_0x41c4cc],_0x4e87ae=this['_tomap'](_0x2e39a7['lng'],_0x2e39a7['lat'],_0x2e39a7),_0x540fc2=this['_tomap'](_0x2e39a7['tlng'],_0x2e39a7[_0xb7e82f(0x196)],_0x2e39a7);if(!_0x4e87ae||!_0x540fc2)continue;if(_0x4c36f4&&Math['abs'](_0x4e87ae[0x0]-_0x540fc2[0x0])>=this['canvasWidth'])continue;this['canvasContext'][_0xb7e82f(0x141)](_0x4e87ae[0x0],_0x4e87ae[0x1]),this['canvasContext'][_0xb7e82f(0x10d)](_0x540fc2[0x0],_0x540fc2[0x1]);}this[_0xb7e82f(0x1a8)][_0xb7e82f(0x1b9)]();}},{'key':'_tomap','value':function _0x5699d7(_0x517a5f,_0x51e68a,_0x2070dd){var _0x549ab1=_0x41b4b4,_0x8801a2=Cesium['Cartesian3']['fromDegrees'](_0x517a5f,_0x51e68a,this['fixedHeight']),_0x1045d1=this[_0x549ab1(0x132)]['scene'];if(_0x1045d1['mode']===Cesium['SceneMode']['SCENE3D']){var _0x3dec6f=new Cesium['EllipsoidalOccluder'](_0x1045d1['globe']['ellipsoid'],_0x1045d1[_0x549ab1(0x1e6)][_0x549ab1(0x130)]),_0x3178ec=_0x3dec6f['isPointVisible'](_0x8801a2);if(!_0x3178ec)return _0x2070dd['age']=0x0,null;}var _0x4b0e13=Cesium[_0x549ab1(0xfa)][_0x549ab1(0x103)](this['_map']['scene'],_0x8801a2);return _0x4b0e13?[_0x4b0e13['x'],_0x4b0e13['y']]:null;}},{'key':'clear','value':function _0x2abf27(){var _0x3fbc83=_0x41b4b4;this[_0x3fbc83(0x1c1)][_0x3fbc83(0x177)](),delete this['windData'];}},{'key':_0x41b4b4(0x1a5),'value':function _0x26f8dd(){var _0x4728b5=_0x41b4b4,_0x4badc9=this;this['worker']=new Worker(this[_0x4728b5(0x113)][_0x4728b5(0x1f3)]),this['worker']['onmessage']=function(_0x2f0182){var _0xdb2693=_0x4728b5;_0x4badc9['_drawLines'](_0x2f0182['data'][_0xdb2693(0x18b)]),_0x4badc9['_updateIng2']=![];},this['windField']={'init':function _0x4c9e3f(_0x515b9a){_0x4badc9['worker']['postMessage']({'type':'init','options':_0x515b9a});},'setOptions':function _0x5dbbe8(_0x252182){var _0x3c33b2=_0x4728b5;_0x4badc9['worker']['postMessage']({'type':_0x3c33b2(0x13f),'options':_0x252182});},'setDate':function _0x3f7109(_0x48dd7f){var _0x1b8e0c=_0x4728b5;_0x4badc9[_0x1b8e0c(0x1f3)]['postMessage']({'type':'setDate','data':_0x48dd7f});},'update':function _0x50a965(){var _0x1d5b2b=_0x4728b5;if(_0x4badc9[_0x1d5b2b(0x1ab)])return;_0x4badc9['_updateIng2']=!![],_0x4badc9['worker']['postMessage']({'type':'update'});},'clear':function _0x41902e(){var _0x18cfe8=_0x4728b5;_0x4badc9['worker'][_0x18cfe8(0x107)]({'type':'clear'});}},this[_0x4728b5(0x1c1)]['init'](this[_0x4728b5(0x113)]);}}]),_0x330573;}(BaseLayer);mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports[_0x34bf58(0x104)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x34bf58(0x19c)]=WindLayer,exports['WindUtil']=WindUtil,Object['defineProperty'](exports,'__esModule',{'value':!![]});
14
+ 'use strict';var _0x3243b4=_0x110f;(function(_0x47526c,_0x1887ff){var _0x4214b0=_0x110f,_0xbd8e01=_0x47526c();while(!![]){try{var _0x1fecb5=-parseInt(_0x4214b0(0x15f))/0x1+parseInt(_0x4214b0(0x101))/0x2*(-parseInt(_0x4214b0(0xf6))/0x3)+parseInt(_0x4214b0(0xa7))/0x4+-parseInt(_0x4214b0(0x7a))/0x5+parseInt(_0x4214b0(0x117))/0x6*(-parseInt(_0x4214b0(0x70))/0x7)+parseInt(_0x4214b0(0x103))/0x8*(-parseInt(_0x4214b0(0xf2))/0x9)+parseInt(_0x4214b0(0x124))/0xa;if(_0x1fecb5===_0x1887ff)break;else _0xbd8e01['push'](_0xbd8e01['shift']());}catch(_0x130f77){_0xbd8e01['push'](_0xbd8e01['shift']());}}}(_0x92ef,0x3a19a));function _interopNamespace(_0x33bde3){var _0x3a7d51=_0x110f;if(_0x33bde3&&_0x33bde3['__esModule'])return _0x33bde3;var _0x1c7d79=Object['create'](null);return _0x33bde3&&Object[_0x3a7d51(0x10e)](_0x33bde3)[_0x3a7d51(0x10f)](function(_0x470a99){var _0x5e6a1e=_0x3a7d51;if(_0x470a99!==_0x5e6a1e(0xf3)){var _0x32099c=Object[_0x5e6a1e(0x115)](_0x33bde3,_0x470a99);Object['defineProperty'](_0x1c7d79,_0x470a99,_0x32099c['get']?_0x32099c:{'enumerable':!![],'get':function(){return _0x33bde3[_0x470a99];}});}}),_0x1c7d79['default']=_0x33bde3,_0x1c7d79;}var mars3d__namespace=_interopNamespace(mars3d),Cesium$7=mars3d__namespace['Cesium'];function getU(_0x20462e,_0x381a0f){var _0x4ac770=_0x110f,_0x549f23=_0x20462e*Math[_0x4ac770(0xd5)](Cesium$7['Math']['toRadians'](_0x381a0f));return _0x549f23;}function getV(_0x1f4305,_0x288571){var _0x4675c8=_0x110f,_0x415f43=_0x1f4305*Math[_0x4675c8(0x86)](Cesium$7['Math']['toRadians'](_0x288571));return _0x415f43;}function getSpeed(_0x426de7,_0x101de2){var _0x1fb35c=_0x110f,_0x4c2c4a=Math[_0x1fb35c(0x165)](Math['pow'](_0x426de7,0x2)+Math[_0x1fb35c(0xc3)](_0x101de2,0x2));return _0x4c2c4a;}function getDirection(_0x5d14d4,_0x19a8cb){var _0x23a205=Cesium$7['Math']['toDegrees'](Math['atan2'](_0x19a8cb,_0x5d14d4));return _0x23a205+=_0x23a205<0x0?0x168:0x0,_0x23a205;}function _0x92ef(){var _0xad4b3a=['destroyParticlesTextures','mouseMove','setOptions','redraw','pixelSize','_tomap','cos','ellipsoid','rows','Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','wgs84ToWindowCoordinates','udata','removeEventListener','lineWidth','_onMapWhellEvent','PixelFormat','refreshTimer','latRange','animateFrame','age','refreshParticles','fillRect','mouseDown','constructor','maxParticles','canvasWidth','currentTrails','fragmentShaderSource','array','mouseUp','setDate','DrawCommand','canrefresh','TWO_PI','length','261WqAEMy','default','particlesTextures','lonRange','172182PmNNCh','Geometry','appendChild','particles','_canrefresh','style','nextParticlesPosition','drawingBufferWidth','WindUtil','_onMap_preRenderEvent','from','6CxnRmW','getColorTexture','57896KyDfdK','VertexArray','depthTexture','_setOptionsHook','windTextures','undefined','OPAQUE','pointerEvents','camera','_onMouseMoveEvent','auto','keys','forEach','_addedHook','BufferUsage','_updateIng2','postProcessingPosition','particlesRendering','getOwnPropertyDescriptor','context','124296RdntEV','apply','destroy','show','createRenderingTextures','createRenderingPrimitives','canvasWindy','scene','PI_OVER_TWO','frameTime','create','canvas','blue','9175250CIkHtX','isInExtent','outputTexture','getOwnPropertyDescriptors','arrayBufferView','floor','options','construct','0px','filter','fromCache','segments','vdata','DepthFunction','PrimitiveType','currentParticlesPosition','maxAge','NEAREST','reverseY','mouse_move','west','createSegmentsGeometry','xmax','clearCommand','defined','particlesComputing','clientHeight','position','color','_pointerEvents','SCENE3D','lev','cols','framebuffers','Texture','canvasContext','lng','writable','#ffffff','getRandomLatLng','shaderProgram','fromDegrees','textures','_onMouseDownEvent','off','worker','_maxAge','Draw','requestAnimationFrame','container','object','setData','string','ymax','_data','min','height','add','getOptions','237044nVmExv','Pass','applyViewerParameters','commandToExecute','push','autoClear','sqrt','nextTrails','globalAlpha','currentParticlesSpeed','initWorker','max','postMessage','vertexArray','getUVByPoint','createTexture','mouse_down','windField','blending','primitiveType','source','nextParticlesSpeed','particleHeight','updateSpeed','49VhWGcF','trails','canvasHeight','CanvasWindLayer','data','ymin','iterator','nextTrailsDepth','updateViewerParameters','defineProperties','1238790PaQHVU','reverse','particleSystem','preExecute','wheel','particlesTextureSize','execute','TextureMagnificationFilter','setAttribute','uniformMap','toGridXY','_randomParticle','sin','xmin','viewerParameters','getPrototypeOf','_onMouseUpEvent','segmentsDepth','bind','globeBoundingSphere','primitives','stroke','EllipsoidalOccluder','lat','createWindTextures','mouseHidden','beginPath','_bilinearInterpolation','FLOAT','geometry','_updateIng','_map','framebuffer','tlng','configurable','globalCompositeOperation','Cesium','_createCanvas','windData','GeometryAttributes','createParticlesTextures','RGBA','ShaderSource','enumerable','drawingBufferHeight','1329288RIcrBt','Sampler','lon','addPrimitives','left','grid','none','ComponentDatatype','createCommand','resize','EventType','colors','dimensions','prototype','vertexShaderSource','particlesWind','absolute','getUVByXY','speedRate','attributeLocations','postProcessingSpeed','RGB','_speedRate','getDefaultRenderState','clear','log','tlat','PixelDatatype','pow','Compute','Math','mode','TRIANGLES','uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0ain\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\x20out_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=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}\x0a','_removedHook','cancelAnimationFrame','createRenderingFramebuffers','sham','visibility','umax'];_0x92ef=function(){return _0xad4b3a;};return _0x92ef();}var WindUtil={'__proto__':null,'getU':getU,'getV':getV,'getSpeed':getSpeed,'getDirection':getDirection};function ownKeys(_0x459771,_0x36306c){var _0x12e5ee=_0x110f,_0x3481dd=Object[_0x12e5ee(0x10e)](_0x459771);if(Object['getOwnPropertySymbols']){var _0x2e85ea=Object['getOwnPropertySymbols'](_0x459771);_0x36306c&&(_0x2e85ea=_0x2e85ea[_0x12e5ee(0x12d)](function(_0x10e325){var _0x1f9aed=_0x12e5ee;return Object['getOwnPropertyDescriptor'](_0x459771,_0x10e325)[_0x1f9aed(0xa5)];})),_0x3481dd['push']['apply'](_0x3481dd,_0x2e85ea);}return _0x3481dd;}function _objectSpread2(_0x3eca59){var _0x427892=_0x110f;for(var _0x3dd08e=0x1;_0x3dd08e<arguments[_0x427892(0xf1)];_0x3dd08e++){var _0x2b0d12=null!=arguments[_0x3dd08e]?arguments[_0x3dd08e]:{};_0x3dd08e%0x2?ownKeys(Object(_0x2b0d12),!0x0)[_0x427892(0x10f)](function(_0x286aa5){_defineProperty(_0x3eca59,_0x286aa5,_0x2b0d12[_0x286aa5]);}):Object[_0x427892(0x127)]?Object[_0x427892(0x79)](_0x3eca59,Object[_0x427892(0x127)](_0x2b0d12)):ownKeys(Object(_0x2b0d12))['forEach'](function(_0x56fa0e){var _0x243d8d=_0x427892;Object['defineProperty'](_0x3eca59,_0x56fa0e,Object[_0x243d8d(0x115)](_0x2b0d12,_0x56fa0e));});}return _0x3eca59;}function _classCallCheck(_0x2cf7d5,_0x4541b1){if(!(_0x2cf7d5 instanceof _0x4541b1))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _defineProperties(_0x110391,_0x55a9c2){var _0x577440=_0x110f;for(var _0x698c4b=0x0;_0x698c4b<_0x55a9c2['length'];_0x698c4b++){var _0x377945=_0x55a9c2[_0x698c4b];_0x377945[_0x577440(0xa5)]=_0x377945[_0x577440(0xa5)]||![],_0x377945[_0x577440(0x9c)]=!![];if('value'in _0x377945)_0x377945[_0x577440(0x149)]=!![];Object['defineProperty'](_0x110391,_0x377945['key'],_0x377945);}}function _createClass(_0xe243c5,_0x370fc5,_0x2ea5a1){if(_0x370fc5)_defineProperties(_0xe243c5['prototype'],_0x370fc5);if(_0x2ea5a1)_defineProperties(_0xe243c5,_0x2ea5a1);return Object['defineProperty'](_0xe243c5,'prototype',{'writable':![]}),_0xe243c5;}function _defineProperty(_0x14d4d9,_0x23f481,_0x1f0288){return _0x23f481 in _0x14d4d9?Object['defineProperty'](_0x14d4d9,_0x23f481,{'value':_0x1f0288,'enumerable':!![],'configurable':!![],'writable':!![]}):_0x14d4d9[_0x23f481]=_0x1f0288,_0x14d4d9;}function _inherits(_0x313e72,_0x549da9){var _0x49b47f=_0x110f;if(typeof _0x549da9!=='function'&&_0x549da9!==null)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x313e72[_0x49b47f(0xb4)]=Object[_0x49b47f(0x121)](_0x549da9&&_0x549da9['prototype'],{'constructor':{'value':_0x313e72,'writable':!![],'configurable':!![]}}),Object['defineProperty'](_0x313e72,'prototype',{'writable':![]});if(_0x549da9)_setPrototypeOf(_0x313e72,_0x549da9);}function _getPrototypeOf(_0x273fe4){return _getPrototypeOf=Object['setPrototypeOf']?Object['getPrototypeOf']:function _0x470932(_0x3c5957){var _0x497073=_0x110f;return _0x3c5957['__proto__']||Object[_0x497073(0x89)](_0x3c5957);},_getPrototypeOf(_0x273fe4);}function _setPrototypeOf(_0x232eed,_0x5a2310){return _setPrototypeOf=Object['setPrototypeOf']||function _0xa0c9ee(_0x34d7ab,_0x446b77){return _0x34d7ab['__proto__']=_0x446b77,_0x34d7ab;},_setPrototypeOf(_0x232eed,_0x5a2310);}function _isNativeReflectConstruct(){var _0x362fe1=_0x110f;if(typeof Reflect===_0x362fe1(0x108)||!Reflect['construct'])return![];if(Reflect[_0x362fe1(0x12b)][_0x362fe1(0xcc)])return![];if(typeof Proxy==='function')return!![];try{return Boolean['prototype']['valueOf']['call'](Reflect['construct'](Boolean,[],function(){})),!![];}catch(_0x191e88){return![];}}function _assertThisInitialized(_0x4252ae){if(_0x4252ae===void 0x0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x4252ae;}function _0x110f(_0x582681,_0x46c837){var _0x92ef79=_0x92ef();return _0x110f=function(_0x110f2b,_0x4b7f4e){_0x110f2b=_0x110f2b-0x69;var _0xb5c958=_0x92ef79[_0x110f2b];return _0xb5c958;},_0x110f(_0x582681,_0x46c837);}function _possibleConstructorReturn(_0x2bc0fc,_0x250a55){var _0x315f7b=_0x110f;if(_0x250a55&&(typeof _0x250a55===_0x315f7b(0x156)||typeof _0x250a55==='function'))return _0x250a55;else{if(_0x250a55!==void 0x0)throw new TypeError('Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined');}return _assertThisInitialized(_0x2bc0fc);}function _createSuper(_0x2ce4bf){var _0x24839d=_isNativeReflectConstruct();return function _0x44e680(){var _0x393bd5=_0x110f,_0xe46991=_getPrototypeOf(_0x2ce4bf),_0x40f51d;if(_0x24839d){var _0x54f0f2=_getPrototypeOf(this)[_0x393bd5(0xe6)];_0x40f51d=Reflect[_0x393bd5(0x12b)](_0xe46991,arguments,_0x54f0f2);}else _0x40f51d=_0xe46991['apply'](this,arguments);return _possibleConstructorReturn(this,_0x40f51d);};}function _toConsumableArray(_0x4da62a){return _arrayWithoutHoles(_0x4da62a)||_iterableToArray(_0x4da62a)||_unsupportedIterableToArray(_0x4da62a)||_nonIterableSpread();}function _arrayWithoutHoles(_0x530a65){if(Array['isArray'](_0x530a65))return _arrayLikeToArray(_0x530a65);}function _iterableToArray(_0x51e68f){var _0x32cfca=_0x110f;if(typeof Symbol!=='undefined'&&_0x51e68f[Symbol[_0x32cfca(0x76)]]!=null||_0x51e68f['@@iterator']!=null)return Array[_0x32cfca(0x100)](_0x51e68f);}function _unsupportedIterableToArray(_0x416721,_0x2dfc90){var _0xe89b41=_0x110f;if(!_0x416721)return;if(typeof _0x416721===_0xe89b41(0x158))return _arrayLikeToArray(_0x416721,_0x2dfc90);var _0xb461e1=Object[_0xe89b41(0xb4)]['toString']['call'](_0x416721)['slice'](0x8,-0x1);if(_0xb461e1==='Object'&&_0x416721[_0xe89b41(0xe6)])_0xb461e1=_0x416721[_0xe89b41(0xe6)]['name'];if(_0xb461e1==='Map'||_0xb461e1==='Set')return Array['from'](_0x416721);if(_0xb461e1==='Arguments'||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0xb461e1))return _arrayLikeToArray(_0x416721,_0x2dfc90);}function _arrayLikeToArray(_0x513871,_0x384a9d){if(_0x384a9d==null||_0x384a9d>_0x513871['length'])_0x384a9d=_0x513871['length'];for(var _0x3634c3=0x0,_0x1f1317=new Array(_0x384a9d);_0x3634c3<_0x384a9d;_0x3634c3++)_0x1f1317[_0x3634c3]=_0x513871[_0x3634c3];return _0x1f1317;}function _nonIterableSpread(){var _0x4e8246=_0x110f;throw new TypeError(_0x4e8246(0xd8));}var Cesium$6=mars3d__namespace['Cesium'],CustomPrimitive=(function(){function _0x49d5ea(_0x3b5ce2){var _0x1bd75a=_0x110f,_0x4d2087;_classCallCheck(this,_0x49d5ea),this['commandType']=_0x3b5ce2['commandType'],this['geometry']=_0x3b5ce2['geometry'],this['attributeLocations']=_0x3b5ce2['attributeLocations'],this['primitiveType']=_0x3b5ce2['primitiveType'],this['uniformMap']=_0x3b5ce2['uniformMap'],this['vertexShaderSource']=_0x3b5ce2[_0x1bd75a(0xb5)],this['fragmentShaderSource']=_0x3b5ce2['fragmentShaderSource'],this['rawRenderState']=_0x3b5ce2['rawRenderState'],this['framebuffer']=_0x3b5ce2[_0x1bd75a(0x9a)],this[_0x1bd75a(0x126)]=_0x3b5ce2['outputTexture'],this['autoClear']=(_0x4d2087=_0x3b5ce2[_0x1bd75a(0x164)])!==null&&_0x4d2087!==void 0x0?_0x4d2087:![],this[_0x1bd75a(0x7d)]=_0x3b5ce2['preExecute'],this[_0x1bd75a(0x11a)]=!![],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['framebuffer'],'pass':Cesium$6['Pass']['OPAQUE']}));}return _createClass(_0x49d5ea,[{'key':'createCommand','value':function _0x38639e(_0x526e52){var _0x587ec4=_0x110f;switch(this['commandType']){case _0x587ec4(0x153):{var _0x287b7f=Cesium$6[_0x587ec4(0x104)]['fromGeometry']({'context':_0x526e52,'geometry':this['geometry'],'attributeLocations':this[_0x587ec4(0xba)],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']}),_0xc26085=Cesium$6['ShaderProgram']['fromCache']({'context':_0x526e52,'attributeLocations':this['attributeLocations'],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this[_0x587ec4(0xea)]}),_0x3bb33e=Cesium$6['RenderState'][_0x587ec4(0x12e)](this['rawRenderState']);return new Cesium$6[(_0x587ec4(0xee))]({'primitiveType':this[_0x587ec4(0x6b)],'shaderProgram':_0xc26085,'vertexArray':_0x287b7f,'modelMatrix':Cesium$6['Matrix4']['IDENTITY'],'renderState':_0x3bb33e,'uniformMap':this['uniformMap'],'castShadows':![],'receiveShadows':![],'framebuffer':this['framebuffer'],'pass':Cesium$6[_0x587ec4(0x160)][_0x587ec4(0x109)],'pickOnly':!![],'owner':this});}case'Compute':{return new Cesium$6['ComputeCommand']({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this[_0x587ec4(0x83)],'outputTexture':this['outputTexture'],'persists':!![]});}}}},{'key':'setGeometry','value':function _0x1968a4(_0x4f73bf,_0xfd1b41){var _0x31f6ca=_0x110f;this[_0x31f6ca(0x97)]=_0xfd1b41;var _0x7458fe=Cesium$6['VertexArray']['fromGeometry']({'context':_0x4f73bf,'geometry':this['geometry'],'attributeLocations':this[_0x31f6ca(0xba)],'bufferUsage':Cesium$6[_0x31f6ca(0x111)]['STATIC_DRAW']});this[_0x31f6ca(0x162)][_0x31f6ca(0x16c)]=_0x7458fe;}},{'key':'update','value':function _0x36018d(_0x4eed1f){var _0x52cf45=_0x110f;if(!this['show'])return;if(_0x4eed1f['mode']!==Cesium$6['SceneMode'][_0x52cf45(0x142)])return;!Cesium$6[_0x52cf45(0x13c)](this['commandToExecute'])&&(this['commandToExecute']=this[_0x52cf45(0xaf)](_0x4eed1f['context'])),Cesium$6['defined'](this[_0x52cf45(0x7d)])&&this['preExecute'](),Cesium$6[_0x52cf45(0x13c)](this['clearCommand'])&&_0x4eed1f['commandList'][_0x52cf45(0x163)](this[_0x52cf45(0x13b)]),_0x4eed1f['commandList']['push'](this['commandToExecute']);}},{'key':'isDestroyed','value':function _0xa2a33d(){return![];}},{'key':'destroy','value':function _0x125aee(){var _0x11ec68=_0x110f;if(this['clearCommand']){var _0x1d91a8,_0x1d8d42;(_0x1d91a8=this['clearCommand'])!==null&&_0x1d91a8!==void 0x0&&_0x1d91a8['vertexArray']&&this['clearCommand']['vertexArray']['destroy'](),(_0x1d8d42=this[_0x11ec68(0x13b)])!==null&&_0x1d8d42!==void 0x0&&_0x1d8d42[_0x11ec68(0x14c)]&&this[_0x11ec68(0x13b)]['shaderProgram']['destroy'](),delete this[_0x11ec68(0x13b)];}return this['commandToExecute']&&(this[_0x11ec68(0x162)]['vertexArray']&&this[_0x11ec68(0x162)]['vertexArray']['destroy'](),this[_0x11ec68(0x162)][_0x11ec68(0x14c)]&&this['commandToExecute']['shaderProgram'][_0x11ec68(0x119)](),delete this['commandToExecute']),Cesium$6['destroyObject'](this);}}]),_0x49d5ea;}()),Cesium$5=mars3d__namespace['Cesium'],Util=(function(){var _0x21e716=function _0x3cd813(){var _0x43f497=_0x110f,_0x4e4dfb=new Cesium$5[(_0x43f497(0xf7))]({'attributes':new Cesium$5[(_0x43f497(0xa1))]({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5[_0x43f497(0xae)]['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x4e4dfb;},_0x2d97f2=function _0x217e1c(_0x25b892,_0x7a9d64){var _0x983258=_0x110f;if(Cesium$5[_0x983258(0x13c)](_0x7a9d64)){var _0x2bf894={};_0x2bf894[_0x983258(0x128)]=_0x7a9d64,_0x25b892[_0x983258(0x6c)]=_0x2bf894;}var _0x28e314=new Cesium$5[(_0x983258(0x146))](_0x25b892);return _0x28e314;},_0x1ae485=function _0x58d4d3(_0x3a13b1,_0x317368,_0x3699ab){var _0x1b484c=new Cesium$5['Framebuffer']({'context':_0x3a13b1,'colorTextures':[_0x317368],'depthTexture':_0x3699ab});return _0x1b484c;},_0x898353=function _0x279cd3(_0x4bce8d){var _0x5e1133=_0x110f,_0x5dc442=!![],_0x882694=![],_0x25dd6c={'viewport':_0x4bce8d['viewport'],'depthTest':_0x4bce8d['depthTest'],'depthMask':_0x4bce8d['depthMask'],'blending':_0x4bce8d[_0x5e1133(0x6a)]},_0x55d3ee=Cesium$5['Appearance'][_0x5e1133(0xbe)](_0x5dc442,_0x882694,_0x25dd6c);return _0x55d3ee;},_0x2ed13a=function _0x571acf(_0x3a3c0e){var _0x4cadc6=_0x110f,_0x4f92a2={},_0x4bb21c=Cesium$5[_0x4cadc6(0xc5)]['mod'](_0x3a3c0e[_0x4cadc6(0x138)],Cesium$5['Math'][_0x4cadc6(0xf0)]),_0x39e912=Cesium$5[_0x4cadc6(0xc5)]['mod'](_0x3a3c0e['east'],Cesium$5['Math']['TWO_PI']),_0x265d31=_0x3a3c0e['width'],_0x1df59f,_0x51fbf9;_0x265d31>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0x1df59f=0x0,_0x51fbf9=Cesium$5[_0x4cadc6(0xc5)]['TWO_PI']):_0x39e912-_0x4bb21c<_0x265d31?(_0x1df59f=_0x4bb21c,_0x51fbf9=_0x4bb21c+_0x265d31):(_0x1df59f=_0x4bb21c,_0x51fbf9=_0x39e912);_0x4f92a2['lon']={'min':Cesium$5[_0x4cadc6(0xc5)]['toDegrees'](_0x1df59f),'max':Cesium$5[_0x4cadc6(0xc5)]['toDegrees'](_0x51fbf9)};var _0x440225=_0x3a3c0e['south'],_0x16915f=_0x3a3c0e['north'],_0xf377b7=_0x3a3c0e[_0x4cadc6(0x15c)],_0x346051=_0xf377b7>Cesium$5['Math']['PI']/0xc?_0xf377b7/0x2:0x0,_0x2d0c6b=Cesium$5['Math']['clampToLatitudeRange'](_0x440225-_0x346051),_0xd9dafe=Cesium$5['Math']['clampToLatitudeRange'](_0x16915f+_0x346051);return _0x2d0c6b<-Cesium$5['Math']['PI_OVER_THREE']&&(_0x2d0c6b=-Cesium$5[_0x4cadc6(0xc5)][_0x4cadc6(0x11f)]),_0xd9dafe>Cesium$5['Math']['PI_OVER_THREE']&&(_0xd9dafe=Cesium$5['Math'][_0x4cadc6(0x11f)]),_0x4f92a2['lat']={'min':Cesium$5[_0x4cadc6(0xc5)]['toDegrees'](_0x2d0c6b),'max':Cesium$5['Math']['toDegrees'](_0xd9dafe)},_0x4f92a2;};return{'getFullscreenQuad':_0x21e716,'createTexture':_0x2d97f2,'createFramebuffer':_0x1ae485,'createRawRenderState':_0x898353,'viewRectangleToLonLatRange':_0x2ed13a};}()),segmentDraw_vert='in\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0ain\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\x0aout\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\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\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=\x20texture(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture(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=\x20texture(postProcessingSpeed,\x20particleIndex).a;\x0a}\x0a',segmentDraw_frag='uniform\x20sampler2D\x20colorTable;\x0a\x0ain\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20out_FragColor\x20=\x20texture(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}\x0a',fullscreen_vert='in\x20vec3\x20position;\x0ain\x20vec2\x20st;\x0a\x0aout\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0a}\x0a',trailDraw_frag='uniform\x20sampler2D\x20segmentsColorTexture;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0auniform\x20sampler2D\x20currentTrailsColor;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0auniform\x20float\x20fadeOpacity;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture(segmentsColorTexture,\x20textureCoordinate);\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture(currentTrailsColor,\x20textureCoordinate);\x0a\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\x0a\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20out_FragColor\x20+\x20pointsColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20out_FragColor\x20+\x20trailsColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20gl_FragDepth\x20=\x20min(pointsDepth,\x20trailsDepth);\x0a}\x0a',screenDraw_frag='uniform\x20sampler2D\x20trailsColorTexture;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture(trailsColorTexture,\x20textureCoordinate);\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20trailsColor;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x0a}\x0a',Cesium$4=mars3d__namespace['Cesium'],ParticlesRendering=(function(){var _0x532543=_0x110f;function _0x20d745(_0xdb3943,_0x358f26,_0x9ae7e,_0x3fb696,_0x3a5c89){var _0x4d7fb1=_0x110f;_classCallCheck(this,_0x20d745),this[_0x4d7fb1(0x11b)](_0xdb3943,_0x358f26,_0x9ae7e[_0x4d7fb1(0xb2)]),this[_0x4d7fb1(0xcb)](_0xdb3943),this[_0x4d7fb1(0x11c)](_0xdb3943,_0x9ae7e,_0x3fb696,_0x3a5c89);}return _createClass(_0x20d745,[{'key':'createRenderingTextures','value':function _0x3b1856(_0x42ee73,_0x43c81f,_0x49ddad){var _0x38fd43=_0x110f,_0xc05f23={'context':_0x42ee73,'width':_0x42ee73['drawingBufferWidth'],'height':_0x42ee73[_0x38fd43(0xa6)],'pixelFormat':Cesium$4['PixelFormat']['RGBA'],'pixelDatatype':Cesium$4[_0x38fd43(0xc2)]['UNSIGNED_BYTE']},_0x5819ac={'context':_0x42ee73,'width':_0x42ee73['drawingBufferWidth'],'height':_0x42ee73['drawingBufferHeight'],'pixelFormat':Cesium$4[_0x38fd43(0xde)]['DEPTH_COMPONENT'],'pixelDatatype':Cesium$4['PixelDatatype']['UNSIGNED_INT']},_0x49c623=_0x49ddad['length'],_0x22d5a8=new Float32Array(_0x49c623*0x3);for(var _0x191915=0x0;_0x191915<_0x49c623;_0x191915++){var _0x4e232c=Cesium$4['Color']['fromCssColorString'](_0x49ddad[_0x191915]);_0x22d5a8[0x3*_0x191915]=_0x4e232c['red'],_0x22d5a8[0x3*_0x191915+0x1]=_0x4e232c['green'],_0x22d5a8[0x3*_0x191915+0x2]=_0x4e232c[_0x38fd43(0x123)];}var _0x35b87c={'context':_0x42ee73,'width':_0x49c623,'height':0x1,'pixelFormat':Cesium$4['PixelFormat'][_0x38fd43(0xbc)],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4[(_0x38fd43(0xa8))]({'minificationFilter':Cesium$4['TextureMinificationFilter']['LINEAR'],'magnificationFilter':Cesium$4['TextureMagnificationFilter']['LINEAR']})};this[_0x38fd43(0x14e)]={'segmentsColor':Util['createTexture'](_0xc05f23),'segmentsDepth':Util['createTexture'](_0x5819ac),'currentTrailsColor':Util['createTexture'](_0xc05f23),'currentTrailsDepth':Util[_0x38fd43(0x16e)](_0x5819ac),'nextTrailsColor':Util[_0x38fd43(0x16e)](_0xc05f23),'nextTrailsDepth':Util[_0x38fd43(0x16e)](_0x5819ac),'colorTable':Util[_0x38fd43(0x16e)](_0x35b87c,_0x22d5a8)};}},{'key':_0x532543(0xcb),'value':function _0xb7324d(_0x3e1113){var _0x124364=_0x532543;this['framebuffers']={'segments':Util['createFramebuffer'](_0x3e1113,this['textures']['segmentsColor'],this['textures'][_0x124364(0x8b)]),'currentTrails':Util['createFramebuffer'](_0x3e1113,this['textures']['currentTrailsColor'],this['textures']['currentTrailsDepth']),'nextTrails':Util['createFramebuffer'](_0x3e1113,this['textures']['nextTrailsColor'],this['textures'][_0x124364(0x77)])};}},{'key':'createSegmentsGeometry','value':function _0x128812(_0xd7a44c){var _0x220350=_0x532543,_0x1847fb=0x4,_0x399d82=[];for(var _0x266562=0x0;_0x266562<_0xd7a44c['particlesTextureSize'];_0x266562++){for(var _0x5b44d5=0x0;_0x5b44d5<_0xd7a44c['particlesTextureSize'];_0x5b44d5++){for(var _0x5e8921=0x0;_0x5e8921<_0x1847fb;_0x5e8921++){_0x399d82[_0x220350(0x163)](_0x266562/_0xd7a44c['particlesTextureSize']),_0x399d82[_0x220350(0x163)](_0x5b44d5/_0xd7a44c['particlesTextureSize']);}}}_0x399d82=new Float32Array(_0x399d82);var _0x22204c=[],_0x37d380=[-0x1,0x1],_0x1d61db=[-0x1,0x1];for(var _0x15571a=0x0;_0x15571a<_0xd7a44c['maxParticles'];_0x15571a++){for(var _0x1c584f=0x0;_0x1c584f<_0x1847fb/0x2;_0x1c584f++){for(var _0x54c853=0x0;_0x54c853<_0x1847fb/0x2;_0x54c853++){_0x22204c[_0x220350(0x163)](_0x37d380[_0x1c584f]),_0x22204c['push'](_0x1d61db[_0x54c853]),_0x22204c['push'](0x0);}}}_0x22204c=new Float32Array(_0x22204c);var _0xab418=0x6*_0xd7a44c[_0x220350(0xe7)],_0x5d0bac=new Uint32Array(_0xab418);for(var _0x461161=0x0,_0x33c39f=0x0,_0x2ae9dc=0x0;_0x461161<_0xd7a44c['maxParticles'];_0x461161++){_0x5d0bac[_0x33c39f++]=_0x2ae9dc+0x0,_0x5d0bac[_0x33c39f++]=_0x2ae9dc+0x1,_0x5d0bac[_0x33c39f++]=_0x2ae9dc+0x2,_0x5d0bac[_0x33c39f++]=_0x2ae9dc+0x2,_0x5d0bac[_0x33c39f++]=_0x2ae9dc+0x1,_0x5d0bac[_0x33c39f++]=_0x2ae9dc+0x3,_0x2ae9dc+=0x4;}var _0x47fada=new Cesium$4['Geometry']({'attributes':new Cesium$4[(_0x220350(0xa1))]({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':_0x399d82}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype'][_0x220350(0x96)],'componentsPerAttribute':0x3,'values':_0x22204c})}),'indices':_0x5d0bac});return _0x47fada;}},{'key':'createRenderingPrimitives','value':function _0x57f466(_0x4c4489,_0x46fe21,_0x429302,_0x47ec16){var _0x11bad1=_0x532543,_0x3bd7a1=this;this['primitives']={'segments':new CustomPrimitive({'commandType':_0x11bad1(0x153),'attributeLocations':{'st':0x0,'normal':0x1},'geometry':this['createSegmentsGeometry'](_0x46fe21),'primitiveType':Cesium$4['PrimitiveType'][_0x11bad1(0xc7)],'uniformMap':{'currentParticlesPosition':function _0x23a3ec(){var _0x447d48=_0x11bad1;return _0x47ec16[_0x447d48(0xf4)]['currentParticlesPosition'];},'postProcessingPosition':function _0x48062c(){var _0x3992ef=_0x11bad1;return _0x47ec16[_0x3992ef(0xf4)]['postProcessingPosition'];},'postProcessingSpeed':function _0x3e3438(){return _0x47ec16['particlesTextures']['postProcessingSpeed'];},'colorTable':function _0x1f20aa(){return _0x3bd7a1['textures']['colorTable'];},'aspect':function _0x100a4d(){var _0x58332b=_0x11bad1;return _0x4c4489['drawingBufferWidth']/_0x4c4489[_0x58332b(0xa6)];},'pixelSize':function _0x5dd894(){return _0x429302['pixelSize'];},'lineWidth':function _0x2c62a1(){return _0x46fe21['lineWidth'];},'particleHeight':function _0x55f3b4(){var _0x13c79f=_0x11bad1;return _0x46fe21[_0x13c79f(0x6e)];}},'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'][_0x11bad1(0x12f)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x11bad1(0x153),'attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function _0x40c806(){var _0x5d81ac=_0x11bad1;return _0x3bd7a1[_0x5d81ac(0x14e)]['segmentsColor'];},'segmentsDepthTexture':function _0x48043a(){var _0x3cc394=_0x11bad1;return _0x3bd7a1[_0x3cc394(0x14e)]['segmentsDepth'];},'currentTrailsColor':function _0x29c0ed(){return _0x3bd7a1['framebuffers']['currentTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function _0x4e7c15(){var _0x2dacf2=_0x11bad1;return _0x3bd7a1['framebuffers'][_0x2dacf2(0xe9)][_0x2dacf2(0x105)];},'fadeOpacity':function _0x450449(){return _0x46fe21['fadeOpacity'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4[(_0x11bad1(0xa4))]({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[trailDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4[_0x11bad1(0x131)]['ALWAYS']},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function _0x457996(){var _0x31a1ad=_0x11bad1,_0x16a200=_0x3bd7a1[_0x31a1ad(0x145)]['currentTrails'];_0x3bd7a1['framebuffers'][_0x31a1ad(0xe9)]=_0x3bd7a1['framebuffers']['nextTrails'],_0x3bd7a1['framebuffers'][_0x31a1ad(0x166)]=_0x16a200,_0x3bd7a1['primitives']['trails']['commandToExecute']['framebuffer']=_0x3bd7a1['framebuffers']['nextTrails'],_0x3bd7a1['primitives'][_0x31a1ad(0x71)]['clearCommand']['framebuffer']=_0x3bd7a1[_0x31a1ad(0x145)][_0x31a1ad(0x166)];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4[_0x11bad1(0x132)]['TRIANGLES'],'uniformMap':{'trailsColorTexture':function _0x3060e9(){var _0x157ef0=_0x11bad1;return _0x3bd7a1[_0x157ef0(0x145)]['nextTrails'][_0x157ef0(0x102)](0x0);},'trailsDepthTexture':function _0x39b2dd(){return _0x3bd7a1['framebuffers']['nextTrails']['depthTexture'];}},'vertexShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[fullscreen_vert]}),'fragmentShaderSource':new Cesium$4['ShaderSource']({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[screenDraw_frag]}),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':![]},'depthMask':!![],'blending':{'enabled':!![]}}),'framebuffer':undefined})};}}]),_0x20d745;}()),getWind_frag='//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\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\x0ain\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=\x20texture(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=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}\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\x0ain\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=\x20texture(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20out_FragColor\x20=\x20nextSpeed;\x0a}\x0a',updatePosition_frag=_0x3243b4(0xc8),postProcessingPosition_frag='uniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0auniform\x20float\x20dropRate;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0auniform\x20float\x20dropRateBump;\x0a\x0ain\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=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture(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\x20out_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\x20out_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}\x0a',postProcessingSpeed_frag='uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}\x0a',Cesium$3=mars3d__namespace[_0x3243b4(0x9e)],ParticlesComputing=(function(){var _0xc7c4b9=_0x3243b4;function _0xa33462(_0x528748,_0x7b6311,_0x112b7f,_0x3c0243){_classCallCheck(this,_0xa33462),this['data']=_0x7b6311,this['createWindTextures'](_0x528748,_0x7b6311),this['createParticlesTextures'](_0x528748,_0x112b7f,_0x3c0243),this['createComputingPrimitives'](_0x7b6311,_0x112b7f,_0x3c0243);}return _createClass(_0xa33462,[{'key':_0xc7c4b9(0x92),'value':function _0x7ed14(_0x315fcb,_0x2f4123){var _0x256a32=_0xc7c4b9,_0x460748={'context':_0x315fcb,'width':_0x2f4123['dimensions'][_0x256a32(0xa9)],'height':_0x2f4123['dimensions']['lat']*(_0x2f4123[_0x256a32(0xb3)]['lev']||0x1),'pixelFormat':Cesium$3['PixelFormat']['LUMINANCE'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};this[_0x256a32(0x107)]={'U':Util['createTexture'](_0x460748,_0x2f4123['U']['array']),'V':Util['createTexture'](_0x460748,_0x2f4123['V']['array'])};}},{'key':_0xc7c4b9(0xa2),'value':function _0x2e4b9f(_0x1ff7b7,_0x4b37c5,_0x262986){var _0x3f1704=_0xc7c4b9,_0x1eee4b={'context':_0x1ff7b7,'width':_0x4b37c5[_0x3f1704(0x7f)],'height':_0x4b37c5['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat'][_0x3f1704(0xa3)],'pixelDatatype':Cesium$3[_0x3f1704(0xc2)][_0x3f1704(0x96)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0x3f1704(0x135)],'magnificationFilter':Cesium$3[_0x3f1704(0x81)]['NEAREST']})},_0x48a412=this['randomizeParticles'](_0x4b37c5['maxParticles'],_0x262986),_0x9aa2ee=new Float32Array(0x4*_0x4b37c5['maxParticles'])['fill'](0x0);this['particlesTextures']={'particlesWind':Util['createTexture'](_0x1eee4b),'currentParticlesPosition':Util['createTexture'](_0x1eee4b,_0x48a412),'nextParticlesPosition':Util['createTexture'](_0x1eee4b,_0x48a412),'currentParticlesSpeed':Util['createTexture'](_0x1eee4b,_0x9aa2ee),'nextParticlesSpeed':Util['createTexture'](_0x1eee4b,_0x9aa2ee),'postProcessingPosition':Util['createTexture'](_0x1eee4b,_0x48a412),'postProcessingSpeed':Util['createTexture'](_0x1eee4b,_0x9aa2ee)};}},{'key':'randomizeParticles','value':function _0x3f1ae2(_0x59f9f3,_0x498cc4){var _0x560bde=_0xc7c4b9,_0x3c52c7=new Float32Array(0x4*_0x59f9f3);for(var _0x40d38b=0x0;_0x40d38b<_0x59f9f3;_0x40d38b++){_0x3c52c7[0x4*_0x40d38b]=Cesium$3['Math']['randomBetween'](_0x498cc4['lonRange']['x'],_0x498cc4['lonRange']['y']),_0x3c52c7[0x4*_0x40d38b+0x1]=Cesium$3[_0x560bde(0xc5)]['randomBetween'](_0x498cc4['latRange']['x'],_0x498cc4['latRange']['y']),_0x3c52c7[0x4*_0x40d38b+0x2]=Cesium$3['Math']['randomBetween'](this['data']['lev'][_0x560bde(0x15b)],this['data'][_0x560bde(0x143)][_0x560bde(0x16a)]),_0x3c52c7[0x4*_0x40d38b+0x3]=0x0;}return _0x3c52c7;}},{'key':'destroyParticlesTextures','value':function _0x4f2d4b(){var _0x56ac9f=_0xc7c4b9,_0x2ebe4d=this;Object['keys'](this[_0x56ac9f(0xf4)])['forEach'](function(_0x5a02c2){var _0x2b10e8=_0x56ac9f;_0x2ebe4d[_0x2b10e8(0xf4)][_0x5a02c2][_0x2b10e8(0x119)]();});}},{'key':'createComputingPrimitives','value':function _0x20e6db(_0x2bde8d,_0x15a027,_0x2f968a){var _0x469ee9=_0xc7c4b9,_0x69ad42=new Cesium$3['Cartesian3'](_0x2bde8d[_0x469ee9(0xb3)]['lon'],_0x2bde8d['dimensions']['lat'],_0x2bde8d['dimensions']['lev']),_0x7b38c4=new Cesium$3['Cartesian3'](_0x2bde8d['lon']['min'],_0x2bde8d['lat'][_0x469ee9(0x15b)],_0x2bde8d[_0x469ee9(0x143)]['min']),_0x31f9a1=new Cesium$3['Cartesian3'](_0x2bde8d[_0x469ee9(0xa9)]['max'],_0x2bde8d['lat']['max'],_0x2bde8d[_0x469ee9(0x143)]['max']),_0x3c1d4f=new Cesium$3['Cartesian3']((_0x31f9a1['x']-_0x7b38c4['x'])/(_0x69ad42['x']-0x1),(_0x31f9a1['y']-_0x7b38c4['y'])/(_0x69ad42['y']-0x1),_0x69ad42['z']>0x1?(_0x31f9a1['z']-_0x7b38c4['z'])/(_0x69ad42['z']-0x1):0x1),_0x49d5b1=new Cesium$3['Cartesian2'](_0x2bde8d['U']['min'],_0x2bde8d['U'][_0x469ee9(0x16a)]),_0x1e99ad=new Cesium$3['Cartesian2'](_0x2bde8d['V'][_0x469ee9(0x15b)],_0x2bde8d['V'][_0x469ee9(0x16a)]),_0x5aec68=this;this['primitives']={'getWind':new CustomPrimitive({'commandType':_0x469ee9(0xc4),'uniformMap':{'U':function _0x33262e(){return _0x5aec68['windTextures']['U'];},'V':function _0x2ba7b7(){return _0x5aec68['windTextures']['V'];},'currentParticlesPosition':function _0x1ed460(){return _0x5aec68['particlesTextures']['currentParticlesPosition'];},'dimension':function _0x4734ba(){return _0x69ad42;},'minimum':function _0x480d6d(){return _0x7b38c4;},'maximum':function _0x4045dc(){return _0x31f9a1;},'interval':function _0x189726(){return _0x3c1d4f;}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[getWind_frag]}),'outputTexture':this['particlesTextures'][_0x469ee9(0xb6)],'preExecute':function _0x35d5d5(){var _0x43603a=_0x469ee9;_0x5aec68['primitives']['getWind']['commandToExecute']['outputTexture']=_0x5aec68[_0x43603a(0xf4)]['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':_0x469ee9(0xc4),'uniformMap':{'currentParticlesSpeed':function _0x7b7192(){return _0x5aec68['particlesTextures']['currentParticlesSpeed'];},'particlesWind':function _0x3754b4(){var _0x5ac8b9=_0x469ee9;return _0x5aec68['particlesTextures'][_0x5ac8b9(0xb6)];},'uSpeedRange':function _0x2a227a(){return _0x49d5b1;},'vSpeedRange':function _0x940ef(){return _0x1e99ad;},'pixelSize':function _0x1f5c3c(){var _0x1e3edc=_0x469ee9;return _0x2f968a[_0x1e3edc(0xd3)];},'speedFactor':function _0xb725ac(){return _0x15a027['speedFactor'];}},'fragmentShaderSource':new Cesium$3[(_0x469ee9(0xa4))]({'sources':[updateSpeed_frag]}),'outputTexture':this['particlesTextures']['nextParticlesSpeed'],'preExecute':function _0x1b665a(){var _0x29cc3e=_0x469ee9,_0x130c19=_0x5aec68['particlesTextures'][_0x29cc3e(0x168)];_0x5aec68['particlesTextures']['currentParticlesSpeed']=_0x5aec68['particlesTextures'][_0x29cc3e(0xbb)],_0x5aec68['particlesTextures']['postProcessingSpeed']=_0x130c19,_0x5aec68['primitives']['updateSpeed'][_0x29cc3e(0x162)]['outputTexture']=_0x5aec68['particlesTextures'][_0x29cc3e(0x6d)];}}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function _0x4c4c17(){var _0x23ce6a=_0x469ee9;return _0x5aec68[_0x23ce6a(0xf4)]['currentParticlesPosition'];},'currentParticlesSpeed':function _0x345046(){var _0x3d8780=_0x469ee9;return _0x5aec68[_0x3d8780(0xf4)][_0x3d8780(0x168)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[updatePosition_frag]}),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function _0x3b2aa6(){var _0x59b196=_0x469ee9,_0x1b4352=_0x5aec68['particlesTextures'][_0x59b196(0x133)];_0x5aec68['particlesTextures']['currentParticlesPosition']=_0x5aec68[_0x59b196(0xf4)]['postProcessingPosition'],_0x5aec68[_0x59b196(0xf4)]['postProcessingPosition']=_0x1b4352,_0x5aec68['primitives']['updatePosition']['commandToExecute'][_0x59b196(0x126)]=_0x5aec68['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function _0x4be42c(){var _0x56e2f9=_0x469ee9;return _0x5aec68['particlesTextures'][_0x56e2f9(0xfc)];},'nextParticlesSpeed':function _0xf009c9(){return _0x5aec68['particlesTextures']['nextParticlesSpeed'];},'lonRange':function _0xbfab5b(){return _0x2f968a['lonRange'];},'latRange':function _0x414086(){return _0x2f968a['latRange'];},'randomCoefficient':function _0x1ac151(){var _0xca1667=Math['random']();return _0xca1667;},'dropRate':function _0x3dd519(){return _0x15a027['dropRate'];},'dropRateBump':function _0x49ed4e(){return _0x15a027['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingPosition_frag]}),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':function _0x417bc9(){var _0x321492=_0x469ee9;_0x5aec68['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=_0x5aec68[_0x321492(0xf4)]['postProcessingPosition'];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'postProcessingPosition':function _0x5a3adb(){var _0x4f793b=_0x469ee9;return _0x5aec68['particlesTextures'][_0x4f793b(0x113)];},'nextParticlesSpeed':function _0x316030(){var _0x2956e9=_0x469ee9;return _0x5aec68['particlesTextures'][_0x2956e9(0x6d)];}},'fragmentShaderSource':new Cesium$3['ShaderSource']({'sources':[postProcessingSpeed_frag]}),'outputTexture':this[_0x469ee9(0xf4)][_0x469ee9(0xbb)],'preExecute':function _0x3a168e(){var _0x16f76c=_0x469ee9;_0x5aec68['primitives']['postProcessingSpeed']['commandToExecute'][_0x16f76c(0x126)]=_0x5aec68[_0x16f76c(0xf4)]['postProcessingSpeed'];}})};}}]),_0xa33462;}()),Cesium$2=mars3d__namespace['Cesium'],ParticleSystem=(function(){function _0x1e8a30(_0x273ba9,_0x5a3b01,_0x51f89a,_0x2ff957){var _0x5c15a0=_0x110f;_classCallCheck(this,_0x1e8a30),this[_0x5c15a0(0x116)]=_0x273ba9,_0x5a3b01=_objectSpread2({},_0x5a3b01);if(_0x5a3b01['udata']&&_0x5a3b01['vdata']){var _0x1ea414,_0x45bdec,_0x5a34b3,_0x4e3a57,_0x472bbe,_0x3d1d93;_0x5a3b01['dimensions']={},_0x5a3b01['dimensions'][_0x5c15a0(0xa9)]=_0x5a3b01['cols'],_0x5a3b01[_0x5c15a0(0xb3)]['lat']=_0x5a3b01[_0x5c15a0(0xd7)],_0x5a3b01[_0x5c15a0(0xb3)]['lev']=_0x5a3b01['lev']||0x1,_0x5a3b01['lon']={},_0x5a3b01[_0x5c15a0(0xa9)]['min']=_0x5a3b01['xmin'],_0x5a3b01[_0x5c15a0(0xa9)]['max']=_0x5a3b01[_0x5c15a0(0x13a)],_0x5a3b01['lat']={},_0x5a3b01['lat']['min']=_0x5a3b01[_0x5c15a0(0x75)],_0x5a3b01[_0x5c15a0(0x91)]['max']=_0x5a3b01['ymax'],_0x5a3b01[_0x5c15a0(0x143)]={},_0x5a3b01['lev']['min']=(_0x1ea414=_0x5a3b01['levmin'])!==null&&_0x1ea414!==void 0x0?_0x1ea414:0x1,_0x5a3b01[_0x5c15a0(0x143)]['max']=(_0x45bdec=_0x5a3b01['levmax'])!==null&&_0x45bdec!==void 0x0?_0x45bdec:0x1,_0x5a3b01['U']={},_0x5a3b01['U']['array']=new Float32Array(_0x5a3b01['udata']),_0x5a3b01['U']['min']=(_0x5a34b3=_0x5a3b01['umin'])!==null&&_0x5a34b3!==void 0x0?_0x5a34b3:Math['min']['apply'](Math,_toConsumableArray(_0x5a3b01['udata'])),_0x5a3b01['U']['max']=(_0x4e3a57=_0x5a3b01[_0x5c15a0(0xce)])!==null&&_0x4e3a57!==void 0x0?_0x4e3a57:Math['max']['apply'](Math,_toConsumableArray(_0x5a3b01['udata'])),_0x5a3b01['V']={},_0x5a3b01['V'][_0x5c15a0(0xeb)]=new Float32Array(_0x5a3b01[_0x5c15a0(0x130)]),_0x5a3b01['V']['min']=(_0x472bbe=_0x5a3b01['vmin'])!==null&&_0x472bbe!==void 0x0?_0x472bbe:Math['min'][_0x5c15a0(0x118)](Math,_toConsumableArray(_0x5a3b01['vdata'])),_0x5a3b01['V']['max']=(_0x3d1d93=_0x5a3b01['vmax'])!==null&&_0x3d1d93!==void 0x0?_0x3d1d93:Math['max']['apply'](Math,_toConsumableArray(_0x5a3b01['vdata']));}this['data']=_0x5a3b01,this[_0x5c15a0(0x12a)]=_0x51f89a,this[_0x5c15a0(0x88)]=_0x2ff957,this['particlesComputing']=new ParticlesComputing(this[_0x5c15a0(0x116)],this['data'],this[_0x5c15a0(0x12a)],this[_0x5c15a0(0x88)]),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this['options'],this['viewerParameters'],this['particlesComputing']);}return _createClass(_0x1e8a30,[{'key':'canvasResize','value':function _0xfa6576(_0x5a81ea){var _0x1102d8=_0x110f,_0x494c35=this;this[_0x1102d8(0x13d)]['destroyParticlesTextures'](),Object['keys'](this['particlesComputing']['windTextures'])['forEach'](function(_0x196d10){_0x494c35['particlesComputing']['windTextures'][_0x196d10]['destroy']();}),this['particlesRendering'][_0x1102d8(0x14e)]['colorTable'][_0x1102d8(0x119)](),Object[_0x1102d8(0x10e)](this[_0x1102d8(0x114)]['framebuffers'])['forEach'](function(_0x1ead4f){_0x494c35['particlesRendering']['framebuffers'][_0x1ead4f]['destroy']();}),this['context']=_0x5a81ea,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this[_0x1102d8(0x12a)],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this[_0x1102d8(0x74)],this['options'],this['viewerParameters'],this['particlesComputing']);}},{'key':'clearFramebuffers','value':function _0x2da520(){var _0x1e321e=this,_0x41f417=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2['Pass']['OPAQUE']});Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](function(_0x5249b9){var _0x47be13=_0x110f;_0x41f417['framebuffer']=_0x1e321e['particlesRendering'][_0x47be13(0x145)][_0x5249b9],_0x41f417[_0x47be13(0x80)](_0x1e321e[_0x47be13(0x116)]);});}},{'key':'refreshParticles','value':function _0x429d70(_0x474e65){var _0x3f20b9=_0x110f;this['clearFramebuffers'](),this[_0x3f20b9(0x13d)]['destroyParticlesTextures'](),this['particlesComputing'][_0x3f20b9(0xa2)](this[_0x3f20b9(0x116)],this['options'],this[_0x3f20b9(0x88)]);if(_0x474e65){var _0x1ee508=this['particlesRendering'][_0x3f20b9(0x139)](this[_0x3f20b9(0x12a)]);this['particlesRendering']['primitives']['segments'][_0x3f20b9(0x97)]=_0x1ee508;var _0x1036e7=Cesium$2['VertexArray']['fromGeometry']({'context':this['context'],'geometry':_0x1ee508,'attributeLocations':this[_0x3f20b9(0x114)]['primitives']['segments'][_0x3f20b9(0xba)],'bufferUsage':Cesium$2['BufferUsage']['STATIC_DRAW']});this['particlesRendering']['primitives'][_0x3f20b9(0x12f)]['commandToExecute']['vertexArray']=_0x1036e7;}}},{'key':'setOptions','value':function _0x269979(_0x20d3a8){var _0x3e7314=_0x110f,_0x4d77d4=this,_0x2d7614=![];this['options'][_0x3e7314(0xe7)]!==_0x20d3a8['maxParticles']&&(_0x2d7614=!![]),Object['keys'](_0x20d3a8)['forEach'](function(_0xe5fa4a){_0x4d77d4['options'][_0xe5fa4a]=_0x20d3a8[_0xe5fa4a];}),this['refreshParticles'](_0x2d7614);}},{'key':'applyViewerParameters','value':function _0x461275(_0x471881){var _0x162eec=_0x110f,_0x3d1eb5=this;Object['keys'](_0x471881)['forEach'](function(_0x3522eb){_0x3d1eb5['viewerParameters'][_0x3522eb]=_0x471881[_0x3522eb];}),this[_0x162eec(0xe3)](![]);}},{'key':'destroy','value':function _0x45baf2(){var _0x4c4b49=_0x110f,_0x4a4100=this;clearTimeout(this[_0x4c4b49(0xef)]),this['particlesComputing'][_0x4c4b49(0xcf)](),Object['keys'](this['particlesComputing']['windTextures'])['forEach'](function(_0x13cad4){var _0x5e737a=_0x4c4b49;_0x4a4100['particlesComputing']['windTextures'][_0x13cad4][_0x5e737a(0x119)]();}),this['particlesRendering']['textures']['colorTable']['destroy'](),Object['keys'](this['particlesRendering'][_0x4c4b49(0x145)])['forEach'](function(_0x4501cd){var _0x509a32=_0x4c4b49;_0x4a4100[_0x509a32(0x114)]['framebuffers'][_0x4501cd][_0x509a32(0x119)]();});for(var _0x5a0205 in this){delete this[_0x5a0205];}}}]),_0x1e8a30;}()),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(_0x39deb1){var _0x10c56f=_0x3243b4;_inherits(_0x4b962a,_0x39deb1);var _0x3fb0bb=_createSuper(_0x4b962a);function _0x4b962a(){var _0x2fbdff,_0x1bc155=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x4b962a),_0x1bc155=_objectSpread2(_objectSpread2({},DEF_OPTIONS),_0x1bc155),_0x2fbdff=_0x3fb0bb['call'](this,_0x1bc155),_0x2fbdff['_setOptionsHook'](_0x1bc155),_0x2fbdff;}return _createClass(_0x4b962a,[{'key':'layer','get':function _0xd30398(){return this['primitives'];}},{'key':'data','get':function _0x3d3f76(){var _0x450db9=_0x110f;return this[_0x450db9(0x15a)];},'set':function _0x3a6acb(_0x3cf282){this['setData'](_0x3cf282);}},{'key':'colors','get':function _0x2e58c1(){return this['options']['colors'];},'set':function _0x15ea70(_0x3d332c){var _0x5e7a0e=_0x110f;this[_0x5e7a0e(0x12a)]['colors']=_0x3d332c,this[_0x5e7a0e(0x7c)]&&this[_0x5e7a0e(0x7c)]['setOptions']({'colors':_0x3d332c}),this['resize']();}},{'key':'_mountedHook','value':function _0x31ab34(){}},{'key':_0x10c56f(0x110),'value':function _0x2d8aa3(){var _0xf37342=_0x10c56f;this['scene']=this[_0xf37342(0x99)][_0xf37342(0x11e)],this['camera']=this[_0xf37342(0x99)]['camera'],this[_0xf37342(0x8e)]=new Cesium$1['PrimitiveCollection'](),this['_map'][_0xf37342(0x11e)][_0xf37342(0x8e)]['add'](this[_0xf37342(0x8e)]),this[_0xf37342(0x88)]={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0},this['globeBoundingSphere']=new Cesium$1['BoundingSphere'](Cesium$1['Cartesian3']['ZERO'],0.99*0x615299),this['updateViewerParameters'](),window['addEventListener']('resize',this['resize'][_0xf37342(0x8c)](this),![]),this['mouse_down']=![],this[_0xf37342(0x137)]=![],this['_map']['on'](mars3d__namespace[_0xf37342(0xb1)]['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0xf37342(0xe5)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0xf37342(0xec)],this[_0xf37342(0x8a)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this[_0xf37342(0x10c)],this),this['_data']&&this['setData'](this['_data']);}},{'key':'_removedHook','value':function _0x58b4a0(){var _0x27135e=_0x10c56f;window[_0x27135e(0xdb)](_0x27135e(0xb0),this['resize']),this[_0x27135e(0x99)]['off'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x27135e(0x7e)],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x27135e(0x14f)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x27135e(0x8e)]['removeAll'](),this['_map']['scene'][_0x27135e(0x8e)]['remove'](this['primitives']);}},{'key':'resize','value':function _0x5c9ad2(){var _0x34d9bd=_0x10c56f;if(!this['show']||!this['particleSystem'])return;this[_0x34d9bd(0x8e)]['show']=![],this['primitives']['removeAll'](),this['_map']['once'](mars3d__namespace[_0x34d9bd(0xb1)]['preRender'],this['_onMap_preRenderEvent'],this);}},{'key':_0x10c56f(0xff),'value':function _0x2b316f(_0x22795f){var _0xd019a9=_0x10c56f;this['particleSystem']['canvasResize'](this['scene'][_0xd019a9(0x116)]),this['addPrimitives'](),this['primitives']['show']=!![];}},{'key':'_onMapWhellEvent','value':function _0x30a798(_0x5cbd60){var _0x2e20fa=_0x10c56f,_0x40a91f=this;clearTimeout(this[_0x2e20fa(0xdf)]);if(!this['show']||!this[_0x2e20fa(0x7c)])return;this['primitives']['show']=![],this['refreshTimer']=setTimeout(function(){if(!_0x40a91f['show'])return;_0x40a91f['redraw']();},0xc8);}},{'key':'_onMouseDownEvent','value':function _0x5f42a3(_0x51659e){var _0x255291=_0x10c56f;this[_0x255291(0x16f)]=!![];}},{'key':_0x10c56f(0x10c),'value':function _0xf37aed(_0xe7d7f1){var _0xf5aaba=_0x10c56f;if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&(this['primitives'][_0xf5aaba(0x11a)]=![],this['mouse_move']=!![]);}},{'key':'_onMouseUpEvent','value':function _0x266a44(_0x484da4){var _0xdf3998=_0x10c56f;if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&this[_0xdf3998(0x137)]&&this[_0xdf3998(0xd2)](),this['primitives']['show']=!![],this['mouse_down']=![],this['mouse_move']=![];}},{'key':_0x10c56f(0xd2),'value':function _0x2afef8(){var _0x4d4c27=_0x10c56f;if(!this['_map']||!this['show'])return;this[_0x4d4c27(0x78)](),this['particleSystem'][_0x4d4c27(0x161)](this['viewerParameters']),this[_0x4d4c27(0x8e)][_0x4d4c27(0x11a)]=!![];}},{'key':_0x10c56f(0x157),'value':function _0x29572c(_0x174747){var _0x13f7a0=_0x10c56f;this[_0x13f7a0(0x15a)]=_0x174747,this['particleSystem']&&this['particleSystem']['destroy'](),this['particleSystem']=new ParticleSystem(this['scene']['context'],_0x174747,this[_0x13f7a0(0x15e)](),this['viewerParameters']),this['addPrimitives']();}},{'key':'_setOptionsHook','value':function _0x2f9bca(_0x45274a,_0x257acc){var _0x2fe054=_0x10c56f;if(_0x45274a)for(var _0x53a2f6 in _0x45274a){this[_0x53a2f6]=_0x45274a[_0x53a2f6];}this['particleSystem']&&this[_0x2fe054(0x7c)]['setOptions'](this[_0x2fe054(0x15e)]());}},{'key':_0x10c56f(0x15e),'value':function _0x5e8a82(){var _0xa53810=_0x10c56f,_0x396c63=Math['ceil'](Math['sqrt'](this['particlesNumber']));return this['particlesNumber']=_0x396c63*_0x396c63,{'particlesTextureSize':_0x396c63,'maxParticles':this['particlesNumber'],'particleHeight':this['fixedHeight'],'fadeOpacity':this['fadeOpacity'],'dropRate':this['dropRate'],'dropRateBump':this['dropRateBump'],'speedFactor':this['speedFactor'],'lineWidth':this['lineWidth'],'colors':this[_0xa53810(0xb2)]};}},{'key':_0x10c56f(0xaa),'value':function _0x50c412(){var _0x5d8360=_0x10c56f;this[_0x5d8360(0x8e)]['add'](this[_0x5d8360(0x7c)][_0x5d8360(0x13d)]['primitives']['getWind']),this[_0x5d8360(0x8e)][_0x5d8360(0x15d)](this['particleSystem']['particlesComputing'][_0x5d8360(0x8e)][_0x5d8360(0x6f)]),this['primitives'][_0x5d8360(0x15d)](this[_0x5d8360(0x7c)][_0x5d8360(0x13d)]['primitives']['updatePosition']),this['primitives']['add'](this['particleSystem']['particlesComputing']['primitives']['postProcessingPosition']),this[_0x5d8360(0x8e)]['add'](this['particleSystem']['particlesComputing'][_0x5d8360(0x8e)]['postProcessingSpeed']),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['segments']),this[_0x5d8360(0x8e)]['add'](this[_0x5d8360(0x7c)]['particlesRendering']['primitives']['trails']),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['screen']);}},{'key':'updateViewerParameters','value':function _0x3bd9a3(){var _0x290a43=_0x10c56f,_0x12e241=this['camera']['computeViewRectangle'](this['scene']['globe'][_0x290a43(0xd6)]);if(!_0x12e241){var _0x4099c1=this['_map']['getExtent']();_0x12e241=Cesium$1['Rectangle'][_0x290a43(0x14d)](_0x4099c1['xmin'],_0x4099c1['ymin'],_0x4099c1['xmax'],_0x4099c1['ymax']);}var _0x2f15b8=Util['viewRectangleToLonLatRange'](_0x12e241);this['viewerParameters'][_0x290a43(0xf5)]['x']=_0x2f15b8['lon']['min'],this[_0x290a43(0x88)][_0x290a43(0xf5)]['y']=_0x2f15b8['lon']['max'],this[_0x290a43(0x88)]['latRange']['x']=_0x2f15b8['lat'][_0x290a43(0x15b)],this[_0x290a43(0x88)][_0x290a43(0xe0)]['y']=_0x2f15b8[_0x290a43(0x91)][_0x290a43(0x16a)];var _0x5dff02=this['camera']['getPixelSize'](this[_0x290a43(0x8d)],this['scene'][_0x290a43(0xfd)],this['scene'][_0x290a43(0xa6)]);_0x5dff02>0x0&&(this[_0x290a43(0x88)]['pixelSize']=_0x5dff02);}}]),_0x4b962a;}(BaseLayer$1);mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;var CanvasParticle=(function(){function _0x2ba5b2(){var _0x257120=_0x110f;_classCallCheck(this,_0x2ba5b2),this['lng']=null,this[_0x257120(0x91)]=null,this['tlng']=null,this[_0x257120(0xc1)]=null,this['age']=null;}return _createClass(_0x2ba5b2,[{'key':'destroy','value':function _0x1ca6e9(){for(var _0x4a572f in this){delete this[_0x4a572f];}}}]),_0x2ba5b2;}()),CanvasWindField=(function(){var _0x529630=_0x3243b4;function _0x19271c(_0x3f8132){var _0x3eed36=_0x110f;_classCallCheck(this,_0x19271c),this[_0x3eed36(0xd1)](_0x3f8132);}return _createClass(_0x19271c,[{'key':_0x529630(0xb9),'get':function _0x44ed6f(){var _0x34b03d=_0x529630;return this[_0x34b03d(0xbd)];},'set':function _0x28a82b(_0x6df5a2){var _0x3d84d5=_0x529630;this[_0x3d84d5(0xbd)]=(0x64-(_0x6df5a2>0x63?0x63:_0x6df5a2))*0x64,this['_calc_speedRate']=[(this[_0x3d84d5(0x13a)]-this['xmin'])/this['_speedRate'],(this[_0x3d84d5(0x159)]-this['ymin'])/this['_speedRate']];}},{'key':'maxAge','get':function _0x38a6ed(){var _0x10c024=_0x529630;return this[_0x10c024(0x152)];},'set':function _0x703c95(_0x975bdc){this['_maxAge']=_0x975bdc;}},{'key':'setOptions','value':function _0x2c03b5(_0x56b140){var _0x21e6ab=_0x529630;this[_0x21e6ab(0x12a)]=_0x56b140,this['maxAge']=_0x56b140['maxAge']||0x78,this['speedRate']=_0x56b140['speedRate']||0x32,this['particles']=[];var _0x4f9b1a=_0x56b140['particlesNumber']||0x1000;for(var _0x331a70=0x0;_0x331a70<_0x4f9b1a;_0x331a70++){var _0x39c044=this['_randomParticle'](new CanvasParticle());this[_0x21e6ab(0xf9)]['push'](_0x39c044);}}},{'key':_0x529630(0xed),'value':function _0x54f789(_0x29ee4a){var _0x4eb51d=_0x529630;this['rows']=_0x29ee4a['rows'],this['cols']=_0x29ee4a['cols'],this['xmin']=_0x29ee4a['xmin'],this[_0x4eb51d(0x13a)]=_0x29ee4a['xmax'],this[_0x4eb51d(0x75)]=_0x29ee4a['ymin'],this['ymax']=_0x29ee4a[_0x4eb51d(0x159)],this['grid']=[];var _0x1a9302=_0x29ee4a[_0x4eb51d(0xda)],_0x1258fc=_0x29ee4a['vdata'],_0xee8c69=![];_0x1a9302['length']===this[_0x4eb51d(0xd7)]&&_0x1a9302[0x0]['length']===this['cols']&&(_0xee8c69=!![]);var _0x169d3f=0x0,_0x486c5f=null,_0x227bcc=null;for(var _0x1593f2=0x0;_0x1593f2<this['rows'];_0x1593f2++){_0x486c5f=[];for(var _0x22729a=0x0;_0x22729a<this['cols'];_0x22729a++,_0x169d3f++){_0xee8c69?_0x227bcc=this['_calcUV'](_0x1a9302[_0x1593f2][_0x22729a],_0x1258fc[_0x1593f2][_0x22729a]):_0x227bcc=this['_calcUV'](_0x1a9302[_0x169d3f],_0x1258fc[_0x169d3f]),_0x486c5f['push'](_0x227bcc);}this[_0x4eb51d(0xac)]['push'](_0x486c5f);}this['options']['reverseY']&&this[_0x4eb51d(0xac)][_0x4eb51d(0x7b)]();}},{'key':_0x529630(0xbf),'value':function _0x322d04(){var _0x5ace60=_0x529630;delete this['rows'],delete this['cols'],delete this[_0x5ace60(0x87)],delete this['xmax'],delete this[_0x5ace60(0x75)],delete this[_0x5ace60(0x159)],delete this[_0x5ace60(0xac)],delete this[_0x5ace60(0xf9)];}},{'key':'toGridXY','value':function _0x7f7718(_0x5cbf99,_0x47c1d0){var _0x4f93b6=_0x529630,_0x56d352=(_0x5cbf99-this['xmin'])/(this[_0x4f93b6(0x13a)]-this['xmin'])*(this[_0x4f93b6(0x144)]-0x1),_0x45a805=(this['ymax']-_0x47c1d0)/(this[_0x4f93b6(0x159)]-this[_0x4f93b6(0x75)])*(this['rows']-0x1);return[_0x56d352,_0x45a805];}},{'key':'getUVByXY','value':function _0x2731ef(_0x255e42,_0x2f7481){var _0x5d8e3d=_0x529630;if(_0x255e42<0x0||_0x255e42>=this['cols']||_0x2f7481>=this['rows'])return[0x0,0x0,0x0];var _0x3958c0=Math[_0x5d8e3d(0x129)](_0x255e42),_0x4f5d32=Math[_0x5d8e3d(0x129)](_0x2f7481);if(_0x3958c0===_0x255e42&&_0x4f5d32===_0x2f7481)return this['grid'][_0x2f7481][_0x255e42];var _0x3f9505=_0x3958c0+0x1,_0x70a193=_0x4f5d32+0x1,_0x54cdd8=this[_0x5d8e3d(0xb8)](_0x3958c0,_0x4f5d32),_0x28c0a4=this[_0x5d8e3d(0xb8)](_0x3f9505,_0x4f5d32),_0xe558cb=this['getUVByXY'](_0x3958c0,_0x70a193),_0x50b81b=this['getUVByXY'](_0x3f9505,_0x70a193),_0x4cd605=null;try{_0x4cd605=this[_0x5d8e3d(0x95)](_0x255e42-_0x3958c0,_0x2f7481-_0x4f5d32,_0x54cdd8,_0x28c0a4,_0xe558cb,_0x50b81b);}catch(_0xed45fd){console[_0x5d8e3d(0xc0)](_0x255e42,_0x2f7481);}return _0x4cd605;}},{'key':_0x529630(0x95),'value':function _0x14dc95(_0x2acfb2,_0x2495bb,_0x367859,_0x565aa5,_0x456ea0,_0x26186c){var _0x5d07a1=0x1-_0x2acfb2,_0x49a349=0x1-_0x2495bb,_0x49b1fc=_0x5d07a1*_0x49a349,_0x41d40d=_0x2acfb2*_0x49a349,_0x468845=_0x5d07a1*_0x2495bb,_0x31166f=_0x2acfb2*_0x2495bb,_0x766faa=_0x367859[0x0]*_0x49b1fc+_0x565aa5[0x0]*_0x41d40d+_0x456ea0[0x0]*_0x468845+_0x26186c[0x0]*_0x31166f,_0x381132=_0x367859[0x1]*_0x49b1fc+_0x565aa5[0x1]*_0x41d40d+_0x456ea0[0x1]*_0x468845+_0x26186c[0x1]*_0x31166f;return this['_calcUV'](_0x766faa,_0x381132);}},{'key':'_calcUV','value':function _0x55ada6(_0x470063,_0x2d882c){return[+_0x470063,+_0x2d882c,Math['sqrt'](_0x470063*_0x470063+_0x2d882c*_0x2d882c)];}},{'key':_0x529630(0x16d),'value':function _0x218385(_0x1106e9,_0x3fefb6){var _0x479970=_0x529630;if(!this[_0x479970(0x125)](_0x1106e9,_0x3fefb6))return null;var _0x18e3be=this[_0x479970(0x84)](_0x1106e9,_0x3fefb6),_0x39381a=this['getUVByXY'](_0x18e3be[0x0],_0x18e3be[0x1]);return _0x39381a;}},{'key':'isInExtent','value':function _0x5511c8(_0x4b8222,_0x4c8699){var _0x5355b5=_0x529630;return _0x4b8222>=this['xmin']&&_0x4b8222<=this['xmax']&&_0x4c8699>=this[_0x5355b5(0x75)]&&_0x4c8699<=this[_0x5355b5(0x159)]?!![]:![];}},{'key':'getRandomLatLng','value':function _0x53df9e(){var _0x3725cd=_0x529630,_0xb99bef=fRandomByfloat(this['xmin'],this['xmax']),_0xa55d5a=fRandomByfloat(this['ymin'],this[_0x3725cd(0x159)]);return{'lat':_0xa55d5a,'lng':_0xb99bef};}},{'key':'getParticles','value':function _0x59b405(){var _0x23253e=_0x529630,_0x3d8259,_0x427faa,_0x163394;for(var _0x10b336=0x0,_0x3ddfea=this[_0x23253e(0xf9)][_0x23253e(0xf1)];_0x10b336<_0x3ddfea;_0x10b336++){var _0x13e7d4=this[_0x23253e(0xf9)][_0x10b336];_0x13e7d4['age']<=0x0&&(_0x13e7d4=this['_randomParticle'](_0x13e7d4));if(_0x13e7d4['age']>0x0){var _0xab79a8=_0x13e7d4[_0x23253e(0x9b)],_0x553a79=_0x13e7d4[_0x23253e(0xc1)];_0x163394=this['getUVByPoint'](_0xab79a8,_0x553a79),_0x163394?(_0x3d8259=_0xab79a8+this['_calc_speedRate'][0x0]*_0x163394[0x0],_0x427faa=_0x553a79+this['_calc_speedRate'][0x1]*_0x163394[0x1],_0x13e7d4[_0x23253e(0x148)]=_0xab79a8,_0x13e7d4['lat']=_0x553a79,_0x13e7d4['tlng']=_0x3d8259,_0x13e7d4['tlat']=_0x427faa,_0x13e7d4['age']--):_0x13e7d4['age']=0x0;}}return this['particles'];}},{'key':_0x529630(0x85),'value':function _0x4b8877(_0x5de05a){var _0xe1457c=_0x529630,_0x52c0b6,_0x5ee46d;for(var _0x2f50b7=0x0;_0x2f50b7<0x1e;_0x2f50b7++){_0x52c0b6=this[_0xe1457c(0x14b)](),_0x5ee46d=this['getUVByPoint'](_0x52c0b6['lng'],_0x52c0b6['lat']);if(_0x5ee46d&&_0x5ee46d[0x2]>0x0)break;}if(!_0x5ee46d)return _0x5de05a;var _0x222b61=_0x52c0b6['lng']+this['_calc_speedRate'][0x0]*_0x5ee46d[0x0],_0x17ce1=_0x52c0b6['lat']+this['_calc_speedRate'][0x1]*_0x5ee46d[0x1];return _0x5de05a['lng']=_0x52c0b6['lng'],_0x5de05a['lat']=_0x52c0b6['lat'],_0x5de05a['tlng']=_0x222b61,_0x5de05a['tlat']=_0x17ce1,_0x5de05a['age']=Math['round'](Math['random']()*this['maxAge']),_0x5de05a;}},{'key':'destroy','value':function _0x5eaffd(){for(var _0x2938d5 in this){delete this[_0x2938d5];}}}]),_0x19271c;}());function fRandomByfloat(_0x55be83,_0x4961aa){return _0x55be83+Math['random']()*(_0x4961aa-_0x55be83);}var Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'],CanvasWindLayer=function(_0x51ac85){var _0x59bf3b=_0x3243b4;_inherits(_0x1c3719,_0x51ac85);var _0x672462=_createSuper(_0x1c3719);function _0x1c3719(){var _0xb718f2=_0x110f,_0x51deba,_0x2e97a3=arguments[_0xb718f2(0xf1)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return _classCallCheck(this,_0x1c3719),_0x51deba=_0x672462['call'](this,_0x2e97a3),_0x51deba[_0xb718f2(0x106)](_0x2e97a3),_0x51deba['canvas']=null,_0x51deba;}return _createClass(_0x1c3719,[{'key':'_setOptionsHook','value':function _0x38aac2(_0x1d3459,_0x5d1217){var _0x253c1d=_0x110f,_0x50fca0,_0x3ff00a,_0x234133;this[_0x253c1d(0x120)]=0x3e8/(_0x1d3459['frameRate']||0xa),this[_0x253c1d(0x141)]=(_0x50fca0=this['options']['pointerEvents'])!==null&&_0x50fca0!==void 0x0?_0x50fca0:![],this['color']=_0x1d3459[_0x253c1d(0x140)]||_0x253c1d(0x14a),this[_0x253c1d(0xdc)]=_0x1d3459['lineWidth']||0x1,this['fixedHeight']=(_0x3ff00a=_0x1d3459['fixedHeight'])!==null&&_0x3ff00a!==void 0x0?_0x3ff00a:0x0,this[_0x253c1d(0x136)]=(_0x234133=_0x1d3459[_0x253c1d(0x136)])!==null&&_0x234133!==void 0x0?_0x234133:![],this['windField']&&this['windField'][_0x253c1d(0xd1)](_0x1d3459);}},{'key':'layer','get':function _0x5518c9(){var _0x521fab=_0x110f;return this[_0x521fab(0x122)];}},{'key':_0x59bf3b(0xe8),'get':function _0x16a684(){return this['_map']['scene']['canvas']['clientWidth'];}},{'key':_0x59bf3b(0x72),'get':function _0x380f6f(){var _0x53d70d=_0x59bf3b;return this['_map'][_0x53d70d(0x11e)]['canvas'][_0x53d70d(0x13e)];}},{'key':'pointerEvents','get':function _0x16f4e9(){return this['_pointerEvents'];},'set':function _0xc3944f(_0x4429e2){var _0x32bcc8=_0x59bf3b;this['_pointerEvents']=_0x4429e2;if(!this['canvas'])return;_0x4429e2?this['canvas']['style']['pointer-events']='all':this['canvas'][_0x32bcc8(0xfb)]['pointer-events']=_0x32bcc8(0xad);}},{'key':'particlesNumber','get':function _0x1efd43(){return this['options']['particlesNumber'];},'set':function _0x347422(_0x523665){var _0x1f2569=_0x59bf3b,_0x20b821=this;this['options']['particlesNumber']=_0x523665,clearTimeout(this[_0x1f2569(0xfa)]),this[_0x1f2569(0xfa)]=setTimeout(function(){_0x20b821['redraw']();},0x1f4);}},{'key':'speedRate','get':function _0x35113d(){return this['options']['speedRate'];},'set':function _0x3fe3c2(_0x4d9b8b){var _0x3513da=_0x59bf3b;this[_0x3513da(0x12a)]['speedRate']=_0x4d9b8b,this[_0x3513da(0x69)]&&(this['windField'][_0x3513da(0xb9)]=_0x4d9b8b);}},{'key':'maxAge','get':function _0x308989(){var _0x16fd76=_0x59bf3b;return this[_0x16fd76(0x12a)][_0x16fd76(0x134)];},'set':function _0xcfaab4(_0x55e55c){var _0x170c00=_0x59bf3b;this[_0x170c00(0x12a)][_0x170c00(0x134)]=_0x55e55c,this['windField']&&(this['windField']['maxAge']=_0x55e55c);}},{'key':'data','get':function _0x325e93(){var _0x961759=_0x59bf3b;return this[_0x961759(0xa0)];},'set':function _0x155422(_0x3c6509){this['setData'](_0x3c6509);}},{'key':'_showHook','value':function _0xf034cc(_0x3aee26){var _0x5e9a66=_0x59bf3b;_0x3aee26?this['_addedHook']():(this['windData']&&(this['options'][_0x5e9a66(0x74)]=this[_0x5e9a66(0xa0)]),this[_0x5e9a66(0xc9)]());}},{'key':'_mountedHook','value':function _0x315f0f(){var _0x45851d=_0x59bf3b;this['options']['worker']?this[_0x45851d(0x169)]():this['windField']=new CanvasWindField(this['options']);}},{'key':'_addedHook','value':function _0x1ab0f1(){var _0x4c046b=_0x59bf3b;this['canvas']=this[_0x4c046b(0x9f)](),this[_0x4c046b(0x147)]=this['canvas']['getContext']('2d',{'willReadFrequently':!![]}),this['bindEvent'](),this[_0x4c046b(0x12a)][_0x4c046b(0x74)]&&this['setData'](this['options']['data']);}},{'key':_0x59bf3b(0xc9),'value':function _0x115c97(){var _0x48b856=_0x59bf3b;this['clear'](),this['unbindEvent'](),this[_0x48b856(0x122)]&&(this['_map'][_0x48b856(0x155)]['removeChild'](this[_0x48b856(0x122)]),delete this['canvas']);}},{'key':_0x59bf3b(0x9f),'value':function _0x4992b4(){var _0x42c965=_0x59bf3b,_0x2d2e61=document['createElement']('canvas');_0x2d2e61['style'][_0x42c965(0x13f)]=_0x42c965(0xb7),_0x2d2e61['style']['top']='0px',_0x2d2e61['style'][_0x42c965(0xab)]=_0x42c965(0x12c),_0x2d2e61['style']['width']='100%',_0x2d2e61['style']['height']='100%',_0x2d2e61['style'][_0x42c965(0x10a)]=this['_pointerEvents']?_0x42c965(0x10d):'none',_0x2d2e61['style']['zIndex']=0xa,_0x2d2e61['setAttribute']('id',_0x42c965(0x11d)),_0x2d2e61[_0x42c965(0x82)]('class',_0x42c965(0x11d)),this['_map'][_0x42c965(0x155)][_0x42c965(0xf8)](_0x2d2e61);var _0x30785f=this[_0x42c965(0x99)]['scene'];return _0x2d2e61['width']=_0x30785f['canvas']['clientWidth'],_0x2d2e61['height']=_0x30785f['canvas']['clientHeight'],_0x2d2e61;}},{'key':'resize','value':function _0xd35bf0(){var _0x438329=_0x59bf3b;this[_0x438329(0x122)]&&(this['canvas']['width']=this[_0x438329(0xe8)],this['canvas']['height']=this[_0x438329(0x72)]);}},{'key':'bindEvent','value':function _0x1eb90c(){var _0x1784d4=_0x59bf3b,_0xb5ae35=this,_0x598b09=Date['now']();(function _0xc75750(){var _0x4e5ead=_0x110f;_0xb5ae35[_0x4e5ead(0xe1)]=window[_0x4e5ead(0x154)](_0xc75750);if(_0xb5ae35[_0x4e5ead(0x11a)]&&_0xb5ae35[_0x4e5ead(0x69)]){var _0x49a923=Date['now'](),_0x185e95=_0x49a923-_0x598b09;_0x185e95>_0xb5ae35[_0x4e5ead(0x120)]&&(_0x598b09=_0x49a923-_0x185e95%_0xb5ae35['frameTime'],_0xb5ae35['update']());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this[_0x1784d4(0x12a)]['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType'][_0x1784d4(0x7e)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x1784d4(0xb1)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x1784d4(0xb1)]['mouseUp'],this[_0x1784d4(0x8a)],this)));}},{'key':'unbindEvent','value':function _0x1fe609(){var _0x57e30e=_0x59bf3b;window[_0x57e30e(0xca)](this['animateFrame']),delete this['animateFrame'],window[_0x57e30e(0xdb)]('resize',this['resize']),this['options'][_0x57e30e(0x93)]&&(this['_map']['off'](mars3d__namespace['EventType']['wheel'],this[_0x57e30e(0xdd)],this),this[_0x57e30e(0x99)]['off'](mars3d__namespace[_0x57e30e(0xb1)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x57e30e(0x99)]['off'](mars3d__namespace['EventType']['mouseUp'],this[_0x57e30e(0x8a)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}},{'key':'_onMapWhellEvent','value':function _0x5652e3(_0x6b519f){var _0x1d3508=_0x59bf3b,_0x510a46=this;clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas']['style'][_0x1d3508(0xcd)]='hidden',this['refreshTimer']=setTimeout(function(){if(!_0x510a46['show'])return;_0x510a46['redraw'](),_0x510a46['canvas']['style']['visibility']='visible';},0xc8);}},{'key':_0x59bf3b(0x14f),'value':function _0x465bc5(_0x26a095){var _0x25deff=_0x59bf3b;this[_0x25deff(0x16f)]=!![],this['_map'][_0x25deff(0x150)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}},{'key':_0x59bf3b(0x10c),'value':function _0x4bb2be(_0x45d982){var _0x4fbe60=_0x59bf3b;if(!this['show']||!this[_0x4fbe60(0x122)])return;this['mouse_down']&&(this['canvas'][_0x4fbe60(0xfb)]['visibility']='hidden',this['mouse_move']=!![]);}},{'key':_0x59bf3b(0x8a),'value':function _0x4ec14d(_0x1a1cd6){var _0xb6f9c1=_0x59bf3b;if(!this[_0xb6f9c1(0x11a)]||!this[_0xb6f9c1(0x122)])return;this[_0xb6f9c1(0x99)]['off'](mars3d__namespace[_0xb6f9c1(0xb1)][_0xb6f9c1(0xd0)],this[_0xb6f9c1(0x10c)],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['canvas'][_0xb6f9c1(0xfb)]['visibility']='visible',this[_0xb6f9c1(0x16f)]=![],this[_0xb6f9c1(0x137)]=![];}},{'key':'setData','value':function _0x2c6512(_0x491e8d){this['clear'](),this['windData']=_0x491e8d,this['windField']['setDate'](_0x491e8d),this['redraw']();}},{'key':'redraw','value':function _0x35793f(){var _0x4d6df8=_0x59bf3b;if(!this['show'])return;this['windField']['setOptions'](this[_0x4d6df8(0x12a)]),this['update']();}},{'key':'update','value':function _0xd506b3(){var _0x533a4e=_0x59bf3b;if(this[_0x533a4e(0x98)])return;this['_updateIng']=!![];if(this['worker'])this['windField']['update']();else{var _0x56633d=this['windField']['getParticles']();this['_drawLines'](_0x56633d);}this['_updateIng']=![];}},{'key':'_drawLines','value':function _0x128dec(_0x59b0a6){var _0xe3e7d=_0x59bf3b;this['canvasContext']['globalCompositeOperation']='destination-in',this['canvasContext'][_0xe3e7d(0xe4)](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext'][_0xe3e7d(0x9d)]='lighter',this[_0xe3e7d(0x147)][_0xe3e7d(0x167)]=0.9,this[_0xe3e7d(0x147)][_0xe3e7d(0x94)](),this[_0xe3e7d(0x147)]['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this['color'];var _0x27d623=this['_map']['scene'][_0xe3e7d(0xc6)]!==Cesium['SceneMode']['SCENE3D'];for(var _0x576006=0x0,_0x39b27b=_0x59b0a6['length'];_0x576006<_0x39b27b;_0x576006++){var _0x2089c6=_0x59b0a6[_0x576006],_0x3523f5=this['_tomap'](_0x2089c6[_0xe3e7d(0x148)],_0x2089c6[_0xe3e7d(0x91)],_0x2089c6),_0x1db13f=this[_0xe3e7d(0xd4)](_0x2089c6[_0xe3e7d(0x9b)],_0x2089c6['tlat'],_0x2089c6);if(!_0x3523f5||!_0x1db13f)continue;if(_0x27d623&&Math['abs'](_0x3523f5[0x0]-_0x1db13f[0x0])>=this['canvasWidth'])continue;this[_0xe3e7d(0x147)]['moveTo'](_0x3523f5[0x0],_0x3523f5[0x1]),this[_0xe3e7d(0x147)]['lineTo'](_0x1db13f[0x0],_0x1db13f[0x1]);}this[_0xe3e7d(0x147)][_0xe3e7d(0x8f)]();}},{'key':'_tomap','value':function _0x4cce50(_0x3ad212,_0x5b69b1,_0x5f5c45){var _0x2c6064=_0x59bf3b,_0x4ff0e3=Cesium['Cartesian3'][_0x2c6064(0x14d)](_0x3ad212,_0x5b69b1,this['fixedHeight']),_0x2526e2=this[_0x2c6064(0x99)][_0x2c6064(0x11e)];if(_0x2526e2['mode']===Cesium['SceneMode']['SCENE3D']){var _0x3e17df=new Cesium[(_0x2c6064(0x90))](_0x2526e2['globe']['ellipsoid'],_0x2526e2[_0x2c6064(0x10b)]['positionWC']),_0x312f48=_0x3e17df['isPointVisible'](_0x4ff0e3);if(!_0x312f48)return _0x5f5c45[_0x2c6064(0xe2)]=0x0,null;}var _0x506a35=Cesium['SceneTransforms'][_0x2c6064(0xd9)](this['_map']['scene'],_0x4ff0e3);return _0x506a35?[_0x506a35['x'],_0x506a35['y']]:null;}},{'key':'clear','value':function _0xbc19a7(){var _0x433305=_0x59bf3b;this['windField']['clear'](),delete this[_0x433305(0xa0)];}},{'key':'initWorker','value':function _0x11603d(){var _0x522d53=_0x59bf3b,_0x4a4a07=this;this[_0x522d53(0x151)]=new Worker(this['options']['worker']),this['worker']['onmessage']=function(_0x45f758){var _0x4be6d3=_0x522d53;_0x4a4a07['_drawLines'](_0x45f758['data'][_0x4be6d3(0xf9)]),_0x4a4a07[_0x4be6d3(0x112)]=![];},this[_0x522d53(0x69)]={'init':function _0x6b3453(_0x29eb62){var _0x2ff170=_0x522d53;_0x4a4a07['worker'][_0x2ff170(0x16b)]({'type':'init','options':_0x29eb62});},'setOptions':function _0x370cee(_0x501763){var _0x39d0d5=_0x522d53;_0x4a4a07[_0x39d0d5(0x151)][_0x39d0d5(0x16b)]({'type':_0x39d0d5(0xd1),'options':_0x501763});},'setDate':function _0x5e6824(_0x1e0b59){var _0x4a8920=_0x522d53;_0x4a4a07['worker'][_0x4a8920(0x16b)]({'type':'setDate','data':_0x1e0b59});},'update':function _0x6e5067(){if(_0x4a4a07['_updateIng2'])return;_0x4a4a07['_updateIng2']=!![],_0x4a4a07['worker']['postMessage']({'type':'update'});},'clear':function _0x39840b(){_0x4a4a07['worker']['postMessage']({'type':'clear'});}},this['windField']['init'](this[_0x522d53(0x12a)]);}}]),_0x1c3719;}(BaseLayer);mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x3243b4(0xfe)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x3243b4(0x73)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil,Object['defineProperty'](exports,'__esModule',{'value':!![]});
15
15
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.5.0",
3
+ "version": "3.5.1",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "dist/mars3d-wind.js",
6
6
  "files": [
@@ -8,7 +8,7 @@
8
8
  ],
9
9
  "peerDependencies": {},
10
10
  "devDependencies": {
11
- "mars3d": "~3.5.0"
11
+ "mars3d": "~3.5.1"
12
12
  },
13
13
  "scripts": {
14
14
  "lint": "eslint ./src/**/*.{js,ts} --fix"