mars3d-wind 3.9.6 → 3.9.7

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.
Files changed (2) hide show
  1. package/mars3d-wind.js +3 -3
  2. package/package.json +2 -2
package/mars3d-wind.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.9.6
5
- * 编译日期:2025-04-15 22:20
4
+ * 版本信息:v3.9.7
5
+ * 编译日期:2025-04-21 19:49
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:火星科技免费公开版 ,2025-02-01
8
8
  */
@@ -11,5 +11,5 @@
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';(function(_0x4548aa,_0x5e916a){const _0x56df2e=_0x4548aa();function _0x2400b1(_0x8438cb,_0x5ce37b){return _0x580d(_0x8438cb- -0x25b,_0x5ce37b);}function _0x30ff5f(_0xe57c1f,_0x21a7ac){return _0x580d(_0xe57c1f-0x125,_0x21a7ac);}while(!![]){try{const _0x3a6a72=parseInt(_0x2400b1(-0x1b3,-0x1df))/0x1*(-parseInt(_0x30ff5f(0x258,0x1e9))/0x2)+-parseInt(_0x2400b1(-0x172,-0x140))/0x3*(parseInt(_0x30ff5f(0x243,0x24f))/0x4)+parseInt(_0x2400b1(-0x114,-0x91))/0x5+-parseInt(_0x30ff5f(0x1b3,0x21f))/0x6+parseInt(_0x30ff5f(0x293,0x276))/0x7*(-parseInt(_0x2400b1(-0x1aa,-0x20b))/0x8)+parseInt(_0x2400b1(-0xee,-0x85))/0x9*(-parseInt(_0x2400b1(-0x199,-0x203))/0xa)+-parseInt(_0x2400b1(-0x158,-0x1a2))/0xb*(-parseInt(_0x2400b1(-0xf4,-0x141))/0xc);if(_0x3a6a72===_0x5e916a)break;else _0x56df2e['push'](_0x56df2e['shift']());}catch(_0x58069a){_0x56df2e['push'](_0x56df2e['shift']());}}}(_0x38fc,0x88214));function _interopNamespace(_0x469cf3){function _0x4d18ce(_0x41a68e,_0x3b770d){return _0x580d(_0x3b770d-0x220,_0x41a68e);}if(_0x469cf3&&_0x469cf3['__esModule'])return _0x469cf3;var _0x34a564=Object['create'](null);_0x469cf3&&Object[_0x4e24b3(0x266,0x20f)](_0x469cf3)[_0x4e24b3(0xcb,0x132)](function(_0x1223c5){function _0xdaecb4(_0xf4f0c1,_0x206eb6){return _0x4d18ce(_0xf4f0c1,_0x206eb6- -0x6a);}function _0x40a119(_0x341b4d,_0x524603){return _0x4e24b3(_0x341b4d,_0x524603- -0x3e2);}if(_0x1223c5!==_0xdaecb4(0x2a9,0x298)){var _0x1ecf72=Object['getOwnPropertyDescriptor'](_0x469cf3,_0x1223c5);Object[_0xdaecb4(0x2a9,0x2b5)](_0x34a564,_0x1223c5,_0x1ecf72['get']?_0x1ecf72:{'enumerable':!![],'get':function(){return _0x469cf3[_0x1223c5];}});}});function _0x4e24b3(_0x141a36,_0x31a94f){return _0x580d(_0x31a94f-0xad,_0x141a36);}return _0x34a564['default']=_0x469cf3,_0x34a564;}function _0x1da74e(_0x55fba2,_0x18ec0d){return _0x580d(_0x18ec0d-0x1ec,_0x55fba2);}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x582921,_0x594b8c){const _0xdf4702=_0x582921*Math['cos'](Cesium$2['Math']['toRadians'](_0x594b8c));return _0xdf4702;}function getV(_0xc7d56c,_0x81eb92){const _0x9bc657=_0xc7d56c*Math['sin'](Cesium$2['Math'][_0x112764(-0x14d,-0xca)](_0x81eb92));function _0x112764(_0x3bdb93,_0x22fe2c){return _0x580d(_0x3bdb93- -0x2a8,_0x22fe2c);}return _0x9bc657;}function getSpeed(_0x43e015,_0xb143b2){function _0x4dd8b7(_0x200867,_0x331ffe){return _0x580d(_0x331ffe- -0x391,_0x200867);}function _0x2a7a42(_0x3e68f8,_0x46e681){return _0x580d(_0x3e68f8-0x3d3,_0x46e681);}const _0x4041c8=Math[_0x2a7a42(0x53f,0x4b5)](Math['pow'](_0x43e015,0x2)+Math[_0x4dd8b7(-0x2b5,-0x26c)](_0xb143b2,0x2));return _0x4041c8;}function getDirection(_0x4eb457,_0x176591){let _0x5f4456=Cesium$2['Math']['toDegrees'](Math['atan2'](_0x176591,_0x4eb457));return _0x5f4456+=_0x5f4456<0x0?0x168:0x0,_0x5f4456;}const _0x58b375={};_0x58b375['__proto__']=null,_0x58b375['getU']=getU,_0x58b375['getV']=getV,_0x58b375[_0x5a9f30(0x468,0x4ec)]=getSpeed,_0x58b375[_0x5a9f30(0x429,0x417)]=getDirection;var WindUtil=_0x58b375,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=_0x5a9f30(0x42a,0x4b5),renderParticlesVertexShader=_0x1da74e(0x399,0x30f);const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){function _0x17c273(_0x46739a,_0x2db70e){return _0x1da74e(_0x46739a,_0x2db70e- -0x530);}const _0x3015c9={};return _0x3015c9[_0x17c273(-0x25f,-0x2bc)]=[calculateSpeedShader],new ShaderSource$1(_0x3015c9);}static['getUpdatePositionShader'](){const _0x84d99d={};_0x84d99d[_0x227f00(-0x6b,-0xd4)]=[updatePositionShader];function _0x227f00(_0x467cb0,_0x57f843){return _0x1da74e(_0x467cb0,_0x57f843- -0x348);}return new ShaderSource$1(_0x84d99d);}static[_0x1da74e(0x2cc,0x265)](){const _0x4b4b6b={};function _0x19fffd(_0x5472e5,_0x538735){return _0x5a9f30(_0x5472e5- -0x2b1,_0x538735);}return _0x4b4b6b[_0x19fffd(0xf6,0x70)]=[renderParticlesVertexShader],new ShaderSource$1(_0x4b4b6b);}static['getSegmentDrawFragmentShader'](){const _0x262bb4={};function _0x4f9695(_0x3ec67a,_0x4564c4){return _0x5a9f30(_0x4564c4- -0x61a,_0x3ec67a);}return _0x262bb4[_0x4f9695(-0x23a,-0x273)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x262bb4);}static['getPostProcessingPositionShader'](){const _0x2f4056={};return _0x2f4056['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x2f4056);}}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[_0x5a9f30(0x3fc,0x40e)];class CustomPrimitive{constructor(_0x2c9be3){this['commandType']=_0x2c9be3[_0x1a74e7(0x33a,0x35d)];function _0x193c65(_0x3f77d8,_0x58ea4c){return _0x1da74e(_0x58ea4c,_0x3f77d8- -0x480);}this['geometry']=_0x2c9be3['geometry'],this['attributeLocations']=_0x2c9be3['attributeLocations'],this[_0x193c65(-0x13d,-0xd4)]=_0x2c9be3['primitiveType'],this[_0x193c65(-0x1da,-0x17b)]=_0x2c9be3['uniformMap']||{},this[_0x1a74e7(0x3cd,0x3ff)]=_0x2c9be3['vertexShaderSource'],this['fragmentShaderSource']=_0x2c9be3[_0x193c65(-0x11c,-0x13b)],this['rawRenderState']=_0x2c9be3['rawRenderState'],this['framebuffer']=_0x2c9be3[_0x1a74e7(0x3fb,0x3fc)],this[_0x1a74e7(0x310,0x393)]=_0x2c9be3['outputTexture'],this['autoClear']=_0x2c9be3['autoClear']??![];function _0x1a74e7(_0x5e2a84,_0x5d1372){return _0x1da74e(_0x5d1372,_0x5e2a84-0x9b);}this[_0x1a74e7(0x3e6,0x44b)]=_0x2c9be3['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this[_0x1a74e7(0x3b3,0x3a2)]=undefined,this['isDynamic']=_0x2c9be3[_0x1a74e7(0x2f0,0x2ed)]??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0x1a74e7(0x3b9,0x367)]}));}['createCommand'](_0x42d1cb){function _0x17bb4e(_0x1bf8e6,_0x38b894){return _0x5a9f30(_0x1bf8e6- -0x66c,_0x38b894);}function _0x129bb8(_0x544d9e,_0x543c84){return _0x5a9f30(_0x543c84- -0x51e,_0x544d9e);}if(this[_0x129bb8(-0x128,-0x14c)]==='Draw'){const _0x5a75cb={};_0x5a75cb[_0x129bb8(-0x12a,-0xe8)]=_0x42d1cb,_0x5a75cb[_0x17bb4e(-0x281,-0x24a)]=this['geometry'],_0x5a75cb['attributeLocations']=this['attributeLocations'],_0x5a75cb[_0x129bb8(-0xef,-0xcb)]=BufferUsage$1['STATIC_DRAW'];const _0x1a832b=VertexArray$1[_0x17bb4e(-0x211,-0x1a4)](_0x5a75cb),_0x1da444={};_0x1da444[_0x129bb8(-0x16c,-0xe8)]=_0x42d1cb,_0x1da444['vertexShaderSource']=this['vertexShaderSource'],_0x1da444['fragmentShaderSource']=this['fragmentShaderSource'],_0x1da444['attributeLocations']=this[_0x129bb8(-0x178,-0x18d)];const _0x1fe95c=ShaderProgram[_0x17bb4e(-0x21e,-0x295)](_0x1da444),_0x13e869=RenderState['fromCache'](this[_0x129bb8(-0xb2,-0x8c)]),_0x3e8dc8={};return _0x3e8dc8['owner']=this,_0x3e8dc8['vertexArray']=_0x1a832b,_0x3e8dc8['primitiveType']=this['primitiveType'],_0x3e8dc8[_0x17bb4e(-0x214,-0x295)]=Matrix4['IDENTITY'],_0x3e8dc8['renderState']=_0x13e869,_0x3e8dc8['shaderProgram']=_0x1fe95c,_0x3e8dc8['framebuffer']=this['framebuffer'],_0x3e8dc8['uniformMap']=this[_0x129bb8(-0x177,-0x145)],_0x3e8dc8[_0x17bb4e(-0x2ba,-0x2d3)]=Pass$1['OPAQUE'],new DrawCommand(_0x3e8dc8);}else{if(this[_0x17bb4e(-0x29a,-0x308)]===_0x17bb4e(-0x25e,-0x26f)){const _0x3dde3c={};return _0x3dde3c[_0x129bb8(-0xfd,-0x101)]=this,_0x3dde3c['fragmentShaderSource']=this['fragmentShaderSource'],_0x3dde3c[_0x129bb8(-0x189,-0x145)]=this[_0x129bb8(-0x18d,-0x145)],_0x3dde3c['outputTexture']=this['outputTexture'],_0x3dde3c['persists']=!![],new ComputeCommand(_0x3dde3c);}else throw new Error(_0x129bb8(-0x53,-0x86));}}['setGeometry'](_0x36fd04,_0x16ba03){this['geometry']=_0x16ba03;function _0x12bcc8(_0x26c373,_0x3048b4){return _0x5a9f30(_0x3048b4- -0x6fa,_0x26c373);}function _0x5ab635(_0x37ed1c,_0x30aa66){return _0x5a9f30(_0x37ed1c- -0x2e2,_0x30aa66);}defined(this[_0x5ab635(0x16b,0x1af)])&&(this['commandToExecute']['vertexArray']=VertexArray$1[_0x12bcc8(-0x225,-0x29f)]({'context':_0x36fd04,'geometry':this[_0x5ab635(0x109,0xaa)],'attributeLocations':this[_0x12bcc8(-0x2e5,-0x369)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x5a9f30(0x3be,0x364)](_0x5df4ec){function _0x589fdd(_0x328aeb,_0x286f7f){return _0x5a9f30(_0x286f7f- -0x48a,_0x328aeb);}if(!this[_0x5bbcde(0x3a7,0x424)]())return;if(!this[_0x589fdd(-0x11e,-0xc6)]||!defined(_0x5df4ec))return;!defined(this[_0x5bbcde(0x46c,0x4c7)])&&(this['commandToExecute']=this[_0x589fdd(-0x5c,-0x88)](_0x5df4ec[_0x5bbcde(0x455,0x468)]));defined(this['preExecute'])&&this['preExecute']();if(!_0x5df4ec['commandList']){console['warn']('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x5df4ec['commandList'][_0x5bbcde(0x474,0x477)](this['clearCommand']);function _0x5bbcde(_0x2c7038,_0x363e46){return _0x5a9f30(_0x2c7038-0x1f,_0x363e46);}defined(this[_0x589fdd(0x39,-0x3d)])&&_0x5df4ec['commandList']['push'](this[_0x589fdd(-0x86,-0x3d)]);}['isDestroyed'](){return![];}[_0x1da74e(0x250,0x28c)](){function _0x4f9b98(_0x507f76,_0x53ba2f){return _0x1da74e(_0x53ba2f,_0x507f76- -0x2d2);}if(defined(this['commandToExecute'])){var _0x4050bb;(_0x4050bb=this[_0xea4495(0x18a,0x1e4)]['shaderProgram'])===null||_0x4050bb===void 0x0||_0x4050bb['destroy'](),this['commandToExecute'][_0x4f9b98(-0x3a,0xf)]=undefined;}function _0xea4495(_0x45439f,_0x2ffa8f){return _0x1da74e(_0x45439f,_0x2ffa8f- -0x136);}return destroyObject(this);}}function deepMerge(_0x18b005,_0x26450f){function _0x446039(_0x573697,_0x11b770){return _0x5a9f30(_0x573697- -0x169,_0x11b770);}if(!_0x18b005)return _0x26450f;if(!_0x26450f)return _0x18b005;const _0x3b002e={..._0x26450f},_0x55ccb3=_0x3b002e;for(const _0x355858 in _0x18b005){if(Object[_0x1d358f(0x3e9,0x3a1)]['hasOwnProperty'][_0x1d358f(0x36c,0x30c)](_0x18b005,_0x355858)){const _0x29a53c=_0x18b005[_0x355858],_0x454e53=_0x26450f[_0x355858];if(Array['isArray'](_0x29a53c)){_0x55ccb3[_0x355858]=_0x29a53c['slice']();continue;}if(_0x29a53c&&typeof _0x29a53c===_0x1d358f(0x3ab,0x33f)){_0x55ccb3[_0x355858]=deepMerge(_0x29a53c,_0x454e53||{});continue;}_0x29a53c!==undefined&&(_0x55ccb3[_0x355858]=_0x29a53c);}}function _0x1d358f(_0x1c1034,_0xe3ff8a){return _0x1da74e(_0x1c1034,_0xe3ff8a-0xac);}return _0x55ccb3;}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(_0x3dc4df,_0x36852a,_0x9df63e,_0x2d15e8,_0x4afddf){function _0x5c9c42(_0x517513,_0x4a3d8c){return _0x5a9f30(_0x4a3d8c- -0x177,_0x517513);}function _0x5ed337(_0x500154,_0x46c4a2){return _0x1da74e(_0x500154,_0x46c4a2- -0x532);}this[_0x5c9c42(0x2bd,0x2bf)]=_0x3dc4df,this['options']=_0x9df63e,this[_0x5ed337(-0x233,-0x250)]=_0x2d15e8,this['windData']=_0x36852a,this['frameRate']=0x3c,this[_0x5ed337(-0x287,-0x277)]=0x1;const _0x1c1c40={};_0x1c1c40[_0x5c9c42(0x2fc,0x288)]=_0x4afddf,_0x1c1c40[_0x5ed337(-0x188,-0x1e2)]=0x1,_0x1c1c40[_0x5ed337(-0x2b2,-0x2c6)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x1c1c40),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures'](),this[_0x5c9c42(0x261,0x25a)]();}['initFrameRate'](){const _0x42fe05=()=>{function _0x18b21b(_0xbee8fd,_0x552c45){return _0x580d(_0x552c45- -0x224,_0xbee8fd);}this['frameRateMonitor'][_0x18b21b(-0x11d,-0x107)]>0x14&&(this['frameRate']=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0x42fe05();function _0x5ea1a0(_0x594b33,_0x16e68d){return _0x1da74e(_0x594b33,_0x16e68d- -0x421);}const _0x4d7e6b=setInterval(_0x42fe05,0x3e8),_0x40e36c=this[_0x5ea1a0(-0x134,-0x195)]['bind'](this);this['destroy']=()=>{clearInterval(_0x4d7e6b),_0x40e36c();};}[_0x1da74e(0x34e,0x336)](){const _0x47a0b5={};_0x47a0b5['minificationFilter']=TextureMinificationFilter$1[_0x5b7de9(-0x98,-0x6e)];function _0x5b7de9(_0x11acb1,_0x45b5ff){return _0x5a9f30(_0x45b5ff- -0x4df,_0x11acb1);}_0x47a0b5['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x3d1bd={'context':this['context'],'width':this['windData']['width'],'height':this[_0x42491d(0x41b,0x3c0)]['height'],'pixelFormat':PixelFormat$1[_0x42491d(0x369,0x351)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x5b7de9(-0x61,-0x6d)][_0x5b7de9(-0x1a2,-0x11c)]??![],'sampler':new Sampler$1(_0x47a0b5)};function _0x42491d(_0x2df273,_0x41352d){return _0x1da74e(_0x41352d,_0x2df273-0xdb);}this[_0x42491d(0x385,0x3bc)]={'U':new Texture$1({..._0x3d1bd,'source':{'arrayBufferView':new Float32Array(this[_0x42491d(0x41b,0x49d)]['u'][_0x42491d(0x3af,0x34e)])}}),'V':new Texture$1({..._0x3d1bd,'source':{'arrayBufferView':new Float32Array(this[_0x5b7de9(0x11,-0x6c)]['v'][_0x5b7de9(-0x15e,-0xd8)])}})};}['createParticlesTextures'](){const _0x3f0e11={};_0x3f0e11[_0x270546(-0x397,-0x317)]=TextureMinificationFilter$1[_0x26c510(0x314,0x2b1)],_0x3f0e11[_0x270546(-0x30f,-0x325)]=TextureMagnificationFilter$1['NEAREST'];function _0x270546(_0x26b16c,_0x4c4785){return _0x5a9f30(_0x4c4785- -0x6b9,_0x26b16c);}const _0x2d88cf={'context':this[_0x26c510(0x37c,0x34c)],'width':this[_0x270546(-0x2cf,-0x247)][_0x26c510(0x308,0x2d0)],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0x270546(-0x298,-0x232)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x26c510(0x3b8,0x40b)][_0x270546(-0x313,-0x2f7)]*this['options']['particlesTextureSize']*0x4)[_0x26c510(0x302,0x2f8)](0x0)},'sampler':new Sampler$1(_0x3f0e11)};function _0x26c510(_0x583f73,_0x3426b3){return _0x5a9f30(_0x583f73- -0xba,_0x3426b3);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x2d88cf),'currentParticlesPosition':new Texture$1(_0x2d88cf),'nextParticlesPosition':new Texture$1(_0x2d88cf),'postProcessingPosition':new Texture$1(_0x2d88cf),'particlesSpeed':new Texture$1(_0x2d88cf)};}['destroyParticlesTextures'](){Object['values'](this['particlesTextures'])['forEach'](_0x1a6b80=>_0x1a6b80['destroy']());}['createComputingPrimitives'](){function _0x44098d(_0x29d7ad,_0x1af6e6){return _0x1da74e(_0x29d7ad,_0x1af6e6-0x19a);}function _0x1a622b(_0x1cd294,_0x169ea6){return _0x5a9f30(_0x1cd294- -0x275,_0x169ea6);}this[_0x44098d(0x39a,0x41c)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this[_0x44098d(0x4f1,0x4da)]['u'][_0x1a622b(0x131,0x10b)]),'vRange':()=>new Cartesian2$1(this[_0x44098d(0x524,0x4da)]['v'][_0x44098d(0x4a6,0x4ae)],this['windData']['v'][_0x1a622b(0x131,0x154)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed'][_0x44098d(0x4d7,0x4ae)],this[_0x1a622b(0x1fe,0x251)]['speed'][_0x1a622b(0x131,0x160)]),'currentParticlesPosition':()=>this['particlesTextures'][_0x44098d(0x507,0x4e2)],'speedScaleFactor':()=>{function _0x34b0df(_0x9311cf,_0x4080de){return _0x1a622b(_0x9311cf- -0x31c,_0x4080de);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0x34b0df(-0x11f,-0xfe)]['speedFactor'];},'frameRateAdjustment':()=>this[_0x1a622b(0x179,0x132)],'dimension':()=>new Cartesian2$1(this['windData']['width'],this[_0x1a622b(0x1fe,0x278)]['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0x1a622b(0x1bf,0x1a9)],this[_0x44098d(0x481,0x4da)][_0x1a622b(0x208,0x264)][_0x44098d(0x4e4,0x4a8)]),'maximum':()=>new Cartesian2$1(this[_0x44098d(0x4dd,0x4da)]['bounds'][_0x1a622b(0x153,0x165)],this['windData'][_0x1a622b(0x208,0x208)]['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x1a622b(0x207,0x1e5)][_0x1a622b(0x16a,0x1ab)],'preExecute':()=>{function _0x3668a4(_0x822491,_0x494453){return _0x44098d(_0x494453,_0x822491- -0x6df);}const _0x5cb2d5=this['particlesTextures'][_0x3668a4(-0x224,-0x247)];this[_0x50ba53(0x365,0x3ad)]['previousParticlesPosition']=this[_0x3668a4(-0x1fc,-0x246)][_0x50ba53(0x364,0x38c)];function _0x50ba53(_0x2b170f,_0x114741){return _0x1a622b(_0x2b170f-0x15e,_0x114741);}this['particlesTextures']['currentParticlesPosition']=this['particlesTextures']['postProcessingPosition'],this[_0x3668a4(-0x1fc,-0x281)]['postProcessingPosition']=_0x5cb2d5,this[_0x50ba53(0x29e,0x25d)]['calculateSpeed'][_0x50ba53(0x336,0x37f)]&&(this['primitives']['calculateSpeed'][_0x50ba53(0x336,0x342)]['outputTexture']=this[_0x50ba53(0x365,0x2eb)]['particlesSpeed']);},'isDynamic':()=>this['options'][_0x44098d(0x48e,0x456)]}),'updatePosition':new CustomPrimitive({'commandType':_0x44098d(0x471,0x475),'uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x1a622b(0x207,0x232)][_0x44098d(0x45e,0x402)],'preExecute':()=>{function _0x2477b3(_0x58fb0d,_0x5f3df9){return _0x44098d(_0x5f3df9,_0x58fb0d- -0x6cb);}function _0x325e88(_0xbe5dc3,_0x3e84b){return _0x1a622b(_0xbe5dc3-0x1a0,_0x3e84b);}this[_0x2477b3(-0x2af,-0x2e8)][_0x2477b3(-0x297,-0x273)][_0x2477b3(-0x217,-0x1ed)]&&(this[_0x325e88(0x2e0,0x356)]['updatePosition']['commandToExecute'][_0x2477b3(-0x2bc,-0x300)]=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this['options'][_0x44098d(0x406,0x456)]}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x44098d(0x41c,0x475),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x1a622b(0x126,0xb2)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this[_0x44098d(0x49e,0x47c)]['lonRange'],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData']['bounds']['west'],this['windData'][_0x44098d(0x4fc,0x4e4)][_0x44098d(0x497,0x42f)]),'dataLatRange':()=>new Cartesian2$1(this[_0x1a622b(0x1fe,0x1fc)]['bounds']['south'],this['windData'][_0x1a622b(0x208,0x213)][_0x44098d(0x3df,0x44d)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options'][_0x1a622b(0x157,0x1c0)],'dropRateBump':()=>this['options'][_0x1a622b(0x214,0x1a9)],'useViewerBounds':()=>this[_0x1a622b(0x1fd,0x1ff)][_0x44098d(0x460,0x412)]},'fragmentShaderSource':ShaderManager[_0x1a622b(0x13b,0x1c6)](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x16eb5b(_0xa3f509,_0x2bf861){return _0x44098d(_0xa3f509,_0x2bf861- -0x62c);}function _0xb478a4(_0x1f3a82,_0x77f634){return _0x44098d(_0x77f634,_0x1f3a82- -0xe0);}this['primitives'][_0x16eb5b(-0x1b6,-0x236)]['commandToExecute']&&(this[_0x16eb5b(-0x233,-0x210)][_0x16eb5b(-0x273,-0x236)][_0x16eb5b(-0x1fd,-0x178)][_0xb478a4(0x32f,0x39f)]=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0x44098d(0x46b,0x4d9)]['dynamic']})};}[_0x5a9f30(0x40a,0x457)](){function _0x551fce(_0xf47629,_0x39bbd9){return _0x5a9f30(_0xf47629- -0x670,_0x39bbd9);}this[_0x5b0bfb(-0x2be,-0x309)]['U']['destroy']();function _0x5b0bfb(_0x49f204,_0x1d4e01){return _0x1da74e(_0x1d4e01,_0x49f204- -0x568);}this['windTextures']['V']['destroy'](),this[_0x5b0bfb(-0x232,-0x27b)]();}[_0x5a9f30(0x3f1,0x419)](_0x977cbb){function _0x327326(_0xaac88d,_0x4c80b0){return _0x5a9f30(_0xaac88d- -0x1ff,_0x4c80b0);}this[_0x327326(0x274,0x2cc)]=_0x977cbb,this['reCreateWindTextures']();}['updateOptions'](_0x553b69){function _0x4f6794(_0x4833a6,_0x3547ab){return _0x1da74e(_0x3547ab,_0x4833a6-0x35);}function _0x4d449e(_0x54b7c8,_0x1485ba){return _0x1da74e(_0x54b7c8,_0x1485ba- -0x54);}const _0x227c03=_0x553b69[_0x4f6794(0x2c5,0x2fb)]!==undefined&&_0x553b69['flipY']!==this['options'][_0x4d449e(0x1e0,0x23c)];this['options']=deepMerge(_0x553b69,this['options']),_0x227c03&&this['reCreateWindTextures']();}['processWindData'](_0x14ce0f){function _0x32aaaa(_0x14b8a5,_0x14d454){return _0x1da74e(_0x14d454,_0x14b8a5- -0x12f);}const {array:_0xd1d341}=_0x14ce0f;function _0x5cbdae(_0x57b3b9,_0x38373a){return _0x5a9f30(_0x38373a- -0x599,_0x57b3b9);}let {min:_0x58100c,max:_0x3e6dae}=_0x14ce0f;const _0x1f5a84=new Float32Array(_0xd1d341['length']);_0x58100c===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x58100c=Math['min'](..._0xd1d341));_0x3e6dae===undefined&&(console[_0x5cbdae(-0x17a,-0x200)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x3e6dae=Math[_0x32aaaa(0x144,0x1ac)](..._0xd1d341));const _0x15d5da=Math['max'](Math['abs'](_0x58100c),Math[_0x5cbdae(-0x1d7,-0x1bd)](_0x3e6dae));for(let _0x4e6ab9=0x0;_0x4e6ab9<_0xd1d341['length'];_0x4e6ab9++){const _0x1790b6=_0xd1d341[_0x4e6ab9]/_0x15d5da;_0x1f5a84[_0x4e6ab9]=_0x1790b6;}return _0x1f5a84;}[_0x1da74e(0x265,0x28c)](){Object['values'](this['windTextures'])['forEach'](_0xc22ed2=>_0xc22ed2['destroy']());function _0x1b57bc(_0xa42121,_0x591ea5){return _0x1da74e(_0x591ea5,_0xa42121- -0x572);}Object[_0x1b57bc(-0x286,-0x23f)](this['particlesTextures'])['forEach'](_0x591382=>_0x591382['destroy']());function _0x116210(_0x494189,_0x2f3e7f){return _0x1da74e(_0x494189,_0x2f3e7f- -0x3fe);}Object[_0x116210(-0x135,-0x112)](this[_0x116210(-0x16b,-0x17c)])['forEach'](_0x4e3bda=>_0x4e3bda['destroy']()),this['frameRateMonitor']['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x12dd7c,_0x468dcf,_0x552ee2,_0xf24e7b){this['context']=_0x12dd7c,this[_0x3d9b65(0x3b0,0x369)]=_0x468dcf,this['viewerParameters']=_0x552ee2,this['computing']=_0xf24e7b;(typeof this['options']['particlesTextureSize']!==_0x195b41(-0xa4,-0xb9)||this[_0x195b41(-0xbc,-0xca)][_0x195b41(-0x16c,-0x189)]<=0x0)&&(console[_0x3d9b65(0x375,0x353)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options'][_0x3d9b65(0x300,0x2b2)]=0x100);this['colorTable']=this[_0x195b41(-0x17d,-0x115)](),this[_0x3d9b65(0x3b7,0x3e1)]=this[_0x195b41(-0xae,-0x2e)]();function _0x3d9b65(_0x4a6621,_0x3ed15d){return _0x5a9f30(_0x4a6621- -0xc2,_0x3ed15d);}this['framebuffers']=this['createRenderingFramebuffers']();function _0x195b41(_0x2f11c2,_0x34ffb5){return _0x5a9f30(_0x2f11c2- -0x52e,_0x34ffb5);}this['primitives']=this[_0x195b41(-0xba,-0x34)]();}['createRenderingTextures'](){const _0x43983a={};_0x43983a['context']=this[_0x397020(-0x24,0x2b)],_0x43983a[_0x25764a(-0x314,-0x30c)]=this[_0x25764a(-0x1d7,-0x25f)]['drawingBufferWidth'],_0x43983a[_0x397020(-0x2c,-0x25)]=this[_0x25764a(-0x27d,-0x25f)][_0x397020(-0x55,0x10)],_0x43983a['pixelFormat']=PixelFormat['RGBA'],_0x43983a['pixelDatatype']=PixelDatatype[_0x397020(0x13,0x94)];const _0xe65ce0=_0x43983a;function _0x397020(_0x5cd7db,_0x4326de){return _0x5a9f30(_0x5cd7db- -0x45a,_0x4326de);}const _0x41e969={};_0x41e969[_0x397020(-0x24,-0x6e)]=this['context'],_0x41e969['width']=this['context']['drawingBufferWidth'],_0x41e969['height']=this[_0x397020(-0x24,0x41)]['drawingBufferHeight'],_0x41e969[_0x25764a(-0x2f4,-0x270)]=PixelFormat[_0x397020(0x15,-0x58)];function _0x25764a(_0x5552ad,_0x1d2cf3){return _0x5a9f30(_0x1d2cf3- -0x695,_0x5552ad);}_0x41e969[_0x397020(0x9,-0x15)]=PixelDatatype[_0x397020(0x3a,0x27)];const _0x2bd555=_0x41e969;return{'segmentsColor':new Texture(_0xe65ce0),'segmentsDepth':new Texture(_0x2bd555)};}['createRenderingFramebuffers'](){const _0x4f6925={};function _0x5ceb37(_0x113c61,_0x20dce3){return _0x1da74e(_0x20dce3,_0x113c61-0x1aa);}_0x4f6925['context']=this[_0x4f06f8(0x42f,0x3f4)],_0x4f6925['colorTextures']=[this['textures']['segmentsColor']],_0x4f6925['depthTexture']=this[_0x5ceb37(0x4f0,0x508)]['segmentsDepth'];function _0x4f06f8(_0x2d1e60,_0x1b46ff){return _0x1da74e(_0x1b46ff,_0x2d1e60-0x12c);}return{'segments':new Framebuffer(_0x4f6925)};}['destoryRenderingFramebuffers'](){function _0x303d21(_0x4418c2,_0xaac312){return _0x5a9f30(_0xaac312- -0x12c,_0x4418c2);}function _0x30759f(_0x513b66,_0x320b5a){return _0x5a9f30(_0x320b5a- -0x4d1,_0x513b66);}Object[_0x303d21(0x319,0x2f3)](this[_0x30759f(-0x21,-0x9e)])[_0x30759f(-0xa2,-0x12d)](_0x544eac=>{_0x544eac['destroy']();});}['createColorTableTexture'](){function _0x40ecf0(_0x1e3d4f,_0x370cac){return _0x5a9f30(_0x1e3d4f- -0x206,_0x370cac);}function _0x21f95c(_0x7a97f9,_0x3ece8b){return _0x5a9f30(_0x7a97f9- -0x34b,_0x3ece8b);}const _0x225f3d=new Float32Array(this['options']['colors'][_0x21f95c(0x52,0x87)](_0x2b5d7b=>{function _0x5e005a(_0x41fd64,_0x3f15f2){return _0x21f95c(_0x41fd64- -0x277,_0x3f15f2);}const _0x33299d=Color$1['fromCssColorString'](_0x2b5d7b);return[_0x33299d['red'],_0x33299d['green'],_0x33299d['blue'],_0x33299d[_0x5e005a(-0x190,-0x1e8)]];})),_0x2ff6a6={};return _0x2ff6a6['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x2ff6a6['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x2ff6a6[_0x40ecf0(0x1cd,0x1f8)]=TextureWrap['CLAMP_TO_EDGE'],_0x2ff6a6['wrapT']=TextureWrap[_0x40ecf0(0x279,0x25c)],new Texture({'context':this[_0x40ecf0(0x230,0x1d5)],'width':this['options'][_0x21f95c(0xe6,0x16a)]['length'],'height':0x1,'pixelFormat':PixelFormat[_0x21f95c(0x13c,0xc6)],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x2ff6a6),'source':{'width':this['options'][_0x21f95c(0xe6,0x16d)][_0x21f95c(0x55,-0x2)],'height':0x1,'arrayBufferView':_0x225f3d}});}['createSegmentsGeometry'](){const _0x4efff3=0x4,_0x5ac192=this[_0x537130(-0x88,-0x54)]['particlesTextureSize'];let _0x368269=[];for(let _0x49ed7a=0x0;_0x49ed7a<_0x5ac192;_0x49ed7a++){for(let _0x1e63a4=0x0;_0x1e63a4<_0x5ac192;_0x1e63a4++){for(let _0x4c7861=0x0;_0x4c7861<_0x4efff3;_0x4c7861++){_0x368269['push'](_0x49ed7a/_0x5ac192),_0x368269['push'](_0x1e63a4/_0x5ac192);}}}_0x368269=new Float32Array(_0x368269);function _0x537130(_0x8b39ab,_0x276fbd){return _0x5a9f30(_0x8b39ab- -0x4fa,_0x276fbd);}const _0xb81411=this['options']['particlesTextureSize']**0x2;let _0x7ab669=[];for(let _0x183528=0x0;_0x183528<_0xb81411;_0x183528++){_0x7ab669['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x7ab669=new Float32Array(_0x7ab669);let _0x1e4894=[];for(let _0x738976=0x0,_0x48ccf7=0x0;_0x738976<_0xb81411;_0x738976++){_0x1e4894['push'](_0x48ccf7+0x0,_0x48ccf7+0x1,_0x48ccf7+0x2,_0x48ccf7+0x2,_0x48ccf7+0x1,_0x48ccf7+0x3),_0x48ccf7+=_0x4efff3;}function _0x2e8998(_0x402f89,_0xdc5fd1){return _0x1da74e(_0x402f89,_0xdc5fd1- -0x2d9);}_0x1e4894=new Uint32Array(_0x1e4894);const _0x5c0e62={};_0x5c0e62['componentDatatype']=ComponentDatatype['FLOAT'],_0x5c0e62[_0x537130(-0x11f,-0xe2)]=0x2,_0x5c0e62['values']=_0x368269;const _0x322860={};_0x322860[_0x537130(-0x102,-0x126)]=ComponentDatatype['FLOAT'],_0x322860['componentsPerAttribute']=0x3,_0x322860[_0x2e8998(-0x73,0x13)]=_0x7ab669;const _0x67e519=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x5c0e62),'normal':new GeometryAttribute(_0x322860)}),'indices':_0x1e4894});return _0x67e519;}['createRawRenderState'](_0xbb468a){function _0x5e0a00(_0x4ca58f,_0xe22d54){return _0x1da74e(_0x4ca58f,_0xe22d54- -0x4d5);}const _0x25686d={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0xbb468a};return Appearance[_0x5e0a00(-0x2dc,-0x27c)](!![],![],_0x25686d);}['createPrimitives'](){function _0x5f3323(_0x38d3db,_0x343450){return _0x5a9f30(_0x343450- -0x498,_0x38d3db);}const _0x5970ee={};_0x5970ee['st']=0x0,_0x5970ee['normal']=0x1;const _0x1095de={};_0x1095de['enabled']=!![];const _0x401740={};_0x401740['enabled']=!![],_0x401740['blendEquation']=WebGLRenderingContext[_0x4a1615(0x1,-0x2d)],_0x401740['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x401740['blendFuncDestination']=WebGLRenderingContext[_0x5f3323(-0xe0,-0xfe)];const _0xa97edb={};_0xa97edb[_0x4a1615(0xb,-0x50)]=undefined,_0xa97edb['depthTest']=_0x1095de,_0xa97edb[_0x5f3323(0x55,-0x28)]=!![],_0xa97edb['blending']=_0x401740;function _0x4a1615(_0x59e3ef,_0x2d5749){return _0x1da74e(_0x59e3ef,_0x2d5749- -0x2dd);}const _0xd72e43=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x5970ee,'geometry':this[_0x5f3323(-0xd4,-0x9f)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures']['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures'][_0x4a1615(0xf5,0x6b)],'postProcessingPosition':()=>this['computing']['particlesTextures'][_0x4a1615(-0xf5,-0x81)],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x4a1615(0x10,-0x31)],'frameRateAdjustment':()=>this['computing'][_0x5f3323(-0x80,-0xaa)],'colorTable':()=>this[_0x5f3323(-0x10d,-0x108)],'domain':()=>{function _0x376ad3(_0x2e125b,_0x14249c){return _0x5f3323(_0x2e125b,_0x14249c-0x1b9);}var _0x4f4da7,_0x1deda7;const _0x427463=new Cartesian2(((_0x4f4da7=this[_0xfca597(0xfc,0x80)]['domain'])===null||_0x4f4da7===void 0x0?void 0x0:_0x4f4da7[_0xfca597(0xd1,0xce)])??this['computing'][_0xfca597(0xfd,0x136)]['speed'][_0xfca597(0xd1,0xff)],((_0x1deda7=this['options']['domain'])===null||_0x1deda7===void 0x0?void 0x0:_0x1deda7[_0xfca597(0x30,0x1f)])??this[_0xfca597(0x34,0xbe)]['windData']['speed']['max']);function _0xfca597(_0x1ee072,_0x209641){return _0x5f3323(_0x209641,_0x1ee072-0x122);}return _0x427463;},'displayRange':()=>{function _0x263872(_0x494c38,_0xf2ce0){return _0x5f3323(_0xf2ce0,_0x494c38-0x268);}var _0x29b05c,_0x1dbbe8;function _0x58b9e9(_0x416bc2,_0x288b2a){return _0x5f3323(_0x288b2a,_0x416bc2- -0x236);}const _0x24d47e=new Cartesian2(((_0x29b05c=this['options']['displayRange'])===null||_0x29b05c===void 0x0?void 0x0:_0x29b05c['min'])??this[_0x58b9e9(-0x324,-0x356)]['windData'][_0x58b9e9(-0x2f7,-0x2f9)]['min'],((_0x1dbbe8=this[_0x263872(0x242,0x1b8)]['displayRange'])===null||_0x1dbbe8===void 0x0?void 0x0:_0x1dbbe8[_0x263872(0x176,0x1a8)])??this[_0x58b9e9(-0x324,-0x34f)]['windData'][_0x58b9e9(-0x2f7,-0x2cb)][_0x58b9e9(-0x328,-0x3b2)]);return _0x24d47e;},'particleHeight':()=>this['options'][_0x4a1615(-0x2a,0x52)]||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context']['drawingBufferHeight'],'pixelSize':()=>this[_0x5f3323(-0x2b,-0x83)]['pixelSize'],'lineWidth':()=>{function _0x31e622(_0x455b78,_0x554007){return _0x4a1615(_0x554007,_0x455b78-0x33c);}const _0x44b7e6={};_0x44b7e6['min']=0x1,_0x44b7e6['max']=0x2;const _0x5eb440=this['options']['lineWidth']||_0x44b7e6;return new Cartesian2(_0x5eb440['min'],_0x5eb440[_0x31e622(0x2d2,0x353)]);},'lineLength':()=>{const _0x581e12={};function _0x204bfe(_0x5911f3,_0x2b92f0){return _0x5f3323(_0x2b92f0,_0x5911f3-0x4b);}_0x581e12['min']=0x14,_0x581e12[_0x204bfe(-0xa7,-0x65)]=0x64;function _0x5634e8(_0x33e856,_0x48792a){return _0x5f3323(_0x33e856,_0x48792a-0x49);}const _0x39a63a=this['options'][_0x5634e8(-0x72,-0x17)]||_0x581e12;return new Cartesian2(_0x39a63a['min'],_0x39a63a[_0x5634e8(-0x4d,-0xa9)]);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x5f3323(-0x41,-0x2e)],'segmentsDepthTexture':()=>this['textures'][_0x5f3323(-0x27,-0xb0)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x5f3323(0x1e,-0x6d)](_0xa97edb)}),_0x29d141={};return _0x29d141['segments']=_0xd72e43,_0x29d141;}[_0x1da74e(0x25d,0x2d6)](){const _0x49ff12=this['createSegmentsGeometry']();this[_0x208aa5(0x9b,0xee)]['segments']['geometry']=_0x49ff12;function _0x208aa5(_0x52fef6,_0x3afc24){return _0x5a9f30(_0x3afc24- -0x2c7,_0x52fef6);}const _0x240591={};_0x240591['context']=this[_0x15d8a0(0x33b,0x33d)],_0x240591[_0x15d8a0(0x2f0,0x37a)]=_0x49ff12,_0x240591['attributeLocations']=this['primitives']['segments']['attributeLocations'],_0x240591[_0x208aa5(0x1e6,0x18c)]=BufferUsage['STATIC_DRAW'];const _0x14ed84=VertexArray['fromGeometry'](_0x240591);function _0x15d8a0(_0x5b37ae,_0x322d6f){return _0x1da74e(_0x322d6f,_0x5b37ae-0x38);}this['primitives']['segments']['commandToExecute']&&(this[_0x208aa5(0x9f,0xee)]['segments']['commandToExecute']['vertexArray']=_0x14ed84);}[_0x1da74e(0x22b,0x2a2)](){function _0x434422(_0x1d8eff,_0xc1d032){return _0x5a9f30(_0xc1d032- -0x3d4,_0x1d8eff);}this['colorTable']['destroy'](),this[_0x434422(0x42,-0x44)]=this['createColorTableTexture']();}['updateOptions'](_0x5c46c0){function _0x5a81f1(_0x194043,_0x2bb6c4){return _0x1da74e(_0x2bb6c4,_0x194043- -0x31b);}const _0x506f10=_0x5c46c0[_0x5a81f1(-0x1d,0x63)]&&JSON['stringify'](_0x5c46c0[_0x2288a7(-0x11c,-0xcc)])!==JSON[_0x5a81f1(-0x48,-0x1c)](this['options']['colors']);function _0x2288a7(_0x5aed3d,_0x33fde3){return _0x1da74e(_0x5aed3d,_0x33fde3- -0x3ca);}this['options']=deepMerge(_0x5c46c0,this[_0x2288a7(-0x102,-0x8b)]),_0x506f10&&this['onColorTableChange']();}['destroy'](){Object['values'](this[_0x2b8e9f(0x135,0xf9)])['forEach'](_0x1d582c=>{_0x1d582c['destroy']();});function _0x30bcf2(_0x177c0f,_0x499901){return _0x1da74e(_0x499901,_0x177c0f- -0x216);}Object[_0x30bcf2(0xd6,0xb2)](this[_0x2b8e9f(0xad,0x7b)])[_0x30bcf2(0x5b,0xb5)](_0x3b2180=>{_0x3b2180['destroy']();});function _0x2b8e9f(_0x36b371,_0x186747){return _0x1da74e(_0x36b371,_0x186747- -0x207);}this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x667364,_0x56e0ce,_0x123159,_0x1ee703,_0x13a8c4){this['context']=_0x667364;function _0x18c908(_0x229caa,_0x3290a5){return _0x1da74e(_0x229caa,_0x3290a5- -0x9a);}this[_0x18c908(0x251,0x2a5)]=_0x123159,this['viewerParameters']=_0x1ee703,this['computing']=new WindParticlesComputing(_0x667364,_0x56e0ce,_0x123159,_0x1ee703,_0x13a8c4),this['rendering']=new WindParticlesRendering(_0x667364,_0x123159,_0x1ee703,this[_0x299ea5(0x38f,0x410)]);function _0x299ea5(_0x124593,_0x18d1bf){return _0x5a9f30(_0x124593- -0x1b,_0x18d1bf);}this['clearFramebuffers']();}['getPrimitives'](){const _0x383cc9=[this['computing'][_0x1b0584(0x240,0x1c8)]['calculateSpeed'],this['computing']['primitives'][_0x51780a(0x2ec,0x31f)],this['computing']['primitives'][_0x51780a(0x356,0x2e1)],this[_0x51780a(0x34e,0x3ac)]['primitives'][_0x51780a(0x336,0x352)]];function _0x1b0584(_0x10755b,_0x412e53){return _0x1da74e(_0x10755b,_0x412e53- -0xba);}function _0x51780a(_0x209e2c,_0x39f2bc){return _0x5a9f30(_0x39f2bc- -0xae,_0x209e2c);}return _0x383cc9;}[_0x5a9f30(0x40f,0x3b0)](){const _0x36dd25=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});Object['keys'](this['rendering']['framebuffers'])['forEach'](_0x243cd9=>{function _0x6ac2ca(_0x583346,_0x1e07d2){return _0x580d(_0x583346-0x89,_0x1e07d2);}_0x36dd25[_0x6ac2ca(0x1fd,0x219)]=this['rendering']['framebuffers'][_0x243cd9];function _0x449927(_0xe81282,_0x4d7f3d){return _0x580d(_0xe81282- -0x2b8,_0x4d7f3d);}_0x36dd25[_0x449927(-0x1d9,-0x1db)](this[_0x6ac2ca(0x1a0,0x151)]);});}['changeOptions'](_0x69a923){let _0x1194ce=![];_0x69a923['particlesTextureSize']&&this[_0x2210ce(-0x16c,-0x134)][_0x4fa202(-0x23e,-0x245)]!==_0x69a923['particlesTextureSize']&&(_0x1194ce=!![]);const _0x468f7e=deepMerge(_0x69a923,this['options']);if(_0x468f7e['particlesTextureSize']<0x1)throw new Error(_0x2210ce(-0x166,-0x147));function _0x2210ce(_0x5ebef9,_0x4332ef){return _0x1da74e(_0x5ebef9,_0x4332ef- -0x473);}this[_0x2210ce(-0x1a5,-0x134)]=_0x468f7e,this['rendering']['updateOptions'](_0x69a923);function _0x4fa202(_0x5aaa66,_0x24f13f){return _0x1da74e(_0x5aaa66,_0x24f13f- -0x4d4);}this[_0x4fa202(-0x29f,-0x25d)][_0x2210ce(-0x1e9,-0x182)](_0x69a923),_0x1194ce&&(this[_0x2210ce(-0x1a5,-0x1fc)]['destroyParticlesTextures'](),this['computing']['createParticlesTextures'](),this['rendering'][_0x2210ce(-0x1bf,-0x19d)]());}[_0x5a9f30(0x40b,0x446)](_0x49ef0b){this['viewerParameters']=_0x49ef0b;function _0x10745d(_0x3d6256,_0x339117){return _0x5a9f30(_0x3d6256-0x48,_0x339117);}this[_0x10745d(0x3f2,0x46b)][_0x10745d(0x45d,0x3f9)]=_0x49ef0b;function _0x41d0cb(_0x1caa0a,_0x5b93f7){return _0x1da74e(_0x1caa0a,_0x5b93f7- -0x17d);}this['rendering']['viewerParameters']=_0x49ef0b;}['destroy'](){function _0x2b267b(_0xa9363f,_0x3effcf){return _0x1da74e(_0xa9363f,_0x3effcf- -0xb7);}this['computing'][_0x5e0404(0x9e,0xbf)]();function _0x5e0404(_0x1d781f,_0x4f3c75){return _0x5a9f30(_0x4f3c75- -0x300,_0x1d781f);}this[_0x5e0404(0x15a,0x15a)]['destroy']();}}const Cesium$1=mars3d__namespace[_0x5a9f30(0x3fc,0x3a8)],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x3693be={};_0x3693be[_0x5a9f30(0x447,0x456)]=0x1,_0x3693be[_0x5a9f30(0x3a6,0x428)]=0x2;const _0x19eb89={};_0x19eb89['min']=0x14,_0x19eb89['max']=0x64;const _0x2ccd86={};_0x2ccd86['particlesTextureSize']=0x64,_0x2ccd86[_0x5a9f30(0x462,0x406)]=0x0,_0x2ccd86['lineWidth']=_0x3693be,_0x2ccd86[_0x5a9f30(0x438,0x3f3)]=_0x19eb89,_0x2ccd86[_0x1da74e(0x386,0x324)]=0x1,_0x2ccd86['dropRate']=0.003,_0x2ccd86[_0x1da74e(0x36a,0x356)]=0.001;function _0x5a9f30(_0x1b380d,_0x2b5365){return _0x580d(_0x1b380d-0x31f,_0x2b5365);}function _0x38fc(){const _0x489983=['pass','maxAge','clientHeight','primitives','Cartesian2','resize','globalCompositeOperation','globe','canvasContext','stroke','fill','xmax','update','destroy','viewport','RED','particlesTextureSize','flipY','show','top','object','46ZNBlmg','east','windField','lineWidth','shaderProgram','dropRate','updatePosition','NEAREST','wheel','8613848BlGWxj','createComputingPrimitives','commandType','wrapS','_maxAge','onColorTableChange','removeChild','speed','fromDegrees','uniformMap','cancelAnimationFrame','componentsPerAttribute','abs','windTextures','umax','particlesSpeed','EventType','1784330vZeqKK','ColorRamp','FUNC_ADD','sceneMode','_showHook','north','cols','segmentsDepth','steps','_animateFrame','geometry','ymin','_randomParticle','frameRateAdjustment','dynamic','rows','updateWindData','getDataAtLonLat','worker','percentageChanged','__esModule','_speedRate','_mountedHook','componentDatatype','createSegmentsGeometry','initWorker','_canrefresh','Cesium','CanvasWindLayer','execute','scene','segments','default','createCommand','speedRate','age','drawingBufferHeight','stringify','array','21708lNApyS','onParticlesTextureSizeChange','reCreateWindTextures','applyViewerParameters','_onMouseDownEvent','WindUtil','Compute','clearFramebuffers','udata','unbindEvent','_map','redraw','random','viewerParameters','_bilinearInterpolation','strokeStyle','init','camera','umin','_setOptionsHook','DomUtil','owner','defineProperty','values','ellipsoid','_calcUV','4724665rSEppI','_pointerEvents','updateOptions','pixelFormat','xmin','_tomap','prototype','getDirection','#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','createRawRenderState','left','removeEventListener','height','canvasHeight','WindLayer','colors','alpha','framebuffers','west','tlng','context','error','lineLength','mouse_down','mouseHidden','auto','lastFramesPerSecond','492ydglFl','latitude','position','reverse','south','#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','requestRender','pow','_updateIng2','particlesNumber','min','visibility','lat','original','clearCommand','_onMouseUpEvent','commandToExecute','fromCache','getUVByPoint','interpolated','OPAQUE','6472aLsiCa','bufferUsage','previousParticlesPosition','push','setData','speedFactor','modelMatrix','canvas','rendering','fromGeometry','ymax','off','type','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','pixelSize','pointer-events','fixedHeight','pixelDatatype','floor','vertexShaderSource','1933745UaELhJ','getPrimitives','getSpeed','createWindTextures','SCENE3D','_onMouseMoveEvent','bind','UNSIGNED_BYTE','Math','DEPTH_COMPONENT','depthMask','LINEAR','options','windData','createPrimitives','style','primitiveType','lng','_drawLines','textures','toRadians','currentParticlesPosition','particlesTextures','bounds','preExecute','CLAMP_TO_EDGE','createRenderingTextures','keys','CanvasWindField','samplingWindow','zIndex','requestAnimationFrame','84dpyIJg','RGBA','_removedHook','dropRateBump','number','sqrt','18Kgnkyr','7VcjiVf','_colorRamp','_onMapWhellEvent','_updateIng','particles','rawRenderState','framebuffer','UNSIGNED_INT','_addedHook','clear','fragmentShaderSource','Unknown\x20command\x20type','toDegrees','beginPath','setDate','talt','layer','isDynamic','width','processWindData','_calc_speedRate','getDefaultRenderState','clientWidth','fillRect','postProcessingPosition','colorTable','attributeLocations','pointerEvents','call','magnificationFilter','data','grid','tlat','getSegmentDrawVertexShader','warn','ONE_MINUS_SRC_ALPHA','nextParticlesPosition','postMessage','flatMap','destination-in','quietPeriod','length','mouseMove','minificationFilter','particleSystem','forEach','updateViewerParameters','max','sources','outputTexture','bindEvent','computing','useViewerBounds','absolute','2179710RBSYoP','willReadFrequently','frameTime','getPostProcessingPositionShader','createColorTableTexture'];_0x38fc=function(){return _0x489983;};return _0x38fc();}_0x2ccd86['colors']=['rgb(206,255,255)'],_0x2ccd86[_0x1da74e(0x278,0x290)]=![],_0x2ccd86['dynamic']=!![];const DEF_OPTIONS=_0x2ccd86;class WindLayer extends BaseLayer$1{constructor(_0x4ae9ca={}){_0x4ae9ca={...DEF_OPTIONS,..._0x4ae9ca},super(_0x4ae9ca),this['_setOptionsHook'](_0x4ae9ca,_0x4ae9ca);}get[_0x1da74e(0x2ce,0x254)](){return this['primitives'];}get[_0x5a9f30(0x395,0x336)](){function _0x4893dc(_0x57b19f,_0x5dfa06){return _0x5a9f30(_0x57b19f- -0x5dd,_0x5dfa06);}return this['options'][_0x4893dc(-0x248,-0x286)];}set['data'](_0x24c427){this[_0x12284d(0x1f4,0x25b)]['data']=_0x24c427;function _0x12284d(_0x5996c9,_0x1ac9b4){return _0x1da74e(_0x5996c9,_0x1ac9b4- -0xe4);}function _0x22e132(_0x862531,_0x44afe3){return _0x1da74e(_0x44afe3,_0x862531- -0x334);}this[_0x12284d(0x21a,0x23f)](_0x24c427);}get[_0x5a9f30(0x431,0x420)](){function _0x141365(_0x107525,_0x443d82){return _0x5a9f30(_0x443d82- -0x6d9,_0x107525);}return this['options'][_0x141365(-0x32e,-0x2a8)];}set['colors'](_0x472c2c){this['options'][_0xe05088(0x47,0x8f)]=_0x472c2c;function _0xe05088(_0x1eed64,_0x1019b0){return _0x5a9f30(_0x1019b0- -0x3a2,_0x1eed64);}const _0x17e05d={};function _0x24f16(_0x18634d,_0x1f82be){return _0x5a9f30(_0x1f82be-0x10,_0x18634d);}_0x17e05d['colors']=_0x472c2c,this[_0x24f16(0x400,0x42b)](this['options'],_0x17e05d);}[_0x1da74e(0x33b,0x2b2)](_0x419bf0){_0x419bf0?this['_addedHook']():this['_removedHook']();}['_mountedHook'](){}[_0x1da74e(0x3e6,0x362)](){this[_0x2cb2ce(-0x208,-0x192)]=this['_map']['scene'],this[_0x2cb2ce(-0x144,-0x178)]=this['_map']['camera'];function _0x467d62(_0x23d0e5,_0x3683b5){return _0x5a9f30(_0x23d0e5- -0x6a3,_0x3683b5);}this['options']['data']&&this['setData'](this['options']['data']);if(!this['windData']||!this['show'])return;function _0x2cb2ce(_0xef2cbf,_0x347cef){return _0x1da74e(_0xef2cbf,_0x347cef- -0x45e);}this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x2cb2ce(-0x137,-0x192)]['mode']},this['updateViewerParameters'](),this[_0x2cb2ce(-0x214,-0x1ee)]=new WindParticleSystem(this['scene'][_0x2cb2ce(-0x1b6,-0x15b)],this[_0x467d62(-0x230,-0x1f3)],this['options'],this['viewerParameters'],this[_0x467d62(-0x2a4,-0x32f)]),this['primitives']=this['particleSystem'][_0x2cb2ce(-0x136,-0x12a)](),this[_0x467d62(-0x2ee,-0x2b6)][_0x467d62(-0x2ff,-0x387)](_0x37d12b=>{function _0x6efaf5(_0xbac844,_0x1a70e9){return _0x467d62(_0xbac844-0x73c,_0x1a70e9);}this['scene'][_0x6efaf5(0x44e,0x485)]['add'](_0x37d12b);}),this[_0x2cb2ce(-0x16a,-0x178)][_0x2cb2ce(-0x1a1,-0x19d)]=0.01,this['camera']['changed']['addEventListener'](this['updateViewerParameters']['bind'](this)),this[_0x467d62(-0x2a4,-0x319)]['morphComplete']['addEventListener'](this['updateViewerParameters']['bind'](this)),window['addEventListener']('resize',this[_0x467d62(-0x2fe,-0x383)]['bind'](this));}[_0x5a9f30(0x488,0x469)](){this[_0x254a60(0x435,0x441)]['changed'][_0x254a60(0x3eb,0x455)](this[_0x254a60(0x3bf,0x3cd)][_0x254a60(0x4e8,0x494)](this));function _0x21cd86(_0x3f3621,_0x2b3313){return _0x1da74e(_0x2b3313,_0x3f3621- -0x3f9);}this[_0x254a60(0x44b,0x427)]['morphComplete'][_0x21cd86(-0xff,-0xa3)](this[_0x254a60(0x374,0x3cd)][_0x254a60(0x41b,0x494)](this));function _0x254a60(_0x321f56,_0x34f2f0){return _0x5a9f30(_0x34f2f0-0x28,_0x321f56);}window['removeEventListener']('resize',this['updateViewerParameters']['bind'](this)),this[_0x21cd86(-0x177,-0x10e)]&&(this[_0x21cd86(-0x177,-0x13b)][_0x21cd86(-0x188,-0x1c3)](_0xa08ceb=>{function _0x26d316(_0x234cf2,_0x1cc179){return _0x254a60(_0x234cf2,_0x1cc179- -0x2f2);}this[_0x26d316(0x10c,0x135)]['primitives']['remove'](_0xa08ceb);}),delete this['primitives']),this[_0x21cd86(-0x189,-0x199)]&&(this['particleSystem']['destroy'](),delete this['particleSystem']);}['setData'](_0x5ea4d2,_0x525ace){function _0x135235(_0x3e9fa3,_0x348336){return _0x1da74e(_0x348336,_0x3e9fa3-0x140);}this[_0x135235(0x480,0x42b)]=this['processWindData'](_0x5ea4d2);if(_0x525ace){this[_0x2d98f2(0x428,0x49d)](),this['_addedHook']();return;}function _0x2d98f2(_0x5dd2e2,_0x487200){return _0x5a9f30(_0x5dd2e2- -0x60,_0x487200);}this['particleSystem']?(this['particleSystem']['computing'][_0x135235(0x3fe,0x3b5)](this['windData']),this['scene'][_0x2d98f2(0x3e3,0x42f)]()):this['_addedHook']();}['_setOptionsHook'](_0x4da3c0,_0x42518e){function _0x4ff797(_0x203c7a,_0x13daa8){return _0x5a9f30(_0x203c7a- -0x530,_0x13daa8);}function _0x344b57(_0x464c9c,_0x3f769c){return _0x1da74e(_0x464c9c,_0x3f769c- -0x439);}this['particleSystem']&&(this[_0x4ff797(-0x18d,-0x147)]['changeOptions'](_0x42518e),this[_0x344b57(-0x1e4,-0x16d)]['requestRender']());}[_0x1da74e(0x1dc,0x257)](_0x45ae2b){var _0x1ac0ca,_0x4eb859;const _0xec04af={..._0x45ae2b},_0x322268=_0xec04af;!_0x322268['height']&&_0x322268['rows']&&(_0x322268['height']=_0x322268['rows']);!_0x322268['width']&&_0x322268[_0x3e36ab(-0x2f1,-0x30a)]&&(_0x322268[_0x2fcb71(0x17e,0x125)]=_0x322268['cols']);!_0x322268['bounds']&&(_0x322268['bounds']={'west':_0x322268['xmin'],'south':_0x322268['ymin'],'east':_0x322268['xmax'],'north':_0x322268['ymax']});if(!_0x322268['u']){const _0x5336f6={};_0x5336f6['array']=_0x45ae2b['udata'],_0x5336f6['min']=_0x45ae2b[_0x2fcb71(0x185,0x1b6)],_0x5336f6[_0x3e36ab(-0x332,-0x377)]=_0x45ae2b[_0x2fcb71(0x1bd,0x17a)],_0x322268['u']=_0x5336f6;}if(!_0x322268['v']){const _0x1f3396={};_0x1f3396['array']=_0x45ae2b['vdata'],_0x1f3396['min']=_0x45ae2b['vmin'],_0x1f3396['max']=_0x45ae2b['vmax'],_0x322268['v']=_0x1f3396;}if(((_0x1ac0ca=_0x322268[_0x3e36ab(-0x301,-0x337)])===null||_0x1ac0ca===void 0x0?void 0x0:_0x1ac0ca['min'])===undefined||((_0x4eb859=_0x322268['speed'])===null||_0x4eb859===void 0x0?void 0x0:_0x4eb859[_0x3e36ab(-0x332,-0x2bc)])===undefined||_0x322268['speed']['array']===undefined){const _0x5cd306={'array':new Float32Array(_0x322268['u']['array']['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x333651=0x0;_0x333651<_0x322268['u']['array']['length'];_0x333651++){_0x5cd306['array'][_0x333651]=Math['sqrt'](_0x322268['u']['array'][_0x333651]*_0x322268['u']['array'][_0x333651]+_0x322268['v']['array'][_0x333651]*_0x322268['v']['array'][_0x333651]),_0x5cd306['array'][_0x333651]!==0x0&&(_0x5cd306['min']=Math[_0x2fcb71(0x226,0x1e3)](_0x5cd306['min'],_0x5cd306['array'][_0x333651]),_0x5cd306[_0x3e36ab(-0x332,-0x3b0)]=Math[_0x2fcb71(0x13a,0x142)](_0x5cd306[_0x3e36ab(-0x332,-0x31f)],_0x5cd306[_0x3e36ab(-0x2d1,-0x32f)][_0x333651]));}_0x322268[_0x2fcb71(0x173,0x173)]=_0x5cd306;}function _0x2fcb71(_0x38b815,_0x174d83){return _0x1da74e(_0x38b815,_0x174d83- -0x131);}function _0x3e36ab(_0x13e458,_0x2f6616){return _0x5a9f30(_0x13e458- -0x6d8,_0x2f6616);}return _0x322268;}[_0x5a9f30(0x3a5,0x36e)](){var _0x2bb6b0;const _0x4c478e=this[_0x164720(0x2f5,0x2d1)];if(!_0x4c478e)return;function _0x164720(_0x5ec242,_0x5b91bb){return _0x1da74e(_0x5b91bb,_0x5ec242-0x29);}const _0xaa6e26=_0x4c478e['canvas'],_0x281da4={};_0x281da4['x']=0x0,_0x281da4['y']=0x0;const _0xea1a89={};_0xea1a89['x']=0x0,_0xea1a89['y']=_0xaa6e26['clientHeight'];const _0x28f89d={};_0x28f89d['x']=_0xaa6e26[_0x164720(0x283,0x20b)],_0x28f89d['y']=0x0;function _0x545dfe(_0x271e1d,_0x261a4c){return _0x1da74e(_0x271e1d,_0x261a4c- -0x2af);}const _0x3cd677={};_0x3cd677['x']=_0xaa6e26['clientWidth'],_0x3cd677['y']=_0xaa6e26[_0x545dfe(0x5b,-0x2e)];const _0xa22621=[_0x281da4,_0xea1a89,_0x28f89d,_0x3cd677];let _0x206831=0xb4,_0x2d03c8=-0xb4,_0x2e9025=0x5a,_0x39a1c3=-0x5a,_0xaa5b81=![];for(const _0x22959b of _0xa22621){const _0xdd0c35=_0x4c478e[_0x545dfe(-0x23,0x37)]['pickEllipsoid'](new Cesium$1[(_0x545dfe(0x1f,-0x2c))](_0x22959b['x'],_0x22959b['y']),_0x4c478e[_0x164720(0x2af,0x2c8)][_0x545dfe(0x98,0x3e)]);if(!_0xdd0c35){_0xaa5b81=!![];break;}const _0x48d501=_0x4c478e[_0x164720(0x2af,0x28e)]['ellipsoid']['cartesianToCartographic'](_0xdd0c35),_0x4fb014=Cesium$1['Math'][_0x545dfe(0x6d,0xb7)](_0x48d501['longitude']),_0x46811b=Cesium$1[_0x164720(0x364,0x2f7)][_0x545dfe(0x36,0xb7)](_0x48d501[_0x545dfe(0xe0,0x5c)]);_0x206831=Math['min'](_0x206831,_0x4fb014),_0x2d03c8=Math['max'](_0x2d03c8,_0x4fb014),_0x2e9025=Math['min'](_0x2e9025,_0x46811b),_0x39a1c3=Math['max'](_0x39a1c3,_0x46811b);}if(!_0xaa5b81){const _0x123338=new Cesium$1[(_0x545dfe(-0x82,-0x2c))](Math['max'](this[_0x545dfe(0x62,0x91)]['bounds']['west'],_0x206831),Math[_0x545dfe(0x7e,0x65)](this['windData']['bounds']['east'],_0x2d03c8)),_0x4f5a49=new Cesium$1['Cartesian2'](Math[_0x164720(0x29c,0x2da)](this['windData'][_0x164720(0x373,0x310)]['south'],_0x2e9025),Math[_0x545dfe(0xd0,0x65)](this['windData'][_0x545dfe(0x59,0x9b)]['north'],_0x39a1c3)),_0x297e3c=(_0x123338['y']-_0x123338['x'])*0.05,_0x2f6e52=(_0x4f5a49['y']-_0x4f5a49['x'])*0.05;_0x123338['x']=Math[_0x545dfe(-0x21,-0x3c)](this[_0x545dfe(0xbf,0x91)][_0x545dfe(0x62,0x9b)][_0x545dfe(0xc2,0x52)],_0x123338['x']-_0x297e3c),_0x123338['y']=Math['min'](this['windData']['bounds']['east'],_0x123338['y']+_0x297e3c),_0x4f5a49['x']=Math[_0x164720(0x29c,0x287)](this[_0x545dfe(0x61,0x91)]['bounds'][_0x164720(0x337,0x2e7)],_0x4f5a49['x']-_0x2f6e52),_0x4f5a49['y']=Math['min'](this[_0x545dfe(0x6b,0x91)]['bounds']['north'],_0x4f5a49['y']+_0x2f6e52),this['viewerParameters']['lonRange']=_0x123338,this['viewerParameters']['latRange']=_0x4f5a49;const _0x211449=this[_0x164720(0x369,0x348)]['bounds']['east']-this[_0x164720(0x369,0x301)]['bounds'][_0x164720(0x32a,0x33f)],_0x19ab0e=this['windData'][_0x545dfe(0xca,0x9b)][_0x545dfe(-0x4a,0x4)]-this[_0x545dfe(0x109,0x91)][_0x545dfe(0x7f,0x9b)]['south'],_0x57f179=(_0x123338['y']-_0x123338['x'])/_0x211449,_0x1fd271=(_0x4f5a49['y']-_0x4f5a49['x'])/_0x19ab0e,_0x3027cb=Math['min'](_0x57f179,_0x1fd271),_0x3f8fa9=0x3e8*_0x3027cb;_0x3f8fa9>0x0&&(this['viewerParameters'][_0x545dfe(0x5c,0x7e)]=Math[_0x164720(0x29c,0x25a)](0x0,Math['min'](0x3e8,_0x3f8fa9)));}this[_0x164720(0x30b,0x306)][_0x164720(0x2da,0x2bf)]=this['scene']['mode'],(_0x2bb6b0=this['particleSystem'])===null||_0x2bb6b0===void 0x0||_0x2bb6b0['applyViewerParameters'](this['viewerParameters']);}[_0x5a9f30(0x3f2,0x3ba)](_0x2f2eb5,_0x4ddc4f){const {bounds:_0x5b73aa,width:_0x2d1206,height:_0x15d436,u:_0x1d2597,v:_0x2eba69,speed:_0x5a860b}=this[_0x37e2d6(-0x264,-0x2ab)],{flipY:_0x569cdb}=this['options'];if(_0x2f2eb5<_0x5b73aa[_0x37e2d6(-0x2a3,-0x321)]||_0x2f2eb5>_0x5b73aa[_0x37e2d6(-0x30f,-0x2e9)]||_0x4ddc4f<_0x5b73aa[_0x37e2d6(-0x296,-0x288)]||_0x4ddc4f>_0x5b73aa[_0x37e2d6(-0x2f1,-0x294)])return null;const _0x407e31=(_0x2f2eb5-_0x5b73aa['west'])/(_0x5b73aa['east']-_0x5b73aa['west'])*(_0x2d1206-0x1);let _0x59ad17=(_0x4ddc4f-_0x5b73aa['south'])/(_0x5b73aa['north']-_0x5b73aa['south'])*(_0x15d436-0x1);_0x569cdb&&(_0x59ad17=_0x15d436-0x1-_0x59ad17);const _0x54e2fa=Math['floor'](_0x407e31),_0x46d367=Math[_0x37e2d6(-0x273,-0x296)](_0x59ad17),_0x12a947=Math[_0x37e2d6(-0x273,-0x1f6)](_0x407e31),_0x26fdbc=Math['min'](_0x12a947+0x1,_0x2d1206-0x1);function _0x37e2d6(_0x2d5b52,_0x2a2478){return _0x5a9f30(_0x2d5b52- -0x6d7,_0x2a2478);}const _0x1ab5d4=Math['floor'](_0x59ad17),_0xa6fa2d=Math['min'](_0x1ab5d4+0x1,_0x15d436-0x1),_0x57a5fb=_0x407e31-_0x12a947,_0x650931=_0x59ad17-_0x1ab5d4,_0x16bf41=_0x46d367*_0x2d1206+_0x54e2fa,_0x435e1c=_0x1ab5d4*_0x2d1206+_0x12a947,_0xd904d8=_0x1ab5d4*_0x2d1206+_0x26fdbc,_0x1949be=_0xa6fa2d*_0x2d1206+_0x12a947,_0x1e0e0d=_0xa6fa2d*_0x2d1206+_0x26fdbc;function _0x4861e5(_0x45b6ff,_0x4a19ed){return _0x1da74e(_0x4a19ed,_0x45b6ff-0x148);}const _0x3355de=_0x1d2597[_0x4861e5(0x41c,0x42f)][_0x435e1c],_0x1fada9=_0x1d2597['array'][_0xd904d8],_0x444023=_0x1d2597['array'][_0x1949be],_0x5ceaa1=_0x1d2597['array'][_0x1e0e0d],_0x2ecf8b=(0x1-_0x57a5fb)*(0x1-_0x650931)*_0x3355de+_0x57a5fb*(0x1-_0x650931)*_0x1fada9+(0x1-_0x57a5fb)*_0x650931*_0x444023+_0x57a5fb*_0x650931*_0x5ceaa1,_0x3adec5=_0x2eba69[_0x37e2d6(-0x2d0,-0x2bf)][_0x435e1c],_0x2b8bb5=_0x2eba69[_0x37e2d6(-0x2d0,-0x28e)][_0xd904d8],_0x1e4217=_0x2eba69['array'][_0x1949be],_0x26391e=_0x2eba69['array'][_0x1e0e0d],_0x25177f=(0x1-_0x57a5fb)*(0x1-_0x650931)*_0x3adec5+_0x57a5fb*(0x1-_0x650931)*_0x2b8bb5+(0x1-_0x57a5fb)*_0x650931*_0x1e4217+_0x57a5fb*_0x650931*_0x26391e,_0x3848b2=Math['sqrt'](_0x2ecf8b*_0x2ecf8b+_0x25177f*_0x25177f),_0x2c2268={};_0x2c2268['u']=_0x1d2597[_0x4861e5(0x41c,0x3c1)][_0x16bf41],_0x2c2268['v']=_0x2eba69['array'][_0x16bf41],_0x2c2268['speed']=_0x5a860b['array'][_0x16bf41];const _0x9b180c={};_0x9b180c['u']=_0x2ecf8b,_0x9b180c['v']=_0x25177f,_0x9b180c[_0x37e2d6(-0x300,-0x356)]=_0x3848b2;const _0x334aa7={};return _0x334aa7[_0x4861e5(0x45f,0x464)]=_0x2c2268,_0x334aa7[_0x4861e5(0x465,0x4ee)]=_0x9b180c,_0x334aa7;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer'][_0x5a9f30(0x430,0x4bb)]=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this['tlng']=null,this[_0x595ef2(-0x310,-0x288)]=null,this['age']=null;function _0x595ef2(_0x528fb0,_0x1ca640){return _0x1da74e(_0x528fb0,_0x1ca640- -0x4ec);}this['speed']=null;}[_0x1da74e(0x2ed,0x28c)](){for(const _0x11a2aa in this){delete this[_0x11a2aa];}}}class CanvasWindField{constructor(_0x357d43){this['setOptions'](_0x357d43);}get['speedRate'](){return this['_speedRate'];}set['speedRate'](_0x2aeee3){function _0x136cf4(_0x3767cc,_0x10ae21){return _0x5a9f30(_0x10ae21-0x42,_0x3767cc);}function _0x23752e(_0x21a34a,_0x206e82){return _0x5a9f30(_0x206e82- -0x57f,_0x21a34a);}this[_0x23752e(-0x15e,-0x189)]=(0x64-(_0x2aeee3>0x63?0x63:_0x2aeee3))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this[_0x136cf4(0x434,0x438)],(this['ymax']-this[_0x23752e(-0x1c8,-0x193)])/this[_0x23752e(-0x12a,-0x189)]];}get['maxAge'](){function _0x356075(_0x144bfd,_0x2051dc){return _0x1da74e(_0x2051dc,_0x144bfd- -0x207);}return this[_0x356075(0x9a,0x23)];}set[_0x5a9f30(0x3b3,0x413)](_0x269cf1){this['_maxAge']=_0x269cf1;}['setOptions'](_0x5368c8){this['options']=_0x5368c8,this['maxAge']=_0x5368c8['maxAge']||0x78;function _0x20ca8b(_0x5c4b4f,_0x16781e){return _0x5a9f30(_0x5c4b4f- -0x27b,_0x16781e);}this['speedRate']=_0x5368c8[_0x24578b(-0x1c7,-0x21e)]||0x32,this['particles']=[];function _0x24578b(_0x10e31e,_0x2fd12a){return _0x5a9f30(_0x2fd12a- -0x621,_0x10e31e);}const _0x34bf48=_0x5368c8[_0x20ca8b(0x1cb,0x195)]||0x1000;for(let _0x1962e3=0x0;_0x1962e3<_0x34bf48;_0x1962e3++){const _0x236239=this[_0x24578b(-0x253,-0x234)](new CanvasParticle());this['particles']['push'](_0x236239);}}['setDate'](_0x4aba39){this['rows']=_0x4aba39[_0x125663(-0x27a,-0x1f9)],this[_0x125663(-0x23e,-0x202)]=_0x4aba39[_0x125663(-0x262,-0x202)],this[_0x125663(-0x16f,-0x1c3)]=_0x4aba39['xmin'],this[_0x125663(-0x298,-0x22c)]=_0x4aba39[_0x2d1ee1(0x1f,0x59)],this['ymin']=_0x4aba39['ymin'],this['ymax']=_0x4aba39['ymax'],this[_0x2d1ee1(-0x8,-0x5a)]=[];function _0x125663(_0x2f6584,_0x46de94){return _0x5a9f30(_0x46de94- -0x5e9,_0x2f6584);}const _0x5425a9=_0x4aba39[_0x2d1ee1(0x72,0xc2)],_0x276c06=_0x4aba39['vdata'];let _0x15fccb=![];function _0x2d1ee1(_0x4d5cee,_0x5d5910){return _0x1da74e(_0x5d5910,_0x4d5cee- -0x26b);}_0x5425a9['length']===this[_0x2d1ee1(0x52,0xb4)]&&_0x5425a9[0x0]['length']===this['cols']&&(_0x15fccb=!![]);let _0x1227ed=0x0,_0x475225=null,_0x2c0f5a=null;for(let _0x1f27a7=0x0;_0x1f27a7<this[_0x2d1ee1(0x52,0x61)];_0x1f27a7++){_0x475225=[];for(let _0x87f91a=0x0;_0x87f91a<this['cols'];_0x87f91a++,_0x1227ed++){_0x15fccb?_0x2c0f5a=this['_calcUV'](_0x5425a9[_0x1f27a7][_0x87f91a],_0x276c06[_0x1f27a7][_0x87f91a]):_0x2c0f5a=this['_calcUV'](_0x5425a9[_0x1227ed],_0x276c06[_0x1227ed]),_0x475225[_0x2d1ee1(0xb7,0x8f)](_0x2c0f5a);}this[_0x125663(-0x23d,-0x253)][_0x2d1ee1(0xb7,0x53)](_0x475225);}!this['options'][_0x125663(-0x267,-0x226)]&&this['grid'][_0x125663(-0x1ba,-0x1a9)]();}[_0x5a9f30(0x496,0x439)](){delete this[_0x43a0f9(0x166,0x1ce)],delete this['cols'],delete this[_0x43a0f9(0x220,0x204)],delete this['xmax'],delete this[_0x43a0f9(0x208,0x1ca)];function _0x43a0f9(_0x19ea0c,_0x955c17){return _0x5a9f30(_0x955c17- -0x222,_0x19ea0c);}delete this['ymax'];function _0x3e8c52(_0x445af1,_0x248da6){return _0x1da74e(_0x248da6,_0x445af1- -0x2d0);}delete this['grid'],delete this['particles'];}['toGridXY'](_0x40e70c,_0x562829){function _0x24bf77(_0x2acb0a,_0x25a6ea){return _0x5a9f30(_0x25a6ea-0xab,_0x2acb0a);}const _0x45db7b=(_0x40e70c-this['xmin'])/(this['xmax']-this[_0x24bf77(0x513,0x4d1)])*(this['cols']-0x1);function _0x543495(_0x1bd0c1,_0xb75d8c){return _0x1da74e(_0xb75d8c,_0x1bd0c1- -0x42c);}const _0x36eb42=(this['ymax']-_0x562829)/(this['ymax']-this[_0x24bf77(0x486,0x497)])*(this[_0x24bf77(0x51b,0x49b)]-0x1);return[_0x45db7b,_0x36eb42];}['getUVByXY'](_0xed96b4,_0x357f5f){if(_0xed96b4<0x0||_0xed96b4>=this['cols']||_0x357f5f>=this['rows'])return[0x0,0x0,0x0];const _0x53f49d=Math['floor'](_0xed96b4),_0x5da9f4=Math[_0x3efc62(0x7d,0xe4)](_0x357f5f);if(_0x53f49d===_0xed96b4&&_0x5da9f4===_0x357f5f)return this['grid'][_0x357f5f][_0xed96b4];function _0x3efc62(_0x2640fa,_0xd2349c){return _0x1da74e(_0x2640fa,_0xd2349c- -0x24d);}const _0x54a41e=_0x53f49d+0x1,_0x465b80=_0x5da9f4+0x1,_0x5a7750=this['getUVByXY'](_0x53f49d,_0x5da9f4),_0x329153=this['getUVByXY'](_0x54a41e,_0x5da9f4),_0x3dece2=this['getUVByXY'](_0x53f49d,_0x465b80),_0x911a87=this['getUVByXY'](_0x54a41e,_0x465b80);let _0x545248=null;try{_0x545248=this['_bilinearInterpolation'](_0xed96b4-_0x53f49d,_0x357f5f-_0x5da9f4,_0x5a7750,_0x329153,_0x3dece2,_0x911a87);}catch(_0x533e45){console['log'](_0xed96b4,_0x357f5f);}return _0x545248;}[_0x1da74e(0x332,0x2e3)](_0x4eb65e,_0x5b38b2,_0x3ef1e8,_0x56ed43,_0x22f47b,_0x440782){const _0x329464=0x1-_0x4eb65e,_0x384d18=0x1-_0x5b38b2,_0x380002=_0x329464*_0x384d18,_0x2cc80e=_0x4eb65e*_0x384d18,_0xb2ab9a=_0x329464*_0x5b38b2,_0x59a046=_0x4eb65e*_0x5b38b2,_0x382508=_0x3ef1e8[0x0]*_0x380002+_0x56ed43[0x0]*_0x2cc80e+_0x22f47b[0x0]*_0xb2ab9a+_0x440782[0x0]*_0x59a046,_0x3af600=_0x3ef1e8[0x1]*_0x380002+_0x56ed43[0x1]*_0x2cc80e+_0x22f47b[0x1]*_0xb2ab9a+_0x440782[0x1]*_0x59a046;return this['_calcUV'](_0x382508,_0x3af600);}[_0x1da74e(0x2e3,0x2ee)](_0x131081,_0x38d2ab){return[+_0x131081,+_0x38d2ab,Math['sqrt'](_0x131081*_0x131081+_0x38d2ab*_0x38d2ab)];}['getUVByPoint'](_0x3db495,_0x259a1f){if(!this['isInExtent'](_0x3db495,_0x259a1f))return null;const _0x5edd23=this['toGridXY'](_0x3db495,_0x259a1f),_0x54f2e0=this['getUVByXY'](_0x5edd23[0x0],_0x5edd23[0x1]);return _0x54f2e0;}['isInExtent'](_0x1ee5cd,_0x176ec0){function _0x25b5be(_0x253a1e,_0x34819d){return _0x1da74e(_0x253a1e,_0x34819d-0xfd);}return _0x1ee5cd>=this['xmin']&&_0x1ee5cd<=this[_0x25b5be(0x30c,0x387)]&&_0x176ec0>=this['ymin']&&_0x176ec0<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0x1d919a(_0x5e0478,_0x2518d3){return _0x1da74e(_0x5e0478,_0x2518d3- -0x39);}function _0x419229(_0x1dacaa,_0x6f4dae){return _0x1da74e(_0x1dacaa,_0x6f4dae- -0x4ce);}const _0x282b4b=fRandomByfloat(this[_0x419229(-0x189,-0x1db)],this[_0x1d919a(0x1cc,0x251)]),_0x36c7d0=fRandomByfloat(this[_0x1d919a(0x2cd,0x280)],this['ymax']),_0x37d915={};return _0x37d915['lat']=_0x36c7d0,_0x37d915['lng']=_0x282b4b,_0x37d915;}['getParticles'](){let _0x2c4f2b,_0x1171dc,_0xfb69bc;function _0x2396c7(_0x297b55,_0x340b8a){return _0x1da74e(_0x340b8a,_0x297b55- -0x4ea);}for(let _0x1cc9d7=0x0,_0x56b191=this['particles']['length'];_0x1cc9d7<_0x56b191;_0x1cc9d7++){let _0x53f268=this['particles'][_0x1cc9d7];_0x53f268['age']<=0x0&&(_0x53f268=this['_randomParticle'](_0x53f268));if(_0x53f268[_0x3a7435(-0xaf,-0x86)]>0x0){const _0x15cae7=_0x53f268['tlng'],_0x136413=_0x53f268['tlat'];_0xfb69bc=this[_0x3a7435(-0x64,-0xca)](_0x15cae7,_0x136413),_0xfb69bc?(_0x2c4f2b=_0x15cae7+this['_calc_speedRate'][0x0]*_0xfb69bc[0x0],_0x1171dc=_0x136413+this['_calc_speedRate'][0x1]*_0xfb69bc[0x1],_0x53f268['lng']=_0x15cae7,_0x53f268['lat']=_0x136413,_0x53f268['tlng']=_0x2c4f2b,_0x53f268['tlat']=_0x1171dc,_0x53f268['speed']=_0xfb69bc[0x2],_0x53f268[_0x2396c7(-0x219,-0x21c)]--):_0x53f268['age']=0x0;}}function _0x3a7435(_0x148bce,_0x31b889){return _0x5a9f30(_0x148bce- -0x4b3,_0x31b889);}return this['particles'];}[_0x1da74e(0x26b,0x2ba)](_0x5c90c5){let _0x5e1208,_0x4b04c1;for(let _0x10d4ec=0x0;_0x10d4ec<0x1e;_0x10d4ec++){_0x5e1208=this['getRandomLatLng'](),_0x4b04c1=this['getUVByPoint'](_0x5e1208['lng'],_0x5e1208['lat']);if(_0x4b04c1&&_0x4b04c1[0x2]>0x0)break;}if(!_0x4b04c1)return _0x5c90c5;const _0x3e6a72=_0x5e1208['lng']+this['_calc_speedRate'][0x0]*_0x4b04c1[0x0],_0x506bc7=_0x5e1208['lat']+this[_0x407ce9(-0x96,-0x68)][0x1]*_0x4b04c1[0x1];_0x5c90c5['lng']=_0x5e1208[_0x407ce9(0x94,0x84)],_0x5c90c5[_0x407ce9(0xa7,0x56)]=_0x5e1208['lat'],_0x5c90c5['tlng']=_0x3e6a72,_0x5c90c5[_0x407ce9(-0x8a,-0x5c)]=_0x506bc7;function _0x407ce9(_0x1acc74,_0xafa965){return _0x5a9f30(_0xafa965- -0x3f3,_0x1acc74);}_0x5c90c5[_0x407ce9(0x10,0x11)]=Math['round'](0xa+Math[_0x407ce9(0x17,0x21)]()*this['maxAge']),_0x5c90c5[_0x407ce9(0x3,-0x1c)]=_0x4b04c1[0x2];function _0x2d9611(_0x3af325,_0x554154){return _0x5a9f30(_0x3af325- -0x5bd,_0x554154);}return _0x5c90c5;}['destroy'](){for(const _0x329781 in this){delete this[_0x329781];}}}function fRandomByfloat(_0x4c756b,_0x4ed91c){function _0x4c46b3(_0x1cb1d7,_0x38bbbe){return _0x1da74e(_0x1cb1d7,_0x38bbbe- -0x300);}return _0x4c756b+Math[_0x4c46b3(0x6b,-0x1f)]()*(_0x4ed91c-_0x4c756b);}const Cesium=mars3d__namespace[_0x5a9f30(0x3fc,0x385)],BaseLayer=mars3d__namespace[_0x5a9f30(0x387,0x3bc)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x3908d6={}){function _0x56a9f5(_0x2ec75c,_0x4b6097){return _0x5a9f30(_0x2ec75c- -0x4fb,_0x4b6097);}super(_0x3908d6);function _0x34d717(_0x226147,_0x2540d1){return _0x5a9f30(_0x2540d1- -0x25c,_0x226147);}this[_0x34d717(0x1a7,0x1bf)](_0x3908d6),this['canvas']=null,_0x3908d6['colors']&&_0x3908d6[_0x56a9f5(-0x112,-0xa7)]&&(this[_0x34d717(0x1f5,0x232)]=new mars3d__namespace[(_0x56a9f5(-0x119,-0xfb))](_0x3908d6));}['_setOptionsHook'](_0x5be586,_0xccdea9){function _0xae9940(_0x3e4de5,_0x3eb52a){return _0x1da74e(_0x3e4de5,_0x3eb52a- -0x303);}this['frameTime']=0x3e8/(_0x5be586['frameRate']||0xa),this['_pointerEvents']=this[_0x34ae61(0x3b0,0x379)][_0xae9940(-0x71,-0xa4)]??![],this['color']=_0x5be586['color']||'#ffffff',this[_0xae9940(-0xdb,-0x6c)]=_0x5be586[_0xae9940(0x1,-0x6c)]||0x1;function _0x34ae61(_0x3e3abb,_0x29b35d){return _0x5a9f30(_0x29b35d- -0xf9,_0x3e3abb);}this[_0xae9940(0xaf,0x2c)]=_0x5be586['fixedHeight']??0x0,this[_0xae9940(0xf,-0x73)]=_0x5be586['flipY']??![],this['windField']&&this[_0x34ae61(0x28f,0x2d0)]['setOptions'](_0x5be586);}get['layer'](){function _0x3b2a92(_0x53160f,_0x5be029){return _0x5a9f30(_0x5be029-0xa6,_0x53160f);}return this[_0x3b2a92(0x57c,0x4ff)];}get['canvasWidth'](){return this['_map']['scene']['canvas']['clientWidth'];}get[_0x1da74e(0x2a0,0x2fc)](){return this['_map']['scene']['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set['pointerEvents'](_0x47a2f5){function _0x286ed3(_0x5c63c8,_0x3bd444){return _0x5a9f30(_0x5c63c8- -0x20c,_0x3bd444);}function _0x2d16b6(_0x22c9fc,_0x245e9c){return _0x1da74e(_0x245e9c,_0x22c9fc-0xa0);}this[_0x2d16b6(0x390,0x366)]=_0x47a2f5;if(!this[_0x286ed3(0x24d,0x24b)])return;_0x47a2f5?this['canvas']['style']['pointer-events']='all':this['canvas'][_0x2d16b6(0x3e2,0x3d2)][_0x286ed3(0x255,0x279)]='none';}get['particlesNumber'](){function _0x4292e1(_0x365070,_0x329ab1){return _0x1da74e(_0x329ab1,_0x365070- -0x4c7);}function _0x14bb7d(_0x262cd4,_0x5acc4a){return _0x5a9f30(_0x5acc4a- -0x392,_0x262cd4);}return this[_0x14bb7d(0xcb,0xe0)][_0x14bb7d(0x34,0xb4)];}set['particlesNumber'](_0x1a414b){function _0x4e1576(_0x15e01a,_0x2a770a){return _0x5a9f30(_0x15e01a-0x48,_0x2a770a);}this['options']['particlesNumber']=_0x1a414b,clearTimeout(this['_canrefresh']),this[_0x4e1576(0x443,0x467)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x5a9f30(0x403,0x399)](){function _0x260191(_0x117c13,_0x7adcab){return _0x1da74e(_0x117c13,_0x7adcab- -0x4dd);}return this[_0x260191(-0x1e9,-0x19e)]['speedRate'];}set[_0x5a9f30(0x403,0x3d2)](_0x469871){this['options']['speedRate']=_0x469871;function _0xe44758(_0x46f8a0,_0x1c1b6d){return _0x5a9f30(_0x1c1b6d- -0x697,_0x46f8a0);}this['windField']&&(this[_0xe44758(-0x31b,-0x2ce)]['speedRate']=_0x469871);}get[_0x5a9f30(0x3b3,0x3d9)](){function _0x1c679d(_0x25a96a,_0x1591ef){return _0x1da74e(_0x25a96a,_0x1591ef- -0x5c);}function _0x9d75f3(_0xb25aed,_0x22ef3f){return _0x1da74e(_0xb25aed,_0x22ef3f- -0x480);}return this[_0x1c679d(0x337,0x2e3)][_0x9d75f3(-0x17f,-0x200)];}set[_0x1da74e(0x248,0x280)](_0x4aeb2f){function _0x555e52(_0x422305,_0x5f28d0){return _0x1da74e(_0x422305,_0x5f28d0-0xba);}function _0x40ac83(_0x1963b4,_0x10b53c){return _0x1da74e(_0x1963b4,_0x10b53c- -0x17b);}this[_0x40ac83(0x188,0x1c4)]['maxAge']=_0x4aeb2f,this['windField']&&(this[_0x40ac83(0xd6,0x11b)][_0x40ac83(0x11a,0x105)]=_0x4aeb2f);}get['data'](){function _0x22237b(_0x86fff7,_0x39401b){return _0x5a9f30(_0x86fff7- -0x250,_0x39401b);}return this[_0x22237b(0x223,0x23e)];}set['data'](_0x369614){function _0x4f1842(_0x2fd37,_0x46f9be){return _0x1da74e(_0x46f9be,_0x2fd37- -0x15);}this[_0x4f1842(0x30e,0x37c)](_0x369614);}get['rectangle'](){let _0x9e9b16=this[_0x2842e3(0x464,0x4cb)]['xmin'],_0x4ee42a=this['windData']['xmax'],_0x27afe9=this[_0x51b7cf(0x12d,0x134)]['ymin'],_0x1105e5=this['windData'][_0x2842e3(0x44d,0x3e8)];_0x4ee42a>=0x167&&_0x9e9b16===0x0&&(_0x9e9b16=-0xb4,_0x4ee42a=0xb4);_0x9e9b16=Math['max'](_0x9e9b16,-0xb4);function _0x2842e3(_0x513a3a,_0x39e4b4){return _0x1da74e(_0x39e4b4,_0x513a3a-0x124);}_0x4ee42a=Math[_0x2842e3(0x438,0x45e)](_0x4ee42a,0xb4);function _0x51b7cf(_0x2473b8,_0x28cba3){return _0x5a9f30(_0x28cba3- -0x33f,_0x2473b8);}return _0x27afe9=Math[_0x51b7cf(0x14,0x67)](_0x27afe9,-0x5a),_0x1105e5=Math['min'](_0x1105e5,0x5a),Cesium['Rectangle'][_0x51b7cf(0x11e,0x99)](_0x9e9b16,_0x27afe9,_0x4ee42a,_0x1105e5);}[_0x5a9f30(0x3e5,0x3fd)](_0x1d9a9c){function _0x2464e8(_0x39a106,_0x37b07c){return _0x5a9f30(_0x39a106- -0x34e,_0x37b07c);}function _0x3e52ac(_0x1adc80,_0x2a335f){return _0x1da74e(_0x1adc80,_0x2a335f- -0x2a5);}_0x1d9a9c?this['_addedHook']():(this[_0x2464e8(0x125,0x198)]&&(this[_0x2464e8(0x124,0x11f)][_0x2464e8(0x47,-0xf)]=this[_0x2464e8(0x125,0xc8)]),this[_0x3e52ac(0x136,0xb0)]());}[_0x5a9f30(0x3f7,0x3be)](){function _0x2a2f6e(_0x28164c,_0x3c648c){return _0x5a9f30(_0x3c648c- -0x3b4,_0x28164c);}function _0x142286(_0x243c10,_0x3d4464){return _0x5a9f30(_0x3d4464- -0x463,_0x243c10);}this[_0x142286(-0x7a,0xf)][_0x142286(-0x48,-0x70)]?this['initWorker']():this['windField']=new CanvasWindField(this[_0x2a2f6e(0x10e,0xbe)]);}['_addedHook'](){function _0x53a79c(_0x9fc9e1,_0x226b24){return _0x5a9f30(_0x226b24- -0x199,_0x9fc9e1);}this['canvas']=this['_createCanvas']();const _0x48a559={};_0x48a559[_0x487966(0x42a,0x3d1)]=!![];function _0x487966(_0x21617e,_0x32f4b0){return _0x1da74e(_0x32f4b0,_0x21617e-0x1af);}this['canvasContext']=this['canvas']['getContext']('2d',_0x48a559),this['bindEvent'](),this['options']['data']&&this['setData'](this[_0x487966(0x4ee,0x4fa)]['data']);}['_removedHook'](){function _0x5ca88f(_0x4dba22,_0x19b263){return _0x5a9f30(_0x4dba22- -0x293,_0x19b263);}this[_0x5ca88f(0x203,0x20c)]();function _0x6aa762(_0x4a844e,_0x2d8e20){return _0x1da74e(_0x4a844e,_0x2d8e20- -0x245);}this[_0x5ca88f(0x17e,0x18d)](),this['canvas']&&(this[_0x5ca88f(0x17f,0x18e)]['container'][_0x5ca88f(0x143,0x1a7)](this['canvas']),delete this[_0x5ca88f(0x1c6,0x207)]);}['_createCanvas'](){const _0x2cb57d=mars3d__namespace[_0x20274d(0x257,0x1f9)]['create']('canvas','mars3d-canvasWind',this[_0x20274d(0x24d,0x1c9)]['container']);_0x2cb57d['style'][_0x83cb40(-0x23e,-0x200)]=_0x20274d(0x1e7,0x216),_0x2cb57d[_0x20274d(0x2b0,0x2a1)][_0x83cb40(-0x2b8,-0x31b)]='0px',_0x2cb57d['style'][_0x20274d(0x267,0x25c)]='0px';function _0x20274d(_0x1d5449,_0x163bf3){return _0x5a9f30(_0x1d5449- -0x1c5,_0x163bf3);}_0x2cb57d[_0x20274d(0x2b0,0x297)]['width']=this['_map'][_0x83cb40(-0x27e,-0x25a)][_0x83cb40(-0x224,-0x264)]['clientWidth']+'px',_0x2cb57d['style']['height']=this['_map'][_0x20274d(0x23a,0x24a)][_0x20274d(0x294,0x227)]['clientHeight']+'px',_0x2cb57d['style']['pointerEvents']=this['_pointerEvents']?_0x83cb40(-0x242,-0x27d):'none';function _0x83cb40(_0x15612e,_0x33796e){return _0x5a9f30(_0x15612e- -0x67d,_0x33796e);}return _0x2cb57d[_0x20274d(0x2b0,0x2aa)]['zIndex']=this[_0x20274d(0x2ad,0x2ba)][_0x20274d(0x2bf,0x337)]??0x9,_0x2cb57d['width']=this[_0x83cb40(-0x26b,-0x210)][_0x83cb40(-0x27e,-0x2c9)]['canvas'][_0x83cb40(-0x2f0,-0x2f7)],_0x2cb57d['height']=this['_map'][_0x83cb40(-0x27e,-0x241)]['canvas'][_0x20274d(0x1ef,0x218)],_0x2cb57d;}[_0x1da74e(0x305,0x284)](){function _0x290676(_0x28cb69,_0x47e7fd){return _0x1da74e(_0x47e7fd,_0x28cb69- -0x59b);}function _0x4d1dab(_0x564fbd,_0x451772){return _0x5a9f30(_0x564fbd- -0x596,_0x451772);}this[_0x4d1dab(-0x13d,-0xe0)]&&(this['canvas']['style'][_0x4d1dab(-0x20d,-0x27a)]=this[_0x290676(-0x2bc,-0x29d)]['scene']['canvas']['clientWidth']+'px',this[_0x290676(-0x275,-0x204)]['style']['height']=this['_map']['scene'][_0x4d1dab(-0x13d,-0x179)][_0x4d1dab(-0x1e2,-0x1a5)]+'px',this['canvas']['width']=this['_map'][_0x290676(-0x2cf,-0x35a)][_0x4d1dab(-0x13d,-0xc0)]['clientWidth'],this[_0x290676(-0x275,-0x276)]['height']=this['_map'][_0x4d1dab(-0x197,-0x181)]['canvas'][_0x290676(-0x31a,-0x37b)]);}[_0x5a9f30(0x3a9,0x41a)](){const _0x58003e=this;function _0xaa7eb6(_0x2cb9e5,_0x5845ee){return _0x5a9f30(_0x2cb9e5-0x42,_0x5845ee);}let _0x17ab2c=Date['now']();(function _0x5cb140(){if(_0x58003e['isDestroy'])return;_0x58003e[_0x806e86(0x351,0x384)]=window[_0x806e86(0x396,0x41f)](_0x5cb140);function _0x5b6e24(_0x453e8d,_0x38183){return _0x580d(_0x38183-0x231,_0x453e8d);}function _0x806e86(_0x49d795,_0x120c98){return _0x580d(_0x120c98-0x2b9,_0x49d795);}if(_0x58003e[_0x5b6e24(0x32c,0x2d6)]&&_0x58003e[_0x5b6e24(0x2c0,0x2db)]){const _0x354fe8=Date['now'](),_0x2319e9=_0x354fe8-_0x17ab2c;_0x2319e9>_0x58003e['frameTime']&&(_0x17ab2c=_0x354fe8-_0x2319e9%_0x58003e[_0x806e86(0x346,0x349)],_0x58003e[_0x5b6e24(0x26b,0x2d0)]());}}(),window['addEventListener'](_0x32325f(-0x336,-0x3ba),this['resize']['bind'](this),![]),this[_0x32325f(-0x2b4,-0x2c5)]=![]);function _0x32325f(_0x467301,_0x4ca04f){return _0x5a9f30(_0x467301- -0x6ed,_0x4ca04f);}this['mouse_move']=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace[_0x32325f(-0x30d,-0x2d7)]['wheel'],this[_0xaa7eb6(0x4d1,0x51e)],this),this['_map']['on'](mars3d__namespace[_0x32325f(-0x30d,-0x2fb)]['mouseDown'],this[_0xaa7eb6(0x44e,0x413)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x32325f(-0x2a1,-0x28d)],this));}['unbindEvent'](){window[_0x516dcd(0x1a3,0x202)](this[_0x516dcd(0x295,0x212)]),delete this['_animateFrame'],window['removeEventListener'](_0x283604(0x155,0x13e),this[_0x516dcd(0x1c1,0x1df)]);function _0x516dcd(_0x20ed18,_0x5a4a15){return _0x1da74e(_0x20ed18,_0x5a4a15- -0xa5);}function _0x283604(_0x3b5261,_0x42f55e){return _0x5a9f30(_0x3b5261- -0x262,_0x42f55e);}this['options'][_0x283604(0x1d8,0x230)]&&(this['_map']['off'](mars3d__namespace['EventType'][_0x283604(0x16d,0x1ce)],this[_0x283604(0x22d,0x2b7)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x516dcd(0x278,0x23a)]['off'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this[_0x283604(0x1b0,0x21f)][_0x516dcd(0x296,0x285)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x3b6a87){clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x51d9bd(0x250,0x1ed)])return;function _0x51d9bd(_0x12037f,_0x393b1a){return _0x1da74e(_0x393b1a,_0x12037f- -0xd6);}this[_0x26c3c7(0x204,0x258)]['style'][_0x26c3c7(0x269,0x247)]='hidden';function _0x26c3c7(_0x52cc60,_0x2c30fa){return _0x5a9f30(_0x2c30fa- -0x201,_0x52cc60);}this['refreshTimer']=setTimeout(()=>{function _0x472c78(_0x2ead7d,_0x3ce06f){return _0x26c3c7(_0x3ce06f,_0x2ead7d- -0x375);}function _0x292026(_0x59c900,_0x52ae45){return _0x26c3c7(_0x52ae45,_0x59c900- -0x421);}if(!this['show'])return;this['redraw'](),this['canvas'][_0x472c78(-0x101,-0x14f)][_0x292026(-0x1da,-0x20b)]='visible';},0xc8);}['_onMouseDownEvent'](_0x1b85e0){function _0x22f428(_0x1a7f02,_0x2465be){return _0x5a9f30(_0x2465be- -0x388,_0x1a7f02);}this['mouse_down']=!![],this[_0x22f428(0xfe,0x8a)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x2a94bf(_0x2528ad,_0x5d9e05){return _0x1da74e(_0x2528ad,_0x5d9e05- -0x531);}this[_0x22f428(0x31,0x8a)]['on'](mars3d__namespace[_0x2a94bf(-0x21f,-0x284)][_0x22f428(0x72,0x19)],this[_0x2a94bf(-0x226,-0x1f9)],this);}[_0x1da74e(0x376,0x338)](_0x2406c4){if(!this[_0x4237cb(0x3ae,0x3c8)]||!this[_0x4237cb(0x3e6,0x45d)])return;function _0x4237cb(_0x5b9700,_0xc15ca9){return _0x5a9f30(_0xc15ca9-0x4,_0x5b9700);}function _0x634c2c(_0x87ed8c,_0x117d5d){return _0x1da74e(_0x87ed8c,_0x117d5d- -0x188);}this[_0x4237cb(0x4a3,0x43d)]&&(this[_0x4237cb(0x4c7,0x45d)]['style']['visibility']='hidden',this['mouse_move']=!![]);}[_0x1da74e(0x314,0x319)](_0x170576){if(!this['show']||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x2865cf(0x156,0x133)],this);function _0x36ba5c(_0x290fb3,_0x41e5fc){return _0x5a9f30(_0x41e5fc- -0x692,_0x290fb3);}this['mouse_down']&&this['mouse_move']&&this['redraw']();this[_0x2865cf(0x10f,0x121)]['style'][_0x2865cf(0x9c,0x110)]='visible',this[_0x36ba5c(-0x1e8,-0x259)]=![];function _0x2865cf(_0x1c0fca,_0x4b39b2){return _0x5a9f30(_0x4b39b2- -0x338,_0x1c0fca);}this['mouse_move']=![];}['setData'](_0x58bad8){this['clear'](),this['windData']=_0x58bad8,this['windField'][_0x57d36d(0x410,0x46b)](_0x58bad8);function _0x57d36d(_0x3016eb,_0x29e842){return _0x1da74e(_0x3016eb,_0x29e842-0x103);}this['redraw']();}[_0x5a9f30(0x413,0x3fc)](){if(!this[_0x3b2272(0x3f9,0x40d)])return;this[_0x3b2272(0x3fe,0x412)]['setOptions'](this[_0x3b2272(0x520,0x4bb)]);function _0x2ca1fa(_0x3a86e2,_0x457f03){return _0x1da74e(_0x457f03,_0x3a86e2- -0x55b);}function _0x3b2272(_0x2cb3dc,_0x4930dc){return _0x1da74e(_0x2cb3dc,_0x4930dc-0x17c);}this['update']();}[_0x5a9f30(0x3be,0x401)](){if(this['_updateIng'])return;this[_0x51a6ca(-0x137,-0x146)]=!![];function _0xd88f5b(_0x2624e4,_0x21ef32){return _0x1da74e(_0x21ef32,_0x2624e4-0x19e);}function _0x51a6ca(_0x509098,_0x1f4b02){return _0x1da74e(_0x509098,_0x1f4b02- -0x4a3);}if(this[_0xd88f5b(0x45e,0x4df)])this['windField'][_0x51a6ca(-0x24a,-0x218)]();else{const _0x19ae12=this[_0xd88f5b(0x434,0x497)]['getParticles']();this['_drawLines'](_0x19ae12);}this['_updateIng']=![];}['_drawLines'](_0x4d7c45){this['_canvasParticles']=_0x4d7c45,this['canvasContext']['globalCompositeOperation']=_0x2c3bc7(0x0,-0x28);function _0x2c3bc7(_0xd1d717,_0xb8a8ba){return _0x1da74e(_0xb8a8ba,_0xd1d717- -0x26b);}this[_0x2c3bc7(0x1c,-0x24)][_0x3e7e7e(0x41,0x12)](0x0,0x0,this['canvasWidth'],this[_0x2c3bc7(0x91,0x77)]),this['canvasContext'][_0x2c3bc7(0x1a,0x87)]='lighter',this[_0x3e7e7e(0x6d,0x62)]['globalAlpha']=0.9;const _0x18d417=this['_map']['scene']['mode']!==Cesium['SceneMode']['SCENE3D'],_0x28072b=this['canvasWidth']*0.25;function _0x3e7e7e(_0x2754fb,_0x363874){return _0x5a9f30(_0x2754fb- -0x34d,_0x363874);}if(this[_0x2c3bc7(0xf0,0xfc)])for(let _0x19bb25=0x0,_0x222ad1=_0x4d7c45[_0x3e7e7e(0x53,0x42)];_0x19bb25<_0x222ad1;_0x19bb25++){const _0x1e3b89=_0x4d7c45[_0x19bb25],_0x3b7baf=this['_tomap'](_0x1e3b89,_0x1e3b89[_0x3e7e7e(0x12a,0xc3)],_0x1e3b89['lat'],_0x1e3b89['alt']),_0x2abf4d=this['_tomap'](_0x1e3b89,_0x1e3b89[_0x3e7e7e(0xe8,0x15b)],_0x1e3b89['tlat'],_0x1e3b89[_0x2c3bc7(-0x18,-0x1c)]);if(!_0x3b7baf||!_0x2abf4d)continue;if(_0x18d417&&Math['abs'](_0x3b7baf[0x0]-_0x2abf4d[0x0])>=_0x28072b)continue;this[_0x2c3bc7(0x1c,0x49)]['beginPath'](),this['canvasContext']['lineWidth']=this[_0x2c3bc7(0x2c,-0x8)],this['canvasContext']['strokeStyle']=this[_0x2c3bc7(0xf0,0xb9)]['getColor'](_0x1e3b89['speed']),this[_0x3e7e7e(0x6d,0x35)]['moveTo'](_0x3b7baf[0x0],_0x3b7baf[0x1]),this['canvasContext']['lineTo'](_0x2abf4d[0x0],_0x2abf4d[0x1]),this[_0x3e7e7e(0x6d,0xee)][_0x3e7e7e(0x6e,0x3c)]();}else{this[_0x3e7e7e(0x6d,0x94)][_0x3e7e7e(0x14d,0xda)](),this[_0x3e7e7e(0x6d,0x6a)]['lineWidth']=this[_0x3e7e7e(0x7d,0x5b)],this[_0x3e7e7e(0x6d,0x98)][_0x2c3bc7(0x79,0x4b)]=this['color'];for(let _0x30765e=0x0,_0x5307ee=_0x4d7c45['length'];_0x30765e<_0x5307ee;_0x30765e++){const _0x109ff4=_0x4d7c45[_0x30765e],_0x40bc1b=this['_tomap'](_0x109ff4,_0x109ff4[_0x2c3bc7(0xd9,0xd9)],_0x109ff4[_0x2c3bc7(0xab,0x7d)],_0x109ff4['alt']),_0x959fe3=this['_tomap'](_0x109ff4,_0x109ff4['tlng'],_0x109ff4['tlat'],_0x109ff4[_0x2c3bc7(-0x18,0x67)]);if(!_0x40bc1b||!_0x959fe3)continue;if(_0x18d417&&Math['abs'](_0x40bc1b[0x0]-_0x959fe3[0x0])>=_0x28072b)continue;this['canvasContext']['moveTo'](_0x40bc1b[0x0],_0x40bc1b[0x1]),this['canvasContext']['lineTo'](_0x959fe3[0x0],_0x959fe3[0x1]);}this['canvasContext']['stroke']();}}[_0x5a9f30(0x427,0x3a4)](_0xbb2d00,_0x3a71b5,_0x1e3a96,_0xb64eb){const _0x237eff=Cesium['Cartesian3'][_0x9eca5a(-0x220,-0x233)](_0x3a71b5,_0x1e3a96,_0xb64eb??this['fixedHeight']);function _0x9eca5a(_0xd169c0,_0x1ada17){return _0x1da74e(_0xd169c0,_0x1ada17- -0x4d8);}const _0x1b27a0=this['_map']['scene'];function _0x1c5d8f(_0x69752b,_0x137c1a){return _0x1da74e(_0x69752b,_0x137c1a- -0x52e);}if(_0x1b27a0['mode']===Cesium['SceneMode']['SCENE3D']){const _0x2da032=new Cesium['EllipsoidalOccluder'](_0x1b27a0[_0x9eca5a(-0x276,-0x252)][_0x9eca5a(-0x1b7,-0x1eb)],_0x1b27a0[_0x1c5d8f(-0x269,-0x248)]['positionWC']),_0x16b137=_0x2da032['isPointVisible'](_0x237eff);if(!_0x16b137)return _0xbb2d00['age']=0x0,null;}const _0x12e211=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map']['scene'],_0x237eff);return _0x12e211?[_0x12e211['x'],_0x12e211['y']]:null;}[_0x1da74e(0x373,0x363)](){function _0x4a4b17(_0x17e599,_0x79084){return _0x5a9f30(_0x79084- -0x167,_0x17e599);}function _0x1506aa(_0x583580,_0x42920d){return _0x5a9f30(_0x583580- -0x15c,_0x42920d);}this[_0x1506aa(0x26d,0x268)][_0x4a4b17(0x35d,0x32f)](),delete this[_0x4a4b17(0x37f,0x30c)];}[_0x5a9f30(0x3fa,0x456)](){function _0x2402f3(_0xbce771,_0x2d4479){return _0x5a9f30(_0xbce771- -0x17e,_0x2d4479);}this['worker']=new Worker(this['options'][_0x4dccc3(-0xf0,-0x74)]);function _0x4dccc3(_0x11845b,_0x399d40){return _0x1da74e(_0x399d40,_0x11845b- -0x3b0);}this['worker']['onmessage']=_0x1e36fd=>{function _0x5647e2(_0x56bea8,_0xd5bd2b){return _0x4dccc3(_0x56bea8- -0xe0,_0xd5bd2b);}this[_0x5647e2(-0x14b,-0x176)](_0x1e36fd['data'][_0x5647e2(-0x132,-0xce)]);function _0x17fc9c(_0x5e3616,_0x44f880){return _0x4dccc3(_0x44f880-0x160,_0x5e3616);}this['_updateIng2']=![];},this['windField']={'init':_0x42d84f=>{function _0x1fb678(_0x3d3a80,_0x32db2a){return _0x4dccc3(_0x32db2a-0x36c,_0x3d3a80);}const _0x1a7d5e={};_0x1a7d5e['type']=_0x1fb678(0x29c,0x2a1);function _0x1a4917(_0x5509d3,_0xaacf1a){return _0x4dccc3(_0xaacf1a-0x3a4,_0x5509d3);}_0x1a7d5e[_0x1a4917(0x354,0x333)]=_0x42d84f,this['worker']['postMessage'](_0x1a7d5e);},'setOptions':_0x44750d=>{function _0x7c1f3f(_0x9cbb42,_0x253f4d){return _0x4dccc3(_0x253f4d-0x3cb,_0x9cbb42);}const _0x522508={};_0x522508[_0x23273a(0x1a2,0x191)]='setOptions',_0x522508[_0x7c1f3f(0x3d7,0x35a)]=_0x44750d;function _0x23273a(_0x5599ed,_0x4902ca){return _0x4dccc3(_0x4902ca-0x216,_0x5599ed);}this[_0x7c1f3f(0x2bb,0x2db)][_0x23273a(0xa0,0xcf)](_0x522508);},'setDate':_0x5c37d8=>{const _0x544479={};function _0x5efa2f(_0x22fc1b,_0x1743c4){return _0x4dccc3(_0x22fc1b-0x56,_0x1743c4);}_0x544479[_0x13986d(0x57b,0x527)]='setDate';function _0x13986d(_0x2bc1d2,_0x389134){return _0x4dccc3(_0x389134-0x5ac,_0x2bc1d2);}_0x544479[_0x5efa2f(-0xf8,-0x7e)]=_0x5c37d8,this[_0x13986d(0x431,0x4bc)]['postMessage'](_0x544479);},'update':()=>{if(this[_0x976e0e(-0x17,-0x98)])return;function _0x26b202(_0x1ec722,_0x358b03){return _0x4dccc3(_0x358b03-0x8c,_0x1ec722);}function _0x976e0e(_0x3a3988,_0x5637bd){return _0x4dccc3(_0x5637bd-0x6,_0x3a3988);}this[_0x26b202(0x3,-0x12)]=!![];const _0x1d36ba={};_0x1d36ba[_0x26b202(0x8c,0x7)]='update',this[_0x976e0e(-0xa1,-0xea)]['postMessage'](_0x1d36ba);},'clear':()=>{const _0x1aa7ac={};_0x1aa7ac['type']='clear';function _0xa3b690(_0x5eba06,_0x519e1d){return _0x4dccc3(_0x519e1d-0x4dc,_0x5eba06);}this['worker'][_0xa3b690(0x3bd,0x395)](_0x1aa7ac);}},this[_0x4dccc3(-0x11a,-0x109)]['init'](this['options']);}}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace['layer'][_0x5a9f30(0x3fd,0x46b)]=CanvasWindLayer,mars3d__namespace[_0x1da74e(0x33c,0x34f)]=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x1da74e(0x2f6,0x2fd)]=WindLayer,exports[_0x5a9f30(0x40d,0x3ec)]=WindUtil;function _0x580d(_0x47aa89,_0x24385e){const _0x38fcec=_0x38fc();return _0x580d=function(_0x580da9,_0x11a0a8){_0x580da9=_0x580da9-0x67;let _0x3b97ea=_0x38fcec[_0x580da9];return _0x3b97ea;},_0x580d(_0x47aa89,_0x24385e);}const _0x5734cb={};_0x5734cb['value']=!![],Object['defineProperty'](exports,_0x1da74e(0x26f,0x2c2),_0x5734cb);
14
+ 'use strict';function _0x2e747d(_0x140783,_0x4f8fd9){return _0x1e9b(_0x4f8fd9- -0x166,_0x140783);}(function(_0x11308f,_0x3c8d6b){function _0x2ea8eb(_0x35d061,_0x4bbbd5){return _0x1e9b(_0x35d061- -0x295,_0x4bbbd5);}const _0x45adfc=_0x11308f();function _0x25b517(_0x56e566,_0x42b2ab){return _0x1e9b(_0x56e566- -0x1fe,_0x42b2ab);}while(!![]){try{const _0xb779aa=-parseInt(_0x2ea8eb(-0x15c,-0x1a8))/0x1*(-parseInt(_0x25b517(-0x9d,-0x21))/0x2)+-parseInt(_0x25b517(0x7,-0x7f))/0x3+parseInt(_0x25b517(-0x76,-0xeb))/0x4*(parseInt(_0x2ea8eb(-0xb0,-0x122))/0x5)+-parseInt(_0x2ea8eb(-0xbd,-0x139))/0x6*(-parseInt(_0x2ea8eb(-0x112,-0x128))/0x7)+parseInt(_0x2ea8eb(-0xec,-0x109))/0x8+-parseInt(_0x25b517(-0x6b,0xa))/0x9*(parseInt(_0x25b517(0x31,0x4b))/0xa)+-parseInt(_0x25b517(-0x38,0x36))/0xb;if(_0xb779aa===_0x3c8d6b)break;else _0x45adfc['push'](_0x45adfc['shift']());}catch(_0x1380b9){_0x45adfc['push'](_0x45adfc['shift']());}}}(_0x2570,0x6401c));function _interopNamespace(_0x392ee2){function _0x567616(_0x25cb17,_0x5d78f7){return _0x1e9b(_0x25cb17- -0x30,_0x5d78f7);}if(_0x392ee2&&_0x392ee2[_0x567616(0x100,0x176)])return _0x392ee2;function _0x352515(_0x339eee,_0x547774){return _0x1e9b(_0x339eee- -0x378,_0x547774);}var _0x320fd3=Object[_0x352515(-0x166,-0x155)](null);return _0x392ee2&&Object['keys'](_0x392ee2)['forEach'](function(_0x408396){function _0x1172d0(_0x13e15b,_0x1fa876){return _0x567616(_0x13e15b- -0x248,_0x1fa876);}function _0x2851dd(_0x3101e4,_0x44c6a1){return _0x352515(_0x3101e4-0x703,_0x44c6a1);}if(_0x408396!==_0x2851dd(0x5ab,0x545)){var _0x2c9b87=Object['getOwnPropertyDescriptor'](_0x392ee2,_0x408396);Object['defineProperty'](_0x320fd3,_0x408396,_0x2c9b87[_0x2851dd(0x55c,0x502)]?_0x2c9b87:{'enumerable':!![],'get':function(){return _0x392ee2[_0x408396];}});}}),_0x320fd3['default']=_0x392ee2,_0x320fd3;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x37aa63,_0xb025e8){function _0x4362b7(_0x3bed2d,_0x458b8f){return _0x1e9b(_0x3bed2d- -0x314,_0x458b8f);}function _0x5eede0(_0x3d80e2,_0x521a40){return _0x1e9b(_0x521a40-0xb1,_0x3d80e2);}const _0x30c570=_0x37aa63*Math[_0x4362b7(-0xe3,-0x83)](Cesium$2['Math'][_0x4362b7(-0x183,-0x188)](_0xb025e8));return _0x30c570;}function _0x4086ac(_0x3b17b0,_0x348c4d){return _0x1e9b(_0x348c4d- -0x82,_0x3b17b0);}function getV(_0x2dd46d,_0x3f362d){const _0x1d1925=_0x2dd46d*Math['sin'](Cesium$2['Math'][_0x240ee1(0x1c4,0x142)](_0x3f362d));function _0x240ee1(_0x2a5a4c,_0x458bb8){return _0x1e9b(_0x2a5a4c-0x33,_0x458bb8);}return _0x1d1925;}function getSpeed(_0x24ad65,_0x1b0393){function _0x426bb0(_0x52c1c0,_0x348001){return _0x1e9b(_0x348001- -0x32b,_0x52c1c0);}const _0x5e6433=Math['sqrt'](Math['pow'](_0x24ad65,0x2)+Math[_0x426bb0(-0x14e,-0x11a)](_0x1b0393,0x2));return _0x5e6433;}function getDirection(_0x1b54db,_0x182bec){let _0x5ec519=Cesium$2['Math']['toDegrees'](Math[_0x4607da(0x451,0x418)](_0x182bec,_0x1b54db));function _0x4607da(_0x598032,_0x21c72a){return _0x1e9b(_0x21c72a-0x1f6,_0x598032);}return _0x5ec519+=_0x5ec519<0x0?0x168:0x0,_0x5ec519;}const _0x2b5825={};_0x2b5825['__proto__']=null,_0x2b5825['getU']=getU,_0x2b5825['getV']=getV,_0x2b5825['getSpeed']=getSpeed,_0x2b5825['getDirection']=getDirection;var WindUtil=_0x2b5825,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=_0x4086ac(0x1e0,0x17d),postProcessingPositionFragmentShader=_0x2e747d(0x2a,0x65),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=_0x2e747d(-0x25,-0x9);const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x39a03c={};return _0x39a03c['sources']=[calculateSpeedShader],new ShaderSource$1(_0x39a03c);}static['getUpdatePositionShader'](){const _0x4541e6={};return _0x4541e6['sources']=[updatePositionShader],new ShaderSource$1(_0x4541e6);}static[_0x2e747d(0x121,0xb0)](){const _0x37e999={};return _0x37e999['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x37e999);}static['getSegmentDrawFragmentShader'](){const _0x35f93d={};return _0x35f93d['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x35f93d);}static[_0x2e747d(-0x99,-0x1e)](){const _0x324a2e={};return _0x324a2e['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x324a2e);}}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[_0x2e747d(0x2c,-0x38)];class CustomPrimitive{constructor(_0xc88303){this['commandType']=_0xc88303[_0x58e34f(-0x21a,-0x1a9)],this['geometry']=_0xc88303[_0x36acea(-0x176,-0x1f2)],this[_0x36acea(-0xe8,-0xdc)]=_0xc88303[_0x36acea(-0xe8,-0x100)],this['primitiveType']=_0xc88303[_0x36acea(-0x14b,-0x190)],this[_0x36acea(-0x105,-0xae)]=_0xc88303['uniformMap']||{},this['vertexShaderSource']=_0xc88303[_0x36acea(-0x10a,-0x137)],this[_0x58e34f(-0x1b2,-0x1b5)]=_0xc88303['fragmentShaderSource'],this['rawRenderState']=_0xc88303[_0x36acea(-0x161,-0x176)],this[_0x58e34f(-0x150,-0xdd)]=_0xc88303['framebuffer'];function _0x36acea(_0x7b87d9,_0x22191a){return _0x2e747d(_0x22191a,_0x7b87d9- -0x196);}this['outputTexture']=_0xc88303['outputTexture'],this['autoClear']=_0xc88303['autoClear']??![];function _0x58e34f(_0x3d1ed3,_0x16ff47){return _0x2e747d(_0x3d1ed3,_0x16ff47- -0x198);}this[_0x58e34f(-0xf1,-0x14f)]=_0xc88303['preExecute'],this[_0x36acea(-0x10c,-0x139)]=!![],this[_0x36acea(-0x11f,-0x15e)]=undefined,this['clearCommand']=undefined,this[_0x36acea(-0x164,-0x1c8)]=_0xc88303['isDynamic']??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x36acea(-0xdb,-0xfd)],'pass':Pass$1[_0x36acea(-0x168,-0x188)]}));}[_0x2e747d(0x6e,-0xa)](_0x13ace3){function _0x498ebb(_0x3f3a1a,_0x3ebe45){return _0x4086ac(_0x3f3a1a,_0x3ebe45-0x26d);}function _0x204c47(_0xdda062,_0x172978){return _0x4086ac(_0xdda062,_0x172978- -0x22);}if(this['commandType']==='Draw'){const _0x29dd35={};_0x29dd35['context']=_0x13ace3,_0x29dd35['geometry']=this['geometry'],_0x29dd35[_0x204c47(0x133,0x170)]=this[_0x498ebb(0x46f,0x3ff)],_0x29dd35[_0x498ebb(0x47e,0x425)]=BufferUsage$1['STATIC_DRAW'];const _0x42133d=VertexArray$1[_0x498ebb(0x350,0x38e)](_0x29dd35),_0x241187={};_0x241187['context']=_0x13ace3,_0x241187['vertexShaderSource']=this['vertexShaderSource'],_0x241187['fragmentShaderSource']=this['fragmentShaderSource'],_0x241187[_0x204c47(0x111,0x170)]=this[_0x204c47(0x1a9,0x170)];const _0x70aea3=ShaderProgram['fromCache'](_0x241187),_0x9cdf91=RenderState[_0x498ebb(0x2f1,0x351)](this[_0x498ebb(0x3d6,0x386)]),_0xa45f83={};return _0xa45f83['owner']=this,_0xa45f83[_0x498ebb(0x362,0x38a)]=_0x42133d,_0xa45f83['primitiveType']=this[_0x498ebb(0x393,0x39c)],_0xa45f83[_0x204c47(0x86,0xda)]=Matrix4[_0x498ebb(0x2ef,0x352)],_0xa45f83['renderState']=_0x9cdf91,_0xa45f83['shaderProgram']=_0x70aea3,_0xa45f83['framebuffer']=this['framebuffer'],_0xa45f83[_0x204c47(0x138,0x153)]=this['uniformMap'],_0xa45f83['pass']=Pass$1['OPAQUE'],new DrawCommand(_0xa45f83);}else{if(this['commandType']==='Compute'){const _0x35fb2e={};return _0x35fb2e['owner']=this,_0x35fb2e['fragmentShaderSource']=this['fragmentShaderSource'],_0x35fb2e[_0x498ebb(0x3b6,0x3e2)]=this['uniformMap'],_0x35fb2e['outputTexture']=this['outputTexture'],_0x35fb2e[_0x204c47(0x12f,0x115)]=!![],new ComputeCommand(_0x35fb2e);}else throw new Error(_0x204c47(0x17c,0x12c));}}['setGeometry'](_0x219071,_0x36843f){function _0x4980e6(_0x564a09,_0x4ec096){return _0x2e747d(_0x564a09,_0x4ec096-0x3d8);}function _0x13328d(_0x8e25f9,_0x3677e7){return _0x4086ac(_0x8e25f9,_0x3677e7- -0x46);}this['geometry']=_0x36843f,defined(this[_0x13328d(0x155,0x115)])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x219071,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x13328d(0x184,0x16b)]}));}['update'](_0x51c186){if(!this[_0xb812ba(0x263,0x23c)]())return;if(!this[_0xb812ba(0x2bb,0x24d)]||!defined(_0x51c186))return;!defined(this[_0x3786a6(0xf1,0xe7)])&&(this['commandToExecute']=this[_0x3786a6(0x70,0x88)](_0x51c186['context']));defined(this['preExecute'])&&this['preExecute']();if(!_0x51c186['commandList']){console[_0xb812ba(0x294,0x2b2)]('frameState.commandList\x20is\x20undefined');return;}function _0x3786a6(_0xe0168c,_0x4a62c0){return _0x4086ac(_0x4a62c0,_0xe0168c- -0x6a);}function _0xb812ba(_0x4e166c,_0x2cc0f8){return _0x4086ac(_0x2cc0f8,_0x4e166c-0x14d);}defined(this[_0xb812ba(0x2d5,0x2fb)])&&_0x51c186['commandList']['push'](this['clearCommand']),defined(this['commandToExecute'])&&_0x51c186[_0x3786a6(0xc0,0xdb)]['push'](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){if(defined(this[_0x598a3b(-0x3d,-0x7c)])){var _0x14ff6c;(_0x14ff6c=this['commandToExecute']['shaderProgram'])===null||_0x14ff6c===void 0x0||_0x14ff6c['destroy'](),this[_0x598a3b(-0x46,-0x7c)]['shaderProgram']=undefined;}function _0x5d17ee(_0x4712fe,_0x213285){return _0x2e747d(_0x4712fe,_0x213285- -0x1dc);}function _0x598a3b(_0x25d726,_0x2f2b6b){return _0x4086ac(_0x25d726,_0x2f2b6b- -0x1d7);}return destroyObject(this);}}function deepMerge(_0x3ef7b6,_0x3c49d4){function _0x1f2b4c(_0x578efc,_0x3f79f4){return _0x4086ac(_0x3f79f4,_0x578efc- -0x1b8);}if(!_0x3ef7b6)return _0x3c49d4;if(!_0x3c49d4)return _0x3ef7b6;const _0x3e0ffd={..._0x3c49d4},_0x3bd7f7=_0x3e0ffd;for(const _0x17eeb2 in _0x3ef7b6){if(Object[_0x1f2b4c(-0x7b,-0x54)]['hasOwnProperty']['call'](_0x3ef7b6,_0x17eeb2)){const _0x7cf7d3=_0x3ef7b6[_0x17eeb2],_0x5ad9bf=_0x3c49d4[_0x17eeb2];if(Array['isArray'](_0x7cf7d3)){_0x3bd7f7[_0x17eeb2]=_0x7cf7d3[_0x428784(0x416,0x410)]();continue;}if(_0x7cf7d3&&typeof _0x7cf7d3==='object'){_0x3bd7f7[_0x17eeb2]=deepMerge(_0x7cf7d3,_0x5ad9bf||{});continue;}_0x7cf7d3!==undefined&&(_0x3bd7f7[_0x17eeb2]=_0x7cf7d3);}}function _0x428784(_0x12ce42,_0x1065de){return _0x2e747d(_0x12ce42,_0x1065de-0x445);}return _0x3bd7f7;}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(_0x231999,_0x255572,_0x13a94c,_0x45f6aa,_0x55986a){this['context']=_0x231999,this['options']=_0x13a94c,this['viewerParameters']=_0x45f6aa,this[_0x2903ca(0x160,0x105)]=_0x255572;function _0x551cbf(_0x34c92a,_0x39bb1b){return _0x2e747d(_0x34c92a,_0x39bb1b-0x40d);}this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x17a607={};_0x17a607['scene']=_0x55986a,_0x17a607[_0x551cbf(0x47f,0x4cd)]=0x1,_0x17a607['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x17a607);function _0x2903ca(_0x44dd8e,_0x52d1f9){return _0x4086ac(_0x44dd8e,_0x52d1f9-0x38);}this['initFrameRate'](),this[_0x551cbf(0x48a,0x4c1)](),this[_0x2903ca(0x14c,0x144)](),this['createComputingPrimitives']();}[_0x2e747d(0xe2,0x5c)](){function _0x50f213(_0x1450d2,_0x22bdec){return _0x2e747d(_0x1450d2,_0x22bdec-0x457);}const _0x4e1afc=()=>{function _0x5c297d(_0x470b51,_0x5b9758){return _0x1e9b(_0x470b51- -0x101,_0x5b9758);}function _0x433c1d(_0x7f69f7,_0x264b9a){return _0x1e9b(_0x7f69f7- -0x15c,_0x264b9a);}this['frameRateMonitor'][_0x433c1d(0x39,0xa3)]>0x14&&(this['frameRate']=this[_0x5c297d(0xc3,0x41)]['lastFramesPerSecond'],this[_0x433c1d(-0xe,-0x8)]=0x3c/Math[_0x5c297d(0xff,0x84)](this[_0x433c1d(0xad,0x9d)],0x1));};_0x4e1afc();const _0x345987=setInterval(_0x4e1afc,0x3e8),_0x4ffd41=this[_0x50f213(0x4c7,0x492)]['bind'](this);this['destroy']=()=>{clearInterval(_0x345987),_0x4ffd41();};}[_0x4086ac(0x11e,0x198)](){const _0x51aa52={};_0x51aa52[_0x14723e(-0x160,-0x13e)]=TextureMinificationFilter$1['LINEAR'];function _0x556132(_0x337c9e,_0x2c0f87){return _0x4086ac(_0x337c9e,_0x2c0f87-0x421);}function _0x14723e(_0x36ceec,_0x100fc8){return _0x2e747d(_0x36ceec,_0x100fc8- -0x152);}_0x51aa52['magnificationFilter']=TextureMagnificationFilter$1[_0x556132(0x607,0x5cd)];const _0x30a20c={'context':this['context'],'width':this[_0x556132(0x52d,0x4ee)][_0x14723e(-0x167,-0x15e)],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x556132(0x5ed,0x567)]['flipY']??![],'sampler':new Sampler$1(_0x51aa52)};this[_0x14723e(-0x9f,-0xc4)]={'U':new Texture$1({..._0x30a20c,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x30a20c,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){function _0x471a07(_0x5ac9cb,_0x138ae2){return _0x2e747d(_0x138ae2,_0x5ac9cb-0x2ce);}const _0xf0573c={};function _0x267ff3(_0x1f57d1,_0xb5a813){return _0x2e747d(_0xb5a813,_0x1f57d1-0xa2);}_0xf0573c[_0x471a07(0x2e2,0x323)]=TextureMinificationFilter$1['NEAREST'],_0xf0573c['magnificationFilter']=TextureMagnificationFilter$1[_0x471a07(0x2ed,0x2d6)];const _0x33a30e={'context':this['context'],'width':this['options'][_0x267ff3(0x122,0x156)],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0x471a07(0x37d,0x3a2)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x267ff3(0x104,0x9d)][_0x471a07(0x34e,0x2d8)]*this['options']['particlesTextureSize']*0x4)[_0x471a07(0x390,0x321)](0x0)},'sampler':new Sampler$1(_0xf0573c)};this[_0x471a07(0x28f,0x278)]={'previousParticlesPosition':new Texture$1(_0x33a30e),'currentParticlesPosition':new Texture$1(_0x33a30e),'nextParticlesPosition':new Texture$1(_0x33a30e),'postProcessingPosition':new Texture$1(_0x33a30e),'particlesSpeed':new Texture$1(_0x33a30e)};}['destroyParticlesTextures'](){function _0xe2794c(_0x801ef3,_0x17c051){return _0x2e747d(_0x17c051,_0x801ef3- -0x231);}Object['values'](this['particlesTextures'])['forEach'](_0x85e39e=>_0x85e39e[_0xe2794c(-0x1f6,-0x210)]());}[_0x4086ac(0xf6,0x17c)](){function _0x38346c(_0x399783,_0x4dc75a){return _0x4086ac(_0x4dc75a,_0x399783-0xb6);}function _0x164b25(_0x53bc0e,_0xaced18){return _0x2e747d(_0xaced18,_0x53bc0e- -0x15f);}this[_0x164b25(-0xde,-0x8a)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this[_0x164b25(-0xd1,-0x144)]['V'],'uRange':()=>new Cartesian2$1(this['windData']['u'][_0x164b25(-0x102,-0x181)],this[_0x164b25(-0x176,-0x195)]['u'][_0x164b25(-0xc5,-0x95)]),'vRange':()=>new Cartesian2$1(this[_0x164b25(-0x176,-0x1d1)]['v']['min'],this[_0x164b25(-0x176,-0x1aa)]['v'][_0x164b25(-0xc5,-0xef)]),'speedRange':()=>new Cartesian2$1(this[_0x38346c(0x183,0x124)][_0x38346c(0x1f1,0x1c2)]['min'],this[_0x38346c(0x183,0x141)][_0x38346c(0x1f1,0x16a)][_0x164b25(-0xc5,-0x9a)]),'currentParticlesPosition':()=>this['particlesTextures'][_0x164b25(-0x156,-0x129)],'speedScaleFactor':()=>{return(this['viewerParameters']['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this[_0x164b25(-0x177,-0x1ba)],'dimension':()=>new Cartesian2$1(this['windData'][_0x38346c(0x18e,0x20a)],this[_0x38346c(0x183,0x1b5)][_0x164b25(-0xaa,-0x12f)]),'minimum':()=>new Cartesian2$1(this[_0x164b25(-0x176,-0xf0)]['bounds'][_0x164b25(-0xb9,-0x5e)],this[_0x38346c(0x183,0x14e)][_0x38346c(0x1af,0x144)]['south']),'maximum':()=>new Cartesian2$1(this[_0x164b25(-0x176,-0x1e3)][_0x164b25(-0x14a,-0xc2)]['east'],this['windData'][_0x38346c(0x1af,0x135)]['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x164b25(-0x19e,-0x1be)][_0x38346c(0x1e7,0x161)],'preExecute':()=>{const _0x380e21=this[_0x2b12f4(0x407,0x462)]['previousParticlesPosition'];function _0x373d5a(_0x416898,_0x57b3ee){return _0x164b25(_0x57b3ee-0x6a0,_0x416898);}this['particlesTextures'][_0x373d5a(0x586,0x503)]=this['particlesTextures'][_0x2b12f4(0x475,0x4aa)],this[_0x373d5a(0x526,0x502)]['currentParticlesPosition']=this['particlesTextures'][_0x2b12f4(0x50e,0x534)],this['particlesTextures'][_0x373d5a(0x570,0x5d4)]=_0x380e21;function _0x2b12f4(_0x286b32,_0x1fb26e){return _0x164b25(_0x1fb26e-0x600,_0x286b32);}this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives']['calculateSpeed']['commandToExecute']['outputTexture']=this[_0x2b12f4(0x46c,0x462)]['particlesSpeed']);},'isDynamic':()=>this[_0x38346c(0x1fc,0x1f0)][_0x38346c(0x18c,0x204)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x164b25(-0x112,-0x188)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x317b01(_0x44df52,_0x32bf7d){return _0x38346c(_0x32bf7d-0x161,_0x44df52);}function _0x480890(_0x26e5a8,_0x37ddfb){return _0x38346c(_0x26e5a8-0x360,_0x37ddfb);}this[_0x480890(0x57b,0x5b6)][_0x317b01(0x323,0x2eb)][_0x480890(0x571,0x57f)]&&(this['primitives'][_0x317b01(0x35b,0x2eb)][_0x317b01(0x370,0x372)]['outputTexture']=this['particlesTextures'][_0x317b01(0x331,0x35c)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x164b25(-0x19e,-0x1a1)][_0x38346c(0x1fb,0x26f)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters'][_0x164b25(-0x10f,-0x11c)],'latRange':()=>this['viewerParameters'][_0x38346c(0x16c,0x175)],'dataLonRange':()=>new Cartesian2$1(this[_0x164b25(-0x176,-0xf5)][_0x164b25(-0x14a,-0xf3)][_0x164b25(-0xb9,-0x111)],this[_0x164b25(-0x176,-0x1e3)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds'][_0x164b25(-0x18f,-0x14f)],this['windData']['bounds']['north']),'randomCoefficient':function(){function _0x28c66c(_0x287fb5,_0x596089){return _0x164b25(_0x287fb5- -0xf1,_0x596089);}return Math[_0x28c66c(-0x28c,-0x2a6)]();},'dropRate':()=>this[_0x38346c(0x1fc,0x1dd)]['dropRate'],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this[_0x38346c(0x1fc,0x253)][_0x164b25(-0x188,-0x1f7)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x38346c(0x15b,0x138)]['postProcessingPosition'],'preExecute':()=>{function _0x534715(_0x1362bb,_0x53e5df){return _0x164b25(_0x1362bb-0x3e3,_0x53e5df);}function _0x7dfb59(_0x438ffa,_0x3fba86){return _0x38346c(_0x3fba86- -0x2ab,_0x438ffa);}this['primitives'][_0x7dfb59(-0x7,-0x7e)]['commandToExecute']&&(this['primitives']['postProcessingPosition']['commandToExecute'][_0x534715(0x331,0x365)]=this[_0x534715(0x245,0x264)][_0x534715(0x317,0x39b)]);},'isDynamic':()=>this['options']['dynamic']})};}['reCreateWindTextures'](){function _0x2dd00b(_0x2021b5,_0x108452){return _0x4086ac(_0x108452,_0x2021b5- -0x219);}this['windTextures']['U'][_0x2dd00b(-0xfa,-0xac)](),this['windTextures']['V'][_0x2dd00b(-0xfa,-0x115)]();function _0x175fb2(_0x1593c6,_0x91c357){return _0x2e747d(_0x1593c6,_0x91c357- -0x2f);}this['createWindTextures']();}[_0x2e747d(-0x3d,-0x2a)](_0x5563e2){this['windData']=_0x5563e2,this['reCreateWindTextures']();}['updateOptions'](_0x34aa0a){const _0x176d7a=_0x34aa0a['flipY']!==undefined&&_0x34aa0a['flipY']!==this['options'][_0x35f40d(-0x239,-0x2b3)];this['options']=deepMerge(_0x34aa0a,this['options']);function _0x35f40d(_0x1a404c,_0x20a4d4){return _0x2e747d(_0x20a4d4,_0x1a404c- -0x224);}_0x176d7a&&this['reCreateWindTextures']();}['processWindData'](_0x1f4b2b){const {array:_0x518282}=_0x1f4b2b;let {min:_0x475b57,max:_0x4948a5}=_0x1f4b2b;const _0x739615=new Float32Array(_0x518282['length']);_0x475b57===undefined&&(console[_0x24bcea(0x541,0x4cd)](_0x1cf945(0x241,0x290)),_0x475b57=Math['min'](..._0x518282));_0x4948a5===undefined&&(console['warn'](_0x24bcea(0x4ba,0x4e8)),_0x4948a5=Math[_0x24bcea(0x579,0x504)](..._0x518282));const _0x1f6bda=Math[_0x24bcea(0x50e,0x504)](Math[_0x1cf945(0x267,0x1f1)](_0x475b57),Math['abs'](_0x4948a5));for(let _0x8d3c3d=0x0;_0x8d3c3d<_0x518282[_0x24bcea(0x466,0x45b)];_0x8d3c3d++){const _0x2da82f=_0x518282[_0x8d3c3d]/_0x1f6bda;_0x739615[_0x8d3c3d]=_0x2da82f;}function _0x24bcea(_0x16bf12,_0x113f4c){return _0x2e747d(_0x16bf12,_0x113f4c-0x46a);}function _0x1cf945(_0x69ad23,_0x46706a){return _0x4086ac(_0x69ad23,_0x46706a-0x144);}return _0x739615;}['destroy'](){Object['values'](this[_0x35e9f2(0x231,0x1b8)])['forEach'](_0xdcc8f0=>_0xdcc8f0[_0x35e9f2(0x1de,0x1a2)]()),Object[_0x89e55(0x39,0x7)](this['particlesTextures'])['forEach'](_0x1158c0=>_0x1158c0['destroy']());function _0x35e9f2(_0xbce973,_0x4e9dca){return _0x4086ac(_0x4e9dca,_0xbce973-0xbf);}function _0x89e55(_0x50b3e5,_0x5c301f){return _0x4086ac(_0x5c301f,_0x50b3e5- -0x117);}Object['values'](this['primitives'])[_0x89e55(0x84,0x7d)](_0x2b2763=>_0x2b2763[_0x35e9f2(0x1de,0x1ae)]()),this['frameRateMonitor'][_0x35e9f2(0x1de,0x1ec)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x2e747d(-0x72,-0x38)];class WindParticlesRendering{constructor(_0x266abf,_0x3afe3c,_0xd61864,_0x537abc){this[_0x473e0e(-0x216,-0x246)]=_0x266abf,this['options']=_0x3afe3c,this[_0x159072(0x26d,0x23f)]=_0xd61864,this['computing']=_0x537abc;(typeof this[_0x159072(0x1a0,0x1cc)]['particlesTextureSize']!=='number'||this['options']['particlesTextureSize']<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x159072(0x1f4,0x1cc)]['particlesTextureSize']=0x100);function _0x473e0e(_0x3d4d52,_0x13f501){return _0x2e747d(_0x3d4d52,_0x13f501- -0x258);}function _0x159072(_0x39d30b,_0x2f2bb8){return _0x2e747d(_0x39d30b,_0x2f2bb8-0x16a);}this[_0x473e0e(-0x17e,-0x189)]=this[_0x473e0e(-0x24e,-0x206)](),this[_0x159072(0x18b,0x143)]=this['createRenderingTextures'](),this['framebuffers']=this['createRenderingFramebuffers'](),this[_0x159072(0x1d9,0x1eb)]=this['createPrimitives']();}['createRenderingTextures'](){const _0x3253ce={};_0x3253ce['context']=this['context'],_0x3253ce['width']=this[_0x31cc30(-0x1ad,-0x1ff)][_0x36a436(-0x1d9,-0x1d2)];function _0x31cc30(_0x4f13e5,_0x1e9a89){return _0x4086ac(_0x1e9a89,_0x4f13e5- -0x2a3);}_0x3253ce[_0x36a436(-0x1a7,-0x16c)]=this['context']['drawingBufferHeight'],_0x3253ce[_0x31cc30(-0xee,-0xfb)]=PixelFormat['RGBA'],_0x3253ce[_0x36a436(-0x116,-0x180)]=PixelDatatype['UNSIGNED_BYTE'];function _0x36a436(_0x1c503c,_0x338c37){return _0x4086ac(_0x1c503c,_0x338c37- -0x305);}const _0x4170f6=_0x3253ce,_0x242381={};_0x242381[_0x31cc30(-0x1ad,-0x1a3)]=this[_0x31cc30(-0x1ad,-0x1bf)],_0x242381['width']=this['context'][_0x31cc30(-0x170,-0x197)],_0x242381['height']=this['context']['drawingBufferHeight'],_0x242381[_0x36a436(-0x178,-0x150)]=PixelFormat['DEPTH_COMPONENT'],_0x242381[_0x31cc30(-0x11e,-0xdd)]=PixelDatatype['UNSIGNED_INT'];const _0xfa0b2e=_0x242381;return{'segmentsColor':new Texture(_0x4170f6),'segmentsDepth':new Texture(_0xfa0b2e)};}[_0x2e747d(0x31,0xa7)](){const _0x429563={};_0x429563[_0x5bc707(0x1d9,0x1bf)]=this['context'],_0x429563['colorTextures']=[this['textures']['segmentsColor']],_0x429563[_0x15125f(0x4a4,0x487)]=this[_0x15125f(0x453,0x428)]['segmentsDepth'];function _0x15125f(_0x1f0805,_0x4d9d8b){return _0x2e747d(_0x1f0805,_0x4d9d8b-0x44f);}function _0x5bc707(_0x10076b,_0x4152f4){return _0x4086ac(_0x4152f4,_0x10076b-0xe3);}return{'segments':new Framebuffer(_0x429563)};}[_0x4086ac(0x14c,0xc3)](){function _0x15e1ca(_0x1bdab4,_0xd0e152){return _0x2e747d(_0x1bdab4,_0xd0e152-0x37e);}Object['values'](this[_0x15e1ca(0x3ba,0x40d)])['forEach'](_0x25842c=>{_0x25842c['destroy']();});}[_0x2e747d(-0x19,0x52)](){const _0x4e4aa1=new Float32Array(this['options']['colors']['flatMap'](_0x2b00ba=>{function _0x3f9bad(_0x6c8f2b,_0x55e0b9){return _0x1e9b(_0x55e0b9- -0x3dd,_0x6c8f2b);}const _0x5ce435=Color$1['fromCssColorString'](_0x2b00ba);return[_0x5ce435['red'],_0x5ce435['green'],_0x5ce435['blue'],_0x5ce435[_0x3f9bad(-0x25d,-0x27e)]];})),_0x3a9f0e={};_0x3a9f0e['minificationFilter']=TextureMinificationFilter[_0x492d5(-0x57,-0x1)];function _0x324d96(_0x140aa0,_0x3efaaa){return _0x2e747d(_0x3efaaa,_0x140aa0-0x546);}_0x3a9f0e[_0x324d96(0x584,0x55f)]=TextureMagnificationFilter[_0x324d96(0x60e,0x602)],_0x3a9f0e['wrapS']=TextureWrap['CLAMP_TO_EDGE'];function _0x492d5(_0xc56e07,_0x201620){return _0x4086ac(_0x201620,_0xc56e07- -0x203);}return _0x3a9f0e[_0x324d96(0x543,0x4fc)]=TextureWrap[_0x492d5(-0x62,-0x5f)],new Texture({'context':this[_0x324d96(0x558,0x528)],'width':this['options']['colors'][_0x324d96(0x537,0x59a)],'height':0x1,'pixelFormat':PixelFormat[_0x492d5(-0x70,0x19)],'pixelDatatype':PixelDatatype[_0x492d5(-0x131,-0xbb)],'sampler':new Sampler(_0x3a9f0e),'source':{'width':this[_0x324d96(0x5a8,0x630)][_0x324d96(0x553,0x506)]['length'],'height':0x1,'arrayBufferView':_0x4e4aa1}});}[_0x4086ac(0xd7,0xfd)](){const _0x2c7a7a=0x4,_0x6aa959=this['options']['particlesTextureSize'];let _0x5e9afc=[];for(let _0x364ec4=0x0;_0x364ec4<_0x6aa959;_0x364ec4++){for(let _0x45a845=0x0;_0x45a845<_0x6aa959;_0x45a845++){for(let _0x3eeb70=0x0;_0x3eeb70<_0x2c7a7a;_0x3eeb70++){_0x5e9afc['push'](_0x364ec4/_0x6aa959),_0x5e9afc[_0x4c9b1b(0x52c,0x513)](_0x45a845/_0x6aa959);}}}_0x5e9afc=new Float32Array(_0x5e9afc);function _0x137d8c(_0xc4df74,_0x1f8c75){return _0x4086ac(_0x1f8c75,_0xc4df74-0x2e0);}const _0x23090a=this['options']['particlesTextureSize']**0x2;let _0x5cb003=[];for(let _0x47ba8e=0x0;_0x47ba8e<_0x23090a;_0x47ba8e++){_0x5cb003[_0x137d8c(0x447,0x4ce)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x5cb003=new Float32Array(_0x5cb003);let _0x550539=[];for(let _0x210657=0x0,_0x3fce36=0x0;_0x210657<_0x23090a;_0x210657++){_0x550539['push'](_0x3fce36+0x0,_0x3fce36+0x1,_0x3fce36+0x2,_0x3fce36+0x2,_0x3fce36+0x1,_0x3fce36+0x3),_0x3fce36+=_0x2c7a7a;}_0x550539=new Uint32Array(_0x550539);const _0x28b07d={};_0x28b07d[_0x137d8c(0x3e8,0x43b)]=ComponentDatatype['FLOAT'],_0x28b07d['componentsPerAttribute']=0x2,_0x28b07d['values']=_0x5e9afc;const _0x5db851={};_0x5db851[_0x137d8c(0x3e8,0x3fd)]=ComponentDatatype['FLOAT'],_0x5db851['componentsPerAttribute']=0x3,_0x5db851['values']=_0x5cb003;function _0x4c9b1b(_0x834d59,_0x46c62d){return _0x2e747d(_0x834d59,_0x46c62d-0x490);}const _0x4aeccf=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x28b07d),'normal':new GeometryAttribute(_0x5db851)}),'indices':_0x550539});return _0x4aeccf;}[_0x4086ac(0x92,0xb5)](_0x2bdaaf){function _0xb7748f(_0x404da7,_0x26bda1){return _0x4086ac(_0x26bda1,_0x404da7- -0x187);}const _0x502a48={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x2bdaaf};return Appearance[_0xb7748f(-0x52,0x39)](!![],![],_0x502a48);}[_0x4086ac(0x134,0x100)](){const _0x218952={};_0x218952['st']=0x0,_0x218952['normal']=0x1;const _0x3471df={};_0x3471df['enabled']=!![];function _0x4b7927(_0xb256ac,_0x5cd75a){return _0x2e747d(_0xb256ac,_0x5cd75a-0x529);}const _0x4b289f={};_0x4b289f[_0x4b7927(0x507,0x584)]=!![],_0x4b289f[_0x4b7927(0x639,0x5ae)]=WebGLRenderingContext['FUNC_ADD'],_0x4b289f[_0x1eb56f(-0x237,-0x214)]=WebGLRenderingContext[_0x1eb56f(-0x1e2,-0x1e8)],_0x4b289f['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x596db7={};_0x596db7['viewport']=undefined,_0x596db7[_0x1eb56f(-0x17e,-0x171)]=_0x3471df,_0x596db7['depthMask']=!![],_0x596db7[_0x4b7927(0x574,0x53f)]=_0x4b289f;const _0xd1480f=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x218952,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x4b7927(0x546,0x4ea)][_0x4b7927(0x481,0x4eb)],'currentParticlesPosition':()=>this[_0x1eb56f(-0x134,-0x149)]['particlesTextures'][_0x4b7927(0x59c,0x532)],'postProcessingPosition':()=>this['computing'][_0x4b7927(0x4fd,0x4ea)]['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this[_0x4b7927(0x567,0x5ee)]['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x368ba4(_0x280949,_0x115ba4){return _0x1eb56f(_0x280949,_0x115ba4-0x464);}var _0x2ba3ac,_0x41cac0;const _0x2998fa=new Cartesian2(((_0x2ba3ac=this['options'][_0x556412(0x2da,0x26f)])===null||_0x2ba3ac===void 0x0?void 0x0:_0x2ba3ac['min'])??this['computing']['windData'][_0x556412(0x345,0x2c7)][_0x556412(0x28a,0x2cd)],((_0x41cac0=this['options']['domain'])===null||_0x41cac0===void 0x0?void 0x0:_0x41cac0['max'])??this[_0x556412(0x391,0x335)][_0x368ba4(0x1ed,0x23f)]['speed'][_0x556412(0x2fb,0x30a)]);function _0x556412(_0x5865e4,_0x3e5485){return _0x1eb56f(_0x5865e4,_0x3e5485-0x47e);}return _0x2998fa;},'displayRange':()=>{function _0xe402a3(_0x1ec64e,_0x46897b){return _0x4b7927(_0x46897b,_0x1ec64e- -0x65e);}var _0x3319d5,_0x4d4ccc;const _0x177705=new Cartesian2(((_0x3319d5=this['options']['displayRange'])===null||_0x3319d5===void 0x0?void 0x0:_0x3319d5['min'])??this[_0xe402a3(-0x70,-0x97)][_0xe402a3(-0x14c,-0xf1)][_0x408de8(0x431,0x43a)]['min'],((_0x4d4ccc=this[_0xe402a3(-0xd3,-0x15c)][_0xe402a3(-0x84,-0x2)])===null||_0x4d4ccc===void 0x0?void 0x0:_0x4d4ccc['max'])??this[_0xe402a3(-0x70,-0x12)][_0x408de8(0x3c3,0x397)]['speed']['max']);function _0x408de8(_0x57bf02,_0x556dbe){return _0x4b7927(_0x556dbe,_0x57bf02- -0x14f);}return _0x177705;},'particleHeight':()=>this[_0x4b7927(0x5d1,0x58b)][_0x1eb56f(-0x1f8,-0x236)]||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context'][_0x1eb56f(-0x265,-0x247)],'pixelSize':()=>this['viewerParameters'][_0x1eb56f(-0x206,-0x1c0)],'lineWidth':()=>{function _0x3870f1(_0x3d6068,_0x36fb19){return _0x1eb56f(_0x36fb19,_0x3d6068-0x602);}const _0x30df66={};_0x30df66['min']=0x1;function _0x202988(_0x2543d8,_0x3ce0f4){return _0x4b7927(_0x2543d8,_0x3ce0f4- -0x630);}_0x30df66['max']=0x2;const _0x27a83f=this['options'][_0x202988(-0x111,-0xe2)]||_0x30df66;return new Cartesian2(_0x27a83f['min'],_0x27a83f[_0x202988(-0x31,-0x6d)]);},'lineLength':()=>{const _0x46982d={};function _0xc5af70(_0x47c938,_0x3d8e93){return _0x1eb56f(_0x47c938,_0x3d8e93-0x4f9);}_0x46982d['min']=0x14,_0x46982d['max']=0x64;const _0x1946e5=this['options']['lineLength']||_0x46982d;return new Cartesian2(_0x1946e5[_0xc5af70(0x30e,0x348)],_0x1946e5['max']);},'is3D':()=>this[_0x1eb56f(-0x1bd,-0x139)]['sceneMode']===SceneMode[_0x4b7927(0x63f,0x5f5)],'segmentsDepthTexture':()=>this[_0x1eb56f(-0x291,-0x235)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x4b7927(0x58b,0x553)](),'rawRenderState':this['createRawRenderState'](_0x596db7)});function _0x1eb56f(_0xb18309,_0x48d0d0){return _0x2e747d(_0xb18309,_0x48d0d0- -0x20e);}const _0x4f51a3={};return _0x4f51a3[_0x1eb56f(-0x17e,-0x1cf)]=_0xd1480f,_0x4f51a3;}['onParticlesTextureSizeChange'](){const _0x5f2b25=this['createSegmentsGeometry']();this['primitives']['segments']['geometry']=_0x5f2b25;function _0x40a8fe(_0x57b170,_0x293180){return _0x2e747d(_0x57b170,_0x293180-0x324);}const _0xbb375c={};_0xbb375c[_0x40a8fe(0x2db,0x336)]=this[_0x40a8fe(0x2b3,0x336)],_0xbb375c['geometry']=_0x5f2b25;function _0x542db4(_0x51ae5b,_0x34c526){return _0x2e747d(_0x34c526,_0x51ae5b- -0x1d9);}_0xbb375c['attributeLocations']=this['primitives'][_0x40a8fe(0x35a,0x363)]['attributeLocations'],_0xbb375c[_0x542db4(-0x105,-0x83)]=BufferUsage[_0x542db4(-0x10c,-0xe7)];const _0x351512=VertexArray['fromGeometry'](_0xbb375c);this['primitives'][_0x40a8fe(0x2ed,0x363)][_0x542db4(-0x162,-0x14a)]&&(this[_0x40a8fe(0x3fd,0x3a5)][_0x542db4(-0x19a,-0x13a)]['commandToExecute']['vertexArray']=_0x351512);}['onColorTableChange'](){this[_0x427cb3(0x468,0x46b)]['destroy']();function _0x427cb3(_0x361629,_0x1c4488){return _0x4086ac(_0x1c4488,_0x361629-0x2b5);}function _0x143929(_0x1b7d71,_0x55e000){return _0x4086ac(_0x55e000,_0x1b7d71-0x81);}this['colorTable']=this[_0x143929(0x1b7,0x183)]();}[_0x2e747d(0x69,0x87)](_0x4e0f5a){function _0x59f44b(_0x132175,_0x41e7fb){return _0x2e747d(_0x132175,_0x41e7fb- -0x1d);}const _0x2d0506=_0x4e0f5a[_0x485f53(-0x12a,-0xe9)]&&JSON['stringify'](_0x4e0f5a['colors'])!==JSON['stringify'](this[_0x59f44b(-0x5,0x45)][_0x485f53(-0xc8,-0xe9)]);this['options']=deepMerge(_0x4e0f5a,this['options']);function _0x485f53(_0xbb5752,_0x9a4782){return _0x4086ac(_0xbb5752,_0x9a4782- -0x1da);}_0x2d0506&&this['onColorTableChange']();}[_0x4086ac(0x19f,0x11f)](){Object['values'](this['framebuffers'])[_0x590a46(0x59,-0x12)](_0x4ad89f=>{_0x4ad89f['destroy']();}),Object[_0x590a46(0xe,-0x23)](this[_0x590a46(0x23,-0x52)])[_0x45c4d6(0xa7,0x26)](_0x573c2e=>{function _0x138914(_0x41b487,_0x5276bb){return _0x590a46(_0x41b487- -0x214,_0x5276bb);}_0x573c2e[_0x138914(-0x237,-0x21d)]();});function _0x590a46(_0x189a16,_0x207efa){return _0x2e747d(_0x207efa,_0x189a16- -0x5e);}function _0x45c4d6(_0x24db20,_0x59df7d){return _0x4086ac(_0x59df7d,_0x24db20- -0xf4);}this['colorTable'][_0x590a46(-0x23,0x4b)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x4086ac(0x130,0xac)];class WindParticleSystem{constructor(_0x26b79f,_0x1725b9,_0x1f56ee,_0x346ac9,_0x1d4b8c){this['context']=_0x26b79f,this['options']=_0x1f56ee,this['viewerParameters']=_0x346ac9,this['computing']=new WindParticlesComputing(_0x26b79f,_0x1725b9,_0x1f56ee,_0x346ac9,_0x1d4b8c),this['rendering']=new WindParticlesRendering(_0x26b79f,_0x1f56ee,_0x346ac9,this['computing']),this['clearFramebuffers']();}[_0x4086ac(0x144,0x12e)](){function _0x4908f5(_0x58476a,_0x8c56ad){return _0x4086ac(_0x8c56ad,_0x58476a-0x183);}const _0x41b372=[this[_0x1c16ab(0x1f4,0x275)]['primitives']['calculateSpeed'],this['computing']['primitives']['updatePosition'],this[_0x4908f5(0x32c,0x3b7)]['primitives']['postProcessingPosition'],this[_0x4908f5(0x31d,0x33a)]['primitives']['segments']];function _0x1c16ab(_0x256ef1,_0x3903cd){return _0x2e747d(_0x256ef1,_0x3903cd-0x1b0);}return _0x41b372;}[_0x2e747d(0x35,0x96)](){function _0x159d3c(_0xe925a6,_0x5d869a){return _0x2e747d(_0x5d869a,_0xe925a6-0x3e3);}function _0x3dd3c0(_0x28d880,_0x2038f2){return _0x2e747d(_0x2038f2,_0x28d880- -0x21);}const _0x5aebb3=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x159d3c(0x411,0x466)]});Object['keys'](this[_0x159d3c(0x499,0x4ae)][_0x3dd3c0(0x6e,0x28)])['forEach'](_0x582895=>{function _0x5901fa(_0x396f48,_0x32024a){return _0x3dd3c0(_0x396f48-0x0,_0x32024a);}_0x5aebb3['framebuffer']=this['rendering']['framebuffers'][_0x582895],_0x5aebb3['execute'](this[_0x5901fa(-0xf,0x52)]);});}['changeOptions'](_0x413f1a){let _0x4567b2=![];_0x413f1a['particlesTextureSize']&&this['options'][_0x58ce7f(-0x5b,-0x5f)]!==_0x413f1a['particlesTextureSize']&&(_0x4567b2=!![]);function _0x58ce7f(_0x44e587,_0x186d1a){return _0x2e747d(_0x44e587,_0x186d1a- -0xdf);}const _0x4f4244=deepMerge(_0x413f1a,this['options']);if(_0x4f4244['particlesTextureSize']<0x1)throw new Error(_0x1f15f9(0x422,0x403));function _0x1f15f9(_0x542146,_0xb2bf36){return _0x2e747d(_0xb2bf36,_0x542146-0x3a0);}this[_0x58ce7f(-0xfa,-0x7d)]=_0x4f4244,this['rendering']['updateOptions'](_0x413f1a),this['computing'][_0x58ce7f(-0xb8,-0x58)](_0x413f1a),_0x4567b2&&(this[_0x58ce7f(-0x91,-0x1a)]['destroyParticlesTextures'](),this['computing']['createParticlesTextures'](),this[_0x58ce7f(-0x1c,-0x29)]['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x478693){function _0x5b7741(_0x3d49eb,_0x2b394c){return _0x2e747d(_0x3d49eb,_0x2b394c- -0x138);}this[_0x5b7741(-0x97,-0x63)]=_0x478693,this['computing'][_0x4e46a3(0x46c,0x49b)]=_0x478693;function _0x4e46a3(_0x5ac762,_0x4f0a46){return _0x4086ac(_0x5ac762,_0x4f0a46-0x2e2);}this[_0x5b7741(-0x41,-0x82)]['viewerParameters']=_0x478693;}['destroy'](){this[_0x3f09f8(0x127,0x17a)][_0x11933a(0x3da,0x439)]();function _0x3f09f8(_0x307f99,_0x246e6f){return _0x4086ac(_0x307f99,_0x246e6f- -0x2f);}function _0x11933a(_0x1ea74a,_0x53f674){return _0x2e747d(_0x53f674,_0x1ea74a-0x39f);}this[_0x11933a(0x455,0x3e7)]['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer'][_0x4086ac(0x1d9,0x1a7)],_0x50ec5a={};_0x50ec5a[_0x2e747d(0xae,0x5d)]=0x1,_0x50ec5a['max']=0x2;const _0x2fe553={};_0x2fe553['min']=0x14,_0x2fe553['max']=0x64;const _0x159caa={};function _0x2570(){const _0x1f37ce=['updateViewerParameters','updateWindData','useViewerBounds','fixedHeight','textures','_pointerEvents','_canrefresh','_calcUV','particlesNumber','_bilinearInterpolation','destoryRenderingFramebuffers','isPointVisible','morphComplete','getPostProcessingPositionShader','fragmentShaderSource','windField','cancelAnimationFrame','rows','zIndex','frameRateAdjustment','windData','requestRender','flipY','globe','style','FLOAT','commandType','updatePosition','length','dynamic','mouse_move','width','clientHeight','createCommand','#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','_onMouseDownEvent','alpha','blendFuncSource','106oPtNES','umin','wrapT','_addedHook','domain','fromCache','IDENTITY','redraw','_mountedHook','talt','scene','_animateFrame','_tomap','ymax','currentParticlesPosition','stroke','EventType','particles','colors','absolute','sqrt','tlat','bindEvent','context','postMessage','minificationFilter','bounds','blending','ColorRamp','modelMatrix','createSegmentsGeometry','data','Cartesian2','createPrimitives','924959rAMGXo','udata','NEAREST','geometry','lineTo','4AEyfDh','sceneMode','componentDatatype','lineWidth','SRC_ALPHA','remove','createParticlesTextures','canvas','getSegmentDrawFragmentShader','toRadians','visibility','1947843xZWLkT','OPAQUE','lastFramesPerSecond','_removedHook','positionWC','isDynamic','xmin','resize','rawRenderState','bind','pointer-events','depthTexture','vertexArray','_onMapWhellEvent','destroy','vdata','fromGeometry','magnificationFilter','segments','MIN_VALUE','_updateIng','speedRate','2443480IpwWwy','cartesianToCartographic','canvasWidth','commandList','steps','_map','preExecute','getPrimitives','primitiveType','clear','particlesSpeed','pixelSize','drawingBufferWidth','lonRange','getDefaultRenderState','createColorTableTexture','persists','CanvasWindField','willReadFrequently','_colorRamp','speed','update','prototype','canvasContext','enabled','initFrameRate','min','frameRateMonitor','removeChild','10890517vZokce','nextParticlesPosition','options','warn','_maxAge','#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','setDate','defineProperty','min\x20is\x20undefined,\x20calculate\x20min','ellipsoid','Unknown\x20command\x20type','get','values','register','ymin','Cartesian3','dropRate','now','12tBaLqX','percentageChanged','tlng','isInExtent','_randomParticle','commandToExecute','worker','original','Math','_drawLines','cols','_setOptionsHook','max\x20is\x20undefined,\x20calculate\x20max','2433945GWDPZq','particlesTextureSize','primitives','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','push','init','blendEquation','_createCanvas','updateOptions','off','particleSystem','show','_showHook','vertexShaderSource','globalCompositeOperation','windTextures','framebuffers','isDestroy','uniformMap','mode','postProcessingPosition','age','DomUtil','clearFramebuffers','hidden','createComputingPrimitives','#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','max','_onMouseMoveEvent','WindLayer','depthTest','lighter','256695gulAZc','setOptions','pixelDatatype','pointerEvents','frameRate','clearCommand','layer','west','createRenderingFramebuffers','camera','getParticles','type','pow','create','outputTexture','attributeLocations','RGBA','getSegmentDrawVertexShader','displayRange','lat','setData','createWindTextures','height','rendering','forEach','addEventListener','fromDegrees','default','framebuffer','atan2','CLAMP_TO_EDGE','add','north','samplingWindow','mouseHidden','fill','BaseLayer','getUVByXY','computing','array','0px','LINEAR','10yQeHwH','canvasHeight','cos','SCENE3D','STATIC_DRAW','destination-in','colorTable','EllipsoidalOccluder','pixelFormat','processWindData','mouseUp','bufferUsage','viewerParameters','lng','particlesTextures','previousParticlesPosition','xmax','random','beginPath','grid','drawingBufferHeight','Cesium','abs','__esModule','slice','toGridXY','getUVByPoint','mouseMove','maxAge','south','createRawRenderState','latRange','12173ngisCw','east'];_0x2570=function(){return _0x1f37ce;};return _0x2570();}_0x159caa[_0x2e747d(0xe6,0x80)]=0x64,_0x159caa[_0x4086ac(0xcd,0xbc)]=0x0,_0x159caa['lineWidth']=_0x50ec5a,_0x159caa['lineLength']=_0x2fe553,_0x159caa['speedFactor']=0x1,_0x159caa[_0x2e747d(0x20,0x70)]=0.003,_0x159caa['dropRateBump']=0.001,_0x159caa['colors']=['rgb(206,255,255)'],_0x159caa['flipY']=![],_0x159caa[_0x4086ac(0xbb,0xd6)]=!![];const DEF_OPTIONS=_0x159caa;class WindLayer extends BaseLayer$1{constructor(_0x9a5f86={}){_0x9a5f86={...DEF_OPTIONS,..._0x9a5f86},super(_0x9a5f86),this['_setOptionsHook'](_0x9a5f86,_0x9a5f86);}get['layer'](){function _0x3123d9(_0x1499df,_0x2f7e55){return _0x2e747d(_0x2f7e55,_0x1499df- -0x146);}return this[_0x3123d9(-0xc5,-0x92)];}get[_0x4086ac(0xd1,0xfe)](){function _0x49fecf(_0x248dfd,_0xc1b96){return _0x4086ac(_0x248dfd,_0xc1b96-0x3a6);}function _0x3fbe6b(_0x77781a,_0x30dc68){return _0x4086ac(_0x30dc68,_0x77781a-0x1cd);}return this[_0x3fbe6b(0x313,0x364)][_0x3fbe6b(0x2cb,0x325)];}set['data'](_0x545fc9){function _0x12f9ee(_0x234c84,_0x1f96fe){return _0x2e747d(_0x1f96fe,_0x234c84-0x349);}this[_0x12f9ee(0x3ab,0x3c6)][_0x4ad879(0x454,0x408)]=_0x545fc9;function _0x4ad879(_0x472a32,_0x23e2ac){return _0x2e747d(_0x472a32,_0x23e2ac-0x3ee);}this[_0x12f9ee(0x3fc,0x3b2)](_0x545fc9);}get['colors'](){function _0x1c0047(_0x25d539,_0x550ceb){return _0x2e747d(_0x550ceb,_0x25d539-0x3a4);}return this[_0x1c0047(0x406,0x448)]['colors'];}set['colors'](_0x5c944f){this['options'][_0x5db4af(-0x59,-0x91)]=_0x5c944f;function _0x5db4af(_0x43e9e0,_0x13f8ee){return _0x2e747d(_0x43e9e0,_0x13f8ee- -0x9e);}function _0x11a1f5(_0x53a067,_0x4e1d71){return _0x2e747d(_0x4e1d71,_0x53a067-0x186);}const _0x3d1cb2={};_0x3d1cb2[_0x11a1f5(0x193,0x218)]=_0x5c944f,this['_setOptionsHook'](this['options'],_0x3d1cb2);}[_0x4086ac(0x105,0x16f)](_0x24031a){function _0x34526a(_0x4c6675,_0x2f4951){return _0x4086ac(_0x4c6675,_0x2f4951- -0x2ab);}_0x24031a?this[_0x34526a(-0x1fc,-0x1c9)]():this['_removedHook']();}[_0x2e747d(0x10,0x3)](){}['_addedHook'](){this['scene']=this['_map']['scene'],this['camera']=this['_map'][_0x3997a2(-0x16b,-0x1bd)];function _0x3c0aa3(_0x384a03,_0xc1b7dc){return _0x2e747d(_0xc1b7dc,_0x384a03-0x499);}this['options'][_0x3c0aa3(0x4b3,0x451)]&&this['setData'](this['options'][_0x3c0aa3(0x4b3,0x459)]);if(!this['windData']||!this[_0x3c0aa3(0x523,0x4c2)])return;this[_0x3c0aa3(0x56e,0x543)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this[_0x3c0aa3(0x46e,0x4e7)](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this['windData'],this['options'],this['viewerParameters'],this['scene']),this[_0x3c0aa3(0x51a,0x58a)]=this['particleSystem']['getPrimitives'](),this['primitives'][_0x3997a2(-0x15c,-0xde)](_0x38d538=>{function _0x3dc4bd(_0x8d5e3e,_0x4c3efb){return _0x3c0aa3(_0x8d5e3e- -0x23f,_0x4c3efb);}function _0x84819f(_0x57a353,_0x40250d){return _0x3c0aa3(_0x57a353- -0x36,_0x40250d);}this['scene'][_0x3dc4bd(0x2db,0x2e7)][_0x3dc4bd(0x318,0x2b3)](_0x38d538);});function _0x3997a2(_0x1a63af,_0x442e39){return _0x4086ac(_0x442e39,_0x1a63af- -0x2f7);}this['camera'][_0x3997a2(-0x1a0,-0x163)]=0.01,this['camera']['changed']['addEventListener'](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete'][_0x3997a2(-0x15b,-0x141)](this[_0x3c0aa3(0x46e,0x44a)]['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters'][_0x3997a2(-0x1dd,-0x21b)](this));}[_0x4086ac(0x19b,0x114)](){this[_0x162722(-0x2a,0x14)]['changed']['removeEventListener'](this[_0x162722(-0xfd,-0xc5)][_0x202d07(-0x176,-0x165)](this)),this[_0x162722(-0xcd,-0x9b)][_0x162722(-0xf1,-0xd8)]['removeEventListener'](this['updateViewerParameters']['bind'](this));function _0x202d07(_0xd4d504,_0x30f297){return _0x2e747d(_0xd4d504,_0x30f297- -0x19b);}function _0x162722(_0x1d5a90,_0x20bfdc){return _0x4086ac(_0x20bfdc,_0x1d5a90- -0x1b6);}window['removeEventListener']('resize',this['updateViewerParameters']['bind'](this)),this['primitives']&&(this[_0x162722(-0x51,-0x53)][_0x202d07(-0xd9,-0xe4)](_0x386a3=>{function _0x1da8bf(_0x2df145,_0x14e044){return _0x162722(_0x14e044- -0x112,_0x2df145);}function _0x4a2732(_0x57ce3f,_0x34c8b8){return _0x162722(_0x34c8b8-0x3b,_0x57ce3f);}this['scene'][_0x1da8bf(-0x196,-0x163)][_0x1da8bf(-0x134,-0x1bd)](_0x386a3);}),delete this['primitives']),this[_0x162722(-0x49,-0xf)]&&(this[_0x162722(-0x49,0x20)][_0x162722(-0x97,-0xd3)](),delete this['particleSystem']);}['setData'](_0x43fa27,_0x42bbe2){function _0x320c4f(_0x1e6a54,_0x20c948){return _0x4086ac(_0x1e6a54,_0x20c948-0x173);}this['windData']=this[_0x320c4f(0x2b1,0x329)](_0x43fa27);if(_0x42bbe2){this[_0x31f1e1(-0x1d,0x14)](),this['_addedHook']();return;}function _0x31f1e1(_0x394020,_0x2a15ec){return _0x4086ac(_0x394020,_0x2a15ec- -0x100);}this['particleSystem']?(this[_0x31f1e1(0x3a,0x6d)][_0x320c4f(0x2d5,0x31c)][_0x31f1e1(-0xbf,-0x46)](this['windData']),this[_0x320c4f(0x1d2,0x25c)]['requestRender']()):this['_addedHook']();}[_0x2e747d(0x59,0x7d)](_0x52c3a4,_0x1469c3){function _0x5ab6d4(_0x2ed6ab,_0x575164){return _0x4086ac(_0x575164,_0x2ed6ab- -0x2c1);}function _0x1cdfe6(_0x307e49,_0x801613){return _0x2e747d(_0x801613,_0x307e49- -0x7a);}this[_0x5ab6d4(-0x154,-0x11f)]&&(this[_0x5ab6d4(-0x154,-0x176)]['changeOptions'](_0x1469c3),this['scene'][_0x1cdfe6(-0x90,-0x1b)]());}['processWindData'](_0x46432f){var _0x1460b9,_0x10f71;function _0xcdb141(_0x9fd328,_0xa0e956){return _0x2e747d(_0xa0e956,_0x9fd328-0x519);}const _0x19e474={..._0x46432f},_0x1ffa1f=_0x19e474;!_0x1ffa1f[_0x516de2(0x54a,0x4dd)]&&_0x1ffa1f['rows']&&(_0x1ffa1f['height']=_0x1ffa1f[_0xcdb141(0x4ff,0x4d5)]);!_0x1ffa1f[_0xcdb141(0x50d,0x4fb)]&&_0x1ffa1f[_0x516de2(0x511,0x4f5)]&&(_0x1ffa1f['width']=_0x1ffa1f['cols']);!_0x1ffa1f[_0x516de2(0x4aa,0x48d)]&&(_0x1ffa1f[_0x516de2(0x4aa,0x528)]={'west':_0x1ffa1f['xmin'],'south':_0x1ffa1f['ymin'],'east':_0x1ffa1f['xmax'],'north':_0x1ffa1f[_0xcdb141(0x521,0x49d)]});if(!_0x1ffa1f['u']){const _0x1811ae={};_0x1811ae['array']=_0x46432f['udata'],_0x1811ae['min']=_0x46432f[_0x516de2(0x491,0x445)],_0x1811ae['max']=_0x46432f['umax'],_0x1ffa1f['u']=_0x1811ae;}function _0x516de2(_0x5d1ef7,_0x1c317b){return _0x4086ac(_0x1c317b,_0x5d1ef7-0x3b1);}if(!_0x1ffa1f['v']){const _0x49bbbf={};_0x49bbbf['array']=_0x46432f[_0x516de2(0x4d1,0x492)],_0x49bbbf['min']=_0x46432f['vmin'],_0x49bbbf[_0x516de2(0x52f,0x5ad)]=_0x46432f['vmax'],_0x1ffa1f['v']=_0x49bbbf;}if(((_0x1460b9=_0x1ffa1f[_0xcdb141(0x570,0x5f7)])===null||_0x1460b9===void 0x0?void 0x0:_0x1460b9[_0xcdb141(0x576,0x5f4)])===undefined||((_0x10f71=_0x1ffa1f[_0x516de2(0x4ec,0x574)])===null||_0x10f71===void 0x0?void 0x0:_0x10f71[_0x516de2(0x52f,0x4fb)])===undefined||_0x1ffa1f[_0xcdb141(0x570,0x4e7)]['array']===undefined){const _0x27cbfa={'array':new Float32Array(_0x1ffa1f['u'][_0x516de2(0x55b,0x588)]['length']),'min':Number['MAX_VALUE'],'max':Number[_0x516de2(0x4d5,0x46c)]};for(let _0x23e88a=0x0;_0x23e88a<_0x1ffa1f['u'][_0x516de2(0x55b,0x5b7)][_0x516de2(0x486,0x4f3)];_0x23e88a++){_0x27cbfa['array'][_0x23e88a]=Math[_0x516de2(0x4a4,0x4af)](_0x1ffa1f['u']['array'][_0x23e88a]*_0x1ffa1f['u'][_0xcdb141(0x5df,0x5fe)][_0x23e88a]+_0x1ffa1f['v'][_0xcdb141(0x5df,0x5c6)][_0x23e88a]*_0x1ffa1f['v']['array'][_0x23e88a]),_0x27cbfa[_0xcdb141(0x5df,0x57c)][_0x23e88a]!==0x0&&(_0x27cbfa['min']=Math['min'](_0x27cbfa[_0xcdb141(0x576,0x581)],_0x27cbfa[_0x516de2(0x55b,0x5ae)][_0x23e88a]),_0x27cbfa['max']=Math['max'](_0x27cbfa['max'],_0x27cbfa['array'][_0x23e88a]));}_0x1ffa1f[_0xcdb141(0x570,0x50c)]=_0x27cbfa;}return _0x1ffa1f;}['updateViewerParameters'](){var _0x58c6ba;function _0x395814(_0x52c9d9,_0xe24e4f){return _0x4086ac(_0xe24e4f,_0x52c9d9- -0x206);}function _0x11baf5(_0x512853,_0x3428fc){return _0x4086ac(_0x512853,_0x3428fc- -0x19f);}const _0x61a8f8=this['scene'];if(!_0x61a8f8)return;const _0x241eb3=_0x61a8f8['canvas'],_0x38fdd2={};_0x38fdd2['x']=0x0,_0x38fdd2['y']=0x0;const _0x1c3299={};_0x1c3299['x']=0x0,_0x1c3299['y']=_0x241eb3['clientHeight'];const _0x17815f={};_0x17815f['x']=_0x241eb3['clientWidth'],_0x17815f['y']=0x0;const _0xb7a59a={};_0xb7a59a['x']=_0x241eb3['clientWidth'],_0xb7a59a['y']=_0x241eb3['clientHeight'];const _0x49e54b=[_0x38fdd2,_0x1c3299,_0x17815f,_0xb7a59a];let _0x362a42=0xb4,_0x3bc161=-0xb4,_0x2e8008=0x5a,_0x4c7262=-0x5a,_0x11d178=![];for(const _0x1b2517 of _0x49e54b){const _0x3804bd=_0x61a8f8['camera']['pickEllipsoid'](new Cesium$1[(_0x395814(-0x107,-0xb9))](_0x1b2517['x'],_0x1b2517['y']),_0x61a8f8[_0x395814(-0x136,-0x12f)][_0x395814(-0xb9,-0xb9)]);if(!_0x3804bd){_0x11d178=!![];break;}const _0x32ba52=_0x61a8f8['globe'][_0x395814(-0xb9,-0xf4)][_0x395814(-0xde,-0x118)](_0x3804bd),_0x291f1b=Cesium$1[_0x11baf5(-0x73,-0x41)]['toDegrees'](_0x32ba52['longitude']),_0x1098f3=Cesium$1[_0x11baf5(-0x6b,-0x41)]['toDegrees'](_0x32ba52['latitude']);_0x362a42=Math['min'](_0x362a42,_0x291f1b),_0x3bc161=Math[_0x11baf5(-0x4c,-0x21)](_0x3bc161,_0x291f1b),_0x2e8008=Math[_0x11baf5(0x11,-0x5e)](_0x2e8008,_0x1098f3),_0x4c7262=Math[_0x395814(-0x88,-0x81)](_0x4c7262,_0x1098f3);}if(!_0x11d178){const _0x21f698=new Cesium$1[(_0x11baf5(-0x43,-0xa0))](Math['max'](this['windData']['bounds']['west'],_0x362a42),Math['min'](this[_0x11baf5(-0x56,-0xd2)]['bounds']['east'],_0x3bc161)),_0x1e1f8e=new Cesium$1['Cartesian2'](Math[_0x11baf5(-0xa9,-0x21)](this['windData'][_0x395814(-0x10d,-0x98)]['south'],_0x2e8008),Math[_0x11baf5(-0xd3,-0x5e)](this[_0x395814(-0x139,-0x156)][_0x395814(-0x10d,-0xec)][_0x395814(-0x63,-0xa4)],_0x4c7262)),_0x4d5987=(_0x21f698['y']-_0x21f698['x'])*0.05,_0x494009=(_0x1e1f8e['y']-_0x1e1f8e['x'])*0.05;_0x21f698['x']=Math[_0x395814(-0x88,-0xd2)](this['windData']['bounds']['west'],_0x21f698['x']-_0x4d5987),_0x21f698['y']=Math['min'](this['windData']['bounds'][_0x395814(-0x14e,-0x14a)],_0x21f698['y']+_0x4d5987),_0x1e1f8e['x']=Math[_0x395814(-0x88,-0x6e)](this[_0x11baf5(-0x95,-0xd2)]['bounds']['south'],_0x1e1f8e['x']-_0x494009),_0x1e1f8e['y']=Math[_0x11baf5(-0x89,-0x5e)](this[_0x395814(-0x139,-0x10f)][_0x11baf5(-0xee,-0xa6)]['north'],_0x1e1f8e['y']+_0x494009),this['viewerParameters'][_0x11baf5(-0x3f,-0x6b)]=_0x21f698,this[_0x11baf5(0xa,0x1a)]['latRange']=_0x1e1f8e;const _0x44f86e=this['windData'][_0x395814(-0x10d,-0x189)]['east']-this['windData'][_0x11baf5(-0x62,-0xa6)]['west'],_0x2583c8=this['windData']['bounds']['north']-this['windData']['bounds']['south'],_0x506cc8=(_0x21f698['y']-_0x21f698['x'])/_0x44f86e,_0x5a95ee=(_0x1e1f8e['y']-_0x1e1f8e['x'])/_0x2583c8,_0x14c4a0=Math['min'](_0x506cc8,_0x5a95ee),_0x3298dd=0x3e8*_0x14c4a0;_0x3298dd>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0x3298dd)));}this[_0x11baf5(0x7a,0x1a)][_0x11baf5(-0x118,-0x98)]=this['scene']['mode'],(_0x58c6ba=this[_0x395814(-0x99,-0x55)])===null||_0x58c6ba===void 0x0||_0x58c6ba['applyViewerParameters'](this[_0x11baf5(0x6f,0x1a)]);}['getDataAtLonLat'](_0xd4055e,_0x5b7eaa){const {bounds:_0x15410e,width:_0x3ddeac,height:_0x21a671,u:_0x37082a,v:_0x4b8eac,speed:_0x4fffa3}=this['windData'],{flipY:_0x565753}=this['options'];if(_0xd4055e<_0x15410e['west']||_0xd4055e>_0x15410e['east']||_0x5b7eaa<_0x15410e[_0x1f06a2(0x12e,0xf1)]||_0x5b7eaa>_0x15410e['north'])return null;function _0x549261(_0x47c3ec,_0x56d42a){return _0x4086ac(_0x47c3ec,_0x56d42a-0x278);}const _0x2189ae=(_0xd4055e-_0x15410e['west'])/(_0x15410e['east']-_0x15410e[_0x1f06a2(0x1ba,0x1c7)])*(_0x3ddeac-0x1);let _0x23c24a=(_0x5b7eaa-_0x15410e[_0x1f06a2(0x8b,0xf1)])/(_0x15410e['north']-_0x15410e[_0x1f06a2(0x170,0xf1)])*(_0x21a671-0x1);_0x565753&&(_0x23c24a=_0x21a671-0x1-_0x23c24a);const _0x5ae635=Math['floor'](_0x2189ae),_0x56a881=Math['floor'](_0x23c24a),_0x385798=Math['floor'](_0x2189ae),_0x56a8e0=Math[_0x1f06a2(0x1e5,0x17e)](_0x385798+0x1,_0x3ddeac-0x1),_0x494813=Math['floor'](_0x23c24a),_0x503bc9=Math['min'](_0x494813+0x1,_0x21a671-0x1),_0x54e6a5=_0x2189ae-_0x385798,_0x4cb845=_0x23c24a-_0x494813,_0x22cb6b=_0x56a881*_0x3ddeac+_0x5ae635,_0x2458ff=_0x494813*_0x3ddeac+_0x385798,_0x4547e6=_0x494813*_0x3ddeac+_0x56a8e0,_0x346398=_0x503bc9*_0x3ddeac+_0x385798,_0x358422=_0x503bc9*_0x3ddeac+_0x56a8e0,_0x1cc594=_0x37082a['array'][_0x2458ff],_0x523199=_0x37082a[_0x1f06a2(0x23b,0x1e7)][_0x4547e6],_0x39e035=_0x37082a['array'][_0x346398],_0x43610a=_0x37082a['array'][_0x358422],_0xe3cde0=(0x1-_0x54e6a5)*(0x1-_0x4cb845)*_0x1cc594+_0x54e6a5*(0x1-_0x4cb845)*_0x523199+(0x1-_0x54e6a5)*_0x4cb845*_0x39e035+_0x54e6a5*_0x4cb845*_0x43610a,_0x393d5c=_0x4b8eac['array'][_0x2458ff],_0x36fa55=_0x4b8eac['array'][_0x4547e6],_0x36fcdf=_0x4b8eac['array'][_0x346398];function _0x1f06a2(_0x3b3dd6,_0x2b8c9b){return _0x2e747d(_0x3b3dd6,_0x2b8c9b-0x121);}const _0x48cf77=_0x4b8eac['array'][_0x358422],_0x119cde=(0x1-_0x54e6a5)*(0x1-_0x4cb845)*_0x393d5c+_0x54e6a5*(0x1-_0x4cb845)*_0x36fa55+(0x1-_0x54e6a5)*_0x4cb845*_0x36fcdf+_0x54e6a5*_0x4cb845*_0x48cf77,_0x551073=Math[_0x1f06a2(0x141,0x130)](_0xe3cde0*_0xe3cde0+_0x119cde*_0x119cde),_0x53185d={};_0x53185d['u']=_0x37082a[_0x1f06a2(0x1fc,0x1e7)][_0x22cb6b],_0x53185d['v']=_0x4b8eac['array'][_0x22cb6b],_0x53185d[_0x1f06a2(0x128,0x178)]=_0x4fffa3['array'][_0x22cb6b];const _0x8c053b={};_0x8c053b['u']=_0xe3cde0,_0x8c053b['v']=_0x119cde,_0x8c053b['speed']=_0x551073;const _0x39d1cb={};return _0x39d1cb[_0x549261(0x44b,0x3d5)]=_0x53185d,_0x39d1cb['interpolated']=_0x8c053b,_0x39d1cb;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;function _0x1e9b(_0x2df3d2,_0x53e2aa){const _0x257013=_0x2570();return _0x1e9b=function(_0x1e9b09,_0x4f6013){_0x1e9b09=_0x1e9b09-0x126;let _0x1b2b66=_0x257013[_0x1e9b09];return _0x1b2b66;},_0x1e9b(_0x2df3d2,_0x53e2aa);}class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this[_0xadf279(0x3e6,0x44d)]=null;function _0xadf279(_0x2a365d,_0xe7b913){return _0x4086ac(_0xe7b913,_0x2a365d-0x28e);}function _0x25703e(_0x3de057,_0x4a692d){return _0x4086ac(_0x3de057,_0x4a692d-0x43a);}this['tlat']=null,this[_0xadf279(0x406,0x3c3)]=null,this['speed']=null;}['destroy'](){for(const _0x2885f9 in this){delete this[_0x2885f9];}}}class CanvasWindField{constructor(_0x45f61a){this['setOptions'](_0x45f61a);}get['speedRate'](){return this['_speedRate'];}set[_0x4086ac(0x1a8,0x126)](_0x3146a5){this['_speedRate']=(0x64-(_0x3146a5>0x63?0x63:_0x3146a5))*0x64;function _0x2d34b7(_0x12dbf2,_0x16072b){return _0x4086ac(_0x12dbf2,_0x16072b-0x1d4);}function _0x1c7175(_0xc7e42,_0x2cee26){return _0x2e747d(_0xc7e42,_0x2cee26- -0xcb);}this['_calc_speedRate']=[(this['xmax']-this[_0x1c7175(-0xaa,-0x98)])/this['_speedRate'],(this[_0x1c7175(-0xc1,-0xc3)]-this['ymin'])/this['_speedRate']];}get[_0x2e747d(-0x7,-0x31)](){function _0x22c6be(_0x1b031c,_0x13b2bb){return _0x4086ac(_0x13b2bb,_0x1b031c-0xd4);}return this[_0x22c6be(0x21c,0x1de)];}set[_0x2e747d(-0x66,-0x31)](_0x2e62f7){function _0x429255(_0x30967e,_0x35a3fc){return _0x2e747d(_0x35a3fc,_0x30967e-0x35);}this[_0x429255(0x99,0x7c)]=_0x2e62f7;}['setOptions'](_0x5ad951){this['options']=_0x5ad951;function _0x47a444(_0x269d0c,_0x5e9f2b){return _0x2e747d(_0x269d0c,_0x5e9f2b- -0xef);}this[_0x27e48e(0x2e8,0x2dd)]=_0x5ad951[_0x27e48e(0x2e8,0x36f)]||0x78,this[_0x27e48e(0x35b,0x315)]=_0x5ad951['speedRate']||0x32,this['particles']=[];function _0x27e48e(_0x3c40a3,_0x336836){return _0x2e747d(_0x336836,_0x3c40a3-0x319);}const _0x6a6fd6=_0x5ad951[_0x27e48e(0x2f6,0x36d)]||0x1000;for(let _0x1e61f6=0x0;_0x1e61f6<_0x6a6fd6;_0x1e61f6++){const _0x18b9b4=this['_randomParticle'](new CanvasParticle());this[_0x27e48e(0x325,0x383)][_0x47a444(-0x5b,-0x6c)](_0x18b9b4);}}[_0x4086ac(0x137,0x14a)](_0x152d02){this['rows']=_0x152d02['rows'],this[_0x3b0fc4(0x112,0x8d)]=_0x152d02[_0x3b0fc4(0x4a,0x8d)];function _0x382e3f(_0xeba981,_0x4e6b89){return _0x4086ac(_0x4e6b89,_0xeba981-0x370);}this[_0x3b0fc4(0x7f,0x44)]=_0x152d02[_0x3b0fc4(0x88,0x44)],this['xmax']=_0x152d02[_0x3b0fc4(0x5c,-0x2c)],this[_0x382e3f(0x4c2,0x4cc)]=_0x152d02['ymin'],this['ymax']=_0x152d02['ymax'];function _0x3b0fc4(_0x545da9,_0x1a4519){return _0x2e747d(_0x545da9,_0x1a4519-0x11);}this['grid']=[];const _0x3cde30=_0x152d02[_0x3b0fc4(0x5,0x2f)],_0x5ae255=_0x152d02['vdata'];let _0x479b19=![];_0x3cde30['length']===this['rows']&&_0x3cde30[0x0]['length']===this['cols']&&(_0x479b19=!![]);let _0x291dec=0x0,_0xd3535c=null,_0x104950=null;for(let _0x380d1f=0x0;_0x380d1f<this['rows'];_0x380d1f++){_0xd3535c=[];for(let _0xfd77d2=0x0;_0xfd77d2<this[_0x382e3f(0x4d0,0x526)];_0xfd77d2++,_0x291dec++){_0x479b19?_0x104950=this[_0x382e3f(0x430,0x444)](_0x3cde30[_0x380d1f][_0xfd77d2],_0x5ae255[_0x380d1f][_0xfd77d2]):_0x104950=this['_calcUV'](_0x3cde30[_0x291dec],_0x5ae255[_0x291dec]),_0xd3535c['push'](_0x104950);}this['grid'][_0x382e3f(0x4d7,0x475)](_0xd3535c);}!this[_0x382e3f(0x4b6,0x4c8)]['flipY']&&this['grid']['reverse']();}[_0x2e747d(0x40,0x4c)](){function _0x4d7a29(_0x3bf138,_0x13c006){return _0x4086ac(_0x3bf138,_0x13c006-0x192);}delete this[_0x4d7a29(0x258,0x25c)],delete this['cols'],delete this['xmin'];function _0x25e2e5(_0x2a5e51,_0x2fdad3){return _0x4086ac(_0x2fdad3,_0x2a5e51- -0x361);}delete this[_0x4d7a29(0x232,0x239)],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this[_0x4d7a29(0x220,0x282)];}['toGridXY'](_0x2ef7fd,_0x2d2b03){function _0xca5b21(_0x49b080,_0x2af53d){return _0x4086ac(_0x49b080,_0x2af53d- -0x337);}const _0x2ebd39=(_0x2ef7fd-this['xmin'])/(this['xmax']-this[_0xca5b21(-0x28a,-0x220)])*(this['cols']-0x1);function _0x4acb9f(_0x149c0f,_0x4d5278){return _0x2e747d(_0x4d5278,_0x149c0f-0x203);}const _0x5c332a=(this['ymax']-_0x2d2b03)/(this[_0x4acb9f(0x20b,0x230)]-this['ymin'])*(this[_0xca5b21(-0x1eb,-0x26d)]-0x1);return[_0x2ebd39,_0x5c332a];}['getUVByXY'](_0x5376d2,_0x3aa3f7){if(_0x5376d2<0x0||_0x5376d2>=this['cols']||_0x3aa3f7>=this['rows'])return[0x0,0x0,0x0];function _0x42536f(_0x38298f,_0x57d385){return _0x4086ac(_0x38298f,_0x57d385- -0x90);}const _0x385f8a=Math['floor'](_0x5376d2),_0x101d50=Math['floor'](_0x3aa3f7);function _0x46ccee(_0xdf82fb,_0x36177c){return _0x4086ac(_0x36177c,_0xdf82fb- -0x47);}if(_0x385f8a===_0x5376d2&&_0x101d50===_0x3aa3f7)return this[_0x46ccee(0x63,0xc0)][_0x3aa3f7][_0x5376d2];const _0x7b62ad=_0x385f8a+0x1,_0x599059=_0x101d50+0x1,_0x3e3fe0=this['getUVByXY'](_0x385f8a,_0x101d50),_0x1e0370=this['getUVByXY'](_0x7b62ad,_0x101d50),_0x533066=this[_0x42536f(0x149,0x118)](_0x385f8a,_0x599059),_0x15c2be=this['getUVByXY'](_0x7b62ad,_0x599059);let _0x386e75=null;try{_0x386e75=this[_0x46ccee(0x7b,0xf6)](_0x5376d2-_0x385f8a,_0x3aa3f7-_0x101d50,_0x3e3fe0,_0x1e0370,_0x533066,_0x15c2be);}catch(_0x251178){console['log'](_0x5376d2,_0x3aa3f7);}return _0x386e75;}[_0x2e747d(0x61,-0x22)](_0x2ce959,_0x4ccf4c,_0x1e3e7c,_0x5575ec,_0x2c73b3,_0x4e8681){const _0x42d510=0x1-_0x2ce959,_0x413e18=0x1-_0x4ccf4c,_0x358d87=_0x42d510*_0x413e18,_0x36e9a0=_0x2ce959*_0x413e18,_0x5cd5a2=_0x42d510*_0x4ccf4c,_0x1882ba=_0x2ce959*_0x4ccf4c,_0x26556b=_0x1e3e7c[0x0]*_0x358d87+_0x5575ec[0x0]*_0x36e9a0+_0x2c73b3[0x0]*_0x5cd5a2+_0x4e8681[0x0]*_0x1882ba,_0x16af40=_0x1e3e7c[0x1]*_0x358d87+_0x5575ec[0x1]*_0x36e9a0+_0x2c73b3[0x1]*_0x5cd5a2+_0x4e8681[0x1]*_0x1882ba;return this['_calcUV'](_0x26556b,_0x16af40);}[_0x2e747d(-0x16,-0x24)](_0x36363e,_0xf6d6ef){return[+_0x36363e,+_0xf6d6ef,Math['sqrt'](_0x36363e*_0x36363e+_0xf6d6ef*_0xf6d6ef)];}['getUVByPoint'](_0x3cb43c,_0xc4c777){function _0x502eaf(_0x43d274,_0x5f4039){return _0x4086ac(_0x43d274,_0x5f4039-0x230);}if(!this[_0x502eaf(0x3df,0x389)](_0x3cb43c,_0xc4c777))return null;function _0x6bff41(_0x223f7f,_0x2ea1b9){return _0x4086ac(_0x2ea1b9,_0x223f7f- -0xc2);}const _0x3b930b=this[_0x502eaf(0x25e,0x2e0)](_0x3cb43c,_0xc4c777),_0x543a44=this[_0x6bff41(0xe6,0x8b)](_0x3b930b[0x0],_0x3b930b[0x1]);return _0x543a44;}['isInExtent'](_0x87d6d2,_0x5282c1){function _0x43e8a7(_0x503b2d,_0x5259aa){return _0x4086ac(_0x503b2d,_0x5259aa-0x30a);}function _0x15bb01(_0x16c58b,_0x1982f0){return _0x4086ac(_0x16c58b,_0x1982f0- -0x23a);}return _0x87d6d2>=this[_0x15bb01(-0x136,-0x123)]&&_0x87d6d2<=this[_0x43e8a7(0x3f9,0x3b1)]&&_0x5282c1>=this['ymin']&&_0x5282c1<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x5d2567=fRandomByfloat(this['xmin'],this['xmax']);function _0x18150d(_0x3cab8a,_0x1dadb8){return _0x4086ac(_0x3cab8a,_0x1dadb8- -0x2e0);}const _0x2c6714=fRandomByfloat(this[_0x3264f7(0x57e,0x5dd)],this['ymax']),_0x1c9f4b={};_0x1c9f4b['lat']=_0x2c6714,_0x1c9f4b[_0x3264f7(0x4d0,0x520)]=_0x5d2567;function _0x3264f7(_0x55c1e7,_0x2e731c){return _0x4086ac(_0x2e731c,_0x55c1e7-0x42c);}return _0x1c9f4b;}[_0x4086ac(0x193,0x18d)](){let _0x3abdcb,_0x2260ab,_0x3efd2c;function _0x10a9fe(_0x47d431,_0x554641){return _0x2e747d(_0x554641,_0x47d431-0x102);}for(let _0x4bc17e=0x0,_0x10d4ed=this['particles'][_0x2ccaf2(-0x249,-0x24b)];_0x4bc17e<_0x10d4ed;_0x4bc17e++){let _0x35152a=this['particles'][_0x4bc17e];_0x35152a[_0x2ccaf2(-0x1a6,-0x1d6)]<=0x0&&(_0x35152a=this[_0x10a9fe(0x178,0x1c4)](_0x35152a));if(_0x35152a[_0x2ccaf2(-0x1a6,-0x162)]>0x0){const _0x1000a2=_0x35152a['tlng'],_0x5db85f=_0x35152a['tlat'];_0x3efd2c=this[_0x10a9fe(0xcf,0xca)](_0x1000a2,_0x5db85f),_0x3efd2c?(_0x3abdcb=_0x1000a2+this['_calc_speedRate'][0x0]*_0x3efd2c[0x0],_0x2260ab=_0x5db85f+this['_calc_speedRate'][0x1]*_0x3efd2c[0x1],_0x35152a[_0x2ccaf2(-0x27a,-0x2e3)]=_0x1000a2,_0x35152a['lat']=_0x5db85f,_0x35152a[_0x10a9fe(0x176,0x16a)]=_0x3abdcb,_0x35152a['tlat']=_0x2260ab,_0x35152a['speed']=_0x3efd2c[0x2],_0x35152a['age']--):_0x35152a['age']=0x0;}}function _0x2ccaf2(_0x570014,_0x42bb7d){return _0x4086ac(_0x42bb7d,_0x570014- -0x31e);}return this[_0x10a9fe(0x10e,0x112)];}[_0x4086ac(0xfa,0x15a)](_0x4c3924){function _0x39df81(_0x1100ae,_0x214b7a){return _0x4086ac(_0x1100ae,_0x214b7a- -0x2d6);}let _0x109ddf,_0xf9e721;function _0x34eba2(_0x463608,_0x2debc6){return _0x4086ac(_0x463608,_0x2debc6-0xcd);}for(let _0x3e7d78=0x0;_0x3e7d78<0x1e;_0x3e7d78++){_0x109ddf=this['getRandomLatLng'](),_0xf9e721=this['getUVByPoint'](_0x109ddf[_0x34eba2(0x1d4,0x171)],_0x109ddf['lat']);if(_0xf9e721&&_0xf9e721[0x2]>0x0)break;}if(!_0xf9e721)return _0x4c3924;const _0x273424=_0x109ddf[_0x34eba2(0x171,0x171)]+this['_calc_speedRate'][0x0]*_0xf9e721[0x0],_0x327461=_0x109ddf['lat']+this['_calc_speedRate'][0x1]*_0xf9e721[0x1];return _0x4c3924[_0x39df81(-0x1c4,-0x232)]=_0x109ddf[_0x39df81(-0x2ab,-0x232)],_0x4c3924['lat']=_0x109ddf['lat'],_0x4c3924['tlng']=_0x273424,_0x4c3924[_0x34eba2(0x1c4,0x1c1)]=_0x327461,_0x4c3924['age']=Math['round'](0xa+Math['random']()*this['maxAge']),_0x4c3924[_0x34eba2(0x1be,0x208)]=_0xf9e721[0x2],_0x4c3924;}['destroy'](){for(const _0x27838a in this){delete this[_0x27838a];}}}function fRandomByfloat(_0x5e7870,_0x288cc6){function _0x593fcb(_0xbc0867,_0x32c012){return _0x4086ac(_0xbc0867,_0x32c012-0xd2);}return _0x5e7870+Math[_0x593fcb(0x16e,0x17a)]()*(_0x288cc6-_0x5e7870);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x4086ac(0x1d6,0x189)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x18226d={}){super(_0x18226d);function _0x10d2a3(_0x41108c,_0x1c2377){return _0x2e747d(_0x1c2377,_0x41108c- -0xe5);}function _0x3e04b2(_0x31dbdf,_0x49554b){return _0x4086ac(_0x49554b,_0x31dbdf-0x61);}this['_setOptionsHook'](_0x18226d),this[_0x10d2a3(-0xbc,-0xc4)]=null,_0x18226d['colors']&&_0x18226d[_0x3e04b2(0x18c,0x145)]&&(this['_colorRamp']=new mars3d__namespace[(_0x3e04b2(0x15c,0x153))](_0x18226d));}[_0x4086ac(0x107,0x161)](_0x1e70d3,_0x2af8e0){function _0x5587ba(_0x4c231e,_0x405471){return _0x4086ac(_0x405471,_0x4c231e- -0x2bb);}function _0x5ca769(_0x1b0b1a,_0x8118da){return _0x4086ac(_0x1b0b1a,_0x8118da- -0xc5);}this['frameTime']=0x3e8/(_0x1e70d3['frameRate']||0xa),this[_0x5ca769(0x5f,-0x7)]=this['options']['pointerEvents']??![],this['color']=_0x1e70d3['color']||'#ffffff',this['lineWidth']=_0x1e70d3['lineWidth']||0x1,this['fixedHeight']=_0x1e70d3[_0x5587ba(-0x1ff,-0x239)]??0x0,this['flipY']=_0x1e70d3['flipY']??![],this[_0x5ca769(0x48,0x3)]&&this[_0x5587ba(-0x1f3,-0x21f)][_0x5ca769(0x72,0xbf)](_0x1e70d3);}get['layer'](){return this['canvas'];}get['canvasWidth'](){function _0x302549(_0x242aa5,_0x22d199){return _0x2e747d(_0x242aa5,_0x22d199-0x495);}function _0xc9f58f(_0x1e927c,_0x166431){return _0x2e747d(_0x1e927c,_0x166431-0x206);}return this['_map'][_0xc9f58f(0x231,0x20b)][_0xc9f58f(0x28c,0x22f)]['clientWidth'];}get['canvasHeight'](){return this['_map']['scene']['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x2e747d(0xc4,0xa2)](_0x26870b){this[_0x2d9521(-0x192,-0x134)]=_0x26870b;if(!this['canvas'])return;function _0x3aa356(_0x2fceff,_0x1e3ac8){return _0x4086ac(_0x2fceff,_0x1e3ac8- -0x352);}function _0x2d9521(_0x5d7839,_0x2266db){return _0x2e747d(_0x5d7839,_0x2266db- -0x10e);}_0x26870b?this['canvas'][_0x3aa356(-0x255,-0x281)]['pointer-events']='all':this['canvas'][_0x3aa356(-0x30c,-0x281)][_0x2d9521(-0x8a,-0xd7)]='none';}get['particlesNumber'](){function _0x2e81e2(_0x1291e2,_0xeef4d4){return _0x2e747d(_0x1291e2,_0xeef4d4- -0x14d);}return this[_0x2e81e2(-0x13e,-0xeb)]['particlesNumber'];}set[_0x4086ac(0x61,0xc1)](_0x298c43){function _0x26b025(_0x268ef0,_0x32530f){return _0x4086ac(_0x32530f,_0x268ef0- -0x150);}this['options']['particlesNumber']=_0x298c43,clearTimeout(this['_canrefresh']),this[_0x26b025(-0x91,-0x10)]=setTimeout(()=>{function _0x3664b3(_0x3c1d03,_0x22aaea){return _0x26b025(_0x3c1d03-0xa2,_0x22aaea);}this[_0x3664b3(0x38,0x64)]();},0x1f4);}get['speedRate'](){function _0x1c4cdc(_0x44151c,_0x3f8c2b){return _0x4086ac(_0x44151c,_0x3f8c2b-0x13d);}return this[_0x1c4cdc(0x268,0x283)]['speedRate'];}set[_0x2e747d(0x19,0x42)](_0x5599c1){function _0x24deb3(_0x23740a,_0x533014){return _0x2e747d(_0x23740a,_0x533014-0xec);}this['options']['speedRate']=_0x5599c1,this['windField']&&(this[_0x24deb3(0xa6,0xd0)]['speedRate']=_0x5599c1);}get['maxAge'](){return this['options']['maxAge'];}set[_0x4086ac(0x13c,0xb3)](_0x4439ec){this['options']['maxAge']=_0x4439ec,this['windField']&&(this['windField']['maxAge']=_0x4439ec);}get[_0x4086ac(0x82,0xfe)](){return this['windData'];}set['data'](_0x4c93a3){function _0x2c1d54(_0x54e8b5,_0xc24acb){return _0x4086ac(_0x54e8b5,_0xc24acb-0x31f);}this[_0x2c1d54(0x461,0x4b6)](_0x4c93a3);}get['rectangle'](){let _0x3ece57=this[_0x367075(0x1cc,0x1e9)]['xmin'],_0x270c1b=this['windData'][_0x367075(0x1a6,0x22e)],_0x48d14=this['windData']['ymin'],_0xc99f8=this[_0x1d592f(-0xff,-0xf8)][_0x1d592f(-0xe0,-0x104)];_0x270c1b>=0x167&&_0x3ece57===0x0&&(_0x3ece57=-0xb4,_0x270c1b=0xb4);_0x3ece57=Math['max'](_0x3ece57,-0xb4);function _0x1d592f(_0x378f2e,_0x35c049){return _0x4086ac(_0x35c049,_0x378f2e- -0x1cc);}_0x270c1b=Math['min'](_0x270c1b,0xb4),_0x48d14=Math['max'](_0x48d14,-0x5a);function _0x367075(_0xa58a,_0x7570fc){return _0x2e747d(_0x7570fc,_0xa58a-0x1e3);}return _0xc99f8=Math[_0x1d592f(-0x8b,-0xb4)](_0xc99f8,0x5a),Cesium['Rectangle'][_0x1d592f(-0x2f,-0x51)](_0x3ece57,_0x48d14,_0x270c1b,_0xc99f8);}[_0x2e747d(0xbd,0x8b)](_0xae9bbe){function _0x5d7c1f(_0x480fec,_0x583555){return _0x2e747d(_0x480fec,_0x583555-0x2e3);}function _0x30477b(_0x5a517f,_0x2bef3f){return _0x2e747d(_0x5a517f,_0x2bef3f- -0x1e5);}_0xae9bbe?this['_addedHook']():(this[_0x5d7c1f(0x265,0x2cc)]&&(this['options'][_0x5d7c1f(0x366,0x2fd)]=this[_0x5d7c1f(0x2bb,0x2cc)]),this[_0x30477b(-0x1a4,-0x1b5)]());}['_mountedHook'](){function _0x430513(_0x128ecf,_0x18a7bd){return _0x4086ac(_0x18a7bd,_0x128ecf-0x3b5);}function _0x20601e(_0x23dd84,_0x26ef92){return _0x4086ac(_0x23dd84,_0x26ef92-0x422);}this['options']['worker']?this['initWorker']():this[_0x20601e(0x4f7,0x4ea)]=new CanvasWindField(this[_0x20601e(0x4f0,0x568)]);}[_0x2e747d(0x67,-0x2)](){function _0x530bc4(_0x1bb746,_0xf64ded){return _0x4086ac(_0x1bb746,_0xf64ded-0x1f8);}this[_0x530bc4(0x37e,0x305)]=this[_0x530bc4(0x3af,0x362)]();function _0x3f46ba(_0x4e45ae,_0x342158){return _0x2e747d(_0x4e45ae,_0x342158-0x4aa);}const _0x36b8ad={};_0x36b8ad[_0x3f46ba(0x4a3,0x4ff)]=!![],this[_0x530bc4(0x327,0x336)]=this[_0x530bc4(0x30a,0x305)]['getContext']('2d',_0x36b8ad),this[_0x3f46ba(0x4bf,0x4bb)](),this[_0x530bc4(0x308,0x33e)]['data']&&this['setData'](this[_0x3f46ba(0x489,0x50c)][_0x530bc4(0x299,0x2f6)]);}['_removedHook'](){function _0xd188b4(_0x12e19d,_0x114917){return _0x2e747d(_0x114917,_0x12e19d-0x52f);}this['clear']();function _0x1819cf(_0x3ec739,_0x3e2a71){return _0x2e747d(_0x3ec739,_0x3e2a71- -0x185);}this['unbindEvent'](),this[_0xd188b4(0x558,0x5ab)]&&(this['_map']['container'][_0xd188b4(0x58e,0x5eb)](this['canvas']),delete this['canvas']);}[_0x4086ac(0xe2,0x16a)](){const _0x5c5393=mars3d__namespace[_0x544449(0x4bd,0x4dd)][_0x544449(0x4d4,0x49f)](_0x544449(0x451,0x446),'mars3d-canvasWind',this['_map']['container']);_0x5c5393[_0x544449(0x415,0x3f9)]['position']=_0x544449(0x436,0x3e8),_0x5c5393[_0xeaa35e(-0x267,-0x2ae)]['top']=_0x544449(0x4ef,0x4ac),_0x5c5393[_0xeaa35e(-0x267,-0x2ae)]['left']=_0xeaa35e(-0x18d,-0x1b2),_0x5c5393['style']['width']=this[_0x544449(0x470,0x4b9)]['scene']['canvas']['clientWidth']+'px',_0x5c5393['style'][_0x544449(0x4dd,0x4df)]=this[_0x544449(0x470,0x449)][_0x544449(0x42d,0x3f8)]['canvas'][_0xeaa35e(-0x25f,-0x1e7)]+'px',_0x5c5393['style'][_0x544449(0x4ca,0x4c8)]=this['_pointerEvents']?'auto':'none';function _0xeaa35e(_0x24554a,_0x1ab88f){return _0x4086ac(_0x1ab88f,_0x24554a- -0x338);}_0x5c5393['style'][_0x544449(0x40f,0x490)]=this[_0x544449(0x48a,0x461)]['zIndex']??0x9;function _0x544449(_0x56d3d4,_0x295a7b){return _0x4086ac(_0x295a7b,_0x56d3d4-0x344);}return _0x5c5393['width']=this['_map']['scene']['canvas']['clientWidth'],_0x5c5393[_0xeaa35e(-0x19f,-0x13e)]=this['_map']['scene'][_0x544449(0x451,0x3f6)]['clientHeight'],_0x5c5393;}[_0x2e747d(-0x20,0x34)](){function _0x1f8dfa(_0x1827dd,_0x535e0a){return _0x4086ac(_0x535e0a,_0x1827dd-0x20b);}function _0x2c06b8(_0x4a29f6,_0x485d22){return _0x4086ac(_0x485d22,_0x4a29f6-0x349);}this['canvas']&&(this[_0x2c06b8(0x456,0x3ea)][_0x2c06b8(0x41a,0x467)]['width']=this[_0x2c06b8(0x475,0x444)][_0x2c06b8(0x432,0x436)]['canvas']['clientWidth']+'px',this['canvas'][_0x1f8dfa(0x2dc,0x297)]['height']=this['_map']['scene']['canvas']['clientHeight']+'px',this['canvas']['width']=this['_map'][_0x2c06b8(0x432,0x49c)]['canvas']['clientWidth'],this['canvas'][_0x1f8dfa(0x3a4,0x3f6)]=this[_0x2c06b8(0x475,0x48f)]['scene']['canvas'][_0x1f8dfa(0x2e4,0x318)]);}['bindEvent'](){const _0x1706bc=this;function _0x45533a(_0x43d180,_0x3139f5){return _0x4086ac(_0x43d180,_0x3139f5- -0xd5);}let _0x347b65=Date['now']();(function _0x36a111(){if(_0x1706bc[_0xa5f03f(-0xd8,-0x67)])return;function _0xa5f03f(_0x116b78,_0x289d9d){return _0x1e9b(_0x289d9d- -0x25d,_0x116b78);}function _0x3ef004(_0x1e0dfe,_0x3ff513){return _0x1e9b(_0x3ff513-0x176,_0x1e0dfe);}_0x1706bc[_0xa5f03f(-0xe8,-0xf1)]=window['requestAnimationFrame'](_0x36a111);if(_0x1706bc[_0x3ef004(0x32c,0x366)]&&_0x1706bc['windField']){const _0x452dc5=Date[_0x3ef004(0x36d,0x34d)](),_0x6c67fd=_0x452dc5-_0x347b65;_0x6c67fd>_0x1706bc['frameTime']&&(_0x347b65=_0x452dc5-_0x6c67fd%_0x1706bc['frameTime'],_0x1706bc['update']());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![]);function _0x3ca9ba(_0x809e87,_0x3862df){return _0x2e747d(_0x3862df,_0x809e87-0x305);}this['options'][_0x3ca9ba(0x3c6,0x3b9)]&&(this['_map']['on'](mars3d__namespace[_0x45533a(0x6f,0x1a)]['wheel'],this[_0x45533a(0x72,0x49)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x45533a(0x80,0x7)],this),this[_0x45533a(0x6f,0x57)]['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this));}['unbindEvent'](){window[_0x43f07a(-0x15f,-0x1e7)](this['_animateFrame']);function _0x43f07a(_0x482c5e,_0x295dd9){return _0x2e747d(_0x295dd9,_0x482c5e- -0x144);}delete this[_0x43f07a(-0x13e,-0x1aa)];function _0x22e549(_0x3e36e4,_0x4f4541){return _0x4086ac(_0x3e36e4,_0x4f4541-0x239);}window['removeEventListener']('resize',this[_0x22e549(0x337,0x351)]),this[_0x22e549(0x3a6,0x37f)]['mouseHidden']&&(this['_map'][_0x43f07a(-0xbc,-0x64)](mars3d__namespace[_0x22e549(0x2ea,0x328)]['wheel'],this[_0x22e549(0x371,0x357)],this),this[_0x22e549(0x2f4,0x365)]['off'](mars3d__namespace[_0x22e549(0x2ac,0x328)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x43f07a(-0x71,-0xbd)],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType'][_0x22e549(0x290,0x2eb)],this[_0x43f07a(-0xa9,-0xbb)],this));}['_onMapWhellEvent'](_0x3636c9){function _0xe1477b(_0x2e07c4,_0x1046f6){return _0x4086ac(_0x2e07c4,_0x1046f6- -0xdb);}function _0x519e32(_0x396f1e,_0x2322ef){return _0x2e747d(_0x2322ef,_0x396f1e- -0x211);}clearTimeout(this['refreshTimer']);if(!this[_0xe1477b(0x7f,0x93)]||!this['canvas'])return;this[_0x519e32(-0x1e8,-0x1cf)]['style'][_0x519e32(-0x1e5,-0x21c)]='hidden',this['refreshTimer']=setTimeout(()=>{if(!this[_0x34ca82(-0xbb,-0xac)])return;function _0x34ca82(_0x5c3410,_0x437c1e){return _0x519e32(_0x437c1e-0xdb,_0x5c3410);}function _0xd1912e(_0xb5925f,_0x38689d){return _0x519e32(_0x38689d-0x527,_0xb5925f);}this['redraw'](),this['canvas'][_0x34ca82(-0x10e,-0x149)]['visibility']='visible';},0xc8);}[_0x4086ac(0xf2,0xdc)](_0x4d4b12){function _0x573ca3(_0x15e28c,_0x12d57c){return _0x4086ac(_0x15e28c,_0x12d57c-0x1ee);}this['mouse_down']=!![],this[_0x573ca3(0x387,0x31a)]['off'](mars3d__namespace[_0x1cb373(0x52b,0x59e)][_0x1cb373(0x4ee,0x4d7)],this['_onMouseMoveEvent'],this);function _0x1cb373(_0x4450b8,_0x4c5aad){return _0x4086ac(_0x4c5aad,_0x4450b8-0x43c);}this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x3e64b7){function _0x240256(_0x3462e0,_0x478d0a){return _0x4086ac(_0x3462e0,_0x478d0a- -0x108);}function _0x1e0d71(_0x37a11f,_0x56c767){return _0x4086ac(_0x37a11f,_0x56c767-0x290);}if(!this['show']||!this[_0x1e0d71(0x315,0x39d)])return;this['mouse_down']&&(this[_0x240256(0x1c,0x5)][_0x240256(-0x64,-0x37)][_0x1e0d71(0x3db,0x3a0)]=_0x240256(0x98,0x73),this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x101be4){function _0x5c81e0(_0x35daae,_0x1c0d52){return _0x4086ac(_0x35daae,_0x1c0d52-0x1a8);}if(!this['show']||!this[_0x5c81e0(0x270,0x2b5)])return;this[_0x33e90c(0x27,0xa2)][_0x5c81e0(0x2eb,0x314)](mars3d__namespace[_0x33e90c(-0x16,-0x2c)]['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this[_0x33e90c(-0x2e,-0x5e)]&&this['redraw']();this[_0x33e90c(0x8,-0x1a)]['style']['visibility']='visible';function _0x33e90c(_0x197c4c,_0x423a50){return _0x2e747d(_0x423a50,_0x197c4c- -0x21);}this['mouse_down']=![],this[_0x5c81e0(0x2ca,0x27f)]=![];}[_0x2e747d(0xd5,0xb3)](_0x137de9){function _0x4c588f(_0x468a52,_0xdf5c73){return _0x4086ac(_0x468a52,_0xdf5c73-0x3f4);}function _0x4cb251(_0x15fe64,_0x201e06){return _0x4086ac(_0x201e06,_0x15fe64-0x41a);}this['clear'](),this[_0x4cb251(0x4e7,0x4b1)]=_0x137de9,this['windField']['setDate'](_0x137de9),this[_0x4c588f(0x524,0x4da)]();}[_0x4086ac(0x166,0xe6)](){function _0x37c216(_0x5e39f0,_0x128061){return _0x4086ac(_0x128061,_0x5e39f0-0x65);}if(!this[_0x1a78be(-0x98,-0x3c)])return;function _0x1a78be(_0x2b57ed,_0x1254e4){return _0x2e747d(_0x2b57ed,_0x1254e4- -0xc6);}this['windField']['setOptions'](this[_0x1a78be(-0x65,-0x64)]),this[_0x37c216(0x1a1,0x194)]();}['update'](){function _0x62a7d2(_0x33435e,_0x430963){return _0x4086ac(_0x430963,_0x33435e-0x33c);}if(this[_0x62a7d2(0x461,0x3fd)])return;function _0x36bfac(_0x3368f8,_0x586614){return _0x4086ac(_0x586614,_0x3368f8-0x73);}this['_updateIng']=!![];if(this[_0x62a7d2(0x498,0x4e9)])this[_0x62a7d2(0x404,0x382)]['update']();else{const _0x7a1eaf=this['windField']['getParticles']();this[_0x62a7d2(0x49b,0x425)](_0x7a1eaf);}this['_updateIng']=![];}['_drawLines'](_0x246769){this['_canvasParticles']=_0x246769,this['canvasContext'][_0x55b717(0x455,0x4b7)]=_0x9fda0d(0x232,0x210),this[_0x9fda0d(0x1be,0x148)]['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x55b717(0x55d,0x4f4)]),this[_0x9fda0d(0x1be,0x189)][_0x55b717(0x4ec,0x4b7)]=_0x55b717(0x454,0x4c8),this['canvasContext']['globalAlpha']=0.9;const _0x2168f9=this[_0x55b717(0x3fd,0x472)]['scene'][_0x55b717(0x4c9,0x4bc)]!==Cesium['SceneMode'][_0x9fda0d(0x230,0x207)];function _0x55b717(_0x2fde7f,_0x482cfc){return _0x4086ac(_0x2fde7f,_0x482cfc-0x346);}function _0x9fda0d(_0x3f6ec5,_0x53c5b7){return _0x2e747d(_0x53c5b7,_0x3f6ec5-0x164);}const _0x306f87=this[_0x55b717(0x4ad,0x46f)]*0.25;if(this['_colorRamp'])for(let _0x30069d=0x0,_0x5c2e05=_0x246769['length'];_0x30069d<_0x5c2e05;_0x30069d++){const _0xc4c847=_0x246769[_0x30069d],_0x2c2144=this[_0x55b717(0x3ad,0x431)](_0xc4c847,_0xc4c847[_0x9fda0d(0x124,0x10a)],_0xc4c847['lat'],_0xc4c847['alt']),_0x343b9e=this[_0x55b717(0x4a1,0x431)](_0xc4c847,_0xc4c847['tlng'],_0xc4c847[_0x9fda0d(0x174,0xf4)],_0xc4c847[_0x9fda0d(0x168,0x17b)]);if(!_0x2c2144||!_0x343b9e)continue;if(_0x2168f9&&Math[_0x9fda0d(0x12d,0x182)](_0x2c2144[0x0]-_0x343b9e[0x0])>=_0x306f87)continue;this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x55b717(0x43e,0x484)]['strokeStyle']=this[_0x9fda0d(0x1ba,0x1b8)]['getColor'](_0xc4c847['speed']),this['canvasContext']['moveTo'](_0x2c2144[0x0],_0x2c2144[0x1]),this['canvasContext'][_0x55b717(0x430,0x44b)](_0x343b9e[0x0],_0x343b9e[0x1]),this[_0x9fda0d(0x1be,0x17a)][_0x9fda0d(0x16e,0x199)]();}else{this['canvasContext'][_0x55b717(0x3bf,0x3ef)](),this['canvasContext'][_0x9fda0d(0x189,0x205)]=this['lineWidth'],this[_0x9fda0d(0x1be,0x16c)]['strokeStyle']=this['color'];for(let _0x24384f=0x0,_0x223a32=_0x246769[_0x55b717(0x46a,0x41b)];_0x24384f<_0x223a32;_0x24384f++){const _0xc794c=_0x246769[_0x24384f],_0x251817=this[_0x9fda0d(0x16b,0x13f)](_0xc794c,_0xc794c[_0x9fda0d(0x124,0xc3)],_0xc794c[_0x9fda0d(0x216,0x1b8)],_0xc794c['alt']),_0x54974a=this['_tomap'](_0xc794c,_0xc794c['tlng'],_0xc794c['tlat'],_0xc794c[_0x9fda0d(0x168,0xed)]);if(!_0x251817||!_0x54974a)continue;if(_0x2168f9&&Math[_0x9fda0d(0x12d,0xdc)](_0x251817[0x0]-_0x54974a[0x0])>=_0x306f87)continue;this[_0x9fda0d(0x1be,0x21f)]['moveTo'](_0x251817[0x0],_0x251817[0x1]),this['canvasContext']['lineTo'](_0x54974a[0x0],_0x54974a[0x1]);}this['canvasContext'][_0x9fda0d(0x16e,0xec)]();}}['_tomap'](_0x58f161,_0x26842e,_0x48097a,_0x2d9ccc){const _0x7272aa=Cesium[_0x18e51b(0xa5,0xce)]['fromDegrees'](_0x26842e,_0x48097a,_0x2d9ccc??this['fixedHeight']);function _0x18e51b(_0x1f0bee,_0x414bde){return _0x2e747d(_0x1f0bee,_0x414bde-0x5f);}const _0x33307a=this[_0x2c85db(0x2b3,0x302)][_0x2c85db(0x270,0x28f)];if(_0x33307a[_0x18e51b(0xac,0xf1)]===Cesium['SceneMode'][_0x18e51b(0xfc,0x12b)]){const _0x52bae1=new Cesium[(_0x2c85db(0x33b,0x2f7))](_0x33307a['globe']['ellipsoid'],_0x33307a[_0x18e51b(0xa9,0x107)][_0x18e51b(0xf6,0x90)]),_0x98180e=_0x52bae1[_0x2c85db(0x24b,0x23e)](_0x7272aa);if(!_0x98180e)return _0x58f161['age']=0x0,null;}function _0x2c85db(_0x4644f3,_0x2b114b){return _0x4086ac(_0x2b114b,_0x4644f3-0x187);}const _0x3ce145=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map']['scene'],_0x7272aa);return _0x3ce145?[_0x3ce145['x'],_0x3ce145['y']]:null;}[_0x2e747d(0xb2,0x4c)](){this['windField'][_0x35149d(0x1cb,0x22d)]();function _0x1adfa2(_0x81eeb,_0x45770d){return _0x4086ac(_0x45770d,_0x81eeb- -0x171);}function _0x35149d(_0x117d29,_0x32200d){return _0x4086ac(_0x32200d,_0x117d29-0x9b);}delete this[_0x35149d(0x168,0xde)];}['initWorker'](){function _0x56276f(_0xd9faaf,_0x277faa){return _0x4086ac(_0xd9faaf,_0x277faa-0x224);}this[_0xf31f93(0xe4,0xff)]=new Worker(this[_0x56276f(0x323,0x36a)]['worker']),this[_0xf31f93(0x155,0xff)]['onmessage']=_0x21d05b=>{this['_drawLines'](_0x21d05b['data']['particles']),this['_updateIng2']=![];},this['windField']={'init':_0x386fd0=>{const _0x525d58={};function _0x4147f7(_0x114033,_0x3b7f1d){return _0xf31f93(_0x114033,_0x3b7f1d- -0x13b);}function _0x6b7117(_0x28503b,_0x44c51d){return _0x56276f(_0x28503b,_0x44c51d-0xe5);}_0x525d58[_0x4147f7(0x6,-0xa)]=_0x6b7117(0x3fe,0x471),_0x525d58['options']=_0x386fd0,this[_0x6b7117(0x3df,0x465)][_0x6b7117(0x376,0x400)](_0x525d58);},'setOptions':_0x191c0d=>{const _0x20ec89={};_0x20ec89[_0xf12efa(0x1c6,0x161)]='setOptions';function _0xf12efa(_0x447731,_0x4af81a){return _0x56276f(_0x4af81a,_0x447731- -0x1ec);}_0x20ec89['options']=_0x191c0d;function _0x47782d(_0x395100,_0x14ef96){return _0x56276f(_0x14ef96,_0x395100-0x22d);}this[_0xf12efa(0x194,0x207)]['postMessage'](_0x20ec89);},'setDate':_0x9c5de2=>{const _0x666e8f={};_0x666e8f[_0x3208b7(0x97,0x9c)]='setDate';function _0x1b97c2(_0x2fcca4,_0x6ad040){return _0x56276f(_0x6ad040,_0x2fcca4- -0x44e);}_0x666e8f['data']=_0x9c5de2;function _0x3208b7(_0x4e3fbb,_0xc6f2a7){return _0x56276f(_0xc6f2a7,_0x4e3fbb- -0x31b);}this[_0x1b97c2(-0xce,-0x11e)]['postMessage'](_0x666e8f);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x4f7e81={};_0x4f7e81['type']=_0x1bc2b5(0x59c,0x5c4);function _0x340da7(_0x56d361,_0x2bf478){return _0x56276f(_0x2bf478,_0x56d361- -0x18a);}function _0x1bc2b5(_0x5f4294,_0x24c5ad){return _0x56276f(_0x24c5ad,_0x5f4294-0x23c);}this['worker'][_0x1bc2b5(0x557,0x558)](_0x4f7e81);},'clear':()=>{function _0x512e60(_0x39dcd6,_0x4931f0){return _0x56276f(_0x39dcd6,_0x4931f0- -0x2b8);}const _0x326637={};_0x326637['type']='clear',this['worker'][_0x512e60(0x82,0x63)](_0x326637);}};function _0xf31f93(_0x28e383,_0x520089){return _0x4086ac(_0x28e383,_0x520089- -0x5d);}this['windField'][_0x56276f(0x409,0x38c)](this['options']);}}mars3d__namespace['LayerUtil'][_0x4086ac(0xd5,0x151)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports[_0x2e747d(-0x18,0x54)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x2e747d(0x40,0x9c)]=WindLayer,exports['WindUtil']=WindUtil;const _0x3e20a2={};_0x3e20a2['value']=!![],Object[_0x4086ac(0x133,0x14b)](exports,'__esModule',_0x3e20a2);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.9.6",
3
+ "version": "3.9.7",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.9.6"
8
+ "mars3d": "~3.9.7"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"