mars3d-wind 3.10.2 → 3.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mars3d-wind.js +3 -3
- package/package.json +2 -2
package/mars3d-wind.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
|
3
3
|
*
|
|
4
|
-
* 版本信息:v3.10.
|
|
5
|
-
* 编译日期:2025-
|
|
4
|
+
* 版本信息:v3.10.4
|
|
5
|
+
* 编译日期:2025-09-05 17:48
|
|
6
6
|
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
7
|
* 使用单位:火星科技免费公开版 ,2025-07-01
|
|
8
8
|
*/
|
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
|
|
12
12
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
|
|
13
13
|
})(this, (function (exports, mars3d) {
|
|
14
|
-
'use strict';(function(_0x792cc4,_0x119712){function _0x334217(_0x32dc9f,_0xa33938){return _0x3a79(_0x32dc9f- -0x22e,_0xa33938);}function _0x53abc4(_0x224d62,_0x180b19){return _0x3a79(_0x180b19-0x227,_0x224d62);}const _0x39008c=_0x792cc4();while(!![]){try{const _0x33b94d=-parseInt(_0x53abc4(0x27d,0x2e9))/0x1*(parseInt(_0x334217(-0x117,-0x92))/0x2)+parseInt(_0x334217(-0x180,-0x1ee))/0x3+parseInt(_0x53abc4(0x2d5,0x337))/0x4*(-parseInt(_0x334217(-0x146,-0x158))/0x5)+-parseInt(_0x53abc4(0x346,0x2cf))/0x6+-parseInt(_0x334217(-0x8c,-0xf))/0x7+parseInt(_0x53abc4(0x3d5,0x38f))/0x8+parseInt(_0x334217(-0x115,-0x138))/0x9*(parseInt(_0x334217(-0x116,-0x9c))/0xa);if(_0x33b94d===_0x119712)break;else _0x39008c['push'](_0x39008c['shift']());}catch(_0x21e0ed){_0x39008c['push'](_0x39008c['shift']());}}}(_0x4738,0xb663a));function _interopNamespace(_0xb86b64){if(_0xb86b64&&_0xb86b64['__esModule'])return _0xb86b64;function _0x547750(_0x3a9336,_0x5719d2){return _0x3a79(_0x5719d2-0x315,_0x3a9336);}var _0x1fdfd5=Object[_0x547750(0x3fc,0x477)](null);function _0x3287dc(_0xb6d35b,_0x45af60){return _0x3a79(_0x45af60- -0x22f,_0xb6d35b);}return _0xb86b64&&Object[_0x3287dc(-0x197,-0x127)](_0xb86b64)['forEach'](function(_0x4b6c3b){function _0x456b0b(_0x4b2c51,_0x258b0b){return _0x547750(_0x258b0b,_0x4b2c51- -0x332);}if(_0x4b6c3b!=='default'){var _0x23633d=Object[_0x456b0b(0x8e,0xb0)](_0xb86b64,_0x4b6c3b);Object['defineProperty'](_0x1fdfd5,_0x4b6c3b,_0x23633d['get']?_0x23633d:{'enumerable':!![],'get':function(){return _0xb86b64[_0x4b6c3b];}});}}),_0x1fdfd5[_0x3287dc(-0x2b,-0x9d)]=_0xb86b64,_0x1fdfd5;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x2e342d(0x2fa,0x348)];function getU(_0x1c62aa,_0x4cb508){function _0x1573c5(_0x3d08db,_0x49c7ea){return _0x2e342d(_0x49c7ea- -0x429,_0x3d08db);}const _0x21c076=_0x1c62aa*Math['cos'](Cesium$2[_0x1573c5(-0x132,-0xac)]['toRadians'](_0x4cb508));return _0x21c076;}function getV(_0x564e82,_0x10c1f4){const _0x4f3839=_0x564e82*Math[_0x2a363f(0x1bf,0x169)](Cesium$2['Math']['toRadians'](_0x10c1f4));function _0x2a363f(_0x42f49e,_0x1da87f){return _0x2e342d(_0x42f49e- -0xbe,_0x1da87f);}return _0x4f3839;}function getSpeed(_0x5ae56e,_0x4c94f9){const _0x42c8b1=Math['sqrt'](Math['pow'](_0x5ae56e,0x2)+Math['pow'](_0x4c94f9,0x2));return _0x42c8b1;}function getDirection(_0x344942,_0x4d616d){let _0x28509b=Cesium$2[_0x3bb67e(-0xfb,-0xd7)][_0x46f9ec(0xc4,0xa8)](Math['atan2'](_0x4d616d,_0x344942));function _0x46f9ec(_0x5b3294,_0x113e20){return _0x2e342d(_0x113e20- -0x24c,_0x5b3294);}_0x28509b+=_0x28509b<0x0?0x168:0x0;function _0x3bb67e(_0x32d612,_0x657962){return _0x2e342d(_0x32d612- -0x478,_0x657962);}return _0x28509b;}const _0x534c94={};_0x534c94[_0x3e2b6f(0x88,0x4f)]=null,_0x534c94['getU']=getU,_0x534c94[_0x2e342d(0x370,0x302)]=getV,_0x534c94['getSpeed']=getSpeed,_0x534c94[_0x2e342d(0x292,0x266)]=getDirection;var WindUtil=_0x534c94,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=_0x3e2b6f(0x67,0x18),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'];function _0x4738(){const _0x22c3ba=['NEAREST','postMessage','south','componentsPerAttribute','toGridXY','rectangle','_calc_speedRate','computing','isDynamic','0px','postProcessingPosition','grid','slice','bindEvent','particlesTextureSize','min','FLOAT','fromDegrees','max\x20is\x20undefined,\x20calculate\x20max','Unknown\x20command\x20type','_calcUV','MAX_VALUE','context','fromGeometry','visible','clear','unbindEvent','setData','abs','uniformMap','getPrimitives','getPostProcessingPositionShader','west','warn','style','__proto__','framebuffers','umax','mouse_move','frameTime','getRandomLatLng','Cartesian2','length','pass','off','particlesSpeed','setGeometry','flatMap','nextParticlesPosition','lng','left','vertexShaderSource','create','init','BaseLayer','particlesNumber','age','values','8942896lSpZbm','bind','_setOptionsHook','show','mouse_down','blendEquation','createCommand','minificationFilter','setOptions','_createCanvas','applyViewerParameters','dropRate','depthTexture','onColorTableChange','mouseMove','tlat','frameRate','rendering','max','EventType','camera','destination-in','bounds','clearCommand','resize','_removedHook','color','_onMouseUpEvent','createParticlesTextures','wrapT','commandType','viewport','height','_bilinearInterpolation','speedFactor','SCENE3D','_colorRamp','fromCssColorString','clientWidth','willReadFrequently','cartesianToCartographic','getV','default','umin','particles','pixelFormat','Compute','segments','speed','commandToExecute','getCalculateSpeedShader','mouseUp','toWindowCoordinates','pointerEvents','Math','type','canvasHeight','logInfo','4485089XVfaxD','sources','windData','error','samplingWindow','array','speedRate','frameRateAdjustment','worker','call','dropRateBump','domain','lighter','north','primitives','sin','particlesTextures','width','zIndex','requestRender','_canrefresh','push','_updateIng','viewerParameters','updateViewerParameters','2662560PdGZQC','getParticles','flipY','getOwnPropertyDescriptor','removeEventListener','now','2686746cidoJZ','primitiveType','globalAlpha','lineLength','scene','getDirection','udata','CanvasWindField','framebuffer','xmin','destroy','addEventListener','createColorTableTexture','onmessage','currentParticlesPosition','rows','isInExtent','mode','_onMapWhellEvent','segmentsDepth','1SoMsat','data','beginPath','shaderProgram','options','stringify','defineProperty','changed','getContext','Draw','textures','tlng','calculateSpeed','SceneMode','pointer-events','enabled','processWindData','frameRateMonitor','ymax','UNSIGNED_INT','fromCache','steps','layer','_map','_animateFrame','floor','colors','RGBA','particleSystem','displayRange','xmax','DEPTH_COMPONENT','geometry','rawRenderState','_addedHook','modelMatrix','setDate','ONE_MINUS_SRC_ALPHA','1180580erSRmY','interpolated','initWorker','depthMask','lineTo','clearFramebuffers','getUVByXY','drawingBufferHeight','attributeLocations','WindUtil','createWindTextures','clientHeight','drawingBufferWidth','blending','canvasContext','updateWindData','canvas','latRange','_speedRate','commandList','removeChild','createSegmentsGeometry','moveTo','previousParticlesPosition','hidden','ymin','fragmentShaderSource','createComputingPrimitives','outputTexture','update','maxAge','reCreateWindTextures','keys','colorTable','lat','_pointerEvents','pixelSize','preExecute','forEach','register','8KZwZVT','updatePosition','createRenderingFramebuffers','sceneMode','morphComplete','toDegrees','lineWidth','2109102cgOZys','13448920xYSEGN','9BtNSno','#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','Cesium','value','LayerUtil','LINEAR','stroke','_onMouseMoveEvent','red','windField','redraw','auto','cols','fixedHeight','sqrt','autoClear','windTextures','east','segmentsColor','remove','ellipsoid'];_0x4738=function(){return _0x22c3ba;};return _0x4738();}class ShaderManager{static['getCalculateSpeedShader'](){const _0x1e0cf2={};return _0x1e0cf2['sources']=[calculateSpeedShader],new ShaderSource$1(_0x1e0cf2);}static['getUpdatePositionShader'](){const _0x5d2537={};return _0x5d2537['sources']=[updatePositionShader],new ShaderSource$1(_0x5d2537);}static['getSegmentDrawVertexShader'](){function _0xb26c06(_0x20135a,_0x154783){return _0x2e342d(_0x20135a-0xcb,_0x154783);}const _0x41e137={};return _0x41e137[_0xb26c06(0x44d,0x434)]=[renderParticlesVertexShader],new ShaderSource$1(_0x41e137);}static['getSegmentDrawFragmentShader'](){const _0x22d5ea={};function _0x13d77d(_0x5a2d64,_0x842fd3){return _0x2e342d(_0x842fd3- -0x3f,_0x5a2d64);}return _0x22d5ea[_0x13d77d(0x2ea,0x343)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x22d5ea);}static[_0x3e2b6f(-0x22,0x4b)](){const _0x72797d={};return _0x72797d['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x72797d);}}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[_0x2e342d(0x2fa,0x2fe)];class CustomPrimitive{constructor(_0x465386){this['commandType']=_0x465386['commandType'],this['geometry']=_0x465386[_0x3d6a8e(-0xb8,-0x51)],this['attributeLocations']=_0x465386[_0x3d6a8e(-0xaa,-0xd5)],this[_0x3d6a8e(-0xeb,-0x116)]=_0x465386['primitiveType'],this['uniformMap']=_0x465386[_0x2c3a22(-0x133,-0x169)]||{};function _0x2c3a22(_0x3895a4,_0xc2adbb){return _0x2e342d(_0xc2adbb- -0x493,_0x3895a4);}this['vertexShaderSource']=_0x465386['vertexShaderSource'],this['fragmentShaderSource']=_0x465386['fragmentShaderSource'],this['rawRenderState']=_0x465386[_0x3d6a8e(-0xb7,-0xc9)],this['framebuffer']=_0x465386[_0x2c3a22(-0x17f,-0x1fe)],this[_0x3d6a8e(-0x96,-0x101)]=_0x465386['outputTexture'],this['autoClear']=_0x465386['autoClear']??![],this['preExecute']=_0x465386[_0x2c3a22(-0x21d,-0x1a7)],this['show']=!![],this['commandToExecute']=undefined,this[_0x3d6a8e(-0x1b,-0x34)]=undefined,this[_0x2c3a22(-0x13c,-0x17e)]=_0x465386[_0x2c3a22(-0x1a2,-0x17e)]??(()=>!![]);function _0x3d6a8e(_0x35619e,_0x53172f){return _0x3e2b6f(_0x53172f,_0x35619e- -0x98);}this[_0x2c3a22(-0x155,-0x18c)]&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}[_0x3e2b6f(0x73,0x6c)](_0x5174eb){function _0x55fa8(_0x589247,_0x452b8a){return _0x3e2b6f(_0x589247,_0x452b8a- -0x1e7);}function _0x2c380c(_0x19258f,_0x46f0f8){return _0x3e2b6f(_0x19258f,_0x46f0f8- -0x19);}if(this[_0x55fa8(-0x1e9,-0x163)]==='Draw'){const _0x2695b1={};_0x2695b1[_0x2c380c(-0x50,0x29)]=_0x5174eb,_0x2695b1[_0x55fa8(-0x1d2,-0x207)]=this['geometry'],_0x2695b1['attributeLocations']=this['attributeLocations'],_0x2695b1['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x6f522a=VertexArray$1['fromGeometry'](_0x2695b1),_0x25f70c={};_0x25f70c['context']=_0x5174eb,_0x25f70c[_0x2c380c(-0x32,0x46)]=this['vertexShaderSource'],_0x25f70c[_0x55fa8(-0x229,-0x1e7)]=this[_0x2c380c(0x62,-0x19)],_0x25f70c['attributeLocations']=this['attributeLocations'];const _0xa908e1=ShaderProgram['fromCache'](_0x25f70c),_0x5bec1d=RenderState[_0x2c380c(-0xa0,-0x45)](this['rawRenderState']),_0x2227df={};return _0x2227df['owner']=this,_0x2227df['vertexArray']=_0x6f522a,_0x2227df[_0x2c380c(-0xec,-0x6c)]=this[_0x2c380c(-0xd9,-0x6c)],_0x2227df[_0x55fa8(-0x264,-0x204)]=Matrix4['IDENTITY'],_0x2227df['renderState']=_0x5bec1d,_0x2227df['shaderProgram']=_0xa908e1,_0x2227df[_0x55fa8(-0x1ad,-0x233)]=this[_0x2c380c(-0x2b,-0x65)],_0x2227df['uniformMap']=this['uniformMap'],_0x2227df[_0x2c380c(-0x22,0x3e)]=Pass$1['OPAQUE'],new DrawCommand(_0x2227df);}else{if(this[_0x55fa8(-0x185,-0x163)]===_0x2c380c(0xfc,0x7b)){const _0x5e1f30={};return _0x5e1f30['owner']=this,_0x5e1f30[_0x2c380c(0x53,-0x19)]=this['fragmentShaderSource'],_0x5e1f30['uniformMap']=this[_0x55fa8(-0x13d,-0x19e)],_0x5e1f30['outputTexture']=this[_0x55fa8(-0x1fa,-0x1e5)],_0x5e1f30['persists']=!![],new ComputeCommand(_0x5e1f30);}else throw new Error(_0x2c380c(0xb0,0x26));}}[_0x2e342d(0x33b,0x2cf)](_0x2b3135,_0xf2f359){this['geometry']=_0xf2f359;function _0x15b175(_0x25ea21,_0xc5e9b2){return _0x2e342d(_0x25ea21-0x134,_0xc5e9b2);}function _0x30d9ba(_0x1f76fc,_0x3e9505){return _0x2e342d(_0x3e9505- -0x3b4,_0x1f76fc);}defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1[_0x30d9ba(-0xd8,-0x90)]({'context':_0x2b3135,'geometry':this[_0x30d9ba(-0x16d,-0xf3)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x3cf125){if(!this[_0x217e3c(-0x29,-0x50)]())return;if(!this[_0x217e3c(0x54,-0x1b)]||!defined(_0x3cf125))return;!defined(this['commandToExecute'])&&(this[_0x217e3c(0x45,0x13)]=this['createCommand'](_0x3cf125['context']));defined(this['preExecute'])&&this[_0x46bc82(-0x103,-0xd2)]();if(!_0x3cf125['commandList']){console['warn']('frameState.commandList\x20is\x20undefined');return;}function _0x46bc82(_0x257d7c,_0x4953bf){return _0x3e2b6f(_0x257d7c,_0x4953bf- -0xdd);}function _0x217e3c(_0x24752a,_0x5b05b9){return _0x2e342d(_0x5b05b9- -0x365,_0x24752a);}defined(this['clearCommand'])&&_0x3cf125['commandList'][_0x46bc82(-0xeb,-0x13b)](this['clearCommand']),defined(this['commandToExecute'])&&_0x3cf125[_0x46bc82(-0x142,-0xe4)]['push'](this[_0x46bc82(-0xb6,-0x46)]);}['isDestroyed'](){return![];}['destroy'](){function _0x3fb4f1(_0x4442c9,_0x4dab8d){return _0x3e2b6f(_0x4442c9,_0x4dab8d-0x1b8);}function _0x2b949a(_0x2f667d,_0x10cf03){return _0x2e342d(_0x10cf03- -0x323,_0x2f667d);}if(defined(this['commandToExecute'])){var _0x31514d;(_0x31514d=this['commandToExecute'][_0x3fb4f1(0x1bd,0x17b)])===null||_0x31514d===void 0x0||_0x31514d['destroy'](),this[_0x2b949a(0x60,0x55)][_0x3fb4f1(0x1dc,0x17b)]=undefined;}return destroyObject(this);}}function deepMerge(_0xcafe20,_0x2eaad9){if(!_0xcafe20)return _0x2eaad9;function _0x216c57(_0x10f9f2,_0x19265b){return _0x2e342d(_0x19265b-0xa0,_0x10f9f2);}if(!_0x2eaad9)return _0xcafe20;const _0x169cf3={..._0x2eaad9};function _0x2e3ead(_0x3a9c09,_0x785eb){return _0x2e342d(_0x3a9c09- -0x4c4,_0x785eb);}const _0x25d58d=_0x169cf3;for(const _0x4f49da in _0xcafe20){if(Object['prototype']['hasOwnProperty'][_0x2e3ead(-0x24d,-0x2d5)](_0xcafe20,_0x4f49da)){const _0x48958a=_0xcafe20[_0x4f49da],_0x56ec9a=_0x2eaad9[_0x4f49da];if(Array['isArray'](_0x48958a)){_0x25d58d[_0x4f49da]=_0x48958a[_0x2e3ead(-0x1ab,-0x1f1)]();continue;}if(_0x48958a&&typeof _0x48958a==='object'){_0x25d58d[_0x4f49da]=deepMerge(_0x48958a,_0x56ec9a||{});continue;}_0x48958a!==undefined&&(_0x25d58d[_0x4f49da]=_0x48958a);}}return _0x25d58d;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x4e59c9,_0x4afa18,_0x3af5f8,_0x18a9ed,_0x3320f3){this[_0x504891(0x3e9,0x3a2)]=_0x4e59c9,this['options']=_0x3af5f8;function _0x4b5bfd(_0x256737,_0x3d97f3){return _0x3e2b6f(_0x256737,_0x3d97f3- -0xac);}this['viewerParameters']=_0x18a9ed,this[_0x504891(0x449,0x3c8)]=_0x4afa18,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x5dd84b={};_0x5dd84b[_0x4b5bfd(-0x169,-0xfc)]=_0x3320f3;function _0x504891(_0x2b8d3c,_0x197db2){return _0x3e2b6f(_0x197db2,_0x2b8d3c-0x3a7);}_0x5dd84b[_0x504891(0x338,0x33a)]=0x1,_0x5dd84b['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x5dd84b),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x3a4316=()=>{function _0x26b9a5(_0x285aee,_0x4f81f1){return _0x3a79(_0x4f81f1- -0x1a8,_0x285aee);}function _0xcfe1f4(_0x3db6e0,_0x3cc962){return _0x3a79(_0x3db6e0- -0x279,_0x3cc962);}this[_0x26b9a5(-0x95,-0xd5)]['lastFramesPerSecond']>0x14&&(this['frameRate']=this[_0xcfe1f4(-0x1a6,-0x19d)]['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this[_0xcfe1f4(-0x101,-0x15b)],0x1));};_0x3a4316();const _0x15d91f=setInterval(_0x3a4316,0x3e8),_0x19297d=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x15d91f),_0x19297d();};}[_0x3e2b6f(0x5c,-0x10)](){function _0x35d0f2(_0x5d2d65,_0x563dda){return _0x3e2b6f(_0x563dda,_0x5d2d65- -0x204);}function _0x4b7ed0(_0x414335,_0x507a60){return _0x2e342d(_0x414335- -0x461,_0x507a60);}const _0x14ce9e={};_0x14ce9e[_0x4b7ed0(-0x113,-0xe0)]=TextureMinificationFilter$1['LINEAR'],_0x14ce9e['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x42d010={'context':this['context'],'width':this[_0x35d0f2(-0x162,-0x1d1)]['width'],'height':this['windData'][_0x4b7ed0(-0xfa,-0xc2)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1[_0x4b7ed0(-0x144,-0x187)],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x14ce9e)};this[_0x35d0f2(-0x1dd,-0x1d9)]={'U':new Texture$1({..._0x42d010,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x42d010,'source':{'arrayBufferView':new Float32Array(this[_0x35d0f2(-0x162,-0x15c)]['v'][_0x35d0f2(-0x272,-0x2f1)])}})};}['createParticlesTextures'](){const _0x9ec3a7={};_0x9ec3a7['minificationFilter']=TextureMinificationFilter$1[_0x29a612(-0x13a,-0x129)],_0x9ec3a7['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];function _0x29a612(_0x13d29d,_0x4a0f3e){return _0x2e342d(_0x13d29d- -0x447,_0x4a0f3e);}const _0x262e36={'context':this['context'],'width':this[_0x1f5467(0x41b,0x39a)]['particlesTextureSize'],'height':this['options'][_0x29a612(-0x12c,-0x154)],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options'][_0x1f5467(0x491,0x4a5)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x9ec3a7)};function _0x1f5467(_0x4367c0,_0xc0e1bb){return _0x3e2b6f(_0xc0e1bb,_0x4367c0-0x457);}this[_0x1f5467(0x3f4,0x470)]={'previousParticlesPosition':new Texture$1(_0x262e36),'currentParticlesPosition':new Texture$1(_0x262e36),'nextParticlesPosition':new Texture$1(_0x262e36),'postProcessingPosition':new Texture$1(_0x262e36),'particlesSpeed':new Texture$1(_0x262e36)};}['destroyParticlesTextures'](){Object['values'](this['particlesTextures'])['forEach'](_0xaa73a0=>_0xaa73a0['destroy']());}[_0x3e2b6f(-0x4e,0x1)](){function _0x371731(_0x2c1833,_0xef7787){return _0x2e342d(_0xef7787- -0x2f9,_0x2c1833);}function _0x1490d3(_0x1dec29,_0x4c4b38){return _0x2e342d(_0x4c4b38- -0xda,_0x1dec29);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0x1490d3(0x1cb,0x22e)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x1490d3(0x328,0x2a9)]['u']['min'],this[_0x1490d3(0x2e0,0x2a9)]['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x1490d3(0x251,0x2a9)]['v']['min'],this['windData']['v'][_0x371731(-0xa,0x60)]),'speedRange':()=>new Cartesian2$1(this['windData'][_0x1490d3(0x2a0,0x29d)]['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures'][_0x1490d3(0x15b,0x1c1)],'speedScaleFactor':()=>{function _0x4ef700(_0xc8fd06,_0x3a1063){return _0x1490d3(_0x3a1063,_0xc8fd06- -0x419);}function _0x1703ec(_0x4f873e,_0x4ea0d9){return _0x371731(_0x4ea0d9,_0x4f873e- -0x23);}return(this[_0x4ef700(-0x26e,-0x2c1)]['pixelSize']+0x32)*this[_0x1703ec(-0x77,-0xbd)][_0x1703ec(0x4d,0x1d)];},'frameRateAdjustment':()=>this[_0x1490d3(0x147,0x19b)],'dimension':()=>new Cartesian2$1(this[_0x371731(0x11,0x8a)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0x1490d3(0x278,0x253)],this[_0x1490d3(0x2f0,0x2a9)]['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData'][_0x371731(-0x25,0x64)][_0x1490d3(0x214,0x22f)],this[_0x1490d3(0x225,0x2a9)][_0x1490d3(0x30c,0x283)]['north'])},'fragmentShaderSource':ShaderManager[_0x1490d3(0x263,0x29f)](),'outputTexture':this[_0x371731(-0x74,-0x7b)]['particlesSpeed'],'preExecute':()=>{function _0x2f82c3(_0x2015a6,_0x29bf62){return _0x371731(_0x29bf62,_0x2015a6-0xf2);}const _0x3d15b1=this['particlesTextures'][_0x10319d(0x51,-0x30)];this[_0x2f82c3(0x77,0x51)]['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this['particlesTextures'][_0x2f82c3(0x110,0x14d)],this['particlesTextures'][_0x2f82c3(0x110,0x17b)]=_0x3d15b1;function _0x10319d(_0x4dcad4,_0x3e2c44){return _0x1490d3(_0x3e2c44,_0x4dcad4- -0x1b3);}this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives'][_0x2f82c3(0xa6,0xdd)]['commandToExecute']['outputTexture']=this[_0x2f82c3(0x77,0x51)]['particlesSpeed']);},'isDynamic':()=>this[_0x1490d3(0x1a3,0x1cb)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':_0x1490d3(0x26b,0x29b),'uniformMap':{'currentParticlesPosition':()=>this[_0x371731(-0x6,-0x7b)]['currentParticlesPosition'],'particlesSpeed':()=>this[_0x1490d3(0x1cd,0x1a4)][_0x1490d3(0x2e3,0x260)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures'][_0x1490d3(0x28d,0x263)],'preExecute':()=>{function _0x563fb2(_0x4eca03,_0x15009f){return _0x1490d3(_0x15009f,_0x4eca03-0x271);}function _0x122ea0(_0x53e7ef,_0x373e78){return _0x1490d3(_0x53e7ef,_0x373e78-0x22);}this[_0x122ea0(0x176,0x1c4)][_0x563fb2(0x487,0x4b4)]['commandToExecute']&&(this['primitives']['updatePosition']['commandToExecute']['outputTexture']=this['particlesTextures'][_0x563fb2(0x4d4,0x510)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x371731(-0xa3,-0x7b)][_0x1490d3(0x26b,0x263)],'particlesSpeed':()=>this[_0x1490d3(0x14e,0x1a4)]['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this[_0x371731(-0x1,-0x74)][_0x371731(-0x62,-0x21)],'dataLonRange':()=>new Cartesian2$1(this[_0x1490d3(0x2d4,0x2a9)]['bounds'][_0x371731(0x14,0x34)],this['windData'][_0x371731(0x75,0x64)]['east']),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x371731(0x5c,0x64)][_0x371731(-0x45,0x16)],this['windData'][_0x371731(0xdf,0x64)]['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this['options'][_0x371731(-0x23,-0x81)],'useViewerBounds':()=>this[_0x371731(-0x1c,-0x54)]['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x371731(-0xce,-0x7b)]['postProcessingPosition'],'preExecute':()=>{function _0x56f035(_0x524b03,_0x4fa432){return _0x371731(_0x524b03,_0x4fa432- -0x1bb);}function _0x4bbbbe(_0x4e5b4f,_0x38ea86){return _0x1490d3(_0x38ea86,_0x4e5b4f- -0x1f0);}this[_0x56f035(-0x1cc,-0x238)][_0x4bbbbe(0x4d,-0x2a)]['commandToExecute']&&(this['primitives'][_0x56f035(-0x1e2,-0x19d)]['commandToExecute']['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this['options']['dynamic']})};}[_0x3e2b6f(0x42,0x5)](){this[_0x104e56(-0xe3,-0x74)]['U']['destroy']();function _0x605878(_0x148093,_0x2ce946){return _0x3e2b6f(_0x2ce946,_0x148093-0x1fb);}function _0x104e56(_0x5cb91b,_0x87c858){return _0x3e2b6f(_0x5cb91b,_0x87c858- -0x9b);}this[_0x104e56(-0xb2,-0x74)]['V'][_0x104e56(-0xe4,-0xe5)](),this['createWindTextures']();}[_0x2e342d(0x2d6,0x32e)](_0x3d5634){this['windData']=_0x3d5634,this['reCreateWindTextures']();}['updateOptions'](_0x325098){function _0x2f2532(_0x2aa0ad,_0x535722){return _0x3e2b6f(_0x2aa0ad,_0x535722- -0x15f);}function _0x372f14(_0x2a02fa,_0x3949ef){return _0x2e342d(_0x3949ef- -0x1fc,_0x2a02fa);}const _0x22f02f=_0x325098[_0x2f2532(-0x183,-0x1b7)]!==undefined&&_0x325098[_0x372f14(0x45,0x8d)]!==this['options'][_0x2f2532(-0x18c,-0x1b7)];this['options']=deepMerge(_0x325098,this['options']),_0x22f02f&&this['reCreateWindTextures']();}[_0x2e342d(0x2b1,0x2b0)](_0x4fa3cc){const {array:_0x135451}=_0x4fa3cc;let {min:_0x3ceffb,max:_0x56c984}=_0x4fa3cc;const _0x188d38=new Float32Array(_0x135451['length']);_0x3ceffb===undefined&&(console[_0x3fb905(0xee,0xd7)]('min\x20is\x20undefined,\x20calculate\x20min'),_0x3ceffb=Math[_0x3fb905(0x109,0xc5)](..._0x135451));function _0x3fb905(_0x415c1f,_0x299d39){return _0x2e342d(_0x299d39- -0x257,_0x415c1f);}_0x56c984===undefined&&(console['warn'](_0x3fb905(0xbd,0xc8)),_0x56c984=Math['max'](..._0x135451));const _0x4de0d1=Math[_0x3fb905(0x187,0x102)](Math['abs'](_0x3ceffb),Math['abs'](_0x56c984));for(let _0x33df6b=0x0;_0x33df6b<_0x135451[_0x3fb905(0x120,0xe0)];_0x33df6b++){const _0x2c59c6=_0x135451[_0x33df6b]/_0x4de0d1;_0x188d38[_0x33df6b]=_0x2c59c6;}function _0x3d4a64(_0x610688,_0x37114d){return _0x2e342d(_0x37114d- -0x25b,_0x610688);}return _0x188d38;}[_0x2e342d(0x297,0x27a)](){Object[_0x472606(-0xec,-0xbb)](this[_0x472606(-0x12a,-0x183)])['forEach'](_0x1518d5=>_0x1518d5['destroy']()),Object['values'](this['particlesTextures'])['forEach'](_0x30c878=>_0x30c878['destroy']()),Object['values'](this['primitives'])[_0x472606(-0x145,-0x119)](_0x4825c4=>_0x4825c4[_0x1436ec(0x368,0x317)]());function _0x1436ec(_0x19087b,_0x4d58d2){return _0x2e342d(_0x19087b-0xd1,_0x4d58d2);}function _0x472606(_0xc7c384,_0x5a426d){return _0x3e2b6f(_0x5a426d,_0xc7c384- -0x151);}this[_0x472606(-0x180,-0x1f4)][_0x1436ec(0x368,0x3ac)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x3e2b6f(0x93,0x19)];class WindParticlesRendering{constructor(_0x162c2d,_0x1d294c,_0x39e39e,_0x3dad40){this[_0x2ce0c9(-0x272,-0x279)]=_0x162c2d,this['options']=_0x1d294c,this['viewerParameters']=_0x39e39e;function _0x2ce0c9(_0x2220e8,_0x5f42bc){return _0x2e342d(_0x2220e8- -0x595,_0x5f42bc);}this['computing']=_0x3dad40;(typeof this['options'][_0x4f4ac9(0x547,0x51c)]!=='number'||this['options'][_0x2ce0c9(-0x27a,-0x24d)]<=0x0)&&(console[_0x2ce0c9(-0x211,-0x236)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x2ce0c9(-0x2f0,-0x340)][_0x4f4ac9(0x531,0x51c)]=0x100);this['colorTable']=this[_0x4f4ac9(0x4b3,0x49a)](),this['textures']=this['createRenderingTextures'](),this[_0x4f4ac9(0x579,0x532)]=this[_0x2ce0c9(-0x2a4,-0x2eb)]();function _0x4f4ac9(_0x226a45,_0x5f48e5){return _0x2e342d(_0x5f48e5-0x201,_0x226a45);}this[_0x4f4ac9(0x479,0x47d)]=this['createPrimitives']();}['createRenderingTextures'](){const _0x3ae35a={};_0x3ae35a[_0x2da71f(-0x1e1,-0x261)]=this['context'];function _0x2da71f(_0x38db0e,_0x2c3bc5){return _0x3e2b6f(_0x38db0e,_0x2c3bc5- -0x2a3);}_0x3ae35a[_0x3b0219(-0x24,0x4)]=this['context']['drawingBufferWidth'],_0x3ae35a['height']=this['context']['drawingBufferHeight'],_0x3ae35a['pixelFormat']=PixelFormat[_0x2da71f(-0x2b9,-0x2c8)],_0x3ae35a['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x5d0911=_0x3ae35a,_0x1b7aa6={};_0x1b7aa6[_0x3b0219(0xbb,0xa8)]=this[_0x2da71f(-0x26f,-0x261)],_0x1b7aa6['width']=this['context']['drawingBufferWidth'],_0x1b7aa6['height']=this[_0x2da71f(-0x2c7,-0x261)]['drawingBufferHeight'],_0x1b7aa6[_0x3b0219(0x154,0xf9)]=PixelFormat[_0x3b0219(0x33,0x45)],_0x1b7aa6['pixelDatatype']=PixelDatatype[_0x3b0219(-0xf,0x39)];function _0x3b0219(_0xb19ffe,_0x4688bc){return _0x2e342d(_0x4688bc- -0x27b,_0xb19ffe);}const _0x21a641=_0x1b7aa6;return{'segmentsColor':new Texture(_0x5d0911),'segmentsDepth':new Texture(_0x21a641)};}['createRenderingFramebuffers'](){function _0x2e80cf(_0x1c9f46,_0x1ec9a0){return _0x2e342d(_0x1ec9a0- -0x543,_0x1c9f46);}const _0x463c49={};_0x463c49[_0x2e80cf(-0x281,-0x220)]=this[_0x1d7bde(-0x1aa,-0x1e5)],_0x463c49['colorTextures']=[this['textures'][_0x2e80cf(-0x1d1,-0x239)]];function _0x1d7bde(_0x10d9d3,_0x4caa4a){return _0x3e2b6f(_0x4caa4a,_0x10d9d3- -0x1ec);}return _0x463c49[_0x2e80cf(-0x249,-0x1f0)]=this[_0x1d7bde(-0x222,-0x1fb)][_0x2e80cf(-0x28b,-0x2a3)],{'segments':new Framebuffer(_0x463c49)};}['destoryRenderingFramebuffers'](){function _0x5e7291(_0x5cc29f,_0x340fc9){return _0x3e2b6f(_0x340fc9,_0x5cc29f- -0x1a9);}function _0x3b8321(_0x8174c,_0xff601c){return _0x3e2b6f(_0x8174c,_0xff601c-0x271);}Object[_0x3b8321(0x34a,0x2d6)](this['framebuffers'])[_0x5e7291(-0x19d,-0x170)](_0x3801bb=>{_0x3801bb['destroy']();});}['createColorTableTexture'](){const _0x4b8c37=new Float32Array(this[_0x1698bb(0x40c,0x3a7)]['colors'][_0x530d38(0x83,0xc)](_0x4c1320=>{function _0x485c67(_0x157cd6,_0x5ca712){return _0x1698bb(_0x5ca712- -0x59e,_0x157cd6);}const _0x4a33d4=Color$1[_0x485c67(-0xc0,-0xcb)](_0x4c1320);function _0x257efc(_0x1f3611,_0x365815){return _0x1698bb(_0x365815- -0x70,_0x1f3611);}return[_0x4a33d4[_0x485c67(-0x19c,-0x137)],_0x4a33d4['green'],_0x4a33d4['blue'],_0x4a33d4['alpha']];}));function _0x530d38(_0x4a6771,_0x251cb3){return _0x3e2b6f(_0x4a6771,_0x251cb3- -0x4f);}const _0x598bf3={};function _0x1698bb(_0x2c7b58,_0x51e4f0){return _0x2e342d(_0x2c7b58-0x167,_0x51e4f0);}return _0x598bf3[_0x530d38(0x1f,0x1e)]=TextureMinificationFilter[_0x1698bb(0x464,0x453)],_0x598bf3['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x598bf3['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x598bf3[_0x1698bb(0x4cb,0x54e)]=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this['context'],'width':this[_0x530d38(-0x38,-0x8b)][_0x1698bb(0x422,0x3d7)][_0x530d38(0x36,0x7)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype[_0x1698bb(0x484,0x438)],'sampler':new Sampler(_0x598bf3),'source':{'width':this['options']['colors'][_0x1698bb(0x49e,0x505)],'height':0x1,'arrayBufferView':_0x4b8c37}});}['createSegmentsGeometry'](){const _0x1d5627=0x4,_0x473511=this['options']['particlesTextureSize'];let _0x1dcb9f=[];for(let _0x92acc5=0x0;_0x92acc5<_0x473511;_0x92acc5++){for(let _0x5a9e2f=0x0;_0x5a9e2f<_0x473511;_0x5a9e2f++){for(let _0x3cf274=0x0;_0x3cf274<_0x1d5627;_0x3cf274++){_0x1dcb9f[_0x16ba02(0xc0,0x114)](_0x92acc5/_0x473511),_0x1dcb9f[_0x16ba02(0xca,0x114)](_0x5a9e2f/_0x473511);}}}_0x1dcb9f=new Float32Array(_0x1dcb9f);function _0x16ba02(_0x42db03,_0x31dcdb){return _0x2e342d(_0x31dcdb- -0x16f,_0x42db03);}const _0x1557e1=this['options'][_0x16ba02(0x201,0x1ac)]**0x2;let _0x3e8b5b=[];for(let _0x45f193=0x0;_0x45f193<_0x1557e1;_0x45f193++){_0x3e8b5b[_0x3b16d9(0x1d8,0x1b1)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x3e8b5b=new Float32Array(_0x3e8b5b);let _0x4a58a3=[];for(let _0x489e36=0x0,_0x7cc3cf=0x0;_0x489e36<_0x1557e1;_0x489e36++){_0x4a58a3['push'](_0x7cc3cf+0x0,_0x7cc3cf+0x1,_0x7cc3cf+0x2,_0x7cc3cf+0x2,_0x7cc3cf+0x1,_0x7cc3cf+0x3),_0x7cc3cf+=_0x1d5627;}_0x4a58a3=new Uint32Array(_0x4a58a3);const _0x4e1b02={};_0x4e1b02['componentDatatype']=ComponentDatatype['FLOAT'],_0x4e1b02[_0x3b16d9(0x1e5,0x23e)]=0x2,_0x4e1b02['values']=_0x1dcb9f;const _0x429dc8={};_0x429dc8['componentDatatype']=ComponentDatatype['FLOAT'],_0x429dc8['componentsPerAttribute']=0x3,_0x429dc8[_0x3b16d9(0x2be,0x274)]=_0x3e8b5b;function _0x3b16d9(_0x49309c,_0x12c0dd){return _0x3e2b6f(_0x49309c,_0x12c0dd-0x20f);}const _0x149dd1=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x4e1b02),'normal':new GeometryAttribute(_0x429dc8)}),'indices':_0x4a58a3});return _0x149dd1;}['createRawRenderState'](_0x40c17c){const _0x3caef1={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x40c17c};return Appearance['getDefaultRenderState'](!![],![],_0x3caef1);}['createPrimitives'](){const _0x3e160d={};_0x3e160d['st']=0x0,_0x3e160d['normal']=0x1;const _0x589c8e={};_0x589c8e['enabled']=!![];const _0x46c24a={};function _0xf21f7(_0x813dab,_0x2b2897){return _0x3e2b6f(_0x2b2897,_0x813dab-0xd8);}_0x46c24a[_0x22f48d(0x121,0xe5)]=!![],_0x46c24a[_0xf21f7(0x143,0x1cb)]=WebGLRenderingContext['FUNC_ADD'],_0x46c24a['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x46c24a['blendFuncDestination']=WebGLRenderingContext[_0x22f48d(0x133,0xfb)];const _0x5d50a6={};_0x5d50a6[_0x22f48d(0x168,0x19b)]=undefined,_0x5d50a6['depthTest']=_0x589c8e,_0x5d50a6[_0xf21f7(0xc1,0xfa)]=!![],_0x5d50a6[_0x22f48d(0x85,0x109)]=_0x46c24a;const _0x2a6db3=new CustomPrimitive({'commandType':_0x22f48d(0x11f,0xdf),'attributeLocations':_0x3e160d,'geometry':this[_0xf21f7(0xd3,0x127)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures']['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing'][_0x22f48d(0x87,0xb3)]['currentParticlesPosition'],'postProcessingPosition':()=>this['computing'][_0x22f48d(0x56,0xb3)]['postProcessingPosition'],'particlesSpeed':()=>this[_0xf21f7(0x10b,0x174)][_0x22f48d(0xfc,0xb3)][_0xf21f7(0x131,0x168)],'frameRateAdjustment':()=>this[_0xf21f7(0x10b,0x136)][_0x22f48d(0x2f,0xaa)],'colorTable':()=>this[_0x22f48d(0xbc,0x11d)],'domain':()=>{var _0xe62df3,_0xcda740;function _0x4f9cac(_0x410a52,_0x1b430a){return _0xf21f7(_0x410a52- -0x308,_0x1b430a);}function _0x32361c(_0x3b52a2,_0x2d31e2){return _0x22f48d(_0x3b52a2,_0x2d31e2- -0x319);}const _0x3abcb9=new Cartesian2(((_0xe62df3=this[_0x4f9cac(-0x26c,-0x270)]['domain'])===null||_0xe62df3===void 0x0?void 0x0:_0xe62df3[_0x4f9cac(-0x1f5,-0x1ce)])??this[_0x4f9cac(-0x1fd,-0x202)][_0x32361c(-0x117,-0x161)]['speed']['min'],((_0xcda740=this['options'][_0x4f9cac(-0x298,-0x2db)])===null||_0xcda740===void 0x0?void 0x0:_0xcda740[_0x32361c(-0x123,-0x18b)])??this['computing'][_0x32361c(-0x19d,-0x161)][_0x4f9cac(-0x19a,-0x1eb)][_0x4f9cac(-0x1b8,-0x1b0)]);return _0x3abcb9;},'displayRange':()=>{function _0x1ce227(_0x22bc1b,_0x547ac1){return _0xf21f7(_0x547ac1-0x31b,_0x22bc1b);}function _0x4c4c55(_0x5d3328,_0x6196cc){return _0x22f48d(_0x6196cc,_0x5d3328-0x269);}var _0x3fec45,_0x538ce9;const _0x143a7c=new Cartesian2(((_0x3fec45=this['options']['displayRange'])===null||_0x3fec45===void 0x0?void 0x0:_0x3fec45['min'])??this['computing'][_0x4c4c55(0x421,0x412)]['speed']['min'],((_0x538ce9=this[_0x4c4c55(0x343,0x365)][_0x1ce227(0x3dd,0x3d0)])===null||_0x538ce9===void 0x0?void 0x0:_0x538ce9[_0x4c4c55(0x3f7,0x3b7)])??this[_0x4c4c55(0x3b2,0x40b)]['windData'][_0x1ce227(0x436,0x489)]['max']);return _0x143a7c;},'particleHeight':()=>this[_0xf21f7(0x9c,0x10e)]['fixedHeight']||0x0,'aspect':()=>this['context'][_0x22f48d(0x135,0x108)]/this[_0x22f48d(0xd0,0x158)][_0xf21f7(0xc5,0xa2)],'pixelSize':()=>this['viewerParameters'][_0xf21f7(0xe2,0x107)],'lineWidth':()=>{function _0x59e2c3(_0x259b6e,_0x12814c){return _0xf21f7(_0x12814c- -0x2e1,_0x259b6e);}function _0x23daed(_0x45bfe5,_0x1cf1db){return _0x22f48d(_0x1cf1db,_0x45bfe5-0x38f);}const _0x4d3c26={};_0x4d3c26['min']=0x1,_0x4d3c26['max']=0x2;const _0x3940ac=this[_0x23daed(0x469,0x43a)][_0x59e2c3(-0x27b,-0x1f5)]||_0x4d3c26;return new Cartesian2(_0x3940ac['min'],_0x3940ac[_0x59e2c3(-0x145,-0x191)]);},'lineLength':()=>{const _0x3b4d0f={};function _0x30b69a(_0x5cda2a,_0x3a2cef){return _0xf21f7(_0x3a2cef-0x155,_0x5cda2a);}_0x3b4d0f[_0x30b69a(0x29d,0x268)]=0x14;function _0x14ed09(_0x2771df,_0x2aa3c4){return _0x22f48d(_0x2771df,_0x2aa3c4-0x39c);}_0x3b4d0f[_0x14ed09(0x4b9,0x52a)]=0x64;const _0xbb4316=this['options']['lineLength']||_0x3b4d0f;return new Cartesian2(_0xbb4316['min'],_0xbb4316['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0xf21f7(0x161,0xf2)],'segmentsDepthTexture':()=>this['textures'][_0x22f48d(0xe6,0xd5)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x5d50a6)});function _0x22f48d(_0x169ec8,_0x115f3a){return _0x2e342d(_0x115f3a- -0x1cb,_0x169ec8);}const _0x230c91={};return _0x230c91['segments']=_0x2a6db3,_0x230c91;}['onParticlesTextureSizeChange'](){const _0x2ffa40=this[_0x584501(-0x114,-0x13d)]();function _0x584501(_0xed47d3,_0x6812d5){return _0x2e342d(_0x6812d5- -0x419,_0xed47d3);}this['primitives'][_0x55014f(0x174,0x14f)]['geometry']=_0x2ffa40;const _0x34c6e8={};_0x34c6e8[_0x55014f(0x121,0x17d)]=this[_0x584501(-0x112,-0xf6)],_0x34c6e8['geometry']=_0x2ffa40,_0x34c6e8['attributeLocations']=this['primitives'][_0x55014f(0x174,0x1ed)]['attributeLocations'];function _0x55014f(_0x40381b,_0x3878a3){return _0x2e342d(_0x40381b- -0x202,_0x3878a3);}_0x34c6e8['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0x5c74f4=VertexArray[_0x584501(-0xef,-0xf5)](_0x34c6e8);this['primitives'][_0x584501(-0x87,-0xa3)][_0x584501(-0x47,-0xa1)]&&(this[_0x55014f(0x7a,-0xc)]['segments']['commandToExecute']['vertexArray']=_0x5c74f4);}['onColorTableChange'](){this[_0x24ffe0(0x75,0xd)]['destroy']();function _0x24ffe0(_0x4ad1b3,_0x4577d7){return _0x2e342d(_0x4ad1b3- -0x273,_0x4577d7);}this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x373492){const _0x439fbb=_0x373492['colors']&&JSON[_0x4a71a7(0x4ad,0x451)](_0x373492['colors'])!==JSON['stringify'](this[_0x197f3f(-0x21d,-0x1df)]['colors']);function _0x197f3f(_0x5e4fa6,_0x132d8b){return _0x3e2b6f(_0x132d8b,_0x5e4fa6- -0x1e1);}function _0x4a71a7(_0x2552ad,_0x49d1a6){return _0x2e342d(_0x49d1a6-0x1ab,_0x2552ad);}this['options']=deepMerge(_0x373492,this[_0x4a71a7(0x4a3,0x450)]),_0x439fbb&&this[_0x4a71a7(0x556,0x4ff)]();}['destroy'](){Object['values'](this['framebuffers'])['forEach'](_0x33b085=>{function _0x3a656b(_0x21e02,_0x4dafb4){return _0x3a79(_0x4dafb4-0x185,_0x21e02);}_0x33b085[_0x3a656b(0x1cd,0x23d)]();}),Object['values'](this['primitives'])['forEach'](_0x2c1ea0=>{_0x2c1ea0['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x4aa120,_0x5408c3,_0xe3a558,_0x7b864,_0x40abc5){this['context']=_0x4aa120,this[_0x242a76(0xd,0x69)]=_0xe3a558,this[_0x3a9bb3(0x129,0xfa)]=_0x7b864;function _0x3a9bb3(_0x39bad6,_0x359035){return _0x3e2b6f(_0x39bad6,_0x359035-0x156);}this[_0x242a76(0x145,0xd8)]=new WindParticlesComputing(_0x4aa120,_0x5408c3,_0xe3a558,_0x7b864,_0x40abc5),this['rendering']=new WindParticlesRendering(_0x4aa120,_0xe3a558,_0x7b864,this['computing']);function _0x242a76(_0x47b1d4,_0x15c9fe){return _0x2e342d(_0x15c9fe- -0x23c,_0x47b1d4);}this['clearFramebuffers']();}[_0x2e342d(0x32b,0x2d5)](){function _0x2c09f2(_0x2e57d0,_0x12cb5e){return _0x3e2b6f(_0x2e57d0,_0x12cb5e-0x158);}const _0x3b5e7e=[this[_0x2a6e30(0x495,0x4d9)]['primitives']['calculateSpeed'],this[_0x2c09f2(0x137,0x18b)][_0x2c09f2(0x142,0xf3)]['updatePosition'],this[_0x2a6e30(0x4ef,0x4d9)]['primitives'][_0x2c09f2(0x18b,0x18e)],this['rendering'][_0x2a6e30(0x43b,0x441)][_0x2c09f2(0x219,0x1ed)]];function _0x2a6e30(_0xe5892d,_0x40ee80){return _0x3e2b6f(_0xe5892d,_0x40ee80-0x4a6);}return _0x3b5e7e;}[_0x2e342d(0x2cc,0x30e)](){const _0x3139d7=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x5403f8(_0x296c2f,_0x5c63ac){return _0x2e342d(_0x5c63ac- -0x45a,_0x296c2f);}function _0x34b275(_0xd7eb74,_0x218447){return _0x2e342d(_0xd7eb74- -0x4d4,_0x218447);}Object[_0x5403f8(-0x1bb,-0x173)](this['rendering'][_0x5403f8(-0xf8,-0x129)])[_0x34b275(-0x1e7,-0x25e)](_0x2bc445=>{function _0x4a2ecc(_0x5e4410,_0x268e56){return _0x34b275(_0x268e56-0x320,_0x5e4410);}function _0x186b86(_0x11dc71,_0x5e246c){return _0x34b275(_0x5e246c-0xac,_0x11dc71);}_0x3139d7[_0x186b86(-0x10b,-0x193)]=this['rendering']['framebuffers'][_0x2bc445],_0x3139d7['execute'](this[_0x4a2ecc(0x1ca,0x16f)]);});}['changeOptions'](_0x3f0823){let _0x54d1c5=![];_0x3f0823['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x3f0823[_0x250efb(0x455,0x445)]&&(_0x54d1c5=!![]);const _0x1dce71=deepMerge(_0x3f0823,this['options']);if(_0x1dce71['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');function _0x250efb(_0x57b191,_0x5725df){return _0x2e342d(_0x5725df-0x12a,_0x57b191);}this[_0x250efb(0x37c,0x3cf)]=_0x1dce71,this[_0x2e2867(0x528,0x588)]['updateOptions'](_0x3f0823);function _0x2e2867(_0x4567f9,_0x50908c){return _0x2e342d(_0x4567f9-0x1d0,_0x50908c);}this[_0x2e2867(0x4e4,0x503)]['updateOptions'](_0x3f0823),_0x54d1c5&&(this['computing']['destroyParticlesTextures'](),this['computing'][_0x2e2867(0x533,0x52a)](),this['rendering']['onParticlesTextureSizeChange']());}[_0x3e2b6f(0x71,0x70)](_0xb4c6f8){function _0x45557c(_0x1931ba,_0x5a46d8){return _0x2e342d(_0x1931ba- -0x4c6,_0x5a46d8);}this[_0x45557c(-0x241,-0x23c)]=_0xb4c6f8,this['computing'][_0x3b0363(-0xd7,-0x123)]=_0xb4c6f8;function _0x3b0363(_0x56140f,_0xb75437){return _0x2e342d(_0x56140f- -0x35c,_0xb75437);}this['rendering']['viewerParameters']=_0xb4c6f8;}['destroy'](){this[_0x1e9ed0(0x1b5,0x1c0)][_0x51c155(-0x8d,-0x8c)]();function _0x51c155(_0xacacad,_0x120aea){return _0x2e342d(_0xacacad- -0x324,_0x120aea);}function _0x1e9ed0(_0x125d15,_0x579f1e){return _0x2e342d(_0x579f1e- -0x154,_0x125d15);}this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace[_0x2e342d(0x2fa,0x350)],BaseLayer$1=mars3d__namespace[_0x3e2b6f(0x36,-0x2a)]['BaseLayer'],_0x542785={};function _0x3a79(_0x2273dd,_0x29b68c){const _0x473875=_0x4738();return _0x3a79=function(_0x3a7940,_0x477111){_0x3a7940=_0x3a7940-0x93;let _0x34d451=_0x473875[_0x3a7940];return _0x34d451;},_0x3a79(_0x2273dd,_0x29b68c);}_0x542785['min']=0x1,_0x542785['max']=0x2;const _0x54e4eb={};_0x54e4eb['min']=0x14,_0x54e4eb[_0x2e342d(0x359,0x3b7)]=0x64;const _0x1e2fd2={};_0x1e2fd2[_0x2e342d(0x31b,0x344)]=0x64,_0x1e2fd2['fixedHeight']=0x0,_0x1e2fd2['lineWidth']=_0x542785,_0x1e2fd2[_0x2e342d(0x290,0x2e5)]=_0x54e4eb,_0x1e2fd2['speedFactor']=0x1,_0x1e2fd2[_0x3e2b6f(0xa0,0x71)]=0.003,_0x1e2fd2[_0x3e2b6f(0x1f,-0x69)]=0.001,_0x1e2fd2['colors']=['rgb(206,255,255)'],_0x1e2fd2[_0x2e342d(0x289,0x22c)]=![];function _0x3e2b6f(_0x690ac8,_0x269cfe){return _0x3a79(_0x269cfe- -0x102,_0x690ac8);}_0x1e2fd2['dynamic']=!![];const DEF_OPTIONS=_0x1e2fd2;class WindLayer extends BaseLayer$1{constructor(_0x2b5c7b={}){_0x2b5c7b={...DEF_OPTIONS,..._0x2b5c7b},super(_0x2b5c7b),this['_setOptionsHook'](_0x2b5c7b,_0x2b5c7b);}get[_0x3e2b6f(-0xb1,-0x2a)](){function _0x170f84(_0x50e552,_0x50b789){return _0x3e2b6f(_0x50e552,_0x50b789- -0x11);}return this[_0x170f84(-0x11,-0x76)];}get['data'](){return this['options']['data'];}set['data'](_0x30b1d4){this['options'][_0x3655b0(0xbc,0x145)]=_0x30b1d4;function _0x3655b0(_0x4a91fc,_0x4bc4c7){return _0x2e342d(_0x4a91fc- -0x1e6,_0x4bc4c7);}this['setData'](_0x30b1d4);}get['colors'](){function _0x4dface(_0x5b3a40,_0xc313ef){return _0x2e342d(_0xc313ef- -0x2cf,_0x5b3a40);}return this['options'][_0x4dface(-0x6d,-0x14)];}set['colors'](_0x434367){this[_0x3c68d4(0x4f,0x43)]['colors']=_0x434367;const _0x32d450={};_0x32d450['colors']=_0x434367;function _0x28e574(_0x4c4ba7,_0x22dc43){return _0x2e342d(_0x22dc43- -0x315,_0x4c4ba7);}function _0x3c68d4(_0x1b3c21,_0x400dbd){return _0x2e342d(_0x1b3c21- -0x256,_0x400dbd);}this['_setOptionsHook'](this[_0x3c68d4(0x4f,0x6b)],_0x32d450);}['_showHook'](_0x2dcdd6){_0x2dcdd6?this['_addedHook']():this['_removedHook']();}['_mountedHook'](){}[_0x3e2b6f(0x44,-0x1e)](){this['scene']=this['_map']['scene'],this[_0x5782b7(-0x23c,-0x1fd)]=this['_map'][_0x5782b7(-0x23c,-0x1b5)];this['options']['data']&&this[_0x5782b7(-0x26f,-0x288)](this['options']['data']);if(!this['windData']||!this['show'])return;this['viewerParameters']={'lonRange':new Cesium$1[(_0x5782b7(-0x261,-0x287))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x5782b7(-0x306,-0x38c)]['mode']},this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene'][_0x5782b7(-0x274,-0x27c)],this['windData'],this[_0x5782b7(-0x2f2,-0x26c)],this['viewerParameters'],this[_0x7508cf(0x321,0x30a)]);function _0x5782b7(_0x595369,_0x546b45){return _0x3e2b6f(_0x546b45,_0x595369- -0x2b6);}this['primitives']=this['particleSystem']['getPrimitives'](),this[_0x7508cf(0x316,0x2f5)][_0x5782b7(-0x2aa,-0x24f)](_0xef25a4=>{function _0x2fe552(_0x1e788d,_0x508575){return _0x7508cf(_0x508575,_0x1e788d- -0x2b6);}this[_0x2fe552(0x54,0x97)]['primitives']['add'](_0xef25a4);});function _0x7508cf(_0x356212,_0x39e3a9){return _0x3e2b6f(_0x356212,_0x39e3a9-0x35a);}this[_0x5782b7(-0x23c,-0x2a0)]['percentageChanged']=0.01,this['camera'][_0x7508cf(0x342,0x321)]['addEventListener'](this['updateViewerParameters'][_0x7508cf(0x3bf,0x3c1)](this)),this['scene'][_0x5782b7(-0x2a4,-0x263)]['addEventListener'](this[_0x7508cf(0x2d6,0x2ff)][_0x5782b7(-0x24f,-0x29c)](this)),window['addEventListener']('resize',this['updateViewerParameters']['bind'](this));}['_removedHook'](){function _0x2521e0(_0x101734,_0x245308){return _0x2e342d(_0x101734-0x84,_0x245308);}this['camera'][_0x423049(0x25,0x32)][_0x423049(0x8,0x5)](this['updateViewerParameters'][_0x423049(0xc5,0x64)](this)),this[_0x423049(0xe,0xf)]['morphComplete'][_0x2521e0(0x30f,0x361)](this['updateViewerParameters'][_0x2521e0(0x3cc,0x367)](this)),window['removeEventListener']('resize',this[_0x423049(0x3,-0xd)][_0x423049(0xc5,0xf4)](this));function _0x423049(_0x139ed1,_0x3f3a39){return _0x2e342d(_0x139ed1- -0x283,_0x3f3a39);}this['primitives']&&(this['primitives']['forEach'](_0x57edc0=>{function _0x2da249(_0x17a45a,_0x4761b5){return _0x423049(_0x4761b5- -0x265,_0x17a45a);}function _0xe308c4(_0x50c48e,_0x573150){return _0x2521e0(_0x50c48e- -0x1fc,_0x573150);}this[_0x2da249(-0x2c1,-0x257)]['primitives'][_0x2da249(-0x187,-0x1dd)](_0x57edc0);}),delete this['primitives']),this[_0x2521e0(0x341,0x315)]&&(this['particleSystem'][_0x2521e0(0x31b,0x34b)](),delete this[_0x423049(0x3a,0x2a)]);}[_0x3e2b6f(0x5f,0x47)](_0x3f570c,_0x5f0ad8){function _0x564b4a(_0x2a9b5e,_0x141771){return _0x2e342d(_0x141771-0x1a0,_0x2a9b5e);}function _0x53bcd6(_0x5c0948,_0x5629af){return _0x2e342d(_0x5629af- -0x3,_0x5c0948);}this['windData']=this[_0x564b4a(0x4ba,0x451)](_0x3f570c);if(_0x5f0ad8){this[_0x564b4a(0x478,0x500)](),this['_addedHook']();return;}this['particleSystem']?(this['particleSystem']['computing'][_0x564b4a(0x437,0x476)](this['windData']),this[_0x53bcd6(0x238,0x28e)][_0x564b4a(0x3f2,0x421)]()):this['_addedHook']();}[_0x2e342d(0x349,0x35f)](_0x117e9e,_0x48bfd4){function _0x1203fd(_0x3165dd,_0x281435){return _0x3e2b6f(_0x3165dd,_0x281435- -0xce);}this['particleSystem']&&(this['particleSystem']['changeOptions'](_0x48bfd4),this['scene'][_0x1203fd(-0xd6,-0x12e)]());}['processWindData'](_0x16163b){var _0x2b8dcd,_0x136dac;const _0x1a8b09={..._0x16163b};function _0x5e3edb(_0xcddc21,_0x53ed96){return _0x2e342d(_0x53ed96- -0x301,_0xcddc21);}function _0x178429(_0x361abc,_0xe89f7){return _0x3e2b6f(_0xe89f7,_0x361abc- -0xb7);}const _0x3e16a7=_0x1a8b09;!_0x3e16a7['height']&&_0x3e16a7[_0x5e3edb(-0x93,-0x65)]&&(_0x3e16a7['height']=_0x3e16a7['rows']);!_0x3e16a7['width']&&_0x3e16a7['cols']&&(_0x3e16a7['width']=_0x3e16a7[_0x178429(-0x94,-0xa2)]);!_0x3e16a7['bounds']&&(_0x3e16a7['bounds']={'west':_0x3e16a7[_0x178429(-0x102,-0x9d)],'south':_0x3e16a7[_0x5e3edb(0x47,-0x21)],'east':_0x3e16a7['xmax'],'north':_0x3e16a7['ymax']});if(!_0x3e16a7['u']){const _0x182446={};_0x182446['array']=_0x16163b[_0x178429(-0x105,-0xc0)],_0x182446[_0x5e3edb(-0x3,0x1b)]=_0x16163b[_0x178429(-0x26,0x58)],_0x182446['max']=_0x16163b[_0x178429(-0x66,-0x5)],_0x3e16a7['u']=_0x182446;}if(!_0x3e16a7['v']){const _0x43ccc3={};_0x43ccc3['array']=_0x16163b['vdata'],_0x43ccc3[_0x5e3edb(0x2c,0x1b)]=_0x16163b['vmin'],_0x43ccc3['max']=_0x16163b['vmax'],_0x3e16a7['v']=_0x43ccc3;}if(((_0x2b8dcd=_0x3e16a7[_0x5e3edb(0x51,0x76)])===null||_0x2b8dcd===void 0x0?void 0x0:_0x2b8dcd[_0x5e3edb(0x82,0x1b)])===undefined||((_0x136dac=_0x3e16a7['speed'])===null||_0x136dac===void 0x0?void 0x0:_0x136dac[_0x178429(-0x3f,-0xc5)])===undefined||_0x3e16a7[_0x178429(-0x21,0x66)]['array']===undefined){const _0x55f17a={'array':new Float32Array(_0x3e16a7['u']['array']['length']),'min':Number[_0x178429(-0x76,-0x76)],'max':Number['MIN_VALUE']};for(let _0x37b06d=0x0;_0x37b06d<_0x3e16a7['u']['array']['length'];_0x37b06d++){_0x55f17a['array'][_0x37b06d]=Math['sqrt'](_0x3e16a7['u'][_0x5e3edb(-0x52,-0x8e)][_0x37b06d]*_0x3e16a7['u'][_0x178429(-0x125,-0x167)][_0x37b06d]+_0x3e16a7['v']['array'][_0x37b06d]*_0x3e16a7['v']['array'][_0x37b06d]),_0x55f17a[_0x5e3edb(-0xbe,-0x8e)][_0x37b06d]!==0x0&&(_0x55f17a[_0x178429(-0x7c,-0x53)]=Math['min'](_0x55f17a[_0x5e3edb(-0x2a,0x1b)],_0x55f17a['array'][_0x37b06d]),_0x55f17a[_0x178429(-0x3f,-0x74)]=Math['max'](_0x55f17a['max'],_0x55f17a['array'][_0x37b06d]));}_0x3e16a7[_0x5e3edb(0x57,0x76)]=_0x55f17a;}return _0x3e16a7;}[_0x2e342d(0x286,0x2f5)](){var _0x2a9b71;const _0x260c7d=this[_0x26fe1c(0x3ac,0x336)];function _0x26fe1c(_0x290a1a,_0x1812db){return _0x3e2b6f(_0x1812db,_0x290a1a-0x3fc);}if(!_0x260c7d)return;const _0x3b8c56=_0x260c7d['canvas'],_0x256c09={};_0x256c09['x']=0x0,_0x256c09['y']=0x0;const _0x528c4e={};_0x528c4e['x']=0x0,_0x528c4e['y']=_0x3b8c56['clientHeight'];const _0x4860c9={};_0x4860c9['x']=_0x3b8c56['clientWidth'],_0x4860c9['y']=0x0;const _0x408c9f={};_0x408c9f['x']=_0x3b8c56['clientWidth'];function _0x1d988c(_0x23a5e4,_0x535498){return _0x3e2b6f(_0x535498,_0x23a5e4- -0x24f);}_0x408c9f['y']=_0x3b8c56[_0x1d988c(-0x25e,-0x201)];const _0x6d5680=[_0x256c09,_0x528c4e,_0x4860c9,_0x408c9f];let _0x38dcba=0xb4,_0x3df1aa=-0xb4,_0x1fc54e=0x5a,_0x125ebe=-0x5a,_0xef46b1=![];for(const _0x523f0a of _0x6d5680){const _0x39e248=_0x260c7d['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x523f0a['x'],_0x523f0a['y']),_0x260c7d['globe']['ellipsoid']);if(!_0x39e248){_0xef46b1=!![];break;}const _0x4a7207=_0x260c7d['globe']['ellipsoid'][_0x1d988c(-0x1c1,-0x1f5)](_0x39e248),_0xb07443=Cesium$1['Math'][_0x1d988c(-0x23c,-0x1b6)](_0x4a7207['longitude']),_0x5116c7=Cesium$1['Math'][_0x1d988c(-0x23c,-0x230)](_0x4a7207['latitude']);_0x38dcba=Math[_0x26fe1c(0x437,0x408)](_0x38dcba,_0xb07443),_0x3df1aa=Math['max'](_0x3df1aa,_0xb07443),_0x1fc54e=Math[_0x26fe1c(0x437,0x477)](_0x1fc54e,_0x5116c7),_0x125ebe=Math['max'](_0x125ebe,_0x5116c7);}if(!_0xef46b1){const _0x303142=new Cesium$1[(_0x1d988c(-0x1fa,-0x22d))](Math[_0x26fe1c(0x474,0x41e)](this['windData'][_0x1d988c(-0x1d3,-0x1b7)][_0x26fe1c(0x448,0x3d4)],_0x38dcba),Math['min'](this[_0x1d988c(-0x1ad,-0x15d)]['bounds'][_0x1d988c(-0x227,-0x24e)],_0x3df1aa)),_0x335100=new Cesium$1[(_0x26fe1c(0x451,0x493))](Math[_0x1d988c(-0x1d7,-0x156)](this[_0x26fe1c(0x49e,0x45d)]['bounds']['south'],_0x1fc54e),Math['min'](this['windData'][_0x26fe1c(0x478,0x41d)]['north'],_0x125ebe)),_0x8d7de3=(_0x303142['y']-_0x303142['x'])*0.05,_0x3dea07=(_0x335100['y']-_0x335100['x'])*0.05;_0x303142['x']=Math[_0x1d988c(-0x1d7,-0x18a)](this['windData']['bounds'][_0x1d988c(-0x203,-0x1b4)],_0x303142['x']-_0x8d7de3),_0x303142['y']=Math['min'](this[_0x1d988c(-0x1ad,-0x1ce)]['bounds']['east'],_0x303142['y']+_0x8d7de3),_0x335100['x']=Math[_0x26fe1c(0x474,0x403)](this['windData'][_0x1d988c(-0x1d3,-0x259)][_0x26fe1c(0x42a,0x432)],_0x335100['x']-_0x3dea07),_0x335100['y']=Math['min'](this['windData']['bounds']['north'],_0x335100['y']+_0x3dea07),this['viewerParameters']['lonRange']=_0x303142,this['viewerParameters'][_0x1d988c(-0x258,-0x265)]=_0x335100;const _0x263a4b=this[_0x26fe1c(0x49e,0x4ca)]['bounds']['east']-this['windData'][_0x26fe1c(0x478,0x4a4)]['west'],_0x563c79=this['windData']['bounds']['north']-this[_0x1d988c(-0x1ad,-0x236)]['bounds']['south'],_0xeb2ca5=(_0x303142['y']-_0x303142['x'])/_0x263a4b,_0x37a840=(_0x335100['y']-_0x335100['x'])/_0x563c79,_0x14c9ee=Math['min'](_0xeb2ca5,_0x37a840),_0x472a55=0x3e8*_0x14c9ee;_0x472a55>0x0&&(this[_0x26fe1c(0x3a0,0x34c)][_0x26fe1c(0x406,0x39b)]=Math['max'](0x0,Math[_0x26fe1c(0x437,0x465)](0x3e8,_0x472a55)));}this['viewerParameters'][_0x1d988c(-0x23e,-0x281)]=this[_0x1d988c(-0x29f,-0x21e)][_0x26fe1c(0x3b9,0x41d)],(_0x2a9b71=this[_0x1d988c(-0x273,-0x1fc)])===null||_0x2a9b71===void 0x0||_0x2a9b71[_0x26fe1c(0x46c,0x493)](this['viewerParameters']);}['getDataAtLonLat'](_0x32fffc,_0x1a3f35){const {bounds:_0x123c51,width:_0x1e7579,height:_0x3c2b9e,u:_0x42b46c,v:_0xb2657a,speed:_0x59a696}=this['windData'],{flipY:_0x36469f}=this['options'];if(_0x32fffc<_0x123c51[_0x524058(0x2fa,0x290)]||_0x32fffc>_0x123c51['east']||_0x1a3f35<_0x123c51['south']||_0x1a3f35>_0x123c51[_0x524058(0x1c3,0x1de)])return null;const _0x130c85=(_0x32fffc-_0x123c51[_0x18e0d6(-0xda,-0xfc)])/(_0x123c51[_0x524058(0x289,0x26c)]-_0x123c51['west'])*(_0x1e7579-0x1);let _0x38ff03=(_0x1a3f35-_0x123c51[_0x524058(0x28b,0x272)])/(_0x123c51['north']-_0x123c51['south'])*(_0x3c2b9e-0x1);_0x36469f&&(_0x38ff03=_0x3c2b9e-0x1-_0x38ff03);const _0x59ecdf=Math['floor'](_0x130c85),_0x3dd237=Math['floor'](_0x38ff03),_0x58a098=Math['floor'](_0x130c85),_0x2967ec=Math['min'](_0x58a098+0x1,_0x1e7579-0x1),_0x84bb56=Math[_0x18e0d6(-0x195,-0x16f)](_0x38ff03),_0xd68f2f=Math[_0x524058(0x285,0x27f)](_0x84bb56+0x1,_0x3c2b9e-0x1),_0x42ed4e=_0x130c85-_0x58a098,_0x390afa=_0x38ff03-_0x84bb56,_0x546331=_0x3dd237*_0x1e7579+_0x59ecdf,_0x13c744=_0x84bb56*_0x1e7579+_0x58a098,_0x57bfc8=_0x84bb56*_0x1e7579+_0x2967ec,_0x215803=_0xd68f2f*_0x1e7579+_0x58a098,_0x2238fa=_0xd68f2f*_0x1e7579+_0x2967ec,_0x49dcf7=_0x42b46c['array'][_0x13c744],_0x8e1ce5=_0x42b46c['array'][_0x57bfc8],_0x40b408=_0x42b46c[_0x18e0d6(-0x1a0,-0x1b6)][_0x215803];function _0x524058(_0x1db3aa,_0x4e0a6b){return _0x2e342d(_0x4e0a6b- -0x9d,_0x1db3aa);}const _0x56b9bb=_0x42b46c['array'][_0x2238fa],_0x3cbce4=(0x1-_0x42ed4e)*(0x1-_0x390afa)*_0x49dcf7+_0x42ed4e*(0x1-_0x390afa)*_0x8e1ce5+(0x1-_0x42ed4e)*_0x390afa*_0x40b408+_0x42ed4e*_0x390afa*_0x56b9bb,_0x4dc3a3=_0xb2657a[_0x524058(0x22f,0x1d6)][_0x13c744],_0x7ad4f3=_0xb2657a['array'][_0x57bfc8],_0x31f808=_0xb2657a[_0x18e0d6(-0x19d,-0x1b6)][_0x215803],_0x326860=_0xb2657a[_0x524058(0x179,0x1d6)][_0x2238fa],_0x1aa6fc=(0x1-_0x42ed4e)*(0x1-_0x390afa)*_0x4dc3a3+_0x42ed4e*(0x1-_0x390afa)*_0x7ad4f3+(0x1-_0x42ed4e)*_0x390afa*_0x31f808+_0x42ed4e*_0x390afa*_0x326860,_0x565e6b=Math['sqrt'](_0x3cbce4*_0x3cbce4+_0x1aa6fc*_0x1aa6fc),_0x303767={};_0x303767['u']=_0x42b46c[_0x18e0d6(-0x1c7,-0x1b6)][_0x546331],_0x303767['v']=_0xb2657a[_0x524058(0x18b,0x1d6)][_0x546331],_0x303767[_0x18e0d6(-0xc5,-0xb2)]=_0x59a696['array'][_0x546331];const _0x21be3b={};_0x21be3b['u']=_0x3cbce4,_0x21be3b['v']=_0x1aa6fc,_0x21be3b['speed']=_0x565e6b;const _0xa75a33={};_0xa75a33['original']=_0x303767,_0xa75a33[_0x524058(0x290,0x22b)]=_0x21be3b;function _0x18e0d6(_0x50eb4a,_0x2d5980){return _0x3e2b6f(_0x50eb4a,_0x2d5980- -0x148);}return _0xa75a33;}}function _0x2e342d(_0x34338a,_0x4f9727){return _0x3a79(_0x34338a-0x1df,_0x4f9727);}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this[_0x3a0e38(-0x1dc,-0x258)]=null;function _0x3a0e38(_0xace60,_0x582728){return _0x3e2b6f(_0xace60,_0x582728- -0x2b5);}this['lat']=null;function _0x4e02fa(_0x5a3cc7,_0x5eb326){return _0x2e342d(_0x5a3cc7- -0x58c,_0x5eb326);}this[_0x4e02fa(-0x2e0,-0x27c)]=null,this['tlat']=null,this['age']=null,this['speed']=null;}[_0x2e342d(0x297,0x2bf)](){for(const _0x144232 in this){delete this[_0x144232];}}}class CanvasWindField{constructor(_0x287e30){this['setOptions'](_0x287e30);}get['speedRate'](){return this['_speedRate'];}set[_0x2e342d(0x274,0x22e)](_0x27bbff){function _0x50c6e7(_0x5e8759,_0x3281eb){return _0x2e342d(_0x5e8759- -0x1,_0x3281eb);}function _0x5cb6d4(_0x10674a,_0x683af1){return _0x2e342d(_0x10674a- -0x489,_0x683af1);}this[_0x5cb6d4(-0x1b0,-0x207)]=(0x64-(_0x27bbff>0x63?0x63:_0x27bbff))*0x64,this[_0x5cb6d4(-0x176,-0x1b2)]=[(this['xmax']-this['xmin'])/this[_0x50c6e7(0x2d8,0x32a)],(this['ymax']-this[_0x50c6e7(0x2df,0x2fb)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0x1611b4){this['_maxAge']=_0x1611b4;}[_0x3e2b6f(0x3e,0x6e)](_0x28d8f7){this['options']=_0x28d8f7;function _0x41299b(_0x1af950,_0x213eb9){return _0x2e342d(_0x1af950- -0x5e,_0x213eb9);}this[_0x60995d(0x14,-0x67)]=_0x28d8f7['maxAge']||0x78,this['speedRate']=_0x28d8f7[_0x60995d(-0x131,-0xd8)]||0x32,this['particles']=[];function _0x60995d(_0x59f13f,_0x19b22f){return _0x2e342d(_0x19b22f- -0x34c,_0x59f13f);}const _0x337421=_0x28d8f7[_0x60995d(0x19,-0x8)]||0x1000;for(let _0x184160=0x0;_0x184160<_0x337421;_0x184160++){const _0x3ab867=this['_randomParticle'](new CanvasParticle());this['particles'][_0x60995d(-0x8c,-0xc9)](_0x3ab867);}}[_0x2e342d(0x2c5,0x34f)](_0x1a283c){this[_0x3e497b(0x6c,0xe4)]=_0x1a283c['rows'],this[_0x3e497b(0xd3,0x14c)]=_0x1a283c['cols'],this['xmin']=_0x1a283c['xmin'],this[_0x14d75a(0x108,0x13e)]=_0x1a283c[_0x14d75a(0x108,0x159)],this[_0x3e497b(0x115,0x128)]=_0x1a283c['ymin'];function _0x14d75a(_0x2761cc,_0x3aa68d){return _0x2e342d(_0x2761cc- -0x1b7,_0x3aa68d);}function _0x3e497b(_0x10aa1b,_0x982600){return _0x2e342d(_0x982600- -0x1b8,_0x10aa1b);}this['ymax']=_0x1a283c['ymax'],this['grid']=[];const _0x2285c1=_0x1a283c['udata'],_0x37d360=_0x1a283c['vdata'];let _0x1d3c51=![];_0x2285c1['length']===this['rows']&&_0x2285c1[0x0]['length']===this['cols']&&(_0x1d3c51=!![]);let _0x8e676f=0x0,_0x564ba9=null,_0x27efbf=null;for(let _0x5e916e=0x0;_0x5e916e<this['rows'];_0x5e916e++){_0x564ba9=[];for(let _0x4380a7=0x0;_0x4380a7<this['cols'];_0x4380a7++,_0x8e676f++){_0x1d3c51?_0x27efbf=this['_calcUV'](_0x2285c1[_0x5e916e][_0x4380a7],_0x37d360[_0x5e916e][_0x4380a7]):_0x27efbf=this[_0x3e497b(0x112,0x169)](_0x2285c1[_0x8e676f],_0x37d360[_0x8e676f]),_0x564ba9['push'](_0x27efbf);}this['grid']['push'](_0x564ba9);}!this['options']['flipY']&&this[_0x3e497b(0x17c,0x160)]['reverse']();}[_0x2e342d(0x326,0x34b)](){delete this['rows'],delete this['cols'],delete this['xmin'],delete this[_0xc5d204(-0xb7,-0x71)];function _0x5c15ad(_0x5186fd,_0x477514){return _0x2e342d(_0x5186fd- -0x1b3,_0x477514);}function _0xc5d204(_0x13ed72,_0x5cdaac){return _0x3e2b6f(_0x13ed72,_0x5cdaac- -0x4f);}delete this[_0x5c15ad(0x12d,0x18d)],delete this['ymax'],delete this['grid'],delete this['particles'];}['toGridXY'](_0x51d5e8,_0x2e44cf){function _0x2cddb0(_0x570598,_0x4ec70f){return _0x2e342d(_0x570598- -0x271,_0x4ec70f);}const _0x4ac62c=(_0x51d5e8-this['xmin'])/(this['xmax']-this['xmin'])*(this[_0x2cddb0(0x93,0x85)]-0x1);function _0x525e4e(_0x9a962c,_0x14e3a3){return _0x2e342d(_0x9a962c- -0xc9,_0x14e3a3);}const _0x59c19c=(this['ymax']-_0x2e44cf)/(this['ymax']-this[_0x525e4e(0x217,0x281)])*(this['rows']-0x1);return[_0x4ac62c,_0x59c19c];}[_0x3e2b6f(0x11,-0x14)](_0x1cb76c,_0x5aedc4){if(_0x1cb76c<0x0||_0x1cb76c>=this['cols']||_0x5aedc4>=this[_0x36d615(0x252,0x22c)])return[0x0,0x0,0x0];const _0xf684f=Math['floor'](_0x1cb76c),_0x1b2ffe=Math['floor'](_0x5aedc4);if(_0xf684f===_0x1cb76c&&_0x1b2ffe===_0x5aedc4)return this[_0x249d32(0xff,0xa9)][_0x5aedc4][_0x1cb76c];const _0x21f3c4=_0xf684f+0x1;function _0x249d32(_0x396769,_0x316592){return _0x2e342d(_0x396769- -0x219,_0x316592);}const _0x3d203d=_0x1b2ffe+0x1;function _0x36d615(_0x495830,_0x577710){return _0x2e342d(_0x577710- -0x70,_0x495830);}const _0x517b1d=this[_0x36d615(0x21a,0x25d)](_0xf684f,_0x1b2ffe),_0x16efef=this['getUVByXY'](_0x21f3c4,_0x1b2ffe),_0x33e9f9=this['getUVByXY'](_0xf684f,_0x3d203d),_0x3ab2c0=this[_0x249d32(0xb4,0x72)](_0x21f3c4,_0x3d203d);let _0x1690d2=null;try{_0x1690d2=this['_bilinearInterpolation'](_0x1cb76c-_0xf684f,_0x5aedc4-_0x1b2ffe,_0x517b1d,_0x16efef,_0x33e9f9,_0x3ab2c0);}catch(_0x3c9046){console['log'](_0x1cb76c,_0x5aedc4);}return _0x1690d2;}[_0x3e2b6f(0x24,0x87)](_0xc5b2cf,_0x4405c4,_0x4365af,_0x1912a0,_0x45f0f5,_0x20645e){const _0x4ddf04=0x1-_0xc5b2cf,_0x5af20=0x1-_0x4405c4,_0x3d3926=_0x4ddf04*_0x5af20,_0x16ff0d=_0xc5b2cf*_0x5af20,_0x181474=_0x4ddf04*_0x4405c4;function _0x3cffcd(_0x3a2080,_0x4d3ed7){return _0x2e342d(_0x3a2080- -0x24c,_0x4d3ed7);}const _0x2dfeb2=_0xc5b2cf*_0x4405c4,_0x308479=_0x4365af[0x0]*_0x3d3926+_0x1912a0[0x0]*_0x16ff0d+_0x45f0f5[0x0]*_0x181474+_0x20645e[0x0]*_0x2dfeb2,_0x5705c7=_0x4365af[0x1]*_0x3d3926+_0x1912a0[0x1]*_0x16ff0d+_0x45f0f5[0x1]*_0x181474+_0x20645e[0x1]*_0x2dfeb2;return this[_0x3cffcd(0xd5,0x7c)](_0x308479,_0x5705c7);}['_calcUV'](_0x2ada50,_0x1a96ee){function _0x23203d(_0x2d6e75,_0x13d16f){return _0x3e2b6f(_0x2d6e75,_0x13d16f-0x488);}return[+_0x2ada50,+_0x1a96ee,Math[_0x23203d(0x51c,0x4ad)](_0x2ada50*_0x2ada50+_0x1a96ee*_0x1a96ee)];}['getUVByPoint'](_0x39ffc9,_0x2f9f51){if(!this['isInExtent'](_0x39ffc9,_0x2f9f51))return null;function _0x4a36f8(_0x556301,_0x518d5c){return _0x2e342d(_0x518d5c- -0x530,_0x556301);}const _0xbc7da1=this[_0x5b4ba3(-0x7,-0x27)](_0x39ffc9,_0x2f9f51);function _0x5b4ba3(_0x414fe8,_0x56c6ca){return _0x3e2b6f(_0x414fe8,_0x56c6ca- -0x57);}const _0x28e8ec=this[_0x4a36f8(-0x23a,-0x263)](_0xbc7da1[0x0],_0xbc7da1[0x1]);return _0x28e8ec;}[_0x3e2b6f(-0x81,-0x44)](_0x229bdb,_0x47a2a8){function _0x12f089(_0x35f128,_0x12140b){return _0x2e342d(_0x12140b- -0x274,_0x35f128);}return _0x229bdb>=this['xmin']&&_0x229bdb<=this[_0x12f089(0x9d,0x4b)]&&_0x47a2a8>=this['ymin']&&_0x47a2a8<=this['ymax']?!![]:![];}[_0x2e342d(0x335,0x383)](){const _0x11569c=fRandomByfloat(this[_0x5e2e93(-0x1e1,-0x1ed)],this['xmax']),_0x4844f2=fRandomByfloat(this['ymin'],this[_0x5e2e93(-0x1c4,-0x230)]);function _0x5e2e93(_0x3c4056,_0x3c9015){return _0x3e2b6f(_0x3c9015,_0x3c4056- -0x196);}const _0x21bbc3={};_0x21bbc3['lat']=_0x4844f2,_0x21bbc3['lng']=_0x11569c;function _0x4f61d3(_0x22de7b,_0x2c5da1){return _0x2e342d(_0x2c5da1- -0x11c,_0x22de7b);}return _0x21bbc3;}[_0x3e2b6f(-0xd1,-0x59)](){let _0x3d9bcd,_0x5f27ab,_0x4f259a;function _0x3217c2(_0x3e04b0,_0x474e0d){return _0x2e342d(_0x474e0d- -0x16c,_0x3e04b0);}function _0x1ab447(_0x259b0d,_0x2afe58){return _0x3e2b6f(_0x259b0d,_0x2afe58- -0x1cb);}for(let _0xe354aa=0x0,_0x210c85=this[_0x1ab447(-0xf0,-0x139)]['length'];_0xe354aa<_0x210c85;_0xe354aa++){let _0x57b2da=this['particles'][_0xe354aa];_0x57b2da[_0x3217c2(0x176,0x1d9)]<=0x0&&(_0x57b2da=this['_randomParticle'](_0x57b2da));if(_0x57b2da['age']>0x0){const _0x506a74=_0x57b2da[_0x3217c2(0xf1,0x140)],_0x5efc1b=_0x57b2da[_0x1ab447(-0x109,-0x156)];_0x4f259a=this['getUVByPoint'](_0x506a74,_0x5efc1b),_0x4f259a?(_0x3d9bcd=_0x506a74+this['_calc_speedRate'][0x0]*_0x4f259a[0x0],_0x5f27ab=_0x5efc1b+this['_calc_speedRate'][0x1]*_0x4f259a[0x1],_0x57b2da['lng']=_0x506a74,_0x57b2da['lat']=_0x5efc1b,_0x57b2da[_0x3217c2(0x15e,0x140)]=_0x3d9bcd,_0x57b2da['tlat']=_0x5f27ab,_0x57b2da['speed']=_0x4f259a[0x2],_0x57b2da['age']--):_0x57b2da['age']=0x0;}}return this['particles'];}['_randomParticle'](_0x46d4b2){let _0x48de06,_0x5dfc13;for(let _0x17ff96=0x0;_0x17ff96<0x1e;_0x17ff96++){_0x48de06=this['getRandomLatLng'](),_0x5dfc13=this['getUVByPoint'](_0x48de06['lng'],_0x48de06['lat']);if(_0x5dfc13&&_0x5dfc13[0x2]>0x0)break;}if(!_0x5dfc13)return _0x46d4b2;const _0x1006ae=_0x48de06['lng']+this['_calc_speedRate'][0x0]*_0x5dfc13[0x0];function _0x3fb021(_0x5ae6ec,_0x1da54f){return _0x3e2b6f(_0x1da54f,_0x5ae6ec-0x481);}const _0x4830ff=_0x48de06['lat']+this['_calc_speedRate'][0x1]*_0x5dfc13[0x1];_0x46d4b2[_0x3fb021(0x4de,0x566)]=_0x48de06['lng'],_0x46d4b2['lat']=_0x48de06['lat'];function _0x1b6fd0(_0x28f4e7,_0xc0f495){return _0x3e2b6f(_0xc0f495,_0x28f4e7-0x377);}return _0x46d4b2[_0x3fb021(0x44c,0x3e8)]=_0x1006ae,_0x46d4b2['tlat']=_0x4830ff,_0x46d4b2['age']=Math['round'](0xa+Math['random']()*this['maxAge']),_0x46d4b2['speed']=_0x5dfc13[0x2],_0x46d4b2;}['destroy'](){for(const _0x3750a0 in this){delete this[_0x3750a0];}}}function fRandomByfloat(_0x106e4b,_0x50e893){return _0x106e4b+Math['random']()*(_0x50e893-_0x106e4b);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x3e2b6f(0x47,-0x2a)][_0x3e2b6f(0x2b,0x62)];class CanvasWindLayer extends BaseLayer{constructor(_0x35ac5f={}){function _0x35c30c(_0x14094e,_0x5833d7){return _0x3e2b6f(_0x5833d7,_0x14094e-0x42c);}super(_0x35ac5f),this[_0x35c30c(0x494,0x51a)](_0x35ac5f),this['canvas']=null;function _0x193cab(_0x3d890f,_0x5aa0cc){return _0x3e2b6f(_0x3d890f,_0x5aa0cc-0x388);}_0x35ac5f['colors']&&_0x35ac5f[_0x193cab(0x3d2,0x35d)]&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x35ac5f));}['_setOptionsHook'](_0x14c9b5,_0x12c1f1){this['frameTime']=0x3e8/(_0x14c9b5[_0x2af368(0x178,0x161)]||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![],this['color']=_0x14c9b5[_0x2af368(0x182,0x184)]||'#ffffff',this[_0x2af368(0x116,0xaf)]=_0x14c9b5[_0x2af368(0x116,0xf9)]||0x1;function _0x36227d(_0x4c7936,_0x3eaddc){return _0x3e2b6f(_0x4c7936,_0x3eaddc-0x258);}this['fixedHeight']=_0x14c9b5[_0x36227d(0x259,0x27c)]??0x0,this[_0x36227d(0x1e7,0x200)]=_0x14c9b5['flipY']??![];function _0x2af368(_0x35cbd4,_0x3c04ef){return _0x3e2b6f(_0x3c04ef,_0x35cbd4-0x102);}this['windField']&&this[_0x2af368(0x122,0x167)][_0x36227d(0x2f6,0x2c6)](_0x14c9b5);}get[_0x3e2b6f(-0x5a,-0x2a)](){function _0x501540(_0x26a028,_0x2b5145){return _0x2e342d(_0x26a028- -0x273,_0x2b5145);}return this[_0x501540(0x64,-0x22)];}get['canvasWidth'](){function _0x51d341(_0x555dd9,_0x3855f8){return _0x3e2b6f(_0x3855f8,_0x555dd9- -0x1e7);}function _0x385c46(_0x118267,_0x49ea05){return _0x2e342d(_0x118267- -0x37f,_0x49ea05);}return this['_map'][_0x385c46(-0xee,-0x106)][_0x385c46(-0xa8,-0x2e)][_0x51d341(-0x15b,-0x16b)];}get['canvasHeight'](){function _0xff6a78(_0x5378b0,_0x6b27e7){return _0x2e342d(_0x5378b0- -0x4d6,_0x6b27e7);}function _0x80aae3(_0x50e1bd,_0x2fa4d3){return _0x3e2b6f(_0x50e1bd,_0x2fa4d3- -0x115);}return this[_0x80aae3(-0xee,-0x13e)]['scene'][_0xff6a78(-0x1ff,-0x1b1)]['clientHeight'];}get[_0x2e342d(0x37c,0x3eb)](){return this['_pointerEvents'];}set[_0x3e2b6f(0xf7,0x9b)](_0x10291c){function _0x2e8b9e(_0xecc285,_0x9d404c){return _0x3e2b6f(_0xecc285,_0x9d404c- -0x1ee);}this['_pointerEvents']=_0x10291c;if(!this[_0x2e8b9e(-0x204,-0x1f8)])return;function _0x4889e6(_0x949b2,_0x2c20f7){return _0x3e2b6f(_0x949b2,_0x2c20f7- -0x254);}_0x10291c?this['canvas']['style'][_0x2e8b9e(-0x275,-0x220)]='all':this[_0x2e8b9e(-0x1ca,-0x1f8)]['style']['pointer-events']='none';}get[_0x2e342d(0x344,0x2d5)](){function _0x43d565(_0x32b6b1,_0x4c282a){return _0x3e2b6f(_0x4c282a,_0x32b6b1- -0x12);}return this[_0x43d565(-0x4e,-0x6f)]['particlesNumber'];}set['particlesNumber'](_0x54a8aa){this['options']['particlesNumber']=_0x54a8aa,clearTimeout(this['_canrefresh']);function _0x2557a2(_0x1a3dc0,_0x23b22d){return _0x3e2b6f(_0x23b22d,_0x1a3dc0-0x26a);}this[_0x2557a2(0x20b,0x1e8)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x3e2b6f(-0x50,-0x6d)](){function _0x420355(_0x155add,_0x493aa7){return _0x3e2b6f(_0x493aa7,_0x155add-0x4db);}return this[_0x420355(0x49f,0x43d)]['speedRate'];}set[_0x2e342d(0x274,0x2c8)](_0x515f2b){function _0x422132(_0x43bf83,_0x30187c){return _0x2e342d(_0x30187c-0x120,_0x43bf83);}function _0x41b5f7(_0x1001ac,_0x14b7cf){return _0x3e2b6f(_0x14b7cf,_0x1001ac- -0x1cd);}this[_0x422132(0x440,0x3c5)][_0x41b5f7(-0x23a,-0x1d8)]=_0x515f2b,this[_0x41b5f7(-0x1ad,-0x192)]&&(this['windField']['speedRate']=_0x515f2b);}get['maxAge'](){function _0x54b826(_0x13fab5,_0x4d1ddc){return _0x3e2b6f(_0x4d1ddc,_0x13fab5- -0x40);}function _0x2836c3(_0x5ba1e4,_0x2814cc){return _0x3e2b6f(_0x5ba1e4,_0x2814cc-0x16a);}return this[_0x2836c3(0x18d,0x12e)][_0x2836c3(0x163,0x16e)];}set['maxAge'](_0x373482){function _0x7ed3d4(_0x541cdf,_0x414302){return _0x3e2b6f(_0x414302,_0x541cdf-0x37a);}function _0xd8a869(_0x2dd169,_0x4afe49){return _0x3e2b6f(_0x2dd169,_0x4afe49-0x4b);}this['options'][_0x7ed3d4(0x37e,0x3d1)]=_0x373482,this[_0xd8a869(-0x5,0x6b)]&&(this['windField'][_0xd8a869(-0x5,0x4f)]=_0x373482);}get[_0x3e2b6f(-0x49,-0x3f)](){function _0xe7ec14(_0x84ff3d,_0xbfc2aa){return _0x3e2b6f(_0x84ff3d,_0xbfc2aa-0x294);}return this[_0xe7ec14(0x3bf,0x336)];}set['data'](_0xdbedb4){this['setData'](_0xdbedb4);}get[_0x2e342d(0x312,0x34a)](){function _0x236ab8(_0xd8dfc9,_0x23cea7){return _0x3e2b6f(_0x23cea7,_0xd8dfc9-0x330);}let _0x956391=this[_0x3c0f47(0x389,0x3e5)]['xmin'],_0x51dedf=this[_0x236ab8(0x3d2,0x40e)][_0x3c0f47(0x2b3,0x321)],_0xb388dd=this[_0x236ab8(0x3d2,0x453)][_0x236ab8(0x32f,0x347)];function _0x3c0f47(_0x21a31a,_0x198217){return _0x3e2b6f(_0x21a31a,_0x198217-0x343);}let _0x5401e7=this[_0x236ab8(0x3d2,0x35f)][_0x3c0f47(0x291,0x315)];return _0x51dedf>=0x167&&_0x956391===0x0&&(_0x956391=-0xb4,_0x51dedf=0xb4),_0x956391=Math['max'](_0x956391,-0xb4),_0x51dedf=Math['min'](_0x51dedf,0xb4),_0xb388dd=Math[_0x236ab8(0x3a8,0x412)](_0xb388dd,-0x5a),_0x5401e7=Math['min'](_0x5401e7,0x5a),Cesium['Rectangle'][_0x236ab8(0x36d,0x39d)](_0x956391,_0xb388dd,_0x51dedf,_0x5401e7);}['_showHook'](_0x4d5117){function _0x3fed3b(_0x4dc306,_0x2ea0d3){return _0x3e2b6f(_0x4dc306,_0x2ea0d3- -0x83);}function _0x18ffeb(_0x59ebd5,_0x1d03c8){return _0x2e342d(_0x59ebd5- -0x239,_0x1d03c8);}_0x4d5117?this[_0x18ffeb(0x8a,0x2)]():(this['windData']&&(this['options']['data']=this[_0x3fed3b(0xa9,0x1f)]),this[_0x18ffeb(0x127,0x140)]());}['_mountedHook'](){function _0x4b8e2e(_0x397380,_0x512c4c){return _0x3e2b6f(_0x512c4c,_0x397380- -0x42);}function _0x140d43(_0x11c95d,_0x11bede){return _0x2e342d(_0x11bede- -0x3d4,_0x11c95d);}this[_0x4b8e2e(-0x7e,-0x5)]['worker']?this['initWorker']():this[_0x140d43(-0x5b,-0xd3)]=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this[_0x515f1e(-0x56,0x13)]();const _0x440180={};function _0x35ec45(_0x10d07c,_0x10c730){return _0x3e2b6f(_0x10d07c,_0x10c730-0x145);}_0x440180[_0x35ec45(0x247,0x1d2)]=!![],this[_0x35ec45(0xcd,0x139)]=this[_0x35ec45(0x138,0x13b)][_0x35ec45(0xbe,0x10d)]('2d',_0x440180);function _0x515f1e(_0xdec9e9,_0x1fb275){return _0x2e342d(_0xdec9e9- -0x3a6,_0x1fb275);}this[_0x35ec45(0x203,0x17e)](),this[_0x35ec45(0xac,0x109)]['data']&&this[_0x35ec45(0x182,0x18c)](this[_0x515f1e(-0x101,-0x188)]['data']);}['_removedHook'](){function _0x1d6c03(_0x480c68,_0x4ced67){return _0x2e342d(_0x480c68-0x167,_0x4ced67);}this[_0x1d6c03(0x48d,0x515)]();function _0x3ab50f(_0x244f0b,_0x5ceddd){return _0x3e2b6f(_0x5ceddd,_0x244f0b- -0x82);}this[_0x3ab50f(-0x3c,-0x22)](),this['canvas']&&(this['_map']['container'][_0x1d6c03(0x442,0x446)](this['canvas']),delete this[_0x3ab50f(-0x8c,-0xcb)]);}[_0x2e342d(0x350,0x3b5)](){const _0xb01629=mars3d__namespace['DomUtil']['create']('canvas','mars3d-canvasWind',this[_0x4b2c01(0x213,0x224)]['container']);_0xb01629['style']['position']='absolute',_0xb01629['style']['top']=_0x4b2c01(0x24f,0x282),_0xb01629['style'][_0x58f3bd(0x359,0x30b)]='0px',_0xb01629['style']['width']=this[_0x4b2c01(0x262,0x224)]['scene'][_0x58f3bd(0x2f1,0x35a)]['clientWidth']+'px',_0xb01629['style']['height']=this['_map'][_0x58f3bd(0x2ab,0x2d0)]['canvas']['clientHeight']+'px';function _0x58f3bd(_0x2cd427,_0x1f7592){return _0x3e2b6f(_0x1f7592,_0x2cd427-0x2fb);}_0xb01629['style']['pointerEvents']=this[_0x4b2c01(0x262,0x256)]?_0x58f3bd(0x31d,0x31b):'none',_0xb01629[_0x4b2c01(0x2ee,0x29b)][_0x4b2c01(0x240,0x1ec)]=this[_0x58f3bd(0x2bf,0x330)]['zIndex']??0x9,_0xb01629['width']=this[_0x58f3bd(0x2d2,0x32f)][_0x4b2c01(0x1c2,0x1fd)]['canvas']['clientWidth'],_0xb01629['height']=this['_map'][_0x4b2c01(0x1ae,0x1fd)][_0x4b2c01(0x286,0x243)]['clientHeight'];function _0x4b2c01(_0x567dc2,_0x5e3738){return _0x2e342d(_0x5e3738- -0x94,_0x567dc2);}return _0xb01629;}[_0x2e342d(0x35f,0x2ec)](){function _0xef8842(_0x1e7403,_0x3e047d){return _0x3e2b6f(_0x1e7403,_0x3e047d-0x3e3);}function _0x55e9b1(_0x4d13a6,_0x457189){return _0x2e342d(_0x457189- -0x77,_0x4d13a6);}this['canvas']&&(this['canvas']['style']['width']=this['_map']['scene']['canvas'][_0x55e9b1(0x278,0x2f6)]+'px',this['canvas']['style'][_0x55e9b1(0x330,0x2f0)]=this[_0xef8842(0x37d,0x3ba)][_0x55e9b1(0x24a,0x21a)]['canvas']['clientHeight']+'px',this[_0x55e9b1(0x233,0x260)]['width']=this[_0x55e9b1(0x242,0x241)][_0xef8842(0x3ef,0x393)]['canvas']['clientWidth'],this[_0xef8842(0x3f3,0x3d9)][_0x55e9b1(0x35d,0x2f0)]=this[_0xef8842(0x41d,0x3ba)][_0x55e9b1(0x233,0x21a)][_0x55e9b1(0x238,0x260)][_0x55e9b1(0x2d6,0x25b)]);}[_0x2e342d(0x31a,0x371)](){const _0xe246cc=this;function _0x210808(_0x1e27fa,_0x3133a2){return _0x2e342d(_0x3133a2- -0x28f,_0x1e27fa);}let _0xac5465=Date[_0x455c23(0x367,0x359)]();function _0x455c23(_0x51bdf1,_0x522000){return _0x3e2b6f(_0x522000,_0x51bdf1-0x3bc);}(function _0x2e700b(){if(_0xe246cc['isDestroy'])return;function _0x2a8876(_0x9fcfa6,_0x2a851c){return _0x455c23(_0x2a851c- -0x5d,_0x9fcfa6);}function _0x411a8d(_0x4c2960,_0x1423f6){return _0x455c23(_0x1423f6-0x29,_0x4c2960);}_0xe246cc[_0x2a8876(0x35b,0x337)]=window['requestAnimationFrame'](_0x2e700b);if(_0xe246cc[_0x2a8876(0x44f,0x3c8)]&&_0xe246cc[_0x411a8d(0x42d,0x405)]){const _0x4b24e7=Date['now'](),_0x584116=_0x4b24e7-_0xac5465;_0x584116>_0xe246cc['frameTime']&&(_0xac5465=_0x4b24e7-_0x584116%_0xe246cc[_0x411a8d(0x411,0x438)],_0xe246cc['update']());}}(),window[_0x455c23(0x373,0x301)](_0x455c23(0x43a,0x4a0),this['resize']['bind'](this),![]),this[_0x210808(0x136,0xbc)]=![],this[_0x210808(0x8d,0xa4)]=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace[_0x210808(0x52,0xcb)]['wheel'],this['_onMapWhellEvent'],this),this[_0x455c23(0x393,0x3fa)]['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x455c23(0x393,0x3d3)]['on'](mars3d__namespace['EventType'][_0x210808(0x15b,0xeb)],this[_0x455c23(0x43d,0x3f3)],this)));}['unbindEvent'](){window['cancelAnimationFrame'](this['_animateFrame']);function _0x362302(_0x4369ff,_0x3a4bec){return _0x3e2b6f(_0x4369ff,_0x3a4bec- -0x283);}delete this[_0x362302(-0x2e6,-0x2ab)],window[_0x362302(-0x311,-0x2d9)]('resize',this['resize']);function _0x3d144a(_0x2af86f,_0x4b426a){return _0x2e342d(_0x4b426a- -0x450,_0x2af86f);}this[_0x362302(-0x341,-0x2bf)]['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x3d144a(-0x171,-0xf6)]['wheel'],this['_onMapWhellEvent'],this),this[_0x3d144a(-0x143,-0x198)][_0x3d144a(-0x142,-0x117)](mars3d__namespace[_0x3d144a(-0xc7,-0xf6)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x362302(-0x2ec,-0x2ac)][_0x362302(-0x1fb,-0x22b)](mars3d__namespace['EventType']['mouseUp'],this[_0x362302(-0x1d8,-0x202)],this),this[_0x362302(-0x2bf,-0x2ac)]['off'](mars3d__namespace['EventType'][_0x362302(-0x235,-0x20f)],this['_onMouseMoveEvent'],this));}[_0x3e2b6f(-0x2,-0x42)](_0x2f6757){clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas'][_0x4baa1f(0x37,0x47)]['visibility']=_0x4baa1f(0x61,-0x9);function _0x4baa1f(_0x5d4272,_0x5ac574){return _0x2e342d(_0x5ac574- -0x2e8,_0x5d4272);}function _0x9d6ad8(_0x254f8d,_0x3cfe11){return _0x3e2b6f(_0x3cfe11,_0x254f8d-0x475);}this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;function _0x415d01(_0x4027df,_0x49c400){return _0x4baa1f(_0x4027df,_0x49c400- -0x2a9);}this[_0x4ecda9(0xc6,0x139)]();function _0x4ecda9(_0x1a182c,_0x3bbc7e){return _0x9d6ad8(_0x1a182c- -0x3d0,_0x3bbc7e);}this[_0x4ecda9(0x9b,0xce)]['style']['visibility']=_0x415d01(-0x233,-0x26c);},0xc8);}['_onMouseDownEvent'](_0xdd5d24){function _0x6e1ea5(_0x3749f7,_0x4a17c4){return _0x3e2b6f(_0x4a17c4,_0x3749f7-0x456);}function _0x25c485(_0x49b422,_0x8a074f){return _0x3e2b6f(_0x8a074f,_0x49b422- -0x293);}this[_0x6e1ea5(0x4c0,0x468)]=!![],this['_map']['off'](mars3d__namespace[_0x6e1ea5(0x4cf,0x549)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x25c485(-0x2bc,-0x2ad)]['on'](mars3d__namespace[_0x25c485(-0x21a,-0x1bb)]['mouseMove'],this[_0x6e1ea5(0x474,0x40f)],this);}[_0x3e2b6f(0x2e,0x1e)](_0x3276f2){if(!this['show']||!this['canvas'])return;function _0x23a3c1(_0x490c03,_0x22143a){return _0x3e2b6f(_0x490c03,_0x22143a- -0x123);}this['mouse_down']&&(this[_0x23a3c1(-0xe1,-0x12d)]['style']['visibility']='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x41ab6d){if(!this['show']||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType'][_0x1af90b(-0x1aa,-0x19c)],this['_onMouseMoveEvent'],this);this['mouse_down']&&this['mouse_move']&&this['redraw']();function _0xd04b83(_0x52fbec,_0x9d7d98){return _0x2e342d(_0x9d7d98- -0x209,_0x52fbec);}this['canvas'][_0xd04b83(0x10d,0x126)]['visibility']='visible',this['mouse_down']=![];function _0x1af90b(_0x40e3c9,_0x539ff0){return _0x2e342d(_0x40e3c9- -0x4ff,_0x539ff0);}this['mouse_move']=![];}[_0x3e2b6f(-0x3,0x47)](_0x56f9c2){function _0x3fe6b1(_0x15fb82,_0x54bc24){return _0x2e342d(_0x15fb82- -0x2ed,_0x54bc24);}this['clear'](),this['windData']=_0x56f9c2;function _0x5d8e83(_0x31a8e9,_0x2a7882){return _0x3e2b6f(_0x2a7882,_0x31a8e9-0x32b);}this[_0x3fe6b1(0x14,0x82)]['setDate'](_0x56f9c2),this[_0x3fe6b1(0x15,0x75)]();}[_0x2e342d(0x302,0x383)](){if(!this[_0x4de31a(0x437,0x42c)])return;function _0x4c44f9(_0x46d957,_0x1ed477){return _0x3e2b6f(_0x1ed477,_0x46d957-0x424);}function _0x4de31a(_0x2f4b6a,_0x44ac44){return _0x3e2b6f(_0x44ac44,_0x2f4b6a-0x3ce);}this[_0x4c44f9(0x444,0x428)][_0x4c44f9(0x492,0x43c)](this['options']),this['update']();}['update'](){if(this['_updateIng'])return;this[_0x5bfea7(0x2d7,0x266)]=!![];function _0x5bfea7(_0x234013,_0x18340a){return _0x3e2b6f(_0x234013,_0x18340a-0x2c3);}function _0x3325d1(_0x2482bb,_0x34708b){return _0x2e342d(_0x2482bb-0x1ed,_0x34708b);}if(this[_0x3325d1(0x463,0x429)])this['windField'][_0x3325d1(0x4d1,0x485)]();else{const _0x2178ff=this['windField'][_0x5bfea7(0x236,0x26a)]();this['_drawLines'](_0x2178ff);}this['_updateIng']=![];}['_drawLines'](_0x5f5414){this['_canvasParticles']=_0x5f5414,this['canvasContext']['globalCompositeOperation']=_0x273d95(-0x204,-0x1b3),this[_0x273d95(-0x28a,-0x23a)]['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x110748(-0xdf,-0x64)]),this[_0x110748(-0xe6,-0x10e)]['globalCompositeOperation']=_0x273d95(-0x278,-0x295),this['canvasContext'][_0x110748(-0x103,-0x154)]=0.9;function _0x110748(_0x695088,_0x256970){return _0x3e2b6f(_0x695088,_0x256970- -0x102);}const _0x467c66=this[_0x273d95(-0x28c,-0x257)]['scene'][_0x110748(-0xfa,-0x145)]!==Cesium['SceneMode']['SCENE3D'];function _0x273d95(_0x34d965,_0x492d8f){return _0x2e342d(_0x492d8f- -0x50f,_0x34d965);}const _0xb32f7a=this['canvasWidth']*0.25;if(this[_0x110748(-0x29,-0x78)])for(let _0x17b7ec=0x0,_0x10f79f=_0x5f5414['length'];_0x17b7ec<_0x10f79f;_0x17b7ec++){const _0x1946cc=_0x5f5414[_0x17b7ec],_0x3c84d6=this['_tomap'](_0x1946cc,_0x1946cc['lng'],_0x1946cc[_0x110748(-0xee,-0xfa)],_0x1946cc['alt']),_0x39736d=this['_tomap'](_0x1946cc,_0x1946cc['tlng'],_0x1946cc[_0x110748(-0x9,-0x8d)],_0x1946cc['talt']);if(!_0x3c84d6||!_0x39736d)continue;if(_0x467c66&&Math[_0x273d95(-0x202,-0x1e6)](_0x3c84d6[0x0]-_0x39736d[0x0])>=_0xb32f7a)continue;this[_0x273d95(-0x27c,-0x23a)][_0x110748(-0x115,-0x140)](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x110748(-0xcd,-0x78)]['getColor'](_0x1946cc[_0x110748(-0xcc,-0x6c)]),this['canvasContext'][_0x110748(-0xc0,-0x106)](_0x3c84d6[0x0],_0x3c84d6[0x1]),this['canvasContext'][_0x273d95(-0x249,-0x244)](_0x39736d[0x0],_0x39736d[0x1]),this['canvasContext'][_0x110748(-0x148,-0xe5)]();}else{this[_0x110748(-0x17c,-0x10e)]['beginPath'](),this[_0x273d95(-0x207,-0x23a)]['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x110748(-0x2f,-0x82)];for(let _0x476fb6=0x0,_0x464815=_0x5f5414[_0x273d95(-0x1d8,-0x1d8)];_0x476fb6<_0x464815;_0x476fb6++){const _0x5a7be9=_0x5f5414[_0x476fb6],_0x554882=this['_tomap'](_0x5a7be9,_0x5a7be9['lng'],_0x5a7be9[_0x110748(-0xb0,-0xfa)],_0x5a7be9['alt']),_0x2ef3f7=this['_tomap'](_0x5a7be9,_0x5a7be9[_0x273d95(-0x256,-0x263)],_0x5a7be9['tlat'],_0x5a7be9['talt']);if(!_0x554882||!_0x2ef3f7)continue;if(_0x467c66&&Math['abs'](_0x554882[0x0]-_0x2ef3f7[0x0])>=_0xb32f7a)continue;this['canvasContext']['moveTo'](_0x554882[0x0],_0x554882[0x1]),this['canvasContext']['lineTo'](_0x2ef3f7[0x0],_0x2ef3f7[0x1]);}this['canvasContext'][_0x110748(-0x7e,-0xe5)]();}}['_tomap'](_0x2941c7,_0x29df49,_0x58be34,_0x552e12){const _0x8cd619=Cesium['Cartesian3']['fromDegrees'](_0x29df49,_0x58be34,_0x552e12??this['fixedHeight']),_0x5ed051=this['_map']['scene'];if(_0x5ed051['mode']===Cesium[_0x5996b8(-0x2a6,-0x23d)]['SCENE3D']){const _0x162d3b=new Cesium['EllipsoidalOccluder'](_0x5ed051['globe'][_0x5996b8(-0x15d,-0x1df)],_0x5ed051['camera']['positionWC']),_0x10c94f=_0x162d3b['isPointVisible'](_0x8cd619);if(!_0x10c94f)return _0x2941c7['age']=0x0,null;}const _0x19513c=mars3d__namespace['PointTrans'][_0x5996b8(-0x158,-0x170)](this[_0x151dcc(0x35d,0x39c)][_0x151dcc(0x336,0x380)],_0x8cd619);function _0x151dcc(_0x402fe3,_0x1ed6d6){return _0x3e2b6f(_0x1ed6d6,_0x402fe3-0x386);}function _0x5996b8(_0x2574dd,_0x4ec76a){return _0x3e2b6f(_0x2574dd,_0x4ec76a- -0x20a);}return _0x19513c?[_0x19513c['x'],_0x19513c['y']]:null;}['clear'](){this['windField'][_0x207b57(-0x34,0x3a)]();function _0x207b57(_0x573aba,_0x1de487){return _0x2e342d(_0x573aba- -0x35a,_0x1de487);}delete this['windData'];}[_0x2e342d(0x2c9,0x321)](){this['worker']=new Worker(this[_0x210f14(-0xe2,-0xdb)]['worker']);function _0x210f14(_0x205621,_0x4b3f8b){return _0x3e2b6f(_0x4b3f8b,_0x205621- -0xa6);}function _0x3e3d08(_0x2d06ea,_0x533651){return _0x2e342d(_0x533651- -0x9,_0x2d06ea);}this[_0x210f14(-0x111,-0x163)][_0x210f14(-0xed,-0x99)]=_0x12d700=>{function _0x23b853(_0x3c2077,_0x4e2515){return _0x210f14(_0x3c2077-0x51c,_0x4e2515);}this['_drawLines'](_0x12d700[_0x23b853(0x437,0x3f8)][_0x23b853(0x508,0x524)]);function _0x39d71d(_0x33f45d,_0x1282db){return _0x3e3d08(_0x33f45d,_0x1282db- -0x3e8);}this['_updateIng2']=![];},this[_0x3e3d08(0x29b,0x2f8)]={'init':_0x26d636=>{function _0x1510d9(_0x44cb8,_0x460c9d){return _0x3e3d08(_0x460c9d,_0x44cb8- -0x1ce);}function _0x3cd975(_0x1b7bb4,_0x18fca4){return _0x210f14(_0x18fca4-0x454,_0x1b7bb4);}const _0x9f2070={};_0x9f2070['type']=_0x1510d9(0x16b,0x132),_0x9f2070[_0x1510d9(0xce,0xa3)]=_0x26d636,this['worker'][_0x1510d9(0x137,0x164)](_0x9f2070);},'setOptions':_0x4af4a9=>{function _0x2f26d8(_0x4362dd,_0x59e9c5){return _0x3e3d08(_0x4362dd,_0x59e9c5- -0x45e);}function _0x28fc5b(_0x41c7fc,_0x2a6d3e){return _0x3e3d08(_0x2a6d3e,_0x41c7fc- -0x16e);}const _0x1fc631={};_0x1fc631[_0x28fc5b(0x207,0x1f5)]=_0x28fc5b(0x1d8,0x1c3),_0x1fc631[_0x28fc5b(0x12e,0x141)]=_0x4af4a9,this['worker']['postMessage'](_0x1fc631);},'setDate':_0x2d4534=>{const _0x2988ae={};_0x2988ae[_0x21cc66(0x1e2,0x1d5)]=_0x243666(-0x169,-0x10d);function _0x21cc66(_0x510575,_0x261ba1){return _0x3e3d08(_0x261ba1,_0x510575- -0x193);}_0x2988ae[_0x21cc66(0x106,0xf9)]=_0x2d4534;function _0x243666(_0x5da904,_0x2df917){return _0x3e3d08(_0x5da904,_0x2df917- -0x3c9);}this[_0x243666(-0x1ae,-0x15c)]['postMessage'](_0x2988ae);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x45dbee={};_0x45dbee['type']='update';function _0x305848(_0x101932,_0x18f6e6){return _0x3e3d08(_0x101932,_0x18f6e6- -0x513);}this['worker'][_0x305848(-0x1f0,-0x20e)](_0x45dbee);},'clear':()=>{const _0x1d72fb={};function _0x41852c(_0x177422,_0x4ada7e){return _0x3e3d08(_0x177422,_0x4ada7e- -0x1dc);}_0x1d72fb['type']='clear',this[_0x41852c(0xa2,0x91)]['postMessage'](_0x1d72fb);}},this['windField']['init'](this['options']);}}mars3d__namespace[_0x3e2b6f(-0x3a,0x1b)][_0x2e342d(0x2ee,0x273)]('canvasWind',CanvasWindLayer),mars3d__namespace[_0x2e342d(0x2b7,0x28d)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x3e2b6f(-0x47,-0x4d)]=CanvasWindField,mars3d__namespace['Log'][_0x3e2b6f(0x83,0x9f)]('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports[_0x3e2b6f(-0xd6,-0x4d)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x2e342d(0x2d0,0x2ef)]=WindUtil;const _0x4515e3={};_0x4515e3[_0x2e342d(0x2fb,0x37d)]=!![],Object[_0x2e342d(0x2a7,0x307)](exports,'__esModule',_0x4515e3);
|
|
14
|
+
'use strict';function _0x260be5(_0x4acd11,_0x121492){return _0x66cf(_0x4acd11- -0x16d,_0x121492);}(function(_0x49f01c,_0x28baff){function _0x30eee7(_0x38a1b2,_0x1606fa){return _0x66cf(_0x38a1b2-0x2bc,_0x1606fa);}function _0x3cc9b0(_0xf7e921,_0x429974){return _0x66cf(_0x429974- -0x381,_0xf7e921);}const _0x34a454=_0x49f01c();while(!![]){try{const _0x5dbcc1=parseInt(_0x3cc9b0(-0x115,-0x193))/0x1+-parseInt(_0x30eee7(0x46d,0x4d5))/0x2+parseInt(_0x30eee7(0x443,0x3d2))/0x3*(parseInt(_0x3cc9b0(-0x18e,-0x13b))/0x4)+-parseInt(_0x3cc9b0(-0x1e9,-0x1c3))/0x5*(-parseInt(_0x30eee7(0x4f1,0x47b))/0x6)+parseInt(_0x30eee7(0x4e0,0x53f))/0x7*(parseInt(_0x30eee7(0x422,0x401))/0x8)+-parseInt(_0x3cc9b0(-0x1ef,-0x1f2))/0x9+-parseInt(_0x3cc9b0(-0x123,-0x161))/0xa;if(_0x5dbcc1===_0x28baff)break;else _0x34a454['push'](_0x34a454['shift']());}catch(_0x91bc76){_0x34a454['push'](_0x34a454['shift']());}}}(_0xa068,0xcfbfc));function _0x5e0b3a(_0x12087a,_0x5a7c49){return _0x66cf(_0x5a7c49-0xb6,_0x12087a);}function _interopNamespace(_0x1fa565){if(_0x1fa565&&_0x1fa565[_0x4150b2(0x5c5,0x647)])return _0x1fa565;function _0x4150b2(_0x146962,_0x4c34f3){return _0x66cf(_0x146962-0x37c,_0x4c34f3);}var _0x17ccc5=Object[_0x4150b2(0x4c9,0x532)](null);_0x1fa565&&Object['keys'](_0x1fa565)[_0x4150b2(0x539,0x50e)](function(_0x353598){function _0x29c992(_0x3e201d,_0x567886){return _0x13237d(_0x567886,_0x3e201d-0x680);}function _0x5860fe(_0x300097,_0x5e6f61){return _0x13237d(_0x5e6f61,_0x300097-0x12e);}if(_0x353598!==_0x29c992(0x4cb,0x47d)){var _0x2ffa08=Object['getOwnPropertyDescriptor'](_0x1fa565,_0x353598);Object[_0x29c992(0x4a9,0x43b)](_0x17ccc5,_0x353598,_0x2ffa08[_0x5860fe(-0x11b,-0x9e)]?_0x2ffa08:{'enumerable':!![],'get':function(){return _0x1fa565[_0x353598];}});}});function _0x13237d(_0x59f955,_0x361805){return _0x66cf(_0x361805- -0x39d,_0x59f955);}return _0x17ccc5['default']=_0x1fa565,_0x17ccc5;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x92d324,_0x32b718){const _0x5b90f9=_0x92d324*Math[_0x581d82(0x48b,0x461)](Cesium$2['Math']['toRadians'](_0x32b718));function _0x581d82(_0x40bf08,_0x445dc8){return _0x66cf(_0x445dc8-0x29a,_0x40bf08);}return _0x5b90f9;}function getV(_0x163fc7,_0x417f3a){function _0xff698(_0x479a65,_0xa387db){return _0x66cf(_0xa387db-0xde,_0x479a65);}const _0x3e009a=_0x163fc7*Math['sin'](Cesium$2[_0xff698(0x2c5,0x2b0)]['toRadians'](_0x417f3a));return _0x3e009a;}function getSpeed(_0x1ec206,_0x470247){function _0x28a09f(_0x378345,_0x11cdd7){return _0x66cf(_0x378345- -0x2c7,_0x11cdd7);}function _0x1c4621(_0x1978c2,_0x50178c){return _0x66cf(_0x50178c- -0x16b,_0x1978c2);}const _0x60e6d5=Math[_0x28a09f(-0x119,-0x15e)](Math['pow'](_0x1ec206,0x2)+Math[_0x1c4621(0xf2,0x8e)](_0x470247,0x2));return _0x60e6d5;}function getDirection(_0x1e08a3,_0x576f08){let _0x1b189a=Cesium$2['Math'][_0x2098d6(-0x1,-0x69)](Math['atan2'](_0x576f08,_0x1e08a3));function _0x2098d6(_0x5359c9,_0x28c9be){return _0x66cf(_0x28c9be- -0x298,_0x5359c9);}return _0x1b189a+=_0x1b189a<0x0?0x168:0x0,_0x1b189a;}const _0x4195e7={};_0x4195e7[_0x260be5(0x1,-0x5b)]=null,_0x4195e7['getU']=getU,_0x4195e7[_0x260be5(0x64,0xdd)]=getV,_0x4195e7[_0x260be5(0xb1,0x59)]=getSpeed,_0x4195e7['getDirection']=getDirection;var WindUtil=_0x4195e7,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=_0x5e0b3a(0x207,0x293),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=_0x260be5(0x31,-0x59),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[_0x5e0b3a(0x2ab,0x2dc)];class ShaderManager{static[_0x260be5(0xc,0x68)](){const _0x42e4f8={};return _0x42e4f8['sources']=[calculateSpeedShader],new ShaderSource$1(_0x42e4f8);}static['getUpdatePositionShader'](){const _0x38a7bc={};return _0x38a7bc['sources']=[updatePositionShader],new ShaderSource$1(_0x38a7bc);}static[_0x5e0b3a(0x363,0x2f9)](){const _0x4e4751={};return _0x4e4751['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x4e4751);}static['getSegmentDrawFragmentShader'](){const _0x4a8bd3={};return _0x4a8bd3['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x4a8bd3);}static['getPostProcessingPositionShader'](){const _0x37e2f8={};return _0x37e2f8['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x37e2f8);}}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(_0x28ee7c){this[_0x2933bf(-0x18e,-0x161)]=_0x28ee7c[_0x2933bf(-0x18e,-0x21c)],this[_0x2933bf(-0x153,-0xe1)]=_0x28ee7c[_0x54086f(0xf6,0xb8)],this[_0x2933bf(-0x8d,-0xbf)]=_0x28ee7c['attributeLocations'],this['primitiveType']=_0x28ee7c['primitiveType'];function _0x54086f(_0xf5d3fe,_0x569e31){return _0x5e0b3a(_0x569e31,_0xf5d3fe- -0x14d);}this[_0x2933bf(-0x13d,-0x1a2)]=_0x28ee7c['uniformMap']||{},this['vertexShaderSource']=_0x28ee7c['vertexShaderSource'],this[_0x2933bf(-0xc7,-0x125)]=_0x28ee7c['fragmentShaderSource'];function _0x2933bf(_0x1945bf,_0xe85060){return _0x5e0b3a(_0xe85060,_0x1945bf- -0x396);}this[_0x2933bf(-0x192,-0x1f1)]=_0x28ee7c[_0x2933bf(-0x192,-0x120)],this['framebuffer']=_0x28ee7c[_0x54086f(0xb2,0x5d)],this['outputTexture']=_0x28ee7c[_0x54086f(0x160,0xf9)],this['autoClear']=_0x28ee7c['autoClear']??![],this[_0x54086f(0x104,0xfd)]=_0x28ee7c['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x28ee7c['isDynamic']??(()=>!![]),this['autoClear']&&(this[_0x2933bf(-0xef,-0x143)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x162e96){function _0xc2bf74(_0x118fa6,_0x3d2e3f){return _0x5e0b3a(_0x3d2e3f,_0x118fa6- -0x3e0);}function _0x4ee324(_0x31754b,_0x27a996){return _0x260be5(_0x31754b-0x180,_0x27a996);}if(this['commandType']==='Draw'){const _0x1e71e2={};_0x1e71e2['context']=_0x162e96,_0x1e71e2['geometry']=this[_0xc2bf74(-0x19d,-0x190)],_0x1e71e2['attributeLocations']=this[_0xc2bf74(-0xd7,-0xa4)],_0x1e71e2[_0xc2bf74(-0x11e,-0xe2)]=BufferUsage$1['STATIC_DRAW'];const _0x3f0af2=VertexArray$1['fromGeometry'](_0x1e71e2),_0x4ede3a={};_0x4ede3a[_0x4ee324(0x21a,0x281)]=_0x162e96,_0x4ede3a['vertexShaderSource']=this['vertexShaderSource'],_0x4ede3a[_0x4ee324(0x22c,0x29f)]=this['fragmentShaderSource'],_0x4ede3a['attributeLocations']=this['attributeLocations'];const _0xeeadcf=ShaderProgram['fromCache'](_0x4ede3a),_0x3df5bd=RenderState['fromCache'](this['rawRenderState']),_0x59d0b3={};return _0x59d0b3['owner']=this,_0x59d0b3['vertexArray']=_0x3f0af2,_0x59d0b3[_0x4ee324(0x261,0x29a)]=this['primitiveType'],_0x59d0b3[_0x4ee324(0x20f,0x272)]=Matrix4['IDENTITY'],_0x59d0b3['renderState']=_0x3df5bd,_0x59d0b3['shaderProgram']=_0xeeadcf,_0x59d0b3['framebuffer']=this[_0xc2bf74(-0x1e1,-0x1f4)],_0x59d0b3['uniformMap']=this['uniformMap'],_0x59d0b3[_0xc2bf74(-0x1d0,-0x15f)]=Pass$1[_0xc2bf74(-0x176,-0x15e)],new DrawCommand(_0x59d0b3);}else{if(this[_0xc2bf74(-0x1d8,-0x1c8)]===_0x4ee324(0x1e2,0x1f8)){const _0x1befd2={};return _0x1befd2[_0xc2bf74(-0x128,-0x134)]=this,_0x1befd2[_0x4ee324(0x22c,0x19c)]=this[_0xc2bf74(-0x111,-0xaf)],_0x1befd2['uniformMap']=this[_0xc2bf74(-0x187,-0x122)],_0x1befd2['outputTexture']=this[_0xc2bf74(-0x133,-0xf4)],_0x1befd2['persists']=!![],new ComputeCommand(_0x1befd2);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x54635b,_0x236d32){function _0x24eab4(_0x20665d,_0x15a4b6){return _0x5e0b3a(_0x15a4b6,_0x20665d- -0x1e9);}function _0x4682cb(_0x108c6c,_0x333d1e){return _0x260be5(_0x333d1e- -0xbe,_0x108c6c);}this[_0x4682cb(-0x4e,-0x9e)]=_0x236d32,defined(this[_0x4682cb(-0x12,0x2c)])&&(this['commandToExecute']['vertexArray']=VertexArray$1[_0x4682cb(0x54,-0x23)]({'context':_0x54635b,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x24eab4(0x62,0x77)]}));}['update'](_0x33edfc){if(!this['isDynamic']())return;if(!this['show']||!defined(_0x33edfc))return;function _0x3870bb(_0x3cf029,_0x5e7b3f){return _0x5e0b3a(_0x3cf029,_0x5e7b3f- -0x259);}!defined(this[_0x112256(0x107,0x7d)])&&(this['commandToExecute']=this['createCommand'](_0x33edfc['context']));defined(this[_0x112256(-0x1c,-0x3f)])&&this['preExecute']();function _0x112256(_0x48c861,_0x5525a7){return _0x260be5(_0x5525a7- -0x6d,_0x48c861);}if(!_0x33edfc[_0x112256(0x4c,0x66)]){console[_0x3870bb(-0x38,-0x5d)]('frameState.commandList\x20is\x20undefined');return;}defined(this[_0x112256(-0x49,0x17)])&&_0x33edfc['commandList'][_0x3870bb(-0x2,-0x5f)](this[_0x112256(0x6e,0x17)]),defined(this['commandToExecute'])&&_0x33edfc['commandList']['push'](this[_0x3870bb(0x129,0xb4)]);}[_0x5e0b3a(0x2e8,0x318)](){return![];}['destroy'](){function _0x303d9f(_0x5cbaae,_0x59fa35){return _0x5e0b3a(_0x59fa35,_0x5cbaae- -0x404);}function _0x51b6ec(_0x20f135,_0x10faf4){return _0x5e0b3a(_0x10faf4,_0x20f135- -0x37b);}if(defined(this['commandToExecute'])){var _0x28318a;(_0x28318a=this[_0x51b6ec(-0x6e,-0x50)]['shaderProgram'])===null||_0x28318a===void 0x0||_0x28318a[_0x51b6ec(-0x161,-0x132)](),this['commandToExecute']['shaderProgram']=undefined;}return destroyObject(this);}}function _0x66cf(_0x211a0b,_0x2a47da){const _0xa06866=_0xa068();return _0x66cf=function(_0x66cf53,_0x546e05){_0x66cf53=_0x66cf53-0x141;let _0x15d363=_0xa06866[_0x66cf53];return _0x15d363;},_0x66cf(_0x211a0b,_0x2a47da);}function deepMerge(_0x16f975,_0x2306d5){if(!_0x16f975)return _0x2306d5;if(!_0x2306d5)return _0x16f975;function _0x4625e3(_0x4a2bc1,_0x9608c2){return _0x260be5(_0x4a2bc1-0x315,_0x9608c2);}const _0x762979={..._0x2306d5},_0x24b893=_0x762979;for(const _0x1e61c9 in _0x16f975){if(Object[_0x37269f(-0xe1,-0x149)]['hasOwnProperty']['call'](_0x16f975,_0x1e61c9)){const _0x46140b=_0x16f975[_0x1e61c9],_0x51ecb2=_0x2306d5[_0x1e61c9];if(Array[_0x4625e3(0x3b1,0x390)](_0x46140b)){_0x24b893[_0x1e61c9]=_0x46140b[_0x37269f(-0x221,-0x1a2)]();continue;}if(_0x46140b&&typeof _0x46140b==='object'){_0x24b893[_0x1e61c9]=deepMerge(_0x46140b,_0x51ecb2||{});continue;}_0x46140b!==undefined&&(_0x24b893[_0x1e61c9]=_0x46140b);}}function _0x37269f(_0x405356,_0x13c973){return _0x5e0b3a(_0x405356,_0x13c973- -0x447);}return _0x24b893;}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[_0x260be5(0xb9,0x6a)];class WindParticlesComputing{constructor(_0x20bf69,_0x1e427e,_0x1412d0,_0x2bc84d,_0x266b17){this[_0x266287(0x4dc,0x533)]=_0x20bf69,this['options']=_0x1412d0,this['viewerParameters']=_0x2bc84d,this['windData']=_0x1e427e,this['frameRate']=0x3c,this[_0x151a8d(0x5d4,0x583)]=0x1;function _0x151a8d(_0x34e2cb,_0xea72){return _0x260be5(_0x34e2cb-0x52a,_0xea72);}const _0x5e2b7e={};_0x5e2b7e[_0x266287(0x4a8,0x4a3)]=_0x266b17,_0x5e2b7e[_0x266287(0x4ee,0x56a)]=0x1,_0x5e2b7e[_0x266287(0x433,0x4ae)]=0x0;function _0x266287(_0x2f892f,_0x24991d){return _0x260be5(_0x24991d-0x499,_0x2f892f);}this[_0x266287(0x56c,0x551)]=new FrameRateMonitor(_0x5e2b7e),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures'](),this[_0x151a8d(0x5a2,0x5de)]();}['initFrameRate'](){const _0x3ed912=()=>{function _0x4c3d65(_0x43a643,_0xdd873d){return _0x66cf(_0x43a643- -0x1a9,_0xdd873d);}function _0x36b139(_0x254f2b,_0x510e9c){return _0x66cf(_0x254f2b-0x3d0,_0x510e9c);}this[_0x36b139(0x5f5,0x623)][_0x4c3d65(-0x62,-0xcd)]>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0x3ed912();function _0x235a69(_0x3e4248,_0x482088){return _0x260be5(_0x3e4248-0x3ba,_0x482088);}const _0x149a87=setInterval(_0x3ed912,0x3e8),_0x358e4e=this['destroy'][_0x235a69(0x409,0x419)](this);this['destroy']=()=>{clearInterval(_0x149a87),_0x358e4e();};}['createWindTextures'](){const _0x1f0c9c={};_0x1f0c9c['minificationFilter']=TextureMinificationFilter$1['LINEAR'];function _0x307f1e(_0x13db80,_0x155205){return _0x260be5(_0x155205-0x285,_0x13db80);}_0x1f0c9c['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x969df3={'context':this[_0x175c5d(0x569,0x52b)],'width':this['windData']['width'],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x1f0c9c)};function _0x175c5d(_0x176067,_0x58c7af){return _0x5e0b3a(_0x58c7af,_0x176067-0x2ac);}this[_0x175c5d(0x556,0x4da)]={'U':new Texture$1({..._0x969df3,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x969df3,'source':{'arrayBufferView':new Float32Array(this[_0x307f1e(0x2cd,0x26e)]['v']['array'])}})};}[_0x260be5(0x46,-0x36)](){const _0x58a97b={};function _0x22b7cc(_0x141535,_0x270229){return _0x5e0b3a(_0x141535,_0x270229- -0x3a5);}_0x58a97b[_0x305a68(-0x1bf,-0x15a)]=TextureMinificationFilter$1['NEAREST'],_0x58a97b[_0x305a68(-0x131,-0xd3)]=TextureMagnificationFilter$1[_0x22b7cc(-0x81,-0xc2)];const _0x38e09d={'context':this['context'],'width':this[_0x305a68(-0x128,-0x10b)]['particlesTextureSize'],'height':this['options'][_0x22b7cc(-0x13c,-0x13d)],'pixelFormat':PixelFormat$1[_0x305a68(-0x152,-0x117)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options']['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x58a97b)};function _0x305a68(_0x5bcf73,_0xf16430){return _0x260be5(_0x5bcf73- -0x213,_0xf16430);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x38e09d),'currentParticlesPosition':new Texture$1(_0x38e09d),'nextParticlesPosition':new Texture$1(_0x38e09d),'postProcessingPosition':new Texture$1(_0x38e09d),'particlesSpeed':new Texture$1(_0x38e09d)};}[_0x260be5(0x91,0x89)](){function _0x47654a(_0x192e8a,_0x38ee42){return _0x260be5(_0x38ee42- -0x24b,_0x192e8a);}Object['values'](this['particlesTextures'])['forEach'](_0x58a67f=>_0x58a67f[_0x47654a(-0x236,-0x254)]());}[_0x260be5(0x78,0xfc)](){function _0x184e66(_0x2bc962,_0x50d021){return _0x260be5(_0x2bc962-0x46f,_0x50d021);}function _0x1a545d(_0x5de867,_0x27d5d7){return _0x5e0b3a(_0x27d5d7,_0x5de867-0x264);}this[_0x1a545d(0x476,0x3ea)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this[_0x1a545d(0x50e,0x52e)]['V'],'uRange':()=>new Cartesian2$1(this[_0x1a545d(0x470,0x4ea)]['u'][_0x184e66(0x4e3,0x565)],this[_0x1a545d(0x470,0x441)]['u'][_0x184e66(0x49b,0x438)]),'vRange':()=>new Cartesian2$1(this[_0x1a545d(0x470,0x400)]['v'][_0x184e66(0x4e3,0x52b)],this['windData']['v'][_0x1a545d(0x4b3,0x504)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this[_0x1a545d(0x4ab,0x507)]['currentParticlesPosition'],'speedScaleFactor':()=>{function _0xf8d37(_0x45937d,_0x11aadf){return _0x184e66(_0x45937d- -0x53e,_0x11aadf);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0xf8d37(0x1c,0x7a)]['speedFactor'];},'frameRateAdjustment':()=>this[_0x1a545d(0x531,0x561)],'dimension':()=>new Cartesian2$1(this['windData']['width'],this[_0x1a545d(0x470,0x4d4)][_0x1a545d(0x48a,0x4dc)]),'minimum':()=>new Cartesian2$1(this['windData'][_0x1a545d(0x564,0x577)][_0x184e66(0x4c6,0x4be)],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this[_0x184e66(0x458,0x491)]['bounds']['east'],this['windData']['bounds']['north'])},'fragmentShaderSource':ShaderManager[_0x184e66(0x47b,0x492)](),'outputTexture':this['particlesTextures']['particlesSpeed'],'preExecute':()=>{function _0x4a0e41(_0x1bedc1,_0x4f92a0){return _0x1a545d(_0x4f92a0- -0x1a2,_0x1bedc1);}const _0x4f3469=this['particlesTextures'][_0x4a0e41(0x3f2,0x368)];function _0x4d938a(_0x204e1b,_0x533614){return _0x1a545d(_0x533614- -0x1ca,_0x204e1b);}this['particlesTextures']['previousParticlesPosition']=this['particlesTextures'][_0x4d938a(0x3de,0x379)],this['particlesTextures']['currentParticlesPosition']=this[_0x4d938a(0x2b7,0x2e1)]['postProcessingPosition'],this[_0x4d938a(0x27a,0x2e1)]['postProcessingPosition']=_0x4f3469,this[_0x4d938a(0x2b7,0x2ac)][_0x4d938a(0x2e2,0x2b8)]['commandToExecute']&&(this['primitives'][_0x4a0e41(0x302,0x2e0)]['commandToExecute']['outputTexture']=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':_0x184e66(0x4d1,0x526),'uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x23277(_0x194a12,_0x318ea9){return _0x184e66(_0x194a12- -0x488,_0x318ea9);}function _0x3a2db8(_0xa26779,_0x1067bb){return _0x1a545d(_0x1067bb- -0x3fa,_0xa26779);}this[_0x23277(-0x2a,-0x9c)][_0x3a2db8(0x1a1,0x11d)]['commandToExecute']&&(this[_0x3a2db8(0xdd,0x7c)]['updatePosition']['commandToExecute']['outputTexture']=this['particlesTextures'][_0x3a2db8(0x134,0x16b)]);},'isDynamic':()=>this[_0x1a545d(0x572,0x590)]['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x1a545d(0x4e9,0x575),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x184e66(0x54d,0x4fa)],'particlesSpeed':()=>this['particlesTextures'][_0x1a545d(0x52b,0x582)],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this[_0x1a545d(0x48e,0x437)]['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x184e66(0x54c,0x561)][_0x1a545d(0x4de,0x4c2)],this[_0x184e66(0x458,0x3dc)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds'][_0x184e66(0x4cf,0x453)],this['windData'][_0x184e66(0x54c,0x57f)]['north']),'randomCoefficient':function(){function _0x4f3ed3(_0xb09cdb,_0x2398df){return _0x184e66(_0xb09cdb- -0x4b2,_0x2398df);}return Math[_0x4f3ed3(-0x5b,-0x48)]();},'dropRate':()=>this['options'][_0x1a545d(0x4e4,0x521)],'dropRateBump':()=>this[_0x184e66(0x55a,0x526)][_0x184e66(0x48b,0x4d1)],'useViewerBounds':()=>this['options'][_0x1a545d(0x49b,0x453)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures'][_0x1a545d(0x52e,0x547)],'preExecute':()=>{function _0x3a20fe(_0x543ea2,_0x5db95d){return _0x184e66(_0x5db95d- -0x1dc,_0x543ea2);}function _0x26a48c(_0x96a4bd,_0x2b0d9d){return _0x1a545d(_0x2b0d9d- -0x125,_0x96a4bd);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this['primitives'][_0x3a20fe(0x368,0x33a)]['commandToExecute']['outputTexture']=this['particlesTextures'][_0x26a48c(0x39f,0x409)]);},'isDynamic':()=>this['options']['dynamic']})};}[_0x5e0b3a(0x297,0x266)](){function _0x90c4ca(_0x3396b4,_0x3b4f76){return _0x5e0b3a(_0x3396b4,_0x3b4f76- -0x230);}this['windTextures']['U']['destroy'](),this['windTextures']['V']['destroy'](),this[_0x90c4ca(0x4,-0x23)]();}['updateWindData'](_0x55ee61){function _0x4409ed(_0x1615eb,_0x31824f){return _0x260be5(_0x31824f-0x248,_0x1615eb);}this['windData']=_0x55ee61,this[_0x4409ed(0x278,0x28b)]();}['updateOptions'](_0x29cff8){function _0x38adf9(_0x5c2658,_0x1e7d6b){return _0x5e0b3a(_0x5c2658,_0x1e7d6b-0x2d3);}const _0xc0ed97=_0x29cff8['flipY']!==undefined&&_0x29cff8[_0x27d504(0x59e,0x5a5)]!==this[_0x27d504(0x602,0x5fe)]['flipY'];function _0x27d504(_0x2d506d,_0x13d665){return _0x5e0b3a(_0x2d506d,_0x13d665-0x2f0);}this[_0x38adf9(0x5a3,0x5e1)]=deepMerge(_0x29cff8,this['options']),_0xc0ed97&&this[_0x27d504(0x5d3,0x556)]();}['processWindData'](_0x24f3d3){function _0x1caad7(_0x571100,_0x417b25){return _0x260be5(_0x417b25- -0x25c,_0x571100);}const {array:_0x52f01d}=_0x24f3d3;let {min:_0x3c58d2,max:_0x2cc938}=_0x24f3d3;const _0x2228df=new Float32Array(_0x52f01d['length']);_0x3c58d2===undefined&&(console[_0x5eb42a(0x3eb,0x41b)](_0x1caad7(-0x245,-0x27e)),_0x3c58d2=Math['min'](..._0x52f01d));function _0x5eb42a(_0xa76662,_0xbb063b){return _0x260be5(_0xa76662-0x412,_0xbb063b);}_0x2cc938===undefined&&(console['warn'](_0x1caad7(-0x1f0,-0x1be)),_0x2cc938=Math['max'](..._0x52f01d));const _0x4c7eb5=Math[_0x1caad7(-0x257,-0x230)](Math['abs'](_0x3c58d2),Math[_0x5eb42a(0x4d0,0x475)](_0x2cc938));for(let _0x3377ca=0x0;_0x3377ca<_0x52f01d['length'];_0x3377ca++){const _0x2e1326=_0x52f01d[_0x3377ca]/_0x4c7eb5;_0x2228df[_0x3377ca]=_0x2e1326;}return _0x2228df;}['destroy'](){function _0x50b867(_0x565d99,_0x510f9a){return _0x260be5(_0x565d99-0x4f3,_0x510f9a);}Object['values'](this['windTextures'])[_0x11964a(0x2f5,0x355)](_0x892998=>_0x892998['destroy']()),Object[_0x50b867(0x55e,0x589)](this['particlesTextures'])['forEach'](_0x3b09c6=>_0x3b09c6['destroy']()),Object['values'](this['primitives'])[_0x50b867(0x543,0x542)](_0x3e53d4=>_0x3e53d4['destroy']());function _0x11964a(_0x46836c,_0x143b31){return _0x260be5(_0x143b31-0x305,_0x46836c);}this['frameRateMonitor']['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x5e0b3a(0x259,0x2dc)];class WindParticlesRendering{constructor(_0x10e31f,_0x1037b1,_0xe31c2e,_0x299d85){function _0x2cfd8e(_0x180f7f,_0x196605){return _0x260be5(_0x196605-0x111,_0x180f7f);}this['context']=_0x10e31f;function _0x2b15d8(_0xff527a,_0xf0f29){return _0x5e0b3a(_0xff527a,_0xf0f29-0x2bf);}this['options']=_0x1037b1,this[_0x2cfd8e(0x1a1,0x118)]=_0xe31c2e,this[_0x2b15d8(0x4f8,0x4e7)]=_0x299d85,(typeof this[_0x2cfd8e(0x201,0x1fc)][_0x2cfd8e(0xf6,0x156)]!==_0x2cfd8e(0x26e,0x1fe)||this[_0x2b15d8(0x61e,0x5cd)]['particlesTextureSize']<=0x0)&&(console[_0x2cfd8e(0x235,0x1e1)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x2cfd8e(0x22f,0x1fc)]['particlesTextureSize']=0x100),this[_0x2b15d8(0x5d1,0x561)]=this[_0x2b15d8(0x4e0,0x522)](),this['textures']=this['createRenderingTextures'](),this['framebuffers']=this['createRenderingFramebuffers'](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x31444c={};function _0x2b666d(_0xaca023,_0x3e8787){return _0x260be5(_0xaca023-0x80,_0x3e8787);}_0x31444c['context']=this[_0x2b666d(0x11a,0x141)],_0x31444c['width']=this[_0x2b666d(0x11a,0xf7)]['drawingBufferWidth'],_0x31444c[_0x2b666d(0x83,0x71)]=this['context']['drawingBufferHeight'],_0x31444c['pixelFormat']=PixelFormat['RGBA'],_0x31444c['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x51822d=_0x31444c,_0x417ee4={};_0x417ee4[_0x40ff1d(0x443,0x408)]=this[_0x2b666d(0x11a,0x10b)],_0x417ee4[_0x2b666d(0x149,0xf1)]=this['context']['drawingBufferWidth'],_0x417ee4[_0x40ff1d(0x307,0x371)]=this['context']['drawingBufferHeight'],_0x417ee4['pixelFormat']=PixelFormat['DEPTH_COMPONENT'];function _0x40ff1d(_0x1c7df3,_0x2ba511){return _0x5e0b3a(_0x1c7df3,_0x2ba511-0x14b);}_0x417ee4['pixelDatatype']=PixelDatatype[_0x40ff1d(0x38c,0x36c)];const _0x5cf21d=_0x417ee4;return{'segmentsColor':new Texture(_0x51822d),'segmentsDepth':new Texture(_0x5cf21d)};}['createRenderingFramebuffers'](){const _0x1530a9={};function _0x2e435b(_0x314b09,_0x4f48ac){return _0x5e0b3a(_0x314b09,_0x4f48ac- -0x23c);}_0x1530a9[_0x9265d3(0xb3,0x8d)]=this[_0x2e435b(0x4e,0x81)],_0x1530a9['colorTextures']=[this['textures']['segmentsColor']],_0x1530a9['depthTexture']=this['textures'][_0x9265d3(0x2b,-0x10)];function _0x9265d3(_0x12c942,_0x3d673a){return _0x5e0b3a(_0x3d673a,_0x12c942- -0x20a);}return{'segments':new Framebuffer(_0x1530a9)};}[_0x5e0b3a(0x2e0,0x2a1)](){function _0x3f614c(_0x47bc24,_0x4a4e7b){return _0x260be5(_0x4a4e7b- -0x77,_0x47bc24);}Object[_0x3f614c(-0x63,-0xc)](this['framebuffers'])['forEach'](_0xeaa058=>{_0xeaa058['destroy']();});}['createColorTableTexture'](){const _0x2abe7e=new Float32Array(this['options']['colors'][_0x5f2d75(-0x113,-0xe0)](_0x28361d=>{function _0x661367(_0x4c101e,_0x489660){return _0x5f2d75(_0x4c101e,_0x489660-0x580);}const _0x5d0a3b=Color$1['fromCssColorString'](_0x28361d);return[_0x5d0a3b['red'],_0x5d0a3b['green'],_0x5d0a3b[_0x661367(0x49b,0x4f5)],_0x5d0a3b['alpha']];})),_0x3ac2d3={};_0x3ac2d3['minificationFilter']=TextureMinificationFilter[_0x5f2d75(-0xfd,-0xb0)];function _0x1530c6(_0x13831c,_0x494991){return _0x260be5(_0x494991-0x13d,_0x13831c);}_0x3ac2d3['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x3ac2d3['wrapS']=TextureWrap[_0x1530c6(0x1f6,0x1b3)],_0x3ac2d3[_0x5f2d75(-0x70,-0xf)]=TextureWrap[_0x1530c6(0x201,0x1b3)];function _0x5f2d75(_0x3e7b3f,_0x202ba2){return _0x5e0b3a(_0x3e7b3f,_0x202ba2- -0x2d7);}return new Texture({'context':this['context'],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype[_0x5f2d75(0x5a,-0x1d)],'sampler':new Sampler(_0x3ac2d3),'source':{'width':this['options']['colors']['length'],'height':0x1,'arrayBufferView':_0x2abe7e}});}[_0x5e0b3a(0x2db,0x2c4)](){const _0x57ccef=0x4,_0x2d4d4b=this['options'][_0x4afc2c(0x525,0x540)];let _0x2c2f40=[];for(let _0x48bba6=0x0;_0x48bba6<_0x2d4d4b;_0x48bba6++){for(let _0x5cb1bc=0x0;_0x5cb1bc<_0x2d4d4b;_0x5cb1bc++){for(let _0x57a228=0x0;_0x57a228<_0x57ccef;_0x57a228++){_0x2c2f40['push'](_0x48bba6/_0x2d4d4b),_0x2c2f40['push'](_0x5cb1bc/_0x2d4d4b);}}}_0x2c2f40=new Float32Array(_0x2c2f40);const _0x595781=this[_0xcb13ec(0x4e1,0x4ef)][_0xcb13ec(0x43b,0x480)]**0x2;let _0x14a418=[];for(let _0x35a92a=0x0;_0x35a92a<_0x595781;_0x35a92a++){_0x14a418[_0x4afc2c(0x4b7,0x4e0)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x14a418=new Float32Array(_0x14a418);let _0x1b8374=[];for(let _0x3e4e53=0x0,_0x1da88f=0x0;_0x3e4e53<_0x595781;_0x3e4e53++){_0x1b8374[_0xcb13ec(0x3cd,0x40d)](_0x1da88f+0x0,_0x1da88f+0x1,_0x1da88f+0x2,_0x1da88f+0x2,_0x1da88f+0x1,_0x1da88f+0x3),_0x1da88f+=_0x57ccef;}function _0xcb13ec(_0x51a325,_0x15b67b){return _0x5e0b3a(_0x15b67b,_0x51a325-0x1d3);}_0x1b8374=new Uint32Array(_0x1b8374);const _0x3f3cf4={};_0x3f3cf4[_0xcb13ec(0x49c,0x41f)]=ComponentDatatype['FLOAT'],_0x3f3cf4['componentsPerAttribute']=0x2,_0x3f3cf4[_0x4afc2c(0x54b,0x4fd)]=_0x2c2f40;function _0x4afc2c(_0x117621,_0x320bcb){return _0x5e0b3a(_0x320bcb,_0x117621-0x2bd);}const _0x4ed9f9={};_0x4ed9f9['componentDatatype']=ComponentDatatype[_0xcb13ec(0x48d,0x4c7)],_0x4ed9f9['componentsPerAttribute']=0x3,_0x4ed9f9[_0xcb13ec(0x461,0x3d5)]=_0x14a418;const _0x820a4d=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x3f3cf4),'normal':new GeometryAttribute(_0x4ed9f9)}),'indices':_0x1b8374});return _0x820a4d;}[_0x260be5(0xf4,0xe2)](_0x5bc7b5){const _0x393ed4={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x5bc7b5};return Appearance['getDefaultRenderState'](!![],![],_0x393ed4);}['createPrimitives'](){const _0x226cdb={};_0x226cdb['st']=0x0,_0x226cdb[_0xbac445(0x517,0x4a3)]=0x1;const _0x310e9b={};function _0x3060bc(_0x13e8dc,_0x32f699){return _0x5e0b3a(_0x13e8dc,_0x32f699-0x259);}_0x310e9b['enabled']=!![];const _0x56d801={};_0x56d801['enabled']=!![],_0x56d801[_0xbac445(0x4d9,0x4cd)]=WebGLRenderingContext['FUNC_ADD'],_0x56d801[_0xbac445(0x59f,0x54f)]=WebGLRenderingContext[_0xbac445(0x53f,0x537)],_0x56d801[_0x3060bc(0x510,0x561)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x34cc35={};_0x34cc35['viewport']=undefined;function _0xbac445(_0x117733,_0x579755){return _0x5e0b3a(_0x117733,_0x579755-0x271);}_0x34cc35[_0x3060bc(0x407,0x472)]=_0x310e9b,_0x34cc35['depthMask']=!![],_0x34cc35['blending']=_0x56d801;const _0x12931b=new CustomPrimitive({'commandType':_0xbac445(0x585,0x522),'attributeLocations':_0x226cdb,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures'][_0xbac445(0x590,0x517)],'currentParticlesPosition':()=>this[_0xbac445(0x511,0x499)]['particlesTextures'][_0xbac445(0x5b5,0x550)],'postProcessingPosition':()=>this[_0xbac445(0x4ca,0x499)]['particlesTextures'][_0x3060bc(0x4f7,0x523)],'particlesSpeed':()=>this['computing']['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this[_0xbac445(0x41b,0x499)]['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x3a8387(_0x197bd1,_0x4640f7){return _0xbac445(_0x197bd1,_0x4640f7-0x8d);}var _0x4f4458,_0xbe4438;const _0x31a3a9=new Cartesian2(((_0x4f4458=this[_0x3a8387(0x595,0x60c)]['domain'])===null||_0x4f4458===void 0x0?void 0x0:_0x4f4458[_0x3a8387(0x511,0x595)])??this[_0x3a8387(0x525,0x526)][_0x33d527(0x3b8,0x337)]['speed']['min'],((_0xbe4438=this['options'][_0x33d527(0x44f,0x452)])===null||_0xbe4438===void 0x0?void 0x0:_0xbe4438['max'])??this[_0x3a8387(0x524,0x526)]['windData']['speed'][_0x33d527(0x3fb,0x3ac)]);function _0x33d527(_0x5bb662,_0x718e8f){return _0x3060bc(_0x718e8f,_0x5bb662- -0xad);}return _0x31a3a9;},'displayRange':()=>{function _0x214d40(_0x1990c4,_0x43f4bd){return _0xbac445(_0x43f4bd,_0x1990c4- -0x127);}var _0x582c90,_0x27f637;function _0x4ea90d(_0x1c0ef5,_0x20d258){return _0xbac445(_0x20d258,_0x1c0ef5- -0x6eb);}const _0x50e37d=new Cartesian2(((_0x582c90=this[_0x4ea90d(-0x16c,-0x1b8)][_0x214d40(0x3da,0x3da)])===null||_0x582c90===void 0x0?void 0x0:_0x582c90['min'])??this[_0x214d40(0x372,0x393)]['windData']['speed'][_0x214d40(0x3e1,0x3e9)],((_0x27f637=this['options']['displayRange'])===null||_0x27f637===void 0x0?void 0x0:_0x27f637[_0x4ea90d(-0x22b,-0x2ab)])??this['computing'][_0x214d40(0x356,0x31f)]['speed']['max']);return _0x50e37d;},'particleHeight':()=>this['options'][_0xbac445(0x47d,0x4e7)]||0x0,'aspect':()=>this[_0x3060bc(0x4be,0x516)][_0xbac445(0x574,0x54a)]/this['context']['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters'][_0x3060bc(0x533,0x4d4)],'lineWidth':()=>{function _0x5d395a(_0x595749,_0x233dd7){return _0xbac445(_0x233dd7,_0x595749- -0x30e);}const _0x35bbed={};_0x35bbed['min']=0x1;function _0x431ef8(_0x521d08,_0x2a2ff7){return _0xbac445(_0x521d08,_0x2a2ff7- -0x2f3);}_0x35bbed[_0x5d395a(0x1b2,0x15c)]=0x2;const _0x2a0240=this['options']['lineWidth']||_0x35bbed;return new Cartesian2(_0x2a0240[_0x431ef8(0x236,0x215)],_0x2a0240[_0x5d395a(0x1b2,0x125)]);},'lineLength':()=>{const _0x45e1d8={};_0x45e1d8['min']=0x14,_0x45e1d8['max']=0x64;function _0x10cc88(_0x434560,_0x156b89){return _0xbac445(_0x434560,_0x156b89- -0x692);}const _0x1fc1fe=this['options'][_0x10cc88(-0x1ce,-0x1e3)]||_0x45e1d8;return new Cartesian2(_0x1fc1fe['min'],_0x1fc1fe['max']);},'is3D':()=>this['viewerParameters'][_0x3060bc(0x47e,0x46e)]===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0xbac445(0x4b6,0x471)][_0x3060bc(0x413,0x48e)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x34cc35)}),_0x1791c9={};return _0x1791c9[_0xbac445(0x505,0x551)]=_0x12931b,_0x1791c9;}['onParticlesTextureSizeChange'](){const _0x594f1a=this[_0x38f5f8(0x1,0x11)]();this['primitives']['segments']['geometry']=_0x594f1a;function _0x38f5f8(_0x5e2532,_0x215ed5){return _0x5e0b3a(_0x5e2532,_0x215ed5- -0x2b3);}const _0xf44244={};_0xf44244['context']=this[_0x38f5f8(0x59,0xa)],_0xf44244[_0x38f5f8(-0x8b,-0x70)]=_0x594f1a,_0xf44244[_0x38f5f8(0x31,0x56)]=this[_0x38f5f8(-0x6b,-0xa1)]['segments']['attributeLocations'];function _0x15419c(_0x7650aa,_0x2939e5){return _0x260be5(_0x7650aa-0x46d,_0x2939e5);}_0xf44244['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0x4323b2=VertexArray[_0x38f5f8(-0x76,0xb)](_0xf44244);this['primitives']['segments']['commandToExecute']&&(this['primitives'][_0x38f5f8(0x3f,0x2d)][_0x15419c(0x557,0x52b)][_0x38f5f8(-0x2d,-0x63)]=_0x4323b2);}['onColorTableChange'](){function _0x4ee9a0(_0xa19562,_0x208a69){return _0x5e0b3a(_0x208a69,_0xa19562- -0x2aa);}this['colorTable']['destroy']();function _0x3e7912(_0x563413,_0x19f895){return _0x5e0b3a(_0x19f895,_0x563413-0x25d);}this[_0x3e7912(0x4ff,0x553)]=this[_0x3e7912(0x4c0,0x4da)]();}[_0x260be5(0x86,0xfc)](_0x480ea8){function _0x2e0417(_0x4bf7c5,_0x59a3c5){return _0x5e0b3a(_0x4bf7c5,_0x59a3c5- -0x3cf);}const _0x497cd5=_0x480ea8[_0x4dbc56(-0x1ac,-0x222)]&&JSON[_0x2e0417(-0x5d,-0xe1)](_0x480ea8[_0x4dbc56(-0x1ac,-0x13c)])!==JSON['stringify'](this['options'][_0x2e0417(-0x191,-0x172)]);this[_0x4dbc56(-0xfb,-0x179)]=deepMerge(_0x480ea8,this[_0x4dbc56(-0xfb,-0xcc)]);function _0x4dbc56(_0x3a278e,_0x3f90b8){return _0x5e0b3a(_0x3f90b8,_0x3a278e- -0x409);}_0x497cd5&&this[_0x2e0417(-0x138,-0xd8)]();}['destroy'](){Object['values'](this[_0x5b0c6c(-0x22,0x10)])['forEach'](_0x3a06c8=>{_0x3a06c8['destroy']();});function _0x5b0c6c(_0x24566f,_0x8c53b4){return _0x260be5(_0x8c53b4- -0x5e,_0x24566f);}function _0x4f1f3c(_0xb64222,_0x3db83e){return _0x5e0b3a(_0xb64222,_0x3db83e-0x2f1);}Object[_0x5b0c6c(-0x1,0xd)](this[_0x4f1f3c(0x4a7,0x503)])['forEach'](_0x35ef2b=>{function _0x354c63(_0x35cfaa,_0xc98b9e){return _0x5b0c6c(_0x35cfaa,_0xc98b9e-0x1b0);}_0x35ef2b[_0x354c63(0x193,0x149)]();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x3f651c,_0x457f41,_0x2ad795,_0x12db80,_0x465d9e){this['context']=_0x3f651c,this[_0x320044(0x637,0x659)]=_0x2ad795;function _0x320044(_0x580125,_0x2f7e24){return _0x5e0b3a(_0x2f7e24,_0x580125-0x329);}this['viewerParameters']=_0x12db80,this['computing']=new WindParticlesComputing(_0x3f651c,_0x457f41,_0x2ad795,_0x12db80,_0x465d9e),this['rendering']=new WindParticlesRendering(_0x3f651c,_0x2ad795,_0x12db80,this['computing']),this['clearFramebuffers']();}['getPrimitives'](){function _0x25e97c(_0x442b1d,_0x51b4d8){return _0x5e0b3a(_0x442b1d,_0x51b4d8- -0x37d);}function _0x280729(_0x5b2de9,_0x529171){return _0x260be5(_0x5b2de9-0xd2,_0x529171);}const _0x5949b9=[this[_0x280729(0xd7,0xb2)]['primitives']['calculateSpeed'],this[_0x280729(0xd7,0x56)]['primitives']['updatePosition'],this[_0x280729(0xd7,0x12f)]['primitives']['postProcessingPosition'],this[_0x25e97c(-0xa9,-0xf7)]['primitives']['segments']];return _0x5949b9;}[_0x260be5(0xf1,0x14a)](){function _0x3f1b61(_0x5d3e77,_0x11288e){return _0x5e0b3a(_0x5d3e77,_0x11288e-0x237);}function _0x15a92e(_0x12ca13,_0x1f18ec){return _0x5e0b3a(_0x12ca13,_0x1f18ec-0x227);}const _0x164332=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x3f1b61(0x4d3,0x4a1)]});Object['keys'](this['rendering'][_0x15a92e(0x4ce,0x4b8)])['forEach'](_0x53612f=>{function _0xdc43cc(_0x5d5135,_0x24efe1){return _0x3f1b61(_0x5d5135,_0x24efe1- -0x3dc);}function _0x105f9a(_0x194db1,_0x38bbef){return _0x3f1b61(_0x38bbef,_0x194db1- -0xb7);}_0x164332['framebuffer']=this['rendering'][_0x105f9a(0x411,0x493)][_0x53612f],_0x164332['execute'](this[_0x105f9a(0x43d,0x3e2)]);});}['changeOptions'](_0x4982f8){let _0x570566=![];_0x4982f8[_0xd764ff(0x195,0x197)]&&this[_0xd764ff(0x23b,0x207)]['particlesTextureSize']!==_0x4982f8['particlesTextureSize']&&(_0x570566=!![]);const _0x3bdaf6=deepMerge(_0x4982f8,this['options']);function _0xd764ff(_0x312b86,_0x1192f5){return _0x5e0b3a(_0x1192f5,_0x312b86- -0xd3);}if(_0x3bdaf6[_0xd764ff(0x195,0x178)]<0x1)throw new Error(_0xd764ff(0x150,0x173));this['options']=_0x3bdaf6,this[_0x2b77d5(0x10b,0x9b)][_0x2b77d5(0x13a,0xbe)](_0x4982f8);function _0x2b77d5(_0x42a377,_0x36a478){return _0x5e0b3a(_0x42a377,_0x36a478- -0x1eb);}this[_0x2b77d5(0x59,0x3d)]['updateOptions'](_0x4982f8),_0x570566&&(this['computing'][_0xd764ff(0x1e1,0x23f)](),this['computing']['createParticlesTextures'](),this['rendering'][_0x2b77d5(0x89,0x5b)]());}['applyViewerParameters'](_0x270181){function _0x7f34fb(_0x29b3b6,_0x343e17){return _0x260be5(_0x343e17-0x4d,_0x29b3b6);}this['viewerParameters']=_0x270181,this['computing']['viewerParameters']=_0x270181,this['rendering'][_0x7f34fb(0x74,0x54)]=_0x270181;}[_0x5e0b3a(0x2aa,0x21a)](){function _0x26346b(_0x2434d1,_0x5cafb9){return _0x5e0b3a(_0x5cafb9,_0x2434d1- -0x3cf);}function _0x24cb21(_0x2fae03,_0x20127d){return _0x260be5(_0x20127d- -0x63,_0x2fae03);}this[_0x26346b(-0x1a7,-0x187)][_0x26346b(-0x1b5,-0x1b0)](),this['rendering'][_0x26346b(-0x1b5,-0x14c)]();}}const Cesium$1=mars3d__namespace[_0x5e0b3a(0x24c,0x2dc)],BaseLayer$1=mars3d__namespace[_0x260be5(0xd7,0x4f)][_0x5e0b3a(0x1cf,0x240)],_0x40596e={};_0x40596e['min']=0x1,_0x40596e[_0x5e0b3a(0x254,0x24f)]=0x2;const _0x14fd5c={};_0x14fd5c[_0x5e0b3a(0x224,0x297)]=0x14,_0x14fd5c['max']=0x64;const _0x5c3de3={};_0x5c3de3[_0x260be5(0x45,0xb2)]=0x64,_0x5c3de3['fixedHeight']=0x0,_0x5c3de3['lineWidth']=_0x40596e,_0x5c3de3[_0x260be5(0x1b,0xa7)]=_0x14fd5c,_0x5c3de3['speedFactor']=0x1,_0x5c3de3[_0x5e0b3a(0x223,0x280)]=0.003,_0x5c3de3[_0x260be5(0x1c,-0x22)]=0.001,_0x5c3de3['colors']=[_0x260be5(-0x28,-0x12)],_0x5c3de3['flipY']=![],_0x5c3de3['dynamic']=!![];const DEF_OPTIONS=_0x5c3de3;class WindLayer extends BaseLayer$1{constructor(_0x22f465={}){_0x22f465={...DEF_OPTIONS,..._0x22f465},super(_0x22f465);function _0x216dcb(_0x263f8d,_0x26acc5){return _0x5e0b3a(_0x263f8d,_0x26acc5- -0xf5);}this[_0x216dcb(0x156,0x12d)](_0x22f465,_0x22f465);}get['layer'](){function _0x3d57eb(_0x3ef792,_0x230370){return _0x260be5(_0x3ef792- -0x83,_0x230370);}return this[_0x3d57eb(-0x94,-0xed)];}get[_0x5e0b3a(0x2c2,0x239)](){return this['options']['data'];}set['data'](_0xc05a7d){function _0x1d7130(_0xbf1476,_0x48f6fc){return _0x260be5(_0xbf1476- -0x8e,_0x48f6fc);}this['options'][_0x1d7130(-0x78,-0xc1)]=_0xc05a7d,this['setData'](_0xc05a7d);}get['colors'](){function _0x211efb(_0x514bea,_0x4e02b5){return _0x260be5(_0x514bea-0x40f,_0x4e02b5);}return this['options'][_0x211efb(0x449,0x49d)];}set['colors'](_0xc8917d){this[_0x2f2f39(0x5ec,0x5f7)]['colors']=_0xc8917d;const _0xc14112={};function _0x305513(_0x8d3886,_0xd7bb6){return _0x5e0b3a(_0x8d3886,_0xd7bb6- -0x34);}_0xc14112[_0x2f2f39(0x587,0x546)]=_0xc8917d;function _0x2f2f39(_0x495365,_0x2d090a){return _0x5e0b3a(_0x495365,_0x2d090a-0x2e9);}this['_setOptionsHook'](this[_0x2f2f39(0x5c7,0x5f7)],_0xc14112);}[_0x260be5(0xe3,0xca)](_0x3e3188){_0x3e3188?this['_addedHook']():this['_removedHook']();}['_mountedHook'](){}[_0x5e0b3a(0x294,0x292)](){this['scene']=this['_map']['scene'],this['camera']=this['_map']['camera'];this['options'][_0x26f714(0x404,0x458)]&&this[_0x3d9e64(0x3c7,0x3db)](this['options'][_0x3d9e64(0x311,0x315)]);if(!this['windData']||!this['show'])return;this['viewerParameters']={'lonRange':new Cesium$1[(_0x26f714(0x595,0x509))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene'][_0x26f714(0x475,0x44f)]},this[_0x26f714(0x415,0x49d)](),this[_0x3d9e64(0x3ed,0x363)]=new WindParticleSystem(this['scene']['context'],this[_0x26f714(0x4a6,0x42b)],this[_0x3d9e64(0x3e6,0x3fb)],this['viewerParameters'],this['scene']),this['primitives']=this[_0x3d9e64(0x3ed,0x404)]['getPrimitives'](),this['primitives']['forEach'](_0xf10917=>{function _0x4bb8fe(_0x9eae19,_0x47542f){return _0x26f714(_0x47542f,_0x9eae19- -0x38b);}this['scene'][_0x4bb8fe(0xa6,0xcd)]['add'](_0xf10917);}),this['camera']['percentageChanged']=0.01;function _0x3d9e64(_0x5d79fb,_0xafce97){return _0x260be5(_0x5d79fb-0x2fb,_0xafce97);}this[_0x26f714(0x410,0x48c)][_0x26f714(0x489,0x4ca)]['addEventListener'](this['updateViewerParameters']['bind'](this)),this['scene'][_0x3d9e64(0x32b,0x3b6)]['addEventListener'](this[_0x26f714(0x4a7,0x49d)]['bind'](this));function _0x26f714(_0x45a945,_0x4129ed){return _0x260be5(_0x4129ed-0x442,_0x45a945);}window[_0x26f714(0x458,0x4a1)](_0x26f714(0x438,0x48b),this[_0x26f714(0x4ea,0x49d)]['bind'](this));}['_removedHook'](){function _0x23c973(_0x5786cc,_0x5454de){return _0x5e0b3a(_0x5786cc,_0x5454de-0x315);}this['camera']['changed'][_0x10d4f7(0x5f,0xd5)](this['updateViewerParameters'][_0x10d4f7(-0x16,-0x82)](this)),this[_0x10d4f7(-0x5b,0x10)][_0x23c973(0x594,0x568)]['removeEventListener'](this['updateViewerParameters']['bind'](this));function _0x10d4f7(_0x49e7a9,_0x446158){return _0x260be5(_0x49e7a9- -0x65,_0x446158);}window['removeEventListener']('resize',this[_0x23c973(0x532,0x593)]['bind'](this)),this['primitives']&&(this[_0x10d4f7(-0x76,-0x4a)]['forEach'](_0x4f967e=>{function _0xa4e443(_0x5b5788,_0x1e2886){return _0x10d4f7(_0x5b5788- -0xe0,_0x1e2886);}this[_0xa4e443(-0x13b,-0x112)]['primitives']['remove'](_0x4f967e);}),delete this['primitives']),this['particleSystem']&&(this['particleSystem'][_0x23c973(0x595,0x52f)](),delete this['particleSystem']);}['setData'](_0x3c7705,_0x40718f){this['windData']=this[_0x2fdb8d(0xc3,0x102)](_0x3c7705);function _0x5c7298(_0x3eb30c,_0x2754c9){return _0x260be5(_0x2754c9-0x102,_0x3eb30c);}if(_0x40718f){this[_0x2fdb8d(0x209,0x1d2)](),this[_0x2fdb8d(0x17d,0x177)]();return;}function _0x2fdb8d(_0x18dbc2,_0x113374){return _0x260be5(_0x113374-0x108,_0x18dbc2);}this[_0x5c7298(0x274,0x1f4)]?(this['particleSystem']['computing'][_0x5c7298(0x156,0xed)](this['windData']),this['scene']['requestRender']()):this['_addedHook']();}['_setOptionsHook'](_0x3d29dd,_0x189dcf){function _0x5005ff(_0x58cea1,_0x44142f){return _0x260be5(_0x58cea1- -0x1ce,_0x44142f);}function _0x4609f0(_0x2ece94,_0x43f207){return _0x5e0b3a(_0x43f207,_0x2ece94- -0x1d8);}this[_0x4609f0(0x13d,0x16a)]&&(this['particleSystem']['changeOptions'](_0x189dcf),this[_0x5005ff(-0x1c4,-0x1da)]['requestRender']());}['processWindData'](_0x149e97){var _0x2014cf,_0x53a771;function _0x56ae63(_0x4cdc7d,_0x57a6f8){return _0x260be5(_0x4cdc7d-0x13f,_0x57a6f8);}function _0x121376(_0x1ae154,_0x5d2c2d){return _0x260be5(_0x5d2c2d- -0x137,_0x1ae154);}const _0x34c870={..._0x149e97},_0x14bc49=_0x34c870;!_0x14bc49['height']&&_0x14bc49[_0x121376(-0x131,-0xfa)]&&(_0x14bc49['height']=_0x14bc49['rows']);!_0x14bc49['width']&&_0x14bc49['cols']&&(_0x14bc49['width']=_0x14bc49['cols']);!_0x14bc49['bounds']&&(_0x14bc49['bounds']={'west':_0x14bc49['xmin'],'south':_0x14bc49['ymin'],'east':_0x14bc49['xmax'],'north':_0x14bc49[_0x56ae63(0x204,0x21c)]});if(!_0x14bc49['u']){const _0x254224={};_0x254224['array']=_0x149e97['udata'],_0x254224['min']=_0x149e97['umin'],_0x254224[_0x121376(-0x166,-0x10b)]=_0x149e97['umax'],_0x14bc49['u']=_0x254224;}if(!_0x14bc49['v']){const _0x6e73e8={};_0x6e73e8[_0x121376(-0xc0,-0x5d)]=_0x149e97[_0x56ae63(0x1e8,0x272)],_0x6e73e8[_0x121376(-0x147,-0xc3)]=_0x149e97['vmin'],_0x6e73e8[_0x121376(-0x173,-0x10b)]=_0x149e97['vmax'],_0x14bc49['v']=_0x6e73e8;}if(((_0x2014cf=_0x14bc49['speed'])===null||_0x2014cf===void 0x0?void 0x0:_0x2014cf['min'])===undefined||((_0x53a771=_0x14bc49['speed'])===null||_0x53a771===void 0x0?void 0x0:_0x53a771['max'])===undefined||_0x14bc49['speed']['array']===undefined){const _0x2ee16d={'array':new Float32Array(_0x14bc49['u'][_0x56ae63(0x219,0x21c)]['length']),'min':Number[_0x121376(-0x103,-0xc2)],'max':Number['MIN_VALUE']};for(let _0x1ffdcc=0x0;_0x1ffdcc<_0x14bc49['u']['array']['length'];_0x1ffdcc++){_0x2ee16d[_0x121376(-0x6c,-0x5d)][_0x1ffdcc]=Math['sqrt'](_0x14bc49['u'][_0x121376(-0x8b,-0x5d)][_0x1ffdcc]*_0x14bc49['u']['array'][_0x1ffdcc]+_0x14bc49['v']['array'][_0x1ffdcc]*_0x14bc49['v']['array'][_0x1ffdcc]),_0x2ee16d[_0x121376(-0x6f,-0x5d)][_0x1ffdcc]!==0x0&&(_0x2ee16d['min']=Math[_0x121376(-0x60,-0xc3)](_0x2ee16d[_0x121376(-0x154,-0xc3)],_0x2ee16d[_0x56ae63(0x219,0x2a8)][_0x1ffdcc]),_0x2ee16d[_0x56ae63(0x16b,0x1ee)]=Math['max'](_0x2ee16d['max'],_0x2ee16d[_0x56ae63(0x219,0x19f)][_0x1ffdcc]));}_0x14bc49['speed']=_0x2ee16d;}return _0x14bc49;}[_0x260be5(0x5b,0x1b)](){var _0x5e9eb3;const _0x26b726=this[_0x323ce7(0x562,0x52c)];if(!_0x26b726)return;const _0x4bae49=_0x26b726['canvas'],_0xbea2f={};_0xbea2f['x']=0x0,_0xbea2f['y']=0x0;function _0x234e30(_0x1ea886,_0x10c37b){return _0x5e0b3a(_0x1ea886,_0x10c37b- -0x2d3);}const _0x35b638={};_0x35b638['x']=0x0,_0x35b638['y']=_0x4bae49['clientHeight'];const _0x206574={};_0x206574['x']=_0x4bae49['clientWidth'],_0x206574['y']=0x0;const _0x422498={};_0x422498['x']=_0x4bae49[_0x323ce7(0x535,0x551)],_0x422498['y']=_0x4bae49['clientHeight'];function _0x323ce7(_0x560494,_0x3a128e){return _0x5e0b3a(_0x560494,_0x3a128e-0x2ff);}const _0x43d453=[_0xbea2f,_0x35b638,_0x206574,_0x422498];let _0x287840=0xb4,_0x4a62d7=-0xb4,_0x479935=0x5a,_0x20564e=-0x5a,_0x4059fe=![];for(const _0x28bcf6 of _0x43d453){const _0x222181=_0x26b726[_0x234e30(-0x75,-0x66)][_0x323ce7(0x560,0x508)](new Cesium$1['Cartesian2'](_0x28bcf6['x'],_0x28bcf6['y']),_0x26b726['globe'][_0x234e30(0x1b,-0x1c)]);if(!_0x222181){_0x4059fe=!![];break;}const _0x2b4476=_0x26b726[_0x234e30(-0x3d,-0x4f)]['ellipsoid'][_0x234e30(-0x9f,-0x13)](_0x222181),_0x2ee2ac=Cesium$1[_0x323ce7(0x582,0x587)]['toDegrees'](_0x2b4476[_0x323ce7(0x528,0x58e)]),_0x2370ca=Cesium$1['Math']['toDegrees'](_0x2b4476['latitude']);_0x287840=Math[_0x323ce7(0x5a4,0x596)](_0x287840,_0x2ee2ac),_0x4a62d7=Math[_0x234e30(-0xb8,-0x84)](_0x4a62d7,_0x2ee2ac),_0x479935=Math[_0x234e30(0x4d,-0x3c)](_0x479935,_0x2370ca),_0x20564e=Math[_0x234e30(0x0,-0x84)](_0x20564e,_0x2370ca);}if(!_0x4059fe){const _0x37139e=new Cesium$1['Cartesian2'](Math['max'](this['windData'][_0x323ce7(0x5bf,0x5ff)]['west'],_0x287840),Math[_0x234e30(-0x54,-0x3c)](this[_0x234e30(-0xa4,-0xc7)][_0x234e30(-0x4b,0x2d)]['east'],_0x4a62d7)),_0x5cb7be=new Cesium$1['Cartesian2'](Math['max'](this[_0x323ce7(0x4bf,0x50b)][_0x234e30(0xbd,0x2d)]['south'],_0x479935),Math[_0x323ce7(0x54a,0x596)](this[_0x234e30(-0xf2,-0xc7)]['bounds'][_0x234e30(-0x67,-0x2)],_0x20564e)),_0x4ffe17=(_0x37139e['y']-_0x37139e['x'])*0.05,_0x5b665e=(_0x5cb7be['y']-_0x5cb7be['x'])*0.05;_0x37139e['x']=Math[_0x323ce7(0x5c7,0x54e)](this[_0x323ce7(0x565,0x50b)]['bounds'][_0x323ce7(0x55d,0x579)],_0x37139e['x']-_0x4ffe17),_0x37139e['y']=Math[_0x234e30(-0x9b,-0x3c)](this[_0x323ce7(0x585,0x50b)][_0x234e30(0x71,0x2d)]['east'],_0x37139e['y']+_0x4ffe17),_0x5cb7be['x']=Math['max'](this['windData']['bounds']['south'],_0x5cb7be['x']-_0x5b665e),_0x5cb7be['y']=Math['min'](this[_0x234e30(-0x98,-0xc7)][_0x234e30(0x5d,0x2d)]['north'],_0x5cb7be['y']+_0x5b665e),this[_0x323ce7(0x511,0x529)]['lonRange']=_0x37139e,this['viewerParameters']['latRange']=_0x5cb7be;const _0x2d7c2d=this['windData'][_0x323ce7(0x66c,0x5ff)]['east']-this[_0x323ce7(0x4e9,0x50b)][_0x234e30(0x2f,0x2d)]['west'],_0x53cdba=this['windData']['bounds']['north']-this['windData']['bounds'][_0x234e30(-0x55,-0x50)],_0x30176a=(_0x37139e['y']-_0x37139e['x'])/_0x2d7c2d,_0x3e3ee6=(_0x5cb7be['y']-_0x5cb7be['x'])/_0x53cdba,_0xcf1043=Math[_0x323ce7(0x5e1,0x596)](_0x30176a,_0x3e3ee6),_0x52e0c0=0x3e8*_0xcf1043;_0x52e0c0>0x0&&(this['viewerParameters']['pixelSize']=Math[_0x323ce7(0x551,0x54e)](0x0,Math[_0x234e30(0x56,-0x3c)](0x3e8,_0x52e0c0)));}this[_0x323ce7(0x578,0x529)]['sceneMode']=this['scene'][_0x323ce7(0x4ce,0x52f)],(_0x5e9eb3=this['particleSystem'])===null||_0x5e9eb3===void 0x0||_0x5e9eb3[_0x234e30(-0xa5,-0x49)](this['viewerParameters']);}[_0x260be5(0x9,-0x24)](_0x504940,_0x294751){const {bounds:_0x1f0d9b,width:_0x19fd42,height:_0x38201d,u:_0x310b41,v:_0x20de50,speed:_0x4638f6}=this[_0x1afddd(0x33a,0x2c2)],{flipY:_0x3fc8ac}=this[_0x1afddd(0x3e1,0x3c4)];if(_0x504940<_0x1f0d9b[_0x66853f(0x5a7,0x5a8)]||_0x504940>_0x1f0d9b['east']||_0x294751<_0x1f0d9b[_0x66853f(0x59c,0x5b1)]||_0x294751>_0x1f0d9b['north'])return null;const _0x430589=(_0x504940-_0x1f0d9b['west'])/(_0x1f0d9b[_0x1afddd(0x340,0x321)]-_0x1f0d9b['west'])*(_0x19fd42-0x1);let _0x32ed5b=(_0x294751-_0x1f0d9b[_0x66853f(0x5a2,0x5b1)])/(_0x1f0d9b[_0x66853f(0x64e,0x5ff)]-_0x1f0d9b['south'])*(_0x38201d-0x1);_0x3fc8ac&&(_0x32ed5b=_0x38201d-0x1-_0x32ed5b);const _0x2b1310=Math['floor'](_0x430589),_0x8b35a1=Math['floor'](_0x32ed5b),_0x4464f3=Math['floor'](_0x430589),_0x595acd=Math[_0x66853f(0x538,0x5c5)](_0x4464f3+0x1,_0x19fd42-0x1),_0x31e7c3=Math['floor'](_0x32ed5b),_0x4dca69=Math['min'](_0x31e7c3+0x1,_0x38201d-0x1),_0x234991=_0x430589-_0x4464f3,_0xe2ad0f=_0x32ed5b-_0x31e7c3,_0x10ceec=_0x8b35a1*_0x19fd42+_0x2b1310,_0x3bde56=_0x31e7c3*_0x19fd42+_0x4464f3,_0x4c7bd1=_0x31e7c3*_0x19fd42+_0x595acd,_0x483b35=_0x4dca69*_0x19fd42+_0x4464f3,_0x1d7b6b=_0x4dca69*_0x19fd42+_0x595acd,_0xab2b2e=_0x310b41[_0x66853f(0x5c8,0x62b)][_0x3bde56],_0x1787f9=_0x310b41[_0x66853f(0x675,0x62b)][_0x4c7bd1],_0x2e909b=_0x310b41['array'][_0x483b35];function _0x66853f(_0x1e1cfa,_0x3b5b8c){return _0x260be5(_0x3b5b8c-0x551,_0x1e1cfa);}const _0x54a680=_0x310b41['array'][_0x1d7b6b],_0x3cfcc7=(0x1-_0x234991)*(0x1-_0xe2ad0f)*_0xab2b2e+_0x234991*(0x1-_0xe2ad0f)*_0x1787f9+(0x1-_0x234991)*_0xe2ad0f*_0x2e909b+_0x234991*_0xe2ad0f*_0x54a680,_0x1cd8d4=_0x20de50['array'][_0x3bde56],_0x24813f=_0x20de50[_0x1afddd(0x3f4,0x3b3)][_0x4c7bd1],_0x28fd56=_0x20de50[_0x1afddd(0x443,0x3b3)][_0x483b35],_0x5b039c=_0x20de50[_0x66853f(0x678,0x62b)][_0x1d7b6b],_0x26a47c=(0x1-_0x234991)*(0x1-_0xe2ad0f)*_0x1cd8d4+_0x234991*(0x1-_0xe2ad0f)*_0x24813f+(0x1-_0x234991)*_0xe2ad0f*_0x28fd56+_0x234991*_0xe2ad0f*_0x5b039c,_0x41d271=Math['sqrt'](_0x3cfcc7*_0x3cfcc7+_0x26a47c*_0x26a47c),_0x50cc81={};_0x50cc81['u']=_0x310b41['array'][_0x10ceec],_0x50cc81['v']=_0x20de50[_0x66853f(0x5c8,0x62b)][_0x10ceec],_0x50cc81[_0x66853f(0x642,0x5d6)]=_0x4638f6['array'][_0x10ceec];const _0x4bcd74={};_0x4bcd74['u']=_0x3cfcc7;function _0x1afddd(_0x2fc805,_0x22818b){return _0x260be5(_0x22818b-0x2d9,_0x2fc805);}_0x4bcd74['v']=_0x26a47c,_0x4bcd74['speed']=_0x41d271;const _0x3fa227={};return _0x3fa227['original']=_0x50cc81,_0x3fa227[_0x66853f(0x55a,0x5de)]=_0x4bcd74,_0x3fa227;}}mars3d__namespace[_0x260be5(0x18,-0x43)][_0x260be5(0x19,0x9a)]('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null;function _0x35f3d9(_0x24f3ce,_0x31b5c5){return _0x260be5(_0x31b5c5-0x9d,_0x24f3ce);}this['lat']=null;function _0x23a75a(_0x40abe3,_0xb431bd){return _0x260be5(_0xb431bd-0x333,_0x40abe3);}this['tlng']=null,this[_0x35f3d9(0x103,0x14f)]=null,this[_0x35f3d9(0xe6,0x133)]=null,this['speed']=null;}['destroy'](){for(const _0x57aa2e in this){delete this[_0x57aa2e];}}}class CanvasWindField{constructor(_0x34eb3f){function _0x31fd10(_0x54fb01,_0x5e5567){return _0x260be5(_0x54fb01- -0x169,_0x5e5567);}this[_0x31fd10(-0x85,-0x7c)](_0x34eb3f);}get[_0x260be5(-0xc,-0x23)](){return this['_speedRate'];}set['speedRate'](_0x1fca7b){this['_speedRate']=(0x64-(_0x1fca7b>0x63?0x63:_0x1fca7b))*0x64;function _0x5664bc(_0x586d32,_0x126816){return _0x260be5(_0x586d32- -0x209,_0x126816);}this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this['ymax']-this[_0x5664bc(-0x14f,-0xc1)])/this['_speedRate']];}get[_0x260be5(0xd2,0x11e)](){return this['_maxAge'];}set['maxAge'](_0x48e0bd){this['_maxAge']=_0x48e0bd;}['setOptions'](_0xdf24e3){this[_0x10abe7(-0x98,-0x35)]=_0xdf24e3;function _0x10abe7(_0x498918,_0x14f1bb){return _0x260be5(_0x14f1bb- -0x120,_0x498918);}this[_0x10abe7(-0x1f,-0x4e)]=_0xdf24e3[_0x3ee6fe(-0x16,0x24)]||0x78,this['speedRate']=_0xdf24e3['speedRate']||0x32,this[_0x10abe7(-0x9a,-0xb7)]=[];function _0x3ee6fe(_0xfd3929,_0x3bfcd0){return _0x5e0b3a(_0xfd3929,_0x3bfcd0- -0x2d1);}const _0x317ecb=_0xdf24e3['particlesNumber']||0x1000;for(let _0x26ed77=0x0;_0x26ed77<_0x317ecb;_0x26ed77++){const _0x50807d=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0x50807d);}}['setDate'](_0x5cd722){function _0xd76026(_0x28470a,_0x1386a6){return _0x5e0b3a(_0x1386a6,_0x28470a- -0x43e);}this['rows']=_0x5cd722[_0x47265c(0x3a8,0x39f)],this[_0xd76026(-0x143,-0x135)]=_0x5cd722[_0xd76026(-0x143,-0xf4)],this['xmin']=_0x5cd722[_0x47265c(0x3a6,0x35f)],this[_0xd76026(-0x1ce,-0x1c8)]=_0x5cd722['xmax'],this['ymin']=_0x5cd722[_0xd76026(-0x161,-0x1dc)],this['ymax']=_0x5cd722[_0x47265c(0x46e,0x427)],this['grid']=[];const _0x35f46e=_0x5cd722[_0xd76026(-0x1e6,-0x271)],_0x2b8f81=_0x5cd722[_0xd76026(-0x172,-0x16b)];function _0x47265c(_0x2b8934,_0x5546ea){return _0x260be5(_0x5546ea-0x362,_0x2b8934);}let _0x53cd77=![];_0x35f46e['length']===this['rows']&&_0x35f46e[0x0]['length']===this['cols']&&(_0x53cd77=!![]);let _0x52fb8a=0x0,_0x2efa64=null,_0x5da464=null;for(let _0x4deffa=0x0;_0x4deffa<this['rows'];_0x4deffa++){_0x2efa64=[];for(let _0x2c0343=0x0;_0x2c0343<this['cols'];_0x2c0343++,_0x52fb8a++){_0x53cd77?_0x5da464=this[_0xd76026(-0x16b,-0x108)](_0x35f46e[_0x4deffa][_0x2c0343],_0x2b8f81[_0x4deffa][_0x2c0343]):_0x5da464=this[_0x47265c(0x439,0x412)](_0x35f46e[_0x52fb8a],_0x2b8f81[_0x52fb8a]),_0x2efa64['push'](_0x5da464);}this['grid']['push'](_0x2efa64);}!this[_0xd76026(-0x130,-0xfc)]['flipY']&&this['grid'][_0x47265c(0x34e,0x3be)]();}[_0x260be5(0xe7,0x124)](){delete this[_0x2d5749(0x593,0x54f)],delete this[_0x38d351(0xad,0x9c)],delete this['xmin'],delete this['xmax'],delete this[_0x2d5749(0x622,0x5cc)];function _0x38d351(_0x420ed8,_0x25061f){return _0x260be5(_0x25061f- -0x3c,_0x420ed8);}delete this['ymax'];function _0x2d5749(_0x29b4b1,_0x37a1dd){return _0x260be5(_0x37a1dd-0x512,_0x29b4b1);}delete this['grid'],delete this['particles'];}['toGridXY'](_0x582b17,_0x58eb29){function _0x4634a8(_0x1397f0,_0x56d547){return _0x260be5(_0x1397f0- -0xd6,_0x56d547);}const _0xadbc24=(_0x582b17-this[_0x4634a8(-0xd9,-0xe6)])/(this[_0x3afff0(0x10d,0xe3)]-this['xmin'])*(this[_0x3afff0(0x198,0x19b)]-0x1),_0x2becf3=(this[_0x4634a8(-0x11,0x18)]-_0x58eb29)/(this['ymax']-this['ymin'])*(this['rows']-0x1);function _0x3afff0(_0x8d0524,_0x326457){return _0x260be5(_0x8d0524-0xc0,_0x326457);}return[_0xadbc24,_0x2becf3];}[_0x5e0b3a(0x31a,0x2bc)](_0x376005,_0x98a366){if(_0x376005<0x0||_0x376005>=this['cols']||_0x98a366>=this[_0x481c47(0x32c,0x3be)])return[0x0,0x0,0x0];const _0x52f311=Math[_0x481c47(0x3c4,0x422)](_0x376005),_0x3009b3=Math['floor'](_0x98a366);if(_0x52f311===_0x376005&&_0x3009b3===_0x98a366)return this['grid'][_0x98a366][_0x376005];const _0x278d6e=_0x52f311+0x1,_0x3d71fd=_0x3009b3+0x1,_0x57e850=this[_0x651f76(0xab,0x41)](_0x52f311,_0x3009b3);function _0x481c47(_0x1150b2,_0x4af56b){return _0x5e0b3a(_0x4af56b,_0x1150b2-0xcc);}const _0x23aca4=this['getUVByXY'](_0x278d6e,_0x3009b3),_0x382104=this['getUVByXY'](_0x52f311,_0x3d71fd);function _0x651f76(_0x55405b,_0x5b5ec0){return _0x5e0b3a(_0x5b5ec0,_0x55405b- -0x211);}const _0x35a2c5=this['getUVByXY'](_0x278d6e,_0x3d71fd);let _0x1bdc0a=null;try{_0x1bdc0a=this[_0x651f76(0x39,0x79)](_0x376005-_0x52f311,_0x98a366-_0x3009b3,_0x57e850,_0x23aca4,_0x382104,_0x35a2c5);}catch(_0x482f79){console[_0x481c47(0x2d3,0x345)](_0x376005,_0x98a366);}return _0x1bdc0a;}[_0x260be5(0x27,0x5c)](_0x51ce6b,_0x47d862,_0x152ce1,_0x5ed69d,_0x46bb8c,_0x330a15){const _0x2949ee=0x1-_0x51ce6b,_0x22f664=0x1-_0x47d862,_0x3daad3=_0x2949ee*_0x22f664,_0x423aac=_0x51ce6b*_0x22f664,_0x1bad40=_0x2949ee*_0x47d862,_0x208e86=_0x51ce6b*_0x47d862,_0x463e8f=_0x152ce1[0x0]*_0x3daad3+_0x5ed69d[0x0]*_0x423aac+_0x46bb8c[0x0]*_0x1bad40+_0x330a15[0x0]*_0x208e86,_0x3b45cb=_0x152ce1[0x1]*_0x3daad3+_0x5ed69d[0x1]*_0x423aac+_0x46bb8c[0x1]*_0x1bad40+_0x330a15[0x1]*_0x208e86;return this['_calcUV'](_0x463e8f,_0x3b45cb);}['_calcUV'](_0x4761b6,_0x367605){return[+_0x4761b6,+_0x367605,Math['sqrt'](_0x4761b6*_0x4761b6+_0x367605*_0x367605)];}[_0x5e0b3a(0x1b6,0x1f8)](_0x2f652b,_0x30ad61){if(!this[_0x365342(0x207,0x1ce)](_0x2f652b,_0x30ad61))return null;const _0x14c051=this['toGridXY'](_0x2f652b,_0x30ad61);function _0x365342(_0x1e9084,_0x32ca21){return _0x5e0b3a(_0x32ca21,_0x1e9084- -0x58);}const _0x5a4ced=this['getUVByXY'](_0x14c051[0x0],_0x14c051[0x1]);return _0x5a4ced;}['isInExtent'](_0x390779,_0x4f1211){function _0x1485d1(_0x9ccae3,_0x1c2fa9){return _0x5e0b3a(_0x1c2fa9,_0x9ccae3- -0x172);}function _0x33c38c(_0x2f4f5e,_0x21451e){return _0x5e0b3a(_0x21451e,_0x2f4f5e-0x1cc);}return _0x390779>=this[_0x1485d1(0xae,0xcb)]&&_0x390779<=this[_0x33c38c(0x43c,0x3d2)]&&_0x4f1211>=this[_0x33c38c(0x4a9,0x481)]&&_0x4f1211<=this[_0x1485d1(0x176,0x1b6)]?!![]:![];}[_0x260be5(0x2a,-0x53)](){function _0x1bd329(_0xc638fc,_0x2e9415){return _0x5e0b3a(_0xc638fc,_0x2e9415- -0x8b);}const _0x1f06c6=fRandomByfloat(this['xmin'],this[_0x1bd329(0x224,0x1e5)]),_0x280dbc=fRandomByfloat(this[_0x1bd329(0x2e3,0x252)],this[_0x1bd329(0x2db,0x25d)]),_0x4c5df5={};_0x4c5df5[_0x4042d7(-0x125,-0xec)]=_0x280dbc,_0x4c5df5['lng']=_0x1f06c6;function _0x4042d7(_0x13ade7,_0x2ce534){return _0x260be5(_0x13ade7- -0x157,_0x2ce534);}return _0x4c5df5;}['getParticles'](){function _0x152afd(_0x4690a8,_0x305c4a){return _0x260be5(_0x305c4a- -0x10d,_0x4690a8);}function _0x389b88(_0x5424cb,_0x5567e2){return _0x260be5(_0x5424cb- -0x22e,_0x5567e2);}let _0x2797ed,_0x505c20,_0x18bd43;for(let _0x20ecb2=0x0,_0x10a581=this['particles'][_0x389b88(-0x258,-0x2ce)];_0x20ecb2<_0x10a581;_0x20ecb2++){let _0x282f96=this['particles'][_0x20ecb2];_0x282f96['age']<=0x0&&(_0x282f96=this['_randomParticle'](_0x282f96));if(_0x282f96['age']>0x0){const _0xd5899c=_0x282f96['tlng'],_0x765c30=_0x282f96[_0x152afd(-0x63,-0x5b)];_0x18bd43=this['getUVByPoint'](_0xd5899c,_0x765c30),_0x18bd43?(_0x2797ed=_0xd5899c+this['_calc_speedRate'][0x0]*_0x18bd43[0x0],_0x505c20=_0x765c30+this['_calc_speedRate'][0x1]*_0x18bd43[0x1],_0x282f96['lng']=_0xd5899c,_0x282f96[_0x152afd(-0xd0,-0xdb)]=_0x765c30,_0x282f96[_0x152afd(-0x172,-0xfd)]=_0x2797ed,_0x282f96[_0x389b88(-0x17c,-0x1a6)]=_0x505c20,_0x282f96['speed']=_0x18bd43[0x2],_0x282f96['age']--):_0x282f96['age']=0x0;}}return this['particles'];}[_0x5e0b3a(0x21b,0x2ac)](_0x4312d5){let _0x481ee8,_0x2500e9;for(let _0x245df4=0x0;_0x245df4<0x1e;_0x245df4++){_0x481ee8=this[_0x3b9a5e(0x520,0x51e)](),_0x2500e9=this[_0x3b9a5e(0x51c,0x4c9)](_0x481ee8[_0x506193(-0x1f2,-0x209)],_0x481ee8[_0x3b9a5e(0x4e3,0x526)]);if(_0x2500e9&&_0x2500e9[0x2]>0x0)break;}if(!_0x2500e9)return _0x4312d5;const _0x12b0c9=_0x481ee8[_0x506193(-0x187,-0x209)]+this['_calc_speedRate'][0x0]*_0x2500e9[0x0],_0x3354b7=_0x481ee8[_0x3b9a5e(0x547,0x526)]+this[_0x3b9a5e(0x58d,0x5a9)][0x1]*_0x2500e9[0x1];_0x4312d5['lng']=_0x481ee8['lng'],_0x4312d5[_0x506193(-0x24a,-0x229)]=_0x481ee8[_0x3b9a5e(0x51f,0x526)],_0x4312d5['tlng']=_0x12b0c9;function _0x506193(_0x3fc95a,_0x5e02eb){return _0x5e0b3a(_0x3fc95a,_0x5e02eb- -0x47e);}_0x4312d5['tlat']=_0x3354b7;function _0x3b9a5e(_0x22e44e,_0x208253){return _0x5e0b3a(_0x22e44e,_0x208253-0x2d1);}return _0x4312d5['age']=Math[_0x3b9a5e(0x4ef,0x4ec)](0xa+Math[_0x3b9a5e(0x4c3,0x4dc)]()*this[_0x3b9a5e(0x5ff,0x5c6)]),_0x4312d5['speed']=_0x2500e9[0x2],_0x4312d5;}['destroy'](){for(const _0x2a62d5 in this){delete this[_0x2a62d5];}}}function fRandomByfloat(_0x325beb,_0x4b0b81){return _0x325beb+Math['random']()*(_0x4b0b81-_0x325beb);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x5e0b3a(0x374,0x2fa)]['BaseLayer'];function _0xa068(){const _0x3c90ec=['BaseLayer','top','now','geometry','mouse_move','4548204gkCYfS','onParticlesTextureSizeChange','particlesTextures','mars3d-canvasWind','mouseHidden','_bilinearInterpolation','STATIC_DRAW','blue','getRandomLatLng','unbindEvent','max','vertexArray','preExecute','clientWidth','morphComplete','#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','lat','_tomap','update','udata','uniformMap','_colorRamp','visible','blendEquation','colors','redraw','isInExtent','rows','show','canvasContext','createColorTableTexture','sqrt','_onMouseUpEvent','reCreateWindTextures','1891146hBoNqR','particlesTextureSize','createParticlesTextures','OPAQUE','east','resize','camera','worker','none','xmax','0px','bind','forEach','5625FBpxbA','lng','fixedHeight','minificationFilter','alt','requestAnimationFrame','west','pixelSize','defineProperty','cos','updateViewerParameters','reverse','dropRate','_onMouseDownEvent','addEventListener','south','globe','Compute','rendering','getV','Math','_drawLines','applyViewerParameters','destination-in','particles','mouse_down','values','longitude','displayRange','framebuffers','_addedHook','#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','canvas','lineWidth','type','min','MAX_VALUE','CLAMP_TO_EDGE','visibility','createComputingPrimitives','mouseUp','WindLayer','default','absolute','lineTo','destoryRenderingFramebuffers','colorTable','domain','651329Dbsxtj','slice','previousParticlesPosition','clearCommand','speed','updateOptions','windTextures','changed','_randomParticle','outputTexture','init','pow','interpolated','Draw','modelMatrix','updatePosition','destroyParticlesTextures','flipY','_pointerEvents','ellipsoid','owner','age','FLOAT','pointer-events','getUVByXY','context','fromGeometry','isArray','cartesianToCartographic','max\x20is\x20undefined,\x20calculate\x20max','bufferUsage','canvasHeight','createSegmentsGeometry','EllipsoidalOccluder','SRC_ALPHA','particlesSpeed','wrapT','componentDatatype','postProcessingPosition','frameTime','vdata','frameRateAdjustment','removeChild','fragmentShaderSource','_onMapWhellEvent','north','talt','_calcUV','getSpeed','tlat','18601680XlrVwF','SCENE3D','_calc_speedRate','drawingBufferWidth','63mOpXlV','frameRateMonitor','Cesium','ymin','blendFuncSource','currentParticlesPosition','segments','abs','particlesNumber','NEAREST','RGBA','toDegrees','position','removeEventListener','ymax','isPointVisible','Cartesian2','7530KiITEZ','width','_removedHook','stringify','setData','postMessage','fromDegrees','cancelAnimationFrame','error','samplingWindow','maxAge','commandList','onColorTableChange','floor','getSegmentDrawVertexShader','layer','cols','407292aDHfPC','array','prototype','__esModule','bounds','nextParticlesPosition','beginPath','_updateIng2','primitiveType','magnificationFilter','_showHook','setOptions','blendFuncDestination','attributeLocations','clear','CanvasWindField','refreshTimer','commandToExecute','options','_createCanvas','number','_onMouseMoveEvent','initWorker','windField','clearFramebuffers','particleSystem','WindUtil','createRawRenderState','isDestroyed','strokeStyle','flatMap','getUVByPoint','length','push','rgb(206,255,255)','warn','lastFramesPerSecond','container','framebuffer','textures','min\x20is\x20undefined,\x20calculate\x20min','_animateFrame','create','rawRenderState','stroke','Rectangle','log','commandType','pickEllipsoid','get','random','windData','createWindTextures','updateWindData','mouseDown','pass','canvasWidth','primitives','Log','left','sceneMode','moveTo','speedRate','_updateIng','depthTest','destroy','round','960536bsUMfc','processWindData','calculateSpeed','bindEvent','xmin','UNSIGNED_INT','_setOptionsHook','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','__proto__','_map','height','LINEAR','computing','SceneMode','viewerParameters','CanvasWindLayer','getDataAtLonLat','scene','mouseMove','getCalculateSpeedShader','mode','style','normal','tlng','EventType','segmentsDepth','DomUtil','useViewerBounds','quietPeriod','data','hidden','LayerUtil','register','30WYjGlx','lineLength','dropRateBump'];_0xa068=function(){return _0x3c90ec;};return _0xa068();}class CanvasWindLayer extends BaseLayer{constructor(_0x19cc35={}){super(_0x19cc35);function _0x35bac6(_0x3c2c94,_0x2ef231){return _0x260be5(_0x2ef231-0x2f2,_0x3c2c94);}this['_setOptionsHook'](_0x19cc35),this['canvas']=null,_0x19cc35[_0x35bac6(0x347,0x32c)]&&_0x19cc35['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x19cc35));}[_0x5e0b3a(0x256,0x222)](_0x3c1981,_0x20dd85){this['frameTime']=0x3e8/(_0x3c1981['frameRate']||0xa),this['_pointerEvents']=this[_0x368fe5(0x158,0xeb)]['pointerEvents']??![],this['color']=_0x3c1981['color']||'#ffffff';function _0x5cb781(_0x50e0e3,_0x11c1d1){return _0x5e0b3a(_0x11c1d1,_0x50e0e3- -0x319);}function _0x368fe5(_0x233d06,_0x2c6f39){return _0x260be5(_0x2c6f39-0x0,_0x233d06);}this[_0x368fe5(0x95,0x72)]=_0x3c1981['lineWidth']||0x1,this[_0x368fe5(0x14,0x53)]=_0x3c1981[_0x5cb781(-0xa3,-0x84)]??0x0,this['flipY']=_0x3c1981['flipY']??![],this['windField']&&this['windField']['setOptions'](_0x3c1981);}get['layer'](){return this['canvas'];}get['canvasWidth'](){function _0x3c91c6(_0x11d916,_0x2b438b){return _0x5e0b3a(_0x2b438b,_0x11d916- -0x419);}function _0x1e1edb(_0x226bc9,_0x4a48bd){return _0x260be5(_0x4a48bd- -0x41,_0x226bc9);}return this['_map'][_0x3c91c6(-0x1ec,-0x162)]['canvas'][_0x1e1edb(0x4f,-0x12)];}get[_0x5e0b3a(0x28b,0x2c3)](){function _0x42f61c(_0x49153f,_0x25da11){return _0x5e0b3a(_0x49153f,_0x25da11-0x99);}return this['_map']['scene'][_0x42f61c(0x3ba,0x32d)]['clientHeight'];}get['pointerEvents'](){function _0xe09b66(_0x28feae,_0x1a64ef){return _0x5e0b3a(_0x1a64ef,_0x28feae- -0x168);}return this[_0xe09b66(0x14e,0x147)];}set['pointerEvents'](_0x548942){this[_0x4d79a8(0x1de,0x1a6)]=_0x548942;function _0x578d11(_0x30fe3a,_0x4aad6a){return _0x260be5(_0x4aad6a-0x23d,_0x30fe3a);}function _0x4d79a8(_0xede2c9,_0x2b677e){return _0x260be5(_0xede2c9-0x14b,_0x2b677e);}if(!this['canvas'])return;_0x548942?this['canvas'][_0x4d79a8(0x159,0x107)]['pointer-events']='all':this[_0x578d11(0x289,0x2ae)]['style'][_0x4d79a8(0x1e3,0x21b)]=_0x4d79a8(0x197,0x170);}get['particlesNumber'](){function _0x4dc60e(_0x3223f6,_0x25b6a1){return _0x5e0b3a(_0x25b6a1,_0x3223f6- -0x23e);}return this['options'][_0x4dc60e(0xa4,0xff)];}set[_0x260be5(0xbf,0xb3)](_0x3acb95){function _0x4089b1(_0x43307b,_0x339544){return _0x5e0b3a(_0x339544,_0x43307b- -0x3a5);}this[_0x4089b1(-0x97,-0xf1)]['particlesNumber']=_0x3acb95,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{function _0x31ac99(_0x1a9998,_0x4543e7){return _0x4089b1(_0x1a9998-0x43e,_0x4543e7);}this[_0x31ac99(0x2f7,0x367)]();},0x1f4);}get['speedRate'](){return this['options']['speedRate'];}set[_0x5e0b3a(0x28e,0x217)](_0x53de86){function _0x257a14(_0x36ef5e,_0x2ac29d){return _0x5e0b3a(_0x2ac29d,_0x36ef5e- -0x15);}this[_0x257a14(0x2f9,0x2ff)][_0x257a14(0x202,0x1a8)]=_0x53de86;function _0x163b6b(_0x9c8cdd,_0x541dc8){return _0x260be5(_0x541dc8-0x384,_0x9c8cdd);}this['windField']&&(this[_0x257a14(0x2fe,0x379)]['speedRate']=_0x53de86);}get['maxAge'](){function _0x2df9b4(_0xaec415,_0x1c73d6){return _0x5e0b3a(_0xaec415,_0x1c73d6- -0x376);}return this[_0x2df9b4(-0xd7,-0x68)]['maxAge'];}set['maxAge'](_0xae5bb9){this[_0x412114(-0xa8,-0x9c)]['maxAge']=_0xae5bb9;function _0x4bb770(_0x42c35a,_0x45ab64){return _0x5e0b3a(_0x42c35a,_0x45ab64-0x1bc);}function _0x412114(_0x119639,_0x13e6b0){return _0x260be5(_0x13e6b0- -0x187,_0x119639);}this[_0x412114(-0x107,-0x97)]&&(this['windField']['maxAge']=_0xae5bb9);}get['data'](){return this['windData'];}set[_0x260be5(0x16,0x4a)](_0xdb4d98){this['setData'](_0xdb4d98);}get['rectangle'](){function _0x2016a6(_0xd4e82b,_0x28ccbb){return _0x5e0b3a(_0x28ccbb,_0xd4e82b- -0x222);}let _0x536c73=this['windData'][_0x2016a6(-0x2,-0x62)],_0x56f25a=this['windData'][_0x10e408(-0x8c,-0x108)],_0x49e5e0=this['windData'][_0x2016a6(0xbb,0x6e)],_0x50e461=this['windData'][_0x10e408(-0x35,-0x90)];_0x56f25a>=0x167&&_0x536c73===0x0&&(_0x536c73=-0xb4,_0x56f25a=0xb4);function _0x10e408(_0x2e5684,_0x45e3d7){return _0x5e0b3a(_0x2e5684,_0x45e3d7- -0x378);}return _0x536c73=Math['max'](_0x536c73,-0xb4),_0x56f25a=Math['min'](_0x56f25a,0xb4),_0x49e5e0=Math[_0x2016a6(0x2d,0xd)](_0x49e5e0,-0x5a),_0x50e461=Math[_0x10e408(-0x93,-0xe1)](_0x50e461,0x5a),Cesium[_0x2016a6(-0x1c,-0x47)]['fromDegrees'](_0x536c73,_0x49e5e0,_0x56f25a,_0x50e461);}['_showHook'](_0x5b1fd4){_0x5b1fd4?this['_addedHook']():(this['windData']&&(this['options']['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x3a033c(_0x237507,_0x5aa611){return _0x260be5(_0x5aa611- -0x151,_0x237507);}this['options']['worker']?this[_0x3a033c(0x2b,-0x62)]():this['windField']=new CanvasWindField(this['options']);}[_0x5e0b3a(0x2ba,0x292)](){function _0x1dd49e(_0x5eeb36,_0x39846f){return _0x5e0b3a(_0x39846f,_0x5eeb36-0x6);}this['canvas']=this[_0x1dd49e(0x315,0x2d5)]();function _0x1528c7(_0x94de7c,_0x124f71){return _0x5e0b3a(_0x94de7c,_0x124f71-0x313);}const _0x3444ba={};_0x3444ba['willReadFrequently']=!![],this[_0x1dd49e(0x268,0x1e6)]=this[_0x1528c7(0x5b6,0x5a7)]['getContext']('2d',_0x3444ba),this[_0x1528c7(0x598,0x532)](),this[_0x1dd49e(0x314,0x333)][_0x1dd49e(0x23f,0x20e)]&&this['setData'](this['options'][_0x1528c7(0x5a6,0x54c)]);}['_removedHook'](){this['clear']();function _0xebb39e(_0x49976c,_0x5de220){return _0x260be5(_0x49976c-0x21e,_0x5de220);}this[_0xebb39e(0x249,0x20e)]();function _0x5cb423(_0x399f10,_0x318737){return _0x260be5(_0x399f10- -0x160,_0x318737);}this['canvas']&&(this['_map']['container'][_0x5cb423(-0xb5,-0x7d)](this[_0x5cb423(-0xef,-0x142)]),delete this['canvas']);}['_createCanvas'](){const _0x381f0e=mars3d__namespace[_0x463801(0xdb,0x13e)][_0x463801(0x14d,0x10b)]('canvas',_0x463801(0x1ca,0x150),this['_map'][_0x463801(0x90,0x106)]);_0x381f0e['style'][_0x463801(0x177,0x1ee)]=_0x463801(0x15b,0x1a7);function _0x463801(_0x50e01e,_0xc56353){return _0x5e0b3a(_0x50e01e,_0xc56353- -0xf8);}_0x381f0e[_0x463801(0x1c2,0x139)][_0x2ad45d(0x314,0x33e)]='0px',_0x381f0e['style'][_0x2ad45d(0x2e7,0x25b)]=_0x2ad45d(0x344,0x2dd),_0x381f0e[_0x463801(0x12c,0x139)][_0x2ad45d(0x3bf,0x43d)]=this['_map']['scene']['canvas']['clientWidth']+'px',_0x381f0e[_0x2ad45d(0x304,0x38c)]['height']=this[_0x463801(0x194,0x12d)][_0x463801(0x101,0x135)][_0x463801(0x224,0x19c)]['clientHeight']+'px',_0x381f0e['style']['pointerEvents']=this['_pointerEvents']?'auto':'none',_0x381f0e[_0x2ad45d(0x304,0x27e)]['zIndex']=this[_0x2ad45d(0x3e1,0x440)]['zIndex']??0x9,_0x381f0e['width']=this[_0x463801(0x153,0x12d)][_0x463801(0xca,0x135)][_0x2ad45d(0x367,0x393)][_0x2ad45d(0x325,0x3af)],_0x381f0e['height']=this['_map'][_0x2ad45d(0x300,0x2bd)][_0x2ad45d(0x367,0x3db)]['clientHeight'];function _0x2ad45d(_0x36c50d,_0x141b92){return _0x260be5(_0x36c50d-0x2f6,_0x141b92);}return _0x381f0e;}['resize'](){function _0x58ffde(_0x259c74,_0x34b058){return _0x260be5(_0x34b058- -0x7d,_0x259c74);}function _0x32cc67(_0xb5b2c3,_0x22970e){return _0x260be5(_0xb5b2c3-0x43b,_0x22970e);}this['canvas']&&(this[_0x58ffde(-0x7b,-0xc)][_0x32cc67(0x449,0x483)]['width']=this[_0x32cc67(0x43d,0x443)]['scene'][_0x58ffde(0x84,-0xc)]['clientWidth']+'px',this[_0x58ffde(0x7e,-0xc)][_0x32cc67(0x449,0x3fe)][_0x58ffde(-0x2b,-0x7a)]=this['_map'][_0x58ffde(-0xc8,-0x73)]['canvas']['clientHeight']+'px',this['canvas'][_0x58ffde(0x51,0x4c)]=this['_map']['scene']['canvas']['clientWidth'],this['canvas'][_0x32cc67(0x43e,0x405)]=this['_map']['scene'][_0x32cc67(0x4ac,0x430)]['clientHeight']);}['bindEvent'](){function _0x366c09(_0x564db1,_0x5685d1){return _0x5e0b3a(_0x564db1,_0x5685d1- -0x174);}const _0xeb83aa=this;let _0x59fe81=Date['now']();(function _0x10c542(){if(_0xeb83aa['isDestroy'])return;_0xeb83aa['_animateFrame']=window[_0xe99afd(0x40f,0x47a)](_0x10c542);function _0xe99afd(_0x300f42,_0x5dfbbd){return _0x66cf(_0x300f42-0x24c,_0x5dfbbd);}function _0x39e9fb(_0x54db0e,_0x53c18c){return _0x66cf(_0x54db0e-0x16,_0x53c18c);}if(_0xeb83aa[_0x39e9fb(0x1c1,0x240)]&&_0xeb83aa['windField']){const _0xe9e072=Date[_0xe99afd(0x3d8,0x34f)](),_0x8bf8bf=_0xe9e072-_0x59fe81;_0x8bf8bf>_0xeb83aa[_0x39e9fb(0x22b,0x1fb)]&&(_0x59fe81=_0xe9e072-_0x8bf8bf%_0xeb83aa[_0x39e9fb(0x22b,0x1d1)],_0xeb83aa['update']());}}(),window[_0xc1f693(-0xc4,-0xf0)](_0xc1f693(-0x103,-0x106),this[_0xc1f693(-0xe4,-0x106)]['bind'](this),![]),this[_0xc1f693(-0xd2,-0xe5)]=![],this[_0xc1f693(-0x10d,-0x12e)]=![]);function _0xc1f693(_0x2f3372,_0x1f0400){return _0x260be5(_0x1f0400- -0x14f,_0x2f3372);}this['options'][_0xc1f693(-0x1b2,-0x129)]&&(this[_0x366c09(0x10d,0xb1)]['on'](mars3d__namespace[_0xc1f693(-0x19e,-0x13e)]['wheel'],this[_0xc1f693(-0xf9,-0xa2)],this),this[_0x366c09(0x2b,0xb1)]['on'](mars3d__namespace['EventType'][_0x366c09(0xb3,0x9b)],this[_0x366c09(0xab,0x10d)],this),this['_map']['on'](mars3d__namespace[_0xc1f693(-0x1af,-0x13e)][_0xc1f693(-0x155,-0xd6)],this[_0x366c09(0x16d,0xf1)],this));}[_0x5e0b3a(0x1f1,0x24e)](){window[_0x2f7573(0x448,0x3bb)](this[_0x1e6116(0x382,0x3b0)]);function _0x1e6116(_0x317c72,_0x5eead4){return _0x260be5(_0x317c72-0x3a3,_0x5eead4);}function _0x2f7573(_0x5a3cf5,_0x20cb4a){return _0x5e0b3a(_0x5a3cf5,_0x20cb4a-0xc9);}delete this[_0x1e6116(0x382,0x348)],window[_0x1e6116(0x467,0x423)]('resize',this[_0x2f7573(0x392,0x335)]),this[_0x1e6116(0x48e,0x4e8)]['mouseHidden']&&(this['_map']['off'](mars3d__namespace['EventType']['wheel'],this[_0x2f7573(0x3a1,0x399)],this),this['_map']['off'](mars3d__namespace[_0x2f7573(0x2a0,0x2fd)]['mouseDown'],this[_0x1e6116(0x401,0x43a)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x260be5(0xad,0x1e)](_0x581da0){clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;function _0x5d0b83(_0x13fe30,_0x3f16af){return _0x260be5(_0x3f16af-0x4d9,_0x13fe30);}function _0x270571(_0x5f2e01,_0x11e57f){return _0x260be5(_0x5f2e01-0x522,_0x11e57f);}this['canvas']['style'][_0x5d0b83(0x4c3,0x550)]=_0x270571(0x539,0x550),this[_0x5d0b83(0x617,0x5c2)]=setTimeout(()=>{function _0x2402d0(_0x45a013,_0x469637){return _0x5d0b83(_0x45a013,_0x469637- -0x532);}if(!this['show'])return;this['redraw']();function _0x2ca661(_0xeafe3f,_0x4f22e6){return _0x5d0b83(_0xeafe3f,_0x4f22e6- -0x44d);}this['canvas']['style'][_0x2ca661(0x111,0x103)]=_0x2402d0(-0x6,-0x21);},0xc8);}['_onMouseDownEvent'](_0x2cc683){this['mouse_down']=!![];function _0x4684aa(_0x94f2d0,_0x57bbb6){return _0x260be5(_0x94f2d0-0x1e7,_0x57bbb6);}function _0x3a3e04(_0x430aeb,_0x148ae9){return _0x5e0b3a(_0x430aeb,_0x148ae9- -0x173);}this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x4684aa(0x1e9,0x268)]['on'](mars3d__namespace['EventType'][_0x4684aa(0x1f2,0x169)],this[_0x3a3e04(0x11a,0x19e)],this);}[_0x260be5(0xee,0xaf)](_0x52b045){function _0x3d2f2f(_0x222b5e,_0x33a9fb){return _0x260be5(_0x33a9fb-0x3ff,_0x222b5e);}if(!this['show']||!this[_0x4162f8(0x246,0x243)])return;function _0x4162f8(_0x2ac04c,_0x332b13){return _0x5e0b3a(_0x2ac04c,_0x332b13- -0x51);}this['mouse_down']&&(this[_0x4162f8(0x275,0x243)]['style'][_0x4162f8(0x26b,0x249)]='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0xb98bc7){function _0x2bc6a5(_0x199154,_0xad5cc8){return _0x260be5(_0xad5cc8-0x23a,_0x199154);}if(!this['show']||!this[_0x267b7b(-0x1eb,-0x200)])return;function _0x267b7b(_0x1d5185,_0xaaebc7){return _0x5e0b3a(_0xaaebc7,_0x1d5185- -0x47f);}this[_0x267b7b(-0x25a,-0x2bf)]['off'](mars3d__namespace[_0x2bc6a5(0x2b3,0x24b)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x267b7b(-0x1f2,-0x194)]&&this['mouse_move']&&this[_0x267b7b(-0x221,-0x1ec)](),this[_0x267b7b(-0x1eb,-0x241)]['style']['visibility']=_0x267b7b(-0x224,-0x1c1),this['mouse_down']=![],this['mouse_move']=![];}['setData'](_0x2ed7c7){this['clear'](),this['windData']=_0x2ed7c7,this['windField']['setDate'](_0x2ed7c7),this['redraw']();}['redraw'](){if(!this[_0x109b76(0x186,0x162)])return;this['windField']['setOptions'](this[_0x13598b(-0x182,-0x1d3)]);function _0x109b76(_0x3e6d20,_0x12dd0e){return _0x5e0b3a(_0x3e6d20,_0x12dd0e- -0xff);}function _0x13598b(_0x3316c0,_0x2e6343){return _0x260be5(_0x3316c0- -0x26d,_0x2e6343);}this[_0x13598b(-0x239,-0x282)]();}[_0x5e0b3a(0x1c9,0x257)](){function _0x2ed9e3(_0x2e818a,_0x53f676){return _0x260be5(_0x2e818a-0x395,_0x53f676);}function _0x25ea92(_0x4b9de3,_0xfeaf3c){return _0x260be5(_0xfeaf3c- -0x1de,_0x4b9de3);}if(this['_updateIng'])return;this[_0x25ea92(-0x1bc,-0x1e9)]=!![];if(this[_0x25ea92(-0x19f,-0x193)])this['windField']['update']();else{const _0x2e764c=this['windField']['getParticles']();this[_0x2ed9e3(0x3fb,0x3b4)](_0x2e764c);}this[_0x2ed9e3(0x38a,0x337)]=![];}['_drawLines'](_0x12d341){this['_canvasParticles']=_0x12d341,this[_0x54537e(0x18,0x31)]['globalCompositeOperation']=_0x27bffe(0x377,0x332);function _0x54537e(_0x4549d4,_0x259d20){return _0x260be5(_0x259d20- -0xe,_0x4549d4);}this['canvasContext']['fillRect'](0x0,0x0,this[_0x27bffe(0x2fd,0x2ab)],this[_0x54537e(0x9c,0x92)]),this['canvasContext']['globalCompositeOperation']='lighter';function _0x27bffe(_0x597f2b,_0xd8c697){return _0x260be5(_0x597f2b-0x30f,_0xd8c697);}this[_0x54537e(0xb7,0x31)]['globalAlpha']=0.9;const _0xbcb344=this['_map'][_0x54537e(-0x6b,-0x4)]['mode']!==Cesium['SceneMode']['SCENE3D'],_0x1afb30=this['canvasWidth']*0.25;if(this[_0x54537e(0xaf,0x29)])for(let _0x31e801=0x0,_0x235f6b=_0x12d341[_0x54537e(-0xa3,-0x38)];_0x31e801<_0x235f6b;_0x31e801++){const _0x1bf74e=_0x12d341[_0x31e801],_0x5bf131=this[_0x27bffe(0x342,0x399)](_0x1bf74e,_0x1bf74e['lng'],_0x1bf74e['lat'],_0x1bf74e[_0x54537e(-0x34,0x47)]),_0x2b9752=this[_0x27bffe(0x342,0x367)](_0x1bf74e,_0x1bf74e['tlng'],_0x1bf74e['tlat'],_0x1bf74e[_0x54537e(0xa7,0xa1)]);if(!_0x5bf131||!_0x2b9752)continue;if(_0xbcb344&&Math[_0x54537e(0xb4,0xb0)](_0x5bf131[0x0]-_0x2b9752[0x0])>=_0x1afb30)continue;this[_0x27bffe(0x34e,0x2e7)][_0x27bffe(0x3ee,0x3ed)](),this['canvasContext'][_0x54537e(0xd,0x64)]=this['lineWidth'],this['canvasContext'][_0x27bffe(0x405,0x487)]=this[_0x54537e(0x8,0x29)]['getColor'](_0x1bf74e['speed']),this['canvasContext'][_0x54537e(0x10,-0x1b)](_0x5bf131[0x0],_0x5bf131[0x1]),this['canvasContext']['lineTo'](_0x2b9752[0x0],_0x2b9752[0x1]),this[_0x27bffe(0x34e,0x3d4)]['stroke']();}else{this['canvasContext']['beginPath'](),this[_0x27bffe(0x34e,0x34a)][_0x27bffe(0x381,0x3f9)]=this[_0x54537e(0xd8,0x64)],this['canvasContext'][_0x54537e(0x167,0xe8)]=this['color'];for(let _0x300812=0x0,_0x2eb3ea=_0x12d341['length'];_0x300812<_0x2eb3ea;_0x300812++){const _0x161318=_0x12d341[_0x300812],_0x520252=this[_0x54537e(0x16,0x25)](_0x161318,_0x161318['lng'],_0x161318['lat'],_0x161318['alt']),_0xf48934=this[_0x27bffe(0x342,0x2f3)](_0x161318,_0x161318[_0x27bffe(0x31f,0x2d3)],_0x161318['tlat'],_0x161318[_0x27bffe(0x3be,0x35f)]);if(!_0x520252||!_0xf48934)continue;if(_0xbcb344&&Math['abs'](_0x520252[0x0]-_0xf48934[0x0])>=_0x1afb30)continue;this['canvasContext']['moveTo'](_0x520252[0x0],_0x520252[0x1]),this['canvasContext'][_0x27bffe(0x38c,0x3df)](_0xf48934[0x0],_0xf48934[0x1]);}this['canvasContext'][_0x54537e(-0x2,-0x2c)]();}}['_tomap'](_0x1ff5ff,_0x51507b,_0x9c90ea,_0x4f6000){const _0x46fdf5=Cesium['Cartesian3'][_0x2082c7(0x186,0x1aa)](_0x51507b,_0x9c90ea,_0x4f6000??this['fixedHeight']),_0x2325e2=this[_0x2082c7(0xba,0x62)][_0x520b78(0x475,0x4f6)];if(_0x2325e2[_0x520b78(0x478,0x41e)]===Cesium[_0x520b78(0x471,0x4e3)][_0x520b78(0x51f,0x514)]){const _0x52f719=new Cesium[(_0x2082c7(0x15a,0x170))](_0x2325e2[_0x2082c7(0x119,0xa9)]['ellipsoid'],_0x2325e2['camera']['positionWC']),_0x81a554=_0x52f719[_0x520b78(0x531,0x56a)](_0x46fdf5);if(!_0x81a554)return _0x1ff5ff['age']=0x0,null;}function _0x520b78(_0x52c58d,_0x13bb28){return _0x5e0b3a(_0x13bb28,_0x52c58d-0x248);}function _0x2082c7(_0x18c15,_0x13f98e){return _0x5e0b3a(_0x13f98e,_0x18c15- -0x16b);}const _0x292ec7=mars3d__namespace['PointTrans']['toWindowCoordinates'](this[_0x2082c7(0xba,0xaf)]['scene'],_0x46fdf5);return _0x292ec7?[_0x292ec7['x'],_0x292ec7['y']]:null;}['clear'](){this['windField']['clear'](),delete this['windData'];}['initWorker'](){this[_0x31794c(0x5d5,0x565)]=new Worker(this[_0x10fdc5(-0x3d,-0x99)]['worker']);function _0x31794c(_0x303af8,_0x319b72){return _0x5e0b3a(_0x303af8,_0x319b72-0x2f7);}this[_0x10fdc5(-0xb4,-0x139)]['onmessage']=_0x2a11bd=>{this['_drawLines'](_0x2a11bd['data']['particles']),this['_updateIng2']=![];};function _0x10fdc5(_0x4dbec4,_0x552227){return _0x5e0b3a(_0x4dbec4,_0x552227- -0x3a7);}this[_0x31794c(0x5fd,0x60a)]={'init':_0x35805b=>{const _0xc2c55e={};_0xc2c55e[_0x23c418(0x179,0x1e5)]='init';function _0x23c418(_0x5aad31,_0x1cf236){return _0x31794c(_0x5aad31,_0x1cf236- -0x3a8);}function _0x94d62d(_0x5bdf37,_0x543b89){return _0x10fdc5(_0x5bdf37,_0x543b89-0x3d0);}_0xc2c55e['options']=_0x35805b,this[_0x94d62d(0x235,0x297)]['postMessage'](_0xc2c55e);},'setOptions':_0x17b24d=>{const _0x5b9ca0={};_0x5b9ca0['type']='setOptions';function _0x4f2c9b(_0x485b31,_0xf7170b){return _0x31794c(_0x485b31,_0xf7170b- -0x777);}_0x5b9ca0['options']=_0x17b24d,this[_0x4f2c9b(-0x186,-0x212)]['postMessage'](_0x5b9ca0);},'setDate':_0x2c2676=>{function _0x18242d(_0x226567,_0x5eb5a5){return _0x31794c(_0x5eb5a5,_0x226567- -0x56d);}const _0x5ad5fe={};_0x5ad5fe['type']='setDate',_0x5ad5fe['data']=_0x2c2676;function _0x1dd680(_0x16d8a7,_0x14093b){return _0x31794c(_0x14093b,_0x16d8a7- -0x43b);}this[_0x1dd680(0x12a,0x19d)][_0x1dd680(0x1ac,0x1bd)](_0x5ad5fe);},'update':()=>{if(this[_0x14ba33(0x421,0x3a0)])return;this['_updateIng2']=!![];const _0x3515b6={};function _0x14ba33(_0x1b242f,_0x2d23d8){return _0x10fdc5(_0x2d23d8,_0x1b242f-0x4c5);}_0x3515b6['type']='update',this['worker']['postMessage'](_0x3515b6);},'clear':()=>{function _0x31a841(_0x5a3740,_0x49d344){return _0x10fdc5(_0x49d344,_0x5a3740-0x3c4);}const _0x24028b={};_0x24028b['type']='clear',this[_0x31a841(0x28b,0x222)]['postMessage'](_0x24028b);}},this[_0x31794c(0x5e4,0x60a)][_0x31794c(0x602,0x5a5)](this[_0x10fdc5(-0x5d,-0x99)]);}}mars3d__namespace['LayerUtil'][_0x260be5(0x19,0x4f)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer'][_0x260be5(0x8,-0x5e)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x260be5(-0x10,0x49)]['logInfo']('mars3d-wind插件\x20注册成功'),mars3d__namespace[_0x260be5(0xf3,0xe4)]=WindUtil,exports[_0x260be5(0xe8,0xca)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x260be5(0x7a,0x85)]=WindLayer,exports[_0x5e0b3a(0x319,0x316)]=WindUtil;const _0x2b367c={};_0x2b367c['value']=!![],Object[_0x5e0b3a(0x2b4,0x27c)](exports,_0x260be5(0xdc,0x13d),_0x2b367c);
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.10.
|
|
3
|
+
"version": "3.10.4",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.10.
|
|
8
|
+
"mars3d": "~3.10.4"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|