mars3d-wind 3.9.1 → 3.9.2
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.9.
|
|
5
|
-
* 编译日期:2025-
|
|
4
|
+
* 版本信息:v3.9.2
|
|
5
|
+
* 编译日期:2025-03-11 22:37
|
|
6
6
|
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
7
|
* 使用单位:火星科技免费公开版 ,2025-02-01
|
|
8
8
|
*/
|
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
|
|
12
12
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
|
|
13
13
|
})(this, (function (exports, mars3d) {
|
|
14
|
-
'use strict';(function(_0x50265a,_0x15ceb7){const _0x21cce5=_0x50265a();function _0x434bff(_0x11c7a2,_0x1dfe50){return _0xf0e9(_0x11c7a2-0x2ee,_0x1dfe50);}function _0x2872d3(_0x492ee6,_0x321798){return _0xf0e9(_0x321798-0x126,_0x492ee6);}while(!![]){try{const _0x209405=parseInt(_0x2872d3(0x304,0x295))/0x1+-parseInt(_0x434bff(0x498,0x4d4))/0x2+-parseInt(_0x2872d3(0x20c,0x28c))/0x3*(-parseInt(_0x434bff(0x457,0x3dd))/0x4)+-parseInt(_0x434bff(0x424,0x484))/0x5*(-parseInt(_0x434bff(0x421,0x3a9))/0x6)+parseInt(_0x434bff(0x3d6,0x357))/0x7+-parseInt(_0x2872d3(0x219,0x1e6))/0x8*(-parseInt(_0x434bff(0x43e,0x45b))/0x9)+-parseInt(_0x434bff(0x48d,0x4e8))/0xa*(parseInt(_0x434bff(0x4bd,0x4f5))/0xb);if(_0x209405===_0x15ceb7)break;else _0x21cce5['push'](_0x21cce5['shift']());}catch(_0x4607be){_0x21cce5['push'](_0x21cce5['shift']());}}}(_0x2f0d,0xc1f2e));function _interopNamespace(_0x5dfa63){if(_0x5dfa63&&_0x5dfa63['__esModule'])return _0x5dfa63;function _0x30b5ae(_0x57d03c,_0x242344){return _0xf0e9(_0x242344- -0x1f6,_0x57d03c);}var _0x5a09de=Object[_0x30b5ae(-0x43,-0x2a)](null);return _0x5dfa63&&Object['keys'](_0x5dfa63)['forEach'](function(_0x1782a0){function _0x24f010(_0x518f13,_0x3b9ef0){return _0x30b5ae(_0x3b9ef0,_0x518f13-0x270);}function _0x19994d(_0x2b5808,_0x384422){return _0x30b5ae(_0x2b5808,_0x384422-0x25f);}if(_0x1782a0!==_0x19994d(0x1ac,0x1d9)){var _0x3a47fa=Object[_0x19994d(0x28e,0x21b)](_0x5dfa63,_0x1782a0);Object['defineProperty'](_0x5a09de,_0x1782a0,_0x3a47fa[_0x24f010(0x14f,0x15d)]?_0x3a47fa:{'enumerable':!![],'get':function(){return _0x5dfa63[_0x1782a0];}});}}),_0x5a09de['default']=_0x5dfa63,_0x5a09de;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x499d06(0x2f3,0x2df)];function getU(_0x59b510,_0x2abde9){const _0x477434=_0x59b510*Math['cos'](Cesium$2['Math']['toRadians'](_0x2abde9));return _0x477434;}function _0xf0e9(_0x8db3b,_0x5cafcc){const _0x2f0d64=_0x2f0d();return _0xf0e9=function(_0xf0e927,_0x55d980){_0xf0e927=_0xf0e927-0xae;let _0xdc715e=_0x2f0d64[_0xf0e927];return _0xdc715e;},_0xf0e9(_0x8db3b,_0x5cafcc);}function getV(_0x53d894,_0x12fb6d){const _0x5ecd38=_0x53d894*Math[_0x397f36(0x285,0x220)](Cesium$2['Math'][_0x1d4765(-0x2ca,-0x357)](_0x12fb6d));function _0x1d4765(_0x396e2b,_0x15197e){return _0x499d06(_0x15197e,_0x396e2b- -0x5ab);}function _0x397f36(_0xc459ad,_0x154b7c){return _0x499d06(_0xc459ad,_0x154b7c- -0x1c7);}return _0x5ecd38;}function getSpeed(_0x5797ee,_0x1be9d4){const _0x584157=Math['sqrt'](Math['pow'](_0x5797ee,0x2)+Math['pow'](_0x1be9d4,0x2));return _0x584157;}function getDirection(_0x4bdbe4,_0x578b0e){let _0x2a3db3=Cesium$2['Math']['toDegrees'](Math[_0x21aa8a(0x10d,0xd7)](_0x578b0e,_0x4bdbe4));function _0x21aa8a(_0x700d33,_0xf1368e){return _0x499d06(_0x700d33,_0xf1368e- -0x24a);}return _0x2a3db3+=_0x2a3db3<0x0?0x168:0x0,_0x2a3db3;}const _0x259f45={};_0x259f45['__proto__']=null,_0x259f45[_0x2a5aee(0x49b,0x42b)]=getU,_0x259f45[_0x499d06(0x276,0x2d6)]=getV,_0x259f45['getSpeed']=getSpeed,_0x259f45[_0x2a5aee(0x3ed,0x36d)]=getDirection;var WindUtil=_0x259f45,updatePositionShader=_0x2a5aee(0x451,0x3d8),calculateSpeedShader=_0x2a5aee(0x3fb,0x3b4),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=_0x499d06(0x373,0x3e5),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[_0x499d06(0x2c4,0x2df)];class ShaderManager{static[_0x2a5aee(0x3e4,0x39d)](){const _0x285759={};function _0x1d5889(_0x53f301,_0x3b774f){return _0x499d06(_0x53f301,_0x3b774f-0x4);}return _0x285759[_0x1d5889(0x373,0x324)]=[calculateSpeedShader],new ShaderSource$1(_0x285759);}static['getUpdatePositionShader'](){const _0x173e0e={};return _0x173e0e['sources']=[updatePositionShader],new ShaderSource$1(_0x173e0e);}static['getSegmentDrawVertexShader'](){const _0x3dcddb={};return _0x3dcddb['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x3dcddb);}static['getSegmentDrawFragmentShader'](){const _0x3e88c4={};return _0x3e88c4['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x3e88c4);}static[_0x499d06(0x3a5,0x3c2)](){function _0xb85bb6(_0x3a21b3,_0x2c2bea){return _0x2a5aee(_0x3a21b3- -0x23b,_0x2c2bea);}const _0x3a4de0={};return _0x3a4de0[_0xb85bb6(0x1c5,0x21d)]=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x3a4de0);}}function _0x499d06(_0x1b3691,_0x334111){return _0xf0e9(_0x334111-0x226,_0x1b3691);}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defaultValue,defined,destroyObject}=mars3d__namespace[_0x2a5aee(0x3bf,0x42d)];class CustomPrimitive{constructor(_0x411297){this['commandType']=_0x411297[_0x104400(0x494,0x46c)];function _0x4fda0b(_0x575af8,_0x4d8f20){return _0x499d06(_0x4d8f20,_0x575af8- -0x38a);}this[_0x104400(0x54a,0x57d)]=_0x411297[_0x4fda0b(0x23,-0x2)],this['attributeLocations']=_0x411297['attributeLocations'];function _0x104400(_0x4d7d31,_0x25ce12){return _0x499d06(_0x25ce12,_0x4d7d31-0x19d);}this[_0x104400(0x555,0x558)]=_0x411297[_0x104400(0x555,0x544)],this['uniformMap']=_0x411297[_0x4fda0b(-0x8e,-0xdc)]||{},this['vertexShaderSource']=_0x411297['vertexShaderSource'],this['fragmentShaderSource']=_0x411297[_0x104400(0x52a,0x4a5)],this['rawRenderState']=_0x411297['rawRenderState'],this['framebuffer']=_0x411297['framebuffer'],this['outputTexture']=_0x411297['outputTexture'],this[_0x104400(0x50d,0x505)]=defaultValue(_0x411297['autoClear'],![]),this['preExecute']=_0x411297[_0x104400(0x4c3,0x4c8)],this[_0x4fda0b(0x34,0x6e)]=!![],this['commandToExecute']=undefined,this[_0x104400(0x4c8,0x453)]=undefined,this['isDynamic']=_0x411297[_0x104400(0x480,0x4e0)]??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x4fda0b(0x36,0xb8)],'pass':Pass$1['OPAQUE']}));}[_0x499d06(0x3da,0x3ae)](_0xe911dd){function _0x43ad4e(_0x5f2701,_0x146479){return _0x499d06(_0x146479,_0x5f2701-0x13b);}function _0x1bb1ce(_0x3f0ee8,_0x32d901){return _0x499d06(_0x32d901,_0x3f0ee8- -0x5e2);}if(this[_0x1bb1ce(-0x2eb,-0x2d7)]==='Draw'){const _0x28b2fe={};_0x28b2fe['context']=_0xe911dd,_0x28b2fe['geometry']=this[_0x43ad4e(0x4e8,0x4fd)],_0x28b2fe['attributeLocations']=this[_0x1bb1ce(-0x252,-0x200)],_0x28b2fe['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x432963=VertexArray$1['fromGeometry'](_0x28b2fe),_0xcaec75={};_0xcaec75['context']=_0xe911dd,_0xcaec75[_0x1bb1ce(-0x2e4,-0x2a4)]=this[_0x43ad4e(0x439,0x47d)],_0xcaec75['fragmentShaderSource']=this[_0x43ad4e(0x4c8,0x44b)],_0xcaec75['attributeLocations']=this[_0x1bb1ce(-0x252,-0x233)];const _0x4af0ff=ShaderProgram[_0x1bb1ce(-0x2ec,-0x2cd)](_0xcaec75),_0x5b3fe7=RenderState[_0x1bb1ce(-0x2ec,-0x2b5)](this[_0x43ad4e(0x463,0x3e2)]),_0x23783d={};return _0x23783d[_0x43ad4e(0x4e6,0x4a8)]=this,_0x23783d['vertexArray']=_0x432963,_0x23783d['primitiveType']=this['primitiveType'],_0x23783d[_0x43ad4e(0x44d,0x463)]=Matrix4[_0x1bb1ce(-0x2ee,-0x301)],_0x23783d[_0x1bb1ce(-0x307,-0x395)]=_0x5b3fe7,_0x23783d[_0x1bb1ce(-0x2ac,-0x33c)]=_0x4af0ff,_0x23783d[_0x1bb1ce(-0x222,-0x256)]=this[_0x43ad4e(0x4fb,0x514)],_0x23783d['uniformMap']=this[_0x1bb1ce(-0x2e6,-0x268)],_0x23783d[_0x1bb1ce(-0x2e9,-0x34e)]=Pass$1[_0x43ad4e(0x46b,0x49e)],new DrawCommand(_0x23783d);}else{if(this['commandType']===_0x43ad4e(0x455,0x481)){const _0x1d7933={};return _0x1d7933['owner']=this,_0x1d7933['fragmentShaderSource']=this['fragmentShaderSource'],_0x1d7933['uniformMap']=this['uniformMap'],_0x1d7933[_0x1bb1ce(-0x2e2,-0x263)]=this['outputTexture'],_0x1d7933[_0x1bb1ce(-0x25c,-0x1fd)]=!![],new ComputeCommand(_0x1d7933);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x54b794,_0x3946c7){this['geometry']=_0x3946c7;function _0x30a844(_0x480f3d,_0x381fd8){return _0x499d06(_0x381fd8,_0x480f3d- -0x5c7);}function _0x186406(_0x695ec8,_0x409914){return _0x499d06(_0x409914,_0x695ec8- -0x5c7);}defined(this['commandToExecute'])&&(this[_0x186406(-0x22e,-0x2b8)][_0x186406(-0x2b7,-0x2cd)]=VertexArray$1[_0x30a844(-0x1e5,-0x1eb)]({'context':_0x54b794,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x5dc873){if(!this[_0x28410f(0x390,0x3ca)]())return;if(!this['show']||!defined(_0x5dc873))return;!defined(this['commandToExecute'])&&(this[_0x28410f(0x446,0x41f)]=this[_0x28410f(0x45b,0x4e8)](_0x5dc873[_0x1ed9ea(0x454,0x49c)]));function _0x28410f(_0x6bdd69,_0x3ea641){return _0x499d06(_0x3ea641,_0x6bdd69-0xad);}defined(this[_0x28410f(0x3d3,0x3f4)])&&this['preExecute']();function _0x1ed9ea(_0x65a588,_0x5bdfea){return _0x2a5aee(_0x65a588- -0x45,_0x5bdfea);}if(!_0x5dc873['commandList']){console[_0x28410f(0x440,0x3e1)]('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x5dc873[_0x1ed9ea(0x401,0x431)]['push'](this['clearCommand']),defined(this[_0x1ed9ea(0x434,0x401)])&&_0x5dc873['commandList'][_0x28410f(0x41a,0x38f)](this[_0x1ed9ea(0x434,0x4be)]);}['isDestroyed'](){return![];}['destroy'](){if(defined(this['commandToExecute'])){var _0x403bd9;(_0x403bd9=this['commandToExecute'][_0x1113d8(0x174,0x1f7)])===null||_0x403bd9===void 0x0||_0x403bd9[_0x2daea9(0x508,0x581)](),this[_0x2daea9(0x504,0x4c1)]['shaderProgram']=undefined;}function _0x1113d8(_0x2d071a,_0x2f18e8){return _0x2a5aee(_0x2d071a- -0x2a2,_0x2f18e8);}function _0x2daea9(_0x1cb29c,_0x2e1257){return _0x2a5aee(_0x1cb29c-0x8b,_0x2e1257);}return destroyObject(this);}}function deepMerge(_0x355a65,_0x2e7964){if(!_0x355a65)return _0x2e7964;if(!_0x2e7964)return _0x355a65;function _0x519eb6(_0x4dd8c8,_0x2895e4){return _0x499d06(_0x2895e4,_0x4dd8c8- -0x10d);}const _0x5ba9a0={..._0x2e7964},_0x45876f=_0x5ba9a0;for(const _0x4f31e0 in _0x355a65){if(Object['prototype'][_0x2f6cf5(0x3a,-0x2c)][_0x519eb6(0x287,0x2d5)](_0x355a65,_0x4f31e0)){const _0x24c8da=_0x355a65[_0x4f31e0],_0x3f4d3f=_0x2e7964[_0x4f31e0];if(Array['isArray'](_0x24c8da)){_0x45876f[_0x4f31e0]=_0x24c8da['slice']();continue;}if(_0x24c8da&&typeof _0x24c8da==='object'){_0x45876f[_0x4f31e0]=deepMerge(_0x24c8da,_0x3f4d3f||{});continue;}_0x24c8da!==undefined&&(_0x45876f[_0x4f31e0]=_0x24c8da);}}function _0x2f6cf5(_0x146d43,_0x1f51fc){return _0x499d06(_0x146d43,_0x1f51fc- -0x31a);}return _0x45876f;}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(_0xd1a379,_0x5688e5,_0x13cf3b,_0x42c7a7,_0x4db45d){this['context']=_0xd1a379,this['options']=_0x13cf3b,this[_0x551fd9(-0x1a9,-0x153)]=_0x42c7a7,this['windData']=_0x5688e5,this['frameRate']=0x3c,this[_0x551fd9(-0x221,-0x191)]=0x1;const _0xe31408={};_0xe31408[_0x1cf161(-0x295,-0x265)]=_0x4db45d,_0xe31408[_0x551fd9(-0x23e,-0x1c9)]=0x1;function _0x551fd9(_0x23d0c1,_0x391780){return _0x2a5aee(_0x391780- -0x5f4,_0x23d0c1);}_0xe31408[_0x551fd9(-0x1e4,-0x1c5)]=0x0;function _0x1cf161(_0x1f2d25,_0x1c04f5){return _0x499d06(_0x1f2d25,_0x1c04f5- -0x567);}this['frameRateMonitor']=new FrameRateMonitor(_0xe31408),this['initFrameRate'](),this['createWindTextures'](),this[_0x551fd9(-0x1db,-0x162)](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x104781=()=>{function _0x58e619(_0x4826dd,_0x2e6ff3){return _0xf0e9(_0x4826dd-0x2b9,_0x2e6ff3);}function _0x4ddedc(_0x521003,_0x5aec9e){return _0xf0e9(_0x521003-0x2c5,_0x5aec9e);}this['frameRateMonitor'][_0x4ddedc(0x41a,0x3f6)]>0x14&&(this[_0x58e619(0x3c5,0x379)]=this['frameRateMonitor'][_0x58e619(0x40e,0x39e)],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0x104781();const _0x324218=setInterval(_0x104781,0x3e8);function _0x1af0e3(_0x27c0c0,_0x3a1cdf){return _0x499d06(_0x27c0c0,_0x3a1cdf- -0x77);}function _0x2ac2c5(_0x50f2c4,_0x5858b5){return _0x499d06(_0x50f2c4,_0x5858b5- -0x58e);}const _0x2fccbb=this[_0x2ac2c5(-0x272,-0x1f1)][_0x2ac2c5(-0x1c3,-0x1c8)](this);this[_0x1af0e3(0x31a,0x326)]=()=>{clearInterval(_0x324218),_0x2fccbb();};}['createWindTextures'](){const _0x4e8087={};function _0x2a99a0(_0x401aca,_0x24f459){return _0x2a5aee(_0x401aca-0x72,_0x24f459);}_0x4e8087[_0xb24b2d(-0x21a,-0x1a8)]=TextureMinificationFilter$1['LINEAR'],_0x4e8087['magnificationFilter']=TextureMagnificationFilter$1[_0x2a99a0(0x52b,0x4f3)];const _0x158ccf={'context':this[_0x2a99a0(0x50b,0x55c)],'width':this[_0xb24b2d(-0x204,-0x201)]['width'],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0xb24b2d(-0x276,-0x22f)]['flipY']??![],'sampler':new Sampler$1(_0x4e8087)};function _0xb24b2d(_0x5de2c9,_0x251357){return _0x2a5aee(_0x251357- -0x619,_0x5de2c9);}this[_0x2a99a0(0x4d2,0x4d4)]={'U':new Texture$1({..._0x158ccf,'source':{'arrayBufferView':new Float32Array(this['windData']['u'][_0x2a99a0(0x51d,0x535)])}}),'V':new Texture$1({..._0x158ccf,'source':{'arrayBufferView':new Float32Array(this[_0xb24b2d(-0x196,-0x201)]['v'][_0x2a99a0(0x51d,0x549)])}})};}['createParticlesTextures'](){function _0x2d04c7(_0x1961ff,_0x560b3c){return _0x2a5aee(_0x560b3c- -0x2aa,_0x1961ff);}const _0x45731e={};_0x45731e['minificationFilter']=TextureMinificationFilter$1[_0x219dfc(-0xde,-0x6f)],_0x45731e['magnificationFilter']=TextureMagnificationFilter$1[_0x219dfc(-0x3c,-0x6f)];const _0x39bcac={'context':this[_0x2d04c7(0x269,0x1ef)],'width':this['options']['particlesTextureSize'],'height':this[_0x219dfc(-0x77,-0xb3)][_0x219dfc(-0x58,-0xb1)],'pixelFormat':PixelFormat$1[_0x2d04c7(0x235,0x223)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x2d04c7(0x15f,0x140)]['particlesTextureSize']*this[_0x2d04c7(0x194,0x140)][_0x2d04c7(0x182,0x142)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x45731e)};function _0x219dfc(_0xee78bf,_0x5c488e){return _0x2a5aee(_0x5c488e- -0x49d,_0xee78bf);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x39bcac),'currentParticlesPosition':new Texture$1(_0x39bcac),'nextParticlesPosition':new Texture$1(_0x39bcac),'postProcessingPosition':new Texture$1(_0x39bcac),'particlesSpeed':new Texture$1(_0x39bcac)};}[_0x499d06(0x2ff,0x36f)](){function _0x2487a2(_0x2457e9,_0xbd36db){return _0x499d06(_0xbd36db,_0x2457e9- -0x388);}Object[_0x2487a2(-0x93,-0x3f)](this['particlesTextures'])['forEach'](_0x62e9f2=>_0x62e9f2['destroy']());}['createComputingPrimitives'](){function _0x4dd035(_0x354654,_0xa17818){return _0x2a5aee(_0x354654-0xcc,_0xa17818);}function _0x267cd5(_0x4f4466,_0x397dc1){return _0x499d06(_0x4f4466,_0x397dc1- -0x401);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this[_0x4dd035(0x4e4,0x4ba)]['u'][_0x267cd5(-0xed,-0xa3)]),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this[_0x267cd5(-0x97,-0xc9)]['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this['windData'][_0x4dd035(0x531,0x52c)]['max']),'currentParticlesPosition':()=>this[_0x4dd035(0x4c9,0x4a8)][_0x267cd5(-0xea,-0xe3)],'speedScaleFactor':()=>{function _0x24b561(_0x3d2725,_0x1c9372){return _0x267cd5(_0x1c9372,_0x3d2725-0x2c4);}function _0x312bc0(_0x151b70,_0x292214){return _0x267cd5(_0x292214,_0x151b70-0x4a8);}return(this[_0x24b561(0x284,0x2d6)][_0x24b561(0x262,0x231)]+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData'][_0x4dd035(0x570,0x550)],this[_0x4dd035(0x4e4,0x549)]['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0x267cd5(-0xfb,-0xfe)],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds'][_0x267cd5(-0xcb,-0x129)],this[_0x4dd035(0x4e4,0x54a)]['bounds'][_0x267cd5(-0xd8,-0x9f)])},'fragmentShaderSource':ShaderManager[_0x267cd5(-0x87,-0xfd)](),'outputTexture':this['particlesTextures']['particlesSpeed'],'preExecute':()=>{const _0x56d31d=this['particlesTextures']['previousParticlesPosition'];function _0x158be5(_0x434835,_0x5f3405){return _0x4dd035(_0x434835- -0x6d0,_0x5f3405);}this[_0x158be5(-0x207,-0x246)][_0x158be5(-0x18c,-0x20e)]=this[_0x158be5(-0x207,-0x179)][_0x158be5(-0x206,-0x264)],this[_0x158be5(-0x207,-0x237)]['currentParticlesPosition']=this[_0x158be5(-0x207,-0x27c)]['postProcessingPosition'],this['particlesTextures']['postProcessingPosition']=_0x56d31d;function _0x422835(_0x48a5d5,_0x47307f){return _0x267cd5(_0x47307f,_0x48a5d5-0x54e);}this['primitives']['calculateSpeed'][_0x158be5(-0x18b,-0x15a)]&&(this['primitives'][_0x158be5(-0x199,-0x10d)]['commandToExecute']['outputTexture']=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this[_0x4dd035(0x4b6,0x4e7)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x267cd5(-0x62,-0xe3)],'particlesSpeed':()=>this['particlesTextures'][_0x4dd035(0x530,0x4b6)]},'fragmentShaderSource':ShaderManager[_0x267cd5(-0x37,-0xb1)](),'outputTexture':this[_0x267cd5(-0x174,-0xe4)]['nextParticlesPosition'],'preExecute':()=>{function _0x4745b2(_0x4a9681,_0x221a70){return _0x4dd035(_0x4a9681- -0x593,_0x221a70);}function _0x31ef72(_0x5b2e25,_0x147111){return _0x267cd5(_0x5b2e25,_0x147111- -0xd2);}this['primitives']['updatePosition']['commandToExecute']&&(this['primitives']['updatePosition'][_0x4745b2(-0x4e,0x7)]['outputTexture']=this[_0x31ef72(-0x146,-0x1b6)][_0x31ef72(-0x278,-0x1eb)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x4dd035(0x4c6,0x550),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x267cd5(-0xff,-0x7d)],'lonRange':()=>this['viewerParameters'][_0x4dd035(0x50b,0x554)],'latRange':()=>this[_0x4dd035(0x56d,0x538)][_0x4dd035(0x54f,0x4e9)],'dataLonRange':()=>new Cartesian2$1(this['windData']['bounds']['west'],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this['windData']['bounds'][_0x267cd5(-0xb2,-0x9f)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options'][_0x4dd035(0x48a,0x4c0)],'dropRateBump':()=>this[_0x267cd5(-0x172,-0xf7)]['dropRateBump'],'useViewerBounds':()=>this['options'][_0x267cd5(-0x11c,-0xf2)]},'fragmentShaderSource':ShaderManager[_0x4dd035(0x56e,0x5ca)](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x59774f(_0xa7a734,_0x59e2e0){return _0x4dd035(_0x59e2e0- -0x6a5,_0xa7a734);}function _0x452028(_0x5c02af,_0x3026b6){return _0x4dd035(_0x5c02af- -0xad,_0x3026b6);}this[_0x452028(0x486,0x4c1)][_0x59774f(-0x18e,-0x192)][_0x59774f(-0xd4,-0x160)]&&(this[_0x452028(0x486,0x45b)][_0x452028(0x466,0x42e)]['commandToExecute']['outputTexture']=this['particlesTextures'][_0x452028(0x466,0x3ea)]);},'isDynamic':()=>this[_0x4dd035(0x4b6,0x470)]['dynamic']})};}[_0x2a5aee(0x48f,0x414)](){this[_0x550412(0x450,0x4b5)]['U'][_0x550412(0x46d,0x477)](),this['windTextures']['V'][_0x550412(0x46d,0x462)]();function _0x550412(_0xba6e26,_0x46613d){return _0x499d06(_0x46613d,_0xba6e26-0xd0);}function _0xbedf5(_0x18248a,_0x441292){return _0x499d06(_0x18248a,_0x441292- -0x2a2);}this[_0xbedf5(0xf5,0xb4)]();}[_0x499d06(0x39e,0x369)](_0x367038){function _0xc48c1c(_0x18c083,_0x47be92){return _0x499d06(_0x47be92,_0x18c083- -0xfa);}this[_0xc48c1c(0x23e,0x221)]=_0x367038,this['reCreateWindTextures']();}['updateOptions'](_0x30ac34){function _0xb617d2(_0x40a4d2,_0x21de64){return _0x499d06(_0x40a4d2,_0x21de64- -0x180);}const _0x2bbbfb=_0x30ac34['flipY']!==undefined&&_0x30ac34[_0xb617d2(0xd6,0x157)]!==this[_0xb617d2(0x136,0x18a)]['flipY'];function _0x58eb11(_0x210897,_0x55656a){return _0x2a5aee(_0x55656a- -0x2bf,_0x210897);}this[_0xb617d2(0x164,0x18a)]=deepMerge(_0x30ac34,this['options']),_0x2bbbfb&&this[_0x58eb11(0x15b,0x1d0)]();}['processWindData'](_0x3223f5){function _0x259b96(_0x88e16,_0x491b2f){return _0x499d06(_0x88e16,_0x491b2f- -0x137);}const {array:_0x33d399}=_0x3223f5;let {min:_0x50bc83,max:_0x146df5}=_0x3223f5;const _0x118206=new Float32Array(_0x33d399[_0x15febd(0x2c0,0x255)]);_0x50bc83===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x50bc83=Math['min'](..._0x33d399));_0x146df5===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x146df5=Math[_0x259b96(0x1b4,0x227)](..._0x33d399));const _0x369658=Math[_0x259b96(0x265,0x227)](Math[_0x259b96(0x240,0x1b5)](_0x50bc83),Math[_0x259b96(0x1d7,0x1b5)](_0x146df5));for(let _0x2e20bd=0x0;_0x2e20bd<_0x33d399['length'];_0x2e20bd++){const _0x4430b8=_0x33d399[_0x2e20bd]/_0x369658;_0x118206[_0x2e20bd]=_0x4430b8;}function _0x15febd(_0x2ab255,_0x323a58){return _0x499d06(_0x2ab255,_0x323a58- -0x160);}return _0x118206;}['destroy'](){Object['values'](this['windTextures'])['forEach'](_0x57082e=>_0x57082e['destroy']()),Object[_0x2602e1(-0x294,-0x2d3)](this['particlesTextures'])['forEach'](_0x5511cc=>_0x5511cc[_0xeaa7ec(0x119,0x119)]()),Object[_0xeaa7ec(0x71,0xc0)](this[_0xeaa7ec(0x103,0x17c)])['forEach'](_0x19815e=>_0x19815e[_0x2602e1(-0x1c6,-0x22b)]());function _0xeaa7ec(_0x5c7544,_0x326814){return _0x499d06(_0x326814,_0x5c7544- -0x284);}function _0x2602e1(_0xcb7e48,_0x1735b9){return _0x499d06(_0xcb7e48,_0x1735b9- -0x5c8);}this['frameRateMonitor']['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x5bec53,_0x27f433,_0x5db172,_0x4743e1){this['context']=_0x5bec53,this['options']=_0x27f433,this['viewerParameters']=_0x5db172,this[_0x26f987(0x72,0x80)]=_0x4743e1;function _0x26f987(_0x4a17f5,_0x3e772f){return _0x2a5aee(_0x3e772f- -0x437,_0x4a17f5);}(typeof this[_0x26f987(-0xc3,-0x4d)][_0x31f9d4(0x29d,0x26f)]!=='number'||this[_0x31f9d4(0x29b,0x24b)]['particlesTextureSize']<=0x0)&&(console[_0x31f9d4(0x275,0x2df)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x26f987(0x13,-0x4d)][_0x26f987(-0xbb,-0x4b)]=0x100);this[_0x31f9d4(0x2b8,0x298)]=this['createColorTableTexture']();function _0x31f9d4(_0x3ec275,_0x5a98ca){return _0x2a5aee(_0x3ec275- -0x14f,_0x5a98ca);}this['textures']=this['createRenderingTextures'](),this[_0x31f9d4(0x31f,0x2f5)]=this[_0x26f987(0xea,0x76)](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x2da0f1={};_0x2da0f1['context']=this['context'],_0x2da0f1['width']=this[_0x486efe(0x56,-0x16)]['drawingBufferWidth'],_0x2da0f1['height']=this['context'][_0xaee87(0x2d8,0x281)];function _0x486efe(_0x331e62,_0xb4b717){return _0x2a5aee(_0x331e62- -0x443,_0xb4b717);}_0x2da0f1['pixelFormat']=PixelFormat['RGBA'],_0x2da0f1[_0x486efe(0x6c,0xf1)]=PixelDatatype[_0x486efe(0x73,0x87)];const _0x1e3fd2=_0x2da0f1,_0x1eb492={};_0x1eb492[_0x486efe(0x56,0x2)]=this['context'],_0x1eb492['width']=this['context'][_0xaee87(0x2af,0x293)],_0x1eb492['height']=this['context'][_0xaee87(0x2d8,0x30b)],_0x1eb492[_0xaee87(0x377,0x3fe)]=PixelFormat['DEPTH_COMPONENT'],_0x1eb492[_0x486efe(0x6c,-0x4)]=PixelDatatype['UNSIGNED_INT'];const _0x385ac6=_0x1eb492;function _0xaee87(_0x55fb9c,_0x25a226){return _0x2a5aee(_0x55fb9c- -0x113,_0x25a226);}return{'segmentsColor':new Texture(_0x1e3fd2),'segmentsDepth':new Texture(_0x385ac6)};}['createRenderingFramebuffers'](){const _0x209877={};_0x209877['context']=this['context'];function _0x434c5c(_0x3fed48,_0x45322d){return _0x499d06(_0x45322d,_0x3fed48- -0x31f);}function _0x30a201(_0x2b30a1,_0x49f202){return _0x2a5aee(_0x49f202- -0x3c3,_0x2b30a1);}return _0x209877['colorTextures']=[this['textures']['segmentsColor']],_0x209877[_0x30a201(0x84,0x62)]=this[_0x30a201(0xd5,0xe0)][_0x434c5c(0x10,0x34)],{'segments':new Framebuffer(_0x209877)};}['destoryRenderingFramebuffers'](){function _0x29e820(_0xb697d8,_0x1039f2){return _0x2a5aee(_0x1039f2- -0x181,_0xb697d8);}Object['values'](this['framebuffers'])[_0x29e820(0x2c4,0x278)](_0xefe468=>{function _0x2a65b7(_0x9e1629,_0x67f0a1){return _0x29e820(_0x67f0a1,_0x9e1629- -0x471);}_0xefe468[_0x2a65b7(-0x175,-0x15f)]();});}['createColorTableTexture'](){const _0x4814b2=new Float32Array(this['options'][_0x4af19f(0x40e,0x474)][_0x4af19f(0x4d5,0x52f)](_0x56b7e6=>{function _0x183b8f(_0x46b1ea,_0x4fa56e){return _0x4af19f(_0x46b1ea- -0x667,_0x4fa56e);}const _0x14751e=Color$1[_0x183b8f(-0x22d,-0x1ae)](_0x56b7e6);function _0x5a0d5a(_0x206adf,_0x104cad){return _0x4af19f(_0x104cad- -0x5ea,_0x206adf);}return[_0x14751e[_0x5a0d5a(-0x11e,-0x128)],_0x14751e[_0x183b8f(-0x284,-0x2ce)],_0x14751e['blue'],_0x14751e[_0x183b8f(-0x1bb,-0x1be)]];})),_0x3e411e={};_0x3e411e['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x3e411e['magnificationFilter']=TextureMagnificationFilter[_0x4966d2(0x39e,0x36e)];function _0x4966d2(_0x4a1a35,_0x5db2df){return _0x499d06(_0x4a1a35,_0x5db2df- -0x6b);}_0x3e411e[_0x4966d2(0x3cc,0x36a)]=TextureWrap[_0x4af19f(0x424,0x43a)],_0x3e411e['wrapT']=TextureWrap['CLAMP_TO_EDGE'];function _0x4af19f(_0x3508da,_0x4d0bc1){return _0x2a5aee(_0x3508da-0x18,_0x4d0bc1);}return new Texture({'context':this[_0x4966d2(0x31d,0x34e)],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat[_0x4af19f(0x4e5,0x464)],'pixelDatatype':PixelDatatype[_0x4af19f(0x4d7,0x523)],'sampler':new Sampler(_0x3e411e),'source':{'width':this['options']['colors'][_0x4966d2(0x309,0x34a)],'height':0x1,'arrayBufferView':_0x4814b2}});}['createSegmentsGeometry'](){const _0x327718=0x4,_0x392376=this['options'][_0x5e4c39(0x20b,0x269)];let _0x584a61=[];for(let _0x3aa773=0x0;_0x3aa773<_0x392376;_0x3aa773++){for(let _0x57b2e3=0x0;_0x57b2e3<_0x392376;_0x57b2e3++){for(let _0xd673e3=0x0;_0xd673e3<_0x327718;_0xd673e3++){_0x584a61['push'](_0x3aa773/_0x392376),_0x584a61[_0x5e4c39(0x26c,0x1ea)](_0x57b2e3/_0x392376);}}}_0x584a61=new Float32Array(_0x584a61);const _0x181b5a=this['options'][_0x5e4c39(0x20b,0x297)]**0x2;let _0x3130dc=[];for(let _0x151a61=0x0;_0x151a61<_0x181b5a;_0x151a61++){_0x3130dc[_0x5e4c39(0x26c,0x29a)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x3130dc=new Float32Array(_0x3130dc);let _0x3dc301=[];for(let _0xd0b4b=0x0,_0x333571=0x0;_0xd0b4b<_0x181b5a;_0xd0b4b++){_0x3dc301['push'](_0x333571+0x0,_0x333571+0x1,_0x333571+0x2,_0x333571+0x2,_0x333571+0x1,_0x333571+0x3),_0x333571+=_0x327718;}_0x3dc301=new Uint32Array(_0x3dc301);const _0x51769b={};function _0x4828a6(_0x243964,_0x4ff160){return _0x2a5aee(_0x243964- -0x2df,_0x4ff160);}_0x51769b['componentDatatype']=ComponentDatatype['FLOAT'];function _0x5e4c39(_0x4099ab,_0x29c6f9){return _0x499d06(_0x29c6f9,_0x4099ab- -0x101);}_0x51769b[_0x5e4c39(0x21e,0x28a)]=0x2,_0x51769b[_0x5e4c39(0x1f4,0x20a)]=_0x584a61;const _0x3bed02={};_0x3bed02[_0x5e4c39(0x1f9,0x253)]=ComponentDatatype['FLOAT'],_0x3bed02['componentsPerAttribute']=0x3,_0x3bed02['values']=_0x3130dc;const _0x1fbbcc=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x51769b),'normal':new GeometryAttribute(_0x3bed02)}),'indices':_0x3dc301});return _0x1fbbcc;}['createRawRenderState'](_0x4f4f43){function _0x23fd4e(_0xf3a4fe,_0x12a294){return _0x2a5aee(_0xf3a4fe- -0x125,_0x12a294);}const _0x440973={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x4f4f43};return Appearance[_0x23fd4e(0x2a4,0x21b)](!![],![],_0x440973);}['createPrimitives'](){const _0x53ba98={};_0x53ba98['st']=0x0,_0x53ba98['normal']=0x1;const _0x302944={};_0x302944[_0x13b052(0x32e,0x368)]=!![];function _0x75e39b(_0x415fb5,_0x411811){return _0x499d06(_0x415fb5,_0x411811- -0x258);}const _0x4f36d6={};_0x4f36d6[_0x13b052(0x32e,0x29f)]=!![];function _0x13b052(_0x1c98e0,_0x263a61){return _0x499d06(_0x263a61,_0x1c98e0- -0xb3);}_0x4f36d6['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x4f36d6[_0x75e39b(0xf9,0xee)]=WebGLRenderingContext['SRC_ALPHA'],_0x4f36d6[_0x75e39b(0xf0,0xe8)]=WebGLRenderingContext[_0x75e39b(0x13f,0x182)];const _0x2e44c2={};_0x2e44c2['viewport']=undefined,_0x2e44c2['depthTest']=_0x302944,_0x2e44c2[_0x75e39b(0x14e,0x100)]=!![],_0x2e44c2['blending']=_0x4f36d6;const _0x335ca3=new CustomPrimitive({'commandType':_0x75e39b(0x109,0x110),'attributeLocations':_0x53ba98,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures']['previousParticlesPosition'],'currentParticlesPosition':()=>this[_0x13b052(0x324,0x358)][_0x75e39b(0xc3,0xc5)]['currentParticlesPosition'],'postProcessingPosition':()=>this['computing']['particlesTextures'][_0x13b052(0x2b4,0x2e8)],'particlesSpeed':()=>this['computing'][_0x13b052(0x26a,0x2e7)]['particlesSpeed'],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x45fa13(_0x2bf28a,_0x147235){return _0x13b052(_0x147235-0xf6,_0x2bf28a);}var _0x295c23,_0x23fc6b;const _0x55eb92=new Cartesian2(((_0x295c23=this['options'][_0x45fa13(0x315,0x3a4)])===null||_0x295c23===void 0x0?void 0x0:_0x295c23['min'])??this[_0xfaf9a5(0xcb,0x107)]['windData'][_0x45fa13(0x365,0x3c8)][_0xfaf9a5(0x173,0x121)],((_0x23fc6b=this['options']['domain'])===null||_0x23fc6b===void 0x0?void 0x0:_0x23fc6b['max'])??this[_0xfaf9a5(0x145,0x107)]['windData']['speed']['max']);function _0xfaf9a5(_0x31e36e,_0x4d14e4){return _0x13b052(_0x4d14e4- -0x21d,_0x31e36e);}return _0x55eb92;},'displayRange':()=>{function _0x4a6a34(_0x2c538b,_0x41457c){return _0x13b052(_0x41457c- -0x4d4,_0x2c538b);}function _0x1c1a01(_0x32ab20,_0x55427f){return _0x13b052(_0x55427f- -0xea,_0x32ab20);}var _0x29d030,_0x259396;const _0x281ddc=new Cartesian2(((_0x29d030=this['options']['displayRange'])===null||_0x29d030===void 0x0?void 0x0:_0x29d030['min'])??this[_0x1c1a01(0x24e,0x23a)]['windData']['speed']['min'],((_0x259396=this[_0x1c1a01(0x190,0x16d)]['displayRange'])===null||_0x259396===void 0x0?void 0x0:_0x259396['max'])??this['computing']['windData'][_0x4a6a34(-0x27c,-0x202)][_0x1c1a01(0x187,0x1c1)]);return _0x281ddc;},'particleHeight':()=>this['options'][_0x75e39b(0xfd,0x184)]||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context']['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{const _0x55568f={};_0x55568f['min']=0x1,_0x55568f['max']=0x2;const _0x3e615c=this['options']['lineWidth']||_0x55568f;return new Cartesian2(_0x3e615c['min'],_0x3e615c['max']);},'lineLength':()=>{const _0x337d19={};_0x337d19[_0x5c9bfe(0x11,0x56)]=0x14,_0x337d19['max']=0x64;function _0x553d11(_0x5fe03d,_0x5729a5){return _0x75e39b(_0x5fe03d,_0x5729a5- -0x250);}const _0x2196bb=this['options'][_0x5c9bfe(-0x2,-0x1c)]||_0x337d19;function _0x5c9bfe(_0x489160,_0x18dca9){return _0x13b052(_0x489160- -0x32d,_0x18dca9);}return new Cartesian2(_0x2196bb[_0x5c9bfe(0x11,0x4e)],_0x2196bb[_0x5c9bfe(-0x82,-0x5d)]);},'is3D':()=>this['viewerParameters'][_0x13b052(0x252,0x2c7)]===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x75e39b(0x8c,0x95)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x13b052(0x2f1,0x358)](_0x2e44c2)}),_0x12679f={};return _0x12679f['segments']=_0x335ca3,_0x12679f;}['onParticlesTextureSizeChange'](){const _0x3e6f6f=this[_0x4ad67b(-0x305,-0x276)]();function _0x389ffc(_0x14d8f3,_0x269629){return _0x499d06(_0x269629,_0x14d8f3- -0xa1);}this['primitives']['segments']['geometry']=_0x3e6f6f;function _0x4ad67b(_0x25b23b,_0x84c468){return _0x499d06(_0x25b23b,_0x84c468- -0x5ea);}const _0x470274={};_0x470274[_0x4ad67b(-0x1ac,-0x231)]=this['context'],_0x470274['geometry']=_0x3e6f6f,_0x470274[_0x4ad67b(-0x29a,-0x25a)]=this[_0x389ffc(0x2e6,0x2d0)][_0x389ffc(0x2f9,0x2ba)]['attributeLocations'],_0x470274['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0x38b374=VertexArray['fromGeometry'](_0x470274);this[_0x4ad67b(-0x294,-0x263)]['segments'][_0x4ad67b(-0x1cb,-0x251)]&&(this['primitives']['segments'][_0x4ad67b(-0x2c9,-0x251)][_0x389ffc(0x26f,0x1f4)]=_0x38b374);}[_0x2a5aee(0x4b4,0x4ef)](){function _0x3d4db8(_0x3e6fe6,_0xb7c60c){return _0x499d06(_0x3e6fe6,_0xb7c60c- -0x1c3);}this['colorTable'][_0x41cbca(-0x199,-0x115)]();function _0x41cbca(_0x2ee62d,_0x5dead5){return _0x499d06(_0x2ee62d,_0x5dead5- -0x4b2);}this[_0x41cbca(-0x152,-0x18b)]=this[_0x41cbca(-0x7d,-0xf8)]();}[_0x499d06(0x324,0x36b)](_0x5f115c){function _0x10920d(_0x2b5444,_0x43725f){return _0x2a5aee(_0x43725f- -0x34f,_0x2b5444);}const _0x17bb81=_0x5f115c['colors']&&JSON['stringify'](_0x5f115c['colors'])!==JSON['stringify'](this[_0x4d2e2e(0x432,0x4c0)]['colors']);function _0x4d2e2e(_0x2ccde4,_0x2c62e4){return _0x2a5aee(_0x2c62e4-0xd6,_0x2ccde4);}this[_0x4d2e2e(0x531,0x4c0)]=deepMerge(_0x5f115c,this['options']),_0x17bb81&&this['onColorTableChange']();}['destroy'](){function _0x4f9d72(_0x36f514,_0xa62134){return _0x2a5aee(_0xa62134- -0x6ca,_0x36f514);}Object[_0x30c072(-0x1db,-0x19d)](this[_0x4f9d72(-0x2c2,-0x25c)])['forEach'](_0x4e59e8=>{_0x4e59e8['destroy']();}),Object[_0x30c072(-0x1db,-0x1b1)](this['primitives'])['forEach'](_0x4b4404=>{_0x4b4404['destroy']();});function _0x30c072(_0x2dcfbb,_0x1e731b){return _0x2a5aee(_0x2dcfbb- -0x5b0,_0x1e731b);}this[_0x4f9d72(-0x283,-0x2c3)]['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x499d06(0x2a6,0x2df)];class WindParticleSystem{constructor(_0x46cf4a,_0x2b2e3b,_0x14ed6c,_0x18a003,_0x510156){this['context']=_0x46cf4a;function _0x4b46d4(_0x1697ef,_0x5ca9bc){return _0x2a5aee(_0x1697ef- -0x145,_0x5ca9bc);}this['options']=_0x14ed6c,this[_0x4b46d4(0x35c,0x3c7)]=_0x18a003,this['computing']=new WindParticlesComputing(_0x46cf4a,_0x2b2e3b,_0x14ed6c,_0x18a003,_0x510156);function _0x3b031b(_0x63d37a,_0x75ebb9){return _0x2a5aee(_0x63d37a- -0x161,_0x75ebb9);}this[_0x4b46d4(0x2f2,0x273)]=new WindParticlesRendering(_0x46cf4a,_0x14ed6c,_0x18a003,this['computing']),this[_0x3b031b(0x362,0x355)]();}[_0x499d06(0x36a,0x3a9)](){function _0x18f6a4(_0xb7852c,_0x1b31d8){return _0x499d06(_0x1b31d8,_0xb7852c- -0xe8);}function _0x344a61(_0x2ddb79,_0x52def4){return _0x499d06(_0x52def4,_0x2ddb79- -0x307);}const _0xc57031=[this[_0x18f6a4(0x2ef,0x272)]['primitives']['calculateSpeed'],this['computing']['primitives'][_0x18f6a4(0x252,0x276)],this['computing']['primitives']['postProcessingPosition'],this['rendering']['primitives'][_0x344a61(0x93,0x27)]];return _0xc57031;}['clearFramebuffers'](){const _0x16785a=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x9fa230(_0x11fe98,_0x2348d2){return _0x2a5aee(_0x11fe98- -0x81,_0x2348d2);}Object['keys'](this['rendering'][_0x9fa230(0x3ed,0x46a)])['forEach'](_0x3a846a=>{_0x16785a[_0x2e7433(-0x39,0x6)]=this[_0x4734f6(-0x22c,-0x1ad)]['framebuffers'][_0x3a846a];function _0x4734f6(_0x4150a7,_0x2806e7){return _0x9fa230(_0x4150a7- -0x5e2,_0x2806e7);}function _0x2e7433(_0x290a2d,_0x4eafb1){return _0x9fa230(_0x4eafb1- -0x419,_0x290a2d);}_0x16785a['execute'](this['context']);});}['changeOptions'](_0x1b5382){let _0x46fbc5=![];_0x1b5382['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x1b5382['particlesTextureSize']&&(_0x46fbc5=!![]);const _0x306466=deepMerge(_0x1b5382,this['options']);if(_0x306466[_0xc343b8(0x25b,0x224)]<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');function _0x4e355c(_0x1a9c29,_0x22e6dc){return _0x499d06(_0x22e6dc,_0x1a9c29- -0x382);}function _0xc343b8(_0x49f6f1,_0x453f96){return _0x499d06(_0x49f6f1,_0x453f96- -0xe8);}this[_0xc343b8(0x1da,0x222)]=_0x306466,this[_0x4e355c(-0x2b,-0x97)][_0xc343b8(0x27c,0x283)](_0x1b5382),this['computing'][_0x4e355c(-0x17,-0x7a)](_0x1b5382),_0x46fbc5&&(this[_0x4e355c(0x55,0x57)][_0xc343b8(0x248,0x287)](),this[_0x4e355c(0x55,0x3e)]['createParticlesTextures'](),this[_0xc343b8(0x250,0x26f)]['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x519df7){function _0x4f53e8(_0x19b458,_0x2a8392){return _0x499d06(_0x2a8392,_0x19b458-0x58);}function _0x16afdb(_0x51ecb1,_0x242a3a){return _0x499d06(_0x51ecb1,_0x242a3a-0x157);}this[_0x4f53e8(0x419,0x427)]=_0x519df7,this[_0x16afdb(0x584,0x52e)][_0x4f53e8(0x419,0x4a0)]=_0x519df7,this[_0x4f53e8(0x3af,0x35c)]['viewerParameters']=_0x519df7;}['destroy'](){function _0x3d7115(_0xda994e,_0x67ff9f){return _0x2a5aee(_0x67ff9f- -0x30,_0xda994e);}this['computing'][_0x3d7115(0x48c,0x44d)](),this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0x2a5aee(0x417,0x3a6)]['BaseLayer'],_0x2814bd={};_0x2814bd['min']=0x1,_0x2814bd['max']=0x2;const _0x2da168={};_0x2da168['min']=0x14,_0x2da168['max']=0x64;const _0x5c84e8={};function _0x2a5aee(_0x596a7d,_0x2e7781){return _0xf0e9(_0x596a7d-0x306,_0x2e7781);}_0x5c84e8['particlesTextureSize']=0x64,_0x5c84e8['fixedHeight']=0x0,_0x5c84e8[_0x2a5aee(0x4c9,0x49e)]=_0x2814bd,_0x5c84e8[_0x499d06(0x370,0x3de)]=_0x2da168,_0x5c84e8['speedFactor']=0x1,_0x5c84e8['dropRate']=0.003,_0x5c84e8['dropRateBump']=0.001,_0x5c84e8[_0x2a5aee(0x3f6,0x41a)]=['rgb(206,255,255)'],_0x5c84e8[_0x499d06(0x28a,0x2d7)]=![],_0x5c84e8['dynamic']=!![];const DEF_OPTIONS=_0x5c84e8;class WindLayer extends BaseLayer$1{constructor(_0x38c641={}){_0x38c641={...DEF_OPTIONS,..._0x38c641},super(_0x38c641);function _0x579172(_0x1b5c65,_0x3f2d02){return _0x2a5aee(_0x3f2d02- -0x1d4,_0x1b5c65);}this[_0x579172(0x2a7,0x269)](_0x38c641,_0x38c641);}get[_0x2a5aee(0x417,0x439)](){return this['primitives'];}get['data'](){function _0x5c0713(_0x4f6023,_0x2145e3){return _0x2a5aee(_0x2145e3- -0x316,_0x4f6023);}return this[_0x5c0713(0x9f,0xd4)]['data'];}set[_0x2a5aee(0x445,0x40c)](_0x1e2aa1){this[_0xa4220b(-0x25b,-0x20b)]['data']=_0x1e2aa1;function _0xa4220b(_0x3cd83a,_0x388724){return _0x499d06(_0x388724,_0x3cd83a- -0x565);}function _0x46c84b(_0x1565e8,_0x4152fa){return _0x499d06(_0x1565e8,_0x4152fa- -0x6);}this[_0xa4220b(-0x171,-0x1ba)](_0x1e2aa1);}get['colors'](){function _0x2c5fe6(_0x5903b9,_0x392040){return _0x499d06(_0x392040,_0x5903b9- -0x2ac);}function _0x3369b4(_0x3bedec,_0x53899a){return _0x2a5aee(_0x53899a- -0x221,_0x3bedec);}return this[_0x3369b4(0x13a,0x1c9)][_0x2c5fe6(0x6a,0xf)];}set['colors'](_0x4fc340){this[_0x6a496b(0x1d,0x5d)][_0x8458d3(0x294,0x31b)]=_0x4fc340;const _0x1a41dc={};function _0x8458d3(_0xa4a148,_0x39a7a0){return _0x499d06(_0xa4a148,_0x39a7a0-0x5);}_0x1a41dc[_0x6a496b(0x29,0x5f)]=_0x4fc340;function _0x6a496b(_0x25221c,_0x34c0b4){return _0x499d06(_0x34c0b4,_0x25221c- -0x2ed);}this[_0x6a496b(0x70,0x34)](this['options'],_0x1a41dc);}['_mountedHook'](){}[_0x2a5aee(0x486,0x48b)](){function _0x3b8a28(_0x1518a3,_0x3d71f2){return _0x2a5aee(_0x3d71f2- -0x38d,_0x1518a3);}this['scene']=this['_map']['scene'];function _0x1e1c9c(_0x2be762,_0x21fbe){return _0x499d06(_0x21fbe,_0x2be762- -0x5ae);}this['camera']=this['_map']['camera'];this['options']['data']&&this['setData'](this['options']['data']);if(!this['windData'])return;this[_0x3b8a28(0x11c,0x114)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1[(_0x3b8a28(0x6e,0xee))](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene'][_0x1e1c9c(-0x299,-0x30c)]},this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this[_0x1e1c9c(-0x276,-0x268)],this['options'],this[_0x1e1c9c(-0x1ed,-0x1ae)],this[_0x1e1c9c(-0x2ac,-0x244)]),this['primitives']=this['particleSystem']['getPrimitives'](),this[_0x3b8a28(0x4e,0xda)]['forEach'](_0x7c9ae5=>{function _0x53cdd9(_0x52faf0,_0x3aeb98){return _0x1e1c9c(_0x3aeb98-0x12,_0x52faf0);}this['scene']['primitives'][_0x53cdd9(-0x262,-0x261)](_0x7c9ae5);}),this[_0x3b8a28(0x14b,0x106)]['percentageChanged']=0.01,this['camera'][_0x1e1c9c(-0x232,-0x1de)]['addEventListener'](this['updateViewerParameters']['bind'](this)),this[_0x1e1c9c(-0x2ac,-0x327)]['morphComplete']['addEventListener'](this[_0x1e1c9c(-0x235,-0x1a9)]['bind'](this)),window[_0x3b8a28(0xce,0x97)]('resize',this[_0x1e1c9c(-0x235,-0x295)]['bind'](this));}['_removedHook'](){this['camera']['changed']['removeEventListener'](this[_0x4d7042(-0xa,0x7)]['bind'](this)),this['scene'][_0x51de43(0x597,0x51b)]['removeEventListener'](this['updateViewerParameters'][_0x4d7042(0x43,0x89)](this)),window[_0x4d7042(-0x5a,-0x3c)]('resize',this[_0x51de43(0x56b,0x539)][_0x4d7042(0x43,0xb)](this));function _0x4d7042(_0x32c95e,_0x3978e6){return _0x499d06(_0x3978e6,_0x32c95e- -0x383);}this['primitives']&&(this['primitives']['forEach'](_0x496f06=>{function _0x44d751(_0x479464,_0x200fe5){return _0x4d7042(_0x479464-0x3f0,_0x200fe5);}function _0x5c44fa(_0x21cff0,_0x410c41){return _0x4d7042(_0x410c41-0x57,_0x21cff0);}this['scene'][_0x44d751(0x3f4,0x3fd)][_0x5c44fa(0x12e,0xb8)](_0x496f06);}),delete this['primitives']);function _0x51de43(_0x4664ae,_0x43d504){return _0x2a5aee(_0x43d504-0xe0,_0x4664ae);}this['particleSystem']&&(this['particleSystem']['destroy'](),delete this[_0x51de43(0x50e,0x4aa)]);}['setData'](_0x15e41c,_0x17e2db){this['windData']=this['processWindData'](_0x15e41c);function _0x57a7ea(_0x21d855,_0x115118){return _0x499d06(_0x21d855,_0x115118- -0x11f);}if(_0x17e2db){this[_0x44a653(0x31a,0x30c)](),this[_0x57a7ea(0x28e,0x287)]();return;}function _0x44a653(_0x12d471,_0x333e06){return _0x2a5aee(_0x12d471- -0x192,_0x333e06);}this['particleSystem']?(this[_0x57a7ea(0x1f8,0x1cb)]['computing'][_0x57a7ea(0x1d6,0x24a)](this[_0x57a7ea(0x21f,0x219)]),this['scene']['requestRender']()):this['_addedHook']();}[_0x2a5aee(0x43d,0x433)](_0x49869c,_0x359d4f){function _0x25d726(_0x2792aa,_0x42c192){return _0x2a5aee(_0x42c192- -0x531,_0x2792aa);}function _0x2dc905(_0x3768bc,_0x41a456){return _0x499d06(_0x41a456,_0x3768bc-0x141);}this['particleSystem']&&(this[_0x25d726(-0x1ef,-0x167)][_0x25d726(-0xce,-0x61)](_0x359d4f),this[_0x25d726(-0x1a7,-0x14f)]['requestRender']());}[_0x2a5aee(0x3e9,0x392)](_0x1d1bd9){var _0x7c5a9d,_0x5f335c;const _0x307ae2={..._0x1d1bd9},_0x2d3fee=_0x307ae2;!_0x2d3fee['height']&&_0x2d3fee['rows']&&(_0x2d3fee[_0x9be91(0x3a0,0x42f)]=_0x2d3fee['rows']);!_0x2d3fee[_0x496d2b(0xd5,0xa7)]&&_0x2d3fee['cols']&&(_0x2d3fee[_0x496d2b(0x51,0xa7)]=_0x2d3fee['cols']);!_0x2d3fee[_0x496d2b(0xbe,0x8f)]&&(_0x2d3fee['bounds']={'west':_0x2d3fee['xmin'],'south':_0x2d3fee['ymin'],'east':_0x2d3fee['xmax'],'north':_0x2d3fee[_0x496d2b(0xc8,0x7a)]});function _0x9be91(_0x1a72fe,_0x1680d1){return _0x499d06(_0x1680d1,_0x1a72fe-0x6c);}if(!_0x2d3fee['u']){const _0xf83f0b={};_0xf83f0b['array']=_0x1d1bd9['udata'],_0xf83f0b['min']=_0x1d1bd9['umin'],_0xf83f0b['max']=_0x1d1bd9['umax'],_0x2d3fee['u']=_0xf83f0b;}function _0x496d2b(_0x32bd8b,_0x28ab26){return _0x2a5aee(_0x28ab26- -0x3fd,_0x32bd8b);}if(!_0x2d3fee['v']){const _0x30c4ce={};_0x30c4ce[_0x496d2b(0xc6,0xae)]=_0x1d1bd9[_0x9be91(0x36b,0x36a)],_0x30c4ce['min']=_0x1d1bd9['vmin'],_0x30c4ce['max']=_0x1d1bd9['vmax'],_0x2d3fee['v']=_0x30c4ce;}if(((_0x7c5a9d=_0x2d3fee['speed'])===null||_0x7c5a9d===void 0x0?void 0x0:_0x7c5a9d[_0x496d2b(0xe5,0xd4)])===undefined||((_0x5f335c=_0x2d3fee[_0x9be91(0x3f1,0x37d)])===null||_0x5f335c===void 0x0?void 0x0:_0x5f335c['max'])===undefined||_0x2d3fee[_0x496d2b(0x24,0x68)]['array']===undefined){const _0x4ffeaa={'array':new Float32Array(_0x2d3fee['u']['array']['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x3996e9=0x0;_0x3996e9<_0x2d3fee['u']['array'][_0x9be91(0x421,0x49a)];_0x3996e9++){_0x4ffeaa[_0x9be91(0x437,0x3c7)][_0x3996e9]=Math[_0x496d2b(0xc,0x30)](_0x2d3fee['u'][_0x496d2b(0xb4,0xae)][_0x3996e9]*_0x2d3fee['u'][_0x496d2b(0x101,0xae)][_0x3996e9]+_0x2d3fee['v']['array'][_0x3996e9]*_0x2d3fee['v']['array'][_0x3996e9]),_0x4ffeaa['array'][_0x3996e9]!==0x0&&(_0x4ffeaa['min']=Math[_0x9be91(0x45d,0x47e)](_0x4ffeaa['min'],_0x4ffeaa[_0x496d2b(0x11a,0xae)][_0x3996e9]),_0x4ffeaa[_0x496d2b(-0xe,0x41)]=Math[_0x9be91(0x3ca,0x422)](_0x4ffeaa[_0x9be91(0x3ca,0x3e5)],_0x4ffeaa[_0x9be91(0x437,0x44b)][_0x3996e9]));}_0x2d3fee['speed']=_0x4ffeaa;}return _0x2d3fee;}['updateViewerParameters'](){var _0x16096d;function _0x4144a0(_0x5a146f,_0x176d30){return _0x2a5aee(_0x176d30- -0x3be,_0x5a146f);}const _0x18afc8=this['scene'],_0x1fa0f9=_0x18afc8['canvas'],_0x5bf423={};_0x5bf423['x']=0x0,_0x5bf423['y']=0x0;const _0x4e6d91={};function _0x34fcd8(_0x169f86,_0x287e57){return _0x499d06(_0x287e57,_0x169f86-0xa8);}_0x4e6d91['x']=0x0,_0x4e6d91['y']=_0x1fa0f9['clientHeight'];const _0x4982da={};_0x4982da['x']=_0x1fa0f9[_0x34fcd8(0x412,0x400)],_0x4982da['y']=0x0;const _0x5eb489={};_0x5eb489['x']=_0x1fa0f9['clientWidth'],_0x5eb489['y']=_0x1fa0f9['clientHeight'];const _0x202675=[_0x5bf423,_0x4e6d91,_0x4982da,_0x5eb489];let _0x317de5=0xb4,_0x163192=-0xb4,_0x38e2ee=0x5a,_0x346b95=-0x5a,_0x14b98e=![];for(const _0x10d7a2 of _0x202675){const _0x519edf=_0x18afc8['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x10d7a2['x'],_0x10d7a2['y']),_0x18afc8[_0x34fcd8(0x3eb,0x3cb)]['ellipsoid']);if(!_0x519edf){_0x14b98e=!![];break;}const _0xae624b=_0x18afc8[_0x34fcd8(0x3eb,0x3bf)]['ellipsoid'][_0x4144a0(0xb8,0x3a)](_0x519edf),_0x8feeec=Cesium$1['Math']['toDegrees'](_0xae624b[_0x4144a0(0xf0,0xa1)]),_0x36b198=Cesium$1['Math'][_0x4144a0(-0x7e,0x12)](_0xae624b['latitude']);_0x317de5=Math['min'](_0x317de5,_0x8feeec),_0x163192=Math['max'](_0x163192,_0x8feeec),_0x38e2ee=Math['min'](_0x38e2ee,_0x36b198),_0x346b95=Math[_0x34fcd8(0x406,0x424)](_0x346b95,_0x36b198);}if(!_0x14b98e){const _0x235c03=new Cesium$1[(_0x4144a0(0xdc,0xbd))](Math[_0x34fcd8(0x406,0x40d)](this['windData']['bounds'][_0x34fcd8(0x3ab,0x37c)],_0x317de5),Math['min'](this['windData'][_0x4144a0(0xf2,0xce)]['east'],_0x163192)),_0x3d9262=new Cesium$1[(_0x34fcd8(0x443,0x498))](Math[_0x4144a0(0x7f,0x80)](this['windData']['bounds'][_0x34fcd8(0x381,0x3f6)],_0x38e2ee),Math['min'](this['windData']['bounds'][_0x4144a0(0x4c,0x84)],_0x346b95)),_0xa0c4f3=(_0x235c03['y']-_0x235c03['x'])*0.05,_0x3a8d90=(_0x3d9262['y']-_0x3d9262['x'])*0.05;_0x235c03['x']=Math[_0x4144a0(0x3b,0x80)](this['windData']['bounds']['west'],_0x235c03['x']-_0xa0c4f3),_0x235c03['y']=Math[_0x4144a0(0x19b,0x113)](this['windData']['bounds']['east'],_0x235c03['y']+_0xa0c4f3),_0x3d9262['x']=Math[_0x34fcd8(0x406,0x48d)](this['windData']['bounds']['south'],_0x3d9262['x']-_0x3a8d90),_0x3d9262['y']=Math[_0x34fcd8(0x499,0x4bd)](this['windData'][_0x4144a0(0x118,0xce)]['north'],_0x3d9262['y']+_0x3a8d90),this['viewerParameters'][_0x34fcd8(0x407,0x385)]=_0x235c03,this['viewerParameters'][_0x34fcd8(0x44b,0x3f6)]=_0x3d9262;const _0x8a0076=this[_0x4144a0(0xe8,0x5a)]['bounds'][_0x4144a0(0x19,-0x6)]-this[_0x34fcd8(0x3e0,0x421)]['bounds']['west'],_0xb55758=this['windData'][_0x4144a0(0xef,0xce)]['north']-this[_0x34fcd8(0x3e0,0x46f)]['bounds']['south'],_0x3bf3ed=(_0x235c03['y']-_0x235c03['x'])/_0x8a0076,_0x1762e7=(_0x3d9262['y']-_0x3d9262['x'])/_0xb55758,_0x413a76=Math[_0x34fcd8(0x499,0x464)](_0x3bf3ed,_0x1762e7),_0x3e4eda=0x3e8*_0x413a76;_0x3e4eda>0x0&&(this['viewerParameters']['pixelSize']=Math[_0x4144a0(0x5e,0x80)](0x0,Math[_0x34fcd8(0x499,0x4a6)](0x3e8,_0x3e4eda)));}this[_0x34fcd8(0x469,0x47f)]['sceneMode']=this[_0x4144a0(-0x5a,0x24)][_0x4144a0(0xb8,0x37)],(_0x16096d=this['particleSystem'])===null||_0x16096d===void 0x0||_0x16096d['applyViewerParameters'](this['viewerParameters']);}[_0x2a5aee(0x3e8,0x388)](_0x14c6b3,_0x23d148){const {bounds:_0x1843fc,width:_0x26cc95,height:_0x3347b4,u:_0x209824,v:_0x221b4f,speed:_0x43717f}=this['windData'],{flipY:_0x2f648e}=this[_0x127674(-0x6d,-0x1f)];if(_0x14c6b3<_0x1843fc[_0x127674(-0x74,0x14)]||_0x14c6b3>_0x1843fc['east']||_0x23d148<_0x1843fc['south']||_0x23d148>_0x1843fc[_0x127674(-0x15,0x2f)])return null;const _0x55c1c6=(_0x14c6b3-_0x1843fc['west'])/(_0x1843fc['east']-_0x1843fc[_0x224788(0x116,0x19e)])*(_0x26cc95-0x1);let _0x4ff73d=(_0x23d148-_0x1843fc['south'])/(_0x1843fc['north']-_0x1843fc[_0x224788(0x199,0x174)])*(_0x3347b4-0x1);_0x2f648e&&(_0x4ff73d=_0x3347b4-0x1-_0x4ff73d);const _0x28abfc=Math['floor'](_0x55c1c6),_0x304b98=Math['floor'](_0x4ff73d),_0x1ace47=Math[_0x127674(-0x36,-0xc7)](_0x55c1c6),_0x484c6b=Math['min'](_0x1ace47+0x1,_0x26cc95-0x1),_0x49d996=Math[_0x127674(-0x36,0x1e)](_0x4ff73d),_0x48384d=Math[_0x224788(0x2c6,0x28c)](_0x49d996+0x1,_0x3347b4-0x1),_0x34b32e=_0x55c1c6-_0x1ace47;function _0x224788(_0x68e2b9,_0x5f0336){return _0x2a5aee(_0x5f0336- -0x245,_0x68e2b9);}const _0xe65993=_0x4ff73d-_0x49d996,_0x10cf37=_0x304b98*_0x26cc95+_0x28abfc;function _0x127674(_0x2c613a,_0x385067){return _0x499d06(_0x385067,_0x2c613a- -0x377);}const _0x796194=_0x49d996*_0x26cc95+_0x1ace47,_0x18a2f3=_0x49d996*_0x26cc95+_0x484c6b,_0x1cc43c=_0x48384d*_0x26cc95+_0x1ace47,_0x3a08dd=_0x48384d*_0x26cc95+_0x484c6b,_0x5a7000=_0x209824['array'][_0x796194],_0x38d24d=_0x209824['array'][_0x18a2f3],_0x199c91=_0x209824[_0x127674(0x54,-0x3d)][_0x1cc43c],_0x166ca3=_0x209824['array'][_0x3a08dd],_0x31ffdd=(0x1-_0x34b32e)*(0x1-_0xe65993)*_0x5a7000+_0x34b32e*(0x1-_0xe65993)*_0x38d24d+(0x1-_0x34b32e)*_0xe65993*_0x199c91+_0x34b32e*_0xe65993*_0x166ca3,_0x266baf=_0x221b4f['array'][_0x796194],_0x1d647e=_0x221b4f[_0x127674(0x54,0x49)][_0x18a2f3],_0x8ce86d=_0x221b4f['array'][_0x1cc43c],_0x680398=_0x221b4f['array'][_0x3a08dd],_0x46fde6=(0x1-_0x34b32e)*(0x1-_0xe65993)*_0x266baf+_0x34b32e*(0x1-_0xe65993)*_0x1d647e+(0x1-_0x34b32e)*_0xe65993*_0x8ce86d+_0x34b32e*_0xe65993*_0x680398,_0x3d0259=Math['sqrt'](_0x31ffdd*_0x31ffdd+_0x46fde6*_0x46fde6),_0x1ed927={};_0x1ed927['u']=_0x209824['array'][_0x10cf37],_0x1ed927['v']=_0x221b4f['array'][_0x10cf37],_0x1ed927[_0x224788(0x253,0x220)]=_0x43717f['array'][_0x10cf37];const _0x5acaa4={};_0x5acaa4['u']=_0x31ffdd,_0x5acaa4['v']=_0x46fde6,_0x5acaa4['speed']=_0x3d0259;const _0xe204ed={};return _0xe204ed[_0x224788(0x281,0x240)]=_0x1ed927,_0xe204ed['interpolated']=_0x5acaa4,_0xe204ed;}}mars3d__namespace['LayerUtil'][_0x499d06(0x3d0,0x33f)](_0x499d06(0x304,0x352),WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null;function _0x526923(_0x3f0b89,_0x331d2c){return _0x499d06(_0x331d2c,_0x3f0b89- -0xd8);}this[_0x526923(0x2fb,0x305)]=null,this['tlng']=null,this[_0x526923(0x20f,0x1f3)]=null,this['age']=null;function _0x3de737(_0x344820,_0x2c330c){return _0x499d06(_0x344820,_0x2c330c- -0x1dd);}this['speed']=null;}['destroy'](){for(const _0x3f1d6c in this){delete this[_0x3f1d6c];}}}class CanvasWindField{constructor(_0x1f64c2){function _0x4d699b(_0x1079ac,_0xffca46){return _0x499d06(_0xffca46,_0x1079ac- -0x490);}this[_0x4d699b(-0x17f,-0x1b4)](_0x1f64c2);}get['speedRate'](){function _0x278ef9(_0x3c4d46,_0x2d576b){return _0x2a5aee(_0x2d576b- -0x28f,_0x3c4d46);}return this[_0x278ef9(0x102,0x18f)];}set[_0x499d06(0x423,0x3f3)](_0xd93c5e){this[_0x1c2408(-0x15c,-0x1ca)]=(0x64-(_0xd93c5e>0x63?0x63:_0xd93c5e))*0x64;function _0x4ba32f(_0x2e1384,_0x3bb510){return _0x2a5aee(_0x2e1384- -0x5bf,_0x3bb510);}function _0x1c2408(_0x4d0e91,_0x55d827){return _0x2a5aee(_0x4d0e91- -0x57a,_0x55d827);}this['_calc_speedRate']=[(this['xmax']-this[_0x1c2408(-0x175,-0x1c8)])/this['_speedRate'],(this['ymax']-this['ymin'])/this[_0x4ba32f(-0x1a1,-0x12b)]];}get['maxAge'](){function _0x155ff4(_0x5c2b42,_0x2f12fc){return _0x2a5aee(_0x2f12fc- -0x59d,_0x5c2b42);}return this[_0x155ff4(-0x182,-0x11d)];}set['maxAge'](_0x3d67d0){this['_maxAge']=_0x3d67d0;}[_0x2a5aee(0x3f1,0x3ba)](_0x2dd193){this['options']=_0x2dd193;function _0x295bfb(_0x3bcee6,_0x4a959a){return _0x499d06(_0x3bcee6,_0x4a959a- -0x21);}this['maxAge']=_0x2dd193['maxAge']||0x78,this['speedRate']=_0x2dd193[_0x5952bf(0x38c,0x31c)]||0x32;function _0x5952bf(_0x3f92bb,_0x2b0124){return _0x499d06(_0x2b0124,_0x3f92bb- -0x67);}this['particles']=[];const _0x57a971=_0x2dd193[_0x295bfb(0x284,0x2d7)]||0x1000;for(let _0x59b893=0x0;_0x59b893<_0x57a971;_0x59b893++){const _0x195dd3=this['_randomParticle'](new CanvasParticle());this[_0x295bfb(0x25f,0x2e0)][_0x5952bf(0x306,0x2c4)](_0x195dd3);}}[_0x499d06(0x2a1,0x331)](_0x5b4742){this['rows']=_0x5b4742[_0x472eef(0x115,0x185)],this[_0x472eef(0x16f,0x12b)]=_0x5b4742[_0x472eef(0x16f,0xe2)],this[_0x472eef(0xf3,0x10f)]=_0x5b4742[_0x472eef(0xf3,0x156)],this['xmax']=_0x5b4742['xmax'],this[_0x32b7bf(0x245,0x2b4)]=_0x5b4742['ymin'],this['ymax']=_0x5b4742[_0x472eef(0x165,0xea)],this['grid']=[];const _0x929cec=_0x5b4742[_0x472eef(0x12e,0x180)];function _0x472eef(_0x363cae,_0x58bff4){return _0x499d06(_0x58bff4,_0x363cae- -0x232);}const _0x5c0c5c=_0x5b4742['vdata'];let _0x1c103a=![];_0x929cec[_0x32b7bf(0x31a,0x350)]===this['rows']&&_0x929cec[0x0]['length']===this['cols']&&(_0x1c103a=!![]);let _0x1b81ef=0x0;function _0x32b7bf(_0x1b390b,_0x58b37e){return _0x2a5aee(_0x1b390b- -0x17b,_0x58b37e);}let _0x550487=null,_0x153179=null;for(let _0x3dd699=0x0;_0x3dd699<this[_0x32b7bf(0x2ac,0x299)];_0x3dd699++){_0x550487=[];for(let _0x3905aa=0x0;_0x3905aa<this['cols'];_0x3905aa++,_0x1b81ef++){_0x1c103a?_0x153179=this[_0x32b7bf(0x34f,0x2dc)](_0x929cec[_0x3dd699][_0x3905aa],_0x5c0c5c[_0x3dd699][_0x3905aa]):_0x153179=this['_calcUV'](_0x929cec[_0x1b81ef],_0x5c0c5c[_0x1b81ef]),_0x550487['push'](_0x153179);}this['grid']['push'](_0x550487);}!this['options'][_0x472eef(0xa5,0xf2)]&&this[_0x472eef(0x1b9,0x1bc)][_0x32b7bf(0x23a,0x245)]();}[_0x499d06(0x2c8,0x2ef)](){delete this['rows'],delete this[_0x108c89(-0x9f,-0xd4)],delete this['xmin'],delete this['xmax'],delete this['ymin'],delete this['ymax'],delete this['grid'];function _0x108c89(_0x2e258f,_0x197cf6){return _0x499d06(_0x197cf6,_0x2e258f- -0x440);}delete this['particles'];}[_0x499d06(0x3ec,0x3b1)](_0xec88a4,_0x3cfa4d){function _0x3c9dea(_0x5f1b35,_0x1ffe2f){return _0x2a5aee(_0x5f1b35- -0x6c7,_0x1ffe2f);}const _0x4981c2=(_0xec88a4-this['xmin'])/(this[_0x3c9dea(-0x1f9,-0x209)]-this['xmin'])*(this['cols']-0x1),_0x4042fa=(this['ymax']-_0x3cfa4d)/(this['ymax']-this['ymin'])*(this['rows']-0x1);return[_0x4981c2,_0x4042fa];}[_0x2a5aee(0x3b4,0x3f4)](_0x5ef8c8,_0x1404ab){if(_0x5ef8c8<0x0||_0x5ef8c8>=this['cols']||_0x1404ab>=this[_0x3d4f16(-0x36,-0x1c)])return[0x0,0x0,0x0];const _0x1ccfa3=Math['floor'](_0x5ef8c8);function _0x48df2b(_0x584c01,_0x386fa2){return _0x499d06(_0x386fa2,_0x584c01- -0x3dc);}const _0x121332=Math[_0x3d4f16(-0x3c,-0x4)](_0x1404ab);if(_0x1ccfa3===_0x5ef8c8&&_0x121332===_0x1404ab)return this['grid'][_0x1404ab][_0x5ef8c8];function _0x3d4f16(_0x31c48d,_0x4fbfcf){return _0x2a5aee(_0x31c48d- -0x45d,_0x4fbfcf);}const _0x3f7b44=_0x1ccfa3+0x1,_0x1c670e=_0x121332+0x1,_0x35cffa=this['getUVByXY'](_0x1ccfa3,_0x121332),_0x1051f5=this[_0x3d4f16(-0xa9,-0x1b)](_0x3f7b44,_0x121332),_0x427deb=this[_0x3d4f16(-0xa9,-0xe2)](_0x1ccfa3,_0x1c670e),_0xbcab54=this['getUVByXY'](_0x3f7b44,_0x1c670e);let _0x536910=null;try{_0x536910=this['_bilinearInterpolation'](_0x5ef8c8-_0x1ccfa3,_0x1404ab-_0x121332,_0x35cffa,_0x1051f5,_0x427deb,_0xbcab54);}catch(_0x488460){console['log'](_0x5ef8c8,_0x1404ab);}return _0x536910;}['_bilinearInterpolation'](_0x5925e1,_0x203241,_0x45300d,_0x6d0fe8,_0x169c61,_0x4a6eec){const _0x3f061c=0x1-_0x5925e1,_0x27189d=0x1-_0x203241,_0x8468a8=_0x3f061c*_0x27189d,_0x25e5eb=_0x5925e1*_0x27189d;function _0x50a8f1(_0x193310,_0x1e781e){return _0x499d06(_0x1e781e,_0x193310- -0x33f);}const _0x9c42bb=_0x3f061c*_0x203241,_0x3a8b48=_0x5925e1*_0x203241,_0x5bb85d=_0x45300d[0x0]*_0x8468a8+_0x6d0fe8[0x0]*_0x25e5eb+_0x169c61[0x0]*_0x9c42bb+_0x4a6eec[0x0]*_0x3a8b48,_0x213d7d=_0x45300d[0x1]*_0x8468a8+_0x6d0fe8[0x1]*_0x25e5eb+_0x169c61[0x1]*_0x9c42bb+_0x4a6eec[0x1]*_0x3a8b48;return this[_0x50a8f1(0xab,0x89)](_0x5bb85d,_0x213d7d);}[_0x499d06(0x3fa,0x3ea)](_0x30b496,_0x8a6a8c){function _0x540310(_0x5603aa,_0x4c9467){return _0x499d06(_0x4c9467,_0x5603aa- -0x5ff);}return[+_0x30b496,+_0x8a6a8c,Math[_0x540310(-0x2b2,-0x24c)](_0x30b496*_0x30b496+_0x8a6a8c*_0x8a6a8c)];}['getUVByPoint'](_0x3520d3,_0x158722){if(!this['isInExtent'](_0x3520d3,_0x158722))return null;const _0x5f4082=this[_0x4c2777(-0x231,-0x1d6)](_0x3520d3,_0x158722);function _0x4c2777(_0x1b61f7,_0x2246cd){return _0x2a5aee(_0x1b61f7- -0x6c2,_0x2246cd);}const _0x31561a=this[_0x3f3116(0x243,0x1d2)](_0x5f4082[0x0],_0x5f4082[0x1]);function _0x3f3116(_0x3303b7,_0x3d32cb){return _0x2a5aee(_0x3303b7- -0x171,_0x3d32cb);}return _0x31561a;}['isInExtent'](_0x24a56c,_0x1ed1f3){function _0x2be342(_0x379cbc,_0x42b913){return _0x2a5aee(_0x42b913- -0x4b3,_0x379cbc);}return _0x24a56c>=this['xmin']&&_0x24a56c<=this[_0x2be342(0x85,0x1b)]&&_0x1ed1f3>=this['ymin']&&_0x1ed1f3<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x4f4894=fRandomByfloat(this['xmin'],this['xmax']),_0x27c6c6=fRandomByfloat(this['ymin'],this['ymax']),_0x370ff5={};return _0x370ff5['lat']=_0x27c6c6,_0x370ff5['lng']=_0x4f4894,_0x370ff5;}[_0x2a5aee(0x402,0x47b)](){function _0x4332fb(_0x2deda2,_0x12c973){return _0x2a5aee(_0x12c973- -0x3d3,_0x2deda2);}let _0x39d628,_0x27b57f,_0x3a6244;function _0x2c3487(_0x44000b,_0x2a0b39){return _0x499d06(_0x44000b,_0x2a0b39- -0xcf);}for(let _0xe8f0f6=0x0,_0x41e84d=this[_0x2c3487(0x281,0x232)]['length'];_0xe8f0f6<_0x41e84d;_0xe8f0f6++){let _0x5a7669=this[_0x4332fb(-0x3f,0xe)][_0xe8f0f6];_0x5a7669['age']<=0x0&&(_0x5a7669=this['_randomParticle'](_0x5a7669));if(_0x5a7669['age']>0x0){const _0x4df32c=_0x5a7669[_0x4332fb(0x109,0xbd)],_0x597e74=_0x5a7669['tlat'];_0x3a6244=this['getUVByPoint'](_0x4df32c,_0x597e74),_0x3a6244?(_0x39d628=_0x4df32c+this['_calc_speedRate'][0x0]*_0x3a6244[0x0],_0x27b57f=_0x597e74+this['_calc_speedRate'][0x1]*_0x3a6244[0x1],_0x5a7669['lng']=_0x4df32c,_0x5a7669['lat']=_0x597e74,_0x5a7669[_0x2c3487(0x34f,0x2e1)]=_0x39d628,_0x5a7669[_0x4332fb(0x1e,-0xc)]=_0x27b57f,_0x5a7669['speed']=_0x3a6244[0x2],_0x5a7669['age']--):_0x5a7669[_0x4332fb(0x108,0x97)]=0x0;}}return this[_0x2c3487(0x227,0x232)];}[_0x499d06(0x2f5,0x36c)](_0x36aadd){let _0x2726d1,_0x52d446;for(let _0xad6f26=0x0;_0xad6f26<0x1e;_0xad6f26++){_0x2726d1=this['getRandomLatLng'](),_0x52d446=this['getUVByPoint'](_0x2726d1[_0x5b761d(-0x173,-0x18d)],_0x2726d1['lat']);if(_0x52d446&&_0x52d446[0x2]>0x0)break;}if(!_0x52d446)return _0x36aadd;const _0x7503ab=_0x2726d1['lng']+this['_calc_speedRate'][0x0]*_0x52d446[0x0],_0x76802c=_0x2726d1[_0x5b761d(-0x9d,-0xb7)]+this[_0x5b761d(-0x193,-0x1af)][0x1]*_0x52d446[0x1];function _0x5b761d(_0x4e2bdb,_0x2a6a50){return _0x2a5aee(_0x4e2bdb- -0x550,_0x2a6a50);}_0x36aadd['lng']=_0x2726d1['lng'];function _0x3876e4(_0xf0366a,_0x537b3e){return _0x499d06(_0xf0366a,_0x537b3e- -0x108);}return _0x36aadd['lat']=_0x2726d1[_0x3876e4(0x2ae,0x2cb)],_0x36aadd[_0x5b761d(-0xc0,-0x92)]=_0x7503ab,_0x36aadd[_0x3876e4(0x230,0x1df)]=_0x76802c,_0x36aadd['age']=Math['round'](0xa+Math[_0x3876e4(0x2ce,0x2e4)]()*this['maxAge']),_0x36aadd['speed']=_0x52d446[0x2],_0x36aadd;}[_0x499d06(0x338,0x39d)](){for(const _0x31fe28 in this){delete this[_0x31fe28];}}}function fRandomByfloat(_0x2d234c,_0x57d112){return _0x2d234c+Math['random']()*(_0x57d112-_0x2d234c);}const Cesium=mars3d__namespace[_0x2a5aee(0x3bf,0x433)],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x588ba9={}){super(_0x588ba9),this[_0x305a9e(0xd4,0x50)](_0x588ba9);function _0x305a9e(_0x249196,_0x3b4f39){return _0x499d06(_0x3b4f39,_0x249196- -0x289);}this['canvas']=null;function _0x2ec1cd(_0x5e9405,_0x1e2a83){return _0x2a5aee(_0x1e2a83- -0x565,_0x5e9405);}_0x588ba9['colors']&&_0x588ba9['steps']&&(this[_0x305a9e(0x140,0x14e)]=new mars3d__namespace[(_0x2ec1cd(-0x12e,-0x150))](_0x588ba9));}[_0x2a5aee(0x43d,0x41f)](_0x23112a,_0x20ff94){this['frameTime']=0x3e8/(_0x23112a['frameRate']||0xa),this[_0x274cc2(0x391,0x3c7)]=this[_0x19b61f(0x287,0x261)][_0x274cc2(0x3fa,0x45d)]??![];function _0x274cc2(_0x19abb1,_0x5d90b6){return _0x2a5aee(_0x19abb1- -0xc1,_0x5d90b6);}function _0x19b61f(_0x5aadce,_0x1b32b0){return _0x499d06(_0x1b32b0,_0x5aadce- -0x83);}this['color']=_0x23112a[_0x19b61f(0x2f7,0x2bd)]||'#ffffff',this[_0x19b61f(0x366,0x32e)]=_0x23112a['lineWidth']||0x1,this[_0x19b61f(0x359,0x3d2)]=_0x23112a[_0x19b61f(0x359,0x3b5)]??0x0,this['flipY']=_0x23112a['flipY']??![],this[_0x19b61f(0x2c9,0x2f3)]&&this['windField']['setOptions'](_0x23112a);}get['layer'](){return this['canvas'];}get[_0x499d06(0x343,0x2f1)](){function _0x582be8(_0xad8ec8,_0x31d503){return _0x2a5aee(_0xad8ec8- -0x5b6,_0x31d503);}function _0x3dd2ae(_0xd6de33,_0x5c4f49){return _0x2a5aee(_0xd6de33- -0x545,_0x5c4f49);}return this['_map'][_0x582be8(-0x1d4,-0x153)][_0x582be8(-0xf0,-0xa8)][_0x582be8(-0x16c,-0x102)];}get['canvasHeight'](){function _0xb3ec14(_0x133c31,_0x18cde7){return _0x2a5aee(_0x18cde7- -0x36e,_0x133c31);}return this['_map'][_0xb3ec14(0xca,0x74)]['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set['pointerEvents'](_0xe75523){function _0x51904c(_0x424035,_0x21f123){return _0x499d06(_0x424035,_0x21f123- -0x5d6);}this['_pointerEvents']=_0xe75523;if(!this['canvas'])return;function _0x521c5e(_0x3224c2,_0x4a411b){return _0x499d06(_0x3224c2,_0x4a411b-0x139);}_0xe75523?this['canvas']['style'][_0x521c5e(0x4b3,0x4d7)]=_0x51904c(-0x32d,-0x2fc):this['canvas']['style']['pointer-events']='none';}get['particlesNumber'](){function _0xc83c3f(_0x6c9b3e,_0x3c7c49){return _0x499d06(_0x6c9b3e,_0x3c7c49- -0x229);}return this['options'][_0xc83c3f(0x127,0xcf)];}set[_0x2a5aee(0x3d8,0x368)](_0x23ab06){this['options'][_0x3d62eb(0x57,-0x27)]=_0x23ab06;function _0x3d62eb(_0x1f0438,_0x23bb9f){return _0x499d06(_0x1f0438,_0x23bb9f- -0x31f);}clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x1fd62f(_0xe04658,_0x2ec614){return _0x499d06(_0x2ec614,_0xe04658- -0xd1);}return this[_0x1fd62f(0x239,0x2b3)]['speedRate'];}set['speedRate'](_0x510085){function _0x31f016(_0x1c04fe,_0x5aaf19){return _0x499d06(_0x1c04fe,_0x5aaf19-0x11);}this[_0x31f016(0x2c3,0x31b)][_0x31f016(0x42f,0x404)]=_0x510085;function _0x2a053a(_0x2f3e9a,_0x12cdae){return _0x2a5aee(_0x12cdae- -0x148,_0x2f3e9a);}this[_0x2a053a(0x2e1,0x2e4)]&&(this[_0x2a053a(0x28a,0x2e4)]['speedRate']=_0x510085);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0xa4e1ac){function _0x5f0113(_0x1a8d60,_0x505722){return _0x2a5aee(_0x505722-0x19,_0x1a8d60);}function _0x2a2c4e(_0x22c0b5,_0x28b8d9){return _0x2a5aee(_0x28b8d9- -0x225,_0x22c0b5);}this[_0x5f0113(0x3fd,0x403)]['maxAge']=_0xa4e1ac,this['windField']&&(this[_0x2a2c4e(0x222,0x207)][_0x5f0113(0x3d2,0x3ec)]=_0xa4e1ac);}get['data'](){function _0xe4a1cd(_0x3c59a0,_0x3f1fb){return _0x2a5aee(_0x3f1fb- -0x204,_0x3c59a0);}return this[_0xe4a1cd(0x1f7,0x214)];}set['data'](_0x907808){function _0x397335(_0x5ff235,_0x3a7109){return _0x2a5aee(_0x5ff235- -0x359,_0x3a7109);}this[_0x397335(0x17b,0x1c8)](_0x907808);}get[_0x2a5aee(0x3e7,0x3cc)](){function _0x31dcac(_0xa7ab37,_0x320ad5){return _0x2a5aee(_0xa7ab37- -0x2e8,_0x320ad5);}let _0x1adb8b=this['windData'][_0x20dbec(0xa1,0x10)],_0x303d40=this['windData']['xmax'],_0x476aff=this[_0x31dcac(0x130,0xf7)]['ymin'],_0x2ca6a3=this[_0x31dcac(0x130,0x135)]['ymax'];function _0x20dbec(_0x153e1d,_0x54db75){return _0x499d06(_0x153e1d,_0x54db75- -0x315);}return _0x303d40>=0x167&&_0x1adb8b===0x0&&(_0x1adb8b=-0xb4,_0x303d40=0xb4),_0x1adb8b=Math[_0x20dbec(0x94,0x49)](_0x1adb8b,-0xb4),_0x303d40=Math[_0x31dcac(0x1e9,0x1f9)](_0x303d40,0xb4),_0x476aff=Math['max'](_0x476aff,-0x5a),_0x2ca6a3=Math['min'](_0x2ca6a3,0x5a),Cesium[_0x31dcac(0x1af,0x1b9)][_0x20dbec(0xd6,0x6d)](_0x1adb8b,_0x476aff,_0x303d40,_0x2ca6a3);}[_0x499d06(0x39f,0x37e)](_0x270033){function _0x47b11a(_0x1b988c,_0x43125b){return _0x2a5aee(_0x1b988c- -0x43c,_0x43125b);}function _0x1a794f(_0x1a019a,_0x2bc9b1){return _0x2a5aee(_0x2bc9b1- -0x210,_0x1a019a);}_0x270033?this[_0x47b11a(0x4a,0xd4)]():(this['windData']&&(this['options']['data']=this[_0x47b11a(-0x24,0x3)]),this[_0x1a794f(0x2a1,0x29c)]());}[_0x499d06(0x350,0x3c7)](){function _0x31670c(_0x110019,_0x3da03c){return _0x499d06(_0x3da03c,_0x110019- -0x25c);}function _0x4771c3(_0x3bf65d,_0x33d9e0){return _0x2a5aee(_0x33d9e0- -0xc2,_0x3bf65d);}this[_0x4771c3(0x2a7,0x328)]['worker']?this['initWorker']():this[_0x31670c(0xf0,0x13f)]=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this['_createCanvas']();const _0x55c5d8={};function _0x244a54(_0x895464,_0x35f349){return _0x2a5aee(_0x895464- -0x2f2,_0x35f349);}function _0x2171ab(_0x9eecb8,_0x44a1f5){return _0x499d06(_0x44a1f5,_0x9eecb8- -0x596);}_0x55c5d8[_0x2171ab(-0x241,-0x25b)]=!![],this['canvasContext']=this[_0x244a54(0x1d4,0x1f9)][_0x244a54(0x101,0x17d)]('2d',_0x55c5d8),this[_0x2171ab(-0x2ba,-0x274)](),this['options']['data']&&this[_0x2171ab(-0x1a2,-0x159)](this[_0x2171ab(-0x28c,-0x26b)][_0x244a54(0x153,0x142)]);}['_removedHook'](){function _0x168b91(_0x5811e5,_0x5c1efb){return _0x2a5aee(_0x5c1efb- -0x281,_0x5811e5);}this['clear'](),this[_0x46f42c(0x45e,0x441)]();function _0x46f42c(_0x5e7ea4,_0x4c6d24){return _0x2a5aee(_0x5e7ea4- -0x41,_0x4c6d24);}this[_0x168b91(0x24b,0x245)]&&(this['_map']['container']['removeChild'](this[_0x168b91(0x286,0x245)]),delete this['canvas']);}['_createCanvas'](){function _0x16118c(_0x2e5045,_0x4d0605){return _0x2a5aee(_0x4d0605- -0x24d,_0x2e5045);}const _0x25119e=mars3d__namespace[_0x16118c(0x1d1,0x1e4)][_0x49ac96(0x552,0x52c)](_0x49ac96(0x4c2,0x520),'mars3d-canvasWind',this['_map'][_0x49ac96(0x40d,0x484)]);_0x25119e[_0x49ac96(0x4ab,0x483)]['position']=_0x16118c(0x26b,0x1f6),_0x25119e['style']['top']='0px',_0x25119e['style'][_0x16118c(0x154,0x1c1)]='0px',_0x25119e['style']['width']=this[_0x49ac96(0x4bd,0x44e)][_0x49ac96(0x483,0x43c)][_0x49ac96(0x4c1,0x520)][_0x16118c(0x18e,0x1fd)]+'px',_0x25119e[_0x49ac96(0x451,0x483)]['height']=this[_0x49ac96(0x3cd,0x44e)]['scene'][_0x16118c(0x285,0x279)]['clientHeight']+'px',_0x25119e['style']['pointerEvents']=this[_0x16118c(0x243,0x205)]?'auto':_0x16118c(0x23d,0x21c),_0x25119e[_0x16118c(0x1b5,0x1dc)]['zIndex']=this['options'][_0x49ac96(0x4a8,0x477)]??0x9,_0x25119e['width']=this[_0x49ac96(0x3e8,0x44e)]['scene'][_0x16118c(0x306,0x279)][_0x16118c(0x26f,0x1fd)],_0x25119e[_0x16118c(0x20e,0x1c7)]=this['_map']['scene']['canvas']['clientHeight'];function _0x49ac96(_0x56db0e,_0x335f0f){return _0x499d06(_0x56db0e,_0x335f0f-0x13a);}return _0x25119e;}['resize'](){function _0x6dfcbf(_0x256eee,_0x59eefc){return _0x2a5aee(_0x59eefc- -0x297,_0x256eee);}function _0x52b2dc(_0x377b52,_0x575c2f){return _0x2a5aee(_0x575c2f-0x72,_0x377b52);}this['canvas']&&(this[_0x52b2dc(0x560,0x538)][_0x52b2dc(0x4ba,0x49b)]['width']=this['_map'][_0x6dfcbf(0x14d,0x14b)][_0x6dfcbf(0x200,0x22f)][_0x52b2dc(0x545,0x4bc)]+'px',this['canvas']['style'][_0x52b2dc(0x4b2,0x486)]=this['_map'][_0x6dfcbf(0x162,0x14b)]['canvas']['clientHeight']+'px',this['canvas']['width']=this['_map'][_0x6dfcbf(0xbc,0x14b)]['canvas'][_0x6dfcbf(0x198,0x1b3)],this['canvas']['height']=this['_map'][_0x52b2dc(0x410,0x454)]['canvas'][_0x6dfcbf(0x159,0x14f)]);}['bindEvent'](){function _0x3a52ac(_0x52863c,_0x2962ed){return _0x499d06(_0x52863c,_0x2962ed-0x10a);}const _0x5205db=this;let _0x42fdd5=Date[_0x3a52ac(0x4cc,0x4ac)]();(function _0x3fcbba(){if(_0x5205db['isDestroy'])return;_0x5205db['_animateFrame']=window['requestAnimationFrame'](_0x3fcbba);function _0x3f52a6(_0x2351a5,_0x59600d){return _0x3a52ac(_0x59600d,_0x2351a5- -0x57f);}if(_0x5205db['show']&&_0x5205db['windField']){const _0xc451da=Date['now'](),_0x2766b6=_0xc451da-_0x42fdd5;_0x2766b6>_0x5205db['frameTime']&&(_0x42fdd5=_0xc451da-_0x2766b6%_0x5205db['frameTime'],_0x5205db[_0x3f52a6(-0x8d,-0xa6)]());}}(),window[_0x3a52ac(0x3c9,0x44e)](_0x13be61(0x1ec,0x176),this['resize']['bind'](this),![]));function _0x13be61(_0x5bd4d7,_0x245da6){return _0x2a5aee(_0x245da6- -0x33c,_0x5bd4d7);}this['mouse_down']=![],this[_0x13be61(0x10e,0xd1)]=![],this[_0x13be61(0x9e,0xae)]['mouseHidden']&&(this['_map']['on'](mars3d__namespace[_0x3a52ac(0x4da,0x47d)]['wheel'],this[_0x3a52ac(0x40f,0x426)],this),this[_0x3a52ac(0x3ef,0x41e)]['on'](mars3d__namespace[_0x13be61(0xc5,0x117)][_0x13be61(0xbe,0xe0)],this[_0x3a52ac(0x4d7,0x452)],this),this['_map']['on'](mars3d__namespace[_0x13be61(0x130,0x117)]['mouseUp'],this[_0x13be61(0xe0,0x160)],this));}[_0x2a5aee(0x49f,0x527)](){function _0x567b7e(_0x4219ff,_0x295678){return _0x499d06(_0x295678,_0x4219ff- -0x2cb);}function _0xbfd91d(_0x4eafac,_0x29b816){return _0x499d06(_0x4eafac,_0x29b816- -0x256);}window['cancelAnimationFrame'](this['_animateFrame']),delete this['_animateFrame'],window['removeEventListener']('resize',this['resize']),this['options'][_0xbfd91d(0xb4,0xfd)]&&(this[_0xbfd91d(0x13f,0xbe)]['off'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace[_0x567b7e(0xa8,0x5d)][_0x567b7e(0x71,0x96)],this['_onMouseDownEvent'],this),this[_0x567b7e(0x49,0xd4)][_0xbfd91d(0x18e,0x118)](mars3d__namespace[_0x567b7e(0xa8,0x49)]['mouseUp'],this['_onMouseUpEvent'],this),this[_0x567b7e(0x49,0x29)][_0x567b7e(0xa3,0x128)](mars3d__namespace['EventType'][_0xbfd91d(0xd2,0x151)],this[_0xbfd91d(0x9c,0x104)],this));}[_0x2a5aee(0x3fc,0x3e0)](_0x48aa67){function _0x1b4a36(_0x675bf9,_0x3a2bf6){return _0x2a5aee(_0x3a2bf6- -0x1c1,_0x675bf9);}function _0x1507bf(_0x1c5933,_0x4d86e9){return _0x499d06(_0x1c5933,_0x4d86e9- -0x58b);}clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this[_0x1b4a36(0x298,0x305)]['style']['visibility']=_0x1507bf(-0x20d,-0x258),this[_0x1507bf(-0x230,-0x203)]=setTimeout(()=>{if(!this['show'])return;this['redraw'](),this['canvas']['style']['visibility']='visible';},0xc8);}[_0x499d06(0x2d6,0x348)](_0x594e44){function _0x352a78(_0x187fbc,_0x2fd756){return _0x2a5aee(_0x2fd756- -0x48,_0x187fbc);}this['mouse_down']=!![];function _0x2d712a(_0x1dee65,_0x525627){return _0x2a5aee(_0x525627- -0x48f,_0x1dee65);}this['_map'][_0x352a78(0x39c,0x406)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x2d712a(-0xbe,-0x9b)]['on'](mars3d__namespace[_0x352a78(0x448,0x40b)]['mouseMove'],this['_onMouseMoveEvent'],this);}[_0x2a5aee(0x43a,0x420)](_0x3bfe7e){if(!this['show']||!this['canvas'])return;this['mouse_down']&&(this['canvas']['style']['visibility']='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x2c2f2b){if(!this['show']||!this[_0x14dc3d(0x442,0x3e9)])return;this['_map'][_0x4201e0(-0xe7,-0x94)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x14dc3d(_0x306b21,_0x3d60a3){return _0x499d06(_0x3d60a3,_0x306b21-0x5c);}this['mouse_down']&&this[_0x14dc3d(0x389,0x300)]&&this['redraw']();this[_0x14dc3d(0x442,0x3b6)][_0x14dc3d(0x3a5,0x428)][_0x4201e0(-0x116,-0xd8)]='visible',this[_0x4201e0(-0x13e,-0xae)]=![];function _0x4201e0(_0x31ed4c,_0xf0187f){return _0x2a5aee(_0xf0187f- -0x4e2,_0x31ed4c);}this['mouse_move']=![];}['setData'](_0x1a9d14){function _0x4df5d3(_0x37e044,_0x105990){return _0x2a5aee(_0x105990- -0x2b6,_0x37e044);}this[_0x4df5d3(0x131,0x119)](),this['windData']=_0x1a9d14;function _0x34918e(_0xdaf16,_0x4b00e8){return _0x499d06(_0xdaf16,_0x4b00e8- -0x1e1);}this['windField'][_0x34918e(0x152,0x150)](_0x1a9d14),this['redraw']();}['redraw'](){if(!this['show'])return;this[_0x36b541(0x34c,0x399)][_0x36b541(0x3e9,0x35e)](this['options']);function _0x504a4e(_0x759305,_0x583c47){return _0x2a5aee(_0x759305- -0x2e1,_0x583c47);}function _0x36b541(_0x20b2fd,_0x449844){return _0x2a5aee(_0x449844- -0x93,_0x20b2fd);}this['update']();}['update'](){if(this['_updateIng'])return;function _0x41ab04(_0x518997,_0x253568){return _0x2a5aee(_0x518997- -0x22e,_0x253568);}function _0x221eb9(_0x8b8957,_0xaecfb6){return _0x2a5aee(_0xaecfb6- -0x607,_0x8b8957);}this['_updateIng']=!![];if(this['worker'])this[_0x221eb9(-0x211,-0x1db)]['update']();else{const _0x1d136e=this['windField']['getParticles']();this['_drawLines'](_0x1d136e);}this[_0x41ab04(0x27a,0x20a)]=![];}[_0x2a5aee(0x4ae,0x440)](_0x998763){this['_canvasParticles']=_0x998763,this[_0x42b156(0x2f9,0x2c1)][_0x9191a8(-0x150,-0x128)]=_0x42b156(0x221,0x240);function _0x9191a8(_0x4b8e06,_0x964775){return _0x2a5aee(_0x964775- -0x51f,_0x4b8e06);}this[_0x9191a8(-0xfb,-0x82)][_0x9191a8(-0x3c,-0x5f)](0x0,0x0,this[_0x42b156(0x22d,0x210)],this['canvasHeight']);function _0x42b156(_0x75dc0,_0x161dce){return _0x2a5aee(_0x75dc0- -0x1a4,_0x161dce);}this[_0x42b156(0x2f9,0x288)]['globalCompositeOperation']='lighter',this['canvasContext']['globalAlpha']=0.9;const _0x4237d0=this[_0x9191a8(-0xfe,-0x12b)][_0x42b156(0x23e,0x225)][_0x9191a8(-0x15b,-0x12a)]!==Cesium[_0x42b156(0x22e,0x208)][_0x9191a8(-0x143,-0xbe)],_0x2afb6d=this[_0x42b156(0x22d,0x23c)]*0.25;if(this[_0x9191a8(-0x26,-0x76)])for(let _0x1d7410=0x0,_0x248483=_0x998763[_0x42b156(0x2f1,0x2c6)];_0x1d7410<_0x248483;_0x1d7410++){const _0xb41b3d=_0x998763[_0x1d7410],_0xd4826b=this['_tomap'](_0xb41b3d,_0xb41b3d[_0x42b156(0x239,0x1ef)],_0xb41b3d['lat'],_0xb41b3d['alt']),_0x171614=this['_tomap'](_0xb41b3d,_0xb41b3d['tlng'],_0xb41b3d['tlat'],_0xb41b3d['talt']);if(!_0xd4826b||!_0x171614)continue;if(_0x4237d0&&Math['abs'](_0xd4826b[0x0]-_0x171614[0x0])>=_0x2afb6d)continue;this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this['_colorRamp']['getColor'](_0xb41b3d['speed']),this[_0x9191a8(-0x78,-0x82)]['moveTo'](_0xd4826b[0x0],_0xd4826b[0x1]),this[_0x9191a8(-0x106,-0x82)]['lineTo'](_0x171614[0x0],_0x171614[0x1]),this[_0x42b156(0x2f9,0x376)]['stroke']();}else{this[_0x9191a8(-0xe9,-0x82)]['beginPath'](),this[_0x9191a8(-0x8f,-0x82)]['lineWidth']=this['lineWidth'],this['canvasContext'][_0x42b156(0x2a0,0x32a)]=this['color'];for(let _0x25cb96=0x0,_0x240c26=_0x998763[_0x9191a8(-0xd5,-0x8a)];_0x25cb96<_0x240c26;_0x25cb96++){const _0x33492d=_0x998763[_0x25cb96],_0x12abc2=this['_tomap'](_0x33492d,_0x33492d['lng'],_0x33492d['lat'],_0x33492d['alt']),_0x4d2033=this['_tomap'](_0x33492d,_0x33492d[_0x42b156(0x2ec,0x2e0)],_0x33492d[_0x9191a8(-0x11c,-0x158)],_0x33492d['talt']);if(!_0x12abc2||!_0x4d2033)continue;if(_0x4237d0&&Math[_0x42b156(0x228,0x23d)](_0x12abc2[0x0]-_0x4d2033[0x0])>=_0x2afb6d)continue;this['canvasContext']['moveTo'](_0x12abc2[0x0],_0x12abc2[0x1]),this['canvasContext'][_0x42b156(0x2d8,0x329)](_0x4d2033[0x0],_0x4d2033[0x1]);}this['canvasContext']['stroke']();}}['_tomap'](_0x37d5be,_0x127bff,_0xd03e30,_0x3ee9a7){function _0x141bb5(_0x2fb7ee,_0x165805){return _0x499d06(_0x165805,_0x2fb7ee- -0x121);}const _0x5e6a68=Cesium['Cartesian3'][_0x141bb5(0x261,0x1e9)](_0x127bff,_0xd03e30,_0x3ee9a7??this['fixedHeight']),_0x2f9c24=this['_map']['scene'];function _0x17bb3c(_0x2641e5,_0x1f1548){return _0x499d06(_0x1f1548,_0x2641e5-0x21);}if(_0x2f9c24[_0x141bb5(0x1f4,0x208)]===Cesium['SceneMode']['SCENE3D']){const _0x4a2af8=new Cesium[(_0x141bb5(0x271,0x23c))](_0x2f9c24[_0x17bb3c(0x364,0x3da)]['ellipsoid'],_0x2f9c24[_0x17bb3c(0x3d4,0x386)][_0x141bb5(0x2ce,0x2bc)]),_0x249683=_0x4a2af8['isPointVisible'](_0x5e6a68);if(!_0x249683)return _0x37d5be['age']=0x0,null;}const _0x373edb=mars3d__namespace['PointTrans'][_0x141bb5(0x218,0x1b1)](this['_map']['scene'],_0x5e6a68);return _0x373edb?[_0x373edb['x'],_0x373edb['y']]:null;}[_0x499d06(0x2cd,0x2ef)](){function _0x92195a(_0x585a91,_0x20179e){return _0x499d06(_0x20179e,_0x585a91- -0x346);}function _0x35f588(_0x209de8,_0x29ff16){return _0x499d06(_0x29ff16,_0x209de8- -0x10b);}this[_0x35f588(0x241,0x2a2)][_0x92195a(-0x57,-0x54)](),delete this[_0x92195a(-0xe,-0x55)];}['initWorker'](){this['worker']=new Worker(this[_0xfe16ba(-0x14b,-0x15f)]['worker']),this['worker']['onmessage']=_0x3ce499=>{this[_0x2bf952(-0x139,-0xb3)](_0x3ce499[_0x33e295(0x256,0x1f9)]['particles']);function _0x33e295(_0x2602fd,_0x21bccf){return _0xfe16ba(_0x2602fd,_0x21bccf-0x2fd);}function _0x2bf952(_0x2a174d,_0x4cc554){return _0xfe16ba(_0x2a174d,_0x4cc554- -0x18);}this['_updateIng2']=![];};function _0xfe16ba(_0x2f107d,_0x440fbd){return _0x2a5aee(_0x440fbd- -0x549,_0x2f107d);}this['windField']={'init':_0x28eed2=>{const _0xc60376={};function _0x369f53(_0x398c30,_0x12c4c6){return _0xfe16ba(_0x12c4c6,_0x398c30-0x25b);}_0xc60376['type']='init',_0xc60376[_0x369f53(0xfc,0xad)]=_0x28eed2,this['worker']['postMessage'](_0xc60376);},'setOptions':_0x4ea5fd=>{const _0x1bd76f={};_0x1bd76f['type']='setOptions';function _0x276e2d(_0x2579f6,_0x50ecf0){return _0xfe16ba(_0x2579f6,_0x50ecf0-0x1b6);}_0x1bd76f[_0x276e2d(0x3a,0x57)]=_0x4ea5fd,this['worker']['postMessage'](_0x1bd76f);},'setDate':_0x5edd43=>{const _0x406914={};_0x406914['type']='setDate';function _0x2655d9(_0x26156b,_0x2bfafe){return _0xfe16ba(_0x26156b,_0x2bfafe-0x19f);}_0x406914['data']=_0x5edd43,this[_0x2655d9(0x95,0x59)]['postMessage'](_0x406914);},'update':()=>{function _0x11022d(_0x5deee5,_0x31f43d){return _0xfe16ba(_0x31f43d,_0x5deee5-0x3db);}if(this['_updateIng2'])return;this[_0x98da28(-0x1f1,-0x259)]=!![];const _0x1ae151={};_0x1ae151['type']=_0x98da28(-0x19e,-0x1e9);function _0x98da28(_0x17ded7,_0x5dc3c7){return _0xfe16ba(_0x17ded7,_0x5dc3c7- -0x168);}this[_0x98da28(-0x26b,-0x2ae)]['postMessage'](_0x1ae151);},'clear':()=>{const _0x1037f3={};function _0x25eda7(_0x2e51b3,_0x50a059){return _0xfe16ba(_0x50a059,_0x2e51b3-0x362);}_0x1037f3[_0x38040c(0x4ef,0x4c5)]=_0x38040c(0x467,0x488);function _0x38040c(_0x55266d,_0x72254d){return _0xfe16ba(_0x72254d,_0x55266d-0x5e1);}this['worker']['postMessage'](_0x1037f3);}},this['windField']['init'](this['options']);}}mars3d__namespace['LayerUtil']['register'](_0x499d06(0x345,0x3b6),CanvasWindLayer),mars3d__namespace[_0x499d06(0x308,0x337)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports[_0x2a5aee(0x45d,0x430)]=CanvasWindField,exports[_0x2a5aee(0x488,0x448)]=CanvasWindLayer,exports[_0x2a5aee(0x404,0x456)]=WindLayer,exports['WindUtil']=WindUtil;function _0x2f0d(){const _0x222e4e=['359584GbPdxh','value','resize','lat','onColorTableChange','wrapS','UNSIGNED_BYTE','computing','getOwnPropertyDescriptor','LINEAR','ONE_MINUS_SRC_ALPHA','pointerEvents','fixedHeight','flatMap','lineLength','FLOAT','fillRect','enabled','fromGeometry','clearFramebuffers','remove','#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','canvas','sin','update','lineWidth','_calcUV','grid','random','RGBA','xmax','positionWC','changeOptions','min','create','speedRate','setData','7942ZZLKXZ','getUVByXY','reverse','getV','flipY','east','south','all','renderState','bindEvent','_calc_speedRate','dropRate','Cesium','ymin','toRadians','drawingBufferWidth','isDynamic','error','destination-in','8WLyapb','tlat','nextParticlesPosition','getDefaultRenderState','particleSystem','green','abs','getSegmentDrawVertexShader','hasOwnProperty','clear','toDegrees','canvasWidth','SceneMode','maxAge','IDENTITY','values','fromCache','commandType','particlesNumber','pass','componentDatatype','get','uniformMap','lng','vertexShaderSource','vdata','outputTexture','particles','scene','west','getCalculateSpeedShader','sceneMode','clientHeight','rectangle','getDataAtLonLat','processWindData','options','drawingBufferHeight','particlesTextureSize','getDirection','4360090cDOzED','useViewerBounds','vertexArray','setOptions','modelMatrix','getContext','_map','mode','colors','globalCompositeOperation','cartesianToCartographic','forEach','Compute','#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','_onMapWhellEvent','particlesTextures','currentParticlesPosition','componentsPerAttribute','sources','atan2','getParticles','worker','WindLayer','xmin','preExecute','colorTable','rawRenderState','removeEventListener','visibility','clearCommand','CLAMP_TO_EDGE','mouse_move','left','segmentsDepth','OPAQUE','setDate','frameRate','hidden','height','ColorRamp','shaderProgram','layer','windData','toWindowCoordinates','updatePosition','add','mouseDown','zIndex','_speedRate','register','blendFuncDestination','floor','fromCssColorString','globe','addEventListener','depthTexture','blendFuncSource','rows','_onMouseDownEvent','style','container','samplingWindow','windField','sqrt','NEAREST','quietPeriod','getUpdatePositionShader','DomUtil','wind','mouseHidden','mouse_down','willReadFrequently','createWindTextures','rendering','depthMask','3666126iKyNPf','_onMouseMoveEvent','morphComplete','5vEmVFf','_setOptionsHook','max','lonRange','udata','domain','north','absolute','strokeStyle','data','commandList','postProcessingPosition','Draw','updateWindData','clientWidth','updateOptions','_randomParticle','push','off','destroyParticlesTextures','autoClear','#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','_pointerEvents','EventType','createSegmentsGeometry','__esModule','597069Ofjjig','type','_updateIng2','updateViewerParameters','color','lastFramesPerSecond','changed','CanvasWindField','_showHook','longitude','windTextures','SCENE3D','fromDegrees','frameRateAdjustment','particlesSpeed','speed','persists','primitives','refreshTimer','none','age','calculateSpeed','446532UkvIcp','fragmentShaderSource','framebuffers','20kxGwkJ','attributeLocations','minificationFilter','EllipsoidalOccluder','warn','call','1571552yWCkXJ','default','ymax','previousParticlesPosition','commandToExecute','segments','Cartesian2','lineTo','destroy','pointer-events','pixelSize','_maxAge','cols','now','latRange','createRawRenderState','original','_addedHook','mouseMove','CanvasWindLayer','getPrimitives','pixelFormat','owner','bounds','geometry','createCommand','reCreateWindTextures','tlng','toGridXY','createParticlesTextures','camera','alpha','length','canvasWind','Rectangle','primitiveType','context','createColorTableTexture','getU','_onMouseUpEvent','canvasContext','show','unbindEvent','framebuffer','viewerParameters','getPostProcessingPositionShader','textures','width','36590DmvHxV','bind','_mountedHook','_updateIng','_colorRamp','red','array','_removedHook','createRenderingFramebuffers','_drawLines','pixelDatatype'];_0x2f0d=function(){return _0x222e4e;};return _0x2f0d();}const _0x245f7a={};_0x245f7a[_0x2a5aee(0x4b1,0x505)]=!![],Object['defineProperty'](exports,_0x499d06(0x3d0,0x375),_0x245f7a);
|
|
14
|
+
'use strict';(function(_0xb80032,_0x18be49){function _0x22a013(_0x5e6164,_0x3037c0){return _0x235d(_0x3037c0- -0xda,_0x5e6164);}const _0x489679=_0xb80032();function _0x4c04c1(_0x5e2569,_0x124beb){return _0x235d(_0x124beb-0x2ba,_0x5e2569);}while(!![]){try{const _0x597dc6=-parseInt(_0x22a013(0x32,0xb8))/0x1*(-parseInt(_0x4c04c1(0x3cc,0x3fb))/0x2)+parseInt(_0x22a013(0x38,0x4f))/0x3*(-parseInt(_0x4c04c1(0x461,0x3fa))/0x4)+-parseInt(_0x4c04c1(0x48d,0x4dc))/0x5+-parseInt(_0x4c04c1(0x422,0x462))/0x6+parseInt(_0x22a013(0xf2,0x163))/0x7*(parseInt(_0x4c04c1(0x44e,0x3f0))/0x8)+parseInt(_0x4c04c1(0x4ec,0x476))/0x9*(parseInt(_0x4c04c1(0x3cb,0x441))/0xa)+parseInt(_0x22a013(0xdd,0xe4))/0xb;if(_0x597dc6===_0x18be49)break;else _0x489679['push'](_0x489679['shift']());}catch(_0x861529){_0x489679['push'](_0x489679['shift']());}}}(_0x2ba2,0xa81aa));function _interopNamespace(_0x462c2a){if(_0x462c2a&&_0x462c2a['__esModule'])return _0x462c2a;var _0x517370=Object['create'](null);function _0x4e1206(_0x293464,_0x411ab5){return _0x235d(_0x411ab5-0x2ef,_0x293464);}return _0x462c2a&&Object['keys'](_0x462c2a)['forEach'](function(_0x1bfbd1){function _0x292ec0(_0x48412e,_0x39bba3){return _0x235d(_0x39bba3- -0x2af,_0x48412e);}if(_0x1bfbd1!=='default'){var _0x43f1b0=Object['getOwnPropertyDescriptor'](_0x462c2a,_0x1bfbd1);Object['defineProperty'](_0x517370,_0x1bfbd1,_0x43f1b0[_0x292ec0(-0xe8,-0x78)]?_0x43f1b0:{'enumerable':!![],'get':function(){return _0x462c2a[_0x1bfbd1];}});}}),_0x517370[_0x4e1206(0x4f3,0x494)]=_0x462c2a,_0x517370;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function _0x2ba2(){const _0x41581e=['lonRange','owner','attributeLocations','wrapT','commandType','_showHook','bind','Draw','pixelSize','updateWindData','defineProperty','steps','min','Math','54vzkhJx','Compute','6467890WUXBvG','createRenderingFramebuffers','data','register','add','visible','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','_randomParticle','north','canvasWind','createRenderingTextures','initFrameRate','xmax','vmin','lineTo','uniformMap','EventType','flipY','blendFuncSource','pointer-events','postMessage','execute','colorTextures','lineWidth','_addedHook','segmentsDepth','_drawLines','wheel','percentageChanged','globe','SceneMode','stroke','_updateIng2','_tomap','setData','IDENTITY','shaderProgram','currentParticlesPosition','framebuffers','changed','type','quietPeriod','OPAQUE','cols','addEventListener','canvas','moveTo','colors','createRawRenderState','abs','position','_bilinearInterpolation','EllipsoidalOccluder','warn','segments','stringify','getContext','height','toRadians','getDirection','clearFramebuffers','context','reCreateWindTextures','maxAge','createCommand','viewerParameters','style','getRandomLatLng','setDate','globalAlpha','particlesNumber','bounds','getSegmentDrawVertexShader','xmin','clientWidth','red','NEAREST','RGBA','latRange','calculateSpeed','createSegmentsGeometry','rows','updatePosition','__esModule','tlng','ymin','init','particles','getParticles','container','vertexShaderSource','forEach','FLOAT','particlesSpeed','cartesianToCartographic','depthTexture','age','WindLayer','values','modelMatrix','2011390nuEGzj','_updateIng','getV','speedRate','_animateFrame','depthTest','layer','CLAMP_TO_EDGE','windData','color','LayerUtil','longitude','zIndex','keys','normal','getCalculateSpeedShader','mouseUp','positionWC','previousParticlesPosition','worker','tlat','get','_colorRamp','SCENE3D','primitives','cos','geometry','217YhNTVn','windTextures','off','__proto__','_setOptionsHook','getUpdatePositionShader','BaseLayer','computing','globalCompositeOperation','enabled','absolute','rendering','options','createWindTextures','48hvSfLg','onParticlesTextureSizeChange','postProcessingPosition','error','magnificationFilter','frameRateAdjustment','morphComplete','talt','autoClear','fill','pointerEvents','domain','primitiveType','162632bKoFkW','south','_onMouseDownEvent','canvasWidth','udata','commandList','lastFramesPerSecond','pixelDatatype','prototype','_pointerEvents','156504VFuUVu','16MVejzn','clientHeight','_onMouseMoveEvent','textures','UNSIGNED_INT','none','#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','fragmentShaderSource','isDynamic','commandToExecute','resize','_onMouseUpEvent','CanvasWindField','initWorker','getSegmentDrawFragmentShader','removeEventListener','outputTexture','fixedHeight','Cesium','isDestroy','framebuffer','visibility','_speedRate','wrapS','setOptions','particlesTextures','isArray','_calcUV','width','camera','east','windField','sceneMode','lighter','isInExtent','_mountedHook','redraw','toGridXY','west','clearCommand','vertexArray','show','mouseMove','random','canvasContext','particleSystem','grid','remove','toDegrees','frameRate','onmessage','particlesTextureSize','processWindData','colorTable','rawRenderState','vdata','destroy','STATIC_DRAW','umax','max','length','beginPath','ymax','fromCssColorString','lng','blendFuncDestination','applyViewerParameters','componentDatatype','log','array','737830cVfhCf','getUVByXY','scene','requestRender','Cartesian2','sources','createPrimitives','clear','_maxAge','dropRateBump','updateViewerParameters','71198UMQUZi','fromDegrees','preExecute','floor','hidden','componentsPerAttribute','mouse_move','canvasHeight','sqrt','push','frameRateMonitor','minificationFilter','atan2','getUVByPoint','#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','mode','destoryRenderingFramebuffers','lat','drawingBufferHeight','default','nextParticlesPosition','_map','3081738lNlgAS','0px','frameTime','update','getSpeed','speed'];_0x2ba2=function(){return _0x41581e;};return _0x2ba2();}function getU(_0x1a627f,_0x4821d5){function _0x20f078(_0x58e9a4,_0x3e3ca0){return _0x235d(_0x58e9a4-0x2e5,_0x3e3ca0);}const _0x394904=_0x1a627f*Math[_0x20f078(0x520,0x540)](Cesium$2['Math']['toRadians'](_0x4821d5));return _0x394904;}function getV(_0x113472,_0x3db6ea){const _0x10ff29=_0x113472*Math['sin'](Cesium$2['Math'][_0x580aad(0x513,0x4a6)](_0x3db6ea));function _0x580aad(_0x4a950c,_0x16a5a0){return _0x235d(_0x4a950c-0x31b,_0x16a5a0);}return _0x10ff29;}function getSpeed(_0x6b30d1,_0x1493f5){const _0x4ddef5=Math['sqrt'](Math['pow'](_0x6b30d1,0x2)+Math['pow'](_0x1493f5,0x2));return _0x4ddef5;}function getDirection(_0x2ba009,_0x4d10f5){let _0x23d561=Cesium$2[_0x3baa72(-0x199,-0x154)][_0x68246b(0x12b,0x171)](Math[_0x3baa72(-0x1b6,-0x139)](_0x4d10f5,_0x2ba009));function _0x68246b(_0xf13bc,_0x25d39a){return _0x235d(_0x25d39a-0x0,_0xf13bc);}_0x23d561+=_0x23d561<0x0?0x168:0x0;function _0x3baa72(_0xc95750,_0x40a1ba){return _0x235d(_0xc95750- -0x354,_0x40a1ba);}return _0x23d561;}const _0x495bf4={};_0x495bf4[_0x3bbde2(-0x10e,-0xfa)]=null,_0x495bf4['getU']=getU,_0x495bf4[_0x2fa6f2(0x4bc,0x518)]=getV,_0x495bf4[_0x3bbde2(-0x80,-0xb9)]=getSpeed,_0x495bf4[_0x3bbde2(-0x33,-0x82)]=getDirection;var WindUtil=_0x495bf4,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=_0x3bbde2(-0x8c,-0x93),postProcessingPositionFragmentShader=_0x3bbde2(-0xe5,-0xb3),renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a';const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x417008={};_0x417008[_0x497bc9(0x39a,0x3a0)]=[calculateSpeedShader];function _0x497bc9(_0x37cfd7,_0xf67d09){return _0x3bbde2(_0x37cfd7-0x43a,_0xf67d09);}return new ShaderSource$1(_0x417008);}static[_0x3bbde2(-0x10c,-0x82)](){const _0x2dd1da={};_0x2dd1da[_0x3220f0(0x212,0x1c1)]=[updatePositionShader];function _0x3220f0(_0x21bae2,_0x27f73f){return _0x2fa6f2(_0x21bae2,_0x27f73f- -0x2bf);}return new ShaderSource$1(_0x2dd1da);}static[_0x3bbde2(-0x26,-0xb0)](){const _0x3e2ca6={};return _0x3e2ca6['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x3e2ca6);}static[_0x3bbde2(-0xdd,-0x58)](){const _0x5deb7d={};return _0x5deb7d['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x5deb7d);}static['getPostProcessingPositionShader'](){const _0x529215={};return _0x529215['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x529215);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defaultValue,defined,destroyObject}=mars3d__namespace[_0x2fa6f2(0x425,0x447)];class CustomPrimitive{constructor(_0x4940c7){function _0x42ed86(_0x4ff33b,_0x3c4faf){return _0x3bbde2(_0x4ff33b-0x557,_0x3c4faf);}this['commandType']=_0x4940c7[_0x4fb8f6(0x413,0x423)],this[_0x42ed86(0x567,0x588)]=_0x4940c7[_0x4fb8f6(0x49d,0x45e)],this['attributeLocations']=_0x4940c7['attributeLocations'],this[_0x42ed86(0x460,0x4e1)]=_0x4940c7['primitiveType'],this['uniformMap']=_0x4940c7[_0x42ed86(0x4f8,0x4b0)]||{};function _0x4fb8f6(_0x46dae2,_0x2c837d){return _0x2fa6f2(_0x2c837d,_0x46dae2- -0x93);}this['vertexShaderSource']=_0x4940c7['vertexShaderSource'],this[_0x42ed86(0x473,0x4b6)]=_0x4940c7['fragmentShaderSource'],this['rawRenderState']=_0x4940c7[_0x4fb8f6(0x3d8,0x3b1)],this[_0x42ed86(0x480,0x437)]=_0x4940c7[_0x4fb8f6(0x3b6,0x332)],this[_0x42ed86(0x47c,0x465)]=_0x4940c7['outputTexture'],this[_0x4fb8f6(0x392,0x33b)]=defaultValue(_0x4940c7[_0x42ed86(0x45c,0x47d)],![]),this['preExecute']=_0x4940c7['preExecute'],this[_0x42ed86(0x495,0x411)]=!![],this['commandToExecute']=undefined,this[_0x42ed86(0x493,0x460)]=undefined,this['isDynamic']=_0x4940c7['isDynamic']??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x42ed86(0x480,0x4f2)],'pass':Pass$1[_0x4fb8f6(0x449,0x41d)]}));}[_0x2fa6f2(0x493,0x4f2)](_0x3ed5b8){function _0x5d79eb(_0x59effd,_0x13a275){return _0x3bbde2(_0x13a275- -0xe,_0x59effd);}function _0x27ef8d(_0x5cb6e2,_0x238602){return _0x3bbde2(_0x238602-0x210,_0x5cb6e2);}if(this[_0x5d79eb(-0x14,-0x88)]===_0x5d79eb(-0x5b,-0x85)){const _0x2b4cac={};_0x2b4cac['context']=_0x3ed5b8,_0x2b4cac[_0x27ef8d(0x205,0x220)]=this[_0x27ef8d(0x200,0x220)],_0x2b4cac[_0x5d79eb(-0xfa,-0x8a)]=this[_0x27ef8d(0x1ee,0x194)],_0x2b4cac['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x4b680b=VertexArray$1['fromGeometry'](_0x2b4cac),_0x1070ee={};_0x1070ee['context']=_0x3ed5b8,_0x1070ee['vertexShaderSource']=this[_0x27ef8d(0x16d,0x1fc)],_0x1070ee[_0x5d79eb(-0x6b,-0xf2)]=this['fragmentShaderSource'],_0x1070ee['attributeLocations']=this[_0x27ef8d(0x13b,0x194)];const _0x5c4267=ShaderProgram['fromCache'](_0x1070ee),_0x5b25c6=RenderState['fromCache'](this['rawRenderState']),_0x48ed04={};return _0x48ed04['owner']=this,_0x48ed04[_0x27ef8d(0x10e,0x14d)]=_0x4b680b,_0x48ed04[_0x27ef8d(0x88,0x119)]=this['primitiveType'],_0x48ed04[_0x27ef8d(0x268,0x205)]=Matrix4[_0x5d79eb(-0x53,-0x59)],_0x48ed04['renderState']=_0x5b25c6,_0x48ed04[_0x5d79eb(-0x44,-0x58)]=_0x5c4267,_0x48ed04['framebuffer']=this['framebuffer'],_0x48ed04[_0x5d79eb(-0x1,-0x6d)]=this[_0x5d79eb(0xb,-0x6d)],_0x48ed04['pass']=Pass$1['OPAQUE'],new DrawCommand(_0x48ed04);}else{if(this[_0x5d79eb(-0x60,-0x88)]===_0x5d79eb(0x12,-0x7d)){const _0x1ac2cc={};return _0x1ac2cc[_0x27ef8d(0x18a,0x193)]=this,_0x1ac2cc['fragmentShaderSource']=this[_0x5d79eb(-0x92,-0xf2)],_0x1ac2cc['uniformMap']=this[_0x5d79eb(-0xd5,-0x6d)],_0x1ac2cc[_0x27ef8d(0x13a,0x135)]=this[_0x27ef8d(0x164,0x135)],_0x1ac2cc['persists']=!![],new ComputeCommand(_0x1ac2cc);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x550113,_0x295ea7){this['geometry']=_0x295ea7,defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x550113,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x1fa740){if(!this[_0x342614(0x1c9,0x173)]())return;function _0x342614(_0x21e71b,_0x1d9547){return _0x3bbde2(_0x1d9547-0x256,_0x21e71b);}if(!this[_0x207d66(0x40b,0x402)]||!defined(_0x1fa740))return;!defined(this['commandToExecute'])&&(this[_0x342614(0x129,0x174)]=this['createCommand'](_0x1fa740['context']));function _0x207d66(_0x2f355c,_0x243c6e){return _0x2fa6f2(_0x2f355c,_0x243c6e- -0x5c);}defined(this[_0x207d66(0x401,0x42c)])&&this['preExecute']();if(!_0x1fa740[_0x207d66(0x346,0x3d3)]){console[_0x207d66(0x474,0x48b)]('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x1fa740['commandList']['push'](this['clearCommand']),defined(this[_0x207d66(0x36d,0x3e2)])&&_0x1fa740['commandList']['push'](this['commandToExecute']);}['isDestroyed'](){return![];}[_0x2fa6f2(0x3e6,0x46d)](){function _0x1500b8(_0x497e58,_0x46b38f){return _0x3bbde2(_0x497e58-0xa2,_0x46b38f);}if(defined(this['commandToExecute'])){var _0x3355b8;(_0x3355b8=this['commandToExecute']['shaderProgram'])===null||_0x3355b8===void 0x0||_0x3355b8[_0x23af65(0xf8,0x17c)](),this['commandToExecute'][_0x1500b8(0x58,0xb4)]=undefined;}function _0x23af65(_0x1c6852,_0x3ddb5c){return _0x3bbde2(_0x1c6852-0x1ab,_0x3ddb5c);}return destroyObject(this);}}function deepMerge(_0x1d7ad6,_0x3e5346){if(!_0x1d7ad6)return _0x3e5346;if(!_0x3e5346)return _0x1d7ad6;function _0xdd91ca(_0x5f3bc3,_0x5d3fc1){return _0x3bbde2(_0x5d3fc1-0x5fd,_0x5f3bc3);}const _0x11bcc9={..._0x3e5346},_0x24cf49=_0x11bcc9;for(const _0x126a80 in _0x1d7ad6){if(Object[_0xdd91ca(0x588,0x50f)]['hasOwnProperty']['call'](_0x1d7ad6,_0x126a80)){const _0x425a65=_0x1d7ad6[_0x126a80],_0x494666=_0x3e5346[_0x126a80];if(Array[_0xdd91ca(0x4c3,0x52c)](_0x425a65)){_0x24cf49[_0x126a80]=_0x425a65['slice']();continue;}if(_0x425a65&&typeof _0x425a65==='object'){_0x24cf49[_0x126a80]=deepMerge(_0x425a65,_0x494666||{});continue;}_0x425a65!==undefined&&(_0x24cf49[_0x126a80]=_0x425a65);}}function _0x288ee7(_0x369d0d,_0x48dc9b){return _0x3bbde2(_0x369d0d-0x572,_0x48dc9b);}return _0x24cf49;}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[_0x2fa6f2(0x439,0x447)];class WindParticlesComputing{constructor(_0x1be0ff,_0x5763e6,_0x551021,_0x323254,_0x20904d){this['context']=_0x1be0ff,this['options']=_0x551021,this[_0x38fc09(0x5dd,0x5fc)]=_0x323254,this['windData']=_0x5763e6,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x53ab60={};_0x53ab60['scene']=_0x20904d,_0x53ab60['samplingWindow']=0x1,_0x53ab60[_0x38fc09(0x5c5,0x583)]=0x0;function _0x146742(_0x2c909d,_0x4f6aef){return _0x2fa6f2(_0x4f6aef,_0x2c909d- -0x2e2);}this['frameRateMonitor']=new FrameRateMonitor(_0x53ab60),this[_0x146742(0x1db,0x1ad)](),this[_0x146742(0x13a,0xd7)](),this['createParticlesTextures']();function _0x38fc09(_0x56ad7b,_0x18e53d){return _0x2fa6f2(_0x18e53d,_0x56ad7b-0xea);}this['createComputingPrimitives']();}['initFrameRate'](){const _0x3388c8=()=>{function _0x30bf50(_0xbf9a3d,_0x2c07c5){return _0x235d(_0x2c07c5-0x5c,_0xbf9a3d);}function _0x5d6c1a(_0x21822e,_0x3489eb){return _0x235d(_0x3489eb-0x28b,_0x21822e);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor'][_0x5d6c1a(0x374,0x3c7)],this[_0x30bf50(0x107,0x18a)]=0x3c/Math['max'](this[_0x30bf50(0x252,0x1ce)],0x1));};function _0x340f85(_0x36491f,_0x22b550){return _0x3bbde2(_0x36491f-0x2f4,_0x22b550);}_0x3388c8();function _0x1da849(_0x1f65d7,_0x46b702){return _0x2fa6f2(_0x1f65d7,_0x46b702- -0x354);}const _0x22f0dc=setInterval(_0x3388c8,0x3e8),_0x5381c2=this['destroy'][_0x1da849(0x1cd,0x154)](this);this[_0x340f85(0x241,0x2af)]=()=>{clearInterval(_0x22f0dc),_0x5381c2();};}['createWindTextures'](){const _0x2e9dae={};_0x2e9dae[_0x3ade6d(-0x1f3,-0x1e4)]=TextureMinificationFilter$1['LINEAR'];function _0x3ade6d(_0x29aa56,_0x12a97f){return _0x2fa6f2(_0x29aa56,_0x12a97f- -0x675);}_0x2e9dae[_0x46c9d0(0x29e,0x298)]=TextureMagnificationFilter$1['LINEAR'];const _0xa1975a={'context':this[_0x46c9d0(0x36c,0x311)],'width':this['windData']['width'],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options'][_0x3ade6d(-0x219,-0x1b2)]??![],'sampler':new Sampler$1(_0x2e9dae)};function _0x46c9d0(_0x547f69,_0x3cda85){return _0x3bbde2(_0x547f69-0x39d,_0x3cda85);}this[_0x46c9d0(0x3af,0x3ff)]={'U':new Texture$1({..._0xa1975a,'source':{'arrayBufferView':new Float32Array(this['windData']['u'][_0x46c9d0(0x2f7,0x2aa)])}}),'V':new Texture$1({..._0xa1975a,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x3acd01={};_0x3acd01['minificationFilter']=TextureMinificationFilter$1[_0x497949(0x2fb,0x38b)],_0x3acd01['magnificationFilter']=TextureMagnificationFilter$1[_0x468d23(0x612,0x5e9)];function _0x468d23(_0x20f8a9,_0x2214b4){return _0x2fa6f2(_0x20f8a9,_0x2214b4-0xeb);}const _0xa98096={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x497949(0x3c7,0x39b)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this[_0x497949(0x273,0x2a8)]['particlesTextureSize']*0x4)[_0x468d23(0x4a2,0x511)](0x0)},'sampler':new Sampler$1(_0x3acd01)};function _0x497949(_0x41c106,_0xf4abc7){return _0x2fa6f2(_0x41c106,_0xf4abc7- -0x173);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0xa98096),'currentParticlesPosition':new Texture$1(_0xa98096),'nextParticlesPosition':new Texture$1(_0xa98096),'postProcessingPosition':new Texture$1(_0xa98096),'particlesSpeed':new Texture$1(_0xa98096)};}['destroyParticlesTextures'](){function _0x15bdb5(_0x4efb27,_0x28145c){return _0x2fa6f2(_0x28145c,_0x4efb27- -0x246);}function _0xacd952(_0x4b0542,_0x5e2230){return _0x3bbde2(_0x5e2230-0x443,_0x4b0542);}Object['values'](this['particlesTextures'])[_0xacd952(0x47b,0x430)](_0x40683b=>_0x40683b[_0x15bdb5(0x227,0x1e7)]());}['createComputingPrimitives'](){function _0x516781(_0x12e646,_0x103050){return _0x2fa6f2(_0x103050,_0x12e646- -0x5a0);}function _0x52b568(_0x1f4e9c,_0x3c09e7){return _0x2fa6f2(_0x3c09e7,_0x1f4e9c- -0xcb);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0x516781(-0x6e,-0x47)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u'][_0x516781(-0xf2,-0x7e)],this['windData']['u'][_0x516781(-0x130,-0x195)]),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this[_0x516781(-0x82,-0x111)]['v'][_0x52b568(0x3a5,0x392)]),'speedRange':()=>new Cartesian2$1(this['windData'][_0x52b568(0x3d6,0x3f4)][_0x52b568(0x3e3,0x3bd)],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0xb4947e(_0x17433a,_0x178057){return _0x52b568(_0x17433a- -0x5cc,_0x178057);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0xb4947e(-0x27c,-0x22e)]['speedFactor'];},'frameRateAdjustment':()=>this[_0x52b568(0x357,0x37b)],'dimension':()=>new Cartesian2$1(this['windData']['width'],this['windData'][_0x52b568(0x420,0x3a8)]),'minimum':()=>new Cartesian2$1(this[_0x52b568(0x453,0x449)]['bounds']['west'],this['windData'][_0x516781(-0xa7,-0x102)][_0x516781(-0x175,-0x178)]),'maximum':()=>new Cartesian2$1(this[_0x516781(-0x82,-0x46)]['bounds']['east'],this['windData']['bounds']['north'])},'fragmentShaderSource':ShaderManager[_0x52b568(0x45a,0x3fa)](),'outputTexture':this[_0x516781(-0x152,-0x1c6)][_0x52b568(0x444,0x4a0)],'preExecute':()=>{function _0xf79a77(_0x7bbcfb,_0x55e441){return _0x52b568(_0x7bbcfb- -0x36f,_0x55e441);}const _0x37bb8e=this[_0xf79a77(0x14,-0x7b)]['previousParticlesPosition'];this['particlesTextures'][_0x4671fe(-0x86,-0x54)]=this['particlesTextures']['currentParticlesPosition'],this['particlesTextures'][_0x4671fe(-0xe6,-0xa5)]=this['particlesTextures']['postProcessingPosition'],this['particlesTextures'][_0x4671fe(-0x1c0,-0x15d)]=_0x37bb8e;function _0x4671fe(_0x120960,_0x51c6f9){return _0x52b568(_0x51c6f9- -0x4b1,_0x120960);}this['primitives']['calculateSpeed'][_0xf79a77(0x4,-0x82)]&&(this[_0xf79a77(0xf4,0x65)][_0x4671fe(-0x7c,-0x7b)]['commandToExecute'][_0x4671fe(-0xea,-0x137)]=this[_0x4671fe(-0xe2,-0x12e)][_0x4671fe(-0xc2,-0x6d)]);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x52b568(0x40c,0x407)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x52b568(0x383,0x3c2)]['nextParticlesPosition'],'preExecute':()=>{function _0x433f85(_0x282bf0,_0x4a62cf){return _0x516781(_0x4a62cf-0x2a9,_0x282bf0);}function _0x5549dc(_0x5dddc9,_0x28b7d2){return _0x516781(_0x28b7d2-0x424,_0x5dddc9);}this['primitives']['updatePosition']['commandToExecute']&&(this['primitives']['updatePosition'][_0x5549dc(0x352,0x2c2)][_0x433f85(0x173,0x14e)]=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x52b568(0x3e6,0x410),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x52b568(0x3cf,0x3b9)],'particlesSpeed':()=>this['particlesTextures'][_0x52b568(0x444,0x40a)],'lonRange':()=>this[_0x52b568(0x428,0x41c)][_0x516781(-0xfe,-0xfb)],'latRange':()=>this['viewerParameters'][_0x52b568(0x435,0x3ea)],'dataLonRange':()=>new Cartesian2$1(this[_0x516781(-0x82,-0x1e)][_0x516781(-0xa7,-0x85)]['west'],this[_0x52b568(0x453,0x489)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this[_0x52b568(0x453,0x477)][_0x516781(-0xa7,-0xd7)]['south'],this['windData']['bounds'][_0x52b568(0x3ef,0x469)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this['options']['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x52b568(0x383,0x3b6)][_0x516781(-0x181,-0x1b6)],'preExecute':()=>{function _0x4c7085(_0x42f332,_0x22134b){return _0x516781(_0x42f332-0x20a,_0x22134b);}function _0x7f2455(_0x1ac907,_0x1a0d13){return _0x52b568(_0x1ac907- -0x446,_0x1a0d13);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this[_0x7f2455(0x1d,0xa)]['postProcessingPosition']['commandToExecute']['outputTexture']=this['particlesTextures'][_0x4c7085(0x89,0x10a)]);},'isDynamic':()=>this['options']['dynamic']})};}[_0x3bbde2(-0x30,-0x11)](){function _0x2354bf(_0x3d2c7b,_0x5e6c6d){return _0x3bbde2(_0x5e6c6d-0x293,_0x3d2c7b);}function _0x318f3f(_0x91be65,_0x52203b){return _0x3bbde2(_0x52203b-0x4cd,_0x91be65);}this['windTextures']['U']['destroy'](),this[_0x318f3f(0x492,0x4df)]['V'][_0x318f3f(0x3e0,0x41a)](),this[_0x2354bf(0x177,0x18f)]();}[_0x2fa6f2(0x4ce,0x4ab)](_0x1a4f8e){function _0x377c78(_0x39a497,_0x1e94f1){return _0x3bbde2(_0x39a497-0x5,_0x1e94f1);}function _0x15d42b(_0x1e10df,_0x20d2ae){return _0x3bbde2(_0x20d2ae-0x4ab,_0x1e10df);}this[_0x15d42b(0x47f,0x4a9)]=_0x1a4f8e,this[_0x377c78(-0x2b,-0x50)]();}['updateOptions'](_0x1d49b3){const _0x187d48=_0x1d49b3[_0x2765f1(0xe7,0x168)]!==undefined&&_0x1d49b3['flipY']!==this['options'][_0x2765f1(0xe7,0x6a)];this[_0x2765f1(0x3f,0x3b)]=deepMerge(_0x1d49b3,this[_0x2765f1(0x3f,0x53)]);function _0x2765f1(_0x1e2108,_0x11b623){return _0x2fa6f2(_0x11b623,_0x1e2108- -0x3dc);}function _0x4c0422(_0x55f461,_0x2eb5f7){return _0x2fa6f2(_0x55f461,_0x2eb5f7- -0xda);}_0x187d48&&this['reCreateWindTextures']();}['processWindData'](_0x2c6fcf){const {array:_0x5c06c6}=_0x2c6fcf;let {min:_0x533343,max:_0x571211}=_0x2c6fcf;const _0x54173b=new Float32Array(_0x5c06c6['length']);_0x533343===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x533343=Math['min'](..._0x5c06c6));function _0x4efb2f(_0x4a4991,_0x4d3c4d){return _0x3bbde2(_0x4d3c4d-0x21,_0x4a4991);}_0x571211===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x571211=Math['max'](..._0x5c06c6));const _0x1a5ee3=Math[_0x4efb2f(-0xb1,-0x8f)](Math[_0x520e36(0x2ab,0x2fe)](_0x533343),Math['abs'](_0x571211));function _0x520e36(_0x774a2e,_0x55b906){return _0x3bbde2(_0x55b906-0x33b,_0x774a2e);}for(let _0x293717=0x0;_0x293717<_0x5c06c6['length'];_0x293717++){const _0x147361=_0x5c06c6[_0x293717]/_0x1a5ee3;_0x54173b[_0x293717]=_0x147361;}return _0x54173b;}[_0x3bbde2(-0xb3,-0x52)](){function _0x15055b(_0x10551f,_0xf02416){return _0x3bbde2(_0x10551f-0x5fb,_0xf02416);}Object['values'](this[_0x298718(0x279,0x236)])['forEach'](_0x4c47b0=>_0x4c47b0['destroy']()),Object[_0x298718(0x25b,0x1f0)](this[_0x15055b(0x529,0x54c)])['forEach'](_0x2a2fad=>_0x2a2fad['destroy']()),Object[_0x15055b(0x5ef,0x66f)](this['primitives'])['forEach'](_0x301e93=>_0x301e93['destroy']());function _0x298718(_0x17d02d,_0x3f2131){return _0x3bbde2(_0x17d02d-0x267,_0x3f2131);}this[_0x298718(0x1d7,0x177)][_0x298718(0x1b4,0x1ef)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x152afc,_0x50d760,_0x27abf1,_0x1f116f){this['context']=_0x152afc,this['options']=_0x50d760,this[_0x1c60fd(0x380,0x381)]=_0x27abf1;function _0x1c60fd(_0x1a829b,_0x5bd9b4){return _0x2fa6f2(_0x5bd9b4,_0x1a829b- -0x173);}this['computing']=_0x1f116f;(typeof this['options']['particlesTextureSize']!=='number'||this['options']['particlesTextureSize']<=0x0)&&(console[_0x1c60fd(0x2ad,0x301)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options'][_0x1c60fd(0x2f5,0x340)]=0x100);this['colorTable']=this['createColorTableTexture'](),this[_0x35aa46(0x2f8,0x26c)]=this[_0x1c60fd(0x349,0x36a)](),this[_0x35aa46(0x398,0x411)]=this['createRenderingFramebuffers']();function _0x35aa46(_0x57c128,_0x55818a){return _0x2fa6f2(_0x55818a,_0x57c128- -0x140);}this['primitives']=this[_0x35aa46(0x341,0x335)]();}['createRenderingTextures'](){const _0x3ac2e2={};_0x3ac2e2['context']=this['context'],_0x3ac2e2['width']=this[_0x2ec42f(-0xb0,-0xe8)]['drawingBufferWidth'],_0x3ac2e2['height']=this['context'][_0x4e409d(-0x11b,-0x135)],_0x3ac2e2['pixelFormat']=PixelFormat[_0x2ec42f(-0x10b,-0xd8)],_0x3ac2e2['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x331e11=_0x3ac2e2,_0x539e81={};function _0x4e409d(_0x3e1f83,_0x15a42f){return _0x2fa6f2(_0x15a42f,_0x3e1f83- -0x5b3);}_0x539e81[_0x2ec42f(-0x149,-0xe8)]=this[_0x4e409d(-0xc4,-0xb9)],_0x539e81[_0x2ec42f(-0x1bf,-0x186)]=this[_0x2ec42f(-0x6d,-0xe8)]['drawingBufferWidth'],_0x539e81[_0x2ec42f(-0x17d,-0xec)]=this[_0x2ec42f(-0x134,-0xe8)]['drawingBufferHeight'];function _0x2ec42f(_0x48fc1b,_0x29bbff){return _0x3bbde2(_0x29bbff- -0xb7,_0x48fc1b);}_0x539e81['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x539e81[_0x4e409d(-0x182,-0x164)]=PixelDatatype[_0x2ec42f(-0x177,-0x19e)];const _0x5b925a=_0x539e81;return{'segmentsColor':new Texture(_0x331e11),'segmentsDepth':new Texture(_0x5b925a)};}[_0x3bbde2(-0x6d,-0x18)](){const _0x179c25={};_0x179c25['context']=this['context'],_0x179c25[_0x547d6d(0x4d0,0x528)]=[this['textures']['segmentsColor']];function _0x547d6d(_0x3608c4,_0xc89b04){return _0x3bbde2(_0xc89b04-0x580,_0x3608c4);}function _0xf428ef(_0x4d51bf,_0x181651){return _0x3bbde2(_0x4d51bf-0x237,_0x181651);}return _0x179c25[_0x547d6d(0x5fe,0x571)]=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x179c25)};}[_0x2fa6f2(0x42c,0x496)](){Object['values'](this['framebuffers'])['forEach'](_0x59443f=>{function _0x2d8586(_0x3b9681,_0x2894c1){return _0x235d(_0x3b9681-0x15c,_0x2894c1);}_0x59443f[_0x2d8586(0x2d5,0x34b)]();});}['createColorTableTexture'](){const _0x151337=new Float32Array(this['options']['colors']['flatMap'](_0x50cc38=>{function _0x37514e(_0x14b5ae,_0x159893){return _0x235d(_0x159893- -0x222,_0x14b5ae);}function _0x32b6ab(_0xb20ea0,_0x3eacc7){return _0x235d(_0xb20ea0- -0x1e9,_0x3eacc7);}const _0x954365=Color$1[_0x37514e(-0x7c,-0xa2)](_0x50cc38);return[_0x954365[_0x37514e(-0x9b,-0x19)],_0x954365['green'],_0x954365['blue'],_0x954365['alpha']];})),_0x1a3db8={};_0x1a3db8[_0x31233d(0x574,0x56c)]=TextureMinificationFilter['LINEAR'],_0x1a3db8[_0x2ac42e(-0x25b,-0x21e)]=TextureMagnificationFilter['LINEAR'];function _0x2ac42e(_0x576373,_0x50055b){return _0x2fa6f2(_0x50055b,_0x576373- -0x67c);}_0x1a3db8[_0x31233d(0x52f,0x52d)]=TextureWrap[_0x2ac42e(-0x15f,-0x1db)];function _0x31233d(_0x400709,_0x3c8417){return _0x3bbde2(_0x400709-0x603,_0x3c8417);}return _0x1a3db8[_0x2ac42e(-0x1d7,-0x175)]=TextureWrap[_0x2ac42e(-0x15f,-0x1bd)],new Texture({'context':this['context'],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x1a3db8),'source':{'width':this['options']['colors']['length'],'height':0x1,'arrayBufferView':_0x151337}});}[_0x2fa6f2(0x4a1,0x502)](){const _0x4b08f6=0x4,_0x32e503=this[_0x53824f(0x24d,0x25b)]['particlesTextureSize'];let _0x1fc523=[];for(let _0x2fea65=0x0;_0x2fea65<_0x32e503;_0x2fea65++){for(let _0x409dee=0x0;_0x409dee<_0x32e503;_0x409dee++){for(let _0x56bb4c=0x0;_0x56bb4c<_0x4b08f6;_0x56bb4c++){_0x1fc523['push'](_0x2fea65/_0x32e503),_0x1fc523['push'](_0x409dee/_0x32e503);}}}_0x1fc523=new Float32Array(_0x1fc523);const _0x1c30d8=this[_0x53824f(0x24d,0x255)][_0x4e94c4(0x4e0,0x4bc)]**0x2;let _0x5f1d37=[];for(let _0x37169e=0x0;_0x37169e<_0x1c30d8;_0x37169e++){_0x5f1d37['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x5f1d37=new Float32Array(_0x5f1d37);let _0xc85b7f=[];for(let _0x43887e=0x0,_0x5a64d7=0x0;_0x43887e<_0x1c30d8;_0x43887e++){_0xc85b7f['push'](_0x5a64d7+0x0,_0x5a64d7+0x1,_0x5a64d7+0x2,_0x5a64d7+0x2,_0x5a64d7+0x1,_0x5a64d7+0x3),_0x5a64d7+=_0x4b08f6;}_0xc85b7f=new Uint32Array(_0xc85b7f);const _0x963504={};_0x963504[_0x4e94c4(0x4f0,0x503)]=ComponentDatatype[_0x4e94c4(0x586,0x5b4)],_0x963504[_0x53824f(0x2bd,0x27f)]=0x2,_0x963504[_0x53824f(0x346,0x2cb)]=_0x1fc523;function _0x4e94c4(_0x14b01c,_0x5eef84){return _0x3bbde2(_0x14b01c-0x598,_0x5eef84);}function _0x53824f(_0x12cf48,_0x14597b){return _0x3bbde2(_0x12cf48-0x352,_0x14597b);}const _0x5ae5d8={};_0x5ae5d8[_0x53824f(0x2aa,0x29d)]=ComponentDatatype['FLOAT'],_0x5ae5d8['componentsPerAttribute']=0x3,_0x5ae5d8[_0x53824f(0x346,0x2fd)]=_0x5f1d37;const _0xcb8ccf=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x963504),'normal':new GeometryAttribute(_0x5ae5d8)}),'indices':_0xc85b7f});return _0xcb8ccf;}[_0x2fa6f2(0x4a0,0x4e2)](_0x153c1e){const _0x3edfb0={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x153c1e};return Appearance['getDefaultRenderState'](!![],![],_0x3edfb0);}['createPrimitives'](){function _0x23a563(_0x149a1a,_0xaa9d7a){return _0x2fa6f2(_0x149a1a,_0xaa9d7a- -0x673);}const _0x2a2358={};_0x2a2358['st']=0x0,_0x2a2358[_0x443c81(-0x18b,-0x1b0)]=0x1;const _0x128986={};_0x128986[_0x443c81(-0x297,-0x2dd)]=!![];function _0x443c81(_0x48ec28,_0x3fa9c1){return _0x3bbde2(_0x48ec28- -0x18f,_0x3fa9c1);}const _0x2b2ede={};_0x2b2ede['enabled']=!![],_0x2b2ede['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x2b2ede[_0x443c81(-0x1eb,-0x1bb)]=WebGLRenderingContext['SRC_ALPHA'],_0x2b2ede[_0x443c81(-0x239,-0x216)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x1ba1e9={};_0x1ba1e9['viewport']=undefined,_0x1ba1e9[_0x23a563(-0xed,-0x158)]=_0x128986,_0x1ba1e9['depthMask']=!![],_0x1ba1e9['blending']=_0x2b2ede;const _0x49b001=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x2a2358,'geometry':this[_0x23a563(-0x1a8,-0x171)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this[_0x23a563(-0x294,-0x25d)][_0x443c81(-0x261,-0x204)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x443c81(-0x299,-0x2b2)]['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this['computing'][_0x23a563(-0x2a8,-0x251)],'colorTable':()=>this[_0x23a563(-0x186,-0x209)],'domain':()=>{function _0x41aace(_0x3701a0,_0x5ad640){return _0x23a563(_0x5ad640,_0x3701a0-0x6ca);}var _0x2de3e1,_0x482d40;const _0x3699c1=new Cartesian2(((_0x2de3e1=this[_0x41aace(0x472,0x4af)][_0x51c51e(0x5d,-0x22)])===null||_0x2de3e1===void 0x0?void 0x0:_0x2de3e1[_0x41aace(0x505,0x53f)])??this['computing'][_0x51c51e(0x43,0xd4)][_0x51c51e(0xc8,0x57)]['min'],((_0x482d40=this['options'][_0x41aace(0x47f,0x50f)])===null||_0x482d40===void 0x0?void 0x0:_0x482d40[_0x41aace(0x4c7,0x4a6)])??this[_0x51c51e(0xb,-0x34)]['windData']['speed']['max']);function _0x51c51e(_0x136d06,_0xb0c8b5){return _0x443c81(_0xb0c8b5-0x265,_0x136d06);}return _0x3699c1;},'displayRange':()=>{var _0x5a93d2,_0x48b91a;const _0x96e12f=new Cartesian2(((_0x5a93d2=this['options']['displayRange'])===null||_0x5a93d2===void 0x0?void 0x0:_0x5a93d2['min'])??this['computing']['windData']['speed']['min'],((_0x48b91a=this['options']['displayRange'])===null||_0x48b91a===void 0x0?void 0x0:_0x48b91a['max'])??this['computing'][_0x5aa88a(0x27f,0x1f8)][_0x5aa88a(0x202,0x1b1)][_0x1adf1d(0x35f,0x2e0)]);function _0x5aa88a(_0xc476be,_0x12a228){return _0x443c81(_0xc476be-0x410,_0x12a228);}function _0x1adf1d(_0x41cdb3,_0x9de125){return _0x443c81(_0x41cdb3-0x59e,_0x9de125);}return _0x96e12f;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this[_0x23a563(-0x14f,-0x184)]['drawingBufferHeight'],'pixelSize':()=>this[_0x23a563(-0xf8,-0x180)]['pixelSize'],'lineWidth':()=>{const _0x5de407={};_0x5de407['min']=0x1,_0x5de407['max']=0x2;const _0x3c2b55=this['options']['lineWidth']||_0x5de407;return new Cartesian2(_0x3c2b55['min'],_0x3c2b55['max']);},'lineLength':()=>{const _0x1154a1={};_0x1154a1['min']=0x14,_0x1154a1[_0x26565a(0x4a3,0x49c)]=0x64;function _0x26565a(_0x563f80,_0x51633b){return _0x443c81(_0x563f80-0x6e2,_0x51633b);}function _0x137ad4(_0x3bd498,_0x321539){return _0x23a563(_0x3bd498,_0x321539-0x43c);}const _0x27b96a=this['options']['lineLength']||_0x1154a1;return new Cartesian2(_0x27b96a['min'],_0x27b96a[_0x26565a(0x4a3,0x532)]);},'is3D':()=>this[_0x23a563(-0x16c,-0x180)]['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures'][_0x443c81(-0x1e4,-0x268)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x443c81(-0x1cd,-0x200)](_0x1ba1e9)}),_0xf11114={};return _0xf11114[_0x443c81(-0x1c7,-0x206)]=_0x49b001,_0xf11114;}['onParticlesTextureSizeChange'](){function _0x1aa536(_0x585b78,_0x41ba51){return _0x3bbde2(_0x585b78- -0x4f,_0x41ba51);}const _0x276ced=this['createSegmentsGeometry']();this['primitives'][_0x1aa536(-0x87,-0x5c)]['geometry']=_0x276ced;function _0x5872ff(_0x4a9b46,_0xd4d623){return _0x3bbde2(_0x4a9b46- -0x18f,_0xd4d623);}const _0x135cc1={};_0x135cc1[_0x5872ff(-0x1c0,-0x16f)]=this['context'],_0x135cc1['geometry']=_0x276ced,_0x135cc1['attributeLocations']=this['primitives']['segments'][_0x1aa536(-0xcb,-0xe3)],_0x135cc1['bufferUsage']=BufferUsage[_0x5872ff(-0x241,-0x270)];const _0x1e4bc7=VertexArray['fromGeometry'](_0x135cc1);this[_0x5872ff(-0x181,-0x15b)]['segments'][_0x1aa536(-0x131,-0xc0)]&&(this['primitives'][_0x5872ff(-0x1c7,-0x15b)]['commandToExecute']['vertexArray']=_0x1e4bc7);}['onColorTableChange'](){this['colorTable']['destroy'](),this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x3273b4){function _0x4626fe(_0xeeb745,_0x306eb4){return _0x2fa6f2(_0x306eb4,_0xeeb745- -0x598);}function _0x2d0dc5(_0x5dd32c,_0x16a75b){return _0x2fa6f2(_0x16a75b,_0x5dd32c- -0x14e);}const _0x5e4169=_0x3273b4['colors']&&JSON[_0x2d0dc5(0x39b,0x425)](_0x3273b4[_0x4626fe(-0xb7,-0x10b)])!==JSON[_0x2d0dc5(0x39b,0x368)](this[_0x2d0dc5(0x2cd,0x2ad)][_0x2d0dc5(0x393,0x41b)]);this['options']=deepMerge(_0x3273b4,this['options']),_0x5e4169&&this['onColorTableChange']();}['destroy'](){Object['values'](this['framebuffers'])[_0x2d0868(0x337,0x3c2)](_0x462285=>{function _0x39ec62(_0xa6dbe5,_0x140cc0){return _0x2d0868(_0x140cc0- -0x168,_0xa6dbe5);}_0x462285[_0x39ec62(0x111,0x12f)]();}),Object['values'](this['primitives'])['forEach'](_0x5222f6=>{function _0x150667(_0x49db82,_0x409e58){return _0x2d0868(_0x409e58- -0x23a,_0x49db82);}_0x5222f6[_0x150667(0x1a,0x5d)]();});function _0x2d0868(_0x3a8322,_0x43369f){return _0x3bbde2(_0x3a8322-0x34a,_0x43369f);}this['colorTable']['destroy']();}}function _0x235d(_0x31b189,_0x513798){const _0x2ba2da=_0x2ba2();return _0x235d=function(_0x235d8c,_0x57fc6f){_0x235d8c=_0x235d8c-0x11d;let _0x32a7e=_0x2ba2da[_0x235d8c];return _0x32a7e;},_0x235d(_0x31b189,_0x513798);}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x2d322d,_0x2677cb,_0x16cf67,_0x357324,_0xc1fe25){function _0x2524ff(_0x5dba76,_0x251741){return _0x2fa6f2(_0x251741,_0x5dba76- -0x490);}function _0x1660df(_0x1e8396,_0x267e7e){return _0x2fa6f2(_0x267e7e,_0x1e8396- -0x5fe);}this[_0x1660df(-0x10f,-0x192)]=_0x2d322d,this['options']=_0x16cf67,this['viewerParameters']=_0x357324,this['computing']=new WindParticlesComputing(_0x2d322d,_0x2677cb,_0x16cf67,_0x357324,_0xc1fe25),this['rendering']=new WindParticlesRendering(_0x2d322d,_0x16cf67,_0x357324,this[_0x1660df(-0x1e8,-0x219)]),this['clearFramebuffers']();}['getPrimitives'](){function _0x4156b5(_0x1efd8e,_0x25116b){return _0x2fa6f2(_0x1efd8e,_0x25116b- -0x202);}const _0x113a88=[this[_0x13dc03(0x353,0x33e)][_0x4156b5(0x2d0,0x32c)]['calculateSpeed'],this['computing']['primitives'][_0x13dc03(0x441,0x49a)],this['computing']['primitives']['postProcessingPosition'],this['rendering']['primitives']['segments']];function _0x13dc03(_0x4f828c,_0x5e294b){return _0x2fa6f2(_0x5e294b,_0x4f828c- -0xc3);}return _0x113a88;}[_0x3bbde2(-0x32,0x4a)](){function _0x3a2c70(_0x3baf2f,_0x3c47a6){return _0x2fa6f2(_0x3c47a6,_0x3baf2f- -0x4e);}function _0x4bff27(_0x324ff1,_0xc1cbc5){return _0x3bbde2(_0xc1cbc5-0x374,_0x324ff1);}const _0x29549f=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});Object[_0x4bff27(0x338,0x377)](this[_0x3a2c70(0x3cc,0x35e)][_0x4bff27(0x39c,0x32c)])[_0x3a2c70(0x4bf,0x498)](_0x4dd8d1=>{function _0x2e6d2d(_0x3a9ccb,_0x5a2c79){return _0x3a2c70(_0x5a2c79- -0x328,_0x3a9ccb);}_0x29549f['framebuffer']=this['rendering']['framebuffers'][_0x4dd8d1],_0x29549f[_0x2e6d2d(0x1aa,0x151)](this['context']);});}['changeOptions'](_0x35bcb2){let _0x4d93e4=![];_0x35bcb2['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x35bcb2[_0x2793d2(0x35d,0x3ad)]&&(_0x4d93e4=!![]);const _0x5ba744=deepMerge(_0x35bcb2,this['options']);function _0x198b2f(_0xd03806,_0x51819e){return _0x3bbde2(_0xd03806-0x5f5,_0x51819e);}function _0x2793d2(_0x584706,_0x33cefd){return _0x3bbde2(_0x33cefd-0x465,_0x584706);}if(_0x5ba744['particlesTextureSize']<0x1)throw new Error(_0x2793d2(0x396,0x3fd));this[_0x198b2f(0x4f0,0x46e)]=_0x5ba744,this['rendering']['updateOptions'](_0x35bcb2),this['computing']['updateOptions'](_0x35bcb2),_0x4d93e4&&(this['computing']['destroyParticlesTextures'](),this['computing']['createParticlesTextures'](),this['rendering'][_0x198b2f(0x4f3,0x489)]());}['applyViewerParameters'](_0x19cf67){this['viewerParameters']=_0x19cf67;function _0x498d4a(_0x19e121,_0x186ca0){return _0x3bbde2(_0x19e121-0x446,_0x186ca0);}this[_0x498d4a(0x33c,0x320)][_0x5489f2(0x4a9,0x464)]=_0x19cf67;function _0x5489f2(_0x153ed6,_0x4a8b59){return _0x2fa6f2(_0x153ed6,_0x4a8b59- -0x8f);}this['rendering'][_0x5489f2(0x498,0x464)]=_0x19cf67;}['destroy'](){this[_0x5b76ab(0xaf,0x9c)]['destroy']();function _0x5b76ab(_0x1ad60a,_0x918746){return _0x3bbde2(_0x918746-0x1a6,_0x1ad60a);}this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace[_0x3bbde2(-0xd9,-0x16a)],BaseLayer$1=mars3d__namespace[_0x3bbde2(-0x4,0x83)][_0x2fa6f2(0x469,0x415)],_0x39dd6e={};_0x39dd6e['min']=0x1,_0x39dd6e['max']=0x2;const _0x3ae15d={};_0x3ae15d['min']=0x14,_0x3ae15d['max']=0x64;const _0x5368aa={};_0x5368aa['particlesTextureSize']=0x64,_0x5368aa['fixedHeight']=0x0,_0x5368aa['lineWidth']=_0x39dd6e,_0x5368aa['lineLength']=_0x3ae15d,_0x5368aa['speedFactor']=0x1,_0x5368aa['dropRate']=0.003,_0x5368aa[_0x3bbde2(-0x9c,-0x17)]=0.001,_0x5368aa['colors']=['rgb(206,255,255)'],_0x5368aa['flipY']=![],_0x5368aa['dynamic']=!![];const DEF_OPTIONS=_0x5368aa;class WindLayer extends BaseLayer$1{constructor(_0x35614b={}){_0x35614b={...DEF_OPTIONS,..._0x35614b},super(_0x35614b),this['_setOptionsHook'](_0x35614b,_0x35614b);}get['layer'](){return this['primitives'];}get[_0x3bbde2(-0x6c,-0x9f)](){return this['options']['data'];}set[_0x3bbde2(-0x6c,-0xbd)](_0x4f84e4){function _0x44212d(_0x2ba07d,_0x2747f8){return _0x3bbde2(_0x2ba07d-0x328,_0x2747f8);}this['options'][_0x44212d(0x2bc,0x2d9)]=_0x4f84e4,this['setData'](_0x4f84e4);}get['colors'](){return this['options']['colors'];}set['colors'](_0x1732c6){this[_0x9fd288(0x297,0x323)][_0x9fd288(0x35d,0x31b)]=_0x1732c6;function _0x9fd288(_0x3b554b,_0x868128){return _0x3bbde2(_0x3b554b-0x39c,_0x868128);}const _0x4af16b={};function _0x5b3131(_0xf1e24d,_0x119ca5){return _0x3bbde2(_0xf1e24d-0x227,_0x119ca5);}_0x4af16b['colors']=_0x1732c6,this[_0x9fd288(0x28f,0x212)](this[_0x5b3131(0x122,0x17b)],_0x4af16b);}['_mountedHook'](){}[_0x2fa6f2(0x4bd,0x4ca)](){this['scene']=this[_0x26ef51(0x191,0x157)]['scene'],this['camera']=this['_map'][_0x26ef51(0xb4,0x10e)];this['options']['data']&&this['setData'](this[_0x26ef51(0xc8,0xd7)]['data']);if(!this['windData'])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene'][_0x26ef51(0x1af,0x151)]};function _0x389f18(_0x4cf67e,_0x3ec2cc){return _0x2fa6f2(_0x4cf67e,_0x3ec2cc- -0x61a);}this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this[_0x389f18(-0x1e1,-0x19d)]['context'],this['windData'],this['options'],this[_0x389f18(-0x9a,-0x127)],this['scene']);function _0x26ef51(_0x3322ec,_0x2ceb9e){return _0x2fa6f2(_0x3322ec,_0x2ceb9e- -0x344);}this['primitives']=this['particleSystem']['getPrimitives'](),this['primitives'][_0x26ef51(0x18c,0x1c9)](_0xc48ae8=>{function _0x22c6cf(_0x11b4e8,_0x1e5d0b){return _0x26ef51(_0x1e5d0b,_0x11b4e8- -0xb9);}function _0x3af85b(_0x48f4d8,_0x188509){return _0x26ef51(_0x48f4d8,_0x188509- -0x88);}this[_0x22c6cf(0x80,0xe0)][_0x3af85b(0x121,0x162)][_0x22c6cf(0xb9,0xce)](_0xc48ae8);}),this['camera'][_0x389f18(-0x1ba,-0x14c)]=0.01,this['camera'][_0x389f18(-0x189,-0x141)]['addEventListener'](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete']['addEventListener'](this[_0x389f18(-0x1f9,-0x195)][_0x389f18(-0x188,-0x172)](this)),window[_0x26ef51(0x1ff,0x19a)]('resize',this['updateViewerParameters'][_0x26ef51(0x122,0x164)](this));}['_removedHook'](){this[_0x3918b2(-0x30,-0x80)]['changed'][_0x3918b2(-0x46,-0x8e)](this[_0x3918b2(-0x23,-0x4d)]['bind'](this));function _0x3918b2(_0x1eb423,_0x114693){return _0x2fa6f2(_0x1eb423,_0x114693- -0x4d2);}this[_0xb0319a(0x17d,0x1c9)][_0x3918b2(-0xd9,-0xaf)]['removeEventListener'](this['updateViewerParameters'][_0xb0319a(0x1ea,0x1f4)](this));function _0xb0319a(_0xd9e9b2,_0xd03c90){return _0x3bbde2(_0xd03c90-0x26c,_0xd9e9b2);}window['removeEventListener'](_0xb0319a(0x14b,0x18b),this[_0x3918b2(-0x4d,-0x4d)]['bind'](this)),this['primitives']&&(this['primitives'][_0x3918b2(0xb6,0x3b)](_0x33e6c4=>{function _0x5da124(_0x4a1936,_0x1953b6){return _0x3918b2(_0x1953b6,_0x4a1936-0x4dc);}this['scene']['primitives'][_0x5da124(0x46e,0x4a2)](_0x33e6c4);}),delete this['primitives']),this[_0xb0319a(0x1de,0x1ae)]&&(this['particleSystem'][_0x3918b2(-0xe4,-0x65)](),delete this['particleSystem']);}[_0x2fa6f2(0x522,0x4d4)](_0x1b9bd8,_0x54de00){this[_0x4735f2(0x34c,0x386)]=this['processWindData'](_0x1b9bd8);function _0x4735f2(_0x27a884,_0x3b5350){return _0x3bbde2(_0x27a884-0x34e,_0x3b5350);}if(_0x54de00){this['_removedHook'](),this['_addedHook']();return;}function _0xb29d25(_0x23b960,_0x404cbe){return _0x2fa6f2(_0x404cbe,_0x23b960-0x4e);}this['particleSystem']?(this[_0xb29d25(0x4b0,0x478)]['computing']['updateWindData'](this['windData']),this['scene'][_0xb29d25(0x4cc,0x4b6)]()):this['_addedHook']();}['_setOptionsHook'](_0x1e8c05,_0x4fbf3e){function _0x58c322(_0x33d84a,_0x7e4f50){return _0x3bbde2(_0x33d84a-0x106,_0x7e4f50);}function _0x4a3baa(_0x2561ad,_0x20daa2){return _0x3bbde2(_0x20daa2-0x424,_0x2561ad);}this['particleSystem']&&(this['particleSystem']['changeOptions'](_0x4fbf3e),this[_0x58c322(0x63,0xad)][_0x58c322(0x64,-0x2)]());}[_0x2fa6f2(0x48b,0x469)](_0x1488e9){var _0x2341e8,_0x3177a2;const _0x13e5f6={..._0x1488e9},_0x4abb53=_0x13e5f6;!_0x4abb53['height']&&_0x4abb53['rows']&&(_0x4abb53[_0x3cb9d4(0x46f,0x4dd)]=_0x4abb53['rows']);!_0x4abb53['width']&&_0x4abb53['cols']&&(_0x4abb53[_0x3cb9d4(0x4bd,0x443)]=_0x4abb53[_0x1835d9(0x393,0x3ab)]);!_0x4abb53['bounds']&&(_0x4abb53['bounds']={'west':_0x4abb53[_0x1835d9(0x3b1,0x3de)],'south':_0x4abb53[_0x3cb9d4(0x4ff,0x4f9)],'east':_0x4abb53[_0x3cb9d4(0x4d9,0x4b0)],'north':_0x4abb53[_0x3cb9d4(0x4b3,0x465)]});function _0x1835d9(_0x115887,_0x2d189f){return _0x3bbde2(_0x115887-0x3d6,_0x2d189f);}if(!_0x4abb53['u']){const _0x3ae201={};_0x3ae201[_0x3cb9d4(0x4d7,0x46c)]=_0x1488e9['udata'],_0x3ae201['min']=_0x1488e9['umin'],_0x3ae201[_0x3cb9d4(0x4e5,0x462)]=_0x1488e9[_0x1835d9(0x325,0x39f)],_0x4abb53['u']=_0x3ae201;}if(!_0x4abb53['v']){const _0x1389ba={};_0x1389ba['array']=_0x1488e9['vdata'],_0x1389ba['min']=_0x1488e9[_0x3cb9d4(0x420,0x4b1)],_0x1389ba[_0x3cb9d4(0x418,0x462)]=_0x1488e9['vmax'],_0x4abb53['v']=_0x1389ba;}function _0x3cb9d4(_0x4dad85,_0x1f5fd5){return _0x3bbde2(_0x1f5fd5-0x512,_0x4dad85);}if(((_0x2341e8=_0x4abb53[_0x3cb9d4(0x4e8,0x493)])===null||_0x2341e8===void 0x0?void 0x0:_0x2341e8['min'])===undefined||((_0x3177a2=_0x4abb53['speed'])===null||_0x3177a2===void 0x0?void 0x0:_0x3177a2[_0x1835d9(0x326,0x35e)])===undefined||_0x4abb53['speed']['array']===undefined){const _0x5b4f2d={'array':new Float32Array(_0x4abb53['u'][_0x3cb9d4(0x47e,0x46c)]['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x1c5370=0x0;_0x1c5370<_0x4abb53['u']['array']['length'];_0x1c5370++){_0x5b4f2d['array'][_0x1c5370]=Math['sqrt'](_0x4abb53['u']['array'][_0x1c5370]*_0x4abb53['u']['array'][_0x1c5370]+_0x4abb53['v'][_0x3cb9d4(0x48c,0x46c)][_0x1c5370]*_0x4abb53['v'][_0x3cb9d4(0x3e8,0x46c)][_0x1c5370]),_0x5b4f2d['array'][_0x1c5370]!==0x0&&(_0x5b4f2d[_0x3cb9d4(0x482,0x4a0)]=Math['min'](_0x5b4f2d[_0x1835d9(0x364,0x351)],_0x5b4f2d['array'][_0x1c5370]),_0x5b4f2d[_0x1835d9(0x326,0x31a)]=Math[_0x1835d9(0x326,0x2a6)](_0x5b4f2d[_0x1835d9(0x326,0x2c8)],_0x5b4f2d[_0x3cb9d4(0x44c,0x46c)][_0x1c5370]));}_0x4abb53['speed']=_0x5b4f2d;}return _0x4abb53;}['updateViewerParameters'](){var _0x509170;const _0x444ecd=this['scene'],_0x1b666d=_0x444ecd[_0x12d00d(-0x222,-0x1ae)],_0xc37d0b={};_0xc37d0b['x']=0x0,_0xc37d0b['y']=0x0;const _0x575c0={};_0x575c0['x']=0x0,_0x575c0['y']=_0x1b666d['clientHeight'];const _0x44e2b6={};_0x44e2b6['x']=_0x1b666d['clientWidth'],_0x44e2b6['y']=0x0;const _0x288444={};_0x288444['x']=_0x1b666d[_0x12d00d(-0x141,-0x191)],_0x288444['y']=_0x1b666d['clientHeight'];const _0x340c74=[_0xc37d0b,_0x575c0,_0x44e2b6,_0x288444];let _0x6fe3a8=0xb4;function _0x12d00d(_0xa887d0,_0x377717){return _0x3bbde2(_0x377717- -0x16d,_0xa887d0);}let _0x76164f=-0xb4;function _0x2868b1(_0x4a5212,_0x2f1aad){return _0x2fa6f2(_0x2f1aad,_0x4a5212- -0x439);}let _0x532625=0x5a,_0x2e1bf9=-0x5a,_0x259c4f=![];for(const _0x4d88ac of _0x340c74){const _0x3b870b=_0x444ecd[_0x2868b1(0x19,-0x70)]['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x4d88ac['x'],_0x4d88ac['y']),_0x444ecd[_0x2868b1(0x96,0xca)]['ellipsoid']);if(!_0x3b870b){_0x259c4f=!![];break;}const _0x146a31=_0x444ecd['globe']['ellipsoid'][_0x2868b1(0xd7,0x104)](_0x3b870b),_0x22596b=Cesium$1[_0x2868b1(0x76,0xcc)][_0x12d00d(-0x1f7,-0x228)](_0x146a31[_0x2868b1(0xe8,0x11f)]),_0x3300b3=Cesium$1[_0x2868b1(0x76,0x71)][_0x2868b1(0x2c,0xc)](_0x146a31['latitude']);_0x6fe3a8=Math[_0x12d00d(-0x160,-0x1df)](_0x6fe3a8,_0x22596b),_0x76164f=Math[_0x12d00d(-0x22b,-0x21d)](_0x76164f,_0x22596b),_0x532625=Math['min'](_0x532625,_0x3300b3),_0x2e1bf9=Math[_0x12d00d(-0x280,-0x21d)](_0x2e1bf9,_0x3300b3);}if(!_0x259c4f){const _0x405f15=new Cesium$1[(_0x2868b1(0x46,-0x7))](Math[_0x12d00d(-0x244,-0x21d)](this['windData']['bounds']['west'],_0x6fe3a8),Math['min'](this['windData']['bounds'][_0x2868b1(0x1a,0x10)],_0x76164f)),_0x3b127d=new Cesium$1[(_0x12d00d(-0x23c,-0x20e))](Math['max'](this[_0x12d00d(-0x1cc,-0x16f)][_0x2868b1(0xc0,0x54)]['south'],_0x532625),Math['min'](this[_0x2868b1(0xe5,0xe6)][_0x2868b1(0xc0,0xba)][_0x12d00d(-0x15e,-0x1d3)],_0x2e1bf9)),_0x5e094f=(_0x405f15['y']-_0x405f15['x'])*0.05,_0x4e10f0=(_0x3b127d['y']-_0x3b127d['x'])*0.05;_0x405f15['x']=Math['max'](this['windData']['bounds']['west'],_0x405f15['x']-_0x5e094f),_0x405f15['y']=Math['min'](this['windData'][_0x12d00d(-0x216,-0x194)][_0x12d00d(-0x253,-0x23a)],_0x405f15['y']+_0x5e094f),_0x3b127d['x']=Math[_0x12d00d(-0x247,-0x21d)](this['windData']['bounds']['south'],_0x3b127d['x']-_0x4e10f0),_0x3b127d['y']=Math[_0x12d00d(-0x188,-0x1df)](this['windData']['bounds'][_0x2868b1(0x81,-0x8)],_0x3b127d['y']+_0x4e10f0),this['viewerParameters'][_0x12d00d(-0x216,-0x1eb)]=_0x405f15,this['viewerParameters']['latRange']=_0x3b127d;const _0x1e78dd=this[_0x12d00d(-0x1f4,-0x16f)]['bounds']['east']-this['windData']['bounds'][_0x12d00d(-0x215,-0x232)],_0x55aa0f=this[_0x2868b1(0xe5,0x55)][_0x2868b1(0xc0,0x56)]['north']-this['windData']['bounds']['south'],_0x15efe6=(_0x405f15['y']-_0x405f15['x'])/_0x1e78dd,_0x22bfe2=(_0x3b127d['y']-_0x3b127d['x'])/_0x55aa0f,_0x44a751=Math['min'](_0x15efe6,_0x22bfe2),_0x1bda78=0x3e8*_0x44a751;_0x1bda78>0x0&&(this[_0x12d00d(-0x218,-0x19a)][_0x12d00d(-0x1ff,-0x1e3)]=Math['max'](0x0,Math['min'](0x3e8,_0x1bda78)));}this[_0x12d00d(-0x136,-0x19a)][_0x2868b1(0x1c,-0x16)]=this['scene'][_0x12d00d(-0x289,-0x1f8)],(_0x509170=this['particleSystem'])===null||_0x509170===void 0x0||_0x509170[_0x2868b1(0x3e,-0x33)](this[_0x2868b1(0xba,0x98)]);}['getDataAtLonLat'](_0x673339,_0x2d65a6){const {bounds:_0x27f1e0,width:_0x577c2a,height:_0x6c67c4,u:_0x309aa1,v:_0x4d8fc2,speed:_0x4e8ba2}=this['windData'],{flipY:_0x5185bb}=this[_0x24885e(0x1,-0x38)];if(_0x673339<_0x27f1e0['west']||_0x673339>_0x27f1e0['east']||_0x2d65a6<_0x27f1e0['south']||_0x2d65a6>_0x27f1e0['north'])return null;const _0x535851=(_0x673339-_0x27f1e0['west'])/(_0x27f1e0['east']-_0x27f1e0[_0x4a2639(0x481,0x4bc)])*(_0x577c2a-0x1);let _0x13044f=(_0x2d65a6-_0x27f1e0['south'])/(_0x27f1e0[_0x24885e(0xd4,0x67)]-_0x27f1e0['south'])*(_0x6c67c4-0x1);_0x5185bb&&(_0x13044f=_0x6c67c4-0x1-_0x13044f);const _0x137ab9=Math['floor'](_0x535851);function _0x24885e(_0x37d8e2,_0x2409a0){return _0x2fa6f2(_0x37d8e2,_0x2409a0- -0x453);}const _0x2002cd=Math['floor'](_0x13044f),_0x5c9e71=Math['floor'](_0x535851),_0x2133f6=Math[_0x24885e(0x65,0x5b)](_0x5c9e71+0x1,_0x577c2a-0x1),_0x49fb96=Math['floor'](_0x13044f),_0x5ccb24=Math['min'](_0x49fb96+0x1,_0x6c67c4-0x1),_0x70ee46=_0x535851-_0x5c9e71,_0x53cd98=_0x13044f-_0x49fb96,_0x5db2b3=_0x2002cd*_0x577c2a+_0x137ab9,_0x33c7ba=_0x49fb96*_0x577c2a+_0x5c9e71,_0x48aa62=_0x49fb96*_0x577c2a+_0x2133f6,_0x3210ae=_0x5ccb24*_0x577c2a+_0x5c9e71,_0x128803=_0x5ccb24*_0x577c2a+_0x2133f6,_0x282b0f=_0x309aa1[_0x4a2639(0x530,0x4db)][_0x33c7ba],_0x563012=_0x309aa1['array'][_0x48aa62],_0x48cdc8=_0x309aa1['array'][_0x3210ae],_0x1b82df=_0x309aa1['array'][_0x128803],_0x4bfb9e=(0x1-_0x70ee46)*(0x1-_0x53cd98)*_0x282b0f+_0x70ee46*(0x1-_0x53cd98)*_0x563012+(0x1-_0x70ee46)*_0x53cd98*_0x48cdc8+_0x70ee46*_0x53cd98*_0x1b82df,_0x32f84b=_0x4d8fc2['array'][_0x33c7ba],_0x41d846=_0x4d8fc2['array'][_0x48aa62],_0x31034d=_0x4d8fc2[_0x4a2639(0x474,0x4db)][_0x3210ae],_0x3d93ac=_0x4d8fc2['array'][_0x128803],_0x50bd2e=(0x1-_0x70ee46)*(0x1-_0x53cd98)*_0x32f84b+_0x70ee46*(0x1-_0x53cd98)*_0x41d846+(0x1-_0x70ee46)*_0x53cd98*_0x31034d+_0x70ee46*_0x53cd98*_0x3d93ac,_0xb6bb3f=Math['sqrt'](_0x4bfb9e*_0x4bfb9e+_0x50bd2e*_0x50bd2e),_0x497fac={};function _0x4a2639(_0x4fadc0,_0x13de36){return _0x3bbde2(_0x13de36-0x581,_0x4fadc0);}_0x497fac['u']=_0x309aa1[_0x24885e(0x6e,0x27)][_0x5db2b3],_0x497fac['v']=_0x4d8fc2['array'][_0x5db2b3],_0x497fac['speed']=_0x4e8ba2[_0x24885e(-0x53,0x27)][_0x5db2b3];const _0x28ee8b={};_0x28ee8b['u']=_0x4bfb9e,_0x28ee8b['v']=_0x50bd2e,_0x28ee8b['speed']=_0xb6bb3f;const _0x535c56={};return _0x535c56['original']=_0x497fac,_0x535c56['interpolated']=_0x28ee8b,_0x535c56;}}mars3d__namespace['LayerUtil'][_0x2fa6f2(0x4cd,0x4b5)]('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){function _0x26cd05(_0x4290ff,_0x5b7bff){return _0x2fa6f2(_0x4290ff,_0x5b7bff-0xe9);}this['lng']=null,this['lat']=null,this[_0x26cd05(0x5b1,0x5ef)]=null,this[_0x462073(0x4b0,0x4af)]=null;function _0x462073(_0x571ded,_0x43ed5d){return _0x2fa6f2(_0x43ed5d,_0x571ded- -0x7a);}this['age']=null,this[_0x462073(0x427,0x4b8)]=null;}['destroy'](){for(const _0x38e482 in this){delete this[_0x38e482];}}}class CanvasWindField{constructor(_0xff01da){function _0x192b81(_0x5c368e,_0x58513e){return _0x2fa6f2(_0x58513e,_0x5c368e- -0xac);}this[_0x192b81(0x3a1,0x39e)](_0xff01da);}get['speedRate'](){return this['_speedRate'];}set['speedRate'](_0x38642a){function _0x216afe(_0x2a42b5,_0x3574cd){return _0x3bbde2(_0x2a42b5-0x47b,_0x3574cd);}this[_0x3a15b0(0x46e,0x406)]=(0x64-(_0x38642a>0x63?0x63:_0x38642a))*0x64;function _0x3a15b0(_0x2f7b93,_0x486b2b){return _0x2fa6f2(_0x486b2b,_0x2f7b93-0x23);}this['_calc_speedRate']=[(this[_0x216afe(0x419,0x42a)]-this['xmin'])/this['_speedRate'],(this[_0x216afe(0x3ce,0x3a8)]-this['ymin'])/this['_speedRate']];}get[_0x3bbde2(-0x2f,0x42)](){return this['_maxAge'];}set[_0x2fa6f2(0x4b5,0x4f1)](_0xd0e3e9){function _0x25103f(_0x1d9743,_0x3c3081){return _0x2fa6f2(_0x3c3081,_0x1d9743- -0x33);}this[_0x25103f(0x450,0x4c6)]=_0xd0e3e9;}['setOptions'](_0x4a1573){this[_0x36ad53(0xe3,0xd0)]=_0x4a1573;function _0x36ad53(_0x39f705,_0x483b52){return _0x2fa6f2(_0x483b52,_0x39f705- -0x338);}this[_0x36ad53(0x1b9,0x167)]=_0x4a1573[_0x1898c1(0x36a,0x3aa)]||0x78,this['speedRate']=_0x4a1573['speedRate']||0x32,this[_0x36ad53(0x1d1,0x1c2)]=[];const _0x37d829=_0x4a1573['particlesNumber']||0x1000;function _0x1898c1(_0x60fef7,_0x39093c){return _0x2fa6f2(_0x39093c,_0x60fef7- -0x187);}for(let _0x40724=0x0;_0x40724<_0x37d829;_0x40724++){const _0x3bff0d=this['_randomParticle'](new CanvasParticle());this[_0x1898c1(0x382,0x310)][_0x1898c1(0x308,0x2c2)](_0x3bff0d);}}['setDate'](_0x4b2a80){this['rows']=_0x4b2a80[_0x299b86(0x372,0x3ea)],this[_0x510ce9(0x521,0x5a0)]=_0x4b2a80[_0x510ce9(0x521,0x548)],this[_0x510ce9(0x53f,0x5c6)]=_0x4b2a80['xmin'],this['xmax']=_0x4b2a80['xmax'],this[_0x299b86(0x376,0x33a)]=_0x4b2a80[_0x510ce9(0x54b,0x5a6)],this[_0x510ce9(0x4b7,0x527)]=_0x4b2a80[_0x510ce9(0x4b7,0x44a)],this[_0x510ce9(0x4a7,0x532)]=[];function _0x299b86(_0x4c5fbf,_0x5b9993){return _0x2fa6f2(_0x5b9993,_0x4c5fbf- -0x191);}const _0x59e90e=_0x4b2a80[_0x510ce9(0x472,0x44e)],_0x3d73ee=_0x4b2a80[_0x510ce9(0x4b0,0x420)];let _0x33eca0=![];_0x59e90e[_0x510ce9(0x4b5,0x48c)]===this[_0x299b86(0x372,0x3fa)]&&_0x59e90e[0x0]['length']===this['cols']&&(_0x33eca0=!![]);let _0x14b92e=0x0,_0x3f04c2=null,_0x1751c8=null;for(let _0x3c2355=0x0;_0x3c2355<this['rows'];_0x3c2355++){_0x3f04c2=[];for(let _0x3ccffe=0x0;_0x3ccffe<this[_0x299b86(0x34c,0x2e9)];_0x3ccffe++,_0x14b92e++){_0x33eca0?_0x1751c8=this['_calcUV'](_0x59e90e[_0x3c2355][_0x3ccffe],_0x3d73ee[_0x3c2355][_0x3ccffe]):_0x1751c8=this['_calcUV'](_0x59e90e[_0x14b92e],_0x3d73ee[_0x14b92e]),_0x3f04c2['push'](_0x1751c8);}this['grid']['push'](_0x3f04c2);}function _0x510ce9(_0xac2647,_0x5425cc){return _0x3bbde2(_0xac2647-0x564,_0x5425cc);}!this['options']['flipY']&&this['grid']['reverse']();}[_0x2fa6f2(0x4dd,0x482)](){delete this[_0x15203f(0x59e,0x5b7)],delete this[_0x15203f(0x578,0x556)],delete this['xmin'];function _0x36b9ab(_0x2fe5e6,_0x5963b3){return _0x2fa6f2(_0x2fe5e6,_0x5963b3- -0x459);}delete this['xmax'],delete this[_0x15203f(0x5a2,0x586)];function _0x15203f(_0x3a31d2,_0x1c93f6){return _0x2fa6f2(_0x1c93f6,_0x3a31d2-0x9b);}delete this['ymax'],delete this['grid'],delete this[_0x15203f(0x5a4,0x57d)];}['toGridXY'](_0x177924,_0xc6d523){const _0x4c36fe=(_0x177924-this[_0x58ee2c(0x1b0,0x22d)])/(this['xmax']-this[_0x54abe4(0xda,0x54)])*(this['cols']-0x1);function _0x54abe4(_0x2acfa5,_0xb37e8f){return _0x3bbde2(_0x2acfa5-0xff,_0xb37e8f);}const _0x4c16e0=(this[_0x54abe4(0x52,0x14)]-_0xc6d523)/(this[_0x54abe4(0x52,0x11)]-this[_0x54abe4(0xe6,0x155)])*(this['rows']-0x1);function _0x58ee2c(_0x2e2b01,_0x2356b8){return _0x3bbde2(_0x2356b8-0x252,_0x2e2b01);}return[_0x4c36fe,_0x4c16e0];}[_0x2fa6f2(0x4fa,0x47c)](_0xcb4cf9,_0x192969){function _0x1e2380(_0x3591f0,_0x4eedad){return _0x3bbde2(_0x4eedad-0x106,_0x3591f0);}function _0x3e5c1a(_0x2ce487,_0xe6cfbd){return _0x3bbde2(_0xe6cfbd- -0xec,_0x2ce487);}if(_0xcb4cf9<0x0||_0xcb4cf9>=this['cols']||_0x192969>=this['rows'])return[0x0,0x0,0x0];const _0x436b58=Math['floor'](_0xcb4cf9),_0x3b5258=Math[_0x3e5c1a(-0x1bf,-0x183)](_0x192969);if(_0x436b58===_0xcb4cf9&&_0x3b5258===_0x192969)return this[_0x3e5c1a(-0x1f5,-0x1a9)][_0x192969][_0xcb4cf9];const _0x19d603=_0x436b58+0x1,_0x1bf5c2=_0x3b5258+0x1,_0x323139=this[_0x3e5c1a(-0x10d,-0x190)](_0x436b58,_0x3b5258),_0x3be73e=this[_0x3e5c1a(-0x20d,-0x190)](_0x19d603,_0x3b5258),_0x5c5d81=this[_0x1e2380(0x4c,0x62)](_0x436b58,_0x1bf5c2),_0x801aa5=this['getUVByXY'](_0x19d603,_0x1bf5c2);let _0x4314f4=null;try{_0x4314f4=this[_0x1e2380(0x10f,0xcb)](_0xcb4cf9-_0x436b58,_0x192969-_0x3b5258,_0x323139,_0x3be73e,_0x5c5d81,_0x801aa5);}catch(_0x3ad48e){console[_0x3e5c1a(-0x1ce,-0x193)](_0xcb4cf9,_0x192969);}return _0x4314f4;}['_bilinearInterpolation'](_0x1260d6,_0x138b0b,_0x563908,_0x3967ea,_0x245da7,_0xd16926){const _0x3fb387=0x1-_0x1260d6,_0x9cd15b=0x1-_0x138b0b,_0x40a90b=_0x3fb387*_0x9cd15b,_0x56d5e9=_0x1260d6*_0x9cd15b,_0xaa5679=_0x3fb387*_0x138b0b,_0x14d442=_0x1260d6*_0x138b0b;function _0x335ff9(_0x48552f,_0x5633d3){return _0x2fa6f2(_0x5633d3,_0x48552f- -0x280);}const _0x11b97d=_0x563908[0x0]*_0x40a90b+_0x3967ea[0x0]*_0x56d5e9+_0x245da7[0x0]*_0xaa5679+_0xd16926[0x0]*_0x14d442,_0x3afa32=_0x563908[0x1]*_0x40a90b+_0x3967ea[0x1]*_0x56d5e9+_0x245da7[0x1]*_0xaa5679+_0xd16926[0x1]*_0x14d442;return this[_0x335ff9(0x1d0,0x1c9)](_0x11b97d,_0x3afa32);}[_0x2fa6f2(0x46c,0x450)](_0x2cb1ce,_0x8e4760){function _0x2add60(_0xc60fef,_0x187a01){return _0x3bbde2(_0xc60fef-0xa1,_0x187a01);}return[+_0x2cb1ce,+_0x8e4760,Math[_0x2add60(0xf,0x2a)](_0x2cb1ce*_0x2cb1ce+_0x8e4760*_0x8e4760)];}[_0x3bbde2(-0x8d,-0xa1)](_0x18738d,_0x2cd00b){if(!this['isInExtent'](_0x18738d,_0x2cd00b))return null;const _0x768482=this[_0x5583d7(0x3e4,0x3bd)](_0x18738d,_0x2cd00b),_0xac6a65=this[_0x5583d7(0x390,0x3df)](_0x768482[0x0],_0x768482[0x1]);function _0x3701ca(_0x3ef8f9,_0x35548d){return _0x3bbde2(_0x3ef8f9-0x9b,_0x35548d);}function _0x5583d7(_0x50ddf6,_0x43c626){return _0x3bbde2(_0x43c626-0x483,_0x50ddf6);}return _0xac6a65;}[_0x2fa6f2(0x429,0x457)](_0x107c1e,_0x5984d8){function _0x16afc2(_0x45d7f9,_0xe0796){return _0x2fa6f2(_0x45d7f9,_0xe0796- -0x648);}function _0x54b765(_0x38422f,_0x5dd91e){return _0x2fa6f2(_0x5dd91e,_0x38422f- -0x2b1);}return _0x107c1e>=this[_0x54b765(0x24a,0x1c8)]&&_0x107c1e<=this['xmax']&&_0x5984d8>=this[_0x54b765(0x256,0x25b)]&&_0x5984d8<=this['ymax']?!![]:![];}[_0x3bbde2(-0x2b,0x5a)](){const _0x425ad8=fRandomByfloat(this['xmin'],this['xmax']),_0x235339=fRandomByfloat(this['ymin'],this['ymax']),_0x564d0c={};function _0x1244c4(_0x596b57,_0x4f0c38){return _0x2fa6f2(_0x596b57,_0x4f0c38- -0x51c);}return _0x564d0c['lat']=_0x235339,_0x564d0c[_0x1244c4(-0x8d,-0xa7)]=_0x425ad8,_0x564d0c;}['getParticles'](){let _0x2de222,_0x4de6ee,_0x3e25f4;for(let _0x3bce55=0x0,_0xdea997=this['particles']['length'];_0x3bce55<_0xdea997;_0x3bce55++){let _0x18c85f=this['particles'][_0x3bce55];_0x18c85f['age']<=0x0&&(_0x18c85f=this[_0x462cbc(0x344,0x37a)](_0x18c85f));if(_0x18c85f['age']>0x0){const _0x53e1ab=_0x18c85f['tlng'],_0x4d0122=_0x18c85f['tlat'];_0x3e25f4=this['getUVByPoint'](_0x53e1ab,_0x4d0122),_0x3e25f4?(_0x2de222=_0x53e1ab+this['_calc_speedRate'][0x0]*_0x3e25f4[0x0],_0x4de6ee=_0x4d0122+this['_calc_speedRate'][0x1]*_0x3e25f4[0x1],_0x18c85f[_0x462cbc(0x399,0x336)]=_0x53e1ab,_0x18c85f['lat']=_0x4d0122,_0x18c85f['tlng']=_0x2de222,_0x18c85f[_0x462cbc(0x386,0x3eb)]=_0x4de6ee,_0x18c85f[_0x5ee52d(0xc6,0xe6)]=_0x3e25f4[0x2],_0x18c85f[_0x5ee52d(0x137,0xae)]--):_0x18c85f['age']=0x0;}}function _0x462cbc(_0xfb41df,_0x4aeeb7){return _0x3bbde2(_0x4aeeb7-0x3e1,_0xfb41df);}function _0x5ee52d(_0x36ca47,_0x37da65){return _0x3bbde2(_0x36ca47-0x145,_0x37da65);}return this['particles'];}[_0x2fa6f2(0x42b,0x4b9)](_0x909cdf){let _0x122759,_0x2f5bc9;for(let _0x35567f=0x0;_0x35567f<0x1e;_0x35567f++){_0x122759=this['getRandomLatLng'](),_0x2f5bc9=this['getUVByPoint'](_0x122759['lng'],_0x122759[_0x5ce1c3(0x43,-0x46)]);if(_0x2f5bc9&&_0x2f5bc9[0x2]>0x0)break;}if(!_0x2f5bc9)return _0x909cdf;const _0x598cf8=_0x122759['lng']+this['_calc_speedRate'][0x0]*_0x2f5bc9[0x0],_0x40dd0f=_0x122759['lat']+this['_calc_speedRate'][0x1]*_0x2f5bc9[0x1];_0x909cdf['lng']=_0x122759[_0x5ce1c3(-0x23,-0x68)],_0x909cdf['lat']=_0x122759['lat'];function _0x5ce1c3(_0x4545c8,_0x522c9e){return _0x2fa6f2(_0x4545c8,_0x522c9e- -0x4dd);}_0x909cdf['tlng']=_0x598cf8,_0x909cdf['tlat']=_0x40dd0f,_0x909cdf[_0x56a635(-0x169,-0x154)]=Math['round'](0xa+Math[_0x56a635(-0x21b,-0x206)]()*this['maxAge']);function _0x56a635(_0x4029a7,_0x133954){return _0x2fa6f2(_0x133954,_0x4029a7- -0x67b);}return _0x909cdf['speed']=_0x2f5bc9[0x2],_0x909cdf;}['destroy'](){for(const _0x465dcc in this){delete this[_0x465dcc];}}}function fRandomByfloat(_0x54147d,_0x4bb49d){return _0x54147d+Math['random']()*(_0x4bb49d-_0x54147d);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];function _0x3bbde2(_0x3199fa,_0x3e33a8){return _0x235d(_0x3199fa- -0x22c,_0x3e33a8);}class CanvasWindLayer extends BaseLayer{constructor(_0x15b681={}){super(_0x15b681);function _0x484e77(_0x27a8cd,_0x1ee17b){return _0x3bbde2(_0x1ee17b-0x4b7,_0x27a8cd);}this['_setOptionsHook'](_0x15b681);function _0x33ded4(_0x1ae720,_0x2d4e51){return _0x2fa6f2(_0x2d4e51,_0x1ae720- -0x5d7);}this['canvas']=null,_0x15b681['colors']&&_0x15b681[_0x33ded4(-0x12a,-0x1b5)]&&(this[_0x33ded4(-0xab,-0x5e)]=new mars3d__namespace['ColorRamp'](_0x15b681));}[_0x3bbde2(-0x10d,-0xe0)](_0x36c5ab,_0x214e2e){this[_0x3f2866(-0x158,-0xcb)]=0x3e8/(_0x36c5ab[_0x1f61ac(0x16a,0x120)]||0xa),this[_0x1f61ac(0xc0,0xed)]=this['options']['pointerEvents']??![];function _0x1f61ac(_0x5c1631,_0x5aa10e){return _0x3bbde2(_0x5aa10e-0x1da,_0x5c1631);}this[_0x1f61ac(0x1d7,0x1d9)]=_0x36c5ab[_0x3f2866(-0xd7,-0x146)]||'#ffffff',this['lineWidth']=_0x36c5ab[_0x3f2866(-0x12d,-0x171)]||0x1,this[_0x3f2866(-0x1b0,-0x120)]=_0x36c5ab['fixedHeight']??0x0;function _0x3f2866(_0xb459a5,_0xfb0e3a){return _0x3bbde2(_0xb459a5- -0xd6,_0xfb0e3a);}this['flipY']=_0x36c5ab['flipY']??![],this['windField']&&this[_0x1f61ac(0x143,0x10e)]['setOptions'](_0x36c5ab);}get['layer'](){return this['canvas'];}get['canvasWidth'](){function _0x1da540(_0x331b70,_0x261db5){return _0x3bbde2(_0x261db5-0x37,_0x331b70);}return this[_0x1da540(-0xc2,-0x4e)]['scene']['canvas']['clientWidth'];}get[_0x3bbde2(-0x93,-0x9e)](){function _0x390ce4(_0x1d4f62,_0x3da5dc){return _0x3bbde2(_0x3da5dc- -0x15a,_0x1d4f62);}function _0x151620(_0x4fd5fc,_0x30cb00){return _0x3bbde2(_0x30cb00- -0x63,_0x4fd5fc);}return this[_0x151620(-0xa0,-0xe8)]['scene'][_0x151620(-0x12c,-0xa4)][_0x390ce4(-0x285,-0x244)];}get[_0x3bbde2(-0xf9,-0x16e)](){return this['_pointerEvents'];}set['pointerEvents'](_0x5b64cd){this['_pointerEvents']=_0x5b64cd;function _0x17aa60(_0x54ed2e,_0x238b31){return _0x3bbde2(_0x54ed2e-0x8a,_0x238b31);}if(!this['canvas'])return;function _0x344a11(_0x4d51ab,_0x59cc9b){return _0x2fa6f2(_0x4d51ab,_0x59cc9b- -0x223);}_0x5b64cd?this[_0x344a11(0x2eb,0x2bc)]['style']['pointer-events']='all':this[_0x344a11(0x238,0x2bc)]['style'][_0x17aa60(0x2f,0x32)]=_0x17aa60(-0x5c,-0x20);}get['particlesNumber'](){function _0x176437(_0x5b7b46,_0x5b1f79){return _0x3bbde2(_0x5b7b46-0x5ae,_0x5b1f79);}function _0x3e0ea6(_0x31a3cb,_0x2f3fc6){return _0x2fa6f2(_0x2f3fc6,_0x31a3cb- -0x492);}return this[_0x3e0ea6(-0x77,-0xe6)][_0x176437(0x586,0x582)];}set['particlesNumber'](_0x31e6e2){function _0x325cce(_0x45c5bd,_0x314a4f){return _0x2fa6f2(_0x45c5bd,_0x314a4f-0xe2);}this['options'][_0x325cce(0x5fa,0x5da)]=_0x31e6e2,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x3bbde2(-0x7,-0x3c)](){return this['options']['speedRate'];}set[_0x2fa6f2(0x4f5,0x519)](_0x36bd13){function _0x3d3daa(_0x57234d,_0x82e4bf){return _0x3bbde2(_0x82e4bf-0x5f,_0x57234d);}function _0x29c84f(_0x5c14e3,_0x298b85){return _0x3bbde2(_0x298b85-0x42,_0x5c14e3);}this[_0x29c84f(-0x63,-0xc3)][_0x29c84f(0x51,0x3b)]=_0x36bd13,this[_0x29c84f(-0xb8,-0x8a)]&&(this[_0x29c84f(-0xdd,-0x8a)][_0x29c84f(-0x17,0x3b)]=_0x36bd13);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0xeb2bb4){this['options'][_0xe4ac2d(-0x11a,-0x128)]=_0xeb2bb4;function _0xe4ac2d(_0x2f0479,_0x45e10d){return _0x2fa6f2(_0x2f0479,_0x45e10d- -0x619);}function _0x5d98fc(_0x2876f6,_0x1b1889){return _0x2fa6f2(_0x2876f6,_0x1b1889- -0x37c);}this['windField']&&(this[_0x5d98fc(0xc8,0xd8)]['maxAge']=_0xeb2bb4);}get['data'](){return this['windData'];}set[_0x2fa6f2(0x503,0x4b4)](_0x1a9b48){function _0x4bba46(_0x1e2fa1,_0x312d57){return _0x2fa6f2(_0x1e2fa1,_0x312d57- -0x4f7);}this[_0x4bba46(0x3f,-0x23)](_0x1a9b48);}get['rectangle'](){let _0x1ef808=this['windData'][_0x4aacd8(-0x7f,-0xa2)];function _0x399104(_0x1c9c50,_0x353e5a){return _0x2fa6f2(_0x1c9c50,_0x353e5a- -0x5a9);}let _0x33abe1=this['windData']['xmax'],_0x3c2995=this['windData']['ymin'],_0x4f1e99=this[_0x4aacd8(-0x3,-0x7f)]['ymax'];_0x33abe1>=0x167&&_0x1ef808===0x0&&(_0x1ef808=-0xb4,_0x33abe1=0xb4);_0x1ef808=Math[_0x4aacd8(-0x171,-0x12d)](_0x1ef808,-0xb4),_0x33abe1=Math['min'](_0x33abe1,0xb4),_0x3c2995=Math['max'](_0x3c2995,-0x5a),_0x4f1e99=Math['min'](_0x4f1e99,0x5a);function _0x4aacd8(_0x451ef1,_0xe6750d){return _0x2fa6f2(_0x451ef1,_0xe6750d- -0x59d);}return Cesium['Rectangle']['fromDegrees'](_0x1ef808,_0x3c2995,_0x33abe1,_0x4f1e99);}[_0x3bbde2(-0x79,-0x97)](_0x2ea982){function _0x4f8d95(_0x188b25,_0x22d8d6){return _0x2fa6f2(_0x22d8d6,_0x188b25- -0x21d);}function _0x2f7437(_0x862664,_0x5be305){return _0x2fa6f2(_0x862664,_0x5be305- -0x225);}_0x2ea982?this[_0x2f7437(0x308,0x2a5)]():(this[_0x4f8d95(0x301,0x332)]&&(this['options'][_0x2f7437(0x27d,0x28f)]=this['windData']),this['_removedHook']());}[_0x3bbde2(-0xc8,-0x3d)](){function _0x21b991(_0x3a8d08,_0x325b27){return _0x2fa6f2(_0x3a8d08,_0x325b27- -0x65d);}this[_0x21b991(-0x217,-0x242)]['worker']?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}[_0x3bbde2(-0x56,-0x79)](){this[_0x22564f(0x1e9,0x160)]=this['_createCanvas']();const _0xd91a3c={};_0xd91a3c['willReadFrequently']=!![];function _0x4ba086(_0x1b9a2a,_0x5c370a){return _0x3bbde2(_0x5c370a-0x258,_0x1b9a2a);}this['canvasContext']=this['canvas'][_0x4ba086(0x203,0x222)]('2d',_0xd91a3c);function _0x22564f(_0x348579,_0x533333){return _0x2fa6f2(_0x533333,_0x348579- -0x2f6);}this['bindEvent'](),this[_0x22564f(0x125,0x108)]['data']&&this[_0x4ba086(0x1f3,0x20c)](this[_0x4ba086(0x14e,0x153)][_0x22564f(0x1be,0x157)]);}['_removedHook'](){this[_0x1b6970(0xb3,0xde)]();function _0x502c70(_0x51f794,_0x4e7804){return _0x2fa6f2(_0x4e7804,_0x51f794- -0x7);}this['unbindEvent']();function _0x1b6970(_0x19dc56,_0x325063){return _0x2fa6f2(_0x325063,_0x19dc56- -0x3cf);}this['canvas']&&(this[_0x1b6970(0xcc,0xf8)][_0x502c70(0x504,0x564)]['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x4447a7=mars3d__namespace['DomUtil']['create'](_0x13d500(0x3fc,0x443),'mars3d-canvasWind',this[_0x353163(0x7,0x8f)][_0x353163(0x11e,0xff)]);_0x4447a7[_0x353163(0xbf,0xe8)][_0x353163(0xc8,0xd8)]=_0x13d500(0x336,0x317),_0x4447a7['style']['top']='0px',_0x4447a7[_0x13d500(0x411,0x482)]['left']=_0x353163(0x117,0x91);function _0x353163(_0x35aca4,_0x8578fd){return _0x2fa6f2(_0x35aca4,_0x8578fd- -0x40c);}function _0x13d500(_0x3bb807,_0x525f07){return _0x3bbde2(_0x3bb807-0x43d,_0x525f07);}return _0x4447a7['style']['width']=this['_map'][_0x353163(0x26,0x71)][_0x353163(0x14e,0xd3)][_0x353163(0x82,0xf0)]+'px',_0x4447a7['style']['height']=this['_map']['scene']['canvas']['clientHeight']+'px',_0x4447a7['style']['pointerEvents']=this['_pointerEvents']?'auto':'none',_0x4447a7[_0x13d500(0x411,0x3c2)]['zIndex']=this['options'][_0x13d500(0x43f,0x3e8)]??0x9,_0x4447a7[_0x13d500(0x36e,0x2e4)]=this[_0x13d500(0x3b8,0x43b)]['scene']['canvas'][_0x13d500(0x419,0x446)],_0x4447a7['height']=this[_0x13d500(0x3b8,0x3c7)]['scene']['canvas']['clientHeight'],_0x4447a7;}['resize'](){function _0x463650(_0x52e291,_0x4e138b){return _0x2fa6f2(_0x52e291,_0x4e138b-0xc8);}function _0x18dfa7(_0x56070f,_0x239a90){return _0x3bbde2(_0x239a90-0x3c7,_0x56070f);}this[_0x18dfa7(0x33e,0x386)]&&(this[_0x463650(0x5e0,0x5a7)]['style'][_0x463650(0x4a4,0x519)]=this['_map']['scene'][_0x18dfa7(0x372,0x386)][_0x18dfa7(0x3b4,0x3a3)]+'px',this[_0x463650(0x62f,0x5a7)]['style'][_0x18dfa7(0x37a,0x392)]=this[_0x463650(0x56b,0x563)]['scene']['canvas']['clientHeight']+'px',this[_0x18dfa7(0x32d,0x386)]['width']=this[_0x18dfa7(0x3ab,0x342)][_0x463650(0x58b,0x545)]['canvas'][_0x463650(0x53b,0x5c4)],this['canvas']['height']=this['_map']['scene']['canvas']['clientHeight']);}['bindEvent'](){const _0x583a31=this;let _0x66eee6=Date['now']();(function _0x460e53(){if(_0x583a31[_0x524e85(0x3ee,0x419)])return;function _0x524e85(_0x288545,_0x138339){return _0x235d(_0x138339-0x2c5,_0x288545);}function _0x24cb03(_0x581f5a,_0x212ba8){return _0x235d(_0x212ba8- -0xd2,_0x581f5a);}_0x583a31['_animateFrame']=window['requestAnimationFrame'](_0x460e53);if(_0x583a31[_0x24cb03(0x36,0x98)]&&_0x583a31['windField']){const _0x47ca86=Date['now'](),_0x1425ee=_0x47ca86-_0x66eee6;_0x1425ee>_0x583a31[_0x524e85(0x4f4,0x46f)]&&(_0x66eee6=_0x47ca86-_0x1425ee%_0x583a31[_0x524e85(0x44c,0x46f)],_0x583a31[_0x524e85(0x49a,0x470)]());}}(),window[_0x359d82(0x144,0x19a)](_0x5e388e(-0xc,-0x64),this[_0x5e388e(-0xc,0x15)][_0x359d82(0x10e,0xef)](this),![]),this['mouse_down']=![],this[_0x359d82(0xf2,0x86)]=![]);function _0x5e388e(_0xea1eeb,_0x194c48){return _0x2fa6f2(_0x194c48,_0xea1eeb- -0x44b);}function _0x359d82(_0x3c11f8,_0x3505fd){return _0x3bbde2(_0x3c11f8-0x186,_0x3505fd);}this['options']['mouseHidden']&&(this[_0x5e388e(0x50,0x21)]['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x5e388e(0x50,0x1e)]['on'](mars3d__namespace[_0x5e388e(0x77,0x5c)]['mouseDown'],this[_0x5e388e(-0x1f,0x42)],this),this['_map']['on'](mars3d__namespace[_0x5e388e(0x77,0x8f)]['mouseUp'],this[_0x5e388e(-0xb,-0x31)],this));}['unbindEvent'](){window['cancelAnimationFrame'](this[_0x102884(0x1a,-0x3f)]),delete this['_animateFrame'];function _0x2ffe73(_0x10fc62,_0x3d68e9){return _0x2fa6f2(_0x3d68e9,_0x10fc62- -0x3e6);}window['removeEventListener'](_0x2ffe73(0x59,0x2d),this['resize']);function _0x102884(_0x3c34ff,_0x18c036){return _0x2fa6f2(_0x3c34ff,_0x18c036- -0x559);}this[_0x2ffe73(0x35,0x12)]['mouseHidden']&&(this[_0x102884(-0x4a,-0xbe)]['off'](mars3d__namespace['EventType'][_0x102884(-0xdf,-0x8c)],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x2ffe73(0x2b,0x88)](mars3d__namespace['EventType'][_0x102884(0x29,-0x33)],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x102884(-0x16f,-0x122)],this));}['_onMapWhellEvent'](_0x32af9d){function _0x4096bf(_0x30e39a,_0x156d21){return _0x2fa6f2(_0x156d21,_0x30e39a- -0x1ba);}clearTimeout(this['refreshTimer']);function _0x5f5038(_0x24d8cf,_0x520bcb){return _0x2fa6f2(_0x24d8cf,_0x520bcb- -0x220);}if(!this['show']||!this[_0x4096bf(0x325,0x306)])return;this[_0x4096bf(0x325,0x37b)]['style']['visibility']=_0x5f5038(0x2cd,0x26a),this['refreshTimer']=setTimeout(()=>{function _0x505a09(_0x29cabb,_0x1252f2){return _0x4096bf(_0x1252f2-0x19c,_0x29cabb);}function _0x1f4a4e(_0x13164c,_0x1d07d7){return _0x4096bf(_0x13164c- -0x89,_0x1d07d7);}if(!this['show'])return;this[_0x1f4a4e(0x216,0x1b7)](),this['canvas'][_0x1f4a4e(0x2b1,0x2a5)][_0x1f4a4e(0x207,0x1f4)]=_0x1f4a4e(0x274,0x2f6);},0xc8);}[_0x2fa6f2(0x3d1,0x42c)](_0x110161){this['mouse_down']=!![];function _0x55bb94(_0x1bc0cd,_0x4de018){return _0x2fa6f2(_0x4de018,_0x1bc0cd- -0x655);}function _0x3299d8(_0x2d41a5,_0xb892fa){return _0x2fa6f2(_0xb892fa,_0x2d41a5- -0x5e3);}this['_map'][_0x3299d8(-0x1d2,-0x1b2)](mars3d__namespace['EventType'][_0x55bb94(-0x1f6,-0x23e)],this[_0x55bb94(-0x21e,-0x23d)],this),this['_map']['on'](mars3d__namespace[_0x55bb94(-0x193,-0x224)]['mouseMove'],this[_0x3299d8(-0x1ac,-0x1c8)],this);}[_0x2fa6f2(0x485,0x437)](_0x432b7b){function _0x333f11(_0x59e1ae,_0x1f0751){return _0x3bbde2(_0x59e1ae-0x4f1,_0x1f0751);}function _0x58a998(_0x2cd873,_0x139f69){return _0x3bbde2(_0x2cd873-0x3a5,_0x139f69);}if(!this['show']||!this[_0x333f11(0x4b0,0x51f)])return;this['mouse_down']&&(this[_0x333f11(0x4b0,0x43f)]['style'][_0x333f11(0x41b,0x393)]='hidden',this['mouse_move']=!![]);}[_0x2fa6f2(0x401,0x440)](_0x272e98){if(!this['show']||!this[_0x4043e3(-0xd3,-0x107)])return;this['_map'][_0x9a8a02(-0x1aa,-0x13d)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this[_0x9a8a02(-0x12f,-0xf4)]&&this[_0x9a8a02(-0x162,-0x1b4)]();this['canvas']['style'][_0x9a8a02(-0x171,-0x1b2)]=_0x4043e3(-0x11d,-0x12f),this['mouse_down']=![];function _0x4043e3(_0x11e900,_0x115f57){return _0x2fa6f2(_0x11e900,_0x115f57- -0x5e6);}function _0x9a8a02(_0x2df875,_0x26e941){return _0x2fa6f2(_0x26e941,_0x2df875- -0x5bb);}this[_0x4043e3(-0x181,-0x15a)]=![];}['setData'](_0x248919){function _0x535724(_0x48298f,_0x111c1f){return _0x2fa6f2(_0x48298f,_0x111c1f- -0xf9);}this[_0x535724(0x305,0x389)](),this['windData']=_0x248919;function _0x97fb88(_0x232ae6,_0x253885){return _0x2fa6f2(_0x232ae6,_0x253885- -0x60);}this[_0x535724(0x36e,0x35b)]['setDate'](_0x248919),this[_0x535724(0x33d,0x360)]();}['redraw'](){if(!this['show'])return;this['windField'][_0x1be436(0x11c,0xd3)](this['options']);function _0x1be436(_0xa400da,_0x2e5f65){return _0x2fa6f2(_0xa400da,_0x2e5f65- -0x37a);}this['update']();}['update'](){if(this[_0x533487(0x34b,0x34b)])return;function _0x533487(_0x50426e,_0x550964){return _0x3bbde2(_0x550964-0x354,_0x50426e);}this['_updateIng']=!![];if(this[_0x533487(0x320,0x35d)])this['windField']['update']();else{const _0x261352=this['windField'][_0x410d1e(0x7b,0x7c)]();this[_0x533487(0x38d,0x300)](_0x261352);}function _0x410d1e(_0x3fc0c9,_0x357ac6){return _0x3bbde2(_0x3fc0c9-0x91,_0x357ac6);}this['_updateIng']=![];}[_0x2fa6f2(0x4d9,0x4cc)](_0x32673f){function _0x526c46(_0x19f8e6,_0x48211b){return _0x2fa6f2(_0x19f8e6,_0x48211b- -0x463);}this['_canvasParticles']=_0x32673f,this['canvasContext'][_0x73a424(-0x1a8,-0x229)]='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this[_0x526c46(-0x76,-0x36)],this['canvasHeight']);function _0x73a424(_0x101edf,_0x3ec931){return _0x2fa6f2(_0x3ec931,_0x101edf- -0x5bf);}this['canvasContext']['globalCompositeOperation']=_0x73a424(-0x169,-0x185),this['canvasContext'][_0x73a424(-0xc8,-0x67)]=0.9;const _0x2ea24a=this['_map']['scene'][_0x526c46(0xac,0x32)]!==Cesium[_0x73a424(-0xef,-0x7b)][_0x73a424(-0x92,-0xf1)],_0x421b17=this['canvasWidth']*0.25;if(this[_0x526c46(0xb8,0xc9)])for(let _0x2883f0=0x0,_0x40caeb=_0x32673f['length'];_0x2883f0<_0x40caeb;_0x2883f0++){const _0x58b599=_0x32673f[_0x2883f0],_0x45c663=this[_0x526c46(-0x1c,0x70)](_0x58b599,_0x58b599['lng'],_0x58b599[_0x526c46(0x12,0x34)],_0x58b599['alt']),_0x1db50a=this[_0x526c46(0x2e,0x70)](_0x58b599,_0x58b599['tlng'],_0x58b599['tlat'],_0x58b599[_0x73a424(-0x19b,-0x1aa)]);if(!_0x45c663||!_0x1db50a)continue;if(_0x2ea24a&&Math[_0x526c46(0x89,0x80)](_0x45c663[0x0]-_0x1db50a[0x0])>=_0x421b17)continue;this['canvasContext']['beginPath'](),this[_0x526c46(-0x8f,-0x2)][_0x73a424(-0xf6,-0x170)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x526c46(0x80,0xc9)]['getColor'](_0x58b599[_0x526c46(-0x1a,0x3e)]),this['canvasContext']['moveTo'](_0x45c663[0x0],_0x45c663[0x1]),this['canvasContext'][_0x526c46(0x40,0x5d)](_0x1db50a[0x0],_0x1db50a[0x1]),this[_0x73a424(-0x15e,-0x142)]['stroke']();}else{this['canvasContext'][_0x73a424(-0x14d,-0x1a6)](),this[_0x526c46(0x14,-0x2)]['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this['color'];for(let _0x322f71=0x0,_0x420825=_0x32673f[_0x73a424(-0x14e,-0x181)];_0x322f71<_0x420825;_0x322f71++){const _0x307f54=_0x32673f[_0x322f71],_0x2930b7=this['_tomap'](_0x307f54,_0x307f54[_0x73a424(-0x14a,-0x16f)],_0x307f54['lat'],_0x307f54['alt']),_0x4d5cb6=this['_tomap'](_0x307f54,_0x307f54[_0x526c46(0x100,0xa3)],_0x307f54[_0x73a424(-0x95,-0xbc)],_0x307f54['talt']);if(!_0x2930b7||!_0x4d5cb6)continue;if(_0x2ea24a&&Math['abs'](_0x2930b7[0x0]-_0x4d5cb6[0x0])>=_0x421b17)continue;this['canvasContext'][_0x73a424(-0xdf,-0xe2)](_0x2930b7[0x0],_0x2930b7[0x1]),this['canvasContext']['lineTo'](_0x4d5cb6[0x0],_0x4d5cb6[0x1]);}this['canvasContext'][_0x526c46(0xa9,0x6e)]();}}['_tomap'](_0x370c43,_0x5240e0,_0x181ac3,_0x2228f5){const _0x2a68c6=Cesium['Cartesian3'][_0x44869c(0x4a1,0x4a8)](_0x5240e0,_0x181ac3,_0x2228f5??this['fixedHeight']),_0x52e0cb=this['_map']['scene'];if(_0x52e0cb[_0x44869c(0x4af,0x4fc)]===Cesium['SceneMode'][_0x1346e2(0x461,0x4a2)]){const _0x1fcd1b=new Cesium[(_0x1346e2(0x41a,0x43c))](_0x52e0cb[_0x1346e2(0x403,0x3cf)]['ellipsoid'],_0x52e0cb[_0x44869c(0x46c,0x406)][_0x44869c(0x541,0x501)]),_0x3ec721=_0x1fcd1b['isPointVisible'](_0x2a68c6);if(!_0x3ec721)return _0x370c43['age']=0x0,null;}function _0x1346e2(_0x3859ad,_0x2757b2){return _0x2fa6f2(_0x2757b2,_0x3859ad- -0xcc);}function _0x44869c(_0x3906df,_0xf2bcfd){return _0x3bbde2(_0x3906df-0x53a,_0xf2bcfd);}const _0x4338b0=mars3d__namespace['PointTrans']['toWindowCoordinates'](this[_0x1346e2(0x3cf,0x3df)]['scene'],_0x2a68c6);return _0x4338b0?[_0x4338b0['x'],_0x4338b0['y']]:null;}['clear'](){function _0x27980c(_0x102a6,_0x4ab7e4){return _0x3bbde2(_0x102a6-0x2a0,_0x4ab7e4);}function _0x2b370a(_0x3a8b6c,_0x4ae8f1){return _0x3bbde2(_0x4ae8f1-0x16f,_0x3a8b6c);}this[_0x27980c(0x1d4,0x256)]['clear'](),delete this[_0x27980c(0x29e,0x27e)];}[_0x3bbde2(-0xde,-0x103)](){this['worker']=new Worker(this['options']['worker']);function _0x801f3(_0x4db490,_0x2789f0){return _0x3bbde2(_0x4db490- -0x12f,_0x2789f0);}this['worker'][_0x801f3(-0x1e8,-0x226)]=_0x30f2c7=>{this[_0x4a962a(-0x8e,-0xfa)](_0x30f2c7[_0x3160e3(-0xb1,-0x70)]['particles']);function _0x4a962a(_0x4908a5,_0x5b00b4){return _0x801f3(_0x4908a5-0xf5,_0x5b00b4);}function _0x3160e3(_0x255b63,_0x5e3673){return _0x801f3(_0x5e3673-0x12b,_0x255b63);}this[_0x3160e3(-0xbc,-0x52)]=![];};function _0xc05c9e(_0xea56ef,_0x4042df){return _0x3bbde2(_0x4042df- -0x89,_0xea56ef);}this[_0x801f3(-0x1fb,-0x244)]={'init':_0x38b87a=>{const _0x31b880={};_0x31b880[_0x3242e1(0x3f6,0x465)]=_0x6b52e4(-0x6e,0xa);function _0x3242e1(_0x30ec8a,_0x2afc11){return _0x801f3(_0x2afc11-0x5da,_0x30ec8a);}function _0x6b52e4(_0x579ff8,_0x2b05d0){return _0x801f3(_0x2b05d0-0x151,_0x579ff8);}_0x31b880['options']=_0x38b87a,this['worker'][_0x3242e1(0x487,0x451)](_0x31b880);},'setOptions':_0x4bf2c3=>{function _0x3b9e8c(_0x2e572e,_0x52a2c0){return _0x801f3(_0x52a2c0-0x601,_0x2e572e);}const _0x71a12={};function _0x1a0b5f(_0x35b455,_0x52ab84){return _0xc05c9e(_0x35b455,_0x52ab84- -0x85);}_0x71a12['type']=_0x1a0b5f(-0x1d4,-0x1e1),_0x71a12[_0x1a0b5f(-0x29d,-0x213)]=_0x4bf2c3,this[_0x3b9e8c(0x4bd,0x4db)]['postMessage'](_0x71a12);},'setDate':_0x11a987=>{const _0x5a27bf={};_0x5a27bf['type']=_0x17c0bd(-0xac,-0x137);function _0x17c0bd(_0x51f71f,_0x46430b){return _0xc05c9e(_0x51f71f,_0x46430b- -0x84);}_0x5a27bf['data']=_0x11a987;function _0x41394f(_0xfb1a7f,_0x5aad91){return _0x801f3(_0x5aad91-0x5c6,_0xfb1a7f);}this[_0x17c0bd(-0x143,-0x104)][_0x17c0bd(-0x13a,-0x167)](_0x5a27bf);},'update':()=>{if(this[_0x25f095(-0x43,0x21)])return;function _0x25f095(_0x39a3b6,_0x5a3ef9){return _0xc05c9e(_0x39a3b6,_0x5a3ef9-0xf8);}this[_0xeb8a66(0x314,0x350)]=!![];const _0x3bd5a6={};function _0xeb8a66(_0x35ca92,_0x4a3ea0){return _0xc05c9e(_0x35ca92,_0x4a3ea0-0x427);}_0x3bd5a6['type']='update',this['worker'][_0x25f095(-0x6d,0x15)](_0x3bd5a6);},'clear':()=>{function _0x20eef5(_0x412ab2,_0x3a3d5c){return _0xc05c9e(_0x3a3d5c,_0x412ab2-0x3d3);}const _0x2123fd={};_0x2123fd['type']='clear',this[_0x20eef5(0x353,0x32f)]['postMessage'](_0x2123fd);}},this['windField']['init'](this['options']);}}mars3d__namespace[_0x3bbde2(0x0,-0x2)]['register'](_0x3bbde2(-0x65,-0x34),CanvasWindLayer),mars3d__namespace[_0x3bbde2(-0x4,0x18)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x3bbde2(-0xdf,-0x112)]=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x2fa6f2(0x4ef,0x513)]=WindLayer;function _0x2fa6f2(_0x3829e1,_0x369b3b){return _0x235d(_0x369b3b-0x2f4,_0x3829e1);}exports['WindUtil']=WindUtil;const _0x40f1a4={};_0x40f1a4['value']=!![],Object[_0x2fa6f2(0x4eb,0x4ac)](exports,_0x2fa6f2(0x58b,0x505),_0x40f1a4);
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.9.
|
|
3
|
+
"version": "3.9.2",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.9.
|
|
8
|
+
"mars3d": "~3.9.2"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|