mars3d-wind 3.9.8 → 3.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/mars3d-wind.js +3 -3
  2. package/package.json +2 -2
package/mars3d-wind.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.9.8
5
- * 编译日期:2025-04-28 21:03
4
+ * 版本信息:v3.9.9
5
+ * 编译日期:2025-05-07 09:33
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:火星科技免费公开版 ,2025-02-01
8
8
  */
@@ -11,5 +11,5 @@
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';(function(_0xd7598a,_0x5a8680){function _0x501c4e(_0x2067aa,_0x5268fe){return _0x534b(_0x5268fe-0x328,_0x2067aa);}const _0x5753e5=_0xd7598a();function _0x202ca9(_0x19a8d7,_0x5a11dd){return _0x534b(_0x5a11dd- -0xcd,_0x19a8d7);}while(!![]){try{const _0x496cbc=parseInt(_0x202ca9(0x77,0x96))/0x1+parseInt(_0x501c4e(0x515,0x4c5))/0x2*(parseInt(_0x501c4e(0x38f,0x3fd))/0x3)+parseInt(_0x501c4e(0x4d1,0x4f0))/0x4+-parseInt(_0x501c4e(0x416,0x45d))/0x5+-parseInt(_0x501c4e(0x4a3,0x510))/0x6*(-parseInt(_0x202ca9(0x15f,0x105))/0x7)+parseInt(_0x202ca9(0x108,0x8c))/0x8*(-parseInt(_0x202ca9(0xc8,0xa4))/0x9)+parseInt(_0x501c4e(0x55c,0x513))/0xa;if(_0x496cbc===_0x5a8680)break;else _0x5753e5['push'](_0x5753e5['shift']());}catch(_0xf4017a){_0x5753e5['push'](_0x5753e5['shift']());}}}(_0x19e8,0xef02f));function _interopNamespace(_0x424701){if(_0x424701&&_0x424701['__esModule'])return _0x424701;var _0x527bbf=Object[_0x5c0e80(0x3bd,0x349)](null);_0x424701&&Object['keys'](_0x424701)['forEach'](function(_0x3c69cd){function _0x34d4a7(_0x17108b,_0x4794ec){return _0x5c0e80(_0x4794ec,_0x17108b- -0x350);}if(_0x3c69cd!=='default'){var _0x778373=Object[_0x34d4a7(0x2,0x57)](_0x424701,_0x3c69cd);Object['defineProperty'](_0x527bbf,_0x3c69cd,_0x778373['get']?_0x778373:{'enumerable':!![],'get':function(){return _0x424701[_0x3c69cd];}});}});function _0x5c0e80(_0x539e66,_0x56bc08){return _0x534b(_0x56bc08-0x1d7,_0x539e66);}return _0x527bbf['default']=_0x424701,_0x527bbf;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x15ecec,_0x2958ec){const _0xb487b2=_0x15ecec*Math['cos'](Cesium$2['Math']['toRadians'](_0x2958ec));return _0xb487b2;}function getV(_0x5dc67,_0x21663f){const _0x12f050=_0x5dc67*Math[_0x427892(-0x8d,-0xd0)](Cesium$2[_0x427892(-0x34,-0x1b)][_0x427892(-0x9c,-0x18)](_0x21663f));function _0x1ccb1c(_0x4a96f1,_0x33c2ee){return _0x534b(_0x33c2ee-0x3aa,_0x4a96f1);}function _0x427892(_0x24bf0a,_0x4eb6b2){return _0x534b(_0x24bf0a- -0x1be,_0x4eb6b2);}return _0x12f050;}function getSpeed(_0x248f26,_0x2aeb36){const _0x16fb82=Math[_0xae892b(0xd1,0x130)](Math[_0xae892b(0x9c,0x127)](_0x248f26,0x2)+Math[_0x4e8188(0x79,0xeb)](_0x2aeb36,0x2));function _0xae892b(_0x45258e,_0x1e0603){return _0x534b(_0x45258e- -0xdb,_0x1e0603);}function _0x4e8188(_0x3c276f,_0x3d91e0){return _0x534b(_0x3c276f- -0xfe,_0x3d91e0);}return _0x16fb82;}function getDirection(_0x29f7a6,_0x5b33ae){let _0x5721fa=Cesium$2['Math'][_0x1156ff(0xf7,0xe7)](Math['atan2'](_0x5b33ae,_0x29f7a6));function _0x1156ff(_0x11f54b,_0x3bc3dc){return _0x534b(_0x11f54b- -0xb0,_0x3bc3dc);}return _0x5721fa+=_0x5721fa<0x0?0x168:0x0,_0x5721fa;}const _0x36d175={};_0x36d175[_0x35412f(0x29,-0x3)]=null,_0x36d175[_0x4e9bfa(0x113,0x88)]=getU,_0x36d175[_0x35412f(0x54,0xb2)]=getV,_0x36d175[_0x35412f(0x118,0x196)]=getSpeed,_0x36d175[_0x35412f(0x80,0xfc)]=getDirection;var WindUtil=_0x36d175,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader=_0x35412f(0xe7,0xb9),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['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x3e5ffa={};return _0x3e5ffa['sources']=[calculateSpeedShader],new ShaderSource$1(_0x3e5ffa);}static['getUpdatePositionShader'](){function _0x2b1c4b(_0x414590,_0x29453d){return _0x4e9bfa(_0x29453d- -0x33a,_0x414590);}const _0x4a3d5b={};return _0x4a3d5b[_0x2b1c4b(-0x1de,-0x244)]=[updatePositionShader],new ShaderSource$1(_0x4a3d5b);}static['getSegmentDrawVertexShader'](){const _0x191e8b={};function _0x29b55a(_0x309eda,_0xbc2503){return _0x4e9bfa(_0xbc2503- -0x18,_0x309eda);}return _0x191e8b[_0x29b55a(0x162,0xde)]=[renderParticlesVertexShader],new ShaderSource$1(_0x191e8b);}static[_0x4e9bfa(0xc0,0x131)](){const _0x39985b={};return _0x39985b['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x39985b);}static['getPostProcessingPositionShader'](){const _0x39d86c={};return _0x39d86c['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x39d86c);}}function _0x534b(_0x53881e,_0x7c11cb){const _0x19e83a=_0x19e8();return _0x534b=function(_0x534b1d,_0xe638c4){_0x534b1d=_0x534b1d-0xd4;let _0x14e1d6=_0x19e83a[_0x534b1d];return _0x14e1d6;},_0x534b(_0x53881e,_0x7c11cb);}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[_0x35412f(0xe1,0x111)];class CustomPrimitive{constructor(_0x31877b){this['commandType']=_0x31877b[_0x499bc4(-0xd7,-0x55)],this[_0x499bc4(-0x74,-0xbe)]=_0x31877b['geometry'];function _0x2b440a(_0x4bd75b,_0x1c41d6){return _0x35412f(_0x4bd75b-0x2ca,_0x1c41d6);}this['attributeLocations']=_0x31877b[_0x2b440a(0x3ef,0x3fe)],this['primitiveType']=_0x31877b[_0x499bc4(-0xd4,-0x11e)],this['uniformMap']=_0x31877b[_0x2b440a(0x352,0x358)]||{},this['vertexShaderSource']=_0x31877b[_0x2b440a(0x323,0x39f)],this[_0x499bc4(-0x106,-0x8b)]=_0x31877b['fragmentShaderSource'],this['rawRenderState']=_0x31877b['rawRenderState'],this['framebuffer']=_0x31877b['framebuffer'],this['outputTexture']=_0x31877b[_0x499bc4(-0x40,-0x6e)],this['autoClear']=_0x31877b['autoClear']??![],this[_0x2b440a(0x3a5,0x406)]=_0x31877b['preExecute'],this[_0x499bc4(-0x139,-0xb5)]=!![],this['commandToExecute']=undefined;function _0x499bc4(_0x56071a,_0x183cc0){return _0x4e9bfa(_0x183cc0- -0x1da,_0x56071a);}this['clearCommand']=undefined,this[_0x499bc4(-0xa7,-0xcd)]=_0x31877b['isDynamic']??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x2b440a(0x368,0x3ac)],'pass':Pass$1['OPAQUE']}));}[_0x35412f(0x7e,0x108)](_0x1c3caf){function _0x9bad65(_0x3fb946,_0xe2be5c){return _0x35412f(_0xe2be5c- -0xda,_0x3fb946);}function _0x2100d0(_0x56db41,_0x31dea8){return _0x35412f(_0x56db41-0x3db,_0x31dea8);}if(this['commandType']===_0x2100d0(0x46b,0x459)){const _0x440959={};_0x440959[_0x2100d0(0x492,0x42c)]=_0x1c3caf,_0x440959['geometry']=this['geometry'],_0x440959[_0x9bad65(-0x27,0x4b)]=this[_0x2100d0(0x500,0x47c)],_0x440959[_0x2100d0(0x47f,0x4f4)]=BufferUsage$1['STATIC_DRAW'];const _0x44640e=VertexArray$1['fromGeometry'](_0x440959),_0x10eed5={};_0x10eed5['context']=_0x1c3caf,_0x10eed5[_0x9bad65(-0x69,-0x81)]=this[_0x2100d0(0x434,0x410)],_0x10eed5['fragmentShaderSource']=this['fragmentShaderSource'],_0x10eed5['attributeLocations']=this[_0x9bad65(-0x42,0x4b)];const _0x3cd29f=ShaderProgram['fromCache'](_0x10eed5),_0x7dd671=RenderState['fromCache'](this[_0x9bad65(-0x95,-0x91)]),_0x5c1586={};return _0x5c1586['owner']=this,_0x5c1586[_0x9bad65(-0xfc,-0x8e)]=_0x44640e,_0x5c1586['primitiveType']=this[_0x2100d0(0x425,0x45c)],_0x5c1586['modelMatrix']=Matrix4['IDENTITY'],_0x5c1586['renderState']=_0x7dd671,_0x5c1586['shaderProgram']=_0x3cd29f,_0x5c1586['framebuffer']=this[_0x2100d0(0x479,0x46b)],_0x5c1586[_0x9bad65(-0xc3,-0x52)]=this['uniformMap'],_0x5c1586[_0x9bad65(-0x80,-0x61)]=Pass$1[_0x9bad65(0x94,0x58)],new DrawCommand(_0x5c1586);}else{if(this[_0x9bad65(0x65,0x39)]==='Compute'){const _0x56789f={};return _0x56789f[_0x2100d0(0x4fd,0x4ea)]=this,_0x56789f['fragmentShaderSource']=this[_0x9bad65(0x5c,0x3)],_0x56789f['uniformMap']=this[_0x2100d0(0x463,0x4a4)],_0x56789f[_0x2100d0(0x4d5,0x49a)]=this['outputTexture'],_0x56789f[_0x2100d0(0x42e,0x4a6)]=!![],new ComputeCommand(_0x56789f);}else throw new Error(_0x9bad65(-0xb6,-0x79));}}[_0x35412f(0x142,0xfa)](_0x122f04,_0x70a729){function _0x271619(_0x3e1045,_0x592a4d){return _0x4e9bfa(_0x3e1045- -0x291,_0x592a4d);}function _0x1022bf(_0x1233a8,_0x286955){return _0x35412f(_0x1233a8-0x99,_0x286955);}this[_0x1022bf(0x143,0x159)]=_0x70a729,defined(this['commandToExecute'])&&(this[_0x1022bf(0xfe,0xc5)][_0x271619(-0x1d3,-0x222)]=VertexArray$1['fromGeometry']({'context':_0x122f04,'geometry':this[_0x271619(-0x175,-0xf8)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x4e9bfa(0x18d,0x20c)](_0x122138){function _0x5be936(_0x43e78a,_0x13ed40){return _0x4e9bfa(_0x43e78a-0x3d4,_0x13ed40);}if(!this['isDynamic']())return;if(!this['show']||!defined(_0x122138))return;!defined(this['commandToExecute'])&&(this[_0x21bc78(0x279,0x27c)]=this['createCommand'](_0x122138['context']));defined(this[_0x5be936(0x521,0x538)])&&this[_0x5be936(0x521,0x581)]();if(!_0x122138[_0x21bc78(0x365,0x2ff)]){console[_0x21bc78(0x31e,0x2c3)](_0x21bc78(0x311,0x31a));return;}defined(this[_0x21bc78(0x290,0x27b)])&&_0x122138['commandList'][_0x21bc78(0x2cd,0x318)](this['clearCommand']);function _0x21bc78(_0x290a03,_0x41dea8){return _0x4e9bfa(_0x41dea8-0x1a5,_0x290a03);}defined(this[_0x21bc78(0x2b6,0x27c)])&&_0x122138['commandList']['push'](this['commandToExecute']);}[_0x35412f(0x86,0xeb)](){return![];}['destroy'](){function _0x38fdc8(_0x9c33aa,_0x2c3263){return _0x4e9bfa(_0x2c3263-0xb9,_0x9c33aa);}if(defined(this['commandToExecute'])){var _0x4ed367;(_0x4ed367=this['commandToExecute'][_0x38fdc8(0x139,0x156)])===null||_0x4ed367===void 0x0||_0x4ed367['destroy'](),this['commandToExecute']['shaderProgram']=undefined;}return destroyObject(this);}}function deepMerge(_0x188b25,_0x261741){if(!_0x188b25)return _0x261741;if(!_0x261741)return _0x188b25;const _0x152470={..._0x261741};function _0x1661bf(_0x3778ee,_0x400e9a){return _0x35412f(_0x3778ee-0x1c0,_0x400e9a);}const _0x622e2c=_0x152470;for(const _0x2da6b0 in _0x188b25){if(Object['prototype']['hasOwnProperty']['call'](_0x188b25,_0x2da6b0)){const _0x5b0fcf=_0x188b25[_0x2da6b0],_0x46721a=_0x261741[_0x2da6b0];if(Array['isArray'](_0x5b0fcf)){_0x622e2c[_0x2da6b0]=_0x5b0fcf['slice']();continue;}if(_0x5b0fcf&&typeof _0x5b0fcf===_0x1661bf(0x211,0x270)){_0x622e2c[_0x2da6b0]=deepMerge(_0x5b0fcf,_0x46721a||{});continue;}_0x5b0fcf!==undefined&&(_0x622e2c[_0x2da6b0]=_0x5b0fcf);}}return _0x622e2c;}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[_0x35412f(0xe1,0xea)];class WindParticlesComputing{constructor(_0xa5f945,_0x54e303,_0x480912,_0x6f58f4,_0x1698ee){this['context']=_0xa5f945;function _0x35d486(_0x167422,_0x28ad8a){return _0x4e9bfa(_0x167422- -0xf0,_0x28ad8a);}this[_0x35d486(0xa8,0x75)]=_0x480912,this['viewerParameters']=_0x6f58f4,this[_0x426103(0x288,0x2fa)]=_0x54e303,this[_0x35d486(-0x4c,-0x16)]=0x3c,this['frameRateAdjustment']=0x1;function _0x426103(_0x485c68,_0x2fa718){return _0x4e9bfa(_0x485c68-0x107,_0x2fa718);}const _0x235ab7={};_0x235ab7['scene']=_0x1698ee,_0x235ab7['samplingWindow']=0x1,_0x235ab7['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x235ab7),this['initFrameRate'](),this['createWindTextures'](),this[_0x35d486(0x49,0xb3)](),this[_0x35d486(-0x1e,-0x46)]();}['initFrameRate'](){function _0x15054f(_0x588825,_0x500974){return _0x35412f(_0x500974-0xa2,_0x588825);}const _0x20db80=()=>{function _0x1087f0(_0x11c69c,_0x25c8a1){return _0x534b(_0x11c69c-0x1d8,_0x25c8a1);}function _0x34ca6a(_0x49c03c,_0x4609f8){return _0x534b(_0x49c03c- -0xb6,_0x4609f8);}this[_0x1087f0(0x2f3,0x2b7)]['lastFramesPerSecond']>0x14&&(this['frameRate']=this[_0x34ca6a(0x65,0xc9)][_0x34ca6a(0xcf,0xa6)],this[_0x34ca6a(0xb6,0x48)]=0x3c/Math[_0x1087f0(0x3b1,0x341)](this[_0x34ca6a(0x2a,0x82)],0x1));};_0x20db80();const _0x492188=setInterval(_0x20db80,0x3e8),_0x24c47b=this['destroy'][_0x15054f(0x15a,0x152)](this);this['destroy']=()=>{clearInterval(_0x492188),_0x24c47b();};}['createWindTextures'](){function _0x3d224a(_0x3c422,_0xc4cf7c){return _0x4e9bfa(_0xc4cf7c- -0x40,_0x3c422);}const _0x53a6e2={};_0x53a6e2[_0x3d224a(0xb2,0x78)]=TextureMinificationFilter$1['LINEAR'],_0x53a6e2['magnificationFilter']=TextureMagnificationFilter$1[_0x3d224a(0x7f,0xd5)];function _0x3c4c06(_0x40a67b,_0x2d7739){return _0x35412f(_0x2d7739-0x19c,_0x40a67b);}const _0x1449b5={'context':this[_0x3d224a(0xd4,0xe9)],'width':this[_0x3d224a(0x1cc,0x141)][_0x3c4c06(0x26e,0x293)],'height':this['windData'][_0x3c4c06(0x348,0x2d5)],'pixelFormat':PixelFormat$1[_0x3c4c06(0x206,0x216)],'pixelDatatype':PixelDatatype$1[_0x3c4c06(0x242,0x242)],'flipY':this[_0x3c4c06(0x2f1,0x2c2)][_0x3d224a(0x8c,0x117)]??![],'sampler':new Sampler$1(_0x53a6e2)};this['windTextures']={'U':new Texture$1({..._0x1449b5,'source':{'arrayBufferView':new Float32Array(this['windData']['u'][_0x3c4c06(0x243,0x245)])}}),'V':new Texture$1({..._0x1449b5,'source':{'arrayBufferView':new Float32Array(this['windData']['v'][_0x3d224a(0x55,0xdb)])}})};}['createParticlesTextures'](){const _0x2f0d11={};_0x2f0d11['minificationFilter']=TextureMinificationFilter$1[_0x3c068(0x42c,0x4bc)],_0x2f0d11[_0x3c068(0x5fa,0x5c0)]=TextureMagnificationFilter$1['NEAREST'];function _0x3c068(_0x492dab,_0x5426f5){return _0x4e9bfa(_0x5426f5-0x40f,_0x492dab);}const _0x34d172={'context':this[_0x5012f3(0x1ac,0x1c7)],'width':this[_0x5012f3(0x21b,0x235)]['particlesTextureSize'],'height':this['options'][_0x3c068(0x521,0x4f8)],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this[_0x5012f3(0x21b,0x1be)]['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x2f0d11)};function _0x5012f3(_0x5410dc,_0x2f0d06){return _0x4e9bfa(_0x5410dc-0x83,_0x2f0d06);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x34d172),'currentParticlesPosition':new Texture$1(_0x34d172),'nextParticlesPosition':new Texture$1(_0x34d172),'postProcessingPosition':new Texture$1(_0x34d172),'particlesSpeed':new Texture$1(_0x34d172)};}['destroyParticlesTextures'](){Object['values'](this['particlesTextures'])['forEach'](_0x5799a6=>_0x5799a6['destroy']());}['createComputingPrimitives'](){function _0x592be8(_0xdeb2b9,_0x1b6bfe){return _0x35412f(_0xdeb2b9-0x1bd,_0x1b6bfe);}function _0x52cf9b(_0x4ea5af,_0x4527d3){return _0x35412f(_0x4527d3- -0x12f,_0x4ea5af);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this[_0x52cf9b(-0xa9,-0x76)]['V'],'uRange':()=>new Cartesian2$1(this[_0x52cf9b(-0xa,-0x20)]['u'][_0x592be8(0x283,0x2db)],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this['windData']['v'][_0x52cf9b(-0x1,-0x69)],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this[_0x52cf9b(-0xb,-0x20)][_0x52cf9b(-0x69,-0x3d)][_0x52cf9b(0xe,-0x4)]),'currentParticlesPosition':()=>this[_0x52cf9b(-0xbb,-0x5b)]['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x4b09f7(_0x1048e8,_0x4abe7c){return _0x592be8(_0x4abe7c-0xbf,_0x1048e8);}return(this[_0x4b09f7(0x2be,0x2ed)]['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this[_0x52cf9b(-0x58,-0x71)],'dimension':()=>new Cartesian2$1(this[_0x52cf9b(-0x4f,-0x20)]['width'],this[_0x52cf9b(0x19,-0x20)]['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds']['west'],this[_0x52cf9b(-0x69,-0x20)]['bounds'][_0x52cf9b(0xe,-0x32)]),'maximum':()=>new Cartesian2$1(this['windData']['bounds'][_0x592be8(0x282,0x246)],this[_0x52cf9b(0x3,-0x20)]['bounds']['north'])},'fragmentShaderSource':ShaderManager[_0x592be8(0x239,0x241)](),'outputTexture':this['particlesTextures']['particlesSpeed'],'preExecute':()=>{function _0x329c9b(_0x3b3a6e,_0x48e16a){return _0x592be8(_0x3b3a6e-0x11f,_0x48e16a);}const _0x2297e9=this['particlesTextures'][_0x329c9b(0x31c,0x338)];function _0x34cc5c(_0x54518e,_0x524bee){return _0x52cf9b(_0x524bee,_0x54518e-0xca);}this['particlesTextures']['previousParticlesPosition']=this['particlesTextures'][_0x329c9b(0x38e,0x3f0)],this['particlesTextures']['currentParticlesPosition']=this['particlesTextures']['postProcessingPosition'],this[_0x34cc5c(0x6f,0x8b)]['postProcessingPosition']=_0x2297e9,this[_0x34cc5c(0x6d,-0x23)][_0x329c9b(0x383,0x413)][_0x329c9b(0x341,0x325)]&&(this[_0x329c9b(0x3ae,0x426)][_0x329c9b(0x383,0x3cb)]['commandToExecute']['outputTexture']=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this[_0x592be8(0x2e3,0x2f0)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x592be8(0x291,0x2ba)]['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x403f70(_0x2f5e71,_0x5c19d0){return _0x592be8(_0x2f5e71-0x1cf,_0x5c19d0);}function _0x14359c(_0x5accd5,_0x258716){return _0x52cf9b(_0x5accd5,_0x258716-0x248);}this['primitives']['updatePosition'][_0x14359c(0x173,0x17e)]&&(this[_0x403f70(0x45e,0x4c2)][_0x403f70(0x449,0x4ce)][_0x403f70(0x3f1,0x3ee)]['outputTexture']=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this[_0x52cf9b(-0x21,-0x9)]['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x592be8(0x252,0x226),'uniformMap':{'nextParticlesPosition':()=>this[_0x52cf9b(-0x74,-0x5b)]['nextParticlesPosition'],'particlesSpeed':()=>this[_0x52cf9b(-0x4,-0x5b)]['particlesSpeed'],'lonRange':()=>this[_0x592be8(0x22e,0x25e)][_0x592be8(0x22c,0x2ae)],'latRange':()=>this['viewerParameters'][_0x592be8(0x2f8,0x27a)],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x592be8(0x250,0x1ed)]['west'],this['windData']['bounds'][_0x592be8(0x282,0x2b3)]),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x592be8(0x250,0x2af)]['south'],this['windData'][_0x592be8(0x250,0x256)][_0x52cf9b(-0x1b,-0x73)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this[_0x592be8(0x2e3,0x33a)]['dropRate'],'dropRateBump':()=>this[_0x52cf9b(0x79,-0x9)]['dropRateBump'],'useViewerBounds':()=>this[_0x52cf9b(0x10,-0x9)][_0x592be8(0x2d4,0x30c)]},'fragmentShaderSource':ShaderManager[_0x592be8(0x1eb,0x1be)](),'outputTexture':this['particlesTextures'][_0x52cf9b(-0xb8,-0x34)],'preExecute':()=>{function _0x48bf05(_0x4804be,_0x57cca8){return _0x592be8(_0x4804be-0x1cd,_0x57cca8);}function _0x215d59(_0x4202ce,_0x5ae72c){return _0x592be8(_0x4202ce- -0x1d2,_0x5ae72c);}this['primitives'][_0x215d59(0xe6,0x135)][_0x215d59(0x50,0x88)]&&(this[_0x215d59(0xbd,0x133)]['postProcessingPosition'][_0x215d59(0x50,0x85)]['outputTexture']=this['particlesTextures'][_0x48bf05(0x485,0x4f0)]);},'isDynamic':()=>this[_0x52cf9b(-0x2b,-0x9)][_0x592be8(0x229,0x25f)]})};}['reCreateWindTextures'](){this['windTextures']['U'][_0x5af60e(0x3fc,0x394)]();function _0x5af60e(_0x4163b7,_0x57c233){return _0x35412f(_0x4163b7-0x30e,_0x57c233);}this[_0x5af60e(0x3c7,0x384)]['V']['destroy']();function _0x2f97cf(_0x14514a,_0xc51b87){return _0x35412f(_0xc51b87-0x5,_0x14514a);}this['createWindTextures']();}['updateWindData'](_0x49afdb){this['windData']=_0x49afdb,this['reCreateWindTextures']();}['updateOptions'](_0x200919){const _0x4d88ce=_0x200919['flipY']!==undefined&&_0x200919['flipY']!==this['options']['flipY'];this['options']=deepMerge(_0x200919,this['options']);function _0x4ed3ca(_0x2ea832,_0x362612){return _0x35412f(_0x362612-0xbc,_0x2ea832);}_0x4d88ce&&this[_0x4ed3ca(0x183,0x200)]();}[_0x4e9bfa(0xfb,0xff)](_0x4c2159){const {array:_0x3d3e97}=_0x4c2159;let {min:_0x4ea0a0,max:_0x578425}=_0x4c2159;const _0x7a6eb2=new Float32Array(_0x3d3e97['length']);_0x4ea0a0===undefined&&(console['warn'](_0x5a602d(-0x1,-0x8e)),_0x4ea0a0=Math['min'](..._0x3d3e97));_0x578425===undefined&&(console['warn'](_0x5a602d(0x80,0x9c)),_0x578425=Math[_0x5a602d(0x76,0xc8)](..._0x3d3e97));const _0x290026=Math['max'](Math[_0xa11d5b(0x4a5,0x451)](_0x4ea0a0),Math['abs'](_0x578425));function _0xa11d5b(_0x2c1091,_0x3cd2bd){return _0x35412f(_0x3cd2bd-0x3f9,_0x2c1091);}for(let _0x2387ac=0x0;_0x2387ac<_0x3d3e97['length'];_0x2387ac++){const _0xc22a5b=_0x3d3e97[_0x2387ac]/_0x290026;_0x7a6eb2[_0x2387ac]=_0xc22a5b;}function _0x5a602d(_0x1a2519,_0x50e26b){return _0x4e9bfa(_0x1a2519- -0x127,_0x50e26b);}return _0x7a6eb2;}['destroy'](){function _0x5b85c0(_0x730c7,_0x2aea46){return _0x4e9bfa(_0x2aea46-0x201,_0x730c7);}Object['values'](this['windTextures'])['forEach'](_0x4beb2e=>_0x4beb2e['destroy']()),Object['values'](this['particlesTextures'])[_0x5b85c0(0x2c2,0x2fe)](_0x24e456=>_0x24e456[_0x4ea159(0x1c2,0x1ed)]());function _0x4ea159(_0x7e826f,_0x1fe93e){return _0x35412f(_0x1fe93e-0xff,_0x7e826f);}Object['values'](this[_0x4ea159(0x1cb,0x1d1)])[_0x5b85c0(0x381,0x2fe)](_0x2a6e98=>_0x2a6e98[_0x4ea159(0x1e8,0x1ed)]()),this['frameRateMonitor'][_0x5b85c0(0x36b,0x361)]();}}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'];function _0x35412f(_0x2e5e35,_0x13f98f){return _0x534b(_0x2e5e35- -0xae,_0x13f98f);}class WindParticlesRendering{constructor(_0x2f94e6,_0x159aef,_0x1b7628,_0x473516){this[_0x30c54f(0x364,0x385)]=_0x2f94e6;function _0x416882(_0x21d13b,_0x46431a){return _0x4e9bfa(_0x21d13b- -0x21c,_0x46431a);}this[_0x30c54f(0x3b3,0x3f4)]=_0x159aef,this['viewerParameters']=_0x1b7628,this['computing']=_0x473516;(typeof this['options'][_0x416882(-0x133,-0xd7)]!=='number'||this['options'][_0x416882(-0x133,-0xbd)]<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options']['particlesTextureSize']=0x100);this[_0x416882(-0x14c,-0x1b7)]=this[_0x30c54f(0x353,0x320)](),this[_0x416882(-0xdf,-0x125)]=this['createRenderingTextures']();function _0x30c54f(_0x331385,_0x422526){return _0x4e9bfa(_0x422526-0x25c,_0x331385);}this[_0x30c54f(0x405,0x38e)]=this[_0x416882(-0x8b,-0xb6)](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){function _0x49d8f0(_0x40a576,_0x501807){return _0x4e9bfa(_0x40a576- -0x284,_0x501807);}const _0x3408a4={};_0x3408a4[_0x55c549(0x473,0x4a2)]=this['context'],_0x3408a4[_0x55c549(0x4b3,0x466)]=this['context'][_0x55c549(0x4a6,0x4cc)],_0x3408a4['height']=this['context']['drawingBufferHeight'],_0x3408a4[_0x55c549(0x449,0x471)]=PixelFormat['RGBA'],_0x3408a4['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x4cac45=_0x3408a4;function _0x55c549(_0x4798c0,_0x122f18){return _0x4e9bfa(_0x4798c0-0x34a,_0x122f18);}const _0x28b395={};_0x28b395[_0x55c549(0x473,0x434)]=this['context'],_0x28b395[_0x49d8f0(-0x11b,-0xb2)]=this[_0x49d8f0(-0x15b,-0x1d2)]['drawingBufferWidth'],_0x28b395['height']=this['context']['drawingBufferHeight'],_0x28b395['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x28b395['pixelDatatype']=PixelDatatype[_0x49d8f0(-0x10e,-0x97)];const _0x52ea6f=_0x28b395;return{'segmentsColor':new Texture(_0x4cac45),'segmentsDepth':new Texture(_0x52ea6f)};}['createRenderingFramebuffers'](){const _0x2d3eb9={};_0x2d3eb9['context']=this['context'],_0x2d3eb9['colorTextures']=[this['textures']['segmentsColor']],_0x2d3eb9[_0x321e3a(0x3e1,0x40d)]=this['textures'][_0x321e3a(0x4cb,0x48b)];function _0x42124b(_0xe88c2b,_0x1c7216){return _0x35412f(_0x1c7216-0x24c,_0xe88c2b);}function _0x321e3a(_0x31331c,_0x4f9e64){return _0x4e9bfa(_0x4f9e64-0x304,_0x31331c);}return{'segments':new Framebuffer(_0x2d3eb9)};}['destoryRenderingFramebuffers'](){Object['values'](this['framebuffers'])['forEach'](_0x24bb9a=>{function _0x5c28cb(_0x1a473f,_0x4c1cb9){return _0x534b(_0x4c1cb9-0x1a2,_0x1a473f);}_0x24bb9a[_0x5c28cb(0x376,0x33e)]();});}[_0x35412f(0x52,0xad)](){const _0x5c9d73=new Float32Array(this['options']['colors']['flatMap'](_0x437671=>{const _0x5c95de=Color$1[_0x4d06c2(-0x12f,-0x1ba)](_0x437671);function _0x4d06c2(_0x363d2f,_0x3e53a8){return _0x534b(_0x363d2f- -0x2ab,_0x3e53a8);}function _0x5d28b5(_0x10485c,_0xcd81a5){return _0x534b(_0xcd81a5-0x203,_0x10485c);}return[_0x5c95de[_0x4d06c2(-0xf7,-0x122)],_0x5c95de['green'],_0x5c95de['blue'],_0x5c95de['alpha']];}));function _0x24068d(_0x3b70bc,_0x3a5bdd){return _0x4e9bfa(_0x3b70bc- -0x360,_0x3a5bdd);}const _0x5e9147={};_0x5e9147[_0x3e9374(0x261,0x259)]=TextureMinificationFilter['LINEAR'];function _0x3e9374(_0x19743f,_0x24d388){return _0x4e9bfa(_0x24d388-0x1a1,_0x19743f);}return _0x5e9147['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x5e9147[_0x24068d(-0x1f2,-0x195)]=TextureWrap[_0x3e9374(0x318,0x2df)],_0x5e9147[_0x24068d(-0x297,-0x25f)]=TextureWrap[_0x24068d(-0x222,-0x1d3)],new Texture({'context':this['context'],'width':this[_0x24068d(-0x1c8,-0x14c)][_0x24068d(-0x2c6,-0x30f)]['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x5e9147),'source':{'width':this['options']['colors']['length'],'height':0x1,'arrayBufferView':_0x5c9d73}});}['createSegmentsGeometry'](){const _0x4f40c1=0x4,_0x20ddb0=this['options'][_0x24fa74(0x26b,0x2c8)];let _0xbdb9f=[];for(let _0x54250d=0x0;_0x54250d<_0x20ddb0;_0x54250d++){for(let _0x4e26e0=0x0;_0x4e26e0<_0x20ddb0;_0x4e26e0++){for(let _0x169b5c=0x0;_0x169b5c<_0x4f40c1;_0x169b5c++){_0xbdb9f[_0x24fa74(0x2f5,0x2bc)](_0x54250d/_0x20ddb0),_0xbdb9f['push'](_0x4e26e0/_0x20ddb0);}}}_0xbdb9f=new Float32Array(_0xbdb9f);const _0x3efc2f=this['options'][_0x3546dc(0x177,0x1c0)]**0x2;let _0x5549fe=[];for(let _0x3b57e1=0x0;_0x3b57e1<_0x3efc2f;_0x3b57e1++){_0x5549fe['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x5549fe=new Float32Array(_0x5549fe);let _0x347c9a=[];for(let _0x66dd4c=0x0,_0x26ad78=0x0;_0x66dd4c<_0x3efc2f;_0x66dd4c++){_0x347c9a[_0x24fa74(0x2f5,0x312)](_0x26ad78+0x0,_0x26ad78+0x1,_0x26ad78+0x2,_0x26ad78+0x2,_0x26ad78+0x1,_0x26ad78+0x3),_0x26ad78+=_0x4f40c1;}_0x347c9a=new Uint32Array(_0x347c9a);const _0x487b3b={};_0x487b3b[_0x24fa74(0x308,0x30b)]=ComponentDatatype['FLOAT'],_0x487b3b['componentsPerAttribute']=0x2;function _0x24fa74(_0x4c27be,_0x502454){return _0x4e9bfa(_0x4c27be-0x182,_0x502454);}_0x487b3b[_0x3546dc(0x1c4,0x1e5)]=_0xbdb9f;const _0x455bf2={};function _0x3546dc(_0xe25217,_0x34835e){return _0x35412f(_0x34835e-0x149,_0xe25217);}_0x455bf2['componentDatatype']=ComponentDatatype[_0x24fa74(0x29a,0x24d)],_0x455bf2[_0x24fa74(0x21a,0x1a8)]=0x3,_0x455bf2[_0x24fa74(0x290,0x288)]=_0x5549fe;const _0x201996=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x487b3b),'normal':new GeometryAttribute(_0x455bf2)}),'indices':_0x347c9a});return _0x201996;}['createRawRenderState'](_0x420292){function _0x4517a3(_0xe152b3,_0x4f636){return _0x4e9bfa(_0x4f636- -0x1a2,_0xe152b3);}const _0x5b1379={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x420292};return Appearance[_0x4517a3(-0x1b,0x1)](!![],![],_0x5b1379);}[_0x4e9bfa(0x143,0x196)](){const _0xaf5dec={};_0xaf5dec['st']=0x0,_0xaf5dec[_0x5509c4(0x469,0x3e3)]=0x1;const _0x25ecc4={};_0x25ecc4['enabled']=!![];const _0x3f1e71={};_0x3f1e71['enabled']=!![];function _0x5509c4(_0x5ddc60,_0x2e8d40){return _0x35412f(_0x5ddc60-0x35d,_0x2e8d40);}_0x3f1e71[_0x3062ca(0x227,0x1ea)]=WebGLRenderingContext['FUNC_ADD'],_0x3f1e71['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x3f1e71['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];function _0x3062ca(_0x45696b,_0x477688){return _0x35412f(_0x45696b-0x19d,_0x477688);}const _0x1d0847={};_0x1d0847['viewport']=undefined,_0x1d0847[_0x3062ca(0x1cc,0x1fe)]=_0x25ecc4,_0x1d0847['depthMask']=!![],_0x1d0847['blending']=_0x3f1e71;const _0x29c982=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0xaf5dec,'geometry':this[_0x3062ca(0x2c5,0x347)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures'][_0x5509c4(0x39d,0x384)],'currentParticlesPosition':()=>this[_0x5509c4(0x3f1,0x3d9)]['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x3062ca(0x231,0x284)][_0x5509c4(0x431,0x420)][_0x5509c4(0x458,0x40e)],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x3062ca(0x265,0x1d9)],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{var _0x5a8b28,_0x1fdf45;function _0x38b79e(_0x339077,_0x59c754){return _0x3062ca(_0x59c754-0x6d,_0x339077);}const _0x2d8d00=new Cartesian2(((_0x5a8b28=this['options']['domain'])===null||_0x5a8b28===void 0x0?void 0x0:_0x5a8b28[_0x38457f(0x3e7,0x38c)])??this[_0x38457f(0x34c,0x35a)]['windData']['speed'][_0x38b79e(0x33c,0x2d0)],((_0x1fdf45=this['options'][_0x38457f(0x3d8,0x3a5)])===null||_0x1fdf45===void 0x0?void 0x0:_0x1fdf45[_0x38b79e(0x33a,0x335)])??this['computing'][_0x38457f(0x38c,0x3d5)][_0x38b79e(0x2ff,0x2fc)][_0x38b79e(0x318,0x335)]);function _0x38457f(_0x1aaee1,_0x495463){return _0x5509c4(_0x495463- -0x97,_0x1aaee1);}return _0x2d8d00;},'displayRange':()=>{function _0xbda5ad(_0x28a9ef,_0xa9d9cf){return _0x3062ca(_0x28a9ef- -0x307,_0xa9d9cf);}function _0x392919(_0x1d678b,_0x3ac1a9){return _0x5509c4(_0x3ac1a9- -0x45,_0x1d678b);}var _0x2e1d76,_0x86f5fe;const _0x18f222=new Cartesian2(((_0x2e1d76=this[_0x392919(0x450,0x43e)]['displayRange'])===null||_0x2e1d76===void 0x0?void 0x0:_0x2e1d76['min'])??this['computing']['windData']['speed'][_0x392919(0x3cd,0x3de)],((_0x86f5fe=this['options']['displayRange'])===null||_0x86f5fe===void 0x0?void 0x0:_0x86f5fe[_0xbda5ad(-0x3f,0x9)])??this[_0x392919(0x413,0x3ac)][_0xbda5ad(-0x5b,-0x5c)][_0xbda5ad(-0x78,-0x85)][_0x392919(0x3ea,0x443)]);return _0x18f222;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this[_0x5509c4(0x414,0x43a)][_0x5509c4(0x447,0x3ed)]/this[_0x5509c4(0x414,0x47e)][_0x3062ca(0x23d,0x1e6)],'pixelSize':()=>this['viewerParameters'][_0x5509c4(0x3a5,0x32c)],'lineWidth':()=>{const _0x38c56e={};function _0x30e3bd(_0x288241,_0x32a59a){return _0x5509c4(_0x32a59a- -0xb8,_0x288241);}_0x38c56e[_0x30e3bd(0x3a7,0x36b)]=0x1,_0x38c56e['max']=0x2;const _0x59387a=this['options']['lineWidth']||_0x38c56e;return new Cartesian2(_0x59387a['min'],_0x59387a['max']);},'lineLength':()=>{const _0x33edf1={};_0x33edf1['min']=0x14;function _0x566f76(_0x56ba68,_0x1bae74){return _0x5509c4(_0x1bae74- -0x546,_0x56ba68);}function _0x3943ce(_0x480f6f,_0x3e1d47){return _0x3062ca(_0x3e1d47- -0x389,_0x480f6f);}_0x33edf1['max']=0x64;const _0x135148=this[_0x3943ce(-0x65,-0xc6)][_0x566f76(-0xba,-0x119)]||_0x33edf1;return new Cartesian2(_0x135148['min'],_0x135148[_0x566f76(-0xf3,-0xbe)]);},'is3D':()=>this[_0x3062ca(0x20e,0x1d4)]['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0x5509c4(0x428,0x3e7)]['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x3062ca(0x2e3,0x2d1)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x1d0847)}),_0x4cc829={};return _0x4cc829[_0x3062ca(0x1e8,0x232)]=_0x29c982,_0x4cc829;}['onParticlesTextureSizeChange'](){function _0x14acda(_0x8a06b6,_0x57a8c3){return _0x4e9bfa(_0x57a8c3- -0x345,_0x8a06b6);}const _0x1ca370=this[_0x14acda(-0x120,-0x1ab)]();this[_0x14acda(-0x188,-0x201)]['segments'][_0x14acda(-0x210,-0x229)]=_0x1ca370;const _0x56b6a6={};function _0x5410f6(_0x491a90,_0x1f1e80){return _0x35412f(_0x1f1e80- -0x1f3,_0x491a90);}_0x56b6a6[_0x5410f6(-0x19c,-0x13c)]=this[_0x5410f6(-0x156,-0x13c)],_0x56b6a6[_0x5410f6(-0xb8,-0x149)]=_0x1ca370,_0x56b6a6[_0x5410f6(-0x11a,-0xce)]=this['primitives'][_0x5410f6(-0x22a,-0x1a8)]['attributeLocations'],_0x56b6a6[_0x14acda(-0x1bf,-0x22f)]=BufferUsage[_0x5410f6(-0x166,-0x172)];const _0x60b334=VertexArray['fromGeometry'](_0x56b6a6);this['primitives']['segments'][_0x5410f6(-0x1d9,-0x18e)]&&(this['primitives']['segments'][_0x14acda(-0x2ec,-0x26e)]['vertexArray']=_0x60b334);}['onColorTableChange'](){this['colorTable']['destroy'](),this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x4c095a){function _0x2376fd(_0x153d2b,_0x294594){return _0x35412f(_0x294594-0x1ef,_0x153d2b);}const _0x10994f=_0x4c095a[_0x2376fd(0x22f,0x217)]&&JSON['stringify'](_0x4c095a[_0x5944a9(0xd9,0x114)])!==JSON[_0x5944a9(0x1df,0x1e2)](this['options']['colors']);function _0x5944a9(_0x1ba0b0,_0x352406){return _0x35412f(_0x352406-0xec,_0x1ba0b0);}this['options']=deepMerge(_0x4c095a,this['options']),_0x10994f&&this['onColorTableChange']();}[_0x35412f(0xee,0xf0)](){Object['values'](this[_0x43c579(0x22d,0x276)])['forEach'](_0x3a6a5a=>{_0x3a6a5a['destroy']();});function _0x14d381(_0x15bd1f,_0x1aed33){return _0x4e9bfa(_0x1aed33- -0x77,_0x15bd1f);}Object[_0x43c579(0x261,0x252)](this[_0x43c579(0x287,0x288)])[_0x43c579(0x2aa,0x241)](_0x101b90=>{function _0x76148e(_0x54f248,_0x3c8446){return _0x14d381(_0x3c8446,_0x54f248-0x469);}_0x101b90[_0x76148e(0x552,0x4dd)]();});function _0x43c579(_0x22253b,_0x4dd5d4){return _0x4e9bfa(_0x4dd5d4-0x144,_0x22253b);}this['colorTable'][_0x14d381(0x78,0xe9)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x16324f,_0x29db62,_0x88d714,_0x113bae,_0xd6ab76){this['context']=_0x16324f,this['options']=_0x88d714;function _0x1a7132(_0x36dc3f,_0x51c264){return _0x4e9bfa(_0x51c264-0x366,_0x36dc3f);}this[_0x1a7132(0x433,0x449)]=_0x113bae;function _0x1af590(_0x594554,_0x51d5bb){return _0x35412f(_0x594554- -0x309,_0x51d5bb);}this['computing']=new WindParticlesComputing(_0x16324f,_0x29db62,_0x88d714,_0x113bae,_0xd6ab76),this[_0x1a7132(0x568,0x4f1)]=new WindParticlesRendering(_0x16324f,_0x88d714,_0x113bae,this['computing']),this['clearFramebuffers']();}[_0x35412f(0x102,0x15d)](){function _0x275bba(_0x3f2b27,_0x25e868){return _0x4e9bfa(_0x3f2b27-0x258,_0x25e868);}function _0x295a62(_0x272dee,_0x1df34c){return _0x35412f(_0x272dee-0x240,_0x1df34c);}const _0x353832=[this['computing']['primitives']['calculateSpeed'],this[_0x295a62(0x2d4,0x2f7)][_0x275bba(0x39c,0x417)][_0x295a62(0x2fd,0x2fa)],this['computing'][_0x275bba(0x39c,0x402)]['postProcessingPosition'],this['rendering']['primitives'][_0x275bba(0x315,0x2c6)]];return _0x353832;}['clearFramebuffers'](){const _0x4856e1=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x5b1b3d(_0x52c216,_0x16757d){return _0x35412f(_0x16757d- -0xf1,_0x52c216);}Object['keys'](this[_0x5b1b3d(-0x14,0x28)]['framebuffers'])['forEach'](_0x28dd8b=>{function _0x121bab(_0x3c3ade,_0x3157db){return _0x5b1b3d(_0x3c3ade,_0x3157db-0x40f);}_0x4856e1[_0x4c446b(-0x8,0x2c)]=this[_0x4c446b(0x103,0xa7)][_0x121bab(0x422,0x3de)][_0x28dd8b];function _0x4c446b(_0x425d36,_0x2238cf){return _0x5b1b3d(_0x425d36,_0x2238cf-0x7f);}_0x4856e1['execute'](this['context']);});}['changeOptions'](_0x2fed14){let _0xd9da91=![];_0x2fed14['particlesTextureSize']&&this[_0x48a55c(0x3cc,0x375)][_0x48a55c(0x2b2,0x2c6)]!==_0x2fed14['particlesTextureSize']&&(_0xd9da91=!![]);const _0x393f5b=deepMerge(_0x2fed14,this['options']);if(_0x393f5b['particlesTextureSize']<0x1)throw new Error(_0x49b217(0x358,0x31b));function _0x48a55c(_0x2b9896,_0x2cb48f){return _0x35412f(_0x2cb48f-0x24f,_0x2b9896);}this[_0x48a55c(0x3a4,0x375)]=_0x393f5b,this['rendering']['updateOptions'](_0x2fed14),this[_0x48a55c(0x318,0x2e3)]['updateOptions'](_0x2fed14);function _0x49b217(_0xb6e1c8,_0x55729c){return _0x4e9bfa(_0x55729c-0x233,_0xb6e1c8);}_0xd9da91&&(this['computing'][_0x49b217(0x38a,0x3d8)](),this['computing'][_0x49b217(0x3b2,0x36c)](),this[_0x49b217(0x439,0x3be)]['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x2f4950){function _0x3b16f8(_0x4dfa3c,_0x2e736c){return _0x4e9bfa(_0x4dfa3c-0x1d1,_0x2e736c);}this[_0x3b16f8(0x2b4,0x300)]=_0x2f4950,this['computing']['viewerParameters']=_0x2f4950,this['rendering']['viewerParameters']=_0x2f4950;}[_0x4e9bfa(0x160,0x1a3)](){function _0x55781d(_0x2abb6b,_0xd5d5e7){return _0x35412f(_0x2abb6b- -0x5f,_0xd5d5e7);}this['computing']['destroy'](),this[_0x55781d(0xba,0xb5)]['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x3a925d={};_0x3a925d[_0x35412f(0xc6,0x71)]=0x1,_0x3a925d[_0x4e9bfa(0x19d,0x154)]=0x2;const _0x3bb094={};_0x3bb094['min']=0x14,_0x3bb094[_0x35412f(0x12b,0x1ae)]=0x64;const _0x393fe7={};_0x393fe7[_0x4e9bfa(0xe9,0x8f)]=0x64,_0x393fe7['fixedHeight']=0x0,_0x393fe7['lineWidth']=_0x3a925d,_0x393fe7[_0x35412f(0xd0,0x147)]=_0x3bb094;function _0x4e9bfa(_0x390a2f,_0x2824c2){return _0x534b(_0x390a2f- -0x3c,_0x2824c2);}_0x393fe7[_0x4e9bfa(0xae,0x38)]=0x1,_0x393fe7['dropRate']=0.003,_0x393fe7[_0x4e9bfa(0x133,0x1a6)]=0.001,_0x393fe7['colors']=['rgb(206,255,255)'],_0x393fe7['flipY']=![],_0x393fe7['dynamic']=!![];const DEF_OPTIONS=_0x393fe7;class WindLayer extends BaseLayer$1{constructor(_0x2fdca1={}){_0x2fdca1={...DEF_OPTIONS,..._0x2fdca1},super(_0x2fdca1),this['_setOptionsHook'](_0x2fdca1,_0x2fdca1);}get['layer'](){function _0x2431a8(_0x4a7f4b,_0x4570f9){return _0x4e9bfa(_0x4a7f4b- -0x160,_0x4570f9);}return this[_0x2431a8(-0x1c,-0x12)];}get['data'](){function _0x562256(_0x496c36,_0x2d9a49){return _0x35412f(_0x2d9a49- -0x8d,_0x496c36);}return this['options'][_0x562256(-0x93,-0x38)];}set['data'](_0x50f8e3){this[_0x850397(0x507,0x504)][_0x4249d4(-0x218,-0x203)]=_0x50f8e3;function _0x4249d4(_0x1f70a2,_0x10565e){return _0x35412f(_0x1f70a2- -0x26d,_0x10565e);}function _0x850397(_0x46c344,_0x4b2cd6){return _0x4e9bfa(_0x4b2cd6-0x36c,_0x46c344);}this['setData'](_0x50f8e3);}get[_0x4e9bfa(0x9a,0x75)](){return this['options']['colors'];}set[_0x35412f(0x28,0x38)](_0x1bc35b){function _0x659884(_0x57cd5c,_0x2c0147){return _0x35412f(_0x2c0147-0x3f8,_0x57cd5c);}this['options']['colors']=_0x1bc35b;function _0xf7ee4a(_0x5169fa,_0x1c5266){return _0x4e9bfa(_0x1c5266-0x4e,_0x5169fa);}const _0x5ec006={};_0x5ec006['colors']=_0x1bc35b,this[_0xf7ee4a(0x98,0x122)](this[_0x659884(0x51d,0x51e)],_0x5ec006);}['_showHook'](_0x27e44c){_0x27e44c?this['_addedHook']():this['_removedHook']();}['_mountedHook'](){}['_addedHook'](){this[_0x19f4db(-0x176,-0x10a)]=this[_0x549872(-0x140,-0x1c4)]['scene'],this['camera']=this[_0x19f4db(-0x9f,-0xdd)][_0x19f4db(-0x13a,-0x134)];this['options']['data']&&this['setData'](this['options']['data']);if(!this[_0x549872(-0x15e,-0x19c)]||!this['show'])return;function _0x19f4db(_0x3913ea,_0x48f922){return _0x35412f(_0x3913ea- -0x1cc,_0x48f922);}this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x19f4db(-0x176,-0x193)]['mode']},this[_0x19f4db(-0xf3,-0x131)](),this['particleSystem']=new WindParticleSystem(this[_0x549872(-0x217,-0x24d)][_0x549872(-0x1b6,-0x193)],this[_0x19f4db(-0xbd,-0xba)],this[_0x549872(-0x147,-0xd6)],this['viewerParameters'],this['scene']);function _0x549872(_0x2c08f2,_0x3136cc){return _0x4e9bfa(_0x2c08f2- -0x2df,_0x3136cc);}this['primitives']=this['particleSystem'][_0x549872(-0x16b,-0x151)](),this[_0x19f4db(-0xfa,-0xd5)]['forEach'](_0x3863cf=>{this['scene']['primitives']['add'](_0x3863cf);}),this[_0x19f4db(-0x13a,-0x1af)]['percentageChanged']=0.01,this['camera']['changed']['addEventListener'](this['updateViewerParameters'][_0x19f4db(-0x11c,-0xb7)](this)),this[_0x19f4db(-0x176,-0xfb)]['morphComplete']['addEventListener'](this['updateViewerParameters']['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters']['bind'](this));}['_removedHook'](){this[_0xbcbf90(-0x1d,0x25)]['changed']['removeEventListener'](this[_0x1ef189(0x415,0x3f9)][_0x1ef189(0x448,0x3d0)](this)),this[_0x1ef189(0x329,0x376)][_0xbcbf90(-0x2a,0xb)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),window['removeEventListener']('resize',this['updateViewerParameters'][_0x1ef189(0x3af,0x3d0)](this));function _0xbcbf90(_0x105836,_0x5d3e35){return _0x4e9bfa(_0x5d3e35- -0xdf,_0x105836);}this['primitives']&&(this['primitives'][_0xbcbf90(-0x1,0x1e)](_0x5e8b0c=>{function _0x25ab02(_0x1196a8,_0x36d58c){return _0xbcbf90(_0x36d58c,_0x1196a8- -0x76);}function _0x48eca3(_0x211113,_0x11af4a){return _0x1ef189(_0x211113,_0x11af4a- -0x563);}this[_0x25ab02(-0x8d,-0x6b)]['primitives'][_0x25ab02(-0xad,-0xb0)](_0x5e8b0c);}),delete this[_0xbcbf90(0xe3,0x65)]);function _0x1ef189(_0x580c46,_0x3e77fd){return _0x35412f(_0x3e77fd-0x320,_0x580c46);}this[_0xbcbf90(-0xb6,-0x3a)]&&(this['particleSystem'][_0x1ef189(0x413,0x40e)](),delete this['particleSystem']);}['setData'](_0x2523f6,_0x35436a){this['windData']=this[_0x5e93ef(0x4e8,0x4eb)](_0x2523f6);if(_0x35436a){this['_removedHook'](),this['_addedHook']();return;}function _0x5e93ef(_0x4538e8,_0x26507a){return _0x35412f(_0x26507a-0x462,_0x4538e8);}function _0x222461(_0x46e817,_0x42283e){return _0x35412f(_0x42283e- -0x14d,_0x46e817);}this[_0x5e93ef(0x492,0x495)]?(this['particleSystem']['computing'][_0x5e93ef(0x4ab,0x51c)](this['windData']),this['scene'][_0x222461(-0x76,-0x45)]()):this[_0x222461(-0x8a,-0x10e)]();}[_0x4e9bfa(0xd4,0x119)](_0x123110,_0x1d14a3){function _0x71638f(_0x474149,_0x3faf20){return _0x4e9bfa(_0x3faf20- -0x16f,_0x474149);}function _0x5c1de5(_0x462b38,_0x4e5095){return _0x35412f(_0x4e5095- -0x26c,_0x462b38);}this['particleSystem']&&(this[_0x5c1de5(-0x1e4,-0x239)]['changeOptions'](_0x1d14a3),this[_0x71638f(-0xbf,-0xa7)]['requestRender']());}['processWindData'](_0x1d72b1){var _0x4f879e,_0x1f67f6;const _0xbae354={..._0x1d72b1},_0x1757f0=_0xbae354;!_0x1757f0[_0x532547(0x26,0x8c)]&&_0x1757f0[_0x532547(-0xe7,-0x16a)]&&(_0x1757f0[_0x532547(0x26,-0x32)]=_0x1757f0['rows']);!_0x1757f0[_0x532547(-0x1c,0x18)]&&_0x1757f0[_0x532547(-0xce,-0x94)]&&(_0x1757f0[_0x3637c5(0x1ff,0x1bd)]=_0x1757f0['cols']);function _0x3637c5(_0x89aef4,_0x20bae4){return _0x35412f(_0x20bae4-0xc6,_0x89aef4);}!_0x1757f0['bounds']&&(_0x1757f0[_0x532547(-0x80,-0xd0)]={'west':_0x1757f0['xmin'],'south':_0x1757f0[_0x532547(0x1c,0x18)],'east':_0x1757f0[_0x3637c5(0x1c9,0x1a8)],'north':_0x1757f0['ymax']});if(!_0x1757f0['u']){const _0x3b77ae={};_0x3b77ae['array']=_0x1d72b1[_0x3637c5(0x140,0x1b2)],_0x3b77ae[_0x3637c5(0x15e,0x18c)]=_0x1d72b1['umin'],_0x3b77ae['max']=_0x1d72b1[_0x532547(-0xb4,-0xb3)],_0x1757f0['u']=_0x3b77ae;}function _0x532547(_0x3b74e4,_0x179364){return _0x35412f(_0x3b74e4- -0x113,_0x179364);}if(!_0x1757f0['v']){const _0x5b5f18={};_0x5b5f18['array']=_0x1d72b1[_0x3637c5(0x1ac,0x168)],_0x5b5f18[_0x532547(-0x4d,-0x64)]=_0x1d72b1['vmin'],_0x5b5f18['max']=_0x1d72b1[_0x532547(-0xcf,-0x150)],_0x1757f0['v']=_0x5b5f18;}if(((_0x4f879e=_0x1757f0[_0x532547(-0x21,0x4e)])===null||_0x4f879e===void 0x0?void 0x0:_0x4f879e['min'])===undefined||((_0x1f67f6=_0x1757f0['speed'])===null||_0x1f67f6===void 0x0?void 0x0:_0x1f67f6[_0x532547(0x18,-0x26)])===undefined||_0x1757f0['speed']['array']===undefined){const _0x55e6a8={'array':new Float32Array(_0x1757f0['u'][_0x532547(-0x6a,-0x1d)]['length']),'min':Number[_0x532547(0x10,-0x21)],'max':Number[_0x3637c5(0x1b1,0x1dc)]};for(let _0x129680=0x0;_0x129680<_0x1757f0['u']['array']['length'];_0x129680++){_0x55e6a8['array'][_0x129680]=Math[_0x3637c5(0x228,0x1c4)](_0x1757f0['u']['array'][_0x129680]*_0x1757f0['u'][_0x532547(-0x6a,-0xbb)][_0x129680]+_0x1757f0['v']['array'][_0x129680]*_0x1757f0['v']['array'][_0x129680]),_0x55e6a8['array'][_0x129680]!==0x0&&(_0x55e6a8['min']=Math[_0x3637c5(0x1fa,0x18c)](_0x55e6a8['min'],_0x55e6a8[_0x532547(-0x6a,-0x8f)][_0x129680]),_0x55e6a8['max']=Math['max'](_0x55e6a8[_0x532547(0x18,0x4c)],_0x55e6a8['array'][_0x129680]));}_0x1757f0['speed']=_0x55e6a8;}return _0x1757f0;}['updateViewerParameters'](){var _0x422332;const _0x198e4b=this[_0x1b93bd(0xb9,0xf7)];if(!_0x198e4b)return;const _0x486dea=_0x198e4b[_0x1b93bd(0x136,0xb7)],_0x5c0eb8={};_0x5c0eb8['x']=0x0,_0x5c0eb8['y']=0x0;const _0x11a82a={};_0x11a82a['x']=0x0,_0x11a82a['y']=_0x486dea['clientHeight'];const _0x1af0f5={};_0x1af0f5['x']=_0x486dea[_0x4dfb8e(0x326,0x321)],_0x1af0f5['y']=0x0;const _0x3a5135={};_0x3a5135['x']=_0x486dea['clientWidth'];function _0x4dfb8e(_0xff9357,_0x953324){return _0x4e9bfa(_0xff9357-0x1d0,_0x953324);}_0x3a5135['y']=_0x486dea['clientHeight'];const _0x301627=[_0x5c0eb8,_0x11a82a,_0x1af0f5,_0x3a5135];function _0x1b93bd(_0x466d41,_0x5966fb){return _0x4e9bfa(_0x466d41- -0xf,_0x5966fb);}let _0x29aed5=0xb4,_0x1276b6=-0xb4,_0x4751e9=0x5a,_0x42e5b6=-0x5a,_0x1ada58=![];for(const _0x235ade of _0x301627){const _0x4b4e3a=_0x198e4b[_0x1b93bd(0xf5,0x11d)][_0x1b93bd(0x16c,0x11b)](new Cesium$1[(_0x4dfb8e(0x31c,0x303))](_0x235ade['x'],_0x235ade['y']),_0x198e4b['globe']['ellipsoid']);if(!_0x4b4e3a){_0x1ada58=!![];break;}const _0xf1962=_0x198e4b['globe']['ellipsoid']['cartesianToCartographic'](_0x4b4e3a),_0x48826d=Cesium$1[_0x4dfb8e(0x31e,0x37f)][_0x4dfb8e(0x33b,0x30b)](_0xf1962[_0x4dfb8e(0x2db,0x2cf)]),_0x51b6e6=Cesium$1['Math']['toDegrees'](_0xf1962[_0x4dfb8e(0x285,0x242)]);_0x29aed5=Math[_0x1b93bd(0x129,0xac)](_0x29aed5,_0x48826d),_0x1276b6=Math['max'](_0x1276b6,_0x48826d),_0x4751e9=Math['min'](_0x4751e9,_0x51b6e6),_0x42e5b6=Math[_0x4dfb8e(0x36d,0x363)](_0x42e5b6,_0x51b6e6);}if(!_0x1ada58){const _0x1a9ec5=new Cesium$1[(_0x4dfb8e(0x31c,0x34a))](Math[_0x1b93bd(0x18e,0x1cc)](this['windData']['bounds'][_0x1b93bd(0x1a3,0x182)],_0x29aed5),Math['min'](this[_0x1b93bd(0x172,0x133)][_0x1b93bd(0xf6,0x15b)]['east'],_0x1276b6)),_0xc0d2dd=new Cesium$1[(_0x1b93bd(0x13d,0x132))](Math['max'](this[_0x4dfb8e(0x351,0x397)][_0x4dfb8e(0x2d5,0x349)]['south'],_0x4751e9),Math[_0x4dfb8e(0x308,0x36b)](this[_0x4dfb8e(0x351,0x3a5)][_0x4dfb8e(0x2d5,0x2e7)]['north'],_0x42e5b6)),_0x51ef9b=(_0x1a9ec5['y']-_0x1a9ec5['x'])*0.05,_0x196cf8=(_0xc0d2dd['y']-_0xc0d2dd['x'])*0.05;_0x1a9ec5['x']=Math[_0x1b93bd(0x18e,0x192)](this[_0x1b93bd(0x172,0x175)][_0x4dfb8e(0x2d5,0x2d1)][_0x4dfb8e(0x382,0x318)],_0x1a9ec5['x']-_0x51ef9b),_0x1a9ec5['y']=Math[_0x1b93bd(0x129,0xb8)](this[_0x4dfb8e(0x351,0x388)]['bounds']['east'],_0x1a9ec5['y']+_0x51ef9b),_0xc0d2dd['x']=Math['max'](this['windData']['bounds'][_0x1b93bd(0x160,0x123)],_0xc0d2dd['x']-_0x196cf8),_0xc0d2dd['y']=Math[_0x4dfb8e(0x308,0x2b1)](this[_0x1b93bd(0x172,0x177)][_0x1b93bd(0xf6,0x167)][_0x4dfb8e(0x2fe,0x32a)],_0xc0d2dd['y']+_0x196cf8),this[_0x1b93bd(0xd4,0xaf)]['lonRange']=_0x1a9ec5,this[_0x1b93bd(0xd4,0x6c)]['latRange']=_0xc0d2dd;const _0x4010f6=this['windData'][_0x4dfb8e(0x2d5,0x2fa)]['east']-this['windData'][_0x4dfb8e(0x2d5,0x274)][_0x1b93bd(0x1a3,0x13d)],_0x277ad0=this['windData']['bounds']['north']-this['windData'][_0x1b93bd(0xf6,0x15e)]['south'],_0x254639=(_0x1a9ec5['y']-_0x1a9ec5['x'])/_0x4010f6,_0x2dffbd=(_0xc0d2dd['y']-_0xc0d2dd['x'])/_0x277ad0,_0x1c838b=Math['min'](_0x254639,_0x2dffbd),_0x7cac33=0x3e8*_0x1c838b;_0x7cac33>0x0&&(this['viewerParameters']['pixelSize']=Math[_0x1b93bd(0x18e,0x1e8)](0x0,Math['min'](0x3e8,_0x7cac33)));}this['viewerParameters']['sceneMode']=this['scene']['mode'],(_0x422332=this[_0x1b93bd(0x96,0x44)])===null||_0x422332===void 0x0||_0x422332[_0x1b93bd(0xfb,0x80)](this['viewerParameters']);}['getDataAtLonLat'](_0x39807d,_0x1efd1b){const {bounds:_0x1b2124,width:_0xb0c907,height:_0x369a63,u:_0x34eccc,v:_0x3ca901,speed:_0xfe2f01}=this['windData'],{flipY:_0xab123d}=this[_0x58ac07(0x526,0x49f)];if(_0x39807d<_0x1b2124['west']||_0x39807d>_0x1b2124[_0x5289ab(-0x119,-0xe1)]||_0x1efd1b<_0x1b2124['south']||_0x1efd1b>_0x1b2124['north'])return null;const _0x9de2c9=(_0x39807d-_0x1b2124['west'])/(_0x1b2124[_0x58ac07(0x3bb,0x43e)]-_0x1b2124['west'])*(_0xb0c907-0x1);let _0x571b68=(_0x1efd1b-_0x1b2124['south'])/(_0x1b2124[_0x5289ab(-0x122,-0xf0)]-_0x1b2124['south'])*(_0x369a63-0x1);_0xab123d&&(_0x571b68=_0x369a63-0x1-_0x571b68);const _0x4fd396=Math['floor'](_0x9de2c9),_0x516eb5=Math['floor'](_0x571b68),_0x5673e0=Math['floor'](_0x9de2c9),_0x32c50c=Math[_0x5289ab(-0x118,-0xf2)](_0x5673e0+0x1,_0xb0c907-0x1),_0x280e5c=Math[_0x5289ab(-0x1a0,-0x1af)](_0x571b68),_0x22cedc=Math['min'](_0x280e5c+0x1,_0x369a63-0x1),_0x2998f3=_0x9de2c9-_0x5673e0,_0x2bad0b=_0x571b68-_0x280e5c,_0x236ab9=_0x516eb5*_0xb0c907+_0x4fd396,_0x382c58=_0x280e5c*_0xb0c907+_0x5673e0,_0xb65ada=_0x280e5c*_0xb0c907+_0x32c50c,_0x56b452=_0x22cedc*_0xb0c907+_0x5673e0,_0x62335b=_0x22cedc*_0xb0c907+_0x32c50c;function _0x5289ab(_0x2b7878,_0x55b5c1){return _0x35412f(_0x2b7878- -0x1de,_0x55b5c1);}const _0x3e3002=_0x34eccc[_0x58ac07(0x395,0x422)][_0x382c58],_0x3d6649=_0x34eccc[_0x58ac07(0x3c0,0x422)][_0xb65ada],_0x2aa302=_0x34eccc['array'][_0x56b452],_0x5481e5=_0x34eccc['array'][_0x62335b],_0x52bcfc=(0x1-_0x2998f3)*(0x1-_0x2bad0b)*_0x3e3002+_0x2998f3*(0x1-_0x2bad0b)*_0x3d6649+(0x1-_0x2998f3)*_0x2bad0b*_0x2aa302+_0x2998f3*_0x2bad0b*_0x5481e5,_0x2ccb02=_0x3ca901[_0x5289ab(-0x135,-0xc4)][_0x382c58],_0x2a8842=_0x3ca901['array'][_0xb65ada],_0x4cd5e4=_0x3ca901['array'][_0x56b452],_0x38acfa=_0x3ca901[_0x58ac07(0x47d,0x422)][_0x62335b],_0x1009c6=(0x1-_0x2998f3)*(0x1-_0x2bad0b)*_0x2ccb02+_0x2998f3*(0x1-_0x2bad0b)*_0x2a8842+(0x1-_0x2998f3)*_0x2bad0b*_0x4cd5e4+_0x2998f3*_0x2bad0b*_0x38acfa;function _0x58ac07(_0x44b0f6,_0x1179fd){return _0x35412f(_0x1179fd-0x379,_0x44b0f6);}const _0x4a6693=Math[_0x5289ab(-0xe0,-0x150)](_0x52bcfc*_0x52bcfc+_0x1009c6*_0x1009c6),_0x290d08={};_0x290d08['u']=_0x34eccc['array'][_0x236ab9],_0x290d08['v']=_0x3ca901['array'][_0x236ab9],_0x290d08['speed']=_0xfe2f01['array'][_0x236ab9];const _0x5eaf8c={};_0x5eaf8c['u']=_0x52bcfc,_0x5eaf8c['v']=_0x1009c6,_0x5eaf8c['speed']=_0x4a6693;const _0x48ee5b={};return _0x48ee5b['original']=_0x290d08,_0x48ee5b['interpolated']=_0x5eaf8c,_0x48ee5b;}}mars3d__namespace['LayerUtil']['register'](_0x4e9bfa(0xa2,0x121),WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;function _0x19e8(){const _0x3ec2c6=['context','moveTo','windTextures','updateWindData','mouseDown','north','updatePosition','frameRateAdjustment','particles','framebuffers','dropRateBump','frameTime','9kuHsDI','create','east','min','createParticlesTextures','particlesSpeed','pow','redraw','textures','CLAMP_TO_EDGE','getOwnPropertyDescriptor','fromCssColorString','CanvasWindLayer','lineLength','createPrimitives','primitives','canvas','particlesTextures','_createCanvas','xmin','lastFramesPerSecond','ellipsoid','updateViewerParameters','Cartesian2','preExecute','Math','fragmentShaderSource','setDate','domain','canvasContext','Cesium','xmax','Rectangle','clientWidth','flipY','initWorker','#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','commandList','_colorRamp','drawingBufferWidth','visible','udata','_onMapWhellEvent','destroy','9716tlmypY','_calcUV','zIndex','speed','reverse','addEventListener','CanvasWindField','stringify','width','0px','toDegrees','outputTexture','postProcessingPosition','wrapS','south','sqrt','postMessage','_onMouseUpEvent','push','getPrimitives','frameState.commandList\x20is\x20undefined','UNSIGNED_INT','lng','red','_drawLines','requestRender','pickEllipsoid','toGridXY','DomUtil','normal','_tomap','_onMouseDownEvent','windData','container','positionWC','speedRate','commandType','componentDatatype','segmentsDepth','MIN_VALUE','useViewerBounds','getSpeed','rendering','1520760LVNjXx','update','particlesNumber','EllipsoidalOccluder','length','createRenderingFramebuffers','canvasWidth','mouse_move','owner','MAX_VALUE','3864KYseic','attributeLocations','options','style','createSegmentsGeometry','WindUtil','clear','max','color','_map','pointerEvents','ymin','removeChild','getDefaultRenderState','OPAQUE','destroyParticlesTextures','_updateIng2','max\x20is\x20undefined,\x20calculate\x20max','pointer-events','isInExtent','requestAnimationFrame','height','8148igGTbh','latRange','WindLayer','7190380nVnGck','canvasHeight','magnificationFilter','west','none','setGeometry','init','reCreateWindTextures','round','getSegmentDrawVertexShader','componentsPerAttribute','195KBQaPr','colors','__proto__','mouse_down','shaderProgram','rows','windField','getPostProcessingPositionShader','depthTest','wind','_animateFrame','frameRate','particleSystem','lat','value','remove','_calc_speedRate','clientHeight','ymax','age','NEAREST','speedFactor','lineTo','floor','_addedHook','previousParticlesPosition','wheel','globalCompositeOperation','latitude','vmax','cols','minificationFilter','PointTrans','pixelSize','rawRenderState','primitiveType','segments','vertexArray','refreshTimer','getSegmentDrawFragmentShader','talt','mars3d-canvasWind','object','createColorTableTexture','persists','getV','data','scene','wrapT','abs','vertexShaderSource','toWindowCoordinates','#ffffff','maxAge','fixedHeight','colorTable','umax','createComputingPrimitives','Unknown\x20command\x20type','_setOptionsHook','stroke','clearCommand','commandToExecute','visibility','type','tlng','left','isPointVisible','steps','dynamic','frameRateMonitor','_maxAge','lonRange','_speedRate','viewerParameters','resize','ColorRamp','toRadians','_pointerEvents','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','particlesTextureSize','morphComplete','pass','RED','off','getCalculateSpeedShader','fromDegrees','createCommand','fillRect','getDirection','STATIC_DRAW','_randomParticle','sin','sources','getUVByXY','isDestroyed','4370915pReBfC','uniformMap','processWindData','blendEquation','forEach','_updateIng','pixelFormat','getUVByPoint','now','Draw','tlat','camera','bounds','computing','Compute','lineWidth','depthTexture','applyViewerParameters','longitude','worker','isDynamic','values','LayerUtil','framebuffer','_removedHook','drawingBufferHeight','getU','vdata','LINEAR','bufferUsage','auto','FLOAT','calculateSpeed','_onMouseMoveEvent','array','geometry','4393048AXuGHT','warn','setOptions','EventType','isDestroy','bind','mouseHidden','currentParticlesPosition','show','min\x20is\x20undefined,\x20calculate\x20min','237691tUbdTh','layer'];_0x19e8=function(){return _0x3ec2c6;};return _0x19e8();}class CanvasParticle{constructor(){function _0xafb521(_0x47c866,_0x5421b6){return _0x4e9bfa(_0x47c866- -0x262,_0x5421b6);}this[_0x12607e(-0xcd,-0x12a)]=null,this['lat']=null,this[_0xafb521(-0x188,-0x151)]=null;function _0x12607e(_0x3af2f5,_0x4edd21){return _0x35412f(_0x3af2f5- -0x1d2,_0x4edd21);}this['tlat']=null,this[_0xafb521(-0x1b6,-0x1f9)]=null,this[_0x12607e(-0xe0,-0x119)]=null;}[_0x35412f(0xee,0x94)](){for(const _0x482a43 in this){delete this[_0x482a43];}}}class CanvasWindField{constructor(_0x488168){this['setOptions'](_0x488168);}get['speedRate'](){function _0x465634(_0x614ed9,_0x499a17){return _0x35412f(_0x499a17-0x1ec,_0x614ed9);}return this[_0x465634(0x1e8,0x25c)];}set['speedRate'](_0x3465f4){this['_speedRate']=(0x64-(_0x3465f4>0x63?0x63:_0x3465f4))*0x64;function _0x9d3d8c(_0xca5478,_0x5d4984){return _0x4e9bfa(_0xca5478- -0x36e,_0x5d4984);}function _0x53d832(_0x5a7241,_0x4233b7){return _0x4e9bfa(_0x4233b7-0x1d8,_0x5a7241);}this[_0x9d3d8c(-0x2c5,-0x283)]=[(this['xmax']-this[_0x9d3d8c(-0x226,-0x1b3)])/this['_speedRate'],(this['ymax']-this[_0x9d3d8c(-0x1cd,-0x24b)])/this[_0x9d3d8c(-0x28c,-0x207)]];}get['maxAge'](){return this['_maxAge'];}set[_0x4e9bfa(0xce,0x43)](_0x31de75){function _0x7799d(_0x2bdd3f,_0x2a3349){return _0x4e9bfa(_0x2bdd3f-0x249,_0x2a3349);}this[_0x7799d(0x329,0x2a3)]=_0x31de75;}['setOptions'](_0x419348){this[_0x303a35(0x38c,0x3ad)]=_0x419348;function _0x303a35(_0x181051,_0x31ed7b){return _0x35412f(_0x31ed7b-0x287,_0x181051);}this[_0x6430b3(0x38f,0x377)]=_0x419348['maxAge']||0x78,this['speedRate']=_0x419348['speedRate']||0x32,this[_0x6430b3(0x35b,0x3da)]=[];const _0x22aa9d=_0x419348['particlesNumber']||0x1000;function _0x6430b3(_0x156adf,_0x39915f){return _0x35412f(_0x39915f-0x31b,_0x156adf);}for(let _0x2b8274=0x0;_0x2b8274<_0x22aa9d;_0x2b8274++){const _0x35ab21=this[_0x303a35(0x34a,0x309)](new CanvasParticle());this['particles']['push'](_0x35ab21);}}[_0x4e9bfa(0x150,0x133)](_0xe666ef){this['rows']=_0xe666ef[_0x4cf70c(0x10c,0x181)],this['cols']=_0xe666ef['cols'],this['xmin']=_0xe666ef['xmin'],this['xmax']=_0xe666ef['xmax'];function _0x4cf70c(_0x2110d5,_0x40c765){return _0x4e9bfa(_0x2110d5-0x6e,_0x40c765);}this[_0x4cf70c(0x20f,0x22e)]=_0xe666ef['ymin'],this['ymax']=_0xe666ef['ymax'],this['grid']=[];const _0x5b80a0=_0xe666ef[_0x30e256(0x448,0x451)],_0x73e594=_0xe666ef[_0x30e256(0x385,0x407)];let _0x444737=![];_0x5b80a0[_0x4cf70c(0x1fe,0x27a)]===this['rows']&&_0x5b80a0[0x0][_0x4cf70c(0x1fe,0x273)]===this[_0x4cf70c(0x125,0x182)]&&(_0x444737=!![]);let _0x2ec1bc=0x0,_0x3fc49c=null,_0x19999d=null;for(let _0x493442=0x0;_0x493442<this[_0x30e256(0x3e9,0x391)];_0x493442++){_0x3fc49c=[];for(let _0x192593=0x0;_0x192593<this[_0x4cf70c(0x125,0x99)];_0x192593++,_0x2ec1bc++){_0x444737?_0x19999d=this['_calcUV'](_0x5b80a0[_0x493442][_0x192593],_0x73e594[_0x493442][_0x192593]):_0x19999d=this['_calcUV'](_0x5b80a0[_0x2ec1bc],_0x73e594[_0x2ec1bc]),_0x3fc49c['push'](_0x19999d);}this['grid']['push'](_0x3fc49c);}function _0x30e256(_0x441bc7,_0x1f2dbc){return _0x4e9bfa(_0x1f2dbc-0x2f3,_0x441bc7);}!this['options']['flipY']&&this['grid'][_0x4cf70c(0x1d3,0x1f4)]();}['clear'](){delete this['rows'],delete this['cols'],delete this['xmin'];function _0x27208d(_0x3a39a4,_0x4fee58){return _0x35412f(_0x3a39a4-0x122,_0x4fee58);}delete this['xmax'],delete this[_0x27208d(0x251,0x1d2)],delete this['ymax'];function _0x2d11d2(_0xd6beda,_0x12d3a4){return _0x4e9bfa(_0x12d3a4- -0x2f,_0xd6beda);}delete this['grid'],delete this[_0x2d11d2(0xe3,0x102)];}[_0x35412f(0x10a,0x93)](_0x16cb98,_0x4d0612){function _0x273bc5(_0x252356,_0xee8357){return _0x4e9bfa(_0xee8357-0x1a9,_0x252356);}const _0xbba740=(_0x16cb98-this[_0x4d6b54(0x54e,0x59a)])/(this['xmax']-this['xmin'])*(this[_0x4d6b54(0x4bd,0x45c)]-0x1),_0x5e634b=(this[_0x273bc5(0x1da,0x254)]-_0x4d0612)/(this[_0x4d6b54(0x4b1,0x52e)]-this['ymin'])*(this[_0x273bc5(0x2b8,0x247)]-0x1);function _0x4d6b54(_0x4d849c,_0x5bc239){return _0x35412f(_0x4d849c-0x478,_0x5bc239);}return[_0xbba740,_0x5e634b];}['getUVByXY'](_0x1c7315,_0x58e098){if(_0x1c7315<0x0||_0x1c7315>=this[_0xf75913(0x1dc,0x157)]||_0x58e098>=this['rows'])return[0x0,0x0,0x0];function _0x4e7959(_0x435be6,_0x25ac68){return _0x4e9bfa(_0x435be6-0xbb,_0x25ac68);}const _0x591b23=Math['floor'](_0x1c7315);function _0xf75913(_0x4e37ff,_0x3b5bd2){return _0x4e9bfa(_0x4e37ff-0x125,_0x3b5bd2);}const _0x29d488=Math[_0x4e7959(0x16b,0x16e)](_0x58e098);if(_0x591b23===_0x1c7315&&_0x29d488===_0x58e098)return this['grid'][_0x58e098][_0x1c7315];const _0x403dbd=_0x591b23+0x1,_0x9a2f01=_0x29d488+0x1,_0x468e24=this['getUVByXY'](_0x591b23,_0x29d488),_0x2a3cda=this[_0x4e7959(0x1b2,0x1c8)](_0x403dbd,_0x29d488),_0x1de063=this[_0x4e7959(0x1b2,0x141)](_0x591b23,_0x9a2f01),_0x25939=this[_0xf75913(0x21c,0x1fe)](_0x403dbd,_0x9a2f01);let _0x24581a=null;try{_0x24581a=this['_bilinearInterpolation'](_0x1c7315-_0x591b23,_0x58e098-_0x29d488,_0x468e24,_0x2a3cda,_0x1de063,_0x25939);}catch(_0xa2f2e5){console['log'](_0x1c7315,_0x58e098);}return _0x24581a;}['_bilinearInterpolation'](_0x1cecd9,_0x43ac6b,_0x3704fb,_0x4848f2,_0x35f2bf,_0x1e9caa){const _0x5a78b0=0x1-_0x1cecd9,_0x55c797=0x1-_0x43ac6b,_0x43d1d3=_0x5a78b0*_0x55c797,_0x17bc3e=_0x1cecd9*_0x55c797,_0x16265e=_0x5a78b0*_0x43ac6b;function _0x15b620(_0x129120,_0x159306){return _0x4e9bfa(_0x159306- -0x1de,_0x129120);}const _0x527a78=_0x1cecd9*_0x43ac6b,_0x16d4b9=_0x3704fb[0x0]*_0x43d1d3+_0x4848f2[0x0]*_0x17bc3e+_0x35f2bf[0x0]*_0x16265e+_0x1e9caa[0x0]*_0x527a78,_0x3cd736=_0x3704fb[0x1]*_0x43d1d3+_0x4848f2[0x1]*_0x17bc3e+_0x35f2bf[0x1]*_0x16265e+_0x1e9caa[0x1]*_0x527a78;return this[_0x15b620(-0x11,-0x7c)](_0x16d4b9,_0x3cd736);}[_0x35412f(0xf0,0x124)](_0x5a24be,_0x233363){return[+_0x5a24be,+_0x233363,Math['sqrt'](_0x5a24be*_0x5a24be+_0x233363*_0x233363)];}[_0x4e9bfa(0x100,0xeb)](_0x24d13c,_0x1430ad){function _0x43395c(_0x62614b,_0x41948f){return _0x4e9bfa(_0x41948f- -0xa7,_0x62614b);}if(!this[_0x43395c(0x94,0x102)](_0x24d13c,_0x1430ad))return null;const _0x4fdf58=this['toGridXY'](_0x24d13c,_0x1430ad),_0x4dd458=this['getUVByXY'](_0x4fdf58[0x0],_0x4fdf58[0x1]);return _0x4dd458;}[_0x4e9bfa(0x1a9,0x197)](_0x2e5f07,_0x30549f){function _0x41ecbc(_0x39ce0f,_0x4b0a0a){return _0x4e9bfa(_0x39ce0f- -0x353,_0x4b0a0a);}return _0x2e5f07>=this['xmin']&&_0x2e5f07<=this['xmax']&&_0x30549f>=this['ymin']&&_0x30549f<=this[_0x41ecbc(-0x2a8,-0x287)]?!![]:![];}['getRandomLatLng'](){function _0x2d98f1(_0x11a7bd,_0x4bc701){return _0x4e9bfa(_0x11a7bd- -0x231,_0x4bc701);}const _0x381944=fRandomByfloat(this['xmin'],this['xmax']);function _0x44c4d0(_0x377c4e,_0xf8a6a3){return _0x4e9bfa(_0x377c4e- -0x54,_0xf8a6a3);}const _0x3d179b=fRandomByfloat(this[_0x2d98f1(-0x90,-0xe)],this['ymax']),_0x3fa749={};return _0x3fa749[_0x2d98f1(-0x18b,-0x18c)]=_0x3d179b,_0x3fa749['lng']=_0x381944,_0x3fa749;}['getParticles'](){function _0xceef85(_0x99ae1,_0x4465d5){return _0x35412f(_0x4465d5-0x2d3,_0x99ae1);}let _0x43fa13,_0xde1314,_0x448acf;for(let _0x1712b0=0x0,_0x47cec8=this['particles']['length'];_0x1712b0<_0x47cec8;_0x1712b0++){let _0x3d4da9=this['particles'][_0x1712b0];_0x3d4da9['age']<=0x0&&(_0x3d4da9=this[_0x5828c5(0x37c,0x3b6)](_0x3d4da9));if(_0x3d4da9['age']>0x0){const _0x2111d6=_0x3d4da9[_0xceef85(0x32c,0x33b)],_0x389b36=_0x3d4da9['tlat'];_0x448acf=this['getUVByPoint'](_0x2111d6,_0x389b36),_0x448acf?(_0x43fa13=_0x2111d6+this[_0xceef85(0x354,0x30a)][0x0]*_0x448acf[0x0],_0xde1314=_0x389b36+this['_calc_speedRate'][0x1]*_0x448acf[0x1],_0x3d4da9['lng']=_0x2111d6,_0x3d4da9['lat']=_0x389b36,_0x3d4da9['tlng']=_0x43fa13,_0x3d4da9['tlat']=_0xde1314,_0x3d4da9['speed']=_0x448acf[0x2],_0x3d4da9[_0xceef85(0x302,0x30d)]--):_0x3d4da9['age']=0x0;}}function _0x5828c5(_0xae4d14,_0x378772){return _0x4e9bfa(_0xae4d14-0x288,_0x378772);}return this['particles'];}['_randomParticle'](_0x5f0a7c){let _0x886a76,_0x70d6f8;for(let _0x250d86=0x0;_0x250d86<0x1e;_0x250d86++){_0x886a76=this['getRandomLatLng'](),_0x70d6f8=this['getUVByPoint'](_0x886a76['lng'],_0x886a76['lat']);if(_0x70d6f8&&_0x70d6f8[0x2]>0x0)break;}if(!_0x70d6f8)return _0x5f0a7c;const _0x2c4fdc=_0x886a76[_0x4bef45(0xf5,0x8e)]+this[_0x2f65ad(-0x158,-0x156)][0x0]*_0x70d6f8[0x0],_0x33b1b3=_0x886a76['lat']+this['_calc_speedRate'][0x1]*_0x70d6f8[0x1];function _0x2f65ad(_0x3a53d8,_0x22d7c0){return _0x35412f(_0x3a53d8- -0x18f,_0x22d7c0);}_0x5f0a7c[_0x2f65ad(-0x8a,-0xf4)]=_0x886a76[_0x2f65ad(-0x8a,-0x7)],_0x5f0a7c[_0x4bef45(-0x50,-0x43)]=_0x886a76[_0x4bef45(0x10,-0x43)],_0x5f0a7c[_0x2f65ad(-0x127,-0x16d)]=_0x2c4fdc,_0x5f0a7c[_0x2f65ad(-0xfe,-0x97)]=_0x33b1b3,_0x5f0a7c[_0x2f65ad(-0x155,-0xc6)]=Math[_0x4bef45(0x8a,0xce)](0xa+Math['random']()*this[_0x4bef45(0x2e,-0x1b)]);function _0x4bef45(_0x275801,_0x3d02fe){return _0x4e9bfa(_0x3d02fe- -0xe9,_0x275801);}return _0x5f0a7c['speed']=_0x70d6f8[0x2],_0x5f0a7c;}[_0x4e9bfa(0x160,0x188)](){for(const _0x21584c in this){delete this[_0x21584c];}}}function fRandomByfloat(_0x52b2ee,_0x9ccbee){return _0x52b2ee+Math['random']()*(_0x9ccbee-_0x52b2ee);}const Cesium=mars3d__namespace[_0x4e9bfa(0x153,0x1d0)],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x30b021={}){function _0x2741f7(_0x2101c5,_0x2b8d80){return _0x4e9bfa(_0x2101c5- -0x1b2,_0x2b8d80);}super(_0x30b021);function _0x34319e(_0x4eb5af,_0x26b0ea){return _0x4e9bfa(_0x4eb5af- -0x1ab,_0x26b0ea);}this['_setOptionsHook'](_0x30b021),this['canvas']=null,_0x30b021[_0x34319e(-0x111,-0xe5)]&&_0x30b021[_0x2741f7(-0xd5,-0xf2)]&&(this[_0x34319e(-0x50,-0x77)]=new mars3d__namespace[(_0x2741f7(-0xcd,-0x11e))](_0x30b021));}['_setOptionsHook'](_0x3f097d,_0xefcdc5){this['frameTime']=0x3e8/(_0x3f097d['frameRate']||0xa),this['_pointerEvents']=this[_0x4edc6b(0xfd,0xeb)]['pointerEvents']??![],this[_0xc81a54(0x3fa,0x3ba)]=_0x3f097d['color']||_0x4edc6b(-0x64,0x20);function _0x4edc6b(_0x5ad3a2,_0x3bde96){return _0x35412f(_0x3bde96- -0x3b,_0x5ad3a2);}this['lineWidth']=_0x3f097d['lineWidth']||0x1,this['fixedHeight']=_0x3f097d['fixedHeight']??0x0;function _0xc81a54(_0x431193,_0x283d80){return _0x4e9bfa(_0x431193-0x25c,_0x283d80);}this['flipY']=_0x3f097d['flipY']??![],this[_0xc81a54(0x2fb,0x375)]&&this['windField'][_0x4edc6b(0xa0,0x72)](_0x3f097d);}get[_0x4e9bfa(0x128,0x101)](){function _0x259d93(_0x3f8610,_0x34f7fe){return _0x35412f(_0x3f8610-0x44c,_0x34f7fe);}return this[_0x259d93(0x51f,0x558)];}get[_0x4e9bfa(0x192,0x1c8)](){function _0x5edf7b(_0x461475,_0xcf56f6){return _0x4e9bfa(_0xcf56f6-0x3b9,_0x461475);}function _0x23cb9f(_0x78ea4f,_0x3da91f){return _0x4e9bfa(_0x78ea4f- -0xf5,_0x3da91f);}return this['_map']['scene'][_0x23cb9f(0x50,0x67)][_0x5edf7b(0x508,0x50f)];}get[_0x4e9bfa(0x1b0,0x1d7)](){function _0x26826f(_0x23154a,_0x1150df){return _0x4e9bfa(_0x23154a-0x2d,_0x1150df);}function _0x2448c3(_0xdcf51b,_0x331d14){return _0x4e9bfa(_0x331d14- -0x10,_0xdcf51b);}return this['_map'][_0x2448c3(0x11f,0xb8)]['canvas'][_0x2448c3(0x105,0x9a)];}get[_0x4e9bfa(0x1a0,0x1b8)](){return this['_pointerEvents'];}set[_0x35412f(0x12e,0x1a2)](_0x5618d1){this['_pointerEvents']=_0x5618d1;if(!this['canvas'])return;function _0x373467(_0x552f65,_0x1f6f46){return _0x35412f(_0x1f6f46- -0x21b,_0x552f65);}function _0x2203ae(_0x5eea69,_0x3f6346){return _0x35412f(_0x5eea69-0x183,_0x3f6346);}_0x5618d1?this['canvas']['style']['pointer-events']='all':this[_0x2203ae(0x256,0x234)][_0x2203ae(0x2aa,0x2ae)][_0x2203ae(0x2b9,0x2fd)]=_0x373467(-0x66,-0xda);}get[_0x4e9bfa(0x18e,0x15c)](){return this['options']['particlesNumber'];}set['particlesNumber'](_0x13176c){function _0xfb02ed(_0x1367ef,_0x264a45){return _0x4e9bfa(_0x264a45-0x3de,_0x1367ef);}this['options'][_0xfb02ed(0x56e,0x56c)]=_0x13176c,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{function _0x3dc01d(_0x1041ca,_0x8d3be2){return _0xfb02ed(_0x8d3be2,_0x1041ca- -0x45c);}this[_0x3dc01d(0xbe,0x111)]();},0x1f4);}get['speedRate'](){function _0x7bedc9(_0x1a30a0,_0x2f8903){return _0x35412f(_0x1a30a0-0x268,_0x2f8903);}function _0x2e9aa5(_0x3a5983,_0x336704){return _0x4e9bfa(_0x336704- -0x34c,_0x3a5983);}return this[_0x7bedc9(0x38e,0x3fe)][_0x7bedc9(0x37a,0x3b1)];}set['speedRate'](_0x5d2b8a){this['options']['speedRate']=_0x5d2b8a,this['windField']&&(this['windField']['speedRate']=_0x5d2b8a);}get['maxAge'](){function _0x2f9dfb(_0x23fc89,_0x4430d7){return _0x35412f(_0x4430d7- -0x164,_0x23fc89);}return this['options'][_0x2f9dfb(-0x130,-0x108)];}set[_0x4e9bfa(0xce,0x66)](_0x5488ec){this['options'][_0x266327(-0x1b7,-0x153)]=_0x5488ec;function _0x266327(_0x258b0a,_0x3cfab0){return _0x4e9bfa(_0x258b0a- -0x285,_0x3cfab0);}this['windField']&&(this['windField']['maxAge']=_0x5488ec);}get[_0x35412f(0x55,-0x17)](){return this['windData'];}set['data'](_0x19afab){this['setData'](_0x19afab);}get['rectangle'](){let _0x4c1e84=this['windData']['xmin'],_0x40235e=this[_0x3780bf(0x2df,0x365)]['xmax'],_0x39001b=this['windData']['ymin'],_0x5ccc12=this[_0x3780bf(0x2df,0x2cc)][_0x794765(0x396,0x36c)];function _0x794765(_0x2127bb,_0xc0a7ff){return _0x4e9bfa(_0x2127bb-0x2eb,_0xc0a7ff);}_0x40235e>=0x167&&_0x4c1e84===0x0&&(_0x4c1e84=-0xb4,_0x40235e=0xb4);_0x4c1e84=Math['max'](_0x4c1e84,-0xb4),_0x40235e=Math['min'](_0x40235e,0xb4),_0x39001b=Math[_0x3780bf(0x2fb,0x2f6)](_0x39001b,-0x5a),_0x5ccc12=Math[_0x3780bf(0x296,0x2ab)](_0x5ccc12,0x5a);function _0x3780bf(_0x19532d,_0x57a156){return _0x4e9bfa(_0x19532d-0x15e,_0x57a156);}return Cesium[_0x794765(0x440,0x4ac)]['fromDegrees'](_0x4c1e84,_0x39001b,_0x40235e,_0x5ccc12);}['_showHook'](_0x140e07){function _0x39bd69(_0x4d68ee,_0x50c68e){return _0x4e9bfa(_0x4d68ee-0x99,_0x50c68e);}function _0x25dc90(_0x155353,_0x4e16b9){return _0x35412f(_0x155353-0x163,_0x4e16b9);}_0x140e07?this['_addedHook']():(this['windData']&&(this[_0x25dc90(0x289,0x202)]['data']=this[_0x25dc90(0x272,0x25d)]),this[_0x25dc90(0x202,0x265)]());}['_mountedHook'](){function _0x11545c(_0x3f15c6,_0x7b0cfb){return _0x35412f(_0x3f15c6- -0x8b,_0x7b0cfb);}function _0x387ad3(_0x59cb1d,_0x45323c){return _0x35412f(_0x45323c-0x431,_0x59cb1d);}this[_0x387ad3(0x516,0x557)]['worker']?this[_0x387ad3(0x487,0x517)]():this['windField']=new CanvasWindField(this['options']);}[_0x35412f(0x3f,-0x16)](){this[_0x131ec9(0x449,0x48a)]=this[_0x131ec9(0x44b,0x47d)]();const _0x4918c1={};_0x4918c1['willReadFrequently']=!![],this['canvasContext']=this['canvas']['getContext']('2d',_0x4918c1);function _0x131ec9(_0x270fe3,_0x2ad725){return _0x4e9bfa(_0x270fe3-0x304,_0x2ad725);}function _0x1b987e(_0x25a3b8,_0x1e7909){return _0x4e9bfa(_0x25a3b8-0x2f7,_0x1e7909);}this['bindEvent'](),this['options'][_0x1b987e(0x3be,0x3dc)]&&this['setData'](this['options']['data']);}['_removedHook'](){this['clear'](),this['unbindEvent']();function _0x53ccd4(_0x166eae,_0x411225){return _0x35412f(_0x411225-0x28d,_0x166eae);}function _0x56df42(_0x1f24c3,_0x655a9){return _0x35412f(_0x1f24c3- -0x205,_0x655a9);}this['canvas']&&(this['_map'][_0x53ccd4(0x33c,0x39d)][_0x53ccd4(0x3b2,0x3bd)](this[_0x53ccd4(0x324,0x360)]),delete this['canvas']);}['_createCanvas'](){const _0x3f03f9=mars3d__namespace[_0x177bd6(0x45d,0x3ce)][_0x41046d(0x31b,0x3a9)](_0x177bd6(0x36c,0x396),_0x41046d(0x3be,0x335),this[_0x41046d(0x47d,0x412)][_0x41046d(0x445,0x3f5)]);_0x3f03f9['style']['position']='absolute',_0x3f03f9['style']['top']=_0x41046d(0x40e,0x3dd);function _0x177bd6(_0x2b09e7,_0x45e311){return _0x4e9bfa(_0x45e311-0x251,_0x2b09e7);}_0x3f03f9['style'][_0x177bd6(0x3ae,0x32c)]=_0x177bd6(0x350,0x3bb),_0x3f03f9['style'][_0x177bd6(0x37e,0x3ba)]=this['_map'][_0x177bd6(0x321,0x319)][_0x41046d(0x3e8,0x3b8)][_0x177bd6(0x393,0x3a7)]+'px',_0x3f03f9['style'][_0x41046d(0x432,0x41e)]=this['_map'][_0x177bd6(0x2b3,0x319)][_0x41046d(0x40c,0x3b8)]['clientHeight']+'px',_0x3f03f9[_0x41046d(0x394,0x40c)][_0x41046d(0x3e9,0x413)]=this[_0x177bd6(0x2bd,0x338)]?_0x177bd6(0x3f2,0x368):'none';function _0x41046d(_0x2e615a,_0x177125){return _0x35412f(_0x177125-0x2e5,_0x2e615a);}return _0x3f03f9['style'][_0x41046d(0x39b,0x3d6)]=this['options']['zIndex']??0x9,_0x3f03f9['width']=this['_map']['scene']['canvas']['clientWidth'],_0x3f03f9[_0x41046d(0x3ec,0x41e)]=this['_map'][_0x177bd6(0x2fa,0x319)]['canvas']['clientHeight'],_0x3f03f9;}[_0x4e9bfa(0xe4,0x11f)](){function _0x5c0c53(_0x7d19de,_0x41d147){return _0x4e9bfa(_0x41d147-0x96,_0x7d19de);}function _0xa497eb(_0x506d4b,_0x45b08e){return _0x4e9bfa(_0x45b08e- -0x28c,_0x506d4b);}this['canvas']&&(this['canvas'][_0xa497eb(-0xd8,-0xf3)][_0xa497eb(-0x97,-0x123)]=this['_map'][_0xa497eb(-0x188,-0x1c4)]['canvas']['clientWidth']+'px',this['canvas'][_0xa497eb(-0xd7,-0xf3)]['height']=this[_0x5c0c53(0x2bc,0x235)][_0xa497eb(-0x150,-0x1c4)][_0x5c0c53(0x209,0x1db)][_0x5c0c53(0x16d,0x140)]+'px',this['canvas'][_0x5c0c53(0x179,0x1ff)]=this['_map']['scene']['canvas']['clientWidth'],this['canvas']['height']=this['_map'][_0x5c0c53(0xed,0x15e)]['canvas']['clientHeight']);}['bindEvent'](){const _0x4f92b8=this;let _0x40e811=Date[_0x392984(0x3ad,0x3cd)]();(function _0xb9053c(){function _0x3edecf(_0x572ca1,_0x1cf1f8){return _0x392984(_0x572ca1,_0x1cf1f8- -0x494);}function _0x4d169d(_0x51e565,_0x52b16b){return _0x392984(_0x51e565,_0x52b16b- -0x3b);}if(_0x4f92b8[_0x4d169d(0x35c,0x3b2)])return;_0x4f92b8[_0x4d169d(0x367,0x334)]=window[_0x3edecf(0x1a,-0x1e)](_0xb9053c);if(_0x4f92b8['show']&&_0x4f92b8[_0x3edecf(-0x177,-0x129)]){const _0x11f36e=Date['now'](),_0x235b26=_0x11f36e-_0x40e811;_0x235b26>_0x4f92b8[_0x3edecf(-0xb0,-0x94)]&&(_0x40e811=_0x11f36e-_0x235b26%_0x4f92b8['frameTime'],_0x4f92b8[_0x3edecf(-0xca,-0x3b)]());}}(),window[_0x338b42(-0x20c,-0x19f)]('resize',this[_0x338b42(-0x217,-0x221)][_0x392984(0x3dc,0x3ee)](this),![]));function _0x338b42(_0x23c5e3,_0x4ce301){return _0x4e9bfa(_0x4ce301- -0x305,_0x23c5e3);}this['mouse_down']=![],this[_0x338b42(-0x18c,-0x172)]=![];function _0x392984(_0x1fcf21,_0x11bf14){return _0x4e9bfa(_0x11bf14-0x2cc,_0x1fcf21);}this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType'][_0x392984(0x2ef,0x37f)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x338b42(-0x222,-0x1e5)][_0x392984(0x3f2,0x3f9)],this[_0x392984(0x46c,0x44c)],this),this['_map']['on'](mars3d__namespace[_0x338b42(-0x259,-0x1e5)]['mouseUp'],this['_onMouseUpEvent'],this));}['unbindEvent'](){function _0x20942f(_0x309072,_0x4feb5a){return _0x4e9bfa(_0x309072-0x136,_0x4feb5a);}window['cancelAnimationFrame'](this[_0x4a560a(0x1a3,0x13d)]),delete this['_animateFrame'];function _0x4a560a(_0x22c4fa,_0x38ef68){return _0x35412f(_0x22c4fa-0x172,_0x38ef68);}window['removeEventListener']('resize',this[_0x20942f(0x21a,0x264)]),this[_0x4a560a(0x298,0x23b)][_0x4a560a(0x223,0x22e)]&&(this['_map'][_0x4a560a(0x1ed,0x27d)](mars3d__namespace['EventType'][_0x20942f(0x1e9,0x232)],this['_onMapWhellEvent'],this),this[_0x4a560a(0x29f,0x2fc)]['off'](mars3d__namespace[_0x20942f(0x256,0x207)]['mouseDown'],this[_0x20942f(0x2b6,0x240)],this),this[_0x4a560a(0x29f,0x28d)]['off'](mars3d__namespace['EventType']['mouseUp'],this[_0x4a560a(0x272,0x2fa)],this),this[_0x4a560a(0x29f,0x2ca)][_0x20942f(0x223,0x24d)](mars3d__namespace[_0x20942f(0x256,0x2bc)]['mouseMove'],this[_0x4a560a(0x21a,0x1cf)],this));}[_0x35412f(0xed,0x143)](_0x1c2bbd){function _0x37d633(_0x23c053,_0x194b21){return _0x4e9bfa(_0x194b21- -0xb8,_0x23c053);}clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas']['style']['visibility']='hidden',this[_0x37d633(-0x7f,0x7)]=setTimeout(()=>{if(!this['show'])return;this['redraw']();function _0x2d96c8(_0x8dac06,_0x54c8ce){return _0x37d633(_0x54c8ce,_0x8dac06- -0x13e);}this[_0x2d96c8(-0xb1,-0x112)]['style']['visibility']='visible';},0xc8);}[_0x35412f(0x10e,0x122)](_0x225804){this['mouse_down']=!![],this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x46b400(0x220,0x28a)],this);function _0x46b400(_0x39461b,_0x5d6050){return _0x35412f(_0x39461b-0x178,_0x5d6050);}this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}[_0x4e9bfa(0x11a,0xa5)](_0x4e2aff){function _0x42e5eb(_0x2168a3,_0x211f1a){return _0x4e9bfa(_0x211f1a-0x117,_0x2168a3);}function _0x23c742(_0x5eea8f,_0x5c6432){return _0x4e9bfa(_0x5eea8f-0x282,_0x5c6432);}if(!this['show']||!this['canvas'])return;this['mouse_down']&&(this['canvas'][_0x23c742(0x41b,0x48d)][_0x23c742(0x35a,0x2d9)]='hidden',this['mouse_move']=!![]);}[_0x35412f(0x100,0xed)](_0xd39935){function _0x575c72(_0x23122b,_0x39fa78){return _0x4e9bfa(_0x23122b- -0x308,_0x39fa78);}function _0x5eab90(_0x351bcb,_0xaacb5c){return _0x4e9bfa(_0xaacb5c-0x2eb,_0x351bcb);}if(!this[_0x575c72(-0x1e3,-0x1b3)]||!this[_0x5eab90(0x401,0x430)])return;this[_0x5eab90(0x3fd,0x48a)]['off'](mars3d__namespace[_0x575c72(-0x1e8,-0x1e4)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x5eab90(0x379,0x387)]&&this['mouse_move']&&this[_0x5eab90(0x487,0x427)](),this['canvas'][_0x5eab90(0x452,0x484)]['visibility']=_0x575c72(-0x1ab,-0x189),this['mouse_down']=![],this['mouse_move']=![];}['setData'](_0x30f2ca){this['clear'](),this[_0x1f273a(0x55c,0x51d)]=_0x30f2ca;function _0x1f273a(_0x30e2e4,_0x38f1c5){return _0x35412f(_0x30e2e4-0x44d,_0x38f1c5);}this['windField']['setDate'](_0x30f2ca),this['redraw']();}['redraw'](){function _0x5d0e96(_0x5577a0,_0x4c226a){return _0x4e9bfa(_0x4c226a- -0x2de,_0x5577a0);}if(!this['show'])return;this[_0x39fa01(-0x193,-0x1ab)][_0x5d0e96(-0x198,-0x1bf)](this['options']);function _0x39fa01(_0x2c6242,_0x309472){return _0x4e9bfa(_0x309472- -0x24a,_0x2c6242);}this['update']();}['update'](){function _0xac21a8(_0x2b552b,_0x2049dc){return _0x4e9bfa(_0x2b552b-0x30e,_0x2049dc);}function _0xc6f7fa(_0x2d36bf,_0x46b906){return _0x35412f(_0x46b906-0x22e,_0x2d36bf);}if(this[_0xc6f7fa(0x30c,0x2ba)])return;this['_updateIng']=!![];if(this['worker'])this[_0xc6f7fa(0x203,0x25b)]['update']();else{const _0x48bbbf=this[_0xac21a8(0x3ad,0x3e6)]['getParticles']();this['_drawLines'](_0x48bbbf);}this['_updateIng']=![];}[_0x4e9bfa(0x179,0x1f6)](_0x20eb53){this['_canvasParticles']=_0x20eb53,this['canvasContext']['globalCompositeOperation']='destination-in',this['canvasContext'][_0x66b038(-0x146,-0xb6)](0x0,0x0,this[_0x2f51e5(0x512,0x59e)],this['canvasHeight']),this[_0x2f51e5(0x4d2,0x4ef)][_0x66b038(-0xdd,-0xf3)]='lighter';function _0x66b038(_0x3f2b64,_0x2791d9){return _0x4e9bfa(_0x2791d9- -0x1a7,_0x3f2b64);}this['canvasContext']['globalAlpha']=0.9;const _0x434950=this[_0x66b038(-0x7d,-0x8)][_0x66b038(-0x119,-0xdf)]['mode']!==Cesium['SceneMode']['SCENE3D'];function _0x2f51e5(_0x5a993c,_0x12651b){return _0x4e9bfa(_0x5a993c-0x380,_0x12651b);}const _0x4addc6=this[_0x2f51e5(0x512,0x51f)]*0.25;if(this[_0x2f51e5(0x4db,0x49f)])for(let _0x13c6ba=0x0,_0x40d5ae=_0x20eb53['length'];_0x13c6ba<_0x40d5ae;_0x13c6ba++){const _0x476ed0=_0x20eb53[_0x13c6ba],_0x10b94d=this['_tomap'](_0x476ed0,_0x476ed0['lng'],_0x476ed0['lat'],_0x476ed0['alt']),_0x320078=this['_tomap'](_0x476ed0,_0x476ed0['tlng'],_0x476ed0['tlat'],_0x476ed0[_0x2f51e5(0x441,0x4a6)]);if(!_0x10b94d||!_0x320078)continue;if(_0x434950&&Math['abs'](_0x10b94d[0x0]-_0x320078[0x0])>=_0x4addc6)continue;this['canvasContext']['beginPath'](),this['canvasContext'][_0x2f51e5(0x488,0x4be)]=this[_0x66b038(-0x56,-0x9f)],this[_0x2f51e5(0x4d2,0x55f)]['strokeStyle']=this['_colorRamp']['getColor'](_0x476ed0['speed']),this[_0x66b038(0x8,-0x55)][_0x66b038(-0x98,-0x7d)](_0x10b94d[0x0],_0x10b94d[0x1]),this[_0x2f51e5(0x4d2,0x477)]['lineTo'](_0x320078[0x0],_0x320078[0x1]),this['canvasContext']['stroke']();}else{this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this[_0x2f51e5(0x488,0x493)],this[_0x2f51e5(0x4d2,0x539)]['strokeStyle']=this['color'];for(let _0x260199=0x0,_0x30ad27=_0x20eb53['length'];_0x260199<_0x30ad27;_0x260199++){const _0x18a874=_0x20eb53[_0x260199],_0x203f24=this[_0x2f51e5(0x4ff,0x53a)](_0x18a874,_0x18a874['lng'],_0x18a874['lat'],_0x18a874['alt']),_0x42bb6f=this[_0x2f51e5(0x4ff,0x4db)](_0x18a874,_0x18a874['tlng'],_0x18a874['tlat'],_0x18a874['talt']);if(!_0x203f24||!_0x42bb6f)continue;if(_0x434950&&Math['abs'](_0x203f24[0x0]-_0x42bb6f[0x0])>=_0x4addc6)continue;this[_0x2f51e5(0x4d2,0x523)]['moveTo'](_0x203f24[0x0],_0x203f24[0x1]),this['canvasContext'][_0x66b038(-0x141,-0xf8)](_0x42bb6f[0x0],_0x42bb6f[0x1]);}this['canvasContext'][_0x66b038(-0x15f,-0xd2)]();}}['_tomap'](_0x266c4e,_0x334707,_0x494911,_0x2982c5){function _0x49e1f6(_0x1b4aec,_0x15b1c5){return _0x35412f(_0x1b4aec-0x262,_0x15b1c5);}const _0x5945ec=Cesium['Cartesian3'][_0x49e1f6(0x2df,0x2d3)](_0x334707,_0x494911,_0x2982c5??this[_0x1d379a(-0x6b,-0x50)]),_0x52dc16=this['_map']['scene'];function _0x1d379a(_0xe9c7ee,_0x58b63b){return _0x35412f(_0x58b63b- -0xad,_0xe9c7ee);}if(_0x52dc16['mode']===Cesium['SceneMode']['SCENE3D']){const _0x3f875a=new Cesium[(_0x1d379a(0xcb,0x70))](_0x52dc16['globe'][_0x49e1f6(0x33a,0x3af)],_0x52dc16[_0x49e1f6(0x2f4,0x32f)][_0x1d379a(0x98,0x64)]),_0x4ed01a=_0x3f875a[_0x49e1f6(0x2cc,0x327)](_0x5945ec);if(!_0x4ed01a)return _0x266c4e['age']=0x0,null;}const _0x448680=mars3d__namespace[_0x1d379a(-0x65,-0x66)][_0x1d379a(-0x57,-0x53)](this['_map'][_0x49e1f6(0x2b8,0x27a)],_0x5945ec);return _0x448680?[_0x448680['x'],_0x448680['y']]:null;}['clear'](){this['windField'][_0x4a5f2b(0x264,0x2c5)]();function _0x4a5f2b(_0x2c8231,_0xb63424){return _0x35412f(_0xb63424-0x19b,_0x2c8231);}delete this['windData'];}['initWorker'](){function _0x194f8b(_0x478c3c,_0x11809d){return _0x4e9bfa(_0x478c3c- -0xa8,_0x11809d);}this[_0x4a3d01(0x6,0x4a)]=new Worker(this['options'][_0x4a3d01(0x6,0x6d)]),this['worker']['onmessage']=_0x34a39d=>{this['_drawLines'](_0x34a39d['data'][_0x5b2b1a(-0xe2,-0x153)]);function _0x5b2b1a(_0x741909,_0x43817d){return _0x194f8b(_0x43817d- -0x1dc,_0x741909);}this['_updateIng2']=![];},this['windField']={'init':_0x7d338a=>{const _0x3b4f2b={};_0x3b4f2b['type']='init',_0x3b4f2b[_0x4d5ccc(0x2ca,0x29b)]=_0x7d338a;function _0x4d5ccc(_0x32058f,_0x443f48){return _0x4a3d01(_0x32058f-0x238,_0x443f48);}this['worker']['postMessage'](_0x3b4f2b);},'setOptions':_0x591923=>{const _0x4dd6e0={};_0x4dd6e0[_0x5a9293(-0x174,-0x153)]='setOptions',_0x4dd6e0['options']=_0x591923;function _0x5a9293(_0x58bc9e,_0x105bd8){return _0x194f8b(_0x105bd8- -0x184,_0x58bc9e);}this['worker']['postMessage'](_0x4dd6e0);},'setDate':_0x243b58=>{const _0x54913e={};function _0x3616e0(_0x36af00,_0x19966e){return _0x194f8b(_0x36af00-0x172,_0x19966e);}_0x54913e[_0xe80e5c(0x3c1,0x3f9)]='setDate',_0x54913e['data']=_0x243b58;function _0xe80e5c(_0x5e64fc,_0x467740){return _0x4a3d01(_0x5e64fc-0x3ee,_0x467740);}this[_0x3616e0(0x1d6,0x155)]['postMessage'](_0x54913e);},'update':()=>{if(this['_updateIng2'])return;function _0x3e2a9a(_0x3e1166,_0x2cf373){return _0x4a3d01(_0x2cf373- -0x18d,_0x3e1166);}this[_0x57df4b(0x48f,0x4c7)]=!![];const _0x20e896={};_0x20e896[_0x57df4b(0x3c2,0x346)]='update';function _0x57df4b(_0x4622d9,_0xc1a4b4){return _0x4a3d01(_0x4622d9-0x3ef,_0xc1a4b4);}this[_0x57df4b(0x3f5,0x3d8)][_0x3e2a9a(-0x1a1,-0x122)](_0x20e896);},'clear':()=>{const _0x5be7df={};_0x5be7df['type']='clear',this['worker']['postMessage'](_0x5be7df);}};function _0x4a3d01(_0x94a35b,_0x3fcf4f){return _0x35412f(_0x94a35b- -0x94,_0x3fcf4f);}this['windField'][_0x194f8b(0x10d,0x11e)](this['options']);}}mars3d__namespace[_0x35412f(0x9d,0xcc)]['register']('canvasWind',CanvasWindLayer),mars3d__namespace[_0x4e9bfa(0x128,0xf6)][_0x35412f(0xcf,0x65)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x35412f(0x129,0x19e)]=WindUtil,exports[_0x35412f(0xf5,0x119)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x4e9bfa(0x1ae,0x20f)]=WindLayer,exports['WindUtil']=WindUtil;const _0x364b5d={};_0x364b5d[_0x4e9bfa(0xa7,0x3f)]=!![],Object['defineProperty'](exports,'__esModule',_0x364b5d);
14
+ 'use strict';(function(_0x14324f,_0x55fb34){function _0x1d757b(_0x117123,_0x1a86a3){return _0x3300(_0x1a86a3-0x159,_0x117123);}function _0x37fc1f(_0x127afe,_0x4bf32a){return _0x3300(_0x4bf32a- -0x8d,_0x127afe);}const _0x1427c2=_0x14324f();while(!![]){try{const _0x1c8df1=-parseInt(_0x1d757b(0x26f,0x28e))/0x1+parseInt(_0x37fc1f(0x61,0xc2))/0x2*(-parseInt(_0x37fc1f(0x35,0x92))/0x3)+parseInt(_0x1d757b(0x1d7,0x224))/0x4+-parseInt(_0x1d757b(0x285,0x2c4))/0x5+parseInt(_0x37fc1f(0xe8,0xc8))/0x6*(parseInt(_0x37fc1f(0x79,0x24))/0x7)+-parseInt(_0x1d757b(0x2c5,0x265))/0x8*(parseInt(_0x37fc1f(-0x39,0x50))/0x9)+parseInt(_0x37fc1f(0xc9,0xbe))/0xa;if(_0x1c8df1===_0x55fb34)break;else _0x1427c2['push'](_0x1427c2['shift']());}catch(_0x23b2fe){_0x1427c2['push'](_0x1427c2['shift']());}}}(_0x461c,0x4739f));function _interopNamespace(_0x107184){function _0x48f5db(_0x1fb33b,_0x4a3cf1){return _0x3300(_0x4a3cf1- -0x70,_0x1fb33b);}if(_0x107184&&_0x107184[_0x358feb(0x1f3,0x1d9)])return _0x107184;var _0x55676f=Object[_0x358feb(0x1e4,0x215)](null);_0x107184&&Object[_0x358feb(0x1a6,0x12c)](_0x107184)[_0x48f5db(0x60,0x46)](function(_0xf893bb){function _0x14eb8f(_0x32fe07,_0x470a63){return _0x48f5db(_0x470a63,_0x32fe07-0x1ba);}function _0x10f343(_0x5487fa,_0x13fafd){return _0x358feb(_0x5487fa-0x29b,_0x13fafd);}if(_0xf893bb!=='default'){var _0x472a88=Object['getOwnPropertyDescriptor'](_0x107184,_0xf893bb);Object[_0x10f343(0x492,0x518)](_0x55676f,_0xf893bb,_0x472a88[_0x10f343(0x45e,0x419)]?_0x472a88:{'enumerable':!![],'get':function(){return _0x107184[_0xf893bb];}});}});function _0x358feb(_0x478dda,_0xc7821c){return _0x3300(_0x478dda-0x138,_0xc7821c);}return _0x55676f[_0x358feb(0x1f6,0x1f0)]=_0x107184,_0x55676f;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x26861d,_0x4f8ba8){const _0x1297dd=_0x26861d*Math[_0x585639(0x359,0x329)](Cesium$2['Math']['toRadians'](_0x4f8ba8));function _0x585639(_0x351adb,_0xb8f5db){return _0x3300(_0xb8f5db-0x24d,_0x351adb);}return _0x1297dd;}function getV(_0x5dda29,_0x19d315){const _0x13f4ed=_0x5dda29*Math[_0x19f8a8(-0x5d,-0x1a)](Cesium$2[_0x532e45(0xa8,0xc8)]['toRadians'](_0x19d315));function _0x532e45(_0x2d5d8a,_0x4bb338){return _0x3300(_0x2d5d8a- -0x7c,_0x4bb338);}function _0x19f8a8(_0x374ef8,_0x46e8f1){return _0x3300(_0x46e8f1- -0x82,_0x374ef8);}return _0x13f4ed;}function getSpeed(_0x11f0fb,_0x5aa561){const _0x18ff23=Math[_0x2d1d1d(-0x2b6,-0x2d9)](Math[_0x2d1d1d(-0x2ba,-0x2e2)](_0x11f0fb,0x2)+Math['pow'](_0x5aa561,0x2));function _0x2d1d1d(_0x3aa6b9,_0x42360d){return _0x3300(_0x3aa6b9- -0x3e4,_0x42360d);}function _0x1b16c4(_0x3071fc,_0xd80fba){return _0x3300(_0xd80fba- -0x341,_0x3071fc);}return _0x18ff23;}function getDirection(_0x648e0d,_0x542cac){let _0x2fbc37=Cesium$2[_0x63fa84(-0x110,-0x14a)]['toDegrees'](Math[_0x1a3e0b(-0x2d4,-0x349)](_0x542cac,_0x648e0d));_0x2fbc37+=_0x2fbc37<0x0?0x168:0x0;function _0x1a3e0b(_0x402f99,_0x58d3ff){return _0x3300(_0x58d3ff- -0x3de,_0x402f99);}function _0x63fa84(_0x4d1365,_0x4f213a){return _0x3300(_0x4d1365- -0x234,_0x4f213a);}return _0x2fbc37;}const _0x2caa87={};_0x2caa87[_0x47b22c(-0x24c,-0x241)]=null,_0x2caa87[_0x47b22c(-0x157,-0x165)]=getU,_0x2caa87[_0x2b8e51(0x33c,0x370)]=getV,_0x2caa87[_0x2b8e51(0x2b4,0x2b5)]=getSpeed,_0x2caa87[_0x47b22c(-0x152,-0x1d9)]=getDirection;var WindUtil=_0x2caa87,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader=_0x47b22c(-0x1fd,-0x206);const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x15f749={};function _0x3bbb9f(_0x5493ee,_0x16bc92){return _0x2b8e51(_0x5493ee,_0x16bc92- -0x1c9);}return _0x15f749[_0x3bbb9f(0xbf,0xfd)]=[calculateSpeedShader],new ShaderSource$1(_0x15f749);}static['getUpdatePositionShader'](){const _0x9b9817={};return _0x9b9817['sources']=[updatePositionShader],new ShaderSource$1(_0x9b9817);}static[_0x2b8e51(0x28a,0x2db)](){const _0x196a10={};return _0x196a10['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x196a10);}static['getSegmentDrawFragmentShader'](){const _0x53010d={};function _0x412365(_0x508884,_0x3842d0){return _0x47b22c(_0x508884-0x274,_0x3842d0);}return _0x53010d[_0x412365(0x58,0xc4)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x53010d);}static[_0x47b22c(-0x241,-0x260)](){const _0x17f5ab={};return _0x17f5ab['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x17f5ab);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x452914){this['commandType']=_0x452914[_0x5b726f(0x181,0x1b3)],this['geometry']=_0x452914['geometry'],this['attributeLocations']=_0x452914['attributeLocations'],this['primitiveType']=_0x452914[_0x5b726f(0x157,0x106)],this['uniformMap']=_0x452914['uniformMap']||{},this['vertexShaderSource']=_0x452914[_0x5b726f(0x171,0x197)],this['fragmentShaderSource']=_0x452914[_0x5b726f(0x108,0x101)],this['rawRenderState']=_0x452914[_0x5b726f(0x16c,0x1f3)],this['framebuffer']=_0x452914['framebuffer'],this['outputTexture']=_0x452914['outputTexture'],this[_0x553966(-0x20d,-0x21b)]=_0x452914['autoClear']??![],this['preExecute']=_0x452914[_0x553966(-0x167,-0x1a1)],this[_0x553966(-0x19c,-0x1bc)]=!![],this[_0x553966(-0x23d,-0x22c)]=undefined,this['clearCommand']=undefined;function _0x5b726f(_0x1b0f5f,_0xcf558b){return _0x2b8e51(_0x1b0f5f,_0xcf558b- -0x193);}function _0x553966(_0x47b4f3,_0x4b5864){return _0x47b22c(_0x4b5864- -0x48,_0x47b4f3);}this['isDynamic']=_0x452914['isDynamic']??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x15638d){function _0x117e44(_0x114468,_0x1209fc){return _0x47b22c(_0x114468-0x32f,_0x1209fc);}function _0x36c264(_0x4765a3,_0x947dcc){return _0x2b8e51(_0x947dcc,_0x4765a3- -0x5e9);}if(this[_0x36c264(-0x2a3,-0x301)]==='Draw'){const _0x509ab9={};_0x509ab9['context']=_0x15638d,_0x509ab9[_0x36c264(-0x2a9,-0x23a)]=this[_0x36c264(-0x2a9,-0x272)],_0x509ab9['attributeLocations']=this['attributeLocations'],_0x509ab9['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x3ef1e9=VertexArray$1[_0x117e44(0x170,0x14d)](_0x509ab9),_0x16ecca={};_0x16ecca['context']=_0x15638d,_0x16ecca['vertexShaderSource']=this[_0x36c264(-0x2bf,-0x260)],_0x16ecca[_0x36c264(-0x355,-0x32f)]=this[_0x117e44(0xe1,0x110)],_0x16ecca[_0x117e44(0x11e,0x15f)]=this['attributeLocations'];const _0x350a59=ShaderProgram['fromCache'](_0x16ecca),_0x5b1b74=RenderState['fromCache'](this[_0x36c264(-0x263,-0x2cc)]),_0x167ce1={};return _0x167ce1['owner']=this,_0x167ce1['vertexArray']=_0x3ef1e9,_0x167ce1['primitiveType']=this[_0x36c264(-0x350,-0x308)],_0x167ce1['modelMatrix']=Matrix4['IDENTITY'],_0x167ce1[_0x117e44(0x165,0x150)]=_0x5b1b74,_0x167ce1[_0x117e44(0x11a,0x119)]=_0x350a59,_0x167ce1[_0x36c264(-0x24b,-0x2c0)]=this[_0x36c264(-0x24b,-0x1dd)],_0x167ce1['uniformMap']=this['uniformMap'],_0x167ce1['pass']=Pass$1['OPAQUE'],new DrawCommand(_0x167ce1);}else{if(this['commandType']===_0x36c264(-0x2af,-0x2dd)){const _0x166638={};return _0x166638[_0x117e44(0x1de,0x247)]=this,_0x166638['fragmentShaderSource']=this['fragmentShaderSource'],_0x166638['uniformMap']=this['uniformMap'],_0x166638['outputTexture']=this['outputTexture'],_0x166638[_0x36c264(-0x2a0,-0x268)]=!![],new ComputeCommand(_0x166638);}else throw new Error(_0x36c264(-0x338,-0x312));}}['setGeometry'](_0x2519d8,_0x17f0f5){this['geometry']=_0x17f0f5;function _0x8ff98f(_0x36b1cd,_0x8900b){return _0x47b22c(_0x36b1cd-0x664,_0x8900b);}function _0x439e37(_0x2cd259,_0x1e3582){return _0x47b22c(_0x1e3582-0x200,_0x2cd259);}defined(this[_0x439e37(-0x67,0x1c)])&&(this[_0x8ff98f(0x480,0x49a)][_0x439e37(0x29,0x40)]=VertexArray$1['fromGeometry']({'context':_0x2519d8,'geometry':this['geometry'],'attributeLocations':this[_0x8ff98f(0x453,0x455)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x5b772c){function _0x1b361d(_0xe5c082,_0x731819){return _0x47b22c(_0x731819- -0x59,_0xe5c082);}if(!this[_0x1b361d(-0x24f,-0x1d7)]())return;if(!this['show']||!defined(_0x5b772c))return;!defined(this[_0x1e1773(0x1d4,0x24f)])&&(this['commandToExecute']=this[_0x1e1773(0x2a0,0x2c6)](_0x5b772c[_0x1e1773(0x2b7,0x2c5)]));function _0x1e1773(_0x3cb0f8,_0xb99c21){return _0x2b8e51(_0x3cb0f8,_0xb99c21- -0xaf);}defined(this[_0x1b361d(-0x16f,-0x1b2)])&&this['preExecute']();if(!_0x5b772c[_0x1b361d(-0x155,-0x1dc)]){console['warn']('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x5b772c['commandList']['push'](this['clearCommand']),defined(this['commandToExecute'])&&_0x5b772c[_0x1b361d(-0x24c,-0x1dc)][_0x1e1773(0x32b,0x2e3)](this[_0x1e1773(0x241,0x24f)]);}[_0x2b8e51(0x303,0x33e)](){return![];}['destroy'](){function _0x1ed6bc(_0x11f3d9,_0x5f2ddc){return _0x2b8e51(_0x11f3d9,_0x5f2ddc- -0x1b4);}function _0x5b1d4f(_0x143f7c,_0x4b3db9){return _0x47b22c(_0x4b3db9-0x1ed,_0x143f7c);}if(defined(this['commandToExecute'])){var _0x1587d8;(_0x1587d8=this['commandToExecute'][_0x1ed6bc(0x15b,0x119)])===null||_0x1587d8===void 0x0||_0x1587d8['destroy'](),this[_0x1ed6bc(0x122,0x14a)][_0x5b1d4f(-0x54,-0x28)]=undefined;}return destroyObject(this);}}function deepMerge(_0x14d95a,_0x3fceae){if(!_0x14d95a)return _0x3fceae;if(!_0x3fceae)return _0x14d95a;const _0x5cade4={..._0x3fceae},_0xe07373=_0x5cade4;function _0x414f11(_0x5badbe,_0x530b91){return _0x2b8e51(_0x5badbe,_0x530b91- -0x599);}for(const _0x3d0f61 in _0x14d95a){if(Object['prototype']['hasOwnProperty'][_0x414f11(-0x23f,-0x206)](_0x14d95a,_0x3d0f61)){const _0x5837e6=_0x14d95a[_0x3d0f61],_0x3d24b3=_0x3fceae[_0x3d0f61];if(Array['isArray'](_0x5837e6)){_0xe07373[_0x3d0f61]=_0x5837e6['slice']();continue;}if(_0x5837e6&&typeof _0x5837e6==='object'){_0xe07373[_0x3d0f61]=deepMerge(_0x5837e6,_0x3d24b3||{});continue;}_0x5837e6!==undefined&&(_0xe07373[_0x3d0f61]=_0x5837e6);}}return _0xe07373;}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[_0x47b22c(-0x1d9,-0x15a)];class WindParticlesComputing{constructor(_0x4a2e07,_0x261032,_0x2d3f5b,_0x42ddec,_0x4c7997){this['context']=_0x4a2e07,this[_0x4a5493(0x1bf,0x1a4)]=_0x2d3f5b,this[_0x4a5493(0x1e5,0x1c6)]=_0x42ddec,this['windData']=_0x261032,this[_0x20f933(0x2a4,0x30b)]=0x3c,this['frameRateAdjustment']=0x1;const _0x1d89eb={};_0x1d89eb[_0x4a5493(0x23d,0x1c2)]=_0x4c7997,_0x1d89eb['samplingWindow']=0x1,_0x1d89eb['quietPeriod']=0x0;function _0x20f933(_0x4aef53,_0x50075b){return _0x2b8e51(_0x4aef53,_0x50075b- -0x45);}function _0x4a5493(_0x543971,_0x341f14){return _0x47b22c(_0x341f14-0x357,_0x543971);}this[_0x20f933(0x225,0x26d)]=new FrameRateMonitor(_0x1d89eb),this[_0x4a5493(0xf6,0x112)](),this['createWindTextures'](),this[_0x20f933(0x233,0x266)](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x4a17ba=()=>{function _0x517286(_0x21675d,_0x58ba8b){return _0x3300(_0x21675d- -0x312,_0x58ba8b);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math[_0x517286(-0x1ba,-0x136)](this['frameRate'],0x1));};_0x4a17ba();const _0x323482=setInterval(_0x4a17ba,0x3e8),_0x424e56=this['destroy']['bind'](this);function _0x1068d0(_0x4192c8,_0x174786){return _0x47b22c(_0x4192c8-0x4cf,_0x174786);}this[_0x1068d0(0x2d5,0x251)]=()=>{clearInterval(_0x323482),_0x424e56();};}['createWindTextures'](){function _0x6af672(_0xccd55,_0x391add){return _0x47b22c(_0xccd55-0x1c6,_0x391add);}const _0x5085ce={};_0x5085ce['minificationFilter']=TextureMinificationFilter$1[_0x6af672(0xc,-0x30)];function _0x4c5a3c(_0x1bf5c8,_0x25ead6){return _0x2b8e51(_0x1bf5c8,_0x25ead6- -0x195);}_0x5085ce[_0x4c5a3c(0x1e3,0x16f)]=TextureMagnificationFilter$1['LINEAR'];const _0x522ead={'context':this[_0x6af672(0x58,0x28)],'width':this['windData']['width'],'height':this[_0x6af672(0x3c,0x22)]['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x6af672(0x13,-0x3f)][_0x4c5a3c(0x13c,0x109)]??![],'sampler':new Sampler$1(_0x5085ce)};this['windTextures']={'U':new Texture$1({..._0x522ead,'source':{'arrayBufferView':new Float32Array(this[_0x6af672(0x3c,0x67)]['u']['array'])}}),'V':new Texture$1({..._0x522ead,'source':{'arrayBufferView':new Float32Array(this[_0x4c5a3c(0x16e,0x1c3)]['v'][_0x4c5a3c(0xbe,0xfc)])}})};}[_0x2b8e51(0x2d1,0x2ab)](){function _0x23fd9b(_0x1ea130,_0x1e05e5){return _0x47b22c(_0x1ea130-0x34,_0x1e05e5);}const _0x4fcfe2={};function _0x51ac18(_0x35c2a1,_0x4ed4e3){return _0x2b8e51(_0x4ed4e3,_0x35c2a1-0x196);}_0x4fcfe2['minificationFilter']=TextureMinificationFilter$1[_0x23fd9b(-0x138,-0x11a)],_0x4fcfe2[_0x23fd9b(-0x1aa,-0x1cb)]=TextureMagnificationFilter$1[_0x51ac18(0x50c,0x4b9)];const _0x267517={'context':this[_0x51ac18(0x50a,0x55c)],'width':this['options']['particlesTextureSize'],'height':this[_0x23fd9b(-0x17f,-0x114)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options'][_0x23fd9b(-0x204,-0x1bd)]*0x4)[_0x51ac18(0x4a1,0x49c)](0x0)},'sampler':new Sampler$1(_0x4fcfe2)};this[_0x51ac18(0x52f,0x52b)]={'previousParticlesPosition':new Texture$1(_0x267517),'currentParticlesPosition':new Texture$1(_0x267517),'nextParticlesPosition':new Texture$1(_0x267517),'postProcessingPosition':new Texture$1(_0x267517),'particlesSpeed':new Texture$1(_0x267517)};}[_0x47b22c(-0x23d,-0x1c6)](){function _0x5d15d7(_0x4e8881,_0x158d57){return _0x2b8e51(_0x4e8881,_0x158d57-0x100);}function _0x23df8d(_0x2f0c41,_0x1df067){return _0x47b22c(_0x1df067-0x2fc,_0x2f0c41);}Object[_0x5d15d7(0x42a,0x3f8)](this[_0x23df8d(0x150,0x1b3)])['forEach'](_0x38cab9=>_0x38cab9['destroy']());}['createComputingPrimitives'](){function _0x12c4bc(_0xc2021b,_0x21e41c){return _0x47b22c(_0x21e41c- -0x7a,_0xc2021b);}function _0xb61b23(_0x4170b7,_0x322460){return _0x2b8e51(_0x322460,_0x4170b7- -0x388);}this[_0x12c4bc(-0x1e2,-0x200)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0xb61b23(-0xd5,-0x136)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this[_0x12c4bc(-0x230,-0x204)]['u']['max']),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this['windData']['v'][_0xb61b23(-0xc,0x3d)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed'][_0x12c4bc(-0x327,-0x2a2)],this[_0xb61b23(-0x30,0x59)][_0xb61b23(-0x17,-0x88)][_0x12c4bc(-0x1c0,-0x1e0)]),'currentParticlesPosition':()=>this[_0xb61b23(0x11,-0x7a)]['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x2d284a(_0x3a047a,_0x2d0847){return _0x12c4bc(_0x2d0847,_0x3a047a-0x29c);}function _0x2e40ed(_0x3bac05,_0x24715a){return _0x12c4bc(_0x3bac05,_0x24715a-0x53e);}return(this[_0x2d284a(0x91,0xf6)]['pixelSize']+0x32)*this[_0x2e40ed(0x331,0x311)]['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData'][_0x12c4bc(-0x226,-0x29d)],this[_0xb61b23(-0x30,0x4e)]['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0x12c4bc(-0x1a8,-0x1da)],this['windData'][_0x12c4bc(-0x1b8,-0x242)]['south']),'maximum':()=>new Cartesian2$1(this[_0xb61b23(-0x30,0x2c)]['bounds'][_0x12c4bc(-0x261,-0x257)],this['windData'][_0x12c4bc(-0x1d3,-0x242)][_0x12c4bc(-0x27b,-0x24c)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x12c4bc(-0x1b1,-0x1c3)][_0x12c4bc(-0x261,-0x1f4)],'preExecute':()=>{const _0x43a40a=this['particlesTextures'][_0x5026c4(0x4b6,0x46e)];this['particlesTextures']['previousParticlesPosition']=this[_0x5026c4(0x4f8,0x519)]['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this[_0x5026c4(0x49c,0x519)][_0x5026c4(0x4c2,0x476)];function _0x5026c4(_0x5a799a,_0x376708){return _0xb61b23(_0x376708-0x508,_0x5a799a);}function _0x474f5a(_0x9616d,_0x2b27b6){return _0x12c4bc(_0x2b27b6,_0x9616d-0x695);}this['particlesTextures'][_0x474f5a(0x42f,0x4a3)]=_0x43a40a,this['primitives']['calculateSpeed']['commandToExecute']&&(this[_0x474f5a(0x495,0x436)]['calculateSpeed'][_0x474f5a(0x437,0x3da)]['outputTexture']=this[_0x5026c4(0x54c,0x519)]['particlesSpeed']);},'isDynamic':()=>this['options'][_0x12c4bc(-0x223,-0x237)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x12c4bc(-0x283,-0x24a)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager[_0xb61b23(-0x2e,0x15)](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x1dd09b(_0x3a783b,_0x2a9e35){return _0x12c4bc(_0x3a783b,_0x2a9e35-0x133);}function _0x137c60(_0x41a263,_0xd12f7d){return _0xb61b23(_0x41a263-0x241,_0xd12f7d);}this[_0x1dd09b(-0xbd,-0xcd)]['updatePosition']['commandToExecute']&&(this['primitives']['updatePosition']['commandToExecute'][_0x1dd09b(-0xa7,-0xd6)]=this[_0x137c60(0x252,0x217)][_0x137c60(0x236,0x216)]);},'isDynamic':()=>this['options'][_0xb61b23(-0x63,-0x89)]}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x12c4bc(-0x19f,-0x222),'uniformMap':{'nextParticlesPosition':()=>this[_0x12c4bc(-0x1fe,-0x1c3)]['nextParticlesPosition'],'particlesSpeed':()=>this[_0xb61b23(0x11,0x63)][_0xb61b23(-0x20,-0x77)],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0xb61b23(-0x30,-0x5d)]['bounds']['west'],this['windData']['bounds'][_0x12c4bc(-0x2d0,-0x257)]),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds'][_0x12c4bc(-0x286,-0x283)],this['windData']['bounds']['north']),'randomCoefficient':function(){function _0x54b0ba(_0x4f34a4,_0x385cf6){return _0xb61b23(_0x385cf6- -0xd4,_0x4f34a4);}return Math[_0x54b0ba(-0x18d,-0x17e)]();},'dropRate':()=>this['options'][_0x12c4bc(-0x221,-0x29f)],'dropRateBump':()=>this[_0x12c4bc(-0x1c9,-0x22d)][_0x12c4bc(-0x23a,-0x29b)],'useViewerBounds':()=>this[_0x12c4bc(-0x292,-0x22d)][_0xb61b23(-0x6f,-0x9a)]},'fragmentShaderSource':ShaderManager[_0x12c4bc(-0x2e9,-0x2bb)](),'outputTexture':this[_0x12c4bc(-0x22b,-0x1c3)]['postProcessingPosition'],'preExecute':()=>{function _0x3286a3(_0x273190,_0x445941){return _0xb61b23(_0x445941-0x4e4,_0x273190);}function _0x12d0cd(_0x2255ba,_0x1e30c4){return _0xb61b23(_0x2255ba-0x380,_0x1e30c4);}this[_0x12d0cd(0x354,0x2d4)]['postProcessingPosition']['commandToExecute']&&(this[_0x3286a3(0x4c4,0x4b8)]['postProcessingPosition']['commandToExecute'][_0x3286a3(0x501,0x4af)]=this[_0x12d0cd(0x391,0x3f1)][_0x3286a3(0x44c,0x452)]);},'isDynamic':()=>this[_0xb61b23(-0x59,-0xda)]['dynamic']})};}['reCreateWindTextures'](){function _0xbfa9e6(_0x15450f,_0x4c1898){return _0x2b8e51(_0x15450f,_0x4c1898-0xc0);}function _0x2ae23c(_0x902a52,_0x344dbe){return _0x47b22c(_0x344dbe-0x48,_0x902a52);}this['windTextures']['U'][_0xbfa9e6(0x377,0x3a8)](),this[_0xbfa9e6(0x3d1,0x373)]['V']['destroy'](),this[_0x2ae23c(-0x12e,-0x198)]();}['updateWindData'](_0x17a44c){function _0x5b94eb(_0x1d23fc,_0x4fa4ea){return _0x2b8e51(_0x1d23fc,_0x4fa4ea- -0xd);}this['windData']=_0x17a44c,this[_0x5b94eb(0x203,0x28d)]();}[_0x47b22c(-0x234,-0x260)](_0x30c8ce){const _0x577e26=_0x30c8ce['flipY']!==undefined&&_0x30c8ce['flipY']!==this[_0x3f38e8(-0x232,-0x227)]['flipY'];this['options']=deepMerge(_0x30c8ce,this['options']);function _0x3f38e8(_0x4144a2,_0x2ebfc6){return _0x47b22c(_0x4144a2- -0x7f,_0x2ebfc6);}_0x577e26&&this['reCreateWindTextures']();}['processWindData'](_0x4a77c4){const {array:_0x45deaf}=_0x4a77c4;let {min:_0x5bddea,max:_0x148418}=_0x4a77c4;function _0x2ca8f6(_0x43d5c8,_0xc783e6){return _0x47b22c(_0x43d5c8-0x53f,_0xc783e6);}function _0x489029(_0x59e439,_0x2645d0){return _0x47b22c(_0x2645d0- -0xea,_0x59e439);}const _0x2f5754=new Float32Array(_0x45deaf['length']);_0x5bddea===undefined&&(console['warn'](_0x489029(-0x2d5,-0x2e1)),_0x5bddea=Math['min'](..._0x45deaf));_0x148418===undefined&&(console[_0x2ca8f6(0x364,0x300)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x148418=Math['max'](..._0x45deaf));const _0x3698a1=Math['max'](Math['abs'](_0x5bddea),Math[_0x2ca8f6(0x306,0x319)](_0x148418));for(let _0x5245c8=0x0;_0x5245c8<_0x45deaf['length'];_0x5245c8++){const _0xeb6397=_0x45deaf[_0x5245c8]/_0x3698a1;_0x2f5754[_0x5245c8]=_0xeb6397;}return _0x2f5754;}[_0x2b8e51(0x300,0x2e8)](){Object['values'](this['windTextures'])['forEach'](_0x3f76cc=>_0x3f76cc['destroy']()),Object['values'](this['particlesTextures'])['forEach'](_0x36bf83=>_0x36bf83[_0x2eeeba(-0x6f,-0xe9)]()),Object[_0x2eeeba(-0x81,-0xd9)](this[_0x2eeeba(-0x8d,-0x75)])['forEach'](_0xce387f=>_0xce387f['destroy']());function _0x58ca41(_0x3c84ae,_0x5c641b){return _0x2b8e51(_0x3c84ae,_0x5c641b- -0x178);}function _0x2eeeba(_0x4907a8,_0x5b15cc){return _0x2b8e51(_0x4907a8,_0x5b15cc- -0x3d1);}this[_0x58ca41(0xaf,0x13a)][_0x58ca41(0x12f,0x170)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x47b22c(-0x1d9,-0x1d3)];class WindParticlesRendering{constructor(_0x3a5347,_0x4cf937,_0x439595,_0x30a6f3){this['context']=_0x3a5347,this['options']=_0x4cf937,this['viewerParameters']=_0x439595;function _0x13de9d(_0x538506,_0x21c604){return _0x2b8e51(_0x538506,_0x21c604-0x5a);}this['computing']=_0x30a6f3;(typeof this[_0x13de9d(0x373,0x389)]['particlesTextureSize']!=='number'||this['options'][_0x13de9d(0x2e7,0x304)]<=0x0)&&(console[_0x51a96d(0x1ee,0x1b7)](_0x51a96d(0x102,0x130)),this['options']['particlesTextureSize']=0x100);this['colorTable']=this[_0x13de9d(0x2cf,0x2fe)](),this['textures']=this['createRenderingTextures']();function _0x51a96d(_0x2dfcca,_0x208adf){return _0x2b8e51(_0x208adf,_0x2dfcca- -0x19e);}this[_0x51a96d(0x1dc,0x1e7)]=this['createRenderingFramebuffers'](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x5c7f85={};_0x5c7f85[_0x45168f(0xec,0x105)]=this[_0x3d7edf(-0x18e,-0x1b2)];function _0x3d7edf(_0x2ad102,_0x360381){return _0x47b22c(_0x360381- -0x44,_0x2ad102);}_0x5c7f85[_0x3d7edf(-0x2d7,-0x267)]=this['context']['drawingBufferWidth'],_0x5c7f85['height']=this['context']['drawingBufferHeight'],_0x5c7f85['pixelFormat']=PixelFormat['RGBA'],_0x5c7f85['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x385802=_0x5c7f85,_0x1d4fa0={};_0x1d4fa0[_0x45168f(0xec,0x14c)]=this[_0x45168f(0xec,0x81)],_0x1d4fa0['width']=this['context'][_0x45168f(0x112,0xc3)],_0x1d4fa0[_0x45168f(0x82,0x77)]=this['context']['drawingBufferHeight'];function _0x45168f(_0x5fd889,_0x552f6f){return _0x47b22c(_0x5fd889-0x25a,_0x552f6f);}_0x1d4fa0['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x1d4fa0['pixelDatatype']=PixelDatatype[_0x3d7edf(-0x1ad,-0x20f)];const _0x4ef1f1=_0x1d4fa0;return{'segmentsColor':new Texture(_0x385802),'segmentsDepth':new Texture(_0x4ef1f1)};}[_0x2b8e51(0x269,0x2c2)](){const _0x5108d2={};_0x5108d2['context']=this['context'];function _0x8aa77a(_0x255e76,_0x3ccb22){return _0x2b8e51(_0x255e76,_0x3ccb22- -0x3a8);}_0x5108d2[_0x22e442(0x403,0x3af)]=[this[_0x22e442(0x50c,0x4cb)][_0x8aa77a(-0xf7,-0x119)]];function _0x22e442(_0x50a9ed,_0x2de69f){return _0x2b8e51(_0x2de69f,_0x50a9ed-0x178);}return _0x5108d2['depthTexture']=this['textures'][_0x8aa77a(0x20,-0x11)],{'segments':new Framebuffer(_0x5108d2)};}['destoryRenderingFramebuffers'](){function _0x395115(_0x493900,_0xdf3bd0){return _0x47b22c(_0x493900- -0x9d,_0xdf3bd0);}Object['values'](this['framebuffers'])[_0x395115(-0x2a5,-0x2cf)](_0x2dcea7=>{function _0x304c67(_0x4d4040,_0x22c807){return _0x395115(_0x22c807-0x481,_0x4d4040);}_0x2dcea7[_0x304c67(0x18f,0x1ea)]();});}['createColorTableTexture'](){const _0x50f95a=new Float32Array(this['options'][_0x1d1a91(0x579,0x533)][_0x1d1a91(0x4fa,0x536)](_0x64e49b=>{function _0x4d51f1(_0x22cbac,_0x20c489){return _0x3b811c(_0x20c489- -0x202,_0x22cbac);}const _0x29bedf=Color$1['fromCssColorString'](_0x64e49b);function _0xe043b9(_0x120cdb,_0x237a24){return _0x1d1a91(_0x237a24,_0x120cdb- -0x52f);}return[_0x29bedf[_0xe043b9(-0x67,-0x25)],_0x29bedf['green'],_0x29bedf[_0xe043b9(-0xa0,-0x70)],_0x29bedf['alpha']];})),_0x4d889e={};_0x4d889e['minificationFilter']=TextureMinificationFilter[_0x3b811c(0x15,0x37)],_0x4d889e[_0x3b811c(-0xf,-0x3)]=TextureMagnificationFilter['LINEAR'],_0x4d889e[_0x1d1a91(0x4e6,0x4f5)]=TextureWrap['CLAMP_TO_EDGE'];function _0x3b811c(_0x219ed2,_0x373a1a){return _0x2b8e51(_0x373a1a,_0x219ed2- -0x313);}_0x4d889e[_0x3b811c(-0x20,0x46)]=TextureWrap[_0x3b811c(0x77,0x30)];function _0x1d1a91(_0x4eb402,_0x568ae6){return _0x2b8e51(_0x4eb402,_0x568ae6-0x1b3);}return new Texture({'context':this['context'],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x4d889e),'source':{'width':this[_0x1d1a91(0x4d9,0x4e2)]['colors']['length'],'height':0x1,'arrayBufferView':_0x50f95a}});}['createSegmentsGeometry'](){const _0x38a2be=0x4,_0x595d87=this[_0x3b70e5(0x4d3,0x548)][_0x43e09d(0x137,0x1a7)];let _0x5746d5=[];for(let _0x2a888d=0x0;_0x2a888d<_0x595d87;_0x2a888d++){for(let _0x1c2d88=0x0;_0x1c2d88<_0x595d87;_0x1c2d88++){for(let _0x434bf9=0x0;_0x434bf9<_0x38a2be;_0x434bf9++){_0x5746d5['push'](_0x2a888d/_0x595d87),_0x5746d5['push'](_0x1c2d88/_0x595d87);}}}function _0x43e09d(_0x1a872d,_0x5910c6){return _0x47b22c(_0x5910c6-0x3df,_0x1a872d);}_0x5746d5=new Float32Array(_0x5746d5);const _0x59f17a=this['options']['particlesTextureSize']**0x2;let _0x4bd112=[];for(let _0x31d72b=0x0;_0x31d72b<_0x59f17a;_0x31d72b++){_0x4bd112['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x4bd112=new Float32Array(_0x4bd112);let _0x10cc3b=[];for(let _0x30dbcd=0x0,_0x36a2de=0x0;_0x30dbcd<_0x59f17a;_0x30dbcd++){_0x10cc3b['push'](_0x36a2de+0x0,_0x36a2de+0x1,_0x36a2de+0x2,_0x36a2de+0x2,_0x36a2de+0x1,_0x36a2de+0x3),_0x36a2de+=_0x38a2be;}_0x10cc3b=new Uint32Array(_0x10cc3b);const _0x11f9fa={};_0x11f9fa[_0x43e09d(0x1f6,0x25d)]=ComponentDatatype['FLOAT'],_0x11f9fa[_0x3b70e5(0x43c,0x483)]=0x2;function _0x3b70e5(_0x3c3693,_0x4cad88){return _0x47b22c(_0x3c3693-0x686,_0x4cad88);}_0x11f9fa['values']=_0x5746d5;const _0x345249={};_0x345249['componentDatatype']=ComponentDatatype['FLOAT'],_0x345249['componentsPerAttribute']=0x3,_0x345249[_0x3b70e5(0x49c,0x447)]=_0x4bd112;const _0x33c081=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x11f9fa),'normal':new GeometryAttribute(_0x345249)}),'indices':_0x10cc3b});return _0x33c081;}['createRawRenderState'](_0x5dbdd7){const _0x2eb865={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x5dbdd7};function _0x3c2d48(_0x2a3c32,_0x3e97b8){return _0x2b8e51(_0x2a3c32,_0x3e97b8-0xee);}return Appearance[_0x3c2d48(0x4b2,0x433)](!![],![],_0x2eb865);}[_0x2b8e51(0x310,0x2b6)](){const _0x1a7fcd={};function _0x4298ad(_0x22ff86,_0x13da83){return _0x47b22c(_0x13da83-0x1ad,_0x22ff86);}_0x1a7fcd['st']=0x0,_0x1a7fcd['normal']=0x1;const _0x2b5490={};_0x2b5490[_0x523665(0x3b2,0x3e0)]=!![];const _0x37a0c1={};_0x37a0c1['enabled']=!![],_0x37a0c1[_0x4298ad(0x27,-0x4c)]=WebGLRenderingContext['FUNC_ADD'],_0x37a0c1['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x37a0c1['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x36bf0c={};_0x36bf0c['viewport']=undefined,_0x36bf0c[_0x4298ad(-0x61,-0x8e)]=_0x2b5490,_0x36bf0c[_0x523665(0x428,0x3a1)]=!![],_0x36bf0c['blending']=_0x37a0c1;const _0x4464e3=new CustomPrimitive({'commandType':_0x4298ad(-0xec,-0x63),'attributeLocations':_0x1a7fcd,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0x4298ad(-0x54,-0x8)],'uniformMap':{'previousParticlesPosition':()=>this[_0x4298ad(-0x2e,0xf)][_0x523665(0x480,0x44e)][_0x4298ad(-0x5d,-0x47)],'currentParticlesPosition':()=>this[_0x523665(0x3cc,0x3f9)]['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this['computing']['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this[_0x4298ad(0x6f,0xf)]['particlesTextures'][_0x4298ad(0x6b,0x33)],'frameRateAdjustment':()=>this['computing'][_0x523665(0x37d,0x3ff)],'colorTable':()=>this[_0x4298ad(-0x3c,-0xa7)],'domain':()=>{var _0x358209,_0x4ceae2;function _0x3a081(_0x2fc305,_0x140b3e){return _0x4298ad(_0x140b3e,_0x2fc305-0x2ca);}const _0x220220=new Cartesian2(((_0x358209=this[_0x3a081(0x2c4,0x2a6)][_0x3a081(0x2d6,0x303)])===null||_0x358209===void 0x0?void 0x0:_0x358209['min'])??this['computing'][_0xc205e5(0x1a8,0x1c7)]['speed'][_0xc205e5(0x198,0x129)],((_0x4ceae2=this['options']['domain'])===null||_0x4ceae2===void 0x0?void 0x0:_0x4ceae2[_0x3a081(0x311,0x302)])??this[_0xc205e5(0x190,0x1b3)]['windData'][_0x3a081(0x306,0x391)][_0x3a081(0x311,0x2fc)]);function _0xc205e5(_0x47443b,_0x710291){return _0x523665(_0x47443b,_0x710291- -0x246);}return _0x220220;},'displayRange':()=>{function _0x2a3d71(_0x25d0e0,_0x517d19){return _0x4298ad(_0x517d19,_0x25d0e0- -0x115);}var _0x16161d,_0x398bbc;function _0x2f8eb3(_0xfc91f6,_0x757a0){return _0x523665(_0x757a0,_0xfc91f6- -0x290);}const _0x5ec25f=new Cartesian2(((_0x16161d=this['options'][_0x2a3d71(-0xbd,-0x3e)])===null||_0x16161d===void 0x0?void 0x0:_0x16161d[_0x2f8eb3(0xdf,0x150)])??this['computing'][_0x2f8eb3(0x17d,0x19e)][_0x2a3d71(-0xd9,-0x66)]['min'],((_0x398bbc=this[_0x2f8eb3(0x154,0xf3)][_0x2f8eb3(0x1b2,0x20c)])===null||_0x398bbc===void 0x0?void 0x0:_0x398bbc['max'])??this[_0x2a3d71(-0x106,-0x13a)][_0x2f8eb3(0x17d,0x147)]['speed']['max']);return _0x5ec25f;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this[_0x523665(0x467,0x429)]['drawingBufferWidth']/this[_0x523665(0x479,0x429)]['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{const _0x416cd4={};_0x416cd4['min']=0x1,_0x416cd4['max']=0x2;const _0x277d3f=this['options']['lineWidth']||_0x416cd4;return new Cartesian2(_0x277d3f['min'],_0x277d3f['max']);},'lineLength':()=>{const _0x58b7c7={};_0x58b7c7['min']=0x14,_0x58b7c7['max']=0x64;const _0x5de82f=this['options']['lineLength']||_0x58b7c7;return new Cartesian2(_0x5de82f['min'],_0x5de82f['max']);},'is3D':()=>this['viewerParameters'][_0x4298ad(-0xa6,-0x3b)]===SceneMode[_0x4298ad(-0x44,0x31)],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x36bf0c)}),_0x3788f9={};function _0x523665(_0x3c4e1d,_0x4de7de){return _0x2b8e51(_0x3c4e1d,_0x4de7de-0xb5);}return _0x3788f9['segments']=_0x4464e3,_0x3788f9;}[_0x47b22c(-0x1f2,-0x24f)](){const _0x1023a0=this[_0x1b4fb0(0x126,0xca)]();this[_0x2dd537(0x199,0x1e5)][_0x1b4fb0(0x17b,0x188)][_0x2dd537(0x17d,0x11f)]=_0x1023a0;const _0x46c012={};function _0x2dd537(_0x13ba09,_0x1d3a8f){return _0x47b22c(_0x13ba09-0x31f,_0x1d3a8f);}function _0x1b4fb0(_0x428c14,_0x360c08){return _0x47b22c(_0x428c14-0x341,_0x360c08);}_0x46c012[_0x1b4fb0(0x1d3,0x1d9)]=this['context'],_0x46c012['geometry']=_0x1023a0,_0x46c012['attributeLocations']=this[_0x1b4fb0(0x1bb,0x221)]['segments']['attributeLocations'],_0x46c012['bufferUsage']=BufferUsage[_0x1b4fb0(0x17e,0xfa)];const _0x41dcb4=VertexArray['fromGeometry'](_0x46c012);this['primitives']['segments']['commandToExecute']&&(this['primitives']['segments']['commandToExecute']['vertexArray']=_0x41dcb4);}['onColorTableChange'](){this['colorTable']['destroy']();function _0x927dec(_0x322854,_0x4dbd56){return _0x47b22c(_0x4dbd56-0x65b,_0x322854);}function _0x55a753(_0x4f6f9a,_0x462b64){return _0x47b22c(_0x4f6f9a-0x214,_0x462b64);}this[_0x55a753(-0x40,0x3d)]=this[_0x55a753(-0x2a,-0x1d)]();}[_0x2b8e51(0x249,0x2ae)](_0x13aac1){const _0x5c21f6=_0x13aac1['colors']&&JSON['stringify'](_0x13aac1[_0x3248f0(-0xb3,-0x100)])!==JSON[_0x3248f0(-0xd8,-0x8a)](this[_0x5d30ff(-0x94,-0xa9)][_0x5d30ff(-0x43,-0xad)]);function _0x5d30ff(_0x11c96a,_0x4f012d){return _0x2b8e51(_0x4f012d,_0x11c96a- -0x3c3);}this['options']=deepMerge(_0x13aac1,this[_0x3248f0(-0x104,-0x81)]);function _0x3248f0(_0x5b75c6,_0x1add4c){return _0x47b22c(_0x5b75c6-0xaf,_0x1add4c);}_0x5c21f6&&this['onColorTableChange']();}[_0x47b22c(-0x1fa,-0x25d)](){Object['values'](this[_0x508d2b(0x2fd,0x27e)])['forEach'](_0x2a6804=>{function _0x4013ba(_0x4cc2b8,_0x4afaf1){return _0x508d2b(_0x4cc2b8-0x33,_0x4afaf1);}_0x2a6804[_0x4013ba(0x29e,0x2bd)]();});function _0x508d2b(_0x4a3604,_0x339e90){return _0x47b22c(_0x4a3604-0x465,_0x339e90);}Object['values'](this[_0x16ad0c(0x21e,0x288)])['forEach'](_0x2d1738=>{_0x2d1738['destroy']();});function _0x16ad0c(_0x50c78a,_0x31abcf){return _0x2b8e51(_0x31abcf,_0x50c78a- -0x13e);}this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x3b1ddb,_0x37ed6e,_0xb81cb1,_0x454f1b,_0x2086ca){function _0x260e98(_0x2c6be2,_0x3029cb){return _0x47b22c(_0x3029cb- -0x77,_0x2c6be2);}this['context']=_0x3b1ddb;function _0x2622ff(_0xfcfe53,_0x2d071b){return _0x47b22c(_0x2d071b-0x13b,_0xfcfe53);}this['options']=_0xb81cb1,this[_0x2622ff(-0xb,-0x56)]=_0x454f1b,this[_0x260e98(-0x20e,-0x215)]=new WindParticlesComputing(_0x3b1ddb,_0x37ed6e,_0xb81cb1,_0x454f1b,_0x2086ca),this['rendering']=new WindParticlesRendering(_0x3b1ddb,_0xb81cb1,_0x454f1b,this['computing']),this['clearFramebuffers']();}['getPrimitives'](){function _0x33420f(_0x4ca985,_0x1ec45d){return _0x2b8e51(_0x4ca985,_0x1ec45d-0x160);}const _0x2aaf41=[this['computing']['primitives']['calculateSpeed'],this['computing']['primitives'][_0x33420f(0x475,0x3fb)],this['computing']['primitives'][_0x33420f(0x444,0x456)],this['rendering'][_0x1f73f5(0x171,0x18e)][_0x1f73f5(0x131,0x16a)]];function _0x1f73f5(_0x5ce29b,_0xcffb76){return _0x47b22c(_0x5ce29b-0x2f7,_0xcffb76);}return _0x2aaf41;}[_0x47b22c(-0x1ab,-0x1b6)](){const _0x5e5726=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x71b397(_0x13f997,_0x2ebb99){return _0x47b22c(_0x2ebb99-0x593,_0x13f997);}Object[_0x71b397(0x327,0x343)](this['rendering']['framebuffers'])['forEach'](_0x45ce33=>{function _0x4edc63(_0x141a09,_0x5841ce){return _0x71b397(_0x141a09,_0x5841ce- -0x2e5);}function _0x3d998e(_0x3eae75,_0x4142bb){return _0x71b397(_0x4142bb,_0x3eae75- -0x643);}_0x5e5726[_0x4edc63(0x1a1,0x16a)]=this[_0x4edc63(0x137,0xff)][_0x4edc63(0xd5,0x146)][_0x45ce33],_0x5e5726[_0x4edc63(0x15d,0x113)](this[_0x3d998e(-0x21e,-0x1b9)]);});}['changeOptions'](_0x109ba4){let _0x46dc4a=![];_0x109ba4[_0x50a059(0x3a8,0x356)]&&this['options']['particlesTextureSize']!==_0x109ba4['particlesTextureSize']&&(_0x46dc4a=!![]);const _0x22f7ff=deepMerge(_0x109ba4,this['options']);function _0x4a1c2f(_0x4998f2,_0x3981a0){return _0x47b22c(_0x4998f2-0x4af,_0x3981a0);}if(_0x22f7ff['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x22f7ff,this[_0x50a059(0x431,0x46b)]['updateOptions'](_0x109ba4);function _0x50a059(_0x5c122b,_0x49d35a){return _0x47b22c(_0x5c122b-0x5e0,_0x49d35a);}this['computing'][_0x4a1c2f(0x27b,0x294)](_0x109ba4),_0x46dc4a&&(this['computing']['destroyParticlesTextures'](),this['computing'][_0x50a059(0x3a9,0x3ed)](),this[_0x50a059(0x431,0x40d)][_0x4a1c2f(0x2bd,0x2e1)]());}['applyViewerParameters'](_0x5c2827){function _0x8e1043(_0x2594f7,_0x50c824){return _0x47b22c(_0x50c824-0x104,_0x2594f7);}this['viewerParameters']=_0x5c2827,this['computing']['viewerParameters']=_0x5c2827,this['rendering'][_0x8e1043(-0x7d,-0x8d)]=_0x5c2827;}[_0x47b22c(-0x1fa,-0x1ad)](){this['computing']['destroy'](),this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x2b8e51(0x34b,0x2f1)],_0x3f5752={};_0x3f5752[_0x2b8e51(0x24b,0x2ba)]=0x1,_0x3f5752['max']=0x2;const _0x53835d={};_0x53835d[_0x47b22c(-0x228,-0x1d5)]=0x14,_0x53835d['max']=0x64;const _0x580b68={};function _0x461c(){const _0x2c2a34=['off','reverse','getColor','south','forEach','getSegmentDrawVertexShader','blue','fromDegrees','random','__esModule','_setOptionsHook','unbindEvent','default','defineProperty','_canrefresh','#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','bindEvent','bind','destroy','blendEquation','tlng','min\x20is\x20undefined,\x20calculate\x20min','depthMask','particles','previousParticlesPosition','2003332GriGRb','onParticlesTextureSizeChange','BaseLayer','_tomap','wrapT','steps','EllipsoidalOccluder','postProcessingPosition','updateWindData','values','mode','sceneMode','mouseDown','_onMouseUpEvent','round','commandToExecute','data','cos','735327TAKmsr','createWindTextures','canvasContext','magnificationFilter','east','EventType','warn','mouse_down','Cesium','height','fill','absolute','isInExtent','particlesNumber','autoClear','north','_onMouseMoveEvent','currentParticlesPosition','add','vdata','red','rectangle','UNSIGNED_INT','renderState','useViewerBounds','bounds','clientHeight','segments','Rectangle','clear','STATIC_DRAW','resize','getContext','vertexArray','fromGeometry','mouseMove','dynamic','grid','postMessage','LINEAR','frameTime','vertexShaderSource','enabled','camera','TRIANGLES','style','options','24xutBup','_addedHook','_onMouseDownEvent','rendering','cancelAnimationFrame','xmax','maxAge','clearFramebuffers','particleSystem','getUVByXY','Compute','stroke','_maxAge','_colorRamp','isDestroyed','willReadFrequently','geometry','domain','wrapS','5541BsVval','computing','getDefaultRenderState','commandType','execute','Math','persists','frameRateAdjustment','_removedHook','setOptions','scene','pow','ymax','frameRate','viewerParameters','sqrt','outputTexture','_calcUV','lat','lineWidth','floor','windData','33793LPArYm','getUpdatePositionShader','stringify','primitives','clientWidth','pointerEvents','commandList','componentDatatype','pixelSize','addEventListener','visibility','isDynamic','top','SCENE3D','mouseUp','particlesSpeed','_updateIng2','initWorker','updateViewerParameters','mars3d-canvasWind','age','show','1924120CzGTwh','getV','speed','percentageChanged','130OwtNah','context','createCommand','NEAREST','canvasWidth','alt','69702zZLhcn','framebuffers','tlat','max','nextParticlesPosition','xmin','canvas','colors','globe','west','flatMap','_pointerEvents','fixedHeight','rawRenderState','_calc_speedRate','worker','preExecute','CLAMP_TO_EDGE','getU','error','displayRange','mouseHidden','2219955eTrgSC','getDirection','owner','push','call','textures','pointer-events','windField','segmentsDepth','layer','particlesTextures','drawingBufferWidth','lonRange','fillRect','ymin','framebuffer','setDate','colorTextures','sin','visible','colorTable','segmentsColor','type','array','keys','speedRate','fragmentShaderSource','beginPath','__proto__','strokeStyle','componentsPerAttribute','primitiveType','reCreateWindTextures','updatePosition','latitude','initFrameRate','flipY','toWindowCoordinates','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','getPostProcessingPositionShader','mouse_move','init','createColorTableTexture','destroyParticlesTextures','morphComplete','depthTest','lighter','abs','particlesTextureSize','createParticlesTextures','left','_animateFrame','updateOptions','get','_canvasParticles','Unknown\x20command\x20type','frameRateMonitor','windTextures','rows','getSpeed','createPrimitives','setData','length','atan2','min','getDataAtLonLat','Cartesian2','dropRate','lng','width','toDegrees','dropRateBump','createRenderingFramebuffers','_map','cols','ellipsoid','sources','createSegmentsGeometry','removeChild','toGridXY','applyViewerParameters','LayerUtil','isPointVisible','shaderProgram','changed','redraw','create','attributeLocations','Draw','globalCompositeOperation','zIndex','266xtzoES'];_0x461c=function(){return _0x2c2a34;};return _0x461c();}_0x580b68['particlesTextureSize']=0x64;function _0x2b8e51(_0x95fe7f,_0x4b1ee0){return _0x3300(_0x4b1ee0-0x224,_0x95fe7f);}_0x580b68[_0x47b22c(-0x15d,-0x100)]=0x0,_0x580b68['lineWidth']=_0x3f5752,_0x580b68['lineLength']=_0x53835d,_0x580b68['speedFactor']=0x1,_0x580b68[_0x2b8e51(0x312,0x2bd)]=0.003,_0x580b68[_0x47b22c(-0x221,-0x261)]=0.001,_0x580b68[_0x47b22c(-0x162,-0xd9)]=['rgb(206,255,255)'],_0x580b68[_0x47b22c(-0x244,-0x1cb)]=![],_0x580b68['dynamic']=!![];const DEF_OPTIONS=_0x580b68;class WindLayer extends BaseLayer$1{constructor(_0x3a8a7a={}){function _0x8a0812(_0xd99036,_0x3f5b8f){return _0x47b22c(_0x3f5b8f-0x65e,_0xd99036);}_0x3a8a7a={...DEF_OPTIONS,..._0x3a8a7a},super(_0x3a8a7a),this[_0x8a0812(0x454,0x45c)](_0x3a8a7a,_0x3a8a7a);}get[_0x47b22c(-0x14a,-0xed)](){return this['primitives'];}get['data'](){return this['options']['data'];}set[_0x2b8e51(0x303,0x2ff)](_0x694280){function _0x163660(_0x537306,_0x5c1f37){return _0x2b8e51(_0x537306,_0x5c1f37- -0x46e);}this['options']['data']=_0x694280,this[_0x163660(-0x147,-0x1b7)](_0x694280);}get['colors'](){function _0x37f163(_0x2a19d0,_0x18a3d9){return _0x47b22c(_0x18a3d9- -0x56,_0x2a19d0);}return this['options'][_0x37f163(-0x17e,-0x1b8)];}set['colors'](_0x367fe){this[_0x59aaba(0x137,0xb3)]['colors']=_0x367fe;function _0x59aaba(_0x6eb89a,_0x11323d){return _0x47b22c(_0x6eb89a-0x2ea,_0x11323d);}const _0x181166={};_0x181166['colors']=_0x367fe,this['_setOptionsHook'](this['options'],_0x181166);}['_showHook'](_0x66bf63){function _0x2bde2c(_0x47ccb2,_0x3830ea){return _0x2b8e51(_0x47ccb2,_0x3830ea- -0x45b);}_0x66bf63?this['_addedHook']():this[_0x2bde2c(-0x18f,-0x110)]();}['_mountedHook'](){}[_0x47b22c(-0x1b1,-0x127)](){this['scene']=this['_map']['scene'],this['camera']=this['_map'][_0x55e940(-0x4a,-0x79)];this[_0x4d41bb(0x3ce,0x406)]['data']&&this['setData'](this['options']['data']);function _0x4d41bb(_0x3df5c8,_0x39546c){return _0x47b22c(_0x3df5c8-0x581,_0x39546c);}if(!this['windData']||!this['show'])return;this['viewerParameters']={'lonRange':new Cesium$1[(_0x4d41bb(0x35b,0x336))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this[_0x55e940(-0xa2,-0x3a)](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this[_0x4d41bb(0x3f7,0x3f0)],this['options'],this['viewerParameters'],this['scene']),this[_0x4d41bb(0x3fb,0x430)]=this[_0x55e940(-0x44,-0x6d)]['getPrimitives']();function _0x55e940(_0x35c3c2,_0x168655){return _0x47b22c(_0x168655-0x13d,_0x35c3c2);}this[_0x4d41bb(0x3fb,0x3eb)]['forEach'](_0x46ad78=>{function _0x167c8a(_0x511df0,_0x2eaac4){return _0x4d41bb(_0x511df0- -0x591,_0x2eaac4);}function _0x288d33(_0x7bb682,_0xb75c69){return _0x55e940(_0x7bb682,_0xb75c69-0x20f);}this[_0x288d33(0x1ea,0x1b7)][_0x167c8a(-0x196,-0x1e3)][_0x167c8a(-0x1df,-0x190)](_0x46ad78);}),this[_0x55e940(-0x9a,-0x79)][_0x4d41bb(0x411,0x444)]=0.01,this['camera']['changed']['addEventListener'](this['updateViewerParameters'][_0x4d41bb(0x386,0x3ec)](this)),this[_0x4d41bb(0x3ec,0x3ef)][_0x4d41bb(0x345,0x3b0)][_0x4d41bb(0x401,0x396)](this[_0x4d41bb(0x40a,0x390)][_0x4d41bb(0x386,0x3be)](this)),window['addEventListener'](_0x4d41bb(0x3bf,0x379),this['updateViewerParameters']['bind'](this));}['_removedHook'](){function _0x4c8bbb(_0x1e9262,_0x15028d){return _0x2b8e51(_0x1e9262,_0x15028d- -0x8e);}this['camera'][_0x4c8bbb(0x2b2,0x240)]['removeEventListener'](this[_0x4c8bbb(0x280,0x2dd)][_0x534866(-0xc3,-0x5b)](this)),this['scene'][_0x4c8bbb(0x20f,0x218)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),window['removeEventListener']('resize',this[_0x4c8bbb(0x258,0x2dd)][_0x534866(-0x36,-0x5b)](this));this['primitives']&&(this['primitives']['forEach'](_0x5d5404=>{function _0x1ad5f7(_0x452b40,_0xf7b81b){return _0x4c8bbb(_0xf7b81b,_0x452b40- -0x469);}this[_0x1ad5f7(-0x1aa,-0x1d8)]['primitives']['remove'](_0x5d5404);}),delete this['primitives']);function _0x534866(_0xa79c74,_0x3e74a9){return _0x2b8e51(_0xa79c74,_0x3e74a9- -0x342);}this['particleSystem']&&(this['particleSystem']['destroy'](),delete this[_0x534866(-0x55,-0xa)]);}[_0x47b22c(-0x22b,-0x1dc)](_0x29b899,_0x4d4799){this[_0x7e3276(0xa,-0x6)]=this['processWindData'](_0x29b899);if(_0x4d4799){this[_0x7e3276(-0x3,0x45)](),this['_addedHook']();return;}function _0x7e3276(_0x30b712,_0x350a41){return _0x47b22c(_0x30b712-0x194,_0x350a41);}function _0x2ed502(_0x4bbaa2,_0x258cab){return _0x2b8e51(_0x4bbaa2,_0x258cab- -0x9d);}this['particleSystem']?(this[_0x2ed502(0x2e5,0x29b)][_0x7e3276(-0xa,-0x7a)][_0x7e3276(-0x57,-0xc4)](this['windData']),this['scene']['requestRender']()):this[_0x7e3276(-0x1d,0x38)]();}[_0x2b8e51(0x32e,0x2e0)](_0xc164a4,_0x35d4ca){function _0x2e13ab(_0x4b8e79,_0x1e5ab6){return _0x2b8e51(_0x4b8e79,_0x1e5ab6- -0x529);}function _0x2da541(_0x5ad19e,_0x43b508){return _0x2b8e51(_0x5ad19e,_0x43b508- -0x18a);}this[_0x2e13ab(-0x1da,-0x1f1)]&&(this[_0x2da541(0x1bd,0x1ae)]['changeOptions'](_0x35d4ca),this['scene']['requestRender']());}['processWindData'](_0x3c09d0){var _0x24afa7,_0x2bde44;const _0x48bf7f={..._0x3c09d0},_0x54cecd=_0x48bf7f;!_0x54cecd['height']&&_0x54cecd[_0x38bb4d(0x38b,0x3c5)]&&(_0x54cecd[_0x38bb4d(0x3d1,0x41b)]=_0x54cecd[_0x298ae6(-0x197,-0x1ff)]);!_0x54cecd['width']&&_0x54cecd['cols']&&(_0x54cecd['width']=_0x54cecd['cols']);!_0x54cecd[_0x38bb4d(0x42c,0x42b)]&&(_0x54cecd['bounds']={'west':_0x54cecd['xmin'],'south':_0x54cecd['ymin'],'east':_0x54cecd['xmax'],'north':_0x54cecd[_0x298ae6(-0x19b,-0x164)]});function _0x298ae6(_0x3134a6,_0x105382){return _0x2b8e51(_0x3134a6,_0x105382- -0x4b3);}if(!_0x54cecd['u']){const _0x1ddc52={};_0x1ddc52[_0x38bb4d(0x35f,0x3a2)]=_0x3c09d0['udata'],_0x1ddc52['min']=_0x3c09d0['umin'],_0x1ddc52['max']=_0x3c09d0['umax'],_0x54cecd['u']=_0x1ddc52;}function _0x38bb4d(_0x54f824,_0xd8269a){return _0x47b22c(_0xd8269a-0x5f3,_0x54f824);}if(!_0x54cecd['v']){const _0x2f2426={};_0x2f2426['array']=_0x3c09d0[_0x38bb4d(0x3ee,0x425)],_0x2f2426['min']=_0x3c09d0['vmin'],_0x2f2426[_0x298ae6(-0x1a4,-0x137)]=_0x3c09d0['vmax'],_0x54cecd['v']=_0x2f2426;}if(((_0x24afa7=_0x54cecd['speed'])===null||_0x24afa7===void 0x0?void 0x0:_0x24afa7[_0x38bb4d(0x3df,0x3cb)])===undefined||((_0x2bde44=_0x54cecd['speed'])===null||_0x2bde44===void 0x0?void 0x0:_0x2bde44['max'])===undefined||_0x54cecd['speed'][_0x38bb4d(0x397,0x3a2)]===undefined){const _0x1b02d0={'array':new Float32Array(_0x54cecd['u']['array'][_0x298ae6(-0x19b,-0x1fb)]),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x34c09a=0x0;_0x34c09a<_0x54cecd['u']['array']['length'];_0x34c09a++){_0x1b02d0['array'][_0x34c09a]=Math[_0x38bb4d(0x4b0,0x463)](_0x54cecd['u'][_0x298ae6(-0x1a2,-0x222)][_0x34c09a]*_0x54cecd['u']['array'][_0x34c09a]+_0x54cecd['v']['array'][_0x34c09a]*_0x54cecd['v'][_0x298ae6(-0x238,-0x222)][_0x34c09a]),_0x1b02d0['array'][_0x34c09a]!==0x0&&(_0x1b02d0[_0x298ae6(-0x217,-0x1f9)]=Math[_0x38bb4d(0x430,0x3cb)](_0x1b02d0[_0x38bb4d(0x3ac,0x3cb)],_0x1b02d0['array'][_0x34c09a]),_0x1b02d0['max']=Math[_0x298ae6(-0x150,-0x137)](_0x1b02d0['max'],_0x1b02d0['array'][_0x34c09a]));}_0x54cecd[_0x38bb4d(0x4f6,0x482)]=_0x1b02d0;}return _0x54cecd;}['updateViewerParameters'](){var _0x38fc65;const _0x5bd21e=this[_0x5e7499(-0x97,-0x1c)];function _0x5e7499(_0x1ee5a4,_0x42d5fd){return _0x47b22c(_0x1ee5a4-0xfe,_0x42d5fd);}if(!_0x5bd21e)return;const _0x3833c6=_0x5bd21e['canvas'],_0x4bac5c={};_0x4bac5c['x']=0x0,_0x4bac5c['y']=0x0;const _0x44c0f4={};_0x44c0f4['x']=0x0,_0x44c0f4['y']=_0x3833c6['clientHeight'];const _0x194a2e={};_0x194a2e['x']=_0x3833c6['clientWidth'],_0x194a2e['y']=0x0;const _0x2f88e9={};_0x2f88e9['x']=_0x3833c6[_0x5e7499(-0x87,-0x10a)],_0x2f88e9['y']=_0x3833c6['clientHeight'];const _0x5917b8=[_0x4bac5c,_0x44c0f4,_0x194a2e,_0x2f88e9];function _0x103aac(_0x5f021b,_0x476ce5){return _0x47b22c(_0x5f021b-0x4f7,_0x476ce5);}let _0x457f75=0xb4,_0x468a32=-0xb4,_0x30a360=0x5a,_0x3557ce=-0x5a,_0x1350fa=![];for(const _0x2f239f of _0x5917b8){const _0x301cf1=_0x5bd21e['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x2f239f['x'],_0x2f239f['y']),_0x5bd21e[_0x5e7499(-0x63,-0xce)][_0x5e7499(-0x11f,-0x193)]);if(!_0x301cf1){_0x1350fa=!![];break;}const _0x32ff57=_0x5bd21e[_0x103aac(0x396,0x330)][_0x5e7499(-0x11f,-0x155)]['cartesianToCartographic'](_0x301cf1),_0x53c65d=Cesium$1[_0x103aac(0x35d,0x3b9)]['toDegrees'](_0x32ff57['longitude']),_0x1fa818=Cesium$1['Math'][_0x5e7499(-0x124,-0x194)](_0x32ff57[_0x103aac(0x2b1,0x258)]);_0x457f75=Math['min'](_0x457f75,_0x53c65d),_0x468a32=Math['max'](_0x468a32,_0x53c65d),_0x30a360=Math[_0x5e7499(-0x12a,-0xb3)](_0x30a360,_0x1fa818),_0x3557ce=Math['max'](_0x3557ce,_0x1fa818);}if(!_0x1350fa){const _0xaaff33=new Cesium$1['Cartesian2'](Math[_0x103aac(0x391,0x384)](this['windData']['bounds']['west'],_0x457f75),Math['min'](this['windData']['bounds']['east'],_0x468a32)),_0xc47eef=new Cesium$1[(_0x5e7499(-0x128,-0x1a2))](Math['max'](this[_0x103aac(0x36d,0x2f7)][_0x103aac(0x32f,0x304)]['south'],_0x30a360),Math['min'](this[_0x103aac(0x36d,0x3cb)]['bounds']['north'],_0x3557ce)),_0x29b4df=(_0xaaff33['y']-_0xaaff33['x'])*0.05,_0x3beabe=(_0xc47eef['y']-_0xc47eef['x'])*0.05;_0xaaff33['x']=Math['max'](this['windData'][_0x5e7499(-0xca,-0x82)][_0x103aac(0x397,0x30d)],_0xaaff33['x']-_0x29b4df),_0xaaff33['y']=Math['min'](this['windData']['bounds']['east'],_0xaaff33['y']+_0x29b4df),_0xc47eef['x']=Math['max'](this['windData'][_0x5e7499(-0xca,-0xb8)][_0x103aac(0x2ee,0x330)],_0xc47eef['x']-_0x3beabe),_0xc47eef['y']=Math['min'](this[_0x5e7499(-0x8c,-0xc1)]['bounds'][_0x103aac(0x325,0x2c0)],_0xc47eef['y']+_0x3beabe),this[_0x5e7499(-0x93,-0xfa)][_0x103aac(0x3b0,0x3f8)]=_0xaaff33,this['viewerParameters']['latRange']=_0xc47eef;const _0x17383f=this['windData'][_0x5e7499(-0xca,-0xba)]['east']-this['windData']['bounds']['west'],_0x289dbf=this[_0x103aac(0x36d,0x371)][_0x103aac(0x32f,0x345)][_0x5e7499(-0xd4,-0x5d)]-this[_0x5e7499(-0x8c,-0x8b)][_0x5e7499(-0xca,-0xd3)][_0x103aac(0x2ee,0x2dc)],_0x37ee97=(_0xaaff33['y']-_0xaaff33['x'])/_0x17383f,_0x275068=(_0xc47eef['y']-_0xc47eef['x'])/_0x289dbf,_0x1daf8f=Math['min'](_0x37ee97,_0x275068),_0x3ff05b=0x3e8*_0x1daf8f;_0x3ff05b>0x0&&(this[_0x5e7499(-0x93,-0x1a)][_0x103aac(0x376,0x337)]=Math[_0x5e7499(-0x68,-0xd4)](0x0,Math[_0x5e7499(-0x12a,-0x194)](0x3e8,_0x3ff05b)));}this['viewerParameters'][_0x103aac(0x30f,0x28d)]=this[_0x103aac(0x362,0x33f)]['mode'],(_0x38fc65=this['particleSystem'])===null||_0x38fc65===void 0x0||_0x38fc65[_0x103aac(0x2df,0x2a0)](this[_0x5e7499(-0x93,-0xfa)]);}[_0x47b22c(-0x227,-0x1bd)](_0x4c8d41,_0x124d1d){const {bounds:_0x3efbdb,width:_0x2f9b0e,height:_0x45b5dd,u:_0x285e62,v:_0x337bc3,speed:_0xd67b22}=this['windData'],{flipY:_0x151631}=this['options'];if(_0x4c8d41<_0x3efbdb['west']||_0x4c8d41>_0x3efbdb[_0x389e47(-0x283,-0x272)]||_0x124d1d<_0x3efbdb['south']||_0x124d1d>_0x3efbdb['north'])return null;const _0x6999c6=(_0x4c8d41-_0x3efbdb['west'])/(_0x3efbdb['east']-_0x3efbdb[_0x3e631d(-0xb4,-0x74)])*(_0x2f9b0e-0x1);let _0x11a66c=(_0x124d1d-_0x3efbdb['south'])/(_0x3efbdb[_0x389e47(-0x278,-0x2f8)]-_0x3efbdb['south'])*(_0x45b5dd-0x1);_0x151631&&(_0x11a66c=_0x45b5dd-0x1-_0x11a66c);const _0x197201=Math[_0x3e631d(-0x122,-0x9f)](_0x6999c6),_0x5ba55a=Math[_0x389e47(-0x231,-0x239)](_0x11a66c),_0x2b8896=Math[_0x3e631d(-0xbf,-0x9f)](_0x6999c6),_0x2ae957=Math['min'](_0x2b8896+0x1,_0x2f9b0e-0x1),_0x21ac26=Math[_0x3e631d(-0x8f,-0x9f)](_0x11a66c),_0x3a015c=Math[_0x389e47(-0x2ce,-0x297)](_0x21ac26+0x1,_0x45b5dd-0x1);function _0x3e631d(_0x18338a,_0x442191){return _0x47b22c(_0x442191-0xec,_0x18338a);}const _0x2c7bf5=_0x6999c6-_0x2b8896,_0xfb4678=_0x11a66c-_0x21ac26,_0x1c2118=_0x5ba55a*_0x2f9b0e+_0x197201,_0x3f1988=_0x21ac26*_0x2f9b0e+_0x2b8896,_0x33049d=_0x21ac26*_0x2f9b0e+_0x2ae957,_0xe6818b=_0x3a015c*_0x2f9b0e+_0x2b8896,_0x1d7a82=_0x3a015c*_0x2f9b0e+_0x2ae957,_0x4a42e8=_0x285e62['array'][_0x3f1988],_0x499452=_0x285e62['array'][_0x33049d];function _0x389e47(_0x4b692b,_0x1c5025){return _0x2b8e51(_0x1c5025,_0x4b692b- -0x588);}const _0x562e44=_0x285e62['array'][_0xe6818b],_0x4f00ff=_0x285e62['array'][_0x1d7a82],_0x11a9ba=(0x1-_0x2c7bf5)*(0x1-_0xfb4678)*_0x4a42e8+_0x2c7bf5*(0x1-_0xfb4678)*_0x499452+(0x1-_0x2c7bf5)*_0xfb4678*_0x562e44+_0x2c7bf5*_0xfb4678*_0x4f00ff,_0x35b43e=_0x337bc3['array'][_0x3f1988],_0x4494ff=_0x337bc3['array'][_0x33049d],_0x113e2a=_0x337bc3[_0x389e47(-0x2f7,-0x370)][_0xe6818b],_0x17cdcb=_0x337bc3['array'][_0x1d7a82],_0x439399=(0x1-_0x2c7bf5)*(0x1-_0xfb4678)*_0x35b43e+_0x2c7bf5*(0x1-_0xfb4678)*_0x4494ff+(0x1-_0x2c7bf5)*_0xfb4678*_0x113e2a+_0x2c7bf5*_0xfb4678*_0x17cdcb,_0x1702dc=Math['sqrt'](_0x11a9ba*_0x11a9ba+_0x439399*_0x439399),_0x45dd49={};_0x45dd49['u']=_0x285e62[_0x3e631d(-0xfa,-0x165)][_0x1c2118],_0x45dd49['v']=_0x337bc3[_0x3e631d(-0x173,-0x165)][_0x1c2118],_0x45dd49['speed']=_0xd67b22[_0x3e631d(-0x153,-0x165)][_0x1c2118];const _0x3ed0ca={};_0x3ed0ca['u']=_0x11a9ba,_0x3ed0ca['v']=_0x439399,_0x3ed0ca['speed']=_0x1702dc;const _0xf9006c={};return _0xf9006c['original']=_0x45dd49,_0xf9006c['interpolated']=_0x3ed0ca,_0xf9006c;}}function _0x3300(_0x20a1e0,_0x397951){const _0x461cc9=_0x461c();return _0x3300=function(_0x330002,_0x19e933){_0x330002=_0x330002-0x67;let _0x4f612a=_0x461cc9[_0x330002];return _0x4f612a;},_0x3300(_0x20a1e0,_0x397951);}mars3d__namespace[_0x2b8e51(0x278,0x2cb)]['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){function _0x5a1054(_0x215446,_0x5969f2){return _0x2b8e51(_0x215446,_0x5969f2- -0x4f);}this['lng']=null;function _0x2a3819(_0x1fda6b,_0x53b438){return _0x47b22c(_0x1fda6b-0x22a,_0x53b438);}this['lat']=null,this[_0x5a1054(0x217,0x29b)]=null,this['tlat']=null,this['age']=null,this[_0x5a1054(0x37b,0x322)]=null;}['destroy'](){for(const _0x544924 in this){delete this[_0x544924];}}}class CanvasWindField{constructor(_0x46e177){function _0x258987(_0x4c9278,_0x20f18d){return _0x47b22c(_0x20f18d-0x1e0,_0x4c9278);}this[_0x258987(0xa9,0x4a)](_0x46e177);}get[_0x2b8e51(0x267,0x293)](){return this['_speedRate'];}set['speedRate'](_0x586f51){this['_speedRate']=(0x64-(_0x586f51>0x63?0x63:_0x586f51))*0x64;function _0x61353b(_0x4d292d,_0x34597b){return _0x47b22c(_0x4d292d-0x175,_0x34597b);}this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this['ymax']-this[_0x61353b(0x30,-0x4b)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0x1ba14a){function _0x5f3302(_0x5fdcea,_0x15b7ba){return _0x47b22c(_0x5fdcea-0xea,_0x15b7ba);}this[_0x5f3302(-0xbc,-0x36)]=_0x1ba14a;}['setOptions'](_0x5f0988){this['options']=_0x5f0988,this[_0x495e0c(-0x16,-0x4a)]=_0x5f0988['maxAge']||0x78,this[_0x2b72a2(0x368,0x313)]=_0x5f0988[_0x2b72a2(0x368,0x322)]||0x32;function _0x2b72a2(_0x1164a9,_0x2ae3d7){return _0x47b22c(_0x1164a9-0x5b7,_0x2ae3d7);}this['particles']=[];function _0x495e0c(_0x3c0bae,_0x46f5c1){return _0x47b22c(_0x3c0bae-0x196,_0x46f5c1);}const _0x422dc4=_0x5f0988['particlesNumber']||0x1000;for(let _0x1c4268=0x0;_0x1c4268<_0x422dc4;_0x1c4268++){const _0x29ea15=this['_randomParticle'](new CanvasParticle());this['particles'][_0x2b72a2(0x467,0x48d)](_0x29ea15);}}[_0x2b8e51(0x3af,0x39f)](_0x3e64ac){this['rows']=_0x3e64ac['rows'],this[_0x31de3d(-0x112,-0x8f)]=_0x3e64ac[_0x31de3d(-0x10a,-0x8f)],this['xmin']=_0x3e64ac['xmin'],this['xmax']=_0x3e64ac['xmax'];function _0x31de3d(_0x441a09,_0x28a942){return _0x2b8e51(_0x441a09,_0x28a942- -0x353);}this[_0x31de3d(-0x31,0x4a)]=_0x3e64ac['ymin'],this['ymax']=_0x3e64ac['ymax'],this['grid']=[];function _0x206c84(_0x925b62,_0xb912f1){return _0x47b22c(_0x925b62-0x58f,_0xb912f1);}const _0x521dcf=_0x3e64ac['udata'],_0x3c5fb7=_0x3e64ac['vdata'];let _0x13f0c2=![];_0x521dcf[_0x31de3d(-0xfe,-0x9b)]===this['rows']&&_0x521dcf[0x0][_0x206c84(0x365,0x387)]===this[_0x206c84(0x371,0x3c5)]&&(_0x13f0c2=!![]);let _0x173022=0x0,_0xd5de0e=null,_0x72be56=null;for(let _0x1a9476=0x0;_0x1a9476<this['rows'];_0x1a9476++){_0xd5de0e=[];for(let _0x595dd4=0x0;_0x595dd4<this['cols'];_0x595dd4++,_0x173022++){_0x13f0c2?_0x72be56=this['_calcUV'](_0x521dcf[_0x1a9476][_0x595dd4],_0x3c5fb7[_0x1a9476][_0x595dd4]):_0x72be56=this[_0x31de3d(0x18,0x1)](_0x521dcf[_0x173022],_0x3c5fb7[_0x173022]),_0xd5de0e['push'](_0x72be56);}this['grid']['push'](_0xd5de0e);}!this[_0x31de3d(-0x88,-0x24)]['flipY']&&this[_0x206c84(0x3d3,0x3c0)][_0x206c84(0x384,0x3b9)]();}['clear'](){function _0x19e7e7(_0x1a9bc6,_0x159cb6){return _0x2b8e51(_0x1a9bc6,_0x159cb6-0x17a);}delete this[_0x39b310(0x2b0,0x334)],delete this['cols'],delete this[_0x19e7e7(0x481,0x4f8)],delete this[_0x39b310(0x3f7,0x3b5)];function _0x39b310(_0x28ed33,_0x26ee59){return _0x47b22c(_0x26ee59-0x562,_0x28ed33);}delete this['ymin'],delete this['ymax'],delete this['grid'],delete this[_0x19e7e7(0x3f1,0x467)];}['toGridXY'](_0x5c0b12,_0x3593f3){const _0x1e4de5=(_0x5c0b12-this[_0x2bea22(0x32b,0x2ac)])/(this['xmax']-this[_0x2bea22(0x32b,0x37a)])*(this['cols']-0x1),_0x3ab86f=(this[_0x2bea22(0x2fc,0x2ee)]-_0x3593f3)/(this['ymax']-this['ymin'])*(this[_0x2bea22(0x261,0x232)]-0x1);function _0x2bea22(_0x4d5644,_0x581bbe){return _0x2b8e51(_0x581bbe,_0x4d5644- -0x53);}function _0x1034e1(_0x17cdac,_0x3a5cce){return _0x47b22c(_0x3a5cce-0xb8,_0x17cdac);}return[_0x1e4de5,_0x3ab86f];}[_0x47b22c(-0x1a9,-0x1e5)](_0x18de79,_0x3dc9b8){if(_0x18de79<0x0||_0x18de79>=this['cols']||_0x3dc9b8>=this[_0x49f29c(-0x30a,-0x281)])return[0x0,0x0,0x0];const _0x182f3e=Math[_0x49f29c(-0x1fd,-0x1de)](_0x18de79);function _0x49f29c(_0x45715c,_0x3abfaf){return _0x47b22c(_0x3abfaf- -0x53,_0x45715c);}const _0x31b848=Math['floor'](_0x3dc9b8);if(_0x182f3e===_0x18de79&&_0x31b848===_0x3dc9b8)return this['grid'][_0x3dc9b8][_0x18de79];const _0x326462=_0x182f3e+0x1,_0x203823=_0x31b848+0x1,_0x5dd417=this['getUVByXY'](_0x182f3e,_0x31b848);function _0x59fd51(_0x2ef2cb,_0x585d8a){return _0x2b8e51(_0x585d8a,_0x2ef2cb-0xb2);}const _0x157d56=this['getUVByXY'](_0x326462,_0x31b848),_0x4b78ef=this['getUVByXY'](_0x182f3e,_0x203823),_0x1a9b59=this[_0x59fd51(0x3eb,0x416)](_0x326462,_0x203823);let _0x299f16=null;try{_0x299f16=this['_bilinearInterpolation'](_0x18de79-_0x182f3e,_0x3dc9b8-_0x31b848,_0x5dd417,_0x157d56,_0x4b78ef,_0x1a9b59);}catch(_0x1701de){console['log'](_0x18de79,_0x3dc9b8);}return _0x299f16;}['_bilinearInterpolation'](_0x595e3c,_0x5d4234,_0x45f563,_0x188545,_0x1f5b76,_0x567d37){const _0x12faaa=0x1-_0x595e3c,_0x4f7945=0x1-_0x5d4234,_0x15c26c=_0x12faaa*_0x4f7945,_0x141f3e=_0x595e3c*_0x4f7945,_0x6d4a13=_0x12faaa*_0x5d4234,_0x2df4de=_0x595e3c*_0x5d4234,_0x5e11e5=_0x45f563[0x0]*_0x15c26c+_0x188545[0x0]*_0x141f3e+_0x1f5b76[0x0]*_0x6d4a13+_0x567d37[0x0]*_0x2df4de,_0x3fd418=_0x45f563[0x1]*_0x15c26c+_0x188545[0x1]*_0x141f3e+_0x1f5b76[0x1]*_0x6d4a13+_0x567d37[0x1]*_0x2df4de;return this['_calcUV'](_0x5e11e5,_0x3fd418);}[_0x47b22c(-0x18e,-0x1bb)](_0x48c59d,_0x3ddb87){return[+_0x48c59d,+_0x3ddb87,Math['sqrt'](_0x48c59d*_0x48c59d+_0x3ddb87*_0x3ddb87)];}['getUVByPoint'](_0x408bee,_0x2e22f3){function _0x3d9266(_0x52e7bb,_0x42c038){return _0x2b8e51(_0x52e7bb,_0x42c038- -0x90);}function _0x25b97f(_0x59bb3b,_0x163a9e){return _0x47b22c(_0x59bb3b-0x3e0,_0x163a9e);}if(!this['isInExtent'](_0x408bee,_0x2e22f3))return null;const _0x55a3d4=this[_0x3d9266(0x27b,0x239)](_0x408bee,_0x2e22f3),_0x302761=this[_0x3d9266(0x264,0x2a9)](_0x55a3d4[0x0],_0x55a3d4[0x1]);return _0x302761;}[_0x47b22c(-0x1d5,-0x18b)](_0x1dbec5,_0x4c2de9){function _0x3cf0ec(_0x226f59,_0x203d8a){return _0x47b22c(_0x203d8a-0x473,_0x226f59);}return _0x1dbec5>=this['xmin']&&_0x1dbec5<=this['xmax']&&_0x4c2de9>=this[_0x3cf0ec(0x367,0x32e)]&&_0x4c2de9<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x1b2a6d=fRandomByfloat(this['xmin'],this[_0x22b31f(-0x71,-0xbf)]),_0x273656=fRandomByfloat(this['ymin'],this['ymax']);function _0x1c2e4e(_0x571b20,_0x3d8d44){return _0x47b22c(_0x571b20-0x616,_0x3d8d44);}const _0x416fb1={};_0x416fb1[_0x1c2e4e(0x489,0x4c0)]=_0x273656,_0x416fb1['lng']=_0x1b2a6d;function _0x22b31f(_0x48aea9,_0x1b7e73){return _0x47b22c(_0x1b7e73-0xee,_0x48aea9);}return _0x416fb1;}['getParticles'](){function _0xb2d531(_0x3fa85e,_0x2d1021){return _0x47b22c(_0x2d1021-0x5ab,_0x3fa85e);}let _0x904137,_0x116d1c,_0x56531e;function _0x364316(_0x43f2ba,_0x357a5c){return _0x2b8e51(_0x43f2ba,_0x357a5c- -0x320);}for(let _0x3abbee=0x0,_0x46baea=this['particles']['length'];_0x3abbee<_0x46baea;_0x3abbee++){let _0x4d48b0=this['particles'][_0x3abbee];_0x4d48b0['age']<=0x0&&(_0x4d48b0=this['_randomParticle'](_0x4d48b0));if(_0x4d48b0['age']>0x0){const _0x5ac121=_0x4d48b0['tlng'],_0x544c57=_0x4d48b0[_0xb2d531(0x4b8,0x444)];_0x56531e=this['getUVByPoint'](_0x5ac121,_0x544c57),_0x56531e?(_0x904137=_0x5ac121+this[_0x364316(0xd3,0x67)][0x0]*_0x56531e[0x0],_0x116d1c=_0x544c57+this[_0x364316(0x7f,0x67)][0x1]*_0x56531e[0x1],_0x4d48b0['lng']=_0x5ac121,_0x4d48b0[_0x364316(0x33,0x35)]=_0x544c57,_0x4d48b0['tlng']=_0x904137,_0x4d48b0[_0x364316(0xcb,0x5b)]=_0x116d1c,_0x4d48b0[_0x364316(-0x7,0x51)]=_0x56531e[0x2],_0x4d48b0['age']--):_0x4d48b0['age']=0x0;}}return this['particles'];}['_randomParticle'](_0x473780){let _0x1176f9,_0x453f7a;function _0x5c6325(_0x16e12b,_0x5084d3){return _0x47b22c(_0x16e12b-0x4a9,_0x5084d3);}for(let _0x3faddf=0x0;_0x3faddf<0x1e;_0x3faddf++){_0x1176f9=this['getRandomLatLng'](),_0x453f7a=this['getUVByPoint'](_0x1176f9['lng'],_0x1176f9['lat']);if(_0x453f7a&&_0x453f7a[0x2]>0x0)break;}if(!_0x453f7a)return _0x473780;const _0x2286d5=_0x1176f9['lng']+this['_calc_speedRate'][0x0]*_0x453f7a[0x0],_0x115737=_0x1176f9[_0x5c6325(0x31c,0x2de)]+this['_calc_speedRate'][0x1]*_0x453f7a[0x1];_0x473780[_0x5c6325(0x285,0x2f1)]=_0x1176f9[_0x5c6325(0x285,0x2e1)],_0x473780[_0x356cce(0x281,0x2a3)]=_0x1176f9[_0x356cce(0x281,0x229)],_0x473780['tlng']=_0x2286d5,_0x473780[_0x5c6325(0x342,0x3c8)]=_0x115737,_0x473780[_0x356cce(0x299,0x306)]=Math[_0x5c6325(0x2c4,0x258)](0xa+Math['random']()*this['maxAge']),_0x473780[_0x356cce(0x29d,0x2d5)]=_0x453f7a[0x2];function _0x356cce(_0x421d90,_0x8d924e){return _0x47b22c(_0x421d90-0x40e,_0x8d924e);}return _0x473780;}[_0x2b8e51(0x2ba,0x2e8)](){for(const _0x4b334f in this){delete this[_0x4b334f];}}}function fRandomByfloat(_0x1b14d5,_0x577b00){function _0x2bbe32(_0x4d3604,_0x22d024){return _0x2b8e51(_0x22d024,_0x4d3604- -0x3a4);}return _0x1b14d5+Math[_0x2bbe32(-0xc6,-0xfb)]()*(_0x577b00-_0x1b14d5);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer'][_0x47b22c(-0x1f1,-0x231)];class CanvasWindLayer extends BaseLayer{constructor(_0x5ab44b={}){super(_0x5ab44b),this[_0x364299(0x38b,0x32a)](_0x5ab44b);function _0x364299(_0x543114,_0x91e1a){return _0x2b8e51(_0x543114,_0x91e1a-0x4a);}function _0x5c97ad(_0x414e47,_0x5d41a0){return _0x47b22c(_0x414e47-0x634,_0x5d41a0);}this['canvas']=null,_0x5ab44b['colors']&&_0x5ab44b[_0x364299(0x2f6,0x33e)]&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x5ab44b));}['_setOptionsHook'](_0x122137,_0x552e71){this[_0x1093ed(-0x137,-0xe7)]=0x3e8/(_0x122137[_0x3298dd(0x3d8,0x3a1)]||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![],this['color']=_0x122137['color']||'#ffffff',this['lineWidth']=_0x122137['lineWidth']||0x1;function _0x3298dd(_0x423cb3,_0x3b2ff2){return _0x47b22c(_0x423cb3-0x56a,_0x3b2ff2);}function _0x1093ed(_0x48731d,_0x41a1a2){return _0x2b8e51(_0x48731d,_0x41a1a2- -0x410);}this['fixedHeight']=_0x122137[_0x3298dd(0x40d,0x453)]??0x0,this[_0x3298dd(0x326,0x2a3)]=_0x122137['flipY']??![],this['windField']&&this[_0x3298dd(0x41e,0x47e)]['setOptions'](_0x122137);}get[_0x2b8e51(0x373,0x398)](){function _0x5d14f1(_0x191f16,_0x3bf219){return _0x47b22c(_0x191f16-0x581,_0x3bf219);}return this[_0x5d14f1(0x41e,0x3b9)];}get[_0x47b22c(-0x16b,-0x161)](){function _0xd76fee(_0x48a148,_0x4fc33a){return _0x47b22c(_0x48a148-0x658,_0x4fc33a);}function _0x54d9fc(_0x2af6cf,_0x2222b6){return _0x47b22c(_0x2af6cf-0x474,_0x2222b6);}return this[_0x54d9fc(0x255,0x251)][_0x54d9fc(0x2df,0x257)][_0x54d9fc(0x311,0x35f)][_0xd76fee(0x4d3,0x555)];}get['canvasHeight'](){return this['_map']['scene']['canvas']['clientHeight'];}get[_0x47b22c(-0x184,-0x172)](){function _0x100c37(_0x2f6517,_0x2598e2){return _0x47b22c(_0x2f6517-0x509,_0x2598e2);}return this[_0x100c37(0x3ab,0x382)];}set[_0x47b22c(-0x184,-0x16f)](_0x425094){function _0x4138ca(_0x4e4dc9,_0xb542ec){return _0x2b8e51(_0xb542ec,_0x4e4dc9- -0x4ff);}this[_0x141fe8(0x1d4,0x223)]=_0x425094;function _0x141fe8(_0x150156,_0x5be851){return _0x47b22c(_0x150156-0x332,_0x5be851);}if(!this[_0x141fe8(0x1cf,0x207)])return;_0x425094?this['canvas']['style'][_0x141fe8(0x1e5,0x1c2)]='all':this['canvas']['style']['pointer-events']='none';}get[_0x2b8e51(0x341,0x30e)](){function _0xc88d78(_0x43aaff,_0x4587ed){return _0x2b8e51(_0x43aaff,_0x4587ed- -0x36);}return this['options'][_0xc88d78(0x2ed,0x2d8)];}set['particlesNumber'](_0x1e6bd8){function _0x1c26d3(_0x4b7238,_0x547cab){return _0x2b8e51(_0x547cab,_0x4b7238- -0x13f);}this[_0x1c26d3(0x1f0,0x1b2)]['particlesNumber']=_0x1e6bd8;function _0x5650a3(_0x5f373f,_0xbe9f84){return _0x47b22c(_0x5f373f-0x12e,_0xbe9f84);}clearTimeout(this[_0x1c26d3(0x1a5,0x230)]),this[_0x1c26d3(0x1a5,0x145)]=setTimeout(()=>{function _0x129b7e(_0x114ee1,_0x2da949){return _0x1c26d3(_0x2da949-0x19c,_0x114ee1);}this[_0x129b7e(0x2c8,0x32c)]();},0x1f4);}get[_0x2b8e51(0x271,0x293)](){function _0x3203ee(_0x4390cd,_0x1677ab){return _0x2b8e51(_0x4390cd,_0x1677ab- -0x287);}return this[_0x3203ee(0xa4,0xa8)]['speedRate'];}set[_0x2b8e51(0x20b,0x293)](_0x14a3ac){function _0x5bdb69(_0x29823b,_0xeeedfd){return _0x2b8e51(_0x29823b,_0xeeedfd-0x49);}function _0x105b36(_0x2ba568,_0x35ec20){return _0x2b8e51(_0x35ec20,_0x2ba568- -0x21);}this['options']['speedRate']=_0x14a3ac,this[_0x5bdb69(0x43d,0x3df)]&&(this['windField'][_0x105b36(0x272,0x224)]=_0x14a3ac);}get[_0x2b8e51(0x2cb,0x336)](){return this['options']['maxAge'];}set['maxAge'](_0x389b0c){this['options'][_0xff1dcb(0x406,0x3fe)]=_0x389b0c;function _0xff1dcb(_0x13436d,_0x16ff71){return _0x47b22c(_0x13436d-0x5b2,_0x16ff71);}function _0x3089e0(_0x1ee488,_0x1151d5){return _0x47b22c(_0x1ee488- -0xd2,_0x1151d5);}this[_0xff1dcb(0x466,0x4d6)]&&(this['windField'][_0xff1dcb(0x406,0x485)]=_0x389b0c);}get[_0x2b8e51(0x2a0,0x2ff)](){function _0x25c363(_0x2e370a,_0x40fa71){return _0x2b8e51(_0x2e370a,_0x40fa71- -0x40);}return this[_0x25c363(0x39a,0x318)];}set['data'](_0x40821f){function _0x4d7364(_0x155adc,_0xdf6ad6){return _0x47b22c(_0x155adc-0x157,_0xdf6ad6);}this[_0x4d7364(-0xd4,-0x13d)](_0x40821f);}get[_0x47b22c(-0x1cc,-0x165)](){let _0xcf959=this['windData']['xmin'],_0x978b1e=this[_0xc60791(0x4e4,0x489)]['xmax'],_0x2826ff=this['windData']['ymin'],_0x113ed6=this[_0xc60791(0x4e4,0x534)][_0x5983b8(0x342,0x332)];_0x978b1e>=0x167&&_0xcf959===0x0&&(_0xcf959=-0xb4,_0x978b1e=0xb4);_0xcf959=Math['max'](_0xcf959,-0xb4);function _0xc60791(_0x10bea7,_0x516943){return _0x2b8e51(_0x516943,_0x10bea7-0x18c);}_0x978b1e=Math[_0xc60791(0x446,0x3d5)](_0x978b1e,0xb4),_0x2826ff=Math[_0x5983b8(0x36f,0x3e5)](_0x2826ff,-0x5a),_0x113ed6=Math[_0x5983b8(0x2ad,0x2a3)](_0x113ed6,0x5a);function _0x5983b8(_0x57aceb,_0x2648df){return _0x47b22c(_0x57aceb-0x4d5,_0x2648df);}return Cesium[_0xc60791(0x4a9,0x4bb)]['fromDegrees'](_0xcf959,_0x2826ff,_0x978b1e,_0x113ed6);}['_showHook'](_0x25c993){_0x25c993?this['_addedHook']():(this['windData']&&(this['options']['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x4417fa(_0x158c5f,_0x31b564){return _0x2b8e51(_0x31b564,_0x158c5f- -0x513);}function _0xd3512e(_0x25e675,_0x301338){return _0x2b8e51(_0x25e675,_0x301338- -0x5ed);}this['options'][_0xd3512e(-0x220,-0x265)]?this[_0xd3512e(-0x2d1,-0x283)]():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){this[_0x956ab3(0x2ad,0x2ed)]=this['_createCanvas']();const _0x13ad89={};_0x13ad89[_0x956ab3(0x26d,0x280)]=!![],this['canvasContext']=this['canvas'][_0x956ab3(0x24f,0x200)]('2d',_0x13ad89);function _0x956ab3(_0x57684f,_0x59e4e4){return _0x47b22c(_0x57684f-0x410,_0x59e4e4);}function _0x5126dc(_0x3e07cc,_0x533347){return _0x2b8e51(_0x3e07cc,_0x533347-0x1bc);}this[_0x956ab3(0x214,0x243)](),this['options']['data']&&this['setData'](this['options'][_0x956ab3(0x22d,0x2a6)]);}['_removedHook'](){this['clear'](),this[_0x23a8dc(-0x22,-0x49)]();function _0x31b22b(_0x1d13e2,_0x3312f6){return _0x47b22c(_0x3312f6-0x680,_0x1d13e2);}function _0x23a8dc(_0x760ce6,_0x418eab){return _0x2b8e51(_0x418eab,_0x760ce6- -0x303);}this[_0x31b22b(0x565,0x51d)]&&(this[_0x31b22b(0x4c5,0x461)]['container'][_0x31b22b(0x499,0x466)](this[_0x31b22b(0x57c,0x51d)]),delete this['canvas']);}['_createCanvas'](){const _0x4bbab1=mars3d__namespace['DomUtil']['create']('canvas',_0x25c879(-0x237,-0x288),this['_map']['container']);_0x4bbab1['style']['position']=_0x307716(-0x236,-0x210),_0x4bbab1[_0x25c879(-0x275,-0x2cb)][_0x307716(-0x1dd,-0x17d)]='0px',_0x4bbab1['style'][_0x307716(-0x296,-0x275)]='0px',_0x4bbab1['style']['width']=this['_map'][_0x25c879(-0x256,-0x2bf)]['canvas']['clientWidth']+'px',_0x4bbab1['style'][_0x307716(-0x238,-0x233)]=this['_map']['scene'][_0x25c879(-0x224,-0x1e6)]['clientHeight']+'px';function _0x307716(_0xbb2af7,_0x51e0f7){return _0x47b22c(_0xbb2af7- -0x60,_0x51e0f7);}_0x4bbab1['style']['pointerEvents']=this[_0x25c879(-0x21f,-0x27d)]?'auto':'none',_0x4bbab1['style'][_0x25c879(-0x2cf,-0x2d7)]=this['options'][_0x307716(-0x26e,-0x28e)]??0x9;function _0x25c879(_0x1ffbf7,_0x5817ae){return _0x47b22c(_0x1ffbf7- -0xc1,_0x5817ae);}return _0x4bbab1[_0x307716(-0x283,-0x2eb)]=this['_map']['scene'][_0x25c879(-0x224,-0x29e)][_0x25c879(-0x246,-0x1d7)],_0x4bbab1['height']=this['_map']['scene']['canvas'][_0x307716(-0x227,-0x2a8)],_0x4bbab1;}['resize'](){function _0x5bf434(_0x1a334b,_0x2ff3a4){return _0x2b8e51(_0x2ff3a4,_0x1a334b- -0x2a2);}function _0x27a3f4(_0x2758cd,_0x4dcfca){return _0x47b22c(_0x4dcfca-0x494,_0x2758cd);}this['canvas']&&(this[_0x27a3f4(0x352,0x331)]['style']['width']=this[_0x27a3f4(0x28c,0x275)]['scene']['canvas']['clientWidth']+'px',this['canvas'][_0x27a3f4(0x328,0x2e0)]['height']=this[_0x5bf434(0x21,-0x64)][_0x5bf434(0xab,0x79)][_0x27a3f4(0x33a,0x331)][_0x27a3f4(0x2ed,0x2cd)]+'px',this[_0x27a3f4(0x335,0x331)]['width']=this['_map']['scene']['canvas']['clientWidth'],this['canvas']['height']=this['_map']['scene'][_0x27a3f4(0x2ce,0x331)][_0x27a3f4(0x285,0x2cd)]);}['bindEvent'](){const _0x2ffcc5=this;let _0x12a1c2=Date['now']();function _0x2884a9(_0x38bd76,_0x7fe43e){return _0x47b22c(_0x7fe43e-0x311,_0x38bd76);}(function _0x139f40(){if(_0x2ffcc5['isDestroy'])return;_0x2ffcc5['_animateFrame']=window['requestAnimationFrame'](_0x139f40);function _0xa63c84(_0x3d2c97,_0x97de9d){return _0x3300(_0x97de9d-0x2ce,_0x3d2c97);}if(_0x2ffcc5['show']&&_0x2ffcc5['windField']){const _0xe0bc6d=Date['now'](),_0x270de9=_0xe0bc6d-_0x12a1c2;_0x270de9>_0x2ffcc5['frameTime']&&(_0x12a1c2=_0xe0bc6d-_0x270de9%_0x2ffcc5[_0xa63c84(0x3bc,0x3d3)],_0x2ffcc5['update']());}}());function _0x8b7d0c(_0x879e85,_0x40eb27){return _0x2b8e51(_0x40eb27,_0x879e85- -0x47);}window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x2884a9(0x89,0xf2)]['on'](mars3d__namespace['EventType'][_0x2884a9(0x106,0x12a)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x8b7d0c(0x320,0x3a6)],this[_0x2884a9(0xff,0x12b)],this));}['unbindEvent'](){function _0x230e9e(_0x5ce473,_0x1af4e3){return _0x47b22c(_0x1af4e3-0x4db,_0x5ce473);}window[_0x230e9e(0x30b,0x32d)](this[_0x36b46b(-0x22,-0x8)]),delete this['_animateFrame'],window['removeEventListener'](_0x36b46b(0x51,0x21),this[_0x36b46b(0x51,0xb3)]);function _0x36b46b(_0x41c2d7,_0x1dbf58){return _0x2b8e51(_0x1dbf58,_0x41c2d7- -0x2cf);}this['options'][_0x36b46b(0xbf,0x4f)]&&(this['_map'][_0x230e9e(0x33a,0x2cf)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x36b46b(-0xc,-0x6e)]['off'](mars3d__namespace[_0x36b46b(0x37,0x91)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x36b46b(0x7,-0x18)](mars3d__namespace['EventType'][_0x36b46b(0x98,0x116)],this[_0x36b46b(0x2d,0x37)],this),this['_map'][_0x36b46b(0x7,0x91)](mars3d__namespace[_0x36b46b(0x37,0xb8)][_0x230e9e(0x2df,0x31d)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x321a0c){clearTimeout(this['refreshTimer']);function _0xb66141(_0x2428ec,_0xe56d48){return _0x47b22c(_0x2428ec-0xef,_0xe56d48);}function _0x185a41(_0x33fdb3,_0x9cac95){return _0x47b22c(_0x9cac95-0x559,_0x33fdb3);}if(!this[_0x185a41(0x3ca,0x3e5)]||!this[_0x185a41(0x440,0x3f6)])return;this[_0xb66141(-0x74,-0x39)]['style']['visibility']='hidden',this['refreshTimer']=setTimeout(()=>{function _0x5979ca(_0x3e1693,_0x11ddf2){return _0x185a41(_0x11ddf2,_0x3e1693- -0x158);}if(!this[_0x27132c(0x3d,0xa0)])return;this['redraw']();function _0x27132c(_0xeb3141,_0x2d7373){return _0x185a41(_0xeb3141,_0x2d7373- -0x345);}this[_0x5979ca(0x29e,0x2b9)]['style']['visibility']='visible';},0xc8);}[_0x2b8e51(0x376,0x332)](_0x25cf1b){function _0x593a78(_0x3be966,_0x44187c){return _0x2b8e51(_0x3be966,_0x44187c- -0x3cf);}this['mouse_down']=!![],this['_map']['off'](mars3d__namespace['EventType'][_0x593a78(-0x91,-0xab)],this['_onMouseMoveEvent'],this);function _0x1c3911(_0x571b4b,_0x421715){return _0x47b22c(_0x421715-0x22d,_0x571b4b);}this[_0x1c3911(-0x79,0xe)]['on'](mars3d__namespace[_0x1c3911(-0x2c,0x51)][_0x1c3911(0x16,0x6f)],this[_0x593a78(-0xd2,-0xbe)],this);}['_onMouseMoveEvent'](_0x95a379){function _0x5de0f8(_0xc6e63e,_0x47c9ea){return _0x2b8e51(_0xc6e63e,_0x47c9ea- -0x44c);}if(!this['show']||!this['canvas'])return;function _0x4f2685(_0x353e3a,_0xcecc0d){return _0x47b22c(_0xcecc0d- -0xfb,_0x353e3a);}this['mouse_down']&&(this['canvas'][_0x5de0f8(-0x17b,-0x11e)][_0x5de0f8(-0x8a,-0xe9)]='hidden',this[_0x4f2685(-0x31c,-0x33b)]=!![]);}['_onMouseUpEvent'](_0x209fa0){if(!this[_0x57d270(0x571,0x524)]||!this[_0x6670f2(0x445,0x40d)])return;this[_0x57d270(0x49d,0x479)]['off'](mars3d__namespace[_0x57d270(0x53b,0x4bc)][_0x57d270(0x4b1,0x4da)],this[_0x57d270(0x523,0x4c7)],this);function _0x57d270(_0x1fe0cb,_0x287f71){return _0x47b22c(_0x287f71-0x698,_0x1fe0cb);}this[_0x57d270(0x494,0x4be)]&&this['mouse_move']&&this[_0x6670f2(0x395,0x341)]();function _0x6670f2(_0x41ad88,_0x43313a){return _0x47b22c(_0x41ad88-0x5a8,_0x43313a);}this[_0x57d270(0x550,0x535)]['style'][_0x6670f2(0x429,0x400)]=_0x57d270(0x4c9,0x443),this['mouse_down']=![],this['mouse_move']=![];}['setData'](_0x54e7cc){this[_0x2dee0e(0x1b1,0x1f4)](),this['windData']=_0x54e7cc;function _0x585925(_0x2ff79f,_0x1b4380){return _0x47b22c(_0x2ff79f-0x5ac,_0x1b4380);}this['windField']['setDate'](_0x54e7cc);function _0x2dee0e(_0x19976f,_0x4fcb88){return _0x47b22c(_0x19976f-0x375,_0x4fcb88);}this[_0x585925(0x399,0x32c)]();}['redraw'](){function _0x476db4(_0x102e8f,_0x474582){return _0x2b8e51(_0x102e8f,_0x474582- -0x5de);}if(!this['show'])return;this[_0x476db4(-0x1ef,-0x248)][_0x473b62(0x4aa,0x4bb)](this[_0x476db4(-0x234,-0x2af)]);function _0x473b62(_0x8283bc,_0x2978af){return _0x47b22c(_0x8283bc-0x640,_0x2978af);}this['update']();}['update'](){if(this['_updateIng'])return;this['_updateIng']=!![];if(this[_0x5d8b48(0x210,0x217)])this['windField']['update']();else{const _0x31483a=this['windField']['getParticles']();this['_drawLines'](_0x31483a);}function _0x5d8b48(_0x2f3f61,_0x29d4a1){return _0x2b8e51(_0x29d4a1,_0x2f3f61- -0x178);}this['_updateIng']=![];}['_drawLines'](_0x38c1e6){function _0x2ca97a(_0x1f2578,_0x48e69d){return _0x47b22c(_0x48e69d-0x29a,_0x1f2578);}this[_0x2ca97a(0x28,0x68)]=_0x38c1e6,this[_0x2ca97a(0xf2,0xbb)][_0x2ca97a(0x5d,0x8b)]='destination-in',this['canvasContext'][_0x2ca97a(0x104,0x154)](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this[_0x18e771(0x4ab,0x45a)]['globalCompositeOperation']=_0x2ca97a(0x7b,0x60),this[_0x18e771(0x4ab,0x481)]['globalAlpha']=0.9;function _0x18e771(_0x3dd5f2,_0x8c78a6){return _0x2b8e51(_0x8c78a6,_0x3dd5f2-0x1a8);}const _0x40073e=this['_map'][_0x2ca97a(0x150,0x105)]['mode']!==Cesium['SceneMode'][_0x18e771(0x50e,0x4fa)],_0x352a1c=this[_0x18e771(0x51f,0x5a8)]*0.25;if(this[_0x2ca97a(0x9f,0xf5)])for(let _0x5774f0=0x0,_0xd80921=_0x38c1e6[_0x2ca97a(0xb5,0x70)];_0x5774f0<_0xd80921;_0x5774f0++){const _0xee27b=_0x38c1e6[_0x5774f0],_0x591de6=this['_tomap'](_0xee27b,_0xee27b['lng'],_0xee27b[_0x2ca97a(0xa7,0x10d)],_0xee27b['alt']),_0xe524b5=this['_tomap'](_0xee27b,_0xee27b[_0x2ca97a(0xb9,0xa2)],_0xee27b['tlat'],_0xee27b['talt']);if(!_0x591de6||!_0xe524b5)continue;if(_0x40073e&&Math[_0x18e771(0x451,0x405)](_0x591de6[0x0]-_0xe524b5[0x0])>=_0x352a1c)continue;this['canvasContext'][_0x18e771(0x43d,0x4ad)](),this[_0x18e771(0x4ab,0x4e3)][_0x18e771(0x4fe,0x4eb)]=this[_0x2ca97a(0xf3,0x10e)],this['canvasContext'][_0x18e771(0x43f,0x46a)]=this['_colorRamp'][_0x18e771(0x480,0x4d8)](_0xee27b['speed']),this['canvasContext']['moveTo'](_0x591de6[0x0],_0x591de6[0x1]),this['canvasContext']['lineTo'](_0xe524b5[0x0],_0xe524b5[0x1]),this[_0x18e771(0x4ab,0x519)][_0x18e771(0x4e3,0x55c)]();}else{this[_0x18e771(0x4ab,0x428)]['beginPath'](),this['canvasContext']['lineWidth']=this[_0x18e771(0x4fe,0x523)],this['canvasContext'][_0x18e771(0x43f,0x487)]=this['color'];for(let _0xbd10bd=0x0,_0x2afada=_0x38c1e6['length'];_0xbd10bd<_0x2afada;_0xbd10bd++){const _0x5b00f0=_0x38c1e6[_0xbd10bd],_0x3e60e2=this['_tomap'](_0x5b00f0,_0x5b00f0['lng'],_0x5b00f0[_0x18e771(0x4fd,0x55c)],_0x5b00f0[_0x2ca97a(0x186,0x130)]),_0xff8a7a=this[_0x2ca97a(0xd3,0xaa)](_0x5b00f0,_0x5b00f0['tlng'],_0x5b00f0['tlat'],_0x5b00f0['talt']);if(!_0x3e60e2||!_0xff8a7a)continue;if(_0x40073e&&Math['abs'](_0x3e60e2[0x0]-_0xff8a7a[0x0])>=_0x352a1c)continue;this['canvasContext']['moveTo'](_0x3e60e2[0x0],_0x3e60e2[0x1]),this['canvasContext']['lineTo'](_0xff8a7a[0x0],_0xff8a7a[0x1]);}this[_0x18e771(0x4ab,0x4ee)][_0x2ca97a(0x128,0xf3)]();}}[_0x47b22c(-0x1f0,-0x1b0)](_0x31fcec,_0x572d43,_0x5f3e98,_0x100331){const _0x197887=Cesium['Cartesian3'][_0x581808(0xf,-0x67)](_0x572d43,_0x5f3e98,_0x100331??this['fixedHeight']),_0x46bf1b=this[_0x581808(-0x28,-0x81)][_0x581808(0x68,0x9)];function _0x3c0042(_0x4f5fbe,_0x46fd63){return _0x2b8e51(_0x46fd63,_0x4f5fbe- -0xe0);}if(_0x46bf1b[_0x3c0042(0x219,0x24c)]===Cesium['SceneMode']['SCENE3D']){const _0x37a31b=new Cesium[(_0x581808(0x25,-0x4f))](_0x46bf1b['globe']['ellipsoid'],_0x46bf1b['camera']['positionWC']),_0x31dcf0=_0x37a31b[_0x581808(-0xb2,-0x78)](_0x197887);if(!_0x31dcf0)return _0x31fcec['age']=0x0,null;}const _0x4a03fc=mars3d__namespace['PointTrans'][_0x3c0042(0x1bf,0x1cf)](this[_0x3c0042(0x1e3,0x1fd)]['scene'],_0x197887);function _0x581808(_0xd3f906,_0x5bd639){return _0x47b22c(_0x5bd639-0x19e,_0xd3f906);}return _0x4a03fc?[_0x4a03fc['x'],_0x4a03fc['y']]:null;}['clear'](){function _0x21d10e(_0x2bd18a,_0x2eb6d8){return _0x47b22c(_0x2bd18a-0x101,_0x2eb6d8);}this[_0x31314e(-0x149,-0x148)][_0x21d10e(-0xc3,-0xe2)]();function _0x31314e(_0x4416a0,_0x29345d){return _0x47b22c(_0x29345d-0x4,_0x4416a0);}delete this[_0x21d10e(-0x89,-0xe8)];}['initWorker'](){function _0x217d39(_0x1c2964,_0x1e4ae3){return _0x2b8e51(_0x1e4ae3,_0x1c2964-0x1be);}this['worker']=new Worker(this['options'][_0x217d39(0x546,0x5c3)]),this['worker']['onmessage']=_0x1c91ed=>{function _0x36fb84(_0x4a7732,_0x1893d6){return _0x217d39(_0x1893d6- -0x41c,_0x4a7732);}function _0x5042fc(_0x500a78,_0x2fd964){return _0x217d39(_0x2fd964- -0x145,_0x500a78);}this['_drawLines'](_0x1c91ed[_0x5042fc(0x3a5,0x378)][_0x36fb84(0x111,0x8f)]),this['_updateIng2']=![];},this[_0x217d39(0x554,0x5d3)]={'init':_0x3882c8=>{const _0x5e7483={};_0x5e7483[_0xae1bdc(-0x21a,-0x1db)]=_0x4e4d6b(0x34f,0x2d4);function _0x4e4d6b(_0x372265,_0x34bdff){return _0x217d39(_0x372265- -0x112,_0x34bdff);}_0x5e7483['options']=_0x3882c8;function _0xae1bdc(_0x56a2f9,_0x464931){return _0x217d39(_0x464931- -0x629,_0x56a2f9);}this['worker']['postMessage'](_0x5e7483);},'setOptions':_0x597d8=>{const _0x3e2738={};function _0x1af99e(_0x5521fc,_0x57e2ea){return _0x217d39(_0x5521fc- -0x4e2,_0x57e2ea);}_0x3e2738['type']='setOptions',_0x3e2738['options']=_0x597d8,this['worker'][_0x1af99e(0x3,0x73)](_0x3e2738);},'setDate':_0xed2287=>{function _0x31c493(_0xe0b7f0,_0x30c0e1){return _0x3be416(_0xe0b7f0,_0x30c0e1- -0x486);}const _0xdf4537={};function _0x495082(_0x34f84f,_0x384ac6){return _0x217d39(_0x34f84f-0x2,_0x384ac6);}_0xdf4537['type']=_0x31c493(-0x50,-0xa4),_0xdf4537[_0x495082(0x4bf,0x4e4)]=_0xed2287,this['worker']['postMessage'](_0xdf4537);},'update':()=>{if(this['_updateIng2'])return;function _0x45c1c7(_0x27cb69,_0x2b5397){return _0x217d39(_0x27cb69- -0x369,_0x2b5397);}this[_0x5b270a(0x29b,0x2d5)]=!![];const _0xf210={};_0xf210['type']='update';function _0x5b270a(_0x5cd85c,_0x77a7f8){return _0x3be416(_0x77a7f8,_0x5cd85c- -0x111);}this['worker'][_0x45c1c7(0x17c,0x17c)](_0xf210);},'clear':()=>{const _0x858302={};_0x858302[_0x5a5ec(0x5,0x17)]=_0x5a5ec(0xd2,0xa5);function _0x524465(_0x479a6c,_0x5a49c4){return _0x3be416(_0x5a49c4,_0x479a6c- -0x313);}function _0x5a5ec(_0x4d9775,_0x4b7629){return _0x217d39(_0x4b7629- -0x437,_0x4d9775);}this['worker']['postMessage'](_0x858302);}};function _0x3be416(_0x2571c1,_0x41f8a1){return _0x47b22c(_0x41f8a1-0x525,_0x2571c1);}this['windField']['init'](this[_0x217d39(0x4ed,0x4f7)]);}}mars3d__namespace[_0x47b22c(-0x217,-0x23f)]['register']('canvasWind',CanvasWindLayer);function _0x47b22c(_0x76ad28,_0x565c97){return _0x3300(_0x76ad28- -0x2be,_0x565c97);}mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x2f4a41={};_0x2f4a41['value']=!![],Object['defineProperty'](exports,'__esModule',_0x2f4a41);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.9.8",
3
+ "version": "3.9.9",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.9.8"
8
+ "mars3d": "~3.9.9"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"