mars3d-wind 3.8.1 → 3.8.2

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,8 +1,8 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.8.1
5
- * 编译日期:2024-09-03 18:36:55
4
+ * 版本信息:v3.8.2
5
+ * 编译日期:2024-09-10 17:56:25
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:免费公开版 ,2024-08-01
8
8
  */
@@ -11,5 +11,5 @@
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';(function(_0x474cda,_0x4e4e81){function _0x46ef80(_0x4bee6b,_0x44bc64){return _0x25e8(_0x44bc64-0x23e,_0x4bee6b);}function _0x5f4c0a(_0x12dc2d,_0x2dfec5){return _0x25e8(_0x2dfec5-0x262,_0x12dc2d);}const _0x3d22b1=_0x474cda();while(!![]){try{const _0x292e20=-parseInt(_0x5f4c0a(0x2ff,0x336))/0x1*(-parseInt(_0x5f4c0a(0x389,0x36f))/0x2)+parseInt(_0x46ef80(0x372,0x359))/0x3*(-parseInt(_0x46ef80(0x3e4,0x3b5))/0x4)+parseInt(_0x5f4c0a(0x3a3,0x3eb))/0x5*(-parseInt(_0x5f4c0a(0x350,0x352))/0x6)+-parseInt(_0x46ef80(0x291,0x311))/0x7+-parseInt(_0x46ef80(0x422,0x3e3))/0x8*(-parseInt(_0x46ef80(0x323,0x2fd))/0x9)+parseInt(_0x46ef80(0x2a8,0x32b))/0xa+parseInt(_0x5f4c0a(0x297,0x323))/0xb*(parseInt(_0x5f4c0a(0x3ab,0x329))/0xc);if(_0x292e20===_0x4e4e81)break;else _0x3d22b1['push'](_0x3d22b1['shift']());}catch(_0x30ff36){_0x3d22b1['push'](_0x3d22b1['shift']());}}}(_0x12a6,0xa2842));function _interopNamespace(_0x5196aa){function _0x7dfc20(_0x58f2ae,_0x106e81){return _0x25e8(_0x58f2ae- -0x36a,_0x106e81);}if(_0x5196aa&&_0x5196aa['__esModule'])return _0x5196aa;function _0x48ba28(_0x3e8244,_0x4a4ccc){return _0x25e8(_0x3e8244- -0x21a,_0x4a4ccc);}var _0x4a4c10=Object['create'](null);return _0x5196aa&&Object['keys'](_0x5196aa)[_0x48ba28(-0x116,-0x90)](function(_0x2ba75e){function _0x2dfd69(_0xc83b12,_0x1efac8){return _0x48ba28(_0xc83b12-0x305,_0x1efac8);}if(_0x2ba75e!=='default'){var _0x478c55=Object['getOwnPropertyDescriptor'](_0x5196aa,_0x2ba75e);Object['defineProperty'](_0x4a4c10,_0x2ba75e,_0x478c55[_0x2dfd69(0x21e,0x284)]?_0x478c55:{'enumerable':!![],'get':function(){return _0x5196aa[_0x2ba75e];}});}}),_0x4a4c10[_0x48ba28(-0x88,-0x10e)]=_0x5196aa,_0x4a4c10;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$7=mars3d__namespace['Cesium'];function getU(_0x4e6f1a,_0x4a4788){const _0x2b561f=_0x4e6f1a*Math[_0x49e5cc(-0x17c,-0x149)](Cesium$7[_0x5d65fe(0x249,0x225)]['toRadians'](_0x4a4788));function _0x49e5cc(_0xa303c8,_0x23839d){return _0x25e8(_0x23839d- -0x2d3,_0xa303c8);}function _0x5d65fe(_0x42a6fd,_0x44797a){return _0x25e8(_0x44797a-0x11a,_0x42a6fd);}return _0x2b561f;}function getV(_0x57b6dc,_0x4d3535){const _0x2c92b0=_0x57b6dc*Math[_0x1916eb(0x235,0x2c4)](Cesium$7[_0x1916eb(0x204,0x19f)]['toRadians'](_0x4d3535));function _0x1916eb(_0x1a4801,_0x2ea442){return _0x25e8(_0x1a4801-0xf9,_0x2ea442);}function _0x33b640(_0x341ae3,_0x1b0e2c){return _0x25e8(_0x1b0e2c- -0x193,_0x341ae3);}return _0x2c92b0;}function getSpeed(_0x21fc36,_0x4cd0b0){function _0x49a240(_0x456188,_0x151bbf){return _0x25e8(_0x151bbf-0x325,_0x456188);}function _0x100b52(_0x58f988,_0x5062cd){return _0x25e8(_0x58f988- -0x25d,_0x5062cd);}const _0x1fe5a7=Math[_0x49a240(0x465,0x3e0)](Math['pow'](_0x21fc36,0x2)+Math[_0x100b52(-0x87,-0xe7)](_0x4cd0b0,0x2));return _0x1fe5a7;}function getDirection(_0x5c2453,_0x4dd3ae){let _0x2de657=Cesium$7['Math']['toDegrees'](Math['atan2'](_0x4dd3ae,_0x5c2453));return _0x2de657+=_0x2de657<0x0?0x168:0x0,_0x2de657;}const _0x2c63d8={};function _0x12a6(){const _0x102c53=['RGB','update','mode','particlesRendering','xmax','particles','_updateIng','previousParticlesPosition','show','get','once','createCommand','globeBoundingSphere','canvas','createFramebuffer','calculateSpeed','lon','Geometry','sin','applyViewerParameters','clearFramebuffers','DrawCommand','refreshTimer','Color','postMessage','_setOptionsHook','viewRectangleToLonLatRange','reverseY','mouse_move','createSegmentsGeometry','interval','EllipsoidalOccluder','keys','LayerUtil','Compute','position','canvasResize','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','canvasContext','hidden','defines','preExecute','Pass','globalCompositeOperation','worker','container','mouseMove','absolute','none','cancelAnimationFrame','pixelDatatype','LINEAR','nextTrailsDepth','drawingBufferWidth','uniformMap','getFullscreenQuad','max','_onMap_preRenderEvent','_onMouseDownEvent','FLOAT','lonRange','segmentsDepth','_data','lng','dynamic','dimension','left','PixelFormat','DepthFunction','addPrimitives','#version\x20300\x20es\x0a\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20norm)\x20Unit\x20converted\x20to\x20degrees\x20of\x20longitude\x20and\x20latitude\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20speed;\x0a\x20\x20if(length(speed.rgb)\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20}\x0a}\x0a','abs','frameRate','fromCache','#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20W;\x20//\x20upward\x20wind\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\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20vec2\x20wSpeedRange;\x0auniform\x20float\x20speedScaleFactor;\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\x20lonLatLev.x\x20=\x20clamp(lonLatLev.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20minimum.y,\x20maximum.y);\x0a\x20\x20lonLatLev.z\x20=\x20clamp(lonLatLev.z,\x20minimum.z,\x20maximum.z);\x0a\x0a\x20\x20vec3\x20index3D\x20=\x20vec3(0.0f);\x0a\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20//\x20map\x20the\x20z-axis\x20value\x20to\x20the\x20nearest\x20bit\x20plane\x20to\x20ensure\x20that\x20the\x20result\x20is\x20an\x20integer\x0a\x20\x20index3D.z\x20=\x20ceil((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,\x207,\x208,\x209],\x20width\x20=\x202,\x20height\x20=\x202,\x20level\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\x206\x207\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x202\x203\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0afloat\x20interpolateTexture(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x201.0f\x20*\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x201.0f\x20*\x20interval.y;\x0a\x0a\x20\x20float\x20lon0_lat0\x20=\x20getWindComponent(componentTexture,\x20vec3(lon0,\x20lat0,\x20lev));\x0a\x20\x20float\x20lon1_lat0\x20=\x20getWindComponent(componentTexture,\x20vec3(lon1,\x20lat0,\x20lev));\x0a\x20\x20float\x20lon0_lat1\x20=\x20getWindComponent(componentTexture,\x20vec3(lon0,\x20lat1,\x20lev));\x0a\x20\x20float\x20lon1_lat1\x20=\x20getWindComponent(componentTexture,\x20vec3(lon1,\x20lat1,\x20lev));\x0a\x0a\x20\x20float\x20lon_lat0\x20=\x20mix(lon0_lat0,\x20lon1_lat0,\x20lon\x20-\x20lon0);\x0a\x20\x20float\x20lon_lat1\x20=\x20mix(lon0_lat1,\x20lon1_lat1,\x20lon\x20-\x20lon0);\x0a\x20\x20float\x20lon_lat\x20=\x20mix(lon_lat0,\x20lon_lat1,\x20lat\x20-\x20lat0);\x0a\x20\x20return\x20lon_lat;\x0a}\x0a\x0avec3\x20linearInterpolation(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bilinear_interpolation\x0a\x20\x20float\x20u\x20=\x20interpolateTexture(U,\x20lonLatLev);\x0a\x20\x20float\x20v\x20=\x20interpolateTexture(V,\x20lonLatLev);\x0a\x20\x20float\x20w\x20=\x20interpolateTexture(W,\x20lonLatLev);\x0a\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\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\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec3\x20convertSpeedUnitToLonLat(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20float\x20w\x20=\x20speed.z;\x0a\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20return\x20windVectorInLonLatLev;\x0a}\x0a\x0avec3\x20calculateSpeedByRungeKutta2(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec3\x20y_n\x20=\x20lonLatLev;\x0a\x20\x20vec3\x20f_n\x20=\x20linearInterpolation(lonLatLev);\x0a\x20\x20vec3\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec3\x20speed\x20=\x20h\x20*\x20linearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20getRange(vec2\x20range)\x20{\x0a\x20\x20float\x20x1\x20=\x200.0f\x20-\x20range.x;\x0a\x20\x20float\x20x2\x20=\x20range.y\x20-\x200.0f;\x0a\x20\x20if(x1\x20<\x200.0f\x20||\x20x2\x20<\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(abs(x1),\x20abs(x2));\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x20abs(max(x1,\x20x2)));\x0a\x20\x20}\x0a}\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20vec3\x20percent\x20=\x20vec3(0.0f);\x0a\x20\x20vec2\x20uRange\x20=\x20getRange(uSpeedRange);\x0a\x20\x20vec2\x20vRange\x20=\x20getRange(vSpeedRange);\x0a\x20\x20vec2\x20wRange\x20=\x20getRange(wSpeedRange);\x0a\x20\x20if(length(speed.xyz)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x200.0f;\x0a\x20\x20}\x0a\x0a\x20\x20percent.x\x20=\x20(abs(speed.x)\x20-\x20uRange.x)\x20/\x20(uRange.y\x20-\x20uRange.x);\x0a\x20\x20percent.y\x20=\x20(abs(speed.y)\x20-\x20vRange.x)\x20/\x20(vRange.y\x20-\x20vRange.x);\x0a\x20\x20if(wSpeedRange.y\x20==\x20wSpeedRange.x)\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x200.0f;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x20(abs(speed.z)\x20-\x20wRange.x)\x20/\x20(wRange.y\x20-\x20wRange.x);\x0a\x20\x20}\x0a\x20\x20float\x20norm\x20=\x20length(percent);\x0a\x0a\x20\x20return\x20norm;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20speedOrigin\x20=\x20linearInterpolation(lonLatLev);\x0a\x20\x20vec3\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLatLev);\x0a\x20\x20vec3\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLatLev,\x20speed);\x0a\x0a\x20\x20vec4\x20particleSpeed\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speed\x20/\x20speedScaleFactor));\x0a\x20\x20\x20\x20//\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a','_canrefresh','shaderProgram','8PQCuEx','_mountedHook','GeometryAttributes','colors','textures','framebuffers','_onMouseUpEvent','_randomParticle','resize','CanvasWindField','colorTextures','camera','depthTest','redraw','pixelFormat','umax','top','Cesium','1159430ffXDBS','cos','updateViewerParameters','getColorTexture','blue','segments','NEAREST','clear','_pointerEvents','default','push','PrimitiveType','attributeLocations','off','getV','particleSystem','currentTrails','canvasWidth','fadeOpacity','dimensions','latRange','mouseHidden','mouse_down','#version\x20300\x20es\x0a\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20sampler2D\x20segmentsColorTexture;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0auniform\x20sampler2D\x20currentTrailsColor;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0auniform\x20float\x20fadeOpacity;\x0a\x0aout\x20vec4\x20fragColor;\x0avoid\x20main()\x20{\x0a\x20\x20vec4\x20pointsColor\x20=\x20texture(segmentsColorTexture,\x20textureCoordinate);\x0a\x20\x20vec4\x20trailsColor\x20=\x20texture(currentTrailsColor,\x20textureCoordinate);\x0a\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0f\x20*\x20trailsColor)\x20/\x20255.0f;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0a\x0a\x20\x20float\x20pointsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20if(pointsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20fragColor\x20+\x20pointsColor;\x0a\x20\x20}\x0a\x20\x20if(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20fragColor\x20+\x20trailsColor;\x0a\x20\x20}\x0a\x20\x20gl_FragDepth\x20=\x20min(pointsDepth,\x20trailsDepth);\x0a}\x0a','willReadFrequently','randomBetween','_bilinearInterpolation','_map','104tiUYSV','init','commandType','currentParticlesPosition','toDegrees','removeAll','lat','clientWidth','DEPTH_COMPONENT','primitiveType','Framebuffer','rows','DISABLE_GL_POSITION_LOG_DEPTH','UNSIGNED_BYTE','getRandomLatLng','BaseLayer','maxParticles','depthMask','clientHeight','particlesNumber','speed','CanvasWindLayer','type','options','ZERO','_onMapWhellEvent','RenderState','destroy','north','mouseUp','random','register','xmin','all','createRawRenderState','context','WindUtil','height','createRenderingPrimitives','windTextures','createTexture','windField','source','_onMouseMoveEvent','particlesTextureSize','primitives','ShaderSource','blending','maxAge','pow','viewerParameters','fragmentShaderSource','Cartesian2','sources','cols','_tomap','randomizeParticles','sqrt','strokeStyle','style','udata','875727oUdxPw','STATIC_DRAW','11AFiMDJ','Cartesian3','mouseDown','outputTexture','visibility','round','16798068wAYryq','pointerEvents','_removedHook','depthTexture','autoClear','addEventListener','IDENTITY','_colorRamp','dropRateBump','stroke','fixedHeight','particleHeight','6986287yfNEpI','11xwETHC','setOptions','clampToLatitudeRange','length','_addedHook','createRenderingTextures','speedFactor','east','nextTrails','preRender','layer','clearCommand','setData','array','geometry','data','PixelDatatype','_updateIng2','width','particlesTextures','tlat','visible','age','Draw','TWO_PI','1162000MlbyCI','add','isDestroy','6OlcsqN','lineWidth','currentTrailsDepth','speedRate','ComponentDatatype','framebuffer','#version\x20300\x20es\x0a\x0auniform\x20sampler2D\x20trailsColorTexture;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec4\x20trailsColor\x20=\x20texture(trailsColorTexture,\x20textureCoordinate);\x0a\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20if(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20trailsColor;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20}\x0a}\x0a','zIndex','wind','ComputeCommand','VertexArray','getUVByXY','_calc_speedRate','red','vertexShaderSource','scene','setDate','defined','globalAlpha','destination-in','forEach','fromGeometry','Sampler','vdata','_calcUV','OPAQUE','createWindTextures','Math','frameTime','13442epOHsx','BoundingSphere','lev','commandToExecute','nextParticlesPosition','colorTable','postProcessingPosition','ymin','ClearCommand','destroyParticlesTextures','reverse','owner','TextureMagnificationFilter','_animateFrame','1438974CAObiD','windData','createRenderingFramebuffers','min','GeometryAttribute','particlesComputing','EventType','trails','ymax','WindLayer','ShaderProgram','Matrix4','tlng','RGBA','_speedRate'];_0x12a6=function(){return _0x102c53;};return _0x12a6();}_0x2c63d8['__proto__']=null,_0x2c63d8['getU']=getU,_0x2c63d8[_0x51a8ec(0x143,0xc4)]=getV,_0x2c63d8['getSpeed']=getSpeed,_0x2c63d8['getDirection']=getDirection;var WindUtil=_0x2c63d8;const Cesium$6=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x259887){function _0x674848(_0x4b0cc7,_0xff921e){return _0x51a8ec(_0x4b0cc7,_0xff921e-0x4a9);}this['commandType']=_0x259887['commandType'],this['geometry']=_0x259887[_0x674848(0x447,0x4b8)];function _0x1567d8(_0x3d84ae,_0xbc4ced){return _0x51a8ec(_0xbc4ced,_0x3d84ae- -0x35);}this['attributeLocations']=_0x259887['attributeLocations'],this[_0x674848(0x59c,0x584)]=_0x259887[_0x674848(0x518,0x584)],this[_0x674848(0x4c4,0x536)]=_0x259887['uniformMap'],this[_0x674848(0x45d,0x4d4)]=_0x259887['vertexShaderSource'],this['fragmentShaderSource']=_0x259887[_0x1567d8(0xd0,0x70)],this['rawRenderState']=_0x259887['rawRenderState'],this['framebuffer']=_0x259887['framebuffer'],this['outputTexture']=_0x259887[_0x1567d8(-0x44,0x4c)],this[_0x674848(0x47e,0x4a1)]=_0x259887[_0x674848(0x46a,0x4a1)]??![],this['preExecute']=_0x259887[_0x674848(0x4ef,0x529)],this[_0x674848(0x4e4,0x508)]=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['autoClear']&&(this['clearCommand']=new Cesium$6[(_0x1567d8(0xd,0x29))]({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x1567d8(-0x13,0xc)],'pass':Cesium$6[_0x1567d8(0x4c,-0x3)][_0x674848(0x53a,0x4df)]}));}[_0x3e8737(0xf7,0xbf)](_0x4dbe3b){function _0x11839(_0x3dbedd,_0x5e4e6e){return _0x3e8737(_0x3dbedd-0x212,_0x5e4e6e);}function _0xb8abd(_0x349fca,_0x3fcd13){return _0x51a8ec(_0x349fca,_0x3fcd13- -0xa8);}switch(this[_0x11839(0x37b,0x30f)]){case _0xb8abd(-0x6b,-0x90):{const _0x440a10=Cesium$6['VertexArray']['fromGeometry']({'context':_0x4dbe3b,'geometry':this[_0x11839(0x2b6,0x2b6)],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage'][_0xb8abd(-0x56,-0xbb)]}),_0x4fe873={};_0x4fe873[_0xb8abd(0x9a,0x4d)]=_0x4dbe3b,_0x4fe873['attributeLocations']=this[_0xb8abd(0x4b,0x1a)],_0x4fe873[_0xb8abd(-0x86,-0x7d)]=this[_0x11839(0x2d2,0x340)],_0x4fe873['fragmentShaderSource']=this['fragmentShaderSource'];const _0x39d415=Cesium$6[_0x11839(0x2f9,0x2bd)][_0xb8abd(0x1d,-0x8)](_0x4fe873),_0x5ce38b=Cesium$6[_0x11839(0x393,0x327)][_0xb8abd(-0x85,-0x8)](this['rawRenderState']);return new Cesium$6[(_0xb8abd(-0x66,-0x3c))]({'owner':this,'vertexArray':_0x440a10,'primitiveType':this['primitiveType'],'uniformMap':this[_0x11839(0x334,0x35a)],'modelMatrix':Cesium$6[_0x11839(0x2fa,0x2d4)][_0xb8abd(-0xaa,-0xae)],'shaderProgram':_0x39d415,'framebuffer':this['framebuffer'],'renderState':_0x5ce38b,'pass':Cesium$6['Pass']['OPAQUE']});}case'Compute':{const _0x86e926={};return _0x86e926[_0xb8abd(-0x53,-0x63)]=this,_0x86e926[_0xb8abd(0x4,0x5d)]=this[_0x11839(0x3ac,0x43c)],_0x86e926[_0x11839(0x334,0x321)]=this['uniformMap'],_0x86e926['outputTexture']=this['outputTexture'],_0x86e926['persists']=!![],new Cesium$6[(_0x11839(0x2cd,0x27b))](_0x86e926);}}}['setGeometry'](_0x1639b7,_0x541fc1){this[_0x1bc232(0x4c1,0x45a)]=_0x541fc1;const _0x2f365b=Cesium$6[_0x1bc232(0x45a,0x472)][_0x1bc232(0x4f9,0x47d)]({'context':_0x1639b7,'geometry':this[_0x1bc232(0x409,0x45a)],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']});function _0x1bc232(_0x520395,_0x40b3be){return _0x3e8737(_0x40b3be-0x3b6,_0x520395);}function _0x341f46(_0x19869a,_0x6f8a52){return _0x51a8ec(_0x19869a,_0x6f8a52- -0x20f);}this['commandToExecute']['vertexArray']=_0x2f365b;}['update'](_0x4fc1a8){if(!this[_0x4388ab(0x31,-0x36)])return;if(_0x4fc1a8[_0x4388ab(0x2b,-0xd)]!==Cesium$6['SceneMode']['SCENE3D'])return;!Cesium$6[_0x4388ab(0x0,0x79)](this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x4fc1a8['context']));Cesium$6['defined'](this['preExecute'])&&this['preExecute']();Cesium$6[_0x19ce14(0x1b9,0x18f)](this['clearCommand'])&&_0x4fc1a8['commandList']['push'](this['clearCommand']);function _0x19ce14(_0x413c40,_0x29cbe2){return _0x51a8ec(_0x413c40,_0x29cbe2-0x161);}function _0x4388ab(_0x34ce21,_0x1b973c){return _0x51a8ec(_0x1b973c,_0x34ce21- -0x2e);}_0x4fc1a8['commandList'][_0x4388ab(0x92,0x34)](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){function _0x9c5380(_0x509d24,_0x64586c){return _0x3e8737(_0x509d24- -0x1fc,_0x64586c);}function _0x2e10b6(_0x2ac2b9,_0x4e2868){return _0x51a8ec(_0x2ac2b9,_0x4e2868-0x208);}if(this['clearCommand']){var _0x2a5d64,_0x4c22d4;(_0x2a5d64=this['clearCommand'])!==null&&_0x2a5d64!==void 0x0&&_0x2a5d64['vertexArray']&&this[_0x2e10b6(0x1a5,0x214)]['vertexArray'][_0x2e10b6(0x2d8,0x2f5)](),(_0x4c22d4=this['clearCommand'])!==null&&_0x4c22d4!==void 0x0&&_0x4c22d4['shaderProgram']&&this['clearCommand']['shaderProgram']['destroy'](),delete this['clearCommand'];}return this['commandToExecute']&&(this['commandToExecute']['vertexArray']&&this['commandToExecute']['vertexArray'][_0x9c5380(-0x7a,-0xaf)](),this[_0x9c5380(-0x12a,-0x1ae)][_0x2e10b6(0x2f7,0x2ab)]&&this['commandToExecute']['shaderProgram']['destroy'](),delete this['commandToExecute']),Cesium$6['destroyObject'](this);}}const Cesium$5=mars3d__namespace['Cesium'],Util=(function(){const _0x1eeb91=function(){const _0x17e0f2=new Cesium$5[(_0x6c8296(0x325,0x2c6))]({'attributes':new Cesium$5[(_0x6c8296(0x363,0x3b0))]({'position':new Cesium$5[(_0x6c8296(0x309,0x27b))]({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype'][_0x55d6f0(-0x205,-0x26a)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});function _0x6c8296(_0x58b7cb,_0x88bb1f){return _0x25e8(_0x58b7cb-0x1ea,_0x88bb1f);}function _0x55d6f0(_0x465c33,_0x3c07c5){return _0x25e8(_0x3c07c5- -0x3cf,_0x465c33);}return _0x17e0f2;},_0x2846a4=function(_0x44082a,_0x2fd047){if(Cesium$5['defined'](_0x2fd047)){const _0x1ebf6f={};_0x1ebf6f['arrayBufferView']=_0x2fd047,_0x44082a[_0x471da4(0x2d1,0x271)]=_0x1ebf6f;}function _0x471da4(_0x23fbec,_0x24053c){return _0x25e8(_0x23fbec-0x102,_0x24053c);}const _0x4364ce=new Cesium$5['Texture'](_0x44082a);return _0x4364ce;},_0x390d57=function(_0x2417de,_0x5237a8,_0x107cdb){const _0xf07499={};_0xf07499['context']=_0x2417de;function _0x396d6c(_0x24dae5,_0x556726){return _0x25e8(_0x556726-0x204,_0x24dae5);}_0xf07499[_0x3f5b3e(0x1bb,0x12b)]=[_0x5237a8],_0xf07499['depthTexture']=_0x107cdb;const _0x368044=new Cesium$5[(_0x3f5b3e(0x15f,0x159))](_0xf07499);function _0x3f5b3e(_0xceedd9,_0x35e6dc){return _0x25e8(_0x35e6dc- -0x56,_0xceedd9);}return _0x368044;},_0x4d0c41=function(_0x2d4c03){function _0x4175e2(_0x13c2bb,_0x1f151a){return _0x25e8(_0x13c2bb- -0x22b,_0x1f151a);}const _0x39b160=!![],_0x20aad8=![],_0x514e8c={};_0x514e8c['viewport']=_0x2d4c03['viewport'],_0x514e8c['depthTest']=_0x2d4c03[_0x15e2c1(-0x1c4,-0x185)],_0x514e8c[_0x15e2c1(-0x191,-0x1d2)]=_0x2d4c03[_0x4175e2(-0x75,-0x15)],_0x514e8c['blending']=_0x2d4c03[_0x4175e2(-0x57,0x5)];function _0x15e2c1(_0xc178d2,_0x4441b5){return _0x25e8(_0xc178d2- -0x347,_0x4441b5);}const _0x2c0d5f=_0x514e8c,_0x2c5772=Cesium$5['Appearance']['getDefaultRenderState'](_0x39b160,_0x20aad8,_0x2c0d5f);return _0x2c5772;},_0x2973c5=function(_0x15fa64){const _0x73029f={},_0x2abb35=Cesium$5['Math']['mod'](_0x15fa64['west'],Cesium$5[_0x2551b8(0x44,0x8a)][_0x2551b8(0x25,0x5e)]),_0x20aae7=Cesium$5[_0x3a34a7(0x1b7,0x1d6)]['mod'](_0x15fa64[_0x2551b8(0x14,-0x10)],Cesium$5['Math']['TWO_PI']);function _0x3a34a7(_0x27a7f4,_0x2a81b3){return _0x25e8(_0x27a7f4-0xac,_0x2a81b3);}const _0x3d9861=_0x15fa64['width'];let _0x29fb5c,_0x28c7aa;_0x3d9861>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0x29fb5c=0x0,_0x28c7aa=Cesium$5['Math']['TWO_PI']):_0x20aae7-_0x2abb35<_0x3d9861?(_0x29fb5c=_0x2abb35,_0x28c7aa=_0x2abb35+_0x3d9861):(_0x29fb5c=_0x2abb35,_0x28c7aa=_0x20aae7);_0x73029f['lon']={'min':Cesium$5['Math']['toDegrees'](_0x29fb5c),'max':Cesium$5[_0x2551b8(0x44,0x4c)]['toDegrees'](_0x28c7aa)};const _0x2e775e=_0x15fa64['south'],_0x46ee9f=_0x15fa64[_0x3a34a7(0x26d,0x2c7)],_0x10cc82=_0x15fa64[_0x3a34a7(0x276,0x217)],_0x35aafd=_0x10cc82>Cesium$5[_0x2551b8(0x44,-0x29)]['PI']/0xc?_0x10cc82/0x2:0x0;function _0x2551b8(_0x4a9320,_0x339397){return _0x25e8(_0x4a9320- -0xc7,_0x339397);}let _0x229bc1=Cesium$5['Math']['clampToLatitudeRange'](_0x2e775e-_0x35aafd),_0x485bd1=Cesium$5['Math'][_0x3a34a7(0x182,0x185)](_0x46ee9f+_0x35aafd);return _0x229bc1<-Cesium$5[_0x3a34a7(0x1b7,0x206)]['PI_OVER_THREE']&&(_0x229bc1=-Cesium$5['Math']['PI_OVER_TWO']),_0x485bd1>Cesium$5['Math']['PI_OVER_THREE']&&(_0x485bd1=Cesium$5[_0x2551b8(0x44,0x94)]['PI_OVER_TWO']),_0x73029f['lat']={'min':Cesium$5[_0x2551b8(0x44,-0x30)][_0x2551b8(0xe2,0x54)](_0x229bc1),'max':Cesium$5[_0x2551b8(0x44,0x1b)]['toDegrees'](_0x485bd1)},_0x73029f;},_0x617ad8={};_0x617ad8['getFullscreenQuad']=_0x1eeb91,_0x617ad8['createTexture']=_0x2846a4,_0x617ad8[_0x467b5d(-0x177,-0x154)]=_0x390d57;function _0x467b5d(_0x5481e1,_0x5d20b5){return _0x3e8737(_0x5d20b5- -0x24e,_0x5481e1);}return _0x617ad8['createRawRenderState']=_0x4d0c41,_0x617ad8['viewRectangleToLonLatRange']=_0x2973c5,_0x617ad8;}());var fullscreenVert='#version\x20300\x20es\x0a\x0ain\x20vec3\x20position;\x0ain\x20vec2\x20st;\x0a\x0aout\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a\x20\x20gl_Position\x20=\x20vec4(position,\x201.0f);\x0a}\x0a',screenDrawFrag=_0x51a8ec(0x9d,0x23),segmentDrawFrag='#version\x20300\x20es\x0a\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20bool\x20colour;\x0a\x0ain\x20float\x20heightNormalization;\x0ain\x20float\x20speedNormalization;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speedNormalization\x20>\x20zero)\x20{\x0a\x20\x20\x20\x20if(colour)\x20{\x0a\x20\x20\x20\x20\x20\x20fragColor\x20=\x20texture(colorTable,\x20vec2(heightNormalization,\x20zero));\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20fragColor\x20=\x20texture(colorTable,\x20vec2(speedNormalization,\x20zero));\x0a\x20\x20\x20\x20}\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',segmentDrawVert='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20lines\x20drawing\x0ain\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0auniform\x20vec2\x20hRange;\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20vec2\x20wSpeedRange;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0aout\x20float\x20heightNormalization;\x0aout\x20float\x20speedNormalization;\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//\x20read\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\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight\x20+\x20lonLatLev.z;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(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\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0f,\x20360.0f)\x20-\x20180.0f;\x0a\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0f;\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20vec3\x20percent\x20=\x20vec3(0.0f);\x0a\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20if(wSpeedRange.y\x20==\x20wSpeedRange.x)\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x200.0f;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x20(speed.z\x20-\x20wSpeedRange.x)\x20/\x20(wSpeedRange.y\x20-\x20wSpeedRange.x);\x0a\x20\x20}\x0a\x20\x20float\x20norm\x20=\x20length(percent);\x0a\x0a\x20\x20return\x20norm;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20vec3\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20vec3\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20vec3\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rgb;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x20\x20\x20\x20//\x20render\x20lines\x20with\x20triangles\x20and\x20miter\x20joint\x0a\x20\x20\x20\x20//\x20read\x20https://blog.scottlogic.com/2019/11/18/drawing-lines-with-webgl.html\x20for\x20detail\x0a\x20\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20projectedCoordinates.next,\x20offsetSign);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.next\x20+\x20offset;\x0a\x20\x20}\x0a\x0a\x20\x20heightNormalization\x20=\x20(currentPosition.z\x20-\x20hRange.x)\x20/\x20(hRange.y\x20-\x20hRange.x);\x0a\x0a\x20\x20speedNormalization\x20=\x20texture(particlesSpeed,\x20particleIndex).a;\x0a}\x0a',trailDrawFrag=_0x3e8737(0x162,0x1a7);const Cesium$4=mars3d__namespace['Cesium'];function _0x3e8737(_0x5a4613,_0x33f73a){return _0x25e8(_0x5a4613- -0x3e,_0x33f73a);}class ParticlesRendering{constructor(_0x13e199,_0x4324b7,_0x1a4c7e,_0x324699,_0x3a610e){function _0x5eafdf(_0x3d8c4c,_0x5e8af2){return _0x3e8737(_0x3d8c4c- -0x2f5,_0x5e8af2);}this['colour']=_0x1a4c7e['colors']==='height',this[_0x5eafdf(-0x25a,-0x27a)](_0x13e199,_0x4324b7,_0x1a4c7e['colors']),this[_0x35827e(0x3b7,0x3e1)](_0x13e199);function _0x35827e(_0x4046a4,_0xae4ad3){return _0x51a8ec(_0xae4ad3,_0x4046a4-0x36d);}this['createRenderingPrimitives'](_0x13e199,_0x4324b7,_0x1a4c7e,_0x324699,_0x3a610e);}['createRenderingTextures'](_0x380730,_0x59e2c3,_0x35be6c){const _0x16f89d={};_0x16f89d[_0x17b408(-0x21b,-0x241)]=_0x380730,_0x16f89d[_0x17c83d(0x20,0x42)]=_0x380730[_0x17c83d(0x99,0x19)],_0x16f89d['height']=_0x380730['drawingBufferHeight'],_0x16f89d[_0x17c83d(0xbf,0x14c)]=Cesium$4['PixelFormat']['RGBA'];function _0x17b408(_0x4fab3c,_0x590c06){return _0x3e8737(_0x4fab3c- -0x3a5,_0x590c06);}_0x16f89d[_0x17b408(-0x287,-0x2af)]=Cesium$4['PixelDatatype'][_0x17c83d(0xec,0x88)];const _0x39b78a=_0x16f89d,_0x2d4f65={};_0x2d4f65[_0x17c83d(0x102,0x194)]=_0x380730;function _0x17c83d(_0x41a4cf,_0xd42ae2){return _0x51a8ec(_0xd42ae2,_0x41a4cf-0xd);}_0x2d4f65['width']=_0x380730[_0x17b408(-0x284,-0x20d)],_0x2d4f65['height']=_0x380730['drawingBufferHeight'],_0x2d4f65['pixelFormat']=Cesium$4[_0x17b408(-0x276,-0x2d7)][_0x17c83d(0xe7,0x157)],_0x2d4f65[_0x17c83d(0x96,0xbc)]=Cesium$4['PixelDatatype']['UNSIGNED_INT'];const _0xf70750=_0x2d4f65,_0x50794c=_0x35be6c['length'],_0x5ebbae=new Float32Array(_0x50794c*0x3);for(let _0x1d6759=0x0;_0x1d6759<_0x50794c;_0x1d6759++){const _0x2deae7=Cesium$4['Color']['fromCssColorString'](_0x35be6c[_0x1d6759]);_0x5ebbae[0x3*_0x1d6759]=_0x2deae7[_0x17c83d(0x37,0x1c)],_0x5ebbae[0x3*_0x1d6759+0x1]=_0x2deae7['green'],_0x5ebbae[0x3*_0x1d6759+0x2]=_0x2deae7[_0x17b408(-0x256,-0x207)];}const _0x52b059={'context':_0x380730,'width':_0x50794c,'height':0x1,'pixelFormat':Cesium$4['PixelFormat'][_0x17c83d(0x64,0xd4)],'pixelDatatype':Cesium$4[_0x17c83d(0x1e,0x66)]['FLOAT'],'sampler':new Cesium$4[(_0x17b408(-0x2dd,-0x302))]({'minificationFilter':Cesium$4['TextureMinificationFilter'][_0x17b408(-0x286,-0x260)],'magnificationFilter':Cesium$4[_0x17c83d(0x53,0x7e)]['LINEAR']})};this[_0x17c83d(0xb5,0x86)]={'segmentsColor':Util[_0x17c83d(0x107,0x14d)](_0x39b78a),'segmentsDepth':Util['createTexture'](_0xf70750),'currentTrailsColor':Util['createTexture'](_0x39b78a),'currentTrailsDepth':Util[_0x17c83d(0x107,0x12d)](_0xf70750),'nextTrailsColor':Util[_0x17c83d(0x107,0x7f)](_0x39b78a),'nextTrailsDepth':Util['createTexture'](_0xf70750),'colorTable':Util[_0x17b408(-0x216,-0x22f)](_0x52b059,_0x5ebbae)};}['createRenderingFramebuffers'](_0x54fe42){function _0x205336(_0x582317,_0x2f1bce){return _0x3e8737(_0x582317- -0x2bc,_0x2f1bce);}function _0x7af47d(_0x39b114,_0x5a4544){return _0x3e8737(_0x39b114-0x1dc,_0x5a4544);}this['framebuffers']={'segments':Util['createFramebuffer'](_0x54fe42,this[_0x7af47d(0x319,0x335)]['segmentsColor'],this[_0x7af47d(0x319,0x308)]['segmentsDepth']),'currentTrails':Util['createFramebuffer'](_0x54fe42,this['textures']['currentTrailsColor'],this['textures'][_0x205336(-0x208,-0x287)]),'nextTrails':Util[_0x7af47d(0x2d6,0x297)](_0x54fe42,this[_0x7af47d(0x319,0x2f1)]['nextTrailsColor'],this['textures'][_0x205336(-0x19c,-0x16e)])};}[_0x51a8ec(-0x4,0x74)](_0x4b20f1){const _0x4046af=0x4;let _0x511575=[];for(let _0x3260d8=0x0;_0x3260d8<_0x4b20f1[_0x1892c0(-0xa1,-0x85)];_0x3260d8++){for(let _0x109599=0x0;_0x109599<_0x4b20f1['particlesTextureSize'];_0x109599++){for(let _0x5010f7=0x0;_0x5010f7<_0x4046af;_0x5010f7++){_0x511575[_0x1892c0(-0xdf,-0x120)](_0x3260d8/_0x4b20f1['particlesTextureSize']),_0x511575['push'](_0x109599/_0x4b20f1[_0x1892c0(-0xa1,-0x94)]);}}}_0x511575=new Float32Array(_0x511575);function _0x1892c0(_0x21c714,_0x1ba156){return _0x51a8ec(_0x1ba156,_0x21c714- -0x19f);}let _0x312a83=[];for(let _0xf267f=0x0;_0xf267f<_0x4b20f1[_0x1892c0(-0xbd,-0xe1)];_0xf267f++){_0x312a83[_0x1892c0(-0xdf,-0x60)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x312a83=new Float32Array(_0x312a83);function _0x3f7779(_0x4017c3,_0x343a9b){return _0x3e8737(_0x4017c3- -0x378,_0x343a9b);}let _0x44e7d1=[];for(let _0x14323d=0x0,_0x24bd82=0x0;_0x14323d<_0x4b20f1['maxParticles'];_0x14323d++){_0x44e7d1['push'](_0x24bd82+0x0,_0x24bd82+0x1,_0x24bd82+0x2,_0x24bd82+0x2,_0x24bd82+0x1,_0x24bd82+0x3),_0x24bd82+=_0x4046af;}_0x44e7d1=new Uint32Array(_0x44e7d1);const _0x3e08e2=new Cesium$4['Geometry']({'attributes':new Cesium$4[(_0x1892c0(-0xf9,-0xe3))]({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4[_0x3f7779(-0x2c2,-0x2dd)]['FLOAT'],'componentsPerAttribute':0x2,'values':_0x511575}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4[_0x1892c0(-0x17e,-0xf8)][_0x1892c0(-0x10d,-0x196)],'componentsPerAttribute':0x3,'values':_0x312a83})}),'indices':_0x44e7d1});return _0x3e08e2;}[_0x3e8737(0x18d,0x1c0)](_0x14b3e9,_0x148467,_0x53566a,_0x33a5ce,_0x1c598f){const _0x2f0350=this;function _0x2b1f1a(_0x1a9853,_0x1fb792){return _0x51a8ec(_0x1fb792,_0x1a9853-0x2e);}const _0x281727={};_0x281727['st']=0x0,_0x281727['normal']=0x1;const _0x2a79e4={};_0x2a79e4[_0x1b6f27(0x33c,0x32c)]=[segmentDrawVert];const _0x12bd88={};_0x12bd88['sources']=[segmentDrawFrag];const _0x9d7da3={};_0x9d7da3['enabled']=!![];const _0x32ae99={};function _0x1b6f27(_0x47ed8f,_0x2b08b5){return _0x3e8737(_0x47ed8f-0x2c3,_0x2b08b5);}_0x32ae99['viewport']=undefined,_0x32ae99['depthTest']=_0x9d7da3,_0x32ae99['depthMask']=!![];const _0x2f5dc3={};_0x2f5dc3['position']=0x0,_0x2f5dc3['st']=0x1;const _0x439082={};_0x439082['defines']=[_0x1b6f27(0x436,0x428)],_0x439082['sources']=[fullscreenVert];const _0x4210c8={};_0x4210c8[_0x1b6f27(0x3d7,0x3fc)]=['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],_0x4210c8[_0x1b6f27(0x33c,0x38a)]=[trailDrawFrag];const _0x38001c={};_0x38001c['position']=0x0,_0x38001c['st']=0x1;const _0x42e3c2={};_0x42e3c2['defines']=['DISABLE_GL_POSITION_LOG_DEPTH'],_0x42e3c2['sources']=[fullscreenVert];const _0x1547ae={};_0x1547ae['defines']=[_0x1b6f27(0x3d4,0x34e)],_0x1547ae[_0x1b6f27(0x33c,0x382)]=[screenDrawFrag];const _0x201cc9={};_0x201cc9['enabled']=![];const _0x3bb397={};_0x3bb397['enabled']=!![],this[_0x2b1f1a(0x12d,0x182)]={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x281727,'geometry':this['createSegmentsGeometry'](_0x53566a),'primitiveType':Cesium$4[_0x2b1f1a(0xef,0xee)]['TRIANGLES'],'uniformMap':{'previousParticlesPosition':function(){function _0x324f49(_0x258240,_0x4d55c4){return _0x1b6f27(_0x4d55c4- -0x3bc,_0x258240);}return _0x1c598f[_0x324f49(0x24,-0x50)]['previousParticlesPosition'];},'currentParticlesPosition':function(){function _0x2d1504(_0x17ae06,_0x5a4b38){return _0x1b6f27(_0x17ae06-0x8,_0x5a4b38);}return _0x1c598f[_0x2d1504(0x374,0x368)]['currentParticlesPosition'];},'postProcessingPosition':function(){return _0x1c598f['particlesTextures']['postProcessingPosition'];},'particlesSpeed':function(){return _0x1c598f['particlesTextures']['particlesSpeed'];},'colorTable':function(){function _0x5b28c3(_0x1bf82c,_0x333a34){return _0x2b1f1a(_0x333a34- -0xd7,_0x1bf82c);}function _0x411b58(_0x2e8de5,_0x25e90b){return _0x1b6f27(_0x2e8de5- -0x29b,_0x25e90b);}return _0x2f0350[_0x411b58(0x165,0x166)][_0x411b58(0xfc,0xfa)];},'aspect':function(){return _0x14b3e9['drawingBufferWidth']/_0x14b3e9['drawingBufferHeight'];},'H':function(){return _0x148467['H']['array'];},'hRange':function(){function _0x11a059(_0x594ee9,_0x215299){return _0x2b1f1a(_0x215299- -0x123,_0x594ee9);}function _0x2ab834(_0x4fef35,_0x32124b){return _0x2b1f1a(_0x4fef35-0x32c,_0x32124b);}return new Cesium$4[(_0x2ab834(0x33d,0x2dd))](_0x148467['H'][_0x11a059(-0x7e,-0xaa)],_0x148467['H'][_0x11a059(-0x86,-0x66)]);},'uSpeedRange':function(){function _0x4c4874(_0x57c377,_0x3c5b6a){return _0x2b1f1a(_0x3c5b6a-0x293,_0x57c377);}return new Cesium$4['Cartesian2'](_0x148467['U']['min'],_0x148467['U'][_0x4c4874(0x310,0x350)]);},'vSpeedRange':function(){function _0x2a6af7(_0x1572e0,_0x1eb8bc){return _0x1b6f27(_0x1eb8bc-0x10a,_0x1572e0);}function _0x277c84(_0x4214cf,_0x24e309){return _0x1b6f27(_0x24e309- -0x1e4,_0x4214cf);}return new Cesium$4[(_0x277c84(0x167,0x157))](_0x148467['V'][_0x2a6af7(0x4f1,0x4ad)],_0x148467['V'][_0x277c84(0x1f3,0x203)]);},'wSpeedRange':function(){function _0x521a7c(_0x3f4c15,_0x538b07){return _0x2b1f1a(_0x538b07- -0xa5,_0x3f4c15);}function _0x77d891(_0x8de4ce,_0x2195b2){return _0x1b6f27(_0x8de4ce- -0x63f,_0x2195b2);}return new Cesium$4[(_0x521a7c(-0x59,-0x94))](_0x148467['W'][_0x77d891(-0x29c,-0x22a)],_0x148467['W']['max']);},'pixelSize':function(){return _0x33a5ce['pixelSize'];},'lineWidth':function(){return _0x53566a['lineWidth'];},'particleHeight':function(){function _0x3f0451(_0x1e66b9,_0x539758){return _0x2b1f1a(_0x539758-0x197,_0x1e66b9);}return _0x53566a[_0x3f0451(0x1ee,0x1c4)];},'colour':function(){return _0x2f0350['colour'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x2a79e4),'fragmentShaderSource':new Cesium$4[(_0x1b6f27(0x458,0x420))](_0x12bd88),'rawRenderState':Util['createRawRenderState'](_0x32ae99),'framebuffer':this[_0x2b1f1a(0xd7,0xef)][_0x1b6f27(0x413,0x41e)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x2f5dc3,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4[_0x2b1f1a(0xef,0x12f)]['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function(){return _0x2f0350['textures']['segmentsColor'];},'segmentsDepthTexture':function(){function _0x2ba400(_0x4c8e3f,_0x2ba2d0){return _0x2b1f1a(_0x2ba2d0- -0xba,_0x4c8e3f);}return _0x2f0350['textures'][_0x2ba400(0x91,0x8)];},'currentTrailsColor':function(){function _0x10c60d(_0xefcce0,_0x2a721c){return _0x1b6f27(_0x2a721c- -0x109,_0xefcce0);}return _0x2f0350['framebuffers']['currentTrails'][_0x10c60d(0x395,0x308)](0x0);},'trailsDepthTexture':function(){function _0x22a73b(_0x477c81,_0x8a625b){return _0x2b1f1a(_0x477c81- -0x46,_0x8a625b);}function _0x152495(_0x11b951,_0x4ac1a8){return _0x1b6f27(_0x11b951- -0x90,_0x4ac1a8);}return _0x2f0350[_0x22a73b(0x91,0xf1)][_0x22a73b(0xae,0x122)]['depthTexture'];},'fadeOpacity':function(){return _0x53566a['fadeOpacity'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x439082),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0x4210c8),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4[_0x1b6f27(0x3f3,0x454)]['ALWAYS']},'depthMask':!![]}),'framebuffer':this[_0x1b6f27(0x401,0x40a)]['nextTrails'],'autoClear':!![],'preExecute':function(){function _0x14e1ca(_0x39d0cf,_0x183ca4){return _0x1b6f27(_0x39d0cf- -0x193,_0x183ca4);}if(_0x53566a['dynamic']){const _0x5121a8=_0x2f0350['framebuffers']['currentTrails'];_0x2f0350['framebuffers']['currentTrails']=_0x2f0350['framebuffers'][_0x14e1ca(0x1ce,0x1d2)],_0x2f0350['framebuffers']['nextTrails']=_0x5121a8;}function _0x44f8cb(_0x4aaa7d,_0xa3e0a1){return _0x1b6f27(_0xa3e0a1-0x134,_0x4aaa7d);}_0x2f0350['primitives']['trails'][_0x14e1ca(0x202,0x271)]['framebuffer']=_0x2f0350['framebuffers']['nextTrails'],_0x2f0350['primitives']['trails']['clearCommand']['framebuffer']=_0x2f0350['framebuffers']['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x38001c,'geometry':Util[_0x1b6f27(0x3e6,0x3f8)](),'primitiveType':Cesium$4[_0x2b1f1a(0xef,0x101)]['TRIANGLES'],'uniformMap':{'trailsColorTexture':function(){function _0xb2a3a(_0x11c34f,_0x249ffd){return _0x2b1f1a(_0x249ffd-0x3a3,_0x11c34f);}return _0x2f0350[_0xb2a3a(0x486,0x47a)]['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0x5f1fba(_0x1eba44,_0x3d49eb){return _0x2b1f1a(_0x3d49eb-0x38f,_0x1eba44);}function _0x5f54e8(_0x19dc01,_0x1040c1){return _0x2b1f1a(_0x1040c1-0x150,_0x19dc01);}return _0x2f0350['framebuffers'][_0x5f54e8(0x196,0x187)][_0x5f1fba(0x3e5,0x3b4)];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x42e3c2),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0x1547ae),'rawRenderState':Util[_0x2b1f1a(0x122,0xa2)]({'viewport':undefined,'depthTest':_0x201cc9,'depthMask':!![],'blending':_0x3bb397}),'framebuffer':undefined})};}}var CalculateSpeedShader=_0x51a8ec(0x65,0xa1),PostProcessingPositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20norm)\x0a\x0auniform\x20sampler2D\x20H;\x20//\x20particles\x20height\x20textures\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\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0auniform\x20vec2\x20viewerLonRange;\x0auniform\x20vec2\x20viewerLatRange;\x0a\x0aconst\x20float\x20randomCoefficient\x20=\x200.1f;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0aconst\x20float\x20dropRate\x20=\x200.1f;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0aconst\x20float\x20dropRateBump\x20=\x200.1f;\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\x20lonLatLev.x\x20=\x20clamp(lonLatLev.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20minimum.y,\x20maximum.y);\x0a\x20\x20lonLatLev.z\x20=\x20clamp(lonLatLev.z,\x20minimum.z,\x20maximum.z);\x0a\x0a\x20\x20vec3\x20index3D\x20=\x20vec3(0.0f);\x0a\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20index3D.z\x20=\x20ceil((lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0avec4\x20getTextureValue(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20vec4\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D);\x0a\x20\x20return\x20result;\x0a}\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0abool\x20particleNoSpeed(vec3\x20particle)\x20{\x0a\x20\x20vec4\x20speed\x20=\x20getTextureValue(particlesSpeed,\x20particle);\x0a\x20\x20return\x20speed.r\x20==\x200.0f\x20&&\x20speed.g\x20==\x200.0f;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0f);\x0a\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20float\x20height\x20=\x20getTextureValue(H,\x20vec3(randomLon,\x20randomLat,\x20lev)).r;\x0a\x0a\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20height);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20viewerLatRange.x\x20||\x20particle.y\x20>\x20viewerLatRange.y\x20||\x20particle.x\x20<\x20viewerLonRange.x\x20||\x20particle.x\x20>\x20viewerLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec3\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f);\x0a\x20\x20}\x0a}\x0a',UpdatePositionShader=_0x51a8ec(0xd6,0x9d);const Cesium$3=mars3d__namespace[_0x51a8ec(0xc5,0xb5)];class ParticlesComputing{constructor(_0x51b74d,_0x580f22,_0x356250,_0x4b4c08){this['data']=_0x580f22,this['createWindTextures'](_0x51b74d,_0x580f22),this['createParticlesTextures'](_0x51b74d,_0x356250,_0x4b4c08),this['createComputingPrimitives'](_0x580f22,_0x356250,_0x4b4c08);}[_0x51a8ec(-0x46,0x37)](_0x8b86,_0x220ae1){function _0x4dcd96(_0x1b6c1a,_0x42c5d3){return _0x3e8737(_0x42c5d3-0x17d,_0x1b6c1a);}var _0x4b3ee8;function _0x1e07fc(_0x5660b4,_0x592609){return _0x51a8ec(_0x5660b4,_0x592609-0x360);}const _0x62813f={'context':_0x8b86,'width':_0x220ae1['dimensions']['lon'],'height':_0x220ae1['dimensions']['lat']*(_0x220ae1[_0x1e07fc(0x397,0x429)]['lev']||0x1),'pixelFormat':Cesium$3[_0x1e07fc(0x455,0x3fa)]['RED'],'pixelDatatype':Cesium$3[_0x4dcd96(0x19f,0x223)][_0x1e07fc(0x428,0x3f2)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter'][_0x4dcd96(0x2d8,0x2ce)]})};this['windTextures']={'U':Util[_0x1e07fc(0x4ca,0x45a)](_0x62813f,_0x220ae1['U'][_0x4dcd96(0x1ce,0x220)]),'V':Util[_0x4dcd96(0x33c,0x30c)](_0x62813f,_0x220ae1['V']['array']),'W':Util['createTexture'](_0x62813f,((_0x4b3ee8=_0x220ae1['W'])===null||_0x4b3ee8===void 0x0?void 0x0:_0x4b3ee8[_0x1e07fc(0x310,0x36e)])??_0x220ae1['U'][_0x4dcd96(0x1b8,0x220)]),'H':Util['createTexture'](_0x62813f,_0x220ae1['H']['array'])};}['createParticlesTextures'](_0x139ae9,_0x5e1385,_0x2c32ec){const _0xf23f10={'context':_0x139ae9,'width':_0x5e1385['particlesTextureSize'],'height':_0x5e1385[_0xb50ca6(0x241,0x267)],'pixelFormat':Cesium$3['PixelFormat'][_0xb50ca6(0x1f4,0x1be)],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3[(_0x48dde3(0x17c,0x1e1))]({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0xb50ca6(0x1ac,0x225)],'magnificationFilter':Cesium$3[_0xb50ca6(0x22a,0x1af)][_0xb50ca6(0x29a,0x225)]})};function _0x48dde3(_0x40fd64,_0x22a85f){return _0x51a8ec(_0x40fd64,_0x22a85f-0x1ae);}const _0x237418=this[_0xb50ca6(0x159,0x150)](_0x5e1385[_0xb50ca6(0x29b,0x24b)],_0x2c32ec),_0x48c328=new Float32Array(0x4*_0x5e1385['maxParticles'])['fill'](0x0);function _0xb50ca6(_0x5a625e,_0x4696b2){return _0x51a8ec(_0x5a625e,_0x4696b2-0x169);}this[_0x48dde3(0x241,0x1c2)]={'previousParticlesPosition':Util['createTexture'](_0xf23f10,_0x237418),'currentParticlesPosition':Util['createTexture'](_0xf23f10,_0x237418),'nextParticlesPosition':Util['createTexture'](_0xf23f10,_0x237418),'postProcessingPosition':Util[_0x48dde3(0x225,0x2a8)](_0xf23f10,_0x237418),'particlesSpeed':Util['createTexture'](_0xf23f10,_0x48c328)};}['randomizeParticles'](_0x234c8f,_0x48c3d6){const _0xad20f4=new Float32Array(0x4*_0x234c8f);for(let _0x2d78d6=0x0;_0x2d78d6<_0x234c8f;_0x2d78d6++){_0xad20f4[0x4*_0x2d78d6]=Cesium$3['Math']['randomBetween'](_0x48c3d6['lonRange']['x'],_0x48c3d6['lonRange']['y']),_0xad20f4[0x4*_0x2d78d6+0x1]=Cesium$3['Math']['randomBetween'](_0x48c3d6[_0xb23c39(0x3ce,0x3d8)]['x'],_0x48c3d6[_0xb23c39(0x3ae,0x3d8)]['y']),_0xad20f4[0x4*_0x2d78d6+0x2]=Cesium$3['Math'][_0xb23c39(0x353,0x3dd)](this['data']['lev']['min'],this['data'][_0x4b991a(0x456,0x408)][_0x4b991a(0x4e8,0x45b)]),_0xad20f4[0x4*_0x2d78d6+0x3]=0x0;}function _0xb23c39(_0x3b46ca,_0x4639f7){return _0x51a8ec(_0x3b46ca,_0x4639f7-0x30e);}function _0x4b991a(_0xee8668,_0x30c9cb){return _0x3e8737(_0x30c9cb-0x337,_0xee8668);}return _0xad20f4;}['getValidRange'](_0x53a3a8){const _0x42d08e=[_0x53a3a8[_0x444f25(0x3b,0x53)]['lon'],_0x53a3a8['dimensions'][_0x444f25(-0x18,0x62)],_0x53a3a8[_0x46f845(0x240,0x262)][_0x46f845(0x1cc,0x1d5)]];function _0x444f25(_0xf83d20,_0x33cae9){return _0x51a8ec(_0xf83d20,_0x33cae9- -0x76);}const _0x2c144d=[_0x53a3a8['lon'][_0x46f845(0x241,0x1e4)],_0x53a3a8[_0x444f25(0xa8,0x62)]['min'],_0x53a3a8[_0x444f25(0x55,-0x3a)]['min']],_0x41f883=[_0x53a3a8['lon'][_0x444f25(-0x53,0x19)],_0x53a3a8['lat']['max'],_0x53a3a8['lev']['max']],_0x2794ca=[(_0x41f883[0x0]-_0x2c144d[0x0])/(_0x42d08e[0x0]-0x1),(_0x41f883[0x1]-_0x2c144d[0x1])/(_0x42d08e[0x1]-0x1),_0x42d08e[0x2]>0x1?(_0x41f883[0x2]-_0x2c144d[0x2])/(_0x42d08e[0x2]-0x1):0x1],_0x5e56de=Math['floor'](Math['random']()*_0x53a3a8['U']['array'][_0x444f25(0xc,-0x72)]),_0x2182d4=_0x5e56de%(_0x42d08e[0x0]*_0x42d08e[0x1]),_0x3c5002=Math['floor'](_0x2182d4/_0x42d08e[0x0]),_0x2ea6c8=_0x2182d4%_0x42d08e[0x0],_0x4a003d=Cesium$3['Math']['randomBetween'](_0x2c144d[0x0]+_0x2ea6c8*_0x2794ca[0x0],_0x2c144d[0x0]+(_0x2ea6c8+0x1)*_0x2794ca[0x0]),_0x173b0d=Cesium$3['Math'][_0x46f845(0x29f,0x268)](_0x2c144d[0x1]+(_0x3c5002-0x1)*_0x2794ca[0x1],_0x2c144d[0x1]+_0x3c5002*_0x2794ca[0x1]);function _0x46f845(_0x4bd18a,_0x44551a){return _0x51a8ec(_0x4bd18a,_0x44551a-0x199);}const _0x53e140=_0x53a3a8['H'][_0x46f845(0x1f8,0x1a7)][_0x5e56de]||0x0;return[_0x4a003d,_0x173b0d,_0x53e140];}['destroyParticlesTextures'](){function _0x376942(_0x5e7ef4,_0x351e68){return _0x3e8737(_0x351e68- -0x311,_0x5e7ef4);}function _0x427a63(_0x2e2d57,_0x8cdcc9){return _0x51a8ec(_0x8cdcc9,_0x2e2d57-0x214);}Object[_0x427a63(0x28b,0x272)](this['particlesTextures'])[_0x427a63(0x245,0x25b)](_0xdd9063=>{function _0x11fabe(_0x413cf5,_0x4e4402){return _0x376942(_0x413cf5,_0x4e4402-0x6db);}this[_0x11fabe(0x4a6,0x473)][_0xdd9063]['destroy']();});}['createComputingPrimitives'](_0x3d9842,_0x4f4fe7,_0x38b6d3){const _0xb85423=new Cesium$3[(_0x361bba(0xa9,0x69))](_0x3d9842['dimensions']['lon'],_0x3d9842['dimensions']['lat'],_0x3d9842['dimensions'][_0x1d339a(0x260,0x281)]),_0x3b00a5=new Cesium$3['Cartesian3'](_0x3d9842['lon']['min'],_0x3d9842[_0x1d339a(0x2ba,0x31d)][_0x361bba(0x105,0x191)],_0x3d9842['lev'][_0x361bba(0x105,0x91)]),_0x3141f5=new Cesium$3[(_0x1d339a(0x27b,0x234))](_0x3d9842[_0x1d339a(0x2d2,0x2ac)][_0x361bba(0x149,0x1b4)],_0x3d9842['lat']['max'],_0x3d9842[_0x361bba(0xf6,0x137)]['max']),_0x2af72f=new Cesium$3[(_0x1d339a(0x29c,0x234))]((_0x3141f5['x']-_0x3b00a5['x'])/(_0xb85423['x']-0x1),(_0x3141f5['y']-_0x3b00a5['y'])/(_0xb85423['y']-0x1),_0xb85423['z']>0x1?(_0x3141f5['z']-_0x3b00a5['z'])/(_0xb85423['z']-0x1):0x1),_0xde71c3=new Cesium$3[(_0x1d339a(0x280,0x228))](_0x3d9842['lon']['min'],_0x3d9842[_0x361bba(0x121,0xdc)][_0x1d339a(0x2e5,0x2d4)]),_0x1cf5f7=new Cesium$3[(_0x361bba(0x9d,0x57))](_0x3d9842[_0x1d339a(0x371,0x31d)][_0x361bba(0x105,0xb4)],_0x3d9842['lat'][_0x361bba(0x149,0x13a)]),_0x39755c=new Cesium$3['Cartesian2'](_0x3d9842['U'][_0x1d339a(0x2bd,0x290)],_0x3d9842['U'][_0x361bba(0x149,0x184)]),_0x1d30a1=new Cesium$3['Cartesian2'](_0x3d9842['V'][_0x1d339a(0x24c,0x290)],_0x3d9842['V']['max']),_0x2c696f=new Cesium$3['Cartesian2'](_0x3d9842['W']['min'],_0x3d9842['W']['max']);function _0x1d339a(_0x31b0e8,_0x1d0765){return _0x51a8ec(_0x31b0e8,_0x1d0765-0x245);}const _0x1b1830=this,_0x573eac={};_0x573eac['U']=function(){function _0x5efcf9(_0x446d4f,_0x4dde5a){return _0x361bba(_0x4dde5a- -0x2e6,_0x446d4f);}return _0x1b1830[_0x5efcf9(-0x172,-0x133)]['U'];},_0x573eac['V']=function(){return _0x1b1830['windTextures']['V'];},_0x573eac['W']=function(){function _0x340924(_0x165dcd,_0x2b575c){return _0x1d339a(_0x2b575c,_0x165dcd- -0x164);}return _0x1b1830[_0x340924(0x1da,0x215)]['W'];},_0x573eac[_0x1d339a(0x2fb,0x31a)]=function(){return _0x1b1830['particlesTextures']['currentParticlesPosition'];},_0x573eac[_0x361bba(0x152,0x19c)]=function(){return _0xb85423;},_0x573eac['minimum']=function(){return _0x3b00a5;},_0x573eac['maximum']=function(){return _0x3141f5;},_0x573eac[_0x361bba(0x12f,0xe9)]=function(){return _0x2af72f;};function _0x361bba(_0x193940,_0xae251b){return _0x3e8737(_0x193940-0x25,_0xae251b);}_0x573eac['uSpeedRange']=function(){return _0x39755c;},_0x573eac['vSpeedRange']=function(){return _0x1d30a1;},_0x573eac['wSpeedRange']=function(){return _0x2c696f;},_0x573eac['speedScaleFactor']=function(){function _0x310366(_0x105f82,_0x117685){return _0x361bba(_0x117685-0x107,_0x105f82);}return _0x38b6d3['pixelSize']*_0x4f4fe7[_0x310366(0x137,0x1c8)];};const _0x2becdf={};_0x2becdf['sources']=[CalculateSpeedShader];const _0x5bf8c2={};_0x5bf8c2[_0x361bba(0x9e,0x98)]=[UpdatePositionShader];const _0xbe5946={};_0xbe5946['sources']=[PostProcessingPositionShader],this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x361bba(0x133,0xc9),'uniformMap':_0x573eac,'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x2becdf),'outputTexture':this['particlesTextures']['particlesSpeed'],'preExecute':function(){function _0x1d5143(_0x17a89f,_0x44383b){return _0x1d339a(_0x44383b,_0x17a89f- -0x1f2);}function _0x5e79ac(_0x2d202d,_0xc67ecf){return _0x361bba(_0xc67ecf-0x15f,_0x2d202d);}if(_0x4f4fe7!==undefined&&_0x4f4fe7[_0x5e79ac(0x265,0x2b0)]){const _0x3a97ca=_0x1b1830[_0x5e79ac(0x275,0x22d)][_0x5e79ac(0x295,0x277)];_0x1b1830['particlesTextures']['previousParticlesPosition']=_0x1b1830['particlesTextures']['currentParticlesPosition'],_0x1b1830[_0x5e79ac(0x1b9,0x22d)]['currentParticlesPosition']=_0x1b1830['particlesTextures'][_0x5e79ac(0x24e,0x259)],_0x1b1830['particlesTextures']['postProcessingPosition']=_0x3a97ca;}_0x1b1830['primitives'][_0x5e79ac(0x2a3,0x27f)]['commandToExecute']['outputTexture']=_0x1b1830['particlesTextures']['particlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':_0x1d339a(0x2f8,0x2be),'uniformMap':{'currentParticlesPosition':function(){return _0x1b1830['particlesTextures']['currentParticlesPosition'];},'particlesSpeed':function(){function _0x25d6df(_0x345fe0,_0x363921){return _0x1d339a(_0x363921,_0x345fe0- -0x2ec);}return _0x1b1830[_0x25d6df(-0x93,-0x1d)]['particlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x5bf8c2),'outputTexture':this[_0x361bba(0xce,0xd8)]['nextParticlesPosition'],'preExecute':function(){function _0x36fcfb(_0x260064,_0x2da267){return _0x361bba(_0x260064- -0x1b0,_0x2da267);}function _0x254310(_0x4e6568,_0x2e1352){return _0x1d339a(_0x4e6568,_0x2e1352-0x18f);}_0x1b1830[_0x254310(0x4da,0x4d3)]['updatePosition'][_0x254310(0x3a5,0x411)]['outputTexture']=_0x1b1830[_0x36fcfb(-0xe2,-0x160)][_0x254310(0x410,0x412)];}}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x361bba(0x133,0x168),'uniformMap':{'nextParticlesPosition':function(){return _0x1b1830['particlesTextures']['nextParticlesPosition'];},'particlesSpeed':function(){function _0x3cb946(_0x4f2daa,_0x88a9eb){return _0x361bba(_0x88a9eb-0x342,_0x4f2daa);}return _0x1b1830[_0x3cb946(0x48a,0x410)]['particlesSpeed'];},'viewerLonRange':function(){return _0x38b6d3['lonRange'];},'viewerLatRange':function(){return _0x38b6d3['latRange'];},'lonRange':function(){return _0xde71c3;},'latRange':function(){return _0x1cf5f7;},'dimension':function(){return _0xb85423;},'minimum':function(){return _0x3b00a5;},'maximum':function(){return _0x3141f5;},'interval':function(){return _0x2af72f;},'H':function(){return _0x1b1830['windTextures']['H'];},'randomCoefficient':function(){function _0x58817a(_0x31b46d,_0x3d3efc){return _0x361bba(_0x31b46d- -0x339,_0x3d3efc);}const _0x36bca1=Math[_0x58817a(-0x18f,-0x1aa)]();return _0x36bca1;},'dropRate':function(){return _0x4f4fe7['dropRate'];},'dropRateBump':function(){return _0x4f4fe7['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0xbe5946),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':function(){function _0x40cfb5(_0xb04d7b,_0x23eec9){return _0x361bba(_0x23eec9- -0x2ed,_0xb04d7b);}function _0x1ee466(_0x16585c,_0x3ef779){return _0x1d339a(_0x3ef779,_0x16585c- -0x5a);}_0x1b1830['primitives']['postProcessingPosition'][_0x40cfb5(-0x21b,-0x1f6)][_0x40cfb5(-0x289,-0x242)]=_0x1b1830[_0x40cfb5(-0x25e,-0x21f)]['postProcessingPosition'];}})};}}const Cesium$2=mars3d__namespace[_0x51a8ec(0x3a,0xb5)];class ParticleSystem{constructor(_0x10b238,_0x44cc8c,_0x59ee44,_0x310403){function _0x335caa(_0x342f02,_0xca5d20){return _0x51a8ec(_0xca5d20,_0x342f02- -0x2f0);}this['context']=_0x10b238,_0x44cc8c={..._0x44cc8c};_0x44cc8c['udata']&&_0x44cc8c[_0x42e3a6(0x2ed,0x347)]&&(_0x44cc8c[_0x335caa(-0x227,-0x19f)]={},_0x44cc8c[_0x335caa(-0x227,-0x279)]['lon']=_0x44cc8c['cols'],_0x44cc8c[_0x335caa(-0x227,-0x1d4)]['lat']=_0x44cc8c[_0x335caa(-0x213,-0x289)],_0x44cc8c['dimensions'][_0x335caa(-0x2b4,-0x2a5)]=_0x44cc8c[_0x42e3a6(0x2f5,0x2f5)]||0x1,_0x44cc8c['lon']={},_0x44cc8c[_0x42e3a6(0x320,0x33a)]['min']=_0x44cc8c['xmin'],_0x44cc8c['lon']['max']=_0x44cc8c['xmax'],_0x44cc8c[_0x335caa(-0x218,-0x29c)]={},_0x44cc8c['lat'][_0x335caa(-0x2a5,-0x316)]=_0x44cc8c['ymin'],_0x44cc8c['lat']['max']=_0x44cc8c['ymax'],_0x44cc8c[_0x335caa(-0x2b4,-0x246)]={},_0x44cc8c['lev']['min']=_0x44cc8c['levmin']??0x1,_0x44cc8c[_0x335caa(-0x2b4,-0x288)]['max']=_0x44cc8c['levmax']??0x1,_0x44cc8c['U']={},_0x44cc8c['U']['array']=new Float32Array(_0x44cc8c['udata']),_0x44cc8c['U'][_0x42e3a6(0x304,0x272)]=_0x44cc8c['umin']??Math[_0x42e3a6(0x304,0x2cd)](..._0x44cc8c['udata']),_0x44cc8c['U'][_0x335caa(-0x261,-0x27b)]=_0x44cc8c[_0x42e3a6(0x36c,0x3d5)]??Math[_0x335caa(-0x261,-0x2ee)](..._0x44cc8c[_0x42e3a6(0x2a4,0x2a9)]),_0x44cc8c['V']={},_0x44cc8c['V'][_0x335caa(-0x2e2,-0x35f)]=new Float32Array(_0x44cc8c['vdata']),_0x44cc8c['V'][_0x42e3a6(0x304,0x360)]=_0x44cc8c['vmin']??Math[_0x335caa(-0x2a5,-0x22f)](..._0x44cc8c[_0x42e3a6(0x2ed,0x311)]),_0x44cc8c['V']['max']=_0x44cc8c['vmax']??Math[_0x42e3a6(0x348,0x395)](..._0x44cc8c[_0x335caa(-0x2bc,-0x299)]));!_0x44cc8c['W']&&(_0x44cc8c['W']={'array':new Float32Array(_0x44cc8c['U'][_0x42e3a6(0x2c7,0x2a8)]['length']),'min':0x0,'max':0x0});if(!_0x44cc8c['H']){var _0x135edf;_0x44cc8c['H']={'array':new Float32Array(_0x44cc8c['U'][_0x42e3a6(0x2c7,0x281)]['length']),'min':0x0,'max':0x0};if((_0x135edf=_0x44cc8c[_0x42e3a6(0x2f5,0x352)])!==null&&_0x135edf!==void 0x0&&_0x135edf['array']){const {lon:_0xd239c4,lat:_0x18a4ef,lev:_0x538af7}=_0x44cc8c['dimensions'];for(let _0x378ebc=0x0;_0x378ebc<_0x538af7;_0x378ebc++){for(let _0x49e127=0x0;_0x49e127<_0x18a4ef;_0x49e127++){for(let _0x499ddf=0x0;_0x499ddf<_0xd239c4;_0x499ddf++){const _0x185c93=_0x378ebc*(_0xd239c4*_0x18a4ef)+_0x49e127*_0xd239c4+_0x499ddf;_0x44cc8c['H']['array'][_0x185c93]=_0x44cc8c[_0x335caa(-0x2b4,-0x2d4)][_0x335caa(-0x2e2,-0x29a)][_0x378ebc];}}}_0x44cc8c['H']['min']=Math[_0x42e3a6(0x304,0x330)](..._0x44cc8c['lev']['array']),_0x44cc8c['H'][_0x42e3a6(0x348,0x2bc)]=Math['max'](..._0x44cc8c[_0x335caa(-0x2b4,-0x284)]['array']);}}this[_0x335caa(-0x2e0,-0x29f)]=_0x44cc8c,this[_0x42e3a6(0x3a2,0x3b7)]=_0x59ee44;function _0x42e3a6(_0x582712,_0x2c3643){return _0x3e8737(_0x582712-0x224,_0x2c3643);}this['viewerParameters']=_0x310403,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this[_0x42e3a6(0x3a2,0x3f5)],this[_0x42e3a6(0x3bd,0x343)]),this['particlesRendering']=new ParticlesRendering(this['context'],this[_0x42e3a6(0x2c9,0x310)],this[_0x335caa(-0x207,-0x1ea)],this['viewerParameters'],this['particlesComputing']);}['canvasResize'](_0x3187fb){this[_0xc740b7(0xb,-0x33)]['destroyParticlesTextures'](),Object['keys'](this['particlesComputing'][_0xc740b7(0xd9,0x79)])['forEach'](_0x3e924f=>{function _0x2d8edc(_0x3d37bd,_0x2c164c){return _0xc740b7(_0x3d37bd,_0x2c164c-0x2a1);}function _0x3b1fca(_0x1da6c1,_0x3afccd){return _0xc740b7(_0x3afccd,_0x1da6c1- -0x175);}this[_0x2d8edc(0x2cf,0x26e)]['windTextures'][_0x3e924f][_0x2d8edc(0x27d,0x30e)]();}),this['particlesRendering'][_0xc740b7(0x57,0x28)][_0x19202a(-0x19,-0x3d)]['destroy']();function _0x19202a(_0xc17099,_0x55c842){return _0x3e8737(_0x55c842- -0x111,_0xc17099);}function _0xc740b7(_0x1c9b2f,_0x206d0f){return _0x51a8ec(_0x1c9b2f,_0x206d0f- -0x80);}Object[_0x19202a(-0xf,-0x5)](this['particlesRendering'][_0xc740b7(0x34,0x29)])['forEach'](_0x4b0c64=>{function _0x504762(_0x669a93,_0x13245f){return _0xc740b7(_0x13245f,_0x669a93-0x537);}this['particlesRendering'][_0x504762(0x560,0x5e1)][_0x4b0c64]['destroy']();}),this[_0x19202a(0xd2,0x79)]=_0x3187fb,this[_0x19202a(-0x8,-0x2f)]=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this[_0xc740b7(-0x1b,-0x26)]=new ParticlesRendering(this[_0xc740b7(0x98,0x75)],this['data'],this['options'],this['viewerParameters'],this['particlesComputing']);}['clearFramebuffers'](){const _0x5a33d1=new Cesium$2[(_0x4dfab6(0x1ac,0x1dc))]({'color':new Cesium$2[(_0x4dfab6(0x27b,0x208))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2[_0x4dfab6(0x23a,0x21b)]['OPAQUE']});function _0x505df2(_0x38f5db,_0x100005){return _0x51a8ec(_0x100005,_0x38f5db- -0x33);}function _0x4dfab6(_0x25926c,_0x2145b7){return _0x51a8ec(_0x25926c,_0x2145b7-0x19a);}Object[_0x4dfab6(0x288,0x211)](this['particlesRendering'][_0x4dfab6(0x2a7,0x243)])['forEach'](_0x259b9c=>{_0x5a33d1[_0x3b3784(-0x2f2,-0x356)]=this[_0x1c15a3(0x3d3,0x3dc)]['framebuffers'][_0x259b9c];function _0x1c15a3(_0x442faf,_0x3daafb){return _0x4dfab6(_0x3daafb,_0x442faf-0x1df);}function _0x3b3784(_0x315394,_0x24a82f){return _0x4dfab6(_0x24a82f,_0x315394- -0x4ae);}_0x5a33d1['execute'](this[_0x3b3784(-0x21f,-0x284)]);});}['refreshParticles'](_0x2bae19,_0x280b9a=!![]){function _0x5612f9(_0x327c3c,_0x491ddd){return _0x3e8737(_0x491ddd-0x62,_0x327c3c);}function _0x4b71c0(_0x4ba51d,_0x5b60a1){return _0x51a8ec(_0x5b60a1,_0x4ba51d-0x252);}_0x280b9a&&(this[_0x5612f9(0x123,0x162)](),this['particlesComputing'][_0x4b71c0(0x295,0x325)](),this[_0x4b71c0(0x29f,0x2de)]['createParticlesTextures'](this['context'],this[_0x4b71c0(0x33b,0x35e)],this['viewerParameters']));if(_0x2bae19){var _0x335cbf;const _0x23cc4a=this[_0x5612f9(0xef,0x151)][_0x5612f9(0x1f7,0x16b)](this['options']);this['particlesRendering']['primitives']['segments']['geometry']=_0x23cc4a;const _0x3f7c73=Cesium$2['VertexArray']['fromGeometry']({'context':this[_0x4b71c0(0x347,0x333)],'geometry':_0x23cc4a,'attributeLocations':this['particlesRendering']['primitives']['segments']['attributeLocations'],'bufferUsage':Cesium$2['BufferUsage']['STATIC_DRAW']});(_0x335cbf=this['particlesRendering'][_0x5612f9(0x1c5,0x1f6)])!==null&&_0x335cbf!==void 0x0&&(_0x335cbf=_0x335cbf['segments'])!==null&&_0x335cbf!==void 0x0&&_0x335cbf['commandToExecute']&&(this[_0x4b71c0(0x2ac,0x2ff)][_0x5612f9(0x252,0x1f6)][_0x5612f9(0x234,0x1b2)][_0x5612f9(0x1ba,0x134)]['vertexArray']=_0x3f7c73);}}['setOptions'](_0x4d1282){function _0x4276df(_0x2125cf,_0x16a766){return _0x51a8ec(_0x2125cf,_0x16a766- -0x239);}let _0x48d4d8=![];this['options']['maxParticles']!==_0x4d1282['maxParticles']&&(_0x48d4d8=!![]);Object[_0x4276df(-0x204,-0x1c2)](_0x4d1282)[_0x4276df(-0x1c8,-0x208)](_0x24cccf=>{this['options'][_0x24cccf]=_0x4d1282[_0x24cccf];});function _0x5bf62d(_0x4d0a10,_0x47bf9f){return _0x3e8737(_0x47bf9f- -0x18d,_0x4d0a10);}this['refreshParticles'](_0x48d4d8,_0x4d1282['dynamic']);}['applyViewerParameters'](_0x3ad4a5){Object['keys'](_0x3ad4a5)['forEach'](_0x2d0e21=>{function _0x39ca77(_0x5731dd,_0x287891){return _0x25e8(_0x5731dd-0x1f4,_0x287891);}this[_0x39ca77(0x3cb,0x43c)][_0x2d0e21]=_0x3ad4a5[_0x2d0e21];}),this['refreshParticles'](![]);function _0x324499(_0x283550,_0x5ce338){return _0x3e8737(_0x5ce338-0x395,_0x283550);}function _0x31d571(_0x417b9a,_0x528b81){return _0x51a8ec(_0x417b9a,_0x528b81-0x2e3);}!this[_0x324499(0x4fd,0x513)]['dynamic']&&(this[_0x31d571(0x367,0x3cc)]['dynamic']=!![],this[_0x31d571(0x29d,0x2e5)](this['options']),setTimeout(()=>{this['options'][_0x3c1f33(0x4bf,0x4dd)]=![];function _0x3c1f33(_0x1b3b9e,_0x171707){return _0x31d571(_0x1b3b9e,_0x171707-0x163);}function _0xb04278(_0x1fb7ef,_0x323933){return _0x324499(_0x323933,_0x1fb7ef- -0xaf);}this[_0x3c1f33(0x3b8,0x448)](this['options']);},0x1f4));}[_0x51a8ec(0x6c,0xed)](){clearTimeout(this['canrefresh']),this['particlesComputing']['destroyParticlesTextures']();function _0x3f5667(_0x24c7e2,_0x3262bd){return _0x51a8ec(_0x24c7e2,_0x3262bd- -0x2cd);}Object[_0x156293(0x4de,0x4e8)](this['particlesComputing']['windTextures'])['forEach'](_0x460586=>{function _0x218d67(_0x20cc63,_0x348812){return _0x156293(_0x348812,_0x20cc63- -0x5c0);}this['particlesComputing'][_0x218d67(-0x56,0x1c)][_0x460586]['destroy']();}),this['particlesRendering']['textures'][_0x3f5667(-0x21f,-0x28e)][_0x156293(0x568,0x55e)]();function _0x156293(_0x2aeae9,_0x48eb23){return _0x51a8ec(_0x2aeae9,_0x48eb23-0x471);}Object[_0x3f5667(-0x22c,-0x256)](this[_0x3f5667(-0x235,-0x273)]['framebuffers'])['forEach'](_0x14982e=>{this['particlesRendering']['framebuffers'][_0x14982e]['destroy']();});for(const _0xe140ee in this){delete this[_0xe140ee];}}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x3e8737(0x176,0xfd)],_0x2b6d2a={};_0x2b6d2a['particlesNumber']=0x1000,_0x2b6d2a['fixedHeight']=0x0,_0x2b6d2a['fadeOpacity']=0.996;function _0x25e8(_0x24f960,_0x3b9145){const _0x12a68f=_0x12a6();return _0x25e8=function(_0x25e87b,_0x39698d){_0x25e87b=_0x25e87b-0xb6;let _0x5c9c99=_0x12a68f[_0x25e87b];return _0x5c9c99;},_0x25e8(_0x24f960,_0x3b9145);}function _0x51a8ec(_0x3bf0b5,_0x2ec7cb){return _0x25e8(_0x2ec7cb- -0xd3,_0x3bf0b5);}_0x2b6d2a['dropRate']=0.003,_0x2b6d2a[_0x51a8ec(-0x72,-0x4)]=0.01,_0x2b6d2a[_0x3e8737(0x9c,0xa4)]=0.5,_0x2b6d2a[_0x3e8737(0xb3,0x2b)]=0x2,_0x2b6d2a['colors']=['rgb(206,255,255)'],_0x2b6d2a['dynamic']=!![];const DEF_OPTIONS=_0x2b6d2a;class WindLayer extends BaseLayer$1{constructor(_0x542e2c={}){_0x542e2c={...DEF_OPTIONS,..._0x542e2c},super(_0x542e2c),this['_setOptionsHook'](_0x542e2c);}get['layer'](){function _0x3535f4(_0x1dd1e6,_0x247e67){return _0x51a8ec(_0x247e67,_0x1dd1e6-0x15e);}return this[_0x3535f4(0x25d,0x2c6)];}get[_0x3e8737(0xa5,0xb0)](){return this['_data'];}set['data'](_0x5275f3){this['setData'](_0x5275f3);}get[_0x51a8ec(0x82,0xa7)](){function _0x53bfbe(_0x5f104f,_0x105c3c){return _0x51a8ec(_0x5f104f,_0x105c3c- -0x98);}return this[_0x53bfbe(-0x31,0x51)]['colors'];}set[_0x3e8737(0x13c,0xf0)](_0x501dd5){this[_0x129af5(-0x5d,0x3)][_0x129af5(-0x66,-0x3f)]=_0x501dd5;function _0x129af5(_0x1a214a,_0x4252f2){return _0x51a8ec(_0x1a214a,_0x4252f2- -0xe6);}function _0x86ab81(_0x3d17aa,_0x5ff6e4){return _0x51a8ec(_0x5ff6e4,_0x3d17aa-0x2e7);}if(this['particleSystem']){const _0x24171d={};_0x24171d[_0x86ab81(0x38e,0x311)]=_0x501dd5,this['particleSystem'][_0x86ab81(0x2e9,0x295)](_0x24171d);}this['resize']();}[_0x3e8737(0x13a,0xb3)](){}['_addedHook'](){function _0x30eac1(_0x4f06a4,_0x33072e){return _0x3e8737(_0x33072e-0x60,_0x4f06a4);}this['scene']=this[_0x2e5569(-0xbe,-0x42)][_0x30eac1(0x15f,0x121)],this[_0x30eac1(0x169,0x1a4)]=this[_0x2e5569(-0xbe,-0x125)]['camera'],this['primitives']=new Cesium$1['PrimitiveCollection'](),this['_map']['scene']['primitives']['add'](this[_0x2e5569(-0x90,-0xba)]),this[_0x30eac1(0x24d,0x1f9)]={'lonRange':new Cesium$1[(_0x2e5569(-0x1ac,-0x1f2))](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0,'lonDisplayRange':new Cesium$1['Cartesian2'](),'latDisplayRange':new Cesium$1['Cartesian2']()},this[_0x30eac1(0x15b,0x158)]=new Cesium$1[(_0x30eac1(0x139,0x130))](Cesium$1['Cartesian3'][_0x2e5569(-0xa5,-0x2d)],0.99*0x615299),this['updateViewerParameters'](),window[_0x30eac1(0x66,0xee)]('resize',this[_0x30eac1(0x216,0x1a1)]['bind'](this),![]);function _0x2e5569(_0x27e621,_0x1bc8a9){return _0x51a8ec(_0x1bc8a9,_0x27e621- -0x18f);}this['mouse_down']=![],this['mouse_move']=![],this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x2e5569(-0xbe,-0x3c)]['on'](mars3d__namespace['EventType'][_0x2e5569(-0x19f,-0x170)],this[_0x2e5569(-0xfe,-0xcc)],this),this[_0x2e5569(-0xbe,-0x87)]['on'](mars3d__namespace[_0x2e5569(-0x141,-0x194)][_0x2e5569(-0xa0,-0x56)],this['_onMouseUpEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x2e5569(-0x10a,-0x9a)],this[_0x30eac1(0x23e,0x1f2)],this),this[_0x30eac1(0x166,0x18a)]&&this[_0x2e5569(-0x182,-0x1ce)](this[_0x30eac1(0x193,0x18a)]);}['_removedHook'](){window['removeEventListener']('resize',this[_0x1b6e1c(-0x26a,-0x234)]),this['_map']['off'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this),this[_0x1b6e1c(-0x257,-0x20f)][_0x3ade7d(0x3fe,0x3f7)](mars3d__namespace[_0x3ade7d(0x3da,0x382)]['wheel'],this['_onMapWhellEvent'],this),this['_map'][_0x3ade7d(0x451,0x3f7)](mars3d__namespace[_0x1b6e1c(-0x231,-0x292)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x1b6e1c(-0x28c,-0x20f)][_0x3ade7d(0x378,0x3f7)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x1b6e1c(_0x5e7644,_0x565581){return _0x3e8737(_0x565581- -0x375,_0x5e7644);}function _0x3ade7d(_0x4b9d98,_0x3db3d0){return _0x51a8ec(_0x4b9d98,_0x3db3d0-0x334);}this[_0x1b6e1c(-0x233,-0x1e1)][_0x1b6e1c(-0x187,-0x209)](),this[_0x1b6e1c(-0x24a,-0x20f)][_0x1b6e1c(-0x2c2,-0x2b4)][_0x1b6e1c(-0x1b9,-0x1e1)]['remove'](this[_0x3ade7d(0x457,0x433)]);}[_0x3e8737(0x141,0x110)](){if(!this[_0x3b418b(0x2ad,0x2a5)]||!this[_0x434571(0x2be,0x271)])return;this['primitives']['show']=![],this['primitives']['removeAll']();function _0x3b418b(_0xba269a,_0x4ed24d){return _0x51a8ec(_0xba269a,_0x4ed24d-0x246);}function _0x434571(_0x317b53,_0x133fac){return _0x51a8ec(_0x317b53,_0x133fac-0x1ac);}this[_0x434571(0x20a,0x27d)][_0x3b418b(0x303,0x2a7)](mars3d__namespace['EventType'][_0x3b418b(0x20e,0x250)],this['_onMap_preRenderEvent'],this);}[_0x51a8ec(0x12,0x90)](_0x23ccff){function _0x16283f(_0x34b93e,_0x5c9ae6){return _0x51a8ec(_0x5c9ae6,_0x34b93e-0x28d);}this['particleSystem'][_0x16283f(0x308,0x297)](this['scene']['context']),this[_0x16283f(0x329,0x2cb)]();function _0x3fcd1(_0x3f9e2e,_0x4ccbe5){return _0x51a8ec(_0x3f9e2e,_0x4ccbe5-0x88);}this[_0x16283f(0x38c,0x36f)]['show']=!![];}[_0x3e8737(0x180,0x100)](_0x13f1e9){clearTimeout(this[_0x111de7(-0x201,-0x21d)]);if(!this[_0xe1b3b2(-0x1a1,-0x1f8)]||!this['particleSystem'])return;function _0xe1b3b2(_0x4f6d53,_0x3bb05b){return _0x3e8737(_0x3bb05b- -0x2ec,_0x4f6d53);}function _0x111de7(_0x3ae115,_0x2b0f51){return _0x51a8ec(_0x2b0f51,_0x3ae115- -0x26e);}this['primitives'][_0xe1b3b2(-0x1b5,-0x1f8)]=![],this[_0xe1b3b2(-0x164,-0x1ea)]=setTimeout(()=>{if(!this['show'])return;this['redraw']();},0xc8);}['_onMouseDownEvent'](_0x13c62a){function _0x461966(_0x21c4b3,_0x25b27f){return _0x3e8737(_0x25b27f-0x19c,_0x21c4b3);}this[_0x461966(0x35e,0x2fd)]=!![];}[_0x3e8737(0x192,0x175)](_0xf7dd0c){if(!this['show']||!this[_0x36836f(-0xd5,-0x123)])return;function _0x4ff454(_0x1e1606,_0x57cc5f){return _0x3e8737(_0x57cc5f- -0xe6,_0x1e1606);}function _0x36836f(_0xc51eb0,_0x2add3a){return _0x51a8ec(_0xc51eb0,_0x2add3a- -0x1e8);}this[_0x36836f(-0xd4,-0x11c)]&&(this[_0x4ff454(0x12d,0xae)]['show']=![],this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x421de4){if(!this[_0x7bce04(-0x106,-0x89)]||!this[_0xdfa6(0x55b,0x54e)])return;this['mouse_down']&&this[_0xdfa6(0x48f,0x4fc)]&&this['redraw']();function _0xdfa6(_0x5aa04f,_0x1591d8){return _0x3e8737(_0x1591d8-0x3f4,_0x5aa04f);}this['primitives'][_0x7bce04(-0x12,-0x89)]=!![],this['mouse_down']=![];function _0x7bce04(_0x183827,_0x9d1bf4){return _0x3e8737(_0x9d1bf4- -0x17d,_0x183827);}this['mouse_move']=![];}['redraw'](){if(!this[_0x508174(0x1e8,0x245)]||!this['show'])return;function _0x508174(_0x3e93ad,_0x34ad11){return _0x51a8ec(_0x3e93ad,_0x34ad11-0x174);}this[_0x1fda98(0x1b,0xad)](),this['particleSystem'][_0x508174(0x21e,0x1de)](this['viewerParameters']);function _0x1fda98(_0x46f68b,_0x5776e5){return _0x3e8737(_0x5776e5- -0xa0,_0x46f68b);}this['primitives'][_0x508174(0x1e6,0x1d3)]=!![];}['setData'](_0x30e910){function _0x7d682f(_0x21ddcf,_0x3826ac){return _0x3e8737(_0x21ddcf- -0x326,_0x3826ac);}function _0x16186e(_0x144654,_0x441d5a){return _0x3e8737(_0x441d5a-0x53,_0x144654);}this[_0x16186e(0xef,0x17d)]=_0x30e910,this[_0x7d682f(-0x1cc,-0x18a)]&&this['particleSystem'][_0x7d682f(-0x1a4,-0x12c)](),this['particleSystem']=new ParticleSystem(this['scene'][_0x7d682f(-0x19c,-0x1a4)],_0x30e910,this['getOptions'](),this[_0x16186e(0x223,0x1ec)]),this['addPrimitives']();}['_setOptionsHook'](_0x155fad,_0x1e0b88){function _0x30a8cc(_0x3fb599,_0x336fd2){return _0x3e8737(_0x3fb599- -0x172,_0x336fd2);}if(_0x155fad)for(const _0x5862bb in _0x155fad){this[_0x5862bb]=_0x155fad[_0x5862bb];}this['particleSystem']&&this['particleSystem'][_0x30a8cc(-0xdb,-0x128)](this['getOptions']());}['getOptions'](){const _0x78bc2c=Math['ceil'](Math['sqrt'](this[_0x29fdeb(0x4ca,0x4a9)]));function _0x29fdeb(_0x43c10f,_0x570bab){return _0x51a8ec(_0x43c10f,_0x570bab-0x3c4);}this[_0xcba91a(-0x24c,-0x1bb)]=_0x78bc2c*_0x78bc2c;const _0x377616={};_0x377616[_0xcba91a(-0x171,-0x1a2)]=_0x78bc2c,_0x377616['maxParticles']=this[_0x29fdeb(0x4ce,0x4a9)],_0x377616[_0x29fdeb(0x472,0x46b)]=this['colors'],_0x377616[_0xcba91a(-0x2ca,-0x2a1)]=this['fixedHeight'],_0x377616[_0xcba91a(-0x20f,-0x1d8)]=this['fadeOpacity'],_0x377616['dropRate']=this['dropRate'],_0x377616['dropRateBump']=this['dropRateBump'],_0x377616['speedFactor']=this[_0x29fdeb(0x436,0x3cb)],_0x377616['lineWidth']=this['lineWidth'];function _0xcba91a(_0x1b8d88,_0x55b988){return _0x51a8ec(_0x1b8d88,_0x55b988- -0x2a0);}return _0x377616['dynamic']=this['dynamic'],_0x377616;}['addPrimitives'](){this['primitives']['add'](this['particleSystem'][_0x2d7c05(0x1dd,0x16d)][_0x206fbd(0x2c5,0x2ea)]['calculateSpeed']),this[_0x2d7c05(0x24b,0x21f)][_0x206fbd(0x218,0x206)](this[_0x2d7c05(0x16e,0x1e5)]['particlesComputing']['primitives']['updatePosition']),this['primitives']['add'](this[_0x2d7c05(0x171,0x1e5)][_0x206fbd(0x1c7,0x238)]['primitives'][_0x2d7c05(0x1c3,0x160)]),this[_0x206fbd(0x309,0x2ea)][_0x206fbd(0x203,0x206)](this['particleSystem']['particlesRendering'][_0x2d7c05(0x21c,0x21f)][_0x2d7c05(0x1e5,0x1db)]);function _0x206fbd(_0x1bde3b,_0x3bce28){return _0x3e8737(_0x3bce28-0x156,_0x1bde3b);}function _0x2d7c05(_0x185194,_0x3c1352){return _0x51a8ec(_0x185194,_0x3c1352-0x120);}this[_0x206fbd(0x271,0x2ea)][_0x206fbd(0x27b,0x206)](this[_0x206fbd(0x319,0x2b0)]['particlesRendering']['primitives'][_0x206fbd(0x222,0x23a)]),this[_0x2d7c05(0x20e,0x21f)]['add'](this[_0x2d7c05(0x235,0x1e5)]['particlesRendering'][_0x206fbd(0x25e,0x2ea)]['screen']);}['updateViewerParameters'](){let _0x1041c9=this['camera']['computeViewRectangle'](this['scene']['globe']['ellipsoid']);if(!_0x1041c9){const _0x1a8316=this['_map']['getExtent']();_0x1041c9=Cesium$1['Rectangle']['fromDegrees'](_0x1a8316['xmin'],_0x1a8316['ymin'],_0x1a8316['xmax'],_0x1a8316['ymax']);}const _0x53ad0b=Util[_0x499ac5(0x1d1,0x1f5)](_0x1041c9);function _0x5ba48a(_0x486504,_0x381c08){return _0x51a8ec(_0x381c08,_0x486504- -0x23d);}function _0x499ac5(_0x563846,_0x5c1427){return _0x51a8ec(_0x5c1427,_0x563846-0x160);}this['_data']?(this['viewerParameters'][_0x5ba48a(-0x1aa,-0x192)]['x']=Math['max'](_0x53ad0b[_0x5ba48a(-0x1d6,-0x161)][_0x499ac5(0x1ab,0x1c0)],this[_0x499ac5(0x1f5,0x1ab)][_0x5ba48a(-0x14b,-0xbe)]),this['viewerParameters']['lonRange']['y']=Math[_0x499ac5(0x1ab,0x20f)](_0x53ad0b['lon']['max'],this[_0x5ba48a(-0x1a8,-0x144)][_0x499ac5(0x1bb,0x21a)]),this['viewerParameters']['latRange']['x']=Math['max'](_0x53ad0b['lat']['min'],this['_data']['ymin']),this['viewerParameters'][_0x499ac5(0x22a,0x256)]['y']=Math['min'](_0x53ad0b['lat'][_0x5ba48a(-0x1ae,-0x178)],this['_data']['ymax'])):(this[_0x5ba48a(-0x139,-0x1aa)]['lonRange']['x']=_0x53ad0b['lon']['min'],this[_0x499ac5(0x264,0x248)][_0x499ac5(0x1f3,0x1f6)]['y']=_0x53ad0b['lon']['max'],this['viewerParameters']['latRange']['x']=_0x53ad0b[_0x499ac5(0x238,0x28c)]['min'],this[_0x499ac5(0x264,0x243)]['latRange']['y']=_0x53ad0b['lat']['max']);const _0x514b65=this['camera']['getPixelSize'](this['globeBoundingSphere'],this['scene']['drawingBufferWidth'],this['scene']['drawingBufferHeight']);_0x514b65>0x0&&(this['viewerParameters']['pixelSize']=_0x514b65);}}mars3d__namespace[_0x3e8737(0x10d,0x106)][_0x51a8ec(0x64,0xf1)](_0x51a8ec(-0x2d,0x25),WindLayer),mars3d__namespace['layer'][_0x51a8ec(0xad,0x51)]=WindLayer;class CanvasParticle{constructor(){function _0xaad548(_0x5a06ff,_0x13bf33){return _0x3e8737(_0x5a06ff- -0x388,_0x13bf33);}this[_0x1fc841(0x27a,0x2b0)]=null,this[_0xaad548(-0x21b,-0x28c)]=null,this['tlng']=null,this['tlat']=null;function _0x1fc841(_0x5f2780,_0x134b31){return _0x3e8737(_0x134b31-0x185,_0x5f2780);}this[_0xaad548(-0x2dc,-0x293)]=null,this['speed']=null;}[_0x51a8ec(0xe1,0xed)](){for(const _0x12fd04 in this){delete this[_0x12fd04];}}}class CanvasWindField{constructor(_0xb25055){this['setOptions'](_0xb25055);}get[_0x3e8737(0xb5,0xf6)](){return this['_speedRate'];}set[_0x3e8737(0xb5,0x64)](_0x40a82a){function _0x2b3d53(_0x4ea708,_0x21aaaf){return _0x51a8ec(_0x21aaaf,_0x4ea708- -0x1de);}function _0x514de4(_0x26e54d,_0x28bdbb){return _0x3e8737(_0x26e54d-0xc,_0x28bdbb);}this[_0x514de4(0xf7,0x151)]=(0x64-(_0x40a82a>0x63?0x63:_0x40a82a))*0x64,this['_calc_speedRate']=[(this[_0x2b3d53(-0x183,-0x144)]-this['xmin'])/this[_0x514de4(0xf7,0xb9)],(this['ymax']-this[_0x2b3d53(-0x19d,-0x1d8)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0x5142b9){this['_maxAge']=_0x5142b9;}['setOptions'](_0x27c1b6){this['options']=_0x27c1b6,this[_0x38215a(-0x95,-0x126)]=_0x27c1b6[_0x2c9f66(0x4b1,0x502)]||0x78,this['speedRate']=_0x27c1b6['speedRate']||0x32;function _0x38215a(_0x1009d7,_0x298a42){return _0x3e8737(_0x1009d7- -0x22c,_0x298a42);}function _0x2c9f66(_0x3f8a08,_0x3fd6b4){return _0x3e8737(_0x3fd6b4-0x36b,_0x3f8a08);}this['particles']=[];const _0x54c238=_0x27c1b6[_0x38215a(-0xb2,-0x49)]||0x1000;for(let _0x3d0789=0x0;_0x3d0789<_0x54c238;_0x3d0789++){const _0x280454=this[_0x38215a(-0xec,-0xa6)](new CanvasParticle());this['particles']['push'](_0x280454);}}[_0x3e8737(0xc2,0x65)](_0x1bb1dd){this['rows']=_0x1bb1dd[_0x23c867(0x31d,0x2d4)],this['cols']=_0x1bb1dd['cols'],this[_0x1939bc(0x152,0x141)]=_0x1bb1dd['xmin'],this[_0x1939bc(0xba,0xaa)]=_0x1bb1dd['xmax'],this[_0x23c867(0x2c7,0x238)]=_0x1bb1dd[_0x23c867(0x1fb,0x238)],this[_0x1939bc(0x5f,0x9f)]=_0x1bb1dd[_0x1939bc(0x55,0x9f)],this['grid']=[];function _0x23c867(_0x2e76cf,_0x3558b4){return _0x51a8ec(_0x2e76cf,_0x3558b4-0x1f7);}const _0x2a7285=_0x1bb1dd[_0x23c867(0x209,0x1e2)];function _0x1939bc(_0xd77b6e,_0x221d44){return _0x51a8ec(_0xd77b6e,_0x221d44-0x4f);}const _0x21515f=_0x1bb1dd[_0x23c867(0x29a,0x22b)];let _0x1803de=![];_0x2a7285[_0x23c867(0x1c9,0x1fb)]===this['rows']&&_0x2a7285[0x0]['length']===this['cols']&&(_0x1803de=!![]);let _0xc79239=0x0,_0x56c366=null,_0x4be38d=null;for(let _0x58ab82=0x0;_0x58ab82<this['rows'];_0x58ab82++){_0x56c366=[];for(let _0x55a1d0=0x0;_0x55a1d0<this['cols'];_0x55a1d0++,_0xc79239++){_0x1803de?_0x4be38d=this[_0x23c867(0x2ae,0x22c)](_0x2a7285[_0x58ab82][_0x55a1d0],_0x21515f[_0x58ab82][_0x55a1d0]):_0x4be38d=this['_calcUV'](_0x2a7285[_0xc79239],_0x21515f[_0xc79239]),_0x56c366[_0x1939bc(0x127,0x10f)](_0x4be38d);}this['grid'][_0x1939bc(0x80,0x10f)](_0x56c366);}this[_0x23c867(0x2c4,0x2e0)]['reverseY']&&this['grid'][_0x1939bc(0x4,0x93)]();}['clear'](){delete this['rows'],delete this[_0x44763d(0x33b,0x33b)],delete this['xmin'],delete this['xmax'],delete this['ymin'],delete this['ymax'];function _0x44763d(_0x15223e,_0x2d8cdd){return _0x51a8ec(_0x15223e,_0x2d8cdd-0x356);}delete this['grid'],delete this['particles'];}['toGridXY'](_0xca434b,_0x5091c8){const _0x2d1704=(_0xca434b-this['xmin'])/(this[_0x38a2d6(0x2b6,0x288)]-this[_0x38a2d6(0x34d,0x2be)])*(this['cols']-0x1),_0x59fd9e=(this[_0x38a2d6(0x2ab,0x297)]-_0x5091c8)/(this['ymax']-this['ymin'])*(this[_0x4c5e64(-0xc5,-0x35)]-0x1);function _0x38a2d6(_0x164b7d,_0x1dd930){return _0x3e8737(_0x164b7d-0x1c6,_0x1dd930);}function _0x4c5e64(_0xc216e5,_0x39c074){return _0x51a8ec(_0xc216e5,_0x39c074- -0x112);}return[_0x2d1704,_0x59fd9e];}['getUVByXY'](_0x19a9eb,_0x58ef3e){if(_0x19a9eb<0x0||_0x19a9eb>=this[_0x4f53dd(-0x206,-0x272)]||_0x58ef3e>=this['rows'])return[0x0,0x0,0x0];const _0x325506=Math['floor'](_0x19a9eb);function _0x4f53dd(_0x1487d9,_0x17c768){return _0x3e8737(_0x17c768- -0x2ec,_0x1487d9);}const _0x50a766=Math['floor'](_0x58ef3e);if(_0x325506===_0x19a9eb&&_0x50a766===_0x58ef3e)return this['grid'][_0x58ef3e][_0x19a9eb];function _0x403bd(_0x21a218,_0x28ce27){return _0x3e8737(_0x21a218-0x187,_0x28ce27);}const _0x871157=_0x325506+0x1,_0x48c7d9=_0x50a766+0x1,_0x3622eb=this[_0x4f53dd(-0x2a9,-0x22f)](_0x325506,_0x50a766),_0x6185fc=this[_0x4f53dd(-0x1f6,-0x22f)](_0x871157,_0x50a766),_0x8c87ff=this['getUVByXY'](_0x325506,_0x48c7d9),_0x3e7f87=this['getUVByXY'](_0x871157,_0x48c7d9);let _0x23d7c4=null;try{_0x23d7c4=this[_0x403bd(0x2ec,0x341)](_0x19a9eb-_0x325506,_0x58ef3e-_0x50a766,_0x3622eb,_0x6185fc,_0x8c87ff,_0x3e7f87);}catch(_0x172fb0){console['log'](_0x19a9eb,_0x58ef3e);}return _0x23d7c4;}[_0x51a8ec(0xb1,0xd0)](_0x4061b7,_0x4e53a2,_0x1c3418,_0x152635,_0x52a5e8,_0xf3f10d){const _0x3220a2=0x1-_0x4061b7,_0x179dda=0x1-_0x4e53a2,_0x329ab=_0x3220a2*_0x179dda,_0x4b8503=_0x4061b7*_0x179dda,_0xba68fb=_0x3220a2*_0x4e53a2,_0x18cf69=_0x4061b7*_0x4e53a2;function _0x378829(_0xd2e7f4,_0x293f95){return _0x51a8ec(_0xd2e7f4,_0x293f95-0x36c);}const _0x19fcbe=_0x1c3418[0x0]*_0x329ab+_0x152635[0x0]*_0x4b8503+_0x52a5e8[0x0]*_0xba68fb+_0xf3f10d[0x0]*_0x18cf69,_0x424029=_0x1c3418[0x1]*_0x329ab+_0x152635[0x1]*_0x4b8503+_0x52a5e8[0x1]*_0xba68fb+_0xf3f10d[0x1]*_0x18cf69;return this[_0x378829(0x41b,0x3a1)](_0x19fcbe,_0x424029);}[_0x3e8737(0xca,0xb2)](_0x2a146d,_0x1358c1){function _0x528b59(_0x19237c,_0x1a7dde){return _0x3e8737(_0x1a7dde-0x2c7,_0x19237c);}return[+_0x2a146d,+_0x1358c1,Math[_0x528b59(0x2cb,0x344)](_0x2a146d*_0x2a146d+_0x1358c1*_0x1358c1)];}['getUVByPoint'](_0x5b607f,_0x548cc0){if(!this['isInExtent'](_0x5b607f,_0x548cc0))return null;const _0xfd54d8=this['toGridXY'](_0x5b607f,_0x548cc0),_0x2d6df5=this[_0x230ced(0x414,0x42f)](_0xfd54d8[0x0],_0xfd54d8[0x1]);function _0x230ced(_0x3ef83a,_0x59b95c){return _0x51a8ec(_0x59b95c,_0x3ef83a-0x3ec);}return _0x2d6df5;}['isInExtent'](_0x10b8d8,_0x5e80f8){function _0x34c583(_0x32c384,_0x5ab2f7){return _0x51a8ec(_0x5ab2f7,_0x32c384- -0x29b);}function _0x3d644f(_0x150d33,_0x529114){return _0x51a8ec(_0x150d33,_0x529114-0x62);}return _0x10b8d8>=this[_0x34c583(-0x1a9,-0x169)]&&_0x10b8d8<=this['xmax']&&_0x5e80f8>=this[_0x34c583(-0x25a,-0x2d6)]&&_0x5e80f8<=this['ymax']?!![]:![];}[_0x3e8737(0x175,0x1ec)](){const _0x187ede=fRandomByfloat(this['xmin'],this[_0x20b832(-0x1de,-0x203)]);function _0x20b832(_0x1ea38a,_0x138273){return _0x51a8ec(_0x1ea38a,_0x138273- -0x25e);}const _0x35649f=fRandomByfloat(this[_0x20b832(-0x19d,-0x21d)],this[_0x498abc(0x311,0x337)]),_0x488866={};function _0x498abc(_0x4159a8,_0xe2a7bf){return _0x51a8ec(_0x4159a8,_0xe2a7bf-0x2e7);}return _0x488866['lat']=_0x35649f,_0x488866[_0x498abc(0x338,0x37d)]=_0x187ede,_0x488866;}['getParticles'](){let _0x34eb61,_0x52e7b4,_0x2d005c;function _0x3bc447(_0x22c332,_0x1cfc4e){return _0x51a8ec(_0x1cfc4e,_0x22c332-0xf2);}function _0x395d2b(_0x402dba,_0x2bc2aa){return _0x51a8ec(_0x402dba,_0x2bc2aa-0x0);}for(let _0x495d78=0x0,_0x32a902=this['particles']['length'];_0x495d78<_0x32a902;_0x495d78++){let _0xa4dc92=this[_0x3bc447(0x14e,0x139)][_0x495d78];_0xa4dc92[_0x395d2b(-0x77,0x17)]<=0x0&&(_0xa4dc92=this['_randomParticle'](_0xa4dc92));if(_0xa4dc92['age']>0x0){const _0x253120=_0xa4dc92[_0x395d2b(0xaa,0x54)],_0x32b329=_0xa4dc92['tlat'];_0x2d005c=this['getUVByPoint'](_0x253120,_0x32b329),_0x2d005c?(_0x34eb61=_0x253120+this['_calc_speedRate'][0x0]*_0x2d005c[0x0],_0x52e7b4=_0x32b329+this['_calc_speedRate'][0x1]*_0x2d005c[0x1],_0xa4dc92[_0x395d2b(0x56,0x96)]=_0x253120,_0xa4dc92['lat']=_0x32b329,_0xa4dc92[_0x395d2b(0xc9,0x54)]=_0x34eb61,_0xa4dc92['tlat']=_0x52e7b4,_0xa4dc92[_0x3bc447(0x1d8,0x1dc)]=_0x2d005c[0x2],_0xa4dc92['age']--):_0xa4dc92['age']=0x0;}}return this['particles'];}['_randomParticle'](_0x59e0e3){let _0x23bd99,_0x3cc0ff;for(let _0x3eabae=0x0;_0x3eabae<0x1e;_0x3eabae++){_0x23bd99=this['getRandomLatLng'](),_0x3cc0ff=this['getUVByPoint'](_0x23bd99['lng'],_0x23bd99['lat']);if(_0x3cc0ff&&_0x3cc0ff[0x2]>0x0)break;}function _0x26e61d(_0x23692f,_0x589a7f){return _0x3e8737(_0x23692f-0x139,_0x589a7f);}if(!_0x3cc0ff)return _0x59e0e3;const _0x76a5c5=_0x23bd99['lng']+this[_0x2680a3(0x414,0x45c)][0x0]*_0x3cc0ff[0x0],_0x1ab030=_0x23bd99['lat']+this['_calc_speedRate'][0x1]*_0x3cc0ff[0x1];function _0x2680a3(_0x3e6026,_0xc70d67){return _0x51a8ec(_0x3e6026,_0xc70d67-0x433);}return _0x59e0e3[_0x2680a3(0x4ce,0x4c9)]=_0x23bd99[_0x26e61d(0x264,0x22d)],_0x59e0e3[_0x2680a3(0x53d,0x50b)]=_0x23bd99['lat'],_0x59e0e3['tlng']=_0x76a5c5,_0x59e0e3['tlat']=_0x1ab030,_0x59e0e3[_0x26e61d(0x1e5,0x1e0)]=Math[_0x26e61d(0x1c1,0x23e)](Math['random']()*this['maxAge']),_0x59e0e3['speed']=_0x3cc0ff[0x2],_0x59e0e3;}[_0x51a8ec(0xd6,0xed)](){for(const _0x509c4b in this){delete this[_0x509c4b];}}}function fRandomByfloat(_0x5e0650,_0x27e77b){return _0x5e0650+Math['random']()*(_0x27e77b-_0x5e0650);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x147489={}){super(_0x147489);function _0x4de259(_0x4fe368,_0x46e325){return _0x51a8ec(_0x4fe368,_0x46e325-0x3bc);}this[_0x18b776(0x576,0x514)](_0x147489),this[_0x18b776(0x476,0x508)]=null;function _0x18b776(_0x3f2eb8,_0x47df55){return _0x51a8ec(_0x3f2eb8,_0x47df55-0x4a4);}_0x147489[_0x18b776(0x510,0x54b)]&&_0x147489['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x147489));}['_setOptionsHook'](_0x10ee55,_0x212edc){this['frameTime']=0x3e8/(_0x10ee55[_0x213e6b(0x195,0x169)]||0xa),this['_pointerEvents']=this['options'][_0xd2eddb(-0x1b6,-0x1e5)]??![];function _0x213e6b(_0x26ec80,_0x47a65e){return _0x3e8737(_0x47a65e-0x35,_0x26ec80);}this['color']=_0x10ee55['color']||'#ffffff';function _0xd2eddb(_0x3ac55f,_0x21f3ba){return _0x51a8ec(_0x3ac55f,_0x21f3ba- -0x1da);}this['lineWidth']=_0x10ee55['lineWidth']||0x1,this[_0xd2eddb(-0x1fd,-0x1dc)]=_0x10ee55[_0x213e6b(0xb1,0xc8)]??0x0,this[_0x213e6b(0xe1,0x13c)]=_0x10ee55[_0xd2eddb(-0x137,-0x168)]??![],this['windField']&&this['windField'][_0x213e6b(0xf3,0xcc)](_0x10ee55);}get['layer'](){function _0x4fdc91(_0x45ff40,_0x325079){return _0x51a8ec(_0x325079,_0x45ff40-0x2e4);}return this[_0x4fdc91(0x348,0x361)];}get[_0x51a8ec(0x130,0xc7)](){function _0x4185d5(_0x148f4c,_0x185d4d){return _0x3e8737(_0x148f4c-0x3ca,_0x185d4d);}function _0x11a446(_0x20384a,_0x38f757){return _0x51a8ec(_0x38f757,_0x20384a-0x2fa);}return this[_0x11a446(0x3cb,0x363)]['scene']['canvas'][_0x4185d5(0x538,0x586)];}get['canvasHeight'](){function _0x483407(_0x3d2e0a,_0x14f0d5){return _0x51a8ec(_0x14f0d5,_0x3d2e0a- -0x2b7);}return this['_map']['scene']['canvas'][_0x483407(-0x1d3,-0x1f3)];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x3e8737(0x8a,0x28)](_0x18e979){function _0x12c497(_0x2236d4,_0x48295c){return _0x3e8737(_0x48295c- -0x1cc,_0x2236d4);}this[_0x2ba2d2(0x367,0x3dc)]=_0x18e979;function _0x2ba2d2(_0x5f1fbb,_0x1e5809){return _0x51a8ec(_0x5f1fbb,_0x1e5809-0x31e);}if(!this[_0x2ba2d2(0x3c9,0x382)])return;_0x18e979?this['canvas']['style']['pointer-events']=_0x2ba2d2(0x470,0x411):this[_0x12c497(-0xdd,-0xd3)]['style']['pointer-events']=_0x2ba2d2(0x368,0x3a5);}get[_0x51a8ec(0xaf,0xe5)](){function _0x32274a(_0xf0c0c4,_0x2812ff){return _0x3e8737(_0xf0c0c4- -0x31c,_0x2812ff);}return this[_0x32274a(-0x19e,-0x1d5)]['particlesNumber'];}set['particlesNumber'](_0x2461e7){function _0x4ee787(_0x88362b,_0x95de20){return _0x51a8ec(_0x95de20,_0x88362b-0x130);}this['options']['particlesNumber']=_0x2461e7,clearTimeout(this['_canrefresh']),this[_0x4ee787(0x1d2,0x251)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x51a8ec(-0x55,0x20)](){return this['options']['speedRate'];}set['speedRate'](_0x5e6ed2){function _0x5c2dfc(_0x71aa92,_0x5ec7b9){return _0x3e8737(_0x71aa92- -0x198,_0x5ec7b9);}this['options']['speedRate']=_0x5e6ed2,this[_0x5c2dfc(-0x8,-0x93)]&&(this['windField']['speedRate']=_0x5e6ed2);}get[_0x51a8ec(0xe6,0x102)](){return this['options']['maxAge'];}set['maxAge'](_0x2ec939){this[_0x3f2c4e(0x3d4,0x380)]['maxAge']=_0x2ec939;function _0x3f2c4e(_0x3f95cb,_0x26428a){return _0x51a8ec(_0x26428a,_0x3f95cb-0x2eb);}function _0x465e36(_0x2e08e9,_0x88c8d){return _0x3e8737(_0x2e08e9- -0x250,_0x88c8d);}this[_0x3f2c4e(0x3e6,0x41d)]&&(this[_0x465e36(-0xc0,-0xf5)]['maxAge']=_0x2ec939);}get[_0x3e8737(0xa5,0x41)](){return this['windData'];}set['data'](_0x1b1d25){function _0x389cae(_0x2a2358,_0x4d1385){return _0x3e8737(_0x2a2358-0x387,_0x4d1385);}this[_0x389cae(0x429,0x3e1)](_0x1b1d25);}['_showHook'](_0x68e063){function _0x3073d1(_0x3defc2,_0x126e21){return _0x3e8737(_0x126e21-0xd4,_0x3defc2);}function _0x3b9a6f(_0x151ea5,_0x504c8e){return _0x51a8ec(_0x504c8e,_0x151ea5- -0x121);}_0x68e063?this[_0x3b9a6f(-0x11c,-0xa0)]():(this['windData']&&(this['options'][_0x3073d1(0x1e9,0x179)]=this[_0x3b9a6f(-0xd8,-0x9e)]),this[_0x3073d1(0x112,0x15f)]());}['_mountedHook'](){function _0x562934(_0x1703c1,_0x3334ce){return _0x51a8ec(_0x3334ce,_0x1703c1- -0x2eb);}this['options'][_0x562934(-0x268,-0x286)]?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}[_0x51a8ec(-0x5f,0x5)](){this[_0x1de2f2(0x127,0xd4)]=this['_createCanvas']();function _0x1de2f2(_0x158493,_0xc22825){return _0x51a8ec(_0x158493,_0xc22825-0x70);}const _0x405ac9={};function _0x32240d(_0x1e99e1,_0x5397bf){return _0x3e8737(_0x5397bf- -0x2ab,_0x1e99e1);}_0x405ac9[_0x1de2f2(0x13c,0x13e)]=!![],this['canvasContext']=this[_0x1de2f2(0x163,0xd4)]['getContext']('2d',_0x405ac9),this['bindEvent'](),this['options']['data']&&this[_0x32240d(-0x247,-0x209)](this['options'][_0x32240d(-0x21b,-0x206)]);}['_removedHook'](){this['clear']();function _0x3a2b90(_0x387424,_0x3e4a4e){return _0x3e8737(_0x3e4a4e- -0x312,_0x387424);}function _0x1dc4bf(_0x3592cd,_0x18f287){return _0x3e8737(_0x3592cd-0x2c0,_0x18f287);}this['unbindEvent'](),this['canvas']&&(this[_0x1dc4bf(0x426,0x43c)][_0x1dc4bf(0x3d9,0x40f)]['removeChild'](this['canvas']),delete this[_0x3a2b90(-0x287,-0x219)]);}['_createCanvas'](){const _0x4193f9=mars3d__namespace['DomUtil']['create']('canvas','mars3d-canvasWind',this[_0x3d8535(0x580,0x57b)][_0x3d8535(0x5a3,0x52e)]);_0x4193f9['style'][_0x3a3b98(-0x209,-0x28c)]=_0x3a3b98(-0x1fd,-0x248);function _0x3a3b98(_0x1871f8,_0x52c53f){return _0x51a8ec(_0x52c53f,_0x1871f8- -0x283);}_0x4193f9[_0x3a3b98(-0x299,-0x2c5)][_0x3d8535(0x5dc,0x55e)]='0px';function _0x3d8535(_0x356f2e,_0x2bab98){return _0x3e8737(_0x2bab98-0x415,_0x356f2e);}return _0x4193f9['style'][_0x3a3b98(-0x1ea,-0x271)]='0px',_0x4193f9['style'][_0x3a3b98(-0x270,-0x21c)]=this['_map'][_0x3a3b98(-0x257,-0x288)]['canvas']['clientWidth']+'px',_0x4193f9[_0x3d8535(0x4cf,0x494)]['height']=this[_0x3a3b98(-0x1b2,-0x218)]['scene']['canvas']['clientHeight']+'px',_0x4193f9['style']['pointerEvents']=this[_0x3a3b98(-0x1c5,-0x16b)]?'auto':_0x3a3b98(-0x1fc,-0x1e9),_0x4193f9[_0x3d8535(0x431,0x494)][_0x3a3b98(-0x25f,-0x1de)]=this['options']['zIndex']??0x9,_0x4193f9['width']=this['_map'][_0x3d8535(0x48a,0x4d6)]['canvas'][_0x3a3b98(-0x1aa,-0x1ec)],_0x4193f9[_0x3a3b98(-0x18c,-0x196)]=this[_0x3a3b98(-0x1b2,-0x1ef)][_0x3a3b98(-0x257,-0x276)]['canvas']['clientHeight'],_0x4193f9;}['resize'](){function _0x51b770(_0xe4e5bb,_0x565ed7){return _0x51a8ec(_0xe4e5bb,_0x565ed7-0x185);}function _0x36788b(_0xde7b08,_0x4e3bb0){return _0x3e8737(_0x4e3bb0-0x124,_0xde7b08);}this['canvas']&&(this[_0x51b770(0x1c7,0x1e9)][_0x51b770(0x153,0x16f)]['width']=this['_map'][_0x51b770(0x158,0x1b1)]['canvas']['clientWidth']+'px',this['canvas']['style']['height']=this['_map']['scene']['canvas'][_0x51b770(0x259,0x269)]+'px',this[_0x36788b(0x211,0x21d)]['width']=this['_map']['scene'][_0x36788b(0x1af,0x21d)][_0x51b770(0x238,0x25e)],this[_0x51b770(0x248,0x1e9)]['height']=this['_map'][_0x36788b(0x19f,0x1e5)]['canvas'][_0x36788b(0x2ca,0x29d)]);}['bindEvent'](){const _0xc046c9=this;let _0x1a6a43=Date['now']();function _0x6e895(_0xa9ab55,_0xba9f67){return _0x51a8ec(_0xa9ab55,_0xba9f67-0xee);}(function _0x302fd3(){if(_0xc046c9[_0x42eeed(-0x3,0x2e)])return;function _0x42eeed(_0x50f9aa,_0x51fb7e){return _0x25e8(_0x50f9aa- -0xf2,_0x51fb7e);}function _0x19a122(_0x46f140,_0x5ed001){return _0x25e8(_0x5ed001-0xe4,_0x46f140);}_0xc046c9['_animateFrame']=window['requestAnimationFrame'](_0x302fd3);if(_0xc046c9[_0x19a122(0x1ba,0x216)]&&_0xc046c9['windField']){const _0x741a97=Date['now'](),_0x3b33b7=_0x741a97-_0x1a6a43;_0x3b33b7>_0xc046c9['frameTime']&&(_0x1a6a43=_0x741a97-_0x3b33b7%_0xc046c9[_0x19a122(0x18b,0x1f0)],_0xc046c9[_0x42eeed(0x39,0x4f)]());}}());function _0x25a53e(_0x219dc4,_0x1eae55){return _0x3e8737(_0x1eae55- -0x180,_0x219dc4);}window[_0x6e895(0x14f,0xe7)](_0x25a53e(-0x39,-0x3f),this['resize']['bind'](this),![]),this[_0x6e895(0x228,0x1ba)]=![],this['mouse_move']=![],this[_0x25a53e(0x15,-0x2)]['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x6e895(0x163,0x17f)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this));}['unbindEvent'](){function _0x3edc28(_0x39f143,_0x59760d){return _0x51a8ec(_0x59760d,_0x39f143-0x3fd);}window[_0x209369(0xc9,0xa5)](this[_0x209369(0x88,0xbb)]),delete this['_animateFrame'];function _0x209369(_0x5e8074,_0x2de5fc){return _0x51a8ec(_0x2de5fc,_0x5e8074-0x41);}window['removeEventListener']('resize',this['resize']),this['options'][_0x3edc28(0x4c8,0x4af)]&&(this['_map'][_0x3edc28(0x4c0,0x51a)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x209369(0x112,0xe7)]['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x3edc28(0x48e,0x484)],this),this[_0x209369(0x112,0x163)][_0x3edc28(0x4c0,0x4c3)](mars3d__namespace['EventType']['mouseUp'],this[_0x209369(0xeb,0xc4)],this),this[_0x209369(0x112,0x160)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x51a8ec(0x10f,0xeb)](_0x15f955){clearTimeout(this[_0x4593e7(0x237,0x1c4)]);function _0x4593e7(_0xe3345e,_0x21b7bb){return _0x51a8ec(_0xe3345e,_0x21b7bb-0x157);}if(!this[_0x58ad9e(0x4a6,0x4f0)]||!this['canvas'])return;this[_0x4593e7(0x1f2,0x1bb)][_0x58ad9e(0x50d,0x47b)]['visibility']=_0x58ad9e(0x54c,0x50f);function _0x58ad9e(_0x5882c1,_0x2e16c5){return _0x51a8ec(_0x5882c1,_0x2e16c5-0x491);}this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;this['redraw']();function _0x9c81f0(_0x1f9ed2,_0x6f1e40){return _0x4593e7(_0x6f1e40,_0x1f9ed2-0x32c);}function _0xc9c978(_0x3ad7fa,_0x3cabec){return _0x4593e7(_0x3ad7fa,_0x3cabec- -0x39d);}this['canvas'][_0x9c81f0(0x46d,0x4aa)][_0x9c81f0(0x475,0x46d)]='visible';},0xc8);}[_0x51a8ec(0x1e,0x91)](_0x395225){function _0x18d6ea(_0x355d0e,_0x46537f){return _0x51a8ec(_0x355d0e,_0x46537f-0x40d);}this['mouse_down']=!![],this['_map']['off'](mars3d__namespace['EventType'][_0x18d6ea(0x4ba,0x492)],this['_onMouseMoveEvent'],this);function _0x2fffb3(_0x550e83,_0x4fadb6){return _0x51a8ec(_0x4fadb6,_0x550e83-0x290);}this[_0x18d6ea(0x4a0,0x4de)]['on'](mars3d__namespace[_0x18d6ea(0x44c,0x45b)][_0x18d6ea(0x49d,0x492)],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x39c686){if(!this['show']||!this[_0x22551e(-0x1a3,-0x20a)])return;function _0x3d552e(_0x339e36,_0x1fada6){return _0x51a8ec(_0x1fada6,_0x339e36- -0x186);}function _0x22551e(_0x410600,_0x222312){return _0x51a8ec(_0x410600,_0x222312- -0x26e);}this['mouse_down']&&(this['canvas'][_0x3d552e(-0x19c,-0x1be)]['visibility']='hidden',this[_0x22551e(-0x25f,-0x1fb)]=!![]);}[_0x3e8737(0x13f,0xcc)](_0x506a23){if(!this['show']||!this['canvas'])return;this[_0x3e89c3(-0x5c,0x6)]['off'](mars3d__namespace[_0x3e89c3(-0xbf,-0x7d)]['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this['mouse_move']&&this[_0x3e89c3(-0xf,-0x1a)]();function _0x1555b5(_0x2821a7,_0x42658c){return _0x51a8ec(_0x2821a7,_0x42658c-0x42d);}function _0x3e89c3(_0x104237,_0x2b27d9){return _0x51a8ec(_0x104237,_0x2b27d9- -0xcb);}this['canvas'][_0x1555b5(0x494,0x417)]['visibility']=_0x3e89c3(-0x13f,-0xb5),this[_0x1555b5(0x492,0x4f9)]=![],this['mouse_move']=![];}[_0x51a8ec(-0x8,0xd)](_0x16c6a7){this['clear']();function _0x2c118f(_0x4ed390,_0x554741){return _0x51a8ec(_0x554741,_0x4ed390-0x458);}this[_0x2c118f(0x4a1,0x4e2)]=_0x16c6a7;function _0x225d05(_0x3f052d,_0x1bf622){return _0x51a8ec(_0x3f052d,_0x1bf622-0x23f);}this[_0x2c118f(0x553,0x4e6)]['setDate'](_0x16c6a7),this['redraw']();}['redraw'](){if(!this['show'])return;this[_0x10b963(-0x100,-0x18b)][_0x54f173(0x121,0x1a5)](this['options']);function _0x54f173(_0x2f6a2c,_0x4f48e9){return _0x3e8737(_0x2f6a2c-0x8a,_0x4f48e9);}function _0x10b963(_0x3fc97e,_0x2d5017){return _0x51a8ec(_0x2d5017,_0x3fc97e- -0x1fb);}this['update']();}[_0x51a8ec(0x70,0x58)](){if(this[_0x84a882(0x429,0x3ff)])return;function _0x10fbdb(_0x89b8c,_0x104e7e){return _0x3e8737(_0x104e7e-0x1ca,_0x89b8c);}function _0x84a882(_0x23d7d7,_0x410e67){return _0x3e8737(_0x410e67-0x30d,_0x23d7d7);}this['_updateIng']=!![];if(this['worker'])this['windField'][_0x10fbdb(0x2ed,0x2b7)]();else{const _0x5a0b92=this[_0x84a882(0x4f1,0x49d)]['getParticles']();this['_drawLines'](_0x5a0b92);}this['_updateIng']=![];}['_drawLines'](_0x5f544f){this['canvasContext'][_0x1fd128(0x542,0x515)]=_0x1fd128(0x476,0x4c3),this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this[_0x1bc909(0x3e2,0x3c8)]['globalCompositeOperation']='lighter',this[_0x1bc909(0x3e2,0x3cb)][_0x1bc909(0x394,0x36d)]=0.9;function _0x1bc909(_0x2a2cce,_0x4c94d5){return _0x3e8737(_0x2a2cce-0x2d0,_0x4c94d5);}function _0x1fd128(_0x49dabd,_0xfc5bd2){return _0x51a8ec(_0x49dabd,_0xfc5bd2-0x493);}const _0x3d7b18=this[_0x1bc909(0x436,0x3be)][_0x1fd128(0x548,0x4bf)]['mode']!==Cesium['SceneMode']['SCENE3D'],_0x2d5399=this[_0x1fd128(0x5b4,0x55a)]*0.25;if(this[_0x1bc909(0x360,0x3d8)])for(let _0x1ccee3=0x0,_0x2ac5c3=_0x5f544f['length'];_0x1ccee3<_0x2ac5c3;_0x1ccee3++){const _0xdb4317=_0x5f544f[_0x1ccee3],_0x16cdf9=this['_tomap'](_0xdb4317['lng'],_0xdb4317['lat'],_0xdb4317),_0x308b30=this[_0x1fd128(0x4f7,0x479)](_0xdb4317[_0x1fd128(0x46c,0x4e7)],_0xdb4317['tlat'],_0xdb4317);if(!_0x16cdf9||!_0x308b30)continue;if(_0x3d7b18&&Math['abs'](_0x16cdf9[0x0]-_0x308b30[0x0])>=_0x2d5399)continue;this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this[_0x1bc909(0x383,0x3b4)],this['canvasContext']['strokeStyle']=this['_colorRamp']['getColor'](_0xdb4317['speed']),this['canvasContext']['moveTo'](_0x16cdf9[0x0],_0x16cdf9[0x1]),this['canvasContext']['lineTo'](_0x308b30[0x0],_0x308b30[0x1]),this[_0x1bc909(0x3e2,0x3f2)]['stroke']();}else{this['canvasContext']['beginPath'](),this[_0x1bc909(0x3e2,0x382)][_0x1fd128(0x4d8,0x4b1)]=this['lineWidth'],this[_0x1fd128(0x51d,0x510)][_0x1bc909(0x34e,0x36b)]=this['color'];for(let _0x211458=0x0,_0x17c322=_0x5f544f['length'];_0x211458<_0x17c322;_0x211458++){const _0x2d0143=_0x5f544f[_0x211458],_0xda13d7=this[_0x1fd128(0x3f7,0x479)](_0x2d0143['lng'],_0x2d0143[_0x1fd128(0x503,0x56b)],_0x2d0143),_0x9d06e1=this['_tomap'](_0x2d0143['tlng'],_0x2d0143[_0x1fd128(0x46b,0x4a8)],_0x2d0143);if(!_0xda13d7||!_0x9d06e1)continue;if(_0x3d7b18&&Math[_0x1fd128(0x5a5,0x531)](_0xda13d7[0x0]-_0x9d06e1[0x0])>=_0x2d5399)continue;this['canvasContext']['moveTo'](_0xda13d7[0x0],_0xda13d7[0x1]),this['canvasContext']['lineTo'](_0x9d06e1[0x0],_0x9d06e1[0x1]);}this['canvasContext'][_0x1fd128(0x484,0x490)]();}}[_0x3e8737(0x7b,0x36)](_0x26efee,_0x341a87,_0x1a643f){function _0x10bb98(_0x398686,_0x1599d9){return _0x3e8737(_0x398686- -0x261,_0x1599d9);}const _0x46326f=Cesium['Cartesian3']['fromDegrees'](_0x26efee,_0x341a87,this[_0x40020c(0x24a,0x1ec)]),_0x500106=this[_0x10bb98(-0xfb,-0xe0)]['scene'];function _0x40020c(_0x25cc71,_0x2fa7f5){return _0x3e8737(_0x25cc71-0x1b7,_0x2fa7f5);}if(_0x500106['mode']===Cesium['SceneMode']['SCENE3D']){const _0x542356=new Cesium[(_0x40020c(0x2c2,0x27f))](_0x500106['globe']['ellipsoid'],_0x500106[_0x10bb98(-0x11d,-0x1a2)]['positionWC']),_0x276b52=_0x542356['isPointVisible'](_0x46326f);if(!_0x276b52)return _0x1a643f['age']=0x0,null;}const _0x34bd15=mars3d__namespace['PointTrans']['toWindowCoordinates'](this[_0x10bb98(-0xfb,-0x136)][_0x40020c(0x278,0x2f9)],_0x46326f);return _0x34bd15?[_0x34bd15['x'],_0x34bd15['y']]:null;}[_0x3e8737(0x152,0x1a3)](){this['windField'][_0x4ab1f0(0x28a,0x26e)]();function _0x4ab1f0(_0x43feda,_0x1a558f){return _0x3e8737(_0x43feda-0x138,_0x1a558f);}function _0x15f0e5(_0x2c3be3,_0x4380e1){return _0x51a8ec(_0x2c3be3,_0x4380e1-0x470);}delete this[_0x4ab1f0(0x216,0x23c)];}['initWorker'](){function _0x37c7f6(_0x4f8cfb,_0x9a9375){return _0x3e8737(_0x4f8cfb- -0x1f4,_0x9a9375);}this[_0x37c7f6(-0xdc,-0xcf)]=new Worker(this[_0x37c7f6(-0x76,-0x37)][_0x37c7f6(-0xdc,-0x165)]),this[_0x37c7f6(-0xdc,-0xe2)]['onmessage']=_0x2a76dc=>{function _0x354ceb(_0x2a5a36,_0x2c753b){return _0x37c7f6(_0x2c753b-0x38d,_0x2a5a36);}this['_drawLines'](_0x2a76dc[_0x354ceb(0x204,0x23e)]['particles']),this['_updateIng2']=![];},this['windField']={'init':_0x5692ad=>{function _0x147308(_0x440c66,_0x44571b){return _0x4b8a9c(_0x44571b- -0x557,_0x440c66);}const _0x4c9bf4={};function _0x5ce9e4(_0x395df2,_0x3ff141){return _0x4b8a9c(_0x3ff141- -0x3a5,_0x395df2);}_0x4c9bf4['type']='init',_0x4c9bf4[_0x5ce9e4(-0x81,-0x3b)]=_0x5692ad,this[_0x5ce9e4(-0x103,-0xa1)][_0x5ce9e4(-0xf5,-0xb5)](_0x4c9bf4);},'setOptions':_0x4be999=>{const _0x4eb1b6={};_0x4eb1b6['type']='setOptions';function _0x11638c(_0x3dee7e,_0x4a953f){return _0x37c7f6(_0x3dee7e- -0xa1,_0x4a953f);}_0x4eb1b6['options']=_0x4be999,this['worker'][_0x11638c(-0x191,-0x176)](_0x4eb1b6);},'setDate':_0xa35422=>{const _0x400980={};_0x400980['type']=_0x2b63b4(0x3,0x17);function _0x2b63b4(_0x54d8f4,_0x5e7a69){return _0x37c7f6(_0x5e7a69-0x149,_0x54d8f4);}_0x400980['data']=_0xa35422,this['worker']['postMessage'](_0x400980);},'update':()=>{function _0x328fa4(_0x108c86,_0x4847f6){return _0x37c7f6(_0x4847f6- -0xd4,_0x108c86);}if(this['_updateIng2'])return;this[_0x328fa4(-0x1f2,-0x221)]=!![];const _0x205057={};_0x205057[_0x328fa4(-0x1d1,-0x14b)]=_0x3ca0c9(0xd6,0x84);function _0x3ca0c9(_0x2fcaa2,_0x14e318){return _0x4b8a9c(_0x2fcaa2- -0x203,_0x14e318);}this['worker'][_0x3ca0c9(0xed,0xd2)](_0x205057);},'clear':()=>{const _0x2608b5={};function _0x5ce798(_0x1e3c1e,_0x124683){return _0x4b8a9c(_0x1e3c1e-0x21e,_0x124683);}_0x2608b5['type']=_0x4629c7(0x120,0x10e);function _0x4629c7(_0x29b401,_0x2b2c05){return _0x4b8a9c(_0x29b401- -0x21e,_0x2b2c05);}this[_0x5ce798(0x522,0x52d)]['postMessage'](_0x2608b5);}};function _0x4b8a9c(_0x41ec89,_0x5e1399){return _0x51a8ec(_0x5e1399,_0x41ec89-0x281);}this['windField'][_0x37c7f6(-0x8c,0x4)](this['options']);}}mars3d__namespace['LayerUtil'][_0x3e8737(0x186,0x1ff)]('canvasWind',CanvasWindLayer),mars3d__namespace[_0x3e8737(0xa0,0x100)][_0x3e8737(0x17c,0x200)]=CanvasWindLayer,mars3d__namespace[_0x51a8ec(0xde,0xad)]=CanvasWindField,mars3d__namespace[_0x51a8ec(0x170,0xf6)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x3e8737(0x17c,0x1f4)]=CanvasWindLayer,exports[_0x51a8ec(0xc,0x51)]=WindLayer,exports[_0x3e8737(0x18b,0x162)]=WindUtil;const _0x45e0ca={};_0x45e0ca['value']=!![],Object['defineProperty'](exports,'__esModule',_0x45e0ca);
14
+ 'use strict';(function(_0x1f33b1,_0x3cc2f3){function _0x3ee2bf(_0x18d67c,_0x2baa9c){return _0x3e30(_0x18d67c-0x14,_0x2baa9c);}function _0x59bc95(_0x14fea9,_0x332dee){return _0x3e30(_0x332dee-0x3cc,_0x14fea9);}const _0x418c04=_0x1f33b1();while(!![]){try{const _0x3d3c85=-parseInt(_0x59bc95(0x504,0x4d7))/0x1*(-parseInt(_0x3ee2bf(0x194,0x224))/0x2)+-parseInt(_0x59bc95(0x4d4,0x4d4))/0x3*(-parseInt(_0x3ee2bf(0x1c2,0x235))/0x4)+parseInt(_0x59bc95(0x494,0x4a5))/0x5+-parseInt(_0x59bc95(0x50f,0x484))/0x6*(-parseInt(_0x59bc95(0x5c2,0x554))/0x7)+-parseInt(_0x59bc95(0x4ca,0x4fc))/0x8*(parseInt(_0x59bc95(0x579,0x55b))/0x9)+parseInt(_0x59bc95(0x523,0x53d))/0xa+parseInt(_0x59bc95(0x4d5,0x46b))/0xb*(-parseInt(_0x59bc95(0x4ea,0x482))/0xc);if(_0x3d3c85===_0x3cc2f3)break;else _0x418c04['push'](_0x418c04['shift']());}catch(_0x4628d5){_0x418c04['push'](_0x418c04['shift']());}}}(_0x35f3,0x37abe));function _interopNamespace(_0x4f8707){function _0xe70596(_0x4eb839,_0x3c312f){return _0x3e30(_0x3c312f- -0x371,_0x4eb839);}if(_0x4f8707&&_0x4f8707['__esModule'])return _0x4f8707;var _0x42307f=Object[_0x1ced17(-0x90,-0x70)](null);function _0x1ced17(_0x32d3eb,_0x17727f){return _0x3e30(_0x17727f- -0x1f1,_0x32d3eb);}return _0x4f8707&&Object[_0xe70596(-0x285,-0x279)](_0x4f8707)['forEach'](function(_0x287767){function _0x548f49(_0x22cddc,_0x2a91cb){return _0x1ced17(_0x22cddc,_0x2a91cb- -0x1c4);}function _0x3897bf(_0x40009a,_0x591089){return _0xe70596(_0x591089,_0x40009a-0x161);}if(_0x287767!==_0x548f49(-0x314,-0x300)){var _0xf2d174=Object[_0x548f49(-0x2d2,-0x28d)](_0x4f8707,_0x287767);Object[_0x548f49(-0x374,-0x2f6)](_0x42307f,_0x287767,_0xf2d174[_0x548f49(-0x267,-0x2cb)]?_0xf2d174:{'enumerable':!![],'get':function(){return _0x4f8707[_0x287767];}});}}),_0x42307f['default']=_0x4f8707,_0x42307f;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$7=mars3d__namespace['Cesium'];function getU(_0x29ae4f,_0x4825ee){const _0x2427a6=_0x29ae4f*Math[_0x4e48f2(0x281,0x28b)](Cesium$7['Math']['toRadians'](_0x4825ee));function _0x4e48f2(_0x36cb09,_0x2e1b21){return _0x3e30(_0x2e1b21-0x1c4,_0x36cb09);}return _0x2427a6;}function _0x35f3(){const _0x491fbc=['Color','xmax','Framebuffer','levmax','createRenderingPrimitives','mouseUp','previousParticlesPosition','destroyParticlesTextures','enabled','TextureMagnificationFilter','Cartesian3','PointTrans','dynamic','context','CanvasWindLayer','nextTrails','Cartesian2','visible','cancelAnimationFrame','arrayBufferView','removeAll','defined','fromGeometry','_onMouseDownEvent','width','commandToExecute','worker','canvasHeight','Compute','116588rvgTJZ','_maxAge','DISABLE_GL_POSITION_LOG_DEPTH','lng','createParticlesTextures','atan2','abs','_onMapWhellEvent','now','TextureMinificationFilter','register','tlat','getFullscreenQuad','shaderProgram','createWindTextures','_onMouseMoveEvent','autoClear','LayerUtil','segmentsDepth','once','toGridXY','colors','fadeOpacity','particlesComputing','color','scene','globe','121LjpFXT','fixedHeight','lon','getColor','getOptions','hidden','viewport','maxParticles','south','Pass','strokeStyle','nextTrailsDepth','data','value','particlesTextureSize','top','fill','type','FLOAT','particles','drawingBufferWidth','framebuffers','default','847908zCcjCK','framebuffer','1164nmfkxi','viewerParameters','xmin','_calc_speedRate','_createCanvas','fromCache','tlng','defineProperty','PrimitiveType','applyViewerParameters','colour','particlesSpeed','latRange','setData','lineWidth','cos','NEAREST','VertexArray','_canrefresh','mouseMove','setGeometry','vertexArray','zIndex','particlesRendering','udata','_onMap_preRenderEvent','vdata','preRender','lonRange','array','Cesium','isPointVisible','_map','869250GpShJJ','_showHook','mouseDown','sources','currentTrailsColor','canvas','clear','lev','_colorRamp','steps','pointer-events','nextParticlesPosition','createRawRenderState','removeEventListener','show','toDegrees','lat','get','TRIANGLES','primitives','geometry','updatePosition','depthMask','clearCommand','update','ymin','add','UNSIGNED_INT','windField','speedFactor','trails','keys','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20norm)\x0a\x0auniform\x20sampler2D\x20H;\x20//\x20particles\x20height\x20textures\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\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0auniform\x20vec2\x20viewerLonRange;\x0auniform\x20vec2\x20viewerLatRange;\x0a\x0aconst\x20float\x20randomCoefficient\x20=\x200.1f;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0aconst\x20float\x20dropRate\x20=\x200.1f;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0aconst\x20float\x20dropRateBump\x20=\x200.1f;\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\x20lonLatLev.x\x20=\x20clamp(lonLatLev.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20minimum.y,\x20maximum.y);\x0a\x20\x20lonLatLev.z\x20=\x20clamp(lonLatLev.z,\x20minimum.z,\x20maximum.z);\x0a\x0a\x20\x20vec3\x20index3D\x20=\x20vec3(0.0f);\x0a\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20index3D.z\x20=\x20ceil((lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0avec4\x20getTextureValue(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20vec4\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D);\x0a\x20\x20return\x20result;\x0a}\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0abool\x20particleNoSpeed(vec3\x20particle)\x20{\x0a\x20\x20vec4\x20speed\x20=\x20getTextureValue(particlesSpeed,\x20particle);\x0a\x20\x20return\x20speed.r\x20==\x200.0f\x20&&\x20speed.g\x20==\x200.0f;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0f);\x0a\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20float\x20height\x20=\x20getTextureValue(H,\x20vec3(randomLon,\x20randomLat,\x20lev)).r;\x0a\x0a\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20height);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20viewerLatRange.x\x20||\x20particle.y\x20>\x20viewerLatRange.y\x20||\x20particle.x\x20<\x20viewerLonRange.x\x20||\x20particle.x\x20>\x20viewerLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec3\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f);\x0a\x20\x20}\x0a}\x0a','canrefresh','addEventListener','clientWidth','initWorker','mouse_move','redraw','createCommand','colorTable','drawingBufferHeight','postProcessingPosition','north','clearFramebuffers','postMessage','mouse_down','12klghgA','STATIC_DRAW','age','10141QfAaya','dropRate','height','getU','_setOptionsHook','style','PixelFormat','bind','wSpeedRange','GeometryAttribute','globeBoundingSphere','#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20W;\x20//\x20upward\x20wind\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\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20vec2\x20wSpeedRange;\x0auniform\x20float\x20speedScaleFactor;\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\x20lonLatLev.x\x20=\x20clamp(lonLatLev.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20minimum.y,\x20maximum.y);\x0a\x20\x20lonLatLev.z\x20=\x20clamp(lonLatLev.z,\x20minimum.z,\x20maximum.z);\x0a\x0a\x20\x20vec3\x20index3D\x20=\x20vec3(0.0f);\x0a\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20//\x20map\x20the\x20z-axis\x20value\x20to\x20the\x20nearest\x20bit\x20plane\x20to\x20ensure\x20that\x20the\x20result\x20is\x20an\x20integer\x0a\x20\x20index3D.z\x20=\x20ceil((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,\x207,\x208,\x209],\x20width\x20=\x202,\x20height\x20=\x202,\x20level\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\x206\x207\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x202\x203\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0afloat\x20interpolateTexture(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x201.0f\x20*\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x201.0f\x20*\x20interval.y;\x0a\x0a\x20\x20float\x20lon0_lat0\x20=\x20getWindComponent(componentTexture,\x20vec3(lon0,\x20lat0,\x20lev));\x0a\x20\x20float\x20lon1_lat0\x20=\x20getWindComponent(componentTexture,\x20vec3(lon1,\x20lat0,\x20lev));\x0a\x20\x20float\x20lon0_lat1\x20=\x20getWindComponent(componentTexture,\x20vec3(lon0,\x20lat1,\x20lev));\x0a\x20\x20float\x20lon1_lat1\x20=\x20getWindComponent(componentTexture,\x20vec3(lon1,\x20lat1,\x20lev));\x0a\x0a\x20\x20float\x20lon_lat0\x20=\x20mix(lon0_lat0,\x20lon1_lat0,\x20lon\x20-\x20lon0);\x0a\x20\x20float\x20lon_lat1\x20=\x20mix(lon0_lat1,\x20lon1_lat1,\x20lon\x20-\x20lon0);\x0a\x20\x20float\x20lon_lat\x20=\x20mix(lon_lat0,\x20lon_lat1,\x20lat\x20-\x20lat0);\x0a\x20\x20return\x20lon_lat;\x0a}\x0a\x0avec3\x20linearInterpolation(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bilinear_interpolation\x0a\x20\x20float\x20u\x20=\x20interpolateTexture(U,\x20lonLatLev);\x0a\x20\x20float\x20v\x20=\x20interpolateTexture(V,\x20lonLatLev);\x0a\x20\x20float\x20w\x20=\x20interpolateTexture(W,\x20lonLatLev);\x0a\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\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\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec3\x20convertSpeedUnitToLonLat(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20float\x20w\x20=\x20speed.z;\x0a\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20return\x20windVectorInLonLatLev;\x0a}\x0a\x0avec3\x20calculateSpeedByRungeKutta2(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec3\x20y_n\x20=\x20lonLatLev;\x0a\x20\x20vec3\x20f_n\x20=\x20linearInterpolation(lonLatLev);\x0a\x20\x20vec3\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec3\x20speed\x20=\x20h\x20*\x20linearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20getRange(vec2\x20range)\x20{\x0a\x20\x20float\x20x1\x20=\x200.0f\x20-\x20range.x;\x0a\x20\x20float\x20x2\x20=\x20range.y\x20-\x200.0f;\x0a\x20\x20if(x1\x20<\x200.0f\x20||\x20x2\x20<\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(abs(x1),\x20abs(x2));\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x20abs(max(x1,\x20x2)));\x0a\x20\x20}\x0a}\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20vec3\x20percent\x20=\x20vec3(0.0f);\x0a\x20\x20vec2\x20uRange\x20=\x20getRange(uSpeedRange);\x0a\x20\x20vec2\x20vRange\x20=\x20getRange(vSpeedRange);\x0a\x20\x20vec2\x20wRange\x20=\x20getRange(wSpeedRange);\x0a\x20\x20if(length(speed.xyz)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x200.0f;\x0a\x20\x20}\x0a\x0a\x20\x20percent.x\x20=\x20(abs(speed.x)\x20-\x20uRange.x)\x20/\x20(uRange.y\x20-\x20uRange.x);\x0a\x20\x20percent.y\x20=\x20(abs(speed.y)\x20-\x20vRange.x)\x20/\x20(vRange.y\x20-\x20vRange.x);\x0a\x20\x20if(wSpeedRange.y\x20==\x20wSpeedRange.x)\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x200.0f;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x20(abs(speed.z)\x20-\x20wRange.x)\x20/\x20(wRange.y\x20-\x20wRange.x);\x0a\x20\x20}\x0a\x20\x20float\x20norm\x20=\x20length(percent);\x0a\x0a\x20\x20return\x20norm;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20speedOrigin\x20=\x20linearInterpolation(lonLatLev);\x0a\x20\x20vec3\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLatLev);\x0a\x20\x20vec3\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLatLev,\x20speed);\x0a\x0a\x20\x20vec4\x20particleSpeed\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speed\x20/\x20speedScaleFactor));\x0a\x20\x20\x20\x20//\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a','CanvasWindField','refreshTimer','normal','_removedHook','clientHeight','_pointerEvents','ShaderProgram','destroy','mod','GeometryAttributes','_onMouseUpEvent','pointerEvents','options','layer','maxAge','pixelDatatype','segments','getOwnPropertyDescriptor','Matrix4','BaseLayer','execute','createTexture','getUVByXY','speed','fillRect','168YQRgrQ','_updateIng','OPAQUE','particlesNumber','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','position','#version\x20300\x20es\x0a\x0ain\x20vec3\x20position;\x0ain\x20vec2\x20st;\x0a\x0aout\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a\x20\x20gl_Position\x20=\x20vec4(position,\x201.0f);\x0a}\x0a','viewRectangleToLonLatRange','ShaderSource','attributeLocations','getColorTexture','min','grid','canvasContext','uniformMap','_mountedHook','SceneMode','onmessage','_tomap','beginPath','_calcUV','lighter','wheel','canvasResize','ComputeCommand','getExtent','EventType','ymax','clampToLatitudeRange','createRenderingTextures','camera','createFramebuffer','reverseY','currentParticlesPosition','computeViewRectangle','RGBA','particleSystem','push','dropRateBump','resize','_addedHook','depthTexture','forEach','ComponentDatatype','addPrimitives','_randomParticle','vertexShaderSource','rows','_data','mode','randomBetween','_speedRate','willReadFrequently','interval','#version\x20300\x20es\x0a\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20sampler2D\x20segmentsColorTexture;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0auniform\x20sampler2D\x20currentTrailsColor;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0auniform\x20float\x20fadeOpacity;\x0a\x0aout\x20vec4\x20fragColor;\x0avoid\x20main()\x20{\x0a\x20\x20vec4\x20pointsColor\x20=\x20texture(segmentsColorTexture,\x20textureCoordinate);\x0a\x20\x20vec4\x20trailsColor\x20=\x20texture(currentTrailsColor,\x20textureCoordinate);\x0a\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0f\x20*\x20trailsColor)\x20/\x20255.0f;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0a\x0a\x20\x20float\x20pointsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20if(pointsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20fragColor\x20+\x20pointsColor;\x0a\x20\x20}\x0a\x20\x20if(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20fragColor\x20+\x20trailsColor;\x0a\x20\x20}\x0a\x20\x20gl_FragDepth\x20=\x20min(pointsDepth,\x20trailsDepth);\x0a}\x0a','DEPTH_COMPONENT','ZERO','canvasWind','length','visibility','TWO_PI','Rectangle','getContext','cols','Draw','4121300RHcqqG','isDestroyed','fragmentShaderSource','east','defines','off','floor','removeChild','speedRate','ceil','setOptions','stroke','currentTrails','max','particlesTextures','20SlcACV','create','primitiveType','windData','fromDegrees','getUVByPoint','Math','isInExtent','8519aJgtHY','windTextures','dimensions','uSpeedRange','sqrt','PixelDatatype','WindUtil','14913kujbIx','textures'];_0x35f3=function(){return _0x491fbc;};return _0x35f3();}function getV(_0x2b642e,_0x2b7d4c){function _0x7800f(_0x20323c,_0x338cf6){return _0x3e30(_0x338cf6-0x24e,_0x20323c);}const _0x18f52a=_0x2b642e*Math['sin'](Cesium$7[_0x7800f(0x3cc,0x3d4)]['toRadians'](_0x2b7d4c));return _0x18f52a;}function getSpeed(_0x1365f9,_0x23fb24){function _0x50efd1(_0x13d710,_0x5df4cf){return _0x3e30(_0x5df4cf- -0x3bd,_0x13d710);}const _0x209206=Math[_0x50efd1(-0x257,-0x231)](Math['pow'](_0x1365f9,0x2)+Math['pow'](_0x23fb24,0x2));return _0x209206;}function getDirection(_0xfb049e,_0xb7badd){let _0x1e93f8=Cesium$7['Math']['toDegrees'](Math[_0x60a156(0x353,0x2f8)](_0xb7badd,_0xfb049e));function _0x60a156(_0x5e8552,_0xfb88ee){return _0x3e30(_0xfb88ee-0x145,_0x5e8552);}return _0x1e93f8+=_0x1e93f8<0x0?0x168:0x0,_0x1e93f8;}const _0xb6216={};_0xb6216['__proto__']=null,_0xb6216[_0x2f2038(0x17f,0x140)]=getU,_0xb6216['getV']=getV,_0xb6216['getSpeed']=getSpeed,_0xb6216['getDirection']=getDirection;var WindUtil=_0xb6216;const Cesium$6=mars3d__namespace[_0x2f2038(0x147,0x127)];class CustomPrimitive{constructor(_0x869f99){this['commandType']=_0x869f99['commandType'],this['geometry']=_0x869f99['geometry'],this['attributeLocations']=_0x869f99['attributeLocations'],this['primitiveType']=_0x869f99['primitiveType'],this[_0x14308f(0x15,-0x5b)]=_0x869f99['uniformMap'];function _0x23c402(_0x164a33,_0x4a09d1){return _0x2f2038(_0x164a33- -0x260,_0x4a09d1);}this[_0x14308f(0x56,-0x3b)]=_0x869f99['vertexShaderSource'],this[_0x14308f(-0x1a,-0x26)]=_0x869f99[_0x23c402(-0x7c,-0xe5)],this['rawRenderState']=_0x869f99['rawRenderState'],this[_0x23c402(-0x138,-0x1ab)]=_0x869f99[_0x14308f(-0xab,-0xe2)],this['outputTexture']=_0x869f99['outputTexture'];function _0x14308f(_0x56d115,_0x33e81d){return _0x281908(_0x56d115,_0x33e81d-0xb4);}this[_0x14308f(-0x174,-0x105)]=_0x869f99[_0x14308f(-0x19a,-0x105)]??![],this['preExecute']=_0x869f99['preExecute'],this['show']=!![],this[_0x14308f(-0x76,0x11)]=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']}));}['createCommand'](_0x216e52){function _0xc7e687(_0x276c9f,_0x324f5b){return _0x2f2038(_0x276c9f-0x1fb,_0x324f5b);}function _0x27d3ea(_0x560821,_0xc3ffcc){return _0x2f2038(_0x560821-0x1ab,_0xc3ffcc);}switch(this['commandType']){case'Draw':{const _0x2ec2af=Cesium$6[_0x27d3ea(0x2e5,0x274)]['fromGeometry']({'context':_0x216e52,'geometry':this['geometry'],'attributeLocations':this[_0x27d3ea(0x355,0x32d)],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']}),_0x16a85c={};_0x16a85c[_0xc7e687(0x40a,0x383)]=_0x216e52,_0x16a85c['attributeLocations']=this['attributeLocations'],_0x16a85c['vertexShaderSource']=this[_0x27d3ea(0x37a,0x393)],_0x16a85c[_0xc7e687(0x3df,0x3e1)]=this['fragmentShaderSource'];const _0x617fd9=Cesium$6[_0xc7e687(0x389,0x349)]['fromCache'](_0x16a85c),_0x565677=Cesium$6['RenderState'][_0xc7e687(0x329,0x2bc)](this['rawRenderState']);return new Cesium$6['DrawCommand']({'owner':this,'vertexArray':_0x2ec2af,'primitiveType':this[_0xc7e687(0x3ee,0x3ae)],'uniformMap':this['uniformMap'],'modelMatrix':Cesium$6[_0xc7e687(0x395,0x368)]['IDENTITY'],'shaderProgram':_0x617fd9,'framebuffer':this['framebuffer'],'renderState':_0x565677,'pass':Cesium$6['Pass'][_0xc7e687(0x39e,0x349)]});}case _0x27d3ea(0x3c9,0x378):{const _0xf26df6={};return _0xf26df6['owner']=this,_0xf26df6['fragmentShaderSource']=this[_0x27d3ea(0x38f,0x359)],_0xf26df6['uniformMap']=this[_0xc7e687(0x3aa,0x392)],_0xf26df6['outputTexture']=this['outputTexture'],_0xf26df6['persists']=!![],new Cesium$6[(_0xc7e687(0x3b4,0x38c))](_0xf26df6);}}}[_0x281908(-0x1e4,-0x181)](_0x165e7c,_0xecfa13){this[_0x2b8124(-0x11a,-0x183)]=_0xecfa13;function _0x4a5977(_0x34402e,_0x199f1f){return _0x281908(_0x34402e,_0x199f1f- -0x91);}const _0x322b4c=Cesium$6['VertexArray']['fromGeometry']({'context':_0x165e7c,'geometry':this[_0x4a5977(-0x258,-0x1f1)],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage'][_0x4a5977(-0x25d,-0x1d5)]});function _0x2b8124(_0x3d66ec,_0x258adf){return _0x281908(_0x3d66ec,_0x258adf- -0x23);}this[_0x2b8124(-0x153,-0xc6)]['vertexArray']=_0x322b4c;}[_0x2f2038(0x162,0x1b8)](_0x2d1425){if(!this[_0x420c60(-0x18f,-0x13a)])return;function _0x52e89c(_0x8551f0,_0x5751a9){return _0x2f2038(_0x8551f0- -0x263,_0x5751a9);}if(_0x2d1425['mode']!==Cesium$6['SceneMode']['SCENE3D'])return;!Cesium$6['defined'](this['commandToExecute'])&&(this['commandToExecute']=this[_0x420c60(-0x95,-0x121)](_0x2d1425['context']));function _0x420c60(_0xcdc251,_0x5e69be){return _0x2f2038(_0x5e69be- -0x292,_0xcdc251);}Cesium$6[_0x420c60(-0x25,-0x7b)](this['preExecute'])&&this['preExecute'](),Cesium$6['defined'](this['clearCommand'])&&_0x2d1425['commandList']['push'](this['clearCommand']),_0x2d1425['commandList']['push'](this['commandToExecute']);}[_0x2f2038(0x1e3,0x1d9)](){return![];}['destroy'](){if(this[_0x1ecce2(-0x2e3,-0x2a1)]){var _0x1b33fe,_0x16fcc1;(_0x1b33fe=this['clearCommand'])!==null&&_0x1b33fe!==void 0x0&&_0x1b33fe['vertexArray']&&this[_0x1ecce2(-0x295,-0x2a1)]['vertexArray'][_0x1e5b22(0x27f,0x256)](),(_0x16fcc1=this[_0x1ecce2(-0x30b,-0x2a1)])!==null&&_0x16fcc1!==void 0x0&&_0x16fcc1['shaderProgram']&&this['clearCommand'][_0x1ecce2(-0x354,-0x300)]['destroy'](),delete this['clearCommand'];}function _0x1ecce2(_0x22e617,_0x5740e7){return _0x2f2038(_0x5740e7- -0x402,_0x22e617);}this['commandToExecute']&&(this['commandToExecute']['vertexArray']&&this[_0x1ecce2(-0x232,-0x1e7)][_0x1e5b22(0x27d,0x205)][_0x1ecce2(-0x243,-0x273)](),this[_0x1ecce2(-0x236,-0x1e7)]['shaderProgram']&&this[_0x1ecce2(-0x248,-0x1e7)][_0x1e5b22(0x18d,0x1c9)]['destroy'](),delete this[_0x1ecce2(-0x25b,-0x1e7)]);function _0x1e5b22(_0xcbd002,_0x3d55d4){return _0x281908(_0xcbd002,_0x3d55d4-0x385);}return Cesium$6['destroyObject'](this);}}const Cesium$5=mars3d__namespace['Cesium'],Util=(function(){const _0x4e2f4a=function(){const _0x4fba03=new Cesium$5['Geometry']({'attributes':new Cesium$5[(_0x174444(0x3ef,0x3cb))]({'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[_0x471cc3(0x378,0x309)][_0x471cc3(0x28c,0x25f)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});function _0x471cc3(_0x60f19b,_0xf630d){return _0x3e30(_0xf630d-0x1ae,_0x60f19b);}function _0x174444(_0xeaa8be,_0x1356ac){return _0x3e30(_0x1356ac-0x2ab,_0xeaa8be);}return _0x4fba03;};function _0x40839e(_0x1be226,_0x15cbf5){return _0x2f2038(_0x15cbf5- -0x20d,_0x1be226);}const _0x1ab69f=function(_0x5da0fa,_0x4d5469){if(Cesium$5['defined'](_0x4d5469)){const _0x2c1ec5={};_0x2c1ec5[_0x24be86(0x59b,0x510)]=_0x4d5469,_0x5da0fa['source']=_0x2c1ec5;}function _0x24be86(_0x4eb72d,_0x15e6e0){return _0x3e30(_0x15e6e0-0x36c,_0x4eb72d);}const _0x565261=new Cesium$5['Texture'](_0x5da0fa);return _0x565261;},_0x5710a6=function(_0x407b2e,_0x2bc02e,_0x5ea8ad){const _0x29f8a6={};_0x29f8a6['context']=_0x407b2e;function _0x3686f0(_0x26c61e,_0x512477){return _0x3e30(_0x512477-0x1d4,_0x26c61e);}_0x29f8a6['colorTextures']=[_0x2bc02e];function _0x46e1e1(_0x2af3be,_0x2cec6e){return _0x3e30(_0x2cec6e- -0x33d,_0x2af3be);}_0x29f8a6[_0x3686f0(0x3bf,0x32d)]=_0x5ea8ad;const _0x52694d=new Cesium$5[(_0x3686f0(0x35d,0x367))](_0x29f8a6);return _0x52694d;},_0x227c4c=function(_0xccd618){const _0x3d33de=!![];function _0xddf3b7(_0x50bbc4,_0x4ad7b5){return _0x3e30(_0x50bbc4-0x314,_0x4ad7b5);}const _0x5445bd=![],_0x3bbef0={};_0x3bbef0[_0xddf3b7(0x3b9,0x417)]=_0xccd618[_0x731d3a(-0x7e,-0x62)],_0x3bbef0['depthTest']=_0xccd618['depthTest'],_0x3bbef0[_0x731d3a(-0x34,-0x50)]=_0xccd618['depthMask'];function _0x731d3a(_0x54961e,_0x30e8d9){return _0x3e30(_0x54961e- -0x123,_0x30e8d9);}_0x3bbef0['blending']=_0xccd618['blending'];const _0x4d1cb8=_0x3bbef0,_0x2e2180=Cesium$5['Appearance']['getDefaultRenderState'](_0x3d33de,_0x5445bd,_0x4d1cb8);return _0x2e2180;};function _0x4c37d6(_0x3b683e,_0x2389fe){return _0x281908(_0x2389fe,_0x3b683e-0x94);}const _0x5c44ce=function(_0x4a9b37){function _0x5c54fc(_0x3ffe5d,_0x37820c){return _0x3e30(_0x37820c- -0xa7,_0x3ffe5d);}const _0x11b819={},_0x32312c=Cesium$5[_0x5c54fc(0x83,0xdf)][_0x5c54fc(0x54,0x78)](_0x4a9b37['west'],Cesium$5[_0x479fd0(-0xf0,-0x170)]['TWO_PI']),_0x2e0fdd=Cesium$5[_0x5c54fc(0xe6,0xdf)]['mod'](_0x4a9b37[_0x479fd0(-0x135,-0x182)],Cesium$5['Math'][_0x5c54fc(0x12b,0xc5)]),_0x42c483=_0x4a9b37['width'];let _0x5d8034,_0x4769a0;_0x42c483>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0x5d8034=0x0,_0x4769a0=Cesium$5['Math']['TWO_PI']):_0x2e0fdd-_0x32312c<_0x42c483?(_0x5d8034=_0x32312c,_0x4769a0=_0x32312c+_0x42c483):(_0x5d8034=_0x32312c,_0x4769a0=_0x2e0fdd);_0x11b819[_0x479fd0(-0x2e1,-0x255)]={'min':Cesium$5['Math']['toDegrees'](_0x5d8034),'max':Cesium$5[_0x479fd0(-0x16e,-0x170)]['toDegrees'](_0x4769a0)};const _0xd53089=_0x4a9b37[_0x5c54fc(0x6a,0x0)],_0x9bcb51=_0x4a9b37[_0x5c54fc(0x67,0x5d)],_0x40b18a=_0x4a9b37[_0x5c54fc(-0x14,0x66)],_0x1331ea=_0x40b18a>Cesium$5[_0x479fd0(-0x1f2,-0x170)]['PI']/0xc?_0x40b18a/0x2:0x0;let _0x56dcf5=Cesium$5[_0x479fd0(-0x1af,-0x170)]['clampToLatitudeRange'](_0xd53089-_0x1331ea),_0x1431cd=Cesium$5[_0x5c54fc(0x16a,0xdf)][_0x5c54fc(0x27,0xa5)](_0x9bcb51+_0x1331ea);_0x56dcf5<-Cesium$5[_0x479fd0(-0x1bd,-0x170)]['PI_OVER_THREE']&&(_0x56dcf5=-Cesium$5[_0x5c54fc(0x99,0xdf)]['PI_OVER_TWO']);_0x1431cd>Cesium$5['Math']['PI_OVER_THREE']&&(_0x1431cd=Cesium$5[_0x5c54fc(0x133,0xdf)]['PI_OVER_TWO']);function _0x479fd0(_0x103650,_0x1364f6){return _0x3e30(_0x1364f6- -0x2f6,_0x103650);}return _0x11b819['lat']={'min':Cesium$5[_0x5c54fc(0x76,0xdf)]['toDegrees'](_0x56dcf5),'max':Cesium$5['Math'][_0x5c54fc(0xd1,0x41)](_0x1431cd)},_0x11b819;},_0x391153={};return _0x391153[_0x4c37d6(-0x129,-0xa9)]=_0x4e2f4a,_0x391153[_0x4c37d6(-0x8d,-0xe9)]=_0x1ab69f,_0x391153[_0x4c37d6(-0x6a,0x26)]=_0x5710a6,_0x391153[_0x40839e(-0x11e,-0xb7)]=_0x227c4c,_0x391153[_0x4c37d6(-0x82,-0xd9)]=_0x5c44ce,_0x391153;}());var fullscreenVert=_0x2f2038(0x1a7,0x158),screenDrawFrag='#version\x20300\x20es\x0a\x0auniform\x20sampler2D\x20trailsColorTexture;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec4\x20trailsColor\x20=\x20texture(trailsColorTexture,\x20textureCoordinate);\x0a\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20if(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20trailsColor;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20}\x0a}\x0a',segmentDrawFrag='#version\x20300\x20es\x0a\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20bool\x20colour;\x0a\x0ain\x20float\x20heightNormalization;\x0ain\x20float\x20speedNormalization;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speedNormalization\x20>\x20zero)\x20{\x0a\x20\x20\x20\x20if(colour)\x20{\x0a\x20\x20\x20\x20\x20\x20fragColor\x20=\x20texture(colorTable,\x20vec2(heightNormalization,\x20zero));\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20fragColor\x20=\x20texture(colorTable,\x20vec2(speedNormalization,\x20zero));\x0a\x20\x20\x20\x20}\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',segmentDrawVert='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20lines\x20drawing\x0ain\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0auniform\x20vec2\x20hRange;\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20vec2\x20wSpeedRange;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0aout\x20float\x20heightNormalization;\x0aout\x20float\x20speedNormalization;\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//\x20read\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\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight\x20+\x20lonLatLev.z;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(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\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0f,\x20360.0f)\x20-\x20180.0f;\x0a\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0f;\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20vec3\x20percent\x20=\x20vec3(0.0f);\x0a\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20if(wSpeedRange.y\x20==\x20wSpeedRange.x)\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x200.0f;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x20(speed.z\x20-\x20wSpeedRange.x)\x20/\x20(wSpeedRange.y\x20-\x20wSpeedRange.x);\x0a\x20\x20}\x0a\x20\x20float\x20norm\x20=\x20length(percent);\x0a\x0a\x20\x20return\x20norm;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20vec3\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20vec3\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20vec3\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rgb;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x20\x20\x20\x20//\x20render\x20lines\x20with\x20triangles\x20and\x20miter\x20joint\x0a\x20\x20\x20\x20//\x20read\x20https://blog.scottlogic.com/2019/11/18/drawing-lines-with-webgl.html\x20for\x20detail\x0a\x20\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20projectedCoordinates.next,\x20offsetSign);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.next\x20+\x20offset;\x0a\x20\x20}\x0a\x0a\x20\x20heightNormalization\x20=\x20(currentPosition.z\x20-\x20hRange.x)\x20/\x20(hRange.y\x20-\x20hRange.x);\x0a\x0a\x20\x20speedNormalization\x20=\x20texture(particlesSpeed,\x20particleIndex).a;\x0a}\x0a';function _0x281908(_0x58e340,_0x54a1eb){return _0x3e30(_0x54a1eb- -0x24d,_0x58e340);}function _0x3e30(_0x581fab,_0x5f4eb6){const _0x35f3f6=_0x35f3();return _0x3e30=function(_0x3e30d2,_0x5c2ec3){_0x3e30d2=_0x3e30d2-0x8d;let _0x4a1924=_0x35f3f6[_0x3e30d2];return _0x4a1924;},_0x3e30(_0x581fab,_0x5f4eb6);}var trailDrawFrag=_0x2f2038(0x1d7,0x214);const Cesium$4=mars3d__namespace[_0x2f2038(0x147,0xce)];class ParticlesRendering{constructor(_0x23e3ee,_0x5b04b0,_0x451976,_0x14f183,_0x312003){this[_0x271065(-0x39,0x19)]=_0x451976[_0x271065(-0x62,-0xa9)]==='height',this[_0x271065(0x52,0xc3)](_0x23e3ee,_0x5b04b0,_0x451976[_0xd12046(-0x33a,-0x36d)]),this['createRenderingFramebuffers'](_0x23e3ee);function _0x271065(_0x3d46ea,_0x250577){return _0x281908(_0x250577,_0x3d46ea-0x152);}function _0xd12046(_0x395f6a,_0x964c8){return _0x2f2038(_0x395f6a- -0x444,_0x964c8);}this['createRenderingPrimitives'](_0x23e3ee,_0x5b04b0,_0x451976,_0x14f183,_0x312003);}['createRenderingTextures'](_0x27b60d,_0xc3aeac,_0x13fc30){const _0x25cdc5={};_0x25cdc5[_0xe0b1c1(-0x70,0x7)]=_0x27b60d,_0x25cdc5[_0xe0b1c1(-0x6a,0x12)]=_0x27b60d[_0xe0b1c1(-0xc0,-0xe4)],_0x25cdc5['height']=_0x27b60d[_0x14ccd9(0x2ac,0x222)],_0x25cdc5['pixelFormat']=Cesium$4['PixelFormat'][_0xe0b1c1(-0x66,-0x44)],_0x25cdc5['pixelDatatype']=Cesium$4['PixelDatatype']['UNSIGNED_BYTE'];const _0x756928=_0x25cdc5,_0x356717={};function _0xe0b1c1(_0x3dc175,_0x26ca2f){return _0x2f2038(_0x26ca2f- -0x208,_0x3dc175);}function _0x14ccd9(_0x22dc79,_0x1f1c8e){return _0x281908(_0x22dc79,_0x1f1c8e-0x36d);}_0x356717[_0xe0b1c1(-0x1a,0x7)]=_0x27b60d,_0x356717[_0x14ccd9(0x2ad,0x2c9)]=_0x27b60d['drawingBufferWidth'],_0x356717['height']=_0x27b60d['drawingBufferHeight'],_0x356717['pixelFormat']=Cesium$4['PixelFormat'][_0x14ccd9(0x2da,0x287)],_0x356717[_0x14ccd9(0x284,0x246)]=Cesium$4['PixelDatatype'][_0xe0b1c1(-0x35,-0xa3)];const _0x236a64=_0x356717,_0x4f1f8d=_0x13fc30[_0xe0b1c1(-0x33,-0x2d)],_0x3fb1fa=new Float32Array(_0x4f1f8d*0x3);for(let _0x2b9e97=0x0;_0x2b9e97<_0x4f1f8d;_0x2b9e97++){const _0x257390=Cesium$4[_0x14ccd9(0x29a,0x2b1)]['fromCssColorString'](_0x13fc30[_0x2b9e97]);_0x3fb1fa[0x3*_0x2b9e97]=_0x257390['red'],_0x3fb1fa[0x3*_0x2b9e97+0x1]=_0x257390['green'],_0x3fb1fa[0x3*_0x2b9e97+0x2]=_0x257390['blue'];}const _0x31817c={'context':_0x27b60d,'width':_0x4f1f8d,'height':0x1,'pixelFormat':Cesium$4['PixelFormat']['RGB'],'pixelDatatype':Cesium$4[_0x14ccd9(0x22e,0x2ad)][_0xe0b1c1(-0xd3,-0xe6)],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4[_0x14ccd9(0x1dc,0x1ad)]['LINEAR'],'magnificationFilter':Cesium$4[_0x14ccd9(0x226,0x2ba)]['LINEAR']})};this['textures']={'segmentsColor':Util['createTexture'](_0x756928),'segmentsDepth':Util[_0x14ccd9(0x266,0x24c)](_0x236a64),'currentTrailsColor':Util['createTexture'](_0x756928),'currentTrailsDepth':Util['createTexture'](_0x236a64),'nextTrailsColor':Util['createTexture'](_0x756928),'nextTrailsDepth':Util['createTexture'](_0x236a64),'colorTable':Util['createTexture'](_0x31817c,_0x3fb1fa)};}['createRenderingFramebuffers'](_0x196eb1){function _0x3750f8(_0x287c10,_0x285023){return _0x2f2038(_0x287c10-0x3e,_0x285023);}function _0x214080(_0x28b538,_0x4d0ac8){return _0x281908(_0x4d0ac8,_0x28b538-0x32f);}this['framebuffers']={'segments':Util['createFramebuffer'](_0x196eb1,this[_0x3750f8(0x23f,0x21e)]['segmentsColor'],this['textures'][_0x3750f8(0x145,0x119)]),'currentTrails':Util['createFramebuffer'](_0x196eb1,this['textures'][_0x214080(0x1bf,0x16d)],this['textures']['currentTrailsDepth']),'nextTrails':Util['createFramebuffer'](_0x196eb1,this[_0x3750f8(0x23f,0x1c6)]['nextTrailsColor'],this['textures'][_0x214080(0x18c,0x1e4)])};}['createSegmentsGeometry'](_0x55dc7b){const _0xe0ff41=0x4;let _0x29bfd0=[];for(let _0x3fdac9=0x0;_0x3fdac9<_0x55dc7b['particlesTextureSize'];_0x3fdac9++){for(let _0x2fbdd8=0x0;_0x2fbdd8<_0x55dc7b['particlesTextureSize'];_0x2fbdd8++){for(let _0xa17a40=0x0;_0xa17a40<_0xe0ff41;_0xa17a40++){_0x29bfd0['push'](_0x3fdac9/_0x55dc7b['particlesTextureSize']),_0x29bfd0['push'](_0x2fbdd8/_0x55dc7b['particlesTextureSize']);}}}function _0x136cab(_0xc95568,_0x543871){return _0x281908(_0xc95568,_0x543871- -0xf4);}_0x29bfd0=new Float32Array(_0x29bfd0);let _0x3e7f5d=[];for(let _0x3f83d8=0x0;_0x3f83d8<_0x55dc7b['maxParticles'];_0x3f83d8++){_0x3e7f5d[_0x177134(0x347,0x315)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x3e7f5d=new Float32Array(_0x3e7f5d);let _0x325502=[];for(let _0x5495ab=0x0,_0x2c739c=0x0;_0x5495ab<_0x55dc7b['maxParticles'];_0x5495ab++){_0x325502['push'](_0x2c739c+0x0,_0x2c739c+0x1,_0x2c739c+0x2,_0x2c739c+0x2,_0x2c739c+0x1,_0x2c739c+0x3),_0x2c739c+=_0xe0ff41;}_0x325502=new Uint32Array(_0x325502);function _0x177134(_0x3d7a3f,_0x2a356a){return _0x2f2038(_0x3d7a3f-0x181,_0x2a356a);}const _0x4039fa=new Cesium$4['Geometry']({'attributes':new Cesium$4[(_0x136cab(-0x22e,-0x221))]({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype'][_0x177134(0x2a3,0x285)],'componentsPerAttribute':0x2,'values':_0x29bfd0}),'normal':new Cesium$4[(_0x177134(0x306,0x304))]({'componentDatatype':Cesium$4['ComponentDatatype'][_0x136cab(-0x273,-0x290)],'componentsPerAttribute':0x3,'values':_0x3e7f5d})}),'indices':_0x325502});return _0x4039fa;}[_0x281908(-0x26,-0xb8)](_0x133738,_0x13ea5e,_0x581516,_0x124ec9,_0x52f3c8){const _0x419340=this,_0xa9c7e2={};_0xa9c7e2['st']=0x0,_0xa9c7e2[_0x368069(0x260,0x258)]=0x1;const _0x24fda6={};_0x24fda6[_0xb916b(0x3d,0x79)]=[segmentDrawVert];const _0x5cc441={};_0x5cc441['sources']=[segmentDrawFrag];const _0x52f718={};_0x52f718[_0x368069(0x260,0x2d8)]=!![];const _0x43fb5f={};function _0xb916b(_0x1a4d22,_0xd9dc3b){return _0x281908(_0x1a4d22,_0xd9dc3b-0x1ea);}_0x43fb5f['viewport']=undefined,_0x43fb5f['depthTest']=_0x52f718,_0x43fb5f[_0x368069(0x19d,0x22e)]=!![];const _0x26a9ac={};_0x26a9ac['position']=0x0,_0x26a9ac['st']=0x1;const _0x39c445={};_0x39c445[_0xb916b(0x179,0x112)]=[_0x368069(0x373,0x2ef)],_0x39c445['sources']=[fullscreenVert];const _0x438dd9={};_0x438dd9['defines']=[_0x368069(0x2c2,0x273)],_0x438dd9['sources']=[trailDrawFrag];const _0x4ad043={};_0x4ad043['position']=0x0,_0x4ad043['st']=0x1;const _0x51078b={};function _0x368069(_0x32bf5e,_0x47c213){return _0x281908(_0x32bf5e,_0x47c213-0x38c);}_0x51078b['defines']=[_0xb916b(0x114,0x14d)],_0x51078b['sources']=[fullscreenVert];const _0x48f6a5={};_0x48f6a5[_0x368069(0x288,0x2b4)]=[_0x368069(0x298,0x273)],_0x48f6a5[_0x368069(0x23a,0x21b)]=[screenDrawFrag];const _0x5d84ea={};_0x5d84ea[_0xb916b(0xbb,0x136)]=![];const _0x1a66eb={};_0x1a66eb[_0xb916b(0x1aa,0x136)]=!![],this[_0x368069(0x22c,0x22b)]={'segments':new CustomPrimitive({'commandType':_0xb916b(0x19f,0x10d),'attributeLocations':_0xa9c7e2,'geometry':this['createSegmentsGeometry'](_0x581516),'primitiveType':Cesium$4['PrimitiveType'][_0xb916b(0x29,0x88)],'uniformMap':{'previousParticlesPosition':function(){function _0x3db7e5(_0x17fba0,_0x476d0b){return _0x368069(_0x17fba0,_0x476d0b- -0x8e);}function _0x220051(_0x27fd3e,_0x2e5360){return _0xb916b(_0x2e5360,_0x27fd3e-0x287);}return _0x52f3c8[_0x220051(0x3a3,0x3ed)][_0x220051(0x3bb,0x415)];},'currentParticlesPosition':function(){function _0x149c2(_0x5f40b2,_0x5cbc57){return _0xb916b(_0x5cbc57,_0x5f40b2-0x17c);}return _0x52f3c8['particlesTextures'][_0x149c2(0x26a,0x1e3)];},'postProcessingPosition':function(){return _0x52f3c8['particlesTextures']['postProcessingPosition'];},'particlesSpeed':function(){function _0x1913cf(_0x3f5e5b,_0xb87b83){return _0x368069(_0xb87b83,_0x3f5e5b- -0x264);}function _0x3c3804(_0x50fd67,_0xd19f80){return _0xb916b(_0xd19f80,_0x50fd67- -0x1a5);}return _0x52f3c8[_0x1913cf(0x5a,0x61)][_0x3c3804(-0x145,-0xb4)];},'colorTable':function(){function _0x1451eb(_0x5b68ad,_0x2454c5){return _0xb916b(_0x5b68ad,_0x2454c5-0x3ad);}function _0x4a5a6d(_0x4ac387,_0x1fe882){return _0x368069(_0x1fe882,_0x4ac387- -0x1b6);}return _0x419340[_0x4a5a6d(0x119,0xd9)][_0x1451eb(0x426,0x44b)];},'aspect':function(){function _0x2322b4(_0x783b55,_0x318e0b){return _0xb916b(_0x318e0b,_0x783b55- -0x176);}return _0x133738[_0x2322b4(-0x126,-0x158)]/_0x133738['drawingBufferHeight'];},'H':function(){return _0x13ea5e['H']['array'];},'hRange':function(){function _0x2ed34d(_0x5be38a,_0x347848){return _0x368069(_0x5be38a,_0x347848- -0x2d3);}return new Cesium$4['Cartesian2'](_0x13ea5e['H'][_0x2ed34d(-0x2b,-0x59)],_0x13ea5e['H']['max']);},'uSpeedRange':function(){function _0x3f1442(_0x50c1ec,_0x3f7272){return _0xb916b(_0x3f7272,_0x50c1ec- -0x36a);}function _0x2b954f(_0x321ef7,_0x3e966c){return _0xb916b(_0x321ef7,_0x3e966c-0x16e);}return new Cesium$4['Cartesian2'](_0x13ea5e['U'][_0x3f1442(-0x292,-0x292)],_0x13ea5e['U'][_0x2b954f(0x242,0x289)]);},'vSpeedRange':function(){return new Cesium$4['Cartesian2'](_0x13ea5e['V']['min'],_0x13ea5e['V']['max']);},'wSpeedRange':function(){function _0x39bfb8(_0x1f37a4,_0x3a3c0c){return _0x368069(_0x3a3c0c,_0x1f37a4-0x7a);}function _0x2761ac(_0x40b60b,_0x30fa57){return _0x368069(_0x40b60b,_0x30fa57-0x104);}return new Cesium$4[(_0x39bfb8(0x35a,0x3b6))](_0x13ea5e['W'][_0x2761ac(0x3d2,0x37e)],_0x13ea5e['W']['max']);},'pixelSize':function(){return _0x124ec9['pixelSize'];},'lineWidth':function(){return _0x581516['lineWidth'];},'particleHeight':function(){return _0x581516['particleHeight'];},'colour':function(){return _0x419340['colour'];}},'vertexShaderSource':new Cesium$4[(_0xb916b(0x81,0xd5))](_0x24fda6),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0x5cc441),'rawRenderState':Util['createRawRenderState'](_0x43fb5f),'framebuffer':this['framebuffers'][_0xb916b(0x8d,0xc4)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':_0x368069(0x31c,0x2af),'attributeLocations':_0x26a9ac,'geometry':Util[_0x368069(0x236,0x1cf)](),'primitiveType':Cesium$4[_0xb916b(0x94,0x5d)][_0xb916b(0xc6,0x88)],'uniformMap':{'segmentsColorTexture':function(){function _0x5b5c0c(_0x296cfd,_0x39b860){return _0x368069(_0x296cfd,_0x39b860- -0x368);}return _0x419340[_0x5b5c0c(-0x43,-0x99)]['segmentsColor'];},'segmentsDepthTexture':function(){function _0x311b1a(_0x38b224,_0x5b761f){return _0x368069(_0x5b761f,_0x38b224- -0x20b);}return _0x419340[_0x311b1a(0xc4,0x11f)]['segmentsDepth'];},'currentTrailsColor':function(){function _0x36f81e(_0x403f79,_0x3eb7d1){return _0x368069(_0x403f79,_0x3eb7d1- -0x45d);}function _0x36d936(_0x22c1ed,_0x3c19b8){return _0xb916b(_0x22c1ed,_0x3c19b8- -0x362);}return _0x419340[_0x36d936(-0x319,-0x311)][_0x36f81e(-0x1c1,-0x1a1)]['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0x4f2dcd(_0x435fc2,_0x56e9a4){return _0x368069(_0x435fc2,_0x56e9a4-0x8f);}function _0x421d97(_0x2e08cf,_0x27ff8e){return _0xb916b(_0x27ff8e,_0x2e08cf- -0x1ff);}return _0x419340[_0x4f2dcd(0x27a,0x282)]['currentTrails'][_0x421d97(-0x109,-0xce)];},'fadeOpacity':function(){return _0x581516['fadeOpacity'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x39c445),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0x438dd9),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction']['ALWAYS']},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function(){function _0x7d5137(_0x4d9133,_0x29f9bc){return _0x368069(_0x4d9133,_0x29f9bc- -0x42c);}if(_0x581516['dynamic']){const _0x21f725=_0x419340['framebuffers']['currentTrails'];_0x419340[_0x7d5137(-0x1ad,-0x239)]['currentTrails']=_0x419340['framebuffers']['nextTrails'],_0x419340[_0x7d5137(-0x2ad,-0x239)]['nextTrails']=_0x21f725;}function _0x153e75(_0x44f26c,_0x18ea93){return _0x368069(_0x44f26c,_0x18ea93- -0x2bb);}_0x419340[_0x7d5137(-0x1f3,-0x201)]['trails']['commandToExecute'][_0x7d5137(-0x240,-0x236)]=_0x419340['framebuffers'][_0x153e75(0x2c,0x24)],_0x419340['primitives'][_0x153e75(-0x10f,-0x85)][_0x153e75(-0xd2,-0x8c)]['framebuffer']=_0x419340[_0x7d5137(-0x25f,-0x239)][_0x7d5137(-0x111,-0x14d)];}}),'screen':new CustomPrimitive({'commandType':_0x368069(0x2d2,0x2af),'attributeLocations':_0x4ad043,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'trailsColorTexture':function(){function _0x50c551(_0x281b2f,_0x7c1bc5){return _0x368069(_0x281b2f,_0x7c1bc5- -0x49d);}function _0x37b518(_0x3a23b5,_0x120fb6){return _0xb916b(_0x3a23b5,_0x120fb6- -0x233);}return _0x419340['framebuffers'][_0x37b518(-0xdb,-0xf6)][_0x37b518(-0x1c9,-0x15c)](0x0);},'trailsDepthTexture':function(){return _0x419340['framebuffers']['nextTrails']['depthTexture'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x51078b),'fragmentShaderSource':new Cesium$4[(_0x368069(0x2a4,0x277))](_0x48f6a5),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':_0x5d84ea,'depthMask':!![],'blending':_0x1a66eb}),'framebuffer':undefined})};}}var CalculateSpeedShader=_0x2f2038(0x187,0x15a),PostProcessingPositionShader=_0x2f2038(0x16a,0xfb),UpdatePositionShader='#version\x20300\x20es\x0a\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20norm)\x20Unit\x20converted\x20to\x20degrees\x20of\x20longitude\x20and\x20latitude\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20speed;\x0a\x20\x20if(length(speed.rgb)\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20}\x0a}\x0a';function _0x2f2038(_0xfecaa5,_0x5df157){return _0x3e30(_0xfecaa5-0x71,_0x5df157);}const Cesium$3=mars3d__namespace['Cesium'];class ParticlesComputing{constructor(_0x3c7b31,_0x220a47,_0x180704,_0xdbb63a){function _0x4542c6(_0x2c8211,_0x1ded69){return _0x2f2038(_0x1ded69- -0x457,_0x2c8211);}this['data']=_0x220a47,this[_0x4542c6(-0x2ca,-0x354)](_0x3c7b31,_0x220a47),this[_0x2f6252(0x4d,0xb)](_0x3c7b31,_0x180704,_0xdbb63a);function _0x2f6252(_0x3d7874,_0xf40506){return _0x2f2038(_0xf40506- -0x218,_0x3d7874);}this['createComputingPrimitives'](_0x220a47,_0x180704,_0xdbb63a);}[_0x281908(-0x1c2,-0x1bb)](_0x131289,_0x3da103){var _0x57daf6;const _0x466992={'context':_0x131289,'width':_0x3da103[_0x3716c9(0x1ea,0x215)]['lon'],'height':_0x3da103[_0x4507f0(0x2aa,0x2d5)][_0x4507f0(0x209,0x1b9)]*(_0x3da103['dimensions'][_0x4507f0(0x200,0x26f)]||0x1),'pixelFormat':Cesium$3[_0x4507f0(0x231,0x233)]['RED'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter'][_0x3716c9(0x1c1,0x153)]})};function _0x4507f0(_0x4ff47c,_0xcca0f5){return _0x281908(_0xcca0f5,_0x4ff47c-0x36d);}function _0x3716c9(_0x56fbb3,_0x150277){return _0x2f2038(_0x150277-0x1a,_0x56fbb3);}this['windTextures']={'U':Util['createTexture'](_0x466992,_0x3da103['U']['array']),'V':Util[_0x3716c9(0x1d1,0x1b7)](_0x466992,_0x3da103['V'][_0x4507f0(0x1f5,0x1af)]),'W':Util[_0x4507f0(0x24c,0x1d9)](_0x466992,((_0x57daf6=_0x3da103['W'])===null||_0x57daf6===void 0x0?void 0x0:_0x57daf6['array'])??_0x3da103['U']['array']),'H':Util['createTexture'](_0x466992,_0x3da103['H']['array'])};}[_0x281908(-0x108,-0x9b)](_0x47680e,_0x51c6bf,_0x122732){function _0x4dbd52(_0x17bada,_0x5b1739){return _0x2f2038(_0x5b1739-0xd2,_0x17bada);}const _0x4aa453={'context':_0x47680e,'width':_0x51c6bf['particlesTextureSize'],'height':_0x51c6bf[_0x25a8e8(0x25a,0x1e1)],'pixelFormat':Cesium$3['PixelFormat'][_0x4dbd52(0x316,0x296)],'pixelDatatype':Cesium$3[_0x4dbd52(0x2ca,0x2d0)]['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3['TextureMinificationFilter'][_0x4dbd52(0x290,0x20b)],'magnificationFilter':Cesium$3[_0x25a8e8(0x347,0x378)][_0x25a8e8(0x275,0x2a9)]})},_0x2af9cb=this['randomizeParticles'](_0x51c6bf['maxParticles'],_0x122732),_0x25d16c=new Float32Array(0x4*_0x51c6bf['maxParticles'])[_0x4dbd52(0x224,0x1f2)](0x0);function _0x25a8e8(_0x49866d,_0x32b6ef){return _0x281908(_0x32b6ef,_0x49866d-0x3fa);}this['particlesTextures']={'previousParticlesPosition':Util['createTexture'](_0x4aa453,_0x2af9cb),'currentParticlesPosition':Util['createTexture'](_0x4aa453,_0x2af9cb),'nextParticlesPosition':Util['createTexture'](_0x4aa453,_0x2af9cb),'postProcessingPosition':Util[_0x4dbd52(0x2f3,0x26f)](_0x4aa453,_0x2af9cb),'particlesSpeed':Util[_0x4dbd52(0x2eb,0x26f)](_0x4aa453,_0x25d16c)};}['randomizeParticles'](_0x367fbf,_0x23ba53){const _0x3b242f=new Float32Array(0x4*_0x367fbf);for(let _0x49369f=0x0;_0x49369f<_0x367fbf;_0x49369f++){_0x3b242f[0x4*_0x49369f]=Cesium$3[_0x1198cc(0x36f,0x3db)][_0xa847d4(0x35,-0x2c)](_0x23ba53['lonRange']['x'],_0x23ba53[_0xa847d4(-0x9d,-0xba)]['y']),_0x3b242f[0x4*_0x49369f+0x1]=Cesium$3[_0x1198cc(0x36f,0x32b)][_0xa847d4(0x1a,-0x2c)](_0x23ba53['latRange']['x'],_0x23ba53['latRange']['y']),_0x3b242f[0x4*_0x49369f+0x2]=Cesium$3['Math']['randomBetween'](this[_0x1198cc(0x294,0x209)]['lev']['min'],this['data']['lev'][_0xa847d4(-0x64,-0x10)]),_0x3b242f[0x4*_0x49369f+0x3]=0x0;}function _0xa847d4(_0x12e6f3,_0x172ca0){return _0x2f2038(_0x172ca0- -0x1ff,_0x12e6f3);}function _0x1198cc(_0x5c5377,_0x37e14f){return _0x281908(_0x37e14f,_0x5c5377-0x436);}return _0x3b242f;}['getValidRange'](_0x33aea6){function _0x3a188a(_0x10e06b,_0x113fa1){return _0x281908(_0x10e06b,_0x113fa1-0x4fc);}const _0x2bbe22=[_0x33aea6[_0xd67c11(0xb4,0x3c)][_0xd67c11(-0x50,-0xad)],_0x33aea6['dimensions']['lat'],_0x33aea6['dimensions'][_0xd67c11(-0x8f,-0x6e)]],_0xbac499=[_0x33aea6[_0x3a188a(0x3e0,0x350)][_0x3a188a(0x3dc,0x3ea)],_0x33aea6[_0x3a188a(0x40f,0x398)]['min'],_0x33aea6['lev']['min']],_0x440f4d=[_0x33aea6['lon'][_0xd67c11(0x7d,0x30)],_0x33aea6['lat']['max'],_0x33aea6[_0x3a188a(0x341,0x38f)]['max']],_0x4ff8c5=[(_0x440f4d[0x0]-_0xbac499[0x0])/(_0x2bbe22[0x0]-0x1),(_0x440f4d[0x1]-_0xbac499[0x1])/(_0x2bbe22[0x1]-0x1),_0x2bbe22[0x2]>0x1?(_0x440f4d[0x2]-_0xbac499[0x2])/(_0x2bbe22[0x2]-0x1):0x1],_0x3f3724=Math['floor'](Math['random']()*_0x33aea6['U'][_0xd67c11(0x7,-0x79)]['length']),_0x135fbe=_0x3f3724%(_0x2bbe22[0x0]*_0x2bbe22[0x1]),_0x55ed9e=Math['floor'](_0x135fbe/_0x2bbe22[0x0]),_0x42dcd1=_0x135fbe%_0x2bbe22[0x0],_0x40b625=Cesium$3['Math']['randomBetween'](_0xbac499[0x0]+_0x42dcd1*_0x4ff8c5[0x0],_0xbac499[0x0]+(_0x42dcd1+0x1)*_0x4ff8c5[0x0]),_0x3038e6=Cesium$3[_0x3a188a(0x48a,0x435)]['randomBetween'](_0xbac499[0x1]+(_0x55ed9e-0x1)*_0x4ff8c5[0x1],_0xbac499[0x1]+_0x55ed9e*_0x4ff8c5[0x1]),_0x1e0e05=_0x33aea6['H']['array'][_0x3f3724]||0x0;function _0xd67c11(_0x22b062,_0x17246b){return _0x2f2038(_0x17246b- -0x1bf,_0x22b062);}return[_0x40b625,_0x3038e6,_0x1e0e05];}['destroyParticlesTextures'](){function _0x1e46ed(_0x26d445,_0x4bfd2c){return _0x2f2038(_0x26d445- -0x153,_0x4bfd2c);}Object['keys'](this[_0x1e46ed(0x9d,0x11a)])['forEach'](_0xbb51e6=>{function _0x9dbafb(_0x2f32d3,_0x205472){return _0x1e46ed(_0x205472-0x3c6,_0x2f32d3);}this['particlesTextures'][_0xbb51e6][_0x9dbafb(0x3b9,0x402)]();});}['createComputingPrimitives'](_0x594cd5,_0x16f1df,_0x326bc7){const _0xaf20e4=new Cesium$3['Cartesian3'](_0x594cd5['dimensions']['lon'],_0x594cd5[_0x3eb3a3(0x239,0x210)]['lat'],_0x594cd5['dimensions'][_0x3eb3a3(0x12d,0x166)]),_0x3920c6=new Cesium$3['Cartesian3'](_0x594cd5[_0x1736d7(0x303,0x320)][_0x1736d7(0x39d,0x40f)],_0x594cd5[_0x3eb3a3(0x1f9,0x16f)][_0x3eb3a3(0x170,0x1c1)],_0x594cd5[_0x1736d7(0x342,0x394)]['min']),_0x2de285=new Cesium$3['Cartesian3'](_0x594cd5['lon'][_0x3eb3a3(0x1a8,0x204)],_0x594cd5[_0x1736d7(0x34b,0x2c5)]['max'],_0x594cd5['lev']['max']),_0x50da0e=new Cesium$3[(_0x1736d7(0x3fd,0x46d))]((_0x2de285['x']-_0x3920c6['x'])/(_0xaf20e4['x']-0x1),(_0x2de285['y']-_0x3920c6['y'])/(_0xaf20e4['y']-0x1),_0xaf20e4['z']>0x1?(_0x2de285['z']-_0x3920c6['z'])/(_0xaf20e4['z']-0x1):0x1),_0x5b638e=new Cesium$3['Cartesian2'](_0x594cd5['lon'][_0x3eb3a3(0x13e,0x1c1)],_0x594cd5['lon'][_0x1736d7(0x3e0,0x3e3)]),_0x2de566=new Cesium$3['Cartesian2'](_0x594cd5['lat'][_0x1736d7(0x39d,0x329)],_0x594cd5['lat']['max']),_0x140dee=new Cesium$3['Cartesian2'](_0x594cd5['U'][_0x1736d7(0x39d,0x344)],_0x594cd5['U'][_0x1736d7(0x3e0,0x41b)]),_0x4dc2cf=new Cesium$3[(_0x1736d7(0x403,0x479))](_0x594cd5['V']['min'],_0x594cd5['V'][_0x1736d7(0x3e0,0x43e)]),_0x222be0=new Cesium$3['Cartesian2'](_0x594cd5['W']['min'],_0x594cd5['W'][_0x3eb3a3(0x180,0x204)]),_0x22d5af=this;function _0x1736d7(_0x434bd5,_0x34f17e){return _0x2f2038(_0x434bd5-0x1f1,_0x34f17e);}function _0x3eb3a3(_0x4c4be0,_0x5360a4){return _0x2f2038(_0x5360a4-0x15,_0x4c4be0);}const _0x1301ed={};_0x1301ed['U']=function(){return _0x22d5af['windTextures']['U'];},_0x1301ed['V']=function(){return _0x22d5af['windTextures']['V'];},_0x1301ed['W']=function(){return _0x22d5af['windTextures']['W'];},_0x1301ed['currentParticlesPosition']=function(){function _0x5631f2(_0x4be105,_0x272e40){return _0x1736d7(_0x4be105- -0x197,_0x272e40);}return _0x22d5af[_0x5631f2(0x24a,0x286)]['currentParticlesPosition'];},_0x1301ed['dimension']=function(){return _0xaf20e4;},_0x1301ed['minimum']=function(){return _0x3920c6;},_0x1301ed['maximum']=function(){return _0x2de285;},_0x1301ed[_0x1736d7(0x3c7,0x3e7)]=function(){return _0x50da0e;},_0x1301ed[_0x3eb3a3(0x19b,0x211)]=function(){return _0x140dee;},_0x1301ed['vSpeedRange']=function(){return _0x4dc2cf;},_0x1301ed[_0x1736d7(0x375,0x365)]=function(){return _0x222be0;},_0x1301ed['speedScaleFactor']=function(){return _0x326bc7['pixelSize']*_0x16f1df['speedFactor'];};const _0x556d2d={};_0x556d2d[_0x1736d7(0x33e,0x2e3)]=[CalculateSpeedShader];const _0x1a3913={};_0x1a3913['sources']=[UpdatePositionShader];const _0x293b42={};_0x293b42['sources']=[PostProcessingPositionShader],this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':_0x1301ed,'fragmentShaderSource':new Cesium$3[(_0x1736d7(0x39a,0x3a1))](_0x556d2d),'outputTexture':this[_0x3eb3a3(0x214,0x205)][_0x3eb3a3(0x138,0x149)],'preExecute':function(){if(_0x16f1df!==undefined&&_0x16f1df['dynamic']){const _0x16d6bb=_0x22d5af['particlesTextures']['previousParticlesPosition'];_0x22d5af['particlesTextures'][_0x3c9779(0x255,0x1d5)]=_0x22d5af['particlesTextures']['currentParticlesPosition'],_0x22d5af[_0x3c9779(0x23d,0x2a6)][_0x3c9779(0x20f,0x29b)]=_0x22d5af[_0x5e0c47(-0x179,-0xec)]['postProcessingPosition'],_0x22d5af['particlesTextures'][_0x3c9779(0x1c1,0x194)]=_0x16d6bb;}function _0x3c9779(_0x37a7f,_0x32c957){return _0x3eb3a3(_0x32c957,_0x37a7f-0x38);}function _0x5e0c47(_0x4bba9b,_0x1ab271){return _0x1736d7(_0x4bba9b- -0x55a,_0x1ab271);}_0x22d5af['primitives']['calculateSpeed']['commandToExecute']['outputTexture']=_0x22d5af['particlesTextures'][_0x5e0c47(-0x235,-0x2ac)];}}),'updatePosition':new CustomPrimitive({'commandType':_0x3eb3a3(0x21f,0x233),'uniformMap':{'currentParticlesPosition':function(){return _0x22d5af['particlesTextures']['currentParticlesPosition'];},'particlesSpeed':function(){return _0x22d5af['particlesTextures']['particlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x1a3913),'outputTexture':this['particlesTextures'][_0x1736d7(0x346,0x2ce)],'preExecute':function(){function _0x4fbc9a(_0xa52427,_0x4e9797){return _0x1736d7(_0x4e9797- -0x48e,_0xa52427);}function _0x28d13a(_0x22535a,_0x411fbb){return _0x3eb3a3(_0x22535a,_0x411fbb- -0x396);}_0x22d5af[_0x4fbc9a(-0x193,-0x140)][_0x28d13a(-0x1b5,-0x222)][_0x28d13a(-0x197,-0x166)]['outputTexture']=_0x22d5af[_0x28d13a(-0x17a,-0x191)][_0x28d13a(-0x1b9,-0x22c)];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function(){return _0x22d5af['particlesTextures']['nextParticlesPosition'];},'particlesSpeed':function(){function _0x3e4caa(_0x222205,_0x30f43a){return _0x1736d7(_0x30f43a- -0x598,_0x222205);}return _0x22d5af[_0x3e4caa(-0x223,-0x1b7)]['particlesSpeed'];},'viewerLonRange':function(){function _0x5552ea(_0x924545,_0x46c402){return _0x3eb3a3(_0x924545,_0x46c402- -0x32e);}return _0x326bc7[_0x5552ea(-0x253,-0x1d4)];},'viewerLatRange':function(){function _0x125234(_0x3fd273,_0x19f7a9){return _0x1736d7(_0x3fd273- -0x5e5,_0x19f7a9);}return _0x326bc7[_0x125234(-0x2bf,-0x320)];},'lonRange':function(){return _0x5b638e;},'latRange':function(){return _0x2de566;},'dimension':function(){return _0xaf20e4;},'minimum':function(){return _0x3920c6;},'maximum':function(){return _0x2de285;},'interval':function(){return _0x50da0e;},'H':function(){function _0xdc7574(_0x253d1e,_0x2a48ce){return _0x3eb3a3(_0x2a48ce,_0x253d1e- -0x41a);}return _0x22d5af[_0xdc7574(-0x20b,-0x1b9)]['H'];},'randomCoefficient':function(){const _0x2b208b=Math['random']();return _0x2b208b;},'dropRate':function(){return _0x16f1df['dropRate'];},'dropRateBump':function(){function _0xd11b5b(_0x209cc1,_0x1fd73e){return _0x1736d7(_0x1fd73e- -0x5ca,_0x209cc1);}return _0x16f1df[_0xd11b5b(-0x294,-0x212)];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x293b42),'outputTexture':this[_0x3eb3a3(0x21e,0x205)][_0x3eb3a3(0x191,0x189)],'preExecute':function(){function _0x436538(_0x6506b5,_0x1fac4f){return _0x1736d7(_0x6506b5- -0x34b,_0x1fac4f);}function _0x18447f(_0x316f2d,_0x45f3af){return _0x1736d7(_0x316f2d- -0x1c9,_0x45f3af);}_0x22d5af[_0x18447f(0x185,0x10f)]['postProcessingPosition']['commandToExecute']['outputTexture']=_0x22d5af[_0x436538(0x96,0xa7)][_0x436538(0x1a,0x46)];}})};}}const Cesium$2=mars3d__namespace['Cesium'];class ParticleSystem{constructor(_0x3ccb1c,_0x5a2666,_0x4a4975,_0x5d567d){function _0x5b7b72(_0x1331ac,_0x5d8c83){return _0x281908(_0x1331ac,_0x5d8c83-0x157);}function _0x3fc5db(_0x965677,_0x3e6560){return _0x2f2038(_0x3e6560- -0x166,_0x965677);}this['context']=_0x3ccb1c,_0x5a2666={..._0x5a2666};_0x5a2666[_0x3fc5db(-0xa1,-0x25)]&&_0x5a2666[_0x3fc5db(-0x14,-0x23)]&&(_0x5a2666[_0x3fc5db(0xc3,0x95)]={},_0x5a2666['dimensions'][_0x3fc5db(-0xae,-0x54)]=_0x5a2666['cols'],_0x5a2666[_0x5b7b72(0xc,0x94)][_0x5b7b72(-0x5b,-0xd)]=_0x5a2666['rows'],_0x5a2666['dimensions'][_0x5b7b72(0x6b,-0x16)]=_0x5a2666[_0x5b7b72(0x1d,-0x16)]||0x1,_0x5a2666['lon']={},_0x5a2666['lon'][_0x5b7b72(0x9f,0x45)]=_0x5a2666['xmin'],_0x5a2666['lon']['max']=_0x5a2666[_0x5b7b72(0x109,0x9c)],_0x5a2666['lat']={},_0x5a2666['lat']['min']=_0x5a2666[_0x5b7b72(-0x80,-0x4)],_0x5a2666['lat']['max']=_0x5a2666[_0x5b7b72(0x94,0x55)],_0x5a2666[_0x5b7b72(0x65,-0x16)]={},_0x5a2666[_0x5b7b72(-0x14,-0x16)][_0x3fc5db(-0x3c,0x46)]=_0x5a2666['levmin']??0x1,_0x5a2666['lev'][_0x5b7b72(0xee,0x88)]=_0x5a2666[_0x5b7b72(0xdc,0x9e)]??0x1,_0x5a2666['U']={},_0x5a2666['U'][_0x3fc5db(-0x6a,-0x20)]=new Float32Array(_0x5a2666[_0x5b7b72(-0xba,-0x26)]),_0x5a2666['U'][_0x3fc5db(0xac,0x46)]=_0x5a2666['umin']??Math[_0x5b7b72(0x99,0x45)](..._0x5a2666['udata']),_0x5a2666['U']['max']=_0x5a2666['umax']??Math['max'](..._0x5a2666['udata']),_0x5a2666['V']={},_0x5a2666['V'][_0x3fc5db(-0x4a,-0x20)]=new Float32Array(_0x5a2666['vdata']),_0x5a2666['V'][_0x3fc5db(-0x39,0x46)]=_0x5a2666['vmin']??Math[_0x3fc5db(0x1e,0x46)](..._0x5a2666['vdata']),_0x5a2666['V'][_0x5b7b72(0xc9,0x88)]=_0x5a2666['vmax']??Math['max'](..._0x5a2666['vdata']));!_0x5a2666['W']&&(_0x5a2666['W']={'array':new Float32Array(_0x5a2666['U'][_0x3fc5db(0x4e,-0x20)][_0x5b7b72(0xb2,0x74)]),'min':0x0,'max':0x0});if(!_0x5a2666['H']){var _0xe4555;_0x5a2666['H']={'array':new Float32Array(_0x5a2666['U']['array'][_0x3fc5db(0xae,0x75)]),'min':0x0,'max':0x0};if((_0xe4555=_0x5a2666['lev'])!==null&&_0xe4555!==void 0x0&&_0xe4555[_0x3fc5db(-0x97,-0x20)]){const {lon:_0x183b5a,lat:_0x1bc88c,lev:_0x14f7c6}=_0x5a2666['dimensions'];for(let _0x4e2837=0x0;_0x4e2837<_0x14f7c6;_0x4e2837++){for(let _0x3115dd=0x0;_0x3115dd<_0x1bc88c;_0x3115dd++){for(let _0x575969=0x0;_0x575969<_0x183b5a;_0x575969++){const _0x59cfc8=_0x4e2837*(_0x183b5a*_0x1bc88c)+_0x3115dd*_0x183b5a+_0x575969;_0x5a2666['H']['array'][_0x59cfc8]=_0x5a2666['lev']['array'][_0x4e2837];}}}_0x5a2666['H']['min']=Math['min'](..._0x5a2666['lev'][_0x5b7b72(-0x3f,-0x21)]),_0x5a2666['H']['max']=Math[_0x5b7b72(0x8b,0x88)](..._0x5a2666['lev']['array']);}}this['data']=_0x5a2666,this['options']=_0x4a4975,this['viewerParameters']=_0x5d567d,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this['options'],this[_0x5b7b72(-0xd0,-0x3d)]),this[_0x5b7b72(-0x52,-0x27)]=new ParticlesRendering(this['context'],this['data'],this['options'],this[_0x5b7b72(-0x87,-0x3d)],this[_0x5b7b72(-0x73,-0x5b)]);}[_0x281908(-0xbd,-0x106)](_0x511a61){this[_0x3cc108(0x20c,0x262)][_0x3cc108(0x309,0x306)](),Object[_0x3cc108(0x269,0x20b)](this['particlesComputing']['windTextures'])['forEach'](_0x5620b7=>{function _0x32afc8(_0x70bdfd,_0x331a11){return _0x5a22fd(_0x70bdfd-0x5b7,_0x331a11);}this['particlesComputing'][_0x32afc8(0x379,0x3b1)][_0x5620b7]['destroy']();}),this['particlesRendering']['textures']['colorTable']['destroy']();function _0x3cc108(_0x8bf6bd,_0x572d03){return _0x2f2038(_0x8bf6bd-0x100,_0x572d03);}Object[_0x5a22fd(-0x2cf,-0x353)](this[_0x5a22fd(-0x2f8,-0x33e)][_0x5a22fd(-0x313,-0x287)])[_0x3cc108(0x2cb,0x289)](_0x2203a4=>{function _0x43be8e(_0x309c7f,_0x3297c7){return _0x5a22fd(_0x309c7f-0x4f2,_0x3297c7);}function _0x5a04de(_0x272f6f,_0x181c87){return _0x5a22fd(_0x272f6f-0x715,_0x181c87);}this[_0x5a04de(0x41d,0x3c5)]['framebuffers'][_0x2203a4][_0x43be8e(0x249,0x21c)]();}),this[_0x3cc108(0x30f,0x352)]=_0x511a61,this[_0x3cc108(0x20c,0x284)]=new ParticlesComputing(this['context'],this[_0x5a22fd(-0x31c,-0x385)],this[_0x3cc108(0x294,0x277)],this[_0x5a22fd(-0x30e,-0x2a9)]);function _0x5a22fd(_0xe04345,_0x354902){return _0x2f2038(_0xe04345- -0x438,_0x354902);}this[_0x3cc108(0x240,0x2a4)]=new ParticlesRendering(this[_0x5a22fd(-0x229,-0x19e)],this[_0x5a22fd(-0x31c,-0x2e7)],this[_0x5a22fd(-0x2a4,-0x24c)],this['viewerParameters'],this['particlesComputing']);}[_0x281908(-0x19f,-0x148)](){const _0x5c1640=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2[_0x5476e2(0x240,0x2d5)][_0x165b32(-0x11e,-0x99)]});function _0x165b32(_0x3a9e02,_0x3f3075){return _0x281908(_0x3a9e02,_0x3f3075-0x82);}function _0x5476e2(_0x2f3b61,_0x359054){return _0x2f2038(_0x2f3b61-0x127,_0x359054);}Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](_0xbeeba4=>{function _0x4b29a0(_0x41dee4,_0x38ad88){return _0x5476e2(_0x41dee4- -0x327,_0x38ad88);}function _0x4c317a(_0x2a2483,_0x97bd73){return _0x5476e2(_0x2a2483- -0x31c,_0x97bd73);}_0x5c1640['framebuffer']=this['particlesRendering']['framebuffers'][_0xbeeba4],_0x5c1640[_0x4b29a0(-0x64,-0xbd)](this[_0x4b29a0(0xf,0x39)]);});}['refreshParticles'](_0x18f7ed,_0x4061b3=!![]){function _0x23d3c5(_0x5db114,_0x1505a1){return _0x2f2038(_0x1505a1-0x313,_0x5db114);}_0x4061b3&&(this[_0x35e04d(0x287,0x29e)](),this[_0x23d3c5(0x3ea,0x41f)][_0x35e04d(0x31a,0x3a4)](),this[_0x35e04d(0x21d,0x258)]['createParticlesTextures'](this[_0x23d3c5(0x544,0x522)],this['options'],this['viewerParameters']));function _0x35e04d(_0x3a796d,_0x39d455){return _0x2f2038(_0x3a796d-0x111,_0x39d455);}if(_0x18f7ed){var _0x22857b;const _0x57fe17=this['particlesRendering']['createSegmentsGeometry'](this['options']);this[_0x23d3c5(0x464,0x453)][_0x35e04d(0x26e,0x217)][_0x35e04d(0x2a9,0x269)][_0x23d3c5(0x42c,0x471)]=_0x57fe17;const _0x10af87=Cesium$2[_0x23d3c5(0x4a6,0x44d)][_0x23d3c5(0x4fa,0x52b)]({'context':this['context'],'geometry':_0x57fe17,'attributeLocations':this[_0x35e04d(0x251,0x2e1)][_0x23d3c5(0x4e8,0x470)]['segments'][_0x35e04d(0x2bb,0x2cf)],'bufferUsage':Cesium$2['BufferUsage']['STATIC_DRAW']});(_0x22857b=this['particlesRendering'][_0x23d3c5(0x40f,0x470)])!==null&&_0x22857b!==void 0x0&&(_0x22857b=_0x22857b[_0x35e04d(0x2a9,0x2b0)])!==null&&_0x22857b!==void 0x0&&_0x22857b[_0x23d3c5(0x4b3,0x52e)]&&(this['particlesRendering']['primitives']['segments']['commandToExecute']['vertexArray']=_0x10af87);}}['setOptions'](_0x3b6fac){function _0x5cc3b9(_0x3e944e,_0x354d21){return _0x281908(_0x354d21,_0x3e944e-0x2fd);}let _0xed44c8=![];this[_0x5cc3b9(0x1d3,0x1a0)][_0x336e6c(0x337,0x2d1)]!==_0x3b6fac['maxParticles']&&(_0xed44c8=!![]);function _0x336e6c(_0x1cd623,_0x4a13ac){return _0x281908(_0x4a13ac,_0x1cd623-0x4de);}Object['keys'](_0x3b6fac)['forEach'](_0x49fb6c=>{this['options'][_0x49fb6c]=_0x3b6fac[_0x49fb6c];}),this['refreshParticles'](_0xed44c8,_0x3b6fac[_0x5cc3b9(0x24d,0x286)]);}['applyViewerParameters'](_0x5c9140){Object[_0x251a0c(0x17f,0x205)](_0x5c9140)['forEach'](_0x53c213=>{this['viewerParameters'][_0x53c213]=_0x5c9140[_0x53c213];});function _0x12fcce(_0x382593,_0x4e108b){return _0x2f2038(_0x382593- -0x30,_0x4e108b);}this['refreshParticles'](![]);function _0x251a0c(_0x3b0a69,_0x4f1436){return _0x2f2038(_0x3b0a69-0x16,_0x4f1436);}!this[_0x12fcce(0x164,0x158)]['dynamic']&&(this[_0x12fcce(0x164,0x129)]['dynamic']=!![],this[_0x12fcce(0x1bc,0x194)](this[_0x12fcce(0x164,0xfd)]),setTimeout(()=>{this['options']['dynamic']=![];function _0x2f886b(_0x1b132b,_0x5279c1){return _0x251a0c(_0x5279c1-0x1e5,_0x1b132b);}this['setOptions'](this[_0x2f886b(0x382,0x38f)]);},0x1f4));}[_0x281908(-0xfc,-0x12f)](){function _0x27469e(_0x56642c,_0x35201b){return _0x281908(_0x56642c,_0x35201b-0x17b);}clearTimeout(this[_0x30ed54(-0x279,-0x2c8)]),this['particlesComputing']['destroyParticlesTextures'](),Object[_0x27469e(-0x2b,0x26)](this[_0x30ed54(-0x2d8,-0x262)]['windTextures'])['forEach'](_0x11044d=>{function _0x2a3ff1(_0x53d011,_0x5311e5){return _0x30ed54(_0x5311e5-0x540,_0x53d011);}function _0x10d4f7(_0x10c2a8,_0x74c6ed){return _0x27469e(_0x10c2a8,_0x74c6ed-0x3d2);}this[_0x2a3ff1(0x2d1,0x268)]['windTextures'][_0x11044d][_0x10d4f7(0x473,0x41e)]();}),this['particlesRendering']['textures']['colorTable']['destroy']();function _0x30ed54(_0x1ea75e,_0x383d8d){return _0x2f2038(_0x1ea75e- -0x3e4,_0x383d8d);}Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](_0x2f1287=>{function _0x4e5c2c(_0x494895,_0x34d6ec){return _0x27469e(_0x494895,_0x34d6ec- -0x26d);}function _0x3ee9e6(_0x2adcad,_0x1ec18d){return _0x30ed54(_0x2adcad-0x4c,_0x1ec18d);}this[_0x3ee9e6(-0x258,-0x246)][_0x4e5c2c(-0x28f,-0x28b)][_0x2f1287]['destroy']();});for(const _0x320096 in this){delete this[_0x320096];}}}const Cesium$1=mars3d__namespace[_0x281908(-0x153,-0x177)],BaseLayer$1=mars3d__namespace['layer'][_0x2f2038(0x19b,0x112)],_0x374a03={};_0x374a03[_0x2f2038(0x1a4,0x157)]=0x1000,_0x374a03['fixedHeight']=0x0,_0x374a03['fadeOpacity']=0.996,_0x374a03['dropRate']=0.003,_0x374a03['dropRateBump']=0.01,_0x374a03[_0x2f2038(0x167,0x18c)]=0.5,_0x374a03['lineWidth']=0x2,_0x374a03['colors']=['rgb(206,255,255)'],_0x374a03[_0x2f2038(0x20e,0x20e)]=!![];const DEF_OPTIONS=_0x374a03;class WindLayer extends BaseLayer$1{constructor(_0x549c2d={}){_0x549c2d={...DEF_OPTIONS,..._0x549c2d},super(_0x549c2d),this['_setOptionsHook'](_0x549c2d);}get[_0x2f2038(0x195,0x179)](){function _0x5e58ed(_0x594b04,_0x229e3e){return _0x281908(_0x229e3e,_0x594b04- -0x32);}return this[_0x5e58ed(-0x193,-0x1a4)];}get['data'](){return this['_data'];}set['data'](_0xd45fd2){this['setData'](_0xd45fd2);}get[_0x2f2038(0x10a,0x144)](){function _0x2b7be8(_0xff33fb,_0x74c61e){return _0x281908(_0x74c61e,_0xff33fb- -0x44);}function _0x52b18e(_0x420cd7,_0x5028ca){return _0x281908(_0x420cd7,_0x5028ca-0x2e);}return this[_0x2b7be8(-0x16e,-0x1e1)][_0x2b7be8(-0x1f8,-0x232)];}set['colors'](_0x12b87d){function _0xa740b5(_0x1813d6,_0x4944b4){return _0x281908(_0x1813d6,_0x4944b4- -0xc1);}function _0x4ed7bc(_0x2ccf3b,_0x3d125c){return _0x2f2038(_0x3d125c- -0x213,_0x2ccf3b);}this['options']['colors']=_0x12b87d;if(this['particleSystem']){const _0x3e215b={};_0x3e215b[_0x4ed7bc(-0x151,-0x109)]=_0x12b87d,this['particleSystem'][_0xa740b5(-0x12c,-0x193)](_0x3e215b);}this['resize']();}[_0x2f2038(0x1b0,0x121)](){}[_0x281908(-0x182,-0xf5)](){this['scene']=this['_map']['scene'],this['camera']=this[_0x207491(0x410,0x3be)][_0x2d6c54(-0x219,-0x28f)];function _0x207491(_0x36defc,_0x1c96e2){return _0x2f2038(_0x36defc-0x2c7,_0x1c96e2);}this[_0x2d6c54(-0x27b,-0x2f7)]=new Cesium$1['PrimitiveCollection'](),this[_0x207491(0x410,0x3b7)]['scene']['primitives']['add'](this[_0x207491(0x424,0x401)]),this[_0x207491(0x3f1,0x437)]={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0,'lonDisplayRange':new Cesium$1['Cartesian2'](),'latDisplayRange':new Cesium$1[(_0x2d6c54(-0x1c6,-0x20c))]()},this[_0x207491(0x44d,0x3e7)]=new Cesium$1['BoundingSphere'](Cesium$1['Cartesian3'][_0x207491(0x4a0,0x4e1)],0.99*0x615299),this['updateViewerParameters'](),window[_0x2d6c54(-0x26c,-0x266)](_0x207491(0x48f,0x519),this[_0x2d6c54(-0x210,-0x1b6)][_0x207491(0x44a,0x3be)](this),![]),this['mouse_down']=![],this['mouse_move']=![];function _0x2d6c54(_0x536a04,_0x854a0){return _0x281908(_0x854a0,_0x536a04- -0x11a);}this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x2d6c54(-0x1b2,-0x214)],this),this['_map']['on'](mars3d__namespace[_0x2d6c54(-0x21d,-0x1f3)]['mouseDown'],this[_0x2d6c54(-0x1bf,-0x137)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['on'](mars3d__namespace[_0x2d6c54(-0x21d,-0x1da)]['mouseMove'],this['_onMouseMoveEvent'],this),this['_data']&&this['setData'](this['_data']);}['_removedHook'](){window[_0x23b66d(0x3a9,0x365)]('resize',this[_0x42cbb5(0x9,0x2b)]),this[_0x42cbb5(-0x70,-0x54)]['off'](mars3d__namespace[_0x42cbb5(-0x25,0x1e)]['preRender'],this[_0x23b66d(0x305,0x350)],this);function _0x23b66d(_0x2192e8,_0x474828){return _0x281908(_0x2192e8,_0x474828-0x4cc);}this['_map'][_0x42cbb5(-0x26,0x4a)](mars3d__namespace['EventType'][_0x23b66d(0x3f8,0x3c5)],this[_0x42cbb5(0x3a,0x89)],this),this['_map']['off'](mars3d__namespace[_0x23b66d(0x385,0x3c9)][_0x42cbb5(0x32,-0x51)],this['_onMouseDownEvent'],this);function _0x42cbb5(_0x5f1624,_0x8e18a4){return _0x2f2038(_0x8e18a4- -0x19d,_0x5f1624);}this['_map']['off'](mars3d__namespace[_0x23b66d(0x440,0x3c9)][_0x42cbb5(0x3c,0x6a)],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace[_0x42cbb5(0x9b,0x1e)][_0x42cbb5(-0x3c,-0x61)],this['_onMouseMoveEvent'],this),this['primitives']['removeAll'](),this['_map'][_0x23b66d(0x37f,0x31c)][_0x42cbb5(-0xce,-0x40)]['remove'](this[_0x23b66d(0x307,0x36b)]);}['resize'](){if(!this[_0x202833(-0x23c,-0x22c)]||!this[_0x4e635b(0x530,0x571)])return;function _0x202833(_0x4a23bd,_0x397fc3){return _0x2f2038(_0x397fc3- -0x384,_0x4a23bd);}function _0x4e635b(_0x1d21a3,_0x294245){return _0x2f2038(_0x1d21a3-0x36b,_0x294245);}this['primitives'][_0x202833(-0x1cd,-0x22c)]=![],this['primitives'][_0x4e635b(0x581,0x5e5)](),this['_map'][_0x4e635b(0x473,0x3f9)](mars3d__namespace['EventType'][_0x202833(-0x245,-0x240)],this[_0x202833(-0x290,-0x242)],this);}[_0x2f2038(0x142,0x136)](_0x205c18){this[_0x231b29(0x11f,0x173)][_0x4f21ee(0x149,0xf8)](this[_0x4f21ee(0x9f,0x6c)]['context']),this[_0x4f21ee(0x15e,0x14a)]();function _0x4f21ee(_0x337ae2,_0x3ed897){return _0x281908(_0x3ed897,_0x337ae2-0x24f);}function _0x231b29(_0x391b8c,_0xdfedf7){return _0x2f2038(_0x391b8c- -0xa6,_0xdfedf7);}this['primitives'][_0x231b29(0xb2,0xbf)]=!![];}['_onMapWhellEvent'](_0x107a11){function _0x25a6d3(_0x2e3feb,_0x460686){return _0x281908(_0x2e3feb,_0x460686- -0x12e);}clearTimeout(this[_0x25a6d3(-0x256,-0x263)]);if(!this['show']||!this[_0x51e243(0x41,0x23)])return;function _0x51e243(_0x1f69c3,_0x559b31){return _0x281908(_0x1f69c3,_0x559b31-0x11c);}this[_0x51e243(-0x2f,-0x45)][_0x25a6d3(-0x24f,-0x294)]=![],this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;this['redraw']();},0xc8);}['_onMouseDownEvent'](_0x4f940a){this['mouse_down']=!![];}['_onMouseMoveEvent'](_0x2b8e6d){function _0x4b3602(_0x163c5b,_0x52f4b2){return _0x2f2038(_0x52f4b2- -0x2dd,_0x163c5b);}if(!this['show']||!this['particleSystem'])return;this['mouse_down']&&(this['primitives'][_0x4b3602(-0xf9,-0x185)]=![],this['mouse_move']=!![]);}[_0x281908(-0xb0,-0x12c)](_0x4316cc){if(!this['show']||!this[_0x3f3a79(0x170,0x1fe)])return;this[_0x3f3a79(0x1fe,0x1b1)]&&this[_0x139a54(-0x1,-0x5b)]&&this[_0x3f3a79(0x163,0x1a9)]();function _0x3f3a79(_0xb3203c,_0x45d604){return _0x281908(_0xb3203c,_0x45d604-0x2f7);}function _0x139a54(_0x360df0,_0x101139){return _0x2f2038(_0x360df0- -0x170,_0x101139);}this['primitives']['show']=!![],this[_0x139a54(0x8,0x53)]=![],this['mouse_move']=![];}[_0x281908(-0x114,-0x14e)](){function _0x2fe3e9(_0x4bb48d,_0x176efa){return _0x281908(_0x4bb48d,_0x176efa-0x1fc);}if(!this['_map']||!this['show'])return;this['updateViewerParameters'](),this['particleSystem'][_0x2fe3e9(-0x12,0x70)](this[_0x183a26(0x320,0x3b4)]);function _0x183a26(_0x39e134,_0x6ee6de){return _0x2f2038(_0x39e134-0x1f6,_0x6ee6de);}this['primitives']['show']=!![];}['setData'](_0x5a2288){function _0x443b67(_0xf51bc9,_0x539744){return _0x2f2038(_0x539744- -0x146,_0xf51bc9);}this['_data']=_0x5a2288;function _0x28ae2a(_0x472938,_0x715995){return _0x2f2038(_0x715995- -0x22a,_0x472938);}this['particleSystem']&&this[_0x443b67(0x12,0x7f)]['destroy'](),this[_0x28ae2a(-0x3,-0x65)]=new ParticleSystem(this['scene'][_0x443b67(0x116,0xc9)],_0x5a2288,this['getOptions'](),this['viewerParameters']),this['addPrimitives']();}[_0x281908(-0x107,-0x13e)](_0x287cc6,_0x3010f2){if(_0x287cc6)for(const _0x26b8a2 in _0x287cc6){this[_0x26b8a2]=_0x287cc6[_0x26b8a2];}this['particleSystem']&&this['particleSystem']['setOptions'](this['getOptions']());}[_0x281908(-0x209,-0x1aa)](){const _0x3c0e10=Math[_0x3aa9b9(0xb0,0x40)](Math['sqrt'](this[_0x3aa9b9(0x69,0x1)]));this['particlesNumber']=_0x3c0e10*_0x3c0e10;function _0x4571ef(_0x479be9,_0x5d150b){return _0x2f2038(_0x5d150b- -0x268,_0x479be9);}const _0x3ceaca={};_0x3ceaca['particlesTextureSize']=_0x3c0e10,_0x3ceaca['maxParticles']=this['particlesNumber'],_0x3ceaca['colors']=this[_0x3aa9b9(-0x31,0x27)],_0x3ceaca['particleHeight']=this[_0x4571ef(-0x19a,-0x157)],_0x3ceaca[_0x3aa9b9(-0x30,0x17)]=this[_0x3aa9b9(-0x30,-0x3)];function _0x3aa9b9(_0x374d87,_0x31083f){return _0x2f2038(_0x374d87- -0x13b,_0x31083f);}return _0x3ceaca[_0x3aa9b9(0x42,-0x14)]=this[_0x4571ef(-0x88,-0xeb)],_0x3ceaca['dropRateBump']=this['dropRateBump'],_0x3ceaca[_0x4571ef(-0xa0,-0x101)]=this['speedFactor'],_0x3ceaca[_0x3aa9b9(-0x4,-0xf)]=this['lineWidth'],_0x3ceaca['dynamic']=this['dynamic'],_0x3ceaca;}[_0x2f2038(0x1cd,0x14d)](){this[_0x92465c(0x28b,0x2be)]['add'](this['particleSystem']['particlesComputing']['primitives']['calculateSpeed']);function _0x92465c(_0x576336,_0x4ba799){return _0x281908(_0x4ba799,_0x576336-0x3ec);}this['primitives']['add'](this['particleSystem'][_0x92465c(0x23a,0x219)][_0x3f51bf(-0x23e,-0x2ba)]['updatePosition']),this['primitives']['add'](this[_0x3f51bf(-0x1f2,-0x252)]['particlesComputing'][_0x3f51bf(-0x251,-0x2ba)][_0x3f51bf(-0x29e,-0x2a3)]);function _0x3f51bf(_0x5bc228,_0x561e50){return _0x2f2038(_0x561e50- -0x417,_0x5bc228);}this[_0x3f51bf(-0x2d4,-0x2ba)]['add'](this[_0x92465c(0x2f3,0x2a9)]['particlesRendering'][_0x92465c(0x28b,0x251)]['segments']),this[_0x3f51bf(-0x285,-0x2ba)][_0x3f51bf(-0x23f,-0x2b3)](this[_0x3f51bf(-0x2ce,-0x252)][_0x3f51bf(-0x2e9,-0x2d7)][_0x3f51bf(-0x292,-0x2ba)]['trails']),this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['screen']);}['updateViewerParameters'](){let _0x597495=this['camera'][_0x998e5d(-0x243,-0x282)](this[_0x998e5d(-0x34b,-0x337)][_0x998e5d(-0x327,-0x336)]['ellipsoid']);if(!_0x597495){const _0x2c60e3=this['_map'][_0x998e5d(-0x2f6,-0x28b)]();_0x597495=Cesium$1[_0x326bcd(0xe9,0x95)]['fromDegrees'](_0x2c60e3['xmin'],_0x2c60e3['ymin'],_0x2c60e3[_0x326bcd(0x10e,0x14e)],_0x2c60e3['ymax']);}const _0x3dd589=Util['viewRectangleToLonLatRange'](_0x597495);this[_0x326bcd(0xdc,0x10e)]?(this[_0x998e5d(-0x38f,-0x31b)][_0x998e5d(-0x2f6,-0x300)]['x']=Math['max'](_0x3dd589['lon'][_0x998e5d(-0x2d1,-0x299)],this[_0x998e5d(-0x25f,-0x274)][_0x326bcd(0x36,0x36)]),this['viewerParameters']['lonRange']['y']=Math[_0x326bcd(0xb7,0x79)](_0x3dd589['lon']['max'],this[_0x326bcd(0xdc,0x15b)]['xmax']),this[_0x326bcd(0x35,0x79)][_0x326bcd(0x40,0x1c)]['x']=Math['max'](_0x3dd589[_0x326bcd(0x65,0x7b)]['min'],this[_0x326bcd(0xdc,0xeb)][_0x998e5d(-0x257,-0x2e2)]),this['viewerParameters'][_0x326bcd(0x40,0x10)]['y']=Math['min'](_0x3dd589['lat']['max'],this[_0x998e5d(-0x285,-0x274)]['ymax'])):(this[_0x998e5d(-0x364,-0x31b)]['lonRange']['x']=_0x3dd589['lon']['min'],this[_0x998e5d(-0x35b,-0x31b)]['lonRange']['y']=_0x3dd589[_0x998e5d(-0x3a1,-0x333)][_0x998e5d(-0x232,-0x256)],this[_0x326bcd(0x35,0x9b)]['latRange']['x']=_0x3dd589['lat'][_0x998e5d(-0x26a,-0x299)],this['viewerParameters']['latRange']['y']=_0x3dd589['lat']['max']);function _0x326bcd(_0x342029,_0x398f04){return _0x2f2038(_0x342029- -0xf5,_0x398f04);}const _0x1daef3=this['camera']['getPixelSize'](this[_0x998e5d(-0x308,-0x2bf)],this[_0x326bcd(0x19,0x81)]['drawingBufferWidth'],this[_0x326bcd(0x19,0x8f)]['drawingBufferHeight']);function _0x998e5d(_0x81c66e,_0x47b4d1){return _0x2f2038(_0x47b4d1- -0x445,_0x81c66e);}_0x1daef3>0x0&&(this[_0x326bcd(0x35,-0x52)]['pixelSize']=_0x1daef3);}}mars3d__namespace['LayerUtil'][_0x2f2038(0xff,0xdd)]('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){function _0x36a4c9(_0x17d302,_0xce7277){return _0x281908(_0x17d302,_0xce7277-0x181);}function _0x16b68a(_0x42518c,_0x2b30f4){return _0x281908(_0x42518c,_0x2b30f4-0x61c);}this[_0x36a4c9(0x166,0xe5)]=null,this['lat']=null,this[_0x16b68a(0x432,0x48d)]=null,this['tlat']=null,this['age']=null,this[_0x16b68a(0x505,0x4fd)]=null;}[_0x281908(-0x18c,-0x12f)](){for(const _0x1b5338 in this){delete this[_0x1b5338];}}}class CanvasWindField{constructor(_0xab260c){this['setOptions'](_0xab260c);}get['speedRate'](){return this['_speedRate'];}set['speedRate'](_0xbdbf15){this['_speedRate']=(0x64-(_0xbdbf15>0x63?0x63:_0xbdbf15))*0x64;function _0x12258f(_0xc4062c,_0x375487){return _0x281908(_0xc4062c,_0x375487-0x5d4);}function _0x1ac8ff(_0x1ad687,_0x289d65){return _0x2f2038(_0x1ad687- -0x237,_0x289d65);}this['_calc_speedRate']=[(this['xmax']-this[_0x1ac8ff(-0x10c,-0x8a)])/this[_0x12258f(0x4b1,0x4ea)],(this[_0x12258f(0x488,0x4d2)]-this['ymin'])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0x343450){function _0x567ec9(_0x5e8468,_0x134b05){return _0x281908(_0x5e8468,_0x134b05- -0x19);}this[_0x567ec9(-0x75,-0xb7)]=_0x343450;}[_0x281908(-0x6c,-0xd2)](_0x2faa5b){this['options']=_0x2faa5b,this[_0x4a5483(-0x56,-0x1)]=_0x2faa5b['maxAge']||0x78,this['speedRate']=_0x2faa5b['speedRate']||0x32;function _0x26332e(_0x12d5c8,_0x5e8441){return _0x2f2038(_0x12d5c8- -0x12f,_0x5e8441);}this['particles']=[];const _0x43c2d6=_0x2faa5b['particlesNumber']||0x1000;function _0x4a5483(_0x1991bb,_0x3a2be8){return _0x2f2038(_0x1991bb- -0x1ec,_0x3a2be8);}for(let _0x24a526=0x0;_0x24a526<_0x43c2d6;_0x24a526++){const _0x353101=this[_0x26332e(0x9f,0xe4)](new CanvasParticle());this['particles']['push'](_0x353101);}}['setDate'](_0x209dd6){this[_0x3158de(0x49b,0x496)]=_0x209dd6['rows'],this['cols']=_0x209dd6[_0x3158de(0x4ab,0x52e)],this['xmin']=_0x209dd6[_0x111b37(0x472,0x418)],this[_0x111b37(0x54a,0x55c)]=_0x209dd6['xmax'],this[_0x3158de(0x42e,0x49a)]=_0x209dd6[_0x3158de(0x42e,0x3d6)],this[_0x111b37(0x503,0x4d6)]=_0x209dd6['ymax'],this['grid']=[];const _0xc02063=_0x209dd6['udata'];function _0x111b37(_0x5a042b,_0x47ce53){return _0x2f2038(_0x5a042b-0x347,_0x47ce53);}const _0x263831=_0x209dd6['vdata'];let _0x628f55=![];_0xc02063['length']===this[_0x3158de(0x49b,0x4ba)]&&_0xc02063[0x0]['length']===this['cols']&&(_0x628f55=!![]);let _0x388e6d=0x0,_0x654d39=null,_0x3a556c=null;function _0x3158de(_0x47f89a,_0x28aa25){return _0x2f2038(_0x47f89a-0x2cb,_0x28aa25);}for(let _0x4ac003=0x0;_0x4ac003<this['rows'];_0x4ac003++){_0x654d39=[];for(let _0x4efb6a=0x0;_0x4efb6a<this['cols'];_0x4efb6a++,_0x388e6d++){_0x628f55?_0x3a556c=this[_0x3158de(0x480,0x4f0)](_0xc02063[_0x4ac003][_0x4efb6a],_0x263831[_0x4ac003][_0x4efb6a]):_0x3a556c=this['_calcUV'](_0xc02063[_0x388e6d],_0x263831[_0x388e6d]),_0x654d39[_0x3158de(0x491,0x435)](_0x3a556c);}this['grid']['push'](_0x654d39);}this[_0x3158de(0x45f,0x417)][_0x111b37(0x508,0x56f)]&&this['grid']['reverse']();}['clear'](){delete this['rows'],delete this['cols'],delete this[_0x1cce00(0x3b5,0x360)],delete this[_0x1aa6a8(0x3a0,0x3b6)],delete this[_0x1aa6a8(0x300,0x2d2)];function _0x1cce00(_0x7228eb,_0x4081fb){return _0x281908(_0x4081fb,_0x7228eb-0x548);}function _0x1aa6a8(_0x1d47a6,_0x450905){return _0x281908(_0x450905,_0x1d47a6-0x45b);}delete this[_0x1aa6a8(0x359,0x320)],delete this[_0x1cce00(0x437,0x481)],delete this['particles'];}['toGridXY'](_0x320d1c,_0x163d5f){const _0x3cb905=(_0x320d1c-this[_0x4b684f(-0x2b,0x1e)])/(this['xmax']-this['xmin'])*(this['cols']-0x1);function _0x59ba46(_0x196333,_0x34c219){return _0x2f2038(_0x34c219- -0x151,_0x196333);}function _0x4b684f(_0x132fc8,_0x25e353){return _0x2f2038(_0x132fc8- -0x156,_0x25e353);}const _0x31c4ad=(this[_0x59ba46(-0x12,0x6b)]-_0x163d5f)/(this['ymax']-this['ymin'])*(this[_0x4b684f(0x7a,0xd3)]-0x1);return[_0x3cb905,_0x31c4ad];}['getUVByXY'](_0x1bca9f,_0x142e76){if(_0x1bca9f<0x0||_0x1bca9f>=this['cols']||_0x142e76>=this[_0x2728e6(-0x9d,-0x18)])return[0x0,0x0,0x0];function _0x1cb100(_0x5924d7,_0xcc0fbe){return _0x2f2038(_0x5924d7-0x249,_0xcc0fbe);}const _0x2e79d0=Math[_0x2728e6(-0x85,-0xfe)](_0x1bca9f);function _0x2728e6(_0x3d6cee,_0x2bb8cf){return _0x281908(_0x2bb8cf,_0x3d6cee-0x51);}const _0x199aa6=Math['floor'](_0x142e76);if(_0x2e79d0===_0x1bca9f&&_0x199aa6===_0x142e76)return this['grid'][_0x142e76][_0x1bca9f];const _0x62b6a5=_0x2e79d0+0x1,_0x1ec783=_0x199aa6+0x1,_0x423ae7=this['getUVByXY'](_0x2e79d0,_0x199aa6),_0x27a6c3=this['getUVByXY'](_0x62b6a5,_0x199aa6),_0x434374=this['getUVByXY'](_0x2e79d0,_0x1ec783),_0x68a881=this[_0x1cb100(0x3e7,0x416)](_0x62b6a5,_0x1ec783);let _0x37b333=null;try{_0x37b333=this['_bilinearInterpolation'](_0x1bca9f-_0x2e79d0,_0x142e76-_0x199aa6,_0x423ae7,_0x27a6c3,_0x434374,_0x68a881);}catch(_0x5864b2){console['log'](_0x1bca9f,_0x142e76);}return _0x37b333;}['_bilinearInterpolation'](_0x275662,_0x3066eb,_0x4cc366,_0x1ba9df,_0x567d59,_0x5420ce){const _0x497d9c=0x1-_0x275662,_0x28e1f1=0x1-_0x3066eb,_0xee6872=_0x497d9c*_0x28e1f1,_0x294cfa=_0x275662*_0x28e1f1,_0x5d0edb=_0x497d9c*_0x3066eb,_0x35bff6=_0x275662*_0x3066eb,_0x268b10=_0x4cc366[0x0]*_0xee6872+_0x1ba9df[0x0]*_0x294cfa+_0x567d59[0x0]*_0x5d0edb+_0x5420ce[0x0]*_0x35bff6,_0x33a580=_0x4cc366[0x1]*_0xee6872+_0x1ba9df[0x1]*_0x294cfa+_0x567d59[0x1]*_0x5d0edb+_0x5420ce[0x1]*_0x35bff6;return this['_calcUV'](_0x268b10,_0x33a580);}['_calcUV'](_0x4fe372,_0x4da09d){function _0x282e1d(_0x3929bd,_0x37b025){return _0x281908(_0x3929bd,_0x37b025-0x389);}return[+_0x4fe372,+_0x4da09d,Math[_0x282e1d(0x246,0x2c8)](_0x4fe372*_0x4fe372+_0x4da09d*_0x4da09d)];}[_0x281908(-0x102,-0xc8)](_0x11ef34,_0x3fd86e){function _0x43f59b(_0x162b56,_0x598f84){return _0x281908(_0x162b56,_0x598f84- -0xcd);}if(!this[_0x43f59b(-0x13d,-0x193)](_0x11ef34,_0x3fd86e))return null;const _0x1cab42=this[_0x43f59b(-0x309,-0x282)](_0x11ef34,_0x3fd86e),_0x3c9331=this['getUVByXY'](_0x1cab42[0x0],_0x1cab42[0x1]);function _0x44396b(_0xcae85,_0x300a13){return _0x281908(_0xcae85,_0x300a13-0x4ea);}return _0x3c9331;}['isInExtent'](_0x32931e,_0x58ff25){function _0x50c9e0(_0x4188ac,_0x4fac2a){return _0x281908(_0x4188ac,_0x4fac2a-0x46f);}return _0x32931e>=this['xmin']&&_0x32931e<=this['xmax']&&_0x58ff25>=this[_0x50c9e0(0x2ce,0x314)]&&_0x58ff25<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x1a1fb6=fRandomByfloat(this['xmin'],this['xmax']),_0x13f612=fRandomByfloat(this['ymin'],this[_0x54ecec(0x384,0x31f)]);function _0x54ecec(_0x232dc6,_0x587047){return _0x2f2038(_0x232dc6-0x1c8,_0x587047);}const _0x33c4ec={};_0x33c4ec[_0x131d13(-0x29f,-0x28c)]=_0x13f612;function _0x131d13(_0x59d672,_0x585ce5){return _0x281908(_0x585ce5,_0x59d672- -0x13b);}return _0x33c4ec['lng']=_0x1a1fb6,_0x33c4ec;}['getParticles'](){let _0x4d8dfc,_0x5a49a0,_0x1954dd;function _0x474c53(_0x5a73d9,_0x38aac3){return _0x2f2038(_0x38aac3- -0x407,_0x5a73d9);}function _0x4ff007(_0x116053,_0x192407){return _0x281908(_0x116053,_0x192407-0x5f8);}for(let _0x4edf2c=0x0,_0x278f63=this[_0x4ff007(0x44f,0x45d)]['length'];_0x4edf2c<_0x278f63;_0x4edf2c++){let _0x2766b3=this['particles'][_0x4edf2c];_0x2766b3['age']<=0x0&&(_0x2766b3=this['_randomParticle'](_0x2766b3));if(_0x2766b3[_0x474c53(-0x2c5,-0x28c)]>0x0){const _0x41c978=_0x2766b3[_0x4ff007(0x400,0x469)],_0x222044=_0x2766b3['tlat'];_0x1954dd=this[_0x474c53(-0x23c,-0x211)](_0x41c978,_0x222044),_0x1954dd?(_0x4d8dfc=_0x41c978+this[_0x474c53(-0x362,-0x2db)][0x0]*_0x1954dd[0x0],_0x5a49a0=_0x222044+this['_calc_speedRate'][0x1]*_0x1954dd[0x1],_0x2766b3['lng']=_0x41c978,_0x2766b3[_0x474c53(-0x2bd,-0x2ad)]=_0x222044,_0x2766b3['tlng']=_0x4d8dfc,_0x2766b3[_0x474c53(-0x27a,-0x307)]=_0x5a49a0,_0x2766b3['speed']=_0x1954dd[0x2],_0x2766b3['age']--):_0x2766b3[_0x474c53(-0x2be,-0x28c)]=0x0;}}return this['particles'];}['_randomParticle'](_0x504730){let _0x513de2,_0x428586;for(let _0x5eee4f=0x0;_0x5eee4f<0x1e;_0x5eee4f++){_0x513de2=this['getRandomLatLng'](),_0x428586=this[_0x258b3c(-0x1ce,-0x1c2)](_0x513de2['lng'],_0x513de2['lat']);if(_0x428586&&_0x428586[0x2]>0x0)break;}if(!_0x428586)return _0x504730;const _0x5707f5=_0x513de2['lng']+this[_0x43be90(0x2bf,0x2de)][0x0]*_0x428586[0x0],_0x178b16=_0x513de2['lat']+this['_calc_speedRate'][0x1]*_0x428586[0x1];_0x504730[_0x43be90(0x38c,0x3d4)]=_0x513de2['lng'],_0x504730['lat']=_0x513de2[_0x43be90(0x380,0x30c)],_0x504730['tlng']=_0x5707f5;function _0x258b3c(_0x139521,_0x171082){return _0x281908(_0x139521,_0x171082- -0xfa);}_0x504730[_0x258b3c(-0x345,-0x2b8)]=_0x178b16,_0x504730['age']=Math['round'](Math['random']()*this['maxAge']);function _0x43be90(_0x3c3324,_0x2c3007){return _0x2f2038(_0x2c3007-0x1b2,_0x3c3324);}return _0x504730[_0x43be90(0x3cb,0x351)]=_0x428586[0x2],_0x504730;}['destroy'](){for(const _0x1c7265 in this){delete this[_0x1c7265];}}}function fRandomByfloat(_0x335d9f,_0x49a70b){return _0x335d9f+Math['random']()*(_0x49a70b-_0x335d9f);}const Cesium=mars3d__namespace[_0x281908(-0x1fa,-0x177)],BaseLayer=mars3d__namespace[_0x281908(-0x131,-0x129)][_0x2f2038(0x19b,0x222)];class CanvasWindLayer extends BaseLayer{constructor(_0x313438={}){function _0x3a5e65(_0x82fc1c,_0x1a45f4){return _0x2f2038(_0x82fc1c-0x103,_0x1a45f4);}function _0x4385a5(_0x23063e,_0x50d6c5){return _0x2f2038(_0x50d6c5-0x18c,_0x23063e);}super(_0x313438),this[_0x3a5e65(0x283,0x269)](_0x313438),this[_0x3a5e65(0x252,0x231)]=null,_0x313438[_0x4385a5(0x23d,0x296)]&&_0x313438[_0x3a5e65(0x256,0x21c)]&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x313438));}['_setOptionsHook'](_0x3dfd39,_0x455641){this['frameTime']=0x3e8/(_0x3dfd39['frameRate']||0xa),this['_pointerEvents']=this[_0x4e2f77(0xa8,0x10e)][_0x4e2f77(0x17b,0x10d)]??![],this[_0x329eb3(0x2da,0x35a)]=_0x3dfd39['color']||'#ffffff',this['lineWidth']=_0x3dfd39[_0x329eb3(0x304,0x28f)]||0x1,this[_0x4e2f77(0xbf,0x8b)]=_0x3dfd39['fixedHeight']??0x0;function _0x329eb3(_0x2101a4,_0x5cf740){return _0x2f2038(_0x2101a4-0x1cd,_0x5cf740);}this['reverseY']=_0x3dfd39['reverseY']??![];function _0x4e2f77(_0xea85bf,_0x3d64ab){return _0x281908(_0xea85bf,_0x3d64ab-0x238);}this['windField']&&this[_0x329eb3(0x333,0x34f)]['setOptions'](_0x3dfd39);}get['layer'](){return this['canvas'];}get['canvasWidth'](){function _0x602752(_0x2a9336,_0x532d17){return _0x281908(_0x532d17,_0x2a9336-0x17f);}return this['_map']['scene'][_0x602752(0x10,-0x6b)]['clientWidth'];}get['canvasHeight'](){return this['_map']['scene']['canvas']['clientHeight'];}get['pointerEvents'](){function _0x4ffe97(_0x23d385,_0x37b53b){return _0x281908(_0x23d385,_0x37b53b-0xd6);}return this[_0x4ffe97(-0xaa,-0x5b)];}set[_0x281908(-0x198,-0x12b)](_0x43a76a){this[_0x3d2dd6(0x4b6,0x50a)]=_0x43a76a;function _0x3d2dd6(_0x3243ae,_0x5b4416){return _0x281908(_0x5b4416,_0x3243ae-0x5e7);}function _0x54e037(_0x2c7280,_0x577661){return _0x2f2038(_0x577661- -0x122,_0x2c7280);}if(!this[_0x54e037(0x9e,0x2d)])return;_0x43a76a?this[_0x54e037(0x29,0x2d)]['style']['pointer-events']='all':this['canvas']['style'][_0x3d2dd6(0x47d,0x450)]='none';}get['particlesNumber'](){function _0x8ce118(_0x4ed11f,_0x3f9ff3){return _0x281908(_0x3f9ff3,_0x4ed11f-0x29f);}return this[_0x8ce118(0x175,0x123)]['particlesNumber'];}set['particlesNumber'](_0x3a0dd9){function _0x4303f2(_0x903778,_0x2b1dc3){return _0x2f2038(_0x2b1dc3-0x28e,_0x903778);}function _0xe4fc6a(_0x5934a0,_0x114260){return _0x281908(_0x114260,_0x5934a0-0x177);}this[_0x4303f2(0x3d7,0x422)][_0xe4fc6a(0x5d,0x44)]=_0x3a0dd9,clearTimeout(this['_canrefresh']),this[_0x4303f2(0x380,0x3c9)]=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){return this['options']['speedRate'];}set['speedRate'](_0x23be74){function _0x3f1af1(_0x1105ce,_0x1725a7){return _0x2f2038(_0x1725a7- -0x20e,_0x1105ce);}this['options']['speedRate']=_0x23be74,this['windField']&&(this['windField'][_0x3f1af1(-0x6b,-0x24)]=_0x23be74);}get['maxAge'](){function _0x44e325(_0x913f40,_0x472ca2){return _0x281908(_0x472ca2,_0x913f40- -0x153);}function _0x244bf8(_0x80f74d,_0x4cf1a3){return _0x2f2038(_0x4cf1a3-0x61,_0x80f74d);}return this[_0x244bf8(0x235,0x1f5)][_0x44e325(-0x27b,-0x2e8)];}set['maxAge'](_0x28150f){this['options']['maxAge']=_0x28150f;function _0x166882(_0x2a5c23,_0x47cd8a){return _0x2f2038(_0x2a5c23-0xa,_0x47cd8a);}this[_0x166882(0x170,0x129)]&&(this['windField']['maxAge']=_0x28150f);}get['data'](){return this['windData'];}set['data'](_0x4240ae){function _0x5e4b7e(_0x4eb0eb,_0x3c5340){return _0x281908(_0x3c5340,_0x4eb0eb-0x5ca);}this[_0x5e4b7e(0x442,0x49e)](_0x4240ae);}[_0x2f2038(0x14b,0x155)](_0x5ce7f8){function _0x479c9b(_0x399079,_0x1b66d1){return _0x281908(_0x399079,_0x1b66d1-0x530);}_0x5ce7f8?this['_addedHook']():(this[_0x479c9b(0x484,0x466)]&&(this['options']['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x1855b6(_0xdf7812,_0x3369f5){return _0x2f2038(_0x3369f5-0x20f,_0xdf7812);}this['options']['worker']?this['initWorker']():this[_0x1855b6(0x318,0x375)]=new CanvasWindField(this['options']);}[_0x281908(-0x9a,-0xf5)](){this['canvas']=this[_0x281c9d(0x3e9,0x406)]();const _0x58cd27={};_0x58cd27[_0x281c9d(0x41c,0x4ae)]=!![],this[_0x281c9d(0x49f,0x487)]=this[_0x43c0a9(0x1e7,0x184)][_0x43c0a9(0x277,0x229)]('2d',_0x58cd27);function _0x281c9d(_0x581892,_0x265498){return _0x281908(_0x581892,_0x265498-0x597);}function _0x43c0a9(_0x20165e,_0x5001b6){return _0x2f2038(_0x20165e-0x98,_0x5001b6);}this['bindEvent'](),this['options']['data']&&this[_0x281c9d(0x459,0x40f)](this['options']['data']);}[_0x281908(-0x193,-0x133)](){function _0x1103cc(_0x14041a,_0x2738e1){return _0x281908(_0x14041a,_0x2738e1- -0xf7);}this[_0x1103cc(-0x1ff,-0x265)](),this['unbindEvent']();function _0x4582c8(_0x388f44,_0x347823){return _0x281908(_0x347823,_0x388f44-0x1a5);}this['canvas']&&(this['_map']['container'][_0x4582c8(0xd0,0x13d)](this['canvas']),delete this[_0x4582c8(0x36,0x73)]);}[_0x2f2038(0x12d,0xc6)](){const _0x41b1ad=mars3d__namespace['DomUtil'][_0x92d6b1(0x78,0x95)](_0x53cb3b(-0xa9,-0x8e),'mars3d-canvasWind',this[_0x53cb3b(-0x114,-0x94)]['container']);_0x41b1ad[_0x92d6b1(0x7,0x99)][_0x53cb3b(-0xb,-0x37)]='absolute',_0x41b1ad['style'][_0x92d6b1(-0x5b,-0xbb)]='0px';function _0x92d6b1(_0x1a56b4,_0x51f535){return _0x281908(_0x51f535,_0x1a56b4-0x144);}_0x41b1ad['style']['left']='0px',_0x41b1ad['style'][_0x92d6b1(0xa0,0x31)]=this[_0x53cb3b(-0xb7,-0x94)]['scene']['canvas']['clientWidth']+'px',_0x41b1ad['style']['height']=this['_map']['scene'][_0x92d6b1(-0x2b,-0x27)]['clientHeight']+'px',_0x41b1ad[_0x92d6b1(0x7,-0x43)][_0x92d6b1(0x19,-0x59)]=this[_0x92d6b1(0x13,0x26)]?'auto':'none',_0x41b1ad[_0x53cb3b(-0xc4,-0x5c)]['zIndex']=this[_0x53cb3b(0x2b,-0x49)][_0x53cb3b(-0x4b,-0x9e)]??0x9,_0x41b1ad[_0x92d6b1(0xa0,0xbe)]=this['_map']['scene'][_0x92d6b1(-0x2b,0xe)][_0x92d6b1(-0xd,-0x5b)],_0x41b1ad['height']=this['_map']['scene']['canvas']['clientHeight'];function _0x53cb3b(_0x197fb3,_0xa10dbd){return _0x2f2038(_0xa10dbd- -0x1dd,_0x197fb3);}return _0x41b1ad;}['resize'](){function _0x31ba35(_0x59d8ce,_0x3c1596){return _0x281908(_0x59d8ce,_0x3c1596-0x148);}function _0x1a75c9(_0x46038e,_0x17da81){return _0x2f2038(_0x17da81-0x1cd,_0x46038e);}this[_0x31ba35(-0x92,-0x27)]&&(this['canvas'][_0x31ba35(0x52,0xb)]['width']=this['_map'][_0x31ba35(0x0,-0x68)]['canvas'][_0x31ba35(-0x9a,-0x9)]+'px',this['canvas'][_0x31ba35(-0x19,0xb)]['height']=this['_map'][_0x1a75c9(0x28e,0x2db)]['canvas']['clientHeight']+'px',this[_0x31ba35(0x6,-0x27)]['width']=this[_0x31ba35(0x47,-0x2d)]['scene']['canvas']['clientWidth'],this[_0x31ba35(0x5e,-0x27)][_0x1a75c9(0x3bf,0x34b)]=this[_0x1a75c9(0x378,0x316)][_0x1a75c9(0x2ac,0x2db)]['canvas'][_0x31ba35(0x63,0x16)]);}['bindEvent'](){const _0x13a61f=this;function _0xfba718(_0x559113,_0x2e3405){return _0x2f2038(_0x2e3405-0x1d8,_0x559113);}let _0xebb334=Date[_0x5ce952(0x143,0x18e)]();(function _0xe5cbe7(){function _0x208cec(_0x519252,_0x1fd0a6){return _0x5ce952(_0x519252,_0x1fd0a6- -0x98);}function _0x39fec9(_0x574bc4,_0x5e08df){return _0x5ce952(_0x574bc4,_0x5e08df-0x19);}if(_0x13a61f['isDestroy'])return;_0x13a61f['_animateFrame']=window['requestAnimationFrame'](_0xe5cbe7);if(_0x13a61f['show']&&_0x13a61f[_0x208cec(0xa5,0x35)]){const _0x4ac44f=Date['now'](),_0x47604d=_0x4ac44f-_0xebb334;_0x47604d>_0x13a61f['frameTime']&&(_0xebb334=_0x4ac44f-_0x47604d%_0x13a61f['frameTime'],_0x13a61f[_0x208cec(-0x3d,0x31)]());}}());function _0x5ce952(_0x288932,_0x1cc344){return _0x281908(_0x288932,_0x1cc344-0x225);}window['addEventListener'](_0xfba718(0x37b,0x3a0),this[_0x5ce952(0xf8,0x12f)]['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this[_0xfba718(0x2dc,0x321)]['on'](mars3d__namespace['EventType']['wheel'],this[_0x5ce952(0x144,0x18d)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0xfba718(0x31e,0x321)]['on'](mars3d__namespace['EventType'][_0x5ce952(0x1b9,0x16e)],this[_0xfba718(0x366,0x36a)],this));}['unbindEvent'](){window[_0x31fae0(-0x1a2,-0x213)](this['_animateFrame']);function _0x234a92(_0x46c45e,_0x1127ad){return _0x2f2038(_0x1127ad- -0x1d1,_0x46c45e);}delete this['_animateFrame'];function _0x31fae0(_0x4b42d,_0x516876){return _0x2f2038(_0x4b42d- -0x3b6,_0x516876);}window[_0x234a92(-0xcf,-0x7a)]('resize',this[_0x234a92(-0x11,-0x9)]),this['options']['mouseHidden']&&(this['_map'][_0x234a92(0x47,0x16)](mars3d__namespace[_0x234a92(-0x5b,-0x16)][_0x31fae0(-0x1ff,-0x1e4)],this['_onMapWhellEvent'],this),this['_map'][_0x234a92(-0x45,0x16)](mars3d__namespace[_0x31fae0(-0x1fb,-0x17b)][_0x234a92(-0x52,-0x85)],this[_0x31fae0(-0x19d,-0x18d)],this),this[_0x234a92(-0xea,-0x88)]['off'](mars3d__namespace['EventType']['mouseUp'],this[_0x31fae0(-0x224,-0x1a8)],this),this['_map']['off'](mars3d__namespace[_0x31fae0(-0x1fb,-0x227)]['mouseMove'],this[_0x31fae0(-0x2b2,-0x2ee)],this));}['_onMapWhellEvent'](_0x453dd7){clearTimeout(this[_0x161ff4(0x1bf,0x12d)]);function _0x161ff4(_0x271a14,_0x4be3d1){return _0x2f2038(_0x4be3d1- -0x5c,_0x271a14);}if(!this['show']||!this['canvas'])return;function _0x253aad(_0x2b4eb,_0x334610){return _0x2f2038(_0x2b4eb-0x313,_0x334610);}this['canvas']['style'][_0x161ff4(0x1a6,0x180)]=_0x253aad(0x428,0x449),this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;function _0x4e4c4f(_0x13afa9,_0x4c6a2e){return _0x161ff4(_0x4c6a2e,_0x13afa9-0x1b2);}this['redraw']();function _0x1a316a(_0xb31b86,_0x102d12){return _0x161ff4(_0xb31b86,_0x102d12- -0x168);}this[_0x1a316a(-0xe8,-0x75)][_0x1a316a(0x4f,-0x43)][_0x1a316a(0x4,0x18)]=_0x4e4c4f(0x369,0x39a);},0xc8);}['_onMouseDownEvent'](_0x43b35f){this['mouse_down']=!![];function _0x13a82b(_0x167085,_0x16ca42){return _0x281908(_0x167085,_0x16ca42-0x2dc);}this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x290df7(_0x40f4cd,_0x3d1ea8){return _0x281908(_0x40f4cd,_0x3d1ea8-0x13a);}this[_0x290df7(-0xb0,-0x3b)]['on'](mars3d__namespace[_0x13a82b(0x1d2,0x1d9)]['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x10d32d){function _0x5b53e8(_0x497e8c,_0x1cac4b){return _0x281908(_0x497e8c,_0x1cac4b-0x62d);}function _0x8d7de5(_0x986b29,_0x38af06){return _0x2f2038(_0x986b29- -0x432,_0x38af06);}if(!this['show']||!this[_0x8d7de5(-0x2e3,-0x31f)])return;this['mouse_down']&&(this['canvas']['style']['visibility']=_0x5b53e8(0x4c9,0x484),this[_0x8d7de5(-0x2c3,-0x27c)]=!![]);}[_0x2f2038(0x192,0x1fa)](_0x3f02e6){if(!this[_0x3c56a4(0x49b,0x50c)]||!this['canvas'])return;this['_map']['off'](mars3d__namespace[_0x3ef2fa(0x270,0x2e0)]['mouseMove'],this['_onMouseMoveEvent'],this);function _0x3c56a4(_0x426f8b,_0x41213c){return _0x281908(_0x41213c,_0x426f8b-0x601);}function _0x3ef2fa(_0x1d46bb,_0x285647){return _0x281908(_0x285647,_0x1d46bb-0x373);}this['mouse_down']&&this[_0x3ef2fa(0x224,0x2b3)]&&this['redraw'](),this['canvas'][_0x3c56a4(0x4c4,0x505)]['visibility']=_0x3ef2fa(0x2c8,0x314),this['mouse_down']=![],this['mouse_move']=![];}['setData'](_0x124049){function _0x3c3f6c(_0x1a2302,_0x1b3777){return _0x281908(_0x1b3777,_0x1a2302-0x59c);}this['clear'](),this[_0x32f77f(0x1e4,0x25e)]=_0x124049;function _0x32f77f(_0x38798b,_0x32c58e){return _0x2f2038(_0x32c58e-0x6a,_0x38798b);}this['windField']['setDate'](_0x124049),this[_0x3c3f6c(0x44e,0x41d)]();}[_0x281908(-0x1b1,-0x14e)](){if(!this['show'])return;this['windField']['setOptions'](this[_0x35c358(0x371,0x334)]);function _0x35c358(_0x524eac,_0x261ed5){return _0x2f2038(_0x524eac-0x1dd,_0x261ed5);}function _0x2f3a8c(_0xbc70de,_0x54ea91){return _0x2f2038(_0xbc70de- -0x2ed,_0x54ea91);}this[_0x2f3a8c(-0x18b,-0x19f)]();}['update'](){if(this['_updateIng'])return;this['_updateIng']=!![];function _0x136581(_0x2fcf5b,_0x52fba8){return _0x281908(_0x2fcf5b,_0x52fba8-0x4cf);}if(this['worker'])this['windField'][_0x194a23(0x17c,0x1b0)]();else{const _0xd8dab5=this[_0x136581(0x39b,0x377)]['getParticles']();this['_drawLines'](_0xd8dab5);}function _0x194a23(_0x4689af,_0x5b10cf){return _0x2f2038(_0x4689af-0x1a,_0x5b10cf);}this[_0x136581(0x3f8,0x3b3)]=![];}['_drawLines'](_0x31a7e1){function _0x188d7b(_0x29f9a8,_0x3f1c5b){return _0x2f2038(_0x29f9a8-0x1be,_0x3f1c5b);}this[_0x570058(0x1df,0x1f5)]['globalCompositeOperation']='destination-in',this['canvasContext'][_0x570058(0x1d1,0x24a)](0x0,0x0,this['canvasWidth'],this[_0x570058(0x24e,0x245)]),this['canvasContext']['globalCompositeOperation']=_0x570058(0x1e7,0x1a9),this['canvasContext']['globalAlpha']=0.9;const _0x264a26=this[_0x188d7b(0x307,0x374)]['scene'][_0x188d7b(0x390,0x3fa)]!==Cesium[_0x188d7b(0x36f,0x31b)]['SCENE3D'],_0x4859d0=this['canvasWidth']*0.25;function _0x570058(_0x18d4f5,_0x417796){return _0x2f2038(_0x18d4f5-0x31,_0x417796);}if(this[_0x570058(0x183,0x17e)])for(let _0xe66383=0x0,_0x5b3a60=_0x31a7e1[_0x570058(0x20c,0x24d)];_0xe66383<_0x5b3a60;_0xe66383++){const _0x240627=_0x31a7e1[_0xe66383],_0x4aba3c=this['_tomap'](_0x240627[_0x570058(0x253,0x2b7)],_0x240627[_0x570058(0x18b,0x1c3)],_0x240627),_0x2d9298=this['_tomap'](_0x240627['tlng'],_0x240627[_0x570058(0x131,0x13b)],_0x240627);if(!_0x4aba3c||!_0x2d9298)continue;if(_0x264a26&&Math[_0x188d7b(0x3e3,0x401)](_0x4aba3c[0x0]-_0x2d9298[0x0])>=_0x4859d0)continue;this[_0x570058(0x1df,0x15e)][_0x188d7b(0x372,0x36d)](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext'][_0x570058(0x14b,0xef)]=this[_0x570058(0x183,0xf9)][_0x570058(0x144,0x127)](_0x240627['speed']),this[_0x570058(0x1df,0x251)]['moveTo'](_0x4aba3c[0x0],_0x4aba3c[0x1]),this[_0x570058(0x1df,0x194)]['lineTo'](_0x2d9298[0x0],_0x2d9298[0x1]),this['canvasContext'][_0x570058(0x21e,0x1bd)]();}else{this['canvasContext'][_0x188d7b(0x372,0x3a0)](),this[_0x188d7b(0x36c,0x3ba)]['lineWidth']=this[_0x188d7b(0x2f5,0x2d9)],this['canvasContext'][_0x188d7b(0x2d8,0x2db)]=this['color'];for(let _0x5dde2d=0x0,_0x50986b=_0x31a7e1[_0x570058(0x20c,0x1bd)];_0x5dde2d<_0x50986b;_0x5dde2d++){const _0xf1aef7=_0x31a7e1[_0x5dde2d],_0x2b5cec=this[_0x188d7b(0x371,0x3d3)](_0xf1aef7['lng'],_0xf1aef7['lat'],_0xf1aef7),_0x138e88=this['_tomap'](_0xf1aef7[_0x570058(0x160,0x155)],_0xf1aef7[_0x570058(0x131,0x174)],_0xf1aef7);if(!_0x2b5cec||!_0x138e88)continue;if(_0x264a26&&Math['abs'](_0x2b5cec[0x0]-_0x138e88[0x0])>=_0x4859d0)continue;this[_0x188d7b(0x36c,0x3af)]['moveTo'](_0x2b5cec[0x0],_0x2b5cec[0x1]),this[_0x570058(0x1df,0x1be)]['lineTo'](_0x138e88[0x0],_0x138e88[0x1]);}this['canvasContext']['stroke']();}}[_0x2f2038(0x1b3,0x1a1)](_0x1a19ca,_0xa6f6b3,_0x38bc31){function _0x4a4d22(_0xb815bb,_0x1b964a){return _0x281908(_0x1b964a,_0xb815bb-0x52f);}const _0x4b9a55=Cesium['Cartesian3'][_0x4a4d22(0x466,0x4d0)](_0x1a19ca,_0xa6f6b3,this['fixedHeight']),_0x28fba4=this['_map'][_0x10474e(0xc,-0x42)];function _0x10474e(_0x17dba1,_0x512d44){return _0x281908(_0x17dba1,_0x512d44-0x16e);}if(_0x28fba4['mode']===Cesium['SceneMode']['SCENE3D']){const _0x3a6752=new Cesium['EllipsoidalOccluder'](_0x28fba4[_0x10474e(0x20,-0x41)]['ellipsoid'],_0x28fba4['camera']['positionWC']),_0x19f42c=_0x3a6752[_0x10474e(0xc,-0x8)](_0x4b9a55);if(!_0x19f42c)return _0x38bc31[_0x4a4d22(0x3ec,0x40a)]=0x0,null;}const _0x5a743c=mars3d__namespace[_0x4a4d22(0x47e,0x4b0)]['toWindowCoordinates'](this['_map'][_0x4a4d22(0x37f,0x372)],_0x4b9a55);return _0x5a743c?[_0x5a743c['x'],_0x5a743c['y']]:null;}['clear'](){this['windField']['clear'](),delete this['windData'];}[_0x281908(-0x1c4,-0x150)](){this['worker']=new Worker(this['options']['worker']),this[_0x27ebc1(0x361,0x305)][_0x205476(-0xc2,-0xdc)]=_0x6369be=>{function _0x3f6a82(_0x228b91,_0xd5999d){return _0x205476(_0xd5999d- -0x13a,_0x228b91);}this['_drawLines'](_0x6369be['data'][_0x3f6a82(-0x1ff,-0x28b)]),this['_updateIng2']=![];},this[_0x205476(-0x10e,-0x18b)]={'init':_0x190785=>{const _0x2f20ee={};_0x2f20ee['type']='init',_0x2f20ee['options']=_0x190785,this['worker']['postMessage'](_0x2f20ee);},'setOptions':_0x45cf9b=>{const _0x2f5935={};function _0x110b62(_0x412ee8,_0x185f30){return _0x27ebc1(_0x412ee8- -0x191,_0x185f30);}_0x2f5935['type']='setOptions',_0x2f5935['options']=_0x45cf9b;function _0xc64fae(_0x317828,_0x4f3013){return _0x205476(_0x4f3013-0x3b,_0x317828);}this[_0xc64fae(-0xf,-0x1d)][_0x110b62(0x12b,0xd4)](_0x2f5935);},'setDate':_0x4108d9=>{const _0x339114={};function _0xefb673(_0x320ecb,_0x28b098){return _0x205476(_0x28b098- -0x6,_0x320ecb);}function _0x256eb6(_0x37494a,_0x19899e){return _0x205476(_0x19899e- -0x80,_0x37494a);}_0x339114['type']='setDate',_0x339114['data']=_0x4108d9,this[_0x256eb6(-0xb3,-0xd8)][_0x256eb6(-0xe9,-0x17d)](_0x339114);},'update':()=>{if(this['_updateIng2'])return;function _0x195845(_0x15b388,_0x5e7a67){return _0x27ebc1(_0x15b388-0x112,_0x5e7a67);}function _0x24e676(_0x20bcd3,_0x2d57b5){return _0x205476(_0x2d57b5-0x301,_0x20bcd3);}this['_updateIng2']=!![];const _0x3c56b9={};_0x3c56b9['type']='update',this[_0x24e676(0x280,0x2a9)][_0x24e676(0x257,0x204)](_0x3c56b9);},'clear':()=>{function _0x5e7501(_0x1b84c8,_0x1b8098){return _0x205476(_0x1b84c8- -0x1c3,_0x1b8098);}function _0x1409df(_0x4d2b0c,_0x2213b1){return _0x27ebc1(_0x2213b1- -0xcf,_0x4d2b0c);}const _0x45578b={};_0x45578b[_0x5e7501(-0x316,-0x303)]='clear',this[_0x1409df(0x2f3,0x292)][_0x5e7501(-0x2c0,-0x29c)](_0x45578b);}};function _0x205476(_0x6182ee,_0x215d66){return _0x281908(_0x215d66,_0x6182ee-0x4a);}function _0x27ebc1(_0x4c6bfe,_0x54a8e2){return _0x281908(_0x54a8e2,_0x4c6bfe-0x403);}this[_0x205476(-0x10e,-0x106)]['init'](this['options']);}}mars3d__namespace[_0x2f2038(0x106,0x77)][_0x2f2038(0xff,0x14e)](_0x281908(-0xb7,-0xe4),CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x2f2038(0x188,0x1c7)]=CanvasWindField,mars3d__namespace[_0x2f2038(0x1ff,0x25e)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x281908(-0xd5,-0xae)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x236af8={};_0x236af8[_0x2f2038(0x11d,0xb3)]=!![],Object[_0x281908(-0x180,-0x18e)](exports,'__esModule',_0x236af8);
15
15
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.8.1",
3
+ "version": "3.8.2",
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.8.1"
11
+ "mars3d": "~3.8.2"
12
12
  },
13
13
  "scripts": {
14
14
  "lint": "eslint ./src/**/*.{js,ts} --fix"