mars3d-wind 3.7.19 → 3.7.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/dist/mars3d-wind.js +0 -15
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.20",
|
|
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.7.
|
|
11
|
+
"mars3d": "~3.7.20"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
14
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|
package/dist/mars3d-wind.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
|
3
|
-
*
|
|
4
|
-
* 版本信息:v3.7.19
|
|
5
|
-
* 编译日期:2024-06-26 18:42:00
|
|
6
|
-
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
|
-
* 使用单位:免费公开版 ,2024-01-15
|
|
8
|
-
*/
|
|
9
|
-
(function (global, factory) {
|
|
10
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, (window.mars3d || require('mars3d'))) :
|
|
11
|
-
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
|
|
12
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
|
|
13
|
-
})(this, (function (exports, mars3d) {
|
|
14
|
-
'use strict';(function(_0x479bef,_0x3e1f43){function _0x5b8be8(_0x4d6dca,_0x32d254){return _0x3f65(_0x4d6dca- -0x328,_0x32d254);}function _0x1386dc(_0x40456b,_0x5f5bfb){return _0x3f65(_0x5f5bfb-0x384,_0x40456b);}const _0x52232a=_0x479bef();while(!![]){try{const _0x2e8508=-parseInt(_0x5b8be8(-0x199,-0x1fc))/0x1+-parseInt(_0x1386dc(0x4f1,0x536))/0x2+parseInt(_0x5b8be8(-0x1d8,-0x20a))/0x3+-parseInt(_0x1386dc(0x4eb,0x525))/0x4*(-parseInt(_0x1386dc(0x4d4,0x4fb))/0x5)+parseInt(_0x1386dc(0x501,0x4fd))/0x6*(-parseInt(_0x5b8be8(-0x236,-0x23d))/0x7)+-parseInt(_0x1386dc(0x4f8,0x509))/0x8+-parseInt(_0x1386dc(0x546,0x4ed))/0x9*(-parseInt(_0x5b8be8(-0x185,-0x14a))/0xa);if(_0x2e8508===_0x3e1f43)break;else _0x52232a['push'](_0x52232a['shift']());}catch(_0x165c68){_0x52232a['push'](_0x52232a['shift']());}}}(_0x113a,0xaaa2c));function _0x113a(){const _0x101a40=['randomizeParticles','destroyParticlesTextures','pixelFormat','age','getRandomLatLng','udata','canvas','PrimitiveType','speedRate','PixelFormat','red','429096PiCRkD','stroke','1550CTPKXc','maxParticles','initWorker','getWind','_onMap_preRenderEvent','Math','forEach','PI_OVER_TWO','speedFactor','data','vdata','primitiveType','Cesium','rawRenderState','atan2','2293142QNCHbH','register','PixelDatatype','DISABLE_GL_POSITION_LOG_DEPTH','bind','clear','lineWidth','height','createRawRenderState','mouseMove','sources','setData','Cartesian2','defined','BaseLayer','Rectangle','depthMask','once','depthTexture','maxAge','attributeLocations','left','Appearance','show','removeAll','currentParticlesPosition','_onMouseMoveEvent','resize','Draw','setOptions','reverseY','mouse_move','max','fillRect','bindEvent','PI_OVER_THREE','nextTrails','lineTo','globalAlpha','SCENE3D','pointerEvents','createRenderingTextures','grid','colors','_tomap','_createCanvas','canrefresh','_speedRate','OPAQUE','framebuffer','SceneMode','particlesTextures','getUVByPoint','context','particlesComputing','_calcUV','postMessage','_bilinearInterpolation','visibility','wgs84ToWindowCoordinates','style','FLOAT','#ffffff','rows','shaderProgram','segmentsDepth','particlesWind','GeometryAttribute','remove','ComponentDatatype','abs','applyViewerParameters','toDegrees','colorTable','floor','particlesRendering','lng','PrimitiveCollection','getV','addEventListener','canvasContext','NEAREST','_maxAge','beginPath','reverse','pixelDatatype','unbindEvent','length','lonRange','commandToExecute','lev','canvasWidth','umin','createSegmentsGeometry','geometry','pixelSize','7hqeMbn','owner','windTextures','scene','postProcessingPosition','particlesTextureSize','ceil','EventType','Compute','fill','vertexArray','segments','postProcessingSpeed','pow','mouseUp','get','worker','getOptions','push','fragmentShaderSource','_map','value','clearCommand','position','Framebuffer','update','ellipsoid','_animateFrame','autoClear','positionWC','globeBoundingSphere','rgb(206,255,255)','Cartesian3','LINEAR','create','_calc_speedRate','defines','TextureMinificationFilter','uniformMap','createTexture','sqrt','SceneTransforms','dimensions','getContext','uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}\x0a','strokeStyle','_onMouseUpEvent','Matrix4','createRenderingFramebuffers','layer','add','_onMapWhellEvent','array','now','mouseDown','toRadians','isPointVisible','lighter','mode','all','mouseHidden','enabled','clearFramebuffers','EllipsoidalOccluder','cols','xmax','pointer-events','ymax','clientWidth','frameTime','depthTest','vmin','WindUtil','round','clampToLatitudeRange','default','in\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0ain\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20postProcessingSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0aout\x20float\x20speedNormalization;\x0a\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x0a\x20\x20\x20\x20float\x20e2\x20=\x206.69437999014e-3;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x0a\x20\x20\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calcProjectedCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0,\x20360.0)\x20-\x20180.0;\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0);\x0a\x20\x20\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calcOffset(vec4\x20currentProjectedCoordinate,\x20vec4\x20nextProjectedCoordinate,\x20float\x20offsetSign)\x20{\x0a\x20\x20\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0);\x0a\x20\x20\x20\x20vec2\x20currentXY\x20=\x20(currentProjectedCoordinate.xy\x20/\x20currentProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x20\x20\x20\x20vec2\x20nextXY\x20=\x20(nextProjectedCoordinate.xy\x20/\x20nextProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0;\x0a\x20\x20\x20\x20vec2\x20direction\x20=\x20normalize(nextXY\x20-\x20currentXY);\x0a\x20\x20\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0,\x200.0);\x0a\x20\x20\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20\x20\x20vec3\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex);\x0a\x0a\x20\x20\x20\x20vec4\x20currentProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20vec4\x20nextProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(nextPosition.w\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(nextPosition.xyz);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20pointToUse\x20=\x20normal.x;\x20//\x20-1\x20is\x20currentProjectedCoordinate\x20and\x20+1\x20is\x20nextProjectedCoordinate\x0a\x20\x20\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20pixelSize\x20*\x20calcOffset(currentProjectedCoordinate,\x20nextProjectedCoordinate,\x20offsetSign);\x0a\x20\x20\x20\x20if\x20(pointToUse\x20<\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20currentProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20nextProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20speedNormalization\x20=\x20texture(postProcessingSpeed,\x20particleIndex).a;\x0a}\x0a','speed','viewerParameters','createRenderingPrimitives','lat','_canrefresh','mouse_down','ymin','0px','createParticlesTextures','latRange','wheel','maximum','destroy','framebuffers','tlat','Pass','redraw','2680581prkxIW','blending','//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x,\x20360.0);\x0a\x20\x20\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20-90.0,\x2090.0);\x0a\x0a\x20\x20\x20\x20vec3\x20index3D\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20index3D.z\x20=\x20(lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z;\x0a\x0a\x20\x20\x20\x20//\x20the\x20st\x20texture\x20coordinate\x20corresponding\x20to\x20(col,\x20row)\x20index\x0a\x20\x20\x20\x20//\x20example\x0a\x20\x20\x20\x20//\x20data\x20array\x20is\x20[0,\x201,\x202,\x203,\x204,\x205],\x20width\x20=\x203,\x20height\x20=\x202\x0a\x20\x20\x20\x20//\x20the\x20content\x20of\x20texture\x20will\x20be\x0a\x20\x20\x20\x20//\x20t\x201.0\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x203\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x202\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWind(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20\x20\x20float\x20result\x20=\x20texture(windTexture,\x20normalizedIndex2D).r;\x0a\x20\x20\x20\x20return\x20result;\x0a}\x0a\x0aconst\x20mat4\x20kernelMatrix\x20=\x20mat4(\x0a\x20\x20\x20\x200.0,\x20-1.0,\x202.0,\x20-1.0,\x20//\x20first\x20column\x0a\x20\x20\x20\x202.0,\x200.0,\x20-5.0,\x203.0,\x20//\x20second\x20column\x0a\x20\x20\x20\x200.0,\x201.0,\x204.0,\x20-3.0,\x20//\x20third\x20column\x0a\x20\x20\x20\x200.0,\x200.0,\x20-1.0,\x201.0\x20//\x20fourth\x20column\x0a);\x0afloat\x20oneDimensionInterpolation(float\x20t,\x20float\x20p0,\x20float\x20p1,\x20float\x20p2,\x20float\x20p3)\x20{\x0a\x20\x20\x20\x20vec4\x20tVec4\x20=\x20vec4(1.0,\x20t,\x20t\x20*\x20t,\x20t\x20*\x20t\x20*\x20t);\x0a\x20\x20\x20\x20tVec4\x20=\x20tVec4\x20/\x202.0;\x0a\x20\x20\x20\x20vec4\x20pVec4\x20=\x20vec4(p0,\x20p1,\x20p2,\x20p3);\x0a\x20\x20\x20\x20return\x20dot((tVec4\x20*\x20kernelMatrix),\x20pVec4);\x0a}\x0a\x0afloat\x20calculateB(sampler2D\x20windTexture,\x20float\x20t,\x20float\x20lon,\x20float\x20lat,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20float\x20lon0\x20=\x20floor(lon)\x20-\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon1\x20=\x20floor(lon);\x0a\x20\x20\x20\x20float\x20lon2\x20=\x20floor(lon)\x20+\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon3\x20=\x20floor(lon)\x20+\x202.0\x20*\x20interval.x;\x0a\x0a\x20\x20\x20\x20float\x20p0\x20=\x20getWind(windTexture,\x20vec3(lon0,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p1\x20=\x20getWind(windTexture,\x20vec3(lon1,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p2\x20=\x20getWind(windTexture,\x20vec3(lon2,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p3\x20=\x20getWind(windTexture,\x20vec3(lon3,\x20lat,\x20lev));\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(t,\x20p0,\x20p1,\x20p2,\x20p3);\x0a}\x0a\x0afloat\x20interpolateOneTexture(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20\x20\x20float\x20lat0\x20=\x20floor(lat)\x20-\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat1\x20=\x20floor(lat);\x0a\x20\x20\x20\x20float\x20lat2\x20=\x20floor(lat)\x20+\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat3\x20=\x20floor(lat)\x20+\x202.0\x20*\x20interval.y;\x0a\x0a\x20\x20\x20\x20vec2\x20coefficient\x20=\x20lonLatLev.xy\x20-\x20floor(lonLatLev.xy);\x0a\x20\x20\x20\x20float\x20b0\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat0,\x20lev);\x0a\x20\x20\x20\x20float\x20b1\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat1,\x20lev);\x0a\x20\x20\x20\x20float\x20b2\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat2,\x20lev);\x0a\x20\x20\x20\x20float\x20b3\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat3,\x20lev);\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(coefficient.y,\x20b0,\x20b1,\x20b2,\x20b3);\x0a}\x0a\x0avec3\x20bicubic(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bicubic_interpolation#Bicubic_convolution_algorithm\x0a\x20\x20\x20\x20float\x20u\x20=\x20interpolateOneTexture(U,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20v\x20=\x20interpolateOneTexture(V,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}\x0a','off','updateSpeed','isDestroy','currentParticlesSpeed','fromGeometry','_onMouseDownEvent','DrawCommand','levmin','LayerUtil','xmin','getUVByXY','type','min','lon','clientHeight','south','Color','drawingBufferWidth','nextParticlesPosition','color','nextParticlesSpeed','trails','203625vXvxlM','windData','ColorRamp','options','fixedHeight','primitives','createFramebuffer','_data','drawingBufferHeight','particlesNumber','_pointerEvents','outputTexture','globe','vertexShaderSource','35nlVVmk','tlng','7206942nbjjZO','_removedHook','isInExtent','RGB','updateViewerParameters','width','particles','windField','camera','zIndex','getOwnPropertyDescriptor','particleSystem','9725352qmdyRI','getFullscreenQuad','keys','uniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0auniform\x20float\x20dropRate;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0auniform\x20float\x20dropRateBump;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898,\x2078.233,\x204375.85453);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0,\x201.0);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0);\x0a\x20\x20\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20lev);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20\x20\x20return\x20particle.y\x20<\x20-90.0\x20||\x20particle.y\x20>\x2090.0;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20nextSpeed.a;\x0a\x0a\x20\x20\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec2\x20seed2\x20=\x20nextSpeed.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\x0a\x20\x20\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20\x20\x20if\x20(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(randomParticle,\x201.0);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}\x0a','STATIC_DRAW','normal','refreshParticles','TWO_PI','Geometry','ShaderSource','888999WKzSjD','defineProperty','DepthFunction','refreshTimer','textures','particleHeight','green'];_0x113a=function(){return _0x101a40;};return _0x113a();}function _interopNamespace(_0x7af02f){if(_0x7af02f&&_0x7af02f['__esModule'])return _0x7af02f;var _0xb81c92=Object[_0x5244ab(-0xd7,-0x14e)](null);_0x7af02f&&Object['keys'](_0x7af02f)[_0x7e71e8(0x467,0x47d)](function(_0x5a1073){function _0x5adc85(_0x20c6b8,_0x277582){return _0x5244ab(_0x20c6b8-0x214,_0x277582);}function _0x1edc53(_0x265acc,_0x47a46b){return _0x5244ab(_0x265acc-0x422,_0x47a46b);}if(_0x5a1073!==_0x5adc85(0x166,0x1b7)){var _0x386cce=Object[_0x1edc53(0x3ba,0x37c)](_0x7af02f,_0x5a1073);Object[_0x5adc85(0x1b9,0x229)](_0xb81c92,_0x5a1073,_0x386cce[_0x5adc85(0x12a,0xc5)]?_0x386cce:{'enumerable':!![],'get':function(){return _0x7af02f[_0x5a1073];}});}});_0xb81c92['default']=_0x7af02f;function _0x7e71e8(_0x399a2b,_0x1313f5){return _0x3f65(_0x399a2b-0x2be,_0x1313f5);}function _0x5244ab(_0x132d48,_0x57a103){return _0x3f65(_0x132d48- -0x1eb,_0x57a103);}return _0xb81c92;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$7=mars3d__namespace['Cesium'];function getU(_0x215bb2,_0x43c6c5){function _0x4989af(_0x3ea8d7,_0x31f3da){return _0x3f65(_0x3ea8d7-0x79,_0x31f3da);}const _0x40cf47=_0x215bb2*Math['cos'](Cesium$7[_0x4989af(0x221,0x1c3)]['toRadians'](_0x43c6c5));return _0x40cf47;}function getV(_0x55aa1c,_0x334989){function _0x5c4049(_0xdc9453,_0x3ec315){return _0x3f65(_0x3ec315- -0x74,_0xdc9453);}function _0x1eaf4f(_0xdfd98c,_0x391134){return _0x3f65(_0x391134- -0x25d,_0xdfd98c);}const _0x20f1ef=_0x55aa1c*Math['sin'](Cesium$7[_0x5c4049(0x134,0x134)][_0x5c4049(0x11a,0xb5)](_0x334989));return _0x20f1ef;}function getSpeed(_0x327ba8,_0x2abaef){function _0x245068(_0x40e39a,_0x43fc3b){return _0x3f65(_0x40e39a- -0x8,_0x43fc3b);}const _0x3b9916=Math[_0x5c2d95(0x175,0x163)](Math[_0x5c2d95(0x15a,0x14f)](_0x327ba8,0x2)+Math['pow'](_0x2abaef,0x2));function _0x5c2d95(_0xfb00ac,_0x285677){return _0x3f65(_0xfb00ac-0x5b,_0x285677);}return _0x3b9916;}function getDirection(_0x44c366,_0x347612){let _0x4edecc=Cesium$7[_0x8bf36c(-0xa7,-0xa2)]['toDegrees'](Math[_0x8bf36c(-0x9e,-0x3e)](_0x347612,_0x44c366));function _0xdaa309(_0x9c8e27,_0x3df51b){return _0x3f65(_0x9c8e27- -0x17e,_0x3df51b);}function _0x8bf36c(_0x28f4cb,_0x2e03b2){return _0x3f65(_0x28f4cb- -0x24f,_0x2e03b2);}return _0x4edecc+=_0x4edecc<0x0?0x168:0x0,_0x4edecc;}const _0xe88ac6={};_0xe88ac6['__proto__']=null,_0xe88ac6['getU']=getU,_0xe88ac6[_0x5333ea(-0x1d3,-0x14c)]=getV,_0xe88ac6['getSpeed']=getSpeed,_0xe88ac6['getDirection']=getDirection;var WindUtil=_0xe88ac6;const Cesium$6=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x58562b){this['commandType']=_0x58562b['commandType'],this['geometry']=_0x58562b[_0x392741(0x1cf,0x1d1)],this['attributeLocations']=_0x58562b[_0x392741(0x331,0x2a7)],this['primitiveType']=_0x58562b['primitiveType'],this['uniformMap']=_0x58562b[_0x392741(0x16a,0x1f9)];function _0x592999(_0xe12c9b,_0x364188){return _0x5333ea(_0x364188,_0xe12c9b-0x14a);}this['vertexShaderSource']=_0x58562b[_0x592999(0x94,0xc2)],this['fragmentShaderSource']=_0x58562b[_0x592999(0x23,0x58)],this['rawRenderState']=_0x58562b['rawRenderState'],this['framebuffer']=_0x58562b['framebuffer'],this['outputTexture']=_0x58562b['outputTexture'],this['autoClear']=_0x58562b[_0x392741(0x1a6,0x1ef)]??![],this['preExecute']=_0x58562b['preExecute'],this[_0x392741(0x21b,0x2aa)]=!![],this['commandToExecute']=undefined;function _0x392741(_0x5da89b,_0x455890){return _0x5333ea(_0x5da89b,_0x455890-0x30d);}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'](_0x196068){function _0x3cedcd(_0x372b02,_0x52c961){return _0x5333ea(_0x372b02,_0x52c961-0x50);}function _0x4be0e7(_0x4d275b,_0x42cd66){return _0x5333ea(_0x42cd66,_0x4d275b-0x415);}switch(this['commandType']){case'Draw':{const _0x3c148f=Cesium$6['VertexArray']['fromGeometry']({'context':_0x196068,'geometry':this['geometry'],'attributeLocations':this[_0x3cedcd(0x2,-0x16)],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']}),_0x30d17a={};_0x30d17a[_0x3cedcd(0x99,0xb)]=_0x196068,_0x30d17a[_0x4be0e7(0x3af,0x3ba)]=this['attributeLocations'],_0x30d17a['vertexShaderSource']=this[_0x3cedcd(-0xa5,-0x66)],_0x30d17a['fragmentShaderSource']=this[_0x3cedcd(-0x84,-0xd7)];const _0x18c9ff=Cesium$6['ShaderProgram']['fromCache'](_0x30d17a),_0x4fe95a=Cesium$6['RenderState']['fromCache'](this[_0x3cedcd(-0x49,-0x2c)]);return new Cesium$6[(_0x3cedcd(-0x37,-0x83))]({'primitiveType':this[_0x4be0e7(0x397,0x366)],'shaderProgram':_0x18c9ff,'vertexArray':_0x3c148f,'modelMatrix':Cesium$6[_0x3cedcd(-0x14b,-0xbb)]['IDENTITY'],'renderState':_0x4fe95a,'uniformMap':this['uniformMap'],'castShadows':![],'receiveShadows':![],'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass'][_0x4be0e7(0x3cb,0x36c)],'pickOnly':!![],'owner':this});}case _0x4be0e7(0x2e3,0x2e4):{const _0x36daf3={};return _0x36daf3[_0x4be0e7(0x2dc,0x30e)]=this,_0x36daf3['fragmentShaderSource']=this['fragmentShaderSource'],_0x36daf3[_0x3cedcd(-0xf2,-0xc4)]=this[_0x3cedcd(-0x128,-0xc4)],_0x36daf3[_0x4be0e7(0x35d,0x2d1)]=this['outputTexture'],_0x36daf3['persists']=!![],new Cesium$6['ComputeCommand'](_0x36daf3);}}}['setGeometry'](_0x465d40,_0x43d039){this['geometry']=_0x43d039;const _0x34166d=Cesium$6['VertexArray'][_0x299aa0(0x3aa,0x3b9)]({'context':_0x465d40,'geometry':this[_0x401c10(-0x6f,-0x11)],'attributeLocations':this[_0x401c10(0xea,0xc5)],'bufferUsage':Cesium$6['BufferUsage'][_0x401c10(0xec,0x88)]});function _0x401c10(_0x1bd0e1,_0x44ed6a){return _0x5333ea(_0x1bd0e1,_0x44ed6a-0x12b);}function _0x299aa0(_0x50a348,_0x3b2a10){return _0x5333ea(_0x50a348,_0x3b2a10-0x48e);}this['commandToExecute']['vertexArray']=_0x34166d;}['update'](_0x3dfa96){function _0x39946f(_0xaf524c,_0x20ab64){return _0x5333ea(_0xaf524c,_0x20ab64- -0x3e);}if(!this['show'])return;if(_0x3dfa96[_0x39946f(-0x169,-0x13e)]!==Cesium$6['SceneMode'][_0x457f22(0x8d,0xf8)])return;!Cesium$6['defined'](this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x3dfa96['context']));function _0x457f22(_0xbe9a44,_0x554c3e){return _0x5333ea(_0xbe9a44,_0x554c3e-0x14b);}Cesium$6['defined'](this['preExecute'])&&this['preExecute'](),Cesium$6['defined'](this[_0x457f22(0x3a,0x27)])&&_0x3dfa96['commandList'][_0x39946f(-0x1d5,-0x166)](this['clearCommand']),_0x3dfa96['commandList']['push'](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){function _0x586c18(_0x201475,_0x1dd226){return _0x5333ea(_0x1dd226,_0x201475-0x38d);}if(this['clearCommand']){var _0x1b8444,_0xad9575;(_0x1b8444=this['clearCommand'])!==null&&_0x1b8444!==void 0x0&&_0x1b8444['vertexArray']&&this[_0x586c18(0x269,0x2d4)][_0x586c18(0x25d,0x1dc)]['destroy'](),(_0xad9575=this[_0x586c18(0x269,0x260)])!==null&&_0xad9575!==void 0x0&&_0xad9575[_0x20d0f1(0x165,0x1c3)]&&this[_0x586c18(0x269,0x232)]['shaderProgram'][_0x20d0f1(0xbe,0xdb)](),delete this[_0x586c18(0x269,0x2cd)];}this['commandToExecute']&&(this['commandToExecute'][_0x20d0f1(0x6f,0x87)]&&this[_0x20d0f1(0x5e,0x25)][_0x586c18(0x25d,0x2b6)][_0x20d0f1(0xbe,0x134)](),this[_0x586c18(0x24c,0x1ce)][_0x20d0f1(0x165,0x146)]&&this[_0x586c18(0x24c,0x2d3)]['shaderProgram'][_0x20d0f1(0xbe,0x95)](),delete this['commandToExecute']);function _0x20d0f1(_0x116c4c,_0x12fb34){return _0x5333ea(_0x12fb34,_0x116c4c-0x19f);}return Cesium$6['destroyObject'](this);}}const Cesium$5=mars3d__namespace['Cesium'],Util=(function(){const _0x2045e9=function(){function _0x473e19(_0x5c0986,_0x3f4f26){return _0x3f65(_0x3f4f26-0x1a1,_0x5c0986);}const _0x5b04aa=new Cesium$5['Geometry']({'attributes':new Cesium$5['GeometryAttributes']({'position':new Cesium$5[(_0x473e19(0x3e9,0x396))]({'componentDatatype':Cesium$5['ComponentDatatype'][_0x473e19(0x3b9,0x390)],'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[_0x473e19(0x3a3,0x398)][_0x473e19(0x3e8,0x390)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});function _0x388add(_0x394fb4,_0x179022){return _0x3f65(_0x394fb4- -0x128,_0x179022);}return _0x5b04aa;},_0x403154=function(_0x379889,_0x877749){if(Cesium$5[_0x5d81e2(0x3ca,0x383)](_0x877749)){const _0x2e5288={};_0x2e5288['arrayBufferView']=_0x877749,_0x379889['source']=_0x2e5288;}function _0x5d81e2(_0x1952d5,_0x4e44cc){return _0x3f65(_0x1952d5-0x20b,_0x4e44cc);}const _0x2a96b1=new Cesium$5['Texture'](_0x379889);return _0x2a96b1;},_0x3bd2f6=function(_0x45e9b7,_0x37b8a6,_0x2f58c6){const _0xdd69c2={};_0xdd69c2['context']=_0x45e9b7,_0xdd69c2['colorTextures']=[_0x37b8a6];function _0x5dd513(_0x103b71,_0xb1904){return _0x3f65(_0x103b71- -0x146,_0xb1904);}_0xdd69c2[_0x5dd513(0x7e,0x3f)]=_0x2f58c6;const _0x41b010=new Cesium$5[(_0x113aaf(-0x277,-0x26a))](_0xdd69c2);function _0x113aaf(_0x148abe,_0x4ed2d3){return _0x3f65(_0x148abe- -0x381,_0x4ed2d3);}return _0x41b010;},_0x91fa94=function(_0x41dfda){const _0x5a6ef8=!![],_0x5aee93=![],_0x250198={};function _0x290006(_0x544866,_0x40db38){return _0x3f65(_0x544866- -0x1b,_0x40db38);}_0x250198['viewport']=_0x41dfda['viewport'];function _0x594b41(_0x5411f7,_0x21e7e1){return _0x3f65(_0x5411f7-0x218,_0x21e7e1);}_0x250198[_0x594b41(0x350,0x341)]=_0x41dfda['depthTest'],_0x250198['depthMask']=_0x41dfda[_0x290006(0x1a7,0x154)],_0x250198[_0x290006(0x136,0x1a3)]=_0x41dfda[_0x594b41(0x369,0x305)];const _0x2906ac=_0x250198,_0x4410c1=Cesium$5[_0x594b41(0x3e0,0x447)]['getDefaultRenderState'](_0x5a6ef8,_0x5aee93,_0x2906ac);return _0x4410c1;},_0x7aeee1=function(_0x28980c){const _0x251b1e={},_0x360f8c=Cesium$5['Math']['mod'](_0x28980c['west'],Cesium$5['Math'][_0x2d67c1(0x13,0x61)]),_0x1b4b71=Cesium$5['Math']['mod'](_0x28980c['east'],Cesium$5['Math']['TWO_PI']),_0x5e91ec=_0x28980c[_0x2d67c1(0x5,-0x10)];let _0x3d16a9,_0x1208dc;function _0x578489(_0x479ca6,_0x3bd52a){return _0x3f65(_0x3bd52a-0x2e5,_0x479ca6);}_0x5e91ec>Cesium$5['Math']['THREE_PI_OVER_TWO']?(_0x3d16a9=0x0,_0x1208dc=Cesium$5[_0x2d67c1(0x2f,0xba)]['TWO_PI']):_0x1b4b71-_0x360f8c<_0x5e91ec?(_0x3d16a9=_0x360f8c,_0x1208dc=_0x360f8c+_0x5e91ec):(_0x3d16a9=_0x360f8c,_0x1208dc=_0x1b4b71);_0x251b1e[_0x578489(0x41e,0x445)]={'min':Cesium$5[_0x578489(0x480,0x48d)]['toDegrees'](_0x3d16a9),'max':Cesium$5[_0x2d67c1(0x2f,0x12)]['toDegrees'](_0x1208dc)};const _0x4f0345=_0x28980c[_0x578489(0x48d,0x447)],_0x5ab853=_0x28980c['north'],_0x57d67a=_0x28980c['height'],_0x56de2c=_0x57d67a>Cesium$5['Math']['PI']/0xc?_0x57d67a/0x2:0x0;let _0x4dfcf8=Cesium$5['Math'][_0x578489(0x3e1,0x421)](_0x4f0345-_0x56de2c),_0x147132=Cesium$5['Math'][_0x578489(0x473,0x421)](_0x5ab853+_0x56de2c);_0x4dfcf8<-Cesium$5['Math']['PI_OVER_THREE']&&(_0x4dfcf8=-Cesium$5[_0x2d67c1(0x2f,0x23)]['PI_OVER_TWO']);_0x147132>Cesium$5[_0x2d67c1(0x2f,0xc)][_0x2d67c1(0x5c,0x75)]&&(_0x147132=Cesium$5[_0x578489(0x469,0x48d)][_0x2d67c1(0x31,0x29)]);_0x251b1e['lat']={'min':Cesium$5['Math']['toDegrees'](_0x4dfcf8),'max':Cesium$5[_0x578489(0x464,0x48d)][_0x578489(0x4e7,0x4df)](_0x147132)};function _0x2d67c1(_0x2b0247,_0x31b942){return _0x3f65(_0x2b0247- -0x179,_0x31b942);}return _0x251b1e;},_0x5aa0c1={};_0x5aa0c1['getFullscreenQuad']=_0x2045e9,_0x5aa0c1['createTexture']=_0x403154;function _0x39a112(_0x570935,_0x2ad32a){return _0x5333ea(_0x570935,_0x2ad32a- -0x85);}function _0x3963a8(_0x12dfd3,_0x48eca3){return _0x5333ea(_0x48eca3,_0x12dfd3-0x516);}return _0x5aa0c1[_0x39a112(-0xd3,-0x142)]=_0x3bd2f6,_0x5aa0c1[_0x3963a8(0x4a4,0x481)]=_0x91fa94,_0x5aa0c1['viewRectangleToLonLatRange']=_0x7aeee1,_0x5aa0c1;}());var segmentDraw_vert=_0x5333ea(-0x110,-0xee),segmentDraw_frag='uniform\x20sampler2D\x20colorTable;\x0a\x0ain\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20out_FragColor\x20=\x20texture(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}\x0a',fullscreen_vert='in\x20vec3\x20position;\x0ain\x20vec2\x20st;\x0a\x0aout\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0a}\x0a',trailDraw_frag='uniform\x20sampler2D\x20segmentsColorTexture;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0auniform\x20sampler2D\x20currentTrailsColor;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0auniform\x20float\x20fadeOpacity;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture(segmentsColorTexture,\x20textureCoordinate);\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture(currentTrailsColor,\x20textureCoordinate);\x0a\x0a\x20\x20\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0\x20*\x20trailsColor)\x20/\x20255.0;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0a\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20out_FragColor\x20+\x20pointsColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20out_FragColor\x20+\x20trailsColor;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20gl_FragDepth\x20=\x20min(pointsDepth,\x20trailsDepth);\x0a}\x0a',screenDraw_frag='uniform\x20sampler2D\x20trailsColorTexture;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture(trailsColorTexture,\x20textureCoordinate);\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20trailsColor;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20out_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x0a}\x0a';const Cesium$4=mars3d__namespace['Cesium'];class ParticlesRendering{constructor(_0x40fc6f,_0x3758af,_0x156db0,_0x1bbdae,_0x17a278){function _0x38ba7e(_0x218ad7,_0xd91b82){return _0x5333ea(_0x218ad7,_0xd91b82-0x4bc);}this[_0x38ba7e(0x4d6,0x46b)](_0x40fc6f,_0x3758af,_0x156db0['colors']),this[_0x5ae991(0x2b6,0x233)](_0x40fc6f);function _0x5ae991(_0x4e02d1,_0x53cd0a){return _0x5333ea(_0x53cd0a,_0x4e02d1-0x3c0);}this[_0x5ae991(0x2d5,0x300)](_0x40fc6f,_0x156db0,_0x1bbdae,_0x17a278);}[_0x351b06(-0xb7,-0xca)](_0x391bae,_0x1e01aa,_0x44fec4){const _0x5d5ca1={};_0x5d5ca1[_0xc93e2f(0x40a,0x45f)]=_0x391bae,_0x5d5ca1['width']=_0x391bae[_0xc93e2f(0x44f,0x3dc)];function _0xc93e2f(_0x31d043,_0x4fc496){return _0x5333ea(_0x31d043,_0x4fc496-0x4a4);}_0x5d5ca1['height']=_0x391bae[_0x471deb(-0x137,-0x17a)],_0x5d5ca1['pixelFormat']=Cesium$4['PixelFormat']['RGBA'],_0x5d5ca1[_0xc93e2f(0x303,0x35f)]=Cesium$4[_0xc93e2f(0x45a,0x42c)]['UNSIGNED_BYTE'];function _0x471deb(_0x193f38,_0x40b541){return _0x351b06(_0x40b541,_0x193f38- -0x3);}const _0x5cbccb=_0x5d5ca1,_0xc0758f={};_0xc0758f['context']=_0x391bae,_0xc0758f['width']=_0x391bae['drawingBufferWidth'],_0xc0758f['height']=_0x391bae['drawingBufferHeight'],_0xc0758f[_0xc93e2f(0x388,0x410)]=Cesium$4['PixelFormat']['DEPTH_COMPONENT'],_0xc0758f['pixelDatatype']=Cesium$4[_0xc93e2f(0x429,0x42c)]['UNSIGNED_INT'];const _0x10f4fe=_0xc0758f,_0x2bd5c5=_0x44fec4['length'],_0x513ebd=new Float32Array(_0x2bd5c5*0x3);for(let _0x5ec163=0x0;_0x5ec163<_0x2bd5c5;_0x5ec163++){const _0x27c3fc=Cesium$4['Color']['fromCssColorString'](_0x44fec4[_0x5ec163]);_0x513ebd[0x3*_0x5ec163]=_0x27c3fc[_0xc93e2f(0x3f6,0x418)],_0x513ebd[0x3*_0x5ec163+0x1]=_0x27c3fc[_0x471deb(-0x113,-0x152)],_0x513ebd[0x3*_0x5ec163+0x2]=_0x27c3fc['blue'];}const _0x54a495={'context':_0x391bae,'width':_0x2bd5c5,'height':0x1,'pixelFormat':Cesium$4[_0x471deb(-0x109,-0x17f)][_0xc93e2f(0x3a3,0x3f4)],'pixelDatatype':Cesium$4[_0x471deb(-0xf4,-0xd3)]['FLOAT'],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4[_0xc93e2f(0x3ae,0x38f)][_0xc93e2f(0x3eb,0x38b)],'magnificationFilter':Cesium$4['TextureMagnificationFilter'][_0x471deb(-0x195,-0x198)]})};this['textures']={'segmentsColor':Util['createTexture'](_0x5cbccb),'segmentsDepth':Util['createTexture'](_0x10f4fe),'currentTrailsColor':Util['createTexture'](_0x5cbccb),'currentTrailsDepth':Util['createTexture'](_0x10f4fe),'nextTrailsColor':Util['createTexture'](_0x5cbccb),'nextTrailsDepth':Util[_0xc93e2f(0x3ec,0x391)](_0x10f4fe),'colorTable':Util['createTexture'](_0x54a495,_0x513ebd)};}['createRenderingFramebuffers'](_0x23e9a2){function _0x97fef5(_0x438e55,_0x1a7ca2){return _0x351b06(_0x1a7ca2,_0x438e55-0x67d);}function _0x5d77ce(_0x47740e,_0x1bad06){return _0x351b06(_0x1bad06,_0x47740e-0x575);}this[_0x97fef5(0x524,0x575)]={'segments':Util[_0x97fef5(0x547,0x568)](_0x23e9a2,this['textures']['segmentsColor'],this['textures']['segmentsDepth']),'currentTrails':Util['createFramebuffer'](_0x23e9a2,this['textures']['currentTrailsColor'],this[_0x5d77ce(0x463,0x4b0)]['currentTrailsDepth']),'nextTrails':Util[_0x97fef5(0x547,0x4be)](_0x23e9a2,this[_0x97fef5(0x56b,0x505)]['nextTrailsColor'],this['textures']['nextTrailsDepth'])};}[_0x351b06(-0x191,-0x1b6)](_0x22bca2){const _0x4d9fd4=0x4;function _0x4298c1(_0x5151dd,_0x4de163){return _0x5333ea(_0x5151dd,_0x4de163-0x3f0);}let _0x159e0e=[];for(let _0xd8063d=0x0;_0xd8063d<_0x22bca2[_0x4f3aed(0x3fa,0x399)];_0xd8063d++){for(let _0x171357=0x0;_0x171357<_0x22bca2['particlesTextureSize'];_0x171357++){for(let _0x26fd39=0x0;_0x26fd39<_0x4d9fd4;_0x26fd39++){_0x159e0e['push'](_0xd8063d/_0x22bca2[_0x4298c1(0x25f,0x2bb)]),_0x159e0e['push'](_0x171357/_0x22bca2[_0x4f3aed(0x30e,0x399)]);}}}_0x159e0e=new Float32Array(_0x159e0e);function _0x4f3aed(_0x27a622,_0xfbdf27){return _0x5333ea(_0x27a622,_0xfbdf27-0x4ce);}let _0x4ea37d=[];const _0x208bf8=[-0x1,0x1],_0x545339=[-0x1,0x1];for(let _0x1de1ee=0x0;_0x1de1ee<_0x22bca2['maxParticles'];_0x1de1ee++){for(let _0x2ff91d=0x0;_0x2ff91d<_0x4d9fd4/0x2;_0x2ff91d++){for(let _0x3a5f60=0x0;_0x3a5f60<_0x4d9fd4/0x2;_0x3a5f60++){_0x4ea37d[_0x4298c1(0x2de,0x2c8)](_0x208bf8[_0x2ff91d]),_0x4ea37d[_0x4298c1(0x321,0x2c8)](_0x545339[_0x3a5f60]),_0x4ea37d[_0x4298c1(0x356,0x2c8)](0x0);}}}_0x4ea37d=new Float32Array(_0x4ea37d);const _0x3f032e=0x6*_0x22bca2[_0x4298c1(0x300,0x368)],_0x5b9a32=new Uint32Array(_0x3f032e);for(let _0x48cda2=0x0,_0x1a54fe=0x0,_0x480b22=0x0;_0x48cda2<_0x22bca2[_0x4298c1(0x2fd,0x368)];_0x48cda2++){_0x5b9a32[_0x1a54fe++]=_0x480b22+0x0,_0x5b9a32[_0x1a54fe++]=_0x480b22+0x1,_0x5b9a32[_0x1a54fe++]=_0x480b22+0x2,_0x5b9a32[_0x1a54fe++]=_0x480b22+0x2,_0x5b9a32[_0x1a54fe++]=_0x480b22+0x1,_0x5b9a32[_0x1a54fe++]=_0x480b22+0x3,_0x480b22+=0x4;}const _0xa60360=new Cesium$4[(_0x4f3aed(0x4b0,0x42f))]({'attributes':new Cesium$4['GeometryAttributes']({'st':new Cesium$4[(_0x4298c1(0x363,0x3b9))]({'componentDatatype':Cesium$4['ComponentDatatype'][_0x4f3aed(0x4c2,0x491)],'componentsPerAttribute':0x2,'values':_0x159e0e}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype'][_0x4f3aed(0x49b,0x491)],'componentsPerAttribute':0x3,'values':_0x4ea37d})}),'indices':_0x5b9a32});return _0xa60360;}['createRenderingPrimitives'](_0x2cc426,_0x55a1a5,_0x110ea1,_0x364a6d){function _0x21b6b6(_0x3b8686,_0x480e25){return _0x351b06(_0x480e25,_0x3b8686- -0x8c);}const _0x162ede=this,_0x2e98a6={};_0x2e98a6['st']=0x0,_0x2e98a6[_0x21b6b6(-0x1a7,-0x226)]=0x1;const _0x1bc1b6={};_0x1bc1b6['sources']=[segmentDraw_vert];const _0x540c95={};_0x540c95['sources']=[segmentDraw_frag];const _0x3e1f96={};_0x3e1f96['enabled']=!![];const _0x2f0653={};_0x2f0653['viewport']=undefined,_0x2f0653['depthTest']=_0x3e1f96,_0x2f0653['depthMask']=!![];const _0x32a68e={};_0x32a68e[_0x2082ae(0x33d,0x2ee)]=0x0,_0x32a68e['st']=0x1;function _0x2082ae(_0xabb5a7,_0x3184da){return _0x351b06(_0x3184da,_0xabb5a7-0x4d9);}const _0x3cd258={};_0x3cd258['defines']=[_0x21b6b6(-0x17c,-0x112)],_0x3cd258['sources']=[fullscreen_vert];const _0xa2ccf7={};_0xa2ccf7[_0x2082ae(0x34a,0x2bc)]=['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],_0xa2ccf7[_0x2082ae(0x3f0,0x44e)]=[trailDraw_frag];const _0x288281={};_0x288281[_0x21b6b6(-0x228,-0x21c)]=0x0,_0x288281['st']=0x1;const _0x1cf19c={};_0x1cf19c[_0x21b6b6(-0x21b,-0x1b2)]=[_0x2082ae(0x3e9,0x3fd)],_0x1cf19c['sources']=[fullscreen_vert];const _0x41050f={};_0x41050f[_0x21b6b6(-0x21b,-0x287)]=['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],_0x41050f[_0x2082ae(0x3f0,0x45a)]=[screenDraw_frag];const _0x2c1a3b={};_0x2c1a3b[_0x2082ae(0x363,0x3b5)]=![];const _0x4a6aae={};_0x4a6aae[_0x2082ae(0x363,0x380)]=!![],this[_0x21b6b6(-0x1c3,-0x241)]={'segments':new CustomPrimitive({'commandType':_0x2082ae(0x402,0x3c6),'attributeLocations':_0x2e98a6,'geometry':this[_0x21b6b6(-0x242,-0x26b)](_0x55a1a5),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function(){return _0x364a6d['particlesTextures']['currentParticlesPosition'];},'postProcessingPosition':function(){return _0x364a6d['particlesTextures']['postProcessingPosition'];},'postProcessingSpeed':function(){function _0x277e1f(_0x226542,_0x4655ed){return _0x2082ae(_0x226542-0x2a,_0x4655ed);}return _0x364a6d[_0x277e1f(0x443,0x433)]['postProcessingSpeed'];},'colorTable':function(){return _0x162ede['textures']['colorTable'];},'aspect':function(){function _0x5c729d(_0x51aae6,_0xe7e15c){return _0x2082ae(_0x51aae6-0x16f,_0xe7e15c);}return _0x2cc426[_0x5c729d(0x507,0x49e)]/_0x2cc426['drawingBufferHeight'];},'pixelSize':function(){return _0x110ea1['pixelSize'];},'lineWidth':function(){return _0x55a1a5['lineWidth'];},'particleHeight':function(){return _0x55a1a5['particleHeight'];}},'vertexShaderSource':new Cesium$4[(_0x21b6b6(-0x1a3,-0x1c1))](_0x1bc1b6),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0x540c95),'rawRenderState':Util['createRawRenderState'](_0x2f0653),'framebuffer':this['framebuffers'][_0x21b6b6(-0x234,-0x1d6)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x32a68e,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function(){return _0x162ede['textures']['segmentsColor'];},'segmentsDepthTexture':function(){function _0x41482e(_0x44f5e1,_0x43231e){return _0x2082ae(_0x44f5e1- -0xca,_0x43231e);}return _0x162ede['textures'][_0x41482e(0x35d,0x3ac)];},'currentTrailsColor':function(){function _0x3f3eea(_0x4aea29,_0x2ef7b3){return _0x2082ae(_0x4aea29- -0x227,_0x2ef7b3);}return _0x162ede[_0x3f3eea(0x159,0x199)]['currentTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0x5a4135(_0xa8ef3a,_0x4fc929){return _0x21b6b6(_0x4fc929-0x695,_0xa8ef3a);}function _0x21c004(_0x1bdbb5,_0x22881c){return _0x2082ae(_0x22881c-0x19f,_0x1bdbb5);}return _0x162ede[_0x21c004(0x57d,0x51f)]['currentTrails'][_0x21c004(0x563,0x597)];},'fadeOpacity':function(){return _0x55a1a5['fadeOpacity'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x3cd258),'fragmentShaderSource':new Cesium$4[(_0x2082ae(0x3c2,0x354))](_0xa2ccf7),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4[_0x21b6b6(-0x1a0,-0x1b2)]['ALWAYS']},'depthMask':!![]}),'framebuffer':this[_0x21b6b6(-0x1e5,-0x1d0)]['nextTrails'],'autoClear':!![],'preExecute':function(){const _0xa5668d=_0x162ede['framebuffers']['currentTrails'];_0x162ede[_0x150b14(-0x27,0x66)]['currentTrails']=_0x162ede['framebuffers']['nextTrails'],_0x162ede['framebuffers'][_0x544c79(0x40,-0x24)]=_0xa5668d;function _0x150b14(_0x58b0da,_0x755a1f){return _0x2082ae(_0x755a1f- -0x31a,_0x58b0da);}_0x162ede['primitives'][_0x544c79(-0xa,-0x92)]['commandToExecute']['framebuffer']=_0x162ede['framebuffers']['nextTrails'];function _0x544c79(_0xd088de,_0x311f02){return _0x2082ae(_0x311f02- -0x42e,_0xd088de);}_0x162ede['primitives']['trails'][_0x150b14(0x3,0x22)]['framebuffer']=_0x162ede['framebuffers']['nextTrails'];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x288281,'geometry':Util[_0x2082ae(0x3ba,0x37d)](),'primitiveType':Cesium$4[_0x2082ae(0x3d1,0x3eb)]['TRIANGLES'],'uniformMap':{'trailsColorTexture':function(){function _0x4ed963(_0x2d5349,_0x48622f){return _0x21b6b6(_0x2d5349-0x6eb,_0x48622f);}function _0x3cb815(_0x51a9a8,_0x275106){return _0x2082ae(_0x275106- -0x5ed,_0x51a9a8);}return _0x162ede[_0x4ed963(0x506,0x515)][_0x4ed963(0x590,0x61b)]['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0x3696a9(_0x56e8fa,_0x1b0dd0){return _0x2082ae(_0x1b0dd0-0xff,_0x56e8fa);}return _0x162ede['framebuffers'][_0x3696a9(0x482,0x509)]['depthTexture'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x1cf19c),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0x41050f),'rawRenderState':Util[_0x21b6b6(-0x177,-0x204)]({'viewport':undefined,'depthTest':_0x2c1a3b,'depthMask':!![],'blending':_0x4a6aae}),'framebuffer':undefined})};}}function _0x3f65(_0x41022e,_0x520ffb){const _0x113a82=_0x113a();return _0x3f65=function(_0x3f658b,_0x4d3a85){_0x3f658b=_0x3f658b-0xde;let _0x44e094=_0x113a82[_0x3f658b];return _0x44e094;},_0x3f65(_0x41022e,_0x520ffb);}var getWind_frag=_0x5333ea(-0x102,-0xda),updateSpeed_frag='uniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0auniform\x20sampler2D\x20particlesWind;\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20speedFactor;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec3\x20percent\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20\x20\x20float\x20normalization\x20=\x20length(percent);\x0a\x0a\x20\x20\x20\x20return\x20normalization;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20//\x20vec3\x20currentSpeed\x20=\x20texture(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20out_FragColor\x20=\x20nextSpeed;\x0a}\x0a',updatePosition_frag='uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20lengthOfLonLat(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x0a\x20\x20\x20\x20float\x20term1\x20=\x20111132.92;\x0a\x20\x20\x20\x20float\x20term2\x20=\x20559.82\x20*\x20cos(2.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term3\x20=\x201.175\x20*\x20cos(4.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term4\x20=\x200.0023\x20*\x20cos(6.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20\x20\x20float\x20term5\x20=\x20111412.84\x20*\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20term6\x20=\x2093.5\x20*\x20cos(3.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term7\x20=\x200.118\x20*\x20cos(5.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avoid\x20updatePosition(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20windVectorInLonLatLev;\x0a\x0a\x20\x20\x20\x20out_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}\x0a',postProcessingPosition_frag=_0x5333ea(-0x7b,-0xa4),postProcessingSpeed_frag=_0x5333ea(-0x107,-0x10e);const Cesium$3=mars3d__namespace[_0x351b06(-0x12a,-0xf6)];class ParticlesComputing{constructor(_0x3b09c8,_0x32eb56,_0x582744,_0x1e582f){function _0x5112d5(_0x18024c,_0x496833){return _0x351b06(_0x18024c,_0x496833-0x57d);}this['data']=_0x32eb56,this['createWindTextures'](_0x3b09c8,_0x32eb56),this[_0x5112d5(0x3f5,0x41f)](_0x3b09c8,_0x582744,_0x1e582f),this['createComputingPrimitives'](_0x32eb56,_0x582744,_0x1e582f);}['createWindTextures'](_0x292e4f,_0x62d4a6){function _0x1af053(_0x4fe767,_0x1c85e1){return _0x5333ea(_0x1c85e1,_0x4fe767- -0xfd);}const _0x3cfc23={'context':_0x292e4f,'width':_0x62d4a6[_0x267daa(0x1e6,0x1c1)]['lon'],'height':_0x62d4a6['dimensions'][_0x1af053(-0x1e7,-0x23f)]*(_0x62d4a6['dimensions'][_0x267daa(0x1a1,0x191)]||0x1),'pixelFormat':Cesium$3['PixelFormat']['LUMINANCE'],'pixelDatatype':Cesium$3['PixelDatatype']['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3[_0x1af053(-0x212,-0x200)][_0x1af053(-0x246,-0x2d4)],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};function _0x267daa(_0xb2b63f,_0x271b20){return _0x5333ea(_0xb2b63f,_0x271b20-0x2d1);}this[_0x1af053(-0x235,-0x210)]={'U':Util['createTexture'](_0x3cfc23,_0x62d4a6['U'][_0x1af053(-0x203,-0x1d8)]),'V':Util['createTexture'](_0x3cfc23,_0x62d4a6['V'][_0x1af053(-0x203,-0x21b)])};}[_0x5333ea(-0xa2,-0xe5)](_0x363529,_0x280592,_0x5829f4){const _0x515c0c={'context':_0x363529,'width':_0x280592[_0x34feb7(-0x1ab,-0x157)],'height':_0x280592['particlesTextureSize'],'pixelFormat':Cesium$3[_0x34feb7(-0x6a,-0xaf)]['RGBA'],'pixelDatatype':Cesium$3[_0x29d23c(0x37b,0x3a6)]['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3[_0x29d23c(0x2de,0x2ed)]['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};function _0x34feb7(_0x554c98,_0x583e80){return _0x5333ea(_0x554c98,_0x583e80- -0x22);}const _0x1652df=this['randomizeParticles'](_0x280592['maxParticles'],_0x5829f4),_0x536f77=new Float32Array(0x4*_0x280592['maxParticles'])[_0x34feb7(-0x11a,-0x153)](0x0);function _0x29d23c(_0x26649a,_0x7d4ad2){return _0x5333ea(_0x7d4ad2,_0x26649a-0x3f3);}this[_0x29d23c(0x3ac,0x3d2)]={'particlesWind':Util['createTexture'](_0x515c0c),'currentParticlesPosition':Util['createTexture'](_0x515c0c,_0x1652df),'nextParticlesPosition':Util[_0x29d23c(0x2e0,0x267)](_0x515c0c,_0x1652df),'currentParticlesSpeed':Util[_0x34feb7(-0x176,-0x135)](_0x515c0c,_0x536f77),'nextParticlesSpeed':Util['createTexture'](_0x515c0c,_0x536f77),'postProcessingPosition':Util['createTexture'](_0x515c0c,_0x1652df),'postProcessingSpeed':Util[_0x29d23c(0x2e0,0x2eb)](_0x515c0c,_0x536f77)};}[_0x5333ea(-0xb7,-0x96)](_0x35ed84,_0x335b61){const _0x413f43=new Float32Array(0x4*_0x35ed84);function _0x34f0b6(_0x5b9cb3,_0x5f259b){return _0x5333ea(_0x5f259b,_0x5b9cb3-0xc8);}for(let _0x407039=0x0;_0x407039<_0x35ed84;_0x407039++){_0x413f43[0x4*_0x407039]=Cesium$3['Math']['randomBetween'](_0x335b61['lonRange']['x'],_0x335b61['lonRange']['y']),_0x413f43[0x4*_0x407039+0x1]=Cesium$3[_0x34f0b6(0x44,-0x30)]['randomBetween'](_0x335b61['latRange']['x'],_0x335b61[_0x495017(0x6f,0x92)]['y']),_0x413f43[0x4*_0x407039+0x2]=Cesium$3['Math']['randomBetween'](this['data'][_0x495017(-0x4b,0x36)][_0x34f0b6(-0x5,-0x39)],this[_0x495017(0x17e,0xf6)]['lev'][_0x495017(0x17e,0x11c)]),_0x413f43[0x4*_0x407039+0x3]=0x0;}function _0x495017(_0x4a430b,_0x55c7b5){return _0x351b06(_0x4a430b,_0x55c7b5-0x1ef);}return _0x413f43;}['destroyParticlesTextures'](){function _0x3af57b(_0x5ba26c,_0xc13fb5){return _0x5333ea(_0x5ba26c,_0xc13fb5- -0xaf);}function _0xe6975e(_0x4dc7c5,_0x4088ba){return _0x5333ea(_0x4dc7c5,_0x4088ba-0x24e);}Object[_0x3af57b(-0xf9,-0x154)](this[_0x3af57b(-0x183,-0xf6)])['forEach'](_0x32e920=>{function _0x3e8713(_0x231242,_0x321758){return _0x3af57b(_0x321758,_0x231242-0x65b);}this[_0x3e8713(0x565,0x58b)][_0x32e920]['destroy']();});}['createComputingPrimitives'](_0x3d89e7,_0x5b84d9,_0x55f88a){const _0x58dd94=new Cesium$3[(_0x5bb7d3(0x28b,0x2a8))](_0x3d89e7['dimensions'][_0x5bb7d3(0x2b1,0x2f6)],_0x3d89e7['dimensions']['lat'],_0x3d89e7['dimensions'][_0x5bb7d3(0x2d3,0x282)]),_0x26eede=new Cesium$3[(_0x5bb7d3(0x28e,0x2a8))](_0x3d89e7['lon'][_0x5bb7d3(0x29b,0x2f5)],_0x3d89e7['lat']['min'],_0x3d89e7['lev']['min']),_0x47851b=new Cesium$3['Cartesian3'](_0x3d89e7['lon'][_0x5bb7d3(0x30d,0x368)],_0x3d89e7[_0x5bb7d3(0x2f3,0x2d8)]['max'],_0x3d89e7[_0xb48c79(-0x310,-0x2b5)]['max']);function _0x5bb7d3(_0x1a1fb2,_0x1448c7){return _0x351b06(_0x1a1fb2,_0x1448c7-0x43b);}const _0x5996ac=new Cesium$3['Cartesian3']((_0x47851b['x']-_0x26eede['x'])/(_0x58dd94['x']-0x1),(_0x47851b['y']-_0x26eede['y'])/(_0x58dd94['y']-0x1),_0x58dd94['z']>0x1?(_0x47851b['z']-_0x26eede['z'])/(_0x58dd94['z']-0x1):0x1),_0x3e539f=new Cesium$3[(_0xb48c79(-0x1c2,-0x1e3))](_0x3d89e7['U']['min'],_0x3d89e7['U']['max']),_0x2370a5=new Cesium$3[(_0x5bb7d3(0x3a5,0x354))](_0x3d89e7['V'][_0x5bb7d3(0x27e,0x2f5)],_0x3d89e7['V']['max']),_0x1c55ed=this,_0x10ef94={};_0x10ef94['U']=function(){function _0x5a4325(_0xfb0cd5,_0xcd33c2){return _0xb48c79(_0xcd33c2,_0xfb0cd5-0x4ce);}return _0x1c55ed[_0x5a4325(0x221,0x22d)]['U'];},_0x10ef94['V']=function(){function _0x11b755(_0x1b1382,_0x593061){return _0x5bb7d3(_0x1b1382,_0x593061- -0x20);}return _0x1c55ed[_0x11b755(0x2b4,0x26a)]['V'];},_0x10ef94['currentParticlesPosition']=function(){function _0x486c4b(_0x3530df,_0x5d4aa3){return _0xb48c79(_0x5d4aa3,_0x3530df-0x221);}return _0x1c55ed['particlesTextures'][_0x486c4b(0x4b,0x47)];},_0x10ef94['dimension']=function(){return _0x58dd94;},_0x10ef94['minimum']=function(){return _0x26eede;},_0x10ef94[_0xb48c79(-0x2bf,-0x257)]=function(){return _0x47851b;},_0x10ef94['interval']=function(){return _0x5996ac;};const _0x40045a={};_0x40045a[_0xb48c79(-0x208,-0x1e5)]=[getWind_frag];const _0x190058={};_0x190058['sources']=[updateSpeed_frag];const _0x344f48={};_0x344f48[_0xb48c79(-0x20b,-0x1e5)]=[updatePosition_frag];const _0x244e61={};_0x244e61['sources']=[postProcessingPosition_frag];const _0x5d7746={};_0x5d7746['sources']=[postProcessingSpeed_frag];function _0xb48c79(_0x215b2c,_0x46d57c){return _0x5333ea(_0x215b2c,_0x46d57c- -0x175);}this[_0x5bb7d3(0x29f,0x304)]={'getWind':new CustomPrimitive({'commandType':_0x5bb7d3(0x2fa,0x290),'uniformMap':_0x10ef94,'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x40045a),'outputTexture':this['particlesTextures'][_0x5bb7d3(0x302,0x38a)],'preExecute':function(){function _0x3abb3d(_0x35fc42,_0x5c5450){return _0x5bb7d3(_0x5c5450,_0x35fc42- -0x2d6);}function _0x1d9dfe(_0x532c65,_0x7a191e){return _0xb48c79(_0x7a191e,_0x532c65-0x761);}_0x1c55ed[_0x3abb3d(0x2e,-0x4)][_0x3abb3d(0x66,-0xc)]['commandToExecute']['outputTexture']=_0x1c55ed['particlesTextures']['particlesWind'];}}),'updateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesSpeed':function(){return _0x1c55ed['particlesTextures']['currentParticlesSpeed'];},'particlesWind':function(){function _0x16b724(_0x5968dc,_0x4223cc){return _0xb48c79(_0x5968dc,_0x4223cc-0x38d);}return _0x1c55ed[_0x16b724(0x219,0x1d1)]['particlesWind'];},'uSpeedRange':function(){return _0x3e539f;},'vSpeedRange':function(){return _0x2370a5;},'pixelSize':function(){function _0x5da19b(_0x3c03db,_0x1b3777){return _0x5bb7d3(_0x1b3777,_0x3c03db- -0xb7);}return _0x55f88a[_0x5da19b(0x1d0,0x1be)];},'speedFactor':function(){function _0x127d81(_0x385211,_0x7e0132){return _0xb48c79(_0x7e0132,_0x385211-0x5f8);}return _0x5b84d9[_0x127d81(0x402,0x394)];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x190058),'outputTexture':this[_0xb48c79(-0x214,-0x1bc)][_0xb48c79(-0x1e4,-0x23a)],'preExecute':function(){const _0x53ce4a=_0x1c55ed['particlesTextures'][_0x3441bb(-0xf1,-0x10c)];function _0x1cba72(_0x3e525b,_0x2efb62){return _0x5bb7d3(_0x2efb62,_0x3e525b- -0xb2);}function _0x3441bb(_0x523774,_0x256dcc){return _0x5bb7d3(_0x256dcc,_0x523774- -0x3dd);}_0x1c55ed['particlesTextures']['currentParticlesSpeed']=_0x1c55ed['particlesTextures'][_0x1cba72(0x1e2,0x182)],_0x1c55ed['particlesTextures'][_0x1cba72(0x1e2,0x256)]=_0x53ce4a,_0x1c55ed[_0x3441bb(-0xd9,-0x119)][_0x3441bb(-0xf3,-0x175)]['commandToExecute'][_0x1cba72(0x258,0x26e)]=_0x1c55ed['particlesTextures']['nextParticlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':_0x5bb7d3(0x251,0x290),'uniformMap':{'currentParticlesPosition':function(){return _0x1c55ed['particlesTextures']['currentParticlesPosition'];},'currentParticlesSpeed':function(){return _0x1c55ed['particlesTextures']['currentParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x344f48),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':function(){function _0x131bab(_0x531bdf,_0x3e009){return _0xb48c79(_0x531bdf,_0x3e009-0x4b7);}const _0x2a7518=_0x1c55ed['particlesTextures'][_0x1b8480(0x41c,0x449)];_0x1c55ed[_0x1b8480(0x3f2,0x463)]['currentParticlesPosition']=_0x1c55ed['particlesTextures']['postProcessingPosition'],_0x1c55ed['particlesTextures']['postProcessingPosition']=_0x2a7518;function _0x1b8480(_0x371da2,_0x90cb9f){return _0xb48c79(_0x371da2,_0x90cb9f-0x61f);}_0x1c55ed[_0x131bab(0x20f,0x284)]['updatePosition'][_0x131bab(0x26d,0x201)]['outputTexture']=_0x1c55ed[_0x131bab(0x2f4,0x2fb)]['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function(){function _0xe5d15d(_0x475981,_0x2bd6b3){return _0xb48c79(_0x475981,_0x2bd6b3-0x12d);}return _0x1c55ed['particlesTextures'][_0xe5d15d(-0x8b,-0x10f)];},'nextParticlesSpeed':function(){function _0x21a8e5(_0x2ace22,_0x449f21){return _0xb48c79(_0x449f21,_0x2ace22-0x6a0);}return _0x1c55ed[_0x21a8e5(0x4e4,0x49c)]['nextParticlesSpeed'];},'lonRange':function(){return _0x55f88a['lonRange'];},'latRange':function(){return _0x55f88a['latRange'];},'randomCoefficient':function(){const _0x5dfc92=Math['random']();return _0x5dfc92;},'dropRate':function(){return _0x5b84d9['dropRate'];},'dropRateBump':function(){return _0x5b84d9['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x244e61),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':function(){function _0x400dbe(_0x58c7b8,_0x538a9a){return _0x5bb7d3(_0x538a9a,_0x58c7b8- -0x194);}function _0x939040(_0x40daec,_0x399401){return _0x5bb7d3(_0x40daec,_0x399401- -0x453);}_0x1c55ed['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=_0x1c55ed[_0x400dbe(0x1e7,0x209)][_0x939040(-0x16c,-0x1c7)];}}),'postProcessingSpeed':new CustomPrimitive({'commandType':_0xb48c79(-0x27d,-0x2a7),'uniformMap':{'postProcessingPosition':function(){function _0x15704e(_0x3d4133,_0x260b1f){return _0xb48c79(_0x260b1f,_0x3d4133-0x336);}return _0x1c55ed[_0x15704e(0x17a,0x12f)]['postProcessingPosition'];},'nextParticlesSpeed':function(){return _0x1c55ed['particlesTextures']['nextParticlesSpeed'];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x5d7746),'outputTexture':this['particlesTextures']['postProcessingSpeed'],'preExecute':function(){function _0x52b72b(_0x10a52f,_0x3d6147){return _0x5bb7d3(_0x3d6147,_0x10a52f-0x229);}_0x1c55ed['primitives']['postProcessingSpeed']['commandToExecute'][_0x52b72b(0x533,0x54f)]=_0x1c55ed['particlesTextures']['postProcessingSpeed'];}})};}}const Cesium$2=mars3d__namespace['Cesium'];class ParticleSystem{constructor(_0x540a86,_0x5349ba,_0x57f491,_0x358505){this['context']=_0x540a86,_0x5349ba={..._0x5349ba};_0x5349ba[_0x3c16c0(-0x8c,-0x93)]&&_0x5349ba['vdata']&&(_0x5349ba['dimensions']={},_0x5349ba['dimensions'][_0x52c0d4(0x2db,0x345)]=_0x5349ba['cols'],_0x5349ba[_0x3c16c0(-0x10b,-0x9a)][_0x3c16c0(-0xe5,-0xc3)]=_0x5349ba['rows'],_0x5349ba[_0x3c16c0(-0x10b,-0x172)]['lev']=_0x5349ba['lev']||0x1,_0x5349ba[_0x52c0d4(0x3ce,0x345)]={},_0x5349ba[_0x3c16c0(-0xc7,-0x73)]['min']=_0x5349ba['xmin'],_0x5349ba['lon'][_0x3c16c0(-0x55,-0x76)]=_0x5349ba['xmax'],_0x5349ba['lat']={},_0x5349ba['lat']['min']=_0x5349ba['ymin'],_0x5349ba['lat'][_0x52c0d4(0x421,0x3b7)]=_0x5349ba['ymax'],_0x5349ba['lev']={},_0x5349ba['lev']['min']=_0x5349ba[_0x52c0d4(0x374,0x33f)]??0x1,_0x5349ba['lev']['max']=_0x5349ba['levmax']??0x1,_0x5349ba['U']={},_0x5349ba['U']['array']=new Float32Array(_0x5349ba['udata']),_0x5349ba['U']['min']=_0x5349ba[_0x52c0d4(0x26a,0x2d3)]??Math[_0x52c0d4(0x2ca,0x344)](..._0x5349ba['udata']),_0x5349ba['U']['max']=_0x5349ba['umax']??Math['max'](..._0x5349ba['udata']),_0x5349ba['V']={},_0x5349ba['V']['array']=new Float32Array(_0x5349ba['vdata']),_0x5349ba['V']['min']=_0x5349ba[_0x3c16c0(-0xee,-0x78)]??Math['min'](..._0x5349ba['vdata']),_0x5349ba['V']['max']=_0x5349ba['vmax']??Math['max'](..._0x5349ba['vdata']));function _0x52c0d4(_0x228994,_0x14d70c){return _0x5333ea(_0x228994,_0x14d70c-0x411);}this['data']=_0x5349ba;function _0x3c16c0(_0xdb9fd8,_0x3e96fa){return _0x351b06(_0x3e96fa,_0xdb9fd8-0x7e);}this['options']=_0x57f491,this[_0x52c0d4(0x3a2,0x325)]=_0x358505,this['particlesComputing']=new ParticlesComputing(this['context'],this['data'],this[_0x3c16c0(-0xbb,-0x82)],this[_0x52c0d4(0x37e,0x325)]),this[_0x52c0d4(0x433,0x3e2)]=new ParticlesRendering(this['context'],this['data'],this['options'],this['viewerParameters'],this[_0x52c0d4(0x3a2,0x3cd)]);}['canvasResize'](_0x24e9db){this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this['particlesComputing']['windTextures'])['forEach'](_0x55a0e9=>{function _0x3c2129(_0x37ccd4,_0x3d262f){return _0x3f65(_0x37ccd4-0x2b0,_0x3d262f);}function _0x4c029e(_0x2bf4fc,_0x196588){return _0x3f65(_0x196588- -0x283,_0x2bf4fc);}this[_0x4c029e(-0x84,-0x9b)]['windTextures'][_0x55a0e9][_0x4c029e(-0x165,-0x138)]();}),this[_0x14deec(-0xb1,-0x8f)]['textures']['colorTable']['destroy'](),Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](_0x2141ec=>{function _0x5a1470(_0x4e666a,_0x6ce3c3){return _0x14deec(_0x6ce3c3,_0x4e666a-0x52b);}function _0x2a0457(_0x50d831,_0x29d11d){return _0x14deec(_0x29d11d,_0x50d831-0x18);}this[_0x2a0457(-0x77,-0x46)][_0x2a0457(-0x128,-0xd1)][_0x2141ec][_0x5a1470(0x3ea,0x3f1)]();});function _0x14deec(_0x78e49a,_0x5dcc60){return _0x351b06(_0x78e49a,_0x5dcc60-0x19);}function _0x489ee9(_0x3fa36d,_0x519c0c){return _0x5333ea(_0x3fa36d,_0x519c0c-0x398);}this['context']=_0x24e9db,this[_0x14deec(-0x2e,-0xa4)]=new ParticlesComputing(this['context'],this['data'],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this[_0x489ee9(0x2ff,0x318)],this['options'],this[_0x14deec(-0xbd,-0x14c)],this['particlesComputing']);}['clearFramebuffers'](){function _0xb0737d(_0x504b87,_0x221e6b){return _0x5333ea(_0x504b87,_0x221e6b-0x404);}function _0x2dd00f(_0x5c8024,_0x5d3435){return _0x5333ea(_0x5c8024,_0x5d3435-0x332);}const _0x378373=new Cesium$2['ClearCommand']({'color':new Cesium$2[(_0x2dd00f(0x257,0x269))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2[_0xb0737d(0x2bc,0x326)][_0x2dd00f(0x30c,0x2e8)]});Object['keys'](this['particlesRendering'][_0xb0737d(0x2ed,0x324)])['forEach'](_0x589a4a=>{function _0x377d1f(_0x5b03db,_0x442cab){return _0xb0737d(_0x442cab,_0x5b03db-0x111);}_0x378373[_0x377d1f(0x4cc,0x4d6)]=this['particlesRendering'][_0x377d1f(0x435,0x403)][_0x589a4a];function _0x1b65de(_0xf9c802,_0x367912){return _0x2dd00f(_0xf9c802,_0x367912-0x131);}_0x378373['execute'](this[_0x1b65de(0x486,0x41e)]);});}['refreshParticles'](_0x29a1b2){this[_0x8ccb78(0x1a7,0x179)]();function _0x8ccb78(_0x40a183,_0x4dee61){return _0x5333ea(_0x40a183,_0x4dee61-0x275);}this[_0x8ccb78(0x21e,0x231)][_0x8ccb78(0x1a8,0x1e0)](),this['particlesComputing']['createParticlesTextures'](this['context'],this['options'],this['viewerParameters']);function _0x504935(_0xe9cb60,_0x147694){return _0x351b06(_0xe9cb60,_0x147694-0x33e);}if(_0x29a1b2){var _0x49603e;const _0x344353=this['particlesRendering']['createSegmentsGeometry'](this['options']);this['particlesRendering'][_0x8ccb78(0x18c,0x1b7)][_0x8ccb78(0x13d,0x146)]['geometry']=_0x344353;const _0x577d46=Cesium$2['VertexArray'][_0x504935(0x16f,0x1f0)]({'context':this['context'],'geometry':_0x344353,'attributeLocations':this[_0x8ccb78(0x266,0x246)]['primitives']['segments']['attributeLocations'],'bufferUsage':Cesium$2['BufferUsage']['STATIC_DRAW']});(_0x49603e=this['particlesRendering'][_0x504935(0x226,0x207)])!==null&&_0x49603e!==void 0x0&&(_0x49603e=_0x49603e['segments'])!==null&&_0x49603e!==void 0x0&&_0x49603e[_0x504935(0x211,0x184)]&&(this['particlesRendering'][_0x8ccb78(0x1d0,0x1b7)][_0x504935(0x135,0x196)]['commandToExecute']['vertexArray']=_0x577d46);}}['setOptions'](_0x4cedb9){let _0x3a8f6f=![];this['options'][_0x32057c(0x40e,0x421)]!==_0x4cedb9[_0x240df3(0x1ac,0x131)]&&(_0x3a8f6f=!![]);function _0x32057c(_0x751c11,_0x4dc8b1){return _0x351b06(_0x751c11,_0x4dc8b1-0x522);}function _0x240df3(_0x316793,_0x21c307){return _0x5333ea(_0x21c307,_0x316793-0x234);}Object['keys'](_0x4cedb9)['forEach'](_0x3fb3df=>{this['options'][_0x3fb3df]=_0x4cedb9[_0x3fb3df];}),this['refreshParticles'](_0x3a8f6f);}[_0x5333ea(-0xf,-0x33)](_0x35db92){function _0x64d7bc(_0x40001a,_0x3343b9){return _0x5333ea(_0x3343b9,_0x40001a-0x5b5);}function _0x234765(_0x48802a,_0x1d5c3d){return _0x351b06(_0x48802a,_0x1d5c3d-0x48c);}Object['keys'](_0x35db92)[_0x234765(0x39c,0x390)](_0x4038f7=>{this['viewerParameters'][_0x4038f7]=_0x35db92[_0x4038f7];}),this[_0x64d7bc(0x514,0x49d)](![]);}['destroy'](){function _0x49b7ab(_0x1e9ed7,_0xed20a1){return _0x351b06(_0xed20a1,_0x1e9ed7-0x466);}function _0x5b00ce(_0x4b6618,_0x303bc1){return _0x351b06(_0x303bc1,_0x4b6618-0x82);}clearTimeout(this[_0x5b00ce(-0x43,-0x5f)]),this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this['particlesComputing']['windTextures'])['forEach'](_0x30b4ff=>{function _0x2f1f9c(_0x9933e8,_0x240337){return _0x5b00ce(_0x240337-0x230,_0x9933e8);}this['particlesComputing']['windTextures'][_0x30b4ff][_0x2f1f9c(0xeb,0x158)]();}),this[_0x49b7ab(0x3be,0x366)]['textures'][_0x5b00ce(-0x28,0x24)][_0x5b00ce(-0xd8,-0x145)](),Object[_0x49b7ab(0x348,0x3b2)](this[_0x49b7ab(0x3be,0x334)]['framebuffers'])['forEach'](_0x448792=>{function _0x308ad(_0x5107da,_0x14fea5){return _0x5b00ce(_0x5107da-0x34a,_0x14fea5);}this['particlesRendering'][_0x308ad(0x273,0x285)][_0x448792]['destroy']();});for(const _0x26cfb9 in this){delete this[_0x26cfb9];}}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0x351b06(-0x1d8,-0x182)]['BaseLayer'],_0x5a0985={};_0x5a0985['particlesNumber']=0x1000,_0x5a0985[_0x351b06(-0x16b,-0x138)]=0x0,_0x5a0985['fadeOpacity']=0.996,_0x5a0985['dropRate']=0.003,_0x5a0985['dropRateBump']=0.01,_0x5a0985['speedFactor']=0.5,_0x5a0985[_0x351b06(-0xca,-0xed)]=0x2,_0x5a0985['colors']=[_0x5333ea(-0x106,-0x11b)];const DEF_OPTIONS=_0x5a0985;class WindLayer extends BaseLayer$1{constructor(_0x10e0f2={}){_0x10e0f2={...DEF_OPTIONS,..._0x10e0f2},super(_0x10e0f2),this['_setOptionsHook'](_0x10e0f2);}get['layer'](){function _0x5f2076(_0xc5ff66,_0x5680a6){return _0x351b06(_0x5680a6,_0xc5ff66-0x57e);}return this[_0x5f2076(0x447,0x41a)];}get['data'](){return this['_data'];}set['data'](_0x578dce){this['setData'](_0x578dce);}get['colors'](){function _0x194418(_0x3f4a35,_0x1c57a1){return _0x5333ea(_0x1c57a1,_0x3f4a35-0x69);}return this['options'][_0x194418(0x1a,-0x5e)];}set['colors'](_0x36aa4a){this[_0x1cc14f(0x15b,0xf4)]['colors']=_0x36aa4a;function _0x1f9ea2(_0x11f897,_0x28a8c1){return _0x5333ea(_0x28a8c1,_0x11f897- -0x135);}if(this['particleSystem']){const _0x20fd7b={};_0x20fd7b['colors']=_0x36aa4a,this['particleSystem']['setOptions'](_0x20fd7b);}function _0x1cc14f(_0x5b64c1,_0x290348){return _0x5333ea(_0x5b64c1,_0x290348-0x1b4);}this[_0x1cc14f(0x142,0x155)]();}['_mountedHook'](){}['_addedHook'](){this['scene']=this['_map']['scene'],this[_0x440da2(0x5e,0xa5)]=this[_0x40cad2(-0xbf,-0xeb)][_0x440da2(0x5e,0xaf)];function _0x40cad2(_0x5e9b09,_0x3659af){return _0x5333ea(_0x5e9b09,_0x3659af-0x3b);}function _0x440da2(_0x1d737b,_0x1e36c8){return _0x5333ea(_0x1e36c8,_0x1d737b-0x109);}this[_0x40cad2(-0x1f,-0x83)]=new Cesium$1[(_0x40cad2(-0xf9,-0x112))](),this['_map'][_0x440da2(-0x2e,-0x2c)]['primitives']['add'](this['primitives']),this[_0x40cad2(-0x4b,-0xb1)]={'lonRange':new Cesium$1[(_0x40cad2(-0x87,-0x33))](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0},this[_0x440da2(-0x13,0x32)]=new Cesium$1['BoundingSphere'](Cesium$1['Cartesian3']['ZERO'],0.99*0x615299),this['updateViewerParameters'](),window[_0x40cad2(-0x182,-0x110)](_0x440da2(0xaa,0x57),this['resize'][_0x440da2(0x93,0x108)](this),![]),this['mouse_down']=![],this['mouse_move']=![],this[_0x40cad2(-0x73,-0xeb)]['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x440da2(-0x1d,-0x8d)]['on'](mars3d__namespace[_0x440da2(-0x2a,-0x33)]['mouseDown'],this[_0x440da2(0x35,-0x1)],this),this[_0x440da2(-0x1d,-0x35)]['on'](mars3d__namespace[_0x440da2(-0x2a,0x24)][_0x40cad2(-0xf0,-0xf1)],this['_onMouseUpEvent'],this),this[_0x40cad2(-0x106,-0xeb)]['on'](mars3d__namespace[_0x440da2(-0x2a,0xa)]['mouseMove'],this[_0x40cad2(-0x4d,-0x25)],this),this['_data']&&this[_0x40cad2(-0x93,-0x34)](this[_0x440da2(0x4d,0x80)]);}[_0x351b06(-0x148,-0x12b)](){window['removeEventListener']('resize',this['resize']),this['_map']['off'](mars3d__namespace['EventType']['preRender'],this['_onMap_preRenderEvent'],this),this[_0x341ab2(0x197,0x1be)]['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this);function _0x341ab2(_0x58ec4d,_0x4a8a1c){return _0x351b06(_0x58ec4d,_0x4a8a1c-0x35d);}this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x341ab2(0x21d,0x210)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this[_0x5a8118(-0x94,-0x11)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x5a8118(0x7,0x70)],this['_onMouseMoveEvent'],this),this[_0x341ab2(0x1db,0x226)]['removeAll']();function _0x5a8118(_0x454e12,_0x2a3d26){return _0x351b06(_0x2a3d26,_0x454e12-0xf1);}this[_0x5a8118(-0xae,-0x82)][_0x341ab2(0x1aa,0x1ad)][_0x5a8118(-0x46,-0xb6)][_0x5a8118(0x42,0x15)](this['primitives']);}[_0x351b06(-0x157,-0xd8)](){if(!this['show']||!this[_0x128ef7(0x447,0x44d)])return;function _0x4fe523(_0x3b37f3,_0x50a9f6){return _0x351b06(_0x50a9f6,_0x3b37f3-0x1);}function _0x128ef7(_0x4d3c76,_0x236b40){return _0x351b06(_0x236b40,_0x4d3c76-0x568);}this[_0x4fe523(-0x136,-0x170)]['show']=![],this[_0x4fe523(-0x136,-0x18d)][_0x4fe523(-0xda,-0x127)](),this[_0x128ef7(0x3c9,0x3a0)][_0x128ef7(0x486,0x430)](mars3d__namespace['EventType']['preRender'],this[_0x4fe523(-0xfd,-0xca)],this);}[_0x351b06(-0x9b,-0xfe)](_0x381e06){this['particleSystem']['canvasResize'](this[_0x26a262(0x45c,0x4b6)]['context']),this['addPrimitives']();function _0x130e03(_0x4b6534,_0x1a9973){return _0x351b06(_0x1a9973,_0x4b6534-0x73);}function _0x26a262(_0x1c8aa8,_0xf0720){return _0x351b06(_0xf0720,_0x1c8aa8-0x60c);}this[_0x130e03(-0xc4,-0x56)]['show']=!![];}[_0x5333ea(-0xee,-0x107)](_0x23be3d){clearTimeout(this['refreshTimer']);if(!this[_0x100959(0x44e,0x4b9)]||!this['particleSystem'])return;this['primitives'][_0x100959(0x44e,0x4d8)]=![];function _0x100959(_0x5de602,_0x5a2db2){return _0x5333ea(_0x5a2db2,_0x5de602-0x4b1);}function _0x5d948d(_0x5b951c,_0x38d662){return _0x351b06(_0x38d662,_0x5b951c-0x2a9);}this[_0x5d948d(0x196,0x162)]=setTimeout(()=>{if(!this['show'])return;function _0x2a4956(_0x52ba4f,_0x59d007){return _0x100959(_0x59d007- -0x304,_0x52ba4f);}this[_0x2a4956(0x153,0xd0)]();},0xc8);}[_0x5333ea(-0x10e,-0xd4)](_0x407d22){function _0x392ddd(_0x1e5f6d,_0x4ee619){return _0x5333ea(_0x1e5f6d,_0x4ee619-0x261);}this[_0x392ddd(0x1a8,0x179)]=!![];}['_onMouseMoveEvent'](_0x10fc26){if(!this[_0x2148c6(0x308,0x2a2)]||!this['particleSystem'])return;function _0x2148c6(_0x4d4095,_0x1c6977){return _0x5333ea(_0x1c6977,_0x4d4095-0x36b);}function _0x3aba78(_0x1159a1,_0x20882b){return _0x5333ea(_0x1159a1,_0x20882b- -0x74);}this[_0x3aba78(-0x10d,-0x15c)]&&(this['primitives']['show']=![],this['mouse_move']=!![]);}[_0x351b06(-0x115,-0x185)](_0x57f233){if(!this[_0x3d3b88(0x4a1,0x4bf)]||!this[_0x402662(0x68,-0x22)])return;this['mouse_down']&&this[_0x3d3b88(0x4a9,0x4e8)]&&this['redraw']();function _0x3d3b88(_0x4224a2,_0x12faca){return _0x351b06(_0x12faca,_0x4224a2-0x57d);}this['primitives']['show']=!![],this['mouse_down']=![];function _0x402662(_0x1286cb,_0x47ae7f){return _0x5333ea(_0x1286cb,_0x47ae7f-0x86);}this[_0x402662(0x7d,0x2b)]=![];}['redraw'](){function _0x549175(_0x57e86a,_0x1b788e){return _0x5333ea(_0x1b788e,_0x57e86a-0x362);}function _0x28f1e8(_0x3f686c,_0x4ea240){return _0x351b06(_0x3f686c,_0x4ea240-0x15d);}if(!this[_0x28f1e8(-0xcc,-0x42)]||!this['show'])return;this[_0x28f1e8(0xbc,0x35)](),this[_0x549175(0x2ba,0x252)][_0x28f1e8(0x10d,0xb1)](this['viewerParameters']),this['primitives'][_0x28f1e8(0xbc,0x81)]=!![];}[_0x5333ea(-0xff,-0x6f)](_0x1a8b61){this['_data']=_0x1a8b61;this['particleSystem']&&this[_0x2dfae3(0x2de,0x32e)]['destroy']();this['particleSystem']=new ParticleSystem(this[_0x4b247f(0x1ba,0x158)][_0x4b247f(0x210,0x24a)],_0x1a8b61,this[_0x4b247f(0x146,0x166)](),this[_0x2dfae3(0x29a,0x213)]);function _0x4b247f(_0x5279b5,_0x60eb93){return _0x5333ea(_0x5279b5,_0x60eb93-0x28f);}function _0x2dfae3(_0xc3baa5,_0x116b8a){return _0x351b06(_0x116b8a,_0xc3baa5-0x3ff);}this['addPrimitives']();}['_setOptionsHook'](_0x817229,_0x2a59de){function _0x24f183(_0x417ffd,_0x116833){return _0x5333ea(_0x417ffd,_0x116833-0x3ad);}if(_0x817229)for(const _0x39a8d9 in _0x817229){this[_0x39a8d9]=_0x817229[_0x39a8d9];}function _0x4979c4(_0x5031f2,_0x4c7d13){return _0x351b06(_0x4c7d13,_0x5031f2-0x3a7);}this[_0x4979c4(0x286,0x27f)]&&this[_0x4979c4(0x286,0x310)]['setOptions'](this['getOptions']());}[_0x351b06(-0x1f6,-0x1a2)](){const _0x14acf2=Math[_0x37654f(0x169,0x13f)](Math[_0x2a100e(0x196,0x179)](this['particlesNumber']));this[_0x2a100e(0x14f,0x1d1)]=_0x14acf2*_0x14acf2;const _0x135090={};function _0x37654f(_0x1f8a4f,_0x4db2ba){return _0x5333ea(_0x1f8a4f,_0x4db2ba-0x273);}_0x135090[_0x2a100e(0x12b,0x156)]=_0x14acf2,_0x135090['maxParticles']=this['particlesNumber'],_0x135090[_0x37654f(0x1b5,0x1db)]=this[_0x2a100e(0x153,0x1cc)],_0x135090['fadeOpacity']=this['fadeOpacity'],_0x135090['dropRate']=this['dropRate'],_0x135090['dropRateBump']=this['dropRateBump'],_0x135090['speedFactor']=this['speedFactor'],_0x135090['lineWidth']=this[_0x37654f(0x24a,0x1ff)];function _0x2a100e(_0x2f0d86,_0x10ffbc){return _0x351b06(_0x2f0d86,_0x10ffbc-0x304);}return _0x135090[_0x2a100e(0x289,0x23c)]=this[_0x2a100e(0x22b,0x23c)],_0x135090;}['addPrimitives'](){function _0x2b4ee9(_0x3a3b59,_0x6b1edc){return _0x351b06(_0x3a3b59,_0x6b1edc-0x1f3);}this['primitives']['add'](this[_0x14c182(0x147,0x1d0)][_0x2b4ee9(0xc9,0x136)]['primitives']['getWind']),this['primitives']['add'](this[_0x2b4ee9(0x6e,0xd2)][_0x2b4ee9(0x14b,0x136)]['primitives'][_0x14c182(0x163,0x1a0)]),this[_0x14c182(0x1af,0x1ba)][_0x14c182(0x1c7,0x170)](this['particleSystem']['particlesComputing']['primitives']['updatePosition']),this['primitives'][_0x2b4ee9(0x21,0x72)](this['particleSystem'][_0x2b4ee9(0x185,0x136)]['primitives']['postProcessingPosition']),this['primitives']['add'](this['particleSystem'][_0x14c182(0x285,0x234)]['primitives'][_0x2b4ee9(0xd,0x4c)]);function _0x14c182(_0x2a3b9c,_0xbc3518){return _0x5333ea(_0x2a3b9c,_0xbc3518-0x278);}this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['segments']),this['primitives'][_0x2b4ee9(-0x13,0x72)](this['particleSystem']['particlesRendering'][_0x2b4ee9(0x3b,0xbc)][_0x2b4ee9(0x7c,0xb6)]),this['primitives']['add'](this['particleSystem']['particlesRendering'][_0x2b4ee9(0x58,0xbc)]['screen']);}[_0x5333ea(-0xe0,-0xaf)](){let _0x4ed16f=this[_0x4de681(0x19a,0x135)]['computeViewRectangle'](this['scene'][_0x4de681(0x18e,0x188)]['ellipsoid']);if(!_0x4ed16f){const _0x1e9bad=this['_map']['getExtent']();_0x4ed16f=Cesium$1[_0x4de681(0x1da,0x25d)]['fromDegrees'](_0x1e9bad['xmin'],_0x1e9bad[_0x4de681(0x15e,0x143)],_0x1e9bad['xmax'],_0x1e9bad['ymax']);}const _0x52e8fc=Util['viewRectangleToLonLatRange'](_0x4ed16f);function _0x3f8ab3(_0x5501d2,_0x1b937e){return _0x351b06(_0x1b937e,_0x5501d2- -0xf6);}this['viewerParameters'][_0x4de681(0x103,0x106)]['x']=_0x52e8fc[_0x4de681(0x179,0x1ff)]['min'],this[_0x4de681(0x159,0x123)]['lonRange']['y']=_0x52e8fc['lon'][_0x4de681(0x1eb,0x21c)],this['viewerParameters'][_0x3f8ab3(-0x253,-0x219)]['x']=_0x52e8fc[_0x4de681(0x15b,0x123)]['min'],this[_0x4de681(0x159,0x1d7)][_0x4de681(0x161,0x197)]['y']=_0x52e8fc['lat']['max'];function _0x4de681(_0x159913,_0x20eff3){return _0x351b06(_0x20eff3,_0x159913-0x2be);}const _0x4e7c0e=this['camera']['getPixelSize'](this[_0x4de681(0x129,0x129)],this[_0x4de681(0x10e,0x13f)][_0x3f8ab3(-0x237,-0x250)],this['scene']['drawingBufferHeight']);_0x4e7c0e>0x0&&(this[_0x3f8ab3(-0x25b,-0x2dd)][_0x3f8ab3(-0x2aa,-0x32f)]=_0x4e7c0e);}}mars3d__namespace[_0x5333ea(-0x15d,-0xd1)][_0x5333ea(-0x32,-0x79)]('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;function _0x5333ea(_0x536760,_0x3b552a){return _0x3f65(_0x3b552a- -0x22c,_0x536760);}class CanvasParticle{constructor(){this['lng']=null,this[_0x531dcc(0x57,0xa7)]=null;function _0x531dcc(_0x2ef5c2,_0x281e66){return _0x5333ea(_0x281e66,_0x2ef5c2-0x141);}function _0x2f7d6d(_0xabd73f,_0x12c238){return _0x5333ea(_0x12c238,_0xabd73f-0x332);}this['tlng']=null,this['tlat']=null,this['age']=null,this[_0x2f7d6d(0x245,0x225)]=null;}['destroy'](){for(const _0x43e3df in this){delete this[_0x43e3df];}}}class CanvasWindField{constructor(_0x413214){function _0x1d02d5(_0x39f311,_0x1407b4){return _0x351b06(_0x39f311,_0x1407b4-0x30);}this[_0x1d02d5(-0x7c,-0xa6)](_0x413214);}get['speedRate'](){return this['_speedRate'];}set['speedRate'](_0x517c1e){function _0xd96b5a(_0x37d32e,_0x1feeb0){return _0x351b06(_0x1feeb0,_0x37d32e-0x357);}function _0xf7ea91(_0x40b805,_0x5a947e){return _0x351b06(_0x5a947e,_0x40b805-0x1a1);}this['_speedRate']=(0x64-(_0x517c1e>0x63?0x63:_0x517c1e))*0x64,this[_0xf7ea91(0x11,0x60)]=[(this['xmax']-this[_0xf7ea91(0x58,0x87)])/this['_speedRate'],(this[_0xf7ea91(0x31,0x1e)]-this[_0xf7ea91(0x41,0x68)])/this[_0xd96b5a(0x293,0x2f1)]];}get[_0x5333ea(-0x3f,-0x67)](){function _0x19ba07(_0x4e822d,_0x25458e){return _0x5333ea(_0x25458e,_0x4e822d-0x558);}return this[_0x19ba07(0x410,0x3e3)];}set['maxAge'](_0x3a7834){this['_maxAge']=_0x3a7834;}['setOptions'](_0x344f0f){this['options']=_0x344f0f,this['maxAge']=_0x344f0f['maxAge']||0x78,this['speedRate']=_0x344f0f['speedRate']||0x32;function _0x4af883(_0x504bda,_0x4fdef2){return _0x5333ea(_0x504bda,_0x4fdef2-0x219);}this['particles']=[];function _0x4fd838(_0x1b520b,_0x1d64c0){return _0x351b06(_0x1d64c0,_0x1b520b-0x535);}const _0xe60873=_0x344f0f[_0x4af883(0x15a,0x15f)]||0x1000;for(let _0x123e17=0x0;_0x123e17<_0xe60873;_0x123e17++){const _0x2b2579=this['_randomParticle'](new CanvasParticle());this[_0x4fd838(0x40f,0x380)][_0x4fd838(0x394,0x3a9)](_0x2b2579);}}['setDate'](_0xa6db7e){this['rows']=_0xa6db7e['rows'],this['cols']=_0xa6db7e['cols'],this[_0x1edfae(-0x12b,-0x123)]=_0xa6db7e[_0x1edfae(-0x10f,-0x123)],this['xmax']=_0xa6db7e['xmax'];function _0x97b8ec(_0x30f610,_0x89f1c6){return _0x5333ea(_0x89f1c6,_0x30f610-0x35d);}this['ymin']=_0xa6db7e['ymin'],this['ymax']=_0xa6db7e['ymax'],this[_0x97b8ec(0x30d,0x38c)]=[];const _0x363aac=_0xa6db7e[_0x97b8ec(0x2cc,0x2be)],_0x52b2c0=_0xa6db7e[_0x97b8ec(0x2de,0x26a)];let _0x4b35a0=![];_0x363aac['length']===this[_0x1edfae(-0x30,-0x8e)]&&_0x363aac[0x0][_0x97b8ec(0x21a,0x230)]===this[_0x97b8ec(0x263,0x270)]&&(_0x4b35a0=!![]);let _0xc4dc45=0x0,_0x177c55=null,_0x27f8b3=null;for(let _0x5996d2=0x0;_0x5996d2<this['rows'];_0x5996d2++){_0x177c55=[];for(let _0x541ee9=0x0;_0x541ee9<this['cols'];_0x541ee9++,_0xc4dc45++){_0x4b35a0?_0x27f8b3=this['_calcUV'](_0x363aac[_0x5996d2][_0x541ee9],_0x52b2c0[_0x5996d2][_0x541ee9]):_0x27f8b3=this[_0x97b8ec(0x31a,0x332)](_0x363aac[_0xc4dc45],_0x52b2c0[_0xc4dc45]),_0x177c55['push'](_0x27f8b3);}this['grid']['push'](_0x177c55);}function _0x1edfae(_0x237f89,_0x14d48a){return _0x351b06(_0x237f89,_0x14d48a-0x26);}this['options']['reverseY']&&this['grid'][_0x97b8ec(0x217,0x289)]();}['clear'](){delete this['rows'];function _0x209fd9(_0x3a6e42,_0x2a58c1){return _0x5333ea(_0x2a58c1,_0x3a6e42-0x3e5);}delete this['cols'],delete this[_0x209fd9(0x315,0x2f4)],delete this[_0x527518(-0x1ad,-0x17e)];function _0x527518(_0x853ccb,_0x1e7a5a){return _0x351b06(_0x1e7a5a,_0x853ccb- -0x3b);}delete this['ymin'],delete this[_0x209fd9(0x2ee,0x2f1)],delete this[_0x527518(-0x104,-0xc4)],delete this['particles'];}['toGridXY'](_0x4d3c1f,_0x3a25af){const _0x2cac03=(_0x4d3c1f-this[_0x363a45(0x137,0x16e)])/(this['xmax']-this['xmin'])*(this[_0xa3854c(0x3cd,0x415)]-0x1);function _0xa3854c(_0x4d3495,_0x4bba53){return _0x351b06(_0x4bba53,_0x4d3495-0x540);}const _0x1391e3=(this[_0xa3854c(0x3d0,0x3ef)]-_0x3a25af)/(this['ymax']-this['ymin'])*(this['rows']-0x1);function _0x363a45(_0x16c24a,_0x52c453){return _0x5333ea(_0x16c24a,_0x52c453-0x23e);}return[_0x2cac03,_0x1391e3];}['getUVByXY'](_0x49544c,_0x1b1880){if(_0x49544c<0x0||_0x49544c>=this['cols']||_0x1b1880>=this['rows'])return[0x0,0x0,0x0];const _0x10a143=Math[_0x449c95(0x5af,0x587)](_0x49544c),_0x5748bc=Math['floor'](_0x1b1880);if(_0x10a143===_0x49544c&&_0x5748bc===_0x1b1880)return this[_0x59c1e9(0x57d,0x55b)][_0x1b1880][_0x49544c];const _0x181beb=_0x10a143+0x1,_0x5b9964=_0x5748bc+0x1,_0x2ba5bb=this['getUVByXY'](_0x10a143,_0x5748bc);function _0x59c1e9(_0x419c9c,_0x2ff115){return _0x351b06(_0x419c9c,_0x2ff115-0x624);}const _0x21b749=this[_0x449c95(0x510,0x52c)](_0x181beb,_0x5748bc),_0x4d93dc=this['getUVByXY'](_0x10a143,_0x5b9964),_0x168be0=this['getUVByXY'](_0x181beb,_0x5b9964);let _0x59a0fa=null;try{_0x59a0fa=this[_0x59c1e9(0x5af,0x56a)](_0x49544c-_0x10a143,_0x1b1880-_0x5748bc,_0x2ba5bb,_0x21b749,_0x4d93dc,_0x168be0);}catch(_0x269cb1){console['log'](_0x49544c,_0x1b1880);}function _0x449c95(_0x16ccb4,_0x4cc06b){return _0x5333ea(_0x4cc06b,_0x16ccb4-0x5df);}return _0x59a0fa;}['_bilinearInterpolation'](_0x59a6a3,_0x13645b,_0x57a591,_0x1bc097,_0x440368,_0x2b87d7){const _0x316b9d=0x1-_0x59a6a3,_0x25f3e8=0x1-_0x13645b,_0x52b733=_0x316b9d*_0x25f3e8,_0x19dab3=_0x59a6a3*_0x25f3e8,_0x310937=_0x316b9d*_0x13645b,_0x13728a=_0x59a6a3*_0x13645b,_0x3da12c=_0x57a591[0x0]*_0x52b733+_0x1bc097[0x0]*_0x19dab3+_0x440368[0x0]*_0x310937+_0x2b87d7[0x0]*_0x13728a,_0x4b3a06=_0x57a591[0x1]*_0x52b733+_0x1bc097[0x1]*_0x19dab3+_0x440368[0x1]*_0x310937+_0x2b87d7[0x1]*_0x13728a;return this['_calcUV'](_0x3da12c,_0x4b3a06);}['_calcUV'](_0x312af6,_0x1a3375){function _0x1bc497(_0x3ebf1a,_0x46ec76){return _0x351b06(_0x46ec76,_0x3ebf1a-0x2f);}return[+_0x312af6,+_0x1a3375,Math[_0x1bc497(-0x15c,-0x130)](_0x312af6*_0x312af6+_0x1a3375*_0x1a3375)];}[_0x351b06(-0xde,-0xbf)](_0x1ad851,_0x336204){if(!this['isInExtent'](_0x1ad851,_0x336204))return null;const _0x10e1ab=this['toGridXY'](_0x1ad851,_0x336204),_0x350469=this['getUVByXY'](_0x10e1ab[0x0],_0x10e1ab[0x1]);return _0x350469;}[_0x5333ea(-0x52,-0xb1)](_0x281945,_0x3889b7){function _0x1348b4(_0x492c54,_0x4c2228){return _0x5333ea(_0x4c2228,_0x492c54- -0x102);}function _0x3a91a0(_0x2a897a,_0x193e07){return _0x5333ea(_0x2a897a,_0x193e07-0x2c7);}return _0x281945>=this[_0x3a91a0(0x16d,0x1f7)]&&_0x281945<=this[_0x1348b4(-0x1fb,-0x197)]&&_0x3889b7>=this['ymin']&&_0x3889b7<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0x12eb0e(_0x235a37,_0x20dc58){return _0x351b06(_0x20dc58,_0x235a37-0x581);}const _0x2ba4a7=fRandomByfloat(this[_0x12eb0e(0x438,0x3d3)],this['xmax']),_0x28cf4a=fRandomByfloat(this[_0x29081b(0x5c,0xa6)],this['ymax']),_0x577df5={};_0x577df5['lat']=_0x28cf4a;function _0x29081b(_0x260fa8,_0x4e4146){return _0x5333ea(_0x4e4146,_0x260fa8-0x143);}return _0x577df5['lng']=_0x2ba4a7,_0x577df5;}['getParticles'](){let _0xbf9c97,_0x55ce26,_0x245a70;function _0x464a3f(_0x44da81,_0x8c0d3b){return _0x351b06(_0x8c0d3b,_0x44da81-0x28b);}for(let _0x42772b=0x0,_0x4d4217=this[_0x223cb7(0xef,0x172)][_0x223cb7(0xd9,0xdc)];_0x42772b<_0x4d4217;_0x42772b++){let _0x3bc362=this['particles'][_0x42772b];_0x3bc362['age']<=0x0&&(_0x3bc362=this['_randomParticle'](_0x3bc362));if(_0x3bc362[_0x464a3f(0x17f,0x174)]>0x0){const _0x520d2e=_0x3bc362['tlng'],_0x5c1631=_0x3bc362[_0x223cb7(0x159,0x140)];_0x245a70=this[_0x464a3f(0x1cc,0x158)](_0x520d2e,_0x5c1631),_0x245a70?(_0xbf9c97=_0x520d2e+this[_0x223cb7(0x17f,0x108)][0x0]*_0x245a70[0x0],_0x55ce26=_0x5c1631+this['_calc_speedRate'][0x1]*_0x245a70[0x1],_0x3bc362['lng']=_0x520d2e,_0x3bc362['lat']=_0x5c1631,_0x3bc362[_0x223cb7(0x163,0x16b)]=_0xbf9c97,_0x3bc362['tlat']=_0x55ce26,_0x3bc362[_0x464a3f(0x125,0x15b)]=_0x245a70[0x2],_0x3bc362['age']--):_0x3bc362['age']=0x0;}}function _0x223cb7(_0x2ac2a7,_0x20ff4e){return _0x5333ea(_0x2ac2a7,_0x20ff4e-0x21f);}return this['particles'];}['_randomParticle'](_0x5956e9){let _0x2c20bd,_0xac955c;for(let _0x30469e=0x0;_0x30469e<0x1e;_0x30469e++){_0x2c20bd=this[_0x26e9bd(0x9b,0x5b)](),_0xac955c=this[_0x26e9bd(0xe7,0x111)](_0x2c20bd['lng'],_0x2c20bd['lat']);if(_0xac955c&&_0xac955c[0x2]>0x0)break;}if(!_0xac955c)return _0x5956e9;const _0x51a2ca=_0x2c20bd[_0x26e9bd(-0x21,-0xc)]+this['_calc_speedRate'][0x0]*_0xac955c[0x0];function _0x26e9bd(_0x2f5666,_0x18f3ee){return _0x351b06(_0x18f3ee,_0x2f5666-0x1a6);}const _0x105a5a=_0x2c20bd[_0x572532(-0xe4,-0x56)]+this[_0x572532(-0x49,-0x83)][0x1]*_0xac955c[0x1];function _0x572532(_0x92d34b,_0x4a6d74){return _0x351b06(_0x92d34b,_0x4a6d74-0x10d);}return _0x5956e9['lng']=_0x2c20bd[_0x572532(-0x2f,-0xba)],_0x5956e9['lat']=_0x2c20bd[_0x26e9bd(0x43,0xa3)],_0x5956e9[_0x572532(-0x10,-0x20)]=_0x51a2ca,_0x5956e9[_0x572532(-0x4a,-0x4b)]=_0x105a5a,_0x5956e9['age']=Math[_0x26e9bd(0x3c,0x94)](Math['random']()*this[_0x26e9bd(0xc6,0xf7)]),_0x5956e9['speed']=_0xac955c[0x2],_0x5956e9;}[_0x5333ea(-0x9c,-0xe1)](){for(const _0x2b0cc8 in this){delete this[_0x2b0cc8];}}}function fRandomByfloat(_0x5a08a9,_0x39fbe3){return _0x5a08a9+Math['random']()*(_0x39fbe3-_0x5a08a9);}const Cesium=mars3d__namespace[_0x351b06(-0xea,-0xf6)],BaseLayer=mars3d__namespace['layer'][_0x351b06(-0x79,-0xe5)];class CanvasWindLayer extends BaseLayer{constructor(_0xf55b93={}){super(_0xf55b93),this['_setOptionsHook'](_0xf55b93),this[_0x34d6b7(0x1b8,0x130)]=null;function _0x50dd78(_0x5bdf1e,_0x4ed60b){return _0x5333ea(_0x5bdf1e,_0x4ed60b- -0x4f);}function _0x34d6b7(_0x12f19f,_0x2258dd){return _0x5333ea(_0x12f19f,_0x2258dd-0x1c0);}_0xf55b93[_0x34d6b7(0x113,0x171)]&&_0xf55b93['steps']&&(this['_colorRamp']=new mars3d__namespace[(_0x34d6b7(0x97,0xff))](_0xf55b93));}['_setOptionsHook'](_0x53a2fc,_0x362b98){this['frameTime']=0x3e8/(_0x53a2fc['frameRate']||0xa);function _0x4de8f1(_0x43cd06,_0x6c3fa4){return _0x5333ea(_0x6c3fa4,_0x43cd06-0x1f);}this['_pointerEvents']=this[_0x98b90e(0x385,0x375)]['pointerEvents']??![],this['color']=_0x53a2fc['color']||_0x4de8f1(-0x1d,0x73),this[_0x4de8f1(-0x55,-0x41)]=_0x53a2fc[_0x98b90e(0x3d1,0x357)]||0x1,this[_0x4de8f1(-0xa0,-0x12b)]=_0x53a2fc['fixedHeight']??0x0,this[_0x4de8f1(-0x3d,-0xb9)]=_0x53a2fc[_0x4de8f1(-0x3d,0x6)]??![];function _0x98b90e(_0x273815,_0x46674e){return _0x5333ea(_0x46674e,_0x273815-0x445);}this['windField']&&this[_0x98b90e(0x399,0x3cd)][_0x98b90e(0x3e8,0x3e5)](_0x53a2fc);}get[_0x351b06(-0x12e,-0x182)](){return this['canvas'];}get['canvasWidth'](){function _0x2cbc80(_0x468fb5,_0x534d7c){return _0x351b06(_0x534d7c,_0x468fb5-0x60b);}return this['_map']['scene']['canvas'][_0x2cbc80(0x49c,0x4c2)];}get['canvasHeight'](){function _0x31c406(_0x3f1deb,_0x5664db){return _0x5333ea(_0x5664db,_0x3f1deb- -0x145);}return this['_map']['scene'][_0x31c406(-0x1d5,-0x21f)]['clientHeight'];}get[_0x351b06(-0x5d,-0xcb)](){return this['_pointerEvents'];}set[_0x351b06(-0x123,-0xcb)](_0x59dffd){function _0xe7e8ec(_0x20e6e7,_0x3a1121){return _0x5333ea(_0x3a1121,_0x20e6e7-0x60);}this['_pointerEvents']=_0x59dffd;if(!this['canvas'])return;function _0x20304d(_0x495e09,_0x80fa12){return _0x351b06(_0x495e09,_0x80fa12-0x5d2);}_0x59dffd?this['canvas']['style'][_0xe7e8ec(-0x98,-0x114)]=_0xe7e8ec(-0x9f,-0x6a):this[_0x20304d(0x559,0x4c9)]['style'][_0xe7e8ec(-0x98,-0x67)]='none';}get[_0x5333ea(-0x60,-0xba)](){function _0x2a94b5(_0x5741d4,_0xc36774){return _0x5333ea(_0xc36774,_0x5741d4- -0x153);}function _0x553b55(_0x13264a,_0x3e75ec){return _0x351b06(_0x3e75ec,_0x13264a-0x583);}return this[_0x2a94b5(-0x213,-0x23f)][_0x2a94b5(-0x20d,-0x1db)];}set[_0x351b06(-0x163,-0x133)](_0x6440c6){function _0x44297e(_0x2ecbe8,_0x5b67f1){return _0x5333ea(_0x2ecbe8,_0x5b67f1-0x2cd);}this['options']['particlesNumber']=_0x6440c6,clearTimeout(this['_canrefresh']),this[_0x44297e(0x1fe,0x1e4)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x351b06(-0x147,-0x107)](){function _0x38c901(_0x4e03b6,_0x349b90){return _0x5333ea(_0x349b90,_0x4e03b6-0x2b8);}return this[_0x38c901(0x1f8,0x268)]['speedRate'];}set[_0x5333ea(-0xc3,-0x8e)](_0x369225){this['options'][_0x146eb0(-0x165,-0x1a4)]=_0x369225;function _0x4a35af(_0x530f21,_0x395914){return _0x351b06(_0x530f21,_0x395914-0xc1);}function _0x146eb0(_0x112ed5,_0x546f40){return _0x5333ea(_0x112ed5,_0x546f40- -0x116);}this[_0x146eb0(-0x140,-0x1c2)]&&(this['windField'][_0x146eb0(-0x21e,-0x1a4)]=_0x369225);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x30e93b){function _0x90ed4e(_0x57e84d,_0x4448f1){return _0x5333ea(_0x4448f1,_0x57e84d-0x104);}function _0x58d768(_0x1db963,_0x15b416){return _0x351b06(_0x1db963,_0x15b416-0xe1);}this['options'][_0x90ed4e(0x9d,0x3b)]=_0x30e93b,this[_0x58d768(0x44,-0x44)]&&(this[_0x58d768(-0x24,-0x44)]['maxAge']=_0x30e93b);}get[_0x351b06(-0xfb,-0xf9)](){function _0xe37d5(_0x38fa80,_0x416c75){return _0x5333ea(_0x38fa80,_0x416c75-0x4b8);}return this[_0xe37d5(0x41e,0x3f6)];}set[_0x351b06(-0x8d,-0xf9)](_0xe76466){this['setData'](_0xe76466);}['_showHook'](_0x5813c6){function _0x2c4cfc(_0x287767,_0x5f275e){return _0x5333ea(_0x5f275e,_0x287767- -0x157);}function _0x5a7714(_0x5a1069,_0x471580){return _0x351b06(_0x471580,_0x5a1069-0x5f7);}_0x5813c6?this['_addedHook']():(this['windData']&&(this['options'][_0x2c4cfc(-0x1d7,-0x1a7)]=this['windData']),this[_0x2c4cfc(-0x209,-0x17f)]());}['_mountedHook'](){function _0x33bf1c(_0x4e4706,_0x5956c6){return _0x5333ea(_0x4e4706,_0x5956c6- -0x129);}this['options']['worker']?this[_0x33bf1c(-0x1b7,-0x1b0)]():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this[_0x29ec23(0xe,0x93)]();const _0x4d25ec={};_0x4d25ec['willReadFrequently']=!![];function _0x198b46(_0x1c5ae3,_0x415a44){return _0x5333ea(_0x1c5ae3,_0x415a44-0x1e1);}this['canvasContext']=this['canvas'][_0x198b46(0x84,0xd2)]('2d',_0x4d25ec),this[_0x198b46(0x1bc,0x189)]();function _0x29ec23(_0x55759e,_0x25ddc8){return _0x351b06(_0x55759e,_0x25ddc8-0x159);}this[_0x198b46(0x124,0x121)]['data']&&this[_0x198b46(0x195,0x172)](this['options'][_0x198b46(0x1a1,0x161)]);}[_0x351b06(-0xe7,-0x12b)](){function _0x161a68(_0x5f4ca4,_0x38be3a){return _0x5333ea(_0x38be3a,_0x5f4ca4- -0x163);}this['clear'](),this['unbindEvent']();function _0x1cdd8c(_0x45cb9c,_0x62a67f){return _0x5333ea(_0x62a67f,_0x45cb9c-0x32e);}this[_0x161a68(-0x1f3,-0x19b)]&&(this['_map']['container']['removeChild'](this[_0x1cdd8c(0x29e,0x24f)]),delete this[_0x1cdd8c(0x29e,0x2f1)]);}['_createCanvas'](){const _0x1b987c=mars3d__namespace['DomUtil'][_0x3391b3(-0xb7,-0x98)]('canvas','mars3d-canvasWind',this['_map']['container']);function _0x5d01b2(_0x3a8c7e,_0x5f2825){return _0x5333ea(_0x3a8c7e,_0x5f2825-0x364);}_0x1b987c['style'][_0x5d01b2(0x2c2,0x241)]='absolute',_0x1b987c[_0x5d01b2(0x30c,0x326)]['top']=_0x5d01b2(0x217,0x27e),_0x1b987c[_0x5d01b2(0x307,0x326)][_0x3391b3(-0x4,0x3a)]='0px',_0x1b987c[_0x3391b3(0x23,0x40)][_0x3391b3(-0x4d,-0xe)]=this['_map']['scene'][_0x5d01b2(0x2a9,0x2d4)]['clientWidth']+'px',_0x1b987c['style']['height']=this['_map'][_0x3391b3(-0xd6,-0xd7)]['canvas'][_0x5d01b2(0x2ef,0x299)]+'px',_0x1b987c[_0x3391b3(0x23,0x4f)][_0x5d01b2(0x2d1,0x312)]=this[_0x5d01b2(0x325,0x2ab)]?'auto':'none',_0x1b987c['style'][_0x3391b3(-0x49,-0x60)]=this[_0x3391b3(-0x5f,-0x31)][_0x3391b3(-0x49,-0x3f)]??0x9;function _0x3391b3(_0x13be2d,_0x35226a){return _0x5333ea(_0x35226a,_0x13be2d-0x61);}return _0x1b987c['width']=this['_map']['scene'][_0x5d01b2(0x276,0x2d4)]['clientWidth'],_0x1b987c['height']=this[_0x5d01b2(0x21e,0x23e)]['scene']['canvas'][_0x5d01b2(0x2cd,0x299)],_0x1b987c;}['resize'](){function _0x21e732(_0x42cf7b,_0x2d0552){return _0x5333ea(_0x42cf7b,_0x2d0552-0x180);}function _0x5d64fd(_0x4b77de,_0x40604d){return _0x351b06(_0x40604d,_0x4b77de-0x46c);}this['canvas']&&(this[_0x5d64fd(0x363,0x2f7)][_0x5d64fd(0x3b5,0x391)]['width']=this['_map']['scene']['canvas']['clientWidth']+'px',this['canvas'][_0x5d64fd(0x3b5,0x37a)][_0x5d64fd(0x380,0x31c)]=this[_0x5d64fd(0x2cd,0x357)]['scene']['canvas']['clientHeight']+'px',this[_0x5d64fd(0x363,0x394)][_0x21e732(0x85,0xd2)]=this['_map'][_0x21e732(0x4b,0x49)][_0x21e732(0xf5,0xf0)]['clientWidth'],this[_0x21e732(0x14f,0xf0)]['height']=this[_0x5d64fd(0x2cd,0x28d)][_0x5d64fd(0x2bc,0x2d6)]['canvas']['clientHeight']);}['bindEvent'](){const _0x507042=this;function _0x5e6609(_0x5053d7,_0x58e5d1){return _0x5333ea(_0x58e5d1,_0x5053d7-0x2ef);}function _0x12cd12(_0x31362a,_0x3dba37){return _0x351b06(_0x3dba37,_0x31362a- -0x119);}let _0x15c780=Date[_0x12cd12(-0x297,-0x2ce)]();(function _0x301a9a(){if(_0x507042[_0x454c80(0x1cf,0x16e)])return;function _0x29252d(_0x56ca82,_0x447efb){return _0x12cd12(_0x447efb-0xfc,_0x56ca82);}function _0x454c80(_0x17021e,_0xe26e18){return _0x12cd12(_0xe26e18-0x3d7,_0x17021e);}_0x507042['_animateFrame']=window['requestAnimationFrame'](_0x301a9a);if(_0x507042['show']&&_0x507042['windField']){const _0x454c50=Date[_0x29252d(-0x1a8,-0x19b)](),_0x2f7c0c=_0x454c50-_0x15c780;_0x2f7c0c>_0x507042['frameTime']&&(_0x15c780=_0x454c50-_0x2f7c0c%_0x507042[_0x454c80(0x11c,0x150)],_0x507042['update']());}}(),window['addEventListener']('resize',this['resize'][_0x5e6609(0x279,0x2a9)](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options'][_0x12cd12(-0x290,-0x30f)]&&(this['_map']['on'](mars3d__namespace[_0x12cd12(-0x2c5,-0x237)]['wheel'],this['_onMapWhellEvent'],this),this[_0x5e6609(0x1c9,0x216)]['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x12cd12(-0x2b8,-0x2bb)]['on'](mars3d__namespace[_0x12cd12(-0x2c5,-0x323)]['mouseUp'],this['_onMouseUpEvent'],this)));}[_0x5333ea(-0xd5,-0x144)](){function _0x1f1982(_0x2cb958,_0xaf8a97){return _0x5333ea(_0xaf8a97,_0x2cb958-0xee);}window['cancelAnimationFrame'](this['_animateFrame']);function _0x595184(_0x3fef32,_0xf1f3fe){return _0x351b06(_0x3fef32,_0xf1f3fe- -0x88);}delete this[_0x595184(-0x1fe,-0x220)],window['removeEventListener']('resize',this['resize']),this['options'][_0x595184(-0x268,-0x1ff)]&&(this['_map']['off'](mars3d__namespace[_0x1f1982(-0x45,-0xc8)][_0x1f1982(0xb,-0x11)],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace[_0x595184(-0x214,-0x234)][_0x1f1982(-0x16,-0x83)],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x595184(-0x1d4,-0x22d)],this['_onMouseUpEvent'],this),this[_0x595184(-0x29b,-0x227)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x5333ea(-0x157,-0x107)](_0x11c707){clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;function _0x3a9b46(_0x1448ec,_0x28ba57){return _0x351b06(_0x28ba57,_0x1448ec- -0x53);}this['canvas'][_0x3a9b46(-0x10a,-0xea)][_0x4b18ec(0x2b7,0x2ff)]='hidden';function _0x4b18ec(_0x4e639d,_0x420746){return _0x351b06(_0x4e639d,_0x420746-0x3b8);}this['refreshTimer']=setTimeout(()=>{function _0xe93fe4(_0x560c02,_0x2a77d7){return _0x4b18ec(_0x2a77d7,_0x560c02- -0x3d9);}if(!this[_0xe93fe4(-0xfd,-0x86)])return;function _0x131ad2(_0x16b323,_0x30e3f9){return _0x4b18ec(_0x16b323,_0x30e3f9- -0x434);}this[_0xe93fe4(-0x177,-0x1d4)](),this['canvas'][_0x131ad2(-0xa6,-0x133)]['visibility']='visible';},0xc8);}[_0x5333ea(-0x133,-0xd4)](_0x2a0a80){this['mouse_down']=!![],this[_0x201c0f(-0x1b5,-0x211)][_0x108513(0x2c5,0x2e1)](mars3d__namespace['EventType'][_0x201c0f(-0x1eb,-0x15c)],this['_onMouseMoveEvent'],this);function _0x201c0f(_0x1b9457,_0x1ed64b){return _0x5333ea(_0x1b9457,_0x1ed64b- -0xeb);}function _0x108513(_0x4a114b,_0x375e3a){return _0x351b06(_0x375e3a,_0x4a114b-0x417);}this['_map']['on'](mars3d__namespace[_0x108513(0x26b,0x237)]['mouseMove'],this[_0x108513(0x33e,0x2f2)],this);}['_onMouseMoveEvent'](_0x429b8c){if(!this[_0x3f6b99(0x260,0x2bb)]||!this[_0x5549f1(-0x1d1,-0x14e)])return;function _0x5549f1(_0x5b17b2,_0x21d236){return _0x351b06(_0x5b17b2,_0x21d236- -0x45);}function _0x3f6b99(_0x1ca97f,_0x348108){return _0x5333ea(_0x1ca97f,_0x348108-0x31e);}this['mouse_down']&&(this[_0x5549f1(-0x1aa,-0x14e)]['style']['visibility']='hidden',this['mouse_move']=!![]);}[_0x5333ea(-0x92,-0x10c)](_0x5e30e5){if(!this[_0xd09be5(0x10f,0xbd)]||!this[_0xd09be5(0xc,0x90)])return;function _0x38c2f2(_0xa7d3af,_0x4d8a4c){return _0x5333ea(_0x4d8a4c,_0xa7d3af-0x94);}this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);this[_0xd09be5(0x80,0x38)]&&this['mouse_move']&&this['redraw']();function _0xd09be5(_0x43059e,_0x33f1d4){return _0x351b06(_0x43059e,_0x33f1d4-0x199);}this['canvas'][_0x38c2f2(0x56,-0x1b)]['visibility']='visible',this['mouse_down']=![],this['mouse_move']=![];}['setData'](_0x249b02){function _0x54ebe3(_0x2c6453,_0x2b6e90){return _0x5333ea(_0x2c6453,_0x2b6e90-0x55e);}this[_0x54ebe3(0x4f6,0x4e9)](),this['windData']=_0x249b02,this['windField']['setDate'](_0x249b02),this['redraw']();}[_0x5333ea(-0x127,-0xdd)](){if(!this['show'])return;function _0x21abe5(_0x3b36c3,_0x5cad60){return _0x5333ea(_0x5cad60,_0x3b36c3-0x4c9);}this[_0x21abe5(0x41d,0x457)][_0x21abe5(0x46c,0x422)](this[_0x21abe5(0x409,0x3bd)]);function _0x1ddb0c(_0x2d7ff7,_0x5c4837){return _0x351b06(_0x2d7ff7,_0x5c4837-0x2cf);}this['update']();}['update'](){if(this['_updateIng'])return;function _0xfcdb32(_0x32909e,_0x33f240){return _0x5333ea(_0x33f240,_0x32909e-0x4a3);}this['_updateIng']=!![];if(this[_0x428a24(0x36a,0x3f8)])this['windField'][_0xfcdb32(0x382,0x392)]();else{const _0x2dd09b=this['windField']['getParticles']();this['_drawLines'](_0x2dd09b);}function _0x428a24(_0x16e242,_0x1a58c3){return _0x5333ea(_0x1a58c3,_0x16e242-0x494);}this['_updateIng']=![];}['_drawLines'](_0x4e7d69){this['canvasContext']['globalCompositeOperation']='destination-in',this[_0x5a39b9(0x38d,0x30d)][_0x5a39b9(0x3c1,0x3fe)](0x0,0x0,this[_0x5a39b9(0x2ec,0x318)],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']=_0x406fea(-0xb6,-0xdc),this['canvasContext'][_0x406fea(-0x9,-0x36)]=0.9;const _0xe5809a=this[_0x5a39b9(0x2e8,0x331)]['scene'][_0x406fea(-0xb5,-0x12c)]!==Cesium['SceneMode']['SCENE3D'];function _0x5a39b9(_0x913d4b,_0x516e74){return _0x351b06(_0x913d4b,_0x516e74-0x4d0);}const _0x12626c=this[_0x406fea(-0xf4,-0x8a)]*0.25;function _0x406fea(_0x4e2d51,_0x5038e7){return _0x351b06(_0x5038e7,_0x4e2d51-0xc4);}if(this['_colorRamp'])for(let _0x16879a=0x0,_0x40e261=_0x4e7d69[_0x406fea(-0xf8,-0xc8)];_0x16879a<_0x40e261;_0x16879a++){const _0x4079e1=_0x4e7d69[_0x16879a],_0x58472c=this[_0x406fea(-0x3,0x17)](_0x4079e1[_0x5a39b9(0x30e,0x309)],_0x4079e1[_0x406fea(-0x9f,-0xaa)],_0x4079e1),_0x3a74f4=this['_tomap'](_0x4079e1[_0x5a39b9(0x399,0x3a3)],_0x4079e1[_0x406fea(-0x94,-0xb0)],_0x4079e1);if(!_0x58472c||!_0x3a74f4)continue;if(_0xe5809a&&Math['abs'](_0x58472c[0x0]-_0x3a74f4[0x0])>=_0x12626c)continue;this[_0x406fea(-0xff,-0xcc)]['beginPath'](),this['canvasContext']['lineWidth']=this[_0x5a39b9(0x37d,0x3e3)],this['canvasContext'][_0x5a39b9(0x36a,0x34a)]=this['_colorRamp']['getColor'](_0x4079e1['speed']),this['canvasContext']['moveTo'](_0x58472c[0x0],_0x58472c[0x1]),this[_0x5a39b9(0x348,0x30d)][_0x5a39b9(0x470,0x402)](_0x3a74f4[0x0],_0x3a74f4[0x1]),this['canvasContext'][_0x406fea(-0x3f,-0x16)]();}else{this[_0x406fea(-0xff,-0x97)][_0x406fea(-0xfc,-0x162)](),this['canvasContext'][_0x5a39b9(0x432,0x3e3)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x406fea(-0x7b,-0x78)];for(let _0x103d2c=0x0,_0x5d8fab=_0x4e7d69['length'];_0x103d2c<_0x5d8fab;_0x103d2c++){const _0xea2d80=_0x4e7d69[_0x103d2c],_0x29adf6=this[_0x406fea(-0x3,-0x58)](_0xea2d80[_0x5a39b9(0x292,0x309)],_0xea2d80[_0x406fea(-0x9f,-0xe9)],_0xea2d80),_0x4411f3=this['_tomap'](_0xea2d80[_0x5a39b9(0x3c0,0x3a3)],_0xea2d80['tlat'],_0xea2d80);if(!_0x29adf6||!_0x4411f3)continue;if(_0xe5809a&&Math[_0x406fea(0x17,0x66)](_0x29adf6[0x0]-_0x4411f3[0x0])>=_0x12626c)continue;this[_0x406fea(-0xff,-0x90)]['moveTo'](_0x29adf6[0x0],_0x29adf6[0x1]),this['canvasContext'][_0x406fea(-0xa,-0x71)](_0x4411f3[0x0],_0x4411f3[0x1]);}this['canvasContext']['stroke']();}}['_tomap'](_0x5aed02,_0x400c08,_0x34d58e){const _0x49d777=Cesium['Cartesian3']['fromDegrees'](_0x5aed02,_0x400c08,this['fixedHeight']),_0x92c877=this['_map']['scene'];function _0x139910(_0x5183bf,_0x47f749){return _0x351b06(_0x5183bf,_0x47f749- -0x8);}if(_0x92c877['mode']===Cesium[_0x139910(-0x52,-0xc9)]['SCENE3D']){const _0x39c7e5=new Cesium[(_0x139910(-0xee,-0x17c))](_0x92c877['globe'][_0x139910(-0x132,-0x1a1)],_0x92c877['camera'][_0x8a86e9(-0x1d0,-0x157)]),_0x12c0c=_0x39c7e5[_0x8a86e9(-0x1ac,-0x13c)](_0x49d777);if(!_0x12c0c)return _0x34d58e['age']=0x0,null;}function _0x8a86e9(_0x327d44,_0x4d22cc){return _0x5333ea(_0x327d44,_0x4d22cc- -0x3a);}const _0xe47fe9=Cesium[_0x8a86e9(-0x15c,-0x14b)][_0x8a86e9(-0x49,-0x79)](this['_map'][_0x139910(-0x232,-0x1b8)],_0x49d777);return _0xe47fe9?[_0xe47fe9['x'],_0xe47fe9['y']]:null;}[_0x351b06(-0x179,-0xee)](){this[_0x20a135(0x26e,0x2ee)]['clear']();function _0x20a135(_0x327ea0,_0x2d34dc){return _0x351b06(_0x327ea0,_0x2d34dc-0x413);}delete this['windData'];}[_0x5333ea(-0x25,-0x87)](){this['worker']=new Worker(this[_0x352875(-0xa,0x7b)]['worker']);function _0x21ac40(_0x4e763b,_0x3f955f){return _0x351b06(_0x3f955f,_0x4e763b- -0xe2);}this['worker']['onmessage']=_0x456537=>{this['_drawLines'](_0x456537['data']['particles']),this['_updateIng2']=![];},this['windField']={'init':_0x5e1a5b=>{function _0x536542(_0x15b62c,_0x2482cf){return _0x352875(_0x15b62c-0x327,_0x2482cf);}const _0x110f49={};_0x110f49[_0x210962(0x10,0x1d)]='init',_0x110f49['options']=_0x5e1a5b;function _0x210962(_0x26878d,_0x191c90){return _0x352875(_0x191c90-0x35,_0x26878d);}this[_0x536542(0x2b3,0x336)]['postMessage'](_0x110f49);},'setOptions':_0xee2c20=>{const _0x29c72e={};_0x29c72e[_0x56359b(-0x163,-0x1eb)]='setOptions';function _0x1894f2(_0x379367,_0xb166aa){return _0x352875(_0xb166aa-0xa3,_0x379367);}function _0x56359b(_0x343e06,_0x4f87a2){return _0x352875(_0x343e06- -0x14b,_0x4f87a2);}_0x29c72e['options']=_0xee2c20,this[_0x56359b(-0x1bf,-0x17e)][_0x1894f2(0x91,0x117)](_0x29c72e);},'setDate':_0x438d30=>{const _0x104576={};function _0x48ffb7(_0x6c697f,_0x2337a9){return _0x352875(_0x2337a9- -0xfa,_0x6c697f);}_0x104576[_0x48ffb7(-0xc8,-0x112)]='setDate',_0x104576[_0x48ffb7(-0x116,-0xc4)]=_0x438d30;function _0x88dce0(_0xbac7a8,_0x5149f5){return _0x352875(_0xbac7a8-0x540,_0x5149f5);}this[_0x48ffb7(-0x170,-0x16e)][_0x88dce0(0x5b4,0x636)](_0x104576);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x104411={};function _0x2700ce(_0x30f189,_0x5c4b42){return _0x352875(_0x5c4b42-0x2c4,_0x30f189);}_0x104411[_0x2700ce(0x2fd,0x2ac)]='update',this['worker']['postMessage'](_0x104411);},'clear':()=>{const _0x28a90a={};_0x28a90a['type']='clear',this['worker']['postMessage'](_0x28a90a);}};function _0x352875(_0x2f65e9,_0xc882d2){return _0x351b06(_0xc882d2,_0x2f65e9-0x12f);}this[_0x352875(0xa,-0x70)]['init'](this[_0x21ac40(-0x21b,-0x260)]);}}function _0x351b06(_0x4c8e50,_0x4ba224){return _0x3f65(_0x4ba224- -0x2a5,_0x4c8e50);}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace[_0x5333ea(-0xfc,-0x109)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x351b06(-0x162,-0x16b)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x896bb7={};_0x896bb7[_0x5333ea(-0x195,-0x125)]=!![],Object[_0x5333ea(-0x99,-0x9c)](exports,'__esModule',_0x896bb7);
|
|
15
|
-
}));
|