mars3d-wind 3.11.7 → 3.11.8
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.11.
|
|
5
|
-
* 编译日期:2026-
|
|
4
|
+
* 版本信息:v3.11.8
|
|
5
|
+
* 编译日期:2026-10-15 18:59
|
|
6
6
|
* 版权所有:Copyright by http://mars3d.cn
|
|
7
7
|
* 使用单位:免费公开版 ,2026-02-01
|
|
8
8
|
*/
|
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
|
|
12
12
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
|
|
13
13
|
})(this, (function (exports, mars3d) {
|
|
14
|
-
'use strict';(function(_0x499b15,_0x1cc682){function _0x5d054b(_0x4bf9c3,_0x3fd953){return _0x4bf2(_0x4bf9c3-0x213,_0x3fd953);}function _0x4e7f58(_0x23b134,_0xde2087){return _0x4bf2(_0xde2087-0x1f0,_0x23b134);}const _0x51d3de=_0x499b15();while(!![]){try{const _0x283ef9=parseInt(_0x4e7f58(0x2aa,0x324))/0x1+-parseInt(_0x4e7f58(0x379,0x30d))/0x2+-parseInt(_0x4e7f58(0x3b5,0x33e))/0x3*(-parseInt(_0x4e7f58(0x28d,0x2d7))/0x4)+parseInt(_0x4e7f58(0x2bb,0x28f))/0x5*(parseInt(_0x4e7f58(0x315,0x36a))/0x6)+-parseInt(_0x5d054b(0x34b,0x346))/0x7+-parseInt(_0x5d054b(0x362,0x3ee))/0x8*(-parseInt(_0x4e7f58(0x2e3,0x2f4))/0x9)+-parseInt(_0x4e7f58(0x341,0x371))/0xa*(parseInt(_0x5d054b(0x328,0x304))/0xb);if(_0x283ef9===_0x1cc682)break;else _0x51d3de['push'](_0x51d3de['shift']());}catch(_0x3f0f01){_0x51d3de['push'](_0x51d3de['shift']());}}}(_0x7910,0x2ae43));function _interopNamespace(_0x57a858){if(_0x57a858&&_0x57a858[_0xc1dc87(0x88,0x9b)])return _0x57a858;var _0x5e2034=Object['create'](null);_0x57a858&&Object['keys'](_0x57a858)['forEach'](function(_0x9b5b31){function _0x1a04fe(_0x5ee6ac,_0x6ebd34){return _0xc1dc87(_0x5ee6ac- -0xde,_0x6ebd34);}function _0x4e7d82(_0x50b03d,_0x4e0138){return _0xc1dc87(_0x50b03d-0x1a1,_0x4e0138);}if(_0x9b5b31!==_0x1a04fe(-0x1e,-0x13)){var _0x3a5a5c=Object['getOwnPropertyDescriptor'](_0x57a858,_0x9b5b31);Object['defineProperty'](_0x5e2034,_0x9b5b31,_0x3a5a5c[_0x1a04fe(-0xea,-0xde)]?_0x3a5a5c:{'enumerable':!![],'get':function(){return _0x57a858[_0x9b5b31];}});}});function _0xc1dc87(_0x34d01d,_0x462a3e){return _0x4bf2(_0x34d01d- -0xc2,_0x462a3e);}return _0x5e2034['default']=_0x57a858,_0x5e2034;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x27f0b3(0xa5,0x122)];function getU(_0x5a07da,_0x2af79a){function _0x356e96(_0x166a36,_0x3422e9){return _0x27f0b3(_0x166a36,_0x3422e9- -0x25b);}const _0x1c6b49=_0x5a07da*Math['cos'](Cesium$2[_0x356e96(-0x179,-0x11a)]['toRadians'](_0x2af79a));return _0x1c6b49;}function getV(_0x43cec7,_0xe69e42){function _0x5eb10c(_0x2e0e55,_0x1d04c5){return _0x27f0b3(_0x1d04c5,_0x2e0e55- -0x174);}function _0x2de66d(_0x316e39,_0x40e1ca){return _0x27f0b3(_0x316e39,_0x40e1ca-0x59);}const _0x3f7bb7=_0x43cec7*Math['sin'](Cesium$2[_0x2de66d(0x1f9,0x19a)][_0x5eb10c(0x14,0x42)](_0xe69e42));return _0x3f7bb7;}function getSpeed(_0x4df301,_0x38d40a){function _0x253265(_0x52b04b,_0x1d4ff0){return _0x27f0b3(_0x52b04b,_0x1d4ff0-0x231);}function _0xaacafa(_0x3c1200,_0x4089eb){return _0x27f0b3(_0x4089eb,_0x3c1200-0x6a);}const _0x5d662a=Math[_0x253265(0x3b2,0x352)](Math[_0xaacafa(0x183,0x1da)](_0x4df301,0x2)+Math['pow'](_0x38d40a,0x2));return _0x5d662a;}function _0x27f0b3(_0x4a9673,_0x1d1bf1){return _0x4bf2(_0x1d1bf1-0x41,_0x4a9673);}function getDirection(_0x4faaa5,_0x37df55){let _0x18bca8=Cesium$2['Math']['toDegrees'](Math['atan2'](_0x37df55,_0x4faaa5));return _0x18bca8+=_0x18bca8<0x0?0x168:0x0,_0x18bca8;}const _0x1ba0e8={};_0x1ba0e8['__proto__']=null,_0x1ba0e8['getU']=getU,_0x1ba0e8['getV']=getV,_0x1ba0e8['getSpeed']=getSpeed,_0x1ba0e8[_0x12db03(0x411,0x3f5)]=getDirection;var WindUtil=_0x1ba0e8;const version='3.11.7',buildTime=_0x27f0b3(0xec,0x11d);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='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader='#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[_0x12db03(0x3e7,0x40b)];function _0x7910(){const _0x27adca=['north','segments','_animateFrame','sqrt','Cesium','mouseUp','rawRenderState','displayRange','zIndex','array','4GelANp','depthMask','toDegrees','camera','random','LayerUtil','windData','NEAREST','dropRateBump','left','lineWidth','maxAge','fixedHeight','_onMouseDownEvent','computing','off','attributeLocations','values','bind','useViewerBounds','_onMouseMoveEvent','_bilinearInterpolation','_calcUV','createRenderingTextures','cancelAnimationFrame','Math','#ffffff','moveTo','frameTime','35271mdwZTw','initWorker','uniformMap','options','container','primitiveType','createParticlesTextures','getDirection','push','fromDegrees','getUpdatePositionShader','layer','createComputingPrimitives','addEventListener','postProcessingPosition','Cartesian2','OPAQUE','418561AEdNrG','windTextures','data','quietPeriod','textures','processWindData','_map','WindUtil','589724UAjdCH','rectangle','height','getParticles','speed','width','SCENE3D','Compute','setData','particles','BaseLayer','redraw','ymax','preExecute','setDate','vertexShaderSource','isDynamic','slice','context','bounds','logInfo','dropRate','morphComplete','305227kaiVUt','forEach','min','_removedHook','369397yoTwQz','create','updateWindData','createWindTextures','commandList','_setOptionsHook','createRawRenderState','_colorRamp','commandType','frameRateAdjustment','abs','destroy','windField','owner','visible','toRadians','min\x20is\x20undefined,\x20calculate\x20min','pixelDatatype','__esModule','mouse_down','none','getPrimitives','106131ZhUBTn','40oHTIJG','now','dynamic','ellipsoid','getColor','onParticlesTextureSizeChange','FLOAT','initFrameRate','getUVByXY','_drawLines','rendering','south','vdata','segmentsColor','stroke','sources','show','isDestroy','tlng','enabled','createSegmentsGeometry','colors','canvasWidth','particlesTextures','viewport','STATIC_DRAW','_onMouseUpEvent','particlesSpeed','_createCanvas','updateViewerParameters','primitives','floor','framebuffer','type','_onMapWhellEvent','domain','style','steps','lighter','mode','Unknown\x20command\x20type','outputTexture','shaderProgram','1056wGfnkt','speedRate','sceneMode','clearFramebuffers','udata','_calc_speedRate','autoClear','10hPXUNE','default','_randomParticle','bindEvent','createColorTableTexture','pass','resize','flipY','color','blending','Cartesian3','currentParticlesPosition','getDataAtLonLat','_speedRate','globe','xmin','mars3d-wind插件注册成功\x20\x20\x20\x20\x20版本:','particleSystem','mouse_move','tlat','WindLayer','particlesNumber','updateOptions','pixelFormat','DEPTH_COMPONENT','cols','longitude','0px','pixelSize','object','_mountedHook','age','fragmentShaderSource','magnificationFilter','lng','pointer-events','grid','ymin','west','viewerParameters','worker','latRange','canvasContext','particlesTextureSize','fromGeometry','setOptions','top','mouseHidden','getDefaultRenderState','east','clientHeight','_pointerEvents','clear','refreshTimer','toGridXY','segmentsDepth','_addedHook','5715kzSkbG','hidden','LINEAR','length','getContext','onmessage','componentsPerAttribute','EventType','clientWidth','_tomap','umax','removeEventListener','mouseMove','scene','lat','reCreateWindTextures','_updateIng','wheel','interpolated','xmax','CLAMP_TO_EDGE','red','MIN_VALUE','get','warn','getPostProcessingPositionShader','destroyParticlesTextures','globalCompositeOperation','rows','geometry','changeOptions','max','stringify','commandToExecute','\x20\x20\x20\x20编译日期:','nextParticlesPosition','log','_canrefresh','fillRect','bufferUsage','frameState.commandList\x20is\x20undefined','strokeStyle','RGBA','percentageChanged','prototype','unbindEvent','drawingBufferWidth','lineLength','colorTable','pointerEvents','destination-in','clearCommand','onColorTableChange','vertexArray','TRIANGLES','Rectangle','canvas','pow','previousParticlesPosition','drawingBufferHeight','visibility','2026-09-17\x2011:31'];_0x7910=function(){return _0x27adca;};return _0x7910();}class ShaderManager{static['getCalculateSpeedShader'](){const _0x3f58bb={};function _0x5ae193(_0x580683,_0x10b95b){return _0x27f0b3(_0x10b95b,_0x580683-0xea);}return _0x3f58bb[_0x5ae193(0x289,0x30e)]=[calculateSpeedShader],new ShaderSource$1(_0x3f58bb);}static[_0x27f0b3(0x159,0x14f)](){function _0x484271(_0x3968bb,_0x4ab91f){return _0x27f0b3(_0x3968bb,_0x4ab91f-0x33f);}const _0x2b15d7={};return _0x2b15d7[_0x484271(0x494,0x4de)]=[updatePositionShader],new ShaderSource$1(_0x2b15d7);}static['getSegmentDrawVertexShader'](){const _0x5389ee={};_0x5389ee[_0x48a20b(-0xc2,-0xdd)]=[renderParticlesVertexShader];function _0x48a20b(_0x2a04f9,_0x56945c){return _0x27f0b3(_0x56945c,_0x2a04f9- -0x261);}return new ShaderSource$1(_0x5389ee);}static['getSegmentDrawFragmentShader'](){const _0x17e774={};return _0x17e774['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x17e774);}static[_0x27f0b3(0x141,0xf9)](){const _0x336a9b={};return _0x336a9b['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x336a9b);}}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(_0x39c74e){this[_0x2a0fac(0x3c7,0x3e5)]=_0x39c74e[_0x1ac577(0x361,0x3cb)],this[_0x2a0fac(0x3a8,0x361)]=_0x39c74e['geometry'],this['attributeLocations']=_0x39c74e[_0x1ac577(0x3f9,0x382)],this['primitiveType']=_0x39c74e['primitiveType'],this[_0x2a0fac(0x335,0x3ab)]=_0x39c74e['uniformMap']||{},this['vertexShaderSource']=_0x39c74e[_0x1ac577(0x3eb,0x3b7)];function _0x1ac577(_0x4db000,_0xeb614a){return _0x27f0b3(_0x4db000,_0xeb614a-0x24a);}this['fragmentShaderSource']=_0x39c74e['fragmentShaderSource'],this[_0x1ac577(0x2ed,0x36e)]=_0x39c74e['rawRenderState'],this[_0x1ac577(0x386,0x3fa)]=_0x39c74e[_0x1ac577(0x374,0x3fa)],this['outputTexture']=_0x39c74e['outputTexture'],this['autoClear']=_0x39c74e[_0x1ac577(0x3c6,0x40b)]??![],this['preExecute']=_0x39c74e[_0x1ac577(0x374,0x3b5)];function _0x2a0fac(_0x429136,_0x30110a){return _0x27f0b3(_0x429136,_0x30110a-0x264);}this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this[_0x1ac577(0x34b,0x3b8)]=_0x39c74e['isDynamic']??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0x1ac577(0x416,0x39f)]}));}['createCommand'](_0xc5180){function _0x4f7bda(_0x193179,_0x2de081){return _0x12db03(_0x2de081-0x91,_0x193179);}function _0x51d833(_0x3daa73,_0x120db5){return _0x12db03(_0x3daa73- -0x14b,_0x120db5);}if(this[_0x4f7bda(0x4b9,0x4d7)]==='Draw'){const _0x49c762={};_0x49c762['context']=_0xc5180,_0x49c762[_0x4f7bda(0x3e2,0x453)]=this[_0x4f7bda(0x40b,0x453)],_0x49c762['attributeLocations']=this['attributeLocations'],_0x49c762[_0x4f7bda(0x4b8,0x45d)]=BufferUsage$1['STATIC_DRAW'];const _0x47d2b1=VertexArray$1[_0x51d833(0x368,0x33f)](_0x49c762),_0x36fbba={};_0x36fbba['context']=_0xc5180,_0x36fbba['vertexShaderSource']=this[_0x4f7bda(0x529,0x4c3)],_0x36fbba['fragmentShaderSource']=this[_0x4f7bda(0x55d,0x538)],_0x36fbba[_0x4f7bda(0x4cd,0x48e)]=this['attributeLocations'];const _0x27bbd6=ShaderProgram['fromCache'](_0x36fbba),_0x2c89f2=RenderState['fromCache'](this['rawRenderState']),_0x2d4488={};return _0x2d4488['owner']=this,_0x2d4488['vertexArray']=_0x47d2b1,_0x2d4488['primitiveType']=this[_0x51d833(0x2c4,0x252)],_0x2d4488['modelMatrix']=Matrix4['IDENTITY'],_0x2d4488['renderState']=_0x2c89f2,_0x2d4488[_0x4f7bda(0x4af,0x510)]=_0x27bbd6,_0x2d4488[_0x51d833(0x32a,0x325)]=this[_0x4f7bda(0x581,0x506)],_0x2d4488[_0x4f7bda(0x4a5,0x49d)]=this[_0x4f7bda(0x42c,0x49d)],_0x2d4488[_0x51d833(0x341,0x383)]=Pass$1[_0x4f7bda(0x4d4,0x4ab)],new DrawCommand(_0x2d4488);}else{if(this['commandType']==='Compute'){const _0x15ad61={};return _0x15ad61[_0x4f7bda(0x493,0x4dc)]=this,_0x15ad61['fragmentShaderSource']=this[_0x51d833(0x35c,0x2eb)],_0x15ad61['uniformMap']=this[_0x4f7bda(0x42c,0x49d)],_0x15ad61[_0x4f7bda(0x55b,0x50f)]=this['outputTexture'],_0x15ad61['persists']=!![],new ComputeCommand(_0x15ad61);}else throw new Error(_0x4f7bda(0x4d7,0x50e));}}['setGeometry'](_0x4d46d2,_0x5de1db){this['geometry']=_0x5de1db;function _0x2847a3(_0x421519,_0x22ae0c){return _0x12db03(_0x22ae0c- -0x2d3,_0x421519);}function _0x34351a(_0xb02b7f,_0x49c47e){return _0x12db03(_0x49c47e-0xd1,_0xb02b7f);}defined(this[_0x2847a3(0xd0,0xf3)])&&(this['commandToExecute'][_0x34351a(0x45b,0x4ab)]=VertexArray$1['fromGeometry']({'context':_0x4d46d2,'geometry':this['geometry'],'attributeLocations':this[_0x2847a3(0x100,0x12a)],'bufferUsage':BufferUsage$1[_0x2847a3(0x1f8,0x19b)]}));}['update'](_0x7fe123){function _0x3876c8(_0x18d680,_0x3a0aba){return _0x12db03(_0x3a0aba- -0x3de,_0x18d680);}function _0x48abe2(_0x11478a,_0x3b1c00){return _0x27f0b3(_0x3b1c00,_0x11478a-0x34d);}if(!this['isDynamic']())return;if(!this[_0x3876c8(0xcf,0x87)]||!defined(_0x7fe123))return;!defined(this[_0x48abe2(0x44e,0x43b)])&&(this['commandToExecute']=this['createCommand'](_0x7fe123[_0x48abe2(0x4bd,0x4bc)]));defined(this['preExecute'])&&this[_0x3876c8(0x2f,0x52)]();if(!_0x7fe123[_0x3876c8(0xb7,0x64)]){console[_0x48abe2(0x445,0x49f)](_0x48abe2(0x455,0x3f0));return;}defined(this[_0x3876c8(0x85,-0x6)])&&_0x7fe123['commandList']['push'](this['clearCommand']),defined(this['commandToExecute'])&&_0x7fe123['commandList'][_0x3876c8(0x86,0x34)](this['commandToExecute']);}['isDestroyed'](){return![];}[_0x12db03(0x449,0x46e)](){function _0x3fac16(_0x1177c2,_0x32905f){return _0x27f0b3(_0x1177c2,_0x32905f-0x2a2);}function _0xf536f4(_0x527e6c,_0x28b233){return _0x12db03(_0x527e6c- -0x5f8,_0x28b233);}if(defined(this['commandToExecute'])){var _0x191917;(_0x191917=this['commandToExecute'][_0xf536f4(-0x179,-0x128)])===null||_0x191917===void 0x0||_0x191917['destroy'](),this[_0xf536f4(-0x232,-0x283)][_0x3fac16(0x463,0x45c)]=undefined;}return destroyObject(this);}}function deepMerge(_0x767ad7,_0x5b91dd){if(!_0x767ad7)return _0x5b91dd;function _0xc00ef4(_0x593276,_0x407568){return _0x27f0b3(_0x407568,_0x593276-0x345);}function _0x474806(_0x146d35,_0x46133b){return _0x12db03(_0x46133b-0x41,_0x146d35);}if(!_0x5b91dd)return _0x767ad7;const _0x45602b={..._0x5b91dd},_0xd414fe=_0x45602b;for(const _0x15ca63 in _0x767ad7){if(Object[_0xc00ef4(0x451,0x416)]['hasOwnProperty']['call'](_0x767ad7,_0x15ca63)){const _0x103544=_0x767ad7[_0x15ca63],_0x5076a4=_0x5b91dd[_0x15ca63];if(Array['isArray'](_0x103544)){_0xd414fe[_0x15ca63]=_0x103544[_0x474806(0x3eb,0x475)]();continue;}if(_0x103544&&typeof _0x103544===_0x474806(0x500,0x4e5)){_0xd414fe[_0x15ca63]=deepMerge(_0x103544,_0x5076a4||{});continue;}_0x103544!==undefined&&(_0xd414fe[_0x15ca63]=_0x103544);}}return _0xd414fe;}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[_0x12db03(0x3e7,0x3f3)];class WindParticlesComputing{constructor(_0x138979,_0x24d1c1,_0x5956c4,_0x510c37,_0x1536c2){this[_0x4d8e57(-0x27,0xd)]=_0x138979,this['options']=_0x5956c4,this['viewerParameters']=_0x510c37,this['windData']=_0x24d1c1;function _0x4d8e57(_0x5729b7,_0x16ea88){return _0x27f0b3(_0x5729b7,_0x16ea88- -0x163);}this['frameRate']=0x3c,this[_0x4d8e57(-0x3f,0x1f)]=0x1;const _0xbf3092={};_0xbf3092['scene']=_0x1536c2,_0xbf3092['samplingWindow']=0x1,_0xbf3092[_0x4d8e57(0x41,-0xa)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0xbf3092);function _0x574d4b(_0x1fe489,_0x2836d2){return _0x12db03(_0x2836d2-0xd6,_0x1fe489);}this['initFrameRate'](),this[_0x574d4b(0x4db,0x517)](),this['createParticlesTextures'](),this[_0x4d8e57(0x49,-0x12)]();}[_0x12db03(0x45c,0x410)](){function _0x368361(_0x19c05a,_0x89583b){return _0x27f0b3(_0x19c05a,_0x89583b- -0xa7);}const _0x51d7e5=()=>{function _0x163c49(_0x16a43b,_0x152fd2){return _0x4bf2(_0x16a43b-0x1af,_0x152fd2);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this[_0x163c49(0x2f0,0x309)]=0x3c/Math['max'](this['frameRate'],0x1));};_0x51d7e5();const _0x500172=setInterval(_0x51d7e5,0x3e8),_0x1001bb=this['destroy']['bind'](this);this[_0x368361(0x110,0xdd)]=()=>{clearInterval(_0x500172),_0x1001bb();};}[_0x27f0b3(0x1e7,0x17c)](){function _0x387ec7(_0x3603a9,_0x1fd50d){return _0x12db03(_0x3603a9- -0x33f,_0x1fd50d);}const _0x480d16={};function _0x5ef9df(_0xfdfde,_0x322f3d){return _0x27f0b3(_0xfdfde,_0x322f3d-0xbb);}_0x480d16['minificationFilter']=TextureMinificationFilter$1[_0x5ef9df(0x215,0x19d)],_0x480d16[_0x5ef9df(0x29c,0x29e)]=TextureMagnificationFilter$1[_0x387ec7(0x68,0x28)];const _0x1c820e={'context':this['context'],'width':this['windData']['width'],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x5ef9df(0x25a,0x203)]['flipY']??![],'sampler':new Sampler$1(_0x480d16)};this['windTextures']={'U':new Texture$1({..._0x1c820e,'source':{'arrayBufferView':new Float32Array(this['windData']['u'][_0x387ec7(0xad,0xc0)])}}),'V':new Texture$1({..._0x1c820e,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x1609e2={};function _0xfa7506(_0x396a45,_0x3f07a4){return _0x27f0b3(_0x3f07a4,_0x396a45- -0x231);}_0x1609e2['minificationFilter']=TextureMinificationFilter$1[_0x5ad576(0x3f2,0x3c6)],_0x1609e2['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];function _0x5ad576(_0x5f0243,_0xf5cdf8){return _0x12db03(_0xf5cdf8- -0x2e,_0x5f0243);}const _0x2337ec={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this[_0xfa7506(-0xe9,-0x9f)]['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0xfa7506(-0x127,-0x172)],'pixelDatatype':PixelDatatype$1[_0xfa7506(-0x9b,-0x34)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options'][_0xfa7506(-0x44,-0xd0)]*this[_0x5ad576(0x3f0,0x3df)][_0x5ad576(0x4bd,0x484)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x1609e2)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x2337ec),'currentParticlesPosition':new Texture$1(_0x2337ec),'nextParticlesPosition':new Texture$1(_0x2337ec),'postProcessingPosition':new Texture$1(_0x2337ec),'particlesSpeed':new Texture$1(_0x2337ec)};}['destroyParticlesTextures'](){function _0x3a6816(_0x685ece,_0x4fc57f){return _0x27f0b3(_0x685ece,_0x4fc57f-0x14d);}Object['values'](this[_0x3a6816(0x2c9,0x2f4)])['forEach'](_0x53c1bd=>_0x53c1bd['destroy']());}['createComputingPrimitives'](){function _0x2d9c37(_0x396b04,_0x25f012){return _0x12db03(_0x396b04- -0x546,_0x25f012);}function _0x2e9157(_0x5c2248,_0x36da45){return _0x12db03(_0x36da45- -0x4b8,_0x5c2248);}this[_0x2d9c37(-0xd3,-0xa8)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this['windData']['u'][_0x2e9157(-0x12e,-0xf4)]),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this[_0x2d9c37(-0x153,-0x159)][_0x2d9c37(-0x11f,-0xb0)][_0x2e9157(-0x2f,-0x7c)],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{return(this['viewerParameters']['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData'][_0x2d9c37(-0x11e,-0xb7)],this['windData']['height']),'minimum':()=>new Cartesian2$1(this['windData'][_0x2d9c37(-0x110,-0x18d)][_0x2d9c37(-0x99,-0x2c)],this['windData']['bounds'][_0x2d9c37(-0xe6,-0x6a)]),'maximum':()=>new Cartesian2$1(this[_0x2e9157(-0x102,-0xc5)][_0x2e9157(-0x72,-0x82)]['east'],this['windData'][_0x2d9c37(-0x110,-0x187)]['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures'][_0x2e9157(0x3a,-0x48)],'preExecute':()=>{const _0x160620=this['particlesTextures'][_0x5a0658(-0x1c6,-0x146)];this['particlesTextures']['previousParticlesPosition']=this['particlesTextures'][_0x5a0658(-0x113,-0x169)];function _0x3b326a(_0xf1ba82,_0x49b01b){return _0x2e9157(_0x49b01b,_0xf1ba82-0x35d);}this['particlesTextures'][_0x3b326a(0x337,0x356)]=this['particlesTextures']['postProcessingPosition'],this['particlesTextures']['postProcessingPosition']=_0x160620;function _0x5a0658(_0x3b95c5,_0x351486){return _0x2e9157(_0x351486,_0x3b95c5- -0xed);}this[_0x5a0658(-0x132,-0x1be)]['calculateSpeed'][_0x5a0658(-0x1df,-0x161)]&&(this[_0x5a0658(-0x132,-0x19a)]['calculateSpeed']['commandToExecute']['outputTexture']=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x2d9c37(-0xda,-0x8f)]['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager[_0x2e9157(-0x18,-0xa4)](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x2ba45d(_0x49fa41,_0x597ee9){return _0x2d9c37(_0x49fa41-0x609,_0x597ee9);}function _0x7936b2(_0x135025,_0x5a49e4){return _0x2e9157(_0x5a49e4,_0x135025-0x1bb);}this['primitives']['updatePosition']['commandToExecute']&&(this['primitives']['updatePosition'][_0x2ba45d(0x489,0x463)][_0x7936b2(0x181,0x1df)]=this[_0x2ba45d(0x52f,0x4fb)][_0x2ba45d(0x48b,0x41d)]);},'isDynamic':()=>this[_0x2e9157(-0x22,-0xab)][_0x2e9157(-0x30,-0x61)]}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x2d9c37(-0x11c,-0x131),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x2e9157(-0x15a,-0xf0)],'particlesSpeed':()=>this[_0x2e9157(-0x98,-0x4c)]['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x2e9157(-0xfe,-0x82)]['west'],this['windData'][_0x2e9157(-0xd,-0x82)]['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this[_0x2d9c37(-0x153,-0x1e0)]['bounds']['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this[_0x2e9157(-0x108,-0xab)]['dropRate'],'dropRateBump':()=>this[_0x2d9c37(-0x139,-0x17a)][_0x2e9157(-0x38,-0xc3)],'useViewerBounds':()=>this['options'][_0x2d9c37(-0x146,-0xc9)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures'][_0x2d9c37(-0x12e,-0x19b)],'preExecute':()=>{function _0x540480(_0x176dbd,_0x5011a9){return _0x2d9c37(_0x5011a9-0x56,_0x176dbd);}function _0x4ca7bd(_0x460835,_0x115f5f){return _0x2e9157(_0x460835,_0x115f5f- -0x21);}this[_0x540480(0x1,-0x7d)]['postProcessingPosition']['commandToExecute']&&(this['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=this['particlesTextures'][_0x4ca7bd(-0x91,-0xc1)]);},'isDynamic':()=>this['options'][_0x2e9157(-0x58,-0x61)]})};}[_0x27f0b3(0xea,0xef)](){function _0x44fff8(_0x575717,_0x29316f){return _0x12db03(_0x575717- -0x10a,_0x29316f);}function _0x1e6e6(_0x5d91e1,_0x4f3769){return _0x27f0b3(_0x4f3769,_0x5d91e1-0x268);}this['windTextures']['U'][_0x1e6e6(0x3ec,0x387)](),this[_0x1e6e6(0x3bf,0x3e4)]['V'][_0x44fff8(0x33f,0x2bd)](),this['createWindTextures']();}[_0x12db03(0x440,0x438)](_0xfff1ed){this[_0x5cfcac(0x3ad,0x405)]=_0xfff1ed;function _0x5cfcac(_0x4675ed,_0x5801ee){return _0x27f0b3(_0x4675ed,_0x5801ee-0x2d7);}function _0x1e863b(_0x233e06,_0x1d9429){return _0x12db03(_0x233e06- -0x6e5,_0x1d9429);}this[_0x1e863b(-0x331,-0x2fd)]();}['updateOptions'](_0x3d7c0f){function _0x1c1e3e(_0x2d3661,_0x5957ba){return _0x12db03(_0x2d3661- -0x2a8,_0x5957ba);}function _0x1e768d(_0x58b683,_0x547ebb){return _0x12db03(_0x547ebb- -0x602,_0x58b683);}const _0x59ceb4=_0x3d7c0f['flipY']!==undefined&&_0x3d7c0f[_0x1e768d(-0x122,-0x174)]!==this['options'][_0x1c1e3e(0x1e6,0x204)];this['options']=deepMerge(_0x3d7c0f,this['options']),_0x59ceb4&&this['reCreateWindTextures']();}['processWindData'](_0x2f1d2d){const {array:_0xac3065}=_0x2f1d2d;let {min:_0x50e470,max:_0x2df49f}=_0x2f1d2d;const _0x5d9201=new Float32Array(_0xac3065['length']);function _0x395195(_0x1f2f2d,_0x30fb1a){return _0x27f0b3(_0x30fb1a,_0x1f2f2d-0x35);}function _0x5afcdd(_0x688e1e,_0xb0a011){return _0x27f0b3(_0xb0a011,_0x688e1e- -0x2ef);}_0x50e470===undefined&&(console['warn'](_0x395195(0x1be,0x1c3)),_0x50e470=Math['min'](..._0xac3065));_0x2df49f===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x2df49f=Math[_0x395195(0x134,0x115)](..._0xac3065));const _0x5ef9bb=Math['max'](Math[_0x395195(0x1b8,0x1c8)](_0x50e470),Math['abs'](_0x2df49f));for(let _0x5e995a=0x0;_0x5e995a<_0xac3065[_0x395195(0x118,0x14c)];_0x5e995a++){const _0x380188=_0xac3065[_0x5e995a]/_0x5ef9bb;_0x5d9201[_0x5e995a]=_0x380188;}return _0x5d9201;}[_0x12db03(0x449,0x477)](){Object[_0x1c1ed6(-0x12d,-0x1ab)](this[_0x169053(-0x1db,-0x210)])[_0x1c1ed6(-0x10e,-0x16e)](_0x138a87=>_0x138a87['destroy']()),Object[_0x169053(-0x1d9,-0x22e)](this['particlesTextures'])['forEach'](_0x47b686=>_0x47b686['destroy']());function _0x1c1ed6(_0x2054ae,_0x2f8708){return _0x12db03(_0x2f8708- -0x5a9,_0x2054ae);}function _0x169053(_0x37c6a5,_0x3b44e5){return _0x27f0b3(_0x37c6a5,_0x3b44e5- -0x367);}Object['values'](this[_0x1c1ed6(-0x1a1,-0x136)])['forEach'](_0x4cd509=>_0x4cd509[_0x1c1ed6(-0xf6,-0x160)]()),this['frameRateMonitor']['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x12db03(0x3e7,0x43b)];class WindParticlesRendering{constructor(_0x4c9ff2,_0xed1633,_0x565e24,_0x500a20){this['context']=_0x4c9ff2,this[_0x16970a(0x125,0xe4)]=_0xed1633;function _0x16970a(_0x292d9b,_0x9b111c){return _0x27f0b3(_0x292d9b,_0x9b111c- -0x64);}this['viewerParameters']=_0x565e24,this[_0x2dd361(0x2ee,0x37a)]=_0x500a20;(typeof this['options']['particlesTextureSize']!=='number'||this[_0x2dd361(0x309,0x38c)]['particlesTextureSize']<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options'][_0x2dd361(0x3ed,0x431)]=0x100);this[_0x16970a(0x43,0xac)]=this[_0x2dd361(0x464,0x40a)](),this[_0x2dd361(0x3e3,0x39e)]=this[_0x16970a(0x66,0xdb)](),this['framebuffers']=this['createRenderingFramebuffers']();function _0x2dd361(_0xb996da,_0x174f39){return _0x27f0b3(_0xb996da,_0x174f39-0x244);}this[_0x16970a(0xc3,0x14a)]=this['createPrimitives']();}[_0x27f0b3(0x18b,0x13f)](){const _0x3d734a={};_0x3d734a['context']=this['context'],_0x3d734a['width']=this[_0x43d3a3(-0x20a,-0x262)]['drawingBufferWidth'],_0x3d734a[_0x337fdf(-0x24b,-0x206)]=this['context'][_0x337fdf(-0x290,-0x284)],_0x3d734a[_0x337fdf(-0x1d2,-0x1a5)]=PixelFormat['RGBA'];function _0x43d3a3(_0x357eb5,_0x3238a7){return _0x12db03(_0x357eb5- -0x63f,_0x3238a7);}_0x3d734a[_0x337fdf(-0x221,-0x24e)]=PixelDatatype['UNSIGNED_BYTE'];const _0x50065b=_0x3d734a,_0x4c212c={};_0x4c212c['context']=this[_0x43d3a3(-0x20a,-0x20e)];function _0x337fdf(_0x8de4d9,_0x2f20b1){return _0x27f0b3(_0x2f20b1,_0x8de4d9- -0x3ab);}_0x4c212c[_0x337fdf(-0x248,-0x1f6)]=this[_0x337fdf(-0x23b,-0x208)][_0x337fdf(-0x29d,-0x27f)],_0x4c212c['height']=this['context']['drawingBufferHeight'],_0x4c212c['pixelFormat']=PixelFormat[_0x43d3a3(-0x1a0,-0x126)],_0x4c212c[_0x43d3a3(-0x1f0,-0x272)]=PixelDatatype['UNSIGNED_INT'];const _0x4e453f=_0x4c212c;return{'segmentsColor':new Texture(_0x50065b),'segmentsDepth':new Texture(_0x4e453f)};}['createRenderingFramebuffers'](){const _0x568ff0={};function _0x39bfe(_0x491e44,_0x2896df){return _0x27f0b3(_0x2896df,_0x491e44-0x3a6);}_0x568ff0[_0x39bfe(0x516,0x561)]=this['context'];function _0x4777a9(_0x122207,_0x8fe7fa){return _0x12db03(_0x122207-0xd6,_0x8fe7fa);}return _0x568ff0['colorTextures']=[this[_0x39bfe(0x500,0x56c)][_0x4777a9(0x538,0x4e6)]],_0x568ff0['depthTexture']=this['textures'][_0x39bfe(0x484,0x41a)],{'segments':new Framebuffer(_0x568ff0)};}['destoryRenderingFramebuffers'](){function _0x37f83a(_0x736abe,_0x458a6a){return _0x12db03(_0x736abe- -0x354,_0x458a6a);}Object[_0x37f83a(0xaa,0x10f)](this['framebuffers'])['forEach'](_0x577adb=>{function _0x1f91e9(_0x4e8e47,_0xf05165){return _0x37f83a(_0xf05165- -0x252,_0x4e8e47);}_0x577adb[_0x1f91e9(-0x174,-0x15d)]();});}['createColorTableTexture'](){function _0x52ee22(_0x5658c1,_0x42ca80){return _0x12db03(_0x42ca80- -0x6d6,_0x5658c1);}const _0x24770d=new Float32Array(this[_0x52ee22(-0x33f,-0x2c9)]['colors']['flatMap'](_0x1c0cb0=>{function _0x3d615e(_0x3a19da,_0x34186c){return _0x52ee22(_0x34186c,_0x3a19da-0x6fc);}const _0x32f4e0=Color$1['fromCssColorString'](_0x1c0cb0);return[_0x32f4e0[_0x3d615e(0x3e0,0x375)],_0x32f4e0['green'],_0x32f4e0['blue'],_0x32f4e0['alpha']];})),_0x23fe0e={};_0x23fe0e['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x23fe0e[_0x52ee22(-0x28d,-0x22e)]=TextureMagnificationFilter['LINEAR'];function _0xc206f1(_0x121e22,_0x349394){return _0x12db03(_0x121e22- -0x179,_0x349394);}return _0x23fe0e['wrapS']=TextureWrap[_0xc206f1(0x240,0x2ce)],_0x23fe0e['wrapT']=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this[_0xc206f1(0x2bc,0x2d2)],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat[_0x52ee22(-0x307,-0x307)],'pixelDatatype':PixelDatatype[_0xc206f1(0x2e2,0x306)],'sampler':new Sampler(_0x23fe0e),'source':{'width':this['options']['colors']['length'],'height':0x1,'arrayBufferView':_0x24770d}});}[_0x12db03(0x469,0x492)](){const _0x15dfb2=0x4,_0x467db8=this['options']['particlesTextureSize'];let _0x5071c8=[];for(let _0x11d78b=0x0;_0x11d78b<_0x467db8;_0x11d78b++){for(let _0x266345=0x0;_0x266345<_0x467db8;_0x266345++){for(let _0x29108c=0x0;_0x29108c<_0x15dfb2;_0x29108c++){_0x5071c8['push'](_0x11d78b/_0x467db8),_0x5071c8[_0x40c9f9(0xc6,0xc9)](_0x266345/_0x467db8);}}}_0x5071c8=new Float32Array(_0x5071c8);const _0x44fec9=this[_0x40c9f9(0xec,0xc4)]['particlesTextureSize']**0x2;let _0x5e4f73=[];for(let _0x8484e3=0x0;_0x8484e3<_0x44fec9;_0x8484e3++){_0x5e4f73['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x5e4f73=new Float32Array(_0x5e4f73);function _0x40c9f9(_0x384019,_0x49928d){return _0x12db03(_0x49928d- -0x349,_0x384019);}let _0x64d13b=[];for(let _0x368ef4=0x0,_0x7f2bbf=0x0;_0x368ef4<_0x44fec9;_0x368ef4++){_0x64d13b['push'](_0x7f2bbf+0x0,_0x7f2bbf+0x1,_0x7f2bbf+0x2,_0x7f2bbf+0x2,_0x7f2bbf+0x1,_0x7f2bbf+0x3),_0x7f2bbf+=_0x15dfb2;}_0x64d13b=new Uint32Array(_0x64d13b);const _0x216c6a={};_0x216c6a['componentDatatype']=ComponentDatatype['FLOAT'],_0x216c6a['componentsPerAttribute']=0x2,_0x216c6a['values']=_0x5071c8;const _0x3237ba={};_0x3237ba['componentDatatype']=ComponentDatatype['FLOAT'],_0x3237ba[_0x40c9f9(0xb,0x62)]=0x3,_0x3237ba[_0x40c9f9(0x41,0xb5)]=_0x5e4f73;const _0x3d7e02=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x216c6a),'normal':new GeometryAttribute(_0x3237ba)}),'indices':_0x64d13b});function _0x344608(_0x46dc60,_0x353804){return _0x12db03(_0x353804- -0x2a1,_0x46dc60);}return _0x3d7e02;}[_0x27f0b3(0x10e,0x17f)](_0x1b6790){function _0x1093c(_0x472110,_0x3d7fac){return _0x12db03(_0x472110- -0x4e3,_0x3d7fac);}const _0x493380={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x1b6790};return Appearance[_0x1093c(-0x2c,-0x8c)](!![],![],_0x493380);}['createPrimitives'](){const _0x151265={};_0x151265['st']=0x0,_0x151265['normal']=0x1;const _0x15a6a6={};_0x15a6a6[_0x2d88fb(0x201,0x209)]=!![];const _0x5deedf={};_0x5deedf['enabled']=!![],_0x5deedf['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x5deedf['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x5deedf['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x2032d9={};function _0x36884e(_0x13157b,_0x2f388e){return _0x27f0b3(_0x2f388e,_0x13157b-0x201);}_0x2032d9[_0x36884e(0x3a9,0x355)]=undefined,_0x2032d9['depthTest']=_0x15a6a6,_0x2032d9[_0x2d88fb(0x187,0x1ec)]=!![];function _0x2d88fb(_0x8ca07f,_0x2086bc){return _0x27f0b3(_0x2086bc,_0x8ca07f-0x5e);}_0x2032d9[_0x2d88fb(0x229,0x21b)]=_0x5deedf;const _0x58ebf6=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x151265,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0x36884e(0x317,0x2b5)],'uniformMap':{'previousParticlesPosition':()=>this[_0x36884e(0x337,0x2b5)]['particlesTextures'][_0x2d88fb(0x178,0x12b)],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this['computing'][_0x36884e(0x3a8,0x35b)]['postProcessingPosition'],'particlesSpeed':()=>this['computing'][_0x36884e(0x3a8,0x350)][_0x36884e(0x3ac,0x423)],'frameRateAdjustment':()=>this[_0x2d88fb(0x194,0x110)]['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{var _0xbc8c58,_0x3ea90c;function _0x1a3b28(_0x3beb26,_0xd4f856){return _0x2d88fb(_0x3beb26- -0x338,_0xd4f856);}const _0x141da6=new Cartesian2(((_0xbc8c58=this[_0x1a3b28(-0x192,-0x1f7)][_0x4e8490(-0x185,-0x1cc)])===null||_0xbc8c58===void 0x0?void 0x0:_0xbc8c58['min'])??this['computing']['windData']['speed']['min'],((_0x3ea90c=this['options']['domain'])===null||_0x3ea90c===void 0x0?void 0x0:_0x3ea90c['max'])??this[_0x1a3b28(-0x1a4,-0x17c)][_0x4e8490(-0x1fb,-0x251)]['speed'][_0x4e8490(-0x25b,-0x280)]);function _0x4e8490(_0x154318,_0x2162e9){return _0x36884e(_0x2162e9- -0x580,_0x154318);}return _0x141da6;},'displayRange':()=>{function _0x471acd(_0x380aa6,_0x1c6b74){return _0x36884e(_0x1c6b74- -0xd4,_0x380aa6);}var _0x9cf175,_0x5454b0;function _0xaed205(_0x574d44,_0x1c362f){return _0x2d88fb(_0x574d44-0x237,_0x1c362f);}const _0xfdc24e=new Cartesian2(((_0x9cf175=this['options']['displayRange'])===null||_0x9cf175===void 0x0?void 0x0:_0x9cf175['min'])??this[_0x471acd(0x2c5,0x263)][_0x471acd(0x25b,0x25b)][_0xaed205(0x3f7,0x3b3)]['min'],((_0x5454b0=this['options'][_0x471acd(0x1cb,0x252)])===null||_0x5454b0===void 0x0?void 0x0:_0x5454b0['max'])??this[_0xaed205(0x3cb,0x389)][_0x471acd(0x26d,0x25b)][_0x471acd(0x219,0x28f)]['max']);return _0xfdc24e;},'particleHeight':()=>this[_0x36884e(0x349,0x383)][_0x36884e(0x335,0x36c)]||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context']['drawingBufferHeight'],'pixelSize':()=>this[_0x36884e(0x3ea,0x3b6)][_0x2d88fb(0x23c,0x262)],'lineWidth':()=>{const _0x18da7c={};function _0x516d33(_0x248fdc,_0x3083de){return _0x36884e(_0x3083de- -0x5e6,_0x248fdc);}_0x18da7c['min']=0x1,_0x18da7c['max']=0x2;function _0x257847(_0x2d53c3,_0x160270){return _0x2d88fb(_0x2d53c3- -0x454,_0x160270);}const _0xb41f1f=this['options'][_0x257847(-0x2c4,-0x271)]||_0x18da7c;return new Cartesian2(_0xb41f1f[_0x516d33(-0x297,-0x26e)],_0xb41f1f[_0x516d33(-0x30e,-0x2e6)]);},'lineLength':()=>{const _0x460874={};function _0x5da3c1(_0x2e95cb,_0x4e7089){return _0x36884e(_0x4e7089- -0x1d3,_0x2e95cb);}_0x460874[_0x3dc068(0x45e,0x3da)]=0x14,_0x460874[_0x5da3c1(0x1b5,0x12d)]=0x64;function _0x3dc068(_0x513f27,_0x3f25af){return _0x2d88fb(_0x513f27-0x289,_0x3f25af);}const _0x12c702=this['options']['lineLength']||_0x460874;return new Cartesian2(_0x12c702['min'],_0x12c702['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x36884e(0x365,0x3ae)],'segmentsDepthTexture':()=>this['textures'][_0x36884e(0x2df,0x2d9)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x2d88fb(0x1dd,0x1c8)](_0x2032d9)}),_0x1af661={};return _0x1af661['segments']=_0x58ebf6,_0x1af661;}[_0x12db03(0x45a,0x49e)](){const _0x532e9f=this['createSegmentsGeometry']();this[_0xd940c6(-0xfd,-0xea)]['segments']['geometry']=_0x532e9f;const _0x5f1355={};_0x5f1355['context']=this['context'],_0x5f1355[_0xd940c6(-0x1ae,-0x153)]=_0x532e9f;function _0x5b7cb7(_0x2fb635,_0x4d4cc5){return _0x12db03(_0x2fb635- -0x7a,_0x4d4cc5);}_0x5f1355['attributeLocations']=this[_0x5b7cb7(0x3f9,0x3ce)]['segments']['attributeLocations'],_0x5f1355['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0x7f6196=VertexArray['fromGeometry'](_0x5f1355);function _0xd940c6(_0x536bc0,_0xb2ac60){return _0x12db03(_0x536bc0- -0x570,_0xb2ac60);}this['primitives'][_0x5b7cb7(0x36a,0x3c1)]['commandToExecute']&&(this['primitives']['segments']['commandToExecute']['vertexArray']=_0x7f6196);}[_0x27f0b3(0x101,0x114)](){this[_0x113800(-0x16a,-0x183)]['destroy']();function _0x10eeaf(_0x238f97,_0x13be8e){return _0x12db03(_0x238f97-0xc8,_0x13be8e);}function _0x113800(_0x53f94e,_0x818561){return _0x12db03(_0x818561- -0x558,_0x53f94e);}this[_0x10eeaf(0x49d,0x45d)]=this['createColorTableTexture']();}[_0x27f0b3(0x166,0x1d8)](_0x2dcbfb){const _0x2548ee=_0x2dcbfb['colors']&&JSON['stringify'](_0x2dcbfb[_0x234f33(0xa4,0x70)])!==JSON[_0x2b6678(0x224,0x1ee)](this[_0x234f33(0x47,0x7d)][_0x2b6678(0x2c9,0x25e)]);this[_0x234f33(0x47,0x35)]=deepMerge(_0x2dcbfb,this['options']);function _0x234f33(_0x34862e,_0x4b27fa){return _0x27f0b3(_0x4b27fa,_0x34862e- -0x101);}function _0x2b6678(_0xec3f80,_0x461824){return _0x12db03(_0xec3f80- -0x1a1,_0x461824);}_0x2548ee&&this['onColorTableChange']();}['destroy'](){function _0x5b9779(_0x1aef1a,_0x1260f4){return _0x27f0b3(_0x1aef1a,_0x1260f4-0x158);}function _0x384195(_0x148f01,_0x15ff89){return _0x27f0b3(_0x148f01,_0x15ff89-0x310);}Object['values'](this['framebuffers'])[_0x384195(0x4f1,0x486)](_0xb3d2aa=>{_0xb3d2aa['destroy']();}),Object['values'](this['primitives'])[_0x5b9779(0x286,0x2ce)](_0x4a3366=>{function _0x1e6aed(_0x3f8175,_0x192f84){return _0x384195(_0x192f84,_0x3f8175- -0x1b1);}_0x4a3366[_0x1e6aed(0x2e3,0x34d)]();}),this[_0x384195(0x446,0x420)][_0x384195(0x42b,0x494)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x27f0b3(0x18d,0x122)];function _0x4bf2(_0x428e14,_0x399a00){_0x428e14=_0x428e14-0x9b;const _0x791038=_0x7910();let _0x4bf2fd=_0x791038[_0x428e14];return _0x4bf2fd;}class WindParticleSystem{constructor(_0x17b169,_0x4867f8,_0x3fc593,_0x114152,_0x3fd3f5){this['context']=_0x17b169;function _0x116da9(_0x23862f,_0x10c3ba){return _0x12db03(_0x23862f- -0x10e,_0x10c3ba);}this['options']=_0x3fc593,this['viewerParameters']=_0x114152;function _0x29a751(_0x27f2c6,_0x2b95ed){return _0x12db03(_0x27f2c6- -0x23c,_0x2b95ed);}this['computing']=new WindParticlesComputing(_0x17b169,_0x4867f8,_0x3fc593,_0x114152,_0x3fd3f5),this[_0x116da9(0x351,0x31a)]=new WindParticlesRendering(_0x17b169,_0x3fc593,_0x114152,this['computing']),this[_0x29a751(0x247,0x1de)]();}['getPrimitives'](){function _0xd5d279(_0x22d9fb,_0x2d149f){return _0x27f0b3(_0x2d149f,_0x22d9fb- -0x1b2);}function _0x1a7f29(_0x4eb09f,_0x54b5c8){return _0x27f0b3(_0x54b5c8,_0x4eb09f-0x2de);}const _0x52155a=[this[_0x1a7f29(0x414,0x3f2)]['primitives']['calculateSpeed'],this[_0xd5d279(-0x7c,-0xe8)][_0x1a7f29(0x48c,0x487)]['updatePosition'],this['computing']['primitives']['postProcessingPosition'],this[_0x1a7f29(0x478,0x479)][_0x1a7f29(0x48c,0x44e)][_0xd5d279(-0x93,-0x24)]];return _0x52155a;}['clearFramebuffers'](){function _0x49ae85(_0x874dd7,_0x98be38){return _0x27f0b3(_0x874dd7,_0x98be38- -0x116);}const _0x7e0edf=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x2761fc(_0x3cbae5,_0x21f502){return _0x27f0b3(_0x3cbae5,_0x21f502- -0x1b4);}Object['keys'](this[_0x2761fc(0x34,-0x1a)]['framebuffers'])[_0x2761fc(-0x43,-0x3e)](_0x389028=>{function _0x1af0fd(_0x28b28a,_0x2363e2){return _0x49ae85(_0x28b28a,_0x2363e2-0x42);}_0x7e0edf['framebuffer']=this[_0x1e0afa(0x28c,0x2f7)]['framebuffers'][_0x389028];function _0x1e0afa(_0xae258d,_0x482eeb){return _0x49ae85(_0x482eeb,_0xae258d-0x208);}_0x7e0edf['execute'](this[_0x1e0afa(0x262,0x26d)]);});}[_0x27f0b3(0x15a,0xfe)](_0x41a44b){let _0x5d30f0=![];_0x41a44b['particlesTextureSize']&&this[_0x42f2af(0x5f,0x37)][_0x36c7b1(0x457,0x4ac)]!==_0x41a44b[_0x42f2af(0x11d,0xdc)]&&(_0x5d30f0=!![]);const _0x2f8a8b=deepMerge(_0x41a44b,this['options']);if(_0x2f8a8b['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');function _0x36c7b1(_0x5b6c04,_0x18e8e7){return _0x12db03(_0x5b6c04- -0x5b,_0x18e8e7);}this['options']=_0x2f8a8b;function _0x42f2af(_0xa069ad,_0x496885){return _0x12db03(_0x496885- -0x3d6,_0xa069ad);}this['rendering']['updateOptions'](_0x41a44b),this['computing']['updateOptions'](_0x41a44b),_0x5d30f0&&(this[_0x36c7b1(0x3a0,0x3b1)][_0x36c7b1(0x364,0x318)](),this['computing'][_0x42f2af(0xb9,0x3a)](),this[_0x42f2af(0x117,0x89)]['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x10e9b9){this['viewerParameters']=_0x10e9b9,this[_0x4b4bb9(0x386,0x34b)]['viewerParameters']=_0x10e9b9;function _0x4b4bb9(_0x4873ca,_0x113d70){return _0x12db03(_0x4873ca- -0x75,_0x113d70);}function _0x270582(_0x3431d3,_0x303d8a){return _0x27f0b3(_0x303d8a,_0x3431d3-0x8);}this[_0x270582(0x1a2,0x16c)]['viewerParameters']=_0x10e9b9;}['destroy'](){this['computing']['destroy'](),this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x27f0b3(0x127,0x168)],_0x2f4345={};_0x2f4345['min']=0x1,_0x2f4345['max']=0x2;const _0x23fcfd={};_0x23fcfd['min']=0x14,_0x23fcfd['max']=0x64;const _0x4bff13={};_0x4bff13['particlesTextureSize']=0x64,_0x4bff13['fixedHeight']=0x0,_0x4bff13[_0x27f0b3(0x1ba,0x132)]=_0x2f4345,_0x4bff13[_0x27f0b3(0xd5,0x10f)]=_0x23fcfd,_0x4bff13['speedFactor']=0x1,_0x4bff13[_0x12db03(0x438,0x472)]=0.003,_0x4bff13[_0x12db03(0x3f5,0x41d)]=0.001,_0x4bff13[_0x27f0b3(0x16e,0x1a5)]=['rgb(206,255,255)'],_0x4bff13['flipY']=![],_0x4bff13['dynamic']=!![];const DEF_OPTIONS=_0x4bff13;class WindLayer extends BaseLayer$1{constructor(_0x4305db={}){_0x4305db={...DEF_OPTIONS,..._0x4305db},super(_0x4305db),this['_setOptionsHook'](_0x4305db,_0x4305db);}get[_0x12db03(0x415,0x499)](){function _0x278fff(_0xcc2103,_0x4dfb96){return _0x12db03(_0x4dfb96- -0x66,_0xcc2103);}return this[_0x278fff(0x3da,0x40d)];}get[_0x27f0b3(0x179,0x158)](){return this['options']['data'];}set[_0x12db03(0x41d,0x40b)](_0x4caacf){this['options']['data']=_0x4caacf;function _0x4242b5(_0x4de741,_0x59d525){return _0x12db03(_0x4de741-0x89,_0x59d525);}this[_0x4242b5(0x4b4,0x487)](_0x4caacf);}get[_0x27f0b3(0x209,0x1a5)](){function _0x5e2d46(_0x4572de,_0x1fbf83){return _0x27f0b3(_0x4572de,_0x1fbf83-0x394);}function _0x348f34(_0x1a5ae4,_0x94deba){return _0x27f0b3(_0x94deba,_0x1a5ae4- -0x33b);}return this[_0x348f34(-0x1f3,-0x27e)][_0x5e2d46(0x5c0,0x539)];}set[_0x27f0b3(0x200,0x1a5)](_0x13418f){this['options'][_0x38ab9e(0x567,0x522)]=_0x13418f;function _0x38ab9e(_0x4f2414,_0x2b3ba3){return _0x27f0b3(_0x4f2414,_0x2b3ba3-0x37d);}const _0x3caa7b={};_0x3caa7b[_0x38ab9e(0x4ae,0x522)]=_0x13418f;function _0x40e17a(_0x27b38e,_0x42d8e2){return _0x27f0b3(_0x42d8e2,_0x27b38e- -0x38f);}this['_setOptionsHook'](this['options'],_0x3caa7b);}['_showHook'](_0x2f509a){function _0x1f9dcf(_0xbc320f,_0x39570d){return _0x12db03(_0xbc320f- -0x5a,_0x39570d);}_0x2f509a?this[_0x1f9dcf(0x34a,0x2c4)]():this['_removedHook']();}[_0x12db03(0x4a5,0x4aa)](){}['_addedHook'](){function _0x29b0e7(_0x5a4a77,_0x19414a){return _0x27f0b3(_0x5a4a77,_0x19414a- -0x1b);}this[_0x1ea2c1(-0x1fc,-0x201)]=this[_0x1ea2c1(-0x18d,-0x141)]['scene'],this['camera']=this['_map'][_0x1ea2c1(-0x1be,-0x1cf)];this['options']['data']&&this['setData'](this[_0x29b0e7(0x197,0x12d)]['data']);if(!this[_0x29b0e7(0xf6,0x113)]||!this['show'])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1[(_0x1ea2c1(-0x195,-0x181))](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this['updateViewerParameters'](),this[_0x1ea2c1(-0x116,-0x107)]=new WindParticleSystem(this[_0x1ea2c1(-0x1fc,-0x27f)][_0x1ea2c1(-0x179,-0x139)],this['windData'],this['options'],this[_0x1ea2c1(-0x100,-0x93)],this['scene']),this['primitives']=this[_0x29b0e7(0x206,0x1b8)][_0x29b0e7(0x1c0,0x173)](),this['primitives']['forEach'](_0x2850db=>{function _0x582fb6(_0x33e91f,_0x5bbb2f){return _0x1ea2c1(_0x33e91f-0x289,_0x5bbb2f);}function _0x64a903(_0x10e70a,_0x13b885){return _0x1ea2c1(_0x10e70a-0x503,_0x13b885);}this[_0x582fb6(0x8d,0x47)][_0x582fb6(0x14e,0x19f)]['add'](_0x2850db);}),this[_0x29b0e7(0x16b,0x110)][_0x1ea2c1(-0x1de,-0x1b0)]=0.01,this[_0x29b0e7(0xee,0x110)]['changed']['addEventListener'](this['updateViewerParameters'][_0x1ea2c1(-0x1af,-0x211)](this)),this[_0x1ea2c1(-0x1fc,-0x26c)]['morphComplete'][_0x29b0e7(0xd9,0x137)](this['updateViewerParameters']['bind'](this));function _0x1ea2c1(_0x49fa30,_0xfca1f7){return _0x27f0b3(_0xfca1f7,_0x49fa30- -0x2e9);}window[_0x29b0e7(0x1ac,0x137)](_0x29b0e7(0x125,0x1ad),this[_0x29b0e7(0x15a,0x192)][_0x1ea2c1(-0x1af,-0x214)](this));}['_removedHook'](){this[_0x928f57(-0x1e3,-0x1b0)]['changed'][_0x928f57(-0x223,-0x21d)](this['updateViewerParameters'][_0x242bfe(-0xf6,-0x10f)](this)),this[_0x928f57(-0x221,-0x2a8)][_0x242bfe(-0xbc,-0xa5)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),window['removeEventListener']('resize',this[_0x242bfe(-0x83,-0x4c)][_0x242bfe(-0xf6,-0xbf)](this));function _0x242bfe(_0x5274eb,_0x1ac8b2){return _0x27f0b3(_0x1ac8b2,_0x5274eb- -0x230);}this['primitives']&&(this['primitives']['forEach'](_0x1c7aa9=>{function _0x4faa28(_0x25d6da,_0x1a7129){return _0x928f57(_0x25d6da-0x2ab,_0x1a7129);}this[_0x4faa28(0x8a,0x68)]['primitives']['remove'](_0x1c7aa9);}),delete this['primitives']);function _0x928f57(_0x460b7,_0x3b394f){return _0x12db03(_0x460b7- -0x5d3,_0x3b394f);}this['particleSystem']&&(this['particleSystem'][_0x242bfe(-0xac,-0x7e)](),delete this[_0x928f57(-0x13b,-0x1b7)]);}['setData'](_0x3e22fa,_0x3926c7){this['windData']=this['processWindData'](_0x3e22fa);function _0x1bbe8a(_0x39607,_0x4a9d80){return _0x12db03(_0x4a9d80- -0x61d,_0x39607);}function _0x39ff5f(_0x97821a,_0x375f10){return _0x12db03(_0x97821a- -0x1bc,_0x375f10);}if(_0x3926c7){this[_0x1bbe8a(-0x16c,-0x1e0)](),this[_0x1bbe8a(-0x234,-0x279)]();return;}this['particleSystem']?(this['particleSystem'][_0x1bbe8a(-0x29f,-0x222)]['updateWindData'](this['windData']),this[_0x39ff5f(0x1f6,0x215)]['requestRender']()):this['_addedHook']();}['_setOptionsHook'](_0x3907cb,_0x267316){function _0x3188c0(_0x4c180b,_0xe72ca){return _0x12db03(_0x4c180b- -0x18c,_0xe72ca);}function _0x536f5c(_0xb6c51,_0xad7ec5){return _0x27f0b3(_0xb6c51,_0xad7ec5- -0x30);}this[_0x536f5c(0x1ee,0x1a3)]&&(this[_0x536f5c(0x139,0x1a3)][_0x536f5c(0x120,0xce)](_0x267316),this[_0x3188c0(0x226,0x26b)]['requestRender']());}[_0x27f0b3(0x110,0x15b)](_0x43d1b0){function _0x304b4e(_0x4b91ee,_0x353bba){return _0x27f0b3(_0x4b91ee,_0x353bba-0x116);}var _0x3731e6,_0xa61a46;function _0x1ef7e4(_0x3755db,_0x264907){return _0x27f0b3(_0x264907,_0x3755db-0x1b8);}const _0x24e95d={..._0x43d1b0},_0x4cd319=_0x24e95d;!_0x4cd319[_0x1ef7e4(0x318,0x293)]&&_0x4cd319[_0x1ef7e4(0x2b4,0x2e9)]&&(_0x4cd319[_0x1ef7e4(0x318,0x393)]=_0x4cd319['rows']);!_0x4cd319[_0x304b4e(0x2a5,0x279)]&&_0x4cd319['cols']&&(_0x4cd319['width']=_0x4cd319['cols']);!_0x4cd319['bounds']&&(_0x4cd319['bounds']={'west':_0x4cd319['xmin'],'south':_0x4cd319['ymin'],'east':_0x4cd319['xmax'],'north':_0x4cd319['ymax']});if(!_0x4cd319['u']){const _0x1f8cec={};_0x1f8cec[_0x304b4e(0x1f6,0x23d)]=_0x43d1b0['udata'],_0x1f8cec[_0x304b4e(0x283,0x28d)]=_0x43d1b0['umin'],_0x1f8cec['max']=_0x43d1b0[_0x304b4e(0x234,0x200)],_0x4cd319['u']=_0x1f8cec;}if(!_0x4cd319['v']){const _0x40cb12={};_0x40cb12['array']=_0x43d1b0[_0x304b4e(0x2b9,0x2b2)],_0x40cb12[_0x1ef7e4(0x32f,0x2c6)]=_0x43d1b0['vmin'],_0x40cb12['max']=_0x43d1b0['vmax'],_0x4cd319['v']=_0x40cb12;}if(((_0x3731e6=_0x4cd319[_0x1ef7e4(0x31a,0x346)])===null||_0x3731e6===void 0x0?void 0x0:_0x3731e6[_0x304b4e(0x29d,0x28d)])===undefined||((_0xa61a46=_0x4cd319[_0x1ef7e4(0x31a,0x32e)])===null||_0xa61a46===void 0x0?void 0x0:_0xa61a46[_0x1ef7e4(0x2b7,0x29b)])===undefined||_0x4cd319[_0x304b4e(0x208,0x278)]['array']===undefined){const _0x1fd41a={'array':new Float32Array(_0x4cd319['u']['array']['length']),'min':Number['MAX_VALUE'],'max':Number[_0x1ef7e4(0x2ae,0x263)]};for(let _0x2b204e=0x0;_0x2b204e<_0x4cd319['u'][_0x1ef7e4(0x2df,0x294)][_0x304b4e(0x284,0x1f9)];_0x2b204e++){_0x1fd41a['array'][_0x2b204e]=Math[_0x1ef7e4(0x2d9,0x2cd)](_0x4cd319['u']['array'][_0x2b204e]*_0x4cd319['u']['array'][_0x2b204e]+_0x4cd319['v']['array'][_0x2b204e]*_0x4cd319['v']['array'][_0x2b204e]),_0x1fd41a['array'][_0x2b204e]!==0x0&&(_0x1fd41a['min']=Math['min'](_0x1fd41a[_0x1ef7e4(0x32f,0x2b6)],_0x1fd41a['array'][_0x2b204e]),_0x1fd41a[_0x304b4e(0x213,0x215)]=Math[_0x1ef7e4(0x2b7,0x270)](_0x1fd41a['max'],_0x1fd41a['array'][_0x2b204e]));}_0x4cd319['speed']=_0x1fd41a;}return _0x4cd319;}[_0x12db03(0x472,0x46e)](){function _0x2ae86a(_0xe02753,_0x4097bd){return _0x27f0b3(_0x4097bd,_0xe02753- -0x186);}var _0x4ae49d;const _0x3c12dc=this[_0xdab88f(0x1c8,0x23e)];if(!_0x3c12dc)return;const _0x295ab8=_0x3c12dc['canvas'],_0x224f0e={};_0x224f0e['x']=0x0,_0x224f0e['y']=0x0;const _0x16eedd={};_0x16eedd['x']=0x0;function _0xdab88f(_0x2e2a3e,_0x571e27){return _0x27f0b3(_0x2e2a3e,_0x571e27-0x151);}_0x16eedd['y']=_0x295ab8[_0x2ae86a(0x6e,0x55)];const _0x2d10d7={};_0x2d10d7['x']=_0x295ab8['clientWidth'],_0x2d10d7['y']=0x0;const _0x141c52={};_0x141c52['x']=_0x295ab8[_0xdab88f(0x200,0x239)],_0x141c52['y']=_0x295ab8[_0x2ae86a(0x6e,0x6d)];const _0xb894e3=[_0x224f0e,_0x16eedd,_0x2d10d7,_0x141c52];let _0x1d3e60=0xb4,_0x5937c1=-0xb4,_0x3c8cb4=0x5a,_0x1f0de7=-0x5a,_0x5aa88c=![];for(const _0x2b4093 of _0xb894e3){const _0x5c9f46=_0x3c12dc[_0xdab88f(0x250,0x27c)]['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x2b4093['x'],_0x2b4093['y']),_0x3c12dc[_0xdab88f(0x394,0x321)]['ellipsoid']);if(!_0x5c9f46){_0x5aa88c=!![];break;}const _0x14459a=_0x3c12dc['globe'][_0x2ae86a(0xd,0x26)]['cartesianToCartographic'](_0x5c9f46),_0x3aae1b=Cesium$1[_0x2ae86a(-0x45,-0x35)]['toDegrees'](_0x14459a[_0x2ae86a(0x56,-0x3)]),_0x386b3b=Cesium$1[_0xdab88f(0x31f,0x292)][_0xdab88f(0x25d,0x27b)](_0x14459a['latitude']);_0x1d3e60=Math['min'](_0x1d3e60,_0x3aae1b),_0x5937c1=Math['max'](_0x5937c1,_0x3aae1b),_0x3c8cb4=Math[_0x2ae86a(-0xf,-0x44)](_0x3c8cb4,_0x386b3b),_0x1f0de7=Math[_0xdab88f(0x230,0x250)](_0x1f0de7,_0x386b3b);}if(!_0x5aa88c){const _0x427af9=new Cesium$1['Cartesian2'](Math[_0xdab88f(0x1f6,0x250)](this['windData'][_0x2ae86a(-0x15,0x40)]['west'],_0x1d3e60),Math[_0x2ae86a(-0xf,-0x21)](this[_0x2ae86a(-0x58,-0x39)]['bounds']['east'],_0x5937c1)),_0x58a04c=new Cesium$1[(_0xdab88f(0x303,0x2a5))](Math[_0xdab88f(0x2bd,0x250)](this['windData'][_0xdab88f(0x277,0x2c2)]['south'],_0x3c8cb4),Math['min'](this[_0xdab88f(0x2e4,0x27f)][_0xdab88f(0x23a,0x2c2)][_0x2ae86a(-0x68,-0x93)],_0x1f0de7)),_0x56e5f4=(_0x427af9['y']-_0x427af9['x'])*0.05,_0x24ae1e=(_0x58a04c['y']-_0x58a04c['x'])*0.05;_0x427af9['x']=Math['max'](this[_0x2ae86a(-0x58,0xd)][_0xdab88f(0x253,0x2c2)]['west'],_0x427af9['x']-_0x56e5f4),_0x427af9['y']=Math[_0x2ae86a(-0xf,-0x88)](this[_0x2ae86a(-0x58,-0x72)][_0x2ae86a(-0x15,0x33)]['east'],_0x427af9['y']+_0x56e5f4),_0x58a04c['x']=Math['max'](this['windData'][_0xdab88f(0x312,0x2c2)]['south'],_0x58a04c['x']-_0x24ae1e),_0x58a04c['y']=Math['min'](this['windData'][_0xdab88f(0x246,0x2c2)]['north'],_0x58a04c['y']+_0x24ae1e),this['viewerParameters']['lonRange']=_0x427af9,this[_0xdab88f(0x39b,0x33a)][_0xdab88f(0x301,0x33c)]=_0x58a04c;const _0x589b8a=this[_0xdab88f(0x2ff,0x27f)]['bounds']['east']-this[_0x2ae86a(-0x58,-0xd7)][_0x2ae86a(-0x15,-0x19)]['west'],_0x5f37bb=this['windData'][_0xdab88f(0x2cc,0x2c2)][_0x2ae86a(-0x68,-0x8a)]-this['windData']['bounds']['south'],_0x528767=(_0x427af9['y']-_0x427af9['x'])/_0x589b8a,_0x3d4fe4=(_0x58a04c['y']-_0x58a04c['x'])/_0x5f37bb,_0x2e383d=Math['min'](_0x528767,_0x3d4fe4),_0x5afe57=0x3e8*_0x2e383d;_0x5afe57>0x0&&(this[_0x2ae86a(0x63,0x16)]['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0x5afe57)));}this['viewerParameters'][_0xdab88f(0x38f,0x30e)]=this['scene'][_0x2ae86a(0x31,-0x52)],(_0x4ae49d=this[_0xdab88f(0x2ef,0x324)])===null||_0x4ae49d===void 0x0||_0x4ae49d['applyViewerParameters'](this['viewerParameters']);}[_0x27f0b3(0x1cf,0x1ce)](_0x3c42b1,_0x55466b){const {bounds:_0x35a818,width:_0x51a2d1,height:_0x1b8563,u:_0x36ee1c,v:_0xdcb6e8,speed:_0x1b5279}=this['windData'],{flipY:_0x50118f}=this['options'];if(_0x3c42b1<_0x35a818['west']||_0x3c42b1>_0x35a818['east']||_0x55466b<_0x35a818[_0x34d640(0x218,0x256)]||_0x55466b>_0x35a818['north'])return null;const _0x154e63=(_0x3c42b1-_0x35a818[_0x36da20(-0x172,-0x1a8)])/(_0x35a818[_0x36da20(-0x167,-0x139)]-_0x35a818[_0x36da20(-0x172,-0x164)])*(_0x51a2d1-0x1);let _0x16676a=(_0x55466b-_0x35a818[_0x34d640(0x25b,0x256)])/(_0x35a818['north']-_0x35a818['south'])*(_0x1b8563-0x1);_0x50118f&&(_0x16676a=_0x1b8563-0x1-_0x16676a);const _0x3f616e=Math[_0x36da20(-0x1ab,-0x1b5)](_0x154e63),_0x2faf6b=Math[_0x34d640(0x21e,0x26a)](_0x16676a),_0x237d69=Math['floor'](_0x154e63),_0x1dace1=Math['min'](_0x237d69+0x1,_0x51a2d1-0x1),_0x3bbb76=Math['floor'](_0x16676a),_0x10ee95=Math[_0x34d640(0x1ee,0x232)](_0x3bbb76+0x1,_0x1b8563-0x1),_0x4c22cc=_0x154e63-_0x237d69,_0x24f83e=_0x16676a-_0x3bbb76,_0x4705bf=_0x2faf6b*_0x51a2d1+_0x3f616e,_0x10a56d=_0x3bbb76*_0x51a2d1+_0x237d69,_0x21bf97=_0x3bbb76*_0x51a2d1+_0x1dace1,_0x2caed2=_0x10ee95*_0x51a2d1+_0x237d69,_0x533244=_0x10ee95*_0x51a2d1+_0x1dace1,_0x5ba0d1=_0x36ee1c[_0x36da20(-0x233,-0x2a7)][_0x10a56d],_0x991f8c=_0x36ee1c['array'][_0x21bf97],_0x147f79=_0x36ee1c['array'][_0x2caed2],_0x27e6e6=_0x36ee1c['array'][_0x533244],_0x48ced6=(0x1-_0x4c22cc)*(0x1-_0x24f83e)*_0x5ba0d1+_0x4c22cc*(0x1-_0x24f83e)*_0x991f8c+(0x1-_0x4c22cc)*_0x24f83e*_0x147f79+_0x4c22cc*_0x24f83e*_0x27e6e6,_0x4bdff8=_0xdcb6e8[_0x34d640(0x195,0x1e2)][_0x10a56d],_0x3fcc1b=_0xdcb6e8[_0x34d640(0x15c,0x1e2)][_0x21bf97],_0x3d9c66=_0xdcb6e8['array'][_0x2caed2];function _0x34d640(_0x354b4e,_0x10f8cf){return _0x27f0b3(_0x354b4e,_0x10f8cf-0xbb);}const _0x47bc63=_0xdcb6e8[_0x34d640(0x1a2,0x1e2)][_0x533244],_0x3a1866=(0x1-_0x4c22cc)*(0x1-_0x24f83e)*_0x4bdff8+_0x4c22cc*(0x1-_0x24f83e)*_0x3fcc1b+(0x1-_0x4c22cc)*_0x24f83e*_0x3d9c66+_0x4c22cc*_0x24f83e*_0x47bc63,_0x5d3d6b=Math['sqrt'](_0x48ced6*_0x48ced6+_0x3a1866*_0x3a1866),_0x44d8d8={};_0x44d8d8['u']=_0x36ee1c[_0x36da20(-0x233,-0x249)][_0x4705bf],_0x44d8d8['v']=_0xdcb6e8['array'][_0x4705bf],_0x44d8d8['speed']=_0x1b5279[_0x36da20(-0x233,-0x1e5)][_0x4705bf];const _0x3b584f={};function _0x36da20(_0x5f369e,_0x437df2){return _0x27f0b3(_0x437df2,_0x5f369e- -0x35a);}_0x3b584f['u']=_0x48ced6,_0x3b584f['v']=_0x3a1866,_0x3b584f[_0x36da20(-0x1f8,-0x203)]=_0x5d3d6b;const _0x3ae9a9={};return _0x3ae9a9['original']=_0x44d8d8,_0x3ae9a9[_0x34d640(0x22f,0x1ad)]=_0x3b584f,_0x3ae9a9;}}mars3d__namespace[_0x12db03(0x3f2,0x42a)]['register']('wind',WindLayer),mars3d__namespace[_0x27f0b3(0xcc,0x150)][_0x12db03(0x49b,0x524)]=WindLayer;class CanvasParticle{constructor(){this[_0x288ca7(-0x15a,-0x13f)]=null,this[_0x288ca7(-0x250,-0x2d8)]=null,this['tlng']=null,this['tlat']=null;function _0x54f288(_0x151c1a,_0x59fd6c){return _0x27f0b3(_0x59fd6c,_0x151c1a- -0x1ff);}this['age']=null;function _0x288ca7(_0xe50d0,_0x29a125){return _0x12db03(_0xe50d0- -0x603,_0x29a125);}this['speed']=null;}[_0x12db03(0x449,0x489)](){for(const _0x1f81df in this){delete this[_0x1f81df];}}}class CanvasWindField{constructor(_0x3cdfeb){this['setOptions'](_0x3cdfeb);}get['speedRate'](){function _0x2e1813(_0x230860,_0x3b7dbb){return _0x27f0b3(_0x3b7dbb,_0x230860- -0x372);}return this[_0x2e1813(-0x1a3,-0x1cd)];}set['speedRate'](_0x585d3d){function _0x19a8b2(_0x1f640a,_0xa4f611){return _0x27f0b3(_0xa4f611,_0x1f640a- -0x226);}this['_speedRate']=(0x64-(_0x585d3d>0x63?0x63:_0x585d3d))*0x64;function _0x82177a(_0x54ceb8,_0x589359){return _0x12db03(_0x54ceb8- -0x5e3,_0x589359);}this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this[_0x19a8b2(-0x57,-0x5)],(this['ymax']-this[_0x82177a(-0x137,-0xfa)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set[_0x12db03(0x3f8,0x3ea)](_0x18d47e){this['_maxAge']=_0x18d47e;}['setOptions'](_0x1de755){this['options']=_0x1de755,this['maxAge']=_0x1de755['maxAge']||0x78;function _0xe6090f(_0x52bd70,_0x345b05){return _0x12db03(_0x345b05- -0x46e,_0x52bd70);}this[_0xe6090f(0x39,0x13)]=_0x1de755[_0x2e821e(0x29d,0x2a4)]||0x32,this['particles']=[];const _0x562dbd=_0x1de755['particlesNumber']||0x1000;function _0x2e821e(_0xa84854,_0x2a2601){return _0x27f0b3(_0x2a2601,_0xa84854-0xe1);}for(let _0x446e37=0x0;_0x446e37<_0x562dbd;_0x446e37++){const _0x590638=this[_0x2e821e(0x2a5,0x2c9)](new CanvasParticle());this[_0x2e821e(0x248,0x214)][_0x2e821e(0x22e,0x1d6)](_0x590638);}}[_0x27f0b3(0x174,0x16c)](_0xdc86e9){this[_0x54a2de(-0x1cf,-0x231)]=_0xdc86e9['rows'],this[_0x54a2de(-0xf0,-0xfd)]=_0xdc86e9['cols'],this['xmin']=_0xdc86e9[_0x54a2de(-0xfa,-0x177)],this['xmax']=_0xdc86e9[_0x54a2de(-0x1d8,-0x222)],this[_0x5e2373(-0xed,-0x60)]=_0xdc86e9[_0x5e2373(-0x9f,-0x60)],this[_0x54a2de(-0x161,-0x159)]=_0xdc86e9[_0x54a2de(-0x161,-0x1ca)],this['grid']=[];const _0x5c91ef=_0xdc86e9[_0x5e2373(-0x113,-0x88)],_0x13b826=_0xdc86e9[_0x5e2373(-0x139,-0xab)];let _0x452eea=![];_0x5c91ef['length']===this['rows']&&_0x5c91ef[0x0]['length']===this['cols']&&(_0x452eea=!![]);let _0x24e6da=0x0;function _0x54a2de(_0x3c02e6,_0x30e9de){return _0x12db03(_0x3c02e6- -0x590,_0x30e9de);}function _0x5e2373(_0x4defbd,_0x2bbed1){return _0x12db03(_0x2bbed1- -0x50c,_0x4defbd);}let _0x3bc418=null,_0x53ebf4=null;for(let _0x534892=0x0;_0x534892<this[_0x5e2373(-0xe9,-0x14b)];_0x534892++){_0x3bc418=[];for(let _0x1c5343=0x0;_0x1c5343<this['cols'];_0x1c5343++,_0x24e6da++){_0x452eea?_0x53ebf4=this['_calcUV'](_0x5c91ef[_0x534892][_0x1c5343],_0x13b826[_0x534892][_0x1c5343]):_0x53ebf4=this['_calcUV'](_0x5c91ef[_0x24e6da],_0x13b826[_0x24e6da]),_0x3bc418['push'](_0x53ebf4);}this['grid']['push'](_0x3bc418);}!this[_0x54a2de(-0x183,-0x195)][_0x5e2373(-0x9,-0x7e)]&&this[_0x54a2de(-0xe5,-0xc8)]['reverse']();}['clear'](){delete this[_0x18d357(0x3f5,0x423)];function _0x18d357(_0x1554e5,_0x3ad3be){return _0x27f0b3(_0x3ad3be,_0x1554e5-0x2f9);}delete this['cols'],delete this['xmin'];function _0x189d08(_0x47d4e7,_0x254758){return _0x12db03(_0x47d4e7- -0x377,_0x254758);}delete this[_0x18d357(0x3ec,0x365)],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this[_0x189d08(0xb5,0xbf)];}[_0x27f0b3(0xab,0xdd)](_0x561948,_0x3850e8){const _0x1946a2=(_0x561948-this[_0x167336(-0x25c,-0x1e8)])/(this['xmax']-this['xmin'])*(this['cols']-0x1);function _0x167336(_0x5be7a8,_0x1408b7){return _0x27f0b3(_0x5be7a8,_0x1408b7- -0x3b9);}function _0x557301(_0x25d20c,_0x3c6226){return _0x27f0b3(_0x3c6226,_0x25d20c- -0xfd);}const _0x3a9eba=(this[_0x167336(-0x203,-0x24f)]-_0x3850e8)/(this[_0x557301(0x6d,0xd7)]-this[_0x167336(-0x1ec,-0x1d2)])*(this[_0x557301(-0x1,0x29)]-0x1);return[_0x1946a2,_0x3a9eba];}['getUVByXY'](_0x2a8f12,_0x2a8fc8){if(_0x2a8f12<0x0||_0x2a8f12>=this['cols']||_0x2a8fc8>=this['rows'])return[0x0,0x0,0x0];const _0x2a3008=Math[_0x1a3a6e(-0x192,-0x209)](_0x2a8f12),_0x3977a6=Math[_0x1a3a6e(-0x208,-0x209)](_0x2a8fc8);if(_0x2a3008===_0x2a8f12&&_0x3977a6===_0x2a8fc8)return this[_0x3b7725(-0x61,-0x2a)][_0x2a8fc8][_0x2a8f12];function _0x1a3a6e(_0x2df970,_0x457d5b){return _0x12db03(_0x457d5b- -0x67d,_0x2df970);}function _0x3b7725(_0x456abd,_0x4ca47c){return _0x27f0b3(_0x4ca47c,_0x456abd- -0x247);}const _0x1e23ee=_0x2a3008+0x1,_0x148f50=_0x3977a6+0x1,_0xfab88a=this['getUVByXY'](_0x2a3008,_0x3977a6),_0x416a92=this[_0x1a3a6e(-0x1aa,-0x220)](_0x1e23ee,_0x3977a6),_0x2cb26c=this['getUVByXY'](_0x2a3008,_0x148f50),_0x310ff4=this[_0x1a3a6e(-0x22f,-0x220)](_0x1e23ee,_0x148f50);let _0x58f803=null;try{_0x58f803=this[_0x3b7725(-0x10a,-0x16e)](_0x2a8f12-_0x2a3008,_0x2a8fc8-_0x3977a6,_0xfab88a,_0x416a92,_0x2cb26c,_0x310ff4);}catch(_0x411ea6){console[_0x1a3a6e(-0x281,-0x2b4)](_0x2a8f12,_0x2a8fc8);}return _0x58f803;}['_bilinearInterpolation'](_0x35f422,_0x9fe905,_0x1e8923,_0x4e50f9,_0xa22e1,_0x28519a){const _0x27ecbc=0x1-_0x35f422;function _0x41ca42(_0x1ffc44,_0x496ff0){return _0x12db03(_0x1ffc44-0x99,_0x496ff0);}const _0x2657a6=0x1-_0x9fe905,_0x56e550=_0x27ecbc*_0x2657a6,_0x2d12cf=_0x35f422*_0x2657a6,_0x4e3a27=_0x27ecbc*_0x9fe905,_0xca07de=_0x35f422*_0x9fe905,_0x2703df=_0x1e8923[0x0]*_0x56e550+_0x4e50f9[0x0]*_0x2d12cf+_0xa22e1[0x0]*_0x4e3a27+_0x28519a[0x0]*_0xca07de,_0x397ee9=_0x1e8923[0x1]*_0x56e550+_0x4e50f9[0x1]*_0x2d12cf+_0xa22e1[0x1]*_0x4e3a27+_0x28519a[0x1]*_0xca07de;return this[_0x41ca42(0x49c,0x413)](_0x2703df,_0x397ee9);}['_calcUV'](_0x381c95,_0x20018f){return[+_0x381c95,+_0x20018f,Math['sqrt'](_0x381c95*_0x381c95+_0x20018f*_0x20018f)];}['getUVByPoint'](_0x1f6422,_0x35e3f3){if(!this['isInExtent'](_0x1f6422,_0x35e3f3))return null;const _0x211a0a=this['toGridXY'](_0x1f6422,_0x35e3f3),_0xe777bd=this['getUVByXY'](_0x211a0a[0x0],_0x211a0a[0x1]);return _0xe777bd;}['isInExtent'](_0x44543a,_0xe68ef8){function _0x2a2d6b(_0x1dcb62,_0x548699){return _0x12db03(_0x548699- -0x14c,_0x1dcb62);}function _0x346e87(_0x1705fb,_0x5f2b3f){return _0x27f0b3(_0x1705fb,_0x5f2b3f-0x27b);}return _0x44543a>=this[_0x346e87(0x3dc,0x44c)]&&_0x44543a<=this['xmax']&&_0xe68ef8>=this[_0x2a2d6b(0x363,0x360)]&&_0xe68ef8<=this[_0x346e87(0x38d,0x3e5)]?!![]:![];}['getRandomLatLng'](){const _0x2f10c5=fRandomByfloat(this['xmin'],this[_0x3adde5(0x352,0x342)]);function _0x3db90d(_0x57de2b,_0x2da061){return _0x12db03(_0x2da061- -0x3ce,_0x57de2b);}const _0x3671fc=fRandomByfloat(this['ymin'],this['ymax']),_0x10ce36={};function _0x3adde5(_0xc1e066,_0x308348){return _0x12db03(_0x308348- -0x76,_0xc1e066);}return _0x10ce36[_0x3adde5(0x354,0x33d)]=_0x3671fc,_0x10ce36['lng']=_0x2f10c5,_0x10ce36;}[_0x12db03(0x426,0x426)](){let _0x44cdf3,_0x203e12,_0x2062bf;for(let _0x476346=0x0,_0x593e8c=this[_0x1e8493(-0x298,-0x253)][_0x6848dc(-0x1cf,-0x1e5)];_0x476346<_0x593e8c;_0x476346++){let _0x5da98f=this['particles'][_0x476346];_0x5da98f['age']<=0x0&&(_0x5da98f=this['_randomParticle'](_0x5da98f));if(_0x5da98f[_0x6848dc(-0xd1,-0x7e)]>0x0){const _0x9e4b3a=_0x5da98f[_0x6848dc(-0x110,-0x11f)],_0x29c50a=_0x5da98f[_0x1e8493(-0x22a,-0x224)];_0x2062bf=this['getUVByPoint'](_0x9e4b3a,_0x29c50a),_0x2062bf?(_0x44cdf3=_0x9e4b3a+this['_calc_speedRate'][0x0]*_0x2062bf[0x0],_0x203e12=_0x29c50a+this[_0x6848dc(-0xf2,-0x13e)][0x1]*_0x2062bf[0x1],_0x5da98f['lng']=_0x9e4b3a,_0x5da98f['lat']=_0x29c50a,_0x5da98f['tlng']=_0x44cdf3,_0x5da98f['tlat']=_0x203e12,_0x5da98f['speed']=_0x2062bf[0x2],_0x5da98f[_0x6848dc(-0xd1,-0x115)]--):_0x5da98f['age']=0x0;}}function _0x1e8493(_0x445463,_0x198368){return _0x12db03(_0x445463- -0x6c4,_0x198368);}function _0x6848dc(_0x34b77f,_0xd93c6d){return _0x27f0b3(_0xd93c6d,_0x34b77f- -0x2b2);}return this['particles'];}[_0x12db03(0x489,0x456)](_0x3fc66f){let _0x1394ba,_0x1d25ff;for(let _0x58a972=0x0;_0x58a972<0x1e;_0x58a972++){_0x1394ba=this['getRandomLatLng'](),_0x1d25ff=this['getUVByPoint'](_0x1394ba['lng'],_0x1394ba[_0x42b107(-0x2a9,-0x330)]);if(_0x1d25ff&&_0x1d25ff[0x2]>0x0)break;}function _0x3bb52a(_0x6ff9bf,_0x16f5ac){return _0x27f0b3(_0x6ff9bf,_0x16f5ac-0x20a);}if(!_0x1d25ff)return _0x3fc66f;const _0x15730d=_0x1394ba['lng']+this['_calc_speedRate'][0x0]*_0x1d25ff[0x0],_0x5606f8=_0x1394ba['lat']+this[_0x3bb52a(0x362,0x3ca)][0x1]*_0x1d25ff[0x1];function _0x42b107(_0x2bae4e,_0x2a06e2){return _0x27f0b3(_0x2a06e2,_0x2bae4e- -0x397);}return _0x3fc66f[_0x3bb52a(0x463,0x3ee)]=_0x1394ba['lng'],_0x3fc66f[_0x42b107(-0x2a9,-0x2c1)]=_0x1394ba[_0x42b107(-0x2a9,-0x31c)],_0x3fc66f['tlng']=_0x15730d,_0x3fc66f['tlat']=_0x5606f8,_0x3fc66f[_0x42b107(-0x1b6,-0x1f9)]=Math['round'](0xa+Math[_0x3bb52a(0x374,0x336)]()*this['maxAge']),_0x3fc66f['speed']=_0x1d25ff[0x2],_0x3fc66f;}['destroy'](){for(const _0x7fa224 in this){delete this[_0x7fa224];}}}function fRandomByfloat(_0x31b68b,_0xc8b03){return _0x31b68b+Math['random']()*(_0xc8b03-_0x31b68b);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x27f0b3(0x189,0x150)][_0x12db03(0x42d,0x45d)];class CanvasWindLayer extends BaseLayer{constructor(_0x524ae7={}){super(_0x524ae7),this[_0x5b8af7(0x2f,0x25)](_0x524ae7);function _0x5b8af7(_0x142bc0,_0x567595){return _0x27f0b3(_0x567595,_0x142bc0- -0x14f);}function _0x2b1366(_0x211238,_0x40f935){return _0x12db03(_0x211238- -0x6e3,_0x40f935);}this[_0x2b1366(-0x306,-0x2e6)]=null,_0x524ae7[_0x2b1366(-0x279,-0x1ed)]&&_0x524ae7[_0x5b8af7(0x66,0xb4)]&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x524ae7));}['_setOptionsHook'](_0x772e28,_0x21cf8c){this[_0x46c415(-0xac,-0xba)]=0x3e8/(_0x772e28['frameRate']||0xa),this['_pointerEvents']=this['options'][_0x21fbb3(0x1b6,0x20a)]??![];function _0x21fbb3(_0x4b025e,_0x4d7971){return _0x12db03(_0x4d7971- -0x1cc,_0x4b025e);}function _0x46c415(_0x2927d0,_0x392d0d){return _0x27f0b3(_0x392d0d,_0x2927d0- -0x1f0);}this['color']=_0x772e28[_0x21fbb3(0x2f8,0x2c3)]||_0x46c415(-0xae,-0xbb),this[_0x21fbb3(0x1d7,0x22b)]=_0x772e28['lineWidth']||0x1,this[_0x21fbb3(0x1a9,0x22d)]=_0x772e28['fixedHeight']??0x0,this[_0x21fbb3(0x27d,0x2c2)]=_0x772e28[_0x46c415(-0x27,-0x31)]??![],this['windField']&&this['windField'][_0x46c415(-0x1,0x14)](_0x772e28);}get[_0x27f0b3(0xf1,0x150)](){return this['canvas'];}get['canvasWidth'](){function _0x2c5808(_0x585c88,_0x472b95){return _0x12db03(_0x585c88- -0x386,_0x472b95);}return this['_map'][_0x2c5808(0x2c,-0x59)]['canvas']['clientWidth'];}get['canvasHeight'](){function _0x2e93d8(_0x3df959,_0x69fd98){return _0x12db03(_0x69fd98- -0x218,_0x3df959);}function _0x2121c0(_0x1bdbeb,_0x1c8dcd){return _0x12db03(_0x1bdbeb- -0x196,_0x1c8dcd);}return this['_map'][_0x2e93d8(0x160,0x19a)][_0x2e93d8(0x19e,0x1c5)]['clientHeight'];}get[_0x27f0b3(0x18c,0x111)](){return this['_pointerEvents'];}set['pointerEvents'](_0x1a2c62){this['_pointerEvents']=_0x1a2c62;if(!this['canvas'])return;function _0x3b1fae(_0x4f92d4,_0x2527d9){return _0x27f0b3(_0x2527d9,_0x4f92d4- -0x3ed);}_0x1a2c62?this['canvas']['style']['pointer-events']='all':this['canvas']['style'][_0x3b1fae(-0x208,-0x1f3)]='none';}get[_0x27f0b3(0x17e,0x1d7)](){function _0x4f6c6f(_0x5cff63,_0x4ef812){return _0x12db03(_0x4ef812- -0x694,_0x5cff63);}return this['options'][_0x4f6c6f(-0x1dc,-0x1f8)];}set['particlesNumber'](_0x16cbdb){function _0x24b15a(_0x5710d5,_0x439d76){return _0x12db03(_0x439d76-0x3b,_0x5710d5);}this['options']['particlesNumber']=_0x16cbdb,clearTimeout(this[_0x24b15a(0x3f8,0x405)]),this['_canrefresh']=setTimeout(()=>{function _0x225953(_0x383992,_0x1ae861){return _0x24b15a(_0x383992,_0x1ae861- -0x2a2);}this[_0x225953(0x1f0,0x1c7)]();},0x1f4);}get['speedRate'](){return this['options']['speedRate'];}set['speedRate'](_0x26a85d){function _0x442970(_0x82124,_0x460d48){return _0x12db03(_0x460d48- -0x2a0,_0x82124);}function _0x39f4bd(_0x41a6f5,_0x4e5d2b){return _0x12db03(_0x4e5d2b-0xe1,_0x41a6f5);}this[_0x39f4bd(0x572,0x4ee)][_0x442970(0x170,0x1e1)]=_0x26a85d,this['windField']&&(this[_0x442970(0x1aa,0x1aa)][_0x39f4bd(0x5a8,0x562)]=_0x26a85d);}get[_0x12db03(0x3f8,0x3c4)](){function _0x13272a(_0x2bbcec,_0x12b82a){return _0x27f0b3(_0x12b82a,_0x2bbcec-0x2c4);}return this[_0x13272a(0x40c,0x3fd)]['maxAge'];}set['maxAge'](_0x376945){this['options']['maxAge']=_0x376945,this['windField']&&(this['windField']['maxAge']=_0x376945);}get[_0x27f0b3(0x148,0x158)](){function _0x1279cb(_0x14c5d3,_0x212f41){return _0x12db03(_0x14c5d3- -0x2a4,_0x212f41);}return this[_0x1279cb(0x14f,0x197)];}set['data'](_0x21c0dd){this['setData'](_0x21c0dd);}get[_0x27f0b3(0x111,0x15f)](){let _0x552a0f=this[_0x3bf3e0(0x47e,0x4d7)]['xmin'],_0x11efed=this['windData']['xmax'],_0x55724f=this['windData'][_0x3bf3e0(0x537,0x533)];function _0x3bf3e0(_0x35f935,_0x1584d2){return _0x27f0b3(_0x1584d2,_0x35f935-0x350);}let _0x5a14f0=this[_0x1f6242(0x4d,0xd0)]['ymax'];_0x11efed>=0x167&&_0x552a0f===0x0&&(_0x552a0f=-0xb4,_0x11efed=0xb4);function _0x1f6242(_0x59639d,_0x17e67a){return _0x12db03(_0x17e67a- -0x323,_0x59639d);}return _0x552a0f=Math['max'](_0x552a0f,-0xb4),_0x11efed=Math['min'](_0x11efed,0xb4),_0x55724f=Math['max'](_0x55724f,-0x5a),_0x5a14f0=Math['min'](_0x5a14f0,0x5a),Cesium[_0x1f6242(0xc3,0xb9)]['fromDegrees'](_0x552a0f,_0x55724f,_0x11efed,_0x5a14f0);}['_showHook'](_0x44531b){function _0x582386(_0x26aa59,_0x3b2ddf){return _0x27f0b3(_0x26aa59,_0x3b2ddf- -0x2c8);}function _0x308b9f(_0x3b93fc,_0x337fc9){return _0x27f0b3(_0x3b93fc,_0x337fc9-0x14d);}_0x44531b?this['_addedHook']():(this['windData']&&(this[_0x582386(-0x1f5,-0x180)]['data']=this[_0x582386(-0x183,-0x19a)]),this[_0x308b9f(0x2ca,0x2c5)]());}['_mountedHook'](){function _0x326190(_0x22ac19,_0x4de8ce){return _0x27f0b3(_0x4de8ce,_0x22ac19- -0x176);}function _0x5f40f3(_0x97d7eb,_0x328fa7){return _0x12db03(_0x328fa7- -0x4c9,_0x97d7eb);}this[_0x5f40f3(-0xb8,-0xbc)]['worker']?this[_0x326190(-0x30,-0x21)]():this[_0x5f40f3(-0x6b,-0x7f)]=new CanvasWindField(this['options']);}['_addedHook'](){this[_0x1aabd0(0x23f,0x254)]=this[_0x586964(0x39a,0x329)]();function _0x1aabd0(_0x5717fb,_0x191ee3){return _0x27f0b3(_0x5717fb,_0x191ee3-0x13c);}const _0x44e0cf={};function _0x586964(_0x13590a,_0x3126ca){return _0x27f0b3(_0x3126ca,_0x13590a-0x1ee);}_0x44e0cf['willReadFrequently']=!![],this['canvasContext']=this[_0x586964(0x306,0x2f9)][_0x1aabd0(0x21f,0x220)]('2d',_0x44e0cf),this[_0x1aabd0(0x371,0x301)](),this[_0x586964(0x336,0x396)]['data']&&this[_0x1aabd0(0x2f3,0x2a2)](this[_0x1aabd0(0x2aa,0x284)][_0x586964(0x346,0x2d1)]);}[_0x12db03(0x43d,0x408)](){this['clear']();function _0x2a07af(_0x141f73,_0x38b39a){return _0x27f0b3(_0x38b39a,_0x141f73- -0x424);}this[_0x2a07af(-0x317,-0x2d0)]();function _0x4d7822(_0x41d462,_0x556424){return _0x27f0b3(_0x41d462,_0x556424- -0x3fa);}this['canvas']&&(this['_map']['container']['removeChild'](this[_0x2a07af(-0x30c,-0x2ec)]),delete this[_0x2a07af(-0x30c,-0x2ac)]);}['_createCanvas'](){const _0x26632a=mars3d__namespace['DomUtil'][_0x45cff9(-0x26c,-0x2d6)]('canvas','mars3d-canvasWind',this[_0x45cff9(-0x28a,-0x279)][_0x45cff9(-0x29d,-0x31a)]);_0x26632a['style']['position']='absolute',_0x26632a[_0x45cff9(-0x232,-0x28f)][_0x45cff9(-0x1f6,-0x200)]=_0x45cff9(-0x209,-0x23e);function _0x25d28b(_0x127699,_0x6f2698){return _0x27f0b3(_0x6f2698,_0x127699- -0x9d);}_0x26632a['style'][_0x45cff9(-0x2b5,-0x333)]='0px',_0x26632a[_0x25d28b(0x117,0x192)]['width']=this[_0x45cff9(-0x28a,-0x222)]['scene']['canvas'][_0x45cff9(-0x2fe,-0x33a)]+'px',_0x26632a['style'][_0x45cff9(-0x286,-0x2f7)]=this['_map'][_0x25d28b(0x50,0xbe)][_0x25d28b(0x7b,0x97)]['clientHeight']+'px',_0x26632a[_0x45cff9(-0x232,-0x273)]['pointerEvents']=this[_0x45cff9(-0x1f1,-0x208)]?'auto':_0x45cff9(-0x259,-0x28a),_0x26632a['style'][_0x25d28b(0x89,0x85)]=this[_0x25d28b(0xab,0x20)]['zIndex']??0x9;function _0x45cff9(_0x4210b1,_0x1eb070){return _0x12db03(_0x4210b1- -0x6ab,_0x1eb070);}return _0x26632a[_0x45cff9(-0x283,-0x305)]=this[_0x25d28b(0xbf,0xee)]['scene']['canvas'][_0x25d28b(0x4b,-0x11)],_0x26632a['height']=this[_0x45cff9(-0x28a,-0x2a3)][_0x45cff9(-0x2f9,-0x28a)]['canvas']['clientHeight'],_0x26632a;}['resize'](){function _0x20ee37(_0x396727,_0x561798){return _0x12db03(_0x396727- -0x53b,_0x561798);}function _0x285110(_0x43ec8c,_0xd3c015){return _0x12db03(_0xd3c015- -0x261,_0x43ec8c);}this['canvas']&&(this[_0x20ee37(-0x15e,-0x1b4)][_0x20ee37(-0xc2,-0xdf)]['width']=this[_0x20ee37(-0x11a,-0xd4)][_0x20ee37(-0x189,-0x208)]['canvas'][_0x20ee37(-0x18e,-0x175)]+'px',this['canvas']['style']['height']=this[_0x20ee37(-0x11a,-0x10f)]['scene'][_0x285110(0x174,0x17c)]['clientHeight']+'px',this[_0x285110(0x1b9,0x17c)]['width']=this[_0x285110(0x159,0x1c0)][_0x20ee37(-0x189,-0x15e)]['canvas']['clientWidth'],this['canvas'][_0x20ee37(-0x116,-0xb3)]=this['_map'][_0x20ee37(-0x189,-0x132)]['canvas']['clientHeight']);}['bindEvent'](){const _0xd20698=this;let _0x31684a=Date['now']();(function _0x98d444(){if(_0xd20698[_0x304297(-0xc4,-0x140)])return;_0xd20698['_animateFrame']=window['requestAnimationFrame'](_0x98d444);function _0x304297(_0x6259d2,_0x3d1858){return _0x4bf2(_0x6259d2- -0x224,_0x3d1858);}function _0x5eb0e1(_0x1de280,_0x4c831d){return _0x4bf2(_0x1de280-0x140,_0x4c831d);}if(_0xd20698[_0x304297(-0xc5,-0x143)]&&_0xd20698['windField']){const _0x20dab6=Date[_0x5eb0e1(0x290,0x319)](),_0x3b2045=_0x20dab6-_0x31684a;_0x3b2045>_0xd20698[_0x304297(-0x121,-0x156)]&&(_0x31684a=_0x20dab6-_0x3b2045%_0xd20698['frameTime'],_0xd20698['update']());}}());function _0xefc1ae(_0x418823,_0x34aa10){return _0x27f0b3(_0x418823,_0x34aa10- -0x40e);}function _0x473d12(_0x2df701,_0x5e23c4){return _0x12db03(_0x2df701- -0x5cd,_0x5e23c4);}window[_0xefc1ae(-0x31a,-0x2bc)]('resize',this[_0xefc1ae(-0x285,-0x246)]['bind'](this),![]),this['mouse_down']=![],this[_0xefc1ae(-0x23e,-0x23a)]=![],this['options'][_0xefc1ae(-0x202,-0x21d)]&&(this[_0x473d12(-0x1ac,-0x214)]['on'](mars3d__namespace[_0xefc1ae(-0x36a,-0x327)][_0x473d12(-0x217,-0x28c)],this[_0x473d12(-0x156,-0x13b)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0xefc1ae(-0x282,-0x2d9)],this),this['_map']['on'](mars3d__namespace['EventType'][_0x473d12(-0x1e5,-0x158)],this['_onMouseUpEvent'],this));}['unbindEvent'](){window[_0x3468f7(0x235,0x20b)](this['_animateFrame']),delete this[_0x249b72(0x300,0x2c4)];function _0x249b72(_0xab4761,_0x15edf7){return _0x27f0b3(_0x15edf7,_0xab4761-0x1e0);}function _0x3468f7(_0x43c933,_0x5e8613){return _0x12db03(_0x43c933- -0x1d0,_0x5e8613);}window['removeEventListener'](_0x249b72(0x3a8,0x3a6),this['resize']),this[_0x3468f7(0x23d,0x1f9)]['mouseHidden']&&(this['_map'][_0x3468f7(0x22c,0x285)](mars3d__namespace['EventType'][_0x3468f7(0x1e6,0x194)],this[_0x3468f7(0x2a7,0x21d)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x3468f7(0x251,0x26b)][_0x249b72(0x317,0x2e5)](mars3d__namespace[_0x3468f7(0x1dc,0x227)]['mouseUp'],this[_0x249b72(0x38a,0x322)],this),this['_map'][_0x249b72(0x317,0x318)](mars3d__namespace[_0x3468f7(0x1dc,0x162)][_0x3468f7(0x1e1,0x20c)],this['_onMouseMoveEvent'],this));}[_0x12db03(0x477,0x469)](_0x4e3c09){clearTimeout(this[_0x1e943f(-0x20b,-0x1ee)]);if(!this['show']||!this[_0x42a312(0x161,0x1db)])return;function _0x1e943f(_0x58309c,_0x353775){return _0x12db03(_0x58309c- -0x5ac,_0x353775);}function _0x42a312(_0xbc3522,_0xbe827e){return _0x12db03(_0xbc3522- -0x27c,_0xbe827e);}this['canvas'][_0x1e943f(-0x133,-0x19b)]['visibility']=_0x1e943f(-0x206,-0x27d),this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;this['redraw']();function _0xc72a58(_0x5de228,_0x2fa270){return _0x1e943f(_0x5de228-0x1d0,_0x2fa270);}this['canvas']['style']['visibility']=_0xc72a58(0x70,0x41);},0xc8);}['_onMouseDownEvent'](_0x2bc839){this[_0x3ee65f(0xd8,0x7e)]=!![],this['_map']['off'](mars3d__namespace[_0xc7b29b(-0x32b,-0x311)][_0x3ee65f(0x38,0x62)],this[_0xc7b29b(-0x2d6,-0x2e3)],this);function _0xc7b29b(_0x39ebf2,_0x40e6a1){return _0x12db03(_0x39ebf2- -0x6d7,_0x40e6a1);}function _0x3ee65f(_0x4d149a,_0xdf2772){return _0x12db03(_0x4d149a- -0x379,_0xdf2772);}this['_map']['on'](mars3d__namespace[_0xc7b29b(-0x32b,-0x2eb)]['mouseMove'],this[_0x3ee65f(0x88,0x86)],this);}['_onMouseMoveEvent'](_0x23f3c7){if(!this['show']||!this['canvas'])return;function _0x5aaea4(_0x18d084,_0xf7b935){return _0x12db03(_0x18d084- -0xd2,_0xf7b935);}function _0x4c9459(_0xf1e916,_0x3ac59d){return _0x12db03(_0xf1e916- -0x37a,_0x3ac59d);}this['mouse_down']&&(this['canvas'][_0x5aaea4(0x3a7,0x369)]['visibility']=_0x5aaea4(0x2d4,0x2c9),this[_0x4c9459(0x11f,0x199)]=!![]);}[_0x27f0b3(0x164,0x1aa)](_0x9ae985){function _0x50c96a(_0x35e665,_0x385d87){return _0x27f0b3(_0x35e665,_0x385d87-0xc7);}if(!this['show']||!this[_0x297306(0x29d,0x311)])return;this['_map'][_0x297306(0x2bc,0x32e)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);this[_0x297306(0x311,0x37b)]&&this[_0x50c96a(0x301,0x29b)]&&this['redraw']();this[_0x297306(0x29d,0x22d)][_0x50c96a(0x25b,0x27b)][_0x50c96a(0x15f,0x1e3)]='visible',this[_0x50c96a(0x23d,0x253)]=![];function _0x297306(_0x2cc521,_0x466d64){return _0x27f0b3(_0x466d64,_0x2cc521-0x185);}this['mouse_move']=![];}['setData'](_0x5735a0){this['clear'](),this['windData']=_0x5735a0;function _0x35b82b(_0x936d5c,_0xc90328){return _0x27f0b3(_0x936d5c,_0xc90328- -0x195);}this['windField'][_0x35b82b(-0x59,-0x29)](_0x5735a0);function _0x13e756(_0xbebc1,_0xc6bc90){return _0x27f0b3(_0xbebc1,_0xc6bc90-0x151);}this[_0x35b82b(-0x44,-0x2c)]();}[_0x12db03(0x42e,0x412)](){if(!this['show'])return;function _0x45e6f8(_0x5bb51e,_0x2e777c){return _0x27f0b3(_0x5bb51e,_0x2e777c- -0x34a);}this['windField'][_0x45e6f8(-0x18e,-0x15b)](this['options']),this['update']();}['update'](){if(this[_0x1094b1(-0x6,-0x18)])return;this['_updateIng']=!![];function _0x5e1ee1(_0x2d05df,_0x11f725){return _0x27f0b3(_0x2d05df,_0x11f725- -0x2a5);}function _0x1094b1(_0x4cd004,_0x3ec2cd){return _0x12db03(_0x4cd004- -0x3bb,_0x3ec2cd);}if(this['worker'])this['windField']['update']();else{const _0x42dd73=this[_0x5e1ee1(-0x114,-0x120)]['getParticles']();this[_0x1094b1(0xa3,0x89)](_0x42dd73);}this['_updateIng']=![];}['_drawLines'](_0x57e15a){this['_canvasParticles']=_0x57e15a,this[_0x22143d(0x181,0x13e)][_0x22143d(0x5,0x4d)]=_0x22143d(0xc3,0x64),this[_0x22143d(0x198,0x13e)][_0x10429a(-0x1c8,-0x1df)](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext'][_0x22143d(0x19,0x4d)]=_0x10429a(-0x118,-0xaf),this['canvasContext']['globalAlpha']=0.9;const _0x1c9a04=this['_map'][_0x10429a(-0x1e1,-0x1bd)][_0x10429a(-0x117,-0xbf)]!==Cesium['SceneMode'][_0x22143d(0x13f,0xb6)];function _0x22143d(_0x56497a,_0x419a55){return _0x12db03(_0x419a55- -0x373,_0x56497a);}function _0x10429a(_0x1beab6,_0x2b8422){return _0x12db03(_0x1beab6- -0x593,_0x2b8422);}const _0x4e3c6d=this[_0x22143d(0x162,0xf8)]*0.25;if(this[_0x22143d(0x12b,0xd2)])for(let _0x4a90cc=0x0,_0x355ad0=_0x57e15a[_0x10429a(-0x1eb,-0x1e4)];_0x4a90cc<_0x355ad0;_0x4a90cc++){const _0x2dac2b=_0x57e15a[_0x4a90cc],_0x193ef2=this['_tomap'](_0x2dac2b,_0x2dac2b[_0x22143d(0xbe,0x136)],_0x2dac2b['lat'],_0x2dac2b['alt']),_0x2c9ace=this[_0x10429a(-0x1e5,-0x24c)](_0x2dac2b,_0x2dac2b[_0x22143d(0x118,0xf4)],_0x2dac2b['tlat'],_0x2dac2b['talt']);if(!_0x193ef2||!_0x2c9ace)continue;if(_0x1c9a04&&Math[_0x10429a(-0x14b,-0x14f)](_0x193ef2[0x0]-_0x2c9ace[0x0])>=_0x4e3c6d)continue;this[_0x10429a(-0xe2,-0xbf)]['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x10429a(-0xe2,-0x140)][_0x10429a(-0x1c5,-0x205)]=this['_colorRamp'][_0x22143d(0xba,0xe6)](_0x2dac2b['speed']),this['canvasContext'][_0x22143d(0x91,0x95)](_0x193ef2[0x0],_0x193ef2[0x1]),this['canvasContext']['lineTo'](_0x2c9ace[0x0],_0x2c9ace[0x1]),this['canvasContext'][_0x10429a(-0x130,-0x1a1)]();}else{this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x10429a(-0xe2,-0xb3)][_0x10429a(-0x1c5,-0x1dd)]=this['color'];for(let _0x46988d=0x0,_0x36735e=_0x57e15a['length'];_0x46988d<_0x36735e;_0x46988d++){const _0x25d31f=_0x57e15a[_0x46988d],_0x21299f=this[_0x22143d(0xae,0x3b)](_0x25d31f,_0x25d31f['lng'],_0x25d31f['lat'],_0x25d31f['alt']),_0x489f79=this['_tomap'](_0x25d31f,_0x25d31f[_0x10429a(-0x12c,-0x107)],_0x25d31f['tlat'],_0x25d31f['talt']);if(!_0x21299f||!_0x489f79)continue;if(_0x1c9a04&&Math[_0x22143d(0xc4,0xd5)](_0x21299f[0x0]-_0x489f79[0x0])>=_0x4e3c6d)continue;this['canvasContext'][_0x10429a(-0x18b,-0x1e8)](_0x21299f[0x0],_0x21299f[0x1]),this[_0x10429a(-0xe2,-0x149)]['lineTo'](_0x489f79[0x0],_0x489f79[0x1]);}this['canvasContext'][_0x10429a(-0x130,-0x16a)]();}}['_tomap'](_0x4c8488,_0x1107d9,_0x34a57b,_0x320982){const _0x4b271a=Cesium[_0x30fec4(-0x19c,-0x1f4)][_0x30fec4(-0x2d5,-0x272)](_0x1107d9,_0x34a57b,_0x320982??this[_0x373786(0x3e3,0x3b6)]);function _0x373786(_0x4d0cc0,_0x4703a1){return _0x12db03(_0x4703a1- -0x43,_0x4d0cc0);}const _0x4efd6e=this[_0x30fec4(-0x2c3,-0x264)][_0x30fec4(-0x2e1,-0x2d3)];if(_0x4efd6e['mode']===Cesium['SceneMode'][_0x30fec4(-0x2a4,-0x25c)]){const _0x59e540=new Cesium['EllipsoidalOccluder'](_0x4efd6e['globe'][_0x30fec4(-0x1aa,-0x22d)],_0x4efd6e['camera']['positionWC']),_0x1e5225=_0x59e540['isPointVisible'](_0x4b271a);if(!_0x1e5225)return _0x4c8488['age']=0x0,null;}const _0x101c6a=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map'][_0x30fec4(-0x319,-0x2d3)],_0x4b271a);function _0x30fec4(_0xe510e5,_0x309416){return _0x27f0b3(_0xe510e5,_0x309416- -0x3c0);}return _0x101c6a?[_0x101c6a['x'],_0x101c6a['y']]:null;}[_0x27f0b3(0x267,0x1f6)](){this[_0xf7b272(0x282,0x258)]['clear']();function _0xf7b272(_0x14303f,_0x56bde1){return _0x27f0b3(_0x14303f,_0x56bde1-0xd3);}function _0x51c5e4(_0xbe3cc5,_0x86bc45){return _0x27f0b3(_0xbe3cc5,_0x86bc45- -0xce);}delete this[_0x51c5e4(0x8f,0x60)];}['initWorker'](){function _0x1d53bd(_0x4d2d57,_0x59ee75){return _0x12db03(_0x4d2d57- -0x1a7,_0x59ee75);}this[_0x1d53bd(0x308,0x35a)]=new Worker(this[_0x7dc8d3(0x1e2,0x23d)][_0x1d53bd(0x308,0x30d)]);function _0x7dc8d3(_0x3a62ec,_0x29265d){return _0x27f0b3(_0x29265d,_0x3a62ec-0x9a);}this[_0x7dc8d3(0x284,0x255)][_0x7dc8d3(0x17f,0x107)]=_0x500ba1=>{this['_drawLines'](_0x500ba1[_0x3c3be4(0x405,0x48b)]['particles']);function _0x3c3be4(_0x1a5ff1,_0xbde3bd){return _0x1d53bd(_0xbde3bd-0x215,_0x1a5ff1);}this['_updateIng2']=![];},this[_0x1d53bd(0x2a3,0x323)]={'init':_0x3366c3=>{function _0x2cf89e(_0x51b731,_0x3d8b0b){return _0x7dc8d3(_0x51b731-0x5b,_0x3d8b0b);}const _0x262b2e={};_0x262b2e[_0xc6966c(0x1aa,0x1e3)]='init';function _0xc6966c(_0x4ebc21,_0x1b40ee){return _0x7dc8d3(_0x4ebc21- -0xa1,_0x1b40ee);}_0x262b2e['options']=_0x3366c3,this[_0xc6966c(0x1e3,0x156)]['postMessage'](_0x262b2e);},'setOptions':_0x2a5468=>{const _0x284a2b={};function _0x24d419(_0x2b187a,_0x4231ca){return _0x7dc8d3(_0x2b187a- -0x1f1,_0x4231ca);}_0x284a2b['type']=_0x2db756(-0xba,-0x13d);function _0x2db756(_0x4f2522,_0x5032fe){return _0x1d53bd(_0x5032fe- -0x44a,_0x4f2522);}_0x284a2b[_0x24d419(-0xf,0x4b)]=_0x2a5468,this['worker']['postMessage'](_0x284a2b);},'setDate':_0x1a0c42=>{const _0x2c7576={};function _0x17e2cd(_0x54d2c9,_0x383d89){return _0x7dc8d3(_0x383d89- -0x1e1,_0x54d2c9);}_0x2c7576['type']=_0x17e2cd(0x72,0x25),_0x2c7576['data']=_0x1a0c42,this['worker']['postMessage'](_0x2c7576);},'update':()=>{if(this['_updateIng2'])return;function _0x2a05e6(_0x234c04,_0x592631){return _0x7dc8d3(_0x234c04-0x2b8,_0x592631);}this['_updateIng2']=!![];const _0x3f150d={};_0x3f150d[_0x2a05e6(0x503,0x500)]='update',this['worker']['postMessage'](_0x3f150d);},'clear':()=>{const _0x20330a={};function _0x3feab4(_0x5944c1,_0x3c1e02){return _0x1d53bd(_0x5944c1- -0x39,_0x3c1e02);}_0x20330a['type']='clear',this[_0x3feab4(0x2cf,0x2b7)]['postMessage'](_0x20330a);}},this['windField']['init'](this['options']);}}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace[_0x27f0b3(0xca,0x150)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log'][_0x12db03(0x437,0x4a8)](_0x12db03(0x497,0x46b)+version+_0x12db03(0x3c7,0x426)+buildTime);function _0x12db03(_0x55dbc1,_0x410342){return _0x4bf2(_0x55dbc1-0x306,_0x410342);}mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x27f0b3(0x126,0x15d)]=WindUtil;const _0x2cc28b={};_0x2cc28b['value']=!![],Object['defineProperty'](exports,'__esModule',_0x2cc28b);
|
|
14
|
+
'use strict';(function(_0x60b573,_0x23e3ab){const _0x3784e2=_0x60b573();function _0x4aa64d(_0x5e953d,_0x298d3){return _0x31c5(_0x5e953d-0x17a,_0x298d3);}function _0x14ab17(_0x3ab7f6,_0x2b07f0){return _0x31c5(_0x2b07f0- -0x80,_0x3ab7f6);}while(!![]){try{const _0x364d66=parseInt(_0x4aa64d(0x2a2,0x2d0))/0x1+-parseInt(_0x4aa64d(0x351,0x2d6))/0x2+-parseInt(_0x14ab17(0xd6,0xdb))/0x3*(-parseInt(_0x4aa64d(0x2fe,0x349))/0x4)+parseInt(_0x4aa64d(0x311,0x349))/0x5*(-parseInt(_0x14ab17(0xc4,0x99))/0x6)+-parseInt(_0x14ab17(0xe8,0x144))/0x7+parseInt(_0x4aa64d(0x356,0x2dc))/0x8+-parseInt(_0x14ab17(0x10c,0x151))/0x9*(-parseInt(_0x4aa64d(0x25f,0x253))/0xa);if(_0x364d66===_0x23e3ab)break;else _0x3784e2['push'](_0x3784e2['shift']());}catch(_0x20e6be){_0x3784e2['push'](_0x3784e2['shift']());}}}(_0x2731,0xcafe9));function _interopNamespace(_0xe2141e){function _0x5dc5ce(_0x495ca1,_0x3e5175){return _0x31c5(_0x495ca1-0x3dc,_0x3e5175);}if(_0xe2141e&&_0xe2141e['__esModule'])return _0xe2141e;var _0x2c9867=Object[_0x423120(0x489,0x486)](null);_0xe2141e&&Object['keys'](_0xe2141e)['forEach'](function(_0x4a48d3){function _0x44290d(_0x5a7597,_0x3834ba){return _0x423120(_0x5a7597- -0x164,_0x3834ba);}if(_0x4a48d3!==_0x44290d(0x3bb,0x325)){var _0x378caa=Object['getOwnPropertyDescriptor'](_0xe2141e,_0x4a48d3);Object['defineProperty'](_0x2c9867,_0x4a48d3,_0x378caa['get']?_0x378caa:{'enumerable':!![],'get':function(){return _0xe2141e[_0x4a48d3];}});}});function _0x423120(_0x34fe05,_0x49021c){return _0x31c5(_0x34fe05-0x344,_0x49021c);}return _0x2c9867[_0x423120(0x51f,0x597)]=_0xe2141e,_0x2c9867;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x35cf84(0x427,0x3b8)];function getU(_0x351472,_0x41517b){const _0x51201b=_0x351472*Math[_0x557d79(0x22c,0x215)](Cesium$2[_0x557d79(0x26d,0x2a3)]['toRadians'](_0x41517b));function _0x557d79(_0x193fec,_0xbbb71c){return _0x35cf84(_0x193fec,_0xbbb71c- -0xed);}function _0x45566c(_0x335a1d,_0x1f87f6){return _0x35cf84(_0x1f87f6,_0x335a1d- -0x4a4);}return _0x51201b;}function getV(_0x1fcef0,_0x3798b1){function _0x48c339(_0x253645,_0x5438f6){return _0x35cf84(_0x253645,_0x5438f6- -0x504);}const _0x495074=_0x1fcef0*Math[_0x48c339(-0x276,-0x21f)](Cesium$2['Math']['toRadians'](_0x3798b1));return _0x495074;}function getSpeed(_0x2f8aa8,_0x149b80){function _0x55e022(_0x9855a9,_0x353d81){return _0x35cf84(_0x9855a9,_0x353d81- -0xb2);}const _0x4cb2c4=Math[_0x4beebd(0x435,0x40e)](Math[_0x55e022(0x196,0x20e)](_0x2f8aa8,0x2)+Math['pow'](_0x149b80,0x2));function _0x4beebd(_0x555f70,_0x1ad349){return _0x35cf84(_0x1ad349,_0x555f70-0x140);}return _0x4cb2c4;}function getDirection(_0x52f41e,_0x487641){function _0x564f00(_0x22ddb2,_0x154a5e){return _0x35cf84(_0x22ddb2,_0x154a5e- -0x2ce);}let _0x2736bb=Cesium$2['Math'][_0x3491bd(0x1d4,0x1d5)](Math[_0x564f00(0xde,0x5b)](_0x487641,_0x52f41e));function _0x3491bd(_0x53ae8e,_0x18c081){return _0x35cf84(_0x53ae8e,_0x18c081- -0x1d5);}return _0x2736bb+=_0x2736bb<0x0?0x168:0x0,_0x2736bb;}const _0x580647={};_0x580647['__proto__']=null,_0x580647[_0xdfe442(0x5f,-0x21)]=getU,_0x580647[_0xdfe442(-0xf,-0xa6)]=getV;function _0x35cf84(_0x1c7fa3,_0x30a9a4){return _0x31c5(_0x30a9a4-0x1e2,_0x1c7fa3);}_0x580647['getSpeed']=getSpeed,_0x580647[_0x35cf84(0x365,0x380)]=getDirection;var WindUtil=_0x580647;const version='3.11.8',buildTime=_0x35cf84(0x2af,0x301);var updatePositionShader=_0x35cf84(0x332,0x2ef),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=_0xdfe442(0xa3,0xe8),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=_0x35cf84(0x385,0x306);const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x35cf84(0x35a,0x3b8)];class ShaderManager{static[_0x35cf84(0x2e6,0x318)](){const _0x2b11a9={};return _0x2b11a9['sources']=[calculateSpeedShader],new ShaderSource$1(_0x2b11a9);}static['getUpdatePositionShader'](){const _0x494e86={};return _0x494e86['sources']=[updatePositionShader],new ShaderSource$1(_0x494e86);}static['getSegmentDrawVertexShader'](){const _0xa9d3c={};return _0xa9d3c['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0xa9d3c);}static[_0x35cf84(0x427,0x3c9)](){const _0x791ffc={};return _0x791ffc['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x791ffc);}static['getPostProcessingPositionShader'](){const _0x460d52={};return _0x460d52['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x460d52);}}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(_0x5e415f){this['commandType']=_0x5e415f[_0x5f34e0(-0x76,-0x6d)],this[_0x3232fc(-0x102,-0xb9)]=_0x5e415f[_0x3232fc(-0x102,-0x18e)],this['attributeLocations']=_0x5e415f[_0x5f34e0(0x47,-0xb)],this['primitiveType']=_0x5e415f['primitiveType'],this['uniformMap']=_0x5e415f[_0x3232fc(-0xe6,-0x145)]||{},this['vertexShaderSource']=_0x5e415f['vertexShaderSource'],this['fragmentShaderSource']=_0x5e415f['fragmentShaderSource'];function _0x5f34e0(_0x58c9ea,_0x970003){return _0x35cf84(_0x58c9ea,_0x970003- -0x3d7);}this[_0x3232fc(-0x147,-0x1dc)]=_0x5e415f['rawRenderState'],this['framebuffer']=_0x5e415f['framebuffer'],this[_0x3232fc(-0x120,-0x134)]=_0x5e415f[_0x5f34e0(-0xe3,-0x78)],this[_0x5f34e0(-0xdb,-0xdb)]=_0x5e415f[_0x5f34e0(-0xa0,-0xdb)]??![],this[_0x3232fc(-0x1c1,-0x17d)]=_0x5e415f['preExecute'],this[_0x3232fc(-0x1c2,-0x1f7)]=!![],this[_0x3232fc(-0x17a,-0x1db)]=undefined;function _0x3232fc(_0x132abf,_0x5407aa){return _0x35cf84(_0x5407aa,_0x132abf- -0x47f);}this[_0x5f34e0(-0xb7,-0x112)]=undefined,this[_0x5f34e0(0x65,-0x12)]=_0x5e415f[_0x5f34e0(-0xa2,-0x12)]??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0x3232fc(-0xce,-0x10a)]}));}[_0xdfe442(0xf2,0x152)](_0x18d2ef){function _0x4becce(_0x3e86c4,_0x29e33f){return _0xdfe442(_0x29e33f- -0x1cf,_0x3e86c4);}function _0x511612(_0x4f4435,_0x5418e4){return _0x35cf84(_0x5418e4,_0x4f4435- -0x476);}if(this[_0x511612(-0x10c,-0xed)]==='Draw'){const _0x417b95={};_0x417b95['context']=_0x18d2ef,_0x417b95['geometry']=this['geometry'],_0x417b95['attributeLocations']=this['attributeLocations'],_0x417b95['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x130643=VertexArray$1[_0x511612(-0x152,-0x1d8)](_0x417b95),_0x9e0c3b={};_0x9e0c3b['context']=_0x18d2ef,_0x9e0c3b[_0x511612(-0x11a,-0xaa)]=this[_0x511612(-0x11a,-0xdd)],_0x9e0c3b['fragmentShaderSource']=this['fragmentShaderSource'],_0x9e0c3b['attributeLocations']=this[_0x4becce(-0x6a,-0xdb)];const _0x507900=ShaderProgram[_0x4becce(-0x259,-0x1cf)](_0x9e0c3b),_0x3cfac9=RenderState['fromCache'](this[_0x511612(-0x13e,-0xb6)]),_0x1cb8dd={};return _0x1cb8dd['owner']=this,_0x1cb8dd[_0x511612(-0x16a,-0x1e9)]=_0x130643,_0x1cb8dd[_0x511612(-0xc9,-0xe8)]=this['primitiveType'],_0x1cb8dd[_0x4becce(-0x152,-0x161)]=Matrix4['IDENTITY'],_0x1cb8dd[_0x4becce(-0xf0,-0x13b)]=_0x3cfac9,_0x1cb8dd[_0x511612(-0xb2,-0x12b)]=_0x507900,_0x1cb8dd['framebuffer']=this['framebuffer'],_0x1cb8dd['uniformMap']=this[_0x4becce(-0xb8,-0x10e)],_0x1cb8dd['pass']=Pass$1[_0x511612(-0xc5,-0x41)],new DrawCommand(_0x1cb8dd);}else{if(this[_0x511612(-0x10c,-0xa7)]==='Compute'){const _0xc60268={};return _0xc60268[_0x4becce(-0x1e3,-0x199)]=this,_0xc60268['fragmentShaderSource']=this['fragmentShaderSource'],_0xc60268['uniformMap']=this['uniformMap'],_0xc60268[_0x4becce(-0x1df,-0x148)]=this[_0x4becce(-0x173,-0x148)],_0xc60268['persists']=!![],new ComputeCommand(_0xc60268);}else throw new Error(_0x511612(-0x1ab,-0x236));}}['setGeometry'](_0x4f0e8d,_0x1dec64){function _0x55c262(_0x5cd984,_0x2d034f){return _0x35cf84(_0x5cd984,_0x2d034f- -0x460);}this[_0x55c262(-0x124,-0xe3)]=_0x1dec64;function _0x372370(_0x5b2091,_0x34aedd){return _0x35cf84(_0x34aedd,_0x5b2091- -0x1db);}defined(this['commandToExecute'])&&(this[_0x372370(0x12a,0x195)][_0x372370(0x131,0x15d)]=VertexArray$1[_0x55c262(-0xb9,-0x13c)]({'context':_0x4f0e8d,'geometry':this[_0x55c262(-0x149,-0xe3)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x55c262(-0x1e3,-0x161)]}));}[_0xdfe442(0x76,0xae)](_0x4f19cf){if(!this['isDynamic']())return;if(!this[_0x141d9c(0x224,0x1a8)]||!defined(_0x4f19cf))return;function _0x82c944(_0x3b07e7,_0x54b36a){return _0xdfe442(_0x3b07e7-0x37e,_0x54b36a);}!defined(this[_0x141d9c(0x1e0,0x1f0)])&&(this['commandToExecute']=this['createCommand'](_0x4f19cf[_0x82c944(0x438,0x44b)]));defined(this[_0x82c944(0x364,0x2fa)])&&this['preExecute']();if(!_0x4f19cf['commandList']){console[_0x141d9c(0x22a,0x23a)]('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x4f19cf['commandList']['push'](this['clearCommand']);function _0x141d9c(_0x5ca5db,_0x437ad6){return _0xdfe442(_0x437ad6-0x1c3,_0x5ca5db);}defined(this['commandToExecute'])&&_0x4f19cf['commandList']['push'](this['commandToExecute']);}[_0xdfe442(0x2f,0x68)](){return![];}[_0x35cf84(0x3ab,0x369)](){function _0x5a2847(_0x2faf26,_0x3eeeda){return _0x35cf84(_0x3eeeda,_0x2faf26- -0x144);}function _0x3abd84(_0x184289,_0x3cbd20){return _0xdfe442(_0x3cbd20-0x124,_0x184289);}if(defined(this['commandToExecute'])){var _0x197d5d;(_0x197d5d=this[_0x5a2847(0x1c1,0x1e5)][_0x5a2847(0x280,0x1ee)])===null||_0x197d5d===void 0x0||_0x197d5d['destroy'](),this['commandToExecute'][_0x3abd84(0x1f5,0x210)]=undefined;}return destroyObject(this);}}function deepMerge(_0xf249f5,_0x2967ef){function _0x315ade(_0x140151,_0x6ff773){return _0xdfe442(_0x140151-0x10b,_0x6ff773);}if(!_0xf249f5)return _0x2967ef;if(!_0x2967ef)return _0xf249f5;const _0x41ce6e={..._0x2967ef},_0x55d297=_0x41ce6e;for(const _0x239659 in _0xf249f5){if(Object[_0x315ade(0x17c,0x129)][_0x33a22f(0x3fe,0x485)]['call'](_0xf249f5,_0x239659)){const _0x2f8e8d=_0xf249f5[_0x239659],_0x2f73ce=_0x2967ef[_0x239659];if(Array[_0x33a22f(0x4d1,0x4f6)](_0x2f8e8d)){_0x55d297[_0x239659]=_0x2f8e8d['slice']();continue;}if(_0x2f8e8d&&typeof _0x2f8e8d==='object'){_0x55d297[_0x239659]=deepMerge(_0x2f8e8d,_0x2f73ce||{});continue;}_0x2f8e8d!==undefined&&(_0x55d297[_0x239659]=_0x2f8e8d);}}function _0x33a22f(_0xfbabc1,_0xae7fd2){return _0xdfe442(_0xfbabc1-0x3ea,_0xae7fd2);}return _0x55d297;}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(_0x499a7b,_0x3cc3de,_0x5214d3,_0x476904,_0x98ee6c){this['context']=_0x499a7b,this['options']=_0x5214d3,this[_0x5bcae4(0x454,0x41f)]=_0x476904,this[_0x549799(-0x247,-0x2b2)]=_0x3cc3de,this[_0x549799(-0x295,-0x222)]=0x3c,this['frameRateAdjustment']=0x1;const _0x1b96a1={};function _0x549799(_0x3be3ff,_0x5984aa){return _0xdfe442(_0x5984aa- -0x2e5,_0x3be3ff);}function _0x5bcae4(_0x2ff77d,_0x729dbc){return _0x35cf84(_0x2ff77d,_0x729dbc-0x178);}_0x1b96a1['scene']=_0x98ee6c,_0x1b96a1[_0x549799(-0x1dd,-0x259)]=0x1,_0x1b96a1['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x1b96a1),this['initFrameRate'](),this[_0x549799(-0x2bd,-0x235)](),this['createParticlesTextures'](),this[_0x5bcae4(0x455,0x4c2)]();}[_0xdfe442(0xcb,0x13c)](){const _0x5d4f76=()=>{function _0x53d487(_0x568446,_0x410ce1){return _0x31c5(_0x410ce1-0x2f1,_0x568446);}function _0x3c1000(_0x4682c8,_0x1394be){return _0x31c5(_0x4682c8- -0x19c,_0x1394be);}this[_0x3c1000(-0x3f,-0x47)]['lastFramesPerSecond']>0x14&&(this[_0x53d487(0x53a,0x4aa)]=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math[_0x53d487(0x497,0x426)](this['frameRate'],0x1));};function _0x2ebd7f(_0x144c34,_0x1a6f87){return _0xdfe442(_0x144c34-0x2f7,_0x1a6f87);}_0x5d4f76();const _0x53c271=setInterval(_0x5d4f76,0x3e8),_0xf6bac3=this['destroy'][_0x2ebd7f(0x312,0x369)](this);this['destroy']=()=>{clearInterval(_0x53c271),_0xf6bac3();};}['createWindTextures'](){function _0x5c78b7(_0x2b8324,_0x113bca){return _0xdfe442(_0x2b8324-0x43,_0x113bca);}function _0xea6a48(_0x301ccc,_0x5690ee){return _0x35cf84(_0x301ccc,_0x5690ee- -0x424);}const _0x26c5c7={};_0x26c5c7['minificationFilter']=TextureMinificationFilter$1['LINEAR'],_0x26c5c7[_0x5c78b7(0x9d,0x107)]=TextureMagnificationFilter$1['LINEAR'];const _0x22cdb1={'context':this['context'],'width':this[_0x5c78b7(0x76,0x94)][_0xea6a48(-0x1d1,-0x176)],'height':this[_0xea6a48(-0x88,-0x119)][_0xea6a48(-0x11a,-0xf8)],'pixelFormat':PixelFormat$1[_0x5c78b7(0x1e,0x48)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x26c5c7)};this['windTextures']={'U':new Texture$1({..._0x22cdb1,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x22cdb1,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x28a9d8={};_0x28a9d8['minificationFilter']=TextureMinificationFilter$1['NEAREST'],_0x28a9d8['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];const _0x3f0f08={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this[_0x2def5b(-0x11d,-0xff)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x2def5b(-0xb9,-0x101)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options'][_0x2def5b(-0x114,-0xb7)]*this[_0x2def5b(-0x11d,-0x14c)][_0x2def5b(-0x114,-0x85)]*0x4)[_0x2def5b(-0x177,-0x1bd)](0x0)},'sampler':new Sampler$1(_0x28a9d8)};function _0x7bc4ec(_0x1d8354,_0x1b8c03){return _0xdfe442(_0x1b8c03-0x2c,_0x1d8354);}function _0x2def5b(_0x11ea41,_0x35dc10){return _0x35cf84(_0x35dc10,_0x11ea41- -0x426);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x3f0f08),'currentParticlesPosition':new Texture$1(_0x3f0f08),'nextParticlesPosition':new Texture$1(_0x3f0f08),'postProcessingPosition':new Texture$1(_0x3f0f08),'particlesSpeed':new Texture$1(_0x3f0f08)};}['destroyParticlesTextures'](){function _0xd431e8(_0x5eac0d,_0x3d8c6f){return _0x35cf84(_0x3d8c6f,_0x5eac0d-0x10b);}function _0x1e42f4(_0x3f64b8,_0x2401fa){return _0xdfe442(_0x3f64b8- -0xc9,_0x2401fa);}Object[_0x1e42f4(-0xf5,-0x6f)](this[_0x1e42f4(-0x67,-0x52)])['forEach'](_0x5850ef=>_0x5850ef['destroy']());}[_0xdfe442(0x72,0xb)](){function _0x5acc0a(_0x17f824,_0x321fbf){return _0xdfe442(_0x17f824-0x4b5,_0x321fbf);}function _0x327844(_0x5806d6,_0x24fbef){return _0xdfe442(_0x5806d6-0x247,_0x24fbef);}this[_0x327844(0x31d,0x319)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0x5acc0a(0x54d,0x4da)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u'][_0x5acc0a(0x548,0x4ea)],this[_0x327844(0x27a,0x27a)]['u'][_0x5acc0a(0x4f4,0x49a)]),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this[_0x5acc0a(0x4e8,0x560)]['speed']['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures'][_0x5acc0a(0x5a3,0x55e)],'speedScaleFactor':()=>{function _0x32e16b(_0x4e58af,_0x5b4e38){return _0x327844(_0x4e58af- -0x204,_0x5b4e38);}return(this['viewerParameters']['pixelSize']+0x32)*this['options'][_0x32e16b(0xc9,0x8f)];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this[_0x327844(0x27a,0x290)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds']['west'],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData'][_0x327844(0x28a,0x215)][_0x5acc0a(0x50e,0x4a6)],this[_0x327844(0x27a,0x286)]['bounds'][_0x5acc0a(0x57c,0x567)])},'fragmentShaderSource':ShaderManager[_0x5acc0a(0x4f5,0x467)](),'outputTexture':this[_0x327844(0x2a9,0x227)]['particlesSpeed'],'preExecute':()=>{function _0x41af95(_0x40578e,_0x4919c4){return _0x327844(_0x40578e- -0x40e,_0x4919c4);}const _0x424a06=this[_0x41af95(-0x165,-0x132)][_0x41af95(-0x1a7,-0x141)];this[_0x15699f(0x2fd,0x28e)]['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'],this[_0x15699f(0x2a4,0x28e)]['currentParticlesPosition']=this['particlesTextures'][_0x41af95(-0x120,-0xc6)],this['particlesTextures'][_0x41af95(-0x120,-0x12b)]=_0x424a06;function _0x15699f(_0x2527cb,_0x3068d5){return _0x327844(_0x3068d5- -0x1b,_0x2527cb);}this[_0x15699f(0x285,0x302)]['calculateSpeed'][_0x41af95(-0x19a,-0x1ee)]&&(this['primitives'][_0x15699f(0x2fe,0x277)]['commandToExecute'][_0x41af95(-0x140,-0xcd)]=this[_0x15699f(0x24a,0x28e)][_0x41af95(-0x13a,-0x13f)]);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':_0x327844(0x250,0x2a3),'uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x327844(0x2d4,0x363)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x327844(0x2a9,0x336)]['nextParticlesPosition'],'preExecute':()=>{function _0x16bf9f(_0xe6cae0,_0x1a764c){return _0x5acc0a(_0xe6cae0- -0x577,_0x1a764c);}function _0x2c1df5(_0x4fe775,_0xb18ad1){return _0x5acc0a(_0xb18ad1- -0x6c2,_0x4fe775);}this[_0x16bf9f(0x14,-0x1f)][_0x16bf9f(-0x52,-0x65)]['commandToExecute']&&(this['primitives'][_0x2c1df5(-0x189,-0x19d)]['commandToExecute'][_0x2c1df5(-0x1d0,-0x186)]=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this[_0x5acc0a(0x4e6,0x4db)]['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x327844(0x24b,0x2bc)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters'][_0x5acc0a(0x554,0x5a3)],'latRange':()=>this[_0x327844(0x216,0x1b5)][_0x5acc0a(0x55f,0x523)],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x327844(0x28a,0x221)][_0x5acc0a(0x4b4,0x44a)],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this['windData']['bounds']['north']),'randomCoefficient':function(){function _0x4cc8f1(_0x362808,_0x5e44bb){return _0x327844(_0x362808- -0x221,_0x5e44bb);}return Math[_0x4cc8f1(0x102,0x17d)]();},'dropRate':()=>this['options'][_0x5acc0a(0x528,0x4d8)],'dropRateBump':()=>this[_0x327844(0x278,0x25e)][_0x5acc0a(0x4ff,0x495)],'useViewerBounds':()=>this[_0x5acc0a(0x4e6,0x50b)][_0x5acc0a(0x536,0x5b5)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures'][_0x5acc0a(0x55c,0x5b7)],'preExecute':()=>{function _0x5855e9(_0x11e23c,_0x5c561c){return _0x327844(_0x11e23c- -0x139,_0x5c561c);}function _0x2f7bb0(_0x1fe902,_0x1d22e4){return _0x5acc0a(_0x1d22e4- -0x27b,_0x1fe902);}this['primitives'][_0x5855e9(0x1b5,0x1b3)]['commandToExecute']&&(this['primitives'][_0x2f7bb0(0x259,0x2e1)]['commandToExecute'][_0x2f7bb0(0x28a,0x2c1)]=this[_0x2f7bb0(0x299,0x29c)][_0x2f7bb0(0x274,0x2e1)]);},'isDynamic':()=>this['options'][_0x5acc0a(0x5a0,0x594)]})};}['reCreateWindTextures'](){this['windTextures']['U']['destroy'](),this['windTextures']['V']['destroy'](),this['createWindTextures']();}['updateWindData'](_0x4a7692){this['windData']=_0x4a7692,this['reCreateWindTextures']();}['updateOptions'](_0x4f8ec9){const _0x4af274=_0x4f8ec9['flipY']!==undefined&&_0x4f8ec9['flipY']!==this[_0xf26964(-0x9a,-0xd1)][_0x115295(-0x23e,-0x203)];this['options']=deepMerge(_0x4f8ec9,this['options']);function _0x115295(_0x2d4606,_0x297850){return _0xdfe442(_0x297850- -0x21b,_0x2d4606);}function _0xf26964(_0x1ab6ee,_0x4330fd){return _0xdfe442(_0x1ab6ee- -0xcb,_0x4330fd);}_0x4af274&&this[_0x115295(-0x211,-0x232)]();}[_0x35cf84(0x249,0x2c6)](_0xb14848){const {array:_0x46c966}=_0xb14848;function _0x14e588(_0x4e10b4,_0x12a31b){return _0xdfe442(_0x12a31b- -0x80,_0x4e10b4);}let {min:_0x16e81c,max:_0xb11920}=_0xb14848;const _0x38c7b5=new Float32Array(_0x46c966[_0x14e588(0x53,0x3d)]);function _0x43f46e(_0x5a938b,_0x4013ac){return _0x35cf84(_0x4013ac,_0x5a938b- -0x22c);}_0x16e81c===undefined&&(console['warn'](_0x14e588(0x6a,-0x1d)),_0x16e81c=Math['min'](..._0x46c966));_0xb11920===undefined&&(console[_0x14e588(-0x5b,-0x9)]('max\x20is\x20undefined,\x20calculate\x20max'),_0xb11920=Math[_0x43f46e(0xeb,0xaa)](..._0x46c966));const _0x4a7541=Math['max'](Math['abs'](_0x16e81c),Math['abs'](_0xb11920));for(let _0xe1ee17=0x0;_0xe1ee17<_0x46c966[_0x14e588(0x63,0x3d)];_0xe1ee17++){const _0x1317b1=_0x46c966[_0xe1ee17]/_0x4a7541;_0x38c7b5[_0xe1ee17]=_0x1317b1;}return _0x38c7b5;}[_0x35cf84(0x3a8,0x369)](){Object['values'](this[_0x20e297(0x1e1,0x193)])[_0x2bd2e8(0x22d,0x1bd)](_0x4a8b95=>_0x4a8b95[_0x2bd2e8(0x1e0,0x215)]()),Object['values'](this[_0x20e297(0x167,0x15d)])[_0x20e297(0x17f,0x134)](_0x4ad79b=>_0x4ad79b['destroy']()),Object['values'](this[_0x2bd2e8(0x250,0x25a)])[_0x20e297(0x18c,0x134)](_0x5dc58b=>_0x5dc58b['destroy']());function _0x20e297(_0xe5189b,_0x6de986){return _0x35cf84(_0xe5189b,_0x6de986- -0x1dd);}function _0x2bd2e8(_0x4d18df,_0x48f3d3){return _0xdfe442(_0x48f3d3-0x184,_0x4d18df);}this[_0x2bd2e8(0x17d,0x1eb)]['destroy']();}}function _0x31c5(_0x262a2a,_0x5a26e6){_0x262a2a=_0x262a2a-0xc0;const _0x273158=_0x2731();let _0x31c500=_0x273158[_0x262a2a];return _0x31c500;}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(_0x45cabd,_0xf34031,_0x13b2e7,_0x58189a){this['context']=_0x45cabd;function _0x3fc14f(_0x4c7dd4,_0x14b0d7){return _0xdfe442(_0x14b0d7-0x435,_0x4c7dd4);}this[_0x190bb8(0x23c,0x219)]=_0xf34031;function _0x190bb8(_0x26728a,_0x57798b){return _0x35cf84(_0x57798b,_0x26728a- -0xcd);}this[_0x3fc14f(0x3f0,0x404)]=_0x13b2e7,this['computing']=_0x58189a,(typeof this['options'][_0x3fc14f(0x474,0x46f)]!=='number'||this['options'][_0x3fc14f(0x46c,0x46f)]<=0x0)&&(console[_0x190bb8(0x252,0x245)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x190bb8(0x23c,0x20a)]['particlesTextureSize']=0x100),this[_0x190bb8(0x216,0x217)]=this[_0x3fc14f(0x451,0x44a)](),this[_0x3fc14f(0x475,0x4a1)]=this['createRenderingTextures'](),this['framebuffers']=this['createRenderingFramebuffers'](),this[_0x3fc14f(0x4eb,0x50b)]=this['createPrimitives']();}[_0x35cf84(0x3be,0x386)](){const _0x4a1ea3={};_0x4a1ea3['context']=this['context'];function _0x30b56e(_0x2a1b31,_0x204253){return _0x35cf84(_0x2a1b31,_0x204253- -0x25d);}_0x4a1ea3[_0x30b56e(-0xe,0x51)]=this[_0x30b56e(0xc8,0x135)][_0x30b56e(-0x3,0x77)],_0x4a1ea3[_0x5a7d4b(0x376,0x312)]=this['context'][_0x30b56e(0x29,0x5e)],_0x4a1ea3[_0x5a7d4b(0x418,0x403)]=PixelFormat[_0x5a7d4b(0x30d,0x34c)],_0x4a1ea3['pixelDatatype']=PixelDatatype[_0x5a7d4b(0x3c4,0x3bd)];const _0x59d9b4=_0x4a1ea3,_0x1e2f5b={};_0x1e2f5b[_0x5a7d4b(0x3dc,0x418)]=this[_0x30b56e(0x12e,0x135)];function _0x5a7d4b(_0xd22bb6,_0x36432c){return _0xdfe442(_0xd22bb6-0x322,_0x36432c);}_0x1e2f5b[_0x30b56e(0x23,0x51)]=this[_0x30b56e(0xea,0x135)]['drawingBufferWidth'],_0x1e2f5b[_0x30b56e(0xed,0xcf)]=this['context']['drawingBufferHeight'],_0x1e2f5b['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x1e2f5b[_0x30b56e(0x77,0x83)]=PixelDatatype[_0x30b56e(0x7c,0xab)];const _0x52080f=_0x1e2f5b;return{'segmentsColor':new Texture(_0x59d9b4),'segmentsDepth':new Texture(_0x52080f)};}[_0xdfe442(0xde,0x75)](){const _0x562b31={};_0x562b31[_0x351ad8(-0x7c,-0xb9)]=this['context'];function _0x351ad8(_0x1aa898,_0x4c9010){return _0xdfe442(_0x4c9010- -0x173,_0x1aa898);}_0x562b31['colorTextures']=[this[_0x351ad8(-0x127,-0x107)][_0x351ad8(-0x149,-0xf6)]],_0x562b31['depthTexture']=this[_0x8a5c94(0x3a2,0x323)][_0x351ad8(-0x1ae,-0x1a0)];function _0x8a5c94(_0x8c36ff,_0x3dc86e){return _0xdfe442(_0x3dc86e-0x2b7,_0x8c36ff);}return{'segments':new Framebuffer(_0x562b31)};}['destoryRenderingFramebuffers'](){function _0x8ded18(_0x3f0ae3,_0x325d89){return _0x35cf84(_0x325d89,_0x3f0ae3- -0x2f7);}Object['values'](this['framebuffers'])[_0x8ded18(0x1a,0x8c)](_0x5650c7=>{_0x5650c7['destroy']();});}['createColorTableTexture'](){const _0x4ba021=new Float32Array(this['options'][_0x3fa4a4(0x43d,0x3f5)]['flatMap'](_0x279550=>{function _0x117c83(_0x52a20b,_0x465ba3){return _0x3fa4a4(_0x52a20b- -0x1d5,_0x465ba3);}const _0x1804d7=Color$1[_0x45ae22(-0x8,-0x98)](_0x279550);function _0x45ae22(_0x2146a4,_0x37843a){return _0x3fa4a4(_0x37843a- -0x46e,_0x2146a4);}return[_0x1804d7[_0x117c83(0x23f,0x2c2)],_0x1804d7[_0x117c83(0x2e7,0x344)],_0x1804d7['blue'],_0x1804d7[_0x45ae22(-0x13,-0x4a)]];})),_0x11eb74={};_0x11eb74['minificationFilter']=TextureMinificationFilter[_0x3af235(-0x20,-0x92)],_0x11eb74[_0x3af235(0x1f,-0x6)]=TextureMagnificationFilter[_0x3af235(0x2,-0x92)],_0x11eb74[_0x3af235(0x1d,0x7d)]=TextureWrap[_0x3fa4a4(0x4bb,0x51c)];function _0x3af235(_0x4f9832,_0x10c7d1){return _0xdfe442(_0x10c7d1- -0x60,_0x4f9832);}function _0x3fa4a4(_0x14a177,_0x237b3b){return _0xdfe442(_0x14a177-0x406,_0x237b3b);}return _0x11eb74['wrapT']=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this['context'],'width':this[_0x3fa4a4(0x437,0x3a1)][_0x3fa4a4(0x43d,0x3e0)]['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x11eb74),'source':{'width':this[_0x3af235(-0x5a,-0x2f)]['colors'][_0x3fa4a4(0x4c3,0x4f2)],'height':0x1,'arrayBufferView':_0x4ba021}});}['createSegmentsGeometry'](){const _0x5c85c3=0x4,_0x28fb57=this[_0x5c34fa(0x425,0x4aa)]['particlesTextureSize'];let _0x118ef7=[];for(let _0xebc696=0x0;_0xebc696<_0x28fb57;_0xebc696++){for(let _0xfd9c3e=0x0;_0xfd9c3e<_0x28fb57;_0xfd9c3e++){for(let _0x5397b8=0x0;_0x5397b8<_0x5c85c3;_0x5397b8++){_0x118ef7['push'](_0xebc696/_0x28fb57),_0x118ef7[_0x43d333(-0x13a,-0x1c7)](_0xfd9c3e/_0x28fb57);}}}_0x118ef7=new Float32Array(_0x118ef7);const _0x560c0b=this[_0x5c34fa(0x465,0x4aa)]['particlesTextureSize']**0x2;let _0x9da97=[];for(let _0x4e639e=0x0;_0x4e639e<_0x560c0b;_0x4e639e++){_0x9da97['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x9da97=new Float32Array(_0x9da97);let _0x38a9e9=[];for(let _0x5288f5=0x0,_0x3a9104=0x0;_0x5288f5<_0x560c0b;_0x5288f5++){_0x38a9e9['push'](_0x3a9104+0x0,_0x3a9104+0x1,_0x3a9104+0x2,_0x3a9104+0x2,_0x3a9104+0x1,_0x3a9104+0x3),_0x3a9104+=_0x5c85c3;}_0x38a9e9=new Uint32Array(_0x38a9e9);function _0x43d333(_0x10c03c,_0x3cbfa2){return _0x35cf84(_0x10c03c,_0x3cbfa2- -0x4e5);}const _0x1a0e96={};function _0x5c34fa(_0x4ee1c2,_0x196b72){return _0xdfe442(_0x196b72-0x479,_0x4ee1c2);}_0x1a0e96[_0x43d333(-0x1d2,-0x14d)]=ComponentDatatype['FLOAT'],_0x1a0e96[_0x43d333(-0xbf,-0x147)]=0x2,_0x1a0e96['values']=_0x118ef7;const _0x22ead3={};_0x22ead3[_0x5c34fa(0x5ce,0x539)]=ComponentDatatype['FLOAT'],_0x22ead3['componentsPerAttribute']=0x3,_0x22ead3['values']=_0x9da97;const _0x141a2d=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x1a0e96),'normal':new GeometryAttribute(_0x22ead3)}),'indices':_0x38a9e9});return _0x141a2d;}['createRawRenderState'](_0x31648e){function _0x47aace(_0x5bb882,_0x5c8a33){return _0xdfe442(_0x5bb882-0x4d1,_0x5c8a33);}const _0x122b26={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x31648e};return Appearance[_0x47aace(0x554,0x5c6)](!![],![],_0x122b26);}[_0xdfe442(0x3e,0xca)](){const _0x1f3542={};_0x1f3542['st']=0x0,_0x1f3542['normal']=0x1;const _0x2cfce4={};_0x2cfce4[_0xf4ef6e(0x4ef,0x465)]=!![];const _0x22cfe4={};_0x22cfe4['enabled']=!![],_0x22cfe4['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x22cfe4['blendFuncSource']=WebGLRenderingContext[_0xf4ef6e(0x487,0x4d1)],_0x22cfe4[_0xf4ef6e(0x48f,0x403)]=WebGLRenderingContext[_0xf4ef6e(0x479,0x4a7)];const _0xca3d6d={};_0xca3d6d['viewport']=undefined,_0xca3d6d['depthTest']=_0x2cfce4,_0xca3d6d[_0xf4ef6e(0x4cd,0x4fc)]=!![];function _0x5d8fba(_0x5e9269,_0x27a4de){return _0x35cf84(_0x5e9269,_0x27a4de- -0x48c);}function _0xf4ef6e(_0x3279cf,_0x1fd89e){return _0x35cf84(_0x1fd89e,_0x3279cf-0x1ba);}_0xca3d6d['blending']=_0x22cfe4;const _0x1cdebd=new CustomPrimitive({'commandType':_0x5d8fba(-0x12b,-0x14a),'attributeLocations':_0x1f3542,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this[_0x5d8fba(-0xc4,-0x11b)][_0xf4ef6e(0x4f4,0x523)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing'][_0x5d8fba(-0xc3,-0x152)]['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x5d8fba(-0xc7,-0x11b)]['particlesTextures'][_0x5d8fba(-0x166,-0x10d)],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x5d8fba(-0x122,-0x127)],'frameRateAdjustment':()=>this[_0xf4ef6e(0x52b,0x5af)][_0xf4ef6e(0x53b,0x56e)],'colorTable':()=>this['colorTable'],'domain':()=>{var _0x5ced55,_0x3e88e2;const _0x42362d=new Cartesian2(((_0x5ced55=this['options']['domain'])===null||_0x5ced55===void 0x0?void 0x0:_0x5ced55[_0x126293(-0x10f,-0x87)])??this[_0x126293(-0x109,-0x12c)]['windData'][_0x126293(-0x1a0,-0x1cc)][_0x126293(-0x10f,-0xe0)],((_0x3e88e2=this['options']['domain'])===null||_0x3e88e2===void 0x0?void 0x0:_0x3e88e2['max'])??this['computing'][_0x126293(-0x16f,-0x137)]['speed']['max']);function _0x18c132(_0x41b4bf,_0x205988){return _0x5d8fba(_0x205988,_0x41b4bf- -0xc0);}function _0x126293(_0x292a0d,_0x316226){return _0x5d8fba(_0x316226,_0x292a0d-0x12);}return _0x42362d;},'displayRange':()=>{function _0x8a1dc6(_0xc8f2e9,_0xd21d14){return _0x5d8fba(_0xd21d14,_0xc8f2e9-0x18);}var _0x219a45,_0x398be6;const _0x627a15=new Cartesian2(((_0x219a45=this['options'][_0x328275(-0xf4,-0x159)])===null||_0x219a45===void 0x0?void 0x0:_0x219a45['min'])??this['computing'][_0x328275(-0x105,-0x113)][_0x8a1dc6(-0x19a,-0x1d6)][_0x8a1dc6(-0x109,-0x74)],((_0x398be6=this['options']['displayRange'])===null||_0x398be6===void 0x0?void 0x0:_0x398be6['max'])??this['computing']['windData'][_0x8a1dc6(-0x19a,-0x1bd)][_0x8a1dc6(-0x15d,-0xf4)]);function _0x328275(_0x409d1a,_0x24ec8d){return _0xf4ef6e(_0x409d1a- -0x5ca,_0x24ec8d);}return _0x627a15;},'particleHeight':()=>this[_0x5d8fba(-0x1b4,-0x183)][_0x5d8fba(-0x166,-0xf5)]||0x0,'aspect':()=>this[_0xf4ef6e(0x54c,0x5aa)][_0xf4ef6e(0x48e,0x478)]/this[_0xf4ef6e(0x54c,0x4ef)]['drawingBufferHeight'],'pixelSize':()=>this[_0x5d8fba(-0x1be,-0x1e5)]['pixelSize'],'lineWidth':()=>{const _0x224bf8={};function _0x3407d2(_0x558f8a,_0x12f150){return _0xf4ef6e(_0x558f8a- -0x52b,_0x12f150);}_0x224bf8[_0x3407d2(-0x6,0x78)]=0x1,_0x224bf8[_0x1c4b11(0x9f,0xb6)]=0x2;function _0x1c4b11(_0x3f2f04,_0x17c2b8){return _0x5d8fba(_0x3f2f04,_0x17c2b8-0x22b);}const _0x58f23d=this['options']['lineWidth']||_0x224bf8;return new Cartesian2(_0x58f23d['min'],_0x58f23d[_0x3407d2(-0x5a,0x13)]);},'lineLength':()=>{const _0x14b97e={};_0x14b97e['min']=0x14;function _0x179fce(_0x3cd46c,_0x36ecb9){return _0x5d8fba(_0x3cd46c,_0x36ecb9-0x109);}_0x14b97e[_0x179fce(-0x52,-0x6c)]=0x64;function _0x19b475(_0x548e86,_0x3b1166){return _0x5d8fba(_0x548e86,_0x3b1166-0x54);}const _0x20f4dd=this[_0x179fce(-0xc3,-0x7a)]['lineLength']||_0x14b97e;return new Cartesian2(_0x20f4dd[_0x19b475(-0x84,-0xcd)],_0x20f4dd[_0x179fce(0x23,-0x6c)]);},'is3D':()=>this[_0xf4ef6e(0x461,0x43d)][_0x5d8fba(-0x1ef,-0x166)]===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0x5d8fba(-0x16c,-0x148)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0xca3d6d)}),_0x5393fb={};return _0x5393fb[_0xf4ef6e(0x489,0x436)]=_0x1cdebd,_0x5393fb;}[_0xdfe442(-0x2b,0x31)](){const _0x475ea4=this[_0x2ad56d(0x3fd,0x40d)]();this['primitives'][_0x282bb9(0x1b0,0x18f)]['geometry']=_0x475ea4;const _0x16e7e8={};_0x16e7e8['context']=this['context'],_0x16e7e8['geometry']=_0x475ea4,_0x16e7e8[_0x282bb9(0x2ad,0x23b)]=this['primitives']['segments']['attributeLocations'];function _0x282bb9(_0x4f9fe8,_0x3d5ef4){return _0x35cf84(_0x3d5ef4,_0x4f9fe8- -0x11f);}_0x16e7e8[_0x2ad56d(0x3bd,0x3f5)]=BufferUsage['STATIC_DRAW'];const _0x5a8ec4=VertexArray['fromGeometry'](_0x16e7e8);function _0x2ad56d(_0x29b275,_0x269d1e){return _0xdfe442(_0x29b275-0x3eb,_0x269d1e);}this['primitives']['segments']['commandToExecute']&&(this['primitives'][_0x2ad56d(0x3e2,0x3b5)]['commandToExecute']['vertexArray']=_0x5a8ec4);}[_0x35cf84(0x336,0x372)](){function _0x4e1d92(_0x2ebf2f,_0x57be6a){return _0xdfe442(_0x57be6a- -0x4d,_0x2ebf2f);}this['colorTable']['destroy'](),this[_0x4e1d92(0x21,-0x42)]=this['createColorTableTexture']();}['updateOptions'](_0x3b9e8c){const _0x45715f=_0x3b9e8c[_0x223381(0x430,0x4ae)]&&JSON['stringify'](_0x3b9e8c[_0x223381(0x430,0x3d7)])!==JSON['stringify'](this[_0x2c7c28(0x4bb,0x49d)][_0x223381(0x430,0x3ab)]);function _0x2c7c28(_0x14529b,_0x1221b6){return _0xdfe442(_0x14529b-0x48a,_0x1221b6);}function _0x223381(_0x9fe599,_0x3c0af4){return _0xdfe442(_0x9fe599-0x3f9,_0x3c0af4);}this['options']=deepMerge(_0x3b9e8c,this['options']),_0x45715f&&this[_0x223381(0x493,0x46d)]();}['destroy'](){function _0x22e0a5(_0x2a59d5,_0x1013a2){return _0xdfe442(_0x1013a2-0x22d,_0x2a59d5);}Object['values'](this['framebuffers'])['forEach'](_0x40293d=>{function _0x404e7e(_0x4221c,_0x56aee6){return _0x31c5(_0x56aee6-0x31f,_0x4221c);}_0x40293d[_0x404e7e(0x500,0x4a6)]();});function _0x59eb45(_0x2c82a5,_0x1585e1){return _0x35cf84(_0x1585e1,_0x2c82a5- -0x26f);}Object['values'](this[_0x59eb45(0x13f,0xba)])['forEach'](_0x32b54b=>{_0x32b54b['destroy']();}),this['colorTable'][_0x59eb45(0xfa,0xda)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x5123b6,_0x530cd1,_0x1012af,_0x272917,_0x14bcdb){this['context']=_0x5123b6;function _0x9c3f20(_0x3b885b,_0x30688b){return _0x35cf84(_0x3b885b,_0x30688b-0x12d);}function _0x3c44f9(_0xfe4ccc,_0x53150b){return _0xdfe442(_0xfe4ccc-0x456,_0x53150b);}this['options']=_0x1012af,this['viewerParameters']=_0x272917,this[_0x9c3f20(0x465,0x49e)]=new WindParticlesComputing(_0x5123b6,_0x530cd1,_0x1012af,_0x272917,_0x14bcdb),this['rendering']=new WindParticlesRendering(_0x5123b6,_0x1012af,_0x272917,this[_0x3c44f9(0x4ef,0x57c)]),this['clearFramebuffers']();}[_0xdfe442(0xef,0x127)](){function _0x1bd018(_0x277710,_0x515139){return _0x35cf84(_0x515139,_0x277710- -0x53b);}function _0x2e7fcb(_0x696a32,_0x3b27a6){return _0xdfe442(_0x3b27a6-0x114,_0x696a32);}const _0x51b756=[this[_0x2e7fcb(0x119,0x1ad)]['primitives']['calculateSpeed'],this['computing'][_0x1bd018(-0x18d,-0x148)]['updatePosition'],this['computing'][_0x1bd018(-0x18d,-0x169)][_0x2e7fcb(0x1f0,0x1bb)],this['rendering']['primitives']['segments']];return _0x51b756;}['clearFramebuffers'](){function _0x340bf6(_0x35161c,_0x445248){return _0xdfe442(_0x445248- -0x290,_0x35161c);}const _0x144148=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x227af8(_0x36cee6,_0x4b6d99){return _0xdfe442(_0x36cee6-0x3,_0x4b6d99);}Object['keys'](this[_0x340bf6(-0x25c,-0x284)][_0x227af8(0x48,0x65)])['forEach'](_0x5c0492=>{function _0x526dcf(_0x35672c,_0x3cd11e){return _0x340bf6(_0x35672c,_0x3cd11e- -0xa);}function _0x3252d3(_0x4278ea,_0x396063){return _0x340bf6(_0x396063,_0x4278ea-0x51f);}_0x144148['framebuffer']=this['rendering']['framebuffers'][_0x5c0492],_0x144148[_0x526dcf(-0x152,-0x1e1)](this[_0x526dcf(-0x1d3,-0x1e0)]);});}[_0xdfe442(0xe4,0xe5)](_0x41ef4f){let _0x552db8=![];function _0x55ad33(_0x58148a,_0x586ba1){return _0xdfe442(_0x58148a- -0x236,_0x586ba1);}_0x41ef4f[_0x1ad95e(-0x186,-0x1aa)]&&this['options']['particlesTextureSize']!==_0x41ef4f[_0x1ad95e(-0x22f,-0x1aa)]&&(_0x552db8=!![]);function _0x1ad95e(_0x5ac4ac,_0x469d14){return _0x35cf84(_0x5ac4ac,_0x469d14- -0x4bc);}const _0x1d39f5=deepMerge(_0x41ef4f,this['options']);if(_0x1d39f5['particlesTextureSize']<0x1)throw new Error(_0x1ad95e(-0x17c,-0x10a));this['options']=_0x1d39f5,this['rendering']['updateOptions'](_0x41ef4f),this['computing']['updateOptions'](_0x41ef4f),_0x552db8&&(this[_0x1ad95e(-0x149,-0x14b)]['destroyParticlesTextures'](),this[_0x1ad95e(-0x1bd,-0x14b)][_0x1ad95e(-0xae,-0x110)](),this[_0x1ad95e(-0x23b,-0x1d8)]['onParticlesTextureSizeChange']());}[_0x35cf84(0x36b,0x357)](_0x337393){function _0x50e163(_0x185e68,_0x45290e){return _0x35cf84(_0x185e68,_0x45290e- -0x111);}this['viewerParameters']=_0x337393,this['computing']['viewerParameters']=_0x337393,this[_0x50e163(0x17d,0x1d3)]['viewerParameters']=_0x337393;}['destroy'](){function _0x3d600a(_0x1e59bf,_0x3fad8d){return _0xdfe442(_0x1e59bf-0x4d0,_0x3fad8d);}this['computing'][_0x1187f7(0x4d2,0x532)]();function _0x1187f7(_0x48f0ea,_0x201881){return _0x35cf84(_0x48f0ea,_0x201881-0x1c9);}this[_0x1187f7(0x518,0x4ad)]['destroy']();}}const Cesium$1=mars3d__namespace[_0x35cf84(0x37a,0x3b8)],BaseLayer$1=mars3d__namespace[_0x35cf84(0x30a,0x352)]['BaseLayer'],_0x38ef2d={};_0x38ef2d[_0x35cf84(0x34f,0x36b)]=0x1,_0x38ef2d[_0x35cf84(0x3a5,0x317)]=0x2;const _0x187329={};_0x187329['min']=0x14,_0x187329['max']=0x64;function _0xdfe442(_0x1ac50e,_0x2915d0){return _0x31c5(_0x1ac50e- -0xf6,_0x2915d0);}const _0x145c2e={};_0x145c2e[_0xdfe442(0x3a,-0x32)]=0x64,_0x145c2e['fixedHeight']=0x0,_0x145c2e[_0xdfe442(0x96,0xac)]=_0x38ef2d,_0x145c2e[_0xdfe442(0xf3,0x184)]=_0x187329,_0x145c2e['speedFactor']=0x1,_0x145c2e['dropRate']=0.003,_0x145c2e['dropRateBump']=0.001,_0x145c2e['colors']=[_0x35cf84(0x382,0x300)],_0x145c2e['flipY']=![],_0x145c2e[_0xdfe442(0xeb,0x15c)]=!![];const DEF_OPTIONS=_0x145c2e;class WindLayer extends BaseLayer$1{constructor(_0x5f4cb5={}){_0x5f4cb5={...DEF_OPTIONS,..._0x5f4cb5},super(_0x5f4cb5),this['_setOptionsHook'](_0x5f4cb5,_0x5f4cb5);}get['layer'](){return this['primitives'];}get[_0x35cf84(0x2eb,0x363)](){function _0x286a5f(_0x49d311,_0x4e65ad){return _0xdfe442(_0x4e65ad- -0x2af,_0x49d311);}function _0x57d26d(_0x3fd902,_0x430fc5){return _0xdfe442(_0x3fd902-0x184,_0x430fc5);}return this[_0x286a5f(-0x1fa,-0x27e)][_0x286a5f(-0x1a6,-0x224)];}set[_0xdfe442(0x8b,0xfe)](_0x28b0f8){function _0x175c08(_0x3001ac,_0x2a06a9){return _0x35cf84(_0x3001ac,_0x2a06a9-0x124);}this['options']['data']=_0x28b0f8,this[_0x175c08(0x441,0x462)](_0x28b0f8);}get['colors'](){function _0x53cafb(_0x15197e,_0x274b2d){return _0x35cf84(_0x274b2d,_0x15197e- -0x45b);}return this['options'][_0x53cafb(-0x14c,-0x193)];}set[_0xdfe442(0x37,-0x3a)](_0x236ce3){this['options']['colors']=_0x236ce3;const _0x1dba46={};function _0x5b3308(_0x997e77,_0x33bc4a){return _0xdfe442(_0x997e77-0x3fa,_0x33bc4a);}function _0x4cc298(_0x4f19a0,_0x4b62b1){return _0xdfe442(_0x4f19a0- -0x278,_0x4b62b1);}_0x1dba46[_0x5b3308(0x431,0x3eb)]=_0x236ce3,this['_setOptionsHook'](this[_0x5b3308(0x42b,0x426)],_0x1dba46);}['_showHook'](_0x4e136f){_0x4e136f?this['_addedHook']():this['_removedHook']();}['_mountedHook'](){}['_addedHook'](){this[_0x2c74e2(0x313,0x33d)]=this[_0x4a2d62(-0x7,0x58)]['scene'];function _0x4a2d62(_0x3ad6ee,_0x5b39b2){return _0xdfe442(_0x5b39b2-0x1b,_0x3ad6ee);}this['camera']=this['_map']['camera'];this[_0x4a2d62(0x7e,0x4c)]['data']&&this['setData'](this[_0x2c74e2(0x2ba,0x2ff)][_0x4a2d62(0x50,0xa6)]);if(!this['windData']||!this['show'])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1[(_0x4a2d62(0xe4,0xe8))](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x4a2d62(0x80,0x8a)]['mode']},this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene'][_0x4a2d62(0x154,0xd5)],this['windData'],this[_0x4a2d62(0xce,0x4c)],this[_0x4a2d62(0x2d,-0x16)],this['scene']),this[_0x2c74e2(0x37c,0x3a4)]=this['particleSystem'][_0x2c74e2(0x32d,0x3bd)]();function _0x2c74e2(_0x56f867,_0x19655d){return _0xdfe442(_0x19655d-0x2ce,_0x56f867);}this['primitives']['forEach'](_0x120ee9=>{function _0x10535e(_0x53362b,_0x45f835){return _0x2c74e2(_0x45f835,_0x53362b- -0x3eb);}this['scene']['primitives'][_0x10535e(-0x11a,-0xf7)](_0x120ee9);}),this[_0x4a2d62(0xd7,0x5d)][_0x2c74e2(0x27c,0x2cf)]=0.01,this['camera']['changed']['addEventListener'](this[_0x2c74e2(0x267,0x2ea)]['bind'](this)),this[_0x2c74e2(0x2c6,0x33d)]['morphComplete']['addEventListener'](this['updateViewerParameters'][_0x2c74e2(0x301,0x2e9)](this)),window[_0x2c74e2(0x414,0x3b6)]('resize',this['updateViewerParameters']['bind'](this));}[_0x35cf84(0x36f,0x2f1)](){this[_0x2c930e(0xe9,0xe3)]['changed']['removeEventListener'](this[_0x2c930e(0xc3,0xb4)]['bind'](this)),this['scene']['morphComplete']['removeEventListener'](this[_0x2c930e(0xc3,0x31)]['bind'](this)),window['removeEventListener']('resize',this[_0x4e0955(0x13e,0x158)]['bind'](this));this[_0x2c930e(0x17d,0x19a)]&&(this['primitives'][_0x2c930e(0xe0,0x121)](_0x8fed32=>{function _0x27bea8(_0x3a37da,_0x5ae59c){return _0x2c930e(_0x5ae59c-0x1da,_0x3a37da);}this[_0x27bea8(0x25d,0x2f0)]['primitives']['remove'](_0x8fed32);}),delete this[_0x4e0955(0x294,0x212)]);function _0x2c930e(_0x3087ca,_0x2849c4){return _0xdfe442(_0x3087ca-0xa7,_0x2849c4);}function _0x4e0955(_0x8180f7,_0x380b6e){return _0x35cf84(_0x8180f7,_0x380b6e- -0x19c);}this['particleSystem']&&(this['particleSystem'][_0x4e0955(0x191,0x1cd)](),delete this['particleSystem']);}['setData'](_0x12ea92,_0x160629){function _0x19da6b(_0x28e43c,_0x2ba7eb){return _0x35cf84(_0x28e43c,_0x2ba7eb- -0x2f2);}this['windData']=this[_0xbe30e8(0x28d,0x234)](_0x12ea92);if(_0x160629){this['_removedHook'](),this['_addedHook']();return;}function _0xbe30e8(_0x3d7867,_0x1d96ed){return _0x35cf84(_0x3d7867,_0x1d96ed- -0x92);}this[_0xbe30e8(0x22a,0x230)]?(this['particleSystem'][_0xbe30e8(0x286,0x2df)][_0x19da6b(0xfa,0x99)](this['windData']),this[_0x19da6b(-0xd,0x55)]['requestRender']()):this[_0x19da6b(0x137,0xc5)]();}['_setOptionsHook'](_0x36c644,_0x9a73f){function _0x1bc1c8(_0x479b6c,_0x2c1bf9){return _0x35cf84(_0x2c1bf9,_0x479b6c- -0x3d7);}function _0x591b73(_0x4fa0a9,_0x2b9b54){return _0x35cf84(_0x2b9b54,_0x4fa0a9- -0x382);}this['particleSystem']&&(this['particleSystem'][_0x591b73(0x3a,0x9e)](_0x9a73f),this['scene'][_0x591b73(-0x22,-0x70)]());}[_0xdfe442(-0x12,-0x59)](_0x475105){var _0x47938c,_0x1ebd22;const _0x442dff={..._0x475105};function _0x517a83(_0x44b109,_0x35ef15){return _0xdfe442(_0x44b109-0x37e,_0x35ef15);}const _0x28662c=_0x442dff;!_0x28662c['height']&&_0x28662c['rows']&&(_0x28662c[_0x4b4a46(0x3fb,0x43c)]=_0x28662c[_0x517a83(0x3ba,0x327)]);!_0x28662c['width']&&_0x28662c['cols']&&(_0x28662c['width']=_0x28662c['cols']);!_0x28662c[_0x4b4a46(0x42d,0x42b)]&&(_0x28662c['bounds']={'west':_0x28662c['xmin'],'south':_0x28662c[_0x4b4a46(0x4d4,0x45d)],'east':_0x28662c[_0x4b4a46(0x3ee,0x451)],'north':_0x28662c[_0x517a83(0x3a9,0x388)]});if(!_0x28662c['u']){const _0x1cd137={};_0x1cd137['array']=_0x475105['udata'],_0x1cd137['min']=_0x475105[_0x517a83(0x362,0x2f1)],_0x1cd137[_0x4b4a46(0x42e,0x427)]=_0x475105[_0x4b4a46(0x488,0x486)],_0x28662c['u']=_0x1cd137;}if(!_0x28662c['v']){const _0x3dd99a={};_0x3dd99a[_0x517a83(0x42d,0x493)]=_0x475105['vdata'],_0x3dd99a[_0x4b4a46(0x3e6,0x47b)]=_0x475105[_0x517a83(0x3fc,0x461)],_0x3dd99a[_0x517a83(0x3bd,0x3ac)]=_0x475105[_0x517a83(0x3d6,0x45c)],_0x28662c['v']=_0x3dd99a;}if(((_0x47938c=_0x28662c['speed'])===null||_0x47938c===void 0x0?void 0x0:_0x47938c[_0x4b4a46(0x462,0x47b)])===undefined||((_0x1ebd22=_0x28662c[_0x4b4a46(0x408,0x3ea)])===null||_0x1ebd22===void 0x0?void 0x0:_0x1ebd22['max'])===undefined||_0x28662c['speed'][_0x517a83(0x42d,0x452)]===undefined){const _0x72150={'array':new Float32Array(_0x28662c['u']['array']['length']),'min':Number[_0x517a83(0x3e9,0x471)],'max':Number['MIN_VALUE']};for(let _0x3e3f47=0x0;_0x3e3f47<_0x28662c['u']['array']['length'];_0x3e3f47++){_0x72150['array'][_0x3e3f47]=Math['sqrt'](_0x28662c['u']['array'][_0x3e3f47]*_0x28662c['u'][_0x4b4a46(0x4e8,0x497)][_0x3e3f47]+_0x28662c['v'][_0x4b4a46(0x49a,0x497)][_0x3e3f47]*_0x28662c['v']['array'][_0x3e3f47]),_0x72150['array'][_0x3e3f47]!==0x0&&(_0x72150['min']=Math[_0x4b4a46(0x3f5,0x47b)](_0x72150['min'],_0x72150['array'][_0x3e3f47]),_0x72150['max']=Math[_0x4b4a46(0x456,0x427)](_0x72150[_0x4b4a46(0x455,0x427)],_0x72150['array'][_0x3e3f47]));}_0x28662c[_0x517a83(0x380,0x370)]=_0x72150;}function _0x4b4a46(_0x343d90,_0xea099e){return _0xdfe442(_0xea099e-0x3e8,_0x343d90);}return _0x28662c;}['updateViewerParameters'](){var _0x1ebf1f;const _0x441111=this['scene'];if(!_0x441111)return;const _0x5bac32=_0x441111['canvas'],_0x11e1bd={};_0x11e1bd['x']=0x0,_0x11e1bd['y']=0x0;const _0x13f212={};_0x13f212['x']=0x0,_0x13f212['y']=_0x5bac32[_0x215c0f(0x3e4,0x44b)];const _0x1d410f={};_0x1d410f['x']=_0x5bac32[_0x215c0f(0x382,0x3db)],_0x1d410f['y']=0x0;const _0x2b41b7={};_0x2b41b7['x']=_0x5bac32['clientWidth'],_0x2b41b7['y']=_0x5bac32['clientHeight'];const _0x58aa3f=[_0x11e1bd,_0x13f212,_0x1d410f,_0x2b41b7];let _0x4b0458=0xb4,_0x3dc493=-0xb4;function _0x215c0f(_0x149d35,_0x35df84){return _0x35cf84(_0x35df84,_0x149d35-0x61);}let _0x3b4bed=0x5a,_0x214e63=-0x5a;function _0x4579c3(_0x437a23,_0x33ae23){return _0xdfe442(_0x33ae23- -0x1d3,_0x437a23);}let _0x22d0fe=![];for(const _0xfd31a4 of _0x58aa3f){const _0x4a2388=_0x441111['camera'][_0x215c0f(0x3d9,0x360)](new Cesium$1['Cartesian2'](_0xfd31a4['x'],_0xfd31a4['y']),_0x441111[_0x4579c3(-0x161,-0x1b2)]['ellipsoid']);if(!_0x4a2388){_0x22d0fe=!![];break;}const _0x4b2305=_0x441111[_0x4579c3(-0x130,-0x1b2)]['ellipsoid']['cartesianToCartographic'](_0x4a2388),_0x430a62=Cesium$1[_0x215c0f(0x3f1,0x466)]['toDegrees'](_0x4b2305[_0x4579c3(-0x106,-0x172)]),_0x23ea83=Cesium$1['Math']['toDegrees'](_0x4b2305['latitude']);_0x4b0458=Math['min'](_0x4b0458,_0x430a62),_0x3dc493=Math['max'](_0x3dc493,_0x430a62),_0x3b4bed=Math['min'](_0x3b4bed,_0x23ea83),_0x214e63=Math[_0x4579c3(-0x1dd,-0x194)](_0x214e63,_0x23ea83);}if(!_0x22d0fe){const _0x4efea1=new Cesium$1['Cartesian2'](Math[_0x215c0f(0x378,0x359)](this[_0x215c0f(0x36c,0x313)]['bounds']['west'],_0x4b0458),Math[_0x215c0f(0x3cc,0x34b)](this['windData']['bounds']['east'],_0x3dc493)),_0x2e220f=new Cesium$1['Cartesian2'](Math['max'](this['windData']['bounds'][_0x4579c3(-0x15e,-0x178)],_0x3b4bed),Math[_0x4579c3(-0x19f,-0x140)](this[_0x4579c3(-0x159,-0x1a0)]['bounds'][_0x4579c3(-0x140,-0x10c)],_0x214e63)),_0x4edf4f=(_0x4efea1['y']-_0x4efea1['x'])*0.05,_0x21ab27=(_0x2e220f['y']-_0x2e220f['x'])*0.05;_0x4efea1['x']=Math['max'](this['windData']['bounds']['west'],_0x4efea1['x']-_0x4edf4f),_0x4efea1['y']=Math['min'](this['windData'][_0x215c0f(0x37c,0x39e)][_0x4579c3(-0xfd,-0x17a)],_0x4efea1['y']+_0x4edf4f),_0x2e220f['x']=Math[_0x215c0f(0x378,0x33d)](this[_0x4579c3(-0x1d2,-0x1a0)][_0x215c0f(0x37c,0x2ed)][_0x4579c3(-0x1ee,-0x178)],_0x2e220f['x']-_0x21ab27),_0x2e220f['y']=Math[_0x215c0f(0x3cc,0x463)](this['windData'][_0x215c0f(0x37c,0x3e4)][_0x215c0f(0x400,0x418)],_0x2e220f['y']+_0x21ab27),this['viewerParameters'][_0x215c0f(0x3d8,0x3a3)]=_0x4efea1,this[_0x215c0f(0x308,0x367)]['latRange']=_0x2e220f;const _0x64cb02=this['windData'][_0x215c0f(0x37c,0x313)][_0x215c0f(0x392,0x3ea)]-this['windData'][_0x4579c3(-0x226,-0x190)][_0x215c0f(0x338,0x2bc)],_0x2f9024=this['windData'][_0x4579c3(-0x154,-0x190)][_0x215c0f(0x400,0x420)]-this[_0x215c0f(0x36c,0x2de)]['bounds']['south'],_0x2bd77e=(_0x4efea1['y']-_0x4efea1['x'])/_0x64cb02,_0x992600=(_0x2e220f['y']-_0x2e220f['x'])/_0x2f9024,_0x4e89b8=Math['min'](_0x2bd77e,_0x992600),_0x108553=0x3e8*_0x4e89b8;_0x108553>0x0&&(this['viewerParameters']['pixelSize']=Math[_0x215c0f(0x378,0x30e)](0x0,Math[_0x4579c3(-0x1d0,-0x140)](0x3e8,_0x108553)));}this['viewerParameters']['sceneMode']=this[_0x4579c3(-0x135,-0x164)][_0x215c0f(0x348,0x372)],(_0x1ebf1f=this['particleSystem'])===null||_0x1ebf1f===void 0x0||_0x1ebf1f[_0x4579c3(-0xeb,-0x154)](this['viewerParameters']);}['getDataAtLonLat'](_0x28cbff,_0x138abc){const {bounds:_0x115d2d,width:_0x333729,height:_0x12e278,u:_0x56bfcb,v:_0xab8b4e,speed:_0x4ae218}=this[_0x1525a7(-0x16d,-0x1e8)],{flipY:_0x41f2e0}=this['options'];if(_0x28cbff<_0x115d2d[_0x3b149a(0x498,0x478)]||_0x28cbff>_0x115d2d[_0x1525a7(-0x147,-0xf0)]||_0x138abc<_0x115d2d['south']||_0x138abc>_0x115d2d[_0x3b149a(0x560,0x542)])return null;const _0x2b4a57=(_0x28cbff-_0x115d2d['west'])/(_0x115d2d[_0x1525a7(-0x147,-0x152)]-_0x115d2d[_0x1525a7(-0x1a1,-0x114)])*(_0x333729-0x1);let _0x5bc3b8=(_0x138abc-_0x115d2d[_0x1525a7(-0x145,-0x145)])/(_0x115d2d['north']-_0x115d2d['south'])*(_0x12e278-0x1);_0x41f2e0&&(_0x5bc3b8=_0x12e278-0x1-_0x5bc3b8);const _0x263c69=Math[_0x1525a7(-0xf4,-0x8f)](_0x2b4a57),_0x2c064e=Math['floor'](_0x5bc3b8),_0x4b5acb=Math['floor'](_0x2b4a57),_0x5643f4=Math[_0x1525a7(-0x10d,-0x115)](_0x4b5acb+0x1,_0x333729-0x1),_0x34cadf=Math['floor'](_0x5bc3b8),_0x1509d4=Math['min'](_0x34cadf+0x1,_0x12e278-0x1),_0x4554a4=_0x2b4a57-_0x4b5acb,_0x4dd778=_0x5bc3b8-_0x34cadf,_0x2658ed=_0x2c064e*_0x333729+_0x263c69,_0x48aedd=_0x34cadf*_0x333729+_0x4b5acb;function _0x3b149a(_0x6026df,_0x363adf){return _0x35cf84(_0x363adf,_0x6026df-0x1c1);}const _0xe24aa0=_0x34cadf*_0x333729+_0x5643f4,_0x46a947=_0x1509d4*_0x333729+_0x4b5acb,_0xa20336=_0x1509d4*_0x333729+_0x5643f4,_0x425d19=_0x56bfcb['array'][_0x48aedd],_0x9f64dc=_0x56bfcb[_0x3b149a(0x548,0x527)][_0xe24aa0];function _0x1525a7(_0x2dd141,_0x523d04){return _0x35cf84(_0x523d04,_0x2dd141- -0x478);}const _0x544e2d=_0x56bfcb['array'][_0x46a947],_0x29779c=_0x56bfcb['array'][_0xa20336],_0x4c84b2=(0x1-_0x4554a4)*(0x1-_0x4dd778)*_0x425d19+_0x4554a4*(0x1-_0x4dd778)*_0x9f64dc+(0x1-_0x4554a4)*_0x4dd778*_0x544e2d+_0x4554a4*_0x4dd778*_0x29779c,_0x2c3320=_0xab8b4e['array'][_0x48aedd],_0xb8db1f=_0xab8b4e[_0x1525a7(-0xf1,-0xd5)][_0xe24aa0],_0x14e7dd=_0xab8b4e[_0x1525a7(-0xf1,-0xcc)][_0x46a947],_0x1129a0=_0xab8b4e[_0x1525a7(-0xf1,-0x12f)][_0xa20336],_0x1e449d=(0x1-_0x4554a4)*(0x1-_0x4dd778)*_0x2c3320+_0x4554a4*(0x1-_0x4dd778)*_0xb8db1f+(0x1-_0x4554a4)*_0x4dd778*_0x14e7dd+_0x4554a4*_0x4dd778*_0x1129a0,_0x378383=Math['sqrt'](_0x4c84b2*_0x4c84b2+_0x1e449d*_0x1e449d),_0x3702e8={};_0x3702e8['u']=_0x56bfcb[_0x1525a7(-0xf1,-0x185)][_0x2658ed],_0x3702e8['v']=_0xab8b4e['array'][_0x2658ed],_0x3702e8[_0x3b149a(0x49b,0x4a1)]=_0x4ae218[_0x1525a7(-0xf1,-0xcc)][_0x2658ed];const _0x269bff={};_0x269bff['u']=_0x4c84b2,_0x269bff['v']=_0x1e449d,_0x269bff[_0x3b149a(0x49b,0x479)]=_0x378383;const _0x595361={};return _0x595361[_0x3b149a(0x529,0x56d)]=_0x3702e8,_0x595361['interpolated']=_0x269bff,_0x595361;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace[_0x35cf84(0x36e,0x352)][_0x35cf84(0x34f,0x3b0)]=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this['lat']=null;function _0x48d59b(_0x553cf0,_0x2f4c3e){return _0xdfe442(_0x2f4c3e-0xff,_0x553cf0);}this[_0x415bdd(-0x226,-0x1d5)]=null,this['tlat']=null;function _0x415bdd(_0x52d2e4,_0x55ec21){return _0x35cf84(_0x55ec21,_0x52d2e4- -0x4f8);}this[_0x48d59b(0x208,0x1b1)]=null,this['speed']=null;}['destroy'](){for(const _0x227a57 in this){delete this[_0x227a57];}}}class CanvasWindField{constructor(_0x5e2ddd){this['setOptions'](_0x5e2ddd);}get[_0xdfe442(-0x14,-0x11)](){function _0x1e2b25(_0x590550,_0x473f88){return _0x35cf84(_0x473f88,_0x590550-0xfb);}return this[_0x1e2b25(0x3c3,0x3d7)];}set['speedRate'](_0x35bb49){function _0x2cd9bb(_0x1d07f1,_0x329944){return _0xdfe442(_0x1d07f1- -0x150,_0x329944);}this['_speedRate']=(0x64-(_0x35bb49>0x63?0x63:_0x35bb49))*0x64;function _0x37682f(_0x19c98b,_0x226975){return _0xdfe442(_0x19c98b-0x1d9,_0x226975);}this['_calc_speedRate']=[(this[_0x37682f(0x242,0x244)]-this['xmin'])/this['_speedRate'],(this[_0x37682f(0x204,0x1ec)]-this['ymin'])/this['_speedRate']];}get['maxAge'](){function _0x276ce6(_0x260ef7,_0x568b7b){return _0x35cf84(_0x568b7b,_0x260ef7-0x11e);}return this[_0x276ce6(0x476,0x41c)];}set['maxAge'](_0x48d5b0){function _0x352045(_0x50b83,_0x1f56be){return _0x35cf84(_0x1f56be,_0x50b83- -0xa9);}this[_0x352045(0x2af,0x2a3)]=_0x48d5b0;}[_0xdfe442(0x38,-0x42)](_0x451ff6){function _0x493b99(_0x181c2b,_0x1d02f5){return _0x35cf84(_0x181c2b,_0x1d02f5-0x1e4);}this['options']=_0x451ff6,this['maxAge']=_0x451ff6['maxAge']||0x78,this[_0x493b99(0x461,0x4a8)]=_0x451ff6['speedRate']||0x32,this['particles']=[];function _0x2a70c8(_0x53d937,_0x2c113f){return _0x35cf84(_0x2c113f,_0x53d937- -0x1cf);}const _0xee2135=_0x451ff6['particlesNumber']||0x1000;for(let _0x4124cf=0x0;_0x4124cf<_0xee2135;_0x4124cf++){const _0x4dc6b4=this[_0x2a70c8(0x1ad,0x195)](new CanvasParticle());this[_0x2a70c8(0xe8,0x96)]['push'](_0x4dc6b4);}}[_0x35cf84(0x405,0x3ba)](_0x50e913){this['rows']=_0x50e913['rows'],this['cols']=_0x50e913[_0x3972cd(-0x5e,-0xc3)],this['xmin']=_0x50e913['xmin'],this['xmax']=_0x50e913[_0x2d1261(0x1b5,0x1fb)];function _0x3972cd(_0x26f3d4,_0x2db1e0){return _0x35cf84(_0x26f3d4,_0x2db1e0- -0x377);}this[_0x2d1261(0x1c1,0x22d)]=_0x50e913[_0x2d1261(0x1c1,0x134)],this['ymax']=_0x50e913[_0x3972cd(-0xd2,-0x74)],this['grid']=[];const _0xe6a99b=_0x50e913[_0x3972cd(-0x5e,-0x41)],_0x4a483a=_0x50e913['vdata'];function _0x2d1261(_0x3b4fdd,_0x56f93d){return _0xdfe442(_0x3b4fdd-0x14c,_0x56f93d);}let _0x499560=![];_0xe6a99b['length']===this[_0x2d1261(0x188,0x1fe)]&&_0xe6a99b[0x0]['length']===this['cols']&&(_0x499560=!![]);let _0x47dead=0x0,_0x2eae96=null,_0x4d74b7=null;for(let _0x2327dd=0x0;_0x2327dd<this[_0x3972cd(-0x63,-0x63)];_0x2327dd++){_0x2eae96=[];for(let _0x579c41=0x0;_0x579c41<this[_0x2d1261(0x128,0xee)];_0x579c41++,_0x47dead++){_0x499560?_0x4d74b7=this['_calcUV'](_0xe6a99b[_0x2327dd][_0x579c41],_0x4a483a[_0x2327dd][_0x579c41]):_0x4d74b7=this['_calcUV'](_0xe6a99b[_0x47dead],_0x4a483a[_0x47dead]),_0x2eae96['push'](_0x4d74b7);}this['grid']['push'](_0x2eae96);}!this['options']['flipY']&&this['grid']['reverse']();}[_0xdfe442(0x16,0x11)](){delete this['rows'],delete this[_0x5cb945(0x33b,0x39d)];function _0x29c20d(_0xedbcfe,_0x10ed1e){return _0x35cf84(_0xedbcfe,_0x10ed1e-0xb6);}function _0x5cb945(_0x5e27c3,_0x2a8230){return _0xdfe442(_0x5e27c3-0x35f,_0x2a8230);}delete this['xmin'],delete this[_0x29c20d(0x47c,0x3f7)],delete this[_0x5cb945(0x3d4,0x408)],delete this['ymax'],delete this['grid'],delete this['particles'];}[_0x35cf84(0x39c,0x361)](_0x30fcad,_0x2b3c02){function _0x44e753(_0x11158a,_0x35f6ca){return _0x35cf84(_0x35f6ca,_0x11158a-0x42);}const _0x58f113=(_0x30fcad-this[_0x269147(0x281,0x2fc)])/(this['xmax']-this[_0x44e753(0x36f,0x3b2)])*(this['cols']-0x1),_0x331f6f=(this['ymax']-_0x2b3c02)/(this['ymax']-this['ymin'])*(this['rows']-0x1);function _0x269147(_0x2512ad,_0x24fd4e){return _0xdfe442(_0x2512ad-0x22c,_0x24fd4e);}return[_0x58f113,_0x331f6f];}['getUVByXY'](_0x49ae65,_0x7fb364){if(_0x49ae65<0x0||_0x49ae65>=this[_0x4a32ed(0x12,-0x9)]||_0x7fb364>=this['rows'])return[0x0,0x0,0x0];function _0x123210(_0x2a7019,_0x21e3f2){return _0xdfe442(_0x2a7019- -0x251,_0x21e3f2);}const _0x33221a=Math[_0x123210(-0x1a5,-0x225)](_0x49ae65),_0x111d34=Math[_0x4a32ed(0x128,0xc7)](_0x7fb364);if(_0x33221a===_0x49ae65&&_0x111d34===_0x7fb364)return this[_0x123210(-0x167,-0x1aa)][_0x7fb364][_0x49ae65];const _0x32ef29=_0x33221a+0x1,_0x3dd836=_0x111d34+0x1,_0x369c3d=this['getUVByXY'](_0x33221a,_0x111d34),_0x433a5b=this[_0x123210(-0x24a,-0x1f2)](_0x32ef29,_0x111d34),_0x54b287=this['getUVByXY'](_0x33221a,_0x3dd836);function _0x4a32ed(_0x134de1,_0x3582fd){return _0x35cf84(_0x134de1,_0x3582fd- -0x2bd);}const _0x34b4ee=this[_0x123210(-0x24a,-0x1c9)](_0x32ef29,_0x3dd836);let _0x21d55b=null;try{_0x21d55b=this['_bilinearInterpolation'](_0x49ae65-_0x33221a,_0x7fb364-_0x111d34,_0x369c3d,_0x433a5b,_0x54b287,_0x34b4ee);}catch(_0xc1c852){console[_0x123210(-0x23e,-0x1ed)](_0x49ae65,_0x7fb364);}return _0x21d55b;}['_bilinearInterpolation'](_0x29ed22,_0x1fca01,_0x37339b,_0x43bcdd,_0x5a410b,_0x2e3bab){const _0x145153=0x1-_0x29ed22,_0x5787dc=0x1-_0x1fca01,_0x5afff6=_0x145153*_0x5787dc,_0x5de2eb=_0x29ed22*_0x5787dc,_0x558697=_0x145153*_0x1fca01,_0x220570=_0x29ed22*_0x1fca01,_0x2ee326=_0x37339b[0x0]*_0x5afff6+_0x43bcdd[0x0]*_0x5de2eb+_0x5a410b[0x0]*_0x558697+_0x2e3bab[0x0]*_0x220570,_0x165085=_0x37339b[0x1]*_0x5afff6+_0x43bcdd[0x1]*_0x5de2eb+_0x5a410b[0x1]*_0x558697+_0x2e3bab[0x1]*_0x220570;return this['_calcUV'](_0x2ee326,_0x165085);}['_calcUV'](_0x1511ef,_0x50a668){function _0x7774e0(_0x1837f4,_0x209ac7){return _0x35cf84(_0x1837f4,_0x209ac7- -0x334);}return[+_0x1511ef,+_0x50a668,Math[_0x7774e0(-0xb1,-0x3f)](_0x1511ef*_0x1511ef+_0x50a668*_0x50a668)];}['getUVByPoint'](_0x219c71,_0x3ec958){function _0x405e94(_0x32e641,_0x4a9534){return _0x35cf84(_0x4a9534,_0x32e641- -0x4db);}if(!this[_0x405e94(-0x156,-0x194)](_0x219c71,_0x3ec958))return null;const _0x2c00bc=this['toGridXY'](_0x219c71,_0x3ec958),_0x4cfefe=this['getUVByXY'](_0x2c00bc[0x0],_0x2c00bc[0x1]);return _0x4cfefe;}[_0xdfe442(0xad,0x62)](_0x4a11ec,_0x40c6f5){function _0x428146(_0x2cbcd2,_0x70e6cf){return _0x35cf84(_0x2cbcd2,_0x70e6cf- -0x38f);}return _0x4a11ec>=this['xmin']&&_0x4a11ec<=this['xmax']&&_0x40c6f5>=this[_0x428146(-0x72,-0x42)]&&_0x40c6f5<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x39b7af=fRandomByfloat(this['xmin'],this[_0x8ccae1(0x57a,0x50f)]),_0x343b9e=fRandomByfloat(this['ymin'],this['ymax']),_0x1e8ca0={};function _0xf68006(_0x5d6040,_0x3b6e94){return _0xdfe442(_0x3b6e94-0x370,_0x5d6040);}_0x1e8ca0[_0xf68006(0x30f,0x362)]=_0x343b9e;function _0x8ccae1(_0x547eda,_0x5178b1){return _0x35cf84(_0x547eda,_0x5178b1-0x1ce);}return _0x1e8ca0['lng']=_0x39b7af,_0x1e8ca0;}['getParticles'](){function _0x3fa354(_0x416f7d,_0x3a7b33){return _0x35cf84(_0x416f7d,_0x3a7b33- -0x280);}let _0x422fa9,_0x274da,_0x485a6f;function _0x9432a6(_0x245e7a,_0x44c0a5){return _0xdfe442(_0x44c0a5- -0x19b,_0x245e7a);}for(let _0x3ded8d=0x0,_0x38abcb=this[_0x9432a6(-0x1d6,-0x1bc)]['length'];_0x3ded8d<_0x38abcb;_0x3ded8d++){let _0x63e257=this[_0x9432a6(-0x23d,-0x1bc)][_0x3ded8d];_0x63e257[_0x9432a6(-0x131,-0xe9)]<=0x0&&(_0x63e257=this['_randomParticle'](_0x63e257));if(_0x63e257['age']>0x0){const _0x229753=_0x63e257['tlng'],_0x438f71=_0x63e257['tlat'];_0x485a6f=this['getUVByPoint'](_0x229753,_0x438f71),_0x485a6f?(_0x422fa9=_0x229753+this[_0x3fa354(0x69,0x30)][0x0]*_0x485a6f[0x0],_0x274da=_0x438f71+this['_calc_speedRate'][0x1]*_0x485a6f[0x1],_0x63e257['lng']=_0x229753,_0x63e257['lat']=_0x438f71,_0x63e257[_0x9432a6(-0x211,-0x1a1)]=_0x422fa9,_0x63e257[_0x9432a6(-0x1a3,-0x13f)]=_0x274da,_0x63e257[_0x9432a6(-0x14f,-0x199)]=_0x485a6f[0x2],_0x63e257[_0x3fa354(0xae,0x10a)]--):_0x63e257[_0x3fa354(0xaf,0x10a)]=0x0;}}return this['particles'];}['_randomParticle'](_0x1aaf37){let _0x4bd6d1,_0x497017;for(let _0xeccddb=0x0;_0xeccddb<0x1e;_0xeccddb++){_0x4bd6d1=this['getRandomLatLng'](),_0x497017=this['getUVByPoint'](_0x4bd6d1['lng'],_0x4bd6d1['lat']);if(_0x497017&&_0x497017[0x2]>0x0)break;}if(!_0x497017)return _0x1aaf37;const _0x4df11b=_0x4bd6d1['lng']+this[_0x378339(-0xd0,-0xb3)][0x0]*_0x497017[0x0],_0x3e3509=_0x4bd6d1['lat']+this['_calc_speedRate'][0x1]*_0x497017[0x1];_0x1aaf37['lng']=_0x4bd6d1['lng'],_0x1aaf37[_0x378339(-0xef,-0x99)]=_0x4bd6d1[_0x5c1781(0x377,0x305)];function _0x378339(_0x3ec4a4,_0x5386d8){return _0x35cf84(_0x3ec4a4,_0x5386d8- -0x363);}_0x1aaf37[_0x5c1781(0x37f,0x3f7)]=_0x4df11b,_0x1aaf37[_0x5c1781(0x3e1,0x374)]=_0x3e3509;function _0x5c1781(_0x467e83,_0x453477){return _0x35cf84(_0x453477,_0x467e83-0xad);}return _0x1aaf37['age']=Math['round'](0xa+Math['random']()*this[_0x5c1781(0x44d,0x401)]),_0x1aaf37[_0x378339(-0xff,-0x89)]=_0x497017[0x2],_0x1aaf37;}['destroy'](){for(const _0x4a01db in this){delete this[_0x4a01db];}}}function fRandomByfloat(_0x5405ab,_0x280afe){return _0x5405ab+Math['random']()*(_0x280afe-_0x5405ab);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];function _0x2731(){const _0x2e10a5=['cos','ymax','_createCanvas','commandToExecute','#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','isDestroyed','UNSIGNED_INT','options','475925vhPWfF','windData','vertexArray','_animateFrame','owner','colors','setOptions','forEach','particlesTextureSize','depthMask','rows','_map','createPrimitives','max','getCalculateSpeedShader','positionWC','camera','bounds','displayRange','framebuffers','push','error','type','clientWidth','dropRateBump','calculateSpeed','fromGeometry','value','sceneMode','create','particlesNumber','atan2','canvas','postMessage','height','xmin','mouseDown','talt','vmax','east','magnificationFilter','south','tlat','enabled','udata','getU','rawRenderState','longitude','particlesTextures','min\x20is\x20undefined,\x20calculate\x20min','initWorker','64041AnFSPb','setData','frameRateMonitor','off','xmax','Draw','MAX_VALUE','textures','zIndex','modelMatrix','scene','updatePosition','prototype','createComputingPrimitives','dropRate','#ffffff','ymin','update','warn','windField','pointerEvents','layer','_onMouseMoveEvent','globalCompositeOperation','segmentsColor','vmin','applyViewerParameters','_maxAge','useViewerBounds','PointTrans','getDefaultRenderState','vertexShaderSource','fromDegrees','speedFactor','outputTexture','requestRender','toGridXY','strokeStyle','data','samplingWindow','particlesSpeed','36JGHEXG','_onMouseDownEvent','original','destroy','commandType','min','renderState','FLOAT','lineWidth','hidden','windTextures','computing','onColorTableChange','Cartesian3','_colorRamp','mouseHidden','umax','lonRange','pickEllipsoid','272230zZFukW','UNSIGNED_BYTE','#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','_randomParticle','geometry','canvasHeight','postProcessingPosition','getDirection','frameRateAdjustment','latRange','clientHeight','floor','isInExtent','createRenderingTextures','array','createWindTextures','_pointerEvents','age','updateWindData','visible','CLAMP_TO_EDGE','green','destination-in','Math','execute','context','_tomap','steps','length','resize','fixedHeight','componentDatatype','uniformMap','mouse_move','frameRate','register','0px','componentsPerAttribute','north','maxAge','frameTime','SCENE3D','initFrameRate','unbindEvent','Cartesian2','3505152XkotKr','style','getColor','lineTo','toDegrees','pointer-events','createParticlesTextures','primitiveType','primitives','_drawLines','WindLayer','OPAQUE','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','7173EJaRzS','random','wrapS','createRenderingFramebuffers','_addedHook','Cesium','1539778zUbEgK','setDate','beginPath','changeOptions','default','13170968gwuhYU','isArray','addEventListener','top','grid','dynamic','shaderProgram','isDynamic','currentParticlesPosition','getPrimitives','canvasContext','getSegmentDrawFragmentShader','createCommand','lineLength','attributeLocations','_updateIng2','pixelFormat','mouse_down','EventType','_setOptionsHook','now','LINEAR','viewerParameters','fromCssColorString','position','bufferUsage','segmentsDepth','values','onParticlesTextureSizeChange','width','fill','_calc_speedRate','stroke','mouseMove','RED','cols','_canrefresh','_updateIng','particles','lighter','_mountedHook','init','drawingBufferHeight','umin','show','preExecute','ONE_MINUS_SRC_ALPHA','pow','reCreateWindTextures','particleSystem','RGBA','speedRate','clearCommand','processWindData','17830zIhZye','_speedRate','getV','lat','Unknown\x20command\x20type','logInfo','SRC_ALPHA','bindEvent','segments','visibility','canvasWind','tlng','all','drawingBufferWidth','blendFuncDestination','moveTo','west','fromCache','percentageChanged','speed','add','nextParticlesPosition','requestAnimationFrame','worker','getUVByXY','pixelDatatype','Compute','none','colorTable','rendering','sin','red','mode','_canvasParticles','WindUtil','createSegmentsGeometry','log','hasOwnProperty','createColorTableTexture','clear','#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','flipY','_removedHook','mars3d-canvasWind','bind','updateViewerParameters','sqrt','alpha','color','previousParticlesPosition','globe','refreshTimer','180maEHxL','autoClear','Log','redraw','STATIC_DRAW','rgb(206,255,255)','2026-10-15\x2018:59'];_0x2731=function(){return _0x2e10a5;};return _0x2731();}class CanvasWindLayer extends BaseLayer{constructor(_0x234cc1={}){super(_0x234cc1),this['_setOptionsHook'](_0x234cc1);function _0x14481c(_0x1c6799,_0x288cf7){return _0xdfe442(_0x288cf7-0x48f,_0x1c6799);}function _0x3c378c(_0x1120a3,_0x3989ab){return _0xdfe442(_0x1120a3-0x36a,_0x3989ab);}this['canvas']=null,_0x234cc1['colors']&&_0x234cc1[_0x14481c(0x586,0x54b)]&&(this[_0x3c378c(0x406,0x3d0)]=new mars3d__namespace['ColorRamp'](_0x234cc1));}[_0x35cf84(0x2df,0x2a4)](_0x1a1333,_0xefafb6){this['frameTime']=0x3e8/(_0x1a1333['frameRate']||0xa),this['_pointerEvents']=this[_0x1f5166(0x40a,0x3ab)][_0x1f5166(0x3b5,0x3f3)]??![];function _0x1f5166(_0xb319f8,_0x20c61b){return _0xdfe442(_0x20c61b-0x37a,_0xb319f8);}function _0x326ee8(_0x12b354,_0xfc90a2){return _0x35cf84(_0x12b354,_0xfc90a2- -0x405);}this[_0x1f5166(0x3e5,0x399)]=_0x1a1333[_0x326ee8(-0x116,-0x10e)]||_0x1f5166(0x46d,0x3ee),this['lineWidth']=_0x1a1333[_0x326ee8(-0xc4,-0x97)]||0x1,this[_0x326ee8(-0x56,-0x6e)]=_0x1a1333[_0x1f5166(0x460,0x439)]??0x0,this[_0x326ee8(-0x100,-0x115)]=_0x1a1333['flipY']??![],this['windField']&&this[_0x1f5166(0x3ba,0x3f2)][_0x326ee8(-0x121,-0xf5)](_0x1a1333);}get[_0x35cf84(0x306,0x352)](){function _0x5c8375(_0x2af559,_0x18161b){return _0xdfe442(_0x18161b-0x3a8,_0x2af559);}return this[_0x5c8375(0x401,0x3fa)];}get['canvasWidth'](){function _0x42b125(_0x473e6c,_0x5e3471){return _0xdfe442(_0x473e6c-0x39c,_0x5e3471);}return this[_0x42b125(0x3d9,0x414)]['scene']['canvas']['clientWidth'];}get[_0x35cf84(0x309,0x37e)](){function _0x50fbfa(_0x334484,_0x2d3c95){return _0x35cf84(_0x2d3c95,_0x334484- -0x18e);}return this['_map']['scene'][_0x50fbfa(0x19c,0x201)]['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0xdfe442(0x79,0x96)](_0xc91b0b){this['_pointerEvents']=_0xc91b0b;if(!this['canvas'])return;function _0x3e9bb0(_0x259e2e,_0x5f4753){return _0xdfe442(_0x5f4753-0x11f,_0x259e2e);}function _0x33dff3(_0x1bf368,_0x4afe10){return _0x35cf84(_0x4afe10,_0x1bf368- -0x2b4);}_0xc91b0b?this['canvas']['style'][_0x33dff3(0xf7,0x99)]=_0x3e9bb0(0x173,0x11a):this['canvas']['style']['pointer-events']=_0x33dff3(0x2e,0xb8);}get[_0xdfe442(0x50,-0xf)](){return this['options']['particlesNumber'];}set['particlesNumber'](_0x7387a2){function _0x2490f4(_0x56f220,_0xdfff79){return _0x35cf84(_0xdfff79,_0x56f220-0x8b);}this[_0x2655c8(-0x183,-0x1a7)]['particlesNumber']=_0x7387a2,clearTimeout(this[_0x2655c8(-0x1d7,-0x1a0)]);function _0x2655c8(_0x2e1442,_0x3e6322){return _0x35cf84(_0x3e6322,_0x2e1442- -0x48c);}this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){return this['options']['speedRate'];}set['speedRate'](_0x3bd493){function _0x20e591(_0xf2c68e,_0x518af5){return _0x35cf84(_0xf2c68e,_0x518af5-0x3d);}function _0x23f80c(_0x4535f9,_0x38295a){return _0x35cf84(_0x4535f9,_0x38295a- -0x282);}this['options'][_0x23f80c(0x50,0x42)]=_0x3bd493,this[_0x20e591(0x301,0x38d)]&&(this[_0x23f80c(0xe8,0xce)][_0x20e591(0x2ad,0x301)]=_0x3bd493);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x1d1043){function _0x5dd245(_0x7823a1,_0x26e5da){return _0x35cf84(_0x7823a1,_0x26e5da- -0x1f2);}this[_0x55c052(0x4ce,0x546)]['maxAge']=_0x1d1043;function _0x55c052(_0x539873,_0x1667a2){return _0x35cf84(_0x1667a2,_0x539873-0x1c5);}this[_0x55c052(0x515,0x4c6)]&&(this['windField']['maxAge']=_0x1d1043);}get[_0x35cf84(0x309,0x363)](){function _0x26258e(_0x427d36,_0x368d2e){return _0xdfe442(_0x427d36- -0x2ac,_0x368d2e);}return this[_0x26258e(-0x279,-0x1eb)];}set['data'](_0x31ada3){this['setData'](_0x31ada3);}get['rectangle'](){let _0x13ac10=this[_0x5237e9(-0xd0,-0x9e)]['xmin'],_0x311444=this[_0x5237e9(-0x123,-0x9e)]['xmax'],_0x29401f=this['windData'][_0x13c24b(0x85,0x15)];function _0x5237e9(_0x5e9b44,_0x4eb7e9){return _0x35cf84(_0x5e9b44,_0x4eb7e9- -0x3a9);}let _0x2526cd=this['windData']['ymax'];_0x311444>=0x167&&_0x13ac10===0x0&&(_0x13ac10=-0xb4,_0x311444=0xb4);_0x13ac10=Math['max'](_0x13ac10,-0xb4),_0x311444=Math['min'](_0x311444,0xb4),_0x29401f=Math[_0x5237e9(-0xd5,-0x92)](_0x29401f,-0x5a),_0x2526cd=Math[_0x13c24b(0xa3,0x8b)](_0x2526cd,0x5a);function _0x13c24b(_0x5f4c2b,_0x383952){return _0x35cf84(_0x383952,_0x5f4c2b- -0x2c8);}return Cesium['Rectangle'][_0x13c24b(0x95,0x116)](_0x13ac10,_0x29401f,_0x311444,_0x2526cd);}['_showHook'](_0x5d63b6){function _0x4c1702(_0x2fb8ce,_0xbe501a){return _0xdfe442(_0xbe501a-0x16f,_0x2fb8ce);}function _0x18dad1(_0x34fa66,_0x542da3){return _0xdfe442(_0x542da3- -0xad,_0x34fa66);}_0x5d63b6?this['_addedHook']():(this['windData']&&(this['options'][_0x4c1702(0x1d7,0x1fa)]=this[_0x18dad1(-0x11,-0x7a)]),this[_0x4c1702(0x19a,0x188)]());}[_0xdfe442(-0x1f,0x58)](){function _0x42582f(_0x396cdf,_0x3cbc98){return _0x35cf84(_0x3cbc98,_0x396cdf- -0x4a0);}function _0x21d395(_0x338d5d,_0x4c01ea){return _0x35cf84(_0x338d5d,_0x4c01ea- -0x1d4);}this['options'][_0x42582f(-0x1c2,-0x1a5)]?this[_0x21d395(0x1d5,0x168)]():this[_0x21d395(0x144,0x17c)]=new CanvasWindField(this[_0x42582f(-0x197,-0x1fe)]);}['_addedHook'](){this['canvas']=this['_createCanvas']();function _0x40981b(_0x29939c,_0x14b24b){return _0x35cf84(_0x29939c,_0x14b24b- -0x55b);}const _0x459861={};function _0x3c8bcc(_0x4624e9,_0x2f4e1d){return _0xdfe442(_0x2f4e1d-0x414,_0x4624e9);}_0x459861['willReadFrequently']=!![],this[_0x3c8bcc(0x4ce,0x504)]=this['canvas']['getContext']('2d',_0x459861),this[_0x40981b(-0x2bd,-0x28d)](),this['options'][_0x3c8bcc(0x527,0x49f)]&&this['setData'](this['options']['data']);}[_0xdfe442(0x19,0x0)](){this['clear'](),this['unbindEvent']();function _0x1ef869(_0x5e4a53,_0xcd11c6){return _0x35cf84(_0xcd11c6,_0x5e4a53-0xe5);}this['canvas']&&(this['_map']['container']['removeChild'](this['canvas']),delete this[_0x1ef869(0x40f,0x409)]);}[_0x35cf84(0x34d,0x304)](){const _0x2ad9f2=mars3d__namespace['DomUtil'][_0x18fa08(-0x129,-0x17d)]('canvas',_0xeec9f5(0xc7,0x3c),this['_map']['container']);function _0x18fa08(_0x18acea,_0x47ff28){return _0xdfe442(_0x47ff28- -0x1cc,_0x18acea);}_0x2ad9f2['style'][_0x18fa08(-0x216,-0x1fb)]='absolute',_0x2ad9f2['style'][_0xeec9f5(0x106,0x10b)]=_0xeec9f5(0x107,0xe7),_0x2ad9f2[_0x18fa08(-0x14a,-0xfd)]['left']='0px',_0x2ad9f2[_0x18fa08(-0xd1,-0xfd)]['width']=this['_map']['scene']['canvas']['clientWidth']+'px';function _0xeec9f5(_0x364b2c,_0x316ca){return _0x35cf84(_0x364b2c,_0x316ca- -0x2b6);}return _0x2ad9f2['style']['height']=this[_0x18fa08(-0x1c2,-0x18f)][_0xeec9f5(0xdd,0x91)][_0x18fa08(-0xf4,-0x17a)]['clientHeight']+'px',_0x2ad9f2['style']['pointerEvents']=this[_0xeec9f5(0x77,0xd3)]?'auto':'none',_0x2ad9f2[_0x18fa08(-0x6b,-0xfd)][_0x18fa08(-0xd8,-0x15f)]=this[_0xeec9f5(0x9c,0x53)]['zIndex']??0x9,_0x2ad9f2['width']=this[_0x18fa08(-0x19b,-0x18f)]['scene']['canvas'][_0xeec9f5(0x5e,0x6b)],_0x2ad9f2[_0xeec9f5(0x2c,0x76)]=this[_0xeec9f5(-0x3,0x5f)]['scene']['canvas']['clientHeight'],_0x2ad9f2;}[_0x35cf84(0x383,0x396)](){function _0x1d76a8(_0x25556c,_0x2b3100){return _0x35cf84(_0x2b3100,_0x25556c- -0x285);}function _0x5c05ff(_0x5127b3,_0x4101eb){return _0x35cf84(_0x4101eb,_0x5127b3-0x1bf);}this['canvas']&&(this[_0x1d76a8(0xa5,0x126)]['style']['width']=this[_0x1d76a8(0x90,0x31)][_0x1d76a8(0xc2,0x116)][_0x1d76a8(0xa5,0x99)]['clientWidth']+'px',this[_0x1d76a8(0xa5,0xd9)][_0x5c05ff(0x566,0x5f8)][_0x1d76a8(0xa7,0x94)]=this[_0x1d76a8(0x90,0x126)]['scene']['canvas'][_0x5c05ff(0x542,0x4b4)]+'px',this['canvas'][_0x1d76a8(0x29,-0x15)]=this['_map']['scene'][_0x1d76a8(0xa5,0x60)][_0x5c05ff(0x4e0,0x4ef)],this['canvas']['height']=this['_map'][_0x5c05ff(0x506,0x48a)]['canvas']['clientHeight']);}['bindEvent'](){const _0x2ca230=this;let _0x3b1ba4=Date[_0x3aa5c4(0x136,0x10d)]();(function _0x1ae4ad(){function _0x52a396(_0x316449,_0x130ef3){return _0x3aa5c4(_0x130ef3- -0x122,_0x316449);}if(_0x2ca230['isDestroy'])return;_0x2ca230[_0x1629ac(-0x7e,-0xf6)]=window[_0x52a396(-0x1,0x4c)](_0x1ae4ad);function _0x1629ac(_0x19b4c6,_0x171450){return _0x3aa5c4(_0x19b4c6- -0x21c,_0x171450);}if(_0x2ca230[_0x1629ac(-0xce,-0x114)]&&_0x2ca230[_0x52a396(0x33,0xbf)]){const _0x1f10a8=Date['now'](),_0x1bb75c=_0x1f10a8-_0x3b1ba4;_0x1bb75c>_0x2ca230[_0x52a396(0x177,0x110)]&&(_0x3b1ba4=_0x1f10a8-_0x1bb75c%_0x2ca230['frameTime'],_0x2ca230[_0x52a396(0x8d,0xbd)]());}}(),window['addEventListener']('resize',this['resize'][_0x1b6ff4(-0x14f,-0x16e)](this),![]));function _0x1b6ff4(_0x270ad4,_0x3a1378){return _0x35cf84(_0x270ad4,_0x3a1378- -0x461);}this['mouse_down']=![],this[_0x1b6ff4(-0x13e,-0xc7)]=![];function _0x3aa5c4(_0x563138,_0x6c8e4c){return _0x35cf84(_0x6c8e4c,_0x563138- -0x16f);}this['options']['mouseHidden']&&(this[_0x3aa5c4(0x1a6,0x115)]['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x3aa5c4(0x1a6,0x141)]['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x3aa5c4(0x1f8,0x248)],this),this[_0x3aa5c4(0x1a6,0x1b6)]['on'](mars3d__namespace[_0x1b6ff4(-0x194,-0x1be)]['mouseUp'],this['_onMouseUpEvent'],this));}[_0x35cf84(0x323,0x3a4)](){window['cancelAnimationFrame'](this['_animateFrame']);function _0x5a53ea(_0x2e037b,_0x2281e5){return _0x35cf84(_0x2281e5,_0x2e037b- -0xe9);}function _0x54e28(_0x50028c,_0x536ef8){return _0x35cf84(_0x50028c,_0x536ef8- -0x576);}delete this['_animateFrame'],window['removeEventListener'](_0x54e28(-0x225,-0x1e0),this[_0x54e28(-0x244,-0x1e0)]),this['options'][_0x54e28(-0x1cb,-0x201)]&&(this['_map'][_0x54e28(-0x218,-0x236)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map'][_0x5a53ea(0x257,0x293)](mars3d__namespace['EventType'][_0x5a53ea(0x245,0x1db)],this['_onMouseDownEvent'],this),this[_0x5a53ea(0x22c,0x1cb)]['off'](mars3d__namespace[_0x5a53ea(0x1ba,0x157)]['mouseUp'],this['_onMouseUpEvent'],this),this[_0x5a53ea(0x22c,0x1e4)]['off'](mars3d__namespace['EventType'][_0x54e28(-0x313,-0x2c4)],this[_0x5a53ea(0x26a,0x28f)],this));}['_onMapWhellEvent'](_0x2d498c){function _0x5e7779(_0x1a4901,_0x5e96f8){return _0x35cf84(_0x1a4901,_0x5e96f8- -0x145);}clearTimeout(this['refreshTimer']);function _0x2c1314(_0xf5ec38,_0x186563){return _0xdfe442(_0x186563- -0x2d8,_0xf5ec38);}if(!this['show']||!this['canvas'])return;this['canvas']['style'][_0x5e7779(0x1af,0x18b)]='hidden',this[_0x2c1314(-0x2d4,-0x2b6)]=setTimeout(()=>{if(!this['show'])return;this['redraw']();function _0x5d4a16(_0x216aad,_0x59a99e){return _0x5e7779(_0x59a99e,_0x216aad-0x24f);}this['canvas']['style'][_0x5d4a16(0x3da,0x3e9)]='visible';},0xc8);}['_onMouseDownEvent'](_0xe3c77a){this['mouse_down']=!![],this['_map'][_0x1d8f19(0x189,0x1c6)](mars3d__namespace['EventType']['mouseMove'],this[_0x1d8f19(0x19c,0x190)],this);function _0x3145fb(_0x4f342c,_0x51c71d){return _0xdfe442(_0x4f342c-0x272,_0x51c71d);}function _0x1d8f19(_0x26f027,_0x5435a2){return _0x35cf84(_0x5435a2,_0x26f027- -0x1b7);}this[_0x3145fb(0x2af,0x323)]['on'](mars3d__namespace[_0x1d8f19(0xec,0x181)][_0x1d8f19(0xfb,0xe6)],this['_onMouseMoveEvent'],this);}[_0x35cf84(0x3e5,0x353)](_0x3ae592){function _0x5ef783(_0x56e317,_0x3be8e2){return _0xdfe442(_0x3be8e2- -0x2de,_0x56e317);}function _0x12af8f(_0x3cd22d,_0x22fcab){return _0x35cf84(_0x22fcab,_0x3cd22d-0xeb);}if(!this['show']||!this['canvas'])return;this[_0x5ef783(-0x36f,-0x314)]&&(this['canvas'][_0x12af8f(0x492,0x4e6)][_0x12af8f(0x3bb,0x3f1)]=_0x12af8f(0x45a,0x4c1),this[_0x12af8f(0x485,0x480)]=!![]);}['_onMouseUpEvent'](_0x4e3eaa){function _0xcc4131(_0x1b2d7f,_0x1c6ada){return _0x35cf84(_0x1c6ada,_0x1b2d7f- -0x51e);}if(!this['show']||!this['canvas'])return;function _0x263a44(_0x374e97,_0x1df748){return _0xdfe442(_0x374e97-0x16c,_0x1df748);}this[_0x263a44(0x1a9,0x131)][_0x263a44(0x1d4,0x195)](mars3d__namespace[_0x263a44(0x137,0x1b2)]['mouseMove'],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['canvas']['style'][_0x263a44(0x164,0x16f)]=_0x263a44(0x220,0x272),this['mouse_down']=![],this[_0xcc4131(-0x184,-0x1df)]=![];}[_0x35cf84(0x2e3,0x33e)](_0x4c3fd4){this['clear'](),this['windData']=_0x4c3fd4;function _0x3ccc55(_0x159698,_0x54ccf7){return _0x35cf84(_0x159698,_0x54ccf7- -0x31c);}this[_0x3ccc55(-0x62,0x34)]['setDate'](_0x4c3fd4);function _0xbb9db5(_0x341b5b,_0x104e4b){return _0xdfe442(_0x104e4b- -0x154,_0x341b5b);}this[_0x3ccc55(0x5c,-0x1e)]();}['redraw'](){if(!this['show'])return;this['windField'][_0x570e95(0x49d,0x41a)](this['options']);function _0x570e95(_0x174190,_0x4ee6d){return _0x35cf84(_0x4ee6d,_0x174190-0x18d);}this['update']();}[_0x35cf84(0x33a,0x34e)](){if(this[_0x3e0ff2(0x92,0xd6)])return;this[_0x3e0ff2(0x92,0x10)]=!![];if(this['worker'])this['windField']['update']();else{const _0x4a0c09=this[_0x3e0ff2(0x12c,0x117)]['getParticles']();this['_drawLines'](_0x4a0c09);}function _0x3e0ff2(_0x1f23ed,_0x221387){return _0xdfe442(_0x1f23ed-0xb4,_0x221387);}function _0x33fac0(_0x1f6e90,_0x58bbbc){return _0x35cf84(_0x1f6e90,_0x58bbbc- -0x53a);}this['_updateIng']=![];}['_drawLines'](_0x27cc67){this[_0x1c815a(0x397,0x36e)]=_0x27cc67;function _0x4ed509(_0x97db07,_0x2efc5d){return _0xdfe442(_0x2efc5d-0x1fb,_0x97db07);}function _0x1c815a(_0x2f0d08,_0xa21f54){return _0xdfe442(_0xa21f54-0x35e,_0x2f0d08);}this['canvasContext'][_0x1c815a(0x450,0x3da)]=_0x1c815a(0x3d7,0x415),this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext'][_0x4ed509(0x24d,0x277)]=_0x1c815a(0x3b2,0x33e),this[_0x4ed509(0x31f,0x2eb)]['globalAlpha']=0.9;const _0x533dac=this['_map']['scene'][_0x1c815a(0x2dc,0x36d)]!==Cesium['SceneMode'][_0x1c815a(0x445,0x428)],_0x1aed18=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0xbf1f4f=0x0,_0x37c920=_0x27cc67['length'];_0xbf1f4f<_0x37c920;_0xbf1f4f++){const _0x388aac=_0x27cc67[_0xbf1f4f],_0x4eaa93=this[_0x4ed509(0x235,0x2b6)](_0x388aac,_0x388aac['lng'],_0x388aac['lat'],_0x388aac['alt']),_0x406057=this[_0x1c815a(0x39a,0x419)](_0x388aac,_0x388aac[_0x4ed509(0x256,0x1f5)],_0x388aac[_0x4ed509(0x1d4,0x257)],_0x388aac[_0x4ed509(0x24e,0x252)]);if(!_0x4eaa93||!_0x406057)continue;if(_0x533dac&&Math['abs'](_0x4eaa93[0x0]-_0x406057[0x0])>=_0x1aed18)continue;this[_0x4ed509(0x2fb,0x2eb)][_0x1c815a(0x483,0x441)](),this[_0x1c815a(0x4b2,0x44e)][_0x1c815a(0x3b6,0x3f4)]=this['lineWidth'],this[_0x1c815a(0x4de,0x44e)][_0x4ed509(0x1f8,0x285)]=this[_0x4ed509(0x307,0x297)][_0x1c815a(0x3e7,0x42e)](_0x388aac[_0x1c815a(0x367,0x360)]),this['canvasContext']['moveTo'](_0x4eaa93[0x0],_0x4eaa93[0x1]),this[_0x4ed509(0x2d3,0x2eb)]['lineTo'](_0x406057[0x0],_0x406057[0x1]),this[_0x4ed509(0x34d,0x2eb)][_0x1c815a(0x2e6,0x337)]();}else{this[_0x4ed509(0x287,0x2eb)][_0x1c815a(0x3dc,0x441)](),this[_0x1c815a(0x4ad,0x44e)][_0x4ed509(0x2c2,0x291)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this['color'];for(let _0x199f4e=0x0,_0x3526bd=_0x27cc67['length'];_0x199f4e<_0x3526bd;_0x199f4e++){const _0x81fa88=_0x27cc67[_0x199f4e],_0x296091=this[_0x1c815a(0x3c9,0x419)](_0x81fa88,_0x81fa88['lng'],_0x81fa88['lat'],_0x81fa88['alt']),_0x2752d8=this['_tomap'](_0x81fa88,_0x81fa88['tlng'],_0x81fa88['tlat'],_0x81fa88['talt']);if(!_0x296091||!_0x2752d8)continue;if(_0x533dac&&Math['abs'](_0x296091[0x0]-_0x2752d8[0x0])>=_0x1aed18)continue;this['canvasContext'][_0x1c815a(0x344,0x35c)](_0x296091[0x0],_0x296091[0x1]),this['canvasContext'][_0x1c815a(0x411,0x42f)](_0x2752d8[0x0],_0x2752d8[0x1]);}this['canvasContext'][_0x4ed509(0x140,0x1d4)]();}}['_tomap'](_0x53c5d0,_0x2a4b33,_0x5497c5,_0x3501b2){const _0x3173a5=Cesium[_0xbef4a(-0x229,-0x1fa)]['fromDegrees'](_0x2a4b33,_0x5497c5,_0x3501b2??this['fixedHeight']),_0x3ee406=this['_map'][_0xbef4a(-0x241,-0x226)];function _0xbef4a(_0x2891b7,_0x16d2da){return _0x35cf84(_0x2891b7,_0x16d2da- -0x56d);}if(_0x3ee406['mode']===Cesium['SceneMode']['SCENE3D']){const _0x1a6d51=new Cesium['EllipsoidalOccluder'](_0x3ee406[_0xbef4a(-0x1ef,-0x274)]['ellipsoid'],_0x3ee406[_0xbef4a(-0x265,-0x253)][_0xbef4a(-0x1dd,-0x254)]),_0x562b57=_0x1a6d51['isPointVisible'](_0x3173a5);if(!_0x562b57)return _0x53c5d0['age']=0x0,null;}const _0x1897db=mars3d__namespace[_0xbef4a(-0x286,-0x213)]['toWindowCoordinates'](this['_map']['scene'],_0x3173a5);function _0x4c0318(_0x55e418,_0x267970){return _0xdfe442(_0x267970- -0x162,_0x55e418);}return _0x1897db?[_0x1897db['x'],_0x1897db['y']]:null;}[_0x35cf84(0x33b,0x2ee)](){this['windField']['clear'](),delete this['windData'];}['initWorker'](){this[_0x53a3ba(0x79,0xef)]=new Worker(this[_0x53a3ba(0x19a,0x11a)]['worker']);function _0x53a3ba(_0x1d3201,_0x31febb){return _0x35cf84(_0x1d3201,_0x31febb- -0x1ef);}function _0x39838c(_0x15b44b,_0x3f34f5){return _0xdfe442(_0x3f34f5-0x46e,_0x15b44b);}this[_0x39838c(0x4ec,0x474)]['onmessage']=_0xd03cbe=>{this[_0x33138b(-0xf8,-0xcc)](_0xd03cbe[_0x33138b(-0x136,-0x118)][_0x33138b(-0x1df,-0x1c4)]);function _0x33138b(_0x1bb348,_0x1ecbb6){return _0x39838c(_0x1bb348,_0x1ecbb6- -0x611);}function _0x45b475(_0x5dbfc5,_0x416ada){return _0x39838c(_0x5dbfc5,_0x416ada- -0x39a);}this['_updateIng2']=![];},this['windField']={'init':_0x3f404b=>{function _0x2ff90f(_0x3f5d7e,_0x3e63c5){return _0x53a3ba(_0x3f5d7e,_0x3e63c5-0x311);}const _0x120508={};_0x120508[_0x1cff67(0x485,0x3f8)]='init';function _0x1cff67(_0x42abbe,_0x2bc823){return _0x39838c(_0x42abbe,_0x2bc823- -0xbe);}_0x120508['options']=_0x3f404b,this[_0x1cff67(0x422,0x3b6)][_0x2ff90f(0x42a,0x44d)](_0x120508);},'setOptions':_0x449635=>{const _0x2a513a={};_0x2a513a['type']=_0x3147fa(0x433,0x3a2),_0x2a513a['options']=_0x449635;function _0x3147fa(_0x448b16,_0x27c779){return _0x53a3ba(_0x448b16,_0x27c779-0x281);}this['worker']['postMessage'](_0x2a513a);},'setDate':_0x2d2b0d=>{const _0x3c9008={};_0x3c9008['type']=_0x1ca2fd(0x2d5,0x2da),_0x3c9008['data']=_0x2d2b0d;function _0x5160b8(_0x4b81d9,_0x1c9029){return _0x39838c(_0x1c9029,_0x4b81d9- -0x3e7);}function _0x1ca2fd(_0x3b58c1,_0x52ce08){return _0x53a3ba(_0x52ce08,_0x3b58c1-0x10a);}this[_0x1ca2fd(0x1f9,0x1af)][_0x5160b8(0xda,0xc2)](_0x3c9008);},'update':()=>{if(this[_0x198fc8(0x25c,0x25a)])return;this[_0x198fc8(0x263,0x25a)]=!![];function _0x16396e(_0x45b65c,_0xd414a3){return _0x39838c(_0xd414a3,_0x45b65c- -0x86);}const _0x239edf={};_0x239edf[_0x16396e(0x430,0x45d)]='update';function _0x198fc8(_0x3db478,_0x52fe73){return _0x39838c(_0x3db478,_0x52fe73- -0x309);}this['worker']['postMessage'](_0x239edf);},'clear':()=>{function _0x4a309d(_0xcfeb6,_0x21ba63){return _0x39838c(_0xcfeb6,_0x21ba63- -0x5ca);}const _0x475f31={};function _0xa06c6f(_0x50b738,_0x471f5a){return _0x39838c(_0x471f5a,_0x50b738- -0x116);}_0x475f31[_0xa06c6f(0x3a0,0x36f)]='clear',this[_0x4a309d(-0x16d,-0x156)]['postMessage'](_0x475f31);}},this[_0x53a3ba(0x102,0x161)][_0x53a3ba(0x108,0xcb)](this[_0x39838c(0x435,0x49f)]);}}mars3d__namespace['LayerUtil'][_0xdfe442(0xc4,0xd7)](_0xdfe442(-0x7,0x51),CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x35cf84(0x296,0x2fd)][_0x35cf84(0x306,0x2cc)]('mars3d-wind插件注册成功\x20\x20\x20\x20\x20版本:'+version+'\x20\x20\x20\x20编译日期:'+buildTime),mars3d__namespace[_0x35cf84(0x380,0x2e9)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x322657={};_0x322657[_0xdfe442(0x4d,0xca)]=!![],Object['defineProperty'](exports,'__esModule',_0x322657);
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.11.
|
|
3
|
+
"version": "3.11.8",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.11.
|
|
8
|
+
"mars3d": "~3.11.8"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|