mars3d-wind 3.9.3 → 3.9.4

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.3
5
- * 编译日期:2025-03-18 22:03
4
+ * 版本信息:v3.9.4
5
+ * 编译日期:2025-03-25 22:36
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(_0x142c7c,_0x290267){const _0x17b1cd=_0x142c7c();function _0x39c6aa(_0x346c4a,_0x483e10){return _0x485d(_0x483e10-0x245,_0x346c4a);}function _0x529204(_0x5e5c61,_0xe0c95d){return _0x485d(_0xe0c95d-0x279,_0x5e5c61);}while(!![]){try{const _0x37abde=parseInt(_0x39c6aa(0x47d,0x433))/0x1*(parseInt(_0x39c6aa(0x4c0,0x48a))/0x2)+-parseInt(_0x529204(0x455,0x4a1))/0x3+parseInt(_0x39c6aa(0x3de,0x410))/0x4*(-parseInt(_0x39c6aa(0x35d,0x3b7))/0x5)+parseInt(_0x39c6aa(0x46d,0x486))/0x6*(parseInt(_0x39c6aa(0x395,0x3c8))/0x7)+parseInt(_0x39c6aa(0x32c,0x397))/0x8*(-parseInt(_0x529204(0x502,0x49f))/0x9)+-parseInt(_0x39c6aa(0x4fd,0x493))/0xa+parseInt(_0x39c6aa(0x478,0x49f))/0xb;if(_0x37abde===_0x290267)break;else _0x17b1cd['push'](_0x17b1cd['shift']());}catch(_0xf49031){_0x17b1cd['push'](_0x17b1cd['shift']());}}}(_0x566e,0xcad7e));function _0x485d(_0x3c23be,_0x3b48b4){const _0x566e7d=_0x566e();return _0x485d=function(_0x485d5c,_0x5d86e1){_0x485d5c=_0x485d5c-0x14f;let _0x231428=_0x566e7d[_0x485d5c];return _0x231428;},_0x485d(_0x3c23be,_0x3b48b4);}function _interopNamespace(_0x2127ab){if(_0x2127ab&&_0x2127ab['__esModule'])return _0x2127ab;function _0x32ef60(_0x483223,_0x8ad591){return _0x485d(_0x8ad591-0x1d4,_0x483223);}var _0x2e33e9=Object['create'](null);function _0xb89797(_0x41db65,_0x550d58){return _0x485d(_0x41db65-0x72,_0x550d58);}return _0x2127ab&&Object[_0xb89797(0x1f0,0x1b1)](_0x2127ab)['forEach'](function(_0xac0941){function _0x1acc18(_0x29f1be,_0x5780f8){return _0xb89797(_0x29f1be- -0x42a,_0x5780f8);}function _0x15c309(_0x307ac1,_0x152c46){return _0xb89797(_0x307ac1- -0x106,_0x152c46);}if(_0xac0941!=='default'){var _0x713119=Object[_0x15c309(0x109,0x12a)](_0x2127ab,_0xac0941);Object[_0x15c309(0x11d,0xe5)](_0x2e33e9,_0xac0941,_0x713119['get']?_0x713119:{'enumerable':!![],'get':function(){return _0x2127ab[_0xac0941];}});}}),_0x2e33e9[_0xb89797(0x2af,0x298)]=_0x2127ab,_0x2e33e9;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function _0xc18867(_0x2d3e44,_0x32bb5f){return _0x485d(_0x2d3e44-0x360,_0x32bb5f);}function getU(_0x1dff37,_0x4ae83f){const _0x3f9518=_0x1dff37*Math[_0x11d9f8(0x3cc,0x41f)](Cesium$2[_0x11d9f8(0x465,0x475)]['toRadians'](_0x4ae83f));function _0x11d9f8(_0x3e44c2,_0x3c8fbb){return _0x485d(_0x3c8fbb-0x24b,_0x3e44c2);}function _0x2df505(_0x1f1f56,_0x4cbf76){return _0x485d(_0x1f1f56-0x2cc,_0x4cbf76);}return _0x3f9518;}function getV(_0x3a32f8,_0x54ee45){function _0x3543c8(_0x5652d9,_0x579415){return _0x485d(_0x579415-0x28f,_0x5652d9);}const _0x5da9bb=_0x3a32f8*Math[_0x493aca(0x65,0x43)](Cesium$2[_0x3543c8(0x4de,0x4b9)][_0x3543c8(0x49b,0x482)](_0x54ee45));function _0x493aca(_0x31982c,_0x34af75){return _0x485d(_0x34af75- -0x164,_0x31982c);}return _0x5da9bb;}function getSpeed(_0x99afe9,_0x1c0d0c){function _0x1108ab(_0x5c0c32,_0x5708e6){return _0x485d(_0x5708e6- -0x186,_0x5c0c32);}const _0x4d12f2=Math[_0x1108ab(0x1,0x7c)](Math['pow'](_0x99afe9,0x2)+Math['pow'](_0x1c0d0c,0x2));return _0x4d12f2;}function getDirection(_0xea3cda,_0xd04b9a){function _0x46200d(_0x5ad0da,_0x171552){return _0x485d(_0x171552- -0x2ed,_0x5ad0da);}let _0x3892f9=Cesium$2['Math'][_0x46200d(-0xdd,-0xf8)](Math['atan2'](_0xd04b9a,_0xea3cda));return _0x3892f9+=_0x3892f9<0x0?0x168:0x0,_0x3892f9;}const _0x1fecf5={};_0x1fecf5['__proto__']=null,_0x1fecf5['getU']=getU,_0x1fecf5['getV']=getV,_0x1fecf5[_0xc18867(0x557,0x55e)]=getSpeed,_0x1fecf5['getDirection']=getDirection;var WindUtil=_0x1fecf5,updatePositionShader=_0xc18867(0x59e,0x5cc),calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader=_0x1e8311(0x1a9,0x22d),renderParticlesVertexShader=_0xc18867(0x506,0x53e);function _0x566e(){const _0x544dd3=['getDataAtLonLat','_speedRate','defineProperty','postProcessingPosition','dynamic','tlng','clientHeight','abs','lng','_pointerEvents','computing','geometry','createParticlesTextures','unbindEvent','worker','ymin','strokeStyle','vdata','destroyParticlesTextures','floor','colors','now','fragmentShaderSource','onmessage','object','cols','cancelAnimationFrame','update','8pYuBbN','primitives','Cartesian2','warn','particles','destination-in','rectangle','lonRange','positionWC','cos','dropRate','latRange','preExecute','vertexArray','rows','_randomParticle','type','_updateIng','EllipsoidalOccluder','layer','windField','#ffffff','globe','pointer-events','attributeLocations','bounds','max','reCreateWindTextures','requestRender','WindLayer','interpolated','getUVByXY','particlesSpeed','pixelSize','onParticlesTextureSizeChange','1ffrRgI','setGeometry','getColor','windTextures','scene','toRadians','destroy','toDegrees','stroke','getSpeed','lineWidth','EventType','processWindData','mouse_down','_onMouseMoveEvent','LINEAR','minificationFilter','initWorker','blue','Draw','sqrt','drawingBufferWidth','segmentsColor','_updateIng2','_map','show','lineLength','width','currentParticlesPosition','rendering','getPrimitives','west','_setOptionsHook','quietPeriod','updatePosition','ONE_MINUS_SRC_ALPHA','particleSystem','xmax','udata','mode','changeOptions','RGBA','createWindTextures','east','min\x20is\x20undefined,\x20calculate\x20min','camera','createSegmentsGeometry','outputTexture','createRawRenderState','framebuffers','canvasWind','owner','getUVByPoint','stringify','addEventListener','commandToExecute','344349KWTxNt','_colorRamp','1717023SHaOQk','windData','Math','off','useViewerBounds','xmin','isDynamic','context','frameTime','uniformMap','isPointVisible','length','mouseMove','getSegmentDrawVertexShader','commandType','lastFramesPerSecond','globalAlpha','ymax','register','execute','visible','default','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a','commandList','isDestroy','554502qpiFxP','Cesium','ellipsoid','height','3319726DeZWne','speedFactor','values','CanvasWindField','updateViewerParameters','_mountedHook','drawingBufferHeight','style','_canvasParticles','252840CJGPbF','prototype','forEach','mouse_move','longitude','frameRateMonitor','_calcUV','initFrameRate','requestAnimationFrame','FLOAT','age','WindUtil','305096xeMnTc','lat','push','getCalculateSpeedShader','_animateFrame','north','DEPTH_COMPONENT','CanvasWindLayer','particlesTextures','_bilinearInterpolation','216zHvufk','speed','color','grid','canvas','blendFuncDestination','sources','SCENE3D','speedRate','primitiveType','createColorTableTexture','options','position','steps','changed','vertexShaderSource','clear','bindEvent','beginPath','particlesNumber','particlesTextureSize','OPAQUE','talt','refreshTimer','resize','previousParticlesPosition','updateOptions','flipY','calculateSpeed','canvasContext','_tomap','getSegmentDrawFragmentShader','1992925JVrWGl','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a','segments','fixedHeight','blendFuncSource','south','canvasWidth','tlat','data','clearCommand','hidden','slice','keys','viewerParameters','STATIC_DRAW','visibility','_onMouseUpEvent','119HaLeMJ','dropRateBump','_maxAge','removeEventListener','array','add','_addedHook','frameRateAdjustment','Unknown\x20command\x20type','pointerEvents','textures','frameState.commandList\x20is\x20undefined','NEAREST','log','lighter','_calc_speedRate','bind','magnificationFilter','autoClear','toGridXY','pixelDatatype','_removedHook','getRandomLatLng','rawRenderState','postMessage','maxAge','getOwnPropertyDescriptor','top','redraw','colorTable','min','percentageChanged','fromCssColorString','SRC_ALPHA','CLAMP_TO_EDGE','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a','sin','0px','original','fromDegrees','lineTo','mouseHidden','setData','clientWidth'];_0x566e=function(){return _0x544dd3;};return _0x566e();}const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];function _0x1e8311(_0x2b22c1,_0x50b243){return _0x485d(_0x2b22c1-0x36,_0x50b243);}class ShaderManager{static[_0x1e8311(0x293,0x218)](){const _0x26e817={};return _0x26e817['sources']=[calculateSpeedShader],new ShaderSource$1(_0x26e817);}static['getUpdatePositionShader'](){const _0x122cad={};_0x122cad[_0x55c186(0x20d,0x1ce)]=[updatePositionShader];function _0x55c186(_0x49e622,_0x200e44){return _0x1e8311(_0x49e622-0x7f,_0x200e44);}return new ShaderSource$1(_0x122cad);}static['getSegmentDrawVertexShader'](){const _0x3fb968={};_0x3fb968[_0x4aecef(0x31c,0x368)]=[renderParticlesVertexShader];function _0x4aecef(_0x31532b,_0x4cc537){return _0xc18867(_0x4cc537- -0x150,_0x31532b);}return new ShaderSource$1(_0x3fb968);}static[_0xc18867(0x4d1,0x4dc)](){const _0x434197={};_0x434197[_0x1584ff(0x557,0x4e9)]=[renderParticlesFragmentShader];function _0x1584ff(_0x3a05a,_0x484825){return _0xc18867(_0x484825-0x31,_0x3a05a);}return new ShaderSource$1(_0x434197);}static['getPostProcessingPositionShader'](){const _0x5be0fc={};return _0x5be0fc['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x5be0fc);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x125c22){this[_0x4a32f9(0x378,0x37d)]=_0x125c22['commandType'],this[_0x3dad75(0x2cc,0x281)]=_0x125c22[_0x4a32f9(0x35c,0x301)];function _0x4a32f9(_0x5e18e7,_0x132827){return _0xc18867(_0x132827- -0x219,_0x5e18e7);}function _0x3dad75(_0x33d782,_0x239606){return _0x1e8311(_0x239606-0x91,_0x33d782);}this['attributeLocations']=_0x125c22['attributeLocations'],this['primitiveType']=_0x125c22[_0x4a32f9(0x2ff,0x2a2)],this['uniformMap']=_0x125c22['uniformMap']||{},this[_0x4a32f9(0x25a,0x2a8)]=_0x125c22[_0x4a32f9(0x26d,0x2a8)],this[_0x3dad75(0x24d,0x28c)]=_0x125c22[_0x4a32f9(0x368,0x30c)],this['rawRenderState']=_0x125c22['rawRenderState'],this['framebuffer']=_0x125c22['framebuffer'],this[_0x4a32f9(0x308,0x364)]=_0x125c22['outputTexture'],this[_0x3dad75(0x2ba,0x25c)]=_0x125c22[_0x4a32f9(0x254,0x2dc)]??![],this['preExecute']=_0x125c22['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x125c22['isDynamic']??(()=>!![]),this['autoClear']&&(this[_0x4a32f9(0x252,0x2c2)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0x4a32f9(0x24a,0x2ae)]}));}['createCommand'](_0x2dab8b){function _0x2c4223(_0x170789,_0x4f5820){return _0x1e8311(_0x4f5820- -0x3cc,_0x170789);}function _0x5e1a65(_0x30a588,_0x4b5588){return _0x1e8311(_0x30a588-0x23e,_0x4b5588);}if(this['commandType']==='Draw'){const _0x50302b={};_0x50302b[_0x2c4223(-0xf8,-0x167)]=_0x2dab8b,_0x50302b['geometry']=this[_0x5e1a65(0x42e,0x448)],_0x50302b[_0x2c4223(-0x22a,-0x1b3)]=this['attributeLocations'],_0x50302b['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x1ce77f=VertexArray$1['fromGeometry'](_0x50302b),_0x2a5400={};_0x2a5400['context']=_0x2dab8b,_0x2a5400[_0x5e1a65(0x3d5,0x3e2)]=this['vertexShaderSource'],_0x2a5400['fragmentShaderSource']=this['fragmentShaderSource'],_0x2a5400[_0x5e1a65(0x457,0x3e3)]=this['attributeLocations'];const _0x381a7f=ShaderProgram['fromCache'](_0x2a5400),_0x3ef7bf=RenderState['fromCache'](this[_0x2c4223(-0x21d,-0x1fc)]),_0x40b398={};return _0x40b398['owner']=this,_0x40b398[_0x5e1a65(0x44c,0x424)]=_0x1ce77f,_0x40b398['primitiveType']=this[_0x2c4223(-0x1f4,-0x23b)],_0x40b398['modelMatrix']=Matrix4['IDENTITY'],_0x40b398['renderState']=_0x3ef7bf,_0x40b398['shaderProgram']=_0x381a7f,_0x40b398['framebuffer']=this['framebuffer'],_0x40b398[_0x5e1a65(0x4a5,0x437)]=this['uniformMap'],_0x40b398['pass']=Pass$1[_0x5e1a65(0x3db,0x35c)],new DrawCommand(_0x40b398);}else{if(this[_0x2c4223(-0x164,-0x160)]==='Compute'){const _0x5a46e6={};return _0x5a46e6[_0x2c4223(-0x13a,-0x175)]=this,_0x5a46e6[_0x2c4223(-0x23b,-0x1d1)]=this[_0x2c4223(-0x1f8,-0x1d1)],_0x5a46e6['uniformMap']=this['uniformMap'],_0x5a46e6[_0x2c4223(-0x104,-0x179)]=this['outputTexture'],_0x5a46e6['persists']=!![],new ComputeCommand(_0x5a46e6);}else throw new Error(_0x2c4223(-0x194,-0x20b));}}[_0xc18867(0x54f,0x507)](_0x4ae303,_0x2e9389){function _0x5d5b72(_0x2754c6,_0x92c0f5){return _0x1e8311(_0x92c0f5- -0x320,_0x2754c6);}function _0x33aa27(_0x54b743,_0x387222){return _0x1e8311(_0x387222- -0x121,_0x54b743);}this['geometry']=_0x2e9389,defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x4ae303,'geometry':this[_0x33aa27(0xa7,0xcf)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x5d5b72(-0x128,-0x16a)]}));}[_0xc18867(0x52a,0x595)](_0x1a3058){function _0xd8139b(_0x17fdd4,_0x11716f){return _0xc18867(_0x17fdd4- -0x501,_0x11716f);}if(!this[_0x13ede6(-0x1df,-0x157)]())return;function _0x13ede6(_0x4bef7a,_0x444820){return _0x1e8311(_0x444820- -0x3bb,_0x4bef7a);}if(!this[_0xd8139b(0x66,-0x22)]||!defined(_0x1a3058))return;!defined(this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x1a3058['context']));defined(this[_0xd8139b(0x36,-0x37)])&&this[_0x13ede6(-0x154,-0x1ae)]();if(!_0x1a3058['commandList']){console['warn'](_0x13ede6(-0x1aa,-0x1f7));return;}defined(this['clearCommand'])&&_0x1a3058[_0x13ede6(-0x104,-0x146)][_0x13ede6(-0x115,-0x129)](this['clearCommand']),defined(this['commandToExecute'])&&_0x1a3058[_0x13ede6(-0xd7,-0x146)][_0x13ede6(-0xbb,-0x129)](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){function _0x3ceed5(_0x23a6ea,_0x35cf3f){return _0x1e8311(_0x23a6ea-0x2c,_0x35cf3f);}if(defined(this[_0x3ceed5(0x287,0x2a0)])){var _0x4a7c9e;(_0x4a7c9e=this['commandToExecute']['shaderProgram'])===null||_0x4a7c9e===void 0x0||_0x4a7c9e['destroy'](),this[_0x3ceed5(0x287,0x201)]['shaderProgram']=undefined;}function _0x517d17(_0x26f1c3,_0x293c27){return _0x1e8311(_0x26f1c3- -0x2f6,_0x293c27);}return destroyObject(this);}}function deepMerge(_0x4663d6,_0x4eda23){if(!_0x4663d6)return _0x4eda23;if(!_0x4eda23)return _0x4663d6;const _0x28d8bc={..._0x4eda23},_0x40549b=_0x28d8bc;function _0x4d4bbb(_0x383332,_0x3ab257){return _0x1e8311(_0x383332-0x3f,_0x3ab257);}function _0x5bc936(_0x4b97ae,_0x2f6ee0){return _0x1e8311(_0x4b97ae- -0x3d,_0x2f6ee0);}for(const _0xdfc5fd in _0x4663d6){if(Object[_0x4d4bbb(0x2c4,0x2f0)]['hasOwnProperty']['call'](_0x4663d6,_0xdfc5fd)){const _0x1e734c=_0x4663d6[_0xdfc5fd],_0x2ddac9=_0x4eda23[_0xdfc5fd];if(Array['isArray'](_0x1e734c)){_0x40549b[_0xdfc5fd]=_0x1e734c[_0x5bc936(0x176,0x101)]();continue;}if(_0x1e734c&&typeof _0x1e734c===_0x5bc936(0x1c0,0x1d6)){_0x40549b[_0xdfc5fd]=deepMerge(_0x1e734c,_0x2ddac9||{});continue;}_0x1e734c!==undefined&&(_0x40549b[_0xdfc5fd]=_0x1e734c);}}return _0x40549b;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace[_0x1e8311(0x278,0x2b9)];class WindParticlesComputing{constructor(_0x1460f2,_0x2a6042,_0x2bc94a,_0x155d95,_0x10123a){this['context']=_0x1460f2,this['options']=_0x2bc94a,this['viewerParameters']=_0x155d95,this[_0x785e6(0x3c1,0x343)]=_0x2a6042,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x45de6c={};_0x45de6c['scene']=_0x10123a,_0x45de6c['samplingWindow']=0x1,_0x45de6c[_0x785e6(0x2a1,0x329)]=0x0;function _0x5e89bb(_0x3b5d83,_0x4edd47){return _0x1e8311(_0x4edd47- -0x189,_0x3b5d83);}this[_0x5e89bb(0x182,0x100)]=new FrameRateMonitor(_0x45de6c),this[_0x5e89bb(0xf8,0x102)](),this['createWindTextures']();function _0x785e6(_0x1d409d,_0x18137b){return _0xc18867(_0x18137b- -0x246,_0x1d409d);}this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x4162b5=()=>{function _0x2ce78f(_0x5527a3,_0x5502e8){return _0x485d(_0x5527a3- -0xef,_0x5502e8);}function _0x3e0ee8(_0x394099,_0x5a3ff7){return _0x485d(_0x394099- -0x17d,_0x5a3ff7);}this[_0x3e0ee8(0xd6,0x142)][_0x2ce78f(0x148,0x13b)]>0x14&&(this['frameRate']=this[_0x2ce78f(0x164,0x1dc)]['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math[_0x3e0ee8(0x68,0x3c)](this['frameRate'],0x1));};function _0x174b86(_0x133a1d,_0x2c9bf2){return _0xc18867(_0x133a1d- -0x47,_0x2c9bf2);}_0x4162b5();const _0xd4a478=setInterval(_0x4162b5,0x3e8),_0xc3f465=this[_0x174b86(0x50d,0x502)]['bind'](this);this['destroy']=()=>{clearInterval(_0xd4a478),_0xc3f465();};}[_0xc18867(0x578,0x54e)](){const _0x2302e3={};function _0x30b50c(_0x3c7b50,_0x436fc3){return _0x1e8311(_0x3c7b50- -0x365,_0x436fc3);}function _0x220355(_0x1cccc9,_0x1eac0d){return _0xc18867(_0x1cccc9-0x32,_0x1eac0d);}_0x2302e3[_0x30b50c(-0x131,-0xab)]=TextureMinificationFilter$1[_0x220355(0x58f,0x595)],_0x2302e3['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x530ac9={'context':this[_0x30b50c(-0x100,-0x117)],'width':this['windData']['width'],'height':this['windData'][_0x220355(0x5d6,0x5b3)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1[_0x30b50c(-0xd8,-0xb6)],'flipY':this['options'][_0x30b50c(-0x1c2,-0x177)]??![],'sampler':new Sampler$1(_0x2302e3)};this[_0x30b50c(-0x13e,-0xe4)]={'U':new Texture$1({..._0x530ac9,'source':{'arrayBufferView':new Float32Array(this[_0x30b50c(-0x106,-0xad)]['u'][_0x30b50c(-0x1a8,-0x195)])}}),'V':new Texture$1({..._0x530ac9,'source':{'arrayBufferView':new Float32Array(this[_0x30b50c(-0x106,-0x14b)]['v']['array'])}})};}['createParticlesTextures'](){function _0x356148(_0x5893b3,_0x6347f0){return _0xc18867(_0x6347f0- -0x6b7,_0x5893b3);}function _0x3dc43f(_0x4c313c,_0x139006){return _0x1e8311(_0x4c313c- -0x37f,_0x139006);}const _0x2ef349={};_0x2ef349[_0x3dc43f(-0x14b,-0x121)]=TextureMinificationFilter$1[_0x356148(-0x16f,-0x1c8)],_0x2ef349['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];const _0x47757c={'context':this['context'],'width':this[_0x3dc43f(-0x1ec,-0x268)]['particlesTextureSize'],'height':this[_0x3dc43f(-0x1ec,-0x218)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x356148(-0x1bd,-0x1fa)]['particlesTextureSize']*this['options']['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x2ef349)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x47757c),'currentParticlesPosition':new Texture$1(_0x47757c),'nextParticlesPosition':new Texture$1(_0x47757c),'postProcessingPosition':new Texture$1(_0x47757c),'particlesSpeed':new Texture$1(_0x47757c)};}[_0xc18867(0x521,0x4bd)](){function _0x2d4c34(_0x189463,_0x1c92ee){return _0x1e8311(_0x1c92ee-0x119,_0x189463);}function _0x2a025f(_0x1beb05,_0xed8105){return _0x1e8311(_0x1beb05-0x2b8,_0xed8105);}Object[_0x2a025f(0x535,0x59a)](this[_0x2a025f(0x43e,0x42e)])['forEach'](_0xd940ca=>_0xd940ca['destroy']());}['createComputingPrimitives'](){function _0xd26bd9(_0x2656dc,_0x35977b){return _0x1e8311(_0x35977b-0x44,_0x2656dc);}function _0x3ddd96(_0x135d4c,_0x166acc){return _0xc18867(_0x135d4c- -0x469,_0x166acc);}this[_0xd26bd9(0x1ea,0x246)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0xd26bd9(0x1e4,0x26b)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x3ddd96(0x120,0x106)]['v']['min'],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x2d1a4c(_0x271f93,_0x2074e6){return _0x3ddd96(_0x2074e6- -0x23a,_0x271f93);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0x2d1a4c(-0x210,-0x1e6)]['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData']['width'],this[_0xd26bd9(0x21f,0x2a3)][_0xd26bd9(0x2a5,0x2be)]),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0xd26bd9(0x243,0x287)],this['windData']['bounds'][_0xd26bd9(0x203,0x1f1)]),'maximum':()=>new Cartesian2$1(this['windData'][_0x3ddd96(0xdb,0x12e)]['east'],this['windData']['bounds']['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures'][_0xd26bd9(0x273,0x265)],'preExecute':()=>{const _0x342c06=this[_0x4c9bca(0x225,0x26d)][_0x4c9bca(0x2dd,0x288)];function _0x2392e8(_0x2d5b0a,_0x252483){return _0xd26bd9(_0x252483,_0x2d5b0a-0x32c);}function _0x4c9bca(_0x53b0fd,_0x1a02a4){return _0xd26bd9(_0x53b0fd,_0x1a02a4-0xa3);}this['particlesTextures']['previousParticlesPosition']=this['particlesTextures'][_0x4c9bca(0x333,0x327)],this[_0x4c9bca(0x258,0x26d)]['currentParticlesPosition']=this[_0x4c9bca(0x21a,0x26d)][_0x2392e8(0x558,0x4d1)],this[_0x4c9bca(0x21c,0x26d)][_0x2392e8(0x558,0x514)]=_0x342c06,this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives']['calculateSpeed']['commandToExecute']['outputTexture']=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this[_0x3ddd96(0x54,0x4)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this[_0x3ddd96(0x47,0xc7)]['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x119fbb(_0x11e84a,_0x3104cd){return _0x3ddd96(_0x11e84a-0x85,_0x3104cd);}function _0xbe4fa6(_0x3a653b,_0x85dba9){return _0x3ddd96(_0x3a653b-0x488,_0x85dba9);}this['primitives'][_0xbe4fa6(0x58f,0x54e)]['commandToExecute']&&(this[_0xbe4fa6(0x54b,0x550)]['updatePosition']['commandToExecute']['outputTexture']=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this['options'][_0xd26bd9(0x21e,0x22d)]}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this[_0x3ddd96(0x47,0x36)]['particlesSpeed'],'lonRange':()=>this['viewerParameters'][_0xd26bd9(0x1f0,0x24c)],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0xd26bd9(0x274,0x25e)]['west'],this['windData'][_0xd26bd9(0x226,0x25e)]['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this[_0x3ddd96(0x120,0x134)][_0xd26bd9(0x21b,0x25e)][_0xd26bd9(0x26b,0x2d9)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this[_0x3ddd96(0x54,0x67)]['dropRateBump'],'useViewerBounds':()=>this['options'][_0xd26bd9(0x2ea,0x2a6)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x15972c(_0x172340,_0x2ee464){return _0x3ddd96(_0x2ee464-0x3ca,_0x172340);}function _0x42c23a(_0x367c7d,_0x2895bd){return _0xd26bd9(_0x2895bd,_0x367c7d-0x60);}this['primitives']['postProcessingPosition'][_0x42c23a(0x2ff,0x374)]&&(this['primitives'][_0x15972c(0x482,0x473)]['commandToExecute'][_0x42c23a(0x2f7,0x36d)]=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0x3ddd96(0x54,0x6f)]['dynamic']})};}[_0x1e8311(0x21c,0x1f4)](){function _0x189a4b(_0x332cb3,_0x54749){return _0xc18867(_0x54749- -0x5fe,_0x332cb3);}this['windTextures']['U'][_0x189a4b(-0x65,-0xaa)]();function _0x16de40(_0x18763a,_0xe17f2){return _0xc18867(_0x18763a- -0x718,_0xe17f2);}this[_0x189a4b(-0x10e,-0xad)]['V']['destroy'](),this[_0x16de40(-0x1a0,-0x176)]();}['updateWindData'](_0x4877b3){this[_0x47719a(-0x9f,-0x58)]=_0x4877b3;function _0x47719a(_0x72ec15,_0x5055c8){return _0x1e8311(_0x72ec15- -0x2fe,_0x5055c8);}this['reCreateWindTextures']();}[_0x1e8311(0x1a2,0x1df)](_0x471190){const _0xeba1ae=_0x471190['flipY']!==undefined&&_0x471190[_0x325a1c(0x3fc,0x439)]!==this['options'][_0x30880f(0x39f,0x38f)];function _0x325a1c(_0x14746b,_0x4ed5b8){return _0xc18867(_0x4ed5b8- -0x94,_0x14746b);}function _0x30880f(_0x3fc387,_0x308071){return _0x1e8311(_0x308071-0x1ec,_0x3fc387);}this[_0x30880f(0x3c5,0x37f)]=deepMerge(_0x471190,this['options']),_0xeba1ae&&this['reCreateWindTextures']();}[_0x1e8311(0x230,0x27e)](_0x198731){function _0x23aa2b(_0x47a8ce,_0x3aba4b){return _0xc18867(_0x47a8ce- -0x595,_0x3aba4b);}const {array:_0x34ce25}=_0x198731;let {min:_0x4d3b12,max:_0x339bca}=_0x198731;const _0x2c1a61=new Float32Array(_0x34ce25['length']);_0x4d3b12===undefined&&(console[_0x4d8fa1(0x34e,0x2e0)](_0x23aa2b(-0x1b,0x7)),_0x4d3b12=Math[_0x4d8fa1(0x321,0x2bc)](..._0x34ce25));_0x339bca===undefined&&(console[_0x4d8fa1(0x34e,0x3b1)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x339bca=Math[_0x23aa2b(-0x50,-0x54)](..._0x34ce25));function _0x4d8fa1(_0x222ea6,_0x8643d7){return _0x1e8311(_0x222ea6-0x14a,_0x8643d7);}const _0x3f8a27=Math['max'](Math[_0x4d8fa1(0x336,0x2e9)](_0x4d3b12),Math['abs'](_0x339bca));for(let _0xb02614=0x0;_0xb02614<_0x34ce25[_0x23aa2b(-0x2,-0x1e)];_0xb02614++){const _0x1f8fae=_0x34ce25[_0xb02614]/_0x3f8a27;_0x2c1a61[_0xb02614]=_0x1f8fae;}return _0x2c1a61;}['destroy'](){Object['values'](this[_0x14e4aa(0x17a,0x125)])['forEach'](_0x16469c=>_0x16469c[_0x14e4aa(0x17d,0x146)]()),Object[_0x556a5f(0x2bc,0x2ed)](this['particlesTextures'])['forEach'](_0x21f407=>_0x21f407['destroy']());function _0x14e4aa(_0x2db5e5,_0x2b4385){return _0xc18867(_0x2db5e5- -0x3d7,_0x2b4385);}function _0x556a5f(_0x53677e,_0x108bc9){return _0x1e8311(_0x108bc9-0x70,_0x53677e);}Object['values'](this['primitives'])['forEach'](_0x32ca39=>_0x32ca39[_0x556a5f(0x221,0x29a)]()),this['frameRateMonitor']['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x51ca40,_0x26c760,_0x4207e3,_0x25891b){this[_0x4debc4(-0x16f,-0x1b2)]=_0x51ca40,this['options']=_0x26c760,this[_0x4154ab(0x534,0x527)]=_0x4207e3;function _0x4debc4(_0x1d97a2,_0x1e0cf7){return _0x1e8311(_0x1e0cf7- -0x417,_0x1d97a2);}this['computing']=_0x25891b;(typeof this[_0x4debc4(-0x233,-0x284)]['particlesTextureSize']!=='number'||this['options'][_0x4154ab(0x529,0x50e)]<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options']['particlesTextureSize']=0x100);this[_0x4154ab(0x4d6,0x548)]=this[_0x4154ab(0x4fc,0x504)](),this[_0x4154ab(0x4c4,0x535)]=this['createRenderingTextures']();function _0x4154ab(_0xbb9e40,_0x5e68b4){return _0xc18867(_0x5e68b4-0x48,_0xbb9e40);}this[_0x4debc4(-0x1f9,-0x1c2)]=this['createRenderingFramebuffers'](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x53fbd5={};_0x53fbd5['context']=this['context'],_0x53fbd5[_0x4c6de0(0x3a3,0x357)]=this['context']['drawingBufferWidth'],_0x53fbd5['height']=this['context'][_0x560214(0x471,0x40c)],_0x53fbd5['pixelFormat']=PixelFormat[_0x4c6de0(0x2f9,0x365)];function _0x560214(_0x33a07a,_0x4cca1a){return _0x1e8311(_0x4cca1a-0x18b,_0x33a07a);}_0x53fbd5[_0x4c6de0(0x2ed,0x2e5)]=PixelDatatype['UNSIGNED_BYTE'];const _0x3e5781=_0x53fbd5;function _0x4c6de0(_0x510919,_0x3dc8ba){return _0xc18867(_0x3dc8ba- -0x212,_0x510919);}const _0x17e7c3={};_0x17e7c3[_0x560214(0x463,0x3f0)]=this[_0x560214(0x413,0x3f0)],_0x17e7c3['width']=this['context'][_0x4c6de0(0x2f9,0x351)],_0x17e7c3['height']=this['context']['drawingBufferHeight'],_0x17e7c3['pixelFormat']=PixelFormat[_0x4c6de0(0x3ae,0x3ae)],_0x17e7c3[_0x4c6de0(0x2cd,0x2e5)]=PixelDatatype['UNSIGNED_INT'];const _0x10098a=_0x17e7c3;return{'segmentsColor':new Texture(_0x3e5781),'segmentsDepth':new Texture(_0x10098a)};}['createRenderingFramebuffers'](){const _0x312d2a={};_0x312d2a['context']=this['context'],_0x312d2a['colorTextures']=[this['textures'][_0x5d0b7f(0x38f,0x3fc)]];function _0x5d0b7f(_0xa23f5d,_0x5921e8){return _0x1e8311(_0x5921e8-0x1c2,_0xa23f5d);}return _0x312d2a['depthTexture']=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x312d2a)};}['destoryRenderingFramebuffers'](){function _0x23ae11(_0x14f193,_0x382cd5){return _0xc18867(_0x14f193- -0x62d,_0x382cd5);}Object['values'](this[_0x23ae11(-0xae,-0xea)])['forEach'](_0x543ab7=>{function _0x563170(_0x420306,_0x24c94a){return _0x23ae11(_0x420306-0x308,_0x24c94a);}_0x543ab7[_0x563170(0x22f,0x2b1)]();});}['createColorTableTexture'](){const _0x2a74bb=new Float32Array(this['options']['colors']['flatMap'](_0x508abe=>{function _0x447bfa(_0x5ba729,_0x80a20b){return _0x485d(_0x80a20b- -0xc5,_0x5ba729);}function _0xfe063c(_0x3bba61,_0x332ae8){return _0x485d(_0x332ae8-0x2d1,_0x3bba61);}const _0x14c41f=Color$1[_0xfe063c(0x423,0x474)](_0x508abe);return[_0x14c41f['red'],_0x14c41f['green'],_0x14c41f[_0x447bfa(0x16d,0x13b)],_0x14c41f['alpha']];}));function _0x13c618(_0x2a1ee8,_0x3ca087){return _0x1e8311(_0x2a1ee8- -0xf9,_0x3ca087);}const _0x1572f2={};function _0x5f4d2c(_0x3ebf85,_0x5a9ee0){return _0x1e8311(_0x3ebf85- -0x22,_0x5a9ee0);}return _0x1572f2[_0x13c618(0x13b,0xc0)]=TextureMinificationFilter['LINEAR'],_0x1572f2[_0x5f4d2c(0x1a8,0x1aa)]=TextureMagnificationFilter[_0x5f4d2c(0x211,0x284)],_0x1572f2['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x1572f2['wrapT']=TextureWrap[_0x13c618(0xe2,0xe7)],new Texture({'context':this['context'],'width':this[_0x13c618(0x9a,0x26)]['colors'][_0x5f4d2c(0x247,0x2a8)],'height':0x1,'pixelFormat':PixelFormat[_0x13c618(0x154,0xec)],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x1572f2),'source':{'width':this['options'][_0x13c618(0x100,0x85)]['length'],'height':0x1,'arrayBufferView':_0x2a74bb}});}['createSegmentsGeometry'](){const _0x4494c5=0x4,_0x5acb1e=this['options']['particlesTextureSize'];let _0x4b08b2=[];for(let _0x201f61=0x0;_0x201f61<_0x5acb1e;_0x201f61++){for(let _0x465366=0x0;_0x465366<_0x5acb1e;_0x465366++){for(let _0x3575d2=0x0;_0x3575d2<_0x4494c5;_0x3575d2++){_0x4b08b2['push'](_0x201f61/_0x5acb1e),_0x4b08b2[_0xdd419b(0x35a,0x328)](_0x465366/_0x5acb1e);}}}_0x4b08b2=new Float32Array(_0x4b08b2);const _0x430e82=this[_0xdd419b(0x1ab,0x229)]['particlesTextureSize']**0x2;let _0x122b2f=[];for(let _0x350d77=0x0;_0x350d77<_0x430e82;_0x350d77++){_0x122b2f['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}function _0x3dadde(_0x28bbfd,_0x45a8bc){return _0x1e8311(_0x28bbfd- -0x3b7,_0x45a8bc);}_0x122b2f=new Float32Array(_0x122b2f);let _0x43f817=[];for(let _0x19a605=0x0,_0x22f392=0x0;_0x19a605<_0x430e82;_0x19a605++){_0x43f817['push'](_0x22f392+0x0,_0x22f392+0x1,_0x22f392+0x2,_0x22f392+0x2,_0x22f392+0x1,_0x22f392+0x3),_0x22f392+=_0x4494c5;}_0x43f817=new Uint32Array(_0x43f817);const _0x587e49={};_0x587e49['componentDatatype']=ComponentDatatype['FLOAT'];function _0xdd419b(_0x25bf89,_0x590ed5){return _0xc18867(_0x590ed5- -0x294,_0x25bf89);}_0x587e49['componentsPerAttribute']=0x2,_0x587e49['values']=_0x4b08b2;const _0xcac0cd={};_0xcac0cd['componentDatatype']=ComponentDatatype['FLOAT'],_0xcac0cd['componentsPerAttribute']=0x3,_0xcac0cd[_0xdd419b(0x378,0x313)]=_0x122b2f;const _0x5dcc40=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x587e49),'normal':new GeometryAttribute(_0xcac0cd)}),'indices':_0x43f817});return _0x5dcc40;}['createRawRenderState'](_0x33115c){const _0x5772e7={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x33115c};return Appearance['getDefaultRenderState'](!![],![],_0x5772e7);}['createPrimitives'](){const _0x23b92c={};function _0x2f8e1d(_0xeee16d,_0x49970a){return _0x1e8311(_0xeee16d-0x269,_0x49970a);}_0x23b92c['st']=0x0,_0x23b92c['normal']=0x1;const _0x23ec0a={};_0x23ec0a['enabled']=!![];const _0x188299={};_0x188299['enabled']=!![],_0x188299['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x188299[_0x2f8e1d(0x415,0x3ef)]=WebGLRenderingContext[_0x58c00d(0x141,0xff)],_0x188299[_0x2f8e1d(0x3f6,0x441)]=WebGLRenderingContext[_0x2f8e1d(0x4b0,0x4de)];const _0x1ad8cf={};_0x1ad8cf['viewport']=undefined,_0x1ad8cf['depthTest']=_0x23ec0a,_0x1ad8cf['depthMask']=!![],_0x1ad8cf['blending']=_0x188299;const _0x5756b6=new CustomPrimitive({'commandType':_0x58c00d(0x19e,0x206),'attributeLocations':_0x23b92c,'geometry':this[_0x58c00d(0x1b9,0x1e2)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x2f8e1d(0x3ef,0x36e)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures'][_0x58c00d(0x1a7,0x208)],'postProcessingPosition':()=>this['computing'][_0x58c00d(0xed,0x9e)]['postProcessingPosition'],'particlesSpeed':()=>this[_0x58c00d(0x156,0x16e)][_0x58c00d(0xed,0xb5)][_0x2f8e1d(0x48a,0x4d3)],'frameRateAdjustment':()=>this['computing'][_0x2f8e1d(0x429,0x407)],'colorTable':()=>this[_0x2f8e1d(0x43f,0x4b2)],'domain':()=>{var _0x38a6c9,_0x4e1170;function _0x1d0e8d(_0x673829,_0x58e35c){return _0x58c00d(_0x673829-0x36a,_0x58e35c);}function _0x190bc6(_0x2db29c,_0x4081a5){return _0x2f8e1d(_0x4081a5-0xca,_0x2db29c);}const _0x5097c6=new Cartesian2(((_0x38a6c9=this['options']['domain'])===null||_0x38a6c9===void 0x0?void 0x0:_0x38a6c9[_0x1d0e8d(0x4a8,0x498)])??this['computing']['windData'][_0x1d0e8d(0x45a,0x469)][_0x1d0e8d(0x4a8,0x4e1)],((_0x4e1170=this[_0x190bc6(0x522,0x4c6)]['domain'])===null||_0x4e1170===void 0x0?void 0x0:_0x4e1170[_0x1d0e8d(0x4ec,0x539)])??this['computing']['windData'][_0x1d0e8d(0x45a,0x417)]['max']);return _0x5097c6;},'displayRange':()=>{var _0x1f18c1,_0x3ab843;function _0x28de5d(_0x44b8f6,_0x417192){return _0x58c00d(_0x417192- -0x94,_0x44b8f6);}function _0x2213b0(_0x23edf8,_0x128d01){return _0x58c00d(_0x128d01-0x3ad,_0x23edf8);}const _0x22caa0=new Cartesian2(((_0x1f18c1=this[_0x28de5d(-0xd,0x66)]['displayRange'])===null||_0x1f18c1===void 0x0?void 0x0:_0x1f18c1['min'])??this['computing'][_0x28de5d(0x177,0x132)]['speed']['min'],((_0x3ab843=this['options']['displayRange'])===null||_0x3ab843===void 0x0?void 0x0:_0x3ab843['max'])??this['computing']['windData']['speed']['max']);return _0x22caa0;},'particleHeight':()=>this[_0x58c00d(0xfa,0x107)]['fixedHeight']||0x0,'aspect':()=>this[_0x2f8e1d(0x4ce,0x487)][_0x58c00d(0x1a0,0x1ac)]/this['context'][_0x58c00d(0x1e8,0x1a2)],'pixelSize':()=>this['viewerParameters'][_0x58c00d(0x189,0x143)],'lineWidth':()=>{const _0x103153={};_0x103153['min']=0x1;function _0x24c227(_0x259dc9,_0x263f70){return _0x2f8e1d(_0x263f70- -0x5fd,_0x259dc9);}function _0x495483(_0x5139c8,_0xd7fbfd){return _0x2f8e1d(_0x5139c8-0x4f,_0xd7fbfd);}_0x103153['max']=0x2;const _0x332933=this['options'][_0x24c227(-0x147,-0x166)]||_0x103153;return new Cartesian2(_0x332933[_0x24c227(-0x16c,-0x1bd)],_0x332933['max']);},'lineLength':()=>{const _0xfbd5b1={};function _0x2e3cfd(_0x4b9247,_0x48eab6){return _0x58c00d(_0x4b9247- -0x13f,_0x48eab6);}_0xfbd5b1[_0x2e3cfd(-0x1,-0x53)]=0x14,_0xfbd5b1[_0x2e3cfd(0x43,0x1e)]=0x64;function _0x2da4f9(_0x549c9c,_0x438229){return _0x58c00d(_0x438229- -0x1be,_0x549c9c);}const _0x1cdce8=this['options'][_0x2e3cfd(0x66,-0x4)]||_0xfbd5b1;return new Cartesian2(_0x1cdce8['min'],_0x1cdce8['max']);},'is3D':()=>this[_0x58c00d(0x11c,0x11f)]['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x58c00d(0x1d2,0x232)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x58c00d(0x1bb,0x157)](_0x1ad8cf)}),_0x210fdf={};_0x210fdf[_0x2f8e1d(0x413,0x49c)]=_0x5756b6;function _0x58c00d(_0x379955,_0x2b7c77){return _0x1e8311(_0x379955- -0x99,_0x2b7c77);}return _0x210fdf;}[_0xc18867(0x54d,0x596)](){const _0x204c76=this[_0x1e5468(0xac,0x5e)]();this[_0x6f07cc(0x4f8,0x558)]['segments'][_0x1e5468(0x10,-0x4)]=_0x204c76;function _0x1e5468(_0x522e38,_0x5ad206){return _0xc18867(_0x5ad206- -0x51e,_0x522e38);}const _0x5aaee4={};_0x5aaee4[_0x6f07cc(0x607,0x5bb)]=this['context'],_0x5aaee4['geometry']=_0x204c76,_0x5aaee4['attributeLocations']=this[_0x6f07cc(0x560,0x558)][_0x6f07cc(0x527,0x500)][_0x1e5468(0x42,0x25)],_0x5aaee4['bufferUsage']=BufferUsage['STATIC_DRAW'];function _0x6f07cc(_0x12ddb5,_0x364419){return _0xc18867(_0x364419-0x2c,_0x12ddb5);}const _0x4bd840=VertexArray['fromGeometry'](_0x5aaee4);this[_0x6f07cc(0x4f6,0x558)][_0x1e5468(-0x56,-0x4a)]['commandToExecute']&&(this[_0x6f07cc(0x56b,0x558)][_0x6f07cc(0x49e,0x500)][_0x6f07cc(0x580,0x5b1)]['vertexArray']=_0x4bd840);}['onColorTableChange'](){this[_0x4bb1a9(0x1c1,0x179)][_0x52a0cf(0xe,-0x41)]();function _0x52a0cf(_0x3daafb,_0x1cdfdc){return _0x1e8311(_0x1cdfdc- -0x26b,_0x3daafb);}function _0x4bb1a9(_0x5289a9,_0x24118d){return _0x1e8311(_0x5289a9- -0x15,_0x24118d);}this[_0x52a0cf(-0x3a,-0x95)]=this['createColorTableTexture']();}[_0xc18867(0x4cc,0x464)](_0x210c98){function _0x33675c(_0x30d706,_0x2320f1){return _0x1e8311(_0x2320f1-0x2ca,_0x30d706);}const _0x173839=_0x210c98['colors']&&JSON[_0x33675c(0x4fa,0x523)](_0x210c98['colors'])!==JSON['stringify'](this['options']['colors']);this[_0x582bed(-0x105,-0xe2)]=deepMerge(_0x210c98,this[_0x582bed(-0x5e,-0xe2)]);function _0x582bed(_0xf4fd51,_0x2cdfc3){return _0x1e8311(_0x2cdfc3- -0x275,_0xf4fd51);}_0x173839&&this['onColorTableChange']();}[_0x1e8311(0x22a,0x2a6)](){Object['values'](this['framebuffers'])[_0x490f51(0x1f1,0x16e)](_0x4e66af=>{_0x4e66af['destroy']();});function _0x4c5e1e(_0x2039b7,_0x1f6e0c){return _0x1e8311(_0x1f6e0c- -0x188,_0x2039b7);}function _0x490f51(_0x406842,_0x2a7f7b){return _0x1e8311(_0x406842- -0x95,_0x2a7f7b);}Object['values'](this['primitives'])['forEach'](_0x2d0228=>{_0x2d0228['destroy']();}),this[_0x4c5e1e(0xa1,0x4e)]['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x3d7e6d,_0x13635f,_0x14d922,_0x346e8c,_0x1f901b){function _0x1ba002(_0x20d254,_0x144b3f){return _0xc18867(_0x20d254- -0x20b,_0x144b3f);}this['context']=_0x3d7e6d,this[_0x159aef(0xdd,0x161)]=_0x14d922,this['viewerParameters']=_0x346e8c,this['computing']=new WindParticlesComputing(_0x3d7e6d,_0x13635f,_0x14d922,_0x346e8c,_0x1f901b);function _0x159aef(_0x1aec46,_0x564f66){return _0xc18867(_0x564f66- -0x35c,_0x1aec46);}this[_0x159aef(0x215,0x20f)]=new WindParticlesRendering(_0x3d7e6d,_0x14d922,_0x346e8c,this['computing']),this['clearFramebuffers']();}[_0xc18867(0x56c,0x59b)](){function _0x4d30e5(_0x4c8043,_0x24010b){return _0x1e8311(_0x4c8043- -0x215,_0x24010b);}function _0x15151d(_0x3ac574,_0x4f5fcc){return _0xc18867(_0x3ac574- -0x478,_0x4f5fcc);}const _0x3021c4=[this[_0x4d30e5(-0x26,-0x35)]['primitives'][_0x4d30e5(-0x71,0x12)],this['computing']['primitives'][_0x4d30e5(0x31,-0x13)],this['computing']['primitives']['postProcessingPosition'],this['rendering']['primitives'][_0x15151d(0x5c,0x68)]];return _0x3021c4;}['clearFramebuffers'](){function _0x2181be(_0x55d906,_0x46d2a0){return _0xc18867(_0x46d2a0- -0x656,_0x55d906);}function _0xb0d75a(_0x35966d,_0x58d148){return _0xc18867(_0x58d148- -0x5ae,_0x35966d);}const _0x29f42a=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});Object['keys'](this[_0x2181be(-0xf9,-0xeb)]['framebuffers'])[_0x2181be(-0xac,-0xa6)](_0xf9656b=>{function _0x21c21d(_0x41f2c1,_0x18860b){return _0x2181be(_0x18860b,_0x41f2c1- -0x73);}_0x29f42a['framebuffer']=this['rendering']['framebuffers'][_0xf9656b],_0x29f42a[_0x21c21d(-0x12e,-0xde)](this['context']);});}[_0xc18867(0x576,0x591)](_0x114228){let _0x15c651=![];_0x114228['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x114228['particlesTextureSize']&&(_0x15c651=!![]);function _0x5c73bf(_0x4a734f,_0x3099a5){return _0xc18867(_0x4a734f- -0x526,_0x3099a5);}const _0x5bc93e=deepMerge(_0x114228,this['options']);if(_0x5bc93e[_0x1db0d8(0x31a,0x2ba)]<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x5bc93e,this[_0x1db0d8(0x3cb,0x35f)][_0x5c73bf(-0x5a,-0x83)](_0x114228);function _0x1db0d8(_0x3b53ed,_0x2be1ad){return _0xc18867(_0x2be1ad- -0x20c,_0x3b53ed);}this[_0x1db0d8(0x2de,0x30d)][_0x5c73bf(-0x5a,-0x8a)](_0x114228),_0x15c651&&(this[_0x5c73bf(-0xd,0x8)]['destroyParticlesTextures'](),this['computing'][_0x1db0d8(0x38b,0x30f)](),this['rendering']['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x455619){function _0x1edb13(_0x3b0745,_0x3d646f){return _0x1e8311(_0x3d646f-0xf,_0x3b0745);}this['viewerParameters']=_0x455619,this['computing'][_0x1edb13(0x1cb,0x1c4)]=_0x455619,this['rendering']['viewerParameters']=_0x455619;}['destroy'](){function _0x1b9d8c(_0x1c9c4f,_0x170d21){return _0xc18867(_0x1c9c4f- -0x44a,_0x170d21);}this[_0x1b9d8c(0xcf,0xba)]['destroy']();function _0x380681(_0x520b55,_0x2be7cd){return _0xc18867(_0x2be7cd- -0x69c,_0x520b55);}this[_0x380681(-0x157,-0x131)]['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0xc18867(0x53e,0x50f)]['BaseLayer'],_0x5b5dc8={};_0x5b5dc8['min']=0x1,_0x5b5dc8['max']=0x2;const _0x59b26f={};_0x59b26f['min']=0x14,_0x59b26f[_0xc18867(0x545,0x513)]=0x64;const _0x1b47d3={};_0x1b47d3[_0xc18867(0x4c6,0x4c2)]=0x64,_0x1b47d3[_0xc18867(0x4d5,0x459)]=0x0,_0x1b47d3['lineWidth']=_0x5b5dc8,_0x1b47d3[_0x1e8311(0x23e,0x207)]=_0x59b26f,_0x1b47d3[_0xc18867(0x5a6,0x5d1)]=0x1,_0x1b47d3[_0xc18867(0x535,0x58b)]=0.003,_0x1b47d3[_0xc18867(0x4e4,0x4c9)]=0.001,_0x1b47d3[_0xc18867(0x523,0x570)]=['rgb(206,255,255)'],_0x1b47d3['flipY']=![],_0x1b47d3[_0x1e8311(0x1e9,0x16a)]=!![];const DEF_OPTIONS=_0x1b47d3;class WindLayer extends BaseLayer$1{constructor(_0x281ab8={}){_0x281ab8={...DEF_OPTIONS,..._0x281ab8},super(_0x281ab8);function _0x2ba589(_0x574474,_0x187364){return _0x1e8311(_0x574474-0x21c,_0x187364);}this[_0x2ba589(0x460,0x407)](_0x281ab8,_0x281ab8);}get['layer'](){return this['primitives'];}get['data'](){function _0x16060c(_0x609080,_0x31f35d){return _0x1e8311(_0x31f35d-0x3ae,_0x609080);}function _0x30ddeb(_0x185727,_0x4b5cf7){return _0x1e8311(_0x185727- -0xec,_0x4b5cf7);}return this[_0x30ddeb(0xa7,0x103)][_0x16060c(0x5c7,0x55e)];}set['data'](_0x4103ad){this['options']['data']=_0x4103ad,this['setData'](_0x4103ad);}get[_0x1e8311(0x1f9,0x217)](){function _0xc7f2b7(_0x3aaed4,_0x11d18f){return _0xc18867(_0x11d18f- -0x366,_0x3aaed4);}function _0x43f715(_0x54188d,_0x2f8988){return _0x1e8311(_0x2f8988-0x1a8,_0x54188d);}return this[_0x43f715(0x385,0x33b)][_0x43f715(0x420,0x3a1)];}set['colors'](_0xf01edd){function _0x24ff4d(_0x5ed5b2,_0x4b0019){return _0xc18867(_0x4b0019- -0x34c,_0x5ed5b2);}this['options']['colors']=_0xf01edd;const _0x1c54d0={};_0x1c54d0[_0x24ff4d(0x216,0x1d7)]=_0xf01edd;function _0x38b37f(_0x141cf0,_0x2d7506){return _0xc18867(_0x141cf0- -0x523,_0x2d7506);}this[_0x24ff4d(0x292,0x222)](this['options'],_0x1c54d0);}['_mountedHook'](){}[_0xc18867(0x4e9,0x551)](){this[_0x4dd9ca(0xa7,0xbd)]=this['_map'][_0x4b4cd8(0x64c,0x5d1)],this[_0x4b4cd8(0x66b,0x5fa)]=this['_map'][_0x4dd9ca(0x106,0xe6)];this['options']['data']&&this[_0x4b4cd8(0x543,0x58c)](this[_0x4dd9ca(0x23,0x28)]['data']);if(!this['windData'])return;this['viewerParameters']={'lonRange':new Cesium$1[(_0x4b4cd8(0x52f,0x5ac))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']};function _0x4b4cd8(_0x512afb,_0x29e530){return _0xc18867(_0x29e530-0x7f,_0x512afb);}this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this[_0x4dd9ca(0xa9,0xf4)],this[_0x4dd9ca(0x9c,0x28)],this['viewerParameters'],this['scene']);function _0x4dd9ca(_0x53090c,_0x266823){return _0xc18867(_0x266823- -0x495,_0x53090c);}this['primitives']=this['particleSystem']['getPrimitives'](),this['primitives']['forEach'](_0x5ad618=>{function _0x3dfbe6(_0x4b9a45,_0x10c802){return _0x4b4cd8(_0x4b9a45,_0x10c802- -0x612);}this['scene']['primitives'][_0x3dfbe6(-0x32,-0xab)](_0x5ad618);}),this[_0x4b4cd8(0x608,0x5fa)][_0x4dd9ca(0xc5,0x6d)]=0.01,this[_0x4b4cd8(0x64d,0x5fa)]['changed'][_0x4b4cd8(0x67e,0x603)](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete'][_0x4b4cd8(0x658,0x603)](this[_0x4dd9ca(0xd9,0x114)][_0x4dd9ca(0x93,0x5e)](this)),window['addEventListener'](_0x4dd9ca(-0x54,0x35),this['updateViewerParameters'][_0x4dd9ca(0x95,0x5e)](this));}['_removedHook'](){this[_0x24378d(0x27f,0x25d)][_0x24378d(0x1c4,0x16f)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete'][_0x24378d(0x1ea,0x257)](this[_0x14e2c0(0x336,0x3a7)][_0x24378d(0x1f7,0x1fd)](this));function _0x24378d(_0x151860,_0x5cf7fd){return _0xc18867(_0x151860- -0x2fc,_0x5cf7fd);}function _0x14e2c0(_0x51e725,_0x6b7416){return _0x1e8311(_0x6b7416-0x128,_0x51e725);}window[_0x24378d(0x1ea,0x1e2)](_0x24378d(0x1ce,0x1bf),this['updateViewerParameters']['bind'](this)),this[_0x24378d(0x230,0x234)]&&(this['primitives']['forEach'](_0x510863=>{function _0x519569(_0x227911,_0x1d672e){return _0x24378d(_0x227911-0xfe,_0x1d672e);}this[_0x519569(0x354,0x32c)]['primitives']['remove'](_0x510863);}),delete this['primitives']),this['particleSystem']&&(this[_0x24378d(0x276,0x2e3)][_0x24378d(0x258,0x1ef)](),delete this['particleSystem']);}[_0xc18867(0x50d,0x4f1)](_0x5f2dc7,_0x26b08c){this['windData']=this[_0x45a62b(0x348,0x2ee)](_0x5f2dc7);function _0x45a62b(_0x6713b7,_0x5c23fc){return _0xc18867(_0x5c23fc- -0x26c,_0x6713b7);}if(_0x26b08c){this[_0x45a62b(0x30e,0x28c)](),this[_0x45a62b(0x259,0x27d)]();return;}function _0x4b06da(_0x11211d,_0x265a50){return _0xc18867(_0x265a50- -0x489,_0x11211d);}this['particleSystem']?(this['particleSystem']['computing']['updateWindData'](this[_0x4b06da(0xa3,0x100)]),this['scene']['requestRender']()):this['_addedHook']();}['_setOptionsHook'](_0x2310a3,_0x3bf4ca){function _0xade486(_0x1ff7df,_0xed605d){return _0x1e8311(_0xed605d- -0x2c8,_0x1ff7df);}function _0x4cf8c8(_0xadcbf,_0x505516){return _0xc18867(_0xadcbf- -0x66,_0x505516);}this[_0xade486(-0xc3,-0x80)]&&(this[_0xade486(-0x35,-0x80)][_0x4cf8c8(0x510,0x4e9)](_0x3bf4ca),this['scene'][_0x4cf8c8(0x4e1,0x477)]());}[_0xc18867(0x55a,0x5bf)](_0x4af9d6){var _0x311a1a,_0x4b504b;const _0x3cde17={..._0x4af9d6},_0xafb756=_0x3cde17;!_0xafb756['height']&&_0xafb756['rows']&&(_0xafb756['height']=_0xafb756['rows']);function _0x375e7e(_0x338f3b,_0x3c2059){return _0xc18867(_0x3c2059- -0x1f2,_0x338f3b);}!_0xafb756[_0x19b269(0x182,0x10c)]&&_0xafb756[_0x19b269(0x141,0x12e)]&&(_0xafb756['width']=_0xafb756['cols']);!_0xafb756[_0x19b269(0x15d,0x196)]&&(_0xafb756[_0x375e7e(0x38d,0x352)]={'west':_0xafb756[_0x375e7e(0x31d,0x39b)],'south':_0xafb756['ymin'],'east':_0xafb756['xmax'],'north':_0xafb756[_0x375e7e(0x41c,0x3a7)]});if(!_0xafb756['u']){const _0x432fbb={};_0x432fbb[_0x19b269(0x100,0x90)]=_0x4af9d6['udata'],_0x432fbb['min']=_0x4af9d6['umin'],_0x432fbb[_0x375e7e(0x2d1,0x353)]=_0x4af9d6['umax'],_0xafb756['u']=_0x432fbb;}if(!_0xafb756['v']){const _0x348f96={};_0x348f96[_0x375e7e(0x320,0x2f5)]=_0x4af9d6['vdata'],_0x348f96['min']=_0x4af9d6['vmin'],_0x348f96[_0x375e7e(0x30d,0x353)]=_0x4af9d6['vmax'],_0xafb756['v']=_0x348f96;}if(((_0x311a1a=_0xafb756[_0x375e7e(0x26f,0x2c1)])===null||_0x311a1a===void 0x0?void 0x0:_0x311a1a[_0x375e7e(0x394,0x30f)])===undefined||((_0x4b504b=_0xafb756['speed'])===null||_0x4b504b===void 0x0?void 0x0:_0x4b504b['max'])===undefined||_0xafb756['speed']['array']===undefined){const _0x3e2a53={'array':new Float32Array(_0xafb756['u'][_0x375e7e(0x2aa,0x2f5)][_0x19b269(0x1ac,0x21f)]),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x325b63=0x0;_0x325b63<_0xafb756['u'][_0x19b269(0x100,0x15a)][_0x375e7e(0x37e,0x3a1)];_0x325b63++){_0x3e2a53['array'][_0x325b63]=Math['sqrt'](_0xafb756['u']['array'][_0x325b63]*_0xafb756['u']['array'][_0x325b63]+_0xafb756['v'][_0x19b269(0x100,0xc3)][_0x325b63]*_0xafb756['v']['array'][_0x325b63]),_0x3e2a53[_0x19b269(0x100,0x79)][_0x325b63]!==0x0&&(_0x3e2a53['min']=Math[_0x19b269(0x11a,0x96)](_0x3e2a53['min'],_0x3e2a53['array'][_0x325b63]),_0x3e2a53[_0x375e7e(0x2f3,0x353)]=Math[_0x375e7e(0x3ad,0x353)](_0x3e2a53[_0x19b269(0x15e,0xd6)],_0x3e2a53['array'][_0x325b63]));}_0xafb756[_0x19b269(0xcc,0xb1)]=_0x3e2a53;}function _0x19b269(_0x42b5b8,_0xa3b210){return _0xc18867(_0x42b5b8- -0x3e7,_0xa3b210);}return _0xafb756;}[_0x1e8311(0x27f,0x278)](){var _0x1d6c9a;function _0x8f5c9b(_0x46e122,_0x13e56e){return _0xc18867(_0x13e56e- -0x35f,_0x46e122);}const _0x53d13a=this['scene'],_0x1dc604=_0x53d13a['canvas'],_0x3b7ff7={};_0x3b7ff7['x']=0x0,_0x3b7ff7['y']=0x0;const _0x41f929={};_0x41f929['x']=0x0,_0x41f929['y']=_0x1dc604['clientHeight'];const _0x137318={};_0x137318['x']=_0x1dc604['clientWidth'],_0x137318['y']=0x0;const _0x1e0afe={};_0x1e0afe['x']=_0x1dc604['clientWidth'],_0x1e0afe['y']=_0x1dc604['clientHeight'];const _0x1ca5ae=[_0x3b7ff7,_0x41f929,_0x137318,_0x1e0afe];let _0x58f765=0xb4,_0x4cdf79=-0xb4,_0x420439=0x5a,_0x4b52a4=-0x5a,_0x2361a9=![];for(const _0x6ed682 of _0x1ca5ae){const _0x3def19=_0x53d13a['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x6ed682['x'],_0x6ed682['y']),_0x53d13a[_0x4ee4fc(0x2c3,0x28f)]['ellipsoid']);if(!_0x3def19){_0x2361a9=!![];break;}const _0x223655=_0x53d13a['globe'][_0x4ee4fc(0x2af,0x2f1)]['cartesianToCartographic'](_0x3def19),_0x242593=Cesium$1['Math']['toDegrees'](_0x223655[_0x4ee4fc(0x340,0x300)]),_0x4b44c2=Cesium$1['Math']['toDegrees'](_0x223655['latitude']);_0x58f765=Math['min'](_0x58f765,_0x242593),_0x4cdf79=Math['max'](_0x4cdf79,_0x242593),_0x420439=Math['min'](_0x420439,_0x4b44c2),_0x4b52a4=Math[_0x4ee4fc(0x2fb,0x293)](_0x4b52a4,_0x4b44c2);}if(!_0x2361a9){const _0x13b5c7=new Cesium$1['Cartesian2'](Math[_0x8f5c9b(0x214,0x1e6)](this[_0x4ee4fc(0x313,0x2d7)][_0x4ee4fc(0x27d,0x292)][_0x4ee4fc(0x28f,0x2bb)],_0x58f765),Math['min'](this[_0x4ee4fc(0x28c,0x2d7)][_0x4ee4fc(0x242,0x292)][_0x8f5c9b(0x23c,0x21a)],_0x4cdf79)),_0x19d673=new Cesium$1['Cartesian2'](Math['max'](this[_0x4ee4fc(0x27f,0x2d7)][_0x8f5c9b(0x21f,0x1e5)][_0x8f5c9b(0x1c5,0x178)],_0x420439),Math[_0x8f5c9b(0x21c,0x1a2)](this['windData'][_0x8f5c9b(0x1aa,0x1e5)]['north'],_0x4b52a4)),_0x1e95ed=(_0x13b5c7['y']-_0x13b5c7['x'])*0.05,_0x12a33c=(_0x19d673['y']-_0x19d673['x'])*0.05;_0x13b5c7['x']=Math[_0x8f5c9b(0x1ca,0x1e6)](this['windData'][_0x4ee4fc(0x2c0,0x292)]['west'],_0x13b5c7['x']-_0x1e95ed),_0x13b5c7['y']=Math['min'](this['windData']['bounds'][_0x8f5c9b(0x275,0x21a)],_0x13b5c7['y']+_0x1e95ed),_0x19d673['x']=Math[_0x4ee4fc(0x297,0x293)](this['windData'][_0x4ee4fc(0x2f9,0x292)][_0x4ee4fc(0x1a4,0x225)],_0x19d673['x']-_0x12a33c),_0x19d673['y']=Math['min'](this['windData'][_0x4ee4fc(0x27a,0x292)]['north'],_0x19d673['y']+_0x12a33c),this['viewerParameters']['lonRange']=_0x13b5c7,this['viewerParameters'][_0x4ee4fc(0x23b,0x284)]=_0x19d673;const _0x3151ac=this[_0x4ee4fc(0x2d3,0x2d7)][_0x4ee4fc(0x251,0x292)]['east']-this['windData']['bounds'][_0x8f5c9b(0x293,0x20e)],_0x4cf82a=this['windData']['bounds'][_0x4ee4fc(0x295,0x30d)]-this['windData']['bounds'][_0x8f5c9b(0x1e1,0x178)],_0x38e9a7=(_0x13b5c7['y']-_0x13b5c7['x'])/_0x3151ac,_0x7fcb48=(_0x19d673['y']-_0x19d673['x'])/_0x4cf82a,_0x71d279=Math['min'](_0x38e9a7,_0x7fcb48),_0x18dd5e=0x3e8*_0x71d279;_0x18dd5e>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math[_0x8f5c9b(0x197,0x1a2)](0x3e8,_0x18dd5e)));}function _0x4ee4fc(_0x48b45d,_0x493e56){return _0x1e8311(_0x493e56-0x78,_0x48b45d);}this['viewerParameters']['sceneMode']=this[_0x4ee4fc(0x299,0x2a0)][_0x4ee4fc(0x255,0x2c3)],(_0x1d6c9a=this[_0x4ee4fc(0x320,0x2c0)])===null||_0x1d6c9a===void 0x0||_0x1d6c9a['applyViewerParameters'](this['viewerParameters']);}[_0xc18867(0x50f,0x4c6)](_0xccd333,_0x2accbd){const {bounds:_0x1abf0d,width:_0x39b093,height:_0xb87a7d,u:_0x23d87b,v:_0x2ae917,speed:_0x1d8c0b}=this['windData'],{flipY:_0x56f970}=this['options'];if(_0xccd333<_0x1abf0d['west']||_0xccd333>_0x1abf0d['east']||_0x2accbd<_0x1abf0d[_0x10638e(-0x1f7,-0x1ce)]||_0x2accbd>_0x1abf0d['north'])return null;const _0x5b6bbe=(_0xccd333-_0x1abf0d['west'])/(_0x1abf0d[_0x2c555a(0x528,0x50b)]-_0x1abf0d[_0x10638e(-0x11e,-0x138)])*(_0x39b093-0x1);let _0x249308=(_0x2accbd-_0x1abf0d['south'])/(_0x1abf0d['north']-_0x1abf0d['south'])*(_0xb87a7d-0x1);_0x56f970&&(_0x249308=_0xb87a7d-0x1-_0x249308);const _0x58fb59=Math['floor'](_0x5b6bbe),_0x467af9=Math['floor'](_0x249308),_0x3ab19c=Math[_0x2c555a(0x4d1,0x508)](_0x5b6bbe),_0x13850c=Math[_0x10638e(-0x13a,-0x1a4)](_0x3ab19c+0x1,_0x39b093-0x1),_0xf77092=Math['floor'](_0x249308),_0x1e39a3=Math['min'](_0xf77092+0x1,_0xb87a7d-0x1),_0x72db70=_0x5b6bbe-_0x3ab19c,_0x2e0825=_0x249308-_0xf77092,_0x5ed032=_0x467af9*_0x39b093+_0x58fb59,_0x104502=_0xf77092*_0x39b093+_0x3ab19c,_0x401b8c=_0xf77092*_0x39b093+_0x13850c,_0x1ce518=_0x1e39a3*_0x39b093+_0x3ab19c;function _0x10638e(_0x29dca4,_0x174bcf){return _0x1e8311(_0x174bcf- -0x37b,_0x29dca4);}const _0x4693cc=_0x1e39a3*_0x39b093+_0x13850c,_0x5706de=_0x23d87b[_0x2c555a(0x496,0x40f)][_0x104502],_0x103d98=_0x23d87b[_0x2c555a(0x496,0x505)][_0x401b8c],_0x4c959c=_0x23d87b[_0x2c555a(0x496,0x45c)][_0x1ce518],_0x31a749=_0x23d87b[_0x10638e(-0x15e,-0x1be)][_0x4693cc],_0x56c900=(0x1-_0x72db70)*(0x1-_0x2e0825)*_0x5706de+_0x72db70*(0x1-_0x2e0825)*_0x103d98+(0x1-_0x72db70)*_0x2e0825*_0x4c959c+_0x72db70*_0x2e0825*_0x31a749,_0x2c0b13=_0x2ae917['array'][_0x104502],_0x2cdc9f=_0x2ae917['array'][_0x401b8c],_0x4da26c=_0x2ae917[_0x2c555a(0x496,0x454)][_0x1ce518],_0x45fd8e=_0x2ae917[_0x10638e(-0x21f,-0x1be)][_0x4693cc],_0x2d40ee=(0x1-_0x72db70)*(0x1-_0x2e0825)*_0x2c0b13+_0x72db70*(0x1-_0x2e0825)*_0x2cdc9f+(0x1-_0x72db70)*_0x2e0825*_0x4da26c+_0x72db70*_0x2e0825*_0x45fd8e,_0x1bd505=Math[_0x2c555a(0x511,0x497)](_0x56c900*_0x56c900+_0x2d40ee*_0x2d40ee);function _0x2c555a(_0x1a28b9,_0xab9f2e){return _0xc18867(_0x1a28b9- -0x51,_0xab9f2e);}const _0x4c4017={};_0x4c4017['u']=_0x23d87b['array'][_0x5ed032],_0x4c4017['v']=_0x2ae917[_0x2c555a(0x496,0x4de)][_0x5ed032],_0x4c4017['speed']=_0x1d8c0b['array'][_0x5ed032];const _0x50ece2={};_0x50ece2['u']=_0x56c900,_0x50ece2['v']=_0x2d40ee,_0x50ece2['speed']=_0x1bd505;const _0xfb10f7={};return _0xfb10f7[_0x2c555a(0x4b8,0x454)]=_0x4c4017,_0xfb10f7[_0x2c555a(0x4f8,0x4f6)]=_0x50ece2,_0xfb10f7;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this[_0x297466(0x259,0x20f)]=null,this[_0x472f54(0x18f,0x18a)]=null;function _0x472f54(_0x2a0b50,_0x1c4b26){return _0x1e8311(_0x1c4b26- -0x60,_0x2a0b50);}function _0x297466(_0x5f3834,_0x4afcd3){return _0x1e8311(_0x4afcd3- -0x82,_0x5f3834);}this[_0x472f54(0x1c2,0x14f)]=null,this['age']=null,this['speed']=null;}['destroy'](){for(const _0x4c1551 in this){delete this[_0x4c1551];}}}class CanvasWindField{constructor(_0x13c1b5){this['setOptions'](_0x13c1b5);}get[_0x1e8311(0x190,0x12f)](){return this['_speedRate'];}set[_0xc18867(0x4ba,0x438)](_0x37e2cc){function _0xe41f12(_0xbd5d7a,_0x23084e){return _0x1e8311(_0xbd5d7a- -0x28a,_0x23084e);}this[_0xe41f12(-0xa4,-0x4f)]=(0x64-(_0x37e2cc>0x63?0x63:_0x37e2cc))*0x64;function _0x62fb87(_0x50c36e,_0xaea04c){return _0xc18867(_0x50c36e- -0x54d,_0xaea04c);}this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x62fb87(0x4c,-0x2f)]-this[_0x62fb87(-0x2f,0x0)])/this['_speedRate']];}get['maxAge'](){function _0x1db16a(_0x4b699b,_0x461cd7){return _0xc18867(_0x4b699b- -0x2a4,_0x461cd7);}return this[_0x1db16a(0x241,0x23c)];}set['maxAge'](_0x505183){this['_maxAge']=_0x505183;}['setOptions'](_0x5ea899){function _0x4b33f7(_0x6a1b58,_0x278c95){return _0x1e8311(_0x278c95-0x3a7,_0x6a1b58);}this[_0x4b33f7(0x5b7,0x53a)]=_0x5ea899,this[_0x4b33f7(0x4f6,0x579)]=_0x5ea899[_0x4b33f7(0x59d,0x579)]||0x78,this['speedRate']=_0x5ea899['speedRate']||0x32,this['particles']=[];function _0x2c5818(_0x126b60,_0x3f8a1b){return _0x1e8311(_0x126b60- -0x335,_0x3f8a1b);}const _0x23d217=_0x5ea899[_0x2c5818(-0x19a,-0x1a6)]||0x1000;for(let _0x196464=0x0;_0x196464<_0x23d217;_0x196464++){const _0x43d1c3=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0x43d1c3);}}['setDate'](_0x2f99e2){function _0x187147(_0x3e7992,_0x415329){return _0xc18867(_0x415329- -0x570,_0x3e7992);}this[_0x23e40b(-0x1d3,-0x1e3)]=_0x2f99e2['rows'],this[_0x23e40b(-0x1e4,-0x1cc)]=_0x2f99e2['cols'],this['xmin']=_0x2f99e2[_0x187147(0x9b,0x1d)],this['xmax']=_0x2f99e2[_0x23e40b(-0x199,-0x150)],this['ymin']=_0x2f99e2['ymin'],this[_0x23e40b(-0x173,-0x10a)]=_0x2f99e2['ymax'];function _0x23e40b(_0x5b7d6a,_0x1b17bb){return _0x1e8311(_0x5b7d6a- -0x3e2,_0x1b17bb);}this[_0x187147(-0x7a,-0xbb)]=[];const _0x5528d0=_0x2f99e2[_0x187147(-0x84,0x4)],_0x5125a4=_0x2f99e2[_0x187147(-0x64,-0x50)];let _0x49f97f=![];_0x5528d0['length']===this[_0x23e40b(-0x1d3,-0x178)]&&_0x5528d0[0x0][_0x187147(0x11,0x23)]===this['cols']&&(_0x49f97f=!![]);let _0x5bbe31=0x0,_0x3fddef=null,_0x2031b0=null;for(let _0x61c918=0x0;_0x61c918<this['rows'];_0x61c918++){_0x3fddef=[];for(let _0x353a1e=0x0;_0x353a1e<this['cols'];_0x353a1e++,_0x5bbe31++){_0x49f97f?_0x2031b0=this[_0x23e40b(-0x158,-0x15d)](_0x5528d0[_0x61c918][_0x353a1e],_0x5125a4[_0x61c918][_0x353a1e]):_0x2031b0=this[_0x187147(0xcd,0x44)](_0x5528d0[_0x5bbe31],_0x5125a4[_0x5bbe31]),_0x3fddef[_0x23e40b(-0x150,-0x18e)](_0x2031b0);}this[_0x23e40b(-0x257,-0x2ba)]['push'](_0x3fddef);}!this['options'][_0x23e40b(-0x23f,-0x21a)]&&this['grid']['reverse']();}[_0x1e8311(0x198,0x153)](){delete this[_0x4b9eaf(0x5c6,0x5b1)],delete this['cols'];function _0x4b9eaf(_0x436fc8,_0x3d8122){return _0x1e8311(_0x3d8122-0x3a2,_0x436fc8);}function _0x2c6719(_0x2ccc7c,_0x48ebcd){return _0x1e8311(_0x48ebcd- -0x144,_0x2ccc7c);}delete this[_0x2c6719(0xaa,0x11f)],delete this['xmax'],delete this[_0x4b9eaf(0x580,0x596)],delete this[_0x2c6719(0x145,0x12b)],delete this[_0x4b9eaf(0x4fd,0x52d)],delete this['particles'];}[_0x1e8311(0x1cc,0x194)](_0xb54ae9,_0x56cc2c){function _0x647030(_0x2891f1,_0x38135d){return _0xc18867(_0x2891f1- -0x57f,_0x38135d);}function _0x3b38fe(_0x388343,_0x27e4bd){return _0xc18867(_0x388343- -0x719,_0x27e4bd);}const _0x514122=(_0xb54ae9-this[_0x647030(0xe,-0xc)])/(this[_0x647030(-0xc,0x45)]-this[_0x3b38fe(-0x18c,-0x17d)])*(this[_0x647030(-0x57,-0xd1)]-0x1),_0xedf6d=(this[_0x3b38fe(-0x180,-0xfc)]-_0x56cc2c)/(this[_0x3b38fe(-0x180,-0x12a)]-this['ymin'])*(this[_0x3b38fe(-0x1e0,-0x23c)]-0x1);return[_0x514122,_0xedf6d];}['getUVByXY'](_0x7e7f2f,_0x56e582){if(_0x7e7f2f<0x0||_0x7e7f2f>=this[_0x5eba4d(-0x17c,-0x1d4)]||_0x56e582>=this['rows'])return[0x0,0x0,0x0];const _0x558041=Math[_0x5eba4d(-0x182,-0x1ee)](_0x7e7f2f),_0x43d056=Math['floor'](_0x56e582);if(_0x558041===_0x7e7f2f&&_0x43d056===_0x56e582)return this['grid'][_0x56e582][_0x7e7f2f];const _0x467e2a=_0x558041+0x1;function _0x51d8aa(_0x5c27f5,_0x5b722c){return _0xc18867(_0x5c27f5- -0x447,_0x5b722c);}const _0x4bbb6a=_0x43d056+0x1,_0x26cf06=this[_0x51d8aa(0x103,0x117)](_0x558041,_0x43d056);function _0x5eba4d(_0x4d07ff,_0x23a90c){return _0x1e8311(_0x4d07ff- -0x37a,_0x23a90c);}const _0x1a5b8f=this[_0x5eba4d(-0x15a,-0x13f)](_0x467e2a,_0x43d056),_0x5b5324=this['getUVByXY'](_0x558041,_0x4bbb6a),_0x92346b=this['getUVByXY'](_0x467e2a,_0x4bbb6a);let _0x10b0ee=null;try{_0x10b0ee=this['_bilinearInterpolation'](_0x7e7f2f-_0x558041,_0x56e582-_0x43d056,_0x26cf06,_0x1a5b8f,_0x5b5324,_0x92346b);}catch(_0x5da443){console[_0x51d8aa(0xa9,0xd6)](_0x7e7f2f,_0x56e582);}return _0x10b0ee;}[_0x1e8311(0x187,0x12d)](_0x2dbfc8,_0x31db07,_0x36db23,_0x3096d0,_0x3d2f94,_0x9863b2){const _0x429962=0x1-_0x2dbfc8,_0x329469=0x1-_0x31db07,_0x4009b9=_0x429962*_0x329469,_0x3e328d=_0x2dbfc8*_0x329469,_0xe15366=_0x429962*_0x31db07,_0x37cc2f=_0x2dbfc8*_0x31db07,_0xd443d4=_0x36db23[0x0]*_0x4009b9+_0x3096d0[0x0]*_0x3e328d+_0x3d2f94[0x0]*_0xe15366+_0x9863b2[0x0]*_0x37cc2f,_0x55fb7c=_0x36db23[0x1]*_0x4009b9+_0x3096d0[0x1]*_0x3e328d+_0x3d2f94[0x1]*_0xe15366+_0x9863b2[0x1]*_0x37cc2f;return this['_calcUV'](_0xd443d4,_0x55fb7c);}[_0xc18867(0x5b4,0x537)](_0x59c791,_0x5da917){return[+_0x59c791,+_0x5da917,Math['sqrt'](_0x59c791*_0x59c791+_0x5da917*_0x5da917)];}[_0x1e8311(0x258,0x2a5)](_0x4bb41b,_0x124963){if(!this['isInExtent'](_0x4bb41b,_0x124963))return null;const _0x13e5b7=this['toGridXY'](_0x4bb41b,_0x124963),_0x368ea6=this['getUVByXY'](_0x13e5b7[0x0],_0x13e5b7[0x1]);return _0x368ea6;}['isInExtent'](_0x1ec983,_0x3d6e4e){function _0x49a403(_0xe69085,_0x8869d1){return _0x1e8311(_0x8869d1-0x398,_0xe69085);}function _0xbd7299(_0x17ec68,_0x5cea64){return _0x1e8311(_0x17ec68-0x4f,_0x5cea64);}return _0x1ec983>=this[_0xbd7299(0x2b2,0x2a0)]&&_0x1ec983<=this[_0x49a403(0x59d,0x5e1)]&&_0x3d6e4e>=this[_0xbd7299(0x243,0x1de)]&&_0x3d6e4e<=this[_0x49a403(0x680,0x607)]?!![]:![];}[_0xc18867(0x4f9,0x4ad)](){const _0x4541a2=fRandomByfloat(this[_0x1f1b13(0x59a,0x5f7)],this['xmax']);function _0x1f1b13(_0x5c2817,_0x908562){return _0x1e8311(_0x5c2817-0x337,_0x908562);}const _0x5c14af=fRandomByfloat(this['ymin'],this['ymax']),_0x35434c={};function _0x27d701(_0xac0e9d,_0xd86557){return _0xc18867(_0xac0e9d- -0x722,_0xd86557);}return _0x35434c['lat']=_0x5c14af,_0x35434c[_0x27d701(-0x20b,-0x26d)]=_0x4541a2,_0x35434c;}['getParticles'](){let _0x949188,_0x462a76,_0x131cb3;for(let _0x2df101=0x0,_0xfae3d8=this[_0x4780bd(-0xa5,-0xc3)][_0x4780bd(-0xa8,-0x5f)];_0x2df101<_0xfae3d8;_0x2df101++){let _0x13334a=this['particles'][_0x2df101];_0x13334a['age']<=0x0&&(_0x13334a=this[_0x4780bd(-0xd3,-0xb8)](_0x13334a));if(_0x13334a[_0x4780bd(-0x5b,-0x3a)]>0x0){const _0xdcf8f6=_0x13334a['tlng'],_0x181538=_0x13334a[_0x4780bd(-0xa9,-0x119)];_0x131cb3=this[_0x4780bd(-0x1e,-0x70)](_0xdcf8f6,_0x181538),_0x131cb3?(_0x949188=_0xdcf8f6+this[_0x20c145(0x3bb,0x35b)][0x0]*_0x131cb3[0x0],_0x462a76=_0x181538+this['_calc_speedRate'][0x1]*_0x131cb3[0x1],_0x13334a[_0x20c145(0x3e0,0x3aa)]=_0xdcf8f6,_0x13334a['lat']=_0x181538,_0x13334a[_0x4780bd(-0x15a,-0xde)]=_0x949188,_0x13334a['tlat']=_0x462a76,_0x13334a[_0x20c145(0x37c,0x3e8)]=_0x131cb3[0x2],_0x13334a['age']--):_0x13334a[_0x20c145(0x481,0x459)]=0x0;}}function _0x4780bd(_0x186352,_0x3f8ccc){return _0xc18867(_0x3f8ccc- -0x5f2,_0x186352);}function _0x20c145(_0x4b40e2,_0x5b57ec){return _0x1e8311(_0x4b40e2-0x1f3,_0x5b57ec);}return this['particles'];}[_0xc18867(0x53a,0x539)](_0x4abc84){let _0x28b4d9,_0x59ab8c;for(let _0xc5ce3f=0x0;_0xc5ce3f<0x1e;_0xc5ce3f++){_0x28b4d9=this['getRandomLatLng'](),_0x59ab8c=this['getUVByPoint'](_0x28b4d9['lng'],_0x28b4d9['lat']);if(_0x59ab8c&&_0x59ab8c[0x2]>0x0)break;}if(!_0x59ab8c)return _0x4abc84;const _0x43124b=_0x28b4d9[_0x279b35(0x2a8,0x270)]+this['_calc_speedRate'][0x0]*_0x59ab8c[0x0],_0xb00a44=_0x28b4d9['lat']+this['_calc_speedRate'][0x1]*_0x59ab8c[0x1];_0x4abc84[_0x1e2534(0x27b,0x2f2)]=_0x28b4d9['lng'],_0x4abc84['lat']=_0x28b4d9['lat'],_0x4abc84['tlng']=_0x43124b,_0x4abc84['tlat']=_0xb00a44,_0x4abc84[_0x1e2534(0x355,0x393)]=Math['round'](0xa+Math['random']()*this[_0x1e2534(0x2e4,0x2d7)]);function _0x279b35(_0x460423,_0x29f7f3){return _0xc18867(_0x29f7f3- -0x2a7,_0x460423);}_0x4abc84[_0x279b35(0x253,0x20c)]=_0x59ab8c[0x2];function _0x1e2534(_0x5619bd,_0x32b007){return _0xc18867(_0x32b007- -0x225,_0x5619bd);}return _0x4abc84;}[_0x1e8311(0x22a,0x1a2)](){for(const _0x16d0c5 in this){delete this[_0x16d0c5];}}}function fRandomByfloat(_0xbbd871,_0x3afb2e){return _0xbbd871+Math['random']()*(_0x3afb2e-_0xbbd871);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x406529={}){function _0x31fe1c(_0x2a6ac7,_0x17d119){return _0x1e8311(_0x2a6ac7-0x21d,_0x17d119);}super(_0x406529),this[_0x31fe1c(0x461,0x3ea)](_0x406529),this[_0x31fe1c(0x3a9,0x3dc)]=null;function _0x5eea46(_0x4facf7,_0x2deaef){return _0x1e8311(_0x4facf7- -0x332,_0x2deaef);}_0x406529['colors']&&_0x406529[_0x5eea46(-0x19d,-0x1ad)]&&(this[_0x5eea46(-0xd5,-0x159)]=new mars3d__namespace['ColorRamp'](_0x406529));}['_setOptionsHook'](_0x55ae1c,_0x8c64cf){this[_0x23ed4f(0x49b,0x4e8)]=0x3e8/(_0x55ae1c['frameRate']||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![];function _0x59b82a(_0x670e62,_0x3d3e7e){return _0x1e8311(_0x670e62- -0x22f,_0x3d3e7e);}function _0x23ed4f(_0x5b8d1a,_0x2f3171){return _0xc18867(_0x5b8d1a- -0xf5,_0x2f3171);}this['color']=_0x55ae1c[_0x59b82a(-0xa5,-0x113)]||_0x23ed4f(0x44b,0x4ad),this['lineWidth']=_0x55ae1c[_0x23ed4f(0x463,0x3ee)]||0x1,this['fixedHeight']=_0x55ae1c['fixedHeight']??0x0,this['flipY']=_0x55ae1c[_0x59b82a(-0x8c,-0x57)]??![],this['windField']&&this[_0x23ed4f(0x44a,0x42e)]['setOptions'](_0x55ae1c);}get['layer'](){return this['canvas'];}get['canvasWidth'](){return this['_map']['scene']['canvas']['clientWidth'];}get['canvasHeight'](){function _0x1e82ed(_0x227e7e,_0x388492){return _0x1e8311(_0x388492- -0x28c,_0x227e7e);}function _0x2d2c66(_0x43c1f3,_0x476b50){return _0xc18867(_0x476b50- -0x41c,_0x43c1f3);}return this[_0x1e82ed(-0xd3,-0x50)]['scene'][_0x1e82ed(-0xa2,-0x100)]['clientHeight'];}get['pointerEvents'](){function _0x57009c(_0xbe5e6e,_0x2652e8){return _0xc18867(_0xbe5e6e- -0x70d,_0x2652e8);}return this[_0x57009c(-0x1f5,-0x245)];}set[_0x1e8311(0x1c2,0x20e)](_0x57d6da){function _0x4b3720(_0x5be6ec,_0x55b4c2){return _0xc18867(_0x5be6ec- -0x70e,_0x55b4c2);}this['_pointerEvents']=_0x57d6da;if(!this[_0x5ad94d(0x447,0x490)])return;function _0x5ad94d(_0x1929a7,_0x5821ba){return _0x1e8311(_0x5821ba-0x304,_0x1929a7);}_0x57d6da?this['canvas'][_0x5ad94d(0x5e2,0x586)]['pointer-events']='all':this['canvas'][_0x5ad94d(0x599,0x586)][_0x5ad94d(0x4eb,0x51c)]='none';}get['particlesNumber'](){function _0x5b8f5c(_0x4f4687,_0x31e323){return _0xc18867(_0x31e323- -0x28e,_0x4f4687);}return this[_0x5b8f5c(0x296,0x22f)]['particlesNumber'];}set['particlesNumber'](_0x309f30){this['options']['particlesNumber']=_0x309f30,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x17d08e(_0x38de15,_0x2be7ca){return _0x1e8311(_0x2be7ca-0x1d3,_0x38de15);}return this[_0x17d08e(0x2e8,0x366)]['speedRate'];}set['speedRate'](_0xbb704e){this['options']['speedRate']=_0xbb704e,this['windField']&&(this['windField']['speedRate']=_0xbb704e);}get[_0x1e8311(0x1d2,0x203)](){return this['options']['maxAge'];}set['maxAge'](_0x59bade){this[_0x5e5065(-0x9a,-0xe9)][_0x5e5065(-0xd9,-0xaa)]=_0x59bade;function _0x5e5065(_0x277e94,_0x379e65){return _0x1e8311(_0x379e65- -0x27c,_0x277e94);}function _0x2eeec5(_0x23715b,_0x28d616){return _0x1e8311(_0x28d616- -0x57,_0x23715b);}this['windField']&&(this[_0x5e5065(-0xe3,-0x67)][_0x5e5065(-0xd1,-0xaa)]=_0x59bade);}get['data'](){return this['windData'];}set['data'](_0x2f0e19){function _0x2d8833(_0x21411c,_0x4ae6d1){return _0xc18867(_0x4ae6d1- -0x5df,_0x21411c);}this[_0x2d8833(-0x12e,-0xd2)](_0x2f0e19);}get[_0xc18867(0x531,0x522)](){let _0x181f60=this['windData'][_0x5929d3(0xd4,0xc6)],_0x3f0dff=this[_0x5929d3(0x5f,0xc2)][_0x5929d3(0x91,0xac)],_0xfbbdb=this[_0x5a3e46(0x6c,0x0)]['ymin'],_0x8008b9=this[_0x5a3e46(0x6c,0x4d)]['ymax'];_0x3f0dff>=0x167&&_0x181f60===0x0&&(_0x181f60=-0xb4,_0x3f0dff=0xb4);_0x181f60=Math[_0x5a3e46(0x28,0x5e)](_0x181f60,-0xb4),_0x3f0dff=Math[_0x5a3e46(-0x1c,0x43)](_0x3f0dff,0xb4),_0xfbbdb=Math['max'](_0xfbbdb,-0x5a);function _0x5a3e46(_0x2405b4,_0x25e338){return _0xc18867(_0x2405b4- -0x51d,_0x25e338);}_0x8008b9=Math['min'](_0x8008b9,0x5a);function _0x5929d3(_0x5b2831,_0xb01864){return _0x1e8311(_0xb01864- -0x19d,_0x5b2831);}return Cesium['Rectangle'][_0x5a3e46(-0x13,-0x3c)](_0x181f60,_0xfbbdb,_0x3f0dff,_0x8008b9);}['_showHook'](_0x4f86b7){function _0x430e4c(_0x5e8f3f,_0x5b0daa){return _0x1e8311(_0x5b0daa- -0x374,_0x5e8f3f);}function _0x26cb3f(_0x5bd618,_0x16dce2){return _0xc18867(_0x5bd618- -0x3c3,_0x16dce2);}_0x4f86b7?this[_0x26cb3f(0x126,0xf1)]():(this['windData']&&(this['options']['data']=this[_0x430e4c(-0xbf,-0x115)]),this['_removedHook']());}[_0x1e8311(0x280,0x2d1)](){function _0x23925c(_0x534322,_0x48333e){return _0x1e8311(_0x534322- -0x396,_0x48333e);}function _0x4e7a6d(_0x40ddc4,_0x46ff53){return _0xc18867(_0x46ff53- -0x31,_0x40ddc4);}this['options'][_0x4e7a6d(0x497,0x4ec)]?this[_0x23925c(-0x161,-0x12c)]():this[_0x4e7a6d(0x585,0x50e)]=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this['_createCanvas']();const _0x5167f7={};_0x5167f7['willReadFrequently']=!![];function _0x54d58a(_0x2a6db5,_0x289ebb){return _0x1e8311(_0x289ebb- -0x3e2,_0x2a6db5);}this['canvasContext']=this['canvas']['getContext']('2d',_0x5167f7),this[_0x54d58a(-0x1e2,-0x249)]();function _0x3b7b4e(_0x6723d4,_0x2dbe2d){return _0x1e8311(_0x6723d4- -0x2a1,_0x2dbe2d);}this[_0x54d58a(-0x285,-0x24f)]['data']&&this['setData'](this['options']['data']);}['_removedHook'](){function _0xa8dac7(_0x805106,_0x33c22e){return _0xc18867(_0x33c22e- -0x342,_0x805106);}this[_0xa8dac7(0x151,0x180)](),this['unbindEvent'](),this['canvas']&&(this['_map']['container']['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x5f4b19=mars3d__namespace['DomUtil']['create']('canvas','mars3d-canvasWind',this['_map']['container']);function _0x5b35a2(_0x237fd4,_0x5e64c1){return _0x1e8311(_0x5e64c1-0x196,_0x237fd4);}_0x5f4b19['style'][_0x26a61c(0x383,0x3e2)]='absolute';function _0x26a61c(_0x428219,_0x5c8998){return _0xc18867(_0x5c8998- -0xdc,_0x428219);}return _0x5f4b19['style'][_0x26a61c(0x439,0x422)]='0px',_0x5f4b19['style']['left']=_0x5b35a2(0x3ad,0x374),_0x5f4b19['style'][_0x26a61c(0x422,0x48d)]=this['_map'][_0x5b35a2(0x34c,0x3be)]['canvas']['clientWidth']+'px',_0x5f4b19['style']['height']=this[_0x26a61c(0x4f6,0x48a)][_0x5b35a2(0x3a3,0x3be)][_0x5b35a2(0x299,0x322)][_0x5b35a2(0x312,0x381)]+'px',_0x5f4b19[_0x26a61c(0x4c2,0x4d0)][_0x5b35a2(0x306,0x358)]=this['_pointerEvents']?'auto':'none',_0x5f4b19['style']['zIndex']=this[_0x5b35a2(0x2c2,0x329)]['zIndex']??0x9,_0x5f4b19['width']=this[_0x5b35a2(0x417,0x3d2)][_0x26a61c(0x4b8,0x476)]['canvas'][_0x26a61c(0x49e,0x432)],_0x5f4b19['height']=this[_0x26a61c(0x409,0x48a)]['scene']['canvas']['clientHeight'],_0x5f4b19;}[_0xc18867(0x4ca,0x46a)](){function _0x330caa(_0x1ed090,_0x5b094d){return _0xc18867(_0x5b094d- -0x4fa,_0x1ed090);}function _0x442d96(_0x3f689a,_0x10498b){return _0x1e8311(_0x3f689a-0x1e5,_0x10498b);}this['canvas']&&(this['canvas'][_0x330caa(0x6e,0xb2)][_0x330caa(0x61,0x6f)]=this['_map']['scene'][_0x442d96(0x371,0x387)][_0x330caa(-0x52,0x14)]+'px',this[_0x330caa(-0x5,-0x44)]['style']['height']=this[_0x442d96(0x421,0x415)]['scene']['canvas']['clientHeight']+'px',this['canvas'][_0x442d96(0x424,0x45f)]=this[_0x330caa(0xd5,0x6c)][_0x330caa(-0xa,0x58)]['canvas'][_0x442d96(0x3c9,0x3f2)],this[_0x442d96(0x371,0x3e1)]['height']=this['_map'][_0x442d96(0x40d,0x449)][_0x330caa(-0x68,-0x44)][_0x330caa(0xa1,0x1b)]);}[_0x1e8311(0x199,0x154)](){const _0x3f8dcb=this;function _0x137131(_0x181fed,_0x4ef6a4){return _0x1e8311(_0x4ef6a4-0x1e1,_0x181fed);}let _0x2cbe90=Date[_0x1544e9(-0x1c0,-0x138)]();(function _0xd0d3bf(){if(_0x3f8dcb[_0x4225da(-0xf0,-0xa6)])return;function _0x4225da(_0x5cf887,_0x478727){return _0x1544e9(_0x5cf887,_0x478727-0x16);}_0x3f8dcb['_animateFrame']=window[_0x4225da(-0xe9,-0x90)](_0xd0d3bf);function _0x4992ac(_0x356a63,_0x433b0a){return _0x1544e9(_0x356a63,_0x433b0a-0x401);}if(_0x3f8dcb[_0x4225da(-0x129,-0xdf)]&&_0x3f8dcb[_0x4225da(-0xea,-0x107)]){const _0x18c0f7=Date['now'](),_0x242147=_0x18c0f7-_0x2cbe90;_0x242147>_0x3f8dcb[_0x4225da(-0x36,-0xb6)]&&(_0x2cbe90=_0x18c0f7-_0x242147%_0x3f8dcb[_0x4225da(-0xd5,-0xb6)],_0x3f8dcb['update']());}}());function _0x1544e9(_0x2e4b4c,_0x11f0c0){return _0xc18867(_0x11f0c0- -0x65c,_0x2e4b4c);}window[_0x137131(0x45d,0x43b)]('resize',this['resize'][_0x1544e9(-0x1bb,-0x169)](this),![]),this[_0x1544e9(-0xf4,-0x101)]=![],this[_0x137131(0x3f3,0x468)]=![],this['options'][_0x137131(0x435,0x3c3)]&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x137131(0x414,0x410)]['mouseUp'],this['_onMouseUpEvent'],this));}[_0xc18867(0x51c,0x591)](){function _0x26d6f8(_0x400678,_0x518aa4){return _0x1e8311(_0x400678- -0x9b,_0x518aa4);}window[_0x14b9b9(0x19f,0x186)](this[_0x26d6f8(0x1f9,0x209)]),delete this[_0x14b9b9(0x1f5,0x21b)];function _0x14b9b9(_0x31e418,_0x1416e1){return _0x1e8311(_0x1416e1- -0x79,_0x31e418);}window[_0x26d6f8(0x121,0x137)]('resize',this['resize']),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x26d6f8(0x194,0x1b0)]['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x14b9b9(0x224,0x1e8)](mars3d__namespace['EventType']['mouseUp'],this[_0x14b9b9(0x18c,0x13f)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x26d6f8(0x1cf,0x248)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x2d3109){clearTimeout(this[_0x5cd8ac(-0x20b,-0x240)]);if(!this['show']||!this[_0x5cd8ac(-0x2cf,-0x253)])return;function _0x536fd2(_0x504ed9,_0x1d4ae2){return _0x1e8311(_0x1d4ae2- -0xf0,_0x504ed9);}function _0x5cd8ac(_0x33bed2,_0x4b2f5e){return _0xc18867(_0x4b2f5e- -0x709,_0x33bed2);}this['canvas']['style'][_0x5cd8ac(-0x2a5,-0x228)]='hidden',this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;this['redraw'](),this['canvas']['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x152e1e){this['mouse_down']=!![],this['_map'][_0x4d27d1(0x18c,0x12b)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x4d27d1(_0x2e8bd7,_0x239c0d){return _0x1e8311(_0x2e8bd7- -0xd5,_0x239c0d);}this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x4031b0){function _0x5c004e(_0x17671e,_0x1af013){return _0xc18867(_0x1af013- -0x57c,_0x17671e);}if(!this[_0x2e58ca(-0x59,-0xb6)]||!this['canvas'])return;function _0x2e58ca(_0x2c2a69,_0x4b4e4e){return _0x1e8311(_0x4b4e4e- -0x2f3,_0x2c2a69);}this[_0x2e58ca(-0xcd,-0xc2)]&&(this['canvas']['style']['visibility']=_0x2e58ca(-0x18d,-0x141),this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x18e546){if(!this['show']||!this['canvas'])return;this[_0x288edd(0x57e,0x5e7)][_0x114c9d(0x4cf,0x51b)](mars3d__namespace[_0x114c9d(0x521,0x4e9)]['mouseMove'],this[_0x288edd(0x5ff,0x5dd)],this);this[_0x114c9d(0x56b,0x4eb)]&&this['mouse_move']&&this[_0x114c9d(0x4fd,0x48f)]();this['canvas']['style']['visibility']=_0x114c9d(0x585,0x52c),this[_0x288edd(0x5f0,0x5dc)]=![];function _0x114c9d(_0x213e7,_0x107413){return _0x1e8311(_0x107413-0x2ba,_0x213e7);}function _0x288edd(_0x35cf91,_0x57c16c){return _0xc18867(_0x57c16c-0x81,_0x35cf91);}this['mouse_move']=![];}['setData'](_0x3a35dc){this['clear'](),this['windData']=_0x3a35dc;function _0x565fe2(_0x4468e3,_0xdba013){return _0xc18867(_0xdba013- -0x27a,_0x4468e3);}this[_0x565fe2(0x29b,0x2c5)]['setDate'](_0x3a35dc),this['redraw']();}[_0x1e8311(0x1d5,0x235)](){if(!this['show'])return;function _0x59cf99(_0x4963a0,_0x173ce9){return _0x1e8311(_0x4963a0-0x6b,_0x173ce9);}this[_0x59cf99(0x280,0x22c)]['setOptions'](this['options']),this['update']();}['update'](){if(this['_updateIng'])return;this[_0x535dff(-0x6f,-0x85)]=!![];function _0x535dff(_0x47e3d5,_0xa61c67){return _0x1e8311(_0xa61c67- -0x297,_0x47e3d5);}function _0x18a677(_0xd993df,_0x2fedbb){return _0xc18867(_0x2fedbb- -0x2f,_0xd993df);}if(this['worker'])this['windField']['update']();else{const _0x4ef773=this[_0x18a677(0x4ad,0x510)]['getParticles']();this['_drawLines'](_0x4ef773);}this['_updateIng']=![];}['_drawLines'](_0xc1f3b3){this[_0x33b883(-0x17,-0x7)]=_0xc1f3b3,this['canvasContext']['globalCompositeOperation']=_0x50b7c6(-0x227,-0x1f3);function _0x33b883(_0x522c92,_0x2a3624){return _0xc18867(_0x522c92- -0x5c4,_0x2a3624);}this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']=_0x50b7c6(-0x26a,-0x232),this['canvasContext'][_0x50b7c6(-0x1c7,-0x18b)]=0.9;const _0x8609e9=this['_map']['scene']['mode']!==Cesium['SceneMode'][_0x33b883(-0x10b,-0xca)],_0x3682cf=this[_0x50b7c6(-0x210,-0x24b)]*0.25;function _0x50b7c6(_0x2388e1,_0x4cc199){return _0x1e8311(_0x4cc199- -0x3f9,_0x2388e1);}if(this['_colorRamp'])for(let _0x1c796c=0x0,_0x5d4663=_0xc1f3b3[_0x50b7c6(-0x1e6,-0x190)];_0x1c796c<_0x5d4663;_0x1c796c++){const _0xf4167e=_0xc1f3b3[_0x1c796c],_0x22ad38=this['_tomap'](_0xf4167e,_0xf4167e['lng'],_0xf4167e['lat'],_0xf4167e['alt']),_0x57f8e5=this[_0x50b7c6(-0x288,-0x253)](_0xf4167e,_0xf4167e['tlng'],_0xf4167e[_0x50b7c6(-0x229,-0x24a)],_0xf4167e[_0x33b883(-0xfc,-0x17c)]);if(!_0x22ad38||!_0x57f8e5)continue;if(_0x8609e9&&Math[_0x33b883(-0xae,-0xe8)](_0x22ad38[0x0]-_0x57f8e5[0x0])>=_0x3682cf)continue;this[_0x33b883(-0xf5,-0xc0)][_0x33b883(-0x100,-0xc7)](),this['canvasContext'][_0x33b883(-0x6c,-0xbd)]=this['lineWidth'],this[_0x33b883(-0xf5,-0x151)]['strokeStyle']=this[_0x33b883(-0x3d,-0xb1)][_0x50b7c6(-0x1fd,-0x1d3)](_0xf4167e[_0x33b883(-0x111,-0xec)]),this[_0x33b883(-0xf5,-0x127)]['moveTo'](_0x22ad38[0x0],_0x22ad38[0x1]),this['canvasContext'][_0x50b7c6(-0x1a0,-0x218)](_0x57f8e5[0x0],_0x57f8e5[0x1]),this[_0x50b7c6(-0x2b8,-0x254)]['stroke']();}else{this[_0x50b7c6(-0x25a,-0x254)][_0x33b883(-0x100,-0x120)](),this[_0x50b7c6(-0x23b,-0x254)][_0x33b883(-0x6c,-0x1b)]=this['lineWidth'],this['canvasContext'][_0x50b7c6(-0x253,-0x204)]=this[_0x50b7c6(-0x2c0,-0x26f)];for(let _0x41ce37=0x0,_0x2761a8=_0xc1f3b3[_0x50b7c6(-0x1ca,-0x190)];_0x41ce37<_0x2761a8;_0x41ce37++){const _0x1d5011=_0xc1f3b3[_0x41ce37],_0x5550d0=this['_tomap'](_0x1d5011,_0x1d5011[_0x33b883(-0xad,-0x68)],_0x1d5011[_0x33b883(-0x9,-0x7e)],_0x1d5011['alt']),_0x5cd5e3=this['_tomap'](_0x1d5011,_0x1d5011[_0x50b7c6(-0x22e,-0x20f)],_0x1d5011['tlat'],_0x1d5011['talt']);if(!_0x5550d0||!_0x5cd5e3)continue;if(_0x8609e9&&Math[_0x33b883(-0xae,-0x57)](_0x5550d0[0x0]-_0x5cd5e3[0x0])>=_0x3682cf)continue;this['canvasContext']['moveTo'](_0x5550d0[0x0],_0x5550d0[0x1]),this['canvasContext']['lineTo'](_0x5cd5e3[0x0],_0x5cd5e3[0x1]);}this['canvasContext'][_0x50b7c6(-0x1b7,-0x1cd)]();}}[_0x1e8311(0x1a6,0x1fd)](_0x358b90,_0x2dd17f,_0x1b8e15,_0x5c80e3){function _0x3615db(_0xf06194,_0x29af0f){return _0x1e8311(_0x29af0f- -0x250,_0xf06194);}const _0x54c084=Cesium['Cartesian3']['fromDegrees'](_0x2dd17f,_0x1b8e15,_0x5c80e3??this['fixedHeight']),_0x3ebeaf=this['_map'][_0x196ac7(0x182,0xfe)];if(_0x3ebeaf[_0x3615db(0x6f,-0x5)]===Cesium['SceneMode'][_0x3615db(-0x43,-0xc1)]){const _0x6d6869=new Cesium[(_0x3615db(-0xb4,-0x3d))](_0x3ebeaf['globe'][_0x196ac7(0x13f,0x14f)],_0x3ebeaf[_0x196ac7(0x132,0x127)][_0x196ac7(0xd4,0xdf)]),_0x240559=_0x6d6869[_0x196ac7(0x190,0x13e)](_0x54c084);if(!_0x240559)return _0x358b90[_0x3615db(0x78,0x3e)]=0x0,null;}function _0x196ac7(_0x9aeb3e,_0x407df5){return _0xc18867(_0x407df5- -0x454,_0x9aeb3e);}const _0x3bf860=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map'][_0x3615db(-0x84,-0x28)],_0x54c084);return _0x3bf860?[_0x3bf860['x'],_0x3bf860['y']]:null;}['clear'](){this['windField']['clear'](),delete this['windData'];}['initWorker'](){this['worker']=new Worker(this[_0x125801(0x4db,0x496)]['worker']);function _0x4ee559(_0x1ca5da,_0x14f443){return _0xc18867(_0x14f443- -0x29c,_0x1ca5da);}this[_0x4ee559(0x2b4,0x281)][_0x4ee559(0x2ad,0x28a)]=_0x57f80f=>{this['_drawLines'](_0x57f80f['data']['particles']);function _0x5d0d70(_0x26c09f,_0x41767f){return _0x125801(_0x41767f-0x6a,_0x26c09f);}this[_0x5d0d70(0x5b6,0x5ed)]=![];};function _0x125801(_0x45b295,_0x18daad){return _0xc18867(_0x45b295-0x1e,_0x18daad);}this[_0x125801(0x55d,0x4d4)]={'init':_0x12c9ea=>{const _0x7d8b0e={};function _0x2761c9(_0x49ff4c,_0x4256d4){return _0x125801(_0x49ff4c- -0xc8,_0x4256d4);}function _0x2c67a5(_0x476c08,_0x4a8a4b){return _0x125801(_0x4a8a4b- -0x438,_0x476c08);}_0x7d8b0e[_0x2761c9(0x491,0x514)]='init',_0x7d8b0e['options']=_0x12c9ea,this[_0x2c67a5(0x11e,0x103)]['postMessage'](_0x7d8b0e);},'setOptions':_0x43c25f=>{function _0x1831a9(_0x492bee,_0x1e290e){return _0x125801(_0x492bee- -0x4,_0x1e290e);}const _0x4c3ad4={};function _0x20a8a4(_0x2e59ba,_0x3b5789){return _0x125801(_0x3b5789- -0x4d6,_0x2e59ba);}_0x4c3ad4[_0x20a8a4(0x7c,0x83)]='setOptions',_0x4c3ad4[_0x20a8a4(0x7b,0x5)]=_0x43c25f,this['worker'][_0x20a8a4(-0x3f,0x43)](_0x4c3ad4);},'setDate':_0x3aa5b5=>{function _0x18b43c(_0x56d911,_0x4dbe8e){return _0x125801(_0x56d911- -0x397,_0x4dbe8e);}const _0x572141={};_0x572141[_0x18b43c(0x1c2,0x14e)]='setDate';function _0x57e198(_0x2c1cd2,_0x2de097){return _0x4ee559(_0x2c1cd2,_0x2de097- -0x95);}_0x572141['data']=_0x3aa5b5,this['worker'][_0x18b43c(0x182,0x196)](_0x572141);},'update':()=>{if(this[_0x48b3e0(0x267,0x22e)])return;this[_0xab2d6(0x4fb,0x4b5)]=!![];function _0x48b3e0(_0x5aaa9e,_0x1fcf6c){return _0x4ee559(_0x1fcf6c,_0x5aaa9e- -0x62);}const _0x1fec7c={};_0x1fec7c[_0x48b3e0(0x23d,0x20f)]=_0x48b3e0(0x22c,0x2ae);function _0xab2d6(_0x36622c,_0x42579d){return _0x125801(_0x42579d- -0xce,_0x36622c);}this[_0xab2d6(0x3ea,0x46d)]['postMessage'](_0x1fec7c);},'clear':()=>{function _0x5bd34e(_0x3dcdeb,_0x285e07){return _0x125801(_0x3dcdeb- -0xa,_0x285e07);}const _0x5811b5={};_0x5811b5['type']='clear',this['worker'][_0x5bd34e(0x50f,0x53b)](_0x5811b5);}},this[_0x125801(0x55d,0x5c9)]['init'](this['options']);}}mars3d__namespace['LayerUtil'][_0xc18867(0x59a,0x5bf)](_0x1e8311(0x256,0x213),CanvasWindLayer),mars3d__namespace['layer'][_0xc18867(0x4af,0x4b5)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0xc18867(0x5b9,0x5c7)]=WindUtil,exports[_0x1e8311(0x27e,0x278)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0xc18867(0x548,0x58a)]=WindLayer,exports['WindUtil']=WindUtil;const _0x2354a8={};_0x2354a8['value']=!![],Object['defineProperty'](exports,'__esModule',_0x2354a8);
14
+ 'use strict';(function(_0x2ffc7f,_0x2ea63a){const _0x4a464f=_0x2ffc7f();function _0xcaea2b(_0x4cbbca,_0x27e290){return _0x5498(_0x4cbbca-0xad,_0x27e290);}function _0x610be5(_0xc63adf,_0x17cb5c){return _0x5498(_0xc63adf-0x347,_0x17cb5c);}while(!![]){try{const _0x2e4b2e=-parseInt(_0x610be5(0x47f,0x4ad))/0x1+-parseInt(_0xcaea2b(0x248,0x21e))/0x2*(parseInt(_0xcaea2b(0x22a,0x263))/0x3)+-parseInt(_0xcaea2b(0x241,0x24d))/0x4+parseInt(_0xcaea2b(0x24c,0x2c5))/0x5*(parseInt(_0x610be5(0x40c,0x454))/0x6)+-parseInt(_0x610be5(0x4ac,0x4eb))/0x7+parseInt(_0x610be5(0x3f1,0x472))/0x8*(-parseInt(_0xcaea2b(0x1ab,0x14b))/0x9)+parseInt(_0xcaea2b(0x19f,0x1e5))/0xa*(parseInt(_0x610be5(0x4e5,0x47e))/0xb);if(_0x2e4b2e===_0x2ea63a)break;else _0x4a464f['push'](_0x4a464f['shift']());}catch(_0x7e449a){_0x4a464f['push'](_0x4a464f['shift']());}}}(_0x34f9,0x80a3a));function _interopNamespace(_0x4216b1){if(_0x4216b1&&_0x4216b1['__esModule'])return _0x4216b1;function _0x286cdc(_0x1069e5,_0x155809){return _0x5498(_0x155809- -0xe6,_0x1069e5);}var _0x51f115=Object[_0x286cdc(-0x32,-0x4e)](null);function _0x57b0b5(_0x3c570b,_0x268b50){return _0x5498(_0x268b50- -0x1f4,_0x3c570b);}return _0x4216b1&&Object[_0x57b0b5(-0xa8,-0xb7)](_0x4216b1)[_0x57b0b5(-0xd4,-0xbe)](function(_0xb2fe1e){function _0x2432eb(_0x49647d,_0x4a6f10){return _0x57b0b5(_0x49647d,_0x4a6f10-0x3d2);}if(_0xb2fe1e!=='default'){var _0x17df0e=Object['getOwnPropertyDescriptor'](_0x4216b1,_0xb2fe1e);Object[_0x2432eb(0x2c7,0x305)](_0x51f115,_0xb2fe1e,_0x17df0e['get']?_0x17df0e:{'enumerable':!![],'get':function(){return _0x4216b1[_0xb2fe1e];}});}}),_0x51f115[_0x286cdc(-0x7c,0x5)]=_0x4216b1,_0x51f115;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x19df7d(0xde,0xbd)];function getU(_0x461e38,_0x439d03){function _0x10cc6e(_0x42896c,_0x2abd1c){return _0x19df7d(_0x2abd1c- -0x15b,_0x42896c);}const _0x573b82=_0x461e38*Math[_0x10cc6e(-0x6e,-0xb4)](Cesium$2['Math']['toRadians'](_0x439d03));return _0x573b82;}function getV(_0x2906df,_0x3d472e){function _0x3c3ede(_0x5b304a,_0xe14b61){return _0x19df7d(_0x5b304a- -0x157,_0xe14b61);}const _0x34cbe8=_0x2906df*Math['sin'](Cesium$2['Math'][_0x3c3ede(-0xa7,-0x31)](_0x3d472e));return _0x34cbe8;}function _0x5498(_0x5f2f7d,_0x88fa89){const _0x34f968=_0x34f9();return _0x5498=function(_0x5498cf,_0x4dd70a){_0x5498cf=_0x5498cf-0x92;let _0x34ead1=_0x34f968[_0x5498cf];return _0x34ead1;},_0x5498(_0x5f2f7d,_0x88fa89);}function getSpeed(_0x37658d,_0x16531f){function _0x6a2473(_0x397428,_0x32e007){return _0x19df7d(_0x32e007- -0xf0,_0x397428);}function _0x3e73c8(_0x4892d3,_0x35cffc){return _0x19df7d(_0x4892d3-0x315,_0x35cffc);}const _0x550e31=Math[_0x6a2473(-0x31,-0x7f)](Math[_0x6a2473(-0xa,-0x87)](_0x37658d,0x2)+Math[_0x6a2473(-0xde,-0x87)](_0x16531f,0x2));return _0x550e31;}function getDirection(_0x1a9bd3,_0x360b62){let _0x564b9e=Cesium$2[_0x727a69(-0x193,-0x139)]['toDegrees'](Math['atan2'](_0x360b62,_0x1a9bd3));function _0x727a69(_0x4bc168,_0x4d1e15){return _0x19df7d(_0x4bc168- -0x25c,_0x4d1e15);}return _0x564b9e+=_0x564b9e<0x0?0x168:0x0,_0x564b9e;}const _0x3462ae={};_0x3462ae['__proto__']=null;function _0x19df7d(_0x2ab9f6,_0x383af3){return _0x5498(_0x2ab9f6- -0x43,_0x383af3);}_0x3462ae['getU']=getU,_0x3462ae[_0x19df7d(0x56,0x82)]=getV,_0x3462ae['getSpeed']=getSpeed,_0x3462ae['getDirection']=getDirection;var WindUtil=_0x3462ae,updatePositionShader=_0x19df7d(0xe9,0xb7),calculateSpeedShader=_0x2e45e5(-0x99,-0x11c),postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a';const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x1e5667={};return _0x1e5667['sources']=[calculateSpeedShader],new ShaderSource$1(_0x1e5667);}static['getUpdatePositionShader'](){const _0x47c1cc={};return _0x47c1cc['sources']=[updatePositionShader],new ShaderSource$1(_0x47c1cc);}static['getSegmentDrawVertexShader'](){const _0x27ec03={};return _0x27ec03['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x27ec03);}static['getSegmentDrawFragmentShader'](){const _0x218cfc={};return _0x218cfc['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x218cfc);}static[_0x19df7d(0xca,0x103)](){const _0xa985fc={};return _0xa985fc['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0xa985fc);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x160162){this['commandType']=_0x160162['commandType'],this['geometry']=_0x160162['geometry'],this['attributeLocations']=_0x160162['attributeLocations'],this['primitiveType']=_0x160162['primitiveType'],this[_0x3833cb(0xa,-0x6b)]=_0x160162['uniformMap']||{},this[_0x47c823(0x4a8,0x462)]=_0x160162[_0x3833cb(0x1d,0xb)],this['fragmentShaderSource']=_0x160162['fragmentShaderSource'],this[_0x47c823(0x4a6,0x509)]=_0x160162[_0x3833cb(0x1b,0x1b)];function _0x3833cb(_0x369b9c,_0x3f39e6){return _0x19df7d(_0x369b9c- -0x72,_0x3f39e6);}this['framebuffer']=_0x160162['framebuffer'],this[_0x47c823(0x488,0x46d)]=_0x160162[_0x3833cb(-0x3,0x24)],this[_0x47c823(0x4d8,0x546)]=_0x160162[_0x3833cb(0x4d,0xb6)]??![],this['preExecute']=_0x160162['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined;function _0x47c823(_0x305d33,_0x166bb3){return _0x2e45e5(_0x166bb3,_0x305d33-0x598);}this[_0x3833cb(0xb,-0x26)]=_0x160162['isDynamic']??(()=>!![]),this['autoClear']&&(this[_0x3833cb(0x69,0xa0)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x10c302){function _0x4deb77(_0x4db1c6,_0x1acf15){return _0x19df7d(_0x1acf15-0xaf,_0x4db1c6);}function _0x4038d5(_0x43e3c6,_0x8bc32d){return _0x19df7d(_0x43e3c6-0x37b,_0x8bc32d);}if(this['commandType']==='Draw'){const _0x43323d={};_0x43323d[_0x4deb77(0x1b6,0x1c2)]=_0x10c302,_0x43323d[_0x4deb77(0x138,0x189)]=this['geometry'],_0x43323d['attributeLocations']=this['attributeLocations'],_0x43323d['bufferUsage']=BufferUsage$1[_0x4deb77(0x23d,0x1ce)];const _0x8a3b0=VertexArray$1['fromGeometry'](_0x43323d),_0x4c2b39={};_0x4c2b39['context']=_0x10c302,_0x4c2b39['vertexShaderSource']=this[_0x4deb77(0x11c,0x13e)],_0x4c2b39['fragmentShaderSource']=this['fragmentShaderSource'],_0x4c2b39[_0x4038d5(0x4c4,0x4ad)]=this[_0x4deb77(0x243,0x1f8)];const _0x37285b=ShaderProgram['fromCache'](_0x4c2b39),_0xb90ba3=RenderState[_0x4038d5(0x41e,0x481)](this[_0x4038d5(0x408,0x44a)]),_0x5ba417={};return _0x5ba417[_0x4deb77(0x1c1,0x16c)]=this,_0x5ba417[_0x4038d5(0x4c3,0x528)]=_0x8a3b0,_0x5ba417['primitiveType']=this['primitiveType'],_0x5ba417[_0x4038d5(0x442,0x4a9)]=Matrix4[_0x4deb77(0x259,0x1da)],_0x5ba417['renderState']=_0xb90ba3,_0x5ba417['shaderProgram']=_0x37285b,_0x5ba417[_0x4deb77(0x250,0x211)]=this['framebuffer'],_0x5ba417['uniformMap']=this['uniformMap'],_0x5ba417[_0x4038d5(0x46b,0x46b)]=Pass$1[_0x4deb77(0x140,0x15c)],new DrawCommand(_0x5ba417);}else{if(this['commandType']===_0x4038d5(0x3e5,0x3e0)){const _0x4d0d10={};return _0x4d0d10['owner']=this,_0x4d0d10['fragmentShaderSource']=this['fragmentShaderSource'],_0x4d0d10[_0x4deb77(0x161,0x12b)]=this['uniformMap'],_0x4d0d10[_0x4038d5(0x3ea,0x415)]=this[_0x4038d5(0x3ea,0x442)],_0x4d0d10['persists']=!![],new ComputeCommand(_0x4d0d10);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0xac1738,_0x25ed73){function _0x5a2b18(_0x35d616,_0x58fd74){return _0x19df7d(_0x35d616-0x23a,_0x58fd74);}this['geometry']=_0x25ed73;function _0x42c446(_0x9a7108,_0x401c3c){return _0x19df7d(_0x9a7108-0x262,_0x401c3c);}defined(this['commandToExecute'])&&(this[_0x42c446(0x330,0x2d5)]['vertexArray']=VertexArray$1[_0x42c446(0x34c,0x345)]({'context':_0xac1738,'geometry':this[_0x42c446(0x33c,0x33b)],'attributeLocations':this[_0x5a2b18(0x383,0x374)],'bufferUsage':BufferUsage$1[_0x42c446(0x381,0x3ee)]}));}['update'](_0x334735){if(!this['isDynamic']())return;if(!this['show']||!defined(_0x334735))return;!defined(this['commandToExecute'])&&(this['commandToExecute']=this[_0x3e3084(0x1b1,0x174)](_0x334735[_0x52e3d0(0x4f5,0x4ca)]));defined(this[_0x3e3084(0x166,0x19c)])&&this[_0x3e3084(0x166,0x127)]();if(!_0x334735['commandList']){console['warn']('frameState.commandList\x20is\x20undefined');return;}function _0x52e3d0(_0x41ff6c,_0x5f2acb){return _0x19df7d(_0x41ff6c-0x3e2,_0x5f2acb);}defined(this[_0x52e3d0(0x4bd,0x523)])&&_0x334735[_0x3e3084(0x1b3,0x157)]['push'](this['clearCommand']);function _0x3e3084(_0x4ac888,_0x649409){return _0x2e45e5(_0x649409,_0x4ac888-0x1e4);}defined(this['commandToExecute'])&&_0x334735[_0x3e3084(0x1b3,0x1f0)]['push'](this[_0x3e3084(0x133,0x15a)]);}['isDestroyed'](){return![];}['destroy'](){if(defined(this['commandToExecute'])){var _0x50b19a;(_0x50b19a=this['commandToExecute'][_0x5cf4d6(0x350,0x352)])===null||_0x50b19a===void 0x0||_0x50b19a[_0x5b5361(-0x1f6,-0x213)](),this['commandToExecute'][_0x5cf4d6(0x369,0x352)]=undefined;}function _0x5cf4d6(_0x48ea9d,_0x2d731a){return _0x19df7d(_0x2d731a-0x1ff,_0x48ea9d);}function _0x5b5361(_0x364098,_0x3470f4){return _0x2e45e5(_0x364098,_0x3470f4- -0xf9);}return destroyObject(this);}}function deepMerge(_0xc06306,_0x237264){function _0x2ae160(_0x1adf40,_0x4920fe){return _0x19df7d(_0x1adf40- -0x1e2,_0x4920fe);}if(!_0xc06306)return _0x237264;if(!_0x237264)return _0xc06306;const _0x5489e5={..._0x237264},_0x3b9ac1=_0x5489e5;for(const _0x5291c1 in _0xc06306){if(Object[_0x2ae160(-0x167,-0x1eb)][_0x2ae160(-0x95,-0x70)]['call'](_0xc06306,_0x5291c1)){const _0x3aef31=_0xc06306[_0x5291c1],_0x1e0fb3=_0x237264[_0x5291c1];if(Array['isArray'](_0x3aef31)){_0x3b9ac1[_0x5291c1]=_0x3aef31['slice']();continue;}if(_0x3aef31&&typeof _0x3aef31==='object'){_0x3b9ac1[_0x5291c1]=deepMerge(_0x3aef31,_0x1e0fb3||{});continue;}_0x3aef31!==undefined&&(_0x3b9ac1[_0x5291c1]=_0x3aef31);}}function _0x11a865(_0x602706,_0x3d392b){return _0x19df7d(_0x3d392b-0x29e,_0x602706);}return _0x3b9ac1;}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(_0x39b0b9,_0x3dc7b1,_0x74f765,_0x129bfd,_0xb6157){function _0x323823(_0x1d6d76,_0x246498){return _0x19df7d(_0x246498- -0x2df,_0x1d6d76);}this['context']=_0x39b0b9,this[_0x323823(-0x25e,-0x24d)]=_0x74f765,this['viewerParameters']=_0x129bfd,this[_0x533731(0x336,0x2d7)]=_0x3dc7b1,this['frameRate']=0x3c,this[_0x533731(0x38d,0x323)]=0x1;function _0x533731(_0x2a14bb,_0xcb63a0){return _0x19df7d(_0xcb63a0-0x23b,_0x2a14bb);}const _0x18f921={};_0x18f921['scene']=_0xb6157,_0x18f921['samplingWindow']=0x1,_0x18f921[_0x323823(-0x218,-0x283)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x18f921),this[_0x533731(0x2bf,0x2f7)](),this['createWindTextures'](),this[_0x533731(0x270,0x2b2)](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x317653=()=>{function _0x38cd1e(_0x5e79e0,_0x4ac2b7){return _0x5498(_0x5e79e0- -0x12d,_0x4ac2b7);}function _0x56c5f7(_0x13db1a,_0x3ae315){return _0x5498(_0x3ae315-0x245,_0x13db1a);}this['frameRateMonitor'][_0x38cd1e(0x1a,-0x7)]>0x14&&(this['frameRate']=this[_0x38cd1e(-0x93,-0xb0)]['lastFramesPerSecond'],this[_0x56c5f7(0x3a2,0x370)]=0x3c/Math[_0x56c5f7(0x32a,0x365)](this[_0x56c5f7(0x2e7,0x2f5)],0x1));};_0x317653();function _0x3c8907(_0x4cf29e,_0x150fc0){return _0x19df7d(_0x150fc0-0x117,_0x4cf29e);}const _0xa1a6ee=setInterval(_0x317653,0x3e8),_0x3adcec=this[_0x3ab426(0xde,0x9f)]['bind'](this);function _0x3ab426(_0x22fa1e,_0x18621a){return _0x2e45e5(_0x22fa1e,_0x18621a-0x1b9);}this[_0x3ab426(0x63,0x9f)]=()=>{clearInterval(_0xa1a6ee),_0x3adcec();};}['createWindTextures'](){const _0x3d6ec7={};function _0x2c602c(_0x16b67d,_0x4fd8b7){return _0x2e45e5(_0x4fd8b7,_0x16b67d-0x28f);}_0x3d6ec7[_0x5f3b2c(0x358,0x34e)]=TextureMinificationFilter$1['LINEAR'],_0x3d6ec7['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];function _0x5f3b2c(_0xb0408d,_0x560a50){return _0x2e45e5(_0x560a50,_0xb0408d-0x3f7);}const _0x59151d={'context':this['context'],'width':this[_0x5f3b2c(0x314,0x31d)][_0x5f3b2c(0x38f,0x407)],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x2c602c(0x1a2,0x1f5)]['flipY']??![],'sampler':new Sampler$1(_0x3d6ec7)};this[_0x2c602c(0x210,0x1fa)]={'U':new Texture$1({..._0x59151d,'source':{'arrayBufferView':new Float32Array(this['windData']['u'][_0x2c602c(0x1c3,0x190)])}}),'V':new Texture$1({..._0x59151d,'source':{'arrayBufferView':new Float32Array(this[_0x2c602c(0x1ac,0x21d)]['v'][_0x2c602c(0x1c3,0x245)])}})};}[_0x2e45e5(-0x110,-0x108)](){function _0x135eeb(_0x270881,_0x25e676){return _0x2e45e5(_0x25e676,_0x270881-0x4b5);}const _0x2ae4c7={};_0x2ae4c7[_0x1f0920(0x170,0x131)]=TextureMinificationFilter$1['NEAREST'];function _0x1f0920(_0x6e8582,_0x516a52){return _0x19df7d(_0x516a52-0x51,_0x6e8582);}_0x2ae4c7[_0x1f0920(0x3e,0xbd)]=TextureMagnificationFilter$1[_0x1f0920(0x1a2,0x121)];const _0x390aac={'context':this['context'],'width':this['options'][_0x135eeb(0x3c1,0x3e2)],'height':this[_0x135eeb(0x3c8,0x40c)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x135eeb(0x3c8,0x407)][_0x1f0920(0x15c,0xdc)]*this['options'][_0x135eeb(0x3c1,0x376)]*0x4)[_0x1f0920(0x113,0x19c)](0x0)},'sampler':new Sampler$1(_0x2ae4c7)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x390aac),'currentParticlesPosition':new Texture$1(_0x390aac),'nextParticlesPosition':new Texture$1(_0x390aac),'postProcessingPosition':new Texture$1(_0x390aac),'particlesSpeed':new Texture$1(_0x390aac)};}[_0x2e45e5(-0x86,-0x59)](){Object['values'](this['particlesTextures'])['forEach'](_0x48418b=>_0x48418b['destroy']());}[_0x19df7d(0x144,0x18f)](){function _0x3a98ce(_0x5682e9,_0x4bed2f){return _0x2e45e5(_0x4bed2f,_0x5682e9-0x1bb);}function _0x172cbf(_0x3f78ac,_0x23a01c){return _0x2e45e5(_0x3f78ac,_0x23a01c-0x2b1);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x3a98ce(0xa6,0x76),'uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x172cbf(0x201,0x1ce)]['v']['min'],this[_0x3a98ce(0xd8,0xfd)]['v'][_0x172cbf(0x282,0x20f)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this[_0x3a98ce(0xd8,0x11a)]['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x1ff51f(_0x3711e5,_0x2f74e8){return _0x3a98ce(_0x2f74e8-0xb1,_0x3711e5);}return(this[_0x1ff51f(0x248,0x20b)]['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData']['width'],this[_0x3a98ce(0xd8,0x79)]['height']),'minimum':()=>new Cartesian2$1(this[_0x3a98ce(0xd8,0xdb)]['bounds'][_0x3a98ce(0xf0,0x179)],this['windData'][_0x3a98ce(0x130,0xca)][_0x172cbf(0x150,0x1a5)]),'maximum':()=>new Cartesian2$1(this['windData'][_0x3a98ce(0x130,0x18d)][_0x172cbf(0xfa,0x182)],this[_0x172cbf(0x153,0x1ce)][_0x172cbf(0x291,0x226)][_0x172cbf(0x17f,0x20a)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x172cbf(0x2d4,0x291)][_0x3a98ce(0x9e,0x8a)],'preExecute':()=>{const _0x5e46ba=this['particlesTextures'][_0x50cf6d(0x5e,0x7e)];this[_0x14f981(0x3bc,0x398)]['previousParticlesPosition']=this['particlesTextures'][_0x50cf6d(-0x24,-0x28)];function _0x14f981(_0x5b60d5,_0x15dfc8){return _0x172cbf(_0x15dfc8,_0x5b60d5-0x12b);}this['particlesTextures']['currentParticlesPosition']=this[_0x14f981(0x3bc,0x3c2)]['postProcessingPosition'];function _0x50cf6d(_0xc9a73f,_0x14ebeb){return _0x3a98ce(_0xc9a73f- -0x13c,_0x14ebeb);}this['particlesTextures']['postProcessingPosition']=_0x5e46ba,this[_0x50cf6d(0x25,-0x61)]['calculateSpeed']['commandToExecute']&&(this['primitives'][_0x14f981(0x2d1,0x300)]['commandToExecute'][_0x14f981(0x2cc,0x291)]=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x3a98ce(0x19b,0x153)]['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x172cbf(0x1c3,0x194)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x172cbf(0x309,0x291)]['nextParticlesPosition'],'preExecute':()=>{function _0x54c784(_0x41325f,_0x144047){return _0x3a98ce(_0x41325f- -0x350,_0x144047);}function _0x3e1c7a(_0x134a89,_0x47d612){return _0x172cbf(_0x47d612,_0x134a89- -0x39f);}this[_0x3e1c7a(-0x148,-0x132)]['updatePosition'][_0x3e1c7a(-0x19f,-0x1e3)]&&(this[_0x54c784(-0x1ef,-0x1e1)]['updatePosition'][_0x54c784(-0x246,-0x256)][_0x3e1c7a(-0x1fe,-0x1a6)]=this[_0x3e1c7a(-0x10e,-0x138)]['nextParticlesPosition']);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x3a98ce(0xa6,0x8d),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x3a98ce(0x9e,0x104)],'lonRange':()=>this[_0x3a98ce(0x15a,0x1be)]['lonRange'],'latRange':()=>this['viewerParameters'][_0x172cbf(0x26c,0x231)],'dataLonRange':()=>new Cartesian2$1(this[_0x3a98ce(0xd8,0x68)]['bounds']['west'],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this[_0x172cbf(0x18c,0x1ce)][_0x172cbf(0x1bf,0x226)]['north']),'randomCoefficient':function(){function _0x683c46(_0x2a51f5,_0x2d385a){return _0x172cbf(_0x2d385a,_0x2a51f5- -0x1b3);}return Math[_0x683c46(0xb6,0x113)]();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this[_0x3a98ce(0xce,0x52)]['dropRateBump'],'useViewerBounds':()=>this['options']['useViewerBounds']},'fragmentShaderSource':ShaderManager[_0x3a98ce(0x106,0xa8)](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x495b2b(_0x25f0ea,_0x4c7ea0){return _0x3a98ce(_0x25f0ea-0xf2,_0x4c7ea0);}function _0x3031aa(_0x1e8fc5,_0x33e343){return _0x3a98ce(_0x1e8fc5- -0xc4,_0x33e343);}this['primitives'][_0x3031aa(0x89,0x91)][_0x495b2b(0x1fc,0x285)]&&(this['primitives']['postProcessingPosition'][_0x3031aa(0x46,0x38)]['outputTexture']=this[_0x495b2b(0x28d,0x27c)][_0x495b2b(0x23f,0x2bf)]);},'isDynamic':()=>this[_0x172cbf(0x175,0x1c4)]['dynamic']})};}['reCreateWindTextures'](){this[_0x47bb8a(0x228,0x1f7)]['U']['destroy'](),this['windTextures']['V'][_0xd6152a(-0x225,-0x1f3)]();function _0xd6152a(_0x21ca33,_0x2d4678){return _0x19df7d(_0x2d4678- -0x258,_0x21ca33);}function _0x47bb8a(_0x25ad1a,_0xe9365b){return _0x19df7d(_0xe9365b-0xf7,_0x25ad1a);}this[_0x47bb8a(0x2a3,0x21b)]();}[_0x2e45e5(0x21,-0x29)](_0x8e2c78){this['windData']=_0x8e2c78;function _0x2be11f(_0xcbff53,_0x450877){return _0x19df7d(_0xcbff53-0x25,_0x450877);}this[_0x2be11f(0x17c,0x117)]();}['updateOptions'](_0x40d7c5){const _0x2db5e3=_0x40d7c5[_0x34ebe0(0x153,0xfc)]!==undefined&&_0x40d7c5['flipY']!==this[_0x3cb1d3(-0x154,-0xdc)]['flipY'];function _0x3cb1d3(_0x5f16b9,_0x26b2c1){return _0x2e45e5(_0x26b2c1,_0x5f16b9- -0x67);}function _0x34ebe0(_0x1e0016,_0x132dd5){return _0x19df7d(_0x132dd5-0x83,_0x1e0016);}this['options']=deepMerge(_0x40d7c5,this['options']),_0x2db5e3&&this['reCreateWindTextures']();}['processWindData'](_0x2b0698){const {array:_0xd2681e}=_0x2b0698;let {min:_0xe12131,max:_0x28d88b}=_0x2b0698;const _0x5bb555=new Float32Array(_0xd2681e['length']);_0xe12131===undefined&&(console[_0x287578(0x328,0x2e7)]('min\x20is\x20undefined,\x20calculate\x20min'),_0xe12131=Math[_0x190a4e(0x60,0x6d)](..._0xd2681e));_0x28d88b===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x28d88b=Math['max'](..._0xd2681e));function _0x190a4e(_0xbbf743,_0x11fba5){return _0x2e45e5(_0x11fba5,_0xbbf743-0x100);}function _0x287578(_0xe9d8ee,_0x4afcb3){return _0x19df7d(_0x4afcb3-0x1b2,_0xe9d8ee);}const _0x1e48c0=Math[_0x287578(0x28d,0x28f)](Math['abs'](_0xe12131),Math[_0x287578(0x2cf,0x2e4)](_0x28d88b));for(let _0x291af8=0x0;_0x291af8<_0xd2681e['length'];_0x291af8++){const _0x433b6b=_0xd2681e[_0x291af8]/_0x1e48c0;_0x5bb555[_0x291af8]=_0x433b6b;}return _0x5bb555;}['destroy'](){Object['values'](this['windTextures'])['forEach'](_0xe4b894=>_0xe4b894[_0x494310(-0x22f,-0x1e5)]()),Object['values'](this[_0x555871(0x1d8,0x214)])[_0x494310(-0x1a1,-0x141)](_0x30727e=>_0x30727e[_0x555871(0xe9,0x11a)]());function _0x555871(_0x80bde,_0x3ba9fc){return _0x19df7d(_0x3ba9fc-0xb5,_0x80bde);}function _0x494310(_0x4c3371,_0x5bcda3){return _0x2e45e5(_0x5bcda3,_0x4c3371- -0x115);}Object['values'](this[_0x494310(-0x16f,-0x111)])[_0x555871(0x1ec,0x1a8)](_0x2b28f2=>_0x2b28f2['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(_0x1724a6,_0x63880c,_0x16eb2c,_0x1fdc30){this[_0x57469d(0x2d8,0x28d)]=_0x1724a6,this['options']=_0x63880c,this['viewerParameters']=_0x16eb2c,this[_0x57469d(0x24f,0x2ab)]=_0x1fdc30;(typeof this[_0xc80390(0xc8,0xdb)][_0x57469d(0x279,0x205)]!=='number'||this['options']['particlesTextureSize']<=0x0)&&(console[_0x57469d(0x211,0x208)](_0xc80390(0x130,0x10e)),this[_0xc80390(0xfe,0xdb)]['particlesTextureSize']=0x100);this['colorTable']=this[_0xc80390(0x104,0x186)]();function _0xc80390(_0x5d39d7,_0x4c5d59){return _0x19df7d(_0x4c5d59-0x49,_0x5d39d7);}this['textures']=this['createRenderingTextures'](),this['framebuffers']=this['createRenderingFramebuffers']();function _0x57469d(_0x4411c7,_0x50fb1e){return _0x19df7d(_0x50fb1e-0x17a,_0x4411c7);}this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x4b5242={};_0x4b5242[_0x542c56(0x506,0x4d2)]=this[_0x542c56(0x506,0x519)],_0x4b5242['width']=this['context'][_0x542c56(0x4d6,0x456)];function _0x1a6b5b(_0x3ecca7,_0x250e2a){return _0x19df7d(_0x250e2a- -0x341,_0x3ecca7);}_0x4b5242['height']=this['context']['drawingBufferHeight'],_0x4b5242[_0x542c56(0x4a5,0x4d5)]=PixelFormat[_0x1a6b5b(-0x20f,-0x26b)],_0x4b5242[_0x542c56(0x451,0x3fb)]=PixelDatatype['UNSIGNED_BYTE'];const _0x5d1eb8=_0x4b5242,_0x4ca0d2={};_0x4ca0d2['context']=this[_0x542c56(0x506,0x4c6)],_0x4ca0d2['width']=this[_0x1a6b5b(-0x1fa,-0x22e)]['drawingBufferWidth'],_0x4ca0d2[_0x1a6b5b(-0x32d,-0x2c3)]=this['context'][_0x542c56(0x47a,0x426)],_0x4ca0d2[_0x542c56(0x4a5,0x4bc)]=PixelFormat['DEPTH_COMPONENT'],_0x4ca0d2['pixelDatatype']=PixelDatatype[_0x1a6b5b(-0x2fa,-0x297)];const _0x165575=_0x4ca0d2;function _0x542c56(_0x478202,_0x19ca33){return _0x2e45e5(_0x19ca33,_0x478202-0x572);}return{'segmentsColor':new Texture(_0x5d1eb8),'segmentsDepth':new Texture(_0x165575)};}[_0x2e45e5(-0x174,-0xf9)](){const _0x5c745d={};_0x5c745d['context']=this['context'],_0x5c745d['colorTextures']=[this[_0x4cab64(-0x4c,-0xe)]['segmentsColor']];function _0x438801(_0x9e015b,_0x30d3e8){return _0x2e45e5(_0x9e015b,_0x30d3e8-0x386);}_0x5c745d['depthTexture']=this[_0x4cab64(-0x4c,-0x7b)][_0x438801(0x37a,0x33b)];function _0x4cab64(_0x678a5e,_0x242e12){return _0x19df7d(_0x678a5e- -0x153,_0x242e12);}return{'segments':new Framebuffer(_0x5c745d)};}['destoryRenderingFramebuffers'](){function _0x5e6630(_0x181117,_0x3339b2){return _0x19df7d(_0x3339b2- -0x339,_0x181117);}Object['values'](this['framebuffers'])[_0x5e6630(-0x2bc,-0x246)](_0x3697de=>{_0x3697de['destroy']();});}[_0x19df7d(0x13d,0x18d)](){const _0x49506a=new Float32Array(this[_0x2eaad6(-0x1a8,-0x214)]['colors'][_0x53017a(-0xba,-0x138)](_0x4e3e4e=>{function _0x3c15ad(_0x54f78e,_0xb67a4f){return _0x2eaad6(_0x54f78e,_0xb67a4f-0x2f6);}const _0x31a78b=Color$1['fromCssColorString'](_0x4e3e4e);return[_0x31a78b['red'],_0x31a78b[_0x3c15ad(0xac,0xfc)],_0x31a78b['blue'],_0x31a78b['alpha']];})),_0x23e674={};_0x23e674[_0x53017a(-0xed,-0x14e)]=TextureMinificationFilter[_0x2eaad6(-0x27c,-0x21a)],_0x23e674['magnificationFilter']=TextureMagnificationFilter[_0x53017a(-0x1f5,-0x1a2)],_0x23e674['wrapS']=TextureWrap[_0x53017a(-0x142,-0x15f)],_0x23e674[_0x2eaad6(-0x17e,-0x1d3)]=TextureWrap['CLAMP_TO_EDGE'];function _0x53017a(_0x1d8d06,_0x1039e9){return _0x2e45e5(_0x1d8d06,_0x1039e9- -0xaf);}function _0x2eaad6(_0x252a4f,_0x3fb011){return _0x2e45e5(_0x252a4f,_0x3fb011- -0x127);}return new Texture({'context':this[_0x53017a(-0x153,-0x11b)],'width':this[_0x2eaad6(-0x299,-0x214)]['colors'][_0x53017a(-0x15f,-0x137)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x23e674),'source':{'width':this['options'][_0x2eaad6(-0x1c5,-0x16b)][_0x2eaad6(-0x224,-0x1af)],'height':0x1,'arrayBufferView':_0x49506a}});}['createSegmentsGeometry'](){const _0x53f2a0=0x4,_0x502603=this[_0x21114b(0x24,0x63)][_0x39c8a8(0x302,0x307)];let _0x33d805=[];function _0x21114b(_0x14d547,_0x5dcb10){return _0x2e45e5(_0x5dcb10,_0x14d547-0x111);}for(let _0x892fe4=0x0;_0x892fe4<_0x502603;_0x892fe4++){for(let _0x1f9ea5=0x0;_0x1f9ea5<_0x502603;_0x1f9ea5++){for(let _0xdcaaff=0x0;_0xdcaaff<_0x53f2a0;_0xdcaaff++){_0x33d805['push'](_0x892fe4/_0x502603),_0x33d805['push'](_0x1f9ea5/_0x502603);}}}function _0x39c8a8(_0x46c5a7,_0x38e5c6){return _0x19df7d(_0x38e5c6-0x27c,_0x46c5a7);}_0x33d805=new Float32Array(_0x33d805);const _0x24c635=this['options']['particlesTextureSize']**0x2;let _0xb438d4=[];for(let _0x4a61b0=0x0;_0x4a61b0<_0x24c635;_0x4a61b0++){_0xb438d4['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0xb438d4=new Float32Array(_0xb438d4);let _0x21ff30=[];for(let _0x1a2447=0x0,_0x187fd3=0x0;_0x1a2447<_0x24c635;_0x1a2447++){_0x21ff30['push'](_0x187fd3+0x0,_0x187fd3+0x1,_0x187fd3+0x2,_0x187fd3+0x2,_0x187fd3+0x1,_0x187fd3+0x3),_0x187fd3+=_0x53f2a0;}_0x21ff30=new Uint32Array(_0x21ff30);const _0x58bcb2={};_0x58bcb2['componentDatatype']=ComponentDatatype['FLOAT'],_0x58bcb2['componentsPerAttribute']=0x2,_0x58bcb2['values']=_0x33d805;const _0x48375f={};_0x48375f['componentDatatype']=ComponentDatatype['FLOAT'],_0x48375f[_0x39c8a8(0x2b8,0x2d5)]=0x3,_0x48375f['values']=_0xb438d4;const _0x590d38=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x58bcb2),'normal':new GeometryAttribute(_0x48375f)}),'indices':_0x21ff30});return _0x590d38;}[_0x19df7d(0x15d,0x1e1)](_0x3e1926){const _0x3a84ca={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x3e1926};return Appearance['getDefaultRenderState'](!![],![],_0x3a84ca);}[_0x2e45e5(0x59,-0x2d)](){function _0x87cb96(_0x4bcf2f,_0x47d265){return _0x2e45e5(_0x4bcf2f,_0x47d265-0x41a);}const _0xd74159={};_0xd74159['st']=0x0,_0xd74159[_0x5a830e(0x2e7,0x2e0)]=0x1;const _0x219f1d={};_0x219f1d['enabled']=!![];const _0x53ac55={};_0x53ac55[_0x5a830e(0x2e7,0x364)]=!![],_0x53ac55['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x53ac55['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x53ac55['blendFuncDestination']=WebGLRenderingContext[_0x5a830e(0x2bd,0x2c4)];const _0x49c1dc={};_0x49c1dc['viewport']=undefined,_0x49c1dc[_0x5a830e(0x38f,0x379)]=_0x219f1d,_0x49c1dc[_0x87cb96(0x40d,0x3b3)]=!![];function _0x5a830e(_0x2fad96,_0x337cad){return _0x19df7d(_0x337cad-0x23a,_0x2fad96);}_0x49c1dc['blending']=_0x53ac55;const _0x28b5b0=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0xd74159,'geometry':this[_0x87cb96(0x42b,0x3ca)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x87cb96(0x437,0x3fa)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures'][_0x87cb96(0x396,0x377)],'postProcessingPosition':()=>this[_0x87cb96(0x351,0x3cc)]['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x87cb96(0x274,0x2fd)],'frameRateAdjustment':()=>this[_0x5a830e(0x39f,0x36b)]['frameRateAdjustment'],'colorTable':()=>this[_0x5a830e(0x303,0x2d2)],'domain':()=>{function _0x5c9471(_0x492469,_0x136f34){return _0x5a830e(_0x136f34,_0x492469- -0x391);}var _0x3597fa,_0x2d6b29;function _0x417237(_0x6db0f2,_0x4ca483){return _0x5a830e(_0x4ca483,_0x6db0f2- -0x493);}const _0xc07640=new Cartesian2(((_0x3597fa=this[_0x417237(-0x1c7,-0x17a)]['domain'])===null||_0x3597fa===void 0x0?void 0x0:_0x3597fa[_0x5c9471(-0x78,-0x9a)])??this[_0x5c9471(-0x26,-0x69)]['windData']['speed'][_0x5c9471(-0x78,-0xce)],((_0x2d6b29=this['options'][_0x417237(-0x1e7,-0x1a4)])===null||_0x2d6b29===void 0x0?void 0x0:_0x2d6b29[_0x417237(-0x17c,-0x1a1)])??this['computing']['windData'][_0x417237(-0x177,-0x17b)]['max']);return _0xc07640;},'displayRange':()=>{function _0x198e53(_0x91966,_0x567a7a){return _0x87cb96(_0x567a7a,_0x91966- -0x32d);}var _0x2fe7bb,_0x1927c9;function _0x577b97(_0x22a942,_0x53834e){return _0x87cb96(_0x53834e,_0x22a942- -0x379);}const _0x5bb235=new Cartesian2(((_0x2fe7bb=this['options']['displayRange'])===null||_0x2fe7bb===void 0x0?void 0x0:_0x2fe7bb[_0x198e53(0x4d,0xc4)])??this[_0x198e53(0x9f,0xbb)]['windData']['speed']['min'],((_0x1927c9=this[_0x577b97(-0x4c,-0x44)]['displayRange'])===null||_0x1927c9===void 0x0?void 0x0:_0x1927c9[_0x577b97(-0x1,0x48)])??this['computing']['windData']['speed'][_0x577b97(-0x1,-0x29)]);return _0x5bb235;},'particleHeight':()=>this[_0x5a830e(0x2d3,0x2cc)]['fixedHeight']||0x0,'aspect':()=>this[_0x87cb96(0x370,0x3ae)]['drawingBufferWidth']/this[_0x5a830e(0x38d,0x34d)][_0x5a830e(0x237,0x2c1)],'pixelSize':()=>this[_0x5a830e(0x3cf,0x358)][_0x87cb96(0x3cf,0x3dc)],'lineWidth':()=>{const _0x1ba86c={};function _0x37e02e(_0x5b4755,_0x3eff28){return _0x87cb96(_0x3eff28,_0x5b4755- -0xfd);}_0x1ba86c['min']=0x1,_0x1ba86c[_0x37e02e(0x27b,0x2ef)]=0x2;function _0x14a0e3(_0x23effc,_0x323d4a){return _0x87cb96(_0x23effc,_0x323d4a-0x21);}const _0x5554a6=this['options']['lineWidth']||_0x1ba86c;return new Cartesian2(_0x5554a6[_0x14a0e3(0x41f,0x39b)],_0x5554a6[_0x37e02e(0x27b,0x24d)]);},'lineLength':()=>{const _0x3fce1b={};function _0x188aa0(_0x963a7f,_0x2f8813){return _0x87cb96(_0x2f8813,_0x963a7f-0xec);}function _0x75382d(_0x4a99ee,_0x3d08f1){return _0x87cb96(_0x4a99ee,_0x3d08f1-0x15);}_0x3fce1b['min']=0x14,_0x3fce1b['max']=0x64;const _0x2cbb8b=this[_0x75382d(0x385,0x342)]['lineLength']||_0x3fce1b;return new Cartesian2(_0x2cbb8b[_0x188aa0(0x466,0x3fd)],_0x2cbb8b[_0x75382d(0x3f0,0x38d)]);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0x5a830e(0x375,0x341)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x5a830e(0x3f7,0x397)](_0x49c1dc)}),_0x193bfa={};return _0x193bfa[_0x87cb96(0x426,0x3a5)]=_0x28b5b0,_0x193bfa;}['onParticlesTextureSizeChange'](){const _0x638f42=this[_0x44fd74(0x413,0x3d7)]();this[_0x363f5a(0x19a,0x203)]['segments']['geometry']=_0x638f42;const _0x21a05c={};_0x21a05c['context']=this['context'];function _0x44fd74(_0x42d541,_0x537ec4){return _0x2e45e5(_0x42d541,_0x537ec4-0x427);}function _0x363f5a(_0xcf08ca,_0x111af5){return _0x2e45e5(_0xcf08ca,_0x111af5-0x25d);}_0x21a05c['geometry']=_0x638f42,_0x21a05c[_0x363f5a(0x1d9,0x227)]=this['primitives']['segments']['attributeLocations'],_0x21a05c['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0xabbf31=VertexArray['fromGeometry'](_0x21a05c);this['primitives'][_0x44fd74(0x393,0x3b2)]['commandToExecute']&&(this[_0x363f5a(0x189,0x203)][_0x44fd74(0x38b,0x3b2)]['commandToExecute'][_0x363f5a(0x1cd,0x226)]=_0xabbf31);}[_0x2e45e5(-0xcd,-0x130)](){function _0x40bd7d(_0x3419d1,_0x313715){return _0x19df7d(_0x313715-0x1e9,_0x3419d1);}this['colorTable'][_0x40bd7d(0x23c,0x24e)](),this['colorTable']=this['createColorTableTexture']();}[_0x2e45e5(-0x66,-0xe6)](_0x365d96){function _0x42b928(_0x347101,_0x286c5f){return _0x19df7d(_0x347101-0x179,_0x286c5f);}const _0x25d1c4=_0x365d96['colors']&&JSON[_0x13b331(-0xed,-0xc1)](_0x365d96[_0x42b928(0x2b4,0x2ee)])!==JSON['stringify'](this[_0x42b928(0x20b,0x22b)][_0x42b928(0x2b4,0x2d7)]);this['options']=deepMerge(_0x365d96,this[_0x42b928(0x20b,0x286)]);function _0x13b331(_0x349e17,_0x3fd1ae){return _0x2e45e5(_0x349e17,_0x3fd1ae- -0x31);}_0x25d1c4&&this['onColorTableChange']();}['destroy'](){Object['values'](this['framebuffers'])[_0x5bc82d(0x324,0x394)](_0x282b7c=>{function _0x8304e0(_0x1051b4,_0x43730c){return _0x5bc82d(_0x43730c,_0x1051b4- -0x40);}_0x282b7c[_0x8304e0(0x2c6,0x275)]();});function _0x5bc82d(_0x215c84,_0x54a24d){return _0x2e45e5(_0x215c84,_0x54a24d-0x420);}Object['values'](this['primitives'])[_0x578191(-0x1f3,-0x1cc)](_0x14cd47=>{_0x14cd47['destroy']();});function _0x578191(_0x245be0,_0x3d493e){return _0x19df7d(_0x245be0- -0x2e6,_0x3d493e);}this['colorTable'][_0x5bc82d(0x2b8,0x306)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x2e45e5(-0x9b,-0xa1)];class WindParticleSystem{constructor(_0x2bdef4,_0x251034,_0x4acfb6,_0x54b056,_0x25605c){function _0x15004f(_0x3c4012,_0x49a72f){return _0x19df7d(_0x49a72f- -0x39a,_0x3c4012);}function _0x1c9b4a(_0x7a4491,_0x42d71d){return _0x19df7d(_0x7a4491- -0x5,_0x42d71d);}this['context']=_0x2bdef4,this['options']=_0x4acfb6,this[_0x1c9b4a(0x119,0x153)]=_0x54b056,this[_0x15004f(-0x28b,-0x269)]=new WindParticlesComputing(_0x2bdef4,_0x251034,_0x4acfb6,_0x54b056,_0x25605c),this['rendering']=new WindParticlesRendering(_0x2bdef4,_0x4acfb6,_0x54b056,this[_0x15004f(-0x22c,-0x269)]),this[_0x1c9b4a(0x10d,0x151)]();}['getPrimitives'](){const _0x42a88d=[this[_0x840eea(0x149,0x17c)][_0x2dbf9d(0x11,-0x34)]['calculateSpeed'],this['computing'][_0x2dbf9d(0x11,0x8f)][_0x840eea(0x4f,0xb3)],this['computing']['primitives']['postProcessingPosition'],this[_0x2dbf9d(0x32,0xac)]['primitives'][_0x840eea(0x10c,0x155)]];function _0x840eea(_0x3289ba,_0x220212){return _0x2e45e5(_0x3289ba,_0x220212-0x1ca);}function _0x2dbf9d(_0x28f400,_0x43e454){return _0x19df7d(_0x28f400- -0x114,_0x43e454);}return _0x42a88d;}['clearFramebuffers'](){const _0x4b1764=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x42535a(0x19c,0x1cb)]});function _0x42535a(_0x1195da,_0x4ab4dd){return _0x2e45e5(_0x1195da,_0x4ab4dd-0x29d);}function _0x5b2aa5(_0x4fe7ab,_0x1ae452){return _0x19df7d(_0x1ae452- -0x2ed,_0x4fe7ab);}Object[_0x5b2aa5(-0x227,-0x1f3)](this['rendering']['framebuffers'])['forEach'](_0x1706f1=>{function _0x2f50e7(_0x2e2bce,_0x37364c){return _0x5b2aa5(_0x37364c,_0x2e2bce-0x477);}_0x4b1764[_0x2f50e7(0x2ec,0x2c1)]=this[_0x1e8f58(0x3ba,0x43a)][_0x2f50e7(0x22e,0x26b)][_0x1706f1];function _0x1e8f58(_0x1723c9,_0x222957){return _0x5b2aa5(_0x1723c9,_0x222957-0x5e1);}_0x4b1764[_0x2f50e7(0x2ca,0x2e9)](this['context']);});}[_0x19df7d(0x6e,0x7)](_0x26f112){let _0x138d0b=![];_0x26f112['particlesTextureSize']&&this[_0xfc385e(-0xd0,-0x70)][_0xf0916c(-0x5b,-0x43)]!==_0x26f112[_0xfc385e(-0xae,-0x77)]&&(_0x138d0b=!![]);function _0xfc385e(_0x30fd5d,_0xbc6c86){return _0x2e45e5(_0x30fd5d,_0xbc6c86-0x7d);}const _0x1563a7=deepMerge(_0x26f112,this['options']);if(_0x1563a7['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this[_0xfc385e(0x11,-0x70)]=_0x1563a7,this['rendering'][_0xf0916c(-0x4d,-0x8)](_0x26f112),this['computing'][_0xfc385e(-0x71,-0x69)](_0x26f112);function _0xf0916c(_0x1f34a6,_0x4a0542){return _0x2e45e5(_0x4a0542,_0x1f34a6-0x99);}_0x138d0b&&(this[_0xfc385e(-0x1f,0x2f)]['destroyParticlesTextures'](),this['computing'][_0xfc385e(-0x2c,-0x8b)](),this[_0xfc385e(0x8c,0x44)]['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x494ec5){this[_0x2eb16b(-0x7,-0x6f)]=_0x494ec5;function _0x14cdb0(_0x3909ee,_0x456bf8){return _0x2e45e5(_0x3909ee,_0x456bf8-0x300);}function _0x2eb16b(_0x4087fb,_0x59ab8f){return _0x2e45e5(_0x59ab8f,_0x4087fb-0x5a);}this[_0x14cdb0(0x336,0x2b2)]['viewerParameters']=_0x494ec5,this['rendering']['viewerParameters']=_0x494ec5;}[_0x2e45e5(-0x10c,-0x11a)](){function _0x103ead(_0x22ba49,_0x118067){return _0x19df7d(_0x22ba49-0x415,_0x118067);}function _0x4f65cf(_0x281299,_0x1b1b95){return _0x19df7d(_0x281299- -0x136,_0x1b1b95);}this['computing']['destroy'](),this[_0x4f65cf(0x10,0x7a)][_0x103ead(0x47a,0x4a2)]();}}const Cesium$1=mars3d__namespace[_0x2e45e5(-0xfb,-0xa1)],BaseLayer$1=mars3d__namespace[_0x2e45e5(-0xaa,-0x7c)][_0x19df7d(0x75,0x2c)],_0x21a1f5={};_0x21a1f5[_0x19df7d(0xdf,0xf4)]=0x1,_0x21a1f5['max']=0x2;const _0x49715f={};_0x49715f[_0x19df7d(0xdf,0xfe)]=0x14,_0x49715f['max']=0x64;const _0x860d9c={};_0x860d9c['particlesTextureSize']=0x64,_0x860d9c['fixedHeight']=0x0,_0x860d9c['lineWidth']=_0x21a1f5,_0x860d9c['lineLength']=_0x49715f,_0x860d9c[_0x2e45e5(-0x30,-0x70)]=0x1,_0x860d9c['dropRate']=0.003,_0x860d9c[_0x19df7d(0x94,0x6e)]=0.001,_0x860d9c['colors']=[_0x2e45e5(-0xda,-0xe0)],_0x860d9c['flipY']=![],_0x860d9c['dynamic']=!![];const DEF_OPTIONS=_0x860d9c;class WindLayer extends BaseLayer$1{constructor(_0x171112={}){_0x171112={...DEF_OPTIONS,..._0x171112},super(_0x171112);function _0x36631f(_0x142380,_0x43cd93){return _0x19df7d(_0x43cd93- -0x272,_0x142380);}this[_0x36631f(-0x1c1,-0x165)](_0x171112,_0x171112);}get[_0x19df7d(0x103,0xb1)](){function _0x418868(_0x4fc894,_0x4f68f5){return _0x2e45e5(_0x4f68f5,_0x4fc894-0x108);}return this[_0x418868(0xae,0x108)];}get['data'](){function _0x2b32b8(_0x59f978,_0x1b57b6){return _0x19df7d(_0x59f978-0x167,_0x1b57b6);}function _0x9c6874(_0x327d90,_0x1430b9){return _0x2e45e5(_0x327d90,_0x1430b9-0x201);}return this[_0x9c6874(0xc0,0x114)][_0x2b32b8(0x273,0x1f5)];}set['data'](_0x127c7d){this[_0x45cf34(-0x35f,-0x2f2)][_0x45cf34(-0x2cb,-0x278)]=_0x127c7d;function _0x45cf34(_0x4748cb,_0x180375){return _0x2e45e5(_0x4748cb,_0x180375- -0x205);}function _0x59b7e2(_0x19d1a9,_0x45eb38){return _0x2e45e5(_0x19d1a9,_0x45eb38-0x1c3);}this['setData'](_0x127c7d);}get['colors'](){return this['options']['colors'];}set['colors'](_0x391be7){function _0x4a4b85(_0x330349,_0x3a6938){return _0x2e45e5(_0x330349,_0x3a6938-0x54a);}function _0x1e3bd1(_0x49dfce,_0x528a25){return _0x2e45e5(_0x528a25,_0x49dfce-0x4f9);}this['options'][_0x4a4b85(0x527,0x506)]=_0x391be7;const _0x22cd89={};_0x22cd89['colors']=_0x391be7,this[_0x1e3bd1(0x487,0x41a)](this['options'],_0x22cd89);}['_mountedHook'](){}[_0x19df7d(0x163,0x101)](){this['scene']=this['_map']['scene'],this['camera']=this[_0x3a45e5(0x4e7,0x4b3)]['camera'];this['options']['data']&&this['setData'](this['options'][_0x3a45e5(0x480,0x4f4)]);if(!this[_0x223d8a(0x27e,0x267)])return;this[_0x3a45e5(0x503,0x506)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1[(_0x223d8a(0x27c,0x243))](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this['updateViewerParameters'](),this[_0x3a45e5(0x544,0x4c1)]=new WindParticleSystem(this[_0x3a45e5(0x4df,0x4d4)]['context'],this['windData'],this['options'],this[_0x3a45e5(0x515,0x506)],this[_0x223d8a(0x2ce,0x2cb)]);function _0x3a45e5(_0x35df19,_0x2b15c1){return _0x19df7d(_0x2b15c1-0x3e8,_0x35df19);}this['primitives']=this[_0x3a45e5(0x495,0x4c1)][_0x3a45e5(0x4d4,0x4e3)](),this['primitives']['forEach'](_0x25422f=>{function _0x44d609(_0x1f331a,_0xa0184f){return _0x3a45e5(_0x1f331a,_0xa0184f- -0x5d7);}this['scene']['primitives'][_0x44d609(-0x126,-0x131)](_0x25422f);}),this[_0x223d8a(0x235,0x21f)]['percentageChanged']=0.01,this['camera']['changed']['addEventListener'](this['updateViewerParameters']['bind'](this));function _0x223d8a(_0x5ac7e3,_0x16055b){return _0x19df7d(_0x5ac7e3-0x1e2,_0x16055b);}this['scene']['morphComplete']['addEventListener'](this[_0x3a45e5(0x4ba,0x46c)]['bind'](this)),window[_0x223d8a(0x293,0x20d)](_0x223d8a(0x28b,0x20c),this['updateViewerParameters']['bind'](this));}[_0x19df7d(0x129,0xba)](){this['camera']['changed'][_0x51b17e(0x3be,0x43c)](this[_0x51b17e(0x3f1,0x43e)]['bind'](this));function _0x116947(_0x27c92c,_0x39daea){return _0x2e45e5(_0x39daea,_0x27c92c- -0xc1);}this[_0x116947(-0x154,-0x17f)][_0x116947(-0xeb,-0x98)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),window['removeEventListener'](_0x116947(-0x197,-0x1bd),this[_0x51b17e(0x3f1,0x3dc)]['bind'](this));function _0x51b17e(_0x52466a,_0xe211ff){return _0x2e45e5(_0xe211ff,_0x52466a-0x4ec);}this['primitives']&&(this[_0x116947(-0x11b,-0xf1)]['forEach'](_0x1a855d=>{function _0x7a3bd8(_0x17e484,_0x15eb14){return _0x51b17e(_0x15eb14- -0x80,_0x17e484);}this['scene']['primitives'][_0x7a3bd8(0x409,0x3ea)](_0x1a855d);}),delete this['primitives']),this['particleSystem']&&(this[_0x51b17e(0x446,0x3d8)][_0x51b17e(0x3d2,0x3a5)](),delete this['particleSystem']);}['setData'](_0x4f403d,_0x2b70f4){function _0x1df9b5(_0x144a0b,_0x1b3652){return _0x2e45e5(_0x144a0b,_0x1b3652- -0xd7);}this['windData']=this[_0x1df9b5(-0x1a9,-0x1e6)](_0x4f403d);if(_0x2b70f4){this[_0x1df9b5(-0x163,-0x12d)](),this['_addedHook']();return;}function _0x40002a(_0x46a8f8,_0x3e4040){return _0x2e45e5(_0x3e4040,_0x46a8f8-0x17b);}this[_0x40002a(0xd5,0x6a)]?(this['particleSystem'][_0x1df9b5(-0x10d,-0x125)]['updateWindData'](this['windData']),this[_0x1df9b5(-0xe0,-0x16a)][_0x40002a(0xbe,0x4b)]()):this['_addedHook']();}[_0x19df7d(0x10d,0x8d)](_0x149bb8,_0x1448a1){function _0x39aac6(_0x542511,_0x6b2082){return _0x2e45e5(_0x6b2082,_0x542511-0x576);}function _0x189317(_0x256aa9,_0x4474cb){return _0x2e45e5(_0x4474cb,_0x256aa9-0x27c);}this[_0x39aac6(0x4d0,0x4d6)]&&(this['particleSystem']['changeOptions'](_0x1448a1),this[_0x39aac6(0x4e3,0x4a8)]['requestRender']());}[_0x2e45e5(-0x140,-0x10f)](_0x50c339){function _0x37e109(_0x4a4e07,_0x11dd86){return _0x19df7d(_0x4a4e07- -0x20,_0x11dd86);}var _0x23d8fc,_0x37d193;const _0x44e86b={..._0x50c339},_0x4be132=_0x44e86b;!_0x4be132['height']&&_0x4be132['rows']&&(_0x4be132[_0x11aa98(-0x321,-0x313)]=_0x4be132['rows']);!_0x4be132[_0x37e109(0xf7,0xce)]&&_0x4be132[_0x37e109(0x123,0xc6)]&&(_0x4be132['width']=_0x4be132[_0x37e109(0x123,0x14f)]);!_0x4be132[_0x11aa98(-0x2ab,-0x2b0)]&&(_0x4be132[_0x11aa98(-0x2ab,-0x30b)]={'west':_0x4be132['xmin'],'south':_0x4be132['ymin'],'east':_0x4be132[_0x37e109(0x7b,0x1)],'north':_0x4be132[_0x11aa98(-0x25a,-0x1ee)]});if(!_0x4be132['u']){const _0x2d8ed4={};_0x2d8ed4['array']=_0x50c339['udata'],_0x2d8ed4[_0x37e109(0xbf,0x5d)]=_0x50c339['umin'],_0x2d8ed4['max']=_0x50c339['umax'],_0x4be132['u']=_0x2d8ed4;}if(!_0x4be132['v']){const _0x582ded={};_0x582ded['array']=_0x50c339[_0x11aa98(-0x2fd,-0x278)],_0x582ded['min']=_0x50c339[_0x37e109(0x38,-0x39)],_0x582ded['max']=_0x50c339[_0x11aa98(-0x24f,-0x277)],_0x4be132['v']=_0x582ded;}function _0x11aa98(_0x245d7f,_0xfe2fe2){return _0x19df7d(_0x245d7f- -0x39f,_0xfe2fe2);}if(((_0x23d8fc=_0x4be132['speed'])===null||_0x23d8fc===void 0x0?void 0x0:_0x23d8fc['min'])===undefined||((_0x37d193=_0x4be132['speed'])===null||_0x37d193===void 0x0?void 0x0:_0x37d193[_0x37e109(0xbd,0x9d)])===undefined||_0x4be132['speed']['array']===undefined){const _0x48e966={'array':new Float32Array(_0x4be132['u']['array'][_0x37e109(0xd7,0x112)]),'min':Number['MAX_VALUE'],'max':Number[_0x11aa98(-0x285,-0x21e)]};for(let _0x278ad5=0x0;_0x278ad5<_0x4be132['u'][_0x37e109(0x93,0xb5)][_0x11aa98(-0x2a8,-0x25b)];_0x278ad5++){_0x48e966[_0x37e109(0x93,0xc0)][_0x278ad5]=Math[_0x37e109(0x51,0xa3)](_0x4be132['u'][_0x37e109(0x93,0x62)][_0x278ad5]*_0x4be132['u']['array'][_0x278ad5]+_0x4be132['v']['array'][_0x278ad5]*_0x4be132['v']['array'][_0x278ad5]),_0x48e966['array'][_0x278ad5]!==0x0&&(_0x48e966['min']=Math['min'](_0x48e966[_0x11aa98(-0x2c0,-0x25a)],_0x48e966['array'][_0x278ad5]),_0x48e966['max']=Math[_0x11aa98(-0x2c2,-0x2c5)](_0x48e966['max'],_0x48e966[_0x37e109(0x93,0xbd)][_0x278ad5]));}_0x4be132[_0x37e109(0xc2,0x146)]=_0x48e966;}return _0x4be132;}['updateViewerParameters'](){var _0x122cea;const _0x5efafc=this['scene'],_0x24354c=_0x5efafc['canvas'],_0x1c0ac7={};_0x1c0ac7['x']=0x0,_0x1c0ac7['y']=0x0;function _0x54ee1e(_0x34dbd4,_0x1e4d7d){return _0x2e45e5(_0x1e4d7d,_0x34dbd4-0x19b);}const _0x10540b={};_0x10540b['x']=0x0,_0x10540b['y']=_0x24354c[_0x2a92f3(0x27e,0x2c4)];const _0x2517bb={};function _0x2a92f3(_0x3507fa,_0x5efcaf){return _0x19df7d(_0x5efcaf-0x224,_0x3507fa);}_0x2517bb['x']=_0x24354c['clientWidth'],_0x2517bb['y']=0x0;const _0xfd336d={};_0xfd336d['x']=_0x24354c[_0x54ee1e(0x16b,0xf5)],_0xfd336d['y']=_0x24354c[_0x2a92f3(0x2ce,0x2c4)];const _0x386a8e=[_0x1c0ac7,_0x10540b,_0x2517bb,_0xfd336d];let _0x2d45e7=0xb4,_0x1934fc=-0xb4,_0xed0a4b=0x5a,_0x18ba1b=-0x5a,_0x2f3e9c=![];for(const _0x16990c of _0x386a8e){const _0x572beb=_0x5efafc['camera'][_0x54ee1e(0x11e,0x168)](new Cesium$1[(_0x54ee1e(0xb6,0x70))](_0x16990c['x'],_0x16990c['y']),_0x5efafc['globe']['ellipsoid']);if(!_0x572beb){_0x2f3e9c=!![];break;}const _0x14e8de=_0x5efafc[_0x54ee1e(0xa1,0x94)][_0x54ee1e(0xac,0xce)]['cartesianToCartographic'](_0x572beb),_0x355aa3=Cesium$1[_0x54ee1e(0xe5,0xc8)][_0x54ee1e(0xdd,0xd2)](_0x14e8de['longitude']),_0x570fca=Cesium$1['Math'][_0x54ee1e(0xdd,0xda)](_0x14e8de['latitude']);_0x2d45e7=Math['min'](_0x2d45e7,_0x355aa3),_0x1934fc=Math[_0x2a92f3(0x2f0,0x301)](_0x1934fc,_0x355aa3),_0xed0a4b=Math[_0x54ee1e(0xfb,0x147)](_0xed0a4b,_0x570fca),_0x18ba1b=Math[_0x2a92f3(0x330,0x301)](_0x18ba1b,_0x570fca);}if(!_0x2f3e9c){const _0x6175b5=new Cesium$1[(_0x2a92f3(0x272,0x2be))](Math[_0x54ee1e(0xf9,0x101)](this['windData']['bounds']['west'],_0x2d45e7),Math['min'](this[_0x54ee1e(0xb8,0x94)][_0x54ee1e(0x110,0xf8)][_0x2a92f3(0x26a,0x274)],_0x1934fc)),_0x3707ea=new Cesium$1['Cartesian2'](Math[_0x54ee1e(0xf9,0x95)](this['windData'][_0x2a92f3(0x290,0x318)][_0x2a92f3(0x222,0x297)],_0xed0a4b),Math['min'](this[_0x2a92f3(0x2d1,0x2c0)][_0x2a92f3(0x2ea,0x318)]['north'],_0x18ba1b)),_0x420f0d=(_0x6175b5['y']-_0x6175b5['x'])*0.05,_0x500cfb=(_0x3707ea['y']-_0x3707ea['x'])*0.05;_0x6175b5['x']=Math[_0x2a92f3(0x2d2,0x301)](this[_0x2a92f3(0x243,0x2c0)][_0x54ee1e(0x110,0xae)]['west'],_0x6175b5['x']-_0x420f0d),_0x6175b5['y']=Math[_0x2a92f3(0x310,0x303)](this['windData'][_0x2a92f3(0x2d8,0x318)][_0x54ee1e(0x6c,0x2)],_0x6175b5['y']+_0x420f0d),_0x3707ea['x']=Math['max'](this[_0x54ee1e(0xb8,0x8d)][_0x2a92f3(0x343,0x318)]['south'],_0x3707ea['x']-_0x500cfb),_0x3707ea['y']=Math[_0x54ee1e(0xfb,0x105)](this[_0x54ee1e(0xb8,0xf7)]['bounds']['north'],_0x3707ea['y']+_0x500cfb),this['viewerParameters']['lonRange']=_0x6175b5,this[_0x54ee1e(0x13a,0xb8)][_0x2a92f3(0x3a1,0x323)]=_0x3707ea;const _0xe6874f=this['windData']['bounds'][_0x54ee1e(0x6c,0x28)]-this['windData']['bounds'][_0x54ee1e(0xd0,0x14b)],_0x1941df=this[_0x2a92f3(0x314,0x2c0)][_0x2a92f3(0x2a2,0x318)]['north']-this[_0x2a92f3(0x270,0x2c0)][_0x54ee1e(0x110,0x14d)]['south'],_0x1ac936=(_0x6175b5['y']-_0x6175b5['x'])/_0xe6874f,_0x558bee=(_0x3707ea['y']-_0x3707ea['x'])/_0x1941df,_0x3455df=Math[_0x2a92f3(0x2ab,0x303)](_0x1ac936,_0x558bee),_0x57bf6f=0x3e8*_0x3455df;_0x57bf6f>0x0&&(this[_0x54ee1e(0x13a,0x1be)]['pixelSize']=Math['max'](0x0,Math[_0x2a92f3(0x323,0x303)](0x3e8,_0x57bf6f)));}this[_0x2a92f3(0x364,0x342)]['sceneMode']=this[_0x2a92f3(0x351,0x310)][_0x54ee1e(0x152,0x1b6)],(_0x122cea=this[_0x2a92f3(0x2e9,0x2fd)])===null||_0x122cea===void 0x0||_0x122cea['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x33742f,_0x249af6){const {bounds:_0x4f632d,width:_0x4b84d0,height:_0x815f85,u:_0x3ca14f,v:_0x2ba1d1,speed:_0x175b13}=this['windData'],{flipY:_0x35014d}=this['options'];if(_0x33742f<_0x4f632d[_0xe69a33(-0x17b,-0x1bf)]||_0x33742f>_0x4f632d['east']||_0x249af6<_0x4f632d['south']||_0x249af6>_0x4f632d['north'])return null;const _0x59464c=(_0x33742f-_0x4f632d['west'])/(_0x4f632d['east']-_0x4f632d['west'])*(_0x4b84d0-0x1);let _0x5225bd=(_0x249af6-_0x4f632d[_0xe69a33(-0x1bc,-0x243)])/(_0x4f632d['north']-_0x4f632d[_0x577d31(-0x265,-0x2a1)])*(_0x815f85-0x1);_0x35014d&&(_0x5225bd=_0x815f85-0x1-_0x5225bd);const _0x1cffdd=Math[_0x577d31(-0x1a0,-0x11d)](_0x59464c),_0x2297f2=Math['floor'](_0x5225bd),_0x26103e=Math['floor'](_0x59464c),_0x5c4b3d=Math['min'](_0x26103e+0x1,_0x4b84d0-0x1),_0x71a2e=Math[_0x577d31(-0x1a0,-0x126)](_0x5225bd),_0x45fcb6=Math['min'](_0x71a2e+0x1,_0x815f85-0x1),_0x1b8545=_0x59464c-_0x26103e,_0x23f795=_0x5225bd-_0x71a2e,_0x34e51f=_0x2297f2*_0x4b84d0+_0x1cffdd,_0x58807c=_0x71a2e*_0x4b84d0+_0x26103e;function _0x577d31(_0x50ac7f,_0x31a484){return _0x2e45e5(_0x31a484,_0x50ac7f- -0x159);}const _0x246418=_0x71a2e*_0x4b84d0+_0x5c4b3d,_0x3aabd9=_0x45fcb6*_0x4b84d0+_0x26103e,_0x2d2376=_0x45fcb6*_0x4b84d0+_0x5c4b3d,_0x4ce6ef=_0x3ca14f[_0xe69a33(-0x17c,-0x1c4)][_0x58807c],_0x504609=_0x3ca14f['array'][_0x246418],_0x35e275=_0x3ca14f['array'][_0x3aabd9],_0x5dea00=_0x3ca14f['array'][_0x2d2376],_0x58534b=(0x1-_0x1b8545)*(0x1-_0x23f795)*_0x4ce6ef+_0x1b8545*(0x1-_0x23f795)*_0x504609+(0x1-_0x1b8545)*_0x23f795*_0x35e275+_0x1b8545*_0x23f795*_0x5dea00,_0x4bd5a1=_0x2ba1d1['array'][_0x58807c],_0x462179=_0x2ba1d1[_0x577d31(-0x225,-0x21e)][_0x246418],_0x2576a0=_0x2ba1d1[_0xe69a33(-0x17c,-0x19d)][_0x3aabd9],_0x558f67=_0x2ba1d1[_0x577d31(-0x225,-0x28b)][_0x2d2376],_0x2ea8f9=(0x1-_0x1b8545)*(0x1-_0x23f795)*_0x4bd5a1+_0x1b8545*(0x1-_0x23f795)*_0x462179+(0x1-_0x1b8545)*_0x23f795*_0x2576a0+_0x1b8545*_0x23f795*_0x558f67,_0x597f34=Math['sqrt'](_0x58534b*_0x58534b+_0x2ea8f9*_0x2ea8f9),_0xf1a2ef={};_0xf1a2ef['u']=_0x3ca14f['array'][_0x34e51f],_0xf1a2ef['v']=_0x2ba1d1[_0xe69a33(-0x17c,-0xf4)][_0x34e51f],_0xf1a2ef[_0x577d31(-0x1f6,-0x268)]=_0x175b13[_0xe69a33(-0x17c,-0x118)][_0x34e51f];const _0x41bdfd={};_0x41bdfd['u']=_0x58534b,_0x41bdfd['v']=_0x2ea8f9,_0x41bdfd['speed']=_0x597f34;const _0x1c0d92={};_0x1c0d92['original']=_0xf1a2ef,_0x1c0d92[_0xe69a33(-0x19c,-0x1e5)]=_0x41bdfd;function _0xe69a33(_0x4f677e,_0x1ba6a7){return _0x2e45e5(_0x1ba6a7,_0x4f677e- -0xb0);}return _0x1c0d92;}}mars3d__namespace['LayerUtil']['register'](_0x19df7d(0x105,0x132),WindLayer),mars3d__namespace[_0x19df7d(0x103,0xf7)]['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null;function _0x4e3f67(_0x4ce607,_0x9e8ed){return _0x19df7d(_0x4ce607-0x4e,_0x9e8ed);}this[_0x4e3f67(0xd7,0x6f)]=null;function _0x3750e3(_0x43135f,_0x4bd932){return _0x19df7d(_0x4bd932-0xb0,_0x43135f);}this['tlng']=null,this['tlat']=null,this['age']=null,this[_0x4e3f67(0x130,0x136)]=null;}[_0x19df7d(0x65,0xdc)](){for(const _0x3dafe0 in this){delete this[_0x3dafe0];}}}class CanvasWindField{constructor(_0x4ed132){this['setOptions'](_0x4ed132);}get['speedRate'](){return this['_speedRate'];}set['speedRate'](_0x26ab4a){this['_speedRate']=(0x64-(_0x26ab4a>0x63?0x63:_0x26ab4a))*0x64;function _0x4b9e88(_0x3edfd5,_0x3cb48d){return _0x2e45e5(_0x3edfd5,_0x3cb48d-0x1de);}function _0x1478f2(_0x4fe827,_0x19c842){return _0x19df7d(_0x19c842- -0x130,_0x4fe827);}this[_0x1478f2(-0x67,-0x45)]=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x1478f2(-0x63,0x15)]-this['ymin'])/this[_0x4b9e88(0x127,0x192)]];}get[_0x2e45e5(-0x15e,-0xee)](){function _0x5bc7e7(_0x1449cf,_0x32f2c1){return _0x2e45e5(_0x1449cf,_0x32f2c1- -0x36);}return this[_0x5bc7e7(-0x5d,-0xe1)];}set['maxAge'](_0x2cbe86){function _0x5ab27f(_0x4c95d3,_0x43ef5e){return _0x19df7d(_0x43ef5e-0x37f,_0x4c95d3);}this[_0x5ab27f(0x4d4,0x453)]=_0x2cbe86;}['setOptions'](_0x35f60e){this['options']=_0x35f60e;function _0x53ad1b(_0x5540a3,_0x5c025c){return _0x2e45e5(_0x5540a3,_0x5c025c- -0xb7);}function _0x231161(_0x1d911a,_0x4480c9){return _0x2e45e5(_0x1d911a,_0x4480c9- -0xff);}this['maxAge']=_0x35f60e[_0x53ad1b(-0x209,-0x1a5)]||0x78,this[_0x53ad1b(-0x174,-0x1db)]=_0x35f60e['speedRate']||0x32,this['particles']=[];const _0x3223d8=_0x35f60e[_0x231161(-0x22d,-0x204)]||0x1000;for(let _0x3dcfb3=0x0;_0x3dcfb3<_0x3223d8;_0x3dcfb3++){const _0x36c86c=this['_randomParticle'](new CanvasParticle());this[_0x231161(-0x2ac,-0x221)]['push'](_0x36c86c);}}['setDate'](_0x1b93c7){this['rows']=_0x1b93c7[_0x371ae3(0x47,0xc6)],this['cols']=_0x1b93c7['cols'],this['xmin']=_0x1b93c7['xmin'],this['xmax']=_0x1b93c7['xmax'],this[_0x371ae3(0xe8,0x9e)]=_0x1b93c7['ymin'],this['ymax']=_0x1b93c7['ymax'];function _0x371ae3(_0x26a6a1,_0x24667d){return _0x2e45e5(_0x26a6a1,_0x24667d-0x13c);}this['grid']=[];const _0xba49f8=_0x1b93c7[_0x9d864d(0x171,0x190)],_0x585598=_0x1b93c7['vdata'];let _0x2e4239=![];_0xba49f8[_0x9d864d(0x119,0x133)]===this[_0x9d864d(0x177,0x145)]&&_0xba49f8[0x0][_0x9d864d(0x118,0x133)]===this['cols']&&(_0x2e4239=!![]);let _0x45d52b=0x0,_0x2c0039=null;function _0x9d864d(_0x46bc18,_0x5c293e){return _0x19df7d(_0x5c293e-0x3c,_0x46bc18);}let _0xa81e14=null;for(let _0x4d02ce=0x0;_0x4d02ce<this['rows'];_0x4d02ce++){_0x2c0039=[];for(let _0x10e8e1=0x0;_0x10e8e1<this[_0x9d864d(0x107,0x17f)];_0x10e8e1++,_0x45d52b++){_0x2e4239?_0xa81e14=this['_calcUV'](_0xba49f8[_0x4d02ce][_0x10e8e1],_0x585598[_0x4d02ce][_0x10e8e1]):_0xa81e14=this['_calcUV'](_0xba49f8[_0x45d52b],_0x585598[_0x45d52b]),_0x2c0039['push'](_0xa81e14);}this[_0x371ae3(0x6f,0xc5)][_0x9d864d(0xa1,0x104)](_0x2c0039);}!this[_0x371ae3(0x1f,0x4f)][_0x371ae3(-0x26,0x36)]&&this['grid'][_0x371ae3(0x90,0x11)]();}[_0x2e45e5(-0xcd,-0x100)](){function _0x579357(_0x28364d,_0x104d2c){return _0x2e45e5(_0x104d2c,_0x28364d- -0x20f);}delete this['rows'],delete this[_0x39e922(-0x1e3,-0x1c2)],delete this['xmin'],delete this['xmax'],delete this[_0x39e922(-0x245,-0x2b0)];function _0x39e922(_0x56388c,_0x470f52){return _0x19df7d(_0x56388c- -0x326,_0x470f52);}delete this['ymax'],delete this[_0x39e922(-0x21e,-0x27d)],delete this['particles'];}['toGridXY'](_0x58d40a,_0x9a4de9){function _0x53c573(_0x2b814,_0x125a5b){return _0x2e45e5(_0x2b814,_0x125a5b-0x2e);}const _0x47c0e4=(_0x58d40a-this[_0x53c573(-0xa8,-0xb3)])/(this[_0x53c573(-0x12a,-0xb6)]-this[_0x53c573(-0xee,-0xb3)])*(this[_0x557d7e(0x369,0x317)]-0x1);function _0x557d7e(_0x29f1eb,_0x3410a1){return _0x2e45e5(_0x29f1eb,_0x3410a1-0x353);}const _0x14c17d=(this['ymax']-_0x9a4de9)/(this[_0x53c573(0x14,-0xc)]-this[_0x53c573(0x1b,-0x70)])*(this['rows']-0x1);return[_0x47c0e4,_0x14c17d];}[_0x2e45e5(-0xd9,-0x83)](_0x18172a,_0x5f3dc7){if(_0x18172a<0x0||_0x18172a>=this['cols']||_0x5f3dc7>=this['rows'])return[0x0,0x0,0x0];const _0x2399c0=Math[_0x47c652(0x166,0x1bc)](_0x18172a);function _0x47c652(_0x39e4b5,_0x279da7){return _0x2e45e5(_0x279da7,_0x39e4b5-0x1ad);}function _0x1e5d77(_0xb4f468,_0x4d157f){return _0x19df7d(_0x4d157f- -0x135,_0xb4f468);}const _0x24ae3d=Math[_0x1e5d77(0x37,0x3)](_0x5f3dc7);if(_0x2399c0===_0x18172a&&_0x24ae3d===_0x5f3dc7)return this[_0x47c652(0x136,0xcd)][_0x5f3dc7][_0x18172a];const _0xd8d270=_0x2399c0+0x1,_0x416055=_0x24ae3d+0x1,_0x477f82=this['getUVByXY'](_0x2399c0,_0x24ae3d),_0x3d3dfe=this['getUVByXY'](_0xd8d270,_0x24ae3d),_0x87d7ec=this['getUVByXY'](_0x2399c0,_0x416055),_0x14c6cc=this['getUVByXY'](_0xd8d270,_0x416055);let _0x32eeb0=null;try{_0x32eeb0=this['_bilinearInterpolation'](_0x18172a-_0x2399c0,_0x5f3dc7-_0x24ae3d,_0x477f82,_0x3d3dfe,_0x87d7ec,_0x14c6cc);}catch(_0x371c22){console['log'](_0x18172a,_0x5f3dc7);}return _0x32eeb0;}['_bilinearInterpolation'](_0x5c8e2a,_0x5bf75b,_0x1a9fe4,_0x6e5cf1,_0x43b34f,_0x2766c9){const _0xf1653=0x1-_0x5c8e2a,_0x379c13=0x1-_0x5bf75b;function _0x285862(_0xa0e28b,_0x4edaf7){return _0x2e45e5(_0x4edaf7,_0xa0e28b-0x87);}const _0x5f52e2=_0xf1653*_0x379c13,_0x200586=_0x5c8e2a*_0x379c13,_0xca61a5=_0xf1653*_0x5bf75b,_0x3cefdb=_0x5c8e2a*_0x5bf75b,_0x55cfef=_0x1a9fe4[0x0]*_0x5f52e2+_0x6e5cf1[0x0]*_0x200586+_0x43b34f[0x0]*_0xca61a5+_0x2766c9[0x0]*_0x3cefdb,_0x34c654=_0x1a9fe4[0x1]*_0x5f52e2+_0x6e5cf1[0x1]*_0x200586+_0x43b34f[0x1]*_0xca61a5+_0x2766c9[0x1]*_0x3cefdb;return this[_0x285862(0x62,0xb4)](_0x55cfef,_0x34c654);}[_0x19df7d(0x15a,0x18b)](_0x13001a,_0xfa6fb6){return[+_0x13001a,+_0xfa6fb6,Math['sqrt'](_0x13001a*_0x13001a+_0xfa6fb6*_0xfa6fb6)];}['getUVByPoint'](_0x5183ad,_0x2675ad){if(!this[_0x508c78(-0x1eb,-0x219)](_0x5183ad,_0x2675ad))return null;function _0x41eac3(_0x41c2c0,_0x214f75){return _0x19df7d(_0x41c2c0- -0x129,_0x214f75);}const _0x1283b5=this[_0x508c78(-0x1eb,-0x26a)](_0x5183ad,_0x2675ad);function _0x508c78(_0x4fe8c5,_0x1e1f68){return _0x19df7d(_0x1e1f68- -0x35b,_0x4fe8c5);}const _0x21dcf9=this[_0x508c78(-0x2a4,-0x25f)](_0x1283b5[0x0],_0x1283b5[0x1]);return _0x21dcf9;}[_0x19df7d(0x142,0x114)](_0x36055d,_0xfd7b00){function _0x5211b3(_0x3da531,_0x265984){return _0x2e45e5(_0x3da531,_0x265984-0x2cf);}return _0x36055d>=this['xmin']&&_0x36055d<=this[_0x5211b3(0x1f6,0x1eb)]&&_0xfd7b00>=this['ymin']&&_0xfd7b00<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0x30daf5(_0x24649b,_0x483133){return _0x2e45e5(_0x24649b,_0x483133- -0x19a);}const _0xde4af0=fRandomByfloat(this[_0x542d60(-0x1f0,-0x1e6)],this[_0x542d60(-0x166,-0x1e9)]);function _0x542d60(_0x86a496,_0x11d985){return _0x19df7d(_0x11d985- -0x284,_0x86a496);}const _0x554a38=fRandomByfloat(this[_0x542d60(-0x1e9,-0x1a3)],this[_0x30daf5(-0x213,-0x1d4)]),_0x5ce799={};return _0x5ce799[_0x30daf5(-0x225,-0x290)]=_0x554a38,_0x5ce799[_0x30daf5(-0x185,-0x1b9)]=_0xde4af0,_0x5ce799;}[_0x2e45e5(-0x8e,-0xc6)](){function _0x1092f2(_0x104330,_0x299f35){return _0x19df7d(_0x104330- -0x27c,_0x299f35);}let _0xb6389f,_0x3d4457,_0x3de5d7;for(let _0x8646b6=0x0,_0x21f573=this['particles']['length'];_0x8646b6<_0x21f573;_0x8646b6++){let _0x4244de=this[_0x5492fc(-0x211,-0x24f)][_0x8646b6];_0x4244de[_0x1092f2(-0x1c4,-0x14d)]<=0x0&&(_0x4244de=this[_0x1092f2(-0x14c,-0x156)](_0x4244de));if(_0x4244de['age']>0x0){const _0x10bf1e=_0x4244de['tlng'],_0x3161d5=_0x4244de['tlat'];_0x3de5d7=this['getUVByPoint'](_0x10bf1e,_0x3161d5),_0x3de5d7?(_0xb6389f=_0x10bf1e+this['_calc_speedRate'][0x0]*_0x3de5d7[0x0],_0x3d4457=_0x3161d5+this['_calc_speedRate'][0x1]*_0x3de5d7[0x1],_0x4244de['lng']=_0x10bf1e,_0x4244de['lat']=_0x3161d5,_0x4244de['tlng']=_0xb6389f,_0x4244de['tlat']=_0x3d4457,_0x4244de['speed']=_0x3de5d7[0x2],_0x4244de['age']--):_0x4244de['age']=0x0;}}function _0x5492fc(_0x314d53,_0x29c519){return _0x2e45e5(_0x314d53,_0x29c519- -0x12d);}return this['particles'];}[_0x19df7d(0x130,0x1b5)](_0x5ab47d){function _0x19a316(_0x2d5d0d,_0x2a90da){return _0x2e45e5(_0x2d5d0d,_0x2a90da-0x15c);}function _0x50c738(_0x27d0c6,_0xe95ce8){return _0x19df7d(_0xe95ce8-0x179,_0x27d0c6);}let _0x43f053,_0x46850e;for(let _0x5b4fad=0x0;_0x5b4fad<0x1e;_0x5b4fad++){_0x43f053=this['getRandomLatLng'](),_0x46850e=this['getUVByPoint'](_0x43f053['lng'],_0x43f053['lat']);if(_0x46850e&&_0x46850e[0x2]>0x0)break;}if(!_0x46850e)return _0x5ab47d;const _0x1c7cfc=_0x43f053[_0x50c738(0x271,0x2d9)]+this['_calc_speedRate'][0x0]*_0x46850e[0x0],_0x373ac1=_0x43f053['lat']+this['_calc_speedRate'][0x1]*_0x46850e[0x1];return _0x5ab47d['lng']=_0x43f053['lng'],_0x5ab47d['lat']=_0x43f053['lat'],_0x5ab47d['tlng']=_0x1c7cfc,_0x5ab47d['tlat']=_0x373ac1,_0x5ab47d[_0x50c738(0x200,0x231)]=Math[_0x19a316(0x11a,0xf1)](0xa+Math['random']()*this['maxAge']),_0x5ab47d['speed']=_0x46850e[0x2],_0x5ab47d;}['destroy'](){for(const _0x2f0c6e in this){delete this[_0x2f0c6e];}}}function fRandomByfloat(_0x3522ac,_0x3273a7){return _0x3522ac+Math['random']()*(_0x3273a7-_0x3522ac);}const Cesium=mars3d__namespace[_0x19df7d(0xde,0x68)],BaseLayer=mars3d__namespace['layer']['BaseLayer'];function _0x34f9(){const _0x3ab8f7=['owner','add','autoClear','CanvasWindLayer','toDegrees','requestRender','register','globalCompositeOperation','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','tlng','modelMatrix','push','Math','getPostProcessingPositionShader','_map','type','none','commandToExecute','CLAMP_TO_EDGE','NEAREST','redraw','willReadFrequently','wrapT','_maxAge','_drawLines','RGBA','SCENE3D','north','particleSystem','geometry','clearCommand','currentParticlesPosition','max','Cesium','min','minificationFilter','ymin','speed','drawingBufferWidth','defineProperty','lineWidth','now','unbindEvent','frameRateAdjustment','#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','fromGeometry','_calc_speedRate','scene','visible','fillRect','stringify','pass','toGridXY','frameTime','forEach','bounds','1002569TLYIkD','flatMap','length','mouse_down','moveTo','keys','getPrimitives','getUVByXY','remove','strokeStyle','latRange','windTextures','preExecute','pickEllipsoid','layer','lastFramesPerSecond','wind','_canrefresh','textures','grid','rows','segments','bindEvent','data','_setOptionsHook','_onMouseMoveEvent','speedFactor','off','postProcessingPosition','clearFramebuffers','context','round','SceneMode','_onMapWhellEvent','width','depthMask','canvasHeight','MIN_VALUE','canvasWidth','mouseMove','Rectangle','viewerParameters','STATIC_DRAW','WindLayer','show','3235036FHdmtH','all','createWindTextures','primitives','destroyParticlesTextures','alt','_onMouseDownEvent','_removedHook','enabled','IDENTITY','_pointerEvents','0px','requestAnimationFrame','createSegmentsGeometry','_randomParticle','computing','abs','_speedRate','segmentsDepth','warn','mode','random','floor','canvasContext','30NOhgxt','colors','isPointVisible','createColorTableTexture','postMessage','depthTest','execute','pixelSize','isInExtent','cols','createComputingPrimitives','ymax','rendering','style','vertexArray','attributeLocations','#ffffff','fill','createCommand','hasOwnProperty','commandList','clientWidth','vmax','1540560VYCLMO','createPrimitives','shaderProgram','udata','morphComplete','updateWindData','reCreateWindTextures','73694ULgBGp','auto','_calcUV','17135723XYxqqn','35CfLRuA','createRawRenderState','previousParticlesPosition','particlesTextures','lng','visibility','framebuffer','_addedHook','talt','onColorTableChange','east','removeEventListener','pointerEvents','camera','reverse','create','getV','frameRateMonitor','vmin','componentsPerAttribute','WindUtil','speedRate','quietPeriod','particles','pixelDatatype','setOptions','Cartesian3','mouse_move','particlesSpeed','#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','canvas','destroy','_mountedHook','8LlFKST','updatePosition','pow','Compute','init','magnificationFilter','frameRate','changeOptions','outputTexture','processWindData','sqrt','domain','south','calculateSpeed','BaseLayer','pointer-events','createParticlesTextures','EventType','flipY','particlesNumber','prototype','uniformMap','isDynamic','height','clear','beginPath','left','37218lWzCFR','fixedHeight','updateViewerParameters','globe','createRenderingFramebuffers','drawingBufferHeight','DomUtil','lat','ONE_MINUS_SRC_ALPHA','particlesTextureSize','LINEAR','rawRenderState','error','vertexShaderSource','ellipsoid','maxAge','options','interpolated','dropRateBump','_tomap','ColorRamp','positionWC','colorTable','updateOptions','Cartesian2','xmax','windData','cancelAnimationFrame','xmin','rgb(206,255,255)','clientHeight','windField','vdata','fromCache','framebuffers','mouseUp','normal','cos','default','resize','UNSIGNED_INT','hidden','green','OPAQUE','_onMouseUpEvent','20TisIhN','toRadians','addEventListener','pixelFormat','array','west','lineTo','fromDegrees','worker','age','getParticles','update','3723966gFVdFk','initFrameRate'];_0x34f9=function(){return _0x3ab8f7;};return _0x34f9();}class CanvasWindLayer extends BaseLayer{constructor(_0x319e06={}){super(_0x319e06);function _0x5bc554(_0x38715c,_0x13e37f){return _0x19df7d(_0x38715c-0x369,_0x13e37f);}this['_setOptionsHook'](_0x319e06);function _0x1c9abc(_0x1b3993,_0x5b4571){return _0x2e45e5(_0x5b4571,_0x1b3993-0x16f);}this['canvas']=null,_0x319e06[_0x5bc554(0x4a4,0x45a)]&&_0x319e06['steps']&&(this['_colorRamp']=new mars3d__namespace[(_0x1c9abc(0x86,0x9d))](_0x319e06));}['_setOptionsHook'](_0x1174c7,_0x23efd1){this[_0x102716(-0xe0,-0x77)]=0x3e8/(_0x1174c7[_0x54aa9d(-0xd1,-0x106)]||0xa),this['_pointerEvents']=this['options'][_0x54aa9d(-0xec,-0x91)]??![];function _0x102716(_0x5cc6a7,_0x2d0efa){return _0x2e45e5(_0x5cc6a7,_0x2d0efa-0x16);}this['color']=_0x1174c7['color']||_0x54aa9d(0xc,0xb);function _0x54aa9d(_0x35d73f,_0x1340f3){return _0x2e45e5(_0x1340f3,_0x35d73f-0x41);}this['lineWidth']=_0x1174c7[_0x54aa9d(-0x59,-0x96)]||0x1,this['fixedHeight']=_0x1174c7[_0x102716(-0xb8,-0xe6)]??0x0,this['flipY']=_0x1174c7[_0x102716(-0x151,-0xf0)]??![],this[_0x54aa9d(-0x9d,-0x78)]&&this['windField']['setOptions'](_0x1174c7);}get['layer'](){return this['canvas'];}get[_0x19df7d(0x11b,0x117)](){function _0x3f8ef4(_0x504e10,_0x1f15ff){return _0x19df7d(_0x504e10-0x386,_0x1f15ff);}return this['_map']['scene']['canvas'][_0x3f8ef4(0x4d5,0x558)];}get[_0x19df7d(0x119,0xa4)](){function _0x2b3b6d(_0x187bb5,_0x4c8aec){return _0x2e45e5(_0x187bb5,_0x4c8aec-0x371);}function _0x4a44ff(_0x5148ea,_0x3b42bc){return _0x2e45e5(_0x5148ea,_0x3b42bc-0x3fe);}return this['_map'][_0x4a44ff(0x376,0x36b)]['canvas'][_0x4a44ff(0x3a4,0x31f)];}get['pointerEvents'](){function _0x5330c3(_0x1a7bb2,_0x171e01){return _0x19df7d(_0x1a7bb2-0x173,_0x171e01);}return this[_0x5330c3(0x29f,0x28b)];}set['pointerEvents'](_0x529806){this[_0x1c16ee(-0x78,-0x37)]=_0x529806;function _0x478915(_0x2a294b,_0x28c764){return _0x2e45e5(_0x2a294b,_0x28c764- -0x10c);}if(!this['canvas'])return;function _0x1c16ee(_0x2eb992,_0x1fb52b){return _0x19df7d(_0x2eb992- -0x1a4,_0x1fb52b);}_0x529806?this['canvas'][_0x478915(-0xf6,-0x144)][_0x1c16ee(-0x12e,-0x1b8)]=_0x478915(-0x128,-0x168):this['canvas'][_0x478915(-0xce,-0x144)][_0x478915(-0x1d9,-0x215)]=_0x478915(-0x182,-0x1be);}get['particlesNumber'](){function _0xe8f270(_0x280a1e,_0x31debd){return _0x19df7d(_0x280a1e-0x18c,_0x31debd);}return this[_0xe8f270(0x21e,0x1e3)]['particlesNumber'];}set['particlesNumber'](_0x4376ac){function _0x32a305(_0x1cdf3d,_0x6da1a3){return _0x2e45e5(_0x6da1a3,_0x1cdf3d-0xaa);}this['options']['particlesNumber']=_0x4376ac,clearTimeout(this['_canrefresh']),this[_0x32a305(0x31,0x6)]=setTimeout(()=>{function _0x3debef(_0x4b39d7,_0x2ebcb2){return _0x32a305(_0x4b39d7-0x34,_0x2ebcb2);}this[_0x3debef(0x30,0x3b)]();},0x1f4);}get[_0x19df7d(0x5b,0xdc)](){return this['options']['speedRate'];}set['speedRate'](_0x227e53){this[_0x4d2538(0x18a,0x117)][_0x2fe875(0x197,0x169)]=_0x227e53;function _0x4d2538(_0x336a32,_0x463a0d){return _0x19df7d(_0x336a32-0xf8,_0x463a0d);}function _0x2fe875(_0x572c75,_0x2aefda){return _0x2e45e5(_0x2aefda,_0x572c75-0x2bb);}this['windField']&&(this[_0x2fe875(0x1dd,0x1a1)]['speedRate']=_0x227e53);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x1397cc){function _0x47f37d(_0x5cd578,_0x46f478){return _0x19df7d(_0x5cd578-0x1c3,_0x46f478);}function _0x210e28(_0x462a7c,_0x192153){return _0x2e45e5(_0x192153,_0x462a7c-0x4c);}this[_0x47f37d(0x255,0x1d8)]['maxAge']=_0x1397cc,this[_0x47f37d(0x264,0x205)]&&(this['windField'][_0x210e28(-0xa2,-0x2f)]=_0x1397cc);}get['data'](){return this['windData'];}set['data'](_0x46c1d6){this['setData'](_0x46c1d6);}get['rectangle'](){let _0x35e032=this[_0x539d3d(-0x217,-0x1cf)][_0x52a2a3(0x4,-0x73)],_0x353499=this['windData'][_0x539d3d(-0x218,-0x279)],_0x55ae70=this[_0x539d3d(-0x217,-0x1bf)]['ymin'],_0x381ea3=this[_0x52a2a3(0x2,-0x54)]['ymax'];_0x353499>=0x167&&_0x35e032===0x0&&(_0x35e032=-0xb4,_0x353499=0xb4);function _0x539d3d(_0x527786,_0x596d69){return _0x19df7d(_0x527786- -0x2b3,_0x596d69);}function _0x52a2a3(_0x508090,_0x502e60){return _0x2e45e5(_0x502e60,_0x508090-0xe5);}return _0x35e032=Math[_0x52a2a3(0x43,0x2c)](_0x35e032,-0xb4),_0x353499=Math['min'](_0x353499,0xb4),_0x55ae70=Math['max'](_0x55ae70,-0x5a),_0x381ea3=Math['min'](_0x381ea3,0x5a),Cesium[_0x52a2a3(0x83,0xd3)][_0x52a2a3(0x1c,-0x14)](_0x35e032,_0x55ae70,_0x353499,_0x381ea3);}['_showHook'](_0x24a4da){function _0xcc2591(_0x45d3a8,_0x56df8a){return _0x19df7d(_0x45d3a8- -0x379,_0x56df8a);}function _0x51dcf0(_0x47b944,_0x45dc7e){return _0x19df7d(_0x47b944-0x35d,_0x45dc7e);}_0x24a4da?this[_0x51dcf0(0x4c0,0x46d)]():(this[_0x51dcf0(0x3f9,0x3d9)]&&(this['options']['data']=this['windData']),this[_0xcc2591(-0x250,-0x289)]());}[_0x2e45e5(-0x111,-0x119)](){function _0x1a4f95(_0x1ea6d4,_0x19e828){return _0x19df7d(_0x1ea6d4-0x3ca,_0x19e828);}function _0x37210c(_0x1fcbbf,_0x31a228){return _0x19df7d(_0x31a228-0x390,_0x1fcbbf);}this['options'][_0x37210c(0x42f,0x447)]?this['initWorker']():this['windField']=new CanvasWindField(this[_0x37210c(0x410,0x422)]);}['_addedHook'](){function _0x1d5d4b(_0x47728a,_0xc8e52e){return _0x19df7d(_0x47728a- -0x2eb,_0xc8e52e);}this['canvas']=this['_createCanvas']();const _0x37ac4d={};_0x37ac4d[_0x1d5d4b(-0x219,-0x19a)]=!![],this[_0x1d5d4b(-0x1b2,-0x20a)]=this['canvas']['getContext']('2d',_0x37ac4d),this[_0x1d5d4b(-0x1e0,-0x1b6)]();function _0x5ca894(_0x3aa461,_0x49fe6b){return _0x2e45e5(_0x3aa461,_0x49fe6b-0x130);}this[_0x5ca894(-0x25,0x43)]['data']&&this['setData'](this[_0x1d5d4b(-0x259,-0x253)]['data']);}['_removedHook'](){this['clear']();function _0x3ff4a8(_0x492239,_0x16e49d){return _0x2e45e5(_0x16e49d,_0x492239-0xaa);}this[_0x3ff4a8(0x12,-0x63)]();function _0x27aefc(_0x5170c3,_0x1caa6b){return _0x19df7d(_0x5170c3- -0x8b,_0x1caa6b);}this[_0x27aefc(-0x27,0x25)]&&(this[_0x27aefc(0x40,0x80)]['container']['removeChild'](this[_0x27aefc(-0x27,0x27)]),delete this[_0x27aefc(-0x27,0x59)]);}['_createCanvas'](){const _0x531cf6=mars3d__namespace[_0x7a146b(0x45c,0x3f2)]['create']('canvas','mars3d-canvasWind',this['_map']['container']);_0x531cf6['style']['position']='absolute',_0x531cf6['style']['top']=_0x7a146b(0x4a5,0x497),_0x531cf6['style'][_0x50bb3e(0x3a2,0x39f)]='0px',_0x531cf6['style'][_0x50bb3e(0x488,0x435)]=this['_map']['scene'][_0x50bb3e(0x303,0x382)]['clientWidth']+'px';function _0x50bb3e(_0x399e0f,_0xfea855){return _0x19df7d(_0xfea855-0x31e,_0x399e0f);}function _0x7a146b(_0x274a8d,_0x16f2a9){return _0x2e45e5(_0x274a8d,_0x16f2a9-0x4e9);}return _0x531cf6[_0x50bb3e(0x4e3,0x465)]['height']=this['_map'][_0x50bb3e(0x380,0x40a)][_0x50bb3e(0x36c,0x382)]['clientHeight']+'px',_0x531cf6['style']['pointerEvents']=this['_pointerEvents']?_0x7a146b(0x45c,0x4c3):'none',_0x531cf6['style']['zIndex']=this['options']['zIndex']??0x9,_0x531cf6['width']=this[_0x50bb3e(0x369,0x3e9)]['scene'][_0x7a146b(0x41c,0x3ce)]['clientWidth'],_0x531cf6['height']=this[_0x7a146b(0x41c,0x435)][_0x50bb3e(0x3f9,0x40a)]['canvas']['clientHeight'],_0x531cf6;}['resize'](){function _0xf7ebd0(_0x4a9849,_0x1a809e){return _0x2e45e5(_0x1a809e,_0x4a9849- -0x9c);}function _0x1b047a(_0x5aae02,_0x270aba){return _0x2e45e5(_0x270aba,_0x5aae02-0x30d);}this['canvas']&&(this[_0x1b047a(0x1f2,0x1ac)][_0x1b047a(0x2d5,0x355)]['width']=this[_0x1b047a(0x259,0x2ba)]['scene'][_0xf7ebd0(-0x1b7,-0x1c6)][_0x1b047a(0x2dd,0x2d6)]+'px',this['canvas']['style']['height']=this['_map'][_0x1b047a(0x27a,0x23f)]['canvas']['clientHeight']+'px',this[_0xf7ebd0(-0x1b7,-0x14c)]['width']=this['_map']['scene'][_0xf7ebd0(-0x1b7,-0x200)]['clientWidth'],this['canvas']['height']=this[_0xf7ebd0(-0x150,-0x162)][_0x1b047a(0x27a,0x2fd)]['canvas']['clientHeight']);}['bindEvent'](){const _0x1a1d4c=this;let _0x44eaba=Date['now']();(function _0x35c7b8(){if(_0x1a1d4c['isDestroy'])return;function _0x5ad79c(_0x41410a,_0x1a75c0){return _0x5498(_0x41410a-0x12e,_0x1a75c0);}_0x1a1d4c['_animateFrame']=window[_0x4f0ba1(0x4cf,0x4c6)](_0x35c7b8);function _0x4f0ba1(_0x23668c,_0x5e9471){return _0x5498(_0x5e9471-0x355,_0x23668c);}if(_0x1a1d4c['show']&&_0x1a1d4c[_0x5ad79c(0x212,0x24c)]){const _0x4ab9cb=Date[_0x5ad79c(0x257,0x1dd)](),_0x54dac2=_0x4ab9cb-_0x44eaba;_0x54dac2>_0x1a1d4c['frameTime']&&(_0x44eaba=_0x4ab9cb-_0x54dac2%_0x1a1d4c[_0x4f0ba1(0x423,0x48a)],_0x1a1d4c[_0x5ad79c(0x22b,0x2a5)]());}}());function _0x3bbb0d(_0x222a31,_0x486681){return _0x19df7d(_0x222a31-0xa4,_0x486681);}window['addEventListener'](_0x149866(0xcc,0x12b),this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![];function _0x149866(_0x3e6049,_0x2d6701){return _0x19df7d(_0x3e6049-0x23,_0x2d6701);}this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x3bbb0d(0x1ba,0x162)],this),this[_0x149866(0xee,0x8a)]['on'](mars3d__namespace[_0x3bbb0d(0x11c,0x132)]['mouseDown'],this[_0x149866(0x14b,0x129)],this),this[_0x149866(0xee,0x12b)]['on'](mars3d__namespace[_0x3bbb0d(0x11c,0xa2)][_0x149866(0xc8,0x9d)],this[_0x3bbb0d(0x152,0x173)],this));}['unbindEvent'](){window[_0x1eb34f(0x34d,0x337)](this['_animateFrame']),delete this['_animateFrame'],window['removeEventListener']('resize',this[_0x1eb34f(0x317,0x343)]);function _0x196ce8(_0x18fe5e,_0x13644c){return _0x2e45e5(_0x13644c,_0x18fe5e-0x1f2);}function _0x1eb34f(_0xeab748,_0x4763ca){return _0x19df7d(_0x4763ca-0x29a,_0xeab748);}this[_0x196ce8(0x105,0x157)]['mouseHidden']&&(this['_map'][_0x1eb34f(0x434,0x3aa)](mars3d__namespace[_0x196ce8(0xeb,0xe4)]['wheel'],this[_0x196ce8(0x189,0x1d3)],this),this[_0x196ce8(0x13e,0x19c)]['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x196ce8(0x19b,0x19f)],this),this[_0x1eb34f(0x3cb,0x365)][_0x196ce8(0x183,0x192)](mars3d__namespace['EventType']['mouseUp'],this[_0x196ce8(0x121,0x96)],this),this[_0x1eb34f(0x3b8,0x365)][_0x196ce8(0x183,0x1b4)](mars3d__namespace[_0x1eb34f(0x311,0x312)][_0x196ce8(0x18f,0x165)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x134678){clearTimeout(this['refreshTimer']);function _0x1f9355(_0x54a4c5,_0x456316){return _0x2e45e5(_0x54a4c5,_0x456316-0x453);}function _0x32f031(_0x2802a9,_0x2b7420){return _0x2e45e5(_0x2802a9,_0x2b7420-0x1d4);}if(!this[_0x32f031(0x150,0x176)]||!this['canvas'])return;this[_0x1f9355(0x2b3,0x338)]['style']['visibility']=_0x32f031(0xab,0x100),this['refreshTimer']=setTimeout(()=>{function _0x546c1f(_0x50f791,_0x37b621){return _0x1f9355(_0x37b621,_0x50f791- -0x3b5);}if(!this['show'])return;this['redraw'](),this['canvas']['style']['visibility']=_0x546c1f(0xc,0x7);},0xc8);}['_onMouseDownEvent'](_0x5b49ed){this[_0x2e20a7(0x32b,0x399)]=!![];function _0x2e20a7(_0x524a89,_0x2829cc){return _0x19df7d(_0x2829cc-0x2a1,_0x524a89);}function _0x506883(_0x585138,_0x171b38){return _0x19df7d(_0x585138-0x23f,_0x171b38);}this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x2e20a7(0x3ac,0x3af)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x23a114){function _0x3634e4(_0x38b737,_0x51bbba){return _0x19df7d(_0x51bbba-0x411,_0x38b737);}function _0x26228f(_0x353c91,_0x23b807){return _0x19df7d(_0x353c91-0x16,_0x23b807);}if(!this[_0x3634e4(0x59e,0x532)]||!this['canvas'])return;this[_0x26228f(0x10e,0x127)]&&(this[_0x3634e4(0x447,0x475)][_0x26228f(0x15d,0x139)]['visibility']=_0x3634e4(0x4dd,0x4bc),this['mouse_move']=!![]);}[_0x19df7d(0xae,0x30)](_0x1878ea){if(!this[_0x3558f1(0x110,0xa5)]||!this['canvas'])return;this['_map']['off'](mars3d__namespace[_0x24878a(0xa5,0xeb)]['mouseMove'],this[_0x3558f1(0xfd,0x16b)],this);function _0x3558f1(_0x3a26f0,_0x414d99){return _0x19df7d(_0x3a26f0- -0x11,_0x414d99);}this['mouse_down']&&this[_0x3558f1(0x50,0xa5)]&&this[_0x24878a(0x100,0x144)]();function _0x24878a(_0x2f6c9e,_0x4f583c){return _0x19df7d(_0x4f583c-0x73,_0x2f6c9e);}this['canvas']['style'][_0x24878a(0x1c3,0x1d4)]=_0x3558f1(0xdc,0x5e),this[_0x3558f1(0xe7,0x10f)]=![],this['mouse_move']=![];}['setData'](_0x239052){this['clear'](),this['windData']=_0x239052;function _0xc27735(_0x10c22c,_0x1fdbb7){return _0x19df7d(_0x10c22c-0xc3,_0x1fdbb7);}this['windField']['setDate'](_0x239052),this[_0xc27735(0x194,0x199)]();}['redraw'](){if(!this[_0x420d8f(-0x120,-0x193)])return;this['windField']['setOptions'](this['options']);function _0x420d8f(_0x506f59,_0x52ff85){return _0x19df7d(_0x506f59- -0x241,_0x52ff85);}this['update']();}['update'](){function _0x2ab3ef(_0x547aa8,_0x35c8e0){return _0x2e45e5(_0x35c8e0,_0x547aa8-0x17d);}if(this['_updateIng'])return;this['_updateIng']=!![];if(this['worker'])this[_0x2ab3ef(0x9f,0x110)]['update']();else{const _0x385333=this['windField'][_0x2ab3ef(0xb7,0xe7)]();this['_drawLines'](_0x385333);}function _0x5e2c06(_0x42bf33,_0x1bcb96){return _0x2e45e5(_0x42bf33,_0x1bcb96-0x2a6);}this['_updateIng']=![];}['_drawLines'](_0xd64633){this['_canvasParticles']=_0xd64633,this[_0x19fb3f(0x38f,0x36c)][_0x19fb3f(0x362,0x2f7)]='destination-in';function _0x5dede0(_0x2febb8,_0x143b2b){return _0x2e45e5(_0x143b2b,_0x2febb8-0x2a5);}this['canvasContext'][_0x19fb3f(0x32b,0x321)](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']='lighter';function _0x19fb3f(_0x233966,_0x1b45a7){return _0x19df7d(_0x1b45a7-0x233,_0x233966);}this['canvasContext']['globalAlpha']=0.9;const _0x439cea=this[_0x19fb3f(0x377,0x2fe)]['scene']['mode']!==Cesium['SceneMode'][_0x19fb3f(0x2c7,0x30a)],_0x30cb6d=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x4adf00=0x0,_0x355d0c=_0xd64633[_0x5dede0(0x21d,0x1a3)];_0x4adf00<_0x355d0c;_0x4adf00++){const _0x45ed8e=_0xd64633[_0x4adf00],_0x6950bd=this['_tomap'](_0x45ed8e,_0x45ed8e[_0x19fb3f(0x37c,0x393)],_0x45ed8e[_0x5dede0(0x1af,0x124)],_0x45ed8e['alt']),_0x714e3b=this[_0x5dede0(0x1bb,0x174)](_0x45ed8e,_0x45ed8e['tlng'],_0x45ed8e['tlat'],_0x45ed8e[_0x5dede0(0x28a,0x259)]);if(!_0x6950bd||!_0x714e3b)continue;if(_0x439cea&&Math['abs'](_0x6950bd[0x0]-_0x714e3b[0x0])>=_0x30cb6d)continue;this['canvasContext']['beginPath'](),this['canvasContext'][_0x19fb3f(0x362,0x318)]=this['lineWidth'],this['canvasContext'][_0x19fb3f(0x2f7,0x331)]=this['_colorRamp']['getColor'](_0x45ed8e[_0x19fb3f(0x393,0x315)]),this['canvasContext'][_0x5dede0(0x21f,0x286)](_0x6950bd[0x0],_0x6950bd[0x1]),this[_0x19fb3f(0x2f0,0x36c)]['lineTo'](_0x714e3b[0x0],_0x714e3b[0x1]),this['canvasContext']['stroke']();}else{this[_0x5dede0(0x25f,0x270)][_0x19fb3f(0x2bb,0x2b3)](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x5dede0(0x25f,0x205)]['strokeStyle']=this['color'];for(let _0x2e0f5b=0x0,_0x2fa7c2=_0xd64633[_0x5dede0(0x21d,0x25e)];_0x2e0f5b<_0x2fa7c2;_0x2e0f5b++){const _0x271585=_0xd64633[_0x2e0f5b],_0x5c4b62=this['_tomap'](_0x271585,_0x271585[_0x5dede0(0x286,0x288)],_0x271585['lat'],_0x271585[_0x19fb3f(0x38a,0x35a)]),_0x1c6b26=this[_0x19fb3f(0x311,0x2c8)](_0x271585,_0x271585[_0x19fb3f(0x31e,0x2f9)],_0x271585['tlat'],_0x271585[_0x5dede0(0x28a,0x217)]);if(!_0x5c4b62||!_0x1c6b26)continue;if(_0x439cea&&Math['abs'](_0x5c4b62[0x0]-_0x1c6b26[0x0])>=_0x30cb6d)continue;this['canvasContext']['moveTo'](_0x5c4b62[0x0],_0x5c4b62[0x1]),this['canvasContext'][_0x5dede0(0x1db,0x1bd)](_0x1c6b26[0x0],_0x1c6b26[0x1]);}this[_0x19fb3f(0x38a,0x36c)]['stroke']();}}['_tomap'](_0x4281e7,_0x196eab,_0x1a9725,_0x1196de){function _0x1967f6(_0x5300ee,_0x3ffa39){return _0x2e45e5(_0x3ffa39,_0x5300ee-0x4a0);}const _0x52a3f7=Cesium[_0x3e2619(0x3e4,0x3e3)][_0x3e2619(0x4a3,0x439)](_0x196eab,_0x1a9725,_0x1196de??this['fixedHeight']),_0x2aeabe=this[_0x1967f6(0x3ec,0x432)][_0x3e2619(0x3ea,0x46f)];if(_0x2aeabe['mode']===Cesium[_0x3e2619(0x48a,0x498)][_0x3e2619(0x493,0x45a)]){const _0x42283e=new Cesium['EllipsoidalOccluder'](_0x2aeabe['globe']['ellipsoid'],_0x2aeabe['camera'][_0x3e2619(0x465,0x41a)]),_0x434e0f=_0x42283e[_0x3e2619(0x4ca,0x4bf)](_0x52a3f7);if(!_0x434e0f)return _0x4281e7['age']=0x0,null;}function _0x3e2619(_0x18bd1e,_0x4fb422){return _0x19df7d(_0x4fb422-0x383,_0x18bd1e);}const _0x3a8ca5=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map']['scene'],_0x52a3f7);return _0x3a8ca5?[_0x3a8ca5['x'],_0x3a8ca5['y']]:null;}['clear'](){function _0x5b339c(_0x298aa1,_0x1fdb91){return _0x2e45e5(_0x1fdb91,_0x298aa1-0x108);}this['windField']['clear'](),delete this[_0x5b339c(0x25,-0x1a)];}['initWorker'](){function _0x11748b(_0x11fc70,_0x14eb02){return _0x19df7d(_0x14eb02-0x213,_0x11fc70);}function _0x2e47a6(_0x1f7af2,_0x568d97){return _0x19df7d(_0x568d97-0x262,_0x1f7af2);}this['worker']=new Worker(this[_0x11748b(0x256,0x2a5)]['worker']),this[_0x2e47a6(0x2c9,0x319)]['onmessage']=_0x9226e0=>{function _0x470d0c(_0xbeb26d,_0x594cc5){return _0x2e47a6(_0x594cc5,_0xbeb26d- -0x3a5);}this[_0x470d0c(-0x6e,-0xb9)](_0x9226e0['data']['particles']),this['_updateIng2']=![];},this[_0x11748b(0x280,0x2b4)]={'init':_0x17d046=>{const _0x216886={};_0x216886['type']='init',_0x216886['options']=_0x17d046;function _0x2aa92a(_0x309fca,_0x2db7ae){return _0x11748b(_0x2db7ae,_0x309fca- -0xef);}function _0x780928(_0x29e2a8,_0x59bef5){return _0x2e47a6(_0x29e2a8,_0x59bef5-0x146);}this[_0x780928(0x43f,0x45f)][_0x780928(0x533,0x4e6)](_0x216886);},'setOptions':_0x3d3ff7=>{function _0x296945(_0x3810ab,_0x41cdcd){return _0x11748b(_0x41cdcd,_0x3810ab- -0x255);}const _0x94e938={};_0x94e938['type']=_0x296945(0x1d,0xa8),_0x94e938['options']=_0x3d3ff7;function _0x53fcb9(_0xbb6184,_0x10cacb){return _0x11748b(_0x10cacb,_0xbb6184- -0x43b);}this[_0x296945(0x75,0xb3)]['postMessage'](_0x94e938);},'setDate':_0x15a2db=>{const _0x2cf707={};_0x2cf707[_0x156b47(-0x2f7,-0x2ab)]='setDate',_0x2cf707[_0x458372(0x194,0x1cb)]=_0x15a2db;function _0x156b47(_0xb467b4,_0x169e64){return _0x2e47a6(_0xb467b4,_0x169e64- -0x5d9);}function _0x458372(_0x18857e,_0x2057e8){return _0x11748b(_0x18857e,_0x2057e8- -0x154);}this[_0x458372(0x192,0x176)][_0x156b47(-0x1e0,-0x239)](_0x2cf707);},'update':()=>{if(this['_updateIng2'])return;function _0x152959(_0x801e15,_0x26857c){return _0x2e47a6(_0x26857c,_0x801e15-0xac);}this['_updateIng2']=!![];function _0xceaaf4(_0x3a0208,_0x5cd503){return _0x2e47a6(_0x5cd503,_0x3a0208-0xad);}const _0x3cfe81={};_0x3cfe81[_0xceaaf4(0x3db,0x3c6)]='update',this['worker'][_0x152959(0x44c,0x41a)](_0x3cfe81);},'clear':()=>{const _0x45e883={};function _0x4223a3(_0xd12d26,_0x4f5c5c){return _0x11748b(_0xd12d26,_0x4f5c5c- -0x439);}function _0x8b9cd0(_0xeaf87c,_0xe171ea){return _0x11748b(_0xe171ea,_0xeaf87c- -0x31e);}_0x45e883[_0x8b9cd0(-0x3f,-0xa2)]=_0x8b9cd0(-0x8c,-0x63),this[_0x4223a3(-0x1f3,-0x16f)][_0x8b9cd0(0x33,0xb1)](_0x45e883);}},this[_0x2e47a6(0x2db,0x303)][_0x11748b(0x238,0x27e)](this[_0x11748b(0x2d5,0x2a5)]);}}mars3d__namespace['LayerUtil'][_0x2e45e5(-0xa7,-0xbc)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x19df7d(0x5a,0xa7)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x2e45e5(-0x92,-0xbf)]=CanvasWindLayer,exports[_0x19df7d(0x120,0x10e)]=WindLayer,exports['WindUtil']=WindUtil;const _0x337697={};_0x337697['value']=!![];function _0x2e45e5(_0x52e518,_0xa9d995){return _0x5498(_0xa9d995- -0x1c2,_0x52e518);}Object[_0x2e45e5(-0x76,-0x9b)](exports,'__esModule',_0x337697);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.9.3",
3
+ "version": "3.9.4",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.9.3"
8
+ "mars3d": "~3.9.4"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"