mars3d-wind 3.10.5 → 3.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/mars3d-wind.js +3 -3
  2. package/package.json +2 -2
package/mars3d-wind.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.10.5
5
- * 编译日期:2025-09-17 20:57
4
+ * 版本信息:v3.10.7
5
+ * 编译日期:2025-10-24 21:05
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:火星科技免费公开版 ,2025-07-01
8
8
  */
@@ -11,5 +11,5 @@
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';function _0x4052a4(_0xf38ef9,_0x4c9949){return _0x27df(_0x4c9949- -0x271,_0xf38ef9);}(function(_0xe401d3,_0x3e2e11){function _0x3c116d(_0x4758e0,_0x22cc6b){return _0x27df(_0x4758e0- -0x145,_0x22cc6b);}function _0x2c1610(_0x32a0e1,_0x13d656){return _0x27df(_0x13d656-0x29b,_0x32a0e1);}const _0x120beb=_0xe401d3();while(!![]){try{const _0x3c5766=parseInt(_0x3c116d(0x38,0x4a))/0x1*(-parseInt(_0x2c1610(0x35b,0x38d))/0x2)+parseInt(_0x3c116d(-0x49,-0xa1))/0x3*(parseInt(_0x2c1610(0x309,0x38f))/0x4)+-parseInt(_0x2c1610(0x3bf,0x3fe))/0x5*(-parseInt(_0x3c116d(-0xc6,-0xb3))/0x6)+-parseInt(_0x2c1610(0x341,0x383))/0x7*(parseInt(_0x3c116d(-0xa1,-0xf5))/0x8)+parseInt(_0x2c1610(0x39c,0x40e))/0x9+-parseInt(_0x2c1610(0x480,0x3fd))/0xa+parseInt(_0x3c116d(-0x9e,-0x27))/0xb*(parseInt(_0x2c1610(0x2c9,0x30d))/0xc);if(_0x3c5766===_0x3e2e11)break;else _0x120beb['push'](_0x120beb['shift']());}catch(_0x438ef4){_0x120beb['push'](_0x120beb['shift']());}}}(_0x36fd,0x56190));function _interopNamespace(_0x14585c){function _0x332219(_0x2607eb,_0x3ff171){return _0x27df(_0x2607eb-0x3a6,_0x3ff171);}if(_0x14585c&&_0x14585c['__esModule'])return _0x14585c;var _0x74dd72=Object['create'](null);function _0x241217(_0x579e3d,_0x36e963){return _0x27df(_0x36e963-0x249,_0x579e3d);}return _0x14585c&&Object[_0x241217(0x321,0x30e)](_0x14585c)[_0x332219(0x4ec,0x4fa)](function(_0x597b3f){if(_0x597b3f!=='default'){var _0x203fea=Object['getOwnPropertyDescriptor'](_0x14585c,_0x597b3f);Object['defineProperty'](_0x74dd72,_0x597b3f,_0x203fea['get']?_0x203fea:{'enumerable':!![],'get':function(){return _0x14585c[_0x597b3f];}});}}),_0x74dd72[_0x241217(0x3c7,0x356)]=_0x14585c,_0x74dd72;}function _0x36fd(){const _0x17d386=['default','lineWidth','values','frameRateMonitor','fragmentShaderSource','_calc_speedRate','_setOptionsHook','useViewerBounds','createRenderingTextures','onColorTableChange','frameRateAdjustment','hidden','primitives','particlesSpeed','createColorTableTexture','options','pow','destroy','length','pixelSize','0px','uniformMap','frameState.commandList\x20is\x20undefined','maxAge','initWorker','moveTo','attributeLocations','lonRange','destoryRenderingFramebuffers','min\x20is\x20undefined,\x20calculate\x20min','getUVByPoint','mouseMove','MIN_VALUE','isDestroy','TRIANGLES','umax','south','preExecute','now','abs','_onMouseMoveEvent','xmax','createWindTextures','green','data','samplingWindow','height','clearCommand','requestRender','show','latitude','random','_mountedHook','wrapS','bounds','PointTrans','lighter','forEach','push','processWindData','resize','fromCache','Compute','commandList','update','setDate','_onMouseDownEvent','renderState','componentDatatype','globe','scene','logInfo','rawRenderState','globalCompositeOperation','getRandomLatLng','EventType','max','updateViewerParameters','postProcessingPosition','pointerEvents','getParticles','none','cos','_pointerEvents','particlesTextures','5106820EuQBkG','5NEiZWg','mouse_down','colorTextures','visibility','_removedHook','windData','DEPTH_COMPONENT','previousParticlesPosition','type','min','container','componentsPerAttribute','addEventListener','camera','pass','MAX_VALUE','5692689dWXhOI','displayRange','beginPath','frameTime','CanvasWindLayer','Draw','hasOwnProperty','depthTexture','xmin','red','114261GGzxyX','lng','pickEllipsoid','west','init','round','getPrimitives','bufferUsage','createSegmentsGeometry','52848MXQZJo','clear','fromDegrees','willReadFrequently','latRange','off','style','removeChild','toDegrees','mouseHidden','magnificationFilter','#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','blue','462894FNEQct','updateOptions','createParticlesTextures','colors','floor','particles','tlat','color','_updateIng','drawingBufferWidth','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','segments','ymin','enabled','sources','getU','speed','warn','_drawLines','getSpeed','_tomap','_updateIng2','windTextures','layer','stroke','width','destroyParticlesTextures','slice','colorTable','_addedHook','reverse','calculateSpeed','canvasContext','blendFuncSource','Cesium','_createCanvas','flipY','1727144aifxmc','rendering','canvasWidth','1749UDJJBI','clientWidth','changeOptions','register','toGridXY','_calcUV','commandType','_bilinearInterpolation','cancelAnimationFrame','udata','lat','Math','mode','getDefaultRenderState','applyViewerParameters','UNSIGNED_BYTE','getV','pixelFormat','textures','tlng','array','bindEvent','createPrimitives','object','worker','clientHeight','LINEAR','redraw','shaderProgram','bind','keys','isInExtent','lineLength','getSegmentDrawFragmentShader','vdata','wheel','UNSIGNED_INT','fromCssColorString','mouseDown','FUNC_ADD','ymax','createCommand','speedRate','_maxAge','vertexArray','dropRateBump','LayerUtil','context','_onMapWhellEvent','_map','canvasHeight','unbindEvent','commandToExecute','postMessage','fixedHeight','getColor','particlesTextureSize','rows','computing','particlesNumber','#ffffff','refreshTimer','north','geometry','viewerParameters','7tDdNPY','frameRate','outputTexture','canvas','setData','strokeStyle','globalAlpha','_colorRamp','east','create','10FnNWsx','sqrt','260XuFrvS','windField','age','grid','particleSystem','mouse_move','fromGeometry','Cartesian2','11106WffVZP','_speedRate','STATIC_DRAW','getUVByXY','FLOAT','drawingBufferHeight','atan2','isDynamic','setOptions','currentParticlesPosition','dropRate','IDENTITY','quietPeriod','cols','getPostProcessingPositionShader','autoClear','removeEventListener'];_0x36fd=function(){return _0x17d386;};return _0x36fd();}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x2ac53d(0x64,0x23)];function getU(_0x52a6a3,_0x5a450a){function _0x3945e0(_0xd4900f,_0x36cf2){return _0x2ac53d(_0xd4900f- -0x199,_0x36cf2);}function _0x3145ea(_0x9cbed7,_0x813ee0){return _0x2ac53d(_0x813ee0-0x213,_0x9cbed7);}const _0xcd24ea=_0x52a6a3*Math[_0x3945e0(-0x77,-0xb9)](Cesium$2[_0x3945e0(-0x124,-0x164)]['toRadians'](_0x5a450a));return _0xcd24ea;}function getV(_0x350ad1,_0x38faa9){function _0xc2e2de(_0xb1983f,_0x5f019d){return _0x2ac53d(_0xb1983f-0x368,_0x5f019d);}const _0x266c99=_0x350ad1*Math['sin'](Cesium$2[_0xc2e2de(0x3dd,0x3c6)]['toRadians'](_0x38faa9));return _0x266c99;}function getSpeed(_0x218671,_0x5ebf5d){const _0x4934a7=Math[_0x2c8d87(0x146,0xcc)](Math['pow'](_0x218671,0x2)+Math[_0x3f662a(-0x1ae,-0x175)](_0x5ebf5d,0x2));function _0x2c8d87(_0xc492cc,_0x528303){return _0x2ac53d(_0x528303-0x16,_0xc492cc);}function _0x3f662a(_0x29d0d9,_0x2a93ea){return _0x2ac53d(_0x29d0d9- -0x28e,_0x2a93ea);}return _0x4934a7;}function getDirection(_0x5116df,_0x1fc5bb){let _0x1453e8=Cesium$2['Math'][_0x9941d(-0x338,-0x357)](Math[_0x9941d(-0x2d8,-0x2cf)](_0x1fc5bb,_0x5116df));function _0x9941d(_0x1028a2,_0x5e2a49){return _0x2ac53d(_0x5e2a49- -0x394,_0x1028a2);}_0x1453e8+=_0x1453e8<0x0?0x168:0x0;function _0x252f76(_0x1eca32,_0x4d4cf6){return _0x2ac53d(_0x4d4cf6-0x8f,_0x1eca32);}return _0x1453e8;}const _0x435554={};_0x435554['__proto__']=null,_0x435554[_0x4052a4(-0x19d,-0x1e3)]=getU,_0x435554[_0x2ac53d(0x7a,0x3a)]=getV,_0x435554[_0x2ac53d(0x55,0xbb)]=getSpeed,_0x435554['getDirection']=getDirection;var WindUtil=_0x435554,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='#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=_0x4052a4(-0x1f9,-0x1f4);const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x4052a4(-0x153,-0x1d0)];class ShaderManager{static['getCalculateSpeedShader'](){function _0x2989c3(_0x1a8a39,_0x4fdbd5){return _0x4052a4(_0x4fdbd5,_0x1a8a39-0x90);}const _0x6e1b0f={};return _0x6e1b0f[_0x2989c3(-0x154,-0x169)]=[calculateSpeedShader],new ShaderSource$1(_0x6e1b0f);}static['getUpdatePositionShader'](){const _0x430dad={};function _0x2e0351(_0x4b036d,_0x452a19){return _0x2ac53d(_0x452a19- -0x255,_0x4b036d);}return _0x430dad[_0x2e0351(-0x283,-0x205)]=[updatePositionShader],new ShaderSource$1(_0x430dad);}static['getSegmentDrawVertexShader'](){const _0x255e93={};return _0x255e93['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x255e93);}static['getSegmentDrawFragmentShader'](){const _0x30aa77={};return _0x30aa77['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x30aa77);}static[_0x2ac53d(0xcd,0xdd)](){const _0x429a22={};return _0x429a22['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x429a22);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x38b828){this[_0x37e176(0x48e,0x40b)]=_0x38b828[_0x37e176(0x45d,0x40b)],this[_0x37e176(0x457,0x444)]=_0x38b828[_0x18f22f(0x1c6,0x184)],this['attributeLocations']=_0x38b828[_0x37e176(0x3fb,0x485)];function _0x18f22f(_0x540d06,_0x289859){return _0x2ac53d(_0x540d06-0x11d,_0x289859);}function _0x37e176(_0x3a964c,_0x4afc86){return _0x4052a4(_0x3a964c,_0x4afc86-0x5cf);}this['primitiveType']=_0x38b828['primitiveType'],this['uniformMap']=_0x38b828[_0x37e176(0x4f8,0x480)]||{},this['vertexShaderSource']=_0x38b828['vertexShaderSource'],this[_0x37e176(0x4e9,0x46f)]=_0x38b828[_0x37e176(0x412,0x46f)],this[_0x18f22f(0x235,0x289)]=_0x38b828[_0x37e176(0x4c0,0x4b3)],this['framebuffer']=_0x38b828['framebuffer'],this['outputTexture']=_0x38b828[_0x37e176(0x40a,0x448)],this['autoClear']=_0x38b828[_0x37e176(0x4d3,0x469)]??![],this['preExecute']=_0x38b828[_0x18f22f(0x212,0x1f5)],this['show']=!![],this['commandToExecute']=undefined,this[_0x37e176(0x515,0x49a)]=undefined,this['isDynamic']=_0x38b828[_0x18f22f(0x1e3,0x15c)]??(()=>!![]),this['autoClear']&&(this[_0x18f22f(0x21c,0x220)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}[_0x4052a4(-0x1b6,-0x1a1)](_0x5da5de){function _0xe5cd61(_0x245295,_0x2c52b4){return _0x4052a4(_0x2c52b4,_0x245295- -0x134);}function _0x15a8ec(_0xb7c0f8,_0xb4741b){return _0x2ac53d(_0xb7c0f8-0x33a,_0xb4741b);}if(this[_0xe5cd61(-0x2f8,-0x286)]===_0x15a8ec(0x475,0x4e5)){const _0x3d939c={};_0x3d939c['context']=_0x5da5de,_0x3d939c['geometry']=this['geometry'],_0x3d939c['attributeLocations']=this[_0x15a8ec(0x424,0x445)],_0x3d939c[_0x15a8ec(0x36d,0x2ef)]=BufferUsage$1[_0x15a8ec(0x3fb,0x3a2)];const _0x224ea0=VertexArray$1[_0xe5cd61(-0x2ab,-0x226)](_0x3d939c),_0x2f0eb6={};_0x2f0eb6[_0xe5cd61(-0x2cf,-0x287)]=_0x5da5de,_0x2f0eb6['vertexShaderSource']=this['vertexShaderSource'],_0x2f0eb6[_0x15a8ec(0x40e,0x43f)]=this['fragmentShaderSource'],_0x2f0eb6['attributeLocations']=this['attributeLocations'];const _0x367146=ShaderProgram[_0x15a8ec(0x447,0x3c1)](_0x2f0eb6),_0x36180e=RenderState['fromCache'](this['rawRenderState']),_0x3552dd={};return _0x3552dd['owner']=this,_0x3552dd[_0x15a8ec(0x3d0,0x3fa)]=_0x224ea0,_0x3552dd['primitiveType']=this['primitiveType'],_0x3552dd['modelMatrix']=Matrix4[_0x15a8ec(0x404,0x396)],_0x3552dd[_0xe5cd61(-0x255,-0x243)]=_0x36180e,_0x3552dd[_0xe5cd61(-0x2e2,-0x2be)]=_0x367146,_0x3552dd['framebuffer']=this['framebuffer'],_0x3552dd[_0xe5cd61(-0x283,-0x21b)]=this[_0x15a8ec(0x41f,0x3f6)],_0x3552dd[_0x15a8ec(0x46e,0x4dd)]=Pass$1['OPAQUE'],new DrawCommand(_0x3552dd);}else{if(this['commandType']===_0x15a8ec(0x448,0x3f0)){const _0x22c1f9={};return _0x22c1f9['owner']=this,_0x22c1f9[_0x15a8ec(0x40e,0x394)]=this['fragmentShaderSource'],_0x22c1f9[_0xe5cd61(-0x283,-0x281)]=this['uniformMap'],_0x22c1f9[_0xe5cd61(-0x2bb,-0x31b)]=this['outputTexture'],_0x22c1f9['persists']=!![],new ComputeCommand(_0x22c1f9);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x15a8a6,_0x5bc2c0){this['geometry']=_0x5bc2c0,defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x15a8a6,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x7d3560){if(!this[_0x4812d1(0x3a4,0x3c7)]())return;function _0x5a613e(_0x1d250b,_0x5acdd1){return _0x2ac53d(_0x1d250b-0x10c,_0x5acdd1);}if(!this['show']||!defined(_0x7d3560))return;!defined(this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x7d3560['context']));defined(this['preExecute'])&&this['preExecute']();function _0x4812d1(_0x19d667,_0x3fbc0b){return _0x4052a4(_0x3fbc0b,_0x19d667-0x512);}if(!_0x7d3560[_0x5a613e(0x21b,0x298)]){console[_0x4812d1(0x331,0x337)](_0x4812d1(0x3c4,0x3ef));return;}defined(this['clearCommand'])&&_0x7d3560[_0x5a613e(0x21b,0x1af)][_0x4812d1(0x3e8,0x42d)](this['clearCommand']),defined(this['commandToExecute'])&&_0x7d3560['commandList']['push'](this[_0x5a613e(0x1aa,0x1a8)]);}['isDestroyed'](){return![];}[_0x2ac53d(0xe1,0x88)](){function _0x4c8435(_0x14b973,_0x222a0c){return _0x4052a4(_0x14b973,_0x222a0c-0x3ee);}function _0x161b48(_0x301cb,_0x5e24f5){return _0x2ac53d(_0x301cb- -0x6c,_0x5e24f5);}if(defined(this[_0x161b48(0x32,0x2c)])){var _0x17e3f3;(_0x17e3f3=this[_0x161b48(0x32,-0x1f)]['shaderProgram'])===null||_0x17e3f3===void 0x0||_0x17e3f3[_0x4c8435(0x2a9,0x29b)](),this['commandToExecute'][_0x4c8435(0x29a,0x240)]=undefined;}return destroyObject(this);}}function deepMerge(_0x29c0d4,_0x274500){function _0x449df2(_0x255720,_0x530604){return _0x2ac53d(_0x530604- -0x2b7,_0x255720);}if(!_0x29c0d4)return _0x274500;if(!_0x274500)return _0x29c0d4;const _0x4c4cb9={..._0x274500},_0x5a40d4=_0x4c4cb9;for(const _0x4df2ee in _0x29c0d4){if(Object['prototype'][_0x572a5b(0x402,0x39c)]['call'](_0x29c0d4,_0x4df2ee)){const _0x4ef1c7=_0x29c0d4[_0x4df2ee],_0x17ec02=_0x274500[_0x4df2ee];if(Array['isArray'](_0x4ef1c7)){_0x5a40d4[_0x4df2ee]=_0x4ef1c7[_0x449df2(-0x2a3,-0x25a)]();continue;}if(_0x4ef1c7&&typeof _0x4ef1c7===_0x572a5b(0x347,0x3a5)){_0x5a40d4[_0x4df2ee]=deepMerge(_0x4ef1c7,_0x17ec02||{});continue;}_0x4ef1c7!==undefined&&(_0x5a40d4[_0x4df2ee]=_0x4ef1c7);}}function _0x572a5b(_0x1e3c08,_0x4cc574){return _0x2ac53d(_0x1e3c08-0x2c6,_0x4cc574);}return _0x5a40d4;}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[_0x4052a4(-0x1f5,-0x1d0)];class WindParticlesComputing{constructor(_0x54323b,_0x5ca7b7,_0xe5f85,_0x35697f,_0xceee87){this['context']=_0x54323b;function _0x15b074(_0x563f4b,_0x46f04c){return _0x2ac53d(_0x46f04c- -0x5b,_0x563f4b);}this[_0x15b074(0xc2,0x84)]=_0xe5f85,this['viewerParameters']=_0x35697f,this['windData']=_0x5ca7b7,this['frameRate']=0x3c;function _0x557369(_0x550d29,_0x1c760a){return _0x2ac53d(_0x1c760a-0x8d,_0x550d29);}this['frameRateAdjustment']=0x1;const _0x36c203={};_0x36c203['scene']=_0xceee87,_0x36c203[_0x15b074(0x87,0xa2)]=0x1,_0x36c203[_0x15b074(0xc9,0x70)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x36c203),this['initFrameRate'](),this[_0x15b074(0x8a,0x9f)](),this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){function _0x2f5f43(_0x40425b,_0x1c9566){return _0x2ac53d(_0x1c9566-0x269,_0x40425b);}const _0x5aee3a=()=>{function _0xce676b(_0x549de1,_0x2cfd02){return _0x27df(_0x2cfd02-0x3c5,_0x549de1);}function _0x47818c(_0x6f45cc,_0x105984){return _0x27df(_0x105984-0xb,_0x6f45cc);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this[_0xce676b(0x4a4,0x4ae)]=this[_0xce676b(0x54e,0x4d5)]['lastFramesPerSecond'],this[_0xce676b(0x4fa,0x4dc)]=0x3c/Math[_0x47818c(0x1bc,0x164)](this[_0x47818c(0x150,0xf4)],0x1));};_0x5aee3a();function _0x3c3da4(_0x4194eb,_0x2d29ae){return _0x4052a4(_0x4194eb,_0x2d29ae-0x11a);}const _0x1cc690=setInterval(_0x5aee3a,0x3e8),_0x50a52e=this[_0x2f5f43(0x35f,0x34a)][_0x2f5f43(0x30c,0x2f0)](this);this[_0x2f5f43(0x3be,0x34a)]=()=>{clearInterval(_0x1cc690),_0x50a52e();};}[_0x4052a4(-0x111,-0x13a)](){const _0x247c78={};function _0x37b2b2(_0x42be94,_0x1e1190){return _0x4052a4(_0x42be94,_0x1e1190-0x2fe);}function _0x353278(_0x62defd,_0x2ff53b){return _0x2ac53d(_0x2ff53b- -0x50,_0x62defd);}_0x247c78['minificationFilter']=TextureMinificationFilter$1['LINEAR'],_0x247c78['magnificationFilter']=TextureMagnificationFilter$1[_0x353278(0x1b,0x34)];const _0x284e86={'context':this['context'],'width':this['windData']['width'],'height':this['windData'][_0x353278(0x26,0xae)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1[_0x353278(0xdf,0x73)],'flipY':this[_0x353278(0xca,0x8f)]['flipY']??![],'sampler':new Sampler$1(_0x247c78)};this[_0x37b2b2(0x186,0x122)]={'U':new Texture$1({..._0x284e86,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x284e86,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}[_0x2ac53d(0x44,-0x7)](){function _0x1e4dbb(_0x99168f,_0x2d975a){return _0x2ac53d(_0x99168f-0x402,_0x2d975a);}function _0x2ac69f(_0x2aac97,_0x3739fa){return _0x2ac53d(_0x3739fa- -0x28d,_0x2aac97);}const _0x2a0007={};_0x2a0007['minificationFilter']=TextureMinificationFilter$1['NEAREST'],_0x2a0007[_0x1e4dbb(0x441,0x4a1)]=TextureMagnificationFilter$1['NEAREST'];const _0x54bb8b={'context':this[_0x1e4dbb(0x49b,0x4e1)],'width':this[_0x2ac69f(-0x1d7,-0x1ae)][_0x1e4dbb(0x4a4,0x4f8)],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options'][_0x1e4dbb(0x4a4,0x4f8)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x2a0007)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x54bb8b),'currentParticlesPosition':new Texture$1(_0x54bb8b),'nextParticlesPosition':new Texture$1(_0x54bb8b),'postProcessingPosition':new Texture$1(_0x54bb8b),'particlesSpeed':new Texture$1(_0x54bb8b)};}['destroyParticlesTextures'](){function _0x38a32f(_0x53dfde,_0x2eab2b){return _0x4052a4(_0x2eab2b,_0x53dfde-0x48c);}function _0x473a50(_0x3e06f9,_0x26c4f1){return _0x4052a4(_0x3e06f9,_0x26c4f1-0x288);}Object[_0x473a50(0x171,0x126)](this[_0x38a32f(0x37c,0x380)])['forEach'](_0x4b804d=>_0x4b804d[_0x473a50(0x19d,0x135)]());}['createComputingPrimitives'](){function _0x768aba(_0x1bc8d8,_0x51633e){return _0x4052a4(_0x51633e,_0x1bc8d8- -0x8);}function _0x1d808a(_0x27b3da,_0xce020a){return _0x4052a4(_0xce020a,_0x27b3da- -0x156);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x768aba(-0x12e,-0x127),'uniformMap':{'U':()=>this[_0x768aba(-0x1e4,-0x1bc)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u'][_0x1d808a(-0x25b,-0x26e)],this[_0x768aba(-0x111,-0x13b)]['u']['max']),'vRange':()=>new Cartesian2$1(this['windData']['v'][_0x1d808a(-0x25b,-0x28d)],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData'][_0x768aba(-0x1ea,-0x19e)]['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x2e56ee(_0x34f402,_0x14ae4d){return _0x768aba(_0x14ae4d-0x3f1,_0x34f402);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0x2e56ee(0x221,0x294)]['speedFactor'];},'frameRateAdjustment':()=>this[_0x1d808a(-0x2b0,-0x25d)],'dimension':()=>new Cartesian2$1(this[_0x768aba(-0x111,-0x11d)][_0x1d808a(-0x32f,-0x390)],this['windData']['height']),'minimum':()=>new Cartesian2$1(this[_0x1d808a(-0x25f,-0x298)]['bounds'][_0x768aba(-0x20d,-0x1fb)],this['windData']['bounds'][_0x768aba(-0x148,-0x199)]),'maximum':()=>new Cartesian2$1(this['windData']['bounds'][_0x1d808a(-0x2d7,-0x26a)],this['windData']['bounds'][_0x768aba(-0x194,-0x1b7)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures'][_0x1d808a(-0x2ad,-0x279)],'preExecute':()=>{const _0x304ef9=this[_0x2e1672(-0x26,-0xa7)]['previousParticlesPosition'];function _0x2d4558(_0x4319bf,_0x5660ca){return _0x768aba(_0x5660ca-0x232,_0x4319bf);}function _0x2e1672(_0xe20627,_0x13b31f){return _0x768aba(_0x13b31f-0x71,_0xe20627);}this['particlesTextures'][_0x2d4558(0xb2,0x123)]=this[_0x2e1672(-0x118,-0xa7)]['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this['particlesTextures'][_0x2d4558(0xce,0x114)],this[_0x2e1672(-0x129,-0xa7)][_0x2d4558(0x15a,0x114)]=_0x304ef9,this[_0x2d4558(0xdd,0xd2)][_0x2d4558(-0x21,0x57)]['commandToExecute']&&(this[_0x2d4558(0x58,0xd2)][_0x2e1672(-0x19a,-0x16a)]['commandToExecute'][_0x2e1672(-0xc7,-0x11e)]=this['particlesTextures'][_0x2d4558(0x4f,0xd3)]);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x1d808a(-0x266,-0x1f2)]['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x1d808a(-0x2ad,-0x32d)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{this['primitives']['updatePosition']['commandToExecute']&&(this['primitives']['updatePosition']['commandToExecute']['outputTexture']=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this[_0x768aba(-0x15d,-0x1df)]['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this[_0x1d808a(-0x266,-0x28b)][_0x1d808a(-0x2ad,-0x22f)],'lonRange':()=>this['viewerParameters'][_0x768aba(-0x151,-0x1af)],'latRange':()=>this['viewerParameters'][_0x768aba(-0x203,-0x21f)],'dataLonRange':()=>new Cartesian2$1(this[_0x768aba(-0x111,-0xef)]['bounds']['west'],this['windData']['bounds'][_0x1d808a(-0x2d7,-0x32c)]),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x1d808a(-0x284,-0x2e3)]['south'],this['windData'][_0x1d808a(-0x284,-0x25d)][_0x1d808a(-0x2e2,-0x2e6)]),'randomCoefficient':function(){function _0x261c2e(_0x43d4d7,_0x2bb03b){return _0x768aba(_0x2bb03b-0x24b,_0x43d4d7);}return Math[_0x261c2e(0x108,0x112)]();},'dropRate':()=>this['options'][_0x1d808a(-0x2c1,-0x28a)],'dropRateBump':()=>this['options'][_0x768aba(-0x1a5,-0x223)],'useViewerBounds':()=>this[_0x1d808a(-0x2ab,-0x2e0)][_0x1d808a(-0x2b3,-0x2e8)]},'fragmentShaderSource':ShaderManager[_0x768aba(-0x16f,-0x1ee)](),'outputTexture':this[_0x768aba(-0x118,-0x133)]['postProcessingPosition'],'preExecute':()=>{function _0x49e171(_0x337377,_0x348dd3){return _0x1d808a(_0x348dd3-0x6d8,_0x337377);}function _0x40cbc9(_0x244cdb,_0x306c2c){return _0x1d808a(_0x244cdb-0x36b,_0x306c2c);}this['primitives']['postProcessingPosition'][_0x40cbc9(0x7f,0xf2)]&&(this['primitives'][_0x40cbc9(0xff,0x184)]['commandToExecute']['outputTexture']=this[_0x40cbc9(0x105,0xcf)][_0x49e171(0x48b,0x46c)]);},'isDynamic':()=>this[_0x1d808a(-0x2ab,-0x31c)]['dynamic']})};}['reCreateWindTextures'](){this['windTextures']['U']['destroy']();function _0x1776d3(_0x40d7e3,_0x5f1fd0){return _0x2ac53d(_0x40d7e3-0x384,_0x5f1fd0);}this['windTextures']['V'][_0x1776d3(0x465,0x40c)](),this['createWindTextures']();}['updateWindData'](_0xe29fff){this[_0x3c8a73(0x193,0x11a)]=_0xe29fff;function _0x3c8a73(_0x2b1731,_0x2a42d4){return _0x4052a4(_0x2b1731,_0x2a42d4-0x223);}this['reCreateWindTextures']();}['updateOptions'](_0x2913b3){const _0x5035af=_0x2913b3[_0x324640(0x419,0x3c0)]!==undefined&&_0x2913b3['flipY']!==this[_0x2004a4(0x48d,0x479)]['flipY'];function _0x2004a4(_0x124cd6,_0x392332){return _0x4052a4(_0x392332,_0x124cd6-0x5e2);}this['options']=deepMerge(_0x2913b3,this[_0x324640(0x492,0x45b)]);function _0x324640(_0x49c06d,_0x912f4f){return _0x2ac53d(_0x49c06d-0x3b3,_0x912f4f);}_0x5035af&&this['reCreateWindTextures']();}['processWindData'](_0x12962d){function _0x2caf59(_0xabde78,_0x3f098e){return _0x2ac53d(_0xabde78- -0x9f,_0x3f098e);}const {array:_0x508db7}=_0x12962d;let {min:_0xa09233,max:_0xa5a5c1}=_0x12962d;const _0x51dbd3=new Float32Array(_0x508db7[_0x2caf59(0x43,-0x36)]);_0xa09233===undefined&&(console['warn'](_0x1a332f(0x366,0x377)),_0xa09233=Math[_0x1a332f(0x3a8,0x3e2)](..._0x508db7));function _0x1a332f(_0x444de5,_0x23b078){return _0x4052a4(_0x23b078,_0x444de5-0x4ad);}_0xa5a5c1===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0xa5a5c1=Math['max'](..._0x508db7));const _0x402de5=Math['max'](Math[_0x2caf59(0x58,0x90)](_0xa09233),Math['abs'](_0xa5a5c1));for(let _0x6b995=0x0;_0x6b995<_0x508db7['length'];_0x6b995++){const _0x88e5a1=_0x508db7[_0x6b995]/_0x402de5;_0x51dbd3[_0x6b995]=_0x88e5a1;}return _0x51dbd3;}['destroy'](){function _0x30ef79(_0x314735,_0x40c9eb){return _0x4052a4(_0x40c9eb,_0x314735-0x2bd);}function _0x1e7ed6(_0x2a8d45,_0x21cafa){return _0x4052a4(_0x21cafa,_0x2a8d45-0x18c);}Object[_0x30ef79(0x15b,0x132)](this['windTextures'])['forEach'](_0x3bee31=>_0x3bee31['destroy']()),Object['values'](this['particlesTextures'])['forEach'](_0x3c7255=>_0x3c7255[_0x30ef79(0x16a,0xed)]()),Object['values'](this[_0x1e7ed6(0x34,0x86)])[_0x1e7ed6(0x61,0x2e)](_0x2068de=>_0x2068de[_0x1e7ed6(0x39,0x33)]()),this[_0x30ef79(0x15c,0x1a0)][_0x30ef79(0x16a,0x1a8)]();}}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(_0x3d393d,_0x58af66,_0x44cf3f,_0x255c55){this[_0x2f3e11(-0x25a,-0x26c)]=_0x3d393d;function _0x2f3e11(_0x1aaa04,_0x35c125){return _0x2ac53d(_0x35c125- -0x305,_0x1aaa04);}this['options']=_0x58af66,this[_0x332b7b(0x40,-0x15)]=_0x44cf3f,this['computing']=_0x255c55;(typeof this[_0x2f3e11(-0x295,-0x226)][_0x2f3e11(-0x29e,-0x263)]!=='number'||this['options']['particlesTextureSize']<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options']['particlesTextureSize']=0x100);function _0x332b7b(_0x500e1c,_0x1030dd){return _0x4052a4(_0x1030dd,_0x500e1c-0x1ca);}this[_0x2f3e11(-0x23b,-0x2a7)]=this[_0x2f3e11(-0x1c2,-0x227)](),this['textures']=this[_0x2f3e11(-0x230,-0x22d)](),this['framebuffers']=this['createRenderingFramebuffers'](),this['primitives']=this[_0x2f3e11(-0x283,-0x285)]();}[_0x2ac53d(0xd8,0x140)](){const _0x3ce591={};_0x3ce591[_0x3a97b8(0x91,0x36)]=this[_0x42deba(-0x100,-0xad)],_0x3ce591[_0x42deba(-0xe3,-0xeb)]=this['context']['drawingBufferWidth'],_0x3ce591[_0x3a97b8(0xf6,0x12c)]=this['context']['drawingBufferHeight'],_0x3ce591[_0x42deba(-0xc9,-0xcb)]=PixelFormat['RGBA'],_0x3ce591['pixelDatatype']=PixelDatatype[_0x42deba(-0x8b,-0xcd)];const _0x3d3af5=_0x3ce591,_0x1ba9b3={};_0x1ba9b3[_0x42deba(-0x137,-0xad)]=this['context'];function _0x42deba(_0xe34e9a,_0x5dbd6e){return _0x2ac53d(_0x5dbd6e- -0x146,_0xe34e9a);}_0x1ba9b3['width']=this['context'][_0x3a97b8(0x43,0x31)];function _0x3a97b8(_0x1e596f,_0x19fd0e){return _0x2ac53d(_0x1e596f- -0x8,_0x19fd0e);}_0x1ba9b3[_0x3a97b8(0xf6,0x129)]=this['context']['drawingBufferHeight'],_0x1ba9b3[_0x3a97b8(0x73,0x67)]=PixelFormat[_0x42deba(0x31,-0x1a)],_0x1ba9b3['pixelDatatype']=PixelDatatype[_0x42deba(-0x94,-0xb8)];const _0x15d2b6=_0x1ba9b3;return{'segmentsColor':new Texture(_0x3d3af5),'segmentsDepth':new Texture(_0x15d2b6)};}['createRenderingFramebuffers'](){const _0x30124b={};function _0x393b9a(_0xa39ca,_0x181ccf){return _0x2ac53d(_0xa39ca- -0x38e,_0x181ccf);}function _0x5a91d1(_0x42417f,_0x1952f2){return _0x2ac53d(_0x1952f2-0xd7,_0x42417f);}return _0x30124b[_0x5a91d1(0x17c,0x170)]=this['context'],_0x30124b[_0x5a91d1(0x27c,0x1ff)]=[this['textures']['segmentsColor']],_0x30124b[_0x393b9a(-0x251,-0x253)]=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x30124b)};}[_0x2ac53d(0xec,0x176)](){function _0x3a883a(_0x5279b8,_0x21c333){return _0x2ac53d(_0x21c333- -0x129,_0x5279b8);}Object[_0x3a883a(-0x21,-0x57)](this['framebuffers'])['forEach'](_0x5a9861=>{_0x5a9861['destroy']();});}['createColorTableTexture'](){const _0x1d2816=new Float32Array(this[_0x162611(0x97,0xa9)]['colors']['flatMap'](_0x1e8b2a=>{function _0x39a2bd(_0x198a94,_0x39ab5a){return _0x162611(_0x39ab5a,_0x198a94- -0x39);}function _0x41bf1d(_0xa68ad3,_0x309b3f){return _0x162611(_0x309b3f,_0xa68ad3- -0x34);}const _0x2053c3=Color$1[_0x39a2bd(0x20,0x5f)](_0x1e8b2a);return[_0x2053c3[_0x41bf1d(0xd5,0xf4)],_0x2053c3[_0x41bf1d(0x91,0xc7)],_0x2053c3[_0x39a2bd(-0x2e,-0x2)],_0x2053c3['alpha']];})),_0x11cf37={};function _0x162611(_0x178109,_0x395f94){return _0x4052a4(_0x178109,_0x395f94-0x1fe);}_0x11cf37['minificationFilter']=TextureMinificationFilter[_0x366d67(0x39c,0x3ae)],_0x11cf37[_0x366d67(0x357,0x3a5)]=TextureMagnificationFilter['LINEAR'],_0x11cf37[_0x162611(0xfe,0xcf)]=TextureWrap['CLAMP_TO_EDGE'];function _0x366d67(_0x3447ef,_0x3cd0d0){return _0x2ac53d(_0x3447ef-0x318,_0x3cd0d0);}return _0x11cf37['wrapT']=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this['context'],'width':this[_0x366d67(0x3f7,0x3e8)]['colors'][_0x162611(0x49,0xac)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x11cf37),'source':{'width':this[_0x162611(0x119,0xa9)][_0x162611(0x12,0xf)][_0x162611(0x2c,0xac)],'height':0x1,'arrayBufferView':_0x1d2816}});}[_0x2ac53d(0x34,0x57)](){const _0x4cc031=0x4,_0x2a6234=this['options']['particlesTextureSize'];let _0x288888=[];function _0x47a18b(_0x519ed4,_0xdb2390){return _0x4052a4(_0xdb2390,_0x519ed4-0x9e);}for(let _0x46b4ec=0x0;_0x46b4ec<_0x2a6234;_0x46b4ec++){for(let _0x377489=0x0;_0x377489<_0x2a6234;_0x377489++){for(let _0x275138=0x0;_0x275138<_0x4cc031;_0x275138++){_0x288888[_0x2bd2f6(0x49,0x5b)](_0x46b4ec/_0x2a6234),_0x288888['push'](_0x377489/_0x2a6234);}}}_0x288888=new Float32Array(_0x288888);const _0x1f1f9e=this['options']['particlesTextureSize']**0x2;let _0x47d31a=[];for(let _0x126d20=0x0;_0x126d20<_0x1f1f9e;_0x126d20++){_0x47d31a['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x47d31a=new Float32Array(_0x47d31a);let _0x389616=[];for(let _0x2b7249=0x0,_0x875588=0x0;_0x2b7249<_0x1f1f9e;_0x2b7249++){_0x389616['push'](_0x875588+0x0,_0x875588+0x1,_0x875588+0x2,_0x875588+0x2,_0x875588+0x1,_0x875588+0x3),_0x875588+=_0x4cc031;}_0x389616=new Uint32Array(_0x389616);const _0x3a372f={};_0x3a372f[_0x47a18b(-0x82,-0x77)]=ComponentDatatype['FLOAT'],_0x3a372f[_0x2bd2f6(0x70,0x54)]=0x2,_0x3a372f['values']=_0x288888;const _0x245afb={};_0x245afb['componentDatatype']=ComponentDatatype['FLOAT'],_0x245afb[_0x47a18b(-0x65,-0xe4)]=0x3;function _0x2bd2f6(_0x76543b,_0xa3b553){return _0x4052a4(_0xa3b553,_0x76543b-0x173);}_0x245afb[_0x2bd2f6(0x11,0x1f)]=_0x47d31a;const _0x1ecd54=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x3a372f),'normal':new GeometryAttribute(_0x245afb)}),'indices':_0x389616});return _0x1ecd54;}['createRawRenderState'](_0x4fd657){function _0x312230(_0xf1e344,_0x14e756){return _0x2ac53d(_0x14e756- -0x166,_0xf1e344);}const _0x36dd4c={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x4fd657};return Appearance[_0x312230(-0x65,-0xef)](!![],![],_0x36dd4c);}['createPrimitives'](){const _0xa5acb8={};_0xa5acb8['st']=0x0,_0xa5acb8['normal']=0x1;const _0x592fb6={};_0x592fb6[_0x5e9c7f(0x1db,0x20d)]=!![];const _0x3fb004={};_0x3fb004['enabled']=!![];function _0x3af004(_0x3fd2e8,_0x5c946b){return _0x2ac53d(_0x5c946b-0x28d,_0x3fd2e8);}function _0x5e9c7f(_0x4010bc,_0x56c2bf){return _0x2ac53d(_0x56c2bf-0x1be,_0x4010bc);}_0x3fb004['blendEquation']=WebGLRenderingContext[_0x5e9c7f(0x230,0x24f)],_0x3fb004[_0x5e9c7f(0x280,0x221)]=WebGLRenderingContext['SRC_ALPHA'],_0x3fb004['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0xfb3809={};_0xfb3809['viewport']=undefined,_0xfb3809['depthTest']=_0x592fb6,_0xfb3809['depthMask']=!![],_0xfb3809['blending']=_0x3fb004;const _0x374ae8=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0xa5acb8,'geometry':this[_0x5e9c7f(0x18e,0x1f2)](),'primitiveType':PrimitiveType[_0x5e9c7f(0x2ca,0x2b0)],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures']['previousParticlesPosition'],'currentParticlesPosition':()=>this[_0x5e9c7f(0x24a,0x262)][_0x5e9c7f(0x356,0x2e2)][_0x5e9c7f(0x2ca,0x286)],'postProcessingPosition':()=>this['computing'][_0x3af004(0x33c,0x3b1)]['postProcessingPosition'],'particlesSpeed':()=>this[_0x3af004(0x324,0x331)]['particlesTextures'][_0x5e9c7f(0x250,0x29b)],'frameRateAdjustment':()=>this[_0x3af004(0x321,0x331)]['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{var _0x4c317d,_0x351ce3;const _0x370835=new Cartesian2(((_0x4c317d=this[_0x17dfc1(-0x12d,-0x154)]['domain'])===null||_0x4c317d===void 0x0?void 0x0:_0x4c317d['min'])??this['computing']['windData'][_0xbf179c(0x219,0x21d)][_0xbf179c(0x2eb,0x2fa)],((_0x351ce3=this[_0xbf179c(0x304,0x2aa)]['domain'])===null||_0x351ce3===void 0x0?void 0x0:_0x351ce3['max'])??this['computing']['windData']['speed'][_0x17dfc1(-0x123,-0x117)]);function _0x17dfc1(_0x10c15b,_0x1c0491){return _0x3af004(_0x10c15b,_0x1c0491- -0x4c0);}function _0xbf179c(_0x186816,_0x47d480){return _0x3af004(_0x186816,_0x47d480- -0xc2);}return _0x370835;},'displayRange':()=>{var _0xef9c7d,_0x48c5c5;function _0xaa8ac7(_0x20a30d,_0x2937ad){return _0x5e9c7f(_0x20a30d,_0x2937ad- -0x418);}const _0x232ec6=new Cartesian2(((_0xef9c7d=this['options']['displayRange'])===null||_0xef9c7d===void 0x0?void 0x0:_0xef9c7d[_0xfeb486(0x478,0x431)])??this[_0xaa8ac7(-0x190,-0x1b6)]['windData']['speed'][_0xaa8ac7(-0xe3,-0x12b)],((_0x48c5c5=this['options'][_0xfeb486(0x480,0x4ad)])===null||_0x48c5c5===void 0x0?void 0x0:_0x48c5c5[_0xfeb486(0x465,0x48d)])??this['computing'][_0xfeb486(0x474,0x42d)]['speed']['max']);function _0xfeb486(_0x184303,_0x54a1a9){return _0x3af004(_0x54a1a9,_0x184303-0xbc);}return _0x232ec6;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this[_0x3af004(0x383,0x326)]['drawingBufferWidth']/this['context'][_0x5e9c7f(0x270,0x282)],'pixelSize':()=>this[_0x5e9c7f(0x2a6,0x268)][_0x5e9c7f(0x27e,0x2a1)],'lineWidth':()=>{const _0x3a554b={};_0x3a554b['min']=0x1;function _0x470b8e(_0xd3ec85,_0x470eff){return _0x3af004(_0xd3ec85,_0x470eff- -0x1b);}_0x3a554b['max']=0x2;const _0xb673ae=this['options'][_0x470b8e(0x2ff,0x343)]||_0x3a554b;return new Cartesian2(_0xb673ae['min'],_0xb673ae['max']);},'lineLength':()=>{const _0x130d08={};_0x130d08['min']=0x14;function _0x5e4233(_0x52c793,_0x258096){return _0x3af004(_0x52c793,_0x258096- -0x19a);}_0x130d08[_0x2ea6d8(0x2aa,0x300)]=0x64;const _0x598361=this['options']['lineLength']||_0x130d08;function _0x2ea6d8(_0x4f2569,_0x4090ea){return _0x3af004(_0x4090ea,_0x4f2569- -0xff);}return new Cartesian2(_0x598361[_0x2ea6d8(0x2bd,0x236)],_0x598361[_0x5e4233(0x213,0x20f)]);},'is3D':()=>this[_0x5e9c7f(0x2ac,0x268)]['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0x3af004(0x2fc,0x309)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x3af004(0x333,0x318)](),'rawRenderState':this['createRawRenderState'](_0xfb3809)}),_0x59e5d7={};return _0x59e5d7[_0x5e9c7f(0x24d,0x20b)]=_0x374ae8,_0x59e5d7;}['onParticlesTextureSizeChange'](){const _0x56a1ed=this['createSegmentsGeometry']();this[_0x29c69d(0x2d7,0x2dc)]['segments']['geometry']=_0x56a1ed;const _0x37251d={};_0x37251d['context']=this['context'],_0x37251d['geometry']=_0x56a1ed,_0x37251d['attributeLocations']=this['primitives'][_0x29c69d(0x208,0x24d)]['attributeLocations'];function _0x29c69d(_0x21077d,_0x6c0380){return _0x2ac53d(_0x6c0380-0x200,_0x21077d);}_0x37251d['bufferUsage']=BufferUsage[_0x29c69d(0x2e6,0x2c1)];function _0x75969d(_0x2e582f,_0x132432){return _0x4052a4(_0x132432,_0x2e582f-0x40);}const _0x290d9d=VertexArray['fromGeometry'](_0x37251d);this[_0x29c69d(0x2b6,0x2dc)][_0x29c69d(0x295,0x24d)]['commandToExecute']&&(this['primitives']['segments']['commandToExecute'][_0x75969d(-0x15e,-0x1ac)]=_0x290d9d);}[_0x4052a4(-0xd4,-0x15b)](){this['colorTable']['destroy'](),this['colorTable']=this['createColorTableTexture']();}[_0x4052a4(-0x1b4,-0x1f1)](_0x5cd2c2){const _0x57cf1b=_0x5cd2c2['colors']&&JSON['stringify'](_0x5cd2c2[_0x476370(-0x15f,-0x113)])!==JSON['stringify'](this['options']['colors']);this['options']=deepMerge(_0x5cd2c2,this['options']);function _0x476370(_0x3d5136,_0x10e5f8){return _0x2ac53d(_0x3d5136- -0x1a4,_0x10e5f8);}_0x57cf1b&&this['onColorTableChange']();}['destroy'](){Object[_0x282f65(-0x2c3,-0x2bb)](this['framebuffers'])[_0x3ec2f2(0x3d4,0x42e)](_0x3f3e2d=>{_0x3f3e2d['destroy']();}),Object[_0x282f65(-0x2c3,-0x27a)](this[_0x3ec2f2(0x3a7,0x355)])[_0x282f65(-0x28c,-0x2bc)](_0x2d38d4=>{_0x2d38d4['destroy']();});function _0x3ec2f2(_0x33c31b,_0x2fc7ea){return _0x2ac53d(_0x33c31b-0x2cb,_0x2fc7ea);}function _0x282f65(_0x5d2e78,_0x451cd4){return _0x4052a4(_0x451cd4,_0x5d2e78- -0x161);}this['colorTable'][_0x282f65(-0x2b4,-0x24f)]();}}function _0x27df(_0x4598f3,_0x312020){const _0x36fd0a=_0x36fd();return _0x27df=function(_0x27dfbf,_0x3718f4){_0x27dfbf=_0x27dfbf-0x6c;let _0x4c6935=_0x36fd0a[_0x27dfbf];return _0x4c6935;},_0x27df(_0x4598f3,_0x312020);}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x3f88ca,_0x1fcd6a,_0x2c46f7,_0x2a2271,_0x351004){function _0x371eba(_0x2e5d0d,_0x1b079f){return _0x4052a4(_0x1b079f,_0x2e5d0d-0x13e);}this[_0x371eba(-0x5d,-0x55)]=_0x3f88ca,this['options']=_0x2c46f7,this['viewerParameters']=_0x2a2271;function _0x1231a2(_0x3744d6,_0x52c2a){return _0x2ac53d(_0x52c2a- -0x15e,_0x3744d6);}this[_0x1231a2(-0x83,-0xba)]=new WindParticlesComputing(_0x3f88ca,_0x1fcd6a,_0x2c46f7,_0x2a2271,_0x351004),this[_0x371eba(-0x8e,-0x5d)]=new WindParticlesRendering(_0x3f88ca,_0x2c46f7,_0x2a2271,this['computing']),this['clearFramebuffers']();}[_0x2ac53d(0x32,-0x14)](){function _0x1e4528(_0x249838,_0x3f34f6){return _0x2ac53d(_0x249838- -0x20c,_0x3f34f6);}function _0x3ade1c(_0x20e058,_0x17776b){return _0x2ac53d(_0x17776b- -0x398,_0x20e058);}const _0x5e7901=[this['computing']['primitives']['calculateSpeed'],this['computing'][_0x1e4528(-0x130,-0x18f)]['updatePosition'],this[_0x1e4528(-0x168,-0x124)]['primitives'][_0x3ade1c(-0x236,-0x27a)],this[_0x3ade1c(-0x331,-0x330)][_0x3ade1c(-0x329,-0x2bc)][_0x1e4528(-0x1bf,-0x17a)]];return _0x5e7901;}['clearFramebuffers'](){const _0x246d93=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});Object['keys'](this['rendering']['framebuffers'])['forEach'](_0x21971d=>{_0x246d93['framebuffer']=this['rendering']['framebuffers'][_0x21971d],_0x246d93['execute'](this['context']);});}[_0x4052a4(-0x244,-0x1c8)](_0x268b3c){function _0x1f91af(_0x3b79c7,_0x4dbca2){return _0x2ac53d(_0x4dbca2-0x6d,_0x3b79c7);}let _0x406475=![];_0x268b3c[_0x1f91af(0xbd,0x10f)]&&this['options']['particlesTextureSize']!==_0x268b3c[_0x1f91af(0x194,0x10f)]&&(_0x406475=!![]);const _0x40cc77=deepMerge(_0x268b3c,this['options']);function _0x35621e(_0x45772e,_0x3b1d98){return _0x4052a4(_0x3b1d98,_0x45772e- -0x12a);}if(_0x40cc77[_0x35621e(-0x2bc,-0x255)]<0x1)throw new Error(_0x35621e(-0x312,-0x393));this[_0x35621e(-0x27f,-0x2c9)]=_0x40cc77,this[_0x35621e(-0x2f6,-0x323)][_0x1f91af(0x59,0xb0)](_0x268b3c),this[_0x35621e(-0x2ba,-0x2fa)]['updateOptions'](_0x268b3c),_0x406475&&(this[_0x35621e(-0x2ba,-0x300)][_0x1f91af(0xce,0xc9)](),this[_0x1f91af(0xbb,0x111)][_0x1f91af(0x4e,0xb1)](),this[_0x1f91af(0xbc,0xd5)]['onParticlesTextureSizeChange']());}[_0x4052a4(-0x1af,-0x1bc)](_0x4f2608){this[_0x4b18ce(0x128,0x125)]=_0x4f2608,this[_0x432d66(-0x282,-0x281)]['viewerParameters']=_0x4f2608;function _0x4b18ce(_0x8cc1c2,_0x2d2ffd){return _0x4052a4(_0x2d2ffd,_0x8cc1c2-0x2b2);}function _0x432d66(_0x12caa2,_0x447eef){return _0x2ac53d(_0x447eef- -0x325,_0x12caa2);}this[_0x432d66(-0x250,-0x2bd)][_0x4b18ce(0x128,0x124)]=_0x4f2608;}[_0x2ac53d(0xe1,0x134)](){this[_0x1e638c(0x1f8,0x25e)][_0x10c69d(-0x1e2,-0x235)]();function _0x1e638c(_0x52a3d0,_0x3bab02){return _0x2ac53d(_0x52a3d0-0x154,_0x3bab02);}function _0x10c69d(_0x58614d,_0x2a17e2){return _0x4052a4(_0x2a17e2,_0x58614d- -0x8f);}this['rendering'][_0x1e638c(0x235,0x1f5)]();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'];function _0x2ac53d(_0x30cc04,_0x50a74f){return _0x27df(_0x30cc04- -0x3d,_0x50a74f);}const _0xb15fe3={};_0xb15fe3['min']=0x1,_0xb15fe3['max']=0x2;const _0x4e3917={};_0x4e3917['min']=0x14,_0x4e3917['max']=0x64;const _0x4c2c3c={};_0x4c2c3c['particlesTextureSize']=0x64,_0x4c2c3c[_0x4052a4(-0x134,-0x194)]=0x0,_0x4c2c3c['lineWidth']=_0xb15fe3,_0x4c2c3c[_0x2ac53d(0x8a,0xc7)]=_0x4e3917,_0x4c2c3c['speedFactor']=0x1,_0x4c2c3c['dropRate']=0.003,_0x4c2c3c['dropRateBump']=0.001,_0x4c2c3c['colors']=['rgb(206,255,255)'],_0x4c2c3c['flipY']=![],_0x4c2c3c['dynamic']=!![];const DEF_OPTIONS=_0x4c2c3c;class WindLayer extends BaseLayer$1{constructor(_0x5055e0={}){_0x5055e0={...DEF_OPTIONS,..._0x5055e0},super(_0x5055e0);function _0x53d8f0(_0x529ab1,_0xb3588d){return _0x4052a4(_0xb3588d,_0x529ab1-0x2fc);}this[_0x53d8f0(0x19e,0x18b)](_0x5055e0,_0x5055e0);}get[_0x2ac53d(0x59,0x23)](){return this['primitives'];}get['data'](){return this['options']['data'];}set[_0x2ac53d(0xfc,0xad)](_0x4f0ab7){this['options']['data']=_0x4f0ab7,this['setData'](_0x4f0ab7);}get[_0x2ac53d(0x45,-0x28)](){function _0x254efd(_0x18e35c,_0x28833d){return _0x2ac53d(_0x28833d-0x115,_0x18e35c);}return this['options'][_0x254efd(0xfe,0x15a)];}set['colors'](_0x2f1a14){this[_0x1609e8(0x5b,0xbc)][_0x426c3b(0x423,0x487)]=_0x2f1a14;const _0x3fdc7b={};function _0x1609e8(_0x388f5f,_0x409429){return _0x2ac53d(_0x388f5f- -0x84,_0x409429);}_0x3fdc7b['colors']=_0x2f1a14;function _0x426c3b(_0x389cc0,_0x452a39){return _0x2ac53d(_0x389cc0-0x3de,_0x452a39);}this['_setOptionsHook'](this[_0x426c3b(0x4bd,0x448)],_0x3fdc7b);}['_showHook'](_0x1157f3){function _0x38ca9a(_0x393bfd,_0x1be697){return _0x4052a4(_0x1be697,_0x393bfd-0x496);}_0x1157f3?this[_0x38ca9a(0x2c1,0x264)]():this['_removedHook']();}[_0x4052a4(-0xf5,-0x130)](){}[_0x2ac53d(0x5f,0x87)](){this['scene']=this['_map'][_0x367793(0x346,0x2de)],this['camera']=this['_map']['camera'];this[_0x367793(0x23a,0x2a7)][_0x367793(0x295,0x2c4)]&&this[_0x188e61(0x430,0x470)](this['options']['data']);if(!this[_0x367793(0x26b,0x2f3)]||!this[_0x188e61(0x482,0x4d2)])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x367793(0x2e7,0x2de)][_0x367793(0x240,0x23e)]};function _0x188e61(_0x34fab4,_0xb8971c){return _0x2ac53d(_0x34fab4-0x381,_0xb8971c);}this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this[_0x367793(0x345,0x2de)][_0x367793(0x29a,0x261)],this['windData'],this[_0x188e61(0x460,0x475)],this[_0x367793(0x2e3,0x272)],this['scene']),this[_0x367793(0x28b,0x2a4)]=this['particleSystem']['getPrimitives'](),this['primitives']['forEach'](_0x384d8c=>{function _0x2eefe8(_0x33843b,_0x27b061){return _0x188e61(_0x27b061- -0x17b,_0x33843b);}this[_0x2eefe8(0x2e3,0x31c)]['primitives']['add'](_0x384d8c);});function _0x367793(_0x38e30b,_0x48fe9d){return _0x4052a4(_0x38e30b,_0x48fe9d-0x3fc);}this['camera']['percentageChanged']=0.01,this[_0x367793(0x2df,0x2fb)]['changed'][_0x188e61(0x4b3,0x429)](this[_0x188e61(0x49e,0x517)]['bind'](this)),this[_0x367793(0x281,0x2de)]['morphComplete']['addEventListener'](this['updateViewerParameters']['bind'](this)),window['addEventListener']('resize',this[_0x367793(0x342,0x2e5)]['bind'](this));}[_0x2ac53d(0x12a,0x1b2)](){function _0x2648d4(_0x2cb5de,_0x3e340a){return _0x4052a4(_0x2cb5de,_0x3e340a- -0x83);}function _0x1e87ed(_0x5eea6a,_0x1394b3){return _0x4052a4(_0x5eea6a,_0x1394b3-0x632);}this['camera']['changed']['removeEventListener'](this[_0x2648d4(-0x129,-0x19a)]['bind'](this)),this['scene']['morphComplete'][_0x2648d4(-0x1a3,-0x1e8)](this['updateViewerParameters']['bind'](this)),window[_0x1e87ed(0x466,0x4cd)](_0x2648d4(-0x148,-0x1ab),this['updateViewerParameters']['bind'](this)),this['primitives']&&(this[_0x2648d4(-0x1f3,-0x1db)]['forEach'](_0x5cc895=>{this['scene']['primitives']['remove'](_0x5cc895);}),delete this['primitives']),this[_0x2648d4(-0x1fe,-0x1fc)]&&(this['particleSystem']['destroy'](),delete this[_0x1e87ed(0x50d,0x4b9)]);}['setData'](_0x4d7970,_0x461d81){this[_0xb47f8c(0x2e9,0x34a)]=this[_0x187cc8(0x34c,0x352)](_0x4d7970);if(_0x461d81){this['_removedHook'](),this['_addedHook']();return;}function _0xb47f8c(_0x274365,_0x776b12){return _0x2ac53d(_0x776b12-0x21f,_0x274365);}function _0x187cc8(_0x2b6f6d,_0x5e46ba){return _0x4052a4(_0x2b6f6d,_0x5e46ba-0x47b);}this['particleSystem']?(this[_0x187cc8(0x331,0x302)][_0x187cc8(0x268,0x2eb)]['updateWindData'](this['windData']),this['scene'][_0xb47f8c(0x2c1,0x31f)]()):this['_addedHook']();}[_0x2ac53d(0xd6,0x85)](_0x3157c4,_0x1356f7){function _0x3e38a5(_0x16eecb,_0x507d05){return _0x2ac53d(_0x507d05- -0x1d6,_0x16eecb);}function _0x59f333(_0x5c18b6,_0x4f3d28){return _0x4052a4(_0x4f3d28,_0x5c18b6-0x1f7);}this[_0x3e38a5(-0xdc,-0x11b)]&&(this[_0x3e38a5(-0x114,-0x11b)]['changeOptions'](_0x1356f7),this['scene']['requestRender']());}['processWindData'](_0x4d1a21){var _0x5d1325,_0x1fc716;function _0x4dceb0(_0x4fac70,_0x2a679){return _0x2ac53d(_0x4fac70-0x3e6,_0x2a679);}const _0x2eb43a={..._0x4d1a21},_0x30dc7b=_0x2eb43a;!_0x30dc7b['height']&&_0x30dc7b[_0x21f8f9(0x441,0x43a)]&&(_0x30dc7b['height']=_0x30dc7b[_0x21f8f9(0x464,0x43a)]);!_0x30dc7b['width']&&_0x30dc7b[_0x4dceb0(0x4b2,0x50b)]&&(_0x30dc7b[_0x4dceb0(0x441,0x3f4)]=_0x30dc7b['cols']);!_0x30dc7b['bounds']&&(_0x30dc7b['bounds']={'west':_0x30dc7b['xmin'],'south':_0x30dc7b['ymin'],'east':_0x30dc7b['xmax'],'north':_0x30dc7b['ymax']});function _0x21f8f9(_0x1bb0db,_0xfea5b8){return _0x2ac53d(_0xfea5b8-0x397,_0x1bb0db);}if(!_0x30dc7b['u']){const _0x1f2e2c={};_0x1f2e2c[_0x21f8f9(0x3b1,0x415)]=_0x4d1a21[_0x4dceb0(0x459,0x401)],_0x1f2e2c['min']=_0x4d1a21['umin'],_0x1f2e2c[_0x4dceb0(0x502,0x4de)]=_0x4d1a21[_0x4dceb0(0x4d9,0x544)],_0x30dc7b['u']=_0x1f2e2c;}if(!_0x30dc7b['v']){const _0x19b902={};_0x19b902['array']=_0x4d1a21['vdata'],_0x19b902[_0x21f8f9(0x4dc,0x4c6)]=_0x4d1a21['vmin'],_0x19b902['max']=_0x4d1a21['vmax'],_0x30dc7b['v']=_0x19b902;}if(((_0x5d1325=_0x30dc7b['speed'])===null||_0x5d1325===void 0x0?void 0x0:_0x5d1325['min'])===undefined||((_0x1fc716=_0x30dc7b['speed'])===null||_0x1fc716===void 0x0?void 0x0:_0x1fc716['max'])===undefined||_0x30dc7b['speed'][_0x4dceb0(0x464,0x4d2)]===undefined){const _0x22e72a={'array':new Float32Array(_0x30dc7b['u'][_0x4dceb0(0x464,0x3ea)]['length']),'min':Number[_0x21f8f9(0x4aa,0x4cc)],'max':Number[_0x4dceb0(0x4d6,0x4b7)]};for(let _0x82a1a2=0x0;_0x82a1a2<_0x30dc7b['u']['array']['length'];_0x82a1a2++){_0x22e72a['array'][_0x82a1a2]=Math['sqrt'](_0x30dc7b['u'][_0x4dceb0(0x464,0x488)][_0x82a1a2]*_0x30dc7b['u'][_0x4dceb0(0x464,0x3e3)][_0x82a1a2]+_0x30dc7b['v'][_0x4dceb0(0x464,0x492)][_0x82a1a2]*_0x30dc7b['v']['array'][_0x82a1a2]),_0x22e72a['array'][_0x82a1a2]!==0x0&&(_0x22e72a[_0x21f8f9(0x47e,0x4c6)]=Math[_0x21f8f9(0x53d,0x4c6)](_0x22e72a[_0x4dceb0(0x515,0x55a)],_0x22e72a['array'][_0x82a1a2]),_0x22e72a[_0x4dceb0(0x502,0x526)]=Math['max'](_0x22e72a[_0x21f8f9(0x510,0x4b3)],_0x22e72a[_0x4dceb0(0x464,0x48a)][_0x82a1a2]));}_0x30dc7b[_0x21f8f9(0x36c,0x3e9)]=_0x22e72a;}return _0x30dc7b;}['updateViewerParameters'](){var _0x53696e;function _0x2b552e(_0x46ddea,_0x1dd62f){return _0x4052a4(_0x46ddea,_0x1dd62f- -0x151);}const _0x13b578=this[_0x2b552e(-0x1e7,-0x26f)];if(!_0x13b578)return;const _0x29320a=_0x13b578[_0xb61acd(-0x15e,-0xf7)],_0x5962b5={};_0x5962b5['x']=0x0,_0x5962b5['y']=0x0;const _0x9e57a={};_0x9e57a['x']=0x0,_0x9e57a['y']=_0x29320a[_0xb61acd(-0x189,-0x195)];const _0x454ee7={};function _0xb61acd(_0x9fc743,_0x693ca6){return _0x4052a4(_0x693ca6,_0x9fc743-0x28);}_0x454ee7['x']=_0x29320a[_0x2b552e(-0x378,-0x31a)],_0x454ee7['y']=0x0;const _0x52aed2={};_0x52aed2['x']=_0x29320a['clientWidth'],_0x52aed2['y']=_0x29320a[_0x2b552e(-0x28d,-0x302)];const _0x3ed9bc=[_0x5962b5,_0x9e57a,_0x454ee7,_0x52aed2];let _0x49fc2d=0xb4,_0x36af22=-0xb4,_0x2c2c21=0x5a,_0x25db4b=-0x5a,_0x222fe4=![];for(const _0x48d8ff of _0x3ed9bc){const _0x2f66df=_0x13b578['camera'][_0xb61acd(-0xca,-0x6e)](new Cesium$1[(_0x2b552e(-0x315,-0x2c7))](_0x48d8ff['x'],_0x48d8ff['y']),_0x13b578[_0xb61acd(-0xf7,-0x84)]['ellipsoid']);if(!_0x2f66df){_0x222fe4=!![];break;}const _0x217500=_0x13b578['globe']['ellipsoid']['cartesianToCartographic'](_0x2f66df),_0x4468fa=Cesium$1[_0xb61acd(-0x197,-0x111)][_0xb61acd(-0x1cf,-0x146)](_0x217500['longitude']),_0x57b89c=Cesium$1['Math']['toDegrees'](_0x217500[_0x2b552e(-0x2ec,-0x283)]);_0x49fc2d=Math['min'](_0x49fc2d,_0x4468fa),_0x36af22=Math['max'](_0x36af22,_0x4468fa),_0x2c2c21=Math['min'](_0x2c2c21,_0x57b89c),_0x25db4b=Math['max'](_0x25db4b,_0x57b89c);}if(!_0x222fe4){const _0xafee69=new Cesium$1['Cartesian2'](Math['max'](this['windData'][_0x2b552e(-0x297,-0x27f)][_0xb61acd(-0x1dd,-0x21b)],_0x49fc2d),Math['min'](this['windData']['bounds']['east'],_0x36af22)),_0x2e9129=new Cesium$1[(_0x2b552e(-0x2ce,-0x2c7))](Math[_0xb61acd(-0xf0,-0x164)](this[_0xb61acd(-0xe1,-0x7c)][_0xb61acd(-0x106,-0x161)][_0xb61acd(-0x118,-0x102)],_0x2c2c21),Math['min'](this['windData'][_0xb61acd(-0x106,-0x138)]['north'],_0x25db4b)),_0x1703ef=(_0xafee69['y']-_0xafee69['x'])*0.05,_0x4f4b9a=(_0x2e9129['y']-_0x2e9129['x'])*0.05;_0xafee69['x']=Math[_0xb61acd(-0xf0,-0x7e)](this['windData']['bounds']['west'],_0xafee69['x']-_0x1703ef),_0xafee69['y']=Math[_0xb61acd(-0xdd,-0xea)](this[_0xb61acd(-0xe1,-0xe8)]['bounds']['east'],_0xafee69['y']+_0x1703ef),_0x2e9129['x']=Math[_0x2b552e(-0x2a9,-0x269)](this['windData']['bounds'][_0xb61acd(-0x118,-0xa3)],_0x2e9129['x']-_0x4f4b9a),_0x2e9129['y']=Math['min'](this[_0xb61acd(-0xe1,-0x114)]['bounds']['north'],_0x2e9129['y']+_0x4f4b9a),this[_0xb61acd(-0x162,-0x138)][_0x2b552e(-0x25d,-0x29a)]=_0xafee69,this['viewerParameters']['latRange']=_0x2e9129;const _0x38ad61=this['windData']['bounds'][_0x2b552e(-0x280,-0x2d2)]-this[_0x2b552e(-0x22b,-0x25a)][_0x2b552e(-0x305,-0x27f)]['west'],_0xc4938b=this[_0x2b552e(-0x257,-0x25a)]['bounds']['north']-this[_0x2b552e(-0x2d8,-0x25a)]['bounds']['south'],_0x28e86c=(_0xafee69['y']-_0xafee69['x'])/_0x38ad61,_0x43d0cf=(_0x2e9129['y']-_0x2e9129['x'])/_0xc4938b,_0x48ff52=Math[_0x2b552e(-0x26c,-0x256)](_0x28e86c,_0x43d0cf),_0xd68d3a=0x3e8*_0x48ff52;_0xd68d3a>0x0&&(this['viewerParameters']['pixelSize']=Math[_0xb61acd(-0xf0,-0xd9)](0x0,Math['min'](0x3e8,_0xd68d3a)));}this['viewerParameters']['sceneMode']=this[_0xb61acd(-0xf6,-0xb4)]['mode'],(_0x53696e=this[_0x2b552e(-0x264,-0x2ca)])===null||_0x53696e===void 0x0||_0x53696e[_0xb61acd(-0x194,-0x174)](this['viewerParameters']);}['getDataAtLonLat'](_0x33980c,_0xb9ccab){function _0x3d1163(_0xfb448f,_0x2ac3e8){return _0x2ac53d(_0x2ac3e8- -0x146,_0xfb448f);}const {bounds:_0x31278e,width:_0xc77f05,height:_0x436187,u:_0x15f971,v:_0x31ed67,speed:_0x4da4ca}=this[_0x3d1163(-0x4f,-0x1b)],{flipY:_0xaeeac3}=this['options'];if(_0x33980c<_0x31278e['west']||_0x33980c>_0x31278e['east']||_0xb9ccab<_0x31278e[_0x3d1163(-0x28,-0x52)]||_0xb9ccab>_0x31278e['north'])return null;const _0x507423=(_0x33980c-_0x31278e['west'])/(_0x31278e[_0x1ca937(-0x165,-0x1a0)]-_0x31278e['west'])*(_0xc77f05-0x1);let _0x22775d=(_0xb9ccab-_0x31278e['south'])/(_0x31278e['north']-_0x31278e['south'])*(_0x436187-0x1);_0xaeeac3&&(_0x22775d=_0x436187-0x1-_0x22775d);const _0x41a73c=Math['floor'](_0x507423);function _0x1ca937(_0x324e3d,_0x31f5fc){return _0x2ac53d(_0x324e3d- -0x218,_0x31f5fc);}const _0x10013f=Math['floor'](_0x22775d),_0x2b20a8=Math[_0x1ca937(-0x1d2,-0x183)](_0x507423),_0x2282b8=Math['min'](_0x2b20a8+0x1,_0xc77f05-0x1),_0x33f0ab=Math['floor'](_0x22775d),_0x5d27a6=Math[_0x3d1163(-0x95,-0x17)](_0x33f0ab+0x1,_0x436187-0x1),_0x172623=_0x507423-_0x2b20a8,_0x50abbe=_0x22775d-_0x33f0ab,_0x276f50=_0x10013f*_0xc77f05+_0x41a73c,_0xecedfb=_0x33f0ab*_0xc77f05+_0x2b20a8,_0xc79405=_0x33f0ab*_0xc77f05+_0x2282b8,_0xeddf41=_0x5d27a6*_0xc77f05+_0x2b20a8,_0x1687d1=_0x5d27a6*_0xc77f05+_0x2282b8,_0x156215=_0x15f971['array'][_0xecedfb],_0x3c4598=_0x15f971['array'][_0xc79405],_0x16038d=_0x15f971['array'][_0xeddf41],_0x441394=_0x15f971['array'][_0x1687d1],_0x231701=(0x1-_0x172623)*(0x1-_0x50abbe)*_0x156215+_0x172623*(0x1-_0x50abbe)*_0x3c4598+(0x1-_0x172623)*_0x50abbe*_0x16038d+_0x172623*_0x50abbe*_0x441394,_0x5ac06b=_0x31ed67['array'][_0xecedfb],_0x1bb561=_0x31ed67['array'][_0xc79405],_0x5641c2=_0x31ed67[_0x1ca937(-0x19a,-0x20e)][_0xeddf41],_0x45f58a=_0x31ed67['array'][_0x1687d1],_0x46e78c=(0x1-_0x172623)*(0x1-_0x50abbe)*_0x5ac06b+_0x172623*(0x1-_0x50abbe)*_0x1bb561+(0x1-_0x172623)*_0x50abbe*_0x5641c2+_0x172623*_0x50abbe*_0x45f58a,_0x38f832=Math['sqrt'](_0x231701*_0x231701+_0x46e78c*_0x46e78c),_0xdc0dee={};_0xdc0dee['u']=_0x15f971['array'][_0x276f50],_0xdc0dee['v']=_0x31ed67[_0x3d1163(-0xb9,-0xc8)][_0x276f50],_0xdc0dee[_0x1ca937(-0x1c6,-0x186)]=_0x4da4ca[_0x1ca937(-0x19a,-0x124)][_0x276f50];const _0x1e816d={};_0x1e816d['u']=_0x231701,_0x1e816d['v']=_0x46e78c,_0x1e816d['speed']=_0x38f832;const _0x3626f9={};return _0x3626f9['original']=_0xdc0dee,_0x3626f9['interpolated']=_0x1e816d,_0x3626f9;}}mars3d__namespace[_0x2ac53d(0x98,0xf8)][_0x2ac53d(0x6d,0x84)]('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){function _0x545980(_0x2afdda,_0x22aa2b){return _0x2ac53d(_0x2afdda- -0x2d3,_0x22aa2b);}this[_0x545980(-0x192,-0x134)]=null,this[_0x500a73(0x42d,0x3a4)]=null;function _0x500a73(_0x54aeaa,_0x43a00b){return _0x4052a4(_0x54aeaa,_0x43a00b-0x564);}this['tlng']=null,this['tlat']=null,this['age']=null,this[_0x545980(-0x281,-0x1fa)]=null;}['destroy'](){for(const _0x3d9117 in this){delete this[_0x3d9117];}}}class CanvasWindField{constructor(_0x222506){function _0x4bb19f(_0x2d4b84,_0x308cc1){return _0x2ac53d(_0x308cc1- -0x3b,_0x2d4b84);}this[_0x4bb19f(0xa6,0x8c)](_0x222506);}get[_0x2ac53d(0x94,0x4c)](){function _0x3bb19a(_0x32af8a,_0x272f38){return _0x4052a4(_0x272f38,_0x32af8a-0x291);}return this[_0x3bb19a(0x11d,0xb3)];}set['speedRate'](_0x33061e){function _0x16048f(_0x41afad,_0x5259de){return _0x4052a4(_0x41afad,_0x5259de-0x443);}this[_0x19c52d(0x4aa,0x4ce)]=(0x64-(_0x33061e>0x63?0x63:_0x33061e))*0x64;function _0x19c52d(_0x53975c,_0x1d5bf2){return _0x4052a4(_0x1d5bf2,_0x53975c-0x61e);}this[_0x19c52d(0x4bf,0x43e)]=[(this['xmax']-this['xmin'])/this['_speedRate'],(this['ymax']-this['ymin'])/this[_0x16048f(0x2f4,0x2cf)]];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0x382636){function _0x30b627(_0x36d42c,_0x5ab3ad){return _0x4052a4(_0x36d42c,_0x5ab3ad-0x2e0);}this[_0x30b627(0x14b,0x141)]=_0x382636;}['setOptions'](_0x199dc5){this['options']=_0x199dc5,this['maxAge']=_0x199dc5['maxAge']||0x78;function _0xa7bfff(_0x9a6379,_0x12146e){return _0x4052a4(_0x9a6379,_0x12146e-0x2d4);}function _0x3c3e0c(_0x4f3352,_0x42ee0d){return _0x2ac53d(_0x4f3352-0x417,_0x42ee0d);}this['speedRate']=_0x199dc5[_0x3c3e0c(0x4ab,0x460)]||0x32,this['particles']=[];const _0x1723ea=_0x199dc5['particlesNumber']||0x1000;for(let _0x3fd49f=0x0;_0x3fd49f<_0x1723ea;_0x3fd49f++){const _0x1774fa=this['_randomParticle'](new CanvasParticle());this[_0x3c3e0c(0x45e,0x48d)][_0xa7bfff(0x21c,0x1aa)](_0x1774fa);}}['setDate'](_0x528dab){this['rows']=_0x528dab['rows'],this['cols']=_0x528dab['cols'],this[_0x1a268c(-0x1ac,-0x217)]=_0x528dab[_0x1a268c(-0x1ac,-0x1de)],this[_0x128e6c(0x425,0x400)]=_0x528dab['xmax'],this['ymin']=_0x528dab['ymin'],this[_0x128e6c(0x319,0x399)]=_0x528dab['ymax'],this['grid']=[];const _0x18956e=_0x528dab['udata'];function _0x128e6c(_0x5f5605,_0x177fc9){return _0x4052a4(_0x5f5605,_0x177fc9-0x53b);}const _0xda3484=_0x528dab[_0x128e6c(0x3fe,0x393)];function _0x1a268c(_0x4bb7f3,_0x439757){return _0x2ac53d(_0x4bb7f3- -0x2ea,_0x439757);}let _0x1239de=![];_0x18956e['length']===this['rows']&&_0x18956e[0x0]['length']===this[_0x128e6c(0x436,0x3d3)]&&(_0x1239de=!![]);let _0x50a8c5=0x0,_0x37f509=null,_0x35ec0e=null;for(let _0x28a1b7=0x0;_0x28a1b7<this['rows'];_0x28a1b7++){_0x37f509=[];for(let _0x462665=0x0;_0x462665<this[_0x1a268c(-0x21e,-0x27d)];_0x462665++,_0x50a8c5++){_0x1239de?_0x35ec0e=this[_0x128e6c(0x37b,0x376)](_0x18956e[_0x28a1b7][_0x462665],_0xda3484[_0x28a1b7][_0x462665]):_0x35ec0e=this['_calcUV'](_0x18956e[_0x50a8c5],_0xda3484[_0x50a8c5]),_0x37f509[_0x1a268c(-0x1e0,-0x1f1)](_0x35ec0e);}this[_0x1a268c(-0x230,-0x1a9)]['push'](_0x37f509);}!this[_0x128e6c(0x3bd,0x3e6)]['flipY']&&this['grid'][_0x128e6c(0x3c1,0x367)]();}['clear'](){delete this['rows'],delete this['cols'],delete this[_0x261945(0x4e,0x1c)];function _0x55fd7c(_0x1d45bd,_0x3cda2f){return _0x2ac53d(_0x1d45bd- -0x19e,_0x3cda2f);}function _0x261945(_0x4dcb89,_0x3b5086){return _0x4052a4(_0x3b5086,_0x4dcb89-0x144);}delete this['xmax'],delete this[_0x55fd7c(-0x150,-0x1ad)],delete this['ymax'],delete this['grid'],delete this['particles'];}[_0x2ac53d(0x6e,0xaf)](_0x415c20,_0x38c5dd){const _0x36033f=(_0x415c20-this['xmin'])/(this['xmax']-this['xmin'])*(this[_0x40e0b2(0x20a,0x252)]-0x1);function _0x40e0b2(_0x18a5f7,_0x44ce45){return _0x2ac53d(_0x18a5f7-0x13e,_0x44ce45);}const _0x3fa208=(this['ymax']-_0x38c5dd)/(this['ymax']-this['ymin'])*(this['rows']-0x1);return[_0x36033f,_0x3fa208];}[_0x2ac53d(0xc2,0x94)](_0x580efe,_0xee2677){if(_0x580efe<0x0||_0x580efe>=this[_0x389fdb(-0x247,-0x263)]||_0xee2677>=this['rows'])return[0x0,0x0,0x0];const _0x5cd06a=Math[_0x10c0ae(-0x8d,-0x80)](_0x580efe);function _0x389fdb(_0x363c8d,_0x1d5789){return _0x2ac53d(_0x363c8d- -0x313,_0x1d5789);}const _0x36e147=Math[_0x10c0ae(-0x8d,-0xb4)](_0xee2677);if(_0x5cd06a===_0x580efe&&_0x36e147===_0xee2677)return this[_0x10c0ae(-0x19,-0x37)][_0xee2677][_0x580efe];const _0x346147=_0x5cd06a+0x1,_0x36391d=_0x36e147+0x1,_0x53af4e=this['getUVByXY'](_0x5cd06a,_0x36e147),_0x3ad8dc=this['getUVByXY'](_0x346147,_0x36e147),_0x42c0e2=this[_0x10c0ae(-0x11,-0x34)](_0x5cd06a,_0x36391d),_0x5c8879=this['getUVByXY'](_0x346147,_0x36391d);let _0x4625d3=null;function _0x10c0ae(_0x46795f,_0xccf026){return _0x4052a4(_0xccf026,_0x46795f-0x161);}try{_0x4625d3=this[_0x389fdb(-0x2a2,-0x276)](_0x580efe-_0x5cd06a,_0xee2677-_0x36e147,_0x53af4e,_0x3ad8dc,_0x42c0e2,_0x5c8879);}catch(_0x2f34db){console['log'](_0x580efe,_0xee2677);}return _0x4625d3;}[_0x4052a4(-0x177,-0x1c3)](_0x38e967,_0x82e622,_0x580c87,_0x1ef702,_0x3f1290,_0x338d66){const _0x4a11d0=0x1-_0x38e967,_0x236621=0x1-_0x82e622,_0x10a262=_0x4a11d0*_0x236621;function _0xc569f1(_0x16ab2d,_0x2ec144){return _0x2ac53d(_0x2ec144-0x5d,_0x16ab2d);}const _0x396508=_0x38e967*_0x236621,_0x242851=_0x4a11d0*_0x82e622,_0x39ced6=_0x38e967*_0x82e622,_0x1c9cd8=_0x580c87[0x0]*_0x10a262+_0x1ef702[0x0]*_0x396508+_0x3f1290[0x0]*_0x242851+_0x338d66[0x0]*_0x39ced6,_0x5d53a6=_0x580c87[0x1]*_0x10a262+_0x1ef702[0x1]*_0x396508+_0x3f1290[0x1]*_0x242851+_0x338d66[0x1]*_0x39ced6;return this[_0xc569f1(0x13b,0xcc)](_0x1c9cd8,_0x5d53a6);}[_0x2ac53d(0x6f,0xa9)](_0x1e9921,_0x5b1e42){return[+_0x1e9921,+_0x5b1e42,Math['sqrt'](_0x1e9921*_0x1e9921+_0x5b1e42*_0x5b1e42)];}[_0x2ac53d(0xee,0xc7)](_0xc9863f,_0x5eda39){function _0x137c4e(_0x5bb475,_0x39c8e1){return _0x2ac53d(_0x5bb475- -0x26c,_0x39c8e1);}function _0x3fc156(_0x3607d2,_0x31d3d9){return _0x2ac53d(_0x3607d2- -0x18c,_0x31d3d9);}if(!this[_0x137c4e(-0x1e3,-0x206)](_0xc9863f,_0x5eda39))return null;const _0x54cb4d=this[_0x3fc156(-0x11e,-0x146)](_0xc9863f,_0x5eda39),_0x54c133=this['getUVByXY'](_0x54cb4d[0x0],_0x54cb4d[0x1]);return _0x54c133;}['isInExtent'](_0x40257d,_0x1b3dff){function _0x3cd982(_0x1e41e3,_0x518f18){return _0x2ac53d(_0x1e41e3- -0x29,_0x518f18);}return _0x40257d>=this[_0x3cd982(0x115,0x18a)]&&_0x40257d<=this['xmax']&&_0x1b3dff>=this['ymin']&&_0x1b3dff<=this['ymax']?!![]:![];}[_0x2ac53d(0x11a,0x183)](){const _0x33c47a=fRandomByfloat(this[_0x457d04(0x506,0x51e)],this[_0x56b797(0x360,0x336)]);function _0x56b797(_0x4ce6e5,_0x5bf286){return _0x2ac53d(_0x4ce6e5-0x267,_0x5bf286);}const _0x596292=fRandomByfloat(this['ymin'],this['ymax']),_0x331cd6={};_0x331cd6[_0x457d04(0x494,0x454)]=_0x596292,_0x331cd6[_0x457d04(0x557,0x521)]=_0x33c47a;function _0x457d04(_0x39717f,_0x4acef7){return _0x2ac53d(_0x4acef7-0x3e0,_0x39717f);}return _0x331cd6;}[_0x4052a4(-0x129,-0x114)](){let _0x269fed,_0x482e87,_0x2f3efc;function _0x51ce35(_0x3e830a,_0x247245){return _0x4052a4(_0x247245,_0x3e830a-0x219);}function _0x19aca1(_0x32e138,_0x2cc448){return _0x4052a4(_0x32e138,_0x2cc448-0x42b);}for(let _0x4585d8=0x0,_0x56a9e6=this['particles']['length'];_0x4585d8<_0x56a9e6;_0x4585d8++){let _0x36e914=this['particles'][_0x4585d8];_0x36e914['age']<=0x0&&(_0x36e914=this['_randomParticle'](_0x36e914));if(_0x36e914['age']>0x0){const _0x1dc977=_0x36e914[_0x51ce35(0x62,0x1e)],_0x3286bb=_0x36e914[_0x51ce35(0x2d,0x19)];_0x2f3efc=this[_0x19aca1(0x2db,0x2e5)](_0x1dc977,_0x3286bb),_0x2f3efc?(_0x269fed=_0x1dc977+this['_calc_speedRate'][0x0]*_0x2f3efc[0x0],_0x482e87=_0x3286bb+this[_0x51ce35(0xba,0xee)][0x1]*_0x2f3efc[0x1],_0x36e914['lng']=_0x1dc977,_0x36e914[_0x51ce35(0x59,0x90)]=_0x3286bb,_0x36e914['tlng']=_0x269fed,_0x36e914[_0x19aca1(0x236,0x23f)]=_0x482e87,_0x36e914[_0x51ce35(0x37,0x58)]=_0x2f3efc[0x2],_0x36e914[_0x51ce35(0x9e,0x24)]--):_0x36e914['age']=0x0;}}return this['particles'];}['_randomParticle'](_0x236737){let _0x2a38a3,_0x4e281b;function _0x33e430(_0x394379,_0x2a54ae){return _0x2ac53d(_0x2a54ae-0x29a,_0x394379);}for(let _0x2afc84=0x0;_0x2afc84<0x1e;_0x2afc84++){_0x2a38a3=this[_0x144387(-0x1a8,-0x22f)](),_0x4e281b=this[_0x33e430(0x32e,0x388)](_0x2a38a3['lng'],_0x2a38a3[_0x33e430(0x286,0x30e)]);if(_0x4e281b&&_0x4e281b[0x2]>0x0)break;}if(!_0x4e281b)return _0x236737;function _0x144387(_0xe027de,_0x21433c){return _0x4052a4(_0xe027de,_0x21433c- -0x115);}const _0x50d296=_0x2a38a3[_0x33e430(0x396,0x3db)]+this['_calc_speedRate'][0x0]*_0x4e281b[0x0],_0xe7197=_0x2a38a3[_0x144387(-0x25b,-0x2d5)]+this[_0x33e430(0x3a4,0x36f)][0x1]*_0x4e281b[0x1];return _0x236737['lng']=_0x2a38a3['lng'],_0x236737[_0x33e430(0x332,0x30e)]=_0x2a38a3['lat'],_0x236737[_0x33e430(0x39a,0x317)]=_0x50d296,_0x236737[_0x144387(-0x385,-0x301)]=_0xe7197,_0x236737[_0x144387(-0x24b,-0x290)]=Math[_0x144387(-0x34d,-0x318)](0xa+Math[_0x33e430(0x362,0x39d)]()*this['maxAge']),_0x236737['speed']=_0x4e281b[0x2],_0x236737;}[_0x4052a4(-0x171,-0x153)](){for(const _0xd607eb in this){delete this[_0xd607eb];}}}function fRandomByfloat(_0x1f566a,_0x40e393){return _0x1f566a+Math['random']()*(_0x40e393-_0x1f566a);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x4f04a7={}){super(_0x4f04a7),this['_setOptionsHook'](_0x4f04a7);function _0x47bc40(_0x5a13f3,_0x5d3fac){return _0x2ac53d(_0x5a13f3- -0xdd,_0x5d3fac);}this['canvas']=null,_0x4f04a7['colors']&&_0x4f04a7['steps']&&(this[_0x47bc40(-0x2b,0x1d)]=new mars3d__namespace['ColorRamp'](_0x4f04a7));}['_setOptionsHook'](_0x19bd7e,_0x1888c8){function _0x2ece71(_0x4f5f83,_0x12282f){return _0x2ac53d(_0x4f5f83- -0x356,_0x12282f);}function _0x3600a5(_0x336343,_0x27193d){return _0x4052a4(_0x27193d,_0x336343-0x14d);}this[_0x2ece71(-0x21d,-0x2a7)]=0x3e8/(_0x19bd7e['frameRate']||0xa),this[_0x2ece71(-0x233,-0x23e)]=this[_0x2ece71(-0x277,-0x22d)][_0x2ece71(-0x237,-0x1cb)]??![],this['color']=_0x19bd7e[_0x3600a5(-0x9e,-0xe7)]||_0x3600a5(-0x41,-0x3d),this['lineWidth']=_0x19bd7e[_0x2ece71(-0x285,-0x20f)]||0x1,this['fixedHeight']=_0x19bd7e['fixedHeight']??0x0,this['flipY']=_0x19bd7e[_0x3600a5(-0x81,-0x2b)]??![],this['windField']&&this['windField'][_0x3600a5(-0x20,-0x59)](_0x19bd7e);}get['layer'](){function _0xebb675(_0x4f19d9,_0x114db8){return _0x2ac53d(_0x4f19d9- -0x2a7,_0x114db8);}return this[_0xebb675(-0x1f9,-0x243)];}get[_0x2ac53d(0x69,0xd7)](){function _0x2ba2cd(_0x224b50,_0x295139){return _0x2ac53d(_0x295139-0x3b5,_0x224b50);}function _0x36fe7c(_0x3fd0cf,_0x101e23){return _0x2ac53d(_0x101e23-0x320,_0x3fd0cf);}return this[_0x36fe7c(0x431,0x3bb)][_0x2ba2cd(0x47f,0x4cb)]['canvas']['clientWidth'];}get['canvasHeight'](){return this['_map']['scene']['canvas']['clientHeight'];}get['pointerEvents'](){function _0x1f1b11(_0xd3d25b,_0x473f4a){return _0x2ac53d(_0xd3d25b-0x84,_0x473f4a);}return this[_0x1f1b11(0x1a7,0x125)];}set[_0x4052a4(-0xc2,-0x115)](_0x18a8ec){this[_0x267b23(0x496,0x4f3)]=_0x18a8ec;function _0x267b23(_0x2e8f80,_0x2f0606){return _0x4052a4(_0x2e8f80,_0x2f0606-0x604);}function _0x565f2e(_0xa38b0b,_0xa611b7){return _0x4052a4(_0xa611b7,_0xa38b0b-0x211);}if(!this['canvas'])return;_0x18a8ec?this[_0x565f2e(0x8b,0x54)][_0x565f2e(0x18,-0x63)]['pointer-events']='all':this[_0x267b23(0x3f5,0x47e)]['style']['pointer-events']=_0x267b23(0x473,0x4f1);}get[_0x2ac53d(0xa5,0x2a)](){return this['options']['particlesNumber'];}set['particlesNumber'](_0xb1d7d9){this['options']['particlesNumber']=_0xb1d7d9,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x4052a4(-0x1e2,-0x1a0)](){function _0x416163(_0x4c02a5,_0x58a0d1){return _0x4052a4(_0x4c02a5,_0x58a0d1-0x1a9);}return this['options'][_0x416163(0x1b,0x9)];}set[_0x4052a4(-0x1d1,-0x1a0)](_0x557dc8){this[_0x2447b8(0x4c8,0x4b2)]['speedRate']=_0x557dc8;function _0x52ea68(_0x1400b4,_0x217885){return _0x4052a4(_0x1400b4,_0x217885-0x4f6);}function _0x2447b8(_0x307dc2,_0x37d732){return _0x2ac53d(_0x307dc2-0x3e9,_0x37d732);}this[_0x52ea68(0x39b,0x37a)]&&(this[_0x2447b8(0x4a1,0x48b)][_0x52ea68(0x3c7,0x356)]=_0x557dc8);}get['maxAge'](){function _0x28117d(_0x526b00,_0x1d9ef7){return _0x2ac53d(_0x526b00-0x143,_0x1d9ef7);}function _0x5b4413(_0x19f044,_0x523a49){return _0x4052a4(_0x523a49,_0x19f044- -0x108);}return this[_0x5b4413(-0x25d,-0x2aa)][_0x28117d(0x22a,0x2a0)];}set['maxAge'](_0x5a0e75){this['options']['maxAge']=_0x5a0e75;function _0x588348(_0x52fb1c,_0x30d85d){return _0x4052a4(_0x30d85d,_0x52fb1c-0x5dd);}this['windField']&&(this[_0x588348(0x461,0x4bc)]['maxAge']=_0x5a0e75);}get[_0x2ac53d(0xfc,0xca)](){return this['windData'];}set[_0x4052a4(-0x11e,-0x138)](_0x427a7a){function _0x1030a5(_0x33dace,_0x181007){return _0x2ac53d(_0x181007-0xce,_0x33dace);}this[_0x1030a5(0x1c8,0x17d)](_0x427a7a);}get['rectangle'](){function _0x13f29d(_0x44b1a1,_0x3dd1a2){return _0x2ac53d(_0x3dd1a2- -0x2f3,_0x44b1a1);}let _0x3bbdbf=this[_0x4e3119(0x1b3,0x237)]['xmin'];function _0x4e3119(_0xd4246a,_0x581124){return _0x4052a4(_0xd4246a,_0x581124-0x340);}let _0x56101=this['windData']['xmax'],_0x1c60dd=this[_0x4e3119(0x1b7,0x237)]['ymin'],_0x3b7d54=this['windData']['ymax'];return _0x56101>=0x167&&_0x3bbdbf===0x0&&(_0x3bbdbf=-0xb4,_0x56101=0xb4),_0x3bbdbf=Math['max'](_0x3bbdbf,-0xb4),_0x56101=Math['min'](_0x56101,0xb4),_0x1c60dd=Math['max'](_0x1c60dd,-0x5a),_0x3b7d54=Math[_0x13f29d(-0x237,-0x1c4)](_0x3b7d54,0x5a),Cesium['Rectangle'][_0x13f29d(-0x303,-0x2bc)](_0x3bbdbf,_0x1c60dd,_0x56101,_0x3b7d54);}['_showHook'](_0x18e870){function _0x19ebb4(_0x190e83,_0x2d9660){return _0x2ac53d(_0x190e83- -0x37c,_0x2d9660);}_0x18e870?this['_addedHook']():(this[_0x19ebb4(-0x251,-0x22c)]&&(this['options']['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x231616(_0x2eb1bf,_0x3cf837){return _0x4052a4(_0x2eb1bf,_0x3cf837- -0xd9);}function _0x416ebe(_0x597719,_0x302ddd){return _0x2ac53d(_0x597719-0x7b,_0x302ddd);}this['options']['worker']?this[_0x231616(-0x20d,-0x225)]():this[_0x416ebe(0x133,0x197)]=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this[_0x251473(0x482,0x50c)]();const _0x2c203c={};_0x2c203c[_0x23e603(-0x1c8,-0x181)]=!![],this['canvasContext']=this[_0x23e603(-0x148,-0x10b)]['getContext']('2d',_0x2c203c);function _0x23e603(_0x55a2ee,_0x314b36){return _0x4052a4(_0x55a2ee,_0x314b36-0x7b);}this[_0x251473(0x49c,0x493)]();function _0x251473(_0x2b9c7e,_0x4776a4){return _0x4052a4(_0x4776a4,_0x2b9c7e-0x651);}this['options']['data']&&this['setData'](this[_0x23e603(-0x6e,-0xda)]['data']);}['_removedHook'](){this['clear'](),this[_0x47fb76(-0xf,0x62)]();function _0x378a05(_0x2eb07f,_0x56ef59){return _0x4052a4(_0x2eb07f,_0x56ef59-0x51e);}function _0x47fb76(_0x4eb7fa,_0x5af61e){return _0x2ac53d(_0x4eb7fa- -0xac,_0x5af61e);}this[_0x47fb76(0x2,-0x13)]&&(this['_map'][_0x378a05(0x451,0x41a)][_0x47fb76(-0x70,-0x92)](this['canvas']),delete this[_0x47fb76(0x2,0x38)]);}['_createCanvas'](){const _0xe56e15=mars3d__namespace['DomUtil'][_0x6f18fd(0x67,0xa9)]('canvas','mars3d-canvasWind',this[_0x70dded(0x33f,0x379)]['container']);_0xe56e15[_0x70dded(0x39e,0x319)]['position']='absolute';function _0x70dded(_0x597ebe,_0x54ff6a){return _0x2ac53d(_0x54ff6a-0x2de,_0x597ebe);}_0xe56e15['style']['top']=_0x70dded(0x3bf,0x3c2),_0xe56e15['style']['left']='0px',_0xe56e15['style']['width']=this['_map'][_0x70dded(0x3fb,0x3f4)]['canvas']['clientWidth']+'px',_0xe56e15[_0x70dded(0x3a2,0x319)][_0x6f18fd(0xc6,0xf3)]=this[_0x70dded(0x3e1,0x379)]['scene'][_0x6f18fd(0x31,0xa3)]['clientHeight']+'px',_0xe56e15[_0x6f18fd(-0x33,0x30)][_0x6f18fd(0x10c,0x114)]=this['_pointerEvents']?'auto':'none',_0xe56e15[_0x70dded(0x34b,0x319)]['zIndex']=this[_0x70dded(0x3be,0x3bd)]['zIndex']??0x9;function _0x6f18fd(_0x4824a4,_0x357277){return _0x4052a4(_0x4824a4,_0x357277-0x229);}return _0xe56e15['width']=this[_0x70dded(0x31a,0x379)]['scene']['canvas'][_0x70dded(0x3a1,0x349)],_0xe56e15[_0x70dded(0x3c8,0x3dc)]=this['_map']['scene']['canvas']['clientHeight'],_0xe56e15;}[_0x4052a4(-0x167,-0x128)](){function _0x3ce785(_0x47b6bb,_0x23cbe0){return _0x2ac53d(_0x23cbe0- -0x39b,_0x47b6bb);}function _0x6dff65(_0x4022db,_0x22d1d1){return _0x2ac53d(_0x4022db- -0x67,_0x22d1d1);}this['canvas']&&(this['canvas'][_0x3ce785(-0x393,-0x360)][_0x6dff65(-0xc,0xa)]=this[_0x6dff65(0x34,0xa7)]['scene'][_0x6dff65(0x47,0x40)]['clientWidth']+'px',this['canvas']['style']['height']=this['_map']['scene']['canvas'][_0x3ce785(-0x35a,-0x318)]+'px',this['canvas'][_0x6dff65(-0xc,0xf)]=this['_map'][_0x3ce785(-0x21b,-0x285)][_0x3ce785(-0x36e,-0x2ed)][_0x3ce785(-0x2e2,-0x330)],this[_0x6dff65(0x47,0x1e)]['height']=this[_0x3ce785(-0x295,-0x300)]['scene'][_0x6dff65(0x47,0xaa)]['clientHeight']);}['bindEvent'](){const _0x37bd31=this;let _0x501dc3=Date['now']();(function _0x3df21e(){function _0x27f6cf(_0x167c34,_0x25afe4){return _0x27df(_0x25afe4- -0x128,_0x167c34);}if(_0x37bd31[_0x27f6cf(-0x71,0x6)])return;_0x37bd31['_animateFrame']=window['requestAnimationFrame'](_0x3df21e);function _0xfe22f1(_0x437904,_0x109a76){return _0x27df(_0x437904- -0x39b,_0x109a76);}if(_0x37bd31[_0x27f6cf(0x62,0x16)]&&_0x37bd31[_0x27f6cf(-0x41,-0x33)]){const _0x18ef5d=Date[_0xfe22f1(-0x268,-0x22b)](),_0x4617fd=_0x18ef5d-_0x501dc3;_0x4617fd>_0x37bd31[_0x27f6cf(-0x3,0x4e)]&&(_0x501dc3=_0x18ef5d-_0x4617fd%_0x37bd31[_0x27f6cf(-0x39,0x4e)],_0x37bd31[_0xfe22f1(-0x24e,-0x23a)]());}}(),window[_0x586407(0x81,0x62)]('resize',this[_0x5d5d2b(0x20c,0x28c)]['bind'](this),![]));function _0x5d5d2b(_0x14914a,_0x2368d8){return _0x2ac53d(_0x2368d8-0x180,_0x14914a);}this[_0x586407(0x76,0x4)]=![],this[_0x586407(0xb,-0x13)]=![];function _0x586407(_0x3b2bbb,_0x44d2b7){return _0x4052a4(_0x44d2b7,_0x3b2bbb-0x183);}this[_0x586407(0x2e,0xa0)][_0x586407(-0x73,-0x53)]&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x586407(-0x16,0x49)]['on'](mars3d__namespace['EventType'][_0x586407(-0x21,0x25)],this[_0x5d5d2b(0x288,0x292)],this),this[_0x5d5d2b(0x1f7,0x21b)]['on'](mars3d__namespace[_0x5d5d2b(0x26c,0x29b)]['mouseUp'],this['_onMouseUpEvent'],this));}['unbindEvent'](){window[_0x57bc39(-0x2f3,-0x2e5)](this['_animateFrame']);function _0x57bc39(_0x4ca0b5,_0x2c1ff1){return _0x2ac53d(_0x2c1ff1- -0x357,_0x4ca0b5);}function _0x51b988(_0x1170d2,_0x1815ab){return _0x2ac53d(_0x1170d2-0x23b,_0x1815ab);}delete this['_animateFrame'],window['removeEventListener'](_0x51b988(0x347,0x2ca),this['resize']),this['options']['mouseHidden']&&(this[_0x51b988(0x2d6,0x277)]['off'](mars3d__namespace['EventType'][_0x51b988(0x2c8,0x28d)],this[_0x57bc39(-0x242,-0x2bd)],this),this['_map']['off'](mars3d__namespace[_0x57bc39(-0x2ac,-0x23c)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x51b988(0x2d6,0x25e)][_0x51b988(0x275,0x2a6)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x57bc39(-0x22c,-0x268)],this[_0x57bc39(-0x288,-0x25f)],this));}['_onMapWhellEvent'](_0x3d63c8){function _0x565cc5(_0x2056cf,_0x587b8){return _0x2ac53d(_0x587b8- -0x2b3,_0x2056cf);}clearTimeout(this['refreshTimer']);if(!this[_0x565cc5(-0x23b,-0x1b2)]||!this[_0x565cc5(-0x22f,-0x205)])return;this['canvas']['style'][_0x565cc5(-0x16b,-0x18a)]=_0x26456a(0x5c,0x1e);function _0x26456a(_0x31e4a4,_0x3bc73d){return _0x2ac53d(_0x3bc73d- -0xbd,_0x31e4a4);}this[_0x26456a(0x72,-0x16)]=setTimeout(()=>{if(!this['show'])return;function _0x27abe0(_0x1afd75,_0x5836c5){return _0x565cc5(_0x5836c5,_0x1afd75-0x364);}this[_0x2bc344(-0x1b5,-0x188)]();function _0x2bc344(_0xce0ec8,_0x206ad6){return _0x26456a(_0xce0ec8,_0x206ad6- -0x150);}this[_0x27abe0(0x15f,0x173)]['style']['visibility']='visible';},0xc8);}[_0x2ac53d(0x112,0x106)](_0x46cf40){this[_0x2a3897(-0xed,-0x94)]=!![];function _0x2a3897(_0x5dce18,_0x46bc7f){return _0x4052a4(_0x46bc7f,_0x5dce18-0x20);}this[_0x2a3897(-0x179,-0x1c1)]['off'](mars3d__namespace['EventType'][_0x2a3897(-0x125,-0x185)],this[_0x2a3897(-0x11c,-0x170)],this);function _0x41d84a(_0x1a8876,_0x4dd9dd){return _0x2ac53d(_0x4dd9dd-0x15d,_0x1a8876);}this[_0x2a3897(-0x179,-0x12d)]['on'](mars3d__namespace['EventType'][_0x41d84a(0x27b,0x24c)],this[_0x2a3897(-0x11c,-0x18e)],this);}[_0x2ac53d(0xf8,0x114)](_0x4f9ce7){function _0x14a2b6(_0x24708e,_0x1b944b){return _0x2ac53d(_0x1b944b-0x3db,_0x24708e);}if(!this['show']||!this[_0x14a2b6(0x4b7,0x489)])return;this['mouse_down']&&(this['canvas']['style']['visibility']='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x29d21c){if(!this['show']||!this['canvas'])return;function _0x2bbd75(_0x5ed713,_0x2230b4){return _0x2ac53d(_0x5ed713- -0x2ba,_0x2230b4);}function _0x15fbd2(_0x3a331c,_0x5df973){return _0x4052a4(_0x3a331c,_0x5df973- -0x14);}this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x15fbd2(-0x197,-0x121)]&&this['mouse_move']&&this[_0x15fbd2(-0x182,-0x1c3)](),this['canvas'][_0x15fbd2(-0x231,-0x20d)]['visibility']='visible',this[_0x2bbd75(-0x193,-0x204)]=![],this[_0x2bbd75(-0x1fe,-0x23d)]=![];}['setData'](_0x38a292){function _0x59e61e(_0x42bf00,_0x21dffc){return _0x4052a4(_0x42bf00,_0x21dffc-0x11e);}this[_0x59e61e(-0x14c,-0xe0)](),this['windData']=_0x38a292,this['windField']['setDate'](_0x38a292),this['redraw']();}['redraw'](){if(!this['show'])return;this['windField']['setOptions'](this['options']),this['update']();}['update'](){function _0x578b83(_0x2f4b12,_0x24ef64){return _0x2ac53d(_0x2f4b12-0x338,_0x24ef64);}if(this[_0x578b83(0x382,0x3bf)])return;this['_updateIng']=!![];if(this['worker'])this['windField']['update']();else{const _0x4ab29a=this[_0x578b83(0x3f0,0x390)]['getParticles']();this[_0x3b5451(-0x339,-0x309)](_0x4ab29a);}function _0x3b5451(_0x2ea383,_0xca91ca){return _0x2ac53d(_0xca91ca- -0x35d,_0x2ea383);}this[_0x578b83(0x382,0x32b)]=![];}[_0x4052a4(-0x172,-0x1e0)](_0x5458fb){this['_canvasParticles']=_0x5458fb,this['canvasContext'][_0x1a2cfd(-0x23f,-0x1df)]='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this[_0x409fe7(-0x26,0x8)],this[_0x1a2cfd(-0x2bc,-0x272)]),this[_0x1a2cfd(-0x2f6,-0x2e4)]['globalCompositeOperation']=_0x409fe7(0x79,0x8c);function _0x409fe7(_0x41d169,_0x2d1e36){return _0x4052a4(_0x2d1e36,_0x41d169-0x1a5);}this['canvasContext'][_0x409fe7(0x22,0x11)]=0.9;function _0x1a2cfd(_0x491039,_0x213aeb){return _0x4052a4(_0x213aeb,_0x491039- -0x124);}const _0x40b916=this['_map']['scene'][_0x409fe7(-0x19,-0x10)]!==Cesium['SceneMode']['SCENE3D'],_0x59769b=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x4e8237=0x0,_0x10425a=_0x5458fb['length'];_0x4e8237<_0x10425a;_0x4e8237++){const _0x15171d=_0x5458fb[_0x4e8237],_0x30f366=this[_0x1a2cfd(-0x302,-0x38b)](_0x15171d,_0x15171d['lng'],_0x15171d['lat'],_0x15171d['alt']),_0x5b9db1=this['_tomap'](_0x15171d,_0x15171d['tlng'],_0x15171d['tlat'],_0x15171d['talt']);if(!_0x30f366||!_0x5b9db1)continue;if(_0x40b916&&Math[_0x1a2cfd(-0x261,-0x20e)](_0x30f366[0x0]-_0x5b9db1[0x0])>=_0x59769b)continue;this['canvasContext']['beginPath'](),this[_0x409fe7(-0x2d,0x22)][_0x1a2cfd(-0x287,-0x221)]=this[_0x409fe7(0x42,0xa0)],this[_0x1a2cfd(-0x2f6,-0x2fd)]['strokeStyle']=this[_0x409fe7(0x23,-0x40)][_0x409fe7(0x12,-0x36)](_0x15171d[_0x1a2cfd(-0x306,-0x379)]),this['canvasContext'][_0x1a2cfd(-0x26f,-0x2ed)](_0x30f366[0x0],_0x30f366[0x1]),this['canvasContext']['lineTo'](_0x5b9db1[0x0],_0x5b9db1[0x1]),this['canvasContext'][_0x409fe7(-0x35,-0x6f)]();}else{this['canvasContext'][_0x1a2cfd(-0x220,-0x1dd)](),this['canvasContext'][_0x1a2cfd(-0x287,-0x2cf)]=this[_0x1a2cfd(-0x287,-0x28a)],this[_0x1a2cfd(-0x2f6,-0x30d)][_0x1a2cfd(-0x2a8,-0x2c3)]=this['color'];for(let _0x3a254f=0x0,_0xc0e2c9=_0x5458fb['length'];_0x3a254f<_0xc0e2c9;_0x3a254f++){const _0x1c1cbf=_0x5458fb[_0x3a254f],_0x54a187=this['_tomap'](_0x1c1cbf,_0x1c1cbf[_0x409fe7(0xb2,0x3d)],_0x1c1cbf['lat'],_0x1c1cbf['alt']),_0x11067a=this['_tomap'](_0x1c1cbf,_0x1c1cbf['tlng'],_0x1c1cbf[_0x1a2cfd(-0x310,-0x338)],_0x1c1cbf['talt']);if(!_0x54a187||!_0x11067a)continue;if(_0x40b916&&Math['abs'](_0x54a187[0x0]-_0x11067a[0x0])>=_0x59769b)continue;this['canvasContext']['moveTo'](_0x54a187[0x0],_0x54a187[0x1]),this[_0x409fe7(-0x2d,-0x93)]['lineTo'](_0x11067a[0x0],_0x11067a[0x1]);}this[_0x1a2cfd(-0x2f6,-0x2b6)]['stroke']();}}[_0x2ac53d(0x56,0x51)](_0x5c71c7,_0x45712e,_0x455253,_0x2759f5){function _0x59dc78(_0x2adc55,_0x1cc046){return _0x2ac53d(_0x2adc55- -0x285,_0x1cc046);}const _0x3a0951=Cesium['Cartesian3'][_0x59dc78(-0x24e,-0x2b1)](_0x45712e,_0x455253,_0x2759f5??this[_0x26bbf0(0x69,0x3a)]);function _0x26bbf0(_0x114fc6,_0x3f7221){return _0x2ac53d(_0x3f7221- -0x66,_0x114fc6);}const _0x2c7830=this[_0x59dc78(-0x1ea,-0x18b)]['scene'];if(_0x2c7830['mode']===Cesium['SceneMode']['SCENE3D']){const _0x479d15=new Cesium['EllipsoidalOccluder'](_0x2c7830[_0x26bbf0(0xcd,0xaf)]['ellipsoid'],_0x2c7830['camera']['positionWC']),_0x27a161=_0x479d15['isPointVisible'](_0x3a0951);if(!_0x27a161)return _0x5c71c7[_0x59dc78(-0x1cc,-0x1de)]=0x0,null;}const _0x132bc8=mars3d__namespace[_0x59dc78(-0x17e,-0x155)]['toWindowCoordinates'](this['_map']['scene'],_0x3a0951);return _0x132bc8?[_0x132bc8['x'],_0x132bc8['y']]:null;}['clear'](){function _0x272eca(_0x2ec15d,_0x1a65d6){return _0x2ac53d(_0x2ec15d-0x414,_0x1a65d6);}this['windField']['clear'](),delete this[_0x272eca(0x53f,0x4de)];}[_0x4052a4(-0x1b5,-0x14c)](){this[_0x4f802a(0x10e,0xdf)]=new Worker(this['options'][_0x36b554(-0x13e,-0x13c)]),this['worker']['onmessage']=_0x565905=>{function _0x50e24a(_0x35a5e8,_0x2fc959){return _0x36b554(_0x35a5e8,_0x2fc959-0x57a);}this['_drawLines'](_0x565905[_0x2128c0(0x1e8,0x241)]['particles']);function _0x2128c0(_0x841002,_0x47e867){return _0x36b554(_0x841002,_0x47e867-0x303);}this[_0x50e24a(0x3a5,0x413)]=![];};function _0x4f802a(_0x2995e9,_0x4e291d){return _0x2ac53d(_0x2995e9-0x8c,_0x4e291d);}function _0x36b554(_0x17e24f,_0x5cbefc){return _0x4052a4(_0x17e24f,_0x5cbefc-0x76);}this['windField']={'init':_0x589070=>{const _0x2634b2={};_0x2634b2['type']=_0x564739(0x2b2,0x2e0),_0x2634b2[_0x33a9fa(0xa9,0x104)]=_0x589070;function _0x33a9fa(_0xc2c014,_0x2e6cc5){return _0x36b554(_0xc2c014,_0x2e6cc5-0x1e3);}function _0x564739(_0x49abb0,_0x1f10a7){return _0x4f802a(_0x49abb0-0x1f6,_0x1f10a7);}this[_0x33a9fa(0x12a,0xa7)]['postMessage'](_0x2634b2);},'setOptions':_0x277f68=>{const _0x2f88a3={};function _0x3f7ca0(_0x4939bf,_0x14a939){return _0x4f802a(_0x14a939-0x2ff,_0x4939bf);}_0x2f88a3['type']=_0x3f7ca0(0x48a,0x452),_0x2f88a3['options']=_0x277f68;function _0x28f0fa(_0x1cd635,_0x2fb38f){return _0x36b554(_0x1cd635,_0x2fb38f-0x521);}this[_0x28f0fa(0x3ac,0x3e5)]['postMessage'](_0x2f88a3);},'setDate':_0x140b02=>{function _0x504cf9(_0x2754c3,_0x374cee){return _0x4f802a(_0x374cee- -0x2f2,_0x2754c3);}const _0x187679={};function _0x11da64(_0xbde5f2,_0xe96d9b){return _0x4f802a(_0xe96d9b- -0x428,_0xbde5f2);}_0x187679[_0x11da64(-0x2c1,-0x26e)]=_0x504cf9(-0x19a,-0x155),_0x187679[_0x504cf9(-0x103,-0x16a)]=_0x140b02,this[_0x11da64(-0x316,-0x31a)][_0x504cf9(-0x1f4,-0x1c7)](_0x187679);},'update':()=>{function _0x1b3c8a(_0x340b43,_0x9581e){return _0x4f802a(_0x9581e- -0x294,_0x340b43);}if(this[_0x3adfc8(-0x258,-0x285)])return;function _0x3adfc8(_0x316ff2,_0x449e0f){return _0x4f802a(_0x316ff2- -0x33b,_0x449e0f);}this['_updateIng2']=!![];const _0x19f4e8={};_0x19f4e8[_0x3adfc8(-0x181,-0x1dd)]='update',this[_0x3adfc8(-0x22d,-0x1f9)][_0x1b3c8a(-0x151,-0x169)](_0x19f4e8);},'clear':()=>{const _0x24cfab={};function _0x42b723(_0x16f3f8,_0x5cfe48){return _0x36b554(_0x5cfe48,_0x16f3f8-0x4bc);}function _0x3a21e2(_0x1e8b61,_0x28ca47){return _0x36b554(_0x28ca47,_0x1e8b61-0x3b2);}_0x24cfab[_0x3a21e2(0x322,0x361)]=_0x3a21e2(0x22a,0x289),this['worker'][_0x42b723(0x39d,0x337)](_0x24cfab);}},this['windField']['init'](this['options']);}}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace[_0x2ac53d(0x59,0x58)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log'][_0x4052a4(-0x121,-0x11d)]('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x2ac53d(0x13a,0xcd)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x337be5={};_0x337be5['value']=!![],Object['defineProperty'](exports,'__esModule',_0x337be5);
14
+ 'use strict';(function(_0x60abda,_0x3df5e6){function _0x9014e4(_0x4197db,_0x204367){return _0x540e(_0x4197db- -0x38b,_0x204367);}const _0x5821d9=_0x60abda();function _0x4dc492(_0x7536e0,_0x468679){return _0x540e(_0x468679- -0x265,_0x7536e0);}while(!![]){try{const _0x460d91=-parseInt(_0x9014e4(-0x29c,-0x2bf))/0x1*(parseInt(_0x9014e4(-0x2be,-0x30f))/0x2)+-parseInt(_0x4dc492(-0x146,-0x197))/0x3+parseInt(_0x9014e4(-0x27e,-0x206))/0x4+-parseInt(_0x4dc492(-0x179,-0x13d))/0x5*(-parseInt(_0x4dc492(-0x16c,-0xe5))/0x6)+parseInt(_0x4dc492(-0xc3,-0xf3))/0x7+-parseInt(_0x9014e4(-0x27f,-0x217))/0x8*(-parseInt(_0x9014e4(-0x23d,-0x1dd))/0x9)+-parseInt(_0x4dc492(-0x176,-0x119))/0xa*(parseInt(_0x9014e4(-0x275,-0x2bd))/0xb);if(_0x460d91===_0x3df5e6)break;else _0x5821d9['push'](_0x5821d9['shift']());}catch(_0x503e86){_0x5821d9['push'](_0x5821d9['shift']());}}}(_0x144d,0x573c4));function _interopNamespace(_0x6b85b9){if(_0x6b85b9&&_0x6b85b9['__esModule'])return _0x6b85b9;var _0x5534f5=Object[_0x4f92ab(0x508,0x4b8)](null);_0x6b85b9&&Object['keys'](_0x6b85b9)[_0x3715a3(0x187,0x1a1)](function(_0x45f8b5){function _0x231c2d(_0x93d109,_0x562d85){return _0x3715a3(_0x562d85,_0x93d109-0x4f);}function _0x41768b(_0x49dd71,_0x3b5dbe){return _0x3715a3(_0x3b5dbe,_0x49dd71- -0xf3);}if(_0x45f8b5!==_0x231c2d(0x2c2,0x303)){var _0x1aef7a=Object['getOwnPropertyDescriptor'](_0x6b85b9,_0x45f8b5);Object[_0x231c2d(0x204,0x190)](_0x5534f5,_0x45f8b5,_0x1aef7a[_0x231c2d(0x27d,0x2dd)]?_0x1aef7a:{'enumerable':!![],'get':function(){return _0x6b85b9[_0x45f8b5];}});}});_0x5534f5[_0x3715a3(0x293,0x273)]=_0x6b85b9;function _0x3715a3(_0x11a620,_0x918464){return _0x540e(_0x918464-0xdc,_0x11a620);}function _0x4f92ab(_0x57c2e5,_0x1b76fa){return _0x540e(_0x1b76fa-0x39d,_0x57c2e5);}return _0x5534f5;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function _0x540e(_0x144408,_0x1dad1d){const _0x144df2=_0x144d();return _0x540e=function(_0x540e94,_0x4fa9ca){_0x540e94=_0x540e94-0xc3;let _0x1596b6=_0x144df2[_0x540e94];return _0x1596b6;},_0x540e(_0x144408,_0x1dad1d);}function _0x164541(_0x593768,_0x5594ed){return _0x540e(_0x5594ed- -0x2b6,_0x593768);}function getU(_0x198d6f,_0x4ae743){const _0x4fe1ab=_0x198d6f*Math['cos'](Cesium$2['Math']['toRadians'](_0x4ae743));return _0x4fe1ab;}function getV(_0xc77029,_0x20644c){const _0x69192a=_0xc77029*Math['sin'](Cesium$2['Math'][_0x1eaf85(-0xf0,-0xcd)](_0x20644c));function _0x1eaf85(_0x5b92c5,_0x23a1ac){return _0x540e(_0x23a1ac- -0x226,_0x5b92c5);}return _0x69192a;}function getSpeed(_0x5e12e8,_0x56bef6){function _0x30c3f0(_0x27d13f,_0x19882b){return _0x540e(_0x19882b- -0x3cc,_0x27d13f);}const _0x2459ae=Math[_0x30c3f0(-0x2a9,-0x28e)](Math[_0x30c3f0(-0x1da,-0x1fb)](_0x5e12e8,0x2)+Math['pow'](_0x56bef6,0x2));function _0x12c6b1(_0x33eada,_0x10cc5d){return _0x540e(_0x33eada- -0x30a,_0x10cc5d);}return _0x2459ae;}function getDirection(_0x5a9521,_0x571384){let _0x5f304a=Cesium$2['Math']['toDegrees'](Math[_0x20bdb8(-0x1f7,-0x234)](_0x571384,_0x5a9521));function _0x20bdb8(_0x1523a5,_0x4a3d96){return _0x540e(_0x1523a5- -0x3ab,_0x4a3d96);}return _0x5f304a+=_0x5f304a<0x0?0x168:0x0,_0x5f304a;}const _0x18ade2={};_0x18ade2[_0x164541(-0x7d,-0x103)]=null,_0x18ade2['getU']=getU,_0x18ade2[_0x164541(-0x8e,-0xe0)]=getV,_0x18ade2['getSpeed']=getSpeed,_0x18ade2['getDirection']=getDirection;var WindUtil=_0x18ade2,updatePositionShader=_0x164541(-0x13d,-0x141),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=_0x9b7c55(0x2de,0x348),renderParticlesVertexShader=_0x9b7c55(0x31b,0x328);const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static[_0x164541(-0xfc,-0x16e)](){const _0x3eddd5={};_0x3eddd5[_0x2f9490(-0x171,-0x19a)]=[calculateSpeedShader];function _0x2f9490(_0x9b3de3,_0x2caefc){return _0x9b7c55(_0x2caefc,_0x9b3de3- -0x48e);}return new ShaderSource$1(_0x3eddd5);}static[_0x164541(-0x20f,-0x194)](){const _0x2cfb91={};_0x2cfb91[_0x58c9f4(0xcc,0x91)]=[updatePositionShader];function _0x58c9f4(_0x546a0a,_0xd53814){return _0x164541(_0x546a0a,_0xd53814-0x1e3);}return new ShaderSource$1(_0x2cfb91);}static[_0x164541(-0x11d,-0x183)](){const _0x10e036={};_0x10e036[_0x506823(0x117,0xc5)]=[renderParticlesVertexShader];function _0x506823(_0x57c953,_0x5be7f2){return _0x164541(_0x5be7f2,_0x57c953-0x269);}return new ShaderSource$1(_0x10e036);}static['getSegmentDrawFragmentShader'](){const _0x3449f8={};function _0x3d7a1e(_0x421733,_0x4082ec){return _0x164541(_0x421733,_0x4082ec- -0xe);}return _0x3449f8[_0x3d7a1e(-0x141,-0x160)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x3449f8);}static['getPostProcessingPositionShader'](){const _0x4da2e9={};return _0x4da2e9['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x4da2e9);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x57adcd){this[_0xc3156b(0x2ba,0x240)]=_0x57adcd[_0xa99879(0x85,0x15)],this['geometry']=_0x57adcd['geometry'],this[_0xa99879(0x9,-0x5f)]=_0x57adcd[_0xc3156b(0x1ee,0x1cc)],this[_0xc3156b(0x27b,0x219)]=_0x57adcd['primitiveType'];function _0xc3156b(_0x145538,_0x3090cd){return _0x164541(_0x145538,_0x3090cd-0x374);}this['uniformMap']=_0x57adcd[_0xc3156b(0x26f,0x266)]||{},this['vertexShaderSource']=_0x57adcd['vertexShaderSource'],this['fragmentShaderSource']=_0x57adcd['fragmentShaderSource'],this[_0xa99879(0xb5,0x3a)]=_0x57adcd['rawRenderState'],this[_0xc3156b(0x1f9,0x194)]=_0x57adcd['framebuffer'],this['outputTexture']=_0x57adcd['outputTexture'],this['autoClear']=_0x57adcd['autoClear']??![],this['preExecute']=_0x57adcd[_0xa99879(-0x72,-0x16)];function _0xa99879(_0x2e0a89,_0x2e7a72){return _0x9b7c55(_0x2e0a89,_0x2e7a72- -0x326);}this['show']=!![],this[_0xa99879(-0x7f,0xb)]=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x57adcd[_0xc3156b(0x2d6,0x27c)]??(()=>!![]),this['autoClear']&&(this[_0xc3156b(0x214,0x19a)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0xa99879(-0x101,-0x9c)]}));}['createCommand'](_0x36e459){function _0x31321c(_0x527726,_0x2fbc96){return _0x9b7c55(_0x2fbc96,_0x527726-0x2e);}function _0x3327cb(_0x32cecb,_0x28ebef){return _0x9b7c55(_0x28ebef,_0x32cecb- -0x4f);}if(this['commandType']==='Draw'){const _0x86b45b={};_0x86b45b['context']=_0x36e459,_0x86b45b['geometry']=this[_0x3327cb(0x248,0x2cb)],_0x86b45b[_0x3327cb(0x278,0x20c)]=this[_0x31321c(0x2f5,0x29f)],_0x86b45b['bufferUsage']=BufferUsage$1[_0x3327cb(0x314,0x293)];const _0x52f340=VertexArray$1['fromGeometry'](_0x86b45b),_0x4b33d9={};_0x4b33d9[_0x31321c(0x39f,0x3ed)]=_0x36e459,_0x4b33d9[_0x31321c(0x2bc,0x245)]=this['vertexShaderSource'],_0x4b33d9['fragmentShaderSource']=this['fragmentShaderSource'],_0x4b33d9[_0x31321c(0x2f5,0x313)]=this[_0x3327cb(0x278,0x2cd)];const _0x31d1f0=ShaderProgram[_0x3327cb(0x29b,0x2f1)](_0x4b33d9),_0x536d10=RenderState['fromCache'](this['rawRenderState']),_0x1fadd9={};return _0x1fadd9['owner']=this,_0x1fadd9[_0x3327cb(0x260,0x2a1)]=_0x52f340,_0x1fadd9[_0x31321c(0x342,0x2bf)]=this['primitiveType'],_0x1fadd9['modelMatrix']=Matrix4['IDENTITY'],_0x1fadd9['renderState']=_0x536d10,_0x1fadd9['shaderProgram']=_0x31d1f0,_0x1fadd9['framebuffer']=this[_0x3327cb(0x240,0x27d)],_0x1fadd9['uniformMap']=this[_0x31321c(0x38f,0x30f)],_0x1fadd9[_0x3327cb(0x25f,0x1d8)]=Pass$1['OPAQUE'],new DrawCommand(_0x1fadd9);}else{if(this['commandType']===_0x3327cb(0x2c4,0x273)){const _0x544c66={};return _0x544c66[_0x31321c(0x2df,0x2ae)]=this,_0x544c66[_0x31321c(0x35b,0x396)]=this['fragmentShaderSource'],_0x544c66['uniformMap']=this[_0x3327cb(0x312,0x2f4)],_0x544c66[_0x3327cb(0x26a,0x2ea)]=this['outputTexture'],_0x544c66['persists']=!![],new ComputeCommand(_0x544c66);}else throw new Error(_0x31321c(0x36a,0x3b2));}}['setGeometry'](_0x2c354f,_0x21407b){function _0x128253(_0x36bd61,_0x1e2001){return _0x9b7c55(_0x36bd61,_0x1e2001- -0x222);}function _0x213866(_0x2a934c,_0x595ca1){return _0x164541(_0x2a934c,_0x595ca1-0x2a0);}this['geometry']=_0x21407b,defined(this['commandToExecute'])&&(this[_0x213866(0x144,0x162)][_0x213866(0xa7,0xe0)]=VertexArray$1['fromGeometry']({'context':_0x2c354f,'geometry':this['geometry'],'attributeLocations':this[_0x213866(0x6e,0xf8)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x5e8013){if(!this[_0x51ac4d(-0x10,-0x58)]())return;if(!this[_0x17ded1(0x3a2,0x411)]||!defined(_0x5e8013))return;function _0x51ac4d(_0x21d5c6,_0x2312db){return _0x164541(_0x2312db,_0x21d5c6-0xe8);}!defined(this['commandToExecute'])&&(this['commandToExecute']=this[_0x51ac4d(-0xe,-0x6a)](_0x5e8013[_0x51ac4d(-0x16,-0x70)]));defined(this[_0x51ac4d(-0x77,-0x8d)])&&this['preExecute']();if(!_0x5e8013[_0x17ded1(0x34a,0x347)]){console['warn']('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x5e8013['commandList']['push'](this[_0x17ded1(0x3ac,0x342)]);function _0x17ded1(_0x4d0238,_0x489b41){return _0x9b7c55(_0x4d0238,_0x489b41-0xad);}defined(this['commandToExecute'])&&_0x5e8013['commandList']['push'](this['commandToExecute']);}[_0x164541(-0x223,-0x1ae)](){return![];}['destroy'](){function _0xa8613c(_0x18ff67,_0x51d17f){return _0x9b7c55(_0x51d17f,_0x18ff67- -0x530);}if(defined(this[_0x29ae2f(0x2cb,0x32c)])){var _0x3df227;(_0x3df227=this['commandToExecute'][_0x29ae2f(0x2a6,0x296)])===null||_0x3df227===void 0x0||_0x3df227[_0x29ae2f(0x3aa,0x36a)](),this[_0xa8613c(-0x1ff,-0x189)][_0xa8613c(-0x295,-0x256)]=undefined;}function _0x29ae2f(_0xcdb6b1,_0x401f64){return _0x164541(_0xcdb6b1,_0x401f64-0x46a);}return destroyObject(this);}}function deepMerge(_0x1f6fea,_0x3fdea7){if(!_0x1f6fea)return _0x3fdea7;if(!_0x3fdea7)return _0x1f6fea;const _0x18e64a={..._0x3fdea7},_0x1bbb35=_0x18e64a;for(const _0x3c19f8 in _0x1f6fea){if(Object['prototype']['hasOwnProperty'][_0x503562(0x3b0,0x3b5)](_0x1f6fea,_0x3c19f8)){const _0x4e4d67=_0x1f6fea[_0x3c19f8],_0x26b3f7=_0x3fdea7[_0x3c19f8];if(Array['isArray'](_0x4e4d67)){_0x1bbb35[_0x3c19f8]=_0x4e4d67['slice']();continue;}if(_0x4e4d67&&typeof _0x4e4d67==='object'){_0x1bbb35[_0x3c19f8]=deepMerge(_0x4e4d67,_0x26b3f7||{});continue;}_0x4e4d67!==undefined&&(_0x1bbb35[_0x3c19f8]=_0x4e4d67);}}function _0x503562(_0x2480a7,_0x207b29){return _0x164541(_0x207b29,_0x2480a7-0x53b);}return _0x1bbb35;}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[_0x164541(-0x18d,-0x109)];class WindParticlesComputing{constructor(_0x51d229,_0x144c38,_0x53727b,_0x2be5e8,_0x4807cc){this[_0x5c91a8(-0x195,-0x211)]=_0x51d229,this[_0x27bf6f(-0x1d3,-0x241)]=_0x53727b,this[_0x5c91a8(-0x2e0,-0x263)]=_0x2be5e8,this[_0x27bf6f(-0x11d,-0x120)]=_0x144c38,this[_0x5c91a8(-0x256,-0x2cd)]=0x3c,this['frameRateAdjustment']=0x1;const _0x3a12c6={};_0x3a12c6['scene']=_0x4807cc,_0x3a12c6['samplingWindow']=0x1,_0x3a12c6[_0x5c91a8(-0x299,-0x212)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x3a12c6),this['initFrameRate']();function _0x5c91a8(_0x5d8b57,_0x4a5679){return _0x164541(_0x5d8b57,_0x4a5679- -0x113);}this[_0x5c91a8(-0x279,-0x23e)](),this[_0x27bf6f(-0x1b5,-0x1d0)]();function _0x27bf6f(_0x18870c,_0x693b30){return _0x164541(_0x693b30,_0x18870c- -0x17);}this[_0x5c91a8(-0x24c,-0x228)]();}[_0x164541(-0x157,-0x1de)](){function _0x23cd09(_0x318791,_0x5dcc46){return _0x164541(_0x5dcc46,_0x318791-0x278);}const _0x340864=()=>{function _0xdc92e8(_0x37abb5,_0x54c40d){return _0x540e(_0x54c40d-0xed,_0x37abb5);}function _0x14d402(_0x1c6f02,_0x5adcec){return _0x540e(_0x1c6f02-0xa5,_0x5adcec);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this[_0xdc92e8(0x248,0x1e9)]=this[_0x14d402(0x208,0x270)]['lastFramesPerSecond'],this[_0xdc92e8(0x264,0x2c2)]=0x3c/Math['max'](this[_0xdc92e8(0x1f8,0x1e9)],0x1));};_0x340864();const _0x5acd8a=setInterval(_0x340864,0x3e8),_0x49e10a=this[_0x23cd09(0x178,0xf7)]['bind'](this);this['destroy']=()=>{clearInterval(_0x5acd8a),_0x49e10a();};}['createWindTextures'](){const _0x24ebd8={};_0x24ebd8['minificationFilter']=TextureMinificationFilter$1['LINEAR'];function _0x4e8c90(_0x1a261b,_0x1cfd37){return _0x9b7c55(_0x1cfd37,_0x1a261b-0x104);}_0x24ebd8[_0x50837a(0x2a7,0x2f7)]=TextureMagnificationFilter$1[_0x4e8c90(0x453,0x477)];function _0x50837a(_0x6d5c68,_0x4141a4){return _0x164541(_0x6d5c68,_0x4141a4-0x471);}const _0x4ddac0={'context':this['context'],'width':this['windData'][_0x4e8c90(0x390,0x31a)],'height':this[_0x4e8c90(0x46d,0x4f4)][_0x4e8c90(0x433,0x43f)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x24ebd8)};this[_0x4e8c90(0x3a9,0x36e)]={'U':new Texture$1({..._0x4ddac0,'source':{'arrayBufferView':new Float32Array(this[_0x50837a(0x36a,0x36b)]['u']['array'])}}),'V':new Texture$1({..._0x4ddac0,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x1f95aa={};_0x1f95aa[_0x348f0e(0x3c0,0x43e)]=TextureMinificationFilter$1[_0x348f0e(0x3fd,0x3a2)],_0x1f95aa[_0x52ade2(0x191,0x1bb)]=TextureMagnificationFilter$1[_0x348f0e(0x3fd,0x3ab)];function _0x52ade2(_0x50f0b4,_0x3bc1be){return _0x9b7c55(_0x3bc1be,_0x50f0b4- -0x164);}function _0x348f0e(_0x3fe289,_0x311c26){return _0x164541(_0x311c26,_0x3fe289-0x521);}const _0x48c9ef={'context':this[_0x348f0e(0x423,0x3a2)],'width':this['options'][_0x52ade2(0x145,0x140)],'height':this[_0x348f0e(0x365,0x32f)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x52ade2(0x227,0x1aa)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options'][_0x348f0e(0x35b,0x2eb)]*this['options'][_0x348f0e(0x35b,0x3ab)]*0x4)[_0x52ade2(0x130,0x13b)](0x0)},'sampler':new Sampler$1(_0x1f95aa)};this[_0x348f0e(0x397,0x39e)]={'previousParticlesPosition':new Texture$1(_0x48c9ef),'currentParticlesPosition':new Texture$1(_0x48c9ef),'nextParticlesPosition':new Texture$1(_0x48c9ef),'postProcessingPosition':new Texture$1(_0x48c9ef),'particlesSpeed':new Texture$1(_0x48c9ef)};}['destroyParticlesTextures'](){function _0x4ed755(_0x4780ac,_0x136b5e){return _0x9b7c55(_0x136b5e,_0x4780ac-0xe9);}function _0x332da1(_0x400444,_0x1e54d9){return _0x9b7c55(_0x1e54d9,_0x400444- -0x579);}Object[_0x332da1(-0x2b6,-0x2f3)](this['particlesTextures'])['forEach'](_0x130790=>_0x130790[_0x4ed755(0x458,0x3d4)]());}['createComputingPrimitives'](){function _0x486687(_0x2ccb66,_0x545cc9){return _0x9b7c55(_0x545cc9,_0x2ccb66- -0x1b5);}function _0xddc2da(_0x58cc5b,_0x32dbd7){return _0x9b7c55(_0x32dbd7,_0x58cc5b- -0x67);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this[_0x486687(0xf0,0x92)]['V'],'uRange':()=>new Cartesian2$1(this[_0xddc2da(0x302,0x294)]['u']['min'],this[_0x486687(0x1b4,0x1f6)]['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x486687(0x1b4,0x1e5)]['v']['min'],this['windData']['v'][_0xddc2da(0x311,0x2b2)]),'speedRange':()=>new Cartesian2$1(this[_0x486687(0x1b4,0x20c)][_0xddc2da(0x222,0x21c)]['min'],this[_0xddc2da(0x302,0x330)]['speed'][_0xddc2da(0x311,0x28a)]),'currentParticlesPosition':()=>this[_0x486687(0x130,0xd1)]['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x20fbc2(_0xaef98f,_0x57beea){return _0x486687(_0x57beea-0xbd,_0xaef98f);}function _0x42d741(_0x42e872,_0x28bb9c){return _0x486687(_0x42e872-0x138,_0x28bb9c);}return(this['viewerParameters'][_0x20fbc2(0x16c,0x18d)]+0x32)*this[_0x20fbc2(0x22c,0x1bb)][_0x42d741(0x2c8,0x2b2)];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this[_0x486687(0x1b4,0x1bb)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this[_0x486687(0x1b4,0x18b)][_0x486687(0x138,0xc9)]['west'],this['windData']['bounds'][_0xddc2da(0x246,0x1f8)]),'maximum':()=>new Cartesian2$1(this['windData'][_0xddc2da(0x286,0x2b8)]['east'],this['windData'][_0x486687(0x138,0x18e)][_0x486687(0x158,0xd6)])},'fragmentShaderSource':ShaderManager[_0xddc2da(0x29a,0x275)](),'outputTexture':this[_0x486687(0x130,0x153)][_0x486687(0x128,0x15b)],'preExecute':()=>{function _0x334de0(_0x2bf809,_0x545962){return _0x486687(_0x545962-0x282,_0x2bf809);}function _0x1999eb(_0x5d56c0,_0x5e8f2c){return _0xddc2da(_0x5e8f2c- -0x41c,_0x5d56c0);}const _0x30d5ea=this['particlesTextures']['previousParticlesPosition'];this[_0x334de0(0x337,0x3b2)][_0x334de0(0x414,0x395)]=this['particlesTextures'][_0x334de0(0x4ae,0x45a)],this['particlesTextures']['currentParticlesPosition']=this['particlesTextures']['postProcessingPosition'],this[_0x334de0(0x3b3,0x3b2)]['postProcessingPosition']=_0x30d5ea,this[_0x1999eb(-0x235,-0x1d7)]['calculateSpeed']['commandToExecute']&&(this[_0x1999eb(-0x17d,-0x1d7)]['calculateSpeed'][_0x334de0(0x3a4,0x3fe)]['outputTexture']=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this[_0xddc2da(0x24c,0x1cc)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x486687(0x130,0x171)][_0xddc2da(0x326,0x2d1)],'particlesSpeed':()=>this['particlesTextures'][_0x486687(0x128,0x19b)]},'fragmentShaderSource':ShaderManager[_0x486687(0x126,0xcb)](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x57442b(_0x41aa96,_0x369f11){return _0xddc2da(_0x369f11- -0x45b,_0x41aa96);}function _0x4859ea(_0x1e18ff,_0x5514dd){return _0x486687(_0x1e18ff-0x389,_0x5514dd);}this['primitives']['updatePosition']['commandToExecute']&&(this[_0x4859ea(0x480,0x438)]['updatePosition']['commandToExecute'][_0x4859ea(0x48d,0x486)]=this['particlesTextures'][_0x57442b(-0x1c1,-0x16d)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0xddc2da(0x2ee,0x266)],'particlesSpeed':()=>this[_0xddc2da(0x27e,0x21c)][_0x486687(0x128,0x178)],'lonRange':()=>this['viewerParameters'][_0xddc2da(0x232,0x1c6)],'latRange':()=>this[_0x486687(0x16a,0x198)][_0x486687(0x109,0x18e)],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0xddc2da(0x286,0x2ad)]['west'],this['windData'][_0x486687(0x138,0x145)]['east']),'dataLatRange':()=>new Cartesian2$1(this[_0xddc2da(0x302,0x2ed)][_0x486687(0x138,0xbc)][_0x486687(0xf8,0x158)],this['windData']['bounds'][_0x486687(0x158,0xfe)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this[_0x486687(0xfe,0xbb)][_0xddc2da(0x2e3,0x2a9)],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this[_0x486687(0xfe,0xe0)]['useViewerBounds']},'fragmentShaderSource':ShaderManager[_0xddc2da(0x322,0x2ae)](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x2548a9(_0x3785ba,_0xff1d17){return _0x486687(_0xff1d17-0x2e3,_0x3785ba);}this['primitives']['postProcessingPosition'][_0x2548a9(0x406,0x45f)]&&(this['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0xddc2da(0x24c,0x2ae)]['dynamic']})};}[_0x9b7c55(0x35b,0x362)](){this[_0x5dca7a(-0x5a,-0x41)]['U'][_0x1585d3(0x27c,0x208)](),this['windTextures']['V']['destroy']();function _0x5dca7a(_0x1a1cd7,_0x4e8885){return _0x9b7c55(_0x4e8885,_0x1a1cd7- -0x2ff);}function _0x1585d3(_0xfe69a,_0x3824c5){return _0x164541(_0xfe69a,_0x3824c5-0x308);}this[_0x1585d3(0x1cf,0x1dd)]();}['updateWindData'](_0x3dc3bd){this['windData']=_0x3dc3bd;function _0x37f263(_0x352431,_0x3fe2da){return _0x164541(_0x352431,_0x3fe2da-0x3ed);}this[_0x37f263(0x2c9,0x2e0)]();}[_0x164541(-0x118,-0x11b)](_0x504180){function _0x4bf39a(_0x11b910,_0x567221){return _0x164541(_0x11b910,_0x567221-0x677);}const _0x13f88d=_0x504180['flipY']!==undefined&&_0x504180['flipY']!==this[_0x1b7a30(0x50d,0x499)]['flipY'];function _0x1b7a30(_0x277375,_0x584aed){return _0x164541(_0x277375,_0x584aed-0x655);}this['options']=deepMerge(_0x504180,this['options']),_0x13f88d&&this[_0x1b7a30(0x53a,0x548)]();}[_0x164541(-0x1ed,-0x188)](_0x23bc26){const {array:_0x4a4b5d}=_0x23bc26;let {min:_0x5408b0,max:_0x5a2585}=_0x23bc26;const _0x4f847b=new Float32Array(_0x4a4b5d['length']);_0x5408b0===undefined&&(console[_0xad33f2(0x1f1,0x1f4)]('min\x20is\x20undefined,\x20calculate\x20min'),_0x5408b0=Math[_0x1bf83b(-0x85,-0x60)](..._0x4a4b5d));_0x5a2585===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x5a2585=Math[_0x1bf83b(-0x63,-0xa4)](..._0x4a4b5d));function _0xad33f2(_0xaf8aae,_0x1f2bad){return _0x164541(_0xaf8aae,_0x1f2bad-0x359);}function _0x1bf83b(_0xe10e16,_0x413ea1){return _0x9b7c55(_0x413ea1,_0xe10e16- -0x3db);}const _0x14a103=Math['max'](Math[_0x1bf83b(-0x159,-0x1a0)](_0x5408b0),Math['abs'](_0x5a2585));for(let _0x4248e4=0x0;_0x4248e4<_0x4a4b5d['length'];_0x4248e4++){const _0x3265dd=_0x4a4b5d[_0x4248e4]/_0x14a103;_0x4f847b[_0x4248e4]=_0x3265dd;}return _0x4f847b;}[_0x164541(-0x7c,-0x100)](){Object[_0x57a1c4(0x45a,0x4c1)](this[_0x57a1c4(0x4c6,0x4a3)])[_0x5c0aa9(0x8f,0x42)](_0x4ec62e=>_0x4ec62e[_0x57a1c4(0x510,0x56d)]());function _0x57a1c4(_0xf0bf73,_0x1dccc4){return _0x164541(_0xf0bf73,_0x1dccc4-0x66d);}function _0x5c0aa9(_0x3af312,_0x461c5f){return _0x164541(_0x3af312,_0x461c5f-0x233);}Object['values'](this[_0x57a1c4(0x459,0x4e3)])['forEach'](_0x2caaa0=>_0x2caaa0['destroy']()),Object['values'](this[_0x5c0aa9(0x13,0x70)])[_0x5c0aa9(-0x32,0x42)](_0x519169=>_0x519169['destroy']()),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[_0x164541(-0xa1,-0x109)];class WindParticlesRendering{constructor(_0x53e87c,_0x553b0c,_0x58a45d,_0x4cfc2f){this['context']=_0x53e87c,this['options']=_0x553b0c;function _0x2d9c3d(_0x43fbd2,_0x1b212a){return _0x164541(_0x1b212a,_0x43fbd2-0x41);}this[_0x1c5690(-0xe8,-0x116)]=_0x58a45d,this[_0x1c5690(-0x86,-0x10b)]=_0x4cfc2f;(typeof this[_0x2d9c3d(-0x17b,-0x1ed)][_0x1c5690(-0x125,-0x18c)]!=='number'||this['options'][_0x1c5690(-0x1b5,-0x18c)]<=0x0)&&(console[_0x2d9c3d(-0x18b,-0x134)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options'][_0x1c5690(-0x1c4,-0x18c)]=0x100);this['colorTable']=this['createColorTableTexture']();function _0x1c5690(_0x17b1c2,_0x4a67a5){return _0x164541(_0x17b1c2,_0x4a67a5-0x3a);}this['textures']=this[_0x1c5690(-0x1ba,-0x1b8)](),this['framebuffers']=this['createRenderingFramebuffers'](),this[_0x1c5690(-0x122,-0x189)]=this['createPrimitives']();}[_0x164541(-0x179,-0x1f2)](){const _0x2a49dc={};function _0x32fc9d(_0x593d30,_0x511296){return _0x164541(_0x511296,_0x593d30-0x198);}_0x2a49dc['context']=this['context'],_0x2a49dc['width']=this['context'][_0x32fc9d(0x63,0x78)],_0x2a49dc['height']=this['context'][_0x56ddee(0x53,0x16)];function _0x56ddee(_0xe4b9ba,_0x11b254){return _0x164541(_0x11b254,_0xe4b9ba-0x242);}_0x2a49dc['pixelFormat']=PixelFormat[_0x56ddee(0x15f,0x181)],_0x2a49dc[_0x32fc9d(-0x31,-0xb3)]=PixelDatatype['UNSIGNED_BYTE'];const _0x21f3d9=_0x2a49dc,_0x59be8d={};_0x59be8d['context']=this['context'],_0x59be8d['width']=this['context']['drawingBufferWidth'],_0x59be8d['height']=this['context']['drawingBufferHeight'],_0x59be8d['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x59be8d['pixelDatatype']=PixelDatatype['UNSIGNED_INT'];const _0x2dd85f=_0x59be8d;return{'segmentsColor':new Texture(_0x21f3d9),'segmentsDepth':new Texture(_0x2dd85f)};}['createRenderingFramebuffers'](){function _0x236454(_0x5afae8,_0x130981){return _0x9b7c55(_0x5afae8,_0x130981-0x79);}const _0xc05541={};function _0x1efcf5(_0x529f9b,_0x537c62){return _0x9b7c55(_0x537c62,_0x529f9b-0x75);}return _0xc05541['context']=this[_0x236454(0x36e,0x3ea)],_0xc05541['colorTextures']=[this['textures'][_0x1efcf5(0x311,0x2a6)]],_0xc05541['depthTexture']=this[_0x1efcf5(0x3e0,0x389)][_0x1efcf5(0x2f8,0x33f)],{'segments':new Framebuffer(_0xc05541)};}[_0x164541(-0x1dc,-0x166)](){function _0x229c88(_0x178ca4,_0x35e6a5){return _0x164541(_0x178ca4,_0x35e6a5-0x198);}Object[_0x229c88(-0x5e,-0x14)](this['framebuffers'])['forEach'](_0x24a929=>{function _0x5ac90d(_0x108c06,_0x347c44){return _0x229c88(_0x347c44,_0x108c06-0x349);}_0x24a929[_0x5ac90d(0x3e1,0x3a1)]();});}['createColorTableTexture'](){const _0x48922b=new Float32Array(this['options']['colors']['flatMap'](_0x11153a=>{const _0x551f5f=Color$1['fromCssColorString'](_0x11153a);function _0x5fb13e(_0x120c17,_0x3c58a0){return _0x540e(_0x120c17-0x2e2,_0x3c58a0);}return[_0x551f5f['red'],_0x551f5f['green'],_0x551f5f['blue'],_0x551f5f[_0x5fb13e(0x438,0x458)]];})),_0x2013a2={};function _0x2fbeab(_0x50cc7b,_0x264da1){return _0x9b7c55(_0x50cc7b,_0x264da1-0x115);}function _0x5b7c72(_0x3c222f,_0x15272a){return _0x9b7c55(_0x3c222f,_0x15272a- -0x306);}return _0x2013a2['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x2013a2[_0x5b7c72(0x74,-0x11)]=TextureMagnificationFilter['LINEAR'],_0x2013a2['wrapS']=TextureWrap[_0x2fbeab(0x416,0x419)],_0x2013a2[_0x2fbeab(0x40f,0x454)]=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this[_0x2fbeab(0x487,0x486)],'width':this[_0x2fbeab(0x34b,0x3c8)][_0x5b7c72(-0x21,-0x46)][_0x2fbeab(0x47f,0x40d)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x2013a2),'source':{'width':this[_0x5b7c72(-0x50,-0x53)][_0x5b7c72(-0xc,-0x46)]['length'],'height':0x1,'arrayBufferView':_0x48922b}});}[_0x164541(-0x16c,-0x17d)](){const _0x431f50=0x4,_0x13b711=this['options']['particlesTextureSize'];let _0x39462e=[];for(let _0xf76ad7=0x0;_0xf76ad7<_0x13b711;_0xf76ad7++){for(let _0x41642c=0x0;_0x41642c<_0x13b711;_0x41642c++){for(let _0x27cd25=0x0;_0x27cd25<_0x431f50;_0x27cd25++){_0x39462e[_0x1e16f1(0x61,0x8d)](_0xf76ad7/_0x13b711),_0x39462e[_0x1ab59a(0x4a8,0x424)](_0x41642c/_0x13b711);}}}_0x39462e=new Float32Array(_0x39462e);function _0x1ab59a(_0x1179c1,_0x39ea04){return _0x9b7c55(_0x1179c1,_0x39ea04-0xb6);}const _0x3ca53b=this[_0x1ab59a(0x37f,0x369)][_0x1e16f1(-0x64,-0xad)]**0x2;let _0xb1f143=[];for(let _0x2b5655=0x0;_0x2b5655<_0x3ca53b;_0x2b5655++){_0xb1f143['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0xb1f143=new Float32Array(_0xb1f143);let _0x34813e=[];for(let _0x2790b2=0x0,_0x48b1b7=0x0;_0x2790b2<_0x3ca53b;_0x2790b2++){_0x34813e['push'](_0x48b1b7+0x0,_0x48b1b7+0x1,_0x48b1b7+0x2,_0x48b1b7+0x2,_0x48b1b7+0x1,_0x48b1b7+0x3),_0x48b1b7+=_0x431f50;}function _0x1e16f1(_0x374660,_0x36e377){return _0x164541(_0x36e377,_0x374660-0x162);}_0x34813e=new Uint32Array(_0x34813e);const _0x382dd7={};_0x382dd7[_0x1ab59a(0x3be,0x396)]=ComponentDatatype['FLOAT'],_0x382dd7['componentsPerAttribute']=0x2,_0x382dd7[_0x1ab59a(0x351,0x379)]=_0x39462e;const _0x304739={};_0x304739[_0x1ab59a(0x35a,0x396)]=ComponentDatatype['FLOAT'],_0x304739['componentsPerAttribute']=0x3,_0x304739['values']=_0xb1f143;const _0x13c475=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x382dd7),'normal':new GeometryAttribute(_0x304739)}),'indices':_0x34813e});return _0x13c475;}['createRawRenderState'](_0x51f134){const _0x2c3d23={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x51f134};function _0x1552ac(_0x292a15,_0x4abc05){return _0x9b7c55(_0x292a15,_0x4abc05- -0x30a);}return Appearance[_0x1552ac(-0xb7,-0x48)](!![],![],_0x2c3d23);}[_0x164541(-0x1c1,-0x170)](){const _0x1a875c={};function _0x8d6aa8(_0x30bdf5,_0x24268a){return _0x9b7c55(_0x24268a,_0x30bdf5-0x134);}_0x1a875c['st']=0x0;function _0x237adf(_0x1aa91a,_0x375c60){return _0x9b7c55(_0x1aa91a,_0x375c60- -0x1c8);}_0x1a875c['normal']=0x1;const _0xfd05db={};_0xfd05db['enabled']=!![];const _0x39adb5={};_0x39adb5['enabled']=!![],_0x39adb5['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x39adb5['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x39adb5['blendFuncDestination']=WebGLRenderingContext[_0x237adf(0x118,0x179)];const _0x232632={};_0x232632['viewport']=undefined,_0x232632['depthTest']=_0xfd05db,_0x232632[_0x8d6aa8(0x47d,0x4a3)]=!![],_0x232632['blending']=_0x39adb5;const _0x12c237=new CustomPrimitive({'commandType':_0x8d6aa8(0x4b2,0x442),'attributeLocations':_0x1a875c,'geometry':this[_0x8d6aa8(0x426,0x47a)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this[_0x237adf(0x190,0x162)][_0x237adf(0x12c,0x11d)]['previousParticlesPosition'],'currentParticlesPosition':()=>this[_0x8d6aa8(0x45e,0x40a)][_0x237adf(0xb6,0x11d)][_0x237adf(0x225,0x1c5)],'postProcessingPosition':()=>this[_0x8d6aa8(0x45e,0x4c1)]['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x8d6aa8(0x411,0x46f)],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x3fbc07(_0x1a406a,_0x2e2cc9){return _0x8d6aa8(_0x2e2cc9- -0x2c7,_0x1a406a);}function _0xed25ed(_0x55d04d,_0x1cdbcb){return _0x237adf(_0x55d04d,_0x1cdbcb-0x1b4);}var _0x54f2f5,_0x4f34ef;const _0x2a729b=new Cartesian2(((_0x54f2f5=this[_0xed25ed(0x2c0,0x29f)]['domain'])===null||_0x54f2f5===void 0x0?void 0x0:_0x54f2f5[_0x3fbc07(0x189,0x1c3)])??this['computing']['windData']['speed']['min'],((_0x4f34ef=this['options'][_0x3fbc07(0x189,0x1ec)])===null||_0x4f34ef===void 0x0?void 0x0:_0x4f34ef['max'])??this['computing'][_0x3fbc07(0x235,0x1d6)]['speed']['max']);return _0x2a729b;},'displayRange':()=>{var _0x14dcc1,_0x75e3a0;const _0x56df8c=new Cartesian2(((_0x14dcc1=this['options']['displayRange'])===null||_0x14dcc1===void 0x0?void 0x0:_0x14dcc1['min'])??this[_0x4452df(0x259,0x276)][_0x4452df(0x22c,0x2b5)]['speed'][_0x5adc28(0x3a5,0x34e)],((_0x75e3a0=this[_0x5adc28(0x302,0x2a9)]['displayRange'])===null||_0x75e3a0===void 0x0?void 0x0:_0x75e3a0['max'])??this['computing'][_0x5adc28(0x3b8,0x353)]['speed'][_0x5adc28(0x3c7,0x34d)]);function _0x4452df(_0x1ec84e,_0x1f5bc7){return _0x8d6aa8(_0x1f5bc7- -0x1e8,_0x1ec84e);}function _0x5adc28(_0xa29f2c,_0x4b30a6){return _0x237adf(_0x4b30a6,_0xa29f2c-0x217);}return _0x56df8c;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context'][_0x237adf(0x18f,0x172)]/this['context']['drawingBufferHeight'],'pixelSize':()=>this[_0x237adf(0x119,0x157)][_0x8d6aa8(0x3b9,0x3ea)],'lineWidth':()=>{const _0x5f50d9={};function _0x268d72(_0x1c19a2,_0xc98866){return _0x8d6aa8(_0xc98866- -0x481,_0x1c19a2);}_0x5f50d9[_0x268d72(-0x2c,0x9)]=0x1,_0x5f50d9['max']=0x2;const _0x127e5b=this[_0x554fe0(0x36a,0x3cb)]['lineWidth']||_0x5f50d9;function _0x554fe0(_0x550c58,_0x530559){return _0x8d6aa8(_0x550c58- -0x7d,_0x530559);}return new Cartesian2(_0x127e5b[_0x554fe0(0x40d,0x3b3)],_0x127e5b[_0x268d72(0x0,0x2b)]);},'lineLength':()=>{function _0x210fda(_0x41393d,_0x23a5dc){return _0x237adf(_0x41393d,_0x23a5dc- -0x19d);}const _0x1ed0df={};function _0x235815(_0x1d3e83,_0x3bb7e8){return _0x8d6aa8(_0x1d3e83- -0x52f,_0x3bb7e8);}_0x1ed0df[_0x235815(-0xa5,-0x109)]=0x14,_0x1ed0df[_0x235815(-0x83,-0x109)]=0x64;const _0x3cccb6=this[_0x235815(-0x148,-0xfc)][_0x235815(-0x100,-0x13c)]||_0x1ed0df;return new Cartesian2(_0x3cccb6['min'],_0x3cccb6['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0x8d6aa8(0x49f,0x441)]['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x8d6aa8(0x420,0x3d4)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x232632)}),_0x29edfd={};return _0x29edfd['segments']=_0x12c237,_0x29edfd;}[_0x9b7c55(0x28b,0x293)](){const _0xccfb8a=this['createSegmentsGeometry']();this[_0x2f8040(0x24e,0x250)]['segments'][_0x2f8040(0x293,0x23b)]=_0xccfb8a;const _0x5a4c56={};function _0x2f8040(_0x349e9b,_0x162f4c){return _0x164541(_0x349e9b,_0x162f4c-0x413);}_0x5a4c56[_0x2f8040(0x354,0x315)]=this['context'],_0x5a4c56['geometry']=_0xccfb8a,_0x5a4c56['attributeLocations']=this['primitives']['segments'][_0x5c71c3(-0x2f4,-0x285)],_0x5a4c56['bufferUsage']=BufferUsage[_0x5c71c3(-0x244,-0x1e9)];function _0x5c71c3(_0x2f690f,_0x48ae85){return _0x164541(_0x2f690f,_0x48ae85- -0xdd);}const _0x519983=VertexArray[_0x5c71c3(-0x225,-0x277)](_0x5a4c56);this['primitives'][_0x5c71c3(-0x27b,-0x24a)][_0x2f8040(0x2fe,0x2d5)]&&(this[_0x5c71c3(-0x2f0,-0x2a0)]['segments'][_0x2f8040(0x28b,0x2d5)]['vertexArray']=_0x519983);}['onColorTableChange'](){this[_0x1ba401(0x440,0x3c8)]['destroy']();function _0x1ba401(_0x2c9c1b,_0x3e754b){return _0x164541(_0x3e754b,_0x2c9c1b-0x596);}function _0x1ba8a9(_0x58da7a,_0xffb231){return _0x164541(_0x58da7a,_0xffb231-0x41a);}this[_0x1ba401(0x440,0x3fa)]=this['createColorTableTexture']();}[_0x9b7c55(0x3ae,0x354)](_0xcf971f){const _0x5c3e76=_0xcf971f['colors']&&JSON['stringify'](_0xcf971f['colors'])!==JSON[_0x4d72d3(-0xcd,-0x87)](this['options'][_0x301c05(0x9f,0xa5)]);function _0x301c05(_0x5b2d69,_0x1180f5){return _0x9b7c55(_0x5b2d69,_0x1180f5- -0x21b);}this['options']=deepMerge(_0xcf971f,this[_0x301c05(0x32,0x98)]);function _0x4d72d3(_0x2f12ef,_0x4e4254){return _0x164541(_0x2f12ef,_0x4e4254-0xdc);}_0x5c3e76&&this['onColorTableChange']();}['destroy'](){function _0x48e301(_0x1d9666,_0x3fb862){return _0x9b7c55(_0x3fb862,_0x1d9666-0x12a);}Object[_0x48e301(0x3ed,0x462)](this[_0x28d1b3(0x4ab,0x49e)])['forEach'](_0x6e9412=>{function _0x269df5(_0x3392bb,_0x4a6249){return _0x28d1b3(_0x3392bb- -0x269,_0x4a6249);}_0x6e9412[_0x269df5(0x2d2,0x2b5)]();});function _0x28d1b3(_0x4224da,_0x231bc4){return _0x164541(_0x231bc4,_0x4224da-0x63b);}Object['values'](this[_0x28d1b3(0x478,0x4fb)])['forEach'](_0x389849=>{_0x389849['destroy']();}),this['colorTable'][_0x28d1b3(0x53b,0x5be)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x9b7c55(0x3e2,0x366)];class WindParticleSystem{constructor(_0xfa7fa1,_0x443de3,_0x3c6942,_0x4f621a,_0x303147){this['context']=_0xfa7fa1,this['options']=_0x3c6942,this['viewerParameters']=_0x4f621a;function _0x29b553(_0x1ee5a8,_0x3a2198){return _0x164541(_0x1ee5a8,_0x3a2198-0x29);}function _0x23383e(_0x1d8ed0,_0x487e5b){return _0x9b7c55(_0x487e5b,_0x1d8ed0- -0x3ad);}this['computing']=new WindParticlesComputing(_0xfa7fa1,_0x443de3,_0x3c6942,_0x4f621a,_0x303147),this[_0x29b553(-0x133,-0x1a2)]=new WindParticlesRendering(_0xfa7fa1,_0x3c6942,_0x4f621a,this['computing']),this[_0x23383e(-0x39,-0x4b)]();}['getPrimitives'](){const _0x2e133f=[this[_0x181c73(0x33c,0x3ac)][_0x15d74b(0x2b,-0xd)][_0x15d74b(0x7c,0x84)],this['computing'][_0x15d74b(0x41,-0xd)]['updatePosition'],this['computing'][_0x181c73(0x2be,0x2cf)]['postProcessingPosition'],this['rendering']['primitives']['segments']];function _0x181c73(_0x3d4ee9,_0x1c89cf){return _0x164541(_0x1c89cf,_0x3d4ee9-0x481);}function _0x15d74b(_0x21fb9a,_0x4fb23f){return _0x164541(_0x21fb9a,_0x4fb23f-0x1b6);}return _0x2e133f;}['clearFramebuffers'](){function _0x495d4c(_0xa1a07c,_0x3f043b){return _0x9b7c55(_0xa1a07c,_0x3f043b-0x16e);}const _0xfe306c=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x495d4c(0x3ba,0x3f8)]});Object['keys'](this['rendering']['framebuffers'])['forEach'](_0x267f69=>{function _0x2d6c0d(_0x50063c,_0x23d760){return _0x495d4c(_0x23d760,_0x50063c- -0x43b);}_0xfe306c[_0x2d6c0d(-0x3e,-0xb2)]=this['rendering'][_0x5184d9(-0x5d,-0xbe)][_0x267f69];function _0x5184d9(_0x4cf55c,_0x438db1){return _0x495d4c(_0x4cf55c,_0x438db1- -0x50b);}_0xfe306c['execute'](this['context']);});}['changeOptions'](_0x4ff1c3){function _0x278bdd(_0x2f21d1,_0x4fa096){return _0x164541(_0x4fa096,_0x2f21d1-0x160);}let _0x2a862e=![];_0x4ff1c3[_0x4bac5d(0x122,0xf4)]&&this[_0x278bdd(-0x5c,0x3)]['particlesTextureSize']!==_0x4ff1c3[_0x278bdd(-0x66,-0x92)]&&(_0x2a862e=!![]);function _0x4bac5d(_0x13eb3b,_0x2d9f42){return _0x9b7c55(_0x13eb3b,_0x2d9f42- -0x1b5);}const _0x3cad81=deepMerge(_0x4ff1c3,this['options']);if(_0x3cad81[_0x278bdd(-0x66,-0x68)]<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this[_0x278bdd(-0x5c,-0x66)]=_0x3cad81,this[_0x278bdd(-0x6b,0x3)][_0x278bdd(0x45,-0x25)](_0x4ff1c3),this[_0x278bdd(0x1b,-0x2e)]['updateOptions'](_0x4ff1c3),_0x2a862e&&(this['computing']['destroyParticlesTextures'](),this[_0x278bdd(0x1b,0x49)]['createParticlesTextures'](),this['rendering']['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x58310e){function _0x4fb871(_0x41aa26,_0x1d8ca6){return _0x9b7c55(_0x1d8ca6,_0x41aa26- -0x589);}this[_0x4fb871(-0x26a,-0x2e9)]=_0x58310e;function _0x317805(_0x3cd441,_0x56814c){return _0x164541(_0x56814c,_0x3cd441- -0x74);}this['computing'][_0x4fb871(-0x26a,-0x27b)]=_0x58310e,this['rendering']['viewerParameters']=_0x58310e;}['destroy'](){function _0xfd9d83(_0x22a396,_0x4dcb27){return _0x9b7c55(_0x4dcb27,_0x22a396- -0x5b);}this['computing'][_0x5cfbf1(-0x232,-0x1c1)]();function _0x5cfbf1(_0x2c32bc,_0x4fb917){return _0x9b7c55(_0x2c32bc,_0x4fb917- -0x530);}this['rendering'][_0xfd9d83(0x314,0x33c)]();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0x9b7c55(0x247,0x2bd)]['BaseLayer'],_0x4acbb4={};_0x4acbb4['min']=0x1,_0x4acbb4['max']=0x2;const _0x1e2b8c={};_0x1e2b8c[_0x9b7c55(0x2fa,0x356)]=0x14,_0x1e2b8c['max']=0x64;const _0x484411={};_0x484411[_0x164541(-0x246,-0x1c6)]=0x64,_0x484411['fixedHeight']=0x0,_0x484411['lineWidth']=_0x4acbb4,_0x484411['lineLength']=_0x1e2b8c,_0x484411['speedFactor']=0x1,_0x484411[_0x164541(-0x137,-0x125)]=0.003,_0x484411[_0x9b7c55(0x35c,0x343)]=0.001,_0x484411['colors']=[_0x164541(-0x14f,-0x1ab)],_0x484411['flipY']=![],_0x484411['dynamic']=!![];const DEF_OPTIONS=_0x484411;class WindLayer extends BaseLayer$1{constructor(_0x27e372={}){function _0x430ddf(_0x394fbd,_0xdd3372){return _0x9b7c55(_0x394fbd,_0xdd3372- -0x3be);}_0x27e372={...DEF_OPTIONS,..._0x27e372},super(_0x27e372),this[_0x430ddf(-0xd4,-0xe2)](_0x27e372,_0x27e372);}get['layer'](){return this['primitives'];}get[_0x9b7c55(0x33f,0x385)](){return this['options']['data'];}set['data'](_0x4daea6){this['options']['data']=_0x4daea6,this['setData'](_0x4daea6);}get['colors'](){function _0x1f2e30(_0x3071c1,_0x5ac473){return _0x9b7c55(_0x5ac473,_0x3071c1- -0x4b6);}function _0x21c751(_0x30a06f,_0x52c852){return _0x164541(_0x30a06f,_0x52c852-0x179);}return this[_0x21c751(0x3d,-0x43)][_0x21c751(0x12,-0x36)];}set['colors'](_0x244f81){this['options']['colors']=_0x244f81;const _0x71dc2c={};function _0x10bae0(_0x120f90,_0x51733a){return _0x164541(_0x120f90,_0x51733a- -0x75);}_0x71dc2c[_0x10bae0(-0x2a7,-0x224)]=_0x244f81,this['_setOptionsHook'](this['options'],_0x71dc2c);}[_0x9b7c55(0x30c,0x2fe)](_0x30f3f9){function _0x13ddc9(_0x1cefac,_0x2610ac){return _0x9b7c55(_0x2610ac,_0x1cefac- -0x4cd);}_0x30f3f9?this['_addedHook']():this[_0x13ddc9(-0x18d,-0x171)]();}['_mountedHook'](){}['_addedHook'](){this['scene']=this['_map']['scene'],this['camera']=this['_map'][_0x130fd8(-0x108,-0x154)];this[_0x428d36(-0x127,-0x175)][_0x428d36(-0x8d,-0xa3)]&&this[_0x428d36(-0xd8,-0x105)](this['options'][_0x130fd8(-0x54,-0xcb)]);if(!this['windData']||!this['show'])return;this[_0x428d36(-0xfc,-0x109)]={'lonRange':new Cesium$1[(_0x428d36(-0x9c,-0xb3))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this[_0x130fd8(-0xae,-0xd6)](),this[_0x130fd8(-0x99,-0xca)]=new WindParticleSystem(this['scene']['context'],this['windData'],this['options'],this['viewerParameters'],this['scene']),this['primitives']=this['particleSystem']['getPrimitives'](),this['primitives']['forEach'](_0x32ebce=>{function _0x288a36(_0xe77537,_0x143c43){return _0x130fd8(_0x143c43,_0xe77537-0x216);}this['scene']['primitives'][_0x288a36(0xe0,0x5c)](_0x32ebce);}),this[_0x130fd8(-0x1ad,-0x154)]['percentageChanged']=0.01,this['camera'][_0x130fd8(-0x14c,-0x184)]['addEventListener'](this[_0x130fd8(-0x4d,-0xd6)][_0x428d36(-0x10f,-0x15e)](this));function _0x130fd8(_0x340702,_0x5bde45){return _0x164541(_0x340702,_0x5bde45-0x1f);}function _0x428d36(_0x58be73,_0x57ead1){return _0x164541(_0x58be73,_0x57ead1-0x47);}this['scene']['morphComplete'][_0x428d36(-0x14f,-0x125)](this['updateViewerParameters']['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters']['bind'](this));}['_removedHook'](){this['camera'][_0xbb27a8(-0x9,-0xb)]['removeEventListener'](this[_0xdef52(-0x56,-0x92)][_0xbb27a8(-0xb,0x4f)](this)),this[_0xdef52(-0xaf,-0xe7)]['morphComplete'][_0xdef52(-0x9e,-0x5b)](this['updateViewerParameters']['bind'](this));function _0xbb27a8(_0x56d666,_0x5136a2){return _0x164541(_0x5136a2,_0x56d666-0x19a);}function _0xdef52(_0x54b1ff,_0x447747){return _0x9b7c55(_0x447747,_0x54b1ff- -0x3d0);}window[_0xdef52(-0x9e,-0xed)]('resize',this['updateViewerParameters']['bind'](this)),this['primitives']&&(this[_0xbb27a8(-0x29,0x7)]['forEach'](_0xcc3bfe=>{this['scene']['primitives']['remove'](_0xcc3bfe);}),delete this['primitives']),this[_0xbb27a8(0xb1,0x121)]&&(this['particleSystem'][_0xdef52(-0x61,0x16)](),delete this['particleSystem']);}['setData'](_0x36fa9a,_0x258d44){this[_0x1b8e5d(0x1a6,0x20a)]=this['processWindData'](_0x36fa9a);function _0x1b8e5d(_0x46b2a6,_0x19db7e){return _0x164541(_0x19db7e,_0x46b2a6-0x2ac);}function _0xf4873b(_0x191f1d,_0x2baf59){return _0x164541(_0x191f1d,_0x2baf59- -0xe0);}if(_0x258d44){this['_removedHook'](),this['_addedHook']();return;}this[_0x1b8e5d(0x1c3,0x20c)]?(this[_0x1b8e5d(0x1c3,0x210)][_0xf4873b(-0x1f1,-0x225)]['updateWindData'](this['windData']),this[_0x1b8e5d(0x15e,0x159)][_0xf4873b(-0x2bc,-0x2d0)]()):this['_addedHook']();}['_setOptionsHook'](_0x36b8fa,_0x2b75c2){this['particleSystem']&&(this['particleSystem']['changeOptions'](_0x2b75c2),this['scene']['requestRender']());}[_0x9b7c55(0x358,0x2e7)](_0x23370a){var _0xc7da52,_0x1e8a79;const _0x28f28f={..._0x23370a},_0x36addf=_0x28f28f;!_0x36addf['height']&&_0x36addf['rows']&&(_0x36addf[_0x16af46(-0x214,-0x1b7)]=_0x36addf['rows']);!_0x36addf['width']&&_0x36addf['cols']&&(_0x36addf['width']=_0x36addf[_0x16af46(-0x1f2,-0x19e)]);!_0x36addf['bounds']&&(_0x36addf['bounds']={'west':_0x36addf[_0x572268(0x198,0x133)],'south':_0x36addf[_0x572268(0x226,0x1a7)],'east':_0x36addf['xmax'],'north':_0x36addf['ymax']});if(!_0x36addf['u']){const _0x539df3={};_0x539df3['array']=_0x23370a['udata'],_0x539df3[_0x572268(0x217,0x196)]=_0x23370a[_0x572268(0x241,0x233)],_0x539df3[_0x572268(0x239,0x21c)]=_0x23370a['umax'],_0x36addf['u']=_0x539df3;}function _0x572268(_0x40eb72,_0x493dc0){return _0x9b7c55(_0x493dc0,_0x40eb72- -0x13f);}if(!_0x36addf['v']){const _0x57e401={};_0x57e401['array']=_0x23370a[_0x16af46(-0x205,-0x274)],_0x57e401['min']=_0x23370a[_0x16af46(-0x299,-0x310)],_0x57e401['max']=_0x23370a[_0x16af46(-0x26b,-0x298)],_0x36addf['v']=_0x57e401;}if(((_0xc7da52=_0x36addf['speed'])===null||_0xc7da52===void 0x0?void 0x0:_0xc7da52['min'])===undefined||((_0x1e8a79=_0x36addf[_0x16af46(-0x2ba,-0x2b3)])===null||_0x1e8a79===void 0x0?void 0x0:_0x1e8a79['max'])===undefined||_0x36addf['speed']['array']===undefined){const _0x4b7945={'array':new Float32Array(_0x36addf['u']['array']['length']),'min':Number['MAX_VALUE'],'max':Number[_0x16af46(-0x270,-0x2a8)]};for(let _0xbfcad8=0x0;_0xbfcad8<_0x36addf['u']['array'][_0x16af46(-0x24b,-0x231)];_0xbfcad8++){_0x4b7945['array'][_0xbfcad8]=Math[_0x572268(0x1b8,0x185)](_0x36addf['u'][_0x16af46(-0x21d,-0x237)][_0xbfcad8]*_0x36addf['u']['array'][_0xbfcad8]+_0x36addf['v']['array'][_0xbfcad8]*_0x36addf['v']['array'][_0xbfcad8]),_0x4b7945[_0x572268(0x1e7,0x19f)][_0xbfcad8]!==0x0&&(_0x4b7945['min']=Math['min'](_0x4b7945['min'],_0x4b7945[_0x16af46(-0x21d,-0x1d7)][_0xbfcad8]),_0x4b7945['max']=Math[_0x572268(0x239,0x28d)](_0x4b7945['max'],_0x4b7945['array'][_0xbfcad8]));}_0x36addf['speed']=_0x4b7945;}function _0x16af46(_0x7a42e9,_0x376edc){return _0x9b7c55(_0x376edc,_0x7a42e9- -0x543);}return _0x36addf;}['updateViewerParameters'](){var _0x16c0fc;const _0x4b0ba2=this['scene'];if(!_0x4b0ba2)return;const _0x4d328d=_0x4b0ba2['canvas'];function _0x15e9bd(_0x1c9696,_0x46d390){return _0x164541(_0x46d390,_0x1c9696-0x10e);}const _0x30f869={};_0x30f869['x']=0x0,_0x30f869['y']=0x0;const _0x48b575={};_0x48b575['x']=0x0,_0x48b575['y']=_0x4d328d[_0x15e9bd(0x15,-0x6c)];function _0x703206(_0x5e2030,_0x24cb9d){return _0x9b7c55(_0x24cb9d,_0x5e2030- -0x43c);}const _0x28c2c6={};_0x28c2c6['x']=_0x4d328d['clientWidth'],_0x28c2c6['y']=0x0;const _0x54c76f={};_0x54c76f['x']=_0x4d328d['clientWidth'],_0x54c76f['y']=_0x4d328d['clientHeight'];const _0x4c19fd=[_0x30f869,_0x48b575,_0x28c2c6,_0x54c76f];let _0x306b1c=0xb4,_0x48c4b1=-0xb4,_0x143a65=0x5a,_0x12157e=-0x5a,_0x3d7a23=![];for(const _0x2b3681 of _0x4c19fd){const _0x4910e9=_0x4b0ba2['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x2b3681['x'],_0x2b3681['y']),_0x4b0ba2[_0x15e9bd(-0x71,-0x91)]['ellipsoid']);if(!_0x4910e9){_0x3d7a23=!![];break;}const _0x40ea3c=_0x4b0ba2['globe'][_0x15e9bd(-0x67,-0x15)]['cartesianToCartographic'](_0x4910e9),_0x484c2c=Cesium$1['Math'][_0x15e9bd(-0x83,-0x1f)](_0x40ea3c['longitude']),_0x4a562b=Cesium$1['Math'][_0x15e9bd(-0x83,-0x45)](_0x40ea3c['latitude']);_0x306b1c=Math[_0x703206(-0xe6,-0x13a)](_0x306b1c,_0x484c2c),_0x48c4b1=Math['max'](_0x48c4b1,_0x484c2c),_0x143a65=Math[_0x15e9bd(-0xb,0x69)](_0x143a65,_0x4a562b),_0x12157e=Math['max'](_0x12157e,_0x4a562b);}if(!_0x3d7a23){const _0x1d4b82=new Cesium$1['Cartesian2'](Math['max'](this['windData']['bounds']['west'],_0x306b1c),Math[_0x703206(-0xe6,-0xfe)](this['windData']['bounds'][_0x15e9bd(-0xad,-0x2a)],_0x48c4b1)),_0x949e82=new Cesium$1[(_0x703206(-0xc7,-0x66))](Math[_0x15e9bd(0x17,-0x5)](this[_0x703206(-0xd3,-0xec)][_0x703206(-0x14f,-0xf9)][_0x15e9bd(-0xb4,-0x3c)],_0x143a65),Math[_0x703206(-0xe6,-0x69)](this['windData'][_0x15e9bd(-0x74,-0xdb)]['north'],_0x12157e)),_0x5a9cb9=(_0x1d4b82['y']-_0x1d4b82['x'])*0.05,_0xffa264=(_0x949e82['y']-_0x949e82['x'])*0.05;_0x1d4b82['x']=Math['max'](this['windData']['bounds']['west'],_0x1d4b82['x']-_0x5a9cb9),_0x1d4b82['y']=Math['min'](this['windData'][_0x15e9bd(-0x74,-0x38)][_0x703206(-0x188,-0x128)],_0x1d4b82['y']+_0x5a9cb9),_0x949e82['x']=Math['max'](this[_0x703206(-0xd3,-0xd4)][_0x703206(-0x14f,-0x112)][_0x15e9bd(-0xb4,-0x30)],_0x949e82['x']-_0xffa264),_0x949e82['y']=Math[_0x15e9bd(-0xb,0x39)](this[_0x703206(-0xd3,-0x57)]['bounds']['north'],_0x949e82['y']+_0xffa264),this['viewerParameters'][_0x15e9bd(-0xc8,-0xbb)]=_0x1d4b82,this['viewerParameters']['latRange']=_0x949e82;const _0x31465e=this['windData'][_0x15e9bd(-0x74,-0x96)][_0x703206(-0x188,-0x145)]-this[_0x703206(-0xd3,-0xbe)]['bounds']['west'],_0x106fb3=this['windData']['bounds']['north']-this[_0x15e9bd(0x8,-0x2)]['bounds']['south'],_0x361270=(_0x1d4b82['y']-_0x1d4b82['x'])/_0x31465e,_0x2f0860=(_0x949e82['y']-_0x949e82['x'])/_0x106fb3,_0x1e3194=Math[_0x703206(-0xe6,-0x126)](_0x361270,_0x2f0860),_0x4ed92b=0x3e8*_0x1e3194;_0x4ed92b>0x0&&(this[_0x703206(-0x11d,-0x168)][_0x15e9bd(-0xdc,-0xe9)]=Math[_0x15e9bd(0x17,0xe)](0x0,Math[_0x15e9bd(-0xb,-0xe)](0x3e8,_0x4ed92b)));}this['viewerParameters']['sceneMode']=this[_0x15e9bd(-0x40,0x36)][_0x15e9bd(-0xd1,-0x7f)],(_0x16c0fc=this['particleSystem'])===null||_0x16c0fc===void 0x0||_0x16c0fc['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x245ca7,_0x4d2020){const {bounds:_0x1937bc,width:_0x9ac966,height:_0x598533,u:_0x5164e7,v:_0x4019ed,speed:_0x53a791}=this[_0x1cfdb0(-0x135,-0x1b9)];function _0x1cfdb0(_0x58ac12,_0x4e8372){return _0x9b7c55(_0x4e8372,_0x58ac12- -0x49e);}const {flipY:_0xd27098}=this[_0x2540c3(-0x25b,-0x2a5)];if(_0x245ca7<_0x1937bc[_0x1cfdb0(-0x116,-0x9d)]||_0x245ca7>_0x1937bc[_0x1cfdb0(-0x1ea,-0x266)]||_0x4d2020<_0x1937bc['south']||_0x4d2020>_0x1937bc[_0x2540c3(-0x264,-0x24b)])return null;const _0x1538ee=(_0x245ca7-_0x1937bc['west'])/(_0x1937bc['east']-_0x1937bc['west'])*(_0x9ac966-0x1);let _0x17ca2b=(_0x4d2020-_0x1937bc[_0x1cfdb0(-0x1f1,-0x243)])/(_0x1937bc['north']-_0x1937bc['south'])*(_0x598533-0x1);_0xd27098&&(_0x17ca2b=_0x598533-0x1-_0x17ca2b);const _0x28ccac=Math['floor'](_0x1538ee),_0x117627=Math[_0x2540c3(-0x19f,-0x216)](_0x17ca2b),_0x1e1264=Math['floor'](_0x1538ee),_0x38729b=Math[_0x1cfdb0(-0x148,-0xde)](_0x1e1264+0x1,_0x9ac966-0x1),_0x402bef=Math[_0x1cfdb0(-0x15c,-0x17e)](_0x17ca2b),_0x226b70=Math['min'](_0x402bef+0x1,_0x598533-0x1),_0x2feac4=_0x1538ee-_0x1e1264,_0xa6744f=_0x17ca2b-_0x402bef,_0x1cfc0d=_0x117627*_0x9ac966+_0x28ccac,_0x37063d=_0x402bef*_0x9ac966+_0x1e1264,_0x15a7c4=_0x402bef*_0x9ac966+_0x38729b,_0x162752=_0x226b70*_0x9ac966+_0x1e1264,_0x15b6e5=_0x226b70*_0x9ac966+_0x38729b,_0x426ac9=_0x5164e7['array'][_0x37063d];function _0x2540c3(_0x54126b,_0x8669d0){return _0x9b7c55(_0x54126b,_0x8669d0- -0x558);}const _0x4a5034=_0x5164e7[_0x1cfdb0(-0x178,-0x1ce)][_0x15a7c4],_0x46da08=_0x5164e7['array'][_0x162752],_0x30b887=_0x5164e7[_0x2540c3(-0x22b,-0x232)][_0x15b6e5],_0x3ec249=(0x1-_0x2feac4)*(0x1-_0xa6744f)*_0x426ac9+_0x2feac4*(0x1-_0xa6744f)*_0x4a5034+(0x1-_0x2feac4)*_0xa6744f*_0x46da08+_0x2feac4*_0xa6744f*_0x30b887,_0x48863e=_0x4019ed['array'][_0x37063d],_0x1665c0=_0x4019ed[_0x1cfdb0(-0x178,-0x168)][_0x15a7c4],_0x5d9fd8=_0x4019ed['array'][_0x162752],_0x2a44f7=_0x4019ed['array'][_0x15b6e5],_0x5b6682=(0x1-_0x2feac4)*(0x1-_0xa6744f)*_0x48863e+_0x2feac4*(0x1-_0xa6744f)*_0x1665c0+(0x1-_0x2feac4)*_0xa6744f*_0x5d9fd8+_0x2feac4*_0xa6744f*_0x2a44f7,_0x3a9835=Math['sqrt'](_0x3ec249*_0x3ec249+_0x5b6682*_0x5b6682),_0x108db8={};_0x108db8['u']=_0x5164e7[_0x2540c3(-0x1b2,-0x232)][_0x1cfc0d],_0x108db8['v']=_0x4019ed[_0x1cfdb0(-0x178,-0x1a7)][_0x1cfc0d],_0x108db8[_0x1cfdb0(-0x215,-0x1d7)]=_0x53a791['array'][_0x1cfc0d];const _0x492109={};_0x492109['u']=_0x3ec249,_0x492109['v']=_0x5b6682,_0x492109['speed']=_0x3a9835;const _0x91ad65={};return _0x91ad65[_0x1cfdb0(-0x1e6,-0x177)]=_0x108db8,_0x91ad65['interpolated']=_0x492109,_0x91ad65;}}mars3d__namespace[_0x164541(-0x1a5,-0x1d7)][_0x164541(-0x1bc,-0x186)]('wind',WindLayer),mars3d__namespace['layer'][_0x9b7c55(0x343,0x35c)]=WindLayer;function _0x144d(){const _0x1dae17=['setDate','windField','_onMapWhellEvent','data','particleSystem','maxAge','west','getPostProcessingPositionShader','pow','FLOAT','RGBA','currentParticlesPosition','frameRateAdjustment','getV','clear','alt','createRenderingTextures','forEach','requestRender','drawingBufferHeight','round','abs','segmentsDepth','fromDegrees','pixelSize','9038HwGTKh','166293uGiyTl','CanvasWindLayer','speed','OPAQUE','off','width','DomUtil','vertexShaderSource','framebuffer','mode','initFrameRate','defineProperty','onParticlesTextureSizeChange','fill','clearCommand','auto','geometry','LayerUtil','lonRange','commandList','shaderProgram','segmentsColor','canvasWind','canvasContext','Rectangle','_canrefresh','age','toGridXY','error','rendering','windTextures','pixelDatatype','bindEvent','44EhGBaJ','particlesTextureSize','vmin','EventType','primitives','south','pass','vertexArray','Cartesian3','owner','tlng','options','east','frameRate','mouse_down','getColor','original','outputTexture','mouseDown','reverse','lat','layer','latRange','ColorRamp','colors','isDestroyed','getDefaultRenderState','values','rgb(206,255,255)','135800yUbCMT','750632gMqsRO','attributeLocations','previousParticlesPosition','_speedRate','bind','setOptions','changed','moveTo','xmax','5357KnNDjp','zIndex','createParticlesTextures','lng','MIN_VALUE','create','fromGeometry','canvasWidth','xmin','vmax','toWindowCoordinates','lighter','getUpdatePositionShader','_setOptionsHook','particlesSpeed','toDegrees','framebuffers','componentDatatype','693460HGRLJw','steps','_drawLines','call','particlesTextures','worker','processWindData','getUVByXY','register','fromCache','initWorker','getSegmentDrawVertexShader','bounds','_onMouseDownEvent','style','globe','0px','createSegmentsGeometry','frameTime','_colorRamp','magnificationFilter','_pointerEvents','sqrt','length','_updateIng','ellipsoid','lineLength','camera','isDestroy','_showHook','createPrimitives','particles','getCalculateSpeedShader','segments','addEventListener','CLAMP_TO_EDGE','11910WwXpou','beginPath','81FSggSC','logInfo','destoryRenderingFramebuffers','warn','get','stringify','north','minificationFilter','alpha','preExecute','_canvasParticles','toRadians','Compute','primitiveType','canvas','_map','WindUtil','particlesNumber','colorTable','add','init','frameRateMonitor','sources','_maxAge','viewerParameters','pointer-events','scene','onmessage','setData','color','stroke','array','SCENE3D','#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','tlat','computing','4987325ydlvHA','globalAlpha','fragmentShaderSource','#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','height','globalCompositeOperation','commandToExecute','removeEventListener','speedRate','_calc_speedRate','_tomap','_addedHook','lineWidth','rows','6hVjhLs','drawingBufferWidth','commandType','Unknown\x20command\x20type','calculateSpeed','vdata','wrapT','_removedHook','ONE_MINUS_SRC_ALPHA','floor','dropRateBump','createWindTextures','speedFactor','getUVByPoint','top','#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','depthMask','dropRate','NEAREST','container','mouseMove','PointTrans','LINEAR','default','cols','_calcUV','postMessage','updateOptions','nextParticlesPosition','min','mouseUp','ymax','update','createComputingPrimitives','clientWidth','WindLayer','visibility','_updateIng2','pointerEvents','rawRenderState','uniformMap','reCreateWindTextures','STATIC_DRAW','show','ymin','Cesium','resize','flipY','windData','hidden','textures','__proto__','atan2','push','destroy','quietPeriod','context','SceneMode','CanvasWindField','clearFramebuffers','Cartesian2','clientHeight','isDynamic','max','createCommand','updateViewerParameters','_onMouseMoveEvent','grid','value','Draw','domain','umin','fixedHeight'];_0x144d=function(){return _0x1dae17;};return _0x144d();}class CanvasParticle{constructor(){this['lng']=null;function _0x4964d8(_0x5718ca,_0x276687){return _0x9b7c55(_0x276687,_0x5718ca-0x87);}function _0x438c49(_0xff5138,_0x15b5f1){return _0x164541(_0xff5138,_0x15b5f1-0x14);}this[_0x438c49(-0x205,-0x19f)]=null,this['tlng']=null,this[_0x4964d8(0x3b0,0x3fb)]=null,this['age']=null,this[_0x438c49(-0x24e,-0x1d2)]=null;}['destroy'](){for(const _0x12c56a in this){delete this[_0x12c56a];}}}class CanvasWindField{constructor(_0x498c9f){function _0x116499(_0x44e597,_0x1fac89){return _0x9b7c55(_0x1fac89,_0x44e597- -0x1c9);}this[_0x116499(0x102,0x92)](_0x498c9f);}get['speedRate'](){function _0x18ed3c(_0x155041,_0x36a954){return _0x9b7c55(_0x155041,_0x36a954- -0x146);}return this[_0x18ed3c(0x12b,0x183)];}set['speedRate'](_0x408dee){this['_speedRate']=(0x64-(_0x408dee>0x63?0x63:_0x408dee))*0x64;function _0x24302f(_0x565233,_0x142cd1){return _0x9b7c55(_0x142cd1,_0x565233- -0x59);}function _0x1b7fea(_0x26e38b,_0x17bc4e){return _0x9b7c55(_0x17bc4e,_0x26e38b- -0x4f4);}this['_calc_speedRate']=[(this[_0x24302f(0x275,0x2df)]-this[_0x24302f(0x27e,0x299)])/this['_speedRate'],(this[_0x24302f(0x2ff,0x36d)]-this['ymin'])/this['_speedRate']];}get['maxAge'](){function _0x536ae5(_0x72d479,_0x109c56){return _0x9b7c55(_0x72d479,_0x109c56- -0x2f2);}return this[_0x536ae5(0xb5,0x2c)];}set['maxAge'](_0x1e08ec){this['_maxAge']=_0x1e08ec;}[_0x9b7c55(0x26e,0x2cb)](_0x402fc8){function _0x3e1aef(_0x367ad6,_0x3e221e){return _0x164541(_0x3e221e,_0x367ad6-0x4f7);}this['options']=_0x402fc8,this['maxAge']=_0x402fc8['maxAge']||0x78,this['speedRate']=_0x402fc8[_0x3e1aef(0x3bb,0x3db)]||0x32;function _0x13ca80(_0x25286c,_0x38b0dc){return _0x164541(_0x25286c,_0x38b0dc-0xc0);}this['particles']=[];const _0x3ee15f=_0x402fc8[_0x13ca80(-0x17,-0x97)]||0x1000;for(let _0x1d7b40=0x0;_0x1d7b40<_0x3ee15f;_0x1d7b40++){const _0x539df5=this['_randomParticle'](new CanvasParticle());this['particles'][_0x3e1aef(0x3f6,0x416)](_0x539df5);}}[_0x164541(-0x96,-0xed)](_0x3377a6){this[_0x458224(-0x210,-0x1d8)]=_0x3377a6['rows'];function _0x458224(_0xea8263,_0x526047){return _0x9b7c55(_0x526047,_0xea8263- -0x548);}this['cols']=_0x3377a6['cols'],this[_0x34a816(0x104,0x7c)]=_0x3377a6['xmin'],this[_0x458224(-0x27a,-0x2ea)]=_0x3377a6['xmax'],this['ymin']=_0x3377a6['ymin'];function _0x34a816(_0x2da21d,_0x263f2f){return _0x164541(_0x263f2f,_0x2da21d-0x29c);}this[_0x34a816(0x185,0x15a)]=_0x3377a6[_0x34a816(0x185,0x157)],this['grid']=[];const _0x4b2810=_0x3377a6['udata'],_0x1bed2e=_0x3377a6[_0x458224(-0x20a,-0x1fb)];let _0x214fdd=![];_0x4b2810['length']===this['rows']&&_0x4b2810[0x0]['length']===this[_0x34a816(0x17e,0x112)]&&(_0x214fdd=!![]);let _0x561a0e=0x0,_0x55ef6e=null,_0x21bb05=null;for(let _0x5830f7=0x0;_0x5830f7<this['rows'];_0x5830f7++){_0x55ef6e=[];for(let _0x3c3aa7=0x0;_0x3c3aa7<this[_0x34a816(0x17e,0x13a)];_0x3c3aa7++,_0x561a0e++){_0x214fdd?_0x21bb05=this['_calcUV'](_0x4b2810[_0x5830f7][_0x3c3aa7],_0x1bed2e[_0x5830f7][_0x3c3aa7]):_0x21bb05=this['_calcUV'](_0x4b2810[_0x561a0e],_0x1bed2e[_0x561a0e]),_0x55ef6e['push'](_0x21bb05);}this['grid']['push'](_0x55ef6e);}!this['options'][_0x458224(-0x1e0,-0x24e)]&&this['grid'][_0x34a816(0xe8,0xc2)]();}['clear'](){delete this[_0x82450e(0x305,0x2b6)],delete this[_0x2edf94(0xf1,0x87)],delete this['xmin'];function _0x82450e(_0x25f3ae,_0x10fbb2){return _0x9b7c55(_0x25f3ae,_0x10fbb2- -0x82);}delete this['xmax'],delete this['ymin'];function _0x2edf94(_0x57abc1,_0x349a26){return _0x164541(_0x57abc1,_0x349a26-0x1a5);}delete this[_0x2edf94(0xfe,0x8e)],delete this[_0x2edf94(0x12f,0xb2)],delete this[_0x82450e(0x2ca,0x27e)];}['toGridXY'](_0x2d6c34,_0x3567a8){function _0x29f98e(_0x4d0898,_0x555edc){return _0x9b7c55(_0x4d0898,_0x555edc- -0xf2);}function _0x4f5d46(_0x70140b,_0x2445c0){return _0x9b7c55(_0x2445c0,_0x70140b- -0x2bb);}const _0x2613c6=(_0x2d6c34-this['xmin'])/(this['xmax']-this[_0x29f98e(0x1b7,0x1e5)])*(this[_0x4f5d46(0x96,0x33)]-0x1),_0x873a4a=(this['ymax']-_0x3567a8)/(this['ymax']-this['ymin'])*(this[_0x29f98e(0x241,0x246)]-0x1);return[_0x2613c6,_0x873a4a];}['getUVByXY'](_0x381c8d,_0x3d42ad){if(_0x381c8d<0x0||_0x381c8d>=this['cols']||_0x3d42ad>=this[_0x494f00(0x2a1,0x2d0)])return[0x0,0x0,0x0];const _0x47ac62=Math['floor'](_0x381c8d),_0x3759b0=Math['floor'](_0x3d42ad);if(_0x47ac62===_0x381c8d&&_0x3759b0===_0x3d42ad)return this['grid'][_0x3d42ad][_0x381c8d];const _0x2ebe13=_0x47ac62+0x1,_0x58e5ff=_0x3759b0+0x1;function _0x494f00(_0x310dcd,_0x35f842){return _0x164541(_0x310dcd,_0x35f842-0x407);}function _0x3fb98c(_0x3224e9,_0x492831){return _0x164541(_0x3224e9,_0x492831-0x635);}const _0x1ff801=this['getUVByXY'](_0x47ac62,_0x3759b0),_0x507c25=this[_0x3fb98c(0x447,0x4ae)](_0x2ebe13,_0x3759b0),_0x470a12=this['getUVByXY'](_0x47ac62,_0x58e5ff),_0x412555=this['getUVByXY'](_0x2ebe13,_0x58e5ff);let _0x637915=null;try{_0x637915=this['_bilinearInterpolation'](_0x381c8d-_0x47ac62,_0x3d42ad-_0x3759b0,_0x1ff801,_0x507c25,_0x470a12,_0x412555);}catch(_0x342457){console['log'](_0x381c8d,_0x3d42ad);}return _0x637915;}['_bilinearInterpolation'](_0x2ae482,_0x4f0b87,_0xb8930e,_0x362c00,_0x1efea9,_0x270b53){const _0x5e2bdf=0x1-_0x2ae482;function _0x5b4119(_0x71b186,_0x4c1210){return _0x164541(_0x4c1210,_0x71b186-0x165);}const _0x1fca61=0x1-_0x4f0b87,_0x29b666=_0x5e2bdf*_0x1fca61,_0x9d771f=_0x2ae482*_0x1fca61,_0x23eb42=_0x5e2bdf*_0x4f0b87,_0x46479d=_0x2ae482*_0x4f0b87,_0x4eb35d=_0xb8930e[0x0]*_0x29b666+_0x362c00[0x0]*_0x9d771f+_0x1efea9[0x0]*_0x23eb42+_0x270b53[0x0]*_0x46479d,_0x21ba69=_0xb8930e[0x1]*_0x29b666+_0x362c00[0x1]*_0x9d771f+_0x1efea9[0x1]*_0x23eb42+_0x270b53[0x1]*_0x46479d;return this[_0x5b4119(0x48,0x15)](_0x4eb35d,_0x21ba69);}['_calcUV'](_0x4f84ea,_0x15ad99){function _0x251ae6(_0x4ce994,_0x27a718){return _0x164541(_0x27a718,_0x4ce994-0x518);}return[+_0x4f84ea,+_0x15ad99,Math[_0x251ae6(0x3a0,0x3c5)](_0x4f84ea*_0x4f84ea+_0x15ad99*_0x15ad99)];}[_0x164541(-0xa8,-0x129)](_0x64ecb5,_0xa7dc88){if(!this['isInExtent'](_0x64ecb5,_0xa7dc88))return null;function _0xf91554(_0x279d35,_0x4b65a2){return _0x9b7c55(_0x4b65a2,_0x279d35- -0x4f5);}const _0x54763d=this[_0xf91554(-0x253,-0x288)](_0x64ecb5,_0xa7dc88),_0x3bf60b=this['getUVByXY'](_0x54763d[0x0],_0x54763d[0x1]);return _0x3bf60b;}['isInExtent'](_0x2bebe1,_0x2896a5){return _0x2bebe1>=this['xmin']&&_0x2bebe1<=this['xmax']&&_0x2896a5>=this['ymin']&&_0x2896a5<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x1766e4=fRandomByfloat(this['xmin'],this[_0x42b136(-0x2a8,-0x2bc)]),_0x470068=fRandomByfloat(this['ymin'],this[_0x42b136(-0x21e,-0x210)]),_0x33b2a5={};_0x33b2a5['lat']=_0x470068;function _0x3ab0c9(_0x1d2e30,_0x38637a){return _0x9b7c55(_0x38637a,_0x1d2e30- -0x18d);}_0x33b2a5[_0x3ab0c9(0x145,0x141)]=_0x1766e4;function _0x42b136(_0x247696,_0x2a719a){return _0x164541(_0x2a719a,_0x247696- -0x107);}return _0x33b2a5;}['getParticles'](){function _0x142336(_0x58bff7,_0x4fdcb8){return _0x164541(_0x4fdcb8,_0x58bff7-0x549);}let _0x16b2e3,_0x84d3f3,_0x22d5d3;function _0x23875a(_0x2fe0fe,_0x27b238){return _0x164541(_0x2fe0fe,_0x27b238-0x20b);}for(let _0xe70049=0x0,_0x5dc0f8=this[_0x23875a(0x10e,0x9c)]['length'];_0xe70049<_0x5dc0f8;_0xe70049++){let _0x3e86cb=this[_0x23875a(0x50,0x9c)][_0xe70049];_0x3e86cb['age']<=0x0&&(_0x3e86cb=this['_randomParticle'](_0x3e86cb));if(_0x3e86cb[_0x23875a(-0x48,0x3d)]>0x0){const _0x49239f=_0x3e86cb['tlng'],_0x27f8f0=_0x3e86cb['tlat'];_0x22d5d3=this[_0x142336(0x420,0x3dd)](_0x49239f,_0x27f8f0),_0x22d5d3?(_0x16b2e3=_0x49239f+this[_0x142336(0x40e,0x46b)][0x0]*_0x22d5d3[0x0],_0x84d3f3=_0x27f8f0+this[_0x23875a(0x5b,0xd0)][0x1]*_0x22d5d3[0x1],_0x3e86cb['lng']=_0x49239f,_0x3e86cb['lat']=_0x27f8f0,_0x3e86cb[_0x23875a(-0x12,0x4e)]=_0x16b2e3,_0x3e86cb['tlat']=_0x84d3f3,_0x3e86cb[_0x142336(0x363,0x37f)]=_0x22d5d3[0x2],_0x3e86cb[_0x23875a(0xc1,0x3d)]--):_0x3e86cb['age']=0x0;}}return this[_0x142336(0x3da,0x36f)];}['_randomParticle'](_0x49c3c9){let _0x4a9763,_0x3b03f1;for(let _0xb70e2=0x0;_0xb70e2<0x1e;_0xb70e2++){_0x4a9763=this['getRandomLatLng'](),_0x3b03f1=this[_0xd4b66e(0x30d,0x386)](_0x4a9763[_0xd4b66e(0x299,0x259)],_0x4a9763[_0xd4b66e(0x283,0x291)]);if(_0x3b03f1&&_0x3b03f1[0x2]>0x0)break;}if(!_0x3b03f1)return _0x49c3c9;const _0x2b76e7=_0x4a9763[_0xd4b66e(0x299,0x29e)]+this[_0x860a22(0x1f1,0x25a)][0x0]*_0x3b03f1[0x0],_0xd8925a=_0x4a9763['lat']+this['_calc_speedRate'][0x1]*_0x3b03f1[0x1];_0x49c3c9['lng']=_0x4a9763[_0x860a22(0x1c3,0x1f8)];function _0x860a22(_0x5e945e,_0x32c4a9){return _0x9b7c55(_0x5e945e,_0x32c4a9- -0xda);}_0x49c3c9['lat']=_0x4a9763['lat'],_0x49c3c9[_0xd4b66e(0x279,0x1fb)]=_0x2b76e7,_0x49c3c9['tlat']=_0xd8925a;function _0xd4b66e(_0x2e1c4f,_0x21ce84){return _0x9b7c55(_0x21ce84,_0x2e1c4f- -0x39);}return _0x49c3c9['age']=Math[_0xd4b66e(0x248,0x270)](0xa+Math['random']()*this[_0x860a22(0x2f4,0x2ad)]),_0x49c3c9['speed']=_0x3b03f1[0x2],_0x49c3c9;}['destroy'](){for(const _0x2ef445 in this){delete this[_0x2ef445];}}}function fRandomByfloat(_0x5ae267,_0x10d458){return _0x5ae267+Math['random']()*(_0x10d458-_0x5ae267);}const Cesium=mars3d__namespace[_0x9b7c55(0x381,0x366)],BaseLayer=mars3d__namespace[_0x9b7c55(0x261,0x2bd)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x5c362b={}){function _0x216630(_0x3c95fd,_0x1e39eb){return _0x164541(_0x3c95fd,_0x1e39eb-0x59f);}function _0x5f1bc9(_0xd544a0,_0x2d02ea){return _0x9b7c55(_0x2d02ea,_0xd544a0- -0x402);}super(_0x5c362b),this['_setOptionsHook'](_0x5c362b),this['canvas']=null,_0x5c362b['colors']&&_0x5c362b[_0x216630(0x476,0x412)]&&(this[_0x5f1bc9(-0x10e,-0x106)]=new mars3d__namespace[(_0x216630(0x416,0x3ef))](_0x5c362b));}['_setOptionsHook'](_0x324d1e,_0x24c1c2){this[_0x1d3ecc(0x449,0x43d)]=0x3e8/(_0x324d1e['frameRate']||0xa);function _0x1d3ecc(_0x2473d0,_0x4cff94){return _0x164541(_0x2473d0,_0x4cff94-0x5b9);}this['_pointerEvents']=this['options']['pointerEvents']??![],this[_0x94fd6(0x2ff,0x2eb)]=_0x324d1e['color']||'#ffffff',this[_0x94fd6(0x2d0,0x2fe)]=_0x324d1e['lineWidth']||0x1,this['fixedHeight']=_0x324d1e['fixedHeight']??0x0;function _0x94fd6(_0x44674e,_0x33f075){return _0x164541(_0x44674e,_0x33f075-0x436);}this['flipY']=_0x324d1e[_0x1d3ecc(0x50a,0x4b2)]??![],this['windField']&&this[_0x1d3ecc(0x490,0x4cd)]['setOptions'](_0x324d1e);}get[_0x9b7c55(0x25c,0x2bd)](){return this['canvas'];}get[_0x164541(-0x1b0,-0x199)](){return this['_map']['scene']['canvas']['clientWidth'];}get['canvasHeight'](){return this['_map']['scene']['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x9b7c55(0x3cd,0x35f)](_0x131c90){this[_0x41b2d4(0x4bd,0x4c4)]=_0x131c90;function _0x314530(_0x2e067e,_0x59af17){return _0x164541(_0x59af17,_0x2e067e- -0x127);}if(!this[_0x314530(-0x281,-0x2a6)])return;function _0x41b2d4(_0x508194,_0x34199d){return _0x9b7c55(_0x508194,_0x34199d-0x1ce);}_0x131c90?this['canvas']['style']['pointer-events']='all':this['canvas']['style'][_0x41b2d4(0x4c6,0x4ee)]='none';}get['particlesNumber'](){return this['options']['particlesNumber'];}set['particlesNumber'](_0x560e28){this['options']['particlesNumber']=_0x560e28;function _0x4bf7b4(_0x281f73,_0x31da03){return _0x9b7c55(_0x31da03,_0x281f73- -0x21c);}clearTimeout(this[_0x4bf7b4(0x84,0x55)]),this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x3014e4(_0x1397c5,_0x3d5e4f){return _0x9b7c55(_0x3d5e4f,_0x1397c5- -0x222);}function _0x1fd0f3(_0x5c86a2,_0x48b7e7){return _0x164541(_0x48b7e7,_0x5c86a2-0x47a);}return this[_0x1fd0f3(0x2be,0x259)][_0x1fd0f3(0x33e,0x32e)];}set['speedRate'](_0x369551){function _0x38f846(_0x23bc6b,_0x5b3b9a){return _0x9b7c55(_0x23bc6b,_0x5b3b9a- -0x151);}this[_0x38f846(0x1dd,0x162)]['speedRate']=_0x369551,this['windField']&&(this['windField']['speedRate']=_0x369551);}get[_0x9b7c55(0x3bb,0x387)](){return this['options']['maxAge'];}set['maxAge'](_0x1c950f){this['options']['maxAge']=_0x1c950f;function _0x40ca42(_0x1094ba,_0x48b86e){return _0x164541(_0x48b86e,_0x1094ba-0x5f7);}this['windField']&&(this['windField'][_0x40ca42(0x50f,0x4ef)]=_0x1c950f);}get[_0x164541(-0xb1,-0xea)](){function _0x58b5da(_0xca5de2,_0x1fa7e7){return _0x164541(_0x1fa7e7,_0xca5de2- -0x31);}return this[_0x58b5da(-0x137,-0x18c)];}set['data'](_0x3a5312){this['setData'](_0x3a5312);}get['rectangle'](){let _0x5b8fa7=this['windData']['xmin'],_0x31f290=this['windData']['xmax'];function _0x43b756(_0x58f301,_0x1f4e06){return _0x164541(_0x58f301,_0x1f4e06-0x5a3);}let _0x300c4a=this['windData']['ymin'],_0x10d841=this[_0x43b756(0x4a1,0x49d)][_0x5ab0eb(0x4f0,0x52b)];_0x31f290>=0x167&&_0x5b8fa7===0x0&&(_0x5b8fa7=-0xb4,_0x31f290=0xb4);_0x5b8fa7=Math[_0x43b756(0x50e,0x4ac)](_0x5b8fa7,-0xb4);function _0x5ab0eb(_0x30f5c0,_0x35c7c8){return _0x164541(_0x35c7c8,_0x30f5c0-0x607);}return _0x31f290=Math[_0x5ab0eb(0x4ee,0x548)](_0x31f290,0xb4),_0x300c4a=Math['max'](_0x300c4a,-0x5a),_0x10d841=Math[_0x43b756(0x49c,0x48a)](_0x10d841,0x5a),Cesium[_0x43b756(0x435,0x3d3)]['fromDegrees'](_0x5b8fa7,_0x300c4a,_0x31f290,_0x10d841);}[_0x164541(-0x1d7,-0x171)](_0x4bee8a){function _0x35afa7(_0x552ae5,_0x56ac96){return _0x164541(_0x56ac96,_0x552ae5-0x4b7);}function _0x2c1414(_0x1cd993,_0x157711){return _0x164541(_0x1cd993,_0x157711-0x595);}_0x4bee8a?this[_0x2c1414(0x40d,0x45c)]():(this[_0x35afa7(0x3b1,0x426)]&&(this['options']['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x4fcbac(_0x4afb42,_0x83a373){return _0x164541(_0x4afb42,_0x83a373- -0x128);}function _0x1a2b7a(_0x35c582,_0x4501b0){return _0x164541(_0x35c582,_0x4501b0-0x2ae);}this['options'][_0x4fcbac(-0x2c5,-0x2b1)]?this[_0x4fcbac(-0x288,-0x2ac)]():this[_0x1a2b7a(0x163,0x1c2)]=new CanvasWindField(this[_0x1a2b7a(0x8c,0xf2)]);}['_addedHook'](){this['canvas']=this['_createCanvas']();function _0x55b8da(_0x2de554,_0x1170cb){return _0x9b7c55(_0x2de554,_0x1170cb- -0x16c);}const _0x463195={};function _0x4263b7(_0xe988f3,_0x4fb06e){return _0x9b7c55(_0xe988f3,_0x4fb06e- -0x3b9);}_0x463195['willReadFrequently']=!![],this[_0x55b8da(0x10e,0x132)]=this[_0x4263b7(-0x104,-0xa4)]['getContext']('2d',_0x463195),this[_0x4263b7(-0x135,-0x112)](),this[_0x4263b7(-0x189,-0x106)]['data']&&this['setData'](this['options']['data']);}['_removedHook'](){this['clear'](),this['unbindEvent'](),this['canvas']&&(this['_map']['container']['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x3d19c2=mars3d__namespace[_0x15c637(-0x170,-0x124)]['create']('canvas','mars3d-canvasWind',this['_map'][_0x15c637(-0xd3,-0x65)]);function _0x36ff5e(_0x1f16e3,_0x4f139a){return _0x9b7c55(_0x1f16e3,_0x4f139a-0x18b);}_0x3d19c2[_0x36ff5e(0x460,0x47a)]['position']='absolute',_0x3d19c2['style'][_0x36ff5e(0x49a,0x4d2)]='0px',_0x3d19c2['style']['left']=_0x15c637(-0xf0,-0xc0),_0x3d19c2['style']['width']=this['_map'][_0x36ff5e(0x52f,0x4ac)][_0x36ff5e(0x4c9,0x4a0)]['clientWidth']+'px',_0x3d19c2['style']['height']=this[_0x15c637(-0x118,-0x9b)]['scene']['canvas']['clientHeight']+'px',_0x3d19c2['style'][_0x15c637(-0xcc,-0x52)]=this['_pointerEvents']?_0x36ff5e(0x3d7,0x421):'none';function _0x15c637(_0xea1d07,_0x74841b){return _0x9b7c55(_0xea1d07,_0x74841b- -0x3b1);}return _0x3d19c2['style'][_0x36ff5e(0x4b3,0x45b)]=this['options'][_0x36ff5e(0x3de,0x45b)]??0x9,_0x3d19c2[_0x36ff5e(0x397,0x417)]=this['_map']['scene']['canvas']['clientWidth'],_0x3d19c2['height']=this['_map']['scene'][_0x36ff5e(0x4e2,0x4a0)][_0x15c637(-0x14,-0x3b)],_0x3d19c2;}['resize'](){function _0x23bec1(_0x514faf,_0x37d289){return _0x164541(_0x514faf,_0x37d289- -0x31);}function _0x3e0357(_0x3c8df5,_0x683776){return _0x164541(_0x3c8df5,_0x683776-0x395);}this['canvas']&&(this['canvas'][_0x23bec1(-0x13e,-0x1b1)]['width']=this['_map']['scene']['canvas'][_0x23bec1(-0x14f,-0x145)]+'px',this[_0x3e0357(0x2ad,0x23b)][_0x23bec1(-0x1ba,-0x1b1)][_0x3e0357(0x1cd,0x255)]=this['_map']['scene'][_0x3e0357(0x23f,0x23b)]['clientHeight']+'px',this[_0x23bec1(-0x174,-0x18b)][_0x23bec1(-0x241,-0x214)]=this['_map'][_0x23bec1(-0x146,-0x17f)]['canvas'][_0x3e0357(0x2d9,0x281)],this['canvas']['height']=this['_map']['scene'][_0x3e0357(0x231,0x23b)][_0x3e0357(0x24d,0x29c)]);}['bindEvent'](){const _0x174913=this;let _0xcc24ce=Date['now']();function _0x5e02bf(_0x3681a2,_0x58e2c4){return _0x9b7c55(_0x58e2c4,_0x3681a2- -0x274);}(function _0x1d3286(){if(_0x174913[_0x54d675(-0x184,-0x179)])return;function _0x54d675(_0xf064f7,_0x39d39c){return _0x540e(_0xf064f7- -0x2c8,_0x39d39c);}_0x174913['_animateFrame']=window['requestAnimationFrame'](_0x1d3286);if(_0x174913['show']&&_0x174913['windField']){const _0x598824=Date['now'](),_0x29a14c=_0x598824-_0xcc24ce;_0x29a14c>_0x174913['frameTime']&&(_0xcc24ce=_0x598824-_0x29a14c%_0x174913['frameTime'],_0x174913['update']());}}(),window['addEventListener'](_0x5e02bf(0xf3,0x8a),this[_0x3107ce(0x297,0x267)]['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![]);function _0x3107ce(_0x3d88a4,_0x3fea26){return _0x164541(_0x3d88a4,_0x3fea26-0x36f);}this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x5e02bf(0x37,0x70)][_0x5e02bf(0x46,0xba)],this[_0x5e02bf(0x7a,0xdb)],this),this[_0x5e02bf(0xa2,0x69)]['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this));}['unbindEvent'](){window['cancelAnimationFrame'](this['_animateFrame']),delete this['_animateFrame'];function _0x1b574f(_0x53722e,_0x11c7a1){return _0x164541(_0x53722e,_0x11c7a1-0x11b);}window[_0x3f5b1e(0x2a9,0x26e)]('resize',this[_0x3f5b1e(0x2de,0x259)]);function _0x3f5b1e(_0x5e2d37,_0x5e045f){return _0x164541(_0x5e045f,_0x5e2d37-0x3e6);}this[_0x1b574f(-0x2f,-0xa1)]['mouseHidden']&&(this[_0x3f5b1e(0x28d,0x272)]['off'](mars3d__namespace['EventType']['wheel'],this[_0x1b574f(0x7d,0x30)],this),this['_map']['off'](mars3d__namespace[_0x1b574f(-0xf7,-0xa9)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x3f5b1e(0x202,0x1fa)](mars3d__namespace['EventType'][_0x1b574f(0x3a,0x3)],this['_onMouseUpEvent'],this),this[_0x1b574f(0x45,-0x3e)]['off'](mars3d__namespace['EventType'][_0x3f5b1e(0x2c4,0x244)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x2a78cb){function _0x230790(_0xc8331f,_0x5bfa59){return _0x164541(_0x5bfa59,_0xc8331f-0x152);}clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this[_0x3bc6bd(0x309,0x375)][_0x230790(-0x2e,0x1d)][_0x230790(0x40,0x94)]='hidden';function _0x3bc6bd(_0x5bf29e,_0xe490e6){return _0x9b7c55(_0xe490e6,_0x5bf29e- -0xc);}this['refreshTimer']=setTimeout(()=>{if(!this[_0x149012(-0x3c,-0x3)])return;function _0x149012(_0xdf8c29,_0x167db0){return _0x3bc6bd(_0xdf8c29- -0x394,_0x167db0);}this['redraw']();function _0x594297(_0x3b959b,_0x1cd6be){return _0x3bc6bd(_0x3b959b- -0x7b,_0x1cd6be);}this[_0x594297(0x28e,0x252)][_0x149012(-0xb1,-0xf0)][_0x149012(-0x43,-0xc3)]='visible';},0xc8);}[_0x164541(-0x107,-0x181)](_0x2cb651){function _0xfa26e5(_0x1f4cc7,_0xce6578){return _0x9b7c55(_0x1f4cc7,_0xce6578- -0x53e);}this[_0xfa26e5(-0x2f0,-0x288)]=!![];function _0x7af626(_0x247274,_0x33d7cf){return _0x164541(_0x33d7cf,_0x247274-0x324);}this[_0x7af626(0x1cb,0x1e5)]['off'](mars3d__namespace['EventType'][_0xfa26e5(-0x19f,-0x1f1)],this[_0x7af626(0x230,0x22b)],this),this[_0xfa26e5(-0x243,-0x228)]['on'](mars3d__namespace['EventType']['mouseMove'],this[_0x7af626(0x230,0x1cc)],this);}[_0x164541(-0x161,-0xf4)](_0x12f84){function _0x31e968(_0x264750,_0x7e66a5){return _0x164541(_0x7e66a5,_0x264750-0x543);}if(!this['show']||!this['canvas'])return;function _0x5b1d27(_0x172324,_0x457ca2){return _0x9b7c55(_0x457ca2,_0x172324- -0x1fe);}this[_0x31e968(0x38a,0x34d)]&&(this[_0x5b1d27(0x117,0x154)][_0x31e968(0x3c3,0x343)][_0x31e968(0x431,0x411)]=_0x31e968(0x43e,0x43b),this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x37437d){function _0x4fb767(_0x267dcb,_0x326d79){return _0x9b7c55(_0x267dcb,_0x326d79- -0x36a);}if(!this[_0xac4067(0x223,0x231)]||!this['canvas'])return;this[_0x4fb767(0x2a,-0x54)]['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x4fb767(0x94,0x11)],this);this['mouse_down']&&this['mouse_move']&&this['redraw']();function _0xac4067(_0x359882,_0x491751){return _0x164541(_0x359882,_0x491751-0x33c);}this[_0xac4067(0x1e9,0x1e2)]['style']['visibility']='visible',this['mouse_down']=![],this['mouse_move']=![];}[_0x164541(-0x112,-0x14c)](_0x2f4979){this[_0x2ace28(-0x139,-0x10b)](),this[_0x44405c(0x264,0x23c)]=_0x2f4979;function _0x44405c(_0x32c4dc,_0x43815d){return _0x164541(_0x32c4dc,_0x43815d-0x342);}function _0x2ace28(_0x35ade4,_0x161e7e){return _0x9b7c55(_0x161e7e,_0x35ade4- -0x4c9);}this[_0x2ace28(-0x146,-0x122)][_0x2ace28(-0x147,-0x1aa)](_0x2f4979),this['redraw']();}['redraw'](){if(!this['show'])return;function _0x32f14f(_0x314a35,_0x444461){return _0x164541(_0x314a35,_0x444461-0x63f);}function _0x485e3e(_0x4bc932,_0x34de84){return _0x164541(_0x34de84,_0x4bc932-0xea);}this['windField'][_0x485e3e(-0xba,-0xf0)](this['options']),this[_0x485e3e(-0x2c,-0x2f)]();}[_0x9b7c55(0x2d0,0x359)](){function _0x1324f3(_0x5d0d7f,_0x5c4d5a){return _0x9b7c55(_0x5d0d7f,_0x5c4d5a- -0x2ac);}if(this[_0x3bde4c(-0x256,-0x2d2)])return;function _0x3bde4c(_0x50b504,_0x47fb5a){return _0x164541(_0x47fb5a,_0x50b504- -0xe0);}this['_updateIng']=!![];if(this[_0x3bde4c(-0x269,-0x2d3)])this['windField']['update']();else{const _0x4cd5cc=this[_0x1324f3(0x53,0xd7)]['getParticles']();this['_drawLines'](_0x4cd5cc);}this['_updateIng']=![];}[_0x9b7c55(0x264,0x2e3)](_0x1579e6){this[_0x24d3a2(0x364,0x399)]=_0x1579e6,this[_0x24d3a2(0x2c8,0x326)][_0x24d3a2(0x41d,0x3b8)]='destination-in',this[_0x4592c4(0x352,0x330)]['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']);function _0x4592c4(_0x5d29b8,_0x1d5ce9){return _0x164541(_0x5d29b8,_0x1d5ce9-0x501);}function _0x24d3a2(_0x1b32ac,_0x27b983){return _0x9b7c55(_0x1b32ac,_0x27b983-0x88);}this[_0x24d3a2(0x3a3,0x326)]['globalCompositeOperation']=_0x24d3a2(0x2f6,0x362),this['canvasContext'][_0x24d3a2(0x364,0x3b4)]=0.9;const _0x339138=this[_0x24d3a2(0x378,0x39e)]['scene']['mode']!==Cesium[_0x24d3a2(0x3b3,0x3fa)]['SCENE3D'],_0x294908=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x1daf20=0x0,_0x932c8e=_0x1579e6['length'];_0x1daf20<_0x932c8e;_0x1daf20++){const _0xb52d6c=_0x1579e6[_0x1daf20],_0x276e9e=this['_tomap'](_0xb52d6c,_0xb52d6c['lng'],_0xb52d6c['lat'],_0xb52d6c[_0x24d3a2(0x293,0x304)]),_0x46e2b6=this[_0x24d3a2(0x416,0x3bd)](_0xb52d6c,_0xb52d6c[_0x24d3a2(0x365,0x33a)],_0xb52d6c[_0x4592c4(0x367,0x3bb)],_0xb52d6c['talt']);if(!_0x276e9e||!_0x46e2b6)continue;if(_0x339138&&Math['abs'](_0x276e9e[0x0]-_0x46e2b6[0x0])>=_0x294908)continue;this[_0x4592c4(0x38e,0x330)][_0x4592c4(0x3d7,0x398)](),this['canvasContext'][_0x24d3a2(0x3ab,0x3bf)]=this['lineWidth'],this[_0x24d3a2(0x386,0x326)]['strokeStyle']=this['_colorRamp'][_0x4592c4(0x34f,0x349)](_0xb52d6c['speed']),this[_0x24d3a2(0x2bb,0x326)]['moveTo'](_0x276e9e[0x0],_0x276e9e[0x1]),this[_0x24d3a2(0x335,0x326)]['lineTo'](_0x46e2b6[0x0],_0x46e2b6[0x1]),this[_0x24d3a2(0x3aa,0x326)]['stroke']();}else{this['canvasContext'][_0x4592c4(0x3a5,0x398)](),this[_0x4592c4(0x31c,0x330)]['lineWidth']=this[_0x24d3a2(0x429,0x3bf)],this['canvasContext']['strokeStyle']=this['color'];for(let _0xd92ba5=0x0,_0x15ddd8=_0x1579e6['length'];_0xd92ba5<_0x15ddd8;_0xd92ba5++){const _0xb2b55a=_0x1579e6[_0xd92ba5],_0x2801e4=this['_tomap'](_0xb2b55a,_0xb2b55a[_0x4592c4(0x2e0,0x364)],_0xb2b55a['lat'],_0xb2b55a[_0x4592c4(0x35d,0x30e)]),_0x140c7d=this[_0x24d3a2(0x37c,0x3bd)](_0xb2b55a,_0xb2b55a['tlng'],_0xb2b55a['tlat'],_0xb2b55a['talt']);if(!_0x2801e4||!_0x140c7d)continue;if(_0x339138&&Math['abs'](_0x2801e4[0x0]-_0x140c7d[0x0])>=_0x294908)continue;this['canvasContext'][_0x4592c4(0x308,0x35f)](_0x2801e4[0x0],_0x2801e4[0x1]),this['canvasContext']['lineTo'](_0x140c7d[0x0],_0x140c7d[0x1]);}this[_0x24d3a2(0x2df,0x326)][_0x4592c4(0x3d4,0x3b7)]();}}['_tomap'](_0x26946e,_0x166ddc,_0xdc5de7,_0x493b5e){const _0x2bdea5=Cesium[_0xc044d2(-0xa1,-0xed)][_0x2b36eb(0x49c,0x420)](_0x166ddc,_0xdc5de7,_0x493b5e??this[_0x2b36eb(0x532,0x51d)]);function _0xc044d2(_0xec8f71,_0x549142){return _0x164541(_0x549142,_0xec8f71-0x11e);}const _0x1f50ee=this[_0x2b36eb(0x4f4,0x4b2)][_0x2b36eb(0x4a8,0x4bd)];if(_0x1f50ee['mode']===Cesium['SceneMode'][_0x2b36eb(0x4de,0x4c3)]){const _0x38bc8b=new Cesium['EllipsoidalOccluder'](_0x1f50ee['globe'][_0x2b36eb(0x452,0x496)],_0x1f50ee['camera']['positionWC']),_0x54d940=_0x38bc8b['isPointVisible'](_0x2bdea5);if(!_0x54d940)return _0x26946e[_0xc044d2(-0xb0,-0x136)]=0x0,null;}const _0x3987ed=mars3d__namespace[_0xc044d2(-0x3,0x2e)][_0xc044d2(-0x78,-0xa1)](this['_map'][_0x2b36eb(0x4e5,0x4bd)],_0x2bdea5);function _0x2b36eb(_0x3954bd,_0x43b841){return _0x9b7c55(_0x3954bd,_0x43b841-0x19c);}return _0x3987ed?[_0x3987ed['x'],_0x3987ed['y']]:null;}[_0x9b7c55(0x418,0x390)](){function _0x5087c1(_0x30ce79,_0x138448){return _0x9b7c55(_0x30ce79,_0x138448- -0x251);}function _0x1fab7f(_0x27cb96,_0x1912a7){return _0x9b7c55(_0x1912a7,_0x27cb96- -0x1e0);}this[_0x5087c1(0x175,0x132)]['clear'](),delete this[_0x1fab7f(0x189,0x20f)];}['initWorker'](){this[_0x29e707(0x289,0x2f6)]=new Worker(this['options']['worker']);function _0x29e707(_0xcb4edf,_0xee4e65){return _0x9b7c55(_0xcb4edf,_0xee4e65-0x10);}function _0x435cb9(_0xb223e7,_0x388abc){return _0x164541(_0x388abc,_0xb223e7-0x599);}this[_0x435cb9(0x410,0x438)][_0x435cb9(0x44c,0x421)]=_0x1181c4=>{this[_0x39277e(-0x23f,-0x294)](_0x1181c4['data']['particles']);function _0x39277e(_0x31d166,_0x5ba5f2){return _0x435cb9(_0x31d166- -0x64c,_0x5ba5f2);}this['_updateIng2']=![];},this['windField']={'init':_0x190314=>{const _0x238904={};function _0x48692d(_0x2a8b4b,_0x52c22b){return _0x435cb9(_0x52c22b-0x7b,_0x2a8b4b);}_0x238904['type']='init',_0x238904['options']=_0x190314,this['worker'][_0x48692d(0x490,0x4f8)](_0x238904);},'setOptions':_0x131e8b=>{const _0x383e68={};function _0x482f7c(_0x5b3b77,_0x5b95e6){return _0x29e707(_0x5b95e6,_0x5b3b77-0x1ee);}_0x383e68['type']=_0x482f7c(0x4c9,0x478),_0x383e68['options']=_0x131e8b,this['worker']['postMessage'](_0x383e68);},'setDate':_0x20aecf=>{function _0x3c164a(_0x153642,_0x29f7c5){return _0x435cb9(_0x153642- -0x5c3,_0x29f7c5);}function _0x4d267f(_0x415dc2,_0x430694){return _0x29e707(_0x415dc2,_0x430694- -0x4bc);}const _0x513e65={};_0x513e65['type']='setDate',_0x513e65[_0x4d267f(-0xf6,-0x127)]=_0x20aecf,this[_0x4d267f(-0x210,-0x1c6)][_0x3c164a(-0x146,-0x174)](_0x513e65);},'update':()=>{if(this[_0x59a29e(-0x6c,0x4)])return;this['_updateIng2']=!![];const _0x26c111={};function _0x169e8c(_0x122a02,_0x535846){return _0x435cb9(_0x122a02- -0x2ae,_0x535846);}function _0x59a29e(_0x3d75b1,_0x341758){return _0x29e707(_0x3d75b1,_0x341758- -0x36a);}_0x26c111['type']='update',this[_0x59a29e(-0x12,-0x74)]['postMessage'](_0x26c111);},'clear':()=>{const _0x5ca464={};_0x5ca464['type']='clear',this['worker']['postMessage'](_0x5ca464);}},this[_0x29e707(0x3b1,0x393)][_0x29e707(0x308,0x32b)](this[_0x29e707(0x272,0x2c3)]);}}mars3d__namespace['LayerUtil'][_0x9b7c55(0x283,0x2e9)](_0x9b7c55(0x246,0x29d),CanvasWindLayer),mars3d__namespace['layer'][_0x9b7c55(0x25f,0x288)]=CanvasWindLayer;function _0x9b7c55(_0x6ba751,_0x515908){return _0x540e(_0x515908-0x1b9,_0x6ba751);}mars3d__namespace[_0x164541(-0xff,-0xfc)]=CanvasWindField,mars3d__namespace['Log'][_0x9b7c55(0x31b,0x308)]('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports[_0x9b7c55(0x346,0x373)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x164541(-0xd6,-0x158)]=WindUtil;const _0x23a177={};_0x23a177[_0x9b7c55(0x355,0x37d)]=!![],Object[_0x164541(-0x1a8,-0x1dd)](exports,'__esModule',_0x23a177);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.10.5",
3
+ "version": "3.10.7",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.10.5"
8
+ "mars3d": "~3.10.7"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"