mars3d-wind 3.10.7 → 3.10.9

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.10.7
5
- * 编译日期:2025-10-24 21:05
4
+ * 版本信息:v3.10.9
5
+ * 编译日期:2025-11-28 11:00
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:火星科技免费公开版 ,2025-07-01
8
8
  */
@@ -11,5 +11,5 @@
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';(function(_0x60abda,_0x3df5e6){function _0x9014e4(_0x4197db,_0x204367){return _0x540e(_0x4197db- -0x38b,_0x204367);}const _0x5821d9=_0x60abda();function _0x4dc492(_0x7536e0,_0x468679){return _0x540e(_0x468679- -0x265,_0x7536e0);}while(!![]){try{const _0x460d91=-parseInt(_0x9014e4(-0x29c,-0x2bf))/0x1*(parseInt(_0x9014e4(-0x2be,-0x30f))/0x2)+-parseInt(_0x4dc492(-0x146,-0x197))/0x3+parseInt(_0x9014e4(-0x27e,-0x206))/0x4+-parseInt(_0x4dc492(-0x179,-0x13d))/0x5*(-parseInt(_0x4dc492(-0x16c,-0xe5))/0x6)+parseInt(_0x4dc492(-0xc3,-0xf3))/0x7+-parseInt(_0x9014e4(-0x27f,-0x217))/0x8*(-parseInt(_0x9014e4(-0x23d,-0x1dd))/0x9)+-parseInt(_0x4dc492(-0x176,-0x119))/0xa*(parseInt(_0x9014e4(-0x275,-0x2bd))/0xb);if(_0x460d91===_0x3df5e6)break;else _0x5821d9['push'](_0x5821d9['shift']());}catch(_0x503e86){_0x5821d9['push'](_0x5821d9['shift']());}}}(_0x144d,0x573c4));function _interopNamespace(_0x6b85b9){if(_0x6b85b9&&_0x6b85b9['__esModule'])return _0x6b85b9;var _0x5534f5=Object[_0x4f92ab(0x508,0x4b8)](null);_0x6b85b9&&Object['keys'](_0x6b85b9)[_0x3715a3(0x187,0x1a1)](function(_0x45f8b5){function _0x231c2d(_0x93d109,_0x562d85){return _0x3715a3(_0x562d85,_0x93d109-0x4f);}function _0x41768b(_0x49dd71,_0x3b5dbe){return _0x3715a3(_0x3b5dbe,_0x49dd71- -0xf3);}if(_0x45f8b5!==_0x231c2d(0x2c2,0x303)){var _0x1aef7a=Object['getOwnPropertyDescriptor'](_0x6b85b9,_0x45f8b5);Object[_0x231c2d(0x204,0x190)](_0x5534f5,_0x45f8b5,_0x1aef7a[_0x231c2d(0x27d,0x2dd)]?_0x1aef7a:{'enumerable':!![],'get':function(){return _0x6b85b9[_0x45f8b5];}});}});_0x5534f5[_0x3715a3(0x293,0x273)]=_0x6b85b9;function _0x3715a3(_0x11a620,_0x918464){return _0x540e(_0x918464-0xdc,_0x11a620);}function _0x4f92ab(_0x57c2e5,_0x1b76fa){return _0x540e(_0x1b76fa-0x39d,_0x57c2e5);}return _0x5534f5;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function _0x540e(_0x144408,_0x1dad1d){const _0x144df2=_0x144d();return _0x540e=function(_0x540e94,_0x4fa9ca){_0x540e94=_0x540e94-0xc3;let _0x1596b6=_0x144df2[_0x540e94];return _0x1596b6;},_0x540e(_0x144408,_0x1dad1d);}function _0x164541(_0x593768,_0x5594ed){return _0x540e(_0x5594ed- -0x2b6,_0x593768);}function getU(_0x198d6f,_0x4ae743){const _0x4fe1ab=_0x198d6f*Math['cos'](Cesium$2['Math']['toRadians'](_0x4ae743));return _0x4fe1ab;}function getV(_0xc77029,_0x20644c){const _0x69192a=_0xc77029*Math['sin'](Cesium$2['Math'][_0x1eaf85(-0xf0,-0xcd)](_0x20644c));function _0x1eaf85(_0x5b92c5,_0x23a1ac){return _0x540e(_0x23a1ac- -0x226,_0x5b92c5);}return _0x69192a;}function getSpeed(_0x5e12e8,_0x56bef6){function _0x30c3f0(_0x27d13f,_0x19882b){return _0x540e(_0x19882b- -0x3cc,_0x27d13f);}const _0x2459ae=Math[_0x30c3f0(-0x2a9,-0x28e)](Math[_0x30c3f0(-0x1da,-0x1fb)](_0x5e12e8,0x2)+Math['pow'](_0x56bef6,0x2));function _0x12c6b1(_0x33eada,_0x10cc5d){return _0x540e(_0x33eada- -0x30a,_0x10cc5d);}return _0x2459ae;}function getDirection(_0x5a9521,_0x571384){let _0x5f304a=Cesium$2['Math']['toDegrees'](Math[_0x20bdb8(-0x1f7,-0x234)](_0x571384,_0x5a9521));function _0x20bdb8(_0x1523a5,_0x4a3d96){return _0x540e(_0x1523a5- -0x3ab,_0x4a3d96);}return _0x5f304a+=_0x5f304a<0x0?0x168:0x0,_0x5f304a;}const _0x18ade2={};_0x18ade2[_0x164541(-0x7d,-0x103)]=null,_0x18ade2['getU']=getU,_0x18ade2[_0x164541(-0x8e,-0xe0)]=getV,_0x18ade2['getSpeed']=getSpeed,_0x18ade2['getDirection']=getDirection;var WindUtil=_0x18ade2,updatePositionShader=_0x164541(-0x13d,-0x141),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=_0x9b7c55(0x2de,0x348),renderParticlesVertexShader=_0x9b7c55(0x31b,0x328);const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static[_0x164541(-0xfc,-0x16e)](){const _0x3eddd5={};_0x3eddd5[_0x2f9490(-0x171,-0x19a)]=[calculateSpeedShader];function _0x2f9490(_0x9b3de3,_0x2caefc){return _0x9b7c55(_0x2caefc,_0x9b3de3- -0x48e);}return new ShaderSource$1(_0x3eddd5);}static[_0x164541(-0x20f,-0x194)](){const _0x2cfb91={};_0x2cfb91[_0x58c9f4(0xcc,0x91)]=[updatePositionShader];function _0x58c9f4(_0x546a0a,_0xd53814){return _0x164541(_0x546a0a,_0xd53814-0x1e3);}return new ShaderSource$1(_0x2cfb91);}static[_0x164541(-0x11d,-0x183)](){const _0x10e036={};_0x10e036[_0x506823(0x117,0xc5)]=[renderParticlesVertexShader];function _0x506823(_0x57c953,_0x5be7f2){return _0x164541(_0x5be7f2,_0x57c953-0x269);}return new ShaderSource$1(_0x10e036);}static['getSegmentDrawFragmentShader'](){const _0x3449f8={};function _0x3d7a1e(_0x421733,_0x4082ec){return _0x164541(_0x421733,_0x4082ec- -0xe);}return _0x3449f8[_0x3d7a1e(-0x141,-0x160)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x3449f8);}static['getPostProcessingPositionShader'](){const _0x4da2e9={};return _0x4da2e9['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x4da2e9);}}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(_0x57adcd){this[_0xc3156b(0x2ba,0x240)]=_0x57adcd[_0xa99879(0x85,0x15)],this['geometry']=_0x57adcd['geometry'],this[_0xa99879(0x9,-0x5f)]=_0x57adcd[_0xc3156b(0x1ee,0x1cc)],this[_0xc3156b(0x27b,0x219)]=_0x57adcd['primitiveType'];function _0xc3156b(_0x145538,_0x3090cd){return _0x164541(_0x145538,_0x3090cd-0x374);}this['uniformMap']=_0x57adcd[_0xc3156b(0x26f,0x266)]||{},this['vertexShaderSource']=_0x57adcd['vertexShaderSource'],this['fragmentShaderSource']=_0x57adcd['fragmentShaderSource'],this[_0xa99879(0xb5,0x3a)]=_0x57adcd['rawRenderState'],this[_0xc3156b(0x1f9,0x194)]=_0x57adcd['framebuffer'],this['outputTexture']=_0x57adcd['outputTexture'],this['autoClear']=_0x57adcd['autoClear']??![],this['preExecute']=_0x57adcd[_0xa99879(-0x72,-0x16)];function _0xa99879(_0x2e0a89,_0x2e7a72){return _0x9b7c55(_0x2e0a89,_0x2e7a72- -0x326);}this['show']=!![],this[_0xa99879(-0x7f,0xb)]=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x57adcd[_0xc3156b(0x2d6,0x27c)]??(()=>!![]),this['autoClear']&&(this[_0xc3156b(0x214,0x19a)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0xa99879(-0x101,-0x9c)]}));}['createCommand'](_0x36e459){function _0x31321c(_0x527726,_0x2fbc96){return _0x9b7c55(_0x2fbc96,_0x527726-0x2e);}function _0x3327cb(_0x32cecb,_0x28ebef){return _0x9b7c55(_0x28ebef,_0x32cecb- -0x4f);}if(this['commandType']==='Draw'){const _0x86b45b={};_0x86b45b['context']=_0x36e459,_0x86b45b['geometry']=this[_0x3327cb(0x248,0x2cb)],_0x86b45b[_0x3327cb(0x278,0x20c)]=this[_0x31321c(0x2f5,0x29f)],_0x86b45b['bufferUsage']=BufferUsage$1[_0x3327cb(0x314,0x293)];const _0x52f340=VertexArray$1['fromGeometry'](_0x86b45b),_0x4b33d9={};_0x4b33d9[_0x31321c(0x39f,0x3ed)]=_0x36e459,_0x4b33d9[_0x31321c(0x2bc,0x245)]=this['vertexShaderSource'],_0x4b33d9['fragmentShaderSource']=this['fragmentShaderSource'],_0x4b33d9[_0x31321c(0x2f5,0x313)]=this[_0x3327cb(0x278,0x2cd)];const _0x31d1f0=ShaderProgram[_0x3327cb(0x29b,0x2f1)](_0x4b33d9),_0x536d10=RenderState['fromCache'](this['rawRenderState']),_0x1fadd9={};return _0x1fadd9['owner']=this,_0x1fadd9[_0x3327cb(0x260,0x2a1)]=_0x52f340,_0x1fadd9[_0x31321c(0x342,0x2bf)]=this['primitiveType'],_0x1fadd9['modelMatrix']=Matrix4['IDENTITY'],_0x1fadd9['renderState']=_0x536d10,_0x1fadd9['shaderProgram']=_0x31d1f0,_0x1fadd9['framebuffer']=this[_0x3327cb(0x240,0x27d)],_0x1fadd9['uniformMap']=this[_0x31321c(0x38f,0x30f)],_0x1fadd9[_0x3327cb(0x25f,0x1d8)]=Pass$1['OPAQUE'],new DrawCommand(_0x1fadd9);}else{if(this['commandType']===_0x3327cb(0x2c4,0x273)){const _0x544c66={};return _0x544c66[_0x31321c(0x2df,0x2ae)]=this,_0x544c66[_0x31321c(0x35b,0x396)]=this['fragmentShaderSource'],_0x544c66['uniformMap']=this[_0x3327cb(0x312,0x2f4)],_0x544c66[_0x3327cb(0x26a,0x2ea)]=this['outputTexture'],_0x544c66['persists']=!![],new ComputeCommand(_0x544c66);}else throw new Error(_0x31321c(0x36a,0x3b2));}}['setGeometry'](_0x2c354f,_0x21407b){function _0x128253(_0x36bd61,_0x1e2001){return _0x9b7c55(_0x36bd61,_0x1e2001- -0x222);}function _0x213866(_0x2a934c,_0x595ca1){return _0x164541(_0x2a934c,_0x595ca1-0x2a0);}this['geometry']=_0x21407b,defined(this['commandToExecute'])&&(this[_0x213866(0x144,0x162)][_0x213866(0xa7,0xe0)]=VertexArray$1['fromGeometry']({'context':_0x2c354f,'geometry':this['geometry'],'attributeLocations':this[_0x213866(0x6e,0xf8)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x5e8013){if(!this[_0x51ac4d(-0x10,-0x58)]())return;if(!this[_0x17ded1(0x3a2,0x411)]||!defined(_0x5e8013))return;function _0x51ac4d(_0x21d5c6,_0x2312db){return _0x164541(_0x2312db,_0x21d5c6-0xe8);}!defined(this['commandToExecute'])&&(this['commandToExecute']=this[_0x51ac4d(-0xe,-0x6a)](_0x5e8013[_0x51ac4d(-0x16,-0x70)]));defined(this[_0x51ac4d(-0x77,-0x8d)])&&this['preExecute']();if(!_0x5e8013[_0x17ded1(0x34a,0x347)]){console['warn']('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x5e8013['commandList']['push'](this[_0x17ded1(0x3ac,0x342)]);function _0x17ded1(_0x4d0238,_0x489b41){return _0x9b7c55(_0x4d0238,_0x489b41-0xad);}defined(this['commandToExecute'])&&_0x5e8013['commandList']['push'](this['commandToExecute']);}[_0x164541(-0x223,-0x1ae)](){return![];}['destroy'](){function _0xa8613c(_0x18ff67,_0x51d17f){return _0x9b7c55(_0x51d17f,_0x18ff67- -0x530);}if(defined(this[_0x29ae2f(0x2cb,0x32c)])){var _0x3df227;(_0x3df227=this['commandToExecute'][_0x29ae2f(0x2a6,0x296)])===null||_0x3df227===void 0x0||_0x3df227[_0x29ae2f(0x3aa,0x36a)](),this[_0xa8613c(-0x1ff,-0x189)][_0xa8613c(-0x295,-0x256)]=undefined;}function _0x29ae2f(_0xcdb6b1,_0x401f64){return _0x164541(_0xcdb6b1,_0x401f64-0x46a);}return destroyObject(this);}}function deepMerge(_0x1f6fea,_0x3fdea7){if(!_0x1f6fea)return _0x3fdea7;if(!_0x3fdea7)return _0x1f6fea;const _0x18e64a={..._0x3fdea7},_0x1bbb35=_0x18e64a;for(const _0x3c19f8 in _0x1f6fea){if(Object['prototype']['hasOwnProperty'][_0x503562(0x3b0,0x3b5)](_0x1f6fea,_0x3c19f8)){const _0x4e4d67=_0x1f6fea[_0x3c19f8],_0x26b3f7=_0x3fdea7[_0x3c19f8];if(Array['isArray'](_0x4e4d67)){_0x1bbb35[_0x3c19f8]=_0x4e4d67['slice']();continue;}if(_0x4e4d67&&typeof _0x4e4d67==='object'){_0x1bbb35[_0x3c19f8]=deepMerge(_0x4e4d67,_0x26b3f7||{});continue;}_0x4e4d67!==undefined&&(_0x1bbb35[_0x3c19f8]=_0x4e4d67);}}function _0x503562(_0x2480a7,_0x207b29){return _0x164541(_0x207b29,_0x2480a7-0x53b);}return _0x1bbb35;}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[_0x164541(-0x18d,-0x109)];class WindParticlesComputing{constructor(_0x51d229,_0x144c38,_0x53727b,_0x2be5e8,_0x4807cc){this[_0x5c91a8(-0x195,-0x211)]=_0x51d229,this[_0x27bf6f(-0x1d3,-0x241)]=_0x53727b,this[_0x5c91a8(-0x2e0,-0x263)]=_0x2be5e8,this[_0x27bf6f(-0x11d,-0x120)]=_0x144c38,this[_0x5c91a8(-0x256,-0x2cd)]=0x3c,this['frameRateAdjustment']=0x1;const _0x3a12c6={};_0x3a12c6['scene']=_0x4807cc,_0x3a12c6['samplingWindow']=0x1,_0x3a12c6[_0x5c91a8(-0x299,-0x212)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x3a12c6),this['initFrameRate']();function _0x5c91a8(_0x5d8b57,_0x4a5679){return _0x164541(_0x5d8b57,_0x4a5679- -0x113);}this[_0x5c91a8(-0x279,-0x23e)](),this[_0x27bf6f(-0x1b5,-0x1d0)]();function _0x27bf6f(_0x18870c,_0x693b30){return _0x164541(_0x693b30,_0x18870c- -0x17);}this[_0x5c91a8(-0x24c,-0x228)]();}[_0x164541(-0x157,-0x1de)](){function _0x23cd09(_0x318791,_0x5dcc46){return _0x164541(_0x5dcc46,_0x318791-0x278);}const _0x340864=()=>{function _0xdc92e8(_0x37abb5,_0x54c40d){return _0x540e(_0x54c40d-0xed,_0x37abb5);}function _0x14d402(_0x1c6f02,_0x5adcec){return _0x540e(_0x1c6f02-0xa5,_0x5adcec);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this[_0xdc92e8(0x248,0x1e9)]=this[_0x14d402(0x208,0x270)]['lastFramesPerSecond'],this[_0xdc92e8(0x264,0x2c2)]=0x3c/Math['max'](this[_0xdc92e8(0x1f8,0x1e9)],0x1));};_0x340864();const _0x5acd8a=setInterval(_0x340864,0x3e8),_0x49e10a=this[_0x23cd09(0x178,0xf7)]['bind'](this);this['destroy']=()=>{clearInterval(_0x5acd8a),_0x49e10a();};}['createWindTextures'](){const _0x24ebd8={};_0x24ebd8['minificationFilter']=TextureMinificationFilter$1['LINEAR'];function _0x4e8c90(_0x1a261b,_0x1cfd37){return _0x9b7c55(_0x1cfd37,_0x1a261b-0x104);}_0x24ebd8[_0x50837a(0x2a7,0x2f7)]=TextureMagnificationFilter$1[_0x4e8c90(0x453,0x477)];function _0x50837a(_0x6d5c68,_0x4141a4){return _0x164541(_0x6d5c68,_0x4141a4-0x471);}const _0x4ddac0={'context':this['context'],'width':this['windData'][_0x4e8c90(0x390,0x31a)],'height':this[_0x4e8c90(0x46d,0x4f4)][_0x4e8c90(0x433,0x43f)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x24ebd8)};this[_0x4e8c90(0x3a9,0x36e)]={'U':new Texture$1({..._0x4ddac0,'source':{'arrayBufferView':new Float32Array(this[_0x50837a(0x36a,0x36b)]['u']['array'])}}),'V':new Texture$1({..._0x4ddac0,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x1f95aa={};_0x1f95aa[_0x348f0e(0x3c0,0x43e)]=TextureMinificationFilter$1[_0x348f0e(0x3fd,0x3a2)],_0x1f95aa[_0x52ade2(0x191,0x1bb)]=TextureMagnificationFilter$1[_0x348f0e(0x3fd,0x3ab)];function _0x52ade2(_0x50f0b4,_0x3bc1be){return _0x9b7c55(_0x3bc1be,_0x50f0b4- -0x164);}function _0x348f0e(_0x3fe289,_0x311c26){return _0x164541(_0x311c26,_0x3fe289-0x521);}const _0x48c9ef={'context':this[_0x348f0e(0x423,0x3a2)],'width':this['options'][_0x52ade2(0x145,0x140)],'height':this[_0x348f0e(0x365,0x32f)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x52ade2(0x227,0x1aa)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options'][_0x348f0e(0x35b,0x2eb)]*this['options'][_0x348f0e(0x35b,0x3ab)]*0x4)[_0x52ade2(0x130,0x13b)](0x0)},'sampler':new Sampler$1(_0x1f95aa)};this[_0x348f0e(0x397,0x39e)]={'previousParticlesPosition':new Texture$1(_0x48c9ef),'currentParticlesPosition':new Texture$1(_0x48c9ef),'nextParticlesPosition':new Texture$1(_0x48c9ef),'postProcessingPosition':new Texture$1(_0x48c9ef),'particlesSpeed':new Texture$1(_0x48c9ef)};}['destroyParticlesTextures'](){function _0x4ed755(_0x4780ac,_0x136b5e){return _0x9b7c55(_0x136b5e,_0x4780ac-0xe9);}function _0x332da1(_0x400444,_0x1e54d9){return _0x9b7c55(_0x1e54d9,_0x400444- -0x579);}Object[_0x332da1(-0x2b6,-0x2f3)](this['particlesTextures'])['forEach'](_0x130790=>_0x130790[_0x4ed755(0x458,0x3d4)]());}['createComputingPrimitives'](){function _0x486687(_0x2ccb66,_0x545cc9){return _0x9b7c55(_0x545cc9,_0x2ccb66- -0x1b5);}function _0xddc2da(_0x58cc5b,_0x32dbd7){return _0x9b7c55(_0x32dbd7,_0x58cc5b- -0x67);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this[_0x486687(0xf0,0x92)]['V'],'uRange':()=>new Cartesian2$1(this[_0xddc2da(0x302,0x294)]['u']['min'],this[_0x486687(0x1b4,0x1f6)]['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x486687(0x1b4,0x1e5)]['v']['min'],this['windData']['v'][_0xddc2da(0x311,0x2b2)]),'speedRange':()=>new Cartesian2$1(this[_0x486687(0x1b4,0x20c)][_0xddc2da(0x222,0x21c)]['min'],this[_0xddc2da(0x302,0x330)]['speed'][_0xddc2da(0x311,0x28a)]),'currentParticlesPosition':()=>this[_0x486687(0x130,0xd1)]['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x20fbc2(_0xaef98f,_0x57beea){return _0x486687(_0x57beea-0xbd,_0xaef98f);}function _0x42d741(_0x42e872,_0x28bb9c){return _0x486687(_0x42e872-0x138,_0x28bb9c);}return(this['viewerParameters'][_0x20fbc2(0x16c,0x18d)]+0x32)*this[_0x20fbc2(0x22c,0x1bb)][_0x42d741(0x2c8,0x2b2)];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this[_0x486687(0x1b4,0x1bb)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this[_0x486687(0x1b4,0x18b)][_0x486687(0x138,0xc9)]['west'],this['windData']['bounds'][_0xddc2da(0x246,0x1f8)]),'maximum':()=>new Cartesian2$1(this['windData'][_0xddc2da(0x286,0x2b8)]['east'],this['windData'][_0x486687(0x138,0x18e)][_0x486687(0x158,0xd6)])},'fragmentShaderSource':ShaderManager[_0xddc2da(0x29a,0x275)](),'outputTexture':this[_0x486687(0x130,0x153)][_0x486687(0x128,0x15b)],'preExecute':()=>{function _0x334de0(_0x2bf809,_0x545962){return _0x486687(_0x545962-0x282,_0x2bf809);}function _0x1999eb(_0x5d56c0,_0x5e8f2c){return _0xddc2da(_0x5e8f2c- -0x41c,_0x5d56c0);}const _0x30d5ea=this['particlesTextures']['previousParticlesPosition'];this[_0x334de0(0x337,0x3b2)][_0x334de0(0x414,0x395)]=this['particlesTextures'][_0x334de0(0x4ae,0x45a)],this['particlesTextures']['currentParticlesPosition']=this['particlesTextures']['postProcessingPosition'],this[_0x334de0(0x3b3,0x3b2)]['postProcessingPosition']=_0x30d5ea,this[_0x1999eb(-0x235,-0x1d7)]['calculateSpeed']['commandToExecute']&&(this[_0x1999eb(-0x17d,-0x1d7)]['calculateSpeed'][_0x334de0(0x3a4,0x3fe)]['outputTexture']=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this[_0xddc2da(0x24c,0x1cc)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x486687(0x130,0x171)][_0xddc2da(0x326,0x2d1)],'particlesSpeed':()=>this['particlesTextures'][_0x486687(0x128,0x19b)]},'fragmentShaderSource':ShaderManager[_0x486687(0x126,0xcb)](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x57442b(_0x41aa96,_0x369f11){return _0xddc2da(_0x369f11- -0x45b,_0x41aa96);}function _0x4859ea(_0x1e18ff,_0x5514dd){return _0x486687(_0x1e18ff-0x389,_0x5514dd);}this['primitives']['updatePosition']['commandToExecute']&&(this[_0x4859ea(0x480,0x438)]['updatePosition']['commandToExecute'][_0x4859ea(0x48d,0x486)]=this['particlesTextures'][_0x57442b(-0x1c1,-0x16d)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0xddc2da(0x2ee,0x266)],'particlesSpeed':()=>this[_0xddc2da(0x27e,0x21c)][_0x486687(0x128,0x178)],'lonRange':()=>this['viewerParameters'][_0xddc2da(0x232,0x1c6)],'latRange':()=>this[_0x486687(0x16a,0x198)][_0x486687(0x109,0x18e)],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0xddc2da(0x286,0x2ad)]['west'],this['windData'][_0x486687(0x138,0x145)]['east']),'dataLatRange':()=>new Cartesian2$1(this[_0xddc2da(0x302,0x2ed)][_0x486687(0x138,0xbc)][_0x486687(0xf8,0x158)],this['windData']['bounds'][_0x486687(0x158,0xfe)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this[_0x486687(0xfe,0xbb)][_0xddc2da(0x2e3,0x2a9)],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this[_0x486687(0xfe,0xe0)]['useViewerBounds']},'fragmentShaderSource':ShaderManager[_0xddc2da(0x322,0x2ae)](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x2548a9(_0x3785ba,_0xff1d17){return _0x486687(_0xff1d17-0x2e3,_0x3785ba);}this['primitives']['postProcessingPosition'][_0x2548a9(0x406,0x45f)]&&(this['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0xddc2da(0x24c,0x2ae)]['dynamic']})};}[_0x9b7c55(0x35b,0x362)](){this[_0x5dca7a(-0x5a,-0x41)]['U'][_0x1585d3(0x27c,0x208)](),this['windTextures']['V']['destroy']();function _0x5dca7a(_0x1a1cd7,_0x4e8885){return _0x9b7c55(_0x4e8885,_0x1a1cd7- -0x2ff);}function _0x1585d3(_0xfe69a,_0x3824c5){return _0x164541(_0xfe69a,_0x3824c5-0x308);}this[_0x1585d3(0x1cf,0x1dd)]();}['updateWindData'](_0x3dc3bd){this['windData']=_0x3dc3bd;function _0x37f263(_0x352431,_0x3fe2da){return _0x164541(_0x352431,_0x3fe2da-0x3ed);}this[_0x37f263(0x2c9,0x2e0)]();}[_0x164541(-0x118,-0x11b)](_0x504180){function _0x4bf39a(_0x11b910,_0x567221){return _0x164541(_0x11b910,_0x567221-0x677);}const _0x13f88d=_0x504180['flipY']!==undefined&&_0x504180['flipY']!==this[_0x1b7a30(0x50d,0x499)]['flipY'];function _0x1b7a30(_0x277375,_0x584aed){return _0x164541(_0x277375,_0x584aed-0x655);}this['options']=deepMerge(_0x504180,this['options']),_0x13f88d&&this[_0x1b7a30(0x53a,0x548)]();}[_0x164541(-0x1ed,-0x188)](_0x23bc26){const {array:_0x4a4b5d}=_0x23bc26;let {min:_0x5408b0,max:_0x5a2585}=_0x23bc26;const _0x4f847b=new Float32Array(_0x4a4b5d['length']);_0x5408b0===undefined&&(console[_0xad33f2(0x1f1,0x1f4)]('min\x20is\x20undefined,\x20calculate\x20min'),_0x5408b0=Math[_0x1bf83b(-0x85,-0x60)](..._0x4a4b5d));_0x5a2585===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x5a2585=Math[_0x1bf83b(-0x63,-0xa4)](..._0x4a4b5d));function _0xad33f2(_0xaf8aae,_0x1f2bad){return _0x164541(_0xaf8aae,_0x1f2bad-0x359);}function _0x1bf83b(_0xe10e16,_0x413ea1){return _0x9b7c55(_0x413ea1,_0xe10e16- -0x3db);}const _0x14a103=Math['max'](Math[_0x1bf83b(-0x159,-0x1a0)](_0x5408b0),Math['abs'](_0x5a2585));for(let _0x4248e4=0x0;_0x4248e4<_0x4a4b5d['length'];_0x4248e4++){const _0x3265dd=_0x4a4b5d[_0x4248e4]/_0x14a103;_0x4f847b[_0x4248e4]=_0x3265dd;}return _0x4f847b;}[_0x164541(-0x7c,-0x100)](){Object[_0x57a1c4(0x45a,0x4c1)](this[_0x57a1c4(0x4c6,0x4a3)])[_0x5c0aa9(0x8f,0x42)](_0x4ec62e=>_0x4ec62e[_0x57a1c4(0x510,0x56d)]());function _0x57a1c4(_0xf0bf73,_0x1dccc4){return _0x164541(_0xf0bf73,_0x1dccc4-0x66d);}function _0x5c0aa9(_0x3af312,_0x461c5f){return _0x164541(_0x3af312,_0x461c5f-0x233);}Object['values'](this[_0x57a1c4(0x459,0x4e3)])['forEach'](_0x2caaa0=>_0x2caaa0['destroy']()),Object['values'](this[_0x5c0aa9(0x13,0x70)])[_0x5c0aa9(-0x32,0x42)](_0x519169=>_0x519169['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[_0x164541(-0xa1,-0x109)];class WindParticlesRendering{constructor(_0x53e87c,_0x553b0c,_0x58a45d,_0x4cfc2f){this['context']=_0x53e87c,this['options']=_0x553b0c;function _0x2d9c3d(_0x43fbd2,_0x1b212a){return _0x164541(_0x1b212a,_0x43fbd2-0x41);}this[_0x1c5690(-0xe8,-0x116)]=_0x58a45d,this[_0x1c5690(-0x86,-0x10b)]=_0x4cfc2f;(typeof this[_0x2d9c3d(-0x17b,-0x1ed)][_0x1c5690(-0x125,-0x18c)]!=='number'||this['options'][_0x1c5690(-0x1b5,-0x18c)]<=0x0)&&(console[_0x2d9c3d(-0x18b,-0x134)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options'][_0x1c5690(-0x1c4,-0x18c)]=0x100);this['colorTable']=this['createColorTableTexture']();function _0x1c5690(_0x17b1c2,_0x4a67a5){return _0x164541(_0x17b1c2,_0x4a67a5-0x3a);}this['textures']=this[_0x1c5690(-0x1ba,-0x1b8)](),this['framebuffers']=this['createRenderingFramebuffers'](),this[_0x1c5690(-0x122,-0x189)]=this['createPrimitives']();}[_0x164541(-0x179,-0x1f2)](){const _0x2a49dc={};function _0x32fc9d(_0x593d30,_0x511296){return _0x164541(_0x511296,_0x593d30-0x198);}_0x2a49dc['context']=this['context'],_0x2a49dc['width']=this['context'][_0x32fc9d(0x63,0x78)],_0x2a49dc['height']=this['context'][_0x56ddee(0x53,0x16)];function _0x56ddee(_0xe4b9ba,_0x11b254){return _0x164541(_0x11b254,_0xe4b9ba-0x242);}_0x2a49dc['pixelFormat']=PixelFormat[_0x56ddee(0x15f,0x181)],_0x2a49dc[_0x32fc9d(-0x31,-0xb3)]=PixelDatatype['UNSIGNED_BYTE'];const _0x21f3d9=_0x2a49dc,_0x59be8d={};_0x59be8d['context']=this['context'],_0x59be8d['width']=this['context']['drawingBufferWidth'],_0x59be8d['height']=this['context']['drawingBufferHeight'],_0x59be8d['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x59be8d['pixelDatatype']=PixelDatatype['UNSIGNED_INT'];const _0x2dd85f=_0x59be8d;return{'segmentsColor':new Texture(_0x21f3d9),'segmentsDepth':new Texture(_0x2dd85f)};}['createRenderingFramebuffers'](){function _0x236454(_0x5afae8,_0x130981){return _0x9b7c55(_0x5afae8,_0x130981-0x79);}const _0xc05541={};function _0x1efcf5(_0x529f9b,_0x537c62){return _0x9b7c55(_0x537c62,_0x529f9b-0x75);}return _0xc05541['context']=this[_0x236454(0x36e,0x3ea)],_0xc05541['colorTextures']=[this['textures'][_0x1efcf5(0x311,0x2a6)]],_0xc05541['depthTexture']=this[_0x1efcf5(0x3e0,0x389)][_0x1efcf5(0x2f8,0x33f)],{'segments':new Framebuffer(_0xc05541)};}[_0x164541(-0x1dc,-0x166)](){function _0x229c88(_0x178ca4,_0x35e6a5){return _0x164541(_0x178ca4,_0x35e6a5-0x198);}Object[_0x229c88(-0x5e,-0x14)](this['framebuffers'])['forEach'](_0x24a929=>{function _0x5ac90d(_0x108c06,_0x347c44){return _0x229c88(_0x347c44,_0x108c06-0x349);}_0x24a929[_0x5ac90d(0x3e1,0x3a1)]();});}['createColorTableTexture'](){const _0x48922b=new Float32Array(this['options']['colors']['flatMap'](_0x11153a=>{const _0x551f5f=Color$1['fromCssColorString'](_0x11153a);function _0x5fb13e(_0x120c17,_0x3c58a0){return _0x540e(_0x120c17-0x2e2,_0x3c58a0);}return[_0x551f5f['red'],_0x551f5f['green'],_0x551f5f['blue'],_0x551f5f[_0x5fb13e(0x438,0x458)]];})),_0x2013a2={};function _0x2fbeab(_0x50cc7b,_0x264da1){return _0x9b7c55(_0x50cc7b,_0x264da1-0x115);}function _0x5b7c72(_0x3c222f,_0x15272a){return _0x9b7c55(_0x3c222f,_0x15272a- -0x306);}return _0x2013a2['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x2013a2[_0x5b7c72(0x74,-0x11)]=TextureMagnificationFilter['LINEAR'],_0x2013a2['wrapS']=TextureWrap[_0x2fbeab(0x416,0x419)],_0x2013a2[_0x2fbeab(0x40f,0x454)]=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this[_0x2fbeab(0x487,0x486)],'width':this[_0x2fbeab(0x34b,0x3c8)][_0x5b7c72(-0x21,-0x46)][_0x2fbeab(0x47f,0x40d)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x2013a2),'source':{'width':this[_0x5b7c72(-0x50,-0x53)][_0x5b7c72(-0xc,-0x46)]['length'],'height':0x1,'arrayBufferView':_0x48922b}});}[_0x164541(-0x16c,-0x17d)](){const _0x431f50=0x4,_0x13b711=this['options']['particlesTextureSize'];let _0x39462e=[];for(let _0xf76ad7=0x0;_0xf76ad7<_0x13b711;_0xf76ad7++){for(let _0x41642c=0x0;_0x41642c<_0x13b711;_0x41642c++){for(let _0x27cd25=0x0;_0x27cd25<_0x431f50;_0x27cd25++){_0x39462e[_0x1e16f1(0x61,0x8d)](_0xf76ad7/_0x13b711),_0x39462e[_0x1ab59a(0x4a8,0x424)](_0x41642c/_0x13b711);}}}_0x39462e=new Float32Array(_0x39462e);function _0x1ab59a(_0x1179c1,_0x39ea04){return _0x9b7c55(_0x1179c1,_0x39ea04-0xb6);}const _0x3ca53b=this[_0x1ab59a(0x37f,0x369)][_0x1e16f1(-0x64,-0xad)]**0x2;let _0xb1f143=[];for(let _0x2b5655=0x0;_0x2b5655<_0x3ca53b;_0x2b5655++){_0xb1f143['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0xb1f143=new Float32Array(_0xb1f143);let _0x34813e=[];for(let _0x2790b2=0x0,_0x48b1b7=0x0;_0x2790b2<_0x3ca53b;_0x2790b2++){_0x34813e['push'](_0x48b1b7+0x0,_0x48b1b7+0x1,_0x48b1b7+0x2,_0x48b1b7+0x2,_0x48b1b7+0x1,_0x48b1b7+0x3),_0x48b1b7+=_0x431f50;}function _0x1e16f1(_0x374660,_0x36e377){return _0x164541(_0x36e377,_0x374660-0x162);}_0x34813e=new Uint32Array(_0x34813e);const _0x382dd7={};_0x382dd7[_0x1ab59a(0x3be,0x396)]=ComponentDatatype['FLOAT'],_0x382dd7['componentsPerAttribute']=0x2,_0x382dd7[_0x1ab59a(0x351,0x379)]=_0x39462e;const _0x304739={};_0x304739[_0x1ab59a(0x35a,0x396)]=ComponentDatatype['FLOAT'],_0x304739['componentsPerAttribute']=0x3,_0x304739['values']=_0xb1f143;const _0x13c475=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x382dd7),'normal':new GeometryAttribute(_0x304739)}),'indices':_0x34813e});return _0x13c475;}['createRawRenderState'](_0x51f134){const _0x2c3d23={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x51f134};function _0x1552ac(_0x292a15,_0x4abc05){return _0x9b7c55(_0x292a15,_0x4abc05- -0x30a);}return Appearance[_0x1552ac(-0xb7,-0x48)](!![],![],_0x2c3d23);}[_0x164541(-0x1c1,-0x170)](){const _0x1a875c={};function _0x8d6aa8(_0x30bdf5,_0x24268a){return _0x9b7c55(_0x24268a,_0x30bdf5-0x134);}_0x1a875c['st']=0x0;function _0x237adf(_0x1aa91a,_0x375c60){return _0x9b7c55(_0x1aa91a,_0x375c60- -0x1c8);}_0x1a875c['normal']=0x1;const _0xfd05db={};_0xfd05db['enabled']=!![];const _0x39adb5={};_0x39adb5['enabled']=!![],_0x39adb5['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x39adb5['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x39adb5['blendFuncDestination']=WebGLRenderingContext[_0x237adf(0x118,0x179)];const _0x232632={};_0x232632['viewport']=undefined,_0x232632['depthTest']=_0xfd05db,_0x232632[_0x8d6aa8(0x47d,0x4a3)]=!![],_0x232632['blending']=_0x39adb5;const _0x12c237=new CustomPrimitive({'commandType':_0x8d6aa8(0x4b2,0x442),'attributeLocations':_0x1a875c,'geometry':this[_0x8d6aa8(0x426,0x47a)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this[_0x237adf(0x190,0x162)][_0x237adf(0x12c,0x11d)]['previousParticlesPosition'],'currentParticlesPosition':()=>this[_0x8d6aa8(0x45e,0x40a)][_0x237adf(0xb6,0x11d)][_0x237adf(0x225,0x1c5)],'postProcessingPosition':()=>this[_0x8d6aa8(0x45e,0x4c1)]['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x8d6aa8(0x411,0x46f)],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x3fbc07(_0x1a406a,_0x2e2cc9){return _0x8d6aa8(_0x2e2cc9- -0x2c7,_0x1a406a);}function _0xed25ed(_0x55d04d,_0x1cdbcb){return _0x237adf(_0x55d04d,_0x1cdbcb-0x1b4);}var _0x54f2f5,_0x4f34ef;const _0x2a729b=new Cartesian2(((_0x54f2f5=this[_0xed25ed(0x2c0,0x29f)]['domain'])===null||_0x54f2f5===void 0x0?void 0x0:_0x54f2f5[_0x3fbc07(0x189,0x1c3)])??this['computing']['windData']['speed']['min'],((_0x4f34ef=this['options'][_0x3fbc07(0x189,0x1ec)])===null||_0x4f34ef===void 0x0?void 0x0:_0x4f34ef['max'])??this['computing'][_0x3fbc07(0x235,0x1d6)]['speed']['max']);return _0x2a729b;},'displayRange':()=>{var _0x14dcc1,_0x75e3a0;const _0x56df8c=new Cartesian2(((_0x14dcc1=this['options']['displayRange'])===null||_0x14dcc1===void 0x0?void 0x0:_0x14dcc1['min'])??this[_0x4452df(0x259,0x276)][_0x4452df(0x22c,0x2b5)]['speed'][_0x5adc28(0x3a5,0x34e)],((_0x75e3a0=this[_0x5adc28(0x302,0x2a9)]['displayRange'])===null||_0x75e3a0===void 0x0?void 0x0:_0x75e3a0['max'])??this['computing'][_0x5adc28(0x3b8,0x353)]['speed'][_0x5adc28(0x3c7,0x34d)]);function _0x4452df(_0x1ec84e,_0x1f5bc7){return _0x8d6aa8(_0x1f5bc7- -0x1e8,_0x1ec84e);}function _0x5adc28(_0xa29f2c,_0x4b30a6){return _0x237adf(_0x4b30a6,_0xa29f2c-0x217);}return _0x56df8c;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context'][_0x237adf(0x18f,0x172)]/this['context']['drawingBufferHeight'],'pixelSize':()=>this[_0x237adf(0x119,0x157)][_0x8d6aa8(0x3b9,0x3ea)],'lineWidth':()=>{const _0x5f50d9={};function _0x268d72(_0x1c19a2,_0xc98866){return _0x8d6aa8(_0xc98866- -0x481,_0x1c19a2);}_0x5f50d9[_0x268d72(-0x2c,0x9)]=0x1,_0x5f50d9['max']=0x2;const _0x127e5b=this[_0x554fe0(0x36a,0x3cb)]['lineWidth']||_0x5f50d9;function _0x554fe0(_0x550c58,_0x530559){return _0x8d6aa8(_0x550c58- -0x7d,_0x530559);}return new Cartesian2(_0x127e5b[_0x554fe0(0x40d,0x3b3)],_0x127e5b[_0x268d72(0x0,0x2b)]);},'lineLength':()=>{function _0x210fda(_0x41393d,_0x23a5dc){return _0x237adf(_0x41393d,_0x23a5dc- -0x19d);}const _0x1ed0df={};function _0x235815(_0x1d3e83,_0x3bb7e8){return _0x8d6aa8(_0x1d3e83- -0x52f,_0x3bb7e8);}_0x1ed0df[_0x235815(-0xa5,-0x109)]=0x14,_0x1ed0df[_0x235815(-0x83,-0x109)]=0x64;const _0x3cccb6=this[_0x235815(-0x148,-0xfc)][_0x235815(-0x100,-0x13c)]||_0x1ed0df;return new Cartesian2(_0x3cccb6['min'],_0x3cccb6['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0x8d6aa8(0x49f,0x441)]['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x8d6aa8(0x420,0x3d4)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x232632)}),_0x29edfd={};return _0x29edfd['segments']=_0x12c237,_0x29edfd;}[_0x9b7c55(0x28b,0x293)](){const _0xccfb8a=this['createSegmentsGeometry']();this[_0x2f8040(0x24e,0x250)]['segments'][_0x2f8040(0x293,0x23b)]=_0xccfb8a;const _0x5a4c56={};function _0x2f8040(_0x349e9b,_0x162f4c){return _0x164541(_0x349e9b,_0x162f4c-0x413);}_0x5a4c56[_0x2f8040(0x354,0x315)]=this['context'],_0x5a4c56['geometry']=_0xccfb8a,_0x5a4c56['attributeLocations']=this['primitives']['segments'][_0x5c71c3(-0x2f4,-0x285)],_0x5a4c56['bufferUsage']=BufferUsage[_0x5c71c3(-0x244,-0x1e9)];function _0x5c71c3(_0x2f690f,_0x48ae85){return _0x164541(_0x2f690f,_0x48ae85- -0xdd);}const _0x519983=VertexArray[_0x5c71c3(-0x225,-0x277)](_0x5a4c56);this['primitives'][_0x5c71c3(-0x27b,-0x24a)][_0x2f8040(0x2fe,0x2d5)]&&(this[_0x5c71c3(-0x2f0,-0x2a0)]['segments'][_0x2f8040(0x28b,0x2d5)]['vertexArray']=_0x519983);}['onColorTableChange'](){this[_0x1ba401(0x440,0x3c8)]['destroy']();function _0x1ba401(_0x2c9c1b,_0x3e754b){return _0x164541(_0x3e754b,_0x2c9c1b-0x596);}function _0x1ba8a9(_0x58da7a,_0xffb231){return _0x164541(_0x58da7a,_0xffb231-0x41a);}this[_0x1ba401(0x440,0x3fa)]=this['createColorTableTexture']();}[_0x9b7c55(0x3ae,0x354)](_0xcf971f){const _0x5c3e76=_0xcf971f['colors']&&JSON['stringify'](_0xcf971f['colors'])!==JSON[_0x4d72d3(-0xcd,-0x87)](this['options'][_0x301c05(0x9f,0xa5)]);function _0x301c05(_0x5b2d69,_0x1180f5){return _0x9b7c55(_0x5b2d69,_0x1180f5- -0x21b);}this['options']=deepMerge(_0xcf971f,this[_0x301c05(0x32,0x98)]);function _0x4d72d3(_0x2f12ef,_0x4e4254){return _0x164541(_0x2f12ef,_0x4e4254-0xdc);}_0x5c3e76&&this['onColorTableChange']();}['destroy'](){function _0x48e301(_0x1d9666,_0x3fb862){return _0x9b7c55(_0x3fb862,_0x1d9666-0x12a);}Object[_0x48e301(0x3ed,0x462)](this[_0x28d1b3(0x4ab,0x49e)])['forEach'](_0x6e9412=>{function _0x269df5(_0x3392bb,_0x4a6249){return _0x28d1b3(_0x3392bb- -0x269,_0x4a6249);}_0x6e9412[_0x269df5(0x2d2,0x2b5)]();});function _0x28d1b3(_0x4224da,_0x231bc4){return _0x164541(_0x231bc4,_0x4224da-0x63b);}Object['values'](this[_0x28d1b3(0x478,0x4fb)])['forEach'](_0x389849=>{_0x389849['destroy']();}),this['colorTable'][_0x28d1b3(0x53b,0x5be)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x9b7c55(0x3e2,0x366)];class WindParticleSystem{constructor(_0xfa7fa1,_0x443de3,_0x3c6942,_0x4f621a,_0x303147){this['context']=_0xfa7fa1,this['options']=_0x3c6942,this['viewerParameters']=_0x4f621a;function _0x29b553(_0x1ee5a8,_0x3a2198){return _0x164541(_0x1ee5a8,_0x3a2198-0x29);}function _0x23383e(_0x1d8ed0,_0x487e5b){return _0x9b7c55(_0x487e5b,_0x1d8ed0- -0x3ad);}this['computing']=new WindParticlesComputing(_0xfa7fa1,_0x443de3,_0x3c6942,_0x4f621a,_0x303147),this[_0x29b553(-0x133,-0x1a2)]=new WindParticlesRendering(_0xfa7fa1,_0x3c6942,_0x4f621a,this['computing']),this[_0x23383e(-0x39,-0x4b)]();}['getPrimitives'](){const _0x2e133f=[this[_0x181c73(0x33c,0x3ac)][_0x15d74b(0x2b,-0xd)][_0x15d74b(0x7c,0x84)],this['computing'][_0x15d74b(0x41,-0xd)]['updatePosition'],this['computing'][_0x181c73(0x2be,0x2cf)]['postProcessingPosition'],this['rendering']['primitives']['segments']];function _0x181c73(_0x3d4ee9,_0x1c89cf){return _0x164541(_0x1c89cf,_0x3d4ee9-0x481);}function _0x15d74b(_0x21fb9a,_0x4fb23f){return _0x164541(_0x21fb9a,_0x4fb23f-0x1b6);}return _0x2e133f;}['clearFramebuffers'](){function _0x495d4c(_0xa1a07c,_0x3f043b){return _0x9b7c55(_0xa1a07c,_0x3f043b-0x16e);}const _0xfe306c=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x495d4c(0x3ba,0x3f8)]});Object['keys'](this['rendering']['framebuffers'])['forEach'](_0x267f69=>{function _0x2d6c0d(_0x50063c,_0x23d760){return _0x495d4c(_0x23d760,_0x50063c- -0x43b);}_0xfe306c[_0x2d6c0d(-0x3e,-0xb2)]=this['rendering'][_0x5184d9(-0x5d,-0xbe)][_0x267f69];function _0x5184d9(_0x4cf55c,_0x438db1){return _0x495d4c(_0x4cf55c,_0x438db1- -0x50b);}_0xfe306c['execute'](this['context']);});}['changeOptions'](_0x4ff1c3){function _0x278bdd(_0x2f21d1,_0x4fa096){return _0x164541(_0x4fa096,_0x2f21d1-0x160);}let _0x2a862e=![];_0x4ff1c3[_0x4bac5d(0x122,0xf4)]&&this[_0x278bdd(-0x5c,0x3)]['particlesTextureSize']!==_0x4ff1c3[_0x278bdd(-0x66,-0x92)]&&(_0x2a862e=!![]);function _0x4bac5d(_0x13eb3b,_0x2d9f42){return _0x9b7c55(_0x13eb3b,_0x2d9f42- -0x1b5);}const _0x3cad81=deepMerge(_0x4ff1c3,this['options']);if(_0x3cad81[_0x278bdd(-0x66,-0x68)]<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this[_0x278bdd(-0x5c,-0x66)]=_0x3cad81,this[_0x278bdd(-0x6b,0x3)][_0x278bdd(0x45,-0x25)](_0x4ff1c3),this[_0x278bdd(0x1b,-0x2e)]['updateOptions'](_0x4ff1c3),_0x2a862e&&(this['computing']['destroyParticlesTextures'](),this[_0x278bdd(0x1b,0x49)]['createParticlesTextures'](),this['rendering']['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x58310e){function _0x4fb871(_0x41aa26,_0x1d8ca6){return _0x9b7c55(_0x1d8ca6,_0x41aa26- -0x589);}this[_0x4fb871(-0x26a,-0x2e9)]=_0x58310e;function _0x317805(_0x3cd441,_0x56814c){return _0x164541(_0x56814c,_0x3cd441- -0x74);}this['computing'][_0x4fb871(-0x26a,-0x27b)]=_0x58310e,this['rendering']['viewerParameters']=_0x58310e;}['destroy'](){function _0xfd9d83(_0x22a396,_0x4dcb27){return _0x9b7c55(_0x4dcb27,_0x22a396- -0x5b);}this['computing'][_0x5cfbf1(-0x232,-0x1c1)]();function _0x5cfbf1(_0x2c32bc,_0x4fb917){return _0x9b7c55(_0x2c32bc,_0x4fb917- -0x530);}this['rendering'][_0xfd9d83(0x314,0x33c)]();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0x9b7c55(0x247,0x2bd)]['BaseLayer'],_0x4acbb4={};_0x4acbb4['min']=0x1,_0x4acbb4['max']=0x2;const _0x1e2b8c={};_0x1e2b8c[_0x9b7c55(0x2fa,0x356)]=0x14,_0x1e2b8c['max']=0x64;const _0x484411={};_0x484411[_0x164541(-0x246,-0x1c6)]=0x64,_0x484411['fixedHeight']=0x0,_0x484411['lineWidth']=_0x4acbb4,_0x484411['lineLength']=_0x1e2b8c,_0x484411['speedFactor']=0x1,_0x484411[_0x164541(-0x137,-0x125)]=0.003,_0x484411[_0x9b7c55(0x35c,0x343)]=0.001,_0x484411['colors']=[_0x164541(-0x14f,-0x1ab)],_0x484411['flipY']=![],_0x484411['dynamic']=!![];const DEF_OPTIONS=_0x484411;class WindLayer extends BaseLayer$1{constructor(_0x27e372={}){function _0x430ddf(_0x394fbd,_0xdd3372){return _0x9b7c55(_0x394fbd,_0xdd3372- -0x3be);}_0x27e372={...DEF_OPTIONS,..._0x27e372},super(_0x27e372),this[_0x430ddf(-0xd4,-0xe2)](_0x27e372,_0x27e372);}get['layer'](){return this['primitives'];}get[_0x9b7c55(0x33f,0x385)](){return this['options']['data'];}set['data'](_0x4daea6){this['options']['data']=_0x4daea6,this['setData'](_0x4daea6);}get['colors'](){function _0x1f2e30(_0x3071c1,_0x5ac473){return _0x9b7c55(_0x5ac473,_0x3071c1- -0x4b6);}function _0x21c751(_0x30a06f,_0x52c852){return _0x164541(_0x30a06f,_0x52c852-0x179);}return this[_0x21c751(0x3d,-0x43)][_0x21c751(0x12,-0x36)];}set['colors'](_0x244f81){this['options']['colors']=_0x244f81;const _0x71dc2c={};function _0x10bae0(_0x120f90,_0x51733a){return _0x164541(_0x120f90,_0x51733a- -0x75);}_0x71dc2c[_0x10bae0(-0x2a7,-0x224)]=_0x244f81,this['_setOptionsHook'](this['options'],_0x71dc2c);}[_0x9b7c55(0x30c,0x2fe)](_0x30f3f9){function _0x13ddc9(_0x1cefac,_0x2610ac){return _0x9b7c55(_0x2610ac,_0x1cefac- -0x4cd);}_0x30f3f9?this['_addedHook']():this[_0x13ddc9(-0x18d,-0x171)]();}['_mountedHook'](){}['_addedHook'](){this['scene']=this['_map']['scene'],this['camera']=this['_map'][_0x130fd8(-0x108,-0x154)];this[_0x428d36(-0x127,-0x175)][_0x428d36(-0x8d,-0xa3)]&&this[_0x428d36(-0xd8,-0x105)](this['options'][_0x130fd8(-0x54,-0xcb)]);if(!this['windData']||!this['show'])return;this[_0x428d36(-0xfc,-0x109)]={'lonRange':new Cesium$1[(_0x428d36(-0x9c,-0xb3))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this[_0x130fd8(-0xae,-0xd6)](),this[_0x130fd8(-0x99,-0xca)]=new WindParticleSystem(this['scene']['context'],this['windData'],this['options'],this['viewerParameters'],this['scene']),this['primitives']=this['particleSystem']['getPrimitives'](),this['primitives']['forEach'](_0x32ebce=>{function _0x288a36(_0xe77537,_0x143c43){return _0x130fd8(_0x143c43,_0xe77537-0x216);}this['scene']['primitives'][_0x288a36(0xe0,0x5c)](_0x32ebce);}),this[_0x130fd8(-0x1ad,-0x154)]['percentageChanged']=0.01,this['camera'][_0x130fd8(-0x14c,-0x184)]['addEventListener'](this[_0x130fd8(-0x4d,-0xd6)][_0x428d36(-0x10f,-0x15e)](this));function _0x130fd8(_0x340702,_0x5bde45){return _0x164541(_0x340702,_0x5bde45-0x1f);}function _0x428d36(_0x58be73,_0x57ead1){return _0x164541(_0x58be73,_0x57ead1-0x47);}this['scene']['morphComplete'][_0x428d36(-0x14f,-0x125)](this['updateViewerParameters']['bind'](this)),window['addEventListener']('resize',this['updateViewerParameters']['bind'](this));}['_removedHook'](){this['camera'][_0xbb27a8(-0x9,-0xb)]['removeEventListener'](this[_0xdef52(-0x56,-0x92)][_0xbb27a8(-0xb,0x4f)](this)),this[_0xdef52(-0xaf,-0xe7)]['morphComplete'][_0xdef52(-0x9e,-0x5b)](this['updateViewerParameters']['bind'](this));function _0xbb27a8(_0x56d666,_0x5136a2){return _0x164541(_0x5136a2,_0x56d666-0x19a);}function _0xdef52(_0x54b1ff,_0x447747){return _0x9b7c55(_0x447747,_0x54b1ff- -0x3d0);}window[_0xdef52(-0x9e,-0xed)]('resize',this['updateViewerParameters']['bind'](this)),this['primitives']&&(this[_0xbb27a8(-0x29,0x7)]['forEach'](_0xcc3bfe=>{this['scene']['primitives']['remove'](_0xcc3bfe);}),delete this['primitives']),this[_0xbb27a8(0xb1,0x121)]&&(this['particleSystem'][_0xdef52(-0x61,0x16)](),delete this['particleSystem']);}['setData'](_0x36fa9a,_0x258d44){this[_0x1b8e5d(0x1a6,0x20a)]=this['processWindData'](_0x36fa9a);function _0x1b8e5d(_0x46b2a6,_0x19db7e){return _0x164541(_0x19db7e,_0x46b2a6-0x2ac);}function _0xf4873b(_0x191f1d,_0x2baf59){return _0x164541(_0x191f1d,_0x2baf59- -0xe0);}if(_0x258d44){this['_removedHook'](),this['_addedHook']();return;}this[_0x1b8e5d(0x1c3,0x20c)]?(this[_0x1b8e5d(0x1c3,0x210)][_0xf4873b(-0x1f1,-0x225)]['updateWindData'](this['windData']),this[_0x1b8e5d(0x15e,0x159)][_0xf4873b(-0x2bc,-0x2d0)]()):this['_addedHook']();}['_setOptionsHook'](_0x36b8fa,_0x2b75c2){this['particleSystem']&&(this['particleSystem']['changeOptions'](_0x2b75c2),this['scene']['requestRender']());}[_0x9b7c55(0x358,0x2e7)](_0x23370a){var _0xc7da52,_0x1e8a79;const _0x28f28f={..._0x23370a},_0x36addf=_0x28f28f;!_0x36addf['height']&&_0x36addf['rows']&&(_0x36addf[_0x16af46(-0x214,-0x1b7)]=_0x36addf['rows']);!_0x36addf['width']&&_0x36addf['cols']&&(_0x36addf['width']=_0x36addf[_0x16af46(-0x1f2,-0x19e)]);!_0x36addf['bounds']&&(_0x36addf['bounds']={'west':_0x36addf[_0x572268(0x198,0x133)],'south':_0x36addf[_0x572268(0x226,0x1a7)],'east':_0x36addf['xmax'],'north':_0x36addf['ymax']});if(!_0x36addf['u']){const _0x539df3={};_0x539df3['array']=_0x23370a['udata'],_0x539df3[_0x572268(0x217,0x196)]=_0x23370a[_0x572268(0x241,0x233)],_0x539df3[_0x572268(0x239,0x21c)]=_0x23370a['umax'],_0x36addf['u']=_0x539df3;}function _0x572268(_0x40eb72,_0x493dc0){return _0x9b7c55(_0x493dc0,_0x40eb72- -0x13f);}if(!_0x36addf['v']){const _0x57e401={};_0x57e401['array']=_0x23370a[_0x16af46(-0x205,-0x274)],_0x57e401['min']=_0x23370a[_0x16af46(-0x299,-0x310)],_0x57e401['max']=_0x23370a[_0x16af46(-0x26b,-0x298)],_0x36addf['v']=_0x57e401;}if(((_0xc7da52=_0x36addf['speed'])===null||_0xc7da52===void 0x0?void 0x0:_0xc7da52['min'])===undefined||((_0x1e8a79=_0x36addf[_0x16af46(-0x2ba,-0x2b3)])===null||_0x1e8a79===void 0x0?void 0x0:_0x1e8a79['max'])===undefined||_0x36addf['speed']['array']===undefined){const _0x4b7945={'array':new Float32Array(_0x36addf['u']['array']['length']),'min':Number['MAX_VALUE'],'max':Number[_0x16af46(-0x270,-0x2a8)]};for(let _0xbfcad8=0x0;_0xbfcad8<_0x36addf['u']['array'][_0x16af46(-0x24b,-0x231)];_0xbfcad8++){_0x4b7945['array'][_0xbfcad8]=Math[_0x572268(0x1b8,0x185)](_0x36addf['u'][_0x16af46(-0x21d,-0x237)][_0xbfcad8]*_0x36addf['u']['array'][_0xbfcad8]+_0x36addf['v']['array'][_0xbfcad8]*_0x36addf['v']['array'][_0xbfcad8]),_0x4b7945[_0x572268(0x1e7,0x19f)][_0xbfcad8]!==0x0&&(_0x4b7945['min']=Math['min'](_0x4b7945['min'],_0x4b7945[_0x16af46(-0x21d,-0x1d7)][_0xbfcad8]),_0x4b7945['max']=Math[_0x572268(0x239,0x28d)](_0x4b7945['max'],_0x4b7945['array'][_0xbfcad8]));}_0x36addf['speed']=_0x4b7945;}function _0x16af46(_0x7a42e9,_0x376edc){return _0x9b7c55(_0x376edc,_0x7a42e9- -0x543);}return _0x36addf;}['updateViewerParameters'](){var _0x16c0fc;const _0x4b0ba2=this['scene'];if(!_0x4b0ba2)return;const _0x4d328d=_0x4b0ba2['canvas'];function _0x15e9bd(_0x1c9696,_0x46d390){return _0x164541(_0x46d390,_0x1c9696-0x10e);}const _0x30f869={};_0x30f869['x']=0x0,_0x30f869['y']=0x0;const _0x48b575={};_0x48b575['x']=0x0,_0x48b575['y']=_0x4d328d[_0x15e9bd(0x15,-0x6c)];function _0x703206(_0x5e2030,_0x24cb9d){return _0x9b7c55(_0x24cb9d,_0x5e2030- -0x43c);}const _0x28c2c6={};_0x28c2c6['x']=_0x4d328d['clientWidth'],_0x28c2c6['y']=0x0;const _0x54c76f={};_0x54c76f['x']=_0x4d328d['clientWidth'],_0x54c76f['y']=_0x4d328d['clientHeight'];const _0x4c19fd=[_0x30f869,_0x48b575,_0x28c2c6,_0x54c76f];let _0x306b1c=0xb4,_0x48c4b1=-0xb4,_0x143a65=0x5a,_0x12157e=-0x5a,_0x3d7a23=![];for(const _0x2b3681 of _0x4c19fd){const _0x4910e9=_0x4b0ba2['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x2b3681['x'],_0x2b3681['y']),_0x4b0ba2[_0x15e9bd(-0x71,-0x91)]['ellipsoid']);if(!_0x4910e9){_0x3d7a23=!![];break;}const _0x40ea3c=_0x4b0ba2['globe'][_0x15e9bd(-0x67,-0x15)]['cartesianToCartographic'](_0x4910e9),_0x484c2c=Cesium$1['Math'][_0x15e9bd(-0x83,-0x1f)](_0x40ea3c['longitude']),_0x4a562b=Cesium$1['Math'][_0x15e9bd(-0x83,-0x45)](_0x40ea3c['latitude']);_0x306b1c=Math[_0x703206(-0xe6,-0x13a)](_0x306b1c,_0x484c2c),_0x48c4b1=Math['max'](_0x48c4b1,_0x484c2c),_0x143a65=Math[_0x15e9bd(-0xb,0x69)](_0x143a65,_0x4a562b),_0x12157e=Math['max'](_0x12157e,_0x4a562b);}if(!_0x3d7a23){const _0x1d4b82=new Cesium$1['Cartesian2'](Math['max'](this['windData']['bounds']['west'],_0x306b1c),Math[_0x703206(-0xe6,-0xfe)](this['windData']['bounds'][_0x15e9bd(-0xad,-0x2a)],_0x48c4b1)),_0x949e82=new Cesium$1[(_0x703206(-0xc7,-0x66))](Math[_0x15e9bd(0x17,-0x5)](this[_0x703206(-0xd3,-0xec)][_0x703206(-0x14f,-0xf9)][_0x15e9bd(-0xb4,-0x3c)],_0x143a65),Math[_0x703206(-0xe6,-0x69)](this['windData'][_0x15e9bd(-0x74,-0xdb)]['north'],_0x12157e)),_0x5a9cb9=(_0x1d4b82['y']-_0x1d4b82['x'])*0.05,_0xffa264=(_0x949e82['y']-_0x949e82['x'])*0.05;_0x1d4b82['x']=Math['max'](this['windData']['bounds']['west'],_0x1d4b82['x']-_0x5a9cb9),_0x1d4b82['y']=Math['min'](this['windData'][_0x15e9bd(-0x74,-0x38)][_0x703206(-0x188,-0x128)],_0x1d4b82['y']+_0x5a9cb9),_0x949e82['x']=Math['max'](this[_0x703206(-0xd3,-0xd4)][_0x703206(-0x14f,-0x112)][_0x15e9bd(-0xb4,-0x30)],_0x949e82['x']-_0xffa264),_0x949e82['y']=Math[_0x15e9bd(-0xb,0x39)](this[_0x703206(-0xd3,-0x57)]['bounds']['north'],_0x949e82['y']+_0xffa264),this['viewerParameters'][_0x15e9bd(-0xc8,-0xbb)]=_0x1d4b82,this['viewerParameters']['latRange']=_0x949e82;const _0x31465e=this['windData'][_0x15e9bd(-0x74,-0x96)][_0x703206(-0x188,-0x145)]-this[_0x703206(-0xd3,-0xbe)]['bounds']['west'],_0x106fb3=this['windData']['bounds']['north']-this[_0x15e9bd(0x8,-0x2)]['bounds']['south'],_0x361270=(_0x1d4b82['y']-_0x1d4b82['x'])/_0x31465e,_0x2f0860=(_0x949e82['y']-_0x949e82['x'])/_0x106fb3,_0x1e3194=Math[_0x703206(-0xe6,-0x126)](_0x361270,_0x2f0860),_0x4ed92b=0x3e8*_0x1e3194;_0x4ed92b>0x0&&(this[_0x703206(-0x11d,-0x168)][_0x15e9bd(-0xdc,-0xe9)]=Math[_0x15e9bd(0x17,0xe)](0x0,Math[_0x15e9bd(-0xb,-0xe)](0x3e8,_0x4ed92b)));}this['viewerParameters']['sceneMode']=this[_0x15e9bd(-0x40,0x36)][_0x15e9bd(-0xd1,-0x7f)],(_0x16c0fc=this['particleSystem'])===null||_0x16c0fc===void 0x0||_0x16c0fc['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x245ca7,_0x4d2020){const {bounds:_0x1937bc,width:_0x9ac966,height:_0x598533,u:_0x5164e7,v:_0x4019ed,speed:_0x53a791}=this[_0x1cfdb0(-0x135,-0x1b9)];function _0x1cfdb0(_0x58ac12,_0x4e8372){return _0x9b7c55(_0x4e8372,_0x58ac12- -0x49e);}const {flipY:_0xd27098}=this[_0x2540c3(-0x25b,-0x2a5)];if(_0x245ca7<_0x1937bc[_0x1cfdb0(-0x116,-0x9d)]||_0x245ca7>_0x1937bc[_0x1cfdb0(-0x1ea,-0x266)]||_0x4d2020<_0x1937bc['south']||_0x4d2020>_0x1937bc[_0x2540c3(-0x264,-0x24b)])return null;const _0x1538ee=(_0x245ca7-_0x1937bc['west'])/(_0x1937bc['east']-_0x1937bc['west'])*(_0x9ac966-0x1);let _0x17ca2b=(_0x4d2020-_0x1937bc[_0x1cfdb0(-0x1f1,-0x243)])/(_0x1937bc['north']-_0x1937bc['south'])*(_0x598533-0x1);_0xd27098&&(_0x17ca2b=_0x598533-0x1-_0x17ca2b);const _0x28ccac=Math['floor'](_0x1538ee),_0x117627=Math[_0x2540c3(-0x19f,-0x216)](_0x17ca2b),_0x1e1264=Math['floor'](_0x1538ee),_0x38729b=Math[_0x1cfdb0(-0x148,-0xde)](_0x1e1264+0x1,_0x9ac966-0x1),_0x402bef=Math[_0x1cfdb0(-0x15c,-0x17e)](_0x17ca2b),_0x226b70=Math['min'](_0x402bef+0x1,_0x598533-0x1),_0x2feac4=_0x1538ee-_0x1e1264,_0xa6744f=_0x17ca2b-_0x402bef,_0x1cfc0d=_0x117627*_0x9ac966+_0x28ccac,_0x37063d=_0x402bef*_0x9ac966+_0x1e1264,_0x15a7c4=_0x402bef*_0x9ac966+_0x38729b,_0x162752=_0x226b70*_0x9ac966+_0x1e1264,_0x15b6e5=_0x226b70*_0x9ac966+_0x38729b,_0x426ac9=_0x5164e7['array'][_0x37063d];function _0x2540c3(_0x54126b,_0x8669d0){return _0x9b7c55(_0x54126b,_0x8669d0- -0x558);}const _0x4a5034=_0x5164e7[_0x1cfdb0(-0x178,-0x1ce)][_0x15a7c4],_0x46da08=_0x5164e7['array'][_0x162752],_0x30b887=_0x5164e7[_0x2540c3(-0x22b,-0x232)][_0x15b6e5],_0x3ec249=(0x1-_0x2feac4)*(0x1-_0xa6744f)*_0x426ac9+_0x2feac4*(0x1-_0xa6744f)*_0x4a5034+(0x1-_0x2feac4)*_0xa6744f*_0x46da08+_0x2feac4*_0xa6744f*_0x30b887,_0x48863e=_0x4019ed['array'][_0x37063d],_0x1665c0=_0x4019ed[_0x1cfdb0(-0x178,-0x168)][_0x15a7c4],_0x5d9fd8=_0x4019ed['array'][_0x162752],_0x2a44f7=_0x4019ed['array'][_0x15b6e5],_0x5b6682=(0x1-_0x2feac4)*(0x1-_0xa6744f)*_0x48863e+_0x2feac4*(0x1-_0xa6744f)*_0x1665c0+(0x1-_0x2feac4)*_0xa6744f*_0x5d9fd8+_0x2feac4*_0xa6744f*_0x2a44f7,_0x3a9835=Math['sqrt'](_0x3ec249*_0x3ec249+_0x5b6682*_0x5b6682),_0x108db8={};_0x108db8['u']=_0x5164e7[_0x2540c3(-0x1b2,-0x232)][_0x1cfc0d],_0x108db8['v']=_0x4019ed[_0x1cfdb0(-0x178,-0x1a7)][_0x1cfc0d],_0x108db8[_0x1cfdb0(-0x215,-0x1d7)]=_0x53a791['array'][_0x1cfc0d];const _0x492109={};_0x492109['u']=_0x3ec249,_0x492109['v']=_0x5b6682,_0x492109['speed']=_0x3a9835;const _0x91ad65={};return _0x91ad65[_0x1cfdb0(-0x1e6,-0x177)]=_0x108db8,_0x91ad65['interpolated']=_0x492109,_0x91ad65;}}mars3d__namespace[_0x164541(-0x1a5,-0x1d7)][_0x164541(-0x1bc,-0x186)]('wind',WindLayer),mars3d__namespace['layer'][_0x9b7c55(0x343,0x35c)]=WindLayer;function _0x144d(){const _0x1dae17=['setDate','windField','_onMapWhellEvent','data','particleSystem','maxAge','west','getPostProcessingPositionShader','pow','FLOAT','RGBA','currentParticlesPosition','frameRateAdjustment','getV','clear','alt','createRenderingTextures','forEach','requestRender','drawingBufferHeight','round','abs','segmentsDepth','fromDegrees','pixelSize','9038HwGTKh','166293uGiyTl','CanvasWindLayer','speed','OPAQUE','off','width','DomUtil','vertexShaderSource','framebuffer','mode','initFrameRate','defineProperty','onParticlesTextureSizeChange','fill','clearCommand','auto','geometry','LayerUtil','lonRange','commandList','shaderProgram','segmentsColor','canvasWind','canvasContext','Rectangle','_canrefresh','age','toGridXY','error','rendering','windTextures','pixelDatatype','bindEvent','44EhGBaJ','particlesTextureSize','vmin','EventType','primitives','south','pass','vertexArray','Cartesian3','owner','tlng','options','east','frameRate','mouse_down','getColor','original','outputTexture','mouseDown','reverse','lat','layer','latRange','ColorRamp','colors','isDestroyed','getDefaultRenderState','values','rgb(206,255,255)','135800yUbCMT','750632gMqsRO','attributeLocations','previousParticlesPosition','_speedRate','bind','setOptions','changed','moveTo','xmax','5357KnNDjp','zIndex','createParticlesTextures','lng','MIN_VALUE','create','fromGeometry','canvasWidth','xmin','vmax','toWindowCoordinates','lighter','getUpdatePositionShader','_setOptionsHook','particlesSpeed','toDegrees','framebuffers','componentDatatype','693460HGRLJw','steps','_drawLines','call','particlesTextures','worker','processWindData','getUVByXY','register','fromCache','initWorker','getSegmentDrawVertexShader','bounds','_onMouseDownEvent','style','globe','0px','createSegmentsGeometry','frameTime','_colorRamp','magnificationFilter','_pointerEvents','sqrt','length','_updateIng','ellipsoid','lineLength','camera','isDestroy','_showHook','createPrimitives','particles','getCalculateSpeedShader','segments','addEventListener','CLAMP_TO_EDGE','11910WwXpou','beginPath','81FSggSC','logInfo','destoryRenderingFramebuffers','warn','get','stringify','north','minificationFilter','alpha','preExecute','_canvasParticles','toRadians','Compute','primitiveType','canvas','_map','WindUtil','particlesNumber','colorTable','add','init','frameRateMonitor','sources','_maxAge','viewerParameters','pointer-events','scene','onmessage','setData','color','stroke','array','SCENE3D','#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','tlat','computing','4987325ydlvHA','globalAlpha','fragmentShaderSource','#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','height','globalCompositeOperation','commandToExecute','removeEventListener','speedRate','_calc_speedRate','_tomap','_addedHook','lineWidth','rows','6hVjhLs','drawingBufferWidth','commandType','Unknown\x20command\x20type','calculateSpeed','vdata','wrapT','_removedHook','ONE_MINUS_SRC_ALPHA','floor','dropRateBump','createWindTextures','speedFactor','getUVByPoint','top','#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','depthMask','dropRate','NEAREST','container','mouseMove','PointTrans','LINEAR','default','cols','_calcUV','postMessage','updateOptions','nextParticlesPosition','min','mouseUp','ymax','update','createComputingPrimitives','clientWidth','WindLayer','visibility','_updateIng2','pointerEvents','rawRenderState','uniformMap','reCreateWindTextures','STATIC_DRAW','show','ymin','Cesium','resize','flipY','windData','hidden','textures','__proto__','atan2','push','destroy','quietPeriod','context','SceneMode','CanvasWindField','clearFramebuffers','Cartesian2','clientHeight','isDynamic','max','createCommand','updateViewerParameters','_onMouseMoveEvent','grid','value','Draw','domain','umin','fixedHeight'];_0x144d=function(){return _0x1dae17;};return _0x144d();}class CanvasParticle{constructor(){this['lng']=null;function _0x4964d8(_0x5718ca,_0x276687){return _0x9b7c55(_0x276687,_0x5718ca-0x87);}function _0x438c49(_0xff5138,_0x15b5f1){return _0x164541(_0xff5138,_0x15b5f1-0x14);}this[_0x438c49(-0x205,-0x19f)]=null,this['tlng']=null,this[_0x4964d8(0x3b0,0x3fb)]=null,this['age']=null,this[_0x438c49(-0x24e,-0x1d2)]=null;}['destroy'](){for(const _0x12c56a in this){delete this[_0x12c56a];}}}class CanvasWindField{constructor(_0x498c9f){function _0x116499(_0x44e597,_0x1fac89){return _0x9b7c55(_0x1fac89,_0x44e597- -0x1c9);}this[_0x116499(0x102,0x92)](_0x498c9f);}get['speedRate'](){function _0x18ed3c(_0x155041,_0x36a954){return _0x9b7c55(_0x155041,_0x36a954- -0x146);}return this[_0x18ed3c(0x12b,0x183)];}set['speedRate'](_0x408dee){this['_speedRate']=(0x64-(_0x408dee>0x63?0x63:_0x408dee))*0x64;function _0x24302f(_0x565233,_0x142cd1){return _0x9b7c55(_0x142cd1,_0x565233- -0x59);}function _0x1b7fea(_0x26e38b,_0x17bc4e){return _0x9b7c55(_0x17bc4e,_0x26e38b- -0x4f4);}this['_calc_speedRate']=[(this[_0x24302f(0x275,0x2df)]-this[_0x24302f(0x27e,0x299)])/this['_speedRate'],(this[_0x24302f(0x2ff,0x36d)]-this['ymin'])/this['_speedRate']];}get['maxAge'](){function _0x536ae5(_0x72d479,_0x109c56){return _0x9b7c55(_0x72d479,_0x109c56- -0x2f2);}return this[_0x536ae5(0xb5,0x2c)];}set['maxAge'](_0x1e08ec){this['_maxAge']=_0x1e08ec;}[_0x9b7c55(0x26e,0x2cb)](_0x402fc8){function _0x3e1aef(_0x367ad6,_0x3e221e){return _0x164541(_0x3e221e,_0x367ad6-0x4f7);}this['options']=_0x402fc8,this['maxAge']=_0x402fc8['maxAge']||0x78,this['speedRate']=_0x402fc8[_0x3e1aef(0x3bb,0x3db)]||0x32;function _0x13ca80(_0x25286c,_0x38b0dc){return _0x164541(_0x25286c,_0x38b0dc-0xc0);}this['particles']=[];const _0x3ee15f=_0x402fc8[_0x13ca80(-0x17,-0x97)]||0x1000;for(let _0x1d7b40=0x0;_0x1d7b40<_0x3ee15f;_0x1d7b40++){const _0x539df5=this['_randomParticle'](new CanvasParticle());this['particles'][_0x3e1aef(0x3f6,0x416)](_0x539df5);}}[_0x164541(-0x96,-0xed)](_0x3377a6){this[_0x458224(-0x210,-0x1d8)]=_0x3377a6['rows'];function _0x458224(_0xea8263,_0x526047){return _0x9b7c55(_0x526047,_0xea8263- -0x548);}this['cols']=_0x3377a6['cols'],this[_0x34a816(0x104,0x7c)]=_0x3377a6['xmin'],this[_0x458224(-0x27a,-0x2ea)]=_0x3377a6['xmax'],this['ymin']=_0x3377a6['ymin'];function _0x34a816(_0x2da21d,_0x263f2f){return _0x164541(_0x263f2f,_0x2da21d-0x29c);}this[_0x34a816(0x185,0x15a)]=_0x3377a6[_0x34a816(0x185,0x157)],this['grid']=[];const _0x4b2810=_0x3377a6['udata'],_0x1bed2e=_0x3377a6[_0x458224(-0x20a,-0x1fb)];let _0x214fdd=![];_0x4b2810['length']===this['rows']&&_0x4b2810[0x0]['length']===this[_0x34a816(0x17e,0x112)]&&(_0x214fdd=!![]);let _0x561a0e=0x0,_0x55ef6e=null,_0x21bb05=null;for(let _0x5830f7=0x0;_0x5830f7<this['rows'];_0x5830f7++){_0x55ef6e=[];for(let _0x3c3aa7=0x0;_0x3c3aa7<this[_0x34a816(0x17e,0x13a)];_0x3c3aa7++,_0x561a0e++){_0x214fdd?_0x21bb05=this['_calcUV'](_0x4b2810[_0x5830f7][_0x3c3aa7],_0x1bed2e[_0x5830f7][_0x3c3aa7]):_0x21bb05=this['_calcUV'](_0x4b2810[_0x561a0e],_0x1bed2e[_0x561a0e]),_0x55ef6e['push'](_0x21bb05);}this['grid']['push'](_0x55ef6e);}!this['options'][_0x458224(-0x1e0,-0x24e)]&&this['grid'][_0x34a816(0xe8,0xc2)]();}['clear'](){delete this[_0x82450e(0x305,0x2b6)],delete this[_0x2edf94(0xf1,0x87)],delete this['xmin'];function _0x82450e(_0x25f3ae,_0x10fbb2){return _0x9b7c55(_0x25f3ae,_0x10fbb2- -0x82);}delete this['xmax'],delete this['ymin'];function _0x2edf94(_0x57abc1,_0x349a26){return _0x164541(_0x57abc1,_0x349a26-0x1a5);}delete this[_0x2edf94(0xfe,0x8e)],delete this[_0x2edf94(0x12f,0xb2)],delete this[_0x82450e(0x2ca,0x27e)];}['toGridXY'](_0x2d6c34,_0x3567a8){function _0x29f98e(_0x4d0898,_0x555edc){return _0x9b7c55(_0x4d0898,_0x555edc- -0xf2);}function _0x4f5d46(_0x70140b,_0x2445c0){return _0x9b7c55(_0x2445c0,_0x70140b- -0x2bb);}const _0x2613c6=(_0x2d6c34-this['xmin'])/(this['xmax']-this[_0x29f98e(0x1b7,0x1e5)])*(this[_0x4f5d46(0x96,0x33)]-0x1),_0x873a4a=(this['ymax']-_0x3567a8)/(this['ymax']-this['ymin'])*(this[_0x29f98e(0x241,0x246)]-0x1);return[_0x2613c6,_0x873a4a];}['getUVByXY'](_0x381c8d,_0x3d42ad){if(_0x381c8d<0x0||_0x381c8d>=this['cols']||_0x3d42ad>=this[_0x494f00(0x2a1,0x2d0)])return[0x0,0x0,0x0];const _0x47ac62=Math['floor'](_0x381c8d),_0x3759b0=Math['floor'](_0x3d42ad);if(_0x47ac62===_0x381c8d&&_0x3759b0===_0x3d42ad)return this['grid'][_0x3d42ad][_0x381c8d];const _0x2ebe13=_0x47ac62+0x1,_0x58e5ff=_0x3759b0+0x1;function _0x494f00(_0x310dcd,_0x35f842){return _0x164541(_0x310dcd,_0x35f842-0x407);}function _0x3fb98c(_0x3224e9,_0x492831){return _0x164541(_0x3224e9,_0x492831-0x635);}const _0x1ff801=this['getUVByXY'](_0x47ac62,_0x3759b0),_0x507c25=this[_0x3fb98c(0x447,0x4ae)](_0x2ebe13,_0x3759b0),_0x470a12=this['getUVByXY'](_0x47ac62,_0x58e5ff),_0x412555=this['getUVByXY'](_0x2ebe13,_0x58e5ff);let _0x637915=null;try{_0x637915=this['_bilinearInterpolation'](_0x381c8d-_0x47ac62,_0x3d42ad-_0x3759b0,_0x1ff801,_0x507c25,_0x470a12,_0x412555);}catch(_0x342457){console['log'](_0x381c8d,_0x3d42ad);}return _0x637915;}['_bilinearInterpolation'](_0x2ae482,_0x4f0b87,_0xb8930e,_0x362c00,_0x1efea9,_0x270b53){const _0x5e2bdf=0x1-_0x2ae482;function _0x5b4119(_0x71b186,_0x4c1210){return _0x164541(_0x4c1210,_0x71b186-0x165);}const _0x1fca61=0x1-_0x4f0b87,_0x29b666=_0x5e2bdf*_0x1fca61,_0x9d771f=_0x2ae482*_0x1fca61,_0x23eb42=_0x5e2bdf*_0x4f0b87,_0x46479d=_0x2ae482*_0x4f0b87,_0x4eb35d=_0xb8930e[0x0]*_0x29b666+_0x362c00[0x0]*_0x9d771f+_0x1efea9[0x0]*_0x23eb42+_0x270b53[0x0]*_0x46479d,_0x21ba69=_0xb8930e[0x1]*_0x29b666+_0x362c00[0x1]*_0x9d771f+_0x1efea9[0x1]*_0x23eb42+_0x270b53[0x1]*_0x46479d;return this[_0x5b4119(0x48,0x15)](_0x4eb35d,_0x21ba69);}['_calcUV'](_0x4f84ea,_0x15ad99){function _0x251ae6(_0x4ce994,_0x27a718){return _0x164541(_0x27a718,_0x4ce994-0x518);}return[+_0x4f84ea,+_0x15ad99,Math[_0x251ae6(0x3a0,0x3c5)](_0x4f84ea*_0x4f84ea+_0x15ad99*_0x15ad99)];}[_0x164541(-0xa8,-0x129)](_0x64ecb5,_0xa7dc88){if(!this['isInExtent'](_0x64ecb5,_0xa7dc88))return null;function _0xf91554(_0x279d35,_0x4b65a2){return _0x9b7c55(_0x4b65a2,_0x279d35- -0x4f5);}const _0x54763d=this[_0xf91554(-0x253,-0x288)](_0x64ecb5,_0xa7dc88),_0x3bf60b=this['getUVByXY'](_0x54763d[0x0],_0x54763d[0x1]);return _0x3bf60b;}['isInExtent'](_0x2bebe1,_0x2896a5){return _0x2bebe1>=this['xmin']&&_0x2bebe1<=this['xmax']&&_0x2896a5>=this['ymin']&&_0x2896a5<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x1766e4=fRandomByfloat(this['xmin'],this[_0x42b136(-0x2a8,-0x2bc)]),_0x470068=fRandomByfloat(this['ymin'],this[_0x42b136(-0x21e,-0x210)]),_0x33b2a5={};_0x33b2a5['lat']=_0x470068;function _0x3ab0c9(_0x1d2e30,_0x38637a){return _0x9b7c55(_0x38637a,_0x1d2e30- -0x18d);}_0x33b2a5[_0x3ab0c9(0x145,0x141)]=_0x1766e4;function _0x42b136(_0x247696,_0x2a719a){return _0x164541(_0x2a719a,_0x247696- -0x107);}return _0x33b2a5;}['getParticles'](){function _0x142336(_0x58bff7,_0x4fdcb8){return _0x164541(_0x4fdcb8,_0x58bff7-0x549);}let _0x16b2e3,_0x84d3f3,_0x22d5d3;function _0x23875a(_0x2fe0fe,_0x27b238){return _0x164541(_0x2fe0fe,_0x27b238-0x20b);}for(let _0xe70049=0x0,_0x5dc0f8=this[_0x23875a(0x10e,0x9c)]['length'];_0xe70049<_0x5dc0f8;_0xe70049++){let _0x3e86cb=this[_0x23875a(0x50,0x9c)][_0xe70049];_0x3e86cb['age']<=0x0&&(_0x3e86cb=this['_randomParticle'](_0x3e86cb));if(_0x3e86cb[_0x23875a(-0x48,0x3d)]>0x0){const _0x49239f=_0x3e86cb['tlng'],_0x27f8f0=_0x3e86cb['tlat'];_0x22d5d3=this[_0x142336(0x420,0x3dd)](_0x49239f,_0x27f8f0),_0x22d5d3?(_0x16b2e3=_0x49239f+this[_0x142336(0x40e,0x46b)][0x0]*_0x22d5d3[0x0],_0x84d3f3=_0x27f8f0+this[_0x23875a(0x5b,0xd0)][0x1]*_0x22d5d3[0x1],_0x3e86cb['lng']=_0x49239f,_0x3e86cb['lat']=_0x27f8f0,_0x3e86cb[_0x23875a(-0x12,0x4e)]=_0x16b2e3,_0x3e86cb['tlat']=_0x84d3f3,_0x3e86cb[_0x142336(0x363,0x37f)]=_0x22d5d3[0x2],_0x3e86cb[_0x23875a(0xc1,0x3d)]--):_0x3e86cb['age']=0x0;}}return this[_0x142336(0x3da,0x36f)];}['_randomParticle'](_0x49c3c9){let _0x4a9763,_0x3b03f1;for(let _0xb70e2=0x0;_0xb70e2<0x1e;_0xb70e2++){_0x4a9763=this['getRandomLatLng'](),_0x3b03f1=this[_0xd4b66e(0x30d,0x386)](_0x4a9763[_0xd4b66e(0x299,0x259)],_0x4a9763[_0xd4b66e(0x283,0x291)]);if(_0x3b03f1&&_0x3b03f1[0x2]>0x0)break;}if(!_0x3b03f1)return _0x49c3c9;const _0x2b76e7=_0x4a9763[_0xd4b66e(0x299,0x29e)]+this[_0x860a22(0x1f1,0x25a)][0x0]*_0x3b03f1[0x0],_0xd8925a=_0x4a9763['lat']+this['_calc_speedRate'][0x1]*_0x3b03f1[0x1];_0x49c3c9['lng']=_0x4a9763[_0x860a22(0x1c3,0x1f8)];function _0x860a22(_0x5e945e,_0x32c4a9){return _0x9b7c55(_0x5e945e,_0x32c4a9- -0xda);}_0x49c3c9['lat']=_0x4a9763['lat'],_0x49c3c9[_0xd4b66e(0x279,0x1fb)]=_0x2b76e7,_0x49c3c9['tlat']=_0xd8925a;function _0xd4b66e(_0x2e1c4f,_0x21ce84){return _0x9b7c55(_0x21ce84,_0x2e1c4f- -0x39);}return _0x49c3c9['age']=Math[_0xd4b66e(0x248,0x270)](0xa+Math['random']()*this[_0x860a22(0x2f4,0x2ad)]),_0x49c3c9['speed']=_0x3b03f1[0x2],_0x49c3c9;}['destroy'](){for(const _0x2ef445 in this){delete this[_0x2ef445];}}}function fRandomByfloat(_0x5ae267,_0x10d458){return _0x5ae267+Math['random']()*(_0x10d458-_0x5ae267);}const Cesium=mars3d__namespace[_0x9b7c55(0x381,0x366)],BaseLayer=mars3d__namespace[_0x9b7c55(0x261,0x2bd)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x5c362b={}){function _0x216630(_0x3c95fd,_0x1e39eb){return _0x164541(_0x3c95fd,_0x1e39eb-0x59f);}function _0x5f1bc9(_0xd544a0,_0x2d02ea){return _0x9b7c55(_0x2d02ea,_0xd544a0- -0x402);}super(_0x5c362b),this['_setOptionsHook'](_0x5c362b),this['canvas']=null,_0x5c362b['colors']&&_0x5c362b[_0x216630(0x476,0x412)]&&(this[_0x5f1bc9(-0x10e,-0x106)]=new mars3d__namespace[(_0x216630(0x416,0x3ef))](_0x5c362b));}['_setOptionsHook'](_0x324d1e,_0x24c1c2){this[_0x1d3ecc(0x449,0x43d)]=0x3e8/(_0x324d1e['frameRate']||0xa);function _0x1d3ecc(_0x2473d0,_0x4cff94){return _0x164541(_0x2473d0,_0x4cff94-0x5b9);}this['_pointerEvents']=this['options']['pointerEvents']??![],this[_0x94fd6(0x2ff,0x2eb)]=_0x324d1e['color']||'#ffffff',this[_0x94fd6(0x2d0,0x2fe)]=_0x324d1e['lineWidth']||0x1,this['fixedHeight']=_0x324d1e['fixedHeight']??0x0;function _0x94fd6(_0x44674e,_0x33f075){return _0x164541(_0x44674e,_0x33f075-0x436);}this['flipY']=_0x324d1e[_0x1d3ecc(0x50a,0x4b2)]??![],this['windField']&&this[_0x1d3ecc(0x490,0x4cd)]['setOptions'](_0x324d1e);}get[_0x9b7c55(0x25c,0x2bd)](){return this['canvas'];}get[_0x164541(-0x1b0,-0x199)](){return this['_map']['scene']['canvas']['clientWidth'];}get['canvasHeight'](){return this['_map']['scene']['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0x9b7c55(0x3cd,0x35f)](_0x131c90){this[_0x41b2d4(0x4bd,0x4c4)]=_0x131c90;function _0x314530(_0x2e067e,_0x59af17){return _0x164541(_0x59af17,_0x2e067e- -0x127);}if(!this[_0x314530(-0x281,-0x2a6)])return;function _0x41b2d4(_0x508194,_0x34199d){return _0x9b7c55(_0x508194,_0x34199d-0x1ce);}_0x131c90?this['canvas']['style']['pointer-events']='all':this['canvas']['style'][_0x41b2d4(0x4c6,0x4ee)]='none';}get['particlesNumber'](){return this['options']['particlesNumber'];}set['particlesNumber'](_0x560e28){this['options']['particlesNumber']=_0x560e28;function _0x4bf7b4(_0x281f73,_0x31da03){return _0x9b7c55(_0x31da03,_0x281f73- -0x21c);}clearTimeout(this[_0x4bf7b4(0x84,0x55)]),this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x3014e4(_0x1397c5,_0x3d5e4f){return _0x9b7c55(_0x3d5e4f,_0x1397c5- -0x222);}function _0x1fd0f3(_0x5c86a2,_0x48b7e7){return _0x164541(_0x48b7e7,_0x5c86a2-0x47a);}return this[_0x1fd0f3(0x2be,0x259)][_0x1fd0f3(0x33e,0x32e)];}set['speedRate'](_0x369551){function _0x38f846(_0x23bc6b,_0x5b3b9a){return _0x9b7c55(_0x23bc6b,_0x5b3b9a- -0x151);}this[_0x38f846(0x1dd,0x162)]['speedRate']=_0x369551,this['windField']&&(this['windField']['speedRate']=_0x369551);}get[_0x9b7c55(0x3bb,0x387)](){return this['options']['maxAge'];}set['maxAge'](_0x1c950f){this['options']['maxAge']=_0x1c950f;function _0x40ca42(_0x1094ba,_0x48b86e){return _0x164541(_0x48b86e,_0x1094ba-0x5f7);}this['windField']&&(this['windField'][_0x40ca42(0x50f,0x4ef)]=_0x1c950f);}get[_0x164541(-0xb1,-0xea)](){function _0x58b5da(_0xca5de2,_0x1fa7e7){return _0x164541(_0x1fa7e7,_0xca5de2- -0x31);}return this[_0x58b5da(-0x137,-0x18c)];}set['data'](_0x3a5312){this['setData'](_0x3a5312);}get['rectangle'](){let _0x5b8fa7=this['windData']['xmin'],_0x31f290=this['windData']['xmax'];function _0x43b756(_0x58f301,_0x1f4e06){return _0x164541(_0x58f301,_0x1f4e06-0x5a3);}let _0x300c4a=this['windData']['ymin'],_0x10d841=this[_0x43b756(0x4a1,0x49d)][_0x5ab0eb(0x4f0,0x52b)];_0x31f290>=0x167&&_0x5b8fa7===0x0&&(_0x5b8fa7=-0xb4,_0x31f290=0xb4);_0x5b8fa7=Math[_0x43b756(0x50e,0x4ac)](_0x5b8fa7,-0xb4);function _0x5ab0eb(_0x30f5c0,_0x35c7c8){return _0x164541(_0x35c7c8,_0x30f5c0-0x607);}return _0x31f290=Math[_0x5ab0eb(0x4ee,0x548)](_0x31f290,0xb4),_0x300c4a=Math['max'](_0x300c4a,-0x5a),_0x10d841=Math[_0x43b756(0x49c,0x48a)](_0x10d841,0x5a),Cesium[_0x43b756(0x435,0x3d3)]['fromDegrees'](_0x5b8fa7,_0x300c4a,_0x31f290,_0x10d841);}[_0x164541(-0x1d7,-0x171)](_0x4bee8a){function _0x35afa7(_0x552ae5,_0x56ac96){return _0x164541(_0x56ac96,_0x552ae5-0x4b7);}function _0x2c1414(_0x1cd993,_0x157711){return _0x164541(_0x1cd993,_0x157711-0x595);}_0x4bee8a?this[_0x2c1414(0x40d,0x45c)]():(this[_0x35afa7(0x3b1,0x426)]&&(this['options']['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x4fcbac(_0x4afb42,_0x83a373){return _0x164541(_0x4afb42,_0x83a373- -0x128);}function _0x1a2b7a(_0x35c582,_0x4501b0){return _0x164541(_0x35c582,_0x4501b0-0x2ae);}this['options'][_0x4fcbac(-0x2c5,-0x2b1)]?this[_0x4fcbac(-0x288,-0x2ac)]():this[_0x1a2b7a(0x163,0x1c2)]=new CanvasWindField(this[_0x1a2b7a(0x8c,0xf2)]);}['_addedHook'](){this['canvas']=this['_createCanvas']();function _0x55b8da(_0x2de554,_0x1170cb){return _0x9b7c55(_0x2de554,_0x1170cb- -0x16c);}const _0x463195={};function _0x4263b7(_0xe988f3,_0x4fb06e){return _0x9b7c55(_0xe988f3,_0x4fb06e- -0x3b9);}_0x463195['willReadFrequently']=!![],this[_0x55b8da(0x10e,0x132)]=this[_0x4263b7(-0x104,-0xa4)]['getContext']('2d',_0x463195),this[_0x4263b7(-0x135,-0x112)](),this[_0x4263b7(-0x189,-0x106)]['data']&&this['setData'](this['options']['data']);}['_removedHook'](){this['clear'](),this['unbindEvent'](),this['canvas']&&(this['_map']['container']['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x3d19c2=mars3d__namespace[_0x15c637(-0x170,-0x124)]['create']('canvas','mars3d-canvasWind',this['_map'][_0x15c637(-0xd3,-0x65)]);function _0x36ff5e(_0x1f16e3,_0x4f139a){return _0x9b7c55(_0x1f16e3,_0x4f139a-0x18b);}_0x3d19c2[_0x36ff5e(0x460,0x47a)]['position']='absolute',_0x3d19c2['style'][_0x36ff5e(0x49a,0x4d2)]='0px',_0x3d19c2['style']['left']=_0x15c637(-0xf0,-0xc0),_0x3d19c2['style']['width']=this['_map'][_0x36ff5e(0x52f,0x4ac)][_0x36ff5e(0x4c9,0x4a0)]['clientWidth']+'px',_0x3d19c2['style']['height']=this[_0x15c637(-0x118,-0x9b)]['scene']['canvas']['clientHeight']+'px',_0x3d19c2['style'][_0x15c637(-0xcc,-0x52)]=this['_pointerEvents']?_0x36ff5e(0x3d7,0x421):'none';function _0x15c637(_0xea1d07,_0x74841b){return _0x9b7c55(_0xea1d07,_0x74841b- -0x3b1);}return _0x3d19c2['style'][_0x36ff5e(0x4b3,0x45b)]=this['options'][_0x36ff5e(0x3de,0x45b)]??0x9,_0x3d19c2[_0x36ff5e(0x397,0x417)]=this['_map']['scene']['canvas']['clientWidth'],_0x3d19c2['height']=this['_map']['scene'][_0x36ff5e(0x4e2,0x4a0)][_0x15c637(-0x14,-0x3b)],_0x3d19c2;}['resize'](){function _0x23bec1(_0x514faf,_0x37d289){return _0x164541(_0x514faf,_0x37d289- -0x31);}function _0x3e0357(_0x3c8df5,_0x683776){return _0x164541(_0x3c8df5,_0x683776-0x395);}this['canvas']&&(this['canvas'][_0x23bec1(-0x13e,-0x1b1)]['width']=this['_map']['scene']['canvas'][_0x23bec1(-0x14f,-0x145)]+'px',this[_0x3e0357(0x2ad,0x23b)][_0x23bec1(-0x1ba,-0x1b1)][_0x3e0357(0x1cd,0x255)]=this['_map']['scene'][_0x3e0357(0x23f,0x23b)]['clientHeight']+'px',this[_0x23bec1(-0x174,-0x18b)][_0x23bec1(-0x241,-0x214)]=this['_map'][_0x23bec1(-0x146,-0x17f)]['canvas'][_0x3e0357(0x2d9,0x281)],this['canvas']['height']=this['_map']['scene'][_0x3e0357(0x231,0x23b)][_0x3e0357(0x24d,0x29c)]);}['bindEvent'](){const _0x174913=this;let _0xcc24ce=Date['now']();function _0x5e02bf(_0x3681a2,_0x58e2c4){return _0x9b7c55(_0x58e2c4,_0x3681a2- -0x274);}(function _0x1d3286(){if(_0x174913[_0x54d675(-0x184,-0x179)])return;function _0x54d675(_0xf064f7,_0x39d39c){return _0x540e(_0xf064f7- -0x2c8,_0x39d39c);}_0x174913['_animateFrame']=window['requestAnimationFrame'](_0x1d3286);if(_0x174913['show']&&_0x174913['windField']){const _0x598824=Date['now'](),_0x29a14c=_0x598824-_0xcc24ce;_0x29a14c>_0x174913['frameTime']&&(_0xcc24ce=_0x598824-_0x29a14c%_0x174913['frameTime'],_0x174913['update']());}}(),window['addEventListener'](_0x5e02bf(0xf3,0x8a),this[_0x3107ce(0x297,0x267)]['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![]);function _0x3107ce(_0x3d88a4,_0x3fea26){return _0x164541(_0x3d88a4,_0x3fea26-0x36f);}this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace[_0x5e02bf(0x37,0x70)][_0x5e02bf(0x46,0xba)],this[_0x5e02bf(0x7a,0xdb)],this),this[_0x5e02bf(0xa2,0x69)]['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this));}['unbindEvent'](){window['cancelAnimationFrame'](this['_animateFrame']),delete this['_animateFrame'];function _0x1b574f(_0x53722e,_0x11c7a1){return _0x164541(_0x53722e,_0x11c7a1-0x11b);}window[_0x3f5b1e(0x2a9,0x26e)]('resize',this[_0x3f5b1e(0x2de,0x259)]);function _0x3f5b1e(_0x5e2d37,_0x5e045f){return _0x164541(_0x5e045f,_0x5e2d37-0x3e6);}this[_0x1b574f(-0x2f,-0xa1)]['mouseHidden']&&(this[_0x3f5b1e(0x28d,0x272)]['off'](mars3d__namespace['EventType']['wheel'],this[_0x1b574f(0x7d,0x30)],this),this['_map']['off'](mars3d__namespace[_0x1b574f(-0xf7,-0xa9)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x3f5b1e(0x202,0x1fa)](mars3d__namespace['EventType'][_0x1b574f(0x3a,0x3)],this['_onMouseUpEvent'],this),this[_0x1b574f(0x45,-0x3e)]['off'](mars3d__namespace['EventType'][_0x3f5b1e(0x2c4,0x244)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x2a78cb){function _0x230790(_0xc8331f,_0x5bfa59){return _0x164541(_0x5bfa59,_0xc8331f-0x152);}clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this[_0x3bc6bd(0x309,0x375)][_0x230790(-0x2e,0x1d)][_0x230790(0x40,0x94)]='hidden';function _0x3bc6bd(_0x5bf29e,_0xe490e6){return _0x9b7c55(_0xe490e6,_0x5bf29e- -0xc);}this['refreshTimer']=setTimeout(()=>{if(!this[_0x149012(-0x3c,-0x3)])return;function _0x149012(_0xdf8c29,_0x167db0){return _0x3bc6bd(_0xdf8c29- -0x394,_0x167db0);}this['redraw']();function _0x594297(_0x3b959b,_0x1cd6be){return _0x3bc6bd(_0x3b959b- -0x7b,_0x1cd6be);}this[_0x594297(0x28e,0x252)][_0x149012(-0xb1,-0xf0)][_0x149012(-0x43,-0xc3)]='visible';},0xc8);}[_0x164541(-0x107,-0x181)](_0x2cb651){function _0xfa26e5(_0x1f4cc7,_0xce6578){return _0x9b7c55(_0x1f4cc7,_0xce6578- -0x53e);}this[_0xfa26e5(-0x2f0,-0x288)]=!![];function _0x7af626(_0x247274,_0x33d7cf){return _0x164541(_0x33d7cf,_0x247274-0x324);}this[_0x7af626(0x1cb,0x1e5)]['off'](mars3d__namespace['EventType'][_0xfa26e5(-0x19f,-0x1f1)],this[_0x7af626(0x230,0x22b)],this),this[_0xfa26e5(-0x243,-0x228)]['on'](mars3d__namespace['EventType']['mouseMove'],this[_0x7af626(0x230,0x1cc)],this);}[_0x164541(-0x161,-0xf4)](_0x12f84){function _0x31e968(_0x264750,_0x7e66a5){return _0x164541(_0x7e66a5,_0x264750-0x543);}if(!this['show']||!this['canvas'])return;function _0x5b1d27(_0x172324,_0x457ca2){return _0x9b7c55(_0x457ca2,_0x172324- -0x1fe);}this[_0x31e968(0x38a,0x34d)]&&(this[_0x5b1d27(0x117,0x154)][_0x31e968(0x3c3,0x343)][_0x31e968(0x431,0x411)]=_0x31e968(0x43e,0x43b),this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x37437d){function _0x4fb767(_0x267dcb,_0x326d79){return _0x9b7c55(_0x267dcb,_0x326d79- -0x36a);}if(!this[_0xac4067(0x223,0x231)]||!this['canvas'])return;this[_0x4fb767(0x2a,-0x54)]['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x4fb767(0x94,0x11)],this);this['mouse_down']&&this['mouse_move']&&this['redraw']();function _0xac4067(_0x359882,_0x491751){return _0x164541(_0x359882,_0x491751-0x33c);}this[_0xac4067(0x1e9,0x1e2)]['style']['visibility']='visible',this['mouse_down']=![],this['mouse_move']=![];}[_0x164541(-0x112,-0x14c)](_0x2f4979){this[_0x2ace28(-0x139,-0x10b)](),this[_0x44405c(0x264,0x23c)]=_0x2f4979;function _0x44405c(_0x32c4dc,_0x43815d){return _0x164541(_0x32c4dc,_0x43815d-0x342);}function _0x2ace28(_0x35ade4,_0x161e7e){return _0x9b7c55(_0x161e7e,_0x35ade4- -0x4c9);}this[_0x2ace28(-0x146,-0x122)][_0x2ace28(-0x147,-0x1aa)](_0x2f4979),this['redraw']();}['redraw'](){if(!this['show'])return;function _0x32f14f(_0x314a35,_0x444461){return _0x164541(_0x314a35,_0x444461-0x63f);}function _0x485e3e(_0x4bc932,_0x34de84){return _0x164541(_0x34de84,_0x4bc932-0xea);}this['windField'][_0x485e3e(-0xba,-0xf0)](this['options']),this[_0x485e3e(-0x2c,-0x2f)]();}[_0x9b7c55(0x2d0,0x359)](){function _0x1324f3(_0x5d0d7f,_0x5c4d5a){return _0x9b7c55(_0x5d0d7f,_0x5c4d5a- -0x2ac);}if(this[_0x3bde4c(-0x256,-0x2d2)])return;function _0x3bde4c(_0x50b504,_0x47fb5a){return _0x164541(_0x47fb5a,_0x50b504- -0xe0);}this['_updateIng']=!![];if(this[_0x3bde4c(-0x269,-0x2d3)])this['windField']['update']();else{const _0x4cd5cc=this[_0x1324f3(0x53,0xd7)]['getParticles']();this['_drawLines'](_0x4cd5cc);}this['_updateIng']=![];}[_0x9b7c55(0x264,0x2e3)](_0x1579e6){this[_0x24d3a2(0x364,0x399)]=_0x1579e6,this[_0x24d3a2(0x2c8,0x326)][_0x24d3a2(0x41d,0x3b8)]='destination-in',this[_0x4592c4(0x352,0x330)]['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']);function _0x4592c4(_0x5d29b8,_0x1d5ce9){return _0x164541(_0x5d29b8,_0x1d5ce9-0x501);}function _0x24d3a2(_0x1b32ac,_0x27b983){return _0x9b7c55(_0x1b32ac,_0x27b983-0x88);}this[_0x24d3a2(0x3a3,0x326)]['globalCompositeOperation']=_0x24d3a2(0x2f6,0x362),this['canvasContext'][_0x24d3a2(0x364,0x3b4)]=0.9;const _0x339138=this[_0x24d3a2(0x378,0x39e)]['scene']['mode']!==Cesium[_0x24d3a2(0x3b3,0x3fa)]['SCENE3D'],_0x294908=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x1daf20=0x0,_0x932c8e=_0x1579e6['length'];_0x1daf20<_0x932c8e;_0x1daf20++){const _0xb52d6c=_0x1579e6[_0x1daf20],_0x276e9e=this['_tomap'](_0xb52d6c,_0xb52d6c['lng'],_0xb52d6c['lat'],_0xb52d6c[_0x24d3a2(0x293,0x304)]),_0x46e2b6=this[_0x24d3a2(0x416,0x3bd)](_0xb52d6c,_0xb52d6c[_0x24d3a2(0x365,0x33a)],_0xb52d6c[_0x4592c4(0x367,0x3bb)],_0xb52d6c['talt']);if(!_0x276e9e||!_0x46e2b6)continue;if(_0x339138&&Math['abs'](_0x276e9e[0x0]-_0x46e2b6[0x0])>=_0x294908)continue;this[_0x4592c4(0x38e,0x330)][_0x4592c4(0x3d7,0x398)](),this['canvasContext'][_0x24d3a2(0x3ab,0x3bf)]=this['lineWidth'],this[_0x24d3a2(0x386,0x326)]['strokeStyle']=this['_colorRamp'][_0x4592c4(0x34f,0x349)](_0xb52d6c['speed']),this[_0x24d3a2(0x2bb,0x326)]['moveTo'](_0x276e9e[0x0],_0x276e9e[0x1]),this[_0x24d3a2(0x335,0x326)]['lineTo'](_0x46e2b6[0x0],_0x46e2b6[0x1]),this[_0x24d3a2(0x3aa,0x326)]['stroke']();}else{this['canvasContext'][_0x4592c4(0x3a5,0x398)](),this[_0x4592c4(0x31c,0x330)]['lineWidth']=this[_0x24d3a2(0x429,0x3bf)],this['canvasContext']['strokeStyle']=this['color'];for(let _0xd92ba5=0x0,_0x15ddd8=_0x1579e6['length'];_0xd92ba5<_0x15ddd8;_0xd92ba5++){const _0xb2b55a=_0x1579e6[_0xd92ba5],_0x2801e4=this['_tomap'](_0xb2b55a,_0xb2b55a[_0x4592c4(0x2e0,0x364)],_0xb2b55a['lat'],_0xb2b55a[_0x4592c4(0x35d,0x30e)]),_0x140c7d=this[_0x24d3a2(0x37c,0x3bd)](_0xb2b55a,_0xb2b55a['tlng'],_0xb2b55a['tlat'],_0xb2b55a['talt']);if(!_0x2801e4||!_0x140c7d)continue;if(_0x339138&&Math['abs'](_0x2801e4[0x0]-_0x140c7d[0x0])>=_0x294908)continue;this['canvasContext'][_0x4592c4(0x308,0x35f)](_0x2801e4[0x0],_0x2801e4[0x1]),this['canvasContext']['lineTo'](_0x140c7d[0x0],_0x140c7d[0x1]);}this[_0x24d3a2(0x2df,0x326)][_0x4592c4(0x3d4,0x3b7)]();}}['_tomap'](_0x26946e,_0x166ddc,_0xdc5de7,_0x493b5e){const _0x2bdea5=Cesium[_0xc044d2(-0xa1,-0xed)][_0x2b36eb(0x49c,0x420)](_0x166ddc,_0xdc5de7,_0x493b5e??this[_0x2b36eb(0x532,0x51d)]);function _0xc044d2(_0xec8f71,_0x549142){return _0x164541(_0x549142,_0xec8f71-0x11e);}const _0x1f50ee=this[_0x2b36eb(0x4f4,0x4b2)][_0x2b36eb(0x4a8,0x4bd)];if(_0x1f50ee['mode']===Cesium['SceneMode'][_0x2b36eb(0x4de,0x4c3)]){const _0x38bc8b=new Cesium['EllipsoidalOccluder'](_0x1f50ee['globe'][_0x2b36eb(0x452,0x496)],_0x1f50ee['camera']['positionWC']),_0x54d940=_0x38bc8b['isPointVisible'](_0x2bdea5);if(!_0x54d940)return _0x26946e[_0xc044d2(-0xb0,-0x136)]=0x0,null;}const _0x3987ed=mars3d__namespace[_0xc044d2(-0x3,0x2e)][_0xc044d2(-0x78,-0xa1)](this['_map'][_0x2b36eb(0x4e5,0x4bd)],_0x2bdea5);function _0x2b36eb(_0x3954bd,_0x43b841){return _0x9b7c55(_0x3954bd,_0x43b841-0x19c);}return _0x3987ed?[_0x3987ed['x'],_0x3987ed['y']]:null;}[_0x9b7c55(0x418,0x390)](){function _0x5087c1(_0x30ce79,_0x138448){return _0x9b7c55(_0x30ce79,_0x138448- -0x251);}function _0x1fab7f(_0x27cb96,_0x1912a7){return _0x9b7c55(_0x1912a7,_0x27cb96- -0x1e0);}this[_0x5087c1(0x175,0x132)]['clear'](),delete this[_0x1fab7f(0x189,0x20f)];}['initWorker'](){this[_0x29e707(0x289,0x2f6)]=new Worker(this['options']['worker']);function _0x29e707(_0xcb4edf,_0xee4e65){return _0x9b7c55(_0xcb4edf,_0xee4e65-0x10);}function _0x435cb9(_0xb223e7,_0x388abc){return _0x164541(_0x388abc,_0xb223e7-0x599);}this[_0x435cb9(0x410,0x438)][_0x435cb9(0x44c,0x421)]=_0x1181c4=>{this[_0x39277e(-0x23f,-0x294)](_0x1181c4['data']['particles']);function _0x39277e(_0x31d166,_0x5ba5f2){return _0x435cb9(_0x31d166- -0x64c,_0x5ba5f2);}this['_updateIng2']=![];},this['windField']={'init':_0x190314=>{const _0x238904={};function _0x48692d(_0x2a8b4b,_0x52c22b){return _0x435cb9(_0x52c22b-0x7b,_0x2a8b4b);}_0x238904['type']='init',_0x238904['options']=_0x190314,this['worker'][_0x48692d(0x490,0x4f8)](_0x238904);},'setOptions':_0x131e8b=>{const _0x383e68={};function _0x482f7c(_0x5b3b77,_0x5b95e6){return _0x29e707(_0x5b95e6,_0x5b3b77-0x1ee);}_0x383e68['type']=_0x482f7c(0x4c9,0x478),_0x383e68['options']=_0x131e8b,this['worker']['postMessage'](_0x383e68);},'setDate':_0x20aecf=>{function _0x3c164a(_0x153642,_0x29f7c5){return _0x435cb9(_0x153642- -0x5c3,_0x29f7c5);}function _0x4d267f(_0x415dc2,_0x430694){return _0x29e707(_0x415dc2,_0x430694- -0x4bc);}const _0x513e65={};_0x513e65['type']='setDate',_0x513e65[_0x4d267f(-0xf6,-0x127)]=_0x20aecf,this[_0x4d267f(-0x210,-0x1c6)][_0x3c164a(-0x146,-0x174)](_0x513e65);},'update':()=>{if(this[_0x59a29e(-0x6c,0x4)])return;this['_updateIng2']=!![];const _0x26c111={};function _0x169e8c(_0x122a02,_0x535846){return _0x435cb9(_0x122a02- -0x2ae,_0x535846);}function _0x59a29e(_0x3d75b1,_0x341758){return _0x29e707(_0x3d75b1,_0x341758- -0x36a);}_0x26c111['type']='update',this[_0x59a29e(-0x12,-0x74)]['postMessage'](_0x26c111);},'clear':()=>{const _0x5ca464={};_0x5ca464['type']='clear',this['worker']['postMessage'](_0x5ca464);}},this[_0x29e707(0x3b1,0x393)][_0x29e707(0x308,0x32b)](this[_0x29e707(0x272,0x2c3)]);}}mars3d__namespace['LayerUtil'][_0x9b7c55(0x283,0x2e9)](_0x9b7c55(0x246,0x29d),CanvasWindLayer),mars3d__namespace['layer'][_0x9b7c55(0x25f,0x288)]=CanvasWindLayer;function _0x9b7c55(_0x6ba751,_0x515908){return _0x540e(_0x515908-0x1b9,_0x6ba751);}mars3d__namespace[_0x164541(-0xff,-0xfc)]=CanvasWindField,mars3d__namespace['Log'][_0x9b7c55(0x31b,0x308)]('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports[_0x9b7c55(0x346,0x373)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x164541(-0xd6,-0x158)]=WindUtil;const _0x23a177={};_0x23a177[_0x9b7c55(0x355,0x37d)]=!![],Object[_0x164541(-0x1a8,-0x1dd)](exports,'__esModule',_0x23a177);
14
+ 'use strict';(function(_0x30427f,_0x4abc57){const _0x1154d5=_0x30427f();function _0x3c57b4(_0x3b8997,_0x38fd16){return _0x3f35(_0x38fd16-0x2bb,_0x3b8997);}function _0x71a69f(_0x522559,_0x27c5ad){return _0x3f35(_0x522559-0x391,_0x27c5ad);}while(!![]){try{const _0x4028a0=-parseInt(_0x71a69f(0x5cb,0x54f))/0x1*(parseInt(_0x3c57b4(0x55c,0x4e5))/0x2)+-parseInt(_0x3c57b4(0x50a,0x58e))/0x3+-parseInt(_0x71a69f(0x592,0x612))/0x4+parseInt(_0x3c57b4(0x4fb,0x48a))/0x5+parseInt(_0x3c57b4(0x4ef,0x4ab))/0x6+parseInt(_0x3c57b4(0x5a6,0x552))/0x7+parseInt(_0x3c57b4(0x510,0x538))/0x8*(parseInt(_0x71a69f(0x61a,0x699))/0x9);if(_0x4028a0===_0x4abc57)break;else _0x1154d5['push'](_0x1154d5['shift']());}catch(_0x1b670e){_0x1154d5['push'](_0x1154d5['shift']());}}}(_0x23a9,0xb9e3d));function _interopNamespace(_0x298275){if(_0x298275&&_0x298275['__esModule'])return _0x298275;function _0x2bb99f(_0x233735,_0x10f37b){return _0x3f35(_0x10f37b-0xd2,_0x233735);}function _0x46a895(_0x18b1a9,_0x493934){return _0x3f35(_0x493934-0x28,_0x18b1a9);}var _0x1b0992=Object[_0x46a895(0x213,0x237)](null);return _0x298275&&Object[_0x2bb99f(0x2c2,0x2f0)](_0x298275)['forEach'](function(_0x25ced4){function _0x532418(_0x4467d7,_0x157383){return _0x46a895(_0x157383,_0x4467d7- -0x3c);}function _0x5bbda2(_0x53ba19,_0xe3d0d4){return _0x2bb99f(_0xe3d0d4,_0x53ba19-0x2bc);}if(_0x25ced4!==_0x5bbda2(0x5f1,0x57e)){var _0x2e8cb6=Object[_0x532418(0x1d4,0x1d3)](_0x298275,_0x25ced4);Object['defineProperty'](_0x1b0992,_0x25ced4,_0x2e8cb6['get']?_0x2e8cb6:{'enumerable':!![],'get':function(){return _0x298275[_0x25ced4];}});}}),_0x1b0992[_0x46a895(0x2c2,0x28b)]=_0x298275,_0x1b0992;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x4ee3(0x4b2,0x468)];function getU(_0x599afc,_0x4c143e){const _0x2b1c5b=_0x599afc*Math['cos'](Cesium$2[_0x10776b(0x638,0x5e2)]['toRadians'](_0x4c143e));function _0x10776b(_0x26f384,_0x5aaf2f){return _0x4ee3(_0x5aaf2f-0xd6,_0x26f384);}return _0x2b1c5b;}function getV(_0x3868bb,_0x45da9d){const _0x66e27d=_0x3868bb*Math['sin'](Cesium$2['Math']['toRadians'](_0x45da9d));return _0x66e27d;}function getSpeed(_0x54456e,_0x170a2a){const _0xd586b0=Math['sqrt'](Math['pow'](_0x54456e,0x2)+Math['pow'](_0x170a2a,0x2));return _0xd586b0;}function getDirection(_0x239a4a,_0x46d0f){let _0x5e2f35=Cesium$2['Math'][_0x451712(0x6c,0x89)](Math['atan2'](_0x46d0f,_0x239a4a));_0x5e2f35+=_0x5e2f35<0x0?0x168:0x0;function _0x451712(_0x2b85f1,_0x3e176a){return _0x4ee3(_0x3e176a- -0x396,_0x2b85f1);}return _0x5e2f35;}const _0x4942da={};_0x4942da['__proto__']=null,_0x4942da[_0x46d1d0(0x612,0x649)]=getU,_0x4942da['getV']=getV,_0x4942da['getSpeed']=getSpeed,_0x4942da['getDirection']=getDirection;var WindUtil=_0x4942da,updatePositionShader=_0x46d1d0(0x647,0x63e),calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader=_0x4ee3(0x44b,0x482),renderParticlesFragmentShader=_0x46d1d0(0x5a7,0x5a0),renderParticlesVertexShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a';const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x46d1d0(0x617,0x5ce)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x3725df={};return _0x3725df['sources']=[calculateSpeedShader],new ShaderSource$1(_0x3725df);}static['getUpdatePositionShader'](){const _0x4616a7={};return _0x4616a7['sources']=[updatePositionShader],new ShaderSource$1(_0x4616a7);}static[_0x46d1d0(0x596,0x575)](){const _0x13f21d={};return _0x13f21d['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x13f21d);}static[_0x46d1d0(0x5c4,0x5aa)](){const _0x47c36a={};return _0x47c36a['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x47c36a);}static[_0x46d1d0(0x649,0x69f)](){const _0xf8a68f={};_0xf8a68f[_0x11c474(0x170,0x163)]=[postProcessingPositionFragmentShader];function _0x11c474(_0x39c126,_0x272f76){return _0x46d1d0(_0x272f76- -0x4c0,_0x39c126);}return new ShaderSource$1(_0xf8a68f);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace[_0x4ee3(0x4b2,0x49d)];class CustomPrimitive{constructor(_0x187501){this['commandType']=_0x187501['commandType'],this['geometry']=_0x187501[_0x6b2ab9(0x20c,0x1d1)],this['attributeLocations']=_0x187501['attributeLocations'],this[_0x42635f(-0x1,0x17)]=_0x187501[_0x42635f(0x50,0x17)],this[_0x6b2ab9(0x244,0x2cc)]=_0x187501['uniformMap']||{},this['vertexShaderSource']=_0x187501['vertexShaderSource'],this['fragmentShaderSource']=_0x187501['fragmentShaderSource'],this[_0x42635f(0x76,0xbc)]=_0x187501[_0x6b2ab9(0x257,0x2cf)];function _0x42635f(_0x25d5a7,_0xd3e25b){return _0x4ee3(_0xd3e25b- -0x463,_0x25d5a7);}this[_0x6b2ab9(0x1e2,0x212)]=_0x187501[_0x42635f(0x5c,-0x1)],this['outputTexture']=_0x187501['outputTexture'],this['autoClear']=_0x187501['autoClear']??![],this[_0x6b2ab9(0x209,0x23f)]=_0x187501['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x187501[_0x42635f(0x55,0x27)]??(()=>!![]);function _0x6b2ab9(_0x57146d,_0x1bf698){return _0x4ee3(_0x1bf698- -0x250,_0x57146d);}this['autoClear']&&(this[_0x6b2ab9(0x2b9,0x26f)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x6b2ab9(0x257,0x212)],'pass':Pass$1[_0x42635f(0x85,0x69)]}));}['createCommand'](_0x902dc7){function _0x2e81a8(_0x4e865d,_0x5362c8){return _0x46d1d0(_0x4e865d- -0x7d,_0x5362c8);}function _0x39839e(_0x38c727,_0x6425a4){return _0x4ee3(_0x38c727- -0x5fb,_0x6425a4);}if(this['commandType']==='Draw'){const _0x3f6cb7={};_0x3f6cb7['context']=_0x902dc7,_0x3f6cb7[_0x2e81a8(0x509,0x512)]=this['geometry'],_0x3f6cb7['attributeLocations']=this[_0x2e81a8(0x588,0x545)],_0x3f6cb7['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x180b95=VertexArray$1[_0x39839e(-0x126,-0xc5)](_0x3f6cb7),_0x36031d={};_0x36031d[_0x39839e(-0x169,-0xea)]=_0x902dc7,_0x36031d['vertexShaderSource']=this['vertexShaderSource'],_0x36031d['fragmentShaderSource']=this[_0x39839e(-0xf6,-0x8a)],_0x36031d[_0x2e81a8(0x588,0x57a)]=this['attributeLocations'];const _0x9eda7=ShaderProgram[_0x39839e(-0x1b2,-0x1d8)](_0x36031d),_0x1d9ec1=RenderState[_0x2e81a8(0x531,0x4f8)](this['rawRenderState']),_0x46743f={};return _0x46743f[_0x39839e(-0x107,-0xdd)]=this,_0x46743f['vertexArray']=_0x180b95,_0x46743f[_0x39839e(-0x181,-0x203)]=this[_0x39839e(-0x181,-0x1cf)],_0x46743f['modelMatrix']=Matrix4[_0x39839e(-0x170,-0x10e)],_0x46743f['renderState']=_0x1d9ec1,_0x46743f['shaderProgram']=_0x9eda7,_0x46743f[_0x39839e(-0x199,-0x19d)]=this[_0x39839e(-0x199,-0x131)],_0x46743f['uniformMap']=this[_0x39839e(-0xdf,-0xd9)],_0x46743f[_0x39839e(-0x174,-0x1d4)]=Pass$1[_0x2e81a8(0x5b4,0x58d)],new DrawCommand(_0x46743f);}else{if(this['commandType']==='Compute'){const _0x5905cb={};return _0x5905cb['owner']=this,_0x5905cb['fragmentShaderSource']=this['fragmentShaderSource'],_0x5905cb[_0x2e81a8(0x604,0x5a3)]=this[_0x2e81a8(0x604,0x5e2)],_0x5905cb['outputTexture']=this['outputTexture'],_0x5905cb['persists']=!![],new ComputeCommand(_0x5905cb);}else throw new Error(_0x2e81a8(0x53b,0x50b));}}[_0x4ee3(0x468,0x480)](_0x2580bc,_0x2285a5){this[_0x5c8a8f(-0x155,-0x16f)]=_0x2285a5;function _0x5c8a8f(_0x4f2c8f,_0x38b25f){return _0x4ee3(_0x38b25f- -0x590,_0x4f2c8f);}function _0x1ab917(_0x18289f,_0x14173b){return _0x4ee3(_0x18289f- -0x61c,_0x14173b);}defined(this['commandToExecute'])&&(this[_0x5c8a8f(-0xe7,-0xfb)][_0x5c8a8f(-0xaa,-0xc6)]=VertexArray$1[_0x1ab917(-0x147,-0x13b)]({'context':_0x2580bc,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x46d1d0(0x58c,0x5d4)](_0x545ad6){if(!this[_0x2973fc(0x523,0x5a6)]())return;if(!this[_0x33b438(0x421,0x3fe)]||!defined(_0x545ad6))return;function _0x2973fc(_0x1d3fc1,_0x376b79){return _0x46d1d0(_0x1d3fc1- -0xcc,_0x376b79);}!defined(this['commandToExecute'])&&(this['commandToExecute']=this[_0x2973fc(0x587,0x59d)](_0x545ad6[_0x2973fc(0x52b,0x4d6)]));function _0x33b438(_0x15904d,_0x299c42){return _0x46d1d0(_0x15904d- -0x18e,_0x299c42);}defined(this[_0x33b438(0x466,0x43e)])&&this['preExecute']();if(!_0x545ad6['commandList']){console[_0x33b438(0x4dd,0x4e0)]('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x545ad6[_0x2973fc(0x5ba,0x602)]['push'](this[_0x2973fc(0x558,0x512)]),defined(this['commandToExecute'])&&_0x545ad6['commandList']['push'](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){function _0x325030(_0x190adc,_0x4ea3aa){return _0x46d1d0(_0x4ea3aa- -0x5a4,_0x190adc);}if(defined(this['commandToExecute'])){var _0x158d0b;(_0x158d0b=this[_0x325030(0x85,0x56)][_0x325030(0x9b,0x5a)])===null||_0x158d0b===void 0x0||_0x158d0b['destroy'](),this[_0x5c3e22(0x589,0x5bc)]['shaderProgram']=undefined;}function _0x5c3e22(_0x490dc6,_0x3fd27e){return _0x4ee3(_0x3fd27e-0x127,_0x490dc6);}return destroyObject(this);}}function deepMerge(_0x3e37df,_0x57cc4d){if(!_0x3e37df)return _0x57cc4d;if(!_0x57cc4d)return _0x3e37df;const _0xb90ab7={..._0x57cc4d},_0xc9e307=_0xb90ab7;function _0x5cdc97(_0x418299,_0x33ac7f){return _0x46d1d0(_0x418299- -0x2b0,_0x33ac7f);}for(const _0x2a2262 in _0x3e37df){if(Object['prototype']['hasOwnProperty']['call'](_0x3e37df,_0x2a2262)){const _0x3452ba=_0x3e37df[_0x2a2262],_0x3a434e=_0x57cc4d[_0x2a2262];if(Array['isArray'](_0x3452ba)){_0xc9e307[_0x2a2262]=_0x3452ba['slice']();continue;}if(_0x3452ba&&typeof _0x3452ba===_0x5cdc97(0x3c3,0x39a)){_0xc9e307[_0x2a2262]=deepMerge(_0x3452ba,_0x3a434e||{});continue;}_0x3452ba!==undefined&&(_0xc9e307[_0x2a2262]=_0x3452ba);}}return _0xc9e307;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x584566,_0x4c233b,_0x521d61,_0x2016ac,_0x355b64){this[_0x2f48e7(0x5a6,0x57f)]=_0x584566,this['options']=_0x521d61,this['viewerParameters']=_0x2016ac;function _0x2f48e7(_0x3573a3,_0x443a95){return _0x4ee3(_0x3573a3-0x114,_0x443a95);}this['windData']=_0x4c233b,this[_0x37ef81(0xe7,0x136)]=0x3c,this['frameRateAdjustment']=0x1;const _0x4816e6={};function _0x37ef81(_0xb4cff5,_0x5b7f1e){return _0x4ee3(_0xb4cff5- -0x384,_0x5b7f1e);}_0x4816e6['scene']=_0x355b64,_0x4816e6[_0x2f48e7(0x5f2,0x653)]=0x1,_0x4816e6[_0x2f48e7(0x626,0x5c0)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x4816e6),this['initFrameRate'](),this[_0x2f48e7(0x538,0x4d0)](),this['createParticlesTextures'](),this[_0x2f48e7(0x5ea,0x66b)]();}['initFrameRate'](){const _0x193f65=()=>{function _0x320769(_0x35ebda,_0x36a40d){return _0x3f35(_0x36a40d-0x1de,_0x35ebda);}function _0x20e5f0(_0x22d987,_0x5f46b8){return _0x3f35(_0x5f46b8-0x138,_0x22d987);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this[_0x320769(0x3d5,0x3f5)]=this['frameRateMonitor']['lastFramesPerSecond'],this[_0x320769(0x45c,0x489)]=0x3c/Math['max'](this['frameRate'],0x1));};_0x193f65();const _0x1aa150=setInterval(_0x193f65,0x3e8),_0x23e5bf=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x1aa150),_0x23e5bf();};}['createWindTextures'](){const _0x30366a={};_0x30366a['minificationFilter']=TextureMinificationFilter$1[_0x2b5ebe(0x4e6,0x543)];function _0x28b8d7(_0x300e5d,_0x5437a0){return _0x46d1d0(_0x300e5d- -0x1e0,_0x5437a0);}function _0x2b5ebe(_0x553c1b,_0x3dfa39){return _0x4ee3(_0x553c1b-0xbe,_0x3dfa39);}_0x30366a['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x229638={'context':this[_0x2b5ebe(0x550,0x5a3)],'width':this['windData']['width'],'height':this['windData']['height'],'pixelFormat':PixelFormat$1[_0x28b8d7(0x3b7,0x3fe)],'pixelDatatype':PixelDatatype$1[_0x28b8d7(0x3b5,0x384)],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x30366a)};this['windTextures']={'U':new Texture$1({..._0x229638,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x229638,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x507d83={};_0x507d83['minificationFilter']=TextureMinificationFilter$1['NEAREST'],_0x507d83['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];function _0x33b39d(_0x329332,_0x49d089){return _0x46d1d0(_0x49d089- -0x530,_0x329332);}function _0x334dae(_0x39df20,_0x3bb669){return _0x46d1d0(_0x39df20- -0x6ce,_0x3bb669);}const _0x2b67ef={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this[_0x33b39d(0x104,0xdf)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x33b39d(0x74,0xdf)][_0x33b39d(0xec,0x83)]*this[_0x33b39d(0x109,0xdf)]['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x507d83)};this[_0x334dae(-0x115,-0x12b)]={'previousParticlesPosition':new Texture$1(_0x2b67ef),'currentParticlesPosition':new Texture$1(_0x2b67ef),'nextParticlesPosition':new Texture$1(_0x2b67ef),'postProcessingPosition':new Texture$1(_0x2b67ef),'particlesSpeed':new Texture$1(_0x2b67ef)};}[_0x4ee3(0x500,0x51e)](){function _0xd83071(_0x25c1b7,_0x5ed61f){return _0x46d1d0(_0x25c1b7- -0x107,_0x5ed61f);}function _0x14a0b4(_0x2b7a3f,_0x1486e2){return _0x46d1d0(_0x2b7a3f- -0x69b,_0x1486e2);}Object['values'](this['particlesTextures'])[_0xd83071(0x50d,0x522)](_0x31e728=>_0x31e728[_0x14a0b4(-0xb3,-0xff)]());}['createComputingPrimitives'](){function _0x1f77ff(_0x1c784f,_0xe4d8fb){return _0x46d1d0(_0xe4d8fb- -0x428,_0x1c784f);}function _0x1411ca(_0x31d4e7,_0x42ee89){return _0x46d1d0(_0x31d4e7- -0x2be,_0x42ee89);}this[_0x1411ca(0x3d1,0x419)]={'calculateSpeed':new CustomPrimitive({'commandType':_0x1411ca(0x333,0x38c),'uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this[_0x1411ca(0x3aa,0x3b2)]['V'],'uRange':()=>new Cartesian2$1(this[_0x1411ca(0x337,0x2cb)]['u'][_0x1411ca(0x35c,0x365)],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x1411ca(0x337,0x383)]['v']['min'],this[_0x1f77ff(0x16a,0x1cd)]['v'][_0x1f77ff(0x23b,0x1f9)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed'][_0x1f77ff(0x1e0,0x1f2)],this[_0x1411ca(0x337,0x3b8)][_0x1411ca(0x311,0x30c)]['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x410b61(_0x3456e8,_0x1a7109){return _0x1411ca(_0x1a7109-0x19d,_0x3456e8);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0x410b61(0x4d5,0x4ee)]['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this[_0x1f77ff(0x1aa,0x1cd)]['width'],this['windData'][_0x1411ca(0x3bf,0x344)]),'minimum':()=>new Cartesian2$1(this[_0x1411ca(0x337,0x2bd)][_0x1f77ff(0x26d,0x210)][_0x1f77ff(0x2a2,0x236)],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this[_0x1411ca(0x337,0x377)][_0x1411ca(0x37a,0x384)]['east'],this[_0x1411ca(0x337,0x3a4)][_0x1f77ff(0x270,0x210)][_0x1411ca(0x310,0x2c7)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x1f77ff(0x1eb,0x191)][_0x1f77ff(0x1f0,0x1f3)],'preExecute':()=>{function _0xcb5a83(_0x27f479,_0x3c5915){return _0x1f77ff(_0x3c5915,_0x27f479-0x42f);}const _0x386464=this[_0xcb5a83(0x5c0,0x587)][_0x1fbf19(0x4a4,0x450)];function _0x1fbf19(_0x282ebd,_0x33ae15){return _0x1411ca(_0x282ebd-0x17d,_0x33ae15);}this[_0xcb5a83(0x5c0,0x61f)]['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this[_0x1fbf19(0x478,0x4e3)]['postProcessingPosition'],this['particlesTextures']['postProcessingPosition']=_0x386464,this[_0xcb5a83(0x696,0x703)]['calculateSpeed']['commandToExecute']&&(this[_0xcb5a83(0x696,0x643)]['calculateSpeed']['commandToExecute'][_0x1fbf19(0x4b5,0x4d9)]=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x1411ca(0x35d,0x3ac)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures'][_0x1f77ff(0x23a,0x1d0)],'preExecute':()=>{function _0x42813e(_0x1eec9f,_0x55dd13){return _0x1411ca(_0x55dd13-0xf1,_0x1eec9f);}function _0x60cc5a(_0x14c2ed,_0x18e340){return _0x1f77ff(_0x14c2ed,_0x18e340-0x255);}this[_0x60cc5a(0x47d,0x4bc)]['updatePosition']['commandToExecute']&&(this[_0x42813e(0x448,0x4c2)]['updatePosition'][_0x60cc5a(0x440,0x427)]['outputTexture']=this['particlesTextures'][_0x60cc5a(0x3d7,0x425)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x1f77ff(0x214,0x191)]['nextParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this[_0x1f77ff(0x1ba,0x1cd)]['bounds']['west'],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x1f77ff(0x1e9,0x210)]['south'],this['windData']['bounds']['north']),'randomCoefficient':function(){function _0x15a0f9(_0x1afebc,_0x1238ed){return _0x1f77ff(_0x1afebc,_0x1238ed-0x457);}return Math[_0x15a0f9(0x68e,0x6a4)]();},'dropRate':()=>this['options'][_0x1f77ff(0x2c2,0x266)],'dropRateBump':()=>this['options'][_0x1f77ff(0x248,0x252)],'useViewerBounds':()=>this[_0x1f77ff(0x1a9,0x1e7)]['useViewerBounds']},'fragmentShaderSource':ShaderManager[_0x1411ca(0x38b,0x413)](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x5e69d7(_0x455a61,_0x5ed2d7){return _0x1f77ff(_0x455a61,_0x5ed2d7- -0x23a);}function _0x54382c(_0x5639ad,_0x4125bc){return _0x1411ca(_0x5639ad- -0x2b5,_0x4125bc);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this[_0x5e69d7(0x5a,0x2d)][_0x5e69d7(-0x55,-0xc4)][_0x54382c(0x87,0xa7)][_0x54382c(0x83,0xaf)]=this[_0x54382c(0x46,0x99)]['postProcessingPosition']);},'isDynamic':()=>this['options'][_0x1f77ff(0x1e6,0x263)]})};}['reCreateWindTextures'](){this['windTextures']['U']['destroy']();function _0x4aff50(_0xe7bd3,_0x2c0934){return _0x4ee3(_0xe7bd3- -0x21d,_0x2c0934);}function _0xa5786d(_0x3ce2ad,_0x29b172){return _0x4ee3(_0x29b172- -0xdb,_0x3ce2ad);}this['windTextures']['V'][_0xa5786d(0x35c,0x3a8)](),this[_0xa5786d(0x317,0x349)]();}[_0x4ee3(0x4fc,0x528)](_0x29195a){function _0x3e8d2e(_0x539675,_0x1a56b2){return _0x4ee3(_0x539675- -0x33b,_0x1a56b2);}this['windData']=_0x29195a,this[_0x3e8d2e(0x164,0x153)]();}[_0x4ee3(0x436,0x4ab)](_0x48f63f){const _0x372521=_0x48f63f['flipY']!==undefined&&_0x48f63f['flipY']!==this[_0x434f78(0x5ee,0x5a6)][_0x40671d(0x112,0x160)];this['options']=deepMerge(_0x48f63f,this[_0x434f78(0x57e,0x5a6)]);function _0x40671d(_0x51d8ab,_0x3c7dc1){return _0x46d1d0(_0x51d8ab- -0x51b,_0x3c7dc1);}function _0x434f78(_0x10565f,_0x3d5efa){return _0x4ee3(_0x3d5efa-0xfc,_0x10565f);}_0x372521&&this[_0x434f78(0x537,0x59b)]();}['processWindData'](_0x1159b6){const {array:_0x573d5e}=_0x1159b6;let {min:_0x150e7a,max:_0x949ce9}=_0x1159b6;function _0x16e1ae(_0x591bf6,_0x10ce39){return _0x46d1d0(_0x591bf6- -0x6ef,_0x10ce39);}const _0x12fa82=new Float32Array(_0x573d5e['length']);_0x150e7a===undefined&&(console[_0x16e1ae(-0x84,-0x8d)]('min\x20is\x20undefined,\x20calculate\x20min'),_0x150e7a=Math[_0x2e1c92(0x534,0x552)](..._0x573d5e));function _0x2e1c92(_0x407999,_0x519452){return _0x46d1d0(_0x407999- -0xe6,_0x519452);}_0x949ce9===undefined&&(console[_0x2e1c92(0x585,0x52b)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x949ce9=Math[_0x2e1c92(0x53b,0x598)](..._0x573d5e));const _0x4ba1dc=Math[_0x16e1ae(-0xce,-0xbd)](Math['abs'](_0x150e7a),Math['abs'](_0x949ce9));for(let _0x888bba=0x0;_0x888bba<_0x573d5e[_0x16e1ae(-0xde,-0x81)];_0x888bba++){const _0x110ec1=_0x573d5e[_0x888bba]/_0x4ba1dc;_0x12fa82[_0x888bba]=_0x110ec1;}return _0x12fa82;}['destroy'](){Object[_0x4b8d16(0x532,0x514)](this[_0x2379ca(0x64d,0x645)])[_0x4b8d16(0x574,0x5c0)](_0x3311d1=>_0x3311d1['destroy']()),Object['values'](this['particlesTextures'])[_0x2379ca(0x65a,0x5f1)](_0xd0011e=>_0xd0011e['destroy']());function _0x2379ca(_0x5c3076,_0x5b6e41){return _0x46d1d0(_0x5b6e41- -0x23,_0x5c3076);}function _0x4b8d16(_0x30112f,_0x21a074){return _0x46d1d0(_0x30112f- -0xa0,_0x21a074);}Object['values'](this['primitives'])['forEach'](_0x29cfc3=>_0x29cfc3['destroy']()),this['frameRateMonitor'][_0x4b8d16(0x548,0x541)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x1ba2cf,_0x1fd4a5,_0x23477b,_0x24ce0e){this[_0x3cbdf3(0x11,0x7b)]=_0x1ba2cf,this[_0x3cbdf3(0x117,0x93)]=_0x1fd4a5,this['viewerParameters']=_0x23477b,this[_0x2d8f01(0x3d6,0x3f8)]=_0x24ce0e;(typeof this['options']['particlesTextureSize']!==_0x3cbdf3(-0x25,0x30)||this[_0x2d8f01(0x418,0x3f1)][_0x3cbdf3(-0x31,0x37)]<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x3cbdf3(0x7d,0x93)]['particlesTextureSize']=0x100);this['colorTable']=this[_0x3cbdf3(0xaf,0x106)]();function _0x3cbdf3(_0x5bcd70,_0x21a6a2){return _0x46d1d0(_0x21a6a2- -0x57c,_0x5bcd70);}this[_0x2d8f01(0x47b,0x423)]=this[_0x3cbdf3(0xfc,0x76)](),this[_0x3cbdf3(0xcd,0xcc)]=this[_0x2d8f01(0x3d0,0x384)]();function _0x2d8f01(_0x38b04f,_0x318563){return _0x4ee3(_0x318563- -0xb9,_0x38b04f);}this['primitives']=this[_0x2d8f01(0x412,0x3c4)]();}['createRenderingTextures'](){const _0x4e1268={};_0x4e1268[_0xaff139(-0x49,-0x3c)]=this[_0xdfa6de(0x1a2,0x124)],_0x4e1268[_0xaff139(-0x17,-0x4a)]=this['context'][_0xdfa6de(0x1ea,0x21b)],_0x4e1268[_0xaff139(0x3d,-0x2e)]=this['context']['drawingBufferHeight'],_0x4e1268[_0xaff139(-0xa7,-0x47)]=PixelFormat['RGBA'],_0x4e1268[_0xaff139(-0x3a,-0xe)]=PixelDatatype['UNSIGNED_BYTE'];const _0x1c7d11=_0x4e1268,_0x1b58a2={};function _0xdfa6de(_0x1429f7,_0x318bca){return _0x46d1d0(_0x1429f7- -0x455,_0x318bca);}_0x1b58a2['context']=this[_0xdfa6de(0x1a2,0x12f)],_0x1b58a2['width']=this[_0xdfa6de(0x1a2,0x11a)]['drawingBufferWidth'],_0x1b58a2['height']=this[_0xdfa6de(0x1a2,0x157)]['drawingBufferHeight'],_0x1b58a2['pixelFormat']=PixelFormat[_0xaff139(-0x59,-0x9d)];function _0xaff139(_0x647ee,_0x5445a8){return _0x46d1d0(_0x647ee- -0x640,_0x5445a8);}_0x1b58a2[_0xdfa6de(0x1b1,0x1c0)]=PixelDatatype['UNSIGNED_INT'];const _0x4a33cc=_0x1b58a2;return{'segmentsColor':new Texture(_0x1c7d11),'segmentsDepth':new Texture(_0x4a33cc)};}['createRenderingFramebuffers'](){const _0x2ceb3f={};function _0x31b0cb(_0x2775a9,_0x598a1c){return _0x46d1d0(_0x598a1c- -0x155,_0x2775a9);}_0x2ceb3f['context']=this['context'],_0x2ceb3f[_0x4024ca(0x361,0x306)]=[this['textures']['segmentsColor']],_0x2ceb3f[_0x4024ca(0x283,0x2ea)]=this[_0x31b0cb(0x548,0x4ec)]['segmentsDepth'];function _0x4024ca(_0x2e049f,_0x771a9e){return _0x4ee3(_0x771a9e- -0x1ad,_0x2e049f);}return{'segments':new Framebuffer(_0x2ceb3f)};}[_0x4ee3(0x43f,0x3c1)](){function _0x414380(_0xec63b3,_0x446fcb){return _0x46d1d0(_0xec63b3- -0x3e,_0x446fcb);}function _0x560fcb(_0x319f14,_0x5d93cf){return _0x4ee3(_0x319f14- -0x3c5,_0x5d93cf);}Object['values'](this[_0x414380(0x60a,0x650)])[_0x560fcb(0xea,0x16d)](_0x2f22dc=>{_0x2f22dc['destroy']();});}[_0x4ee3(0x51d,0x49c)](){const _0x40ad90=new Float32Array(this[_0x4eef0e(0xb6,0xaa)][_0x4eef0e(0x116,0xdc)][_0x93fe45(0x122,0x101)](_0x3919a8=>{function _0x528076(_0x3db5bd,_0x2fdf18){return _0x4eef0e(_0x2fdf18- -0x26,_0x3db5bd);}const _0x57aa8f=Color$1['fromCssColorString'](_0x3919a8);return[_0x57aa8f['red'],_0x57aa8f[_0x528076(0x112,0xef)],_0x57aa8f['blue'],_0x57aa8f['alpha']];})),_0x384e89={};_0x384e89['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x384e89['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x384e89['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x384e89['wrapT']=TextureWrap['CLAMP_TO_EDGE'];function _0x93fe45(_0x5dbbae,_0x33f4d2){return _0x4ee3(_0x5dbbae- -0x3f1,_0x33f4d2);}function _0x4eef0e(_0x23420e,_0x409d93){return _0x46d1d0(_0x23420e- -0x559,_0x409d93);}return new Texture({'context':this[_0x4eef0e(0x9e,0x38)],'width':this[_0x4eef0e(0xb6,0x81)]['colors'][_0x93fe45(0xbb,0x12c)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype[_0x93fe45(0x3f,0xaf)],'sampler':new Sampler(_0x384e89),'source':{'width':this[_0x93fe45(0xb9,0x99)][_0x93fe45(0x119,0xda)][_0x4eef0e(0xb8,0x94)],'height':0x1,'arrayBufferView':_0x40ad90}});}['createSegmentsGeometry'](){const _0x1af0e0=0x4,_0x4f3266=this[_0x1e8e60(0x59f,0x624)]['particlesTextureSize'];let _0x2bf4bf=[];for(let _0x884949=0x0;_0x884949<_0x4f3266;_0x884949++){for(let _0x1e57df=0x0;_0x1e57df<_0x4f3266;_0x1e57df++){for(let _0x1c950d=0x0;_0x1c950d<_0x1af0e0;_0x1c950d++){_0x2bf4bf[_0x1e8e60(0x5a5,0x60e)](_0x884949/_0x4f3266),_0x2bf4bf['push'](_0x1e57df/_0x4f3266);}}}_0x2bf4bf=new Float32Array(_0x2bf4bf);const _0xace2dd=this['options'][_0x1ae28c(0x515,0x552)]**0x2;let _0x5311ef=[];for(let _0xca7682=0x0;_0xca7682<_0xace2dd;_0xca7682++){_0x5311ef[_0x1ae28c(0x5aa,0x598)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x5311ef=new Float32Array(_0x5311ef);let _0x169e77=[];for(let _0x149fd4=0x0,_0x18b799=0x0;_0x149fd4<_0xace2dd;_0x149fd4++){_0x169e77[_0x1ae28c(0x59f,0x598)](_0x18b799+0x0,_0x18b799+0x1,_0x18b799+0x2,_0x18b799+0x2,_0x18b799+0x1,_0x18b799+0x3),_0x18b799+=_0x1af0e0;}_0x169e77=new Uint32Array(_0x169e77);function _0x1ae28c(_0x4907b2,_0x3c8090){return _0x46d1d0(_0x3c8090- -0x61,_0x4907b2);}const _0x40bac1={};_0x40bac1[_0x1ae28c(0x586,0x56b)]=ComponentDatatype['FLOAT'];function _0x1e8e60(_0x10600d,_0x3d4582){return _0x4ee3(_0x3d4582-0x17a,_0x10600d);}_0x40bac1['componentsPerAttribute']=0x2,_0x40bac1[_0x1e8e60(0x5b7,0x5e7)]=_0x2bf4bf;const _0x12cbab={};_0x12cbab[_0x1ae28c(0x56e,0x56b)]=ComponentDatatype['FLOAT'],_0x12cbab[_0x1ae28c(0x639,0x5cf)]=0x3,_0x12cbab[_0x1ae28c(0x5a5,0x571)]=_0x5311ef;const _0x2c603a=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x40bac1),'normal':new GeometryAttribute(_0x12cbab)}),'indices':_0x169e77});return _0x2c603a;}['createRawRenderState'](_0x3f837b){const _0x9c48a={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x3f837b};return Appearance['getDefaultRenderState'](!![],![],_0x9c48a);}[_0x4ee3(0x47d,0x47e)](){const _0x5212a4={};_0x5212a4['st']=0x0,_0x5212a4['normal']=0x1;const _0x20075d={};_0x20075d['enabled']=!![];const _0x19a8f2={};function _0x4b865e(_0x4cef31,_0x3fb9a1){return _0x4ee3(_0x4cef31- -0x574,_0x3fb9a1);}_0x19a8f2[_0x4b865e(-0xd1,-0xf6)]=!![],_0x19a8f2['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x19a8f2[_0x4b865e(-0x100,-0xdb)]=WebGLRenderingContext['SRC_ALPHA'],_0x19a8f2[_0xed9127(0x103,0xf5)]=WebGLRenderingContext[_0x4b865e(-0x114,-0xdc)];const _0x46480d={};_0x46480d['viewport']=undefined,_0x46480d['depthTest']=_0x20075d,_0x46480d['depthMask']=!![],_0x46480d['blending']=_0x19a8f2;const _0x4e0838=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x5212a4,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0xed9127(0xcb,0xd8)],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x4b865e(-0x120,-0xd2)][_0xed9127(0x97,0x3d)],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x4b865e(-0xc3,-0x60)]['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing'][_0x4b865e(-0x120,-0x187)][_0x4b865e(-0xbe,-0x130)],'frameRateAdjustment':()=>this['computing'][_0xed9127(0x116,0xa3)],'colorTable':()=>this[_0xed9127(0x5c,-0x2b)],'domain':()=>{var _0x1a0382,_0x4316aa;function _0x49665b(_0x14bcc1,_0x1c1216){return _0xed9127(_0x1c1216-0x2dd,_0x14bcc1);}const _0x325533=new Cartesian2(((_0x1a0382=this['options'][_0x49665b(0x382,0x32e)])===null||_0x1a0382===void 0x0?void 0x0:_0x1a0382['min'])??this[_0x49665b(0x3fc,0x3a5)][_0x49665b(0x33a,0x384)]['speed'][_0x15d0a1(-0xa4,-0x126)],((_0x4316aa=this['options']['domain'])===null||_0x4316aa===void 0x0?void 0x0:_0x4316aa['max'])??this['computing']['windData'][_0x15d0a1(-0xef,-0x14b)]['max']);function _0x15d0a1(_0x2f3b6e,_0x4efa40){return _0x4b865e(_0x2f3b6e-0x1b,_0x4efa40);}return _0x325533;},'displayRange':()=>{function _0x92eec0(_0x2c0467,_0x526bbc){return _0x4b865e(_0x2c0467-0x17,_0x526bbc);}var _0x3edf1c,_0x2728e4;function _0xa04ecd(_0x418a4c,_0x172f28){return _0xed9127(_0x172f28- -0x1b1,_0x418a4c);}const _0x268f17=new Cartesian2(((_0x3edf1c=this['options']['displayRange'])===null||_0x3edf1c===void 0x0?void 0x0:_0x3edf1c['min'])??this['computing']['windData']['speed']['min'],((_0x2728e4=this['options'][_0xa04ecd(-0xc8,-0x98)])===null||_0x2728e4===void 0x0?void 0x0:_0x2728e4[_0xa04ecd(-0x96,-0xde)])??this[_0x92eec0(-0xac,-0x11d)]['windData']['speed'][_0x92eec0(-0xa1,-0x35)]);return _0x268f17;},'particleHeight':()=>this['options'][_0x4b865e(-0x14b,-0x174)]||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this[_0x4b865e(-0xe2,-0x86)][_0x4b865e(-0x6c,-0x59)],'pixelSize':()=>this[_0x4b865e(-0x123,-0x135)]['pixelSize'],'lineWidth':()=>{const _0x5350ed={};function _0x494728(_0x1f2229,_0x469fa2){return _0x4b865e(_0x469fa2-0x668,_0x1f2229);}_0x5350ed['min']=0x1;function _0x18ae0f(_0x5d6247,_0x28832f){return _0xed9127(_0x28832f-0x35,_0x5d6247);}_0x5350ed[_0x18ae0f(0x15a,0x108)]=0x2;const _0x22ff2f=this[_0x494728(0x5dc,0x59e)]['lineWidth']||_0x5350ed;return new Cartesian2(_0x22ff2f['min'],_0x22ff2f['max']);},'lineLength':()=>{const _0x57ef15={};_0x57ef15[_0x14ed55(0x636,0x5c1)]=0x14,_0x57ef15['max']=0x64;function _0x14ed55(_0x26dd93,_0x2f995a){return _0xed9127(_0x26dd93-0x56a,_0x2f995a);}const _0x1f1c0c=this['options']['lineLength']||_0x57ef15;return new Cartesian2(_0x1f1c0c['min'],_0x1f1c0c['max']);},'is3D':()=>this['viewerParameters'][_0x4b865e(-0xcd,-0x13a)]===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0xed9127(0xf3,0xc7)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0xed9127(0x76,0x1d)](),'rawRenderState':this[_0xed9127(0x9b,0x10d)](_0x46480d)}),_0x280a31={};_0x280a31[_0x4b865e(-0xd0,-0x56)]=_0x4e0838;function _0xed9127(_0x5a4e1b,_0x2a3ffa){return _0x4ee3(_0x5a4e1b- -0x3e9,_0x2a3ffa);}return _0x280a31;}['onParticlesTextureSizeChange'](){const _0x4663bb=this['createSegmentsGeometry']();this[_0x5d0493(0x177,0x1d3)]['segments']['geometry']=_0x4663bb;const _0x703b12={};_0x703b12['context']=this[_0x5d0493(0xdf,0xbc)];function _0x5d0493(_0x1bc628,_0x4306be){return _0x46d1d0(_0x1bc628- -0x518,_0x4306be);}_0x703b12['geometry']=_0x4663bb,_0x703b12['attributeLocations']=this['primitives']['segments']['attributeLocations'],_0x703b12[_0x5d0493(0xbd,0x71)]=BufferUsage[_0x4660e2(0x44d,0x4b1)];function _0x4660e2(_0x46f82d,_0x22e370){return _0x4ee3(_0x22e370- -0x1c,_0x46f82d);}const _0x5eb81b=VertexArray[_0x4660e2(0x4da,0x4b9)](_0x703b12);this[_0x5d0493(0x177,0x1cd)]['segments'][_0x4660e2(0x450,0x479)]&&(this['primitives']['segments']['commandToExecute'][_0x5d0493(0x117,0x162)]=_0x5eb81b);}['onColorTableChange'](){function _0x3179e2(_0x36e263,_0x565a88){return _0x46d1d0(_0x565a88- -0x6f9,_0x36e263);}function _0x416118(_0x434db2,_0x5b2d20){return _0x4ee3(_0x434db2- -0x88,_0x5b2d20);}this[_0x3179e2(-0xcf,-0x14f)]['destroy'](),this[_0x3179e2(-0x114,-0x14f)]=this['createColorTableTexture']();}[_0x4ee3(0x436,0x3f6)](_0x44a499){const _0x13025f=_0x44a499[_0x4d99e2(0x2d5,0x270)]&&JSON['stringify'](_0x44a499['colors'])!==JSON[_0x4d99e2(0x274,0x29d)](this[_0x5ba121(-0x1,-0x1d)]['colors']);function _0x4d99e2(_0x473489,_0x43be2b){return _0x4ee3(_0x473489- -0x235,_0x43be2b);}function _0x5ba121(_0x30ce8c,_0x58e60b){return _0x4ee3(_0x30ce8c- -0x4ab,_0x58e60b);}this['options']=deepMerge(_0x44a499,this[_0x5ba121(-0x1,-0x6b)]),_0x13025f&&this['onColorTableChange']();}['destroy'](){function _0x55824c(_0x48eae0,_0x3907d9){return _0x4ee3(_0x3907d9-0x107,_0x48eae0);}function _0x16793d(_0x5dba28,_0x1d24b0){return _0x46d1d0(_0x5dba28- -0x377,_0x1d24b0);}Object['values'](this[_0x16793d(0x2d1,0x2ec)])['forEach'](_0x8bbb45=>{_0x8bbb45['destroy']();}),Object[_0x55824c(0x4eb,0x574)](this['primitives'])['forEach'](_0x273468=>{_0x273468['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x409519,_0x1b09db,_0x4131cd,_0x403115,_0x41fcd7){this['context']=_0x409519;function _0x3f9d1e(_0xc2eae7,_0x25a03c){return _0x46d1d0(_0x25a03c- -0x5fc,_0xc2eae7);}this[_0xf9b613(-0x189,-0x174)]=_0x4131cd,this['viewerParameters']=_0x403115,this['computing']=new WindParticlesComputing(_0x409519,_0x1b09db,_0x4131cd,_0x403115,_0x41fcd7),this[_0x3f9d1e(0x1b,0x53)]=new WindParticlesRendering(_0x409519,_0x4131cd,_0x403115,this[_0xf9b613(-0x120,-0x16d)]);function _0xf9b613(_0x1bde64,_0x47371a){return _0x4ee3(_0x47371a- -0x61e,_0x1bde64);}this[_0xf9b613(-0xf5,-0x117)]();}['getPrimitives'](){function _0x3e60c6(_0x2fd278,_0x359860){return _0x4ee3(_0x359860- -0x4b1,_0x2fd278);}function _0x1be1a0(_0x1368de,_0x499737){return _0x46d1d0(_0x499737- -0x5b3,_0x1368de);}const _0x162352=[this[_0x1be1a0(0x64,0x63)]['primitives'][_0x3e60c6(0xc3,0x5c)],this['computing'][_0x1be1a0(0x99,0xdc)][_0x3e60c6(-0x1c,-0x56)],this['computing'][_0x1be1a0(0x12b,0xdc)]['postProcessingPosition'],this['rendering']['primitives']['segments']];return _0x162352;}[_0x4ee3(0x507,0x48b)](){function _0x3e9124(_0x2f9ded,_0x165a2e){return _0x46d1d0(_0x2f9ded- -0x587,_0x165a2e);}const _0x1e12df=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x128f82(_0x5ab255,_0x4cba26){return _0x4ee3(_0x5ab255- -0x5f4,_0x4cba26);}Object[_0x128f82(-0x182,-0x1a3)](this[_0x3e9124(0xc8,0xc2)][_0x3e9124(0xc1,0x109)])['forEach'](_0x1d2680=>{function _0x171b00(_0x19b373,_0x5bb838){return _0x128f82(_0x19b373-0xd1,_0x5bb838);}_0x1e12df['framebuffer']=this['rendering']['framebuffers'][_0x1d2680],_0x1e12df[_0x171b00(0x9,0x55)](this['context']);});}['changeOptions'](_0x4a1d81){let _0x212f96=![];function _0x241a4e(_0x1028ee,_0xa0eed5){return _0x4ee3(_0x1028ee- -0xa,_0xa0eed5);}_0x4a1d81['particlesTextureSize']&&this[_0x163760(0x3f5,0x42c)][_0x241a4e(0x444,0x3f5)]!==_0x4a1d81[_0x241a4e(0x444,0x490)]&&(_0x212f96=!![]);const _0x3b3980=deepMerge(_0x4a1d81,this[_0x163760(0x3f5,0x39e)]);if(_0x3b3980['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x3b3980,this['rendering']['updateOptions'](_0x4a1d81),this['computing']['updateOptions'](_0x4a1d81);function _0x163760(_0x1be95e,_0x466183){return _0x4ee3(_0x1be95e- -0xb5,_0x466183);}_0x212f96&&(this['computing']['destroyParticlesTextures'](),this[_0x241a4e(0x4a7,0x4aa)][_0x163760(0x3b7,0x409)](),this['rendering']['onParticlesTextureSizeChange']());}[_0x46d1d0(0x5a0,0x54a)](_0x4bf8dc){this[_0x1e512e(0x1e2,0x211)]=_0x4bf8dc,this['computing'][_0x1e512e(0x1e2,0x169)]=_0x4bf8dc;function _0x536686(_0x242b00,_0x8ec3b9){return _0x4ee3(_0x242b00-0xaa,_0x8ec3b9);}function _0x1e512e(_0x138ff5,_0x563a7b){return _0x46d1d0(_0x138ff5- -0x3d4,_0x563a7b);}this['rendering'][_0x1e512e(0x1e2,0x17c)]=_0x4bf8dc;}['destroy'](){this['computing'][_0x15f628(0x1d4,0x203)]();function _0x15f628(_0x524aa9,_0x76ad1d){return _0x4ee3(_0x76ad1d- -0x280,_0x524aa9);}function _0x449be6(_0x115111,_0x12e382){return _0x46d1d0(_0x115111- -0x56d,_0x12e382);}this[_0x15f628(0x229,0x26a)]['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x4442bd={};_0x4442bd['min']=0x1,_0x4442bd[_0x46d1d0(0x621,0x602)]=0x2;function _0x3f35(_0x281c91,_0x2012f1){const _0x23a9ef=_0x23a9();return _0x3f35=function(_0x3f35b7,_0x381b17){_0x3f35b7=_0x3f35b7-0x1c9;let _0x4ebaff=_0x23a9ef[_0x3f35b7];return _0x4ebaff;},_0x3f35(_0x281c91,_0x2012f1);}const _0x12e7fe={};_0x12e7fe[_0x4ee3(0x4b5,0x520)]=0x14,_0x12e7fe[_0x4ee3(0x4bc,0x485)]=0x64;const _0x4cc292={};_0x4cc292['particlesTextureSize']=0x64,_0x4cc292['fixedHeight']=0x0,_0x4cc292[_0x4ee3(0x52d,0x50d)]=_0x4442bd,_0x4cc292[_0x46d1d0(0x67c,0x626)]=_0x12e7fe,_0x4cc292['speedFactor']=0x1;function _0x46d1d0(_0x503f9d,_0x5dd63d){return _0x3f35(_0x503f9d-0x3b9,_0x5dd63d);}_0x4cc292[_0x46d1d0(0x68e,0x685)]=0.003,_0x4cc292['dropRateBump']=0.001,_0x4cc292[_0x4ee3(0x50a,0x4f7)]=['rgb(206,255,255)'],_0x4cc292[_0x46d1d0(0x62d,0x5cf)]=![],_0x4cc292[_0x46d1d0(0x68b,0x711)]=!![];const DEF_OPTIONS=_0x4cc292;class WindLayer extends BaseLayer$1{constructor(_0x4f5631={}){_0x4f5631={...DEF_OPTIONS,..._0x4f5631};function _0x1a64cd(_0x16a3ee,_0x112cfb){return _0x4ee3(_0x16a3ee- -0x1f0,_0x112cfb);}super(_0x4f5631),this[_0x1a64cd(0x335,0x392)](_0x4f5631,_0x4f5631);}get['layer'](){return this['primitives'];}get[_0x46d1d0(0x600,0x5a2)](){function _0x493485(_0x5e828c,_0x65308a){return _0x46d1d0(_0x5e828c- -0x592,_0x65308a);}return this['options'][_0x493485(0x6e,0x5a)];}set['data'](_0x2a7416){function _0x1adf78(_0x39875c,_0x2365aa){return _0x4ee3(_0x39875c- -0x539,_0x2365aa);}function _0x12980c(_0x552444,_0x57d671){return _0x4ee3(_0x57d671- -0x512,_0x552444);}this[_0x12980c(-0x2c,-0x68)][_0x12980c(-0xc5,-0x77)]=_0x2a7416,this['setData'](_0x2a7416);}get['colors'](){function _0x41b160(_0x587382,_0x140f65){return _0x46d1d0(_0x587382- -0x6c8,_0x140f65);}return this['options'][_0x41b160(-0x59,-0x5b)];}set['colors'](_0xa8bc37){function _0x34c79d(_0x9d2267,_0xab8d80){return _0x46d1d0(_0xab8d80- -0x221,_0x9d2267);}this['options'][_0x5daa53(0x4f5,0x499)]=_0xa8bc37;const _0x2d8fa9={};_0x2d8fa9[_0x5daa53(0x4f5,0x46d)]=_0xa8bc37;function _0x5daa53(_0x42eb16,_0x22c4f4){return _0x46d1d0(_0x42eb16- -0x17a,_0x22c4f4);}this[_0x34c79d(0x4e2,0x469)](this['options'],_0x2d8fa9);}[_0x4ee3(0x488,0x4e6)](_0x33aa12){function _0x3c6b55(_0x5a4d65,_0x27bbcd){return _0x4ee3(_0x27bbcd- -0x3ad,_0x5a4d65);}function _0x9b6d97(_0x42f3a2,_0x2efba4){return _0x46d1d0(_0x42f3a2- -0x20e,_0x2efba4);}_0x33aa12?this[_0x9b6d97(0x466,0x44e)]():this[_0x3c6b55(0xf7,0x86)]();}[_0x46d1d0(0x64c,0x671)](){}['_addedHook'](){this['scene']=this['_map']['scene'],this[_0x44afc8(0x2cd,0x337)]=this[_0x44afc8(0x3a4,0x389)]['camera'];this[_0x44afc8(0x38e,0x39b)]['data']&&this[_0x2dbf3a(0x123,0x9d)](this['options']['data']);function _0x2dbf3a(_0x18472e,_0x3f14ec){return _0x4ee3(_0x18472e- -0x314,_0x3f14ec);}if(!this['windData']||!this[_0x44afc8(0x32b,0x33b)])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x44afc8(0x44d,0x3e0)]['mode']},this[_0x2dbf3a(0x139,0x166)](),this[_0x44afc8(0x33b,0x31c)]=new WindParticleSystem(this[_0x2dbf3a(0x1db,0x1e0)]['context'],this['windData'],this['options'],this['viewerParameters'],this['scene']),this[_0x2dbf3a(0x216,0x1d6)]=this['particleSystem']['getPrimitives'](),this[_0x44afc8(0x48a,0x41b)][_0x2dbf3a(0x19b,0x1cc)](_0x193545=>{this['scene']['primitives']['add'](_0x193545);}),this[_0x44afc8(0x30b,0x337)][_0x2dbf3a(0x1f7,0x273)]=0.01,this[_0x44afc8(0x2b4,0x337)]['changed']['addEventListener'](this['updateViewerParameters']['bind'](this));function _0x44afc8(_0x3d8084,_0x29704c){return _0x46d1d0(_0x29704c- -0x274,_0x3d8084);}this['scene']['morphComplete'][_0x44afc8(0x350,0x364)](this['updateViewerParameters'][_0x44afc8(0x3f0,0x3da)](this)),window['addEventListener']('resize',this['updateViewerParameters']['bind'](this));}['_removedHook'](){function _0x3b1dc3(_0x3a2da0,_0x4ae83a){return _0x4ee3(_0x4ae83a- -0xdc,_0x3a2da0);}function _0x346cab(_0x35fa51,_0xb1c338){return _0x4ee3(_0xb1c338- -0x193,_0x35fa51);}this[_0x3b1dc3(0x321,0x36a)]['changed'][_0x3b1dc3(0x3df,0x41f)](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete'][_0x3b1dc3(0x48e,0x41f)](this['updateViewerParameters']['bind'](this)),window['removeEventListener'](_0x346cab(0x24f,0x2c7),this['updateViewerParameters'][_0x3b1dc3(0x481,0x40d)](this)),this['primitives']&&(this['primitives']['forEach'](_0x8a9491=>{function _0x2c7c2c(_0x3d3a33,_0x13fe5a){return _0x3b1dc3(_0x3d3a33,_0x13fe5a-0x249);}this['scene']['primitives'][_0x2c7c2c(0x57a,0x5e4)](_0x8a9491);}),delete this['primitives']),this['particleSystem']&&(this[_0x3b1dc3(0x2d9,0x34f)][_0x3b1dc3(0x349,0x3a7)](),delete this[_0x346cab(0x22d,0x298)]);}['setData'](_0x5df072,_0x4e0ff5){function _0x36b770(_0x444d07,_0x4b87b3){return _0x4ee3(_0x444d07-0x183,_0x4b87b3);}function _0x323367(_0x4f7887,_0x328752){return _0x4ee3(_0x328752- -0x5c7,_0x4f7887);}this[_0x323367(-0xbe,-0x137)]=this[_0x323367(-0x187,-0x199)](_0x5df072);if(_0x4e0ff5){this['_removedHook'](),this['_addedHook']();return;}this['particleSystem']?(this[_0x36b770(0x5ae,0x624)]['computing']['updateWindData'](this['windData']),this[_0x323367(-0x60,-0xd8)][_0x323367(-0x15e,-0x117)]()):this['_addedHook']();}[_0x4ee3(0x525,0x50d)](_0x57dedd,_0x3cda3f){function _0x268fe0(_0x171997,_0x4c9613){return _0x46d1d0(_0x171997- -0xf4,_0x4c9613);}function _0x2f7060(_0x83d60d,_0x3567c2){return _0x46d1d0(_0x83d60d- -0xc9,_0x3567c2);}this[_0x268fe0(0x49c,0x522)]&&(this['particleSystem']['changeOptions'](_0x3cda3f),this[_0x2f7060(0x58b,0x580)]['requestRender']());}[_0x4ee3(0x42e,0x3ab)](_0x46f090){function _0x43cf66(_0x39ed74,_0xd22338){return _0x4ee3(_0x39ed74-0xa7,_0xd22338);}var _0x505214,_0x17e65f;const _0x29aabd={..._0x46f090},_0x11dbab=_0x29aabd;!_0x11dbab['height']&&_0x11dbab['rows']&&(_0x11dbab[_0x43cf66(0x5bf,0x56b)]=_0x11dbab['rows']);!_0x11dbab[_0x43cf66(0x56b,0x5db)]&&_0x11dbab[_0x8efda7(0x31e,0x386)]&&(_0x11dbab['width']=_0x11dbab['cols']);function _0x8efda7(_0x22907f,_0x173082){return _0x4ee3(_0x173082- -0x153,_0x22907f);}!_0x11dbab['bounds']&&(_0x11dbab['bounds']={'west':_0x11dbab[_0x43cf66(0x4d1,0x462)],'south':_0x11dbab['ymin'],'east':_0x11dbab['xmax'],'north':_0x11dbab[_0x8efda7(0x3e6,0x39a)]});if(!_0x11dbab['u']){const _0x3810d1={};_0x3810d1[_0x8efda7(0x309,0x35b)]=_0x46f090['udata'],_0x3810d1[_0x43cf66(0x55c,0x51b)]=_0x46f090[_0x8efda7(0x317,0x34b)],_0x3810d1['max']=_0x46f090[_0x43cf66(0x4f6,0x4af)],_0x11dbab['u']=_0x3810d1;}if(!_0x11dbab['v']){const _0x29fe1d={};_0x29fe1d[_0x43cf66(0x555,0x4fb)]=_0x46f090['vdata'],_0x29fe1d['min']=_0x46f090['vmin'],_0x29fe1d['max']=_0x46f090['vmax'],_0x11dbab['v']=_0x29fe1d;}if(((_0x505214=_0x11dbab[_0x43cf66(0x511,0x49b)])===null||_0x505214===void 0x0?void 0x0:_0x505214['min'])===undefined||((_0x17e65f=_0x11dbab['speed'])===null||_0x17e65f===void 0x0?void 0x0:_0x17e65f['max'])===undefined||_0x11dbab['speed']['array']===undefined){const _0x2eba51={'array':new Float32Array(_0x11dbab['u'][_0x43cf66(0x555,0x4fa)]['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x300ad6=0x0;_0x300ad6<_0x11dbab['u']['array']['length'];_0x300ad6++){_0x2eba51[_0x43cf66(0x555,0x573)][_0x300ad6]=Math['sqrt'](_0x11dbab['u']['array'][_0x300ad6]*_0x11dbab['u'][_0x43cf66(0x555,0x53a)][_0x300ad6]+_0x11dbab['v']['array'][_0x300ad6]*_0x11dbab['v']['array'][_0x300ad6]),_0x2eba51['array'][_0x300ad6]!==0x0&&(_0x2eba51['min']=Math['min'](_0x2eba51[_0x8efda7(0x3b4,0x362)],_0x2eba51['array'][_0x300ad6]),_0x2eba51['max']=Math['max'](_0x2eba51['max'],_0x2eba51['array'][_0x300ad6]));}_0x11dbab['speed']=_0x2eba51;}return _0x11dbab;}[_0x46d1d0(0x5b2,0x614)](){var _0x1569fb;function _0x26084f(_0x4b1f24,_0x557836){return _0x4ee3(_0x557836- -0x22d,_0x4b1f24);}const _0x161341=this[_0x1b2cf5(0x90,0x3e)];if(!_0x161341)return;const _0x3af968=_0x161341['canvas'],_0x2ab97d={};_0x2ab97d['x']=0x0,_0x2ab97d['y']=0x0;const _0x8772c4={};function _0x1b2cf5(_0x2ee6c3,_0x46db88){return _0x4ee3(_0x46db88- -0x4b1,_0x2ee6c3);}_0x8772c4['x']=0x0,_0x8772c4['y']=_0x3af968['clientHeight'];const _0xe9791c={};_0xe9791c['x']=_0x3af968[_0x1b2cf5(0x7,-0x1b)],_0xe9791c['y']=0x0;const _0x453d2d={};_0x453d2d['x']=_0x3af968['clientWidth'],_0x453d2d['y']=_0x3af968[_0x26084f(0x221,0x1f5)];const _0x24de2b=[_0x2ab97d,_0x8772c4,_0xe9791c,_0x453d2d];let _0x1cc2e2=0xb4,_0x3acabb=-0xb4,_0x28607c=0x5a,_0x2d4b9b=-0x5a,_0x1561ce=![];for(const _0x214884 of _0x24de2b){const _0x53fa54=_0x161341[_0x26084f(0x1f5,0x219)][_0x1b2cf5(0x59,-0xc)](new Cesium$1['Cartesian2'](_0x214884['x'],_0x214884['y']),_0x161341['globe']['ellipsoid']);if(!_0x53fa54){_0x1561ce=!![];break;}const _0x5c47d6=_0x161341['globe']['ellipsoid'][_0x26084f(0x277,0x1f1)](_0x53fa54),_0x2d425d=Cesium$1['Math'][_0x26084f(0x24d,0x1f2)](_0x5c47d6['longitude']),_0x367eec=Cesium$1['Math']['toDegrees'](_0x5c47d6[_0x26084f(0x2c1,0x2d0)]);_0x1cc2e2=Math[_0x1b2cf5(0x5c,0x4)](_0x1cc2e2,_0x2d425d),_0x3acabb=Math[_0x1b2cf5(0x86,0xb)](_0x3acabb,_0x2d425d),_0x28607c=Math['min'](_0x28607c,_0x367eec),_0x2d4b9b=Math[_0x26084f(0x2ad,0x28f)](_0x2d4b9b,_0x367eec);}if(!_0x1561ce){const _0x200107=new Cesium$1['Cartesian2'](Math['max'](this['windData'][_0x1b2cf5(-0x29,0x22)]['west'],_0x1cc2e2),Math[_0x26084f(0x2b0,0x288)](this[_0x26084f(0x290,0x263)][_0x26084f(0x242,0x2a6)]['east'],_0x3acabb)),_0x12ae8f=new Cesium$1['Cartesian2'](Math[_0x1b2cf5(-0x13,0xb)](this['windData']['bounds']['south'],_0x28607c),Math[_0x1b2cf5(-0x17,0x4)](this[_0x1b2cf5(0x39,-0x21)][_0x1b2cf5(-0x5b,0x22)][_0x1b2cf5(0x1a,-0x48)],_0x2d4b9b)),_0x38925e=(_0x200107['y']-_0x200107['x'])*0.05,_0x5950dd=(_0x12ae8f['y']-_0x12ae8f['x'])*0.05;_0x200107['x']=Math[_0x1b2cf5(0x7,0xb)](this['windData']['bounds'][_0x1b2cf5(0xa4,0x48)],_0x200107['x']-_0x38925e),_0x200107['y']=Math['min'](this[_0x1b2cf5(0x32,-0x21)]['bounds']['east'],_0x200107['y']+_0x38925e),_0x12ae8f['x']=Math['max'](this[_0x1b2cf5(0x5f,-0x21)]['bounds']['south'],_0x12ae8f['x']-_0x5950dd),_0x12ae8f['y']=Math[_0x1b2cf5(-0x8,0x4)](this[_0x26084f(0x1e5,0x263)]['bounds'][_0x1b2cf5(-0x7a,-0x48)],_0x12ae8f['y']+_0x5950dd),this['viewerParameters']['lonRange']=_0x200107,this['viewerParameters'][_0x26084f(0x261,0x2c3)]=_0x12ae8f;const _0x6078ef=this[_0x1b2cf5(0x5a,-0x21)]['bounds']['east']-this['windData']['bounds'][_0x26084f(0x322,0x2cc)],_0x5c1cea=this[_0x1b2cf5(0x20,-0x21)]['bounds'][_0x26084f(0x2c3,0x23c)]-this['windData']['bounds'][_0x26084f(0x2fe,0x2c8)],_0x1d8ca6=(_0x200107['y']-_0x200107['x'])/_0x6078ef,_0x2804b3=(_0x12ae8f['y']-_0x12ae8f['x'])/_0x5c1cea,_0x54b119=Math[_0x26084f(0x22b,0x288)](_0x1d8ca6,_0x2804b3),_0xa83f63=0x3e8*_0x54b119;_0xa83f63>0x0&&(this[_0x1b2cf5(0x27,-0x60)][_0x1b2cf5(0x7,-0x69)]=Math['max'](0x0,Math['min'](0x3e8,_0xa83f63)));}this[_0x26084f(0x1c3,0x224)][_0x1b2cf5(-0x65,-0xa)]=this[_0x26084f(0x2ba,0x2c2)][_0x1b2cf5(-0x2a,0x2a)],(_0x1569fb=this['particleSystem'])===null||_0x1569fb===void 0x0||_0x1569fb['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x3e6529,_0x5a7c56){const {bounds:_0x5608c7,width:_0x4391b9,height:_0x5a5a1d,u:_0x563707,v:_0x51d8bb,speed:_0x1986df}=this['windData'],{flipY:_0x3daa9b}=this['options'];if(_0x3e6529<_0x5608c7[_0xeaa319(0x294,0x240)]||_0x3e6529>_0x5608c7[_0xeaa319(0x168,0x1c6)]||_0x5a7c56<_0x5608c7['south']||_0x5a7c56>_0x5608c7['north'])return null;const _0x169795=(_0x3e6529-_0x5608c7['west'])/(_0x5608c7[_0x207a23(-0x11c,-0xf3)]-_0x5608c7[_0x207a23(-0x86,-0x79)])*(_0x4391b9-0x1);let _0x5ea21b=(_0x5a7c56-_0x5608c7['south'])/(_0x5608c7[_0x207a23(-0x135,-0x109)]-_0x5608c7['south'])*(_0x5a5a1d-0x1);_0x3daa9b&&(_0x5ea21b=_0x5a5a1d-0x1-_0x5ea21b);const _0xd43bce=Math[_0x207a23(-0xb0,-0x93)](_0x169795),_0x44c95f=Math['floor'](_0x5ea21b),_0x500374=Math['floor'](_0x169795),_0x46eda8=Math['min'](_0x500374+0x1,_0x4391b9-0x1),_0x28137c=Math['floor'](_0x5ea21b),_0x5c92b9=Math['min'](_0x28137c+0x1,_0x5a5a1d-0x1),_0x421707=_0x169795-_0x500374,_0x5b80d1=_0x5ea21b-_0x28137c,_0x3a29ee=_0x44c95f*_0x4391b9+_0xd43bce,_0x7712af=_0x28137c*_0x4391b9+_0x500374,_0x465818=_0x28137c*_0x4391b9+_0x46eda8,_0x340542=_0x5c92b9*_0x4391b9+_0x500374,_0x30bb81=_0x5c92b9*_0x4391b9+_0x46eda8,_0x27642d=_0x563707[_0x207a23(-0xf8,-0xc4)][_0x7712af],_0x482b3d=_0x563707['array'][_0x465818],_0x6bf273=_0x563707['array'][_0x340542],_0x8e9cd7=_0x563707['array'][_0x30bb81],_0x237d7b=(0x1-_0x421707)*(0x1-_0x5b80d1)*_0x27642d+_0x421707*(0x1-_0x5b80d1)*_0x482b3d+(0x1-_0x421707)*_0x5b80d1*_0x6bf273+_0x421707*_0x5b80d1*_0x8e9cd7,_0x24be43=_0x51d8bb[_0x207a23(-0x144,-0xc4)][_0x7712af],_0xb48d57=_0x51d8bb[_0x207a23(-0xa5,-0xc4)][_0x465818],_0x419804=_0x51d8bb[_0xeaa319(0x276,0x1f5)][_0x340542],_0x1a9c65=_0x51d8bb[_0xeaa319(0x215,0x1f5)][_0x30bb81],_0x204792=(0x1-_0x421707)*(0x1-_0x5b80d1)*_0x24be43+_0x421707*(0x1-_0x5b80d1)*_0xb48d57+(0x1-_0x421707)*_0x5b80d1*_0x419804+_0x421707*_0x5b80d1*_0x1a9c65,_0x283c40=Math['sqrt'](_0x237d7b*_0x237d7b+_0x204792*_0x204792),_0x2e87b1={};_0x2e87b1['u']=_0x563707[_0xeaa319(0x1c7,0x1f5)][_0x3a29ee];function _0x207a23(_0x19d058,_0x28388a){return _0x46d1d0(_0x28388a- -0x6d7,_0x19d058);}_0x2e87b1['v']=_0x51d8bb[_0x207a23(-0xd2,-0xc4)][_0x3a29ee],_0x2e87b1['speed']=_0x1986df['array'][_0x3a29ee];function _0xeaa319(_0xb10a95,_0x1f1ab0){return _0x4ee3(_0x1f1ab0- -0x2b9,_0xb10a95);}const _0x2db732={};_0x2db732['u']=_0x237d7b,_0x2db732['v']=_0x204792,_0x2db732['speed']=_0x283c40;const _0x2c2d3c={};return _0x2c2d3c['original']=_0x2e87b1,_0x2c2d3c['interpolated']=_0x2db732,_0x2c2d3c;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace[_0x46d1d0(0x679,0x667)][_0x46d1d0(0x663,0x655)]=WindLayer;function _0x23a9(){const _0x2801cf=['removeChild','particles','_setOptionsHook','dynamic','2691078ciKsze','_maxAge','dropRate','primitives','style','execute','lineWidth','mouseHidden','cartesianToCartographic','toDegrees','moveTo','geometry','clientHeight','1401455RpaYJs','createWindTextures','WindUtil','redraw','update','LINEAR','fixedHeight','xmin','particleSystem','_onMouseMoveEvent','pointerEvents','processWindData','worker','FLOAT','getSegmentDrawVertexShader','RED','_removedHook','pixelFormat','requestAnimationFrame','updateOptions','setData','_drawLines','postProcessingPosition','domain','applyViewerParameters','getOwnPropertyDescriptor','createRenderingFramebuffers','_canrefresh','destoryRenderingFramebuffers','mouse_move','cancelAnimationFrame','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a','left','6034296ZmFwjD','colorTable','camera','number','pixelSize','fromCache','show','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a','speedRate','updateViewerParameters','particlesTextureSize','umax','visible','viewerParameters','_onMouseUpEvent','Unknown\x20command\x20type','particlesTextures','4187280vmLoXA','setDate','SCENE3D','ymin','EllipsoidalOccluder','resize','updatePosition','hidden','tlng','CanvasWindLayer','getSegmentDrawFragmentShader','ONE_MINUS_SRC_ALPHA','mouse_down','framebuffer','create','unbindEvent','lng','frameTime','componentDatatype','setGeometry','north','speed','frameRate','createParticlesTextures','values','maxAge','_speedRate','bufferUsage','ellipsoid','keys','addEventListener','blendFuncSource','xmax','refreshTimer','remove','register','getRandomLatLng','primitiveType','isPointVisible','talt','createPrimitives','2FSQmvl','east','previousParticlesPosition','destination-in','DEPTH_COMPONENT','destroy','createRawRenderState','positionWC','none','pass','_showHook','round','isDynamic','IDENTITY','Compute','createRenderingTextures','486929GRNdCX','preExecute','windData','outputTexture','context','nextParticlesPosition','push','commandToExecute','clientWidth','depthTexture','_map','shaderProgram','position','data','rectangle','grid','umin','reCreateWindTextures','attributeLocations','pixelDatatype','off','enabled','segments','pickEllipsoid','_pointerEvents','sceneMode','__esModule','stringify','options','Cartesian3','length','getU','array','forEach','requestRender','computing','Cesium','colorTextures','TRIANGLES','min','particlesSpeed','default','globalAlpha','now','mouseMove','windField','max','_colorRamp','sources','clearCommand','stroke','_calc_speedRate','globe','canvasContext','width','canvas','age','zIndex','flipY','rows','vertexArray','componentsPerAttribute','OPAQUE','STATIC_DRAW','setOptions','auto','vdata','64JyioQE','clear','bounds','particlesNumber','fromGeometry','createComputingPrimitives','mouseDown','lat','cols','drawingBufferWidth','mode','textures','841707udEIIf','samplingWindow','floor','pointer-events','steps','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a','framebuffers','getPostProcessingPositionShader','BaseLayer','EventType','_mountedHook','container','bind','rendering','8105923eTAijt','blendFuncDestination','ymax','createCommand','scene','latRange','_updateIng','toGridXY','type','owner','south','visibility','canvasWidth','0px','west','tlat','removeEventListener','updateWindData','latitude','WindLayer','frameRateAdjustment','destroyParticlesTextures','canvasHeight','displayRange','windTextures','toWindowCoordinates','fragmentShaderSource','warn','clearFramebuffers','drawingBufferHeight','green','colors','percentageChanged','Math','calculateSpeed','object','_addedHook','random','beginPath','quietPeriod','flatMap','layer','dropRateBump','_canvasParticles','lineLength','height','globalCompositeOperation','_tomap','_randomParticle','uniformMap','createColorTableTexture','_onMapWhellEvent','rawRenderState','_calcUV','commandList','fillRect'];_0x23a9=function(){return _0x2801cf;};return _0x23a9();}class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this['tlng']=null,this['tlat']=null,this[_0x25d1e5(0x161,0x10f)]=null;function _0x25d1e5(_0x289ca5,_0xafc501){return _0x4ee3(_0x289ca5- -0x365,_0xafc501);}this['speed']=null;}[_0x46d1d0(0x5e8,0x5be)](){for(const _0x464384 in this){delete this[_0x464384];}}}class CanvasWindField{constructor(_0x4c85ad){this['setOptions'](_0x4c85ad);}get['speedRate'](){return this['_speedRate'];}set[_0x4ee3(0x44c,0x457)](_0x3eca76){function _0x135293(_0x2023d1,_0x4b6fb1){return _0x4ee3(_0x2023d1-0x11e,_0x4b6fb1);}function _0x56edc2(_0x4176d0,_0x1bb543){return _0x4ee3(_0x4176d0- -0x2ab,_0x1bb543);}this[_0x56edc2(0x1c4,0x216)]=(0x64-(_0x3eca76>0x63?0x63:_0x3eca76))*0x64,this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x135293(0x60b,0x614)]-this[_0x56edc2(0x1ad,0x14a)])/this[_0x56edc2(0x1c4,0x241)]];}get[_0x4ee3(0x46e,0x4da)](){function _0x243e40(_0x3db8e6,_0x483fce){return _0x46d1d0(_0x3db8e6- -0x4ce,_0x483fce);}return this[_0x243e40(0x1bf,0x147)];}set['maxAge'](_0x37c9ee){function _0x24aed4(_0x2ab410,_0x87afc3){return _0x4ee3(_0x87afc3- -0x236,_0x2ab410);}this[_0x24aed4(0x2ce,0x2f2)]=_0x37c9ee;}['setOptions'](_0x5476db){function _0x410956(_0x381270,_0x338ab9){return _0x4ee3(_0x338ab9-0xb5,_0x381270);}function _0x52d7b6(_0x1f207e,_0x4d9998){return _0x4ee3(_0x4d9998-0xf5,_0x1f207e);}this['options']=_0x5476db,this[_0x52d7b6(0x57b,0x563)]=_0x5476db[_0x52d7b6(0x5bc,0x563)]||0x78,this['speedRate']=_0x5476db[_0x52d7b6(0x55a,0x541)]||0x32,this['particles']=[];const _0x1b1ce8=_0x5476db['particlesNumber']||0x1000;for(let _0x7f530c=0x0;_0x7f530c<_0x1b1ce8;_0x7f530c++){const _0x4cf34e=this['_randomParticle'](new CanvasParticle());this['particles'][_0x52d7b6(0x57f,0x589)](_0x4cf34e);}}[_0x46d1d0(0x5bb,0x576)](_0x4f3f94){function _0x48d7a7(_0x189c32,_0xe7c945){return _0x4ee3(_0xe7c945- -0x2b5,_0x189c32);}this['rows']=_0x4f3f94[_0x48d7a7(0x267,0x214)],this['cols']=_0x4f3f94['cols'],this['xmin']=_0x4f3f94['xmin'],this[_0x48d7a7(0x246,0x1c0)]=_0x4f3f94['xmax'],this[_0x1d9857(0x17d,0x108)]=_0x4f3f94['ymin'],this['ymax']=_0x4f3f94['ymax'],this[_0x1d9857(0x1c2,0x1f8)]=[];const _0x23e8e2=_0x4f3f94['udata'];function _0x1d9857(_0x13abfc,_0xf89de6){return _0x4ee3(_0x13abfc- -0x2db,_0xf89de6);}const _0x701ac7=_0x4f3f94[_0x1d9857(0x1f5,0x1aa)];let _0x40e4c9=![];_0x23e8e2[_0x1d9857(0x1d1,0x167)]===this[_0x1d9857(0x1ee,0x24f)]&&_0x23e8e2[0x0][_0x48d7a7(0x207,0x1f7)]===this['cols']&&(_0x40e4c9=!![]);let _0x25a5a8=0x0,_0x38fc4b=null,_0x58974d=null;for(let _0x357d15=0x0;_0x357d15<this['rows'];_0x357d15++){_0x38fc4b=[];for(let _0x366d61=0x0;_0x366d61<this['cols'];_0x366d61++,_0x25a5a8++){_0x40e4c9?_0x58974d=this['_calcUV'](_0x23e8e2[_0x357d15][_0x366d61],_0x701ac7[_0x357d15][_0x366d61]):_0x58974d=this['_calcUV'](_0x23e8e2[_0x25a5a8],_0x701ac7[_0x25a5a8]),_0x38fc4b[_0x48d7a7(0x263,0x1df)](_0x58974d);}this[_0x1d9857(0x1c2,0x167)]['push'](_0x38fc4b);}!this['options']['flipY']&&this['grid']['reverse']();}[_0x46d1d0(0x637,0x6a0)](){function _0x4a44da(_0x436b7d,_0x21e8ed){return _0x46d1d0(_0x436b7d- -0x49a,_0x21e8ed);}function _0x48742d(_0x3d0631,_0x4236e3){return _0x4ee3(_0x4236e3- -0x16d,_0x3d0631);}delete this[_0x4a44da(0x194,0x179)],delete this['cols'],delete this[_0x48742d(0x33a,0x2bd)],delete this['xmax'],delete this['ymin'],delete this['ymax'],delete this[_0x4a44da(0x168,0x1e2)],delete this['particles'];}['toGridXY'](_0x3eed0e,_0x287ef2){function _0x4564bc(_0x5c1372,_0x1b656a){return _0x46d1d0(_0x1b656a- -0x660,_0x5c1372);}const _0x2253f6=(_0x3eed0e-this[_0x4564bc(-0xe6,-0xd1)])/(this[_0x4564bc(-0x79,-0x86)]-this['xmin'])*(this['cols']-0x1);function _0x105757(_0x151a64,_0x3480b4){return _0x4ee3(_0x151a64- -0x38e,_0x3480b4);}const _0x6fb4d7=(this['ymax']-_0x287ef2)/(this['ymax']-this['ymin'])*(this['rows']-0x1);return[_0x2253f6,_0x6fb4d7];}['getUVByXY'](_0x50bdf2,_0x2e4370){if(_0x50bdf2<0x0||_0x50bdf2>=this[_0x42c482(0x30b,0x2a8)]||_0x2e4370>=this[_0x637c7a(0x54a,0x595)])return[0x0,0x0,0x0];const _0x40a912=Math['floor'](_0x50bdf2),_0x15583=Math[_0x42c482(0x311,0x318)](_0x2e4370);function _0x637c7a(_0x19ec58,_0x8c5908){return _0x4ee3(_0x19ec58-0x81,_0x8c5908);}if(_0x40a912===_0x50bdf2&&_0x15583===_0x2e4370)return this['grid'][_0x2e4370][_0x50bdf2];const _0x1c6865=_0x40a912+0x1,_0x25cd69=_0x15583+0x1,_0x1d5b18=this['getUVByXY'](_0x40a912,_0x15583);function _0x42c482(_0x5d4c30,_0x4e0ef1){return _0x4ee3(_0x5d4c30- -0x1ce,_0x4e0ef1);}const _0x4ac646=this['getUVByXY'](_0x1c6865,_0x15583),_0x1fde8b=this['getUVByXY'](_0x40a912,_0x25cd69),_0x5bfec7=this['getUVByXY'](_0x1c6865,_0x25cd69);let _0x184532=null;try{_0x184532=this['_bilinearInterpolation'](_0x50bdf2-_0x40a912,_0x2e4370-_0x15583,_0x1d5b18,_0x4ac646,_0x1fde8b,_0x5bfec7);}catch(_0x4be891){console['log'](_0x50bdf2,_0x2e4370);}return _0x184532;}['_bilinearInterpolation'](_0x4c3ef0,_0x5bc0cd,_0xb3a05c,_0x280cb0,_0xa773db,_0x304048){const _0x5481cc=0x1-_0x4c3ef0,_0x15b401=0x1-_0x5bc0cd,_0x564323=_0x5481cc*_0x15b401,_0x4223c6=_0x4c3ef0*_0x15b401,_0x9c2f73=_0x5481cc*_0x5bc0cd,_0x2cf79b=_0x4c3ef0*_0x5bc0cd;function _0x44bfb4(_0x59bd0d,_0x11bbbd){return _0x46d1d0(_0x59bd0d- -0x423,_0x11bbbd);}const _0x45e1b1=_0xb3a05c[0x0]*_0x564323+_0x280cb0[0x0]*_0x4223c6+_0xa773db[0x0]*_0x9c2f73+_0x304048[0x0]*_0x2cf79b,_0x9c03f3=_0xb3a05c[0x1]*_0x564323+_0x280cb0[0x1]*_0x4223c6+_0xa773db[0x1]*_0x9c2f73+_0x304048[0x1]*_0x2cf79b;return this[_0x44bfb4(0x262,0x291)](_0x45e1b1,_0x9c03f3);}[_0x46d1d0(0x685,0x67c)](_0x30d127,_0x5d73e6){return[+_0x30d127,+_0x5d73e6,Math['sqrt'](_0x30d127*_0x30d127+_0x5d73e6*_0x5d73e6)];}['getUVByPoint'](_0xb38e14,_0x409707){if(!this['isInExtent'](_0xb38e14,_0x409707))return null;function _0x47663e(_0x2139d5,_0x2e7d41){return _0x46d1d0(_0x2e7d41- -0x178,_0x2139d5);}const _0x53ab6e=this[_0x47663e(0x4f5,0x4df)](_0xb38e14,_0x409707),_0x30bd3f=this['getUVByXY'](_0x53ab6e[0x0],_0x53ab6e[0x1]);return _0x30bd3f;}['isInExtent'](_0x4a1431,_0x2394db){function _0x376337(_0x4831dc,_0x2ec037){return _0x46d1d0(_0x4831dc- -0x3e0,_0x2ec037);}function _0x1f6fca(_0x2f6a6d,_0x43a133){return _0x4ee3(_0x43a133- -0x3ff,_0x2f6a6d);}return _0x4a1431>=this[_0x1f6fca(0x1b,0x2b)]&&_0x4a1431<=this[_0x1f6fca(0x40,0x76)]&&_0x2394db>=this[_0x376337(0x1dd,0x21e)]&&_0x2394db<=this['ymax']?!![]:![];}[_0x46d1d0(0x5de,0x5ab)](){const _0x57340a=fRandomByfloat(this['xmin'],this[_0x58386e(0x23e,0x1e8)]),_0x557ca9=fRandomByfloat(this[_0x3ae449(0x3e1,0x3bb)],this['ymax']);function _0x3ae449(_0x496f55,_0x2d15eb){return _0x46d1d0(_0x2d15eb- -0x202,_0x496f55);}const _0x38bd0d={};function _0x58386e(_0x5b1e84,_0xd54db9){return _0x4ee3(_0xd54db9- -0x28d,_0x5b1e84);}return _0x38bd0d[_0x3ae449(0x3c0,0x43b)]=_0x557ca9,_0x38bd0d['lng']=_0x57340a,_0x38bd0d;}['getParticles'](){let _0x3ca25d,_0x3df53b,_0x58f2ec;for(let _0x2a33a8=0x0,_0x5ca035=this['particles'][_0x1b9aa1(0x211,0x22e)];_0x2a33a8<_0x5ca035;_0x2a33a8++){let _0x29807f=this[_0x1b9aa1(0x289,0x270)][_0x2a33a8];_0x29807f['age']<=0x0&&(_0x29807f=this['_randomParticle'](_0x29807f));if(_0x29807f['age']>0x0){const _0x187871=_0x29807f['tlng'],_0x4121ca=_0x29807f['tlat'];_0x58f2ec=this['getUVByPoint'](_0x187871,_0x4121ca),_0x58f2ec?(_0x3ca25d=_0x187871+this['_calc_speedRate'][0x0]*_0x58f2ec[0x0],_0x3df53b=_0x4121ca+this['_calc_speedRate'][0x1]*_0x58f2ec[0x1],_0x29807f['lng']=_0x187871,_0x29807f['lat']=_0x4121ca,_0x29807f[_0x1b9aa1(0x1c2,0x1c6)]=_0x3ca25d,_0x29807f['tlat']=_0x3df53b,_0x29807f[_0x3e22a7(0x263,0x26a)]=_0x58f2ec[0x2],_0x29807f['age']--):_0x29807f[_0x3e22a7(0x2c6,0x2c6)]=0x0;}}function _0x1b9aa1(_0x32f378,_0x3e4a47){return _0x46d1d0(_0x32f378- -0x400,_0x3e4a47);}function _0x3e22a7(_0x46a180,_0x2b70b9){return _0x46d1d0(_0x2b70b9- -0x365,_0x46a180);}return this[_0x3e22a7(0x37e,0x324)];}[_0x46d1d0(0x680,0x626)](_0x3cc3a5){let _0x2b16d6,_0x5008c5;function _0x6daa44(_0x5df03c,_0x10a5f8){return _0x46d1d0(_0x5df03c- -0x55b,_0x10a5f8);}for(let _0x1c4221=0x0;_0x1c4221<0x1e;_0x1c4221++){_0x2b16d6=this['getRandomLatLng'](),_0x5008c5=this['getUVByPoint'](_0x2b16d6['lng'],_0x2b16d6['lat']);if(_0x5008c5&&_0x5008c5[0x2]>0x0)break;}if(!_0x5008c5)return _0x3cc3a5;const _0x15ae3f=_0x2b16d6[_0xa15acd(0x5a1,0x565)]+this['_calc_speedRate'][0x0]*_0x5008c5[0x0],_0xf22fb9=_0x2b16d6['lat']+this[_0x6daa44(0xcb,0x92)][0x1]*_0x5008c5[0x1];_0x3cc3a5['lng']=_0x2b16d6['lng'];function _0xa15acd(_0x437cda,_0x22acbb){return _0x46d1d0(_0x437cda- -0x29,_0x22acbb);}return _0x3cc3a5['lat']=_0x2b16d6[_0x6daa44(0xe2,0xb1)],_0x3cc3a5[_0xa15acd(0x599,0x5a7)]=_0x15ae3f,_0x3cc3a5[_0x6daa44(0x104,0xaa)]=_0xf22fb9,_0x3cc3a5['age']=Math[_0x6daa44(0x93,0xa1)](0xa+Math['random']()*this['maxAge']),_0x3cc3a5[_0xa15acd(0x5a6,0x55f)]=_0x5008c5[0x2],_0x3cc3a5;}['destroy'](){for(const _0x2e6da8 in this){delete this[_0x2e6da8];}}}function fRandomByfloat(_0x36472e,_0x1b289c){return _0x36472e+Math['random']()*(_0x1b289c-_0x36472e);}const Cesium=mars3d__namespace[_0x46d1d0(0x617,0x602)],BaseLayer=mars3d__namespace[_0x4ee3(0x514,0x555)][_0x46d1d0(0x64a,0x683)];function _0x4ee3(_0x14a192,_0x3fce83){return _0x3f35(_0x14a192-0x254,_0x3fce83);}class CanvasWindLayer extends BaseLayer{constructor(_0x4af0b2={}){function _0x4508d3(_0x458997,_0x40ee77){return _0x46d1d0(_0x40ee77- -0x3fa,_0x458997);}super(_0x4af0b2),this[_0x4508d3(0x230,0x290)](_0x4af0b2);function _0x39d4cf(_0x3185b9,_0x2260d7){return _0x4ee3(_0x3185b9- -0x66,_0x2260d7);}this['canvas']=null,_0x4af0b2[_0x4508d3(0x228,0x275)]&&_0x4af0b2[_0x4508d3(0x204,0x24c)]&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x4af0b2));}[_0x46d1d0(0x68a,0x66f)](_0x490a19,_0x22c625){this['frameTime']=0x3e8/(_0x490a19[_0x2b0204(0x2d,0xab)]||0xa);function _0x2b0204(_0x3d1753,_0x2219e4){return _0x4ee3(_0x3d1753- -0x43e,_0x2219e4);}this[_0x2b0204(0x68,0x24)]=this['options'][_0x2b0204(-0x11,-0x61)]??![];function _0x491af7(_0x3bf8be,_0x320a61){return _0x46d1d0(_0x3bf8be- -0x5ba,_0x320a61);}this['color']=_0x490a19['color']||'#ffffff',this['lineWidth']=_0x490a19['lineWidth']||0x1,this['fixedHeight']=_0x490a19[_0x2b0204(-0x15,-0x78)]??0x0,this[_0x491af7(0x73,0xd4)]=_0x490a19['flipY']??![],this[_0x491af7(0x66,0x3)]&&this[_0x491af7(0x66,-0x18)][_0x491af7(0x79,0x3)](_0x490a19);}get['layer'](){return this['canvas'];}get[_0x4ee3(0x4f7,0x49a)](){function _0x32f815(_0x12cc88,_0x4c3874){return _0x4ee3(_0x12cc88- -0x357,_0x4c3874);}function _0x2827ba(_0x4aa60b,_0x2f040a){return _0x4ee3(_0x4aa60b- -0x4b5,_0x2f040a);}return this[_0x2827ba(-0x1d,-0x1f)][_0x32f815(0x198,0x1b2)]['canvas']['clientWidth'];}get[_0x4ee3(0x501,0x496)](){function _0xf6a706(_0x520862,_0x370af4){return _0x46d1d0(_0x370af4- -0x660,_0x520862);}return this['_map'][_0xf6a706(0x5,-0xc)]['canvas']['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set['pointerEvents'](_0x9424f8){this['_pointerEvents']=_0x9424f8;function _0x38835b(_0x57bf5c,_0x32c685){return _0x46d1d0(_0x57bf5c- -0x653,_0x32c685);}if(!this['canvas'])return;function _0x4a3532(_0x2f4f9e,_0x589082){return _0x4ee3(_0x589082- -0x2e8,_0x2f4f9e);}_0x9424f8?this['canvas']['style']['pointer-events']='all':this['canvas'][_0x4a3532(0x2c0,0x243)][_0x4a3532(0x1c5,0x1f8)]=_0x4a3532(0x1ad,0x19e);}get[_0x46d1d0(0x639,0x6a0)](){function _0x234ffa(_0x185b59,_0x2bbe05){return _0x4ee3(_0x2bbe05- -0x18a,_0x185b59);}return this['options'][_0x234ffa(0x3ac,0x34a)];}set['particlesNumber'](_0x598d3b){this[_0x2c33e0(0x61e,0x5de)]['particlesNumber']=_0x598d3b;function _0x2c33e0(_0x5424a7,_0x72f19b){return _0x46d1d0(_0x5424a7-0xf,_0x72f19b);}clearTimeout(this['_canrefresh']);function _0x24b7be(_0x166a38,_0x5b39ea){return _0x4ee3(_0x5b39ea- -0x167,_0x166a38);}this[_0x24b7be(0x2c6,0x2d7)]=setTimeout(()=>{function _0x1f1dee(_0x5f458a,_0x2f5a45){return _0x24b7be(_0x5f458a,_0x2f5a45-0x2a8);}this[_0x1f1dee(0x538,0x567)]();},0x1f4);}get[_0x46d1d0(0x5b1,0x58c)](){function _0x46c889(_0x27205d,_0x57409f){return _0x4ee3(_0x27205d- -0x437,_0x57409f);}function _0x2a36ec(_0x10bc3d,_0x28d017){return _0x46d1d0(_0x10bc3d- -0xdf,_0x28d017);}return this[_0x46c889(0x73,0x27)][_0x46c889(0x15,0x4d)];}set[_0x46d1d0(0x5b1,0x5f8)](_0x2b605b){function _0x4fd9ec(_0x1537cc,_0x4af4c4){return _0x4ee3(_0x4af4c4- -0x60b,_0x1537cc);}this[_0x4fd9ec(-0x181,-0x161)]['speedRate']=_0x2b605b;function _0x3d66f5(_0xde60f2,_0x286a46){return _0x46d1d0(_0x286a46-0x11,_0xde60f2);}this['windField']&&(this['windField'][_0x3d66f5(0x547,0x5c2)]=_0x2b605b);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x11f79f){this['options']['maxAge']=_0x11f79f;function _0x3eefbb(_0xac11ac,_0x3664f3){return _0x4ee3(_0xac11ac-0x11d,_0x3664f3);}this['windField']&&(this['windField'][_0x3eefbb(0x58b,0x58b)]=_0x11f79f);}get[_0x46d1d0(0x600,0x686)](){return this['windData'];}set[_0x4ee3(0x49b,0x4ee)](_0x4efa5f){function _0x550b5c(_0x368fef,_0x227870){return _0x46d1d0(_0x368fef- -0xb6,_0x227870);}this[_0x550b5c(0x4e6,0x4a6)](_0x4efa5f);}get[_0x4ee3(0x49c,0x49b)](){function _0x38109b(_0x12c10f,_0x248a33){return _0x4ee3(_0x12c10f- -0x460,_0x248a33);}function _0x258bcc(_0x5508eb,_0x2704ca){return _0x4ee3(_0x5508eb- -0x5b5,_0x2704ca);}let _0xd7501=this[_0x38109b(0x30,0x32)]['xmin'],_0x12249d=this[_0x38109b(0x30,-0x23)][_0x258bcc(-0x140,-0x14f)],_0x4d03a1=this['windData']['ymin'],_0x46646e=this['windData'][_0x38109b(0x8d,0xb2)];return _0x12249d>=0x167&&_0xd7501===0x0&&(_0xd7501=-0xb4,_0x12249d=0xb4),_0xd7501=Math['max'](_0xd7501,-0xb4),_0x12249d=Math[_0x38109b(0x55,0x57)](_0x12249d,0xb4),_0x4d03a1=Math['max'](_0x4d03a1,-0x5a),_0x46646e=Math[_0x38109b(0x55,0x79)](_0x46646e,0x5a),Cesium['Rectangle']['fromDegrees'](_0xd7501,_0x4d03a1,_0x12249d,_0x46646e);}['_showHook'](_0xbb5866){function _0x163b3a(_0x46bd4a,_0xe87dcc){return _0x4ee3(_0x46bd4a- -0x199,_0xe87dcc);}_0xbb5866?this['_addedHook']():(this['windData']&&(this['options']['data']=this[_0x163b3a(0x2f7,0x302)]),this['_removedHook']());}['_mountedHook'](){function _0xffda65(_0x48dd6d,_0x5d9632){return _0x4ee3(_0x5d9632-0xba,_0x48dd6d);}this['options']['worker']?this['initWorker']():this['windField']=new CanvasWindField(this[_0xffda65(0x4f6,0x564)]);}['_addedHook'](){this[_0x8e0dd4(0x18a,0x213)]=this['_createCanvas']();const _0x102cb3={};_0x102cb3['willReadFrequently']=!![],this['canvasContext']=this['canvas']['getContext']('2d',_0x102cb3);function _0x8e0dd4(_0x253791,_0x31d95b){return _0x46d1d0(_0x31d95b- -0x417,_0x253791);}this['bindEvent']();function _0x10d75c(_0x42f7e0,_0x271bc8){return _0x46d1d0(_0x271bc8- -0x5a0,_0x42f7e0);}this[_0x10d75c(0x9a,0x6f)][_0x8e0dd4(0x24c,0x1e9)]&&this['setData'](this[_0x10d75c(0xdd,0x6f)]['data']);}['_removedHook'](){function _0x5ad182(_0x1ae26d,_0x120776){return _0x4ee3(_0x120776- -0x7d,_0x1ae26d);}this['clear'](),this[_0x4808b1(0x53c,0x4cb)]();function _0x4808b1(_0x2cb427,_0x4e6acc){return _0x46d1d0(_0x4e6acc- -0xfe,_0x2cb427);}this['canvas']&&(this[_0x4808b1(0x548,0x4ff)][_0x4808b1(0x506,0x54f)][_0x5ad182(0x482,0x4a6)](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x5c6dc1=mars3d__namespace['DomUtil'][_0x4fc509(0xe1,0xfd)]('canvas','mars3d-canvasWind',this['_map']['container']);_0x5c6dc1['style'][_0x4fc509(0x1ad,0x134)]='absolute',_0x5c6dc1['style']['top']=_0x45375a(0x5a1,0x562),_0x5c6dc1['style'][_0x4fc509(0xc7,0xdd)]='0px',_0x5c6dc1[_0x45375a(0x5d4,0x5e8)]['width']=this['_map'][_0x4fc509(0x123,0x189)]['canvas'][_0x4fc509(0x18f,0x130)]+'px',_0x5c6dc1[_0x45375a(0x5d4,0x558)]['height']=this[_0x4fc509(0x139,0x132)][_0x4fc509(0x14d,0x189)][_0x4fc509(0x1c1,0x15f)]['clientHeight']+'px',_0x5c6dc1[_0x45375a(0x5d4,0x602)]['pointerEvents']=this['_pointerEvents']?_0x4fc509(0x141,0x169):_0x45375a(0x52f,0x507),_0x5c6dc1['style']['zIndex']=this['options'][_0x4fc509(0xe1,0x161)]??0x9;function _0x4fc509(_0x265216,_0x26e3e4){return _0x46d1d0(_0x26e3e4- -0x4cb,_0x265216);}_0x5c6dc1[_0x45375a(0x56d,0x5b1)]=this['_map'][_0x45375a(0x598,0x576)]['canvas'][_0x45375a(0x53f,0x58a)];function _0x45375a(_0x54f218,_0x34fcd3){return _0x4ee3(_0x54f218-0xa9,_0x34fcd3);}return _0x5c6dc1[_0x4fc509(0x21e,0x1b2)]=this['_map']['scene']['canvas']['clientHeight'],_0x5c6dc1;}[_0x46d1d0(0x5bf,0x5b1)](){function _0x171f70(_0x2ed45e,_0x57bb38){return _0x4ee3(_0x57bb38- -0x292,_0x2ed45e);}function _0x4c9610(_0x1ba6aa,_0x3e1c09){return _0x46d1d0(_0x1ba6aa- -0x13,_0x3e1c09);}this[_0x4c9610(0x617,0x680)]&&(this['canvas']['style']['width']=this[_0x4c9610(0x5ea,0x57a)][_0x171f70(0x236,0x25d)]['canvas']['clientWidth']+'px',this['canvas']['style'][_0x4c9610(0x66a,0x622)]=this['_map'][_0x171f70(0x2b4,0x25d)]['canvas'][_0x171f70(0x20f,0x190)]+'px',this['canvas'][_0x4c9610(0x616,0x5eb)]=this['_map']['scene']['canvas']['clientWidth'],this['canvas']['height']=this['_map'][_0x171f70(0x2b3,0x25d)][_0x4c9610(0x617,0x680)]['clientHeight']);}['bindEvent'](){const _0x3c2ff6=this;function _0x2c0225(_0x4aa3f3,_0x40e103){return _0x4ee3(_0x4aa3f3- -0x38e,_0x40e103);}let _0x12bc07=Date[_0x2c0225(0x12b,0x113)]();(function _0xc92e35(){function _0x4c295e(_0x26f066,_0xab993c){return _0x2c0225(_0x26f066- -0x21e,_0xab993c);}if(_0x3c2ff6['isDestroy'])return;function _0x32353b(_0x55eef2,_0x398e9f){return _0x2c0225(_0x55eef2- -0xe5,_0x398e9f);}_0x3c2ff6['_animateFrame']=window[_0x32353b(-0x3e,0xb)](_0xc92e35);if(_0x3c2ff6[_0x4c295e(-0x162,-0x1a3)]&&_0x3c2ff6['windField']){const _0x70835d=Date['now'](),_0x69a50b=_0x70835d-_0x12bc07;_0x69a50b>_0x3c2ff6['frameTime']&&(_0x12bc07=_0x70835d-_0x69a50b%_0x3c2ff6[_0x4c295e(-0x146,-0xc1)],_0x3c2ff6['update']());}}(),window[_0x163fa5(0x57c,0x52a)]('resize',this[_0x2c0225(0xcc,0x50)][_0x163fa5(0x5f2,0x569)](this),![]),this[_0x163fa5(0x56a,0x574)]=![],this['mouse_move']=![]);function _0x163fa5(_0x3d02fe,_0x299013){return _0x4ee3(_0x3d02fe-0x109,_0x299013);}this[_0x2c0225(0x11c,0x177)][_0x163fa5(0x526,0x4f6)]&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x163fa5(0x627,0x65a)],this),this['_map']['on'](mars3d__namespace[_0x163fa5(0x5ef,0x64d)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x2c0225(0x10a,0xcc)]['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x2c0225(0xc4,0x99)],this));}['unbindEvent'](){window[_0x5bcdc2(0x17b,0x13b)](this['_animateFrame']),delete this['_animateFrame'];function _0x5bcdc2(_0x42a8a3,_0x1d6f26){return _0x46d1d0(_0x1d6f26- -0x46b,_0x42a8a3);}function _0x1d1e3a(_0x5befea,_0x20be04){return _0x46d1d0(_0x20be04- -0x29e,_0x5befea);}window['removeEventListener']('resize',this['resize']),this['options']['mouseHidden']&&(this['_map'][_0x5bcdc2(0x181,0x19c)](mars3d__namespace[_0x1d1e3a(0x3e4,0x3ad)]['wheel'],this[_0x5bcdc2(0x294,0x218)],this),this[_0x1d1e3a(0x383,0x35f)][_0x5bcdc2(0x11b,0x19c)](mars3d__namespace['EventType'][_0x1d1e3a(0x3f3,0x39e)],this['_onMouseDownEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseUp'],this[_0x5bcdc2(0x15b,0x14c)],this),this[_0x5bcdc2(0x1f0,0x192)][_0x1d1e3a(0x387,0x369)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x46d1d0(0x683,0x600)](_0x422c88){clearTimeout(this[_0x4e4430(0x100,0x157)]);function _0x4e4430(_0x5a13b3,_0x52e3c8){return _0x46d1d0(_0x52e3c8- -0x484,_0x5a13b3);}if(!this[_0x4e4430(0x12c,0x12b)]||!this['canvas'])return;this['canvas'][_0x9e9894(0x105,0x17b)]['visibility']=_0x4e4430(0xb5,0x13d);function _0x9e9894(_0xee6e82,_0x4141b9){return _0x4ee3(_0x4141b9- -0x3b0,_0xee6e82);}this['refreshTimer']=setTimeout(()=>{function _0x802b16(_0x3865c3,_0x527ab4){return _0x4e4430(_0x3865c3,_0x527ab4-0x3dc);}if(!this[_0x802b16(0x550,0x507)])return;function _0x29f359(_0x2563af,_0x3a71a5){return _0x9e9894(_0x3a71a5,_0x2563af- -0x1ba);}this[_0x802b16(0x556,0x4e3)](),this[_0x802b16(0x5ad,0x582)][_0x29f359(-0x3f,-0x8c)][_0x802b16(0x531,0x5b3)]=_0x802b16(0x4bc,0x50d);},0xc8);}['_onMouseDownEvent'](_0x3e5483){function _0x318706(_0x242d6e,_0x1b252c){return _0x46d1d0(_0x1b252c- -0x362,_0x242d6e);}this['mouse_down']=!![],this['_map'][_0x6e0323(-0x166,-0x13d)](mars3d__namespace[_0x6e0323(-0xf8,-0xf9)]['mouseMove'],this['_onMouseMoveEvent'],this);function _0x6e0323(_0x1fd01d,_0x57bfe0){return _0x46d1d0(_0x57bfe0- -0x744,_0x1fd01d);}this['_map']['on'](mars3d__namespace['EventType'][_0x318706(0x317,0x2bd)],this[_0x318706(0x27a,0x22f)],this);}[_0x4ee3(0x42c,0x3b3)](_0x1ff8bb){function _0x4a6104(_0xfa15d8,_0x41a759){return _0x4ee3(_0xfa15d8- -0x51b,_0x41a759);}if(!this['show']||!this['canvas'])return;function _0xc37bd(_0x1f1dad,_0x16b31a){return _0x46d1d0(_0x16b31a- -0x60b,_0x1f1dad);}this[_0xc37bd(0x28,-0x45)]&&(this['canvas']['style'][_0x4a6104(-0x25,-0x10)]='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x382d48){if(!this[_0x535bee(-0x7d,-0xfb)]||!this[_0x535bee(-0x2,0x1c)])return;this[_0x535bee(-0x2f,-0x49)][_0x4feb6c(-0xd8,-0x10a)](mars3d__namespace[_0x535bee(0x1f,0xe)]['mouseMove'],this[_0x535bee(-0x9b,-0xb3)],this);this['mouse_down']&&this[_0x535bee(-0x87,-0x1c)]&&this[_0x535bee(-0xa1,-0xa3)]();this['canvas'][_0x4feb6c(-0x18,-0x81)]['visibility']=_0x535bee(-0x77,-0x2c),this['mouse_down']=![];function _0x4feb6c(_0x49e302,_0x24a93f){return _0x46d1d0(_0x24a93f- -0x711,_0x49e302);}function _0x535bee(_0x3008c4,_0x5ed84f){return _0x46d1d0(_0x3008c4- -0x62c,_0x5ed84f);}this['mouse_move']=![];}['setData'](_0xcc800b){this['clear'](),this[_0x8aa954(0x3ef,0x46d)]=_0xcc800b,this['windField']['setDate'](_0xcc800b);function _0x8aa954(_0x47326e,_0x2f6aea){return _0x4ee3(_0x47326e- -0xa1,_0x2f6aea);}function _0x402390(_0x43c630,_0x47633f){return _0x4ee3(_0x43c630- -0x469,_0x47633f);}this[_0x8aa954(0x385,0x3bb)]();}['redraw'](){function _0x16dfa4(_0x3c45e1,_0x1f77f1){return _0x4ee3(_0x3c45e1- -0x53e,_0x1f77f1);}if(!this['show'])return;this['windField'][_0x16dfa4(-0x70,-0x7d)](this['options']),this['update']();}['update'](){if(this[_0x20df8c(-0xe1,-0x78)])return;this[_0x28b87a(-0x93,-0x10c)]=!![];if(this['worker'])this['windField']['update']();else{const _0x192b22=this['windField']['getParticles']();this['_drawLines'](_0x192b22);}function _0x20df8c(_0x3ea0d6,_0x2a2d8e){return _0x4ee3(_0x2a2d8e- -0x569,_0x3ea0d6);}function _0x28b87a(_0x2d89ef,_0x413731){return _0x46d1d0(_0x413731- -0x762,_0x2d89ef);}this[_0x20df8c(-0x27,-0x78)]=![];}[_0x4ee3(0x438,0x424)](_0x53e9d2){function _0x3f1f99(_0x4e50ec,_0x2e6d65){return _0x4ee3(_0x4e50ec- -0x2ea,_0x2e6d65);}this[_0x4f1ce8(0x5d5,0x584)]=_0x53e9d2,this['canvasContext']['globalCompositeOperation']=_0x4f1ce8(0x540,0x58b),this['canvasContext'][_0x3f1f99(0x238,0x262)](0x0,0x0,this[_0x3f1f99(0x20d,0x24b)],this[_0x3f1f99(0x217,0x210)]),this[_0x4f1ce8(0x582,0x568)][_0x4f1ce8(0x5d8,0x56d)]='lighter',this[_0x3f1f99(0x1d9,0x228)][_0x4f1ce8(0x577,0x517)]=0.9;const _0x22a830=this[_0x3f1f99(0x1ae,0x13f)][_0x4f1ce8(0x5ae,0x5d7)]['mode']!==Cesium['SceneMode']['SCENE3D'],_0x37c038=this['canvasWidth']*0.25;function _0x4f1ce8(_0x3adb9f,_0x1dbf21){return _0x4ee3(_0x3adb9f-0xbf,_0x1dbf21);}if(this[_0x3f1f99(0x1d3,0x189)])for(let _0x2ed607=0x0,_0x58c91e=_0x53e9d2[_0x4f1ce8(0x56b,0x587)];_0x2ed607<_0x58c91e;_0x2ed607++){const _0xfa48f4=_0x53e9d2[_0x2ed607],_0x5d5001=this[_0x4f1ce8(0x5d9,0x555)](_0xfa48f4,_0xfa48f4[_0x4f1ce8(0x524,0x4f6)],_0xfa48f4['lat'],_0xfa48f4['alt']),_0x591335=this[_0x4f1ce8(0x5d9,0x5d0)](_0xfa48f4,_0xfa48f4['tlng'],_0xfa48f4['tlat'],_0xfa48f4[_0x3f1f99(0x192,0x1bb)]);if(!_0x5d5001||!_0x591335)continue;if(_0x22a830&&Math['abs'](_0x5d5001[0x0]-_0x591335[0x0])>=_0x37c038)continue;this[_0x4f1ce8(0x582,0x533)][_0x3f1f99(0x227,0x1b4)](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this['_colorRamp']['getColor'](_0xfa48f4['speed']),this[_0x3f1f99(0x1d9,0x1f0)]['moveTo'](_0x5d5001[0x0],_0x5d5001[0x1]),this['canvasContext']['lineTo'](_0x591335[0x0],_0x591335[0x1]),this[_0x3f1f99(0x1d9,0x186)][_0x4f1ce8(0x57f,0x57e)]();}else{this['canvasContext']['beginPath'](),this['canvasContext'][_0x3f1f99(0x243,0x23e)]=this[_0x3f1f99(0x243,0x20a)],this['canvasContext']['strokeStyle']=this['color'];for(let _0x45cc14=0x0,_0xea6a12=_0x53e9d2['length'];_0x45cc14<_0xea6a12;_0x45cc14++){const _0x21f334=_0x53e9d2[_0x45cc14],_0x140263=this[_0x3f1f99(0x230,0x1cf)](_0x21f334,_0x21f334['lng'],_0x21f334[_0x3f1f99(0x1ee,0x218)],_0x21f334['alt']),_0x8a2447=this[_0x3f1f99(0x230,0x25b)](_0x21f334,_0x21f334['tlng'],_0x21f334[_0x4f1ce8(0x5b9,0x5d0)],_0x21f334['talt']);if(!_0x140263||!_0x8a2447)continue;if(_0x22a830&&Math['abs'](_0x140263[0x0]-_0x8a2447[0x0])>=_0x37c038)continue;this['canvasContext'][_0x3f1f99(0x136,0x1a6)](_0x140263[0x0],_0x140263[0x1]),this['canvasContext']['lineTo'](_0x8a2447[0x0],_0x8a2447[0x1]);}this['canvasContext']['stroke']();}}[_0x46d1d0(0x67f,0x664)](_0x50225b,_0x10bac9,_0x496986,_0x3640a2){const _0x11f417=Cesium[_0xdafd10(0x2d1,0x31d)]['fromDegrees'](_0x10bac9,_0x496986,_0x3640a2??this['fixedHeight']),_0x47e3a7=this[_0x4b13c7(0x11e,0xe7)]['scene'];if(_0x47e3a7[_0xdafd10(0x301,0x291)]===Cesium['SceneMode'][_0xdafd10(0x27d,0x210)]){const _0xd61e20=new Cesium[(_0xdafd10(0x27f,0x278))](_0x47e3a7[_0x4b13c7(0x148,0xee)][_0x4b13c7(0xf7,0xa2)],_0x47e3a7['camera'][_0xdafd10(0x2ab,0x282)]),_0x3c9210=_0xd61e20[_0xdafd10(0x2a1,0x2e2)](_0x11f417);if(!_0x3c9210)return _0x50225b['age']=0x0,null;}const _0x4f4a4c=mars3d__namespace['PointTrans'][_0xdafd10(0x32a,0x332)](this[_0xdafd10(0x2be,0x2f2)]['scene'],_0x11f417);function _0xdafd10(_0x311fc2,_0x5ac555){return _0x4ee3(_0x311fc2- -0x1da,_0x5ac555);}function _0x4b13c7(_0x2a9deb,_0x3db0dd){return _0x46d1d0(_0x2a9deb- -0x4df,_0x3db0dd);}return _0x4f4a4c?[_0x4f4a4c['x'],_0x4f4a4c['y']]:null;}[_0x4ee3(0x4d2,0x4b8)](){function _0xddbe80(_0x21bde0,_0x3812df){return _0x46d1d0(_0x21bde0- -0x5f3,_0x3812df);}function _0x5d2d11(_0x15430b,_0x36bf6f){return _0x46d1d0(_0x36bf6f- -0x14,_0x15430b);}this[_0x5d2d11(0x61e,0x60c)]['clear'](),delete this[_0xddbe80(0x2,-0x16)];}['initWorker'](){this['worker']=new Worker(this['options']['worker']),this['worker']['onmessage']=_0x2c1ea7=>{function _0x5e3819(_0x4cf198,_0x4e1d7d){return _0x3f35(_0x4cf198- -0x256,_0x4e1d7d);}this['_drawLines'](_0x2c1ea7['data'][_0x5e3819(0x7a,0x4d)]),this['_updateIng2']=![];},this[_0x383028(0x53b,0x52a)]={'init':_0x2c53b4=>{const _0x15950d={};function _0x3e54f0(_0x530a6c,_0x2dd084){return _0x383028(_0x530a6c-0xba,_0x2dd084);}function _0x46734c(_0x1d6b3c,_0x419ccb){return _0x383028(_0x419ccb- -0x670,_0x1d6b3c);}_0x15950d[_0x3e54f0(0x62d,0x620)]='init',_0x15950d[_0x3e54f0(0x5e4,0x5a6)]=_0x2c53b4,this['worker']['postMessage'](_0x15950d);},'setOptions':_0x2db245=>{const _0xc7e1b8={};function _0x23176f(_0x819597,_0x231f20){return _0x383028(_0x231f20-0x82,_0x819597);}_0xc7e1b8['type']=_0x23176f(0x584,0x5d0),_0xc7e1b8['options']=_0x2db245,this['worker']['postMessage'](_0xc7e1b8);},'setDate':_0x418e29=>{function _0x568a7b(_0x2c248f,_0x68580f){return _0x383028(_0x68580f- -0x2f5,_0x2c248f);}const _0x5cfc7c={};_0x5cfc7c[_0x568a7b(0x1f8,0x27e)]='setDate',_0x5cfc7c['data']=_0x418e29,this['worker']['postMessage'](_0x5cfc7c);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x23c5cb={};_0x23c5cb[_0x52ab86(0x6dc,0x67d)]='update';function _0x27d31e(_0x3eb72d,_0x1deb36){return _0x383028(_0x3eb72d- -0x1c7,_0x1deb36);}function _0x52ab86(_0xf01462,_0x5eec95){return _0x383028(_0x5eec95-0x10a,_0xf01462);}this[_0x27d31e(0x2e8,0x2a2)]['postMessage'](_0x23c5cb);},'clear':()=>{const _0x55964d={};_0x55964d[_0x26f53c(0xd3,0xae)]='clear';function _0x26f53c(_0x382ecd,_0x4532fc){return _0x383028(_0x382ecd- -0x4a0,_0x4532fc);}this['worker']['postMessage'](_0x55964d);}};function _0x383028(_0x50a801,_0x3f1127){return _0x4ee3(_0x50a801-0x80,_0x3f1127);}this['windField']['init'](this['options']);}}mars3d__namespace['LayerUtil'][_0x46d1d0(0x5dd,0x5f2)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer'][_0x46d1d0(0x5c3,0x612)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log']['logInfo']('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x4ee3(0x45e,0x4a9)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x46d1d0(0x58a,0x5fd)]=WindUtil;const _0x19734f={};_0x19734f['value']=!![],Object['defineProperty'](exports,_0x46d1d0(0x60d,0x5f9),_0x19734f);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.10.7",
3
+ "version": "3.10.9",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.10.7"
8
+ "mars3d": "~3.10.9"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"