mars3d-wind 3.9.2 → 3.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -30,10 +30,10 @@ Mars3D平台插件, 支持气象 风向图 功能插件
30
30
  使用 Node 环境下的现代 web 前端技术栈时,可以使用 npm 或 cnpm 或 yarn 等方式来安装 mars3d 插件包
31
31
 
32
32
  ```sh
33
- //安装mars3d主库
33
+ //安装mars3d主库(如果已安装请忽略)
34
34
  npm install mars3d --save
35
35
 
36
- //安装mars3d插件(按需安装)
36
+ //安装mars3d插件
37
37
  npm install mars3d-wind --save
38
38
  ```
39
39
 
package/mars3d-wind.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.9.2
5
- * 编译日期:2025-03-11 22:37
4
+ * 版本信息:v3.9.4
5
+ * 编译日期:2025-03-25 22:36
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:火星科技免费公开版 ,2025-02-01
8
8
  */
@@ -11,5 +11,5 @@
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';(function(_0xb80032,_0x18be49){function _0x22a013(_0x5e6164,_0x3037c0){return _0x235d(_0x3037c0- -0xda,_0x5e6164);}const _0x489679=_0xb80032();function _0x4c04c1(_0x5e2569,_0x124beb){return _0x235d(_0x124beb-0x2ba,_0x5e2569);}while(!![]){try{const _0x597dc6=-parseInt(_0x22a013(0x32,0xb8))/0x1*(-parseInt(_0x4c04c1(0x3cc,0x3fb))/0x2)+parseInt(_0x22a013(0x38,0x4f))/0x3*(-parseInt(_0x4c04c1(0x461,0x3fa))/0x4)+-parseInt(_0x4c04c1(0x48d,0x4dc))/0x5+-parseInt(_0x4c04c1(0x422,0x462))/0x6+parseInt(_0x22a013(0xf2,0x163))/0x7*(parseInt(_0x4c04c1(0x44e,0x3f0))/0x8)+parseInt(_0x4c04c1(0x4ec,0x476))/0x9*(parseInt(_0x4c04c1(0x3cb,0x441))/0xa)+parseInt(_0x22a013(0xdd,0xe4))/0xb;if(_0x597dc6===_0x18be49)break;else _0x489679['push'](_0x489679['shift']());}catch(_0x861529){_0x489679['push'](_0x489679['shift']());}}}(_0x2ba2,0xa81aa));function _interopNamespace(_0x462c2a){if(_0x462c2a&&_0x462c2a['__esModule'])return _0x462c2a;var _0x517370=Object['create'](null);function _0x4e1206(_0x293464,_0x411ab5){return _0x235d(_0x411ab5-0x2ef,_0x293464);}return _0x462c2a&&Object['keys'](_0x462c2a)['forEach'](function(_0x1bfbd1){function _0x292ec0(_0x48412e,_0x39bba3){return _0x235d(_0x39bba3- -0x2af,_0x48412e);}if(_0x1bfbd1!=='default'){var _0x43f1b0=Object['getOwnPropertyDescriptor'](_0x462c2a,_0x1bfbd1);Object['defineProperty'](_0x517370,_0x1bfbd1,_0x43f1b0[_0x292ec0(-0xe8,-0x78)]?_0x43f1b0:{'enumerable':!![],'get':function(){return _0x462c2a[_0x1bfbd1];}});}}),_0x517370[_0x4e1206(0x4f3,0x494)]=_0x462c2a,_0x517370;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function _0x2ba2(){const _0x41581e=['lonRange','owner','attributeLocations','wrapT','commandType','_showHook','bind','Draw','pixelSize','updateWindData','defineProperty','steps','min','Math','54vzkhJx','Compute','6467890WUXBvG','createRenderingFramebuffers','data','register','add','visible','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','_randomParticle','north','canvasWind','createRenderingTextures','initFrameRate','xmax','vmin','lineTo','uniformMap','EventType','flipY','blendFuncSource','pointer-events','postMessage','execute','colorTextures','lineWidth','_addedHook','segmentsDepth','_drawLines','wheel','percentageChanged','globe','SceneMode','stroke','_updateIng2','_tomap','setData','IDENTITY','shaderProgram','currentParticlesPosition','framebuffers','changed','type','quietPeriod','OPAQUE','cols','addEventListener','canvas','moveTo','colors','createRawRenderState','abs','position','_bilinearInterpolation','EllipsoidalOccluder','warn','segments','stringify','getContext','height','toRadians','getDirection','clearFramebuffers','context','reCreateWindTextures','maxAge','createCommand','viewerParameters','style','getRandomLatLng','setDate','globalAlpha','particlesNumber','bounds','getSegmentDrawVertexShader','xmin','clientWidth','red','NEAREST','RGBA','latRange','calculateSpeed','createSegmentsGeometry','rows','updatePosition','__esModule','tlng','ymin','init','particles','getParticles','container','vertexShaderSource','forEach','FLOAT','particlesSpeed','cartesianToCartographic','depthTexture','age','WindLayer','values','modelMatrix','2011390nuEGzj','_updateIng','getV','speedRate','_animateFrame','depthTest','layer','CLAMP_TO_EDGE','windData','color','LayerUtil','longitude','zIndex','keys','normal','getCalculateSpeedShader','mouseUp','positionWC','previousParticlesPosition','worker','tlat','get','_colorRamp','SCENE3D','primitives','cos','geometry','217YhNTVn','windTextures','off','__proto__','_setOptionsHook','getUpdatePositionShader','BaseLayer','computing','globalCompositeOperation','enabled','absolute','rendering','options','createWindTextures','48hvSfLg','onParticlesTextureSizeChange','postProcessingPosition','error','magnificationFilter','frameRateAdjustment','morphComplete','talt','autoClear','fill','pointerEvents','domain','primitiveType','162632bKoFkW','south','_onMouseDownEvent','canvasWidth','udata','commandList','lastFramesPerSecond','pixelDatatype','prototype','_pointerEvents','156504VFuUVu','16MVejzn','clientHeight','_onMouseMoveEvent','textures','UNSIGNED_INT','none','#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','fragmentShaderSource','isDynamic','commandToExecute','resize','_onMouseUpEvent','CanvasWindField','initWorker','getSegmentDrawFragmentShader','removeEventListener','outputTexture','fixedHeight','Cesium','isDestroy','framebuffer','visibility','_speedRate','wrapS','setOptions','particlesTextures','isArray','_calcUV','width','camera','east','windField','sceneMode','lighter','isInExtent','_mountedHook','redraw','toGridXY','west','clearCommand','vertexArray','show','mouseMove','random','canvasContext','particleSystem','grid','remove','toDegrees','frameRate','onmessage','particlesTextureSize','processWindData','colorTable','rawRenderState','vdata','destroy','STATIC_DRAW','umax','max','length','beginPath','ymax','fromCssColorString','lng','blendFuncDestination','applyViewerParameters','componentDatatype','log','array','737830cVfhCf','getUVByXY','scene','requestRender','Cartesian2','sources','createPrimitives','clear','_maxAge','dropRateBump','updateViewerParameters','71198UMQUZi','fromDegrees','preExecute','floor','hidden','componentsPerAttribute','mouse_move','canvasHeight','sqrt','push','frameRateMonitor','minificationFilter','atan2','getUVByPoint','#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','mode','destoryRenderingFramebuffers','lat','drawingBufferHeight','default','nextParticlesPosition','_map','3081738lNlgAS','0px','frameTime','update','getSpeed','speed'];_0x2ba2=function(){return _0x41581e;};return _0x2ba2();}function getU(_0x1a627f,_0x4821d5){function _0x20f078(_0x58e9a4,_0x3e3ca0){return _0x235d(_0x58e9a4-0x2e5,_0x3e3ca0);}const _0x394904=_0x1a627f*Math[_0x20f078(0x520,0x540)](Cesium$2['Math']['toRadians'](_0x4821d5));return _0x394904;}function getV(_0x113472,_0x3db6ea){const _0x10ff29=_0x113472*Math['sin'](Cesium$2['Math'][_0x580aad(0x513,0x4a6)](_0x3db6ea));function _0x580aad(_0x4a950c,_0x16a5a0){return _0x235d(_0x4a950c-0x31b,_0x16a5a0);}return _0x10ff29;}function getSpeed(_0x6b30d1,_0x1493f5){const _0x4ddef5=Math['sqrt'](Math['pow'](_0x6b30d1,0x2)+Math['pow'](_0x1493f5,0x2));return _0x4ddef5;}function getDirection(_0x2ba009,_0x4d10f5){let _0x23d561=Cesium$2[_0x3baa72(-0x199,-0x154)][_0x68246b(0x12b,0x171)](Math[_0x3baa72(-0x1b6,-0x139)](_0x4d10f5,_0x2ba009));function _0x68246b(_0xf13bc,_0x25d39a){return _0x235d(_0x25d39a-0x0,_0xf13bc);}_0x23d561+=_0x23d561<0x0?0x168:0x0;function _0x3baa72(_0xc95750,_0x40a1ba){return _0x235d(_0xc95750- -0x354,_0x40a1ba);}return _0x23d561;}const _0x495bf4={};_0x495bf4[_0x3bbde2(-0x10e,-0xfa)]=null,_0x495bf4['getU']=getU,_0x495bf4[_0x2fa6f2(0x4bc,0x518)]=getV,_0x495bf4[_0x3bbde2(-0x80,-0xb9)]=getSpeed,_0x495bf4[_0x3bbde2(-0x33,-0x82)]=getDirection;var WindUtil=_0x495bf4,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader=_0x3bbde2(-0x8c,-0x93),postProcessingPositionFragmentShader=_0x3bbde2(-0xe5,-0xb3),renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a';const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x417008={};_0x417008[_0x497bc9(0x39a,0x3a0)]=[calculateSpeedShader];function _0x497bc9(_0x37cfd7,_0xf67d09){return _0x3bbde2(_0x37cfd7-0x43a,_0xf67d09);}return new ShaderSource$1(_0x417008);}static[_0x3bbde2(-0x10c,-0x82)](){const _0x2dd1da={};_0x2dd1da[_0x3220f0(0x212,0x1c1)]=[updatePositionShader];function _0x3220f0(_0x21bae2,_0x27f73f){return _0x2fa6f2(_0x21bae2,_0x27f73f- -0x2bf);}return new ShaderSource$1(_0x2dd1da);}static[_0x3bbde2(-0x26,-0xb0)](){const _0x3e2ca6={};return _0x3e2ca6['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x3e2ca6);}static[_0x3bbde2(-0xdd,-0x58)](){const _0x5deb7d={};return _0x5deb7d['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x5deb7d);}static['getPostProcessingPositionShader'](){const _0x529215={};return _0x529215['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x529215);}}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,defaultValue,defined,destroyObject}=mars3d__namespace[_0x2fa6f2(0x425,0x447)];class CustomPrimitive{constructor(_0x4940c7){function _0x42ed86(_0x4ff33b,_0x3c4faf){return _0x3bbde2(_0x4ff33b-0x557,_0x3c4faf);}this['commandType']=_0x4940c7[_0x4fb8f6(0x413,0x423)],this[_0x42ed86(0x567,0x588)]=_0x4940c7[_0x4fb8f6(0x49d,0x45e)],this['attributeLocations']=_0x4940c7['attributeLocations'],this[_0x42ed86(0x460,0x4e1)]=_0x4940c7['primitiveType'],this['uniformMap']=_0x4940c7[_0x42ed86(0x4f8,0x4b0)]||{};function _0x4fb8f6(_0x46dae2,_0x2c837d){return _0x2fa6f2(_0x2c837d,_0x46dae2- -0x93);}this['vertexShaderSource']=_0x4940c7['vertexShaderSource'],this[_0x42ed86(0x473,0x4b6)]=_0x4940c7['fragmentShaderSource'],this['rawRenderState']=_0x4940c7[_0x4fb8f6(0x3d8,0x3b1)],this[_0x42ed86(0x480,0x437)]=_0x4940c7[_0x4fb8f6(0x3b6,0x332)],this[_0x42ed86(0x47c,0x465)]=_0x4940c7['outputTexture'],this[_0x4fb8f6(0x392,0x33b)]=defaultValue(_0x4940c7[_0x42ed86(0x45c,0x47d)],![]),this['preExecute']=_0x4940c7['preExecute'],this[_0x42ed86(0x495,0x411)]=!![],this['commandToExecute']=undefined,this[_0x42ed86(0x493,0x460)]=undefined,this['isDynamic']=_0x4940c7['isDynamic']??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x42ed86(0x480,0x4f2)],'pass':Pass$1[_0x4fb8f6(0x449,0x41d)]}));}[_0x2fa6f2(0x493,0x4f2)](_0x3ed5b8){function _0x5d79eb(_0x59effd,_0x13a275){return _0x3bbde2(_0x13a275- -0xe,_0x59effd);}function _0x27ef8d(_0x5cb6e2,_0x238602){return _0x3bbde2(_0x238602-0x210,_0x5cb6e2);}if(this[_0x5d79eb(-0x14,-0x88)]===_0x5d79eb(-0x5b,-0x85)){const _0x2b4cac={};_0x2b4cac['context']=_0x3ed5b8,_0x2b4cac[_0x27ef8d(0x205,0x220)]=this[_0x27ef8d(0x200,0x220)],_0x2b4cac[_0x5d79eb(-0xfa,-0x8a)]=this[_0x27ef8d(0x1ee,0x194)],_0x2b4cac['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x4b680b=VertexArray$1['fromGeometry'](_0x2b4cac),_0x1070ee={};_0x1070ee['context']=_0x3ed5b8,_0x1070ee['vertexShaderSource']=this[_0x27ef8d(0x16d,0x1fc)],_0x1070ee[_0x5d79eb(-0x6b,-0xf2)]=this['fragmentShaderSource'],_0x1070ee['attributeLocations']=this[_0x27ef8d(0x13b,0x194)];const _0x5c4267=ShaderProgram['fromCache'](_0x1070ee),_0x5b25c6=RenderState['fromCache'](this['rawRenderState']),_0x48ed04={};return _0x48ed04['owner']=this,_0x48ed04[_0x27ef8d(0x10e,0x14d)]=_0x4b680b,_0x48ed04[_0x27ef8d(0x88,0x119)]=this['primitiveType'],_0x48ed04[_0x27ef8d(0x268,0x205)]=Matrix4[_0x5d79eb(-0x53,-0x59)],_0x48ed04['renderState']=_0x5b25c6,_0x48ed04[_0x5d79eb(-0x44,-0x58)]=_0x5c4267,_0x48ed04['framebuffer']=this['framebuffer'],_0x48ed04[_0x5d79eb(-0x1,-0x6d)]=this[_0x5d79eb(0xb,-0x6d)],_0x48ed04['pass']=Pass$1['OPAQUE'],new DrawCommand(_0x48ed04);}else{if(this[_0x5d79eb(-0x60,-0x88)]===_0x5d79eb(0x12,-0x7d)){const _0x1ac2cc={};return _0x1ac2cc[_0x27ef8d(0x18a,0x193)]=this,_0x1ac2cc['fragmentShaderSource']=this[_0x5d79eb(-0x92,-0xf2)],_0x1ac2cc['uniformMap']=this[_0x5d79eb(-0xd5,-0x6d)],_0x1ac2cc[_0x27ef8d(0x13a,0x135)]=this[_0x27ef8d(0x164,0x135)],_0x1ac2cc['persists']=!![],new ComputeCommand(_0x1ac2cc);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x550113,_0x295ea7){this['geometry']=_0x295ea7,defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x550113,'geometry':this['geometry'],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x1fa740){if(!this[_0x342614(0x1c9,0x173)]())return;function _0x342614(_0x21e71b,_0x1d9547){return _0x3bbde2(_0x1d9547-0x256,_0x21e71b);}if(!this[_0x207d66(0x40b,0x402)]||!defined(_0x1fa740))return;!defined(this['commandToExecute'])&&(this[_0x342614(0x129,0x174)]=this['createCommand'](_0x1fa740['context']));function _0x207d66(_0x2f355c,_0x243c6e){return _0x2fa6f2(_0x2f355c,_0x243c6e- -0x5c);}defined(this[_0x207d66(0x401,0x42c)])&&this['preExecute']();if(!_0x1fa740[_0x207d66(0x346,0x3d3)]){console[_0x207d66(0x474,0x48b)]('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x1fa740['commandList']['push'](this['clearCommand']),defined(this[_0x207d66(0x36d,0x3e2)])&&_0x1fa740['commandList']['push'](this['commandToExecute']);}['isDestroyed'](){return![];}[_0x2fa6f2(0x3e6,0x46d)](){function _0x1500b8(_0x497e58,_0x46b38f){return _0x3bbde2(_0x497e58-0xa2,_0x46b38f);}if(defined(this['commandToExecute'])){var _0x3355b8;(_0x3355b8=this['commandToExecute']['shaderProgram'])===null||_0x3355b8===void 0x0||_0x3355b8[_0x23af65(0xf8,0x17c)](),this['commandToExecute'][_0x1500b8(0x58,0xb4)]=undefined;}function _0x23af65(_0x1c6852,_0x3ddb5c){return _0x3bbde2(_0x1c6852-0x1ab,_0x3ddb5c);}return destroyObject(this);}}function deepMerge(_0x1d7ad6,_0x3e5346){if(!_0x1d7ad6)return _0x3e5346;if(!_0x3e5346)return _0x1d7ad6;function _0xdd91ca(_0x5f3bc3,_0x5d3fc1){return _0x3bbde2(_0x5d3fc1-0x5fd,_0x5f3bc3);}const _0x11bcc9={..._0x3e5346},_0x24cf49=_0x11bcc9;for(const _0x126a80 in _0x1d7ad6){if(Object[_0xdd91ca(0x588,0x50f)]['hasOwnProperty']['call'](_0x1d7ad6,_0x126a80)){const _0x425a65=_0x1d7ad6[_0x126a80],_0x494666=_0x3e5346[_0x126a80];if(Array[_0xdd91ca(0x4c3,0x52c)](_0x425a65)){_0x24cf49[_0x126a80]=_0x425a65['slice']();continue;}if(_0x425a65&&typeof _0x425a65==='object'){_0x24cf49[_0x126a80]=deepMerge(_0x425a65,_0x494666||{});continue;}_0x425a65!==undefined&&(_0x24cf49[_0x126a80]=_0x425a65);}}function _0x288ee7(_0x369d0d,_0x48dc9b){return _0x3bbde2(_0x369d0d-0x572,_0x48dc9b);}return _0x24cf49;}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[_0x2fa6f2(0x439,0x447)];class WindParticlesComputing{constructor(_0x1be0ff,_0x5763e6,_0x551021,_0x323254,_0x20904d){this['context']=_0x1be0ff,this['options']=_0x551021,this[_0x38fc09(0x5dd,0x5fc)]=_0x323254,this['windData']=_0x5763e6,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x53ab60={};_0x53ab60['scene']=_0x20904d,_0x53ab60['samplingWindow']=0x1,_0x53ab60[_0x38fc09(0x5c5,0x583)]=0x0;function _0x146742(_0x2c909d,_0x4f6aef){return _0x2fa6f2(_0x4f6aef,_0x2c909d- -0x2e2);}this['frameRateMonitor']=new FrameRateMonitor(_0x53ab60),this[_0x146742(0x1db,0x1ad)](),this[_0x146742(0x13a,0xd7)](),this['createParticlesTextures']();function _0x38fc09(_0x56ad7b,_0x18e53d){return _0x2fa6f2(_0x18e53d,_0x56ad7b-0xea);}this['createComputingPrimitives']();}['initFrameRate'](){const _0x3388c8=()=>{function _0x30bf50(_0xbf9a3d,_0x2c07c5){return _0x235d(_0x2c07c5-0x5c,_0xbf9a3d);}function _0x5d6c1a(_0x21822e,_0x3489eb){return _0x235d(_0x3489eb-0x28b,_0x21822e);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor'][_0x5d6c1a(0x374,0x3c7)],this[_0x30bf50(0x107,0x18a)]=0x3c/Math['max'](this[_0x30bf50(0x252,0x1ce)],0x1));};function _0x340f85(_0x36491f,_0x22b550){return _0x3bbde2(_0x36491f-0x2f4,_0x22b550);}_0x3388c8();function _0x1da849(_0x1f65d7,_0x46b702){return _0x2fa6f2(_0x1f65d7,_0x46b702- -0x354);}const _0x22f0dc=setInterval(_0x3388c8,0x3e8),_0x5381c2=this['destroy'][_0x1da849(0x1cd,0x154)](this);this[_0x340f85(0x241,0x2af)]=()=>{clearInterval(_0x22f0dc),_0x5381c2();};}['createWindTextures'](){const _0x2e9dae={};_0x2e9dae[_0x3ade6d(-0x1f3,-0x1e4)]=TextureMinificationFilter$1['LINEAR'];function _0x3ade6d(_0x29aa56,_0x12a97f){return _0x2fa6f2(_0x29aa56,_0x12a97f- -0x675);}_0x2e9dae[_0x46c9d0(0x29e,0x298)]=TextureMagnificationFilter$1['LINEAR'];const _0xa1975a={'context':this[_0x46c9d0(0x36c,0x311)],'width':this['windData']['width'],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options'][_0x3ade6d(-0x219,-0x1b2)]??![],'sampler':new Sampler$1(_0x2e9dae)};function _0x46c9d0(_0x547f69,_0x3cda85){return _0x3bbde2(_0x547f69-0x39d,_0x3cda85);}this[_0x46c9d0(0x3af,0x3ff)]={'U':new Texture$1({..._0xa1975a,'source':{'arrayBufferView':new Float32Array(this['windData']['u'][_0x46c9d0(0x2f7,0x2aa)])}}),'V':new Texture$1({..._0xa1975a,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x3acd01={};_0x3acd01['minificationFilter']=TextureMinificationFilter$1[_0x497949(0x2fb,0x38b)],_0x3acd01['magnificationFilter']=TextureMagnificationFilter$1[_0x468d23(0x612,0x5e9)];function _0x468d23(_0x20f8a9,_0x2214b4){return _0x2fa6f2(_0x20f8a9,_0x2214b4-0xeb);}const _0xa98096={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x497949(0x3c7,0x39b)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this[_0x497949(0x273,0x2a8)]['particlesTextureSize']*0x4)[_0x468d23(0x4a2,0x511)](0x0)},'sampler':new Sampler$1(_0x3acd01)};function _0x497949(_0x41c106,_0xf4abc7){return _0x2fa6f2(_0x41c106,_0xf4abc7- -0x173);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0xa98096),'currentParticlesPosition':new Texture$1(_0xa98096),'nextParticlesPosition':new Texture$1(_0xa98096),'postProcessingPosition':new Texture$1(_0xa98096),'particlesSpeed':new Texture$1(_0xa98096)};}['destroyParticlesTextures'](){function _0x15bdb5(_0x4efb27,_0x28145c){return _0x2fa6f2(_0x28145c,_0x4efb27- -0x246);}function _0xacd952(_0x4b0542,_0x5e2230){return _0x3bbde2(_0x5e2230-0x443,_0x4b0542);}Object['values'](this['particlesTextures'])[_0xacd952(0x47b,0x430)](_0x40683b=>_0x40683b[_0x15bdb5(0x227,0x1e7)]());}['createComputingPrimitives'](){function _0x516781(_0x12e646,_0x103050){return _0x2fa6f2(_0x103050,_0x12e646- -0x5a0);}function _0x52b568(_0x1f4e9c,_0x3c09e7){return _0x2fa6f2(_0x3c09e7,_0x1f4e9c- -0xcb);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0x516781(-0x6e,-0x47)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u'][_0x516781(-0xf2,-0x7e)],this['windData']['u'][_0x516781(-0x130,-0x195)]),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this[_0x516781(-0x82,-0x111)]['v'][_0x52b568(0x3a5,0x392)]),'speedRange':()=>new Cartesian2$1(this['windData'][_0x52b568(0x3d6,0x3f4)][_0x52b568(0x3e3,0x3bd)],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0xb4947e(_0x17433a,_0x178057){return _0x52b568(_0x17433a- -0x5cc,_0x178057);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0xb4947e(-0x27c,-0x22e)]['speedFactor'];},'frameRateAdjustment':()=>this[_0x52b568(0x357,0x37b)],'dimension':()=>new Cartesian2$1(this['windData']['width'],this['windData'][_0x52b568(0x420,0x3a8)]),'minimum':()=>new Cartesian2$1(this[_0x52b568(0x453,0x449)]['bounds']['west'],this['windData'][_0x516781(-0xa7,-0x102)][_0x516781(-0x175,-0x178)]),'maximum':()=>new Cartesian2$1(this[_0x516781(-0x82,-0x46)]['bounds']['east'],this['windData']['bounds']['north'])},'fragmentShaderSource':ShaderManager[_0x52b568(0x45a,0x3fa)](),'outputTexture':this[_0x516781(-0x152,-0x1c6)][_0x52b568(0x444,0x4a0)],'preExecute':()=>{function _0xf79a77(_0x7bbcfb,_0x55e441){return _0x52b568(_0x7bbcfb- -0x36f,_0x55e441);}const _0x37bb8e=this[_0xf79a77(0x14,-0x7b)]['previousParticlesPosition'];this['particlesTextures'][_0x4671fe(-0x86,-0x54)]=this['particlesTextures']['currentParticlesPosition'],this['particlesTextures'][_0x4671fe(-0xe6,-0xa5)]=this['particlesTextures']['postProcessingPosition'],this['particlesTextures'][_0x4671fe(-0x1c0,-0x15d)]=_0x37bb8e;function _0x4671fe(_0x120960,_0x51c6f9){return _0x52b568(_0x51c6f9- -0x4b1,_0x120960);}this['primitives']['calculateSpeed'][_0xf79a77(0x4,-0x82)]&&(this[_0xf79a77(0xf4,0x65)][_0x4671fe(-0x7c,-0x7b)]['commandToExecute'][_0x4671fe(-0xea,-0x137)]=this[_0x4671fe(-0xe2,-0x12e)][_0x4671fe(-0xc2,-0x6d)]);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x52b568(0x40c,0x407)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x52b568(0x383,0x3c2)]['nextParticlesPosition'],'preExecute':()=>{function _0x433f85(_0x282bf0,_0x4a62cf){return _0x516781(_0x4a62cf-0x2a9,_0x282bf0);}function _0x5549dc(_0x5dddc9,_0x28b7d2){return _0x516781(_0x28b7d2-0x424,_0x5dddc9);}this['primitives']['updatePosition']['commandToExecute']&&(this['primitives']['updatePosition'][_0x5549dc(0x352,0x2c2)][_0x433f85(0x173,0x14e)]=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x52b568(0x3e6,0x410),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x52b568(0x3cf,0x3b9)],'particlesSpeed':()=>this['particlesTextures'][_0x52b568(0x444,0x40a)],'lonRange':()=>this[_0x52b568(0x428,0x41c)][_0x516781(-0xfe,-0xfb)],'latRange':()=>this['viewerParameters'][_0x52b568(0x435,0x3ea)],'dataLonRange':()=>new Cartesian2$1(this[_0x516781(-0x82,-0x1e)][_0x516781(-0xa7,-0x85)]['west'],this[_0x52b568(0x453,0x489)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this[_0x52b568(0x453,0x477)][_0x516781(-0xa7,-0xd7)]['south'],this['windData']['bounds'][_0x52b568(0x3ef,0x469)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this['options']['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x52b568(0x383,0x3b6)][_0x516781(-0x181,-0x1b6)],'preExecute':()=>{function _0x4c7085(_0x42f332,_0x22134b){return _0x516781(_0x42f332-0x20a,_0x22134b);}function _0x7f2455(_0x1ac907,_0x1a0d13){return _0x52b568(_0x1ac907- -0x446,_0x1a0d13);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this[_0x7f2455(0x1d,0xa)]['postProcessingPosition']['commandToExecute']['outputTexture']=this['particlesTextures'][_0x4c7085(0x89,0x10a)]);},'isDynamic':()=>this['options']['dynamic']})};}[_0x3bbde2(-0x30,-0x11)](){function _0x2354bf(_0x3d2c7b,_0x5e6c6d){return _0x3bbde2(_0x5e6c6d-0x293,_0x3d2c7b);}function _0x318f3f(_0x91be65,_0x52203b){return _0x3bbde2(_0x52203b-0x4cd,_0x91be65);}this['windTextures']['U']['destroy'](),this[_0x318f3f(0x492,0x4df)]['V'][_0x318f3f(0x3e0,0x41a)](),this[_0x2354bf(0x177,0x18f)]();}[_0x2fa6f2(0x4ce,0x4ab)](_0x1a4f8e){function _0x377c78(_0x39a497,_0x1e94f1){return _0x3bbde2(_0x39a497-0x5,_0x1e94f1);}function _0x15d42b(_0x1e10df,_0x20d2ae){return _0x3bbde2(_0x20d2ae-0x4ab,_0x1e10df);}this[_0x15d42b(0x47f,0x4a9)]=_0x1a4f8e,this[_0x377c78(-0x2b,-0x50)]();}['updateOptions'](_0x1d49b3){const _0x187d48=_0x1d49b3[_0x2765f1(0xe7,0x168)]!==undefined&&_0x1d49b3['flipY']!==this['options'][_0x2765f1(0xe7,0x6a)];this[_0x2765f1(0x3f,0x3b)]=deepMerge(_0x1d49b3,this[_0x2765f1(0x3f,0x53)]);function _0x2765f1(_0x1e2108,_0x11b623){return _0x2fa6f2(_0x11b623,_0x1e2108- -0x3dc);}function _0x4c0422(_0x55f461,_0x2eb5f7){return _0x2fa6f2(_0x55f461,_0x2eb5f7- -0xda);}_0x187d48&&this['reCreateWindTextures']();}['processWindData'](_0x2c6fcf){const {array:_0x5c06c6}=_0x2c6fcf;let {min:_0x533343,max:_0x571211}=_0x2c6fcf;const _0x54173b=new Float32Array(_0x5c06c6['length']);_0x533343===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x533343=Math['min'](..._0x5c06c6));function _0x4efb2f(_0x4a4991,_0x4d3c4d){return _0x3bbde2(_0x4d3c4d-0x21,_0x4a4991);}_0x571211===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x571211=Math['max'](..._0x5c06c6));const _0x1a5ee3=Math[_0x4efb2f(-0xb1,-0x8f)](Math[_0x520e36(0x2ab,0x2fe)](_0x533343),Math['abs'](_0x571211));function _0x520e36(_0x774a2e,_0x55b906){return _0x3bbde2(_0x55b906-0x33b,_0x774a2e);}for(let _0x293717=0x0;_0x293717<_0x5c06c6['length'];_0x293717++){const _0x147361=_0x5c06c6[_0x293717]/_0x1a5ee3;_0x54173b[_0x293717]=_0x147361;}return _0x54173b;}[_0x3bbde2(-0xb3,-0x52)](){function _0x15055b(_0x10551f,_0xf02416){return _0x3bbde2(_0x10551f-0x5fb,_0xf02416);}Object['values'](this[_0x298718(0x279,0x236)])['forEach'](_0x4c47b0=>_0x4c47b0['destroy']()),Object[_0x298718(0x25b,0x1f0)](this[_0x15055b(0x529,0x54c)])['forEach'](_0x2a2fad=>_0x2a2fad['destroy']()),Object[_0x15055b(0x5ef,0x66f)](this['primitives'])['forEach'](_0x301e93=>_0x301e93['destroy']());function _0x298718(_0x17d02d,_0x3f2131){return _0x3bbde2(_0x17d02d-0x267,_0x3f2131);}this[_0x298718(0x1d7,0x177)][_0x298718(0x1b4,0x1ef)]();}}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(_0x152afc,_0x50d760,_0x27abf1,_0x1f116f){this['context']=_0x152afc,this['options']=_0x50d760,this[_0x1c60fd(0x380,0x381)]=_0x27abf1;function _0x1c60fd(_0x1a829b,_0x5bd9b4){return _0x2fa6f2(_0x5bd9b4,_0x1a829b- -0x173);}this['computing']=_0x1f116f;(typeof this['options']['particlesTextureSize']!=='number'||this['options']['particlesTextureSize']<=0x0)&&(console[_0x1c60fd(0x2ad,0x301)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options'][_0x1c60fd(0x2f5,0x340)]=0x100);this['colorTable']=this['createColorTableTexture'](),this[_0x35aa46(0x2f8,0x26c)]=this[_0x1c60fd(0x349,0x36a)](),this[_0x35aa46(0x398,0x411)]=this['createRenderingFramebuffers']();function _0x35aa46(_0x57c128,_0x55818a){return _0x2fa6f2(_0x55818a,_0x57c128- -0x140);}this['primitives']=this[_0x35aa46(0x341,0x335)]();}['createRenderingTextures'](){const _0x3ac2e2={};_0x3ac2e2['context']=this['context'],_0x3ac2e2['width']=this[_0x2ec42f(-0xb0,-0xe8)]['drawingBufferWidth'],_0x3ac2e2['height']=this['context'][_0x4e409d(-0x11b,-0x135)],_0x3ac2e2['pixelFormat']=PixelFormat[_0x2ec42f(-0x10b,-0xd8)],_0x3ac2e2['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x331e11=_0x3ac2e2,_0x539e81={};function _0x4e409d(_0x3e1f83,_0x15a42f){return _0x2fa6f2(_0x15a42f,_0x3e1f83- -0x5b3);}_0x539e81[_0x2ec42f(-0x149,-0xe8)]=this[_0x4e409d(-0xc4,-0xb9)],_0x539e81[_0x2ec42f(-0x1bf,-0x186)]=this[_0x2ec42f(-0x6d,-0xe8)]['drawingBufferWidth'],_0x539e81[_0x2ec42f(-0x17d,-0xec)]=this[_0x2ec42f(-0x134,-0xe8)]['drawingBufferHeight'];function _0x2ec42f(_0x48fc1b,_0x29bbff){return _0x3bbde2(_0x29bbff- -0xb7,_0x48fc1b);}_0x539e81['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x539e81[_0x4e409d(-0x182,-0x164)]=PixelDatatype[_0x2ec42f(-0x177,-0x19e)];const _0x5b925a=_0x539e81;return{'segmentsColor':new Texture(_0x331e11),'segmentsDepth':new Texture(_0x5b925a)};}[_0x3bbde2(-0x6d,-0x18)](){const _0x179c25={};_0x179c25['context']=this['context'],_0x179c25[_0x547d6d(0x4d0,0x528)]=[this['textures']['segmentsColor']];function _0x547d6d(_0x3608c4,_0xc89b04){return _0x3bbde2(_0xc89b04-0x580,_0x3608c4);}function _0xf428ef(_0x4d51bf,_0x181651){return _0x3bbde2(_0x4d51bf-0x237,_0x181651);}return _0x179c25[_0x547d6d(0x5fe,0x571)]=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x179c25)};}[_0x2fa6f2(0x42c,0x496)](){Object['values'](this['framebuffers'])['forEach'](_0x59443f=>{function _0x2d8586(_0x3b9681,_0x2894c1){return _0x235d(_0x3b9681-0x15c,_0x2894c1);}_0x59443f[_0x2d8586(0x2d5,0x34b)]();});}['createColorTableTexture'](){const _0x151337=new Float32Array(this['options']['colors']['flatMap'](_0x50cc38=>{function _0x37514e(_0x14b5ae,_0x159893){return _0x235d(_0x159893- -0x222,_0x14b5ae);}function _0x32b6ab(_0xb20ea0,_0x3eacc7){return _0x235d(_0xb20ea0- -0x1e9,_0x3eacc7);}const _0x954365=Color$1[_0x37514e(-0x7c,-0xa2)](_0x50cc38);return[_0x954365[_0x37514e(-0x9b,-0x19)],_0x954365['green'],_0x954365['blue'],_0x954365['alpha']];})),_0x1a3db8={};_0x1a3db8[_0x31233d(0x574,0x56c)]=TextureMinificationFilter['LINEAR'],_0x1a3db8[_0x2ac42e(-0x25b,-0x21e)]=TextureMagnificationFilter['LINEAR'];function _0x2ac42e(_0x576373,_0x50055b){return _0x2fa6f2(_0x50055b,_0x576373- -0x67c);}_0x1a3db8[_0x31233d(0x52f,0x52d)]=TextureWrap[_0x2ac42e(-0x15f,-0x1db)];function _0x31233d(_0x400709,_0x3c8417){return _0x3bbde2(_0x400709-0x603,_0x3c8417);}return _0x1a3db8[_0x2ac42e(-0x1d7,-0x175)]=TextureWrap[_0x2ac42e(-0x15f,-0x1bd)],new Texture({'context':this['context'],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x1a3db8),'source':{'width':this['options']['colors']['length'],'height':0x1,'arrayBufferView':_0x151337}});}[_0x2fa6f2(0x4a1,0x502)](){const _0x4b08f6=0x4,_0x32e503=this[_0x53824f(0x24d,0x25b)]['particlesTextureSize'];let _0x1fc523=[];for(let _0x2fea65=0x0;_0x2fea65<_0x32e503;_0x2fea65++){for(let _0x409dee=0x0;_0x409dee<_0x32e503;_0x409dee++){for(let _0x56bb4c=0x0;_0x56bb4c<_0x4b08f6;_0x56bb4c++){_0x1fc523['push'](_0x2fea65/_0x32e503),_0x1fc523['push'](_0x409dee/_0x32e503);}}}_0x1fc523=new Float32Array(_0x1fc523);const _0x1c30d8=this[_0x53824f(0x24d,0x255)][_0x4e94c4(0x4e0,0x4bc)]**0x2;let _0x5f1d37=[];for(let _0x37169e=0x0;_0x37169e<_0x1c30d8;_0x37169e++){_0x5f1d37['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x5f1d37=new Float32Array(_0x5f1d37);let _0xc85b7f=[];for(let _0x43887e=0x0,_0x5a64d7=0x0;_0x43887e<_0x1c30d8;_0x43887e++){_0xc85b7f['push'](_0x5a64d7+0x0,_0x5a64d7+0x1,_0x5a64d7+0x2,_0x5a64d7+0x2,_0x5a64d7+0x1,_0x5a64d7+0x3),_0x5a64d7+=_0x4b08f6;}_0xc85b7f=new Uint32Array(_0xc85b7f);const _0x963504={};_0x963504[_0x4e94c4(0x4f0,0x503)]=ComponentDatatype[_0x4e94c4(0x586,0x5b4)],_0x963504[_0x53824f(0x2bd,0x27f)]=0x2,_0x963504[_0x53824f(0x346,0x2cb)]=_0x1fc523;function _0x4e94c4(_0x14b01c,_0x5eef84){return _0x3bbde2(_0x14b01c-0x598,_0x5eef84);}function _0x53824f(_0x12cf48,_0x14597b){return _0x3bbde2(_0x12cf48-0x352,_0x14597b);}const _0x5ae5d8={};_0x5ae5d8[_0x53824f(0x2aa,0x29d)]=ComponentDatatype['FLOAT'],_0x5ae5d8['componentsPerAttribute']=0x3,_0x5ae5d8[_0x53824f(0x346,0x2fd)]=_0x5f1d37;const _0xcb8ccf=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x963504),'normal':new GeometryAttribute(_0x5ae5d8)}),'indices':_0xc85b7f});return _0xcb8ccf;}[_0x2fa6f2(0x4a0,0x4e2)](_0x153c1e){const _0x3edfb0={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x153c1e};return Appearance['getDefaultRenderState'](!![],![],_0x3edfb0);}['createPrimitives'](){function _0x23a563(_0x149a1a,_0xaa9d7a){return _0x2fa6f2(_0x149a1a,_0xaa9d7a- -0x673);}const _0x2a2358={};_0x2a2358['st']=0x0,_0x2a2358[_0x443c81(-0x18b,-0x1b0)]=0x1;const _0x128986={};_0x128986[_0x443c81(-0x297,-0x2dd)]=!![];function _0x443c81(_0x48ec28,_0x3fa9c1){return _0x3bbde2(_0x48ec28- -0x18f,_0x3fa9c1);}const _0x2b2ede={};_0x2b2ede['enabled']=!![],_0x2b2ede['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x2b2ede[_0x443c81(-0x1eb,-0x1bb)]=WebGLRenderingContext['SRC_ALPHA'],_0x2b2ede[_0x443c81(-0x239,-0x216)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x1ba1e9={};_0x1ba1e9['viewport']=undefined,_0x1ba1e9[_0x23a563(-0xed,-0x158)]=_0x128986,_0x1ba1e9['depthMask']=!![],_0x1ba1e9['blending']=_0x2b2ede;const _0x49b001=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x2a2358,'geometry':this[_0x23a563(-0x1a8,-0x171)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this[_0x23a563(-0x294,-0x25d)][_0x443c81(-0x261,-0x204)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x443c81(-0x299,-0x2b2)]['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this['computing'][_0x23a563(-0x2a8,-0x251)],'colorTable':()=>this[_0x23a563(-0x186,-0x209)],'domain':()=>{function _0x41aace(_0x3701a0,_0x5ad640){return _0x23a563(_0x5ad640,_0x3701a0-0x6ca);}var _0x2de3e1,_0x482d40;const _0x3699c1=new Cartesian2(((_0x2de3e1=this[_0x41aace(0x472,0x4af)][_0x51c51e(0x5d,-0x22)])===null||_0x2de3e1===void 0x0?void 0x0:_0x2de3e1[_0x41aace(0x505,0x53f)])??this['computing'][_0x51c51e(0x43,0xd4)][_0x51c51e(0xc8,0x57)]['min'],((_0x482d40=this['options'][_0x41aace(0x47f,0x50f)])===null||_0x482d40===void 0x0?void 0x0:_0x482d40[_0x41aace(0x4c7,0x4a6)])??this[_0x51c51e(0xb,-0x34)]['windData']['speed']['max']);function _0x51c51e(_0x136d06,_0xb0c8b5){return _0x443c81(_0xb0c8b5-0x265,_0x136d06);}return _0x3699c1;},'displayRange':()=>{var _0x5a93d2,_0x48b91a;const _0x96e12f=new Cartesian2(((_0x5a93d2=this['options']['displayRange'])===null||_0x5a93d2===void 0x0?void 0x0:_0x5a93d2['min'])??this['computing']['windData']['speed']['min'],((_0x48b91a=this['options']['displayRange'])===null||_0x48b91a===void 0x0?void 0x0:_0x48b91a['max'])??this['computing'][_0x5aa88a(0x27f,0x1f8)][_0x5aa88a(0x202,0x1b1)][_0x1adf1d(0x35f,0x2e0)]);function _0x5aa88a(_0xc476be,_0x12a228){return _0x443c81(_0xc476be-0x410,_0x12a228);}function _0x1adf1d(_0x41cdb3,_0x9de125){return _0x443c81(_0x41cdb3-0x59e,_0x9de125);}return _0x96e12f;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this[_0x23a563(-0x14f,-0x184)]['drawingBufferHeight'],'pixelSize':()=>this[_0x23a563(-0xf8,-0x180)]['pixelSize'],'lineWidth':()=>{const _0x5de407={};_0x5de407['min']=0x1,_0x5de407['max']=0x2;const _0x3c2b55=this['options']['lineWidth']||_0x5de407;return new Cartesian2(_0x3c2b55['min'],_0x3c2b55['max']);},'lineLength':()=>{const _0x1154a1={};_0x1154a1['min']=0x14,_0x1154a1[_0x26565a(0x4a3,0x49c)]=0x64;function _0x26565a(_0x563f80,_0x51633b){return _0x443c81(_0x563f80-0x6e2,_0x51633b);}function _0x137ad4(_0x3bd498,_0x321539){return _0x23a563(_0x3bd498,_0x321539-0x43c);}const _0x27b96a=this['options']['lineLength']||_0x1154a1;return new Cartesian2(_0x27b96a['min'],_0x27b96a[_0x26565a(0x4a3,0x532)]);},'is3D':()=>this[_0x23a563(-0x16c,-0x180)]['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures'][_0x443c81(-0x1e4,-0x268)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x443c81(-0x1cd,-0x200)](_0x1ba1e9)}),_0xf11114={};return _0xf11114[_0x443c81(-0x1c7,-0x206)]=_0x49b001,_0xf11114;}['onParticlesTextureSizeChange'](){function _0x1aa536(_0x585b78,_0x41ba51){return _0x3bbde2(_0x585b78- -0x4f,_0x41ba51);}const _0x276ced=this['createSegmentsGeometry']();this['primitives'][_0x1aa536(-0x87,-0x5c)]['geometry']=_0x276ced;function _0x5872ff(_0x4a9b46,_0xd4d623){return _0x3bbde2(_0x4a9b46- -0x18f,_0xd4d623);}const _0x135cc1={};_0x135cc1[_0x5872ff(-0x1c0,-0x16f)]=this['context'],_0x135cc1['geometry']=_0x276ced,_0x135cc1['attributeLocations']=this['primitives']['segments'][_0x1aa536(-0xcb,-0xe3)],_0x135cc1['bufferUsage']=BufferUsage[_0x5872ff(-0x241,-0x270)];const _0x1e4bc7=VertexArray['fromGeometry'](_0x135cc1);this[_0x5872ff(-0x181,-0x15b)]['segments'][_0x1aa536(-0x131,-0xc0)]&&(this['primitives'][_0x5872ff(-0x1c7,-0x15b)]['commandToExecute']['vertexArray']=_0x1e4bc7);}['onColorTableChange'](){this['colorTable']['destroy'](),this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x3273b4){function _0x4626fe(_0xeeb745,_0x306eb4){return _0x2fa6f2(_0x306eb4,_0xeeb745- -0x598);}function _0x2d0dc5(_0x5dd32c,_0x16a75b){return _0x2fa6f2(_0x16a75b,_0x5dd32c- -0x14e);}const _0x5e4169=_0x3273b4['colors']&&JSON[_0x2d0dc5(0x39b,0x425)](_0x3273b4[_0x4626fe(-0xb7,-0x10b)])!==JSON[_0x2d0dc5(0x39b,0x368)](this[_0x2d0dc5(0x2cd,0x2ad)][_0x2d0dc5(0x393,0x41b)]);this['options']=deepMerge(_0x3273b4,this['options']),_0x5e4169&&this['onColorTableChange']();}['destroy'](){Object['values'](this['framebuffers'])[_0x2d0868(0x337,0x3c2)](_0x462285=>{function _0x39ec62(_0xa6dbe5,_0x140cc0){return _0x2d0868(_0x140cc0- -0x168,_0xa6dbe5);}_0x462285[_0x39ec62(0x111,0x12f)]();}),Object['values'](this['primitives'])['forEach'](_0x5222f6=>{function _0x150667(_0x49db82,_0x409e58){return _0x2d0868(_0x409e58- -0x23a,_0x49db82);}_0x5222f6[_0x150667(0x1a,0x5d)]();});function _0x2d0868(_0x3a8322,_0x43369f){return _0x3bbde2(_0x3a8322-0x34a,_0x43369f);}this['colorTable']['destroy']();}}function _0x235d(_0x31b189,_0x513798){const _0x2ba2da=_0x2ba2();return _0x235d=function(_0x235d8c,_0x57fc6f){_0x235d8c=_0x235d8c-0x11d;let _0x32a7e=_0x2ba2da[_0x235d8c];return _0x32a7e;},_0x235d(_0x31b189,_0x513798);}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x2d322d,_0x2677cb,_0x16cf67,_0x357324,_0xc1fe25){function _0x2524ff(_0x5dba76,_0x251741){return _0x2fa6f2(_0x251741,_0x5dba76- -0x490);}function _0x1660df(_0x1e8396,_0x267e7e){return _0x2fa6f2(_0x267e7e,_0x1e8396- -0x5fe);}this[_0x1660df(-0x10f,-0x192)]=_0x2d322d,this['options']=_0x16cf67,this['viewerParameters']=_0x357324,this['computing']=new WindParticlesComputing(_0x2d322d,_0x2677cb,_0x16cf67,_0x357324,_0xc1fe25),this['rendering']=new WindParticlesRendering(_0x2d322d,_0x16cf67,_0x357324,this[_0x1660df(-0x1e8,-0x219)]),this['clearFramebuffers']();}['getPrimitives'](){function _0x4156b5(_0x1efd8e,_0x25116b){return _0x2fa6f2(_0x1efd8e,_0x25116b- -0x202);}const _0x113a88=[this[_0x13dc03(0x353,0x33e)][_0x4156b5(0x2d0,0x32c)]['calculateSpeed'],this['computing']['primitives'][_0x13dc03(0x441,0x49a)],this['computing']['primitives']['postProcessingPosition'],this['rendering']['primitives']['segments']];function _0x13dc03(_0x4f828c,_0x5e294b){return _0x2fa6f2(_0x5e294b,_0x4f828c- -0xc3);}return _0x113a88;}[_0x3bbde2(-0x32,0x4a)](){function _0x3a2c70(_0x3baf2f,_0x3c47a6){return _0x2fa6f2(_0x3c47a6,_0x3baf2f- -0x4e);}function _0x4bff27(_0x324ff1,_0xc1cbc5){return _0x3bbde2(_0xc1cbc5-0x374,_0x324ff1);}const _0x29549f=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});Object[_0x4bff27(0x338,0x377)](this[_0x3a2c70(0x3cc,0x35e)][_0x4bff27(0x39c,0x32c)])[_0x3a2c70(0x4bf,0x498)](_0x4dd8d1=>{function _0x2e6d2d(_0x3a9ccb,_0x5a2c79){return _0x3a2c70(_0x5a2c79- -0x328,_0x3a9ccb);}_0x29549f['framebuffer']=this['rendering']['framebuffers'][_0x4dd8d1],_0x29549f[_0x2e6d2d(0x1aa,0x151)](this['context']);});}['changeOptions'](_0x35bcb2){let _0x4d93e4=![];_0x35bcb2['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x35bcb2[_0x2793d2(0x35d,0x3ad)]&&(_0x4d93e4=!![]);const _0x5ba744=deepMerge(_0x35bcb2,this['options']);function _0x198b2f(_0xd03806,_0x51819e){return _0x3bbde2(_0xd03806-0x5f5,_0x51819e);}function _0x2793d2(_0x584706,_0x33cefd){return _0x3bbde2(_0x33cefd-0x465,_0x584706);}if(_0x5ba744['particlesTextureSize']<0x1)throw new Error(_0x2793d2(0x396,0x3fd));this[_0x198b2f(0x4f0,0x46e)]=_0x5ba744,this['rendering']['updateOptions'](_0x35bcb2),this['computing']['updateOptions'](_0x35bcb2),_0x4d93e4&&(this['computing']['destroyParticlesTextures'](),this['computing']['createParticlesTextures'](),this['rendering'][_0x198b2f(0x4f3,0x489)]());}['applyViewerParameters'](_0x19cf67){this['viewerParameters']=_0x19cf67;function _0x498d4a(_0x19e121,_0x186ca0){return _0x3bbde2(_0x19e121-0x446,_0x186ca0);}this[_0x498d4a(0x33c,0x320)][_0x5489f2(0x4a9,0x464)]=_0x19cf67;function _0x5489f2(_0x153ed6,_0x4a8b59){return _0x2fa6f2(_0x153ed6,_0x4a8b59- -0x8f);}this['rendering'][_0x5489f2(0x498,0x464)]=_0x19cf67;}['destroy'](){this[_0x5b76ab(0xaf,0x9c)]['destroy']();function _0x5b76ab(_0x1ad60a,_0x918746){return _0x3bbde2(_0x918746-0x1a6,_0x1ad60a);}this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace[_0x3bbde2(-0xd9,-0x16a)],BaseLayer$1=mars3d__namespace[_0x3bbde2(-0x4,0x83)][_0x2fa6f2(0x469,0x415)],_0x39dd6e={};_0x39dd6e['min']=0x1,_0x39dd6e['max']=0x2;const _0x3ae15d={};_0x3ae15d['min']=0x14,_0x3ae15d['max']=0x64;const _0x5368aa={};_0x5368aa['particlesTextureSize']=0x64,_0x5368aa['fixedHeight']=0x0,_0x5368aa['lineWidth']=_0x39dd6e,_0x5368aa['lineLength']=_0x3ae15d,_0x5368aa['speedFactor']=0x1,_0x5368aa['dropRate']=0.003,_0x5368aa[_0x3bbde2(-0x9c,-0x17)]=0.001,_0x5368aa['colors']=['rgb(206,255,255)'],_0x5368aa['flipY']=![],_0x5368aa['dynamic']=!![];const DEF_OPTIONS=_0x5368aa;class WindLayer extends BaseLayer$1{constructor(_0x35614b={}){_0x35614b={...DEF_OPTIONS,..._0x35614b},super(_0x35614b),this['_setOptionsHook'](_0x35614b,_0x35614b);}get['layer'](){return this['primitives'];}get[_0x3bbde2(-0x6c,-0x9f)](){return this['options']['data'];}set[_0x3bbde2(-0x6c,-0xbd)](_0x4f84e4){function _0x44212d(_0x2ba07d,_0x2747f8){return _0x3bbde2(_0x2ba07d-0x328,_0x2747f8);}this['options'][_0x44212d(0x2bc,0x2d9)]=_0x4f84e4,this['setData'](_0x4f84e4);}get['colors'](){return this['options']['colors'];}set['colors'](_0x1732c6){this[_0x9fd288(0x297,0x323)][_0x9fd288(0x35d,0x31b)]=_0x1732c6;function _0x9fd288(_0x3b554b,_0x868128){return _0x3bbde2(_0x3b554b-0x39c,_0x868128);}const _0x4af16b={};function _0x5b3131(_0xf1e24d,_0x119ca5){return _0x3bbde2(_0xf1e24d-0x227,_0x119ca5);}_0x4af16b['colors']=_0x1732c6,this[_0x9fd288(0x28f,0x212)](this[_0x5b3131(0x122,0x17b)],_0x4af16b);}['_mountedHook'](){}[_0x2fa6f2(0x4bd,0x4ca)](){this['scene']=this[_0x26ef51(0x191,0x157)]['scene'],this['camera']=this['_map'][_0x26ef51(0xb4,0x10e)];this['options']['data']&&this['setData'](this[_0x26ef51(0xc8,0xd7)]['data']);if(!this['windData'])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene'][_0x26ef51(0x1af,0x151)]};function _0x389f18(_0x4cf67e,_0x3ec2cc){return _0x2fa6f2(_0x4cf67e,_0x3ec2cc- -0x61a);}this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this[_0x389f18(-0x1e1,-0x19d)]['context'],this['windData'],this['options'],this[_0x389f18(-0x9a,-0x127)],this['scene']);function _0x26ef51(_0x3322ec,_0x2ceb9e){return _0x2fa6f2(_0x3322ec,_0x2ceb9e- -0x344);}this['primitives']=this['particleSystem']['getPrimitives'](),this['primitives'][_0x26ef51(0x18c,0x1c9)](_0xc48ae8=>{function _0x22c6cf(_0x11b4e8,_0x1e5d0b){return _0x26ef51(_0x1e5d0b,_0x11b4e8- -0xb9);}function _0x3af85b(_0x48f4d8,_0x188509){return _0x26ef51(_0x48f4d8,_0x188509- -0x88);}this[_0x22c6cf(0x80,0xe0)][_0x3af85b(0x121,0x162)][_0x22c6cf(0xb9,0xce)](_0xc48ae8);}),this['camera'][_0x389f18(-0x1ba,-0x14c)]=0.01,this['camera'][_0x389f18(-0x189,-0x141)]['addEventListener'](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete']['addEventListener'](this[_0x389f18(-0x1f9,-0x195)][_0x389f18(-0x188,-0x172)](this)),window[_0x26ef51(0x1ff,0x19a)]('resize',this['updateViewerParameters'][_0x26ef51(0x122,0x164)](this));}['_removedHook'](){this[_0x3918b2(-0x30,-0x80)]['changed'][_0x3918b2(-0x46,-0x8e)](this[_0x3918b2(-0x23,-0x4d)]['bind'](this));function _0x3918b2(_0x1eb423,_0x114693){return _0x2fa6f2(_0x1eb423,_0x114693- -0x4d2);}this[_0xb0319a(0x17d,0x1c9)][_0x3918b2(-0xd9,-0xaf)]['removeEventListener'](this['updateViewerParameters'][_0xb0319a(0x1ea,0x1f4)](this));function _0xb0319a(_0xd9e9b2,_0xd03c90){return _0x3bbde2(_0xd03c90-0x26c,_0xd9e9b2);}window['removeEventListener'](_0xb0319a(0x14b,0x18b),this[_0x3918b2(-0x4d,-0x4d)]['bind'](this)),this['primitives']&&(this['primitives'][_0x3918b2(0xb6,0x3b)](_0x33e6c4=>{function _0x5da124(_0x4a1936,_0x1953b6){return _0x3918b2(_0x1953b6,_0x4a1936-0x4dc);}this['scene']['primitives'][_0x5da124(0x46e,0x4a2)](_0x33e6c4);}),delete this['primitives']),this[_0xb0319a(0x1de,0x1ae)]&&(this['particleSystem'][_0x3918b2(-0xe4,-0x65)](),delete this['particleSystem']);}[_0x2fa6f2(0x522,0x4d4)](_0x1b9bd8,_0x54de00){this[_0x4735f2(0x34c,0x386)]=this['processWindData'](_0x1b9bd8);function _0x4735f2(_0x27a884,_0x3b5350){return _0x3bbde2(_0x27a884-0x34e,_0x3b5350);}if(_0x54de00){this['_removedHook'](),this['_addedHook']();return;}function _0xb29d25(_0x23b960,_0x404cbe){return _0x2fa6f2(_0x404cbe,_0x23b960-0x4e);}this['particleSystem']?(this[_0xb29d25(0x4b0,0x478)]['computing']['updateWindData'](this['windData']),this['scene'][_0xb29d25(0x4cc,0x4b6)]()):this['_addedHook']();}['_setOptionsHook'](_0x1e8c05,_0x4fbf3e){function _0x58c322(_0x33d84a,_0x7e4f50){return _0x3bbde2(_0x33d84a-0x106,_0x7e4f50);}function _0x4a3baa(_0x2561ad,_0x20daa2){return _0x3bbde2(_0x20daa2-0x424,_0x2561ad);}this['particleSystem']&&(this['particleSystem']['changeOptions'](_0x4fbf3e),this[_0x58c322(0x63,0xad)][_0x58c322(0x64,-0x2)]());}[_0x2fa6f2(0x48b,0x469)](_0x1488e9){var _0x2341e8,_0x3177a2;const _0x13e5f6={..._0x1488e9},_0x4abb53=_0x13e5f6;!_0x4abb53['height']&&_0x4abb53['rows']&&(_0x4abb53[_0x3cb9d4(0x46f,0x4dd)]=_0x4abb53['rows']);!_0x4abb53['width']&&_0x4abb53['cols']&&(_0x4abb53[_0x3cb9d4(0x4bd,0x443)]=_0x4abb53[_0x1835d9(0x393,0x3ab)]);!_0x4abb53['bounds']&&(_0x4abb53['bounds']={'west':_0x4abb53[_0x1835d9(0x3b1,0x3de)],'south':_0x4abb53[_0x3cb9d4(0x4ff,0x4f9)],'east':_0x4abb53[_0x3cb9d4(0x4d9,0x4b0)],'north':_0x4abb53[_0x3cb9d4(0x4b3,0x465)]});function _0x1835d9(_0x115887,_0x2d189f){return _0x3bbde2(_0x115887-0x3d6,_0x2d189f);}if(!_0x4abb53['u']){const _0x3ae201={};_0x3ae201[_0x3cb9d4(0x4d7,0x46c)]=_0x1488e9['udata'],_0x3ae201['min']=_0x1488e9['umin'],_0x3ae201[_0x3cb9d4(0x4e5,0x462)]=_0x1488e9[_0x1835d9(0x325,0x39f)],_0x4abb53['u']=_0x3ae201;}if(!_0x4abb53['v']){const _0x1389ba={};_0x1389ba['array']=_0x1488e9['vdata'],_0x1389ba['min']=_0x1488e9[_0x3cb9d4(0x420,0x4b1)],_0x1389ba[_0x3cb9d4(0x418,0x462)]=_0x1488e9['vmax'],_0x4abb53['v']=_0x1389ba;}function _0x3cb9d4(_0x4dad85,_0x1f5fd5){return _0x3bbde2(_0x1f5fd5-0x512,_0x4dad85);}if(((_0x2341e8=_0x4abb53[_0x3cb9d4(0x4e8,0x493)])===null||_0x2341e8===void 0x0?void 0x0:_0x2341e8['min'])===undefined||((_0x3177a2=_0x4abb53['speed'])===null||_0x3177a2===void 0x0?void 0x0:_0x3177a2[_0x1835d9(0x326,0x35e)])===undefined||_0x4abb53['speed']['array']===undefined){const _0x5b4f2d={'array':new Float32Array(_0x4abb53['u'][_0x3cb9d4(0x47e,0x46c)]['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x1c5370=0x0;_0x1c5370<_0x4abb53['u']['array']['length'];_0x1c5370++){_0x5b4f2d['array'][_0x1c5370]=Math['sqrt'](_0x4abb53['u']['array'][_0x1c5370]*_0x4abb53['u']['array'][_0x1c5370]+_0x4abb53['v'][_0x3cb9d4(0x48c,0x46c)][_0x1c5370]*_0x4abb53['v'][_0x3cb9d4(0x3e8,0x46c)][_0x1c5370]),_0x5b4f2d['array'][_0x1c5370]!==0x0&&(_0x5b4f2d[_0x3cb9d4(0x482,0x4a0)]=Math['min'](_0x5b4f2d[_0x1835d9(0x364,0x351)],_0x5b4f2d['array'][_0x1c5370]),_0x5b4f2d[_0x1835d9(0x326,0x31a)]=Math[_0x1835d9(0x326,0x2a6)](_0x5b4f2d[_0x1835d9(0x326,0x2c8)],_0x5b4f2d[_0x3cb9d4(0x44c,0x46c)][_0x1c5370]));}_0x4abb53['speed']=_0x5b4f2d;}return _0x4abb53;}['updateViewerParameters'](){var _0x509170;const _0x444ecd=this['scene'],_0x1b666d=_0x444ecd[_0x12d00d(-0x222,-0x1ae)],_0xc37d0b={};_0xc37d0b['x']=0x0,_0xc37d0b['y']=0x0;const _0x575c0={};_0x575c0['x']=0x0,_0x575c0['y']=_0x1b666d['clientHeight'];const _0x44e2b6={};_0x44e2b6['x']=_0x1b666d['clientWidth'],_0x44e2b6['y']=0x0;const _0x288444={};_0x288444['x']=_0x1b666d[_0x12d00d(-0x141,-0x191)],_0x288444['y']=_0x1b666d['clientHeight'];const _0x340c74=[_0xc37d0b,_0x575c0,_0x44e2b6,_0x288444];let _0x6fe3a8=0xb4;function _0x12d00d(_0xa887d0,_0x377717){return _0x3bbde2(_0x377717- -0x16d,_0xa887d0);}let _0x76164f=-0xb4;function _0x2868b1(_0x4a5212,_0x2f1aad){return _0x2fa6f2(_0x2f1aad,_0x4a5212- -0x439);}let _0x532625=0x5a,_0x2e1bf9=-0x5a,_0x259c4f=![];for(const _0x4d88ac of _0x340c74){const _0x3b870b=_0x444ecd[_0x2868b1(0x19,-0x70)]['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x4d88ac['x'],_0x4d88ac['y']),_0x444ecd[_0x2868b1(0x96,0xca)]['ellipsoid']);if(!_0x3b870b){_0x259c4f=!![];break;}const _0x146a31=_0x444ecd['globe']['ellipsoid'][_0x2868b1(0xd7,0x104)](_0x3b870b),_0x22596b=Cesium$1[_0x2868b1(0x76,0xcc)][_0x12d00d(-0x1f7,-0x228)](_0x146a31[_0x2868b1(0xe8,0x11f)]),_0x3300b3=Cesium$1[_0x2868b1(0x76,0x71)][_0x2868b1(0x2c,0xc)](_0x146a31['latitude']);_0x6fe3a8=Math[_0x12d00d(-0x160,-0x1df)](_0x6fe3a8,_0x22596b),_0x76164f=Math[_0x12d00d(-0x22b,-0x21d)](_0x76164f,_0x22596b),_0x532625=Math['min'](_0x532625,_0x3300b3),_0x2e1bf9=Math[_0x12d00d(-0x280,-0x21d)](_0x2e1bf9,_0x3300b3);}if(!_0x259c4f){const _0x405f15=new Cesium$1[(_0x2868b1(0x46,-0x7))](Math[_0x12d00d(-0x244,-0x21d)](this['windData']['bounds']['west'],_0x6fe3a8),Math['min'](this['windData']['bounds'][_0x2868b1(0x1a,0x10)],_0x76164f)),_0x3b127d=new Cesium$1[(_0x12d00d(-0x23c,-0x20e))](Math['max'](this[_0x12d00d(-0x1cc,-0x16f)][_0x2868b1(0xc0,0x54)]['south'],_0x532625),Math['min'](this[_0x2868b1(0xe5,0xe6)][_0x2868b1(0xc0,0xba)][_0x12d00d(-0x15e,-0x1d3)],_0x2e1bf9)),_0x5e094f=(_0x405f15['y']-_0x405f15['x'])*0.05,_0x4e10f0=(_0x3b127d['y']-_0x3b127d['x'])*0.05;_0x405f15['x']=Math['max'](this['windData']['bounds']['west'],_0x405f15['x']-_0x5e094f),_0x405f15['y']=Math['min'](this['windData'][_0x12d00d(-0x216,-0x194)][_0x12d00d(-0x253,-0x23a)],_0x405f15['y']+_0x5e094f),_0x3b127d['x']=Math[_0x12d00d(-0x247,-0x21d)](this['windData']['bounds']['south'],_0x3b127d['x']-_0x4e10f0),_0x3b127d['y']=Math[_0x12d00d(-0x188,-0x1df)](this['windData']['bounds'][_0x2868b1(0x81,-0x8)],_0x3b127d['y']+_0x4e10f0),this['viewerParameters'][_0x12d00d(-0x216,-0x1eb)]=_0x405f15,this['viewerParameters']['latRange']=_0x3b127d;const _0x1e78dd=this[_0x12d00d(-0x1f4,-0x16f)]['bounds']['east']-this['windData']['bounds'][_0x12d00d(-0x215,-0x232)],_0x55aa0f=this[_0x2868b1(0xe5,0x55)][_0x2868b1(0xc0,0x56)]['north']-this['windData']['bounds']['south'],_0x15efe6=(_0x405f15['y']-_0x405f15['x'])/_0x1e78dd,_0x22bfe2=(_0x3b127d['y']-_0x3b127d['x'])/_0x55aa0f,_0x44a751=Math['min'](_0x15efe6,_0x22bfe2),_0x1bda78=0x3e8*_0x44a751;_0x1bda78>0x0&&(this[_0x12d00d(-0x218,-0x19a)][_0x12d00d(-0x1ff,-0x1e3)]=Math['max'](0x0,Math['min'](0x3e8,_0x1bda78)));}this[_0x12d00d(-0x136,-0x19a)][_0x2868b1(0x1c,-0x16)]=this['scene'][_0x12d00d(-0x289,-0x1f8)],(_0x509170=this['particleSystem'])===null||_0x509170===void 0x0||_0x509170[_0x2868b1(0x3e,-0x33)](this[_0x2868b1(0xba,0x98)]);}['getDataAtLonLat'](_0x673339,_0x2d65a6){const {bounds:_0x27f1e0,width:_0x577c2a,height:_0x6c67c4,u:_0x309aa1,v:_0x4d8fc2,speed:_0x4e8ba2}=this['windData'],{flipY:_0x5185bb}=this[_0x24885e(0x1,-0x38)];if(_0x673339<_0x27f1e0['west']||_0x673339>_0x27f1e0['east']||_0x2d65a6<_0x27f1e0['south']||_0x2d65a6>_0x27f1e0['north'])return null;const _0x535851=(_0x673339-_0x27f1e0['west'])/(_0x27f1e0['east']-_0x27f1e0[_0x4a2639(0x481,0x4bc)])*(_0x577c2a-0x1);let _0x13044f=(_0x2d65a6-_0x27f1e0['south'])/(_0x27f1e0[_0x24885e(0xd4,0x67)]-_0x27f1e0['south'])*(_0x6c67c4-0x1);_0x5185bb&&(_0x13044f=_0x6c67c4-0x1-_0x13044f);const _0x137ab9=Math['floor'](_0x535851);function _0x24885e(_0x37d8e2,_0x2409a0){return _0x2fa6f2(_0x37d8e2,_0x2409a0- -0x453);}const _0x2002cd=Math['floor'](_0x13044f),_0x5c9e71=Math['floor'](_0x535851),_0x2133f6=Math[_0x24885e(0x65,0x5b)](_0x5c9e71+0x1,_0x577c2a-0x1),_0x49fb96=Math['floor'](_0x13044f),_0x5ccb24=Math['min'](_0x49fb96+0x1,_0x6c67c4-0x1),_0x70ee46=_0x535851-_0x5c9e71,_0x53cd98=_0x13044f-_0x49fb96,_0x5db2b3=_0x2002cd*_0x577c2a+_0x137ab9,_0x33c7ba=_0x49fb96*_0x577c2a+_0x5c9e71,_0x48aa62=_0x49fb96*_0x577c2a+_0x2133f6,_0x3210ae=_0x5ccb24*_0x577c2a+_0x5c9e71,_0x128803=_0x5ccb24*_0x577c2a+_0x2133f6,_0x282b0f=_0x309aa1[_0x4a2639(0x530,0x4db)][_0x33c7ba],_0x563012=_0x309aa1['array'][_0x48aa62],_0x48cdc8=_0x309aa1['array'][_0x3210ae],_0x1b82df=_0x309aa1['array'][_0x128803],_0x4bfb9e=(0x1-_0x70ee46)*(0x1-_0x53cd98)*_0x282b0f+_0x70ee46*(0x1-_0x53cd98)*_0x563012+(0x1-_0x70ee46)*_0x53cd98*_0x48cdc8+_0x70ee46*_0x53cd98*_0x1b82df,_0x32f84b=_0x4d8fc2['array'][_0x33c7ba],_0x41d846=_0x4d8fc2['array'][_0x48aa62],_0x31034d=_0x4d8fc2[_0x4a2639(0x474,0x4db)][_0x3210ae],_0x3d93ac=_0x4d8fc2['array'][_0x128803],_0x50bd2e=(0x1-_0x70ee46)*(0x1-_0x53cd98)*_0x32f84b+_0x70ee46*(0x1-_0x53cd98)*_0x41d846+(0x1-_0x70ee46)*_0x53cd98*_0x31034d+_0x70ee46*_0x53cd98*_0x3d93ac,_0xb6bb3f=Math['sqrt'](_0x4bfb9e*_0x4bfb9e+_0x50bd2e*_0x50bd2e),_0x497fac={};function _0x4a2639(_0x4fadc0,_0x13de36){return _0x3bbde2(_0x13de36-0x581,_0x4fadc0);}_0x497fac['u']=_0x309aa1[_0x24885e(0x6e,0x27)][_0x5db2b3],_0x497fac['v']=_0x4d8fc2['array'][_0x5db2b3],_0x497fac['speed']=_0x4e8ba2[_0x24885e(-0x53,0x27)][_0x5db2b3];const _0x28ee8b={};_0x28ee8b['u']=_0x4bfb9e,_0x28ee8b['v']=_0x50bd2e,_0x28ee8b['speed']=_0xb6bb3f;const _0x535c56={};return _0x535c56['original']=_0x497fac,_0x535c56['interpolated']=_0x28ee8b,_0x535c56;}}mars3d__namespace['LayerUtil'][_0x2fa6f2(0x4cd,0x4b5)]('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){function _0x26cd05(_0x4290ff,_0x5b7bff){return _0x2fa6f2(_0x4290ff,_0x5b7bff-0xe9);}this['lng']=null,this['lat']=null,this[_0x26cd05(0x5b1,0x5ef)]=null,this[_0x462073(0x4b0,0x4af)]=null;function _0x462073(_0x571ded,_0x43ed5d){return _0x2fa6f2(_0x43ed5d,_0x571ded- -0x7a);}this['age']=null,this[_0x462073(0x427,0x4b8)]=null;}['destroy'](){for(const _0x38e482 in this){delete this[_0x38e482];}}}class CanvasWindField{constructor(_0xff01da){function _0x192b81(_0x5c368e,_0x58513e){return _0x2fa6f2(_0x58513e,_0x5c368e- -0xac);}this[_0x192b81(0x3a1,0x39e)](_0xff01da);}get['speedRate'](){return this['_speedRate'];}set['speedRate'](_0x38642a){function _0x216afe(_0x2a42b5,_0x3574cd){return _0x3bbde2(_0x2a42b5-0x47b,_0x3574cd);}this[_0x3a15b0(0x46e,0x406)]=(0x64-(_0x38642a>0x63?0x63:_0x38642a))*0x64;function _0x3a15b0(_0x2f7b93,_0x486b2b){return _0x2fa6f2(_0x486b2b,_0x2f7b93-0x23);}this['_calc_speedRate']=[(this[_0x216afe(0x419,0x42a)]-this['xmin'])/this['_speedRate'],(this[_0x216afe(0x3ce,0x3a8)]-this['ymin'])/this['_speedRate']];}get[_0x3bbde2(-0x2f,0x42)](){return this['_maxAge'];}set[_0x2fa6f2(0x4b5,0x4f1)](_0xd0e3e9){function _0x25103f(_0x1d9743,_0x3c3081){return _0x2fa6f2(_0x3c3081,_0x1d9743- -0x33);}this[_0x25103f(0x450,0x4c6)]=_0xd0e3e9;}['setOptions'](_0x4a1573){this[_0x36ad53(0xe3,0xd0)]=_0x4a1573;function _0x36ad53(_0x39f705,_0x483b52){return _0x2fa6f2(_0x483b52,_0x39f705- -0x338);}this[_0x36ad53(0x1b9,0x167)]=_0x4a1573[_0x1898c1(0x36a,0x3aa)]||0x78,this['speedRate']=_0x4a1573['speedRate']||0x32,this[_0x36ad53(0x1d1,0x1c2)]=[];const _0x37d829=_0x4a1573['particlesNumber']||0x1000;function _0x1898c1(_0x60fef7,_0x39093c){return _0x2fa6f2(_0x39093c,_0x60fef7- -0x187);}for(let _0x40724=0x0;_0x40724<_0x37d829;_0x40724++){const _0x3bff0d=this['_randomParticle'](new CanvasParticle());this[_0x1898c1(0x382,0x310)][_0x1898c1(0x308,0x2c2)](_0x3bff0d);}}['setDate'](_0x4b2a80){this['rows']=_0x4b2a80[_0x299b86(0x372,0x3ea)],this[_0x510ce9(0x521,0x5a0)]=_0x4b2a80[_0x510ce9(0x521,0x548)],this[_0x510ce9(0x53f,0x5c6)]=_0x4b2a80['xmin'],this['xmax']=_0x4b2a80['xmax'],this[_0x299b86(0x376,0x33a)]=_0x4b2a80[_0x510ce9(0x54b,0x5a6)],this[_0x510ce9(0x4b7,0x527)]=_0x4b2a80[_0x510ce9(0x4b7,0x44a)],this[_0x510ce9(0x4a7,0x532)]=[];function _0x299b86(_0x4c5fbf,_0x5b9993){return _0x2fa6f2(_0x5b9993,_0x4c5fbf- -0x191);}const _0x59e90e=_0x4b2a80[_0x510ce9(0x472,0x44e)],_0x3d73ee=_0x4b2a80[_0x510ce9(0x4b0,0x420)];let _0x33eca0=![];_0x59e90e[_0x510ce9(0x4b5,0x48c)]===this[_0x299b86(0x372,0x3fa)]&&_0x59e90e[0x0]['length']===this['cols']&&(_0x33eca0=!![]);let _0x14b92e=0x0,_0x3f04c2=null,_0x1751c8=null;for(let _0x3c2355=0x0;_0x3c2355<this['rows'];_0x3c2355++){_0x3f04c2=[];for(let _0x3ccffe=0x0;_0x3ccffe<this[_0x299b86(0x34c,0x2e9)];_0x3ccffe++,_0x14b92e++){_0x33eca0?_0x1751c8=this['_calcUV'](_0x59e90e[_0x3c2355][_0x3ccffe],_0x3d73ee[_0x3c2355][_0x3ccffe]):_0x1751c8=this['_calcUV'](_0x59e90e[_0x14b92e],_0x3d73ee[_0x14b92e]),_0x3f04c2['push'](_0x1751c8);}this['grid']['push'](_0x3f04c2);}function _0x510ce9(_0xac2647,_0x5425cc){return _0x3bbde2(_0xac2647-0x564,_0x5425cc);}!this['options']['flipY']&&this['grid']['reverse']();}[_0x2fa6f2(0x4dd,0x482)](){delete this[_0x15203f(0x59e,0x5b7)],delete this[_0x15203f(0x578,0x556)],delete this['xmin'];function _0x36b9ab(_0x2fe5e6,_0x5963b3){return _0x2fa6f2(_0x2fe5e6,_0x5963b3- -0x459);}delete this['xmax'],delete this[_0x15203f(0x5a2,0x586)];function _0x15203f(_0x3a31d2,_0x1c93f6){return _0x2fa6f2(_0x1c93f6,_0x3a31d2-0x9b);}delete this['ymax'],delete this['grid'],delete this[_0x15203f(0x5a4,0x57d)];}['toGridXY'](_0x177924,_0xc6d523){const _0x4c36fe=(_0x177924-this[_0x58ee2c(0x1b0,0x22d)])/(this['xmax']-this[_0x54abe4(0xda,0x54)])*(this['cols']-0x1);function _0x54abe4(_0x2acfa5,_0xb37e8f){return _0x3bbde2(_0x2acfa5-0xff,_0xb37e8f);}const _0x4c16e0=(this[_0x54abe4(0x52,0x14)]-_0xc6d523)/(this[_0x54abe4(0x52,0x11)]-this[_0x54abe4(0xe6,0x155)])*(this['rows']-0x1);function _0x58ee2c(_0x2e2b01,_0x2356b8){return _0x3bbde2(_0x2356b8-0x252,_0x2e2b01);}return[_0x4c36fe,_0x4c16e0];}[_0x2fa6f2(0x4fa,0x47c)](_0xcb4cf9,_0x192969){function _0x1e2380(_0x3591f0,_0x4eedad){return _0x3bbde2(_0x4eedad-0x106,_0x3591f0);}function _0x3e5c1a(_0x2ce487,_0xe6cfbd){return _0x3bbde2(_0xe6cfbd- -0xec,_0x2ce487);}if(_0xcb4cf9<0x0||_0xcb4cf9>=this['cols']||_0x192969>=this['rows'])return[0x0,0x0,0x0];const _0x436b58=Math['floor'](_0xcb4cf9),_0x3b5258=Math[_0x3e5c1a(-0x1bf,-0x183)](_0x192969);if(_0x436b58===_0xcb4cf9&&_0x3b5258===_0x192969)return this[_0x3e5c1a(-0x1f5,-0x1a9)][_0x192969][_0xcb4cf9];const _0x19d603=_0x436b58+0x1,_0x1bf5c2=_0x3b5258+0x1,_0x323139=this[_0x3e5c1a(-0x10d,-0x190)](_0x436b58,_0x3b5258),_0x3be73e=this[_0x3e5c1a(-0x20d,-0x190)](_0x19d603,_0x3b5258),_0x5c5d81=this[_0x1e2380(0x4c,0x62)](_0x436b58,_0x1bf5c2),_0x801aa5=this['getUVByXY'](_0x19d603,_0x1bf5c2);let _0x4314f4=null;try{_0x4314f4=this[_0x1e2380(0x10f,0xcb)](_0xcb4cf9-_0x436b58,_0x192969-_0x3b5258,_0x323139,_0x3be73e,_0x5c5d81,_0x801aa5);}catch(_0x3ad48e){console[_0x3e5c1a(-0x1ce,-0x193)](_0xcb4cf9,_0x192969);}return _0x4314f4;}['_bilinearInterpolation'](_0x1260d6,_0x138b0b,_0x563908,_0x3967ea,_0x245da7,_0xd16926){const _0x3fb387=0x1-_0x1260d6,_0x9cd15b=0x1-_0x138b0b,_0x40a90b=_0x3fb387*_0x9cd15b,_0x56d5e9=_0x1260d6*_0x9cd15b,_0xaa5679=_0x3fb387*_0x138b0b,_0x14d442=_0x1260d6*_0x138b0b;function _0x335ff9(_0x48552f,_0x5633d3){return _0x2fa6f2(_0x5633d3,_0x48552f- -0x280);}const _0x11b97d=_0x563908[0x0]*_0x40a90b+_0x3967ea[0x0]*_0x56d5e9+_0x245da7[0x0]*_0xaa5679+_0xd16926[0x0]*_0x14d442,_0x3afa32=_0x563908[0x1]*_0x40a90b+_0x3967ea[0x1]*_0x56d5e9+_0x245da7[0x1]*_0xaa5679+_0xd16926[0x1]*_0x14d442;return this[_0x335ff9(0x1d0,0x1c9)](_0x11b97d,_0x3afa32);}[_0x2fa6f2(0x46c,0x450)](_0x2cb1ce,_0x8e4760){function _0x2add60(_0xc60fef,_0x187a01){return _0x3bbde2(_0xc60fef-0xa1,_0x187a01);}return[+_0x2cb1ce,+_0x8e4760,Math[_0x2add60(0xf,0x2a)](_0x2cb1ce*_0x2cb1ce+_0x8e4760*_0x8e4760)];}[_0x3bbde2(-0x8d,-0xa1)](_0x18738d,_0x2cd00b){if(!this['isInExtent'](_0x18738d,_0x2cd00b))return null;const _0x768482=this[_0x5583d7(0x3e4,0x3bd)](_0x18738d,_0x2cd00b),_0xac6a65=this[_0x5583d7(0x390,0x3df)](_0x768482[0x0],_0x768482[0x1]);function _0x3701ca(_0x3ef8f9,_0x35548d){return _0x3bbde2(_0x3ef8f9-0x9b,_0x35548d);}function _0x5583d7(_0x50ddf6,_0x43c626){return _0x3bbde2(_0x43c626-0x483,_0x50ddf6);}return _0xac6a65;}[_0x2fa6f2(0x429,0x457)](_0x107c1e,_0x5984d8){function _0x16afc2(_0x45d7f9,_0xe0796){return _0x2fa6f2(_0x45d7f9,_0xe0796- -0x648);}function _0x54b765(_0x38422f,_0x5dd91e){return _0x2fa6f2(_0x5dd91e,_0x38422f- -0x2b1);}return _0x107c1e>=this[_0x54b765(0x24a,0x1c8)]&&_0x107c1e<=this['xmax']&&_0x5984d8>=this[_0x54b765(0x256,0x25b)]&&_0x5984d8<=this['ymax']?!![]:![];}[_0x3bbde2(-0x2b,0x5a)](){const _0x425ad8=fRandomByfloat(this['xmin'],this['xmax']),_0x235339=fRandomByfloat(this['ymin'],this['ymax']),_0x564d0c={};function _0x1244c4(_0x596b57,_0x4f0c38){return _0x2fa6f2(_0x596b57,_0x4f0c38- -0x51c);}return _0x564d0c['lat']=_0x235339,_0x564d0c[_0x1244c4(-0x8d,-0xa7)]=_0x425ad8,_0x564d0c;}['getParticles'](){let _0x2de222,_0x4de6ee,_0x3e25f4;for(let _0x3bce55=0x0,_0xdea997=this['particles']['length'];_0x3bce55<_0xdea997;_0x3bce55++){let _0x18c85f=this['particles'][_0x3bce55];_0x18c85f['age']<=0x0&&(_0x18c85f=this[_0x462cbc(0x344,0x37a)](_0x18c85f));if(_0x18c85f['age']>0x0){const _0x53e1ab=_0x18c85f['tlng'],_0x4d0122=_0x18c85f['tlat'];_0x3e25f4=this['getUVByPoint'](_0x53e1ab,_0x4d0122),_0x3e25f4?(_0x2de222=_0x53e1ab+this['_calc_speedRate'][0x0]*_0x3e25f4[0x0],_0x4de6ee=_0x4d0122+this['_calc_speedRate'][0x1]*_0x3e25f4[0x1],_0x18c85f[_0x462cbc(0x399,0x336)]=_0x53e1ab,_0x18c85f['lat']=_0x4d0122,_0x18c85f['tlng']=_0x2de222,_0x18c85f[_0x462cbc(0x386,0x3eb)]=_0x4de6ee,_0x18c85f[_0x5ee52d(0xc6,0xe6)]=_0x3e25f4[0x2],_0x18c85f[_0x5ee52d(0x137,0xae)]--):_0x18c85f['age']=0x0;}}function _0x462cbc(_0xfb41df,_0x4aeeb7){return _0x3bbde2(_0x4aeeb7-0x3e1,_0xfb41df);}function _0x5ee52d(_0x36ca47,_0x37da65){return _0x3bbde2(_0x36ca47-0x145,_0x37da65);}return this['particles'];}[_0x2fa6f2(0x42b,0x4b9)](_0x909cdf){let _0x122759,_0x2f5bc9;for(let _0x35567f=0x0;_0x35567f<0x1e;_0x35567f++){_0x122759=this['getRandomLatLng'](),_0x2f5bc9=this['getUVByPoint'](_0x122759['lng'],_0x122759[_0x5ce1c3(0x43,-0x46)]);if(_0x2f5bc9&&_0x2f5bc9[0x2]>0x0)break;}if(!_0x2f5bc9)return _0x909cdf;const _0x598cf8=_0x122759['lng']+this['_calc_speedRate'][0x0]*_0x2f5bc9[0x0],_0x40dd0f=_0x122759['lat']+this['_calc_speedRate'][0x1]*_0x2f5bc9[0x1];_0x909cdf['lng']=_0x122759[_0x5ce1c3(-0x23,-0x68)],_0x909cdf['lat']=_0x122759['lat'];function _0x5ce1c3(_0x4545c8,_0x522c9e){return _0x2fa6f2(_0x4545c8,_0x522c9e- -0x4dd);}_0x909cdf['tlng']=_0x598cf8,_0x909cdf['tlat']=_0x40dd0f,_0x909cdf[_0x56a635(-0x169,-0x154)]=Math['round'](0xa+Math[_0x56a635(-0x21b,-0x206)]()*this['maxAge']);function _0x56a635(_0x4029a7,_0x133954){return _0x2fa6f2(_0x133954,_0x4029a7- -0x67b);}return _0x909cdf['speed']=_0x2f5bc9[0x2],_0x909cdf;}['destroy'](){for(const _0x465dcc in this){delete this[_0x465dcc];}}}function fRandomByfloat(_0x54147d,_0x4bb49d){return _0x54147d+Math['random']()*(_0x4bb49d-_0x54147d);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];function _0x3bbde2(_0x3199fa,_0x3e33a8){return _0x235d(_0x3199fa- -0x22c,_0x3e33a8);}class CanvasWindLayer extends BaseLayer{constructor(_0x15b681={}){super(_0x15b681);function _0x484e77(_0x27a8cd,_0x1ee17b){return _0x3bbde2(_0x1ee17b-0x4b7,_0x27a8cd);}this['_setOptionsHook'](_0x15b681);function _0x33ded4(_0x1ae720,_0x2d4e51){return _0x2fa6f2(_0x2d4e51,_0x1ae720- -0x5d7);}this['canvas']=null,_0x15b681['colors']&&_0x15b681[_0x33ded4(-0x12a,-0x1b5)]&&(this[_0x33ded4(-0xab,-0x5e)]=new mars3d__namespace['ColorRamp'](_0x15b681));}[_0x3bbde2(-0x10d,-0xe0)](_0x36c5ab,_0x214e2e){this[_0x3f2866(-0x158,-0xcb)]=0x3e8/(_0x36c5ab[_0x1f61ac(0x16a,0x120)]||0xa),this[_0x1f61ac(0xc0,0xed)]=this['options']['pointerEvents']??![];function _0x1f61ac(_0x5c1631,_0x5aa10e){return _0x3bbde2(_0x5aa10e-0x1da,_0x5c1631);}this[_0x1f61ac(0x1d7,0x1d9)]=_0x36c5ab[_0x3f2866(-0xd7,-0x146)]||'#ffffff',this['lineWidth']=_0x36c5ab[_0x3f2866(-0x12d,-0x171)]||0x1,this[_0x3f2866(-0x1b0,-0x120)]=_0x36c5ab['fixedHeight']??0x0;function _0x3f2866(_0xb459a5,_0xfb0e3a){return _0x3bbde2(_0xb459a5- -0xd6,_0xfb0e3a);}this['flipY']=_0x36c5ab['flipY']??![],this['windField']&&this[_0x1f61ac(0x143,0x10e)]['setOptions'](_0x36c5ab);}get['layer'](){return this['canvas'];}get['canvasWidth'](){function _0x1da540(_0x331b70,_0x261db5){return _0x3bbde2(_0x261db5-0x37,_0x331b70);}return this[_0x1da540(-0xc2,-0x4e)]['scene']['canvas']['clientWidth'];}get[_0x3bbde2(-0x93,-0x9e)](){function _0x390ce4(_0x1d4f62,_0x3da5dc){return _0x3bbde2(_0x3da5dc- -0x15a,_0x1d4f62);}function _0x151620(_0x4fd5fc,_0x30cb00){return _0x3bbde2(_0x30cb00- -0x63,_0x4fd5fc);}return this[_0x151620(-0xa0,-0xe8)]['scene'][_0x151620(-0x12c,-0xa4)][_0x390ce4(-0x285,-0x244)];}get[_0x3bbde2(-0xf9,-0x16e)](){return this['_pointerEvents'];}set['pointerEvents'](_0x5b64cd){this['_pointerEvents']=_0x5b64cd;function _0x17aa60(_0x54ed2e,_0x238b31){return _0x3bbde2(_0x54ed2e-0x8a,_0x238b31);}if(!this['canvas'])return;function _0x344a11(_0x4d51ab,_0x59cc9b){return _0x2fa6f2(_0x4d51ab,_0x59cc9b- -0x223);}_0x5b64cd?this[_0x344a11(0x2eb,0x2bc)]['style']['pointer-events']='all':this[_0x344a11(0x238,0x2bc)]['style'][_0x17aa60(0x2f,0x32)]=_0x17aa60(-0x5c,-0x20);}get['particlesNumber'](){function _0x176437(_0x5b7b46,_0x5b1f79){return _0x3bbde2(_0x5b7b46-0x5ae,_0x5b1f79);}function _0x3e0ea6(_0x31a3cb,_0x2f3fc6){return _0x2fa6f2(_0x2f3fc6,_0x31a3cb- -0x492);}return this[_0x3e0ea6(-0x77,-0xe6)][_0x176437(0x586,0x582)];}set['particlesNumber'](_0x31e6e2){function _0x325cce(_0x45c5bd,_0x314a4f){return _0x2fa6f2(_0x45c5bd,_0x314a4f-0xe2);}this['options'][_0x325cce(0x5fa,0x5da)]=_0x31e6e2,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x3bbde2(-0x7,-0x3c)](){return this['options']['speedRate'];}set[_0x2fa6f2(0x4f5,0x519)](_0x36bd13){function _0x3d3daa(_0x57234d,_0x82e4bf){return _0x3bbde2(_0x82e4bf-0x5f,_0x57234d);}function _0x29c84f(_0x5c14e3,_0x298b85){return _0x3bbde2(_0x298b85-0x42,_0x5c14e3);}this[_0x29c84f(-0x63,-0xc3)][_0x29c84f(0x51,0x3b)]=_0x36bd13,this[_0x29c84f(-0xb8,-0x8a)]&&(this[_0x29c84f(-0xdd,-0x8a)][_0x29c84f(-0x17,0x3b)]=_0x36bd13);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0xeb2bb4){this['options'][_0xe4ac2d(-0x11a,-0x128)]=_0xeb2bb4;function _0xe4ac2d(_0x2f0479,_0x45e10d){return _0x2fa6f2(_0x2f0479,_0x45e10d- -0x619);}function _0x5d98fc(_0x2876f6,_0x1b1889){return _0x2fa6f2(_0x2876f6,_0x1b1889- -0x37c);}this['windField']&&(this[_0x5d98fc(0xc8,0xd8)]['maxAge']=_0xeb2bb4);}get['data'](){return this['windData'];}set[_0x2fa6f2(0x503,0x4b4)](_0x1a9b48){function _0x4bba46(_0x1e2fa1,_0x312d57){return _0x2fa6f2(_0x1e2fa1,_0x312d57- -0x4f7);}this[_0x4bba46(0x3f,-0x23)](_0x1a9b48);}get['rectangle'](){let _0x1ef808=this['windData'][_0x4aacd8(-0x7f,-0xa2)];function _0x399104(_0x1c9c50,_0x353e5a){return _0x2fa6f2(_0x1c9c50,_0x353e5a- -0x5a9);}let _0x33abe1=this['windData']['xmax'],_0x3c2995=this['windData']['ymin'],_0x4f1e99=this[_0x4aacd8(-0x3,-0x7f)]['ymax'];_0x33abe1>=0x167&&_0x1ef808===0x0&&(_0x1ef808=-0xb4,_0x33abe1=0xb4);_0x1ef808=Math[_0x4aacd8(-0x171,-0x12d)](_0x1ef808,-0xb4),_0x33abe1=Math['min'](_0x33abe1,0xb4),_0x3c2995=Math['max'](_0x3c2995,-0x5a),_0x4f1e99=Math['min'](_0x4f1e99,0x5a);function _0x4aacd8(_0x451ef1,_0xe6750d){return _0x2fa6f2(_0x451ef1,_0xe6750d- -0x59d);}return Cesium['Rectangle']['fromDegrees'](_0x1ef808,_0x3c2995,_0x33abe1,_0x4f1e99);}[_0x3bbde2(-0x79,-0x97)](_0x2ea982){function _0x4f8d95(_0x188b25,_0x22d8d6){return _0x2fa6f2(_0x22d8d6,_0x188b25- -0x21d);}function _0x2f7437(_0x862664,_0x5be305){return _0x2fa6f2(_0x862664,_0x5be305- -0x225);}_0x2ea982?this[_0x2f7437(0x308,0x2a5)]():(this[_0x4f8d95(0x301,0x332)]&&(this['options'][_0x2f7437(0x27d,0x28f)]=this['windData']),this['_removedHook']());}[_0x3bbde2(-0xc8,-0x3d)](){function _0x21b991(_0x3a8d08,_0x325b27){return _0x2fa6f2(_0x3a8d08,_0x325b27- -0x65d);}this[_0x21b991(-0x217,-0x242)]['worker']?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}[_0x3bbde2(-0x56,-0x79)](){this[_0x22564f(0x1e9,0x160)]=this['_createCanvas']();const _0xd91a3c={};_0xd91a3c['willReadFrequently']=!![];function _0x4ba086(_0x1b9a2a,_0x5c370a){return _0x3bbde2(_0x5c370a-0x258,_0x1b9a2a);}this['canvasContext']=this['canvas'][_0x4ba086(0x203,0x222)]('2d',_0xd91a3c);function _0x22564f(_0x348579,_0x533333){return _0x2fa6f2(_0x533333,_0x348579- -0x2f6);}this['bindEvent'](),this[_0x22564f(0x125,0x108)]['data']&&this[_0x4ba086(0x1f3,0x20c)](this[_0x4ba086(0x14e,0x153)][_0x22564f(0x1be,0x157)]);}['_removedHook'](){this[_0x1b6970(0xb3,0xde)]();function _0x502c70(_0x51f794,_0x4e7804){return _0x2fa6f2(_0x4e7804,_0x51f794- -0x7);}this['unbindEvent']();function _0x1b6970(_0x19dc56,_0x325063){return _0x2fa6f2(_0x325063,_0x19dc56- -0x3cf);}this['canvas']&&(this[_0x1b6970(0xcc,0xf8)][_0x502c70(0x504,0x564)]['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x4447a7=mars3d__namespace['DomUtil']['create'](_0x13d500(0x3fc,0x443),'mars3d-canvasWind',this[_0x353163(0x7,0x8f)][_0x353163(0x11e,0xff)]);_0x4447a7[_0x353163(0xbf,0xe8)][_0x353163(0xc8,0xd8)]=_0x13d500(0x336,0x317),_0x4447a7['style']['top']='0px',_0x4447a7[_0x13d500(0x411,0x482)]['left']=_0x353163(0x117,0x91);function _0x353163(_0x35aca4,_0x8578fd){return _0x2fa6f2(_0x35aca4,_0x8578fd- -0x40c);}function _0x13d500(_0x3bb807,_0x525f07){return _0x3bbde2(_0x3bb807-0x43d,_0x525f07);}return _0x4447a7['style']['width']=this['_map'][_0x353163(0x26,0x71)][_0x353163(0x14e,0xd3)][_0x353163(0x82,0xf0)]+'px',_0x4447a7['style']['height']=this['_map']['scene']['canvas']['clientHeight']+'px',_0x4447a7['style']['pointerEvents']=this['_pointerEvents']?'auto':'none',_0x4447a7[_0x13d500(0x411,0x3c2)]['zIndex']=this['options'][_0x13d500(0x43f,0x3e8)]??0x9,_0x4447a7[_0x13d500(0x36e,0x2e4)]=this[_0x13d500(0x3b8,0x43b)]['scene']['canvas'][_0x13d500(0x419,0x446)],_0x4447a7['height']=this[_0x13d500(0x3b8,0x3c7)]['scene']['canvas']['clientHeight'],_0x4447a7;}['resize'](){function _0x463650(_0x52e291,_0x4e138b){return _0x2fa6f2(_0x52e291,_0x4e138b-0xc8);}function _0x18dfa7(_0x56070f,_0x239a90){return _0x3bbde2(_0x239a90-0x3c7,_0x56070f);}this[_0x18dfa7(0x33e,0x386)]&&(this[_0x463650(0x5e0,0x5a7)]['style'][_0x463650(0x4a4,0x519)]=this['_map']['scene'][_0x18dfa7(0x372,0x386)][_0x18dfa7(0x3b4,0x3a3)]+'px',this[_0x463650(0x62f,0x5a7)]['style'][_0x18dfa7(0x37a,0x392)]=this[_0x463650(0x56b,0x563)]['scene']['canvas']['clientHeight']+'px',this[_0x18dfa7(0x32d,0x386)]['width']=this[_0x18dfa7(0x3ab,0x342)][_0x463650(0x58b,0x545)]['canvas'][_0x463650(0x53b,0x5c4)],this['canvas']['height']=this['_map']['scene']['canvas']['clientHeight']);}['bindEvent'](){const _0x583a31=this;let _0x66eee6=Date['now']();(function _0x460e53(){if(_0x583a31[_0x524e85(0x3ee,0x419)])return;function _0x524e85(_0x288545,_0x138339){return _0x235d(_0x138339-0x2c5,_0x288545);}function _0x24cb03(_0x581f5a,_0x212ba8){return _0x235d(_0x212ba8- -0xd2,_0x581f5a);}_0x583a31['_animateFrame']=window['requestAnimationFrame'](_0x460e53);if(_0x583a31[_0x24cb03(0x36,0x98)]&&_0x583a31['windField']){const _0x47ca86=Date['now'](),_0x1425ee=_0x47ca86-_0x66eee6;_0x1425ee>_0x583a31[_0x524e85(0x4f4,0x46f)]&&(_0x66eee6=_0x47ca86-_0x1425ee%_0x583a31[_0x524e85(0x44c,0x46f)],_0x583a31[_0x524e85(0x49a,0x470)]());}}(),window[_0x359d82(0x144,0x19a)](_0x5e388e(-0xc,-0x64),this[_0x5e388e(-0xc,0x15)][_0x359d82(0x10e,0xef)](this),![]),this['mouse_down']=![],this[_0x359d82(0xf2,0x86)]=![]);function _0x5e388e(_0xea1eeb,_0x194c48){return _0x2fa6f2(_0x194c48,_0xea1eeb- -0x44b);}function _0x359d82(_0x3c11f8,_0x3505fd){return _0x3bbde2(_0x3c11f8-0x186,_0x3505fd);}this['options']['mouseHidden']&&(this[_0x5e388e(0x50,0x21)]['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x5e388e(0x50,0x1e)]['on'](mars3d__namespace[_0x5e388e(0x77,0x5c)]['mouseDown'],this[_0x5e388e(-0x1f,0x42)],this),this['_map']['on'](mars3d__namespace[_0x5e388e(0x77,0x8f)]['mouseUp'],this[_0x5e388e(-0xb,-0x31)],this));}['unbindEvent'](){window['cancelAnimationFrame'](this[_0x102884(0x1a,-0x3f)]),delete this['_animateFrame'];function _0x2ffe73(_0x10fc62,_0x3d68e9){return _0x2fa6f2(_0x3d68e9,_0x10fc62- -0x3e6);}window['removeEventListener'](_0x2ffe73(0x59,0x2d),this['resize']);function _0x102884(_0x3c34ff,_0x18c036){return _0x2fa6f2(_0x3c34ff,_0x18c036- -0x559);}this[_0x2ffe73(0x35,0x12)]['mouseHidden']&&(this[_0x102884(-0x4a,-0xbe)]['off'](mars3d__namespace['EventType'][_0x102884(-0xdf,-0x8c)],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x2ffe73(0x2b,0x88)](mars3d__namespace['EventType'][_0x102884(0x29,-0x33)],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x102884(-0x16f,-0x122)],this));}['_onMapWhellEvent'](_0x32af9d){function _0x4096bf(_0x30e39a,_0x156d21){return _0x2fa6f2(_0x156d21,_0x30e39a- -0x1ba);}clearTimeout(this['refreshTimer']);function _0x5f5038(_0x24d8cf,_0x520bcb){return _0x2fa6f2(_0x24d8cf,_0x520bcb- -0x220);}if(!this['show']||!this[_0x4096bf(0x325,0x306)])return;this[_0x4096bf(0x325,0x37b)]['style']['visibility']=_0x5f5038(0x2cd,0x26a),this['refreshTimer']=setTimeout(()=>{function _0x505a09(_0x29cabb,_0x1252f2){return _0x4096bf(_0x1252f2-0x19c,_0x29cabb);}function _0x1f4a4e(_0x13164c,_0x1d07d7){return _0x4096bf(_0x13164c- -0x89,_0x1d07d7);}if(!this['show'])return;this[_0x1f4a4e(0x216,0x1b7)](),this['canvas'][_0x1f4a4e(0x2b1,0x2a5)][_0x1f4a4e(0x207,0x1f4)]=_0x1f4a4e(0x274,0x2f6);},0xc8);}[_0x2fa6f2(0x3d1,0x42c)](_0x110161){this['mouse_down']=!![];function _0x55bb94(_0x1bc0cd,_0x4de018){return _0x2fa6f2(_0x4de018,_0x1bc0cd- -0x655);}function _0x3299d8(_0x2d41a5,_0xb892fa){return _0x2fa6f2(_0xb892fa,_0x2d41a5- -0x5e3);}this['_map'][_0x3299d8(-0x1d2,-0x1b2)](mars3d__namespace['EventType'][_0x55bb94(-0x1f6,-0x23e)],this[_0x55bb94(-0x21e,-0x23d)],this),this['_map']['on'](mars3d__namespace[_0x55bb94(-0x193,-0x224)]['mouseMove'],this[_0x3299d8(-0x1ac,-0x1c8)],this);}[_0x2fa6f2(0x485,0x437)](_0x432b7b){function _0x333f11(_0x59e1ae,_0x1f0751){return _0x3bbde2(_0x59e1ae-0x4f1,_0x1f0751);}function _0x58a998(_0x2cd873,_0x139f69){return _0x3bbde2(_0x2cd873-0x3a5,_0x139f69);}if(!this['show']||!this[_0x333f11(0x4b0,0x51f)])return;this['mouse_down']&&(this[_0x333f11(0x4b0,0x43f)]['style'][_0x333f11(0x41b,0x393)]='hidden',this['mouse_move']=!![]);}[_0x2fa6f2(0x401,0x440)](_0x272e98){if(!this['show']||!this[_0x4043e3(-0xd3,-0x107)])return;this['_map'][_0x9a8a02(-0x1aa,-0x13d)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this[_0x9a8a02(-0x12f,-0xf4)]&&this[_0x9a8a02(-0x162,-0x1b4)]();this['canvas']['style'][_0x9a8a02(-0x171,-0x1b2)]=_0x4043e3(-0x11d,-0x12f),this['mouse_down']=![];function _0x4043e3(_0x11e900,_0x115f57){return _0x2fa6f2(_0x11e900,_0x115f57- -0x5e6);}function _0x9a8a02(_0x2df875,_0x26e941){return _0x2fa6f2(_0x26e941,_0x2df875- -0x5bb);}this[_0x4043e3(-0x181,-0x15a)]=![];}['setData'](_0x248919){function _0x535724(_0x48298f,_0x111c1f){return _0x2fa6f2(_0x48298f,_0x111c1f- -0xf9);}this[_0x535724(0x305,0x389)](),this['windData']=_0x248919;function _0x97fb88(_0x232ae6,_0x253885){return _0x2fa6f2(_0x232ae6,_0x253885- -0x60);}this[_0x535724(0x36e,0x35b)]['setDate'](_0x248919),this[_0x535724(0x33d,0x360)]();}['redraw'](){if(!this['show'])return;this['windField'][_0x1be436(0x11c,0xd3)](this['options']);function _0x1be436(_0xa400da,_0x2e5f65){return _0x2fa6f2(_0xa400da,_0x2e5f65- -0x37a);}this['update']();}['update'](){if(this[_0x533487(0x34b,0x34b)])return;function _0x533487(_0x50426e,_0x550964){return _0x3bbde2(_0x550964-0x354,_0x50426e);}this['_updateIng']=!![];if(this[_0x533487(0x320,0x35d)])this['windField']['update']();else{const _0x261352=this['windField'][_0x410d1e(0x7b,0x7c)]();this[_0x533487(0x38d,0x300)](_0x261352);}function _0x410d1e(_0x3fc0c9,_0x357ac6){return _0x3bbde2(_0x3fc0c9-0x91,_0x357ac6);}this['_updateIng']=![];}[_0x2fa6f2(0x4d9,0x4cc)](_0x32673f){function _0x526c46(_0x19f8e6,_0x48211b){return _0x2fa6f2(_0x19f8e6,_0x48211b- -0x463);}this['_canvasParticles']=_0x32673f,this['canvasContext'][_0x73a424(-0x1a8,-0x229)]='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this[_0x526c46(-0x76,-0x36)],this['canvasHeight']);function _0x73a424(_0x101edf,_0x3ec931){return _0x2fa6f2(_0x3ec931,_0x101edf- -0x5bf);}this['canvasContext']['globalCompositeOperation']=_0x73a424(-0x169,-0x185),this['canvasContext'][_0x73a424(-0xc8,-0x67)]=0.9;const _0x2ea24a=this['_map']['scene'][_0x526c46(0xac,0x32)]!==Cesium[_0x73a424(-0xef,-0x7b)][_0x73a424(-0x92,-0xf1)],_0x421b17=this['canvasWidth']*0.25;if(this[_0x526c46(0xb8,0xc9)])for(let _0x2883f0=0x0,_0x40caeb=_0x32673f['length'];_0x2883f0<_0x40caeb;_0x2883f0++){const _0x58b599=_0x32673f[_0x2883f0],_0x45c663=this[_0x526c46(-0x1c,0x70)](_0x58b599,_0x58b599['lng'],_0x58b599[_0x526c46(0x12,0x34)],_0x58b599['alt']),_0x1db50a=this[_0x526c46(0x2e,0x70)](_0x58b599,_0x58b599['tlng'],_0x58b599['tlat'],_0x58b599[_0x73a424(-0x19b,-0x1aa)]);if(!_0x45c663||!_0x1db50a)continue;if(_0x2ea24a&&Math[_0x526c46(0x89,0x80)](_0x45c663[0x0]-_0x1db50a[0x0])>=_0x421b17)continue;this['canvasContext']['beginPath'](),this[_0x526c46(-0x8f,-0x2)][_0x73a424(-0xf6,-0x170)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x526c46(0x80,0xc9)]['getColor'](_0x58b599[_0x526c46(-0x1a,0x3e)]),this['canvasContext']['moveTo'](_0x45c663[0x0],_0x45c663[0x1]),this['canvasContext'][_0x526c46(0x40,0x5d)](_0x1db50a[0x0],_0x1db50a[0x1]),this[_0x73a424(-0x15e,-0x142)]['stroke']();}else{this['canvasContext'][_0x73a424(-0x14d,-0x1a6)](),this[_0x526c46(0x14,-0x2)]['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this['color'];for(let _0x322f71=0x0,_0x420825=_0x32673f[_0x73a424(-0x14e,-0x181)];_0x322f71<_0x420825;_0x322f71++){const _0x307f54=_0x32673f[_0x322f71],_0x2930b7=this['_tomap'](_0x307f54,_0x307f54[_0x73a424(-0x14a,-0x16f)],_0x307f54['lat'],_0x307f54['alt']),_0x4d5cb6=this['_tomap'](_0x307f54,_0x307f54[_0x526c46(0x100,0xa3)],_0x307f54[_0x73a424(-0x95,-0xbc)],_0x307f54['talt']);if(!_0x2930b7||!_0x4d5cb6)continue;if(_0x2ea24a&&Math['abs'](_0x2930b7[0x0]-_0x4d5cb6[0x0])>=_0x421b17)continue;this['canvasContext'][_0x73a424(-0xdf,-0xe2)](_0x2930b7[0x0],_0x2930b7[0x1]),this['canvasContext']['lineTo'](_0x4d5cb6[0x0],_0x4d5cb6[0x1]);}this['canvasContext'][_0x526c46(0xa9,0x6e)]();}}['_tomap'](_0x370c43,_0x5240e0,_0x181ac3,_0x2228f5){const _0x2a68c6=Cesium['Cartesian3'][_0x44869c(0x4a1,0x4a8)](_0x5240e0,_0x181ac3,_0x2228f5??this['fixedHeight']),_0x52e0cb=this['_map']['scene'];if(_0x52e0cb[_0x44869c(0x4af,0x4fc)]===Cesium['SceneMode'][_0x1346e2(0x461,0x4a2)]){const _0x1fcd1b=new Cesium[(_0x1346e2(0x41a,0x43c))](_0x52e0cb[_0x1346e2(0x403,0x3cf)]['ellipsoid'],_0x52e0cb[_0x44869c(0x46c,0x406)][_0x44869c(0x541,0x501)]),_0x3ec721=_0x1fcd1b['isPointVisible'](_0x2a68c6);if(!_0x3ec721)return _0x370c43['age']=0x0,null;}function _0x1346e2(_0x3859ad,_0x2757b2){return _0x2fa6f2(_0x2757b2,_0x3859ad- -0xcc);}function _0x44869c(_0x3906df,_0xf2bcfd){return _0x3bbde2(_0x3906df-0x53a,_0xf2bcfd);}const _0x4338b0=mars3d__namespace['PointTrans']['toWindowCoordinates'](this[_0x1346e2(0x3cf,0x3df)]['scene'],_0x2a68c6);return _0x4338b0?[_0x4338b0['x'],_0x4338b0['y']]:null;}['clear'](){function _0x27980c(_0x102a6,_0x4ab7e4){return _0x3bbde2(_0x102a6-0x2a0,_0x4ab7e4);}function _0x2b370a(_0x3a8b6c,_0x4ae8f1){return _0x3bbde2(_0x4ae8f1-0x16f,_0x3a8b6c);}this[_0x27980c(0x1d4,0x256)]['clear'](),delete this[_0x27980c(0x29e,0x27e)];}[_0x3bbde2(-0xde,-0x103)](){this['worker']=new Worker(this['options']['worker']);function _0x801f3(_0x4db490,_0x2789f0){return _0x3bbde2(_0x4db490- -0x12f,_0x2789f0);}this['worker'][_0x801f3(-0x1e8,-0x226)]=_0x30f2c7=>{this[_0x4a962a(-0x8e,-0xfa)](_0x30f2c7[_0x3160e3(-0xb1,-0x70)]['particles']);function _0x4a962a(_0x4908a5,_0x5b00b4){return _0x801f3(_0x4908a5-0xf5,_0x5b00b4);}function _0x3160e3(_0x255b63,_0x5e3673){return _0x801f3(_0x5e3673-0x12b,_0x255b63);}this[_0x3160e3(-0xbc,-0x52)]=![];};function _0xc05c9e(_0xea56ef,_0x4042df){return _0x3bbde2(_0x4042df- -0x89,_0xea56ef);}this[_0x801f3(-0x1fb,-0x244)]={'init':_0x38b87a=>{const _0x31b880={};_0x31b880[_0x3242e1(0x3f6,0x465)]=_0x6b52e4(-0x6e,0xa);function _0x3242e1(_0x30ec8a,_0x2afc11){return _0x801f3(_0x2afc11-0x5da,_0x30ec8a);}function _0x6b52e4(_0x579ff8,_0x2b05d0){return _0x801f3(_0x2b05d0-0x151,_0x579ff8);}_0x31b880['options']=_0x38b87a,this['worker'][_0x3242e1(0x487,0x451)](_0x31b880);},'setOptions':_0x4bf2c3=>{function _0x3b9e8c(_0x2e572e,_0x52a2c0){return _0x801f3(_0x52a2c0-0x601,_0x2e572e);}const _0x71a12={};function _0x1a0b5f(_0x35b455,_0x52ab84){return _0xc05c9e(_0x35b455,_0x52ab84- -0x85);}_0x71a12['type']=_0x1a0b5f(-0x1d4,-0x1e1),_0x71a12[_0x1a0b5f(-0x29d,-0x213)]=_0x4bf2c3,this[_0x3b9e8c(0x4bd,0x4db)]['postMessage'](_0x71a12);},'setDate':_0x11a987=>{const _0x5a27bf={};_0x5a27bf['type']=_0x17c0bd(-0xac,-0x137);function _0x17c0bd(_0x51f71f,_0x46430b){return _0xc05c9e(_0x51f71f,_0x46430b- -0x84);}_0x5a27bf['data']=_0x11a987;function _0x41394f(_0xfb1a7f,_0x5aad91){return _0x801f3(_0x5aad91-0x5c6,_0xfb1a7f);}this[_0x17c0bd(-0x143,-0x104)][_0x17c0bd(-0x13a,-0x167)](_0x5a27bf);},'update':()=>{if(this[_0x25f095(-0x43,0x21)])return;function _0x25f095(_0x39a3b6,_0x5a3ef9){return _0xc05c9e(_0x39a3b6,_0x5a3ef9-0xf8);}this[_0xeb8a66(0x314,0x350)]=!![];const _0x3bd5a6={};function _0xeb8a66(_0x35ca92,_0x4a3ea0){return _0xc05c9e(_0x35ca92,_0x4a3ea0-0x427);}_0x3bd5a6['type']='update',this['worker'][_0x25f095(-0x6d,0x15)](_0x3bd5a6);},'clear':()=>{function _0x20eef5(_0x412ab2,_0x3a3d5c){return _0xc05c9e(_0x3a3d5c,_0x412ab2-0x3d3);}const _0x2123fd={};_0x2123fd['type']='clear',this[_0x20eef5(0x353,0x32f)]['postMessage'](_0x2123fd);}},this['windField']['init'](this['options']);}}mars3d__namespace[_0x3bbde2(0x0,-0x2)]['register'](_0x3bbde2(-0x65,-0x34),CanvasWindLayer),mars3d__namespace[_0x3bbde2(-0x4,0x18)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x3bbde2(-0xdf,-0x112)]=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x2fa6f2(0x4ef,0x513)]=WindLayer;function _0x2fa6f2(_0x3829e1,_0x369b3b){return _0x235d(_0x369b3b-0x2f4,_0x3829e1);}exports['WindUtil']=WindUtil;const _0x40f1a4={};_0x40f1a4['value']=!![],Object[_0x2fa6f2(0x4eb,0x4ac)](exports,_0x2fa6f2(0x58b,0x505),_0x40f1a4);
14
+ 'use strict';(function(_0x2ffc7f,_0x2ea63a){const _0x4a464f=_0x2ffc7f();function _0xcaea2b(_0x4cbbca,_0x27e290){return _0x5498(_0x4cbbca-0xad,_0x27e290);}function _0x610be5(_0xc63adf,_0x17cb5c){return _0x5498(_0xc63adf-0x347,_0x17cb5c);}while(!![]){try{const _0x2e4b2e=-parseInt(_0x610be5(0x47f,0x4ad))/0x1+-parseInt(_0xcaea2b(0x248,0x21e))/0x2*(parseInt(_0xcaea2b(0x22a,0x263))/0x3)+-parseInt(_0xcaea2b(0x241,0x24d))/0x4+parseInt(_0xcaea2b(0x24c,0x2c5))/0x5*(parseInt(_0x610be5(0x40c,0x454))/0x6)+-parseInt(_0x610be5(0x4ac,0x4eb))/0x7+parseInt(_0x610be5(0x3f1,0x472))/0x8*(-parseInt(_0xcaea2b(0x1ab,0x14b))/0x9)+parseInt(_0xcaea2b(0x19f,0x1e5))/0xa*(parseInt(_0x610be5(0x4e5,0x47e))/0xb);if(_0x2e4b2e===_0x2ea63a)break;else _0x4a464f['push'](_0x4a464f['shift']());}catch(_0x7e449a){_0x4a464f['push'](_0x4a464f['shift']());}}}(_0x34f9,0x80a3a));function _interopNamespace(_0x4216b1){if(_0x4216b1&&_0x4216b1['__esModule'])return _0x4216b1;function _0x286cdc(_0x1069e5,_0x155809){return _0x5498(_0x155809- -0xe6,_0x1069e5);}var _0x51f115=Object[_0x286cdc(-0x32,-0x4e)](null);function _0x57b0b5(_0x3c570b,_0x268b50){return _0x5498(_0x268b50- -0x1f4,_0x3c570b);}return _0x4216b1&&Object[_0x57b0b5(-0xa8,-0xb7)](_0x4216b1)[_0x57b0b5(-0xd4,-0xbe)](function(_0xb2fe1e){function _0x2432eb(_0x49647d,_0x4a6f10){return _0x57b0b5(_0x49647d,_0x4a6f10-0x3d2);}if(_0xb2fe1e!=='default'){var _0x17df0e=Object['getOwnPropertyDescriptor'](_0x4216b1,_0xb2fe1e);Object[_0x2432eb(0x2c7,0x305)](_0x51f115,_0xb2fe1e,_0x17df0e['get']?_0x17df0e:{'enumerable':!![],'get':function(){return _0x4216b1[_0xb2fe1e];}});}}),_0x51f115[_0x286cdc(-0x7c,0x5)]=_0x4216b1,_0x51f115;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x19df7d(0xde,0xbd)];function getU(_0x461e38,_0x439d03){function _0x10cc6e(_0x42896c,_0x2abd1c){return _0x19df7d(_0x2abd1c- -0x15b,_0x42896c);}const _0x573b82=_0x461e38*Math[_0x10cc6e(-0x6e,-0xb4)](Cesium$2['Math']['toRadians'](_0x439d03));return _0x573b82;}function getV(_0x2906df,_0x3d472e){function _0x3c3ede(_0x5b304a,_0xe14b61){return _0x19df7d(_0x5b304a- -0x157,_0xe14b61);}const _0x34cbe8=_0x2906df*Math['sin'](Cesium$2['Math'][_0x3c3ede(-0xa7,-0x31)](_0x3d472e));return _0x34cbe8;}function _0x5498(_0x5f2f7d,_0x88fa89){const _0x34f968=_0x34f9();return _0x5498=function(_0x5498cf,_0x4dd70a){_0x5498cf=_0x5498cf-0x92;let _0x34ead1=_0x34f968[_0x5498cf];return _0x34ead1;},_0x5498(_0x5f2f7d,_0x88fa89);}function getSpeed(_0x37658d,_0x16531f){function _0x6a2473(_0x397428,_0x32e007){return _0x19df7d(_0x32e007- -0xf0,_0x397428);}function _0x3e73c8(_0x4892d3,_0x35cffc){return _0x19df7d(_0x4892d3-0x315,_0x35cffc);}const _0x550e31=Math[_0x6a2473(-0x31,-0x7f)](Math[_0x6a2473(-0xa,-0x87)](_0x37658d,0x2)+Math[_0x6a2473(-0xde,-0x87)](_0x16531f,0x2));return _0x550e31;}function getDirection(_0x1a9bd3,_0x360b62){let _0x564b9e=Cesium$2[_0x727a69(-0x193,-0x139)]['toDegrees'](Math['atan2'](_0x360b62,_0x1a9bd3));function _0x727a69(_0x4bc168,_0x4d1e15){return _0x19df7d(_0x4bc168- -0x25c,_0x4d1e15);}return _0x564b9e+=_0x564b9e<0x0?0x168:0x0,_0x564b9e;}const _0x3462ae={};_0x3462ae['__proto__']=null;function _0x19df7d(_0x2ab9f6,_0x383af3){return _0x5498(_0x2ab9f6- -0x43,_0x383af3);}_0x3462ae['getU']=getU,_0x3462ae[_0x19df7d(0x56,0x82)]=getV,_0x3462ae['getSpeed']=getSpeed,_0x3462ae['getDirection']=getDirection;var WindUtil=_0x3462ae,updatePositionShader=_0x19df7d(0xe9,0xb7),calculateSpeedShader=_0x2e45e5(-0x99,-0x11c),postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a';const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x1e5667={};return _0x1e5667['sources']=[calculateSpeedShader],new ShaderSource$1(_0x1e5667);}static['getUpdatePositionShader'](){const _0x47c1cc={};return _0x47c1cc['sources']=[updatePositionShader],new ShaderSource$1(_0x47c1cc);}static['getSegmentDrawVertexShader'](){const _0x27ec03={};return _0x27ec03['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x27ec03);}static['getSegmentDrawFragmentShader'](){const _0x218cfc={};return _0x218cfc['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x218cfc);}static[_0x19df7d(0xca,0x103)](){const _0xa985fc={};return _0xa985fc['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0xa985fc);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x160162){this['commandType']=_0x160162['commandType'],this['geometry']=_0x160162['geometry'],this['attributeLocations']=_0x160162['attributeLocations'],this['primitiveType']=_0x160162['primitiveType'],this[_0x3833cb(0xa,-0x6b)]=_0x160162['uniformMap']||{},this[_0x47c823(0x4a8,0x462)]=_0x160162[_0x3833cb(0x1d,0xb)],this['fragmentShaderSource']=_0x160162['fragmentShaderSource'],this[_0x47c823(0x4a6,0x509)]=_0x160162[_0x3833cb(0x1b,0x1b)];function _0x3833cb(_0x369b9c,_0x3f39e6){return _0x19df7d(_0x369b9c- -0x72,_0x3f39e6);}this['framebuffer']=_0x160162['framebuffer'],this[_0x47c823(0x488,0x46d)]=_0x160162[_0x3833cb(-0x3,0x24)],this[_0x47c823(0x4d8,0x546)]=_0x160162[_0x3833cb(0x4d,0xb6)]??![],this['preExecute']=_0x160162['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined;function _0x47c823(_0x305d33,_0x166bb3){return _0x2e45e5(_0x166bb3,_0x305d33-0x598);}this[_0x3833cb(0xb,-0x26)]=_0x160162['isDynamic']??(()=>!![]),this['autoClear']&&(this[_0x3833cb(0x69,0xa0)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x10c302){function _0x4deb77(_0x4db1c6,_0x1acf15){return _0x19df7d(_0x1acf15-0xaf,_0x4db1c6);}function _0x4038d5(_0x43e3c6,_0x8bc32d){return _0x19df7d(_0x43e3c6-0x37b,_0x8bc32d);}if(this['commandType']==='Draw'){const _0x43323d={};_0x43323d[_0x4deb77(0x1b6,0x1c2)]=_0x10c302,_0x43323d[_0x4deb77(0x138,0x189)]=this['geometry'],_0x43323d['attributeLocations']=this['attributeLocations'],_0x43323d['bufferUsage']=BufferUsage$1[_0x4deb77(0x23d,0x1ce)];const _0x8a3b0=VertexArray$1['fromGeometry'](_0x43323d),_0x4c2b39={};_0x4c2b39['context']=_0x10c302,_0x4c2b39['vertexShaderSource']=this[_0x4deb77(0x11c,0x13e)],_0x4c2b39['fragmentShaderSource']=this['fragmentShaderSource'],_0x4c2b39[_0x4038d5(0x4c4,0x4ad)]=this[_0x4deb77(0x243,0x1f8)];const _0x37285b=ShaderProgram['fromCache'](_0x4c2b39),_0xb90ba3=RenderState[_0x4038d5(0x41e,0x481)](this[_0x4038d5(0x408,0x44a)]),_0x5ba417={};return _0x5ba417[_0x4deb77(0x1c1,0x16c)]=this,_0x5ba417[_0x4038d5(0x4c3,0x528)]=_0x8a3b0,_0x5ba417['primitiveType']=this['primitiveType'],_0x5ba417[_0x4038d5(0x442,0x4a9)]=Matrix4[_0x4deb77(0x259,0x1da)],_0x5ba417['renderState']=_0xb90ba3,_0x5ba417['shaderProgram']=_0x37285b,_0x5ba417[_0x4deb77(0x250,0x211)]=this['framebuffer'],_0x5ba417['uniformMap']=this['uniformMap'],_0x5ba417[_0x4038d5(0x46b,0x46b)]=Pass$1[_0x4deb77(0x140,0x15c)],new DrawCommand(_0x5ba417);}else{if(this['commandType']===_0x4038d5(0x3e5,0x3e0)){const _0x4d0d10={};return _0x4d0d10['owner']=this,_0x4d0d10['fragmentShaderSource']=this['fragmentShaderSource'],_0x4d0d10[_0x4deb77(0x161,0x12b)]=this['uniformMap'],_0x4d0d10[_0x4038d5(0x3ea,0x415)]=this[_0x4038d5(0x3ea,0x442)],_0x4d0d10['persists']=!![],new ComputeCommand(_0x4d0d10);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0xac1738,_0x25ed73){function _0x5a2b18(_0x35d616,_0x58fd74){return _0x19df7d(_0x35d616-0x23a,_0x58fd74);}this['geometry']=_0x25ed73;function _0x42c446(_0x9a7108,_0x401c3c){return _0x19df7d(_0x9a7108-0x262,_0x401c3c);}defined(this['commandToExecute'])&&(this[_0x42c446(0x330,0x2d5)]['vertexArray']=VertexArray$1[_0x42c446(0x34c,0x345)]({'context':_0xac1738,'geometry':this[_0x42c446(0x33c,0x33b)],'attributeLocations':this[_0x5a2b18(0x383,0x374)],'bufferUsage':BufferUsage$1[_0x42c446(0x381,0x3ee)]}));}['update'](_0x334735){if(!this['isDynamic']())return;if(!this['show']||!defined(_0x334735))return;!defined(this['commandToExecute'])&&(this['commandToExecute']=this[_0x3e3084(0x1b1,0x174)](_0x334735[_0x52e3d0(0x4f5,0x4ca)]));defined(this[_0x3e3084(0x166,0x19c)])&&this[_0x3e3084(0x166,0x127)]();if(!_0x334735['commandList']){console['warn']('frameState.commandList\x20is\x20undefined');return;}function _0x52e3d0(_0x41ff6c,_0x5f2acb){return _0x19df7d(_0x41ff6c-0x3e2,_0x5f2acb);}defined(this[_0x52e3d0(0x4bd,0x523)])&&_0x334735[_0x3e3084(0x1b3,0x157)]['push'](this['clearCommand']);function _0x3e3084(_0x4ac888,_0x649409){return _0x2e45e5(_0x649409,_0x4ac888-0x1e4);}defined(this['commandToExecute'])&&_0x334735[_0x3e3084(0x1b3,0x1f0)]['push'](this[_0x3e3084(0x133,0x15a)]);}['isDestroyed'](){return![];}['destroy'](){if(defined(this['commandToExecute'])){var _0x50b19a;(_0x50b19a=this['commandToExecute'][_0x5cf4d6(0x350,0x352)])===null||_0x50b19a===void 0x0||_0x50b19a[_0x5b5361(-0x1f6,-0x213)](),this['commandToExecute'][_0x5cf4d6(0x369,0x352)]=undefined;}function _0x5cf4d6(_0x48ea9d,_0x2d731a){return _0x19df7d(_0x2d731a-0x1ff,_0x48ea9d);}function _0x5b5361(_0x364098,_0x3470f4){return _0x2e45e5(_0x364098,_0x3470f4- -0xf9);}return destroyObject(this);}}function deepMerge(_0xc06306,_0x237264){function _0x2ae160(_0x1adf40,_0x4920fe){return _0x19df7d(_0x1adf40- -0x1e2,_0x4920fe);}if(!_0xc06306)return _0x237264;if(!_0x237264)return _0xc06306;const _0x5489e5={..._0x237264},_0x3b9ac1=_0x5489e5;for(const _0x5291c1 in _0xc06306){if(Object[_0x2ae160(-0x167,-0x1eb)][_0x2ae160(-0x95,-0x70)]['call'](_0xc06306,_0x5291c1)){const _0x3aef31=_0xc06306[_0x5291c1],_0x1e0fb3=_0x237264[_0x5291c1];if(Array['isArray'](_0x3aef31)){_0x3b9ac1[_0x5291c1]=_0x3aef31['slice']();continue;}if(_0x3aef31&&typeof _0x3aef31==='object'){_0x3b9ac1[_0x5291c1]=deepMerge(_0x3aef31,_0x1e0fb3||{});continue;}_0x3aef31!==undefined&&(_0x3b9ac1[_0x5291c1]=_0x3aef31);}}function _0x11a865(_0x602706,_0x3d392b){return _0x19df7d(_0x3d392b-0x29e,_0x602706);}return _0x3b9ac1;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x39b0b9,_0x3dc7b1,_0x74f765,_0x129bfd,_0xb6157){function _0x323823(_0x1d6d76,_0x246498){return _0x19df7d(_0x246498- -0x2df,_0x1d6d76);}this['context']=_0x39b0b9,this[_0x323823(-0x25e,-0x24d)]=_0x74f765,this['viewerParameters']=_0x129bfd,this[_0x533731(0x336,0x2d7)]=_0x3dc7b1,this['frameRate']=0x3c,this[_0x533731(0x38d,0x323)]=0x1;function _0x533731(_0x2a14bb,_0xcb63a0){return _0x19df7d(_0xcb63a0-0x23b,_0x2a14bb);}const _0x18f921={};_0x18f921['scene']=_0xb6157,_0x18f921['samplingWindow']=0x1,_0x18f921[_0x323823(-0x218,-0x283)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x18f921),this[_0x533731(0x2bf,0x2f7)](),this['createWindTextures'](),this[_0x533731(0x270,0x2b2)](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x317653=()=>{function _0x38cd1e(_0x5e79e0,_0x4ac2b7){return _0x5498(_0x5e79e0- -0x12d,_0x4ac2b7);}function _0x56c5f7(_0x13db1a,_0x3ae315){return _0x5498(_0x3ae315-0x245,_0x13db1a);}this['frameRateMonitor'][_0x38cd1e(0x1a,-0x7)]>0x14&&(this['frameRate']=this[_0x38cd1e(-0x93,-0xb0)]['lastFramesPerSecond'],this[_0x56c5f7(0x3a2,0x370)]=0x3c/Math[_0x56c5f7(0x32a,0x365)](this[_0x56c5f7(0x2e7,0x2f5)],0x1));};_0x317653();function _0x3c8907(_0x4cf29e,_0x150fc0){return _0x19df7d(_0x150fc0-0x117,_0x4cf29e);}const _0xa1a6ee=setInterval(_0x317653,0x3e8),_0x3adcec=this[_0x3ab426(0xde,0x9f)]['bind'](this);function _0x3ab426(_0x22fa1e,_0x18621a){return _0x2e45e5(_0x22fa1e,_0x18621a-0x1b9);}this[_0x3ab426(0x63,0x9f)]=()=>{clearInterval(_0xa1a6ee),_0x3adcec();};}['createWindTextures'](){const _0x3d6ec7={};function _0x2c602c(_0x16b67d,_0x4fd8b7){return _0x2e45e5(_0x4fd8b7,_0x16b67d-0x28f);}_0x3d6ec7[_0x5f3b2c(0x358,0x34e)]=TextureMinificationFilter$1['LINEAR'],_0x3d6ec7['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];function _0x5f3b2c(_0xb0408d,_0x560a50){return _0x2e45e5(_0x560a50,_0xb0408d-0x3f7);}const _0x59151d={'context':this['context'],'width':this[_0x5f3b2c(0x314,0x31d)][_0x5f3b2c(0x38f,0x407)],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this[_0x2c602c(0x1a2,0x1f5)]['flipY']??![],'sampler':new Sampler$1(_0x3d6ec7)};this[_0x2c602c(0x210,0x1fa)]={'U':new Texture$1({..._0x59151d,'source':{'arrayBufferView':new Float32Array(this['windData']['u'][_0x2c602c(0x1c3,0x190)])}}),'V':new Texture$1({..._0x59151d,'source':{'arrayBufferView':new Float32Array(this[_0x2c602c(0x1ac,0x21d)]['v'][_0x2c602c(0x1c3,0x245)])}})};}[_0x2e45e5(-0x110,-0x108)](){function _0x135eeb(_0x270881,_0x25e676){return _0x2e45e5(_0x25e676,_0x270881-0x4b5);}const _0x2ae4c7={};_0x2ae4c7[_0x1f0920(0x170,0x131)]=TextureMinificationFilter$1['NEAREST'];function _0x1f0920(_0x6e8582,_0x516a52){return _0x19df7d(_0x516a52-0x51,_0x6e8582);}_0x2ae4c7[_0x1f0920(0x3e,0xbd)]=TextureMagnificationFilter$1[_0x1f0920(0x1a2,0x121)];const _0x390aac={'context':this['context'],'width':this['options'][_0x135eeb(0x3c1,0x3e2)],'height':this[_0x135eeb(0x3c8,0x40c)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x135eeb(0x3c8,0x407)][_0x1f0920(0x15c,0xdc)]*this['options'][_0x135eeb(0x3c1,0x376)]*0x4)[_0x1f0920(0x113,0x19c)](0x0)},'sampler':new Sampler$1(_0x2ae4c7)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x390aac),'currentParticlesPosition':new Texture$1(_0x390aac),'nextParticlesPosition':new Texture$1(_0x390aac),'postProcessingPosition':new Texture$1(_0x390aac),'particlesSpeed':new Texture$1(_0x390aac)};}[_0x2e45e5(-0x86,-0x59)](){Object['values'](this['particlesTextures'])['forEach'](_0x48418b=>_0x48418b['destroy']());}[_0x19df7d(0x144,0x18f)](){function _0x3a98ce(_0x5682e9,_0x4bed2f){return _0x2e45e5(_0x4bed2f,_0x5682e9-0x1bb);}function _0x172cbf(_0x3f78ac,_0x23a01c){return _0x2e45e5(_0x3f78ac,_0x23a01c-0x2b1);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x3a98ce(0xa6,0x76),'uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x172cbf(0x201,0x1ce)]['v']['min'],this[_0x3a98ce(0xd8,0xfd)]['v'][_0x172cbf(0x282,0x20f)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this[_0x3a98ce(0xd8,0x11a)]['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x1ff51f(_0x3711e5,_0x2f74e8){return _0x3a98ce(_0x2f74e8-0xb1,_0x3711e5);}return(this[_0x1ff51f(0x248,0x20b)]['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData']['width'],this[_0x3a98ce(0xd8,0x79)]['height']),'minimum':()=>new Cartesian2$1(this[_0x3a98ce(0xd8,0xdb)]['bounds'][_0x3a98ce(0xf0,0x179)],this['windData'][_0x3a98ce(0x130,0xca)][_0x172cbf(0x150,0x1a5)]),'maximum':()=>new Cartesian2$1(this['windData'][_0x3a98ce(0x130,0x18d)][_0x172cbf(0xfa,0x182)],this[_0x172cbf(0x153,0x1ce)][_0x172cbf(0x291,0x226)][_0x172cbf(0x17f,0x20a)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0x172cbf(0x2d4,0x291)][_0x3a98ce(0x9e,0x8a)],'preExecute':()=>{const _0x5e46ba=this['particlesTextures'][_0x50cf6d(0x5e,0x7e)];this[_0x14f981(0x3bc,0x398)]['previousParticlesPosition']=this['particlesTextures'][_0x50cf6d(-0x24,-0x28)];function _0x14f981(_0x5b60d5,_0x15dfc8){return _0x172cbf(_0x15dfc8,_0x5b60d5-0x12b);}this['particlesTextures']['currentParticlesPosition']=this[_0x14f981(0x3bc,0x3c2)]['postProcessingPosition'];function _0x50cf6d(_0xc9a73f,_0x14ebeb){return _0x3a98ce(_0xc9a73f- -0x13c,_0x14ebeb);}this['particlesTextures']['postProcessingPosition']=_0x5e46ba,this[_0x50cf6d(0x25,-0x61)]['calculateSpeed']['commandToExecute']&&(this['primitives'][_0x14f981(0x2d1,0x300)]['commandToExecute'][_0x14f981(0x2cc,0x291)]=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x3a98ce(0x19b,0x153)]['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x172cbf(0x1c3,0x194)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x172cbf(0x309,0x291)]['nextParticlesPosition'],'preExecute':()=>{function _0x54c784(_0x41325f,_0x144047){return _0x3a98ce(_0x41325f- -0x350,_0x144047);}function _0x3e1c7a(_0x134a89,_0x47d612){return _0x172cbf(_0x47d612,_0x134a89- -0x39f);}this[_0x3e1c7a(-0x148,-0x132)]['updatePosition'][_0x3e1c7a(-0x19f,-0x1e3)]&&(this[_0x54c784(-0x1ef,-0x1e1)]['updatePosition'][_0x54c784(-0x246,-0x256)][_0x3e1c7a(-0x1fe,-0x1a6)]=this[_0x3e1c7a(-0x10e,-0x138)]['nextParticlesPosition']);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x3a98ce(0xa6,0x8d),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x3a98ce(0x9e,0x104)],'lonRange':()=>this[_0x3a98ce(0x15a,0x1be)]['lonRange'],'latRange':()=>this['viewerParameters'][_0x172cbf(0x26c,0x231)],'dataLonRange':()=>new Cartesian2$1(this[_0x3a98ce(0xd8,0x68)]['bounds']['west'],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this[_0x172cbf(0x18c,0x1ce)][_0x172cbf(0x1bf,0x226)]['north']),'randomCoefficient':function(){function _0x683c46(_0x2a51f5,_0x2d385a){return _0x172cbf(_0x2d385a,_0x2a51f5- -0x1b3);}return Math[_0x683c46(0xb6,0x113)]();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this[_0x3a98ce(0xce,0x52)]['dropRateBump'],'useViewerBounds':()=>this['options']['useViewerBounds']},'fragmentShaderSource':ShaderManager[_0x3a98ce(0x106,0xa8)](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x495b2b(_0x25f0ea,_0x4c7ea0){return _0x3a98ce(_0x25f0ea-0xf2,_0x4c7ea0);}function _0x3031aa(_0x1e8fc5,_0x33e343){return _0x3a98ce(_0x1e8fc5- -0xc4,_0x33e343);}this['primitives'][_0x3031aa(0x89,0x91)][_0x495b2b(0x1fc,0x285)]&&(this['primitives']['postProcessingPosition'][_0x3031aa(0x46,0x38)]['outputTexture']=this[_0x495b2b(0x28d,0x27c)][_0x495b2b(0x23f,0x2bf)]);},'isDynamic':()=>this[_0x172cbf(0x175,0x1c4)]['dynamic']})};}['reCreateWindTextures'](){this[_0x47bb8a(0x228,0x1f7)]['U']['destroy'](),this['windTextures']['V'][_0xd6152a(-0x225,-0x1f3)]();function _0xd6152a(_0x21ca33,_0x2d4678){return _0x19df7d(_0x2d4678- -0x258,_0x21ca33);}function _0x47bb8a(_0x25ad1a,_0xe9365b){return _0x19df7d(_0xe9365b-0xf7,_0x25ad1a);}this[_0x47bb8a(0x2a3,0x21b)]();}[_0x2e45e5(0x21,-0x29)](_0x8e2c78){this['windData']=_0x8e2c78;function _0x2be11f(_0xcbff53,_0x450877){return _0x19df7d(_0xcbff53-0x25,_0x450877);}this[_0x2be11f(0x17c,0x117)]();}['updateOptions'](_0x40d7c5){const _0x2db5e3=_0x40d7c5[_0x34ebe0(0x153,0xfc)]!==undefined&&_0x40d7c5['flipY']!==this[_0x3cb1d3(-0x154,-0xdc)]['flipY'];function _0x3cb1d3(_0x5f16b9,_0x26b2c1){return _0x2e45e5(_0x26b2c1,_0x5f16b9- -0x67);}function _0x34ebe0(_0x1e0016,_0x132dd5){return _0x19df7d(_0x132dd5-0x83,_0x1e0016);}this['options']=deepMerge(_0x40d7c5,this['options']),_0x2db5e3&&this['reCreateWindTextures']();}['processWindData'](_0x2b0698){const {array:_0xd2681e}=_0x2b0698;let {min:_0xe12131,max:_0x28d88b}=_0x2b0698;const _0x5bb555=new Float32Array(_0xd2681e['length']);_0xe12131===undefined&&(console[_0x287578(0x328,0x2e7)]('min\x20is\x20undefined,\x20calculate\x20min'),_0xe12131=Math[_0x190a4e(0x60,0x6d)](..._0xd2681e));_0x28d88b===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x28d88b=Math['max'](..._0xd2681e));function _0x190a4e(_0xbbf743,_0x11fba5){return _0x2e45e5(_0x11fba5,_0xbbf743-0x100);}function _0x287578(_0xe9d8ee,_0x4afcb3){return _0x19df7d(_0x4afcb3-0x1b2,_0xe9d8ee);}const _0x1e48c0=Math[_0x287578(0x28d,0x28f)](Math['abs'](_0xe12131),Math[_0x287578(0x2cf,0x2e4)](_0x28d88b));for(let _0x291af8=0x0;_0x291af8<_0xd2681e['length'];_0x291af8++){const _0x433b6b=_0xd2681e[_0x291af8]/_0x1e48c0;_0x5bb555[_0x291af8]=_0x433b6b;}return _0x5bb555;}['destroy'](){Object['values'](this['windTextures'])['forEach'](_0xe4b894=>_0xe4b894[_0x494310(-0x22f,-0x1e5)]()),Object['values'](this[_0x555871(0x1d8,0x214)])[_0x494310(-0x1a1,-0x141)](_0x30727e=>_0x30727e[_0x555871(0xe9,0x11a)]());function _0x555871(_0x80bde,_0x3ba9fc){return _0x19df7d(_0x3ba9fc-0xb5,_0x80bde);}function _0x494310(_0x4c3371,_0x5bcda3){return _0x2e45e5(_0x5bcda3,_0x4c3371- -0x115);}Object['values'](this[_0x494310(-0x16f,-0x111)])[_0x555871(0x1ec,0x1a8)](_0x2b28f2=>_0x2b28f2['destroy']()),this['frameRateMonitor']['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x1724a6,_0x63880c,_0x16eb2c,_0x1fdc30){this[_0x57469d(0x2d8,0x28d)]=_0x1724a6,this['options']=_0x63880c,this['viewerParameters']=_0x16eb2c,this[_0x57469d(0x24f,0x2ab)]=_0x1fdc30;(typeof this[_0xc80390(0xc8,0xdb)][_0x57469d(0x279,0x205)]!=='number'||this['options']['particlesTextureSize']<=0x0)&&(console[_0x57469d(0x211,0x208)](_0xc80390(0x130,0x10e)),this[_0xc80390(0xfe,0xdb)]['particlesTextureSize']=0x100);this['colorTable']=this[_0xc80390(0x104,0x186)]();function _0xc80390(_0x5d39d7,_0x4c5d59){return _0x19df7d(_0x4c5d59-0x49,_0x5d39d7);}this['textures']=this['createRenderingTextures'](),this['framebuffers']=this['createRenderingFramebuffers']();function _0x57469d(_0x4411c7,_0x50fb1e){return _0x19df7d(_0x50fb1e-0x17a,_0x4411c7);}this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x4b5242={};_0x4b5242[_0x542c56(0x506,0x4d2)]=this[_0x542c56(0x506,0x519)],_0x4b5242['width']=this['context'][_0x542c56(0x4d6,0x456)];function _0x1a6b5b(_0x3ecca7,_0x250e2a){return _0x19df7d(_0x250e2a- -0x341,_0x3ecca7);}_0x4b5242['height']=this['context']['drawingBufferHeight'],_0x4b5242[_0x542c56(0x4a5,0x4d5)]=PixelFormat[_0x1a6b5b(-0x20f,-0x26b)],_0x4b5242[_0x542c56(0x451,0x3fb)]=PixelDatatype['UNSIGNED_BYTE'];const _0x5d1eb8=_0x4b5242,_0x4ca0d2={};_0x4ca0d2['context']=this[_0x542c56(0x506,0x4c6)],_0x4ca0d2['width']=this[_0x1a6b5b(-0x1fa,-0x22e)]['drawingBufferWidth'],_0x4ca0d2[_0x1a6b5b(-0x32d,-0x2c3)]=this['context'][_0x542c56(0x47a,0x426)],_0x4ca0d2[_0x542c56(0x4a5,0x4bc)]=PixelFormat['DEPTH_COMPONENT'],_0x4ca0d2['pixelDatatype']=PixelDatatype[_0x1a6b5b(-0x2fa,-0x297)];const _0x165575=_0x4ca0d2;function _0x542c56(_0x478202,_0x19ca33){return _0x2e45e5(_0x19ca33,_0x478202-0x572);}return{'segmentsColor':new Texture(_0x5d1eb8),'segmentsDepth':new Texture(_0x165575)};}[_0x2e45e5(-0x174,-0xf9)](){const _0x5c745d={};_0x5c745d['context']=this['context'],_0x5c745d['colorTextures']=[this[_0x4cab64(-0x4c,-0xe)]['segmentsColor']];function _0x438801(_0x9e015b,_0x30d3e8){return _0x2e45e5(_0x9e015b,_0x30d3e8-0x386);}_0x5c745d['depthTexture']=this[_0x4cab64(-0x4c,-0x7b)][_0x438801(0x37a,0x33b)];function _0x4cab64(_0x678a5e,_0x242e12){return _0x19df7d(_0x678a5e- -0x153,_0x242e12);}return{'segments':new Framebuffer(_0x5c745d)};}['destoryRenderingFramebuffers'](){function _0x5e6630(_0x181117,_0x3339b2){return _0x19df7d(_0x3339b2- -0x339,_0x181117);}Object['values'](this['framebuffers'])[_0x5e6630(-0x2bc,-0x246)](_0x3697de=>{_0x3697de['destroy']();});}[_0x19df7d(0x13d,0x18d)](){const _0x49506a=new Float32Array(this[_0x2eaad6(-0x1a8,-0x214)]['colors'][_0x53017a(-0xba,-0x138)](_0x4e3e4e=>{function _0x3c15ad(_0x54f78e,_0xb67a4f){return _0x2eaad6(_0x54f78e,_0xb67a4f-0x2f6);}const _0x31a78b=Color$1['fromCssColorString'](_0x4e3e4e);return[_0x31a78b['red'],_0x31a78b[_0x3c15ad(0xac,0xfc)],_0x31a78b['blue'],_0x31a78b['alpha']];})),_0x23e674={};_0x23e674[_0x53017a(-0xed,-0x14e)]=TextureMinificationFilter[_0x2eaad6(-0x27c,-0x21a)],_0x23e674['magnificationFilter']=TextureMagnificationFilter[_0x53017a(-0x1f5,-0x1a2)],_0x23e674['wrapS']=TextureWrap[_0x53017a(-0x142,-0x15f)],_0x23e674[_0x2eaad6(-0x17e,-0x1d3)]=TextureWrap['CLAMP_TO_EDGE'];function _0x53017a(_0x1d8d06,_0x1039e9){return _0x2e45e5(_0x1d8d06,_0x1039e9- -0xaf);}function _0x2eaad6(_0x252a4f,_0x3fb011){return _0x2e45e5(_0x252a4f,_0x3fb011- -0x127);}return new Texture({'context':this[_0x53017a(-0x153,-0x11b)],'width':this[_0x2eaad6(-0x299,-0x214)]['colors'][_0x53017a(-0x15f,-0x137)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x23e674),'source':{'width':this['options'][_0x2eaad6(-0x1c5,-0x16b)][_0x2eaad6(-0x224,-0x1af)],'height':0x1,'arrayBufferView':_0x49506a}});}['createSegmentsGeometry'](){const _0x53f2a0=0x4,_0x502603=this[_0x21114b(0x24,0x63)][_0x39c8a8(0x302,0x307)];let _0x33d805=[];function _0x21114b(_0x14d547,_0x5dcb10){return _0x2e45e5(_0x5dcb10,_0x14d547-0x111);}for(let _0x892fe4=0x0;_0x892fe4<_0x502603;_0x892fe4++){for(let _0x1f9ea5=0x0;_0x1f9ea5<_0x502603;_0x1f9ea5++){for(let _0xdcaaff=0x0;_0xdcaaff<_0x53f2a0;_0xdcaaff++){_0x33d805['push'](_0x892fe4/_0x502603),_0x33d805['push'](_0x1f9ea5/_0x502603);}}}function _0x39c8a8(_0x46c5a7,_0x38e5c6){return _0x19df7d(_0x38e5c6-0x27c,_0x46c5a7);}_0x33d805=new Float32Array(_0x33d805);const _0x24c635=this['options']['particlesTextureSize']**0x2;let _0xb438d4=[];for(let _0x4a61b0=0x0;_0x4a61b0<_0x24c635;_0x4a61b0++){_0xb438d4['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0xb438d4=new Float32Array(_0xb438d4);let _0x21ff30=[];for(let _0x1a2447=0x0,_0x187fd3=0x0;_0x1a2447<_0x24c635;_0x1a2447++){_0x21ff30['push'](_0x187fd3+0x0,_0x187fd3+0x1,_0x187fd3+0x2,_0x187fd3+0x2,_0x187fd3+0x1,_0x187fd3+0x3),_0x187fd3+=_0x53f2a0;}_0x21ff30=new Uint32Array(_0x21ff30);const _0x58bcb2={};_0x58bcb2['componentDatatype']=ComponentDatatype['FLOAT'],_0x58bcb2['componentsPerAttribute']=0x2,_0x58bcb2['values']=_0x33d805;const _0x48375f={};_0x48375f['componentDatatype']=ComponentDatatype['FLOAT'],_0x48375f[_0x39c8a8(0x2b8,0x2d5)]=0x3,_0x48375f['values']=_0xb438d4;const _0x590d38=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x58bcb2),'normal':new GeometryAttribute(_0x48375f)}),'indices':_0x21ff30});return _0x590d38;}[_0x19df7d(0x15d,0x1e1)](_0x3e1926){const _0x3a84ca={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x3e1926};return Appearance['getDefaultRenderState'](!![],![],_0x3a84ca);}[_0x2e45e5(0x59,-0x2d)](){function _0x87cb96(_0x4bcf2f,_0x47d265){return _0x2e45e5(_0x4bcf2f,_0x47d265-0x41a);}const _0xd74159={};_0xd74159['st']=0x0,_0xd74159[_0x5a830e(0x2e7,0x2e0)]=0x1;const _0x219f1d={};_0x219f1d['enabled']=!![];const _0x53ac55={};_0x53ac55[_0x5a830e(0x2e7,0x364)]=!![],_0x53ac55['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x53ac55['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x53ac55['blendFuncDestination']=WebGLRenderingContext[_0x5a830e(0x2bd,0x2c4)];const _0x49c1dc={};_0x49c1dc['viewport']=undefined,_0x49c1dc[_0x5a830e(0x38f,0x379)]=_0x219f1d,_0x49c1dc[_0x87cb96(0x40d,0x3b3)]=!![];function _0x5a830e(_0x2fad96,_0x337cad){return _0x19df7d(_0x337cad-0x23a,_0x2fad96);}_0x49c1dc['blending']=_0x53ac55;const _0x28b5b0=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0xd74159,'geometry':this[_0x87cb96(0x42b,0x3ca)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x87cb96(0x437,0x3fa)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures'][_0x87cb96(0x396,0x377)],'postProcessingPosition':()=>this[_0x87cb96(0x351,0x3cc)]['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x87cb96(0x274,0x2fd)],'frameRateAdjustment':()=>this[_0x5a830e(0x39f,0x36b)]['frameRateAdjustment'],'colorTable':()=>this[_0x5a830e(0x303,0x2d2)],'domain':()=>{function _0x5c9471(_0x492469,_0x136f34){return _0x5a830e(_0x136f34,_0x492469- -0x391);}var _0x3597fa,_0x2d6b29;function _0x417237(_0x6db0f2,_0x4ca483){return _0x5a830e(_0x4ca483,_0x6db0f2- -0x493);}const _0xc07640=new Cartesian2(((_0x3597fa=this[_0x417237(-0x1c7,-0x17a)]['domain'])===null||_0x3597fa===void 0x0?void 0x0:_0x3597fa[_0x5c9471(-0x78,-0x9a)])??this[_0x5c9471(-0x26,-0x69)]['windData']['speed'][_0x5c9471(-0x78,-0xce)],((_0x2d6b29=this['options'][_0x417237(-0x1e7,-0x1a4)])===null||_0x2d6b29===void 0x0?void 0x0:_0x2d6b29[_0x417237(-0x17c,-0x1a1)])??this['computing']['windData'][_0x417237(-0x177,-0x17b)]['max']);return _0xc07640;},'displayRange':()=>{function _0x198e53(_0x91966,_0x567a7a){return _0x87cb96(_0x567a7a,_0x91966- -0x32d);}var _0x2fe7bb,_0x1927c9;function _0x577b97(_0x22a942,_0x53834e){return _0x87cb96(_0x53834e,_0x22a942- -0x379);}const _0x5bb235=new Cartesian2(((_0x2fe7bb=this['options']['displayRange'])===null||_0x2fe7bb===void 0x0?void 0x0:_0x2fe7bb[_0x198e53(0x4d,0xc4)])??this[_0x198e53(0x9f,0xbb)]['windData']['speed']['min'],((_0x1927c9=this[_0x577b97(-0x4c,-0x44)]['displayRange'])===null||_0x1927c9===void 0x0?void 0x0:_0x1927c9[_0x577b97(-0x1,0x48)])??this['computing']['windData']['speed'][_0x577b97(-0x1,-0x29)]);return _0x5bb235;},'particleHeight':()=>this[_0x5a830e(0x2d3,0x2cc)]['fixedHeight']||0x0,'aspect':()=>this[_0x87cb96(0x370,0x3ae)]['drawingBufferWidth']/this[_0x5a830e(0x38d,0x34d)][_0x5a830e(0x237,0x2c1)],'pixelSize':()=>this[_0x5a830e(0x3cf,0x358)][_0x87cb96(0x3cf,0x3dc)],'lineWidth':()=>{const _0x1ba86c={};function _0x37e02e(_0x5b4755,_0x3eff28){return _0x87cb96(_0x3eff28,_0x5b4755- -0xfd);}_0x1ba86c['min']=0x1,_0x1ba86c[_0x37e02e(0x27b,0x2ef)]=0x2;function _0x14a0e3(_0x23effc,_0x323d4a){return _0x87cb96(_0x23effc,_0x323d4a-0x21);}const _0x5554a6=this['options']['lineWidth']||_0x1ba86c;return new Cartesian2(_0x5554a6[_0x14a0e3(0x41f,0x39b)],_0x5554a6[_0x37e02e(0x27b,0x24d)]);},'lineLength':()=>{const _0x3fce1b={};function _0x188aa0(_0x963a7f,_0x2f8813){return _0x87cb96(_0x2f8813,_0x963a7f-0xec);}function _0x75382d(_0x4a99ee,_0x3d08f1){return _0x87cb96(_0x4a99ee,_0x3d08f1-0x15);}_0x3fce1b['min']=0x14,_0x3fce1b['max']=0x64;const _0x2cbb8b=this[_0x75382d(0x385,0x342)]['lineLength']||_0x3fce1b;return new Cartesian2(_0x2cbb8b[_0x188aa0(0x466,0x3fd)],_0x2cbb8b[_0x75382d(0x3f0,0x38d)]);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0x5a830e(0x375,0x341)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x5a830e(0x3f7,0x397)](_0x49c1dc)}),_0x193bfa={};return _0x193bfa[_0x87cb96(0x426,0x3a5)]=_0x28b5b0,_0x193bfa;}['onParticlesTextureSizeChange'](){const _0x638f42=this[_0x44fd74(0x413,0x3d7)]();this[_0x363f5a(0x19a,0x203)]['segments']['geometry']=_0x638f42;const _0x21a05c={};_0x21a05c['context']=this['context'];function _0x44fd74(_0x42d541,_0x537ec4){return _0x2e45e5(_0x42d541,_0x537ec4-0x427);}function _0x363f5a(_0xcf08ca,_0x111af5){return _0x2e45e5(_0xcf08ca,_0x111af5-0x25d);}_0x21a05c['geometry']=_0x638f42,_0x21a05c[_0x363f5a(0x1d9,0x227)]=this['primitives']['segments']['attributeLocations'],_0x21a05c['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0xabbf31=VertexArray['fromGeometry'](_0x21a05c);this['primitives'][_0x44fd74(0x393,0x3b2)]['commandToExecute']&&(this[_0x363f5a(0x189,0x203)][_0x44fd74(0x38b,0x3b2)]['commandToExecute'][_0x363f5a(0x1cd,0x226)]=_0xabbf31);}[_0x2e45e5(-0xcd,-0x130)](){function _0x40bd7d(_0x3419d1,_0x313715){return _0x19df7d(_0x313715-0x1e9,_0x3419d1);}this['colorTable'][_0x40bd7d(0x23c,0x24e)](),this['colorTable']=this['createColorTableTexture']();}[_0x2e45e5(-0x66,-0xe6)](_0x365d96){function _0x42b928(_0x347101,_0x286c5f){return _0x19df7d(_0x347101-0x179,_0x286c5f);}const _0x25d1c4=_0x365d96['colors']&&JSON[_0x13b331(-0xed,-0xc1)](_0x365d96[_0x42b928(0x2b4,0x2ee)])!==JSON['stringify'](this[_0x42b928(0x20b,0x22b)][_0x42b928(0x2b4,0x2d7)]);this['options']=deepMerge(_0x365d96,this[_0x42b928(0x20b,0x286)]);function _0x13b331(_0x349e17,_0x3fd1ae){return _0x2e45e5(_0x349e17,_0x3fd1ae- -0x31);}_0x25d1c4&&this['onColorTableChange']();}['destroy'](){Object['values'](this['framebuffers'])[_0x5bc82d(0x324,0x394)](_0x282b7c=>{function _0x8304e0(_0x1051b4,_0x43730c){return _0x5bc82d(_0x43730c,_0x1051b4- -0x40);}_0x282b7c[_0x8304e0(0x2c6,0x275)]();});function _0x5bc82d(_0x215c84,_0x54a24d){return _0x2e45e5(_0x215c84,_0x54a24d-0x420);}Object['values'](this['primitives'])[_0x578191(-0x1f3,-0x1cc)](_0x14cd47=>{_0x14cd47['destroy']();});function _0x578191(_0x245be0,_0x3d493e){return _0x19df7d(_0x245be0- -0x2e6,_0x3d493e);}this['colorTable'][_0x5bc82d(0x2b8,0x306)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x2e45e5(-0x9b,-0xa1)];class WindParticleSystem{constructor(_0x2bdef4,_0x251034,_0x4acfb6,_0x54b056,_0x25605c){function _0x15004f(_0x3c4012,_0x49a72f){return _0x19df7d(_0x49a72f- -0x39a,_0x3c4012);}function _0x1c9b4a(_0x7a4491,_0x42d71d){return _0x19df7d(_0x7a4491- -0x5,_0x42d71d);}this['context']=_0x2bdef4,this['options']=_0x4acfb6,this[_0x1c9b4a(0x119,0x153)]=_0x54b056,this[_0x15004f(-0x28b,-0x269)]=new WindParticlesComputing(_0x2bdef4,_0x251034,_0x4acfb6,_0x54b056,_0x25605c),this['rendering']=new WindParticlesRendering(_0x2bdef4,_0x4acfb6,_0x54b056,this[_0x15004f(-0x22c,-0x269)]),this[_0x1c9b4a(0x10d,0x151)]();}['getPrimitives'](){const _0x42a88d=[this[_0x840eea(0x149,0x17c)][_0x2dbf9d(0x11,-0x34)]['calculateSpeed'],this['computing'][_0x2dbf9d(0x11,0x8f)][_0x840eea(0x4f,0xb3)],this['computing']['primitives']['postProcessingPosition'],this[_0x2dbf9d(0x32,0xac)]['primitives'][_0x840eea(0x10c,0x155)]];function _0x840eea(_0x3289ba,_0x220212){return _0x2e45e5(_0x3289ba,_0x220212-0x1ca);}function _0x2dbf9d(_0x28f400,_0x43e454){return _0x19df7d(_0x28f400- -0x114,_0x43e454);}return _0x42a88d;}['clearFramebuffers'](){const _0x4b1764=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x42535a(0x19c,0x1cb)]});function _0x42535a(_0x1195da,_0x4ab4dd){return _0x2e45e5(_0x1195da,_0x4ab4dd-0x29d);}function _0x5b2aa5(_0x4fe7ab,_0x1ae452){return _0x19df7d(_0x1ae452- -0x2ed,_0x4fe7ab);}Object[_0x5b2aa5(-0x227,-0x1f3)](this['rendering']['framebuffers'])['forEach'](_0x1706f1=>{function _0x2f50e7(_0x2e2bce,_0x37364c){return _0x5b2aa5(_0x37364c,_0x2e2bce-0x477);}_0x4b1764[_0x2f50e7(0x2ec,0x2c1)]=this[_0x1e8f58(0x3ba,0x43a)][_0x2f50e7(0x22e,0x26b)][_0x1706f1];function _0x1e8f58(_0x1723c9,_0x222957){return _0x5b2aa5(_0x1723c9,_0x222957-0x5e1);}_0x4b1764[_0x2f50e7(0x2ca,0x2e9)](this['context']);});}[_0x19df7d(0x6e,0x7)](_0x26f112){let _0x138d0b=![];_0x26f112['particlesTextureSize']&&this[_0xfc385e(-0xd0,-0x70)][_0xf0916c(-0x5b,-0x43)]!==_0x26f112[_0xfc385e(-0xae,-0x77)]&&(_0x138d0b=!![]);function _0xfc385e(_0x30fd5d,_0xbc6c86){return _0x2e45e5(_0x30fd5d,_0xbc6c86-0x7d);}const _0x1563a7=deepMerge(_0x26f112,this['options']);if(_0x1563a7['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this[_0xfc385e(0x11,-0x70)]=_0x1563a7,this['rendering'][_0xf0916c(-0x4d,-0x8)](_0x26f112),this['computing'][_0xfc385e(-0x71,-0x69)](_0x26f112);function _0xf0916c(_0x1f34a6,_0x4a0542){return _0x2e45e5(_0x4a0542,_0x1f34a6-0x99);}_0x138d0b&&(this[_0xfc385e(-0x1f,0x2f)]['destroyParticlesTextures'](),this['computing'][_0xfc385e(-0x2c,-0x8b)](),this[_0xfc385e(0x8c,0x44)]['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x494ec5){this[_0x2eb16b(-0x7,-0x6f)]=_0x494ec5;function _0x14cdb0(_0x3909ee,_0x456bf8){return _0x2e45e5(_0x3909ee,_0x456bf8-0x300);}function _0x2eb16b(_0x4087fb,_0x59ab8f){return _0x2e45e5(_0x59ab8f,_0x4087fb-0x5a);}this[_0x14cdb0(0x336,0x2b2)]['viewerParameters']=_0x494ec5,this['rendering']['viewerParameters']=_0x494ec5;}[_0x2e45e5(-0x10c,-0x11a)](){function _0x103ead(_0x22ba49,_0x118067){return _0x19df7d(_0x22ba49-0x415,_0x118067);}function _0x4f65cf(_0x281299,_0x1b1b95){return _0x19df7d(_0x281299- -0x136,_0x1b1b95);}this['computing']['destroy'](),this[_0x4f65cf(0x10,0x7a)][_0x103ead(0x47a,0x4a2)]();}}const Cesium$1=mars3d__namespace[_0x2e45e5(-0xfb,-0xa1)],BaseLayer$1=mars3d__namespace[_0x2e45e5(-0xaa,-0x7c)][_0x19df7d(0x75,0x2c)],_0x21a1f5={};_0x21a1f5[_0x19df7d(0xdf,0xf4)]=0x1,_0x21a1f5['max']=0x2;const _0x49715f={};_0x49715f[_0x19df7d(0xdf,0xfe)]=0x14,_0x49715f['max']=0x64;const _0x860d9c={};_0x860d9c['particlesTextureSize']=0x64,_0x860d9c['fixedHeight']=0x0,_0x860d9c['lineWidth']=_0x21a1f5,_0x860d9c['lineLength']=_0x49715f,_0x860d9c[_0x2e45e5(-0x30,-0x70)]=0x1,_0x860d9c['dropRate']=0.003,_0x860d9c[_0x19df7d(0x94,0x6e)]=0.001,_0x860d9c['colors']=[_0x2e45e5(-0xda,-0xe0)],_0x860d9c['flipY']=![],_0x860d9c['dynamic']=!![];const DEF_OPTIONS=_0x860d9c;class WindLayer extends BaseLayer$1{constructor(_0x171112={}){_0x171112={...DEF_OPTIONS,..._0x171112},super(_0x171112);function _0x36631f(_0x142380,_0x43cd93){return _0x19df7d(_0x43cd93- -0x272,_0x142380);}this[_0x36631f(-0x1c1,-0x165)](_0x171112,_0x171112);}get[_0x19df7d(0x103,0xb1)](){function _0x418868(_0x4fc894,_0x4f68f5){return _0x2e45e5(_0x4f68f5,_0x4fc894-0x108);}return this[_0x418868(0xae,0x108)];}get['data'](){function _0x2b32b8(_0x59f978,_0x1b57b6){return _0x19df7d(_0x59f978-0x167,_0x1b57b6);}function _0x9c6874(_0x327d90,_0x1430b9){return _0x2e45e5(_0x327d90,_0x1430b9-0x201);}return this[_0x9c6874(0xc0,0x114)][_0x2b32b8(0x273,0x1f5)];}set['data'](_0x127c7d){this[_0x45cf34(-0x35f,-0x2f2)][_0x45cf34(-0x2cb,-0x278)]=_0x127c7d;function _0x45cf34(_0x4748cb,_0x180375){return _0x2e45e5(_0x4748cb,_0x180375- -0x205);}function _0x59b7e2(_0x19d1a9,_0x45eb38){return _0x2e45e5(_0x19d1a9,_0x45eb38-0x1c3);}this['setData'](_0x127c7d);}get['colors'](){return this['options']['colors'];}set['colors'](_0x391be7){function _0x4a4b85(_0x330349,_0x3a6938){return _0x2e45e5(_0x330349,_0x3a6938-0x54a);}function _0x1e3bd1(_0x49dfce,_0x528a25){return _0x2e45e5(_0x528a25,_0x49dfce-0x4f9);}this['options'][_0x4a4b85(0x527,0x506)]=_0x391be7;const _0x22cd89={};_0x22cd89['colors']=_0x391be7,this[_0x1e3bd1(0x487,0x41a)](this['options'],_0x22cd89);}['_mountedHook'](){}[_0x19df7d(0x163,0x101)](){this['scene']=this['_map']['scene'],this['camera']=this[_0x3a45e5(0x4e7,0x4b3)]['camera'];this['options']['data']&&this['setData'](this['options'][_0x3a45e5(0x480,0x4f4)]);if(!this[_0x223d8a(0x27e,0x267)])return;this[_0x3a45e5(0x503,0x506)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1[(_0x223d8a(0x27c,0x243))](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this['updateViewerParameters'](),this[_0x3a45e5(0x544,0x4c1)]=new WindParticleSystem(this[_0x3a45e5(0x4df,0x4d4)]['context'],this['windData'],this['options'],this[_0x3a45e5(0x515,0x506)],this[_0x223d8a(0x2ce,0x2cb)]);function _0x3a45e5(_0x35df19,_0x2b15c1){return _0x19df7d(_0x2b15c1-0x3e8,_0x35df19);}this['primitives']=this[_0x3a45e5(0x495,0x4c1)][_0x3a45e5(0x4d4,0x4e3)](),this['primitives']['forEach'](_0x25422f=>{function _0x44d609(_0x1f331a,_0xa0184f){return _0x3a45e5(_0x1f331a,_0xa0184f- -0x5d7);}this['scene']['primitives'][_0x44d609(-0x126,-0x131)](_0x25422f);}),this[_0x223d8a(0x235,0x21f)]['percentageChanged']=0.01,this['camera']['changed']['addEventListener'](this['updateViewerParameters']['bind'](this));function _0x223d8a(_0x5ac7e3,_0x16055b){return _0x19df7d(_0x5ac7e3-0x1e2,_0x16055b);}this['scene']['morphComplete']['addEventListener'](this[_0x3a45e5(0x4ba,0x46c)]['bind'](this)),window[_0x223d8a(0x293,0x20d)](_0x223d8a(0x28b,0x20c),this['updateViewerParameters']['bind'](this));}[_0x19df7d(0x129,0xba)](){this['camera']['changed'][_0x51b17e(0x3be,0x43c)](this[_0x51b17e(0x3f1,0x43e)]['bind'](this));function _0x116947(_0x27c92c,_0x39daea){return _0x2e45e5(_0x39daea,_0x27c92c- -0xc1);}this[_0x116947(-0x154,-0x17f)][_0x116947(-0xeb,-0x98)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),window['removeEventListener'](_0x116947(-0x197,-0x1bd),this[_0x51b17e(0x3f1,0x3dc)]['bind'](this));function _0x51b17e(_0x52466a,_0xe211ff){return _0x2e45e5(_0xe211ff,_0x52466a-0x4ec);}this['primitives']&&(this[_0x116947(-0x11b,-0xf1)]['forEach'](_0x1a855d=>{function _0x7a3bd8(_0x17e484,_0x15eb14){return _0x51b17e(_0x15eb14- -0x80,_0x17e484);}this['scene']['primitives'][_0x7a3bd8(0x409,0x3ea)](_0x1a855d);}),delete this['primitives']),this['particleSystem']&&(this[_0x51b17e(0x446,0x3d8)][_0x51b17e(0x3d2,0x3a5)](),delete this['particleSystem']);}['setData'](_0x4f403d,_0x2b70f4){function _0x1df9b5(_0x144a0b,_0x1b3652){return _0x2e45e5(_0x144a0b,_0x1b3652- -0xd7);}this['windData']=this[_0x1df9b5(-0x1a9,-0x1e6)](_0x4f403d);if(_0x2b70f4){this[_0x1df9b5(-0x163,-0x12d)](),this['_addedHook']();return;}function _0x40002a(_0x46a8f8,_0x3e4040){return _0x2e45e5(_0x3e4040,_0x46a8f8-0x17b);}this[_0x40002a(0xd5,0x6a)]?(this['particleSystem'][_0x1df9b5(-0x10d,-0x125)]['updateWindData'](this['windData']),this[_0x1df9b5(-0xe0,-0x16a)][_0x40002a(0xbe,0x4b)]()):this['_addedHook']();}[_0x19df7d(0x10d,0x8d)](_0x149bb8,_0x1448a1){function _0x39aac6(_0x542511,_0x6b2082){return _0x2e45e5(_0x6b2082,_0x542511-0x576);}function _0x189317(_0x256aa9,_0x4474cb){return _0x2e45e5(_0x4474cb,_0x256aa9-0x27c);}this[_0x39aac6(0x4d0,0x4d6)]&&(this['particleSystem']['changeOptions'](_0x1448a1),this[_0x39aac6(0x4e3,0x4a8)]['requestRender']());}[_0x2e45e5(-0x140,-0x10f)](_0x50c339){function _0x37e109(_0x4a4e07,_0x11dd86){return _0x19df7d(_0x4a4e07- -0x20,_0x11dd86);}var _0x23d8fc,_0x37d193;const _0x44e86b={..._0x50c339},_0x4be132=_0x44e86b;!_0x4be132['height']&&_0x4be132['rows']&&(_0x4be132[_0x11aa98(-0x321,-0x313)]=_0x4be132['rows']);!_0x4be132[_0x37e109(0xf7,0xce)]&&_0x4be132[_0x37e109(0x123,0xc6)]&&(_0x4be132['width']=_0x4be132[_0x37e109(0x123,0x14f)]);!_0x4be132[_0x11aa98(-0x2ab,-0x2b0)]&&(_0x4be132[_0x11aa98(-0x2ab,-0x30b)]={'west':_0x4be132['xmin'],'south':_0x4be132['ymin'],'east':_0x4be132[_0x37e109(0x7b,0x1)],'north':_0x4be132[_0x11aa98(-0x25a,-0x1ee)]});if(!_0x4be132['u']){const _0x2d8ed4={};_0x2d8ed4['array']=_0x50c339['udata'],_0x2d8ed4[_0x37e109(0xbf,0x5d)]=_0x50c339['umin'],_0x2d8ed4['max']=_0x50c339['umax'],_0x4be132['u']=_0x2d8ed4;}if(!_0x4be132['v']){const _0x582ded={};_0x582ded['array']=_0x50c339[_0x11aa98(-0x2fd,-0x278)],_0x582ded['min']=_0x50c339[_0x37e109(0x38,-0x39)],_0x582ded['max']=_0x50c339[_0x11aa98(-0x24f,-0x277)],_0x4be132['v']=_0x582ded;}function _0x11aa98(_0x245d7f,_0xfe2fe2){return _0x19df7d(_0x245d7f- -0x39f,_0xfe2fe2);}if(((_0x23d8fc=_0x4be132['speed'])===null||_0x23d8fc===void 0x0?void 0x0:_0x23d8fc['min'])===undefined||((_0x37d193=_0x4be132['speed'])===null||_0x37d193===void 0x0?void 0x0:_0x37d193[_0x37e109(0xbd,0x9d)])===undefined||_0x4be132['speed']['array']===undefined){const _0x48e966={'array':new Float32Array(_0x4be132['u']['array'][_0x37e109(0xd7,0x112)]),'min':Number['MAX_VALUE'],'max':Number[_0x11aa98(-0x285,-0x21e)]};for(let _0x278ad5=0x0;_0x278ad5<_0x4be132['u'][_0x37e109(0x93,0xb5)][_0x11aa98(-0x2a8,-0x25b)];_0x278ad5++){_0x48e966[_0x37e109(0x93,0xc0)][_0x278ad5]=Math[_0x37e109(0x51,0xa3)](_0x4be132['u'][_0x37e109(0x93,0x62)][_0x278ad5]*_0x4be132['u']['array'][_0x278ad5]+_0x4be132['v']['array'][_0x278ad5]*_0x4be132['v']['array'][_0x278ad5]),_0x48e966['array'][_0x278ad5]!==0x0&&(_0x48e966['min']=Math['min'](_0x48e966[_0x11aa98(-0x2c0,-0x25a)],_0x48e966['array'][_0x278ad5]),_0x48e966['max']=Math[_0x11aa98(-0x2c2,-0x2c5)](_0x48e966['max'],_0x48e966[_0x37e109(0x93,0xbd)][_0x278ad5]));}_0x4be132[_0x37e109(0xc2,0x146)]=_0x48e966;}return _0x4be132;}['updateViewerParameters'](){var _0x122cea;const _0x5efafc=this['scene'],_0x24354c=_0x5efafc['canvas'],_0x1c0ac7={};_0x1c0ac7['x']=0x0,_0x1c0ac7['y']=0x0;function _0x54ee1e(_0x34dbd4,_0x1e4d7d){return _0x2e45e5(_0x1e4d7d,_0x34dbd4-0x19b);}const _0x10540b={};_0x10540b['x']=0x0,_0x10540b['y']=_0x24354c[_0x2a92f3(0x27e,0x2c4)];const _0x2517bb={};function _0x2a92f3(_0x3507fa,_0x5efcaf){return _0x19df7d(_0x5efcaf-0x224,_0x3507fa);}_0x2517bb['x']=_0x24354c['clientWidth'],_0x2517bb['y']=0x0;const _0xfd336d={};_0xfd336d['x']=_0x24354c[_0x54ee1e(0x16b,0xf5)],_0xfd336d['y']=_0x24354c[_0x2a92f3(0x2ce,0x2c4)];const _0x386a8e=[_0x1c0ac7,_0x10540b,_0x2517bb,_0xfd336d];let _0x2d45e7=0xb4,_0x1934fc=-0xb4,_0xed0a4b=0x5a,_0x18ba1b=-0x5a,_0x2f3e9c=![];for(const _0x16990c of _0x386a8e){const _0x572beb=_0x5efafc['camera'][_0x54ee1e(0x11e,0x168)](new Cesium$1[(_0x54ee1e(0xb6,0x70))](_0x16990c['x'],_0x16990c['y']),_0x5efafc['globe']['ellipsoid']);if(!_0x572beb){_0x2f3e9c=!![];break;}const _0x14e8de=_0x5efafc[_0x54ee1e(0xa1,0x94)][_0x54ee1e(0xac,0xce)]['cartesianToCartographic'](_0x572beb),_0x355aa3=Cesium$1[_0x54ee1e(0xe5,0xc8)][_0x54ee1e(0xdd,0xd2)](_0x14e8de['longitude']),_0x570fca=Cesium$1['Math'][_0x54ee1e(0xdd,0xda)](_0x14e8de['latitude']);_0x2d45e7=Math['min'](_0x2d45e7,_0x355aa3),_0x1934fc=Math[_0x2a92f3(0x2f0,0x301)](_0x1934fc,_0x355aa3),_0xed0a4b=Math[_0x54ee1e(0xfb,0x147)](_0xed0a4b,_0x570fca),_0x18ba1b=Math[_0x2a92f3(0x330,0x301)](_0x18ba1b,_0x570fca);}if(!_0x2f3e9c){const _0x6175b5=new Cesium$1[(_0x2a92f3(0x272,0x2be))](Math[_0x54ee1e(0xf9,0x101)](this['windData']['bounds']['west'],_0x2d45e7),Math['min'](this[_0x54ee1e(0xb8,0x94)][_0x54ee1e(0x110,0xf8)][_0x2a92f3(0x26a,0x274)],_0x1934fc)),_0x3707ea=new Cesium$1['Cartesian2'](Math[_0x54ee1e(0xf9,0x95)](this['windData'][_0x2a92f3(0x290,0x318)][_0x2a92f3(0x222,0x297)],_0xed0a4b),Math['min'](this[_0x2a92f3(0x2d1,0x2c0)][_0x2a92f3(0x2ea,0x318)]['north'],_0x18ba1b)),_0x420f0d=(_0x6175b5['y']-_0x6175b5['x'])*0.05,_0x500cfb=(_0x3707ea['y']-_0x3707ea['x'])*0.05;_0x6175b5['x']=Math[_0x2a92f3(0x2d2,0x301)](this[_0x2a92f3(0x243,0x2c0)][_0x54ee1e(0x110,0xae)]['west'],_0x6175b5['x']-_0x420f0d),_0x6175b5['y']=Math[_0x2a92f3(0x310,0x303)](this['windData'][_0x2a92f3(0x2d8,0x318)][_0x54ee1e(0x6c,0x2)],_0x6175b5['y']+_0x420f0d),_0x3707ea['x']=Math['max'](this[_0x54ee1e(0xb8,0x8d)][_0x2a92f3(0x343,0x318)]['south'],_0x3707ea['x']-_0x500cfb),_0x3707ea['y']=Math[_0x54ee1e(0xfb,0x105)](this[_0x54ee1e(0xb8,0xf7)]['bounds']['north'],_0x3707ea['y']+_0x500cfb),this['viewerParameters']['lonRange']=_0x6175b5,this[_0x54ee1e(0x13a,0xb8)][_0x2a92f3(0x3a1,0x323)]=_0x3707ea;const _0xe6874f=this['windData']['bounds'][_0x54ee1e(0x6c,0x28)]-this['windData']['bounds'][_0x54ee1e(0xd0,0x14b)],_0x1941df=this[_0x2a92f3(0x314,0x2c0)][_0x2a92f3(0x2a2,0x318)]['north']-this[_0x2a92f3(0x270,0x2c0)][_0x54ee1e(0x110,0x14d)]['south'],_0x1ac936=(_0x6175b5['y']-_0x6175b5['x'])/_0xe6874f,_0x558bee=(_0x3707ea['y']-_0x3707ea['x'])/_0x1941df,_0x3455df=Math[_0x2a92f3(0x2ab,0x303)](_0x1ac936,_0x558bee),_0x57bf6f=0x3e8*_0x3455df;_0x57bf6f>0x0&&(this[_0x54ee1e(0x13a,0x1be)]['pixelSize']=Math['max'](0x0,Math[_0x2a92f3(0x323,0x303)](0x3e8,_0x57bf6f)));}this[_0x2a92f3(0x364,0x342)]['sceneMode']=this[_0x2a92f3(0x351,0x310)][_0x54ee1e(0x152,0x1b6)],(_0x122cea=this[_0x2a92f3(0x2e9,0x2fd)])===null||_0x122cea===void 0x0||_0x122cea['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x33742f,_0x249af6){const {bounds:_0x4f632d,width:_0x4b84d0,height:_0x815f85,u:_0x3ca14f,v:_0x2ba1d1,speed:_0x175b13}=this['windData'],{flipY:_0x35014d}=this['options'];if(_0x33742f<_0x4f632d[_0xe69a33(-0x17b,-0x1bf)]||_0x33742f>_0x4f632d['east']||_0x249af6<_0x4f632d['south']||_0x249af6>_0x4f632d['north'])return null;const _0x59464c=(_0x33742f-_0x4f632d['west'])/(_0x4f632d['east']-_0x4f632d['west'])*(_0x4b84d0-0x1);let _0x5225bd=(_0x249af6-_0x4f632d[_0xe69a33(-0x1bc,-0x243)])/(_0x4f632d['north']-_0x4f632d[_0x577d31(-0x265,-0x2a1)])*(_0x815f85-0x1);_0x35014d&&(_0x5225bd=_0x815f85-0x1-_0x5225bd);const _0x1cffdd=Math[_0x577d31(-0x1a0,-0x11d)](_0x59464c),_0x2297f2=Math['floor'](_0x5225bd),_0x26103e=Math['floor'](_0x59464c),_0x5c4b3d=Math['min'](_0x26103e+0x1,_0x4b84d0-0x1),_0x71a2e=Math[_0x577d31(-0x1a0,-0x126)](_0x5225bd),_0x45fcb6=Math['min'](_0x71a2e+0x1,_0x815f85-0x1),_0x1b8545=_0x59464c-_0x26103e,_0x23f795=_0x5225bd-_0x71a2e,_0x34e51f=_0x2297f2*_0x4b84d0+_0x1cffdd,_0x58807c=_0x71a2e*_0x4b84d0+_0x26103e;function _0x577d31(_0x50ac7f,_0x31a484){return _0x2e45e5(_0x31a484,_0x50ac7f- -0x159);}const _0x246418=_0x71a2e*_0x4b84d0+_0x5c4b3d,_0x3aabd9=_0x45fcb6*_0x4b84d0+_0x26103e,_0x2d2376=_0x45fcb6*_0x4b84d0+_0x5c4b3d,_0x4ce6ef=_0x3ca14f[_0xe69a33(-0x17c,-0x1c4)][_0x58807c],_0x504609=_0x3ca14f['array'][_0x246418],_0x35e275=_0x3ca14f['array'][_0x3aabd9],_0x5dea00=_0x3ca14f['array'][_0x2d2376],_0x58534b=(0x1-_0x1b8545)*(0x1-_0x23f795)*_0x4ce6ef+_0x1b8545*(0x1-_0x23f795)*_0x504609+(0x1-_0x1b8545)*_0x23f795*_0x35e275+_0x1b8545*_0x23f795*_0x5dea00,_0x4bd5a1=_0x2ba1d1['array'][_0x58807c],_0x462179=_0x2ba1d1[_0x577d31(-0x225,-0x21e)][_0x246418],_0x2576a0=_0x2ba1d1[_0xe69a33(-0x17c,-0x19d)][_0x3aabd9],_0x558f67=_0x2ba1d1[_0x577d31(-0x225,-0x28b)][_0x2d2376],_0x2ea8f9=(0x1-_0x1b8545)*(0x1-_0x23f795)*_0x4bd5a1+_0x1b8545*(0x1-_0x23f795)*_0x462179+(0x1-_0x1b8545)*_0x23f795*_0x2576a0+_0x1b8545*_0x23f795*_0x558f67,_0x597f34=Math['sqrt'](_0x58534b*_0x58534b+_0x2ea8f9*_0x2ea8f9),_0xf1a2ef={};_0xf1a2ef['u']=_0x3ca14f['array'][_0x34e51f],_0xf1a2ef['v']=_0x2ba1d1[_0xe69a33(-0x17c,-0xf4)][_0x34e51f],_0xf1a2ef[_0x577d31(-0x1f6,-0x268)]=_0x175b13[_0xe69a33(-0x17c,-0x118)][_0x34e51f];const _0x41bdfd={};_0x41bdfd['u']=_0x58534b,_0x41bdfd['v']=_0x2ea8f9,_0x41bdfd['speed']=_0x597f34;const _0x1c0d92={};_0x1c0d92['original']=_0xf1a2ef,_0x1c0d92[_0xe69a33(-0x19c,-0x1e5)]=_0x41bdfd;function _0xe69a33(_0x4f677e,_0x1ba6a7){return _0x2e45e5(_0x1ba6a7,_0x4f677e- -0xb0);}return _0x1c0d92;}}mars3d__namespace['LayerUtil']['register'](_0x19df7d(0x105,0x132),WindLayer),mars3d__namespace[_0x19df7d(0x103,0xf7)]['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null;function _0x4e3f67(_0x4ce607,_0x9e8ed){return _0x19df7d(_0x4ce607-0x4e,_0x9e8ed);}this[_0x4e3f67(0xd7,0x6f)]=null;function _0x3750e3(_0x43135f,_0x4bd932){return _0x19df7d(_0x4bd932-0xb0,_0x43135f);}this['tlng']=null,this['tlat']=null,this['age']=null,this[_0x4e3f67(0x130,0x136)]=null;}[_0x19df7d(0x65,0xdc)](){for(const _0x3dafe0 in this){delete this[_0x3dafe0];}}}class CanvasWindField{constructor(_0x4ed132){this['setOptions'](_0x4ed132);}get['speedRate'](){return this['_speedRate'];}set['speedRate'](_0x26ab4a){this['_speedRate']=(0x64-(_0x26ab4a>0x63?0x63:_0x26ab4a))*0x64;function _0x4b9e88(_0x3edfd5,_0x3cb48d){return _0x2e45e5(_0x3edfd5,_0x3cb48d-0x1de);}function _0x1478f2(_0x4fe827,_0x19c842){return _0x19df7d(_0x19c842- -0x130,_0x4fe827);}this[_0x1478f2(-0x67,-0x45)]=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x1478f2(-0x63,0x15)]-this['ymin'])/this[_0x4b9e88(0x127,0x192)]];}get[_0x2e45e5(-0x15e,-0xee)](){function _0x5bc7e7(_0x1449cf,_0x32f2c1){return _0x2e45e5(_0x1449cf,_0x32f2c1- -0x36);}return this[_0x5bc7e7(-0x5d,-0xe1)];}set['maxAge'](_0x2cbe86){function _0x5ab27f(_0x4c95d3,_0x43ef5e){return _0x19df7d(_0x43ef5e-0x37f,_0x4c95d3);}this[_0x5ab27f(0x4d4,0x453)]=_0x2cbe86;}['setOptions'](_0x35f60e){this['options']=_0x35f60e;function _0x53ad1b(_0x5540a3,_0x5c025c){return _0x2e45e5(_0x5540a3,_0x5c025c- -0xb7);}function _0x231161(_0x1d911a,_0x4480c9){return _0x2e45e5(_0x1d911a,_0x4480c9- -0xff);}this['maxAge']=_0x35f60e[_0x53ad1b(-0x209,-0x1a5)]||0x78,this[_0x53ad1b(-0x174,-0x1db)]=_0x35f60e['speedRate']||0x32,this['particles']=[];const _0x3223d8=_0x35f60e[_0x231161(-0x22d,-0x204)]||0x1000;for(let _0x3dcfb3=0x0;_0x3dcfb3<_0x3223d8;_0x3dcfb3++){const _0x36c86c=this['_randomParticle'](new CanvasParticle());this[_0x231161(-0x2ac,-0x221)]['push'](_0x36c86c);}}['setDate'](_0x1b93c7){this['rows']=_0x1b93c7[_0x371ae3(0x47,0xc6)],this['cols']=_0x1b93c7['cols'],this['xmin']=_0x1b93c7['xmin'],this['xmax']=_0x1b93c7['xmax'],this[_0x371ae3(0xe8,0x9e)]=_0x1b93c7['ymin'],this['ymax']=_0x1b93c7['ymax'];function _0x371ae3(_0x26a6a1,_0x24667d){return _0x2e45e5(_0x26a6a1,_0x24667d-0x13c);}this['grid']=[];const _0xba49f8=_0x1b93c7[_0x9d864d(0x171,0x190)],_0x585598=_0x1b93c7['vdata'];let _0x2e4239=![];_0xba49f8[_0x9d864d(0x119,0x133)]===this[_0x9d864d(0x177,0x145)]&&_0xba49f8[0x0][_0x9d864d(0x118,0x133)]===this['cols']&&(_0x2e4239=!![]);let _0x45d52b=0x0,_0x2c0039=null;function _0x9d864d(_0x46bc18,_0x5c293e){return _0x19df7d(_0x5c293e-0x3c,_0x46bc18);}let _0xa81e14=null;for(let _0x4d02ce=0x0;_0x4d02ce<this['rows'];_0x4d02ce++){_0x2c0039=[];for(let _0x10e8e1=0x0;_0x10e8e1<this[_0x9d864d(0x107,0x17f)];_0x10e8e1++,_0x45d52b++){_0x2e4239?_0xa81e14=this['_calcUV'](_0xba49f8[_0x4d02ce][_0x10e8e1],_0x585598[_0x4d02ce][_0x10e8e1]):_0xa81e14=this['_calcUV'](_0xba49f8[_0x45d52b],_0x585598[_0x45d52b]),_0x2c0039['push'](_0xa81e14);}this[_0x371ae3(0x6f,0xc5)][_0x9d864d(0xa1,0x104)](_0x2c0039);}!this[_0x371ae3(0x1f,0x4f)][_0x371ae3(-0x26,0x36)]&&this['grid'][_0x371ae3(0x90,0x11)]();}[_0x2e45e5(-0xcd,-0x100)](){function _0x579357(_0x28364d,_0x104d2c){return _0x2e45e5(_0x104d2c,_0x28364d- -0x20f);}delete this['rows'],delete this[_0x39e922(-0x1e3,-0x1c2)],delete this['xmin'],delete this['xmax'],delete this[_0x39e922(-0x245,-0x2b0)];function _0x39e922(_0x56388c,_0x470f52){return _0x19df7d(_0x56388c- -0x326,_0x470f52);}delete this['ymax'],delete this[_0x39e922(-0x21e,-0x27d)],delete this['particles'];}['toGridXY'](_0x58d40a,_0x9a4de9){function _0x53c573(_0x2b814,_0x125a5b){return _0x2e45e5(_0x2b814,_0x125a5b-0x2e);}const _0x47c0e4=(_0x58d40a-this[_0x53c573(-0xa8,-0xb3)])/(this[_0x53c573(-0x12a,-0xb6)]-this[_0x53c573(-0xee,-0xb3)])*(this[_0x557d7e(0x369,0x317)]-0x1);function _0x557d7e(_0x29f1eb,_0x3410a1){return _0x2e45e5(_0x29f1eb,_0x3410a1-0x353);}const _0x14c17d=(this['ymax']-_0x9a4de9)/(this[_0x53c573(0x14,-0xc)]-this[_0x53c573(0x1b,-0x70)])*(this['rows']-0x1);return[_0x47c0e4,_0x14c17d];}[_0x2e45e5(-0xd9,-0x83)](_0x18172a,_0x5f3dc7){if(_0x18172a<0x0||_0x18172a>=this['cols']||_0x5f3dc7>=this['rows'])return[0x0,0x0,0x0];const _0x2399c0=Math[_0x47c652(0x166,0x1bc)](_0x18172a);function _0x47c652(_0x39e4b5,_0x279da7){return _0x2e45e5(_0x279da7,_0x39e4b5-0x1ad);}function _0x1e5d77(_0xb4f468,_0x4d157f){return _0x19df7d(_0x4d157f- -0x135,_0xb4f468);}const _0x24ae3d=Math[_0x1e5d77(0x37,0x3)](_0x5f3dc7);if(_0x2399c0===_0x18172a&&_0x24ae3d===_0x5f3dc7)return this[_0x47c652(0x136,0xcd)][_0x5f3dc7][_0x18172a];const _0xd8d270=_0x2399c0+0x1,_0x416055=_0x24ae3d+0x1,_0x477f82=this['getUVByXY'](_0x2399c0,_0x24ae3d),_0x3d3dfe=this['getUVByXY'](_0xd8d270,_0x24ae3d),_0x87d7ec=this['getUVByXY'](_0x2399c0,_0x416055),_0x14c6cc=this['getUVByXY'](_0xd8d270,_0x416055);let _0x32eeb0=null;try{_0x32eeb0=this['_bilinearInterpolation'](_0x18172a-_0x2399c0,_0x5f3dc7-_0x24ae3d,_0x477f82,_0x3d3dfe,_0x87d7ec,_0x14c6cc);}catch(_0x371c22){console['log'](_0x18172a,_0x5f3dc7);}return _0x32eeb0;}['_bilinearInterpolation'](_0x5c8e2a,_0x5bf75b,_0x1a9fe4,_0x6e5cf1,_0x43b34f,_0x2766c9){const _0xf1653=0x1-_0x5c8e2a,_0x379c13=0x1-_0x5bf75b;function _0x285862(_0xa0e28b,_0x4edaf7){return _0x2e45e5(_0x4edaf7,_0xa0e28b-0x87);}const _0x5f52e2=_0xf1653*_0x379c13,_0x200586=_0x5c8e2a*_0x379c13,_0xca61a5=_0xf1653*_0x5bf75b,_0x3cefdb=_0x5c8e2a*_0x5bf75b,_0x55cfef=_0x1a9fe4[0x0]*_0x5f52e2+_0x6e5cf1[0x0]*_0x200586+_0x43b34f[0x0]*_0xca61a5+_0x2766c9[0x0]*_0x3cefdb,_0x34c654=_0x1a9fe4[0x1]*_0x5f52e2+_0x6e5cf1[0x1]*_0x200586+_0x43b34f[0x1]*_0xca61a5+_0x2766c9[0x1]*_0x3cefdb;return this[_0x285862(0x62,0xb4)](_0x55cfef,_0x34c654);}[_0x19df7d(0x15a,0x18b)](_0x13001a,_0xfa6fb6){return[+_0x13001a,+_0xfa6fb6,Math['sqrt'](_0x13001a*_0x13001a+_0xfa6fb6*_0xfa6fb6)];}['getUVByPoint'](_0x5183ad,_0x2675ad){if(!this[_0x508c78(-0x1eb,-0x219)](_0x5183ad,_0x2675ad))return null;function _0x41eac3(_0x41c2c0,_0x214f75){return _0x19df7d(_0x41c2c0- -0x129,_0x214f75);}const _0x1283b5=this[_0x508c78(-0x1eb,-0x26a)](_0x5183ad,_0x2675ad);function _0x508c78(_0x4fe8c5,_0x1e1f68){return _0x19df7d(_0x1e1f68- -0x35b,_0x4fe8c5);}const _0x21dcf9=this[_0x508c78(-0x2a4,-0x25f)](_0x1283b5[0x0],_0x1283b5[0x1]);return _0x21dcf9;}[_0x19df7d(0x142,0x114)](_0x36055d,_0xfd7b00){function _0x5211b3(_0x3da531,_0x265984){return _0x2e45e5(_0x3da531,_0x265984-0x2cf);}return _0x36055d>=this['xmin']&&_0x36055d<=this[_0x5211b3(0x1f6,0x1eb)]&&_0xfd7b00>=this['ymin']&&_0xfd7b00<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0x30daf5(_0x24649b,_0x483133){return _0x2e45e5(_0x24649b,_0x483133- -0x19a);}const _0xde4af0=fRandomByfloat(this[_0x542d60(-0x1f0,-0x1e6)],this[_0x542d60(-0x166,-0x1e9)]);function _0x542d60(_0x86a496,_0x11d985){return _0x19df7d(_0x11d985- -0x284,_0x86a496);}const _0x554a38=fRandomByfloat(this[_0x542d60(-0x1e9,-0x1a3)],this[_0x30daf5(-0x213,-0x1d4)]),_0x5ce799={};return _0x5ce799[_0x30daf5(-0x225,-0x290)]=_0x554a38,_0x5ce799[_0x30daf5(-0x185,-0x1b9)]=_0xde4af0,_0x5ce799;}[_0x2e45e5(-0x8e,-0xc6)](){function _0x1092f2(_0x104330,_0x299f35){return _0x19df7d(_0x104330- -0x27c,_0x299f35);}let _0xb6389f,_0x3d4457,_0x3de5d7;for(let _0x8646b6=0x0,_0x21f573=this['particles']['length'];_0x8646b6<_0x21f573;_0x8646b6++){let _0x4244de=this[_0x5492fc(-0x211,-0x24f)][_0x8646b6];_0x4244de[_0x1092f2(-0x1c4,-0x14d)]<=0x0&&(_0x4244de=this[_0x1092f2(-0x14c,-0x156)](_0x4244de));if(_0x4244de['age']>0x0){const _0x10bf1e=_0x4244de['tlng'],_0x3161d5=_0x4244de['tlat'];_0x3de5d7=this['getUVByPoint'](_0x10bf1e,_0x3161d5),_0x3de5d7?(_0xb6389f=_0x10bf1e+this['_calc_speedRate'][0x0]*_0x3de5d7[0x0],_0x3d4457=_0x3161d5+this['_calc_speedRate'][0x1]*_0x3de5d7[0x1],_0x4244de['lng']=_0x10bf1e,_0x4244de['lat']=_0x3161d5,_0x4244de['tlng']=_0xb6389f,_0x4244de['tlat']=_0x3d4457,_0x4244de['speed']=_0x3de5d7[0x2],_0x4244de['age']--):_0x4244de['age']=0x0;}}function _0x5492fc(_0x314d53,_0x29c519){return _0x2e45e5(_0x314d53,_0x29c519- -0x12d);}return this['particles'];}[_0x19df7d(0x130,0x1b5)](_0x5ab47d){function _0x19a316(_0x2d5d0d,_0x2a90da){return _0x2e45e5(_0x2d5d0d,_0x2a90da-0x15c);}function _0x50c738(_0x27d0c6,_0xe95ce8){return _0x19df7d(_0xe95ce8-0x179,_0x27d0c6);}let _0x43f053,_0x46850e;for(let _0x5b4fad=0x0;_0x5b4fad<0x1e;_0x5b4fad++){_0x43f053=this['getRandomLatLng'](),_0x46850e=this['getUVByPoint'](_0x43f053['lng'],_0x43f053['lat']);if(_0x46850e&&_0x46850e[0x2]>0x0)break;}if(!_0x46850e)return _0x5ab47d;const _0x1c7cfc=_0x43f053[_0x50c738(0x271,0x2d9)]+this['_calc_speedRate'][0x0]*_0x46850e[0x0],_0x373ac1=_0x43f053['lat']+this['_calc_speedRate'][0x1]*_0x46850e[0x1];return _0x5ab47d['lng']=_0x43f053['lng'],_0x5ab47d['lat']=_0x43f053['lat'],_0x5ab47d['tlng']=_0x1c7cfc,_0x5ab47d['tlat']=_0x373ac1,_0x5ab47d[_0x50c738(0x200,0x231)]=Math[_0x19a316(0x11a,0xf1)](0xa+Math['random']()*this['maxAge']),_0x5ab47d['speed']=_0x46850e[0x2],_0x5ab47d;}['destroy'](){for(const _0x2f0c6e in this){delete this[_0x2f0c6e];}}}function fRandomByfloat(_0x3522ac,_0x3273a7){return _0x3522ac+Math['random']()*(_0x3273a7-_0x3522ac);}const Cesium=mars3d__namespace[_0x19df7d(0xde,0x68)],BaseLayer=mars3d__namespace['layer']['BaseLayer'];function _0x34f9(){const _0x3ab8f7=['owner','add','autoClear','CanvasWindLayer','toDegrees','requestRender','register','globalCompositeOperation','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','tlng','modelMatrix','push','Math','getPostProcessingPositionShader','_map','type','none','commandToExecute','CLAMP_TO_EDGE','NEAREST','redraw','willReadFrequently','wrapT','_maxAge','_drawLines','RGBA','SCENE3D','north','particleSystem','geometry','clearCommand','currentParticlesPosition','max','Cesium','min','minificationFilter','ymin','speed','drawingBufferWidth','defineProperty','lineWidth','now','unbindEvent','frameRateAdjustment','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a','fromGeometry','_calc_speedRate','scene','visible','fillRect','stringify','pass','toGridXY','frameTime','forEach','bounds','1002569TLYIkD','flatMap','length','mouse_down','moveTo','keys','getPrimitives','getUVByXY','remove','strokeStyle','latRange','windTextures','preExecute','pickEllipsoid','layer','lastFramesPerSecond','wind','_canrefresh','textures','grid','rows','segments','bindEvent','data','_setOptionsHook','_onMouseMoveEvent','speedFactor','off','postProcessingPosition','clearFramebuffers','context','round','SceneMode','_onMapWhellEvent','width','depthMask','canvasHeight','MIN_VALUE','canvasWidth','mouseMove','Rectangle','viewerParameters','STATIC_DRAW','WindLayer','show','3235036FHdmtH','all','createWindTextures','primitives','destroyParticlesTextures','alt','_onMouseDownEvent','_removedHook','enabled','IDENTITY','_pointerEvents','0px','requestAnimationFrame','createSegmentsGeometry','_randomParticle','computing','abs','_speedRate','segmentsDepth','warn','mode','random','floor','canvasContext','30NOhgxt','colors','isPointVisible','createColorTableTexture','postMessage','depthTest','execute','pixelSize','isInExtent','cols','createComputingPrimitives','ymax','rendering','style','vertexArray','attributeLocations','#ffffff','fill','createCommand','hasOwnProperty','commandList','clientWidth','vmax','1540560VYCLMO','createPrimitives','shaderProgram','udata','morphComplete','updateWindData','reCreateWindTextures','73694ULgBGp','auto','_calcUV','17135723XYxqqn','35CfLRuA','createRawRenderState','previousParticlesPosition','particlesTextures','lng','visibility','framebuffer','_addedHook','talt','onColorTableChange','east','removeEventListener','pointerEvents','camera','reverse','create','getV','frameRateMonitor','vmin','componentsPerAttribute','WindUtil','speedRate','quietPeriod','particles','pixelDatatype','setOptions','Cartesian3','mouse_move','particlesSpeed','#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a','canvas','destroy','_mountedHook','8LlFKST','updatePosition','pow','Compute','init','magnificationFilter','frameRate','changeOptions','outputTexture','processWindData','sqrt','domain','south','calculateSpeed','BaseLayer','pointer-events','createParticlesTextures','EventType','flipY','particlesNumber','prototype','uniformMap','isDynamic','height','clear','beginPath','left','37218lWzCFR','fixedHeight','updateViewerParameters','globe','createRenderingFramebuffers','drawingBufferHeight','DomUtil','lat','ONE_MINUS_SRC_ALPHA','particlesTextureSize','LINEAR','rawRenderState','error','vertexShaderSource','ellipsoid','maxAge','options','interpolated','dropRateBump','_tomap','ColorRamp','positionWC','colorTable','updateOptions','Cartesian2','xmax','windData','cancelAnimationFrame','xmin','rgb(206,255,255)','clientHeight','windField','vdata','fromCache','framebuffers','mouseUp','normal','cos','default','resize','UNSIGNED_INT','hidden','green','OPAQUE','_onMouseUpEvent','20TisIhN','toRadians','addEventListener','pixelFormat','array','west','lineTo','fromDegrees','worker','age','getParticles','update','3723966gFVdFk','initFrameRate'];_0x34f9=function(){return _0x3ab8f7;};return _0x34f9();}class CanvasWindLayer extends BaseLayer{constructor(_0x319e06={}){super(_0x319e06);function _0x5bc554(_0x38715c,_0x13e37f){return _0x19df7d(_0x38715c-0x369,_0x13e37f);}this['_setOptionsHook'](_0x319e06);function _0x1c9abc(_0x1b3993,_0x5b4571){return _0x2e45e5(_0x5b4571,_0x1b3993-0x16f);}this['canvas']=null,_0x319e06[_0x5bc554(0x4a4,0x45a)]&&_0x319e06['steps']&&(this['_colorRamp']=new mars3d__namespace[(_0x1c9abc(0x86,0x9d))](_0x319e06));}['_setOptionsHook'](_0x1174c7,_0x23efd1){this[_0x102716(-0xe0,-0x77)]=0x3e8/(_0x1174c7[_0x54aa9d(-0xd1,-0x106)]||0xa),this['_pointerEvents']=this['options'][_0x54aa9d(-0xec,-0x91)]??![];function _0x102716(_0x5cc6a7,_0x2d0efa){return _0x2e45e5(_0x5cc6a7,_0x2d0efa-0x16);}this['color']=_0x1174c7['color']||_0x54aa9d(0xc,0xb);function _0x54aa9d(_0x35d73f,_0x1340f3){return _0x2e45e5(_0x1340f3,_0x35d73f-0x41);}this['lineWidth']=_0x1174c7[_0x54aa9d(-0x59,-0x96)]||0x1,this['fixedHeight']=_0x1174c7[_0x102716(-0xb8,-0xe6)]??0x0,this['flipY']=_0x1174c7[_0x102716(-0x151,-0xf0)]??![],this[_0x54aa9d(-0x9d,-0x78)]&&this['windField']['setOptions'](_0x1174c7);}get['layer'](){return this['canvas'];}get[_0x19df7d(0x11b,0x117)](){function _0x3f8ef4(_0x504e10,_0x1f15ff){return _0x19df7d(_0x504e10-0x386,_0x1f15ff);}return this['_map']['scene']['canvas'][_0x3f8ef4(0x4d5,0x558)];}get[_0x19df7d(0x119,0xa4)](){function _0x2b3b6d(_0x187bb5,_0x4c8aec){return _0x2e45e5(_0x187bb5,_0x4c8aec-0x371);}function _0x4a44ff(_0x5148ea,_0x3b42bc){return _0x2e45e5(_0x5148ea,_0x3b42bc-0x3fe);}return this['_map'][_0x4a44ff(0x376,0x36b)]['canvas'][_0x4a44ff(0x3a4,0x31f)];}get['pointerEvents'](){function _0x5330c3(_0x1a7bb2,_0x171e01){return _0x19df7d(_0x1a7bb2-0x173,_0x171e01);}return this[_0x5330c3(0x29f,0x28b)];}set['pointerEvents'](_0x529806){this[_0x1c16ee(-0x78,-0x37)]=_0x529806;function _0x478915(_0x2a294b,_0x28c764){return _0x2e45e5(_0x2a294b,_0x28c764- -0x10c);}if(!this['canvas'])return;function _0x1c16ee(_0x2eb992,_0x1fb52b){return _0x19df7d(_0x2eb992- -0x1a4,_0x1fb52b);}_0x529806?this['canvas'][_0x478915(-0xf6,-0x144)][_0x1c16ee(-0x12e,-0x1b8)]=_0x478915(-0x128,-0x168):this['canvas'][_0x478915(-0xce,-0x144)][_0x478915(-0x1d9,-0x215)]=_0x478915(-0x182,-0x1be);}get['particlesNumber'](){function _0xe8f270(_0x280a1e,_0x31debd){return _0x19df7d(_0x280a1e-0x18c,_0x31debd);}return this[_0xe8f270(0x21e,0x1e3)]['particlesNumber'];}set['particlesNumber'](_0x4376ac){function _0x32a305(_0x1cdf3d,_0x6da1a3){return _0x2e45e5(_0x6da1a3,_0x1cdf3d-0xaa);}this['options']['particlesNumber']=_0x4376ac,clearTimeout(this['_canrefresh']),this[_0x32a305(0x31,0x6)]=setTimeout(()=>{function _0x3debef(_0x4b39d7,_0x2ebcb2){return _0x32a305(_0x4b39d7-0x34,_0x2ebcb2);}this[_0x3debef(0x30,0x3b)]();},0x1f4);}get[_0x19df7d(0x5b,0xdc)](){return this['options']['speedRate'];}set['speedRate'](_0x227e53){this[_0x4d2538(0x18a,0x117)][_0x2fe875(0x197,0x169)]=_0x227e53;function _0x4d2538(_0x336a32,_0x463a0d){return _0x19df7d(_0x336a32-0xf8,_0x463a0d);}function _0x2fe875(_0x572c75,_0x2aefda){return _0x2e45e5(_0x2aefda,_0x572c75-0x2bb);}this['windField']&&(this[_0x2fe875(0x1dd,0x1a1)]['speedRate']=_0x227e53);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x1397cc){function _0x47f37d(_0x5cd578,_0x46f478){return _0x19df7d(_0x5cd578-0x1c3,_0x46f478);}function _0x210e28(_0x462a7c,_0x192153){return _0x2e45e5(_0x192153,_0x462a7c-0x4c);}this[_0x47f37d(0x255,0x1d8)]['maxAge']=_0x1397cc,this[_0x47f37d(0x264,0x205)]&&(this['windField'][_0x210e28(-0xa2,-0x2f)]=_0x1397cc);}get['data'](){return this['windData'];}set['data'](_0x46c1d6){this['setData'](_0x46c1d6);}get['rectangle'](){let _0x35e032=this[_0x539d3d(-0x217,-0x1cf)][_0x52a2a3(0x4,-0x73)],_0x353499=this['windData'][_0x539d3d(-0x218,-0x279)],_0x55ae70=this[_0x539d3d(-0x217,-0x1bf)]['ymin'],_0x381ea3=this[_0x52a2a3(0x2,-0x54)]['ymax'];_0x353499>=0x167&&_0x35e032===0x0&&(_0x35e032=-0xb4,_0x353499=0xb4);function _0x539d3d(_0x527786,_0x596d69){return _0x19df7d(_0x527786- -0x2b3,_0x596d69);}function _0x52a2a3(_0x508090,_0x502e60){return _0x2e45e5(_0x502e60,_0x508090-0xe5);}return _0x35e032=Math[_0x52a2a3(0x43,0x2c)](_0x35e032,-0xb4),_0x353499=Math['min'](_0x353499,0xb4),_0x55ae70=Math['max'](_0x55ae70,-0x5a),_0x381ea3=Math['min'](_0x381ea3,0x5a),Cesium[_0x52a2a3(0x83,0xd3)][_0x52a2a3(0x1c,-0x14)](_0x35e032,_0x55ae70,_0x353499,_0x381ea3);}['_showHook'](_0x24a4da){function _0xcc2591(_0x45d3a8,_0x56df8a){return _0x19df7d(_0x45d3a8- -0x379,_0x56df8a);}function _0x51dcf0(_0x47b944,_0x45dc7e){return _0x19df7d(_0x47b944-0x35d,_0x45dc7e);}_0x24a4da?this[_0x51dcf0(0x4c0,0x46d)]():(this[_0x51dcf0(0x3f9,0x3d9)]&&(this['options']['data']=this['windData']),this[_0xcc2591(-0x250,-0x289)]());}[_0x2e45e5(-0x111,-0x119)](){function _0x1a4f95(_0x1ea6d4,_0x19e828){return _0x19df7d(_0x1ea6d4-0x3ca,_0x19e828);}function _0x37210c(_0x1fcbbf,_0x31a228){return _0x19df7d(_0x31a228-0x390,_0x1fcbbf);}this['options'][_0x37210c(0x42f,0x447)]?this['initWorker']():this['windField']=new CanvasWindField(this[_0x37210c(0x410,0x422)]);}['_addedHook'](){function _0x1d5d4b(_0x47728a,_0xc8e52e){return _0x19df7d(_0x47728a- -0x2eb,_0xc8e52e);}this['canvas']=this['_createCanvas']();const _0x37ac4d={};_0x37ac4d[_0x1d5d4b(-0x219,-0x19a)]=!![],this[_0x1d5d4b(-0x1b2,-0x20a)]=this['canvas']['getContext']('2d',_0x37ac4d),this[_0x1d5d4b(-0x1e0,-0x1b6)]();function _0x5ca894(_0x3aa461,_0x49fe6b){return _0x2e45e5(_0x3aa461,_0x49fe6b-0x130);}this[_0x5ca894(-0x25,0x43)]['data']&&this['setData'](this[_0x1d5d4b(-0x259,-0x253)]['data']);}['_removedHook'](){this['clear']();function _0x3ff4a8(_0x492239,_0x16e49d){return _0x2e45e5(_0x16e49d,_0x492239-0xaa);}this[_0x3ff4a8(0x12,-0x63)]();function _0x27aefc(_0x5170c3,_0x1caa6b){return _0x19df7d(_0x5170c3- -0x8b,_0x1caa6b);}this[_0x27aefc(-0x27,0x25)]&&(this[_0x27aefc(0x40,0x80)]['container']['removeChild'](this[_0x27aefc(-0x27,0x27)]),delete this[_0x27aefc(-0x27,0x59)]);}['_createCanvas'](){const _0x531cf6=mars3d__namespace[_0x7a146b(0x45c,0x3f2)]['create']('canvas','mars3d-canvasWind',this['_map']['container']);_0x531cf6['style']['position']='absolute',_0x531cf6['style']['top']=_0x7a146b(0x4a5,0x497),_0x531cf6['style'][_0x50bb3e(0x3a2,0x39f)]='0px',_0x531cf6['style'][_0x50bb3e(0x488,0x435)]=this['_map']['scene'][_0x50bb3e(0x303,0x382)]['clientWidth']+'px';function _0x50bb3e(_0x399e0f,_0xfea855){return _0x19df7d(_0xfea855-0x31e,_0x399e0f);}function _0x7a146b(_0x274a8d,_0x16f2a9){return _0x2e45e5(_0x274a8d,_0x16f2a9-0x4e9);}return _0x531cf6[_0x50bb3e(0x4e3,0x465)]['height']=this['_map'][_0x50bb3e(0x380,0x40a)][_0x50bb3e(0x36c,0x382)]['clientHeight']+'px',_0x531cf6['style']['pointerEvents']=this['_pointerEvents']?_0x7a146b(0x45c,0x4c3):'none',_0x531cf6['style']['zIndex']=this['options']['zIndex']??0x9,_0x531cf6['width']=this[_0x50bb3e(0x369,0x3e9)]['scene'][_0x7a146b(0x41c,0x3ce)]['clientWidth'],_0x531cf6['height']=this[_0x7a146b(0x41c,0x435)][_0x50bb3e(0x3f9,0x40a)]['canvas']['clientHeight'],_0x531cf6;}['resize'](){function _0xf7ebd0(_0x4a9849,_0x1a809e){return _0x2e45e5(_0x1a809e,_0x4a9849- -0x9c);}function _0x1b047a(_0x5aae02,_0x270aba){return _0x2e45e5(_0x270aba,_0x5aae02-0x30d);}this['canvas']&&(this[_0x1b047a(0x1f2,0x1ac)][_0x1b047a(0x2d5,0x355)]['width']=this[_0x1b047a(0x259,0x2ba)]['scene'][_0xf7ebd0(-0x1b7,-0x1c6)][_0x1b047a(0x2dd,0x2d6)]+'px',this['canvas']['style']['height']=this['_map'][_0x1b047a(0x27a,0x23f)]['canvas']['clientHeight']+'px',this[_0xf7ebd0(-0x1b7,-0x14c)]['width']=this['_map']['scene'][_0xf7ebd0(-0x1b7,-0x200)]['clientWidth'],this['canvas']['height']=this[_0xf7ebd0(-0x150,-0x162)][_0x1b047a(0x27a,0x2fd)]['canvas']['clientHeight']);}['bindEvent'](){const _0x1a1d4c=this;let _0x44eaba=Date['now']();(function _0x35c7b8(){if(_0x1a1d4c['isDestroy'])return;function _0x5ad79c(_0x41410a,_0x1a75c0){return _0x5498(_0x41410a-0x12e,_0x1a75c0);}_0x1a1d4c['_animateFrame']=window[_0x4f0ba1(0x4cf,0x4c6)](_0x35c7b8);function _0x4f0ba1(_0x23668c,_0x5e9471){return _0x5498(_0x5e9471-0x355,_0x23668c);}if(_0x1a1d4c['show']&&_0x1a1d4c[_0x5ad79c(0x212,0x24c)]){const _0x4ab9cb=Date[_0x5ad79c(0x257,0x1dd)](),_0x54dac2=_0x4ab9cb-_0x44eaba;_0x54dac2>_0x1a1d4c['frameTime']&&(_0x44eaba=_0x4ab9cb-_0x54dac2%_0x1a1d4c[_0x4f0ba1(0x423,0x48a)],_0x1a1d4c[_0x5ad79c(0x22b,0x2a5)]());}}());function _0x3bbb0d(_0x222a31,_0x486681){return _0x19df7d(_0x222a31-0xa4,_0x486681);}window['addEventListener'](_0x149866(0xcc,0x12b),this['resize']['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![];function _0x149866(_0x3e6049,_0x2d6701){return _0x19df7d(_0x3e6049-0x23,_0x2d6701);}this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x3bbb0d(0x1ba,0x162)],this),this[_0x149866(0xee,0x8a)]['on'](mars3d__namespace[_0x3bbb0d(0x11c,0x132)]['mouseDown'],this[_0x149866(0x14b,0x129)],this),this[_0x149866(0xee,0x12b)]['on'](mars3d__namespace[_0x3bbb0d(0x11c,0xa2)][_0x149866(0xc8,0x9d)],this[_0x3bbb0d(0x152,0x173)],this));}['unbindEvent'](){window[_0x1eb34f(0x34d,0x337)](this['_animateFrame']),delete this['_animateFrame'],window['removeEventListener']('resize',this[_0x1eb34f(0x317,0x343)]);function _0x196ce8(_0x18fe5e,_0x13644c){return _0x2e45e5(_0x13644c,_0x18fe5e-0x1f2);}function _0x1eb34f(_0xeab748,_0x4763ca){return _0x19df7d(_0x4763ca-0x29a,_0xeab748);}this[_0x196ce8(0x105,0x157)]['mouseHidden']&&(this['_map'][_0x1eb34f(0x434,0x3aa)](mars3d__namespace[_0x196ce8(0xeb,0xe4)]['wheel'],this[_0x196ce8(0x189,0x1d3)],this),this[_0x196ce8(0x13e,0x19c)]['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x196ce8(0x19b,0x19f)],this),this[_0x1eb34f(0x3cb,0x365)][_0x196ce8(0x183,0x192)](mars3d__namespace['EventType']['mouseUp'],this[_0x196ce8(0x121,0x96)],this),this[_0x1eb34f(0x3b8,0x365)][_0x196ce8(0x183,0x1b4)](mars3d__namespace[_0x1eb34f(0x311,0x312)][_0x196ce8(0x18f,0x165)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x134678){clearTimeout(this['refreshTimer']);function _0x1f9355(_0x54a4c5,_0x456316){return _0x2e45e5(_0x54a4c5,_0x456316-0x453);}function _0x32f031(_0x2802a9,_0x2b7420){return _0x2e45e5(_0x2802a9,_0x2b7420-0x1d4);}if(!this[_0x32f031(0x150,0x176)]||!this['canvas'])return;this[_0x1f9355(0x2b3,0x338)]['style']['visibility']=_0x32f031(0xab,0x100),this['refreshTimer']=setTimeout(()=>{function _0x546c1f(_0x50f791,_0x37b621){return _0x1f9355(_0x37b621,_0x50f791- -0x3b5);}if(!this['show'])return;this['redraw'](),this['canvas']['style']['visibility']=_0x546c1f(0xc,0x7);},0xc8);}['_onMouseDownEvent'](_0x5b49ed){this[_0x2e20a7(0x32b,0x399)]=!![];function _0x2e20a7(_0x524a89,_0x2829cc){return _0x19df7d(_0x2829cc-0x2a1,_0x524a89);}function _0x506883(_0x585138,_0x171b38){return _0x19df7d(_0x585138-0x23f,_0x171b38);}this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x2e20a7(0x3ac,0x3af)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x23a114){function _0x3634e4(_0x38b737,_0x51bbba){return _0x19df7d(_0x51bbba-0x411,_0x38b737);}function _0x26228f(_0x353c91,_0x23b807){return _0x19df7d(_0x353c91-0x16,_0x23b807);}if(!this[_0x3634e4(0x59e,0x532)]||!this['canvas'])return;this[_0x26228f(0x10e,0x127)]&&(this[_0x3634e4(0x447,0x475)][_0x26228f(0x15d,0x139)]['visibility']=_0x3634e4(0x4dd,0x4bc),this['mouse_move']=!![]);}[_0x19df7d(0xae,0x30)](_0x1878ea){if(!this[_0x3558f1(0x110,0xa5)]||!this['canvas'])return;this['_map']['off'](mars3d__namespace[_0x24878a(0xa5,0xeb)]['mouseMove'],this[_0x3558f1(0xfd,0x16b)],this);function _0x3558f1(_0x3a26f0,_0x414d99){return _0x19df7d(_0x3a26f0- -0x11,_0x414d99);}this['mouse_down']&&this[_0x3558f1(0x50,0xa5)]&&this[_0x24878a(0x100,0x144)]();function _0x24878a(_0x2f6c9e,_0x4f583c){return _0x19df7d(_0x4f583c-0x73,_0x2f6c9e);}this['canvas']['style'][_0x24878a(0x1c3,0x1d4)]=_0x3558f1(0xdc,0x5e),this[_0x3558f1(0xe7,0x10f)]=![],this['mouse_move']=![];}['setData'](_0x239052){this['clear'](),this['windData']=_0x239052;function _0xc27735(_0x10c22c,_0x1fdbb7){return _0x19df7d(_0x10c22c-0xc3,_0x1fdbb7);}this['windField']['setDate'](_0x239052),this[_0xc27735(0x194,0x199)]();}['redraw'](){if(!this[_0x420d8f(-0x120,-0x193)])return;this['windField']['setOptions'](this['options']);function _0x420d8f(_0x506f59,_0x52ff85){return _0x19df7d(_0x506f59- -0x241,_0x52ff85);}this['update']();}['update'](){function _0x2ab3ef(_0x547aa8,_0x35c8e0){return _0x2e45e5(_0x35c8e0,_0x547aa8-0x17d);}if(this['_updateIng'])return;this['_updateIng']=!![];if(this['worker'])this[_0x2ab3ef(0x9f,0x110)]['update']();else{const _0x385333=this['windField'][_0x2ab3ef(0xb7,0xe7)]();this['_drawLines'](_0x385333);}function _0x5e2c06(_0x42bf33,_0x1bcb96){return _0x2e45e5(_0x42bf33,_0x1bcb96-0x2a6);}this['_updateIng']=![];}['_drawLines'](_0xd64633){this['_canvasParticles']=_0xd64633,this[_0x19fb3f(0x38f,0x36c)][_0x19fb3f(0x362,0x2f7)]='destination-in';function _0x5dede0(_0x2febb8,_0x143b2b){return _0x2e45e5(_0x143b2b,_0x2febb8-0x2a5);}this['canvasContext'][_0x19fb3f(0x32b,0x321)](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']='lighter';function _0x19fb3f(_0x233966,_0x1b45a7){return _0x19df7d(_0x1b45a7-0x233,_0x233966);}this['canvasContext']['globalAlpha']=0.9;const _0x439cea=this[_0x19fb3f(0x377,0x2fe)]['scene']['mode']!==Cesium['SceneMode'][_0x19fb3f(0x2c7,0x30a)],_0x30cb6d=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x4adf00=0x0,_0x355d0c=_0xd64633[_0x5dede0(0x21d,0x1a3)];_0x4adf00<_0x355d0c;_0x4adf00++){const _0x45ed8e=_0xd64633[_0x4adf00],_0x6950bd=this['_tomap'](_0x45ed8e,_0x45ed8e[_0x19fb3f(0x37c,0x393)],_0x45ed8e[_0x5dede0(0x1af,0x124)],_0x45ed8e['alt']),_0x714e3b=this[_0x5dede0(0x1bb,0x174)](_0x45ed8e,_0x45ed8e['tlng'],_0x45ed8e['tlat'],_0x45ed8e[_0x5dede0(0x28a,0x259)]);if(!_0x6950bd||!_0x714e3b)continue;if(_0x439cea&&Math['abs'](_0x6950bd[0x0]-_0x714e3b[0x0])>=_0x30cb6d)continue;this['canvasContext']['beginPath'](),this['canvasContext'][_0x19fb3f(0x362,0x318)]=this['lineWidth'],this['canvasContext'][_0x19fb3f(0x2f7,0x331)]=this['_colorRamp']['getColor'](_0x45ed8e[_0x19fb3f(0x393,0x315)]),this['canvasContext'][_0x5dede0(0x21f,0x286)](_0x6950bd[0x0],_0x6950bd[0x1]),this[_0x19fb3f(0x2f0,0x36c)]['lineTo'](_0x714e3b[0x0],_0x714e3b[0x1]),this['canvasContext']['stroke']();}else{this[_0x5dede0(0x25f,0x270)][_0x19fb3f(0x2bb,0x2b3)](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x5dede0(0x25f,0x205)]['strokeStyle']=this['color'];for(let _0x2e0f5b=0x0,_0x2fa7c2=_0xd64633[_0x5dede0(0x21d,0x25e)];_0x2e0f5b<_0x2fa7c2;_0x2e0f5b++){const _0x271585=_0xd64633[_0x2e0f5b],_0x5c4b62=this['_tomap'](_0x271585,_0x271585[_0x5dede0(0x286,0x288)],_0x271585['lat'],_0x271585[_0x19fb3f(0x38a,0x35a)]),_0x1c6b26=this[_0x19fb3f(0x311,0x2c8)](_0x271585,_0x271585[_0x19fb3f(0x31e,0x2f9)],_0x271585['tlat'],_0x271585[_0x5dede0(0x28a,0x217)]);if(!_0x5c4b62||!_0x1c6b26)continue;if(_0x439cea&&Math['abs'](_0x5c4b62[0x0]-_0x1c6b26[0x0])>=_0x30cb6d)continue;this['canvasContext']['moveTo'](_0x5c4b62[0x0],_0x5c4b62[0x1]),this['canvasContext'][_0x5dede0(0x1db,0x1bd)](_0x1c6b26[0x0],_0x1c6b26[0x1]);}this[_0x19fb3f(0x38a,0x36c)]['stroke']();}}['_tomap'](_0x4281e7,_0x196eab,_0x1a9725,_0x1196de){function _0x1967f6(_0x5300ee,_0x3ffa39){return _0x2e45e5(_0x3ffa39,_0x5300ee-0x4a0);}const _0x52a3f7=Cesium[_0x3e2619(0x3e4,0x3e3)][_0x3e2619(0x4a3,0x439)](_0x196eab,_0x1a9725,_0x1196de??this['fixedHeight']),_0x2aeabe=this[_0x1967f6(0x3ec,0x432)][_0x3e2619(0x3ea,0x46f)];if(_0x2aeabe['mode']===Cesium[_0x3e2619(0x48a,0x498)][_0x3e2619(0x493,0x45a)]){const _0x42283e=new Cesium['EllipsoidalOccluder'](_0x2aeabe['globe']['ellipsoid'],_0x2aeabe['camera'][_0x3e2619(0x465,0x41a)]),_0x434e0f=_0x42283e[_0x3e2619(0x4ca,0x4bf)](_0x52a3f7);if(!_0x434e0f)return _0x4281e7['age']=0x0,null;}function _0x3e2619(_0x18bd1e,_0x4fb422){return _0x19df7d(_0x4fb422-0x383,_0x18bd1e);}const _0x3a8ca5=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map']['scene'],_0x52a3f7);return _0x3a8ca5?[_0x3a8ca5['x'],_0x3a8ca5['y']]:null;}['clear'](){function _0x5b339c(_0x298aa1,_0x1fdb91){return _0x2e45e5(_0x1fdb91,_0x298aa1-0x108);}this['windField']['clear'](),delete this[_0x5b339c(0x25,-0x1a)];}['initWorker'](){function _0x11748b(_0x11fc70,_0x14eb02){return _0x19df7d(_0x14eb02-0x213,_0x11fc70);}function _0x2e47a6(_0x1f7af2,_0x568d97){return _0x19df7d(_0x568d97-0x262,_0x1f7af2);}this['worker']=new Worker(this[_0x11748b(0x256,0x2a5)]['worker']),this[_0x2e47a6(0x2c9,0x319)]['onmessage']=_0x9226e0=>{function _0x470d0c(_0xbeb26d,_0x594cc5){return _0x2e47a6(_0x594cc5,_0xbeb26d- -0x3a5);}this[_0x470d0c(-0x6e,-0xb9)](_0x9226e0['data']['particles']),this['_updateIng2']=![];},this[_0x11748b(0x280,0x2b4)]={'init':_0x17d046=>{const _0x216886={};_0x216886['type']='init',_0x216886['options']=_0x17d046;function _0x2aa92a(_0x309fca,_0x2db7ae){return _0x11748b(_0x2db7ae,_0x309fca- -0xef);}function _0x780928(_0x29e2a8,_0x59bef5){return _0x2e47a6(_0x29e2a8,_0x59bef5-0x146);}this[_0x780928(0x43f,0x45f)][_0x780928(0x533,0x4e6)](_0x216886);},'setOptions':_0x3d3ff7=>{function _0x296945(_0x3810ab,_0x41cdcd){return _0x11748b(_0x41cdcd,_0x3810ab- -0x255);}const _0x94e938={};_0x94e938['type']=_0x296945(0x1d,0xa8),_0x94e938['options']=_0x3d3ff7;function _0x53fcb9(_0xbb6184,_0x10cacb){return _0x11748b(_0x10cacb,_0xbb6184- -0x43b);}this[_0x296945(0x75,0xb3)]['postMessage'](_0x94e938);},'setDate':_0x15a2db=>{const _0x2cf707={};_0x2cf707[_0x156b47(-0x2f7,-0x2ab)]='setDate',_0x2cf707[_0x458372(0x194,0x1cb)]=_0x15a2db;function _0x156b47(_0xb467b4,_0x169e64){return _0x2e47a6(_0xb467b4,_0x169e64- -0x5d9);}function _0x458372(_0x18857e,_0x2057e8){return _0x11748b(_0x18857e,_0x2057e8- -0x154);}this[_0x458372(0x192,0x176)][_0x156b47(-0x1e0,-0x239)](_0x2cf707);},'update':()=>{if(this['_updateIng2'])return;function _0x152959(_0x801e15,_0x26857c){return _0x2e47a6(_0x26857c,_0x801e15-0xac);}this['_updateIng2']=!![];function _0xceaaf4(_0x3a0208,_0x5cd503){return _0x2e47a6(_0x5cd503,_0x3a0208-0xad);}const _0x3cfe81={};_0x3cfe81[_0xceaaf4(0x3db,0x3c6)]='update',this['worker'][_0x152959(0x44c,0x41a)](_0x3cfe81);},'clear':()=>{const _0x45e883={};function _0x4223a3(_0xd12d26,_0x4f5c5c){return _0x11748b(_0xd12d26,_0x4f5c5c- -0x439);}function _0x8b9cd0(_0xeaf87c,_0xe171ea){return _0x11748b(_0xe171ea,_0xeaf87c- -0x31e);}_0x45e883[_0x8b9cd0(-0x3f,-0xa2)]=_0x8b9cd0(-0x8c,-0x63),this[_0x4223a3(-0x1f3,-0x16f)][_0x8b9cd0(0x33,0xb1)](_0x45e883);}},this[_0x2e47a6(0x2db,0x303)][_0x11748b(0x238,0x27e)](this[_0x11748b(0x2d5,0x2a5)]);}}mars3d__namespace['LayerUtil'][_0x2e45e5(-0xa7,-0xbc)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x19df7d(0x5a,0xa7)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x2e45e5(-0x92,-0xbf)]=CanvasWindLayer,exports[_0x19df7d(0x120,0x10e)]=WindLayer,exports['WindUtil']=WindUtil;const _0x337697={};_0x337697['value']=!![];function _0x2e45e5(_0x52e518,_0xa9d995){return _0x5498(_0xa9d995- -0x1c2,_0x52e518);}Object[_0x2e45e5(-0x76,-0x9b)](exports,'__esModule',_0x337697);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.9.2",
3
+ "version": "3.9.4",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.9.2"
8
+ "mars3d": "~3.9.4"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"