mars3d-wind 3.10.9 → 3.10.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mars3d-wind.js +3 -3
- package/package.json +2 -2
package/mars3d-wind.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
|
|
3
3
|
*
|
|
4
|
-
* 版本信息:v3.10.
|
|
5
|
-
* 编译日期:2025-
|
|
4
|
+
* 版本信息:v3.10.10
|
|
5
|
+
* 编译日期:2025-12-12 16:31
|
|
6
6
|
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
7
|
* 使用单位:火星科技免费公开版 ,2025-07-01
|
|
8
8
|
*/
|
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
|
|
12
12
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
|
|
13
13
|
})(this, (function (exports, mars3d) {
|
|
14
|
-
'use strict';(function(_0x30427f,_0x4abc57){const _0x1154d5=_0x30427f();function _0x3c57b4(_0x3b8997,_0x38fd16){return _0x3f35(_0x38fd16-0x2bb,_0x3b8997);}function _0x71a69f(_0x522559,_0x27c5ad){return _0x3f35(_0x522559-0x391,_0x27c5ad);}while(!![]){try{const _0x4028a0=-parseInt(_0x71a69f(0x5cb,0x54f))/0x1*(parseInt(_0x3c57b4(0x55c,0x4e5))/0x2)+-parseInt(_0x3c57b4(0x50a,0x58e))/0x3+-parseInt(_0x71a69f(0x592,0x612))/0x4+parseInt(_0x3c57b4(0x4fb,0x48a))/0x5+parseInt(_0x3c57b4(0x4ef,0x4ab))/0x6+parseInt(_0x3c57b4(0x5a6,0x552))/0x7+parseInt(_0x3c57b4(0x510,0x538))/0x8*(parseInt(_0x71a69f(0x61a,0x699))/0x9);if(_0x4028a0===_0x4abc57)break;else _0x1154d5['push'](_0x1154d5['shift']());}catch(_0x1b670e){_0x1154d5['push'](_0x1154d5['shift']());}}}(_0x23a9,0xb9e3d));function _interopNamespace(_0x298275){if(_0x298275&&_0x298275['__esModule'])return _0x298275;function _0x2bb99f(_0x233735,_0x10f37b){return _0x3f35(_0x10f37b-0xd2,_0x233735);}function _0x46a895(_0x18b1a9,_0x493934){return _0x3f35(_0x493934-0x28,_0x18b1a9);}var _0x1b0992=Object[_0x46a895(0x213,0x237)](null);return _0x298275&&Object[_0x2bb99f(0x2c2,0x2f0)](_0x298275)['forEach'](function(_0x25ced4){function _0x532418(_0x4467d7,_0x157383){return _0x46a895(_0x157383,_0x4467d7- -0x3c);}function _0x5bbda2(_0x53ba19,_0xe3d0d4){return _0x2bb99f(_0xe3d0d4,_0x53ba19-0x2bc);}if(_0x25ced4!==_0x5bbda2(0x5f1,0x57e)){var _0x2e8cb6=Object[_0x532418(0x1d4,0x1d3)](_0x298275,_0x25ced4);Object['defineProperty'](_0x1b0992,_0x25ced4,_0x2e8cb6['get']?_0x2e8cb6:{'enumerable':!![],'get':function(){return _0x298275[_0x25ced4];}});}}),_0x1b0992[_0x46a895(0x2c2,0x28b)]=_0x298275,_0x1b0992;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x4ee3(0x4b2,0x468)];function getU(_0x599afc,_0x4c143e){const _0x2b1c5b=_0x599afc*Math['cos'](Cesium$2[_0x10776b(0x638,0x5e2)]['toRadians'](_0x4c143e));function _0x10776b(_0x26f384,_0x5aaf2f){return _0x4ee3(_0x5aaf2f-0xd6,_0x26f384);}return _0x2b1c5b;}function getV(_0x3868bb,_0x45da9d){const _0x66e27d=_0x3868bb*Math['sin'](Cesium$2['Math']['toRadians'](_0x45da9d));return _0x66e27d;}function getSpeed(_0x54456e,_0x170a2a){const _0xd586b0=Math['sqrt'](Math['pow'](_0x54456e,0x2)+Math['pow'](_0x170a2a,0x2));return _0xd586b0;}function getDirection(_0x239a4a,_0x46d0f){let _0x5e2f35=Cesium$2['Math'][_0x451712(0x6c,0x89)](Math['atan2'](_0x46d0f,_0x239a4a));_0x5e2f35+=_0x5e2f35<0x0?0x168:0x0;function _0x451712(_0x2b85f1,_0x3e176a){return _0x4ee3(_0x3e176a- -0x396,_0x2b85f1);}return _0x5e2f35;}const _0x4942da={};_0x4942da['__proto__']=null,_0x4942da[_0x46d1d0(0x612,0x649)]=getU,_0x4942da['getV']=getV,_0x4942da['getSpeed']=getSpeed,_0x4942da['getDirection']=getDirection;var WindUtil=_0x4942da,updatePositionShader=_0x46d1d0(0x647,0x63e),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=_0x4ee3(0x44b,0x482),renderParticlesFragmentShader=_0x46d1d0(0x5a7,0x5a0),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[_0x46d1d0(0x617,0x5ce)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x3725df={};return _0x3725df['sources']=[calculateSpeedShader],new ShaderSource$1(_0x3725df);}static['getUpdatePositionShader'](){const _0x4616a7={};return _0x4616a7['sources']=[updatePositionShader],new ShaderSource$1(_0x4616a7);}static[_0x46d1d0(0x596,0x575)](){const _0x13f21d={};return _0x13f21d['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x13f21d);}static[_0x46d1d0(0x5c4,0x5aa)](){const _0x47c36a={};return _0x47c36a['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x47c36a);}static[_0x46d1d0(0x649,0x69f)](){const _0xf8a68f={};_0xf8a68f[_0x11c474(0x170,0x163)]=[postProcessingPositionFragmentShader];function _0x11c474(_0x39c126,_0x272f76){return _0x46d1d0(_0x272f76- -0x4c0,_0x39c126);}return new ShaderSource$1(_0xf8a68f);}}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[_0x4ee3(0x4b2,0x49d)];class CustomPrimitive{constructor(_0x187501){this['commandType']=_0x187501['commandType'],this['geometry']=_0x187501[_0x6b2ab9(0x20c,0x1d1)],this['attributeLocations']=_0x187501['attributeLocations'],this[_0x42635f(-0x1,0x17)]=_0x187501[_0x42635f(0x50,0x17)],this[_0x6b2ab9(0x244,0x2cc)]=_0x187501['uniformMap']||{},this['vertexShaderSource']=_0x187501['vertexShaderSource'],this['fragmentShaderSource']=_0x187501['fragmentShaderSource'],this[_0x42635f(0x76,0xbc)]=_0x187501[_0x6b2ab9(0x257,0x2cf)];function _0x42635f(_0x25d5a7,_0xd3e25b){return _0x4ee3(_0xd3e25b- -0x463,_0x25d5a7);}this[_0x6b2ab9(0x1e2,0x212)]=_0x187501[_0x42635f(0x5c,-0x1)],this['outputTexture']=_0x187501['outputTexture'],this['autoClear']=_0x187501['autoClear']??![],this[_0x6b2ab9(0x209,0x23f)]=_0x187501['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x187501[_0x42635f(0x55,0x27)]??(()=>!![]);function _0x6b2ab9(_0x57146d,_0x1bf698){return _0x4ee3(_0x1bf698- -0x250,_0x57146d);}this['autoClear']&&(this[_0x6b2ab9(0x2b9,0x26f)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x6b2ab9(0x257,0x212)],'pass':Pass$1[_0x42635f(0x85,0x69)]}));}['createCommand'](_0x902dc7){function _0x2e81a8(_0x4e865d,_0x5362c8){return _0x46d1d0(_0x4e865d- -0x7d,_0x5362c8);}function _0x39839e(_0x38c727,_0x6425a4){return _0x4ee3(_0x38c727- -0x5fb,_0x6425a4);}if(this['commandType']==='Draw'){const _0x3f6cb7={};_0x3f6cb7['context']=_0x902dc7,_0x3f6cb7[_0x2e81a8(0x509,0x512)]=this['geometry'],_0x3f6cb7['attributeLocations']=this[_0x2e81a8(0x588,0x545)],_0x3f6cb7['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x180b95=VertexArray$1[_0x39839e(-0x126,-0xc5)](_0x3f6cb7),_0x36031d={};_0x36031d[_0x39839e(-0x169,-0xea)]=_0x902dc7,_0x36031d['vertexShaderSource']=this['vertexShaderSource'],_0x36031d['fragmentShaderSource']=this[_0x39839e(-0xf6,-0x8a)],_0x36031d[_0x2e81a8(0x588,0x57a)]=this['attributeLocations'];const _0x9eda7=ShaderProgram[_0x39839e(-0x1b2,-0x1d8)](_0x36031d),_0x1d9ec1=RenderState[_0x2e81a8(0x531,0x4f8)](this['rawRenderState']),_0x46743f={};return _0x46743f[_0x39839e(-0x107,-0xdd)]=this,_0x46743f['vertexArray']=_0x180b95,_0x46743f[_0x39839e(-0x181,-0x203)]=this[_0x39839e(-0x181,-0x1cf)],_0x46743f['modelMatrix']=Matrix4[_0x39839e(-0x170,-0x10e)],_0x46743f['renderState']=_0x1d9ec1,_0x46743f['shaderProgram']=_0x9eda7,_0x46743f[_0x39839e(-0x199,-0x19d)]=this[_0x39839e(-0x199,-0x131)],_0x46743f['uniformMap']=this[_0x39839e(-0xdf,-0xd9)],_0x46743f[_0x39839e(-0x174,-0x1d4)]=Pass$1[_0x2e81a8(0x5b4,0x58d)],new DrawCommand(_0x46743f);}else{if(this['commandType']==='Compute'){const _0x5905cb={};return _0x5905cb['owner']=this,_0x5905cb['fragmentShaderSource']=this['fragmentShaderSource'],_0x5905cb[_0x2e81a8(0x604,0x5a3)]=this[_0x2e81a8(0x604,0x5e2)],_0x5905cb['outputTexture']=this['outputTexture'],_0x5905cb['persists']=!![],new ComputeCommand(_0x5905cb);}else throw new Error(_0x2e81a8(0x53b,0x50b));}}[_0x4ee3(0x468,0x480)](_0x2580bc,_0x2285a5){this[_0x5c8a8f(-0x155,-0x16f)]=_0x2285a5;function _0x5c8a8f(_0x4f2c8f,_0x38b25f){return _0x4ee3(_0x38b25f- -0x590,_0x4f2c8f);}function _0x1ab917(_0x18289f,_0x14173b){return _0x4ee3(_0x18289f- -0x61c,_0x14173b);}defined(this['commandToExecute'])&&(this[_0x5c8a8f(-0xe7,-0xfb)][_0x5c8a8f(-0xaa,-0xc6)]=VertexArray$1[_0x1ab917(-0x147,-0x13b)]({'context':_0x2580bc,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x46d1d0(0x58c,0x5d4)](_0x545ad6){if(!this[_0x2973fc(0x523,0x5a6)]())return;if(!this[_0x33b438(0x421,0x3fe)]||!defined(_0x545ad6))return;function _0x2973fc(_0x1d3fc1,_0x376b79){return _0x46d1d0(_0x1d3fc1- -0xcc,_0x376b79);}!defined(this['commandToExecute'])&&(this['commandToExecute']=this[_0x2973fc(0x587,0x59d)](_0x545ad6[_0x2973fc(0x52b,0x4d6)]));function _0x33b438(_0x15904d,_0x299c42){return _0x46d1d0(_0x15904d- -0x18e,_0x299c42);}defined(this[_0x33b438(0x466,0x43e)])&&this['preExecute']();if(!_0x545ad6['commandList']){console[_0x33b438(0x4dd,0x4e0)]('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x545ad6[_0x2973fc(0x5ba,0x602)]['push'](this[_0x2973fc(0x558,0x512)]),defined(this['commandToExecute'])&&_0x545ad6['commandList']['push'](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){function _0x325030(_0x190adc,_0x4ea3aa){return _0x46d1d0(_0x4ea3aa- -0x5a4,_0x190adc);}if(defined(this['commandToExecute'])){var _0x158d0b;(_0x158d0b=this[_0x325030(0x85,0x56)][_0x325030(0x9b,0x5a)])===null||_0x158d0b===void 0x0||_0x158d0b['destroy'](),this[_0x5c3e22(0x589,0x5bc)]['shaderProgram']=undefined;}function _0x5c3e22(_0x490dc6,_0x3fd27e){return _0x4ee3(_0x3fd27e-0x127,_0x490dc6);}return destroyObject(this);}}function deepMerge(_0x3e37df,_0x57cc4d){if(!_0x3e37df)return _0x57cc4d;if(!_0x57cc4d)return _0x3e37df;const _0xb90ab7={..._0x57cc4d},_0xc9e307=_0xb90ab7;function _0x5cdc97(_0x418299,_0x33ac7f){return _0x46d1d0(_0x418299- -0x2b0,_0x33ac7f);}for(const _0x2a2262 in _0x3e37df){if(Object['prototype']['hasOwnProperty']['call'](_0x3e37df,_0x2a2262)){const _0x3452ba=_0x3e37df[_0x2a2262],_0x3a434e=_0x57cc4d[_0x2a2262];if(Array['isArray'](_0x3452ba)){_0xc9e307[_0x2a2262]=_0x3452ba['slice']();continue;}if(_0x3452ba&&typeof _0x3452ba===_0x5cdc97(0x3c3,0x39a)){_0xc9e307[_0x2a2262]=deepMerge(_0x3452ba,_0x3a434e||{});continue;}_0x3452ba!==undefined&&(_0xc9e307[_0x2a2262]=_0x3452ba);}}return _0xc9e307;}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(_0x584566,_0x4c233b,_0x521d61,_0x2016ac,_0x355b64){this[_0x2f48e7(0x5a6,0x57f)]=_0x584566,this['options']=_0x521d61,this['viewerParameters']=_0x2016ac;function _0x2f48e7(_0x3573a3,_0x443a95){return _0x4ee3(_0x3573a3-0x114,_0x443a95);}this['windData']=_0x4c233b,this[_0x37ef81(0xe7,0x136)]=0x3c,this['frameRateAdjustment']=0x1;const _0x4816e6={};function _0x37ef81(_0xb4cff5,_0x5b7f1e){return _0x4ee3(_0xb4cff5- -0x384,_0x5b7f1e);}_0x4816e6['scene']=_0x355b64,_0x4816e6[_0x2f48e7(0x5f2,0x653)]=0x1,_0x4816e6[_0x2f48e7(0x626,0x5c0)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x4816e6),this['initFrameRate'](),this[_0x2f48e7(0x538,0x4d0)](),this['createParticlesTextures'](),this[_0x2f48e7(0x5ea,0x66b)]();}['initFrameRate'](){const _0x193f65=()=>{function _0x320769(_0x35ebda,_0x36a40d){return _0x3f35(_0x36a40d-0x1de,_0x35ebda);}function _0x20e5f0(_0x22d987,_0x5f46b8){return _0x3f35(_0x5f46b8-0x138,_0x22d987);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this[_0x320769(0x3d5,0x3f5)]=this['frameRateMonitor']['lastFramesPerSecond'],this[_0x320769(0x45c,0x489)]=0x3c/Math['max'](this['frameRate'],0x1));};_0x193f65();const _0x1aa150=setInterval(_0x193f65,0x3e8),_0x23e5bf=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x1aa150),_0x23e5bf();};}['createWindTextures'](){const _0x30366a={};_0x30366a['minificationFilter']=TextureMinificationFilter$1[_0x2b5ebe(0x4e6,0x543)];function _0x28b8d7(_0x300e5d,_0x5437a0){return _0x46d1d0(_0x300e5d- -0x1e0,_0x5437a0);}function _0x2b5ebe(_0x553c1b,_0x3dfa39){return _0x4ee3(_0x553c1b-0xbe,_0x3dfa39);}_0x30366a['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x229638={'context':this[_0x2b5ebe(0x550,0x5a3)],'width':this['windData']['width'],'height':this['windData']['height'],'pixelFormat':PixelFormat$1[_0x28b8d7(0x3b7,0x3fe)],'pixelDatatype':PixelDatatype$1[_0x28b8d7(0x3b5,0x384)],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x30366a)};this['windTextures']={'U':new Texture$1({..._0x229638,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x229638,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x507d83={};_0x507d83['minificationFilter']=TextureMinificationFilter$1['NEAREST'],_0x507d83['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];function _0x33b39d(_0x329332,_0x49d089){return _0x46d1d0(_0x49d089- -0x530,_0x329332);}function _0x334dae(_0x39df20,_0x3bb669){return _0x46d1d0(_0x39df20- -0x6ce,_0x3bb669);}const _0x2b67ef={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this[_0x33b39d(0x104,0xdf)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x33b39d(0x74,0xdf)][_0x33b39d(0xec,0x83)]*this[_0x33b39d(0x109,0xdf)]['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x507d83)};this[_0x334dae(-0x115,-0x12b)]={'previousParticlesPosition':new Texture$1(_0x2b67ef),'currentParticlesPosition':new Texture$1(_0x2b67ef),'nextParticlesPosition':new Texture$1(_0x2b67ef),'postProcessingPosition':new Texture$1(_0x2b67ef),'particlesSpeed':new Texture$1(_0x2b67ef)};}[_0x4ee3(0x500,0x51e)](){function _0xd83071(_0x25c1b7,_0x5ed61f){return _0x46d1d0(_0x25c1b7- -0x107,_0x5ed61f);}function _0x14a0b4(_0x2b7a3f,_0x1486e2){return _0x46d1d0(_0x2b7a3f- -0x69b,_0x1486e2);}Object['values'](this['particlesTextures'])[_0xd83071(0x50d,0x522)](_0x31e728=>_0x31e728[_0x14a0b4(-0xb3,-0xff)]());}['createComputingPrimitives'](){function _0x1f77ff(_0x1c784f,_0xe4d8fb){return _0x46d1d0(_0xe4d8fb- -0x428,_0x1c784f);}function _0x1411ca(_0x31d4e7,_0x42ee89){return _0x46d1d0(_0x31d4e7- -0x2be,_0x42ee89);}this[_0x1411ca(0x3d1,0x419)]={'calculateSpeed':new CustomPrimitive({'commandType':_0x1411ca(0x333,0x38c),'uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this[_0x1411ca(0x3aa,0x3b2)]['V'],'uRange':()=>new Cartesian2$1(this[_0x1411ca(0x337,0x2cb)]['u'][_0x1411ca(0x35c,0x365)],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x1411ca(0x337,0x383)]['v']['min'],this[_0x1f77ff(0x16a,0x1cd)]['v'][_0x1f77ff(0x23b,0x1f9)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed'][_0x1f77ff(0x1e0,0x1f2)],this[_0x1411ca(0x337,0x3b8)][_0x1411ca(0x311,0x30c)]['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x410b61(_0x3456e8,_0x1a7109){return _0x1411ca(_0x1a7109-0x19d,_0x3456e8);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0x410b61(0x4d5,0x4ee)]['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this[_0x1f77ff(0x1aa,0x1cd)]['width'],this['windData'][_0x1411ca(0x3bf,0x344)]),'minimum':()=>new Cartesian2$1(this[_0x1411ca(0x337,0x2bd)][_0x1f77ff(0x26d,0x210)][_0x1f77ff(0x2a2,0x236)],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this[_0x1411ca(0x337,0x377)][_0x1411ca(0x37a,0x384)]['east'],this[_0x1411ca(0x337,0x3a4)][_0x1f77ff(0x270,0x210)][_0x1411ca(0x310,0x2c7)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x1f77ff(0x1eb,0x191)][_0x1f77ff(0x1f0,0x1f3)],'preExecute':()=>{function _0xcb5a83(_0x27f479,_0x3c5915){return _0x1f77ff(_0x3c5915,_0x27f479-0x42f);}const _0x386464=this[_0xcb5a83(0x5c0,0x587)][_0x1fbf19(0x4a4,0x450)];function _0x1fbf19(_0x282ebd,_0x33ae15){return _0x1411ca(_0x282ebd-0x17d,_0x33ae15);}this[_0xcb5a83(0x5c0,0x61f)]['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this[_0x1fbf19(0x478,0x4e3)]['postProcessingPosition'],this['particlesTextures']['postProcessingPosition']=_0x386464,this[_0xcb5a83(0x696,0x703)]['calculateSpeed']['commandToExecute']&&(this[_0xcb5a83(0x696,0x643)]['calculateSpeed']['commandToExecute'][_0x1fbf19(0x4b5,0x4d9)]=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x1411ca(0x35d,0x3ac)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures'][_0x1f77ff(0x23a,0x1d0)],'preExecute':()=>{function _0x42813e(_0x1eec9f,_0x55dd13){return _0x1411ca(_0x55dd13-0xf1,_0x1eec9f);}function _0x60cc5a(_0x14c2ed,_0x18e340){return _0x1f77ff(_0x14c2ed,_0x18e340-0x255);}this[_0x60cc5a(0x47d,0x4bc)]['updatePosition']['commandToExecute']&&(this[_0x42813e(0x448,0x4c2)]['updatePosition'][_0x60cc5a(0x440,0x427)]['outputTexture']=this['particlesTextures'][_0x60cc5a(0x3d7,0x425)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x1f77ff(0x214,0x191)]['nextParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0x1f77ff(0x1ba,0x1cd)]['bounds']['west'],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x1f77ff(0x1e9,0x210)]['south'],this['windData']['bounds']['north']),'randomCoefficient':function(){function _0x15a0f9(_0x1afebc,_0x1238ed){return _0x1f77ff(_0x1afebc,_0x1238ed-0x457);}return Math[_0x15a0f9(0x68e,0x6a4)]();},'dropRate':()=>this['options'][_0x1f77ff(0x2c2,0x266)],'dropRateBump':()=>this['options'][_0x1f77ff(0x248,0x252)],'useViewerBounds':()=>this[_0x1f77ff(0x1a9,0x1e7)]['useViewerBounds']},'fragmentShaderSource':ShaderManager[_0x1411ca(0x38b,0x413)](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x5e69d7(_0x455a61,_0x5ed2d7){return _0x1f77ff(_0x455a61,_0x5ed2d7- -0x23a);}function _0x54382c(_0x5639ad,_0x4125bc){return _0x1411ca(_0x5639ad- -0x2b5,_0x4125bc);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this[_0x5e69d7(0x5a,0x2d)][_0x5e69d7(-0x55,-0xc4)][_0x54382c(0x87,0xa7)][_0x54382c(0x83,0xaf)]=this[_0x54382c(0x46,0x99)]['postProcessingPosition']);},'isDynamic':()=>this['options'][_0x1f77ff(0x1e6,0x263)]})};}['reCreateWindTextures'](){this['windTextures']['U']['destroy']();function _0x4aff50(_0xe7bd3,_0x2c0934){return _0x4ee3(_0xe7bd3- -0x21d,_0x2c0934);}function _0xa5786d(_0x3ce2ad,_0x29b172){return _0x4ee3(_0x29b172- -0xdb,_0x3ce2ad);}this['windTextures']['V'][_0xa5786d(0x35c,0x3a8)](),this[_0xa5786d(0x317,0x349)]();}[_0x4ee3(0x4fc,0x528)](_0x29195a){function _0x3e8d2e(_0x539675,_0x1a56b2){return _0x4ee3(_0x539675- -0x33b,_0x1a56b2);}this['windData']=_0x29195a,this[_0x3e8d2e(0x164,0x153)]();}[_0x4ee3(0x436,0x4ab)](_0x48f63f){const _0x372521=_0x48f63f['flipY']!==undefined&&_0x48f63f['flipY']!==this[_0x434f78(0x5ee,0x5a6)][_0x40671d(0x112,0x160)];this['options']=deepMerge(_0x48f63f,this[_0x434f78(0x57e,0x5a6)]);function _0x40671d(_0x51d8ab,_0x3c7dc1){return _0x46d1d0(_0x51d8ab- -0x51b,_0x3c7dc1);}function _0x434f78(_0x10565f,_0x3d5efa){return _0x4ee3(_0x3d5efa-0xfc,_0x10565f);}_0x372521&&this[_0x434f78(0x537,0x59b)]();}['processWindData'](_0x1159b6){const {array:_0x573d5e}=_0x1159b6;let {min:_0x150e7a,max:_0x949ce9}=_0x1159b6;function _0x16e1ae(_0x591bf6,_0x10ce39){return _0x46d1d0(_0x591bf6- -0x6ef,_0x10ce39);}const _0x12fa82=new Float32Array(_0x573d5e['length']);_0x150e7a===undefined&&(console[_0x16e1ae(-0x84,-0x8d)]('min\x20is\x20undefined,\x20calculate\x20min'),_0x150e7a=Math[_0x2e1c92(0x534,0x552)](..._0x573d5e));function _0x2e1c92(_0x407999,_0x519452){return _0x46d1d0(_0x407999- -0xe6,_0x519452);}_0x949ce9===undefined&&(console[_0x2e1c92(0x585,0x52b)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x949ce9=Math[_0x2e1c92(0x53b,0x598)](..._0x573d5e));const _0x4ba1dc=Math[_0x16e1ae(-0xce,-0xbd)](Math['abs'](_0x150e7a),Math['abs'](_0x949ce9));for(let _0x888bba=0x0;_0x888bba<_0x573d5e[_0x16e1ae(-0xde,-0x81)];_0x888bba++){const _0x110ec1=_0x573d5e[_0x888bba]/_0x4ba1dc;_0x12fa82[_0x888bba]=_0x110ec1;}return _0x12fa82;}['destroy'](){Object[_0x4b8d16(0x532,0x514)](this[_0x2379ca(0x64d,0x645)])[_0x4b8d16(0x574,0x5c0)](_0x3311d1=>_0x3311d1['destroy']()),Object['values'](this['particlesTextures'])[_0x2379ca(0x65a,0x5f1)](_0xd0011e=>_0xd0011e['destroy']());function _0x2379ca(_0x5c3076,_0x5b6e41){return _0x46d1d0(_0x5b6e41- -0x23,_0x5c3076);}function _0x4b8d16(_0x30112f,_0x21a074){return _0x46d1d0(_0x30112f- -0xa0,_0x21a074);}Object['values'](this['primitives'])['forEach'](_0x29cfc3=>_0x29cfc3['destroy']()),this['frameRateMonitor'][_0x4b8d16(0x548,0x541)]();}}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(_0x1ba2cf,_0x1fd4a5,_0x23477b,_0x24ce0e){this[_0x3cbdf3(0x11,0x7b)]=_0x1ba2cf,this[_0x3cbdf3(0x117,0x93)]=_0x1fd4a5,this['viewerParameters']=_0x23477b,this[_0x2d8f01(0x3d6,0x3f8)]=_0x24ce0e;(typeof this['options']['particlesTextureSize']!==_0x3cbdf3(-0x25,0x30)||this[_0x2d8f01(0x418,0x3f1)][_0x3cbdf3(-0x31,0x37)]<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x3cbdf3(0x7d,0x93)]['particlesTextureSize']=0x100);this['colorTable']=this[_0x3cbdf3(0xaf,0x106)]();function _0x3cbdf3(_0x5bcd70,_0x21a6a2){return _0x46d1d0(_0x21a6a2- -0x57c,_0x5bcd70);}this[_0x2d8f01(0x47b,0x423)]=this[_0x3cbdf3(0xfc,0x76)](),this[_0x3cbdf3(0xcd,0xcc)]=this[_0x2d8f01(0x3d0,0x384)]();function _0x2d8f01(_0x38b04f,_0x318563){return _0x4ee3(_0x318563- -0xb9,_0x38b04f);}this['primitives']=this[_0x2d8f01(0x412,0x3c4)]();}['createRenderingTextures'](){const _0x4e1268={};_0x4e1268[_0xaff139(-0x49,-0x3c)]=this[_0xdfa6de(0x1a2,0x124)],_0x4e1268[_0xaff139(-0x17,-0x4a)]=this['context'][_0xdfa6de(0x1ea,0x21b)],_0x4e1268[_0xaff139(0x3d,-0x2e)]=this['context']['drawingBufferHeight'],_0x4e1268[_0xaff139(-0xa7,-0x47)]=PixelFormat['RGBA'],_0x4e1268[_0xaff139(-0x3a,-0xe)]=PixelDatatype['UNSIGNED_BYTE'];const _0x1c7d11=_0x4e1268,_0x1b58a2={};function _0xdfa6de(_0x1429f7,_0x318bca){return _0x46d1d0(_0x1429f7- -0x455,_0x318bca);}_0x1b58a2['context']=this[_0xdfa6de(0x1a2,0x12f)],_0x1b58a2['width']=this[_0xdfa6de(0x1a2,0x11a)]['drawingBufferWidth'],_0x1b58a2['height']=this[_0xdfa6de(0x1a2,0x157)]['drawingBufferHeight'],_0x1b58a2['pixelFormat']=PixelFormat[_0xaff139(-0x59,-0x9d)];function _0xaff139(_0x647ee,_0x5445a8){return _0x46d1d0(_0x647ee- -0x640,_0x5445a8);}_0x1b58a2[_0xdfa6de(0x1b1,0x1c0)]=PixelDatatype['UNSIGNED_INT'];const _0x4a33cc=_0x1b58a2;return{'segmentsColor':new Texture(_0x1c7d11),'segmentsDepth':new Texture(_0x4a33cc)};}['createRenderingFramebuffers'](){const _0x2ceb3f={};function _0x31b0cb(_0x2775a9,_0x598a1c){return _0x46d1d0(_0x598a1c- -0x155,_0x2775a9);}_0x2ceb3f['context']=this['context'],_0x2ceb3f[_0x4024ca(0x361,0x306)]=[this['textures']['segmentsColor']],_0x2ceb3f[_0x4024ca(0x283,0x2ea)]=this[_0x31b0cb(0x548,0x4ec)]['segmentsDepth'];function _0x4024ca(_0x2e049f,_0x771a9e){return _0x4ee3(_0x771a9e- -0x1ad,_0x2e049f);}return{'segments':new Framebuffer(_0x2ceb3f)};}[_0x4ee3(0x43f,0x3c1)](){function _0x414380(_0xec63b3,_0x446fcb){return _0x46d1d0(_0xec63b3- -0x3e,_0x446fcb);}function _0x560fcb(_0x319f14,_0x5d93cf){return _0x4ee3(_0x319f14- -0x3c5,_0x5d93cf);}Object['values'](this[_0x414380(0x60a,0x650)])[_0x560fcb(0xea,0x16d)](_0x2f22dc=>{_0x2f22dc['destroy']();});}[_0x4ee3(0x51d,0x49c)](){const _0x40ad90=new Float32Array(this[_0x4eef0e(0xb6,0xaa)][_0x4eef0e(0x116,0xdc)][_0x93fe45(0x122,0x101)](_0x3919a8=>{function _0x528076(_0x3db5bd,_0x2fdf18){return _0x4eef0e(_0x2fdf18- -0x26,_0x3db5bd);}const _0x57aa8f=Color$1['fromCssColorString'](_0x3919a8);return[_0x57aa8f['red'],_0x57aa8f[_0x528076(0x112,0xef)],_0x57aa8f['blue'],_0x57aa8f['alpha']];})),_0x384e89={};_0x384e89['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x384e89['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x384e89['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x384e89['wrapT']=TextureWrap['CLAMP_TO_EDGE'];function _0x93fe45(_0x5dbbae,_0x33f4d2){return _0x4ee3(_0x5dbbae- -0x3f1,_0x33f4d2);}function _0x4eef0e(_0x23420e,_0x409d93){return _0x46d1d0(_0x23420e- -0x559,_0x409d93);}return new Texture({'context':this[_0x4eef0e(0x9e,0x38)],'width':this[_0x4eef0e(0xb6,0x81)]['colors'][_0x93fe45(0xbb,0x12c)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype[_0x93fe45(0x3f,0xaf)],'sampler':new Sampler(_0x384e89),'source':{'width':this[_0x93fe45(0xb9,0x99)][_0x93fe45(0x119,0xda)][_0x4eef0e(0xb8,0x94)],'height':0x1,'arrayBufferView':_0x40ad90}});}['createSegmentsGeometry'](){const _0x1af0e0=0x4,_0x4f3266=this[_0x1e8e60(0x59f,0x624)]['particlesTextureSize'];let _0x2bf4bf=[];for(let _0x884949=0x0;_0x884949<_0x4f3266;_0x884949++){for(let _0x1e57df=0x0;_0x1e57df<_0x4f3266;_0x1e57df++){for(let _0x1c950d=0x0;_0x1c950d<_0x1af0e0;_0x1c950d++){_0x2bf4bf[_0x1e8e60(0x5a5,0x60e)](_0x884949/_0x4f3266),_0x2bf4bf['push'](_0x1e57df/_0x4f3266);}}}_0x2bf4bf=new Float32Array(_0x2bf4bf);const _0xace2dd=this['options'][_0x1ae28c(0x515,0x552)]**0x2;let _0x5311ef=[];for(let _0xca7682=0x0;_0xca7682<_0xace2dd;_0xca7682++){_0x5311ef[_0x1ae28c(0x5aa,0x598)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x5311ef=new Float32Array(_0x5311ef);let _0x169e77=[];for(let _0x149fd4=0x0,_0x18b799=0x0;_0x149fd4<_0xace2dd;_0x149fd4++){_0x169e77[_0x1ae28c(0x59f,0x598)](_0x18b799+0x0,_0x18b799+0x1,_0x18b799+0x2,_0x18b799+0x2,_0x18b799+0x1,_0x18b799+0x3),_0x18b799+=_0x1af0e0;}_0x169e77=new Uint32Array(_0x169e77);function _0x1ae28c(_0x4907b2,_0x3c8090){return _0x46d1d0(_0x3c8090- -0x61,_0x4907b2);}const _0x40bac1={};_0x40bac1[_0x1ae28c(0x586,0x56b)]=ComponentDatatype['FLOAT'];function _0x1e8e60(_0x10600d,_0x3d4582){return _0x4ee3(_0x3d4582-0x17a,_0x10600d);}_0x40bac1['componentsPerAttribute']=0x2,_0x40bac1[_0x1e8e60(0x5b7,0x5e7)]=_0x2bf4bf;const _0x12cbab={};_0x12cbab[_0x1ae28c(0x56e,0x56b)]=ComponentDatatype['FLOAT'],_0x12cbab[_0x1ae28c(0x639,0x5cf)]=0x3,_0x12cbab[_0x1ae28c(0x5a5,0x571)]=_0x5311ef;const _0x2c603a=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x40bac1),'normal':new GeometryAttribute(_0x12cbab)}),'indices':_0x169e77});return _0x2c603a;}['createRawRenderState'](_0x3f837b){const _0x9c48a={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x3f837b};return Appearance['getDefaultRenderState'](!![],![],_0x9c48a);}[_0x4ee3(0x47d,0x47e)](){const _0x5212a4={};_0x5212a4['st']=0x0,_0x5212a4['normal']=0x1;const _0x20075d={};_0x20075d['enabled']=!![];const _0x19a8f2={};function _0x4b865e(_0x4cef31,_0x3fb9a1){return _0x4ee3(_0x4cef31- -0x574,_0x3fb9a1);}_0x19a8f2[_0x4b865e(-0xd1,-0xf6)]=!![],_0x19a8f2['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x19a8f2[_0x4b865e(-0x100,-0xdb)]=WebGLRenderingContext['SRC_ALPHA'],_0x19a8f2[_0xed9127(0x103,0xf5)]=WebGLRenderingContext[_0x4b865e(-0x114,-0xdc)];const _0x46480d={};_0x46480d['viewport']=undefined,_0x46480d['depthTest']=_0x20075d,_0x46480d['depthMask']=!![],_0x46480d['blending']=_0x19a8f2;const _0x4e0838=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x5212a4,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0xed9127(0xcb,0xd8)],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x4b865e(-0x120,-0xd2)][_0xed9127(0x97,0x3d)],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x4b865e(-0xc3,-0x60)]['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing'][_0x4b865e(-0x120,-0x187)][_0x4b865e(-0xbe,-0x130)],'frameRateAdjustment':()=>this['computing'][_0xed9127(0x116,0xa3)],'colorTable':()=>this[_0xed9127(0x5c,-0x2b)],'domain':()=>{var _0x1a0382,_0x4316aa;function _0x49665b(_0x14bcc1,_0x1c1216){return _0xed9127(_0x1c1216-0x2dd,_0x14bcc1);}const _0x325533=new Cartesian2(((_0x1a0382=this['options'][_0x49665b(0x382,0x32e)])===null||_0x1a0382===void 0x0?void 0x0:_0x1a0382['min'])??this[_0x49665b(0x3fc,0x3a5)][_0x49665b(0x33a,0x384)]['speed'][_0x15d0a1(-0xa4,-0x126)],((_0x4316aa=this['options']['domain'])===null||_0x4316aa===void 0x0?void 0x0:_0x4316aa['max'])??this['computing']['windData'][_0x15d0a1(-0xef,-0x14b)]['max']);function _0x15d0a1(_0x2f3b6e,_0x4efa40){return _0x4b865e(_0x2f3b6e-0x1b,_0x4efa40);}return _0x325533;},'displayRange':()=>{function _0x92eec0(_0x2c0467,_0x526bbc){return _0x4b865e(_0x2c0467-0x17,_0x526bbc);}var _0x3edf1c,_0x2728e4;function _0xa04ecd(_0x418a4c,_0x172f28){return _0xed9127(_0x172f28- -0x1b1,_0x418a4c);}const _0x268f17=new Cartesian2(((_0x3edf1c=this['options']['displayRange'])===null||_0x3edf1c===void 0x0?void 0x0:_0x3edf1c['min'])??this['computing']['windData']['speed']['min'],((_0x2728e4=this['options'][_0xa04ecd(-0xc8,-0x98)])===null||_0x2728e4===void 0x0?void 0x0:_0x2728e4[_0xa04ecd(-0x96,-0xde)])??this[_0x92eec0(-0xac,-0x11d)]['windData']['speed'][_0x92eec0(-0xa1,-0x35)]);return _0x268f17;},'particleHeight':()=>this['options'][_0x4b865e(-0x14b,-0x174)]||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this[_0x4b865e(-0xe2,-0x86)][_0x4b865e(-0x6c,-0x59)],'pixelSize':()=>this[_0x4b865e(-0x123,-0x135)]['pixelSize'],'lineWidth':()=>{const _0x5350ed={};function _0x494728(_0x1f2229,_0x469fa2){return _0x4b865e(_0x469fa2-0x668,_0x1f2229);}_0x5350ed['min']=0x1;function _0x18ae0f(_0x5d6247,_0x28832f){return _0xed9127(_0x28832f-0x35,_0x5d6247);}_0x5350ed[_0x18ae0f(0x15a,0x108)]=0x2;const _0x22ff2f=this[_0x494728(0x5dc,0x59e)]['lineWidth']||_0x5350ed;return new Cartesian2(_0x22ff2f['min'],_0x22ff2f['max']);},'lineLength':()=>{const _0x57ef15={};_0x57ef15[_0x14ed55(0x636,0x5c1)]=0x14,_0x57ef15['max']=0x64;function _0x14ed55(_0x26dd93,_0x2f995a){return _0xed9127(_0x26dd93-0x56a,_0x2f995a);}const _0x1f1c0c=this['options']['lineLength']||_0x57ef15;return new Cartesian2(_0x1f1c0c['min'],_0x1f1c0c['max']);},'is3D':()=>this['viewerParameters'][_0x4b865e(-0xcd,-0x13a)]===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0xed9127(0xf3,0xc7)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0xed9127(0x76,0x1d)](),'rawRenderState':this[_0xed9127(0x9b,0x10d)](_0x46480d)}),_0x280a31={};_0x280a31[_0x4b865e(-0xd0,-0x56)]=_0x4e0838;function _0xed9127(_0x5a4e1b,_0x2a3ffa){return _0x4ee3(_0x5a4e1b- -0x3e9,_0x2a3ffa);}return _0x280a31;}['onParticlesTextureSizeChange'](){const _0x4663bb=this['createSegmentsGeometry']();this[_0x5d0493(0x177,0x1d3)]['segments']['geometry']=_0x4663bb;const _0x703b12={};_0x703b12['context']=this[_0x5d0493(0xdf,0xbc)];function _0x5d0493(_0x1bc628,_0x4306be){return _0x46d1d0(_0x1bc628- -0x518,_0x4306be);}_0x703b12['geometry']=_0x4663bb,_0x703b12['attributeLocations']=this['primitives']['segments']['attributeLocations'],_0x703b12[_0x5d0493(0xbd,0x71)]=BufferUsage[_0x4660e2(0x44d,0x4b1)];function _0x4660e2(_0x46f82d,_0x22e370){return _0x4ee3(_0x22e370- -0x1c,_0x46f82d);}const _0x5eb81b=VertexArray[_0x4660e2(0x4da,0x4b9)](_0x703b12);this[_0x5d0493(0x177,0x1cd)]['segments'][_0x4660e2(0x450,0x479)]&&(this['primitives']['segments']['commandToExecute'][_0x5d0493(0x117,0x162)]=_0x5eb81b);}['onColorTableChange'](){function _0x3179e2(_0x36e263,_0x565a88){return _0x46d1d0(_0x565a88- -0x6f9,_0x36e263);}function _0x416118(_0x434db2,_0x5b2d20){return _0x4ee3(_0x434db2- -0x88,_0x5b2d20);}this[_0x3179e2(-0xcf,-0x14f)]['destroy'](),this[_0x3179e2(-0x114,-0x14f)]=this['createColorTableTexture']();}[_0x4ee3(0x436,0x3f6)](_0x44a499){const _0x13025f=_0x44a499[_0x4d99e2(0x2d5,0x270)]&&JSON['stringify'](_0x44a499['colors'])!==JSON[_0x4d99e2(0x274,0x29d)](this[_0x5ba121(-0x1,-0x1d)]['colors']);function _0x4d99e2(_0x473489,_0x43be2b){return _0x4ee3(_0x473489- -0x235,_0x43be2b);}function _0x5ba121(_0x30ce8c,_0x58e60b){return _0x4ee3(_0x30ce8c- -0x4ab,_0x58e60b);}this['options']=deepMerge(_0x44a499,this[_0x5ba121(-0x1,-0x6b)]),_0x13025f&&this['onColorTableChange']();}['destroy'](){function _0x55824c(_0x48eae0,_0x3907d9){return _0x4ee3(_0x3907d9-0x107,_0x48eae0);}function _0x16793d(_0x5dba28,_0x1d24b0){return _0x46d1d0(_0x5dba28- -0x377,_0x1d24b0);}Object['values'](this[_0x16793d(0x2d1,0x2ec)])['forEach'](_0x8bbb45=>{_0x8bbb45['destroy']();}),Object[_0x55824c(0x4eb,0x574)](this['primitives'])['forEach'](_0x273468=>{_0x273468['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x409519,_0x1b09db,_0x4131cd,_0x403115,_0x41fcd7){this['context']=_0x409519;function _0x3f9d1e(_0xc2eae7,_0x25a03c){return _0x46d1d0(_0x25a03c- -0x5fc,_0xc2eae7);}this[_0xf9b613(-0x189,-0x174)]=_0x4131cd,this['viewerParameters']=_0x403115,this['computing']=new WindParticlesComputing(_0x409519,_0x1b09db,_0x4131cd,_0x403115,_0x41fcd7),this[_0x3f9d1e(0x1b,0x53)]=new WindParticlesRendering(_0x409519,_0x4131cd,_0x403115,this[_0xf9b613(-0x120,-0x16d)]);function _0xf9b613(_0x1bde64,_0x47371a){return _0x4ee3(_0x47371a- -0x61e,_0x1bde64);}this[_0xf9b613(-0xf5,-0x117)]();}['getPrimitives'](){function _0x3e60c6(_0x2fd278,_0x359860){return _0x4ee3(_0x359860- -0x4b1,_0x2fd278);}function _0x1be1a0(_0x1368de,_0x499737){return _0x46d1d0(_0x499737- -0x5b3,_0x1368de);}const _0x162352=[this[_0x1be1a0(0x64,0x63)]['primitives'][_0x3e60c6(0xc3,0x5c)],this['computing'][_0x1be1a0(0x99,0xdc)][_0x3e60c6(-0x1c,-0x56)],this['computing'][_0x1be1a0(0x12b,0xdc)]['postProcessingPosition'],this['rendering']['primitives']['segments']];return _0x162352;}[_0x4ee3(0x507,0x48b)](){function _0x3e9124(_0x2f9ded,_0x165a2e){return _0x46d1d0(_0x2f9ded- -0x587,_0x165a2e);}const _0x1e12df=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x128f82(_0x5ab255,_0x4cba26){return _0x4ee3(_0x5ab255- -0x5f4,_0x4cba26);}Object[_0x128f82(-0x182,-0x1a3)](this[_0x3e9124(0xc8,0xc2)][_0x3e9124(0xc1,0x109)])['forEach'](_0x1d2680=>{function _0x171b00(_0x19b373,_0x5bb838){return _0x128f82(_0x19b373-0xd1,_0x5bb838);}_0x1e12df['framebuffer']=this['rendering']['framebuffers'][_0x1d2680],_0x1e12df[_0x171b00(0x9,0x55)](this['context']);});}['changeOptions'](_0x4a1d81){let _0x212f96=![];function _0x241a4e(_0x1028ee,_0xa0eed5){return _0x4ee3(_0x1028ee- -0xa,_0xa0eed5);}_0x4a1d81['particlesTextureSize']&&this[_0x163760(0x3f5,0x42c)][_0x241a4e(0x444,0x3f5)]!==_0x4a1d81[_0x241a4e(0x444,0x490)]&&(_0x212f96=!![]);const _0x3b3980=deepMerge(_0x4a1d81,this[_0x163760(0x3f5,0x39e)]);if(_0x3b3980['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x3b3980,this['rendering']['updateOptions'](_0x4a1d81),this['computing']['updateOptions'](_0x4a1d81);function _0x163760(_0x1be95e,_0x466183){return _0x4ee3(_0x1be95e- -0xb5,_0x466183);}_0x212f96&&(this['computing']['destroyParticlesTextures'](),this[_0x241a4e(0x4a7,0x4aa)][_0x163760(0x3b7,0x409)](),this['rendering']['onParticlesTextureSizeChange']());}[_0x46d1d0(0x5a0,0x54a)](_0x4bf8dc){this[_0x1e512e(0x1e2,0x211)]=_0x4bf8dc,this['computing'][_0x1e512e(0x1e2,0x169)]=_0x4bf8dc;function _0x536686(_0x242b00,_0x8ec3b9){return _0x4ee3(_0x242b00-0xaa,_0x8ec3b9);}function _0x1e512e(_0x138ff5,_0x563a7b){return _0x46d1d0(_0x138ff5- -0x3d4,_0x563a7b);}this['rendering'][_0x1e512e(0x1e2,0x17c)]=_0x4bf8dc;}['destroy'](){this['computing'][_0x15f628(0x1d4,0x203)]();function _0x15f628(_0x524aa9,_0x76ad1d){return _0x4ee3(_0x76ad1d- -0x280,_0x524aa9);}function _0x449be6(_0x115111,_0x12e382){return _0x46d1d0(_0x115111- -0x56d,_0x12e382);}this[_0x15f628(0x229,0x26a)]['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x4442bd={};_0x4442bd['min']=0x1,_0x4442bd[_0x46d1d0(0x621,0x602)]=0x2;function _0x3f35(_0x281c91,_0x2012f1){const _0x23a9ef=_0x23a9();return _0x3f35=function(_0x3f35b7,_0x381b17){_0x3f35b7=_0x3f35b7-0x1c9;let _0x4ebaff=_0x23a9ef[_0x3f35b7];return _0x4ebaff;},_0x3f35(_0x281c91,_0x2012f1);}const _0x12e7fe={};_0x12e7fe[_0x4ee3(0x4b5,0x520)]=0x14,_0x12e7fe[_0x4ee3(0x4bc,0x485)]=0x64;const _0x4cc292={};_0x4cc292['particlesTextureSize']=0x64,_0x4cc292['fixedHeight']=0x0,_0x4cc292[_0x4ee3(0x52d,0x50d)]=_0x4442bd,_0x4cc292[_0x46d1d0(0x67c,0x626)]=_0x12e7fe,_0x4cc292['speedFactor']=0x1;function _0x46d1d0(_0x503f9d,_0x5dd63d){return _0x3f35(_0x503f9d-0x3b9,_0x5dd63d);}_0x4cc292[_0x46d1d0(0x68e,0x685)]=0.003,_0x4cc292['dropRateBump']=0.001,_0x4cc292[_0x4ee3(0x50a,0x4f7)]=['rgb(206,255,255)'],_0x4cc292[_0x46d1d0(0x62d,0x5cf)]=![],_0x4cc292[_0x46d1d0(0x68b,0x711)]=!![];const DEF_OPTIONS=_0x4cc292;class WindLayer extends BaseLayer$1{constructor(_0x4f5631={}){_0x4f5631={...DEF_OPTIONS,..._0x4f5631};function _0x1a64cd(_0x16a3ee,_0x112cfb){return _0x4ee3(_0x16a3ee- -0x1f0,_0x112cfb);}super(_0x4f5631),this[_0x1a64cd(0x335,0x392)](_0x4f5631,_0x4f5631);}get['layer'](){return this['primitives'];}get[_0x46d1d0(0x600,0x5a2)](){function _0x493485(_0x5e828c,_0x65308a){return _0x46d1d0(_0x5e828c- -0x592,_0x65308a);}return this['options'][_0x493485(0x6e,0x5a)];}set['data'](_0x2a7416){function _0x1adf78(_0x39875c,_0x2365aa){return _0x4ee3(_0x39875c- -0x539,_0x2365aa);}function _0x12980c(_0x552444,_0x57d671){return _0x4ee3(_0x57d671- -0x512,_0x552444);}this[_0x12980c(-0x2c,-0x68)][_0x12980c(-0xc5,-0x77)]=_0x2a7416,this['setData'](_0x2a7416);}get['colors'](){function _0x41b160(_0x587382,_0x140f65){return _0x46d1d0(_0x587382- -0x6c8,_0x140f65);}return this['options'][_0x41b160(-0x59,-0x5b)];}set['colors'](_0xa8bc37){function _0x34c79d(_0x9d2267,_0xab8d80){return _0x46d1d0(_0xab8d80- -0x221,_0x9d2267);}this['options'][_0x5daa53(0x4f5,0x499)]=_0xa8bc37;const _0x2d8fa9={};_0x2d8fa9[_0x5daa53(0x4f5,0x46d)]=_0xa8bc37;function _0x5daa53(_0x42eb16,_0x22c4f4){return _0x46d1d0(_0x42eb16- -0x17a,_0x22c4f4);}this[_0x34c79d(0x4e2,0x469)](this['options'],_0x2d8fa9);}[_0x4ee3(0x488,0x4e6)](_0x33aa12){function _0x3c6b55(_0x5a4d65,_0x27bbcd){return _0x4ee3(_0x27bbcd- -0x3ad,_0x5a4d65);}function _0x9b6d97(_0x42f3a2,_0x2efba4){return _0x46d1d0(_0x42f3a2- -0x20e,_0x2efba4);}_0x33aa12?this[_0x9b6d97(0x466,0x44e)]():this[_0x3c6b55(0xf7,0x86)]();}[_0x46d1d0(0x64c,0x671)](){}['_addedHook'](){this['scene']=this['_map']['scene'],this[_0x44afc8(0x2cd,0x337)]=this[_0x44afc8(0x3a4,0x389)]['camera'];this[_0x44afc8(0x38e,0x39b)]['data']&&this[_0x2dbf3a(0x123,0x9d)](this['options']['data']);function _0x2dbf3a(_0x18472e,_0x3f14ec){return _0x4ee3(_0x18472e- -0x314,_0x3f14ec);}if(!this['windData']||!this[_0x44afc8(0x32b,0x33b)])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x44afc8(0x44d,0x3e0)]['mode']},this[_0x2dbf3a(0x139,0x166)](),this[_0x44afc8(0x33b,0x31c)]=new WindParticleSystem(this[_0x2dbf3a(0x1db,0x1e0)]['context'],this['windData'],this['options'],this['viewerParameters'],this['scene']),this[_0x2dbf3a(0x216,0x1d6)]=this['particleSystem']['getPrimitives'](),this[_0x44afc8(0x48a,0x41b)][_0x2dbf3a(0x19b,0x1cc)](_0x193545=>{this['scene']['primitives']['add'](_0x193545);}),this[_0x44afc8(0x30b,0x337)][_0x2dbf3a(0x1f7,0x273)]=0.01,this[_0x44afc8(0x2b4,0x337)]['changed']['addEventListener'](this['updateViewerParameters']['bind'](this));function _0x44afc8(_0x3d8084,_0x29704c){return _0x46d1d0(_0x29704c- -0x274,_0x3d8084);}this['scene']['morphComplete'][_0x44afc8(0x350,0x364)](this['updateViewerParameters'][_0x44afc8(0x3f0,0x3da)](this)),window['addEventListener']('resize',this['updateViewerParameters']['bind'](this));}['_removedHook'](){function _0x3b1dc3(_0x3a2da0,_0x4ae83a){return _0x4ee3(_0x4ae83a- -0xdc,_0x3a2da0);}function _0x346cab(_0x35fa51,_0xb1c338){return _0x4ee3(_0xb1c338- -0x193,_0x35fa51);}this[_0x3b1dc3(0x321,0x36a)]['changed'][_0x3b1dc3(0x3df,0x41f)](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete'][_0x3b1dc3(0x48e,0x41f)](this['updateViewerParameters']['bind'](this)),window['removeEventListener'](_0x346cab(0x24f,0x2c7),this['updateViewerParameters'][_0x3b1dc3(0x481,0x40d)](this)),this['primitives']&&(this['primitives']['forEach'](_0x8a9491=>{function _0x2c7c2c(_0x3d3a33,_0x13fe5a){return _0x3b1dc3(_0x3d3a33,_0x13fe5a-0x249);}this['scene']['primitives'][_0x2c7c2c(0x57a,0x5e4)](_0x8a9491);}),delete this['primitives']),this['particleSystem']&&(this[_0x3b1dc3(0x2d9,0x34f)][_0x3b1dc3(0x349,0x3a7)](),delete this[_0x346cab(0x22d,0x298)]);}['setData'](_0x5df072,_0x4e0ff5){function _0x36b770(_0x444d07,_0x4b87b3){return _0x4ee3(_0x444d07-0x183,_0x4b87b3);}function _0x323367(_0x4f7887,_0x328752){return _0x4ee3(_0x328752- -0x5c7,_0x4f7887);}this[_0x323367(-0xbe,-0x137)]=this[_0x323367(-0x187,-0x199)](_0x5df072);if(_0x4e0ff5){this['_removedHook'](),this['_addedHook']();return;}this['particleSystem']?(this[_0x36b770(0x5ae,0x624)]['computing']['updateWindData'](this['windData']),this[_0x323367(-0x60,-0xd8)][_0x323367(-0x15e,-0x117)]()):this['_addedHook']();}[_0x4ee3(0x525,0x50d)](_0x57dedd,_0x3cda3f){function _0x268fe0(_0x171997,_0x4c9613){return _0x46d1d0(_0x171997- -0xf4,_0x4c9613);}function _0x2f7060(_0x83d60d,_0x3567c2){return _0x46d1d0(_0x83d60d- -0xc9,_0x3567c2);}this[_0x268fe0(0x49c,0x522)]&&(this['particleSystem']['changeOptions'](_0x3cda3f),this[_0x2f7060(0x58b,0x580)]['requestRender']());}[_0x4ee3(0x42e,0x3ab)](_0x46f090){function _0x43cf66(_0x39ed74,_0xd22338){return _0x4ee3(_0x39ed74-0xa7,_0xd22338);}var _0x505214,_0x17e65f;const _0x29aabd={..._0x46f090},_0x11dbab=_0x29aabd;!_0x11dbab['height']&&_0x11dbab['rows']&&(_0x11dbab[_0x43cf66(0x5bf,0x56b)]=_0x11dbab['rows']);!_0x11dbab[_0x43cf66(0x56b,0x5db)]&&_0x11dbab[_0x8efda7(0x31e,0x386)]&&(_0x11dbab['width']=_0x11dbab['cols']);function _0x8efda7(_0x22907f,_0x173082){return _0x4ee3(_0x173082- -0x153,_0x22907f);}!_0x11dbab['bounds']&&(_0x11dbab['bounds']={'west':_0x11dbab[_0x43cf66(0x4d1,0x462)],'south':_0x11dbab['ymin'],'east':_0x11dbab['xmax'],'north':_0x11dbab[_0x8efda7(0x3e6,0x39a)]});if(!_0x11dbab['u']){const _0x3810d1={};_0x3810d1[_0x8efda7(0x309,0x35b)]=_0x46f090['udata'],_0x3810d1[_0x43cf66(0x55c,0x51b)]=_0x46f090[_0x8efda7(0x317,0x34b)],_0x3810d1['max']=_0x46f090[_0x43cf66(0x4f6,0x4af)],_0x11dbab['u']=_0x3810d1;}if(!_0x11dbab['v']){const _0x29fe1d={};_0x29fe1d[_0x43cf66(0x555,0x4fb)]=_0x46f090['vdata'],_0x29fe1d['min']=_0x46f090['vmin'],_0x29fe1d['max']=_0x46f090['vmax'],_0x11dbab['v']=_0x29fe1d;}if(((_0x505214=_0x11dbab[_0x43cf66(0x511,0x49b)])===null||_0x505214===void 0x0?void 0x0:_0x505214['min'])===undefined||((_0x17e65f=_0x11dbab['speed'])===null||_0x17e65f===void 0x0?void 0x0:_0x17e65f['max'])===undefined||_0x11dbab['speed']['array']===undefined){const _0x2eba51={'array':new Float32Array(_0x11dbab['u'][_0x43cf66(0x555,0x4fa)]['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x300ad6=0x0;_0x300ad6<_0x11dbab['u']['array']['length'];_0x300ad6++){_0x2eba51[_0x43cf66(0x555,0x573)][_0x300ad6]=Math['sqrt'](_0x11dbab['u']['array'][_0x300ad6]*_0x11dbab['u'][_0x43cf66(0x555,0x53a)][_0x300ad6]+_0x11dbab['v']['array'][_0x300ad6]*_0x11dbab['v']['array'][_0x300ad6]),_0x2eba51['array'][_0x300ad6]!==0x0&&(_0x2eba51['min']=Math['min'](_0x2eba51[_0x8efda7(0x3b4,0x362)],_0x2eba51['array'][_0x300ad6]),_0x2eba51['max']=Math['max'](_0x2eba51['max'],_0x2eba51['array'][_0x300ad6]));}_0x11dbab['speed']=_0x2eba51;}return _0x11dbab;}[_0x46d1d0(0x5b2,0x614)](){var _0x1569fb;function _0x26084f(_0x4b1f24,_0x557836){return _0x4ee3(_0x557836- -0x22d,_0x4b1f24);}const _0x161341=this[_0x1b2cf5(0x90,0x3e)];if(!_0x161341)return;const _0x3af968=_0x161341['canvas'],_0x2ab97d={};_0x2ab97d['x']=0x0,_0x2ab97d['y']=0x0;const _0x8772c4={};function _0x1b2cf5(_0x2ee6c3,_0x46db88){return _0x4ee3(_0x46db88- -0x4b1,_0x2ee6c3);}_0x8772c4['x']=0x0,_0x8772c4['y']=_0x3af968['clientHeight'];const _0xe9791c={};_0xe9791c['x']=_0x3af968[_0x1b2cf5(0x7,-0x1b)],_0xe9791c['y']=0x0;const _0x453d2d={};_0x453d2d['x']=_0x3af968['clientWidth'],_0x453d2d['y']=_0x3af968[_0x26084f(0x221,0x1f5)];const _0x24de2b=[_0x2ab97d,_0x8772c4,_0xe9791c,_0x453d2d];let _0x1cc2e2=0xb4,_0x3acabb=-0xb4,_0x28607c=0x5a,_0x2d4b9b=-0x5a,_0x1561ce=![];for(const _0x214884 of _0x24de2b){const _0x53fa54=_0x161341[_0x26084f(0x1f5,0x219)][_0x1b2cf5(0x59,-0xc)](new Cesium$1['Cartesian2'](_0x214884['x'],_0x214884['y']),_0x161341['globe']['ellipsoid']);if(!_0x53fa54){_0x1561ce=!![];break;}const _0x5c47d6=_0x161341['globe']['ellipsoid'][_0x26084f(0x277,0x1f1)](_0x53fa54),_0x2d425d=Cesium$1['Math'][_0x26084f(0x24d,0x1f2)](_0x5c47d6['longitude']),_0x367eec=Cesium$1['Math']['toDegrees'](_0x5c47d6[_0x26084f(0x2c1,0x2d0)]);_0x1cc2e2=Math[_0x1b2cf5(0x5c,0x4)](_0x1cc2e2,_0x2d425d),_0x3acabb=Math[_0x1b2cf5(0x86,0xb)](_0x3acabb,_0x2d425d),_0x28607c=Math['min'](_0x28607c,_0x367eec),_0x2d4b9b=Math[_0x26084f(0x2ad,0x28f)](_0x2d4b9b,_0x367eec);}if(!_0x1561ce){const _0x200107=new Cesium$1['Cartesian2'](Math['max'](this['windData'][_0x1b2cf5(-0x29,0x22)]['west'],_0x1cc2e2),Math[_0x26084f(0x2b0,0x288)](this[_0x26084f(0x290,0x263)][_0x26084f(0x242,0x2a6)]['east'],_0x3acabb)),_0x12ae8f=new Cesium$1['Cartesian2'](Math[_0x1b2cf5(-0x13,0xb)](this['windData']['bounds']['south'],_0x28607c),Math[_0x1b2cf5(-0x17,0x4)](this[_0x1b2cf5(0x39,-0x21)][_0x1b2cf5(-0x5b,0x22)][_0x1b2cf5(0x1a,-0x48)],_0x2d4b9b)),_0x38925e=(_0x200107['y']-_0x200107['x'])*0.05,_0x5950dd=(_0x12ae8f['y']-_0x12ae8f['x'])*0.05;_0x200107['x']=Math[_0x1b2cf5(0x7,0xb)](this['windData']['bounds'][_0x1b2cf5(0xa4,0x48)],_0x200107['x']-_0x38925e),_0x200107['y']=Math['min'](this[_0x1b2cf5(0x32,-0x21)]['bounds']['east'],_0x200107['y']+_0x38925e),_0x12ae8f['x']=Math['max'](this[_0x1b2cf5(0x5f,-0x21)]['bounds']['south'],_0x12ae8f['x']-_0x5950dd),_0x12ae8f['y']=Math[_0x1b2cf5(-0x8,0x4)](this[_0x26084f(0x1e5,0x263)]['bounds'][_0x1b2cf5(-0x7a,-0x48)],_0x12ae8f['y']+_0x5950dd),this['viewerParameters']['lonRange']=_0x200107,this['viewerParameters'][_0x26084f(0x261,0x2c3)]=_0x12ae8f;const _0x6078ef=this[_0x1b2cf5(0x5a,-0x21)]['bounds']['east']-this['windData']['bounds'][_0x26084f(0x322,0x2cc)],_0x5c1cea=this[_0x1b2cf5(0x20,-0x21)]['bounds'][_0x26084f(0x2c3,0x23c)]-this['windData']['bounds'][_0x26084f(0x2fe,0x2c8)],_0x1d8ca6=(_0x200107['y']-_0x200107['x'])/_0x6078ef,_0x2804b3=(_0x12ae8f['y']-_0x12ae8f['x'])/_0x5c1cea,_0x54b119=Math[_0x26084f(0x22b,0x288)](_0x1d8ca6,_0x2804b3),_0xa83f63=0x3e8*_0x54b119;_0xa83f63>0x0&&(this[_0x1b2cf5(0x27,-0x60)][_0x1b2cf5(0x7,-0x69)]=Math['max'](0x0,Math['min'](0x3e8,_0xa83f63)));}this[_0x26084f(0x1c3,0x224)][_0x1b2cf5(-0x65,-0xa)]=this[_0x26084f(0x2ba,0x2c2)][_0x1b2cf5(-0x2a,0x2a)],(_0x1569fb=this['particleSystem'])===null||_0x1569fb===void 0x0||_0x1569fb['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x3e6529,_0x5a7c56){const {bounds:_0x5608c7,width:_0x4391b9,height:_0x5a5a1d,u:_0x563707,v:_0x51d8bb,speed:_0x1986df}=this['windData'],{flipY:_0x3daa9b}=this['options'];if(_0x3e6529<_0x5608c7[_0xeaa319(0x294,0x240)]||_0x3e6529>_0x5608c7[_0xeaa319(0x168,0x1c6)]||_0x5a7c56<_0x5608c7['south']||_0x5a7c56>_0x5608c7['north'])return null;const _0x169795=(_0x3e6529-_0x5608c7['west'])/(_0x5608c7[_0x207a23(-0x11c,-0xf3)]-_0x5608c7[_0x207a23(-0x86,-0x79)])*(_0x4391b9-0x1);let _0x5ea21b=(_0x5a7c56-_0x5608c7['south'])/(_0x5608c7[_0x207a23(-0x135,-0x109)]-_0x5608c7['south'])*(_0x5a5a1d-0x1);_0x3daa9b&&(_0x5ea21b=_0x5a5a1d-0x1-_0x5ea21b);const _0xd43bce=Math[_0x207a23(-0xb0,-0x93)](_0x169795),_0x44c95f=Math['floor'](_0x5ea21b),_0x500374=Math['floor'](_0x169795),_0x46eda8=Math['min'](_0x500374+0x1,_0x4391b9-0x1),_0x28137c=Math['floor'](_0x5ea21b),_0x5c92b9=Math['min'](_0x28137c+0x1,_0x5a5a1d-0x1),_0x421707=_0x169795-_0x500374,_0x5b80d1=_0x5ea21b-_0x28137c,_0x3a29ee=_0x44c95f*_0x4391b9+_0xd43bce,_0x7712af=_0x28137c*_0x4391b9+_0x500374,_0x465818=_0x28137c*_0x4391b9+_0x46eda8,_0x340542=_0x5c92b9*_0x4391b9+_0x500374,_0x30bb81=_0x5c92b9*_0x4391b9+_0x46eda8,_0x27642d=_0x563707[_0x207a23(-0xf8,-0xc4)][_0x7712af],_0x482b3d=_0x563707['array'][_0x465818],_0x6bf273=_0x563707['array'][_0x340542],_0x8e9cd7=_0x563707['array'][_0x30bb81],_0x237d7b=(0x1-_0x421707)*(0x1-_0x5b80d1)*_0x27642d+_0x421707*(0x1-_0x5b80d1)*_0x482b3d+(0x1-_0x421707)*_0x5b80d1*_0x6bf273+_0x421707*_0x5b80d1*_0x8e9cd7,_0x24be43=_0x51d8bb[_0x207a23(-0x144,-0xc4)][_0x7712af],_0xb48d57=_0x51d8bb[_0x207a23(-0xa5,-0xc4)][_0x465818],_0x419804=_0x51d8bb[_0xeaa319(0x276,0x1f5)][_0x340542],_0x1a9c65=_0x51d8bb[_0xeaa319(0x215,0x1f5)][_0x30bb81],_0x204792=(0x1-_0x421707)*(0x1-_0x5b80d1)*_0x24be43+_0x421707*(0x1-_0x5b80d1)*_0xb48d57+(0x1-_0x421707)*_0x5b80d1*_0x419804+_0x421707*_0x5b80d1*_0x1a9c65,_0x283c40=Math['sqrt'](_0x237d7b*_0x237d7b+_0x204792*_0x204792),_0x2e87b1={};_0x2e87b1['u']=_0x563707[_0xeaa319(0x1c7,0x1f5)][_0x3a29ee];function _0x207a23(_0x19d058,_0x28388a){return _0x46d1d0(_0x28388a- -0x6d7,_0x19d058);}_0x2e87b1['v']=_0x51d8bb[_0x207a23(-0xd2,-0xc4)][_0x3a29ee],_0x2e87b1['speed']=_0x1986df['array'][_0x3a29ee];function _0xeaa319(_0xb10a95,_0x1f1ab0){return _0x4ee3(_0x1f1ab0- -0x2b9,_0xb10a95);}const _0x2db732={};_0x2db732['u']=_0x237d7b,_0x2db732['v']=_0x204792,_0x2db732['speed']=_0x283c40;const _0x2c2d3c={};return _0x2c2d3c['original']=_0x2e87b1,_0x2c2d3c['interpolated']=_0x2db732,_0x2c2d3c;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace[_0x46d1d0(0x679,0x667)][_0x46d1d0(0x663,0x655)]=WindLayer;function _0x23a9(){const _0x2801cf=['removeChild','particles','_setOptionsHook','dynamic','2691078ciKsze','_maxAge','dropRate','primitives','style','execute','lineWidth','mouseHidden','cartesianToCartographic','toDegrees','moveTo','geometry','clientHeight','1401455RpaYJs','createWindTextures','WindUtil','redraw','update','LINEAR','fixedHeight','xmin','particleSystem','_onMouseMoveEvent','pointerEvents','processWindData','worker','FLOAT','getSegmentDrawVertexShader','RED','_removedHook','pixelFormat','requestAnimationFrame','updateOptions','setData','_drawLines','postProcessingPosition','domain','applyViewerParameters','getOwnPropertyDescriptor','createRenderingFramebuffers','_canrefresh','destoryRenderingFramebuffers','mouse_move','cancelAnimationFrame','#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','left','6034296ZmFwjD','colorTable','camera','number','pixelSize','fromCache','show','#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','speedRate','updateViewerParameters','particlesTextureSize','umax','visible','viewerParameters','_onMouseUpEvent','Unknown\x20command\x20type','particlesTextures','4187280vmLoXA','setDate','SCENE3D','ymin','EllipsoidalOccluder','resize','updatePosition','hidden','tlng','CanvasWindLayer','getSegmentDrawFragmentShader','ONE_MINUS_SRC_ALPHA','mouse_down','framebuffer','create','unbindEvent','lng','frameTime','componentDatatype','setGeometry','north','speed','frameRate','createParticlesTextures','values','maxAge','_speedRate','bufferUsage','ellipsoid','keys','addEventListener','blendFuncSource','xmax','refreshTimer','remove','register','getRandomLatLng','primitiveType','isPointVisible','talt','createPrimitives','2FSQmvl','east','previousParticlesPosition','destination-in','DEPTH_COMPONENT','destroy','createRawRenderState','positionWC','none','pass','_showHook','round','isDynamic','IDENTITY','Compute','createRenderingTextures','486929GRNdCX','preExecute','windData','outputTexture','context','nextParticlesPosition','push','commandToExecute','clientWidth','depthTexture','_map','shaderProgram','position','data','rectangle','grid','umin','reCreateWindTextures','attributeLocations','pixelDatatype','off','enabled','segments','pickEllipsoid','_pointerEvents','sceneMode','__esModule','stringify','options','Cartesian3','length','getU','array','forEach','requestRender','computing','Cesium','colorTextures','TRIANGLES','min','particlesSpeed','default','globalAlpha','now','mouseMove','windField','max','_colorRamp','sources','clearCommand','stroke','_calc_speedRate','globe','canvasContext','width','canvas','age','zIndex','flipY','rows','vertexArray','componentsPerAttribute','OPAQUE','STATIC_DRAW','setOptions','auto','vdata','64JyioQE','clear','bounds','particlesNumber','fromGeometry','createComputingPrimitives','mouseDown','lat','cols','drawingBufferWidth','mode','textures','841707udEIIf','samplingWindow','floor','pointer-events','steps','#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','framebuffers','getPostProcessingPositionShader','BaseLayer','EventType','_mountedHook','container','bind','rendering','8105923eTAijt','blendFuncDestination','ymax','createCommand','scene','latRange','_updateIng','toGridXY','type','owner','south','visibility','canvasWidth','0px','west','tlat','removeEventListener','updateWindData','latitude','WindLayer','frameRateAdjustment','destroyParticlesTextures','canvasHeight','displayRange','windTextures','toWindowCoordinates','fragmentShaderSource','warn','clearFramebuffers','drawingBufferHeight','green','colors','percentageChanged','Math','calculateSpeed','object','_addedHook','random','beginPath','quietPeriod','flatMap','layer','dropRateBump','_canvasParticles','lineLength','height','globalCompositeOperation','_tomap','_randomParticle','uniformMap','createColorTableTexture','_onMapWhellEvent','rawRenderState','_calcUV','commandList','fillRect'];_0x23a9=function(){return _0x2801cf;};return _0x23a9();}class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this['tlng']=null,this['tlat']=null,this[_0x25d1e5(0x161,0x10f)]=null;function _0x25d1e5(_0x289ca5,_0xafc501){return _0x4ee3(_0x289ca5- -0x365,_0xafc501);}this['speed']=null;}[_0x46d1d0(0x5e8,0x5be)](){for(const _0x464384 in this){delete this[_0x464384];}}}class CanvasWindField{constructor(_0x4c85ad){this['setOptions'](_0x4c85ad);}get['speedRate'](){return this['_speedRate'];}set[_0x4ee3(0x44c,0x457)](_0x3eca76){function _0x135293(_0x2023d1,_0x4b6fb1){return _0x4ee3(_0x2023d1-0x11e,_0x4b6fb1);}function _0x56edc2(_0x4176d0,_0x1bb543){return _0x4ee3(_0x4176d0- -0x2ab,_0x1bb543);}this[_0x56edc2(0x1c4,0x216)]=(0x64-(_0x3eca76>0x63?0x63:_0x3eca76))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x135293(0x60b,0x614)]-this[_0x56edc2(0x1ad,0x14a)])/this[_0x56edc2(0x1c4,0x241)]];}get[_0x4ee3(0x46e,0x4da)](){function _0x243e40(_0x3db8e6,_0x483fce){return _0x46d1d0(_0x3db8e6- -0x4ce,_0x483fce);}return this[_0x243e40(0x1bf,0x147)];}set['maxAge'](_0x37c9ee){function _0x24aed4(_0x2ab410,_0x87afc3){return _0x4ee3(_0x87afc3- -0x236,_0x2ab410);}this[_0x24aed4(0x2ce,0x2f2)]=_0x37c9ee;}['setOptions'](_0x5476db){function _0x410956(_0x381270,_0x338ab9){return _0x4ee3(_0x338ab9-0xb5,_0x381270);}function _0x52d7b6(_0x1f207e,_0x4d9998){return _0x4ee3(_0x4d9998-0xf5,_0x1f207e);}this['options']=_0x5476db,this[_0x52d7b6(0x57b,0x563)]=_0x5476db[_0x52d7b6(0x5bc,0x563)]||0x78,this['speedRate']=_0x5476db[_0x52d7b6(0x55a,0x541)]||0x32,this['particles']=[];const _0x1b1ce8=_0x5476db['particlesNumber']||0x1000;for(let _0x7f530c=0x0;_0x7f530c<_0x1b1ce8;_0x7f530c++){const _0x4cf34e=this['_randomParticle'](new CanvasParticle());this['particles'][_0x52d7b6(0x57f,0x589)](_0x4cf34e);}}[_0x46d1d0(0x5bb,0x576)](_0x4f3f94){function _0x48d7a7(_0x189c32,_0xe7c945){return _0x4ee3(_0xe7c945- -0x2b5,_0x189c32);}this['rows']=_0x4f3f94[_0x48d7a7(0x267,0x214)],this['cols']=_0x4f3f94['cols'],this['xmin']=_0x4f3f94['xmin'],this[_0x48d7a7(0x246,0x1c0)]=_0x4f3f94['xmax'],this[_0x1d9857(0x17d,0x108)]=_0x4f3f94['ymin'],this['ymax']=_0x4f3f94['ymax'],this[_0x1d9857(0x1c2,0x1f8)]=[];const _0x23e8e2=_0x4f3f94['udata'];function _0x1d9857(_0x13abfc,_0xf89de6){return _0x4ee3(_0x13abfc- -0x2db,_0xf89de6);}const _0x701ac7=_0x4f3f94[_0x1d9857(0x1f5,0x1aa)];let _0x40e4c9=![];_0x23e8e2[_0x1d9857(0x1d1,0x167)]===this[_0x1d9857(0x1ee,0x24f)]&&_0x23e8e2[0x0][_0x48d7a7(0x207,0x1f7)]===this['cols']&&(_0x40e4c9=!![]);let _0x25a5a8=0x0,_0x38fc4b=null,_0x58974d=null;for(let _0x357d15=0x0;_0x357d15<this['rows'];_0x357d15++){_0x38fc4b=[];for(let _0x366d61=0x0;_0x366d61<this['cols'];_0x366d61++,_0x25a5a8++){_0x40e4c9?_0x58974d=this['_calcUV'](_0x23e8e2[_0x357d15][_0x366d61],_0x701ac7[_0x357d15][_0x366d61]):_0x58974d=this['_calcUV'](_0x23e8e2[_0x25a5a8],_0x701ac7[_0x25a5a8]),_0x38fc4b[_0x48d7a7(0x263,0x1df)](_0x58974d);}this[_0x1d9857(0x1c2,0x167)]['push'](_0x38fc4b);}!this['options']['flipY']&&this['grid']['reverse']();}[_0x46d1d0(0x637,0x6a0)](){function _0x4a44da(_0x436b7d,_0x21e8ed){return _0x46d1d0(_0x436b7d- -0x49a,_0x21e8ed);}function _0x48742d(_0x3d0631,_0x4236e3){return _0x4ee3(_0x4236e3- -0x16d,_0x3d0631);}delete this[_0x4a44da(0x194,0x179)],delete this['cols'],delete this[_0x48742d(0x33a,0x2bd)],delete this['xmax'],delete this['ymin'],delete this['ymax'],delete this[_0x4a44da(0x168,0x1e2)],delete this['particles'];}['toGridXY'](_0x3eed0e,_0x287ef2){function _0x4564bc(_0x5c1372,_0x1b656a){return _0x46d1d0(_0x1b656a- -0x660,_0x5c1372);}const _0x2253f6=(_0x3eed0e-this[_0x4564bc(-0xe6,-0xd1)])/(this[_0x4564bc(-0x79,-0x86)]-this['xmin'])*(this['cols']-0x1);function _0x105757(_0x151a64,_0x3480b4){return _0x4ee3(_0x151a64- -0x38e,_0x3480b4);}const _0x6fb4d7=(this['ymax']-_0x287ef2)/(this['ymax']-this['ymin'])*(this['rows']-0x1);return[_0x2253f6,_0x6fb4d7];}['getUVByXY'](_0x50bdf2,_0x2e4370){if(_0x50bdf2<0x0||_0x50bdf2>=this[_0x42c482(0x30b,0x2a8)]||_0x2e4370>=this[_0x637c7a(0x54a,0x595)])return[0x0,0x0,0x0];const _0x40a912=Math['floor'](_0x50bdf2),_0x15583=Math[_0x42c482(0x311,0x318)](_0x2e4370);function _0x637c7a(_0x19ec58,_0x8c5908){return _0x4ee3(_0x19ec58-0x81,_0x8c5908);}if(_0x40a912===_0x50bdf2&&_0x15583===_0x2e4370)return this['grid'][_0x2e4370][_0x50bdf2];const _0x1c6865=_0x40a912+0x1,_0x25cd69=_0x15583+0x1,_0x1d5b18=this['getUVByXY'](_0x40a912,_0x15583);function _0x42c482(_0x5d4c30,_0x4e0ef1){return _0x4ee3(_0x5d4c30- -0x1ce,_0x4e0ef1);}const _0x4ac646=this['getUVByXY'](_0x1c6865,_0x15583),_0x1fde8b=this['getUVByXY'](_0x40a912,_0x25cd69),_0x5bfec7=this['getUVByXY'](_0x1c6865,_0x25cd69);let _0x184532=null;try{_0x184532=this['_bilinearInterpolation'](_0x50bdf2-_0x40a912,_0x2e4370-_0x15583,_0x1d5b18,_0x4ac646,_0x1fde8b,_0x5bfec7);}catch(_0x4be891){console['log'](_0x50bdf2,_0x2e4370);}return _0x184532;}['_bilinearInterpolation'](_0x4c3ef0,_0x5bc0cd,_0xb3a05c,_0x280cb0,_0xa773db,_0x304048){const _0x5481cc=0x1-_0x4c3ef0,_0x15b401=0x1-_0x5bc0cd,_0x564323=_0x5481cc*_0x15b401,_0x4223c6=_0x4c3ef0*_0x15b401,_0x9c2f73=_0x5481cc*_0x5bc0cd,_0x2cf79b=_0x4c3ef0*_0x5bc0cd;function _0x44bfb4(_0x59bd0d,_0x11bbbd){return _0x46d1d0(_0x59bd0d- -0x423,_0x11bbbd);}const _0x45e1b1=_0xb3a05c[0x0]*_0x564323+_0x280cb0[0x0]*_0x4223c6+_0xa773db[0x0]*_0x9c2f73+_0x304048[0x0]*_0x2cf79b,_0x9c03f3=_0xb3a05c[0x1]*_0x564323+_0x280cb0[0x1]*_0x4223c6+_0xa773db[0x1]*_0x9c2f73+_0x304048[0x1]*_0x2cf79b;return this[_0x44bfb4(0x262,0x291)](_0x45e1b1,_0x9c03f3);}[_0x46d1d0(0x685,0x67c)](_0x30d127,_0x5d73e6){return[+_0x30d127,+_0x5d73e6,Math['sqrt'](_0x30d127*_0x30d127+_0x5d73e6*_0x5d73e6)];}['getUVByPoint'](_0xb38e14,_0x409707){if(!this['isInExtent'](_0xb38e14,_0x409707))return null;function _0x47663e(_0x2139d5,_0x2e7d41){return _0x46d1d0(_0x2e7d41- -0x178,_0x2139d5);}const _0x53ab6e=this[_0x47663e(0x4f5,0x4df)](_0xb38e14,_0x409707),_0x30bd3f=this['getUVByXY'](_0x53ab6e[0x0],_0x53ab6e[0x1]);return _0x30bd3f;}['isInExtent'](_0x4a1431,_0x2394db){function _0x376337(_0x4831dc,_0x2ec037){return _0x46d1d0(_0x4831dc- -0x3e0,_0x2ec037);}function _0x1f6fca(_0x2f6a6d,_0x43a133){return _0x4ee3(_0x43a133- -0x3ff,_0x2f6a6d);}return _0x4a1431>=this[_0x1f6fca(0x1b,0x2b)]&&_0x4a1431<=this[_0x1f6fca(0x40,0x76)]&&_0x2394db>=this[_0x376337(0x1dd,0x21e)]&&_0x2394db<=this['ymax']?!![]:![];}[_0x46d1d0(0x5de,0x5ab)](){const _0x57340a=fRandomByfloat(this['xmin'],this[_0x58386e(0x23e,0x1e8)]),_0x557ca9=fRandomByfloat(this[_0x3ae449(0x3e1,0x3bb)],this['ymax']);function _0x3ae449(_0x496f55,_0x2d15eb){return _0x46d1d0(_0x2d15eb- -0x202,_0x496f55);}const _0x38bd0d={};function _0x58386e(_0x5b1e84,_0xd54db9){return _0x4ee3(_0xd54db9- -0x28d,_0x5b1e84);}return _0x38bd0d[_0x3ae449(0x3c0,0x43b)]=_0x557ca9,_0x38bd0d['lng']=_0x57340a,_0x38bd0d;}['getParticles'](){let _0x3ca25d,_0x3df53b,_0x58f2ec;for(let _0x2a33a8=0x0,_0x5ca035=this['particles'][_0x1b9aa1(0x211,0x22e)];_0x2a33a8<_0x5ca035;_0x2a33a8++){let _0x29807f=this[_0x1b9aa1(0x289,0x270)][_0x2a33a8];_0x29807f['age']<=0x0&&(_0x29807f=this['_randomParticle'](_0x29807f));if(_0x29807f['age']>0x0){const _0x187871=_0x29807f['tlng'],_0x4121ca=_0x29807f['tlat'];_0x58f2ec=this['getUVByPoint'](_0x187871,_0x4121ca),_0x58f2ec?(_0x3ca25d=_0x187871+this['_calc_speedRate'][0x0]*_0x58f2ec[0x0],_0x3df53b=_0x4121ca+this['_calc_speedRate'][0x1]*_0x58f2ec[0x1],_0x29807f['lng']=_0x187871,_0x29807f['lat']=_0x4121ca,_0x29807f[_0x1b9aa1(0x1c2,0x1c6)]=_0x3ca25d,_0x29807f['tlat']=_0x3df53b,_0x29807f[_0x3e22a7(0x263,0x26a)]=_0x58f2ec[0x2],_0x29807f['age']--):_0x29807f[_0x3e22a7(0x2c6,0x2c6)]=0x0;}}function _0x1b9aa1(_0x32f378,_0x3e4a47){return _0x46d1d0(_0x32f378- -0x400,_0x3e4a47);}function _0x3e22a7(_0x46a180,_0x2b70b9){return _0x46d1d0(_0x2b70b9- -0x365,_0x46a180);}return this[_0x3e22a7(0x37e,0x324)];}[_0x46d1d0(0x680,0x626)](_0x3cc3a5){let _0x2b16d6,_0x5008c5;function _0x6daa44(_0x5df03c,_0x10a5f8){return _0x46d1d0(_0x5df03c- -0x55b,_0x10a5f8);}for(let _0x1c4221=0x0;_0x1c4221<0x1e;_0x1c4221++){_0x2b16d6=this['getRandomLatLng'](),_0x5008c5=this['getUVByPoint'](_0x2b16d6['lng'],_0x2b16d6['lat']);if(_0x5008c5&&_0x5008c5[0x2]>0x0)break;}if(!_0x5008c5)return _0x3cc3a5;const _0x15ae3f=_0x2b16d6[_0xa15acd(0x5a1,0x565)]+this['_calc_speedRate'][0x0]*_0x5008c5[0x0],_0xf22fb9=_0x2b16d6['lat']+this[_0x6daa44(0xcb,0x92)][0x1]*_0x5008c5[0x1];_0x3cc3a5['lng']=_0x2b16d6['lng'];function _0xa15acd(_0x437cda,_0x22acbb){return _0x46d1d0(_0x437cda- -0x29,_0x22acbb);}return _0x3cc3a5['lat']=_0x2b16d6[_0x6daa44(0xe2,0xb1)],_0x3cc3a5[_0xa15acd(0x599,0x5a7)]=_0x15ae3f,_0x3cc3a5[_0x6daa44(0x104,0xaa)]=_0xf22fb9,_0x3cc3a5['age']=Math[_0x6daa44(0x93,0xa1)](0xa+Math['random']()*this['maxAge']),_0x3cc3a5[_0xa15acd(0x5a6,0x55f)]=_0x5008c5[0x2],_0x3cc3a5;}['destroy'](){for(const _0x2e6da8 in this){delete this[_0x2e6da8];}}}function fRandomByfloat(_0x36472e,_0x1b289c){return _0x36472e+Math['random']()*(_0x1b289c-_0x36472e);}const Cesium=mars3d__namespace[_0x46d1d0(0x617,0x602)],BaseLayer=mars3d__namespace[_0x4ee3(0x514,0x555)][_0x46d1d0(0x64a,0x683)];function _0x4ee3(_0x14a192,_0x3fce83){return _0x3f35(_0x14a192-0x254,_0x3fce83);}class CanvasWindLayer extends BaseLayer{constructor(_0x4af0b2={}){function _0x4508d3(_0x458997,_0x40ee77){return _0x46d1d0(_0x40ee77- -0x3fa,_0x458997);}super(_0x4af0b2),this[_0x4508d3(0x230,0x290)](_0x4af0b2);function _0x39d4cf(_0x3185b9,_0x2260d7){return _0x4ee3(_0x3185b9- -0x66,_0x2260d7);}this['canvas']=null,_0x4af0b2[_0x4508d3(0x228,0x275)]&&_0x4af0b2[_0x4508d3(0x204,0x24c)]&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x4af0b2));}[_0x46d1d0(0x68a,0x66f)](_0x490a19,_0x22c625){this['frameTime']=0x3e8/(_0x490a19[_0x2b0204(0x2d,0xab)]||0xa);function _0x2b0204(_0x3d1753,_0x2219e4){return _0x4ee3(_0x3d1753- -0x43e,_0x2219e4);}this[_0x2b0204(0x68,0x24)]=this['options'][_0x2b0204(-0x11,-0x61)]??![];function _0x491af7(_0x3bf8be,_0x320a61){return _0x46d1d0(_0x3bf8be- -0x5ba,_0x320a61);}this['color']=_0x490a19['color']||'#ffffff',this['lineWidth']=_0x490a19['lineWidth']||0x1,this['fixedHeight']=_0x490a19[_0x2b0204(-0x15,-0x78)]??0x0,this[_0x491af7(0x73,0xd4)]=_0x490a19['flipY']??![],this[_0x491af7(0x66,0x3)]&&this[_0x491af7(0x66,-0x18)][_0x491af7(0x79,0x3)](_0x490a19);}get['layer'](){return this['canvas'];}get[_0x4ee3(0x4f7,0x49a)](){function _0x32f815(_0x12cc88,_0x4c3874){return _0x4ee3(_0x12cc88- -0x357,_0x4c3874);}function _0x2827ba(_0x4aa60b,_0x2f040a){return _0x4ee3(_0x4aa60b- -0x4b5,_0x2f040a);}return this[_0x2827ba(-0x1d,-0x1f)][_0x32f815(0x198,0x1b2)]['canvas']['clientWidth'];}get[_0x4ee3(0x501,0x496)](){function _0xf6a706(_0x520862,_0x370af4){return _0x46d1d0(_0x370af4- -0x660,_0x520862);}return this['_map'][_0xf6a706(0x5,-0xc)]['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set['pointerEvents'](_0x9424f8){this['_pointerEvents']=_0x9424f8;function _0x38835b(_0x57bf5c,_0x32c685){return _0x46d1d0(_0x57bf5c- -0x653,_0x32c685);}if(!this['canvas'])return;function _0x4a3532(_0x2f4f9e,_0x589082){return _0x4ee3(_0x589082- -0x2e8,_0x2f4f9e);}_0x9424f8?this['canvas']['style']['pointer-events']='all':this['canvas'][_0x4a3532(0x2c0,0x243)][_0x4a3532(0x1c5,0x1f8)]=_0x4a3532(0x1ad,0x19e);}get[_0x46d1d0(0x639,0x6a0)](){function _0x234ffa(_0x185b59,_0x2bbe05){return _0x4ee3(_0x2bbe05- -0x18a,_0x185b59);}return this['options'][_0x234ffa(0x3ac,0x34a)];}set['particlesNumber'](_0x598d3b){this[_0x2c33e0(0x61e,0x5de)]['particlesNumber']=_0x598d3b;function _0x2c33e0(_0x5424a7,_0x72f19b){return _0x46d1d0(_0x5424a7-0xf,_0x72f19b);}clearTimeout(this['_canrefresh']);function _0x24b7be(_0x166a38,_0x5b39ea){return _0x4ee3(_0x5b39ea- -0x167,_0x166a38);}this[_0x24b7be(0x2c6,0x2d7)]=setTimeout(()=>{function _0x1f1dee(_0x5f458a,_0x2f5a45){return _0x24b7be(_0x5f458a,_0x2f5a45-0x2a8);}this[_0x1f1dee(0x538,0x567)]();},0x1f4);}get[_0x46d1d0(0x5b1,0x58c)](){function _0x46c889(_0x27205d,_0x57409f){return _0x4ee3(_0x27205d- -0x437,_0x57409f);}function _0x2a36ec(_0x10bc3d,_0x28d017){return _0x46d1d0(_0x10bc3d- -0xdf,_0x28d017);}return this[_0x46c889(0x73,0x27)][_0x46c889(0x15,0x4d)];}set[_0x46d1d0(0x5b1,0x5f8)](_0x2b605b){function _0x4fd9ec(_0x1537cc,_0x4af4c4){return _0x4ee3(_0x4af4c4- -0x60b,_0x1537cc);}this[_0x4fd9ec(-0x181,-0x161)]['speedRate']=_0x2b605b;function _0x3d66f5(_0xde60f2,_0x286a46){return _0x46d1d0(_0x286a46-0x11,_0xde60f2);}this['windField']&&(this['windField'][_0x3d66f5(0x547,0x5c2)]=_0x2b605b);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x11f79f){this['options']['maxAge']=_0x11f79f;function _0x3eefbb(_0xac11ac,_0x3664f3){return _0x4ee3(_0xac11ac-0x11d,_0x3664f3);}this['windField']&&(this['windField'][_0x3eefbb(0x58b,0x58b)]=_0x11f79f);}get[_0x46d1d0(0x600,0x686)](){return this['windData'];}set[_0x4ee3(0x49b,0x4ee)](_0x4efa5f){function _0x550b5c(_0x368fef,_0x227870){return _0x46d1d0(_0x368fef- -0xb6,_0x227870);}this[_0x550b5c(0x4e6,0x4a6)](_0x4efa5f);}get[_0x4ee3(0x49c,0x49b)](){function _0x38109b(_0x12c10f,_0x248a33){return _0x4ee3(_0x12c10f- -0x460,_0x248a33);}function _0x258bcc(_0x5508eb,_0x2704ca){return _0x4ee3(_0x5508eb- -0x5b5,_0x2704ca);}let _0xd7501=this[_0x38109b(0x30,0x32)]['xmin'],_0x12249d=this[_0x38109b(0x30,-0x23)][_0x258bcc(-0x140,-0x14f)],_0x4d03a1=this['windData']['ymin'],_0x46646e=this['windData'][_0x38109b(0x8d,0xb2)];return _0x12249d>=0x167&&_0xd7501===0x0&&(_0xd7501=-0xb4,_0x12249d=0xb4),_0xd7501=Math['max'](_0xd7501,-0xb4),_0x12249d=Math[_0x38109b(0x55,0x57)](_0x12249d,0xb4),_0x4d03a1=Math['max'](_0x4d03a1,-0x5a),_0x46646e=Math[_0x38109b(0x55,0x79)](_0x46646e,0x5a),Cesium['Rectangle']['fromDegrees'](_0xd7501,_0x4d03a1,_0x12249d,_0x46646e);}['_showHook'](_0xbb5866){function _0x163b3a(_0x46bd4a,_0xe87dcc){return _0x4ee3(_0x46bd4a- -0x199,_0xe87dcc);}_0xbb5866?this['_addedHook']():(this['windData']&&(this['options']['data']=this[_0x163b3a(0x2f7,0x302)]),this['_removedHook']());}['_mountedHook'](){function _0xffda65(_0x48dd6d,_0x5d9632){return _0x4ee3(_0x5d9632-0xba,_0x48dd6d);}this['options']['worker']?this['initWorker']():this['windField']=new CanvasWindField(this[_0xffda65(0x4f6,0x564)]);}['_addedHook'](){this[_0x8e0dd4(0x18a,0x213)]=this['_createCanvas']();const _0x102cb3={};_0x102cb3['willReadFrequently']=!![],this['canvasContext']=this['canvas']['getContext']('2d',_0x102cb3);function _0x8e0dd4(_0x253791,_0x31d95b){return _0x46d1d0(_0x31d95b- -0x417,_0x253791);}this['bindEvent']();function _0x10d75c(_0x42f7e0,_0x271bc8){return _0x46d1d0(_0x271bc8- -0x5a0,_0x42f7e0);}this[_0x10d75c(0x9a,0x6f)][_0x8e0dd4(0x24c,0x1e9)]&&this['setData'](this[_0x10d75c(0xdd,0x6f)]['data']);}['_removedHook'](){function _0x5ad182(_0x1ae26d,_0x120776){return _0x4ee3(_0x120776- -0x7d,_0x1ae26d);}this['clear'](),this[_0x4808b1(0x53c,0x4cb)]();function _0x4808b1(_0x2cb427,_0x4e6acc){return _0x46d1d0(_0x4e6acc- -0xfe,_0x2cb427);}this['canvas']&&(this[_0x4808b1(0x548,0x4ff)][_0x4808b1(0x506,0x54f)][_0x5ad182(0x482,0x4a6)](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x5c6dc1=mars3d__namespace['DomUtil'][_0x4fc509(0xe1,0xfd)]('canvas','mars3d-canvasWind',this['_map']['container']);_0x5c6dc1['style'][_0x4fc509(0x1ad,0x134)]='absolute',_0x5c6dc1['style']['top']=_0x45375a(0x5a1,0x562),_0x5c6dc1['style'][_0x4fc509(0xc7,0xdd)]='0px',_0x5c6dc1[_0x45375a(0x5d4,0x5e8)]['width']=this['_map'][_0x4fc509(0x123,0x189)]['canvas'][_0x4fc509(0x18f,0x130)]+'px',_0x5c6dc1[_0x45375a(0x5d4,0x558)]['height']=this[_0x4fc509(0x139,0x132)][_0x4fc509(0x14d,0x189)][_0x4fc509(0x1c1,0x15f)]['clientHeight']+'px',_0x5c6dc1[_0x45375a(0x5d4,0x602)]['pointerEvents']=this['_pointerEvents']?_0x4fc509(0x141,0x169):_0x45375a(0x52f,0x507),_0x5c6dc1['style']['zIndex']=this['options'][_0x4fc509(0xe1,0x161)]??0x9;function _0x4fc509(_0x265216,_0x26e3e4){return _0x46d1d0(_0x26e3e4- -0x4cb,_0x265216);}_0x5c6dc1[_0x45375a(0x56d,0x5b1)]=this['_map'][_0x45375a(0x598,0x576)]['canvas'][_0x45375a(0x53f,0x58a)];function _0x45375a(_0x54f218,_0x34fcd3){return _0x4ee3(_0x54f218-0xa9,_0x34fcd3);}return _0x5c6dc1[_0x4fc509(0x21e,0x1b2)]=this['_map']['scene']['canvas']['clientHeight'],_0x5c6dc1;}[_0x46d1d0(0x5bf,0x5b1)](){function _0x171f70(_0x2ed45e,_0x57bb38){return _0x4ee3(_0x57bb38- -0x292,_0x2ed45e);}function _0x4c9610(_0x1ba6aa,_0x3e1c09){return _0x46d1d0(_0x1ba6aa- -0x13,_0x3e1c09);}this[_0x4c9610(0x617,0x680)]&&(this['canvas']['style']['width']=this[_0x4c9610(0x5ea,0x57a)][_0x171f70(0x236,0x25d)]['canvas']['clientWidth']+'px',this['canvas']['style'][_0x4c9610(0x66a,0x622)]=this['_map'][_0x171f70(0x2b4,0x25d)]['canvas'][_0x171f70(0x20f,0x190)]+'px',this['canvas'][_0x4c9610(0x616,0x5eb)]=this['_map']['scene']['canvas']['clientWidth'],this['canvas']['height']=this['_map'][_0x171f70(0x2b3,0x25d)][_0x4c9610(0x617,0x680)]['clientHeight']);}['bindEvent'](){const _0x3c2ff6=this;function _0x2c0225(_0x4aa3f3,_0x40e103){return _0x4ee3(_0x4aa3f3- -0x38e,_0x40e103);}let _0x12bc07=Date[_0x2c0225(0x12b,0x113)]();(function _0xc92e35(){function _0x4c295e(_0x26f066,_0xab993c){return _0x2c0225(_0x26f066- -0x21e,_0xab993c);}if(_0x3c2ff6['isDestroy'])return;function _0x32353b(_0x55eef2,_0x398e9f){return _0x2c0225(_0x55eef2- -0xe5,_0x398e9f);}_0x3c2ff6['_animateFrame']=window[_0x32353b(-0x3e,0xb)](_0xc92e35);if(_0x3c2ff6[_0x4c295e(-0x162,-0x1a3)]&&_0x3c2ff6['windField']){const _0x70835d=Date['now'](),_0x69a50b=_0x70835d-_0x12bc07;_0x69a50b>_0x3c2ff6['frameTime']&&(_0x12bc07=_0x70835d-_0x69a50b%_0x3c2ff6[_0x4c295e(-0x146,-0xc1)],_0x3c2ff6['update']());}}(),window[_0x163fa5(0x57c,0x52a)]('resize',this[_0x2c0225(0xcc,0x50)][_0x163fa5(0x5f2,0x569)](this),![]),this[_0x163fa5(0x56a,0x574)]=![],this['mouse_move']=![]);function _0x163fa5(_0x3d02fe,_0x299013){return _0x4ee3(_0x3d02fe-0x109,_0x299013);}this[_0x2c0225(0x11c,0x177)][_0x163fa5(0x526,0x4f6)]&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x163fa5(0x627,0x65a)],this),this['_map']['on'](mars3d__namespace[_0x163fa5(0x5ef,0x64d)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x2c0225(0x10a,0xcc)]['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x2c0225(0xc4,0x99)],this));}['unbindEvent'](){window[_0x5bcdc2(0x17b,0x13b)](this['_animateFrame']),delete this['_animateFrame'];function _0x5bcdc2(_0x42a8a3,_0x1d6f26){return _0x46d1d0(_0x1d6f26- -0x46b,_0x42a8a3);}function _0x1d1e3a(_0x5befea,_0x20be04){return _0x46d1d0(_0x20be04- -0x29e,_0x5befea);}window['removeEventListener']('resize',this['resize']),this['options']['mouseHidden']&&(this['_map'][_0x5bcdc2(0x181,0x19c)](mars3d__namespace[_0x1d1e3a(0x3e4,0x3ad)]['wheel'],this[_0x5bcdc2(0x294,0x218)],this),this[_0x1d1e3a(0x383,0x35f)][_0x5bcdc2(0x11b,0x19c)](mars3d__namespace['EventType'][_0x1d1e3a(0x3f3,0x39e)],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this[_0x5bcdc2(0x15b,0x14c)],this),this[_0x5bcdc2(0x1f0,0x192)][_0x1d1e3a(0x387,0x369)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x46d1d0(0x683,0x600)](_0x422c88){clearTimeout(this[_0x4e4430(0x100,0x157)]);function _0x4e4430(_0x5a13b3,_0x52e3c8){return _0x46d1d0(_0x52e3c8- -0x484,_0x5a13b3);}if(!this[_0x4e4430(0x12c,0x12b)]||!this['canvas'])return;this['canvas'][_0x9e9894(0x105,0x17b)]['visibility']=_0x4e4430(0xb5,0x13d);function _0x9e9894(_0xee6e82,_0x4141b9){return _0x4ee3(_0x4141b9- -0x3b0,_0xee6e82);}this['refreshTimer']=setTimeout(()=>{function _0x802b16(_0x3865c3,_0x527ab4){return _0x4e4430(_0x3865c3,_0x527ab4-0x3dc);}if(!this[_0x802b16(0x550,0x507)])return;function _0x29f359(_0x2563af,_0x3a71a5){return _0x9e9894(_0x3a71a5,_0x2563af- -0x1ba);}this[_0x802b16(0x556,0x4e3)](),this[_0x802b16(0x5ad,0x582)][_0x29f359(-0x3f,-0x8c)][_0x802b16(0x531,0x5b3)]=_0x802b16(0x4bc,0x50d);},0xc8);}['_onMouseDownEvent'](_0x3e5483){function _0x318706(_0x242d6e,_0x1b252c){return _0x46d1d0(_0x1b252c- -0x362,_0x242d6e);}this['mouse_down']=!![],this['_map'][_0x6e0323(-0x166,-0x13d)](mars3d__namespace[_0x6e0323(-0xf8,-0xf9)]['mouseMove'],this['_onMouseMoveEvent'],this);function _0x6e0323(_0x1fd01d,_0x57bfe0){return _0x46d1d0(_0x57bfe0- -0x744,_0x1fd01d);}this['_map']['on'](mars3d__namespace['EventType'][_0x318706(0x317,0x2bd)],this[_0x318706(0x27a,0x22f)],this);}[_0x4ee3(0x42c,0x3b3)](_0x1ff8bb){function _0x4a6104(_0xfa15d8,_0x41a759){return _0x4ee3(_0xfa15d8- -0x51b,_0x41a759);}if(!this['show']||!this['canvas'])return;function _0xc37bd(_0x1f1dad,_0x16b31a){return _0x46d1d0(_0x16b31a- -0x60b,_0x1f1dad);}this[_0xc37bd(0x28,-0x45)]&&(this['canvas']['style'][_0x4a6104(-0x25,-0x10)]='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x382d48){if(!this[_0x535bee(-0x7d,-0xfb)]||!this[_0x535bee(-0x2,0x1c)])return;this[_0x535bee(-0x2f,-0x49)][_0x4feb6c(-0xd8,-0x10a)](mars3d__namespace[_0x535bee(0x1f,0xe)]['mouseMove'],this[_0x535bee(-0x9b,-0xb3)],this);this['mouse_down']&&this[_0x535bee(-0x87,-0x1c)]&&this[_0x535bee(-0xa1,-0xa3)]();this['canvas'][_0x4feb6c(-0x18,-0x81)]['visibility']=_0x535bee(-0x77,-0x2c),this['mouse_down']=![];function _0x4feb6c(_0x49e302,_0x24a93f){return _0x46d1d0(_0x24a93f- -0x711,_0x49e302);}function _0x535bee(_0x3008c4,_0x5ed84f){return _0x46d1d0(_0x3008c4- -0x62c,_0x5ed84f);}this['mouse_move']=![];}['setData'](_0xcc800b){this['clear'](),this[_0x8aa954(0x3ef,0x46d)]=_0xcc800b,this['windField']['setDate'](_0xcc800b);function _0x8aa954(_0x47326e,_0x2f6aea){return _0x4ee3(_0x47326e- -0xa1,_0x2f6aea);}function _0x402390(_0x43c630,_0x47633f){return _0x4ee3(_0x43c630- -0x469,_0x47633f);}this[_0x8aa954(0x385,0x3bb)]();}['redraw'](){function _0x16dfa4(_0x3c45e1,_0x1f77f1){return _0x4ee3(_0x3c45e1- -0x53e,_0x1f77f1);}if(!this['show'])return;this['windField'][_0x16dfa4(-0x70,-0x7d)](this['options']),this['update']();}['update'](){if(this[_0x20df8c(-0xe1,-0x78)])return;this[_0x28b87a(-0x93,-0x10c)]=!![];if(this['worker'])this['windField']['update']();else{const _0x192b22=this['windField']['getParticles']();this['_drawLines'](_0x192b22);}function _0x20df8c(_0x3ea0d6,_0x2a2d8e){return _0x4ee3(_0x2a2d8e- -0x569,_0x3ea0d6);}function _0x28b87a(_0x2d89ef,_0x413731){return _0x46d1d0(_0x413731- -0x762,_0x2d89ef);}this[_0x20df8c(-0x27,-0x78)]=![];}[_0x4ee3(0x438,0x424)](_0x53e9d2){function _0x3f1f99(_0x4e50ec,_0x2e6d65){return _0x4ee3(_0x4e50ec- -0x2ea,_0x2e6d65);}this[_0x4f1ce8(0x5d5,0x584)]=_0x53e9d2,this['canvasContext']['globalCompositeOperation']=_0x4f1ce8(0x540,0x58b),this['canvasContext'][_0x3f1f99(0x238,0x262)](0x0,0x0,this[_0x3f1f99(0x20d,0x24b)],this[_0x3f1f99(0x217,0x210)]),this[_0x4f1ce8(0x582,0x568)][_0x4f1ce8(0x5d8,0x56d)]='lighter',this[_0x3f1f99(0x1d9,0x228)][_0x4f1ce8(0x577,0x517)]=0.9;const _0x22a830=this[_0x3f1f99(0x1ae,0x13f)][_0x4f1ce8(0x5ae,0x5d7)]['mode']!==Cesium['SceneMode']['SCENE3D'],_0x37c038=this['canvasWidth']*0.25;function _0x4f1ce8(_0x3adb9f,_0x1dbf21){return _0x4ee3(_0x3adb9f-0xbf,_0x1dbf21);}if(this[_0x3f1f99(0x1d3,0x189)])for(let _0x2ed607=0x0,_0x58c91e=_0x53e9d2[_0x4f1ce8(0x56b,0x587)];_0x2ed607<_0x58c91e;_0x2ed607++){const _0xfa48f4=_0x53e9d2[_0x2ed607],_0x5d5001=this[_0x4f1ce8(0x5d9,0x555)](_0xfa48f4,_0xfa48f4[_0x4f1ce8(0x524,0x4f6)],_0xfa48f4['lat'],_0xfa48f4['alt']),_0x591335=this[_0x4f1ce8(0x5d9,0x5d0)](_0xfa48f4,_0xfa48f4['tlng'],_0xfa48f4['tlat'],_0xfa48f4[_0x3f1f99(0x192,0x1bb)]);if(!_0x5d5001||!_0x591335)continue;if(_0x22a830&&Math['abs'](_0x5d5001[0x0]-_0x591335[0x0])>=_0x37c038)continue;this[_0x4f1ce8(0x582,0x533)][_0x3f1f99(0x227,0x1b4)](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this['_colorRamp']['getColor'](_0xfa48f4['speed']),this[_0x3f1f99(0x1d9,0x1f0)]['moveTo'](_0x5d5001[0x0],_0x5d5001[0x1]),this['canvasContext']['lineTo'](_0x591335[0x0],_0x591335[0x1]),this[_0x3f1f99(0x1d9,0x186)][_0x4f1ce8(0x57f,0x57e)]();}else{this['canvasContext']['beginPath'](),this['canvasContext'][_0x3f1f99(0x243,0x23e)]=this[_0x3f1f99(0x243,0x20a)],this['canvasContext']['strokeStyle']=this['color'];for(let _0x45cc14=0x0,_0xea6a12=_0x53e9d2['length'];_0x45cc14<_0xea6a12;_0x45cc14++){const _0x21f334=_0x53e9d2[_0x45cc14],_0x140263=this[_0x3f1f99(0x230,0x1cf)](_0x21f334,_0x21f334['lng'],_0x21f334[_0x3f1f99(0x1ee,0x218)],_0x21f334['alt']),_0x8a2447=this[_0x3f1f99(0x230,0x25b)](_0x21f334,_0x21f334['tlng'],_0x21f334[_0x4f1ce8(0x5b9,0x5d0)],_0x21f334['talt']);if(!_0x140263||!_0x8a2447)continue;if(_0x22a830&&Math['abs'](_0x140263[0x0]-_0x8a2447[0x0])>=_0x37c038)continue;this['canvasContext'][_0x3f1f99(0x136,0x1a6)](_0x140263[0x0],_0x140263[0x1]),this['canvasContext']['lineTo'](_0x8a2447[0x0],_0x8a2447[0x1]);}this['canvasContext']['stroke']();}}[_0x46d1d0(0x67f,0x664)](_0x50225b,_0x10bac9,_0x496986,_0x3640a2){const _0x11f417=Cesium[_0xdafd10(0x2d1,0x31d)]['fromDegrees'](_0x10bac9,_0x496986,_0x3640a2??this['fixedHeight']),_0x47e3a7=this[_0x4b13c7(0x11e,0xe7)]['scene'];if(_0x47e3a7[_0xdafd10(0x301,0x291)]===Cesium['SceneMode'][_0xdafd10(0x27d,0x210)]){const _0xd61e20=new Cesium[(_0xdafd10(0x27f,0x278))](_0x47e3a7[_0x4b13c7(0x148,0xee)][_0x4b13c7(0xf7,0xa2)],_0x47e3a7['camera'][_0xdafd10(0x2ab,0x282)]),_0x3c9210=_0xd61e20[_0xdafd10(0x2a1,0x2e2)](_0x11f417);if(!_0x3c9210)return _0x50225b['age']=0x0,null;}const _0x4f4a4c=mars3d__namespace['PointTrans'][_0xdafd10(0x32a,0x332)](this[_0xdafd10(0x2be,0x2f2)]['scene'],_0x11f417);function _0xdafd10(_0x311fc2,_0x5ac555){return _0x4ee3(_0x311fc2- -0x1da,_0x5ac555);}function _0x4b13c7(_0x2a9deb,_0x3db0dd){return _0x46d1d0(_0x2a9deb- -0x4df,_0x3db0dd);}return _0x4f4a4c?[_0x4f4a4c['x'],_0x4f4a4c['y']]:null;}[_0x4ee3(0x4d2,0x4b8)](){function _0xddbe80(_0x21bde0,_0x3812df){return _0x46d1d0(_0x21bde0- -0x5f3,_0x3812df);}function _0x5d2d11(_0x15430b,_0x36bf6f){return _0x46d1d0(_0x36bf6f- -0x14,_0x15430b);}this[_0x5d2d11(0x61e,0x60c)]['clear'](),delete this[_0xddbe80(0x2,-0x16)];}['initWorker'](){this['worker']=new Worker(this['options']['worker']),this['worker']['onmessage']=_0x2c1ea7=>{function _0x5e3819(_0x4cf198,_0x4e1d7d){return _0x3f35(_0x4cf198- -0x256,_0x4e1d7d);}this['_drawLines'](_0x2c1ea7['data'][_0x5e3819(0x7a,0x4d)]),this['_updateIng2']=![];},this[_0x383028(0x53b,0x52a)]={'init':_0x2c53b4=>{const _0x15950d={};function _0x3e54f0(_0x530a6c,_0x2dd084){return _0x383028(_0x530a6c-0xba,_0x2dd084);}function _0x46734c(_0x1d6b3c,_0x419ccb){return _0x383028(_0x419ccb- -0x670,_0x1d6b3c);}_0x15950d[_0x3e54f0(0x62d,0x620)]='init',_0x15950d[_0x3e54f0(0x5e4,0x5a6)]=_0x2c53b4,this['worker']['postMessage'](_0x15950d);},'setOptions':_0x2db245=>{const _0xc7e1b8={};function _0x23176f(_0x819597,_0x231f20){return _0x383028(_0x231f20-0x82,_0x819597);}_0xc7e1b8['type']=_0x23176f(0x584,0x5d0),_0xc7e1b8['options']=_0x2db245,this['worker']['postMessage'](_0xc7e1b8);},'setDate':_0x418e29=>{function _0x568a7b(_0x2c248f,_0x68580f){return _0x383028(_0x68580f- -0x2f5,_0x2c248f);}const _0x5cfc7c={};_0x5cfc7c[_0x568a7b(0x1f8,0x27e)]='setDate',_0x5cfc7c['data']=_0x418e29,this['worker']['postMessage'](_0x5cfc7c);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x23c5cb={};_0x23c5cb[_0x52ab86(0x6dc,0x67d)]='update';function _0x27d31e(_0x3eb72d,_0x1deb36){return _0x383028(_0x3eb72d- -0x1c7,_0x1deb36);}function _0x52ab86(_0xf01462,_0x5eec95){return _0x383028(_0x5eec95-0x10a,_0xf01462);}this[_0x27d31e(0x2e8,0x2a2)]['postMessage'](_0x23c5cb);},'clear':()=>{const _0x55964d={};_0x55964d[_0x26f53c(0xd3,0xae)]='clear';function _0x26f53c(_0x382ecd,_0x4532fc){return _0x383028(_0x382ecd- -0x4a0,_0x4532fc);}this['worker']['postMessage'](_0x55964d);}};function _0x383028(_0x50a801,_0x3f1127){return _0x4ee3(_0x50a801-0x80,_0x3f1127);}this['windField']['init'](this['options']);}}mars3d__namespace['LayerUtil'][_0x46d1d0(0x5dd,0x5f2)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer'][_0x46d1d0(0x5c3,0x612)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log']['logInfo']('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x4ee3(0x45e,0x4a9)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x46d1d0(0x58a,0x5fd)]=WindUtil;const _0x19734f={};_0x19734f['value']=!![],Object['defineProperty'](exports,_0x46d1d0(0x60d,0x5f9),_0x19734f);
|
|
14
|
+
'use strict';(function(_0x1e473c,_0x476cbd){function _0x25e12e(_0x2c9f27,_0x2b2bed){return _0xa5c5(_0x2c9f27-0x358,_0x2b2bed);}const _0x1946bd=_0x1e473c();function _0x20df93(_0x380cb1,_0x3366a8){return _0xa5c5(_0x380cb1-0x21,_0x3366a8);}while(!![]){try{const _0x40a7e5=parseInt(_0x20df93(0x277,0x2b7))/0x1+parseInt(_0x25e12e(0x51f,0x4d6))/0x2+-parseInt(_0x25e12e(0x4c8,0x4f1))/0x3+parseInt(_0x25e12e(0x4d2,0x44d))/0x4+-parseInt(_0x25e12e(0x4f0,0x45f))/0x5*(-parseInt(_0x20df93(0x185,0x13e))/0x6)+parseInt(_0x25e12e(0x5a2,0x590))/0x7+-parseInt(_0x25e12e(0x5c3,0x579))/0x8;if(_0x40a7e5===_0x476cbd)break;else _0x1946bd['push'](_0x1946bd['shift']());}catch(_0x2390f5){_0x1946bd['push'](_0x1946bd['shift']());}}}(_0x763a,0xb5a28));function _interopNamespace(_0x1f4638){if(_0x1f4638&&_0x1f4638['__esModule'])return _0x1f4638;var _0x17d1fa=Object[_0x31d5f1(0x64,-0x8)](null);function _0x3c5fc2(_0x37fdd8,_0x780593){return _0xa5c5(_0x780593-0x166,_0x37fdd8);}_0x1f4638&&Object['keys'](_0x1f4638)[_0x31d5f1(0xc,0x45)](function(_0x472bbe){function _0x483fc1(_0x1a80c7,_0x5452c1){return _0x31d5f1(_0x5452c1-0x3c8,_0x1a80c7);}function _0xe6806f(_0x4345ae,_0x2918ea){return _0x31d5f1(_0x2918ea-0x9f,_0x4345ae);}if(_0x472bbe!=='default'){var _0x3043e2=Object[_0xe6806f(0x29,0x83)](_0x1f4638,_0x472bbe);Object[_0x483fc1(0x445,0x3c9)](_0x17d1fa,_0x472bbe,_0x3043e2['get']?_0x3043e2:{'enumerable':!![],'get':function(){return _0x1f4638[_0x472bbe];}});}});_0x17d1fa['default']=_0x1f4638;function _0x31d5f1(_0x15ad30,_0x565a3c){return _0xa5c5(_0x15ad30- -0x1dd,_0x565a3c);}return _0x17d1fa;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x54962a,_0x5e9202){function _0x4962af(_0x210507,_0x54e9bd){return _0xa5c5(_0x54e9bd- -0x333,_0x210507);}const _0x185ad0=_0x54962a*Math['cos'](Cesium$2[_0x46b18c(-0x3b,-0x35)][_0x46b18c(-0xd0,-0xb4)](_0x5e9202));function _0x46b18c(_0x47e60d,_0x1d7590){return _0xa5c5(_0x1d7590- -0x272,_0x47e60d);}return _0x185ad0;}function getV(_0xb4edad,_0x3a2190){const _0x5a3b04=_0xb4edad*Math['sin'](Cesium$2['Math']['toRadians'](_0x3a2190));return _0x5a3b04;}function getSpeed(_0x3e34a3,_0x37a8c6){const _0x1756fb=Math['sqrt'](Math[_0x13224d(0x465,0x40f)](_0x3e34a3,0x2)+Math[_0x13224d(0x465,0x47b)](_0x37a8c6,0x2));function _0x241af8(_0x5155e4,_0x3cba41){return _0xa5c5(_0x3cba41- -0x153,_0x5155e4);}function _0x13224d(_0x25cd4d,_0x4cc33f){return _0xa5c5(_0x25cd4d-0x26c,_0x4cc33f);}return _0x1756fb;}function getDirection(_0x3e58a8,_0x54f0a0){let _0x17874d=Cesium$2['Math']['toDegrees'](Math['atan2'](_0x54f0a0,_0x3e58a8));return _0x17874d+=_0x17874d<0x0?0x168:0x0,_0x17874d;}const _0x32ec21={};_0x32ec21[_0x69b9bf(0x622,0x61b)]=null,_0x32ec21['getU']=getU,_0x32ec21['getV']=getV,_0x32ec21[_0x16b89f(-0x188,-0x183)]=getSpeed,_0x32ec21[_0x16b89f(-0x209,-0x1c5)]=getDirection;var WindUtil=_0x32ec21;const version=_0x69b9bf(0x5fa,0x5f6),buildTime=_0x69b9bf(0x5ca,0x566);var updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader=_0x69b9bf(0x55a,0x539),postProcessingPositionFragmentShader=_0x16b89f(-0x1a2,-0x152),renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader=_0x16b89f(-0x1cf,-0x165);const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x69b9bf(0x608,0x5d1)];class ShaderManager{static['getCalculateSpeedShader'](){function _0xb1265b(_0x57e1c4,_0x2702be){return _0x69b9bf(_0x2702be,_0x57e1c4- -0x3d7);}const _0x3a6787={};return _0x3a6787[_0xb1265b(0x272,0x257)]=[calculateSpeedShader],new ShaderSource$1(_0x3a6787);}static['getUpdatePositionShader'](){function _0x390998(_0x1606c8,_0x45b5f7){return _0x16b89f(_0x45b5f7,_0x1606c8-0x2ae);}const _0x5e0e01={};return _0x5e0e01[_0x390998(0x1f3,0x278)]=[updatePositionShader],new ShaderSource$1(_0x5e0e01);}static['getSegmentDrawVertexShader'](){const _0x2bfe94={};return _0x2bfe94['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x2bfe94);}static['getSegmentDrawFragmentShader'](){const _0x20d908={};return _0x20d908['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x20d908);}static['getPostProcessingPositionShader'](){const _0x48fb97={};return _0x48fb97['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x48fb97);}}function _0x69b9bf(_0x58cb52,_0x1d68e9){return _0xa5c5(_0x1d68e9-0x3dd,_0x58cb52);}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(_0x84400d){this['commandType']=_0x84400d['commandType'],this[_0x168b52(0x3d8,0x457)]=_0x84400d['geometry'],this['attributeLocations']=_0x84400d['attributeLocations'],this['primitiveType']=_0x84400d[_0x168b52(0x494,0x4b7)];function _0x168b52(_0x55e1c6,_0x3846e5){return _0x16b89f(_0x3846e5,_0x55e1c6-0x558);}this['uniformMap']=_0x84400d[_0x117ab3(-0xc7,-0xcd)]||{},this[_0x168b52(0x3c5,0x419)]=_0x84400d['vertexShaderSource'],this['fragmentShaderSource']=_0x84400d[_0x168b52(0x433,0x487)],this['rawRenderState']=_0x84400d['rawRenderState'],this['framebuffer']=_0x84400d['framebuffer'],this['outputTexture']=_0x84400d['outputTexture'],this['autoClear']=_0x84400d['autoClear']??![],this['preExecute']=_0x84400d[_0x168b52(0x3bf,0x382)],this['show']=!![],this['commandToExecute']=undefined,this[_0x117ab3(-0xd6,-0xb9)]=undefined;function _0x117ab3(_0x5bc2bb,_0x185e55){return _0x69b9bf(_0x185e55,_0x5bc2bb- -0x65f);}this[_0x117ab3(-0x6c,0x7)]=_0x84400d[_0x117ab3(-0x6c,-0x26)]??(()=>!![]),this['autoClear']&&(this[_0x117ab3(-0xd6,-0xb6)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x168b52(0x3c7,0x38e)],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x190290){function _0x2f3ccd(_0x107913,_0x5e6a9e){return _0x69b9bf(_0x107913,_0x5e6a9e- -0x296);}function _0x462a47(_0x2ce617,_0x1f77c9){return _0x69b9bf(_0x2ce617,_0x1f77c9- -0x53d);}if(this[_0x462a47(0xf,0x33)]===_0x2f3ccd(0x3f5,0x396)){const _0x3fcaea={};_0x3fcaea[_0x2f3ccd(0x283,0x30f)]=_0x190290,_0x3fcaea['geometry']=this[_0x2f3ccd(0x2bd,0x2ee)],_0x3fcaea[_0x462a47(0xe8,0x70)]=this[_0x462a47(0x2e,0x70)],_0x3fcaea[_0x462a47(0x63,0xd4)]=BufferUsage$1['STATIC_DRAW'];const _0x33bae9=VertexArray$1['fromGeometry'](_0x3fcaea),_0x58e5d7={};_0x58e5d7[_0x462a47(0x89,0x68)]=_0x190290,_0x58e5d7['vertexShaderSource']=this['vertexShaderSource'],_0x58e5d7['fragmentShaderSource']=this['fragmentShaderSource'],_0x58e5d7['attributeLocations']=this['attributeLocations'];const _0x3308f=ShaderProgram[_0x462a47(-0x31,0x48)](_0x58e5d7),_0x5a21fb=RenderState[_0x2f3ccd(0x372,0x2ef)](this['rawRenderState']),_0x364834={};return _0x364834[_0x462a47(0xdd,0xfa)]=this,_0x364834['vertexArray']=_0x33bae9,_0x364834[_0x462a47(0x105,0x103)]=this[_0x2f3ccd(0x377,0x3aa)],_0x364834['modelMatrix']=Matrix4['IDENTITY'],_0x364834['renderState']=_0x5a21fb,_0x364834[_0x2f3ccd(0x3bf,0x35e)]=_0x3308f,_0x364834['framebuffer']=this['framebuffer'],_0x364834['uniformMap']=this[_0x462a47(-0x1c,0x5b)],_0x364834[_0x2f3ccd(0x363,0x399)]=Pass$1['OPAQUE'],new DrawCommand(_0x364834);}else{if(this['commandType']==='Compute'){const _0x4f84db={};return _0x4f84db[_0x2f3ccd(0x325,0x3a1)]=this,_0x4f84db['fragmentShaderSource']=this['fragmentShaderSource'],_0x4f84db['uniformMap']=this['uniformMap'],_0x4f84db[_0x462a47(0x34,-0xd)]=this['outputTexture'],_0x4f84db['persists']=!![],new ComputeCommand(_0x4f84db);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x355617,_0xe4403b){this['geometry']=_0xe4403b;function _0x11e156(_0x748069,_0x17ea38){return _0x69b9bf(_0x17ea38,_0x748069- -0x39f);}function _0x3b4a8f(_0x2f92f3,_0x498517){return _0x16b89f(_0x498517,_0x2f92f3-0x36);}defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1[_0x11e156(0x26b,0x21f)]({'context':_0x355617,'geometry':this['geometry'],'attributeLocations':this[_0x11e156(0x20e,0x228)],'bufferUsage':BufferUsage$1[_0x11e156(0x1d0,0x16f)]}));}['update'](_0x40a2bd){if(!this[_0x36e978(0x1d0,0x1bb)]())return;if(!this['show']||!defined(_0x40a2bd))return;!defined(this['commandToExecute'])&&(this[_0x459f30(0x62,0xe2)]=this['createCommand'](_0x40a2bd['context']));function _0x459f30(_0x3eac98,_0x3445f3){return _0x69b9bf(_0x3445f3,_0x3eac98- -0x565);}defined(this['preExecute'])&&this[_0x36e978(0x1b3,0x133)]();function _0x36e978(_0x350cf6,_0xb77ac7){return _0x16b89f(_0x350cf6,_0xb77ac7-0x2cc);}if(!_0x40a2bd[_0x36e978(0x1b9,0x19d)]){console[_0x36e978(0xdc,0xf0)]('frameState.commandList\x20is\x20undefined');return;}defined(this[_0x36e978(0xf9,0x151)])&&_0x40a2bd[_0x36e978(0x14e,0x19d)]['push'](this[_0x459f30(0x24,0xae)]),defined(this['commandToExecute'])&&_0x40a2bd['commandList']['push'](this['commandToExecute']);}['isDestroyed'](){return![];}[_0x69b9bf(0x52b,0x57c)](){function _0x31f96b(_0x30872d,_0x4ba04c){return _0x69b9bf(_0x4ba04c,_0x30872d- -0xcf);}function _0x2d51a8(_0x233e33,_0x39b80a){return _0x69b9bf(_0x39b80a,_0x233e33- -0x1be);}if(defined(this['commandToExecute'])){var _0x437f6f;(_0x437f6f=this['commandToExecute']['shaderProgram'])===null||_0x437f6f===void 0x0||_0x437f6f[_0x31f96b(0x4ad,0x453)](),this[_0x31f96b(0x4f8,0x4b5)]['shaderProgram']=undefined;}return destroyObject(this);}}function deepMerge(_0x2585d4,_0x5b3627){function _0x4882c1(_0x326ef5,_0x4f6ead){return _0x16b89f(_0x326ef5,_0x4f6ead-0x89);}if(!_0x2585d4)return _0x5b3627;if(!_0x5b3627)return _0x2585d4;function _0x52d8d3(_0x5afead,_0x4a28fa){return _0x16b89f(_0x5afead,_0x4a28fa-0xf0);}const _0xbb4a7b={..._0x5b3627},_0x4fd9f9=_0xbb4a7b;for(const _0x218af7 in _0x2585d4){if(Object[_0x4882c1(-0x3f,-0x72)]['hasOwnProperty'][_0x4882c1(-0x18,-0x95)](_0x2585d4,_0x218af7)){const _0x5acd2b=_0x2585d4[_0x218af7],_0x201f1b=_0x5b3627[_0x218af7];if(Array[_0x4882c1(-0x15e,-0xf1)](_0x5acd2b)){_0x4fd9f9[_0x218af7]=_0x5acd2b[_0x4882c1(-0x94,-0x81)]();continue;}if(_0x5acd2b&&typeof _0x5acd2b===_0x4882c1(-0xa8,-0x104)){_0x4fd9f9[_0x218af7]=deepMerge(_0x5acd2b,_0x201f1b||{});continue;}_0x5acd2b!==undefined&&(_0x4fd9f9[_0x218af7]=_0x5acd2b);}}return _0x4fd9f9;}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(_0x19bb3e,_0x260915,_0x15ecf8,_0x230710,_0x262879){this[_0x152e53(0xa1,0x7c)]=_0x19bb3e;function _0x23eefb(_0x21aa35,_0x53e9ff){return _0x16b89f(_0x53e9ff,_0x21aa35-0x23a);}this['options']=_0x15ecf8,this[_0x23eefb(0x6c,0xd2)]=_0x230710;function _0x152e53(_0x2811aa,_0x197df4){return _0x16b89f(_0x2811aa,_0x197df4-0x1db);}this[_0x152e53(0x14e,0xe2)]=_0x260915,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x62889c={};_0x62889c['scene']=_0x262879,_0x62889c[_0x152e53(0x4e,0x1e)]=0x1,_0x62889c[_0x152e53(-0x15,-0x4)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x62889c),this[_0x23eefb(0x123,0x13d)](),this[_0x152e53(0x67,0x7f)](),this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x1a11e6=()=>{function _0x3c28c5(_0x1ca2b6,_0x59e340){return _0xa5c5(_0x1ca2b6-0x16,_0x59e340);}function _0x4a47df(_0x48db2b,_0x5df2c9){return _0xa5c5(_0x48db2b-0x258,_0x5df2c9);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this[_0x4a47df(0x3db,0x403)]['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math[_0x3c28c5(0x21a,0x1cb)](this['frameRate'],0x1));};function _0x3aa4cf(_0x4abf5e,_0x1d25d2){return _0x69b9bf(_0x1d25d2,_0x4abf5e- -0x51b);}function _0x974dc8(_0x50bf19,_0x15da5b){return _0x69b9bf(_0x15da5b,_0x50bf19- -0x758);}_0x1a11e6();const _0x4be60f=setInterval(_0x1a11e6,0x3e8),_0x46acc7=this[_0x3aa4cf(0x61,0x19)][_0x974dc8(-0x20e,-0x1cc)](this);this['destroy']=()=>{clearInterval(_0x4be60f),_0x46acc7();};}[_0x69b9bf(0x536,0x5a8)](){function _0x177904(_0x1b8161,_0x55d2f1){return _0x69b9bf(_0x55d2f1,_0x1b8161- -0x5e1);}const _0x272b21={};_0x272b21['minificationFilter']=TextureMinificationFilter$1['LINEAR'],_0x272b21[_0x3992e0(0x436,0x41a)]=TextureMagnificationFilter$1['LINEAR'];const _0x3ddc01={'context':this[_0x3992e0(0x465,0x494)],'width':this[_0x3992e0(0x4a8,0x4fa)]['width'],'height':this[_0x3992e0(0x526,0x4fa)][_0x177904(-0x4a,0x13)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x272b21)};function _0x3992e0(_0x35e155,_0x396c8f){return _0x69b9bf(_0x35e155,_0x396c8f- -0x111);}this[_0x177904(-0x3a,0x34)]={'U':new Texture$1({..._0x3ddc01,'source':{'arrayBufferView':new Float32Array(this['windData']['u'][_0x177904(-0xb7,-0x7b)])}}),'V':new Texture$1({..._0x3ddc01,'source':{'arrayBufferView':new Float32Array(this['windData']['v'][_0x3992e0(0x3be,0x419)])}})};}[_0x16b89f(-0x9e,-0xca)](){const _0x2aaeb6={};_0x2aaeb6[_0x1a9f8e(0x3d2,0x38c)]=TextureMinificationFilter$1['NEAREST'],_0x2aaeb6['magnificationFilter']=TextureMagnificationFilter$1[_0x110772(-0x105,-0x12a)];function _0x1a9f8e(_0x27433f,_0x15bb14){return _0x16b89f(_0x15bb14,_0x27433f-0x4a4);}const _0x16c7e6={'context':this['context'],'width':this['options'][_0x110772(-0x17b,-0x153)],'height':this[_0x110772(-0x1c4,-0x169)][_0x1a9f8e(0x34c,0x3c8)],'pixelFormat':PixelFormat$1[_0x1a9f8e(0x398,0x40e)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options']['particlesTextureSize']*0x4)[_0x110772(-0x198,-0x153)](0x0)},'sampler':new Sampler$1(_0x2aaeb6)};function _0x110772(_0x743572,_0x48a375){return _0x69b9bf(_0x48a375,_0x743572- -0x727);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x16c7e6),'currentParticlesPosition':new Texture$1(_0x16c7e6),'nextParticlesPosition':new Texture$1(_0x16c7e6),'postProcessingPosition':new Texture$1(_0x16c7e6),'particlesSpeed':new Texture$1(_0x16c7e6)};}['destroyParticlesTextures'](){function _0x508128(_0x2a3935,_0x2c9557){return _0x69b9bf(_0x2a3935,_0x2c9557- -0x3ff);}Object['values'](this['particlesTextures'])[_0x508128(0x221,0x1c7)](_0x4a2a7b=>_0x4a2a7b['destroy']());}[_0x69b9bf(0x5b4,0x5f9)](){function _0x3b0043(_0xd5d03f,_0x19480c){return _0x16b89f(_0xd5d03f,_0x19480c-0x211);}function _0xe35a44(_0x44b02e,_0x357542){return _0x16b89f(_0x357542,_0x44b02e-0x460);}this[_0xe35a44(0x347,0x3a1)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0xe35a44(0x303,0x2dc)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0xe35a44(0x367,0x2f2)]['u'][_0x3b0043(0xf0,0xe9)],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this['windData']['speed'][_0xe35a44(0x33d,0x3a1)]),'currentParticlesPosition':()=>this['particlesTextures'][_0x3b0043(0x51,0x4b)],'speedScaleFactor':()=>{function _0x22cd9a(_0x208be7,_0x1deaf1){return _0x3b0043(_0x1deaf1,_0x208be7- -0x13c);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0x22cd9a(-0xcc,-0x102)]['speedFactor'];},'frameRateAdjustment':()=>this[_0x3b0043(0x1d3,0x153)],'dimension':()=>new Cartesian2$1(this[_0xe35a44(0x367,0x316)][_0x3b0043(0xb8,0xcb)],this['windData'][_0xe35a44(0x2f3,0x2e9)]),'minimum':()=>new Cartesian2$1(this['windData'][_0xe35a44(0x2e9,0x2db)][_0x3b0043(0x64,0xd0)],this[_0x3b0043(0xef,0x118)][_0x3b0043(0x33,0x9a)][_0xe35a44(0x390,0x347)]),'maximum':()=>new Cartesian2$1(this['windData']['bounds']['east'],this['windData'][_0x3b0043(0x4c,0x9a)][_0x3b0043(0xe0,0x150)])},'fragmentShaderSource':ShaderManager[_0x3b0043(0xdd,0x60)](),'outputTexture':this[_0x3b0043(0xdf,0xa0)]['particlesSpeed'],'preExecute':()=>{function _0x255fa2(_0x313309,_0x236d8d){return _0x3b0043(_0x236d8d,_0x313309- -0x24d);}const _0x41739c=this['particlesTextures']['previousParticlesPosition'];this[_0x255fa2(-0x1ad,-0x16b)]['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'],this[_0x4eb6ac(0x400,0x429)]['currentParticlesPosition']=this[_0x255fa2(-0x1ad,-0x205)]['postProcessingPosition'],this['particlesTextures']['postProcessingPosition']=_0x41739c;function _0x4eb6ac(_0x13fa3d,_0x2bb480){return _0xe35a44(_0x13fa3d-0x111,_0x2bb480);}this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives'][_0x255fa2(-0x107,-0x9c)][_0x4eb6ac(0x434,0x4bd)]['outputTexture']=this[_0x4eb6ac(0x400,0x483)]['particlesSpeed']);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0xe35a44(0x2ef,0x2c2)][_0x3b0043(0x10,0x4b)],'particlesSpeed':()=>this[_0xe35a44(0x2ef,0x298)]['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x3cecc7(_0x5e0b5a,_0x16221e){return _0x3b0043(_0x16221e,_0x5e0b5a- -0x1a9);}function _0x258af2(_0x430571,_0x51420f){return _0xe35a44(_0x51420f-0x67,_0x430571);}this[_0x3cecc7(-0xb1,-0x136)]['updatePosition']['commandToExecute']&&(this[_0x258af2(0x378,0x3ae)]['updatePosition']['commandToExecute']['outputTexture']=this[_0x3cecc7(-0x109,-0x9a)]['nextParticlesPosition']);},'isDynamic':()=>this['options'][_0x3b0043(0x66,0xe4)]}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0xe35a44(0x33f,0x3cb)],'lonRange':()=>this[_0xe35a44(0x292,0x26f)]['lonRange'],'latRange':()=>this['viewerParameters'][_0xe35a44(0x37f,0x303)],'dataLonRange':()=>new Cartesian2$1(this['windData']['bounds']['west'],this['windData'][_0x3b0043(0xe3,0x9a)][_0x3b0043(0x39,0x61)]),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x3b0043(0x8c,0x9a)][_0xe35a44(0x390,0x354)],this[_0xe35a44(0x367,0x2fa)][_0xe35a44(0x2e9,0x2da)]['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this[_0xe35a44(0x2bf,0x244)]['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x59a72d(_0x2d37ec,_0x3cff76){return _0xe35a44(_0x2d37ec-0x18c,_0x3cff76);}function _0x3aa8d7(_0x5a9d72,_0x56bdb6){return _0xe35a44(_0x5a9d72-0x285,_0x56bdb6);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this['primitives']['postProcessingPosition'][_0x3aa8d7(0x5a8,0x529)][_0x59a72d(0x418,0x3e0)]=this[_0x3aa8d7(0x574,0x573)]['postProcessingPosition']);},'isDynamic':()=>this[_0x3b0043(0x45,0x70)][_0xe35a44(0x333,0x39a)]})};}['reCreateWindTextures'](){function _0x1875d1(_0x3a15b2,_0xfaa99c){return _0x16b89f(_0xfaa99c,_0x3a15b2-0x3ea);}function _0x45a5d9(_0x232051,_0x115417){return _0x69b9bf(_0x232051,_0x115417- -0x1cd);}this[_0x45a5d9(0x3cf,0x3da)]['U']['destroy'](),this[_0x1875d1(0x28d,0x215)]['V']['destroy'](),this['createWindTextures']();}[_0x16b89f(-0x120,-0xf2)](_0x20f804){this['windData']=_0x20f804;function _0x452b05(_0x52734e,_0x3b65e1){return _0x16b89f(_0x3b65e1,_0x52734e-0x5b9);}this[_0x452b05(0x4eb,0x54a)]();}[_0x69b9bf(0x502,0x583)](_0xc830a3){const _0x14f3f0=_0xc830a3['flipY']!==undefined&&_0xc830a3['flipY']!==this['options'][_0xac6c82(0x3aa,0x3ff)];this[_0x5a2693(0x53d,0x52a)]=deepMerge(_0xc830a3,this[_0x5a2693(0x59b,0x52a)]);function _0xac6c82(_0x2814b7,_0x3ddf66){return _0x16b89f(_0x2814b7,_0x3ddf66-0x536);}function _0x5a2693(_0x2c8ab2,_0x5eba74){return _0x16b89f(_0x2c8ab2,_0x5eba74-0x6cb);}_0x14f3f0&&this['reCreateWindTextures']();}[_0x16b89f(-0x1a0,-0x14f)](_0x69ed7c){function _0x1df937(_0x4172e2,_0x3f9ec8){return _0x69b9bf(_0x4172e2,_0x3f9ec8- -0x38e);}const {array:_0x5c3542}=_0x69ed7c;let {min:_0x52bbe3,max:_0x5ce2a6}=_0x69ed7c;const _0x25f7b9=new Float32Array(_0x5c3542['length']);function _0x4812e1(_0x130d51,_0x3b436b){return _0x16b89f(_0x130d51,_0x3b436b-0x4e);}_0x52bbe3===undefined&&(console[_0x1df937(0x174,0x19a)](_0x1df937(0x24d,0x1d7)),_0x52bbe3=Math['min'](..._0x5c3542));_0x5ce2a6===undefined&&(console['warn'](_0x1df937(0x22e,0x271)),_0x5ce2a6=Math['max'](..._0x5c3542));const _0x595d96=Math['max'](Math[_0x1df937(0x1ed,0x200)](_0x52bbe3),Math['abs'](_0x5ce2a6));for(let _0x2dacb0=0x0;_0x2dacb0<_0x5c3542[_0x1df937(0x224,0x288)];_0x2dacb0++){const _0xe2e407=_0x5c3542[_0x2dacb0]/_0x595d96;_0x25f7b9[_0x2dacb0]=_0xe2e407;}return _0x25f7b9;}['destroy'](){Object[_0x9f250c(0x314,0x357)](this[_0x5f1f93(0x40b,0x42c)])[_0x5f1f93(0x481,0x44b)](_0x56fa98=>_0x56fa98['destroy']());function _0x5f1f93(_0x23d358,_0x398ef3){return _0x69b9bf(_0x23d358,_0x398ef3- -0x17b);}function _0x9f250c(_0x16d5e4,_0x49264d){return _0x16b89f(_0x16d5e4,_0x49264d-0x51f);}Object['values'](this[_0x5f1f93(0x3dc,0x418)])['forEach'](_0x4ae54e=>_0x4ae54e[_0x9f250c(0x3f9,0x397)]()),Object[_0x5f1f93(0x337,0x3c1)](this['primitives'])['forEach'](_0x552230=>_0x552230['destroy']()),this[_0x9f250c(0x3db,0x37b)][_0x5f1f93(0x42e,0x401)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x16b89f(-0xc4,-0x133)];class WindParticlesRendering{constructor(_0x2aade2,_0x3fba7f,_0x55e84b,_0x221089){this[_0xa2a593(0x423,0x48d)]=_0x2aade2,this['options']=_0x3fba7f;function _0xa2a593(_0x292de9,_0x9e53be){return _0x16b89f(_0x292de9,_0x9e53be-0x5ec);}this['viewerParameters']=_0x55e84b,this[_0x5bbc9e(0x17,-0x7d)]=_0x221089;function _0x5bbc9e(_0x3e1194,_0x4f175f){return _0x69b9bf(_0x4f175f,_0x3e1194- -0x571);}(typeof this[_0x5bbc9e(-0xe,0x4b)]['particlesTextureSize']!==_0xa2a593(0x4ae,0x4a4)||this['options'][_0x5bbc9e(0x3b,-0x49)]<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options']['particlesTextureSize']=0x100),this['colorTable']=this['createColorTableTexture'](),this['textures']=this[_0x5bbc9e(-0x15,0x29)](),this[_0xa2a593(0x486,0x417)]=this[_0x5bbc9e(0xac,0x5b)](),this[_0xa2a593(0x4b0,0x4d3)]=this[_0xa2a593(0x589,0x513)]();}['createRenderingTextures'](){const _0x24cc14={};_0x24cc14[_0x2a764d(0x57e,0x612)]=this[_0x2a764d(0x57e,0x5e4)],_0x24cc14['width']=this[_0x57b7a4(-0x17a,-0x1fe)]['drawingBufferWidth'],_0x24cc14['height']=this['context']['drawingBufferHeight'];function _0x2a764d(_0x5846ba,_0x5a492f){return _0x69b9bf(_0x5a492f,_0x5846ba- -0x27);}_0x24cc14[_0x57b7a4(-0xea,-0x8d)]=PixelFormat['RGBA'],_0x24cc14['pixelDatatype']=PixelDatatype[_0x57b7a4(-0x169,-0x1c3)];const _0x4b132c=_0x24cc14,_0x5f0558={};_0x5f0558['context']=this['context'],_0x5f0558['width']=this[_0x57b7a4(-0x17a,-0x204)]['drawingBufferWidth'],_0x5f0558[_0x2a764d(0x570,0x582)]=this['context'][_0x57b7a4(-0x106,-0xcd)],_0x5f0558[_0x57b7a4(-0xea,-0x146)]=PixelFormat[_0x2a764d(0x5f0,0x64f)],_0x5f0558[_0x57b7a4(-0x1f1,-0x1c3)]=PixelDatatype['UNSIGNED_INT'];const _0x4ade5e=_0x5f0558;function _0x57b7a4(_0x4071bd,_0x277138){return _0x69b9bf(_0x277138,_0x4071bd- -0x71f);}return{'segmentsColor':new Texture(_0x4b132c),'segmentsDepth':new Texture(_0x4ade5e)};}['createRenderingFramebuffers'](){function _0x23dd11(_0x5a06d8,_0x341362){return _0x16b89f(_0x341362,_0x5a06d8-0x4ec);}const _0x2e2b4a={};function _0x5187b9(_0x41885c,_0x2485d6){return _0x69b9bf(_0x41885c,_0x2485d6- -0x1bc);}return _0x2e2b4a['context']=this[_0x5187b9(0x460,0x3e9)],_0x2e2b4a[_0x5187b9(0x337,0x3a3)]=[this['textures'][_0x23dd11(0x3c8,0x3d1)]],_0x2e2b4a['depthTexture']=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x2e2b4a)};}['destoryRenderingFramebuffers'](){function _0x5bc303(_0x339f39,_0x26c221){return _0x69b9bf(_0x26c221,_0x339f39- -0x609);}function _0xad261d(_0x88498e,_0x4cad33){return _0x69b9bf(_0x88498e,_0x4cad33- -0x69);}Object[_0x5bc303(-0xcd,-0x10d)](this[_0xad261d(0x45a,0x4c6)])['forEach'](_0x4d5ea7=>{_0x4d5ea7['destroy']();});}['createColorTableTexture'](){const _0x553b04=new Float32Array(this['options'][_0x36a834(0x2d2,0x2b2)][_0x36a834(0x30e,0x334)](_0xa0e1cb=>{function _0x40411d(_0x1cf232,_0x2fe14c){return _0x36a834(_0x1cf232,_0x2fe14c- -0x513);}const _0x391da7=Color$1['fromCssColorString'](_0xa0e1cb);return[_0x391da7['red'],_0x391da7['green'],_0x391da7['blue'],_0x391da7[_0x40411d(-0x16a,-0x1b1)]];}));function _0x459873(_0x13e82c,_0x563987){return _0x16b89f(_0x563987,_0x13e82c-0x349);}function _0x36a834(_0x2192f9,_0x597359){return _0x69b9bf(_0x2192f9,_0x597359- -0x29f);}const _0x2f92e2={};return _0x2f92e2['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x2f92e2['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x2f92e2[_0x459873(0x241,0x29c)]=TextureWrap[_0x459873(0x291,0x2ac)],_0x2f92e2[_0x36a834(0x40f,0x37d)]=TextureWrap[_0x36a834(0x3f3,0x3ad)],new Texture({'context':this['context'],'width':this['options'][_0x36a834(0x2da,0x2b2)][_0x36a834(0x374,0x377)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x2f92e2),'source':{'width':this['options']['colors'][_0x459873(0x25b,0x22b)],'height':0x1,'arrayBufferView':_0x553b04}});}['createSegmentsGeometry'](){const _0x37e227=0x4,_0x3ec4e5=this['options']['particlesTextureSize'];let _0x13d123=[];for(let _0x392cc1=0x0;_0x392cc1<_0x3ec4e5;_0x392cc1++){for(let _0x7c7ff7=0x0;_0x7c7ff7<_0x3ec4e5;_0x7c7ff7++){for(let _0x2373db=0x0;_0x2373db<_0x37e227;_0x2373db++){_0x13d123['push'](_0x392cc1/_0x3ec4e5),_0x13d123[_0xab7f0a(0x311,0x2e1)](_0x7c7ff7/_0x3ec4e5);}}}_0x13d123=new Float32Array(_0x13d123);const _0x4a7fd6=this[_0x261b11(-0xbe,-0xee)]['particlesTextureSize']**0x2;function _0xab7f0a(_0x8cd6df,_0x34f070){return _0x16b89f(_0x34f070,_0x8cd6df-0x415);}let _0x548848=[];for(let _0x341f8f=0x0;_0x341f8f<_0x4a7fd6;_0x341f8f++){_0x548848[_0x261b11(-0x21,-0x35)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x548848=new Float32Array(_0x548848);let _0x6cb965=[];for(let _0x40a428=0x0,_0x25bb09=0x0;_0x40a428<_0x4a7fd6;_0x40a428++){_0x6cb965['push'](_0x25bb09+0x0,_0x25bb09+0x1,_0x25bb09+0x2,_0x25bb09+0x2,_0x25bb09+0x1,_0x25bb09+0x3),_0x25bb09+=_0x37e227;}_0x6cb965=new Uint32Array(_0x6cb965);const _0x45c538={};_0x45c538[_0xab7f0a(0x355,0x34e)]=ComponentDatatype[_0x261b11(-0xe7,-0xa5)],_0x45c538['componentsPerAttribute']=0x2,_0x45c538['values']=_0x13d123;const _0x2715bf={};_0x2715bf['componentDatatype']=ComponentDatatype[_0xab7f0a(0x24b,0x2b4)],_0x2715bf['componentsPerAttribute']=0x3,_0x2715bf[_0x261b11(-0xe5,-0xc0)]=_0x548848;const _0x4f8d4c=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x45c538),'normal':new GeometryAttribute(_0x2715bf)}),'indices':_0x6cb965});function _0x261b11(_0x4317fb,_0xd96e6f){return _0x16b89f(_0xd96e6f,_0x4317fb-0xe3);}return _0x4f8d4c;}['createRawRenderState'](_0x1fd528){function _0x11b3a3(_0x10e0f5,_0x2c3f99){return _0x16b89f(_0x2c3f99,_0x10e0f5-0x660);}const _0x3d91a5={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x1fd528};return Appearance[_0x11b3a3(0x4a4,0x49c)](!![],![],_0x3d91a5);}['createPrimitives'](){function _0x2a4594(_0x37744f,_0x226a9b){return _0x69b9bf(_0x37744f,_0x226a9b- -0x73d);}const _0x59ed47={};_0x59ed47['st']=0x0,_0x59ed47[_0x168ddc(0x498,0x46e)]=0x1;const _0x963f74={};_0x963f74['enabled']=!![];const _0x5dbffe={};_0x5dbffe['enabled']=!![],_0x5dbffe['blendEquation']=WebGLRenderingContext[_0x2a4594(-0x148,-0x136)],_0x5dbffe['blendFuncSource']=WebGLRenderingContext[_0x2a4594(-0x19a,-0x153)],_0x5dbffe[_0x168ddc(0x4d6,0x498)]=WebGLRenderingContext[_0x168ddc(0x4b9,0x4a6)];const _0x39c69b={};_0x39c69b[_0x168ddc(0x452,0x3d5)]=undefined,_0x39c69b['depthTest']=_0x963f74;function _0x168ddc(_0x48ba2d,_0x4682d3){return _0x16b89f(_0x48ba2d,_0x4682d3-0x56c);}_0x39c69b['depthMask']=!![],_0x39c69b[_0x168ddc(0x411,0x3e3)]=_0x5dbffe;const _0x3a2f3e=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x59ed47,'geometry':this[_0x168ddc(0x460,0x465)](),'primitiveType':PrimitiveType[_0x168ddc(0x444,0x3d0)],'uniformMap':{'previousParticlesPosition':()=>this[_0x168ddc(0x408,0x3f0)][_0x2a4594(-0x194,-0x1aa)][_0x2a4594(-0x223,-0x1ab)],'currentParticlesPosition':()=>this['computing'][_0x2a4594(-0x1c7,-0x1aa)]['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x168ddc(0x384,0x3f0)]['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x2a4594(-0x137,-0x15a)],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{var _0x1325f2,_0x313c48;const _0x3ef3f6=new Cartesian2(((_0x1325f2=this['options']['domain'])===null||_0x1325f2===void 0x0?void 0x0:_0x1325f2['min'])??this['computing']['windData'][_0x5cb4e8(0x448,0x42f)]['min'],((_0x313c48=this['options'][_0x5cb4e8(0x3e5,0x430)])===null||_0x313c48===void 0x0?void 0x0:_0x313c48['max'])??this[_0xef0660(-0xd8,-0x154)]['windData']['speed'][_0xef0660(-0x7f,-0xe3)]);function _0x5cb4e8(_0x3f42ef,_0x1d38ef){return _0x2a4594(_0x3f42ef,_0x1d38ef-0x59d);}function _0xef0660(_0x2c6b22,_0x2d94c2){return _0x2a4594(_0x2d94c2,_0x2c6b22-0xdd);}return _0x3ef3f6;},'displayRange':()=>{var _0x3c0334,_0x153330;const _0x3d70a1=new Cartesian2(((_0x3c0334=this['options'][_0xcf1881(0x3c1,0x3b9)])===null||_0x3c0334===void 0x0?void 0x0:_0x3c0334[_0x1b2b40(-0x108,-0xf1)])??this['computing'][_0x1b2b40(-0xd9,-0x59)][_0xcf1881(0x483,0x414)][_0x1b2b40(-0x108,-0xaa)],((_0x153330=this['options'][_0xcf1881(0x33c,0x3b9)])===null||_0x153330===void 0x0?void 0x0:_0x153330[_0x1b2b40(-0x103,-0x8e)])??this['computing'][_0xcf1881(0x46e,0x450)][_0xcf1881(0x381,0x414)]['max']);function _0x1b2b40(_0x4093ba,_0x52a5a3){return _0x168ddc(_0x52a5a3,_0x4093ba- -0x54c);}function _0xcf1881(_0x1a06b8,_0x505228){return _0x2a4594(_0x1a06b8,_0x505228-0x582);}return _0x3d70a1;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this[_0x2a4594(-0x21e,-0x198)][_0x168ddc(0x4c1,0x440)]/this[_0x2a4594(-0x1d9,-0x198)][_0x2a4594(-0x100,-0x124)],'pixelSize':()=>this[_0x168ddc(0x315,0x39e)][_0x2a4594(-0x1e7,-0x172)],'lineWidth':()=>{const _0x5304f0={};function _0x2ca8f4(_0x32fb4d,_0x17fd63){return _0x2a4594(_0x32fb4d,_0x17fd63- -0x15);}_0x5304f0['min']=0x1,_0x5304f0[_0x853b9d(0x21e,0x238)]=0x2;function _0x853b9d(_0x205d1f,_0x3a27a5){return _0x168ddc(_0x3a27a5,_0x205d1f- -0x22b);}const _0x3d15b8=this[_0x853b9d(0x1a0,0x1da)]['lineWidth']||_0x5304f0;return new Cartesian2(_0x3d15b8[_0x2ca8f4(-0x191,-0x176)],_0x3d15b8['max']);},'lineLength':()=>{const _0x47f4f8={};_0x47f4f8['min']=0x14,_0x47f4f8[_0x338730(0x38a,0x390)]=0x64;const _0x490a8c=this['options']['lineLength']||_0x47f4f8;function _0x338730(_0x333352,_0x244509){return _0x168ddc(_0x244509,_0x333352- -0xbf);}function _0x6fc0e8(_0x24a24b,_0x3ee9ba){return _0x168ddc(_0x24a24b,_0x3ee9ba- -0x48d);}return new Cartesian2(_0x490a8c[_0x6fc0e8(-0x7,-0x49)],_0x490a8c['max']);},'is3D':()=>this[_0x2a4594(-0x1e8,-0x207)]['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures'][_0x168ddc(0x3e5,0x3e1)]},'vertexShaderSource':ShaderManager[_0x168ddc(0x398,0x3c9)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x39c69b)}),_0x3f33e0={};return _0x3f33e0['segments']=_0x3a2f3e,_0x3f33e0;}['onParticlesTextureSizeChange'](){const _0x4ca526=this['createSegmentsGeometry']();function _0x8e3148(_0xf2c920,_0x4c3360){return _0x69b9bf(_0x4c3360,_0xf2c920- -0x397);}this[_0xc260f6(0x511,0x56f)][_0x8e3148(0x1d0,0x18f)]['geometry']=_0x4ca526;const _0x205ebe={};function _0xc260f6(_0x17dc02,_0x58c282){return _0x69b9bf(_0x58c282,_0x17dc02- -0xda);}_0x205ebe['context']=this[_0xc260f6(0x4cb,0x453)],_0x205ebe[_0x8e3148(0x1ed,0x1ec)]=_0x4ca526,_0x205ebe[_0x8e3148(0x216,0x1df)]=this['primitives'][_0xc260f6(0x48d,0x4a0)]['attributeLocations'],_0x205ebe[_0x8e3148(0x27a,0x29b)]=BufferUsage[_0xc260f6(0x495,0x517)];const _0x7815e5=VertexArray['fromGeometry'](_0x205ebe);this[_0xc260f6(0x511,0x53d)]['segments']['commandToExecute']&&(this[_0xc260f6(0x511,0x57c)]['segments']['commandToExecute']['vertexArray']=_0x7815e5);}['onColorTableChange'](){this['colorTable']['destroy'](),this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x2c3cf8){const _0x2e00b9=_0x2c3cf8[_0xa10323(0xe0,0x9b)]&&JSON['stringify'](_0x2c3cf8[_0xce749e(-0x2cb,-0x243)])!==JSON[_0xce749e(-0x287,-0x1f3)](this['options'][_0xce749e(-0x1fe,-0x243)]);function _0xce749e(_0x2af0d8,_0x3dc1ed){return _0x16b89f(_0x2af0d8,_0x3dc1ed- -0x90);}function _0xa10323(_0x30aaae,_0x4de021){return _0x16b89f(_0x30aaae,_0x4de021-0x24e);}this['options']=deepMerge(_0x2c3cf8,this['options']),_0x2e00b9&&this[_0xce749e(-0x265,-0x26d)]();}['destroy'](){Object['values'](this['framebuffers'])['forEach'](_0x344b6c=>{function _0x59facb(_0x26dd14,_0x32f1e7){return _0xa5c5(_0x32f1e7-0x26,_0x26dd14);}_0x344b6c[_0x59facb(0x1cd,0x1c5)]();});function _0x2d18b2(_0x35b1cb,_0x354d39){return _0x16b89f(_0x35b1cb,_0x354d39-0x1bc);}Object['values'](this[_0x2d18b2(0x29,0xa3)])['forEach'](_0x30c68b=>{function _0x15ff89(_0x22b9f4,_0x1bd122){return _0x2d18b2(_0x1bd122,_0x22b9f4-0x4f5);}_0x30c68b[_0x15ff89(0x529,0x4af)]();});function _0x46579b(_0x503a19,_0x5e7f01){return _0x16b89f(_0x503a19,_0x5e7f01- -0x17);}this[_0x46579b(-0x15a,-0x15a)][_0x2d18b2(0xb,0x34)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x16b89f(-0xe7,-0x133)];class WindParticleSystem{constructor(_0x549518,_0x57c2e2,_0x3a7c77,_0x5553fa,_0x5d087a){function _0x27be8a(_0x20e581,_0x28d888){return _0x16b89f(_0x20e581,_0x28d888-0x316);}this['context']=_0x549518,this['options']=_0x3a7c77,this[_0x27be8a(0xce,0x148)]=_0x5553fa,this[_0x27be8a(0x124,0x19a)]=new WindParticlesComputing(_0x549518,_0x57c2e2,_0x3a7c77,_0x5553fa,_0x5d087a);function _0x1c8ab3(_0x3f8dfa,_0x5e9aef){return _0x69b9bf(_0x3f8dfa,_0x5e9aef- -0x33f);}this['rendering']=new WindParticlesRendering(_0x549518,_0x3a7c77,_0x5553fa,this['computing']),this['clearFramebuffers']();}['getPrimitives'](){function _0x195d6a(_0x264a85,_0x391c89){return _0x16b89f(_0x391c89,_0x264a85-0x1d1);}const _0x3c42e5=[this['computing'][_0x33e7b5(0xc8,0x140)]['calculateSpeed'],this['computing']['primitives'][_0x195d6a(0xa1,0xe5)],this['computing'][_0x195d6a(0xb8,0x148)]['postProcessingPosition'],this['rendering']['primitives']['segments']];function _0x33e7b5(_0x15700d,_0x729bdb){return _0x16b89f(_0x15700d,_0x729bdb-0x259);}return _0x3c42e5;}['clearFramebuffers'](){const _0x506f9f=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});Object['keys'](this['rendering']['framebuffers'])['forEach'](_0x151103=>{_0x506f9f[_0x1bc52c(-0x181,-0x1ae)]=this['rendering']['framebuffers'][_0x151103];function _0x1bc52c(_0xfda846,_0x260651){return _0xa5c5(_0x260651- -0x344,_0xfda846);}_0x506f9f['execute'](this['context']);});}['changeOptions'](_0x1be6ad){function _0x522337(_0x35c65e,_0x2e92d0){return _0x69b9bf(_0x2e92d0,_0x35c65e- -0x154);}let _0x2ab657=![];function _0x344983(_0x17dc95,_0x4eb8fd){return _0x16b89f(_0x4eb8fd,_0x17dc95-0x172);}_0x1be6ad[_0x522337(0x458,0x450)]&&this['options']['particlesTextureSize']!==_0x1be6ad[_0x344983(0x1a,-0x19)]&&(_0x2ab657=!![]);const _0x5307f2=deepMerge(_0x1be6ad,this[_0x522337(0x40f,0x487)]);if(_0x5307f2[_0x522337(0x458,0x4e7)]<0x1)throw new Error(_0x344983(0x92,0xfe));this[_0x344983(-0x2f,-0x4c)]=_0x5307f2,this['rendering'][_0x522337(0x42f,0x439)](_0x1be6ad),this[_0x522337(0x434,0x3d4)]['updateOptions'](_0x1be6ad),_0x2ab657&&(this[_0x522337(0x434,0x3c3)][_0x522337(0x3e1,0x42e)](),this['computing'][_0x344983(0xa8,0xa0)](),this['rendering'][_0x522337(0x44e,0x41f)]());}[_0x69b9bf(0x629,0x5ae)](_0x5b428e){this['viewerParameters']=_0x5b428e;function _0x4e61b7(_0x5df76c,_0x211ac4){return _0x69b9bf(_0x211ac4,_0x5df76c- -0x355);}this['computing']['viewerParameters']=_0x5b428e,this[_0x4e61b7(0x2f6,0x331)]['viewerParameters']=_0x5b428e;}['destroy'](){this['computing']['destroy']();function _0x499bd7(_0x55697d,_0x5d3214){return _0x69b9bf(_0x5d3214,_0x55697d- -0x5a4);}this[_0x499bd7(0xa7,0x7e)]['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x27bb2e={};_0x27bb2e['min']=0x1,_0x27bb2e['max']=0x2;const _0x267e39={};function _0x763a(){const _0x108e9c=['PointTrans','frameTime','height','uniformMap','style','rows','toRadians','lng','ColorRamp','getOwnPropertyDescriptor','#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','_createCanvas','stringify','onParticlesTextureSizeChange','canvasWidth','2075408VvpVBd','context','particlesNumber','windTextures','createWindTextures','_canrefresh','type','SceneMode','particlesTextureSize','attributeLocations','applyViewerParameters','LayerUtil','xmin','ymin','#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','age','latitude','processWindData','UNSIGNED_BYTE','speedRate','_tomap','random','percentageChanged','defineProperty','number','WindUtil','width','worker','0px','colorTable','beginPath','west','CanvasWindField','talt','forEach','commandToExecute','removeEventListener','_drawLines','mars3d-wind插件注册成功\x20\x20\x20\x20\x20版本:','pixelSize','canvasHeight','flipY','off','speed','domain','Cesium','mouse_move','flatMap','updatePosition','commandList','pow','dynamic','drawingBufferWidth','_calc_speedRate','fillRect','getParticles','min','canvasContext','pointer-events','fragmentShaderSource','segmentsColor','max','removeChild','particlesSpeed','cancelAnimationFrame','data','call','_setOptionsHook','_colorRamp','mouse_down','SRC_ALPHA','primitives','umin','initFrameRate','updateViewerParameters','alt','_updateIng','sqrt','vdata','isDynamic','shaderProgram','mouseUp','3.10.10','pickEllipsoid','RGBA','createComputingPrimitives','slice','toGridXY','wrapS','createSegmentsGeometry','initWorker','max\x20is\x20undefined,\x20calculate\x20max','push','alpha','update','layer','globalCompositeOperation','toWindowCoordinates','normal','FUNC_ADD','_addedHook','prototype','fromGeometry','windData','vmin','cartesianToCartographic','_onMouseMoveEvent','canvas','redraw','bufferUsage','updateWindData','_onMapWhellEvent','_calcUV','maxAge','length','DEPTH_COMPONENT','camera','drawingBufferHeight','Math','__proto__','wrapT','createRenderingFramebuffers','create','addEventListener','remove','_animateFrame','NEAREST','latRange','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','CanvasWindLayer','mouseMove','6923525ctSYpf','_maxAge','now','color','createPrimitives','Draw','WindLayer','init','pass','blendFuncDestination','show','minificationFilter','846049SJOmOM','south','pixelFormat','reCreateWindTextures','owner','setDate','calculateSpeed','createParticlesTextures','mouseDown','Cartesian2','_removedHook','ONE_MINUS_SRC_ALPHA','container','primitiveType','requestAnimationFrame','register','north','componentDatatype','rectangle','frameRateAdjustment','log','27560568praxgI','sources','tlng','rendering','CLAMP_TO_EDGE','quietPeriod','xmax','onColorTableChange','warn','clear','array','magnificationFilter','postMessage','getUVByXY','pixelDatatype','framebuffers','outputTexture','resize','visible','_speedRate','windField','destroyParticlesTextures','viewerParameters','stroke','getPrimitives','#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','FLOAT','_onMouseDownEvent','values','getColor','currentParticlesPosition','getDirection','add','558lUhhSL','particles','zIndex','mode','fixedHeight','Rectangle','samplingWindow','getDefaultRenderState','rgb(206,255,255)','bind','particleSystem','tlat','1271001zPEZUZ','ellipsoid','all','lineWidth','colors','dropRateBump','getCalculateSpeedShader','east','#ffffff','ymax','5758356CuMtNP','Cartesian3','setData','lighter','hidden','createRenderingTextures','isInExtent','DomUtil','colorTextures','frameRateMonitor','getSegmentDrawVertexShader','frameRate','options','_map','min\x20is\x20undefined,\x20calculate\x20min','2025-12-12\x2016:28','segments','TRIANGLES','scene','getUVByPoint','preExecute','pointerEvents','viewport','_onMouseUpEvent','STATIC_DRAW','commandType','vertexShaderSource','grid','framebuffer','displayRange','16145mairBB','isDestroy','object','EventType','segmentsDepth','_randomParticle','blending','destroy','unbindEvent','lineTo','MAX_VALUE','cols','getSpeed','clientHeight','updateOptions','geometry','fromCache','floor','clientWidth','computing','clearCommand','isArray','lonRange','__esModule','bounds','abs','fill','_bilinearInterpolation','refreshTimer','previousParticlesPosition','particlesTextures','positionWC'];_0x763a=function(){return _0x108e9c;};return _0x763a();}_0x267e39[_0x16b89f(-0x18d,-0x128)]=0x14,_0x267e39[_0x16b89f(-0x163,-0x123)]=0x64;const _0x458547={};_0x458547['particlesTextureSize']=0x64,_0x458547['fixedHeight']=0x0;function _0x16b89f(_0x4fcea6,_0x183748){return _0xa5c5(_0x183748- -0x327,_0x4fcea6);}_0x458547['lineWidth']=_0x27bb2e,_0x458547['lineLength']=_0x267e39,_0x458547['speedFactor']=0x1,_0x458547['dropRate']=0.003,_0x458547[_0x69b9bf(0x586,0x552)]=0.001,_0x458547[_0x69b9bf(0x4fc,0x551)]=[_0x16b89f(-0x225,-0x1bb)],_0x458547['flipY']=![],_0x458547['dynamic']=!![];const DEF_OPTIONS=_0x458547;class WindLayer extends BaseLayer$1{constructor(_0x121a37={}){_0x121a37={...DEF_OPTIONS,..._0x121a37},super(_0x121a37);function _0x334d18(_0x6babca,_0xa3f27c){return _0x69b9bf(_0xa3f27c,_0x6babca- -0x6d1);}this[_0x334d18(-0xea,-0x98)](_0x121a37,_0x121a37);}get['layer'](){function _0x160ddf(_0x1c82f3,_0x225169){return _0x69b9bf(_0x1c82f3,_0x225169- -0x428);}return this[_0x160ddf(0x1c2,0x1c3)];}get['data'](){return this['options']['data'];}set[_0x16b89f(-0x142,-0x11f)](_0x174bf7){this['options']['data']=_0x174bf7,this['setData'](_0x174bf7);}get['colors'](){return this['options']['colors'];}set['colors'](_0x3d3ae6){this[_0x2c15c8(-0xab,-0x101)]['colors']=_0x3d3ae6;function _0x2c15c8(_0x59b9eb,_0x5ce7db){return _0x69b9bf(_0x59b9eb,_0x5ce7db- -0x664);}const _0x3e3864={};_0x3e3864[_0x4e5e04(0x295,0x201)]=_0x3d3ae6;function _0x4e5e04(_0x5515e9,_0x49017a){return _0x69b9bf(_0x49017a,_0x5515e9- -0x2bc);}this['_setOptionsHook'](this['options'],_0x3e3864);}['_showHook'](_0x234470){_0x234470?this['_addedHook']():this['_removedHook']();}['_mountedHook'](){}['_addedHook'](){this['scene']=this[_0x43c309(-0x200,-0x182)]['scene'];function _0x5f0739(_0x3bd04c,_0x429796){return _0x69b9bf(_0x3bd04c,_0x429796- -0x404);}this['camera']=this[_0x5f0739(0x181,0x160)]['camera'];this['options'][_0x5f0739(0x200,0x1e1)]&&this[_0x5f0739(0x1af,0x155)](this['options']['data']);if(!this['windData']||!this['show'])return;function _0x43c309(_0x1c35c5,_0x1197bb){return _0x16b89f(_0x1c35c5,_0x1197bb-0x1e);}this[_0x5f0739(0xc1,0x132)]={'lonRange':new Cesium$1[(_0x43c309(-0x109,-0xaa))](-0xb4,0xb4),'latRange':new Cesium$1[(_0x43c309(-0xa8,-0xaa))](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x5f0739(0x1d7,0x165)]['mode']},this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this[_0x5f0739(0x132,0x165)]['context'],this['windData'],this[_0x43c309(-0x20a,-0x183)],this[_0x5f0739(0x13b,0x132)],this['scene']),this['primitives']=this['particleSystem'][_0x43c309(-0x1c0,-0x1ae)](),this[_0x5f0739(0x23e,0x1e7)]['forEach'](_0x1e8094=>{function _0x5e127a(_0x147ced,_0x4f65a1){return _0x43c309(_0x147ced,_0x4f65a1-0x486);}function _0x2d2a9e(_0x467803,_0x4033e8){return _0x43c309(_0x4033e8,_0x467803-0x423);}this['scene'][_0x2d2a9e(0x328,0x2f2)][_0x2d2a9e(0x27d,0x29d)](_0x1e8094);}),this['camera'][_0x43c309(-0x12b,-0x12c)]=0.01,this['camera']['changed'][_0x5f0739(0x1d3,0x21b)](this['updateViewerParameters']['bind'](this)),this[_0x43c309(-0xfa,-0x17d)]['morphComplete'][_0x43c309(-0x90,-0xc7)](this['updateViewerParameters']['bind'](this)),window['addEventListener']('resize',this[_0x43c309(-0x89,-0xf8)]['bind'](this));}[_0x69b9bf(0x6b3,0x63d)](){function _0x150072(_0x1e7266,_0x29a502){return _0x16b89f(_0x1e7266,_0x29a502-0x291);}this[_0x222fea(0x5a4,0x5ff)]['changed']['removeEventListener'](this['updateViewerParameters']['bind'](this));function _0x222fea(_0x106d15,_0x487e0f){return _0x69b9bf(_0x487e0f,_0x106d15- -0x74);}this['scene']['morphComplete'][_0x222fea(0x554,0x4f4)](this['updateViewerParameters']['bind'](this)),window[_0x150072(0x107,0x155)](_0x222fea(0x4bd,0x4da),this[_0x150072(0x1e4,0x17b)]['bind'](this)),this['primitives']&&(this['primitives']['forEach'](_0x213f9a=>{function _0x516e7f(_0x334bf3,_0x2c3075){return _0x150072(_0x334bf3,_0x2c3075-0x40a);}function _0x58b974(_0x2727b9,_0xedd6c2){return _0x222fea(_0xedd6c2- -0x6a7,_0x2727b9);}this[_0x58b974(-0x175,-0x1b2)]['primitives'][_0x58b974(-0x96,-0xfb)](_0x213f9a);}),delete this[_0x150072(0x1ef,0x178)]),this[_0x150072(0x117,0xd8)]&&(this['particleSystem'][_0x222fea(0x508,0x4c7)](),delete this[_0x222fea(0x4d7,0x507)]);}['setData'](_0x34f159,_0x2fcfa7){this['windData']=this['processWindData'](_0x34f159);function _0x4bf2cd(_0x589006,_0x32d66d){return _0x69b9bf(_0x589006,_0x32d66d- -0x92);}if(_0x2fcfa7){this['_removedHook'](),this['_addedHook']();return;}function _0x35a090(_0x56dbaa,_0x5e2f63){return _0x16b89f(_0x5e2f63,_0x56dbaa-0x4b5);}this[_0x35a090(0x2fc,0x2fc)]?(this['particleSystem']['computing'][_0x35a090(0x3c3,0x3d7)](this['windData']),this[_0x35a090(0x31a,0x302)]['requestRender']()):this[_0x4bf2cd(0x5ae,0x576)]();}[_0x69b9bf(0x63c,0x5e7)](_0x53ed74,_0x503608){function _0x378faf(_0x5d5571,_0x5296f1){return _0x16b89f(_0x5d5571,_0x5296f1-0x262);}function _0x2e3a92(_0x2feb7a,_0x18e8b7){return _0x16b89f(_0x2feb7a,_0x18e8b7-0x417);}this[_0x2e3a92(0x2a3,0x25e)]&&(this['particleSystem']['changeOptions'](_0x503608),this[_0x2e3a92(0x254,0x27c)]['requestRender']());}['processWindData'](_0x4b2ec0){var _0x44828b,_0x221eaa;function _0x46b653(_0x5cda03,_0x437f02){return _0x16b89f(_0x437f02,_0x5cda03-0x563);}const _0x2fca28={..._0x4b2ec0},_0x4ea369=_0x2fca28;!_0x4ea369[_0x10099f(0x110,0x1a3)]&&_0x4ea369['rows']&&(_0x4ea369['height']=_0x4ea369[_0x46b653(0x3f9,0x45b)]);!_0x4ea369['width']&&_0x4ea369[_0x46b653(0x3df,0x424)]&&(_0x4ea369[_0x46b653(0x41d,0x491)]=_0x4ea369['cols']);!_0x4ea369[_0x46b653(0x3ec,0x3c4)]&&(_0x4ea369['bounds']={'west':_0x4ea369[_0x46b653(0x40f,0x3bf)],'south':_0x4ea369['ymin'],'east':_0x4ea369['xmax'],'north':_0x4ea369[_0x46b653(0x3b5,0x432)]});function _0x10099f(_0x146c54,_0x573c6f){return _0x16b89f(_0x146c54,_0x573c6f-0x310);}if(!_0x4ea369['u']){const _0x437772={};_0x437772[_0x46b653(0x389,0x3f9)]=_0x4b2ec0['udata'],_0x437772['min']=_0x4b2ec0[_0x10099f(0x180,0x1f8)],_0x437772['max']=_0x4b2ec0['umax'],_0x4ea369['u']=_0x437772;}if(!_0x4ea369['v']){const _0x4046a2={};_0x4046a2['array']=_0x4b2ec0[_0x46b653(0x451,0x3f9)],_0x4046a2[_0x46b653(0x43b,0x415)]=_0x4b2ec0[_0x46b653(0x46b,0x43d)],_0x4046a2['max']=_0x4b2ec0['vmax'],_0x4ea369['v']=_0x4046a2;}if(((_0x44828b=_0x4ea369[_0x46b653(0x42e,0x42f)])===null||_0x44828b===void 0x0?void 0x0:_0x44828b['min'])===undefined||((_0x221eaa=_0x4ea369['speed'])===null||_0x221eaa===void 0x0?void 0x0:_0x221eaa['max'])===undefined||_0x4ea369[_0x46b653(0x42e,0x4aa)]['array']===undefined){const _0xb433a7={'array':new Float32Array(_0x4ea369['u'][_0x10099f(0x119,0x136)][_0x10099f(0x1bb,0x222)]),'min':Number[_0x46b653(0x3de,0x3c0)],'max':Number['MIN_VALUE']};for(let _0x4bec8c=0x0;_0x4bec8c<_0x4ea369['u'][_0x10099f(0x14d,0x136)][_0x46b653(0x475,0x4ce)];_0x4bec8c++){_0xb433a7[_0x46b653(0x389,0x37f)][_0x4bec8c]=Math['sqrt'](_0x4ea369['u']['array'][_0x4bec8c]*_0x4ea369['u'][_0x46b653(0x389,0x328)][_0x4bec8c]+_0x4ea369['v']['array'][_0x4bec8c]*_0x4ea369['v'][_0x46b653(0x389,0x3b3)][_0x4bec8c]),_0xb433a7[_0x10099f(0x1c4,0x136)][_0x4bec8c]!==0x0&&(_0xb433a7['min']=Math[_0x46b653(0x43b,0x3fd)](_0xb433a7['min'],_0xb433a7[_0x46b653(0x389,0x30b)][_0x4bec8c]),_0xb433a7['max']=Math['max'](_0xb433a7[_0x10099f(0x195,0x1ed)],_0xb433a7['array'][_0x4bec8c]));}_0x4ea369[_0x10099f(0x24f,0x1db)]=_0xb433a7;}return _0x4ea369;}['updateViewerParameters'](){var _0x4b377e;const _0x55fd54=this['scene'];if(!_0x55fd54)return;const _0x68a89e=_0x55fd54['canvas'],_0x299ad9={};_0x299ad9['x']=0x0,_0x299ad9['y']=0x0;const _0x181de8={};_0x181de8['x']=0x0,_0x181de8['y']=_0x68a89e['clientHeight'];function _0x31eb48(_0x23e429,_0x49a05b){return _0x16b89f(_0x23e429,_0x49a05b-0x252);}function _0x3b5bff(_0x1d6fb9,_0x1789cc){return _0x16b89f(_0x1d6fb9,_0x1789cc- -0x33);}const _0x22bb30={};_0x22bb30['x']=_0x68a89e[_0x31eb48(0x127,0xd5)],_0x22bb30['y']=0x0;const _0x1bc63a={};_0x1bc63a['x']=_0x68a89e['clientWidth'],_0x1bc63a['y']=_0x68a89e[_0x3b5bff(-0x22e,-0x1b5)];const _0x4da167=[_0x299ad9,_0x181de8,_0x22bb30,_0x1bc63a];let _0x484deb=0xb4,_0x372b8f=-0xb4,_0x4c989c=0x5a,_0x1cb49b=-0x5a,_0x528082=![];for(const _0x268b24 of _0x4da167){const _0x23b827=_0x55fd54[_0x31eb48(0x1a9,0x166)][_0x31eb48(0x1a4,0x145)](new Cesium$1['Cartesian2'](_0x268b24['x'],_0x268b24['y']),_0x55fd54['globe']['ellipsoid']);if(!_0x23b827){_0x528082=!![];break;}const _0x23e940=_0x55fd54['globe'][_0x3b5bff(-0x19a,-0x1e9)][_0x31eb48(0x176,0x15b)](_0x23b827),_0x58a679=Cesium$1['Math']['toDegrees'](_0x23e940['longitude']),_0x19f25c=Cesium$1['Math']['toDegrees'](_0x23e940[_0x31eb48(0x160,0x102)]);_0x484deb=Math['min'](_0x484deb,_0x58a679),_0x372b8f=Math[_0x3b5bff(-0x118,-0x156)](_0x372b8f,_0x58a679),_0x4c989c=Math['min'](_0x4c989c,_0x19f25c),_0x1cb49b=Math['max'](_0x1cb49b,_0x19f25c);}if(!_0x528082){const _0x2e12c3=new Cesium$1['Cartesian2'](Math[_0x31eb48(0xb1,0x12f)](this['windData'][_0x31eb48(0x63,0xdb)]['west'],_0x484deb),Math[_0x31eb48(0x1a9,0x12a)](this['windData'][_0x3b5bff(-0x146,-0x1aa)]['east'],_0x372b8f)),_0x41d2fc=new Cesium$1[(_0x31eb48(0x1cb,0x18a))](Math['max'](this[_0x31eb48(0xcf,0x159)][_0x3b5bff(-0x213,-0x1aa)][_0x31eb48(0x1a1,0x182)],_0x4c989c),Math['min'](this[_0x3b5bff(-0x14c,-0x12c)]['bounds'][_0x3b5bff(-0x138,-0xf4)],_0x1cb49b)),_0x50c859=(_0x2e12c3['y']-_0x2e12c3['x'])*0.05,_0x29d4a8=(_0x41d2fc['y']-_0x41d2fc['x'])*0.05;_0x2e12c3['x']=Math[_0x3b5bff(-0xfb,-0x156)](this['windData'][_0x3b5bff(-0x205,-0x1aa)]['west'],_0x2e12c3['x']-_0x50c859),_0x2e12c3['y']=Math[_0x31eb48(0xb3,0x12a)](this['windData'][_0x3b5bff(-0x140,-0x1aa)]['east'],_0x2e12c3['y']+_0x50c859),_0x41d2fc['x']=Math[_0x3b5bff(-0x12a,-0x156)](this[_0x3b5bff(-0x16c,-0x12c)][_0x3b5bff(-0x154,-0x1aa)]['south'],_0x41d2fc['x']-_0x29d4a8),_0x41d2fc['y']=Math[_0x31eb48(0x16e,0x12a)](this[_0x31eb48(0x1e9,0x159)][_0x3b5bff(-0x16c,-0x1aa)][_0x3b5bff(-0xc3,-0xf4)],_0x41d2fc['y']+_0x29d4a8),this['viewerParameters'][_0x31eb48(0x11d,0xd9)]=_0x2e12c3,this['viewerParameters']['latRange']=_0x41d2fc;const _0x40560d=this[_0x3b5bff(-0xf5,-0x12c)][_0x3b5bff(-0x1b1,-0x1aa)][_0x3b5bff(-0x1a6,-0x1e3)]-this['windData'][_0x31eb48(0x59,0xdb)][_0x3b5bff(-0x12e,-0x174)],_0x33e65f=this['windData']['bounds'][_0x3b5bff(-0x7f,-0xf4)]-this['windData']['bounds'][_0x31eb48(0x17a,0x182)],_0xe82230=(_0x2e12c3['y']-_0x2e12c3['x'])/_0x40560d,_0x270f20=(_0x41d2fc['y']-_0x41d2fc['x'])/_0x33e65f,_0x5c9368=Math['min'](_0xe82230,_0x270f20),_0x595d57=0x3e8*_0x5c9368;_0x595d57>0x0&&(this[_0x31eb48(0x8a,0x84)][_0x31eb48(0x190,0x119)]=Math[_0x31eb48(0xb1,0x12f)](0x0,Math[_0x3b5bff(-0x101,-0x15b)](0x3e8,_0x595d57)));}this['viewerParameters']['sceneMode']=this[_0x3b5bff(-0x24e,-0x1ce)]['mode'],(_0x4b377e=this['particleSystem'])===null||_0x4b377e===void 0x0||_0x4b377e[_0x31eb48(0x183,0xfc)](this['viewerParameters']);}['getDataAtLonLat'](_0x1c1530,_0x470035){const {bounds:_0x14f6b2,width:_0xb3a93e,height:_0x52615b,u:_0x5a1649,v:_0x24eb4e,speed:_0x3a7f5a}=this[_0x17b876(0x1f4,0x225)],{flipY:_0x1a7c6a}=this[_0x17b876(0x152,0x17d)];if(_0x1c1530<_0x14f6b2[_0x1fdbe2(-0xc0,-0x40)]||_0x1c1530>_0x14f6b2['east']||_0x470035<_0x14f6b2[_0x1fdbe2(-0x4f,-0x51)]||_0x470035>_0x14f6b2['north'])return null;const _0x785a55=(_0x1c1530-_0x14f6b2[_0x17b876(0x184,0x1dd)])/(_0x14f6b2['east']-_0x14f6b2['west'])*(_0xb3a93e-0x1);let _0x312365=(_0x470035-_0x14f6b2[_0x1fdbe2(-0x4f,0x31)])/(_0x14f6b2['north']-_0x14f6b2[_0x1fdbe2(-0x4f,0x3)])*(_0x52615b-0x1);_0x1a7c6a&&(_0x312365=_0x52615b-0x1-_0x312365);const _0x2abd65=Math['floor'](_0x785a55),_0x38f2b2=Math['floor'](_0x312365);function _0x17b876(_0x23aec0,_0x62445d){return _0x16b89f(_0x23aec0,_0x62445d-0x31e);}const _0x253845=Math['floor'](_0x785a55),_0x2aba86=Math['min'](_0x253845+0x1,_0xb3a93e-0x1),_0x1bc366=Math['floor'](_0x312365),_0x1be969=Math[_0x1fdbe2(-0xa7,-0x11b)](_0x1bc366+0x1,_0x52615b-0x1);function _0x1fdbe2(_0x595a53,_0x45f16d){return _0x69b9bf(_0x45f16d,_0x595a53- -0x683);}const _0x44bbb8=_0x785a55-_0x253845,_0x8ac36=_0x312365-_0x1bc366,_0x3081bb=_0x38f2b2*_0xb3a93e+_0x2abd65,_0xb1f620=_0x1bc366*_0xb3a93e+_0x253845,_0x2782f3=_0x1bc366*_0xb3a93e+_0x2aba86,_0x460b71=_0x1be969*_0xb3a93e+_0x253845,_0x313b1c=_0x1be969*_0xb3a93e+_0x2aba86,_0x2af08f=_0x5a1649['array'][_0xb1f620],_0x43fb3e=_0x5a1649['array'][_0x2782f3],_0x38f516=_0x5a1649[_0x1fdbe2(-0x159,-0xe7)][_0x460b71],_0x44cc19=_0x5a1649[_0x1fdbe2(-0x159,-0x1cd)][_0x313b1c],_0xfcea8b=(0x1-_0x44bbb8)*(0x1-_0x8ac36)*_0x2af08f+_0x44bbb8*(0x1-_0x8ac36)*_0x43fb3e+(0x1-_0x44bbb8)*_0x8ac36*_0x38f516+_0x44bbb8*_0x8ac36*_0x44cc19,_0x484c41=_0x24eb4e[_0x1fdbe2(-0x159,-0x113)][_0xb1f620],_0x45f136=_0x24eb4e['array'][_0x2782f3],_0x5b1d26=_0x24eb4e[_0x17b876(0x160,0x144)][_0x460b71],_0x53f453=_0x24eb4e['array'][_0x313b1c],_0x2fe5f1=(0x1-_0x44bbb8)*(0x1-_0x8ac36)*_0x484c41+_0x44bbb8*(0x1-_0x8ac36)*_0x45f136+(0x1-_0x44bbb8)*_0x8ac36*_0x5b1d26+_0x44bbb8*_0x8ac36*_0x53f453,_0x3847f1=Math[_0x17b876(0x1bf,0x20b)](_0xfcea8b*_0xfcea8b+_0x2fe5f1*_0x2fe5f1),_0x1a2d01={};_0x1a2d01['u']=_0x5a1649[_0x17b876(0x105,0x144)][_0x3081bb],_0x1a2d01['v']=_0x24eb4e[_0x1fdbe2(-0x159,-0xe8)][_0x3081bb],_0x1a2d01['speed']=_0x3a7f5a['array'][_0x3081bb];const _0x333115={};_0x333115['u']=_0xfcea8b,_0x333115['v']=_0x2fe5f1,_0x333115['speed']=_0x3847f1;const _0x32308e={};return _0x32308e['original']=_0x1a2d01,_0x32308e['interpolated']=_0x333115,_0x32308e;}}function _0xa5c5(_0x35a4d8,_0x8b44be){const _0x763a53=_0x763a();return _0xa5c5=function(_0xa5c5fb,_0xa6ce73){_0xa5c5fb=_0xa5c5fb-0x148;let _0x5d5607=_0x763a53[_0xa5c5fb];return _0x5d5607;},_0xa5c5(_0x35a4d8,_0x8b44be);}mars3d__namespace[_0x16b89f(-0x138,-0x155)]['register']('wind',WindLayer),mars3d__namespace['layer'][_0x69b9bf(0x5bb,0x62d)]=WindLayer;class CanvasParticle{constructor(){function _0x32efc9(_0x2b3c2b,_0xa8b683){return _0x16b89f(_0xa8b683,_0x2b3c2b-0xd3);}this[_0x35d655(0x84,0x85)]=null;function _0x35d655(_0x383fc6,_0x4806d2){return _0x16b89f(_0x4806d2,_0x383fc6-0x1ec);}this['lat']=null,this['tlng']=null,this['tlat']=null,this[_0x32efc9(-0x7e,-0xc7)]=null,this['speed']=null;}['destroy'](){for(const _0x158699 in this){delete this[_0x158699];}}}class CanvasWindField{constructor(_0x2375f3){this['setOptions'](_0x2375f3);}get[_0x69b9bf(0x56c,0x5b7)](){function _0x55aa41(_0x544ded,_0x8c20c6){return _0x16b89f(_0x544ded,_0x8c20c6-0x4cd);}return this[_0x55aa41(0x338,0x2fc)];}set['speedRate'](_0x3b730c){function _0x11bb52(_0x4b7b69,_0x280015){return _0x16b89f(_0x280015,_0x4b7b69-0x2c4);}this[_0x11bb52(0xf3,0x8f)]=(0x64-(_0x3b730c>0x63?0x63:_0x3b730c))*0x64;function _0x35cbcf(_0x1c8c9a,_0x44f34d){return _0x16b89f(_0x1c8c9a,_0x44f34d-0x522);}this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this['ymax']-this[_0x11bb52(0x171,0x1f2)])/this['_speedRate']];}get[_0x69b9bf(0x697,0x615)](){function _0x1adf0c(_0x20abca,_0x491728){return _0x16b89f(_0x491728,_0x20abca-0x3d4);}return this[_0x1adf0c(0x2f8,0x2e6)];}set[_0x69b9bf(0x5ac,0x615)](_0x15299f){function _0x101e15(_0x310fe0,_0x264b97){return _0x16b89f(_0x264b97,_0x310fe0-0x121);}this[_0x101e15(0x45,0x92)]=_0x15299f;}['setOptions'](_0x28e987){this[_0x2b3731(-0x18d,-0x140)]=_0x28e987;function _0x2b3731(_0x13612e,_0x381c1c){return _0x16b89f(_0x381c1c,_0x13612e-0x14);}function _0x5cb776(_0x190c6c,_0x3d40a8){return _0x16b89f(_0x190c6c,_0x3d40a8-0xf);}this['maxAge']=_0x28e987[_0x2b3731(-0xdb,-0x5e)]||0x78,this['speedRate']=_0x28e987['speedRate']||0x32,this[_0x5cb776(-0x21d,-0x1b3)]=[];const _0x40009d=_0x28e987['particlesNumber']||0x1000;for(let _0x55ece0=0x0;_0x55ece0<_0x40009d;_0x55ece0++){const _0x348380=this['_randomParticle'](new CanvasParticle());this['particles'][_0x5cb776(-0x91,-0xf5)](_0x348380);}}['setDate'](_0x42ba58){this['rows']=_0x42ba58['rows'],this['cols']=_0x42ba58[_0xd7aced(0x16f,0x136)];function _0xd7aced(_0x12cad9,_0x54a61d){return _0x69b9bf(_0x12cad9,_0x54a61d- -0x44a);}this['xmin']=_0x42ba58[_0x7fd447(0xf1,0x118)],this[_0x7fd447(0x13,0x8e)]=_0x42ba58['xmax'];function _0x7fd447(_0x11e33c,_0x31c9dc){return _0x16b89f(_0x11e33c,_0x31c9dc-0x26c);}this[_0xd7aced(0x1e8,0x167)]=_0x42ba58[_0xd7aced(0x1d6,0x167)],this['ymax']=_0x42ba58[_0x7fd447(0xfa,0xbe)],this[_0xd7aced(0x14d,0x128)]=[];const _0x2f00a0=_0x42ba58['udata'],_0x2d2fdc=_0x42ba58[_0x7fd447(0x1d6,0x15a)];let _0x3df868=![];_0x2f00a0[_0x7fd447(0x16a,0x17e)]===this['rows']&&_0x2f00a0[0x0]['length']===this['cols']&&(_0x3df868=!![]);let _0x2eca4b=0x0,_0x4df949=null,_0xea865=null;for(let _0x398718=0x0;_0x398718<this[_0xd7aced(0x123,0x150)];_0x398718++){_0x4df949=[];for(let _0x131ecb=0x0;_0x131ecb<this['cols'];_0x131ecb++,_0x2eca4b++){_0x3df868?_0xea865=this['_calcUV'](_0x2f00a0[_0x398718][_0x131ecb],_0x2d2fdc[_0x398718][_0x131ecb]):_0xea865=this['_calcUV'](_0x2f00a0[_0x2eca4b],_0x2d2fdc[_0x2eca4b]),_0x4df949[_0xd7aced(0x1f0,0x1b6)](_0xea865);}this[_0xd7aced(0xbf,0x128)]['push'](_0x4df949);}!this['options']['flipY']&&this['grid']['reverse']();}[_0x16b89f(-0x25b,-0x1db)](){delete this['rows'],delete this[_0x57c43d(0x2ae,0x248)],delete this[_0x17e54a(0x576,0x5d4)];function _0x57c43d(_0x2a9f6e,_0x1468be){return _0x16b89f(_0x2a9f6e,_0x1468be-0x3cc);}function _0x17e54a(_0x2dce9a,_0x5c19ca){return _0x69b9bf(_0x5c19ca,_0x2dce9a- -0x3a);}delete this[_0x17e54a(0x4ec,0x462)],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this[_0x17e54a(0x508,0x501)];}['toGridXY'](_0x5625b3,_0x460405){const _0x39563f=(_0x5625b3-this['xmin'])/(this['xmax']-this[_0x313701(0x6e,0x8f)])*(this['cols']-0x1),_0x1bd2a2=(this['ymax']-_0x460405)/(this['ymax']-this['ymin'])*(this['rows']-0x1);function _0x313701(_0x4a06e8,_0x5733a8){return _0x69b9bf(_0x4a06e8,_0x5733a8- -0x521);}return[_0x39563f,_0x1bd2a2];}['getUVByXY'](_0x3a6a0a,_0x3e5124){function _0x2d74a6(_0x1c7bb0,_0x39fb9f){return _0x16b89f(_0x39fb9f,_0x1c7bb0-0xe8);}if(_0x3a6a0a<0x0||_0x3a6a0a>=this[_0x2d74a6(-0x9c,-0x53)]||_0x3e5124>=this[_0x5d78e4(0x5f9,0x57d)])return[0x0,0x0,0x0];const _0x117201=Math[_0x2d74a6(-0x96,-0x118)](_0x3a6a0a),_0x17ec12=Math[_0x2d74a6(-0x96,-0x11a)](_0x3e5124);if(_0x117201===_0x3a6a0a&&_0x17ec12===_0x3e5124)return this[_0x2d74a6(-0xaa,-0xe7)][_0x3e5124][_0x3a6a0a];function _0x5d78e4(_0xa4f756,_0x488b22){return _0x16b89f(_0xa4f756,_0x488b22-0x6e7);}const _0x10d7dc=_0x117201+0x1,_0x358653=_0x17ec12+0x1,_0x40c9b4=this['getUVByXY'](_0x117201,_0x17ec12),_0x3b8eb2=this['getUVByXY'](_0x10d7dc,_0x17ec12),_0x37d648=this[_0x5d78e4(0x4d6,0x510)](_0x117201,_0x358653),_0x2d58fe=this['getUVByXY'](_0x10d7dc,_0x358653);let _0x3530ef=null;try{_0x3530ef=this[_0x2d74a6(-0x8c,-0x31)](_0x3a6a0a-_0x117201,_0x3e5124-_0x17ec12,_0x40c9b4,_0x3b8eb2,_0x37d648,_0x2d58fe);}catch(_0x517e6c){console[_0x2d74a6(0x2b,0xaf)](_0x3a6a0a,_0x3e5124);}return _0x3530ef;}[_0x16b89f(-0xf6,-0x174)](_0x35612c,_0x310e71,_0x59dd73,_0x3ec6af,_0x11890a,_0x50e12f){const _0x5da38d=0x1-_0x35612c,_0x1712b3=0x1-_0x310e71,_0x1ef259=_0x5da38d*_0x1712b3,_0x3ec11d=_0x35612c*_0x1712b3,_0x2d9817=_0x5da38d*_0x310e71,_0x201e30=_0x35612c*_0x310e71;function _0x244df2(_0x40d233,_0x36d5a8){return _0x16b89f(_0x36d5a8,_0x40d233-0x16c);}const _0x1b6ff8=_0x59dd73[0x0]*_0x1ef259+_0x3ec6af[0x0]*_0x3ec11d+_0x11890a[0x0]*_0x2d9817+_0x50e12f[0x0]*_0x201e30,_0x2abb7d=_0x59dd73[0x1]*_0x1ef259+_0x3ec6af[0x1]*_0x3ec11d+_0x11890a[0x1]*_0x2d9817+_0x50e12f[0x1]*_0x201e30;return this[_0x244df2(0x7c,0xe8)](_0x1b6ff8,_0x2abb7d);}['_calcUV'](_0x30f5c6,_0x19bb32){return[+_0x30f5c6,+_0x19bb32,Math['sqrt'](_0x30f5c6*_0x30f5c6+_0x19bb32*_0x19bb32)];}['getUVByPoint'](_0x32092b,_0x1980b8){if(!this['isInExtent'](_0x32092b,_0x1980b8))return null;function _0x4137dc(_0x594368,_0x5c0d29){return _0x16b89f(_0x594368,_0x5c0d29-0x3a0);}const _0x3a66e4=this[_0x4137dc(0x2c5,0x297)](_0x32092b,_0x1980b8),_0x2b7d79=this['getUVByXY'](_0x3a66e4[0x0],_0x3a66e4[0x1]);return _0x2b7d79;}[_0x16b89f(-0x206,-0x1a7)](_0x3961a0,_0x5a21c8){function _0x780560(_0x193fe4,_0x534c13){return _0x69b9bf(_0x193fe4,_0x534c13- -0x318);}return _0x3961a0>=this['xmin']&&_0x3961a0<=this['xmax']&&_0x5a21c8>=this[_0x780560(0x217,0x299)]&&_0x5a21c8<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x2187e0=fRandomByfloat(this[_0x3b66c9(0x266,0x21b)],this['xmax']),_0x31621b=fRandomByfloat(this[_0x48a603(0x59f,0x5c0)],this[_0x3b66c9(0x1aa,0x1c1)]);function _0x3b66c9(_0x5b094a,_0x5232a2){return _0x16b89f(_0x5b094a,_0x5232a2-0x36f);}const _0x511f90={};function _0x48a603(_0x51a870,_0x38b641){return _0x16b89f(_0x38b641,_0x51a870-0x6f2);}return _0x511f90['lat']=_0x31621b,_0x511f90['lng']=_0x2187e0,_0x511f90;}['getParticles'](){function _0x54ff33(_0x45aebb,_0x58065c){return _0x16b89f(_0x58065c,_0x45aebb- -0xad);}function _0x37f6af(_0x1f964a,_0x247d5b){return _0x16b89f(_0x1f964a,_0x247d5b-0x537);}let _0x46b4d4,_0x990be1,_0x57d5e5;for(let _0x160be2=0x0,_0xee3673=this[_0x37f6af(0x30f,0x375)]['length'];_0x160be2<_0xee3673;_0x160be2++){let _0x1456f3=this[_0x54ff33(-0x26f,-0x2bd)][_0x160be2];_0x1456f3[_0x54ff33(-0x1fe,-0x25c)]<=0x0&&(_0x1456f3=this[_0x54ff33(-0x237,-0x214)](_0x1456f3));if(_0x1456f3['age']>0x0){const _0x28bb36=_0x1456f3[_0x54ff33(-0x167,-0x19a)],_0x57feb3=_0x1456f3['tlat'];_0x57d5e5=this[_0x54ff33(-0x247,-0x2c4)](_0x28bb36,_0x57feb3),_0x57d5e5?(_0x46b4d4=_0x28bb36+this['_calc_speedRate'][0x0]*_0x57d5e5[0x0],_0x990be1=_0x57feb3+this['_calc_speedRate'][0x1]*_0x57d5e5[0x1],_0x1456f3['lng']=_0x28bb36,_0x1456f3['lat']=_0x57feb3,_0x1456f3['tlng']=_0x46b4d4,_0x1456f3[_0x37f6af(0x352,0x37f)]=_0x990be1,_0x1456f3['speed']=_0x57d5e5[0x2],_0x1456f3['age']--):_0x1456f3['age']=0x0;}}return this[_0x54ff33(-0x26f,-0x258)];}['_randomParticle'](_0x5e8bba){let _0x24dbd1,_0x45d6ad;function _0x5d071b(_0x476bea,_0xcdb533){return _0x16b89f(_0xcdb533,_0x476bea-0x384);}function _0x6e97d0(_0x2dd36a,_0x99c0cc){return _0x69b9bf(_0x2dd36a,_0x99c0cc- -0x361);}for(let _0x380531=0x0;_0x380531<0x1e;_0x380531++){_0x24dbd1=this['getRandomLatLng'](),_0x45d6ad=this[_0x5d071b(0x1ea,0x198)](_0x24dbd1[_0x6e97d0(0x257,0x23b)],_0x24dbd1['lat']);if(_0x45d6ad&&_0x45d6ad[0x2]>0x0)break;}if(!_0x45d6ad)return _0x5e8bba;const _0xda5b00=_0x24dbd1[_0x5d071b(0x21c,0x1ba)]+this['_calc_speedRate'][0x0]*_0x45d6ad[0x0],_0x500fc7=_0x24dbd1['lat']+this[_0x6e97d0(0x2bf,0x278)][0x1]*_0x45d6ad[0x1];return _0x5e8bba['lng']=_0x24dbd1['lng'],_0x5e8bba['lat']=_0x24dbd1['lat'],_0x5e8bba[_0x6e97d0(0x330,0x2e9)]=_0xda5b00,_0x5e8bba['tlat']=_0x500fc7,_0x5e8bba[_0x6e97d0(0x216,0x252)]=Math['round'](0xa+Math[_0x6e97d0(0x2e0,0x258)]()*this['maxAge']),_0x5e8bba['speed']=_0x45d6ad[0x2],_0x5e8bba;}[_0x69b9bf(0x51f,0x57c)](){for(const _0x1ad228 in this){delete this[_0x1ad228];}}}function fRandomByfloat(_0x6a6b3b,_0x42f5ea){return _0x6a6b3b+Math['random']()*(_0x42f5ea-_0x6a6b3b);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x561c0f={}){function _0x2a7bd3(_0x1ce699,_0xcc6f69){return _0x69b9bf(_0x1ce699,_0xcc6f69- -0x3cc);}function _0x10cfaa(_0x4d510b,_0x52b917){return _0x69b9bf(_0x52b917,_0x4d510b- -0x5d);}super(_0x561c0f),this['_setOptionsHook'](_0x561c0f),this['canvas']=null,_0x561c0f['colors']&&_0x561c0f['steps']&&(this[_0x2a7bd3(0x24e,0x21c)]=new mars3d__namespace[(_0x10cfaa(0x540,0x4e4))](_0x561c0f));}['_setOptionsHook'](_0x58d210,_0x2440ae){this[_0x38c9cf(0x115,0x17d)]=0x3e8/(_0x58d210[_0x2ad168(-0x180,-0xf2)]||0xa),this['_pointerEvents']=this[_0x2ad168(-0x9a,-0xf1)][_0x2ad168(-0x10b,-0xe8)]??![],this['color']=_0x58d210['color']||_0x2ad168(-0xb9,-0xff);function _0x2ad168(_0x38e6ae,_0x4a7665){return _0x16b89f(_0x38e6ae,_0x4a7665-0xb0);}function _0x38c9cf(_0x20e126,_0x21e101){return _0x16b89f(_0x20e126,_0x21e101-0x2eb);}this['lineWidth']=_0x58d210['lineWidth']||0x1,this['fixedHeight']=_0x58d210[_0x38c9cf(0x141,0x12c)]??0x0,this['flipY']=_0x58d210[_0x38c9cf(0x186,0x1b4)]??![],this['windField']&&this['windField']['setOptions'](_0x58d210);}get['layer'](){return this['canvas'];}get['canvasWidth'](){function _0x55592e(_0x56f523,_0x4c0278){return _0x16b89f(_0x56f523,_0x4c0278-0x34a);}function _0x3c71b0(_0x36b26d,_0x1339ec){return _0x16b89f(_0x1339ec,_0x36b26d-0x115);}return this['_map']['scene'][_0x3c71b0(0x20,-0x35)][_0x55592e(0x1b4,0x1cd)];}get['canvasHeight'](){function _0x4572e6(_0x803e02,_0x718a1b){return _0x69b9bf(_0x718a1b,_0x803e02- -0x19f);}return this['_map'][_0x4572e6(0x3ca,0x3e6)]['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set['pointerEvents'](_0x425b5d){function _0x552948(_0x43c9ab,_0xb242e1){return _0x69b9bf(_0xb242e1,_0x43c9ab- -0x6e5);}this['_pointerEvents']=_0x425b5d;function _0x1ea525(_0xdb2f31,_0x3288f8){return _0x69b9bf(_0xdb2f31,_0x3288f8- -0x26f);}if(!this[_0x552948(-0xd6,-0x108)])return;_0x425b5d?this['canvas']['style']['pointer-events']=_0x552948(-0x196,-0x131):this['canvas']['style'][_0x552948(-0x107,-0xe8)]='none';}get['particlesNumber'](){function _0x3a0de7(_0xa97a76,_0x4c426d){return _0x69b9bf(_0x4c426d,_0xa97a76- -0x618);}function _0x34a937(_0x37c970,_0x137642){return _0x16b89f(_0x37c970,_0x137642- -0x71);}return this[_0x34a937(-0x1d3,-0x212)][_0x3a0de7(-0x72,-0xf4)];}set['particlesNumber'](_0x886811){function _0x21e54a(_0x3811b2,_0x588001){return _0x16b89f(_0x588001,_0x3811b2-0x672);}this['options']['particlesNumber']=_0x886811;function _0x1cbb7e(_0x39021e,_0x5d4bc7){return _0x69b9bf(_0x39021e,_0x5d4bc7- -0x16);}clearTimeout(this[_0x1cbb7e(0x5f6,0x593)]),this[_0x21e54a(0x517,0x4b0)]=setTimeout(()=>{function _0xe2298b(_0x2df20c,_0xb2ba75){return _0x1cbb7e(_0x2df20c,_0xb2ba75- -0x69f);}this[_0xe2298b(-0xe0,-0xa5)]();},0x1f4);}get[_0x16b89f(-0x185,-0x14d)](){function _0x99a866(_0x5eb26c,_0x1e2b9d){return _0x69b9bf(_0x1e2b9d,_0x5eb26c- -0x4fc);}return this['options'][_0x99a866(0xbb,0xb9)];}set['speedRate'](_0x36aeb5){function _0x2b17f5(_0x2bd28f,_0x467fa6){return _0x16b89f(_0x467fa6,_0x2bd28f-0x57e);}function _0xced60f(_0x1fe176,_0x1203b1){return _0x16b89f(_0x1fe176,_0x1203b1-0x541);}this['options']['speedRate']=_0x36aeb5,this[_0x2b17f5(0x3ae,0x401)]&&(this[_0x2b17f5(0x3ae,0x403)]['speedRate']=_0x36aeb5);}get[_0x16b89f(-0xdf,-0xef)](){return this['options']['maxAge'];}set[_0x16b89f(-0x15c,-0xef)](_0xf60551){this[_0x22611a(0xf8,0xad)][_0x22611a(0x141,0x15f)]=_0xf60551;function _0x22611a(_0x5cb95c,_0x483afe){return _0x69b9bf(_0x5cb95c,_0x483afe- -0x4b6);}function _0x53d4b3(_0x277757,_0x525c5c){return _0x69b9bf(_0x525c5c,_0x277757- -0x4e5);}this['windField']&&(this['windField'][_0x53d4b3(0x130,0x1b5)]=_0xf60551);}get[_0x16b89f(-0xea,-0x11f)](){function _0x3704ea(_0x5e0203,_0x4d875b){return _0x16b89f(_0x5e0203,_0x4d875b- -0x59);}return this[_0x3704ea(-0x12c,-0x152)];}set['data'](_0x4d273e){function _0x7b3de9(_0x5eae86,_0x5cd138){return _0x16b89f(_0x5eae86,_0x5cd138-0x4e8);}this[_0x7b3de9(0x2cb,0x33d)](_0x4d273e);}get[_0x16b89f(-0xb6,-0xbf)](){function _0x3b9a18(_0x3274cd,_0x2dc961){return _0x16b89f(_0x2dc961,_0x3274cd-0x111);}let _0x57a948=this[_0x452758(-0xa4,-0xaa)]['xmin'],_0xaa63f2=this['windData']['xmax'],_0x138452=this[_0x452758(-0xa4,-0x110)]['ymin'],_0x24d191=this['windData']['ymax'];_0xaa63f2>=0x167&&_0x57a948===0x0&&(_0x57a948=-0xb4,_0xaa63f2=0xb4);_0x57a948=Math['max'](_0x57a948,-0xb4),_0xaa63f2=Math['min'](_0xaa63f2,0xb4),_0x138452=Math[_0x3b9a18(-0x12,-0x9b)](_0x138452,-0x5a);function _0x452758(_0x22ff08,_0x2ef4c1){return _0x69b9bf(_0x2ef4c1,_0x22ff08- -0x6af);}return _0x24d191=Math[_0x452758(-0xd3,-0x85)](_0x24d191,0x5a),Cesium[_0x452758(-0x169,-0x152)]['fromDegrees'](_0x57a948,_0x138452,_0xaa63f2,_0x24d191);}['_showHook'](_0x2d848c){function _0x3145dc(_0x354580,_0x28fbc0){return _0x69b9bf(_0x354580,_0x28fbc0- -0x10f);}function _0x59dfee(_0x2c9805,_0x5eef7e){return _0x69b9bf(_0x5eef7e,_0x2c9805- -0x770);}_0x2d848c?this[_0x3145dc(0x4bd,0x4f9)]():(this[_0x3145dc(0x4f5,0x4fc)]&&(this['options'][_0x3145dc(0x532,0x4d6)]=this['windData']),this[_0x59dfee(-0x133,-0x106)]());}['_mountedHook'](){function _0x37564b(_0x2a527e,_0x5b746d){return _0x16b89f(_0x5b746d,_0x2a527e-0x4a3);}function _0x1c7d20(_0x89e8b9,_0x1edf7b){return _0x16b89f(_0x89e8b9,_0x1edf7b-0x426);}this[_0x1c7d20(0x2f0,0x285)]['worker']?this['initWorker']():this[_0x1c7d20(0x277,0x256)]=new CanvasWindField(this[_0x37564b(0x302,0x392)]);}['_addedHook'](){this['canvas']=this[_0x19d51d(0x21e,0x24b)]();const _0x1f541e={};function _0x19d51d(_0x3d1197,_0x52ea66){return _0x69b9bf(_0x3d1197,_0x52ea66- -0x355);}_0x1f541e['willReadFrequently']=!![],this[_0x15fb80(-0x21,0x35)]=this['canvas']['getContext']('2d',_0x1f541e);function _0x15fb80(_0x1e99a7,_0x18a073){return _0x16b89f(_0x1e99a7,_0x18a073-0x15c);}this['bindEvent'](),this[_0x19d51d(0x1c5,0x20e)][_0x15fb80(0x32,0x3d)]&&this['setData'](this[_0x15fb80(-0x2c,-0x45)]['data']);}['_removedHook'](){function _0x57288d(_0x10f3eb,_0x51cb43){return _0x69b9bf(_0x51cb43,_0x10f3eb- -0x2d1);}this['clear'](),this[_0x134740(0x16d,0xf2)]();function _0x134740(_0x154003,_0x5af89c){return _0x16b89f(_0x5af89c,_0x154003-0x2f4);}this['canvas']&&(this[_0x57288d(0x293,0x306)]['container'][_0x57288d(0x311,0x369)](this[_0x134740(0x1ff,0x177)]),delete this['canvas']);}['_createCanvas'](){const _0x303566=mars3d__namespace[_0x23c270(0x476,0x463)]['create']('canvas','mars3d-canvasWind',this[_0x95c369(0x90,0xa9)][_0x23c270(0x557,0x5d3)]);function _0x23c270(_0x3f54f0,_0x1464ca){return _0x16b89f(_0x1464ca,_0x3f54f0-0x61c);}_0x303566['style']['position']='absolute',_0x303566[_0x95c369(0x8d,0xde)]['top']=_0x23c270(0x4d8,0x56c),_0x303566[_0x23c270(0x4b1,0x533)]['left']='0px',_0x303566['style']['width']=this['_map']['scene']['canvas'][_0x95c369(0x10f,0xcc)]+'px',_0x303566[_0x95c369(0x16a,0xde)]['height']=this['_map']['scene']['canvas'][_0x23c270(0x49a,0x428)]+'px';function _0x95c369(_0x14864f,_0x3107ba){return _0x69b9bf(_0x14864f,_0x3107ba- -0x4bb);}return _0x303566['style']['pointerEvents']=this['_pointerEvents']?'auto':'none',_0x303566['style']['zIndex']=this['options'][_0x95c369(0x5,0x88)]??0x9,_0x303566['width']=this[_0x23c270(0x47c,0x4a2)][_0x95c369(0x7b,0xae)]['canvas']['clientWidth'],_0x303566[_0x23c270(0x4af,0x42b)]=this['_map']['scene'][_0x23c270(0x527,0x5a1)]['clientHeight'],_0x303566;}['resize'](){function _0x59dfb4(_0x4ad95d,_0x378caa){return _0x16b89f(_0x378caa,_0x4ad95d- -0x66);}function _0x13e379(_0x59177e,_0x2ef0eb){return _0x69b9bf(_0x2ef0eb,_0x59177e- -0x1ab);}this[_0x13e379(0x464,0x461)]&&(this['canvas'][_0x59dfb4(-0x1d1,-0x20f)][_0x59dfb4(-0x1ac,-0x173)]=this[_0x59dfb4(-0x206,-0x20f)]['scene']['canvas']['clientWidth']+'px',this['canvas']['style'][_0x13e379(0x3ec,0x3ee)]=this['_map'][_0x13e379(0x3be,0x44a)]['canvas'][_0x13e379(0x3d7,0x370)]+'px',this[_0x59dfb4(-0x15b,-0x1c0)][_0x59dfb4(-0x1ac,-0x220)]=this['_map'][_0x59dfb4(-0x201,-0x1eb)]['canvas']['clientWidth'],this[_0x59dfb4(-0x15b,-0x147)]['height']=this[_0x13e379(0x3b9,0x403)]['scene']['canvas']['clientHeight']);}['bindEvent'](){const _0x3c3ceb=this;function _0x110bc9(_0x31672e,_0x2c6d79){return _0x69b9bf(_0x31672e,_0x2c6d79- -0x678);}let _0x18b580=Date['now']();(function _0x412533(){function _0x189964(_0x42306a,_0xf9fbe1){return _0xa5c5(_0xf9fbe1- -0xdd,_0x42306a);}if(_0x3c3ceb[_0x383036(0x201,0x1fb)])return;_0x3c3ceb[_0x189964(0x1f0,0x167)]=window[_0x383036(0x340,0x2c6)](_0x412533);function _0x383036(_0x122031,_0x4549ef){return _0xa5c5(_0x4549ef-0x62,_0x122031);}if(_0x3c3ceb['show']&&_0x3c3ceb['windField']){const _0x32d83e=Date[_0x189964(0x1c5,0x16f)](),_0x2872bd=_0x32d83e-_0x18b580;_0x2872bd>_0x3c3ceb[_0x189964(0x7e,0xdc)]&&(_0x18b580=_0x32d83e-_0x2872bd%_0x3c3ceb['frameTime'],_0x3c3ceb['update']());}}(),window['addEventListener']('resize',this['resize'][_0x46745b(0x35f,0x3d7)](this),![]),this['mouse_down']=![],this['mouse_move']=![]);function _0x46745b(_0x3b247b,_0x1d7e0a){return _0x16b89f(_0x3b247b,_0x1d7e0a-0x591);}this[_0x46745b(0x377,0x3f0)]['mouseHidden']&&(this['_map']['on'](mars3d__namespace[_0x110bc9(-0x73,-0x100)]['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x110bc9(0x37,-0x3d)],this[_0x110bc9(-0xb4,-0x13d)],this),this[_0x110bc9(-0xa4,-0x114)]['on'](mars3d__namespace['EventType'][_0x46745b(0x4c5,0x482)],this['_onMouseUpEvent'],this));}['unbindEvent'](){window[_0x457bf0(-0x138,-0xd6)](this['_animateFrame']);function _0x4d8c53(_0x1d4ee4,_0x552d15){return _0x69b9bf(_0x552d15,_0x1d4ee4- -0x667);}function _0x457bf0(_0x36deed,_0x41ffbd){return _0x69b9bf(_0x36deed,_0x41ffbd- -0x6ba);}delete this['_animateFrame'],window[_0x457bf0(-0x15b,-0xf2)](_0x4d8c53(-0x136,-0xd3),this['resize']),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x4d8c53(-0xef,-0xb3)]['wheel'],this[_0x457bf0(-0x5b,-0xa7)],this),this[_0x4d8c53(-0x103,-0x121)]['off'](mars3d__namespace[_0x457bf0(-0x11d,-0x142)]['mouseDown'],this[_0x457bf0(-0x1ba,-0x17f)],this),this[_0x457bf0(-0x1a6,-0x156)][_0x4d8c53(-0x99,-0xd6)](mars3d__namespace['EventType'][_0x4d8c53(-0x72,-0x80)],this['_onMouseUpEvent'],this),this[_0x4d8c53(-0x103,-0x83)][_0x457bf0(-0xb1,-0xec)](mars3d__namespace[_0x457bf0(-0x138,-0x142)][_0x4d8c53(-0x41,-0xc5)],this[_0x457bf0(-0x12e,-0xac)],this));}['_onMapWhellEvent'](_0x15961c){clearTimeout(this[_0x5d9d67(0x599,0x5aa)]);function _0x5d9d67(_0x1fe217,_0x260ae1){return _0x69b9bf(_0x260ae1,_0x1fe217-0x8);}if(!this['show']||!this['canvas'])return;this['canvas']['style']['visibility']='hidden',this['refreshTimer']=setTimeout(()=>{function _0x4265d1(_0x704a6c,_0x282535){return _0x5d9d67(_0x704a6c- -0x3f8,_0x282535);}if(!this['show'])return;this['redraw']();function _0x2cb946(_0x3f9ce5,_0x34b25a){return _0x5d9d67(_0x34b25a- -0x7aa,_0x3f9ce5);}this[_0x4265d1(0x21f,0x244)][_0x4265d1(0x1a9,0x1c4)]['visibility']=_0x2cb946(-0x1e2,-0x270);},0xc8);}['_onMouseDownEvent'](_0x1bcb8c){this[_0x430b78(0x4b0,0x537)]=!![];function _0x430b78(_0x15466d,_0x3b048e){return _0x16b89f(_0x3b048e,_0x15466d-0x5cb);}this['_map']['off'](mars3d__namespace[_0x3d34a5(0x105,0xa3)]['mouseMove'],this[_0x430b78(0x4d5,0x4b7)],this);function _0x3d34a5(_0x2732f5,_0x3fda76){return _0x69b9bf(_0x2732f5,_0x3fda76- -0x4d5);}this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x184ce8){if(!this['show']||!this['canvas'])return;function _0x2fa222(_0x513671,_0x528d75){return _0x16b89f(_0x513671,_0x528d75-0x5c9);}function _0x5aa01f(_0x4c987f,_0x131868){return _0x16b89f(_0x131868,_0x4c987f-0x30);}this[_0x5aa01f(-0xeb,-0xf4)]&&(this[_0x5aa01f(-0xc5,-0xf0)][_0x5aa01f(-0x13b,-0x180)]['visibility']=_0x5aa01f(-0x179,-0x142),this[_0x5aa01f(-0x102,-0xed)]=!![]);}[_0x16b89f(-0x10e,-0x196)](_0x4289f6){if(!this['show']||!this['canvas'])return;this[_0x309bf3(-0xfa,-0xb3)][_0x430ada(0x50f,0x4b4)](mars3d__namespace['EventType'][_0x430ada(0x4b9,0x50c)],this[_0x309bf3(-0x50,-0x7f)],this);function _0x430ada(_0x483ef5,_0x59ad36){return _0x69b9bf(_0x483ef5,_0x59ad36- -0x11a);}this[_0x430ada(0x4e3,0x4cf)]&&this[_0x430ada(0x52d,0x4b8)]&&this['redraw']();this['canvas'][_0x309bf3(-0xc5,-0xb1)]['visibility']='visible';function _0x309bf3(_0x535c0a,_0xda6dce){return _0x16b89f(_0xda6dce,_0x535c0a-0xa6);}this['mouse_down']=![],this['mouse_move']=![];}['setData'](_0x2249d3){function _0x5c8f3b(_0x194957,_0x1ba7c2){return _0x16b89f(_0x194957,_0x1ba7c2-0x6c1);}this[_0xee1302(-0x78,0x18)](),this[_0x5c8f3b(0x5d9,0x5c8)]=_0x2249d3;function _0xee1302(_0x4ce010,_0x58ffe9){return _0x16b89f(_0x58ffe9,_0x4ce010-0x163);}this[_0xee1302(-0x6d,-0xf6)][_0xee1302(0x97,0xcc)](_0x2249d3),this['redraw']();}['redraw'](){function _0x3954a5(_0x6b4151,_0x3e285d){return _0x69b9bf(_0x6b4151,_0x3e285d- -0x37a);}if(!this[_0x3954a5(0x338,0x2b7)])return;function _0x3519fe(_0x34f199,_0x10aa0e){return _0x69b9bf(_0x10aa0e,_0x34f199- -0x568);}this['windField']['setOptions'](this[_0x3519fe(-0x5,-0x7c)]),this['update']();}['update'](){function _0x57c473(_0x50364f,_0x2308a3){return _0x16b89f(_0x50364f,_0x2308a3-0x237);}if(this['_updateIng'])return;this['_updateIng']=!![];function _0x5e8363(_0xf79b21,_0x102a75){return _0x16b89f(_0xf79b21,_0x102a75-0x286);}if(this['worker'])this[_0x5e8363(0x102,0xb6)]['update']();else{const _0x5f0551=this['windField'][_0x57c473(0x9f,0x10e)]();this[_0x5e8363(0x158,0x14b)](_0x5f0551);}this[_0x5e8363(0x1bd,0x172)]=![];}[_0x69b9bf(0x60f,0x5c9)](_0x39e099){this['_canvasParticles']=_0x39e099,this[_0x510cef(0xaf,0xb7)][_0xc0d3dc(0x296,0x20f)]='destination-in',this['canvasContext'][_0x510cef(0xac,0x10f)](0x0,0x0,this['canvasWidth'],this[_0x510cef(0x9e,0x61)]),this[_0x510cef(0xaf,0x33)][_0xc0d3dc(0x296,0x243)]=_0x510cef(0x2c,0x58);function _0xc0d3dc(_0x57222f,_0xfcc872){return _0x69b9bf(_0xfcc872,_0x57222f- -0x36e);}function _0x510cef(_0x24cedd,_0x4bf772){return _0x16b89f(_0x4bf772,_0x24cedd-0x1d6);}this['canvasContext']['globalAlpha']=0.9;const _0x244b27=this['_map']['scene']['mode']!==Cesium['SceneMode']['SCENE3D'],_0x3d3c1=this[_0xc0d3dc(0x235,0x1b4)]*0.25;if(this[_0x510cef(0xba,0x78)])for(let _0x1ec91d=0x0,_0x28859e=_0x39e099['length'];_0x1ec91d<_0x28859e;_0x1ec91d++){const _0x459152=_0x39e099[_0x1ec91d],_0x560fd7=this['_tomap'](_0x459152,_0x459152[_0xc0d3dc(0x22e,0x279)],_0x459152['lat'],_0x459152[_0x510cef(0xc1,0x14c)]),_0x55e154=this['_tomap'](_0x459152,_0x459152['tlng'],_0x459152['tlat'],_0x459152[_0x510cef(0x97,0xaf)]);if(!_0x560fd7||!_0x55e154)continue;if(_0x244b27&&Math['abs'](_0x560fd7[0x0]-_0x55e154[0x0])>=_0x3d3c1)continue;this['canvasContext'][_0xc0d3dc(0x254,0x257)](),this['canvasContext']['lineWidth']=this[_0x510cef(0x22,-0x23)],this['canvasContext']['strokeStyle']=this['_colorRamp'][_0xc0d3dc(0x1cf,0x1f9)](_0x459152['speed']),this['canvasContext']['moveTo'](_0x560fd7[0x0],_0x560fd7[0x1]),this['canvasContext'][_0xc0d3dc(0x210,0x1ff)](_0x55e154[0x0],_0x55e154[0x1]),this['canvasContext'][_0xc0d3dc(0x1c9,0x1da)]();}else{this['canvasContext'][_0x510cef(0x94,0x20)](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0xc0d3dc(0x26f,0x2fc)]['strokeStyle']=this[_0xc0d3dc(0x2bc,0x285)];for(let _0x582f64=0x0,_0x4d23b6=_0x39e099['length'];_0x582f64<_0x4d23b6;_0x582f64++){const _0x2e843e=_0x39e099[_0x582f64],_0x52b4ab=this['_tomap'](_0x2e843e,_0x2e843e['lng'],_0x2e843e['lat'],_0x2e843e['alt']),_0x2ad3ac=this['_tomap'](_0x2e843e,_0x2e843e['tlng'],_0x2e843e['tlat'],_0x2e843e[_0x510cef(0x97,0x31)]);if(!_0x52b4ab||!_0x2ad3ac)continue;if(_0x244b27&&Math[_0xc0d3dc(0x220,0x26a)](_0x52b4ab[0x0]-_0x2ad3ac[0x0])>=_0x3d3c1)continue;this[_0xc0d3dc(0x26f,0x2fe)]['moveTo'](_0x52b4ab[0x0],_0x52b4ab[0x1]),this['canvasContext']['lineTo'](_0x2ad3ac[0x0],_0x2ad3ac[0x1]);}this['canvasContext'][_0xc0d3dc(0x1c9,0x231)]();}}[_0x16b89f(-0x112,-0x14c)](_0x5125ea,_0x2d47b7,_0x381727,_0x3892d0){function _0x2f9edd(_0x444f2a,_0x2d857a){return _0x69b9bf(_0x2d857a,_0x444f2a- -0x6e3);}const _0x1b1451=Cesium[_0x2f9edd(-0x18b,-0x139)]['fromDegrees'](_0x2d47b7,_0x381727,_0x3892d0??this['fixedHeight']),_0xa12b2f=this['_map']['scene'];if(_0xa12b2f[_0x2f9edd(-0x19f,-0x167)]===Cesium[_0x2dd83f(0x1f6,0x203)]['SCENE3D']){const _0x40eab4=new Cesium['EllipsoidalOccluder'](_0xa12b2f['globe']['ellipsoid'],_0xa12b2f[_0x2dd83f(0x1f1,0x270)][_0x2f9edd(-0x14f,-0x12d)]),_0x10b295=_0x40eab4['isPointVisible'](_0x1b1451);if(!_0x10b295)return _0x5125ea[_0x2dd83f(0x22d,0x20b)]=0x0,null;}function _0x2dd83f(_0x7e3f3,_0xe1afbd){return _0x16b89f(_0x7e3f3,_0xe1afbd-0x35c);}const _0x110f5d=mars3d__namespace[_0x2dd83f(0x1b7,0x1ed)][_0x2dd83f(0x2c8,0x25d)](this[_0x2f9edd(-0x17f,-0x1c3)]['scene'],_0x1b1451);return _0x110f5d?[_0x110f5d['x'],_0x110f5d['y']]:null;}['clear'](){function _0x53e0af(_0x387e72,_0xce8da3){return _0x16b89f(_0xce8da3,_0x387e72-0x612);}this['windField']['clear'](),delete this[_0x53e0af(0x519,0x495)];}[_0x69b9bf(0x635,0x5fe)](){function _0x49ee25(_0x4b4c4f,_0x2efc86){return _0x16b89f(_0x4b4c4f,_0x2efc86-0x24f);}this['worker']=new Worker(this[_0x372d32(0x7a,0x3c)][_0x372d32(0xd6,0x101)]),this['worker']['onmessage']=_0x20c3f2=>{function _0xa30f71(_0x289930,_0x4ff2a4){return _0x372d32(_0x289930- -0x9f,_0x4ff2a4);}this[_0x5578f0(0x3b0,0x3b5)](_0x20c3f2['data'][_0xa30f71(-0x46,-0x4e)]);function _0x5578f0(_0x543c89,_0x255cbc){return _0x372d32(_0x543c89-0x2d0,_0x255cbc);}this['_updateIng2']=![];};function _0x372d32(_0x52c139,_0x17e019){return _0x16b89f(_0x17e019,_0x52c139-0x21b);}this[_0x372d32(0x4b,0x38)]={'init':_0x81185e=>{const _0x344d66={};_0x344d66[_0x28c2a7(0x477,0x4af)]=_0x26f15e(0xe2,0xc9);function _0x26f15e(_0x2bbada,_0x49f06a){return _0x49ee25(_0x2bbada,_0x49f06a- -0xb0);}_0x344d66['options']=_0x81185e;function _0x28c2a7(_0x2a9b29,_0x1fa61e){return _0x49ee25(_0x1fa61e,_0x2a9b29-0x382);}this['worker']['postMessage'](_0x344d66);},'setOptions':_0x1f715d=>{const _0x6eb745={};function _0x45ce52(_0x178dac,_0x1cbe0a){return _0x372d32(_0x1cbe0a-0x474,_0x178dac);}_0x6eb745[_0x45ce52(0x58d,0x535)]='setOptions',_0x6eb745['options']=_0x1f715d;function _0x4beb90(_0x425367,_0x206098){return _0x49ee25(_0x206098,_0x425367-0x155);}this[_0x45ce52(0x516,0x54a)][_0x4beb90(0x1cc,0x166)](_0x6eb745);},'setDate':_0x3438a2=>{const _0x215c56={};_0x215c56[_0x3123e6(0xbd,0x13d)]=_0x58973b(0x228,0x22c);function _0x3123e6(_0x35365d,_0x3ef2a6){return _0x49ee25(_0x35365d,_0x3ef2a6-0x48);}function _0x58973b(_0x4f56db,_0x260001){return _0x49ee25(_0x4f56db,_0x260001-0xa9);}_0x215c56['data']=_0x3438a2,this[_0x58973b(0x1df,0x1b3)][_0x3123e6(0x7f,0xbf)](_0x215c56);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x4dd1ec={};_0x4dd1ec['type']=_0x4f282c(-0x171,-0x200);function _0x2e9cd3(_0x15a166,_0x1e387b){return _0x372d32(_0x15a166-0x442,_0x1e387b);}function _0x4f282c(_0x74a1c0,_0xfd1ba7){return _0x372d32(_0x74a1c0- -0x28a,_0xfd1ba7);}this['worker'][_0x2e9cd3(0x485,0x4f2)](_0x4dd1ec);},'clear':()=>{const _0x5c3070={};_0x5c3070['type']='clear',this['worker']['postMessage'](_0x5c3070);}},this['windField']['init'](this['options']);}}mars3d__namespace[_0x69b9bf(0x641,0x5af)][_0x16b89f(-0xe8,-0xc2)]('canvasWind',CanvasWindLayer),mars3d__namespace[_0x16b89f(-0x14c,-0x101)][_0x69b9bf(0x64a,0x625)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log']['logInfo'](_0x16b89f(-0xcb,-0x13a)+version+'\x20\x20\x20\x20编译日期:'+buildTime),mars3d__namespace[_0x16b89f(-0x16d,-0x147)]=WindUtil,exports[_0x16b89f(-0xb7,-0x140)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x69b9bf(0x6b3,0x62d)]=WindLayer,exports['WindUtil']=WindUtil;const _0x379bbb={};_0x379bbb['value']=!![],Object[_0x69b9bf(0x54b,0x5bb)](exports,_0x16b89f(-0xfc,-0x178),_0x379bbb);
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.10.
|
|
3
|
+
"version": "3.10.10",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.10.
|
|
8
|
+
"mars3d": "~3.10.10"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|