mars3d-wind 3.9.2 → 3.9.3

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.3
5
+ * 编译日期:2025-03-18 22:03
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(_0x142c7c,_0x290267){const _0x17b1cd=_0x142c7c();function _0x39c6aa(_0x346c4a,_0x483e10){return _0x485d(_0x483e10-0x245,_0x346c4a);}function _0x529204(_0x5e5c61,_0xe0c95d){return _0x485d(_0xe0c95d-0x279,_0x5e5c61);}while(!![]){try{const _0x37abde=parseInt(_0x39c6aa(0x47d,0x433))/0x1*(parseInt(_0x39c6aa(0x4c0,0x48a))/0x2)+-parseInt(_0x529204(0x455,0x4a1))/0x3+parseInt(_0x39c6aa(0x3de,0x410))/0x4*(-parseInt(_0x39c6aa(0x35d,0x3b7))/0x5)+parseInt(_0x39c6aa(0x46d,0x486))/0x6*(parseInt(_0x39c6aa(0x395,0x3c8))/0x7)+parseInt(_0x39c6aa(0x32c,0x397))/0x8*(-parseInt(_0x529204(0x502,0x49f))/0x9)+-parseInt(_0x39c6aa(0x4fd,0x493))/0xa+parseInt(_0x39c6aa(0x478,0x49f))/0xb;if(_0x37abde===_0x290267)break;else _0x17b1cd['push'](_0x17b1cd['shift']());}catch(_0xf49031){_0x17b1cd['push'](_0x17b1cd['shift']());}}}(_0x566e,0xcad7e));function _0x485d(_0x3c23be,_0x3b48b4){const _0x566e7d=_0x566e();return _0x485d=function(_0x485d5c,_0x5d86e1){_0x485d5c=_0x485d5c-0x14f;let _0x231428=_0x566e7d[_0x485d5c];return _0x231428;},_0x485d(_0x3c23be,_0x3b48b4);}function _interopNamespace(_0x2127ab){if(_0x2127ab&&_0x2127ab['__esModule'])return _0x2127ab;function _0x32ef60(_0x483223,_0x8ad591){return _0x485d(_0x8ad591-0x1d4,_0x483223);}var _0x2e33e9=Object['create'](null);function _0xb89797(_0x41db65,_0x550d58){return _0x485d(_0x41db65-0x72,_0x550d58);}return _0x2127ab&&Object[_0xb89797(0x1f0,0x1b1)](_0x2127ab)['forEach'](function(_0xac0941){function _0x1acc18(_0x29f1be,_0x5780f8){return _0xb89797(_0x29f1be- -0x42a,_0x5780f8);}function _0x15c309(_0x307ac1,_0x152c46){return _0xb89797(_0x307ac1- -0x106,_0x152c46);}if(_0xac0941!=='default'){var _0x713119=Object[_0x15c309(0x109,0x12a)](_0x2127ab,_0xac0941);Object[_0x15c309(0x11d,0xe5)](_0x2e33e9,_0xac0941,_0x713119['get']?_0x713119:{'enumerable':!![],'get':function(){return _0x2127ab[_0xac0941];}});}}),_0x2e33e9[_0xb89797(0x2af,0x298)]=_0x2127ab,_0x2e33e9;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function _0xc18867(_0x2d3e44,_0x32bb5f){return _0x485d(_0x2d3e44-0x360,_0x32bb5f);}function getU(_0x1dff37,_0x4ae83f){const _0x3f9518=_0x1dff37*Math[_0x11d9f8(0x3cc,0x41f)](Cesium$2[_0x11d9f8(0x465,0x475)]['toRadians'](_0x4ae83f));function _0x11d9f8(_0x3e44c2,_0x3c8fbb){return _0x485d(_0x3c8fbb-0x24b,_0x3e44c2);}function _0x2df505(_0x1f1f56,_0x4cbf76){return _0x485d(_0x1f1f56-0x2cc,_0x4cbf76);}return _0x3f9518;}function getV(_0x3a32f8,_0x54ee45){function _0x3543c8(_0x5652d9,_0x579415){return _0x485d(_0x579415-0x28f,_0x5652d9);}const _0x5da9bb=_0x3a32f8*Math[_0x493aca(0x65,0x43)](Cesium$2[_0x3543c8(0x4de,0x4b9)][_0x3543c8(0x49b,0x482)](_0x54ee45));function _0x493aca(_0x31982c,_0x34af75){return _0x485d(_0x34af75- -0x164,_0x31982c);}return _0x5da9bb;}function getSpeed(_0x99afe9,_0x1c0d0c){function _0x1108ab(_0x5c0c32,_0x5708e6){return _0x485d(_0x5708e6- -0x186,_0x5c0c32);}const _0x4d12f2=Math[_0x1108ab(0x1,0x7c)](Math['pow'](_0x99afe9,0x2)+Math['pow'](_0x1c0d0c,0x2));return _0x4d12f2;}function getDirection(_0xea3cda,_0xd04b9a){function _0x46200d(_0x5ad0da,_0x171552){return _0x485d(_0x171552- -0x2ed,_0x5ad0da);}let _0x3892f9=Cesium$2['Math'][_0x46200d(-0xdd,-0xf8)](Math['atan2'](_0xd04b9a,_0xea3cda));return _0x3892f9+=_0x3892f9<0x0?0x168:0x0,_0x3892f9;}const _0x1fecf5={};_0x1fecf5['__proto__']=null,_0x1fecf5['getU']=getU,_0x1fecf5['getV']=getV,_0x1fecf5[_0xc18867(0x557,0x55e)]=getSpeed,_0x1fecf5['getDirection']=getDirection;var WindUtil=_0x1fecf5,updatePositionShader=_0xc18867(0x59e,0x5cc),calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader=_0x1e8311(0x1a9,0x22d),renderParticlesVertexShader=_0xc18867(0x506,0x53e);function _0x566e(){const _0x544dd3=['getDataAtLonLat','_speedRate','defineProperty','postProcessingPosition','dynamic','tlng','clientHeight','abs','lng','_pointerEvents','computing','geometry','createParticlesTextures','unbindEvent','worker','ymin','strokeStyle','vdata','destroyParticlesTextures','floor','colors','now','fragmentShaderSource','onmessage','object','cols','cancelAnimationFrame','update','8pYuBbN','primitives','Cartesian2','warn','particles','destination-in','rectangle','lonRange','positionWC','cos','dropRate','latRange','preExecute','vertexArray','rows','_randomParticle','type','_updateIng','EllipsoidalOccluder','layer','windField','#ffffff','globe','pointer-events','attributeLocations','bounds','max','reCreateWindTextures','requestRender','WindLayer','interpolated','getUVByXY','particlesSpeed','pixelSize','onParticlesTextureSizeChange','1ffrRgI','setGeometry','getColor','windTextures','scene','toRadians','destroy','toDegrees','stroke','getSpeed','lineWidth','EventType','processWindData','mouse_down','_onMouseMoveEvent','LINEAR','minificationFilter','initWorker','blue','Draw','sqrt','drawingBufferWidth','segmentsColor','_updateIng2','_map','show','lineLength','width','currentParticlesPosition','rendering','getPrimitives','west','_setOptionsHook','quietPeriod','updatePosition','ONE_MINUS_SRC_ALPHA','particleSystem','xmax','udata','mode','changeOptions','RGBA','createWindTextures','east','min\x20is\x20undefined,\x20calculate\x20min','camera','createSegmentsGeometry','outputTexture','createRawRenderState','framebuffers','canvasWind','owner','getUVByPoint','stringify','addEventListener','commandToExecute','344349KWTxNt','_colorRamp','1717023SHaOQk','windData','Math','off','useViewerBounds','xmin','isDynamic','context','frameTime','uniformMap','isPointVisible','length','mouseMove','getSegmentDrawVertexShader','commandType','lastFramesPerSecond','globalAlpha','ymax','register','execute','visible','default','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a','commandList','isDestroy','554502qpiFxP','Cesium','ellipsoid','height','3319726DeZWne','speedFactor','values','CanvasWindField','updateViewerParameters','_mountedHook','drawingBufferHeight','style','_canvasParticles','252840CJGPbF','prototype','forEach','mouse_move','longitude','frameRateMonitor','_calcUV','initFrameRate','requestAnimationFrame','FLOAT','age','WindUtil','305096xeMnTc','lat','push','getCalculateSpeedShader','_animateFrame','north','DEPTH_COMPONENT','CanvasWindLayer','particlesTextures','_bilinearInterpolation','216zHvufk','speed','color','grid','canvas','blendFuncDestination','sources','SCENE3D','speedRate','primitiveType','createColorTableTexture','options','position','steps','changed','vertexShaderSource','clear','bindEvent','beginPath','particlesNumber','particlesTextureSize','OPAQUE','talt','refreshTimer','resize','previousParticlesPosition','updateOptions','flipY','calculateSpeed','canvasContext','_tomap','getSegmentDrawFragmentShader','1992925JVrWGl','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a','segments','fixedHeight','blendFuncSource','south','canvasWidth','tlat','data','clearCommand','hidden','slice','keys','viewerParameters','STATIC_DRAW','visibility','_onMouseUpEvent','119HaLeMJ','dropRateBump','_maxAge','removeEventListener','array','add','_addedHook','frameRateAdjustment','Unknown\x20command\x20type','pointerEvents','textures','frameState.commandList\x20is\x20undefined','NEAREST','log','lighter','_calc_speedRate','bind','magnificationFilter','autoClear','toGridXY','pixelDatatype','_removedHook','getRandomLatLng','rawRenderState','postMessage','maxAge','getOwnPropertyDescriptor','top','redraw','colorTable','min','percentageChanged','fromCssColorString','SRC_ALPHA','CLAMP_TO_EDGE','#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a','sin','0px','original','fromDegrees','lineTo','mouseHidden','setData','clientWidth'];_0x566e=function(){return _0x544dd3;};return _0x566e();}const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];function _0x1e8311(_0x2b22c1,_0x50b243){return _0x485d(_0x2b22c1-0x36,_0x50b243);}class ShaderManager{static[_0x1e8311(0x293,0x218)](){const _0x26e817={};return _0x26e817['sources']=[calculateSpeedShader],new ShaderSource$1(_0x26e817);}static['getUpdatePositionShader'](){const _0x122cad={};_0x122cad[_0x55c186(0x20d,0x1ce)]=[updatePositionShader];function _0x55c186(_0x49e622,_0x200e44){return _0x1e8311(_0x49e622-0x7f,_0x200e44);}return new ShaderSource$1(_0x122cad);}static['getSegmentDrawVertexShader'](){const _0x3fb968={};_0x3fb968[_0x4aecef(0x31c,0x368)]=[renderParticlesVertexShader];function _0x4aecef(_0x31532b,_0x4cc537){return _0xc18867(_0x4cc537- -0x150,_0x31532b);}return new ShaderSource$1(_0x3fb968);}static[_0xc18867(0x4d1,0x4dc)](){const _0x434197={};_0x434197[_0x1584ff(0x557,0x4e9)]=[renderParticlesFragmentShader];function _0x1584ff(_0x3a05a,_0x484825){return _0xc18867(_0x484825-0x31,_0x3a05a);}return new ShaderSource$1(_0x434197);}static['getPostProcessingPositionShader'](){const _0x5be0fc={};return _0x5be0fc['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x5be0fc);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x125c22){this[_0x4a32f9(0x378,0x37d)]=_0x125c22['commandType'],this[_0x3dad75(0x2cc,0x281)]=_0x125c22[_0x4a32f9(0x35c,0x301)];function _0x4a32f9(_0x5e18e7,_0x132827){return _0xc18867(_0x132827- -0x219,_0x5e18e7);}function _0x3dad75(_0x33d782,_0x239606){return _0x1e8311(_0x239606-0x91,_0x33d782);}this['attributeLocations']=_0x125c22['attributeLocations'],this['primitiveType']=_0x125c22[_0x4a32f9(0x2ff,0x2a2)],this['uniformMap']=_0x125c22['uniformMap']||{},this[_0x4a32f9(0x25a,0x2a8)]=_0x125c22[_0x4a32f9(0x26d,0x2a8)],this[_0x3dad75(0x24d,0x28c)]=_0x125c22[_0x4a32f9(0x368,0x30c)],this['rawRenderState']=_0x125c22['rawRenderState'],this['framebuffer']=_0x125c22['framebuffer'],this[_0x4a32f9(0x308,0x364)]=_0x125c22['outputTexture'],this[_0x3dad75(0x2ba,0x25c)]=_0x125c22[_0x4a32f9(0x254,0x2dc)]??![],this['preExecute']=_0x125c22['preExecute'],this['show']=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x125c22['isDynamic']??(()=>!![]),this['autoClear']&&(this[_0x4a32f9(0x252,0x2c2)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0x4a32f9(0x24a,0x2ae)]}));}['createCommand'](_0x2dab8b){function _0x2c4223(_0x170789,_0x4f5820){return _0x1e8311(_0x4f5820- -0x3cc,_0x170789);}function _0x5e1a65(_0x30a588,_0x4b5588){return _0x1e8311(_0x30a588-0x23e,_0x4b5588);}if(this['commandType']==='Draw'){const _0x50302b={};_0x50302b[_0x2c4223(-0xf8,-0x167)]=_0x2dab8b,_0x50302b['geometry']=this[_0x5e1a65(0x42e,0x448)],_0x50302b[_0x2c4223(-0x22a,-0x1b3)]=this['attributeLocations'],_0x50302b['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x1ce77f=VertexArray$1['fromGeometry'](_0x50302b),_0x2a5400={};_0x2a5400['context']=_0x2dab8b,_0x2a5400[_0x5e1a65(0x3d5,0x3e2)]=this['vertexShaderSource'],_0x2a5400['fragmentShaderSource']=this['fragmentShaderSource'],_0x2a5400[_0x5e1a65(0x457,0x3e3)]=this['attributeLocations'];const _0x381a7f=ShaderProgram['fromCache'](_0x2a5400),_0x3ef7bf=RenderState['fromCache'](this[_0x2c4223(-0x21d,-0x1fc)]),_0x40b398={};return _0x40b398['owner']=this,_0x40b398[_0x5e1a65(0x44c,0x424)]=_0x1ce77f,_0x40b398['primitiveType']=this[_0x2c4223(-0x1f4,-0x23b)],_0x40b398['modelMatrix']=Matrix4['IDENTITY'],_0x40b398['renderState']=_0x3ef7bf,_0x40b398['shaderProgram']=_0x381a7f,_0x40b398['framebuffer']=this['framebuffer'],_0x40b398[_0x5e1a65(0x4a5,0x437)]=this['uniformMap'],_0x40b398['pass']=Pass$1[_0x5e1a65(0x3db,0x35c)],new DrawCommand(_0x40b398);}else{if(this[_0x2c4223(-0x164,-0x160)]==='Compute'){const _0x5a46e6={};return _0x5a46e6[_0x2c4223(-0x13a,-0x175)]=this,_0x5a46e6[_0x2c4223(-0x23b,-0x1d1)]=this[_0x2c4223(-0x1f8,-0x1d1)],_0x5a46e6['uniformMap']=this['uniformMap'],_0x5a46e6[_0x2c4223(-0x104,-0x179)]=this['outputTexture'],_0x5a46e6['persists']=!![],new ComputeCommand(_0x5a46e6);}else throw new Error(_0x2c4223(-0x194,-0x20b));}}[_0xc18867(0x54f,0x507)](_0x4ae303,_0x2e9389){function _0x5d5b72(_0x2754c6,_0x92c0f5){return _0x1e8311(_0x92c0f5- -0x320,_0x2754c6);}function _0x33aa27(_0x54b743,_0x387222){return _0x1e8311(_0x387222- -0x121,_0x54b743);}this['geometry']=_0x2e9389,defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x4ae303,'geometry':this[_0x33aa27(0xa7,0xcf)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x5d5b72(-0x128,-0x16a)]}));}[_0xc18867(0x52a,0x595)](_0x1a3058){function _0xd8139b(_0x17fdd4,_0x11716f){return _0xc18867(_0x17fdd4- -0x501,_0x11716f);}if(!this[_0x13ede6(-0x1df,-0x157)]())return;function _0x13ede6(_0x4bef7a,_0x444820){return _0x1e8311(_0x444820- -0x3bb,_0x4bef7a);}if(!this[_0xd8139b(0x66,-0x22)]||!defined(_0x1a3058))return;!defined(this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x1a3058['context']));defined(this[_0xd8139b(0x36,-0x37)])&&this[_0x13ede6(-0x154,-0x1ae)]();if(!_0x1a3058['commandList']){console['warn'](_0x13ede6(-0x1aa,-0x1f7));return;}defined(this['clearCommand'])&&_0x1a3058[_0x13ede6(-0x104,-0x146)][_0x13ede6(-0x115,-0x129)](this['clearCommand']),defined(this['commandToExecute'])&&_0x1a3058[_0x13ede6(-0xd7,-0x146)][_0x13ede6(-0xbb,-0x129)](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){function _0x3ceed5(_0x23a6ea,_0x35cf3f){return _0x1e8311(_0x23a6ea-0x2c,_0x35cf3f);}if(defined(this[_0x3ceed5(0x287,0x2a0)])){var _0x4a7c9e;(_0x4a7c9e=this['commandToExecute']['shaderProgram'])===null||_0x4a7c9e===void 0x0||_0x4a7c9e['destroy'](),this[_0x3ceed5(0x287,0x201)]['shaderProgram']=undefined;}function _0x517d17(_0x26f1c3,_0x293c27){return _0x1e8311(_0x26f1c3- -0x2f6,_0x293c27);}return destroyObject(this);}}function deepMerge(_0x4663d6,_0x4eda23){if(!_0x4663d6)return _0x4eda23;if(!_0x4eda23)return _0x4663d6;const _0x28d8bc={..._0x4eda23},_0x40549b=_0x28d8bc;function _0x4d4bbb(_0x383332,_0x3ab257){return _0x1e8311(_0x383332-0x3f,_0x3ab257);}function _0x5bc936(_0x4b97ae,_0x2f6ee0){return _0x1e8311(_0x4b97ae- -0x3d,_0x2f6ee0);}for(const _0xdfc5fd in _0x4663d6){if(Object[_0x4d4bbb(0x2c4,0x2f0)]['hasOwnProperty']['call'](_0x4663d6,_0xdfc5fd)){const _0x1e734c=_0x4663d6[_0xdfc5fd],_0x2ddac9=_0x4eda23[_0xdfc5fd];if(Array['isArray'](_0x1e734c)){_0x40549b[_0xdfc5fd]=_0x1e734c[_0x5bc936(0x176,0x101)]();continue;}if(_0x1e734c&&typeof _0x1e734c===_0x5bc936(0x1c0,0x1d6)){_0x40549b[_0xdfc5fd]=deepMerge(_0x1e734c,_0x2ddac9||{});continue;}_0x1e734c!==undefined&&(_0x40549b[_0xdfc5fd]=_0x1e734c);}}return _0x40549b;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace[_0x1e8311(0x278,0x2b9)];class WindParticlesComputing{constructor(_0x1460f2,_0x2a6042,_0x2bc94a,_0x155d95,_0x10123a){this['context']=_0x1460f2,this['options']=_0x2bc94a,this['viewerParameters']=_0x155d95,this[_0x785e6(0x3c1,0x343)]=_0x2a6042,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x45de6c={};_0x45de6c['scene']=_0x10123a,_0x45de6c['samplingWindow']=0x1,_0x45de6c[_0x785e6(0x2a1,0x329)]=0x0;function _0x5e89bb(_0x3b5d83,_0x4edd47){return _0x1e8311(_0x4edd47- -0x189,_0x3b5d83);}this[_0x5e89bb(0x182,0x100)]=new FrameRateMonitor(_0x45de6c),this[_0x5e89bb(0xf8,0x102)](),this['createWindTextures']();function _0x785e6(_0x1d409d,_0x18137b){return _0xc18867(_0x18137b- -0x246,_0x1d409d);}this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x4162b5=()=>{function _0x2ce78f(_0x5527a3,_0x5502e8){return _0x485d(_0x5527a3- -0xef,_0x5502e8);}function _0x3e0ee8(_0x394099,_0x5a3ff7){return _0x485d(_0x394099- -0x17d,_0x5a3ff7);}this[_0x3e0ee8(0xd6,0x142)][_0x2ce78f(0x148,0x13b)]>0x14&&(this['frameRate']=this[_0x2ce78f(0x164,0x1dc)]['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math[_0x3e0ee8(0x68,0x3c)](this['frameRate'],0x1));};function _0x174b86(_0x133a1d,_0x2c9bf2){return _0xc18867(_0x133a1d- -0x47,_0x2c9bf2);}_0x4162b5();const _0xd4a478=setInterval(_0x4162b5,0x3e8),_0xc3f465=this[_0x174b86(0x50d,0x502)]['bind'](this);this['destroy']=()=>{clearInterval(_0xd4a478),_0xc3f465();};}[_0xc18867(0x578,0x54e)](){const _0x2302e3={};function _0x30b50c(_0x3c7b50,_0x436fc3){return _0x1e8311(_0x3c7b50- -0x365,_0x436fc3);}function _0x220355(_0x1cccc9,_0x1eac0d){return _0xc18867(_0x1cccc9-0x32,_0x1eac0d);}_0x2302e3[_0x30b50c(-0x131,-0xab)]=TextureMinificationFilter$1[_0x220355(0x58f,0x595)],_0x2302e3['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x530ac9={'context':this[_0x30b50c(-0x100,-0x117)],'width':this['windData']['width'],'height':this['windData'][_0x220355(0x5d6,0x5b3)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1[_0x30b50c(-0xd8,-0xb6)],'flipY':this['options'][_0x30b50c(-0x1c2,-0x177)]??![],'sampler':new Sampler$1(_0x2302e3)};this[_0x30b50c(-0x13e,-0xe4)]={'U':new Texture$1({..._0x530ac9,'source':{'arrayBufferView':new Float32Array(this[_0x30b50c(-0x106,-0xad)]['u'][_0x30b50c(-0x1a8,-0x195)])}}),'V':new Texture$1({..._0x530ac9,'source':{'arrayBufferView':new Float32Array(this[_0x30b50c(-0x106,-0x14b)]['v']['array'])}})};}['createParticlesTextures'](){function _0x356148(_0x5893b3,_0x6347f0){return _0xc18867(_0x6347f0- -0x6b7,_0x5893b3);}function _0x3dc43f(_0x4c313c,_0x139006){return _0x1e8311(_0x4c313c- -0x37f,_0x139006);}const _0x2ef349={};_0x2ef349[_0x3dc43f(-0x14b,-0x121)]=TextureMinificationFilter$1[_0x356148(-0x16f,-0x1c8)],_0x2ef349['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];const _0x47757c={'context':this['context'],'width':this[_0x3dc43f(-0x1ec,-0x268)]['particlesTextureSize'],'height':this[_0x3dc43f(-0x1ec,-0x218)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x356148(-0x1bd,-0x1fa)]['particlesTextureSize']*this['options']['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x2ef349)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x47757c),'currentParticlesPosition':new Texture$1(_0x47757c),'nextParticlesPosition':new Texture$1(_0x47757c),'postProcessingPosition':new Texture$1(_0x47757c),'particlesSpeed':new Texture$1(_0x47757c)};}[_0xc18867(0x521,0x4bd)](){function _0x2d4c34(_0x189463,_0x1c92ee){return _0x1e8311(_0x1c92ee-0x119,_0x189463);}function _0x2a025f(_0x1beb05,_0xed8105){return _0x1e8311(_0x1beb05-0x2b8,_0xed8105);}Object[_0x2a025f(0x535,0x59a)](this[_0x2a025f(0x43e,0x42e)])['forEach'](_0xd940ca=>_0xd940ca['destroy']());}['createComputingPrimitives'](){function _0xd26bd9(_0x2656dc,_0x35977b){return _0x1e8311(_0x35977b-0x44,_0x2656dc);}function _0x3ddd96(_0x135d4c,_0x166acc){return _0xc18867(_0x135d4c- -0x469,_0x166acc);}this[_0xd26bd9(0x1ea,0x246)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0xd26bd9(0x1e4,0x26b)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this['windData']['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x3ddd96(0x120,0x106)]['v']['min'],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x2d1a4c(_0x271f93,_0x2074e6){return _0x3ddd96(_0x2074e6- -0x23a,_0x271f93);}return(this['viewerParameters']['pixelSize']+0x32)*this[_0x2d1a4c(-0x210,-0x1e6)]['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData']['width'],this[_0xd26bd9(0x21f,0x2a3)][_0xd26bd9(0x2a5,0x2be)]),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0xd26bd9(0x243,0x287)],this['windData']['bounds'][_0xd26bd9(0x203,0x1f1)]),'maximum':()=>new Cartesian2$1(this['windData'][_0x3ddd96(0xdb,0x12e)]['east'],this['windData']['bounds']['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures'][_0xd26bd9(0x273,0x265)],'preExecute':()=>{const _0x342c06=this[_0x4c9bca(0x225,0x26d)][_0x4c9bca(0x2dd,0x288)];function _0x2392e8(_0x2d5b0a,_0x252483){return _0xd26bd9(_0x252483,_0x2d5b0a-0x32c);}function _0x4c9bca(_0x53b0fd,_0x1a02a4){return _0xd26bd9(_0x53b0fd,_0x1a02a4-0xa3);}this['particlesTextures']['previousParticlesPosition']=this['particlesTextures'][_0x4c9bca(0x333,0x327)],this[_0x4c9bca(0x258,0x26d)]['currentParticlesPosition']=this[_0x4c9bca(0x21a,0x26d)][_0x2392e8(0x558,0x4d1)],this[_0x4c9bca(0x21c,0x26d)][_0x2392e8(0x558,0x514)]=_0x342c06,this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives']['calculateSpeed']['commandToExecute']['outputTexture']=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this[_0x3ddd96(0x54,0x4)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this[_0x3ddd96(0x47,0xc7)]['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0x119fbb(_0x11e84a,_0x3104cd){return _0x3ddd96(_0x11e84a-0x85,_0x3104cd);}function _0xbe4fa6(_0x3a653b,_0x85dba9){return _0x3ddd96(_0x3a653b-0x488,_0x85dba9);}this['primitives'][_0xbe4fa6(0x58f,0x54e)]['commandToExecute']&&(this[_0xbe4fa6(0x54b,0x550)]['updatePosition']['commandToExecute']['outputTexture']=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this['options'][_0xd26bd9(0x21e,0x22d)]}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures']['nextParticlesPosition'],'particlesSpeed':()=>this[_0x3ddd96(0x47,0x36)]['particlesSpeed'],'lonRange':()=>this['viewerParameters'][_0xd26bd9(0x1f0,0x24c)],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0xd26bd9(0x274,0x25e)]['west'],this['windData'][_0xd26bd9(0x226,0x25e)]['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this[_0x3ddd96(0x120,0x134)][_0xd26bd9(0x21b,0x25e)][_0xd26bd9(0x26b,0x2d9)]),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this[_0x3ddd96(0x54,0x67)]['dropRateBump'],'useViewerBounds':()=>this['options'][_0xd26bd9(0x2ea,0x2a6)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x15972c(_0x172340,_0x2ee464){return _0x3ddd96(_0x2ee464-0x3ca,_0x172340);}function _0x42c23a(_0x367c7d,_0x2895bd){return _0xd26bd9(_0x2895bd,_0x367c7d-0x60);}this['primitives']['postProcessingPosition'][_0x42c23a(0x2ff,0x374)]&&(this['primitives'][_0x15972c(0x482,0x473)]['commandToExecute'][_0x42c23a(0x2f7,0x36d)]=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0x3ddd96(0x54,0x6f)]['dynamic']})};}[_0x1e8311(0x21c,0x1f4)](){function _0x189a4b(_0x332cb3,_0x54749){return _0xc18867(_0x54749- -0x5fe,_0x332cb3);}this['windTextures']['U'][_0x189a4b(-0x65,-0xaa)]();function _0x16de40(_0x18763a,_0xe17f2){return _0xc18867(_0x18763a- -0x718,_0xe17f2);}this[_0x189a4b(-0x10e,-0xad)]['V']['destroy'](),this[_0x16de40(-0x1a0,-0x176)]();}['updateWindData'](_0x4877b3){this[_0x47719a(-0x9f,-0x58)]=_0x4877b3;function _0x47719a(_0x72ec15,_0x5055c8){return _0x1e8311(_0x72ec15- -0x2fe,_0x5055c8);}this['reCreateWindTextures']();}[_0x1e8311(0x1a2,0x1df)](_0x471190){const _0xeba1ae=_0x471190['flipY']!==undefined&&_0x471190[_0x325a1c(0x3fc,0x439)]!==this['options'][_0x30880f(0x39f,0x38f)];function _0x325a1c(_0x14746b,_0x4ed5b8){return _0xc18867(_0x4ed5b8- -0x94,_0x14746b);}function _0x30880f(_0x3fc387,_0x308071){return _0x1e8311(_0x308071-0x1ec,_0x3fc387);}this[_0x30880f(0x3c5,0x37f)]=deepMerge(_0x471190,this['options']),_0xeba1ae&&this['reCreateWindTextures']();}[_0x1e8311(0x230,0x27e)](_0x198731){function _0x23aa2b(_0x47a8ce,_0x3aba4b){return _0xc18867(_0x47a8ce- -0x595,_0x3aba4b);}const {array:_0x34ce25}=_0x198731;let {min:_0x4d3b12,max:_0x339bca}=_0x198731;const _0x2c1a61=new Float32Array(_0x34ce25['length']);_0x4d3b12===undefined&&(console[_0x4d8fa1(0x34e,0x2e0)](_0x23aa2b(-0x1b,0x7)),_0x4d3b12=Math[_0x4d8fa1(0x321,0x2bc)](..._0x34ce25));_0x339bca===undefined&&(console[_0x4d8fa1(0x34e,0x3b1)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x339bca=Math[_0x23aa2b(-0x50,-0x54)](..._0x34ce25));function _0x4d8fa1(_0x222ea6,_0x8643d7){return _0x1e8311(_0x222ea6-0x14a,_0x8643d7);}const _0x3f8a27=Math['max'](Math[_0x4d8fa1(0x336,0x2e9)](_0x4d3b12),Math['abs'](_0x339bca));for(let _0xb02614=0x0;_0xb02614<_0x34ce25[_0x23aa2b(-0x2,-0x1e)];_0xb02614++){const _0x1f8fae=_0x34ce25[_0xb02614]/_0x3f8a27;_0x2c1a61[_0xb02614]=_0x1f8fae;}return _0x2c1a61;}['destroy'](){Object['values'](this[_0x14e4aa(0x17a,0x125)])['forEach'](_0x16469c=>_0x16469c[_0x14e4aa(0x17d,0x146)]()),Object[_0x556a5f(0x2bc,0x2ed)](this['particlesTextures'])['forEach'](_0x21f407=>_0x21f407['destroy']());function _0x14e4aa(_0x2db5e5,_0x2b4385){return _0xc18867(_0x2db5e5- -0x3d7,_0x2b4385);}function _0x556a5f(_0x53677e,_0x108bc9){return _0x1e8311(_0x108bc9-0x70,_0x53677e);}Object['values'](this['primitives'])['forEach'](_0x32ca39=>_0x32ca39[_0x556a5f(0x221,0x29a)]()),this['frameRateMonitor']['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x51ca40,_0x26c760,_0x4207e3,_0x25891b){this[_0x4debc4(-0x16f,-0x1b2)]=_0x51ca40,this['options']=_0x26c760,this[_0x4154ab(0x534,0x527)]=_0x4207e3;function _0x4debc4(_0x1d97a2,_0x1e0cf7){return _0x1e8311(_0x1e0cf7- -0x417,_0x1d97a2);}this['computing']=_0x25891b;(typeof this[_0x4debc4(-0x233,-0x284)]['particlesTextureSize']!=='number'||this['options'][_0x4154ab(0x529,0x50e)]<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options']['particlesTextureSize']=0x100);this[_0x4154ab(0x4d6,0x548)]=this[_0x4154ab(0x4fc,0x504)](),this[_0x4154ab(0x4c4,0x535)]=this['createRenderingTextures']();function _0x4154ab(_0xbb9e40,_0x5e68b4){return _0xc18867(_0x5e68b4-0x48,_0xbb9e40);}this[_0x4debc4(-0x1f9,-0x1c2)]=this['createRenderingFramebuffers'](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x53fbd5={};_0x53fbd5['context']=this['context'],_0x53fbd5[_0x4c6de0(0x3a3,0x357)]=this['context']['drawingBufferWidth'],_0x53fbd5['height']=this['context'][_0x560214(0x471,0x40c)],_0x53fbd5['pixelFormat']=PixelFormat[_0x4c6de0(0x2f9,0x365)];function _0x560214(_0x33a07a,_0x4cca1a){return _0x1e8311(_0x4cca1a-0x18b,_0x33a07a);}_0x53fbd5[_0x4c6de0(0x2ed,0x2e5)]=PixelDatatype['UNSIGNED_BYTE'];const _0x3e5781=_0x53fbd5;function _0x4c6de0(_0x510919,_0x3dc8ba){return _0xc18867(_0x3dc8ba- -0x212,_0x510919);}const _0x17e7c3={};_0x17e7c3[_0x560214(0x463,0x3f0)]=this[_0x560214(0x413,0x3f0)],_0x17e7c3['width']=this['context'][_0x4c6de0(0x2f9,0x351)],_0x17e7c3['height']=this['context']['drawingBufferHeight'],_0x17e7c3['pixelFormat']=PixelFormat[_0x4c6de0(0x3ae,0x3ae)],_0x17e7c3[_0x4c6de0(0x2cd,0x2e5)]=PixelDatatype['UNSIGNED_INT'];const _0x10098a=_0x17e7c3;return{'segmentsColor':new Texture(_0x3e5781),'segmentsDepth':new Texture(_0x10098a)};}['createRenderingFramebuffers'](){const _0x312d2a={};_0x312d2a['context']=this['context'],_0x312d2a['colorTextures']=[this['textures'][_0x5d0b7f(0x38f,0x3fc)]];function _0x5d0b7f(_0xa23f5d,_0x5921e8){return _0x1e8311(_0x5921e8-0x1c2,_0xa23f5d);}return _0x312d2a['depthTexture']=this['textures']['segmentsDepth'],{'segments':new Framebuffer(_0x312d2a)};}['destoryRenderingFramebuffers'](){function _0x23ae11(_0x14f193,_0x382cd5){return _0xc18867(_0x14f193- -0x62d,_0x382cd5);}Object['values'](this[_0x23ae11(-0xae,-0xea)])['forEach'](_0x543ab7=>{function _0x563170(_0x420306,_0x24c94a){return _0x23ae11(_0x420306-0x308,_0x24c94a);}_0x543ab7[_0x563170(0x22f,0x2b1)]();});}['createColorTableTexture'](){const _0x2a74bb=new Float32Array(this['options']['colors']['flatMap'](_0x508abe=>{function _0x447bfa(_0x5ba729,_0x80a20b){return _0x485d(_0x80a20b- -0xc5,_0x5ba729);}function _0xfe063c(_0x3bba61,_0x332ae8){return _0x485d(_0x332ae8-0x2d1,_0x3bba61);}const _0x14c41f=Color$1[_0xfe063c(0x423,0x474)](_0x508abe);return[_0x14c41f['red'],_0x14c41f['green'],_0x14c41f[_0x447bfa(0x16d,0x13b)],_0x14c41f['alpha']];}));function _0x13c618(_0x2a1ee8,_0x3ca087){return _0x1e8311(_0x2a1ee8- -0xf9,_0x3ca087);}const _0x1572f2={};function _0x5f4d2c(_0x3ebf85,_0x5a9ee0){return _0x1e8311(_0x3ebf85- -0x22,_0x5a9ee0);}return _0x1572f2[_0x13c618(0x13b,0xc0)]=TextureMinificationFilter['LINEAR'],_0x1572f2[_0x5f4d2c(0x1a8,0x1aa)]=TextureMagnificationFilter[_0x5f4d2c(0x211,0x284)],_0x1572f2['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x1572f2['wrapT']=TextureWrap[_0x13c618(0xe2,0xe7)],new Texture({'context':this['context'],'width':this[_0x13c618(0x9a,0x26)]['colors'][_0x5f4d2c(0x247,0x2a8)],'height':0x1,'pixelFormat':PixelFormat[_0x13c618(0x154,0xec)],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x1572f2),'source':{'width':this['options'][_0x13c618(0x100,0x85)]['length'],'height':0x1,'arrayBufferView':_0x2a74bb}});}['createSegmentsGeometry'](){const _0x4494c5=0x4,_0x5acb1e=this['options']['particlesTextureSize'];let _0x4b08b2=[];for(let _0x201f61=0x0;_0x201f61<_0x5acb1e;_0x201f61++){for(let _0x465366=0x0;_0x465366<_0x5acb1e;_0x465366++){for(let _0x3575d2=0x0;_0x3575d2<_0x4494c5;_0x3575d2++){_0x4b08b2['push'](_0x201f61/_0x5acb1e),_0x4b08b2[_0xdd419b(0x35a,0x328)](_0x465366/_0x5acb1e);}}}_0x4b08b2=new Float32Array(_0x4b08b2);const _0x430e82=this[_0xdd419b(0x1ab,0x229)]['particlesTextureSize']**0x2;let _0x122b2f=[];for(let _0x350d77=0x0;_0x350d77<_0x430e82;_0x350d77++){_0x122b2f['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}function _0x3dadde(_0x28bbfd,_0x45a8bc){return _0x1e8311(_0x28bbfd- -0x3b7,_0x45a8bc);}_0x122b2f=new Float32Array(_0x122b2f);let _0x43f817=[];for(let _0x19a605=0x0,_0x22f392=0x0;_0x19a605<_0x430e82;_0x19a605++){_0x43f817['push'](_0x22f392+0x0,_0x22f392+0x1,_0x22f392+0x2,_0x22f392+0x2,_0x22f392+0x1,_0x22f392+0x3),_0x22f392+=_0x4494c5;}_0x43f817=new Uint32Array(_0x43f817);const _0x587e49={};_0x587e49['componentDatatype']=ComponentDatatype['FLOAT'];function _0xdd419b(_0x25bf89,_0x590ed5){return _0xc18867(_0x590ed5- -0x294,_0x25bf89);}_0x587e49['componentsPerAttribute']=0x2,_0x587e49['values']=_0x4b08b2;const _0xcac0cd={};_0xcac0cd['componentDatatype']=ComponentDatatype['FLOAT'],_0xcac0cd['componentsPerAttribute']=0x3,_0xcac0cd[_0xdd419b(0x378,0x313)]=_0x122b2f;const _0x5dcc40=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x587e49),'normal':new GeometryAttribute(_0xcac0cd)}),'indices':_0x43f817});return _0x5dcc40;}['createRawRenderState'](_0x33115c){const _0x5772e7={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x33115c};return Appearance['getDefaultRenderState'](!![],![],_0x5772e7);}['createPrimitives'](){const _0x23b92c={};function _0x2f8e1d(_0xeee16d,_0x49970a){return _0x1e8311(_0xeee16d-0x269,_0x49970a);}_0x23b92c['st']=0x0,_0x23b92c['normal']=0x1;const _0x23ec0a={};_0x23ec0a['enabled']=!![];const _0x188299={};_0x188299['enabled']=!![],_0x188299['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x188299[_0x2f8e1d(0x415,0x3ef)]=WebGLRenderingContext[_0x58c00d(0x141,0xff)],_0x188299[_0x2f8e1d(0x3f6,0x441)]=WebGLRenderingContext[_0x2f8e1d(0x4b0,0x4de)];const _0x1ad8cf={};_0x1ad8cf['viewport']=undefined,_0x1ad8cf['depthTest']=_0x23ec0a,_0x1ad8cf['depthMask']=!![],_0x1ad8cf['blending']=_0x188299;const _0x5756b6=new CustomPrimitive({'commandType':_0x58c00d(0x19e,0x206),'attributeLocations':_0x23b92c,'geometry':this[_0x58c00d(0x1b9,0x1e2)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x2f8e1d(0x3ef,0x36e)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures'][_0x58c00d(0x1a7,0x208)],'postProcessingPosition':()=>this['computing'][_0x58c00d(0xed,0x9e)]['postProcessingPosition'],'particlesSpeed':()=>this[_0x58c00d(0x156,0x16e)][_0x58c00d(0xed,0xb5)][_0x2f8e1d(0x48a,0x4d3)],'frameRateAdjustment':()=>this['computing'][_0x2f8e1d(0x429,0x407)],'colorTable':()=>this[_0x2f8e1d(0x43f,0x4b2)],'domain':()=>{var _0x38a6c9,_0x4e1170;function _0x1d0e8d(_0x673829,_0x58e35c){return _0x58c00d(_0x673829-0x36a,_0x58e35c);}function _0x190bc6(_0x2db29c,_0x4081a5){return _0x2f8e1d(_0x4081a5-0xca,_0x2db29c);}const _0x5097c6=new Cartesian2(((_0x38a6c9=this['options']['domain'])===null||_0x38a6c9===void 0x0?void 0x0:_0x38a6c9[_0x1d0e8d(0x4a8,0x498)])??this['computing']['windData'][_0x1d0e8d(0x45a,0x469)][_0x1d0e8d(0x4a8,0x4e1)],((_0x4e1170=this[_0x190bc6(0x522,0x4c6)]['domain'])===null||_0x4e1170===void 0x0?void 0x0:_0x4e1170[_0x1d0e8d(0x4ec,0x539)])??this['computing']['windData'][_0x1d0e8d(0x45a,0x417)]['max']);return _0x5097c6;},'displayRange':()=>{var _0x1f18c1,_0x3ab843;function _0x28de5d(_0x44b8f6,_0x417192){return _0x58c00d(_0x417192- -0x94,_0x44b8f6);}function _0x2213b0(_0x23edf8,_0x128d01){return _0x58c00d(_0x128d01-0x3ad,_0x23edf8);}const _0x22caa0=new Cartesian2(((_0x1f18c1=this[_0x28de5d(-0xd,0x66)]['displayRange'])===null||_0x1f18c1===void 0x0?void 0x0:_0x1f18c1['min'])??this['computing'][_0x28de5d(0x177,0x132)]['speed']['min'],((_0x3ab843=this['options']['displayRange'])===null||_0x3ab843===void 0x0?void 0x0:_0x3ab843['max'])??this['computing']['windData']['speed']['max']);return _0x22caa0;},'particleHeight':()=>this[_0x58c00d(0xfa,0x107)]['fixedHeight']||0x0,'aspect':()=>this[_0x2f8e1d(0x4ce,0x487)][_0x58c00d(0x1a0,0x1ac)]/this['context'][_0x58c00d(0x1e8,0x1a2)],'pixelSize':()=>this['viewerParameters'][_0x58c00d(0x189,0x143)],'lineWidth':()=>{const _0x103153={};_0x103153['min']=0x1;function _0x24c227(_0x259dc9,_0x263f70){return _0x2f8e1d(_0x263f70- -0x5fd,_0x259dc9);}function _0x495483(_0x5139c8,_0xd7fbfd){return _0x2f8e1d(_0x5139c8-0x4f,_0xd7fbfd);}_0x103153['max']=0x2;const _0x332933=this['options'][_0x24c227(-0x147,-0x166)]||_0x103153;return new Cartesian2(_0x332933[_0x24c227(-0x16c,-0x1bd)],_0x332933['max']);},'lineLength':()=>{const _0xfbd5b1={};function _0x2e3cfd(_0x4b9247,_0x48eab6){return _0x58c00d(_0x4b9247- -0x13f,_0x48eab6);}_0xfbd5b1[_0x2e3cfd(-0x1,-0x53)]=0x14,_0xfbd5b1[_0x2e3cfd(0x43,0x1e)]=0x64;function _0x2da4f9(_0x549c9c,_0x438229){return _0x58c00d(_0x438229- -0x1be,_0x549c9c);}const _0x1cdce8=this['options'][_0x2e3cfd(0x66,-0x4)]||_0xfbd5b1;return new Cartesian2(_0x1cdce8['min'],_0x1cdce8['max']);},'is3D':()=>this[_0x58c00d(0x11c,0x11f)]['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x58c00d(0x1d2,0x232)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this[_0x58c00d(0x1bb,0x157)](_0x1ad8cf)}),_0x210fdf={};_0x210fdf[_0x2f8e1d(0x413,0x49c)]=_0x5756b6;function _0x58c00d(_0x379955,_0x2b7c77){return _0x1e8311(_0x379955- -0x99,_0x2b7c77);}return _0x210fdf;}[_0xc18867(0x54d,0x596)](){const _0x204c76=this[_0x1e5468(0xac,0x5e)]();this[_0x6f07cc(0x4f8,0x558)]['segments'][_0x1e5468(0x10,-0x4)]=_0x204c76;function _0x1e5468(_0x522e38,_0x5ad206){return _0xc18867(_0x5ad206- -0x51e,_0x522e38);}const _0x5aaee4={};_0x5aaee4[_0x6f07cc(0x607,0x5bb)]=this['context'],_0x5aaee4['geometry']=_0x204c76,_0x5aaee4['attributeLocations']=this[_0x6f07cc(0x560,0x558)][_0x6f07cc(0x527,0x500)][_0x1e5468(0x42,0x25)],_0x5aaee4['bufferUsage']=BufferUsage['STATIC_DRAW'];function _0x6f07cc(_0x12ddb5,_0x364419){return _0xc18867(_0x364419-0x2c,_0x12ddb5);}const _0x4bd840=VertexArray['fromGeometry'](_0x5aaee4);this[_0x6f07cc(0x4f6,0x558)][_0x1e5468(-0x56,-0x4a)]['commandToExecute']&&(this[_0x6f07cc(0x56b,0x558)][_0x6f07cc(0x49e,0x500)][_0x6f07cc(0x580,0x5b1)]['vertexArray']=_0x4bd840);}['onColorTableChange'](){this[_0x4bb1a9(0x1c1,0x179)][_0x52a0cf(0xe,-0x41)]();function _0x52a0cf(_0x3daafb,_0x1cdfdc){return _0x1e8311(_0x1cdfdc- -0x26b,_0x3daafb);}function _0x4bb1a9(_0x5289a9,_0x24118d){return _0x1e8311(_0x5289a9- -0x15,_0x24118d);}this[_0x52a0cf(-0x3a,-0x95)]=this['createColorTableTexture']();}[_0xc18867(0x4cc,0x464)](_0x210c98){function _0x33675c(_0x30d706,_0x2320f1){return _0x1e8311(_0x2320f1-0x2ca,_0x30d706);}const _0x173839=_0x210c98['colors']&&JSON[_0x33675c(0x4fa,0x523)](_0x210c98['colors'])!==JSON['stringify'](this['options']['colors']);this[_0x582bed(-0x105,-0xe2)]=deepMerge(_0x210c98,this[_0x582bed(-0x5e,-0xe2)]);function _0x582bed(_0xf4fd51,_0x2cdfc3){return _0x1e8311(_0x2cdfc3- -0x275,_0xf4fd51);}_0x173839&&this['onColorTableChange']();}[_0x1e8311(0x22a,0x2a6)](){Object['values'](this['framebuffers'])[_0x490f51(0x1f1,0x16e)](_0x4e66af=>{_0x4e66af['destroy']();});function _0x4c5e1e(_0x2039b7,_0x1f6e0c){return _0x1e8311(_0x1f6e0c- -0x188,_0x2039b7);}function _0x490f51(_0x406842,_0x2a7f7b){return _0x1e8311(_0x406842- -0x95,_0x2a7f7b);}Object['values'](this['primitives'])['forEach'](_0x2d0228=>{_0x2d0228['destroy']();}),this[_0x4c5e1e(0xa1,0x4e)]['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x3d7e6d,_0x13635f,_0x14d922,_0x346e8c,_0x1f901b){function _0x1ba002(_0x20d254,_0x144b3f){return _0xc18867(_0x20d254- -0x20b,_0x144b3f);}this['context']=_0x3d7e6d,this[_0x159aef(0xdd,0x161)]=_0x14d922,this['viewerParameters']=_0x346e8c,this['computing']=new WindParticlesComputing(_0x3d7e6d,_0x13635f,_0x14d922,_0x346e8c,_0x1f901b);function _0x159aef(_0x1aec46,_0x564f66){return _0xc18867(_0x564f66- -0x35c,_0x1aec46);}this[_0x159aef(0x215,0x20f)]=new WindParticlesRendering(_0x3d7e6d,_0x14d922,_0x346e8c,this['computing']),this['clearFramebuffers']();}[_0xc18867(0x56c,0x59b)](){function _0x4d30e5(_0x4c8043,_0x24010b){return _0x1e8311(_0x4c8043- -0x215,_0x24010b);}function _0x15151d(_0x3ac574,_0x4f5fcc){return _0xc18867(_0x3ac574- -0x478,_0x4f5fcc);}const _0x3021c4=[this[_0x4d30e5(-0x26,-0x35)]['primitives'][_0x4d30e5(-0x71,0x12)],this['computing']['primitives'][_0x4d30e5(0x31,-0x13)],this['computing']['primitives']['postProcessingPosition'],this['rendering']['primitives'][_0x15151d(0x5c,0x68)]];return _0x3021c4;}['clearFramebuffers'](){function _0x2181be(_0x55d906,_0x46d2a0){return _0xc18867(_0x46d2a0- -0x656,_0x55d906);}function _0xb0d75a(_0x35966d,_0x58d148){return _0xc18867(_0x58d148- -0x5ae,_0x35966d);}const _0x29f42a=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});Object['keys'](this[_0x2181be(-0xf9,-0xeb)]['framebuffers'])[_0x2181be(-0xac,-0xa6)](_0xf9656b=>{function _0x21c21d(_0x41f2c1,_0x18860b){return _0x2181be(_0x18860b,_0x41f2c1- -0x73);}_0x29f42a['framebuffer']=this['rendering']['framebuffers'][_0xf9656b],_0x29f42a[_0x21c21d(-0x12e,-0xde)](this['context']);});}[_0xc18867(0x576,0x591)](_0x114228){let _0x15c651=![];_0x114228['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x114228['particlesTextureSize']&&(_0x15c651=!![]);function _0x5c73bf(_0x4a734f,_0x3099a5){return _0xc18867(_0x4a734f- -0x526,_0x3099a5);}const _0x5bc93e=deepMerge(_0x114228,this['options']);if(_0x5bc93e[_0x1db0d8(0x31a,0x2ba)]<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x5bc93e,this[_0x1db0d8(0x3cb,0x35f)][_0x5c73bf(-0x5a,-0x83)](_0x114228);function _0x1db0d8(_0x3b53ed,_0x2be1ad){return _0xc18867(_0x2be1ad- -0x20c,_0x3b53ed);}this[_0x1db0d8(0x2de,0x30d)][_0x5c73bf(-0x5a,-0x8a)](_0x114228),_0x15c651&&(this[_0x5c73bf(-0xd,0x8)]['destroyParticlesTextures'](),this['computing'][_0x1db0d8(0x38b,0x30f)](),this['rendering']['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x455619){function _0x1edb13(_0x3b0745,_0x3d646f){return _0x1e8311(_0x3d646f-0xf,_0x3b0745);}this['viewerParameters']=_0x455619,this['computing'][_0x1edb13(0x1cb,0x1c4)]=_0x455619,this['rendering']['viewerParameters']=_0x455619;}['destroy'](){function _0x1b9d8c(_0x1c9c4f,_0x170d21){return _0xc18867(_0x1c9c4f- -0x44a,_0x170d21);}this[_0x1b9d8c(0xcf,0xba)]['destroy']();function _0x380681(_0x520b55,_0x2be7cd){return _0xc18867(_0x2be7cd- -0x69c,_0x520b55);}this[_0x380681(-0x157,-0x131)]['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0xc18867(0x53e,0x50f)]['BaseLayer'],_0x5b5dc8={};_0x5b5dc8['min']=0x1,_0x5b5dc8['max']=0x2;const _0x59b26f={};_0x59b26f['min']=0x14,_0x59b26f[_0xc18867(0x545,0x513)]=0x64;const _0x1b47d3={};_0x1b47d3[_0xc18867(0x4c6,0x4c2)]=0x64,_0x1b47d3[_0xc18867(0x4d5,0x459)]=0x0,_0x1b47d3['lineWidth']=_0x5b5dc8,_0x1b47d3[_0x1e8311(0x23e,0x207)]=_0x59b26f,_0x1b47d3[_0xc18867(0x5a6,0x5d1)]=0x1,_0x1b47d3[_0xc18867(0x535,0x58b)]=0.003,_0x1b47d3[_0xc18867(0x4e4,0x4c9)]=0.001,_0x1b47d3[_0xc18867(0x523,0x570)]=['rgb(206,255,255)'],_0x1b47d3['flipY']=![],_0x1b47d3[_0x1e8311(0x1e9,0x16a)]=!![];const DEF_OPTIONS=_0x1b47d3;class WindLayer extends BaseLayer$1{constructor(_0x281ab8={}){_0x281ab8={...DEF_OPTIONS,..._0x281ab8},super(_0x281ab8);function _0x2ba589(_0x574474,_0x187364){return _0x1e8311(_0x574474-0x21c,_0x187364);}this[_0x2ba589(0x460,0x407)](_0x281ab8,_0x281ab8);}get['layer'](){return this['primitives'];}get['data'](){function _0x16060c(_0x609080,_0x31f35d){return _0x1e8311(_0x31f35d-0x3ae,_0x609080);}function _0x30ddeb(_0x185727,_0x4b5cf7){return _0x1e8311(_0x185727- -0xec,_0x4b5cf7);}return this[_0x30ddeb(0xa7,0x103)][_0x16060c(0x5c7,0x55e)];}set['data'](_0x4103ad){this['options']['data']=_0x4103ad,this['setData'](_0x4103ad);}get[_0x1e8311(0x1f9,0x217)](){function _0xc7f2b7(_0x3aaed4,_0x11d18f){return _0xc18867(_0x11d18f- -0x366,_0x3aaed4);}function _0x43f715(_0x54188d,_0x2f8988){return _0x1e8311(_0x2f8988-0x1a8,_0x54188d);}return this[_0x43f715(0x385,0x33b)][_0x43f715(0x420,0x3a1)];}set['colors'](_0xf01edd){function _0x24ff4d(_0x5ed5b2,_0x4b0019){return _0xc18867(_0x4b0019- -0x34c,_0x5ed5b2);}this['options']['colors']=_0xf01edd;const _0x1c54d0={};_0x1c54d0[_0x24ff4d(0x216,0x1d7)]=_0xf01edd;function _0x38b37f(_0x141cf0,_0x2d7506){return _0xc18867(_0x141cf0- -0x523,_0x2d7506);}this[_0x24ff4d(0x292,0x222)](this['options'],_0x1c54d0);}['_mountedHook'](){}[_0xc18867(0x4e9,0x551)](){this[_0x4dd9ca(0xa7,0xbd)]=this['_map'][_0x4b4cd8(0x64c,0x5d1)],this[_0x4b4cd8(0x66b,0x5fa)]=this['_map'][_0x4dd9ca(0x106,0xe6)];this['options']['data']&&this[_0x4b4cd8(0x543,0x58c)](this[_0x4dd9ca(0x23,0x28)]['data']);if(!this['windData'])return;this['viewerParameters']={'lonRange':new Cesium$1[(_0x4b4cd8(0x52f,0x5ac))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']};function _0x4b4cd8(_0x512afb,_0x29e530){return _0xc18867(_0x29e530-0x7f,_0x512afb);}this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this[_0x4dd9ca(0xa9,0xf4)],this[_0x4dd9ca(0x9c,0x28)],this['viewerParameters'],this['scene']);function _0x4dd9ca(_0x53090c,_0x266823){return _0xc18867(_0x266823- -0x495,_0x53090c);}this['primitives']=this['particleSystem']['getPrimitives'](),this['primitives']['forEach'](_0x5ad618=>{function _0x3dfbe6(_0x4b9a45,_0x10c802){return _0x4b4cd8(_0x4b9a45,_0x10c802- -0x612);}this['scene']['primitives'][_0x3dfbe6(-0x32,-0xab)](_0x5ad618);}),this[_0x4b4cd8(0x608,0x5fa)][_0x4dd9ca(0xc5,0x6d)]=0.01,this[_0x4b4cd8(0x64d,0x5fa)]['changed'][_0x4b4cd8(0x67e,0x603)](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete'][_0x4b4cd8(0x658,0x603)](this[_0x4dd9ca(0xd9,0x114)][_0x4dd9ca(0x93,0x5e)](this)),window['addEventListener'](_0x4dd9ca(-0x54,0x35),this['updateViewerParameters'][_0x4dd9ca(0x95,0x5e)](this));}['_removedHook'](){this[_0x24378d(0x27f,0x25d)][_0x24378d(0x1c4,0x16f)]['removeEventListener'](this['updateViewerParameters']['bind'](this)),this['scene']['morphComplete'][_0x24378d(0x1ea,0x257)](this[_0x14e2c0(0x336,0x3a7)][_0x24378d(0x1f7,0x1fd)](this));function _0x24378d(_0x151860,_0x5cf7fd){return _0xc18867(_0x151860- -0x2fc,_0x5cf7fd);}function _0x14e2c0(_0x51e725,_0x6b7416){return _0x1e8311(_0x6b7416-0x128,_0x51e725);}window[_0x24378d(0x1ea,0x1e2)](_0x24378d(0x1ce,0x1bf),this['updateViewerParameters']['bind'](this)),this[_0x24378d(0x230,0x234)]&&(this['primitives']['forEach'](_0x510863=>{function _0x519569(_0x227911,_0x1d672e){return _0x24378d(_0x227911-0xfe,_0x1d672e);}this[_0x519569(0x354,0x32c)]['primitives']['remove'](_0x510863);}),delete this['primitives']),this['particleSystem']&&(this[_0x24378d(0x276,0x2e3)][_0x24378d(0x258,0x1ef)](),delete this['particleSystem']);}[_0xc18867(0x50d,0x4f1)](_0x5f2dc7,_0x26b08c){this['windData']=this[_0x45a62b(0x348,0x2ee)](_0x5f2dc7);function _0x45a62b(_0x6713b7,_0x5c23fc){return _0xc18867(_0x5c23fc- -0x26c,_0x6713b7);}if(_0x26b08c){this[_0x45a62b(0x30e,0x28c)](),this[_0x45a62b(0x259,0x27d)]();return;}function _0x4b06da(_0x11211d,_0x265a50){return _0xc18867(_0x265a50- -0x489,_0x11211d);}this['particleSystem']?(this['particleSystem']['computing']['updateWindData'](this[_0x4b06da(0xa3,0x100)]),this['scene']['requestRender']()):this['_addedHook']();}['_setOptionsHook'](_0x2310a3,_0x3bf4ca){function _0xade486(_0x1ff7df,_0xed605d){return _0x1e8311(_0xed605d- -0x2c8,_0x1ff7df);}function _0x4cf8c8(_0xadcbf,_0x505516){return _0xc18867(_0xadcbf- -0x66,_0x505516);}this[_0xade486(-0xc3,-0x80)]&&(this[_0xade486(-0x35,-0x80)][_0x4cf8c8(0x510,0x4e9)](_0x3bf4ca),this['scene'][_0x4cf8c8(0x4e1,0x477)]());}[_0xc18867(0x55a,0x5bf)](_0x4af9d6){var _0x311a1a,_0x4b504b;const _0x3cde17={..._0x4af9d6},_0xafb756=_0x3cde17;!_0xafb756['height']&&_0xafb756['rows']&&(_0xafb756['height']=_0xafb756['rows']);function _0x375e7e(_0x338f3b,_0x3c2059){return _0xc18867(_0x3c2059- -0x1f2,_0x338f3b);}!_0xafb756[_0x19b269(0x182,0x10c)]&&_0xafb756[_0x19b269(0x141,0x12e)]&&(_0xafb756['width']=_0xafb756['cols']);!_0xafb756[_0x19b269(0x15d,0x196)]&&(_0xafb756[_0x375e7e(0x38d,0x352)]={'west':_0xafb756[_0x375e7e(0x31d,0x39b)],'south':_0xafb756['ymin'],'east':_0xafb756['xmax'],'north':_0xafb756[_0x375e7e(0x41c,0x3a7)]});if(!_0xafb756['u']){const _0x432fbb={};_0x432fbb[_0x19b269(0x100,0x90)]=_0x4af9d6['udata'],_0x432fbb['min']=_0x4af9d6['umin'],_0x432fbb[_0x375e7e(0x2d1,0x353)]=_0x4af9d6['umax'],_0xafb756['u']=_0x432fbb;}if(!_0xafb756['v']){const _0x348f96={};_0x348f96[_0x375e7e(0x320,0x2f5)]=_0x4af9d6['vdata'],_0x348f96['min']=_0x4af9d6['vmin'],_0x348f96[_0x375e7e(0x30d,0x353)]=_0x4af9d6['vmax'],_0xafb756['v']=_0x348f96;}if(((_0x311a1a=_0xafb756[_0x375e7e(0x26f,0x2c1)])===null||_0x311a1a===void 0x0?void 0x0:_0x311a1a[_0x375e7e(0x394,0x30f)])===undefined||((_0x4b504b=_0xafb756['speed'])===null||_0x4b504b===void 0x0?void 0x0:_0x4b504b['max'])===undefined||_0xafb756['speed']['array']===undefined){const _0x3e2a53={'array':new Float32Array(_0xafb756['u'][_0x375e7e(0x2aa,0x2f5)][_0x19b269(0x1ac,0x21f)]),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x325b63=0x0;_0x325b63<_0xafb756['u'][_0x19b269(0x100,0x15a)][_0x375e7e(0x37e,0x3a1)];_0x325b63++){_0x3e2a53['array'][_0x325b63]=Math['sqrt'](_0xafb756['u']['array'][_0x325b63]*_0xafb756['u']['array'][_0x325b63]+_0xafb756['v'][_0x19b269(0x100,0xc3)][_0x325b63]*_0xafb756['v']['array'][_0x325b63]),_0x3e2a53[_0x19b269(0x100,0x79)][_0x325b63]!==0x0&&(_0x3e2a53['min']=Math[_0x19b269(0x11a,0x96)](_0x3e2a53['min'],_0x3e2a53['array'][_0x325b63]),_0x3e2a53[_0x375e7e(0x2f3,0x353)]=Math[_0x375e7e(0x3ad,0x353)](_0x3e2a53[_0x19b269(0x15e,0xd6)],_0x3e2a53['array'][_0x325b63]));}_0xafb756[_0x19b269(0xcc,0xb1)]=_0x3e2a53;}function _0x19b269(_0x42b5b8,_0xa3b210){return _0xc18867(_0x42b5b8- -0x3e7,_0xa3b210);}return _0xafb756;}[_0x1e8311(0x27f,0x278)](){var _0x1d6c9a;function _0x8f5c9b(_0x46e122,_0x13e56e){return _0xc18867(_0x13e56e- -0x35f,_0x46e122);}const _0x53d13a=this['scene'],_0x1dc604=_0x53d13a['canvas'],_0x3b7ff7={};_0x3b7ff7['x']=0x0,_0x3b7ff7['y']=0x0;const _0x41f929={};_0x41f929['x']=0x0,_0x41f929['y']=_0x1dc604['clientHeight'];const _0x137318={};_0x137318['x']=_0x1dc604['clientWidth'],_0x137318['y']=0x0;const _0x1e0afe={};_0x1e0afe['x']=_0x1dc604['clientWidth'],_0x1e0afe['y']=_0x1dc604['clientHeight'];const _0x1ca5ae=[_0x3b7ff7,_0x41f929,_0x137318,_0x1e0afe];let _0x58f765=0xb4,_0x4cdf79=-0xb4,_0x420439=0x5a,_0x4b52a4=-0x5a,_0x2361a9=![];for(const _0x6ed682 of _0x1ca5ae){const _0x3def19=_0x53d13a['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x6ed682['x'],_0x6ed682['y']),_0x53d13a[_0x4ee4fc(0x2c3,0x28f)]['ellipsoid']);if(!_0x3def19){_0x2361a9=!![];break;}const _0x223655=_0x53d13a['globe'][_0x4ee4fc(0x2af,0x2f1)]['cartesianToCartographic'](_0x3def19),_0x242593=Cesium$1['Math']['toDegrees'](_0x223655[_0x4ee4fc(0x340,0x300)]),_0x4b44c2=Cesium$1['Math']['toDegrees'](_0x223655['latitude']);_0x58f765=Math['min'](_0x58f765,_0x242593),_0x4cdf79=Math['max'](_0x4cdf79,_0x242593),_0x420439=Math['min'](_0x420439,_0x4b44c2),_0x4b52a4=Math[_0x4ee4fc(0x2fb,0x293)](_0x4b52a4,_0x4b44c2);}if(!_0x2361a9){const _0x13b5c7=new Cesium$1['Cartesian2'](Math[_0x8f5c9b(0x214,0x1e6)](this[_0x4ee4fc(0x313,0x2d7)][_0x4ee4fc(0x27d,0x292)][_0x4ee4fc(0x28f,0x2bb)],_0x58f765),Math['min'](this[_0x4ee4fc(0x28c,0x2d7)][_0x4ee4fc(0x242,0x292)][_0x8f5c9b(0x23c,0x21a)],_0x4cdf79)),_0x19d673=new Cesium$1['Cartesian2'](Math['max'](this[_0x4ee4fc(0x27f,0x2d7)][_0x8f5c9b(0x21f,0x1e5)][_0x8f5c9b(0x1c5,0x178)],_0x420439),Math[_0x8f5c9b(0x21c,0x1a2)](this['windData'][_0x8f5c9b(0x1aa,0x1e5)]['north'],_0x4b52a4)),_0x1e95ed=(_0x13b5c7['y']-_0x13b5c7['x'])*0.05,_0x12a33c=(_0x19d673['y']-_0x19d673['x'])*0.05;_0x13b5c7['x']=Math[_0x8f5c9b(0x1ca,0x1e6)](this['windData'][_0x4ee4fc(0x2c0,0x292)]['west'],_0x13b5c7['x']-_0x1e95ed),_0x13b5c7['y']=Math['min'](this['windData']['bounds'][_0x8f5c9b(0x275,0x21a)],_0x13b5c7['y']+_0x1e95ed),_0x19d673['x']=Math[_0x4ee4fc(0x297,0x293)](this['windData'][_0x4ee4fc(0x2f9,0x292)][_0x4ee4fc(0x1a4,0x225)],_0x19d673['x']-_0x12a33c),_0x19d673['y']=Math['min'](this['windData'][_0x4ee4fc(0x27a,0x292)]['north'],_0x19d673['y']+_0x12a33c),this['viewerParameters']['lonRange']=_0x13b5c7,this['viewerParameters'][_0x4ee4fc(0x23b,0x284)]=_0x19d673;const _0x3151ac=this[_0x4ee4fc(0x2d3,0x2d7)][_0x4ee4fc(0x251,0x292)]['east']-this['windData']['bounds'][_0x8f5c9b(0x293,0x20e)],_0x4cf82a=this['windData']['bounds'][_0x4ee4fc(0x295,0x30d)]-this['windData']['bounds'][_0x8f5c9b(0x1e1,0x178)],_0x38e9a7=(_0x13b5c7['y']-_0x13b5c7['x'])/_0x3151ac,_0x7fcb48=(_0x19d673['y']-_0x19d673['x'])/_0x4cf82a,_0x71d279=Math['min'](_0x38e9a7,_0x7fcb48),_0x18dd5e=0x3e8*_0x71d279;_0x18dd5e>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math[_0x8f5c9b(0x197,0x1a2)](0x3e8,_0x18dd5e)));}function _0x4ee4fc(_0x48b45d,_0x493e56){return _0x1e8311(_0x493e56-0x78,_0x48b45d);}this['viewerParameters']['sceneMode']=this[_0x4ee4fc(0x299,0x2a0)][_0x4ee4fc(0x255,0x2c3)],(_0x1d6c9a=this[_0x4ee4fc(0x320,0x2c0)])===null||_0x1d6c9a===void 0x0||_0x1d6c9a['applyViewerParameters'](this['viewerParameters']);}[_0xc18867(0x50f,0x4c6)](_0xccd333,_0x2accbd){const {bounds:_0x1abf0d,width:_0x39b093,height:_0xb87a7d,u:_0x23d87b,v:_0x2ae917,speed:_0x1d8c0b}=this['windData'],{flipY:_0x56f970}=this['options'];if(_0xccd333<_0x1abf0d['west']||_0xccd333>_0x1abf0d['east']||_0x2accbd<_0x1abf0d[_0x10638e(-0x1f7,-0x1ce)]||_0x2accbd>_0x1abf0d['north'])return null;const _0x5b6bbe=(_0xccd333-_0x1abf0d['west'])/(_0x1abf0d[_0x2c555a(0x528,0x50b)]-_0x1abf0d[_0x10638e(-0x11e,-0x138)])*(_0x39b093-0x1);let _0x249308=(_0x2accbd-_0x1abf0d['south'])/(_0x1abf0d['north']-_0x1abf0d['south'])*(_0xb87a7d-0x1);_0x56f970&&(_0x249308=_0xb87a7d-0x1-_0x249308);const _0x58fb59=Math['floor'](_0x5b6bbe),_0x467af9=Math['floor'](_0x249308),_0x3ab19c=Math[_0x2c555a(0x4d1,0x508)](_0x5b6bbe),_0x13850c=Math[_0x10638e(-0x13a,-0x1a4)](_0x3ab19c+0x1,_0x39b093-0x1),_0xf77092=Math['floor'](_0x249308),_0x1e39a3=Math['min'](_0xf77092+0x1,_0xb87a7d-0x1),_0x72db70=_0x5b6bbe-_0x3ab19c,_0x2e0825=_0x249308-_0xf77092,_0x5ed032=_0x467af9*_0x39b093+_0x58fb59,_0x104502=_0xf77092*_0x39b093+_0x3ab19c,_0x401b8c=_0xf77092*_0x39b093+_0x13850c,_0x1ce518=_0x1e39a3*_0x39b093+_0x3ab19c;function _0x10638e(_0x29dca4,_0x174bcf){return _0x1e8311(_0x174bcf- -0x37b,_0x29dca4);}const _0x4693cc=_0x1e39a3*_0x39b093+_0x13850c,_0x5706de=_0x23d87b[_0x2c555a(0x496,0x40f)][_0x104502],_0x103d98=_0x23d87b[_0x2c555a(0x496,0x505)][_0x401b8c],_0x4c959c=_0x23d87b[_0x2c555a(0x496,0x45c)][_0x1ce518],_0x31a749=_0x23d87b[_0x10638e(-0x15e,-0x1be)][_0x4693cc],_0x56c900=(0x1-_0x72db70)*(0x1-_0x2e0825)*_0x5706de+_0x72db70*(0x1-_0x2e0825)*_0x103d98+(0x1-_0x72db70)*_0x2e0825*_0x4c959c+_0x72db70*_0x2e0825*_0x31a749,_0x2c0b13=_0x2ae917['array'][_0x104502],_0x2cdc9f=_0x2ae917['array'][_0x401b8c],_0x4da26c=_0x2ae917[_0x2c555a(0x496,0x454)][_0x1ce518],_0x45fd8e=_0x2ae917[_0x10638e(-0x21f,-0x1be)][_0x4693cc],_0x2d40ee=(0x1-_0x72db70)*(0x1-_0x2e0825)*_0x2c0b13+_0x72db70*(0x1-_0x2e0825)*_0x2cdc9f+(0x1-_0x72db70)*_0x2e0825*_0x4da26c+_0x72db70*_0x2e0825*_0x45fd8e,_0x1bd505=Math[_0x2c555a(0x511,0x497)](_0x56c900*_0x56c900+_0x2d40ee*_0x2d40ee);function _0x2c555a(_0x1a28b9,_0xab9f2e){return _0xc18867(_0x1a28b9- -0x51,_0xab9f2e);}const _0x4c4017={};_0x4c4017['u']=_0x23d87b['array'][_0x5ed032],_0x4c4017['v']=_0x2ae917[_0x2c555a(0x496,0x4de)][_0x5ed032],_0x4c4017['speed']=_0x1d8c0b['array'][_0x5ed032];const _0x50ece2={};_0x50ece2['u']=_0x56c900,_0x50ece2['v']=_0x2d40ee,_0x50ece2['speed']=_0x1bd505;const _0xfb10f7={};return _0xfb10f7[_0x2c555a(0x4b8,0x454)]=_0x4c4017,_0xfb10f7[_0x2c555a(0x4f8,0x4f6)]=_0x50ece2,_0xfb10f7;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this[_0x297466(0x259,0x20f)]=null,this[_0x472f54(0x18f,0x18a)]=null;function _0x472f54(_0x2a0b50,_0x1c4b26){return _0x1e8311(_0x1c4b26- -0x60,_0x2a0b50);}function _0x297466(_0x5f3834,_0x4afcd3){return _0x1e8311(_0x4afcd3- -0x82,_0x5f3834);}this[_0x472f54(0x1c2,0x14f)]=null,this['age']=null,this['speed']=null;}['destroy'](){for(const _0x4c1551 in this){delete this[_0x4c1551];}}}class CanvasWindField{constructor(_0x13c1b5){this['setOptions'](_0x13c1b5);}get[_0x1e8311(0x190,0x12f)](){return this['_speedRate'];}set[_0xc18867(0x4ba,0x438)](_0x37e2cc){function _0xe41f12(_0xbd5d7a,_0x23084e){return _0x1e8311(_0xbd5d7a- -0x28a,_0x23084e);}this[_0xe41f12(-0xa4,-0x4f)]=(0x64-(_0x37e2cc>0x63?0x63:_0x37e2cc))*0x64;function _0x62fb87(_0x50c36e,_0xaea04c){return _0xc18867(_0x50c36e- -0x54d,_0xaea04c);}this['_calc_speedRate']=[(this['xmax']-this['xmin'])/this['_speedRate'],(this[_0x62fb87(0x4c,-0x2f)]-this[_0x62fb87(-0x2f,0x0)])/this['_speedRate']];}get['maxAge'](){function _0x1db16a(_0x4b699b,_0x461cd7){return _0xc18867(_0x4b699b- -0x2a4,_0x461cd7);}return this[_0x1db16a(0x241,0x23c)];}set['maxAge'](_0x505183){this['_maxAge']=_0x505183;}['setOptions'](_0x5ea899){function _0x4b33f7(_0x6a1b58,_0x278c95){return _0x1e8311(_0x278c95-0x3a7,_0x6a1b58);}this[_0x4b33f7(0x5b7,0x53a)]=_0x5ea899,this[_0x4b33f7(0x4f6,0x579)]=_0x5ea899[_0x4b33f7(0x59d,0x579)]||0x78,this['speedRate']=_0x5ea899['speedRate']||0x32,this['particles']=[];function _0x2c5818(_0x126b60,_0x3f8a1b){return _0x1e8311(_0x126b60- -0x335,_0x3f8a1b);}const _0x23d217=_0x5ea899[_0x2c5818(-0x19a,-0x1a6)]||0x1000;for(let _0x196464=0x0;_0x196464<_0x23d217;_0x196464++){const _0x43d1c3=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0x43d1c3);}}['setDate'](_0x2f99e2){function _0x187147(_0x3e7992,_0x415329){return _0xc18867(_0x415329- -0x570,_0x3e7992);}this[_0x23e40b(-0x1d3,-0x1e3)]=_0x2f99e2['rows'],this[_0x23e40b(-0x1e4,-0x1cc)]=_0x2f99e2['cols'],this['xmin']=_0x2f99e2[_0x187147(0x9b,0x1d)],this['xmax']=_0x2f99e2[_0x23e40b(-0x199,-0x150)],this['ymin']=_0x2f99e2['ymin'],this[_0x23e40b(-0x173,-0x10a)]=_0x2f99e2['ymax'];function _0x23e40b(_0x5b7d6a,_0x1b17bb){return _0x1e8311(_0x5b7d6a- -0x3e2,_0x1b17bb);}this[_0x187147(-0x7a,-0xbb)]=[];const _0x5528d0=_0x2f99e2[_0x187147(-0x84,0x4)],_0x5125a4=_0x2f99e2[_0x187147(-0x64,-0x50)];let _0x49f97f=![];_0x5528d0['length']===this[_0x23e40b(-0x1d3,-0x178)]&&_0x5528d0[0x0][_0x187147(0x11,0x23)]===this['cols']&&(_0x49f97f=!![]);let _0x5bbe31=0x0,_0x3fddef=null,_0x2031b0=null;for(let _0x61c918=0x0;_0x61c918<this['rows'];_0x61c918++){_0x3fddef=[];for(let _0x353a1e=0x0;_0x353a1e<this['cols'];_0x353a1e++,_0x5bbe31++){_0x49f97f?_0x2031b0=this[_0x23e40b(-0x158,-0x15d)](_0x5528d0[_0x61c918][_0x353a1e],_0x5125a4[_0x61c918][_0x353a1e]):_0x2031b0=this[_0x187147(0xcd,0x44)](_0x5528d0[_0x5bbe31],_0x5125a4[_0x5bbe31]),_0x3fddef[_0x23e40b(-0x150,-0x18e)](_0x2031b0);}this[_0x23e40b(-0x257,-0x2ba)]['push'](_0x3fddef);}!this['options'][_0x23e40b(-0x23f,-0x21a)]&&this['grid']['reverse']();}[_0x1e8311(0x198,0x153)](){delete this[_0x4b9eaf(0x5c6,0x5b1)],delete this['cols'];function _0x4b9eaf(_0x436fc8,_0x3d8122){return _0x1e8311(_0x3d8122-0x3a2,_0x436fc8);}function _0x2c6719(_0x2ccc7c,_0x48ebcd){return _0x1e8311(_0x48ebcd- -0x144,_0x2ccc7c);}delete this[_0x2c6719(0xaa,0x11f)],delete this['xmax'],delete this[_0x4b9eaf(0x580,0x596)],delete this[_0x2c6719(0x145,0x12b)],delete this[_0x4b9eaf(0x4fd,0x52d)],delete this['particles'];}[_0x1e8311(0x1cc,0x194)](_0xb54ae9,_0x56cc2c){function _0x647030(_0x2891f1,_0x38135d){return _0xc18867(_0x2891f1- -0x57f,_0x38135d);}function _0x3b38fe(_0x388343,_0x27e4bd){return _0xc18867(_0x388343- -0x719,_0x27e4bd);}const _0x514122=(_0xb54ae9-this[_0x647030(0xe,-0xc)])/(this[_0x647030(-0xc,0x45)]-this[_0x3b38fe(-0x18c,-0x17d)])*(this[_0x647030(-0x57,-0xd1)]-0x1),_0xedf6d=(this[_0x3b38fe(-0x180,-0xfc)]-_0x56cc2c)/(this[_0x3b38fe(-0x180,-0x12a)]-this['ymin'])*(this[_0x3b38fe(-0x1e0,-0x23c)]-0x1);return[_0x514122,_0xedf6d];}['getUVByXY'](_0x7e7f2f,_0x56e582){if(_0x7e7f2f<0x0||_0x7e7f2f>=this[_0x5eba4d(-0x17c,-0x1d4)]||_0x56e582>=this['rows'])return[0x0,0x0,0x0];const _0x558041=Math[_0x5eba4d(-0x182,-0x1ee)](_0x7e7f2f),_0x43d056=Math['floor'](_0x56e582);if(_0x558041===_0x7e7f2f&&_0x43d056===_0x56e582)return this['grid'][_0x56e582][_0x7e7f2f];const _0x467e2a=_0x558041+0x1;function _0x51d8aa(_0x5c27f5,_0x5b722c){return _0xc18867(_0x5c27f5- -0x447,_0x5b722c);}const _0x4bbb6a=_0x43d056+0x1,_0x26cf06=this[_0x51d8aa(0x103,0x117)](_0x558041,_0x43d056);function _0x5eba4d(_0x4d07ff,_0x23a90c){return _0x1e8311(_0x4d07ff- -0x37a,_0x23a90c);}const _0x1a5b8f=this[_0x5eba4d(-0x15a,-0x13f)](_0x467e2a,_0x43d056),_0x5b5324=this['getUVByXY'](_0x558041,_0x4bbb6a),_0x92346b=this['getUVByXY'](_0x467e2a,_0x4bbb6a);let _0x10b0ee=null;try{_0x10b0ee=this['_bilinearInterpolation'](_0x7e7f2f-_0x558041,_0x56e582-_0x43d056,_0x26cf06,_0x1a5b8f,_0x5b5324,_0x92346b);}catch(_0x5da443){console[_0x51d8aa(0xa9,0xd6)](_0x7e7f2f,_0x56e582);}return _0x10b0ee;}[_0x1e8311(0x187,0x12d)](_0x2dbfc8,_0x31db07,_0x36db23,_0x3096d0,_0x3d2f94,_0x9863b2){const _0x429962=0x1-_0x2dbfc8,_0x329469=0x1-_0x31db07,_0x4009b9=_0x429962*_0x329469,_0x3e328d=_0x2dbfc8*_0x329469,_0xe15366=_0x429962*_0x31db07,_0x37cc2f=_0x2dbfc8*_0x31db07,_0xd443d4=_0x36db23[0x0]*_0x4009b9+_0x3096d0[0x0]*_0x3e328d+_0x3d2f94[0x0]*_0xe15366+_0x9863b2[0x0]*_0x37cc2f,_0x55fb7c=_0x36db23[0x1]*_0x4009b9+_0x3096d0[0x1]*_0x3e328d+_0x3d2f94[0x1]*_0xe15366+_0x9863b2[0x1]*_0x37cc2f;return this['_calcUV'](_0xd443d4,_0x55fb7c);}[_0xc18867(0x5b4,0x537)](_0x59c791,_0x5da917){return[+_0x59c791,+_0x5da917,Math['sqrt'](_0x59c791*_0x59c791+_0x5da917*_0x5da917)];}[_0x1e8311(0x258,0x2a5)](_0x4bb41b,_0x124963){if(!this['isInExtent'](_0x4bb41b,_0x124963))return null;const _0x13e5b7=this['toGridXY'](_0x4bb41b,_0x124963),_0x368ea6=this['getUVByXY'](_0x13e5b7[0x0],_0x13e5b7[0x1]);return _0x368ea6;}['isInExtent'](_0x1ec983,_0x3d6e4e){function _0x49a403(_0xe69085,_0x8869d1){return _0x1e8311(_0x8869d1-0x398,_0xe69085);}function _0xbd7299(_0x17ec68,_0x5cea64){return _0x1e8311(_0x17ec68-0x4f,_0x5cea64);}return _0x1ec983>=this[_0xbd7299(0x2b2,0x2a0)]&&_0x1ec983<=this[_0x49a403(0x59d,0x5e1)]&&_0x3d6e4e>=this[_0xbd7299(0x243,0x1de)]&&_0x3d6e4e<=this[_0x49a403(0x680,0x607)]?!![]:![];}[_0xc18867(0x4f9,0x4ad)](){const _0x4541a2=fRandomByfloat(this[_0x1f1b13(0x59a,0x5f7)],this['xmax']);function _0x1f1b13(_0x5c2817,_0x908562){return _0x1e8311(_0x5c2817-0x337,_0x908562);}const _0x5c14af=fRandomByfloat(this['ymin'],this['ymax']),_0x35434c={};function _0x27d701(_0xac0e9d,_0xd86557){return _0xc18867(_0xac0e9d- -0x722,_0xd86557);}return _0x35434c['lat']=_0x5c14af,_0x35434c[_0x27d701(-0x20b,-0x26d)]=_0x4541a2,_0x35434c;}['getParticles'](){let _0x949188,_0x462a76,_0x131cb3;for(let _0x2df101=0x0,_0xfae3d8=this[_0x4780bd(-0xa5,-0xc3)][_0x4780bd(-0xa8,-0x5f)];_0x2df101<_0xfae3d8;_0x2df101++){let _0x13334a=this['particles'][_0x2df101];_0x13334a['age']<=0x0&&(_0x13334a=this[_0x4780bd(-0xd3,-0xb8)](_0x13334a));if(_0x13334a[_0x4780bd(-0x5b,-0x3a)]>0x0){const _0xdcf8f6=_0x13334a['tlng'],_0x181538=_0x13334a[_0x4780bd(-0xa9,-0x119)];_0x131cb3=this[_0x4780bd(-0x1e,-0x70)](_0xdcf8f6,_0x181538),_0x131cb3?(_0x949188=_0xdcf8f6+this[_0x20c145(0x3bb,0x35b)][0x0]*_0x131cb3[0x0],_0x462a76=_0x181538+this['_calc_speedRate'][0x1]*_0x131cb3[0x1],_0x13334a[_0x20c145(0x3e0,0x3aa)]=_0xdcf8f6,_0x13334a['lat']=_0x181538,_0x13334a[_0x4780bd(-0x15a,-0xde)]=_0x949188,_0x13334a['tlat']=_0x462a76,_0x13334a[_0x20c145(0x37c,0x3e8)]=_0x131cb3[0x2],_0x13334a['age']--):_0x13334a[_0x20c145(0x481,0x459)]=0x0;}}function _0x4780bd(_0x186352,_0x3f8ccc){return _0xc18867(_0x3f8ccc- -0x5f2,_0x186352);}function _0x20c145(_0x4b40e2,_0x5b57ec){return _0x1e8311(_0x4b40e2-0x1f3,_0x5b57ec);}return this['particles'];}[_0xc18867(0x53a,0x539)](_0x4abc84){let _0x28b4d9,_0x59ab8c;for(let _0xc5ce3f=0x0;_0xc5ce3f<0x1e;_0xc5ce3f++){_0x28b4d9=this['getRandomLatLng'](),_0x59ab8c=this['getUVByPoint'](_0x28b4d9['lng'],_0x28b4d9['lat']);if(_0x59ab8c&&_0x59ab8c[0x2]>0x0)break;}if(!_0x59ab8c)return _0x4abc84;const _0x43124b=_0x28b4d9[_0x279b35(0x2a8,0x270)]+this['_calc_speedRate'][0x0]*_0x59ab8c[0x0],_0xb00a44=_0x28b4d9['lat']+this['_calc_speedRate'][0x1]*_0x59ab8c[0x1];_0x4abc84[_0x1e2534(0x27b,0x2f2)]=_0x28b4d9['lng'],_0x4abc84['lat']=_0x28b4d9['lat'],_0x4abc84['tlng']=_0x43124b,_0x4abc84['tlat']=_0xb00a44,_0x4abc84[_0x1e2534(0x355,0x393)]=Math['round'](0xa+Math['random']()*this[_0x1e2534(0x2e4,0x2d7)]);function _0x279b35(_0x460423,_0x29f7f3){return _0xc18867(_0x29f7f3- -0x2a7,_0x460423);}_0x4abc84[_0x279b35(0x253,0x20c)]=_0x59ab8c[0x2];function _0x1e2534(_0x5619bd,_0x32b007){return _0xc18867(_0x32b007- -0x225,_0x5619bd);}return _0x4abc84;}[_0x1e8311(0x22a,0x1a2)](){for(const _0x16d0c5 in this){delete this[_0x16d0c5];}}}function fRandomByfloat(_0xbbd871,_0x3afb2e){return _0xbbd871+Math['random']()*(_0x3afb2e-_0xbbd871);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x406529={}){function _0x31fe1c(_0x2a6ac7,_0x17d119){return _0x1e8311(_0x2a6ac7-0x21d,_0x17d119);}super(_0x406529),this[_0x31fe1c(0x461,0x3ea)](_0x406529),this[_0x31fe1c(0x3a9,0x3dc)]=null;function _0x5eea46(_0x4facf7,_0x2deaef){return _0x1e8311(_0x4facf7- -0x332,_0x2deaef);}_0x406529['colors']&&_0x406529[_0x5eea46(-0x19d,-0x1ad)]&&(this[_0x5eea46(-0xd5,-0x159)]=new mars3d__namespace['ColorRamp'](_0x406529));}['_setOptionsHook'](_0x55ae1c,_0x8c64cf){this[_0x23ed4f(0x49b,0x4e8)]=0x3e8/(_0x55ae1c['frameRate']||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![];function _0x59b82a(_0x670e62,_0x3d3e7e){return _0x1e8311(_0x670e62- -0x22f,_0x3d3e7e);}function _0x23ed4f(_0x5b8d1a,_0x2f3171){return _0xc18867(_0x5b8d1a- -0xf5,_0x2f3171);}this['color']=_0x55ae1c[_0x59b82a(-0xa5,-0x113)]||_0x23ed4f(0x44b,0x4ad),this['lineWidth']=_0x55ae1c[_0x23ed4f(0x463,0x3ee)]||0x1,this['fixedHeight']=_0x55ae1c['fixedHeight']??0x0,this['flipY']=_0x55ae1c[_0x59b82a(-0x8c,-0x57)]??![],this['windField']&&this[_0x23ed4f(0x44a,0x42e)]['setOptions'](_0x55ae1c);}get['layer'](){return this['canvas'];}get['canvasWidth'](){return this['_map']['scene']['canvas']['clientWidth'];}get['canvasHeight'](){function _0x1e82ed(_0x227e7e,_0x388492){return _0x1e8311(_0x388492- -0x28c,_0x227e7e);}function _0x2d2c66(_0x43c1f3,_0x476b50){return _0xc18867(_0x476b50- -0x41c,_0x43c1f3);}return this[_0x1e82ed(-0xd3,-0x50)]['scene'][_0x1e82ed(-0xa2,-0x100)]['clientHeight'];}get['pointerEvents'](){function _0x57009c(_0xbe5e6e,_0x2652e8){return _0xc18867(_0xbe5e6e- -0x70d,_0x2652e8);}return this[_0x57009c(-0x1f5,-0x245)];}set[_0x1e8311(0x1c2,0x20e)](_0x57d6da){function _0x4b3720(_0x5be6ec,_0x55b4c2){return _0xc18867(_0x5be6ec- -0x70e,_0x55b4c2);}this['_pointerEvents']=_0x57d6da;if(!this[_0x5ad94d(0x447,0x490)])return;function _0x5ad94d(_0x1929a7,_0x5821ba){return _0x1e8311(_0x5821ba-0x304,_0x1929a7);}_0x57d6da?this['canvas'][_0x5ad94d(0x5e2,0x586)]['pointer-events']='all':this['canvas'][_0x5ad94d(0x599,0x586)][_0x5ad94d(0x4eb,0x51c)]='none';}get['particlesNumber'](){function _0x5b8f5c(_0x4f4687,_0x31e323){return _0xc18867(_0x31e323- -0x28e,_0x4f4687);}return this[_0x5b8f5c(0x296,0x22f)]['particlesNumber'];}set['particlesNumber'](_0x309f30){this['options']['particlesNumber']=_0x309f30,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x17d08e(_0x38de15,_0x2be7ca){return _0x1e8311(_0x2be7ca-0x1d3,_0x38de15);}return this[_0x17d08e(0x2e8,0x366)]['speedRate'];}set['speedRate'](_0xbb704e){this['options']['speedRate']=_0xbb704e,this['windField']&&(this['windField']['speedRate']=_0xbb704e);}get[_0x1e8311(0x1d2,0x203)](){return this['options']['maxAge'];}set['maxAge'](_0x59bade){this[_0x5e5065(-0x9a,-0xe9)][_0x5e5065(-0xd9,-0xaa)]=_0x59bade;function _0x5e5065(_0x277e94,_0x379e65){return _0x1e8311(_0x379e65- -0x27c,_0x277e94);}function _0x2eeec5(_0x23715b,_0x28d616){return _0x1e8311(_0x28d616- -0x57,_0x23715b);}this['windField']&&(this[_0x5e5065(-0xe3,-0x67)][_0x5e5065(-0xd1,-0xaa)]=_0x59bade);}get['data'](){return this['windData'];}set['data'](_0x2f0e19){function _0x2d8833(_0x21411c,_0x4ae6d1){return _0xc18867(_0x4ae6d1- -0x5df,_0x21411c);}this[_0x2d8833(-0x12e,-0xd2)](_0x2f0e19);}get[_0xc18867(0x531,0x522)](){let _0x181f60=this['windData'][_0x5929d3(0xd4,0xc6)],_0x3f0dff=this[_0x5929d3(0x5f,0xc2)][_0x5929d3(0x91,0xac)],_0xfbbdb=this[_0x5a3e46(0x6c,0x0)]['ymin'],_0x8008b9=this[_0x5a3e46(0x6c,0x4d)]['ymax'];_0x3f0dff>=0x167&&_0x181f60===0x0&&(_0x181f60=-0xb4,_0x3f0dff=0xb4);_0x181f60=Math[_0x5a3e46(0x28,0x5e)](_0x181f60,-0xb4),_0x3f0dff=Math[_0x5a3e46(-0x1c,0x43)](_0x3f0dff,0xb4),_0xfbbdb=Math['max'](_0xfbbdb,-0x5a);function _0x5a3e46(_0x2405b4,_0x25e338){return _0xc18867(_0x2405b4- -0x51d,_0x25e338);}_0x8008b9=Math['min'](_0x8008b9,0x5a);function _0x5929d3(_0x5b2831,_0xb01864){return _0x1e8311(_0xb01864- -0x19d,_0x5b2831);}return Cesium['Rectangle'][_0x5a3e46(-0x13,-0x3c)](_0x181f60,_0xfbbdb,_0x3f0dff,_0x8008b9);}['_showHook'](_0x4f86b7){function _0x430e4c(_0x5e8f3f,_0x5b0daa){return _0x1e8311(_0x5b0daa- -0x374,_0x5e8f3f);}function _0x26cb3f(_0x5bd618,_0x16dce2){return _0xc18867(_0x5bd618- -0x3c3,_0x16dce2);}_0x4f86b7?this[_0x26cb3f(0x126,0xf1)]():(this['windData']&&(this['options']['data']=this[_0x430e4c(-0xbf,-0x115)]),this['_removedHook']());}[_0x1e8311(0x280,0x2d1)](){function _0x23925c(_0x534322,_0x48333e){return _0x1e8311(_0x534322- -0x396,_0x48333e);}function _0x4e7a6d(_0x40ddc4,_0x46ff53){return _0xc18867(_0x46ff53- -0x31,_0x40ddc4);}this['options'][_0x4e7a6d(0x497,0x4ec)]?this[_0x23925c(-0x161,-0x12c)]():this[_0x4e7a6d(0x585,0x50e)]=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this['_createCanvas']();const _0x5167f7={};_0x5167f7['willReadFrequently']=!![];function _0x54d58a(_0x2a6db5,_0x289ebb){return _0x1e8311(_0x289ebb- -0x3e2,_0x2a6db5);}this['canvasContext']=this['canvas']['getContext']('2d',_0x5167f7),this[_0x54d58a(-0x1e2,-0x249)]();function _0x3b7b4e(_0x6723d4,_0x2dbe2d){return _0x1e8311(_0x6723d4- -0x2a1,_0x2dbe2d);}this[_0x54d58a(-0x285,-0x24f)]['data']&&this['setData'](this['options']['data']);}['_removedHook'](){function _0xa8dac7(_0x805106,_0x33c22e){return _0xc18867(_0x33c22e- -0x342,_0x805106);}this[_0xa8dac7(0x151,0x180)](),this['unbindEvent'](),this['canvas']&&(this['_map']['container']['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x5f4b19=mars3d__namespace['DomUtil']['create']('canvas','mars3d-canvasWind',this['_map']['container']);function _0x5b35a2(_0x237fd4,_0x5e64c1){return _0x1e8311(_0x5e64c1-0x196,_0x237fd4);}_0x5f4b19['style'][_0x26a61c(0x383,0x3e2)]='absolute';function _0x26a61c(_0x428219,_0x5c8998){return _0xc18867(_0x5c8998- -0xdc,_0x428219);}return _0x5f4b19['style'][_0x26a61c(0x439,0x422)]='0px',_0x5f4b19['style']['left']=_0x5b35a2(0x3ad,0x374),_0x5f4b19['style'][_0x26a61c(0x422,0x48d)]=this['_map'][_0x5b35a2(0x34c,0x3be)]['canvas']['clientWidth']+'px',_0x5f4b19['style']['height']=this[_0x26a61c(0x4f6,0x48a)][_0x5b35a2(0x3a3,0x3be)][_0x5b35a2(0x299,0x322)][_0x5b35a2(0x312,0x381)]+'px',_0x5f4b19[_0x26a61c(0x4c2,0x4d0)][_0x5b35a2(0x306,0x358)]=this['_pointerEvents']?'auto':'none',_0x5f4b19['style']['zIndex']=this[_0x5b35a2(0x2c2,0x329)]['zIndex']??0x9,_0x5f4b19['width']=this[_0x5b35a2(0x417,0x3d2)][_0x26a61c(0x4b8,0x476)]['canvas'][_0x26a61c(0x49e,0x432)],_0x5f4b19['height']=this[_0x26a61c(0x409,0x48a)]['scene']['canvas']['clientHeight'],_0x5f4b19;}[_0xc18867(0x4ca,0x46a)](){function _0x330caa(_0x1ed090,_0x5b094d){return _0xc18867(_0x5b094d- -0x4fa,_0x1ed090);}function _0x442d96(_0x3f689a,_0x10498b){return _0x1e8311(_0x3f689a-0x1e5,_0x10498b);}this['canvas']&&(this['canvas'][_0x330caa(0x6e,0xb2)][_0x330caa(0x61,0x6f)]=this['_map']['scene'][_0x442d96(0x371,0x387)][_0x330caa(-0x52,0x14)]+'px',this[_0x330caa(-0x5,-0x44)]['style']['height']=this[_0x442d96(0x421,0x415)]['scene']['canvas']['clientHeight']+'px',this['canvas'][_0x442d96(0x424,0x45f)]=this[_0x330caa(0xd5,0x6c)][_0x330caa(-0xa,0x58)]['canvas'][_0x442d96(0x3c9,0x3f2)],this[_0x442d96(0x371,0x3e1)]['height']=this['_map'][_0x442d96(0x40d,0x449)][_0x330caa(-0x68,-0x44)][_0x330caa(0xa1,0x1b)]);}[_0x1e8311(0x199,0x154)](){const _0x3f8dcb=this;function _0x137131(_0x181fed,_0x4ef6a4){return _0x1e8311(_0x4ef6a4-0x1e1,_0x181fed);}let _0x2cbe90=Date[_0x1544e9(-0x1c0,-0x138)]();(function _0xd0d3bf(){if(_0x3f8dcb[_0x4225da(-0xf0,-0xa6)])return;function _0x4225da(_0x5cf887,_0x478727){return _0x1544e9(_0x5cf887,_0x478727-0x16);}_0x3f8dcb['_animateFrame']=window[_0x4225da(-0xe9,-0x90)](_0xd0d3bf);function _0x4992ac(_0x356a63,_0x433b0a){return _0x1544e9(_0x356a63,_0x433b0a-0x401);}if(_0x3f8dcb[_0x4225da(-0x129,-0xdf)]&&_0x3f8dcb[_0x4225da(-0xea,-0x107)]){const _0x18c0f7=Date['now'](),_0x242147=_0x18c0f7-_0x2cbe90;_0x242147>_0x3f8dcb[_0x4225da(-0x36,-0xb6)]&&(_0x2cbe90=_0x18c0f7-_0x242147%_0x3f8dcb[_0x4225da(-0xd5,-0xb6)],_0x3f8dcb['update']());}}());function _0x1544e9(_0x2e4b4c,_0x11f0c0){return _0xc18867(_0x11f0c0- -0x65c,_0x2e4b4c);}window[_0x137131(0x45d,0x43b)]('resize',this['resize'][_0x1544e9(-0x1bb,-0x169)](this),![]),this[_0x1544e9(-0xf4,-0x101)]=![],this[_0x137131(0x3f3,0x468)]=![],this['options'][_0x137131(0x435,0x3c3)]&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace[_0x137131(0x414,0x410)]['mouseUp'],this['_onMouseUpEvent'],this));}[_0xc18867(0x51c,0x591)](){function _0x26d6f8(_0x400678,_0x518aa4){return _0x1e8311(_0x400678- -0x9b,_0x518aa4);}window[_0x14b9b9(0x19f,0x186)](this[_0x26d6f8(0x1f9,0x209)]),delete this[_0x14b9b9(0x1f5,0x21b)];function _0x14b9b9(_0x31e418,_0x1416e1){return _0x1e8311(_0x1416e1- -0x79,_0x31e418);}window[_0x26d6f8(0x121,0x137)]('resize',this['resize']),this['options']['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x26d6f8(0x194,0x1b0)]['wheel'],this['_onMapWhellEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x14b9b9(0x224,0x1e8)](mars3d__namespace['EventType']['mouseUp'],this[_0x14b9b9(0x18c,0x13f)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x26d6f8(0x1cf,0x248)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x2d3109){clearTimeout(this[_0x5cd8ac(-0x20b,-0x240)]);if(!this['show']||!this[_0x5cd8ac(-0x2cf,-0x253)])return;function _0x536fd2(_0x504ed9,_0x1d4ae2){return _0x1e8311(_0x1d4ae2- -0xf0,_0x504ed9);}function _0x5cd8ac(_0x33bed2,_0x4b2f5e){return _0xc18867(_0x4b2f5e- -0x709,_0x33bed2);}this['canvas']['style'][_0x5cd8ac(-0x2a5,-0x228)]='hidden',this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;this['redraw'](),this['canvas']['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x152e1e){this['mouse_down']=!![],this['_map'][_0x4d27d1(0x18c,0x12b)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x4d27d1(_0x2e8bd7,_0x239c0d){return _0x1e8311(_0x2e8bd7- -0xd5,_0x239c0d);}this['_map']['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x4031b0){function _0x5c004e(_0x17671e,_0x1af013){return _0xc18867(_0x1af013- -0x57c,_0x17671e);}if(!this[_0x2e58ca(-0x59,-0xb6)]||!this['canvas'])return;function _0x2e58ca(_0x2c2a69,_0x4b4e4e){return _0x1e8311(_0x4b4e4e- -0x2f3,_0x2c2a69);}this[_0x2e58ca(-0xcd,-0xc2)]&&(this['canvas']['style']['visibility']=_0x2e58ca(-0x18d,-0x141),this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x18e546){if(!this['show']||!this['canvas'])return;this[_0x288edd(0x57e,0x5e7)][_0x114c9d(0x4cf,0x51b)](mars3d__namespace[_0x114c9d(0x521,0x4e9)]['mouseMove'],this[_0x288edd(0x5ff,0x5dd)],this);this[_0x114c9d(0x56b,0x4eb)]&&this['mouse_move']&&this[_0x114c9d(0x4fd,0x48f)]();this['canvas']['style']['visibility']=_0x114c9d(0x585,0x52c),this[_0x288edd(0x5f0,0x5dc)]=![];function _0x114c9d(_0x213e7,_0x107413){return _0x1e8311(_0x107413-0x2ba,_0x213e7);}function _0x288edd(_0x35cf91,_0x57c16c){return _0xc18867(_0x57c16c-0x81,_0x35cf91);}this['mouse_move']=![];}['setData'](_0x3a35dc){this['clear'](),this['windData']=_0x3a35dc;function _0x565fe2(_0x4468e3,_0xdba013){return _0xc18867(_0xdba013- -0x27a,_0x4468e3);}this[_0x565fe2(0x29b,0x2c5)]['setDate'](_0x3a35dc),this['redraw']();}[_0x1e8311(0x1d5,0x235)](){if(!this['show'])return;function _0x59cf99(_0x4963a0,_0x173ce9){return _0x1e8311(_0x4963a0-0x6b,_0x173ce9);}this[_0x59cf99(0x280,0x22c)]['setOptions'](this['options']),this['update']();}['update'](){if(this['_updateIng'])return;this[_0x535dff(-0x6f,-0x85)]=!![];function _0x535dff(_0x47e3d5,_0xa61c67){return _0x1e8311(_0xa61c67- -0x297,_0x47e3d5);}function _0x18a677(_0xd993df,_0x2fedbb){return _0xc18867(_0x2fedbb- -0x2f,_0xd993df);}if(this['worker'])this['windField']['update']();else{const _0x4ef773=this[_0x18a677(0x4ad,0x510)]['getParticles']();this['_drawLines'](_0x4ef773);}this['_updateIng']=![];}['_drawLines'](_0xc1f3b3){this[_0x33b883(-0x17,-0x7)]=_0xc1f3b3,this['canvasContext']['globalCompositeOperation']=_0x50b7c6(-0x227,-0x1f3);function _0x33b883(_0x522c92,_0x2a3624){return _0xc18867(_0x522c92- -0x5c4,_0x2a3624);}this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext']['globalCompositeOperation']=_0x50b7c6(-0x26a,-0x232),this['canvasContext'][_0x50b7c6(-0x1c7,-0x18b)]=0.9;const _0x8609e9=this['_map']['scene']['mode']!==Cesium['SceneMode'][_0x33b883(-0x10b,-0xca)],_0x3682cf=this[_0x50b7c6(-0x210,-0x24b)]*0.25;function _0x50b7c6(_0x2388e1,_0x4cc199){return _0x1e8311(_0x4cc199- -0x3f9,_0x2388e1);}if(this['_colorRamp'])for(let _0x1c796c=0x0,_0x5d4663=_0xc1f3b3[_0x50b7c6(-0x1e6,-0x190)];_0x1c796c<_0x5d4663;_0x1c796c++){const _0xf4167e=_0xc1f3b3[_0x1c796c],_0x22ad38=this['_tomap'](_0xf4167e,_0xf4167e['lng'],_0xf4167e['lat'],_0xf4167e['alt']),_0x57f8e5=this[_0x50b7c6(-0x288,-0x253)](_0xf4167e,_0xf4167e['tlng'],_0xf4167e[_0x50b7c6(-0x229,-0x24a)],_0xf4167e[_0x33b883(-0xfc,-0x17c)]);if(!_0x22ad38||!_0x57f8e5)continue;if(_0x8609e9&&Math[_0x33b883(-0xae,-0xe8)](_0x22ad38[0x0]-_0x57f8e5[0x0])>=_0x3682cf)continue;this[_0x33b883(-0xf5,-0xc0)][_0x33b883(-0x100,-0xc7)](),this['canvasContext'][_0x33b883(-0x6c,-0xbd)]=this['lineWidth'],this[_0x33b883(-0xf5,-0x151)]['strokeStyle']=this[_0x33b883(-0x3d,-0xb1)][_0x50b7c6(-0x1fd,-0x1d3)](_0xf4167e[_0x33b883(-0x111,-0xec)]),this[_0x33b883(-0xf5,-0x127)]['moveTo'](_0x22ad38[0x0],_0x22ad38[0x1]),this['canvasContext'][_0x50b7c6(-0x1a0,-0x218)](_0x57f8e5[0x0],_0x57f8e5[0x1]),this[_0x50b7c6(-0x2b8,-0x254)]['stroke']();}else{this[_0x50b7c6(-0x25a,-0x254)][_0x33b883(-0x100,-0x120)](),this[_0x50b7c6(-0x23b,-0x254)][_0x33b883(-0x6c,-0x1b)]=this['lineWidth'],this['canvasContext'][_0x50b7c6(-0x253,-0x204)]=this[_0x50b7c6(-0x2c0,-0x26f)];for(let _0x41ce37=0x0,_0x2761a8=_0xc1f3b3[_0x50b7c6(-0x1ca,-0x190)];_0x41ce37<_0x2761a8;_0x41ce37++){const _0x1d5011=_0xc1f3b3[_0x41ce37],_0x5550d0=this['_tomap'](_0x1d5011,_0x1d5011[_0x33b883(-0xad,-0x68)],_0x1d5011[_0x33b883(-0x9,-0x7e)],_0x1d5011['alt']),_0x5cd5e3=this['_tomap'](_0x1d5011,_0x1d5011[_0x50b7c6(-0x22e,-0x20f)],_0x1d5011['tlat'],_0x1d5011['talt']);if(!_0x5550d0||!_0x5cd5e3)continue;if(_0x8609e9&&Math[_0x33b883(-0xae,-0x57)](_0x5550d0[0x0]-_0x5cd5e3[0x0])>=_0x3682cf)continue;this['canvasContext']['moveTo'](_0x5550d0[0x0],_0x5550d0[0x1]),this['canvasContext']['lineTo'](_0x5cd5e3[0x0],_0x5cd5e3[0x1]);}this['canvasContext'][_0x50b7c6(-0x1b7,-0x1cd)]();}}[_0x1e8311(0x1a6,0x1fd)](_0x358b90,_0x2dd17f,_0x1b8e15,_0x5c80e3){function _0x3615db(_0xf06194,_0x29af0f){return _0x1e8311(_0x29af0f- -0x250,_0xf06194);}const _0x54c084=Cesium['Cartesian3']['fromDegrees'](_0x2dd17f,_0x1b8e15,_0x5c80e3??this['fixedHeight']),_0x3ebeaf=this['_map'][_0x196ac7(0x182,0xfe)];if(_0x3ebeaf[_0x3615db(0x6f,-0x5)]===Cesium['SceneMode'][_0x3615db(-0x43,-0xc1)]){const _0x6d6869=new Cesium[(_0x3615db(-0xb4,-0x3d))](_0x3ebeaf['globe'][_0x196ac7(0x13f,0x14f)],_0x3ebeaf[_0x196ac7(0x132,0x127)][_0x196ac7(0xd4,0xdf)]),_0x240559=_0x6d6869[_0x196ac7(0x190,0x13e)](_0x54c084);if(!_0x240559)return _0x358b90[_0x3615db(0x78,0x3e)]=0x0,null;}function _0x196ac7(_0x9aeb3e,_0x407df5){return _0xc18867(_0x407df5- -0x454,_0x9aeb3e);}const _0x3bf860=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map'][_0x3615db(-0x84,-0x28)],_0x54c084);return _0x3bf860?[_0x3bf860['x'],_0x3bf860['y']]:null;}['clear'](){this['windField']['clear'](),delete this['windData'];}['initWorker'](){this['worker']=new Worker(this[_0x125801(0x4db,0x496)]['worker']);function _0x4ee559(_0x1ca5da,_0x14f443){return _0xc18867(_0x14f443- -0x29c,_0x1ca5da);}this[_0x4ee559(0x2b4,0x281)][_0x4ee559(0x2ad,0x28a)]=_0x57f80f=>{this['_drawLines'](_0x57f80f['data']['particles']);function _0x5d0d70(_0x26c09f,_0x41767f){return _0x125801(_0x41767f-0x6a,_0x26c09f);}this[_0x5d0d70(0x5b6,0x5ed)]=![];};function _0x125801(_0x45b295,_0x18daad){return _0xc18867(_0x45b295-0x1e,_0x18daad);}this[_0x125801(0x55d,0x4d4)]={'init':_0x12c9ea=>{const _0x7d8b0e={};function _0x2761c9(_0x49ff4c,_0x4256d4){return _0x125801(_0x49ff4c- -0xc8,_0x4256d4);}function _0x2c67a5(_0x476c08,_0x4a8a4b){return _0x125801(_0x4a8a4b- -0x438,_0x476c08);}_0x7d8b0e[_0x2761c9(0x491,0x514)]='init',_0x7d8b0e['options']=_0x12c9ea,this[_0x2c67a5(0x11e,0x103)]['postMessage'](_0x7d8b0e);},'setOptions':_0x43c25f=>{function _0x1831a9(_0x492bee,_0x1e290e){return _0x125801(_0x492bee- -0x4,_0x1e290e);}const _0x4c3ad4={};function _0x20a8a4(_0x2e59ba,_0x3b5789){return _0x125801(_0x3b5789- -0x4d6,_0x2e59ba);}_0x4c3ad4[_0x20a8a4(0x7c,0x83)]='setOptions',_0x4c3ad4[_0x20a8a4(0x7b,0x5)]=_0x43c25f,this['worker'][_0x20a8a4(-0x3f,0x43)](_0x4c3ad4);},'setDate':_0x3aa5b5=>{function _0x18b43c(_0x56d911,_0x4dbe8e){return _0x125801(_0x56d911- -0x397,_0x4dbe8e);}const _0x572141={};_0x572141[_0x18b43c(0x1c2,0x14e)]='setDate';function _0x57e198(_0x2c1cd2,_0x2de097){return _0x4ee559(_0x2c1cd2,_0x2de097- -0x95);}_0x572141['data']=_0x3aa5b5,this['worker'][_0x18b43c(0x182,0x196)](_0x572141);},'update':()=>{if(this[_0x48b3e0(0x267,0x22e)])return;this[_0xab2d6(0x4fb,0x4b5)]=!![];function _0x48b3e0(_0x5aaa9e,_0x1fcf6c){return _0x4ee559(_0x1fcf6c,_0x5aaa9e- -0x62);}const _0x1fec7c={};_0x1fec7c[_0x48b3e0(0x23d,0x20f)]=_0x48b3e0(0x22c,0x2ae);function _0xab2d6(_0x36622c,_0x42579d){return _0x125801(_0x42579d- -0xce,_0x36622c);}this[_0xab2d6(0x3ea,0x46d)]['postMessage'](_0x1fec7c);},'clear':()=>{function _0x5bd34e(_0x3dcdeb,_0x285e07){return _0x125801(_0x3dcdeb- -0xa,_0x285e07);}const _0x5811b5={};_0x5811b5['type']='clear',this['worker'][_0x5bd34e(0x50f,0x53b)](_0x5811b5);}},this[_0x125801(0x55d,0x5c9)]['init'](this['options']);}}mars3d__namespace['LayerUtil'][_0xc18867(0x59a,0x5bf)](_0x1e8311(0x256,0x213),CanvasWindLayer),mars3d__namespace['layer'][_0xc18867(0x4af,0x4b5)]=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0xc18867(0x5b9,0x5c7)]=WindUtil,exports[_0x1e8311(0x27e,0x278)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0xc18867(0x548,0x58a)]=WindLayer,exports['WindUtil']=WindUtil;const _0x2354a8={};_0x2354a8['value']=!![],Object['defineProperty'](exports,'__esModule',_0x2354a8);
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.3",
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.3"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"