mars3d-wind 3.8.15 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/mars3d-wind.js +4 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -49,7 +49,7 @@ import * as mars3d from "mars3d";
|
|
|
49
49
|
import "mars3d-wind";
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
> 关于引入后的具体如何使用,请参考教程[
|
|
52
|
+
> 关于引入后的具体如何使用,请参考教程[Mars3D集成到项目](http://mars3d.cn/docs/guide/npm-integration/)中了解更多信息。
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
|
package/mars3d-wind.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
|
3
3
|
*
|
|
4
|
-
* 版本信息:v3.
|
|
5
|
-
* 编译日期:2025-02-
|
|
4
|
+
* 版本信息:v3.9.0
|
|
5
|
+
* 编译日期:2025-02-15 11:57
|
|
6
6
|
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
|
-
* 使用单位:火星科技免费公开版 ,
|
|
7
|
+
* 使用单位:火星科技免费公开版 ,2025-02-01
|
|
8
8
|
*/
|
|
9
9
|
(function (global, factory) {
|
|
10
10
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, (window.mars3d || require('mars3d'))) :
|
|
11
11
|
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
|
|
12
12
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
|
|
13
13
|
})(this, (function (exports, mars3d) {
|
|
14
|
-
'use strict';(function(_0x183aa0,_0x203d6c){function _0x41c2b7(_0x251e6f,_0x3e13b6){return _0x4ca7(_0x3e13b6-0x33a,_0x251e6f);}function _0x27f23b(_0x11df44,_0x500303){return _0x4ca7(_0x500303-0x3e4,_0x11df44);}const _0x219c09=_0x183aa0();while(!![]){try{const _0x20d667=parseInt(_0x27f23b(0x680,0x616))/0x1*(parseInt(_0x41c2b7(0x5cc,0x559))/0x2)+parseInt(_0x27f23b(0x6a7,0x635))/0x3*(-parseInt(_0x27f23b(0x68d,0x67f))/0x4)+parseInt(_0x27f23b(0x62f,0x631))/0x5+parseInt(_0x27f23b(0x596,0x607))/0x6*(-parseInt(_0x41c2b7(0x55b,0x54c))/0x7)+parseInt(_0x27f23b(0x60e,0x5e7))/0x8+-parseInt(_0x27f23b(0x672,0x620))/0x9*(parseInt(_0x41c2b7(0x504,0x542))/0xa)+parseInt(_0x41c2b7(0x5dd,0x577))/0xb;if(_0x20d667===_0x203d6c)break;else _0x219c09['push'](_0x219c09['shift']());}catch(_0x372835){_0x219c09['push'](_0x219c09['shift']());}}}(_0x2e44,0x23bfd));function _0x4ca7(_0x3e7118,_0x25ef31){const _0x2e44ea=_0x2e44();return _0x4ca7=function(_0x4ca72e,_0x3109e5){_0x4ca72e=_0x4ca72e-0x1eb;let _0x1e975c=_0x2e44ea[_0x4ca72e];return _0x1e975c;},_0x4ca7(_0x3e7118,_0x25ef31);}function _interopNamespace(_0x3d7db0){if(_0x3d7db0&&_0x3d7db0[_0x360ac1(0x8e,0x100)])return _0x3d7db0;var _0x2d09e9=Object['create'](null);_0x3d7db0&&Object['keys'](_0x3d7db0)[_0x360ac1(0xdf,0xf4)](function(_0x4700f1){if(_0x4700f1!=='default'){var _0x5e3beb=Object['getOwnPropertyDescriptor'](_0x3d7db0,_0x4700f1);Object['defineProperty'](_0x2d09e9,_0x4700f1,_0x5e3beb['get']?_0x5e3beb:{'enumerable':!![],'get':function(){return _0x3d7db0[_0x4700f1];}});}});function _0x16eacf(_0x4ca44f,_0x1ed4f3){return _0x4ca7(_0x4ca44f- -0x65,_0x1ed4f3);}function _0x360ac1(_0x18379a,_0x140255){return _0x4ca7(_0x18379a- -0x196,_0x140255);}return _0x2d09e9['default']=_0x3d7db0,_0x2d09e9;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0xdf1275,_0x47f157){function _0x359830(_0x26fe25,_0x16f4ed){return _0x4ca7(_0x26fe25-0xa3,_0x16f4ed);}function _0x5da213(_0x38d759,_0x59ee2d){return _0x4ca7(_0x38d759-0x5,_0x59ee2d);}const _0x2e701b=_0xdf1275*Math['cos'](Cesium$2[_0x359830(0x357,0x2d2)][_0x5da213(0x22e,0x245)](_0x47f157));return _0x2e701b;}function getV(_0x493f78,_0x34164c){function _0x2e21de(_0x3c079a,_0x1f1606){return _0x4ca7(_0x3c079a-0x2aa,_0x1f1606);}const _0x1cd20b=_0x493f78*Math[_0x2e21de(0x517,0x51f)](Cesium$2['Math']['toRadians'](_0x34164c));return _0x1cd20b;}function _0x2e44(){const _0x4d4f02=['toGridXY','Cartesian2','initFrameRate','samplingWindow','pickEllipsoid','pow','speedFactor','_setOptionsHook','round','refreshTimer','mouse_down','worker','initWorker','textures','frameTime','commandType','Math','viewerParameters','SCENE3D','postMessage','_onMouseUpEvent','LINEAR','CLAMP_TO_EDGE','createRenderingTextures','rows','dropRate','fixedHeight','particles','ymax','geometry','add','colorTable','pixelDatatype','dynamic','width','pointer-events','ymin','mouseHidden','morphComplete','postProcessingPosition','calculateSpeed','renderState','resize','BaseLayer','outputTexture','IDENTITY','primitives','particlesTextureSize','getDefaultRenderState','OPAQUE','_canrefresh','speed','uniformMap','colors','hidden','particlesSpeed','push','canvas','modelMatrix','autoClear','_onMouseDownEvent','framebuffer','frameRate','getRandomLatLng','sqrt','setDate','particleSystem','strokeStyle','_drawLines','segmentsDepth','bufferUsage','vertexArray','getCalculateSpeedShader','layer','bind','vmax','color','Compute','NEAREST','_animateFrame','keys','container','removeChild','wheel','auto','moveTo','height','_onMouseMoveEvent','_speedRate','getU','particlesTextures','createColorTableTexture','west','fillRect','umin','tlat','visibility','left','warn','addEventListener','cols','camera','alpha','changeOptions','canvasContext','bounds','getDirection','data','_showHook','now','prototype','_calcUV','mouseDown','minificationFilter','floor','magnificationFilter','_map','#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','_updateIng','lat','_updateIng2','getParticles','EventType','type','primitiveType','1127680YdDden','WindLayer','processWindData','vertexShaderSource','isInExtent','10erjUiL','owner','destroy','length','attributeLocations','frameState.commandList\x20is\x20undefined','wrapS','createSegmentsGeometry','updatePosition','getUVByPoint','3899gAhvtF','off','createWindTextures','flipY','lonRange','east','clearCommand','_randomParticle','UNSIGNED_BYTE','north','getUpdatePositionShader','createComputingPrimitives','wrapT','5764VRVgaN','RED','rendering','lineTo','726ASXXHm','__esModule','lng','stringify','mouseMove','frameRateAdjustment','toRadians','sources','_tomap','requestRender','domain','scene','flatMap','depthMask','WindUtil','91zZrAXm','SceneMode','register','mouse_move','onParticlesTextureSizeChange','fragmentShaderSource','pointerEvents','particlesNumber','clientHeight','clear','339561dnXmiT','507133ITNCIU','enabled','onmessage','clearFramebuffers','componentsPerAttribute','_calc_speedRate','absolute','changed','previousParticlesPosition','xmin','tlng','value','_bilinearInterpolation','windData','computing','normal','413500ekKSbD','depthTexture','udata','values','280470kYoCir','canvasWidth','alt','array','_canvasParticles','abs','FLOAT','segments','random','toWindowCoordinates','reverse','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','destroyParticlesTextures','speedRate','setOptions','shaderProgram','getUVByXY','pixelSize','useViewerBounds','talt','updateOptions','requestAnimationFrame','isDestroyed','style','applyViewerParameters','dropRateBump','south','_removedHook','sin','init','grid','number','redraw','_colorRamp','lineWidth','isArray','forEach','fromGeometry','show','fill','call','update','currentParticlesPosition','commandToExecute','viewport','getPrimitives','removeEventListener','cartesianToCartographic','clientWidth','age','TRIANGLES','nextParticlesPosition','updateWindData','Cesium','#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','onColorTableChange','min','_pointerEvents','createRawRenderState','xmax','lighter','pass','displayRange','framebuffers','none','getSegmentDrawFragmentShader','context','setData','windField','mode','frameRateMonitor','atan2','Draw','updateViewerParameters','12GhPmpI','max','stroke','zIndex','drawingBufferHeight','options','isDynamic','globe','maxAge'];_0x2e44=function(){return _0x4d4f02;};return _0x2e44();}function getSpeed(_0x505396,_0x204c0b){const _0x57f058=Math['sqrt'](Math['pow'](_0x505396,0x2)+Math[_0x268ef4(0x1e3,0x166)](_0x204c0b,0x2));function _0x268ef4(_0x48df33,_0x7a37c2){return _0x4ca7(_0x48df33- -0xc6,_0x7a37c2);}return _0x57f058;}function getDirection(_0x217a4c,_0x35db91){function _0x311ab5(_0x5090f4,_0x32d26b){return _0x4ca7(_0x5090f4-0x1ac,_0x32d26b);}let _0x3e8d81=Cesium$2['Math']['toDegrees'](Math[_0x311ab5(0x444,0x4bb)](_0x35db91,_0x217a4c));return _0x3e8d81+=_0x3e8d81<0x0?0x168:0x0,_0x3e8d81;}const _0xd989bb={};_0xd989bb['__proto__']=null,_0xd989bb[_0x5c5aa9(0xc5,0x5c)]=getU,_0xd989bb['getV']=getV,_0xd989bb['getSpeed']=getSpeed,_0xd989bb[_0x5c5aa9(-0x48,-0x28)]=getDirection;var WindUtil=_0xd989bb,updatePositionShader=_0x22e09d(0x1af,0x177),calculateSpeedShader='#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',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=_0x5c5aa9(-0x3d,-0x34);const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x4c45b4={};return _0x4c45b4['sources']=[calculateSpeedShader],new ShaderSource$1(_0x4c45b4);}static[_0x22e09d(0x144,0xd7)](){const _0x21c9e1={};return _0x21c9e1['sources']=[updatePositionShader],new ShaderSource$1(_0x21c9e1);}static['getSegmentDrawVertexShader'](){const _0x255d39={};return _0x255d39['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x255d39);}static['getSegmentDrawFragmentShader'](){const _0x53dfa5={};_0x53dfa5[_0x93a4f(0x42d,0x3ac)]=[renderParticlesFragmentShader];function _0x93a4f(_0x4d6ec4,_0x133fe3){return _0x22e09d(_0x133fe3-0x25a,_0x4d6ec4);}return new ShaderSource$1(_0x53dfa5);}static['getPostProcessingPositionShader'](){const _0x46c9c8={};function _0x4adb97(_0x4539da,_0x763dff){return _0x5c5aa9(_0x763dff-0x121,_0x4539da);}return _0x46c9c8[_0x4adb97(0xb4,0x113)]=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x46c9c8);}}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,defaultValue,defined,destroyObject}=mars3d__namespace[_0x22e09d(0x1ae,0x221)];class CustomPrimitive{constructor(_0x32c8f7){this['commandType']=_0x32c8f7['commandType'],this['geometry']=_0x32c8f7[_0x2cc48b(0x4b8,0x430)],this[_0x2cc48b(0x403,0x40b)]=_0x32c8f7['attributeLocations'],this['primitiveType']=_0x32c8f7['primitiveType'];function _0x300d40(_0x4bb43f,_0x29b3fa){return _0x22e09d(_0x4bb43f-0x29c,_0x29b3fa);}this[_0x300d40(0x49c,0x423)]=_0x32c8f7[_0x2cc48b(0x4cf,0x544)]||{},this['vertexShaderSource']=_0x32c8f7[_0x300d40(0x3ca,0x44f)],this[_0x2cc48b(0x42e,0x435)]=_0x32c8f7[_0x2cc48b(0x42e,0x483)];function _0x2cc48b(_0x4ac488,_0x24d30f){return _0x5c5aa9(_0x4ac488-0x42f,_0x24d30f);}this['rawRenderState']=_0x32c8f7['rawRenderState'],this['framebuffer']=_0x32c8f7['framebuffer'],this['outputTexture']=_0x32c8f7[_0x300d40(0x494,0x499)],this['autoClear']=defaultValue(_0x32c8f7[_0x300d40(0x4a3,0x452)],![]),this['preExecute']=_0x32c8f7['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x32c8f7[_0x300d40(0x465,0x411)]??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x2cc48b(0x4d8,0x4f7)],'pass':Pass$1[_0x2cc48b(0x4cc,0x478)]}));}['createCommand'](_0x30352b){function _0x1ccc17(_0x57473d,_0x376ad7){return _0x22e09d(_0x376ad7-0x38,_0x57473d);}function _0x158e01(_0x1a0c30,_0x36f93a){return _0x22e09d(_0x36f93a-0x1b4,_0x1a0c30);}if(this[_0x158e01(0x349,0x38f)]==='Draw'){const _0x557a77={};_0x557a77['context']=_0x30352b,_0x557a77['geometry']=this['geometry'],_0x557a77['attributeLocations']=this['attributeLocations'],_0x557a77['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x1b4b57=VertexArray$1[_0x158e01(0x2db,0x352)](_0x557a77),_0x169ab0={};_0x169ab0['context']=_0x30352b,_0x169ab0['vertexShaderSource']=this['vertexShaderSource'],_0x169ab0['fragmentShaderSource']=this['fragmentShaderSource'],_0x169ab0[_0x158e01(0x33b,0x2e8)]=this['attributeLocations'];const _0x5e15b0=ShaderProgram['fromCache'](_0x169ab0),_0x4330a0=RenderState['fromCache'](this['rawRenderState']),_0x141c64={};return _0x141c64[_0x1ccc17(0x10d,0x169)]=this,_0x141c64[_0x1ccc17(0x25d,0x24b)]=_0x1b4b57,_0x141c64[_0x1ccc17(0x113,0x162)]=this[_0x1ccc17(0x190,0x162)],_0x141c64[_0x1ccc17(0x245,0x23e)]=Matrix4[_0x158e01(0x3c2,0x3ad)],_0x141c64[_0x1ccc17(0x2b3,0x22d)]=_0x4330a0,_0x141c64[_0x1ccc17(0x1e3,0x1c0)]=_0x5e15b0,_0x141c64[_0x158e01(0x40c,0x3bd)]=this[_0x1ccc17(0x288,0x241)],_0x141c64['uniformMap']=this[_0x1ccc17(0x269,0x238)],_0x141c64[_0x158e01(0x3ec,0x36a)]=Pass$1[_0x1ccc17(0x26c,0x235)],new DrawCommand(_0x141c64);}else{if(this['commandType']===_0x1ccc17(0x25e,0x251)){const _0x40cfac={};return _0x40cfac[_0x1ccc17(0xdd,0x169)]=this,_0x40cfac[_0x1ccc17(0x132,0x197)]=this['fragmentShaderSource'],_0x40cfac['uniformMap']=this['uniformMap'],_0x40cfac['outputTexture']=this[_0x158e01(0x408,0x3ac)],_0x40cfac['persists']=!![],new ComputeCommand(_0x40cfac);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x3bffd1,_0x1fb7e3){function _0x128692(_0x482e99,_0x4d426d){return _0x5c5aa9(_0x482e99-0x2bb,_0x4d426d);}function _0x125ac6(_0x750204,_0x175cd1){return _0x5c5aa9(_0x175cd1-0x452,_0x750204);}this[_0x125ac6(0x522,0x4db)]=_0x1fb7e3,defined(this[_0x125ac6(0x4e9,0x496)])&&(this[_0x128692(0x2ff,0x383)][_0x128692(0x36e,0x3ca)]=VertexArray$1[_0x125ac6(0x4b5,0x490)]({'context':_0x3bffd1,'geometry':this[_0x125ac6(0x499,0x4db)],'attributeLocations':this[_0x128692(0x28f,0x2f8)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x5c5aa9(0x42,0x35)](_0x496dd8){if(!this[_0x3a36d9(0x3e8,0x477)]())return;function _0x196dba(_0x49dc09,_0x12a1d5){return _0x5c5aa9(_0x49dc09-0x198,_0x12a1d5);}function _0x3a36d9(_0xc9b831,_0x2bbece){return _0x5c5aa9(_0x2bbece-0x40e,_0xc9b831);}if(!this[_0x3a36d9(0x46f,0x44d)]||!defined(_0x496dd8))return;!defined(this['commandToExecute'])&&(this[_0x196dba(0x1dc,0x213)]=this['createCommand'](_0x496dd8[_0x196dba(0x1f3,0x1f6)]));defined(this['preExecute'])&&this['preExecute']();if(!_0x496dd8['commandList']){console[_0x196dba(0x266,0x29a)](_0x3a36d9(0x3b0,0x3e3));return;}defined(this[_0x3a36d9(0x362,0x3ee)])&&_0x496dd8['commandList'][_0x3a36d9(0x4ec,0x4b2)](this['clearCommand']),defined(this[_0x196dba(0x1dc,0x1fa)])&&_0x496dd8['commandList']['push'](this[_0x196dba(0x1dc,0x228)]);}[_0x22e09d(0x18f,0x166)](){return![];}['destroy'](){function _0x34b5fc(_0x6a81df,_0x2200df){return _0x5c5aa9(_0x6a81df-0x32a,_0x2200df);}if(defined(this[_0x34b5fc(0x36e,0x2fb)])){var _0x28b8b0;(_0x28b8b0=this['commandToExecute'][_0x34b5fc(0x352,0x392)])===null||_0x28b8b0===void 0x0||_0x28b8b0[_0x34b5fc(0x2fc,0x2f3)](),this['commandToExecute'][_0x34b5fc(0x352,0x32d)]=undefined;}function _0x51f56f(_0x151673,_0x3a881e){return _0x22e09d(_0x151673- -0x252,_0x3a881e);}return destroyObject(this);}}function deepMerge(_0xfb37d8,_0x5427da){function _0x1e318c(_0x3120b9,_0x1b323a){return _0x22e09d(_0x1b323a-0x3fd,_0x3120b9);}if(!_0xfb37d8)return _0x5427da;function _0x113959(_0x4c6690,_0x4e598c){return _0x22e09d(_0x4e598c-0x7e,_0x4c6690);}if(!_0x5427da)return _0xfb37d8;const _0x2a04fe={..._0x5427da},_0x4718d6=_0x2a04fe;for(const _0x68d5cd in _0xfb37d8){if(Object[_0x113959(0x17e,0x19a)]['hasOwnProperty'][_0x113959(0x1ef,0x21f)](_0xfb37d8,_0x68d5cd)){const _0x5f0a4b=_0xfb37d8[_0x68d5cd],_0x56d7d5=_0x5427da[_0x68d5cd];if(Array[_0x1e318c(0x61f,0x599)](_0x5f0a4b)){_0x4718d6[_0x68d5cd]=_0x5f0a4b['slice']();continue;}if(_0x5f0a4b&&typeof _0x5f0a4b==='object'){_0x4718d6[_0x68d5cd]=deepMerge(_0x5f0a4b,_0x56d7d5||{});continue;}_0x5f0a4b!==undefined&&(_0x4718d6[_0x68d5cd]=_0x5f0a4b);}}return _0x4718d6;}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(_0x3cbe29,_0x2865dc,_0x58b289,_0x4125a4,_0x46f57b){this['context']=_0x3cbe29;function _0x4ea4a3(_0x254bb0,_0x4ea522){return _0x22e09d(_0x254bb0- -0x1e5,_0x4ea522);}this[_0x4ea4a3(-0x1d,0x19)]=_0x58b289,this['viewerParameters']=_0x4125a4,this['windData']=_0x2865dc,this['frameRate']=0x3c,this[_0x4ea4a3(-0x95,-0x100)]=0x1;function _0x43bad6(_0x42fb11,_0x24b8dc){return _0x5c5aa9(_0x24b8dc-0x15,_0x42fb11);}const _0x54c47a={};_0x54c47a[_0x43bad6(0x4d,0xb)]=_0x46f57b,_0x54c47a[_0x43bad6(0xfd,0x84)]=0x1,_0x54c47a['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x54c47a),this[_0x4ea4a3(-0x17,-0x5a)](),this[_0x4ea4a3(-0xa9,-0x10b)](),this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x36b033=()=>{function _0x284f30(_0x2f7247,_0x46e8ee){return _0x4ca7(_0x2f7247- -0xad,_0x46e8ee);}function _0x4e7562(_0x50ac54,_0x16dd37){return _0x4ca7(_0x50ac54- -0x6,_0x16dd37);}this[_0x4e7562(0x291,0x21d)]['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this[_0x284f30(0x17b,0x1e3)]=0x3c/Math[_0x284f30(0x1ef,0x1ac)](this[_0x4e7562(0x2dc,0x28e)],0x1));};_0x36b033();const _0x533a81=setInterval(_0x36b033,0x3e8);function _0x351008(_0x819df,_0x1074ab){return _0x5c5aa9(_0x819df-0xc,_0x1074ab);}function _0x52c773(_0x279e6d,_0x46c4f7){return _0x5c5aa9(_0x46c4f7-0x34e,_0x279e6d);}const _0x1870a7=this[_0x351008(-0x22,-0x4c)][_0x351008(0xc2,0x3b)](this);this['destroy']=()=>{clearInterval(_0x533a81),_0x1870a7();};}['createWindTextures'](){function _0x3e2db(_0x55955c,_0x329a91){return _0x5c5aa9(_0x55955c-0x210,_0x329a91);}const _0x36cfd1={};_0x36cfd1[_0x22a227(0x290,0x270)]=TextureMinificationFilter$1['LINEAR'],_0x36cfd1['magnificationFilter']=TextureMagnificationFilter$1[_0x3e2db(0x291,0x292)];function _0x22a227(_0x172184,_0x5733e3){return _0x22e09d(_0x5733e3-0x151,_0x172184);}const _0x13593d={'context':this['context'],'width':this[_0x22a227(0x33e,0x2c3)]['width'],'height':this[_0x3e2db(0x222,0x276)]['height'],'pixelFormat':PixelFormat$1[_0x22a227(0x298,0x299)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options'][_0x22a227(0x281,0x28e)]??![],'sampler':new Sampler$1(_0x36cfd1)};this['windTextures']={'U':new Texture$1({..._0x13593d,'source':{'arrayBufferView':new Float32Array(this[_0x3e2db(0x222,0x1c9)]['u']['array'])}}),'V':new Texture$1({..._0x13593d,'source':{'arrayBufferView':new Float32Array(this[_0x3e2db(0x222,0x266)]['v']['array'])}})};}['createParticlesTextures'](){const _0x1e740e={};function _0x2871c0(_0x95001f,_0x397c96){return _0x5c5aa9(_0x95001f-0x51f,_0x397c96);}_0x1e740e[_0xe722e4(0x5fa,0x5cb)]=TextureMinificationFilter$1[_0x2871c0(0x5d9,0x5c3)],_0x1e740e[_0x2871c0(0x4e0,0x55f)]=TextureMagnificationFilter$1[_0xe722e4(0x6e4,0x6c6)];const _0xeab5b8={'context':this['context'],'width':this[_0xe722e4(0x67d,0x674)][_0xe722e4(0x678,0x6a7)],'height':this['options'][_0x2871c0(0x5ba,0x5ab)],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x2871c0(0x587,0x568)][_0xe722e4(0x6b6,0x6a7)]*this[_0x2871c0(0x587,0x56c)]['particlesTextureSize']*0x4)[_0x2871c0(0x55f,0x547)](0x0)},'sampler':new Sampler$1(_0x1e740e)};function _0xe722e4(_0x76c2d7,_0x3f8ae1){return _0x5c5aa9(_0x3f8ae1-0x60c,_0x76c2d7);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0xeab5b8),'currentParticlesPosition':new Texture$1(_0xeab5b8),'nextParticlesPosition':new Texture$1(_0xeab5b8),'postProcessingPosition':new Texture$1(_0xeab5b8),'particlesSpeed':new Texture$1(_0xeab5b8)};}[_0x22e09d(0x185,0x154)](){function _0x4754a0(_0x8285bf,_0x3d833b){return _0x22e09d(_0x8285bf-0x8f,_0x3d833b);}function _0x24fe6f(_0x3c41dc,_0x5c3262){return _0x5c5aa9(_0x5c3262-0x355,_0x3c41dc);}Object[_0x24fe6f(0x369,0x36d)](this['particlesTextures'])[_0x24fe6f(0x37b,0x392)](_0x1673ea=>_0x1673ea['destroy']());}[_0x5c5aa9(-0x1b,-0x39)](){function _0x3f1cd4(_0xccacca,_0x35e670){return _0x5c5aa9(_0x35e670-0x461,_0xccacca);}function _0x30c972(_0x48f641,_0x1dde66){return _0x5c5aa9(_0x1dde66- -0xa,_0x48f641);}this[_0x30c972(0x81,0x90)]={'calculateSpeed':new CustomPrimitive({'commandType':_0x30c972(0x9d,0xaf),'uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this[_0x3f1cd4(0x3f3,0x473)]['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x3f1cd4(0x4f1,0x473)]['v'][_0x30c972(0x99,0x47)],this['windData']['v'][_0x3f1cd4(0x4f0,0x4c5)]),'speedRange':()=>new Cartesian2$1(this['windData'][_0x3f1cd4(0x576,0x500)][_0x3f1cd4(0x522,0x4b2)],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures'][_0x30c972(-0x36,0x39)],'speedScaleFactor':()=>{function _0x367cde(_0x52463f,_0x3d632f){return _0x3f1cd4(_0x3d632f,_0x52463f- -0x226);}function _0x8eaa2d(_0x451551,_0x158637){return _0x30c972(_0x451551,_0x158637-0x479);}return(this[_0x367cde(0x2b8,0x2f7)]['pixelSize']+0x32)*this['options'][_0x367cde(0x2ad,0x2da)];},'frameRateAdjustment':()=>this[_0x30c972(0x13,-0x1a)],'dimension':()=>new Cartesian2$1(this['windData'][_0x30c972(0x19,0x84)],this[_0x30c972(0x3,0x8)][_0x30c972(0x86,0xb8)]),'minimum':()=>new Cartesian2$1(this[_0x3f1cd4(0x491,0x473)]['bounds'][_0x30c972(0x149,0xbe)],this['windData']['bounds'][_0x3f1cd4(0x419,0x494)]),'maximum':()=>new Cartesian2$1(this[_0x30c972(-0x6,0x8)]['bounds'][_0x3f1cd4(0x4ce,0x440)],this['windData'][_0x30c972(-0x53,-0x53)]['north'])},'fragmentShaderSource':ShaderManager[_0x30c972(0xd6,0xaa)](),'outputTexture':this['particlesTextures'][_0x3f1cd4(0x488,0x504)],'preExecute':()=>{const _0x47b9ca=this[_0x3f236b(0x16f,0x17c)]['previousParticlesPosition'];this['particlesTextures']['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'];function _0x3db047(_0x591532,_0xef2549){return _0x30c972(_0x591532,_0xef2549- -0x143);}function _0x3f236b(_0x42ebf4,_0x3f05f5){return _0x3f1cd4(_0x3f05f5,_0x42ebf4- -0x3b8);}this[_0x3f236b(0x16f,0x1d8)]['currentParticlesPosition']=this['particlesTextures'][_0x3db047(-0x116,-0xba)],this['particlesTextures']['postProcessingPosition']=_0x47b9ca,this['primitives'][_0x3f236b(0x13d,0x10a)]['commandToExecute']&&(this['primitives'][_0x3db047(-0x64,-0xb9)]['commandToExecute'][_0x3f236b(0x141,0x170)]=this['particlesTextures'][_0x3db047(-0xe1,-0xaa)]);},'isDynamic':()=>this[_0x3f1cd4(0x47e,0x4c9)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':_0x30c972(0xb3,0xaf),'uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x3f1cd4(0x508,0x4a4)],'particlesSpeed':()=>this[_0x3f1cd4(0x53a,0x527)][_0x3f1cd4(0x53b,0x504)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x30c972(0x106,0xbc)][_0x3f1cd4(0x488,0x4ad)],'preExecute':()=>{function _0x32b210(_0x337c49,_0x57b390){return _0x30c972(_0x337c49,_0x57b390-0xe1);}function _0x4f9b6b(_0x531efa,_0xe359e6){return _0x30c972(_0x531efa,_0xe359e6-0x1b7);}this[_0x32b210(0x176,0x171)]['updatePosition'][_0x32b210(0xe9,0x11b)]&&(this[_0x4f9b6b(0x1ba,0x247)][_0x4f9b6b(0x142,0x185)][_0x32b210(0xa8,0x11b)][_0x4f9b6b(0x263,0x245)]=this['particlesTextures'][_0x4f9b6b(0x1de,0x1f9)]);},'isDynamic':()=>this['options'][_0x3f1cd4(0x46d,0x4ee)]}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x3f1cd4(0x4aa,0x51a),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x30c972(0x41,0x42)],'particlesSpeed':()=>this['particlesTextures'][_0x30c972(0x7f,0x99)],'lonRange':()=>this['viewerParameters'][_0x30c972(0x62,-0x2c)],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0x3f1cd4(0x4db,0x473)][_0x3f1cd4(0x45b,0x418)][_0x30c972(0x3c,0xbe)],this[_0x3f1cd4(0x42a,0x473)]['bounds'][_0x30c972(0x2a,-0x2b)]),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this['windData'][_0x30c972(-0x1c,-0x53)][_0x3f1cd4(0x3e5,0x444)]),'randomCoefficient':function(){function _0x6c36bf(_0x24770b,_0x71df8c){return _0x3f1cd4(_0x71df8c,_0x24770b- -0x521);}return Math[_0x6c36bf(-0x9f,-0xd8)]();},'dropRate':()=>this['options'][_0x30c972(0x9,0x7b)],'dropRateBump':()=>this['options'][_0x30c972(-0x58,0x28)],'useViewerBounds':()=>this['options'][_0x30c972(-0x5b,0x21)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures'][_0x3f1cd4(0x47e,0x4f4)],'preExecute':()=>{function _0x175414(_0x2f4b08,_0x24dc48){return _0x30c972(_0x2f4b08,_0x24dc48-0x318);}function _0x3b1805(_0x5f59aa,_0x575b3c){return _0x30c972(_0x5f59aa,_0x575b3c-0x5ef);}this[_0x175414(0x367,0x3a8)]['postProcessingPosition'][_0x3b1805(0x627,0x629)]&&(this[_0x175414(0x327,0x3a8)]['postProcessingPosition'][_0x3b1805(0x6b6,0x629)][_0x175414(0x31b,0x3a6)]=this[_0x175414(0x3e6,0x3d4)]['postProcessingPosition']);},'isDynamic':()=>this[_0x30c972(-0x1b,0x5e)]['dynamic']})};}['reCreateWindTextures'](){function _0x29faa0(_0x51221c,_0x53dcb8){return _0x5c5aa9(_0x51221c-0x305,_0x53dcb8);}this['windTextures']['U']['destroy'](),this['windTextures']['V'][_0x29faa0(0x2d7,0x2c1)](),this['createWindTextures']();}['updateWindData'](_0x57d07b){this[_0x3bf173(-0x51,-0x4a)]=_0x57d07b;function _0x3bf173(_0x394e41,_0x527d64){return _0x5c5aa9(_0x527d64- -0x5c,_0x394e41);}this['reCreateWindTextures']();}['updateOptions'](_0x1b6d93){const _0x34631f=_0x1b6d93[_0x3bd712(0x528,0x599)]!==undefined&&_0x1b6d93[_0x3bd712(0x53c,0x599)]!==this['options'][_0xc78536(0x26d,0x2e2)];function _0x3bd712(_0x4e7346,_0x2ec323){return _0x5c5aa9(_0x2ec323-0x5bc,_0x4e7346);}function _0xc78536(_0x1c29b5,_0x2857f0){return _0x5c5aa9(_0x1c29b5-0x290,_0x2857f0);}this['options']=deepMerge(_0x1b6d93,this['options']),_0x34631f&&this['reCreateWindTextures']();}['processWindData'](_0x39a5d3){const {array:_0x7a5b53}=_0x39a5d3;function _0x3380ff(_0x43b7d5,_0xb9bda0){return _0x5c5aa9(_0x43b7d5- -0xce,_0xb9bda0);}let {min:_0x367415,max:_0x4dfc9c}=_0x39a5d3;const _0x59245f=new Float32Array(_0x7a5b53['length']);_0x367415===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x367415=Math['min'](..._0x7a5b53));_0x4dfc9c===undefined&&(console[_0x50b85a(0x16e,0x101)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x4dfc9c=Math[_0x3380ff(-0x6a,-0xf6)](..._0x7a5b53));function _0x50b85a(_0x42225e,_0x25681b){return _0x5c5aa9(_0x25681b-0x33,_0x42225e);}const _0x2d12a3=Math['max'](Math['abs'](_0x367415),Math['abs'](_0x4dfc9c));for(let _0x55cb9c=0x0;_0x55cb9c<_0x7a5b53['length'];_0x55cb9c++){const _0x4b2d76=_0x7a5b53[_0x55cb9c]/_0x2d12a3;_0x59245f[_0x55cb9c]=_0x4b2d76;}return _0x59245f;}['destroy'](){Object[_0x117c18(0x630,0x60e)](this['windTextures'])['forEach'](_0x58f7dd=>_0x58f7dd[_0x117c18(0x5d8,0x5c8)]()),Object[_0x117c18(0x5d5,0x60e)](this['particlesTextures'])[_0x3a8e81(0x3e5,0x39f)](_0x249b67=>_0x249b67[_0x3a8e81(0x37a,0x36b)]()),Object['values'](this[_0x3a8e81(0x442,0x44c)])[_0x117c18(0x5c7,0x633)](_0x4349af=>_0x4349af[_0x3a8e81(0x37a,0x331)]());function _0x3a8e81(_0x5a2d96,_0x55acec){return _0x5c5aa9(_0x5a2d96-0x3a8,_0x55acec);}function _0x117c18(_0x3144e6,_0x70ebf9){return _0x22e09d(_0x70ebf9-0x496,_0x3144e6);}this['frameRateMonitor'][_0x3a8e81(0x37a,0x378)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x22e09d(0x1ae,0x122)];class WindParticlesRendering{constructor(_0x4d9895,_0x583828,_0x43f0b9,_0x5a0953){this['context']=_0x4d9895,this[_0x2cca87(0x148,0x178)]=_0x583828;function _0x2cca87(_0x3547e8,_0x13c99c){return _0x5c5aa9(_0x13c99c-0x110,_0x3547e8);}function _0xb2cc35(_0x3fa76e,_0x5a102f){return _0x5c5aa9(_0x5a102f-0x431,_0x3fa76e);}this[_0xb2cc35(0x462,0x4ae)]=_0x43f0b9,this['computing']=_0x5a0953,(typeof this['options'][_0x2cca87(0x1b5,0x1ab)]!==_0xb2cc35(0x47f,0x469)||this['options']['particlesTextureSize']<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options']['particlesTextureSize']=0x100),this['colorTable']=this['createColorTableTexture'](),this[_0xb2cc35(0x436,0x4aa)]=this['createRenderingTextures'](),this['framebuffers']=this['createRenderingFramebuffers'](),this['primitives']=this['createPrimitives']();}[_0x5c5aa9(0x83,0xb8)](){const _0x1ec1f0={};_0x1ec1f0['context']=this['context'];function _0x1c14b5(_0x10c55c,_0x376556){return _0x22e09d(_0x10c55c-0x271,_0x376556);}_0x1ec1f0['width']=this['context']['drawingBufferWidth'];function _0x4c0f3b(_0x3730bc,_0x405110){return _0x5c5aa9(_0x3730bc-0x149,_0x405110);}_0x1ec1f0[_0x1c14b5(0x493,0x518)]=this['context']['drawingBufferHeight'],_0x1ec1f0['pixelFormat']=PixelFormat['RGBA'],_0x1ec1f0['pixelDatatype']=PixelDatatype[_0x4c0f3b(0x12b,0xfb)];const _0x5e7eeb=_0x1ec1f0,_0x4c14e6={};_0x4c14e6['context']=this[_0x1c14b5(0x42c,0x48e)],_0x4c14e6[_0x1c14b5(0x45f,0x3f7)]=this[_0x4c0f3b(0x1a4,0x132)]['drawingBufferWidth'],_0x4c14e6['height']=this['context'][_0x4c0f3b(0x1b0,0x1f7)],_0x4c14e6['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x4c14e6[_0x4c0f3b(0x1d5,0x19a)]=PixelDatatype['UNSIGNED_INT'];const _0x551f47=_0x4c14e6;return{'segmentsColor':new Texture(_0x5e7eeb),'segmentsDepth':new Texture(_0x551f47)};}['createRenderingFramebuffers'](){const _0x1ae8a6={};_0x1ae8a6['context']=this[_0x1d515c(-0x167,-0xe1)];function _0x4ec52a(_0x1541d5,_0x5d380c){return _0x22e09d(_0x1541d5- -0x12b,_0x5d380c);}_0x1ae8a6['colorTextures']=[this['textures']['segmentsColor']];function _0x1d515c(_0x23c5cf,_0x5977c3){return _0x5c5aa9(_0x5977c3- -0x13c,_0x23c5cf);}return _0x1ae8a6[_0x4ec52a(0x4b,-0x7)]=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x1ae8a6)};}['destoryRenderingFramebuffers'](){function _0xcdcd11(_0x2ba07f,_0x49b7dd){return _0x5c5aa9(_0x2ba07f-0x12e,_0x49b7dd);}function _0x2d9f71(_0x4427ef,_0x3c6d01){return _0x5c5aa9(_0x4427ef-0x497,_0x3c6d01);}Object['values'](this[_0x2d9f71(0x4ef,0x55c)])[_0x2d9f71(0x4d4,0x495)](_0x3b761c=>{_0x3b761c['destroy']();});}['createColorTableTexture'](){function _0x6d9cd8(_0x57282c,_0x2d5d5e){return _0x5c5aa9(_0x57282c- -0x8,_0x2d5d5e);}const _0x337f6e=new Float32Array(this[_0x6d9cd8(0x60,0xe7)][_0x6d9cd8(0x99,0x124)][_0x1b2428(0x252,0x1d9)](_0x90c30c=>{function _0x409c99(_0x4b3c47,_0x5e8e96){return _0x6d9cd8(_0x5e8e96-0x485,_0x4b3c47);}const _0x2e4217=Color$1['fromCssColorString'](_0x90c30c);return[_0x2e4217['red'],_0x2e4217['green'],_0x2e4217['blue'],_0x2e4217[_0x409c99(0x479,0x431)]];})),_0x4bd6cb={};_0x4bd6cb[_0x1b2428(0x21a,0x199)]=TextureMinificationFilter['LINEAR'];function _0x1b2428(_0x53a35a,_0x59c517){return _0x5c5aa9(_0x53a35a-0x25b,_0x59c517);}return _0x4bd6cb['magnificationFilter']=TextureMagnificationFilter[_0x6d9cd8(0x79,0xfa)],_0x4bd6cb[_0x1b2428(0x231,0x295)]=TextureWrap['CLAMP_TO_EDGE'],_0x4bd6cb[_0x1b2428(0x241,0x1cc)]=TextureWrap[_0x1b2428(0x2dd,0x250)],new Texture({'context':this['context'],'width':this['options'][_0x1b2428(0x2fc,0x293)]['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype[_0x6d9cd8(0x17,0x7f)],'sampler':new Sampler(_0x4bd6cb),'source':{'width':this['options'][_0x1b2428(0x2fc,0x2a8)]['length'],'height':0x1,'arrayBufferView':_0x337f6e}});}[_0x22e09d(0x137,0xfe)](){const _0x174a4b=0x4;function _0xf728a5(_0x18562a,_0x551af2){return _0x22e09d(_0x18562a-0x158,_0x551af2);}const _0xd558f5=this[_0x3ba1eb(0x5b,-0x1)]['particlesTextureSize'];let _0x548ca0=[];for(let _0xafde50=0x0;_0xafde50<_0xd558f5;_0xafde50++){for(let _0x535728=0x0;_0x535728<_0xd558f5;_0x535728++){for(let _0x5a5693=0x0;_0x5a5693<_0x174a4b;_0x5a5693++){_0x548ca0['push'](_0xafde50/_0xd558f5),_0x548ca0[_0x3ba1eb(0x97,0xed)](_0x535728/_0xd558f5);}}}_0x548ca0=new Float32Array(_0x548ca0);const _0x3fe39b=this[_0xf728a5(0x320,0x334)][_0xf728a5(0x353,0x320)]**0x2;let _0x430df4=[];for(let _0x47222f=0x0;_0x47222f<_0x3fe39b;_0x47222f++){_0x430df4[_0xf728a5(0x35c,0x301)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x430df4=new Float32Array(_0x430df4);let _0x25ecf7=[];for(let _0xb0b516=0x0,_0x4557d0=0x0;_0xb0b516<_0x3fe39b;_0xb0b516++){_0x25ecf7['push'](_0x4557d0+0x0,_0x4557d0+0x1,_0x4557d0+0x2,_0x4557d0+0x2,_0x4557d0+0x1,_0x4557d0+0x3),_0x4557d0+=_0x174a4b;}_0x25ecf7=new Uint32Array(_0x25ecf7);const _0x5fb2b5={};_0x5fb2b5['componentDatatype']=ComponentDatatype['FLOAT'],_0x5fb2b5[_0x3ba1eb(-0x4,0x29)]=0x2,_0x5fb2b5['values']=_0x548ca0;const _0xe970ee={};function _0x3ba1eb(_0x1689b2,_0x44e907){return _0x22e09d(_0x1689b2- -0x16d,_0x44e907);}_0xe970ee['componentDatatype']=ComponentDatatype['FLOAT'],_0xe970ee['componentsPerAttribute']=0x3,_0xe970ee['values']=_0x430df4;const _0x4a34a1=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x5fb2b5),'normal':new GeometryAttribute(_0xe970ee)}),'indices':_0x25ecf7});return _0x4a34a1;}[_0x22e09d(0x1b3,0x1e4)](_0x58e19c){function _0x42b295(_0x5c91c3,_0x1accfc){return _0x5c5aa9(_0x1accfc-0x447,_0x5c91c3);}const _0x2cbdad={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x58e19c};return Appearance[_0x42b295(0x54b,0x4e3)](!![],![],_0x2cbdad);}['createPrimitives'](){const _0x325ddb={};_0x325ddb['st']=0x0;function _0x55f7cd(_0x61d87c,_0x375347){return _0x5c5aa9(_0x61d87c-0x116,_0x375347);}_0x325ddb[_0x469093(0x5e1,0x655)]=0x1;const _0x4ddc7a={};_0x4ddc7a['enabled']=!![];const _0x3c7c8c={};_0x3c7c8c[_0x469093(0x5d3,0x622)]=!![],_0x3c7c8c['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x3c7c8c['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x3c7c8c['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x3ffdf2={};_0x3ffdf2[_0x469093(0x612,0x5b8)]=undefined,_0x3ffdf2['depthTest']=_0x4ddc7a,_0x3ffdf2[_0x55f7cd(0x10e,0xb6)]=!![],_0x3ffdf2['blending']=_0x3c7c8c;const _0x32b634=new CustomPrimitive({'commandType':_0x469093(0x62e,0x64c),'attributeLocations':_0x325ddb,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0x55f7cd(0x161,0x14a)],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures'][_0x469093(0x5da,0x5ea)],'currentParticlesPosition':()=>this[_0x55f7cd(0x129,0x141)][_0x55f7cd(0x1dc,0x267)]['currentParticlesPosition'],'postProcessingPosition':()=>this['computing'][_0x469093(0x693,0x630)]['postProcessingPosition'],'particlesSpeed':()=>this[_0x469093(0x5e0,0x5fb)]['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this['computing'][_0x469093(0x5bd,0x5b4)],'colorTable':()=>this[_0x469093(0x658,0x6e3)],'domain':()=>{var _0x4bdfcf,_0x472cf7;const _0x22aad8=new Cartesian2(((_0x4bdfcf=this['options'][_0x74cae6(-0xa9,-0x114)])===null||_0x4bdfcf===void 0x0?void 0x0:_0x4bdfcf['min'])??this[_0x15b2bb(0x501,0x568)]['windData']['speed'][_0x74cae6(-0x4d,-0x72)],((_0x472cf7=this[_0x74cae6(-0x36,-0xe)]['domain'])===null||_0x472cf7===void 0x0?void 0x0:_0x472cf7[_0x15b2bb(0x548,0x5b9)])??this[_0x74cae6(-0x8b,-0x84)]['windData']['speed'][_0x15b2bb(0x56c,0x5b9)]);function _0x15b2bb(_0x9e48c0,_0x24dba0){return _0x55f7cd(_0x24dba0-0x43f,_0x9e48c0);}function _0x74cae6(_0x2649c6,_0x266e5e){return _0x469093(_0x2649c6- -0x66b,_0x266e5e);}return _0x22aad8;},'displayRange':()=>{var _0x3ed963,_0x4f2ea7;function _0x17fcfc(_0x30c2f5,_0x47c131){return _0x469093(_0x30c2f5- -0x31,_0x47c131);}const _0x396f7c=new Cartesian2(((_0x3ed963=this['options']['displayRange'])===null||_0x3ed963===void 0x0?void 0x0:_0x3ed963[_0x17fcfc(0x5ed,0x659)])??this[_0x17fcfc(0x5af,0x5c3)][_0x2b2ac6(0x2e,0x3b)]['speed'][_0x2b2ac6(0x6d,0xf9)],((_0x4f2ea7=this['options'][_0x17fcfc(0x5f3,0x632)])===null||_0x4f2ea7===void 0x0?void 0x0:_0x4f2ea7['max'])??this['computing']['windData']['speed'][_0x17fcfc(0x600,0x60e)]);function _0x2b2ac6(_0x2399e6,_0x3230da){return _0x55f7cd(_0x2399e6- -0xfa,_0x3230da);}return _0x396f7c;},'particleHeight':()=>this['options'][_0x55f7cd(0x19c,0x133)]||0x0,'aspect':()=>this[_0x469093(0x628,0x656)]['drawingBufferWidth']/this['context'][_0x469093(0x634,0x665)],'pixelSize':()=>this[_0x55f7cd(0x193,0x1bf)]['pixelSize'],'lineWidth':()=>{const _0x35fe01={};function _0x15042d(_0x269d7e,_0xeded46){return _0x469093(_0xeded46- -0x1aa,_0x269d7e);}_0x35fe01[_0x15042d(0x455,0x474)]=0x1,_0x35fe01['max']=0x2;function _0x58e5e9(_0x6eb271,_0x4f7ce5){return _0x469093(_0x4f7ce5- -0x214,_0x6eb271);}const _0x193e8a=this['options'][_0x15042d(0x445,0x45e)]||_0x35fe01;return new Cartesian2(_0x193e8a['min'],_0x193e8a[_0x15042d(0x464,0x487)]);},'lineLength':()=>{const _0x1729cf={};function _0x5ea6dd(_0x12d7d6,_0x28a8dd){return _0x55f7cd(_0x12d7d6-0x3e2,_0x28a8dd);}_0x1729cf[_0x47fe22(0x4aa,0x4a0)]=0x14,_0x1729cf['max']=0x64;const _0x4b2b9e=this['options']['lineLength']||_0x1729cf;function _0x47fe22(_0x14d558,_0x54a680){return _0x55f7cd(_0x54a680-0x339,_0x14d558);}return new Cartesian2(_0x4b2b9e[_0x5ea6dd(0x549,0x570)],_0x4b2b9e['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x55f7cd(0x194,0x154)],'segmentsDepthTexture':()=>this[_0x469093(0x646,0x6a4)][_0x55f7cd(0x1c7,0x1d5)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x469093(0x627,0x667)](),'rawRenderState':this['createRawRenderState'](_0x3ffdf2)});function _0x469093(_0x25bcdf,_0x135fb5){return _0x5c5aa9(_0x25bcdf-0x5cd,_0x135fb5);}const _0x4ed9b4={};return _0x4ed9b4[_0x55f7cd(0x136,0x182)]=_0x32b634,_0x4ed9b4;}[_0x22e09d(0x15e,0xed)](){const _0x18fbdf=this['createSegmentsGeometry']();this['primitives']['segments'][_0x3de40d(0x40a,0x485)]=_0x18fbdf;const _0x5bc836={};_0x5bc836['context']=this['context'],_0x5bc836[_0x32c300(0x526,0x533)]=_0x18fbdf,_0x5bc836['attributeLocations']=this[_0x3de40d(0x4e7,0x496)]['segments']['attributeLocations'];function _0x32c300(_0x5509e9,_0x2c9306){return _0x22e09d(_0x5509e9-0x33d,_0x2c9306);}function _0x3de40d(_0x1c3c6b,_0x26e53c){return _0x22e09d(_0x26e53c-0x29c,_0x1c3c6b);}_0x5bc836[_0x32c300(0x54f,0x599)]=BufferUsage['STATIC_DRAW'];const _0x475fba=VertexArray['fromGeometry'](_0x5bc836);this[_0x32c300(0x537,0x569)]['segments'][_0x32c300(0x4e1,0x4a6)]&&(this['primitives'][_0x32c300(0x4bd,0x44b)]['commandToExecute'][_0x32c300(0x550,0x574)]=_0x475fba);}[_0x5c5aa9(0x50,-0x25)](){function _0x2cead3(_0x30f645,_0x244099){return _0x5c5aa9(_0x30f645-0x4c2,_0x244099);}this['colorTable']['destroy'](),this['colorTable']=this[_0x2cead3(0x589,0x5c9)]();}['updateOptions'](_0x1d7278){const _0x35afc5=_0x1d7278['colors']&&JSON[_0x1066ae(0x2f,0x5)](_0x1d7278['colors'])!==JSON['stringify'](this['options']['colors']);this['options']=deepMerge(_0x1d7278,this[_0x13968a(-0xd2,-0x10b)]);function _0x1066ae(_0x38b5e0,_0x389b5b){return _0x22e09d(_0x389b5b- -0x149,_0x38b5e0);}function _0x13968a(_0x7af2a2,_0xe29c1d){return _0x5c5aa9(_0xe29c1d- -0x173,_0x7af2a2);}_0x35afc5&&this['onColorTableChange']();}[_0x5c5aa9(-0x2e,-0x4c)](){Object['values'](this['framebuffers'])[_0x49b0b4(0x54d,0x53e)](_0x118ed9=>{_0x118ed9['destroy']();});function _0x49b0b4(_0xabc95d,_0xcdd14f){return _0x22e09d(_0xcdd14f-0x3a1,_0xabc95d);}Object['values'](this['primitives'])['forEach'](_0x514422=>{_0x514422['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x54d30b,_0x136fe4,_0x11d026,_0x2b7b0f,_0x5f40d9){this['context']=_0x54d30b,this[_0x38f69b(0x5dc,0x5a4)]=_0x11d026;function _0x38f69b(_0x1b4a7a,_0x1550d8){return _0x5c5aa9(_0x1b4a7a-0x574,_0x1550d8);}function _0x4c6707(_0x40517c,_0x429b62){return _0x5c5aa9(_0x40517c- -0xcd,_0x429b62);}this['viewerParameters']=_0x2b7b0f,this[_0x4c6707(-0xba,-0x7c)]=new WindParticlesComputing(_0x54d30b,_0x136fe4,_0x11d026,_0x2b7b0f,_0x5f40d9),this['rendering']=new WindParticlesRendering(_0x54d30b,_0x11d026,_0x2b7b0f,this['computing']),this['clearFramebuffers']();}[_0x5c5aa9(0x46,0x9)](){const _0x1930b4=[this['computing']['primitives']['calculateSpeed'],this[_0x4aa2a8(-0xed,-0xb5)][_0x481118(0x653,0x6b0)]['updatePosition'],this['computing'][_0x481118(0x653,0x6b2)][_0x4aa2a8(-0x6d,-0x75)],this[_0x4aa2a8(-0x117,-0xde)][_0x481118(0x653,0x66c)][_0x481118(0x5d9,0x664)]];function _0x4aa2a8(_0x29b400,_0x2c0d75){return _0x22e09d(_0x29b400- -0x260,_0x2c0d75);}function _0x481118(_0x37c74a,_0x41388c){return _0x5c5aa9(_0x37c74a-0x5b9,_0x41388c);}return _0x1930b4;}[_0x5c5aa9(0x8,-0x24)](){const _0x2e8218=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0xbd9d5c(0x50b,0x4ca)]});function _0xbd9d5c(_0x575112,_0x4dfa32){return _0x5c5aa9(_0x4dfa32-0x42d,_0x575112);}function _0x20730b(_0x4ed38d,_0x283124){return _0x5c5aa9(_0x283124-0x107,_0x4ed38d);}Object[_0xbd9d5c(0x4fd,0x4e9)](this['rendering'][_0x20730b(0x110,0x15f)])[_0x20730b(0x177,0x144)](_0x5ab14c=>{function _0x1c90df(_0x44dd0f,_0x48cc26){return _0xbd9d5c(_0x48cc26,_0x44dd0f-0x19e);}function _0x4108ce(_0x30d97d,_0x23dff8){return _0xbd9d5c(_0x23dff8,_0x30d97d- -0x31c);}_0x2e8218[_0x1c90df(0x674,0x5e8)]=this['rendering'][_0x4108ce(0x169,0x102)][_0x5ab14c],_0x2e8218['execute'](this[_0x1c90df(0x626,0x67d)]);});}[_0x5c5aa9(-0x4b,-0x56)](_0x3c0f30){let _0x4d8e62=![];_0x3c0f30['particlesTextureSize']&&this[_0xbd1b1c(0x50c,0x4a0)][_0xbd1b1c(0x4c6,0x4d3)]!==_0x3c0f30['particlesTextureSize']&&(_0x4d8e62=!![]);function _0xbd1b1c(_0x498070,_0x1c7be6){return _0x22e09d(_0x1c7be6-0x2d8,_0x498070);}const _0x3145b2=deepMerge(_0x3c0f30,this['options']);if(_0x3145b2['particlesTextureSize']<0x1)throw new Error(_0x3d5b99(0xe1,0x6e));this['options']=_0x3145b2;function _0x3d5b99(_0x3f3c0d,_0x222450){return _0x5c5aa9(_0x222450-0x4a,_0x3f3c0d);}this[_0xbd1b1c(0x3d2,0x421)][_0xbd1b1c(0x412,0x465)](_0x3c0f30),this['computing']['updateOptions'](_0x3c0f30),_0x4d8e62&&(this['computing']['destroyParticlesTextures'](),this['computing']['createParticlesTextures'](),this['rendering']['onParticlesTextureSizeChange']());}[_0x22e09d(0x191,0x119)](_0x13a5ae){this['viewerParameters']=_0x13a5ae;function _0x46ba08(_0x21d9fd,_0x7d107d){return _0x5c5aa9(_0x7d107d-0x12f,_0x21d9fd);}this['computing']['viewerParameters']=_0x13a5ae,this[_0x46ba08(0xbc,0x118)]['viewerParameters']=_0x13a5ae;}['destroy'](){function _0x55ca43(_0x322d94,_0x3595a4){return _0x5c5aa9(_0x3595a4-0x4f2,_0x322d94);}this['computing']['destroy'](),this[_0x55ca43(0x451,0x4db)]['destroy']();}}const Cesium$1=mars3d__namespace[_0x5c5aa9(0x4e,0x87)],BaseLayer$1=mars3d__namespace[_0x22e09d(0x215,0x256)]['BaseLayer'],_0x2eedc5={};_0x2eedc5['min']=0x1,_0x2eedc5[_0x22e09d(0x1c4,0x206)]=0x2;const _0x7d9b3f={};_0x7d9b3f['min']=0x14,_0x7d9b3f['max']=0x64;const _0x34401c={};_0x34401c['particlesTextureSize']=0x64,_0x34401c['fixedHeight']=0x0,_0x34401c[_0x22e09d(0x19b,0x19d)]=_0x2eedc5,_0x34401c['lineLength']=_0x7d9b3f;function _0x22e09d(_0x59ffc2,_0x4b00e8){return _0x4ca7(_0x59ffc2- -0xd8,_0x4b00e8);}_0x34401c[_0x5c5aa9(0x72,0x6c)]=0x1,_0x34401c['dropRate']=0.003,_0x34401c[_0x22e09d(0x192,0x16a)]=0.001,_0x34401c['colors']=['rgb(206,255,255)'],_0x34401c['flipY']=![],_0x34401c['dynamic']=!![];const DEF_OPTIONS=_0x34401c;class WindLayer extends BaseLayer$1{constructor(_0x2ce726={}){_0x2ce726={...DEF_OPTIONS,..._0x2ce726},super(_0x2ce726),this['_setOptionsHook'](_0x2ce726,_0x2ce726);}get[_0x5c5aa9(0xb5,0xcc)](){function _0x4ae8d3(_0x335745,_0x16464a){return _0x22e09d(_0x16464a-0x316,_0x335745);}return this[_0x4ae8d3(0x58d,0x510)];}get[_0x5c5aa9(-0x47,-0x30)](){function _0x25a907(_0x5e78c7,_0x5274b0){return _0x5c5aa9(_0x5e78c7-0x564,_0x5274b0);}function _0x263bda(_0xf5a099,_0x128346){return _0x22e09d(_0xf5a099- -0x278,_0x128346);}return this[_0x25a907(0x5cc,0x551)][_0x263bda(-0x15f,-0x1be)];}set[_0x5c5aa9(-0x47,-0x85)](_0xbd9510){function _0x131d2f(_0x462d2a,_0x241374){return _0x22e09d(_0x462d2a-0x351,_0x241374);}this['options'][_0x131d2f(0x46a,0x4d6)]=_0xbd9510,this['setData'](_0xbd9510);}get[_0x22e09d(0x201,0x240)](){function _0x11f539(_0x58b966,_0x1b6107){return _0x5c5aa9(_0x58b966-0x2f9,_0x1b6107);}return this['options'][_0x11f539(0x39a,0x40e)];}set['colors'](_0x2fbb02){function _0x49480a(_0xc7f11e,_0x3eb67f){return _0x5c5aa9(_0x3eb67f- -0x14,_0xc7f11e);}this[_0x49480a(0xe1,0x54)]['colors']=_0x2fbb02;const _0x5cd1fa={};_0x5cd1fa[_0x49480a(0xfe,0x8d)]=_0x2fbb02;function _0x162262(_0x151063,_0x171ac5){return _0x5c5aa9(_0x171ac5-0x4ee,_0x151063);}this[_0x49480a(0xe1,0x5f)](this['options'],_0x5cd1fa);}['_mountedHook'](){}['_addedHook'](){this[_0x5f429a(0x235,0x2c1)]=this[_0x17932f(0x166,0x1e6)][_0x17932f(0x273,0x21a)],this[_0x5f429a(0x1f2,0x257)]=this[_0x5f429a(0x201,0x1a2)]['camera'];this[_0x5f429a(0x2a7,0x24c)]['data']&&this['setData'](this['options']['data']);if(!this['windData'])return;function _0x5f429a(_0xff4a5e,_0x327dbd){return _0x22e09d(_0xff4a5e-0xdf,_0x327dbd);}this[_0x5f429a(0x2bc,0x339)]={'lonRange':new Cesium$1[(_0x17932f(0x30d,0x291))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x5f429a(0x235,0x237)]['mode']},this['updateViewerParameters'](),this[_0x5f429a(0x2ed,0x358)]=new WindParticleSystem(this['scene']['context'],this['windData'],this[_0x17932f(0x292,0x28c)],this['viewerParameters'],this['scene']);function _0x17932f(_0x498e85,_0x579a15){return _0x5c5aa9(_0x579a15-0x224,_0x498e85);}this[_0x5f429a(0x2d9,0x324)]=this['particleSystem']['getPrimitives'](),this[_0x5f429a(0x2d9,0x290)]['forEach'](_0x7ad6d5=>{function _0x3f4002(_0x54e940,_0x218d73){return _0x17932f(_0x218d73,_0x54e940-0x6b);}function _0x94210d(_0x42d1dd,_0xb60eba){return _0x5f429a(_0xb60eba- -0x197,_0x42d1dd);}this['scene'][_0x94210d(0x1b6,0x142)][_0x94210d(0x123,0x132)](_0x7ad6d5);}),this['camera']['percentageChanged']=0.01,this['camera'][_0x5f429a(0x24b,0x2b9)]['addEventListener'](this['updateViewerParameters'][_0x5f429a(0x2f5,0x291)](this)),this['scene']['morphComplete']['addEventListener'](this['updateViewerParameters'][_0x5f429a(0x2f5,0x28a)](this)),window[_0x17932f(0x2b5,0x2f3)]('resize',this['updateViewerParameters']['bind'](this));}[_0x22e09d(0x194,0x1a5)](){this['camera']['changed']['removeEventListener'](this['updateViewerParameters']['bind'](this)),this['scene'][_0x75f20e(0x5f5,0x5c6)][_0x75f20e(0x5aa,0x559)](this[_0x75f20e(0x5c5,0x573)][_0x43c4eb(0x354,0x340)](this)),window[_0x43c4eb(0x298,0x2d1)]('resize',this[_0x43c4eb(0x263,0x2ec)][_0x43c4eb(0x342,0x340)](this));function _0x43c4eb(_0x2c12d5,_0xac0137){return _0x5c5aa9(_0xac0137-0x28a,_0x2c12d5);}function _0x75f20e(_0x1df3b2,_0x49cf1c){return _0x5c5aa9(_0x1df3b2-0x563,_0x49cf1c);}this['primitives']&&(this[_0x43c4eb(0x33e,0x324)]['forEach'](_0x3f4674=>{function _0x2ec66c(_0x2ba703,_0x4ff1ad){return _0x43c4eb(_0x4ff1ad,_0x2ba703-0x15f);}function _0x4481ba(_0x45ae95,_0x4bd61a){return _0x43c4eb(_0x45ae95,_0x4bd61a- -0x7c);}this[_0x4481ba(0x17e,0x204)][_0x2ec66c(0x483,0x462)]['remove'](_0x3f4674);}),delete this['primitives']),this[_0x75f20e(0x611,0x676)]&&(this['particleSystem']['destroy'](),delete this[_0x75f20e(0x611,0x65b)]);}['setData'](_0xf03793,_0x514226){this['windData']=this['processWindData'](_0xf03793);function _0x4b7ebc(_0x289cce,_0x313fa1){return _0x5c5aa9(_0x289cce-0x127,_0x313fa1);}function _0x2effb4(_0x21904b,_0x504e24){return _0x5c5aa9(_0x21904b-0x44b,_0x504e24);}if(_0x514226){this[_0x4b7ebc(0x15b,0x19c)](),this['_addedHook']();return;}this['particleSystem']?(this['particleSystem']['computing'][_0x2effb4(0x498,0x46a)](this[_0x2effb4(0x45d,0x48a)]),this['scene']['requestRender']()):this['_addedHook']();}[_0x22e09d(0x1d3,0x1f4)](_0x870f3b,_0x2a8ddb){function _0x4c951(_0x1a77f3,_0x37f2af){return _0x22e09d(_0x37f2af- -0xd5,_0x1a77f3);}function _0x512a6f(_0x9536f2,_0x181101){return _0x22e09d(_0x9536f2-0x59,_0x181101);}this[_0x4c951(0x10c,0x139)]&&(this[_0x512a6f(0x267,0x2c7)]['changeOptions'](_0x2a8ddb),this['scene'][_0x4c951(0x83,0x7f)]());}[_0x22e09d(0x12d,0xe0)](_0x1eec06){var _0x56bbb0,_0x416f01;const _0xc77a4a={..._0x1eec06},_0x12eb5c=_0xc77a4a;!_0x12eb5c[_0x2adc41(0x2f,0x64)]&&_0x12eb5c['rows']&&(_0x12eb5c['height']=_0x12eb5c[_0x2adc41(0x4a,0x26)]);!_0x12eb5c['width']&&_0x12eb5c['cols']&&(_0x12eb5c['width']=_0x12eb5c['cols']);function _0x2adc41(_0x269a77,_0x19904b){return _0x22e09d(_0x19904b- -0x1be,_0x269a77);}!_0x12eb5c[_0x2a281c(0x469,0x497)]&&(_0x12eb5c['bounds']={'west':_0x12eb5c[_0x2adc41(-0x8c,-0x50)],'south':_0x12eb5c['ymin'],'east':_0x12eb5c['xmax'],'north':_0x12eb5c[_0x2adc41(0x93,0x2a)]});if(!_0x12eb5c['u']){const _0x1e8533={};_0x1e8533['array']=_0x1eec06[_0x2a281c(0x4c9,0x46f)],_0x1e8533[_0x2adc41(0x5d,-0xd)]=_0x1eec06[_0x2adc41(-0x7,0x6c)],_0x1e8533['max']=_0x1eec06['umax'],_0x12eb5c['u']=_0x1e8533;}if(!_0x12eb5c['v']){const _0x5023b3={};_0x5023b3['array']=_0x1eec06['vdata'],_0x5023b3['min']=_0x1eec06['vmin'],_0x5023b3['max']=_0x1eec06[_0x2a281c(0x569,0x4ec)],_0x12eb5c['v']=_0x5023b3;}function _0x2a281c(_0x72a6d3,_0x3ec297){return _0x22e09d(_0x72a6d3-0x352,_0x3ec297);}if(((_0x56bbb0=_0x12eb5c[_0x2a281c(0x551,0x4dc)])===null||_0x56bbb0===void 0x0?void 0x0:_0x56bbb0[_0x2a281c(0x503,0x518)])===undefined||((_0x416f01=_0x12eb5c['speed'])===null||_0x416f01===void 0x0?void 0x0:_0x416f01[_0x2adc41(0x6a,0x6)])===undefined||_0x12eb5c[_0x2a281c(0x551,0x5bf)]['array']===undefined){const _0xf761f={'array':new Float32Array(_0x12eb5c['u'][_0x2a281c(0x4ce,0x50c)]['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x1a6204=0x0;_0x1a6204<_0x12eb5c['u']['array'][_0x2adc41(-0x80,-0x8b)];_0x1a6204++){_0xf761f[_0x2adc41(-0x25,-0x42)][_0x1a6204]=Math['sqrt'](_0x12eb5c['u']['array'][_0x1a6204]*_0x12eb5c['u'][_0x2a281c(0x4ce,0x44f)][_0x1a6204]+_0x12eb5c['v']['array'][_0x1a6204]*_0x12eb5c['v'][_0x2adc41(-0x1e,-0x42)][_0x1a6204]),_0xf761f[_0x2adc41(0x25,-0x42)][_0x1a6204]!==0x0&&(_0xf761f[_0x2a281c(0x503,0x4b6)]=Math[_0x2a281c(0x503,0x589)](_0xf761f['min'],_0xf761f['array'][_0x1a6204]),_0xf761f['max']=Math[_0x2a281c(0x516,0x56b)](_0xf761f[_0x2adc41(-0x2f,0x6)],_0xf761f['array'][_0x1a6204]));}_0x12eb5c[_0x2adc41(-0x4e,0x41)]=_0xf761f;}return _0x12eb5c;}['updateViewerParameters'](){var _0x24c541;const _0x140557=this['scene'],_0x2528d7=_0x140557[_0x2e7a02(0x5a5,0x615)],_0x5e4679={};_0x5e4679['x']=0x0,_0x5e4679['y']=0x0;const _0xc0c161={};_0xc0c161['x']=0x0,_0xc0c161['y']=_0x2528d7['clientHeight'];const _0x45a180={};_0x45a180['x']=_0x2528d7['clientWidth'],_0x45a180['y']=0x0;const _0x7d13fd={};_0x7d13fd['x']=_0x2528d7['clientWidth'];function _0x431555(_0x243cac,_0x1f321a){return _0x5c5aa9(_0x1f321a-0x390,_0x243cac);}_0x7d13fd['y']=_0x2528d7[_0x2e7a02(0x50c,0x572)];const _0x246a56=[_0x5e4679,_0xc0c161,_0x45a180,_0x7d13fd];let _0x458757=0xb4,_0xf0e44a=-0xb4,_0x1e583b=0x5a;function _0x2e7a02(_0x3cc40f,_0x194183){return _0x22e09d(_0x194183-0x410,_0x3cc40f);}let _0x3031d7=-0x5a,_0x3e7fec=![];for(const _0x7cc75d of _0x246a56){const _0x170b86=_0x140557['camera'][_0x2e7a02(0x639,0x5e0)](new Cesium$1['Cartesian2'](_0x7cc75d['x'],_0x7cc75d['y']),_0x140557[_0x2e7a02(0x586,0x5da)]['ellipsoid']);if(!_0x170b86){_0x3e7fec=!![];break;}const _0x311404=_0x140557['globe']['ellipsoid'][_0x431555(0x426,0x3d8)](_0x170b86),_0x44579b=Cesium$1[_0x431555(0x477,0x40c)]['toDegrees'](_0x311404['longitude']),_0x893b38=Cesium$1['Math']['toDegrees'](_0x311404['latitude']);_0x458757=Math[_0x431555(0x372,0x3e1)](_0x458757,_0x44579b),_0xf0e44a=Math[_0x2e7a02(0x5c2,0x5d4)](_0xf0e44a,_0x44579b),_0x1e583b=Math[_0x431555(0x3d2,0x3e1)](_0x1e583b,_0x893b38),_0x3031d7=Math['max'](_0x3031d7,_0x893b38);}if(!_0x3e7fec){const _0x1b2843=new Cesium$1['Cartesian2'](Math['max'](this['windData'][_0x431555(0x2cc,0x347)]['west'],_0x458757),Math['min'](this[_0x431555(0x38f,0x3a2)]['bounds'][_0x2e7a02(0x57b,0x54f)],_0xf0e44a)),_0x151a31=new Cesium$1[(_0x2e7a02(0x553,0x5dd))](Math['max'](this['windData'][_0x2e7a02(0x4c0,0x527)][_0x2e7a02(0x624,0x5a3)],_0x1e583b),Math[_0x2e7a02(0x558,0x5c1)](this['windData']['bounds'][_0x431555(0x306,0x373)],_0x3031d7)),_0x4bfb9a=(_0x1b2843['y']-_0x1b2843['x'])*0.05,_0x926ca3=(_0x151a31['y']-_0x151a31['x'])*0.05;_0x1b2843['x']=Math[_0x431555(0x459,0x3f4)](this[_0x431555(0x34b,0x3a2)]['bounds']['west'],_0x1b2843['x']-_0x4bfb9a),_0x1b2843['y']=Math['min'](this[_0x2e7a02(0x5a4,0x582)]['bounds']['east'],_0x1b2843['y']+_0x4bfb9a),_0x151a31['x']=Math[_0x431555(0x3f1,0x3f4)](this['windData'][_0x2e7a02(0x49d,0x527)]['south'],_0x151a31['x']-_0x926ca3),_0x151a31['y']=Math['min'](this['windData']['bounds'][_0x431555(0x395,0x373)],_0x151a31['y']+_0x926ca3),this[_0x431555(0x3ff,0x40d)]['lonRange']=_0x1b2843,this['viewerParameters']['latRange']=_0x151a31;const _0xc2c2d2=this[_0x2e7a02(0x556,0x582)]['bounds']['east']-this['windData'][_0x431555(0x3c4,0x347)][_0x2e7a02(0x6c5,0x638)],_0x5eff22=this['windData']['bounds']['north']-this['windData']['bounds']['south'],_0x1e6831=(_0x1b2843['y']-_0x1b2843['x'])/_0xc2c2d2,_0x3700b8=(_0x151a31['y']-_0x151a31['x'])/_0x5eff22,_0x5ab661=Math['min'](_0x1e6831,_0x3700b8),_0x512557=0x3e8*_0x5ab661;_0x512557>0x0&&(this[_0x431555(0x478,0x40d)][_0x431555(0x370,0x3ba)]=Math[_0x2e7a02(0x5c2,0x5d4)](0x0,Math['min'](0x3e8,_0x512557)));}this[_0x431555(0x3f7,0x40d)]['sceneMode']=this['scene'][_0x2e7a02(0x5e5,0x5ce)],(_0x24c541=this['particleSystem'])===null||_0x24c541===void 0x0||_0x24c541[_0x2e7a02(0x584,0x5a1)](this['viewerParameters']);}['getDataAtLonLat'](_0x865b8e,_0x22dcda){const {bounds:_0x3eb660,width:_0x3de831,height:_0x4e75f2,u:_0x2a0027,v:_0x5c422b,speed:_0x44ba8c}=this[_0x2f75f3(0x4cb,0x45e)];function _0xf5b62f(_0x40ddfd,_0x4afa9c){return _0x5c5aa9(_0x40ddfd-0x483,_0x4afa9c);}const {flipY:_0x31dd8f}=this['options'];if(_0x865b8e<_0x3eb660[_0xf5b62f(0x54b,0x5b9)]||_0x865b8e>_0x3eb660['east']||_0x22dcda<_0x3eb660[_0xf5b62f(0x4b6,0x4ef)]||_0x22dcda>_0x3eb660['north'])return null;const _0x35a0eb=(_0x865b8e-_0x3eb660['west'])/(_0x3eb660['east']-_0x3eb660['west'])*(_0x3de831-0x1);let _0x779151=(_0x22dcda-_0x3eb660[_0x2f75f3(0x4b1,0x47f)])/(_0x3eb660['north']-_0x3eb660[_0x2f75f3(0x3f1,0x47f)])*(_0x4e75f2-0x1);_0x31dd8f&&(_0x779151=_0x4e75f2-0x1-_0x779151);const _0x4ca80d=Math[_0xf5b62f(0x443,0x428)](_0x35a0eb),_0x4dd3c8=Math['floor'](_0x779151),_0x2921f6=Math['floor'](_0x35a0eb),_0x2961a6=Math['min'](_0x2921f6+0x1,_0x3de831-0x1),_0x13bb62=Math['floor'](_0x779151),_0x1efeda=Math[_0x2f75f3(0x511,0x49d)](_0x13bb62+0x1,_0x4e75f2-0x1),_0x40c5f7=_0x35a0eb-_0x2921f6,_0x500f7f=_0x779151-_0x13bb62,_0x16b34e=_0x4dd3c8*_0x3de831+_0x4ca80d,_0x1f4917=_0x13bb62*_0x3de831+_0x2921f6,_0x4592f7=_0x13bb62*_0x3de831+_0x2961a6,_0x457ff8=_0x1efeda*_0x3de831+_0x2921f6,_0x2894d6=_0x1efeda*_0x3de831+_0x2961a6,_0x2bca4f=_0x2a0027['array'][_0x1f4917],_0x3a8c69=_0x2a0027[_0xf5b62f(0x49f,0x503)][_0x4592f7],_0x30b70c=_0x2a0027['array'][_0x457ff8],_0x102cd1=_0x2a0027['array'][_0x2894d6],_0x1e1c1a=(0x1-_0x40c5f7)*(0x1-_0x500f7f)*_0x2bca4f+_0x40c5f7*(0x1-_0x500f7f)*_0x3a8c69+(0x1-_0x40c5f7)*_0x500f7f*_0x30b70c+_0x40c5f7*_0x500f7f*_0x102cd1;function _0x2f75f3(_0x3d0d74,_0x4990c3){return _0x5c5aa9(_0x4990c3-0x44c,_0x3d0d74);}const _0x16c782=_0x5c422b['array'][_0x1f4917],_0x246bed=_0x5c422b['array'][_0x4592f7],_0x1a6672=_0x5c422b['array'][_0x457ff8],_0x368b6d=_0x5c422b['array'][_0x2894d6],_0x1d3af8=(0x1-_0x40c5f7)*(0x1-_0x500f7f)*_0x16c782+_0x40c5f7*(0x1-_0x500f7f)*_0x246bed+(0x1-_0x40c5f7)*_0x500f7f*_0x1a6672+_0x40c5f7*_0x500f7f*_0x368b6d,_0x144d07=Math['sqrt'](_0x1e1c1a*_0x1e1c1a+_0x1d3af8*_0x1d3af8),_0x25f08b={};_0x25f08b['u']=_0x2a0027['array'][_0x16b34e],_0x25f08b['v']=_0x5c422b['array'][_0x16b34e],_0x25f08b['speed']=_0x44ba8c[_0xf5b62f(0x49f,0x4e5)][_0x16b34e];const _0x4fe27c={};_0x4fe27c['u']=_0x1e1c1a,_0x4fe27c['v']=_0x1d3af8,_0x4fe27c['speed']=_0x144d07;const _0x35ed0b={};return _0x35ed0b['original']=_0x25f08b,_0x35ed0b['interpolated']=_0x4fe27c,_0x35ed0b;}}function _0x5c5aa9(_0x32b06e,_0x44facc){return _0x4ca7(_0x32b06e- -0x238,_0x44facc);}mars3d__namespace['LayerUtil'][_0x5c5aa9(-0x4,0x6f)]('wind',WindLayer),mars3d__namespace[_0x5c5aa9(0xb5,0x101)][_0x5c5aa9(-0x34,0x43)]=WindLayer;class CanvasParticle{constructor(){this[_0x3ce7d1(-0x8f,-0x34)]=null,this['lat']=null;function _0x26f9c7(_0x1506b1,_0x24faad){return _0x22e09d(_0x1506b1-0x483,_0x24faad);}this[_0x26f9c7(0x5f2,0x612)]=null,this['tlat']=null,this['age']=null;function _0x3ce7d1(_0x59b4f9,_0xc89ffc){return _0x22e09d(_0xc89ffc- -0x181,_0x59b4f9);}this['speed']=null;}['destroy'](){for(const _0x1c4956 in this){delete this[_0x1c4956];}}}class CanvasWindField{constructor(_0x10c055){function _0x1cf79c(_0x53395a,_0x26c395){return _0x22e09d(_0x26c395-0x1a5,_0x53395a);}this[_0x1cf79c(0x2a0,0x32c)](_0x10c055);}get[_0x22e09d(0x186,0x133)](){function _0x3b0040(_0x91f5d7,_0xf0855d){return _0x5c5aa9(_0x91f5d7-0x5b,_0xf0855d);}return this[_0x3b0040(0x11f,0x134)];}set['speedRate'](_0x35bf76){this[_0xa06528(0x422,0x41e)]=(0x64-(_0x35bf76>0x63?0x63:_0x35bf76))*0x64;function _0xa06528(_0x284392,_0x1bbc68){return _0x5c5aa9(_0x1bbc68-0x35a,_0x284392);}function _0x56619c(_0x29121f,_0x39fd01){return _0x22e09d(_0x39fd01- -0xfc,_0x29121f);}this[_0x56619c(0x41,0x6e)]=[(this[_0xa06528(0x416,0x3ae)]-this['xmin'])/this['_speedRate'],(this['ymax']-this[_0x56619c(0x106,0xf4)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0x7bff5){this['_maxAge']=_0x7bff5;}['setOptions'](_0x32717c){function _0xbb2123(_0x2e0db6,_0x5d4a30){return _0x22e09d(_0x2e0db6-0x3d7,_0x5d4a30);}this['options']=_0x32717c,this['maxAge']=_0x32717c[_0xbb2123(0x5a2,0x62a)]||0x78,this[_0xbb2123(0x55d,0x568)]=_0x32717c['speedRate']||0x32,this['particles']=[];function _0xebddc2(_0x315f24,_0x538617){return _0x5c5aa9(_0x315f24-0x5b6,_0x538617);}const _0x57cb21=_0x32717c['particlesNumber']||0x1000;for(let _0x52f0a2=0x0;_0x52f0a2<_0x57cb21;_0x52f0a2++){const _0x28cead=this['_randomParticle'](new CanvasParticle());this[_0xebddc2(0x63d,0x651)]['push'](_0x28cead);}}['setDate'](_0x28c079){this['rows']=_0x28c079['rows'],this['cols']=_0x28c079[_0xf03cc0(0x5c3,0x544)],this['xmin']=_0x28c079[_0xf03cc0(0x501,0x4e6)],this['xmax']=_0x28c079['xmax'],this[_0xf03cc0(0x583,0x5aa)]=_0x28c079['ymin'],this['ymax']=_0x28c079['ymax'],this['grid']=[];const _0x45b7ab=_0x28c079['udata'];function _0xf03cc0(_0x3b9ada,_0x34c27d){return _0x5c5aa9(_0x3b9ada-0x4f3,_0x34c27d);}const _0x4647ca=_0x28c079['vdata'];let _0x47393a=![];_0x45b7ab[_0xf03cc0(0x4c6,0x4ce)]===this['rows']&&_0x45b7ab[0x0]['length']===this[_0xf03cc0(0x5c3,0x5f3)]&&(_0x47393a=!![]);let _0x26d24b=0x0,_0x5470fe=null,_0x20d175=null;function _0x759375(_0x43d20e,_0x4fa863){return _0x22e09d(_0x43d20e- -0xf3,_0x4fa863);}for(let _0x594984=0x0;_0x594984<this['rows'];_0x594984++){_0x5470fe=[];for(let _0x48853e=0x0;_0x48853e<this['cols'];_0x48853e++,_0x26d24b++){_0x47393a?_0x20d175=this[_0xf03cc0(0x4b0,0x489)](_0x45b7ab[_0x594984][_0x48853e],_0x4647ca[_0x594984][_0x48853e]):_0x20d175=this['_calcUV'](_0x45b7ab[_0x26d24b],_0x4647ca[_0x26d24b]),_0x5470fe[_0xf03cc0(0x597,0x5bb)](_0x20d175);}this['grid'][_0xf03cc0(0x597,0x614)](_0x5470fe);}!this['options']['flipY']&&this[_0xf03cc0(0x52a,0x508)][_0x759375(0x90,0x107)]();}['clear'](){delete this['rows'],delete this['cols'],delete this[_0x241e72(0x2bf,0x287)];function _0x241e72(_0x337f9f,_0xe414d2){return _0x5c5aa9(_0x337f9f-0x2b1,_0xe414d2);}delete this[_0x241e72(0x305,0x34b)],delete this[_0x241e72(0x341,0x352)],delete this[_0x3a8c17(-0x58,0x17)],delete this['grid'];function _0x3a8c17(_0x5bdc90,_0x5da171){return _0x22e09d(_0x5bdc90- -0x240,_0x5da171);}delete this['particles'];}[_0x5c5aa9(0x6c,0x9c)](_0x2dc3b9,_0x300f54){const _0x1c9a0e=(_0x2dc3b9-this['xmin'])/(this[_0x501fbc(0x400,0x407)]-this[_0x30bb2f(0x6a,0xf3)])*(this[_0x501fbc(0x498,0x483)]-0x1);function _0x501fbc(_0x4e82ec,_0x4cca7e){return _0x22e09d(_0x4cca7e-0x253,_0x4e82ec);}const _0x1dd2f2=(this['ymax']-_0x300f54)/(this[_0x501fbc(0x42b,0x43b)]-this['ymin'])*(this['rows']-0x1);function _0x30bb2f(_0x306f63,_0x3d11fd){return _0x22e09d(_0x306f63- -0x104,_0x3d11fd);}return[_0x1c9a0e,_0x1dd2f2];}[_0x5c5aa9(0x29,0x8c)](_0x4fdc8f,_0x22fa04){if(_0x4fdc8f<0x0||_0x4fdc8f>=this['cols']||_0x22fa04>=this['rows'])return[0x0,0x0,0x0];const _0x56fb11=Math['floor'](_0x4fdc8f),_0x532e52=Math[_0x5826cc(-0x1b9,-0x13f)](_0x22fa04);if(_0x56fb11===_0x4fdc8f&&_0x532e52===_0x22fa04)return this[_0x5826cc(-0x142,-0x18e)][_0x22fa04][_0x4fdc8f];const _0x4dab3f=_0x56fb11+0x1,_0x248f2c=_0x532e52+0x1,_0xd8f5e=this[_0x2df9b9(0x53a,0x5a0)](_0x56fb11,_0x532e52),_0xbad532=this['getUVByXY'](_0x4dab3f,_0x532e52);function _0x2df9b9(_0x3b3184,_0x4995d0){return _0x5c5aa9(_0x3b3184-0x511,_0x4995d0);}const _0x12edc3=this[_0x2df9b9(0x53a,0x4d0)](_0x56fb11,_0x248f2c),_0x3cb557=this['getUVByXY'](_0x4dab3f,_0x248f2c);let _0x44e3a9=null;function _0x5826cc(_0x5a11a8,_0x436514){return _0x5c5aa9(_0x5a11a8- -0x179,_0x436514);}try{_0x44e3a9=this['_bilinearInterpolation'](_0x4fdc8f-_0x56fb11,_0x22fa04-_0x532e52,_0xd8f5e,_0xbad532,_0x12edc3,_0x3cb557);}catch(_0x130ed5){console['log'](_0x4fdc8f,_0x22fa04);}return _0x44e3a9;}[_0x5c5aa9(0x11,0x48)](_0x4bab44,_0x466861,_0x46a181,_0x53bd67,_0x5902bd,_0xb7a670){const _0x4d651c=0x1-_0x4bab44,_0x10a942=0x1-_0x466861,_0x1def92=_0x4d651c*_0x10a942,_0x46e7ac=_0x4bab44*_0x10a942,_0x2acfbc=_0x4d651c*_0x466861,_0x2a90a3=_0x4bab44*_0x466861,_0x5a9cc7=_0x46a181[0x0]*_0x1def92+_0x53bd67[0x0]*_0x46e7ac+_0x5902bd[0x0]*_0x2acfbc+_0xb7a670[0x0]*_0x2a90a3,_0x251008=_0x46a181[0x1]*_0x1def92+_0x53bd67[0x1]*_0x46e7ac+_0x5902bd[0x1]*_0x2acfbc+_0xb7a670[0x1]*_0x2a90a3;return this['_calcUV'](_0x5a9cc7,_0x251008);}[_0x22e09d(0x11d,0x11c)](_0x279d02,_0x6dbaab){function _0x33e53a(_0x45e2c4,_0x431166){return _0x22e09d(_0x45e2c4-0x1f1,_0x431166);}return[+_0x279d02,+_0x6dbaab,Math[_0x33e53a(0x3fd,0x410)](_0x279d02*_0x279d02+_0x6dbaab*_0x6dbaab)];}[_0x5c5aa9(-0x27,0x28)](_0x272d03,_0x638c9a){function _0x35a930(_0x4d6abf,_0x3dbc2f){return _0x5c5aa9(_0x4d6abf-0x5fe,_0x3dbc2f);}if(!this['isInExtent'](_0x272d03,_0x638c9a))return null;const _0xed130b=this[_0x35a930(0x66a,0x6d2)](_0x272d03,_0x638c9a),_0x2c317e=this['getUVByXY'](_0xed130b[0x0],_0xed130b[0x1]);return _0x2c317e;}[_0x22e09d(0x12f,0x162)](_0x2acff1,_0x47bd95){function _0x2cc275(_0x5f3020,_0xe81d3b){return _0x5c5aa9(_0x5f3020-0x49c,_0xe81d3b);}function _0x5d482b(_0x186431,_0x359fa3){return _0x22e09d(_0x359fa3-0x3a5,_0x186431);}return _0x2acff1>=this['xmin']&&_0x2acff1<=this[_0x2cc275(0x4f0,0x536)]&&_0x47bd95>=this[_0x5d482b(0x50f,0x595)]&&_0x47bd95<=this[_0x2cc275(0x524,0x56f)]?!![]:![];}[_0x22e09d(0x20b,0x25a)](){function _0x2a4f78(_0x174f24,_0x1b463e){return _0x5c5aa9(_0x1b463e-0x3fd,_0x174f24);}const _0x3ef23f=fRandomByfloat(this['xmin'],this['xmax']),_0x2a8268=fRandomByfloat(this[_0x2a4f78(0x440,0x48d)],this['ymax']),_0x125827={};return _0x125827['lat']=_0x2a8268,_0x125827['lng']=_0x3ef23f,_0x125827;}[_0x5c5aa9(-0x39,-0xc5)](){function _0x9c6d4e(_0x3462ca,_0x4f1f9d){return _0x22e09d(_0x3462ca-0x263,_0x4f1f9d);}let _0x3dd9b8,_0x39f7bc,_0x7206e1;for(let _0x5524ba=0x0,_0x330741=this[_0x1c1e5c(0x578,0x5c0)]['length'];_0x5524ba<_0x330741;_0x5524ba++){let _0x243dcf=this[_0x1c1e5c(0x578,0x5eb)][_0x5524ba];_0x243dcf['age']<=0x0&&(_0x243dcf=this[_0x1c1e5c(0x4d2,0x540)](_0x243dcf));if(_0x243dcf['age']>0x0){const _0x542e36=_0x243dcf['tlng'],_0x37ecdd=_0x243dcf['tlat'];_0x7206e1=this['getUVByPoint'](_0x542e36,_0x37ecdd),_0x7206e1?(_0x3dd9b8=_0x542e36+this['_calc_speedRate'][0x0]*_0x7206e1[0x0],_0x39f7bc=_0x37ecdd+this['_calc_speedRate'][0x1]*_0x7206e1[0x1],_0x243dcf['lng']=_0x542e36,_0x243dcf[_0x1c1e5c(0x4b6,0x521)]=_0x37ecdd,_0x243dcf[_0x9c6d4e(0x3d2,0x36b)]=_0x3dd9b8,_0x243dcf['tlat']=_0x39f7bc,_0x243dcf[_0x9c6d4e(0x462,0x4c7)]=_0x7206e1[0x2],_0x243dcf['age']--):_0x243dcf[_0x1c1e5c(0x53b,0x5c5)]=0x0;}}function _0x1c1e5c(_0x244367,_0x1302eb){return _0x5c5aa9(_0x244367-0x4f1,_0x1302eb);}return this['particles'];}[_0x5c5aa9(-0x1f,-0x60)](_0x2e4678){let _0x36e95b,_0x262b96;for(let _0x39c581=0x0;_0x39c581<0x1e;_0x39c581++){_0x36e95b=this['getRandomLatLng'](),_0x262b96=this['getUVByPoint'](_0x36e95b['lng'],_0x36e95b[_0xeb6826(0x2e2,0x331)]);if(_0x262b96&&_0x262b96[0x2]>0x0)break;}if(!_0x262b96)return _0x2e4678;const _0x38c348=_0x36e95b[_0x4dbe8b(0xf6,0x152)]+this['_calc_speedRate'][0x0]*_0x262b96[0x0];function _0xeb6826(_0x953bf6,_0x40947b){return _0x22e09d(_0x40947b-0x20c,_0x953bf6);}const _0x33c822=_0x36e95b['lat']+this['_calc_speedRate'][0x1]*_0x262b96[0x1];_0x2e4678[_0x4dbe8b(0xf6,0x76)]=_0x36e95b[_0xeb6826(0x396,0x359)],_0x2e4678['lat']=_0x36e95b[_0x4dbe8b(0xce,0x125)],_0x2e4678[_0x4dbe8b(0x118,0xd3)]=_0x38c348,_0x2e4678[_0x4dbe8b(0x1d4,0x1bc)]=_0x33c822,_0x2e4678['age']=Math[_0xeb6826(0x3e6,0x3e0)](0xa+Math[_0x4dbe8b(0x12a,0xb9)]()*this['maxAge']),_0x2e4678['speed']=_0x262b96[0x2];function _0x4dbe8b(_0x48478f,_0xd5a674){return _0x5c5aa9(_0x48478f-0x109,_0xd5a674);}return _0x2e4678;}['destroy'](){for(const _0x2ed2f1 in this){delete this[_0x2ed2f1];}}}function fRandomByfloat(_0x3ca9e3,_0x19eee8){return _0x3ca9e3+Math['random']()*(_0x19eee8-_0x3ca9e3);}const Cesium=mars3d__namespace[_0x5c5aa9(0x4e,0x84)],BaseLayer=mars3d__namespace[_0x22e09d(0x215,0x263)][_0x5c5aa9(0x97,0x93)];class CanvasWindLayer extends BaseLayer{constructor(_0x273e3d={}){function _0x588f39(_0x44d7bf,_0x4ebea0){return _0x22e09d(_0x44d7bf-0x320,_0x4ebea0);}super(_0x273e3d),this['_setOptionsHook'](_0x273e3d),this['canvas']=null,_0x273e3d[_0x588f39(0x521,0x4ca)]&&_0x273e3d['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x273e3d));}[_0x22e09d(0x1d3,0x178)](_0x29921f,_0xbe0352){this[_0x5ca69d(0x392,0x329)]=0x3e8/(_0x29921f[_0x5924e0(0x60b,0x63d)]||0xa);function _0x5924e0(_0x573bc7,_0x4d3573){return _0x22e09d(_0x4d3573-0x433,_0x573bc7);}this[_0x5ca69d(0x361,0x301)]=this['options']['pointerEvents']??![];function _0x5ca69d(_0x27e558,_0x18dd05){return _0x22e09d(_0x18dd05-0x14f,_0x27e558);}this[_0x5924e0(0x6cd,0x64b)]=_0x29921f['color']||'#ffffff',this['lineWidth']=_0x29921f[_0x5ca69d(0x318,0x2ea)]||0x1,this['fixedHeight']=_0x29921f['fixedHeight']??0x0,this['flipY']=_0x29921f['flipY']??![],this[_0x5924e0(0x5ab,0x5f0)]&&this['windField'][_0x5924e0(0x550,0x5ba)](_0x29921f);}get['layer'](){function _0x1969e0(_0x336b85,_0x50b7b3){return _0x22e09d(_0x50b7b3-0xfd,_0x336b85);}return this[_0x1969e0(0x326,0x302)];}get[_0x22e09d(0x17a,0x196)](){function _0x374553(_0x3e0e39,_0x2aafef){return _0x5c5aa9(_0x2aafef-0x257,_0x3e0e39);}return this['_map']['scene']['canvas'][_0x374553(0x299,0x2a0)];}get['canvasHeight'](){function _0x3cf427(_0x126164,_0x4d79f5){return _0x5c5aa9(_0x4d79f5- -0x9d,_0x126164);}function _0x399a0d(_0x150d68,_0x5aa602){return _0x5c5aa9(_0x150d68-0x449,_0x5aa602);}return this['_map'][_0x399a0d(0x43f,0x4a4)][_0x399a0d(0x4ee,0x53d)][_0x3cf427(-0xf2,-0x9b)];}get['pointerEvents'](){return this['_pointerEvents'];}set['pointerEvents'](_0x4a3cf9){function _0x313260(_0x37061d,_0x373b73){return _0x5c5aa9(_0x37061d-0x11f,_0x373b73);}this['_pointerEvents']=_0x4a3cf9;if(!this['canvas'])return;function _0x564115(_0x3e5096,_0x2f779e){return _0x22e09d(_0x3e5096-0x240,_0x2f779e);}_0x4a3cf9?this[_0x564115(0x445,0x4a7)]['style'][_0x313260(0x1ae,0x200)]='all':this['canvas'][_0x564115(0x3d0,0x454)][_0x564115(0x42f,0x493)]=_0x564115(0x3f9,0x401);}get[_0x5c5aa9(0x1,0x65)](){return this['options']['particlesNumber'];}set[_0x22e09d(0x161,0x16b)](_0x20097c){function _0x4ba63c(_0x4e5ffa,_0xc71c74){return _0x22e09d(_0x4e5ffa- -0xca,_0xc71c74);}function _0x33662b(_0x1a8d05,_0x3652eb){return _0x5c5aa9(_0x1a8d05-0x2bd,_0x3652eb);}this['options'][_0x33662b(0x2be,0x34c)]=_0x20097c,clearTimeout(this[_0x4ba63c(0x134,0x181)]),this[_0x4ba63c(0x134,0xc6)]=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0xceabca(_0x5d31a5,_0x2fb440){return _0x5c5aa9(_0x5d31a5-0x17b,_0x2fb440);}return this['options'][_0xceabca(0x1a1,0x19d)];}set['speedRate'](_0x19ff9d){this[_0x914ad1(0xad,0x115)]['speedRate']=_0x19ff9d;function _0x914ad1(_0x5a2b30,_0x3f46a8){return _0x22e09d(_0x5a2b30- -0x11b,_0x3f46a8);}function _0x317e19(_0x256cd0,_0x4cc0f2){return _0x22e09d(_0x256cd0-0x473,_0x4cc0f2);}this[_0x317e19(0x630,0x68d)]&&(this['windField'][_0x317e19(0x5f9,0x64e)]=_0x19ff9d);}get[_0x22e09d(0x1cb,0x1e8)](){function _0xd2fc0e(_0x2b01b8,_0x3692b6){return _0x22e09d(_0x3692b6-0x40a,_0x2b01b8);}return this[_0xd2fc0e(0x61f,0x5d2)]['maxAge'];}set['maxAge'](_0x425e4e){function _0x5ea721(_0x36ac6b,_0x561698){return _0x5c5aa9(_0x36ac6b-0xec,_0x561698);}this['options']['maxAge']=_0x425e4e,this['windField']&&(this[_0x5ea721(0x149,0xfb)]['maxAge']=_0x425e4e);}get['data'](){return this['windData'];}set[_0x5c5aa9(-0x47,0x43)](_0x2a82eb){this['setData'](_0x2a82eb);}get['rectangle'](){let _0x14f04b=this['windData']['xmin'],_0x37be95=this['windData'][_0x32d058(0xa3,0xb6)],_0x346af7=this[_0x48ff17(0x33c,0x2f8)][_0x32d058(0xae,0xf2)],_0x558228=this['windData']['ymax'];function _0x48ff17(_0x4fa7b8,_0x55c4ee){return _0x5c5aa9(_0x55c4ee-0x2e6,_0x4fa7b8);}function _0x32d058(_0x215df3,_0x3fe251){return _0x22e09d(_0x3fe251- -0xfe,_0x215df3);}return _0x37be95>=0x167&&_0x14f04b===0x0&&(_0x14f04b=-0xb4,_0x37be95=0xb4),_0x14f04b=Math[_0x32d058(0x55,0xc6)](_0x14f04b,-0xb4),_0x37be95=Math[_0x48ff17(0x3a5,0x337)](_0x37be95,0xb4),_0x346af7=Math[_0x48ff17(0x30c,0x34a)](_0x346af7,-0x5a),_0x558228=Math['min'](_0x558228,0x5a),Cesium['Rectangle']['fromDegrees'](_0x14f04b,_0x346af7,_0x37be95,_0x558228);}[_0x22e09d(0x11a,0x14f)](_0x38edbf){function _0x495272(_0x3322d1,_0x125fbc){return _0x5c5aa9(_0x125fbc-0x42c,_0x3322d1);}function _0x6e5ccc(_0x1542ab,_0x5a72b5){return _0x5c5aa9(_0x1542ab- -0x1a7,_0x5a72b5);}_0x38edbf?this['_addedHook']():(this['windData']&&(this['options'][_0x6e5ccc(-0x1ee,-0x168)]=this[_0x495272(0x3b5,0x43e)]),this[_0x495272(0x3ff,0x460)]());}['_mountedHook'](){function _0x556280(_0x2487e7,_0x15fa31){return _0x5c5aa9(_0x15fa31-0x320,_0x2487e7);}this['options']['worker']?this[_0x556280(0x3f1,0x398)]():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this['_createCanvas']();const _0x17875d={};function _0x5cf819(_0x55a1b4,_0xdd7b9){return _0x22e09d(_0xdd7b9-0x3c,_0x55a1b4);}_0x17875d['willReadFrequently']=!![],this['canvasContext']=this['canvas']['getContext']('2d',_0x17875d);function _0x46c151(_0x5470ce,_0x582066){return _0x5c5aa9(_0x582066-0x242,_0x5470ce);}this['bindEvent'](),this[_0x46c151(0x299,0x2aa)][_0x46c151(0x1b3,0x1fb)]&&this[_0x5cf819(0x259,0x1f8)](this['options'][_0x46c151(0x24e,0x1fb)]);}['_removedHook'](){this['clear'](),this['unbindEvent']();function _0x172848(_0x203708,_0x593e3e){return _0x22e09d(_0x203708-0x421,_0x593e3e);}function _0x3ce664(_0x29c493,_0x21ed6a){return _0x22e09d(_0x21ed6a-0xd0,_0x29c493);}this['canvas']&&(this[_0x172848(0x543,0x582)][_0x3ce664(0x367,0x2ed)][_0x3ce664(0x357,0x2ee)](this[_0x172848(0x626,0x605)]),delete this[_0x172848(0x626,0x666)]);}['_createCanvas'](){const _0x325dfe=mars3d__namespace['DomUtil']['create'](_0x25bd61(0x305,0x284),'mars3d-canvasWind',this['_map']['container']);function _0x33383f(_0x531de5,_0x177195){return _0x22e09d(_0x177195-0x3b0,_0x531de5);}_0x325dfe[_0x25bd61(0x290,0x319)]['position']=_0x33383f(0x518,0x51b),_0x325dfe[_0x25bd61(0x290,0x231)]['top']='0px';function _0x25bd61(_0x529591,_0x5595d7){return _0x22e09d(_0x529591-0x100,_0x5595d7);}return _0x325dfe['style'][_0x33383f(0x5cc,0x5dd)]='0px',_0x325dfe['style']['width']=this['_map'][_0x33383f(0x48b,0x506)][_0x33383f(0x5ca,0x5b5)][_0x33383f(0x5df,0x559)]+'px',_0x325dfe['style']['height']=this[_0x33383f(0x504,0x4d2)][_0x33383f(0x4ae,0x506)]['canvas'][_0x33383f(0x559,0x512)]+'px',_0x325dfe['style'][_0x25bd61(0x260,0x259)]=this[_0x33383f(0x5cf,0x562)]?_0x33383f(0x601,0x5d0):_0x33383f(0x59c,0x569),_0x325dfe['style'][_0x25bd61(0x2c6,0x268)]=this['options']['zIndex']??0x9,_0x325dfe['width']=this[_0x33383f(0x53f,0x4d2)][_0x33383f(0x4f4,0x506)]['canvas'][_0x33383f(0x513,0x559)],_0x325dfe['height']=this[_0x33383f(0x4b4,0x4d2)][_0x33383f(0x57e,0x506)][_0x33383f(0x533,0x5b5)][_0x33383f(0x517,0x512)],_0x325dfe;}[_0x22e09d(0x1f6,0x1d4)](){function _0x369999(_0x446f5c,_0x19385b){return _0x22e09d(_0x19385b-0x360,_0x446f5c);}function _0x3dab0e(_0x2b065c,_0x406c3d){return _0x5c5aa9(_0x2b065c- -0x101,_0x406c3d);}this['canvas']&&(this['canvas']['style']['width']=this['_map'][_0x3dab0e(-0x10b,-0x8f)][_0x3dab0e(-0x5c,-0xb7)][_0x369999(0x4a3,0x509)]+'px',this[_0x369999(0x569,0x565)][_0x369999(0x4e9,0x4f0)][_0x369999(0x519,0x582)]=this[_0x3dab0e(-0x13f,-0xe4)]['scene']['canvas'][_0x369999(0x514,0x4c2)]+'px',this['canvas']['width']=this['_map']['scene'][_0x3dab0e(-0x5c,-0x31)][_0x369999(0x49c,0x509)],this[_0x3dab0e(-0x5c,-0xbb)]['height']=this[_0x369999(0x4dd,0x482)]['scene']['canvas'][_0x3dab0e(-0xff,-0xba)]);}['bindEvent'](){const _0x22d4e3=this;let _0x532f01=Date[_0x1ca465(0x373,0x336)]();(function _0x4b1b15(){function _0x1172ac(_0x4c35b4,_0x27758d){return _0x1ca465(_0x27758d,_0x4c35b4- -0x2a9);}if(_0x22d4e3['isDestroy'])return;_0x22d4e3[_0x1172ac(0x18d,0x1c2)]=window[_0x25dfc6(0x69b,0x639)](_0x4b1b15);function _0x25dfc6(_0x3d5980,_0x1e936e){return _0x1ca465(_0x3d5980,_0x1e936e-0x290);}if(_0x22d4e3[_0x1172ac(0x111,0x135)]&&_0x22d4e3['windField']){const _0x24e4f2=Date[_0x25dfc6(0x61f,0x5c6)](),_0x2942e2=_0x24e4f2-_0x532f01;_0x2942e2>_0x22d4e3[_0x25dfc6(0x6f1,0x685)]&&(_0x532f01=_0x24e4f2-_0x2942e2%_0x22d4e3[_0x1172ac(0x14c,0x124)],_0x22d4e3['update']());}}(),window[_0x52c831(-0x1c,-0xa2)]('resize',this['resize']['bind'](this),![]));function _0x1ca465(_0xcbde5e,_0x51d1b1){return _0x5c5aa9(_0x51d1b1-0x37b,_0xcbde5e);}this['mouse_down']=![],this['mouse_move']=![];function _0x52c831(_0x9e3efb,_0x9129c9){return _0x5c5aa9(_0x9129c9- -0x171,_0x9e3efb);}this['options'][_0x52c831(-0xe6,-0xe0)]&&(this[_0x1ca465(0x35f,0x33d)]['on'](mars3d__namespace['EventType'][_0x1ca465(0x3fa,0x43a)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x52c831(-0x125,-0x1b3)],this[_0x1ca465(0x457,0x423)],this),this[_0x52c831(-0x1e1,-0x1af)]['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x52c831(-0x78,-0xf1)],this));}['unbindEvent'](){window['cancelAnimationFrame'](this['_animateFrame']),delete this['_animateFrame'];function _0xeb7c4b(_0x1839bd,_0xc99d4f){return _0x22e09d(_0x1839bd-0x2e1,_0xc99d4f);}window[_0x1c5d97(-0xd8,-0x141)](_0x1c5d97(-0x89,-0xae),this['resize']);function _0x1c5d97(_0x3db573,_0x27c308){return _0x5c5aa9(_0x3db573- -0x11f,_0x27c308);}this[_0x1c5d97(-0xb7,-0x143)][_0xeb7c4b(0x4d2,0x51d)]&&(this['_map'][_0x1c5d97(-0x144,-0x160)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map'][_0x1c5d97(-0x144,-0x12c)](mars3d__namespace[_0xeb7c4b(0x409,0x3c0)][_0xeb7c4b(0x3ff,0x3ca)],this[_0x1c5d97(-0x77,0xf)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace[_0xeb7c4b(0x409,0x3f3)]['mouseMove'],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x1afe9d){function _0x1a6eb2(_0x377b93,_0x6b3edb){return _0x5c5aa9(_0x377b93-0x44a,_0x6b3edb);}function _0x2edf04(_0x42227e,_0x3a5ed0){return _0x5c5aa9(_0x3a5ed0-0x2a4,_0x42227e);}clearTimeout(this[_0x1a6eb2(0x4bf,0x4c5)]);if(!this[_0x1a6eb2(0x489,0x509)]||!this[_0x2edf04(0x2fc,0x349)])return;this['canvas']['style'][_0x2edf04(0x3a8,0x370)]=_0x1a6eb2(0x4ec,0x52e),this[_0x2edf04(0x290,0x319)]=setTimeout(()=>{function _0x23de44(_0x1003d2,_0x416af1){return _0x1a6eb2(_0x1003d2- -0x183,_0x416af1);}if(!this['show'])return;this[_0x23de44(0x300,0x2a1)]();function _0x470277(_0x1a4a1f,_0xc38884){return _0x2edf04(_0x1a4a1f,_0xc38884- -0x36e);}this['canvas'][_0x470277(-0xec,-0x9a)]['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x2f3018){this[_0x233c18(0x1ce,0x214)]=!![],this['_map'][_0x38acb8(-0x16b,-0x15c)](mars3d__namespace['EventType'][_0x233c18(0x1c5,0x18d)],this['_onMouseMoveEvent'],this);function _0x233c18(_0x2ad197,_0x2bf2d1){return _0x5c5aa9(_0x2bf2d1-0x19e,_0x2ad197);}function _0x38acb8(_0x32360d,_0x5b7f1f){return _0x5c5aa9(_0x5b7f1f- -0x137,_0x32360d);}this[_0x233c18(0x179,0x160)]['on'](mars3d__namespace['EventType'][_0x233c18(0x1de,0x18d)],this[_0x233c18(0x2e0,0x261)],this);}[_0x5c5aa9(0xc3,0x82)](_0x2d571d){function _0x5a203a(_0x483c44,_0x56faa3){return _0x22e09d(_0x483c44-0x3c9,_0x56faa3);}function _0x70642(_0x205e77,_0x46b2ed){return _0x22e09d(_0x46b2ed- -0x11e,_0x205e77);}if(!this[_0x70642(0x52,0x81)]||!this['canvas'])return;this['mouse_down']&&(this[_0x5a203a(0x5ce,0x55b)][_0x70642(0x49,0x72)][_0x5a203a(0x5f5,0x5c7)]='hidden',this[_0x5a203a(0x526,0x4af)]=!![]);}['_onMouseUpEvent'](_0x24b3fe){if(!this['show']||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this['mouse_move']&&this['redraw']();function _0x400e8c(_0x104346,_0x535212){return _0x22e09d(_0x104346- -0x32,_0x535212);}function _0x11f442(_0x432c06,_0x5ee65a){return _0x22e09d(_0x432c06-0x435,_0x5ee65a);}this['canvas']['style']['visibility']='visible',this[_0x11f442(0x60b,0x68d)]=![],this[_0x11f442(0x592,0x5cf)]=![];}['setData'](_0x268db7){this['clear'](),this['windData']=_0x268db7,this['windField']['setDate'](_0x268db7);function _0x5b3fe3(_0x3da083,_0x3bd80c){return _0x5c5aa9(_0x3da083-0x5a7,_0x3bd80c);}this[_0x5b3fe3(0x5e0,0x55c)]();}[_0x22e09d(0x199,0x1cd)](){function _0x185b91(_0x352a29,_0x4ea3bc){return _0x22e09d(_0x352a29-0x32b,_0x4ea3bc);}function _0x4b4de7(_0x11d7ec,_0x907da7){return _0x5c5aa9(_0x11d7ec-0x587,_0x907da7);}if(!this[_0x185b91(0x4ca,0x50e)])return;this[_0x4b4de7(0x5e4,0x5d9)]['setOptions'](this['options']),this[_0x185b91(0x4cd,0x4dd)]();}['update'](){function _0xd60940(_0x698bb1,_0xa3446b){return _0x22e09d(_0x698bb1- -0xf7,_0xa3446b);}if(this[_0x21c1bd(0x2f0,0x36a)])return;function _0x21c1bd(_0x2a6461,_0x1b5a82){return _0x22e09d(_0x2a6461-0x1cc,_0x1b5a82);}this['_updateIng']=!![];if(this['worker'])this[_0x21c1bd(0x389,0x3b5)]['update']();else{const _0x47617f=this['windField'][_0x21c1bd(0x2f3,0x308)]();this[_0xd60940(0x119,0x8a)](_0x47617f);}this['_updateIng']=![];}['_drawLines'](_0x4e85cb){this[_0x24bf7f(-0x127,-0x11b)]=_0x4e85cb,this[_0x73ff6a(0x44b,0x45b)]['globalCompositeOperation']='destination-in',this[_0x73ff6a(0x4c2,0x45b)][_0x73ff6a(0x5b8,0x56e)](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']=_0x73ff6a(0x562,0x4fa);function _0x73ff6a(_0x109493,_0x5c9ebb){return _0x22e09d(_0x5c9ebb-0x345,_0x109493);}this['canvasContext']['globalAlpha']=0.9;const _0x45bac5=this['_map']['scene']['mode']!==Cesium[_0x24bf7f(-0x149,-0xef)]['SCENE3D'];function _0x24bf7f(_0x4df924,_0x275ffb){return _0x5c5aa9(_0x4df924- -0x144,_0x275ffb);}const _0x59b878=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x389623=0x0,_0x326565=_0x4e85cb[_0x73ff6a(0x3f5,0x478)];_0x389623<_0x326565;_0x389623++){const _0x4af296=_0x4e85cb[_0x389623],_0x1ab3e1=this['_tomap'](_0x4af296,_0x4af296['lng'],_0x4af296['lat'],_0x4af296[_0x24bf7f(-0x129,-0x127)]),_0x56ae46=this[_0x73ff6a(0x4f8,0x498)](_0x4af296,_0x4af296['tlng'],_0x4af296[_0x24bf7f(-0x79,-0x9a)],_0x4af296['talt']);if(!_0x1ab3e1||!_0x56ae46)continue;if(_0x45bac5&&Math[_0x24bf7f(-0x126,-0xd4)](_0x1ab3e1[0x0]-_0x56ae46[0x0])>=_0x59b878)continue;this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this[_0x24bf7f(-0x109,-0x96)],this[_0x73ff6a(0x426,0x45b)][_0x24bf7f(-0x95,-0xcc)]=this[_0x73ff6a(0x4a4,0x4df)]['getColor'](_0x4af296['speed']),this['canvasContext']['moveTo'](_0x1ab3e1[0x0],_0x1ab3e1[0x1]),this[_0x24bf7f(-0x18e,-0x139)][_0x73ff6a(0x48b,0x48f)](_0x56ae46[0x0],_0x56ae46[0x1]),this[_0x73ff6a(0x4ad,0x45b)]['stroke']();}else{this['canvasContext']['beginPath'](),this[_0x73ff6a(0x406,0x45b)][_0x24bf7f(-0x109,-0x16f)]=this[_0x24bf7f(-0x109,-0x88)],this['canvasContext'][_0x73ff6a(0x590,0x554)]=this['color'];for(let _0x8ebccd=0x0,_0x5e5a12=_0x4e85cb['length'];_0x8ebccd<_0x5e5a12;_0x8ebccd++){const _0x1d822d=_0x4e85cb[_0x8ebccd],_0x1562ef=this['_tomap'](_0x1d822d,_0x1d822d[_0x24bf7f(-0x157,-0xd8)],_0x1d822d['lat'],_0x1d822d[_0x24bf7f(-0x129,-0xea)]),_0x39a5f3=this[_0x73ff6a(0x4bb,0x498)](_0x1d822d,_0x1d822d[_0x24bf7f(-0x135,-0xf6)],_0x1d822d[_0x73ff6a(0x56a,0x570)],_0x1d822d[_0x73ff6a(0x509,0x4d1)]);if(!_0x1562ef||!_0x39a5f3)continue;if(_0x45bac5&&Math[_0x24bf7f(-0x126,-0xee)](_0x1562ef[0x0]-_0x39a5f3[0x0])>=_0x59b878)continue;this['canvasContext'][_0x24bf7f(-0x83,0x5)](_0x1562ef[0x0],_0x1562ef[0x1]),this['canvasContext']['lineTo'](_0x39a5f3[0x0],_0x39a5f3[0x1]);}this['canvasContext'][_0x73ff6a(0x556,0x50a)]();}}[_0x22e09d(0x153,0x18a)](_0x1fd93e,_0x3c905c,_0x2846f0,_0x481654){function _0x3252d5(_0x3f1256,_0x4dcd94){return _0x22e09d(_0x3f1256- -0x15e,_0x4dcd94);}const _0x22617d=Cesium['Cartesian3']['fromDegrees'](_0x3c905c,_0x2846f0,_0x481654??this['fixedHeight']);function _0x2e7e14(_0x31b4f0,_0x9e0dd5){return _0x5c5aa9(_0x31b4f0- -0x37,_0x9e0dd5);}const _0x469930=this[_0x3252d5(-0x3c,-0xac)]['scene'];if(_0x469930['mode']===Cesium['SceneMode'][_0x3252d5(0x80,0x10)]){const _0x291e1a=new Cesium['EllipsoidalOccluder'](_0x469930[_0x2e7e14(0x33,0x51)]['ellipsoid'],_0x469930[_0x3252d5(-0x4b,-0x3a)]['positionWC']),_0x3cdf5f=_0x291e1a['isPointVisible'](_0x22617d);if(!_0x3cdf5f)return _0x1fd93e[_0x2e7e14(0x13,0x98)]=0x0,null;}const _0x435538=mars3d__namespace['PointTrans'][_0x3252d5(0x24,0x4f)](this['_map']['scene'],_0x22617d);return _0x435538?[_0x435538['x'],_0x435538['y']]:null;}['clear'](){function _0x3028fe(_0x312bc2,_0x5c35ad){return _0x5c5aa9(_0x5c35ad-0xb8,_0x312bc2);}this[_0x2f2f87(-0x3d,-0x3)][_0x2f2f87(-0x97,-0xc3)]();function _0x2f2f87(_0x239154,_0x1def45){return _0x22e09d(_0x239154- -0x1fa,_0x1def45);}delete this[_0x3028fe(0xf2,0xca)];}['initWorker'](){this['worker']=new Worker(this['options'][_0x1fc76b(0x29e,0x289)]),this[_0x1fc76b(0x29e,0x25f)][_0x1fc76b(0x22e,0x2ab)]=_0x467bb4=>{function _0x57180c(_0x8a4835,_0x127eeb){return _0x1fc76b(_0x8a4835-0x20,_0x127eeb);}this['_drawLines'](_0x467bb4[_0x57180c(0x200,0x1b3)]['particles']),this['_updateIng2']=![];},this['windField']={'init':_0x59b56f=>{function _0x2a6f0f(_0x30feb1,_0x539fb1){return _0x4679c5(_0x30feb1-0x1c4,_0x539fb1);}function _0x4f5c81(_0x128dfe,_0x5a80c5){return _0x1fc76b(_0x128dfe- -0x395,_0x5a80c5);}const _0x512fc2={};_0x512fc2['type']=_0x2a6f0f(0x76,0x5c),_0x512fc2['options']=_0x59b56f,this['worker'][_0x4f5c81(-0xef,-0x174)](_0x512fc2);},'setOptions':_0x260c08=>{const _0x480621={};_0x480621['type']='setOptions',_0x480621['options']=_0x260c08,this['worker']['postMessage'](_0x480621);},'setDate':_0x2dc98e=>{function _0x45ca70(_0x39f45e,_0x16dc0b){return _0x4679c5(_0x16dc0b-0x42a,_0x39f45e);}const _0x49016e={};_0x49016e['type']=_0x45ca70(0x338,0x353);function _0xd2a733(_0x456d95,_0x353c39){return _0x1fc76b(_0x456d95- -0xa1,_0x353c39);}_0x49016e[_0x45ca70(0x2b4,0x25f)]=_0x2dc98e,this['worker']['postMessage'](_0x49016e);},'update':()=>{if(this['_updateIng2'])return;this[_0x257d9a(0x3a1,0x364)]=!![];const _0x21ff92={};function _0x257d9a(_0x4cad7d,_0x5c636c){return _0x1fc76b(_0x4cad7d-0x1b4,_0x5c636c);}function _0x1f71ce(_0x49431d,_0x2064f3){return _0x4679c5(_0x49431d-0x208,_0x2064f3);}_0x21ff92['type']=_0x1f71ce(0xc6,0xa7),this['worker']['postMessage'](_0x21ff92);},'clear':()=>{const _0x10be97={};function _0xbff14e(_0x944a99,_0x3cb6aa){return _0x4679c5(_0x944a99-0x70,_0x3cb6aa);}function _0x4df3bf(_0xc5ba12,_0x5eb9b6){return _0x1fc76b(_0xc5ba12- -0x167,_0x5eb9b6);}_0x10be97[_0xbff14e(-0x14b,-0x140)]=_0x4df3bf(0xc3,0x63),this[_0xbff14e(-0x9d,-0xf1)][_0x4df3bf(0x13f,0x167)](_0x10be97);}};function _0x4679c5(_0x2fb1a2,_0x53102c){return _0x22e09d(_0x2fb1a2- -0x2e4,_0x53102c);}function _0x1fc76b(_0x44f88e,_0x1732c3){return _0x5c5aa9(_0x44f88e-0x227,_0x1732c3);}this['windField']['init'](this[_0x1fc76b(0x28f,0x267)]);}}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x22e09d(0x159,0x13c)]=WindUtil;const _0xb99daf={};_0xb99daf[_0x5c5aa9(0x10,0x54)]=!![],Object['defineProperty'](exports,_0x5c5aa9(-0x14,-0xa2),_0xb99daf);
|
|
14
|
+
'use strict';(function(_0x13c4be,_0x520e83){const _0x37cc1e=_0x13c4be();function _0x4652f4(_0x566a1e,_0x13481b){return _0x1e2b(_0x566a1e-0x231,_0x13481b);}function _0x114cf8(_0x4e5086,_0x7e314){return _0x1e2b(_0x4e5086-0x3c8,_0x7e314);}while(!![]){try{const _0x59d1bc=-parseInt(_0x114cf8(0x53e,0x5a7))/0x1+-parseInt(_0x4652f4(0x429,0x48b))/0x2+-parseInt(_0x4652f4(0x3a8,0x37c))/0x3*(-parseInt(_0x114cf8(0x5df,0x667))/0x4)+parseInt(_0x4652f4(0x354,0x36c))/0x5*(-parseInt(_0x114cf8(0x5d4,0x58b))/0x6)+-parseInt(_0x4652f4(0x413,0x387))/0x7*(parseInt(_0x4652f4(0x378,0x393))/0x8)+parseInt(_0x4652f4(0x377,0x3f2))/0x9*(-parseInt(_0x4652f4(0x356,0x389))/0xa)+parseInt(_0x114cf8(0x52a,0x542))/0xb;if(_0x59d1bc===_0x520e83)break;else _0x37cc1e['push'](_0x37cc1e['shift']());}catch(_0xbae13c){_0x37cc1e['push'](_0x37cc1e['shift']());}}}(_0x39ca,0xab973));function _interopNamespace(_0x2c580c){function _0x520ae2(_0x329518,_0x30def6){return _0x1e2b(_0x329518- -0x187,_0x30def6);}if(_0x2c580c&&_0x2c580c[_0x39508c(0x139,0x195)])return _0x2c580c;var _0x574fe4=Object['create'](null);_0x2c580c&&Object[_0x520ae2(0x8c,0x70)](_0x2c580c)[_0x520ae2(-0x76,-0x14)](function(_0x26e701){function _0x250c5f(_0x4ea88c,_0x520664){return _0x520ae2(_0x4ea88c-0x153,_0x520664);}if(_0x26e701!=='default'){var _0x5a9e91=Object['getOwnPropertyDescriptor'](_0x2c580c,_0x26e701);Object['defineProperty'](_0x574fe4,_0x26e701,_0x5a9e91[_0x250c5f(0x147,0xe3)]?_0x5a9e91:{'enumerable':!![],'get':function(){return _0x2c580c[_0x26e701];}});}});function _0x39508c(_0x252ddf,_0x2daff0){return _0x1e2b(_0x2daff0- -0x4c,_0x252ddf);}return _0x574fe4[_0x520ae2(0x89,0xfa)]=_0x2c580c,_0x574fe4;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x4c63d2(0x42,-0x20)];function getU(_0x158d8d,_0x4a5cf7){function _0x5d45a2(_0x125db8,_0x53bdf8){return _0x4c63d2(_0x53bdf8- -0x1c3,_0x125db8);}const _0xb194db=_0x158d8d*Math[_0x5d45a2(-0x158,-0x165)](Cesium$2[_0x5d45a2(-0x164,-0x1dc)][_0xdfb28e(-0xbe,-0x7b)](_0x4a5cf7));function _0xdfb28e(_0x53c8e6,_0x154a8c){return _0x4c63d2(_0x53c8e6- -0xd4,_0x154a8c);}return _0xb194db;}function _0x528101(_0x5dffc5,_0x3c5b52){return _0x1e2b(_0x3c5b52- -0x1c7,_0x5dffc5);}function getV(_0x58f2ea,_0x29ecbe){const _0x3fcef5=_0x58f2ea*Math[_0x34c24f(0x430,0x445)](Cesium$2['Math'][_0x34c24f(0x475,0x43a)](_0x29ecbe));function _0x34c24f(_0x35d039,_0x3064d3){return _0x4c63d2(_0x35d039-0x45f,_0x3064d3);}function _0x5f3710(_0x55c7c3,_0x127c9c){return _0x4c63d2(_0x127c9c-0x560,_0x55c7c3);}return _0x3fcef5;}function getSpeed(_0x3eca83,_0x54e388){function _0x36dc73(_0x109bd4,_0x2e056e){return _0x4c63d2(_0x109bd4-0x480,_0x2e056e);}const _0x354194=Math['sqrt'](Math[_0x36dc73(0x47a,0x4cf)](_0x3eca83,0x2)+Math['pow'](_0x54e388,0x2));return _0x354194;}function getDirection(_0x51ccc6,_0x4212ab){let _0x4986c0=Cesium$2['Math']['toDegrees'](Math[_0x4ecec9(0x45d,0x45c)](_0x4212ab,_0x51ccc6));function _0x4ecec9(_0x534841,_0x444d86){return _0x4c63d2(_0x534841-0x483,_0x444d86);}return _0x4986c0+=_0x4986c0<0x0?0x168:0x0,_0x4986c0;}const _0x245faa={};_0x245faa['__proto__']=null,_0x245faa[_0x528101(0x54,0x43)]=getU,_0x245faa[_0x528101(-0x5b,-0x7a)]=getV,_0x245faa[_0x528101(0x63,-0xa)]=getSpeed,_0x245faa[_0x4c63d2(-0x1f,-0x69)]=getDirection;var WindUtil=_0x245faa,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='#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',postProcessingPositionFragmentShader=_0x528101(-0xb4,-0xce),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=_0x528101(0x54,-0x18);function _0x39ca(){const _0x32e18c=['particlesTextures','IDENTITY','_calcUV','get','sin','MIN_VALUE','abs','setOptions','componentDatatype','onmessage','style','createPrimitives','original','atan2','cols','createWindTextures','addEventListener','createParticlesTextures','remove','createSegmentsGeometry','getDirection','blendFuncDestination','OPAQUE','sqrt','register','now','Math','colors','framebuffers','lastFramesPerSecond','length','grid','particlesTextureSize','zIndex','_onMouseMoveEvent','tlng','lat','windField','height','fragmentShaderSource','fillRect','createRawRenderState','visible','willReadFrequently','quietPeriod','pow','framebuffer','EventType','bind','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','useViewerBounds','initWorker','renderState','computing','frameTime','#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','_onMouseUpEvent','vertexShaderSource','nextParticlesPosition','createColorTableTexture','mouse_move','postProcessingPosition','_colorRamp','_updateIng2','xmax','_drawLines','push','floor','_calc_speedRate','getSpeed','age','layer','round','toRadians','windTextures','flipY','options','minificationFilter','clearFramebuffers','fromCache','drawingBufferHeight','frameState.commandList\x20is\x20undefined','xmin','init','_updateIng','speedFactor','viewport','mouseDown','setData','magnificationFilter','resize','requestAnimationFrame','_createCanvas','wrapS','destroy','isDynamic','FUNC_ADD','worker','mouse_down','width','CanvasWindLayer','createRenderingFramebuffers','show','speedRate','visibility','__esModule','122745HrZHro','east','fill','windData','getSegmentDrawVertexShader','isPointVisible','LINEAR','strokeStyle','stringify','camera','SCENE3D','Cesium','north','tlat','attributeLocations','value','frameRate','_canrefresh','off','clientWidth','frameRateAdjustment','prototype','231706wVzejZ','SceneMode','textures','BaseLayer','updateOptions','clientHeight','_removedHook','maxAge','FLOAT','destoryRenderingFramebuffers','segments','number','MAX_VALUE','particlesSpeed','speed','max\x20is\x20undefined,\x20calculate\x20max','update','cos','getU','applyViewerParameters','36QaUvHd','currentParticlesPosition','uniformMap','bindEvent','default','canvasContext','reCreateWindTextures','keys','talt','morphComplete','refreshTimer','115792Grcivk','ellipsoid','ymax','context','STATIC_DRAW','lineTo','latRange','isDestroy','defineProperty','#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','random','array','umin','canvasHeight','drawingBufferWidth','viewerParameters','UNSIGNED_BYTE','commandType','south','_addedHook','owner','pixelDatatype','clear','depthMask','lonRange','mouseMove','lng','WindLayer','_bilinearInterpolation','_randomParticle','bounds','destroyParticlesTextures','updatePosition','forEach','RGBA','warn','_map','hidden','particleSystem','interpolated','initFrameRate','vmin','particlesNumber','mars3d-canvasWind','samplingWindow','commandToExecute','postMessage','persists','rows','autoClear','fromGeometry','404925sEEJxa','_tomap','92930xJcXIl','rendering','outputTexture','domain','mouseUp','absolute','destination-in','updateViewerParameters','_maxAge','wind','pixelSize','modelMatrix','Compute','_onMouseDownEvent','primitives','EllipsoidalOccluder','toGridXY','_speedRate','moveTo','fromDegrees','canvasWidth','fromCssColorString','globe','slice','frameRateMonitor','dynamic','west','canvas','processWindData','ymin','lineWidth','sources','_pointerEvents','1314zELJkb','256ZHlJbr','getUVByPoint','geometry','vertexArray','isDestroyed','getPostProcessingPositionShader','getV','hasOwnProperty','flatMap','setDate','createRenderingTextures','updateWindData','Cartesian2','mode','colorTable','particles','preExecute','lineLength','beginPath','pointerEvents','_animateFrame','LayerUtil','positionWC','blue','values','stroke','clearCommand','31476841vZTLam','getCalculateSpeedShader','createComputingPrimitives','max','type','rawRenderState','min','vdata','_onMapWhellEvent','data','setGeometry','commandList','Draw','blending','globalCompositeOperation','scene','fixedHeight','shaderProgram','getUVByXY','changed','623267ytLQoF','102eDXmlV'];_0x39ca=function(){return _0x32e18c;};return _0x39ca();}const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x4c63d2(0x42,0x7f)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x3b9ac0={};function _0x586915(_0x41d7f7,_0x43c758){return _0x528101(_0x41d7f7,_0x43c758-0x296);}return _0x3b9ac0[_0x586915(0x217,0x213)]=[calculateSpeedShader],new ShaderSource$1(_0x3b9ac0);}static['getUpdatePositionShader'](){const _0x46df4a={};return _0x46df4a['sources']=[updatePositionShader],new ShaderSource$1(_0x46df4a);}static[_0x528101(0x36,0x1f)](){const _0x1cf0ba={};return _0x1cf0ba['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x1cf0ba);}static['getSegmentDrawFragmentShader'](){const _0x210dab={};return _0x210dab['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x210dab);}static[_0x4c63d2(-0x5f,-0x24)](){function _0x2e8591(_0x21a95c,_0x28fe0b){return _0x528101(_0x28fe0b,_0x21a95c-0x4b5);}const _0x33892c={};return _0x33892c[_0x2e8591(0x432,0x49a)]=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x33892c);}}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,defaultValue,defined,destroyObject}=mars3d__namespace[_0x4c63d2(0x42,0x69)];class CustomPrimitive{constructor(_0x56625f){this[_0x317c54(0x391,0x33d)]=_0x56625f['commandType'],this[_0x4c38b4(0x6f,-0x2)]=_0x56625f['geometry'];function _0x4c38b4(_0x28bad7,_0x51ccac){return _0x528101(_0x51ccac,_0x28bad7-0xed);}this[_0x4c38b4(0x116,0x14e)]=_0x56625f[_0x317c54(0x480,0x3f1)],this['primitiveType']=_0x56625f['primitiveType'],this[_0x317c54(0x49e,0x41a)]=_0x56625f[_0x4c38b4(0x134,0x10f)]||{},this['vertexShaderSource']=_0x56625f['vertexShaderSource'],this['fragmentShaderSource']=_0x56625f[_0x317c54(0x42f,0x439)],this['rawRenderState']=_0x56625f[_0x317c54(0x3f7,0x40d)],this['framebuffer']=_0x56625f['framebuffer'],this['outputTexture']=_0x56625f[_0x317c54(0x3b7,0x422)],this[_0x317c54(0x3b1,0x440)]=defaultValue(_0x56625f['autoClear'],![]);function _0x317c54(_0x54335f,_0x5de3de){return _0x528101(_0x5de3de,_0x54335f-0x457);}this['preExecute']=_0x56625f[_0x317c54(0x3e7,0x3c3)],this['show']=!![],this[_0x4c38b4(0x43,0x90)]=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x56625f[_0x317c54(0x467,0x3e5)]??(()=>!![]),this['autoClear']&&(this[_0x317c54(0x3f1,0x3d4)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x317c54(0x436,0x3de)],'pass':Pass$1[_0x317c54(0x41e,0x458)]}));}['createCommand'](_0x591543){function _0x4ab145(_0xc1a41b,_0x4a339e){return _0x4c63d2(_0x4a339e-0x4e9,_0xc1a41b);}function _0x2d3362(_0x504428,_0x3eb1fc){return _0x4c63d2(_0x3eb1fc-0x192,_0x504428);}if(this['commandType']==='Draw'){const _0x5a2020={};_0x5a2020[_0x2d3362(0x11f,0xda)]=_0x591543,_0x5a2020['geometry']=this['geometry'],_0x5a2020[_0x4ab145(0x533,0x52e)]=this[_0x2d3362(0x161,0x1d7)],_0x5a2020['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0xa58c4b=VertexArray$1['fromGeometry'](_0x5a2020),_0x1da3b7={};_0x1da3b7['context']=_0x591543,_0x1da3b7[_0x2d3362(0x1d7,0x198)]=this['vertexShaderSource'],_0x1da3b7[_0x4ab145(0x4dc,0x4dd)]=this['fragmentShaderSource'],_0x1da3b7[_0x4ab145(0x59d,0x52e)]=this[_0x4ab145(0x54d,0x52e)];const _0x1fb5fb=ShaderProgram['fromCache'](_0x1da3b7),_0x4747ca=RenderState[_0x4ab145(0x4f5,0x505)](this[_0x2d3362(0x154,0x14e)]),_0x17a4f8={};return _0x17a4f8['owner']=this,_0x17a4f8['vertexArray']=_0xa58c4b,_0x17a4f8['primitiveType']=this['primitiveType'],_0x17a4f8[_0x4ab145(0x48c,0x46e)]=Matrix4[_0x2d3362(0x1b9,0x160)],_0x17a4f8[_0x4ab145(0x51f,0x4ea)]=_0x4747ca,_0x17a4f8['shaderProgram']=_0x1fb5fb,_0x17a4f8['framebuffer']=this['framebuffer'],_0x17a4f8['uniformMap']=this['uniformMap'],_0x17a4f8['pass']=Pass$1['OPAQUE'],new DrawCommand(_0x17a4f8);}else{if(this['commandType']==='Compute'){const _0x43895b={};return _0x43895b[_0x2d3362(0x17c,0xeb)]=this,_0x43895b['fragmentShaderSource']=this['fragmentShaderSource'],_0x43895b['uniformMap']=this['uniformMap'],_0x43895b[_0x2d3362(0x88,0x10e)]=this['outputTexture'],_0x43895b[_0x2d3362(0x11d,0x106)]=!![],new ComputeCommand(_0x43895b);}else throw new Error('Unknown\x20command\x20type');}}[_0x528101(-0x27,-0x5b)](_0x847b8a,_0x84ded){function _0x4413e8(_0x31780c,_0x205e79){return _0x4c63d2(_0x205e79-0x197,_0x31780c);}this[_0x456d2e(-0x8f,-0x1b)]=_0x84ded;function _0x456d2e(_0x291a83,_0x5d3572){return _0x528101(_0x5d3572,_0x291a83- -0x11);}defined(this['commandToExecute'])&&(this['commandToExecute'][_0x456d2e(-0x8e,-0x97)]=VertexArray$1['fromGeometry']({'context':_0x847b8a,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x31a29a){if(!this['isDynamic']())return;if(!this['show']||!defined(_0x31a29a))return;!defined(this[_0x32cf50(0x1e9,0x16f)])&&(this['commandToExecute']=this['createCommand'](_0x31a29a['context']));function _0x32cf50(_0xfe442b,_0x39d626){return _0x4c63d2(_0xfe442b-0x277,_0x39d626);}function _0x38e27e(_0x297d61,_0x5df6d9){return _0x4c63d2(_0x297d61- -0x7c,_0x5df6d9);}defined(this[_0x32cf50(0x223,0x2aa)])&&this[_0x38e27e(-0xd0,-0x105)]();if(!_0x31a29a['commandList']){console[_0x38e27e(-0x114,-0xfd)](_0x38e27e(-0x5e,-0xb7));return;}defined(this['clearCommand'])&&_0x31a29a[_0x38e27e(-0xba,-0xf6)]['push'](this[_0x32cf50(0x22d,0x1f8)]),defined(this['commandToExecute'])&&_0x31a29a['commandList'][_0x38e27e(-0x6d,-0x7)](this[_0x38e27e(-0x10a,-0x132)]);}[_0x528101(-0x87,-0x7c)](){return![];}[_0x528101(0x3e,0xf)](){if(defined(this['commandToExecute'])){var _0x26d615;(_0x26d615=this['commandToExecute'][_0x47ca85(0x19,-0x21)])===null||_0x26d615===void 0x0||_0x26d615['destroy'](),this['commandToExecute']['shaderProgram']=undefined;}function _0x47ca85(_0x20e034,_0x519054){return _0x4c63d2(_0x20e034-0x51,_0x519054);}return destroyObject(this);}}function deepMerge(_0x52cbf8,_0x21adda){function _0x3097f0(_0x379690,_0x3bf788){return _0x4c63d2(_0x3bf788-0x30a,_0x379690);}if(!_0x52cbf8)return _0x21adda;if(!_0x21adda)return _0x52cbf8;function _0x4d1c55(_0x5db1af,_0xd7790f){return _0x528101(_0x5db1af,_0xd7790f-0xce);}const _0x5943a0={..._0x21adda},_0x5ad4ce=_0x5943a0;for(const _0x217389 in _0x52cbf8){if(Object[_0x4d1c55(0xb2,0xfe)][_0x3097f0(0x2b7,0x2ad)]['call'](_0x52cbf8,_0x217389)){const _0x6a4f=_0x52cbf8[_0x217389],_0x254e84=_0x21adda[_0x217389];if(Array['isArray'](_0x6a4f)){_0x5ad4ce[_0x217389]=_0x6a4f[_0x4d1c55(0x43,0x43)]();continue;}if(_0x6a4f&&typeof _0x6a4f==='object'){_0x5ad4ce[_0x217389]=deepMerge(_0x6a4f,_0x254e84||{});continue;}_0x6a4f!==undefined&&(_0x5ad4ce[_0x217389]=_0x6a4f);}}return _0x5ad4ce;}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(_0x2c6ca5,_0x4815e8,_0x4752ba,_0x3de855,_0x146948){this['context']=_0x2c6ca5,this['options']=_0x4752ba,this['viewerParameters']=_0x3de855,this['windData']=_0x4815e8;function _0x1738b7(_0x3bd8db,_0x4938d9){return _0x528101(_0x4938d9,_0x3bd8db-0x2cc);}this[_0x1738b7(0x2f7,0x291)]=0x3c,this[_0x511ffb(0x489,0x40a)]=0x1;const _0x6748a5={};_0x6748a5['scene']=_0x146948,_0x6748a5[_0x511ffb(0x3af,0x36c)]=0x1,_0x6748a5[_0x511ffb(0x437,0x416)]=0x0;function _0x511ffb(_0x4ae395,_0x37dd6d){return _0x528101(_0x37dd6d,_0x4ae395-0x45a);}this[_0x511ffb(0x3d0,0x457)]=new FrameRateMonitor(_0x6748a5),this[_0x511ffb(0x3ab,0x32e)](),this[_0x511ffb(0x41a,0x38d)](),this[_0x1738b7(0x28e,0x2d3)](),this[_0x511ffb(0x3f7,0x377)]();}['initFrameRate'](){const _0x3048dc=()=>{function _0x14a4ba(_0x4dc29f,_0x568135){return _0x1e2b(_0x4dc29f- -0x13b,_0x568135);}function _0x5c1117(_0x442540,_0x331ea6){return _0x1e2b(_0x331ea6-0x1b6,_0x442540);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this[_0x5c1117(0x34b,0x2f3)][_0x14a4ba(0x5a,0x2c)],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0x3048dc();function _0x4d7a0f(_0x31aa33,_0x14d502){return _0x4c63d2(_0x31aa33-0x273,_0x14d502);}const _0x4c28f2=setInterval(_0x3048dc,0x3e8),_0x381348=this['destroy'][_0x4d7a0f(0x270,0x25d)](this);this['destroy']=()=>{clearInterval(_0x4c28f2),_0x381348();};}['createWindTextures'](){const _0x29ecdc={};_0x29ecdc[_0x9ef57(0x527,0x54a)]=TextureMinificationFilter$1['LINEAR'];function _0xea4bbb(_0x483fc7,_0x43a631){return _0x4c63d2(_0x483fc7-0xef,_0x43a631);}function _0x9ef57(_0x36e769,_0xf80ea9){return _0x4c63d2(_0xf80ea9-0x530,_0x36e769);}_0x29ecdc[_0x9ef57(0x564,0x556)]=TextureMagnificationFilter$1[_0xea4bbb(0x12c,0x13e)];const _0xb9f8a9={'context':this[_0xea4bbb(0x37,-0x23)],'width':this['windData']['width'],'height':this['windData'][_0xea4bbb(0xe2,0xa1)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1[_0x9ef57(0x503,0x585)],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x29ecdc)};this['windTextures']={'U':new Texture$1({..._0xb9f8a9,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0xb9f8a9,'source':{'arrayBufferView':new Float32Array(this[_0xea4bbb(0x129,0x1ab)]['v'][_0x9ef57(0x4e0,0x480)])}})};}['createParticlesTextures'](){const _0x24d61d={};_0x24d61d['minificationFilter']=TextureMinificationFilter$1['NEAREST'];function _0x3e397a(_0x8e8584,_0x23eea9){return _0x528101(_0x23eea9,_0x8e8584-0x496);}_0x24d61d[_0x11b28a(0x1ca,0x14c)]=TextureMagnificationFilter$1['NEAREST'];const _0x3b7145={'context':this['context'],'width':this[_0x3e397a(0x493,0x484)]['particlesTextureSize'],'height':this[_0x11b28a(0x113,0x13f)][_0x11b28a(0x130,0x113)],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x11b28a(0x131,0x13f)][_0x11b28a(0xa4,0x113)]*this[_0x11b28a(0x13d,0x13f)][_0x11b28a(0x178,0x113)]*0x4)[_0x3e397a(0x4b3,0x424)](0x0)},'sampler':new Sampler$1(_0x24d61d)};function _0x11b28a(_0x528335,_0x183876){return _0x528101(_0x528335,_0x183876-0x142);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x3b7145),'currentParticlesPosition':new Texture$1(_0x3b7145),'nextParticlesPosition':new Texture$1(_0x3b7145),'postProcessingPosition':new Texture$1(_0x3b7145),'particlesSpeed':new Texture$1(_0x3b7145)};}[_0x4c63d2(-0x9c,-0x108)](){function _0x50fe12(_0x14d7a4,_0x46b33c){return _0x4c63d2(_0x14d7a4- -0xc2,_0x46b33c);}Object['values'](this[_0x50fe12(-0xf5,-0x103)])['forEach'](_0x2e77d3=>_0x2e77d3['destroy']());}[_0x4c63d2(-0x47,-0x85)](){function _0x25b448(_0x31b0fa,_0x3f11d4){return _0x528101(_0x31b0fa,_0x3f11d4- -0x77);}function _0x10dbbc(_0x39f08,_0x27689b){return _0x528101(_0x27689b,_0x39f08-0x54f);}this[_0x25b448(-0x113,-0x10b)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x10dbbc(0x56d,0x569)]['u'][_0x25b448(-0x81,-0xd6)],this['windData']['u'][_0x10dbbc(0x4ed,0x538)]),'vRange':()=>new Cartesian2$1(this[_0x10dbbc(0x56d,0x52e)]['v'][_0x25b448(-0x97,-0xd6)],this[_0x10dbbc(0x56d,0x5a1)]['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this[_0x10dbbc(0x56d,0x545)][_0x10dbbc(0x58e,0x5e1)]['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x1fa47c(_0x19ec6a,_0x40fbbe){return _0x25b448(_0x40fbbe,_0x19ec6a- -0xd9);}function _0x2b659b(_0x5a2935,_0x482d6b){return _0x10dbbc(_0x5a2935- -0x585,_0x482d6b);}return(this['viewerParameters'][_0x1fa47c(-0x1e8,-0x15c)]+0x32)*this[_0x1fa47c(-0x153,-0x155)][_0x1fa47c(-0x14a,-0xed)];},'frameRateAdjustment':()=>this[_0x10dbbc(0x57e,0x532)],'dimension':()=>new Cartesian2$1(this['windData']['width'],this['windData'][_0x10dbbc(0x526,0x4a9)]),'minimum':()=>new Cartesian2$1(this[_0x25b448(-0x63,-0x59)]['bounds'][_0x25b448(-0x6e,-0xff)],this[_0x10dbbc(0x56d,0x5f6)]['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds'][_0x25b448(-0x2f,-0x5b)],this['windData']['bounds'][_0x25b448(0x36,-0x50)])},'fragmentShaderSource':ShaderManager[_0x25b448(-0x139,-0xdb)](),'outputTexture':this['particlesTextures'][_0x25b448(0x1e,-0x39)],'preExecute':()=>{const _0x160b11=this['particlesTextures']['previousParticlesPosition'];function _0x58585f(_0x211c0b,_0x4144d4){return _0x10dbbc(_0x4144d4- -0x599,_0x211c0b);}this[_0x6bfecc(-0x99,-0x38)]['previousParticlesPosition']=this[_0x6bfecc(-0x7d,-0x38)]['currentParticlesPosition'],this[_0x58585f(-0x2c,-0x99)]['currentParticlesPosition']=this[_0x58585f(-0x52,-0x99)]['postProcessingPosition'],this[_0x6bfecc(-0x2d,-0x38)][_0x58585f(-0x7,-0x5c)]=_0x160b11;function _0x6bfecc(_0x452f2a,_0x2c8faa){return _0x25b448(_0x452f2a,_0x2c8faa-0x8e);}this['primitives']['calculateSpeed'][_0x58585f(-0x128,-0xf4)]&&(this[_0x58585f(-0xe3,-0xde)]['calculateSpeed']['commandToExecute']['outputTexture']=this[_0x6bfecc(-0xb7,-0x38)][_0x6bfecc(0x82,0x55)]);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x25b448(-0x93,-0xc6)][_0x25b448(0x2a,-0x31)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x569250(_0x16885d,_0x184035){return _0x25b448(_0x184035,_0x16885d-0x5a6);}function _0x45deee(_0x39a77f,_0x56aa09){return _0x10dbbc(_0x56aa09- -0x620,_0x39a77f);}this['primitives']['updatePosition'][_0x45deee(-0x17a,-0x17b)]&&(this[_0x45deee(-0x1d6,-0x165)]['updatePosition'][_0x45deee(-0x1c7,-0x17b)]['outputTexture']=this[_0x569250(0x4e0,0x4b6)]['nextParticlesPosition']);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x10dbbc(0x4b9,0x4ad),'uniformMap':{'nextParticlesPosition':()=>this[_0x10dbbc(0x500,0x592)][_0x10dbbc(0x53a,0x538)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this[_0x25b448(-0x151,-0x13f)][_0x25b448(-0x10c,-0x136)],'latRange':()=>this['viewerParameters'][_0x25b448(-0x1d3,-0x148)],'dataLonRange':()=>new Cartesian2$1(this['windData']['bounds']['west'],this[_0x25b448(0x14,-0x59)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x10dbbc(0x496,0x406)]['south'],this[_0x10dbbc(0x56d,0x507)][_0x10dbbc(0x496,0x4eb)]['north']),'randomCoefficient':function(){function _0x5702de(_0x1d3f1a,_0x3469e6){return _0x10dbbc(_0x3469e6- -0x25e,_0x1d3f1a);}return Math[_0x5702de(0x1b6,0x224)]();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this[_0x25b448(-0xf1,-0x7a)]['dropRateBump'],'useViewerBounds':()=>this['options'][_0x10dbbc(0x532,0x525)]},'fragmentShaderSource':ShaderManager[_0x25b448(-0xcc,-0xf2)](),'outputTexture':this[_0x10dbbc(0x500,0x57b)][_0x10dbbc(0x53d,0x4ee)],'preExecute':()=>{function _0x2cf36a(_0x36db92,_0x8d1b43){return _0x10dbbc(_0x8d1b43- -0x61,_0x36db92);}function _0xcd7c7a(_0x15406f,_0x5218a6){return _0x25b448(_0x5218a6,_0x15406f-0x25b);}this['primitives'][_0xcd7c7a(0x1d2,0x16a)]['commandToExecute']&&(this[_0x2cf36a(0x3e5,0x45a)]['postProcessingPosition']['commandToExecute']['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this['options']['dynamic']})};}['reCreateWindTextures'](){this[_0x4ee458(0x45a,0x49a)]['U']['destroy'](),this['windTextures']['V']['destroy']();function _0x4ee458(_0x106dc7,_0x332c49){return _0x528101(_0x106dc7,_0x332c49-0x49f);}this['createWindTextures']();}['updateWindData'](_0x4326b6){function _0x163394(_0x20b668,_0x5bc0d7){return _0x4c63d2(_0x5bc0d7-0x35,_0x20b668);}this['windData']=_0x4326b6,this[_0x163394(0x119,0x9c)]();}['updateOptions'](_0x211f58){function _0x577bbe(_0x16c12a,_0x5c3e96){return _0x4c63d2(_0x5c3e96- -0x176,_0x16c12a);}function _0xc17c21(_0x17cda9,_0x1a8fc1){return _0x528101(_0x1a8fc1,_0x17cda9-0x39b);}const _0x3bca78=_0x211f58['flipY']!==undefined&&_0x211f58['flipY']!==this[_0x577bbe(-0x1ea,-0x15d)][_0xc17c21(0x397,0x3d0)];this[_0xc17c21(0x398,0x385)]=deepMerge(_0x211f58,this['options']),_0x3bca78&&this[_0xc17c21(0x3e6,0x40a)]();}[_0x528101(-0x8e,-0x86)](_0xddc9){const {array:_0x1876b9}=_0xddc9;function _0x1c8357(_0x360447,_0x473bbb){return _0x4c63d2(_0x360447-0x49d,_0x473bbb);}let {min:_0x39f5eb,max:_0x359123}=_0xddc9;function _0x3c8d16(_0x53d2a9,_0x38afda){return _0x4c63d2(_0x53d2a9- -0x1e5,_0x38afda);}const _0x4389b4=new Float32Array(_0x1876b9['length']);_0x39f5eb===undefined&&(console[_0x1c8357(0x405,0x397)]('min\x20is\x20undefined,\x20calculate\x20min'),_0x39f5eb=Math[_0x1c8357(0x45a,0x44a)](..._0x1876b9));_0x359123===undefined&&(console[_0x3c8d16(-0x27d,-0x2f3)](_0x3c8d16(-0x189,-0x176)),_0x359123=Math['max'](..._0x1876b9));const _0x139ad9=Math['max'](Math[_0x1c8357(0x470,0x49a)](_0x39f5eb),Math['abs'](_0x359123));for(let _0x28e928=0x0;_0x28e928<_0x1876b9['length'];_0x28e928++){const _0x51fe50=_0x1876b9[_0x28e928]/_0x139ad9;_0x4389b4[_0x28e928]=_0x51fe50;}return _0x4389b4;}[_0x4c63d2(0x2b,-0x5d)](){function _0x5419ff(_0xf1d9b2,_0x457fbd){return _0x528101(_0x457fbd,_0xf1d9b2-0x71);}Object['values'](this['windTextures'])['forEach'](_0x4d8d64=>_0x4d8d64['destroy']()),Object[_0x5419ff(0x9,-0x60)](this['particlesTextures'])['forEach'](_0x1ad614=>_0x1ad614['destroy']()),Object['values'](this[_0x5419ff(-0x23,0x28)])['forEach'](_0x29f5c8=>_0x29f5c8['destroy']());function _0xdf4ce6(_0x1a22de,_0x37bf65){return _0x4c63d2(_0x1a22de-0x154,_0x37bf65);}this['frameRateMonitor']['destroy']();}}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(_0x1f26eb,_0x27c8ec,_0x2929d7,_0x5365b0){this['context']=_0x1f26eb;function _0x404e5a(_0xae62c8,_0x751be6){return _0x528101(_0x751be6,_0xae62c8-0x26b);}this['options']=_0x27c8ec;function _0x5d5a1c(_0x2df1ad,_0x344df2){return _0x528101(_0x2df1ad,_0x344df2- -0x19e);}this['viewerParameters']=_0x2929d7,this[_0x404e5a(0x251,0x20b)]=_0x5365b0,(typeof this['options'][_0x5d5a1c(-0x165,-0x1cd)]!==_0x5d5a1c(-0x1d7,-0x162)||this[_0x5d5a1c(-0x124,-0x1a1)]['particlesTextureSize']<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x404e5a(0x268,0x1dd)]['particlesTextureSize']=0x100),this[_0x404e5a(0x1f9,0x182)]=this[_0x5d5a1c(-0x15a,-0x1b2)](),this[_0x404e5a(0x29e,0x2b5)]=this['createRenderingTextures'](),this['framebuffers']=this[_0x404e5a(0x281,0x2fa)](),this['primitives']=this[_0x5d5a1c(-0x224,-0x1e2)]();}[_0x4c63d2(-0x5a,-0x8a)](){const _0x55d9f1={};function _0x3cf78a(_0x4b3d7a,_0x541f93){return _0x528101(_0x4b3d7a,_0x541f93- -0x133);}_0x55d9f1['context']=this['context'],_0x55d9f1['width']=this['context'][_0x4ade67(0x2bb,0x26f)],_0x55d9f1[_0x4ade67(0x2cc,0x30f)]=this['context']['drawingBufferHeight'],_0x55d9f1['pixelFormat']=PixelFormat[_0x4ade67(0x232,0x283)],_0x55d9f1[_0x4ade67(0x28f,0x276)]=PixelDatatype[_0x3cf78a(-0x207,-0x1fa)];const _0x4a98b8=_0x55d9f1,_0x33acb6={};_0x33acb6['context']=this['context'],_0x33acb6['width']=this['context'][_0x4ade67(0x300,0x26f)],_0x33acb6[_0x4ade67(0x37c,0x30f)]=this['context']['drawingBufferHeight'],_0x33acb6['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x33acb6[_0x4ade67(0x2d7,0x276)]=PixelDatatype['UNSIGNED_INT'];const _0x18c4e8=_0x33acb6;function _0x4ade67(_0x263c88,_0x2d1007){return _0x4c63d2(_0x2d1007-0x31c,_0x263c88);}return{'segmentsColor':new Texture(_0x4a98b8),'segmentsDepth':new Texture(_0x18c4e8)};}['createRenderingFramebuffers'](){const _0x401fb2={};_0x401fb2['context']=this[_0x1a6312(-0x24c,-0x28c)];function _0x1a6312(_0x1a0d37,_0x415bd1){return _0x528101(_0x415bd1,_0x1a0d37- -0x178);}return _0x401fb2['colorTextures']=[this['textures']['segmentsColor']],_0x401fb2['depthTexture']=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x401fb2)};}[_0x528101(0xb2,0x3a)](){function _0x217374(_0x2994a3,_0x1c398f){return _0x4c63d2(_0x2994a3-0x3dc,_0x1c398f);}function _0x1b2909(_0x10060c,_0x169f6a){return _0x528101(_0x169f6a,_0x10060c-0x360);}Object[_0x217374(0x390,0x3ba)](this['framebuffers'])[_0x1b2909(0x2aa,0x25f)](_0x2039aa=>{function _0x18a705(_0xaccb2e,_0x535b10){return _0x217374(_0xaccb2e- -0x36b,_0x535b10);}_0x2039aa[_0x18a705(0x9c,0xa0)]();});}['createColorTableTexture'](){const _0x310acc=new Float32Array(this['options'][_0x19f6a1(-0x1a2,-0x131)][_0x20c72e(0x5a,-0x30)](_0x498bc2=>{function _0x4ba581(_0x5c87b4,_0x399f50){return _0x19f6a1(_0x5c87b4,_0x399f50-0x4a1);}function _0x513439(_0x7e08df,_0x98c4e3){return _0x19f6a1(_0x7e08df,_0x98c4e3-0x512);}const _0x578148=Color$1[_0x4ba581(0x29e,0x317)](_0x498bc2);return[_0x578148['red'],_0x578148['green'],_0x578148[_0x513439(0x388,0x3ac)],_0x578148['alpha']];})),_0x4f80a3={};_0x4f80a3['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x4f80a3['magnificationFilter']=TextureMagnificationFilter[_0x20c72e(-0x1c,0x69)];function _0x19f6a1(_0x3caa1e,_0x28d0ee){return _0x528101(_0x3caa1e,_0x28d0ee- -0xfd);}_0x4f80a3[_0x19f6a1(-0x183,-0xef)]=TextureWrap['CLAMP_TO_EDGE'],_0x4f80a3['wrapT']=TextureWrap['CLAMP_TO_EDGE'];function _0x20c72e(_0x21fac9,_0xa5f617){return _0x4c63d2(_0xa5f617-0x2c,_0x21fac9);}return new Texture({'context':this[_0x20c72e(-0xa4,-0x8c)],'width':this['options']['colors'][_0x20c72e(0x18,0x17)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x4f80a3),'source':{'width':this[_0x19f6a1(-0x88,-0x100)]['colors'][_0x20c72e(-0x62,0x17)],'height':0x1,'arrayBufferView':_0x310acc}});}['createSegmentsGeometry'](){const _0x84a303=0x4,_0x598950=this['options'][_0x277b8e(-0x1db,-0x148)];let _0x23ae85=[];for(let _0x4fb0aa=0x0;_0x4fb0aa<_0x598950;_0x4fb0aa++){for(let _0x105a50=0x0;_0x105a50<_0x598950;_0x105a50++){for(let _0x1d43e1=0x0;_0x1d43e1<_0x84a303;_0x1d43e1++){_0x23ae85['push'](_0x4fb0aa/_0x598950),_0x23ae85[_0x2be9ed(0x461,0x4e8)](_0x105a50/_0x598950);}}}_0x23ae85=new Float32Array(_0x23ae85);const _0x2d2bd0=this['options'][_0x2be9ed(0x44b,0x4c6)]**0x2;let _0x1519d7=[];for(let _0x40fef2=0x0;_0x40fef2<_0x2d2bd0;_0x40fef2++){_0x1519d7[_0x277b8e(-0x17f,-0x126)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}function _0x277b8e(_0x145679,_0xd9e174){return _0x528101(_0x145679,_0xd9e174- -0x119);}_0x1519d7=new Float32Array(_0x1519d7);let _0x29f126=[];for(let _0x1d116c=0x0,_0x5472cf=0x0;_0x1d116c<_0x2d2bd0;_0x1d116c++){_0x29f126[_0x2be9ed(0x4c3,0x4e8)](_0x5472cf+0x0,_0x5472cf+0x1,_0x5472cf+0x2,_0x5472cf+0x2,_0x5472cf+0x1,_0x5472cf+0x3),_0x5472cf+=_0x84a303;}_0x29f126=new Uint32Array(_0x29f126);function _0x2be9ed(_0x43902d,_0x528a03){return _0x4c63d2(_0x528a03-0x4d9,_0x43902d);}const _0x4de17d={};_0x4de17d['componentDatatype']=ComponentDatatype['FLOAT'],_0x4de17d['componentsPerAttribute']=0x2,_0x4de17d[_0x2be9ed(0x46d,0x48d)]=_0x23ae85;const _0x3d7c3d={};_0x3d7c3d[_0x277b8e(-0x11b,-0x160)]=ComponentDatatype['FLOAT'],_0x3d7c3d['componentsPerAttribute']=0x3,_0x3d7c3d['values']=_0x1519d7;const _0x4eadb0=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x4de17d),'normal':new GeometryAttribute(_0x3d7c3d)}),'indices':_0x29f126});return _0x4eadb0;}[_0x4c63d2(-0xa,-0x11)](_0x4f7269){const _0x4078ea={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x4f7269};return Appearance['getDefaultRenderState'](!![],![],_0x4078ea);}['createPrimitives'](){const _0x5cb5d3={};_0x5cb5d3['st']=0x0,_0x5cb5d3['normal']=0x1;const _0x5bac24={};function _0x1ad5ad(_0x1f22d6,_0x2191aa){return _0x4c63d2(_0x2191aa-0x39a,_0x1f22d6);}_0x5bac24['enabled']=!![];const _0x4d0b3b={};_0x4d0b3b['enabled']=!![],_0x4d0b3b['blendEquation']=WebGLRenderingContext[_0x1ad5ad(0x439,0x3c7)],_0x4d0b3b['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x4d0b3b[_0x9f3e3d(0x269,0x1f2)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x144008={};_0x144008[_0x9f3e3d(0x239,0x233)]=undefined,_0x144008['depthTest']=_0x5bac24,_0x144008[_0x1ad5ad(0x308,0x2f6)]=!![],_0x144008[_0x9f3e3d(0x1a4,0x1d4)]=_0x4d0b3b;const _0x7fbbe2=new CustomPrimitive({'commandType':_0x9f3e3d(0x14e,0x1d3),'attributeLocations':_0x5cb5d3,'geometry':this[_0x1ad5ad(0x2f2,0x37a)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this[_0x1ad5ad(0x3e7,0x39c)][_0x1ad5ad(0x3a8,0x367)]['previousParticlesPosition'],'currentParticlesPosition':()=>this[_0x1ad5ad(0x3e1,0x39c)]['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x1ad5ad(0x36c,0x39c)][_0x9f3e3d(0x1a2,0x1dd)]['postProcessingPosition'],'particlesSpeed':()=>this[_0x1ad5ad(0x353,0x39c)]['particlesTextures'][_0x1ad5ad(0x427,0x3f4)],'frameRateAdjustment':()=>this[_0x9f3e3d(0x1af,0x212)]['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x323511(_0xd2920f,_0x4d7356){return _0x1ad5ad(_0xd2920f,_0x4d7356- -0x87);}var _0x429295,_0x598c8e;function _0x23a063(_0x232d17,_0x45e89c){return _0x9f3e3d(_0x45e89c,_0x232d17- -0x105);}const _0x23b1bf=new Cartesian2(((_0x429295=this[_0x23a063(0x124,0x17a)][_0x323511(0x221,0x290)])===null||_0x429295===void 0x0?void 0x0:_0x429295[_0x23a063(0xc8,0x10c)])??this[_0x323511(0x324,0x315)][_0x23a063(0x145,0xce)]['speed']['min'],((_0x598c8e=this['options']['domain'])===null||_0x598c8e===void 0x0?void 0x0:_0x598c8e['max'])??this['computing']['windData']['speed']['max']);return _0x23b1bf;},'displayRange':()=>{function _0x4f80c0(_0x46966a,_0x515674){return _0x9f3e3d(_0x515674,_0x46966a- -0x24b);}var _0x2336e0,_0x41b3b1;const _0x57c1ea=new Cartesian2(((_0x2336e0=this['options']['displayRange'])===null||_0x2336e0===void 0x0?void 0x0:_0x2336e0['min'])??this['computing']['windData'][_0xf55370(0x497,0x468)][_0x4f80c0(-0x7e,-0xd)],((_0x41b3b1=this['options']['displayRange'])===null||_0x41b3b1===void 0x0?void 0x0:_0x41b3b1[_0xf55370(0x3f6,0x3cd)])??this['computing']['windData']['speed'][_0x4f80c0(-0x81,-0x110)]);function _0xf55370(_0x1aeb73,_0xeee242){return _0x9f3e3d(_0xeee242,_0x1aeb73-0x22c);}return _0x57c1ea;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context'][_0x9f3e3d(0x16a,0x163)]/this['context'][_0x9f3e3d(0x24b,0x22d)],'pixelSize':()=>this[_0x1ad5ad(0x276,0x2ee)]['pixelSize'],'lineWidth':()=>{const _0x29efa3={};_0x29efa3['min']=0x1,_0x29efa3['max']=0x2;const _0x5d35c1=this[_0x487dbe(0x288,0x20c)]['lineWidth']||_0x29efa3;function _0x487dbe(_0x5b57b0,_0x567f4e){return _0x1ad5ad(_0x567f4e,_0x5b57b0- -0x12b);}function _0x5ad8d6(_0x31d12f,_0x448eb4){return _0x1ad5ad(_0x31d12f,_0x448eb4- -0x35f);}return new Cartesian2(_0x5d35c1['min'],_0x5d35c1[_0x5ad8d6(-0x8f,-0xb)]);},'lineLength':()=>{function _0x370953(_0x56845a,_0x707e35){return _0x9f3e3d(_0x707e35,_0x56845a- -0x8c);}const _0xabecfb={};_0xabecfb[_0x370953(0x141,0x14b)]=0x14;function _0x338ca1(_0x416695,_0x20b824){return _0x1ad5ad(_0x20b824,_0x416695- -0x246);}_0xabecfb[_0x370953(0x13e,0xf2)]=0x64;const _0x3821ac=this[_0x338ca1(0x16d,0x1d0)][_0x338ca1(0x101,0x11f)]||_0xabecfb;return new Cartesian2(_0x3821ac['min'],_0x3821ac['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x1ad5ad(0x3f3,0x3d5)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x9f3e3d(0x20b,0x206)](_0x144008)}),_0x265c01={};function _0x9f3e3d(_0x1fd3dd,_0x525341){return _0x4c63d2(_0x525341-0x210,_0x1fd3dd);}return _0x265c01['segments']=_0x7fbbe2,_0x265c01;}['onParticlesTextureSizeChange'](){const _0x27b117=this[_0x594ea5(0x481,0x462)]();this[_0x594ea5(0x429,0x424)]['segments']['geometry']=_0x27b117;const _0x296f40={};_0x296f40['context']=this['context'],_0x296f40['geometry']=_0x27b117;function _0x594ea5(_0xc9f9b1,_0x266d1b){return _0x4c63d2(_0xc9f9b1-0x4a1,_0x266d1b);}_0x296f40['attributeLocations']=this['primitives']['segments'][_0x3d5027(0x31d,0x30e)];function _0x3d5027(_0x4cc040,_0x55bec0){return _0x528101(_0x4cc040,_0x55bec0-0x2e5);}_0x296f40['bufferUsage']=BufferUsage[_0x3d5027(0x1ef,0x212)];const _0x3158be=VertexArray[_0x3d5027(0x285,0x240)](_0x296f40);this['primitives'][_0x3d5027(0x2b6,0x320)]['commandToExecute']&&(this['primitives'][_0x594ea5(0x4f8,0x504)][_0x594ea5(0x413,0x3eb)]['vertexArray']=_0x3158be);}['onColorTableChange'](){this['colorTable']['destroy']();function _0x216226(_0x215d4b,_0x40d00c){return _0x528101(_0x215d4b,_0x40d00c-0x21d);}this[_0x216226(0x1f0,0x1ab)]=this['createColorTableTexture']();}[_0x4c63d2(0x51,-0x1f)](_0x5e54e1){const _0x235fed=_0x5e54e1['colors']&&JSON[_0x4ecf42(0x4bd,0x54c)](_0x5e54e1[_0x553446(-0x1ee,-0x1ac)])!==JSON['stringify'](this['options']['colors']);function _0x4ecf42(_0x35af1a,_0x7eb04b){return _0x528101(_0x7eb04b,_0x35af1a-0x49a);}function _0x553446(_0x297ca2,_0x4d8e0){return _0x528101(_0x4d8e0,_0x297ca2- -0x1ba);}this['options']=deepMerge(_0x5e54e1,this['options']),_0x235fed&&this['onColorTableChange']();}['destroy'](){Object[_0x429889(0xe2,0x107)](this['framebuffers'])[_0x429889(0xa0,0xb9)](_0x1cc52d=>{_0x1cc52d['destroy']();}),Object['values'](this['primitives'])['forEach'](_0x57ac30=>{function _0x5cd0a0(_0xa3c901,_0x159c5e){return _0x429889(_0xa3c901,_0x159c5e-0x108);}_0x57ac30[_0x5cd0a0(0x2dc,0x286)]();});function _0x181450(_0x315926,_0x1a714a){return _0x4c63d2(_0x1a714a-0x33f,_0x315926);}function _0x429889(_0x41de7f,_0x21785d){return _0x528101(_0x41de7f,_0x21785d-0x16f);}this[_0x181450(0x2a8,0x2e9)][_0x429889(0x1c2,0x17e)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x36161,_0x4b5cde,_0x103193,_0x3a158d,_0x51fadb){this['context']=_0x36161;function _0x3856c2(_0x15469c,_0x5c2b3d){return _0x528101(_0x5c2b3d,_0x15469c-0x9c);}this['options']=_0x103193,this['viewerParameters']=_0x3a158d,this['computing']=new WindParticlesComputing(_0x36161,_0x4b5cde,_0x103193,_0x3a158d,_0x51fadb),this['rendering']=new WindParticlesRendering(_0x36161,_0x103193,_0x3a158d,this['computing']),this[_0x3856c2(0x9b,0xfa)]();}['getPrimitives'](){function _0xe38e40(_0x2e327d,_0x3b919a){return _0x4c63d2(_0x2e327d-0x201,_0x3b919a);}const _0x202b50=[this['computing'][_0xe38e40(0x189,0x1d1)]['calculateSpeed'],this['computing'][_0xe38e40(0x189,0x206)][_0x4bf1e9(0x44f,0x479)],this[_0xe38e40(0x203,0x20b)]['primitives']['postProcessingPosition'],this[_0x4bf1e9(0x465,0x3f0)][_0xe38e40(0x189,0x1d6)]['segments']];function _0x4bf1e9(_0x4a60e6,_0x224a4b){return _0x528101(_0x224a4b,_0x4a60e6-0x506);}return _0x202b50;}['clearFramebuffers'](){function _0x4649fa(_0x1230a1,_0x6a3bf2){return _0x4c63d2(_0x1230a1-0x12c,_0x6a3bf2);}const _0x180a14=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0xa167bf(_0x44669f,_0x47c535){return _0x528101(_0x44669f,_0x47c535-0x198);}Object[_0x4649fa(0x194,0x17c)](this['rendering'][_0xa167bf(0x142,0x165)])['forEach'](_0x3f05d0=>{function _0x4f59e6(_0x417d37,_0x39375a){return _0x4649fa(_0x417d37-0xd,_0x39375a);}function _0x1ba9b5(_0x4fd1c3,_0x1ab56){return _0xa167bf(_0x4fd1c3,_0x1ab56- -0xe4);}_0x180a14['framebuffer']=this[_0x4f59e6(0xb4,0xd7)]['framebuffers'][_0x3f05d0],_0x180a14['execute'](this[_0x1ba9b5(-0x58,-0x20)]);});}['changeOptions'](_0x2c0cc9){let _0x480997=![];_0x2c0cc9['particlesTextureSize']&&this['options'][_0x51688f(-0x200,-0x235)]!==_0x2c0cc9['particlesTextureSize']&&(_0x480997=!![]);function _0x3655fe(_0x508274,_0x5f4372){return _0x528101(_0x5f4372,_0x508274- -0xb8);}const _0x29a353=deepMerge(_0x2c0cc9,this['options']);if(_0x29a353[_0x3655fe(-0xe7,-0x8a)]<0x1)throw new Error(_0x51688f(-0x209,-0x224));this[_0x51688f(-0x27e,-0x209)]=_0x29a353,this[_0x51688f(-0x324,-0x2a7)]['updateOptions'](_0x2c0cc9),this['computing'][_0x3655fe(-0x83,-0x17)](_0x2c0cc9);function _0x51688f(_0x20fc5c,_0x23b72c){return _0x4c63d2(_0x23b72c- -0x222,_0x20fc5c);}_0x480997&&(this['computing'][_0x51688f(-0x31b,-0x2be)](),this['computing'][_0x51688f(-0x1ec,-0x244)](),this['rendering']['onParticlesTextureSizeChange']());}[_0x4c63d2(0x60,0xab)](_0x48d28e){function _0x4f4a59(_0x3f4206,_0x13b321){return _0x528101(_0x13b321,_0x3f4206-0x3da);}this['viewerParameters']=_0x48d28e;function _0x15d9c3(_0x110833,_0x6e06d9){return _0x528101(_0x6e06d9,_0x110833-0x1df);}this[_0x15d9c3(0x1c5,0x212)][_0x15d9c3(0x117,0x122)]=_0x48d28e,this[_0x4f4a59(0x339,0x39a)][_0x15d9c3(0x117,0xfa)]=_0x48d28e;}['destroy'](){function _0x35d3ac(_0x53126e,_0x156274){return _0x4c63d2(_0x156274-0x170,_0x53126e);}function _0x22f0af(_0xdab1fd,_0x375d18){return _0x528101(_0x375d18,_0xdab1fd- -0xa5);}this[_0x22f0af(-0xbf,-0xd1)]['destroy'](),this['rendering'][_0x35d3ac(0x1d9,0x19b)]();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x321d6b={};_0x321d6b[_0x4c63d2(-0x43,-0x14)]=0x1,_0x321d6b[_0x528101(-0x61,-0x62)]=0x2;const _0x56dec1={};_0x56dec1['min']=0x14,_0x56dec1['max']=0x64;const _0x50b030={};_0x50b030['particlesTextureSize']=0x64,_0x50b030['fixedHeight']=0x0,_0x50b030['lineWidth']=_0x321d6b,_0x50b030['lineLength']=_0x56dec1,_0x50b030['speedFactor']=0x1,_0x50b030['dropRate']=0.003,_0x50b030['dropRateBump']=0.001,_0x50b030[_0x528101(-0x6e,-0x34)]=['rgb(206,255,255)'],_0x50b030['flipY']=![],_0x50b030[_0x528101(-0xdb,-0x89)]=!![];const DEF_OPTIONS=_0x50b030;class WindLayer extends BaseLayer$1{constructor(_0x4bf973={}){_0x4bf973={...DEF_OPTIONS,..._0x4bf973},super(_0x4bf973),this['_setOptionsHook'](_0x4bf973,_0x4bf973);}get['layer'](){return this['primitives'];}get['data'](){function _0x4e421d(_0x27137c,_0x2f69ab){return _0x4c63d2(_0x27137c-0x495,_0x2f69ab);}function _0x521f6d(_0x169b6c,_0x2c975f){return _0x528101(_0x2c975f,_0x169b6c-0x244);}return this[_0x521f6d(0x241,0x1b8)][_0x521f6d(0x1e8,0x185)];}set['data'](_0x58bb9e){this[_0x5e4da9(-0x1b0,-0x17a)]['data']=_0x58bb9e;function _0x5e4da9(_0x5261ec,_0x12415f){return _0x528101(_0x5261ec,_0x12415f- -0x177);}function _0x5c9c2d(_0x1e9be9,_0xc995b4){return _0x528101(_0xc995b4,_0x1e9be9-0x12a);}this[_0x5e4da9(-0x103,-0x16e)](_0x58bb9e);}get[_0x528101(0x6,-0x34)](){return this['options']['colors'];}set['colors'](_0x436e08){this['options']['colors']=_0x436e08;const _0x3b9a60={};_0x3b9a60['colors']=_0x436e08,this['_setOptionsHook'](this['options'],_0x3b9a60);}['_mountedHook'](){}['_addedHook'](){this['scene']=this[_0x3d4d5e(0x197,0x139)]['scene'],this['camera']=this[_0x3d4d5e(0x197,0x1cf)][_0x3fe26d(-0x189,-0x147)];this[_0x3d4d5e(0x247,0x1f7)]['data']&&this['setData'](this['options']['data']);if(!this['windData'])return;this[_0x3d4d5e(0x182,0x10e)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x3d4d5e(0x1f4,0x1d4)][_0x3fe26d(-0x220,-0x2a9)]};function _0x3d4d5e(_0x5c26f5,_0x3b7973){return _0x4c63d2(_0x5c26f5-0x22e,_0x3b7973);}this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this[_0x3d4d5e(0x268,0x258)],this[_0x3d4d5e(0x247,0x1bf)],this['viewerParameters'],this['scene']);function _0x3fe26d(_0x37b2a2,_0x17177d){return _0x4c63d2(_0x37b2a2- -0x1c9,_0x17177d);}this[_0x3d4d5e(0x1b6,0x196)]=this['particleSystem']['getPrimitives'](),this['primitives']['forEach'](_0x40513b=>{function _0x25f874(_0x502570,_0x166169){return _0x3d4d5e(_0x166169-0x336,_0x502570);}function _0x5973b5(_0x377158,_0x35ed5f){return _0x3d4d5e(_0x377158- -0x192,_0x35ed5f);}this[_0x5973b5(0x62,0xc6)][_0x5973b5(0x24,0x25)]['add'](_0x40513b);}),this['camera']['percentageChanged']=0.01,this['camera']['changed'][_0x3fe26d(-0x1ec,-0x1b9)](this['updateViewerParameters'][_0x3d4d5e(0x22b,0x19b)](this)),this[_0x3d4d5e(0x1f4,0x281)][_0x3d4d5e(0x298,0x2f5)]['addEventListener'](this[_0x3d4d5e(0x1af,0x22b)]['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters'][_0x3fe26d(-0x1cc,-0x15b)](this));}[_0x4c63d2(0x53,0xb6)](){function _0x26088c(_0x50ba45,_0x324626){return _0x4c63d2(_0x324626-0x15b,_0x50ba45);}this[_0x3c1e62(0x3e7,0x3b5)][_0x3c1e62(0x371,0x3ff)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),this['scene'][_0x3c1e62(0x411,0x401)]['removeEventListener'](this[_0x3c1e62(0x328,0x383)][_0x3c1e62(0x3a4,0x359)](this)),window['removeEventListener']('resize',this['updateViewerParameters'][_0x3c1e62(0x3a4,0x3ee)](this));function _0x3c1e62(_0x29d131,_0x7798f5){return _0x4c63d2(_0x29d131-0x3a7,_0x7798f5);}this[_0x3c1e62(0x32f,0x2ca)]&&(this['primitives']['forEach'](_0x2edc3b=>{function _0x9a11e5(_0x56c9b0,_0x33b61a){return _0x26088c(_0x56c9b0,_0x33b61a- -0x247);}function _0x236ba0(_0x1331c5,_0x1324f8){return _0x3c1e62(_0x1324f8-0x18b,_0x1331c5);}this[_0x236ba0(0x56e,0x4f8)]['primitives'][_0x236ba0(0x56e,0x511)](_0x2edc3b);}),delete this['primitives']),this['particleSystem']&&(this['particleSystem']['destroy'](),delete this['particleSystem']);}['setData'](_0x2dec37,_0x5a04bb){this[_0x249851(-0x24b,-0x1b9)]=this[_0x249851(-0x2b9,-0x25d)](_0x2dec37);if(_0x5a04bb){this['_removedHook'](),this['_addedHook']();return;}function _0x4493ee(_0x441eda,_0x30b14a){return _0x4c63d2(_0x441eda-0x2af,_0x30b14a);}function _0x249851(_0x257c65,_0x27ee19){return _0x4c63d2(_0x27ee19- -0x1f3,_0x257c65);}this[_0x249851(-0x227,-0x288)]?(this[_0x4493ee(0x21a,0x19d)]['computing'][_0x4493ee(0x256,0x1cf)](this['windData']),this[_0x249851(-0x247,-0x22d)]['requestRender']()):this[_0x4493ee(0x207,0x1bc)]();}['_setOptionsHook'](_0x5e3e41,_0x557df8){function _0x313a3e(_0x514ae3,_0x25b486){return _0x4c63d2(_0x514ae3-0x2b,_0x25b486);}this[_0x313a3e(-0x6a,-0x10)]&&(this['particleSystem']['changeOptions'](_0x557df8),this['scene']['requestRender']());}[_0x4c63d2(-0x6a,-0xda)](_0x1a2ff6){function _0x2474c4(_0x17eb78,_0x38f9ee){return _0x528101(_0x38f9ee,_0x17eb78-0x4aa);}function _0x545cdb(_0x4a611f,_0x30eff8){return _0x528101(_0x4a611f,_0x30eff8- -0xb3);}var _0x3446bd,_0x3ce4e4;const _0x8ccb36={..._0x1a2ff6},_0x4d465c=_0x8ccb36;!_0x4d465c['height']&&_0x4d465c['rows']&&(_0x4d465c[_0x2474c4(0x481,0x486)]=_0x4d465c[_0x2474c4(0x403,0x445)]);!_0x4d465c[_0x545cdb(-0x38,-0x9f)]&&_0x4d465c['cols']&&(_0x4d465c['width']=_0x4d465c[_0x545cdb(-0xf7,-0xf4)]);!_0x4d465c[_0x545cdb(-0x128,-0x16c)]&&(_0x4d465c[_0x545cdb(-0xe9,-0x16c)]={'west':_0x4d465c['xmin'],'south':_0x4d465c[_0x2474c4(0x425,0x3a4)],'east':_0x4d465c[_0x2474c4(0x49b,0x45a)],'north':_0x4d465c[_0x545cdb(-0x1cf,-0x188)]});if(!_0x4d465c['u']){const _0x4cb5b5={};_0x4cb5b5['array']=_0x1a2ff6['udata'],_0x4cb5b5[_0x545cdb(-0x192,-0x112)]=_0x1a2ff6[_0x2474c4(0x3df,0x370)],_0x4cb5b5['max']=_0x1a2ff6['umax'],_0x4d465c['u']=_0x4cb5b5;}if(!_0x4d465c['v']){const _0x175310={};_0x175310[_0x545cdb(-0x1fe,-0x17f)]=_0x1a2ff6['vdata'],_0x175310['min']=_0x1a2ff6[_0x2474c4(0x3fc,0x413)],_0x175310['max']=_0x1a2ff6['vmax'],_0x4d465c['v']=_0x175310;}if(((_0x3446bd=_0x4d465c['speed'])===null||_0x3446bd===void 0x0?void 0x0:_0x3446bd['min'])===undefined||((_0x3ce4e4=_0x4d465c[_0x545cdb(-0xfc,-0x74)])===null||_0x3ce4e4===void 0x0?void 0x0:_0x3ce4e4['max'])===undefined||_0x4d465c['speed'][_0x2474c4(0x3de,0x39e)]===undefined){const _0x12474a={'array':new Float32Array(_0x4d465c['u']['array'][_0x2474c4(0x479,0x500)]),'min':Number[_0x2474c4(0x4e7,0x496)],'max':Number[_0x545cdb(-0x130,-0xfd)]};for(let _0x3c5dce=0x0;_0x3c5dce<_0x4d465c['u']['array']['length'];_0x3c5dce++){_0x12474a['array'][_0x3c5dce]=Math[_0x545cdb(-0x6a,-0xeb)](_0x4d465c['u'][_0x545cdb(-0x12b,-0x17f)][_0x3c5dce]*_0x4d465c['u'][_0x545cdb(-0x1ab,-0x17f)][_0x3c5dce]+_0x4d465c['v'][_0x2474c4(0x3de,0x440)][_0x3c5dce]*_0x4d465c['v'][_0x545cdb(-0x13e,-0x17f)][_0x3c5dce]),_0x12474a[_0x2474c4(0x3de,0x3a4)][_0x3c5dce]!==0x0&&(_0x12474a['min']=Math['min'](_0x12474a['min'],_0x12474a['array'][_0x3c5dce]),_0x12474a[_0x545cdb(-0xea,-0x115)]=Math['max'](_0x12474a[_0x545cdb(-0xc8,-0x115)],_0x12474a['array'][_0x3c5dce]));}_0x4d465c['speed']=_0x12474a;}return _0x4d465c;}['updateViewerParameters'](){var _0x5ebbfa;const _0xdda3e9=this[_0x2395dc(-0x164,-0xd2)],_0x2d450c=_0xdda3e9[_0x2395dc(-0x178,-0x103)],_0x4026e9={};_0x4026e9['x']=0x0,_0x4026e9['y']=0x0;function _0x2395dc(_0x1502df,_0x4f0287){return _0x4c63d2(_0x4f0287- -0x98,_0x1502df);}const _0x6f620f={};_0x6f620f['x']=0x0,_0x6f620f['y']=_0x2d450c['clientHeight'];const _0x2593b2={};_0x2593b2['x']=_0x2d450c[_0x5d569e(-0x252,-0x1dc)],_0x2593b2['y']=0x0;const _0x27c197={};_0x27c197['x']=_0x2d450c['clientWidth'],_0x27c197['y']=_0x2d450c['clientHeight'];const _0x2eee4b=[_0x4026e9,_0x6f620f,_0x2593b2,_0x27c197];let _0x516593=0xb4,_0x481d03=-0xb4,_0x119e89=0x5a,_0x4f01e4=-0x5a,_0x1d56a3=![];for(const _0x100444 of _0x2eee4b){const _0x2dc2a6=_0xdda3e9['camera']['pickEllipsoid'](new Cesium$1[(_0x2395dc(-0x114,-0xf0))](_0x100444['x'],_0x100444['y']),_0xdda3e9[_0x5d569e(-0x25d,-0x296)]['ellipsoid']);if(!_0x2dc2a6){_0x1d56a3=!![];break;}const _0x2ec69d=_0xdda3e9[_0x2395dc(-0x7f,-0x108)]['ellipsoid']['cartesianToCartographic'](_0x2dc2a6),_0x4f16b9=Cesium$1['Math']['toDegrees'](_0x2ec69d['longitude']),_0x2c0a77=Cesium$1[_0x2395dc(-0x122,-0xb1)]['toDegrees'](_0x2ec69d['latitude']);_0x516593=Math['min'](_0x516593,_0x4f16b9),_0x481d03=Math['max'](_0x481d03,_0x4f16b9),_0x119e89=Math[_0x5d569e(-0x24b,-0x269)](_0x119e89,_0x2c0a77),_0x4f01e4=Math['max'](_0x4f01e4,_0x2c0a77);}if(!_0x1d56a3){const _0xdb510f=new Cesium$1['Cartesian2'](Math['max'](this[_0x5d569e(-0x1d9,-0x1ec)]['bounds']['west'],_0x516593),Math['min'](this['windData'][_0x2395dc(-0xe2,-0x135)]['east'],_0x481d03)),_0x5dc57c=new Cesium$1[(_0x5d569e(-0x256,-0x27e))](Math['max'](this[_0x5d569e(-0x179,-0x1ec)]['bounds']['south'],_0x119e89),Math['min'](this[_0x5d569e(-0x208,-0x1ec)]['bounds']['north'],_0x4f01e4)),_0x2bc5a3=(_0xdb510f['y']-_0xdb510f['x'])*0.05,_0x2a6666=(_0x5dc57c['y']-_0x5dc57c['x'])*0.05;_0xdb510f['x']=Math['max'](this[_0x5d569e(-0x211,-0x1ec)][_0x2395dc(-0x114,-0x135)][_0x2395dc(-0x12b,-0x104)],_0xdb510f['x']-_0x2bc5a3),_0xdb510f['y']=Math['min'](this[_0x5d569e(-0x1ca,-0x1ec)][_0x2395dc(-0xbe,-0x135)][_0x5d569e(-0x1b6,-0x1ee)],_0xdb510f['y']+_0x2bc5a3),_0x5dc57c['x']=Math[_0x5d569e(-0x2a3,-0x26c)](this[_0x5d569e(-0x16e,-0x1ec)][_0x5d569e(-0x2c9,-0x2c3)][_0x2395dc(-0x13e,-0x141)],_0x5dc57c['x']-_0x2a6666),_0x5dc57c['y']=Math['min'](this['windData']['bounds']['north'],_0x5dc57c['y']+_0x2a6666),this['viewerParameters'][_0x5d569e(-0x31b,-0x2c9)]=_0xdb510f,this[_0x5d569e(-0x2b9,-0x2d2)][_0x2395dc(-0x1b3,-0x14d)]=_0x5dc57c;const _0x3b4288=this['windData']['bounds'][_0x5d569e(-0x235,-0x1ee)]-this['windData']['bounds']['west'],_0x463774=this[_0x2395dc(-0x5c,-0x5e)]['bounds']['north']-this['windData'][_0x2395dc(-0xd9,-0x135)][_0x2395dc(-0x1b8,-0x141)],_0x20b786=(_0xdb510f['y']-_0xdb510f['x'])/_0x3b4288,_0x471e11=(_0x5dc57c['y']-_0x5dc57c['x'])/_0x463774,_0x4c3948=Math['min'](_0x20b786,_0x471e11),_0x30d539=0x3e8*_0x4c3948;_0x30d539>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math[_0x2395dc(-0xfc,-0xdb)](0x3e8,_0x30d539)));}function _0x5d569e(_0x2059b7,_0xe79d72){return _0x4c63d2(_0xe79d72- -0x226,_0x2059b7);}this['viewerParameters']['sceneMode']=this['scene'][_0x5d569e(-0x253,-0x27d)],(_0x5ebbfa=this[_0x2395dc(-0x1a1,-0x12d)])===null||_0x5ebbfa===void 0x0||_0x5ebbfa[_0x2395dc(-0x34,-0x38)](this[_0x5d569e(-0x2f6,-0x2d2)]);}['getDataAtLonLat'](_0x62321a,_0x7e40b6){const {bounds:_0x31ffb3,width:_0x528402,height:_0x29fa63,u:_0x393861,v:_0x1c695d,speed:_0x34e607}=this['windData'],{flipY:_0x1b8dde}=this[_0x159633(0x519,0x49e)];if(_0x62321a<_0x31ffb3['west']||_0x62321a>_0x31ffb3['east']||_0x7e40b6<_0x31ffb3['south']||_0x7e40b6>_0x31ffb3['north'])return null;const _0x34d9e9=(_0x62321a-_0x31ffb3['west'])/(_0x31ffb3[_0x5797b1(0x81,0x76)]-_0x31ffb3['west'])*(_0x528402-0x1);let _0xe7bd96=(_0x7e40b6-_0x31ffb3[_0x159633(0x457,0x4cf)])/(_0x31ffb3['north']-_0x31ffb3['south'])*(_0x29fa63-0x1);_0x1b8dde&&(_0xe7bd96=_0x29fa63-0x1-_0xe7bd96);const _0x1e995f=Math[_0x5797b1(0x76,0x4e)](_0x34d9e9),_0x41f35f=Math[_0x5797b1(0x67,0x4e)](_0xe7bd96),_0x2e8265=Math[_0x5797b1(0x2e,0x4e)](_0x34d9e9),_0x3f1db6=Math[_0x5797b1(-0x69,-0x5)](_0x2e8265+0x1,_0x528402-0x1),_0x141afd=Math['floor'](_0xe7bd96),_0x50b0a3=Math['min'](_0x141afd+0x1,_0x29fa63-0x1),_0x3855a5=_0x34d9e9-_0x2e8265,_0x3864db=_0xe7bd96-_0x141afd,_0x24d1f0=_0x41f35f*_0x528402+_0x1e995f,_0x3fdea1=_0x141afd*_0x528402+_0x2e8265,_0x234724=_0x141afd*_0x528402+_0x3f1db6;function _0x5797b1(_0x151e3f,_0x4f52d2){return _0x528101(_0x151e3f,_0x4f52d2-0x5a);}const _0x1b3c05=_0x50b0a3*_0x528402+_0x2e8265,_0xeff6f9=_0x50b0a3*_0x528402+_0x3f1db6,_0x14e1f3=_0x393861[_0x5797b1(-0xc8,-0x72)][_0x3fdea1],_0x49eb29=_0x393861[_0x159633(0x450,0x4aa)][_0x234724],_0x8fe07b=_0x393861[_0x5797b1(0x12,-0x72)][_0x1b3c05],_0x382841=_0x393861['array'][_0xeff6f9],_0x4d55c4=(0x1-_0x3855a5)*(0x1-_0x3864db)*_0x14e1f3+_0x3855a5*(0x1-_0x3864db)*_0x49eb29+(0x1-_0x3855a5)*_0x3864db*_0x8fe07b+_0x3855a5*_0x3864db*_0x382841,_0x39e5f4=_0x1c695d[_0x159633(0x450,0x412)][_0x3fdea1],_0x5dae37=_0x1c695d[_0x159633(0x450,0x43f)][_0x234724],_0x10872d=_0x1c695d['array'][_0x1b3c05],_0x420770=_0x1c695d['array'][_0xeff6f9],_0x1060bb=(0x1-_0x3855a5)*(0x1-_0x3864db)*_0x39e5f4+_0x3855a5*(0x1-_0x3864db)*_0x5dae37+(0x1-_0x3855a5)*_0x3864db*_0x10872d+_0x3855a5*_0x3864db*_0x420770,_0x590e04=Math[_0x5797b1(-0x43,0x22)](_0x4d55c4*_0x4d55c4+_0x1060bb*_0x1060bb),_0x2b28cd={};_0x2b28cd['u']=_0x393861['array'][_0x24d1f0];function _0x159633(_0x58681d,_0x5a7a85){return _0x4c63d2(_0x58681d-0x500,_0x5a7a85);}_0x2b28cd['v']=_0x1c695d[_0x159633(0x450,0x449)][_0x24d1f0],_0x2b28cd['speed']=_0x34e607[_0x159633(0x450,0x3c3)][_0x24d1f0];const _0x46b13e={};_0x46b13e['u']=_0x4d55c4,_0x46b13e['v']=_0x1060bb,_0x46b13e[_0x159633(0x55b,0x5b8)]=_0x590e04;const _0x12db5a={};return _0x12db5a[_0x159633(0x4d9,0x486)]=_0x2b28cd,_0x12db5a[_0x159633(0x46c,0x46a)]=_0x46b13e,_0x12db5a;}}mars3d__namespace[_0x528101(-0x13,-0x6b)][_0x528101(0x1b,-0x37)](_0x4c63d2(-0x7d,-0xe8),WindLayer);function _0x4c63d2(_0x492d5a,_0x3db544){return _0x1e2b(_0x492d5a- -0x1ab,_0x3db544);}mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this[_0x1e9358(0xef,0x10e)]=null,this[_0x1e9358(0x151,0x1a0)]=null,this['tlng']=null,this['tlat']=null;function _0x1e9358(_0x3d6333,_0x4aa6ed){return _0x528101(_0x3d6333,_0x4aa6ed-0x1cb);}function _0x3df56c(_0x175bf4,_0xc991c0){return _0x4c63d2(_0x175bf4-0xd7,_0xc991c0);}this[_0x1e9358(0x175,0x1c2)]=null,this['speed']=null;}[_0x528101(-0x25,0xf)](){for(const _0x38cab9 in this){delete this[_0x38cab9];}}}class CanvasWindField{constructor(_0x111967){function _0x30598b(_0x185a99,_0x290e1c){return _0x4c63d2(_0x185a99-0x15a,_0x290e1c);}this[_0x30598b(0x12e,0xbf)](_0x111967);}get[_0x4c63d2(0x34,0x42)](){function _0x2f44b5(_0x1e5a31,_0x2e4b33){return _0x4c63d2(_0x1e5a31-0x532,_0x2e4b33);}return this[_0x2f44b5(0x4bd,0x53a)];}set[_0x4c63d2(0x34,0xa5)](_0x19c11e){function _0xa2856d(_0x1bb173,_0x3eafb4){return _0x4c63d2(_0x1bb173- -0x1a3,_0x3eafb4);}function _0x463807(_0x275ee7,_0x2fb519){return _0x4c63d2(_0x2fb519-0x26a,_0x275ee7);}this['_speedRate']=(0x64-(_0x19c11e>0x63?0x63:_0x19c11e))*0x64,this[_0xa2856d(-0x192,-0x134)]=[(this['xmax']-this['xmin'])/this[_0x463807(0x193,0x1f5)],(this['ymax']-this[_0x463807(0x17e,0x201)])/this[_0x463807(0x238,0x1f5)]];}get['maxAge'](){function _0x4a91d7(_0x1171ab,_0xa2cc1d){return _0x4c63d2(_0xa2cc1d-0x21a,_0x1171ab);}return this[_0x4a91d7(0x1e7,0x19c)];}set['maxAge'](_0x26243a){this['_maxAge']=_0x26243a;}['setOptions'](_0x230f82){function _0x761df3(_0x180df8,_0x5891be){return _0x528101(_0x5891be,_0x180df8-0x466);}this[_0x761df3(0x463,0x3fb)]=_0x230f82;function _0x397deb(_0x8ecae3,_0x23604a){return _0x528101(_0x23604a,_0x8ecae3- -0x10c);}this[_0x761df3(0x49e,0x531)]=_0x230f82['maxAge']||0x78,this[_0x397deb(-0xf4,-0xbb)]=_0x230f82['speedRate']||0x32,this['particles']=[];const _0x50eeaf=_0x230f82['particlesNumber']||0x1000;for(let _0x353aa4=0x0;_0x353aa4<_0x50eeaf;_0x353aa4++){const _0x3af1ea=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0x3af1ea);}}['setDate'](_0x48598b){this[_0x4e4bfc(-0x1ac,-0x1ba)]=_0x48598b['rows'],this['cols']=_0x48598b[_0x4e4bfc(-0x146,-0x167)],this['xmin']=_0x48598b[_0x4e4bfc(-0x102,-0xc1)],this[_0x4e4bfc(-0x114,-0xba)]=_0x48598b['xmax'],this['ymin']=_0x48598b['ymin'],this[_0x19dff7(0x347,0x30d)]=_0x48598b[_0x4e4bfc(-0x1da,-0x1f8)],this['grid']=[];const _0x3de19e=_0x48598b['udata'],_0x71c60f=_0x48598b[_0x19dff7(0x3b9,0x384)];function _0x4e4bfc(_0x411cab,_0x2109e7){return _0x4c63d2(_0x411cab- -0x121,_0x2109e7);}let _0x2a5df1=![];_0x3de19e['length']===this['rows']&&_0x3de19e[0x0]['length']===this['cols']&&(_0x2a5df1=!![]);let _0x3478b9=0x0;function _0x19dff7(_0x1a2dcc,_0x92a781){return _0x4c63d2(_0x92a781-0x3c6,_0x1a2dcc);}let _0x438aa6=null,_0x253026=null;for(let _0x4cf042=0x0;_0x4cf042<this[_0x19dff7(0x3a4,0x33b)];_0x4cf042++){_0x438aa6=[];for(let _0x135844=0x0;_0x135844<this[_0x4e4bfc(-0x146,-0x14c)];_0x135844++,_0x3478b9++){_0x2a5df1?_0x253026=this['_calcUV'](_0x3de19e[_0x4cf042][_0x135844],_0x71c60f[_0x4cf042][_0x135844]):_0x253026=this['_calcUV'](_0x3de19e[_0x3478b9],_0x71c60f[_0x3478b9]),_0x438aa6['push'](_0x253026);}this['grid'][_0x4e4bfc(-0x112,-0xe8)](_0x438aa6);}!this['options'][_0x4e4bfc(-0x109,-0x86)]&&this[_0x19dff7(0x3f8,0x3b2)]['reverse']();}['clear'](){function _0x6c15ae(_0x4a84eb,_0x1c437f){return _0x4c63d2(_0x1c437f- -0x9a,_0x4a84eb);}delete this['rows'];function _0x5be54c(_0x1bd351,_0x25d14a){return _0x4c63d2(_0x1bd351-0xd5,_0x25d14a);}delete this['cols'],delete this['xmin'],delete this[_0x5be54c(0xe2,0x82)],delete this['ymin'],delete this[_0x6c15ae(-0x19a,-0x153)],delete this['grid'],delete this['particles'];}[_0x4c63d2(-0x76,0x4)](_0x5aa90a,_0x2077f8){function _0x46ba08(_0x68f1bc,_0x4dab5f){return _0x528101(_0x68f1bc,_0x4dab5f- -0x67);}const _0x2e497d=(_0x5aa90a-this[_0x193919(0x534,0x4c3)])/(this[_0x46ba08(0x12,-0x76)]-this[_0x193919(0x53a,0x4c3)])*(this[_0x193919(0x426,0x47f)]-0x1);function _0x193919(_0x231074,_0x402cf6){return _0x528101(_0x231074,_0x402cf6-0x4c0);}const _0x1b79dc=(this['ymax']-_0x2077f8)/(this[_0x193919(0x46d,0x3eb)]-this[_0x193919(0x3ef,0x43b)])*(this['rows']-0x1);return[_0x2e497d,_0x1b79dc];}['getUVByXY'](_0x447288,_0x1b0013){function _0x48962c(_0x2c9012,_0x3cd71d){return _0x528101(_0x2c9012,_0x3cd71d-0x2eb);}if(_0x447288<0x0||_0x447288>=this[_0x48962c(0x296,0x2aa)]||_0x1b0013>=this[_0x1db251(-0x26b,-0x230)])return[0x0,0x0,0x0];function _0x1db251(_0x9f9171,_0x5ae031){return _0x4c63d2(_0x5ae031- -0x1a5,_0x9f9171);}const _0x79df4a=Math['floor'](_0x447288),_0x57d53b=Math['floor'](_0x1b0013);if(_0x79df4a===_0x447288&&_0x57d53b===_0x1b0013)return this['grid'][_0x1b0013][_0x447288];const _0xa4da29=_0x79df4a+0x1,_0x4ac7fb=_0x57d53b+0x1,_0x49e462=this['getUVByXY'](_0x79df4a,_0x57d53b),_0x5edf32=this['getUVByXY'](_0xa4da29,_0x57d53b),_0xcc696c=this['getUVByXY'](_0x79df4a,_0x4ac7fb),_0x5e886d=this[_0x48962c(0x305,0x298)](_0xa4da29,_0x4ac7fb);let _0xa8f96b=null;try{_0xa8f96b=this[_0x1db251(-0x1ba,-0x244)](_0x447288-_0x79df4a,_0x1b0013-_0x57d53b,_0x49e462,_0x5edf32,_0xcc696c,_0x5e886d);}catch(_0x32d210){console['log'](_0x447288,_0x1b0013);}return _0xa8f96b;}['_bilinearInterpolation'](_0x2131aa,_0x3d855e,_0xf6b55,_0x502a98,_0x288e18,_0x45a71f){const _0x2504e6=0x1-_0x2131aa,_0x34b786=0x1-_0x3d855e,_0x1d7f49=_0x2504e6*_0x34b786,_0x1806ae=_0x2131aa*_0x34b786,_0x5abea8=_0x2504e6*_0x3d855e,_0x4c4532=_0x2131aa*_0x3d855e,_0x3f4bb3=_0xf6b55[0x0]*_0x1d7f49+_0x502a98[0x0]*_0x1806ae+_0x288e18[0x0]*_0x5abea8+_0x45a71f[0x0]*_0x4c4532,_0x1b2e8b=_0xf6b55[0x1]*_0x1d7f49+_0x502a98[0x1]*_0x1806ae+_0x288e18[0x1]*_0x5abea8+_0x45a71f[0x1]*_0x4c4532;return this['_calcUV'](_0x3f4bb3,_0x1b2e8b);}[_0x4c63d2(-0x31,-0x37)](_0x2b6dda,_0x1a9ea2){function _0x13c349(_0x4514ef,_0x5190b3){return _0x4c63d2(_0x4514ef- -0x198,_0x5190b3);}return[+_0x2b6dda,+_0x1a9ea2,Math[_0x13c349(-0x1b4,-0x174)](_0x2b6dda*_0x2b6dda+_0x1a9ea2*_0x1a9ea2)];}['getUVByPoint'](_0x45bebd,_0x563fd5){if(!this['isInExtent'](_0x45bebd,_0x563fd5))return null;const _0x1463e1=this['toGridXY'](_0x45bebd,_0x563fd5),_0x16a129=this['getUVByXY'](_0x1463e1[0x0],_0x1463e1[0x1]);return _0x16a129;}['isInExtent'](_0x41a86a,_0xe702ca){function _0x5df5a5(_0x41746e,_0x51dd42){return _0x4c63d2(_0x51dd42-0x566,_0x41746e);}function _0x250126(_0x45ba78,_0x553b88){return _0x528101(_0x553b88,_0x45ba78-0x3da);}return _0x41a86a>=this['xmin']&&_0x41a86a<=this['xmax']&&_0xe702ca>=this[_0x250126(0x355,0x2c9)]&&_0xe702ca<=this[_0x250126(0x305,0x36c)]?!![]:![];}['getRandomLatLng'](){function _0x4e274b(_0xadbda0,_0x4d4a3b){return _0x528101(_0x4d4a3b,_0xadbda0-0x431);}function _0xce2de4(_0x56a1c4,_0x5e7356){return _0x528101(_0x5e7356,_0x56a1c4- -0x163);}const _0x171732=fRandomByfloat(this[_0x4e274b(0x434,0x495)],this[_0x4e274b(0x422,0x43a)]),_0x492ad2=fRandomByfloat(this['ymin'],this['ymax']),_0x504827={};return _0x504827['lat']=_0x492ad2,_0x504827[_0x4e274b(0x374,0x39d)]=_0x171732,_0x504827;}['getParticles'](){function _0x58e4e1(_0x213979,_0x4a5b86){return _0x528101(_0x4a5b86,_0x213979-0x42d);}let _0x26af90,_0xb7011d,_0xc74a39;function _0x4ab9e8(_0x110dd2,_0x5aeaca){return _0x4c63d2(_0x110dd2- -0x1ed,_0x5aeaca);}for(let _0x5d88a3=0x0,_0x2975eb=this[_0x58e4e1(0x3bc,0x348)]['length'];_0x5d88a3<_0x2975eb;_0x5d88a3++){let _0x383227=this[_0x58e4e1(0x3bc,0x43c)][_0x5d88a3];_0x383227['age']<=0x0&&(_0x383227=this[_0x4ab9e8(-0x28b,-0x221)](_0x383227));if(_0x383227['age']>0x0){const _0xd0899f=_0x383227[_0x4ab9e8(-0x1fd,-0x213)],_0x33127d=_0x383227[_0x4ab9e8(-0x1a9,-0x19a)];_0xc74a39=this['getUVByPoint'](_0xd0899f,_0x33127d),_0xc74a39?(_0x26af90=_0xd0899f+this['_calc_speedRate'][0x0]*_0xc74a39[0x0],_0xb7011d=_0x33127d+this['_calc_speedRate'][0x1]*_0xc74a39[0x1],_0x383227['lng']=_0xd0899f,_0x383227[_0x4ab9e8(-0x1fc,-0x24f)]=_0x33127d,_0x383227['tlng']=_0x26af90,_0x383227[_0x4ab9e8(-0x1a9,-0x20b)]=_0xb7011d,_0x383227['speed']=_0xc74a39[0x2],_0x383227[_0x4ab9e8(-0x1da,-0x1a6)]--):_0x383227['age']=0x0;}}return this[_0x58e4e1(0x3bc,0x44f)];}['_randomParticle'](_0x3cf3d9){let _0x4d0f8a,_0x12965c;for(let _0x1325d1=0x0;_0x1325d1<0x1e;_0x1325d1++){_0x4d0f8a=this['getRandomLatLng'](),_0x12965c=this[_0x3ccd20(0x206,0x26a)](_0x4d0f8a[_0x3ccd20(0x1c8,0x217)],_0x4d0f8a['lat']);if(_0x12965c&&_0x12965c[0x2]>0x0)break;}if(!_0x12965c)return _0x3cf3d9;function _0x2b33fe(_0x654550,_0x24aa47){return _0x4c63d2(_0x24aa47- -0x1b0,_0x654550);}function _0x3ccd20(_0xa0b010,_0x3136c0){return _0x4c63d2(_0xa0b010-0x269,_0x3136c0);}const _0x42dfec=_0x4d0f8a[_0x3ccd20(0x1c8,0x1a7)]+this['_calc_speedRate'][0x0]*_0x12965c[0x0],_0x3eaf88=_0x4d0f8a[_0x2b33fe(-0x24a,-0x1bf)]+this['_calc_speedRate'][0x1]*_0x12965c[0x1];return _0x3cf3d9['lng']=_0x4d0f8a['lng'],_0x3cf3d9[_0x2b33fe(-0x1dc,-0x1bf)]=_0x4d0f8a[_0x2b33fe(-0x20e,-0x1bf)],_0x3cf3d9['tlng']=_0x42dfec,_0x3cf3d9['tlat']=_0x3eaf88,_0x3cf3d9[_0x3ccd20(0x27c,0x30f)]=Math[_0x3ccd20(0x27e,0x272)](0xa+Math['random']()*this['maxAge']),_0x3cf3d9['speed']=_0x12965c[0x2],_0x3cf3d9;}['destroy'](){for(const _0x708768 in this){delete this[_0x708768];}}}function _0x1e2b(_0x4ceeb6,_0x36eb78){const _0x39cae1=_0x39ca();return _0x1e2b=function(_0x1e2bc8,_0x348bb1){_0x1e2bc8=_0x1e2bc8-0xf2;let _0x36f6cb=_0x39cae1[_0x1e2bc8];return _0x36f6cb;},_0x1e2b(_0x4ceeb6,_0x36eb78);}function fRandomByfloat(_0x54abd3,_0x40013a){function _0x27e793(_0x52cd61,_0x4da520){return _0x4c63d2(_0x52cd61-0x2f6,_0x4da520);}return _0x54abd3+Math[_0x27e793(0x245,0x1f7)]()*(_0x40013a-_0x54abd3);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer'][_0x528101(0x56,0x34)];class CanvasWindLayer extends BaseLayer{constructor(_0xbd8bd7={}){super(_0xbd8bd7),this['_setOptionsHook'](_0xbd8bd7),this['canvas']=null,_0xbd8bd7['colors']&&_0xbd8bd7['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0xbd8bd7));}['_setOptionsHook'](_0x146022,_0x42a07b){this[_0x3c1fa0(-0x17c,-0x1f3)]=0x3e8/(_0x146022[_0x3c1fa0(-0x138,-0x1b5)]||0xa);function _0xa75c3c(_0x22bdfb,_0x56dbd8){return _0x528101(_0x22bdfb,_0x56dbd8- -0x107);}this['_pointerEvents']=this[_0xa75c3c(-0xef,-0x10a)]['pointerEvents']??![],this['color']=_0x146022['color']||'#ffffff',this[_0xa75c3c(-0x112,-0x18b)]=_0x146022['lineWidth']||0x1;function _0x3c1fa0(_0x4900de,_0x57df7c){return _0x4c63d2(_0x4900de- -0x17f,_0x57df7c);}this[_0x3c1fa0(-0x1b8,-0x228)]=_0x146022[_0xa75c3c(-0xf6,-0x15c)]??0x0,this[_0x3c1fa0(-0x167,-0x1b1)]=_0x146022['flipY']??![],this[_0x3c1fa0(-0x18d,-0x1cf)]&&this[_0xa75c3c(-0xc0,-0x131)][_0xa75c3c(-0x10a,-0x14f)](_0x146022);}get[_0x4c63d2(0x14,-0x4c)](){return this['canvas'];}get[_0x528101(-0x11,-0x8e)](){function _0x2f055f(_0x11af44,_0x4abc35){return _0x528101(_0x4abc35,_0x11af44- -0xc2);}return this['_map']['scene']['canvas'][_0x2f055f(-0x94,-0xad)];}get['canvasHeight'](){function _0x328a52(_0x11e4a3,_0x2cf599){return _0x4c63d2(_0x2cf599-0x52d,_0x11e4a3);}return this['_map']['scene']['canvas'][_0x328a52(0x4fb,0x57f)];}get[_0x528101(-0xd0,-0x6d)](){function _0x429838(_0x10a9a2,_0xefa1fe){return _0x4c63d2(_0xefa1fe- -0x10d,_0x10a9a2);}return this[_0x429838(-0x1c7,-0x173)];}set['pointerEvents'](_0x1eabab){this[_0x11a7bd(0x189,0x20e)]=_0x1eabab;function _0x11a7bd(_0x43ccef,_0x250bce){return _0x528101(_0x250bce,_0x43ccef-0x20b);}if(!this['canvas'])return;function _0x1af477(_0x2b9b3a,_0x160ad1){return _0x528101(_0x2b9b3a,_0x160ad1-0x3d4);}_0x1eabab?this['canvas'][_0x11a7bd(0x1c6,0x14f)]['pointer-events']='all':this[_0x11a7bd(0x184,0x130)]['style']['pointer-events']='none';}get[_0x4c63d2(-0x91,-0x1f)](){return this['options']['particlesNumber'];}set['particlesNumber'](_0xd20590){this['options'][_0xbfe5aa(0x14e,0x177)]=_0xd20590;function _0x140115(_0x2bf8eb,_0x2eee83){return _0x4c63d2(_0x2eee83- -0x3f,_0x2bf8eb);}clearTimeout(this[_0x140115(-0x58,0x9)]);function _0xbfe5aa(_0x366bc8,_0x4e8283){return _0x4c63d2(_0x4e8283-0x208,_0x366bc8);}this[_0x140115(-0x61,0x9)]=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){return this['options']['speedRate'];}set[_0x4c63d2(0x34,0x35)](_0x553221){function _0x163d44(_0x4453b0,_0x45f3e3){return _0x528101(_0x4453b0,_0x45f3e3-0x38);}this['options'][_0x5c158d(0x469,0x45b)]=_0x553221;function _0x5c158d(_0xd663c4,_0x5beb9c){return _0x528101(_0xd663c4,_0x5beb9c-0x443);}this[_0x5c158d(0x476,0x419)]&&(this['windField'][_0x5c158d(0x4d4,0x45b)]=_0x553221);}get[_0x4c63d2(0x54,-0x9)](){return this['options']['maxAge'];}set[_0x528101(0x4f,0x38)](_0x1e6cb5){this['options']['maxAge']=_0x1e6cb5;function _0x568d64(_0x4683aa,_0x31cde0){return _0x4c63d2(_0x31cde0-0x426,_0x4683aa);}this[_0x568d64(0x4a7,0x418)]&&(this['windField']['maxAge']=_0x1e6cb5);}get['data'](){return this['windData'];}set['data'](_0xcf63b4){this['setData'](_0xcf63b4);}get['rectangle'](){let _0xcdc1ae=this['windData']['xmin'],_0x39db36=this[_0x194506(0x2af,0x2d2)][_0x4bb9c1(0x430,0x44d)];function _0x4bb9c1(_0x57e8b3,_0x267ea0){return _0x4c63d2(_0x57e8b3-0x423,_0x267ea0);}let _0x2b9e2d=this[_0x4bb9c1(0x45d,0x419)]['ymin'],_0x85433c=this[_0x194506(0x2af,0x23b)][_0x4bb9c1(0x36a,0x2fa)];_0x39db36>=0x167&&_0xcdc1ae===0x0&&(_0xcdc1ae=-0xb4,_0x39db36=0xb4);function _0x194506(_0x535a5e,_0x435d8d){return _0x4c63d2(_0x535a5e-0x275,_0x435d8d);}return _0xcdc1ae=Math[_0x4bb9c1(0x3dd,0x3e3)](_0xcdc1ae,-0xb4),_0x39db36=Math['min'](_0x39db36,0xb4),_0x2b9e2d=Math['max'](_0x2b9e2d,-0x5a),_0x85433c=Math['min'](_0x85433c,0x5a),Cesium['Rectangle'][_0x4bb9c1(0x3b0,0x391)](_0xcdc1ae,_0x2b9e2d,_0x39db36,_0x85433c);}['_showHook'](_0x561138){function _0x1f0d94(_0x5b7e4d,_0x165e48){return _0x528101(_0x5b7e4d,_0x165e48-0x53e);}function _0x117e8e(_0x427104,_0x2126f2){return _0x528101(_0x2126f2,_0x427104-0x43e);}_0x561138?this['_addedHook']():(this[_0x1f0d94(0x4f6,0x55c)]&&(this['options'][_0x1f0d94(0x4f6,0x4e2)]=this['windData']),this[_0x117e8e(0x475,0x4c4)]());}['_mountedHook'](){this['options']['worker']?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}[_0x528101(-0x116,-0xc4)](){function _0x303b26(_0x1da4a3,_0x173f9){return _0x528101(_0x1da4a3,_0x173f9- -0x1c2);}this[_0x476346(0x482,0x40d)]=this[_0x476346(0x49d,0x4a1)]();const _0x4ce2ee={};_0x4ce2ee[_0x476346(0x4a5,0x470)]=!![];function _0x476346(_0x2e998d,_0x479366){return _0x528101(_0x2e998d,_0x479366-0x494);}this['canvasContext']=this[_0x303b26(-0x29b,-0x249)]['getContext']('2d',_0x4ce2ee),this[_0x303b26(-0x106,-0x17a)](),this[_0x476346(0x46d,0x491)]['data']&&this[_0x476346(0x43c,0x49d)](this[_0x303b26(-0x259,-0x1c5)][_0x476346(0x4b8,0x438)]);}[_0x4c63d2(0x53,0x6c)](){this['clear']();function _0x292f43(_0x164ba2,_0x280fab){return _0x528101(_0x280fab,_0x164ba2-0x414);}this['unbindEvent']();function _0x2ae796(_0x3eb156,_0x232760){return _0x4c63d2(_0x232760-0x2bd,_0x3eb156);}this[_0x292f43(0x38d,0x3ea)]&&(this['_map']['container']['removeChild'](this['canvas']),delete this[_0x292f43(0x38d,0x421)]);}[_0x4c63d2(0x29,0x2c)](){const _0x4786ea=mars3d__namespace['DomUtil']['create']('canvas',_0x5b654b(0x63,-0xa),this['_map']['container']);function _0x5b654b(_0x3d35aa,_0x557351){return _0x4c63d2(_0x3d35aa-0xf3,_0x557351);}_0x4786ea['style']['position']=_0x1886b7(0x192,0x128),_0x4786ea[_0x5b654b(0xca,0xfa)]['top']='0px',_0x4786ea['style']['left']='0px',_0x4786ea['style']['width']=this['_map'][_0x1886b7(0x1f2,0x16f)]['canvas']['clientWidth']+'px',_0x4786ea[_0x1886b7(0x20b,0x180)]['height']=this[_0x1886b7(0xc3,0x112)][_0x1886b7(0x1d2,0x16f)][_0x5b654b(0x88,0xd7)]['clientHeight']+'px',_0x4786ea[_0x1886b7(0x1cc,0x180)][_0x1886b7(0x1ea,0x158)]=this[_0x1886b7(0xf8,0x143)]?'auto':'none';function _0x1886b7(_0x56c661,_0xfadfdd){return _0x4c63d2(_0xfadfdd-0x1a9,_0x56c661);}return _0x4786ea[_0x1886b7(0x114,0x180)][_0x1886b7(0x1ad,0x197)]=this['options'][_0x5b654b(0xe1,0x61)]??0x9,_0x4786ea[_0x5b654b(0x123,0xd3)]=this['_map']['scene'][_0x1886b7(0x19a,0x13e)][_0x5b654b(0x13d,0x10f)],_0x4786ea['height']=this['_map'][_0x1886b7(0x183,0x16f)]['canvas']['clientHeight'],_0x4786ea;}['resize'](){function _0x4eb17f(_0x45775a,_0x18f73e){return _0x4c63d2(_0x18f73e-0x4a0,_0x45775a);}function _0x418ef1(_0x391998,_0x11e644){return _0x4c63d2(_0x11e644- -0x1ab,_0x391998);}this['canvas']&&(this['canvas'][_0x4eb17f(0x4ce,0x477)][_0x418ef1(-0x1be,-0x17b)]=this['_map']['scene']['canvas'][_0x4eb17f(0x54b,0x4ea)]+'px',this['canvas'][_0x418ef1(-0x267,-0x1d4)]['height']=this[_0x418ef1(-0x1f5,-0x242)][_0x4eb17f(0x4b4,0x466)]['canvas'][_0x4eb17f(0x4b6,0x4f2)]+'px',this['canvas'][_0x418ef1(-0x15c,-0x17b)]=this[_0x4eb17f(0x447,0x409)]['scene']['canvas']['clientWidth'],this[_0x418ef1(-0x295,-0x216)]['height']=this['_map']['scene'][_0x4eb17f(0x40b,0x435)][_0x418ef1(-0x16c,-0x159)]);}[_0x528101(0x9e,0x48)](){function _0x2a1dba(_0x3244c8,_0x4094eb){return _0x528101(_0x3244c8,_0x4094eb-0x45e);}const _0x343046=this;let _0x58f80f=Date['now']();(function _0x9738e1(){function _0x233147(_0x412904,_0x1592f2){return _0x1e2b(_0x1592f2-0x368,_0x412904);}function _0x28cd03(_0x55a505,_0x75f81d){return _0x1e2b(_0x75f81d-0x357,_0x55a505);}if(_0x343046[_0x233147(0x4e6,0x45f)])return;_0x343046['_animateFrame']=window[_0x233147(0x4e8,0x53b)](_0x9738e1);if(_0x343046['show']&&_0x343046[_0x233147(0x4aa,0x505)]){const _0x410eed=Date[_0x233147(0x53d,0x4f9)](),_0x212eea=_0x410eed-_0x58f80f;_0x212eea>_0x343046['frameTime']&&(_0x58f80f=_0x410eed-_0x212eea%_0x343046[_0x28cd03(0x4f4,0x505)],_0x343046[_0x233147(0x564,0x570)]());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this[_0x2c4007(0x57,-0x1c)]=![],this[_0x2a1dba(0x430,0x44b)]=![]);function _0x2c4007(_0x116a3a,_0x5d430f){return _0x528101(_0x116a3a,_0x5d430f- -0x2f);}this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x2a1dba(0x3c5,0x401)],this),this[_0x2c4007(-0x102,-0xe2)]['on'](mars3d__namespace['EventType'][_0x2c4007(0x60,-0x27)],this['_onMouseDownEvent'],this),this[_0x2a1dba(0x33d,0x3ab)]['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x2c4007(0x33,-0x46)],this));}['unbindEvent'](){function _0x4bdf96(_0x667882,_0x4fb45f){return _0x528101(_0x4fb45f,_0x667882-0x17d);}function _0x59be52(_0x396dc1,_0xb2f4c3){return _0x528101(_0xb2f4c3,_0x396dc1- -0x20e);}window['cancelAnimationFrame'](this['_animateFrame']),delete this[_0x4bdf96(0x111,0x151)],window['removeEventListener'](_0x59be52(-0x203,-0x28f),this[_0x59be52(-0x203,-0x1d0)]),this[_0x4bdf96(0x17a,0x124)]['mouseHidden']&&(this['_map']['off'](mars3d__namespace['EventType']['wheel'],this[_0x59be52(-0x26b,-0x2b0)],this),this['_map'][_0x59be52(-0x1e1,-0x1eb)](mars3d__namespace[_0x4bdf96(0x15d,0x154)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x4bdf96(0xdf,0x9a)],this['_onMouseUpEvent'],this),this['_map'][_0x4bdf96(0x1aa,0x11d)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x3d56a7){clearTimeout(this[_0x44e742(0x434,0x3a2)]);function _0x44e742(_0xbb0c99,_0x202432){return _0x4c63d2(_0x202432-0x337,_0xbb0c99);}function _0x494f53(_0x569ec4,_0x3653eb){return _0x528101(_0x569ec4,_0x3653eb-0x3);}if(!this['show']||!this[_0x44e742(0x295,0x2cc)])return;this['canvas']['style'][_0x44e742(0x303,0x36c)]='hidden',this[_0x44e742(0x370,0x3a2)]=setTimeout(()=>{function _0x50535f(_0x2a100e,_0x5187f1){return _0x494f53(_0x2a100e,_0x5187f1-0x34a);}if(!this['show'])return;function _0x455da8(_0x5e640b,_0x56bc49){return _0x494f53(_0x5e640b,_0x56bc49-0x432);}this['redraw'](),this[_0x455da8(0x31f,0x3ae)][_0x455da8(0x387,0x3f0)]['visibility']='visible';},0xc8);}[_0x528101(-0x23,-0x95)](_0x198388){function _0x52a92b(_0x5c8613,_0x28b3dd){return _0x528101(_0x28b3dd,_0x5c8613-0x3eb);}function _0x5a8bde(_0x30a752,_0x3e0037){return _0x528101(_0x3e0037,_0x30a752-0x1e9);}this['mouse_down']=!![],this[_0x52a92b(0x338,0x386)][_0x5a8bde(0x216,0x1ca)](mars3d__namespace['EventType']['mouseMove'],this[_0x5a8bde(0x1bc,0x14b)],this),this['_map']['on'](mars3d__namespace['EventType'][_0x52a92b(0x32d,0x2fa)],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x2ece26){if(!this['show']||!this['canvas'])return;function _0x327fef(_0x55fec4,_0x7cdedf){return _0x528101(_0x7cdedf,_0x55fec4- -0x8a);}function _0x95f348(_0x4f94c8,_0x423675){return _0x528101(_0x4f94c8,_0x423675-0xf8);}this[_0x95f348(0xc6,0x10b)]&&(this['canvas'][_0x95f348(0xa7,0xb3)][_0x95f348(0xb2,0x111)]=_0x327fef(-0x13c,-0xda),this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x1e2874){function _0x5ebbea(_0x32c3b2,_0x4efa1e){return _0x4c63d2(_0x32c3b2- -0x1f6,_0x4efa1e);}if(!this[_0x33d4cf(0x34f,0x302)]||!this[_0x33d4cf(0x2b1,0x232)])return;function _0x33d4cf(_0x572473,_0x3d2f43){return _0x4c63d2(_0x572473-0x31c,_0x3d2f43);}this[_0x33d4cf(0x285,0x2dd)][_0x5ebbea(-0x1ad,-0x1b7)](mars3d__namespace[_0x33d4cf(0x318,0x34c)]['mouseMove'],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['canvas']['style']['visibility']=_0x5ebbea(-0x1ff,-0x245),this['mouse_down']=![],this['mouse_move']=![];}[_0x528101(0x9c,0x9)](_0x3ba392){function _0x48431c(_0x59b19e,_0x421e36){return _0x4c63d2(_0x59b19e-0x258,_0x421e36);}this[_0x5ed217(0x454,0x3d5)](),this[_0x48431c(0x292,0x31e)]=_0x3ba392,this['windField'][_0x48431c(0x1fd,0x198)](_0x3ba392);function _0x5ed217(_0x4e5266,_0x28f2b1){return _0x4c63d2(_0x4e5266-0x4f9,_0x28f2b1);}this['redraw']();}['redraw'](){if(!this['show'])return;function _0x495b5e(_0x12547b,_0x509fb0){return _0x4c63d2(_0x12547b-0x334,_0x509fb0);}this['windField']['setOptions'](this['options']),this[_0x495b5e(0x391,0x40b)]();}['update'](){if(this[_0x40fc37(-0x8d,-0xb5)])return;function _0x35e558(_0x53f961,_0x5ae055){return _0x4c63d2(_0x5ae055-0x39f,_0x53f961);}this[_0x35e558(0x451,0x3c0)]=!![];function _0x40fc37(_0x297f93,_0x4b7e7e){return _0x4c63d2(_0x297f93- -0xae,_0x4b7e7e);}if(this['worker'])this['windField'][_0x40fc37(-0x51,-0x49)]();else{const _0x485756=this[_0x35e558(0x374,0x391)]['getParticles']();this['_drawLines'](_0x485756);}this['_updateIng']=![];}['_drawLines'](_0x531145){this['_canvasParticles']=_0x531145,this['canvasContext']['globalCompositeOperation']=_0x494b13(-0x1b3,-0x234);function _0x55025e(_0x139729,_0x32d6c2){return _0x528101(_0x32d6c2,_0x139729- -0x64);}this[_0x494b13(-0xcd,-0xac)][_0x494b13(-0x13e,-0x18d)](0x0,0x0,this[_0x494b13(-0x1a5,-0x1f5)],this[_0x55025e(-0x12e,-0xb3)]),this['canvasContext'][_0x55025e(-0xbb,-0x44)]='lighter';function _0x494b13(_0xc434e,_0x16eed5){return _0x4c63d2(_0xc434e- -0x133,_0x16eed5);}this['canvasContext']['globalAlpha']=0.9;const _0xe77f2c=this[_0x494b13(-0x1ca,-0x184)]['scene'][_0x55025e(-0xd7,-0xf1)]!==Cesium[_0x55025e(-0x32,0x16)][_0x494b13(-0xf2,-0x10b)],_0x5e4fb7=this['canvasWidth']*0.25;if(this[_0x494b13(-0x128,-0xa4)])for(let _0xc0ccab=0x0,_0x2a260d=_0x531145['length'];_0xc0ccab<_0x2a260d;_0xc0ccab++){const _0x4ce541=_0x531145[_0xc0ccab],_0x433bb0=this['_tomap'](_0x4ce541,_0x4ce541['lng'],_0x4ce541[_0x494b13(-0x142,-0x103)],_0x4ce541['alt']),_0x5b5d0e=this['_tomap'](_0x4ce541,_0x4ce541['tlng'],_0x4ce541['tlat'],_0x4ce541[_0x494b13(-0xca,-0x11f)]);if(!_0x433bb0||!_0x5b5d0e)continue;if(_0xe77f2c&&Math[_0x55025e(-0xad,-0xd0)](_0x433bb0[0x0]-_0x5b5d0e[0x0])>=_0x5e4fb7)continue;this['canvasContext'][_0x494b13(-0x185,-0x12c)](),this[_0x55025e(-0x1a,0x5c)][_0x494b13(-0x19b,-0x157)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this['_colorRamp']['getColor'](_0x4ce541[_0x494b13(-0xd8,-0x5c)]),this[_0x494b13(-0xcd,-0x156)][_0x55025e(-0xf4,-0xe9)](_0x433bb0[0x0],_0x433bb0[0x1]),this['canvasContext']['lineTo'](_0x5b5d0e[0x0],_0x5b5d0e[0x1]),this['canvasContext'][_0x55025e(-0xcb,-0xa1)]();}else{this['canvasContext']['beginPath'](),this[_0x55025e(-0x1a,-0xa0)]['lineWidth']=this['lineWidth'],this[_0x494b13(-0xcd,-0x101)][_0x494b13(-0xf5,-0x16c)]=this['color'];for(let _0x13fa78=0x0,_0x15a6b8=_0x531145['length'];_0x13fa78<_0x15a6b8;_0x13fa78++){const _0x45ef6d=_0x531145[_0x13fa78],_0x1cee97=this[_0x55025e(-0x107,-0xdd)](_0x45ef6d,_0x45ef6d[_0x55025e(-0x121,-0x154)],_0x45ef6d[_0x494b13(-0x142,-0x15e)],_0x45ef6d['alt']),_0x69f52e=this[_0x55025e(-0x107,-0x193)](_0x45ef6d,_0x45ef6d['tlng'],_0x45ef6d['tlat'],_0x45ef6d[_0x55025e(-0x17,-0x74)]);if(!_0x1cee97||!_0x69f52e)continue;if(_0xe77f2c&&Math[_0x494b13(-0x160,-0x154)](_0x1cee97[0x0]-_0x69f52e[0x0])>=_0x5e4fb7)continue;this['canvasContext'][_0x55025e(-0xf4,-0xde)](_0x1cee97[0x0],_0x1cee97[0x1]),this[_0x55025e(-0x1a,-0x12)][_0x494b13(-0x1e9,-0x206)](_0x69f52e[0x0],_0x69f52e[0x1]);}this['canvasContext']['stroke']();}}['_tomap'](_0x3464bd,_0x2ff7b3,_0x1d7d38,_0x3943b3){const _0x1ed557=Cesium['Cartesian3'][_0x396d78(0x35b,0x378)](_0x2ff7b3,_0x1d7d38,_0x3943b3??this['fixedHeight']),_0x4d1337=this['_map']['scene'];if(_0x4d1337['mode']===Cesium[_0x355a64(0x54f,0x5dc)]['SCENE3D']){const _0x587c2c=new Cesium[(_0x355a64(0x48a,0x4a4))](_0x4d1337['globe'][_0x355a64(0x56e,0x4e8)],_0x4d1337[_0x355a64(0x541,0x541)][_0x355a64(0x4b3,0x4d5)]),_0x55c9ca=_0x587c2c[_0x355a64(0x53d,0x563)](_0x1ed557);if(!_0x55c9ca)return _0x3464bd[_0x355a64(0x514,0x4f0)]=0x0,null;}function _0x355a64(_0x55ff94,_0x4fd15c){return _0x4c63d2(_0x55ff94-0x501,_0x4fd15c);}const _0x1ef0ed=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map']['scene'],_0x1ed557);function _0x396d78(_0x3e124c,_0x56171b){return _0x4c63d2(_0x56171b-0x3eb,_0x3e124c);}return _0x1ef0ed?[_0x1ef0ed['x'],_0x1ef0ed['y']]:null;}[_0x528101(-0xfa,-0xc1)](){function _0x2cfba2(_0x3367e2,_0x2465ad){return _0x528101(_0x3367e2,_0x2465ad- -0x89);}function _0xaded5f(_0x343b06,_0x3e23c6){return _0x528101(_0x3e23c6,_0x343b06- -0x147);}this[_0x2cfba2(-0xfd,-0xb3)][_0xaded5f(-0x208,-0x209)](),delete this['windData'];}[_0x4c63d2(0x0,-0x14)](){this['worker']=new Worker(this['options']['worker']);function _0x253627(_0x1a5c71,_0x5a2564){return _0x4c63d2(_0x1a5c71- -0x1c,_0x5a2564);}this['worker'][_0x253627(-0x46,-0x27)]=_0x176979=>{this[_0xfd4120(0x500,0x4dd)](_0x176979[_0xfd4120(0x409,0x48f)][_0xfd4120(0x442,0x47a)]);function _0x16864f(_0x4bb79d,_0x423420){return _0x253627(_0x423420-0x488,_0x4bb79d);}function _0xfd4120(_0x52df79,_0x333e12){return _0x253627(_0x333e12-0x4eb,_0x52df79);}this['_updateIng2']=![];};function _0x2834b5(_0x16eff3,_0x170299){return _0x528101(_0x16eff3,_0x170299-0x546);}this['windField']={'init':_0x12650d=>{const _0x40ebcc={};function _0x532196(_0x20281f,_0x235f20){return _0x253627(_0x235f20- -0x1,_0x20281f);}_0x40ebcc['type']='init';function _0x1934a3(_0x3dc92b,_0xbfdd76){return _0x253627(_0x3dc92b-0x12d,_0xbfdd76);}_0x40ebcc[_0x1934a3(0x12a,0x109)]=_0x12650d,this[_0x1934a3(0x13f,0xb0)][_0x1934a3(0x84,0xfd)](_0x40ebcc);},'setOptions':_0x54b501=>{const _0x31dbbd={};function _0x200d55(_0x43e5c9,_0x3485e9){return _0x253627(_0x43e5c9-0x4d8,_0x3485e9);}_0x31dbbd['type']=_0x38960a(0xe2,0xc0);function _0x38960a(_0x253f17,_0x1d7f57){return _0x253627(_0x1d7f57-0x108,_0x253f17);}_0x31dbbd['options']=_0x54b501,this[_0x200d55(0x4ea,0x4f2)][_0x200d55(0x42f,0x408)](_0x31dbbd);},'setDate':_0x5a8ee0=>{function _0x5d4ac8(_0x3b862f,_0x7c6ff5){return _0x253627(_0x3b862f-0x4c6,_0x7c6ff5);}function _0x1b627e(_0x564d11,_0x21fccc){return _0x253627(_0x564d11- -0x47,_0x21fccc);}const _0x32a69f={};_0x32a69f['type']=_0x1b627e(-0xbe,-0x5c),_0x32a69f['data']=_0x5a8ee0,this[_0x5d4ac8(0x4d8,0x4f9)][_0x1b627e(-0xf0,-0x105)](_0x32a69f);},'update':()=>{function _0x3a2cbb(_0x3e4442,_0x1b243b){return _0x253627(_0x1b243b-0x30f,_0x3e4442);}if(this['_updateIng2'])return;function _0x289b99(_0x5dc425,_0xe07e4c){return _0x253627(_0xe07e4c- -0x92,_0x5dc425);}this[_0x3a2cbb(0x293,0x2ff)]=!![];const _0x2d76ab={};_0x2d76ab['type']=_0x3a2cbb(0x3a1,0x350),this[_0x289b99(-0xd2,-0x80)][_0x3a2cbb(0x211,0x266)](_0x2d76ab);},'clear':()=>{const _0x5dafb2={};function _0x166832(_0x58fdcc,_0x4bb412){return _0x253627(_0x58fdcc-0x524,_0x4bb412);}_0x5dafb2[_0x166832(0x4c3,0x548)]='clear',this['worker']['postMessage'](_0x5dafb2);}},this['windField'][_0x253627(0x4,0x93)](this[_0x2834b5(0x5d4,0x543)]);}}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x528101(-0x6c,0x15)]=CanvasWindLayer,exports[_0x4c63d2(-0xa0,-0x9e)]=WindLayer,exports['WindUtil']=WindUtil;const _0x3fd9db={};_0x3fd9db[_0x528101(-0x50,0x2a)]=!![],Object[_0x4c63d2(-0xb3,-0x10d)](exports,_0x528101(-0x6f,0x1a),_0x3fd9db);
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.9.0",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.
|
|
8
|
+
"mars3d": "~3.9.0"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|