mars3d-wind 3.9.1 → 3.9.3
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/README.md +2 -2
- package/mars3d-wind.js +3 -3
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -30,10 +30,10 @@ Mars3D平台插件, 支持气象 风向图 功能插件
|
|
|
30
30
|
使用 Node 环境下的现代 web 前端技术栈时,可以使用 npm 或 cnpm 或 yarn 等方式来安装 mars3d 插件包
|
|
31
31
|
|
|
32
32
|
```sh
|
|
33
|
-
//安装mars3d主库
|
|
33
|
+
//安装mars3d主库(如果已安装请忽略)
|
|
34
34
|
npm install mars3d --save
|
|
35
35
|
|
|
36
|
-
//安装mars3d
|
|
36
|
+
//安装mars3d插件
|
|
37
37
|
npm install mars3d-wind --save
|
|
38
38
|
```
|
|
39
39
|
|
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.3
|
|
5
|
+
* 编译日期:2025-03-18 22:03
|
|
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(_0x142c7c,_0x290267){const _0x17b1cd=_0x142c7c();function _0x39c6aa(_0x346c4a,_0x483e10){return _0x485d(_0x483e10-0x245,_0x346c4a);}function _0x529204(_0x5e5c61,_0xe0c95d){return _0x485d(_0xe0c95d-0x279,_0x5e5c61);}while(!![]){try{const _0x37abde=parseInt(_0x39c6aa(0x47d,0x433))/0x1*(parseInt(_0x39c6aa(0x4c0,0x48a))/0x2)+-parseInt(_0x529204(0x455,0x4a1))/0x3+parseInt(_0x39c6aa(0x3de,0x410))/0x4*(-parseInt(_0x39c6aa(0x35d,0x3b7))/0x5)+parseInt(_0x39c6aa(0x46d,0x486))/0x6*(parseInt(_0x39c6aa(0x395,0x3c8))/0x7)+parseInt(_0x39c6aa(0x32c,0x397))/0x8*(-parseInt(_0x529204(0x502,0x49f))/0x9)+-parseInt(_0x39c6aa(0x4fd,0x493))/0xa+parseInt(_0x39c6aa(0x478,0x49f))/0xb;if(_0x37abde===_0x290267)break;else _0x17b1cd['push'](_0x17b1cd['shift']());}catch(_0xf49031){_0x17b1cd['push'](_0x17b1cd['shift']());}}}(_0x566e,0xcad7e));function _0x485d(_0x3c23be,_0x3b48b4){const _0x566e7d=_0x566e();return _0x485d=function(_0x485d5c,_0x5d86e1){_0x485d5c=_0x485d5c-0x14f;let _0x231428=_0x566e7d[_0x485d5c];return _0x231428;},_0x485d(_0x3c23be,_0x3b48b4);}function _interopNamespace(_0x2127ab){if(_0x2127ab&&_0x2127ab['__esModule'])return _0x2127ab;function _0x32ef60(_0x483223,_0x8ad591){return _0x485d(_0x8ad591-0x1d4,_0x483223);}var _0x2e33e9=Object['create'](null);function _0xb89797(_0x41db65,_0x550d58){return _0x485d(_0x41db65-0x72,_0x550d58);}return _0x2127ab&&Object[_0xb89797(0x1f0,0x1b1)](_0x2127ab)['forEach'](function(_0xac0941){function _0x1acc18(_0x29f1be,_0x5780f8){return _0xb89797(_0x29f1be- -0x42a,_0x5780f8);}function _0x15c309(_0x307ac1,_0x152c46){return _0xb89797(_0x307ac1- -0x106,_0x152c46);}if(_0xac0941!=='default'){var _0x713119=Object[_0x15c309(0x109,0x12a)](_0x2127ab,_0xac0941);Object[_0x15c309(0x11d,0xe5)](_0x2e33e9,_0xac0941,_0x713119['get']?_0x713119:{'enumerable':!![],'get':function(){return _0x2127ab[_0xac0941];}});}}),_0x2e33e9[_0xb89797(0x2af,0x298)]=_0x2127ab,_0x2e33e9;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function _0xc18867(_0x2d3e44,_0x32bb5f){return _0x485d(_0x2d3e44-0x360,_0x32bb5f);}function getU(_0x1dff37,_0x4ae83f){const _0x3f9518=_0x1dff37*Math[_0x11d9f8(0x3cc,0x41f)](Cesium$2[_0x11d9f8(0x465,0x475)]['toRadians'](_0x4ae83f));function _0x11d9f8(_0x3e44c2,_0x3c8fbb){return _0x485d(_0x3c8fbb-0x24b,_0x3e44c2);}function _0x2df505(_0x1f1f56,_0x4cbf76){return _0x485d(_0x1f1f56-0x2cc,_0x4cbf76);}return _0x3f9518;}function getV(_0x3a32f8,_0x54ee45){function _0x3543c8(_0x5652d9,_0x579415){return _0x485d(_0x579415-0x28f,_0x5652d9);}const _0x5da9bb=_0x3a32f8*Math[_0x493aca(0x65,0x43)](Cesium$2[_0x3543c8(0x4de,0x4b9)][_0x3543c8(0x49b,0x482)](_0x54ee45));function _0x493aca(_0x31982c,_0x34af75){return _0x485d(_0x34af75- -0x164,_0x31982c);}return _0x5da9bb;}function getSpeed(_0x99afe9,_0x1c0d0c){function _0x1108ab(_0x5c0c32,_0x5708e6){return _0x485d(_0x5708e6- -0x186,_0x5c0c32);}const _0x4d12f2=Math[_0x1108ab(0x1,0x7c)](Math['pow'](_0x99afe9,0x2)+Math['pow'](_0x1c0d0c,0x2));return _0x4d12f2;}function getDirection(_0xea3cda,_0xd04b9a){function _0x46200d(_0x5ad0da,_0x171552){return _0x485d(_0x171552- -0x2ed,_0x5ad0da);}let _0x3892f9=Cesium$2['Math'][_0x46200d(-0xdd,-0xf8)](Math['atan2'](_0xd04b9a,_0xea3cda));return _0x3892f9+=_0x3892f9<0x0?0x168:0x0,_0x3892f9;}const _0x1fecf5={};_0x1fecf5['__proto__']=null,_0x1fecf5['getU']=getU,_0x1fecf5['getV']=getV,_0x1fecf5[_0xc18867(0x557,0x55e)]=getSpeed,_0x1fecf5['getDirection']=getDirection;var WindUtil=_0x1fecf5,updatePositionShader=_0xc18867(0x59e,0x5cc),calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader=_0x1e8311(0x1a9,0x22d),renderParticlesVertexShader=_0xc18867(0x506,0x53e);function _0x566e(){const _0x544dd3=['getDataAtLonLat','_speedRate','defineProperty','postProcessingPosition','dynamic','tlng','clientHeight','abs','lng','_pointerEvents','computing','geometry','createParticlesTextures','unbindEvent','worker','ymin','strokeStyle','vdata','destroyParticlesTextures','floor','colors','now','fragmentShaderSource','onmessage','object','cols','cancelAnimationFrame','update','8pYuBbN','primitives','Cartesian2','warn','particles','destination-in','rectangle','lonRange','positionWC','cos','dropRate','latRange','preExecute','vertexArray','rows','_randomParticle','type','_updateIng','EllipsoidalOccluder','layer','windField','#ffffff','globe','pointer-events','attributeLocations','bounds','max','reCreateWindTextures','requestRender','WindLayer','interpolated','getUVByXY','particlesSpeed','pixelSize','onParticlesTextureSizeChange','1ffrRgI','setGeometry','getColor','windTextures','scene','toRadians','destroy','toDegrees','stroke','getSpeed','lineWidth','EventType','processWindData','mouse_down','_onMouseMoveEvent','LINEAR','minificationFilter','initWorker','blue','Draw','sqrt','drawingBufferWidth','segmentsColor','_updateIng2','_map','show','lineLength','width','currentParticlesPosition','rendering','getPrimitives','west','_setOptionsHook','quietPeriod','updatePosition','ONE_MINUS_SRC_ALPHA','particleSystem','xmax','udata','mode','changeOptions','RGBA','createWindTextures','east','min\x20is\x20undefined,\x20calculate\x20min','camera','createSegmentsGeometry','outputTexture','createRawRenderState','framebuffers','canvasWind','owner','getUVByPoint','stringify','addEventListener','commandToExecute','344349KWTxNt','_colorRamp','1717023SHaOQk','windData','Math','off','useViewerBounds','xmin','isDynamic','context','frameTime','uniformMap','isPointVisible','length','mouseMove','getSegmentDrawVertexShader','commandType','lastFramesPerSecond','globalAlpha','ymax','register','execute','visible','default','#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','commandList','isDestroy','554502qpiFxP','Cesium','ellipsoid','height','3319726DeZWne','speedFactor','values','CanvasWindField','updateViewerParameters','_mountedHook','drawingBufferHeight','style','_canvasParticles','252840CJGPbF','prototype','forEach','mouse_move','longitude','frameRateMonitor','_calcUV','initFrameRate','requestAnimationFrame','FLOAT','age','WindUtil','305096xeMnTc','lat','push','getCalculateSpeedShader','_animateFrame','north','DEPTH_COMPONENT','CanvasWindLayer','particlesTextures','_bilinearInterpolation','216zHvufk','speed','color','grid','canvas','blendFuncDestination','sources','SCENE3D','speedRate','primitiveType','createColorTableTexture','options','position','steps','changed','vertexShaderSource','clear','bindEvent','beginPath','particlesNumber','particlesTextureSize','OPAQUE','talt','refreshTimer','resize','previousParticlesPosition','updateOptions','flipY','calculateSpeed','canvasContext','_tomap','getSegmentDrawFragmentShader','1992925JVrWGl','#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','segments','fixedHeight','blendFuncSource','south','canvasWidth','tlat','data','clearCommand','hidden','slice','keys','viewerParameters','STATIC_DRAW','visibility','_onMouseUpEvent','119HaLeMJ','dropRateBump','_maxAge','removeEventListener','array','add','_addedHook','frameRateAdjustment','Unknown\x20command\x20type','pointerEvents','textures','frameState.commandList\x20is\x20undefined','NEAREST','log','lighter','_calc_speedRate','bind','magnificationFilter','autoClear','toGridXY','pixelDatatype','_removedHook','getRandomLatLng','rawRenderState','postMessage','maxAge','getOwnPropertyDescriptor','top','redraw','colorTable','min','percentageChanged','fromCssColorString','SRC_ALPHA','CLAMP_TO_EDGE','#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','sin','0px','original','fromDegrees','lineTo','mouseHidden','setData','clientWidth'];_0x566e=function(){return _0x544dd3;};return _0x566e();}const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];function _0x1e8311(_0x2b22c1,_0x50b243){return _0x485d(_0x2b22c1-0x36,_0x50b243);}class ShaderManager{static[_0x1e8311(0x293,0x218)](){const _0x26e817={};return _0x26e817['sources']=[calculateSpeedShader],new ShaderSource$1(_0x26e817);}static['getUpdatePositionShader'](){const _0x122cad={};_0x122cad[_0x55c186(0x20d,0x1ce)]=[updatePositionShader];function _0x55c186(_0x49e622,_0x200e44){return _0x1e8311(_0x49e622-0x7f,_0x200e44);}return new ShaderSource$1(_0x122cad);}static['getSegmentDrawVertexShader'](){const _0x3fb968={};_0x3fb968[_0x4aecef(0x31c,0x368)]=[renderParticlesVertexShader];function _0x4aecef(_0x31532b,_0x4cc537){return _0xc18867(_0x4cc537- -0x150,_0x31532b);}return new ShaderSource$1(_0x3fb968);}static[_0xc18867(0x4d1,0x4dc)](){const _0x434197={};_0x434197[_0x1584ff(0x557,0x4e9)]=[renderParticlesFragmentShader];function _0x1584ff(_0x3a05a,_0x484825){return _0xc18867(_0x484825-0x31,_0x3a05a);}return new ShaderSource$1(_0x434197);}static['getPostProcessingPositionShader'](){const _0x5be0fc={};return _0x5be0fc['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x5be0fc);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x125c22){this[_0x4a32f9(0x378,0x37d)]=_0x125c22['commandType'],this[_0x3dad75(0x2cc,0x281)]=_0x125c22[_0x4a32f9(0x35c,0x301)];function _0x4a32f9(_0x5e18e7,_0x132827){return _0xc18867(_0x132827- -0x219,_0x5e18e7);}function _0x3dad75(_0x33d782,_0x239606){return _0x1e8311(_0x239606-0x91,_0x33d782);}this['attributeLocations']=_0x125c22['attributeLocations'],this['primitiveType']=_0x125c22[_0x4a32f9(0x2ff,0x2a2)],this['uniformMap']=_0x125c22['uniformMap']||{},this[_0x4a32f9(0x25a,0x2a8)]=_0x125c22[_0x4a32f9(0x26d,0x2a8)],this[_0x3dad75(0x24d,0x28c)]=_0x125c22[_0x4a32f9(0x368,0x30c)],this['rawRenderState']=_0x125c22['rawRenderState'],this['framebuffer']=_0x125c22['framebuffer'],this[_0x4a32f9(0x308,0x364)]=_0x125c22['outputTexture'],this[_0x3dad75(0x2ba,0x25c)]=_0x125c22[_0x4a32f9(0x254,0x2dc)]??![],this['preExecute']=_0x125c22['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x125c22['isDynamic']??(()=>!![]),this['autoClear']&&(this[_0x4a32f9(0x252,0x2c2)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0x4a32f9(0x24a,0x2ae)]}));}['createCommand'](_0x2dab8b){function _0x2c4223(_0x170789,_0x4f5820){return _0x1e8311(_0x4f5820- -0x3cc,_0x170789);}function _0x5e1a65(_0x30a588,_0x4b5588){return _0x1e8311(_0x30a588-0x23e,_0x4b5588);}if(this['commandType']==='Draw'){const _0x50302b={};_0x50302b[_0x2c4223(-0xf8,-0x167)]=_0x2dab8b,_0x50302b['geometry']=this[_0x5e1a65(0x42e,0x448)],_0x50302b[_0x2c4223(-0x22a,-0x1b3)]=this['attributeLocations'],_0x50302b['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x1ce77f=VertexArray$1['fromGeometry'](_0x50302b),_0x2a5400={};_0x2a5400['context']=_0x2dab8b,_0x2a5400[_0x5e1a65(0x3d5,0x3e2)]=this['vertexShaderSource'],_0x2a5400['fragmentShaderSource']=this['fragmentShaderSource'],_0x2a5400[_0x5e1a65(0x457,0x3e3)]=this['attributeLocations'];const _0x381a7f=ShaderProgram['fromCache'](_0x2a5400),_0x3ef7bf=RenderState['fromCache'](this[_0x2c4223(-0x21d,-0x1fc)]),_0x40b398={};return _0x40b398['owner']=this,_0x40b398[_0x5e1a65(0x44c,0x424)]=_0x1ce77f,_0x40b398['primitiveType']=this[_0x2c4223(-0x1f4,-0x23b)],_0x40b398['modelMatrix']=Matrix4['IDENTITY'],_0x40b398['renderState']=_0x3ef7bf,_0x40b398['shaderProgram']=_0x381a7f,_0x40b398['framebuffer']=this['framebuffer'],_0x40b398[_0x5e1a65(0x4a5,0x437)]=this['uniformMap'],_0x40b398['pass']=Pass$1[_0x5e1a65(0x3db,0x35c)],new DrawCommand(_0x40b398);}else{if(this[_0x2c4223(-0x164,-0x160)]==='Compute'){const _0x5a46e6={};return _0x5a46e6[_0x2c4223(-0x13a,-0x175)]=this,_0x5a46e6[_0x2c4223(-0x23b,-0x1d1)]=this[_0x2c4223(-0x1f8,-0x1d1)],_0x5a46e6['uniformMap']=this['uniformMap'],_0x5a46e6[_0x2c4223(-0x104,-0x179)]=this['outputTexture'],_0x5a46e6['persists']=!![],new ComputeCommand(_0x5a46e6);}else throw new Error(_0x2c4223(-0x194,-0x20b));}}[_0xc18867(0x54f,0x507)](_0x4ae303,_0x2e9389){function _0x5d5b72(_0x2754c6,_0x92c0f5){return _0x1e8311(_0x92c0f5- -0x320,_0x2754c6);}function _0x33aa27(_0x54b743,_0x387222){return _0x1e8311(_0x387222- -0x121,_0x54b743);}this['geometry']=_0x2e9389,defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x4ae303,'geometry':this[_0x33aa27(0xa7,0xcf)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x5d5b72(-0x128,-0x16a)]}));}[_0xc18867(0x52a,0x595)](_0x1a3058){function _0xd8139b(_0x17fdd4,_0x11716f){return _0xc18867(_0x17fdd4- -0x501,_0x11716f);}if(!this[_0x13ede6(-0x1df,-0x157)]())return;function _0x13ede6(_0x4bef7a,_0x444820){return _0x1e8311(_0x444820- -0x3bb,_0x4bef7a);}if(!this[_0xd8139b(0x66,-0x22)]||!defined(_0x1a3058))return;!defined(this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x1a3058['context']));defined(this[_0xd8139b(0x36,-0x37)])&&this[_0x13ede6(-0x154,-0x1ae)]();if(!_0x1a3058['commandList']){console['warn'](_0x13ede6(-0x1aa,-0x1f7));return;}defined(this['clearCommand'])&&_0x1a3058[_0x13ede6(-0x104,-0x146)][_0x13ede6(-0x115,-0x129)](this['clearCommand']),defined(this['commandToExecute'])&&_0x1a3058[_0x13ede6(-0xd7,-0x146)][_0x13ede6(-0xbb,-0x129)](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){function _0x3ceed5(_0x23a6ea,_0x35cf3f){return _0x1e8311(_0x23a6ea-0x2c,_0x35cf3f);}if(defined(this[_0x3ceed5(0x287,0x2a0)])){var _0x4a7c9e;(_0x4a7c9e=this['commandToExecute']['shaderProgram'])===null||_0x4a7c9e===void 0x0||_0x4a7c9e['destroy'](),this[_0x3ceed5(0x287,0x201)]['shaderProgram']=undefined;}function _0x517d17(_0x26f1c3,_0x293c27){return _0x1e8311(_0x26f1c3- -0x2f6,_0x293c27);}return destroyObject(this);}}function deepMerge(_0x4663d6,_0x4eda23){if(!_0x4663d6)return _0x4eda23;if(!_0x4eda23)return _0x4663d6;const _0x28d8bc={..._0x4eda23},_0x40549b=_0x28d8bc;function _0x4d4bbb(_0x383332,_0x3ab257){return _0x1e8311(_0x383332-0x3f,_0x3ab257);}function _0x5bc936(_0x4b97ae,_0x2f6ee0){return _0x1e8311(_0x4b97ae- -0x3d,_0x2f6ee0);}for(const _0xdfc5fd in _0x4663d6){if(Object[_0x4d4bbb(0x2c4,0x2f0)]['hasOwnProperty']['call'](_0x4663d6,_0xdfc5fd)){const _0x1e734c=_0x4663d6[_0xdfc5fd],_0x2ddac9=_0x4eda23[_0xdfc5fd];if(Array['isArray'](_0x1e734c)){_0x40549b[_0xdfc5fd]=_0x1e734c[_0x5bc936(0x176,0x101)]();continue;}if(_0x1e734c&&typeof _0x1e734c===_0x5bc936(0x1c0,0x1d6)){_0x40549b[_0xdfc5fd]=deepMerge(_0x1e734c,_0x2ddac9||{});continue;}_0x1e734c!==undefined&&(_0x40549b[_0xdfc5fd]=_0x1e734c);}}return _0x40549b;}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[_0x1e8311(0x278,0x2b9)];class WindParticlesComputing{constructor(_0x1460f2,_0x2a6042,_0x2bc94a,_0x155d95,_0x10123a){this['context']=_0x1460f2,this['options']=_0x2bc94a,this['viewerParameters']=_0x155d95,this[_0x785e6(0x3c1,0x343)]=_0x2a6042,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x45de6c={};_0x45de6c['scene']=_0x10123a,_0x45de6c['samplingWindow']=0x1,_0x45de6c[_0x785e6(0x2a1,0x329)]=0x0;function _0x5e89bb(_0x3b5d83,_0x4edd47){return _0x1e8311(_0x4edd47- -0x189,_0x3b5d83);}this[_0x5e89bb(0x182,0x100)]=new FrameRateMonitor(_0x45de6c),this[_0x5e89bb(0xf8,0x102)](),this['createWindTextures']();function _0x785e6(_0x1d409d,_0x18137b){return _0xc18867(_0x18137b- -0x246,_0x1d409d);}this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x4162b5=()=>{function _0x2ce78f(_0x5527a3,_0x5502e8){return _0x485d(_0x5527a3- -0xef,_0x5502e8);}function _0x3e0ee8(_0x394099,_0x5a3ff7){return _0x485d(_0x394099- -0x17d,_0x5a3ff7);}this[_0x3e0ee8(0xd6,0x142)][_0x2ce78f(0x148,0x13b)]>0x14&&(this['frameRate']=this[_0x2ce78f(0x164,0x1dc)]['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math[_0x3e0ee8(0x68,0x3c)](this['frameRate'],0x1));};function _0x174b86(_0x133a1d,_0x2c9bf2){return _0xc18867(_0x133a1d- -0x47,_0x2c9bf2);}_0x4162b5();const _0xd4a478=setInterval(_0x4162b5,0x3e8),_0xc3f465=this[_0x174b86(0x50d,0x502)]['bind'](this);this['destroy']=()=>{clearInterval(_0xd4a478),_0xc3f465();};}[_0xc18867(0x578,0x54e)](){const _0x2302e3={};function _0x30b50c(_0x3c7b50,_0x436fc3){return _0x1e8311(_0x3c7b50- -0x365,_0x436fc3);}function _0x220355(_0x1cccc9,_0x1eac0d){return _0xc18867(_0x1cccc9-0x32,_0x1eac0d);}_0x2302e3[_0x30b50c(-0x131,-0xab)]=TextureMinificationFilter$1[_0x220355(0x58f,0x595)],_0x2302e3['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x530ac9={'context':this[_0x30b50c(-0x100,-0x117)],'width':this['windData']['width'],'height':this['windData'][_0x220355(0x5d6,0x5b3)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1[_0x30b50c(-0xd8,-0xb6)],'flipY':this['options'][_0x30b50c(-0x1c2,-0x177)]??![],'sampler':new Sampler$1(_0x2302e3)};this[_0x30b50c(-0x13e,-0xe4)]={'U':new Texture$1({..._0x530ac9,'source':{'arrayBufferView':new Float32Array(this[_0x30b50c(-0x106,-0xad)]['u'][_0x30b50c(-0x1a8,-0x195)])}}),'V':new Texture$1({..._0x530ac9,'source':{'arrayBufferView':new Float32Array(this[_0x30b50c(-0x106,-0x14b)]['v']['array'])}})};}['createParticlesTextures'](){function _0x356148(_0x5893b3,_0x6347f0){return _0xc18867(_0x6347f0- -0x6b7,_0x5893b3);}function _0x3dc43f(_0x4c313c,_0x139006){return _0x1e8311(_0x4c313c- -0x37f,_0x139006);}const _0x2ef349={};_0x2ef349[_0x3dc43f(-0x14b,-0x121)]=TextureMinificationFilter$1[_0x356148(-0x16f,-0x1c8)],_0x2ef349['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];const _0x47757c={'context':this['context'],'width':this[_0x3dc43f(-0x1ec,-0x268)]['particlesTextureSize'],'height':this[_0x3dc43f(-0x1ec,-0x218)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x356148(-0x1bd,-0x1fa)]['particlesTextureSize']*this['options']['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x2ef349)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x47757c),'currentParticlesPosition':new Texture$1(_0x47757c),'nextParticlesPosition':new Texture$1(_0x47757c),'postProcessingPosition':new Texture$1(_0x47757c),'particlesSpeed':new Texture$1(_0x47757c)};}[_0xc18867(0x521,0x4bd)](){function _0x2d4c34(_0x189463,_0x1c92ee){return _0x1e8311(_0x1c92ee-0x119,_0x189463);}function _0x2a025f(_0x1beb05,_0xed8105){return _0x1e8311(_0x1beb05-0x2b8,_0xed8105);}Object[_0x2a025f(0x535,0x59a)](this[_0x2a025f(0x43e,0x42e)])['forEach'](_0xd940ca=>_0xd940ca['destroy']());}['createComputingPrimitives'](){function _0xd26bd9(_0x2656dc,_0x35977b){return _0x1e8311(_0x35977b-0x44,_0x2656dc);}function _0x3ddd96(_0x135d4c,_0x166acc){return _0xc18867(_0x135d4c- -0x469,_0x166acc);}this[_0xd26bd9(0x1ea,0x246)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0xd26bd9(0x1e4,0x26b)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x3ddd96(0x120,0x106)]['v']['min'],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x2d1a4c(_0x271f93,_0x2074e6){return _0x3ddd96(_0x2074e6- -0x23a,_0x271f93);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0x2d1a4c(-0x210,-0x1e6)]['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData']['width'],this[_0xd26bd9(0x21f,0x2a3)][_0xd26bd9(0x2a5,0x2be)]),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0xd26bd9(0x243,0x287)],this['windData']['bounds'][_0xd26bd9(0x203,0x1f1)]),'maximum':()=>new Cartesian2$1(this['windData'][_0x3ddd96(0xdb,0x12e)]['east'],this['windData']['bounds']['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures'][_0xd26bd9(0x273,0x265)],'preExecute':()=>{const _0x342c06=this[_0x4c9bca(0x225,0x26d)][_0x4c9bca(0x2dd,0x288)];function _0x2392e8(_0x2d5b0a,_0x252483){return _0xd26bd9(_0x252483,_0x2d5b0a-0x32c);}function _0x4c9bca(_0x53b0fd,_0x1a02a4){return _0xd26bd9(_0x53b0fd,_0x1a02a4-0xa3);}this['particlesTextures']['previousParticlesPosition']=this['particlesTextures'][_0x4c9bca(0x333,0x327)],this[_0x4c9bca(0x258,0x26d)]['currentParticlesPosition']=this[_0x4c9bca(0x21a,0x26d)][_0x2392e8(0x558,0x4d1)],this[_0x4c9bca(0x21c,0x26d)][_0x2392e8(0x558,0x514)]=_0x342c06,this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives']['calculateSpeed']['commandToExecute']['outputTexture']=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this[_0x3ddd96(0x54,0x4)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this[_0x3ddd96(0x47,0xc7)]['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x119fbb(_0x11e84a,_0x3104cd){return _0x3ddd96(_0x11e84a-0x85,_0x3104cd);}function _0xbe4fa6(_0x3a653b,_0x85dba9){return _0x3ddd96(_0x3a653b-0x488,_0x85dba9);}this['primitives'][_0xbe4fa6(0x58f,0x54e)]['commandToExecute']&&(this[_0xbe4fa6(0x54b,0x550)]['updatePosition']['commandToExecute']['outputTexture']=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this['options'][_0xd26bd9(0x21e,0x22d)]}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this[_0x3ddd96(0x47,0x36)]['particlesSpeed'],'lonRange':()=>this['viewerParameters'][_0xd26bd9(0x1f0,0x24c)],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0xd26bd9(0x274,0x25e)]['west'],this['windData'][_0xd26bd9(0x226,0x25e)]['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this[_0x3ddd96(0x120,0x134)][_0xd26bd9(0x21b,0x25e)][_0xd26bd9(0x26b,0x2d9)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this[_0x3ddd96(0x54,0x67)]['dropRateBump'],'useViewerBounds':()=>this['options'][_0xd26bd9(0x2ea,0x2a6)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x15972c(_0x172340,_0x2ee464){return _0x3ddd96(_0x2ee464-0x3ca,_0x172340);}function _0x42c23a(_0x367c7d,_0x2895bd){return _0xd26bd9(_0x2895bd,_0x367c7d-0x60);}this['primitives']['postProcessingPosition'][_0x42c23a(0x2ff,0x374)]&&(this['primitives'][_0x15972c(0x482,0x473)]['commandToExecute'][_0x42c23a(0x2f7,0x36d)]=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0x3ddd96(0x54,0x6f)]['dynamic']})};}[_0x1e8311(0x21c,0x1f4)](){function _0x189a4b(_0x332cb3,_0x54749){return _0xc18867(_0x54749- -0x5fe,_0x332cb3);}this['windTextures']['U'][_0x189a4b(-0x65,-0xaa)]();function _0x16de40(_0x18763a,_0xe17f2){return _0xc18867(_0x18763a- -0x718,_0xe17f2);}this[_0x189a4b(-0x10e,-0xad)]['V']['destroy'](),this[_0x16de40(-0x1a0,-0x176)]();}['updateWindData'](_0x4877b3){this[_0x47719a(-0x9f,-0x58)]=_0x4877b3;function _0x47719a(_0x72ec15,_0x5055c8){return _0x1e8311(_0x72ec15- -0x2fe,_0x5055c8);}this['reCreateWindTextures']();}[_0x1e8311(0x1a2,0x1df)](_0x471190){const _0xeba1ae=_0x471190['flipY']!==undefined&&_0x471190[_0x325a1c(0x3fc,0x439)]!==this['options'][_0x30880f(0x39f,0x38f)];function _0x325a1c(_0x14746b,_0x4ed5b8){return _0xc18867(_0x4ed5b8- -0x94,_0x14746b);}function _0x30880f(_0x3fc387,_0x308071){return _0x1e8311(_0x308071-0x1ec,_0x3fc387);}this[_0x30880f(0x3c5,0x37f)]=deepMerge(_0x471190,this['options']),_0xeba1ae&&this['reCreateWindTextures']();}[_0x1e8311(0x230,0x27e)](_0x198731){function _0x23aa2b(_0x47a8ce,_0x3aba4b){return _0xc18867(_0x47a8ce- -0x595,_0x3aba4b);}const {array:_0x34ce25}=_0x198731;let {min:_0x4d3b12,max:_0x339bca}=_0x198731;const _0x2c1a61=new Float32Array(_0x34ce25['length']);_0x4d3b12===undefined&&(console[_0x4d8fa1(0x34e,0x2e0)](_0x23aa2b(-0x1b,0x7)),_0x4d3b12=Math[_0x4d8fa1(0x321,0x2bc)](..._0x34ce25));_0x339bca===undefined&&(console[_0x4d8fa1(0x34e,0x3b1)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x339bca=Math[_0x23aa2b(-0x50,-0x54)](..._0x34ce25));function _0x4d8fa1(_0x222ea6,_0x8643d7){return _0x1e8311(_0x222ea6-0x14a,_0x8643d7);}const _0x3f8a27=Math['max'](Math[_0x4d8fa1(0x336,0x2e9)](_0x4d3b12),Math['abs'](_0x339bca));for(let _0xb02614=0x0;_0xb02614<_0x34ce25[_0x23aa2b(-0x2,-0x1e)];_0xb02614++){const _0x1f8fae=_0x34ce25[_0xb02614]/_0x3f8a27;_0x2c1a61[_0xb02614]=_0x1f8fae;}return _0x2c1a61;}['destroy'](){Object['values'](this[_0x14e4aa(0x17a,0x125)])['forEach'](_0x16469c=>_0x16469c[_0x14e4aa(0x17d,0x146)]()),Object[_0x556a5f(0x2bc,0x2ed)](this['particlesTextures'])['forEach'](_0x21f407=>_0x21f407['destroy']());function _0x14e4aa(_0x2db5e5,_0x2b4385){return _0xc18867(_0x2db5e5- -0x3d7,_0x2b4385);}function _0x556a5f(_0x53677e,_0x108bc9){return _0x1e8311(_0x108bc9-0x70,_0x53677e);}Object['values'](this['primitives'])['forEach'](_0x32ca39=>_0x32ca39[_0x556a5f(0x221,0x29a)]()),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(_0x51ca40,_0x26c760,_0x4207e3,_0x25891b){this[_0x4debc4(-0x16f,-0x1b2)]=_0x51ca40,this['options']=_0x26c760,this[_0x4154ab(0x534,0x527)]=_0x4207e3;function _0x4debc4(_0x1d97a2,_0x1e0cf7){return _0x1e8311(_0x1e0cf7- -0x417,_0x1d97a2);}this['computing']=_0x25891b;(typeof this[_0x4debc4(-0x233,-0x284)]['particlesTextureSize']!=='number'||this['options'][_0x4154ab(0x529,0x50e)]<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options']['particlesTextureSize']=0x100);this[_0x4154ab(0x4d6,0x548)]=this[_0x4154ab(0x4fc,0x504)](),this[_0x4154ab(0x4c4,0x535)]=this['createRenderingTextures']();function _0x4154ab(_0xbb9e40,_0x5e68b4){return _0xc18867(_0x5e68b4-0x48,_0xbb9e40);}this[_0x4debc4(-0x1f9,-0x1c2)]=this['createRenderingFramebuffers'](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x53fbd5={};_0x53fbd5['context']=this['context'],_0x53fbd5[_0x4c6de0(0x3a3,0x357)]=this['context']['drawingBufferWidth'],_0x53fbd5['height']=this['context'][_0x560214(0x471,0x40c)],_0x53fbd5['pixelFormat']=PixelFormat[_0x4c6de0(0x2f9,0x365)];function _0x560214(_0x33a07a,_0x4cca1a){return _0x1e8311(_0x4cca1a-0x18b,_0x33a07a);}_0x53fbd5[_0x4c6de0(0x2ed,0x2e5)]=PixelDatatype['UNSIGNED_BYTE'];const _0x3e5781=_0x53fbd5;function _0x4c6de0(_0x510919,_0x3dc8ba){return _0xc18867(_0x3dc8ba- -0x212,_0x510919);}const _0x17e7c3={};_0x17e7c3[_0x560214(0x463,0x3f0)]=this[_0x560214(0x413,0x3f0)],_0x17e7c3['width']=this['context'][_0x4c6de0(0x2f9,0x351)],_0x17e7c3['height']=this['context']['drawingBufferHeight'],_0x17e7c3['pixelFormat']=PixelFormat[_0x4c6de0(0x3ae,0x3ae)],_0x17e7c3[_0x4c6de0(0x2cd,0x2e5)]=PixelDatatype['UNSIGNED_INT'];const _0x10098a=_0x17e7c3;return{'segmentsColor':new Texture(_0x3e5781),'segmentsDepth':new Texture(_0x10098a)};}['createRenderingFramebuffers'](){const _0x312d2a={};_0x312d2a['context']=this['context'],_0x312d2a['colorTextures']=[this['textures'][_0x5d0b7f(0x38f,0x3fc)]];function _0x5d0b7f(_0xa23f5d,_0x5921e8){return _0x1e8311(_0x5921e8-0x1c2,_0xa23f5d);}return _0x312d2a['depthTexture']=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x312d2a)};}['destoryRenderingFramebuffers'](){function _0x23ae11(_0x14f193,_0x382cd5){return _0xc18867(_0x14f193- -0x62d,_0x382cd5);}Object['values'](this[_0x23ae11(-0xae,-0xea)])['forEach'](_0x543ab7=>{function _0x563170(_0x420306,_0x24c94a){return _0x23ae11(_0x420306-0x308,_0x24c94a);}_0x543ab7[_0x563170(0x22f,0x2b1)]();});}['createColorTableTexture'](){const _0x2a74bb=new Float32Array(this['options']['colors']['flatMap'](_0x508abe=>{function _0x447bfa(_0x5ba729,_0x80a20b){return _0x485d(_0x80a20b- -0xc5,_0x5ba729);}function _0xfe063c(_0x3bba61,_0x332ae8){return _0x485d(_0x332ae8-0x2d1,_0x3bba61);}const _0x14c41f=Color$1[_0xfe063c(0x423,0x474)](_0x508abe);return[_0x14c41f['red'],_0x14c41f['green'],_0x14c41f[_0x447bfa(0x16d,0x13b)],_0x14c41f['alpha']];}));function _0x13c618(_0x2a1ee8,_0x3ca087){return _0x1e8311(_0x2a1ee8- -0xf9,_0x3ca087);}const _0x1572f2={};function _0x5f4d2c(_0x3ebf85,_0x5a9ee0){return _0x1e8311(_0x3ebf85- -0x22,_0x5a9ee0);}return _0x1572f2[_0x13c618(0x13b,0xc0)]=TextureMinificationFilter['LINEAR'],_0x1572f2[_0x5f4d2c(0x1a8,0x1aa)]=TextureMagnificationFilter[_0x5f4d2c(0x211,0x284)],_0x1572f2['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x1572f2['wrapT']=TextureWrap[_0x13c618(0xe2,0xe7)],new Texture({'context':this['context'],'width':this[_0x13c618(0x9a,0x26)]['colors'][_0x5f4d2c(0x247,0x2a8)],'height':0x1,'pixelFormat':PixelFormat[_0x13c618(0x154,0xec)],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x1572f2),'source':{'width':this['options'][_0x13c618(0x100,0x85)]['length'],'height':0x1,'arrayBufferView':_0x2a74bb}});}['createSegmentsGeometry'](){const _0x4494c5=0x4,_0x5acb1e=this['options']['particlesTextureSize'];let _0x4b08b2=[];for(let _0x201f61=0x0;_0x201f61<_0x5acb1e;_0x201f61++){for(let _0x465366=0x0;_0x465366<_0x5acb1e;_0x465366++){for(let _0x3575d2=0x0;_0x3575d2<_0x4494c5;_0x3575d2++){_0x4b08b2['push'](_0x201f61/_0x5acb1e),_0x4b08b2[_0xdd419b(0x35a,0x328)](_0x465366/_0x5acb1e);}}}_0x4b08b2=new Float32Array(_0x4b08b2);const _0x430e82=this[_0xdd419b(0x1ab,0x229)]['particlesTextureSize']**0x2;let _0x122b2f=[];for(let _0x350d77=0x0;_0x350d77<_0x430e82;_0x350d77++){_0x122b2f['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}function _0x3dadde(_0x28bbfd,_0x45a8bc){return _0x1e8311(_0x28bbfd- -0x3b7,_0x45a8bc);}_0x122b2f=new Float32Array(_0x122b2f);let _0x43f817=[];for(let _0x19a605=0x0,_0x22f392=0x0;_0x19a605<_0x430e82;_0x19a605++){_0x43f817['push'](_0x22f392+0x0,_0x22f392+0x1,_0x22f392+0x2,_0x22f392+0x2,_0x22f392+0x1,_0x22f392+0x3),_0x22f392+=_0x4494c5;}_0x43f817=new Uint32Array(_0x43f817);const _0x587e49={};_0x587e49['componentDatatype']=ComponentDatatype['FLOAT'];function _0xdd419b(_0x25bf89,_0x590ed5){return _0xc18867(_0x590ed5- -0x294,_0x25bf89);}_0x587e49['componentsPerAttribute']=0x2,_0x587e49['values']=_0x4b08b2;const _0xcac0cd={};_0xcac0cd['componentDatatype']=ComponentDatatype['FLOAT'],_0xcac0cd['componentsPerAttribute']=0x3,_0xcac0cd[_0xdd419b(0x378,0x313)]=_0x122b2f;const _0x5dcc40=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x587e49),'normal':new GeometryAttribute(_0xcac0cd)}),'indices':_0x43f817});return _0x5dcc40;}['createRawRenderState'](_0x33115c){const _0x5772e7={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x33115c};return Appearance['getDefaultRenderState'](!![],![],_0x5772e7);}['createPrimitives'](){const _0x23b92c={};function _0x2f8e1d(_0xeee16d,_0x49970a){return _0x1e8311(_0xeee16d-0x269,_0x49970a);}_0x23b92c['st']=0x0,_0x23b92c['normal']=0x1;const _0x23ec0a={};_0x23ec0a['enabled']=!![];const _0x188299={};_0x188299['enabled']=!![],_0x188299['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x188299[_0x2f8e1d(0x415,0x3ef)]=WebGLRenderingContext[_0x58c00d(0x141,0xff)],_0x188299[_0x2f8e1d(0x3f6,0x441)]=WebGLRenderingContext[_0x2f8e1d(0x4b0,0x4de)];const _0x1ad8cf={};_0x1ad8cf['viewport']=undefined,_0x1ad8cf['depthTest']=_0x23ec0a,_0x1ad8cf['depthMask']=!![],_0x1ad8cf['blending']=_0x188299;const _0x5756b6=new CustomPrimitive({'commandType':_0x58c00d(0x19e,0x206),'attributeLocations':_0x23b92c,'geometry':this[_0x58c00d(0x1b9,0x1e2)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x2f8e1d(0x3ef,0x36e)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures'][_0x58c00d(0x1a7,0x208)],'postProcessingPosition':()=>this['computing'][_0x58c00d(0xed,0x9e)]['postProcessingPosition'],'particlesSpeed':()=>this[_0x58c00d(0x156,0x16e)][_0x58c00d(0xed,0xb5)][_0x2f8e1d(0x48a,0x4d3)],'frameRateAdjustment':()=>this['computing'][_0x2f8e1d(0x429,0x407)],'colorTable':()=>this[_0x2f8e1d(0x43f,0x4b2)],'domain':()=>{var _0x38a6c9,_0x4e1170;function _0x1d0e8d(_0x673829,_0x58e35c){return _0x58c00d(_0x673829-0x36a,_0x58e35c);}function _0x190bc6(_0x2db29c,_0x4081a5){return _0x2f8e1d(_0x4081a5-0xca,_0x2db29c);}const _0x5097c6=new Cartesian2(((_0x38a6c9=this['options']['domain'])===null||_0x38a6c9===void 0x0?void 0x0:_0x38a6c9[_0x1d0e8d(0x4a8,0x498)])??this['computing']['windData'][_0x1d0e8d(0x45a,0x469)][_0x1d0e8d(0x4a8,0x4e1)],((_0x4e1170=this[_0x190bc6(0x522,0x4c6)]['domain'])===null||_0x4e1170===void 0x0?void 0x0:_0x4e1170[_0x1d0e8d(0x4ec,0x539)])??this['computing']['windData'][_0x1d0e8d(0x45a,0x417)]['max']);return _0x5097c6;},'displayRange':()=>{var _0x1f18c1,_0x3ab843;function _0x28de5d(_0x44b8f6,_0x417192){return _0x58c00d(_0x417192- -0x94,_0x44b8f6);}function _0x2213b0(_0x23edf8,_0x128d01){return _0x58c00d(_0x128d01-0x3ad,_0x23edf8);}const _0x22caa0=new Cartesian2(((_0x1f18c1=this[_0x28de5d(-0xd,0x66)]['displayRange'])===null||_0x1f18c1===void 0x0?void 0x0:_0x1f18c1['min'])??this['computing'][_0x28de5d(0x177,0x132)]['speed']['min'],((_0x3ab843=this['options']['displayRange'])===null||_0x3ab843===void 0x0?void 0x0:_0x3ab843['max'])??this['computing']['windData']['speed']['max']);return _0x22caa0;},'particleHeight':()=>this[_0x58c00d(0xfa,0x107)]['fixedHeight']||0x0,'aspect':()=>this[_0x2f8e1d(0x4ce,0x487)][_0x58c00d(0x1a0,0x1ac)]/this['context'][_0x58c00d(0x1e8,0x1a2)],'pixelSize':()=>this['viewerParameters'][_0x58c00d(0x189,0x143)],'lineWidth':()=>{const _0x103153={};_0x103153['min']=0x1;function _0x24c227(_0x259dc9,_0x263f70){return _0x2f8e1d(_0x263f70- -0x5fd,_0x259dc9);}function _0x495483(_0x5139c8,_0xd7fbfd){return _0x2f8e1d(_0x5139c8-0x4f,_0xd7fbfd);}_0x103153['max']=0x2;const _0x332933=this['options'][_0x24c227(-0x147,-0x166)]||_0x103153;return new Cartesian2(_0x332933[_0x24c227(-0x16c,-0x1bd)],_0x332933['max']);},'lineLength':()=>{const _0xfbd5b1={};function _0x2e3cfd(_0x4b9247,_0x48eab6){return _0x58c00d(_0x4b9247- -0x13f,_0x48eab6);}_0xfbd5b1[_0x2e3cfd(-0x1,-0x53)]=0x14,_0xfbd5b1[_0x2e3cfd(0x43,0x1e)]=0x64;function _0x2da4f9(_0x549c9c,_0x438229){return _0x58c00d(_0x438229- -0x1be,_0x549c9c);}const _0x1cdce8=this['options'][_0x2e3cfd(0x66,-0x4)]||_0xfbd5b1;return new Cartesian2(_0x1cdce8['min'],_0x1cdce8['max']);},'is3D':()=>this[_0x58c00d(0x11c,0x11f)]['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x58c00d(0x1d2,0x232)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x58c00d(0x1bb,0x157)](_0x1ad8cf)}),_0x210fdf={};_0x210fdf[_0x2f8e1d(0x413,0x49c)]=_0x5756b6;function _0x58c00d(_0x379955,_0x2b7c77){return _0x1e8311(_0x379955- -0x99,_0x2b7c77);}return _0x210fdf;}[_0xc18867(0x54d,0x596)](){const _0x204c76=this[_0x1e5468(0xac,0x5e)]();this[_0x6f07cc(0x4f8,0x558)]['segments'][_0x1e5468(0x10,-0x4)]=_0x204c76;function _0x1e5468(_0x522e38,_0x5ad206){return _0xc18867(_0x5ad206- -0x51e,_0x522e38);}const _0x5aaee4={};_0x5aaee4[_0x6f07cc(0x607,0x5bb)]=this['context'],_0x5aaee4['geometry']=_0x204c76,_0x5aaee4['attributeLocations']=this[_0x6f07cc(0x560,0x558)][_0x6f07cc(0x527,0x500)][_0x1e5468(0x42,0x25)],_0x5aaee4['bufferUsage']=BufferUsage['STATIC_DRAW'];function _0x6f07cc(_0x12ddb5,_0x364419){return _0xc18867(_0x364419-0x2c,_0x12ddb5);}const _0x4bd840=VertexArray['fromGeometry'](_0x5aaee4);this[_0x6f07cc(0x4f6,0x558)][_0x1e5468(-0x56,-0x4a)]['commandToExecute']&&(this[_0x6f07cc(0x56b,0x558)][_0x6f07cc(0x49e,0x500)][_0x6f07cc(0x580,0x5b1)]['vertexArray']=_0x4bd840);}['onColorTableChange'](){this[_0x4bb1a9(0x1c1,0x179)][_0x52a0cf(0xe,-0x41)]();function _0x52a0cf(_0x3daafb,_0x1cdfdc){return _0x1e8311(_0x1cdfdc- -0x26b,_0x3daafb);}function _0x4bb1a9(_0x5289a9,_0x24118d){return _0x1e8311(_0x5289a9- -0x15,_0x24118d);}this[_0x52a0cf(-0x3a,-0x95)]=this['createColorTableTexture']();}[_0xc18867(0x4cc,0x464)](_0x210c98){function _0x33675c(_0x30d706,_0x2320f1){return _0x1e8311(_0x2320f1-0x2ca,_0x30d706);}const _0x173839=_0x210c98['colors']&&JSON[_0x33675c(0x4fa,0x523)](_0x210c98['colors'])!==JSON['stringify'](this['options']['colors']);this[_0x582bed(-0x105,-0xe2)]=deepMerge(_0x210c98,this[_0x582bed(-0x5e,-0xe2)]);function _0x582bed(_0xf4fd51,_0x2cdfc3){return _0x1e8311(_0x2cdfc3- -0x275,_0xf4fd51);}_0x173839&&this['onColorTableChange']();}[_0x1e8311(0x22a,0x2a6)](){Object['values'](this['framebuffers'])[_0x490f51(0x1f1,0x16e)](_0x4e66af=>{_0x4e66af['destroy']();});function _0x4c5e1e(_0x2039b7,_0x1f6e0c){return _0x1e8311(_0x1f6e0c- -0x188,_0x2039b7);}function _0x490f51(_0x406842,_0x2a7f7b){return _0x1e8311(_0x406842- -0x95,_0x2a7f7b);}Object['values'](this['primitives'])['forEach'](_0x2d0228=>{_0x2d0228['destroy']();}),this[_0x4c5e1e(0xa1,0x4e)]['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x3d7e6d,_0x13635f,_0x14d922,_0x346e8c,_0x1f901b){function _0x1ba002(_0x20d254,_0x144b3f){return _0xc18867(_0x20d254- -0x20b,_0x144b3f);}this['context']=_0x3d7e6d,this[_0x159aef(0xdd,0x161)]=_0x14d922,this['viewerParameters']=_0x346e8c,this['computing']=new WindParticlesComputing(_0x3d7e6d,_0x13635f,_0x14d922,_0x346e8c,_0x1f901b);function _0x159aef(_0x1aec46,_0x564f66){return _0xc18867(_0x564f66- -0x35c,_0x1aec46);}this[_0x159aef(0x215,0x20f)]=new WindParticlesRendering(_0x3d7e6d,_0x14d922,_0x346e8c,this['computing']),this['clearFramebuffers']();}[_0xc18867(0x56c,0x59b)](){function _0x4d30e5(_0x4c8043,_0x24010b){return _0x1e8311(_0x4c8043- -0x215,_0x24010b);}function _0x15151d(_0x3ac574,_0x4f5fcc){return _0xc18867(_0x3ac574- -0x478,_0x4f5fcc);}const _0x3021c4=[this[_0x4d30e5(-0x26,-0x35)]['primitives'][_0x4d30e5(-0x71,0x12)],this['computing']['primitives'][_0x4d30e5(0x31,-0x13)],this['computing']['primitives']['postProcessingPosition'],this['rendering']['primitives'][_0x15151d(0x5c,0x68)]];return _0x3021c4;}['clearFramebuffers'](){function _0x2181be(_0x55d906,_0x46d2a0){return _0xc18867(_0x46d2a0- -0x656,_0x55d906);}function _0xb0d75a(_0x35966d,_0x58d148){return _0xc18867(_0x58d148- -0x5ae,_0x35966d);}const _0x29f42a=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});Object['keys'](this[_0x2181be(-0xf9,-0xeb)]['framebuffers'])[_0x2181be(-0xac,-0xa6)](_0xf9656b=>{function _0x21c21d(_0x41f2c1,_0x18860b){return _0x2181be(_0x18860b,_0x41f2c1- -0x73);}_0x29f42a['framebuffer']=this['rendering']['framebuffers'][_0xf9656b],_0x29f42a[_0x21c21d(-0x12e,-0xde)](this['context']);});}[_0xc18867(0x576,0x591)](_0x114228){let _0x15c651=![];_0x114228['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x114228['particlesTextureSize']&&(_0x15c651=!![]);function _0x5c73bf(_0x4a734f,_0x3099a5){return _0xc18867(_0x4a734f- -0x526,_0x3099a5);}const _0x5bc93e=deepMerge(_0x114228,this['options']);if(_0x5bc93e[_0x1db0d8(0x31a,0x2ba)]<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x5bc93e,this[_0x1db0d8(0x3cb,0x35f)][_0x5c73bf(-0x5a,-0x83)](_0x114228);function _0x1db0d8(_0x3b53ed,_0x2be1ad){return _0xc18867(_0x2be1ad- -0x20c,_0x3b53ed);}this[_0x1db0d8(0x2de,0x30d)][_0x5c73bf(-0x5a,-0x8a)](_0x114228),_0x15c651&&(this[_0x5c73bf(-0xd,0x8)]['destroyParticlesTextures'](),this['computing'][_0x1db0d8(0x38b,0x30f)](),this['rendering']['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x455619){function _0x1edb13(_0x3b0745,_0x3d646f){return _0x1e8311(_0x3d646f-0xf,_0x3b0745);}this['viewerParameters']=_0x455619,this['computing'][_0x1edb13(0x1cb,0x1c4)]=_0x455619,this['rendering']['viewerParameters']=_0x455619;}['destroy'](){function _0x1b9d8c(_0x1c9c4f,_0x170d21){return _0xc18867(_0x1c9c4f- -0x44a,_0x170d21);}this[_0x1b9d8c(0xcf,0xba)]['destroy']();function _0x380681(_0x520b55,_0x2be7cd){return _0xc18867(_0x2be7cd- -0x69c,_0x520b55);}this[_0x380681(-0x157,-0x131)]['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0xc18867(0x53e,0x50f)]['BaseLayer'],_0x5b5dc8={};_0x5b5dc8['min']=0x1,_0x5b5dc8['max']=0x2;const _0x59b26f={};_0x59b26f['min']=0x14,_0x59b26f[_0xc18867(0x545,0x513)]=0x64;const _0x1b47d3={};_0x1b47d3[_0xc18867(0x4c6,0x4c2)]=0x64,_0x1b47d3[_0xc18867(0x4d5,0x459)]=0x0,_0x1b47d3['lineWidth']=_0x5b5dc8,_0x1b47d3[_0x1e8311(0x23e,0x207)]=_0x59b26f,_0x1b47d3[_0xc18867(0x5a6,0x5d1)]=0x1,_0x1b47d3[_0xc18867(0x535,0x58b)]=0.003,_0x1b47d3[_0xc18867(0x4e4,0x4c9)]=0.001,_0x1b47d3[_0xc18867(0x523,0x570)]=['rgb(206,255,255)'],_0x1b47d3['flipY']=![],_0x1b47d3[_0x1e8311(0x1e9,0x16a)]=!![];const DEF_OPTIONS=_0x1b47d3;class WindLayer extends BaseLayer$1{constructor(_0x281ab8={}){_0x281ab8={...DEF_OPTIONS,..._0x281ab8},super(_0x281ab8);function _0x2ba589(_0x574474,_0x187364){return _0x1e8311(_0x574474-0x21c,_0x187364);}this[_0x2ba589(0x460,0x407)](_0x281ab8,_0x281ab8);}get['layer'](){return this['primitives'];}get['data'](){function _0x16060c(_0x609080,_0x31f35d){return _0x1e8311(_0x31f35d-0x3ae,_0x609080);}function _0x30ddeb(_0x185727,_0x4b5cf7){return _0x1e8311(_0x185727- -0xec,_0x4b5cf7);}return this[_0x30ddeb(0xa7,0x103)][_0x16060c(0x5c7,0x55e)];}set['data'](_0x4103ad){this['options']['data']=_0x4103ad,this['setData'](_0x4103ad);}get[_0x1e8311(0x1f9,0x217)](){function _0xc7f2b7(_0x3aaed4,_0x11d18f){return _0xc18867(_0x11d18f- -0x366,_0x3aaed4);}function _0x43f715(_0x54188d,_0x2f8988){return _0x1e8311(_0x2f8988-0x1a8,_0x54188d);}return this[_0x43f715(0x385,0x33b)][_0x43f715(0x420,0x3a1)];}set['colors'](_0xf01edd){function _0x24ff4d(_0x5ed5b2,_0x4b0019){return _0xc18867(_0x4b0019- -0x34c,_0x5ed5b2);}this['options']['colors']=_0xf01edd;const _0x1c54d0={};_0x1c54d0[_0x24ff4d(0x216,0x1d7)]=_0xf01edd;function _0x38b37f(_0x141cf0,_0x2d7506){return _0xc18867(_0x141cf0- -0x523,_0x2d7506);}this[_0x24ff4d(0x292,0x222)](this['options'],_0x1c54d0);}['_mountedHook'](){}[_0xc18867(0x4e9,0x551)](){this[_0x4dd9ca(0xa7,0xbd)]=this['_map'][_0x4b4cd8(0x64c,0x5d1)],this[_0x4b4cd8(0x66b,0x5fa)]=this['_map'][_0x4dd9ca(0x106,0xe6)];this['options']['data']&&this[_0x4b4cd8(0x543,0x58c)](this[_0x4dd9ca(0x23,0x28)]['data']);if(!this['windData'])return;this['viewerParameters']={'lonRange':new Cesium$1[(_0x4b4cd8(0x52f,0x5ac))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']};function _0x4b4cd8(_0x512afb,_0x29e530){return _0xc18867(_0x29e530-0x7f,_0x512afb);}this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this[_0x4dd9ca(0xa9,0xf4)],this[_0x4dd9ca(0x9c,0x28)],this['viewerParameters'],this['scene']);function _0x4dd9ca(_0x53090c,_0x266823){return _0xc18867(_0x266823- -0x495,_0x53090c);}this['primitives']=this['particleSystem']['getPrimitives'](),this['primitives']['forEach'](_0x5ad618=>{function _0x3dfbe6(_0x4b9a45,_0x10c802){return _0x4b4cd8(_0x4b9a45,_0x10c802- -0x612);}this['scene']['primitives'][_0x3dfbe6(-0x32,-0xab)](_0x5ad618);}),this[_0x4b4cd8(0x608,0x5fa)][_0x4dd9ca(0xc5,0x6d)]=0.01,this[_0x4b4cd8(0x64d,0x5fa)]['changed'][_0x4b4cd8(0x67e,0x603)](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete'][_0x4b4cd8(0x658,0x603)](this[_0x4dd9ca(0xd9,0x114)][_0x4dd9ca(0x93,0x5e)](this)),window['addEventListener'](_0x4dd9ca(-0x54,0x35),this['updateViewerParameters'][_0x4dd9ca(0x95,0x5e)](this));}['_removedHook'](){this[_0x24378d(0x27f,0x25d)][_0x24378d(0x1c4,0x16f)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete'][_0x24378d(0x1ea,0x257)](this[_0x14e2c0(0x336,0x3a7)][_0x24378d(0x1f7,0x1fd)](this));function _0x24378d(_0x151860,_0x5cf7fd){return _0xc18867(_0x151860- -0x2fc,_0x5cf7fd);}function _0x14e2c0(_0x51e725,_0x6b7416){return _0x1e8311(_0x6b7416-0x128,_0x51e725);}window[_0x24378d(0x1ea,0x1e2)](_0x24378d(0x1ce,0x1bf),this['updateViewerParameters']['bind'](this)),this[_0x24378d(0x230,0x234)]&&(this['primitives']['forEach'](_0x510863=>{function _0x519569(_0x227911,_0x1d672e){return _0x24378d(_0x227911-0xfe,_0x1d672e);}this[_0x519569(0x354,0x32c)]['primitives']['remove'](_0x510863);}),delete this['primitives']),this['particleSystem']&&(this[_0x24378d(0x276,0x2e3)][_0x24378d(0x258,0x1ef)](),delete this['particleSystem']);}[_0xc18867(0x50d,0x4f1)](_0x5f2dc7,_0x26b08c){this['windData']=this[_0x45a62b(0x348,0x2ee)](_0x5f2dc7);function _0x45a62b(_0x6713b7,_0x5c23fc){return _0xc18867(_0x5c23fc- -0x26c,_0x6713b7);}if(_0x26b08c){this[_0x45a62b(0x30e,0x28c)](),this[_0x45a62b(0x259,0x27d)]();return;}function _0x4b06da(_0x11211d,_0x265a50){return _0xc18867(_0x265a50- -0x489,_0x11211d);}this['particleSystem']?(this['particleSystem']['computing']['updateWindData'](this[_0x4b06da(0xa3,0x100)]),this['scene']['requestRender']()):this['_addedHook']();}['_setOptionsHook'](_0x2310a3,_0x3bf4ca){function _0xade486(_0x1ff7df,_0xed605d){return _0x1e8311(_0xed605d- -0x2c8,_0x1ff7df);}function _0x4cf8c8(_0xadcbf,_0x505516){return _0xc18867(_0xadcbf- -0x66,_0x505516);}this[_0xade486(-0xc3,-0x80)]&&(this[_0xade486(-0x35,-0x80)][_0x4cf8c8(0x510,0x4e9)](_0x3bf4ca),this['scene'][_0x4cf8c8(0x4e1,0x477)]());}[_0xc18867(0x55a,0x5bf)](_0x4af9d6){var _0x311a1a,_0x4b504b;const _0x3cde17={..._0x4af9d6},_0xafb756=_0x3cde17;!_0xafb756['height']&&_0xafb756['rows']&&(_0xafb756['height']=_0xafb756['rows']);function _0x375e7e(_0x338f3b,_0x3c2059){return _0xc18867(_0x3c2059- -0x1f2,_0x338f3b);}!_0xafb756[_0x19b269(0x182,0x10c)]&&_0xafb756[_0x19b269(0x141,0x12e)]&&(_0xafb756['width']=_0xafb756['cols']);!_0xafb756[_0x19b269(0x15d,0x196)]&&(_0xafb756[_0x375e7e(0x38d,0x352)]={'west':_0xafb756[_0x375e7e(0x31d,0x39b)],'south':_0xafb756['ymin'],'east':_0xafb756['xmax'],'north':_0xafb756[_0x375e7e(0x41c,0x3a7)]});if(!_0xafb756['u']){const _0x432fbb={};_0x432fbb[_0x19b269(0x100,0x90)]=_0x4af9d6['udata'],_0x432fbb['min']=_0x4af9d6['umin'],_0x432fbb[_0x375e7e(0x2d1,0x353)]=_0x4af9d6['umax'],_0xafb756['u']=_0x432fbb;}if(!_0xafb756['v']){const _0x348f96={};_0x348f96[_0x375e7e(0x320,0x2f5)]=_0x4af9d6['vdata'],_0x348f96['min']=_0x4af9d6['vmin'],_0x348f96[_0x375e7e(0x30d,0x353)]=_0x4af9d6['vmax'],_0xafb756['v']=_0x348f96;}if(((_0x311a1a=_0xafb756[_0x375e7e(0x26f,0x2c1)])===null||_0x311a1a===void 0x0?void 0x0:_0x311a1a[_0x375e7e(0x394,0x30f)])===undefined||((_0x4b504b=_0xafb756['speed'])===null||_0x4b504b===void 0x0?void 0x0:_0x4b504b['max'])===undefined||_0xafb756['speed']['array']===undefined){const _0x3e2a53={'array':new Float32Array(_0xafb756['u'][_0x375e7e(0x2aa,0x2f5)][_0x19b269(0x1ac,0x21f)]),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x325b63=0x0;_0x325b63<_0xafb756['u'][_0x19b269(0x100,0x15a)][_0x375e7e(0x37e,0x3a1)];_0x325b63++){_0x3e2a53['array'][_0x325b63]=Math['sqrt'](_0xafb756['u']['array'][_0x325b63]*_0xafb756['u']['array'][_0x325b63]+_0xafb756['v'][_0x19b269(0x100,0xc3)][_0x325b63]*_0xafb756['v']['array'][_0x325b63]),_0x3e2a53[_0x19b269(0x100,0x79)][_0x325b63]!==0x0&&(_0x3e2a53['min']=Math[_0x19b269(0x11a,0x96)](_0x3e2a53['min'],_0x3e2a53['array'][_0x325b63]),_0x3e2a53[_0x375e7e(0x2f3,0x353)]=Math[_0x375e7e(0x3ad,0x353)](_0x3e2a53[_0x19b269(0x15e,0xd6)],_0x3e2a53['array'][_0x325b63]));}_0xafb756[_0x19b269(0xcc,0xb1)]=_0x3e2a53;}function _0x19b269(_0x42b5b8,_0xa3b210){return _0xc18867(_0x42b5b8- -0x3e7,_0xa3b210);}return _0xafb756;}[_0x1e8311(0x27f,0x278)](){var _0x1d6c9a;function _0x8f5c9b(_0x46e122,_0x13e56e){return _0xc18867(_0x13e56e- -0x35f,_0x46e122);}const _0x53d13a=this['scene'],_0x1dc604=_0x53d13a['canvas'],_0x3b7ff7={};_0x3b7ff7['x']=0x0,_0x3b7ff7['y']=0x0;const _0x41f929={};_0x41f929['x']=0x0,_0x41f929['y']=_0x1dc604['clientHeight'];const _0x137318={};_0x137318['x']=_0x1dc604['clientWidth'],_0x137318['y']=0x0;const _0x1e0afe={};_0x1e0afe['x']=_0x1dc604['clientWidth'],_0x1e0afe['y']=_0x1dc604['clientHeight'];const _0x1ca5ae=[_0x3b7ff7,_0x41f929,_0x137318,_0x1e0afe];let _0x58f765=0xb4,_0x4cdf79=-0xb4,_0x420439=0x5a,_0x4b52a4=-0x5a,_0x2361a9=![];for(const _0x6ed682 of _0x1ca5ae){const _0x3def19=_0x53d13a['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x6ed682['x'],_0x6ed682['y']),_0x53d13a[_0x4ee4fc(0x2c3,0x28f)]['ellipsoid']);if(!_0x3def19){_0x2361a9=!![];break;}const _0x223655=_0x53d13a['globe'][_0x4ee4fc(0x2af,0x2f1)]['cartesianToCartographic'](_0x3def19),_0x242593=Cesium$1['Math']['toDegrees'](_0x223655[_0x4ee4fc(0x340,0x300)]),_0x4b44c2=Cesium$1['Math']['toDegrees'](_0x223655['latitude']);_0x58f765=Math['min'](_0x58f765,_0x242593),_0x4cdf79=Math['max'](_0x4cdf79,_0x242593),_0x420439=Math['min'](_0x420439,_0x4b44c2),_0x4b52a4=Math[_0x4ee4fc(0x2fb,0x293)](_0x4b52a4,_0x4b44c2);}if(!_0x2361a9){const _0x13b5c7=new Cesium$1['Cartesian2'](Math[_0x8f5c9b(0x214,0x1e6)](this[_0x4ee4fc(0x313,0x2d7)][_0x4ee4fc(0x27d,0x292)][_0x4ee4fc(0x28f,0x2bb)],_0x58f765),Math['min'](this[_0x4ee4fc(0x28c,0x2d7)][_0x4ee4fc(0x242,0x292)][_0x8f5c9b(0x23c,0x21a)],_0x4cdf79)),_0x19d673=new Cesium$1['Cartesian2'](Math['max'](this[_0x4ee4fc(0x27f,0x2d7)][_0x8f5c9b(0x21f,0x1e5)][_0x8f5c9b(0x1c5,0x178)],_0x420439),Math[_0x8f5c9b(0x21c,0x1a2)](this['windData'][_0x8f5c9b(0x1aa,0x1e5)]['north'],_0x4b52a4)),_0x1e95ed=(_0x13b5c7['y']-_0x13b5c7['x'])*0.05,_0x12a33c=(_0x19d673['y']-_0x19d673['x'])*0.05;_0x13b5c7['x']=Math[_0x8f5c9b(0x1ca,0x1e6)](this['windData'][_0x4ee4fc(0x2c0,0x292)]['west'],_0x13b5c7['x']-_0x1e95ed),_0x13b5c7['y']=Math['min'](this['windData']['bounds'][_0x8f5c9b(0x275,0x21a)],_0x13b5c7['y']+_0x1e95ed),_0x19d673['x']=Math[_0x4ee4fc(0x297,0x293)](this['windData'][_0x4ee4fc(0x2f9,0x292)][_0x4ee4fc(0x1a4,0x225)],_0x19d673['x']-_0x12a33c),_0x19d673['y']=Math['min'](this['windData'][_0x4ee4fc(0x27a,0x292)]['north'],_0x19d673['y']+_0x12a33c),this['viewerParameters']['lonRange']=_0x13b5c7,this['viewerParameters'][_0x4ee4fc(0x23b,0x284)]=_0x19d673;const _0x3151ac=this[_0x4ee4fc(0x2d3,0x2d7)][_0x4ee4fc(0x251,0x292)]['east']-this['windData']['bounds'][_0x8f5c9b(0x293,0x20e)],_0x4cf82a=this['windData']['bounds'][_0x4ee4fc(0x295,0x30d)]-this['windData']['bounds'][_0x8f5c9b(0x1e1,0x178)],_0x38e9a7=(_0x13b5c7['y']-_0x13b5c7['x'])/_0x3151ac,_0x7fcb48=(_0x19d673['y']-_0x19d673['x'])/_0x4cf82a,_0x71d279=Math['min'](_0x38e9a7,_0x7fcb48),_0x18dd5e=0x3e8*_0x71d279;_0x18dd5e>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math[_0x8f5c9b(0x197,0x1a2)](0x3e8,_0x18dd5e)));}function _0x4ee4fc(_0x48b45d,_0x493e56){return _0x1e8311(_0x493e56-0x78,_0x48b45d);}this['viewerParameters']['sceneMode']=this[_0x4ee4fc(0x299,0x2a0)][_0x4ee4fc(0x255,0x2c3)],(_0x1d6c9a=this[_0x4ee4fc(0x320,0x2c0)])===null||_0x1d6c9a===void 0x0||_0x1d6c9a['applyViewerParameters'](this['viewerParameters']);}[_0xc18867(0x50f,0x4c6)](_0xccd333,_0x2accbd){const {bounds:_0x1abf0d,width:_0x39b093,height:_0xb87a7d,u:_0x23d87b,v:_0x2ae917,speed:_0x1d8c0b}=this['windData'],{flipY:_0x56f970}=this['options'];if(_0xccd333<_0x1abf0d['west']||_0xccd333>_0x1abf0d['east']||_0x2accbd<_0x1abf0d[_0x10638e(-0x1f7,-0x1ce)]||_0x2accbd>_0x1abf0d['north'])return null;const _0x5b6bbe=(_0xccd333-_0x1abf0d['west'])/(_0x1abf0d[_0x2c555a(0x528,0x50b)]-_0x1abf0d[_0x10638e(-0x11e,-0x138)])*(_0x39b093-0x1);let _0x249308=(_0x2accbd-_0x1abf0d['south'])/(_0x1abf0d['north']-_0x1abf0d['south'])*(_0xb87a7d-0x1);_0x56f970&&(_0x249308=_0xb87a7d-0x1-_0x249308);const _0x58fb59=Math['floor'](_0x5b6bbe),_0x467af9=Math['floor'](_0x249308),_0x3ab19c=Math[_0x2c555a(0x4d1,0x508)](_0x5b6bbe),_0x13850c=Math[_0x10638e(-0x13a,-0x1a4)](_0x3ab19c+0x1,_0x39b093-0x1),_0xf77092=Math['floor'](_0x249308),_0x1e39a3=Math['min'](_0xf77092+0x1,_0xb87a7d-0x1),_0x72db70=_0x5b6bbe-_0x3ab19c,_0x2e0825=_0x249308-_0xf77092,_0x5ed032=_0x467af9*_0x39b093+_0x58fb59,_0x104502=_0xf77092*_0x39b093+_0x3ab19c,_0x401b8c=_0xf77092*_0x39b093+_0x13850c,_0x1ce518=_0x1e39a3*_0x39b093+_0x3ab19c;function _0x10638e(_0x29dca4,_0x174bcf){return _0x1e8311(_0x174bcf- -0x37b,_0x29dca4);}const _0x4693cc=_0x1e39a3*_0x39b093+_0x13850c,_0x5706de=_0x23d87b[_0x2c555a(0x496,0x40f)][_0x104502],_0x103d98=_0x23d87b[_0x2c555a(0x496,0x505)][_0x401b8c],_0x4c959c=_0x23d87b[_0x2c555a(0x496,0x45c)][_0x1ce518],_0x31a749=_0x23d87b[_0x10638e(-0x15e,-0x1be)][_0x4693cc],_0x56c900=(0x1-_0x72db70)*(0x1-_0x2e0825)*_0x5706de+_0x72db70*(0x1-_0x2e0825)*_0x103d98+(0x1-_0x72db70)*_0x2e0825*_0x4c959c+_0x72db70*_0x2e0825*_0x31a749,_0x2c0b13=_0x2ae917['array'][_0x104502],_0x2cdc9f=_0x2ae917['array'][_0x401b8c],_0x4da26c=_0x2ae917[_0x2c555a(0x496,0x454)][_0x1ce518],_0x45fd8e=_0x2ae917[_0x10638e(-0x21f,-0x1be)][_0x4693cc],_0x2d40ee=(0x1-_0x72db70)*(0x1-_0x2e0825)*_0x2c0b13+_0x72db70*(0x1-_0x2e0825)*_0x2cdc9f+(0x1-_0x72db70)*_0x2e0825*_0x4da26c+_0x72db70*_0x2e0825*_0x45fd8e,_0x1bd505=Math[_0x2c555a(0x511,0x497)](_0x56c900*_0x56c900+_0x2d40ee*_0x2d40ee);function _0x2c555a(_0x1a28b9,_0xab9f2e){return _0xc18867(_0x1a28b9- -0x51,_0xab9f2e);}const _0x4c4017={};_0x4c4017['u']=_0x23d87b['array'][_0x5ed032],_0x4c4017['v']=_0x2ae917[_0x2c555a(0x496,0x4de)][_0x5ed032],_0x4c4017['speed']=_0x1d8c0b['array'][_0x5ed032];const _0x50ece2={};_0x50ece2['u']=_0x56c900,_0x50ece2['v']=_0x2d40ee,_0x50ece2['speed']=_0x1bd505;const _0xfb10f7={};return _0xfb10f7[_0x2c555a(0x4b8,0x454)]=_0x4c4017,_0xfb10f7[_0x2c555a(0x4f8,0x4f6)]=_0x50ece2,_0xfb10f7;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this[_0x297466(0x259,0x20f)]=null,this[_0x472f54(0x18f,0x18a)]=null;function _0x472f54(_0x2a0b50,_0x1c4b26){return _0x1e8311(_0x1c4b26- -0x60,_0x2a0b50);}function _0x297466(_0x5f3834,_0x4afcd3){return _0x1e8311(_0x4afcd3- -0x82,_0x5f3834);}this[_0x472f54(0x1c2,0x14f)]=null,this['age']=null,this['speed']=null;}['destroy'](){for(const _0x4c1551 in this){delete this[_0x4c1551];}}}class CanvasWindField{constructor(_0x13c1b5){this['setOptions'](_0x13c1b5);}get[_0x1e8311(0x190,0x12f)](){return this['_speedRate'];}set[_0xc18867(0x4ba,0x438)](_0x37e2cc){function _0xe41f12(_0xbd5d7a,_0x23084e){return _0x1e8311(_0xbd5d7a- -0x28a,_0x23084e);}this[_0xe41f12(-0xa4,-0x4f)]=(0x64-(_0x37e2cc>0x63?0x63:_0x37e2cc))*0x64;function _0x62fb87(_0x50c36e,_0xaea04c){return _0xc18867(_0x50c36e- -0x54d,_0xaea04c);}this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x62fb87(0x4c,-0x2f)]-this[_0x62fb87(-0x2f,0x0)])/this['_speedRate']];}get['maxAge'](){function _0x1db16a(_0x4b699b,_0x461cd7){return _0xc18867(_0x4b699b- -0x2a4,_0x461cd7);}return this[_0x1db16a(0x241,0x23c)];}set['maxAge'](_0x505183){this['_maxAge']=_0x505183;}['setOptions'](_0x5ea899){function _0x4b33f7(_0x6a1b58,_0x278c95){return _0x1e8311(_0x278c95-0x3a7,_0x6a1b58);}this[_0x4b33f7(0x5b7,0x53a)]=_0x5ea899,this[_0x4b33f7(0x4f6,0x579)]=_0x5ea899[_0x4b33f7(0x59d,0x579)]||0x78,this['speedRate']=_0x5ea899['speedRate']||0x32,this['particles']=[];function _0x2c5818(_0x126b60,_0x3f8a1b){return _0x1e8311(_0x126b60- -0x335,_0x3f8a1b);}const _0x23d217=_0x5ea899[_0x2c5818(-0x19a,-0x1a6)]||0x1000;for(let _0x196464=0x0;_0x196464<_0x23d217;_0x196464++){const _0x43d1c3=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0x43d1c3);}}['setDate'](_0x2f99e2){function _0x187147(_0x3e7992,_0x415329){return _0xc18867(_0x415329- -0x570,_0x3e7992);}this[_0x23e40b(-0x1d3,-0x1e3)]=_0x2f99e2['rows'],this[_0x23e40b(-0x1e4,-0x1cc)]=_0x2f99e2['cols'],this['xmin']=_0x2f99e2[_0x187147(0x9b,0x1d)],this['xmax']=_0x2f99e2[_0x23e40b(-0x199,-0x150)],this['ymin']=_0x2f99e2['ymin'],this[_0x23e40b(-0x173,-0x10a)]=_0x2f99e2['ymax'];function _0x23e40b(_0x5b7d6a,_0x1b17bb){return _0x1e8311(_0x5b7d6a- -0x3e2,_0x1b17bb);}this[_0x187147(-0x7a,-0xbb)]=[];const _0x5528d0=_0x2f99e2[_0x187147(-0x84,0x4)],_0x5125a4=_0x2f99e2[_0x187147(-0x64,-0x50)];let _0x49f97f=![];_0x5528d0['length']===this[_0x23e40b(-0x1d3,-0x178)]&&_0x5528d0[0x0][_0x187147(0x11,0x23)]===this['cols']&&(_0x49f97f=!![]);let _0x5bbe31=0x0,_0x3fddef=null,_0x2031b0=null;for(let _0x61c918=0x0;_0x61c918<this['rows'];_0x61c918++){_0x3fddef=[];for(let _0x353a1e=0x0;_0x353a1e<this['cols'];_0x353a1e++,_0x5bbe31++){_0x49f97f?_0x2031b0=this[_0x23e40b(-0x158,-0x15d)](_0x5528d0[_0x61c918][_0x353a1e],_0x5125a4[_0x61c918][_0x353a1e]):_0x2031b0=this[_0x187147(0xcd,0x44)](_0x5528d0[_0x5bbe31],_0x5125a4[_0x5bbe31]),_0x3fddef[_0x23e40b(-0x150,-0x18e)](_0x2031b0);}this[_0x23e40b(-0x257,-0x2ba)]['push'](_0x3fddef);}!this['options'][_0x23e40b(-0x23f,-0x21a)]&&this['grid']['reverse']();}[_0x1e8311(0x198,0x153)](){delete this[_0x4b9eaf(0x5c6,0x5b1)],delete this['cols'];function _0x4b9eaf(_0x436fc8,_0x3d8122){return _0x1e8311(_0x3d8122-0x3a2,_0x436fc8);}function _0x2c6719(_0x2ccc7c,_0x48ebcd){return _0x1e8311(_0x48ebcd- -0x144,_0x2ccc7c);}delete this[_0x2c6719(0xaa,0x11f)],delete this['xmax'],delete this[_0x4b9eaf(0x580,0x596)],delete this[_0x2c6719(0x145,0x12b)],delete this[_0x4b9eaf(0x4fd,0x52d)],delete this['particles'];}[_0x1e8311(0x1cc,0x194)](_0xb54ae9,_0x56cc2c){function _0x647030(_0x2891f1,_0x38135d){return _0xc18867(_0x2891f1- -0x57f,_0x38135d);}function _0x3b38fe(_0x388343,_0x27e4bd){return _0xc18867(_0x388343- -0x719,_0x27e4bd);}const _0x514122=(_0xb54ae9-this[_0x647030(0xe,-0xc)])/(this[_0x647030(-0xc,0x45)]-this[_0x3b38fe(-0x18c,-0x17d)])*(this[_0x647030(-0x57,-0xd1)]-0x1),_0xedf6d=(this[_0x3b38fe(-0x180,-0xfc)]-_0x56cc2c)/(this[_0x3b38fe(-0x180,-0x12a)]-this['ymin'])*(this[_0x3b38fe(-0x1e0,-0x23c)]-0x1);return[_0x514122,_0xedf6d];}['getUVByXY'](_0x7e7f2f,_0x56e582){if(_0x7e7f2f<0x0||_0x7e7f2f>=this[_0x5eba4d(-0x17c,-0x1d4)]||_0x56e582>=this['rows'])return[0x0,0x0,0x0];const _0x558041=Math[_0x5eba4d(-0x182,-0x1ee)](_0x7e7f2f),_0x43d056=Math['floor'](_0x56e582);if(_0x558041===_0x7e7f2f&&_0x43d056===_0x56e582)return this['grid'][_0x56e582][_0x7e7f2f];const _0x467e2a=_0x558041+0x1;function _0x51d8aa(_0x5c27f5,_0x5b722c){return _0xc18867(_0x5c27f5- -0x447,_0x5b722c);}const _0x4bbb6a=_0x43d056+0x1,_0x26cf06=this[_0x51d8aa(0x103,0x117)](_0x558041,_0x43d056);function _0x5eba4d(_0x4d07ff,_0x23a90c){return _0x1e8311(_0x4d07ff- -0x37a,_0x23a90c);}const _0x1a5b8f=this[_0x5eba4d(-0x15a,-0x13f)](_0x467e2a,_0x43d056),_0x5b5324=this['getUVByXY'](_0x558041,_0x4bbb6a),_0x92346b=this['getUVByXY'](_0x467e2a,_0x4bbb6a);let _0x10b0ee=null;try{_0x10b0ee=this['_bilinearInterpolation'](_0x7e7f2f-_0x558041,_0x56e582-_0x43d056,_0x26cf06,_0x1a5b8f,_0x5b5324,_0x92346b);}catch(_0x5da443){console[_0x51d8aa(0xa9,0xd6)](_0x7e7f2f,_0x56e582);}return _0x10b0ee;}[_0x1e8311(0x187,0x12d)](_0x2dbfc8,_0x31db07,_0x36db23,_0x3096d0,_0x3d2f94,_0x9863b2){const _0x429962=0x1-_0x2dbfc8,_0x329469=0x1-_0x31db07,_0x4009b9=_0x429962*_0x329469,_0x3e328d=_0x2dbfc8*_0x329469,_0xe15366=_0x429962*_0x31db07,_0x37cc2f=_0x2dbfc8*_0x31db07,_0xd443d4=_0x36db23[0x0]*_0x4009b9+_0x3096d0[0x0]*_0x3e328d+_0x3d2f94[0x0]*_0xe15366+_0x9863b2[0x0]*_0x37cc2f,_0x55fb7c=_0x36db23[0x1]*_0x4009b9+_0x3096d0[0x1]*_0x3e328d+_0x3d2f94[0x1]*_0xe15366+_0x9863b2[0x1]*_0x37cc2f;return this['_calcUV'](_0xd443d4,_0x55fb7c);}[_0xc18867(0x5b4,0x537)](_0x59c791,_0x5da917){return[+_0x59c791,+_0x5da917,Math['sqrt'](_0x59c791*_0x59c791+_0x5da917*_0x5da917)];}[_0x1e8311(0x258,0x2a5)](_0x4bb41b,_0x124963){if(!this['isInExtent'](_0x4bb41b,_0x124963))return null;const _0x13e5b7=this['toGridXY'](_0x4bb41b,_0x124963),_0x368ea6=this['getUVByXY'](_0x13e5b7[0x0],_0x13e5b7[0x1]);return _0x368ea6;}['isInExtent'](_0x1ec983,_0x3d6e4e){function _0x49a403(_0xe69085,_0x8869d1){return _0x1e8311(_0x8869d1-0x398,_0xe69085);}function _0xbd7299(_0x17ec68,_0x5cea64){return _0x1e8311(_0x17ec68-0x4f,_0x5cea64);}return _0x1ec983>=this[_0xbd7299(0x2b2,0x2a0)]&&_0x1ec983<=this[_0x49a403(0x59d,0x5e1)]&&_0x3d6e4e>=this[_0xbd7299(0x243,0x1de)]&&_0x3d6e4e<=this[_0x49a403(0x680,0x607)]?!![]:![];}[_0xc18867(0x4f9,0x4ad)](){const _0x4541a2=fRandomByfloat(this[_0x1f1b13(0x59a,0x5f7)],this['xmax']);function _0x1f1b13(_0x5c2817,_0x908562){return _0x1e8311(_0x5c2817-0x337,_0x908562);}const _0x5c14af=fRandomByfloat(this['ymin'],this['ymax']),_0x35434c={};function _0x27d701(_0xac0e9d,_0xd86557){return _0xc18867(_0xac0e9d- -0x722,_0xd86557);}return _0x35434c['lat']=_0x5c14af,_0x35434c[_0x27d701(-0x20b,-0x26d)]=_0x4541a2,_0x35434c;}['getParticles'](){let _0x949188,_0x462a76,_0x131cb3;for(let _0x2df101=0x0,_0xfae3d8=this[_0x4780bd(-0xa5,-0xc3)][_0x4780bd(-0xa8,-0x5f)];_0x2df101<_0xfae3d8;_0x2df101++){let _0x13334a=this['particles'][_0x2df101];_0x13334a['age']<=0x0&&(_0x13334a=this[_0x4780bd(-0xd3,-0xb8)](_0x13334a));if(_0x13334a[_0x4780bd(-0x5b,-0x3a)]>0x0){const _0xdcf8f6=_0x13334a['tlng'],_0x181538=_0x13334a[_0x4780bd(-0xa9,-0x119)];_0x131cb3=this[_0x4780bd(-0x1e,-0x70)](_0xdcf8f6,_0x181538),_0x131cb3?(_0x949188=_0xdcf8f6+this[_0x20c145(0x3bb,0x35b)][0x0]*_0x131cb3[0x0],_0x462a76=_0x181538+this['_calc_speedRate'][0x1]*_0x131cb3[0x1],_0x13334a[_0x20c145(0x3e0,0x3aa)]=_0xdcf8f6,_0x13334a['lat']=_0x181538,_0x13334a[_0x4780bd(-0x15a,-0xde)]=_0x949188,_0x13334a['tlat']=_0x462a76,_0x13334a[_0x20c145(0x37c,0x3e8)]=_0x131cb3[0x2],_0x13334a['age']--):_0x13334a[_0x20c145(0x481,0x459)]=0x0;}}function _0x4780bd(_0x186352,_0x3f8ccc){return _0xc18867(_0x3f8ccc- -0x5f2,_0x186352);}function _0x20c145(_0x4b40e2,_0x5b57ec){return _0x1e8311(_0x4b40e2-0x1f3,_0x5b57ec);}return this['particles'];}[_0xc18867(0x53a,0x539)](_0x4abc84){let _0x28b4d9,_0x59ab8c;for(let _0xc5ce3f=0x0;_0xc5ce3f<0x1e;_0xc5ce3f++){_0x28b4d9=this['getRandomLatLng'](),_0x59ab8c=this['getUVByPoint'](_0x28b4d9['lng'],_0x28b4d9['lat']);if(_0x59ab8c&&_0x59ab8c[0x2]>0x0)break;}if(!_0x59ab8c)return _0x4abc84;const _0x43124b=_0x28b4d9[_0x279b35(0x2a8,0x270)]+this['_calc_speedRate'][0x0]*_0x59ab8c[0x0],_0xb00a44=_0x28b4d9['lat']+this['_calc_speedRate'][0x1]*_0x59ab8c[0x1];_0x4abc84[_0x1e2534(0x27b,0x2f2)]=_0x28b4d9['lng'],_0x4abc84['lat']=_0x28b4d9['lat'],_0x4abc84['tlng']=_0x43124b,_0x4abc84['tlat']=_0xb00a44,_0x4abc84[_0x1e2534(0x355,0x393)]=Math['round'](0xa+Math['random']()*this[_0x1e2534(0x2e4,0x2d7)]);function _0x279b35(_0x460423,_0x29f7f3){return _0xc18867(_0x29f7f3- -0x2a7,_0x460423);}_0x4abc84[_0x279b35(0x253,0x20c)]=_0x59ab8c[0x2];function _0x1e2534(_0x5619bd,_0x32b007){return _0xc18867(_0x32b007- -0x225,_0x5619bd);}return _0x4abc84;}[_0x1e8311(0x22a,0x1a2)](){for(const _0x16d0c5 in this){delete this[_0x16d0c5];}}}function fRandomByfloat(_0xbbd871,_0x3afb2e){return _0xbbd871+Math['random']()*(_0x3afb2e-_0xbbd871);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x406529={}){function _0x31fe1c(_0x2a6ac7,_0x17d119){return _0x1e8311(_0x2a6ac7-0x21d,_0x17d119);}super(_0x406529),this[_0x31fe1c(0x461,0x3ea)](_0x406529),this[_0x31fe1c(0x3a9,0x3dc)]=null;function _0x5eea46(_0x4facf7,_0x2deaef){return _0x1e8311(_0x4facf7- -0x332,_0x2deaef);}_0x406529['colors']&&_0x406529[_0x5eea46(-0x19d,-0x1ad)]&&(this[_0x5eea46(-0xd5,-0x159)]=new mars3d__namespace['ColorRamp'](_0x406529));}['_setOptionsHook'](_0x55ae1c,_0x8c64cf){this[_0x23ed4f(0x49b,0x4e8)]=0x3e8/(_0x55ae1c['frameRate']||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![];function _0x59b82a(_0x670e62,_0x3d3e7e){return _0x1e8311(_0x670e62- -0x22f,_0x3d3e7e);}function _0x23ed4f(_0x5b8d1a,_0x2f3171){return _0xc18867(_0x5b8d1a- -0xf5,_0x2f3171);}this['color']=_0x55ae1c[_0x59b82a(-0xa5,-0x113)]||_0x23ed4f(0x44b,0x4ad),this['lineWidth']=_0x55ae1c[_0x23ed4f(0x463,0x3ee)]||0x1,this['fixedHeight']=_0x55ae1c['fixedHeight']??0x0,this['flipY']=_0x55ae1c[_0x59b82a(-0x8c,-0x57)]??![],this['windField']&&this[_0x23ed4f(0x44a,0x42e)]['setOptions'](_0x55ae1c);}get['layer'](){return this['canvas'];}get['canvasWidth'](){return this['_map']['scene']['canvas']['clientWidth'];}get['canvasHeight'](){function _0x1e82ed(_0x227e7e,_0x388492){return _0x1e8311(_0x388492- -0x28c,_0x227e7e);}function _0x2d2c66(_0x43c1f3,_0x476b50){return _0xc18867(_0x476b50- -0x41c,_0x43c1f3);}return this[_0x1e82ed(-0xd3,-0x50)]['scene'][_0x1e82ed(-0xa2,-0x100)]['clientHeight'];}get['pointerEvents'](){function _0x57009c(_0xbe5e6e,_0x2652e8){return _0xc18867(_0xbe5e6e- -0x70d,_0x2652e8);}return this[_0x57009c(-0x1f5,-0x245)];}set[_0x1e8311(0x1c2,0x20e)](_0x57d6da){function _0x4b3720(_0x5be6ec,_0x55b4c2){return _0xc18867(_0x5be6ec- -0x70e,_0x55b4c2);}this['_pointerEvents']=_0x57d6da;if(!this[_0x5ad94d(0x447,0x490)])return;function _0x5ad94d(_0x1929a7,_0x5821ba){return _0x1e8311(_0x5821ba-0x304,_0x1929a7);}_0x57d6da?this['canvas'][_0x5ad94d(0x5e2,0x586)]['pointer-events']='all':this['canvas'][_0x5ad94d(0x599,0x586)][_0x5ad94d(0x4eb,0x51c)]='none';}get['particlesNumber'](){function _0x5b8f5c(_0x4f4687,_0x31e323){return _0xc18867(_0x31e323- -0x28e,_0x4f4687);}return this[_0x5b8f5c(0x296,0x22f)]['particlesNumber'];}set['particlesNumber'](_0x309f30){this['options']['particlesNumber']=_0x309f30,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x17d08e(_0x38de15,_0x2be7ca){return _0x1e8311(_0x2be7ca-0x1d3,_0x38de15);}return this[_0x17d08e(0x2e8,0x366)]['speedRate'];}set['speedRate'](_0xbb704e){this['options']['speedRate']=_0xbb704e,this['windField']&&(this['windField']['speedRate']=_0xbb704e);}get[_0x1e8311(0x1d2,0x203)](){return this['options']['maxAge'];}set['maxAge'](_0x59bade){this[_0x5e5065(-0x9a,-0xe9)][_0x5e5065(-0xd9,-0xaa)]=_0x59bade;function _0x5e5065(_0x277e94,_0x379e65){return _0x1e8311(_0x379e65- -0x27c,_0x277e94);}function _0x2eeec5(_0x23715b,_0x28d616){return _0x1e8311(_0x28d616- -0x57,_0x23715b);}this['windField']&&(this[_0x5e5065(-0xe3,-0x67)][_0x5e5065(-0xd1,-0xaa)]=_0x59bade);}get['data'](){return this['windData'];}set['data'](_0x2f0e19){function _0x2d8833(_0x21411c,_0x4ae6d1){return _0xc18867(_0x4ae6d1- -0x5df,_0x21411c);}this[_0x2d8833(-0x12e,-0xd2)](_0x2f0e19);}get[_0xc18867(0x531,0x522)](){let _0x181f60=this['windData'][_0x5929d3(0xd4,0xc6)],_0x3f0dff=this[_0x5929d3(0x5f,0xc2)][_0x5929d3(0x91,0xac)],_0xfbbdb=this[_0x5a3e46(0x6c,0x0)]['ymin'],_0x8008b9=this[_0x5a3e46(0x6c,0x4d)]['ymax'];_0x3f0dff>=0x167&&_0x181f60===0x0&&(_0x181f60=-0xb4,_0x3f0dff=0xb4);_0x181f60=Math[_0x5a3e46(0x28,0x5e)](_0x181f60,-0xb4),_0x3f0dff=Math[_0x5a3e46(-0x1c,0x43)](_0x3f0dff,0xb4),_0xfbbdb=Math['max'](_0xfbbdb,-0x5a);function _0x5a3e46(_0x2405b4,_0x25e338){return _0xc18867(_0x2405b4- -0x51d,_0x25e338);}_0x8008b9=Math['min'](_0x8008b9,0x5a);function _0x5929d3(_0x5b2831,_0xb01864){return _0x1e8311(_0xb01864- -0x19d,_0x5b2831);}return Cesium['Rectangle'][_0x5a3e46(-0x13,-0x3c)](_0x181f60,_0xfbbdb,_0x3f0dff,_0x8008b9);}['_showHook'](_0x4f86b7){function _0x430e4c(_0x5e8f3f,_0x5b0daa){return _0x1e8311(_0x5b0daa- -0x374,_0x5e8f3f);}function _0x26cb3f(_0x5bd618,_0x16dce2){return _0xc18867(_0x5bd618- -0x3c3,_0x16dce2);}_0x4f86b7?this[_0x26cb3f(0x126,0xf1)]():(this['windData']&&(this['options']['data']=this[_0x430e4c(-0xbf,-0x115)]),this['_removedHook']());}[_0x1e8311(0x280,0x2d1)](){function _0x23925c(_0x534322,_0x48333e){return _0x1e8311(_0x534322- -0x396,_0x48333e);}function _0x4e7a6d(_0x40ddc4,_0x46ff53){return _0xc18867(_0x46ff53- -0x31,_0x40ddc4);}this['options'][_0x4e7a6d(0x497,0x4ec)]?this[_0x23925c(-0x161,-0x12c)]():this[_0x4e7a6d(0x585,0x50e)]=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this['_createCanvas']();const _0x5167f7={};_0x5167f7['willReadFrequently']=!![];function _0x54d58a(_0x2a6db5,_0x289ebb){return _0x1e8311(_0x289ebb- -0x3e2,_0x2a6db5);}this['canvasContext']=this['canvas']['getContext']('2d',_0x5167f7),this[_0x54d58a(-0x1e2,-0x249)]();function _0x3b7b4e(_0x6723d4,_0x2dbe2d){return _0x1e8311(_0x6723d4- -0x2a1,_0x2dbe2d);}this[_0x54d58a(-0x285,-0x24f)]['data']&&this['setData'](this['options']['data']);}['_removedHook'](){function _0xa8dac7(_0x805106,_0x33c22e){return _0xc18867(_0x33c22e- -0x342,_0x805106);}this[_0xa8dac7(0x151,0x180)](),this['unbindEvent'](),this['canvas']&&(this['_map']['container']['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x5f4b19=mars3d__namespace['DomUtil']['create']('canvas','mars3d-canvasWind',this['_map']['container']);function _0x5b35a2(_0x237fd4,_0x5e64c1){return _0x1e8311(_0x5e64c1-0x196,_0x237fd4);}_0x5f4b19['style'][_0x26a61c(0x383,0x3e2)]='absolute';function _0x26a61c(_0x428219,_0x5c8998){return _0xc18867(_0x5c8998- -0xdc,_0x428219);}return _0x5f4b19['style'][_0x26a61c(0x439,0x422)]='0px',_0x5f4b19['style']['left']=_0x5b35a2(0x3ad,0x374),_0x5f4b19['style'][_0x26a61c(0x422,0x48d)]=this['_map'][_0x5b35a2(0x34c,0x3be)]['canvas']['clientWidth']+'px',_0x5f4b19['style']['height']=this[_0x26a61c(0x4f6,0x48a)][_0x5b35a2(0x3a3,0x3be)][_0x5b35a2(0x299,0x322)][_0x5b35a2(0x312,0x381)]+'px',_0x5f4b19[_0x26a61c(0x4c2,0x4d0)][_0x5b35a2(0x306,0x358)]=this['_pointerEvents']?'auto':'none',_0x5f4b19['style']['zIndex']=this[_0x5b35a2(0x2c2,0x329)]['zIndex']??0x9,_0x5f4b19['width']=this[_0x5b35a2(0x417,0x3d2)][_0x26a61c(0x4b8,0x476)]['canvas'][_0x26a61c(0x49e,0x432)],_0x5f4b19['height']=this[_0x26a61c(0x409,0x48a)]['scene']['canvas']['clientHeight'],_0x5f4b19;}[_0xc18867(0x4ca,0x46a)](){function _0x330caa(_0x1ed090,_0x5b094d){return _0xc18867(_0x5b094d- -0x4fa,_0x1ed090);}function _0x442d96(_0x3f689a,_0x10498b){return _0x1e8311(_0x3f689a-0x1e5,_0x10498b);}this['canvas']&&(this['canvas'][_0x330caa(0x6e,0xb2)][_0x330caa(0x61,0x6f)]=this['_map']['scene'][_0x442d96(0x371,0x387)][_0x330caa(-0x52,0x14)]+'px',this[_0x330caa(-0x5,-0x44)]['style']['height']=this[_0x442d96(0x421,0x415)]['scene']['canvas']['clientHeight']+'px',this['canvas'][_0x442d96(0x424,0x45f)]=this[_0x330caa(0xd5,0x6c)][_0x330caa(-0xa,0x58)]['canvas'][_0x442d96(0x3c9,0x3f2)],this[_0x442d96(0x371,0x3e1)]['height']=this['_map'][_0x442d96(0x40d,0x449)][_0x330caa(-0x68,-0x44)][_0x330caa(0xa1,0x1b)]);}[_0x1e8311(0x199,0x154)](){const _0x3f8dcb=this;function _0x137131(_0x181fed,_0x4ef6a4){return _0x1e8311(_0x4ef6a4-0x1e1,_0x181fed);}let _0x2cbe90=Date[_0x1544e9(-0x1c0,-0x138)]();(function _0xd0d3bf(){if(_0x3f8dcb[_0x4225da(-0xf0,-0xa6)])return;function _0x4225da(_0x5cf887,_0x478727){return _0x1544e9(_0x5cf887,_0x478727-0x16);}_0x3f8dcb['_animateFrame']=window[_0x4225da(-0xe9,-0x90)](_0xd0d3bf);function _0x4992ac(_0x356a63,_0x433b0a){return _0x1544e9(_0x356a63,_0x433b0a-0x401);}if(_0x3f8dcb[_0x4225da(-0x129,-0xdf)]&&_0x3f8dcb[_0x4225da(-0xea,-0x107)]){const _0x18c0f7=Date['now'](),_0x242147=_0x18c0f7-_0x2cbe90;_0x242147>_0x3f8dcb[_0x4225da(-0x36,-0xb6)]&&(_0x2cbe90=_0x18c0f7-_0x242147%_0x3f8dcb[_0x4225da(-0xd5,-0xb6)],_0x3f8dcb['update']());}}());function _0x1544e9(_0x2e4b4c,_0x11f0c0){return _0xc18867(_0x11f0c0- -0x65c,_0x2e4b4c);}window[_0x137131(0x45d,0x43b)]('resize',this['resize'][_0x1544e9(-0x1bb,-0x169)](this),![]),this[_0x1544e9(-0xf4,-0x101)]=![],this[_0x137131(0x3f3,0x468)]=![],this['options'][_0x137131(0x435,0x3c3)]&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x137131(0x414,0x410)]['mouseUp'],this['_onMouseUpEvent'],this));}[_0xc18867(0x51c,0x591)](){function _0x26d6f8(_0x400678,_0x518aa4){return _0x1e8311(_0x400678- -0x9b,_0x518aa4);}window[_0x14b9b9(0x19f,0x186)](this[_0x26d6f8(0x1f9,0x209)]),delete this[_0x14b9b9(0x1f5,0x21b)];function _0x14b9b9(_0x31e418,_0x1416e1){return _0x1e8311(_0x1416e1- -0x79,_0x31e418);}window[_0x26d6f8(0x121,0x137)]('resize',this['resize']),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x26d6f8(0x194,0x1b0)]['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x14b9b9(0x224,0x1e8)](mars3d__namespace['EventType']['mouseUp'],this[_0x14b9b9(0x18c,0x13f)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x26d6f8(0x1cf,0x248)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x2d3109){clearTimeout(this[_0x5cd8ac(-0x20b,-0x240)]);if(!this['show']||!this[_0x5cd8ac(-0x2cf,-0x253)])return;function _0x536fd2(_0x504ed9,_0x1d4ae2){return _0x1e8311(_0x1d4ae2- -0xf0,_0x504ed9);}function _0x5cd8ac(_0x33bed2,_0x4b2f5e){return _0xc18867(_0x4b2f5e- -0x709,_0x33bed2);}this['canvas']['style'][_0x5cd8ac(-0x2a5,-0x228)]='hidden',this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;this['redraw'](),this['canvas']['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x152e1e){this['mouse_down']=!![],this['_map'][_0x4d27d1(0x18c,0x12b)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x4d27d1(_0x2e8bd7,_0x239c0d){return _0x1e8311(_0x2e8bd7- -0xd5,_0x239c0d);}this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x4031b0){function _0x5c004e(_0x17671e,_0x1af013){return _0xc18867(_0x1af013- -0x57c,_0x17671e);}if(!this[_0x2e58ca(-0x59,-0xb6)]||!this['canvas'])return;function _0x2e58ca(_0x2c2a69,_0x4b4e4e){return _0x1e8311(_0x4b4e4e- -0x2f3,_0x2c2a69);}this[_0x2e58ca(-0xcd,-0xc2)]&&(this['canvas']['style']['visibility']=_0x2e58ca(-0x18d,-0x141),this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x18e546){if(!this['show']||!this['canvas'])return;this[_0x288edd(0x57e,0x5e7)][_0x114c9d(0x4cf,0x51b)](mars3d__namespace[_0x114c9d(0x521,0x4e9)]['mouseMove'],this[_0x288edd(0x5ff,0x5dd)],this);this[_0x114c9d(0x56b,0x4eb)]&&this['mouse_move']&&this[_0x114c9d(0x4fd,0x48f)]();this['canvas']['style']['visibility']=_0x114c9d(0x585,0x52c),this[_0x288edd(0x5f0,0x5dc)]=![];function _0x114c9d(_0x213e7,_0x107413){return _0x1e8311(_0x107413-0x2ba,_0x213e7);}function _0x288edd(_0x35cf91,_0x57c16c){return _0xc18867(_0x57c16c-0x81,_0x35cf91);}this['mouse_move']=![];}['setData'](_0x3a35dc){this['clear'](),this['windData']=_0x3a35dc;function _0x565fe2(_0x4468e3,_0xdba013){return _0xc18867(_0xdba013- -0x27a,_0x4468e3);}this[_0x565fe2(0x29b,0x2c5)]['setDate'](_0x3a35dc),this['redraw']();}[_0x1e8311(0x1d5,0x235)](){if(!this['show'])return;function _0x59cf99(_0x4963a0,_0x173ce9){return _0x1e8311(_0x4963a0-0x6b,_0x173ce9);}this[_0x59cf99(0x280,0x22c)]['setOptions'](this['options']),this['update']();}['update'](){if(this['_updateIng'])return;this[_0x535dff(-0x6f,-0x85)]=!![];function _0x535dff(_0x47e3d5,_0xa61c67){return _0x1e8311(_0xa61c67- -0x297,_0x47e3d5);}function _0x18a677(_0xd993df,_0x2fedbb){return _0xc18867(_0x2fedbb- -0x2f,_0xd993df);}if(this['worker'])this['windField']['update']();else{const _0x4ef773=this[_0x18a677(0x4ad,0x510)]['getParticles']();this['_drawLines'](_0x4ef773);}this['_updateIng']=![];}['_drawLines'](_0xc1f3b3){this[_0x33b883(-0x17,-0x7)]=_0xc1f3b3,this['canvasContext']['globalCompositeOperation']=_0x50b7c6(-0x227,-0x1f3);function _0x33b883(_0x522c92,_0x2a3624){return _0xc18867(_0x522c92- -0x5c4,_0x2a3624);}this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']=_0x50b7c6(-0x26a,-0x232),this['canvasContext'][_0x50b7c6(-0x1c7,-0x18b)]=0.9;const _0x8609e9=this['_map']['scene']['mode']!==Cesium['SceneMode'][_0x33b883(-0x10b,-0xca)],_0x3682cf=this[_0x50b7c6(-0x210,-0x24b)]*0.25;function _0x50b7c6(_0x2388e1,_0x4cc199){return _0x1e8311(_0x4cc199- -0x3f9,_0x2388e1);}if(this['_colorRamp'])for(let _0x1c796c=0x0,_0x5d4663=_0xc1f3b3[_0x50b7c6(-0x1e6,-0x190)];_0x1c796c<_0x5d4663;_0x1c796c++){const _0xf4167e=_0xc1f3b3[_0x1c796c],_0x22ad38=this['_tomap'](_0xf4167e,_0xf4167e['lng'],_0xf4167e['lat'],_0xf4167e['alt']),_0x57f8e5=this[_0x50b7c6(-0x288,-0x253)](_0xf4167e,_0xf4167e['tlng'],_0xf4167e[_0x50b7c6(-0x229,-0x24a)],_0xf4167e[_0x33b883(-0xfc,-0x17c)]);if(!_0x22ad38||!_0x57f8e5)continue;if(_0x8609e9&&Math[_0x33b883(-0xae,-0xe8)](_0x22ad38[0x0]-_0x57f8e5[0x0])>=_0x3682cf)continue;this[_0x33b883(-0xf5,-0xc0)][_0x33b883(-0x100,-0xc7)](),this['canvasContext'][_0x33b883(-0x6c,-0xbd)]=this['lineWidth'],this[_0x33b883(-0xf5,-0x151)]['strokeStyle']=this[_0x33b883(-0x3d,-0xb1)][_0x50b7c6(-0x1fd,-0x1d3)](_0xf4167e[_0x33b883(-0x111,-0xec)]),this[_0x33b883(-0xf5,-0x127)]['moveTo'](_0x22ad38[0x0],_0x22ad38[0x1]),this['canvasContext'][_0x50b7c6(-0x1a0,-0x218)](_0x57f8e5[0x0],_0x57f8e5[0x1]),this[_0x50b7c6(-0x2b8,-0x254)]['stroke']();}else{this[_0x50b7c6(-0x25a,-0x254)][_0x33b883(-0x100,-0x120)](),this[_0x50b7c6(-0x23b,-0x254)][_0x33b883(-0x6c,-0x1b)]=this['lineWidth'],this['canvasContext'][_0x50b7c6(-0x253,-0x204)]=this[_0x50b7c6(-0x2c0,-0x26f)];for(let _0x41ce37=0x0,_0x2761a8=_0xc1f3b3[_0x50b7c6(-0x1ca,-0x190)];_0x41ce37<_0x2761a8;_0x41ce37++){const _0x1d5011=_0xc1f3b3[_0x41ce37],_0x5550d0=this['_tomap'](_0x1d5011,_0x1d5011[_0x33b883(-0xad,-0x68)],_0x1d5011[_0x33b883(-0x9,-0x7e)],_0x1d5011['alt']),_0x5cd5e3=this['_tomap'](_0x1d5011,_0x1d5011[_0x50b7c6(-0x22e,-0x20f)],_0x1d5011['tlat'],_0x1d5011['talt']);if(!_0x5550d0||!_0x5cd5e3)continue;if(_0x8609e9&&Math[_0x33b883(-0xae,-0x57)](_0x5550d0[0x0]-_0x5cd5e3[0x0])>=_0x3682cf)continue;this['canvasContext']['moveTo'](_0x5550d0[0x0],_0x5550d0[0x1]),this['canvasContext']['lineTo'](_0x5cd5e3[0x0],_0x5cd5e3[0x1]);}this['canvasContext'][_0x50b7c6(-0x1b7,-0x1cd)]();}}[_0x1e8311(0x1a6,0x1fd)](_0x358b90,_0x2dd17f,_0x1b8e15,_0x5c80e3){function _0x3615db(_0xf06194,_0x29af0f){return _0x1e8311(_0x29af0f- -0x250,_0xf06194);}const _0x54c084=Cesium['Cartesian3']['fromDegrees'](_0x2dd17f,_0x1b8e15,_0x5c80e3??this['fixedHeight']),_0x3ebeaf=this['_map'][_0x196ac7(0x182,0xfe)];if(_0x3ebeaf[_0x3615db(0x6f,-0x5)]===Cesium['SceneMode'][_0x3615db(-0x43,-0xc1)]){const _0x6d6869=new Cesium[(_0x3615db(-0xb4,-0x3d))](_0x3ebeaf['globe'][_0x196ac7(0x13f,0x14f)],_0x3ebeaf[_0x196ac7(0x132,0x127)][_0x196ac7(0xd4,0xdf)]),_0x240559=_0x6d6869[_0x196ac7(0x190,0x13e)](_0x54c084);if(!_0x240559)return _0x358b90[_0x3615db(0x78,0x3e)]=0x0,null;}function _0x196ac7(_0x9aeb3e,_0x407df5){return _0xc18867(_0x407df5- -0x454,_0x9aeb3e);}const _0x3bf860=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map'][_0x3615db(-0x84,-0x28)],_0x54c084);return _0x3bf860?[_0x3bf860['x'],_0x3bf860['y']]:null;}['clear'](){this['windField']['clear'](),delete this['windData'];}['initWorker'](){this['worker']=new Worker(this[_0x125801(0x4db,0x496)]['worker']);function _0x4ee559(_0x1ca5da,_0x14f443){return _0xc18867(_0x14f443- -0x29c,_0x1ca5da);}this[_0x4ee559(0x2b4,0x281)][_0x4ee559(0x2ad,0x28a)]=_0x57f80f=>{this['_drawLines'](_0x57f80f['data']['particles']);function _0x5d0d70(_0x26c09f,_0x41767f){return _0x125801(_0x41767f-0x6a,_0x26c09f);}this[_0x5d0d70(0x5b6,0x5ed)]=![];};function _0x125801(_0x45b295,_0x18daad){return _0xc18867(_0x45b295-0x1e,_0x18daad);}this[_0x125801(0x55d,0x4d4)]={'init':_0x12c9ea=>{const _0x7d8b0e={};function _0x2761c9(_0x49ff4c,_0x4256d4){return _0x125801(_0x49ff4c- -0xc8,_0x4256d4);}function _0x2c67a5(_0x476c08,_0x4a8a4b){return _0x125801(_0x4a8a4b- -0x438,_0x476c08);}_0x7d8b0e[_0x2761c9(0x491,0x514)]='init',_0x7d8b0e['options']=_0x12c9ea,this[_0x2c67a5(0x11e,0x103)]['postMessage'](_0x7d8b0e);},'setOptions':_0x43c25f=>{function _0x1831a9(_0x492bee,_0x1e290e){return _0x125801(_0x492bee- -0x4,_0x1e290e);}const _0x4c3ad4={};function _0x20a8a4(_0x2e59ba,_0x3b5789){return _0x125801(_0x3b5789- -0x4d6,_0x2e59ba);}_0x4c3ad4[_0x20a8a4(0x7c,0x83)]='setOptions',_0x4c3ad4[_0x20a8a4(0x7b,0x5)]=_0x43c25f,this['worker'][_0x20a8a4(-0x3f,0x43)](_0x4c3ad4);},'setDate':_0x3aa5b5=>{function _0x18b43c(_0x56d911,_0x4dbe8e){return _0x125801(_0x56d911- -0x397,_0x4dbe8e);}const _0x572141={};_0x572141[_0x18b43c(0x1c2,0x14e)]='setDate';function _0x57e198(_0x2c1cd2,_0x2de097){return _0x4ee559(_0x2c1cd2,_0x2de097- -0x95);}_0x572141['data']=_0x3aa5b5,this['worker'][_0x18b43c(0x182,0x196)](_0x572141);},'update':()=>{if(this[_0x48b3e0(0x267,0x22e)])return;this[_0xab2d6(0x4fb,0x4b5)]=!![];function _0x48b3e0(_0x5aaa9e,_0x1fcf6c){return _0x4ee559(_0x1fcf6c,_0x5aaa9e- -0x62);}const _0x1fec7c={};_0x1fec7c[_0x48b3e0(0x23d,0x20f)]=_0x48b3e0(0x22c,0x2ae);function _0xab2d6(_0x36622c,_0x42579d){return _0x125801(_0x42579d- -0xce,_0x36622c);}this[_0xab2d6(0x3ea,0x46d)]['postMessage'](_0x1fec7c);},'clear':()=>{function _0x5bd34e(_0x3dcdeb,_0x285e07){return _0x125801(_0x3dcdeb- -0xa,_0x285e07);}const _0x5811b5={};_0x5811b5['type']='clear',this['worker'][_0x5bd34e(0x50f,0x53b)](_0x5811b5);}},this[_0x125801(0x55d,0x5c9)]['init'](this['options']);}}mars3d__namespace['LayerUtil'][_0xc18867(0x59a,0x5bf)](_0x1e8311(0x256,0x213),CanvasWindLayer),mars3d__namespace['layer'][_0xc18867(0x4af,0x4b5)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0xc18867(0x5b9,0x5c7)]=WindUtil,exports[_0x1e8311(0x27e,0x278)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0xc18867(0x548,0x58a)]=WindLayer,exports['WindUtil']=WindUtil;const _0x2354a8={};_0x2354a8['value']=!![],Object['defineProperty'](exports,'__esModule',_0x2354a8);
|
|
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.3",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.9.
|
|
8
|
+
"mars3d": "~3.9.3"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|