mars3d-wind 3.9.5 → 3.9.7
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/mars3d-wind.js +3 -3
- package/package.json +2 -2
package/mars3d-wind.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
|
3
3
|
*
|
|
4
|
-
* 版本信息:v3.9.
|
|
5
|
-
* 编译日期:2025-04-
|
|
4
|
+
* 版本信息:v3.9.7
|
|
5
|
+
* 编译日期:2025-04-21 19:49
|
|
6
6
|
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
7
|
* 使用单位:火星科技免费公开版 ,2025-02-01
|
|
8
8
|
*/
|
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
|
|
12
12
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
|
|
13
13
|
})(this, (function (exports, mars3d) {
|
|
14
|
-
'use strict';(function(_0x55d080,_0x3ded40){const _0x26df75=_0x55d080();function _0x1636b9(_0x100a3b,_0x236848){return _0x1d21(_0x236848-0x28b,_0x100a3b);}function _0x5efbae(_0x1bf3c5,_0xfe8cdc){return _0x1d21(_0xfe8cdc- -0x218,_0x1bf3c5);}while(!![]){try{const _0x4c8941=parseInt(_0x1636b9(0x3ae,0x351))/0x1*(-parseInt(_0x5efbae(-0x70,-0x94))/0x2)+parseInt(_0x1636b9(0x3db,0x3cc))/0x3*(-parseInt(_0x1636b9(0x315,0x33e))/0x4)+parseInt(_0x1636b9(0x39e,0x356))/0x5*(-parseInt(_0x1636b9(0x404,0x41d))/0x6)+parseInt(_0x1636b9(0x39d,0x40c))/0x7+parseInt(_0x1636b9(0x347,0x373))/0x8+-parseInt(_0x1636b9(0x489,0x403))/0x9*(parseInt(_0x1636b9(0x471,0x422))/0xa)+parseInt(_0x1636b9(0x3b1,0x429))/0xb;if(_0x4c8941===_0x3ded40)break;else _0x26df75['push'](_0x26df75['shift']());}catch(_0x3fc289){_0x26df75['push'](_0x26df75['shift']());}}}(_0x2c35,0x26c7e));function _0x2c35(){const _0x285162=['createPrimitives','LINEAR','zIndex','ymin','getParticles','moveTo','particlesNumber','_setOptionsHook','persists','_onMouseUpEvent','lat','call','_maxAge','nextParticlesPosition','sqrt','mouseMove','mouse_move','vertexShaderSource','colorTable','visibility','pixelDatatype','primitives','changed','processWindData','geometry','833565fvsDFw','vertexArray','particlesSpeed','drawingBufferHeight','depthTest','getPostProcessingPositionShader','refreshTimer','umin','UNSIGNED_INT','keys','speedFactor','_addedHook','visible','resize','longitude','samplingWindow','fromCssColorString','framebuffer','ymax','absolute','error','update','getUpdatePositionShader','STATIC_DRAW','preExecute','normal','owner','redraw','pointer-events','getSegmentDrawVertexShader','previousParticlesPosition','EventType','execute','scene','flipY','OPAQUE','max','off','createRenderingFramebuffers','latRange','wheel','log','_pointerEvents','applyViewerParameters','_createCanvas','canvasContext','clearFramebuffers','north','createRawRenderState','camera','getUVByXY','_calc_speedRate','FUNC_ADD','getSegmentDrawFragmentShader','type','873EeEbFc','forEach','_calcUV','tlat','viewerParameters','bindEvent','width','_randomParticle','random','197841ULpPtW','particlesTextureSize','framebuffers','22916LmLbXD','uniformMap','Cartesian2','TRIANGLES','_bilinearInterpolation','bounds','createWindTextures','height','now','computing','pickEllipsoid','outputTexture','getPrimitives','windTextures','1200lOXqFX','blue','frameRateAdjustment','unbindEvent','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a','31790Xyiyfc','fragmentShaderSource','canvasWind','clear','Cesium','array','requestAnimationFrame','9136226lgKqHv','clearCommand','min','toGridXY','updateViewerParameters','currentParticlesPosition','_onMouseMoveEvent','clientHeight','lineLength','bind','xmin','frameRate','calculateSpeed','mouse_down','sources','blendFuncDestination','Compute','auto','isInExtent','canvasHeight','CLAMP_TO_EDGE','windData','show','_map','options','postProcessingPosition','colors','removeEventListener','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\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(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.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//\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(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\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\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\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\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\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\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a','CanvasWindLayer','particles','wrapT','value','abs','addEventListener','speedRate','MIN_VALUE','worker','frameState.commandList\x20is\x20undefined','_updateIng','toDegrees','willReadFrequently','_onMouseDownEvent','vdata','4qYvbsq','lineTo','_mountedHook','ellipsoid','segments','windField','grid','push','pass','context','fixedHeight','color','updateOptions','rendering','age','createColorTableTexture','segmentsColor','setOptions','tlng','19qBimSV','pixelFormat','rectangle','dropRate','floor','480guBiNQ','particlesTextures','rows','frameTime','latitude','fromGeometry','_updateIng2','#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\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(lonLat.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\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\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\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a','__esModule','left','style','createSegmentsGeometry','cols','initWorker','updatePosition','isDynamic','flatMap','_colorRamp','NEAREST','commandList','strokeStyle','rgb(206,255,255)','length','_tomap','_speedRate','stroke','east','maxAge','shaderProgram','985096xGNJlY','values','PointTrans','postMessage','pow','speed','_removedHook','destroy','alt','canvasWidth','getUVByPoint','clientWidth','position','WindUtil','FLOAT','mars3d-canvasWind','getColor','south','commandType','morphComplete','magnificationFilter','attributeLocations','west','frameRateMonitor','modelMatrix','lineWidth','toRadians','createRenderingTextures','depthTexture','warn','RGBA','Math','cancelAnimationFrame','createParticlesTextures','xmax','udata','fromDegrees','destoryRenderingFramebuffers','rawRenderState','red','requestRender','particleSystem','data','setDate','slice','DEPTH_COMPONENT','commandToExecute','isPointVisible','default','DomUtil','hidden','dynamic','blendFuncSource','reCreateWindTextures','globe','blendEquation','setData','sceneMode','_drawLines','primitiveType','toWindowCoordinates','lng','canvas','register'];_0x2c35=function(){return _0x285162;};return _0x2c35();}function _interopNamespace(_0x39b565){function _0x28dcd3(_0x26b883,_0x9dc42c){return _0x1d21(_0x9dc42c-0x25f,_0x26b883);}if(_0x39b565&&_0x39b565[_0x28dcd3(0x2ed,0x332)])return _0x39b565;var _0x1fe4d2=Object['create'](null);_0x39b565&&Object[_0x28dcd3(0x361,0x3a9)](_0x39b565)['forEach'](function(_0x463be4){function _0x34f935(_0x43c398,_0x5cca64){return _0x474039(_0x5cca64- -0x23f,_0x43c398);}if(_0x463be4!==_0x34f935(-0x27d,-0x1f7)){var _0x25d565=Object['getOwnPropertyDescriptor'](_0x39b565,_0x463be4);Object['defineProperty'](_0x1fe4d2,_0x463be4,_0x25d565['get']?_0x25d565:{'enumerable':!![],'get':function(){return _0x39b565[_0x463be4];}});}});_0x1fe4d2['default']=_0x39b565;function _0x474039(_0x4d77fa,_0xfcc4b3){return _0x1d21(_0x4d77fa- -0xd0,_0xfcc4b3);}return _0x1fe4d2;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x2f1295,_0x22ac93){function _0x129ebe(_0x8ddd40,_0x4890e4){return _0x1d21(_0x8ddd40- -0x206,_0x4890e4);}const _0x1a8627=_0x2f1295*Math['cos'](Cesium$2['Math'][_0x129ebe(-0x104,-0x167)](_0x22ac93));return _0x1a8627;}function getV(_0x23d341,_0x1b51de){const _0x59d8cc=_0x23d341*Math['sin'](Cesium$2['Math'][_0x4880ce(-0x87,-0xfd)](_0x1b51de));function _0x4880ce(_0x15c8f9,_0x2f138b){return _0x1d21(_0x15c8f9- -0x189,_0x2f138b);}return _0x59d8cc;}function getSpeed(_0x44b5ba,_0x5a891d){const _0xc8f587=Math['sqrt'](Math['pow'](_0x44b5ba,0x2)+Math[_0x5cefd2(0x4f6,0x480)](_0x5a891d,0x2));function _0x5cefd2(_0x44825d,_0x2f5f62){return _0x1d21(_0x2f5f62-0x394,_0x44825d);}return _0xc8f587;}function _0x1d21(_0x5aa9ad,_0x4739d7){const _0x2c353a=_0x2c35();return _0x1d21=function(_0x1d2189,_0x39f312){_0x1d2189=_0x1d2189-0xb0;let _0x56617e=_0x2c353a[_0x1d2189];return _0x56617e;},_0x1d21(_0x5aa9ad,_0x4739d7);}function getDirection(_0x4b1e0c,_0x6a8fd9){let _0x545f7e=Cesium$2[_0x5d9a64(0x3f5,0x451)][_0x5d9a64(0x4b4,0x50c)](Math['atan2'](_0x6a8fd9,_0x4b1e0c));function _0x447660(_0x1e3662,_0x214c24){return _0x1d21(_0x1e3662-0x252,_0x214c24);}_0x545f7e+=_0x545f7e<0x0?0x168:0x0;function _0x5d9a64(_0x1817ee,_0x23929a){return _0x1d21(_0x1817ee-0x2ee,_0x23929a);}return _0x545f7e;}const _0x360715={};_0x360715['__proto__']=null,_0x360715['getU']=getU,_0x360715['getV']=getV,_0x360715['getSpeed']=getSpeed,_0x360715['getDirection']=getDirection;var WindUtil=_0x360715,updatePositionShader=_0x1537ff(-0x12a,-0x134),calculateSpeedShader=_0x1537ff(-0x1ee,-0x180),postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\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\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\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.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\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,\x200.0f,\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,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader=_0x2c9552(-0xe1,-0x157);const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x1537ff(-0x125,-0x15c)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x580fc3={};return _0x580fc3['sources']=[calculateSpeedShader],new ShaderSource$1(_0x580fc3);}static[_0x1537ff(-0x169,-0x1db)](){const _0x3693c3={};return _0x3693c3['sources']=[updatePositionShader],new ShaderSource$1(_0x3693c3);}static[_0x1537ff(-0x162,-0x1af)](){const _0x32c345={};return _0x32c345['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x32c345);}static['getSegmentDrawFragmentShader'](){const _0x20e1c8={};return _0x20e1c8['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x20e1c8);}static['getPostProcessingPositionShader'](){const _0x344320={};_0x344320[_0x39b3b7(0x2e9,0x353)]=[postProcessingPositionFragmentShader];function _0x39b3b7(_0x96cb1e,_0x1fb196){return _0x2c9552(_0x1fb196-0x442,_0x96cb1e);}return new ShaderSource$1(_0x344320);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x3ffa63){function _0x595fb4(_0x51d62b,_0x161983){return _0x2c9552(_0x51d62b- -0x11b,_0x161983);}this['commandType']=_0x3ffa63[_0x595fb4(-0x2bc,-0x306)],this[_0x2eb8c5(-0x9f,-0xc8)]=_0x3ffa63['geometry'],this['attributeLocations']=_0x3ffa63[_0x2eb8c5(-0xe2,-0x15d)];function _0x2eb8c5(_0x3aba78,_0x323161){return _0x1537ff(_0x3aba78-0xe1,_0x323161);}this['primitiveType']=_0x3ffa63[_0x595fb4(-0x293,-0x2cb)],this['uniformMap']=_0x3ffa63['uniformMap']||{},this[_0x2eb8c5(-0xa6,-0xad)]=_0x3ffa63['vertexShaderSource'],this[_0x595fb4(-0x21e,-0x244)]=_0x3ffa63['fragmentShaderSource'],this['rawRenderState']=_0x3ffa63['rawRenderState'],this['framebuffer']=_0x3ffa63[_0x2eb8c5(-0x8d,-0x7a)],this[_0x595fb4(-0x227,-0x282)]=_0x3ffa63[_0x595fb4(-0x227,-0x270)],this['autoClear']=_0x3ffa63['autoClear']??![],this['preExecute']=_0x3ffa63['preExecute'],this['show']=!![],this[_0x595fb4(-0x2a0,-0x2d1)]=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x3ffa63['isDynamic']??(()=>!![]),this['autoClear']&&(this[_0x595fb4(-0x217,-0x233)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0x595fb4(-0x252,-0x276)]}));}['createCommand'](_0x139196){function _0x12c193(_0x5c2cf9,_0xc097fe){return _0x2c9552(_0xc097fe-0x223,_0x5c2cf9);}function _0x40a29a(_0x27e360,_0x5904b5){return _0x2c9552(_0x27e360-0x39f,_0x5904b5);}if(this[_0x12c193(0xf3,0x82)]==='Draw'){const _0x375674={};_0x375674[_0x40a29a(0x1c0,0x22f)]=_0x139196,_0x375674['geometry']=this['geometry'],_0x375674[_0x12c193(0x38,0x85)]=this['attributeLocations'],_0x375674['bufferUsage']=BufferUsage$1[_0x40a29a(0x25c,0x25c)];const _0x394069=VertexArray$1['fromGeometry'](_0x375674),_0x2df678={};_0x2df678[_0x40a29a(0x1c0,0x23a)]=_0x139196,_0x2df678[_0x12c193(0xd7,0xc1)]=this['vertexShaderSource'],_0x2df678[_0x40a29a(0x29c,0x24f)]=this['fragmentShaderSource'],_0x2df678['attributeLocations']=this[_0x12c193(0xe9,0x85)];const _0x15d4e1=ShaderProgram['fromCache'](_0x2df678),_0x14f0e1=RenderState['fromCache'](this[_0x12c193(0x28,0x96)]),_0x114c56={};return _0x114c56[_0x12c193(0xca,0xe3)]=this,_0x114c56[_0x12c193(0x88,0xca)]=_0x394069,_0x114c56['primitiveType']=this[_0x12c193(0x67,0xab)],_0x114c56[_0x12c193(0xdf,0x88)]=Matrix4['IDENTITY'],_0x114c56['renderState']=_0x14f0e1,_0x114c56[_0x40a29a(0x1eb,0x18e)]=_0x15d4e1,_0x114c56[_0x40a29a(0x256,0x2b2)]=this['framebuffer'],_0x114c56['uniformMap']=this[_0x40a29a(0x289,0x2d5)],_0x114c56[_0x40a29a(0x1bf,0x1db)]=Pass$1[_0x12c193(0x93,0xec)],new DrawCommand(_0x114c56);}else{if(this[_0x12c193(0xbc,0x82)]==='Compute'){const _0x40f9ea={};return _0x40f9ea[_0x40a29a(0x25f,0x29e)]=this,_0x40f9ea['fragmentShaderSource']=this[_0x12c193(0x17c,0x120)],_0x40f9ea['uniformMap']=this[_0x40a29a(0x289,0x2dc)],_0x40f9ea['outputTexture']=this[_0x40a29a(0x293,0x2ac)],_0x40f9ea[_0x12c193(0x61,0xb8)]=!![],new ComputeCommand(_0x40f9ea);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x517fd0,_0x3ad128){this['geometry']=_0x3ad128;function _0x67d53a(_0x52742e,_0x52ff88){return _0x1537ff(_0x52ff88- -0xa7,_0x52742e);}defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x517fd0,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x67d53a(-0x233,-0x20f)]}));}[_0x2c9552(-0x145,-0x19b)](_0x28c08d){function _0x3fbfee(_0x1f3933,_0x2ce374){return _0x1537ff(_0x1f3933-0x206,_0x2ce374);}if(!this[_0x3242c1(0x3c,0xa4)]())return;if(!this['show']||!defined(_0x28c08d))return;!defined(this['commandToExecute'])&&(this[_0x3242c1(0x78,0x62)]=this['createCommand'](_0x28c08d['context']));defined(this[_0x3242c1(0xbb,0x48)])&&this['preExecute']();if(!_0x28c08d['commandList']){console['warn'](_0x3fbfee(0x10a,0xfc));return;}function _0x3242c1(_0x75091f,_0x5d6d0e){return _0x1537ff(_0x75091f-0x222,_0x5d6d0e);}defined(this['clearCommand'])&&_0x28c08d[_0x3242c1(0x40,0x6a)][_0x3242c1(0x1c,0x1d)](this['clearCommand']),defined(this['commandToExecute'])&&_0x28c08d[_0x3242c1(0x40,0x3f)][_0x3fbfee(0x0,-0xf)](this[_0x3242c1(0x78,0xdb)]);}['isDestroyed'](){return![];}['destroy'](){function _0x1a0675(_0x17cc52,_0x5c5e9f){return _0x2c9552(_0x17cc52- -0x8f,_0x5c5e9f);}if(defined(this[_0x1e9f8e(0x14a,0x14d)])){var _0x4a8a09;(_0x4a8a09=this['commandToExecute'][_0x1e9f8e(0x15a,0x11e)])===null||_0x4a8a09===void 0x0||_0x4a8a09[_0x1e9f8e(0x1af,0x126)](),this['commandToExecute']['shaderProgram']=undefined;}function _0x1e9f8e(_0x3194fa,_0x3a1e48){return _0x1537ff(_0x3a1e48-0x2f7,_0x3194fa);}return destroyObject(this);}}function deepMerge(_0x506572,_0x411904){function _0x16e9dd(_0x5ba41c,_0x340362){return _0x2c9552(_0x340362-0x2e5,_0x5ba41c);}if(!_0x506572)return _0x411904;function _0x101801(_0x45a89e,_0x6f7301){return _0x2c9552(_0x45a89e-0x5c8,_0x6f7301);}if(!_0x411904)return _0x506572;const _0x4170ae={..._0x411904},_0x425b50=_0x4170ae;for(const _0x56554d in _0x506572){if(Object['prototype']['hasOwnProperty'][_0x101801(0x460,0x3e9)](_0x506572,_0x56554d)){const _0x1b29f9=_0x506572[_0x56554d],_0x21b90f=_0x411904[_0x56554d];if(Array['isArray'](_0x1b29f9)){_0x425b50[_0x56554d]=_0x1b29f9[_0x16e9dd(0x185,0x15e)]();continue;}if(_0x1b29f9&&typeof _0x1b29f9==='object'){_0x425b50[_0x56554d]=deepMerge(_0x1b29f9,_0x21b90f||{});continue;}_0x1b29f9!==undefined&&(_0x425b50[_0x56554d]=_0x1b29f9);}}return _0x425b50;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x4b8421,_0x58355d,_0x565f0e,_0x314c55,_0x20585e){this['context']=_0x4b8421,this[_0x5bc723(0x3bd,0x3fd)]=_0x565f0e,this[_0x241dc0(-0x1b3,-0x177)]=_0x314c55,this[_0x5bc723(0x382,0x3fa)]=_0x58355d,this['frameRate']=0x3c,this[_0x241dc0(-0x12d,-0x15f)]=0x1;const _0x378c12={};function _0x241dc0(_0x36d40c,_0x34d6e2){return _0x2c9552(_0x34d6e2- -0x58,_0x36d40c);}_0x378c12['scene']=_0x20585e;function _0x5bc723(_0x515e49,_0x4ad639){return _0x1537ff(_0x4ad639-0x507,_0x515e49);}_0x378c12[_0x241dc0(-0x201,-0x1a3)]=0x1,_0x378c12['quietPeriod']=0x0,this[_0x5bc723(0x357,0x346)]=new FrameRateMonitor(_0x378c12),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x192ea0=()=>{function _0x59eecf(_0x24690b,_0x1d097d){return _0x1d21(_0x24690b- -0x1b6,_0x1d097d);}function _0x21f6a6(_0x539539,_0x46c80e){return _0x1d21(_0x539539- -0x30c,_0x46c80e);}this[_0x21f6a6(-0x20d,-0x1e8)]['lastFramesPerSecond']>0x14&&(this['frameRate']=this[_0x59eecf(-0xb7,-0x53)]['lastFramesPerSecond'],this[_0x21f6a6(-0x178,-0x11a)]=0x3c/Math['max'](this[_0x21f6a6(-0x163,-0x1cb)],0x1));};_0x192ea0();const _0x117ae5=setInterval(_0x192ea0,0x3e8),_0x5414db=this['destroy']['bind'](this);function _0x41da91(_0x3d3992,_0x49cb46){return _0x1537ff(_0x3d3992- -0x7,_0x49cb46);}this[_0x41da91(-0x1d8,-0x1fb)]=()=>{clearInterval(_0x117ae5),_0x5414db();};}[_0x2c9552(-0x111,-0x198)](){function _0xa5c497(_0x1fd7d5,_0x20eab5){return _0x2c9552(_0x20eab5-0x14c,_0x1fd7d5);}const _0x398e96={};_0x398e96['minificationFilter']=TextureMinificationFilter$1['LINEAR'],_0x398e96[_0x3011be(-0x8a,-0xc)]=TextureMagnificationFilter$1['LINEAR'];const _0x44306a={'context':this['context'],'width':this['windData'][_0x3011be(-0x8,0x59)],'height':this['windData'][_0xa5c497(0xb4,0x3c)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options'][_0x3011be(-0x23,-0x12)]??![],'sampler':new Sampler$1(_0x398e96)};function _0x3011be(_0x59cc26,_0x2116a3){return _0x1537ff(_0x59cc26-0x13a,_0x2116a3);}this[_0x3011be(0xb,0x90)]={'U':new Texture$1({..._0x44306a,'source':{'arrayBufferView':new Float32Array(this[_0xa5c497(0x2c,0x64)]['u']['array'])}}),'V':new Texture$1({..._0x44306a,'source':{'arrayBufferView':new Float32Array(this[_0xa5c497(0xbc,0x64)]['v']['array'])}})};}['createParticlesTextures'](){function _0x1078a5(_0x1aa1f6,_0x3b4995){return _0x2c9552(_0x3b4995-0x47b,_0x1aa1f6);}const _0x275fd5={};_0x275fd5['minificationFilter']=TextureMinificationFilter$1[_0x1078a5(0x295,0x2bd)],_0x275fd5[_0x1078a5(0x28f,0x2dc)]=TextureMagnificationFilter$1[_0x1078a5(0x33d,0x2bd)];function _0x3cae29(_0x57b419,_0x2d1391){return _0x2c9552(_0x57b419-0x37f,_0x2d1391);}const _0x1f3474={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0x1078a5(0x368,0x2e6)],'pixelDatatype':PixelDatatype$1[_0x1078a5(0x2cb,0x2d6)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options'][_0x3cae29(0x266,0x2b3)]*this[_0x1078a5(0x316,0x396)][_0x1078a5(0x3cd,0x362)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x275fd5)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x1f3474),'currentParticlesPosition':new Texture$1(_0x1f3474),'nextParticlesPosition':new Texture$1(_0x1f3474),'postProcessingPosition':new Texture$1(_0x1f3474),'particlesSpeed':new Texture$1(_0x1f3474)};}['destroyParticlesTextures'](){function _0xc67b6d(_0x3d7d75,_0x41bdc9){return _0x2c9552(_0x3d7d75-0x8,_0x41bdc9);}function _0x5b8a31(_0x24243f,_0x47577a){return _0x2c9552(_0x47577a-0xc7,_0x24243f);}Object[_0x5b8a31(-0xc0,-0xeb)](this[_0x5b8a31(-0xe1,-0x108)])[_0xc67b6d(-0x11a,-0x121)](_0x3dfd46=>_0x3dfd46['destroy']());}['createComputingPrimitives'](){function _0x48d0e3(_0x3795e8,_0x33d708){return _0x1537ff(_0x3795e8-0x80,_0x33d708);}function _0x322134(_0x104994,_0x2e19f4){return _0x1537ff(_0x104994- -0xca,_0x2e19f4);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x48d0e3(-0x92,-0x69),'uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x48d0e3(-0x8d,-0xa0)]['u']['min'],this[_0x48d0e3(-0x8d,-0xd3)]['u'][_0x48d0e3(-0xdb,-0x117)]),'vRange':()=>new Cartesian2$1(this[_0x48d0e3(-0x8d,-0x38)]['v']['min'],this[_0x48d0e3(-0x8d,-0xb8)]['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData'][_0x322134(-0x29d,-0x249)]['min'],this[_0x48d0e3(-0x8d,-0xaa)]['speed'][_0x48d0e3(-0xdb,-0xc9)]),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x546661(_0x38b0ec,_0x2d6ed5){return _0x48d0e3(_0x2d6ed5-0x70,_0x38b0ec);}function _0x3e69f8(_0x4addfc,_0xf4a002){return _0x322134(_0x4addfc-0x492,_0xf4a002);}return(this[_0x546661(-0x89,-0x54)]['pixelSize']+0x32)*this[_0x546661(-0x55,-0x1a)][_0x3e69f8(0x253,0x2c2)];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData'][_0x48d0e3(-0xc2,-0xf0)],this['windData']['height']),'minimum':()=>new Cartesian2$1(this['windData'][_0x48d0e3(-0xb7,-0xe4)][_0x322134(-0x28c,-0x2cd)],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds']['east'],this['windData'][_0x322134(-0x201,-0x1b3)][_0x322134(-0x21a,-0x1a0)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x322134(-0x2be,-0x2de)][_0x48d0e3(-0xfd,-0xe9)],'preExecute':()=>{function _0x9694e1(_0x38cf74,_0x1dfa87){return _0x48d0e3(_0x1dfa87-0x10a,_0x38cf74);}function _0x3473d1(_0x29f899,_0x518fff){return _0x48d0e3(_0x29f899-0x28c,_0x518fff);}const _0x167863=this[_0x9694e1(-0x40,-0x6a)][_0x9694e1(0x2,0x29)];this[_0x9694e1(-0x66,-0x6a)]['previousParticlesPosition']=this[_0x3473d1(0x118,0x118)]['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this[_0x9694e1(-0xe5,-0x6a)][_0x3473d1(0x203,0x270)],this['particlesTextures'][_0x3473d1(0x203,0x20c)]=_0x167863,this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives'][_0x9694e1(0x62,0x74)][_0x3473d1(0x162,0x192)]['outputTexture']=this['particlesTextures'][_0x9694e1(-0x54,0xd)]);},'isDynamic':()=>this['options'][_0x322134(-0x26f,-0x1e5)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x48d0e3(-0x174,-0x1ec)][_0x48d0e3(-0x9d,-0xe5)],'particlesSpeed':()=>this[_0x322134(-0x2be,-0x24a)][_0x322134(-0x247,-0x2ab)]},'fragmentShaderSource':ShaderManager[_0x48d0e3(-0xe9,-0xb2)](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x42c20b(_0x3d780d,_0xf8d379){return _0x322134(_0x3d780d-0x43d,_0xf8d379);}function _0x158ec3(_0x59c80a,_0x2aa1fd){return _0x322134(_0x2aa1fd-0x190,_0x59c80a);}this[_0x42c20b(0x1f0,0x271)]['updatePosition']['commandToExecute']&&(this[_0x158ec3(-0x140,-0xbd)][_0x158ec3(-0xd1,-0x121)][_0x158ec3(-0xb0,-0xe4)][_0x158ec3(-0x42,-0x6b)]=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this[_0x322134(-0x1d4,-0x1d4)]['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x48d0e3(-0x92,-0xb4),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x48d0e3(-0x10b,-0x12c)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this[_0x322134(-0x20e,-0x21c)][_0x322134(-0x222,-0x1b2)],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x48d0e3(-0xb7,-0x13e)]['west'],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this[_0x322134(-0x1d7,-0x208)][_0x48d0e3(-0xb7,-0xa5)]['south'],this['windData'][_0x48d0e3(-0xb7,-0xcb)]['north']),'randomCoefficient':function(){function _0x2398dc(_0x51c2cf,_0x4d079a){return _0x322134(_0x4d079a-0x72f,_0x51c2cf);}return Math[_0x2398dc(0x57b,0x525)]();},'dropRate':()=>this['options'][_0x48d0e3(-0x177,-0x16f)],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this[_0x48d0e3(-0x8a,-0x4b)]['useViewerBounds']},'fragmentShaderSource':ShaderManager[_0x322134(-0x244,-0x21f)](),'outputTexture':this[_0x322134(-0x2be,-0x2cf)]['postProcessingPosition'],'preExecute':()=>{function _0x19477e(_0x57de2b,_0x25ea1a){return _0x322134(_0x25ea1a-0x15f,_0x57de2b);}function _0x6eacfd(_0x1ed73c,_0x29d6b3){return _0x48d0e3(_0x1ed73c-0x4e0,_0x29d6b3);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this[_0x6eacfd(0x3dd,0x3bd)]['postProcessingPosition']['commandToExecute']['outputTexture']=this[_0x19477e(-0xf1,-0x15f)][_0x19477e(-0xc1,-0x74)]);},'isDynamic':()=>this[_0x48d0e3(-0x8a,-0xc4)]['dynamic']})};}[_0x2c9552(-0x17e,-0x1e3)](){this[_0x5040fc(0xed,0x97)]['U'][_0x5040fc(0x4b,0xa0)]();function _0x10ff56(_0x1b0f00,_0x577015){return _0x1537ff(_0x577015-0x434,_0x1b0f00);}this['windTextures']['V'][_0x5040fc(0x4b,0x62)]();function _0x5040fc(_0xe82f06,_0xcb7968){return _0x2c9552(_0xe82f06-0x1f7,_0xcb7968);}this['createWindTextures']();}['updateWindData'](_0x3edce0){this['windData']=_0x3edce0,this['reCreateWindTextures']();}[_0x1537ff(-0x201,-0x22e)](_0x1b7bc8){const _0x2d8c12=_0x1b7bc8['flipY']!==undefined&&_0x1b7bc8['flipY']!==this['options']['flipY'];this['options']=deepMerge(_0x1b7bc8,this['options']);function _0x401aa4(_0x1ec319,_0x1f4e54){return _0x1537ff(_0x1ec319-0x3c7,_0x1f4e54);}_0x2d8c12&&this[_0x401aa4(0x224,0x28c)]();}['processWindData'](_0x15dff7){const {array:_0x35e5d3}=_0x15dff7;let {min:_0x494832,max:_0x41e685}=_0x15dff7;function _0x3cd59d(_0x5e6213,_0x5cd488){return _0x1537ff(_0x5e6213-0x507,_0x5cd488);}const _0xff36b8=new Float32Array(_0x35e5d3['length']);_0x494832===undefined&&(console[_0x3cd59d(0x34c,0x300)]('min\x20is\x20undefined,\x20calculate\x20min'),_0x494832=Math[_0x3cd59d(0x3e7,0x3c3)](..._0x35e5d3));function _0x165da8(_0x4f736a,_0xe72f82){return _0x1537ff(_0x4f736a- -0x3,_0xe72f82);}_0x41e685===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x41e685=Math['max'](..._0x35e5d3));const _0x2da3bc=Math[_0x3cd59d(0x3ac,0x322)](Math['abs'](_0x494832),Math[_0x165da8(-0x104,-0x158)](_0x41e685));for(let _0x3eb948=0x0;_0x3eb948<_0x35e5d3['length'];_0x3eb948++){const _0x435afa=_0x35e5d3[_0x3eb948]/_0x2da3bc;_0xff36b8[_0x3eb948]=_0x435afa;}return _0xff36b8;}[_0x2c9552(-0x1ac,-0x1c7)](){function _0x26015e(_0x4a4f34,_0x202bcd){return _0x2c9552(_0x4a4f34-0x323,_0x202bcd);}function _0x58c9a1(_0x5e8840,_0x34cc9a){return _0x2c9552(_0x34cc9a-0x1f1,_0x5e8840);}Object['values'](this['windTextures'])['forEach'](_0x3b6c1c=>_0x3b6c1c[_0x26015e(0x177,0x169)]()),Object['values'](this['particlesTextures'])['forEach'](_0x259da5=>_0x259da5['destroy']()),Object['values'](this[_0x58c9a1(0xed,0x93)])[_0x26015e(0x201,0x195)](_0xd93b1b=>_0xd93b1b[_0x26015e(0x177,0x1e5)]()),this[_0x26015e(0x187,0x168)][_0x58c9a1(-0x40,0x45)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x7fce2c,_0x1103eb,_0x36b71e,_0x2e1ef2){this['context']=_0x7fce2c,this[_0x40f2e3(0x60,-0x8)]=_0x1103eb,this[_0x1d563a(0x35,0xb4)]=_0x36b71e,this[_0x1d563a(0x46,-0x36)]=_0x2e1ef2;(typeof this['options'][_0x1d563a(0x3b,0x92)]!=='number'||this[_0x1d563a(0x6f,0xba)]['particlesTextureSize']<=0x0)&&(console[_0x40f2e3(-0x1,0x71)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x40f2e3(0x60,0xda)]['particlesTextureSize']=0x100);function _0x40f2e3(_0x4ff446,_0x3c7bda){return _0x2c9552(_0x4ff446-0x145,_0x3c7bda);}this['colorTable']=this[_0x40f2e3(-0x94,-0x7f)]();function _0x1d563a(_0x158249,_0x22a790){return _0x1537ff(_0x158249-0x179,_0x22a790);}this['textures']=this['createRenderingTextures'](),this['framebuffers']=this[_0x1d563a(0x20,0x78)](),this['primitives']=this['createPrimitives']();}[_0x2c9552(-0x198,-0x190)](){const _0x6e7be5={};_0x6e7be5['context']=this[_0x203c21(0x3eb,0x3d5)];function _0x203c21(_0x551c97,_0xb48e93){return _0x1537ff(_0x551c97-0x5ef,_0xb48e93);}_0x6e7be5['width']=this['context']['drawingBufferWidth'],_0x6e7be5['height']=this[_0xf0103f(0x23b,0x2ba)]['drawingBufferHeight'],_0x6e7be5[_0xf0103f(0x335,0x2c5)]=PixelFormat['RGBA'],_0x6e7be5[_0x203c21(0x46b,0x49d)]=PixelDatatype['UNSIGNED_BYTE'];const _0x2a5f85=_0x6e7be5,_0x3c9916={};function _0xf0103f(_0x2b4256,_0x2d34f7){return _0x1537ff(_0x2d34f7-0x4be,_0x2b4256);}_0x3c9916[_0xf0103f(0x332,0x2ba)]=this[_0x203c21(0x3eb,0x3db)],_0x3c9916['width']=this[_0xf0103f(0x29d,0x2ba)]['drawingBufferWidth'],_0x3c9916[_0xf0103f(0x3ac,0x389)]=this['context'][_0xf0103f(0x345,0x342)],_0x3c9916[_0xf0103f(0x2e1,0x2c5)]=PixelFormat[_0x203c21(0x444,0x485)],_0x3c9916[_0x203c21(0x46b,0x4e2)]=PixelDatatype[_0xf0103f(0x35e,0x347)];const _0x3c9882=_0x3c9916;return{'segmentsColor':new Texture(_0x2a5f85),'segmentsDepth':new Texture(_0x3c9882)};}[_0x2c9552(-0x134,-0xda)](){function _0x5dfe56(_0x538984,_0x341447){return _0x1537ff(_0x538984-0x302,_0x341447);}const _0x3f9fcf={};_0x3f9fcf['context']=this[_0x1c3fa1(-0x52,-0x44)];function _0x1c3fa1(_0x26d88f,_0x3a3e77){return _0x1537ff(_0x3a3e77-0x1c0,_0x26d88f);}return _0x3f9fcf['colorTextures']=[this['textures'][_0x5dfe56(0x105,0x96)]],_0x3f9fcf[_0x1c3fa1(0x87,0x4)]=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x3f9fcf)};}[_0x1537ff(-0x1b3,-0x18c)](){Object['values'](this['framebuffers'])['forEach'](_0x542eb2=>{function _0x27027e(_0x74bdbd,_0x4f5313){return _0x1d21(_0x4f5313- -0x278,_0x74bdbd);}_0x542eb2[_0x27027e(-0x112,-0x189)]();});}['createColorTableTexture'](){function _0x41ecaf(_0x1ff182,_0xa74df2){return _0x2c9552(_0x1ff182-0x411,_0xa74df2);}const _0x42f3da=new Float32Array(this[_0x3d2337(-0x149,-0x11b)]['colors'][_0x41ecaf(0x251,0x2b2)](_0x248ac5=>{function _0x23635a(_0xdaa878,_0x44230a){return _0x41ecaf(_0xdaa878- -0x197,_0x44230a);}const _0x2404b3=Color$1[_0x45842(0x1e7,0x238)](_0x248ac5);function _0x45842(_0x29a71d,_0x4a864a){return _0x3d2337(_0x29a71d,_0x4a864a-0x3b8);}return[_0x2404b3[_0x45842(0x1f0,0x1f6)],_0x2404b3['green'],_0x2404b3[_0x23635a(0x172,0x1ea)],_0x2404b3['alpha']];})),_0x3f645f={};_0x3f645f['minificationFilter']=TextureMinificationFilter[_0x41ecaf(0x29f,0x2b5)],_0x3f645f['magnificationFilter']=TextureMagnificationFilter['LINEAR'];function _0x3d2337(_0x53b0cf,_0x15dce1){return _0x1537ff(_0x15dce1- -0x11,_0x53b0cf);}return _0x3f645f['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x3f645f[_0x41ecaf(0x333,0x2ca)]=TextureWrap[_0x3d2337(-0x103,-0x11f)],new Texture({'context':this[_0x41ecaf(0x232,0x289)],'width':this[_0x3d2337(-0xf9,-0x11b)]['colors']['length'],'height':0x1,'pixelFormat':PixelFormat[_0x41ecaf(0x27c,0x1f5)],'pixelDatatype':PixelDatatype[_0x3d2337(-0x188,-0x1db)],'sampler':new Sampler(_0x3f645f),'source':{'width':this['options'][_0x41ecaf(0x32e,0x2c1)]['length'],'height':0x1,'arrayBufferView':_0x42f3da}});}[_0x1537ff(-0x1ea,-0x251)](){const _0x5f3535=0x4,_0x53065b=this['options']['particlesTextureSize'];function _0x1f7249(_0x402998,_0x53d87d){return _0x2c9552(_0x53d87d-0x3c3,_0x402998);}let _0x4d127d=[];for(let _0x20e3a4=0x0;_0x20e3a4<_0x53065b;_0x20e3a4++){for(let _0x530c23=0x0;_0x530c23<_0x53065b;_0x530c23++){for(let _0x152561=0x0;_0x152561<_0x5f3535;_0x152561++){_0x4d127d['push'](_0x20e3a4/_0x53065b),_0x4d127d[_0x1f7249(0x16f,0x1e2)](_0x530c23/_0x53065b);}}}_0x4d127d=new Float32Array(_0x4d127d);const _0x14a732=this['options'][_0x2f4427(-0x1aa,-0x233)]**0x2;let _0x3ac044=[];for(let _0x4e4eb4=0x0;_0x4e4eb4<_0x14a732;_0x4e4eb4++){_0x3ac044[_0x2f4427(-0x272,-0x20c)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x3ac044=new Float32Array(_0x3ac044);let _0x5d0b58=[];function _0x2f4427(_0x45565c,_0x2f5fee){return _0x1537ff(_0x45565c- -0x6c,_0x2f5fee);}for(let _0x337ae6=0x0,_0x237c9a=0x0;_0x337ae6<_0x14a732;_0x337ae6++){_0x5d0b58['push'](_0x237c9a+0x0,_0x237c9a+0x1,_0x237c9a+0x2,_0x237c9a+0x2,_0x237c9a+0x1,_0x237c9a+0x3),_0x237c9a+=_0x5f3535;}_0x5d0b58=new Uint32Array(_0x5d0b58);const _0x3562a3={};_0x3562a3['componentDatatype']=ComponentDatatype[_0x1f7249(0x221,0x21e)],_0x3562a3['componentsPerAttribute']=0x2,_0x3562a3[_0x2f4427(-0x243,-0x211)]=_0x4d127d;const _0x38cf87={};_0x38cf87['componentDatatype']=ComponentDatatype[_0x1f7249(0x204,0x21e)],_0x38cf87['componentsPerAttribute']=0x3,_0x38cf87[_0x1f7249(0x206,0x211)]=_0x3ac044;const _0x4704c8=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x3562a3),'normal':new GeometryAttribute(_0x38cf87)}),'indices':_0x5d0b58});return _0x4704c8;}['createRawRenderState'](_0x26cc08){const _0x667fac={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x26cc08};return Appearance['getDefaultRenderState'](!![],![],_0x667fac);}[_0x1537ff(-0x198,-0x1d1)](){const _0x515ff3={};_0x515ff3['st']=0x0;function _0x11eeb3(_0x32d54a,_0x59c405){return _0x2c9552(_0x32d54a-0x190,_0x59c405);}_0x515ff3[_0x9286e9(-0x1c,-0x12)]=0x1;const _0x255687={};_0x255687['enabled']=!![];const _0x5b1411={};_0x5b1411['enabled']=!![],_0x5b1411[_0x9286e9(-0x57,-0x9f)]=WebGLRenderingContext[_0x9286e9(-0x1,0x88)],_0x5b1411[_0x9286e9(-0x5a,0x7)]=WebGLRenderingContext['SRC_ALPHA'],_0x5b1411[_0x9286e9(0x37,0x54)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];function _0x9286e9(_0x3a882b,_0x242b33){return _0x1537ff(_0x3a882b-0x14a,_0x242b33);}const _0x10bfae={};_0x10bfae['viewport']=undefined,_0x10bfae[_0x9286e9(-0x31,0x6)]=_0x255687,_0x10bfae['depthMask']=!![],_0x10bfae['blending']=_0x5b1411;const _0x347ce7=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x515ff3,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0x11eeb3(0x7c,0xfd)],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures'][_0x9286e9(-0x17,0x30)],'currentParticlesPosition':()=>this['computing']['particlesTextures'][_0x11eeb3(0x98,0x32)],'postProcessingPosition':()=>this['computing']['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this[_0x9286e9(-0x3c,0x4e)],'domain':()=>{function _0x69c4fc(_0x9e0359,_0x367269){return _0x11eeb3(_0x9e0359-0x43c,_0x367269);}var _0x2892d0,_0x439a49;const _0x8b66c=new Cartesian2(((_0x2892d0=this['options']['domain'])===null||_0x2892d0===void 0x0?void 0x0:_0x2892d0[_0x1d3bfa(0x5c7,0x544)])??this[_0x1d3bfa(0x4c3,0x531)][_0x1d3bfa(0x56d,0x557)]['speed']['min'],((_0x439a49=this[_0x1d3bfa(0x563,0x55a)]['domain'])===null||_0x439a49===void 0x0?void 0x0:_0x439a49[_0x1d3bfa(0x4b8,0x509)])??this['computing']['windData']['speed']['max']);function _0x1d3bfa(_0x59556e,_0x32e710){return _0x9286e9(_0x32e710-0x51a,_0x59556e);}return _0x8b66c;},'displayRange':()=>{function _0x3a27ea(_0x401d72,_0x51c7ff){return _0x11eeb3(_0x51c7ff-0x2e6,_0x401d72);}var _0x36b9ee,_0x434bf9;function _0x210f52(_0x8e0bea,_0x5d8380){return _0x11eeb3(_0x8e0bea-0x1c1,_0x5d8380);}const _0x295b9f=new Cartesian2(((_0x36b9ee=this['options']['displayRange'])===null||_0x36b9ee===void 0x0?void 0x0:_0x36b9ee['min'])??this['computing'][_0x210f52(0x269,0x21e)][_0x3a27ea(0x271,0x2c8)]['min'],((_0x434bf9=this['options']['displayRange'])===null||_0x434bf9===void 0x0?void 0x0:_0x434bf9['max'])??this['computing']['windData']['speed']['max']);return _0x295b9f;},'particleHeight':()=>this['options'][_0x11eeb3(-0x4e,-0x19)]||0x0,'aspect':()=>this[_0x11eeb3(-0x4f,0x38)]['drawingBufferWidth']/this['context']['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{function _0x54aff3(_0xbddd2b,_0x2410a7){return _0x11eeb3(_0xbddd2b-0x3d5,_0x2410a7);}const _0x3eac0d={};_0x3eac0d[_0x54aff3(0x46a,0x4cd)]=0x1;function _0x1e4a67(_0x4e9d7e,_0x27dd02){return _0x11eeb3(_0x4e9d7e- -0xe4,_0x27dd02);}_0x3eac0d[_0x54aff3(0x42f,0x4b0)]=0x2;const _0x494dda=this['options']['lineWidth']||_0x3eac0d;return new Cartesian2(_0x494dda[_0x54aff3(0x46a,0x4ab)],_0x494dda[_0x1e4a67(-0x8a,-0xc)]);},'lineLength':()=>{const _0x56121b={};function _0x2ff24e(_0x3d87a0,_0x43789b){return _0x9286e9(_0x43789b-0xd5,_0x3d87a0);}_0x56121b[_0x5beebe(-0x47,-0x9b)]=0x14,_0x56121b[_0x2ff24e(0x10e,0xc4)]=0x64;const _0x3cbc5d=this[_0x2ff24e(0x14a,0x115)]['lineLength']||_0x56121b;function _0x5beebe(_0x3c4631,_0x1dcacc){return _0x9286e9(_0x1dcacc- -0xc5,_0x3c4631);}return new Cartesian2(_0x3cbc5d['min'],_0x3cbc5d[_0x5beebe(-0xa4,-0xd6)]);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x11eeb3(0x6b,0xda)](),'rawRenderState':this[_0x9286e9(-0x5,0x4e)](_0x10bfae)}),_0x3f286b={};return _0x3f286b[_0x11eeb3(-0x54,-0xb9)]=_0x347ce7,_0x3f286b;}['onParticlesTextureSizeChange'](){const _0x2544d8=this['createSegmentsGeometry']();this['primitives'][_0x4787cf(-0x6b,-0xe9)][_0x5ec12b(0x3c4,0x42d)]=_0x2544d8;const _0xf7b0b5={};function _0x4787cf(_0x372a53,_0x27235d){return _0x2c9552(_0x372a53-0x179,_0x27235d);}_0xf7b0b5['context']=this['context'],_0xf7b0b5['geometry']=_0x2544d8;function _0x5ec12b(_0xb8dcaa,_0x4062e4){return _0x2c9552(_0xb8dcaa-0x51f,_0x4062e4);}_0xf7b0b5[_0x5ec12b(0x381,0x336)]=this['primitives']['segments'][_0x5ec12b(0x381,0x3c5)],_0xf7b0b5['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0x241b93=VertexArray[_0x4787cf(-0x52,-0xae)](_0xf7b0b5);this[_0x4787cf(0x1b,-0x6e)]['segments'][_0x5ec12b(0x39a,0x322)]&&(this[_0x5ec12b(0x3c1,0x3e0)][_0x4787cf(-0x6b,-0x3c)]['commandToExecute'][_0x4787cf(0x20,0x2)]=_0x241b93);}['onColorTableChange'](){function _0x3ad74a(_0x11dbe5,_0x5a187b){return _0x1537ff(_0x11dbe5- -0x1c,_0x5a187b);}this[_0x3ad74a(-0x1a2,-0x1dd)][_0x5ce856(-0x19c,-0x154)]();function _0x5ce856(_0x1b85a1,_0x159fa6){return _0x2c9552(_0x159fa6-0x58,_0x1b85a1);}this[_0x3ad74a(-0x1a2,-0x1ba)]=this[_0x3ad74a(-0x21a,-0x1a4)]();}['updateOptions'](_0x4fe671){const _0x2ac65a=_0x4fe671['colors']&&JSON['stringify'](_0x4fe671['colors'])!==JSON['stringify'](this[_0x3f32c0(-0x9e,-0x96)]['colors']);function _0x5507d7(_0x60c56a,_0x350ae2){return _0x1537ff(_0x350ae2-0x38a,_0x60c56a);}this['options']=deepMerge(_0x4fe671,this[_0x5507d7(0x2a9,0x280)]);function _0x3f32c0(_0x13c9e2,_0x37a4cc){return _0x1537ff(_0x13c9e2-0x6c,_0x37a4cc);}_0x2ac65a&&this['onColorTableChange']();}[_0x1537ff(-0x1d1,-0x170)](){function _0x5b92f7(_0x2465ad,_0x37bf6b){return _0x2c9552(_0x37bf6b-0x5d2,_0x2465ad);}function _0x30f24f(_0xc48a55,_0x391bf2){return _0x2c9552(_0x391bf2- -0xc4,_0xc48a55);}Object[_0x30f24f(-0x232,-0x276)](this[_0x30f24f(-0x203,-0x1dc)])['forEach'](_0x38382e=>{_0x38382e['destroy']();}),Object['values'](this['primitives'])[_0x30f24f(-0x169,-0x1e6)](_0x55757e=>{function _0xa007b8(_0x388515,_0x1c4c12){return _0x30f24f(_0x388515,_0x1c4c12-0x4aa);}_0x55757e[_0xa007b8(0x2a9,0x23a)]();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x1537ff(-0x125,-0x19c)];class WindParticleSystem{constructor(_0x5cd62e,_0x14186d,_0x8bc535,_0x4ac521,_0x2a687c){this[_0x3b6b2e(-0x20d,-0x1ae)]=_0x5cd62e,this['options']=_0x8bc535,this['viewerParameters']=_0x4ac521;function _0x458e31(_0x25640a,_0x5483d4){return _0x1537ff(_0x5483d4-0xc1,_0x25640a);}this[_0x458e31(-0x43,-0x72)]=new WindParticlesComputing(_0x5cd62e,_0x14186d,_0x8bc535,_0x4ac521,_0x2a687c);function _0x3b6b2e(_0x54da32,_0x57c201){return _0x2c9552(_0x57c201-0x31,_0x54da32);}this[_0x458e31(-0x15d,-0x13f)]=new WindParticlesRendering(_0x5cd62e,_0x8bc535,_0x4ac521,this[_0x458e31(-0x9a,-0x72)]),this[_0x3b6b2e(-0xb6,-0xfb)]();}['getPrimitives'](){function _0x3be8e9(_0x3e8de8,_0x13c863){return _0x1537ff(_0x3e8de8-0x677,_0x13c863);}function _0x47df5b(_0x425ac7,_0x5f05f6){return _0x1537ff(_0x425ac7-0x31e,_0x5f05f6);}const _0x32c562=[this['computing']['primitives'][_0x47df5b(0x208,0x23f)],this[_0x47df5b(0x1eb,0x21b)]['primitives'][_0x3be8e9(0x490,0x49c)],this[_0x47df5b(0x1eb,0x1b9)]['primitives'][_0x47df5b(0x215,0x1a8)],this['rendering'][_0x3be8e9(0x4f4,0x4a4)][_0x47df5b(0x115,0xb7)]];return _0x32c562;}['clearFramebuffers'](){function _0x470543(_0x1c4c9d,_0x12ffe7){return _0x1537ff(_0x1c4c9d-0x11c,_0x12ffe7);}const _0x273441=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x190d32(_0x60c08b,_0x1979e9){return _0x2c9552(_0x60c08b-0x1d7,_0x1979e9);}Object[_0x470543(-0x5a,-0x37)](this[_0x190d32(-0x4,0x62)][_0x470543(-0x21,-0x66)])['forEach'](_0x92cbe9=>{function _0x1fbbc3(_0x584b32,_0x3abf36){return _0x190d32(_0x3abf36-0x356,_0x584b32);}function _0x2066e2(_0x38e50c,_0x23b84d){return _0x470543(_0x38e50c-0x254,_0x23b84d);}_0x273441[_0x1fbbc3(0x42d,0x3e4)]=this[_0x2066e2(0x170,0x1d6)][_0x2066e2(0x233,0x25d)][_0x92cbe9],_0x273441[_0x1fbbc3(0x37a,0x3f3)](this['context']);});}['changeOptions'](_0x14bfe7){let _0x371223=![];_0x14bfe7[_0x15a66f(0x3e5,0x395)]&&this['options']['particlesTextureSize']!==_0x14bfe7['particlesTextureSize']&&(_0x371223=!![]);const _0x2557f4=deepMerge(_0x14bfe7,this[_0x15a66f(0x44c,0x3c9)]);if(_0x2557f4[_0x15a66f(0x348,0x395)]<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x2557f4;function _0x15a66f(_0x533db4,_0x364fe5){return _0x1537ff(_0x364fe5-0x4d3,_0x533db4);}this[_0x15a66f(0x29b,0x2d3)]['updateOptions'](_0x14bfe7);function _0xeae669(_0x22d2e4,_0x4869fd){return _0x1537ff(_0x22d2e4-0x2f5,_0x4869fd);}this[_0x15a66f(0x3d6,0x3a0)][_0xeae669(0xf4,0x16f)](_0x14bfe7),_0x371223&&(this[_0x15a66f(0x425,0x3a0)]['destroyParticlesTextures'](),this[_0x15a66f(0x385,0x3a0)][_0xeae669(0x13e,0x18f)](),this[_0x15a66f(0x26d,0x2d3)]['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x45a4b1){function _0x39eeda(_0x289ed8,_0x432c6b){return _0x1537ff(_0x432c6b-0x36b,_0x289ed8);}function _0x5241c8(_0x38f70a,_0x486298){return _0x2c9552(_0x38f70a-0x5db,_0x486298);}this['viewerParameters']=_0x45a4b1,this[_0x39eeda(0x20f,0x238)][_0x39eeda(0x29d,0x227)]=_0x45a4b1,this['rendering']['viewerParameters']=_0x45a4b1;}['destroy'](){this['computing']['destroy']();function _0x243b27(_0x28dfca,_0x22d99b){return _0x2c9552(_0x22d99b-0x185,_0x28dfca);}this['rendering'][_0x243b27(-0x48,-0x27)]();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x17aced={};_0x17aced[_0x2c9552(-0xfb,-0xa3)]=0x1,_0x17aced['max']=0x2;function _0x2c9552(_0x3607a2,_0x28093d){return _0x1d21(_0x3607a2- -0x29b,_0x28093d);}const _0x1c0007={};_0x1c0007['min']=0x14,_0x1c0007['max']=0x64;const _0x505734={};_0x505734['particlesTextureSize']=0x64,_0x505734['fixedHeight']=0x0,_0x505734['lineWidth']=_0x17aced,_0x505734[_0x2c9552(-0xf5,-0xec)]=_0x1c0007,_0x505734['speedFactor']=0x1,_0x505734['dropRate']=0.003,_0x505734['dropRateBump']=0.001,_0x505734['colors']=[_0x2c9552(-0x1bb,-0x1ce)],_0x505734['flipY']=![],_0x505734[_0x1537ff(-0x1a5,-0x208)]=!![];const DEF_OPTIONS=_0x505734;class WindLayer extends BaseLayer$1{constructor(_0x12598c={}){_0x12598c={...DEF_OPTIONS,..._0x12598c};function _0x573a79(_0x211fe5,_0x534baf){return _0x2c9552(_0x534baf- -0x142,_0x211fe5);}super(_0x12598c),this[_0x573a79(-0x270,-0x2ae)](_0x12598c,_0x12598c);}get['layer'](){function _0x367a08(_0x3c567a,_0x270f0a){return _0x2c9552(_0x270f0a-0x2cc,_0x3c567a);}return this[_0x367a08(0x128,0x16e)];}get[_0x1537ff(-0x1ae,-0x1d8)](){function _0x5cd382(_0x5ef06f,_0x51a857){return _0x1537ff(_0x51a857-0x46,_0x5ef06f);}return this['options'][_0x5cd382(-0xf1,-0x168)];}set[_0x2c9552(-0x189,-0x1d3)](_0x22fc21){function _0x29c009(_0x9635c7,_0x4b6e1c){return _0x1537ff(_0x4b6e1c-0x5b9,_0x9635c7);}this[_0x29c009(0x52a,0x4af)]['data']=_0x22fc21;function _0x10a560(_0x50108a,_0x13b4be){return _0x1537ff(_0x13b4be-0xcc,_0x50108a);}this[_0x29c009(0x3c0,0x419)](_0x22fc21);}get[_0x1537ff(-0x108,-0x159)](){function _0x4d07a5(_0x370e55,_0x3be27d){return _0x2c9552(_0x3be27d- -0x148,_0x370e55);}return this[_0x4d07a5(-0x1e5,-0x22d)]['colors'];}set['colors'](_0xcc5294){function _0x1b4f8c(_0x5c08ff,_0x4b2a36){return _0x1537ff(_0x5c08ff- -0x1b,_0x4b2a36);}this[_0x3b48d3(0x3f8,0x3a7)]['colors']=_0xcc5294;function _0x3b48d3(_0x168744,_0x105307){return _0x1537ff(_0x168744-0x502,_0x105307);}const _0x2560c5={};_0x2560c5['colors']=_0xcc5294,this['_setOptionsHook'](this[_0x1b4f8c(-0x125,-0xaa)],_0x2560c5);}[_0x2c9552(-0x1e6,-0x24c)](){}[_0x2c9552(-0x14f,-0xd2)](){this[_0xd5abbf(-0x117,-0x185)]=this['_map'][_0xd5abbf(-0x1c5,-0x185)],this['camera']=this['_map']['camera'];this[_0x43594f(-0x33,-0x2d)]['data']&&this['setData'](this['options'][_0x43594f(-0x10f,-0xd1)]);function _0xd5abbf(_0xad6c66,_0xc7f301){return _0x2c9552(_0xc7f301- -0x4c,_0xad6c66);}if(!this['windData'])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0xd5abbf(-0x102,-0x185)]['mode']},this[_0x43594f(-0x4d,-0x41)](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this['windData'],this['options'],this['viewerParameters'],this['scene']),this['primitives']=this['particleSystem'][_0x43594f(-0x29,-0x53)](),this['primitives'][_0x43594f(-0x9a,-0x6a)](_0x336cbb=>{this['scene']['primitives']['add'](_0x336cbb);}),this['camera']['percentageChanged']=0.01,this['camera']['changed'][_0xd5abbf(-0x162,-0x127)](this['updateViewerParameters']['bind'](this));function _0x43594f(_0x591b0b,_0x241e72){return _0x2c9552(_0x241e72-0xb8,_0x591b0b);}this['scene']['morphComplete']['addEventListener'](this[_0x43594f(0x3e,-0x41)]['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters']['bind'](this));}['_removedHook'](){this[_0x3df84d(0x260,0x2ea)][_0x3df84d(0x22c,0x1ca)][_0x5098d5(0x17b,0x1e6)](this['updateViewerParameters'][_0x3df84d(0x295,0x289)](this)),this['scene'][_0x5098d5(0xf0,0x128)][_0x5098d5(0x1dc,0x1e6)](this['updateViewerParameters'][_0x5098d5(0x1cd,0x1d4)](this));function _0x5098d5(_0x178be4,_0x4b4241){return _0x1537ff(_0x4b4241-0x2ed,_0x178be4);}window['removeEventListener']('resize',this['updateViewerParameters']['bind'](this));function _0x3df84d(_0x194049,_0x16dd1b){return _0x2c9552(_0x194049-0x389,_0x16dd1b);}this['primitives']&&(this['primitives'][_0x3df84d(0x267,0x21a)](_0xe879db=>{function _0x4c34b0(_0x56dcd9,_0x53d57b){return _0x3df84d(_0x53d57b- -0x16a,_0x56dcd9);}this['scene'][_0x4c34b0(0xdf,0xc1)]['remove'](_0xe879db);}),delete this['primitives']),this[_0x5098d5(0xf2,0x13e)]&&(this['particleSystem'][_0x5098d5(0x17f,0x11c)](),delete this[_0x3df84d(0x1ff,0x27b)]);}['setData'](_0x127077,_0x988ae5){this[_0x348142(-0xc8,-0x13f)]=this[_0x348142(-0x22a,-0x1b3)](_0x127077);function _0x13c1c6(_0x43aeff,_0x3707f3){return _0x2c9552(_0x3707f3-0x84,_0x43aeff);}if(_0x988ae5){this['_removedHook'](),this['_addedHook']();return;}function _0x348142(_0x1e50d2,_0x3c3712){return _0x1537ff(_0x3c3712- -0x32,_0x1e50d2);}this['particleSystem']?(this['particleSystem']['computing']['updateWindData'](this[_0x348142(-0x168,-0x13f)]),this[_0x13c1c6(-0xd0,-0xb5)]['requestRender']()):this['_addedHook']();}[_0x1537ff(-0x191,-0x16b)](_0x3284b6,_0x485ceb){function _0x4474a4(_0x550f44,_0x509373){return _0x2c9552(_0x550f44-0xd3,_0x509373);}function _0x4fba4(_0x4ea646,_0x455419){return _0x2c9552(_0x4ea646-0x251,_0x455419);}this[_0x4474a4(-0xb7,-0x134)]&&(this[_0x4fba4(0xc7,0x61)]['changeOptions'](_0x485ceb),this['scene'][_0x4fba4(0xc6,0x6c)]());}['processWindData'](_0x573104){var _0x1362c5,_0x8bba7d;const _0x410085={..._0x573104},_0x21efeb=_0x410085;function _0x3ecb2e(_0x20ae6d,_0x4670c9){return _0x2c9552(_0x20ae6d-0x229,_0x4670c9);}function _0x7c7fda(_0x286a83,_0x33ce7e){return _0x2c9552(_0x286a83- -0x20,_0x33ce7e);}!_0x21efeb[_0x7c7fda(-0x130,-0xb2)]&&_0x21efeb['rows']&&(_0x21efeb[_0x3ecb2e(0x119,0x11a)]=_0x21efeb['rows']);!_0x21efeb[_0x7c7fda(-0x13d,-0xdb)]&&_0x21efeb[_0x3ecb2e(0x65,-0x1b)]&&(_0x21efeb['width']=_0x21efeb['cols']);!_0x21efeb[_0x7c7fda(-0x132,-0xfc)]&&(_0x21efeb['bounds']={'west':_0x21efeb['xmin'],'south':_0x21efeb['ymin'],'east':_0x21efeb[_0x7c7fda(-0x1b1,-0x149)],'north':_0x21efeb['ymax']});if(!_0x21efeb['u']){const _0x3bba72={};_0x3bba72['array']=_0x573104[_0x7c7fda(-0x1b0,-0x1c7)],_0x3bba72['min']=_0x573104[_0x3ecb2e(0xd6,0x4d)],_0x3bba72['max']=_0x573104['umax'],_0x21efeb['u']=_0x3bba72;}if(!_0x21efeb['v']){const _0x1610e4={};_0x1610e4['array']=_0x573104['vdata'],_0x1610e4[_0x3ecb2e(0x12e,0x157)]=_0x573104['vmin'],_0x1610e4['max']=_0x573104['vmax'],_0x21efeb['v']=_0x1610e4;}if(((_0x1362c5=_0x21efeb[_0x3ecb2e(0x7b,0x3f)])===null||_0x1362c5===void 0x0?void 0x0:_0x1362c5[_0x7c7fda(-0x11b,-0xc3)])===undefined||((_0x8bba7d=_0x21efeb['speed'])===null||_0x8bba7d===void 0x0?void 0x0:_0x8bba7d[_0x7c7fda(-0x156,-0x122)])===undefined||_0x21efeb[_0x3ecb2e(0x7b,0xbb)]['array']===undefined){const _0x56ea54={'array':new Float32Array(_0x21efeb['u'][_0x3ecb2e(0x12a,0x1b3)]['length']),'min':Number['MAX_VALUE'],'max':Number[_0x3ecb2e(0x150,0xff)]};for(let _0x575dfd=0x0;_0x575dfd<_0x21efeb['u']['array']['length'];_0x575dfd++){_0x56ea54[_0x3ecb2e(0x12a,0x18d)][_0x575dfd]=Math[_0x3ecb2e(0xc4,0x13d)](_0x21efeb['u'][_0x3ecb2e(0x12a,0xd5)][_0x575dfd]*_0x21efeb['u'][_0x3ecb2e(0x12a,0x177)][_0x575dfd]+_0x21efeb['v']['array'][_0x575dfd]*_0x21efeb['v'][_0x7c7fda(-0x11f,-0x15f)][_0x575dfd]),_0x56ea54['array'][_0x575dfd]!==0x0&&(_0x56ea54['min']=Math[_0x7c7fda(-0x11b,-0xd7)](_0x56ea54[_0x3ecb2e(0x12e,0xd8)],_0x56ea54['array'][_0x575dfd]),_0x56ea54['max']=Math['max'](_0x56ea54[_0x3ecb2e(0xf3,0xaa)],_0x56ea54[_0x3ecb2e(0x12a,0x151)][_0x575dfd]));}_0x21efeb['speed']=_0x56ea54;}return _0x21efeb;}[_0x2c9552(-0xf9,-0x153)](){var _0x5bdd81;const _0x510a69=this[_0x3467d7(0x25e,0x249)];if(!_0x510a69)return;const _0x344b60=_0x510a69[_0x2af71d(0x2bc,0x321)],_0x57b883={};_0x57b883['x']=0x0,_0x57b883['y']=0x0;const _0x3a2465={};_0x3a2465['x']=0x0,_0x3a2465['y']=_0x344b60['clientHeight'];const _0x2f8529={};_0x2f8529['x']=_0x344b60['clientWidth'];function _0x2af71d(_0x5a7731,_0x4afb7b){return _0x1537ff(_0x4afb7b-0x4bb,_0x5a7731);}function _0x3467d7(_0x198fe,_0xe21458){return _0x2c9552(_0xe21458-0x382,_0x198fe);}_0x2f8529['y']=0x0;const _0xbf1d07={};_0xbf1d07['x']=_0x344b60['clientWidth'],_0xbf1d07['y']=_0x344b60[_0x2af71d(0x423,0x3a0)];const _0x719a19=[_0x57b883,_0x3a2465,_0x2f8529,_0xbf1d07];let _0x57f38a=0xb4,_0x18c00c=-0xb4,_0x59de1f=0x5a,_0x18c4d3=-0x5a,_0x446dd5=![];for(const _0x3f64e7 of _0x719a19){const _0xe5cea0=_0x510a69['camera'][_0x3467d7(0x212,0x275)](new Cesium$1['Cartesian2'](_0x3f64e7['x'],_0x3f64e7['y']),_0x510a69[_0x2af71d(0x2ac,0x319)]['ellipsoid']);if(!_0xe5cea0){_0x446dd5=!![];break;}const _0x412420=_0x510a69[_0x3467d7(0x1b2,0x205)]['ellipsoid']['cartesianToCartographic'](_0xe5cea0),_0x3ec94d=Cesium$1['Math']['toDegrees'](_0x412420[_0x2af71d(0x35f,0x34a)]),_0x5e18ad=Cesium$1[_0x3467d7(0x1fe,0x1ee)][_0x2af71d(0x419,0x3c1)](_0x412420[_0x2af71d(0x258,0x2ca)]);_0x57f38a=Math['min'](_0x57f38a,_0x3ec94d),_0x18c00c=Math[_0x2af71d(0x322,0x360)](_0x18c00c,_0x3ec94d),_0x59de1f=Math[_0x2af71d(0x328,0x39b)](_0x59de1f,_0x5e18ad),_0x18c4d3=Math['max'](_0x18c4d3,_0x5e18ad);}if(!_0x446dd5){const _0xfb3a16=new Cesium$1['Cartesian2'](Math['max'](this['windData'][_0x3467d7(0x2d4,0x270)]['west'],_0x57f38a),Math['min'](this['windData']['bounds'][_0x3467d7(0x1de,0x1cc)],_0x18c00c)),_0x5d41a4=new Cesium$1[(_0x3467d7(0x203,0x26d))](Math['max'](this[_0x2af71d(0x3d1,0x3ae)][_0x3467d7(0x215,0x270)]['south'],_0x59de1f),Math[_0x2af71d(0x3c7,0x39b)](this[_0x3467d7(0x2a5,0x29a)]['bounds'][_0x2af71d(0x39f,0x36b)],_0x18c4d3)),_0x370c22=(_0xfb3a16['y']-_0xfb3a16['x'])*0.05,_0x5a5b1e=(_0x5d41a4['y']-_0x5d41a4['x'])*0.05;_0xfb3a16['x']=Math[_0x2af71d(0x34b,0x360)](this[_0x3467d7(0x300,0x29a)]['bounds'][_0x3467d7(0x1e8,0x1e5)],_0xfb3a16['x']-_0x370c22),_0xfb3a16['y']=Math['min'](this[_0x2af71d(0x405,0x3ae)]['bounds']['east'],_0xfb3a16['y']+_0x370c22),_0x5d41a4['x']=Math['max'](this[_0x3467d7(0x23f,0x29a)]['bounds'][_0x3467d7(0x1ca,0x1e0)],_0x5d41a4['x']-_0x5a5b1e),_0x5d41a4['y']=Math[_0x2af71d(0x3b4,0x39b)](this[_0x3467d7(0x228,0x29a)]['bounds']['north'],_0x5d41a4['y']+_0x5a5b1e),this['viewerParameters']['lonRange']=_0xfb3a16,this['viewerParameters']['latRange']=_0x5d41a4;const _0x2cc3ff=this[_0x3467d7(0x217,0x29a)]['bounds']['east']-this['windData'][_0x3467d7(0x273,0x270)]['west'],_0xab4115=this['windData']['bounds'][_0x3467d7(0x25b,0x257)]-this['windData'][_0x3467d7(0x293,0x270)]['south'],_0x32a64f=(_0xfb3a16['y']-_0xfb3a16['x'])/_0x2cc3ff,_0x4aada5=(_0x5d41a4['y']-_0x5d41a4['x'])/_0xab4115,_0x2f6cf7=Math['min'](_0x32a64f,_0x4aada5),_0x25a9f5=0x3e8*_0x2f6cf7;_0x25a9f5>0x0&&(this[_0x3467d7(0x2d1,0x263)]['pixelSize']=Math[_0x2af71d(0x31a,0x360)](0x0,Math['min'](0x3e8,_0x25a9f5)));}this['viewerParameters'][_0x2af71d(0x29c,0x31c)]=this['scene']['mode'],(_0x5bdd81=this[_0x3467d7(0x1ab,0x1f8)])===null||_0x5bdd81===void 0x0||_0x5bdd81[_0x2af71d(0x367,0x367)](this['viewerParameters']);}['getDataAtLonLat'](_0x2a0523,_0x2becd2){const {bounds:_0x4dc9cc,width:_0x2d6ff7,height:_0x4a62b1,u:_0x3ce1be,v:_0x757ef4,speed:_0x6ae10d}=this['windData'],{flipY:_0x16b55d}=this[_0x3b96f9(0x2c6,0x26a)];if(_0x2a0523<_0x4dc9cc['west']||_0x2a0523>_0x4dc9cc[_0x3b96f9(0x1f5,0x205)]||_0x2becd2<_0x4dc9cc['south']||_0x2becd2>_0x4dc9cc['north'])return null;function _0x3b96f9(_0x2fe3d6,_0x36d2b3){return _0x2c9552(_0x2fe3d6-0x3ab,_0x36d2b3);}const _0x1f9d97=(_0x2a0523-_0x4dc9cc['west'])/(_0x4dc9cc['east']-_0x4dc9cc[_0x2c55d7(0x18f,0x1f5)])*(_0x2d6ff7-0x1);let _0x5c42dd=(_0x2becd2-_0x4dc9cc['south'])/(_0x4dc9cc['north']-_0x4dc9cc['south'])*(_0x4a62b1-0x1);_0x16b55d&&(_0x5c42dd=_0x4a62b1-0x1-_0x5c42dd);const _0x5d9cc2=Math['floor'](_0x1f9d97),_0x2a5e17=Math[_0x3b96f9(0x1da,0x1ff)](_0x5c42dd),_0x538ab3=Math['floor'](_0x1f9d97),_0x118d74=Math[_0x3b96f9(0x2b0,0x2c2)](_0x538ab3+0x1,_0x2d6ff7-0x1),_0x32772b=Math['floor'](_0x5c42dd),_0x5e8f41=Math[_0x3b96f9(0x2b0,0x284)](_0x32772b+0x1,_0x4a62b1-0x1),_0x428302=_0x1f9d97-_0x538ab3,_0x8b0fac=_0x5c42dd-_0x32772b,_0x52d4ed=_0x2a5e17*_0x2d6ff7+_0x5d9cc2,_0x1da5b9=_0x32772b*_0x2d6ff7+_0x538ab3,_0x43c4b1=_0x32772b*_0x2d6ff7+_0x118d74,_0x3308f1=_0x5e8f41*_0x2d6ff7+_0x538ab3,_0x5b6fe4=_0x5e8f41*_0x2d6ff7+_0x118d74,_0xa54796=_0x3ce1be['array'][_0x1da5b9],_0x182942=_0x3ce1be[_0x2c55d7(0x28f,0x293)][_0x43c4b1],_0xd1834=_0x3ce1be[_0x2c55d7(0x2cb,0x293)][_0x3308f1],_0x29a6cd=_0x3ce1be[_0x2c55d7(0x2d7,0x293)][_0x5b6fe4],_0x4fd56e=(0x1-_0x428302)*(0x1-_0x8b0fac)*_0xa54796+_0x428302*(0x1-_0x8b0fac)*_0x182942+(0x1-_0x428302)*_0x8b0fac*_0xd1834+_0x428302*_0x8b0fac*_0x29a6cd,_0x28a8df=_0x757ef4['array'][_0x1da5b9],_0x243588=_0x757ef4['array'][_0x43c4b1],_0xb1a1e7=_0x757ef4[_0x2c55d7(0x2b0,0x293)][_0x3308f1],_0x205923=_0x757ef4[_0x3b96f9(0x2ac,0x31a)][_0x5b6fe4],_0x3b5072=(0x1-_0x428302)*(0x1-_0x8b0fac)*_0x28a8df+_0x428302*(0x1-_0x8b0fac)*_0x243588+(0x1-_0x428302)*_0x8b0fac*_0xb1a1e7+_0x428302*_0x8b0fac*_0x205923,_0x994285=Math[_0x3b96f9(0x246,0x1eb)](_0x4fd56e*_0x4fd56e+_0x3b5072*_0x3b5072),_0x5e4166={};_0x5e4166['u']=_0x3ce1be[_0x2c55d7(0x264,0x293)][_0x52d4ed],_0x5e4166['v']=_0x757ef4['array'][_0x52d4ed],_0x5e4166[_0x3b96f9(0x1fd,0x270)]=_0x6ae10d['array'][_0x52d4ed];const _0x41357d={};_0x41357d['u']=_0x4fd56e,_0x41357d['v']=_0x3b5072,_0x41357d[_0x3b96f9(0x1fd,0x214)]=_0x994285;const _0x4b622f={};_0x4b622f['original']=_0x5e4166,_0x4b622f['interpolated']=_0x41357d;function _0x2c55d7(_0x3b73d9,_0xce609f){return _0x1537ff(_0xce609f-0x3b7,_0x3b73d9);}return _0x4b622f;}}mars3d__namespace['LayerUtil'][_0x2c9552(-0x174,-0x123)]('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this[_0x24fef3(0x195,0x1e8)]=null,this[_0x5e17e8(0x10c,0x17b)]=null,this[_0x24fef3(0x1de,0x260)]=null,this[_0x24fef3(0x124,0xf0)]=null;function _0x5e17e8(_0x3ac418,_0x2ce5e4){return _0x2c9552(_0x3ac418-0x2e2,_0x2ce5e4);}function _0x24fef3(_0x4fb043,_0x5bb77a){return _0x1537ff(_0x4fb043-0x323,_0x5bb77a);}this['speed']=null;}['destroy'](){for(const _0x29be3a in this){delete this[_0x29be3a];}}}class CanvasWindField{constructor(_0xe2e813){this['setOptions'](_0xe2e813);}get[_0x1537ff(-0xff,-0x119)](){return this['_speedRate'];}set[_0x1537ff(-0xff,-0xd5)](_0x1ce1cd){function _0x38204c(_0x12ba4b,_0xc9bd93){return _0x2c9552(_0xc9bd93-0x115,_0x12ba4b);}this[_0x38204c(-0x72,-0xa3)]=(0x64-(_0x1ce1cd>0x63?0x63:_0x1ce1cd))*0x64;function _0x5c82a1(_0x3e85c4,_0x1a714c){return _0x1537ff(_0x3e85c4-0xb,_0x1a714c);}this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x5c82a1(-0x162,-0x1e4)]-this['ymin'])/this['_speedRate']];}get['maxAge'](){function _0x4ca0f0(_0x9d77ab,_0x1defcc){return _0x1537ff(_0x9d77ab- -0xb3,_0x1defcc);}return this[_0x4ca0f0(-0x23f,-0x2c5)];}set['maxAge'](_0x35fb29){this['_maxAge']=_0x35fb29;}[_0x1537ff(-0x1fc,-0x182)](_0x58e0de){this['options']=_0x58e0de;function _0x5a04a7(_0x4fb18c,_0x27e059){return _0x2c9552(_0x27e059-0x451,_0x4fb18c);}this['maxAge']=_0x58e0de['maxAge']||0x78;function _0x496e85(_0x30e582,_0x554107){return _0x2c9552(_0x554107-0x67b,_0x30e582);}this['speedRate']=_0x58e0de['speedRate']||0x32,this['particles']=[];const _0x55135f=_0x58e0de['particlesNumber']||0x1000;for(let _0x41777f=0x0;_0x41777f<_0x55135f;_0x41777f++){const _0xdf2c84=this[_0x5a04a7(0x36d,0x335)](new CanvasParticle());this[_0x496e85(0x59d,0x59c)]['push'](_0xdf2c84);}}[_0x1537ff(-0x1ad,-0x1f3)](_0x392833){this['rows']=_0x392833[_0x1f294e(-0x217,-0x1d3)];function _0x1f294e(_0x5b1ef9,_0x57cd57){return _0x2c9552(_0x5b1ef9- -0x49,_0x57cd57);}this['cols']=_0x392833['cols'],this['xmin']=_0x392833['xmin'];function _0x47d60c(_0x3c3e6f,_0x179840){return _0x2c9552(_0x179840-0x1c6,_0x3c3e6f);}this['xmax']=_0x392833[_0x47d60c(0x51,0x35)],this['ymin']=_0x392833['ymin'],this[_0x47d60c(0xa3,0x7e)]=_0x392833['ymax'],this['grid']=[];const _0x5794b0=_0x392833['udata'],_0x547976=_0x392833[_0x47d60c(0xd,-0x23)];let _0x5cbf6f=![];_0x5794b0[_0x47d60c(-0x55,0xc)]===this['rows']&&_0x5794b0[0x0]['length']===this['cols']&&(_0x5cbf6f=!![]);let _0x317e7a=0x0,_0x2d89a6=null,_0x55abe0=null;for(let _0x1ef003=0x0;_0x1ef003<this['rows'];_0x1ef003++){_0x2d89a6=[];for(let _0x3c8000=0x0;_0x3c8000<this['cols'];_0x3c8000++,_0x317e7a++){_0x5cbf6f?_0x55abe0=this['_calcUV'](_0x5794b0[_0x1ef003][_0x3c8000],_0x547976[_0x1ef003][_0x3c8000]):_0x55abe0=this['_calcUV'](_0x5794b0[_0x317e7a],_0x547976[_0x317e7a]),_0x2d89a6[_0x47d60c(0x4c,-0x1b)](_0x55abe0);}this[_0x1f294e(-0x22b,-0x250)]['push'](_0x2d89a6);}!this['options'][_0x1f294e(-0x181,-0x153)]&&this['grid']['reverse']();}['clear'](){delete this['rows'],delete this['cols'],delete this['xmin'],delete this[_0x2c5794(0x1b2,0x12b)],delete this['ymin'],delete this[_0x42c0b6(-0x72,-0x4b)];function _0x2c5794(_0x446ed5,_0x1730d1){return _0x1537ff(_0x1730d1-0x2e1,_0x446ed5);}delete this['grid'];function _0x42c0b6(_0x4b1229,_0x3b0d66){return _0x1537ff(_0x4b1229-0xfb,_0x3b0d66);}delete this['particles'];}['toGridXY'](_0x3ace4c,_0x31b7e3){function _0x88aa7d(_0x2d166a,_0x40bc8d){return _0x2c9552(_0x2d166a- -0xae,_0x40bc8d);}function _0x4c5b62(_0x45e216,_0x23eb0a){return _0x2c9552(_0x23eb0a-0x2c9,_0x45e216);}const _0x24d809=(_0x3ace4c-this['xmin'])/(this['xmax']-this[_0x4c5b62(0x1d5,0x1d6)])*(this['cols']-0x1),_0x197fc6=(this[_0x4c5b62(0x19b,0x181)]-_0x31b7e3)/(this['ymax']-this['ymin'])*(this['rows']-0x1);return[_0x24d809,_0x197fc6];}['getUVByXY'](_0x220e15,_0x176f93){if(_0x220e15<0x0||_0x220e15>=this[_0x4420de(0x4a7,0x494)]||_0x176f93>=this[_0x16d12c(0x324,0x2ac)])return[0x0,0x0,0x0];const _0x11a64d=Math['floor'](_0x220e15),_0x4bc74f=Math[_0x16d12c(0x321,0x2a9)](_0x176f93);if(_0x11a64d===_0x220e15&&_0x4bc74f===_0x176f93)return this[_0x16d12c(0x2e8,0x298)][_0x176f93][_0x220e15];const _0x583cb7=_0x11a64d+0x1,_0x47237c=_0x4bc74f+0x1;function _0x16d12c(_0x321423,_0x3ff239){return _0x2c9552(_0x3ff239-0x47a,_0x321423);}function _0x4420de(_0x29e188,_0x207076){return _0x1537ff(_0x207076-0x67d,_0x29e188);}const _0x5a13f0=this['getUVByXY'](_0x11a64d,_0x4bc74f),_0x1fb159=this[_0x4420de(0x4d6,0x530)](_0x583cb7,_0x4bc74f),_0x272fec=this['getUVByXY'](_0x11a64d,_0x47237c),_0x5858a2=this['getUVByXY'](_0x583cb7,_0x47237c);let _0x3de705=null;try{_0x3de705=this['_bilinearInterpolation'](_0x220e15-_0x11a64d,_0x176f93-_0x4bc74f,_0x5a13f0,_0x1fb159,_0x272fec,_0x5858a2);}catch(_0x3d9538){console[_0x16d12c(0x355,0x349)](_0x220e15,_0x176f93);}return _0x3de705;}[_0x1537ff(-0x138,-0x11e)](_0x479b7d,_0x4a871e,_0x4a5779,_0x19de7d,_0x1c8b42,_0x4c60ad){const _0x1ea921=0x1-_0x479b7d,_0x4d4a9b=0x1-_0x4a871e,_0x7b4d8e=_0x1ea921*_0x4d4a9b,_0x3e9990=_0x479b7d*_0x4d4a9b,_0x29861f=_0x1ea921*_0x4a871e,_0x1528af=_0x479b7d*_0x4a871e,_0x4dbd06=_0x4a5779[0x0]*_0x7b4d8e+_0x19de7d[0x0]*_0x3e9990+_0x1c8b42[0x0]*_0x29861f+_0x4c60ad[0x0]*_0x1528af,_0xdc93d5=_0x4a5779[0x1]*_0x7b4d8e+_0x19de7d[0x1]*_0x3e9990+_0x1c8b42[0x1]*_0x29861f+_0x4c60ad[0x1]*_0x1528af;return this['_calcUV'](_0x4dbd06,_0xdc93d5);}[_0x1537ff(-0x146,-0x1a3)](_0x454fff,_0x22abd3){return[+_0x454fff,+_0x22abd3,Math['sqrt'](_0x454fff*_0x454fff+_0x22abd3*_0x22abd3)];}[_0x1537ff(-0x1ce,-0x1eb)](_0x4d544f,_0x1322cb){if(!this[_0x4c981b(0x580,0x53c)](_0x4d544f,_0x1322cb))return null;const _0x23068b=this[_0x4c981b(0x528,0x52d)](_0x4d544f,_0x1322cb);function _0x4c981b(_0x1f902d,_0x14f797){return _0x1537ff(_0x14f797-0x64c,_0x1f902d);}const _0x4401fc=this['getUVByXY'](_0x23068b[0x0],_0x23068b[0x1]);function _0x3a26fb(_0x2dc10b,_0x4ea914){return _0x1537ff(_0x2dc10b-0x45a,_0x4ea914);}return _0x4401fc;}[_0x2c9552(-0xeb,-0xdf)](_0x493a5c,_0x43fcf2){function _0x4880ff(_0x31a5ec,_0x50e6cf){return _0x1537ff(_0x31a5ec-0x570,_0x50e6cf);}function _0x2ba7f6(_0x5f4f64,_0x559bc7){return _0x1537ff(_0x559bc7-0x1c7,_0x5f4f64);}return _0x493a5c>=this[_0x2ba7f6(0x26,0xaf)]&&_0x493a5c<=this['xmax']&&_0x43fcf2>=this[_0x2ba7f6(-0x21,0x32)]&&_0x43fcf2<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0x1702e5(_0xde95b2,_0x364d3c){return _0x1537ff(_0xde95b2-0x60,_0x364d3c);}const _0x3f2f0f=fRandomByfloat(this['xmin'],this['xmax']),_0x5b95ea=fRandomByfloat(this['ymin'],this['ymax']),_0x364852={};_0x364852[_0x46bafe(0x500,0x547)]=_0x5b95ea,_0x364852[_0x1702e5(-0x13b,-0x18b)]=_0x3f2f0f;function _0x46bafe(_0x428958,_0x2fe1f5){return _0x1537ff(_0x428958-0x68e,_0x2fe1f5);}return _0x364852;}['getParticles'](){function _0x21fd17(_0x346c79,_0x19c584){return _0x2c9552(_0x19c584-0x433,_0x346c79);}function _0x321a02(_0x8ae14e,_0x1641b0){return _0x1537ff(_0x1641b0- -0x115,_0x8ae14e);}let _0x50b559,_0x5a332c,_0xe29e42;for(let _0x36bac7=0x0,_0x1f04fd=this[_0x21fd17(0x342,0x354)][_0x321a02(-0x2e9,-0x2f4)];_0x36bac7<_0x1f04fd;_0x36bac7++){let _0x587434=this['particles'][_0x36bac7];_0x587434['age']<=0x0&&(_0x587434=this[_0x321a02(-0x22c,-0x256)](_0x587434));if(_0x587434[_0x321a02(-0x374,-0x314)]>0x0){const _0x25bf73=_0x587434['tlng'],_0x3fb39e=_0x587434[_0x321a02(-0x223,-0x25a)];_0xe29e42=this['getUVByPoint'](_0x25bf73,_0x3fb39e),_0xe29e42?(_0x50b559=_0x25bf73+this[_0x21fd17(0x2b8,0x30c)][0x0]*_0xe29e42[0x0],_0x5a332c=_0x3fb39e+this[_0x21fd17(0x281,0x30c)][0x1]*_0xe29e42[0x1],_0x587434['lng']=_0x25bf73,_0x587434[_0x21fd17(0x256,0x2ca)]=_0x3fb39e,_0x587434[_0x21fd17(0x1d4,0x25d)]=_0x50b559,_0x587434[_0x321a02(-0x28a,-0x25a)]=_0x5a332c,_0x587434['speed']=_0xe29e42[0x2],_0x587434['age']--):_0x587434['age']=0x0;}}return this['particles'];}['_randomParticle'](_0x1f38aa){let _0x2f46ba,_0xd8b6e3;for(let _0x28bf08=0x0;_0x28bf08<0x1e;_0x28bf08++){_0x2f46ba=this['getRandomLatLng'](),_0xd8b6e3=this['getUVByPoint'](_0x2f46ba[_0x1caaee(0xed,0x15e)],_0x2f46ba[_0x1caaee(0x149,0x16b)]);if(_0xd8b6e3&&_0xd8b6e3[0x2]>0x0)break;}if(!_0xd8b6e3)return _0x1f38aa;function _0x59ac50(_0x18be2a,_0x20768f){return _0x1537ff(_0x18be2a- -0x94,_0x20768f);}const _0x2abeff=_0x2f46ba[_0x1caaee(0x121,0x15e)]+this['_calc_speedRate'][0x0]*_0xd8b6e3[0x0];function _0x1caaee(_0x167bd7,_0x2f7986){return _0x2c9552(_0x2f7986-0x2d4,_0x167bd7);}const _0x426bda=_0x2f46ba['lat']+this['_calc_speedRate'][0x1]*_0xd8b6e3[0x1];return _0x1f38aa[_0x59ac50(-0x22f,-0x21e)]=_0x2f46ba['lng'],_0x1f38aa[_0x59ac50(-0x222,-0x281)]=_0x2f46ba[_0x1caaee(0x1cd,0x16b)],_0x1f38aa[_0x1caaee(0x105,0xfe)]=_0x2abeff,_0x1f38aa['tlat']=_0x426bda,_0x1f38aa['age']=Math['round'](0xa+Math[_0x59ac50(-0x1d4,-0x1d1)]()*this[_0x1caaee(0xf2,0x11f)]),_0x1f38aa['speed']=_0xd8b6e3[0x2],_0x1f38aa;}['destroy'](){for(const _0x532d9c in this){delete this[_0x532d9c];}}}function fRandomByfloat(_0x3c92fe,_0x326d4d){function _0x2a627a(_0x31944e,_0x199d68){return _0x1537ff(_0x31944e-0x422,_0x199d68);}return _0x3c92fe+Math[_0x2a627a(0x2e2,0x2d8)]()*(_0x326d4d-_0x3c92fe);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0xb1fdeb={}){super(_0xb1fdeb),this['_setOptionsHook'](_0xb1fdeb);function _0x418cda(_0x3e7e14,_0xd8dd7c){return _0x1537ff(_0x3e7e14-0x458,_0xd8dd7c);}this[_0x418cda(0x2be,0x290)]=null,_0xb1fdeb['colors']&&_0xb1fdeb['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0xb1fdeb));}['_setOptionsHook'](_0x1f3d38,_0x2a78ea){this[_0x415dab(0x153,0x1ae)]=0x3e8/(_0x1f3d38[_0x1fc404(0x2e,0x6a)]||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![],this['color']=_0x1f3d38[_0x415dab(0x143,0xbb)]||'#ffffff',this['lineWidth']=_0x1f3d38['lineWidth']||0x1,this['fixedHeight']=_0x1f3d38[_0x1fc404(-0xbe,-0xc2)]??0x0,this['flipY']=_0x1f3d38['flipY']??![];function _0x415dab(_0x204449,_0x5d8448){return _0x2c9552(_0x204449-0x320,_0x5d8448);}function _0x1fc404(_0x508ba3,_0x4e6990){return _0x1537ff(_0x508ba3-0x145,_0x4e6990);}this[_0x415dab(0x13d,0x196)]&&this['windField']['setOptions'](_0x1f3d38);}get['layer'](){return this['canvas'];}get[_0x2c9552(-0x1aa,-0x17d)](){function _0x27bb47(_0x324028,_0x59f616){return _0x2c9552(_0x59f616-0x60,_0x324028);}function _0x202d8b(_0x2b89a6,_0x1f1dfa){return _0x1537ff(_0x2b89a6- -0x7,_0x1f1dfa);}return this[_0x27bb47(-0x2,-0x86)]['scene'][_0x202d8b(-0x1a1,-0x18f)][_0x27bb47(-0x19a,-0x148)];}get[_0x1537ff(-0x10f,-0xbb)](){function _0x3caf89(_0x64d51,_0x161686){return _0x1537ff(_0x161686- -0x19,_0x64d51);}function _0x1c6bce(_0x9ab9f3,_0x1a9522){return _0x2c9552(_0x9ab9f3-0x55,_0x1a9522);}return this[_0x1c6bce(-0x91,-0xc1)][_0x3caf89(-0x1a5,-0x177)]['canvas'][_0x1c6bce(-0xa1,-0xb7)];}get['pointerEvents'](){function _0x44b5bf(_0x366600,_0xa313f9){return _0x1537ff(_0xa313f9-0x192,_0x366600);}return this[_0x44b5bf(0x88,0x3d)];}set['pointerEvents'](_0x34afc4){this['_pointerEvents']=_0x34afc4;if(!this['canvas'])return;function _0x56d8b2(_0x5d2aa6,_0x4208b3){return _0x2c9552(_0x4208b3-0x210,_0x5d2aa6);}_0x34afc4?this['canvas']['style']['pointer-events']='all':this['canvas']['style'][_0x56d8b2(0x5a,0xd2)]='none';}get[_0x1537ff(-0x192,-0x1c2)](){function _0x1f7034(_0x73d6cb,_0x3ba773){return _0x1537ff(_0x73d6cb-0x29e,_0x3ba773);}return this['options'][_0x1f7034(0x10c,0x96)];}set[_0x2c9552(-0x16d,-0xec)](_0x12c2e5){this['options'][_0x597bb8(0x9a,0xc2)]=_0x12c2e5,clearTimeout(this['_canrefresh']);function _0x597bb8(_0x1f62fc,_0x3437c7){return _0x1537ff(_0x3437c7-0x254,_0x1f62fc);}this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x50c66c(_0x182f71,_0xf4342b){return _0x1537ff(_0xf4342b-0x1b6,_0x182f71);}return this[_0x50c66c(0xaa,0xac)]['speedRate'];}set['speedRate'](_0x14c940){this['options']['speedRate']=_0x14c940;function _0x27da2c(_0x5804a1,_0x5c0875){return _0x2c9552(_0x5c0875- -0x113,_0x5804a1);}this[_0x27da2c(-0x2c1,-0x2f6)]&&(this['windField']['speedRate']=_0x14c940);}get[_0x1537ff(-0x1da,-0x1aa)](){function _0x3ef267(_0x3a783e,_0x46a8e1){return _0x2c9552(_0x3a783e-0x3a8,_0x46a8e1);}return this['options'][_0x3ef267(0x1f3,0x1ec)];}set[_0x2c9552(-0x1b5,-0x19b)](_0x4719a9){function _0x8ca475(_0x3eccdf,_0x59fb49){return _0x1537ff(_0x3eccdf-0x1c4,_0x59fb49);}function _0x2ae706(_0x44b0d5,_0x371fb4){return _0x2c9552(_0x371fb4-0x69,_0x44b0d5);}this[_0x8ca475(0xba,0xd7)]['maxAge']=_0x4719a9,this[_0x2ae706(-0x160,-0x17a)]&&(this[_0x8ca475(-0x44,0x2b)]['maxAge']=_0x4719a9);}get['data'](){return this['windData'];}set['data'](_0x4bd396){function _0x57a1ed(_0x10662c,_0x5698ac){return _0x2c9552(_0x5698ac-0x6e,_0x10662c);}this[_0x57a1ed(-0x124,-0x10d)](_0x4bd396);}get[_0x2c9552(-0x1d3,-0x148)](){function _0x30b3fc(_0x5cf552,_0x3eb6b6){return _0x1537ff(_0x3eb6b6-0xa2,_0x5cf552);}let _0x1aec25=this['windData']['xmin'],_0x4dfeda=this['windData']['xmax'],_0x1b4b0c=this[_0x9fc445(0x342,0x2b9)][_0x30b3fc(-0x177,-0xf3)],_0x84636b=this['windData'][_0x30b3fc(-0x7b,-0xcb)];_0x4dfeda>=0x167&&_0x1aec25===0x0&&(_0x1aec25=-0xb4,_0x4dfeda=0xb4);_0x1aec25=Math['max'](_0x1aec25,-0xb4),_0x4dfeda=Math['min'](_0x4dfeda,0xb4);function _0x9fc445(_0x3be35b,_0x1d692e){return _0x1537ff(_0x3be35b-0x44f,_0x1d692e);}return _0x1b4b0c=Math['max'](_0x1b4b0c,-0x5a),_0x84636b=Math[_0x9fc445(0x32f,0x336)](_0x84636b,0x5a),Cesium['Rectangle'][_0x9fc445(0x29b,0x23c)](_0x1aec25,_0x1b4b0c,_0x4dfeda,_0x84636b);}['_showHook'](_0x27b54b){function _0x2fd50d(_0x37d4af,_0x50538d){return _0x1537ff(_0x37d4af-0x1c,_0x50538d);}function _0x2b08c8(_0x5410a1,_0x332e00){return _0x1537ff(_0x332e00-0xd1,_0x5410a1);}_0x27b54b?this[_0x2b08c8(-0x3f,-0xa3)]():(this['windData']&&(this[_0x2b08c8(0x1d,-0x39)]['data']=this[_0x2b08c8(0x1c,-0x3c)]),this[_0x2fd50d(-0x1b6,-0x135)]());}['_mountedHook'](){function _0x44d3b5(_0x3ccc31,_0x3fecae){return _0x2c9552(_0x3fecae- -0xb0,_0x3ccc31);}function _0x15b1c6(_0x3f09c8,_0xb9643d){return _0x2c9552(_0x3f09c8-0x52d,_0xb9643d);}this[_0x44d3b5(-0x15a,-0x195)]['worker']?this[_0x15b1c6(0x36a,0x396)]():this[_0x44d3b5(-0x27a,-0x293)]=new CanvasWindField(this['options']);}[_0x2c9552(-0x14f,-0x149)](){function _0x551d85(_0x1d00e8,_0x1a50b7){return _0x2c9552(_0x1a50b7-0x8f,_0x1d00e8);}function _0x4837af(_0x3be681,_0x13d0d9){return _0x2c9552(_0x3be681-0x4fe,_0x13d0d9);}this['canvas']=this['_createCanvas']();const _0x55d09d={};_0x55d09d[_0x4837af(0x313,0x2d0)]=!![],this['canvasContext']=this['canvas']['getContext']('2d',_0x55d09d),this[_0x551d85(-0x2f,-0x8f)](),this['options'][_0x551d85(-0x130,-0xfa)]&&this[_0x551d85(-0x85,-0xec)](this['options'][_0x4837af(0x375,0x3f5)]);}[_0x1537ff(-0x1d2,-0x1cc)](){function _0x2dd121(_0x45ac53,_0x2cc84a){return _0x1537ff(_0x2cc84a-0x283,_0x45ac53);}this[_0x180d07(0xaa,0x112)]();function _0x180d07(_0x455fef,_0x4df793){return _0x1537ff(_0x455fef-0x1d0,_0x4df793);}this['unbindEvent'](),this[_0x2dd121(0x6a,0xe9)]&&(this[_0x2dd121(0x1e7,0x178)]['container']['removeChild'](this[_0x2dd121(0x83,0xe9)]),delete this[_0x180d07(0x36,0xc)]);}[_0x1537ff(-0x153,-0xcd)](){function _0x372d2c(_0x3a9827,_0x1c0e82){return _0x2c9552(_0x1c0e82-0x52c,_0x3a9827);}function _0x46344e(_0x11c2c6,_0x1fc7c0){return _0x1537ff(_0x11c2c6-0x560,_0x1fc7c0);}const _0x1da981=mars3d__namespace[_0x46344e(0x3b9,0x3eb)]['create'](_0x46344e(0x3c6,0x34b),_0x372d2c(0x402,0x388),this['_map']['container']);return _0x1da981[_0x372d2c(0x2f7,0x366)][_0x46344e(0x394,0x31e)]=_0x372d2c(0x448,0x3e5),_0x1da981[_0x372d2c(0x39f,0x366)]['top']='0px',_0x1da981['style'][_0x46344e(0x374,0x3ca)]='0px',_0x1da981['style']['width']=this[_0x46344e(0x455,0x447)]['scene'][_0x46344e(0x3c6,0x343)]['clientWidth']+'px',_0x1da981[_0x46344e(0x375,0x2f4)][_0x372d2c(0x482,0x41c)]=this['_map']['scene']['canvas'][_0x46344e(0x445,0x459)]+'px',_0x1da981[_0x46344e(0x375,0x3ee)]['pointerEvents']=this['_pointerEvents']?_0x46344e(0x44f,0x424):'none',_0x1da981[_0x46344e(0x375,0x2fb)][_0x372d2c(0x334,0x3bb)]=this[_0x372d2c(0x442,0x447)][_0x372d2c(0x3ac,0x3bb)]??0x9,_0x1da981['width']=this[_0x372d2c(0x430,0x446)]['scene']['canvas']['clientWidth'],_0x1da981['height']=this['_map']['scene'][_0x372d2c(0x357,0x3b7)]['clientHeight'],_0x1da981;}['resize'](){function _0x2992e7(_0x4a64f3,_0x4131f3){return _0x2c9552(_0x4a64f3-0x5ec,_0x4131f3);}function _0x2750fa(_0x4d9234,_0x537ef){return _0x2c9552(_0x537ef-0x3e,_0x4d9234);}this['canvas']&&(this[_0x2750fa(-0x18c,-0x137)][_0x2750fa(-0x10a,-0x188)]['width']=this[_0x2992e7(0x506,0x4ee)]['scene']['canvas']['clientWidth']+'px',this[_0x2750fa(-0x1b7,-0x137)][_0x2750fa(-0x182,-0x188)][_0x2992e7(0x4dc,0x500)]=this[_0x2992e7(0x506,0x56b)][_0x2750fa(-0x173,-0xfb)]['canvas']['clientHeight']+'px',this['canvas'][_0x2992e7(0x4cf,0x471)]=this[_0x2992e7(0x506,0x526)]['scene'][_0x2750fa(-0x103,-0x137)][_0x2992e7(0x444,0x4d0)],this['canvas']['height']=this[_0x2992e7(0x506,0x4b0)][_0x2992e7(0x4b3,0x4dd)]['canvas']['clientHeight']);}['bindEvent'](){function _0x58ac45(_0x309715,_0xd490d5){return _0x1537ff(_0xd490d5-0x37e,_0x309715);}const _0x461611=this;function _0x38bd24(_0x1a52bd,_0x3502ee){return _0x2c9552(_0x3502ee- -0xc9,_0x1a52bd);}let _0x11414c=Date[_0x58ac45(0x1d4,0x24a)]();(function _0x383e42(){function _0x18e3db(_0x203ee8,_0xd27a){return _0x58ac45(_0xd27a,_0x203ee8-0xe6);}if(_0x461611['isDestroy'])return;function _0x577a8f(_0x84340f,_0x440a92){return _0x58ac45(_0x440a92,_0x84340f-0x1b5);}_0x461611['_animateFrame']=window[_0x18e3db(0x341,0x30b)](_0x383e42);if(_0x461611['show']&&_0x461611[_0x18e3db(0x25c,0x29d)]){const _0x339ce2=Date['now'](),_0x588daa=_0x339ce2-_0x11414c;_0x588daa>_0x461611['frameTime']&&(_0x11414c=_0x339ce2-_0x588daa%_0x461611['frameTime'],_0x461611['update']());}}(),window[_0x58ac45(0x20d,0x27e)](_0x38bd24(-0x1a4,-0x216),this[_0x58ac45(0x1e0,0x20c)]['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this[_0x58ac45(0x2db,0x274)]['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType'][_0x58ac45(0x276,0x227)],this['_onMapWhellEvent'],this),this[_0x38bd24(-0x1c2,-0x1af)]['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x38bd24(-0x2b1,-0x2b3)],this),this['_map']['on'](mars3d__namespace[_0x58ac45(0x262,0x21e)]['mouseUp'],this[_0x58ac45(0x22e,0x1ef)],this)));}[_0x2c9552(-0x106,-0x11d)](){window[_0x312878(0x4e,0xb1)](this['_animateFrame']),delete this['_animateFrame'];function _0x312878(_0x33f75d,_0x4ed2c5){return _0x1537ff(_0x33f75d-0x206,_0x4ed2c5);}function _0x12edc7(_0x3f24ae,_0x5085b2){return _0x1537ff(_0x5085b2-0x4a5,_0x3f24ae);}window['removeEventListener'](_0x12edc7(0x2c3,0x333),this[_0x312878(0x94,0x73)]),this['options']['mouseHidden']&&(this[_0x312878(0xfb,0x134)][_0x312878(0xac,0x76)](mars3d__namespace[_0x312878(0xa6,0xc7)][_0x12edc7(0x2e0,0x34e)],this['_onMapWhellEvent'],this),this[_0x312878(0xfb,0x107)][_0x12edc7(0x31a,0x34b)](mars3d__namespace['EventType']['mouseDown'],this[_0x12edc7(0x218,0x296)],this),this['_map'][_0x12edc7(0x301,0x34b)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x312878(0x7d,0xd1)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x26cc4d){function _0x4acf6a(_0x3d5a5c,_0x30fe4e){return _0x2c9552(_0x30fe4e-0x2e3,_0x3d5a5c);}function _0xabb916(_0x2af78c,_0x450116){return _0x1537ff(_0x450116-0x4c1,_0x2af78c);}clearTimeout(this[_0x4acf6a(0x1f5,0x18f)]);if(!this['show']||!this['canvas'])return;this['canvas']['style'][_0xabb916(0x2e4,0x33c)]=_0x4acf6a(0x134,0x162),this['refreshTimer']=setTimeout(()=>{if(!this[_0x4c09bc(0x297,0x22a)])return;function _0x4c09bc(_0x3cc1d7,_0x44890a){return _0x4acf6a(_0x44890a,_0x3cc1d7-0x9b);}this['redraw'](),this['canvas']['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x5564a6){this['mouse_down']=!![],this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x4445ac(-0x6d,0xe)],this);function _0x4445ac(_0x302855,_0x55ce6c){return _0x2c9552(_0x55ce6c-0x105,_0x302855);}function _0x513203(_0x582f83,_0x572acb){return _0x1537ff(_0x572acb-0x60,_0x582f83);}this[_0x4445ac(0x4f,0x1f)]['on'](mars3d__namespace['EventType'][_0x513203(-0x1a3,-0x129)],this[_0x513203(-0x49,-0xbc)],this);}['_onMouseMoveEvent'](_0x51214d){if(!this['show']||!this['canvas'])return;function _0x49b361(_0x319437,_0x11ac67){return _0x1537ff(_0x319437- -0x5d,_0x11ac67);}function _0x2343f8(_0x509c82,_0x35d671){return _0x1537ff(_0x35d671-0xbe,_0x509c82);}this[_0x2343f8(-0xaa,-0x57)]&&(this[_0x2343f8(-0x58,-0xdc)][_0x49b361(-0x248,-0x24b)][_0x49b361(-0x1e2,-0x17c)]=_0x2343f8(-0xbc,-0xe8),this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x5dd2a5){if(!this[_0x4fb221(0x27c,0x227)]||!this[_0x369a5d(-0x1b2,-0x227)])return;function _0x4fb221(_0x2e9162,_0x32990d){return _0x1537ff(_0x2e9162-0x388,_0x32990d);}this[_0x4fb221(0x27d,0x29b)]['off'](mars3d__namespace[_0x369a5d(-0x1b5,-0x1ed)]['mouseMove'],this[_0x4fb221(0x26c,0x272)],this);function _0x369a5d(_0x5f543a,_0x2c49d0){return _0x2c9552(_0x2c49d0- -0xb2,_0x5f543a);}this[_0x369a5d(-0x1a3,-0x1a2)]&&this['mouse_move']&&this[_0x369a5d(-0x22d,-0x1f1)](),this['canvas']['style']['visibility']=_0x4fb221(0x215,0x241),this['mouse_down']=![],this[_0x4fb221(0x200,0x1c7)]=![];}[_0x1537ff(-0x1a0,-0x1f8)](_0x4430a5){this['clear'](),this[_0x19bfd4(0x122,0x199)]=_0x4430a5;function _0x19bfd4(_0xd462a5,_0x3f88ee){return _0x1537ff(_0xd462a5-0x22f,_0x3f88ee);}function _0x52d4c2(_0x3f9088,_0x380744){return _0x1537ff(_0x380744-0x1b1,_0x3f9088);}this['windField']['setDate'](_0x4430a5),this[_0x52d4c2(0x8e,0x4d)]();}['redraw'](){function _0x915aa5(_0x1391a7,_0x39626f){return _0x2c9552(_0x1391a7-0x4ce,_0x39626f);}if(!this[_0x24e1a4(-0x1d0,-0x1bc)])return;function _0x24e1a4(_0x20eb10,_0x23420b){return _0x2c9552(_0x23420b- -0xd5,_0x20eb10);}this[_0x915aa5(0x2eb,0x373)][_0x915aa5(0x2f7,0x334)](this['options']),this['update']();}[_0x2c9552(-0x145,-0x111)](){function _0x3f0161(_0x5babcd,_0x344b9e){return _0x2c9552(_0x344b9e-0x474,_0x5babcd);}if(this[_0x38868b(0xa4,0x125)])return;this[_0x38868b(0x10f,0x125)]=!![];if(this['worker'])this['windField'][_0x38868b(0x106,0xb6)]();else{const _0x3b7f93=this['windField'][_0x3f0161(0x299,0x305)]();this[_0x3f0161(0x360,0x2fb)](_0x3b7f93);}function _0x38868b(_0x1c1d56,_0x5e2606){return _0x1537ff(_0x5e2606-0x220,_0x1c1d56);}this['_updateIng']=![];}['_drawLines'](_0x16e9db){this['_canvasParticles']=_0x16e9db,this[_0x3265e9(0x4a0,0x41a)]['globalCompositeOperation']='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x164606(0x2ee,0x279)]),this[_0x3265e9(0x3ec,0x41a)]['globalCompositeOperation']='lighter',this['canvasContext']['globalAlpha']=0.9;function _0x3265e9(_0x304623,_0x31367d){return _0x1537ff(_0x31367d-0x56c,_0x304623);}const _0x2d932b=this[_0x164606(0x2f2,0x355)][_0x164606(0x29f,0x296)]['mode']!==Cesium['SceneMode']['SCENE3D'],_0x36a384=this['canvasWidth']*0.25;function _0x164606(_0x31d4fc,_0x201c4b){return _0x2c9552(_0x31d4fc-0x3d8,_0x201c4b);}if(this[_0x164606(0x219,0x28e)])for(let _0x145653=0x0,_0x5a60a0=_0x16e9db['length'];_0x145653<_0x5a60a0;_0x145653++){const _0x36163f=_0x16e9db[_0x145653],_0x145668=this['_tomap'](_0x36163f,_0x36163f[_0x3265e9(0x39b,0x3d1)],_0x36163f['lat'],_0x36163f[_0x164606(0x22d,0x2ab)]),_0x3c7a87=this['_tomap'](_0x36163f,_0x36163f['tlng'],_0x36163f[_0x164606(0x2b8,0x334)],_0x36163f['talt']);if(!_0x145668||!_0x3c7a87)continue;if(_0x2d932b&&Math[_0x164606(0x2fc,0x28b)](_0x145668[0x0]-_0x3c7a87[0x0])>=_0x36a384)continue;this[_0x164606(0x2ab,0x29d)]['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x164606(0x2ab,0x2a8)][_0x164606(0x21c,0x207)]=this[_0x3265e9(0x3ea,0x388)][_0x164606(0x235,0x270)](_0x36163f[_0x3265e9(0x336,0x399)]),this[_0x3265e9(0x3e1,0x41a)][_0x3265e9(0x356,0x3d9)](_0x145668[0x0],_0x145668[0x1]),this['canvasContext'][_0x164606(0x1f1,0x20f)](_0x3c7a87[0x0],_0x3c7a87[0x1]),this['canvasContext']['stroke']();}else{this[_0x3265e9(0x3c1,0x41a)]['beginPath'](),this[_0x3265e9(0x414,0x41a)][_0x164606(0x23e,0x228)]=this[_0x164606(0x23e,0x26c)],this[_0x3265e9(0x466,0x41a)]['strokeStyle']=this['color'];for(let _0x24ecc1=0x0,_0x3e7ed0=_0x16e9db[_0x3265e9(0x3d8,0x38d)];_0x24ecc1<_0x3e7ed0;_0x24ecc1++){const _0x1fffe7=_0x16e9db[_0x24ecc1],_0x38533f=this['_tomap'](_0x1fffe7,_0x1fffe7[_0x3265e9(0x36f,0x3d1)],_0x1fffe7['lat'],_0x1fffe7['alt']),_0x4a800a=this[_0x3265e9(0x404,0x38e)](_0x1fffe7,_0x1fffe7[_0x3265e9(0x3bc,0x371)],_0x1fffe7['tlat'],_0x1fffe7['talt']);if(!_0x38533f||!_0x4a800a)continue;if(_0x2d932b&&Math[_0x3265e9(0x48b,0x46b)](_0x38533f[0x0]-_0x4a800a[0x0])>=_0x36a384)continue;this['canvasContext']['moveTo'](_0x38533f[0x0],_0x38533f[0x1]),this[_0x3265e9(0x3fb,0x41a)]['lineTo'](_0x4a800a[0x0],_0x4a800a[0x1]);}this['canvasContext'][_0x164606(0x221,0x1b4)]();}}['_tomap'](_0x5e30d0,_0x397070,_0x200c15,_0x52e1d3){const _0x2be247=Cesium['Cartesian3'][_0x20992c(0x3b8,0x3aa)](_0x397070,_0x200c15,_0x52e1d3??this['fixedHeight']),_0x2e6bc9=this[_0x2cc718(-0x1cf,-0x248)]['scene'];if(_0x2e6bc9['mode']===Cesium['SceneMode']['SCENE3D']){const _0x5c97e7=new Cesium['EllipsoidalOccluder'](_0x2e6bc9[_0x20992c(0x345,0x3bc)][_0x20992c(0x3ce,0x354)],_0x2e6bc9['camera']['positionWC']),_0x265d9d=_0x5c97e7[_0x2cc718(-0x26d,-0x22d)](_0x2be247);if(!_0x265d9d)return _0x5e30d0['age']=0x0,null;}function _0x20992c(_0x34e676,_0x507406){return _0x1537ff(_0x507406-0x55e,_0x34e676);}const _0x94c87d=mars3d__namespace[_0x2cc718(-0x29a,-0x2ab)][_0x20992c(0x354,0x3c2)](this['_map']['scene'],_0x2be247);function _0x2cc718(_0x404643,_0x40be65){return _0x1537ff(_0x404643- -0xc4,_0x40be65);}return _0x94c87d?[_0x94c87d['x'],_0x94c87d['y']]:null;}['clear'](){this['windField']['clear'](),delete this['windData'];}[_0x1537ff(-0x1e8,-0x1d1)](){this['worker']=new Worker(this['options']['worker']),this['worker']['onmessage']=_0xe8537c=>{this['_drawLines'](_0xe8537c['data']['particles']),this['_updateIng2']=![];},this['windField']={'init':_0x2ea216=>{const _0xcef483={};_0xcef483['type']='init';function _0x16e8b9(_0x4d02df,_0x403974){return _0x1d21(_0x403974- -0x367,_0x4d02df);}_0xcef483[_0x16e8b9(-0x1d5,-0x1b1)]=_0x2ea216,this['worker']['postMessage'](_0xcef483);},'setOptions':_0x44959e=>{const _0x68e7c={};_0x68e7c[_0x86cee(0x1b4,0x145)]=_0x4df6b8(-0x32d,-0x2ef);function _0x4df6b8(_0x4db68e,_0x14fc5c){return _0x1d21(_0x14fc5c- -0x3b3,_0x4db68e);}_0x68e7c['options']=_0x44959e;function _0x86cee(_0x1ad43c,_0x5951f2){return _0x1d21(_0x5951f2- -0x32,_0x1ad43c);}this[_0x4df6b8(-0x277,-0x1f0)]['postMessage'](_0x68e7c);},'setDate':_0x333068=>{const _0x9e3156={};function _0x22752a(_0x4094c8,_0x2638d3){return _0x1d21(_0x2638d3-0x36,_0x4094c8);}_0x9e3156['type']='setDate',_0x9e3156['data']=_0x333068,this[_0x22752a(0x188,0x1f9)]['postMessage'](_0x9e3156);},'update':()=>{if(this['_updateIng2'])return;this[_0x5df609(0x3f8,0x47b)]=!![];function _0x5df609(_0x471812,_0x108727){return _0x1d21(_0x471812-0x327,_0x108727);}const _0x1a3491={};function _0x1d3de1(_0x5eb6dc,_0x10a16c){return _0x1d21(_0x10a16c- -0x35e,_0x5eb6dc);}_0x1a3491[_0x1d3de1(-0x1f6,-0x1e7)]='update',this['worker'][_0x1d3de1(-0x2f3,-0x273)](_0x1a3491);},'clear':()=>{const _0x33bbd5={};function _0x1e1e90(_0x31293b,_0x5dd115){return _0x1d21(_0x5dd115-0x1bc,_0x31293b);}_0x33bbd5[_0x491a5c(0x558,0x5c2)]=_0x491a5c(0x57b,0x503);function _0x491a5c(_0x52915a,_0x3252fc){return _0x1d21(_0x52915a-0x3e1,_0x3252fc);}this[_0x491a5c(0x5a4,0x5ff)][_0x1e1e90(0x318,0x2a7)](_0x33bbd5);}};function _0x30e74f(_0x545249,_0x2ef73b){return _0x1537ff(_0x2ef73b-0x4c6,_0x545249);}this[_0x30e74f(0x30f,0x2be)]['init'](this['options']);}}function _0x1537ff(_0x354d63,_0x9d27b1){return _0x1d21(_0x354d63- -0x2c0,_0x9d27b1);}mars3d__namespace['LayerUtil']['register'](_0x1537ff(-0x127,-0xa6),CanvasWindLayer),mars3d__namespace['layer'][_0x1537ff(-0x105,-0xd1)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x2c9552(-0x1a6,-0x21f)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x21832b={};_0x21832b[_0x1537ff(-0x102,-0x157)]=!![],Object['defineProperty'](exports,'__esModule',_0x21832b);
|
|
14
|
+
'use strict';function _0x2e747d(_0x140783,_0x4f8fd9){return _0x1e9b(_0x4f8fd9- -0x166,_0x140783);}(function(_0x11308f,_0x3c8d6b){function _0x2ea8eb(_0x35d061,_0x4bbbd5){return _0x1e9b(_0x35d061- -0x295,_0x4bbbd5);}const _0x45adfc=_0x11308f();function _0x25b517(_0x56e566,_0x42b2ab){return _0x1e9b(_0x56e566- -0x1fe,_0x42b2ab);}while(!![]){try{const _0xb779aa=-parseInt(_0x2ea8eb(-0x15c,-0x1a8))/0x1*(-parseInt(_0x25b517(-0x9d,-0x21))/0x2)+-parseInt(_0x25b517(0x7,-0x7f))/0x3+parseInt(_0x25b517(-0x76,-0xeb))/0x4*(parseInt(_0x2ea8eb(-0xb0,-0x122))/0x5)+-parseInt(_0x2ea8eb(-0xbd,-0x139))/0x6*(-parseInt(_0x2ea8eb(-0x112,-0x128))/0x7)+parseInt(_0x2ea8eb(-0xec,-0x109))/0x8+-parseInt(_0x25b517(-0x6b,0xa))/0x9*(parseInt(_0x25b517(0x31,0x4b))/0xa)+-parseInt(_0x25b517(-0x38,0x36))/0xb;if(_0xb779aa===_0x3c8d6b)break;else _0x45adfc['push'](_0x45adfc['shift']());}catch(_0x1380b9){_0x45adfc['push'](_0x45adfc['shift']());}}}(_0x2570,0x6401c));function _interopNamespace(_0x392ee2){function _0x567616(_0x25cb17,_0x5d78f7){return _0x1e9b(_0x25cb17- -0x30,_0x5d78f7);}if(_0x392ee2&&_0x392ee2[_0x567616(0x100,0x176)])return _0x392ee2;function _0x352515(_0x339eee,_0x547774){return _0x1e9b(_0x339eee- -0x378,_0x547774);}var _0x320fd3=Object[_0x352515(-0x166,-0x155)](null);return _0x392ee2&&Object['keys'](_0x392ee2)['forEach'](function(_0x408396){function _0x1172d0(_0x13e15b,_0x1fa876){return _0x567616(_0x13e15b- -0x248,_0x1fa876);}function _0x2851dd(_0x3101e4,_0x44c6a1){return _0x352515(_0x3101e4-0x703,_0x44c6a1);}if(_0x408396!==_0x2851dd(0x5ab,0x545)){var _0x2c9b87=Object['getOwnPropertyDescriptor'](_0x392ee2,_0x408396);Object['defineProperty'](_0x320fd3,_0x408396,_0x2c9b87[_0x2851dd(0x55c,0x502)]?_0x2c9b87:{'enumerable':!![],'get':function(){return _0x392ee2[_0x408396];}});}}),_0x320fd3['default']=_0x392ee2,_0x320fd3;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x37aa63,_0xb025e8){function _0x4362b7(_0x3bed2d,_0x458b8f){return _0x1e9b(_0x3bed2d- -0x314,_0x458b8f);}function _0x5eede0(_0x3d80e2,_0x521a40){return _0x1e9b(_0x521a40-0xb1,_0x3d80e2);}const _0x30c570=_0x37aa63*Math[_0x4362b7(-0xe3,-0x83)](Cesium$2['Math'][_0x4362b7(-0x183,-0x188)](_0xb025e8));return _0x30c570;}function _0x4086ac(_0x3b17b0,_0x348c4d){return _0x1e9b(_0x348c4d- -0x82,_0x3b17b0);}function getV(_0x2dd46d,_0x3f362d){const _0x1d1925=_0x2dd46d*Math['sin'](Cesium$2['Math'][_0x240ee1(0x1c4,0x142)](_0x3f362d));function _0x240ee1(_0x2a5a4c,_0x458bb8){return _0x1e9b(_0x2a5a4c-0x33,_0x458bb8);}return _0x1d1925;}function getSpeed(_0x24ad65,_0x1b0393){function _0x426bb0(_0x52c1c0,_0x348001){return _0x1e9b(_0x348001- -0x32b,_0x52c1c0);}const _0x5e6433=Math['sqrt'](Math['pow'](_0x24ad65,0x2)+Math[_0x426bb0(-0x14e,-0x11a)](_0x1b0393,0x2));return _0x5e6433;}function getDirection(_0x1b54db,_0x182bec){let _0x5ec519=Cesium$2['Math']['toDegrees'](Math[_0x4607da(0x451,0x418)](_0x182bec,_0x1b54db));function _0x4607da(_0x598032,_0x21c72a){return _0x1e9b(_0x21c72a-0x1f6,_0x598032);}return _0x5ec519+=_0x5ec519<0x0?0x168:0x0,_0x5ec519;}const _0x2b5825={};_0x2b5825['__proto__']=null,_0x2b5825['getU']=getU,_0x2b5825['getV']=getV,_0x2b5825['getSpeed']=getSpeed,_0x2b5825['getDirection']=getDirection;var WindUtil=_0x2b5825,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader=_0x4086ac(0x1e0,0x17d),postProcessingPositionFragmentShader=_0x2e747d(0x2a,0x65),renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader=_0x2e747d(-0x25,-0x9);const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x39a03c={};return _0x39a03c['sources']=[calculateSpeedShader],new ShaderSource$1(_0x39a03c);}static['getUpdatePositionShader'](){const _0x4541e6={};return _0x4541e6['sources']=[updatePositionShader],new ShaderSource$1(_0x4541e6);}static[_0x2e747d(0x121,0xb0)](){const _0x37e999={};return _0x37e999['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x37e999);}static['getSegmentDrawFragmentShader'](){const _0x35f93d={};return _0x35f93d['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x35f93d);}static[_0x2e747d(-0x99,-0x1e)](){const _0x324a2e={};return _0x324a2e['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x324a2e);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace[_0x2e747d(0x2c,-0x38)];class CustomPrimitive{constructor(_0xc88303){this['commandType']=_0xc88303[_0x58e34f(-0x21a,-0x1a9)],this['geometry']=_0xc88303[_0x36acea(-0x176,-0x1f2)],this[_0x36acea(-0xe8,-0xdc)]=_0xc88303[_0x36acea(-0xe8,-0x100)],this['primitiveType']=_0xc88303[_0x36acea(-0x14b,-0x190)],this[_0x36acea(-0x105,-0xae)]=_0xc88303['uniformMap']||{},this['vertexShaderSource']=_0xc88303[_0x36acea(-0x10a,-0x137)],this[_0x58e34f(-0x1b2,-0x1b5)]=_0xc88303['fragmentShaderSource'],this['rawRenderState']=_0xc88303[_0x36acea(-0x161,-0x176)],this[_0x58e34f(-0x150,-0xdd)]=_0xc88303['framebuffer'];function _0x36acea(_0x7b87d9,_0x22191a){return _0x2e747d(_0x22191a,_0x7b87d9- -0x196);}this['outputTexture']=_0xc88303['outputTexture'],this['autoClear']=_0xc88303['autoClear']??![];function _0x58e34f(_0x3d1ed3,_0x16ff47){return _0x2e747d(_0x3d1ed3,_0x16ff47- -0x198);}this[_0x58e34f(-0xf1,-0x14f)]=_0xc88303['preExecute'],this[_0x36acea(-0x10c,-0x139)]=!![],this[_0x36acea(-0x11f,-0x15e)]=undefined,this['clearCommand']=undefined,this[_0x36acea(-0x164,-0x1c8)]=_0xc88303['isDynamic']??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x36acea(-0xdb,-0xfd)],'pass':Pass$1[_0x36acea(-0x168,-0x188)]}));}[_0x2e747d(0x6e,-0xa)](_0x13ace3){function _0x498ebb(_0x3f3a1a,_0x3ebe45){return _0x4086ac(_0x3f3a1a,_0x3ebe45-0x26d);}function _0x204c47(_0xdda062,_0x172978){return _0x4086ac(_0xdda062,_0x172978- -0x22);}if(this['commandType']==='Draw'){const _0x29dd35={};_0x29dd35['context']=_0x13ace3,_0x29dd35['geometry']=this['geometry'],_0x29dd35[_0x204c47(0x133,0x170)]=this[_0x498ebb(0x46f,0x3ff)],_0x29dd35[_0x498ebb(0x47e,0x425)]=BufferUsage$1['STATIC_DRAW'];const _0x42133d=VertexArray$1[_0x498ebb(0x350,0x38e)](_0x29dd35),_0x241187={};_0x241187['context']=_0x13ace3,_0x241187['vertexShaderSource']=this['vertexShaderSource'],_0x241187['fragmentShaderSource']=this['fragmentShaderSource'],_0x241187[_0x204c47(0x111,0x170)]=this[_0x204c47(0x1a9,0x170)];const _0x70aea3=ShaderProgram['fromCache'](_0x241187),_0x9cdf91=RenderState[_0x498ebb(0x2f1,0x351)](this[_0x498ebb(0x3d6,0x386)]),_0xa45f83={};return _0xa45f83['owner']=this,_0xa45f83[_0x498ebb(0x362,0x38a)]=_0x42133d,_0xa45f83['primitiveType']=this[_0x498ebb(0x393,0x39c)],_0xa45f83[_0x204c47(0x86,0xda)]=Matrix4[_0x498ebb(0x2ef,0x352)],_0xa45f83['renderState']=_0x9cdf91,_0xa45f83['shaderProgram']=_0x70aea3,_0xa45f83['framebuffer']=this['framebuffer'],_0xa45f83[_0x204c47(0x138,0x153)]=this['uniformMap'],_0xa45f83['pass']=Pass$1['OPAQUE'],new DrawCommand(_0xa45f83);}else{if(this['commandType']==='Compute'){const _0x35fb2e={};return _0x35fb2e['owner']=this,_0x35fb2e['fragmentShaderSource']=this['fragmentShaderSource'],_0x35fb2e[_0x498ebb(0x3b6,0x3e2)]=this['uniformMap'],_0x35fb2e['outputTexture']=this['outputTexture'],_0x35fb2e[_0x204c47(0x12f,0x115)]=!![],new ComputeCommand(_0x35fb2e);}else throw new Error(_0x204c47(0x17c,0x12c));}}['setGeometry'](_0x219071,_0x36843f){function _0x4980e6(_0x564a09,_0x4ec096){return _0x2e747d(_0x564a09,_0x4ec096-0x3d8);}function _0x13328d(_0x8e25f9,_0x3677e7){return _0x4086ac(_0x8e25f9,_0x3677e7- -0x46);}this['geometry']=_0x36843f,defined(this[_0x13328d(0x155,0x115)])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x219071,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x13328d(0x184,0x16b)]}));}['update'](_0x51c186){if(!this[_0xb812ba(0x263,0x23c)]())return;if(!this[_0xb812ba(0x2bb,0x24d)]||!defined(_0x51c186))return;!defined(this[_0x3786a6(0xf1,0xe7)])&&(this['commandToExecute']=this[_0x3786a6(0x70,0x88)](_0x51c186['context']));defined(this['preExecute'])&&this['preExecute']();if(!_0x51c186['commandList']){console[_0xb812ba(0x294,0x2b2)]('frameState.commandList\x20is\x20undefined');return;}function _0x3786a6(_0xe0168c,_0x4a62c0){return _0x4086ac(_0x4a62c0,_0xe0168c- -0x6a);}function _0xb812ba(_0x4e166c,_0x2cc0f8){return _0x4086ac(_0x2cc0f8,_0x4e166c-0x14d);}defined(this[_0xb812ba(0x2d5,0x2fb)])&&_0x51c186['commandList']['push'](this['clearCommand']),defined(this['commandToExecute'])&&_0x51c186[_0x3786a6(0xc0,0xdb)]['push'](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){if(defined(this[_0x598a3b(-0x3d,-0x7c)])){var _0x14ff6c;(_0x14ff6c=this['commandToExecute']['shaderProgram'])===null||_0x14ff6c===void 0x0||_0x14ff6c['destroy'](),this[_0x598a3b(-0x46,-0x7c)]['shaderProgram']=undefined;}function _0x5d17ee(_0x4712fe,_0x213285){return _0x2e747d(_0x4712fe,_0x213285- -0x1dc);}function _0x598a3b(_0x25d726,_0x2f2b6b){return _0x4086ac(_0x25d726,_0x2f2b6b- -0x1d7);}return destroyObject(this);}}function deepMerge(_0x3ef7b6,_0x3c49d4){function _0x1f2b4c(_0x578efc,_0x3f79f4){return _0x4086ac(_0x3f79f4,_0x578efc- -0x1b8);}if(!_0x3ef7b6)return _0x3c49d4;if(!_0x3c49d4)return _0x3ef7b6;const _0x3e0ffd={..._0x3c49d4},_0x3bd7f7=_0x3e0ffd;for(const _0x17eeb2 in _0x3ef7b6){if(Object[_0x1f2b4c(-0x7b,-0x54)]['hasOwnProperty']['call'](_0x3ef7b6,_0x17eeb2)){const _0x7cf7d3=_0x3ef7b6[_0x17eeb2],_0x5ad9bf=_0x3c49d4[_0x17eeb2];if(Array['isArray'](_0x7cf7d3)){_0x3bd7f7[_0x17eeb2]=_0x7cf7d3[_0x428784(0x416,0x410)]();continue;}if(_0x7cf7d3&&typeof _0x7cf7d3==='object'){_0x3bd7f7[_0x17eeb2]=deepMerge(_0x7cf7d3,_0x5ad9bf||{});continue;}_0x7cf7d3!==undefined&&(_0x3bd7f7[_0x17eeb2]=_0x7cf7d3);}}function _0x428784(_0x12ce42,_0x1065de){return _0x2e747d(_0x12ce42,_0x1065de-0x445);}return _0x3bd7f7;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x231999,_0x255572,_0x13a94c,_0x45f6aa,_0x55986a){this['context']=_0x231999,this['options']=_0x13a94c,this['viewerParameters']=_0x45f6aa,this[_0x2903ca(0x160,0x105)]=_0x255572;function _0x551cbf(_0x34c92a,_0x39bb1b){return _0x2e747d(_0x34c92a,_0x39bb1b-0x40d);}this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x17a607={};_0x17a607['scene']=_0x55986a,_0x17a607[_0x551cbf(0x47f,0x4cd)]=0x1,_0x17a607['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x17a607);function _0x2903ca(_0x44dd8e,_0x52d1f9){return _0x4086ac(_0x44dd8e,_0x52d1f9-0x38);}this['initFrameRate'](),this[_0x551cbf(0x48a,0x4c1)](),this[_0x2903ca(0x14c,0x144)](),this['createComputingPrimitives']();}[_0x2e747d(0xe2,0x5c)](){function _0x50f213(_0x1450d2,_0x22bdec){return _0x2e747d(_0x1450d2,_0x22bdec-0x457);}const _0x4e1afc=()=>{function _0x5c297d(_0x470b51,_0x5b9758){return _0x1e9b(_0x470b51- -0x101,_0x5b9758);}function _0x433c1d(_0x7f69f7,_0x264b9a){return _0x1e9b(_0x7f69f7- -0x15c,_0x264b9a);}this['frameRateMonitor'][_0x433c1d(0x39,0xa3)]>0x14&&(this['frameRate']=this[_0x5c297d(0xc3,0x41)]['lastFramesPerSecond'],this[_0x433c1d(-0xe,-0x8)]=0x3c/Math[_0x5c297d(0xff,0x84)](this[_0x433c1d(0xad,0x9d)],0x1));};_0x4e1afc();const _0x345987=setInterval(_0x4e1afc,0x3e8),_0x4ffd41=this[_0x50f213(0x4c7,0x492)]['bind'](this);this['destroy']=()=>{clearInterval(_0x345987),_0x4ffd41();};}[_0x4086ac(0x11e,0x198)](){const _0x51aa52={};_0x51aa52[_0x14723e(-0x160,-0x13e)]=TextureMinificationFilter$1['LINEAR'];function _0x556132(_0x337c9e,_0x2c0f87){return _0x4086ac(_0x337c9e,_0x2c0f87-0x421);}function _0x14723e(_0x36ceec,_0x100fc8){return _0x2e747d(_0x36ceec,_0x100fc8- -0x152);}_0x51aa52['magnificationFilter']=TextureMagnificationFilter$1[_0x556132(0x607,0x5cd)];const _0x30a20c={'context':this['context'],'width':this[_0x556132(0x52d,0x4ee)][_0x14723e(-0x167,-0x15e)],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x556132(0x5ed,0x567)]['flipY']??![],'sampler':new Sampler$1(_0x51aa52)};this[_0x14723e(-0x9f,-0xc4)]={'U':new Texture$1({..._0x30a20c,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x30a20c,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){function _0x471a07(_0x5ac9cb,_0x138ae2){return _0x2e747d(_0x138ae2,_0x5ac9cb-0x2ce);}const _0xf0573c={};function _0x267ff3(_0x1f57d1,_0xb5a813){return _0x2e747d(_0xb5a813,_0x1f57d1-0xa2);}_0xf0573c[_0x471a07(0x2e2,0x323)]=TextureMinificationFilter$1['NEAREST'],_0xf0573c['magnificationFilter']=TextureMagnificationFilter$1[_0x471a07(0x2ed,0x2d6)];const _0x33a30e={'context':this['context'],'width':this['options'][_0x267ff3(0x122,0x156)],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0x471a07(0x37d,0x3a2)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x267ff3(0x104,0x9d)][_0x471a07(0x34e,0x2d8)]*this['options']['particlesTextureSize']*0x4)[_0x471a07(0x390,0x321)](0x0)},'sampler':new Sampler$1(_0xf0573c)};this[_0x471a07(0x28f,0x278)]={'previousParticlesPosition':new Texture$1(_0x33a30e),'currentParticlesPosition':new Texture$1(_0x33a30e),'nextParticlesPosition':new Texture$1(_0x33a30e),'postProcessingPosition':new Texture$1(_0x33a30e),'particlesSpeed':new Texture$1(_0x33a30e)};}['destroyParticlesTextures'](){function _0xe2794c(_0x801ef3,_0x17c051){return _0x2e747d(_0x17c051,_0x801ef3- -0x231);}Object['values'](this['particlesTextures'])['forEach'](_0x85e39e=>_0x85e39e[_0xe2794c(-0x1f6,-0x210)]());}[_0x4086ac(0xf6,0x17c)](){function _0x38346c(_0x399783,_0x4dc75a){return _0x4086ac(_0x4dc75a,_0x399783-0xb6);}function _0x164b25(_0x53bc0e,_0xaced18){return _0x2e747d(_0xaced18,_0x53bc0e- -0x15f);}this[_0x164b25(-0xde,-0x8a)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this[_0x164b25(-0xd1,-0x144)]['V'],'uRange':()=>new Cartesian2$1(this['windData']['u'][_0x164b25(-0x102,-0x181)],this[_0x164b25(-0x176,-0x195)]['u'][_0x164b25(-0xc5,-0x95)]),'vRange':()=>new Cartesian2$1(this[_0x164b25(-0x176,-0x1d1)]['v']['min'],this[_0x164b25(-0x176,-0x1aa)]['v'][_0x164b25(-0xc5,-0xef)]),'speedRange':()=>new Cartesian2$1(this[_0x38346c(0x183,0x124)][_0x38346c(0x1f1,0x1c2)]['min'],this[_0x38346c(0x183,0x141)][_0x38346c(0x1f1,0x16a)][_0x164b25(-0xc5,-0x9a)]),'currentParticlesPosition':()=>this['particlesTextures'][_0x164b25(-0x156,-0x129)],'speedScaleFactor':()=>{return(this['viewerParameters']['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this[_0x164b25(-0x177,-0x1ba)],'dimension':()=>new Cartesian2$1(this['windData'][_0x38346c(0x18e,0x20a)],this[_0x38346c(0x183,0x1b5)][_0x164b25(-0xaa,-0x12f)]),'minimum':()=>new Cartesian2$1(this[_0x164b25(-0x176,-0xf0)]['bounds'][_0x164b25(-0xb9,-0x5e)],this[_0x38346c(0x183,0x14e)][_0x38346c(0x1af,0x144)]['south']),'maximum':()=>new Cartesian2$1(this[_0x164b25(-0x176,-0x1e3)][_0x164b25(-0x14a,-0xc2)]['east'],this['windData'][_0x38346c(0x1af,0x135)]['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x164b25(-0x19e,-0x1be)][_0x38346c(0x1e7,0x161)],'preExecute':()=>{const _0x380e21=this[_0x2b12f4(0x407,0x462)]['previousParticlesPosition'];function _0x373d5a(_0x416898,_0x57b3ee){return _0x164b25(_0x57b3ee-0x6a0,_0x416898);}this['particlesTextures'][_0x373d5a(0x586,0x503)]=this['particlesTextures'][_0x2b12f4(0x475,0x4aa)],this[_0x373d5a(0x526,0x502)]['currentParticlesPosition']=this['particlesTextures'][_0x2b12f4(0x50e,0x534)],this['particlesTextures'][_0x373d5a(0x570,0x5d4)]=_0x380e21;function _0x2b12f4(_0x286b32,_0x1fb26e){return _0x164b25(_0x1fb26e-0x600,_0x286b32);}this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives']['calculateSpeed']['commandToExecute']['outputTexture']=this[_0x2b12f4(0x46c,0x462)]['particlesSpeed']);},'isDynamic':()=>this[_0x38346c(0x1fc,0x1f0)][_0x38346c(0x18c,0x204)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x164b25(-0x112,-0x188)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x317b01(_0x44df52,_0x32bf7d){return _0x38346c(_0x32bf7d-0x161,_0x44df52);}function _0x480890(_0x26e5a8,_0x37ddfb){return _0x38346c(_0x26e5a8-0x360,_0x37ddfb);}this[_0x480890(0x57b,0x5b6)][_0x317b01(0x323,0x2eb)][_0x480890(0x571,0x57f)]&&(this['primitives'][_0x317b01(0x35b,0x2eb)][_0x317b01(0x370,0x372)]['outputTexture']=this['particlesTextures'][_0x317b01(0x331,0x35c)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x164b25(-0x19e,-0x1a1)][_0x38346c(0x1fb,0x26f)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters'][_0x164b25(-0x10f,-0x11c)],'latRange':()=>this['viewerParameters'][_0x38346c(0x16c,0x175)],'dataLonRange':()=>new Cartesian2$1(this[_0x164b25(-0x176,-0xf5)][_0x164b25(-0x14a,-0xf3)][_0x164b25(-0xb9,-0x111)],this[_0x164b25(-0x176,-0x1e3)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds'][_0x164b25(-0x18f,-0x14f)],this['windData']['bounds']['north']),'randomCoefficient':function(){function _0x28c66c(_0x287fb5,_0x596089){return _0x164b25(_0x287fb5- -0xf1,_0x596089);}return Math[_0x28c66c(-0x28c,-0x2a6)]();},'dropRate':()=>this[_0x38346c(0x1fc,0x1dd)]['dropRate'],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this[_0x38346c(0x1fc,0x253)][_0x164b25(-0x188,-0x1f7)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x38346c(0x15b,0x138)]['postProcessingPosition'],'preExecute':()=>{function _0x534715(_0x1362bb,_0x53e5df){return _0x164b25(_0x1362bb-0x3e3,_0x53e5df);}function _0x7dfb59(_0x438ffa,_0x3fba86){return _0x38346c(_0x3fba86- -0x2ab,_0x438ffa);}this['primitives'][_0x7dfb59(-0x7,-0x7e)]['commandToExecute']&&(this['primitives']['postProcessingPosition']['commandToExecute'][_0x534715(0x331,0x365)]=this[_0x534715(0x245,0x264)][_0x534715(0x317,0x39b)]);},'isDynamic':()=>this['options']['dynamic']})};}['reCreateWindTextures'](){function _0x2dd00b(_0x2021b5,_0x108452){return _0x4086ac(_0x108452,_0x2021b5- -0x219);}this['windTextures']['U'][_0x2dd00b(-0xfa,-0xac)](),this['windTextures']['V'][_0x2dd00b(-0xfa,-0x115)]();function _0x175fb2(_0x1593c6,_0x91c357){return _0x2e747d(_0x1593c6,_0x91c357- -0x2f);}this['createWindTextures']();}[_0x2e747d(-0x3d,-0x2a)](_0x5563e2){this['windData']=_0x5563e2,this['reCreateWindTextures']();}['updateOptions'](_0x34aa0a){const _0x176d7a=_0x34aa0a['flipY']!==undefined&&_0x34aa0a['flipY']!==this['options'][_0x35f40d(-0x239,-0x2b3)];this['options']=deepMerge(_0x34aa0a,this['options']);function _0x35f40d(_0x1a404c,_0x20a4d4){return _0x2e747d(_0x20a4d4,_0x1a404c- -0x224);}_0x176d7a&&this['reCreateWindTextures']();}['processWindData'](_0x1f4b2b){const {array:_0x518282}=_0x1f4b2b;let {min:_0x475b57,max:_0x4948a5}=_0x1f4b2b;const _0x739615=new Float32Array(_0x518282['length']);_0x475b57===undefined&&(console[_0x24bcea(0x541,0x4cd)](_0x1cf945(0x241,0x290)),_0x475b57=Math['min'](..._0x518282));_0x4948a5===undefined&&(console['warn'](_0x24bcea(0x4ba,0x4e8)),_0x4948a5=Math[_0x24bcea(0x579,0x504)](..._0x518282));const _0x1f6bda=Math[_0x24bcea(0x50e,0x504)](Math[_0x1cf945(0x267,0x1f1)](_0x475b57),Math['abs'](_0x4948a5));for(let _0x8d3c3d=0x0;_0x8d3c3d<_0x518282[_0x24bcea(0x466,0x45b)];_0x8d3c3d++){const _0x2da82f=_0x518282[_0x8d3c3d]/_0x1f6bda;_0x739615[_0x8d3c3d]=_0x2da82f;}function _0x24bcea(_0x16bf12,_0x113f4c){return _0x2e747d(_0x16bf12,_0x113f4c-0x46a);}function _0x1cf945(_0x69ad23,_0x46706a){return _0x4086ac(_0x69ad23,_0x46706a-0x144);}return _0x739615;}['destroy'](){Object['values'](this[_0x35e9f2(0x231,0x1b8)])['forEach'](_0xdcc8f0=>_0xdcc8f0[_0x35e9f2(0x1de,0x1a2)]()),Object[_0x89e55(0x39,0x7)](this['particlesTextures'])['forEach'](_0x1158c0=>_0x1158c0['destroy']());function _0x35e9f2(_0xbce973,_0x4e9dca){return _0x4086ac(_0x4e9dca,_0xbce973-0xbf);}function _0x89e55(_0x50b3e5,_0x5c301f){return _0x4086ac(_0x5c301f,_0x50b3e5- -0x117);}Object['values'](this['primitives'])[_0x89e55(0x84,0x7d)](_0x2b2763=>_0x2b2763[_0x35e9f2(0x1de,0x1ae)]()),this['frameRateMonitor'][_0x35e9f2(0x1de,0x1ec)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x2e747d(-0x72,-0x38)];class WindParticlesRendering{constructor(_0x266abf,_0x3afe3c,_0xd61864,_0x537abc){this[_0x473e0e(-0x216,-0x246)]=_0x266abf,this['options']=_0x3afe3c,this[_0x159072(0x26d,0x23f)]=_0xd61864,this['computing']=_0x537abc;(typeof this[_0x159072(0x1a0,0x1cc)]['particlesTextureSize']!=='number'||this['options']['particlesTextureSize']<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x159072(0x1f4,0x1cc)]['particlesTextureSize']=0x100);function _0x473e0e(_0x3d4d52,_0x13f501){return _0x2e747d(_0x3d4d52,_0x13f501- -0x258);}function _0x159072(_0x39d30b,_0x2f2bb8){return _0x2e747d(_0x39d30b,_0x2f2bb8-0x16a);}this[_0x473e0e(-0x17e,-0x189)]=this[_0x473e0e(-0x24e,-0x206)](),this[_0x159072(0x18b,0x143)]=this['createRenderingTextures'](),this['framebuffers']=this['createRenderingFramebuffers'](),this[_0x159072(0x1d9,0x1eb)]=this['createPrimitives']();}['createRenderingTextures'](){const _0x3253ce={};_0x3253ce['context']=this['context'],_0x3253ce['width']=this[_0x31cc30(-0x1ad,-0x1ff)][_0x36a436(-0x1d9,-0x1d2)];function _0x31cc30(_0x4f13e5,_0x1e9a89){return _0x4086ac(_0x1e9a89,_0x4f13e5- -0x2a3);}_0x3253ce[_0x36a436(-0x1a7,-0x16c)]=this['context']['drawingBufferHeight'],_0x3253ce[_0x31cc30(-0xee,-0xfb)]=PixelFormat['RGBA'],_0x3253ce[_0x36a436(-0x116,-0x180)]=PixelDatatype['UNSIGNED_BYTE'];function _0x36a436(_0x1c503c,_0x338c37){return _0x4086ac(_0x1c503c,_0x338c37- -0x305);}const _0x4170f6=_0x3253ce,_0x242381={};_0x242381[_0x31cc30(-0x1ad,-0x1a3)]=this[_0x31cc30(-0x1ad,-0x1bf)],_0x242381['width']=this['context'][_0x31cc30(-0x170,-0x197)],_0x242381['height']=this['context']['drawingBufferHeight'],_0x242381[_0x36a436(-0x178,-0x150)]=PixelFormat['DEPTH_COMPONENT'],_0x242381[_0x31cc30(-0x11e,-0xdd)]=PixelDatatype['UNSIGNED_INT'];const _0xfa0b2e=_0x242381;return{'segmentsColor':new Texture(_0x4170f6),'segmentsDepth':new Texture(_0xfa0b2e)};}[_0x2e747d(0x31,0xa7)](){const _0x429563={};_0x429563[_0x5bc707(0x1d9,0x1bf)]=this['context'],_0x429563['colorTextures']=[this['textures']['segmentsColor']],_0x429563[_0x15125f(0x4a4,0x487)]=this[_0x15125f(0x453,0x428)]['segmentsDepth'];function _0x15125f(_0x1f0805,_0x4d9d8b){return _0x2e747d(_0x1f0805,_0x4d9d8b-0x44f);}function _0x5bc707(_0x10076b,_0x4152f4){return _0x4086ac(_0x4152f4,_0x10076b-0xe3);}return{'segments':new Framebuffer(_0x429563)};}[_0x4086ac(0x14c,0xc3)](){function _0x15e1ca(_0x1bdab4,_0xd0e152){return _0x2e747d(_0x1bdab4,_0xd0e152-0x37e);}Object['values'](this[_0x15e1ca(0x3ba,0x40d)])['forEach'](_0x25842c=>{_0x25842c['destroy']();});}[_0x2e747d(-0x19,0x52)](){const _0x4e4aa1=new Float32Array(this['options']['colors']['flatMap'](_0x2b00ba=>{function _0x3f9bad(_0x6c8f2b,_0x55e0b9){return _0x1e9b(_0x55e0b9- -0x3dd,_0x6c8f2b);}const _0x5ce435=Color$1['fromCssColorString'](_0x2b00ba);return[_0x5ce435['red'],_0x5ce435['green'],_0x5ce435['blue'],_0x5ce435[_0x3f9bad(-0x25d,-0x27e)]];})),_0x3a9f0e={};_0x3a9f0e['minificationFilter']=TextureMinificationFilter[_0x492d5(-0x57,-0x1)];function _0x324d96(_0x140aa0,_0x3efaaa){return _0x2e747d(_0x3efaaa,_0x140aa0-0x546);}_0x3a9f0e[_0x324d96(0x584,0x55f)]=TextureMagnificationFilter[_0x324d96(0x60e,0x602)],_0x3a9f0e['wrapS']=TextureWrap['CLAMP_TO_EDGE'];function _0x492d5(_0xc56e07,_0x201620){return _0x4086ac(_0x201620,_0xc56e07- -0x203);}return _0x3a9f0e[_0x324d96(0x543,0x4fc)]=TextureWrap[_0x492d5(-0x62,-0x5f)],new Texture({'context':this[_0x324d96(0x558,0x528)],'width':this['options']['colors'][_0x324d96(0x537,0x59a)],'height':0x1,'pixelFormat':PixelFormat[_0x492d5(-0x70,0x19)],'pixelDatatype':PixelDatatype[_0x492d5(-0x131,-0xbb)],'sampler':new Sampler(_0x3a9f0e),'source':{'width':this[_0x324d96(0x5a8,0x630)][_0x324d96(0x553,0x506)]['length'],'height':0x1,'arrayBufferView':_0x4e4aa1}});}[_0x4086ac(0xd7,0xfd)](){const _0x2c7a7a=0x4,_0x6aa959=this['options']['particlesTextureSize'];let _0x5e9afc=[];for(let _0x364ec4=0x0;_0x364ec4<_0x6aa959;_0x364ec4++){for(let _0x45a845=0x0;_0x45a845<_0x6aa959;_0x45a845++){for(let _0x3eeb70=0x0;_0x3eeb70<_0x2c7a7a;_0x3eeb70++){_0x5e9afc['push'](_0x364ec4/_0x6aa959),_0x5e9afc[_0x4c9b1b(0x52c,0x513)](_0x45a845/_0x6aa959);}}}_0x5e9afc=new Float32Array(_0x5e9afc);function _0x137d8c(_0xc4df74,_0x1f8c75){return _0x4086ac(_0x1f8c75,_0xc4df74-0x2e0);}const _0x23090a=this['options']['particlesTextureSize']**0x2;let _0x5cb003=[];for(let _0x47ba8e=0x0;_0x47ba8e<_0x23090a;_0x47ba8e++){_0x5cb003[_0x137d8c(0x447,0x4ce)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x5cb003=new Float32Array(_0x5cb003);let _0x550539=[];for(let _0x210657=0x0,_0x3fce36=0x0;_0x210657<_0x23090a;_0x210657++){_0x550539['push'](_0x3fce36+0x0,_0x3fce36+0x1,_0x3fce36+0x2,_0x3fce36+0x2,_0x3fce36+0x1,_0x3fce36+0x3),_0x3fce36+=_0x2c7a7a;}_0x550539=new Uint32Array(_0x550539);const _0x28b07d={};_0x28b07d[_0x137d8c(0x3e8,0x43b)]=ComponentDatatype['FLOAT'],_0x28b07d['componentsPerAttribute']=0x2,_0x28b07d['values']=_0x5e9afc;const _0x5db851={};_0x5db851[_0x137d8c(0x3e8,0x3fd)]=ComponentDatatype['FLOAT'],_0x5db851['componentsPerAttribute']=0x3,_0x5db851['values']=_0x5cb003;function _0x4c9b1b(_0x834d59,_0x46c62d){return _0x2e747d(_0x834d59,_0x46c62d-0x490);}const _0x4aeccf=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x28b07d),'normal':new GeometryAttribute(_0x5db851)}),'indices':_0x550539});return _0x4aeccf;}[_0x4086ac(0x92,0xb5)](_0x2bdaaf){function _0xb7748f(_0x404da7,_0x26bda1){return _0x4086ac(_0x26bda1,_0x404da7- -0x187);}const _0x502a48={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x2bdaaf};return Appearance[_0xb7748f(-0x52,0x39)](!![],![],_0x502a48);}[_0x4086ac(0x134,0x100)](){const _0x218952={};_0x218952['st']=0x0,_0x218952['normal']=0x1;const _0x3471df={};_0x3471df['enabled']=!![];function _0x4b7927(_0xb256ac,_0x5cd75a){return _0x2e747d(_0xb256ac,_0x5cd75a-0x529);}const _0x4b289f={};_0x4b289f[_0x4b7927(0x507,0x584)]=!![],_0x4b289f[_0x4b7927(0x639,0x5ae)]=WebGLRenderingContext['FUNC_ADD'],_0x4b289f[_0x1eb56f(-0x237,-0x214)]=WebGLRenderingContext[_0x1eb56f(-0x1e2,-0x1e8)],_0x4b289f['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x596db7={};_0x596db7['viewport']=undefined,_0x596db7[_0x1eb56f(-0x17e,-0x171)]=_0x3471df,_0x596db7['depthMask']=!![],_0x596db7[_0x4b7927(0x574,0x53f)]=_0x4b289f;const _0xd1480f=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x218952,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x4b7927(0x546,0x4ea)][_0x4b7927(0x481,0x4eb)],'currentParticlesPosition':()=>this[_0x1eb56f(-0x134,-0x149)]['particlesTextures'][_0x4b7927(0x59c,0x532)],'postProcessingPosition':()=>this['computing'][_0x4b7927(0x4fd,0x4ea)]['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this[_0x4b7927(0x567,0x5ee)]['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x368ba4(_0x280949,_0x115ba4){return _0x1eb56f(_0x280949,_0x115ba4-0x464);}var _0x2ba3ac,_0x41cac0;const _0x2998fa=new Cartesian2(((_0x2ba3ac=this['options'][_0x556412(0x2da,0x26f)])===null||_0x2ba3ac===void 0x0?void 0x0:_0x2ba3ac['min'])??this['computing']['windData'][_0x556412(0x345,0x2c7)][_0x556412(0x28a,0x2cd)],((_0x41cac0=this['options']['domain'])===null||_0x41cac0===void 0x0?void 0x0:_0x41cac0['max'])??this[_0x556412(0x391,0x335)][_0x368ba4(0x1ed,0x23f)]['speed'][_0x556412(0x2fb,0x30a)]);function _0x556412(_0x5865e4,_0x3e5485){return _0x1eb56f(_0x5865e4,_0x3e5485-0x47e);}return _0x2998fa;},'displayRange':()=>{function _0xe402a3(_0x1ec64e,_0x46897b){return _0x4b7927(_0x46897b,_0x1ec64e- -0x65e);}var _0x3319d5,_0x4d4ccc;const _0x177705=new Cartesian2(((_0x3319d5=this['options']['displayRange'])===null||_0x3319d5===void 0x0?void 0x0:_0x3319d5['min'])??this[_0xe402a3(-0x70,-0x97)][_0xe402a3(-0x14c,-0xf1)][_0x408de8(0x431,0x43a)]['min'],((_0x4d4ccc=this[_0xe402a3(-0xd3,-0x15c)][_0xe402a3(-0x84,-0x2)])===null||_0x4d4ccc===void 0x0?void 0x0:_0x4d4ccc['max'])??this[_0xe402a3(-0x70,-0x12)][_0x408de8(0x3c3,0x397)]['speed']['max']);function _0x408de8(_0x57bf02,_0x556dbe){return _0x4b7927(_0x556dbe,_0x57bf02- -0x14f);}return _0x177705;},'particleHeight':()=>this[_0x4b7927(0x5d1,0x58b)][_0x1eb56f(-0x1f8,-0x236)]||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context'][_0x1eb56f(-0x265,-0x247)],'pixelSize':()=>this['viewerParameters'][_0x1eb56f(-0x206,-0x1c0)],'lineWidth':()=>{function _0x3870f1(_0x3d6068,_0x36fb19){return _0x1eb56f(_0x36fb19,_0x3d6068-0x602);}const _0x30df66={};_0x30df66['min']=0x1;function _0x202988(_0x2543d8,_0x3ce0f4){return _0x4b7927(_0x2543d8,_0x3ce0f4- -0x630);}_0x30df66['max']=0x2;const _0x27a83f=this['options'][_0x202988(-0x111,-0xe2)]||_0x30df66;return new Cartesian2(_0x27a83f['min'],_0x27a83f[_0x202988(-0x31,-0x6d)]);},'lineLength':()=>{const _0x46982d={};function _0xc5af70(_0x47c938,_0x3d8e93){return _0x1eb56f(_0x47c938,_0x3d8e93-0x4f9);}_0x46982d['min']=0x14,_0x46982d['max']=0x64;const _0x1946e5=this['options']['lineLength']||_0x46982d;return new Cartesian2(_0x1946e5[_0xc5af70(0x30e,0x348)],_0x1946e5['max']);},'is3D':()=>this[_0x1eb56f(-0x1bd,-0x139)]['sceneMode']===SceneMode[_0x4b7927(0x63f,0x5f5)],'segmentsDepthTexture':()=>this[_0x1eb56f(-0x291,-0x235)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x4b7927(0x58b,0x553)](),'rawRenderState':this['createRawRenderState'](_0x596db7)});function _0x1eb56f(_0xb18309,_0x48d0d0){return _0x2e747d(_0xb18309,_0x48d0d0- -0x20e);}const _0x4f51a3={};return _0x4f51a3[_0x1eb56f(-0x17e,-0x1cf)]=_0xd1480f,_0x4f51a3;}['onParticlesTextureSizeChange'](){const _0x5f2b25=this['createSegmentsGeometry']();this['primitives']['segments']['geometry']=_0x5f2b25;function _0x40a8fe(_0x57b170,_0x293180){return _0x2e747d(_0x57b170,_0x293180-0x324);}const _0xbb375c={};_0xbb375c[_0x40a8fe(0x2db,0x336)]=this[_0x40a8fe(0x2b3,0x336)],_0xbb375c['geometry']=_0x5f2b25;function _0x542db4(_0x51ae5b,_0x34c526){return _0x2e747d(_0x34c526,_0x51ae5b- -0x1d9);}_0xbb375c['attributeLocations']=this['primitives'][_0x40a8fe(0x35a,0x363)]['attributeLocations'],_0xbb375c[_0x542db4(-0x105,-0x83)]=BufferUsage[_0x542db4(-0x10c,-0xe7)];const _0x351512=VertexArray['fromGeometry'](_0xbb375c);this['primitives'][_0x40a8fe(0x2ed,0x363)][_0x542db4(-0x162,-0x14a)]&&(this[_0x40a8fe(0x3fd,0x3a5)][_0x542db4(-0x19a,-0x13a)]['commandToExecute']['vertexArray']=_0x351512);}['onColorTableChange'](){this[_0x427cb3(0x468,0x46b)]['destroy']();function _0x427cb3(_0x361629,_0x1c4488){return _0x4086ac(_0x1c4488,_0x361629-0x2b5);}function _0x143929(_0x1b7d71,_0x55e000){return _0x4086ac(_0x55e000,_0x1b7d71-0x81);}this['colorTable']=this[_0x143929(0x1b7,0x183)]();}[_0x2e747d(0x69,0x87)](_0x4e0f5a){function _0x59f44b(_0x132175,_0x41e7fb){return _0x2e747d(_0x132175,_0x41e7fb- -0x1d);}const _0x2d0506=_0x4e0f5a[_0x485f53(-0x12a,-0xe9)]&&JSON['stringify'](_0x4e0f5a['colors'])!==JSON['stringify'](this[_0x59f44b(-0x5,0x45)][_0x485f53(-0xc8,-0xe9)]);this['options']=deepMerge(_0x4e0f5a,this['options']);function _0x485f53(_0xbb5752,_0x9a4782){return _0x4086ac(_0xbb5752,_0x9a4782- -0x1da);}_0x2d0506&&this['onColorTableChange']();}[_0x4086ac(0x19f,0x11f)](){Object['values'](this['framebuffers'])[_0x590a46(0x59,-0x12)](_0x4ad89f=>{_0x4ad89f['destroy']();}),Object[_0x590a46(0xe,-0x23)](this[_0x590a46(0x23,-0x52)])[_0x45c4d6(0xa7,0x26)](_0x573c2e=>{function _0x138914(_0x41b487,_0x5276bb){return _0x590a46(_0x41b487- -0x214,_0x5276bb);}_0x573c2e[_0x138914(-0x237,-0x21d)]();});function _0x590a46(_0x189a16,_0x207efa){return _0x2e747d(_0x207efa,_0x189a16- -0x5e);}function _0x45c4d6(_0x24db20,_0x59df7d){return _0x4086ac(_0x59df7d,_0x24db20- -0xf4);}this['colorTable'][_0x590a46(-0x23,0x4b)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x4086ac(0x130,0xac)];class WindParticleSystem{constructor(_0x26b79f,_0x1725b9,_0x1f56ee,_0x346ac9,_0x1d4b8c){this['context']=_0x26b79f,this['options']=_0x1f56ee,this['viewerParameters']=_0x346ac9,this['computing']=new WindParticlesComputing(_0x26b79f,_0x1725b9,_0x1f56ee,_0x346ac9,_0x1d4b8c),this['rendering']=new WindParticlesRendering(_0x26b79f,_0x1f56ee,_0x346ac9,this['computing']),this['clearFramebuffers']();}[_0x4086ac(0x144,0x12e)](){function _0x4908f5(_0x58476a,_0x8c56ad){return _0x4086ac(_0x8c56ad,_0x58476a-0x183);}const _0x41b372=[this[_0x1c16ab(0x1f4,0x275)]['primitives']['calculateSpeed'],this['computing']['primitives']['updatePosition'],this[_0x4908f5(0x32c,0x3b7)]['primitives']['postProcessingPosition'],this[_0x4908f5(0x31d,0x33a)]['primitives']['segments']];function _0x1c16ab(_0x256ef1,_0x3903cd){return _0x2e747d(_0x256ef1,_0x3903cd-0x1b0);}return _0x41b372;}[_0x2e747d(0x35,0x96)](){function _0x159d3c(_0xe925a6,_0x5d869a){return _0x2e747d(_0x5d869a,_0xe925a6-0x3e3);}function _0x3dd3c0(_0x28d880,_0x2038f2){return _0x2e747d(_0x2038f2,_0x28d880- -0x21);}const _0x5aebb3=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x159d3c(0x411,0x466)]});Object['keys'](this[_0x159d3c(0x499,0x4ae)][_0x3dd3c0(0x6e,0x28)])['forEach'](_0x582895=>{function _0x5901fa(_0x396f48,_0x32024a){return _0x3dd3c0(_0x396f48-0x0,_0x32024a);}_0x5aebb3['framebuffer']=this['rendering']['framebuffers'][_0x582895],_0x5aebb3['execute'](this[_0x5901fa(-0xf,0x52)]);});}['changeOptions'](_0x413f1a){let _0x4567b2=![];_0x413f1a['particlesTextureSize']&&this['options'][_0x58ce7f(-0x5b,-0x5f)]!==_0x413f1a['particlesTextureSize']&&(_0x4567b2=!![]);function _0x58ce7f(_0x44e587,_0x186d1a){return _0x2e747d(_0x44e587,_0x186d1a- -0xdf);}const _0x4f4244=deepMerge(_0x413f1a,this['options']);if(_0x4f4244['particlesTextureSize']<0x1)throw new Error(_0x1f15f9(0x422,0x403));function _0x1f15f9(_0x542146,_0xb2bf36){return _0x2e747d(_0xb2bf36,_0x542146-0x3a0);}this[_0x58ce7f(-0xfa,-0x7d)]=_0x4f4244,this['rendering']['updateOptions'](_0x413f1a),this['computing'][_0x58ce7f(-0xb8,-0x58)](_0x413f1a),_0x4567b2&&(this[_0x58ce7f(-0x91,-0x1a)]['destroyParticlesTextures'](),this['computing']['createParticlesTextures'](),this[_0x58ce7f(-0x1c,-0x29)]['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x478693){function _0x5b7741(_0x3d49eb,_0x2b394c){return _0x2e747d(_0x3d49eb,_0x2b394c- -0x138);}this[_0x5b7741(-0x97,-0x63)]=_0x478693,this['computing'][_0x4e46a3(0x46c,0x49b)]=_0x478693;function _0x4e46a3(_0x5ac762,_0x4f0a46){return _0x4086ac(_0x5ac762,_0x4f0a46-0x2e2);}this[_0x5b7741(-0x41,-0x82)]['viewerParameters']=_0x478693;}['destroy'](){this[_0x3f09f8(0x127,0x17a)][_0x11933a(0x3da,0x439)]();function _0x3f09f8(_0x307f99,_0x246e6f){return _0x4086ac(_0x307f99,_0x246e6f- -0x2f);}function _0x11933a(_0x1ea74a,_0x53f674){return _0x2e747d(_0x53f674,_0x1ea74a-0x39f);}this[_0x11933a(0x455,0x3e7)]['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x4086ac(0x1d9,0x1a7)],_0x50ec5a={};_0x50ec5a[_0x2e747d(0xae,0x5d)]=0x1,_0x50ec5a['max']=0x2;const _0x2fe553={};_0x2fe553['min']=0x14,_0x2fe553['max']=0x64;const _0x159caa={};function _0x2570(){const _0x1f37ce=['updateViewerParameters','updateWindData','useViewerBounds','fixedHeight','textures','_pointerEvents','_canrefresh','_calcUV','particlesNumber','_bilinearInterpolation','destoryRenderingFramebuffers','isPointVisible','morphComplete','getPostProcessingPositionShader','fragmentShaderSource','windField','cancelAnimationFrame','rows','zIndex','frameRateAdjustment','windData','requestRender','flipY','globe','style','FLOAT','commandType','updatePosition','length','dynamic','mouse_move','width','clientHeight','createCommand','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\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(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.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//\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(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\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\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\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\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\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\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a','_onMouseDownEvent','alpha','blendFuncSource','106oPtNES','umin','wrapT','_addedHook','domain','fromCache','IDENTITY','redraw','_mountedHook','talt','scene','_animateFrame','_tomap','ymax','currentParticlesPosition','stroke','EventType','particles','colors','absolute','sqrt','tlat','bindEvent','context','postMessage','minificationFilter','bounds','blending','ColorRamp','modelMatrix','createSegmentsGeometry','data','Cartesian2','createPrimitives','924959rAMGXo','udata','NEAREST','geometry','lineTo','4AEyfDh','sceneMode','componentDatatype','lineWidth','SRC_ALPHA','remove','createParticlesTextures','canvas','getSegmentDrawFragmentShader','toRadians','visibility','1947843xZWLkT','OPAQUE','lastFramesPerSecond','_removedHook','positionWC','isDynamic','xmin','resize','rawRenderState','bind','pointer-events','depthTexture','vertexArray','_onMapWhellEvent','destroy','vdata','fromGeometry','magnificationFilter','segments','MIN_VALUE','_updateIng','speedRate','2443480IpwWwy','cartesianToCartographic','canvasWidth','commandList','steps','_map','preExecute','getPrimitives','primitiveType','clear','particlesSpeed','pixelSize','drawingBufferWidth','lonRange','getDefaultRenderState','createColorTableTexture','persists','CanvasWindField','willReadFrequently','_colorRamp','speed','update','prototype','canvasContext','enabled','initFrameRate','min','frameRateMonitor','removeChild','10890517vZokce','nextParticlesPosition','options','warn','_maxAge','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\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\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\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.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\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,\x200.0f,\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,\x200.0f);\x0a\x20\x20}\x0a}\x0a','setDate','defineProperty','min\x20is\x20undefined,\x20calculate\x20min','ellipsoid','Unknown\x20command\x20type','get','values','register','ymin','Cartesian3','dropRate','now','12tBaLqX','percentageChanged','tlng','isInExtent','_randomParticle','commandToExecute','worker','original','Math','_drawLines','cols','_setOptionsHook','max\x20is\x20undefined,\x20calculate\x20max','2433945GWDPZq','particlesTextureSize','primitives','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','push','init','blendEquation','_createCanvas','updateOptions','off','particleSystem','show','_showHook','vertexShaderSource','globalCompositeOperation','windTextures','framebuffers','isDestroy','uniformMap','mode','postProcessingPosition','age','DomUtil','clearFramebuffers','hidden','createComputingPrimitives','#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\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(lonLat.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\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\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\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a','max','_onMouseMoveEvent','WindLayer','depthTest','lighter','256695gulAZc','setOptions','pixelDatatype','pointerEvents','frameRate','clearCommand','layer','west','createRenderingFramebuffers','camera','getParticles','type','pow','create','outputTexture','attributeLocations','RGBA','getSegmentDrawVertexShader','displayRange','lat','setData','createWindTextures','height','rendering','forEach','addEventListener','fromDegrees','default','framebuffer','atan2','CLAMP_TO_EDGE','add','north','samplingWindow','mouseHidden','fill','BaseLayer','getUVByXY','computing','array','0px','LINEAR','10yQeHwH','canvasHeight','cos','SCENE3D','STATIC_DRAW','destination-in','colorTable','EllipsoidalOccluder','pixelFormat','processWindData','mouseUp','bufferUsage','viewerParameters','lng','particlesTextures','previousParticlesPosition','xmax','random','beginPath','grid','drawingBufferHeight','Cesium','abs','__esModule','slice','toGridXY','getUVByPoint','mouseMove','maxAge','south','createRawRenderState','latRange','12173ngisCw','east'];_0x2570=function(){return _0x1f37ce;};return _0x2570();}_0x159caa[_0x2e747d(0xe6,0x80)]=0x64,_0x159caa[_0x4086ac(0xcd,0xbc)]=0x0,_0x159caa['lineWidth']=_0x50ec5a,_0x159caa['lineLength']=_0x2fe553,_0x159caa['speedFactor']=0x1,_0x159caa[_0x2e747d(0x20,0x70)]=0.003,_0x159caa['dropRateBump']=0.001,_0x159caa['colors']=['rgb(206,255,255)'],_0x159caa['flipY']=![],_0x159caa[_0x4086ac(0xbb,0xd6)]=!![];const DEF_OPTIONS=_0x159caa;class WindLayer extends BaseLayer$1{constructor(_0x9a5f86={}){_0x9a5f86={...DEF_OPTIONS,..._0x9a5f86},super(_0x9a5f86),this['_setOptionsHook'](_0x9a5f86,_0x9a5f86);}get['layer'](){function _0x3123d9(_0x1499df,_0x2f7e55){return _0x2e747d(_0x2f7e55,_0x1499df- -0x146);}return this[_0x3123d9(-0xc5,-0x92)];}get[_0x4086ac(0xd1,0xfe)](){function _0x49fecf(_0x248dfd,_0xc1b96){return _0x4086ac(_0x248dfd,_0xc1b96-0x3a6);}function _0x3fbe6b(_0x77781a,_0x30dc68){return _0x4086ac(_0x30dc68,_0x77781a-0x1cd);}return this[_0x3fbe6b(0x313,0x364)][_0x3fbe6b(0x2cb,0x325)];}set['data'](_0x545fc9){function _0x12f9ee(_0x234c84,_0x1f96fe){return _0x2e747d(_0x1f96fe,_0x234c84-0x349);}this[_0x12f9ee(0x3ab,0x3c6)][_0x4ad879(0x454,0x408)]=_0x545fc9;function _0x4ad879(_0x472a32,_0x23e2ac){return _0x2e747d(_0x472a32,_0x23e2ac-0x3ee);}this[_0x12f9ee(0x3fc,0x3b2)](_0x545fc9);}get['colors'](){function _0x1c0047(_0x25d539,_0x550ceb){return _0x2e747d(_0x550ceb,_0x25d539-0x3a4);}return this[_0x1c0047(0x406,0x448)]['colors'];}set['colors'](_0x5c944f){this['options'][_0x5db4af(-0x59,-0x91)]=_0x5c944f;function _0x5db4af(_0x43e9e0,_0x13f8ee){return _0x2e747d(_0x43e9e0,_0x13f8ee- -0x9e);}function _0x11a1f5(_0x53a067,_0x4e1d71){return _0x2e747d(_0x4e1d71,_0x53a067-0x186);}const _0x3d1cb2={};_0x3d1cb2[_0x11a1f5(0x193,0x218)]=_0x5c944f,this['_setOptionsHook'](this['options'],_0x3d1cb2);}[_0x4086ac(0x105,0x16f)](_0x24031a){function _0x34526a(_0x4c6675,_0x2f4951){return _0x4086ac(_0x4c6675,_0x2f4951- -0x2ab);}_0x24031a?this[_0x34526a(-0x1fc,-0x1c9)]():this['_removedHook']();}[_0x2e747d(0x10,0x3)](){}['_addedHook'](){this['scene']=this['_map']['scene'],this['camera']=this['_map'][_0x3997a2(-0x16b,-0x1bd)];function _0x3c0aa3(_0x384a03,_0xc1b7dc){return _0x2e747d(_0xc1b7dc,_0x384a03-0x499);}this['options'][_0x3c0aa3(0x4b3,0x451)]&&this['setData'](this['options'][_0x3c0aa3(0x4b3,0x459)]);if(!this['windData']||!this[_0x3c0aa3(0x523,0x4c2)])return;this[_0x3c0aa3(0x56e,0x543)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this[_0x3c0aa3(0x46e,0x4e7)](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this['windData'],this['options'],this['viewerParameters'],this['scene']),this[_0x3c0aa3(0x51a,0x58a)]=this['particleSystem']['getPrimitives'](),this['primitives'][_0x3997a2(-0x15c,-0xde)](_0x38d538=>{function _0x3dc4bd(_0x8d5e3e,_0x4c3efb){return _0x3c0aa3(_0x8d5e3e- -0x23f,_0x4c3efb);}function _0x84819f(_0x57a353,_0x40250d){return _0x3c0aa3(_0x57a353- -0x36,_0x40250d);}this['scene'][_0x3dc4bd(0x2db,0x2e7)][_0x3dc4bd(0x318,0x2b3)](_0x38d538);});function _0x3997a2(_0x1a63af,_0x442e39){return _0x4086ac(_0x442e39,_0x1a63af- -0x2f7);}this['camera'][_0x3997a2(-0x1a0,-0x163)]=0.01,this['camera']['changed']['addEventListener'](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete'][_0x3997a2(-0x15b,-0x141)](this[_0x3c0aa3(0x46e,0x44a)]['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters'][_0x3997a2(-0x1dd,-0x21b)](this));}[_0x4086ac(0x19b,0x114)](){this[_0x162722(-0x2a,0x14)]['changed']['removeEventListener'](this[_0x162722(-0xfd,-0xc5)][_0x202d07(-0x176,-0x165)](this)),this[_0x162722(-0xcd,-0x9b)][_0x162722(-0xf1,-0xd8)]['removeEventListener'](this['updateViewerParameters']['bind'](this));function _0x202d07(_0xd4d504,_0x30f297){return _0x2e747d(_0xd4d504,_0x30f297- -0x19b);}function _0x162722(_0x1d5a90,_0x20bfdc){return _0x4086ac(_0x20bfdc,_0x1d5a90- -0x1b6);}window['removeEventListener']('resize',this['updateViewerParameters']['bind'](this)),this['primitives']&&(this[_0x162722(-0x51,-0x53)][_0x202d07(-0xd9,-0xe4)](_0x386a3=>{function _0x1da8bf(_0x2df145,_0x14e044){return _0x162722(_0x14e044- -0x112,_0x2df145);}function _0x4a2732(_0x57ce3f,_0x34c8b8){return _0x162722(_0x34c8b8-0x3b,_0x57ce3f);}this['scene'][_0x1da8bf(-0x196,-0x163)][_0x1da8bf(-0x134,-0x1bd)](_0x386a3);}),delete this['primitives']),this[_0x162722(-0x49,-0xf)]&&(this[_0x162722(-0x49,0x20)][_0x162722(-0x97,-0xd3)](),delete this['particleSystem']);}['setData'](_0x43fa27,_0x42bbe2){function _0x320c4f(_0x1e6a54,_0x20c948){return _0x4086ac(_0x1e6a54,_0x20c948-0x173);}this['windData']=this[_0x320c4f(0x2b1,0x329)](_0x43fa27);if(_0x42bbe2){this[_0x31f1e1(-0x1d,0x14)](),this['_addedHook']();return;}function _0x31f1e1(_0x394020,_0x2a15ec){return _0x4086ac(_0x394020,_0x2a15ec- -0x100);}this['particleSystem']?(this[_0x31f1e1(0x3a,0x6d)][_0x320c4f(0x2d5,0x31c)][_0x31f1e1(-0xbf,-0x46)](this['windData']),this[_0x320c4f(0x1d2,0x25c)]['requestRender']()):this['_addedHook']();}[_0x2e747d(0x59,0x7d)](_0x52c3a4,_0x1469c3){function _0x5ab6d4(_0x2ed6ab,_0x575164){return _0x4086ac(_0x575164,_0x2ed6ab- -0x2c1);}function _0x1cdfe6(_0x307e49,_0x801613){return _0x2e747d(_0x801613,_0x307e49- -0x7a);}this[_0x5ab6d4(-0x154,-0x11f)]&&(this[_0x5ab6d4(-0x154,-0x176)]['changeOptions'](_0x1469c3),this['scene'][_0x1cdfe6(-0x90,-0x1b)]());}['processWindData'](_0x46432f){var _0x1460b9,_0x10f71;function _0xcdb141(_0x9fd328,_0xa0e956){return _0x2e747d(_0xa0e956,_0x9fd328-0x519);}const _0x19e474={..._0x46432f},_0x1ffa1f=_0x19e474;!_0x1ffa1f[_0x516de2(0x54a,0x4dd)]&&_0x1ffa1f['rows']&&(_0x1ffa1f['height']=_0x1ffa1f[_0xcdb141(0x4ff,0x4d5)]);!_0x1ffa1f[_0xcdb141(0x50d,0x4fb)]&&_0x1ffa1f[_0x516de2(0x511,0x4f5)]&&(_0x1ffa1f['width']=_0x1ffa1f['cols']);!_0x1ffa1f[_0x516de2(0x4aa,0x48d)]&&(_0x1ffa1f[_0x516de2(0x4aa,0x528)]={'west':_0x1ffa1f['xmin'],'south':_0x1ffa1f['ymin'],'east':_0x1ffa1f['xmax'],'north':_0x1ffa1f[_0xcdb141(0x521,0x49d)]});if(!_0x1ffa1f['u']){const _0x1811ae={};_0x1811ae['array']=_0x46432f['udata'],_0x1811ae['min']=_0x46432f[_0x516de2(0x491,0x445)],_0x1811ae['max']=_0x46432f['umax'],_0x1ffa1f['u']=_0x1811ae;}function _0x516de2(_0x5d1ef7,_0x1c317b){return _0x4086ac(_0x1c317b,_0x5d1ef7-0x3b1);}if(!_0x1ffa1f['v']){const _0x49bbbf={};_0x49bbbf['array']=_0x46432f[_0x516de2(0x4d1,0x492)],_0x49bbbf['min']=_0x46432f['vmin'],_0x49bbbf[_0x516de2(0x52f,0x5ad)]=_0x46432f['vmax'],_0x1ffa1f['v']=_0x49bbbf;}if(((_0x1460b9=_0x1ffa1f[_0xcdb141(0x570,0x5f7)])===null||_0x1460b9===void 0x0?void 0x0:_0x1460b9[_0xcdb141(0x576,0x5f4)])===undefined||((_0x10f71=_0x1ffa1f[_0x516de2(0x4ec,0x574)])===null||_0x10f71===void 0x0?void 0x0:_0x10f71[_0x516de2(0x52f,0x4fb)])===undefined||_0x1ffa1f[_0xcdb141(0x570,0x4e7)]['array']===undefined){const _0x27cbfa={'array':new Float32Array(_0x1ffa1f['u'][_0x516de2(0x55b,0x588)]['length']),'min':Number['MAX_VALUE'],'max':Number[_0x516de2(0x4d5,0x46c)]};for(let _0x23e88a=0x0;_0x23e88a<_0x1ffa1f['u'][_0x516de2(0x55b,0x5b7)][_0x516de2(0x486,0x4f3)];_0x23e88a++){_0x27cbfa['array'][_0x23e88a]=Math[_0x516de2(0x4a4,0x4af)](_0x1ffa1f['u']['array'][_0x23e88a]*_0x1ffa1f['u'][_0xcdb141(0x5df,0x5fe)][_0x23e88a]+_0x1ffa1f['v'][_0xcdb141(0x5df,0x5c6)][_0x23e88a]*_0x1ffa1f['v']['array'][_0x23e88a]),_0x27cbfa[_0xcdb141(0x5df,0x57c)][_0x23e88a]!==0x0&&(_0x27cbfa['min']=Math['min'](_0x27cbfa[_0xcdb141(0x576,0x581)],_0x27cbfa[_0x516de2(0x55b,0x5ae)][_0x23e88a]),_0x27cbfa['max']=Math['max'](_0x27cbfa['max'],_0x27cbfa['array'][_0x23e88a]));}_0x1ffa1f[_0xcdb141(0x570,0x50c)]=_0x27cbfa;}return _0x1ffa1f;}['updateViewerParameters'](){var _0x58c6ba;function _0x395814(_0x52c9d9,_0xe24e4f){return _0x4086ac(_0xe24e4f,_0x52c9d9- -0x206);}function _0x11baf5(_0x512853,_0x3428fc){return _0x4086ac(_0x512853,_0x3428fc- -0x19f);}const _0x61a8f8=this['scene'];if(!_0x61a8f8)return;const _0x241eb3=_0x61a8f8['canvas'],_0x38fdd2={};_0x38fdd2['x']=0x0,_0x38fdd2['y']=0x0;const _0x1c3299={};_0x1c3299['x']=0x0,_0x1c3299['y']=_0x241eb3['clientHeight'];const _0x17815f={};_0x17815f['x']=_0x241eb3['clientWidth'],_0x17815f['y']=0x0;const _0xb7a59a={};_0xb7a59a['x']=_0x241eb3['clientWidth'],_0xb7a59a['y']=_0x241eb3['clientHeight'];const _0x49e54b=[_0x38fdd2,_0x1c3299,_0x17815f,_0xb7a59a];let _0x362a42=0xb4,_0x3bc161=-0xb4,_0x2e8008=0x5a,_0x4c7262=-0x5a,_0x11d178=![];for(const _0x1b2517 of _0x49e54b){const _0x3804bd=_0x61a8f8['camera']['pickEllipsoid'](new Cesium$1[(_0x395814(-0x107,-0xb9))](_0x1b2517['x'],_0x1b2517['y']),_0x61a8f8[_0x395814(-0x136,-0x12f)][_0x395814(-0xb9,-0xb9)]);if(!_0x3804bd){_0x11d178=!![];break;}const _0x32ba52=_0x61a8f8['globe'][_0x395814(-0xb9,-0xf4)][_0x395814(-0xde,-0x118)](_0x3804bd),_0x291f1b=Cesium$1[_0x11baf5(-0x73,-0x41)]['toDegrees'](_0x32ba52['longitude']),_0x1098f3=Cesium$1[_0x11baf5(-0x6b,-0x41)]['toDegrees'](_0x32ba52['latitude']);_0x362a42=Math['min'](_0x362a42,_0x291f1b),_0x3bc161=Math[_0x11baf5(-0x4c,-0x21)](_0x3bc161,_0x291f1b),_0x2e8008=Math[_0x11baf5(0x11,-0x5e)](_0x2e8008,_0x1098f3),_0x4c7262=Math[_0x395814(-0x88,-0x81)](_0x4c7262,_0x1098f3);}if(!_0x11d178){const _0x21f698=new Cesium$1[(_0x11baf5(-0x43,-0xa0))](Math['max'](this['windData']['bounds']['west'],_0x362a42),Math['min'](this[_0x11baf5(-0x56,-0xd2)]['bounds']['east'],_0x3bc161)),_0x1e1f8e=new Cesium$1['Cartesian2'](Math[_0x11baf5(-0xa9,-0x21)](this['windData'][_0x395814(-0x10d,-0x98)]['south'],_0x2e8008),Math[_0x11baf5(-0xd3,-0x5e)](this[_0x395814(-0x139,-0x156)][_0x395814(-0x10d,-0xec)][_0x395814(-0x63,-0xa4)],_0x4c7262)),_0x4d5987=(_0x21f698['y']-_0x21f698['x'])*0.05,_0x494009=(_0x1e1f8e['y']-_0x1e1f8e['x'])*0.05;_0x21f698['x']=Math[_0x395814(-0x88,-0xd2)](this['windData']['bounds']['west'],_0x21f698['x']-_0x4d5987),_0x21f698['y']=Math['min'](this['windData']['bounds'][_0x395814(-0x14e,-0x14a)],_0x21f698['y']+_0x4d5987),_0x1e1f8e['x']=Math[_0x395814(-0x88,-0x6e)](this[_0x11baf5(-0x95,-0xd2)]['bounds']['south'],_0x1e1f8e['x']-_0x494009),_0x1e1f8e['y']=Math[_0x11baf5(-0x89,-0x5e)](this[_0x395814(-0x139,-0x10f)][_0x11baf5(-0xee,-0xa6)]['north'],_0x1e1f8e['y']+_0x494009),this['viewerParameters'][_0x11baf5(-0x3f,-0x6b)]=_0x21f698,this[_0x11baf5(0xa,0x1a)]['latRange']=_0x1e1f8e;const _0x44f86e=this['windData'][_0x395814(-0x10d,-0x189)]['east']-this['windData'][_0x11baf5(-0x62,-0xa6)]['west'],_0x2583c8=this['windData']['bounds']['north']-this['windData']['bounds']['south'],_0x506cc8=(_0x21f698['y']-_0x21f698['x'])/_0x44f86e,_0x5a95ee=(_0x1e1f8e['y']-_0x1e1f8e['x'])/_0x2583c8,_0x14c4a0=Math['min'](_0x506cc8,_0x5a95ee),_0x3298dd=0x3e8*_0x14c4a0;_0x3298dd>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0x3298dd)));}this[_0x11baf5(0x7a,0x1a)][_0x11baf5(-0x118,-0x98)]=this['scene']['mode'],(_0x58c6ba=this[_0x395814(-0x99,-0x55)])===null||_0x58c6ba===void 0x0||_0x58c6ba['applyViewerParameters'](this[_0x11baf5(0x6f,0x1a)]);}['getDataAtLonLat'](_0xd4055e,_0x5b7eaa){const {bounds:_0x15410e,width:_0x3ddeac,height:_0x21a671,u:_0x37082a,v:_0x4b8eac,speed:_0x4fffa3}=this['windData'],{flipY:_0x565753}=this['options'];if(_0xd4055e<_0x15410e['west']||_0xd4055e>_0x15410e['east']||_0x5b7eaa<_0x15410e[_0x1f06a2(0x12e,0xf1)]||_0x5b7eaa>_0x15410e['north'])return null;function _0x549261(_0x47c3ec,_0x56d42a){return _0x4086ac(_0x47c3ec,_0x56d42a-0x278);}const _0x2189ae=(_0xd4055e-_0x15410e['west'])/(_0x15410e['east']-_0x15410e[_0x1f06a2(0x1ba,0x1c7)])*(_0x3ddeac-0x1);let _0x23c24a=(_0x5b7eaa-_0x15410e[_0x1f06a2(0x8b,0xf1)])/(_0x15410e['north']-_0x15410e[_0x1f06a2(0x170,0xf1)])*(_0x21a671-0x1);_0x565753&&(_0x23c24a=_0x21a671-0x1-_0x23c24a);const _0x5ae635=Math['floor'](_0x2189ae),_0x56a881=Math['floor'](_0x23c24a),_0x385798=Math['floor'](_0x2189ae),_0x56a8e0=Math[_0x1f06a2(0x1e5,0x17e)](_0x385798+0x1,_0x3ddeac-0x1),_0x494813=Math['floor'](_0x23c24a),_0x503bc9=Math['min'](_0x494813+0x1,_0x21a671-0x1),_0x54e6a5=_0x2189ae-_0x385798,_0x4cb845=_0x23c24a-_0x494813,_0x22cb6b=_0x56a881*_0x3ddeac+_0x5ae635,_0x2458ff=_0x494813*_0x3ddeac+_0x385798,_0x4547e6=_0x494813*_0x3ddeac+_0x56a8e0,_0x346398=_0x503bc9*_0x3ddeac+_0x385798,_0x358422=_0x503bc9*_0x3ddeac+_0x56a8e0,_0x1cc594=_0x37082a['array'][_0x2458ff],_0x523199=_0x37082a[_0x1f06a2(0x23b,0x1e7)][_0x4547e6],_0x39e035=_0x37082a['array'][_0x346398],_0x43610a=_0x37082a['array'][_0x358422],_0xe3cde0=(0x1-_0x54e6a5)*(0x1-_0x4cb845)*_0x1cc594+_0x54e6a5*(0x1-_0x4cb845)*_0x523199+(0x1-_0x54e6a5)*_0x4cb845*_0x39e035+_0x54e6a5*_0x4cb845*_0x43610a,_0x393d5c=_0x4b8eac['array'][_0x2458ff],_0x36fa55=_0x4b8eac['array'][_0x4547e6],_0x36fcdf=_0x4b8eac['array'][_0x346398];function _0x1f06a2(_0x3b3dd6,_0x2b8c9b){return _0x2e747d(_0x3b3dd6,_0x2b8c9b-0x121);}const _0x48cf77=_0x4b8eac['array'][_0x358422],_0x119cde=(0x1-_0x54e6a5)*(0x1-_0x4cb845)*_0x393d5c+_0x54e6a5*(0x1-_0x4cb845)*_0x36fa55+(0x1-_0x54e6a5)*_0x4cb845*_0x36fcdf+_0x54e6a5*_0x4cb845*_0x48cf77,_0x551073=Math[_0x1f06a2(0x141,0x130)](_0xe3cde0*_0xe3cde0+_0x119cde*_0x119cde),_0x53185d={};_0x53185d['u']=_0x37082a[_0x1f06a2(0x1fc,0x1e7)][_0x22cb6b],_0x53185d['v']=_0x4b8eac['array'][_0x22cb6b],_0x53185d[_0x1f06a2(0x128,0x178)]=_0x4fffa3['array'][_0x22cb6b];const _0x8c053b={};_0x8c053b['u']=_0xe3cde0,_0x8c053b['v']=_0x119cde,_0x8c053b['speed']=_0x551073;const _0x39d1cb={};return _0x39d1cb[_0x549261(0x44b,0x3d5)]=_0x53185d,_0x39d1cb['interpolated']=_0x8c053b,_0x39d1cb;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;function _0x1e9b(_0x2df3d2,_0x53e2aa){const _0x257013=_0x2570();return _0x1e9b=function(_0x1e9b09,_0x4f6013){_0x1e9b09=_0x1e9b09-0x126;let _0x1b2b66=_0x257013[_0x1e9b09];return _0x1b2b66;},_0x1e9b(_0x2df3d2,_0x53e2aa);}class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this[_0xadf279(0x3e6,0x44d)]=null;function _0xadf279(_0x2a365d,_0xe7b913){return _0x4086ac(_0xe7b913,_0x2a365d-0x28e);}function _0x25703e(_0x3de057,_0x4a692d){return _0x4086ac(_0x3de057,_0x4a692d-0x43a);}this['tlat']=null,this[_0xadf279(0x406,0x3c3)]=null,this['speed']=null;}['destroy'](){for(const _0x2885f9 in this){delete this[_0x2885f9];}}}class CanvasWindField{constructor(_0x45f61a){this['setOptions'](_0x45f61a);}get['speedRate'](){return this['_speedRate'];}set[_0x4086ac(0x1a8,0x126)](_0x3146a5){this['_speedRate']=(0x64-(_0x3146a5>0x63?0x63:_0x3146a5))*0x64;function _0x2d34b7(_0x12dbf2,_0x16072b){return _0x4086ac(_0x12dbf2,_0x16072b-0x1d4);}function _0x1c7175(_0xc7e42,_0x2cee26){return _0x2e747d(_0xc7e42,_0x2cee26- -0xcb);}this['_calc_speedRate']=[(this['xmax']-this[_0x1c7175(-0xaa,-0x98)])/this['_speedRate'],(this[_0x1c7175(-0xc1,-0xc3)]-this['ymin'])/this['_speedRate']];}get[_0x2e747d(-0x7,-0x31)](){function _0x22c6be(_0x1b031c,_0x13b2bb){return _0x4086ac(_0x13b2bb,_0x1b031c-0xd4);}return this[_0x22c6be(0x21c,0x1de)];}set[_0x2e747d(-0x66,-0x31)](_0x2e62f7){function _0x429255(_0x30967e,_0x35a3fc){return _0x2e747d(_0x35a3fc,_0x30967e-0x35);}this[_0x429255(0x99,0x7c)]=_0x2e62f7;}['setOptions'](_0x5ad951){this['options']=_0x5ad951;function _0x47a444(_0x269d0c,_0x5e9f2b){return _0x2e747d(_0x269d0c,_0x5e9f2b- -0xef);}this[_0x27e48e(0x2e8,0x2dd)]=_0x5ad951[_0x27e48e(0x2e8,0x36f)]||0x78,this[_0x27e48e(0x35b,0x315)]=_0x5ad951['speedRate']||0x32,this['particles']=[];function _0x27e48e(_0x3c40a3,_0x336836){return _0x2e747d(_0x336836,_0x3c40a3-0x319);}const _0x6a6fd6=_0x5ad951[_0x27e48e(0x2f6,0x36d)]||0x1000;for(let _0x1e61f6=0x0;_0x1e61f6<_0x6a6fd6;_0x1e61f6++){const _0x18b9b4=this['_randomParticle'](new CanvasParticle());this[_0x27e48e(0x325,0x383)][_0x47a444(-0x5b,-0x6c)](_0x18b9b4);}}[_0x4086ac(0x137,0x14a)](_0x152d02){this['rows']=_0x152d02['rows'],this[_0x3b0fc4(0x112,0x8d)]=_0x152d02[_0x3b0fc4(0x4a,0x8d)];function _0x382e3f(_0xeba981,_0x4e6b89){return _0x4086ac(_0x4e6b89,_0xeba981-0x370);}this[_0x3b0fc4(0x7f,0x44)]=_0x152d02[_0x3b0fc4(0x88,0x44)],this['xmax']=_0x152d02[_0x3b0fc4(0x5c,-0x2c)],this[_0x382e3f(0x4c2,0x4cc)]=_0x152d02['ymin'],this['ymax']=_0x152d02['ymax'];function _0x3b0fc4(_0x545da9,_0x1a4519){return _0x2e747d(_0x545da9,_0x1a4519-0x11);}this['grid']=[];const _0x3cde30=_0x152d02[_0x3b0fc4(0x5,0x2f)],_0x5ae255=_0x152d02['vdata'];let _0x479b19=![];_0x3cde30['length']===this['rows']&&_0x3cde30[0x0]['length']===this['cols']&&(_0x479b19=!![]);let _0x291dec=0x0,_0xd3535c=null,_0x104950=null;for(let _0x380d1f=0x0;_0x380d1f<this['rows'];_0x380d1f++){_0xd3535c=[];for(let _0xfd77d2=0x0;_0xfd77d2<this[_0x382e3f(0x4d0,0x526)];_0xfd77d2++,_0x291dec++){_0x479b19?_0x104950=this[_0x382e3f(0x430,0x444)](_0x3cde30[_0x380d1f][_0xfd77d2],_0x5ae255[_0x380d1f][_0xfd77d2]):_0x104950=this['_calcUV'](_0x3cde30[_0x291dec],_0x5ae255[_0x291dec]),_0xd3535c['push'](_0x104950);}this['grid'][_0x382e3f(0x4d7,0x475)](_0xd3535c);}!this[_0x382e3f(0x4b6,0x4c8)]['flipY']&&this['grid']['reverse']();}[_0x2e747d(0x40,0x4c)](){function _0x4d7a29(_0x3bf138,_0x13c006){return _0x4086ac(_0x3bf138,_0x13c006-0x192);}delete this[_0x4d7a29(0x258,0x25c)],delete this['cols'],delete this['xmin'];function _0x25e2e5(_0x2a5e51,_0x2fdad3){return _0x4086ac(_0x2fdad3,_0x2a5e51- -0x361);}delete this[_0x4d7a29(0x232,0x239)],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this[_0x4d7a29(0x220,0x282)];}['toGridXY'](_0x2ef7fd,_0x2d2b03){function _0xca5b21(_0x49b080,_0x2af53d){return _0x4086ac(_0x49b080,_0x2af53d- -0x337);}const _0x2ebd39=(_0x2ef7fd-this['xmin'])/(this['xmax']-this[_0xca5b21(-0x28a,-0x220)])*(this['cols']-0x1);function _0x4acb9f(_0x149c0f,_0x4d5278){return _0x2e747d(_0x4d5278,_0x149c0f-0x203);}const _0x5c332a=(this['ymax']-_0x2d2b03)/(this[_0x4acb9f(0x20b,0x230)]-this['ymin'])*(this[_0xca5b21(-0x1eb,-0x26d)]-0x1);return[_0x2ebd39,_0x5c332a];}['getUVByXY'](_0x5376d2,_0x3aa3f7){if(_0x5376d2<0x0||_0x5376d2>=this['cols']||_0x3aa3f7>=this['rows'])return[0x0,0x0,0x0];function _0x42536f(_0x38298f,_0x57d385){return _0x4086ac(_0x38298f,_0x57d385- -0x90);}const _0x385f8a=Math['floor'](_0x5376d2),_0x101d50=Math['floor'](_0x3aa3f7);function _0x46ccee(_0xdf82fb,_0x36177c){return _0x4086ac(_0x36177c,_0xdf82fb- -0x47);}if(_0x385f8a===_0x5376d2&&_0x101d50===_0x3aa3f7)return this[_0x46ccee(0x63,0xc0)][_0x3aa3f7][_0x5376d2];const _0x7b62ad=_0x385f8a+0x1,_0x599059=_0x101d50+0x1,_0x3e3fe0=this['getUVByXY'](_0x385f8a,_0x101d50),_0x1e0370=this['getUVByXY'](_0x7b62ad,_0x101d50),_0x533066=this[_0x42536f(0x149,0x118)](_0x385f8a,_0x599059),_0x15c2be=this['getUVByXY'](_0x7b62ad,_0x599059);let _0x386e75=null;try{_0x386e75=this[_0x46ccee(0x7b,0xf6)](_0x5376d2-_0x385f8a,_0x3aa3f7-_0x101d50,_0x3e3fe0,_0x1e0370,_0x533066,_0x15c2be);}catch(_0x251178){console['log'](_0x5376d2,_0x3aa3f7);}return _0x386e75;}[_0x2e747d(0x61,-0x22)](_0x2ce959,_0x4ccf4c,_0x1e3e7c,_0x5575ec,_0x2c73b3,_0x4e8681){const _0x42d510=0x1-_0x2ce959,_0x413e18=0x1-_0x4ccf4c,_0x358d87=_0x42d510*_0x413e18,_0x36e9a0=_0x2ce959*_0x413e18,_0x5cd5a2=_0x42d510*_0x4ccf4c,_0x1882ba=_0x2ce959*_0x4ccf4c,_0x26556b=_0x1e3e7c[0x0]*_0x358d87+_0x5575ec[0x0]*_0x36e9a0+_0x2c73b3[0x0]*_0x5cd5a2+_0x4e8681[0x0]*_0x1882ba,_0x16af40=_0x1e3e7c[0x1]*_0x358d87+_0x5575ec[0x1]*_0x36e9a0+_0x2c73b3[0x1]*_0x5cd5a2+_0x4e8681[0x1]*_0x1882ba;return this['_calcUV'](_0x26556b,_0x16af40);}[_0x2e747d(-0x16,-0x24)](_0x36363e,_0xf6d6ef){return[+_0x36363e,+_0xf6d6ef,Math['sqrt'](_0x36363e*_0x36363e+_0xf6d6ef*_0xf6d6ef)];}['getUVByPoint'](_0x3cb43c,_0xc4c777){function _0x502eaf(_0x43d274,_0x5f4039){return _0x4086ac(_0x43d274,_0x5f4039-0x230);}if(!this[_0x502eaf(0x3df,0x389)](_0x3cb43c,_0xc4c777))return null;function _0x6bff41(_0x223f7f,_0x2ea1b9){return _0x4086ac(_0x2ea1b9,_0x223f7f- -0xc2);}const _0x3b930b=this[_0x502eaf(0x25e,0x2e0)](_0x3cb43c,_0xc4c777),_0x543a44=this[_0x6bff41(0xe6,0x8b)](_0x3b930b[0x0],_0x3b930b[0x1]);return _0x543a44;}['isInExtent'](_0x87d6d2,_0x5282c1){function _0x43e8a7(_0x503b2d,_0x5259aa){return _0x4086ac(_0x503b2d,_0x5259aa-0x30a);}function _0x15bb01(_0x16c58b,_0x1982f0){return _0x4086ac(_0x16c58b,_0x1982f0- -0x23a);}return _0x87d6d2>=this[_0x15bb01(-0x136,-0x123)]&&_0x87d6d2<=this[_0x43e8a7(0x3f9,0x3b1)]&&_0x5282c1>=this['ymin']&&_0x5282c1<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x5d2567=fRandomByfloat(this['xmin'],this['xmax']);function _0x18150d(_0x3cab8a,_0x1dadb8){return _0x4086ac(_0x3cab8a,_0x1dadb8- -0x2e0);}const _0x2c6714=fRandomByfloat(this[_0x3264f7(0x57e,0x5dd)],this['ymax']),_0x1c9f4b={};_0x1c9f4b['lat']=_0x2c6714,_0x1c9f4b[_0x3264f7(0x4d0,0x520)]=_0x5d2567;function _0x3264f7(_0x55c1e7,_0x2e731c){return _0x4086ac(_0x2e731c,_0x55c1e7-0x42c);}return _0x1c9f4b;}[_0x4086ac(0x193,0x18d)](){let _0x3abdcb,_0x2260ab,_0x3efd2c;function _0x10a9fe(_0x47d431,_0x554641){return _0x2e747d(_0x554641,_0x47d431-0x102);}for(let _0x4bc17e=0x0,_0x10d4ed=this['particles'][_0x2ccaf2(-0x249,-0x24b)];_0x4bc17e<_0x10d4ed;_0x4bc17e++){let _0x35152a=this['particles'][_0x4bc17e];_0x35152a[_0x2ccaf2(-0x1a6,-0x1d6)]<=0x0&&(_0x35152a=this[_0x10a9fe(0x178,0x1c4)](_0x35152a));if(_0x35152a[_0x2ccaf2(-0x1a6,-0x162)]>0x0){const _0x1000a2=_0x35152a['tlng'],_0x5db85f=_0x35152a['tlat'];_0x3efd2c=this[_0x10a9fe(0xcf,0xca)](_0x1000a2,_0x5db85f),_0x3efd2c?(_0x3abdcb=_0x1000a2+this['_calc_speedRate'][0x0]*_0x3efd2c[0x0],_0x2260ab=_0x5db85f+this['_calc_speedRate'][0x1]*_0x3efd2c[0x1],_0x35152a[_0x2ccaf2(-0x27a,-0x2e3)]=_0x1000a2,_0x35152a['lat']=_0x5db85f,_0x35152a[_0x10a9fe(0x176,0x16a)]=_0x3abdcb,_0x35152a['tlat']=_0x2260ab,_0x35152a['speed']=_0x3efd2c[0x2],_0x35152a['age']--):_0x35152a['age']=0x0;}}function _0x2ccaf2(_0x570014,_0x42bb7d){return _0x4086ac(_0x42bb7d,_0x570014- -0x31e);}return this[_0x10a9fe(0x10e,0x112)];}[_0x4086ac(0xfa,0x15a)](_0x4c3924){function _0x39df81(_0x1100ae,_0x214b7a){return _0x4086ac(_0x1100ae,_0x214b7a- -0x2d6);}let _0x109ddf,_0xf9e721;function _0x34eba2(_0x463608,_0x2debc6){return _0x4086ac(_0x463608,_0x2debc6-0xcd);}for(let _0x3e7d78=0x0;_0x3e7d78<0x1e;_0x3e7d78++){_0x109ddf=this['getRandomLatLng'](),_0xf9e721=this['getUVByPoint'](_0x109ddf[_0x34eba2(0x1d4,0x171)],_0x109ddf['lat']);if(_0xf9e721&&_0xf9e721[0x2]>0x0)break;}if(!_0xf9e721)return _0x4c3924;const _0x273424=_0x109ddf[_0x34eba2(0x171,0x171)]+this['_calc_speedRate'][0x0]*_0xf9e721[0x0],_0x327461=_0x109ddf['lat']+this['_calc_speedRate'][0x1]*_0xf9e721[0x1];return _0x4c3924[_0x39df81(-0x1c4,-0x232)]=_0x109ddf[_0x39df81(-0x2ab,-0x232)],_0x4c3924['lat']=_0x109ddf['lat'],_0x4c3924['tlng']=_0x273424,_0x4c3924[_0x34eba2(0x1c4,0x1c1)]=_0x327461,_0x4c3924['age']=Math['round'](0xa+Math['random']()*this['maxAge']),_0x4c3924[_0x34eba2(0x1be,0x208)]=_0xf9e721[0x2],_0x4c3924;}['destroy'](){for(const _0x27838a in this){delete this[_0x27838a];}}}function fRandomByfloat(_0x5e7870,_0x288cc6){function _0x593fcb(_0xbc0867,_0x32c012){return _0x4086ac(_0xbc0867,_0x32c012-0xd2);}return _0x5e7870+Math[_0x593fcb(0x16e,0x17a)]()*(_0x288cc6-_0x5e7870);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x4086ac(0x1d6,0x189)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x18226d={}){super(_0x18226d);function _0x10d2a3(_0x41108c,_0x1c2377){return _0x2e747d(_0x1c2377,_0x41108c- -0xe5);}function _0x3e04b2(_0x31dbdf,_0x49554b){return _0x4086ac(_0x49554b,_0x31dbdf-0x61);}this['_setOptionsHook'](_0x18226d),this[_0x10d2a3(-0xbc,-0xc4)]=null,_0x18226d['colors']&&_0x18226d[_0x3e04b2(0x18c,0x145)]&&(this['_colorRamp']=new mars3d__namespace[(_0x3e04b2(0x15c,0x153))](_0x18226d));}[_0x4086ac(0x107,0x161)](_0x1e70d3,_0x2af8e0){function _0x5587ba(_0x4c231e,_0x405471){return _0x4086ac(_0x405471,_0x4c231e- -0x2bb);}function _0x5ca769(_0x1b0b1a,_0x8118da){return _0x4086ac(_0x1b0b1a,_0x8118da- -0xc5);}this['frameTime']=0x3e8/(_0x1e70d3['frameRate']||0xa),this[_0x5ca769(0x5f,-0x7)]=this['options']['pointerEvents']??![],this['color']=_0x1e70d3['color']||'#ffffff',this['lineWidth']=_0x1e70d3['lineWidth']||0x1,this['fixedHeight']=_0x1e70d3[_0x5587ba(-0x1ff,-0x239)]??0x0,this['flipY']=_0x1e70d3['flipY']??![],this[_0x5ca769(0x48,0x3)]&&this[_0x5587ba(-0x1f3,-0x21f)][_0x5ca769(0x72,0xbf)](_0x1e70d3);}get['layer'](){return this['canvas'];}get['canvasWidth'](){function _0x302549(_0x242aa5,_0x22d199){return _0x2e747d(_0x242aa5,_0x22d199-0x495);}function _0xc9f58f(_0x1e927c,_0x166431){return _0x2e747d(_0x1e927c,_0x166431-0x206);}return this['_map'][_0xc9f58f(0x231,0x20b)][_0xc9f58f(0x28c,0x22f)]['clientWidth'];}get['canvasHeight'](){return this['_map']['scene']['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x2e747d(0xc4,0xa2)](_0x26870b){this[_0x2d9521(-0x192,-0x134)]=_0x26870b;if(!this['canvas'])return;function _0x3aa356(_0x2fceff,_0x1e3ac8){return _0x4086ac(_0x2fceff,_0x1e3ac8- -0x352);}function _0x2d9521(_0x5d7839,_0x2266db){return _0x2e747d(_0x5d7839,_0x2266db- -0x10e);}_0x26870b?this['canvas'][_0x3aa356(-0x255,-0x281)]['pointer-events']='all':this['canvas'][_0x3aa356(-0x30c,-0x281)][_0x2d9521(-0x8a,-0xd7)]='none';}get['particlesNumber'](){function _0x2e81e2(_0x1291e2,_0xeef4d4){return _0x2e747d(_0x1291e2,_0xeef4d4- -0x14d);}return this[_0x2e81e2(-0x13e,-0xeb)]['particlesNumber'];}set[_0x4086ac(0x61,0xc1)](_0x298c43){function _0x26b025(_0x268ef0,_0x32530f){return _0x4086ac(_0x32530f,_0x268ef0- -0x150);}this['options']['particlesNumber']=_0x298c43,clearTimeout(this['_canrefresh']),this[_0x26b025(-0x91,-0x10)]=setTimeout(()=>{function _0x3664b3(_0x3c1d03,_0x22aaea){return _0x26b025(_0x3c1d03-0xa2,_0x22aaea);}this[_0x3664b3(0x38,0x64)]();},0x1f4);}get['speedRate'](){function _0x1c4cdc(_0x44151c,_0x3f8c2b){return _0x4086ac(_0x44151c,_0x3f8c2b-0x13d);}return this[_0x1c4cdc(0x268,0x283)]['speedRate'];}set[_0x2e747d(0x19,0x42)](_0x5599c1){function _0x24deb3(_0x23740a,_0x533014){return _0x2e747d(_0x23740a,_0x533014-0xec);}this['options']['speedRate']=_0x5599c1,this['windField']&&(this[_0x24deb3(0xa6,0xd0)]['speedRate']=_0x5599c1);}get['maxAge'](){return this['options']['maxAge'];}set[_0x4086ac(0x13c,0xb3)](_0x4439ec){this['options']['maxAge']=_0x4439ec,this['windField']&&(this['windField']['maxAge']=_0x4439ec);}get[_0x4086ac(0x82,0xfe)](){return this['windData'];}set['data'](_0x4c93a3){function _0x2c1d54(_0x54e8b5,_0xc24acb){return _0x4086ac(_0x54e8b5,_0xc24acb-0x31f);}this[_0x2c1d54(0x461,0x4b6)](_0x4c93a3);}get['rectangle'](){let _0x3ece57=this[_0x367075(0x1cc,0x1e9)]['xmin'],_0x270c1b=this['windData'][_0x367075(0x1a6,0x22e)],_0x48d14=this['windData']['ymin'],_0xc99f8=this[_0x1d592f(-0xff,-0xf8)][_0x1d592f(-0xe0,-0x104)];_0x270c1b>=0x167&&_0x3ece57===0x0&&(_0x3ece57=-0xb4,_0x270c1b=0xb4);_0x3ece57=Math['max'](_0x3ece57,-0xb4);function _0x1d592f(_0x378f2e,_0x35c049){return _0x4086ac(_0x35c049,_0x378f2e- -0x1cc);}_0x270c1b=Math['min'](_0x270c1b,0xb4),_0x48d14=Math['max'](_0x48d14,-0x5a);function _0x367075(_0xa58a,_0x7570fc){return _0x2e747d(_0x7570fc,_0xa58a-0x1e3);}return _0xc99f8=Math[_0x1d592f(-0x8b,-0xb4)](_0xc99f8,0x5a),Cesium['Rectangle'][_0x1d592f(-0x2f,-0x51)](_0x3ece57,_0x48d14,_0x270c1b,_0xc99f8);}[_0x2e747d(0xbd,0x8b)](_0xae9bbe){function _0x5d7c1f(_0x480fec,_0x583555){return _0x2e747d(_0x480fec,_0x583555-0x2e3);}function _0x30477b(_0x5a517f,_0x2bef3f){return _0x2e747d(_0x5a517f,_0x2bef3f- -0x1e5);}_0xae9bbe?this['_addedHook']():(this[_0x5d7c1f(0x265,0x2cc)]&&(this['options'][_0x5d7c1f(0x366,0x2fd)]=this[_0x5d7c1f(0x2bb,0x2cc)]),this[_0x30477b(-0x1a4,-0x1b5)]());}['_mountedHook'](){function _0x430513(_0x128ecf,_0x18a7bd){return _0x4086ac(_0x18a7bd,_0x128ecf-0x3b5);}function _0x20601e(_0x23dd84,_0x26ef92){return _0x4086ac(_0x23dd84,_0x26ef92-0x422);}this['options']['worker']?this['initWorker']():this[_0x20601e(0x4f7,0x4ea)]=new CanvasWindField(this[_0x20601e(0x4f0,0x568)]);}[_0x2e747d(0x67,-0x2)](){function _0x530bc4(_0x1bb746,_0xf64ded){return _0x4086ac(_0x1bb746,_0xf64ded-0x1f8);}this[_0x530bc4(0x37e,0x305)]=this[_0x530bc4(0x3af,0x362)]();function _0x3f46ba(_0x4e45ae,_0x342158){return _0x2e747d(_0x4e45ae,_0x342158-0x4aa);}const _0x36b8ad={};_0x36b8ad[_0x3f46ba(0x4a3,0x4ff)]=!![],this[_0x530bc4(0x327,0x336)]=this[_0x530bc4(0x30a,0x305)]['getContext']('2d',_0x36b8ad),this[_0x3f46ba(0x4bf,0x4bb)](),this[_0x530bc4(0x308,0x33e)]['data']&&this['setData'](this[_0x3f46ba(0x489,0x50c)][_0x530bc4(0x299,0x2f6)]);}['_removedHook'](){function _0xd188b4(_0x12e19d,_0x114917){return _0x2e747d(_0x114917,_0x12e19d-0x52f);}this['clear']();function _0x1819cf(_0x3ec739,_0x3e2a71){return _0x2e747d(_0x3ec739,_0x3e2a71- -0x185);}this['unbindEvent'](),this[_0xd188b4(0x558,0x5ab)]&&(this['_map']['container'][_0xd188b4(0x58e,0x5eb)](this['canvas']),delete this['canvas']);}[_0x4086ac(0xe2,0x16a)](){const _0x5c5393=mars3d__namespace[_0x544449(0x4bd,0x4dd)][_0x544449(0x4d4,0x49f)](_0x544449(0x451,0x446),'mars3d-canvasWind',this['_map']['container']);_0x5c5393[_0x544449(0x415,0x3f9)]['position']=_0x544449(0x436,0x3e8),_0x5c5393[_0xeaa35e(-0x267,-0x2ae)]['top']=_0x544449(0x4ef,0x4ac),_0x5c5393[_0xeaa35e(-0x267,-0x2ae)]['left']=_0xeaa35e(-0x18d,-0x1b2),_0x5c5393['style']['width']=this[_0x544449(0x470,0x4b9)]['scene']['canvas']['clientWidth']+'px',_0x5c5393['style'][_0x544449(0x4dd,0x4df)]=this[_0x544449(0x470,0x449)][_0x544449(0x42d,0x3f8)]['canvas'][_0xeaa35e(-0x25f,-0x1e7)]+'px',_0x5c5393['style'][_0x544449(0x4ca,0x4c8)]=this['_pointerEvents']?'auto':'none';function _0xeaa35e(_0x24554a,_0x1ab88f){return _0x4086ac(_0x1ab88f,_0x24554a- -0x338);}_0x5c5393['style'][_0x544449(0x40f,0x490)]=this[_0x544449(0x48a,0x461)]['zIndex']??0x9;function _0x544449(_0x56d3d4,_0x295a7b){return _0x4086ac(_0x295a7b,_0x56d3d4-0x344);}return _0x5c5393['width']=this['_map']['scene']['canvas']['clientWidth'],_0x5c5393[_0xeaa35e(-0x19f,-0x13e)]=this['_map']['scene'][_0x544449(0x451,0x3f6)]['clientHeight'],_0x5c5393;}[_0x2e747d(-0x20,0x34)](){function _0x1f8dfa(_0x1827dd,_0x535e0a){return _0x4086ac(_0x535e0a,_0x1827dd-0x20b);}function _0x2c06b8(_0x4a29f6,_0x485d22){return _0x4086ac(_0x485d22,_0x4a29f6-0x349);}this['canvas']&&(this[_0x2c06b8(0x456,0x3ea)][_0x2c06b8(0x41a,0x467)]['width']=this[_0x2c06b8(0x475,0x444)][_0x2c06b8(0x432,0x436)]['canvas']['clientWidth']+'px',this['canvas'][_0x1f8dfa(0x2dc,0x297)]['height']=this['_map']['scene']['canvas']['clientHeight']+'px',this['canvas']['width']=this['_map'][_0x2c06b8(0x432,0x49c)]['canvas']['clientWidth'],this['canvas'][_0x1f8dfa(0x3a4,0x3f6)]=this[_0x2c06b8(0x475,0x48f)]['scene']['canvas'][_0x1f8dfa(0x2e4,0x318)]);}['bindEvent'](){const _0x1706bc=this;function _0x45533a(_0x43d180,_0x3139f5){return _0x4086ac(_0x43d180,_0x3139f5- -0xd5);}let _0x347b65=Date['now']();(function _0x36a111(){if(_0x1706bc[_0xa5f03f(-0xd8,-0x67)])return;function _0xa5f03f(_0x116b78,_0x289d9d){return _0x1e9b(_0x289d9d- -0x25d,_0x116b78);}function _0x3ef004(_0x1e0dfe,_0x3ff513){return _0x1e9b(_0x3ff513-0x176,_0x1e0dfe);}_0x1706bc[_0xa5f03f(-0xe8,-0xf1)]=window['requestAnimationFrame'](_0x36a111);if(_0x1706bc[_0x3ef004(0x32c,0x366)]&&_0x1706bc['windField']){const _0x452dc5=Date[_0x3ef004(0x36d,0x34d)](),_0x6c67fd=_0x452dc5-_0x347b65;_0x6c67fd>_0x1706bc['frameTime']&&(_0x347b65=_0x452dc5-_0x6c67fd%_0x1706bc['frameTime'],_0x1706bc['update']());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![]);function _0x3ca9ba(_0x809e87,_0x3862df){return _0x2e747d(_0x3862df,_0x809e87-0x305);}this['options'][_0x3ca9ba(0x3c6,0x3b9)]&&(this['_map']['on'](mars3d__namespace[_0x45533a(0x6f,0x1a)]['wheel'],this[_0x45533a(0x72,0x49)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x45533a(0x80,0x7)],this),this[_0x45533a(0x6f,0x57)]['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this));}['unbindEvent'](){window[_0x43f07a(-0x15f,-0x1e7)](this['_animateFrame']);function _0x43f07a(_0x482c5e,_0x295dd9){return _0x2e747d(_0x295dd9,_0x482c5e- -0x144);}delete this[_0x43f07a(-0x13e,-0x1aa)];function _0x22e549(_0x3e36e4,_0x4f4541){return _0x4086ac(_0x3e36e4,_0x4f4541-0x239);}window['removeEventListener']('resize',this[_0x22e549(0x337,0x351)]),this[_0x22e549(0x3a6,0x37f)]['mouseHidden']&&(this['_map'][_0x43f07a(-0xbc,-0x64)](mars3d__namespace[_0x22e549(0x2ea,0x328)]['wheel'],this[_0x22e549(0x371,0x357)],this),this[_0x22e549(0x2f4,0x365)]['off'](mars3d__namespace[_0x22e549(0x2ac,0x328)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x43f07a(-0x71,-0xbd)],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x22e549(0x290,0x2eb)],this[_0x43f07a(-0xa9,-0xbb)],this));}['_onMapWhellEvent'](_0x3636c9){function _0xe1477b(_0x2e07c4,_0x1046f6){return _0x4086ac(_0x2e07c4,_0x1046f6- -0xdb);}function _0x519e32(_0x396f1e,_0x2322ef){return _0x2e747d(_0x2322ef,_0x396f1e- -0x211);}clearTimeout(this['refreshTimer']);if(!this[_0xe1477b(0x7f,0x93)]||!this['canvas'])return;this[_0x519e32(-0x1e8,-0x1cf)]['style'][_0x519e32(-0x1e5,-0x21c)]='hidden',this['refreshTimer']=setTimeout(()=>{if(!this[_0x34ca82(-0xbb,-0xac)])return;function _0x34ca82(_0x5c3410,_0x437c1e){return _0x519e32(_0x437c1e-0xdb,_0x5c3410);}function _0xd1912e(_0xb5925f,_0x38689d){return _0x519e32(_0x38689d-0x527,_0xb5925f);}this['redraw'](),this['canvas'][_0x34ca82(-0x10e,-0x149)]['visibility']='visible';},0xc8);}[_0x4086ac(0xf2,0xdc)](_0x4d4b12){function _0x573ca3(_0x15e28c,_0x12d57c){return _0x4086ac(_0x15e28c,_0x12d57c-0x1ee);}this['mouse_down']=!![],this[_0x573ca3(0x387,0x31a)]['off'](mars3d__namespace[_0x1cb373(0x52b,0x59e)][_0x1cb373(0x4ee,0x4d7)],this['_onMouseMoveEvent'],this);function _0x1cb373(_0x4450b8,_0x4c5aad){return _0x4086ac(_0x4c5aad,_0x4450b8-0x43c);}this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x3e64b7){function _0x240256(_0x3462e0,_0x478d0a){return _0x4086ac(_0x3462e0,_0x478d0a- -0x108);}function _0x1e0d71(_0x37a11f,_0x56c767){return _0x4086ac(_0x37a11f,_0x56c767-0x290);}if(!this['show']||!this[_0x1e0d71(0x315,0x39d)])return;this['mouse_down']&&(this[_0x240256(0x1c,0x5)][_0x240256(-0x64,-0x37)][_0x1e0d71(0x3db,0x3a0)]=_0x240256(0x98,0x73),this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x101be4){function _0x5c81e0(_0x35daae,_0x1c0d52){return _0x4086ac(_0x35daae,_0x1c0d52-0x1a8);}if(!this['show']||!this[_0x5c81e0(0x270,0x2b5)])return;this[_0x33e90c(0x27,0xa2)][_0x5c81e0(0x2eb,0x314)](mars3d__namespace[_0x33e90c(-0x16,-0x2c)]['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this[_0x33e90c(-0x2e,-0x5e)]&&this['redraw']();this[_0x33e90c(0x8,-0x1a)]['style']['visibility']='visible';function _0x33e90c(_0x197c4c,_0x423a50){return _0x2e747d(_0x423a50,_0x197c4c- -0x21);}this['mouse_down']=![],this[_0x5c81e0(0x2ca,0x27f)]=![];}[_0x2e747d(0xd5,0xb3)](_0x137de9){function _0x4c588f(_0x468a52,_0xdf5c73){return _0x4086ac(_0x468a52,_0xdf5c73-0x3f4);}function _0x4cb251(_0x15fe64,_0x201e06){return _0x4086ac(_0x201e06,_0x15fe64-0x41a);}this['clear'](),this[_0x4cb251(0x4e7,0x4b1)]=_0x137de9,this['windField']['setDate'](_0x137de9),this[_0x4c588f(0x524,0x4da)]();}[_0x4086ac(0x166,0xe6)](){function _0x37c216(_0x5e39f0,_0x128061){return _0x4086ac(_0x128061,_0x5e39f0-0x65);}if(!this[_0x1a78be(-0x98,-0x3c)])return;function _0x1a78be(_0x2b57ed,_0x1254e4){return _0x2e747d(_0x2b57ed,_0x1254e4- -0xc6);}this['windField']['setOptions'](this[_0x1a78be(-0x65,-0x64)]),this[_0x37c216(0x1a1,0x194)]();}['update'](){function _0x62a7d2(_0x33435e,_0x430963){return _0x4086ac(_0x430963,_0x33435e-0x33c);}if(this[_0x62a7d2(0x461,0x3fd)])return;function _0x36bfac(_0x3368f8,_0x586614){return _0x4086ac(_0x586614,_0x3368f8-0x73);}this['_updateIng']=!![];if(this[_0x62a7d2(0x498,0x4e9)])this[_0x62a7d2(0x404,0x382)]['update']();else{const _0x7a1eaf=this['windField']['getParticles']();this[_0x62a7d2(0x49b,0x425)](_0x7a1eaf);}this['_updateIng']=![];}['_drawLines'](_0x246769){this['_canvasParticles']=_0x246769,this['canvasContext'][_0x55b717(0x455,0x4b7)]=_0x9fda0d(0x232,0x210),this[_0x9fda0d(0x1be,0x148)]['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x55b717(0x55d,0x4f4)]),this[_0x9fda0d(0x1be,0x189)][_0x55b717(0x4ec,0x4b7)]=_0x55b717(0x454,0x4c8),this['canvasContext']['globalAlpha']=0.9;const _0x2168f9=this[_0x55b717(0x3fd,0x472)]['scene'][_0x55b717(0x4c9,0x4bc)]!==Cesium['SceneMode'][_0x9fda0d(0x230,0x207)];function _0x55b717(_0x2fde7f,_0x482cfc){return _0x4086ac(_0x2fde7f,_0x482cfc-0x346);}function _0x9fda0d(_0x3f6ec5,_0x53c5b7){return _0x2e747d(_0x53c5b7,_0x3f6ec5-0x164);}const _0x306f87=this[_0x55b717(0x4ad,0x46f)]*0.25;if(this['_colorRamp'])for(let _0x30069d=0x0,_0x5c2e05=_0x246769['length'];_0x30069d<_0x5c2e05;_0x30069d++){const _0xc4c847=_0x246769[_0x30069d],_0x2c2144=this[_0x55b717(0x3ad,0x431)](_0xc4c847,_0xc4c847[_0x9fda0d(0x124,0x10a)],_0xc4c847['lat'],_0xc4c847['alt']),_0x343b9e=this[_0x55b717(0x4a1,0x431)](_0xc4c847,_0xc4c847['tlng'],_0xc4c847[_0x9fda0d(0x174,0xf4)],_0xc4c847[_0x9fda0d(0x168,0x17b)]);if(!_0x2c2144||!_0x343b9e)continue;if(_0x2168f9&&Math[_0x9fda0d(0x12d,0x182)](_0x2c2144[0x0]-_0x343b9e[0x0])>=_0x306f87)continue;this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x55b717(0x43e,0x484)]['strokeStyle']=this[_0x9fda0d(0x1ba,0x1b8)]['getColor'](_0xc4c847['speed']),this['canvasContext']['moveTo'](_0x2c2144[0x0],_0x2c2144[0x1]),this['canvasContext'][_0x55b717(0x430,0x44b)](_0x343b9e[0x0],_0x343b9e[0x1]),this[_0x9fda0d(0x1be,0x17a)][_0x9fda0d(0x16e,0x199)]();}else{this['canvasContext'][_0x55b717(0x3bf,0x3ef)](),this['canvasContext'][_0x9fda0d(0x189,0x205)]=this['lineWidth'],this[_0x9fda0d(0x1be,0x16c)]['strokeStyle']=this['color'];for(let _0x24384f=0x0,_0x223a32=_0x246769[_0x55b717(0x46a,0x41b)];_0x24384f<_0x223a32;_0x24384f++){const _0xc794c=_0x246769[_0x24384f],_0x251817=this[_0x9fda0d(0x16b,0x13f)](_0xc794c,_0xc794c[_0x9fda0d(0x124,0xc3)],_0xc794c[_0x9fda0d(0x216,0x1b8)],_0xc794c['alt']),_0x54974a=this['_tomap'](_0xc794c,_0xc794c['tlng'],_0xc794c['tlat'],_0xc794c[_0x9fda0d(0x168,0xed)]);if(!_0x251817||!_0x54974a)continue;if(_0x2168f9&&Math[_0x9fda0d(0x12d,0xdc)](_0x251817[0x0]-_0x54974a[0x0])>=_0x306f87)continue;this[_0x9fda0d(0x1be,0x21f)]['moveTo'](_0x251817[0x0],_0x251817[0x1]),this['canvasContext']['lineTo'](_0x54974a[0x0],_0x54974a[0x1]);}this['canvasContext'][_0x9fda0d(0x16e,0xec)]();}}['_tomap'](_0x58f161,_0x26842e,_0x48097a,_0x2d9ccc){const _0x7272aa=Cesium[_0x18e51b(0xa5,0xce)]['fromDegrees'](_0x26842e,_0x48097a,_0x2d9ccc??this['fixedHeight']);function _0x18e51b(_0x1f0bee,_0x414bde){return _0x2e747d(_0x1f0bee,_0x414bde-0x5f);}const _0x33307a=this[_0x2c85db(0x2b3,0x302)][_0x2c85db(0x270,0x28f)];if(_0x33307a[_0x18e51b(0xac,0xf1)]===Cesium['SceneMode'][_0x18e51b(0xfc,0x12b)]){const _0x52bae1=new Cesium[(_0x2c85db(0x33b,0x2f7))](_0x33307a['globe']['ellipsoid'],_0x33307a[_0x18e51b(0xa9,0x107)][_0x18e51b(0xf6,0x90)]),_0x98180e=_0x52bae1[_0x2c85db(0x24b,0x23e)](_0x7272aa);if(!_0x98180e)return _0x58f161['age']=0x0,null;}function _0x2c85db(_0x4644f3,_0x2b114b){return _0x4086ac(_0x2b114b,_0x4644f3-0x187);}const _0x3ce145=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map']['scene'],_0x7272aa);return _0x3ce145?[_0x3ce145['x'],_0x3ce145['y']]:null;}[_0x2e747d(0xb2,0x4c)](){this['windField'][_0x35149d(0x1cb,0x22d)]();function _0x1adfa2(_0x81eeb,_0x45770d){return _0x4086ac(_0x45770d,_0x81eeb- -0x171);}function _0x35149d(_0x117d29,_0x32200d){return _0x4086ac(_0x32200d,_0x117d29-0x9b);}delete this[_0x35149d(0x168,0xde)];}['initWorker'](){function _0x56276f(_0xd9faaf,_0x277faa){return _0x4086ac(_0xd9faaf,_0x277faa-0x224);}this[_0xf31f93(0xe4,0xff)]=new Worker(this[_0x56276f(0x323,0x36a)]['worker']),this[_0xf31f93(0x155,0xff)]['onmessage']=_0x21d05b=>{this['_drawLines'](_0x21d05b['data']['particles']),this['_updateIng2']=![];},this['windField']={'init':_0x386fd0=>{const _0x525d58={};function _0x4147f7(_0x114033,_0x3b7f1d){return _0xf31f93(_0x114033,_0x3b7f1d- -0x13b);}function _0x6b7117(_0x28503b,_0x44c51d){return _0x56276f(_0x28503b,_0x44c51d-0xe5);}_0x525d58[_0x4147f7(0x6,-0xa)]=_0x6b7117(0x3fe,0x471),_0x525d58['options']=_0x386fd0,this[_0x6b7117(0x3df,0x465)][_0x6b7117(0x376,0x400)](_0x525d58);},'setOptions':_0x191c0d=>{const _0x20ec89={};_0x20ec89[_0xf12efa(0x1c6,0x161)]='setOptions';function _0xf12efa(_0x447731,_0x4af81a){return _0x56276f(_0x4af81a,_0x447731- -0x1ec);}_0x20ec89['options']=_0x191c0d;function _0x47782d(_0x395100,_0x14ef96){return _0x56276f(_0x14ef96,_0x395100-0x22d);}this[_0xf12efa(0x194,0x207)]['postMessage'](_0x20ec89);},'setDate':_0x9c5de2=>{const _0x666e8f={};_0x666e8f[_0x3208b7(0x97,0x9c)]='setDate';function _0x1b97c2(_0x2fcca4,_0x6ad040){return _0x56276f(_0x6ad040,_0x2fcca4- -0x44e);}_0x666e8f['data']=_0x9c5de2;function _0x3208b7(_0x4e3fbb,_0xc6f2a7){return _0x56276f(_0xc6f2a7,_0x4e3fbb- -0x31b);}this[_0x1b97c2(-0xce,-0x11e)]['postMessage'](_0x666e8f);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x4f7e81={};_0x4f7e81['type']=_0x1bc2b5(0x59c,0x5c4);function _0x340da7(_0x56d361,_0x2bf478){return _0x56276f(_0x2bf478,_0x56d361- -0x18a);}function _0x1bc2b5(_0x5f4294,_0x24c5ad){return _0x56276f(_0x24c5ad,_0x5f4294-0x23c);}this['worker'][_0x1bc2b5(0x557,0x558)](_0x4f7e81);},'clear':()=>{function _0x512e60(_0x39dcd6,_0x4931f0){return _0x56276f(_0x39dcd6,_0x4931f0- -0x2b8);}const _0x326637={};_0x326637['type']='clear',this['worker'][_0x512e60(0x82,0x63)](_0x326637);}};function _0xf31f93(_0x28e383,_0x520089){return _0x4086ac(_0x28e383,_0x520089- -0x5d);}this['windField'][_0x56276f(0x409,0x38c)](this['options']);}}mars3d__namespace['LayerUtil'][_0x4086ac(0xd5,0x151)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports[_0x2e747d(-0x18,0x54)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x2e747d(0x40,0x9c)]=WindLayer,exports['WindUtil']=WindUtil;const _0x3e20a2={};_0x3e20a2['value']=!![],Object[_0x4086ac(0x133,0x14b)](exports,'__esModule',_0x3e20a2);
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.9.
|
|
3
|
+
"version": "3.9.7",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.9.
|
|
8
|
+
"mars3d": "~3.9.7"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|