mars3d-wind 3.9.11 → 3.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/mars3d-wind.js +4 -4
  2. package/package.json +2 -2
package/mars3d-wind.js CHANGED
@@ -1,15 +1,15 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.9.11
5
- * 编译日期:2025-06-10 18:08
4
+ * 版本信息:v3.10.0
5
+ * 编译日期:2025-07-06 18:32
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
- * 使用单位:火星科技免费公开版 ,2025-02-01
7
+ * 使用单位:火星科技免费公开版 ,2025-07-01
8
8
  */
9
9
  (function (global, factory) {
10
10
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, (window.mars3d || require('mars3d'))) :
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';(function(_0x145efa,_0x1a744b){const _0xd44991=_0x145efa();function _0x5a1b9b(_0x151065,_0x2df182){return _0x3c8f(_0x151065- -0x6d,_0x2df182);}function _0x583dc4(_0x3edd30,_0xf4845f){return _0x3c8f(_0xf4845f- -0x2f8,_0x3edd30);}while(!![]){try{const _0x1118db=-parseInt(_0x583dc4(-0x146,-0xcb))/0x1*(parseInt(_0x583dc4(-0x1a,-0x6e))/0x2)+-parseInt(_0x5a1b9b(0x118,0xac))/0x3+-parseInt(_0x5a1b9b(0x165,0x1a8))/0x4+parseInt(_0x5a1b9b(0x122,0xdb))/0x5*(parseInt(_0x583dc4(-0x105,-0x17d))/0x6)+parseInt(_0x583dc4(-0x9b,-0x125))/0x7*(-parseInt(_0x5a1b9b(0x151,0xe8))/0x8)+-parseInt(_0x583dc4(-0x1a6,-0x16f))/0x9*(-parseInt(_0x583dc4(-0x12d,-0x151))/0xa)+parseInt(_0x5a1b9b(0x173,0x150))/0xb;if(_0x1118db===_0x1a744b)break;else _0xd44991['push'](_0xd44991['shift']());}catch(_0x2fdd76){_0xd44991['push'](_0xd44991['shift']());}}}(_0xaf2d,0x8133b));function _interopNamespace(_0x537cf5){if(_0x537cf5&&_0x537cf5[_0xdd219e(0x58d,0x615)])return _0x537cf5;var _0x151859=Object['create'](null);_0x537cf5&&Object['keys'](_0x537cf5)['forEach'](function(_0x217ad4){function _0x5d31bb(_0x216599,_0x420191){return _0xdd219e(_0x216599- -0x260,_0x420191);}function _0x4d81b7(_0x280919,_0x3824a1){return _0xdd219e(_0x280919- -0x60,_0x3824a1);}if(_0x217ad4!==_0x5d31bb(0x258,0x21a)){var _0x4b03fb=Object[_0x5d31bb(0x244,0x207)](_0x537cf5,_0x217ad4);Object['defineProperty'](_0x151859,_0x217ad4,_0x4b03fb['get']?_0x4b03fb:{'enumerable':!![],'get':function(){return _0x537cf5[_0x217ad4];}});}});_0x151859['default']=_0x537cf5;function _0xdd219e(_0x5cc1e8,_0xe0546f){return _0x3c8f(_0x5cc1e8-0x319,_0xe0546f);}return _0x151859;}function _0x3c8f(_0x277ad1,_0x5ecabf){const _0xaf2d72=_0xaf2d();return _0x3c8f=function(_0x3c8f9c,_0x2293f8){_0x3c8f9c=_0x3c8f9c-0x177;let _0x2cddcd=_0xaf2d72[_0x3c8f9c];return _0x2cddcd;},_0x3c8f(_0x277ad1,_0x5ecabf);}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x2a1747,_0x49e8a1){const _0x31bebe=_0x2a1747*Math['cos'](Cesium$2['Math']['toRadians'](_0x49e8a1));return _0x31bebe;}function getV(_0x3c0943,_0x1d3d61){const _0x1ca738=_0x3c0943*Math['sin'](Cesium$2[_0x4d6d11(0x32,0xa9)]['toRadians'](_0x1d3d61));function _0x4d6d11(_0x23bf9c,_0x585f5d){return _0x3c8f(_0x585f5d- -0x1d1,_0x23bf9c);}return _0x1ca738;}function getSpeed(_0x3bc559,_0x1cfeda){const _0x51130f=Math[_0x576dd0(-0x16e,-0x164)](Math['pow'](_0x3bc559,0x2)+Math['pow'](_0x1cfeda,0x2));function _0x576dd0(_0x33d864,_0x406461){return _0x3c8f(_0x33d864- -0x3ba,_0x406461);}return _0x51130f;}function getDirection(_0x3d9648,_0x32b4dd){function _0x11b131(_0x10cfd5,_0x59cc26){return _0x3c8f(_0x10cfd5- -0x1c4,_0x59cc26);}let _0x5b99d7=Cesium$2[_0x45cf14(0x309,0x343)][_0x11b131(0x77,-0x7)](Math['atan2'](_0x32b4dd,_0x3d9648));_0x5b99d7+=_0x5b99d7<0x0?0x168:0x0;function _0x45cf14(_0x2ffa12,_0x172c06){return _0x3c8f(_0x2ffa12-0x8f,_0x172c06);}return _0x5b99d7;}const _0x55bc58={};_0x55bc58[_0x2abdaa(0x537,0x561)]=null,_0x55bc58['getU']=getU,_0x55bc58['getV']=getV,_0x55bc58['getSpeed']=getSpeed,_0x55bc58[_0x2abdaa(0x52d,0x528)]=getDirection;function _0xaf2d(){const _0x5a4b0b=['createCommand','auto','tlng','minificationFilter','canvasWidth','19303tYeBus','OPAQUE','tlat','dropRate','absolute','postProcessingPosition','vdata','xmax','componentDatatype','setOptions','options','#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','_setOptionsHook','createRenderingFramebuffers','toDegrees','visible','_removedHook','shaderProgram','getDirection','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','blendEquation','max\x20is\x20undefined,\x20calculate\x20max','createRenderingTextures','createSegmentsGeometry','mode','createComputingPrimitives','viewport','getParticles','windField','frameState.commandList\x20is\x20undefined','getSegmentDrawFragmentShader','sqrt','_showHook','canvasContext','data','wind','bounds','drawingBufferWidth','context','useViewerBounds','_updateIng2','forEach','preExecute','Rectangle','CanvasWindField','hidden','particlesNumber','clientWidth','currentParticlesPosition','init','_colorRamp','getPrimitives','worker','_pointerEvents','vmin','isDestroy','container','alt','UNSIGNED_INT','_calc_speedRate','getPostProcessingPositionShader','speedRate','array','_onMouseUpEvent','isDestroyed','particlesTextures','EventType','fromCache','#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','willReadFrequently','log','__esModule','samplingWindow','viewerParameters','_calcUV','__proto__','windTextures','Math','_bilinearInterpolation','calculateSpeed','LINEAR','visibility','value','flatMap','umin','postMessage','outputTexture','camera','displayRange','LayerUtil','unbindEvent','object','commandList','2cbiGcZ','getUVByPoint','clear','computing','CanvasWindLayer','BaseLayer','canvasWind','resize','mouse_move','FLOAT','framebuffers','_drawLines','48pYPJrm','FUNC_ADD','max','speed','fill','abs','Cesium','fromGeometry','fromDegrees','magnificationFilter','1284021hfutws','scene','segmentsDepth','pixelFormat','855PaBrHH','Compute','getOwnPropertyDescriptor','frameRate','_canrefresh','floor','540835RlfjJd','interpolated','lng','fragmentShaderSource','particleSystem','morphComplete','_onMapWhellEvent','height','primitiveType','colorTable','fixedHeight','redraw','defineProperty','_updateIng','maxAge','colorTextures','default','requestAnimationFrame','createPrimitives','rendering','bind','toGridXY','globe','destroy','7010dRfExR','canvas','mouse_down','west','destination-in','prototype','grid','primitives','blending','pointerEvents','framebuffer','processWindData','_randomParticle','createWindTextures','Cartesian2','type','createRawRenderState','_onMouseMoveEvent','nextParticlesPosition','stringify','globalCompositeOperation','RGBA','changeOptions','25832FOfRti','_addedHook','off','previousParticlesPosition','getContext','south','EllipsoidalOccluder','lat','autoClear','strokeStyle','_tomap','round','particles','vertexShaderSource','CLAMP_TO_EDGE','blendFuncDestination','color','rows','componentsPerAttribute','fromCssColorString','3794528xlAarS','1008JvqHUg','Unknown\x20command\x20type','commandType','DomUtil','segments','PointTrans','uniformMap','north','setData','ONE_MINUS_SRC_ALPHA','removeEventListener','call','_createCanvas','16040178oGVgCx','age','getRandomLatLng','number','frameRateAdjustment','getDataAtLonLat','colors','fillRect','ymin','getSegmentDrawVertexShader','getCalculateSpeedShader','register','windData','MIN_VALUE','width','show','updatePosition','dynamic','min','requestRender','applyViewerParameters','initWorker','getUpdatePositionShader','lineWidth','ymax','push','isDynamic','values','update','addEventListener','ellipsoid','clientHeight','#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','getUVByXY','NEAREST','Cartesian3','blue','_map','updateViewerParameters','createParticlesTextures','sources','sceneMode','domain','speedFactor','cols','commandToExecute','reCreateWindTextures','textures','lineTo','mouseMove','clearFramebuffers','wheel','original','drawingBufferHeight','east','createColorTableTexture','layer','segmentsColor','updateOptions','style','add','particlesSpeed','xmin','length','geometry','particlesTextureSize','onColorTableChange','canvasHeight','vertexArray','flipY','bufferUsage','clearCommand'];_0xaf2d=function(){return _0x5a4b0b;};return _0xaf2d();}var WindUtil=_0x55bc58,updatePositionShader=_0xf37596(0x3a0,0x355),calculateSpeedShader=_0xf37596(0x341,0x3c6),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=_0x2abdaa(0x557,0x521);function _0x2abdaa(_0xb0fb9a,_0x21edeb){return _0x3c8f(_0x21edeb-0x2e9,_0xb0fb9a);}const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x2abdaa(0x497,0x46a)];class ShaderManager{static[_0x2abdaa(0x554,0x4d3)](){const _0x25ba5f={};return _0x25ba5f['sources']=[calculateSpeedShader],new ShaderSource$1(_0x25ba5f);}static['getUpdatePositionShader'](){const _0x62650e={};return _0x62650e['sources']=[updatePositionShader],new ShaderSource$1(_0x62650e);}static[_0x2abdaa(0x494,0x4d2)](){const _0x40cc15={};function _0x171699(_0x12bb2d,_0x1ce02c){return _0x2abdaa(_0x1ce02c,_0x12bb2d- -0x38e);}return _0x40cc15[_0x171699(0x163,0x14f)]=[renderParticlesVertexShader],new ShaderSource$1(_0x40cc15);}static[_0x2abdaa(0x4c5,0x534)](){const _0x38b5a2={};return _0x38b5a2['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x38b5a2);}static[_0x2abdaa(0x560,0x552)](){const _0x575e10={};return _0x575e10['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x575e10);}}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[_0x2abdaa(0x441,0x46a)];class CustomPrimitive{constructor(_0x281c19){this[_0x484ff5(0x42,0xaf)]=_0x281c19['commandType'],this[_0x484ff5(0xfa,0xfa)]=_0x281c19['geometry'],this['attributeLocations']=_0x281c19['attributeLocations'],this[_0x48f88e(0x1a2,0x135)]=_0x281c19['primitiveType'],this[_0x484ff5(0xc2,0xb3)]=_0x281c19['uniformMap']||{},this[_0x484ff5(0xb1,0xa5)]=_0x281c19[_0x484ff5(0xe9,0xa5)];function _0x48f88e(_0x1ed653,_0xaa5251){return _0x2abdaa(_0x1ed653,_0xaa5251- -0x34b);}this['fragmentShaderSource']=_0x281c19[_0x48f88e(0x10d,0x130)],this['rawRenderState']=_0x281c19['rawRenderState'],this['framebuffer']=_0x281c19['framebuffer'],this[_0x484ff5(0x1ce,0x15d)]=_0x281c19['outputTexture'];function _0x484ff5(_0x1cb16e,_0x195e02){return _0x2abdaa(_0x1cb16e,_0x195e02- -0x40f);}this[_0x484ff5(0x14,0xa0)]=_0x281c19[_0x48f88e(0x164,0x164)]??![],this[_0x48f88e(0x232,0x1f5)]=_0x281c19[_0x48f88e(0x1d7,0x1f5)],this['show']=!![],this[_0x48f88e(0x147,0x1ab)]=undefined,this[_0x484ff5(0x15e,0x101)]=undefined,this['isDynamic']=_0x281c19[_0x484ff5(0x74,0xd4)]??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0x48f88e(0x192,0x1cc)]}));}[_0x2abdaa(0x58e,0x511)](_0x303474){function _0x323c16(_0x4dd875,_0x4175f7){return _0xf37596(_0x4dd875,_0x4175f7- -0x3ee);}function _0x324f01(_0xe522f1,_0x114da8){return _0x2abdaa(_0x114da8,_0xe522f1- -0x1f7);}if(this['commandType']==='Draw'){const _0x634446={};_0x634446['context']=_0x303474,_0x634446[_0x324f01(0x312,0x34c)]=this['geometry'],_0x634446['attributeLocations']=this['attributeLocations'],_0x634446[_0x324f01(0x318,0x2af)]=BufferUsage$1['STATIC_DRAW'];const _0x5955ce=VertexArray$1['fromGeometry'](_0x634446),_0xdd5b4f={};_0xdd5b4f['context']=_0x303474,_0xdd5b4f[_0x324f01(0x2bd,0x2f4)]=this['vertexShaderSource'],_0xdd5b4f[_0x324f01(0x284,0x247)]=this[_0x323c16(-0xde,-0x107)],_0xdd5b4f['attributeLocations']=this['attributeLocations'];const _0x502056=ShaderProgram[_0x324f01(0x362,0x3c0)](_0xdd5b4f),_0x343de6=RenderState['fromCache'](this['rawRenderState']),_0x482c48={};return _0x482c48['owner']=this,_0x482c48[_0x323c16(-0x71,-0x75)]=_0x5955ce,_0x482c48['primitiveType']=this['primitiveType'],_0x482c48['modelMatrix']=Matrix4['IDENTITY'],_0x482c48['renderState']=_0x343de6,_0x482c48['shaderProgram']=_0x502056,_0x482c48[_0x324f01(0x2a3,0x2b6)]=this['framebuffer'],_0x482c48[_0x324f01(0x2cb,0x26c)]=this['uniformMap'],_0x482c48['pass']=Pass$1['OPAQUE'],new DrawCommand(_0x482c48);}else{if(this[_0x324f01(0x2c7,0x24f)]==='Compute'){const _0x4dc5d8={};return _0x4dc5d8['owner']=this,_0x4dc5d8['fragmentShaderSource']=this['fragmentShaderSource'],_0x4dc5d8[_0x324f01(0x2cb,0x319)]=this[_0x324f01(0x2cb,0x2ca)],_0x4dc5d8['outputTexture']=this['outputTexture'],_0x4dc5d8['persists']=!![],new ComputeCommand(_0x4dc5d8);}else throw new Error(_0x324f01(0x2c6,0x2bb));}}['setGeometry'](_0x5c9c79,_0x550018){this['geometry']=_0x550018;function _0x1b2622(_0x48c0d0,_0x2d010e){return _0xf37596(_0x48c0d0,_0x2d010e- -0x392);}defined(this[_0x1b2622(0x34,-0x30)])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x5c9c79,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x308596){if(!this[_0xd5a3bb(0x199,0x1de)]())return;function _0xd5a3bb(_0xcc5bff,_0xd46cee){return _0xf37596(_0xd46cee,_0xcc5bff- -0x1b6);}if(!this[_0xd5a3bb(0x18e,0x15e)]||!defined(_0x308596))return;!defined(this['commandToExecute'])&&(this[_0xd5a3bb(0x1ac,0x143)]=this['createCommand'](_0x308596[_0xd5a3bb(0x1f2,0x17f)]));function _0x21c4d2(_0x50bc7b,_0x4e4223){return _0xf37596(_0x4e4223,_0x50bc7b-0x36);}defined(this[_0x21c4d2(0x3e2,0x438)])&&this[_0xd5a3bb(0x1f6,0x227)]();if(!_0x308596['commandList']){console['warn'](_0xd5a3bb(0x1e9,0x263));return;}defined(this[_0xd5a3bb(0x1c6,0x1f6)])&&_0x308596['commandList']['push'](this['clearCommand']),defined(this[_0xd5a3bb(0x1ac,0x1b7)])&&_0x308596[_0x21c4d2(0x414,0x38e)]['push'](this['commandToExecute']);}[_0x2abdaa(0x576,0x556)](){return![];}[_0x2abdaa(0x498,0x48f)](){if(defined(this['commandToExecute'])){var _0x38abf9;(_0x38abf9=this['commandToExecute']['shaderProgram'])===null||_0x38abf9===void 0x0||_0x38abf9['destroy'](),this['commandToExecute'][_0x379340(0x561,0x5c6)]=undefined;}function _0x379340(_0x5c1842,_0x4bb5a3){return _0xf37596(_0x5c1842,_0x4bb5a3-0x233);}return destroyObject(this);}}function deepMerge(_0x335ec3,_0xc6efe8){if(!_0x335ec3)return _0xc6efe8;if(!_0xc6efe8)return _0x335ec3;const _0x1c40e2={..._0xc6efe8};function _0x4b5dce(_0x3e78bc,_0x4b13c6){return _0xf37596(_0x4b13c6,_0x3e78bc- -0x4e2);}const _0x13c0f7=_0x1c40e2;for(const _0x238f88 in _0x335ec3){if(Object[_0x4b5dce(-0x1e1,-0x1d6)]['hasOwnProperty'][_0x43f5f6(0x196,0x140)](_0x335ec3,_0x238f88)){const _0x17dab0=_0x335ec3[_0x238f88],_0x6375a8=_0xc6efe8[_0x238f88];if(Array['isArray'](_0x17dab0)){_0x13c0f7[_0x238f88]=_0x17dab0['slice']();continue;}if(_0x17dab0&&typeof _0x17dab0===_0x43f5f6(0x240,0x21e)){_0x13c0f7[_0x238f88]=deepMerge(_0x17dab0,_0x6375a8||{});continue;}_0x17dab0!==undefined&&(_0x13c0f7[_0x238f88]=_0x17dab0);}}function _0x43f5f6(_0x46d7a1,_0x446491){return _0xf37596(_0x446491,_0x46d7a1- -0x19d);}return _0x13c0f7;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x395a18,_0x51c15b,_0x2c0b53,_0x377522,_0x124177){this['context']=_0x395a18;function _0x57bc17(_0x1e9ba7,_0xca0026){return _0xf37596(_0xca0026,_0x1e9ba7- -0x4f7);}this['options']=_0x2c0b53,this['viewerParameters']=_0x377522,this['windData']=_0x51c15b,this['frameRate']=0x3c,this[_0xa01fc9(0x24,0x91)]=0x1;const _0x2be0b8={};_0x2be0b8[_0x57bc17(-0x21c,-0x1d4)]=_0x124177,_0x2be0b8[_0xa01fc9(0xe8,0x122)]=0x1,_0x2be0b8['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x2be0b8),this['initFrameRate'](),this[_0xa01fc9(0xde,0x61)]();function _0xa01fc9(_0x4a1f27,_0x2b532b){return _0x2abdaa(_0x4a1f27,_0x2b532b- -0x43c);}this['createParticlesTextures'](),this[_0xa01fc9(0xe1,0xf3)]();}['initFrameRate'](){const _0x3e80b5=()=>{function _0x445be2(_0x3634e7,_0x20857e){return _0x3c8f(_0x20857e-0x387,_0x3634e7);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math[_0x445be2(0x4d4,0x504)](this['frameRate'],0x1));};_0x3e80b5();const _0x388450=setInterval(_0x3e80b5,0x3e8),_0x4f241f=this[_0x3994cc(0x1cc,0x216)]['bind'](this);function _0x3994cc(_0x5a64e4,_0xfb717f){return _0xf37596(_0x5a64e4,_0xfb717f- -0xe5);}function _0x119753(_0x3a0fdc,_0x50534e){return _0x2abdaa(_0x50534e,_0x3a0fdc- -0x154);}this[_0x119753(0x33b,0x352)]=()=>{clearInterval(_0x388450),_0x4f241f();};}['createWindTextures'](){const _0x452239={};function _0x5588cf(_0x494117,_0x2f1eee){return _0xf37596(_0x494117,_0x2f1eee- -0x457);}function _0x59668b(_0x2e2938,_0x4458e9){return _0x2abdaa(_0x2e2938,_0x4458e9- -0x6d0);}_0x452239[_0x59668b(-0x1b1,-0x1bc)]=TextureMinificationFilter$1[_0x59668b(-0x17c,-0x16a)],_0x452239[_0x59668b(-0x246,-0x263)]=TextureMagnificationFilter$1['LINEAR'];const _0x32038f={'context':this['context'],'width':this['windData'][_0x5588cf(-0xcf,-0x114)],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x59668b(-0x1f2,-0x1b0)]['flipY']??![],'sampler':new Sampler$1(_0x452239)};this['windTextures']={'U':new Texture$1({..._0x32038f,'source':{'arrayBufferView':new Float32Array(this[_0x59668b(-0x273,-0x1fb)]['u']['array'])}}),'V':new Texture$1({..._0x32038f,'source':{'arrayBufferView':new Float32Array(this[_0x59668b(-0x1e6,-0x1fb)]['v'][_0x5588cf(-0xe8,-0x97)])}})};}[_0xf37596(0x31b,0x35c)](){const _0x4b5ed6={};_0x4b5ed6['minificationFilter']=TextureMinificationFilter$1[_0x5846a8(-0x29,-0x19)];function _0x5846a8(_0xd632fb,_0x58328b){return _0xf37596(_0x58328b,_0xd632fb- -0x380);}_0x4b5ed6[_0x5846a8(-0xa7,-0xf1)]=TextureMagnificationFilter$1['NEAREST'];function _0x4b8a5c(_0x546b3f,_0x4f5076){return _0x2abdaa(_0x4f5076,_0x546b3f- -0x5d8);}const _0x50c276={'context':this['context'],'width':this[_0x5846a8(0xc,0x59)]['particlesTextureSize'],'height':this[_0x4b8a5c(-0xb8,-0x45)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x4b8a5c(-0xb8,-0x2e)]['particlesTextureSize']*this['options'][_0x5846a8(-0xa,0x4a)]*0x4)[_0x5846a8(-0xac,-0x11a)](0x0)},'sampler':new Sampler$1(_0x4b5ed6)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x50c276),'currentParticlesPosition':new Texture$1(_0x50c276),'nextParticlesPosition':new Texture$1(_0x50c276),'postProcessingPosition':new Texture$1(_0x50c276),'particlesSpeed':new Texture$1(_0x50c276)};}['destroyParticlesTextures'](){function _0x276fb6(_0x40090d,_0x8d261){return _0xf37596(_0x40090d,_0x8d261-0x47);}function _0x49d73f(_0x20fdad,_0x88c9fe){return _0xf37596(_0x88c9fe,_0x20fdad- -0x32b);}Object[_0x49d73f(0x25,0x11)](this[_0x276fb6(0x462,0x40a)])[_0x49d73f(0x80,0x85)](_0x4e5b5c=>_0x4e5b5c[_0x276fb6(0x391,0x342)]());}[_0x2abdaa(0x5a0,0x52f)](){function _0x12d50e(_0x392af0,_0xe63cde){return _0x2abdaa(_0xe63cde,_0x392af0- -0x102);}function _0x5809f4(_0x3e2337,_0x546d58){return _0x2abdaa(_0x546d58,_0x3e2337- -0x372);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x5809f4(0x101,0xe7),'uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x5809f4(0x163,0x112)]['u']['min'],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this['windData']['v'][_0x12d50e(0x3d9,0x3e0)],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData'][_0x12d50e(0x365,0x37c)]['min'],this['windData'][_0x12d50e(0x365,0x39b)][_0x12d50e(0x364,0x3a6)]),'currentParticlesPosition':()=>this[_0x5809f4(0x1e5,0x1a9)][_0x12d50e(0x444,0x444)],'speedScaleFactor':()=>{function _0x3b47d7(_0x404a94,_0x1d8f09){return _0x5809f4(_0x404a94- -0x34e,_0x1d8f09);}return(this['viewerParameters']['pixelSize']+0x32)*this['options'][_0x3b47d7(-0x1cc,-0x240)];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData']['width'],this[_0x5809f4(0x163,0x140)]['height']),'minimum':()=>new Cartesian2$1(this[_0x12d50e(0x3d3,0x389)]['bounds']['west'],this[_0x12d50e(0x3d3,0x356)]['bounds'][_0x12d50e(0x3aa,0x3ce)]),'maximum':()=>new Cartesian2$1(this['windData']['bounds']['east'],this['windData'][_0x5809f4(0x1c8,0x241)]['north'])},'fragmentShaderSource':ShaderManager[_0x5809f4(0x161,0x1a5)](),'outputTexture':this['particlesTextures'][_0x5809f4(0x194,0x1f1)],'preExecute':()=>{const _0x20a478=this[_0x4963ac(0x5ef,0x630)]['previousParticlesPosition'];this[_0x4963ac(0x5ef,0x665)][_0x773eee(-0x4d,0x1)]=this['particlesTextures']['currentParticlesPosition'];function _0x4963ac(_0x4e13c7,_0x18a88b){return _0x5809f4(_0x4e13c7-0x40a,_0x18a88b);}function _0x773eee(_0x4a83f9,_0x300595){return _0x5809f4(_0x4a83f9- -0x185,_0x300595);}this[_0x4963ac(0x5ef,0x58f)]['currentParticlesPosition']=this['particlesTextures'][_0x773eee(0x24,0x18)],this[_0x773eee(0x60,0xc8)][_0x4963ac(0x5b3,0x5ab)]=_0x20a478,this[_0x773eee(-0x60,-0x9e)][_0x773eee(0x6e,0xc8)][_0x773eee(-0x1,0x82)]&&(this['primitives']['calculateSpeed']['commandToExecute']['outputTexture']=this[_0x4963ac(0x5ef,0x590)]['particlesSpeed']);},'isDynamic':()=>this['options'][_0x12d50e(0x3d8,0x45a)]}),'updatePosition':new CustomPrimitive({'commandType':_0x12d50e(0x371,0x3e2),'uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x5809f4(0x1d4,0x1ee)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager[_0x5809f4(0x16d,0xf3)](),'outputTexture':this['particlesTextures'][_0x12d50e(0x3a0,0x39f)],'preExecute':()=>{function _0x44540e(_0x3c26ce,_0x51512d){return _0x12d50e(_0x51512d- -0x55d,_0x3c26ce);}function _0x22318b(_0x277aa9,_0x2b69e7){return _0x5809f4(_0x277aa9-0x65,_0x2b69e7);}this['primitives'][_0x44540e(-0x1c6,-0x186)]['commandToExecute']&&(this['primitives'][_0x22318b(0x1cc,0x1dd)]['commandToExecute']['outputTexture']=this[_0x22318b(0x24a,0x1d1)]['nextParticlesPosition']);},'isDynamic':()=>this['options'][_0x12d50e(0x3d8,0x3d3)]}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x5809f4(0x101,0xc3),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this[_0x12d50e(0x455,0x406)]['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this[_0x5809f4(0x1ed,0x1a5)]['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0x12d50e(0x3d3,0x383)][_0x5809f4(0x1c8,0x156)]['west'],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this[_0x12d50e(0x3d3,0x403)]['bounds']['south'],this['windData']['bounds'][_0x5809f4(0x151,0xc7)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options'][_0x5809f4(0x1a7,0x177)],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this['options'][_0x5809f4(0x1cb,0x175)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures'][_0x12d50e(0x419,0x3bf)],'preExecute':()=>{function _0xf4290b(_0x27b452,_0x4685f0){return _0x5809f4(_0x27b452-0x274,_0x4685f0);}function _0x337a61(_0x55117c,_0x3ccb37){return _0x5809f4(_0x55117c- -0x206,_0x3ccb37);}this[_0xf4290b(0x399,0x418)][_0xf4290b(0x41d,0x41a)]['commandToExecute']&&(this['primitives'][_0x337a61(-0x5d,-0xb7)]['commandToExecute']['outputTexture']=this[_0x337a61(-0x21,-0x7)]['postProcessingPosition']);},'isDynamic':()=>this['options'][_0x12d50e(0x3d8,0x354)]})};}['reCreateWindTextures'](){this[_0x41ecba(0x556,0x4fc)]['U']['destroy']();function _0x41ecba(_0x493e55,_0x4d4d69){return _0xf37596(_0x4d4d69,_0x493e55-0x188);}this['windTextures']['V']['destroy'](),this['createWindTextures']();}['updateWindData'](_0x5f2083){this['windData']=_0x5f2083;function _0x183904(_0x5e081f,_0x10aad1){return _0xf37596(_0x10aad1,_0x5e081f-0x9b);}this[_0x183904(0x3fe,0x3f9)]();}[_0xf37596(0x32c,0x36f)](_0x9da90a){function _0x1715ed(_0x195bb7,_0x450509){return _0xf37596(_0x450509,_0x195bb7- -0x4d6);}function _0x16e047(_0x39e888,_0x2be8da){return _0x2abdaa(_0x2be8da,_0x39e888- -0x4d0);}const _0x5ab1e6=_0x9da90a[_0x1715ed(-0x15c,-0x18d)]!==undefined&&_0x9da90a['flipY']!==this['options'][_0x1715ed(-0x15c,-0x1bf)];this['options']=deepMerge(_0x9da90a,this['options']),_0x5ab1e6&&this['reCreateWindTextures']();}[_0x2abdaa(0x4dd,0x49b)](_0x444df4){const {array:_0x5d15e1}=_0x444df4;let {min:_0x11b27b,max:_0x285b55}=_0x444df4;const _0x5ce6b9=new Float32Array(_0x5d15e1['length']);_0x11b27b===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x11b27b=Math['min'](..._0x5d15e1));_0x285b55===undefined&&(console['warn'](_0x408e3f(0x37,0x3e)),_0x285b55=Math['max'](..._0x5d15e1));const _0x330fdd=Math['max'](Math['abs'](_0x11b27b),Math[_0x408e3f(-0x9c,-0x84)](_0x285b55));function _0x408e3f(_0x2e3073,_0x2ef264){return _0xf37596(_0x2e3073,_0x2ef264- -0x359);}for(let _0x164c77=0x0;_0x164c77<_0x5d15e1[_0x408e3f(0x79,0x1b)];_0x164c77++){const _0x3190f3=_0x5d15e1[_0x164c77]/_0x330fdd;_0x5ce6b9[_0x164c77]=_0x3190f3;}function _0x2cfb8f(_0x232b3a,_0x243919){return _0x2abdaa(_0x232b3a,_0x243919- -0x5f7);}return _0x5ce6b9;}['destroy'](){function _0x3ec896(_0x1e2cde,_0xe72903){return _0xf37596(_0xe72903,_0x1e2cde- -0x41d);}Object[_0x5e48d7(0x370,0x3e0)](this['windTextures'])['forEach'](_0xf97660=>_0xf97660[_0x3ec896(-0x122,-0x128)]()),Object[_0x3ec896(-0xcd,-0x150)](this['particlesTextures'])[_0x5e48d7(0x3d4,0x43b)](_0x59dfc3=>_0x59dfc3['destroy']());function _0x5e48d7(_0x31b1df,_0x2f7820){return _0x2abdaa(_0x31b1df,_0x2f7820- -0x104);}Object['values'](this[_0x3ec896(-0x11a,-0x162)])[_0x3ec896(-0x72,-0x2f)](_0x239771=>_0x239771[_0x5e48d7(0x32b,0x38b)]()),this['frameRateMonitor'][_0x5e48d7(0x369,0x38b)]();}}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(_0x441151,_0x1fe79b,_0x20ac41,_0x5b73f1){function _0x4cdcf7(_0x535e4d,_0x6a28fc){return _0x2abdaa(_0x535e4d,_0x6a28fc-0x4f);}this[_0x58e9a7(0x11c,0x107)]=_0x441151,this[_0x4cdcf7(0x54a,0x56f)]=_0x1fe79b;function _0x58e9a7(_0x503fc3,_0xe0f13f){return _0x2abdaa(_0xe0f13f,_0x503fc3- -0x420);}this['viewerParameters']=_0x20ac41,this[_0x4cdcf7(0x614,0x5c5)]=_0x5b73f1,(typeof this['options']['particlesTextureSize']!==_0x58e9a7(0xac,0x119)||this[_0x58e9a7(0x100,0x17b)][_0x58e9a7(0xea,0x10e)]<=0x0)&&(console['error'](_0x4cdcf7(0x58b,0x578)),this['options'][_0x58e9a7(0xea,0x103)]=0x100),this['colorTable']=this[_0x58e9a7(0xe0,0xea)](),this['textures']=this[_0x4cdcf7(0x533,0x57b)](),this[_0x58e9a7(0x42,0xb)]=this[_0x4cdcf7(0x5d1,0x572)](),this[_0x58e9a7(0x77,0x8d)]=this['createPrimitives']();}[_0x2abdaa(0x554,0x52c)](){const _0x31d088={};_0x31d088[_0x2cfdc4(0x508,0x483)]=this['context'],_0x31d088['width']=this['context']['drawingBufferWidth'],_0x31d088['height']=this[_0x9baf4c(0x3ca,0x342)][_0x9baf4c(0x327,0x304)],_0x31d088[_0x2cfdc4(0x3de,0x3b8)]=PixelFormat['RGBA'],_0x31d088['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x2b66b9=_0x31d088,_0x385bd1={};_0x385bd1['context']=this['context'],_0x385bd1['width']=this['context'][_0x9baf4c(0x351,0x341)],_0x385bd1[_0x9baf4c(0x2aa,0x285)]=this['context']['drawingBufferHeight'];function _0x2cfdc4(_0x71ce10,_0x1b5d8d){return _0xf37596(_0x71ce10,_0x1b5d8d-0xdb);}_0x385bd1['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x385bd1['pixelDatatype']=PixelDatatype[_0x2cfdc4(0x51b,0x497)];const _0x3353ff=_0x385bd1;function _0x9baf4c(_0x210c78,_0x11e105){return _0xf37596(_0x210c78,_0x11e105- -0x66);}return{'segmentsColor':new Texture(_0x2b66b9),'segmentsDepth':new Texture(_0x3353ff)};}[_0xf37596(0x40e,0x38f)](){const _0x571486={};_0x571486['context']=this['context'],_0x571486[_0x8d0081(0x3e4,0x3d2)]=[this['textures'][_0x8d0081(0x402,0x44d)]];function _0x8d0081(_0x26918,_0x7ebe4e){return _0xf37596(_0x26918,_0x7ebe4e-0xdf);}_0x571486['depthTexture']=this[_0x4563d1(0x4fc,0x4d8)]['segmentsDepth'];function _0x4563d1(_0x3c9362,_0x46e5d0){return _0xf37596(_0x3c9362,_0x46e5d0-0x174);}return{'segments':new Framebuffer(_0x571486)};}['destoryRenderingFramebuffers'](){function _0x5ad1be(_0x3edaad,_0x4513cf){return _0xf37596(_0x4513cf,_0x3edaad- -0x17d);}function _0x410186(_0x169239,_0x13aa06){return _0x2abdaa(_0x13aa06,_0x169239- -0x184);}Object[_0x5ad1be(0x1d3,0x25b)](this[_0x5ad1be(0x151,0x12c)])['forEach'](_0x3252d5=>{_0x3252d5['destroy']();});}['createColorTableTexture'](){const _0x495439=new Float32Array(this['options'][_0x2a0f10(0x353,0x3b2)][_0x335661(0x25f,0x296)](_0x4a20e7=>{function _0x3940f4(_0x292968,_0xc89d17){return _0x335661(_0x292968- -0x2e,_0xc89d17);}function _0x3ea92a(_0x496a6c,_0x25e4b5){return _0x335661(_0x25e4b5-0xee,_0x496a6c);}const _0x2ca4ea=Color$1[_0x3940f4(0x182,0x1a8)](_0x4a20e7);return[_0x2ca4ea['red'],_0x2ca4ea['green'],_0x2ca4ea[_0x3ea92a(0x24b,0x2d1)],_0x2ca4ea['alpha']];}));function _0x335661(_0x5af4b7,_0x1c51cb){return _0xf37596(_0x1c51cb,_0x5af4b7- -0x176);}const _0x65faaa={};_0x65faaa[_0x2a0f10(0x45a,0x3f7)]=TextureMinificationFilter[_0x2a0f10(0x4ce,0x449)],_0x65faaa['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x65faaa['wrapS']=TextureWrap[_0x2a0f10(0x386,0x398)];function _0x2a0f10(_0x5b2f02,_0x3e666c){return _0x2abdaa(_0x5b2f02,_0x3e666c- -0x11d);}return _0x65faaa['wrapT']=TextureWrap[_0x2a0f10(0x3b1,0x398)],new Texture({'context':this[_0x335661(0x232,0x235)],'width':this['options']['colors'][_0x2a0f10(0x421,0x3eb)],'height':0x1,'pixelFormat':PixelFormat[_0x335661(0x19b,0x11b)],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x65faaa),'source':{'width':this[_0x335661(0x216,0x235)]['colors'][_0x2a0f10(0x3e4,0x3eb)],'height':0x1,'arrayBufferView':_0x495439}});}['createSegmentsGeometry'](){const _0x2695c1=0x4,_0x5b52bd=this[_0x376afd(0x520,0x565)]['particlesTextureSize'];function _0x376afd(_0x43a513,_0x5ad658){return _0xf37596(_0x5ad658,_0x43a513-0x194);}let _0x520836=[];for(let _0x3ce449=0x0;_0x3ce449<_0x5b52bd;_0x3ce449++){for(let _0x3edadd=0x0;_0x3edadd<_0x5b52bd;_0x3edadd++){for(let _0x3d710e=0x0;_0x3d710e<_0x2695c1;_0x3d710e++){_0x520836['push'](_0x3ce449/_0x5b52bd),_0x520836['push'](_0x3edadd/_0x5b52bd);}}}_0x520836=new Float32Array(_0x520836);const _0x328c5a=this[_0x376afd(0x520,0x533)]['particlesTextureSize']**0x2;let _0x233523=[];for(let _0x4fdb0c=0x0;_0x4fdb0c<_0x328c5a;_0x4fdb0c++){_0x233523['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}function _0x26a178(_0x1b7ef8,_0x1945c7){return _0x2abdaa(_0x1945c7,_0x1b7ef8- -0x1f1);}_0x233523=new Float32Array(_0x233523);let _0x43973d=[];for(let _0x5e1d57=0x0,_0x3821d2=0x0;_0x5e1d57<_0x328c5a;_0x5e1d57++){_0x43973d['push'](_0x3821d2+0x0,_0x3821d2+0x1,_0x3821d2+0x2,_0x3821d2+0x2,_0x3821d2+0x1,_0x3821d2+0x3),_0x3821d2+=_0x2695c1;}_0x43973d=new Uint32Array(_0x43973d);const _0x1a418f={};_0x1a418f[_0x376afd(0x51e,0x562)]=ComponentDatatype[_0x376afd(0x461,0x41f)],_0x1a418f['componentsPerAttribute']=0x2,_0x1a418f['values']=_0x520836;const _0x2dd868={};_0x2dd868[_0x26a178(0x32d,0x30b)]=ComponentDatatype[_0x26a178(0x270,0x217)],_0x2dd868[_0x376afd(0x4b9,0x540)]=0x3,_0x2dd868['values']=_0x233523;const _0x5e4de0=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x1a418f),'normal':new GeometryAttribute(_0x2dd868)}),'indices':_0x43973d});return _0x5e4de0;}[_0xf37596(0x370,0x30c)](_0x368713){const _0x233cf8={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x368713};return Appearance['getDefaultRenderState'](!![],![],_0x233cf8);}[_0xf37596(0x2a0,0x2f6)](){const _0x40a46c={};_0x40a46c['st']=0x0,_0x40a46c['normal']=0x1;const _0xcc6872={};_0xcc6872['enabled']=!![];const _0x2bd877={};_0x2bd877['enabled']=!![],_0x2bd877[_0x3ec6d6(0x224,0x2b2)]=WebGLRenderingContext[_0x3ec6d6(0x181,0x1ed)],_0x2bd877['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x2bd877[_0x36dc20(0x5a3,0x538)]=WebGLRenderingContext[_0x3ec6d6(0x1e0,0x24d)];const _0x17ebb9={};_0x17ebb9[_0x36dc20(0x61d,0x5cd)]=undefined,_0x17ebb9['depthTest']=_0xcc6872,_0x17ebb9['depthMask']=!![];function _0x36dc20(_0x1d81e1,_0x521cc1){return _0xf37596(_0x521cc1,_0x1d81e1-0x281);}function _0x3ec6d6(_0xe15160,_0x30c5e3){return _0x2abdaa(_0xe15160,_0x30c5e3- -0x278);}_0x17ebb9[_0x36dc20(0x585,0x5f5)]=_0x2bd877;const _0x1f83b4=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x40a46c,'geometry':this[_0x36dc20(0x61a,0x678)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures'][_0x36dc20(0x597,0x582)],'currentParticlesPosition':()=>this[_0x36dc20(0x663,0x6e7)]['particlesTextures'][_0x36dc20(0x633,0x610)],'postProcessingPosition':()=>this['computing'][_0x3ec6d6(0x307,0x2df)][_0x36dc20(0x608,0x650)],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x3ec6d6(0x207,0x28e)],'frameRateAdjustment':()=>this['computing'][_0x36dc20(0x5ba,0x5cb)],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x553c09(_0x38647f,_0x4484d9){return _0x36dc20(_0x4484d9- -0x129,_0x38647f);}function _0x4e4507(_0x2c8a92,_0x519af2){return _0x3ec6d6(_0x2c8a92,_0x519af2-0x259);}var _0x2626a1,_0x1cddaa;const _0x1390d4=new Cartesian2(((_0x2626a1=this[_0x553c09(0x4bb,0x4e4)]['domain'])===null||_0x2626a1===void 0x0?void 0x0:_0x2626a1[_0x553c09(0x4c6,0x49f)])??this[_0x553c09(0x5bf,0x53a)][_0x553c09(0x40e,0x499)][_0x553c09(0x420,0x42b)][_0x4e4507(0x48e,0x4bc)],((_0x1cddaa=this['options'][_0x4e4507(0x4da,0x4d4)])===null||_0x1cddaa===void 0x0?void 0x0:_0x1cddaa['max'])??this[_0x553c09(0x52f,0x53a)]['windData']['speed']['max']);return _0x1390d4;},'displayRange':()=>{function _0x3ad04c(_0x41c946,_0x4a352f){return _0x3ec6d6(_0x41c946,_0x4a352f-0x182);}function _0x7f4c4c(_0x13a21a,_0x5c98c4){return _0x36dc20(_0x13a21a- -0x77b,_0x5c98c4);}var _0x1a48e8,_0x1ba21c;const _0x23d806=new Cartesian2(((_0x1a48e8=this[_0x7f4c4c(-0x16e,-0x130)][_0x7f4c4c(-0x120,-0x1ab)])===null||_0x1a48e8===void 0x0?void 0x0:_0x1a48e8['min'])??this['computing'][_0x7f4c4c(-0x1b9,-0x147)]['speed'][_0x7f4c4c(-0x1b3,-0x1c4)],((_0x1ba21c=this[_0x3ad04c(0x3b6,0x42a)]['displayRange'])===null||_0x1ba21c===void 0x0?void 0x0:_0x1ba21c[_0x7f4c4c(-0x228,-0x2a8)])??this['computing']['windData'][_0x7f4c4c(-0x227,-0x2ab)][_0x7f4c4c(-0x228,-0x1eb)]);return _0x23d806;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context'][_0x3ec6d6(0x299,0x2c3)]/this['context']['drawingBufferHeight'],'pixelSize':()=>this[_0x36dc20(0x64c,0x627)]['pixelSize'],'lineWidth':()=>{const _0x2c44f8={};_0x2c44f8['min']=0x1,_0x2c44f8['max']=0x2;const _0x30c1a4=this['options']['lineWidth']||_0x2c44f8;function _0x5c7378(_0x4bb09d,_0x58e3be){return _0x36dc20(_0x58e3be- -0x4fb,_0x4bb09d);}return new Cartesian2(_0x30c1a4[_0x5c7378(0x6f,0xcd)],_0x30c1a4['max']);},'lineLength':()=>{const _0x2b7d1f={};_0x2b7d1f['min']=0x14,_0x2b7d1f['max']=0x64;const _0x2a2547=this['options']['lineLength']||_0x2b7d1f;function _0x4c751f(_0x20e4f2,_0x343d42){return _0x36dc20(_0x20e4f2- -0xf,_0x343d42);}return new Cartesian2(_0x2a2547[_0x4c751f(0x5b9,0x5cc)],_0x2a2547['max']);},'is3D':()=>this['viewerParameters'][_0x36dc20(0x5df,0x57f)]===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures'][_0x36dc20(0x55d,0x5b9)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x17ebb9)}),_0x28de93={};return _0x28de93[_0x3ec6d6(0x2b4,0x248)]=_0x1f83b4,_0x28de93;}['onParticlesTextureSizeChange'](){const _0xc42bf9=this['createSegmentsGeometry']();this[_0x592c1f(-0x233,-0x291)][_0x592c1f(-0x20a,-0x1b0)]['geometry']=_0xc42bf9;const _0x46f434={};function _0x58abfb(_0x1c72f1,_0x422373){return _0xf37596(_0x1c72f1,_0x422373- -0x9a);}function _0x592c1f(_0x25eb5b,_0x41d710){return _0x2abdaa(_0x41d710,_0x25eb5b- -0x6ca);}_0x46f434['context']=this['context'],_0x46f434['geometry']=_0xc42bf9,_0x46f434['attributeLocations']=this['primitives']['segments']['attributeLocations'],_0x46f434[_0x592c1f(-0x1bb,-0x1c3)]=BufferUsage['STATIC_DRAW'];const _0x2a1c7b=VertexArray[_0x592c1f(-0x25f,-0x1d3)](_0x46f434);this['primitives'][_0x58abfb(0x233,0x292)]['commandToExecute']&&(this['primitives']['segments'][_0x58abfb(0x31d,0x2c8)]['vertexArray']=_0x2a1c7b);}['onColorTableChange'](){this['colorTable']['destroy']();function _0x3bde9d(_0x31e7b0,_0x359490){return _0x2abdaa(_0x31e7b0,_0x359490- -0x1c4);}this['colorTable']=this[_0x3bde9d(0x2e1,0x33c)]();}[_0x2abdaa(0x53c,0x503)](_0xfccdb7){function _0x190253(_0x2c1ec1,_0x230491){return _0xf37596(_0x2c1ec1,_0x230491- -0x114);}const _0x5a5e80=_0xfccdb7[_0xa972dc(0x4d2,0x4fa)]&&JSON[_0x190253(0x17b,0x1fb)](_0xfccdb7['colors'])!==JSON['stringify'](this['options'][_0xa972dc(0x4d2,0x4d6)]);this['options']=deepMerge(_0xfccdb7,this['options']);function _0xa972dc(_0x363de7,_0x4ab417){return _0x2abdaa(_0x4ab417,_0x363de7-0x3);}_0x5a5e80&&this[_0x190253(0x2ee,0x263)]();}['destroy'](){Object[_0x1dcad9(-0x135,-0x171)](this['framebuffers'])['forEach'](_0x2c412a=>{_0x2c412a['destroy']();});function _0x1dcad9(_0xcbab82,_0x581ba7){return _0x2abdaa(_0xcbab82,_0x581ba7- -0x655);}Object['values'](this['primitives'])['forEach'](_0x2aefc9=>{_0x2aefc9['destroy']();});function _0x4d3106(_0x3346c7,_0x14631c){return _0xf37596(_0x14631c,_0x3346c7- -0x207);}this[_0x1dcad9(-0x23b,-0x1d4)][_0x4d3106(0xf4,0xd3)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0xf37596(0x2e6,0x2d6)];class WindParticleSystem{constructor(_0x5061f2,_0x15a7bf,_0x2c1c60,_0x281b5b,_0x37d1e0){function _0x4cc843(_0x269b74,_0x68f896){return _0x2abdaa(_0x269b74,_0x68f896-0xc8);}function _0x5e542e(_0x3c2a8e,_0x2bcc66){return _0x2abdaa(_0x3c2a8e,_0x2bcc66- -0x504);}this['context']=_0x5061f2,this['options']=_0x2c1c60,this[_0x5e542e(-0x2d,0x5b)]=_0x281b5b,this['computing']=new WindParticlesComputing(_0x5061f2,_0x15a7bf,_0x2c1c60,_0x281b5b,_0x37d1e0),this[_0x4cc843(0x545,0x553)]=new WindParticlesRendering(_0x5061f2,_0x2c1c60,_0x281b5b,this['computing']),this['clearFramebuffers']();}[_0x2abdaa(0x544,0x549)](){const _0x2d32a0=[this['computing'][_0x1be89c(0x4c,0x4b)][_0x454da4(0x624,0x617)],this['computing']['primitives'][_0x454da4(0x598,0x615)],this['computing']['primitives'][_0x454da4(0x5da,0x60e)],this['rendering']['primitives'][_0x1be89c(0x84,0x74)]];function _0x454da4(_0x5b41e4,_0x3c86d3){return _0x2abdaa(_0x3c86d3,_0x5b41e4-0xbf);}function _0x1be89c(_0x127995,_0x5e0b73){return _0x2abdaa(_0x127995,_0x5e0b73- -0x44c);}return _0x2d32a0;}[_0xf37596(0x393,0x367)](){const _0x19f82c=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x75ee70(0x1ba,0x1c8)]});function _0x75ee70(_0x50fbcc,_0x29692f){return _0x2abdaa(_0x50fbcc,_0x29692f- -0x34f);}function _0x2ff25c(_0x34f975,_0x3f51f8){return _0x2abdaa(_0x34f975,_0x3f51f8- -0x136);}Object['keys'](this['rendering'][_0x2ff25c(0x336,0x32c)])[_0x2ff25c(0x465,0x409)](_0x53c97a=>{_0x19f82c[_0x3c5890(0x1a6,0x11c)]=this[_0x17daee(0x1b4,0x213)]['framebuffers'][_0x53c97a];function _0x3c5890(_0x2f0cc8,_0x54c9f8){return _0x75ee70(_0x54c9f8,_0x2f0cc8-0x5b);}function _0x17daee(_0x290324,_0x332100){return _0x75ee70(_0x290324,_0x332100-0xd7);}_0x19f82c['execute'](this[_0x17daee(0x337,0x2c4)]);});}['changeOptions'](_0x20f9b5){function _0x1669a3(_0x4e5faa,_0x43b1bc){return _0x2abdaa(_0x4e5faa,_0x43b1bc-0xc2);}let _0x14f744=![];_0x20f9b5[_0x3132c3(0x21,0x54)]&&this[_0x3132c3(0x37,0x2)]['particlesTextureSize']!==_0x20f9b5[_0x3132c3(0x21,0x38)]&&(_0x14f744=!![]);const _0x218c78=deepMerge(_0x20f9b5,this['options']);if(_0x218c78[_0x3132c3(0x21,-0x3c)]<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x218c78,this[_0x3132c3(-0x5e,-0x5d)]['updateOptions'](_0x20f9b5);function _0x3132c3(_0x2eaf92,_0x2b00c8){return _0x2abdaa(_0x2b00c8,_0x2eaf92- -0x4e9);}this['computing'][_0x3132c3(0x1a,-0xb)](_0x20f9b5),_0x14f744&&(this['computing']['destroyParticlesTextures'](),this['computing']['createParticlesTextures'](),this['rendering']['onParticlesTextureSizeChange']());}[_0xf37596(0x2d6,0x349)](_0x4b6211){function _0x2a3aff(_0x22ef51,_0x5eb8a9){return _0x2abdaa(_0x5eb8a9,_0x22ef51-0x1f);}this[_0x2c4735(0x5d2,0x548)]=_0x4b6211,this['computing'][_0x2a3aff(0x57e,0x553)]=_0x4b6211;function _0x2c4735(_0x8aa3cf,_0x41cc25){return _0xf37596(_0x41cc25,_0x8aa3cf-0x207);}this['rendering']['viewerParameters']=_0x4b6211;}['destroy'](){function _0xbf3086(_0x13762a,_0x1aa8c4){return _0xf37596(_0x1aa8c4,_0x13762a- -0x1b);}function _0x305cf0(_0x2bf286,_0x2d3ef3){return _0x2abdaa(_0x2d3ef3,_0x2bf286- -0x30);}this[_0x305cf0(0x546,0x5c5)]['destroy'](),this[_0xbf3086(0x2dc,0x363)]['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0xf37596(0x3c1,0x3e4)],_0x31ac10={};_0x31ac10[_0x2abdaa(0x535,0x4db)]=0x1,_0x31ac10[_0xf37596(0x348,0x2d2)]=0x2;const _0x524fee={};_0x524fee['min']=0x14,_0x524fee[_0xf37596(0x276,0x2d2)]=0x64;const _0x56bfbf={};_0x56bfbf['particlesTextureSize']=0x64,_0x56bfbf['fixedHeight']=0x0,_0x56bfbf[_0xf37596(0x396,0x34c)]=_0x31ac10,_0x56bfbf['lineLength']=_0x524fee,_0x56bfbf[_0x2abdaa(0x54f,0x4f4)]=0x1,_0x56bfbf['dropRate']=0.003,_0x56bfbf['dropRateBump']=0.001,_0x56bfbf['colors']=['rgb(206,255,255)'],_0x56bfbf['flipY']=![],_0x56bfbf['dynamic']=!![];const DEF_OPTIONS=_0x56bfbf;class WindLayer extends BaseLayer$1{constructor(_0x31c7d6={}){_0x31c7d6={...DEF_OPTIONS,..._0x31c7d6},super(_0x31c7d6);function _0x1cb2ae(_0x29c22e,_0x545813){return _0xf37596(_0x545813,_0x29c22e- -0x2dc);}this[_0x1cb2ae(0xb2,0x109)](_0x31c7d6,_0x31c7d6);}get[_0xf37596(0x35b,0x36d)](){return this['primitives'];}get['data'](){function _0x4c508a(_0x7c467e,_0x4ef094){return _0xf37596(_0x4ef094,_0x7c467e- -0x463);}return this[_0x4c508a(-0xd7,-0x70)]['data'];}set[_0xf37596(0x3ec,0x3a4)](_0x24129f){this['options']['data']=_0x24129f,this['setData'](_0x24129f);}get['colors'](){function _0x2b6bdd(_0x1847b1,_0x5e5f90){return _0x2abdaa(_0x5e5f90,_0x1847b1- -0x45e);}return this[_0x2b6bdd(0xc2,0x74)]['colors'];}set[_0x2abdaa(0x4f1,0x4cf)](_0x4c34e5){function _0x5f3496(_0x483b23,_0x3bd1a1){return _0xf37596(_0x3bd1a1,_0x483b23- -0x2b9);}this[_0x5f3496(0xd3,0x6a)][_0x5f3496(0x82,0xb3)]=_0x4c34e5;const _0x2c8396={};function _0xc479a9(_0x4df603,_0xe53302){return _0xf37596(_0xe53302,_0x4df603- -0x2c1);}_0x2c8396[_0xc479a9(0x7a,-0x9)]=_0x4c34e5,this[_0xc479a9(0xcd,0x13e)](this[_0xc479a9(0xcb,0x13e)],_0x2c8396);}[_0xf37596(0x3df,0x3a2)](_0x2294a7){function _0x2079dd(_0x2ab80a,_0x470a25){return _0x2abdaa(_0x2ab80a,_0x470a25- -0x66a);}_0x2294a7?this[_0x2079dd(-0x1bf,-0x1c2)]():this['_removedHook']();}['_mountedHook'](){}[_0x2abdaa(0x4cb,0x4a8)](){this[_0x56698f(-0x215,-0x23c)]=this['_map']['scene'],this['camera']=this[_0x26d29a(-0xd4,-0x88)][_0x26d29a(-0x55,-0x35)];this[_0x56698f(-0x164,-0x147)]['data']&&this[_0x26d29a(-0xfe,-0xe6)](this[_0x26d29a(-0xa2,-0x3b)]['data']);if(!this['windData']||!this['show'])return;this[_0x26d29a(-0x63,-0xb1)]={'lonRange':new Cesium$1[(_0x56698f(-0x1e6,-0x1fa))](-0xb4,0xb4),'latRange':new Cesium$1[(_0x56698f(-0x1e6,-0x19b))](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this['updateViewerParameters'](),this[_0x26d29a(-0x146,-0xc9)]=new WindParticleSystem(this[_0x26d29a(-0x153,-0x162)]['context'],this[_0x56698f(-0x1af,-0x13d)],this['options'],this['viewerParameters'],this[_0x26d29a(-0x153,-0x149)]),this['primitives']=this['particleSystem']['getPrimitives'](),this[_0x26d29a(-0x12b,-0x1a4)][_0x26d29a(-0x83,-0x9a)](_0x56d3b4=>{function _0x450952(_0x1be1dd,_0x56429f){return _0x56698f(_0x56429f-0x531,_0x1be1dd);}function _0x525a6a(_0x438448,_0x40b446){return _0x56698f(_0x40b446-0x339,_0x438448);}this[_0x525a6a(0x19b,0x124)]['primitives'][_0x525a6a(0x167,0x1ba)](_0x56d3b4);});function _0x56698f(_0x245341,_0xaa0c8d){return _0x2abdaa(_0xaa0c8d,_0x245341- -0x684);}function _0x26d29a(_0x53acc3,_0xe06df7){return _0x2abdaa(_0xe06df7,_0x53acc3- -0x5c2);}this[_0x26d29a(-0x55,0x2c)]['percentageChanged']=0.01,this['camera']['changed'][_0x26d29a(-0xdc,-0xda)](this[_0x56698f(-0x195,-0x18c)][_0x56698f(-0x1f8,-0x27c)](this)),this['scene'][_0x26d29a(-0x145,-0xc6)]['addEventListener'](this['updateViewerParameters']['bind'](this)),window['addEventListener'](_0x56698f(-0x10a,-0x140),this['updateViewerParameters']['bind'](this));}['_removedHook'](){this[_0x459a22(0x4ec,0x503)]['changed'][_0x1f2f80(0x403,0x420)](this['updateViewerParameters']['bind'](this));function _0x1f2f80(_0x5795fd,_0x23ecec){return _0x2abdaa(_0x23ecec,_0x5795fd- -0xc3);}function _0x459a22(_0x38ba8a,_0x2af81d){return _0xf37596(_0x38ba8a,_0x2af81d-0x12a);}this[_0x459a22(0x407,0x405)][_0x459a22(0x3d1,0x413)]['removeEventListener'](this['updateViewerParameters'][_0x459a22(0x3f3,0x422)](this)),window['removeEventListener'](_0x1f2f80(0x4b7,0x51c),this['updateViewerParameters'][_0x459a22(0x4aa,0x422)](this)),this[_0x459a22(0x44a,0x42d)]&&(this['primitives'][_0x459a22(0x489,0x4d5)](_0x481dab=>{function _0x49ef96(_0x10ba6a,_0x426740){return _0x1f2f80(_0x426740-0x125,_0x10ba6a);}function _0x3d38bd(_0xfaa4d5,_0x5b5714){return _0x1f2f80(_0x5b5714-0x60,_0xfaa4d5);}this[_0x3d38bd(0x40c,0x40c)][_0x49ef96(0x51c,0x4f9)]['remove'](_0x481dab);}),delete this['primitives']),this[_0x459a22(0x447,0x412)]&&(this[_0x1f2f80(0x3b9,0x380)][_0x1f2f80(0x3cc,0x420)](),delete this['particleSystem']);}[_0xf37596(0x2de,0x330)](_0x53e765,_0x1f469e){this[_0x399d06(0x2ce,0x287)]=this['processWindData'](_0x53e765);if(_0x1f469e){this[_0xa9bb87(0x1f5,0x236)](),this[_0xa9bb87(0x177,0x17c)]();return;}function _0xa9bb87(_0x555bd7,_0x420c53){return _0xf37596(_0x420c53,_0x555bd7- -0x19d);}function _0x399d06(_0x383837,_0x2f1830){return _0xf37596(_0x2f1830,_0x383837- -0x73);}this['particleSystem']?(this['particleSystem']['computing']['updateWindData'](this['windData']),this['scene'][_0x399d06(0x2d5,0x306)]()):this['_addedHook']();}['_setOptionsHook'](_0x20402f,_0x1c32c6){function _0x11733b(_0xaf673e,_0x211f01){return _0x2abdaa(_0xaf673e,_0x211f01-0xca);}function _0x1d4ce2(_0x2b7692,_0x46d4f3){return _0x2abdaa(_0x2b7692,_0x46d4f3- -0x660);}this['particleSystem']&&(this[_0x1d4ce2(-0x1e9,-0x1e4)][_0x11733b(0x54d,0x570)](_0x1c32c6),this['scene'][_0x11733b(0x537,0x5a6)]());}['processWindData'](_0x3e4bdc){function _0x291163(_0x412d1a,_0x30b163){return _0x2abdaa(_0x30b163,_0x412d1a- -0x183);}var _0x5007a6,_0x29da3b;function _0x80e1ff(_0x3972a4,_0x57c8c4){return _0xf37596(_0x3972a4,_0x57c8c4- -0x270);}const _0x408fe6={..._0x3e4bdc},_0xc7273d=_0x408fe6;!_0xc7273d['height']&&_0xc7273d[_0x291163(0x335,0x3a2)]&&(_0xc7273d['height']=_0xc7273d[_0x291163(0x335,0x395)]);!_0xc7273d[_0x291163(0x354,0x387)]&&_0xc7273d[_0x291163(0x372,0x3b5)]&&(_0xc7273d['width']=_0xc7273d['cols']);!_0xc7273d['bounds']&&(_0xc7273d['bounds']={'west':_0xc7273d['xmin'],'south':_0xc7273d[_0x291163(0x34e,0x3c0)],'east':_0xc7273d['xmax'],'north':_0xc7273d[_0x291163(0x35e,0x386)]});if(!_0xc7273d['u']){const _0x163990={};_0x163990[_0x80e1ff(0x111,0x150)]=_0x3e4bdc['udata'],_0x163990['min']=_0x3e4bdc[_0x291163(0x3e7,0x3b2)],_0x163990['max']=_0x3e4bdc['umax'],_0xc7273d['u']=_0x163990;}if(!_0xc7273d['v']){const _0x472165={};_0x472165['array']=_0x3e4bdc['vdata'],_0x472165['min']=_0x3e4bdc[_0x291163(0x3c9,0x3b4)],_0x472165['max']=_0x3e4bdc['vmax'],_0xc7273d['v']=_0x472165;}if(((_0x5007a6=_0xc7273d['speed'])===null||_0x5007a6===void 0x0?void 0x0:_0x5007a6['min'])===undefined||((_0x29da3b=_0xc7273d['speed'])===null||_0x29da3b===void 0x0?void 0x0:_0x29da3b['max'])===undefined||_0xc7273d[_0x291163(0x2e4,0x2d4)]['array']===undefined){const _0x4d19df={'array':new Float32Array(_0xc7273d['u']['array'][_0x291163(0x385,0x380)]),'min':Number['MAX_VALUE'],'max':Number[_0x80e1ff(0xea,0xd2)]};for(let _0x2289af=0x0;_0x2289af<_0xc7273d['u'][_0x291163(0x3d1,0x39b)][_0x80e1ff(0x121,0x104)];_0x2289af++){_0x4d19df[_0x291163(0x3d1,0x3e7)][_0x2289af]=Math['sqrt'](_0xc7273d['u'][_0x80e1ff(0x12e,0x150)][_0x2289af]*_0xc7273d['u'][_0x291163(0x3d1,0x3b1)][_0x2289af]+_0xc7273d['v']['array'][_0x2289af]*_0xc7273d['v']['array'][_0x2289af]),_0x4d19df[_0x80e1ff(0x1b0,0x150)][_0x2289af]!==0x0&&(_0x4d19df[_0x80e1ff(0x153,0xd7)]=Math['min'](_0x4d19df[_0x80e1ff(0xb1,0xd7)],_0x4d19df[_0x291163(0x3d1,0x37e)][_0x2289af]),_0x4d19df[_0x80e1ff(0x45,0x62)]=Math['max'](_0x4d19df[_0x291163(0x2e3,0x315)],_0x4d19df[_0x80e1ff(0x176,0x150)][_0x2289af]));}_0xc7273d['speed']=_0x4d19df;}return _0xc7273d;}['updateViewerParameters'](){var _0x32d499;function _0x3aaf96(_0x529378,_0x3305d8){return _0xf37596(_0x3305d8,_0x529378- -0x18e);}const _0x14c5b9=this['scene'];if(!_0x14c5b9)return;const _0x1bf855=_0x14c5b9['canvas'],_0x2543f4={};_0x2543f4['x']=0x0,_0x2543f4['y']=0x0;const _0x1fe9b8={};_0x1fe9b8['x']=0x0,_0x1fe9b8['y']=_0x1bf855[_0x23f557(0x2cd,0x277)];const _0x55eefb={};_0x55eefb['x']=_0x1bf855[_0x3aaf96(0x223,0x1cc)],_0x55eefb['y']=0x0;const _0x45d6c5={};_0x45d6c5['x']=_0x1bf855['clientWidth'];function _0x23f557(_0x4b7444,_0x3a39ec){return _0x2abdaa(_0x4b7444,_0x3a39ec- -0x271);}_0x45d6c5['y']=_0x1bf855[_0x3aaf96(0x1c6,0x1a5)];const _0x3eab21=[_0x2543f4,_0x1fe9b8,_0x55eefb,_0x45d6c5];let _0x52c3ac=0xb4,_0x2e3f11=-0xb4,_0xebab4a=0x5a,_0x5cf764=-0x5a,_0x351ca3=![];for(const _0x5e2da6 of _0x3eab21){const _0x2004ba=_0x14c5b9[_0x3aaf96(0x24b,0x272)]['pickEllipsoid'](new Cesium$1[(_0x3aaf96(0x17c,0x152))](_0x5e2da6['x'],_0x5e2da6['y']),_0x14c5b9['globe'][_0x3aaf96(0x1c5,0x1e6)]);if(!_0x2004ba){_0x351ca3=!![];break;}const _0x25e48a=_0x14c5b9[_0x23f557(0x1fa,0x21d)]['ellipsoid']['cartesianToCartographic'](_0x2004ba),_0xb2485c=Cesium$1[_0x23f557(0x2dc,0x2f2)][_0x23f557(0x268,0x2b3)](_0x25e48a['longitude']),_0x145ca7=Cesium$1[_0x3aaf96(0x241,0x26b)]['toDegrees'](_0x25e48a['latitude']);_0x52c3ac=Math['min'](_0x52c3ac,_0xb2485c),_0x2e3f11=Math['max'](_0x2e3f11,_0xb2485c),_0xebab4a=Math['min'](_0xebab4a,_0x145ca7),_0x5cf764=Math['max'](_0x5cf764,_0x145ca7);}if(!_0x351ca3){const _0x37551c=new Cesium$1[(_0x23f557(0x26a,0x22d))](Math[_0x23f557(0x276,0x1f5)](this[_0x3aaf96(0x1b3,0x146)][_0x3aaf96(0x218,0x1de)]['west'],_0x52c3ac),Math['min'](this['windData'][_0x23f557(0x2bd,0x2c9)][_0x23f557(0x2dd,0x28e)],_0x2e3f11)),_0x54e3b6=new Cesium$1['Cartesian2'](Math['max'](this[_0x3aaf96(0x1b3,0x1f5)][_0x3aaf96(0x218,0x1db)]['south'],_0xebab4a),Math['min'](this[_0x23f557(0x248,0x264)]['bounds'][_0x3aaf96(0x1a1,0x1a5)],_0x5cf764)),_0x4c853d=(_0x37551c['y']-_0x37551c['x'])*0.05,_0x3cf747=(_0x54e3b6['y']-_0x54e3b6['x'])*0.05;_0x37551c['x']=Math['max'](this['windData']['bounds']['west'],_0x37551c['x']-_0x4c853d),_0x37551c['y']=Math[_0x3aaf96(0x1b9,0x18c)](this['windData']['bounds']['east'],_0x37551c['y']+_0x4c853d),_0x54e3b6['x']=Math[_0x3aaf96(0x144,0x14c)](this['windData']['bounds'][_0x3aaf96(0x18a,0x104)],_0x54e3b6['x']-_0x3cf747),_0x54e3b6['y']=Math[_0x3aaf96(0x1b9,0x1f0)](this[_0x23f557(0x279,0x264)][_0x3aaf96(0x218,0x282)][_0x3aaf96(0x1a1,0x21f)],_0x54e3b6['y']+_0x3cf747),this[_0x23f557(0x34a,0x2ee)]['lonRange']=_0x37551c,this[_0x3aaf96(0x23d,0x2c1)]['latRange']=_0x54e3b6;const _0x541603=this[_0x23f557(0x26b,0x264)][_0x23f557(0x2ca,0x2c9)]['east']-this['windData']['bounds'][_0x3aaf96(0x171,0x142)],_0x425e5b=this['windData'][_0x23f557(0x2c2,0x2c9)][_0x23f557(0x213,0x252)]-this['windData'][_0x23f557(0x2c3,0x2c9)][_0x23f557(0x206,0x23b)],_0x3b302b=(_0x37551c['y']-_0x37551c['x'])/_0x541603,_0x8d72a3=(_0x54e3b6['y']-_0x54e3b6['x'])/_0x425e5b,_0x177404=Math['min'](_0x3b302b,_0x8d72a3),_0x5b9b15=0x3e8*_0x177404;_0x5b9b15>0x0&&(this['viewerParameters']['pixelSize']=Math[_0x23f557(0x237,0x1f5)](0x0,Math['min'](0x3e8,_0x5b9b15)));}this[_0x23f557(0x353,0x2ee)]['sceneMode']=this[_0x3aaf96(0x14d,0x1a5)][_0x3aaf96(0x20c,0x1ab)],(_0x32d499=this['particleSystem'])===null||_0x32d499===void 0x0||_0x32d499[_0x3aaf96(0x1bb,0x1e9)](this['viewerParameters']);}[_0xf37596(0x2c9,0x33a)](_0x42af2a,_0x175caa){function _0x32d6cb(_0x23b7c8,_0x14c35d){return _0xf37596(_0x14c35d,_0x23b7c8-0x257);}const {bounds:_0x284f3e,width:_0x2b8d8f,height:_0x5eb281,u:_0x3b99fe,v:_0x4c0089,speed:_0x5dfcc0}=this[_0x32d6cb(0x598,0x5a1)],{flipY:_0x5d8d6b}=this[_0x32d6cb(0x5e3,0x5ac)];if(_0x42af2a<_0x284f3e[_0x25d785(0x4bb,0x4cf)]||_0x42af2a>_0x284f3e['east']||_0x175caa<_0x284f3e['south']||_0x175caa>_0x284f3e['north'])return null;const _0x44df88=(_0x42af2a-_0x284f3e[_0x32d6cb(0x556,0x549)])/(_0x284f3e['east']-_0x284f3e['west'])*(_0x2b8d8f-0x1);let _0x1953f9=(_0x175caa-_0x284f3e[_0x25d785(0x4d4,0x55f)])/(_0x284f3e['north']-_0x284f3e['south'])*(_0x5eb281-0x1);_0x5d8d6b&&(_0x1953f9=_0x5eb281-0x1-_0x1953f9);const _0x58ac55=Math['floor'](_0x44df88),_0x39a0c2=Math['floor'](_0x1953f9),_0x2016b2=Math[_0x32d6cb(0x53a,0x4f3)](_0x44df88),_0x40ea11=Math['min'](_0x2016b2+0x1,_0x2b8d8f-0x1),_0x194f4e=Math['floor'](_0x1953f9),_0x7db9cc=Math['min'](_0x194f4e+0x1,_0x5eb281-0x1);function _0x25d785(_0x2518ba,_0x3ed535){return _0xf37596(_0x3ed535,_0x2518ba-0x1bc);}const _0x34a6c4=_0x44df88-_0x2016b2,_0x47c6fd=_0x1953f9-_0x194f4e,_0x489366=_0x39a0c2*_0x2b8d8f+_0x58ac55,_0x1dbf69=_0x194f4e*_0x2b8d8f+_0x2016b2,_0x439d32=_0x194f4e*_0x2b8d8f+_0x40ea11,_0x2af0fb=_0x7db9cc*_0x2b8d8f+_0x2016b2,_0x32c4e0=_0x7db9cc*_0x2b8d8f+_0x40ea11,_0x3967f1=_0x3b99fe['array'][_0x1dbf69],_0x5abb48=_0x3b99fe[_0x25d785(0x57c,0x5b2)][_0x439d32],_0x128ad2=_0x3b99fe[_0x32d6cb(0x617,0x696)][_0x2af0fb],_0x21cded=_0x3b99fe[_0x25d785(0x57c,0x58e)][_0x32c4e0],_0x5de15d=(0x1-_0x34a6c4)*(0x1-_0x47c6fd)*_0x3967f1+_0x34a6c4*(0x1-_0x47c6fd)*_0x5abb48+(0x1-_0x34a6c4)*_0x47c6fd*_0x128ad2+_0x34a6c4*_0x47c6fd*_0x21cded,_0x2e587e=_0x4c0089['array'][_0x1dbf69],_0x1eb3ad=_0x4c0089[_0x32d6cb(0x617,0x660)][_0x439d32],_0x4a7929=_0x4c0089[_0x32d6cb(0x617,0x658)][_0x2af0fb],_0x2bfe06=_0x4c0089[_0x32d6cb(0x617,0x58b)][_0x32c4e0],_0x298dd5=(0x1-_0x34a6c4)*(0x1-_0x47c6fd)*_0x2e587e+_0x34a6c4*(0x1-_0x47c6fd)*_0x1eb3ad+(0x1-_0x34a6c4)*_0x47c6fd*_0x4a7929+_0x34a6c4*_0x47c6fd*_0x2bfe06,_0x2344d1=Math['sqrt'](_0x5de15d*_0x5de15d+_0x298dd5*_0x298dd5),_0x5310b3={};_0x5310b3['u']=_0x3b99fe['array'][_0x489366],_0x5310b3['v']=_0x4c0089['array'][_0x489366],_0x5310b3['speed']=_0x5dfcc0['array'][_0x489366];const _0x329dc2={};_0x329dc2['u']=_0x5de15d,_0x329dc2['v']=_0x298dd5,_0x329dc2[_0x32d6cb(0x52a,0x4f2)]=_0x2344d1;const _0x4bcbdc={};return _0x4bcbdc[_0x25d785(0x525,0x4aa)]=_0x5310b3,_0x4bcbdc[_0x25d785(0x4a1,0x4fb)]=_0x329dc2,_0x4bcbdc;}}mars3d__namespace[_0x2abdaa(0x57c,0x56f)]['register'](_0x2abdaa(0x4b4,0x539),WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){function _0x23214f(_0x51c247,_0x2291dc){return _0xf37596(_0x2291dc,_0x51c247- -0x14c);}this[_0xa36e6(0x1e3,0x1de)]=null,this['lat']=null;function _0xa36e6(_0x5d8322,_0x5df30b){return _0xf37596(_0x5d8322,_0x5df30b- -0x108);}this[_0xa36e6(0x298,0x277)]=null,this['tlat']=null,this[_0x23214f(0x1ea,0x23b)]=null,this['speed']=null;}[_0xf37596(0x351,0x2fb)](){for(const _0x5552f2 in this){delete this[_0x5552f2];}}}class CanvasWindField{constructor(_0x117b1b){function _0x3b8369(_0x207808,_0x14e622){return _0xf37596(_0x14e622,_0x207808- -0x31);}this[_0x3b8369(0x35a,0x384)](_0x117b1b);}get[_0x2abdaa(0x554,0x553)](){return this['_speedRate'];}set[_0x2abdaa(0x5b3,0x553)](_0x4d6c77){this['_speedRate']=(0x64-(_0x4d6c77>0x63?0x63:_0x4d6c77))*0x64;function _0x23557(_0x1a0e22,_0x387a6c){return _0xf37596(_0x1a0e22,_0x387a6c-0x153);}this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x23557(0x4a3,0x4a0)]-this['ymin'])/this['_speedRate']];}get[_0xf37596(0x29d,0x2f2)](){return this['_maxAge'];}set['maxAge'](_0x37391e){this['_maxAge']=_0x37391e;}['setOptions'](_0x4cb469){this['options']=_0x4cb469,this['maxAge']=_0x4cb469[_0x501874(0x26f,0x2a0)]||0x78;function _0x2eb0cf(_0xb98d49,_0x13f17a){return _0x2abdaa(_0x13f17a,_0xb98d49- -0x531);}this['speedRate']=_0x4cb469['speedRate']||0x32,this['particles']=[];const _0x2d345c=_0x4cb469['particlesNumber']||0x1000;function _0x501874(_0x38dae6,_0x2f493a){return _0x2abdaa(_0x2f493a,_0x38dae6- -0x217);}for(let _0x56d399=0x0;_0x56d399<_0x2d345c;_0x56d399++){const _0x409bd1=this[_0x2eb0cf(-0x95,-0x123)](new CanvasParticle());this['particles']['push'](_0x409bd1);}}['setDate'](_0x59a541){function _0x5c7c2c(_0x2f9273,_0x934586){return _0x2abdaa(_0x2f9273,_0x934586- -0x467);}this['rows']=_0x59a541[_0x3c1d68(0x3b5,0x435)],this['cols']=_0x59a541[_0x5c7c2c(0x1,0x8e)],this[_0x5c7c2c(0xbd,0xa0)]=_0x59a541['xmin'],this[_0x3c1d68(0x41a,0x3d1)]=_0x59a541['xmax'],this[_0x3c1d68(0x3ce,0x404)]=_0x59a541['ymin'],this['ymax']=_0x59a541[_0x3c1d68(0x3de,0x3cf)],this[_0x3c1d68(0x393,0x40c)]=[];const _0x47bccb=_0x59a541['udata'],_0xe317e9=_0x59a541[_0x5c7c2c(0xc5,0xb5)];let _0x4db30d=![];_0x47bccb[_0x3c1d68(0x405,0x493)]===this['rows']&&_0x47bccb[0x0]['length']===this['cols']&&(_0x4db30d=!![]);let _0x5de7f7=0x0,_0x2f883d=null,_0x829b1a=null;function _0x3c1d68(_0x2b924d,_0x222318){return _0xf37596(_0x222318,_0x2b924d-0x91);}for(let _0x4628c4=0x0;_0x4628c4<this['rows'];_0x4628c4++){_0x2f883d=[];for(let _0x3516d2=0x0;_0x3516d2<this[_0x3c1d68(0x3f2,0x402)];_0x3516d2++,_0x5de7f7++){_0x4db30d?_0x829b1a=this[_0x3c1d68(0x45d,0x46b)](_0x47bccb[_0x4628c4][_0x3516d2],_0xe317e9[_0x4628c4][_0x3516d2]):_0x829b1a=this[_0x5c7c2c(0x7a,0xf9)](_0x47bccb[_0x5de7f7],_0xe317e9[_0x5de7f7]),_0x2f883d[_0x5c7c2c(0x89,0x7b)](_0x829b1a);}this[_0x5c7c2c(-0x11,0x2f)]['push'](_0x2f883d);}!this[_0x5c7c2c(0xd9,0xb9)][_0x3c1d68(0x40b,0x3bb)]&&this[_0x5c7c2c(0x30,0x2f)]['reverse']();}['clear'](){delete this[_0x5337fd(-0xc0,-0xa7)],delete this[_0x1725ba(0x4b9,0x45c)],delete this['xmin'];function _0x5337fd(_0x7dbb06,_0x230e98){return _0x2abdaa(_0x230e98,_0x7dbb06- -0x578);}function _0x1725ba(_0x17f2a3,_0x52363b){return _0xf37596(_0x17f2a3,_0x52363b-0xfb);}delete this['xmax'],delete this['ymin'],delete this[_0x1725ba(0x471,0x448)],delete this['grid'],delete this['particles'];}[_0x2abdaa(0x49c,0x48d)](_0x404768,_0x559492){function _0x373c27(_0x32e99b,_0x5d112e){return _0x2abdaa(_0x32e99b,_0x5d112e- -0x161);}const _0x29ce01=(_0x404768-this['xmin'])/(this['xmax']-this['xmin'])*(this[_0x2b9776(0x3a0,0x3de)]-0x1),_0x2da0a3=(this[_0x2b9776(0x38c,0x328)]-_0x559492)/(this['ymax']-this[_0x373c27(0x34c,0x370)])*(this['rows']-0x1);function _0x2b9776(_0x393558,_0x4b4c90){return _0xf37596(_0x4b4c90,_0x393558-0x3f);}return[_0x29ce01,_0x2da0a3];}['getUVByXY'](_0x182621,_0x1cb6f1){if(_0x182621<0x0||_0x182621>=this[_0x357f7c(-0x123,-0x16c)]||_0x1cb6f1>=this[_0x539fe1(0xc7,0x143)])return[0x0,0x0,0x0];const _0x3180cd=Math['floor'](_0x182621),_0x3804b8=Math['floor'](_0x1cb6f1);if(_0x3180cd===_0x182621&&_0x3804b8===_0x1cb6f1)return this['grid'][_0x1cb6f1][_0x182621];const _0x54c1f6=_0x3180cd+0x1,_0x4c72cf=_0x3804b8+0x1,_0x30a9aa=this[_0x539fe1(0xf9,0x7d)](_0x3180cd,_0x3804b8),_0xd208e3=this[_0x357f7c(-0x12e,-0xd8)](_0x54c1f6,_0x3804b8);function _0x357f7c(_0x28b736,_0x3c09cd){return _0xf37596(_0x3c09cd,_0x28b736- -0x484);}function _0x539fe1(_0x41305c,_0x39f1d9){return _0x2abdaa(_0x39f1d9,_0x41305c- -0x3f1);}const _0x485a2e=this[_0x357f7c(-0x12e,-0x120)](_0x3180cd,_0x4c72cf),_0x77b048=this['getUVByXY'](_0x54c1f6,_0x4c72cf);let _0x490384=null;try{_0x490384=this[_0x357f7c(-0xb4,-0xf3)](_0x182621-_0x3180cd,_0x1cb6f1-_0x3804b8,_0x30a9aa,_0xd208e3,_0x485a2e,_0x77b048);}catch(_0x152587){console[_0x539fe1(0x16b,0x141)](_0x182621,_0x1cb6f1);}return _0x490384;}['_bilinearInterpolation'](_0x42df06,_0x56851d,_0x4e822c,_0x135f5d,_0x33d823,_0x446523){const _0x4efa05=0x1-_0x42df06,_0x5c2d41=0x1-_0x56851d,_0x4d825c=_0x4efa05*_0x5c2d41,_0xd60473=_0x42df06*_0x5c2d41,_0x36c99e=_0x4efa05*_0x56851d,_0x30a170=_0x42df06*_0x56851d,_0x321d48=_0x4e822c[0x0]*_0x4d825c+_0x135f5d[0x0]*_0xd60473+_0x33d823[0x0]*_0x36c99e+_0x446523[0x0]*_0x30a170,_0x548165=_0x4e822c[0x1]*_0x4d825c+_0x135f5d[0x1]*_0xd60473+_0x33d823[0x1]*_0x36c99e+_0x446523[0x1]*_0x30a170;return this['_calcUV'](_0x321d48,_0x548165);}['_calcUV'](_0x10dc78,_0x5a795d){return[+_0x10dc78,+_0x5a795d,Math['sqrt'](_0x10dc78*_0x10dc78+_0x5a795d*_0x5a795d)];}[_0x2abdaa(0x502,0x574)](_0x274ec1,_0x9c1512){if(!this['isInExtent'](_0x274ec1,_0x9c1512))return null;const _0x5a60a6=this[_0xa13263(0x195,0x13b)](_0x274ec1,_0x9c1512);function _0x247589(_0x579ce5,_0x495db9){return _0xf37596(_0x495db9,_0x579ce5- -0x177);}const _0x2a09a2=this[_0x247589(0x1df,0x265)](_0x5a60a6[0x0],_0x5a60a6[0x1]);function _0xa13263(_0x29d86b,_0x411d97){return _0xf37596(_0x411d97,_0x29d86b- -0x164);}return _0x2a09a2;}['isInExtent'](_0x542a03,_0x45e093){function _0x3e074d(_0x5d7ac2,_0x1e0322){return _0xf37596(_0x1e0322,_0x5d7ac2- -0x23a);}function _0x5a4f08(_0x271365,_0x3a8142){return _0xf37596(_0x271365,_0x3a8142- -0x4bc);}return _0x542a03>=this[_0x3e074d(0x139,0xb6)]&&_0x542a03<=this[_0x3e074d(0x14f,0x1aa)]&&_0x45e093>=this['ymin']&&_0x45e093<=this['ymax']?!![]:![];}[_0xf37596(0x39b,0x337)](){const _0x3decfc=fRandomByfloat(this['xmin'],this['xmax']),_0x443a0e=fRandomByfloat(this['ymin'],this['ymax']),_0x4f95ea={};_0x4f95ea['lat']=_0x443a0e,_0x4f95ea[_0x18c39a(0x400,0x377)]=_0x3decfc;function _0x18c39a(_0x2ff7ea,_0x4611aa){return _0x2abdaa(_0x4611aa,_0x2ff7ea- -0x7a);}return _0x4f95ea;}[_0xf37596(0x38e,0x39d)](){function _0x9fabc4(_0x4bad43,_0x1f7153){return _0x2abdaa(_0x4bad43,_0x1f7153- -0xc);}let _0x3ebf89,_0x40f612,_0x24fed6;function _0x120c11(_0xa8f303,_0x1e26dd){return _0xf37596(_0x1e26dd,_0xa8f303- -0x502);}for(let _0x3e0561=0x0,_0x49ba3d=this[_0x120c11(-0x1e3,-0x205)]['length'];_0x3e0561<_0x49ba3d;_0x3e0561++){let _0x4ccab6=this['particles'][_0x3e0561];_0x4ccab6[_0x9fabc4(0x469,0x4be)]<=0x0&&(_0x4ccab6=this[_0x120c11(-0x1fa,-0x258)](_0x4ccab6));if(_0x4ccab6[_0x120c11(-0x1cc,-0x1e2)]>0x0){const _0x1fa603=_0x4ccab6['tlng'],_0xaeb6de=_0x4ccab6[_0x9fabc4(0x4e0,0x50c)];_0x24fed6=this['getUVByPoint'](_0x1fa603,_0xaeb6de),_0x24fed6?(_0x3ebf89=_0x1fa603+this[_0x120c11(-0x145,-0xc7)][0x0]*_0x24fed6[0x0],_0x40f612=_0xaeb6de+this[_0x9fabc4(0x5b4,0x545)][0x1]*_0x24fed6[0x1],_0x4ccab6[_0x9fabc4(0x4aa,0x46e)]=_0x1fa603,_0x4ccab6[_0x9fabc4(0x447,0x4a2)]=_0xaeb6de,_0x4ccab6[_0x120c11(-0x183,-0x1a5)]=_0x3ebf89,_0x4ccab6['tlat']=_0x40f612,_0x4ccab6['speed']=_0x24fed6[0x2],_0x4ccab6['age']--):_0x4ccab6[_0x9fabc4(0x52a,0x4be)]=0x0;}}return this[_0x120c11(-0x1e3,-0x246)];}[_0xf37596(0x37a,0x308)](_0x5b39df){let _0x4dc14f,_0x3e348d;for(let _0x4f78d4=0x0;_0x4f78d4<0x1e;_0x4f78d4++){_0x4dc14f=this['getRandomLatLng'](),_0x3e348d=this['getUVByPoint'](_0x4dc14f['lng'],_0x4dc14f[_0x3211d1(-0x1c8,-0x146)]);if(_0x3e348d&&_0x3e348d[0x2]>0x0)break;}function _0x3211d1(_0x4dd6f5,_0x12c8f7){return _0x2abdaa(_0x4dd6f5,_0x12c8f7- -0x5f4);}if(!_0x3e348d)return _0x5b39df;function _0x50a021(_0x1f66ed,_0x5e3175){return _0x2abdaa(_0x1f66ed,_0x5e3175-0xa1);}const _0x5b97cf=_0x4dc14f['lng']+this[_0x3211d1(-0x98,-0xa3)][0x0]*_0x3e348d[0x0],_0x441bda=_0x4dc14f['lat']+this[_0x3211d1(-0x11d,-0xa3)][0x1]*_0x3e348d[0x1];return _0x5b39df[_0x50a021(0x511,0x51b)]=_0x4dc14f[_0x3211d1(-0x203,-0x17a)],_0x5b39df['lat']=_0x4dc14f['lat'],_0x5b39df['tlng']=_0x5b97cf,_0x5b39df[_0x3211d1(-0x128,-0xdc)]=_0x441bda,_0x5b39df['age']=Math[_0x50a021(0x4d1,0x553)](0xa+Math['random']()*this['maxAge']),_0x5b39df[_0x3211d1(-0x14d,-0x18d)]=_0x3e348d[0x2],_0x5b39df;}['destroy'](){for(const _0x33e57c in this){delete this[_0x33e57c];}}}function fRandomByfloat(_0x234cca,_0x395180){return _0x234cca+Math['random']()*(_0x395180-_0x234cca);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x589f7c={}){super(_0x589f7c),this['_setOptionsHook'](_0x589f7c);function _0x44d8a8(_0x296ab2,_0x20e2ad){return _0xf37596(_0x20e2ad,_0x296ab2-0xf);}function _0xd84229(_0x43d53d,_0x12a24d){return _0xf37596(_0x12a24d,_0x43d53d-0xae);}this['canvas']=null,_0x589f7c[_0x44d8a8(0x34a,0x3d2)]&&_0x589f7c['steps']&&(this[_0x44d8a8(0x3c3,0x440)]=new mars3d__namespace['ColorRamp'](_0x589f7c));}['_setOptionsHook'](_0x1593c5,_0x4f0ee4){this['frameTime']=0x3e8/(_0x1593c5[_0x5d5a48(0x1e4,0x1f4)]||0xa),this[_0x4cfb7e(-0x153,-0x111)]=this['options']['pointerEvents']??![],this['color']=_0x1593c5['color']||'#ffffff',this['lineWidth']=_0x1593c5['lineWidth']||0x1;function _0x5d5a48(_0x393679,_0x4f4e19){return _0x2abdaa(_0x393679,_0x4f4e19- -0x281);}function _0x4cfb7e(_0x4ac7d4,_0x1a21bc){return _0x2abdaa(_0x4ac7d4,_0x1a21bc- -0x65c);}this[_0x4cfb7e(-0x1f5,-0x1da)]=_0x1593c5['fixedHeight']??0x0,this[_0x4cfb7e(-0x124,-0x14e)]=_0x1593c5['flipY']??![],this[_0x4cfb7e(-0x168,-0x12a)]&&this['windField']['setOptions'](_0x1593c5);}get[_0x2abdaa(0x4f4,0x501)](){return this['canvas'];}get['canvasWidth'](){function _0x491be8(_0x26f9dc,_0x2ae8d9){return _0x2abdaa(_0x26f9dc,_0x2ae8d9- -0x1f4);}function _0x4b611a(_0x8a739b,_0x4ce0f0){return _0x2abdaa(_0x4ce0f0,_0x8a739b- -0x458);}return this[_0x491be8(0x2b8,0x2fa)][_0x4b611a(0x17,0x45)][_0x491be8(0x2ba,0x29d)]['clientWidth'];}get['canvasHeight'](){function _0x1db0f6(_0x5dabf5,_0x642967){return _0xf37596(_0x642967,_0x5dabf5- -0x214);}function _0x3ee0f9(_0x55b618,_0x471114){return _0xf37596(_0x471114,_0x55b618- -0x28b);}return this[_0x3ee0f9(0xcf,0x96)][_0x3ee0f9(0x50,0x7)]['canvas']['clientHeight'];}get[_0xf37596(0x2bc,0x305)](){return this['_pointerEvents'];}set['pointerEvents'](_0x3651b6){function _0x13c840(_0x6de29a,_0xadcfe2){return _0xf37596(_0xadcfe2,_0x6de29a- -0x371);}this['_pointerEvents']=_0x3651b6;if(!this['canvas'])return;_0x3651b6?this[_0x13c840(-0x74,-0xbb)]['style']['pointer-events']='all':this['canvas']['style']['pointer-events']='none';}get[_0xf37596(0x425,0x3b0)](){return this['options']['particlesNumber'];}set[_0x2abdaa(0x4b9,0x544)](_0x1a6224){function _0xf174ae(_0x2675be,_0x4555c3){return _0xf37596(_0x2675be,_0x4555c3-0xa0);}this['options'][_0x1e3730(-0x49,-0x35)]=_0x1a6224,clearTimeout(this[_0xf174ae(0x31f,0x382)]);function _0x1e3730(_0x3795d8,_0x5bd7ea){return _0x2abdaa(_0x5bd7ea,_0x3795d8- -0x58d);}this['_canrefresh']=setTimeout(()=>{function _0x3b0a81(_0x478e01,_0x4053de){return _0x1e3730(_0x4053de-0x2e6,_0x478e01);}this[_0x3b0a81(0x248,0x1dc)]();},0x1f4);}get['speedRate'](){function _0xa8618(_0xd5542e,_0x5ab2fc){return _0x2abdaa(_0x5ab2fc,_0xd5542e- -0x6c0);}return this['options'][_0xa8618(-0x16d,-0x11c)];}set[_0xf37596(0x3f1,0x3bf)](_0x5d6844){function _0x511cf8(_0x3561d0,_0x170e6e){return _0xf37596(_0x170e6e,_0x3561d0- -0x46f);}this['options']['speedRate']=_0x5d6844,this[_0x511cf8(-0xd1,-0x7a)]&&(this['windField']['speedRate']=_0x5d6844);}get['maxAge'](){function _0x4a5b11(_0x5184e0,_0x306135){return _0xf37596(_0x306135,_0x5184e0- -0x1f);}return this[_0x4a5b11(0x36d,0x2e0)]['maxAge'];}set[_0x2abdaa(0x463,0x486)](_0x389346){this['options'][_0x10cc16(0x32f,0x387)]=_0x389346;function _0x10cc16(_0x42b443,_0x372db5){return _0xf37596(_0x42b443,_0x372db5-0x95);}function _0x18b214(_0x21244e,_0x4306fc){return _0x2abdaa(_0x4306fc,_0x21244e- -0x5a9);}this['windField']&&(this[_0x18b214(-0x77,-0x87)]['maxAge']=_0x389346);}get[_0x2abdaa(0x57e,0x538)](){return this['windData'];}set['data'](_0x231abc){function _0x26a8e0(_0x2ab9d5,_0x166f70){return _0xf37596(_0x2ab9d5,_0x166f70- -0x489);}this[_0x26a8e0(-0xcc,-0x159)](_0x231abc);}get['rectangle'](){let _0xf2b8fd=this['windData']['xmin'],_0xbfa4cf=this[_0xe0eb33(0x4e1,0x4da)]['xmax'],_0x191559=this['windData']['ymin'],_0x3147b2=this['windData']['ymax'];_0xbfa4cf>=0x167&&_0xf2b8fd===0x0&&(_0xf2b8fd=-0xb4,_0xbfa4cf=0xb4);_0xf2b8fd=Math['max'](_0xf2b8fd,-0xb4),_0xbfa4cf=Math['min'](_0xbfa4cf,0xb4),_0x191559=Math['max'](_0x191559,-0x5a);function _0x14bcda(_0x581ab2,_0x27bff1){return _0x2abdaa(_0x27bff1,_0x581ab2- -0x260);}function _0xe0eb33(_0x559833,_0x3ca7d1){return _0xf37596(_0x559833,_0x3ca7d1-0x199);}return _0x3147b2=Math[_0x14bcda(0x27b,0x2bb)](_0x3147b2,0x5a),Cesium[_0xe0eb33(0x518,0x546)][_0xe0eb33(0x439,0x471)](_0xf2b8fd,_0x191559,_0xbfa4cf,_0x3147b2);}[_0x2abdaa(0x575,0x536)](_0x221d69){_0x221d69?this['_addedHook']():(this['windData']&&(this['options']['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x1e097c(_0x1b2908,_0x3f1749){return _0x2abdaa(_0x3f1749,_0x1b2908- -0x5a);}function _0x1d0f9e(_0xb1cc7,_0x3b038e){return _0xf37596(_0xb1cc7,_0x3b038e-0x1bd);}this[_0x1d0f9e(0x555,0x549)]['worker']?this[_0x1d0f9e(0x483,0x507)]():this[_0x1d0f9e(0x510,0x55b)]=new CanvasWindField(this['options']);}['_addedHook'](){function _0x29fb49(_0x4cd95f,_0x510ce6){return _0xf37596(_0x4cd95f,_0x510ce6-0x9a);}this[_0x4c87c9(0x4f,0x3b)]=this[_0x4c87c9(0x86,0x82)]();const _0x39c69b={};_0x39c69b[_0x29fb49(0x48e,0x461)]=!![];function _0x4c87c9(_0x1ff6e5,_0x47f5a0){return _0xf37596(_0x47f5a0,_0x1ff6e5- -0x2ae);}this[_0x4c87c9(0xf5,0xac)]=this[_0x29fb49(0x3a6,0x397)][_0x29fb49(0x391,0x3b1)]('2d',_0x39c69b),this['bindEvent'](),this[_0x29fb49(0x3fe,0x426)]['data']&&this['setData'](this['options'][_0x29fb49(0x3d1,0x43e)]);}['_removedHook'](){function _0x478cdf(_0x3fbe06,_0x20b84b){return _0x2abdaa(_0x20b84b,_0x3fbe06- -0xd3);}function _0x362016(_0x11896b,_0x5f2821){return _0x2abdaa(_0x5f2821,_0x11896b- -0x409);}this[_0x478cdf(0x4a2,0x469)](),this['unbindEvent'](),this[_0x478cdf(0x3be,0x3c4)]&&(this['_map']['container']['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x29f01f=mars3d__namespace[_0x5f320a(0x3a7,0x33b)]['create']('canvas','mars3d-canvasWind',this[_0x2adb81(-0xf2,-0x6f)][_0x5f320a(0x436,0x46b)]);_0x29f01f[_0x5f320a(0x3ec,0x445)]['position']=_0x5f320a(0x402,0x424),_0x29f01f[_0x5f320a(0x3ec,0x3d9)]['top']='0px',_0x29f01f['style']['left']='0px';function _0x5f320a(_0x73e76c,_0x2f7d72){return _0xf37596(_0x2f7d72,_0x73e76c-0x7c);}_0x29f01f[_0x2adb81(-0xdc,-0x8e)]['width']=this['_map']['scene']['canvas']['clientWidth']+'px',_0x29f01f['style'][_0x5f320a(0x367,0x355)]=this['_map']['scene'][_0x5f320a(0x379,0x3fc)][_0x5f320a(0x3d0,0x3a0)]+'px',_0x29f01f['style']['pointerEvents']=this[_0x5f320a(0x433,0x44e)]?_0x2adb81(-0xce,-0xef):'none';function _0x2adb81(_0x53b623,_0x575e9f){return _0xf37596(_0x575e9f,_0x53b623- -0x44c);}return _0x29f01f[_0x5f320a(0x3ec,0x3da)]['zIndex']=this['options']['zIndex']??0x9,_0x29f01f['width']=this['_map'][_0x2adb81(-0x171,-0x1a5)]['canvas'][_0x5f320a(0x42d,0x3cc)],_0x29f01f['height']=this['_map']['scene'][_0x2adb81(-0x14f,-0x136)]['clientHeight'],_0x29f01f;}[_0x2abdaa(0x593,0x57a)](){function _0xa06007(_0x1201e2,_0x2659fe){return _0xf37596(_0x1201e2,_0x2659fe- -0x4d3);}function _0x45d12f(_0x543907,_0x5bf621){return _0x2abdaa(_0x5bf621,_0x543907- -0x559);}this['canvas']&&(this['canvas'][_0xa06007(-0x11d,-0x163)][_0x45d12f(-0x82,-0x81)]=this['_map'][_0x45d12f(-0xea,-0xf5)][_0xa06007(-0x149,-0x1d6)]['clientWidth']+'px',this['canvas'][_0xa06007(-0x19a,-0x163)]['height']=this[_0x45d12f(-0x6b,-0x8d)]['scene'][_0x45d12f(-0xc8,-0x44)][_0x45d12f(-0x71,-0xa6)]+'px',this['canvas']['width']=this[_0x45d12f(-0x6b,0x20)]['scene']['canvas']['clientWidth'],this[_0xa06007(-0x1e1,-0x1d6)]['height']=this['_map']['scene']['canvas'][_0xa06007(-0x1d2,-0x17f)]);}['bindEvent'](){const _0x13e6bc=this;let _0x3167df=Date['now']();(function _0x5ac6fe(){function _0x582bcd(_0x4b1c4e,_0x57c93b){return _0x3c8f(_0x57c93b-0x154,_0x4b1c4e);}function _0x91b752(_0x18741c,_0x3d41e3){return _0x3c8f(_0x3d41e3-0x233,_0x18741c);}if(_0x13e6bc[_0x582bcd(0x37b,0x3b8)])return;_0x13e6bc['_animateFrame']=window[_0x582bcd(0x35d,0x2f4)](_0x5ac6fe);if(_0x13e6bc[_0x91b752(0x3a2,0x422)]&&_0x13e6bc['windField']){const _0x1fdf16=Date['now'](),_0x4f6883=_0x1fdf16-_0x3167df;_0x4f6883>_0x13e6bc['frameTime']&&(_0x3167df=_0x1fdf16-_0x4f6883%_0x13e6bc['frameTime'],_0x13e6bc[_0x582bcd(0x3b3,0x350)]());}}(),window[_0x42caad(-0x130,-0x15d)]('resize',this['resize']['bind'](this),![]),this['mouse_down']=![]);function _0x5eb934(_0x377c06,_0x2218cf){return _0x2abdaa(_0x377c06,_0x2218cf- -0x621);}this['mouse_move']=![];function _0x42caad(_0x206b47,_0x21e54d){return _0x2abdaa(_0x206b47,_0x21e54d- -0x643);}this['options']['mouseHidden']&&(this[_0x42caad(-0x1d1,-0x155)]['on'](mars3d__namespace[_0x42caad(-0x12e,-0xeb)][_0x5eb934(-0x196,-0x125)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x42caad(-0xae,-0xeb)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x42caad(-0x154,-0xeb)]['mouseUp'],this['_onMouseUpEvent'],this));}[_0xf37596(0x3ad,0x3dc)](){function _0x578598(_0x1c7169,_0x38072e){return _0xf37596(_0x1c7169,_0x38072e- -0x44d);}window['cancelAnimationFrame'](this['_animateFrame']);function _0x418a7c(_0x18a378,_0x58e793){return _0x2abdaa(_0x58e793,_0x18a378- -0x43f);}delete this['_animateFrame'],window['removeEventListener'](_0x578598(-0xc,-0x67),this['resize']),this[_0x418a7c(0xe1,0xc9)]['mouseHidden']&&(this[_0x578598(-0x156,-0xf3)]['off'](mars3d__namespace['EventType'][_0x418a7c(0xbd,0x132)],this[_0x578598(-0x1c9,-0x163)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x578598(-0x162,-0xf3)][_0x418a7c(0x6a,0x44)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this[_0x418a7c(0xaf,0x2a)]['off'](mars3d__namespace[_0x418a7c(0x119,0x111)][_0x578598(-0x12a,-0xe7)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x4a43c8){clearTimeout(this['refreshTimer']);if(!this[_0x2cd527(0x453,0x3ea)]||!this['canvas'])return;function _0x2cd527(_0x43b93b,_0x59534a){return _0xf37596(_0x59534a,_0x43b93b-0x10f);}this['canvas']['style']['visibility']='hidden',this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;this['redraw']();function _0x2d8183(_0x1247c5,_0x453404){return _0x2cd527(_0x453404- -0x1fa,_0x1247c5);}this['canvas']['style']['visibility']=_0x2d8183(0x240,0x2a6);},0xc8);}['_onMouseDownEvent'](_0x4ec3e3){this[_0x4516fe(0x567,0x5e9)]=!![],this[_0x4516fe(0x5c3,0x62f)][_0x1a46a8(0x3c,-0x4f)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x4516fe(_0x4be228,_0x123db9){return _0xf37596(_0x123db9,_0x4be228-0x269);}function _0x1a46a8(_0x2df39c,_0x4fdfb0){return _0x2abdaa(_0x4fdfb0,_0x2df39c- -0x46d);}this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}[_0xf37596(0x2d3,0x30d)](_0x29c291){function _0x52b319(_0x3fd9c6,_0xbfdaf8){return _0xf37596(_0xbfdaf8,_0x3fd9c6- -0xc7);}if(!this['show']||!this['canvas'])return;function _0x174094(_0xd7a606,_0x5592ef){return _0xf37596(_0x5592ef,_0xd7a606- -0xe0);}this[_0x174094(0x21e,0x1fe)]&&(this['canvas'][_0x52b319(0x2a9,0x220)][_0x174094(0x2f3,0x281)]=_0x52b319(0x2e8,0x295),this[_0x174094(0x1ec,0x196)]=!![]);}[_0xf37596(0x369,0x3c1)](_0x14ec07){function _0x164b77(_0x30f5ab,_0x31cf41){return _0x2abdaa(_0x30f5ab,_0x31cf41- -0x4b3);}function _0x533b30(_0x1630ad,_0x488467){return _0xf37596(_0x1630ad,_0x488467- -0x368);}if(!this[_0x533b30(-0x48,-0x24)]||!this['canvas'])return;this['_map'][_0x164b77(-0x1,-0xa)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x533b30(-0xba,-0x6a)]&&this['mouse_move']&&this['redraw'](),this[_0x533b30(-0xf5,-0x6b)]['style']['visibility']=_0x533b30(0x93,0x29),this['mouse_down']=![],this['mouse_move']=![];}['setData'](_0x978256){this['clear'](),this['windData']=_0x978256,this['windField']['setDate'](_0x978256),this['redraw']();}['redraw'](){if(!this['show'])return;function _0x29d640(_0x2e9b59,_0x398196){return _0x2abdaa(_0x2e9b59,_0x398196-0xe5);}this['windField']['setOptions'](this[_0x29d640(0x670,0x605)]),this['update']();}['update'](){function _0x52babc(_0x206958,_0x20b93a){return _0xf37596(_0x20b93a,_0x206958-0x238);}if(this[_0x40c2c8(0x3e3,0x469)])return;this[_0x40c2c8(0x3e3,0x374)]=!![];function _0x40c2c8(_0x1317d0,_0x1a9305){return _0xf37596(_0x1a9305,_0x1317d0-0xf2);}if(this['worker'])this['windField']['update']();else{const _0x57e826=this[_0x40c2c8(0x490,0x44b)]['getParticles']();this['_drawLines'](_0x57e826);}this['_updateIng']=![];}[_0xf37596(0x272,0x2cf)](_0x1fb263){this['_canvasParticles']=_0x1fb263,this['canvasContext'][_0x29e103(0x1fe,0x269)]=_0x29e103(0x1ee,0x19c),this['canvasContext'][_0x480c63(0x2d,-0x52)](0x0,0x0,this[_0x480c63(0x72,0xc7)],this[_0x480c63(0x69,0x72)]),this['canvasContext']['globalCompositeOperation']='lighter',this[_0x480c63(0x94,0xd6)]['globalAlpha']=0.9;function _0x480c63(_0x3dbd5c,_0x6f3aa7){return _0xf37596(_0x6f3aa7,_0x3dbd5c- -0x30f);}const _0x10ad3b=this[_0x29e103(0x248,0x2be)][_0x480c63(-0x34,-0xbd)][_0x480c63(0x8b,0x81)]!==Cesium['SceneMode']['SCENE3D'];function _0x29e103(_0x2c5161,_0x174d32){return _0xf37596(_0x174d32,_0x2c5161- -0x112);}const _0x27c4ee=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x5664e2=0x0,_0x593aa9=_0x1fb263['length'];_0x5664e2<_0x593aa9;_0x5664e2++){const _0x31d1e8=_0x1fb263[_0x5664e2],_0x404bbc=this['_tomap'](_0x31d1e8,_0x31d1e8['lng'],_0x31d1e8['lat'],_0x31d1e8['alt']),_0x1d37ba=this['_tomap'](_0x31d1e8,_0x31d1e8[_0x480c63(0x70,0xe3)],_0x31d1e8[_0x480c63(0x75,0x9f)],_0x31d1e8['talt']);if(!_0x404bbc||!_0x1d37ba)continue;if(_0x10ad3b&&Math[_0x29e103(0x1c3,0x15a)](_0x404bbc[0x0]-_0x1d37ba[0x0])>=_0x27c4ee)continue;this[_0x480c63(0x94,0x17)]['beginPath'](),this['canvasContext'][_0x29e103(0x23a,0x231)]=this[_0x480c63(0x3d,0x2e)],this['canvasContext'][_0x480c63(0xd,0xe)]=this[_0x29e103(0x2a2,0x267)]['getColor'](_0x31d1e8[_0x480c63(-0x3c,-0x57)]),this['canvasContext']['moveTo'](_0x404bbc[0x0],_0x404bbc[0x1]),this['canvasContext']['lineTo'](_0x1d37ba[0x0],_0x1d37ba[0x1]),this[_0x29e103(0x291,0x214)]['stroke']();}else{this[_0x480c63(0x94,0x22)]['beginPath'](),this['canvasContext'][_0x480c63(0x3d,-0x35)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x480c63(0x14,0x6f)];for(let _0x1c5dfe=0x0,_0x3f82d7=_0x1fb263[_0x480c63(0x65,0x3e)];_0x1c5dfe<_0x3f82d7;_0x1c5dfe++){const _0x3a8cb3=_0x1fb263[_0x1c5dfe],_0x2ac196=this['_tomap'](_0x3a8cb3,_0x3a8cb3['lng'],_0x3a8cb3[_0x29e103(0x208,0x271)],_0x3a8cb3[_0x29e103(0x2a9,0x2bd)]),_0x4f6343=this[_0x480c63(0xe,-0xd)](_0x3a8cb3,_0x3a8cb3['tlng'],_0x3a8cb3[_0x29e103(0x272,0x242)],_0x3a8cb3['talt']);if(!_0x2ac196||!_0x4f6343)continue;if(_0x10ad3b&&Math['abs'](_0x2ac196[0x0]-_0x4f6343[0x0])>=_0x27c4ee)continue;this['canvasContext']['moveTo'](_0x2ac196[0x0],_0x2ac196[0x1]),this[_0x29e103(0x291,0x221)][_0x480c63(0x56,0x7)](_0x4f6343[0x0],_0x4f6343[0x1]);}this['canvasContext']['stroke']();}}['_tomap'](_0x30a8a9,_0x4e3754,_0x2d8fae,_0x782008){function _0x4a2561(_0x3761f7,_0x3b0262){return _0x2abdaa(_0x3761f7,_0x3b0262- -0x581);}const _0x30f909=Cesium[_0x4a2561(-0xcb,-0x95)]['fromDegrees'](_0x4e3754,_0x2d8fae,_0x782008??this['fixedHeight']);function _0xe9282(_0x17dc5f,_0x160392){return _0xf37596(_0x160392,_0x17dc5f- -0x1b5);}const _0x2eb6be=this[_0x4a2561(-0x10d,-0x93)]['scene'];if(_0x2eb6be['mode']===Cesium['SceneMode']['SCENE3D']){const _0x387cb1=new Cesium[(_0xe9282(0x164,0x19a))](_0x2eb6be['globe']['ellipsoid'],_0x2eb6be['camera']['positionWC']),_0x476707=_0x387cb1['isPointVisible'](_0x30f909);if(!_0x476707)return _0x30a8a9['age']=0x0,null;}const _0x11212e=mars3d__namespace[_0x4a2561(-0x6f,-0xc0)]['toWindowCoordinates'](this['_map'][_0x4a2561(-0x88,-0x112)],_0x30f909);return _0x11212e?[_0x11212e['x'],_0x11212e['y']]:null;}['clear'](){this[_0x14089f(0x572,0x5a7)][_0x203d08(0x2c3,0x248)]();function _0x203d08(_0x3b5698,_0x51f56c){return _0x2abdaa(_0x3b5698,_0x51f56c- -0x32d);}function _0x14089f(_0x3b9681,_0x2d6660){return _0x2abdaa(_0x2d6660,_0x3b9681-0x40);}delete this['windData'];}[_0x2abdaa(0x45b,0x4de)](){this['worker']=new Worker(this['options'][_0x12ac9f(-0xc1,-0x125)]);function _0x2aed6e(_0x2a986c,_0x116b9b){return _0xf37596(_0x2a986c,_0x116b9b-0x6e);}this[_0x12ac9f(-0x1b2,-0x125)]['onmessage']=_0x3d183c=>{function _0x511fd8(_0x44ffff,_0x114ecc){return _0x12ac9f(_0x114ecc,_0x44ffff-0x5cb);}this['_drawLines'](_0x3d183c['data']['particles']),this[_0x511fd8(0x49a,0x423)]=![];};function _0x12ac9f(_0x459aa9,_0x924750){return _0x2abdaa(_0x459aa9,_0x924750- -0x66f);}this['windField']={'init':_0x1c8546=>{function _0x498ec7(_0x5cf1c5,_0x3a2d40){return _0x2aed6e(_0x3a2d40,_0x5cf1c5- -0x358);}const _0x332cab={};_0x332cab['type']='init',_0x332cab[_0x498ec7(0xa2,0x22)]=_0x1c8546,this['worker']['postMessage'](_0x332cab);},'setOptions':_0x2c008e=>{function _0x3112bc(_0x469c60,_0x5aa0b9){return _0x2aed6e(_0x5aa0b9,_0x469c60- -0x299);}const _0x4f5208={};function _0x2b9999(_0x29e1cb,_0x1972f9){return _0x2aed6e(_0x29e1cb,_0x1972f9- -0x3e);}_0x4f5208[_0x3112bc(0xe0,0x110)]=_0x2b9999(0x35d,0x3bb),_0x4f5208['options']=_0x2c008e,this[_0x3112bc(0x18b,0x181)]['postMessage'](_0x4f5208);},'setDate':_0x134d1e=>{const _0x562c86={};_0x562c86['type']='setDate';function _0x1c4039(_0x553471,_0x500d04){return _0x12ac9f(_0x553471,_0x500d04-0x4fa);}_0x562c86['data']=_0x134d1e,this['worker'][_0x1c4039(0x424,0x3f6)](_0x562c86);},'update':()=>{if(this[_0x34e9bb(0x32f,0x2c4)])return;function _0x2e2d3a(_0xf94377,_0x474a63){return _0x2aed6e(_0xf94377,_0x474a63- -0x378);}this['_updateIng2']=!![];const _0x280973={};_0x280973[_0x34e9bb(0x290,0x271)]='update';function _0x34e9bb(_0x35c69a,_0x1a556a){return _0x12ac9f(_0x1a556a,_0x35c69a-0x460);}this[_0x2e2d3a(0xcd,0xac)]['postMessage'](_0x280973);},'clear':()=>{function _0xf259e6(_0x2a9d,_0xd14012){return _0x12ac9f(_0xd14012,_0x2a9d-0x609);}const _0x3dd4c7={};function _0x21592e(_0x39ffe4,_0x1affc1){return _0x12ac9f(_0x1affc1,_0x39ffe4-0x5da);}_0x3dd4c7['type']=_0x21592e(0x4e0,0x4f9),this[_0xf259e6(0x4e4,0x510)]['postMessage'](_0x3dd4c7);}},this[_0x2aed6e(0x3a8,0x40c)][_0x12ac9f(-0x117,-0x128)](this['options']);}}mars3d__namespace['LayerUtil'][_0xf37596(0x2d4,0x340)](_0xf37596(0x3a3,0x3e5),CanvasWindLayer),mars3d__namespace[_0xf37596(0x314,0x36d)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports[_0x2abdaa(0x579,0x542)]=CanvasWindField,exports[_0xf37596(0x38d,0x3e3)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;function _0xf37596(_0xbc0274,_0x44c1d2){return _0x3c8f(_0x44c1d2-0x155,_0xbc0274);}const _0x2b6e37={};_0x2b6e37[_0xf37596(0x370,0x3d4)]=!![],Object[_0x2abdaa(0x499,0x484)](exports,'__esModule',_0x2b6e37);
14
+ 'use strict';(function(_0x87f0f7,_0x8809cb){const _0x16960f=_0x87f0f7();function _0x40a75a(_0x4c980b,_0x4185f0){return _0x8b0c(_0x4c980b-0x31a,_0x4185f0);}function _0x2730d9(_0x353c8d,_0x530f79){return _0x8b0c(_0x530f79- -0x4e,_0x353c8d);}while(!![]){try{const _0x55a46f=-parseInt(_0x2730d9(0x15d,0x19c))/0x1*(-parseInt(_0x2730d9(0x2e,0xb3))/0x2)+-parseInt(_0x2730d9(0xae,0x110))/0x3+parseInt(_0x40a75a(0x4f7,0x579))/0x4*(parseInt(_0x2730d9(0x1f2,0x171))/0x5)+-parseInt(_0x2730d9(0x157,0xf8))/0x6*(parseInt(_0x40a75a(0x492,0x474))/0x7)+parseInt(_0x2730d9(0x19d,0x144))/0x8*(-parseInt(_0x40a75a(0x489,0x466))/0x9)+-parseInt(_0x40a75a(0x3f8,0x46e))/0xa+parseInt(_0x2730d9(0x114,0xd3))/0xb;if(_0x55a46f===_0x8809cb)break;else _0x16960f['push'](_0x16960f['shift']());}catch(_0x184e34){_0x16960f['push'](_0x16960f['shift']());}}}(_0x4cf2,0x90757));function _interopNamespace(_0x431709){if(_0x431709&&_0x431709['__esModule'])return _0x431709;function _0x3581a9(_0x4fc3cc,_0x477355){return _0x8b0c(_0x4fc3cc-0x15b,_0x477355);}var _0x2089c5=Object['create'](null);return _0x431709&&Object['keys'](_0x431709)['forEach'](function(_0x17be8d){function _0x4cda91(_0x556b1c,_0x65f06){return _0x8b0c(_0x556b1c-0x14f,_0x65f06);}if(_0x17be8d!=='default'){var _0x472f4c=Object['getOwnPropertyDescriptor'](_0x431709,_0x17be8d);Object['defineProperty'](_0x2089c5,_0x17be8d,_0x472f4c[_0x4cda91(0x30f,0x29e)]?_0x472f4c:{'enumerable':!![],'get':function(){return _0x431709[_0x17be8d];}});}}),_0x2089c5[_0x3581a9(0x25f,0x2e5)]=_0x431709,_0x2089c5;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x127255,_0x4a3270){function _0x658900(_0x65504e,_0x3aff02){return _0x8b0c(_0x65504e- -0xe6,_0x3aff02);}const _0x4ce5dc=_0x127255*Math[_0x658900(0x40,0x6c)](Cesium$2['Math']['toRadians'](_0x4a3270));return _0x4ce5dc;}function getV(_0x3067c6,_0x316d0c){const _0x326e8f=_0x3067c6*Math['sin'](Cesium$2[_0x189217(0x383,0x30d)]['toRadians'](_0x316d0c));function _0x189217(_0x4e2988,_0x194c62){return _0x8b0c(_0x194c62-0x160,_0x4e2988);}return _0x326e8f;}function getSpeed(_0x530e8f,_0x3144d4){const _0x1e4aa1=Math['sqrt'](Math['pow'](_0x530e8f,0x2)+Math['pow'](_0x3144d4,0x2));return _0x1e4aa1;}function _0x4cf2(){const _0x39c38a=['LayerUtil','refreshTimer','PointTrans','fixedHeight','CLAMP_TO_EDGE','16059505IyBMcY','updateOptions','destroyParticlesTextures','data','keys','cos','getU','LINEAR','layer','getPostProcessingPositionShader','clientWidth','MIN_VALUE','changed','ymin','rows','#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','reverse','min\x20is\x20undefined,\x20calculate\x20min','fillRect','dynamic','xmin','abs','lineWidth','requestRender','width','drawingBufferHeight','number','update','strokeStyle','fromDegrees','updateViewerParameters','IDENTITY','globalCompositeOperation','createParticlesTextures','calculateSpeed','geometry','_updateIng','78BrECeR','options','getUVByPoint','windData','clientHeight','colors','ONE_MINUS_SRC_ALPHA','primitiveType','WindUtil','vmin','outputTexture','_onMapWhellEvent','primitives','round','shaderProgram','green','frameTime','frameRateAdjustment','_setOptionsHook','clear','show','fromGeometry','isPointVisible','original','1015131kWjIWR','particles','remove','warn','vmax','SCENE3D','grid','_bilinearInterpolation','commandList','moveTo','fragmentShaderSource','_calcUV','fromCssColorString','alt','_calc_speedRate','_maxAge','FUNC_ADD','3025179gHdzcK','bind','_addedHook','particlesNumber','initFrameRate','sources','updateWindData','ellipsoid','slice','330981MnGkeZ','#ffffff','quietPeriod','camera','none','blue','create','NEAREST','_canrefresh','reCreateWindTextures','_createCanvas','__proto__','south','SceneMode','getCalculateSpeedShader','canvas','height','lng','componentDatatype','changeOptions','container','push','clearCommand','vertexShaderSource','_onMouseDownEvent','unbindEvent','8ybuSBU','getV','wrapT','removeChild','wind','hidden','pass','ymax','framebuffers','FLOAT','MAX_VALUE','vertexArray','pointer-events','forEach','umin','logInfo','register','_showHook','length','setDate','canvasHeight','lastFramesPerSecond','bounds','onParticlesTextureSizeChange','min','sqrt','visibility','Math','globe','magnificationFilter','lineLength','getDirection','add','commandToExecute','_onMouseMoveEvent','pointerEvents','postProcessingPosition','computing','wrapS','renderState','canvasWidth','getRandomLatLng','modelMatrix','_map','createCommand','205EtMYGY','get','Cartesian2','setData','preExecute','particlesTextureSize','onColorTableChange','getUVByXY','defineProperty','windTextures','frameRateMonitor','longitude','Cesium','age','initWorker','north','_drawLines','segmentsColor','mouseHidden','particlesSpeed','globalAlpha','#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','pixelDatatype','componentsPerAttribute','onmessage','EllipsoidalOccluder','windField','createWindTextures','displayRange','particleSystem','27740sXNbsy','xmax','values','east','latRange','Compute','isInExtent','bufferUsage','uniformMap','flipY','zIndex','_mountedHook','OPAQUE','25957FddSgN','mouseMove','setOptions','toDegrees','morphComplete','west','createRenderingFramebuffers','atan2','minificationFilter','udata','_removedHook','array','_randomParticle','canvasContext','frameRate','RED','pixelSize','mouse_move','colorTable','blendFuncSource','viewerParameters','worker','1489270YlXApG','framebuffer','viewport','redraw','segments','nextParticlesPosition','rawRenderState','lat','cols','getSegmentDrawFragmentShader','_pointerEvents','floor','applyViewerParameters','_tomap','TRIANGLES','mode','updatePosition','0px','type','currentParticlesPosition','owner','bindEvent','__esModule','dropRate','tlng','RGBA','resize','commandType','fromCache','flatMap','speed','WindLayer','talt','willReadFrequently','isDynamic','22DJaMTV','textures','speedFactor','default','style','maxAge','toGridXY','addEventListener','persists','destroy','max','scene','canvasWind','speedRate','EventType','createPrimitives','Draw','cancelAnimationFrame','context','removeEventListener','postMessage','rgb(206,255,255)','color','attributeLocations','rendering','particlesTextures','_updateIng2'];_0x4cf2=function(){return _0x39c38a;};return _0x4cf2();}function getDirection(_0x258a1e,_0x105d66){function _0x18cd8d(_0x42c28a,_0xffa041){return _0x8b0c(_0xffa041-0x306,_0x42c28a);}let _0x4cf530=Cesium$2['Math']['toDegrees'](Math[_0x18cd8d(0x533,0x4f7)](_0x105d66,_0x258a1e));return _0x4cf530+=_0x4cf530<0x0?0x168:0x0,_0x4cf530;}const _0x44aca9={};_0x44aca9[_0x1a7384(0x39f,0x383)]=null,_0x44aca9[_0x177c41(0x267,0x2c8)]=getU,_0x44aca9[_0x177c41(0x2d3,0x2f1)]=getV,_0x44aca9['getSpeed']=getSpeed,_0x44aca9[_0x1a7384(0x3d2,0x3b1)]=getDirection;var WindUtil=_0x44aca9,updatePositionShader=_0x1a7384(0x3c3,0x3d4),calculateSpeedShader=_0x1a7384(0x37c,0x330),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='#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';const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x177c41(0x30b,0x2c1)];class ShaderManager{static[_0x1a7384(0x36e,0x386)](){const _0x5c3721={};return _0x5c3721['sources']=[calculateSpeedShader],new ShaderSource$1(_0x5c3721);}static['getUpdatePositionShader'](){const _0x130ce9={};return _0x130ce9['sources']=[updatePositionShader],new ShaderSource$1(_0x130ce9);}static['getSegmentDrawVertexShader'](){function _0x4bec5(_0xb9c3f7,_0x189f08){return _0x177c41(_0xb9c3f7- -0x72,_0x189f08);}const _0x370704={};return _0x370704[_0x4bec5(0x242,0x28a)]=[renderParticlesVertexShader],new ShaderSource$1(_0x370704);}static[_0x1a7384(0x361,0x2e7)](){const _0x1e5312={};return _0x1e5312['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x1e5312);}static[_0x177c41(0x26a,0x215)](){const _0x2d23c1={};return _0x2d23c1['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x2d23c1);}}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[_0x177c41(0x30b,0x346)];class CustomPrimitive{constructor(_0x115463){this['commandType']=_0x115463['commandType'],this['geometry']=_0x115463[_0xec3e70(0x1e6,0x21c)];function _0xec3e70(_0x549514,_0x40f61d){return _0x177c41(_0x549514- -0x9e,_0x40f61d);}this['attributeLocations']=_0x115463[_0xec3e70(0x1ba,0x14e)],this['primitiveType']=_0x115463['primitiveType'],this['uniformMap']=_0x115463['uniformMap']||{},this['vertexShaderSource']=_0x115463[_0x4af2e0(0x452,0x3d6)],this[_0x4af2e0(0x42b,0x458)]=_0x115463['fragmentShaderSource'];function _0x4af2e0(_0xa22d1d,_0x59388a){return _0x177c41(_0xa22d1d-0x183,_0x59388a);}this[_0xec3e70(0x186,0x194)]=_0x115463[_0xec3e70(0x186,0x216)],this['framebuffer']=_0x115463['framebuffer'],this[_0xec3e70(0x1f2,0x251)]=_0x115463[_0x4af2e0(0x413,0x383)],this['autoClear']=_0x115463['autoClear']??![],this[_0xec3e70(0x265,0x231)]=_0x115463['preExecute'],this[_0xec3e70(0x1fc,0x17f)]=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x115463['isDynamic']??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0xec3e70(0x181,0x1e7)],'pass':Pass$1['OPAQUE']}));}[_0x1a7384(0x43c,0x3be)](_0x1da76e){function _0x53d2bf(_0x467e23,_0x5e7de3){return _0x1a7384(_0x467e23,_0x5e7de3- -0xfb);}function _0x571fb3(_0x19f611,_0x194ea7){return _0x1a7384(_0x19f611,_0x194ea7-0x12a);}if(this[_0x571fb3(0x3b9,0x423)]===_0x53d2bf(0x281,0x216)){const _0x28c8a5={};_0x28c8a5['context']=_0x1da76e,_0x28c8a5['geometry']=this['geometry'],_0x28c8a5[_0x53d2bf(0x1a5,0x21d)]=this[_0x571fb3(0x46f,0x442)],_0x28c8a5['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x4b4a8c=VertexArray$1['fromGeometry'](_0x28c8a5),_0x2bccd2={};_0x2bccd2['context']=_0x1da76e,_0x2bccd2['vertexShaderSource']=this['vertexShaderSource'],_0x2bccd2[_0x53d2bf(0x2a7,0x26d)]=this['fragmentShaderSource'],_0x2bccd2[_0x53d2bf(0x1ab,0x21d)]=this[_0x53d2bf(0x193,0x21d)];const _0x7c6f35=ShaderProgram['fromCache'](_0x2bccd2),_0x2c685e=RenderState[_0x53d2bf(0x216,0x1ff)](this[_0x571fb3(0x48c,0x40e)]),_0x38b8bf={};return _0x38b8bf[_0x571fb3(0x3d5,0x41c)]=this,_0x38b8bf[_0x53d2bf(0x274,0x2a2)]=_0x4b4a8c,_0x38b8bf[_0x53d2bf(0x261,0x252)]=this['primitiveType'],_0x38b8bf[_0x571fb3(0x4ed,0x4e6)]=Matrix4[_0x571fb3(0x476,0x46a)],_0x38b8bf[_0x53d2bf(0x330,0x2be)]=_0x2c685e,_0x38b8bf['shaderProgram']=_0x7c6f35,_0x38b8bf['framebuffer']=this['framebuffer'],_0x38b8bf['uniformMap']=this[_0x571fb3(0x548,0x50f)],_0x38b8bf[_0x571fb3(0x4ab,0x4c2)]=Pass$1[_0x53d2bf(0x2f4,0x2ee)],new DrawCommand(_0x38b8bf);}else{if(this[_0x53d2bf(0x1e5,0x1fe)]==='Compute'){const _0x347ed7={};return _0x347ed7[_0x571fb3(0x40c,0x41c)]=this,_0x347ed7['fragmentShaderSource']=this[_0x53d2bf(0x2c3,0x26d)],_0x347ed7['uniformMap']=this[_0x571fb3(0x4c1,0x50f)],_0x347ed7[_0x571fb3(0x483,0x47a)]=this[_0x571fb3(0x415,0x47a)],_0x347ed7[_0x53d2bf(0x23e,0x20e)]=!![],new ComputeCommand(_0x347ed7);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x409718,_0x157ab7){this['geometry']=_0x157ab7;function _0xeadb43(_0x3fc243,_0x53af28){return _0x177c41(_0x53af28-0x114,_0x3fc243);}function _0xfe6959(_0xa82db2,_0x462fd6){return _0x1a7384(_0xa82db2,_0x462fd6-0x9f);}defined(this['commandToExecute'])&&(this[_0xfe6959(0x4c2,0x452)]['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x409718,'geometry':this[_0xfe6959(0x3b6,0x3e3)],'attributeLocations':this[_0xfe6959(0x3eb,0x3b7)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x177c41(0x27c,0x265)](_0x120edc){if(!this[_0x137803(-0x223,-0x1d2)]())return;function _0x137803(_0x51f5c7,_0x2ffc50){return _0x1a7384(_0x2ffc50,_0x51f5c7- -0x523);}function _0x5c99d6(_0x9e0984,_0x7c6c1c){return _0x1a7384(_0x7c6c1c,_0x9e0984-0x2d);}if(!this['show']||!defined(_0x120edc))return;!defined(this[_0x5c99d6(0x3e0,0x467)])&&(this['commandToExecute']=this['createCommand'](_0x120edc['context']));defined(this[_0x137803(-0x160,-0x15a)])&&this[_0x5c99d6(0x3f0,0x367)]();if(!_0x120edc[_0x5c99d6(0x393,0x35d)]){console[_0x5c99d6(0x38e,0x32c)]('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x120edc['commandList']['push'](this[_0x5c99d6(0x3bb,0x3ed)]),defined(this['commandToExecute'])&&_0x120edc[_0x5c99d6(0x393,0x32d)][_0x137803(-0x196,-0x10e)](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){function _0x15a0c6(_0x139ed8,_0x1ff427){return _0x177c41(_0x139ed8-0xe,_0x1ff427);}if(defined(this[_0x210836(0x4a,0x64)])){var _0x4f326f;(_0x4f326f=this['commandToExecute'][_0x210836(-0x74,0x5)])===null||_0x4f326f===void 0x0||_0x4f326f[_0x210836(-0x5b,-0x45)](),this[_0x210836(0xee,0x64)]['shaderProgram']=undefined;}function _0x210836(_0x4d91cf,_0x23ab6b){return _0x1a7384(_0x4d91cf,_0x23ab6b- -0x34f);}return destroyObject(this);}}function deepMerge(_0x4d2ed4,_0x3a0467){if(!_0x4d2ed4)return _0x3a0467;function _0x203f60(_0x4b1e14,_0x183046){return _0x177c41(_0x4b1e14- -0x372,_0x183046);}if(!_0x3a0467)return _0x4d2ed4;const _0x57a724={..._0x3a0467},_0x4c6c34=_0x57a724;for(const _0x259d3f in _0x4d2ed4){if(Object['prototype']['hasOwnProperty']['call'](_0x4d2ed4,_0x259d3f)){const _0x1caded=_0x4d2ed4[_0x259d3f],_0x2f2057=_0x3a0467[_0x259d3f];if(Array['isArray'](_0x1caded)){_0x4c6c34[_0x259d3f]=_0x1caded[_0x203f60(-0xbb,-0x91)]();continue;}if(_0x1caded&&typeof _0x1caded==='object'){_0x4c6c34[_0x259d3f]=deepMerge(_0x1caded,_0x2f2057||{});continue;}_0x1caded!==undefined&&(_0x4c6c34[_0x259d3f]=_0x1caded);}}return _0x4c6c34;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x5ae948,_0x11bc7d,_0x330a31,_0x5410d9,_0x4555c0){this[_0x495348(0x469,0x44e)]=_0x5ae948,this[_0x41398c(0x26c,0x241)]=_0x330a31,this[_0x495348(0x432,0x414)]=_0x5410d9;function _0x41398c(_0x32d42f,_0x341908){return _0x1a7384(_0x341908,_0x32d42f- -0xdb);}this['windData']=_0x11bc7d,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x588b1c={};function _0x495348(_0x1363ce,_0x2e1a8d){return _0x1a7384(_0x2e1a8d,_0x1363ce-0x156);}_0x588b1c['scene']=_0x4555c0,_0x588b1c['samplingWindow']=0x1,_0x588b1c[_0x495348(0x4d0,0x462)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x588b1c),this[_0x41398c(0x298,0x2ff)](),this[_0x41398c(0x2ff,0x2c6)](),this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){function _0x1f7ffd(_0x49dbe0,_0x167583){return _0x177c41(_0x49dbe0- -0xe6,_0x167583);}const _0x334483=()=>{function _0x2ac9ad(_0x4eddb1,_0x5daf51){return _0x8b0c(_0x4eddb1-0x261,_0x5daf51);}function _0x1467f4(_0x411429,_0xe58869){return _0x8b0c(_0x411429- -0x4f,_0xe58869);}this['frameRateMonitor'][_0x1467f4(0x158,0x16e)]>0x14&&(this['frameRate']=this[_0x2ac9ad(0x42a,0x3f2)][_0x1467f4(0x158,0x1b7)],this[_0x2ac9ad(0x3b8,0x430)]=0x3c/Math['max'](this['frameRate'],0x1));};_0x334483();const _0x8425dd=setInterval(_0x334483,0x3e8),_0x58c524=this[_0x2b2332(0x94,0x3)]['bind'](this);function _0x2b2332(_0x4bc8d0,_0x553fac){return _0x177c41(_0x4bc8d0- -0x1b6,_0x553fac);}this[_0x1f7ffd(0x164,0x157)]=()=>{clearInterval(_0x8425dd),_0x58c524();};}['createWindTextures'](){const _0x1d06ea={};_0x1d06ea['minificationFilter']=TextureMinificationFilter$1[_0x1ca406(0x7b,0x4e)];function _0x4f4ae7(_0x2af05f,_0x4761f2){return _0x1a7384(_0x2af05f,_0x4761f2-0x1be);}function _0x1ca406(_0x316bd8,_0x4d5826){return _0x177c41(_0x4d5826- -0x21a,_0x316bd8);}_0x1d06ea['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x3b7c59={'context':this[_0x1ca406(0x78,0x39)],'width':this[_0x1ca406(0xf7,0x6f)]['width'],'height':this[_0x4f4ae7(0x4f5,0x507)][_0x4f4ae7(0x50e,0x546)],'pixelFormat':PixelFormat$1[_0x4f4ae7(0x50e,0x495)],'pixelDatatype':PixelDatatype$1[_0x4f4ae7(0x528,0x559)],'flipY':this[_0x4f4ae7(0x4fa,0x505)]['flipY']??![],'sampler':new Sampler$1(_0x1d06ea)};this[_0x1ca406(0x92,0xee)]={'U':new Texture$1({..._0x3b7c59,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x3b7c59,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){function _0x573347(_0x530994,_0x1f2129){return _0x177c41(_0x530994- -0x9c,_0x1f2129);}const _0x57023f={};_0x57023f[_0x26a402(-0x44,-0x6)]=TextureMinificationFilter$1['NEAREST'];function _0x26a402(_0x3c83f3,_0x345c22){return _0x1a7384(_0x3c83f3,_0x345c22- -0x3f8);}_0x57023f[_0x26a402(-0x11,-0x49)]=TextureMagnificationFilter$1[_0x573347(0x223,0x1e3)];const _0x28108a={'context':this['context'],'width':this[_0x26a402(-0xf2,-0xb1)]['particlesTextureSize'],'height':this[_0x573347(0x1eb,0x1e8)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x26a402(0x2d,-0x5d)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options']['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x57023f)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x28108a),'currentParticlesPosition':new Texture$1(_0x28108a),'nextParticlesPosition':new Texture$1(_0x28108a),'postProcessingPosition':new Texture$1(_0x28108a),'particlesSpeed':new Texture$1(_0x28108a)};}[_0x1a7384(0x35c,0x323)](){function _0x2595d7(_0x4de6d5,_0x527877){return _0x177c41(_0x527877-0x8c,_0x4de6d5);}function _0x22316b(_0x4231f2,_0x1bbf17){return _0x1a7384(_0x1bbf17,_0x4231f2- -0x456);}Object[_0x22316b(-0x77,-0x8a)](this['particlesTextures'])['forEach'](_0x3f74e3=>_0x3f74e3[_0x2595d7(0x304,0x2d6)]());}['createComputingPrimitives'](){function _0x27d96e(_0x29fcb5,_0x4254be){return _0x177c41(_0x29fcb5-0x111,_0x4254be);}function _0x197040(_0x2b0fe2,_0x1abc11){return _0x1a7384(_0x1abc11,_0x2b0fe2- -0x531);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x197040(-0x14f,-0x15b),'uniformMap':{'U':()=>this[_0x197040(-0x169,-0x1f4)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x27d96e(0x39a,0x3ff)]['u']['min'],this[_0x27d96e(0x39a,0x30d)]['u'][_0x27d96e(0x35c,0x3c7)]),'vRange':()=>new Cartesian2$1(this['windData']['v'][_0x27d96e(0x3fb,0x480)],this[_0x27d96e(0x39a,0x3b1)]['v'][_0x197040(-0x226,-0x291)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this['windData'][_0x197040(-0x235,-0x288)]['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x421093(_0x58594d,_0x4c2161){return _0x197040(_0x58594d-0x44c,_0x4c2161);}function _0x3a7fb6(_0x828860,_0x4c5006){return _0x197040(_0x828860-0x161,_0x4c5006);}return(this[_0x421093(0x1f7,0x252)][_0x3a7fb6(-0xf8,-0xbd)]+0x32)*this[_0x3a7fb6(-0x89,-0x59)][_0x421093(0x21e,0x22f)];},'frameRateAdjustment':()=>this[_0x27d96e(0x3a8,0x381)],'dimension':()=>new Cartesian2$1(this[_0x197040(-0x1e8,-0x18c)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this[_0x27d96e(0x39a,0x3f8)][_0x27d96e(0x3f9,0x438)][_0x27d96e(0x440,0x3cf)],this['windData']['bounds'][_0x197040(-0x1ad,-0x1e4)]),'maximum':()=>new Cartesian2$1(this[_0x27d96e(0x39a,0x3b4)][_0x197040(-0x189,-0x1b9)]['east'],this['windData']['bounds']['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures'][_0x27d96e(0x423,0x479)],'preExecute':()=>{const _0x115fc4=this['particlesTextures']['previousParticlesPosition'];this[_0x4f9157(0x1b9,0x221)]['previousParticlesPosition']=this[_0x484581(0x2e0,0x350)][_0x484581(0x2b7,0x2ea)],this[_0x4f9157(0x196,0x221)]['currentParticlesPosition']=this[_0x4f9157(0x1d0,0x221)][_0x4f9157(0x26e,0x2bd)];function _0x4f9157(_0x1b2259,_0x17aa33){return _0x197040(_0x17aa33-0x438,_0x1b2259);}this['particlesTextures']['postProcessingPosition']=_0x115fc4;function _0x484581(_0x314eab,_0x251ccb){return _0x197040(_0x314eab-0x4f7,_0x251ccb);}this['primitives'][_0x4f9157(0x24b,0x24a)]['commandToExecute']&&(this['primitives']['calculateSpeed'][_0x4f9157(0x2c7,0x2ba)][_0x484581(0x316,0x37f)]=this[_0x4f9157(0x25a,0x221)][_0x4f9157(0x34c,0x2d9)]);},'isDynamic':()=>this['options'][_0x27d96e(0x385,0x39a)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x27d96e(0x36b,0x3a2)]['currentParticlesPosition'],'particlesSpeed':()=>this[_0x197040(-0x217,-0x1ce)][_0x197040(-0x15f,-0x1de)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures'][_0x27d96e(0x334,0x2f7)],'preExecute':()=>{function _0x3504fe(_0x444d21,_0x3418a6){return _0x27d96e(_0x3418a6- -0x294,_0x444d21);}function _0x2fcb6e(_0x2ce483,_0x37fb96){return _0x197040(_0x2ce483-0xdb,_0x37fb96);}this['primitives'][_0x2fcb6e(-0x168,-0xe2)][_0x3504fe(0x139,0x170)]&&(this['primitives'][_0x3504fe(0x65,0xab)]['commandToExecute']['outputTexture']=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this[_0x27d96e(0x398,0x356)][_0x27d96e(0x385,0x327)]}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x197040(-0x217,-0x23a)]['nextParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x197040(-0x15f,-0x1d2)],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData']['bounds'][_0x197040(-0x142,-0x1c0)],this[_0x27d96e(0x39a,0x314)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x27d96e(0x3f9,0x369)][_0x197040(-0x1ad,-0x216)],this[_0x197040(-0x1e8,-0x257)][_0x27d96e(0x3f9,0x3d3)]['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this[_0x197040(-0x1ea,-0x206)]['dropRate'],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this[_0x27d96e(0x398,0x3a7)]['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x2a606b(_0x5b827b,_0xe3924d){return _0x27d96e(_0xe3924d- -0x48f,_0x5b827b);}function _0x490b0d(_0x6dc6bf,_0x172eaf){return _0x197040(_0x172eaf-0x4a2,_0x6dc6bf);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this[_0x2a606b(-0xd9,-0xec)][_0x490b0d(0x341,0x327)][_0x490b0d(0x345,0x324)]['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this['options']['dynamic']})};}['reCreateWindTextures'](){this['windTextures']['U']['destroy'](),this['windTextures']['V']['destroy'](),this['createWindTextures']();}[_0x1a7384(0x3ea,0x375)](_0x108576){function _0x2b6786(_0x422e52,_0x44aed1){return _0x1a7384(_0x44aed1,_0x422e52- -0x3a2);}function _0x329637(_0x4bd386,_0x2d7c01){return _0x1a7384(_0x2d7c01,_0x4bd386- -0x553);}this[_0x329637(-0x20a,-0x285)]=_0x108576,this[_0x329637(-0x1d2,-0x1cd)]();}['updateOptions'](_0x3bd41e){function _0x318539(_0x10b232,_0x15f142){return _0x177c41(_0x15f142-0x87,_0x10b232);}function _0x348190(_0xdbe3e7,_0x2eb05c){return _0x177c41(_0x2eb05c-0xd5,_0xdbe3e7);}const _0xafd84b=_0x3bd41e[_0x318539(0x342,0x3ad)]!==undefined&&_0x3bd41e[_0x348190(0x46c,0x3fb)]!==this[_0x318539(0x354,0x30e)]['flipY'];this['options']=deepMerge(_0x3bd41e,this['options']),_0xafd84b&&this['reCreateWindTextures']();}['processWindData'](_0xc5fe43){function _0x47e49c(_0x82e40e,_0x58587f){return _0x177c41(_0x58587f-0x98,_0x82e40e);}const {array:_0xb2d0ed}=_0xc5fe43;let {min:_0x4a76e7,max:_0xe53df2}=_0xc5fe43;const _0x429953=new Float32Array(_0xb2d0ed[_0x47e49c(0x363,0x37c)]);_0x4a76e7===undefined&&(console['warn'](_0x5c8171(0x27e,0x2d9)),_0x4a76e7=Math['min'](..._0xb2d0ed));_0xe53df2===undefined&&(console[_0x47e49c(0x3be,0x339)]('max\x20is\x20undefined,\x20calculate\x20max'),_0xe53df2=Math['max'](..._0xb2d0ed));const _0x663d43=Math[_0x5c8171(0x257,0x226)](Math[_0x5c8171(0x282,0x312)](_0x4a76e7),Math['abs'](_0xe53df2));for(let _0x3165f1=0x0;_0x3165f1<_0xb2d0ed['length'];_0x3165f1++){const _0x16d0bf=_0xb2d0ed[_0x3165f1]/_0x663d43;_0x429953[_0x3165f1]=_0x16d0bf;}function _0x5c8171(_0x594328,_0x350ef2){return _0x1a7384(_0x350ef2,_0x594328- -0xb4);}return _0x429953;}['destroy'](){function _0x2266ae(_0x403ad6,_0x649d52){return _0x1a7384(_0x649d52,_0x403ad6- -0x4b);}Object[_0x2266ae(0x394,0x3fd)](this['windTextures'])['forEach'](_0x2ef516=>_0x2ef516['destroy']());function _0x2facf9(_0x1f9965,_0x593abc){return _0x177c41(_0x1f9965- -0x2d1,_0x593abc);}Object[_0x2facf9(0x4e,0x39)](this['particlesTextures'])[_0x2facf9(0xe,0x14)](_0xb5eb45=>_0xb5eb45['destroy']()),Object['values'](this[_0x2266ae(0x307,0x311)])[_0x2266ae(0x354,0x33d)](_0x1d6bc2=>_0x1d6bc2['destroy']()),this[_0x2facf9(0x38,-0x15)]['destroy']();}}function _0x8b0c(_0x1eaab1,_0x12ffb3){const _0x4cf200=_0x4cf2();return _0x8b0c=function(_0x8b0c1c,_0x51c5f9){_0x8b0c1c=_0x8b0c1c-0xd2;let _0x5b205c=_0x4cf200[_0x8b0c1c];return _0x5b205c;},_0x8b0c(_0x1eaab1,_0x12ffb3);}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(_0x3eb830,_0x51df03,_0x1be1e5,_0x307e6a){function _0x59c331(_0x1ea728,_0x6bdadf){return _0x177c41(_0x1ea728-0x1ad,_0x6bdadf);}this['context']=_0x3eb830,this[_0x2e08d4(0x410,0x3b2)]=_0x51df03,this['viewerParameters']=_0x1be1e5,this['computing']=_0x307e6a;(typeof this[_0x59c331(0x434,0x3d8)][_0x59c331(0x4b1,0x487)]!==_0x59c331(0x428,0x4a3)||this['options'][_0x2e08d4(0x45c,0x42f)]<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x2e08d4(0x37b,0x3b2)]['particlesTextureSize']=0x100);function _0x2e08d4(_0xd1c0a6,_0x25eb01){return _0x177c41(_0x25eb01-0x12b,_0xd1c0a6);}this[_0x2e08d4(0x36d,0x345)]=this['createColorTableTexture'](),this['textures']=this['createRenderingTextures'](),this[_0x2e08d4(0x3e7,0x405)]=this['createRenderingFramebuffers'](),this[_0x59c331(0x43f,0x456)]=this[_0x59c331(0x3fd,0x444)]();}['createRenderingTextures'](){function _0xe87db7(_0x42ea05,_0xa7186c){return _0x177c41(_0xa7186c-0x132,_0x42ea05);}const _0x272ce3={};_0x272ce3[_0xe87db7(0x3e0,0x385)]=this['context'];function _0xeea94d(_0xa22529,_0x589781){return _0x1a7384(_0x589781,_0xa22529- -0x57f);}_0x272ce3['width']=this['context']['drawingBufferWidth'],_0x272ce3['height']=this['context'][_0xeea94d(-0x245,-0x2b3)],_0x272ce3['pixelFormat']=PixelFormat[_0xeea94d(-0x288,-0x1f9)],_0x272ce3[_0xeea94d(-0x1aa,-0x16c)]=PixelDatatype['UNSIGNED_BYTE'];const _0x35510c=_0x272ce3,_0x39e98c={};_0x39e98c['context']=this[_0xe87db7(0x3f0,0x385)],_0x39e98c['width']=this[_0xeea94d(-0x26c,-0x2d9)]['drawingBufferWidth'],_0x39e98c[_0xeea94d(-0x1f7,-0x182)]=this['context']['drawingBufferHeight'],_0x39e98c['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x39e98c['pixelDatatype']=PixelDatatype['UNSIGNED_INT'];const _0x3b41b3=_0x39e98c;return{'segmentsColor':new Texture(_0x35510c),'segmentsDepth':new Texture(_0x3b41b3)};}[_0x177c41(0x330,0x376)](){const _0x51cdb6={};function _0x1a1ad7(_0xb8ff43,_0x5d496f){return _0x1a7384(_0x5d496f,_0xb8ff43- -0x1e);}_0x51cdb6[_0x1a1ad7(0x2f5,0x37b)]=this['context'],_0x51cdb6['colorTextures']=[this[_0x1a1ad7(0x2e4,0x298)][_0x1a1ad7(0x3b2,0x37a)]],_0x51cdb6['depthTexture']=this['textures']['segmentsDepth'];function _0x698302(_0x1cbb5f,_0x2d3ddc){return _0x1a7384(_0x1cbb5f,_0x2d3ddc- -0x46a);}return{'segments':new Framebuffer(_0x51cdb6)};}['destoryRenderingFramebuffers'](){function _0x312bf3(_0x44407b,_0x494bd3){return _0x177c41(_0x44407b- -0x208,_0x494bd3);}function _0xb9ef97(_0x1cf43a,_0xed57e8){return _0x1a7384(_0xed57e8,_0x1cf43a- -0x538);}Object['values'](this[_0x312bf3(0xd2,0xdb)])[_0xb9ef97(-0x199,-0x142)](_0x32cb7a=>{function _0x4445d4(_0x290202,_0x7342a2){return _0xb9ef97(_0x290202-0x367,_0x7342a2);}_0x32cb7a[_0x4445d4(0x139,0x1ca)]();});}['createColorTableTexture'](){const _0x2d1763=new Float32Array(this['options'][_0x1309a9(0x3f7,0x38f)][_0x1309a9(0x3a7,0x330)](_0x1c3f94=>{function _0x2163c6(_0x169c31,_0x3a38ba){return _0x453201(_0x3a38ba,_0x169c31-0x11e);}function _0x1d7a11(_0x327247,_0x406772){return _0x453201(_0x327247,_0x406772-0x1a4);}const _0x30e73c=Color$1[_0x1d7a11(-0x63,-0x3c)](_0x1c3f94);return[_0x30e73c['red'],_0x30e73c[_0x2163c6(-0xd7,-0x8c)],_0x30e73c[_0x2163c6(-0xaf,-0x7d)],_0x30e73c['alpha']];})),_0x314857={};_0x314857['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x314857['magnificationFilter']=TextureMagnificationFilter[_0x453201(-0x203,-0x222)],_0x314857[_0x453201(-0x1a4,-0x192)]=TextureWrap[_0x1309a9(0x3cc,0x34e)];function _0x1309a9(_0x515f8,_0x5abad7){return _0x1a7384(_0x5abad7,_0x515f8-0xac);}_0x314857[_0x453201(-0x190,-0x1b6)]=TextureWrap[_0x453201(-0x1ba,-0x22a)];function _0x453201(_0x170356,_0x18d720){return _0x177c41(_0x18d720- -0x48a,_0x170356);}return new Texture({'context':this['context'],'width':this[_0x1309a9(0x3f3,0x3ad)][_0x1309a9(0x3f7,0x3a7)]['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x314857),'source':{'width':this[_0x1309a9(0x3f3,0x3f5)][_0x1309a9(0x3f7,0x47a)]['length'],'height':0x1,'arrayBufferView':_0x2d1763}});}['createSegmentsGeometry'](){const _0xaf7e86=0x4,_0x23965a=this['options'][_0x5d5837(0x2cd,0x279)];let _0x1c570e=[];for(let _0x323beb=0x0;_0x323beb<_0x23965a;_0x323beb++){for(let _0x2e9dd0=0x0;_0x2e9dd0<_0x23965a;_0x2e9dd0++){for(let _0x284ddf=0x0;_0x284ddf<_0xaf7e86;_0x284ddf++){_0x1c570e['push'](_0x323beb/_0x23965a),_0x1c570e[_0x5d5837(0x296,0x237)](_0x2e9dd0/_0x23965a);}}}_0x1c570e=new Float32Array(_0x1c570e);const _0x332ae8=this[_0x3d27d5(-0x2,0x23)][_0x5d5837(0x2cd,0x2d4)]**0x2;let _0x4b5a30=[];for(let _0x28c0c1=0x0;_0x28c0c1<_0x332ae8;_0x28c0c1++){_0x4b5a30[_0x5d5837(0x296,0x320)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x4b5a30=new Float32Array(_0x4b5a30);let _0x59a334=[];for(let _0x828170=0x0,_0x309d3a=0x0;_0x828170<_0x332ae8;_0x828170++){_0x59a334['push'](_0x309d3a+0x0,_0x309d3a+0x1,_0x309d3a+0x2,_0x309d3a+0x2,_0x309d3a+0x1,_0x309d3a+0x3),_0x309d3a+=_0xaf7e86;}_0x59a334=new Uint32Array(_0x59a334);const _0x4650e9={};function _0x3d27d5(_0x546586,_0x10a849){return _0x177c41(_0x10a849- -0x264,_0x546586);}_0x4650e9[_0x3d27d5(0x1c,0x66)]=ComponentDatatype['FLOAT'];function _0x5d5837(_0x45d14d,_0x1587d6){return _0x1a7384(_0x1587d6,_0x45d14d- -0xf7);}_0x4650e9[_0x3d27d5(0x115,0xb2)]=0x2,_0x4650e9[_0x3d27d5(0x10b,0xbb)]=_0x1c570e;const _0x154dd3={};_0x154dd3[_0x3d27d5(0x8e,0x66)]=ComponentDatatype[_0x5d5837(0x2a4,0x2e9)],_0x154dd3['componentsPerAttribute']=0x3,_0x154dd3['values']=_0x4b5a30;const _0x234e74=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x4650e9),'normal':new GeometryAttribute(_0x154dd3)}),'indices':_0x59a334});return _0x234e74;}['createRawRenderState'](_0x40aff6){const _0x50770a={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x40aff6};return Appearance['getDefaultRenderState'](!![],![],_0x50770a);}['createPrimitives'](){const _0x1f2df1={};_0x1f2df1['st']=0x0,_0x1f2df1['normal']=0x1;const _0x465158={};function _0x2d6b67(_0x79a23c,_0x55d076){return _0x1a7384(_0x55d076,_0x79a23c- -0x7a);}_0x465158['enabled']=!![];const _0x33071f={};_0x33071f['enabled']=!![],_0x33071f['blendEquation']=WebGLRenderingContext[_0x2d855e(0x203,0x1bc)],_0x33071f[_0x2d6b67(0x261,0x2e9)]=WebGLRenderingContext['SRC_ALPHA'],_0x33071f['blendFuncDestination']=WebGLRenderingContext[_0x2d6b67(0x2d2,0x2db)];const _0x1b3b73={};_0x1b3b73[_0x2d855e(0x175,0x200)]=undefined,_0x1b3b73['depthTest']=_0x465158;function _0x2d855e(_0x4a4a95,_0x1ad8e8){return _0x1a7384(_0x1ad8e8,_0x4a4a95- -0x16b);}_0x1b3b73['depthMask']=!![],_0x1b3b73['blending']=_0x33071f;const _0x28c150=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x1f2df1,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0x2d855e(0x181,0x16b)],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x2d855e(0x1af,0x207)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing'][_0x2d6b67(0x2a0,0x276)]['currentParticlesPosition'],'postProcessingPosition':()=>this['computing']['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing'][_0x2d6b67(0x2a0,0x2aa)]['particlesSpeed'],'frameRateAdjustment':()=>this[_0x2d6b67(0x33d,0x2d0)][_0x2d6b67(0x2dd,0x260)],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x41c24b(_0x2de8e5,_0xfa7fa6){return _0x2d855e(_0x2de8e5-0x1fd,_0xfa7fa6);}function _0x5b7c53(_0x2e6444,_0x1f70a9){return _0x2d855e(_0x2e6444- -0x3ab,_0x1f70a9);}var _0x513a5c,_0x193bb5;const _0x48205d=new Cartesian2(((_0x513a5c=this[_0x5b7c53(-0x1cf,-0x220)]['domain'])===null||_0x513a5c===void 0x0?void 0x0:_0x513a5c[_0x5b7c53(-0x16c,-0x115)])??this[_0x41c24b(0x449,0x439)]['windData']['speed'][_0x41c24b(0x43c,0x477)],((_0x193bb5=this['options']['domain'])===null||_0x193bb5===void 0x0?void 0x0:_0x193bb5['max'])??this[_0x41c24b(0x449,0x4d8)]['windData']['speed'][_0x41c24b(0x39d,0x371)]);return _0x48205d;},'displayRange':()=>{function _0x1b90dd(_0x30a03c,_0xeb83a1){return _0x2d6b67(_0xeb83a1-0x19d,_0x30a03c);}function _0x56727a(_0x4d2d6b,_0x967ffd){return _0x2d855e(_0x4d2d6b-0xfb,_0x967ffd);}var _0xf82422,_0x59c236;const _0x1829c5=new Cartesian2(((_0xf82422=this[_0x56727a(0x2d7,0x357)][_0x1b90dd(0x4bc,0x4fe)])===null||_0xf82422===void 0x0?void 0x0:_0xf82422['min'])??this[_0x1b90dd(0x4a1,0x4da)]['windData'][_0x56727a(0x28c,0x319)][_0x56727a(0x33a,0x32d)],((_0x59c236=this['options']['displayRange'])===null||_0x59c236===void 0x0?void 0x0:_0x59c236[_0x56727a(0x29b,0x272)])??this[_0x56727a(0x347,0x33e)][_0x56727a(0x2d9,0x29d)]['speed']['max']);return _0x1829c5;},'particleHeight':()=>this[_0x2d855e(0x1dc,0x183)]['fixedHeight']||0x0,'aspect':()=>this[_0x2d6b67(0x299,0x28f)]['drawingBufferWidth']/this['context']['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{const _0x11c693={};_0x11c693['min']=0x1;function _0x2c49b5(_0x4a3a02,_0x382338){return _0x2d6b67(_0x382338- -0x2fb,_0x4a3a02);}function _0x3b6a36(_0x151b6b,_0x46abc3){return _0x2d855e(_0x151b6b- -0x3e4,_0x46abc3);}_0x11c693['max']=0x2;const _0x10273a=this[_0x2c49b5(-0x45,-0x2e)][_0x2c49b5(0x24,-0x3e)]||_0x11c693;return new Cartesian2(_0x10273a[_0x2c49b5(0x27,0x35)],_0x10273a['max']);},'lineLength':()=>{const _0x16e16d={};function _0x43df72(_0x333a8e,_0x24d96f){return _0x2d855e(_0x333a8e- -0x43a,_0x24d96f);}_0x16e16d['min']=0x14,_0x16e16d[_0x43df72(-0x29a,-0x277)]=0x64;const _0x5367e8=this['options']['lineLength']||_0x16e16d;return new Cartesian2(_0x5367e8['min'],_0x5367e8['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x2d6b67(0x2e9,0x2c9)],'segmentsDepthTexture':()=>this[_0x2d855e(0x197,0x1c1)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x1b3b73)}),_0x173223={};return _0x173223['segments']=_0x28c150,_0x173223;}['onParticlesTextureSizeChange'](){const _0x5957e2=this['createSegmentsGeometry']();this[_0x531034(-0x95,-0x73)][_0x5f45d9(0x380,0x320)][_0x5f45d9(0x387,0x382)]=_0x5957e2;function _0x5f45d9(_0x4fc9cc,_0x4dec4b){return _0x1a7384(_0x4fc9cc,_0x4dec4b-0x3e);}const _0x18b3cc={};_0x18b3cc['context']=this['context'],_0x18b3cc[_0x5f45d9(0x3b9,0x382)]=_0x5957e2,_0x18b3cc[_0x531034(-0x58,-0xad)]=this['primitives']['segments']['attributeLocations'],_0x18b3cc[_0x5f45d9(0x3e3,0x422)]=BufferUsage['STATIC_DRAW'];const _0x3ec456=VertexArray[_0x5f45d9(0x407,0x399)](_0x18b3cc);function _0x531034(_0x471077,_0x24476e){return _0x177c41(_0x24476e- -0x305,_0x471077);}this['primitives'][_0x531034(-0xf5,-0xe3)][_0x531034(-0x80,-0x12)]&&(this[_0x5f45d9(0x311,0x390)]['segments']['commandToExecute'][_0x5f45d9(0x3a7,0x3db)]=_0x3ec456);}[_0x1a7384(0x43a,0x3c5)](){this['colorTable']['destroy']();function _0x25a5f8(_0x186918,_0x494765){return _0x1a7384(_0x494765,_0x186918- -0x175);}this[_0x25a5f8(0x165,0x1df)]=this['createColorTableTexture']();}['updateOptions'](_0x39c7c7){function _0x536b1b(_0x26fffb,_0x24ca09){return _0x1a7384(_0x24ca09,_0x26fffb- -0x527);}const _0x1db119=_0x39c7c7['colors']&&JSON['stringify'](_0x39c7c7[_0xb51727(0x3df,0x3a9)])!==JSON['stringify'](this['options']['colors']);function _0xb51727(_0x50d8d0,_0x1fa21e){return _0x177c41(_0x1fa21e-0x11e,_0x50d8d0);}this[_0x536b1b(-0x1e0,-0x199)]=deepMerge(_0x39c7c7,this[_0xb51727(0x328,0x3a5)]),_0x1db119&&this[_0x536b1b(-0x162,-0x19e)]();}['destroy'](){Object['values'](this['framebuffers'])['forEach'](_0x45445a=>{_0x45445a['destroy']();});function _0x3115e2(_0x14d24a,_0x4f6a30){return _0x177c41(_0x14d24a-0x225,_0x4f6a30);}Object[_0x518ad2(-0x14c,-0x15a)](this[_0x518ad2(-0x1d9,-0x206)])[_0x518ad2(-0x18c,-0x138)](_0x27c736=>{function _0x2504cd(_0x529706,_0x26e97c){return _0x518ad2(_0x529706-0x419,_0x26e97c);}_0x27c736[_0x2504cd(0x1f8,0x1db)]();});function _0x518ad2(_0x4ad8a8,_0x2546c9){return _0x1a7384(_0x2546c9,_0x4ad8a8- -0x52b);}this['colorTable'][_0x3115e2(0x46f,0x478)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x1a7384(0x436,0x3cb)];class WindParticleSystem{constructor(_0x42543a,_0xb0fe56,_0x208d3c,_0x2f76b6,_0x610e01){this[_0x598a0a(-0x278,-0x2ae)]=_0x42543a,this[_0x598a0a(-0x244,-0x1be)]=_0x208d3c,this['viewerParameters']=_0x2f76b6;function _0x438088(_0x401559,_0x2f458a){return _0x1a7384(_0x401559,_0x2f458a-0x8b);}this['computing']=new WindParticlesComputing(_0x42543a,_0xb0fe56,_0x208d3c,_0x2f76b6,_0x610e01);function _0x598a0a(_0x1f866a,_0x6ef709){return _0x177c41(_0x1f866a- -0x4cb,_0x6ef709);}this['rendering']=new WindParticlesRendering(_0x42543a,_0x208d3c,_0x2f76b6,this['computing']),this['clearFramebuffers']();}['getPrimitives'](){function _0x2e2f18(_0x74d1f3,_0x5759e2){return _0x1a7384(_0x5759e2,_0x74d1f3-0x139);}function _0x454dcc(_0x4d0bc0,_0x1d17e9){return _0x177c41(_0x4d0bc0-0x60,_0x1d17e9);}const _0x3086b0=[this['computing'][_0x2e2f18(0x48b,0x474)][_0x454dcc(0x2e3,0x354)],this[_0x454dcc(0x357,0x315)]['primitives'][_0x2e2f18(0x427,0x42d)],this['computing']['primitives'][_0x2e2f18(0x4ef,0x4e6)],this['rendering']['primitives']['segments']];return _0x3086b0;}['clearFramebuffers'](){const _0x4aceb6=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x2a5f43(0xba,0x109)]});function _0x460636(_0x349158,_0xb03c8e){return _0x177c41(_0x349158- -0xb7,_0xb03c8e);}function _0x2a5f43(_0x10f01f,_0x23e34f){return _0x1a7384(_0x10f01f,_0x23e34f- -0x2e0);}Object[_0x460636(0x1ae,0x212)](this['rendering']['framebuffers'])['forEach'](_0x3654aa=>{_0x4aceb6['framebuffer']=this['rendering'][_0x25e54b(0xf2,0x7b)][_0x3654aa];function _0x25e54b(_0x500ee9,_0x464841){return _0x460636(_0x464841- -0x1a8,_0x500ee9);}_0x4aceb6['execute'](this['context']);});}[_0x1a7384(0x3cb,0x38b)](_0x403ec1){let _0x10b00b=![];_0x403ec1[_0x3619f6(-0x21f,-0x1ad)]&&this['options'][_0x121eec(0x42f,0x45f)]!==_0x403ec1['particlesTextureSize']&&(_0x10b00b=!![]);function _0x3619f6(_0x25364e,_0x28cd0f){return _0x177c41(_0x25364e- -0x523,_0x28cd0f);}function _0x121eec(_0x61a69f,_0x45c2f9){return _0x177c41(_0x45c2f9-0x15b,_0x61a69f);}const _0x9795cf=deepMerge(_0x403ec1,this['options']);if(_0x9795cf['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this[_0x3619f6(-0x29c,-0x299)]=_0x9795cf,this['rendering']['updateOptions'](_0x403ec1),this['computing'][_0x3619f6(-0x2c1,-0x350)](_0x403ec1),_0x10b00b&&(this['computing'][_0x121eec(0x3c4,0x3be)](),this[_0x3619f6(-0x22c,-0x26b)][_0x121eec(0x3f0,0x3dd)](),this[_0x3619f6(-0x2ca,-0x287)][_0x3619f6(-0x23a,-0x20c)]());}[_0x1a7384(0x37b,0x2ea)](_0x74bb85){this[_0x4afabc(0x38,-0x29)]=_0x74bb85;function _0x1b9772(_0xe9f21e,_0x312ecb){return _0x1a7384(_0xe9f21e,_0x312ecb- -0x591);}function _0x4afabc(_0x2b68b7,_0x4138bc){return _0x177c41(_0x4138bc- -0x245,_0x2b68b7);}this[_0x4afabc(0x33,0xb2)]['viewerParameters']=_0x74bb85,this['rendering'][_0x4afabc(-0x90,-0x29)]=_0x74bb85;}['destroy'](){function _0x2c6fc0(_0x16311e,_0x138528){return _0x177c41(_0x138528- -0x13f,_0x16311e);}this['computing'][_0x2c6fc0(0xd7,0x10b)](),this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x1a5023={};_0x1a5023['min']=0x1,_0x1a5023[_0x1a7384(0x2af,0x30b)]=0x2;const _0x3accd5={};_0x3accd5[_0x1a7384(0x43a,0x3aa)]=0x14,_0x3accd5['max']=0x64;const _0x58edc0={};_0x58edc0['particlesTextureSize']=0x64,_0x58edc0['fixedHeight']=0x0,_0x58edc0['lineWidth']=_0x1a5023,_0x58edc0[_0x177c41(0x2f0,0x294)]=_0x3accd5,_0x58edc0[_0x177c41(0x243,0x2cd)]=0x1,_0x58edc0[_0x177c41(0x235,0x2a7)]=0.003,_0x58edc0['dropRateBump']=0.001,_0x58edc0['colors']=[_0x1a7384(0x37f,0x316)],_0x58edc0['flipY']=![],_0x58edc0['dynamic']=!![];const DEF_OPTIONS=_0x58edc0;class WindLayer extends BaseLayer$1{constructor(_0xa38636={}){function _0x39bce0(_0xd478e3,_0x7dc4cb){return _0x177c41(_0xd478e3-0x1bf,_0x7dc4cb);}_0xa38636={...DEF_OPTIONS,..._0xa38636},super(_0xa38636),this[_0x39bce0(0x457,0x4a9)](_0xa38636,_0xa38636);}get[_0x177c41(0x269,0x2c4)](){function _0x408012(_0x35df7b,_0x54a1d5){return _0x1a7384(_0x35df7b,_0x54a1d5- -0x30e);}return this[_0x408012(0x92,0x44)];}get['data'](){return this['options']['data'];}set[_0x1a7384(0x35d,0x324)](_0x545c15){this['options'][_0x2e2a06(-0x180,-0x14c)]=_0x545c15;function _0x2e2a06(_0x51afb0,_0x3e2ec5){return _0x1a7384(_0x3e2ec5,_0x51afb0- -0x4a4);}this['setData'](_0x545c15);}get[_0x1a7384(0x2bb,0x34b)](){function _0x23210c(_0x3e8e7a,_0x5f21ae){return _0x177c41(_0x5f21ae- -0x202,_0x3e8e7a);}return this[_0x23210c(0x25,0x85)]['colors'];}set['colors'](_0x1dd677){function _0x3152c6(_0x2323b7,_0xd130fb){return _0x1a7384(_0xd130fb,_0x2323b7-0x45);}this[_0x3152c6(0x38c,0x40d)]['colors']=_0x1dd677;const _0x15b646={};_0x15b646[_0x3152c6(0x390,0x31e)]=_0x1dd677;function _0x2d0b5b(_0x55ce20,_0x173eb3){return _0x177c41(_0x173eb3-0x1b7,_0x55ce20);}this['_setOptionsHook'](this[_0x2d0b5b(0x4c6,0x43e)],_0x15b646);}['_showHook'](_0x126fd4){function _0x1d1d50(_0x292064,_0x1e2b87){return _0x1a7384(_0x292064,_0x1e2b87- -0x56e);}_0x126fd4?this['_addedHook']():this[_0x1d1d50(-0x25f,-0x29c)]();}['_mountedHook'](){}[_0x177c41(0x2b1,0x27c)](){function _0x25e0a6(_0xd86f60,_0x443a56){return _0x1a7384(_0xd86f60,_0x443a56- -0xb6);}this['scene']=this[_0x25e0a6(0x2d9,0x307)]['scene'],this[_0x25e0a6(0x278,0x2c5)]=this['_map'][_0x59f245(-0x1ba,-0x14f)];this['options']['data']&&this[_0x25e0a6(0x376,0x30c)](this['options']['data']);if(!this['windData']||!this[_0x59f245(-0x1db,-0x257)])return;this['viewerParameters']={'lonRange':new Cesium$1[(_0x59f245(-0x174,-0x118))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this[_0x59f245(-0x1f6,-0x229)](),this['particleSystem']=new WindParticleSystem(this[_0x25e0a6(0x1ee,0x256)]['context'],this['windData'],this['options'],this['viewerParameters'],this[_0x25e0a6(0x259,0x256)]),this[_0x25e0a6(0x248,0x29c)]=this['particleSystem']['getPrimitives'](),this[_0x59f245(-0x1e3,-0x167)]['forEach'](_0x2d16e0=>{function _0x30889d(_0xa44a52,_0x1a71e3){return _0x59f245(_0x1a71e3-0xc7,_0xa44a52);}function _0x57ab95(_0x1bcb86,_0x395d95){return _0x59f245(_0x1bcb86-0x1ba,_0x395d95);}this[_0x57ab95(-0x6f,-0x92)][_0x30889d(-0x10b,-0x11c)][_0x30889d(-0x81,-0xbc)](_0x2d16e0);}),this['camera']['percentageChanged']=0.01,this[_0x59f245(-0x1ba,-0x150)][_0x59f245(-0x208,-0x27a)][_0x59f245(-0x22d,-0x1c9)](this['updateViewerParameters'][_0x25e0a6(0x289,0x2ba)](this)),this['scene'][_0x25e0a6(0x378,0x338)][_0x25e0a6(0x1e4,0x252)](this['updateViewerParameters']['bind'](this));function _0x59f245(_0x1ab446,_0x2bc46d){return _0x1a7384(_0x2bc46d,_0x1ab446- -0x535);}window['addEventListener'](_0x25e0a6(0x252,0x242),this[_0x25e0a6(0x292,0x289)]['bind'](this));}['_removedHook'](){this['camera'][_0x96797c(-0xb9,-0xfb)]['removeEventListener'](this['updateViewerParameters'][_0x4019c6(0x19f,0x1f1)](this)),this['scene']['morphComplete']['removeEventListener'](this['updateViewerParameters']['bind'](this));function _0x96797c(_0x4d78bb,_0xf42e36){return _0x177c41(_0xf42e36- -0x368,_0x4d78bb);}window[_0x4019c6(0x16d,0x195)](_0x96797c(-0xba,-0x130),this['updateViewerParameters'][_0x96797c(-0x105,-0xb8)](this));this[_0x96797c(-0x117,-0xd6)]&&(this[_0x4019c6(0x1d1,0x1d3)][_0x4019c6(0x248,0x220)](_0xac102d=>{function _0x1f9831(_0x546d3c,_0x44172f){return _0x4019c6(_0x546d3c,_0x44172f- -0x327);}function _0x41ab77(_0x2ae82f,_0x2c71af){return _0x4019c6(_0x2c71af,_0x2ae82f- -0x2db);}this[_0x41ab77(-0x14e,-0xf5)][_0x41ab77(-0x108,-0x9a)][_0x1f9831(-0x1cb,-0x146)](_0xac102d);}),delete this['primitives']);function _0x4019c6(_0x220811,_0x578f34){return _0x177c41(_0x578f34- -0xbf,_0x220811);}this[_0x96797c(-0x20,-0x4c)]&&(this['particleSystem']['destroy'](),delete this[_0x4019c6(0x22a,0x25d)]);}['setData'](_0x36e6d3,_0x4cd1d7){function _0x4fe42e(_0x4239e8,_0x9bf520){return _0x177c41(_0x9bf520-0x246,_0x4239e8);}function _0x25c1a5(_0xe7c95,_0x1db929){return _0x1a7384(_0xe7c95,_0x1db929- -0x4c0);}this['windData']=this['processWindData'](_0x36e6d3);if(_0x4cd1d7){this[_0x25c1a5(-0x1f3,-0x1ee)](),this[_0x4fe42e(0x51c,0x4f7)]();return;}this['particleSystem']?(this['particleSystem']['computing']['updateWindData'](this['windData']),this['scene'][_0x4fe42e(0x4b1,0x4be)]()):this[_0x25c1a5(-0xc8,-0x14f)]();}['_setOptionsHook'](_0x2ed3cf,_0x2eee55){function _0x23f497(_0x59f44d,_0x420fc6){return _0x177c41(_0x420fc6- -0x46a,_0x59f44d);}function _0x18b794(_0x27b00b,_0x2e0fcc){return _0x1a7384(_0x27b00b,_0x2e0fcc- -0x1a1);}this['particleSystem']&&(this[_0x23f497(-0x1b3,-0x14e)]['changeOptions'](_0x2eee55),this[_0x18b794(0x17a,0x16b)][_0x23f497(-0x179,-0x1f2)]());}['processWindData'](_0xd61c29){var _0x2246b1,_0x3becb4;function _0x52d978(_0x29dd1b,_0x184122){return _0x177c41(_0x184122- -0x3bd,_0x29dd1b);}const _0x4282ae={..._0xd61c29},_0x590a5b=_0x4282ae;!_0x590a5b['height']&&_0x590a5b['rows']&&(_0x590a5b[_0x126b9c(0x449,0x4b1)]=_0x590a5b[_0x52d978(-0xfb,-0x14e)]);!_0x590a5b[_0x52d978(-0x11b,-0x144)]&&_0x590a5b['cols']&&(_0x590a5b[_0x52d978(-0x125,-0x144)]=_0x590a5b['cols']);!_0x590a5b['bounds']&&(_0x590a5b['bounds']={'west':_0x590a5b['xmin'],'south':_0x590a5b['ymin'],'east':_0x590a5b['xmax'],'north':_0x590a5b[_0x126b9c(0x49d,0x4c2)]});function _0x126b9c(_0xf271c4,_0x2dbd30){return _0x177c41(_0x2dbd30-0x1e9,_0xf271c4);}if(!_0x590a5b['u']){const _0x32c0b0={};_0x32c0b0['array']=_0xd61c29[_0x52d978(-0xd,-0x8a)],_0x32c0b0['min']=_0xd61c29[_0x52d978(-0x75,-0xdd)],_0x32c0b0[_0x126b9c(0x3fa,0x434)]=_0xd61c29['umax'],_0x590a5b['u']=_0x32c0b0;}if(!_0x590a5b['v']){const _0x4397c0={};_0x4397c0[_0x52d978(-0x122,-0x1aa)]=_0xd61c29['vdata'],_0x4397c0['min']=_0xd61c29[_0x126b9c(0x40c,0x478)],_0x4397c0['max']=_0xd61c29[_0x126b9c(0x498,0x48b)],_0x590a5b['v']=_0x4397c0;}if(((_0x2246b1=_0x590a5b['speed'])===null||_0x2246b1===void 0x0?void 0x0:_0x2246b1[_0x52d978(-0x7c,-0xd3)])===undefined||((_0x3becb4=_0x590a5b[_0x52d978(-0x18c,-0x181)])===null||_0x3becb4===void 0x0?void 0x0:_0x3becb4['max'])===undefined||_0x590a5b[_0x52d978(-0x15d,-0x181)][_0x126b9c(0x3e6,0x3fc)]===undefined){const _0x457106={'array':new Float32Array(_0x590a5b['u']['array']['length']),'min':Number[_0x52d978(-0x133,-0xe1)],'max':Number[_0x126b9c(0x3ed,0x455)]};for(let _0x223937=0x0;_0x223937<_0x590a5b['u']['array'][_0x126b9c(0x43e,0x4cd)];_0x223937++){_0x457106['array'][_0x223937]=Math['sqrt'](_0x590a5b['u']['array'][_0x223937]*_0x590a5b['u']['array'][_0x223937]+_0x590a5b['v']['array'][_0x223937]*_0x590a5b['v'][_0x52d978(-0x161,-0x1aa)][_0x223937]),_0x457106['array'][_0x223937]!==0x0&&(_0x457106[_0x126b9c(0x545,0x4d3)]=Math['min'](_0x457106[_0x52d978(-0x92,-0xd3)],_0x457106['array'][_0x223937]),_0x457106['max']=Math['max'](_0x457106[_0x126b9c(0x3c9,0x434)],_0x457106[_0x126b9c(0x3ba,0x3fc)][_0x223937]));}_0x590a5b['speed']=_0x457106;}return _0x590a5b;}[_0x177c41(0x27f,0x264)](){var _0x118d42;const _0x42f519=this['scene'];if(!_0x42f519)return;const _0x3cc770=_0x42f519['canvas'],_0x4323a7={};function _0x3755d0(_0x21cd5b,_0x3364ae){return _0x1a7384(_0x3364ae,_0x21cd5b- -0x162);}_0x4323a7['x']=0x0,_0x4323a7['y']=0x0;const _0x19b4d4={};_0x19b4d4['x']=0x0,_0x19b4d4['y']=_0x3cc770['clientHeight'];const _0x4b86f4={};_0x4b86f4['x']=_0x3cc770['clientWidth'],_0x4b86f4['y']=0x0;const _0x56e0f2={};_0x56e0f2['x']=_0x3cc770['clientWidth'],_0x56e0f2['y']=_0x3cc770[_0x3755d0(0x1e8,0x1bd)];const _0x398db7=[_0x4323a7,_0x19b4d4,_0x4b86f4,_0x56e0f2];let _0x57b3a6=0xb4,_0x3edd2f=-0xb4,_0x25ce78=0x5a;function _0x2534ef(_0x3ece1d,_0x1ab247){return _0x177c41(_0x1ab247-0x230,_0x3ece1d);}let _0x21acc8=-0x5a,_0x3ad56c=![];for(const _0x3007cb of _0x398db7){const _0x5c286d=_0x42f519['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x3007cb['x'],_0x3007cb['y']),_0x42f519['globe']['ellipsoid']);if(!_0x5c286d){_0x3ad56c=!![];break;}const _0x1b1491=_0x42f519[_0x3755d0(0x24c,0x27d)][_0x3755d0(0x214,0x294)]['cartesianToCartographic'](_0x5c286d),_0x3b413c=Cesium$1[_0x3755d0(0x24b,0x1c3)][_0x3755d0(0x28b,0x25a)](_0x1b1491[_0x3755d0(0x268,0x217)]),_0x44d01b=Cesium$1[_0x2534ef(0x59a,0x51d)]['toDegrees'](_0x1b1491['latitude']);_0x57b3a6=Math['min'](_0x57b3a6,_0x3b413c),_0x3edd2f=Math['max'](_0x3edd2f,_0x3b413c),_0x25ce78=Math['min'](_0x25ce78,_0x44d01b),_0x21acc8=Math[_0x3755d0(0x1a9,0x1fe)](_0x21acc8,_0x44d01b);}if(!_0x3ad56c){const _0x4075c9=new Cesium$1['Cartesian2'](Math[_0x2534ef(0x479,0x47b)](this['windData']['bounds']['west'],_0x57b3a6),Math[_0x3755d0(0x248,0x2c9)](this['windData'][_0x3755d0(0x246,0x268)]['east'],_0x3edd2f)),_0x51e01e=new Cesium$1[(_0x2534ef(0x5bc,0x531))](Math[_0x3755d0(0x1a9,0x1b2)](this['windData']['bounds']['south'],_0x25ce78),Math['min'](this['windData']['bounds']['north'],_0x21acc8)),_0x446001=(_0x4075c9['y']-_0x4075c9['x'])*0.05,_0x165cc7=(_0x51e01e['y']-_0x51e01e['x'])*0.05;_0x4075c9['x']=Math[_0x3755d0(0x1a9,0x199)](this[_0x3755d0(0x1e7,0x16c)]['bounds'][_0x3755d0(0x28d,0x271)],_0x4075c9['x']-_0x446001),_0x4075c9['y']=Math['min'](this['windData']['bounds'][_0x3755d0(0x27e,0x26f)],_0x4075c9['y']+_0x446001),_0x51e01e['x']=Math['max'](this['windData']['bounds']['south'],_0x51e01e['x']-_0x165cc7),_0x51e01e['y']=Math['min'](this['windData']['bounds']['north'],_0x51e01e['y']+_0x165cc7),this[_0x3755d0(0x17a,0x1d9)]['lonRange']=_0x4075c9,this['viewerParameters'][_0x3755d0(0x27f,0x250)]=_0x51e01e;const _0x391e07=this[_0x2534ef(0x431,0x4b9)]['bounds']['east']-this[_0x2534ef(0x451,0x4b9)]['bounds']['west'],_0x48582f=this['windData'][_0x2534ef(0x49e,0x518)][_0x2534ef(0x548,0x53e)]-this[_0x2534ef(0x474,0x4b9)]['bounds'][_0x2534ef(0x487,0x4f4)],_0x14390a=(_0x4075c9['y']-_0x4075c9['x'])/_0x391e07,_0x4a8596=(_0x51e01e['y']-_0x51e01e['x'])/_0x48582f,_0x5b7d97=Math['min'](_0x14390a,_0x4a8596),_0xea7635=0x3e8*_0x5b7d97;_0xea7635>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0xea7635)));}this['viewerParameters']['sceneMode']=this['scene'][_0x2534ef(0x472,0x45d)],(_0x118d42=this[_0x3755d0(0x27a,0x2cb)])===null||_0x118d42===void 0x0||_0x118d42['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x5791a1,_0x350ac0){const {bounds:_0x2376b3,width:_0x4bb0d6,height:_0x3edc1d,u:_0x3b582b,v:_0x21e5fa,speed:_0x4b5da0}=this[_0x1d64d9(0x35f,0x343)],{flipY:_0x489c02}=this['options'];if(_0x5791a1<_0x2376b3['west']||_0x5791a1>_0x2376b3['east']||_0x350ac0<_0x2376b3[_0x1d64d9(0x39a,0x3bd)]||_0x350ac0>_0x2376b3['north'])return null;const _0x27beda=(_0x5791a1-_0x2376b3['west'])/(_0x2376b3[_0x48360a(0x2d7,0x33b)]-_0x2376b3['west'])*(_0x4bb0d6-0x1);let _0x53cff2=(_0x350ac0-_0x2376b3[_0x1d64d9(0x39a,0x3e0)])/(_0x2376b3['north']-_0x2376b3[_0x1d64d9(0x39a,0x3da)])*(_0x3edc1d-0x1);function _0x48360a(_0x3faabe,_0x4b0dd5){return _0x1a7384(_0x4b0dd5,_0x3faabe- -0x109);}_0x489c02&&(_0x53cff2=_0x3edc1d-0x1-_0x53cff2);const _0x441800=Math['floor'](_0x27beda),_0x3ab57f=Math['floor'](_0x53cff2),_0x548f88=Math[_0x48360a(0x1e0,0x206)](_0x27beda),_0x1fc5b8=Math[_0x48360a(0x2a1,0x24d)](_0x548f88+0x1,_0x4bb0d6-0x1),_0x4ab909=Math['floor'](_0x53cff2),_0x5a2726=Math['min'](_0x4ab909+0x1,_0x3edc1d-0x1),_0x464a82=_0x27beda-_0x548f88,_0x3b4129=_0x53cff2-_0x4ab909,_0x553506=_0x3ab57f*_0x4bb0d6+_0x441800,_0xbb93c3=_0x4ab909*_0x4bb0d6+_0x548f88,_0x49ad63=_0x4ab909*_0x4bb0d6+_0x1fc5b8,_0x3acecd=_0x5a2726*_0x4bb0d6+_0x548f88,_0x2fd54c=_0x5a2726*_0x4bb0d6+_0x1fc5b8,_0x358023=_0x3b582b['array'][_0xbb93c3],_0x404d38=_0x3b582b['array'][_0x49ad63],_0x1085f0=_0x3b582b[_0x48360a(0x1ca,0x1a0)][_0x3acecd],_0x3ca6e7=_0x3b582b[_0x48360a(0x1ca,0x252)][_0x2fd54c],_0xe6b0b1=(0x1-_0x464a82)*(0x1-_0x3b4129)*_0x358023+_0x464a82*(0x1-_0x3b4129)*_0x404d38+(0x1-_0x464a82)*_0x3b4129*_0x1085f0+_0x464a82*_0x3b4129*_0x3ca6e7,_0xd5b587=_0x21e5fa['array'][_0xbb93c3],_0x174b8f=_0x21e5fa['array'][_0x49ad63],_0x2aa172=_0x21e5fa['array'][_0x3acecd],_0x5e49b7=_0x21e5fa['array'][_0x2fd54c],_0x4bb0c1=(0x1-_0x464a82)*(0x1-_0x3b4129)*_0xd5b587+_0x464a82*(0x1-_0x3b4129)*_0x174b8f+(0x1-_0x464a82)*_0x3b4129*_0x2aa172+_0x464a82*_0x3b4129*_0x5e49b7,_0x443ebc=Math['sqrt'](_0xe6b0b1*_0xe6b0b1+_0x4bb0c1*_0x4bb0c1);function _0x1d64d9(_0x266970,_0x11ccf2){return _0x177c41(_0x266970-0xd6,_0x11ccf2);}const _0x3efca2={};_0x3efca2['u']=_0x3b582b[_0x48360a(0x1ca,0x189)][_0x553506],_0x3efca2['v']=_0x21e5fa['array'][_0x553506],_0x3efca2['speed']=_0x4b5da0['array'][_0x553506];const _0x1de97b={};_0x1de97b['u']=_0xe6b0b1,_0x1de97b['v']=_0x4bb0c1,_0x1de97b[_0x48360a(0x1f3,0x1f4)]=_0x443ebc;const _0x3ff205={};return _0x3ff205[_0x48360a(0x254,0x26a)]=_0x3efca2,_0x3ff205['interpolated']=_0x1de97b,_0x3ff205;}}mars3d__namespace[_0x177c41(0x25c,0x274)][_0x177c41(0x2e2,0x309)](_0x177c41(0x2d6,0x2be),WindLayer),mars3d__namespace[_0x177c41(0x269,0x1e0)][_0x177c41(0x23d,0x1c1)]=WindLayer;class CanvasParticle{constructor(){this[_0x15b0f7(0x466,0x47a)]=null,this[_0x5132c2(0x398,0x314)]=null,this['tlng']=null;function _0x15b0f7(_0x56f5f9,_0x380fa2){return _0x177c41(_0x56f5f9-0x19d,_0x380fa2);}this['tlat']=null,this['age']=null;function _0x5132c2(_0x1af6a2,_0x3925e3){return _0x1a7384(_0x1af6a2,_0x3925e3-0x2f);}this['speed']=null;}['destroy'](){for(const _0x1a7e4f in this){delete this[_0x1a7e4f];}}}class CanvasWindField{constructor(_0x2fe658){this['setOptions'](_0x2fe658);}get[_0x177c41(0x24e,0x1da)](){return this['_speedRate'];}set['speedRate'](_0x5cca1d){this['_speedRate']=(0x64-(_0x5cca1d>0x63?0x63:_0x5cca1d))*0x64;function _0x20c73d(_0x444f34,_0x1fec79){return _0x177c41(_0x1fec79- -0x385,_0x444f34);}this['_calc_speedRate']=[(this['xmax']-this[_0x20c73d(-0x8a,-0x110)])/this['_speedRate'],(this['ymax']-this['ymin'])/this['_speedRate']];}get[_0x177c41(0x246,0x1e6)](){function _0x56ea47(_0x13c972,_0x145fe3){return _0x177c41(_0x145fe3-0x70,_0x13c972);}return this[_0x56ea47(0x2aa,0x31d)];}set['maxAge'](_0x36b4fe){function _0x5d7454(_0x319cf6,_0x960f2a){return _0x177c41(_0x319cf6-0x1a5,_0x960f2a);}this[_0x5d7454(0x452,0x407)]=_0x36b4fe;}['setOptions'](_0x19aca5){this['options']=_0x19aca5,this['maxAge']=_0x19aca5['maxAge']||0x78;function _0x5f3eff(_0x361d81,_0x11ea20){return _0x1a7384(_0x361d81,_0x11ea20-0x7e);}this['speedRate']=_0x19aca5['speedRate']||0x32,this['particles']=[];const _0x93a86d=_0x19aca5['particlesNumber']||0x1000;for(let _0x4ed899=0x0;_0x4ed899<_0x93a86d;_0x4ed899++){const _0x9f0bc6=this[_0x5f3eff(0x36b,0x352)](new CanvasParticle());this['particles']['push'](_0x9f0bc6);}}[_0x1a7384(0x3e8,0x3a5)](_0x5b30f9){this['rows']=_0x5b30f9['rows'],this[_0x6bb274(0x274,0x2a2)]=_0x5b30f9['cols'],this[_0x317c3c(0x49f,0x4d4)]=_0x5b30f9['xmin'],this[_0x317c3c(0x5a4,0x57d)]=_0x5b30f9[_0x317c3c(0x4fd,0x57d)],this[_0x6bb274(0x28f,0x2ea)]=_0x5b30f9[_0x6bb274(0x28f,0x2ea)];function _0x317c3c(_0x3734e8,_0x45d300){return _0x177c41(_0x45d300-0x25f,_0x3734e8);}this[_0x6bb274(0x2d2,0x355)]=_0x5b30f9['ymax'],this[_0x317c3c(0x4d1,0x503)]=[];const _0x17a0e2=_0x5b30f9[_0x317c3c(0x5fd,0x592)],_0x2503f5=_0x5b30f9['vdata'];let _0x14f80a=![];_0x17a0e2['length']===this[_0x317c3c(0x503,0x4ce)]&&_0x17a0e2[0x0]['length']===this[_0x6bb274(0x2fa,0x2a2)]&&(_0x14f80a=!![]);function _0x6bb274(_0xa3e27e,_0x5b4756){return _0x1a7384(_0xa3e27e,_0x5b4756- -0x44);}let _0x5e33af=0x0,_0x246c8f=null,_0x4157b5=null;for(let _0x2ca1ce=0x0;_0x2ca1ce<this['rows'];_0x2ca1ce++){_0x246c8f=[];for(let _0x58f465=0x0;_0x58f465<this[_0x317c3c(0x40a,0x485)];_0x58f465++,_0x5e33af++){_0x14f80a?_0x4157b5=this['_calcUV'](_0x17a0e2[_0x2ca1ce][_0x58f465],_0x2503f5[_0x2ca1ce][_0x58f465]):_0x4157b5=this[_0x317c3c(0x530,0x508)](_0x17a0e2[_0x5e33af],_0x2503f5[_0x5e33af]),_0x246c8f['push'](_0x4157b5);}this[_0x317c3c(0x4a6,0x503)]['push'](_0x246c8f);}!this['options'][_0x317c3c(0x616,0x585)]&&this['grid'][_0x317c3c(0x516,0x4d0)]();}['clear'](){delete this['rows'];function _0x513e46(_0x237a80,_0xfa48c0){return _0x177c41(_0xfa48c0- -0x218,_0x237a80);}delete this['cols'],delete this['xmin'],delete this['xmax'],delete this[_0x513e46(0xbd,0x56)];function _0x4de0a0(_0x4853de,_0x467446){return _0x177c41(_0x4853de- -0x211,_0x467446);}delete this[_0x513e46(0x7e,0xc1)],delete this[_0x4de0a0(0x93,0x117)],delete this['particles'];}[_0x1a7384(0x34f,0x307)](_0x2e0e48,_0x3776f2){function _0x5288d7(_0x5616cb,_0x3723dc){return _0x1a7384(_0x5616cb,_0x3723dc-0x1df);}const _0x2fa5af=(_0x2e0e48-this['xmin'])/(this[_0x5288d7(0x623,0x5bd)]-this['xmin'])*(this['cols']-0x1),_0x1edb4f=(this[_0x28f1d2(-0x79,-0xbf)]-_0x3776f2)/(this[_0x28f1d2(-0x3d,-0xbf)]-this['ymin'])*(this[_0x28f1d2(-0x153,-0x129)]-0x1);function _0x28f1d2(_0x3f3e47,_0x3a1909){return _0x1a7384(_0x3f3e47,_0x3a1909- -0x458);}return[_0x2fa5af,_0x1edb4f];}['getUVByXY'](_0x1ee065,_0x305791){if(_0x1ee065<0x0||_0x1ee065>=this['cols']||_0x305791>=this['rows'])return[0x0,0x0,0x0];const _0x536355=Math[_0x13f78e(0x2b2,0x2a9)](_0x1ee065),_0x5db309=Math['floor'](_0x305791);if(_0x536355===_0x1ee065&&_0x5db309===_0x305791)return this[_0x50ed93(0x1b6,0x242)][_0x305791][_0x1ee065];const _0x1684a7=_0x536355+0x1;function _0x50ed93(_0x1372e1,_0x3b47f4){return _0x177c41(_0x1372e1- -0xee,_0x3b47f4);}const _0x552bae=_0x5db309+0x1;function _0x13f78e(_0x378473,_0x17c7c6){return _0x177c41(_0x378473-0x89,_0x17c7c6);}const _0x102f96=this['getUVByXY'](_0x536355,_0x5db309),_0x251c46=this['getUVByXY'](_0x1684a7,_0x5db309),_0xf5e0a5=this['getUVByXY'](_0x536355,_0x552bae),_0x1ada34=this['getUVByXY'](_0x1684a7,_0x552bae);let _0x498018=null;try{_0x498018=this[_0x13f78e(0x32e,0x306)](_0x1ee065-_0x536355,_0x305791-_0x5db309,_0x102f96,_0x251c46,_0xf5e0a5,_0x1ada34);}catch(_0x4c55aa){console['log'](_0x1ee065,_0x305791);}return _0x498018;}[_0x177c41(0x2a5,0x27d)](_0x3aea2e,_0x2e5a55,_0x360c8d,_0xb8e4ee,_0x4572a,_0x4160f8){const _0x4e7537=0x1-_0x3aea2e,_0x49a7d3=0x1-_0x2e5a55,_0x5c25eb=_0x4e7537*_0x49a7d3,_0x5a84ed=_0x3aea2e*_0x49a7d3,_0xc534ee=_0x4e7537*_0x2e5a55,_0x12fe70=_0x3aea2e*_0x2e5a55,_0x314742=_0x360c8d[0x0]*_0x5c25eb+_0xb8e4ee[0x0]*_0x5a84ed+_0x4572a[0x0]*_0xc534ee+_0x4160f8[0x0]*_0x12fe70,_0x1fc5c6=_0x360c8d[0x1]*_0x5c25eb+_0xb8e4ee[0x1]*_0x5a84ed+_0x4572a[0x1]*_0xc534ee+_0x4160f8[0x1]*_0x12fe70;return this['_calcUV'](_0x314742,_0x1fc5c6);}['_calcUV'](_0x3a5277,_0x519cb6){function _0x261b2f(_0x4f1395,_0x5724d0){return _0x1a7384(_0x5724d0,_0x4f1395- -0x4fb);}return[+_0x3a5277,+_0x519cb6,Math[_0x261b2f(-0x150,-0x1ab)](_0x3a5277*_0x3a5277+_0x519cb6*_0x519cb6)];}['getUVByPoint'](_0x59d47f,_0xa61aad){if(!this['isInExtent'](_0x59d47f,_0xa61aad))return null;const _0x55e0af=this['toGridXY'](_0x59d47f,_0xa61aad),_0x2f4291=this[_0x933a53(0x13e,0x13b)](_0x55e0af[0x0],_0x55e0af[0x1]);function _0x933a53(_0x206fcb,_0x2e6b1e){return _0x177c41(_0x206fcb- -0x1c8,_0x2e6b1e);}return _0x2f4291;}[_0x1a7384(0x450,0x3e3)](_0x46980d,_0x42ae75){function _0x2c8db6(_0xa0828e,_0x4cb1fc){return _0x177c41(_0xa0828e-0x1b2,_0x4cb1fc);}function _0x29c37a(_0x44ec0b,_0x415901){return _0x1a7384(_0x44ec0b,_0x415901- -0x137);}return _0x46980d>=this[_0x29c37a(0x276,0x1fe)]&&_0x46980d<=this[_0x2c8db6(0x4d0,0x51f)]&&_0x42ae75>=this[_0x29c37a(0x235,0x1f7)]&&_0x42ae75<=this['ymax']?!![]:![];}[_0x1a7384(0x42c,0x3bb)](){const _0xc9aa79=fRandomByfloat(this[_0x2228f4(-0xaa,-0x62)],this['xmax']);function _0x2228f4(_0x15b1cd,_0x4dbe25){return _0x177c41(_0x4dbe25- -0x2d7,_0x15b1cd);}const _0x31b7e2=fRandomByfloat(this['ymin'],this['ymax']);function _0x32bb92(_0x4046b1,_0x5b9386){return _0x1a7384(_0x5b9386,_0x4046b1- -0xe6);}const _0x21a788={};return _0x21a788['lat']=_0x31b7e2,_0x21a788[_0x2228f4(-0x7b,-0xe)]=_0xc9aa79,_0x21a788;}['getParticles'](){let _0x594f2b,_0x5ea350,_0x4ac22b;function _0x1fb419(_0x10d50f,_0x12a401){return _0x177c41(_0x10d50f-0x142,_0x12a401);}for(let _0x2a267f=0x0,_0x4c092a=this[_0xe65d02(0x350,0x36a)]['length'];_0x2a267f<_0x4c092a;_0x2a267f++){let _0x3ddc7f=this[_0xe65d02(0x3f0,0x36a)][_0x2a267f];_0x3ddc7f['age']<=0x0&&(_0x3ddc7f=this['_randomParticle'](_0x3ddc7f));if(_0x3ddc7f[_0xe65d02(0x44f,0x3d7)]>0x0){const _0x41b5c4=_0x3ddc7f[_0x1fb419(0x378,0x34a)],_0x3271d0=_0x3ddc7f['tlat'];_0x4ac22b=this[_0x1fb419(0x3ca,0x3c6)](_0x41b5c4,_0x3271d0),_0x4ac22b?(_0x594f2b=_0x41b5c4+this['_calc_speedRate'][0x0]*_0x4ac22b[0x0],_0x5ea350=_0x3271d0+this['_calc_speedRate'][0x1]*_0x4ac22b[0x1],_0x3ddc7f[_0xe65d02(0x3c7,0x394)]=_0x41b5c4,_0x3ddc7f[_0x1fb419(0x367,0x3d6)]=_0x3271d0,_0x3ddc7f['tlng']=_0x594f2b,_0x3ddc7f['tlat']=_0x5ea350,_0x3ddc7f['speed']=_0x4ac22b[0x2],_0x3ddc7f['age']--):_0x3ddc7f['age']=0x0;}}function _0xe65d02(_0x45f09f,_0x514223){return _0x177c41(_0x514223-0xcb,_0x45f09f);}return this[_0x1fb419(0x3e1,0x40a)];}['_randomParticle'](_0x154827){let _0x15409a,_0x5dffe8;for(let _0x5ca4e6=0x0;_0x5ca4e6<0x1e;_0x5ca4e6++){_0x15409a=this['getRandomLatLng'](),_0x5dffe8=this[_0x2f8d22(0x3,0x5c)](_0x15409a['lng'],_0x15409a['lat']);if(_0x5dffe8&&_0x5dffe8[0x2]>0x0)break;}if(!_0x5dffe8)return _0x154827;const _0x28fc86=_0x15409a['lng']+this[_0x38b2bc(-0x1bc,-0x24b)][0x0]*_0x5dffe8[0x0],_0x3a8cac=_0x15409a[_0x2f8d22(0x1c,-0x7)]+this['_calc_speedRate'][0x1]*_0x5dffe8[0x1];_0x154827['lng']=_0x15409a['lng'],_0x154827['lat']=_0x15409a['lat'];function _0x38b2bc(_0x527372,_0x551693){return _0x1a7384(_0x551693,_0x527372- -0x528);}_0x154827[_0x38b2bc(-0x232,-0x1e2)]=_0x28fc86;function _0x2f8d22(_0x1c0c18,_0x5c8434){return _0x177c41(_0x5c8434- -0x22c,_0x1c0c18);}return _0x154827['tlat']=_0x3a8cac,_0x154827['age']=Math[_0x38b2bc(-0x1d5,-0x25d)](0xa+Math['random']()*this[_0x38b2bc(-0x222,-0x2a5)]),_0x154827['speed']=_0x5dffe8[0x2],_0x154827;}[_0x1a7384(0x384,0x30a)](){for(const _0x6634af in this){delete this[_0x6634af];}}}function _0x177c41(_0x538cb8,_0x36dab3){return _0x8b0c(_0x538cb8-0x140,_0x36dab3);}function fRandomByfloat(_0x5bb7c7,_0x5174c0){return _0x5bb7c7+Math['random']()*(_0x5174c0-_0x5bb7c7);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x35318e={}){super(_0x35318e),this['_setOptionsHook'](_0x35318e),this['canvas']=null,_0x35318e['colors']&&_0x35318e['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x35318e));}[_0x1a7384(0x2ec,0x358)](_0x124a1c,_0x39f144){this['frameTime']=0x3e8/(_0x124a1c[_0x31b0da(-0xe1,-0xae)]||0xa),this[_0x49e7c8(0x3e4,0x35f)]=this['options']['pointerEvents']??![],this[_0x49e7c8(0x304,0x38e)]=_0x124a1c['color']||_0x49e7c8(0x44b,0x3f0),this['lineWidth']=_0x124a1c[_0x31b0da(-0x2d,-0x4d)]||0x1;function _0x31b0da(_0x4a3a43,_0x4c2291){return _0x177c41(_0x4c2291- -0x2c4,_0x4a3a43);}this['fixedHeight']=_0x124a1c[_0x31b0da(-0x27,-0x65)]??0x0,this[_0x49e7c8(0x3d0,0x45d)]=_0x124a1c[_0x49e7c8(0x418,0x45d)]??![];function _0x49e7c8(_0x2e66f5,_0x3f29af){return _0x177c41(_0x3f29af-0x137,_0x2e66f5);}this['windField']&&this['windField']['setOptions'](_0x124a1c);}get['layer'](){return this['canvas'];}get[_0x1a7384(0x3c4,0x3ba)](){function _0x5dbebe(_0x51f11a,_0x526be7){return _0x1a7384(_0x526be7,_0x51f11a- -0x389);}return this['_map']['scene'][_0x5dbebe(-0x2,-0x5e)]['clientWidth'];}get['canvasHeight'](){function _0x109b01(_0x1ae446,_0x58e103){return _0x177c41(_0x58e103- -0x428,_0x1ae446);}return this['_map']['scene']['canvas'][_0x109b01(-0x21a,-0x19e)];}get[_0x1a7384(0x34c,0x3b5)](){return this['_pointerEvents'];}set[_0x177c41(0x2f5,0x315)](_0x459fdf){function _0x142864(_0x4163c6,_0x4d7741){return _0x177c41(_0x4163c6- -0x120,_0x4d7741);}this[_0x35459e(-0x316,-0x2b5)]=_0x459fdf;function _0x35459e(_0x83654,_0x5ca2f1){return _0x177c41(_0x5ca2f1- -0x4dd,_0x83654);}if(!this[_0x35459e(-0x1c3,-0x216)])return;_0x459fdf?this[_0x35459e(-0x257,-0x216)][_0x35459e(-0x294,-0x298)][_0x35459e(-0x27f,-0x1ff)]='all':this['canvas']['style'][_0x142864(0x1be,0x1bb)]='none';}get['particlesNumber'](){return this['options']['particlesNumber'];}set[_0x1a7384(0x300,0x372)](_0x529b85){this['options']['particlesNumber']=_0x529b85;function _0xb088f3(_0xcc7555,_0x4cc183){return _0x1a7384(_0x4cc183,_0xcc7555-0xea);}clearTimeout(this['_canrefresh']),this[_0xb088f3(0x46a,0x4e1)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x1a7384(0x2fe,0x30e)](){function _0x1419b3(_0xefc135,_0x2fc82e){return _0x1a7384(_0xefc135,_0x2fc82e- -0x164);}function _0x362f40(_0x3581b5,_0xec58a4){return _0x177c41(_0x3581b5- -0x3d7,_0xec58a4);}return this[_0x362f40(-0x150,-0x154)][_0x362f40(-0x189,-0x193)];}set['speedRate'](_0x412100){function _0x31850e(_0x53ad1c,_0x134b1b){return _0x1a7384(_0x53ad1c,_0x134b1b- -0x586);}this['options'][_0x31850e(-0x2f6,-0x278)]=_0x412100,this['windField']&&(this['windField']['speedRate']=_0x412100);}get[_0x1a7384(0x342,0x306)](){return this['options']['maxAge'];}set['maxAge'](_0x4a9a6a){function _0x3360a1(_0x2fed4b,_0x2aa3b4){return _0x177c41(_0x2fed4b- -0x17f,_0x2aa3b4);}function _0x4d536d(_0x2c270a,_0x105e4b){return _0x1a7384(_0x2c270a,_0x105e4b- -0x2e8);}this[_0x4d536d(0x43,0x5f)]['maxAge']=_0x4a9a6a,this['windField']&&(this[_0x3360a1(0x19a,0x21b)]['maxAge']=_0x4a9a6a);}get['data'](){function _0x55a9b8(_0x54d842,_0x4ed603){return _0x177c41(_0x4ed603-0x184,_0x54d842);}return this[_0x55a9b8(0x431,0x40d)];}set[_0x1a7384(0x38f,0x324)](_0x2b1c46){this['setData'](_0x2b1c46);}get['rectangle'](){let _0x162c33=this['windData'][_0x5b8294(0x329,0x2c2)],_0x115a9d=this['windData'][_0x5b8294(0x3d2,0x351)];function _0x5b8294(_0x1a7a3f,_0x58c6c3){return _0x177c41(_0x1a7a3f-0xb4,_0x58c6c3);}let _0x1d51f3=this['windData'][_0x5b8294(0x322,0x2d9)],_0x50ff99=this['windData']['ymax'];_0x115a9d>=0x167&&_0x162c33===0x0&&(_0x162c33=-0xb4,_0x115a9d=0xb4);function _0x42a3ef(_0x1c5d31,_0x3fc02f){return _0x177c41(_0x3fc02f-0x14,_0x1c5d31);}return _0x162c33=Math[_0x42a3ef(0x276,0x25f)](_0x162c33,-0xb4),_0x115a9d=Math['min'](_0x115a9d,0xb4),_0x1d51f3=Math[_0x42a3ef(0x2cf,0x25f)](_0x1d51f3,-0x5a),_0x50ff99=Math['min'](_0x50ff99,0x5a),Cesium['Rectangle'][_0x42a3ef(0x214,0x292)](_0x162c33,_0x1d51f3,_0x115a9d,_0x50ff99);}[_0x177c41(0x2e3,0x369)](_0x79d973){function _0x334d74(_0x4ec832,_0x2d1670){return _0x177c41(_0x4ec832- -0xa8,_0x2d1670);}function _0x201b54(_0x46627e,_0x3e29b9){return _0x177c41(_0x46627e- -0x2b7,_0x3e29b9);}_0x79d973?this[_0x201b54(-0x6,0x15)]():(this['windData']&&(this['options']['data']=this['windData']),this[_0x201b54(-0xa5,-0x115)]());}[_0x1a7384(0x44c,0x3e8)](){this['options']['worker']?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){function _0x580a4a(_0x5289bb,_0x2a95de){return _0x1a7384(_0x5289bb,_0x2a95de- -0x502);}this['canvas']=this[_0x4f3254(-0x147,-0x1d0)]();const _0xe37f0a={};_0xe37f0a[_0x580a4a(-0x19a,-0x203)]=!![],this['canvasContext']=this[_0x580a4a(-0x1af,-0x17b)]['getContext']('2d',_0xe37f0a);function _0x4f3254(_0x22c76f,_0x24d64a){return _0x1a7384(_0x24d64a,_0x22c76f- -0x4c9);}this[_0x580a4a(-0x193,-0x20f)](),this[_0x580a4a(-0x143,-0x1bb)]['data']&&this['setData'](this[_0x580a4a(-0x1f0,-0x1bb)]['data']);}[_0x177c41(0x212,0x24f)](){this['clear']();function _0x2e959a(_0x3ad8af,_0x729b0){return _0x177c41(_0x3ad8af-0x1bd,_0x729b0);}this['unbindEvent']();function _0x4796ea(_0x13315e,_0x27c5df){return _0x177c41(_0x13315e- -0x368,_0x27c5df);}this['canvas']&&(this['_map'][_0x4796ea(-0x9c,-0xb3)][_0x4796ea(-0x93,-0xd1)](this['canvas']),delete this[_0x4796ea(-0xa1,-0x1e)]);}['_createCanvas'](){const _0x6dd5=mars3d__namespace['DomUtil'][_0x16df24(0x30b,0x33f)]('canvas','mars3d-canvasWind',this['_map']['container']);_0x6dd5['style']['position']='absolute',_0x6dd5['style']['top']=_0x16df24(0x27c,0x1fe),_0x6dd5[_0x3292be(-0x1b3,-0x1b9)]['left']=_0x16df24(0x27c,0x2ad),_0x6dd5['style']['width']=this[_0x16df24(0x34a,0x365)]['scene']['canvas'][_0x16df24(0x2b8,0x296)]+'px',_0x6dd5[_0x16df24(0x292,0x23e)]['height']=this[_0x3292be(-0xfb,-0xb2)]['scene'][_0x16df24(0x314,0x31f)]['clientHeight']+'px',_0x6dd5[_0x3292be(-0x1b3,-0x165)]['pointerEvents']=this['_pointerEvents']?'auto':_0x16df24(0x309,0x38e),_0x6dd5[_0x16df24(0x292,0x2f4)][_0x16df24(0x374,0x3ff)]=this[_0x3292be(-0x171,-0x1ba)][_0x16df24(0x374,0x401)]??0x9;function _0x3292be(_0x10b26d,_0x1ba8f8){return _0x1a7384(_0x1ba8f8,_0x10b26d- -0x4b8);}function _0x16df24(_0x4bc0df,_0x5c5a34){return _0x177c41(_0x4bc0df-0x4d,_0x5c5a34);}return _0x6dd5['width']=this[_0x3292be(-0xfb,-0x11a)]['scene']['canvas'][_0x16df24(0x2b8,0x2ec)],_0x6dd5['height']=this['_map']['scene'][_0x16df24(0x314,0x395)][_0x16df24(0x2d7,0x363)],_0x6dd5;}['resize'](){function _0x579648(_0x297b52,_0x5c3257){return _0x177c41(_0x297b52-0x1b8,_0x5c3257);}function _0x56d4e0(_0x37ade7,_0x4e8cfc){return _0x177c41(_0x37ade7-0xce,_0x4e8cfc);}this['canvas']&&(this['canvas']['style']['width']=this[_0x579648(0x4b5,0x4d7)]['scene']['canvas'][_0x579648(0x423,0x495)]+'px',this[_0x579648(0x47f,0x48f)][_0x56d4e0(0x313,0x2eb)][_0x579648(0x480,0x4e7)]=this['_map']['scene']['canvas'][_0x579648(0x442,0x3e3)]+'px',this['canvas'][_0x579648(0x431,0x425)]=this[_0x579648(0x4b5,0x4e5)]['scene']['canvas'][_0x579648(0x423,0x3e7)],this[_0x56d4e0(0x395,0x33f)][_0x56d4e0(0x396,0x3b4)]=this['_map']['scene']['canvas']['clientHeight']);}['bindEvent'](){const _0x580503=this;let _0x51f18f=Date['now']();(function _0x2c5b6f(){if(_0x580503['isDestroy'])return;function _0x5a4c80(_0x1f591b,_0x1fe606){return _0x8b0c(_0x1f591b-0x38c,_0x1fe606);}_0x580503['_animateFrame']=window['requestAnimationFrame'](_0x2c5b6f);if(_0x580503['show']&&_0x580503['windField']){const _0x5e4a2b=Date['now'](),_0x42ed0b=_0x5e4a2b-_0x51f18f;_0x42ed0b>_0x580503['frameTime']&&(_0x51f18f=_0x5e4a2b-_0x42ed0b%_0x580503[_0x5a4c80(0x4e2,0x4b0)],_0x580503['update']());}}());function _0x27334f(_0x55b9a5,_0x184ddc){return _0x177c41(_0x55b9a5- -0xde,_0x184ddc);}function _0x2638bf(_0x4b9c2a,_0x1ed2ba){return _0x177c41(_0x1ed2ba- -0xcb,_0x4b9c2a);}window['addEventListener']('resize',this['resize'][_0x2638bf(0x26c,0x1e5)](this),![]),this['mouse_down']=![],this[_0x2638bf(0xf7,0x14e)]=![],this['options'][_0x27334f(0x233,0x238)]&&(this[_0x2638bf(0x22f,0x232)]['on'](mars3d__namespace['EventType']['wheel'],this[_0x27334f(0x1b3,0x178)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x27334f(0x1f2,0x1e0)],this),this['_map']['on'](mars3d__namespace[_0x2638bf(0x138,0x184)]['mouseUp'],this['_onMouseUpEvent'],this));}[_0x177c41(0x2d1,0x359)](){window[_0x115a09(-0x3f,0x11)](this['_animateFrame']),delete this['_animateFrame'];function _0x115a09(_0x41b59e,_0x12c776){return _0x177c41(_0x41b59e- -0x291,_0x12c776);}window[_0x115a09(-0x3d,-0x3b)](_0x26a6d9(0x3a6,0x423),this['resize']);function _0x26a6d9(_0x1b4008,_0x481760){return _0x177c41(_0x1b4008-0x16e,_0x481760);}this['options'][_0x115a09(0x80,0xc3)]&&(this['_map']['off'](mars3d__namespace[_0x26a6d9(0x3bd,0x434)]['wheel'],this[_0x26a6d9(0x3ff,0x415)],this),this[_0x26a6d9(0x46b,0x443)]['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x115a09(0x3f,0x85)],this),this['_map']['off'](mars3d__namespace[_0x26a6d9(0x3bd,0x33b)]['mouseUp'],this['_onMouseUpEvent'],this),this[_0x115a09(0x6c,-0x14)]['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x26a6d9(0x462,0x4c5)],this));}[_0x1a7384(0x376,0x351)](_0x4b494d){function _0x4c8dcb(_0x166d3c,_0x2488de){return _0x177c41(_0x2488de- -0xe2,_0x166d3c);}function _0x496939(_0x13563f,_0x25b1ab){return _0x177c41(_0x25b1ab- -0x1a1,_0x13563f);}clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this[_0x4c8dcb(0x184,0x1e5)]['style']['visibility']=_0x496939(0x164,0x136),this[_0x4c8dcb(0x14e,0x17b)]=setTimeout(()=>{if(!this[_0x523ad4(0x82,0xb6)])return;function _0x113c62(_0x524315,_0x4a11fe){return _0x4c8dcb(_0x4a11fe,_0x524315- -0x255);}this[_0x113c62(-0x116,-0x141)]();function _0x523ad4(_0x85d5f6,_0x1494ec){return _0x4c8dcb(_0x85d5f6,_0x1494ec- -0x102);}this['canvas']['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x11d356){function _0x43adf2(_0x59ecc4,_0x5c62e6){return _0x177c41(_0x5c62e6- -0x238,_0x59ecc4);}this['mouse_down']=!![];function _0x16976f(_0x1403ac,_0x58bdf3){return _0x1a7384(_0x58bdf3,_0x1403ac- -0x263);}this[_0x16976f(0x15a,0x171)]['off'](mars3d__namespace[_0x16976f(0xac,0x4e)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x16976f(0x15a,0xf7)]['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x38301e){function _0x26d784(_0x435290,_0x1152b9){return _0x177c41(_0x435290- -0x1ec,_0x1152b9);}function _0x201edb(_0x7a201b,_0x3560ea){return _0x177c41(_0x3560ea- -0x243,_0x7a201b);}if(!this['show']||!this[_0x26d784(0xdb,0xcd)])return;this['mouse_down']&&(this['canvas'][_0x201edb(-0x72,0x2)][_0x201edb(0x10e,0xa9)]='hidden',this[_0x26d784(0x2d,0x90)]=!![]);}['_onMouseUpEvent'](_0x1959fa){if(!this[_0x720a9f(-0x61,-0x56)]||!this['canvas'])return;this[_0x720a9f(0x43,0xd)]['off'](mars3d__namespace['EventType'][_0x720a9f(-0x4d,0x3b)],this[_0x354269(-0x11e,-0x11f)],this);function _0x720a9f(_0x4f9166,_0x18e2e5){return _0x1a7384(_0x4f9166,_0x18e2e5- -0x3b0);}function _0x354269(_0x57f50f,_0x1eba13){return _0x1a7384(_0x1eba13,_0x57f50f- -0x4d2);}this['mouse_down']&&this[_0x720a9f(-0x75,-0xd7)]&&this[_0x354269(-0x1f1,-0x222)](),this[_0x720a9f(-0x8f,-0x29)]['style'][_0x354269(-0x126,-0x18a)]='visible',this['mouse_down']=![],this['mouse_move']=![];}[_0x177c41(0x302,0x335)](_0x34d5e0){this['clear'](),this[_0x43a555(-0xe8,-0x120)]=_0x34d5e0;function _0x5d09e8(_0x518f2b,_0x7fcb63){return _0x1a7384(_0x7fcb63,_0x518f2b- -0x408);}function _0x43a555(_0x51a426,_0x5d978e){return _0x1a7384(_0x5d978e,_0x51a426- -0x431);}this[_0x43a555(-0x58,-0x1f)]['setDate'](_0x34d5e0),this[_0x5d09e8(-0x127,-0x150)]();}[_0x177c41(0x221,0x245)](){function _0x48e86a(_0x747852,_0x20fc57){return _0x1a7384(_0x20fc57,_0x747852- -0x46c);}if(!this['show'])return;this[_0x48e86a(-0x93,-0x51)]['setOptions'](this['options']),this['update']();}[_0x1a7384(0x3a8,0x33c)](){if(this[_0x509c1f(-0x66,-0x32)])return;function _0xb26f82(_0x1dfc9a,_0xb3bb35){return _0x177c41(_0xb3bb35- -0x253,_0x1dfc9a);}this['_updateIng']=!![];if(this[_0x509c1f(-0x24,-0x9a)])this['windField'][_0xb26f82(0x55,0x29)]();else{const _0x20e9f4=this[_0x509c1f(0xe1,0x62)]['getParticles']();this[_0x509c1f(0xb4,0x58)](_0x20e9f4);}function _0x509c1f(_0x4403a8,_0x291969){return _0x177c41(_0x291969- -0x2b7,_0x4403a8);}this['_updateIng']=![];}[_0x177c41(0x30f,0x2d1)](_0x3ad5ec){this['_canvasParticles']=_0x3ad5ec,this['canvasContext'][_0x41f489(-0x147,-0x1b1)]='destination-in',this['canvasContext'][_0x41f489(-0x155,-0xd4)](0x0,0x0,this[_0x2cbc36(-0x159,-0x191)],this[_0x2cbc36(-0x16d,-0x17a)]);function _0x2cbc36(_0xb7e04e,_0x2e58bf){return _0x177c41(_0xb7e04e- -0x453,_0x2e58bf);}this['canvasContext']['globalCompositeOperation']='lighter';function _0x41f489(_0x38a8bb,_0x939c20){return _0x1a7384(_0x939c20,_0x38a8bb- -0x488);}this[_0x2cbc36(-0x23e,-0x1c9)][_0x2cbc36(-0x140,-0xf2)]=0.9;const _0x715b28=this[_0x41f489(-0xcb,-0x6e)]['scene']['mode']!==Cesium[_0x2cbc36(-0x18e,-0x1a5)]['SCENE3D'],_0x5a215d=this[_0x2cbc36(-0x159,-0x1b7)]*0.25;if(this['_colorRamp'])for(let _0x8c8e45=0x0,_0x1b492a=_0x3ad5ec['length'];_0x8c8e45<_0x1b492a;_0x8c8e45++){const _0x3abf59=_0x3ad5ec[_0x8c8e45],_0x471627=this[_0x2cbc36(-0x228,-0x197)](_0x3abf59,_0x3abf59[_0x2cbc36(-0x18a,-0x172)],_0x3abf59[_0x2cbc36(-0x22e,-0x1c5)],_0x3abf59['alt']),_0xa005d3=this['_tomap'](_0x3abf59,_0x3abf59['tlng'],_0x3abf59['tlat'],_0x3abf59['talt']);if(!_0x471627||!_0xa005d3)continue;if(_0x715b28&&Math['abs'](_0x471627[0x0]-_0xa005d3[0x0])>=_0x5a215d)continue;this['canvasContext']['beginPath'](),this[_0x2cbc36(-0x23e,-0x250)]['lineWidth']=this[_0x2cbc36(-0x1dc,-0x160)],this['canvasContext']['strokeStyle']=this['_colorRamp']['getColor'](_0x3abf59['speed']),this['canvasContext']['moveTo'](_0x471627[0x0],_0x471627[0x1]),this['canvasContext']['lineTo'](_0xa005d3[0x0],_0xa005d3[0x1]),this['canvasContext']['stroke']();}else{this['canvasContext']['beginPath'](),this['canvasContext'][_0x2cbc36(-0x1dc,-0x17e)]=this[_0x41f489(-0x151,-0x16a)],this['canvasContext'][_0x41f489(-0x14b,-0xe6)]=this[_0x2cbc36(-0x1fc,-0x253)];for(let _0x335c4b=0x0,_0x31dced=_0x3ad5ec[_0x41f489(-0xe4,-0xcb)];_0x335c4b<_0x31dced;_0x335c4b++){const _0xe02391=_0x3ad5ec[_0x335c4b],_0x3f8175=this[_0x2cbc36(-0x228,-0x21f)](_0xe02391,_0xe02391['lng'],_0xe02391[_0x2cbc36(-0x22e,-0x271)],_0xe02391[_0x2cbc36(-0x1a8,-0x188)]),_0x49c1f1=this['_tomap'](_0xe02391,_0xe02391[_0x41f489(-0x192,-0x1da)],_0xe02391['tlat'],_0xe02391[_0x2cbc36(-0x215,-0x204)]);if(!_0x3f8175||!_0x49c1f1)continue;if(_0x715b28&&Math['abs'](_0x3f8175[0x0]-_0x49c1f1[0x0])>=_0x5a215d)continue;this['canvasContext'][_0x2cbc36(-0x1ac,-0x1bd)](_0x3f8175[0x0],_0x3f8175[0x1]),this[_0x2cbc36(-0x23e,-0x281)]['lineTo'](_0x49c1f1[0x0],_0x49c1f1[0x1]);}this['canvasContext']['stroke']();}}[_0x177c41(0x22b,0x20f)](_0x599f34,_0x103ec7,_0x570e21,_0x5b4205){function _0x42bef1(_0x5263ae,_0x2fd33f){return _0x1a7384(_0x2fd33f,_0x5263ae-0x163);}const _0x5601f0=Cesium['Cartesian3']['fromDegrees'](_0x103ec7,_0x570e21,_0x5b4205??this[_0x42bef1(0x482,0x511)]),_0x13330c=this[_0x42bef1(0x520,0x544)][_0x42bef1(0x46f,0x42c)];if(_0x13330c['mode']===Cesium[_0x409507(0x1aa,0x19c)][_0x409507(0x123,0x17a)]){const _0x1bfa6e=new Cesium[(_0x42bef1(0x53b,0x546))](_0x13330c['globe'][_0x42bef1(0x4d9,0x52a)],_0x13330c[_0x42bef1(0x4de,0x4b9)]['positionWC']),_0x38535e=_0x1bfa6e[_0x409507(0x1be,0x173)](_0x5601f0);if(!_0x38535e)return _0x599f34[_0x42bef1(0x52f,0x501)]=0x0,null;}function _0x409507(_0x37f342,_0x33ff03){return _0x1a7384(_0x37f342,_0x33ff03- -0x1e9);}const _0x1cc0ba=mars3d__namespace[_0x409507(0xc3,0x135)]['toWindowCoordinates'](this[_0x409507(0x1c7,0x1d4)]['scene'],_0x5601f0);return _0x1cc0ba?[_0x1cc0ba['x'],_0x1cc0ba['y']]:null;}[_0x177c41(0x299,0x28a)](){this[_0x16001e(0x419,0x487)]['clear']();function _0x16001e(_0x196e0c,_0x2e77d5){return _0x1a7384(_0x2e77d5,_0x196e0c-0x40);}delete this['windData'];}[_0x177c41(0x30d,0x2f1)](){function _0x40c7a9(_0x4aa371,_0x3a1bd5){return _0x1a7384(_0x3a1bd5,_0x4aa371- -0x99);}function _0x176487(_0x26e8a8,_0x59ef8f){return _0x177c41(_0x59ef8f-0x29e,_0x26e8a8);}this[_0x40c7a9(0x244,0x2d4)]=new Worker(this[_0x40c7a9(0x2ae,0x21e)]['worker']),this['worker'][_0x40c7a9(0x33e,0x2b1)]=_0x3c707e=>{this['_drawLines'](_0x3c707e['data']['particles']),this['_updateIng2']=![];},this[_0x176487(0x567,0x5b7)]={'init':_0x1f32b0=>{const _0x542ab4={};function _0x3cfc7b(_0x246ad6,_0x5156d4){return _0x40c7a9(_0x246ad6-0x211,_0x5156d4);}_0x542ab4['type']='init',_0x542ab4['options']=_0x1f32b0,this['worker'][_0x3cfc7b(0x48d,0x445)](_0x542ab4);},'setOptions':_0xe7be91=>{const _0x255f23={};function _0x571a4d(_0xa845b3,_0xffa48d){return _0x40c7a9(_0xffa48d- -0x97,_0xa845b3);}_0x255f23['type']=_0x571a4d(0x2e6,0x2bc),_0x255f23['options']=_0xe7be91,this['worker']['postMessage'](_0x255f23);},'setDate':_0x32e44f=>{const _0x4a9ff4={};function _0x1d23ce(_0x108225,_0x22c51e){return _0x176487(_0x108225,_0x22c51e- -0x525);}function _0x6e4e53(_0x661142,_0x59f663){return _0x176487(_0x661142,_0x59f663- -0x258);}_0x4a9ff4['type']='setDate',_0x4a9ff4['data']=_0x32e44f,this[_0x1d23ce(-0x20,-0x6a)][_0x1d23ce(0x3,-0x32)](_0x4a9ff4);},'update':()=>{if(this['_updateIng2'])return;this[_0x4241f3(0x1b3,0x126)]=!![];function _0x25c598(_0x341d47,_0x4b2042){return _0x40c7a9(_0x341d47- -0x531,_0x4b2042);}const _0x1b538f={};function _0x4241f3(_0x5184f7,_0x5ae52d){return _0x176487(_0x5ae52d,_0x5184f7- -0x346);}_0x1b538f[_0x25c598(-0x2da,-0x2e0)]='update',this[_0x25c598(-0x2ed,-0x36d)]['postMessage'](_0x1b538f);},'clear':()=>{const _0x53eebe={};_0x53eebe[_0x5d41da(0x436,0x42c)]=_0x5094a4(-0xbd,-0xc9);function _0x5094a4(_0x38120d,_0x379d61){return _0x40c7a9(_0x379d61- -0x389,_0x38120d);}function _0x5d41da(_0x448cc8,_0x204944){return _0x40c7a9(_0x448cc8-0x1df,_0x204944);}this['worker']['postMessage'](_0x53eebe);}},this[_0x40c7a9(0x340,0x31a)]['init'](this['options']);}}mars3d__namespace[_0x177c41(0x25c,0x23b)]['register'](_0x177c41(0x24d,0x230),CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log'][_0x1a7384(0x315,0x3a1)]('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x1a7384(0x3d3,0x34e)]=WindUtil;const _0x3e1e1d={};_0x3e1e1d['value']=!![];function _0x1a7384(_0x10c052,_0x46c94a){return _0x8b0c(_0x46c94a-0x200,_0x10c052);}Object[_0x177c41(0x307,0x299)](exports,_0x177c41(0x234,0x2a6),_0x3e1e1d);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.9.11",
3
+ "version": "3.10.0",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.9.11"
8
+ "mars3d": "~3.10.0"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"