mars3d-wind 3.8.6 → 3.8.8
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/README.md +1 -1
- package/mars3d-wind.js +15 -0
- package/package.json +3 -6
- package/dist/mars3d-wind.js +0 -15
package/README.md
CHANGED
package/mars3d-wind.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
|
3
|
+
*
|
|
4
|
+
* 版本信息:v3.8.8
|
|
5
|
+
* 编译日期:2024-11-26 21:04
|
|
6
|
+
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
|
+
* 使用单位:免费公开版 ,2024-08-01
|
|
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(_0x5348a8,_0x3a10d1){const _0x1e27e2=_0x5348a8();function _0xf50147(_0x20939d,_0x56876c){return _0x113c(_0x20939d- -0x159,_0x56876c);}function _0x80056d(_0x18c10f,_0x170ebb){return _0x113c(_0x170ebb- -0x3d2,_0x18c10f);}while(!![]){try{const _0x10b415=parseInt(_0x80056d(-0x1a6,-0x22d))/0x1+-parseInt(_0xf50147(0x92,0xe4))/0x2+-parseInt(_0x80056d(-0x1dc,-0x245))/0x3+-parseInt(_0x80056d(-0x1b7,-0x24f))/0x4+-parseInt(_0x80056d(-0x262,-0x2c4))/0x5*(-parseInt(_0x80056d(-0x243,-0x295))/0x6)+parseInt(_0x80056d(-0x2cc,-0x29e))/0x7+parseInt(_0xf50147(0x36,0x2d))/0x8;if(_0x10b415===_0x3a10d1)break;else _0x1e27e2['push'](_0x1e27e2['shift']());}catch(_0x4ade01){_0x1e27e2['push'](_0x1e27e2['shift']());}}}(_0x1098,0xaffad));function _0x1098(){const _0x12d0b3=['randomBetween','randomizeParticles','DEPTH_COMPONENT','maxParticles','sqrt','redraw','init','maximum','DISABLE_GL_POSITION_LOG_DEPTH','_onMapWhellEvent','STATIC_DRAW','NEAREST','addPrimitives','ymax','setData','drawingBufferWidth','dynamic','windTextures','#version\x20300\x20es\x0a\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20norm)\x20Unit\x20converted\x20to\x20degrees\x20of\x20longitude\x20and\x20latitude\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20speed;\x0a\x20\x20if(length(speed.rgb)\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20}\x0a}\x0a','getFullscreenQuad','WindUtil','colorTable','fromGeometry','canvas','vmin','Geometry','ymin','nextTrailsColor','visibility','Ellipsoid','unbindEvent','lat','mouse_down','getColorTexture','createRenderingTextures','segmentsColor','_onMouseUpEvent','destroy','segmentsDepth','resize','FLOAT','preRender','preExecute','canvasResize','vertexArray','BaseLayer','latRange','ComponentDatatype','getDirection','clear','0px','segments','array','clientHeight','speed','previousParticlesPosition','5482340oAakEU','random','framebuffers','left','levmax','particleSystem','color','context','mouseMove','createComputingPrimitives','2966220SGRnkJ','particlesSpeed','17515152ZeyHrq','defined','UNSIGNED_BYTE','age','beginPath','ShaderProgram','_createCanvas','pixelSize','fadeOpacity','commandList','createWindTextures','VertexArray','refreshTimer','style','height','frameTime','particles','cols','_colorRamp','tlat','strokeStyle','colorTextures','1259254AeyeAJ','globalCompositeOperation','_onMouseDownEvent','createTexture','length','PixelDatatype','isPointVisible','_map','Math','getOptions','RGBA','visible','updateViewerParameters','SCENE3D','lev','DrawCommand','register','west','LINEAR','xmin','framebuffer','EventType','TextureMinificationFilter','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20lines\x20drawing\x0ain\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0auniform\x20vec2\x20hRange;\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20vec2\x20wSpeedRange;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0aout\x20float\x20heightNormalization;\x0aout\x20float\x20speedNormalization;\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight\x20+\x20lonLatLev.z;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0f,\x20360.0f)\x20-\x20180.0f;\x0a\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0f;\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20vec3\x20percent\x20=\x20vec3(0.0f);\x0a\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20if(wSpeedRange.y\x20==\x20wSpeedRange.x)\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x200.0f;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x20(speed.z\x20-\x20wSpeedRange.x)\x20/\x20(wSpeedRange.y\x20-\x20wSpeedRange.x);\x0a\x20\x20}\x0a\x20\x20float\x20norm\x20=\x20length(percent);\x0a\x0a\x20\x20return\x20norm;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20vec3\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20vec3\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20vec3\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rgb;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x20\x20\x20\x20//\x20render\x20lines\x20with\x20triangles\x20and\x20miter\x20joint\x0a\x20\x20\x20\x20//\x20read\x20https://blog.scottlogic.com/2019/11/18/drawing-lines-with-webgl.html\x20for\x20detail\x0a\x20\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20projectedCoordinates.next,\x20offsetSign);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.next\x20+\x20offset;\x0a\x20\x20}\x0a\x0a\x20\x20heightNormalization\x20=\x20(currentPosition.z\x20-\x20hRange.x)\x20/\x20(hRange.y\x20-\x20hRange.x);\x0a\x0a\x20\x20speedNormalization\x20=\x20texture(particlesSpeed,\x20particleIndex).a;\x0a}\x0a','keys','GeometryAttributes','atan2','particleHeight','canvasContext','pointer-events','camera','position','xmax','dimensions','_calc_speedRate','pointerEvents','dropRate','fromDegrees','pixelDatatype','lon','RGB','mouse_move','getUVByXY','reverse','clampToLatitudeRange','toWindowCoordinates','now','options','maxAge','#ffffff','textures','canvasWind','max','speedRate','mouseUp','createSegmentsGeometry','all','trails','mod','primitives','blending','udata','OPAQUE','lineTo','shaderProgram','__proto__','particlesTextureSize','viewRectangleToLonLatRange','WGS84','colour','2875870QatkYC','rectangle','_calcUV','vertexShaderSource','Cartesian2','THREE_PI_OVER_TWO','setOptions','toDegrees','rawRenderState','#version\x20300\x20es\x0a\x0auniform\x20sampler2D\x20trailsColorTexture;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec4\x20trailsColor\x20=\x20texture(trailsColorTexture,\x20textureCoordinate);\x0a\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20if(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20trailsColor;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20}\x0a}\x0a','off','north','fixedHeight','calculateSpeed','getRandomLatLng','UNSIGNED_INT','Compute','speedFactor','Cesium','currentTrailsColor','postProcessingPosition','particlesTextures','sources','minimumRadius','_drawLines','postMessage','#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20W;\x20//\x20upward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20vec2\x20wSpeedRange;\x0auniform\x20float\x20speedScaleFactor;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLatLev.x\x20=\x20clamp(lonLatLev.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20minimum.y,\x20maximum.y);\x0a\x20\x20lonLatLev.z\x20=\x20clamp(lonLatLev.z,\x20minimum.z,\x20maximum.z);\x0a\x0a\x20\x20vec3\x20index3D\x20=\x20vec3(0.0f);\x0a\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20//\x20map\x20the\x20z-axis\x20value\x20to\x20the\x20nearest\x20bit\x20plane\x20to\x20ensure\x20that\x20the\x20result\x20is\x20an\x20integer\x0a\x20\x20index3D.z\x20=\x20ceil((lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z);\x0a\x0a\x20\x20\x20\x20//\x20the\x20st\x20texture\x20coordinate\x20corresponding\x20to\x20(col,\x20row)\x20index\x0a\x20\x20\x20\x20//\x20example\x0a\x20\x20\x20\x20//\x20data\x20array\x20is\x20[0,\x201,\x202,\x203,\x204,\x205,\x207,\x208,\x209],\x20width\x20=\x202,\x20height\x20=\x202,\x20level\x20=\x202\x0a\x20\x20\x20\x20//\x20the\x20content\x20of\x20texture\x20will\x20be\x0a\x20\x20\x20\x20//\x20t\x201.0\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x206\x207\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x202\x203\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0afloat\x20interpolateTexture(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x201.0f\x20*\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x201.0f\x20*\x20interval.y;\x0a\x0a\x20\x20float\x20lon0_lat0\x20=\x20getWindComponent(componentTexture,\x20vec3(lon0,\x20lat0,\x20lev));\x0a\x20\x20float\x20lon1_lat0\x20=\x20getWindComponent(componentTexture,\x20vec3(lon1,\x20lat0,\x20lev));\x0a\x20\x20float\x20lon0_lat1\x20=\x20getWindComponent(componentTexture,\x20vec3(lon0,\x20lat1,\x20lev));\x0a\x20\x20float\x20lon1_lat1\x20=\x20getWindComponent(componentTexture,\x20vec3(lon1,\x20lat1,\x20lev));\x0a\x0a\x20\x20float\x20lon_lat0\x20=\x20mix(lon0_lat0,\x20lon1_lat0,\x20lon\x20-\x20lon0);\x0a\x20\x20float\x20lon_lat1\x20=\x20mix(lon0_lat1,\x20lon1_lat1,\x20lon\x20-\x20lon0);\x0a\x20\x20float\x20lon_lat\x20=\x20mix(lon_lat0,\x20lon_lat1,\x20lat\x20-\x20lat0);\x0a\x20\x20return\x20lon_lat;\x0a}\x0a\x0avec3\x20linearInterpolation(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bilinear_interpolation\x0a\x20\x20float\x20u\x20=\x20interpolateTexture(U,\x20lonLatLev);\x0a\x20\x20float\x20v\x20=\x20interpolateTexture(V,\x20lonLatLev);\x0a\x20\x20float\x20w\x20=\x20interpolateTexture(W,\x20lonLatLev);\x0a\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec3\x20convertSpeedUnitToLonLat(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20float\x20w\x20=\x20speed.z;\x0a\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20return\x20windVectorInLonLatLev;\x0a}\x0a\x0avec3\x20calculateSpeedByRungeKutta2(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec3\x20y_n\x20=\x20lonLatLev;\x0a\x20\x20vec3\x20f_n\x20=\x20linearInterpolation(lonLatLev);\x0a\x20\x20vec3\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec3\x20speed\x20=\x20h\x20*\x20linearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20getRange(vec2\x20range)\x20{\x0a\x20\x20float\x20x1\x20=\x200.0f\x20-\x20range.x;\x0a\x20\x20float\x20x2\x20=\x20range.y\x20-\x200.0f;\x0a\x20\x20if(x1\x20<\x200.0f\x20||\x20x2\x20<\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(abs(x1),\x20abs(x2));\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x20abs(max(x1,\x20x2)));\x0a\x20\x20}\x0a}\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20vec3\x20percent\x20=\x20vec3(0.0f);\x0a\x20\x20vec2\x20uRange\x20=\x20getRange(uSpeedRange);\x0a\x20\x20vec2\x20vRange\x20=\x20getRange(vSpeedRange);\x0a\x20\x20vec2\x20wRange\x20=\x20getRange(wSpeedRange);\x0a\x20\x20if(length(speed.xyz)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x200.0f;\x0a\x20\x20}\x0a\x0a\x20\x20percent.x\x20=\x20(abs(speed.x)\x20-\x20uRange.x)\x20/\x20(uRange.y\x20-\x20uRange.x);\x0a\x20\x20percent.y\x20=\x20(abs(speed.y)\x20-\x20vRange.x)\x20/\x20(vRange.y\x20-\x20vRange.x);\x0a\x20\x20if(wSpeedRange.y\x20==\x20wSpeedRange.x)\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x200.0f;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x20(abs(speed.z)\x20-\x20wRange.x)\x20/\x20(wRange.y\x20-\x20wRange.x);\x0a\x20\x20}\x0a\x20\x20float\x20norm\x20=\x20length(percent);\x0a\x0a\x20\x20return\x20norm;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20speedOrigin\x20=\x20linearInterpolation(lonLatLev);\x0a\x20\x20vec3\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLatLev);\x0a\x20\x20vec3\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLatLev,\x20speed);\x0a\x0a\x20\x20vec4\x20particleSpeed\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speed\x20/\x20speedScaleFactor));\x0a\x20\x20\x20\x20//\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a','layer','_tomap','pow','update','getPixelSize','onmessage','WindLayer','getDefaultRenderState','vdata','reverseY','fragmentShaderSource','clearCommand','currentTrailsDepth','once','windField','_updateIng','nextTrails','depthTexture','primitiveType','canvasHeight','_pointerEvents','_bilinearInterpolation','commandType','PixelFormat','_data','destroyObject','auto','isDestroyed','umin','PI_OVER_TWO','colors','attributeLocations','forEach','normal','particlesRendering','_speedRate','tlng','_updateIng2','isInExtent','particlesComputing','nextTrailsDepth','type','show','outputTexture','currentTrails','createRawRenderState','umax','uSpeedRange','speedScaleFactor','fromCssColorString','applyViewerParameters','positionWC','windData','defines','mouseDown','_removedHook','3998090WIOuKi','grid','talt','setDate','Draw','rows','minimum','data','createFramebuffer','toGridXY','lineWidth','viewerParameters','log','updatePosition','worker','Framebuffer','Texture','rgb(206,255,255)','commandToExecute','_canvasParticles','none','PrimitiveType','TRIANGLES','ShaderSource','push','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','createRenderingPrimitives','lonRange','getValidRange','Cartesian3','createParticlesTextures','south','uniformMap','#version\x20300\x20es\x0a\x0ain\x20vec3\x20position;\x0ain\x20vec2\x20st;\x0a\x0aout\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a\x20\x20gl_Position\x20=\x20vec4(position,\x201.0f);\x0a}\x0a','GeometryAttribute','add','currentParticlesPosition','ALWAYS','1888649Rexhat','Pass','width','_onMouseMoveEvent','destroyParticlesTextures','vmax','toRadians','scene','value','6cblxxn','Color','Sampler','globe','stroke','_maxAge','top','BufferUsage','TextureMagnificationFilter','particlesNumber','min','dropRateBump','lng','CanvasWindLayer'];_0x1098=function(){return _0x12d0b3;};return _0x1098();}function _0x3d22de(_0x1dfdf1,_0x5d0192){return _0x113c(_0x5d0192-0xb6,_0x1dfdf1);}function _interopNamespace(_0x4dcdb1){if(_0x4dcdb1&&_0x4dcdb1['__esModule'])return _0x4dcdb1;var _0x4ba25d=Object['create'](null);_0x4dcdb1&&Object['keys'](_0x4dcdb1)[_0xaff2c6(0x392,0x397)](function(_0x17fdf9){if(_0x17fdf9!=='default'){var _0x1118c3=Object['getOwnPropertyDescriptor'](_0x4dcdb1,_0x17fdf9);Object['defineProperty'](_0x4ba25d,_0x17fdf9,_0x1118c3['get']?_0x1118c3:{'enumerable':!![],'get':function(){return _0x4dcdb1[_0x17fdf9];}});}});function _0xaff2c6(_0x30147e,_0x1f19fe){return _0x113c(_0x30147e-0x29c,_0x1f19fe);}return _0x4ba25d['default']=_0x4dcdb1,_0x4ba25d;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$7=mars3d__namespace[_0x3d22de(0x100,0x183)];function getU(_0x533093,_0x35c28a){const _0x5a204e=_0x533093*Math['cos'](Cesium$7['Math']['toRadians'](_0x35c28a));return _0x5a204e;}function getV(_0x1804e4,_0x3c52f5){const _0x3567d2=_0x1804e4*Math['sin'](Cesium$7['Math'][_0x54446f(-0x2a9,-0x25d)](_0x3c52f5));function _0x54446f(_0x2fa591,_0x4b2c58){return _0x3d22de(_0x2fa591,_0x4b2c58- -0x44d);}return _0x3567d2;}function getSpeed(_0x2df44e,_0x3091a7){function _0x2d3e42(_0x23c6ad,_0x5b5f45){return _0x3d22de(_0x23c6ad,_0x5b5f45-0x133);}function _0x49a2d7(_0x3ed1ba,_0x49180d){return _0x3d22de(_0x49180d,_0x3ed1ba-0x40);}const _0x672cdd=Math[_0x49a2d7(0x245,0x223)](Math[_0x49a2d7(0x1ce,0x225)](_0x2df44e,0x2)+Math['pow'](_0x3091a7,0x2));return _0x672cdd;}function getDirection(_0x107a2e,_0x543187){function _0x573559(_0x42ca82,_0x389ca5){return _0x3d22de(_0x42ca82,_0x389ca5-0xa1);}let _0x5e8abc=Cesium$7['Math'][_0x573559(0x303,0x349)](Math[_0x1917dc(0x2a1,0x2c1)](_0x543187,_0x107a2e));_0x5e8abc+=_0x5e8abc<0x0?0x168:0x0;function _0x1917dc(_0x52ca3c,_0x35d44f){return _0x3d22de(_0x35d44f,_0x52ca3c-0x2c);}return _0x5e8abc;}const _0x5d6707={};_0x5d6707[_0x5c4dad(0x40e,0x385)]=null,_0x5d6707['getU']=getU,_0x5d6707['getV']=getV,_0x5d6707['getSpeed']=getSpeed,_0x5d6707[_0x3d22de(0x2c2,0x231)]=getDirection;var WindUtil=_0x5d6707;const Cesium$6=mars3d__namespace[_0x3d22de(0x18c,0x183)];class CustomPrimitive{constructor(_0x69f5f2){this[_0x40502a(0x3ed,0x423)]=_0x69f5f2['commandType'],this['geometry']=_0x69f5f2['geometry'],this[_0x422044(0x148,0x145)]=_0x69f5f2['attributeLocations'],this['primitiveType']=_0x69f5f2[_0x422044(0x13b,0x158)],this[_0x40502a(0x42f,0x4be)]=_0x69f5f2[_0x422044(0x181,0x1aa)],this['vertexShaderSource']=_0x69f5f2[_0x40502a(0x4ef,0x504)];function _0x40502a(_0x283a20,_0xc7af12){return _0x5c4dad(_0xc7af12,_0x283a20-0x162);}this['fragmentShaderSource']=_0x69f5f2['fragmentShaderSource'],this[_0x422044(0x116,0x103)]=_0x69f5f2['rawRenderState'],this['framebuffer']=_0x69f5f2[_0x422044(0x20c,0x18a)],this['outputTexture']=_0x69f5f2['outputTexture'],this['autoClear']=_0x69f5f2['autoClear']??![],this[_0x422044(0x1c8,0x144)]=_0x69f5f2['preExecute'],this[_0x40502a(0x401,0x3e3)]=!![];function _0x422044(_0x137bdf,_0x5d2116){return _0x3d22de(_0x5d2116,_0x137bdf- -0x63);}this['commandToExecute']=undefined,this['clearCommand']=undefined,this['autoClear']&&(this['clearCommand']=new Cesium$6['ClearCommand']({'color':new Cesium$6[(_0x40502a(0x43f,0x48c))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Cesium$6['Pass']['OPAQUE']}));}['createCommand'](_0x50f5ae){function _0x453e6a(_0x1ff8da,_0x5663ef){return _0x5c4dad(_0x5663ef,_0x1ff8da- -0x23c);}function _0x91ab45(_0xe58fbe,_0x59707b){return _0x5c4dad(_0x59707b,_0xe58fbe- -0x153);}switch(this['commandType']){case'Draw':{const _0x50d3c0=Cesium$6['VertexArray'][_0x453e6a(0xc4,0xe6)]({'context':_0x50f5ae,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage'][_0x91ab45(0x1a1,0x239)]}),_0x4dc02e={};_0x4dc02e[_0x453e6a(0xed,0xe6)]=_0x50f5ae,_0x4dc02e[_0x91ab45(0x141,0x15f)]=this['attributeLocations'],_0x4dc02e['vertexShaderSource']=this[_0x91ab45(0x23a,0x297)],_0x4dc02e['fragmentShaderSource']=this['fragmentShaderSource'];const _0x542950=Cesium$6[_0x91ab45(0x1e0,0x1e9)]['fromCache'](_0x4dc02e),_0x3852ae=Cesium$6['RenderState']['fromCache'](this['rawRenderState']);return new Cesium$6[(_0x91ab45(0x200,0x1ac))]({'owner':this,'vertexArray':_0x50d3c0,'primitiveType':this['primitiveType'],'uniformMap':this['uniformMap'],'modelMatrix':Cesium$6['Matrix4']['IDENTITY'],'shaderProgram':_0x542950,'framebuffer':this['framebuffer'],'renderState':_0x3852ae,'pass':Cesium$6['Pass']['OPAQUE']});}case'Compute':{const _0x50aaef={};return _0x50aaef['owner']=this,_0x50aaef[_0x91ab45(0x12c,0xa8)]=this['fragmentShaderSource'],_0x50aaef['uniformMap']=this['uniformMap'],_0x50aaef[_0x453e6a(0x64,0xa4)]=this[_0x91ab45(0x14d,0xe5)],_0x50aaef['persists']=!![],new Cesium$6['ComputeCommand'](_0x50aaef);}}}['setGeometry'](_0x4ef38c,_0x1e24d7){this['geometry']=_0x1e24d7;const _0x59c6fe=Cesium$6['VertexArray']['fromGeometry']({'context':_0x4ef38c,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6[_0x5154f4(-0x18c,-0x148)]['STATIC_DRAW']});function _0x5154f4(_0x349afa,_0x3cadc5){return _0x3d22de(_0x349afa,_0x3cadc5- -0x342);}function _0x29b27c(_0x3dce90,_0x2ae4da){return _0x3d22de(_0x3dce90,_0x2ae4da- -0xad);}this['commandToExecute'][_0x5154f4(-0xf6,-0x115)]=_0x59c6fe;}[_0x3d22de(0x1ed,0x18f)](_0x12f3cc){if(!this['show'])return;if(_0x12f3cc['mode']!==Cesium$6['SceneMode']['SCENE3D'])return;!Cesium$6['defined'](this[_0x1927d3(0x1a0,0x165)])&&(this[_0xfd32ec(0x1d3,0x23a)]=this['createCommand'](_0x12f3cc['context']));function _0xfd32ec(_0x18837b,_0x14784b){return _0x5c4dad(_0x18837b,_0x14784b- -0x85);}Cesium$6[_0xfd32ec(0x281,0x2aa)](this[_0x1927d3(0x1f5,0x1a4)])&&this[_0x1927d3(0x1f5,0x207)]();Cesium$6[_0x1927d3(0x210,0x275)](this[_0x1927d3(0x161,0xf3)])&&_0x12f3cc[_0x1927d3(0x218,0x26d)][_0xfd32ec(0x1ed,0x240)](this['clearCommand']);function _0x1927d3(_0x3a70da,_0x1fa12a){return _0x5c4dad(_0x1fa12a,_0x3a70da- -0x11f);}_0x12f3cc['commandList']['push'](this['commandToExecute']);}[_0x5c4dad(0x20b,0x290)](){return![];}['destroy'](){if(this['clearCommand']){var _0x2d9787,_0x18f77d;(_0x2d9787=this['clearCommand'])!==null&&_0x2d9787!==void 0x0&&_0x2d9787[_0xd801a3(0x360,0x3c3)]&&this['clearCommand']['vertexArray']['destroy'](),(_0x18f77d=this['clearCommand'])!==null&&_0x18f77d!==void 0x0&&_0x18f77d['shaderProgram']&&this['clearCommand'][_0xd801a3(0x3ce,0x3a4)]['destroy'](),delete this['clearCommand'];}function _0x34d219(_0x17bd4a,_0x20ed4c){return _0x5c4dad(_0x17bd4a,_0x20ed4c- -0x1f7);}this['commandToExecute']&&(this['commandToExecute'][_0xd801a3(0x360,0x37b)]&&this['commandToExecute']['vertexArray']['destroy'](),this[_0x34d219(0x4c,0xc8)][_0xd801a3(0x3ce,0x451)]&&this['commandToExecute']['shaderProgram'][_0x34d219(0xf9,0x118)](),delete this['commandToExecute']);function _0xd801a3(_0xe55cb0,_0x34dffc){return _0x3d22de(_0x34dffc,_0xe55cb0-0x133);}return Cesium$6[_0x34d219(0x108,0x97)](this);}}const Cesium$5=mars3d__namespace['Cesium'],Util=(function(){function _0x1621b2(_0x457bcd,_0x51e1fe){return _0x3d22de(_0x51e1fe,_0x457bcd-0x264);}const _0x2ed5a9=function(){const _0x1c1828=new Cesium$5['Geometry']({'attributes':new Cesium$5[(_0x350081(0x116,0x10f))]({'position':new Cesium$5['GeometryAttribute']({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5[(_0x18f513(-0xb8,-0xdf))]({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});function _0x18f513(_0x4f125b,_0x5e7163){return _0x113c(_0x5e7163- -0x20f,_0x4f125b);}function _0x350081(_0x1cbee4,_0x5ea92a){return _0x113c(_0x1cbee4- -0xa8,_0x5ea92a);}return _0x1c1828;},_0x1a4ddf=function(_0x42c428,_0x2e92e5){if(Cesium$5['defined'](_0x2e92e5)){const _0x3697f2={};_0x3697f2['arrayBufferView']=_0x2e92e5,_0x42c428['source']=_0x3697f2;}const _0x222940=new Cesium$5[(_0xf45e66(0x24,0x5c))](_0x42c428);function _0xf45e66(_0x4eb87e,_0xff3df7){return _0x113c(_0x4eb87e- -0xfa,_0xff3df7);}return _0x222940;},_0x26980c=function(_0x3ed1ea,_0x5b8eb9,_0x251ca9){function _0x1c471d(_0x44c6e8,_0x3fb063){return _0x113c(_0x44c6e8- -0xde,_0x3fb063);}const _0x5ad76b={};_0x5ad76b['context']=_0x3ed1ea,_0x5ad76b[_0x1c471d(0xc6,0x8a)]=[_0x5b8eb9],_0x5ad76b['depthTexture']=_0x251ca9;const _0xf3f955=new Cesium$5[(_0x4f0e8f(0x107,0x83))](_0x5ad76b);function _0x4f0e8f(_0xe7c612,_0x6c6c46){return _0x113c(_0xe7c612- -0x16,_0x6c6c46);}return _0xf3f955;},_0x28ee9b=function(_0x507db3){const _0x521a43=!![],_0x2db196=![],_0x3e34f4={};_0x3e34f4['viewport']=_0x507db3['viewport'],_0x3e34f4['depthTest']=_0x507db3['depthTest'];function _0x1a7686(_0x592eea,_0x4f5f20){return _0x113c(_0x4f5f20- -0x61,_0x592eea);}_0x3e34f4['depthMask']=_0x507db3['depthMask'],_0x3e34f4['blending']=_0x507db3[_0x1a7686(0x1a5,0x180)];function _0x49c404(_0x1da9d8,_0x3916fc){return _0x113c(_0x1da9d8- -0x125,_0x3916fc);}const _0x3c8975=_0x3e34f4,_0x1c5712=Cesium$5['Appearance'][_0x49c404(-0x48,0xa)](_0x521a43,_0x2db196,_0x3c8975);return _0x1c5712;},_0x39514d=function(_0x3633c9){const _0x2d9e35={},_0x2b2c3e=Cesium$5['Math'][_0x11cb99(0x422,0x38c)](_0x3633c9[_0x11cb99(0x3f9,0x393)],Cesium$5[_0x440e24(-0x145,-0xcb)]['TWO_PI']),_0x18d597=Cesium$5['Math']['mod'](_0x3633c9['east'],Cesium$5['Math']['TWO_PI']),_0x441759=_0x3633c9[_0x11cb99(0x379,0x34a)];let _0x2e7517,_0xae2302;_0x441759>Cesium$5['Math'][_0x440e24(-0x102,-0x90)]?(_0x2e7517=0x0,_0xae2302=Cesium$5['Math']['TWO_PI']):_0x18d597-_0x2b2c3e<_0x441759?(_0x2e7517=_0x2b2c3e,_0xae2302=_0x2b2c3e+_0x441759):(_0x2e7517=_0x2b2c3e,_0xae2302=_0x18d597);_0x2d9e35['lon']={'min':Cesium$5['Math'][_0x11cb99(0x435,0x3b4)](_0x2e7517),'max':Cesium$5[_0x440e24(-0x145,-0x159)]['toDegrees'](_0xae2302)};const _0x21b5f6=_0x3633c9[_0x11cb99(0x370,0x3ad)],_0x40c0cd=_0x3633c9[_0x11cb99(0x309,0x399)],_0xd27584=_0x3633c9['height'],_0x2400e0=_0xd27584>Cesium$5['Math']['PI']/0xc?_0xd27584/0x2:0x0;let _0x312adf=Cesium$5[_0x11cb99(0x3f0,0x3ac)][_0x11cb99(0x414,0x3a3)](_0x21b5f6-_0x2400e0),_0x593f0a=Cesium$5['Math'][_0x440e24(-0x121,-0x17a)](_0x40c0cd+_0x2400e0);function _0x11cb99(_0x2a6f7c,_0x1e25e6){return _0x113c(_0x2a6f7c-0x243,_0x1e25e6);}_0x312adf<-Cesium$5['Math']['PI_OVER_THREE']&&(_0x312adf=-Cesium$5['Math']['PI_OVER_TWO']);_0x593f0a>Cesium$5['Math']['PI_OVER_THREE']&&(_0x593f0a=Cesium$5['Math'][_0x440e24(-0x1ff,-0x1f4)]);function _0x440e24(_0x4ea3fc,_0x2b1d3d){return _0x113c(_0x4ea3fc- -0x2f2,_0x2b1d3d);}return _0x2d9e35[_0x11cb99(0x3ad,0x435)]={'min':Cesium$5['Math']['toDegrees'](_0x312adf),'max':Cesium$5['Math']['toDegrees'](_0x593f0a)},_0x2d9e35;},_0x382fef={};_0x382fef[_0x1621b2(0x478,0x42d)]=_0x2ed5a9;function _0x190b14(_0x447c59,_0x83199f){return _0x3d22de(_0x447c59,_0x83199f-0x1c1);}return _0x382fef[_0x1621b2(0x4c2,0x456)]=_0x1a4ddf,_0x382fef['createFramebuffer']=_0x26980c,_0x382fef['createRawRenderState']=_0x28ee9b,_0x382fef[_0x1621b2(0x502,0x568)]=_0x39514d,_0x382fef;}());var fullscreenVert=_0x5c4dad(0x329,0x2ce),screenDrawFrag=_0x5c4dad(0x286,0x263),segmentDrawFrag='#version\x20300\x20es\x0a\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20bool\x20colour;\x0a\x0ain\x20float\x20heightNormalization;\x0ain\x20float\x20speedNormalization;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speedNormalization\x20>\x20zero)\x20{\x0a\x20\x20\x20\x20if(colour)\x20{\x0a\x20\x20\x20\x20\x20\x20fragColor\x20=\x20texture(colorTable,\x20vec2(heightNormalization,\x20zero));\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20fragColor\x20=\x20texture(colorTable,\x20vec2(speedNormalization,\x20zero));\x0a\x20\x20\x20\x20}\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',segmentDrawVert=_0x3d22de(0x2e1,0x272),trailDrawFrag='#version\x20300\x20es\x0a\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20sampler2D\x20segmentsColorTexture;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0auniform\x20sampler2D\x20currentTrailsColor;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0auniform\x20float\x20fadeOpacity;\x0a\x0aout\x20vec4\x20fragColor;\x0avoid\x20main()\x20{\x0a\x20\x20vec4\x20pointsColor\x20=\x20texture(segmentsColorTexture,\x20textureCoordinate);\x0a\x20\x20vec4\x20trailsColor\x20=\x20texture(currentTrailsColor,\x20textureCoordinate);\x0a\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0f\x20*\x20trailsColor)\x20/\x20255.0f;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0a\x0a\x20\x20float\x20pointsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20if(pointsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20fragColor\x20+\x20pointsColor;\x0a\x20\x20}\x0a\x20\x20if(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20fragColor\x20+\x20trailsColor;\x0a\x20\x20}\x0a\x20\x20gl_FragDepth\x20=\x20min(pointsDepth,\x20trailsDepth);\x0a}\x0a';const Cesium$4=mars3d__namespace['Cesium'];class ParticlesRendering{constructor(_0x142d47,_0x121b8b,_0x24d931,_0x3d95f6,_0x2fd723){this[_0x53acd8(-0x1bc,-0x1cd)]=_0x24d931[_0x6e6535(0x13c,0x11e)]==='height',this[_0x53acd8(-0x25e,-0x24a)](_0x142d47,_0x121b8b,_0x24d931['colors']);function _0x53acd8(_0x1c3578,_0x6de073){return _0x3d22de(_0x1c3578,_0x6de073- -0x46d);}this['createRenderingFramebuffers'](_0x142d47);function _0x6e6535(_0x2515b9,_0x40ea77){return _0x3d22de(_0x40ea77,_0x2515b9- -0x6e);}this['createRenderingPrimitives'](_0x142d47,_0x121b8b,_0x24d931,_0x3d95f6,_0x2fd723);}['createRenderingTextures'](_0x2f48eb,_0x45b838,_0x59aa69){const _0x27df51={};_0x27df51[_0x462939(0x26f,0x2f6)]=_0x2f48eb,_0x27df51[_0x462939(0x21b,0x1d3)]=_0x2f48eb['drawingBufferWidth'],_0x27df51['height']=_0x2f48eb['drawingBufferHeight'],_0x27df51['pixelFormat']=Cesium$4[_0x462939(0x1d2,0x16d)][_0x1f9c6b(-0xf9,-0x8b)],_0x27df51[_0x1f9c6b(-0xdd,-0xc3)]=Cesium$4[_0x1f9c6b(-0xfe,-0x91)][_0x462939(0x276,0x2bb)];const _0x1af3a0=_0x27df51;function _0x1f9c6b(_0x289653,_0x9fa623){return _0x3d22de(_0x9fa623,_0x289653- -0x35e);}const _0x4f5f7e={};_0x4f5f7e['context']=_0x2f48eb;function _0x462939(_0x427660,_0x260676){return _0x5c4dad(_0x260676,_0x427660- -0xba);}_0x4f5f7e['width']=_0x2f48eb[_0x462939(0x23f,0x2c6)],_0x4f5f7e['height']=_0x2f48eb['drawingBufferHeight'],_0x4f5f7e['pixelFormat']=Cesium$4['PixelFormat'][_0x1f9c6b(-0x15b,-0x1c5)],_0x4f5f7e[_0x1f9c6b(-0xdd,-0x163)]=Cesium$4['PixelDatatype'][_0x462939(0x1af,0x1aa)];const _0x36864e=_0x4f5f7e,_0x11dec3=_0x59aa69['length'],_0x1caa96=new Float32Array(_0x11dec3*0x3);for(let _0x5b8ac5=0x0;_0x5b8ac5<_0x11dec3;_0x5b8ac5++){const _0x1d7d73=Cesium$4['Color'][_0x462939(0x1ec,0x169)](_0x59aa69[_0x5b8ac5]);_0x1caa96[0x3*_0x5b8ac5]=_0x1d7d73['red'],_0x1caa96[0x3*_0x5b8ac5+0x1]=_0x1d7d73['green'],_0x1caa96[0x3*_0x5b8ac5+0x2]=_0x1d7d73['blue'];}const _0x4f8429={'context':_0x2f48eb,'width':_0x11dec3,'height':0x1,'pixelFormat':Cesium$4['PixelFormat'][_0x462939(0x2b2,0x2b6)],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4['Sampler']({'minificationFilter':Cesium$4[_0x462939(0x2a0,0x2a7)][_0x1f9c6b(-0xf1,-0x69)],'magnificationFilter':Cesium$4['TextureMagnificationFilter'][_0x1f9c6b(-0xf1,-0x182)]})};this[_0x462939(0x2bc,0x29a)]={'segmentsColor':Util[_0x1f9c6b(-0x100,-0xe5)](_0x1af3a0),'segmentsDepth':Util['createTexture'](_0x36864e),'currentTrailsColor':Util['createTexture'](_0x1af3a0),'currentTrailsDepth':Util[_0x462939(0x28d,0x2b6)](_0x36864e),'nextTrailsColor':Util[_0x462939(0x28d,0x2cf)](_0x1af3a0),'nextTrailsDepth':Util['createTexture'](_0x36864e),'colorTable':Util['createTexture'](_0x4f8429,_0x1caa96)};}['createRenderingFramebuffers'](_0x5d01bf){function _0x16b893(_0x526ef1,_0x6bd08c){return _0x5c4dad(_0x526ef1,_0x6bd08c-0x86);}function _0x490f50(_0x48f83a,_0x159b6b){return _0x5c4dad(_0x159b6b,_0x48f83a- -0x376);}this[_0x16b893(0x356,0x3aa)]={'segments':Util['createFramebuffer'](_0x5d01bf,this[_0x490f50(0x0,0x57)]['segmentsColor'],this['textures'][_0x16b893(0x324,0x396)]),'currentTrails':Util['createFramebuffer'](_0x5d01bf,this['textures'][_0x490f50(-0x109,-0x72)],this['textures'][_0x490f50(-0xf5,-0x13a)]),'nextTrails':Util[_0x16b893(0x2e4,0x33b)](_0x5d01bf,this['textures'][_0x490f50(-0x71,-0x51)],this[_0x16b893(0x42d,0x3fc)][_0x490f50(-0xd9,-0x48)])};}[_0x3d22de(0x221,0x292)](_0x51d943){const _0x19de3a=0x4;let _0x5f1931=[];for(let _0x5bca35=0x0;_0x5bca35<_0x51d943[_0xc8764e(0x1a0,0x17b)];_0x5bca35++){for(let _0x118a51=0x0;_0x118a51<_0x51d943['particlesTextureSize'];_0x118a51++){for(let _0x27bdc0=0x0;_0x27bdc0<_0x19de3a;_0x27bdc0++){_0x5f1931[_0x4f8cec(-0xed,-0x121)](_0x5bca35/_0x51d943[_0xc8764e(0x1a0,0x1d6)]),_0x5f1931['push'](_0x118a51/_0x51d943['particlesTextureSize']);}}}_0x5f1931=new Float32Array(_0x5f1931);let _0xe7ffda=[];for(let _0x47a623=0x0;_0x47a623<_0x51d943[_0x4f8cec(-0xb7,-0xf9)];_0x47a623++){_0xe7ffda['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0xe7ffda=new Float32Array(_0xe7ffda);let _0xa557a4=[];for(let _0x4bfad9=0x0,_0x17fe6a=0x0;_0x4bfad9<_0x51d943[_0x4f8cec(-0xf0,-0xf9)];_0x4bfad9++){_0xa557a4['push'](_0x17fe6a+0x0,_0x17fe6a+0x1,_0x17fe6a+0x2,_0x17fe6a+0x2,_0x17fe6a+0x1,_0x17fe6a+0x3),_0x17fe6a+=_0x19de3a;}_0xa557a4=new Uint32Array(_0xa557a4);function _0x4f8cec(_0x49d356,_0x1db4c6){return _0x3d22de(_0x49d356,_0x1db4c6- -0x2fd);}function _0xc8764e(_0x1aaa2d,_0x424302){return _0x5c4dad(_0x424302,_0x1aaa2d- -0x1e6);}const _0x1e2a65=new Cesium$4[(_0x4f8cec(-0xbf,-0xe3))]({'attributes':new Cesium$4[(_0xc8764e(0x177,0x20a))]({'st':new Cesium$4[(_0x4f8cec(-0x141,-0x117))]({'componentDatatype':Cesium$4['ComponentDatatype'][_0xc8764e(0x12c,0x1c3)],'componentsPerAttribute':0x2,'values':_0x5f1931}),'normal':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4[_0xc8764e(0x133,0x140)][_0xc8764e(0x12c,0xc2)],'componentsPerAttribute':0x3,'values':_0xe7ffda})}),'indices':_0xa557a4});return _0x1e2a65;}[_0x5c4dad(0x25a,0x2c7)](_0x5eecf1,_0x449c7f,_0x956c51,_0x3b6111,_0x4abef5){function _0x35c9fc(_0x2bfa86,_0x1850f2){return _0x3d22de(_0x2bfa86,_0x1850f2-0x59);}const _0x355ce6=this,_0x51393d={};_0x51393d['st']=0x0,_0x51393d[_0x35c9fc(0x170,0x206)]=0x1;const _0x2e2592={};_0x2e2592['sources']=[segmentDrawVert];const _0x5d50ec={};_0x5d50ec[_0x27a4e(-0x50,-0x23)]=[segmentDrawFrag];function _0x27a4e(_0x192fc0,_0x45c743){return _0x5c4dad(_0x192fc0,_0x45c743- -0x293);}const _0x160663={};_0x160663['enabled']=!![];const _0x423f71={};_0x423f71['viewport']=undefined,_0x423f71['depthTest']=_0x160663,_0x423f71['depthMask']=!![];const _0x2259da={};_0x2259da[_0x27a4e(0xf4,0xd0)]=0x0,_0x2259da['st']=0x1;const _0x3920e4={};_0x3920e4[_0x27a4e(0x8e,0x17)]=[_0x27a4e(0xf6,0x5f)],_0x3920e4['sources']=[fullscreenVert];const _0x4f7ff3={};_0x4f7ff3['defines']=[_0x27a4e(0x2e,0x33)],_0x4f7ff3[_0x35c9fc(0x20f,0x1e0)]=[trailDrawFrag];const _0x4905a5={};_0x4905a5[_0x27a4e(0x11f,0xd0)]=0x0,_0x4905a5['st']=0x1;const _0x4fc779={};_0x4fc779['defines']=['DISABLE_GL_POSITION_LOG_DEPTH'],_0x4fc779['sources']=[fullscreenVert];const _0x5c20a1={};_0x5c20a1[_0x35c9fc(0x22f,0x21a)]=['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],_0x5c20a1['sources']=[screenDrawFrag];const _0x48bbb4={};_0x48bbb4['enabled']=![];const _0xb0b9ce={};_0xb0b9ce['enabled']=!![],this['primitives']={'segments':new CustomPrimitive({'commandType':_0x35c9fc(0x248,0x221),'attributeLocations':_0x51393d,'geometry':this['createSegmentsGeometry'](_0x956c51),'primitiveType':Cesium$4['PrimitiveType'][_0x27a4e(-0x4c,0x30)],'uniformMap':{'previousParticlesPosition':function(){function _0xd263c5(_0x4681cc,_0x465189){return _0x35c9fc(_0x465189,_0x4681cc- -0x2cb);}return _0x4abef5[_0xd263c5(-0xec,-0x16b)]['previousParticlesPosition'];},'currentParticlesPosition':function(){function _0x47c98c(_0x16be4d,_0x4635d5){return _0x35c9fc(_0x16be4d,_0x4635d5-0x29e);}function _0x5a27f5(_0x56dd6a,_0x258cae){return _0x27a4e(_0x56dd6a,_0x258cae- -0x41);}return _0x4abef5[_0x5a27f5(0x23,-0x65)][_0x47c98c(0x48f,0x4df)];},'postProcessingPosition':function(){return _0x4abef5['particlesTextures']['postProcessingPosition'];},'particlesSpeed':function(){function _0x4eaca5(_0x313198,_0x19f8d9){return _0x27a4e(_0x313198,_0x19f8d9-0x391);}return _0x4abef5['particlesTextures'][_0x4eaca5(0x46f,0x42b)];},'colorTable':function(){function _0x117f25(_0x5d128b,_0x459476){return _0x27a4e(_0x459476,_0x5d128b- -0x61);}function _0x37e194(_0x599627,_0x270737){return _0x27a4e(_0x599627,_0x270737- -0x1c2);}return _0x355ce6[_0x37e194(-0x166,-0xdf)][_0x117f25(0xb,-0x1b)];},'aspect':function(){function _0x4ec143(_0x5734f3,_0x3040a5){return _0x27a4e(_0x5734f3,_0x3040a5-0x372);}return _0x5eecf1[_0x4ec143(0x411,0x3d8)]/_0x5eecf1['drawingBufferHeight'];},'H':function(){function _0x1e2664(_0x55f74f,_0x8a91ef){return _0x27a4e(_0x55f74f,_0x8a91ef-0x95);}return _0x449c7f['H'][_0x1e2664(0x1b0,0x120)];},'hRange':function(){function _0x24a523(_0x4eb8e7,_0x5d635a){return _0x35c9fc(_0x4eb8e7,_0x5d635a-0x6e);}return new Cesium$4['Cartesian2'](_0x449c7f['H'][_0x24a523(0x2a6,0x2c4)],_0x449c7f['H']['max']);},'uSpeedRange':function(){function _0x4be213(_0x185ae7,_0x1771fc){return _0x35c9fc(_0x1771fc,_0x185ae7- -0x2a9);}return new Cesium$4[(_0x4be213(0x55,0xd0))](_0x449c7f['U']['min'],_0x449c7f['U']['max']);},'vSpeedRange':function(){return new Cesium$4['Cartesian2'](_0x449c7f['V']['min'],_0x449c7f['V']['max']);},'wSpeedRange':function(){function _0x52eaa6(_0x44f822,_0x4e1e34){return _0x27a4e(_0x4e1e34,_0x44f822- -0xdd);}function _0x45341a(_0x3e394d,_0x4f3c14){return _0x27a4e(_0x4f3c14,_0x3e394d-0x192);}return new Cesium$4[(_0x52eaa6(0x1e,0xa7))](_0x449c7f['W']['min'],_0x449c7f['W'][_0x52eaa6(0x8,-0x53)]);},'pixelSize':function(){function _0x411215(_0x11e89e,_0x247dc1){return _0x35c9fc(_0x247dc1,_0x11e89e- -0x16d);}return _0x3b6111[_0x411215(0x138,0x1ba)];},'lineWidth':function(){return _0x956c51['lineWidth'];},'particleHeight':function(){return _0x956c51['particleHeight'];},'colour':function(){return _0x355ce6['colour'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x2e2592),'fragmentShaderSource':new Cesium$4[(_0x35c9fc(0x1a6,0x234))](_0x5d50ec),'rawRenderState':Util['createRawRenderState'](_0x423f71),'framebuffer':this[_0x27a4e(0x56,0x91)][_0x27a4e(0x7b,0x8a)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x2259da,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4[_0x35c9fc(0x283,0x232)][_0x27a4e(0x87,0x30)],'uniformMap':{'segmentsColorTexture':function(){function _0x13e718(_0x194a90,_0x4e6d03){return _0x35c9fc(_0x194a90,_0x4e6d03- -0x1f4);}return _0x355ce6['textures'][_0x13e718(0xd1,0x89)];},'segmentsDepthTexture':function(){function _0xe05eaa(_0x158e0b,_0x42d44f){return _0x27a4e(_0x42d44f,_0x158e0b- -0x21a);}return _0x355ce6[_0xe05eaa(-0x137,-0x1ae)]['segmentsDepth'];},'currentTrailsColor':function(){function _0x5c586f(_0x12de59,_0x2928c0){return _0x27a4e(_0x2928c0,_0x12de59- -0x18a);}function _0x280a58(_0x954beb,_0x14c303){return _0x27a4e(_0x14c303,_0x954beb-0x474);}return _0x355ce6[_0x5c586f(-0xf9,-0xc8)]['currentTrails'][_0x5c586f(-0x112,-0x190)](0x0);},'trailsDepthTexture':function(){function _0x58dc80(_0x19182f,_0x29aec8){return _0x35c9fc(_0x29aec8,_0x19182f-0x72);}function _0x38a37e(_0x21d7b1,_0xcbb7d8){return _0x27a4e(_0xcbb7d8,_0x21d7b1- -0x118);}return _0x355ce6[_0x58dc80(0x306,0x305)][_0x58dc80(0x283,0x230)][_0x38a37e(-0x125,-0x9a)];},'fadeOpacity':function(){return _0x956c51['fadeOpacity'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x3920e4),'fragmentShaderSource':new Cesium$4[(_0x35c9fc(0x1aa,0x234))](_0x4f7ff3),'rawRenderState':Util[_0x27a4e(0x3f,0xf)]({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction'][_0x35c9fc(0x268,0x242)]},'depthMask':!![]}),'framebuffer':this['framebuffers']['nextTrails'],'autoClear':!![],'preExecute':function(){if(_0x956c51[_0x82a95(-0xee,-0x148)]){const _0x262bb1=_0x355ce6['framebuffers'][_0x306566(0x394,0x389)];_0x355ce6['framebuffers'][_0x306566(0x394,0x3a1)]=_0x355ce6['framebuffers'][_0x82a95(-0x163,-0x101)],_0x355ce6[_0x306566(0x417,0x3ae)][_0x306566(0x378,0x40b)]=_0x262bb1;}_0x355ce6['primitives'][_0x82a95(-0x6b,-0x68)]['commandToExecute'][_0x306566(0x44b,0x47e)]=_0x355ce6[_0x306566(0x417,0x438)]['nextTrails'];function _0x306566(_0x498d48,_0x12c98c){return _0x35c9fc(_0x12c98c,_0x498d48-0x183);}function _0x82a95(_0x55573e,_0x4ba261){return _0x35c9fc(_0x4ba261,_0x55573e- -0x358);}_0x355ce6['primitives'][_0x306566(0x470,0x43a)][_0x82a95(-0x168,-0x180)][_0x82a95(-0x90,-0xde)]=_0x355ce6['framebuffers'][_0x82a95(-0x163,-0xe3)];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x4905a5,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4[_0x35c9fc(0x28e,0x232)]['TRIANGLES'],'uniformMap':{'trailsColorTexture':function(){function _0x32f880(_0x3ede50,_0x3563d4){return _0x27a4e(_0x3ede50,_0x3563d4- -0x81);}return _0x355ce6[_0x32f880(-0x2d,0x10)]['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0x471188(_0x4f14f3,_0x287168){return _0x35c9fc(_0x4f14f3,_0x287168-0x16a);}function _0x7e46a(_0x346540,_0x4419c5){return _0x27a4e(_0x4419c5,_0x346540- -0x27c);}return _0x355ce6[_0x471188(0x488,0x3fe)][_0x471188(0x399,0x35f)]['depthTexture'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x4fc779),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0x5c20a1),'rawRenderState':Util[_0x27a4e(0x5b,0xf)]({'viewport':undefined,'depthTest':_0x48bbb4,'depthMask':!![],'blending':_0xb0b9ce}),'framebuffer':undefined})};}}var CalculateSpeedShader=_0x3d22de(0x1a3,0x18b),PostProcessingPositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20norm)\x0a\x0auniform\x20sampler2D\x20H;\x20//\x20particles\x20height\x20textures\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0auniform\x20vec2\x20viewerLonRange;\x0auniform\x20vec2\x20viewerLatRange;\x0a\x0aconst\x20float\x20randomCoefficient\x20=\x200.1f;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0aconst\x20float\x20dropRate\x20=\x200.1f;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0aconst\x20float\x20dropRateBump\x20=\x200.1f;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLatLev.x\x20=\x20clamp(lonLatLev.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20minimum.y,\x20maximum.y);\x0a\x20\x20lonLatLev.z\x20=\x20clamp(lonLatLev.z,\x20minimum.z,\x20maximum.z);\x0a\x0a\x20\x20vec3\x20index3D\x20=\x20vec3(0.0f);\x0a\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20index3D.z\x20=\x20ceil((lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0avec4\x20getTextureValue(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20vec4\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D);\x0a\x20\x20return\x20result;\x0a}\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0abool\x20particleNoSpeed(vec3\x20particle)\x20{\x0a\x20\x20vec4\x20speed\x20=\x20getTextureValue(particlesSpeed,\x20particle);\x0a\x20\x20return\x20speed.r\x20==\x200.0f\x20&&\x20speed.g\x20==\x200.0f;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0f);\x0a\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20float\x20height\x20=\x20getTextureValue(H,\x20vec3(randomLon,\x20randomLat,\x20lev)).r;\x0a\x0a\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20height);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20viewerLatRange.x\x20||\x20particle.y\x20>\x20viewerLatRange.y\x20||\x20particle.x\x20<\x20viewerLonRange.x\x20||\x20particle.x\x20>\x20viewerLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec3\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f);\x0a\x20\x20}\x0a}\x0a',UpdatePositionShader=_0x3d22de(0x1b1,0x213);const Cesium$3=mars3d__namespace['Cesium'];class ParticlesComputing{constructor(_0x56ac73,_0x55b0a9,_0x46d528,_0x2e2817){this[_0x33e024(-0x2c5,-0x28c)]=_0x55b0a9,this[_0x1be726(-0x14d,-0x188)](_0x56ac73,_0x55b0a9);function _0x33e024(_0x1a957f,_0x5ba4b2){return _0x5c4dad(_0x1a957f,_0x5ba4b2- -0x540);}this[_0x33e024(-0x2cf,-0x275)](_0x56ac73,_0x46d528,_0x2e2817);function _0x1be726(_0x442b01,_0x1d092a){return _0x3d22de(_0x1d092a,_0x442b01- -0x39c);}this['createComputingPrimitives'](_0x55b0a9,_0x46d528,_0x2e2817);}['createWindTextures'](_0x1eca46,_0x220f74){var _0x4ac05d;function _0x56bae9(_0xa4ac8,_0x10d8ca){return _0x3d22de(_0xa4ac8,_0x10d8ca- -0x354);}const _0x5951c8={'context':_0x1eca46,'width':_0x220f74['dimensions']['lon'],'height':_0x220f74[_0x294112(-0x16e,-0x121)]['lat']*(_0x220f74['dimensions'][_0x294112(-0x17a,-0x134)]||0x1),'pixelFormat':Cesium$3['PixelFormat']['RED'],'pixelDatatype':Cesium$3['PixelDatatype'][_0x294112(-0x120,-0x174)],'flipY':![],'sampler':new Cesium$3[(_0x294112(-0x23e,-0x1a8))]({'minificationFilter':Cesium$3['TextureMinificationFilter']['NEAREST'],'magnificationFilter':Cesium$3[_0x294112(-0x1f6,-0x1a2)]['NEAREST']})};function _0x294112(_0x37904e,_0x297e78){return _0x3d22de(_0x37904e,_0x297e78- -0x39d);}this['windTextures']={'U':Util['createTexture'](_0x5951c8,_0x220f74['U']['array']),'V':Util[_0x294112(-0x108,-0x13f)](_0x5951c8,_0x220f74['V']['array']),'W':Util['createTexture'](_0x5951c8,((_0x4ac05d=_0x220f74['W'])===null||_0x4ac05d===void 0x0?void 0x0:_0x4ac05d['array'])??_0x220f74['U'][_0x56bae9(-0x15a,-0x11f)]),'H':Util['createTexture'](_0x5951c8,_0x220f74['H']['array'])};}[_0x5c4dad(0x346,0x2cb)](_0x2b9b23,_0x2e1edf,_0x38bd00){const _0x4f24da={'context':_0x2b9b23,'width':_0x2e1edf['particlesTextureSize'],'height':_0x2e1edf[_0x6019af(0x4b,0x50)],'pixelFormat':Cesium$3['PixelFormat'][_0x5cd165(-0x149,-0xfb)],'pixelDatatype':Cesium$3[_0x6019af(0xe,-0x13)]['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3[_0x5cd165(-0x122,-0xef)][_0x5cd165(-0x142,-0x154)],'magnificationFilter':Cesium$3['TextureMagnificationFilter'][_0x5cd165(-0xe0,-0x154)]})};function _0x6019af(_0x3e037c,_0x46fcb7){return _0x5c4dad(_0x46fcb7,_0x3e037c- -0x33b);}const _0x56fa0a=this[_0x5cd165(-0xca,-0x15e)](_0x2e1edf[_0x5cd165(-0xfc,-0x15c)],_0x38bd00);function _0x5cd165(_0x24be55,_0x2a9d2d){return _0x5c4dad(_0x24be55,_0x2a9d2d- -0x449);}const _0x2dd9b0=new Float32Array(0x4*_0x2e1edf['maxParticles'])['fill'](0x0);this['particlesTextures']={'previousParticlesPosition':Util[_0x6019af(0xc,-0x73)](_0x4f24da,_0x56fa0a),'currentParticlesPosition':Util['createTexture'](_0x4f24da,_0x56fa0a),'nextParticlesPosition':Util['createTexture'](_0x4f24da,_0x56fa0a),'postProcessingPosition':Util['createTexture'](_0x4f24da,_0x56fa0a),'particlesSpeed':Util['createTexture'](_0x4f24da,_0x2dd9b0)};}[_0x3d22de(0x227,0x202)](_0x17f3c2,_0x4ec401){function _0x4f2316(_0x1a7de3,_0x18e45a){return _0x5c4dad(_0x18e45a,_0x1a7de3- -0x135);}const _0x2d107e=new Float32Array(0x4*_0x17f3c2);function _0x27cd69(_0x5b132e,_0x56bc76){return _0x3d22de(_0x5b132e,_0x56bc76- -0x498);}for(let _0xf024a=0x0;_0xf024a<_0x17f3c2;_0xf024a++){_0x2d107e[0x4*_0xf024a]=Cesium$3['Math']['randomBetween'](_0x4ec401['lonRange']['x'],_0x4ec401['lonRange']['y']),_0x2d107e[0x4*_0xf024a+0x1]=Cesium$3['Math']['randomBetween'](_0x4ec401['latRange']['x'],_0x4ec401['latRange']['y']),_0x2d107e[0x4*_0xf024a+0x2]=Cesium$3['Math']['randomBetween'](this['data']['lev']['min'],this[_0x4f2316(0x17f,0x10b)][_0x4f2316(0x21d,0x1c6)][_0x27cd69(-0x201,-0x209)]),_0x2d107e[0x4*_0xf024a+0x3]=0x0;}return _0x2d107e;}[_0x5c4dad(0x23b,0x2c9)](_0x56d2ac){const _0x30108e=[_0x56d2ac[_0x341612(0x1a5,0x197)]['lon'],_0x56d2ac['dimensions']['lat'],_0x56d2ac['dimensions']['lev']],_0x2b6622=[_0x56d2ac['lon']['min'],_0x56d2ac['lat']['min'],_0x56d2ac['lev']['min']],_0x48b065=[_0x56d2ac[_0x341612(0x1cc,0x19d)]['max'],_0x56d2ac[_0x341612(0x155,0x13b)]['max'],_0x56d2ac[_0x341612(0x1f8,0x184)][_0x341612(0x19e,0x1aa)]],_0x3cdfcf=[(_0x48b065[0x0]-_0x2b6622[0x0])/(_0x30108e[0x0]-0x1),(_0x48b065[0x1]-_0x2b6622[0x1])/(_0x30108e[0x1]-0x1),_0x30108e[0x2]>0x1?(_0x48b065[0x2]-_0x2b6622[0x2])/(_0x30108e[0x2]-0x1):0x1],_0x51fdee=Math['floor'](Math['random']()*_0x56d2ac['U'][_0x2e5628(0x8e,0x18)][_0x341612(0x1c2,0x17a)]),_0x16c4b7=_0x51fdee%(_0x30108e[0x0]*_0x30108e[0x1]),_0x678f02=Math['floor'](_0x16c4b7/_0x30108e[0x0]);function _0x2e5628(_0x4b0684,_0xd4c327){return _0x5c4dad(_0xd4c327,_0x4b0684- -0x290);}const _0x20eb7e=_0x16c4b7%_0x30108e[0x0],_0x1b98db=Cesium$3['Math']['randomBetween'](_0x2b6622[0x0]+_0x20eb7e*_0x3cdfcf[0x0],_0x2b6622[0x0]+(_0x20eb7e+0x1)*_0x3cdfcf[0x0]);function _0x341612(_0x557a94,_0x3ab694){return _0x3d22de(_0x557a94,_0x3ab694- -0xe5);}const _0x5d905f=Cesium$3['Math'][_0x341612(0xef,0x11c)](_0x2b6622[0x1]+(_0x678f02-0x1)*_0x3cdfcf[0x1],_0x2b6622[0x1]+_0x678f02*_0x3cdfcf[0x1]),_0x5aaf5f=_0x56d2ac['H']['array'][_0x51fdee]||0x0;return[_0x1b98db,_0x5d905f,_0x5aaf5f];}['destroyParticlesTextures'](){function _0x512693(_0x474c7e,_0x1d7ee0){return _0x5c4dad(_0x1d7ee0,_0x474c7e- -0x4e4);}Object['keys'](this['particlesTextures'])[_0x512693(-0x24f,-0x1f4)](_0x1de19c=>{this['particlesTextures'][_0x1de19c]['destroy']();});}[_0x5c4dad(0x2cc,0x32b)](_0x278c3e,_0x5032cc,_0x3db26f){const _0x16193d=new Cesium$3['Cartesian3'](_0x278c3e['dimensions']['lon'],_0x278c3e[_0x58c63d(0x4cb,0x535)]['lat'],_0x278c3e[_0x58c63d(0x4cb,0x4f9)][_0x58c63d(0x4b8,0x542)]),_0x280920=new Cesium$3[(_0x58c63d(0x430,0x405))](_0x278c3e['lon']['min'],_0x278c3e[_0x58c63d(0x46f,0x427)][_0x1d70aa(-0x260,-0x230)],_0x278c3e['lev']['min']),_0x337e11=new Cesium$3['Cartesian3'](_0x278c3e[_0x58c63d(0x4d1,0x469)][_0x1d70aa(-0x1ce,-0x22b)],_0x278c3e['lat']['max'],_0x278c3e[_0x1d70aa(-0x1f4,-0x20b)]['max']),_0x274a9f=new Cesium$3[(_0x58c63d(0x430,0x3af))]((_0x337e11['x']-_0x280920['x'])/(_0x16193d['x']-0x1),(_0x337e11['y']-_0x280920['y'])/(_0x16193d['y']-0x1),_0x16193d['z']>0x1?(_0x337e11['z']-_0x280920['z'])/(_0x16193d['z']-0x1):0x1),_0x32833c=new Cesium$3[(_0x58c63d(0x4f4,0x499))](_0x278c3e['lon'][_0x1d70aa(-0x260,-0x1fc)],_0x278c3e['lon']['max']);function _0x58c63d(_0x522a56,_0x2f04a5){return _0x3d22de(_0x2f04a5,_0x522a56-0x24f);}const _0x498510=new Cesium$3[(_0x1d70aa(-0x1b8,-0x1a1))](_0x278c3e['lat']['min'],_0x278c3e[_0x58c63d(0x46f,0x4c0)]['max']),_0x940a1=new Cesium$3['Cartesian2'](_0x278c3e['U']['min'],_0x278c3e['U']['max']),_0x2b7eb3=new Cesium$3[(_0x1d70aa(-0x1b8,-0x14d))](_0x278c3e['V']['min'],_0x278c3e['V'][_0x58c63d(0x4de,0x456)]),_0x3cbf83=new Cesium$3['Cartesian2'](_0x278c3e['W']['min'],_0x278c3e['W']['max']),_0x9aea8f=this,_0x329cde={};_0x329cde['U']=function(){function _0x202104(_0x4840fc,_0xa2bffe){return _0x58c63d(_0x4840fc- -0x4cc,_0xa2bffe);}return _0x9aea8f[_0x202104(-0x6b,-0xd8)]['U'];};function _0x1d70aa(_0x45569e,_0x112642){return _0x3d22de(_0x112642,_0x45569e- -0x45d);}_0x329cde['V']=function(){function _0x1fc551(_0x3726ea,_0x193dd1){return _0x58c63d(_0x193dd1- -0x4a4,_0x3726ea);}return _0x9aea8f[_0x1fc551(0x1f,-0x43)]['V'];},_0x329cde['W']=function(){return _0x9aea8f['windTextures']['W'];},_0x329cde[_0x58c63d(0x437,0x455)]=function(){function _0x45e127(_0xcce37a,_0x2d5a5f){return _0x58c63d(_0x2d5a5f- -0x134,_0xcce37a);}return _0x9aea8f['particlesTextures'][_0x45e127(0x2a8,0x303)];},_0x329cde['dimension']=function(){return _0x16193d;},_0x329cde[_0x58c63d(0x419,0x4a4)]=function(){return _0x280920;},_0x329cde[_0x58c63d(0x457,0x410)]=function(){return _0x337e11;},_0x329cde['interval']=function(){return _0x274a9f;},_0x329cde[_0x58c63d(0x40a,0x4a1)]=function(){return _0x940a1;},_0x329cde['vSpeedRange']=function(){return _0x2b7eb3;},_0x329cde['wSpeedRange']=function(){return _0x3cbf83;},_0x329cde[_0x1d70aa(-0x2a1,-0x245)]=function(){return _0x3db26f['pixelSize']*_0x5032cc['speedFactor'];};const _0x49d87d={};_0x49d87d[_0x1d70aa(-0x2d6,-0x2ac)]=[CalculateSpeedShader];const _0x47761d={};_0x47761d[_0x1d70aa(-0x2d6,-0x29f)]=[UpdatePositionShader];const _0x11d205={};_0x11d205[_0x58c63d(0x3d6,0x429)]=[PostProcessingPositionShader],this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':_0x329cde,'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x49d87d),'outputTexture':this[_0x58c63d(0x3d5,0x3ce)][_0x1d70aa(-0x219,-0x218)],'preExecute':function(){if(_0x5032cc!==undefined&&_0x5032cc[_0x4f3547(0x305,0x2e2)]){const _0x2cc14b=_0x9aea8f[_0x1f0c64(0x28b,0x1f9)]['previousParticlesPosition'];_0x9aea8f['particlesTextures'][_0x4f3547(0x32c,0x3a9)]=_0x9aea8f[_0x1f0c64(0x232,0x1f9)]['currentParticlesPosition'],_0x9aea8f[_0x4f3547(0x27a,0x246)]['currentParticlesPosition']=_0x9aea8f['particlesTextures'][_0x1f0c64(0x227,0x1f8)],_0x9aea8f[_0x1f0c64(0x26c,0x1f9)][_0x4f3547(0x279,0x2fb)]=_0x2cc14b;}function _0x1f0c64(_0x32f01a,_0x35623e){return _0x58c63d(_0x35623e- -0x1dc,_0x32f01a);}function _0x4f3547(_0x31ddfc,_0x54e26b){return _0x58c63d(_0x31ddfc- -0x15b,_0x54e26b);}_0x9aea8f['primitives'][_0x4f3547(0x272,0x30a)][_0x1f0c64(0x1e0,0x249)][_0x4f3547(0x2ab,0x2a2)]=_0x9aea8f['particlesTextures'][_0x4f3547(0x338,0x342)];}}),'updatePosition':new CustomPrimitive({'commandType':_0x58c63d(0x3d0,0x3a8),'uniformMap':{'currentParticlesPosition':function(){return _0x9aea8f['particlesTextures']['currentParticlesPosition'];},'particlesSpeed':function(){function _0x51c64d(_0x122cc1,_0x2316f5){return _0x58c63d(_0x2316f5- -0x36a,_0x122cc1);}return _0x9aea8f['particlesTextures'][_0x51c64d(0x111,0x129)];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x47761d),'outputTexture':this[_0x58c63d(0x3d5,0x469)]['nextParticlesPosition'],'preExecute':function(){function _0x4a5f2f(_0x53ea25,_0x270a63){return _0x58c63d(_0x270a63- -0x2a9,_0x53ea25);}function _0x9d4d6a(_0x336191,_0x3cfc78){return _0x1d70aa(_0x3cfc78-0xf0,_0x336191);}_0x9aea8f['primitives'][_0x9d4d6a(-0x1dc,-0x19c)]['commandToExecute'][_0x9d4d6a(-0x168,-0x1b6)]=_0x9aea8f['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x1d70aa(-0x2dc,-0x2d6),'uniformMap':{'nextParticlesPosition':function(){return _0x9aea8f['particlesTextures']['nextParticlesPosition'];},'particlesSpeed':function(){return _0x9aea8f['particlesTextures']['particlesSpeed'];},'viewerLonRange':function(){return _0x3db26f['lonRange'];},'viewerLatRange':function(){return _0x3db26f['latRange'];},'lonRange':function(){return _0x32833c;},'latRange':function(){return _0x498510;},'dimension':function(){return _0x16193d;},'minimum':function(){return _0x280920;},'maximum':function(){return _0x337e11;},'interval':function(){return _0x274a9f;},'H':function(){return _0x9aea8f['windTextures']['H'];},'randomCoefficient':function(){function _0x1996bd(_0x14778b,_0xff8e00){return _0x1d70aa(_0x14778b-0x3cf,_0xff8e00);}const _0x2ce643=Math[_0x1996bd(0x1ac,0x153)]();return _0x2ce643;},'dropRate':function(){function _0x860b9e(_0x41dc24,_0x4884ed){return _0x1d70aa(_0x41dc24-0x766,_0x4884ed);}return _0x5032cc[_0x860b9e(0x588,0x523)];},'dropRateBump':function(){function _0x57b5f3(_0x34fbe8,_0x3e9292){return _0x1d70aa(_0x3e9292-0x788,_0x34fbe8);}return _0x5032cc[_0x57b5f3(0x4d5,0x529)];}},'fragmentShaderSource':new Cesium$3[(_0x58c63d(0x42a,0x392))](_0x11d205),'outputTexture':this['particlesTextures'][_0x58c63d(0x3d4,0x383)],'preExecute':function(){function _0x2dde48(_0x5c5396,_0x57b2d8){return _0x58c63d(_0x57b2d8- -0x484,_0x5c5396);}_0x9aea8f['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=_0x9aea8f['particlesTextures'][_0x2dde48(-0x2a,-0xb0)];}})};}}const Cesium$2=mars3d__namespace['Cesium'];class ParticleSystem{constructor(_0x5be17f,_0x5537c8,_0x596357,_0x16cdad){this[_0xad6202(-0xc9,-0xaf)]=_0x5be17f,_0x5537c8={..._0x5537c8};_0x5537c8['udata']&&_0x5537c8[_0x54829e(-0x212,-0x190)]&&(_0x5537c8['dimensions']={},_0x5537c8[_0xad6202(-0x51,-0x73)]['lon']=_0x5537c8['cols'],_0x5537c8['dimensions'][_0xad6202(-0x13c,-0xcf)]=_0x5537c8['rows'],_0x5537c8['dimensions']['lev']=_0x5537c8['lev']||0x1,_0x5537c8[_0x54829e(-0x124,-0x1b9)]={},_0x5537c8[_0x54829e(-0x124,-0xb8)]['min']=_0x5537c8['xmin'],_0x5537c8[_0x54829e(-0x124,-0xe2)][_0xad6202(-0xe7,-0x60)]=_0x5537c8['xmax'],_0x5537c8[_0xad6202(-0x143,-0xcf)]={},_0x5537c8['lat']['min']=_0x5537c8[_0x54829e(-0x18b,-0x131)],_0x5537c8[_0xad6202(-0x15a,-0xcf)]['max']=_0x5537c8[_0x54829e(-0x198,-0x13a)],_0x5537c8[_0xad6202(-0x8f,-0x86)]={},_0x5537c8[_0x54829e(-0x13d,-0x124)]['min']=_0x5537c8['levmin']??0x1,_0x5537c8['lev'][_0x54829e(-0x117,-0xf4)]=_0x5537c8[_0x54829e(-0x169,-0x1b1)]??0x1,_0x5537c8['U']={},_0x5537c8['U'][_0x54829e(-0x171,-0x104)]=new Float32Array(_0x5537c8[_0x54829e(-0x10e,-0x166)]),_0x5537c8['U'][_0x54829e(-0x1a9,-0x1a9)]=_0x5537c8[_0x54829e(-0x1fe,-0x1b7)]??Math[_0x54829e(-0x1a9,-0x209)](..._0x5537c8[_0xad6202(-0x8b,-0x57)]),_0x5537c8['U'][_0xad6202(0x3,-0x60)]=_0x5537c8[_0x54829e(-0x1ec,-0x24e)]??Math['max'](..._0x5537c8['udata']),_0x5537c8['V']={},_0x5537c8['V']['array']=new Float32Array(_0x5537c8[_0x54829e(-0x212,-0x1a1)]),_0x5537c8['V']['min']=_0x5537c8[_0x54829e(-0x18d,-0x201)]??Math['min'](..._0x5537c8['vdata']),_0x5537c8['V']['max']=_0x5537c8[_0xad6202(-0x15d,-0x100)]??Math[_0x54829e(-0x117,-0xd8)](..._0x5537c8[_0xad6202(-0x180,-0x15b)]));!_0x5537c8['W']&&(_0x5537c8['W']={'array':new Float32Array(_0x5537c8['U'][_0x54829e(-0x171,-0x1d6)]['length']),'min':0x0,'max':0x0});if(!_0x5537c8['H']){var _0x37dbbf;_0x5537c8['H']={'array':new Float32Array(_0x5537c8['U'][_0xad6202(-0xb1,-0xba)][_0xad6202(-0x9e,-0x90)]),'min':0x0,'max':0x0};if((_0x37dbbf=_0x5537c8[_0xad6202(-0x7,-0x86)])!==null&&_0x37dbbf!==void 0x0&&_0x37dbbf['array']){const {lon:_0x5a1807,lat:_0x196da6,lev:_0x5b0607}=_0x5537c8['dimensions'];for(let _0x27a222=0x0;_0x27a222<_0x5b0607;_0x27a222++){for(let _0x5565ab=0x0;_0x5565ab<_0x196da6;_0x5565ab++){for(let _0x7a2ecd=0x0;_0x7a2ecd<_0x5a1807;_0x7a2ecd++){const _0x3ebdc2=_0x27a222*(_0x5a1807*_0x196da6)+_0x5565ab*_0x5a1807+_0x7a2ecd;_0x5537c8['H'][_0x54829e(-0x171,-0x1a9)][_0x3ebdc2]=_0x5537c8['lev']['array'][_0x27a222];}}}_0x5537c8['H'][_0xad6202(-0xd7,-0xf2)]=Math['min'](..._0x5537c8['lev']['array']),_0x5537c8['H'][_0x54829e(-0x117,-0x8b)]=Math['max'](..._0x5537c8['lev']['array']);}}function _0x54829e(_0x3beecd,_0x45219){return _0x3d22de(_0x45219,_0x3beecd- -0x3a6);}this[_0x54829e(-0x1db,-0x245)]=_0x5537c8,this[_0xad6202(-0x2b,-0x65)]=_0x596357;function _0xad6202(_0x7a97d6,_0x1f3cbc){return _0x5c4dad(_0x7a97d6,_0x1f3cbc- -0x3d8);}this['viewerParameters']=_0x16cdad,this[_0x54829e(-0x1f3,-0x20f)]=new ParticlesComputing(this[_0x54829e(-0x166,-0x10c)],this['data'],this[_0xad6202(-0x5,-0x65)],this[_0xad6202(-0xb3,-0x120)]),this[_0xad6202(-0x1cb,-0x141)]=new ParticlesRendering(this['context'],this[_0xad6202(-0x9f,-0x124)],this['options'],this[_0xad6202(-0x114,-0x120)],this[_0x54829e(-0x1f3,-0x250)]);}[_0x5c4dad(0x379,0x315)](_0x46f0f7){this['particlesComputing']['destroyParticlesTextures'](),Object['keys'](this['particlesComputing'][_0x2360be(0x436,0x4ca)])[_0x51f045(0x1a,-0x3e)](_0x53aa98=>{function _0x178ab0(_0x46a1e1,_0xc40ec9){return _0x51f045(_0x46a1e1,_0xc40ec9-0x2e6);}this[_0x178ab0(0x341,0x2af)]['windTextures'][_0x53aa98]['destroy']();});function _0x2360be(_0x3bf587,_0x1b8744){return _0x3d22de(_0x3bf587,_0x1b8744-0x2b8);}function _0x51f045(_0x57b5ce,_0x9b4b3c){return _0x3d22de(_0x57b5ce,_0x9b4b3c- -0x1ea);}this['particlesRendering'][_0x51f045(0x9c,0xa3)][_0x2360be(0x553,0x4ce)][_0x2360be(0x486,0x4de)](),Object[_0x2360be(0x5b6,0x52b)](this['particlesRendering'][_0x2360be(0x589,0x4f3)])['forEach'](_0x34f2a7=>{function _0x330e0b(_0x2dc6b9,_0x484744){return _0x2360be(_0x484744,_0x2dc6b9- -0x46f);}this['particlesRendering']['framebuffers'][_0x34f2a7][_0x330e0b(0x6f,0x43)]();}),this['context']=_0x46f0f7,this['particlesComputing']=new ParticlesComputing(this['context'],this[_0x2360be(0x4ef,0x483)],this['options'],this['viewerParameters']),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this['options'],this[_0x2360be(0x49e,0x487)],this['particlesComputing']);}['clearFramebuffers'](){function _0x5adc66(_0xaf52b4,_0x3879ec){return _0x5c4dad(_0xaf52b4,_0x3879ec- -0x2b7);}function _0xdfbc2(_0xd68586,_0x3dc08d){return _0x3d22de(_0x3dc08d,_0xd68586- -0x36a);}const _0x48f3fd=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2[_0xdfbc2(-0x17f,-0x1e4)][_0x5adc66(0x15e,0xcb)]});Object[_0xdfbc2(-0xf7,-0xb1)](this['particlesRendering'][_0x5adc66(0x91,0x6d)])['forEach'](_0x109751=>{_0x48f3fd['framebuffer']=this['particlesRendering']['framebuffers'][_0x109751],_0x48f3fd['execute'](this['context']);});}['refreshParticles'](_0x5d9b5b,_0x429e1d=!![]){_0x429e1d&&(this['clearFramebuffers'](),this[_0x12b170(-0x260,-0x1db)]['destroyParticlesTextures'](),this['particlesComputing']['createParticlesTextures'](this[_0x29a2e3(0x41a,0x462)],this['options'],this['viewerParameters']));function _0x12b170(_0x2b923b,_0x27482e){return _0x5c4dad(_0x27482e,_0x2b923b- -0x4fc);}function _0x29a2e3(_0x5c200c,_0x1c06c4){return _0x3d22de(_0x1c06c4,_0x5c200c-0x1da);}if(_0x5d9b5b){var _0x39ad24;const _0x297760=this[_0x12b170(-0x265,-0x227)]['createSegmentsGeometry'](this[_0x12b170(-0x189,-0x1e4)]);this['particlesRendering'][_0x29a2e3(0x470,0x42c)]['segments']['geometry']=_0x297760;const _0x936869=Cesium$2[_0x12b170(-0x1c3,-0x153)]['fromGeometry']({'context':this['context'],'geometry':_0x297760,'attributeLocations':this['particlesRendering']['primitives']['segments']['attributeLocations'],'bufferUsage':Cesium$2[_0x29a2e3(0x3d4,0x450)]['STATIC_DRAW']});(_0x39ad24=this['particlesRendering']['primitives'])!==null&&_0x39ad24!==void 0x0&&(_0x39ad24=_0x39ad24[_0x29a2e3(0x40e,0x38b)])!==null&&_0x39ad24!==void 0x0&&_0x39ad24[_0x12b170(-0x23d,-0x24d)]&&(this[_0x12b170(-0x265,-0x2ef)][_0x29a2e3(0x470,0x3eb)]['segments']['commandToExecute'][_0x29a2e3(0x407,0x410)]=_0x936869);}}[_0x5c4dad(0x33e,0x390)](_0x2a0466){let _0x5a1683=![];function _0xa8604b(_0x3081d5,_0x48e862){return _0x5c4dad(_0x3081d5,_0x48e862-0x21);}this['options'][_0xa8604b(0x284,0x30e)]!==_0x2a0466['maxParticles']&&(_0x5a1683=!![]),Object['keys'](_0x2a0466)['forEach'](_0x4dd81d=>{this['options'][_0x4dd81d]=_0x2a0466[_0x4dd81d];}),this['refreshParticles'](_0x5a1683,_0x2a0466['dynamic']);}[_0x5c4dad(0x30c,0x2a7)](_0x525564){function _0x3132e6(_0x1393b0,_0x4a9de2){return _0x3d22de(_0x4a9de2,_0x1393b0-0x2e0);}Object['keys'](_0x525564)[_0x978330(0x1f8,0x1fb)](_0x3dce4d=>{this['viewerParameters'][_0x3dce4d]=_0x525564[_0x3dce4d];});function _0x978330(_0x1c6a52,_0x1f6e00){return _0x3d22de(_0x1c6a52,_0x1f6e00-0x4f);}this['refreshParticles'](![]),!this['options']['dynamic']&&(this[_0x3132e6(0x56a,0x583)]['dynamic']=!![],this['setOptions'](this['options']),setTimeout(()=>{this['options'][_0xd82586(0x33d,0x3a7)]=![];function _0xd82586(_0x446210,_0x4c575c){return _0x3132e6(_0x4c575c- -0x14a,_0x446210);}this['setOptions'](this['options']);},0x1f4));}['destroy'](){function _0x46b894(_0xda6583,_0x3c3743){return _0x5c4dad(_0xda6583,_0x3c3743-0x1a);}clearTimeout(this['canrefresh']),this[_0x56b3fc(0x4d8,0x457)][_0x56b3fc(0x413,0x492)]();function _0x56b3fc(_0xc863ec,_0x3455d4){return _0x5c4dad(_0xc863ec,_0x3455d4-0x1bb);}Object[_0x56b3fc(0x584,0x517)](this['particlesComputing'][_0x46b894(0x2db,0x315)])[_0x56b3fc(0x470,0x450)](_0xc5356e=>{function _0x1d5d17(_0x4bee5a,_0x5f31c1){return _0x46b894(_0x4bee5a,_0x5f31c1- -0x39b);}this[_0x1d5d17(-0x13a,-0xe5)]['windTextures'][_0xc5356e]['destroy']();}),this[_0x56b3fc(0x44b,0x452)]['textures']['colorTable']['destroy'](),Object['keys'](this['particlesRendering']['framebuffers'])[_0x56b3fc(0x3e5,0x450)](_0x2afa8e=>{this['particlesRendering']['framebuffers'][_0x2afa8e]['destroy']();});for(const _0x212cd5 in this){delete this[_0x212cd5];}}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x3d22de(0x224,0x22e)],_0x3e8750={};_0x3e8750['particlesNumber']=0x1000,_0x3e8750[_0x5c4dad(0x2d1,0x266)]=0x0,_0x3e8750['fadeOpacity']=0.996,_0x3e8750['dropRate']=0.003,_0x3e8750[_0x3d22de(0x212,0x1fe)]=0.01,_0x3e8750[_0x3d22de(0x130,0x182)]=0.5,_0x3e8750['lineWidth']=0x2,_0x3e8750['colors']=[_0x3d22de(0x155,0x1d5)],_0x3e8750['dynamic']=!![];const DEF_OPTIONS=_0x3e8750;function _0x113c(_0x41171d,_0x22d1b1){const _0x10981a=_0x1098();return _0x113c=function(_0x113ce4,_0x4f5c18){_0x113ce4=_0x113ce4-0xc3;let _0x2ff617=_0x10981a[_0x113ce4];return _0x2ff617;},_0x113c(_0x41171d,_0x22d1b1);}class WindLayer extends BaseLayer$1{constructor(_0xf12d86={}){_0xf12d86={...DEF_OPTIONS,..._0xf12d86},super(_0xf12d86),this['_setOptionsHook'](_0xf12d86);}get['layer'](){function _0x46f967(_0xe3a4a1,_0x380873){return _0x3d22de(_0xe3a4a1,_0x380873- -0x48);}return this[_0x46f967(0x1fc,0x24e)];}get[_0x3d22de(0x19f,0x1cb)](){function _0x211c74(_0x532f8b,_0x42f72b){return _0x5c4dad(_0x532f8b,_0x42f72b-0x15);}return this[_0x211c74(0x2ef,0x2a2)];}set['data'](_0x3519c1){this['setData'](_0x3519c1);}get['colors'](){function _0x33fb12(_0x1cb7de,_0x430f03){return _0x3d22de(_0x1cb7de,_0x430f03- -0x34f);}return this[_0x33fb12(-0xb9,-0xc5)]['colors'];}set['colors'](_0x3417ae){this['options'][_0x41d5fa(-0x55,-0xba)]=_0x3417ae;function _0x16756d(_0x47f17e,_0x3e6d05){return _0x3d22de(_0x3e6d05,_0x47f17e- -0x2d6);}function _0x41d5fa(_0x56d36b,_0x20a7fb){return _0x3d22de(_0x56d36b,_0x20a7fb- -0x264);}if(this['particleSystem']){const _0x545c13={};_0x545c13['colors']=_0x3417ae,this['particleSystem'][_0x16756d(-0x2f,0x53)](_0x545c13);}this[_0x41d5fa(0x4a,-0x3c)]();}['_mountedHook'](){}['_addedHook'](){this['scene']=this['_map'][_0xa52d35(0x10b,0x181)],this['camera']=this['_map'][_0xa52d35(0x248,0x209)],this['primitives']=new Cesium$1['PrimitiveCollection'](),this['_map']['scene']['primitives'][_0xa52d35(0xdf,0x177)](this[_0xa52d35(0x25f,0x226)]),this[_0x17a91b(0x448,0x4ce)]={'lonRange':new Cesium$1['Cartesian2'](),'latRange':new Cesium$1[(_0xa52d35(0x2a4,0x235))](),'pixelSize':0x0,'lonDisplayRange':new Cesium$1[(_0xa52d35(0x265,0x235))](),'latDisplayRange':new Cesium$1[(_0x17a91b(0x51e,0x587))]()},this['globeBoundingSphere']=new Cesium$1['BoundingSphere'](Cesium$1['Cartesian3']['ZERO'],Cesium$1[_0xa52d35(0x13f,0x1ae)][_0xa52d35(0x236,0x22f)][_0xa52d35(0x104,0x118)]),this['updateViewerParameters'](),window['addEventListener']('resize',this[_0xa52d35(0x12d,0x1b8)]['bind'](this),![]),this['mouse_down']=![];function _0x17a91b(_0x25b4ab,_0x3903aa){return _0x3d22de(_0x3903aa,_0x25b4ab-0x279);}this[_0x17a91b(0x4fd,0x47d)]=![],this['_map']['on'](mars3d__namespace[_0xa52d35(0x256,0x200)]['wheel'],this['_onMapWhellEvent'],this),this[_0xa52d35(0x19f,0x1f2)]['on'](mars3d__namespace['EventType'][_0xa52d35(0x1db,0x152)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0xa52d35(0x1c0,0x221)],this[_0x17a91b(0x49e,0x512)],this),this['_map']['on'](mars3d__namespace[_0x17a91b(0x4e9,0x50a)]['mouseMove'],this[_0x17a91b(0x466,0x47d)],this);function _0xa52d35(_0xc97bd3,_0x205829){return _0x5c4dad(_0xc97bd3,_0x205829- -0x159);}this['_data']&&this['setData'](this[_0x17a91b(0x41d,0x3e1)]);}[_0x3d22de(0x21b,0x1c3)](){window['removeEventListener'](_0x15289a(-0x215,-0x223),this['resize']),this['_map']['off'](mars3d__namespace['EventType'][_0x3f9e4d(0x146,0x196)],this['_onMap_preRenderEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map'][_0x3f9e4d(0x97,0xb9)](mars3d__namespace[_0x3f9e4d(0x18c,0x1f4)]['mouseDown'],this[_0x15289a(-0x1e0,-0x1a5)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this[_0x3f9e4d(0x141,0x10b)],this);function _0x3f9e4d(_0x2e127a,_0x3fc84d){return _0x5c4dad(_0x3fc84d,_0x2e127a- -0x1cd);}this['_map'][_0x15289a(-0x2c2,-0x2eb)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x15289a(_0x415e67,_0x1c5d64){return _0x3d22de(_0x1c5d64,_0x415e67- -0x43d);}this['primitives']['removeAll'](),this[_0x15289a(-0x1db,-0x148)]['scene'][_0x3f9e4d(0x1b2,0x1f9)]['remove'](this['primitives']);}[_0x3d22de(0x253,0x228)](){if(!this['show']||!this[_0x1f8f22(0x121,0xca)])return;this['primitives']['show']=![];function _0x1f8f22(_0x9afa82,_0x221c73){return _0x5c4dad(_0x221c73,_0x9afa82- -0x206);}function _0x377e8b(_0x1d6f8e,_0x3c689a){return _0x5c4dad(_0x1d6f8e,_0x3c689a-0x123);}this[_0x1f8f22(0x179,0x1b5)]['removeAll'](),this[_0x377e8b(0x3f2,0x46e)][_0x1f8f22(0x7c,0x5c)](mars3d__namespace[_0x377e8b(0x425,0x47c)]['preRender'],this['_onMap_preRenderEvent'],this);}['_onMap_preRenderEvent'](_0x14f205){function _0x10f0c5(_0x4bce6e,_0x3e3555){return _0x3d22de(_0x3e3555,_0x4bce6e- -0x342);}function _0x291faa(_0x1d6542,_0x2fcd26){return _0x3d22de(_0x1d6542,_0x2fcd26- -0x306);}this['particleSystem'][_0x10f0c5(-0x116,-0xa9)](this['scene'][_0x291faa(-0xa0,-0xc6)]),this['addPrimitives'](),this['primitives']['show']=!![];}[_0x3d22de(0x1dc,0x20a)](_0x5a9228){clearTimeout(this[_0x5b5e03(-0x5c,0x0)]);function _0x365592(_0x10a26d,_0x280c6d){return _0x5c4dad(_0x280c6d,_0x10a26d- -0x413);}function _0x5b5e03(_0x16a072,_0x5054b4){return _0x3d22de(_0x5054b4,_0x16a072- -0x2ad);}if(!this[_0x365592(-0x174,-0x1a2)]||!this['particleSystem'])return;this['primitives']['show']=![],this['refreshTimer']=setTimeout(()=>{function _0x506f0d(_0x1f1d4f,_0x294c2f){return _0x365592(_0x294c2f-0x318,_0x1f1d4f);}if(!this['show'])return;this[_0x506f0d(0x161,0x1f4)]();},0xc8);}['_onMouseDownEvent'](_0x15198){function _0x235eb3(_0x217559,_0x551197){return _0x3d22de(_0x551197,_0x217559- -0x3ac);}this[_0x235eb3(-0x18b,-0x166)]=!![];}[_0x3d22de(0x1a7,0x1ed)](_0x102cab){if(!this[_0x1a99c2(0x303,0x2cd)]||!this['particleSystem'])return;function _0x5cf18a(_0x1df94e,_0x3df855){return _0x5c4dad(_0x1df94e,_0x3df855- -0x4e);}function _0x1a99c2(_0x196fa4,_0xefe46e){return _0x5c4dad(_0x196fa4,_0xefe46e-0x2e);}this[_0x5cf18a(0x337,0x2bc)]&&(this[_0x1a99c2(0x390,0x3ad)][_0x1a99c2(0x322,0x2cd)]=![],this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x33d8e1){function _0x19c512(_0x4b24c6,_0x2fc4f2){return _0x3d22de(_0x4b24c6,_0x2fc4f2- -0x1b1);}function _0x3f5772(_0x5d0b32,_0x438f37){return _0x5c4dad(_0x5d0b32,_0x438f37-0x1c5);}if(!this[_0x3f5772(0x43e,0x464)]||!this[_0x19c512(0x4a,0x8d)])return;this[_0x3f5772(0x4a1,0x4cf)]&&this['mouse_move']&&this['redraw'](),this['primitives']['show']=!![],this['mouse_down']=![],this['mouse_move']=![];}['redraw'](){if(!this['_map']||!this['show'])return;function _0x2535a6(_0x517fea,_0x28fe86){return _0x5c4dad(_0x517fea,_0x28fe86- -0x4bb);}this[_0x2535a6(-0x14d,-0x16b)]();function _0x3a217f(_0x249f40,_0x545068){return _0x5c4dad(_0x249f40,_0x545068- -0x443);}this[_0x2535a6(-0x197,-0x194)][_0x3a217f(-0x14c,-0x19c)](this[_0x3a217f(-0x144,-0x18b)]),this['primitives']['show']=!![];}['setData'](_0x39f073){this[_0x315b87(0x32e,0x306)]=_0x39f073;this[_0x315b87(0x3af,0x3a0)]&&this[_0x315b87(0x356,0x3a0)][_0x33ba35(0x31d,0x2fc)]();this['particleSystem']=new ParticleSystem(this[_0x33ba35(0x251,0x2c7)]['context'],_0x39f073,this[_0x315b87(0x409,0x3c6)](),this['viewerParameters']);function _0x33ba35(_0x214e51,_0x14e8bb){return _0x3d22de(_0x214e51,_0x14e8bb-0xd6);}function _0x315b87(_0x4a478b,_0x211d2d){return _0x5c4dad(_0x4a478b,_0x211d2d-0x79);}this[_0x315b87(0x3d2,0x36f)]();}['_setOptionsHook'](_0x507236,_0x277ae1){if(_0x507236)for(const _0x55bed9 in _0x507236){this[_0x55bed9]=_0x507236[_0x55bed9];}this['particleSystem']&&this['particleSystem']['setOptions'](this['getOptions']());}['getOptions'](){const _0x57cc15=Math['ceil'](Math[_0x61e3aa(0x1c9,0x19f)](this[_0x1a8961(-0x16,0x3f)]));this['particlesNumber']=_0x57cc15*_0x57cc15;const _0x55753a={};_0x55753a['particlesTextureSize']=_0x57cc15;function _0x61e3aa(_0x4a9236,_0x1b96da){return _0x3d22de(_0x4a9236,_0x1b96da- -0x66);}_0x55753a['maxParticles']=this[_0x1a8961(-0x16,-0x6d)],_0x55753a['colors']=this[_0x1a8961(-0x68,-0x6)],_0x55753a[_0x1a8961(0x64,0x1a)]=this[_0x1a8961(-0x95,-0x67)],_0x55753a['fadeOpacity']=this[_0x61e3aa(0x16e,0x1e7)];function _0x1a8961(_0x599e4f,_0x4faf8b){return _0x5c4dad(_0x4faf8b,_0x599e4f- -0x2fb);}return _0x55753a['dropRate']=this[_0x61e3aa(0x1e9,0x219)],_0x55753a[_0x61e3aa(0x1ca,0x198)]=this[_0x1a8961(-0x14,-0x90)],_0x55753a[_0x1a8961(-0x90,-0xf5)]=this[_0x1a8961(-0x90,-0xbc)],_0x55753a['lineWidth']=this[_0x61e3aa(0xd6,0x168)],_0x55753a[_0x1a8961(-0x1,0x53)]=this['dynamic'],_0x55753a;}[_0x5c4dad(0x290,0x2f6)](){function _0x21a79b(_0x4ac71c,_0x2ee6ad){return _0x5c4dad(_0x2ee6ad,_0x4ac71c- -0x357);}this['primitives']['add'](this[_0x21a79b(-0x30,-0x64)]['particlesComputing']['primitives'][_0x22ad47(0x46e,0x42e)]),this['primitives']['add'](this[_0x22ad47(0x4b4,0x4ee)]['particlesComputing'][_0x22ad47(0x4d7,0x546)]['updatePosition']),this['primitives'][_0x22ad47(0x4d2,0x497)](this[_0x21a79b(-0x30,-0x7c)]['particlesComputing']['primitives']['postProcessingPosition']),this['primitives']['add'](this['particleSystem'][_0x22ad47(0x4e3,0x45e)]['primitives']['segments']),this[_0x21a79b(0x28,0xae)]['add'](this['particleSystem'][_0x21a79b(-0xc0,-0x11c)]['primitives']['trails']);function _0x22ad47(_0x4adec0,_0x4e77be){return _0x3d22de(_0x4adec0,_0x4e77be-0x2b0);}this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives']['screen']);}[_0x3d22de(0x1e0,0x267)](){let _0x5b5015=this['camera']['computeViewRectangle'](this['scene'][_0x2157a2(0x4f8,0x51c)]['ellipsoid']);if(!_0x5b5015){const _0x1b6358=this['_map']['getExtent']();_0x5b5015=Cesium$1['Rectangle']['fromDegrees'](_0x1b6358['xmin'],_0x1b6358['ymin'],_0x1b6358['xmax'],_0x1b6358['ymax']);}function _0x55bc01(_0x30e47a,_0x25492f){return _0x5c4dad(_0x30e47a,_0x25492f- -0x375);}const _0x569d79=Util['viewRectangleToLonLatRange'](_0x5b5015);this['_data']?(this['viewerParameters'][_0x2157a2(0x4ea,0x505)]['x']=Math[_0x2157a2(0x59b,0x5b5)](_0x569d79['lon']['min'],this['_data']['xmin']),this[_0x2157a2(0x504,0x4f5)]['lonRange']['y']=Math['min'](_0x569d79['lon']['max'],this[_0x2157a2(0x472,0x4ca)]['xmax']),this[_0x2157a2(0x47f,0x4f5)][_0x2157a2(0x5b5,0x555)]['x']=Math['max'](_0x569d79['lat'][_0x55bc01(-0xde,-0x8f)],this['_data']['ymin']),this['viewerParameters'][_0x2157a2(0x573,0x555)]['y']=Math[_0x2157a2(0x531,0x523)](_0x569d79['lat']['max'],this['_data']['ymax'])):(this[_0x55bc01(-0xe0,-0xbd)]['lonRange']['x']=_0x569d79['lon']['min'],this['viewerParameters'][_0x55bc01(-0x36,-0xad)]['y']=_0x569d79[_0x2157a2(0x5a2,0x5a8)]['max'],this[_0x2157a2(0x4cf,0x4f5)]['latRange']['x']=_0x569d79['lat'][_0x2157a2(0x4a3,0x523)],this[_0x55bc01(-0x145,-0xbd)]['latRange']['y']=_0x569d79['lat'][_0x55bc01(-0x5a,0x3)]);let _0x11e2d1=this[_0x55bc01(-0x85,-0x13)][_0x55bc01(-0x13c,-0xfc)](this['globeBoundingSphere'],this[_0x2157a2(0x566,0x517)]['drawingBufferWidth'],this[_0x55bc01(-0xe7,-0x9b)]['drawingBufferHeight']);function _0x2157a2(_0x4009a3,_0x2efc87){return _0x3d22de(_0x4009a3,_0x2efc87-0x326);}const _0x54a2b6=this['scene']['drawingBufferHeight']*0.3;_0x11e2d1<_0x54a2b6&&(_0x11e2d1=_0x54a2b6),this['viewerParameters']['pixelSize']=_0x11e2d1;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer'][_0x5c4dad(0x1e7,0x27b)]=WindLayer;class CanvasParticle{constructor(){this[_0x1eae58(0x89,0x99)]=null;function _0x5e39e9(_0x19a766,_0xa1ae05){return _0x3d22de(_0x19a766,_0xa1ae05- -0x1b4);}this['lat']=null,this['tlng']=null,this['tlat']=null,this['age']=null;function _0x1eae58(_0x71ab84,_0x4bfb90){return _0x5c4dad(_0x71ab84,_0x4bfb90- -0x24f);}this[_0x1eae58(0x3b,0xd1)]=null;}[_0x3d22de(0x217,0x226)](){for(const _0x4413bd in this){delete this[_0x4413bd];}}}class CanvasWindField{constructor(_0x31ecce){function _0x4309d9(_0x4a0dd8,_0x1a72e0){return _0x3d22de(_0x1a72e0,_0x4a0dd8- -0x3af);}this[_0x4309d9(-0x108,-0x192)](_0x31ecce);}get['speedRate'](){function _0x2a5191(_0x1b2545,_0x43210a){return _0x5c4dad(_0x1b2545,_0x43210a-0x1ba);}return this[_0x2a5191(0x411,0x452)];}set[_0x3d22de(0x322,0x290)](_0x32d634){function _0x4d2544(_0x10d510,_0x64568c){return _0x5c4dad(_0x10d510,_0x64568c- -0x398);}function _0x5edb97(_0x2c7b28,_0x7acc55){return _0x5c4dad(_0x7acc55,_0x2c7b28- -0x57b);}this[_0x4d2544(-0xad,-0x100)]=(0x64-(_0x32d634>0x63?0x63:_0x32d634))*0x64,this[_0x5edb97(-0x215,-0x1fd)]=[(this[_0x5edb97(-0x217,-0x232)]-this['xmin'])/this['_speedRate'],(this['ymax']-this['ymin'])/this['_speedRate']];}get['maxAge'](){function _0xd5a0d9(_0x49b9d1,_0x2fb02c){return _0x5c4dad(_0x49b9d1,_0x2fb02c- -0x1fb);}return this[_0xd5a0d9(0x85,0xe6)];}set['maxAge'](_0x4e3d7c){this['_maxAge']=_0x4e3d7c;}['setOptions'](_0x19418b){this['options']=_0x19418b;function _0x4da4ce(_0x2a7304,_0x1e3d90){return _0x3d22de(_0x1e3d90,_0x2a7304- -0x356);}this[_0x1b7202(-0xb5,-0x104)]=_0x19418b['maxAge']||0x78,this['speedRate']=_0x19418b[_0x1b7202(-0x9c,-0xff)]||0x32;function _0x1b7202(_0x22fb66,_0x14cabc){return _0x3d22de(_0x22fb66,_0x14cabc- -0x38f);}this['particles']=[];const _0x419452=_0x19418b[_0x1b7202(-0x1dc,-0x193)]||0x1000;for(let _0x1882b3=0x0;_0x1882b3<_0x419452;_0x1882b3++){const _0x498c8e=this['_randomParticle'](new CanvasParticle());this['particles'][_0x4da4ce(-0x17a,-0xe8)](_0x498c8e);}}['setDate'](_0x4014fa){function _0xcd6d24(_0x1a3c0e,_0x1a6c59){return _0x5c4dad(_0x1a3c0e,_0x1a6c59- -0x249);}this['rows']=_0x4014fa['rows'],this['cols']=_0x4014fa['cols'],this[_0x382c96(0x1cd,0x214)]=_0x4014fa[_0x382c96(0x2a5,0x214)],this['xmax']=_0x4014fa['xmax'],this[_0x382c96(0x248,0x1c1)]=_0x4014fa['ymin'],this['ymax']=_0x4014fa['ymax'],this['grid']=[];const _0x40ffdd=_0x4014fa['udata'];function _0x382c96(_0x24fb7f,_0x3b105a){return _0x5c4dad(_0x24fb7f,_0x3b105a- -0x143);}const _0x1986f6=_0x4014fa[_0x382c96(0xc9,0x13a)];let _0x2fc935=![];_0x40ffdd[_0x382c96(0x172,0x205)]===this['rows']&&_0x40ffdd[0x0][_0x382c96(0x20d,0x205)]===this['cols']&&(_0x2fc935=!![]);let _0x5a4752=0x0,_0x238e1c=null,_0x14826c=null;for(let _0x1fa7fc=0x0;_0x1fa7fc<this['rows'];_0x1fa7fc++){_0x238e1c=[];for(let _0x5e26a4=0x0;_0x5e26a4<this[_0x382c96(0x1ec,0x1fc)];_0x5e26a4++,_0x5a4752++){_0x2fc935?_0x14826c=this['_calcUV'](_0x40ffdd[_0x1fa7fc][_0x5e26a4],_0x1986f6[_0x1fa7fc][_0x5e26a4]):_0x14826c=this['_calcUV'](_0x40ffdd[_0x5a4752],_0x1986f6[_0x5a4752]),_0x238e1c['push'](_0x14826c);}this['grid']['push'](_0x238e1c);}this['options'][_0x382c96(0xb9,0x13b)]&&this['grid'][_0xcd6d24(0x116,0x126)]();}['clear'](){delete this['rows'];function _0x5f4a96(_0xd0e6fd,_0x2a2e6d){return _0x3d22de(_0x2a2e6d,_0xd0e6fd- -0x160);}delete this[_0x5f4a96(0xf6,0x6d)],delete this['xmin'],delete this[_0x5f4a96(0x11b,0x15d)],delete this[_0x27a268(0x35c,0x388)],delete this[_0x5f4a96(0xae,0x9e)],delete this[_0x5f4a96(0x65,0xcd)];function _0x27a268(_0x292943,_0x2be8d8){return _0x3d22de(_0x292943,_0x2be8d8-0x16d);}delete this[_0x27a268(0x458,0x3c2)];}[_0x3d22de(0x1ed,0x1cd)](_0x98987,_0x26f530){const _0x50ffbb=(_0x98987-this['xmin'])/(this['xmax']-this[_0x58fd2a(-0xf1,-0x150)])*(this['cols']-0x1);function _0x2b7796(_0x23e1e9,_0x2d314f){return _0x3d22de(_0x2d314f,_0x23e1e9-0x19);}function _0x58fd2a(_0x5c2828,_0x579539){return _0x5c4dad(_0x5c2828,_0x579539- -0x4a7);}const _0x505246=(this['ymax']-_0x26f530)/(this[_0x2b7796(0x227,0x231)]-this[_0x2b7796(0x234,0x1ec)])*(this['rows']-0x1);return[_0x50ffbb,_0x505246];}[_0x3d22de(0x21d,0x285)](_0x3a3d31,_0x5c3530){if(_0x3a3d31<0x0||_0x3a3d31>=this['cols']||_0x5c3530>=this[_0x440012(-0x2d4,-0x25d)])return[0x0,0x0,0x0];function _0x440012(_0x599fe3,_0x3a8304){return _0x3d22de(_0x599fe3,_0x3a8304- -0x426);}const _0x1dc301=Math['floor'](_0x3a3d31),_0x4d2a64=Math['floor'](_0x5c3530);if(_0x1dc301===_0x3a3d31&&_0x4d2a64===_0x5c3530)return this['grid'][_0x5c3530][_0x3a3d31];const _0x2975a0=_0x1dc301+0x1,_0x9efd6a=_0x4d2a64+0x1,_0x3609f2=this[_0x440012(-0x182,-0x1a1)](_0x1dc301,_0x4d2a64),_0x3b7755=this['getUVByXY'](_0x2975a0,_0x4d2a64),_0x532876=this['getUVByXY'](_0x1dc301,_0x9efd6a),_0x49a38c=this[_0x32ff17(-0x7b,-0xd2)](_0x2975a0,_0x9efd6a);let _0x67a36b=null;function _0x32ff17(_0x5eb3fa,_0x45c99c){return _0x3d22de(_0x5eb3fa,_0x45c99c- -0x357);}try{_0x67a36b=this[_0x32ff17(-0x154,-0x1b6)](_0x3a3d31-_0x1dc301,_0x5c3530-_0x4d2a64,_0x3609f2,_0x3b7755,_0x532876,_0x49a38c);}catch(_0x51f450){console[_0x440012(-0x2ed,-0x256)](_0x3a3d31,_0x5c3530);}return _0x67a36b;}['_bilinearInterpolation'](_0x55849b,_0x2513d8,_0x2047a4,_0x2ec2ba,_0xbd435d,_0x2171e3){const _0xd0b1d4=0x1-_0x55849b,_0x5aa69a=0x1-_0x2513d8,_0x4c5039=_0xd0b1d4*_0x5aa69a,_0x56197c=_0x55849b*_0x5aa69a,_0x113727=_0xd0b1d4*_0x2513d8,_0x62f431=_0x55849b*_0x2513d8,_0x474dfa=_0x2047a4[0x0]*_0x4c5039+_0x2ec2ba[0x0]*_0x56197c+_0xbd435d[0x0]*_0x113727+_0x2171e3[0x0]*_0x62f431;function _0x1b3a35(_0x5a17a8,_0x20555d){return _0x5c4dad(_0x5a17a8,_0x20555d- -0x1a4);}const _0x107810=_0x2047a4[0x1]*_0x4c5039+_0x2ec2ba[0x1]*_0x56197c+_0xbd435d[0x1]*_0x113727+_0x2171e3[0x1]*_0x62f431;return this[_0x1b3a35(0x167,0x1e8)](_0x474dfa,_0x107810);}['_calcUV'](_0x1e4ccc,_0x1f9780){function _0x4a4551(_0x2e7d9d,_0xd3f317){return _0x3d22de(_0x2e7d9d,_0xd3f317- -0x10b);}return[+_0x1e4ccc,+_0x1f9780,Math[_0x4a4551(0xa5,0xfa)](_0x1e4ccc*_0x1e4ccc+_0x1f9780*_0x1f9780)];}['getUVByPoint'](_0x251502,_0x123846){if(!this[_0x7f73d(0x47a,0x43c)](_0x251502,_0x123846))return null;function _0x7f73d(_0x1f1d10,_0xeeb414){return _0x5c4dad(_0xeeb414,_0x1f1d10-0x1df);}const _0x3c2fcf=this['toGridXY'](_0x251502,_0x123846),_0x46810a=this['getUVByXY'](_0x3c2fcf[0x0],_0x3c2fcf[0x1]);return _0x46810a;}['isInExtent'](_0x40769b,_0x327232){function _0x51eea1(_0x27529a,_0x185d56){return _0x5c4dad(_0x27529a,_0x185d56- -0x529);}function _0x58c0d0(_0x1313e6,_0x29f3eb){return _0x3d22de(_0x29f3eb,_0x1313e6- -0x2d1);}return _0x40769b>=this[_0x51eea1(-0x159,-0x1d2)]&&_0x40769b<=this[_0x58c0d0(-0x56,-0x2d)]&&_0x327232>=this['ymin']&&_0x327232<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0x2ededc(_0x2f108f,_0x1f96b2){return _0x5c4dad(_0x1f96b2,_0x2f108f-0x74);}const _0x363608=fRandomByfloat(this[_0x2ededc(0x3cb,0x3f8)],this[_0xae98a3(-0xc2,-0xce)]),_0x1b1962=fRandomByfloat(this['ymin'],this[_0x2ededc(0x36b,0x2e5)]);function _0xae98a3(_0x1bed10,_0x54ff4b){return _0x5c4dad(_0x54ff4b,_0x1bed10- -0x426);}const _0x258516={};return _0x258516['lat']=_0x1b1962,_0x258516[_0x2ededc(0x35c,0x2f0)]=_0x363608,_0x258516;}['getParticles'](){let _0xf6f335,_0x262a88,_0x5ee762;function _0x26ae56(_0x332abe,_0x53530b){return _0x5c4dad(_0x332abe,_0x53530b- -0x1ae);}for(let _0x39af9e=0x0,_0xd4745e=this['particles'][_0x114c91(-0x2,-0x53)];_0x39af9e<_0xd4745e;_0x39af9e++){let _0x58df74=this['particles'][_0x39af9e];_0x58df74['age']<=0x0&&(_0x58df74=this['_randomParticle'](_0x58df74));if(_0x58df74['age']>0x0){const _0x5bdb85=_0x58df74['tlng'],_0x40ae48=_0x58df74[_0x26ae56(0x1e1,0x193)];_0x5ee762=this['getUVByPoint'](_0x5bdb85,_0x40ae48),_0x5ee762?(_0xf6f335=_0x5bdb85+this['_calc_speedRate'][0x0]*_0x5ee762[0x0],_0x262a88=_0x40ae48+this['_calc_speedRate'][0x1]*_0x5ee762[0x1],_0x58df74[_0x114c91(-0x14b,-0xb3)]=_0x5bdb85,_0x58df74['lat']=_0x40ae48,_0x58df74['tlng']=_0xf6f335,_0x58df74[_0x26ae56(0x1d8,0x193)]=_0x262a88,_0x58df74['speed']=_0x5ee762[0x2],_0x58df74[_0x26ae56(0x19c,0x183)]--):_0x58df74[_0x26ae56(0xfa,0x183)]=0x0;}}function _0x114c91(_0x3bc122,_0x1a5c00){return _0x3d22de(_0x3bc122,_0x1a5c00- -0x2b2);}return this[_0x114c91(-0x3f,-0x5d)];}['_randomParticle'](_0x27ce2c){let _0x2eddb4,_0x24e8b5;for(let _0x1a66c2=0x0;_0x1a66c2<0x1e;_0x1a66c2++){_0x2eddb4=this[_0x58925c(-0x1c5,-0x13f)](),_0x24e8b5=this['getUVByPoint'](_0x2eddb4['lng'],_0x2eddb4['lat']);if(_0x24e8b5&&_0x24e8b5[0x2]>0x0)break;}if(!_0x24e8b5)return _0x27ce2c;const _0x5eb8a3=_0x2eddb4[_0x3ae0eb(-0x6a,-0x2d)]+this['_calc_speedRate'][0x0]*_0x24e8b5[0x0],_0x2f9228=_0x2eddb4['lat']+this['_calc_speedRate'][0x1]*_0x24e8b5[0x1];_0x27ce2c['lng']=_0x2eddb4['lng'];function _0x58925c(_0x1c82a4,_0x138478){return _0x5c4dad(_0x1c82a4,_0x138478- -0x3a7);}_0x27ce2c['lat']=_0x2eddb4['lat'],_0x27ce2c[_0x3ae0eb(-0xb9,-0x135)]=_0x5eb8a3;function _0x3ae0eb(_0xccc730,_0x1dfecc){return _0x3d22de(_0x1dfecc,_0xccc730- -0x269);}return _0x27ce2c['tlat']=_0x2f9228,_0x27ce2c[_0x58925c(-0xc8,-0x76)]=Math['round'](Math[_0x58925c(-0xf7,-0x84)]()*this['maxAge']),_0x27ce2c['speed']=_0x24e8b5[0x2],_0x27ce2c;}[_0x5c4dad(0x282,0x30f)](){for(const _0x35906d in this){delete this[_0x35906d];}}}function fRandomByfloat(_0x376652,_0x4ce066){return _0x376652+Math['random']()*(_0x4ce066-_0x376652);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x5c4dad(0x22d,0x275)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x4e544b={}){super(_0x4e544b),this['_setOptionsHook'](_0x4e544b),this[_0x73249d(0xb7,0xaa)]=null;function _0x73249d(_0x3eb96b,_0x53971f){return _0x3d22de(_0x53971f,_0x3eb96b- -0x161);}function _0x38b71e(_0x57eb4d,_0x30534a){return _0x3d22de(_0x30534a,_0x57eb4d- -0x466);}_0x4e544b['colors']&&_0x4e544b['steps']&&(this[_0x38b71e(-0x20f,-0x18c)]=new mars3d__namespace['ColorRamp'](_0x4e544b));}['_setOptionsHook'](_0x26ff95,_0x461e3d){this['frameTime']=0x3e8/(_0x26ff95['frameRate']||0xa),this['_pointerEvents']=this[_0x1c6cc3(-0x68,0x1a)]['pointerEvents']??![],this['color']=_0x26ff95[_0x1c6cc3(-0xbe,-0x31)]||_0x20bdd1(-0x181,-0xf5),this[_0x20bdd1(-0x171,-0x1b3)]=_0x26ff95['lineWidth']||0x1;function _0x20bdd1(_0x21c260,_0x49ed04){return _0x5c4dad(_0x21c260,_0x49ed04- -0x46a);}this['fixedHeight']=_0x26ff95[_0x20bdd1(-0x1da,-0x204)]??0x0,this[_0x20bdd1(-0x1c1,-0x1ec)]=_0x26ff95['reverseY']??![];function _0x1c6cc3(_0x4a2a6b,_0x213de5){return _0x3d22de(_0x4a2a6b,_0x213de5- -0x270);}this['windField']&&this[_0x1c6cc3(-0x139,-0xd6)][_0x1c6cc3(0xcc,0x37)](_0x26ff95);}get['layer'](){return this['canvas'];}get['canvasWidth'](){function _0x4c4c94(_0x2be675,_0x32bddf){return _0x5c4dad(_0x32bddf,_0x2be675- -0x294);}function _0x12b06e(_0x209d44,_0x3f72e1){return _0x5c4dad(_0x3f72e1,_0x209d44- -0x3f5);}return this[_0x12b06e(-0xaa,-0x6f)]['scene'][_0x4c4c94(0x6d,0x64)]['clientWidth'];}get[_0x5c4dad(0x309,0x288)](){function _0x40429b(_0x2a48d7,_0x4b2f63){return _0x3d22de(_0x2a48d7,_0x4b2f63- -0x3dc);}return this['_map'][_0x40429b(-0x1f7,-0x1eb)]['canvas']['clientHeight'];}get[_0x3d22de(0x1f8,0x27e)](){function _0x3753f2(_0x9d9e54,_0x31b0cb){return _0x5c4dad(_0x9d9e54,_0x31b0cb- -0x332);}return this[_0x3753f2(-0x93,-0xa9)];}set[_0x3d22de(0x258,0x27e)](_0x5bd197){this[_0xbbdac1(0x1c0,0x1e4)]=_0x5bd197;function _0x531005(_0x59b571,_0x485f69){return _0x3d22de(_0x59b571,_0x485f69- -0x200);}function _0xbbdac1(_0x4ca43e,_0x50b77d){return _0x3d22de(_0x50b77d,_0x4ca43e-0x20);}if(!this[_0x531005(-0x3b,0x18)])return;_0x5bd197?this['canvas']['style'][_0xbbdac1(0x298,0x20b)]=_0x531005(0x100,0x93):this['canvas']['style'][_0xbbdac1(0x298,0x21e)]=_0xbbdac1(0x1f8,0x1aa);}get['particlesNumber'](){function _0x509cc0(_0x5a994f,_0x7471da){return _0x3d22de(_0x7471da,_0x5a994f- -0x9c);}return this[_0x509cc0(0x1ee,0x218)]['particlesNumber'];}set['particlesNumber'](_0x2ce024){this['options']['particlesNumber']=_0x2ce024,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{function _0x328856(_0x1ccfec,_0x24954e){return _0x113c(_0x24954e- -0x54,_0x1ccfec);}this[_0x328856(0x6c,0xfc)]();},0x1f4);}get[_0x3d22de(0x264,0x290)](){function _0x2ab725(_0x115e4e,_0x10b061){return _0x3d22de(_0x10b061,_0x115e4e-0x230);}function _0x365fc4(_0x2045b4,_0xfce1ba){return _0x5c4dad(_0xfce1ba,_0x2045b4- -0x2dc);}return this[_0x2ab725(0x4ba,0x54e)][_0x365fc4(0x9d,0x1b)];}set['speedRate'](_0x12358f){function _0xfedd50(_0x5527c5,_0x215bc2){return _0x3d22de(_0x5527c5,_0x215bc2- -0x177);}function _0x2b7ec5(_0x30d354,_0x2bb5c8){return _0x3d22de(_0x2bb5c8,_0x30d354- -0x466);}this[_0xfedd50(0xb6,0x113)][_0xfedd50(0x14f,0x119)]=_0x12358f,this['windField']&&(this['windField']['speedRate']=_0x12358f);}get[_0x3d22de(0x23d,0x28b)](){function _0x5ece85(_0x2ffbf0,_0x1e236c){return _0x3d22de(_0x2ffbf0,_0x1e236c- -0x2bd);}return this['options'][_0x5ece85(-0x46,-0x32)];}set[_0x3d22de(0x31a,0x28b)](_0x1b5696){function _0xae4562(_0xd4dedd,_0x229166){return _0x5c4dad(_0xd4dedd,_0x229166-0x242);}this[_0xae4562(0x57d,0x5b5)]['maxAge']=_0x1b5696;function _0x1c9617(_0x567416,_0x5e0b9c){return _0x5c4dad(_0x5e0b9c,_0x567416- -0xb9);}this['windField']&&(this[_0xae4562(0x48f,0x4c5)]['maxAge']=_0x1b5696);}get[_0x5c4dad(0x221,0x2b4)](){return this['windData'];}set['data'](_0x3a86fc){this['setData'](_0x3a86fc);}get[_0x5c4dad(0x363,0x38b)](){let _0x25b794=this['windData']['xmin'],_0x3540b4=this['windData']['xmax'],_0x486aba=this['windData']['ymin'],_0x409e31=this[_0xe8d55e(-0x227,-0x25c)]['ymax'];_0x3540b4>=0x167&&_0x25b794===0x0&&(_0x25b794=-0xb4,_0x3540b4=0xb4);_0x25b794=Math[_0x333df4(0x2e2,0x2c6)](_0x25b794,-0xb4),_0x3540b4=Math[_0x333df4(0x1d8,0x234)](_0x3540b4,0xb4),_0x486aba=Math['max'](_0x486aba,-0x5a);function _0x333df4(_0x326144,_0x39d304){return _0x5c4dad(_0x326144,_0x39d304- -0xb2);}_0x409e31=Math[_0xe8d55e(-0x1ea,-0x1f0)](_0x409e31,0x5a);function _0xe8d55e(_0x207538,_0x306e6f){return _0x3d22de(_0x306e6f,_0x207538- -0x3e7);}return Cesium['Rectangle'][_0xe8d55e(-0x167,-0xdf)](_0x25b794,_0x486aba,_0x3540b4,_0x409e31);}['_showHook'](_0x29fb44){function _0x2083db(_0xcd6d29,_0x3be446){return _0x3d22de(_0x3be446,_0xcd6d29-0x2ac);}_0x29fb44?this['_addedHook']():(this['windData']&&(this['options'][_0x2083db(0x477,0x43f)]=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x32654f(_0x24ae51,_0x1dff3e){return _0x3d22de(_0x24ae51,_0x1dff3e-0x303);}this[_0x32654f(0x605,0x58d)]['worker']?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){this[_0x4eaa64(0x177,0x10a)]=this['_createCanvas']();function _0x4eaa64(_0x5f052f,_0x42f8d2){return _0x5c4dad(_0x5f052f,_0x42f8d2- -0x1f7);}const _0x13924c={};function _0x3b2481(_0x43dd2f,_0x28bb99){return _0x3d22de(_0x28bb99,_0x43dd2f- -0x325);}_0x13924c['willReadFrequently']=!![],this['canvasContext']=this['canvas']['getContext']('2d',_0x13924c),this['bindEvent'](),this[_0x3b2481(-0x9b,-0xab)]['data']&&this[_0x4eaa64(0x6a,0x101)](this['options']['data']);}[_0x5c4dad(0x31a,0x2ac)](){function _0x1ae27d(_0x54636e,_0x2bef67){return _0x5c4dad(_0x2bef67,_0x54636e- -0x370);}this['clear']();function _0x4da3fe(_0x2c776b,_0x352df3){return _0x5c4dad(_0x352df3,_0x2c776b-0x71);}this['unbindEvent'](),this['canvas']&&(this[_0x4da3fe(0x3bc,0x43e)]['container']['removeChild'](this[_0x1ae27d(-0x6f,-0xd5)]),delete this['canvas']);}[_0x5c4dad(0x33b,0x334)](){const _0x36f291=mars3d__namespace['DomUtil']['create']('canvas','mars3d-canvasWind',this[_0x1d2544(0x27b,0x20e)]['container']);function _0x360d51(_0x37572f,_0x5c4cf8){return _0x3d22de(_0x5c4cf8,_0x37572f-0x7b);}_0x36f291[_0x360d51(0x2cd,0x343)]['position']='absolute',_0x36f291[_0x360d51(0x2cd,0x28c)][_0x360d51(0x274,0x2f5)]=_0x360d51(0x2ae,0x260),_0x36f291[_0x1d2544(0x26b,0x1ef)][_0x1d2544(0x255,0x2ad)]=_0x360d51(0x2ae,0x22f),_0x36f291[_0x1d2544(0x26b,0x2e5)]['width']=this['_map'][_0x360d51(0x26c,0x209)]['canvas']['clientWidth']+'px',_0x36f291['style'][_0x1d2544(0x26c,0x2e7)]=this[_0x1d2544(0x27b,0x26c)][_0x360d51(0x26c,0x243)]['canvas'][_0x1d2544(0x24f,0x239)]+'px',_0x36f291[_0x360d51(0x2cd,0x355)]['pointerEvents']=this[_0x1d2544(0x1b9,0x1da)]?_0x360d51(0x221,0x18d):_0x1d2544(0x1f1,0x16f),_0x36f291['style']['zIndex']=this['options']['zIndex']??0x9,_0x36f291[_0x360d51(0x267,0x1ec)]=this[_0x1d2544(0x27b,0x1ef)]['scene']['canvas']['clientWidth'];function _0x1d2544(_0x21fa93,_0x470e7f){return _0x3d22de(_0x470e7f,_0x21fa93-0x19);}return _0x36f291[_0x360d51(0x2ce,0x2ef)]=this['_map'][_0x360d51(0x26c,0x276)][_0x360d51(0x293,0x32b)]['clientHeight'],_0x36f291;}['resize'](){function _0x36274d(_0x547060,_0x5226dc){return _0x5c4dad(_0x5226dc,_0x547060- -0x3ae);}function _0x1782c3(_0x2036ee,_0x493a79){return _0x3d22de(_0x493a79,_0x2036ee- -0xab);}this['canvas']&&(this[_0x1782c3(0x16d,0x143)][_0x1782c3(0x1a7,0x1e9)][_0x36274d(-0xd9,-0x161)]=this[_0x1782c3(0x1b7,0x20b)][_0x1782c3(0x146,0x150)]['canvas']['clientWidth']+'px',this[_0x36274d(-0xad,-0xc7)]['style']['height']=this['_map']['scene'][_0x1782c3(0x16d,0x19a)]['clientHeight']+'px',this['canvas']['width']=this[_0x36274d(-0x63,-0x83)]['scene']['canvas']['clientWidth'],this['canvas']['height']=this[_0x36274d(-0x63,-0x8f)]['scene']['canvas'][_0x1782c3(0x18b,0x213)]);}['bindEvent'](){const _0x36cb11=this;let _0x192cd0=Date[_0x1dd653(0x480,0x459)]();(function _0x4198ea(){if(_0x36cb11['isDestroy'])return;function _0x2c3516(_0x55ca34,_0x51f4b2){return _0x1dd653(_0x51f4b2- -0x63d,_0x55ca34);}function _0x3dfd31(_0x22d82d,_0x5e40bc){return _0x1dd653(_0x22d82d- -0x649,_0x5e40bc);}_0x36cb11['_animateFrame']=window['requestAnimationFrame'](_0x4198ea);if(_0x36cb11['show']&&_0x36cb11[_0x2c3516(-0x241,-0x2ac)]){const _0x3cc6c5=Date['now'](),_0x123908=_0x3cc6c5-_0x192cd0;_0x123908>_0x36cb11['frameTime']&&(_0x192cd0=_0x3cc6c5-_0x123908%_0x36cb11[_0x2c3516(-0x1df,-0x1f2)],_0x36cb11['update']());}}());function _0x4c1141(_0x588dac,_0x1aa8d2){return _0x3d22de(_0x1aa8d2,_0x588dac-0x152);}window['addEventListener']('resize',this[_0x4c1141(0x37a,0x3c8)]['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![];function _0x1dd653(_0x40888a,_0x235a06){return _0x3d22de(_0x235a06,_0x40888a-0x1f7);}this[_0x4c1141(0x3dc,0x3e0)]['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x1dd653(0x467,0x4fe)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x4c1141(0x3b4,0x359)]['on'](mars3d__namespace[_0x1dd653(0x467,0x3df)][_0x1dd653(0x488,0x42d)],this[_0x4c1141(0x377,0x3db)],this));}[_0x5c4dad(0x33e,0x308)](){function _0x4b6ac3(_0x1b8d5a,_0x3610d0){return _0x5c4dad(_0x3610d0,_0x1b8d5a-0x99);}window['cancelAnimationFrame'](this['_animateFrame']),delete this['_animateFrame'];function _0x11dc74(_0x1d185c,_0x5a70d6){return _0x3d22de(_0x1d185c,_0x5a70d6-0x311);}window['removeEventListener'](_0x4b6ac3(0x3aa,0x423),this['resize']),this['options']['mouseHidden']&&(this[_0x11dc74(0x56f,0x573)][_0x4b6ac3(0x2fd,0x316)](mars3d__namespace[_0x11dc74(0x5cd,0x581)]['wheel'],this[_0x11dc74(0x49f,0x51b)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x4b6ac3(0x344,0x2de)],this['_onMouseDownEvent'],this),this[_0x4b6ac3(0x3e4,0x38b)][_0x11dc74(0x51e,0x48c)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map'][_0x11dc74(0x470,0x48c)](mars3d__namespace[_0x4b6ac3(0x3f2,0x374)]['mouseMove'],this[_0x11dc74(0x531,0x4fe)],this));}['_onMapWhellEvent'](_0x480627){function _0x2e55cf(_0x5f48a4,_0x40a361){return _0x5c4dad(_0x5f48a4,_0x40a361- -0x20c);}clearTimeout(this[_0x2ba775(-0x187,-0x1e0)]);if(!this['show']||!this['canvas'])return;function _0x2ba775(_0x21dab3,_0x5d7c31){return _0x3d22de(_0x21dab3,_0x5d7c31- -0x431);}this[_0x2e55cf(0x152,0xf5)]['style']['visibility']='hidden',this['refreshTimer']=setTimeout(()=>{function _0xecd218(_0x374b26,_0x780d0){return _0x2ba775(_0x780d0,_0x374b26-0x591);}if(!this['show'])return;this['redraw']();function _0xb65f31(_0x4cd442,_0x2a4c92){return _0x2e55cf(_0x2a4c92,_0x4cd442-0xc8);}this['canvas'][_0xb65f31(0x1f7,0x201)][_0xecd218(0x37d,0x32d)]='visible';},0xc8);}['_onMouseDownEvent'](_0x4b9aa8){this['mouse_down']=!![],this[_0x266826(-0x14,0x19)]['off'](mars3d__namespace['EventType'][_0x266826(-0x35,0x3a)],this[_0x266826(-0x89,-0x47)],this);function _0x266826(_0x5844b3,_0x369d1d){return _0x5c4dad(_0x369d1d,_0x5844b3- -0x35f);}function _0x240335(_0x177bc3,_0x5e4276){return _0x5c4dad(_0x5e4276,_0x177bc3- -0xea);}this['_map']['on'](mars3d__namespace['EventType'][_0x240335(0x240,0x280)],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x334671){function _0x33dd2f(_0x22e60b,_0x2eda60){return _0x3d22de(_0x22e60b,_0x2eda60- -0x276);}if(!this['show']||!this['canvas'])return;function _0x214212(_0x394ce6,_0x2b444b){return _0x5c4dad(_0x2b444b,_0x394ce6-0x223);}this['mouse_down']&&(this[_0x214212(0x524,0x505)][_0x33dd2f(0x22,-0x24)][_0x214212(0x529,0x53b)]='hidden',this[_0x214212(0x590,0x5f4)]=!![]);}['_onMouseUpEvent'](_0x785b87){if(!this['show']||!this['canvas'])return;function _0x22ee8f(_0x4ced26,_0x3126af){return _0x3d22de(_0x3126af,_0x4ced26- -0x3a4);}this[_0x22ee8f(-0x142,-0x1a3)]['off'](mars3d__namespace[_0x15c4fe(0xc,-0x8)][_0x15c4fe(-0x23,0x61)],this['_onMouseMoveEvent'],this);function _0x15c4fe(_0xd7de17,_0x59cb33){return _0x3d22de(_0x59cb33,_0xd7de17- -0x264);}this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['canvas']['style']['visibility']=_0x22ee8f(-0x13e,-0x121),this[_0x15c4fe(-0x43,-0xbd)]=![],this[_0x15c4fe(0x20,0x33)]=![];}['setData'](_0x23ce17){function _0x27be56(_0x5de9ed,_0x14a129){return _0x3d22de(_0x14a129,_0x5de9ed- -0xe8);}this['clear'](),this['windData']=_0x23ce17,this['windField'][_0x27be56(0xdf,0x15d)](_0x23ce17);function _0x554275(_0x4c77a6,_0x1ee01b){return _0x3d22de(_0x1ee01b,_0x4c77a6- -0x6b);}this[_0x27be56(0x11e,0x9d)]();}[_0x3d22de(0x1ff,0x206)](){if(!this['show'])return;function _0xf9c53f(_0x14a134,_0x3c7b61){return _0x3d22de(_0x3c7b61,_0x14a134- -0x264);}function _0x1f6b54(_0x14a9bb,_0x199c0a){return _0x3d22de(_0x199c0a,_0x14a9bb- -0x285);}this['windField']['setOptions'](this[_0x1f6b54(0x5,0x9)]),this[_0xf9c53f(-0xd5,-0xbf)]();}[_0x5c4dad(0x202,0x278)](){function _0x3c444f(_0x12e7e8,_0x22aeef){return _0x5c4dad(_0x12e7e8,_0x22aeef-0x210);}if(this[_0x189160(-0x314,-0x2a8)])return;this['_updateIng']=!![];if(this[_0x189160(-0x28d,-0x271)])this['windField']['update']();else{const _0x55cc98=this['windField']['getParticles']();this[_0x3c444f(0x4f8,0x482)](_0x55cc98);}function _0x189160(_0x524008,_0x981242){return _0x5c4dad(_0x524008,_0x981242- -0x52c);}this['_updateIng']=![];}[_0x5c4dad(0x2f5,0x272)](_0x2823fa){this[_0x5a8684(-0x125,-0xf4)]=_0x2823fa,this['canvasContext']['globalCompositeOperation']='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']);function _0x2290a9(_0x24b7fb,_0x3a4eb3){return _0x3d22de(_0x24b7fb,_0x3a4eb3-0x124);}function _0x5a8684(_0x36dd7c,_0x48e547){return _0x5c4dad(_0x36dd7c,_0x48e547- -0x3b4);}this['canvasContext'][_0x2290a9(0x37a,0x380)]='lighter',this['canvasContext']['globalAlpha']=0.9;const _0x2da78c=this[_0x5a8684(-0xe9,-0x69)]['scene']['mode']!==Cesium['SceneMode']['SCENE3D'],_0xbf6713=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0xf20543=0x0,_0x419bb8=_0x2823fa[_0x2290a9(0x3d9,0x383)];_0xf20543<_0x419bb8;_0xf20543++){const _0x1070ff=_0x2823fa[_0xf20543],_0xc28ff6=this[_0x2290a9(0x333,0x2b1)](_0x1070ff,_0x1070ff[_0x5a8684(-0x70,-0xcc)],_0x1070ff['lat'],_0x1070ff['alt']),_0x174b08=this['_tomap'](_0x1070ff,_0x1070ff['tlng'],_0x1070ff['tlat'],_0x1070ff[_0x2290a9(0x285,0x2ea)]);if(!_0xc28ff6||!_0x174b08)continue;if(_0x2da78c&&Math['abs'](_0xc28ff6[0x0]-_0x174b08[0x0])>=_0xbf6713)continue;this['canvasContext'][_0x5a8684(-0xbe,-0x82)](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext'][_0x2290a9(0x3f3,0x37d)]=this[_0x5a8684(-0xda,-0x74)]['getColor'](_0x1070ff['speed']),this['canvasContext']['moveTo'](_0xc28ff6[0x0],_0xc28ff6[0x1]),this['canvasContext'][_0x5a8684(-0x5,-0x31)](_0x174b08[0x0],_0x174b08[0x1]),this['canvasContext'][_0x5a8684(-0xcf,-0xd4)]();}else{this[_0x5a8684(-0x18,-0x54)]['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext'][_0x5a8684(-0x9e,-0x72)]=this[_0x5a8684(0xb,-0x8c)];for(let _0x4ea74f=0x0,_0x525978=_0x2823fa[_0x5a8684(0x1e,-0x6c)];_0x4ea74f<_0x525978;_0x4ea74f++){const _0x43bed3=_0x2823fa[_0x4ea74f],_0x11bf26=this['_tomap'](_0x43bed3,_0x43bed3['lng'],_0x43bed3['lat'],_0x43bed3['alt']),_0x5a3c8a=this[_0x5a8684(-0x124,-0x13e)](_0x43bed3,_0x43bed3['tlng'],_0x43bed3[_0x2290a9(0x395,0x37c)],_0x43bed3['talt']);if(!_0x11bf26||!_0x5a3c8a)continue;if(_0x2da78c&&Math['abs'](_0x11bf26[0x0]-_0x5a3c8a[0x0])>=_0xbf6713)continue;this[_0x2290a9(0x378,0x39b)]['moveTo'](_0x11bf26[0x0],_0x11bf26[0x1]),this['canvasContext']['lineTo'](_0x5a3c8a[0x0],_0x5a3c8a[0x1]);}this['canvasContext'][_0x5a8684(-0xe6,-0xd4)]();}}[_0x5c4dad(0x231,0x276)](_0x9d118c,_0x2c61ab,_0x11d08a,_0x917a0d){const _0x2cdc76=Cesium[_0x122347(0x2d2,0x333)][_0x122347(0x371,0x3e1)](_0x2c61ab,_0x11d08a,_0x917a0d??this['fixedHeight']),_0x26a96d=this[_0x431689(-0xde,-0x48)][_0x431689(-0x14f,-0x129)];function _0x431689(_0x1867fd,_0x4d79a8){return _0x5c4dad(_0x4d79a8,_0x1867fd- -0x429);}if(_0x26a96d['mode']===Cesium['SceneMode'][_0x122347(0x359,0x39d)]){const _0x52047=new Cesium['EllipsoidalOccluder'](_0x26a96d['globe']['ellipsoid'],_0x26a96d['camera'][_0x122347(0x2b0,0x27f)]),_0x200d00=_0x52047[_0x122347(0x352,0x2c3)](_0x2cdc76);if(!_0x200d00)return _0x9d118c['age']=0x0,null;}const _0x111afd=mars3d__namespace['PointTrans'][_0x122347(0x379,0x33d)](this[_0x431689(-0xde,-0xbf)]['scene'],_0x2cdc76);function _0x122347(_0x2e58bd,_0x2a7f67){return _0x5c4dad(_0x2a7f67,_0x2e58bd-0x8);}return _0x111afd?[_0x111afd['x'],_0x111afd['y']]:null;}[_0x3d22de(0x1eb,0x232)](){this['windField'][_0x43511a(0x36b,0x3af)]();function _0x43511a(_0x41611c,_0x4efcca){return _0x3d22de(_0x41611c,_0x4efcca-0x17d);}function _0x1c6232(_0x4f1670,_0x2d9732){return _0x5c4dad(_0x2d9732,_0x4f1670- -0x1cb);}delete this[_0x1c6232(0xde,0x51)];}['initWorker'](){this['worker']=new Worker(this[_0x1d9510(0x5aa,0x63e)]['worker']);function _0x1d9510(_0x5935d4,_0x2f8357){return _0x5c4dad(_0x2f8357,_0x5935d4-0x237);}function _0xedbd5c(_0x14bacf,_0x144dba){return _0x5c4dad(_0x14bacf,_0x144dba- -0x48a);}this['worker'][_0x1d9510(0x4b1,0x4ce)]=_0x216bd4=>{function _0x2088b3(_0x46a0d7,_0x1e4884){return _0xedbd5c(_0x46a0d7,_0x1e4884-0x295);}function _0x55ae3b(_0xb580e5,_0x594f0b){return _0xedbd5c(_0x594f0b,_0xb580e5-0x94);}this[_0x2088b3(0xa7,0x7d)](_0x216bd4[_0x2088b3(0xb9,0xbf)][_0x55ae3b(-0xb8,-0xe7)]),this[_0x2088b3(0x15,0xa5)]=![];},this[_0xedbd5c(-0x1c4,-0x207)]={'init':_0x2490d6=>{const _0x3010f2={};_0x3010f2['type']='init',_0x3010f2['options']=_0x2490d6;function _0x5640d4(_0x18aa1a,_0x23d025){return _0x1d9510(_0x23d025- -0x352,_0x18aa1a);}this[_0x5640d4(0x134,0x1a0)]['postMessage'](_0x3010f2);},'setOptions':_0x19a5e2=>{function _0x1bd977(_0x4348cf,_0x2d0238){return _0x1d9510(_0x4348cf- -0x1cf,_0x2d0238);}const _0x2c6e2c={};_0x2c6e2c['type']=_0x1bd977(0x3f8,0x453);function _0x64e426(_0x1f174e,_0x535611){return _0x1d9510(_0x535611- -0x467,_0x1f174e);}_0x2c6e2c[_0x1bd977(0x3db,0x442)]=_0x19a5e2,this[_0x64e426(0xad,0x8b)][_0x64e426(0xbb,0x43)](_0x2c6e2c);},'setDate':_0x44b2e5=>{const _0xcbe8ba={};function _0x3c34cc(_0x331b7e,_0x3479e5){return _0xedbd5c(_0x3479e5,_0x331b7e-0x57c);}_0xcbe8ba['type']='setDate';function _0x452b1c(_0x1d7cc6,_0x2f5926){return _0xedbd5c(_0x1d7cc6,_0x2f5926-0x4a6);}_0xcbe8ba[_0x3c34cc(0x3a6,0x331)]=_0x44b2e5,this[_0x3c34cc(0x3ad,0x426)]['postMessage'](_0xcbe8ba);},'update':()=>{if(this[_0x125a0c(0x380,0x321)])return;this[_0x125a0c(0x380,0x347)]=!![];function _0x125a0c(_0xb54b46,_0x14f397){return _0x1d9510(_0xb54b46- -0x151,_0x14f397);}const _0xef0242={};function _0x14fe6d(_0x1ba5af,_0x17cc47){return _0x1d9510(_0x17cc47- -0x21a,_0x1ba5af);}_0xef0242['type']='update',this[_0x125a0c(0x3a1,0x3b7)]['postMessage'](_0xef0242);},'clear':()=>{function _0x560345(_0x250f45,_0x2dce70){return _0xedbd5c(_0x250f45,_0x2dce70-0x14b);}const _0x5b2f61={};_0x5b2f61[_0x35f0fc(-0x73,-0x4e)]='clear';function _0x35f0fc(_0x213114,_0x535680){return _0xedbd5c(_0x213114,_0x535680-0x19e);}this['worker'][_0x560345(-0x101,-0xcc)](_0x5b2f61);}},this['windField'][_0x1d9510(0x527,0x4b9)](this[_0xedbd5c(-0x125,-0x117)]);}}function _0x5c4dad(_0x259bf5,_0x350d56){return _0x113c(_0x350d56-0x19f,_0x259bf5);}mars3d__namespace['LayerUtil'][_0x3d22de(0x1f0,0x26b)](_0x3d22de(0x2f1,0x28e),CanvasWindLayer),mars3d__namespace[_0x5c4dad(0x2fd,0x275)][_0x5c4dad(0x304,0x2e9)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x3d22de(0x180,0x200)]=CanvasWindLayer,exports[_0x5c4dad(0x241,0x27b)]=WindLayer,exports[_0x3d22de(0x250,0x215)]=WindUtil;const _0x1cb5d6={};_0x1cb5d6[_0x5c4dad(0x249,0x2db)]=!![],Object['defineProperty'](exports,'__esModule',_0x1cb5d6);
|
|
15
|
+
}));
|
package/package.json
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.8.
|
|
3
|
+
"version": "3.8.8",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
|
-
"main": "
|
|
6
|
-
"files": [
|
|
7
|
-
"dist"
|
|
8
|
-
],
|
|
5
|
+
"main": "./mars3d-wind.js",
|
|
9
6
|
"peerDependencies": {},
|
|
10
7
|
"devDependencies": {
|
|
11
|
-
"mars3d": "~3.8.
|
|
8
|
+
"mars3d": "~3.8.8"
|
|
12
9
|
},
|
|
13
10
|
"scripts": {
|
|
14
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|
package/dist/mars3d-wind.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
|
3
|
-
*
|
|
4
|
-
* 版本信息:v3.8.6
|
|
5
|
-
* 编译日期:2024-11-06 11:10
|
|
6
|
-
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
|
-
* 使用单位:免费公开版 ,2024-08-01
|
|
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(_0x158e42,_0x3501e0){const _0x47bf3b=_0x158e42();function _0x17dafc(_0x4f3b75,_0x4ae60f){return _0x32c3(_0x4ae60f- -0x342,_0x4f3b75);}function _0x3fbc1d(_0x5e2e2c,_0x12a3c5){return _0x32c3(_0x5e2e2c- -0x1f6,_0x12a3c5);}while(!![]){try{const _0x3b6039=parseInt(_0x17dafc(-0x20d,-0x27f))/0x1+parseInt(_0x3fbc1d(-0x175,-0x121))/0x2+parseInt(_0x17dafc(-0x2af,-0x268))/0x3*(-parseInt(_0x3fbc1d(-0x168,-0x1e6))/0x4)+-parseInt(_0x17dafc(-0x275,-0x229))/0x5+-parseInt(_0x17dafc(-0x246,-0x227))/0x6+-parseInt(_0x17dafc(-0x1b0,-0x1b7))/0x7*(-parseInt(_0x17dafc(-0x23a,-0x203))/0x8)+-parseInt(_0x3fbc1d(-0x158,-0x117))/0x9*(-parseInt(_0x3fbc1d(-0xc7,-0xaf))/0xa);if(_0x3b6039===_0x3501e0)break;else _0x47bf3b['push'](_0x47bf3b['shift']());}catch(_0x257481){_0x47bf3b['push'](_0x47bf3b['shift']());}}}(_0x15da,0x2e2a0));function _interopNamespace(_0x28f455){if(_0x28f455&&_0x28f455[_0xb5f290(0x1bf,0x23a)])return _0x28f455;function _0x4b1304(_0x5b02b9,_0x5478e1){return _0x32c3(_0x5b02b9-0x89,_0x5478e1);}var _0x441342=Object[_0x4b1304(0x21d,0x2a7)](null);_0x28f455&&Object['keys'](_0x28f455)['forEach'](function(_0x2a3c17){function _0x13388d(_0x212f43,_0x1c82d0){return _0xb5f290(_0x1c82d0,_0x212f43-0x1a3);}if(_0x2a3c17!==_0x13388d(0x3eb,0x39d)){var _0x55248b=Object['getOwnPropertyDescriptor'](_0x28f455,_0x2a3c17);Object['defineProperty'](_0x441342,_0x2a3c17,_0x55248b['get']?_0x55248b:{'enumerable':!![],'get':function(){return _0x28f455[_0x2a3c17];}});}});_0x441342['default']=_0x28f455;function _0xb5f290(_0x34994e,_0x211217){return _0x32c3(_0x211217-0x166,_0x34994e);}return _0x441342;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$7=mars3d__namespace['Cesium'];function getU(_0x4cf8ea,_0x2a0a11){function _0x4633c0(_0x550816,_0xddb27e){return _0x32c3(_0x550816-0x1c9,_0xddb27e);}const _0xadca99=_0x4cf8ea*Math['cos'](Cesium$7[_0x4633c0(0x344,0x346)][_0x707943(0x325,0x396)](_0x2a0a11));function _0x707943(_0x11e352,_0x22b3b5){return _0x32c3(_0x22b3b5-0x299,_0x11e352);}return _0xadca99;}function getV(_0x2643be,_0x3ee0f2){function _0x425d16(_0x1c0cf0,_0x43599d){return _0x32c3(_0x43599d-0x15f,_0x1c0cf0);}const _0x6c1610=_0x2643be*Math[_0x27b97d(0x3aa,0x3aa)](Cesium$7[_0x425d16(0x2dc,0x2da)]['toRadians'](_0x3ee0f2));function _0x27b97d(_0x1ef9a0,_0x5834f8){return _0x32c3(_0x1ef9a0-0x2b5,_0x5834f8);}return _0x6c1610;}function getSpeed(_0x537689,_0x486fe3){function _0x22ec9a(_0x460fa5,_0x1b7b38){return _0x32c3(_0x460fa5- -0x4,_0x1b7b38);}const _0x5daf7f=Math[_0x4bb58a(0x5e,-0x30)](Math[_0x4bb58a(0xdc,0xa4)](_0x537689,0x2)+Math['pow'](_0x486fe3,0x2));function _0x4bb58a(_0x23154b,_0x2ff541){return _0x32c3(_0x23154b- -0x83,_0x2ff541);}return _0x5daf7f;}function getDirection(_0xfb6cbe,_0x34599f){function _0x406ac1(_0x454b6e,_0x489adf){return _0x32c3(_0x454b6e-0x33f,_0x489adf);}let _0x4fb89e=Cesium$7['Math']['toDegrees'](Math[_0x406ac1(0x3cf,0x411)](_0x34599f,_0xfb6cbe));return _0x4fb89e+=_0x4fb89e<0x0?0x168:0x0,_0x4fb89e;}const _0x55b50f={};_0x55b50f[_0x2962c5(-0x39,0x48)]=null,_0x55b50f[_0x59248e(0x43b,0x45b)]=getU,_0x55b50f['getV']=getV,_0x55b50f['getSpeed']=getSpeed,_0x55b50f['getDirection']=getDirection;var WindUtil=_0x55b50f;const Cesium$6=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x3ca5da){this['commandType']=_0x3ca5da[_0x38e592(-0x2d3,-0x279)],this['geometry']=_0x3ca5da['geometry'],this['attributeLocations']=_0x3ca5da['attributeLocations'],this['primitiveType']=_0x3ca5da['primitiveType'],this['uniformMap']=_0x3ca5da['uniformMap'];function _0x1b6058(_0x2ea2a2,_0x5e93e7){return _0x2962c5(_0x2ea2a2,_0x5e93e7-0x27f);}function _0x38e592(_0x5046ee,_0x32478){return _0x59248e(_0x5046ee- -0x61c,_0x32478);}this['vertexShaderSource']=_0x3ca5da[_0x1b6058(0x23e,0x237)],this['fragmentShaderSource']=_0x3ca5da[_0x1b6058(0x28e,0x212)],this['rawRenderState']=_0x3ca5da['rawRenderState'],this[_0x1b6058(0x1f3,0x25b)]=_0x3ca5da['framebuffer'],this['outputTexture']=_0x3ca5da['outputTexture'],this['autoClear']=_0x3ca5da[_0x1b6058(0x331,0x29b)]??![],this['preExecute']=_0x3ca5da['preExecute'],this['show']=!![],this[_0x38e592(-0x292,-0x30b)]=undefined,this[_0x38e592(-0x1e0,-0x265)]=undefined,this['autoClear']&&(this['clearCommand']=new Cesium$6['ClearCommand']({'color':new Cesium$6['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x38e592(-0x26c,-0x1e2)],'pass':Cesium$6[_0x38e592(-0x28c,-0x279)]['OPAQUE']}));}['createCommand'](_0x3d5d69){function _0x530913(_0x3c3335,_0x632109){return _0x2962c5(_0x3c3335,_0x632109-0x1d8);}function _0x21ad6b(_0x4c9968,_0x57acbe){return _0x2962c5(_0x4c9968,_0x57acbe-0x2c1);}switch(this[_0x530913(0x110,0x14d)]){case _0x21ad6b(0x338,0x305):{const _0x1ae7b3=Cesium$6[_0x530913(0x289,0x242)]['fromGeometry']({'context':_0x3d5d69,'geometry':this['geometry'],'attributeLocations':this[_0x21ad6b(0x312,0x2a7)],'bufferUsage':Cesium$6[_0x21ad6b(0x247,0x251)][_0x530913(0x188,0x189)]}),_0x4e842d={};_0x4e842d[_0x21ad6b(0x2d5,0x295)]=_0x3d5d69,_0x4e842d[_0x530913(0x23a,0x1be)]=this['attributeLocations'],_0x4e842d['vertexShaderSource']=this['vertexShaderSource'],_0x4e842d[_0x21ad6b(0x1f7,0x254)]=this['fragmentShaderSource'];const _0x5dff85=Cesium$6[_0x530913(0x1b7,0x1bf)][_0x21ad6b(0x26d,0x2fb)](_0x4e842d),_0x83adf8=Cesium$6['RenderState']['fromCache'](this['rawRenderState']);return new Cesium$6['DrawCommand']({'owner':this,'vertexArray':_0x1ae7b3,'primitiveType':this['primitiveType'],'uniformMap':this['uniformMap'],'modelMatrix':Cesium$6[_0x530913(0x231,0x19c)]['IDENTITY'],'shaderProgram':_0x5dff85,'framebuffer':this['framebuffer'],'renderState':_0x83adf8,'pass':Cesium$6['Pass']['OPAQUE']});}case _0x21ad6b(0x358,0x2db):{const _0x550a1b={};return _0x550a1b['owner']=this,_0x550a1b['fragmentShaderSource']=this[_0x530913(0x1be,0x16b)],_0x550a1b[_0x530913(0x1f5,0x1dd)]=this['uniformMap'],_0x550a1b[_0x21ad6b(0x21f,0x28d)]=this[_0x21ad6b(0x2ab,0x28d)],_0x550a1b[_0x21ad6b(0x2e5,0x340)]=!![],new Cesium$6['ComputeCommand'](_0x550a1b);}}}[_0x2962c5(-0x66,-0x95)](_0x351637,_0x1eae09){this[_0x5b4c52(-0xa1,-0x2d)]=_0x1eae09;function _0x5b4c52(_0x3d7631,_0x37c98a){return _0x59248e(_0x37c98a- -0x370,_0x3d7631);}function _0x14787e(_0x39e976,_0x410e7b){return _0x59248e(_0x39e976- -0x5e3,_0x410e7b);}const _0x101888=Cesium$6['VertexArray']['fromGeometry']({'context':_0x351637,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':Cesium$6['BufferUsage']['STATIC_DRAW']});this[_0x5b4c52(0xaf,0x1a)]['vertexArray']=_0x101888;}['update'](_0x2eda00){function _0x78ccab(_0x4974f4,_0x4edc18){return _0x2962c5(_0x4edc18,_0x4974f4- -0x19b);}if(!this[_0x20802f(0x208,0x18c)])return;if(_0x2eda00['mode']!==Cesium$6['SceneMode'][_0x20802f(0x30b,0x288)])return;!Cesium$6['defined'](this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x2eda00['context']));function _0x20802f(_0x142f5a,_0x874a0){return _0x59248e(_0x142f5a- -0x12e,_0x874a0);}Cesium$6['defined'](this[_0x78ccab(-0x146,-0xd4)])&&this[_0x78ccab(-0x146,-0x1b7)](),Cesium$6['defined'](this['clearCommand'])&&_0x2eda00['commandList'][_0x20802f(0x2f8,0x264)](this[_0x20802f(0x30e,0x2f8)]),_0x2eda00['commandList']['push'](this['commandToExecute']);}['isDestroyed'](){return![];}[_0x59248e(0x430,0x425)](){function _0x4a021e(_0x14838e,_0x43b59d){return _0x59248e(_0x14838e- -0x629,_0x43b59d);}if(this[_0x172b09(-0x52,0x43)]){var _0x132698,_0xf803b9;(_0x132698=this[_0x172b09(-0x52,0x3e)])!==null&&_0x132698!==void 0x0&&_0x132698['vertexArray']&&this[_0x4a021e(-0x1ed,-0x1f0)][_0x172b09(-0x61,-0x4)][_0x4a021e(-0x1f9,-0x19b)](),(_0xf803b9=this['clearCommand'])!==null&&_0xf803b9!==void 0x0&&_0xf803b9['shaderProgram']&&this['clearCommand'][_0x4a021e(-0x1f7,-0x1bb)][_0x4a021e(-0x1f9,-0x195)](),delete this['clearCommand'];}function _0x172b09(_0x284a4d,_0x28ff73){return _0x2962c5(_0x28ff73,_0x284a4d- -0xba);}return this[_0x4a021e(-0x29f,-0x32f)]&&(this['commandToExecute'][_0x4a021e(-0x1fc,-0x1f1)]&&this['commandToExecute'][_0x172b09(-0x61,-0xc3)]['destroy'](),this['commandToExecute']['shaderProgram']&&this['commandToExecute']['shaderProgram']['destroy'](),delete this['commandToExecute']),Cesium$6[_0x4a021e(-0x1e1,-0x1d1)](this);}}const Cesium$5=mars3d__namespace['Cesium'],Util=(function(){const _0x4c0dd5=function(){function _0x1da4dc(_0x411059,_0x270397){return _0x32c3(_0x411059-0x1ff,_0x270397);}function _0x61b028(_0x3ca2b3,_0xae43ee){return _0x32c3(_0x3ca2b3- -0x3a3,_0xae43ee);}const _0x742e25=new Cesium$5['Geometry']({'attributes':new Cesium$5[(_0x61b028(-0x29c,-0x279))]({'position':new Cesium$5[(_0x1da4dc(0x351,0x323))]({'componentDatatype':Cesium$5['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new Cesium$5[(_0x1da4dc(0x351,0x348))]({'componentDatatype':Cesium$5[_0x61b028(-0x286,-0x2a1)][_0x61b028(-0x216,-0x2ab)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});return _0x742e25;},_0x543dcc=function(_0x498c52,_0x258394){if(Cesium$5[_0x4599a8(0x3ab,0x31c)](_0x258394)){const _0x1366ca={};_0x1366ca[_0x350461(-0x26,0x2b)]=_0x258394,_0x498c52['source']=_0x1366ca;}function _0x350461(_0x299c1f,_0x4c016c){return _0x32c3(_0x4c016c- -0x126,_0x299c1f);}const _0x146cae=new Cesium$5[(_0x350461(-0x98,-0xc))](_0x498c52);function _0x4599a8(_0x4166f6,_0x3ed79e){return _0x32c3(_0x4166f6-0x271,_0x3ed79e);}return _0x146cae;},_0x41c7db=function(_0x252dad,_0x280f6e,_0x113046){const _0x321f27={};_0x321f27['context']=_0x252dad;function _0xf8f0f2(_0x5f3547,_0x11e1aa){return _0x32c3(_0x11e1aa- -0x226,_0x5f3547);}_0x321f27[_0xf8f0f2(-0xee,-0x15d)]=[_0x280f6e];function _0x55992a(_0x3ee53c,_0x4e53c8){return _0x32c3(_0x4e53c8-0x102,_0x3ee53c);}_0x321f27[_0xf8f0f2(-0x72,-0xf9)]=_0x113046;const _0x2c5c1d=new Cesium$5['Framebuffer'](_0x321f27);return _0x2c5c1d;};function _0x29b800(_0x131de9,_0x2176e8){return _0x59248e(_0x2176e8-0x28,_0x131de9);}const _0x3d4a5b=function(_0x12da8a){const _0x59928f=!![],_0x174a49=![];function _0x48f026(_0x3bb081,_0x2f303e){return _0x32c3(_0x2f303e-0x9f,_0x3bb081);}const _0x1ab335={};_0x1ab335['viewport']=_0x12da8a['viewport'],_0x1ab335[_0x48f026(0xf2,0x17f)]=_0x12da8a['depthTest'];function _0x3242d0(_0xd4a42e,_0x3c7d4a){return _0x32c3(_0xd4a42e- -0x57,_0x3c7d4a);}_0x1ab335['depthMask']=_0x12da8a['depthMask'],_0x1ab335[_0x48f026(0xc0,0x13a)]=_0x12da8a['blending'];const _0x101bf0=_0x1ab335,_0x3a5160=Cesium$5[_0x48f026(0x1ca,0x135)][_0x3242d0(0x65,0x87)](_0x59928f,_0x174a49,_0x101bf0);return _0x3a5160;},_0x58008e=function(_0x33447c){const _0x243daf={},_0x4d39f7=Cesium$5[_0x2de385(0x4e3,0x578)]['mod'](_0x33447c['west'],Cesium$5['Math'][_0x2de385(0x505,0x535)]),_0x1f29a3=Cesium$5['Math'][_0x2de385(0x3fd,0x452)](_0x33447c['east'],Cesium$5['Math']['TWO_PI']),_0x418d69=_0x33447c['width'];let _0x4021f4,_0x279f60;function _0x2572ce(_0x4a562d,_0x2d998f){return _0x32c3(_0x2d998f- -0x77,_0x4a562d);}_0x418d69>Cesium$5[_0x2de385(0x4e3,0x55b)]['THREE_PI_OVER_TWO']?(_0x4021f4=0x0,_0x279f60=Cesium$5['Math'][_0x2572ce(0x1ab,0x126)]):_0x1f29a3-_0x4d39f7<_0x418d69?(_0x4021f4=_0x4d39f7,_0x279f60=_0x4d39f7+_0x418d69):(_0x4021f4=_0x4d39f7,_0x279f60=_0x1f29a3);_0x243daf[_0x2de385(0x4be,0x488)]={'min':Cesium$5[_0x2de385(0x4e3,0x46c)][_0x2572ce(0x12b,0x111)](_0x4021f4),'max':Cesium$5['Math']['toDegrees'](_0x279f60)};const _0x29b536=_0x33447c['south'],_0x6f285d=_0x33447c['north'];function _0x2de385(_0x1051c0,_0x2ba6c0){return _0x32c3(_0x1051c0-0x368,_0x2ba6c0);}const _0x2e672d=_0x33447c['height'],_0x159d77=_0x2e672d>Cesium$5['Math']['PI']/0xc?_0x2e672d/0x2:0x0;let _0x3b83a8=Cesium$5[_0x2572ce(0x86,0x104)]['clampToLatitudeRange'](_0x29b536-_0x159d77),_0x4d9956=Cesium$5[_0x2572ce(0x10f,0x104)]['clampToLatitudeRange'](_0x6f285d+_0x159d77);return _0x3b83a8<-Cesium$5[_0x2572ce(0x14a,0x104)]['PI_OVER_THREE']&&(_0x3b83a8=-Cesium$5['Math']['PI_OVER_TWO']),_0x4d9956>Cesium$5[_0x2572ce(0x11a,0x104)]['PI_OVER_THREE']&&(_0x4d9956=Cesium$5['Math'][_0x2572ce(0x87,0x91)]),_0x243daf['lat']={'min':Cesium$5['Math']['toDegrees'](_0x3b83a8),'max':Cesium$5['Math']['toDegrees'](_0x4d9956)},_0x243daf;},_0x17c5ea={};_0x17c5ea[_0x29b800(0x46f,0x3f0)]=_0x4c0dd5;function _0x9c32ea(_0x33cb7a,_0x1fe14a){return _0x2962c5(_0x33cb7a,_0x1fe14a-0x32c);}return _0x17c5ea['createTexture']=_0x543dcc,_0x17c5ea['createFramebuffer']=_0x41c7db,_0x17c5ea[_0x29b800(0x3fc,0x468)]=_0x3d4a5b,_0x17c5ea[_0x29b800(0x3a9,0x3cb)]=_0x58008e,_0x17c5ea;}());var fullscreenVert='#version\x20300\x20es\x0a\x0ain\x20vec3\x20position;\x0ain\x20vec2\x20st;\x0a\x0aout\x20vec2\x20textureCoordinate;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a\x20\x20gl_Position\x20=\x20vec4(position,\x201.0f);\x0a}\x0a';function _0x59248e(_0xdad18b,_0x4ff9f3){return _0x32c3(_0xdad18b-0x2ba,_0x4ff9f3);}var screenDrawFrag='#version\x20300\x20es\x0a\x0auniform\x20sampler2D\x20trailsColorTexture;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec4\x20trailsColor\x20=\x20texture(trailsColorTexture,\x20textureCoordinate);\x0a\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x0a\x20\x20if(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20trailsColor;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20}\x0a}\x0a',segmentDrawFrag='#version\x20300\x20es\x0a\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20bool\x20colour;\x0a\x0ain\x20float\x20heightNormalization;\x0ain\x20float\x20speedNormalization;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speedNormalization\x20>\x20zero)\x20{\x0a\x20\x20\x20\x20if(colour)\x20{\x0a\x20\x20\x20\x20\x20\x20fragColor\x20=\x20texture(colorTable,\x20vec2(heightNormalization,\x20zero));\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20fragColor\x20=\x20texture(colorTable,\x20vec2(speedNormalization,\x20zero));\x0a\x20\x20\x20\x20}\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',segmentDrawVert=_0x59248e(0x404,0x42b);function _0x2962c5(_0x45e116,_0x2e8e73){return _0x32c3(_0x2e8e73- -0x11a,_0x45e116);}var trailDrawFrag='#version\x20300\x20es\x0a\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20sampler2D\x20segmentsColorTexture;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0auniform\x20sampler2D\x20currentTrailsColor;\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0a\x0auniform\x20float\x20fadeOpacity;\x0a\x0aout\x20vec4\x20fragColor;\x0avoid\x20main()\x20{\x0a\x20\x20vec4\x20pointsColor\x20=\x20texture(segmentsColorTexture,\x20textureCoordinate);\x0a\x20\x20vec4\x20trailsColor\x20=\x20texture(currentTrailsColor,\x20textureCoordinate);\x0a\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0f\x20*\x20trailsColor)\x20/\x20255.0f;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0a\x0a\x20\x20float\x20pointsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20trailsDepth\x20=\x20texture(trailsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20if(pointsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20fragColor\x20+\x20pointsColor;\x0a\x20\x20}\x0a\x20\x20if(trailsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20fragColor\x20+\x20trailsColor;\x0a\x20\x20}\x0a\x20\x20gl_FragDepth\x20=\x20min(pointsDepth,\x20trailsDepth);\x0a}\x0a';const Cesium$4=mars3d__namespace[_0x59248e(0x454,0x449)];function _0x32c3(_0x3401b3,_0x14849a){const _0x15da5d=_0x15da();return _0x32c3=function(_0x32c399,_0x1ccd8a){_0x32c399=_0x32c399-0x74;let _0x335082=_0x15da5d[_0x32c399];return _0x335082;},_0x32c3(_0x3401b3,_0x14849a);}class ParticlesRendering{constructor(_0xc6d17,_0x23e2bd,_0x25d09e,_0x4be234,_0x4ee47a){this[_0x405836(-0x2cb,-0x23a)]=_0x25d09e['colors']===_0x2a774c(-0x20,-0x94),this[_0x2a774c(-0x85,-0x81)](_0xc6d17,_0x23e2bd,_0x25d09e['colors']);function _0x2a774c(_0x303bc3,_0x44c0ff){return _0x2962c5(_0x44c0ff,_0x303bc3- -0x1e);}this['createRenderingFramebuffers'](_0xc6d17);function _0x405836(_0x329a29,_0x5a850e){return _0x59248e(_0x329a29- -0x691,_0x5a850e);}this['createRenderingPrimitives'](_0xc6d17,_0x23e2bd,_0x25d09e,_0x4be234,_0x4ee47a);}['createRenderingTextures'](_0xcd6802,_0x40a2ad,_0x33eb87){const _0x444e21={};_0x444e21[_0x4ed62e(0xd3,0xb3)]=_0xcd6802,_0x444e21['width']=_0xcd6802['drawingBufferWidth'];function _0x35abc2(_0x21018e,_0x457a01){return _0x2962c5(_0x21018e,_0x457a01-0xaf);}function _0x4ed62e(_0x22218f,_0x49f47e){return _0x59248e(_0x22218f- -0x2d5,_0x49f47e);}_0x444e21['height']=_0xcd6802[_0x35abc2(0x52,0x1f)],_0x444e21['pixelFormat']=Cesium$4[_0x4ed62e(0x145,0x103)][_0x4ed62e(0x8a,-0x4)],_0x444e21[_0x35abc2(0x8c,0x61)]=Cesium$4['PixelDatatype']['UNSIGNED_BYTE'];const _0xd7b90a=_0x444e21,_0x577c6b={};_0x577c6b['context']=_0xcd6802,_0x577c6b[_0x35abc2(0xa5,0xc0)]=_0xcd6802['drawingBufferWidth'],_0x577c6b['height']=_0xcd6802['drawingBufferHeight'],_0x577c6b['pixelFormat']=Cesium$4['PixelFormat']['DEPTH_COMPONENT'],_0x577c6b[_0x35abc2(0x77,0x61)]=Cesium$4['PixelDatatype']['UNSIGNED_INT'];const _0x576bc4=_0x577c6b,_0x37aff=_0x33eb87[_0x4ed62e(0x14e,0x102)],_0x24ff91=new Float32Array(_0x37aff*0x3);for(let _0x191b32=0x0;_0x191b32<_0x37aff;_0x191b32++){const _0x1cbcf7=Cesium$4['Color']['fromCssColorString'](_0x33eb87[_0x191b32]);_0x24ff91[0x3*_0x191b32]=_0x1cbcf7[_0x4ed62e(0xcd,0x149)],_0x24ff91[0x3*_0x191b32+0x1]=_0x1cbcf7[_0x4ed62e(0x17d,0x201)],_0x24ff91[0x3*_0x191b32+0x2]=_0x1cbcf7[_0x35abc2(0x63,0xe2)];}const _0x3e4d66={'context':_0xcd6802,'width':_0x37aff,'height':0x1,'pixelFormat':Cesium$4[_0x35abc2(0xdb,0xf5)][_0x35abc2(0x14f,0xcc)],'pixelDatatype':Cesium$4['PixelDatatype']['FLOAT'],'sampler':new Cesium$4[(_0x4ed62e(0x10f,0x101))]({'minificationFilter':Cesium$4[_0x35abc2(-0x3e,0x26)][_0x35abc2(0x57,0x64)],'magnificationFilter':Cesium$4['TextureMagnificationFilter'][_0x35abc2(0x4f,0x64)]})};this[_0x35abc2(0x7a,0x6a)]={'segmentsColor':Util['createTexture'](_0xd7b90a),'segmentsDepth':Util['createTexture'](_0x576bc4),'currentTrailsColor':Util['createTexture'](_0xd7b90a),'currentTrailsDepth':Util['createTexture'](_0x576bc4),'nextTrailsColor':Util[_0x35abc2(0x54,0x7f)](_0xd7b90a),'nextTrailsDepth':Util[_0x35abc2(0x91,0x7f)](_0x576bc4),'colorTable':Util[_0x4ed62e(0xcf,0xc1)](_0x3e4d66,_0x24ff91)};}['createRenderingFramebuffers'](_0x4804b5){function _0x46cbcd(_0x11d7b4,_0x9841b7){return _0x59248e(_0x11d7b4- -0x194,_0x9841b7);}function _0x1b77c4(_0x10ed61,_0x1c6aee){return _0x59248e(_0x1c6aee- -0x245,_0x10ed61);}this[_0x1b77c4(0x214,0x1a1)]={'segments':Util[_0x1b77c4(0x260,0x1cc)](_0x4804b5,this['textures'][_0x46cbcd(0x238,0x1fc)],this[_0x46cbcd(0x1fb,0x1b6)][_0x46cbcd(0x2b6,0x225)]),'currentTrails':Util[_0x46cbcd(0x27d,0x2a5)](_0x4804b5,this['textures']['currentTrailsColor'],this['textures'][_0x1b77c4(0x23e,0x1dd)]),'nextTrails':Util['createFramebuffer'](_0x4804b5,this[_0x1b77c4(0x196,0x14a)]['nextTrailsColor'],this['textures'][_0x1b77c4(0x297,0x20a)])};}[_0x2962c5(-0x2b,0x17)](_0xee70a8){function _0x3ce7b0(_0x24e96f,_0x148782){return _0x59248e(_0x148782-0xa7,_0x24e96f);}const _0x3aa015=0x4;let _0x226cb4=[];for(let _0x5ee511=0x0;_0x5ee511<_0xee70a8['particlesTextureSize'];_0x5ee511++){for(let _0x548c8a=0x0;_0x548c8a<_0xee70a8['particlesTextureSize'];_0x548c8a++){for(let _0x292bab=0x0;_0x292bab<_0x3aa015;_0x292bab++){_0x226cb4[_0x3ce7b0(0x51a,0x4cd)](_0x5ee511/_0xee70a8['particlesTextureSize']),_0x226cb4[_0x2593db(-0xbe,-0xb5)](_0x548c8a/_0xee70a8['particlesTextureSize']);}}}_0x226cb4=new Float32Array(_0x226cb4);let _0x4ce2a8=[];for(let _0x91c769=0x0;_0x91c769<_0xee70a8['maxParticles'];_0x91c769++){_0x4ce2a8['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x4ce2a8=new Float32Array(_0x4ce2a8);let _0x3ed717=[];function _0x2593db(_0x5641ea,_0x3a5430){return _0x2962c5(_0x3a5430,_0x5641ea- -0x110);}for(let _0x44d1d8=0x0,_0x5d0a8c=0x0;_0x44d1d8<_0xee70a8['maxParticles'];_0x44d1d8++){_0x3ed717[_0x3ce7b0(0x4bf,0x4cd)](_0x5d0a8c+0x0,_0x5d0a8c+0x1,_0x5d0a8c+0x2,_0x5d0a8c+0x2,_0x5d0a8c+0x1,_0x5d0a8c+0x3),_0x5d0a8c+=_0x3aa015;}_0x3ed717=new Uint32Array(_0x3ed717);const _0x50331f=new Cesium$4['Geometry']({'attributes':new Cesium$4[(_0x2593db(-0x123,-0x170))]({'st':new Cesium$4['GeometryAttribute']({'componentDatatype':Cesium$4['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x2,'values':_0x226cb4}),'normal':new Cesium$4[(_0x3ce7b0(0x532,0x4b3))]({'componentDatatype':Cesium$4['ComponentDatatype'][_0x2593db(-0x9d,-0xa0)],'componentsPerAttribute':0x3,'values':_0x4ce2a8})}),'indices':_0x3ed717});return _0x50331f;}['createRenderingPrimitives'](_0x424cb3,_0x5563de,_0x2d45f1,_0x8015a5,_0x30d845){const _0x49d651=this,_0x3517d3={};_0x3517d3['st']=0x0,_0x3517d3[_0x5c8d9f(0x4a3,0x4fc)]=0x1;const _0x35e51d={};_0x35e51d['sources']=[segmentDrawVert];const _0xc1a7de={};_0xc1a7de['sources']=[segmentDrawFrag];const _0x35adc0={};function _0x54f1e9(_0x1ca2c4,_0x557746){return _0x59248e(_0x1ca2c4- -0x33,_0x557746);}_0x35adc0[_0x54f1e9(0x411,0x3c0)]=!![];const _0x54db63={};_0x54db63[_0x54f1e9(0x379,0x3cc)]=undefined,_0x54db63['depthTest']=_0x35adc0,_0x54db63['depthMask']=!![];const _0x42ea60={};_0x42ea60['position']=0x0,_0x42ea60['st']=0x1;function _0x5c8d9f(_0x1776be,_0x3e53db){return _0x59248e(_0x1776be-0x10c,_0x3e53db);}const _0x116b95={};_0x116b95[_0x5c8d9f(0x53f,0x4fc)]=['DISABLE_GL_POSITION_LOG_DEPTH'],_0x116b95['sources']=[fullscreenVert];const _0x2989b1={};_0x2989b1[_0x5c8d9f(0x53f,0x4d0)]=[_0x5c8d9f(0x471,0x440)],_0x2989b1['sources']=[trailDrawFrag];const _0x4001c6={};_0x4001c6['position']=0x0,_0x4001c6['st']=0x1;const _0x21c9c9={};_0x21c9c9[_0x54f1e9(0x400,0x481)]=['DISABLE_GL_POSITION_LOG_DEPTH'],_0x21c9c9['sources']=[fullscreenVert];const _0x596d42={};_0x596d42['defines']=['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],_0x596d42[_0x54f1e9(0x3a9,0x3f5)]=[screenDrawFrag];const _0x5c4d59={};_0x5c4d59[_0x5c8d9f(0x550,0x5e2)]=![];const _0x5abb4f={};_0x5abb4f[_0x5c8d9f(0x550,0x5bd)]=!![],this['primitives']={'segments':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x3517d3,'geometry':this[_0x5c8d9f(0x4f7,0x4b6)](_0x2d45f1),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'previousParticlesPosition':function(){return _0x30d845['particlesTextures']['previousParticlesPosition'];},'currentParticlesPosition':function(){function _0x396695(_0x470a3a,_0x2b6e9c){return _0x54f1e9(_0x2b6e9c-0x42,_0x470a3a);}return _0x30d845[_0x396695(0x2ce,0x342)]['currentParticlesPosition'];},'postProcessingPosition':function(){function _0x5e6744(_0x21a233,_0x1d1ef3){return _0x5c8d9f(_0x1d1ef3- -0x6d0,_0x21a233);}return _0x30d845['particlesTextures'][_0x5e6744(-0x2af,-0x287)];},'particlesSpeed':function(){return _0x30d845['particlesTextures']['particlesSpeed'];},'colorTable':function(){function _0x35db6d(_0x3ce3b0,_0x5c2d16){return _0x5c8d9f(_0x3ce3b0- -0x30a,_0x5c2d16);}function _0x229dce(_0x1422b3,_0x146598){return _0x5c8d9f(_0x146598- -0x402,_0x1422b3);}return _0x49d651[_0x229dce(0x6c,0x99)][_0x229dce(0xb6,0xb4)];},'aspect':function(){function _0x2382bd(_0x4c40c4,_0x11e164){return _0x5c8d9f(_0x11e164- -0x7a7,_0x4c40c4);}return _0x424cb3['drawingBufferWidth']/_0x424cb3[_0x2382bd(-0x33f,-0x357)];},'H':function(){return _0x5563de['H']['array'];},'hRange':function(){function _0x6300b8(_0x46d1bb,_0x13495e){return _0x5c8d9f(_0x46d1bb- -0x4d9,_0x13495e);}function _0x20c1c2(_0x4b7b40,_0x5b7d3a){return _0x54f1e9(_0x4b7b40- -0x62e,_0x5b7d3a);}return new Cesium$4[(_0x6300b8(-0x24,0x4f))](_0x5563de['H']['min'],_0x5563de['H'][_0x6300b8(0x5e,0x55)]);},'uSpeedRange':function(){function _0x22ce48(_0x341eb1,_0x12dc97){return _0x5c8d9f(_0x341eb1- -0x668,_0x12dc97);}return new Cesium$4[(_0x22ce48(-0x1b3,-0x1c2))](_0x5563de['U']['min'],_0x5563de['U']['max']);},'vSpeedRange':function(){return new Cesium$4['Cartesian2'](_0x5563de['V']['min'],_0x5563de['V']['max']);},'wSpeedRange':function(){function _0x28fca6(_0x20265b,_0x23e812){return _0x5c8d9f(_0x20265b- -0x36f,_0x23e812);}return new Cesium$4['Cartesian2'](_0x5563de['W']['min'],_0x5563de['W'][_0x28fca6(0x1c8,0x17e)]);},'pixelSize':function(){function _0x28dbbc(_0x1d5099,_0x4d6b13){return _0x54f1e9(_0x1d5099- -0x441,_0x4d6b13);}return _0x8015a5[_0x28dbbc(-0xf5,-0x164)];},'lineWidth':function(){return _0x2d45f1['lineWidth'];},'particleHeight':function(){return _0x2d45f1['particleHeight'];},'colour':function(){function _0x1169b7(_0x117687,_0x4d6015){return _0x54f1e9(_0x117687- -0x554,_0x4d6015);}return _0x49d651[_0x1169b7(-0x1c1,-0x1a4)];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x35e51d),'fragmentShaderSource':new Cesium$4[(_0x5c8d9f(0x559,0x588))](_0xc1a7de),'rawRenderState':Util['createRawRenderState'](_0x54db63),'framebuffer':this['framebuffers'][_0x5c8d9f(0x483,0x4de)],'autoClear':!![]}),'trails':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x42ea60,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType'][_0x5c8d9f(0x531,0x4a7)],'uniformMap':{'segmentsColorTexture':function(){function _0x577ee6(_0x201ef8,_0x4d3088){return _0x54f1e9(_0x201ef8-0xc,_0x4d3088);}return _0x49d651['textures'][_0x577ee6(0x3a5,0x376)];},'segmentsDepthTexture':function(){function _0x52e749(_0x5a6f8a,_0x58b1f5){return _0x54f1e9(_0x58b1f5- -0x47d,_0x5a6f8a);}return _0x49d651['textures'][_0x52e749(-0x4d,-0x66)];},'currentTrailsColor':function(){function _0x508b80(_0x1657ac,_0x5c25a9){return _0x5c8d9f(_0x1657ac- -0x545,_0x5c25a9);}return _0x49d651[_0x508b80(-0x53,0xf)]['currentTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0x19e406(_0x2acca4,_0x17c444){return _0x54f1e9(_0x17c444- -0x3,_0x2acca4);}return _0x49d651['framebuffers'][_0x19e406(0x3c0,0x32a)]['depthTexture'];},'fadeOpacity':function(){return _0x2d45f1['fadeOpacity'];}},'vertexShaderSource':new Cesium$4['ShaderSource'](_0x116b95),'fragmentShaderSource':new Cesium$4['ShaderSource'](_0x2989b1),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':{'enabled':!![],'func':Cesium$4['DepthFunction']['ALWAYS']},'depthMask':!![]}),'framebuffer':this[_0x54f1e9(0x3b3,0x3aa)][_0x54f1e9(0x326,0x3b2)],'autoClear':!![],'preExecute':function(){if(_0x2d45f1['dynamic']){const _0x250e09=_0x49d651[_0x1170e7(0x396,0x312)]['currentTrails'];_0x49d651['framebuffers'][_0x42514b(0x30b,0x2af)]=_0x49d651[_0x1170e7(0x396,0x3fa)]['nextTrails'],_0x49d651['framebuffers']['nextTrails']=_0x250e09;}_0x49d651['primitives'][_0x1170e7(0x3ac,0x3ab)][_0x1170e7(0x33a,0x38c)]['framebuffer']=_0x49d651['framebuffers']['nextTrails'];function _0x1170e7(_0x38072b,_0x4bbcdb){return _0x5c8d9f(_0x38072b- -0x15c,_0x4bbcdb);}function _0x42514b(_0x1c2715,_0x4b2103){return _0x54f1e9(_0x1c2715- -0x22,_0x4b2103);}_0x49d651[_0x42514b(0x386,0x307)]['trails'][_0x42514b(0x3e7,0x449)]['framebuffer']=_0x49d651[_0x1170e7(0x396,0x3f0)][_0x1170e7(0x309,0x2fc)];}}),'screen':new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x4001c6,'geometry':Util['getFullscreenQuad'](),'primitiveType':Cesium$4['PrimitiveType']['TRIANGLES'],'uniformMap':{'trailsColorTexture':function(){return _0x49d651['framebuffers']['nextTrails']['getColorTexture'](0x0);},'trailsDepthTexture':function(){function _0xfdc065(_0x1ff63b,_0x5ba7b7){return _0x5c8d9f(_0x5ba7b7- -0x4fd,_0x1ff63b);}function _0x396819(_0x2dd269,_0x378e7a){return _0x5c8d9f(_0x2dd269- -0x48,_0x378e7a);}return _0x49d651[_0xfdc065(-0x2c,-0xb)][_0xfdc065(-0xe4,-0x98)]['depthTexture'];}},'vertexShaderSource':new Cesium$4[(_0x5c8d9f(0x559,0x5cf))](_0x21c9c9),'fragmentShaderSource':new Cesium$4[(_0x5c8d9f(0x559,0x56f))](_0x596d42),'rawRenderState':Util['createRawRenderState']({'viewport':undefined,'depthTest':_0x5c4d59,'depthMask':!![],'blending':_0x5abb4f}),'framebuffer':undefined})};}}var CalculateSpeedShader=_0x2962c5(0x32,-0x17),PostProcessingPositionShader=_0x2962c5(-0x29,-0x7),UpdatePositionShader=_0x59248e(0x338,0x350);const Cesium$3=mars3d__namespace[_0x59248e(0x454,0x4d7)];class ParticlesComputing{constructor(_0x5871ab,_0x344d1a,_0x6581b1,_0x4766b0){this[_0xae8bd4(0x40c,0x478)]=_0x344d1a,this['createWindTextures'](_0x5871ab,_0x344d1a),this['createParticlesTextures'](_0x5871ab,_0x6581b1,_0x4766b0);function _0xae8bd4(_0x55888e,_0x84c85b){return _0x59248e(_0x84c85b-0x122,_0x55888e);}this['createComputingPrimitives'](_0x344d1a,_0x6581b1,_0x4766b0);}['createWindTextures'](_0x133cc9,_0x4e12f5){function _0x3b52d3(_0x2d0e17,_0x334485){return _0x2962c5(_0x334485,_0x2d0e17- -0x1b6);}var _0x125909;const _0x3870f9={'context':_0x133cc9,'width':_0x4e12f5[_0x3b52d3(-0x1f8,-0x25e)]['lon'],'height':_0x4e12f5['dimensions']['lat']*(_0x4e12f5['dimensions']['lev']||0x1),'pixelFormat':Cesium$3['PixelFormat'][_0xbdbce9(0x5,-0x2f)],'pixelDatatype':Cesium$3[_0xbdbce9(-0x90,-0x34)]['FLOAT'],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3[_0x3b52d3(-0x23f,-0x214)]['NEAREST'],'magnificationFilter':Cesium$3['TextureMagnificationFilter']['NEAREST']})};function _0xbdbce9(_0x21cefe,_0x3554bb){return _0x2962c5(_0x21cefe,_0x3554bb-0x64);}this[_0x3b52d3(-0x1df,-0x21a)]={'U':Util[_0xbdbce9(0x74,0x34)](_0x3870f9,_0x4e12f5['U'][_0xbdbce9(0x136,0xb1)]),'V':Util['createTexture'](_0x3870f9,_0x4e12f5['V']['array']),'W':Util['createTexture'](_0x3870f9,((_0x125909=_0x4e12f5['W'])===null||_0x125909===void 0x0?void 0x0:_0x125909['array'])??_0x4e12f5['U']['array']),'H':Util['createTexture'](_0x3870f9,_0x4e12f5['H'][_0x3b52d3(-0x169,-0x184)])};}[_0x59248e(0x449,0x44a)](_0x1c1c37,_0x4dc917,_0x1eda30){const _0x266781={'context':_0x1c1c37,'width':_0x4dc917[_0x2433ef(0x278,0x1ef)],'height':_0x4dc917['particlesTextureSize'],'pixelFormat':Cesium$3['PixelFormat']['RGBA'],'pixelDatatype':Cesium$3['PixelDatatype'][_0x2433ef(0x320,0x34a)],'flipY':![],'sampler':new Cesium$3['Sampler']({'minificationFilter':Cesium$3[_0x2433ef(0x224,0x2b0)]['NEAREST'],'magnificationFilter':Cesium$3[_0x45fe8a(0x5,-0x55)]['NEAREST']})},_0x438506=this[_0x2433ef(0x261,0x1ee)](_0x4dc917['maxParticles'],_0x1eda30),_0x50031b=new Float32Array(0x4*_0x4dc917['maxParticles'])['fill'](0x0);function _0x2433ef(_0x297479,_0xb8a768){return _0x2962c5(_0xb8a768,_0x297479-0x2ad);}function _0x45fe8a(_0x1fb84d,_0x17e88d){return _0x2962c5(_0x17e88d,_0x1fb84d-0x48);}this['particlesTextures']={'previousParticlesPosition':Util[_0x45fe8a(0x18,-0x2e)](_0x266781,_0x438506),'currentParticlesPosition':Util['createTexture'](_0x266781,_0x438506),'nextParticlesPosition':Util[_0x45fe8a(0x18,-0x6b)](_0x266781,_0x438506),'postProcessingPosition':Util[_0x45fe8a(0x18,-0x1e)](_0x266781,_0x438506),'particlesSpeed':Util['createTexture'](_0x266781,_0x50031b)};}['randomizeParticles'](_0x1b8497,_0x1ae311){const _0x33f202=new Float32Array(0x4*_0x1b8497);function _0x3acb1d(_0x3051f0,_0x329044){return _0x59248e(_0x329044- -0x9d,_0x3051f0);}function _0x30368d(_0x2a9f92,_0x27f6c9){return _0x2962c5(_0x27f6c9,_0x2a9f92-0x4f7);}for(let _0xab52fc=0x0;_0xab52fc<_0x1b8497;_0xab52fc++){_0x33f202[0x4*_0xab52fc]=Cesium$3['Math'][_0x3acb1d(0x2f9,0x32a)](_0x1ae311['lonRange']['x'],_0x1ae311[_0x3acb1d(0x319,0x331)]['y']),_0x33f202[0x4*_0xab52fc+0x1]=Cesium$3['Math'][_0x3acb1d(0x2fc,0x32a)](_0x1ae311[_0x30368d(0x521,0x4fb)]['x'],_0x1ae311['latRange']['y']),_0x33f202[0x4*_0xab52fc+0x2]=Cesium$3['Math']['randomBetween'](this['data']['lev'][_0x30368d(0x481,0x410)],this[_0x3acb1d(0x2ad,0x2b9)]['lev'][_0x3acb1d(0x388,0x38e)]),_0x33f202[0x4*_0xab52fc+0x3]=0x0;}return _0x33f202;}['getValidRange'](_0x4a8bb7){const _0x58992f=[_0x4a8bb7['dimensions']['lon'],_0x4a8bb7[_0x1521e1(0x375,0x3e5)]['lat'],_0x4a8bb7['dimensions'][_0x34bb27(0x152,0x15a)]],_0x447d26=[_0x4a8bb7[_0x34bb27(0x20e,0x2a4)]['min'],_0x4a8bb7[_0x1521e1(0x40b,0x45d)]['min'],_0x4a8bb7[_0x34bb27(0x152,0x119)][_0x1521e1(0x33b,0x3b1)]],_0x5334e9=[_0x4a8bb7['lon'][_0x1521e1(0x4e4,0x47e)],_0x4a8bb7['lat']['max'],_0x4a8bb7['lev']['max']],_0x488ea8=[(_0x5334e9[0x0]-_0x447d26[0x0])/(_0x58992f[0x0]-0x1),(_0x5334e9[0x1]-_0x447d26[0x1])/(_0x58992f[0x1]-0x1),_0x58992f[0x2]>0x1?(_0x5334e9[0x2]-_0x447d26[0x2])/(_0x58992f[0x2]-0x1):0x1];function _0x34bb27(_0x41ac6c,_0x4b471e){return _0x2962c5(_0x4b471e,_0x41ac6c-0x1d2);}const _0x4cdb75=Math['floor'](Math[_0x1521e1(0x363,0x3a4)]()*_0x4a8bb7['U']['array']['length']),_0x3b899c=_0x4cdb75%(_0x58992f[0x0]*_0x58992f[0x1]),_0x4ab6dd=Math['floor'](_0x3b899c/_0x58992f[0x0]),_0x539fb9=_0x3b899c%_0x58992f[0x0],_0x294e17=Cesium$3[_0x1521e1(0x458,0x488)]['randomBetween'](_0x447d26[0x0]+_0x539fb9*_0x488ea8[0x0],_0x447d26[0x0]+(_0x539fb9+0x1)*_0x488ea8[0x0]),_0xfc63a4=Cesium$3[_0x1521e1(0x4d9,0x488)]['randomBetween'](_0x447d26[0x1]+(_0x4ab6dd-0x1)*_0x488ea8[0x1],_0x447d26[0x1]+_0x4ab6dd*_0x488ea8[0x1]),_0x5b6e5a=_0x4a8bb7['H']['array'][_0x4cdb75]||0x0;function _0x1521e1(_0x2d9708,_0x4265bb){return _0x59248e(_0x4265bb-0x53,_0x2d9708);}return[_0x294e17,_0xfc63a4,_0x5b6e5a];}[_0x59248e(0x3da,0x386)](){function _0x1d9984(_0x32b9f7,_0x54d35f){return _0x59248e(_0x32b9f7- -0x2c6,_0x54d35f);}function _0x413e41(_0x38af4d,_0x2efecf){return _0x59248e(_0x2efecf- -0x354,_0x38af4d);}Object[_0x413e41(0x70,0x71)](this[_0x413e41(-0x15,-0x21)])['forEach'](_0x573d32=>{function _0x4b2491(_0x5bf0ce,_0x4ed405){return _0x1d9984(_0x4ed405-0x356,_0x5bf0ce);}function _0xbc1d2c(_0x3b0b48,_0x2d690a){return _0x1d9984(_0x3b0b48-0x38d,_0x2d690a);}this[_0x4b2491(0x3b7,0x3c3)][_0x573d32][_0x4b2491(0x54a,0x4c0)]();});}['createComputingPrimitives'](_0x4f531c,_0x51d3dd,_0x16ae54){const _0x2b9222=new Cesium$3['Cartesian3'](_0x4f531c[_0x4ea85b(0x1fb,0x272)][_0x495f24(-0x33,0x4a)],_0x4f531c['dimensions']['lat'],_0x4f531c['dimensions']['lev']),_0xa219ad=new Cesium$3[(_0x4ea85b(0x34a,0x2f7))](_0x4f531c['lon']['min'],_0x4f531c['lat'][_0x4ea85b(0x223,0x23e)],_0x4f531c[_0x4ea85b(0x244,0x234)]['min']),_0x57858f=new Cesium$3['Cartesian3'](_0x4f531c['lon']['max'],_0x4f531c[_0x4ea85b(0x35f,0x2ea)][_0x495f24(0x9d,0x65)],_0x4f531c['lev']['max']),_0x3889d0=new Cesium$3['Cartesian3']((_0x57858f['x']-_0xa219ad['x'])/(_0x2b9222['x']-0x1),(_0x57858f['y']-_0xa219ad['y'])/(_0x2b9222['y']-0x1),_0x2b9222['z']>0x1?(_0x57858f['z']-_0xa219ad['z'])/(_0x2b9222['z']-0x1):0x1),_0x2a00dd=new Cesium$3[(_0x495f24(-0xa1,-0x1d))](_0x4f531c[_0x495f24(0x93,0x4a)]['min'],_0x4f531c[_0x4ea85b(0x2a0,0x2f0)]['max']),_0x4c5e42=new Cesium$3[(_0x4ea85b(0x216,0x289))](_0x4f531c['lat']['min'],_0x4f531c['lat'][_0x4ea85b(0x397,0x30b)]),_0x10c939=new Cesium$3[(_0x4ea85b(0x2c6,0x289))](_0x4f531c['U'][_0x4ea85b(0x255,0x23e)],_0x4f531c['U']['max']),_0xf4998=new Cesium$3['Cartesian2'](_0x4f531c['V']['min'],_0x4f531c['V']['max']),_0x1763d5=new Cesium$3['Cartesian2'](_0x4f531c['W']['min'],_0x4f531c['W']['max']),_0x3eee87=this,_0xfbff00={};_0xfbff00['U']=function(){function _0x576b74(_0x2d802c,_0x1ac3e2){return _0x4ea85b(_0x1ac3e2,_0x2d802c- -0x25b);}return _0x3eee87[_0x576b74(0x30,0xbb)]['U'];},_0xfbff00['V']=function(){return _0x3eee87['windTextures']['V'];},_0xfbff00['W']=function(){return _0x3eee87['windTextures']['W'];},_0xfbff00[_0x4ea85b(0x287,0x21e)]=function(){return _0x3eee87['particlesTextures']['currentParticlesPosition'];},_0xfbff00['dimension']=function(){return _0x2b9222;},_0xfbff00[_0x495f24(0x36,-0x8)]=function(){return _0xa219ad;},_0xfbff00['maximum']=function(){return _0x57858f;},_0xfbff00['interval']=function(){return _0x3889d0;},_0xfbff00[_0x495f24(0x7b,0x24)]=function(){return _0x10c939;},_0xfbff00['vSpeedRange']=function(){return _0xf4998;};function _0x495f24(_0x3f48ec,_0x3b56b8){return _0x59248e(_0x3b56b8- -0x3c6,_0x3f48ec);}_0xfbff00['wSpeedRange']=function(){return _0x1763d5;},_0xfbff00[_0x4ea85b(0x29f,0x260)]=function(){return _0x16ae54['pixelSize']*_0x51d3dd['speedFactor'];};const _0xb150a1={};_0xb150a1[_0x495f24(0x7a,0x16)]=[CalculateSpeedShader];const _0x5a4731={};_0x5a4731['sources']=[UpdatePositionShader];const _0x236ff6={};function _0x4ea85b(_0x231d2a,_0x1806db){return _0x2962c5(_0x231d2a,_0x1806db-0x2b4);}_0x236ff6['sources']=[PostProcessingPositionShader],this[_0x4ea85b(0x2b3,0x2bb)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':_0xfbff00,'fragmentShaderSource':new Cesium$3['ShaderSource'](_0xb150a1),'outputTexture':this['particlesTextures'][_0x495f24(-0x11,-0x30)],'preExecute':function(){function _0x29e02d(_0x5e47e1,_0x3d615c){return _0x4ea85b(_0x3d615c,_0x5e47e1-0x16e);}if(_0x51d3dd!==undefined&&_0x51d3dd['dynamic']){const _0x4aae0d=_0x3eee87['particlesTextures'][_0x29e02d(0x46c,0x3f5)];_0x3eee87['particlesTextures'][_0x21cc81(0xd8,0x99)]=_0x3eee87['particlesTextures']['currentParticlesPosition'],_0x3eee87['particlesTextures']['currentParticlesPosition']=_0x3eee87[_0x29e02d(0x381,0x31f)][_0x21cc81(-0x73,-0x48)],_0x3eee87[_0x21cc81(-0x35,-0x52)]['postProcessingPosition']=_0x4aae0d;}function _0x21cc81(_0x1db869,_0x395f98){return _0x4ea85b(_0x1db869,_0x395f98- -0x265);}_0x3eee87['primitives']['calculateSpeed']['commandToExecute']['outputTexture']=_0x3eee87[_0x29e02d(0x381,0x398)]['particlesSpeed'];}}),'updatePosition':new CustomPrimitive({'commandType':_0x495f24(0x98,0x28),'uniformMap':{'currentParticlesPosition':function(){function _0x26e6c7(_0x378b15,_0x4e3665){return _0x4ea85b(_0x378b15,_0x4e3665-0x5d);}return _0x3eee87[_0x26e6c7(0x1f2,0x270)]['currentParticlesPosition'];},'particlesSpeed':function(){function _0x40c7f2(_0xd03a58,_0x18c7ba){return _0x4ea85b(_0x18c7ba,_0xd03a58- -0x223);}return _0x3eee87['particlesTextures'][_0x40c7f2(0x53,0xe6)];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x5a4731),'outputTexture':this[_0x4ea85b(0x25b,0x213)]['nextParticlesPosition'],'preExecute':function(){function _0x171e2b(_0x1a970d,_0x207ed3){return _0x495f24(_0x1a970d,_0x207ed3- -0x78);}function _0x5152f1(_0x318b2d,_0x4c951e){return _0x4ea85b(_0x318b2d,_0x4c951e- -0x349);}_0x3eee87['primitives']['updatePosition'][_0x171e2b(-0xbb,-0xb4)]['outputTexture']=_0x3eee87[_0x5152f1(-0x176,-0x136)][_0x5152f1(-0x8b,-0x112)];}}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x4ea85b(0x319,0x2ce),'uniformMap':{'nextParticlesPosition':function(){function _0x38c264(_0x18260e,_0x46cfaf){return _0x495f24(_0x46cfaf,_0x18260e-0x2a7);}return _0x3eee87[_0x38c264(0x214,0x1b8)]['nextParticlesPosition'];},'particlesSpeed':function(){return _0x3eee87['particlesTextures']['particlesSpeed'];},'viewerLonRange':function(){function _0x5bca13(_0x28d084,_0x415f60){return _0x4ea85b(_0x28d084,_0x415f60- -0x522);}return _0x16ae54[_0x5bca13(-0x221,-0x274)];},'viewerLatRange':function(){return _0x16ae54['latRange'];},'lonRange':function(){return _0x2a00dd;},'latRange':function(){return _0x4c5e42;},'dimension':function(){return _0x2b9222;},'minimum':function(){return _0xa219ad;},'maximum':function(){return _0x57858f;},'interval':function(){return _0x3889d0;},'H':function(){return _0x3eee87['windTextures']['H'];},'randomCoefficient':function(){const _0x3c7718=Math['random']();return _0x3c7718;},'dropRate':function(){return _0x51d3dd['dropRate'];},'dropRateBump':function(){return _0x51d3dd['dropRateBump'];}},'fragmentShaderSource':new Cesium$3['ShaderSource'](_0x236ff6),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':function(){function _0xd54d22(_0x1840cd,_0x5ae3cd){return _0x495f24(_0x1840cd,_0x5ae3cd-0x3a6);}function _0x530018(_0x39d5fc,_0x214f26){return _0x495f24(_0x214f26,_0x39d5fc-0x3f2);}_0x3eee87[_0xd54d22(0x371,0x3bb)]['postProcessingPosition'][_0xd54d22(0x3e3,0x36a)][_0xd54d22(0x38d,0x380)]=_0x3eee87[_0xd54d22(0x353,0x313)][_0xd54d22(0x28c,0x31d)];}})};}}function _0x15da(){const _0x3d1fbe=['SceneMode','_animateFrame','lng','particlesTextures','fromDegrees','canvas','show','CanvasWindLayer','#version\x20300\x20es\x0a\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20norm)\x20Unit\x20converted\x20to\x20degrees\x20of\x20longitude\x20and\x20latitude\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20speed;\x0a\x20\x20if(length(speed.rgb)\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(0.0f);\x0a\x20\x20}\x0a}\x0a','camera','PrimitiveCollection','114362FwoITh','PixelDatatype','postProcessingPosition','currentParticlesPosition','setGeometry','maxAge','RED','updateViewerParameters','geometry','drawingBufferHeight','mouseHidden','setData','globalCompositeOperation','92324xmSCPI','commandType','atan2','TextureMinificationFilter','rectangle','preRender','rgb(206,255,255)','mod','Appearance','random','_onMap_preRenderEvent','OPAQUE','lev','blending','data','nextParticlesPosition','2565iLdahb','nextTrails','container','mode','pointer-events','_canrefresh','min','RGBA','currentTrails','remove','moveTo','execute','BufferUsage','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','zIndex','fragmentShaderSource','left','Ellipsoid','Rectangle','_onMouseDownEvent','stroke','createRenderingTextures','removeAll','dropRateBump','_drawLines','WGS84','dynamic','maxParticles','clientWidth','_updateIng2','getDefaultRenderState','segments','wind','_calcUV','umin','onmessage','update','255010UYvZFV','LayerUtil','pixelSize','speedScaleFactor','resize','fillRect','colorTextures','mouse_down','STATIC_DRAW','pixelDatatype','auto','randomizeParticles','LINEAR','commandToExecute','_onMapWhellEvent','vertexShaderSource','type','__esModule','textures','Pass','TextureMagnificationFilter','dimensions','all','6FbrTRW','color','particlesSpeed','normal','Matrix4','_calc_speedRate','depthTest','sqrt','default','off','particlesComputing','particlesTextureSize','outputTexture','floor','red','viewRectangleToLonLatRange','createTexture','alt','frameTime','particles','context','Cartesian2','colorTable','windTextures','viewport','ymax','mouse_move','sin','framebuffer','computeViewRectangle','WindLayer','fixedHeight','setOptions','add','_onMouseUpEvent','toRadians','EventType','PointTrans','attributeLocations','ShaderProgram','colors','#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20W;\x20//\x20upward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20vec2\x20wSpeedRange;\x0auniform\x20float\x20speedScaleFactor;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLatLev.x\x20=\x20clamp(lonLatLev.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20minimum.y,\x20maximum.y);\x0a\x20\x20lonLatLev.z\x20=\x20clamp(lonLatLev.z,\x20minimum.z,\x20maximum.z);\x0a\x0a\x20\x20vec3\x20index3D\x20=\x20vec3(0.0f);\x0a\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20//\x20map\x20the\x20z-axis\x20value\x20to\x20the\x20nearest\x20bit\x20plane\x20to\x20ensure\x20that\x20the\x20result\x20is\x20an\x20integer\x0a\x20\x20index3D.z\x20=\x20ceil((lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z);\x0a\x0a\x20\x20\x20\x20//\x20the\x20st\x20texture\x20coordinate\x20corresponding\x20to\x20(col,\x20row)\x20index\x0a\x20\x20\x20\x20//\x20example\x0a\x20\x20\x20\x20//\x20data\x20array\x20is\x20[0,\x201,\x202,\x203,\x204,\x205,\x207,\x208,\x209],\x20width\x20=\x202,\x20height\x20=\x202,\x20level\x20=\x202\x0a\x20\x20\x20\x20//\x20the\x20content\x20of\x20texture\x20will\x20be\x0a\x20\x20\x20\x20//\x20t\x201.0\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x206\x207\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x202\x203\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0afloat\x20interpolateTexture(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x201.0f\x20*\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x201.0f\x20*\x20interval.y;\x0a\x0a\x20\x20float\x20lon0_lat0\x20=\x20getWindComponent(componentTexture,\x20vec3(lon0,\x20lat0,\x20lev));\x0a\x20\x20float\x20lon1_lat0\x20=\x20getWindComponent(componentTexture,\x20vec3(lon1,\x20lat0,\x20lev));\x0a\x20\x20float\x20lon0_lat1\x20=\x20getWindComponent(componentTexture,\x20vec3(lon0,\x20lat1,\x20lev));\x0a\x20\x20float\x20lon1_lat1\x20=\x20getWindComponent(componentTexture,\x20vec3(lon1,\x20lat1,\x20lev));\x0a\x0a\x20\x20float\x20lon_lat0\x20=\x20mix(lon0_lat0,\x20lon1_lat0,\x20lon\x20-\x20lon0);\x0a\x20\x20float\x20lon_lat1\x20=\x20mix(lon0_lat1,\x20lon1_lat1,\x20lon\x20-\x20lon0);\x0a\x20\x20float\x20lon_lat\x20=\x20mix(lon_lat0,\x20lon_lat1,\x20lat\x20-\x20lat0);\x0a\x20\x20return\x20lon_lat;\x0a}\x0a\x0avec3\x20linearInterpolation(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bilinear_interpolation\x0a\x20\x20float\x20u\x20=\x20interpolateTexture(U,\x20lonLatLev);\x0a\x20\x20float\x20v\x20=\x20interpolateTexture(V,\x20lonLatLev);\x0a\x20\x20float\x20w\x20=\x20interpolateTexture(W,\x20lonLatLev);\x0a\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec3\x20convertSpeedUnitToLonLat(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20float\x20w\x20=\x20speed.z;\x0a\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20return\x20windVectorInLonLatLev;\x0a}\x0a\x0avec3\x20calculateSpeedByRungeKutta2(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec3\x20y_n\x20=\x20lonLatLev;\x0a\x20\x20vec3\x20f_n\x20=\x20linearInterpolation(lonLatLev);\x0a\x20\x20vec3\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec3\x20speed\x20=\x20h\x20*\x20linearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20getRange(vec2\x20range)\x20{\x0a\x20\x20float\x20x1\x20=\x200.0f\x20-\x20range.x;\x0a\x20\x20float\x20x2\x20=\x20range.y\x20-\x200.0f;\x0a\x20\x20if(x1\x20<\x200.0f\x20||\x20x2\x20<\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(abs(x1),\x20abs(x2));\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x20abs(max(x1,\x20x2)));\x0a\x20\x20}\x0a}\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20vec3\x20percent\x20=\x20vec3(0.0f);\x0a\x20\x20vec2\x20uRange\x20=\x20getRange(uSpeedRange);\x0a\x20\x20vec2\x20vRange\x20=\x20getRange(vSpeedRange);\x0a\x20\x20vec2\x20wRange\x20=\x20getRange(wSpeedRange);\x0a\x20\x20if(length(speed.xyz)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x200.0f;\x0a\x20\x20}\x0a\x0a\x20\x20percent.x\x20=\x20(abs(speed.x)\x20-\x20uRange.x)\x20/\x20(uRange.y\x20-\x20uRange.x);\x0a\x20\x20percent.y\x20=\x20(abs(speed.y)\x20-\x20vRange.x)\x20/\x20(vRange.y\x20-\x20vRange.x);\x0a\x20\x20if(wSpeedRange.y\x20==\x20wSpeedRange.x)\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x200.0f;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x20(abs(speed.z)\x20-\x20wRange.x)\x20/\x20(wRange.y\x20-\x20wRange.x);\x0a\x20\x20}\x0a\x20\x20float\x20norm\x20=\x20length(percent);\x0a\x0a\x20\x20return\x20norm;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec3\x20lonLatLev\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec3\x20speedOrigin\x20=\x20linearInterpolation(lonLatLev);\x0a\x20\x20vec3\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLatLev);\x0a\x20\x20vec3\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLatLev,\x20speed);\x0a\x0a\x20\x20vec4\x20particleSpeed\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speed\x20/\x20speedScaleFactor));\x0a\x20\x20\x20\x20//\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a','minimum','particleSystem','udata','GeometryAttributes','PI_OVER_TWO','0px','_onMouseMoveEvent','keys','colour','randomBetween','getFullscreenQuad','vdata','bindEvent','_removedHook','segmentsColor','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20norm)\x0a\x0auniform\x20sampler2D\x20H;\x20//\x20particles\x20height\x20textures\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0auniform\x20vec2\x20viewerLonRange;\x0auniform\x20vec2\x20viewerLatRange;\x0a\x0aconst\x20float\x20randomCoefficient\x20=\x200.1f;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0aconst\x20float\x20dropRate\x20=\x200.1f;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0aconst\x20float\x20dropRateBump\x20=\x200.1f;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLatLev.x\x20=\x20clamp(lonLatLev.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20minimum.y,\x20maximum.y);\x0a\x20\x20lonLatLev.z\x20=\x20clamp(lonLatLev.z,\x20minimum.z,\x20maximum.z);\x0a\x0a\x20\x20vec3\x20index3D\x20=\x20vec3(0.0f);\x0a\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20index3D.z\x20=\x20ceil((lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0avec4\x20getTextureValue(sampler2D\x20componentTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20vec4\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D);\x0a\x20\x20return\x20result;\x0a}\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0abool\x20particleNoSpeed(vec3\x20particle)\x20{\x0a\x20\x20vec4\x20speed\x20=\x20getTextureValue(particlesSpeed,\x20particle);\x0a\x20\x20return\x20speed.r\x20==\x200.0f\x20&&\x20speed.g\x20==\x200.0f;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0f);\x0a\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20float\x20height\x20=\x20getTextureValue(H,\x20vec3(randomLon,\x20randomLat,\x20lev)).r;\x0a\x0a\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20height);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20viewerLatRange.x\x20||\x20particle.y\x20>\x20viewerLatRange.y\x20||\x20particle.x\x20<\x20viewerLonRange.x\x20||\x20particle.x\x20>\x20viewerLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec3\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f);\x0a\x20\x20}\x0a}\x0a','lonRange','age','viewerParameters','particlesRendering','height','980040prHpxa','Texture','1627524ouXRgY','isDestroy','ComponentDatatype','unbindEvent','uniformMap','destroyParticlesTextures','primitives','sources','_map','_colorRamp','clientHeight','_maxAge','once','addPrimitives','windData','Sampler','width','framebuffers','depthTexture','scene','8300jUnDlo','uSpeedRange','createSegmentsGeometry','options','speed','Compute','windField','autoClear','RGB','refreshTimer','levmax','defined','speedRate','calculateSpeed','xmax','ymin','410056axWQWu','visibility','worker','trails','canvasWidth','latRange','clearFramebuffers','globe','tlng','BoundingSphere','_setOptionsHook','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20lines\x20drawing\x0ain\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0auniform\x20vec2\x20hRange;\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20vec2\x20wSpeedRange;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0aout\x20float\x20heightNormalization;\x0aout\x20float\x20speedNormalization;\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight\x20+\x20lonLatLev.z;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0f,\x20360.0f)\x20-\x20180.0f;\x0a\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0f;\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20vec3\x20percent\x20=\x20vec3(0.0f);\x0a\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20if(wSpeedRange.y\x20==\x20wSpeedRange.x)\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x200.0f;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20percent.z\x20=\x20(speed.z\x20-\x20wSpeedRange.x)\x20/\x20(wSpeedRange.y\x20-\x20wSpeedRange.x);\x0a\x20\x20}\x0a\x20\x20float\x20norm\x20=\x20length(percent);\x0a\x0a\x20\x20return\x20norm;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20vec3\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20vec3\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20vec3\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rgb;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x20\x20\x20\x20//\x20render\x20lines\x20with\x20triangles\x20and\x20miter\x20joint\x0a\x20\x20\x20\x20//\x20read\x20https://blog.scottlogic.com/2019/11/18/drawing-lines-with-webgl.html\x20for\x20detail\x0a\x20\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20projectedCoordinates.next,\x20offsetSign);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.next\x20+\x20offset;\x0a\x20\x20}\x0a\x0a\x20\x20heightNormalization\x20=\x20(currentPosition.z\x20-\x20hRange.x)\x20/\x20(hRange.y\x20-\x20hRange.x);\x0a\x0a\x20\x20speedNormalization\x20=\x20texture(particlesSpeed,\x20particleIndex).a;\x0a}\x0a','grid','wheel','blue','tlat','canvasContext','lat','arrayBufferView','GeometryAttribute','getContext','fromCache','vmax','lon','createFramebuffer','hidden','EllipsoidalOccluder','positionWC','getParticles','mouseMove','Cartesian3','Draw','pow','PixelFormat','rows','__proto__','_randomParticle','previousParticlesPosition','setDate','layer','array','currentTrailsDepth','length','refreshParticles','TRIANGLES','push','_pointerEvents','_speedRate','preExecute','removeEventListener','max','_tomap','vertexArray','ellipsoid','xmin','destroy','clear','shaderProgram','defines','pointerEvents','Math','canvasHeight','visible','cancelAnimationFrame','SCENE3D','drawingBufferWidth','getU','clearCommand','destination-in','VertexArray','mouseDown','createRawRenderState','_bilinearInterpolation','toDegrees','_data','enabled','21kpmXeW','_addedHook','FLOAT','destroyObject','createParticlesTextures','segmentsDepth','getUVByXY','abs','ShaderSource','create','nextTrailsDepth','particlesNumber','mouseUp','green','persists','Cesium','beginPath','lineWidth','TWO_PI','BaseLayer','redraw','style','_updateIng'];_0x15da=function(){return _0x3d1fbe;};return _0x15da();}const Cesium$2=mars3d__namespace[_0x2962c5(0x1a,0x80)];class ParticleSystem{constructor(_0x24e638,_0xb167cb,_0x5070af,_0xb9464){function _0x12affe(_0x5a6ecf,_0x2679a1){return _0x2962c5(_0x5a6ecf,_0x2679a1- -0x96);}this['context']=_0x24e638,_0xb167cb={..._0xb167cb};_0xb167cb['udata']&&_0xb167cb[_0x38827a(0x402,0x3dc)]&&(_0xb167cb[_0x12affe(-0xe3,-0xd8)]={},_0xb167cb[_0x38827a(0x329,0x3a5)]['lon']=_0xb167cb['cols'],_0xb167cb['dimensions'][_0x12affe(-0x2f,-0x60)]=_0xb167cb['rows'],_0xb167cb['dimensions'][_0x38827a(0x34e,0x367)]=_0xb167cb['lev']||0x1,_0xb167cb[_0x12affe(-0xed,-0x5a)]={},_0xb167cb['lon']['min']=_0xb167cb[_0x38827a(0x40a,0x442)],_0xb167cb['lon']['max']=_0xb167cb['xmax'],_0xb167cb[_0x12affe(-0xbd,-0x60)]={},_0xb167cb[_0x38827a(0x3dc,0x41d)][_0x12affe(-0xa7,-0x10c)]=_0xb167cb[_0x12affe(-0x99,-0x72)],_0xb167cb['lat'][_0x12affe(-0x2f,-0x3f)]=_0xb167cb[_0x38827a(0x392,0x3c0)],_0xb167cb['lev']={},_0xb167cb['lev']['min']=_0xb167cb['levmin']??0x1,_0xb167cb['lev'][_0x12affe(-0x1b,-0x3f)]=_0xb167cb[_0x38827a(0x3d1,0x406)]??0x1,_0xb167cb['U']={},_0xb167cb['U']['array']=new Float32Array(_0xb167cb['udata']),_0xb167cb['U'][_0x12affe(-0xda,-0x10c)]=_0xb167cb[_0x38827a(0x3e7,0x38d)]??Math['min'](..._0xb167cb[_0x38827a(0x434,0x3d3)]),_0xb167cb['U']['max']=_0xb167cb['umax']??Math[_0x12affe(-0x1b,-0x3f)](..._0xb167cb['udata']),_0xb167cb['V']={},_0xb167cb['V']['array']=new Float32Array(_0xb167cb['vdata']),_0xb167cb['V'][_0x12affe(-0x10f,-0x10c)]=_0xb167cb['vmin']??Math['min'](..._0xb167cb[_0x12affe(-0xf,-0xa1)]),_0xb167cb['V']['max']=_0xb167cb[_0x12affe(-0xb8,-0x5b)]??Math[_0x12affe(-0x9d,-0x3f)](..._0xb167cb[_0x12affe(-0xf1,-0xa1)]));!_0xb167cb['W']&&(_0xb167cb['W']={'array':new Float32Array(_0xb167cb['U']['array']['length']),'min':0x0,'max':0x0});if(!_0xb167cb['H']){var _0x36ac4c;_0xb167cb['H']={'array':new Float32Array(_0xb167cb['U'][_0x38827a(0x419,0x434)][_0x38827a(0x4c9,0x436)]),'min':0x0,'max':0x0};if((_0x36ac4c=_0xb167cb[_0x12affe(-0xc5,-0x116)])!==null&&_0x36ac4c!==void 0x0&&_0x36ac4c[_0x38827a(0x43e,0x434)]){const {lon:_0x3205a6,lat:_0x5ea499,lev:_0x43bc3f}=_0xb167cb['dimensions'];for(let _0x4e8893=0x0;_0x4e8893<_0x43bc3f;_0x4e8893++){for(let _0x32d9eb=0x0;_0x32d9eb<_0x5ea499;_0x32d9eb++){for(let _0x4aa01f=0x0;_0x4aa01f<_0x3205a6;_0x4aa01f++){const _0x8f4796=_0x4e8893*(_0x3205a6*_0x5ea499)+_0x32d9eb*_0x3205a6+_0x4aa01f;_0xb167cb['H'][_0x38827a(0x491,0x434)][_0x8f4796]=_0xb167cb[_0x38827a(0x3a2,0x367)]['array'][_0x4e8893];}}}_0xb167cb['H']['min']=Math[_0x38827a(0x407,0x371)](..._0xb167cb[_0x12affe(-0x16f,-0x116)]['array']),_0xb167cb['H'][_0x12affe(-0x20,-0x3f)]=Math['max'](..._0xb167cb[_0x12affe(-0x19c,-0x116)][_0x12affe(0x2c,-0x49)]);}}this['data']=_0xb167cb,this['options']=_0x5070af,this['viewerParameters']=_0xb9464,this['particlesComputing']=new ParticlesComputing(this[_0x12affe(-0x12f,-0xc2)],this['data'],this['options'],this[_0x12affe(-0xb8,-0x9a)]);function _0x38827a(_0x36b6a3,_0x5bd0df){return _0x2962c5(_0x36b6a3,_0x5bd0df-0x3e7);}this['particlesRendering']=new ParticlesRendering(this['context'],this[_0x38827a(0x35b,0x369)],this[_0x38827a(0x3c7,0x3ff)],this['viewerParameters'],this['particlesComputing']);}['canvasResize'](_0x2c81bb){this[_0x6a257a(0x211,0x276)][_0x641e2f(-0x79,-0x7d)](),Object[_0x6a257a(0x2b0,0x29d)](this['particlesComputing']['windTextures'])['forEach'](_0x335cca=>{this['particlesComputing']['windTextures'][_0x335cca]['destroy']();}),this['particlesRendering'][_0x6a257a(0x204,0x267)][_0x641e2f(-0x61,-0xad)][_0x6a257a(0x32d,0x308)](),Object['keys'](this['particlesRendering']['framebuffers'])['forEach'](_0x49949d=>{function _0x2cf0fb(_0x2139e8,_0xd2086){return _0x641e2f(_0xd2086,_0x2139e8-0x133);}this['particlesRendering'][_0x2cf0fb(0xc2,0x155)][_0x49949d]['destroy']();});function _0x6a257a(_0xa16b92,_0x3e31c3){return _0x2962c5(_0xa16b92,_0x3e31c3-0x2ac);}this['context']=_0x2c81bb;function _0x641e2f(_0x4b8d20,_0x55e352){return _0x2962c5(_0x4b8d20,_0x55e352- -0x83);}this[_0x6a257a(0x261,0x276)]=new ParticlesComputing(this[_0x6a257a(0x2d5,0x280)],this[_0x641e2f(-0x10b,-0x101)],this[_0x6a257a(0x23d,0x2c4)],this[_0x641e2f(-0x7c,-0x87)]),this['particlesRendering']=new ParticlesRendering(this['context'],this['data'],this['options'],this['viewerParameters'],this['particlesComputing']);}[_0x2962c5(-0x5,0x2b)](){function _0x7fadfb(_0x185ae3,_0x2b6613){return _0x2962c5(_0x2b6613,_0x185ae3- -0x2c5);}function _0x3c5bd6(_0xbaff32,_0x10cabd){return _0x59248e(_0x10cabd-0xec,_0xbaff32);}const _0x375151=new Cesium$2['ClearCommand']({'color':new Cesium$2['Color'](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Cesium$2[_0x3c5bd6(0x46e,0x47c)][_0x3c5bd6(0x3fd,0x43f)]});Object['keys'](this['particlesRendering'][_0x3c5bd6(0x4a7,0x4d2)])['forEach'](_0x4ac83c=>{_0x375151[_0xccf408(-0x113,-0x144)]=this[_0x3ac48f(-0x32,0x5e)][_0xccf408(-0x14d,-0x10e)][_0x4ac83c];function _0x3ac48f(_0x9f4c28,_0x144b47){return _0x3c5bd6(_0x144b47,_0x9f4c28- -0x4ef);}function _0xccf408(_0x12021c,_0x80d10f){return _0x3c5bd6(_0x12021c,_0x80d10f- -0x5e0);}_0x375151[_0xccf408(-0x217,-0x191)](this[_0x3ac48f(-0x5b,-0x2e)]);});}['refreshParticles'](_0x3055d2,_0x1c0d63=!![]){function _0xc036b7(_0x5f48f7,_0x207f10){return _0x59248e(_0x5f48f7- -0x5d6,_0x207f10);}function _0x1bf0d5(_0x13c034,_0x4f1f4a){return _0x59248e(_0x4f1f4a-0x119,_0x13c034);}_0x1c0d63&&(this['clearFramebuffers'](),this[_0xc036b7(-0x238,-0x1b7)][_0x1bf0d5(0x523,0x4f3)](),this['particlesComputing']['createParticlesTextures'](this[_0xc036b7(-0x22e,-0x1d6)],this[_0xc036b7(-0x1ea,-0x209)],this[_0x1bf0d5(0x569,0x4e9)]));if(_0x3055d2){var _0x184137;const _0x2aff7a=this['particlesRendering']['createSegmentsGeometry'](this[_0x1bf0d5(0x471,0x505)]);this['particlesRendering'][_0x1bf0d5(0x45e,0x4f4)]['segments']['geometry']=_0x2aff7a;const _0x15d766=Cesium$2['VertexArray']['fromGeometry']({'context':this[_0xc036b7(-0x22e,-0x25e)],'geometry':_0x2aff7a,'attributeLocations':this['particlesRendering']['primitives']['segments']['attributeLocations'],'bufferUsage':Cesium$2['BufferUsage'][_0x1bf0d5(0x462,0x49e)]});(_0x184137=this['particlesRendering']['primitives'])!==null&&_0x184137!==void 0x0&&(_0x184137=_0x184137['segments'])!==null&&_0x184137!==void 0x0&&_0x184137[_0x1bf0d5(0x4ad,0x4a3)]&&(this['particlesRendering']['primitives']['segments']['commandToExecute'][_0x1bf0d5(0x569,0x546)]=_0x15d766);}}[_0x2962c5(0x30,-0x20)](_0x3c12f3){let _0x4b6125=![];this[_0x4a120c(-0x179,-0x192)]['maxParticles']!==_0x3c12f3['maxParticles']&&(_0x4b6125=!![]);Object['keys'](_0x3c12f3)['forEach'](_0xf7d7fc=>{function _0x4e5325(_0x51d75d,_0x4f9b15){return _0x4a120c(_0x4f9b15-0x15e,_0x51d75d);}this[_0x4e5325(-0x47,-0x1b)][_0xf7d7fc]=_0x3c12f3[_0xf7d7fc];});function _0x4a120c(_0x49e7d9,_0x145a9a){return _0x59248e(_0x49e7d9- -0x565,_0x145a9a);}this['refreshParticles'](_0x4b6125,_0x3c12f3['dynamic']);}['applyViewerParameters'](_0x48ead5){function _0x541d53(_0x55d274,_0x511e82){return _0x2962c5(_0x55d274,_0x511e82-0x419);}Object['keys'](_0x48ead5)['forEach'](_0x133201=>{function _0x245642(_0x331bff,_0x1458bb){return _0x32c3(_0x331bff-0x30,_0x1458bb);}this[_0x245642(0x146,0x186)][_0x133201]=_0x48ead5[_0x133201];});function _0x155ff7(_0x4051ce,_0x187391){return _0x2962c5(_0x187391,_0x4051ce-0x3a1);}this[_0x155ff7(0x3f1,0x3ee)](![]),!this[_0x155ff7(0x3b9,0x3ea)]['dynamic']&&(this[_0x155ff7(0x3b9,0x342)]['dynamic']=!![],this['setOptions'](this[_0x541d53(0x3e5,0x431)]),setTimeout(()=>{function _0x29c9f6(_0x2b4dcb,_0x1550a8){return _0x541d53(_0x1550a8,_0x2b4dcb- -0x40a);}this[_0x29c9f6(0x27,0x61)]['dynamic']=![];function _0x5d9002(_0x3d7338,_0x3871d3){return _0x541d53(_0x3871d3,_0x3d7338- -0x51e);}this[_0x29c9f6(-0x11,0x1a)](this[_0x5d9002(-0xed,-0x108)]);},0x1f4));}[_0x59248e(0x430,0x3d1)](){clearTimeout(this['canrefresh']);function _0x3b8af6(_0x1ac190,_0x3aa2f8){return _0x2962c5(_0x3aa2f8,_0x1ac190-0xed);}this['particlesComputing']['destroyParticlesTextures'](),Object[_0x377ac7(0x7a,0x20)](this['particlesComputing']['windTextures'])['forEach'](_0x57f355=>{function _0xdf5e85(_0x83c891,_0x186169){return _0x377ac7(_0x83c891,_0x186169-0x438);}this['particlesComputing'][_0xdf5e85(0x4c1,0x43e)][_0x57f355]['destroy']();});function _0x377ac7(_0x421803,_0x4183db){return _0x59248e(_0x4183db- -0x3a5,_0x421803);}this['particlesRendering']['textures'][_0x3b8af6(0xc3,0x7c)]['destroy'](),Object[_0x377ac7(0x2,0x20)](this[_0x377ac7(0x25,0x2c)][_0x377ac7(-0x4c,0x41)])['forEach'](_0x522cd7=>{function _0x4b1183(_0x546764,_0x49faca){return _0x3b8af6(_0x49faca- -0xf4,_0x546764);}function _0x377007(_0x2c5543,_0x5d95a2){return _0x3b8af6(_0x2c5543-0xa,_0x5d95a2);}this[_0x377007(0xf4,0x17a)]['framebuffers'][_0x522cd7][_0x4b1183(0x78,0x55)]();});for(const _0x32785a in this){delete this[_0x32785a];}}}const Cesium$1=mars3d__namespace[_0x59248e(0x454,0x4b7)],BaseLayer$1=mars3d__namespace['layer'][_0x59248e(0x458,0x412)],_0x5e8284={};_0x5e8284['particlesNumber']=0x1000,_0x5e8284['fixedHeight']=0x0,_0x5e8284['fadeOpacity']=0.996,_0x5e8284['dropRate']=0.003,_0x5e8284['dropRateBump']=0.01,_0x5e8284['speedFactor']=0.5,_0x5e8284[_0x59248e(0x456,0x3f6)]=0x2,_0x5e8284[_0x2962c5(0x46,-0x18)]=[_0x2962c5(-0x41,-0x86)],_0x5e8284['dynamic']=!![];const DEF_OPTIONS=_0x5e8284;class WindLayer extends BaseLayer$1{constructor(_0xc2ab73={}){_0xc2ab73={...DEF_OPTIONS,..._0xc2ab73},super(_0xc2ab73),this['_setOptionsHook'](_0xc2ab73);}get['layer'](){function _0x4505bc(_0x5cecbb,_0x3c3fd5){return _0x59248e(_0x3c3fd5- -0x149,_0x5cecbb);}return this[_0x4505bc(0x251,0x292)];}get['data'](){return this['_data'];}set['data'](_0x557dfa){this['setData'](_0x557dfa);}get[_0x59248e(0x3bc,0x3a3)](){return this['options']['colors'];}set['colors'](_0x342cf5){this['options'][_0x1d3076(-0x243,-0x1e8)]=_0x342cf5;function _0x51289b(_0x127b63,_0x50a843){return _0x2962c5(_0x50a843,_0x127b63- -0xd3);}if(this[_0x51289b(-0xe8,-0x55)]){const _0xf3d6eb={};_0xf3d6eb['colors']=_0x342cf5,this['particleSystem']['setOptions'](_0xf3d6eb);}function _0x1d3076(_0x21d8d3,_0x30a6ce){return _0x59248e(_0x30a6ce- -0x5a4,_0x21d8d3);}this[_0x51289b(-0x126,-0x1a8)]();}['_mountedHook'](){}[_0x59248e(0x446,0x46e)](){this['scene']=this['_map'][_0x4f266b(0x274,0x1f6)],this['camera']=this[_0x2f111b(0x4ce,0x4d0)]['camera'],this[_0x2f111b(0x4a0,0x4ce)]=new Cesium$1[(_0x4f266b(0x1ba,0x148))](),this[_0x4f266b(0x1bb,0x1eb)]['scene'][_0x4f266b(0x27c,0x1e9)]['add'](this['primitives']);function _0x4f266b(_0x14de71,_0x24aac9){return _0x2962c5(_0x14de71,_0x24aac9-0x1e2);}this['viewerParameters']={'lonRange':new Cesium$1[(_0x2f111b(0x417,0x49c))](),'latRange':new Cesium$1['Cartesian2'](),'pixelSize':0x0,'lonDisplayRange':new Cesium$1[(_0x4f266b(0x15d,0x1b7))](),'latDisplayRange':new Cesium$1['Cartesian2']()},this['globeBoundingSphere']=new Cesium$1[(_0x2f111b(0x582,0x4f5))](Cesium$1['Cartesian3']['ZERO'],Cesium$1[_0x4f266b(0x12a,0x177)][_0x4f266b(0xe9,0x17f)]['minimumRadius']),this['updateViewerParameters'](),window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![];function _0x2f111b(_0x5dcc80,_0x534689){return _0x59248e(_0x534689-0xf3,_0x5dcc80);}this['mouse_move']=![],this['_map']['on'](mars3d__namespace[_0x4f266b(0x168,0x1c6)][_0x4f266b(0x1a3,0x214)],this[_0x4f266b(0x10a,0x199)],this),this['_map']['on'](mars3d__namespace['EventType'][_0x4f266b(0x2b4,0x24d)],this['_onMouseDownEvent'],this),this[_0x4f266b(0x179,0x1eb)]['on'](mars3d__namespace[_0x4f266b(0x18a,0x1c6)][_0x4f266b(0x2c6,0x25f)],this['_onMouseUpEvent'],this),this[_0x2f111b(0x44d,0x4d0)]['on'](mars3d__namespace[_0x4f266b(0x216,0x1c6)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x4f266b(0x2b9,0x251)]&&this['setData'](this[_0x4f266b(0x27e,0x251)]);}[_0x2962c5(0x5b,-0x9)](){window[_0x487096(0x8d,0xd0)]('resize',this['resize']),this[_0x487096(0x40,0xc9)][_0x487096(0x0,-0x18)](mars3d__namespace[_0x17eca3(-0xf4,-0x17e)][_0x487096(-0x50,-0x94)],this['_onMap_preRenderEvent'],this),this['_map'][_0x487096(0x0,-0x9)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this);function _0x17eca3(_0x42ab0d,_0x5dda28){return _0x2962c5(_0x5dda28,_0x42ab0d- -0xd8);}this['_map']['off'](mars3d__namespace['EventType'][_0x487096(0xa2,0x100)],this[_0x17eca3(-0x141,-0x180)],this),this['_map'][_0x487096(0x0,0x49)](mars3d__namespace['EventType'][_0x487096(0xb4,0x42)],this[_0x17eca3(-0xf6,-0x136)],this),this[_0x487096(0x40,0x86)]['off'](mars3d__namespace[_0x487096(0x1b,-0x30)][_0x487096(0x79,0xdd)],this['_onMouseMoveEvent'],this),this['primitives'][_0x487096(-0x2f,0xe)]();function _0x487096(_0x2bf0c9,_0x132147){return _0x59248e(_0x2bf0c9- -0x39d,_0x132147);}this['_map']['scene']['primitives'][_0x487096(-0x3c,0x7)](this[_0x17eca3(-0xd1,-0xcd)]);}['resize'](){function _0x9f7b17(_0x17f564,_0x5c8e54){return _0x2962c5(_0x17f564,_0x5c8e54- -0x273);}if(!this['show']||!this['particleSystem'])return;this['primitives'][_0x2a2a64(0x204,0x176)]=![];function _0x2a2a64(_0x580b61,_0x55b97d){return _0x2962c5(_0x55b97d,_0x580b61-0x2a2);}this[_0x9f7b17(-0x2d7,-0x26c)][_0x2a2a64(0x23c,0x29e)](),this['_map'][_0x9f7b17(-0x1fa,-0x266)](mars3d__namespace[_0x9f7b17(-0x31c,-0x28f)]['preRender'],this[_0x2a2a64(0x220,0x18e)],this);}['_onMap_preRenderEvent'](_0x340601){this[_0x283af9(-0x2a2,-0x29a)]['canvasResize'](this[_0x43dac5(0x4a8,0x4d9)]['context']);function _0x43dac5(_0xe0a6ed,_0x9b7bec){return _0x2962c5(_0xe0a6ed,_0x9b7bec-0x4c5);}function _0x283af9(_0x52652d,_0x453e2e){return _0x59248e(_0x52652d- -0x661,_0x453e2e);}this['addPrimitives'](),this[_0x43dac5(0x53a,0x4cc)]['show']=!![];}['_onMapWhellEvent'](_0x3bc7ad){clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x176b55(-0x9f,-0x11e)])return;function _0x176b55(_0x5734c6,_0x28e519){return _0x59248e(_0x28e519- -0x4dd,_0x5734c6);}function _0x54cd7b(_0xf46cf4,_0x226b0d){return _0x2962c5(_0x226b0d,_0xf46cf4-0x2ba);}this['primitives']['show']=![],this[_0x54cd7b(0x2d8,0x244)]=setTimeout(()=>{if(!this[_0x1fe68b(0x22,-0x39)])return;function _0x1fe68b(_0x2c7a0b,_0x4dd852){return _0x54cd7b(_0x2c7a0b- -0x1fa,_0x4dd852);}this['redraw']();},0xc8);}['_onMouseDownEvent'](_0x34a5df){this['mouse_down']=!![];}[_0x59248e(0x3c4,0x3f9)](_0x26a728){function _0x12603c(_0x105c98,_0x54c8de){return _0x59248e(_0x105c98-0xac,_0x54c8de);}if(!this['show']||!this[_0x12603c(0x46b,0x4b1)])return;function _0x120a90(_0x158610,_0xf755e5){return _0x59248e(_0xf755e5- -0x9c,_0x158610);}this[_0x120a90(0x27b,0x2e8)]&&(this['primitives'][_0x120a90(0x212,0x29a)]=![],this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x569b8a){if(!this[_0x52a4d6(-0x12f,-0x116)]||!this[_0x52a4d6(-0x41,-0x8d)])return;this[_0x52a4d6(-0x118,-0xc8)]&&this['mouse_move']&&this['redraw']();this['primitives']['show']=!![],this['mouse_down']=![];function _0x1bc13b(_0x5c427c,_0x1018ed){return _0x59248e(_0x5c427c- -0x3ca,_0x1018ed);}function _0x52a4d6(_0x3cec6c,_0x4739f3){return _0x59248e(_0x4739f3- -0x44c,_0x3cec6c);}this[_0x52a4d6(-0x45,-0x9e)]=![];}['redraw'](){if(!this['_map']||!this['show'])return;this['updateViewerParameters'](),this['particleSystem']['applyViewerParameters'](this['viewerParameters']),this['primitives']['show']=!![];}['setData'](_0x579eb5){this['_data']=_0x579eb5;function _0x3ed6d7(_0x3c7473,_0x248bd8){return _0x2962c5(_0x248bd8,_0x3c7473- -0x257);}function _0x1e9e5f(_0x552587,_0x25f966){return _0x2962c5(_0x552587,_0x25f966- -0x19f);}this['particleSystem']&&this['particleSystem']['destroy'](),this[_0x3ed6d7(-0x26c,-0x2f4)]=new ParticleSystem(this[_0x1e9e5f(-0x202,-0x18b)][_0x3ed6d7(-0x283,-0x315)],_0x579eb5,this['getOptions'](),this['viewerParameters']),this[_0x1e9e5f(-0x10d,-0x191)]();}['_setOptionsHook'](_0x49b3cc,_0x10857a){if(_0x49b3cc)for(const _0x2188e0 in _0x49b3cc){this[_0x2188e0]=_0x49b3cc[_0x2188e0];}function _0x558ac1(_0xc21ec,_0x52c7f8){return _0x59248e(_0x52c7f8- -0x2cd,_0xc21ec);}this[_0x558ac1(0xfa,0xf2)]&&this['particleSystem']['setOptions'](this['getOptions']());}['getOptions'](){const _0x2eaee3=Math['ceil'](Math['sqrt'](this['particlesNumber']));this['particlesNumber']=_0x2eaee3*_0x2eaee3;const _0x1dc9f5={};_0x1dc9f5[_0x423e4d(-0x12e,-0x112)]=_0x2eaee3;function _0x423e4d(_0x54f8b7,_0x4f6101){return _0x2962c5(_0x54f8b7,_0x4f6101- -0xdd);}_0x1dc9f5[_0x423e4d(-0x143,-0x13e)]=this['particlesNumber'],_0x1dc9f5['colors']=this[_0x1b74d8(-0x52,-0x2b)],_0x1dc9f5['particleHeight']=this['fixedHeight'],_0x1dc9f5['fadeOpacity']=this['fadeOpacity'],_0x1dc9f5['dropRate']=this['dropRate'],_0x1dc9f5['dropRateBump']=this[_0x423e4d(-0x15c,-0x142)],_0x1dc9f5['speedFactor']=this['speedFactor'],_0x1dc9f5['lineWidth']=this[_0x423e4d(-0x41,-0x5b)],_0x1dc9f5['dynamic']=this[_0x423e4d(-0xfd,-0x13f)];function _0x1b74d8(_0x16758d,_0x4e8d1a){return _0x59248e(_0x16758d- -0x40e,_0x4e8d1a);}return _0x1dc9f5;}['addPrimitives'](){this['primitives']['add'](this[_0x5dbe81(-0x4,-0x98)][_0x18bcc2(0x44c,0x49b)]['primitives'][_0x18bcc2(0x4b0,0x4f3)]),this['primitives'][_0x18bcc2(0x455,0x4b2)](this[_0x5dbe81(-0x4,-0x46)]['particlesComputing']['primitives']['updatePosition']),this['primitives'][_0x5dbe81(-0xe,-0x1)](this[_0x18bcc2(0x458,0x4bc)][_0x5dbe81(-0x25,0x1f)][_0x18bcc2(0x463,0x4d8)][_0x5dbe81(-0x86,-0x81)]),this['primitives'][_0x18bcc2(0x491,0x4b2)](this[_0x5dbe81(-0x4,0x38)]['particlesRendering']['primitives'][_0x18bcc2(0x3ed,0x474)]);function _0x18bcc2(_0x49e980,_0x5647bb){return _0x59248e(_0x5647bb-0xfd,_0x49e980);}this['primitives']['add'](this['particleSystem']['particlesRendering']['primitives'][_0x18bcc2(0x4ee,0x4f9)]);function _0x5dbe81(_0x4b7a04,_0x56a863){return _0x2962c5(_0x56a863,_0x4b7a04-0x11);}this['primitives'][_0x5dbe81(-0xe,0x5a)](this[_0x18bcc2(0x452,0x4bc)]['particlesRendering']['primitives']['screen']);}[_0x59248e(0x342,0x37a)](){function _0x1b2ad1(_0x490696,_0x1dd0cc){return _0x59248e(_0x1dd0cc- -0x2a8,_0x490696);}let _0x26569b=this[_0x1b2ad1(0xd2,0x91)][_0x144391(-0x7c,-0x28)](this['scene']['globe']['ellipsoid']);if(!_0x26569b){const _0x4abd59=this['_map']['getExtent']();_0x26569b=Cesium$1['Rectangle'][_0x1b2ad1(0x14,0x8c)](_0x4abd59[_0x144391(0x2,0x7e)],_0x4abd59[_0x1b2ad1(0x16f,0x150)],_0x4abd59['xmax'],_0x4abd59['ymax']);}const _0x2dff7f=Util['viewRectangleToLonLatRange'](_0x26569b);function _0x144391(_0x42ece8,_0x5ac4c6){return _0x2962c5(_0x5ac4c6,_0x42ece8- -0x59);}this['_data']?(this['viewerParameters']['lonRange']['x']=Math['max'](_0x2dff7f['lon']['min'],this[_0x1b2ad1(0x211,0x19b)][_0x1b2ad1(0x1a0,0x187)]),this['viewerParameters']['lonRange']['y']=Math['min'](_0x2dff7f['lon'][_0x144391(-0x2,-0x19)],this['_data']['xmax']),this['viewerParameters']['latRange']['x']=Math['max'](_0x2dff7f['lat']['min'],this['_data'][_0x144391(-0x35,-0x16)]),this[_0x1b2ad1(0x186,0x128)]['latRange']['y']=Math[_0x1b2ad1(0xba,0xb6)](_0x2dff7f[_0x144391(-0x23,-0xac)][_0x1b2ad1(0x112,0x183)],this[_0x144391(0x16,-0x12)]['ymax'])):(this[_0x144391(-0x5d,-0xdd)]['lonRange']['x']=_0x2dff7f['lon']['min'],this['viewerParameters'][_0x1b2ad1(0xb3,0x126)]['y']=_0x2dff7f[_0x144391(-0x1d,0x3a)][_0x144391(-0x2,0x48)],this['viewerParameters'][_0x1b2ad1(0x199,0x156)]['x']=_0x2dff7f[_0x144391(-0x23,-0xc)]['min'],this[_0x144391(-0x5d,-0xdf)][_0x144391(-0x2f,0x56)]['y']=_0x2dff7f[_0x1b2ad1(0x178,0x162)]['max']);let _0x1c41ac=this['camera']['getPixelSize'](this['globeBoundingSphere'],this[_0x144391(-0x45,0x24)][_0x144391(0xd,0x67)],this[_0x144391(-0x45,-0x32)]['drawingBufferHeight']);const _0x239263=this[_0x1b2ad1(0xbb,0x140)]['drawingBufferHeight']*0.3;_0x1c41ac<_0x239263&&(_0x1c41ac=_0x239263),this['viewerParameters'][_0x144391(-0xae,-0x70)]=_0x1c41ac;}}mars3d__namespace[_0x59248e(0x37e,0x3b2)]['register'](_0x59248e(0x378,0x2e2),WindLayer),mars3d__namespace['layer'][_0x2962c5(-0x24,-0x22)]=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this['tlng']=null,this['tlat']=null;function _0x220210(_0x54bb99,_0x27924b){return _0x59248e(_0x27924b-0x5b,_0x54bb99);}this['age']=null,this[_0x220210(0x475,0x448)]=null;}[_0x2962c5(0x8a,0x5c)](){for(const _0x4b8a06 in this){delete this[_0x4b8a06];}}}class CanvasWindField{constructor(_0xe56f55){this['setOptions'](_0xe56f55);}get['speedRate'](){return this['_speedRate'];}set['speedRate'](_0x3b3b22){function _0x1eae69(_0x153ad4,_0x8095d6){return _0x2962c5(_0x8095d6,_0x153ad4- -0x1a3);}function _0x18c771(_0xd4e47b,_0x1b6d3d){return _0x59248e(_0x1b6d3d- -0x639,_0xd4e47b);}this['_speedRate']=(0x64-(_0x3b3b22>0x63?0x63:_0x3b3b22))*0x64,this[_0x18c771(-0x281,-0x2a0)]=[(this['xmax']-this[_0x1eae69(-0x148,-0xfa)])/this[_0x18c771(-0x297,-0x211)],(this['ymax']-this['ymin'])/this[_0x1eae69(-0x14f,-0x167)]];}get[_0x59248e(0x340,0x341)](){function _0x5bfd6d(_0x4f94a5,_0x5244ef){return _0x59248e(_0x5244ef- -0x2f0,_0x4f94a5);}return this[_0x5bfd6d(0xb6,0xf0)];}set[_0x59248e(0x340,0x383)](_0x5daacf){function _0x550b13(_0x47724a,_0x391dee){return _0x59248e(_0x391dee- -0x5c1,_0x47724a);}this[_0x550b13(-0x16e,-0x1e1)]=_0x5daacf;}[_0x59248e(0x3b4,0x354)](_0x929952){this['options']=_0x929952,this['maxAge']=_0x929952[_0x53eb1c(0x1f4,0x17d)]||0x78;function _0x53eb1c(_0x24c3e1,_0x4c35ba){return _0x59248e(_0x4c35ba- -0x1c3,_0x24c3e1);}this['speedRate']=_0x929952['speedRate']||0x32;function _0x5b5259(_0x30368a,_0x543b14){return _0x59248e(_0x30368a- -0x4ce,_0x543b14);}this['particles']=[];const _0x2dadf1=_0x929952['particlesNumber']||0x1000;for(let _0x181df4=0x0;_0x181df4<_0x2dadf1;_0x181df4++){const _0x3a8d50=this['_randomParticle'](new CanvasParticle());this['particles'][_0x5b5259(-0xa8,-0xa3)](_0x3a8d50);}}[_0x2962c5(-0x40,0x4b)](_0x26ba55){this[_0x1bb781(-0xa9,-0x110)]=_0x26ba55['rows'],this['cols']=_0x26ba55['cols'],this['xmin']=_0x26ba55['xmin'],this[_0x1cb1b0(-0x25f,-0x214)]=_0x26ba55['xmax'],this['ymin']=_0x26ba55['ymin'];function _0x1bb781(_0x56b2c8,_0x527dcc){return _0x2962c5(_0x527dcc,_0x56b2c8- -0xf0);}this['ymax']=_0x26ba55['ymax'],this[_0x1bb781(-0xbf,-0x47)]=[];const _0xb95986=_0x26ba55['udata'],_0x1691b1=_0x26ba55['vdata'];let _0x21922f=![];_0xb95986[_0x1cb1b0(-0x233,-0x1de)]===this[_0x1bb781(-0xa9,-0x24)]&&_0xb95986[0x0]['length']===this['cols']&&(_0x21922f=!![]);let _0x135d27=0x0,_0x30c48d=null,_0x40e037=null;function _0x1cb1b0(_0x161026,_0x505222){return _0x59248e(_0x161026- -0x656,_0x505222);}for(let _0x373a16=0x0;_0x373a16<this['rows'];_0x373a16++){_0x30c48d=[];for(let _0x1c764f=0x0;_0x1c764f<this['cols'];_0x1c764f++,_0x135d27++){_0x21922f?_0x40e037=this[_0x1bb781(-0x14b,-0x187)](_0xb95986[_0x373a16][_0x1c764f],_0x1691b1[_0x373a16][_0x1c764f]):_0x40e037=this[_0x1bb781(-0x14b,-0x16a)](_0xb95986[_0x135d27],_0x1691b1[_0x135d27]),_0x30c48d[_0x1bb781(-0x9e,-0x46)](_0x40e037);}this['grid']['push'](_0x30c48d);}this[_0x1cb1b0(-0x26a,-0x2a9)]['reverseY']&&this[_0x1cb1b0(-0x251,-0x2d8)]['reverse']();}[_0x2962c5(-0x2b,0x5d)](){delete this['rows'],delete this['cols'],delete this[_0x442c3f(0x10d,0xf9)],delete this['xmax'],delete this[_0xdbcd29(0x281,0x1ec)],delete this['ymax'];function _0x442c3f(_0x2d5cc5,_0x9a6c62){return _0x59248e(_0x2d5cc5- -0x322,_0x9a6c62);}function _0xdbcd29(_0x56f556,_0x1aea25){return _0x2962c5(_0x56f556,_0x1aea25-0x1c8);}delete this['grid'],delete this[_0xdbcd29(0x1dd,0x19b)];}['toGridXY'](_0x22ff90,_0x49074c){const _0x4e064d=(_0x22ff90-this['xmin'])/(this[_0x84f0ca(0x27d,0x2ee)]-this[_0x3608a5(0x2eb,0x2c6)])*(this['cols']-0x1);function _0x84f0ca(_0x4a2ad0,_0x19599e){return _0x2962c5(_0x19599e,_0x4a2ad0-0x25a);}const _0x4d1411=(this[_0x3608a5(0x251,0x244)]-_0x49074c)/(this['ymax']-this[_0x84f0ca(0x27e,0x23d)])*(this['rows']-0x1);function _0x3608a5(_0x2513f3,_0xc08e01){return _0x59248e(_0xc08e01- -0x169,_0x2513f3);}return[_0x4e064d,_0x4d1411];}[_0x2962c5(0xfb,0x77)](_0x5dac48,_0x43acd7){if(_0x5dac48<0x0||_0x5dac48>=this['cols']||_0x43acd7>=this['rows'])return[0x0,0x0,0x0];const _0xad8044=Math[_0x142be5(0x337,0x2aa)](_0x5dac48),_0x379ae8=Math['floor'](_0x43acd7);if(_0xad8044===_0x5dac48&&_0x379ae8===_0x43acd7)return this['grid'][_0x43acd7][_0x5dac48];const _0x25aabe=_0xad8044+0x1,_0x4f198c=_0x379ae8+0x1,_0x531571=this[_0x5710e2(-0x182,-0x20b)](_0xad8044,_0x379ae8);function _0x5710e2(_0x11356c,_0xc162a1){return _0x59248e(_0xc162a1- -0x656,_0x11356c);}const _0x5a1e16=this['getUVByXY'](_0x25aabe,_0x379ae8),_0x25b419=this['getUVByXY'](_0xad8044,_0x4f198c),_0x42c3f2=this['getUVByXY'](_0x25aabe,_0x4f198c);let _0x821e55=null;try{_0x821e55=this[_0x142be5(0x3d7,0x3f3)](_0x5dac48-_0xad8044,_0x43acd7-_0x379ae8,_0x531571,_0x5a1e16,_0x25b419,_0x42c3f2);}catch(_0x138321){console['log'](_0x5dac48,_0x43acd7);}function _0x142be5(_0x1ded7e,_0x39e63d){return _0x59248e(_0x1ded7e- -0x6a,_0x39e63d);}return _0x821e55;}[_0x2962c5(0x18,0x6d)](_0x293ea0,_0x3295c1,_0x4a5ee4,_0x4c07bf,_0x2f09fe,_0x1a1aeb){const _0x202556=0x1-_0x293ea0,_0x2698f1=0x1-_0x3295c1,_0x10b426=_0x202556*_0x2698f1,_0x16d929=_0x293ea0*_0x2698f1,_0x465a53=_0x202556*_0x3295c1,_0x454076=_0x293ea0*_0x3295c1,_0x1564d2=_0x4a5ee4[0x0]*_0x10b426+_0x4c07bf[0x0]*_0x16d929+_0x2f09fe[0x0]*_0x465a53+_0x1a1aeb[0x0]*_0x454076,_0x55dc19=_0x4a5ee4[0x1]*_0x10b426+_0x4c07bf[0x1]*_0x16d929+_0x2f09fe[0x1]*_0x465a53+_0x1a1aeb[0x1]*_0x454076;return this['_calcUV'](_0x1564d2,_0x55dc19);}[_0x59248e(0x379,0x39f)](_0x2713a6,_0x359931){return[+_0x2713a6,+_0x359931,Math['sqrt'](_0x2713a6*_0x2713a6+_0x359931*_0x359931)];}['getUVByPoint'](_0xeffd41,_0x171901){if(!this['isInExtent'](_0xeffd41,_0x171901))return null;const _0x47a038=this['toGridXY'](_0xeffd41,_0x171901),_0x464b33=this['getUVByXY'](_0x47a038[0x0],_0x47a038[0x1]);return _0x464b33;}['isInExtent'](_0x2ae6dd,_0x19fa16){function _0xcfbf66(_0x5a9175,_0x2a0fb0){return _0x59248e(_0x2a0fb0- -0x618,_0x5a9175);}function _0x22199d(_0x47debf,_0x39b40b){return _0x59248e(_0x39b40b- -0x353,_0x47debf);}return _0x2ae6dd>=this[_0xcfbf66(-0x19a,-0x1e9)]&&_0x2ae6dd<=this[_0xcfbf66(-0x223,-0x221)]&&_0x19fa16>=this['ymin']&&_0x19fa16<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0xff9a61(_0x374dac,_0x49ee32){return _0x2962c5(_0x49ee32,_0x374dac- -0x164);}const _0x105144=fRandomByfloat(this['xmin'],this['xmax']),_0x242323=fRandomByfloat(this['ymin'],this['ymax']),_0x3bea7e={};return _0x3bea7e[_0xff9a61(-0x12e,-0xa2)]=_0x242323,_0x3bea7e['lng']=_0x105144,_0x3bea7e;}[_0x2962c5(0x0,0x41)](){let _0x493191,_0x5eec5f,_0x40de02;function _0x302179(_0x1c6d8f,_0x503e55){return _0x2962c5(_0x503e55,_0x1c6d8f-0x4ca);}function _0x46b42f(_0x105e52,_0x1b52b2){return _0x2962c5(_0x1b52b2,_0x105e52-0x3dc);}for(let _0x2232fa=0x0,_0x42d537=this['particles']['length'];_0x2232fa<_0x42d537;_0x2232fa++){let _0x2c21a8=this[_0x302179(0x49d,0x430)][_0x2232fa];_0x2c21a8['age']<=0x0&&(_0x2c21a8=this['_randomParticle'](_0x2c21a8));if(_0x2c21a8[_0x46b42f(0x3d7,0x3d4)]>0x0){const _0x19e5ab=_0x2c21a8[_0x46b42f(0x409,0x3b9)],_0x53140d=_0x2c21a8[_0x302179(0x4fe,0x4e7)];_0x40de02=this['getUVByPoint'](_0x19e5ab,_0x53140d),_0x40de02?(_0x493191=_0x19e5ab+this['_calc_speedRate'][0x0]*_0x40de02[0x0],_0x5eec5f=_0x53140d+this['_calc_speedRate'][0x1]*_0x40de02[0x1],_0x2c21a8[_0x302179(0x428,0x45a)]=_0x19e5ab,_0x2c21a8['lat']=_0x53140d,_0x2c21a8['tlng']=_0x493191,_0x2c21a8['tlat']=_0x5eec5f,_0x2c21a8[_0x302179(0x4e3,0x559)]=_0x40de02[0x2],_0x2c21a8[_0x46b42f(0x3d7,0x458)]--):_0x2c21a8[_0x302179(0x4c5,0x4e4)]=0x0;}}return this[_0x302179(0x49d,0x44c)];}[_0x2962c5(0x81,0x49)](_0x2ab13f){let _0x1ae25c,_0x5547ba;for(let _0xf6e454=0x0;_0xf6e454<0x1e;_0xf6e454++){_0x1ae25c=this['getRandomLatLng'](),_0x5547ba=this['getUVByPoint'](_0x1ae25c['lng'],_0x1ae25c[_0x49db38(0x1b0,0x1a2)]);if(_0x5547ba&&_0x5547ba[0x2]>0x0)break;}if(!_0x5547ba)return _0x2ab13f;function _0x49db38(_0x548a7d,_0x23718d){return _0x2962c5(_0x23718d,_0x548a7d-0x17a);}const _0x44a5d6=_0x1ae25c['lng']+this['_calc_speedRate'][0x0]*_0x5547ba[0x0];function _0x26d595(_0x283139,_0x27b5de){return _0x2962c5(_0x283139,_0x27b5de- -0x18b);}const _0x1d47bf=_0x1ae25c['lat']+this['_calc_speedRate'][0x1]*_0x5547ba[0x1];return _0x2ab13f['lng']=_0x1ae25c['lng'],_0x2ab13f[_0x26d595(-0x19f,-0x155)]=_0x1ae25c['lat'],_0x2ab13f['tlng']=_0x44a5d6,_0x2ab13f['tlat']=_0x1d47bf,_0x2ab13f['age']=Math['round'](Math[_0x26d595(-0x178,-0x20e)]()*this[_0x26d595(-0x1c1,-0x21f)]),_0x2ab13f[_0x26d595(-0x15f,-0x172)]=_0x5547ba[0x2],_0x2ab13f;}[_0x2962c5(0x58,0x5c)](){for(const _0x3b5845 in this){delete this[_0x3b5845];}}}function fRandomByfloat(_0x5a0406,_0x4bce3b){return _0x5a0406+Math['random']()*(_0x4bce3b-_0x5a0406);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x2962c5(0x1d,0x4c)][_0x59248e(0x458,0x47b)];class CanvasWindLayer extends BaseLayer{constructor(_0x149021={}){function _0x1e166c(_0x5f0709,_0x5e3c4e){return _0x59248e(_0x5e3c4e- -0x1ed,_0x5f0709);}super(_0x149021);function _0x48be19(_0x39053f,_0x44d67f){return _0x2962c5(_0x39053f,_0x44d67f-0x1d);}this['_setOptionsHook'](_0x149021),this['canvas']=null,_0x149021[_0x1e166c(0x19d,0x1cf)]&&_0x149021['steps']&&(this[_0x48be19(0x70,0x27)]=new mars3d__namespace['ColorRamp'](_0x149021));}[_0x2962c5(0xba,0x2f)](_0x5e0482,_0x2bcd37){this[_0x3eb053(-0x1db,-0x22e)]=0x3e8/(_0x5e0482['frameRate']||0xa),this[_0x3eb053(-0x132,-0x1ad)]=this['options']['pointerEvents']??![],this['color']=_0x5e0482['color']||'#ffffff';function _0x913017(_0x3fd6de,_0x38fb81){return _0x2962c5(_0x3fd6de,_0x38fb81-0x53);}this['lineWidth']=_0x5e0482['lineWidth']||0x1;function _0x3eb053(_0x1d37cf,_0x40ec7d){return _0x2962c5(_0x1d37cf,_0x40ec7d- -0x200);}this['fixedHeight']=_0x5e0482[_0x3eb053(-0x28c,-0x221)]??0x0,this['reverseY']=_0x5e0482['reverseY']??![],this['windField']&&this['windField']['setOptions'](_0x5e0482);}get['layer'](){return this['canvas'];}get[_0x59248e(0x3fd,0x3c9)](){function _0x99198b(_0x34dfac,_0x5e4659){return _0x59248e(_0x5e4659- -0x21d,_0x34dfac);}function _0x183882(_0x573c9b,_0x243f2c){return _0x2962c5(_0x573c9b,_0x243f2c- -0x105);}return this[_0x99198b(0x177,0x1c0)]['scene'][_0x183882(-0x1bc,-0x1a4)]['clientWidth'];}get['canvasHeight'](){function _0x44ed63(_0x47b534,_0x12f74f){return _0x59248e(_0x47b534- -0x237,_0x12f74f);}function _0x5a0fde(_0x1e05d9,_0x3b39cc){return _0x59248e(_0x3b39cc- -0x49e,_0x1e05d9);}return this['_map'][_0x44ed63(0x1b1,0x13d)][_0x44ed63(0xfe,0xdf)][_0x5a0fde(-0x8f,-0xbf)];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x2962c5(0x97,0x60)](_0x5080b7){function _0x149a02(_0x19304e,_0x3298ff){return _0x59248e(_0x19304e- -0x43b,_0x3298ff);}function _0x5612bf(_0x25c2f1,_0x32dae0){return _0x2962c5(_0x25c2f1,_0x32dae0- -0x1c1);}this['_pointerEvents']=_0x5080b7;if(!this['canvas'])return;_0x5080b7?this['canvas']['style']['pointer-events']=_0x149a02(-0xa8,-0x16):this['canvas'][_0x149a02(-0x10d,-0xa2)][_0x5612bf(-0x1a9,-0x239)]='none';}get[_0x59248e(0x450,0x3d7)](){return this['options']['particlesNumber'];}set['particlesNumber'](_0x825880){function _0x228257(_0x770857,_0x1359dc){return _0x2962c5(_0x1359dc,_0x770857- -0x1c3);}this['options']['particlesNumber']=_0x825880,clearTimeout(this['_canrefresh']),this[_0x228257(-0x23a,-0x24e)]=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x115490(_0xe8708a,_0x27878b){return _0x59248e(_0x27878b- -0x4bd,_0xe8708a);}function _0x28a826(_0x5ea74d,_0x22c2af){return _0x59248e(_0x22c2af- -0x93,_0x5ea74d);}return this[_0x28a826(0x2fe,0x359)][_0x28a826(0x30b,0x362)];}set[_0x59248e(0x3f5,0x3de)](_0x58aacb){this['options']['speedRate']=_0x58aacb;function _0x2f8927(_0x57db93,_0x3953ff){return _0x59248e(_0x3953ff- -0x49b,_0x57db93);}this['windField']&&(this[_0x2f8927(-0xe4,-0xac)]['speedRate']=_0x58aacb);}get[_0x59248e(0x340,0x357)](){return this['options']['maxAge'];}set[_0x59248e(0x340,0x300)](_0x40b052){function _0x4d7f98(_0x158f9a,_0x274773){return _0x2962c5(_0x274773,_0x158f9a-0x135);}this[_0x4d7f98(0x14d,0x129)]['maxAge']=_0x40b052,this['windField']&&(this['windField']['maxAge']=_0x40b052);}get[_0x59248e(0x356,0x334)](){function _0x109817(_0x543578,_0x3d036c){return _0x2962c5(_0x543578,_0x3d036c-0x1e2);}return this[_0x109817(0x1b3,0x1f1)];}set['data'](_0x5e2d62){function _0x4bd5f8(_0x4919f5,_0x112b10){return _0x59248e(_0x4919f5-0x100,_0x112b10);}this[_0x4bd5f8(0x446,0x4bd)](_0x5e2d62);}get[_0x59248e(0x34c,0x397)](){let _0x2040e6=this['windData']['xmin'],_0x26c0e7=this['windData']['xmax'],_0x42058d=this[_0x48d689(0x89,0x50)]['ymin'],_0x4f91a9=this['windData']['ymax'];_0x26c0e7>=0x167&&_0x2040e6===0x0&&(_0x2040e6=-0xb4,_0x26c0e7=0xb4);_0x2040e6=Math['max'](_0x2040e6,-0xb4),_0x26c0e7=Math['min'](_0x26c0e7,0xb4),_0x42058d=Math['max'](_0x42058d,-0x5a);function _0x48d689(_0x25fb47,_0x581d55){return _0x59248e(_0x581d55- -0x393,_0x25fb47);}function _0x408b63(_0x4bb804,_0x4bcf6b){return _0x2962c5(_0x4bcf6b,_0x4bb804-0x9);}return _0x4f91a9=Math[_0x408b63(-0x6d,-0x7a)](_0x4f91a9,0x5a),Cesium[_0x408b63(-0x61,0x3)][_0x48d689(-0xf5,-0x5f)](_0x2040e6,_0x42058d,_0x26c0e7,_0x4f91a9);}['_showHook'](_0x2f82ea){function _0x485606(_0x1a62e4,_0x151b3b){return _0x59248e(_0x1a62e4-0xa6,_0x151b3b);}function _0x94fdba(_0x37feef,_0x3ece70){return _0x2962c5(_0x37feef,_0x3ece70- -0x258);}_0x2f82ea?this[_0x485606(0x4ec,0x56d)]():(this['windData']&&(this['options']['data']=this[_0x94fdba(-0x1e7,-0x249)]),this[_0x94fdba(-0x2a4,-0x261)]());}['_mountedHook'](){this['options']['worker']?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){this[_0xeabd08(-0x1a,0x53)]=this['_createCanvas']();const _0x10dd8e={};_0x10dd8e['willReadFrequently']=!![],this['canvasContext']=this[_0x415c19(0x20d,0x1c1)][_0x415c19(0x2e5,0x2aa)]('2d',_0x10dd8e);function _0x415c19(_0x29dde8,_0x5dd541){return _0x2962c5(_0x5dd541,_0x29dde8-0x2ac);}this[_0xeabd08(0x7b,0x1a)]();function _0xeabd08(_0x3a91d2,_0x22f9de){return _0x2962c5(_0x22f9de,_0x3a91d2-0x85);}this[_0x415c19(0x2c4,0x295)]['data']&&this['setData'](this['options']['data']);}['_removedHook'](){this['clear']();function _0x107e3f(_0x215bc4,_0x37b1bb){return _0x2962c5(_0x37b1bb,_0x215bc4- -0x124);}function _0x5d5579(_0x3810fc,_0x386b15){return _0x59248e(_0x3810fc-0xb8,_0x386b15);}this['unbindEvent'](),this[_0x5d5579(0x3ed,0x394)]&&(this[_0x107e3f(-0x11b,-0x144)][_0x5d5579(0x412,0x3fa)]['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x4b94ea=mars3d__namespace['DomUtil'][_0x21251c(0x382,0x3a7)](_0x5664be(-0x301,-0x297),'mars3d-canvasWind',this['_map']['container']);_0x4b94ea['style']['position']='absolute',_0x4b94ea[_0x21251c(0x262,0x272)]['top']='0px';function _0x21251c(_0x32bcc8,_0x1e7ce9){return _0x59248e(_0x32bcc8- -0xcc,_0x1e7ce9);}function _0x5664be(_0x473a90,_0x5d4ec0){return _0x59248e(_0x5d4ec0- -0x5cc,_0x473a90);}return _0x4b94ea['style'][_0x21251c(0x29c,0x2f3)]=_0x21251c(0x2f7,0x26b),_0x4b94ea['style']['width']=this['_map']['scene']['canvas']['clientWidth']+'px',_0x4b94ea[_0x21251c(0x262,0x1fc)][_0x21251c(0x306,0x30d)]=this['_map']['scene']['canvas']['clientHeight']+'px',_0x4b94ea[_0x21251c(0x262,0x1d8)][_0x5664be(-0x105,-0x198)]=this[_0x5664be(-0x1df,-0x1a5)]?_0x5664be(-0x282,-0x245):'none',_0x4b94ea['style']['zIndex']=this[_0x5664be(-0x230,-0x1e0)][_0x21251c(0x29a,0x29b)]??0x9,_0x4b94ea[_0x5664be(-0x23a,-0x1e7)]=this[_0x5664be(-0x1de,-0x1ef)][_0x5664be(-0x23f,-0x1e4)][_0x21251c(0x269,0x239)][_0x21251c(0x2a8,0x260)],_0x4b94ea['height']=this['_map'][_0x21251c(0x31c,0x3a8)][_0x5664be(-0x2f8,-0x297)][_0x5664be(-0x275,-0x1ed)],_0x4b94ea;}['resize'](){function _0x193208(_0x166ecc,_0x1b4a33){return _0x59248e(_0x166ecc-0x2e,_0x1b4a33);}function _0x1ce98b(_0x14613f,_0x319ce2){return _0x59248e(_0x319ce2- -0x513,_0x14613f);}this[_0x1ce98b(-0x1c5,-0x1de)]&&(this['canvas'][_0x193208(0x35c,0x306)]['width']=this[_0x1ce98b(-0x160,-0x136)][_0x193208(0x416,0x3ec)][_0x193208(0x363,0x3cc)]['clientWidth']+'px',this[_0x1ce98b(-0x223,-0x1de)][_0x193208(0x35c,0x3a0)][_0x1ce98b(-0x106,-0x141)]=this[_0x1ce98b(-0x125,-0x136)]['scene']['canvas']['clientHeight']+'px',this['canvas'][_0x193208(0x413,0x446)]=this[_0x1ce98b(-0x19c,-0x136)]['scene'][_0x193208(0x363,0x314)][_0x193208(0x3a2,0x360)],this['canvas'][_0x193208(0x400,0x425)]=this['_map']['scene']['canvas']['clientHeight']);}['bindEvent'](){function _0x4ae883(_0x4e8155,_0x33bcef){return _0x59248e(_0x33bcef- -0x364,_0x4e8155);}const _0xbaaa8=this;let _0x5b40ce=Date['now']();(function _0x33c251(){function _0x342778(_0x51ec86,_0x5a6100){return _0x32c3(_0x51ec86-0x1fb,_0x5a6100);}if(_0xbaaa8[_0x342778(0x317,0x347)])return;function _0x24b054(_0xa93c0c,_0x169e5d){return _0x32c3(_0x169e5d-0x34d,_0xa93c0c);}_0xbaaa8[_0x342778(0x272,0x274)]=window['requestAnimationFrame'](_0x33c251);if(_0xbaaa8['show']&&_0xbaaa8['windField']){const _0x54e0e5=Date['now'](),_0x434ffb=_0x54e0e5-_0x5b40ce;_0x434ffb>_0xbaaa8['frameTime']&&(_0x5b40ce=_0x54e0e5-_0x434ffb%_0xbaaa8[_0x342778(0x2e7,0x347)],_0xbaaa8['update']());}}(),window['addEventListener'](_0x2767c4(0x1df,0x24c),this['resize']['bind'](this),![]));function _0x2767c4(_0x29e05e,_0x394d7f){return _0x2962c5(_0x394d7f,_0x29e05e-0x232);}this['mouse_down']=![],this['mouse_move']=![],this['options'][_0x4ae883(0x37,-0x1f)]&&(this[_0x4ae883(0xb5,0x79)]['on'](mars3d__namespace[_0x4ae883(0xa5,0x54)]['wheel'],this['_onMapWhellEvent'],this),this[_0x4ae883(0x7f,0x79)]['on'](mars3d__namespace['EventType'][_0x2767c4(0x29d,0x307)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x2767c4(0x216,0x269)][_0x4ae883(0xd4,0xed)],this['_onMouseUpEvent'],this));}[_0x2962c5(0x7b,0x4)](){window[_0x2d3bdc(0x384,0x40f)](this[_0x2d3bdc(0x35a,0x308)]);function _0x2d3bdc(_0x8215f9,_0x3fda72){return _0x2962c5(_0x8215f9,_0x3fda72-0x3ab);}function _0xe702e6(_0x1c12a5,_0x4fcdbf){return _0x2962c5(_0x4fcdbf,_0x1c12a5- -0x1c2);}delete this['_animateFrame'],window[_0xe702e6(-0x16c,-0x1c4)]('resize',this[_0xe702e6(-0x215,-0x1db)]),this['options'][_0xe702e6(-0x251,-0x1ce)]&&(this[_0xe702e6(-0x1b9,-0x138)][_0xe702e6(-0x1f9,-0x24b)](mars3d__namespace[_0xe702e6(-0x1de,-0x23f)]['wheel'],this[_0xe702e6(-0x20b,-0x25a)],this),this['_map']['off'](mars3d__namespace[_0xe702e6(-0x1de,-0x165)][_0xe702e6(-0x157,-0x1c1)],this[_0x2d3bdc(0x3a1,0x342)],this),this['_map']['off'](mars3d__namespace[_0x2d3bdc(0x340,0x38f)]['mouseUp'],this[_0xe702e6(-0x1e0,-0x25b)],this),this['_map'][_0x2d3bdc(0x3e6,0x374)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x2962c5(0x33,-0x49)](_0x3026b5){clearTimeout(this[_0x306264(-0x30,0xf)]);function _0x4f140b(_0x52d8c4,_0x54c7b5){return _0x59248e(_0x52d8c4- -0x1c5,_0x54c7b5);}function _0x306264(_0x44d8d4,_0x240df0){return _0x2962c5(_0x240df0,_0x44d8d4- -0x4e);}if(!this[_0x4f140b(0x171,0x121)]||!this[_0x306264(-0xed,-0xd1)])return;this[_0x306264(-0xed,-0xa1)][_0x4f140b(0x169,0x1db)][_0x4f140b(0x235,0x1c6)]=_0x306264(-0x10,-0x20),this[_0x306264(-0x30,0x43)]=setTimeout(()=>{if(!this[_0x236b44(0x1b5,0x241)])return;this['redraw']();function _0x236b44(_0x267df1,_0x33da78){return _0x4f140b(_0x267df1-0x44,_0x33da78);}function _0x29f7c8(_0x4a5525,_0x3b8988){return _0x306264(_0x3b8988-0x35f,_0x4a5525);}this['canvas']['style'][_0x29f7c8(0x329,0x337)]=_0x29f7c8(0x39b,0x374);},0xc8);}['_onMouseDownEvent'](_0x563ef4){this[_0x189896(-0x49,-0x65)]=!![];function _0x2ef544(_0x57f434,_0x817710){return _0x59248e(_0x57f434- -0xfc,_0x817710);}this['_map'][_0x2ef544(0x2a1,0x2b9)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x189896(_0x49922d,_0x243c77){return _0x2962c5(_0x49922d,_0x243c77- -0x15);}this[_0x189896(-0x8e,-0xc)]['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x127932){function _0x3b10ad(_0xb60fcb,_0x35d723){return _0x59248e(_0x35d723- -0x320,_0xb60fcb);}function _0x3d6093(_0x5613f8,_0x2f954d){return _0x59248e(_0x2f954d- -0x29f,_0x5613f8);}if(!this[_0x3b10ad(0x42,0x16)]||!this['canvas'])return;this['mouse_down']&&(this['canvas'][_0x3b10ad(0xc,0xe)][_0x3b10ad(0x10c,0xda)]='hidden',this[_0x3b10ad(0x4c,0x8e)]=!![]);}['_onMouseUpEvent'](_0x4be4d2){function _0x443e88(_0x13fd15,_0x42b256){return _0x2962c5(_0x13fd15,_0x42b256-0x6);}function _0x136b0b(_0xe286b5,_0x44611d){return _0x59248e(_0x44611d- -0x126,_0xe286b5);}if(!this['show']||!this['canvas'])return;this[_0x443e88(-0x79,0xf)]['off'](mars3d__namespace[_0x443e88(-0x7b,-0x16)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x136b0b(0x1d8,0x25e)]&&this['mouse_move']&&this[_0x443e88(0x12,0x8b)](),this['canvas']['style'][_0x443e88(0x94,0x2c)]='visible',this['mouse_down']=![],this['mouse_move']=![];}[_0x59248e(0x346,0x341)](_0x291443){this[_0x2e194d(-0x6e,-0xb2)]();function _0x2e194d(_0x3a413b,_0x43b5ae){return _0x59248e(_0x3a413b- -0x49f,_0x43b5ae);}this[_0x554181(0x2b4,0x2ef)]=_0x291443,this['windField']['setDate'](_0x291443);function _0x554181(_0x49d638,_0x3477b9){return _0x2962c5(_0x3477b9,_0x49d638-0x2a5);}this['redraw']();}[_0x59248e(0x459,0x41a)](){function _0x47535c(_0x28f3b7,_0x53369e){return _0x59248e(_0x28f3b7- -0x59,_0x53369e);}if(!this[_0x5cddf1(0xeb,0xff)])return;function _0x5cddf1(_0x1b4d80,_0x3c11fe){return _0x59248e(_0x1b4d80- -0x24b,_0x3c11fe);}this[_0x47535c(0x396,0x3b0)]['setOptions'](this['options']),this[_0x5cddf1(0x131,0x12d)]();}['update'](){if(this['_updateIng'])return;function _0x1a7235(_0xfaf08d,_0x225f90){return _0x59248e(_0x225f90- -0x36b,_0xfaf08d);}function _0x5ea46a(_0x1b1fe6,_0x34b3a7){return _0x2962c5(_0x34b3a7,_0x1b1fe6- -0x10d);}this[_0x1a7235(-0x34,-0x3c)]=!![];if(this[_0x5ea46a(-0xe6,-0x74)])this['windField'][_0x1a7235(0x1b,0x11)]();else{const _0x49353b=this[_0x5ea46a(-0xf2,-0x77)]['getParticles']();this['_drawLines'](_0x49353b);}this['_updateIng']=![];}['_drawLines'](_0x66ad09){this['_canvasParticles']=_0x66ad09,this['canvasContext'][_0x6a9478(-0x16f,-0x13e)]=_0x6a9478(-0x79,-0xc8),this[_0x1d91c(-0x199,-0x1d9)][_0x1d91c(-0x2b1,-0x260)](0x0,0x0,this['canvasWidth'],this[_0x6a9478(-0x80,0x4)]),this[_0x6a9478(-0xad,-0x6f)]['globalCompositeOperation']='lighter',this['canvasContext']['globalAlpha']=0.9;function _0x6a9478(_0x5a32e1,_0x3c97ba){return _0x59248e(_0x5a32e1- -0x4b6,_0x3c97ba);}function _0x1d91c(_0x2a4b93,_0x41d783){return _0x59248e(_0x41d783- -0x5e2,_0x2a4b93);}const _0x52dfc7=this['_map']['scene']['mode']!==Cesium[_0x1d91c(-0x2e2,-0x2b2)]['SCENE3D'],_0x171d57=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x332d5f=0x0,_0x21934f=_0x66ad09['length'];_0x332d5f<_0x21934f;_0x332d5f++){const _0x177cd9=_0x66ad09[_0x332d5f],_0x106ed5=this['_tomap'](_0x177cd9,_0x177cd9['lng'],_0x177cd9[_0x6a9478(-0xac,-0x122)],_0x177cd9[_0x1d91c(-0x260,-0x23d)]),_0x118212=this['_tomap'](_0x177cd9,_0x177cd9[_0x6a9478(-0xb5,-0xb3)],_0x177cd9[_0x1d91c(-0x160,-0x1da)],_0x177cd9['talt']);if(!_0x106ed5||!_0x118212)continue;if(_0x52dfc7&&Math['abs'](_0x106ed5[0x0]-_0x118212[0x0])>=_0x171d57)continue;this['canvasContext']['beginPath'](),this['canvasContext'][_0x1d91c(-0x16d,-0x18c)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this['_colorRamp']['getColor'](_0x177cd9['speed']),this['canvasContext']['moveTo'](_0x106ed5[0x0],_0x106ed5[0x1]),this['canvasContext']['lineTo'](_0x118212[0x0],_0x118212[0x1]),this['canvasContext']['stroke']();}else{this[_0x1d91c(-0x163,-0x1d9)][_0x6a9478(-0x61,-0x56)](),this['canvasContext'][_0x6a9478(-0x60,-0xcb)]=this[_0x6a9478(-0x60,-0xdd)],this['canvasContext']['strokeStyle']=this[_0x1d91c(-0x1dd,-0x24d)];for(let _0x650120=0x0,_0x591887=_0x66ad09[_0x6a9478(-0x93,-0xef)];_0x650120<_0x591887;_0x650120++){const _0x2eac29=_0x66ad09[_0x650120],_0xc4d4c8=this[_0x1d91c(-0x174,-0x1b6)](_0x2eac29,_0x2eac29[_0x1d91c(-0x2f8,-0x2b0)],_0x2eac29['lat'],_0x2eac29[_0x1d91c(-0x29b,-0x23d)]),_0x2749d8=this[_0x1d91c(-0x1ee,-0x1b6)](_0x2eac29,_0x2eac29[_0x1d91c(-0x262,-0x1e1)],_0x2eac29['tlat'],_0x2eac29['talt']);if(!_0xc4d4c8||!_0x2749d8)continue;if(_0x52dfc7&&Math[_0x1d91c(-0x116,-0x196)](_0xc4d4c8[0x0]-_0x2749d8[0x0])>=_0x171d57)continue;this[_0x1d91c(-0x188,-0x1d9)][_0x1d91c(-0x26d,-0x280)](_0xc4d4c8[0x0],_0xc4d4c8[0x1]),this[_0x6a9478(-0xad,-0x1e)]['lineTo'](_0x2749d8[0x0],_0x2749d8[0x1]);}this['canvasContext'][_0x1d91c(-0x1f4,-0x276)]();}}['_tomap'](_0x4698b1,_0x48d406,_0xb4ff1e,_0x2af3f5){const _0x340c14=Cesium['Cartesian3']['fromDegrees'](_0x48d406,_0xb4ff1e,_0x2af3f5??this['fixedHeight']),_0x45c015=this[_0x1ce2bc(-0x20,0x10)][_0x1ce2bc(-0x15,0x3)];function _0x1ce2bc(_0xfaf05d,_0x4854ce){return _0x2962c5(_0x4854ce,_0xfaf05d- -0x29);}if(_0x45c015[_0x59222f(-0x2a6,-0x2de)]===Cesium['SceneMode']['SCENE3D']){const _0xb8e619=new Cesium[(_0x59222f(-0x1ee,-0x195))](_0x45c015[_0x59222f(-0x201,-0x276)][_0x59222f(-0x1d3,-0x1d5)],_0x45c015['camera'][_0x59222f(-0x1ed,-0x1ea)]),_0x586b9f=_0xb8e619['isPointVisible'](_0x340c14);if(!_0x586b9f)return _0x4698b1['age']=0x0,null;}function _0x59222f(_0x1d3d67,_0x5f2b7b){return _0x2962c5(_0x5f2b7b,_0x1d3d67- -0x22d);}const _0x19e4d9=mars3d__namespace[_0x1ce2bc(-0x44,-0xb2)]['toWindowCoordinates'](this['_map'][_0x59222f(-0x219,-0x1a0)],_0x340c14);return _0x19e4d9?[_0x19e4d9['x'],_0x19e4d9['y']]:null;}[_0x2962c5(0x88,0x5d)](){function _0x2b678a(_0x12ff00,_0x5de110){return _0x2962c5(_0x12ff00,_0x5de110- -0x97);}function _0x5a848f(_0x5be630,_0x13448e){return _0x2962c5(_0x13448e,_0x5be630-0x151);}this[_0x2b678a(-0x1,-0x7c)][_0x5a848f(0x1ae,0x22f)](),delete this[_0x5a848f(0x160,0x112)];}['initWorker'](){this['worker']=new Worker(this[_0x2858a5(-0x177,-0x19d)][_0x57187c(0xad,0xe3)]);function _0x2858a5(_0x502404,_0x1c073d){return _0x59248e(_0x502404- -0x563,_0x1c073d);}function _0x57187c(_0x2c854f,_0x24be70){return _0x2962c5(_0x24be70,_0x2c854f-0x86);}this['worker'][_0x2858a5(-0x1e8,-0x168)]=_0x4a3cd5=>{this[_0x26f488(-0x5e,-0x20)](_0x4a3cd5['data']['particles']);function _0x26f488(_0x47e14e,_0x1a69ad){return _0x2858a5(_0x1a69ad-0x1d3,_0x47e14e);}this['_updateIng2']=![];},this[_0x57187c(0xa1,0xec)]={'init':_0x446b3d=>{const _0x453a08={};_0x453a08['type']='init';function _0x293ea1(_0x4083e0,_0x3982e6){return _0x2858a5(_0x4083e0-0x419,_0x3982e6);}function _0x273e67(_0x3d3556,_0x44a3bd){return _0x57187c(_0x3d3556-0x1c,_0x44a3bd);}_0x453a08[_0x293ea1(0x2a2,0x2d8)]=_0x446b3d,this[_0x293ea1(0x2b1,0x2a2)]['postMessage'](_0x453a08);},'setOptions':_0x2c476c=>{const _0x7672df={};_0x7672df['type']='setOptions',_0x7672df['options']=_0x2c476c;function _0x4acd0f(_0x5397c3,_0x2426fc){return _0x57187c(_0x2426fc-0xa7,_0x5397c3);}this[_0x4acd0f(0x1b7,0x154)]['postMessage'](_0x7672df);},'setDate':_0x2f1082=>{const _0x494f73={};_0x494f73[_0x54a881(-0x183,-0x176)]='setDate',_0x494f73[_0x3f3ff4(0x41f,0x46d)]=_0x2f1082;function _0x54a881(_0x105055,_0x4270d1){return _0x57187c(_0x4270d1- -0x1b5,_0x105055);}function _0x3f3ff4(_0x5111ed,_0x5e3469){return _0x2858a5(_0x5111ed-0x62c,_0x5e3469);}this['worker']['postMessage'](_0x494f73);},'update':()=>{if(this['_updateIng2'])return;function _0x7c2c3a(_0xf764c7,_0x2ecdae){return _0x2858a5(_0x2ecdae-0x300,_0xf764c7);}function _0x4c681c(_0x48deb0,_0x5ddd51){return _0x57187c(_0x48deb0-0x389,_0x5ddd51);}this[_0x7c2c3a(0x149,0x112)]=!![];const _0x27bb5b={};_0x27bb5b['type']='update',this[_0x7c2c3a(0x16b,0x198)]['postMessage'](_0x27bb5b);},'clear':()=>{const _0x2b69cc={};function _0x2e9ae1(_0x2a2035,_0x33e8a3){return _0x57187c(_0x33e8a3-0x41b,_0x2a2035);}_0x2b69cc['type']=_0x2e9ae1(0x54e,0x4fe),this['worker']['postMessage'](_0x2b69cc);}},this[_0x57187c(0xa1,0x9c)]['init'](this['options']);}}mars3d__namespace[_0x59248e(0x37e,0x305)]['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer'][_0x59248e(0x337,0x2c0)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x2962c5(-0x96,-0x22)]=WindLayer,exports['WindUtil']=WindUtil;const _0x347801={};_0x347801['value']=!![],Object['defineProperty'](exports,'__esModule',_0x347801);
|
|
15
|
-
}));
|