mars3d-wind 3.11.6 → 3.11.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/mars3d-wind.js +3 -3
  2. package/package.json +2 -2
package/mars3d-wind.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.11.6
5
- * 编译日期:2026-08-08 17:03
4
+ * 版本信息:v3.11.8
5
+ * 编译日期:2026-10-15 18:59
6
6
  * 版权所有:Copyright by http://mars3d.cn
7
7
  * 使用单位:免费公开版 ,2026-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(_0x447df3,_0x98ef5c){function _0x3c8360(_0x36f603,_0x45b9e2){return _0x4e0b(_0x36f603-0x57,_0x45b9e2);}function _0x4303fa(_0x2a3099,_0x116746){return _0x4e0b(_0x2a3099-0x307,_0x116746);}const _0x26da2b=_0x447df3();while(!![]){try{const _0x395924=parseInt(_0x3c8360(0x1be,0x22a))/0x1+-parseInt(_0x4303fa(0x48f,0x4c8))/0x2+-parseInt(_0x3c8360(0x1b7,0x1d4))/0x3+-parseInt(_0x3c8360(0x1c8,0x16d))/0x4*(parseInt(_0x3c8360(0x1cf,0x1e6))/0x5)+-parseInt(_0x4303fa(0x403,0x43f))/0x6*(parseInt(_0x3c8360(0x1d8,0x1f6))/0x7)+parseInt(_0x3c8360(0x14f,0xc9))/0x8*(-parseInt(_0x4303fa(0x4a5,0x44c))/0x9)+parseInt(_0x3c8360(0x138,0x1b6))/0xa*(parseInt(_0x4303fa(0x48b,0x480))/0xb);if(_0x395924===_0x98ef5c)break;else _0x26da2b['push'](_0x26da2b['shift']());}catch(_0x4f2750){_0x26da2b['push'](_0x26da2b['shift']());}}}(_0x4d1e,0xae904));function _interopNamespace(_0x427108){if(_0x427108&&_0x427108[_0xfa1c88(-0xea,-0x165)])return _0x427108;var _0x41dbad=Object['create'](null);_0x427108&&Object[_0xfa1c88(-0x118,-0x167)](_0x427108)[_0x49669a(-0x210,-0x29d)](function(_0x50764d){function _0x47a4c0(_0x23cf84,_0x35c911){return _0x49669a(_0x23cf84,_0x35c911-0x4a0);}if(_0x50764d!=='default'){var _0x1d61b4=Object[_0x47a4c0(0x192,0x1c8)](_0x427108,_0x50764d);Object['defineProperty'](_0x41dbad,_0x50764d,_0x1d61b4['get']?_0x1d61b4:{'enumerable':!![],'get':function(){return _0x427108[_0x50764d];}});}});function _0x49669a(_0x33569b,_0x413f28){return _0x4e0b(_0x413f28- -0x3ad,_0x33569b);}_0x41dbad[_0x49669a(-0x2f8,-0x316)]=_0x427108;function _0xfa1c88(_0x5afe16,_0x5ab98e){return _0x4e0b(_0x5afe16- -0x212,_0x5ab98e);}return _0x41dbad;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x2c006c,_0x400772){const _0xf044a=_0x2c006c*Math[_0x2dd7f8(0x175,0x18e)](Cesium$2['Math']['toRadians'](_0x400772));function _0x2dd7f8(_0x492cb6,_0x4faca5){return _0x4e0b(_0x492cb6-0x55,_0x4faca5);}return _0xf044a;}function getV(_0x1e3fe5,_0x2a8350){const _0x4f8caf=_0x1e3fe5*Math['sin'](Cesium$2['Math']['toRadians'](_0x2a8350));return _0x4f8caf;}function _0x3fc01e(_0x1adb53,_0x220883){return _0x4e0b(_0x1adb53- -0x2e0,_0x220883);}function getSpeed(_0x3ce820,_0x548267){const _0x38c68d=Math[_0x39c9f3(0x129,0x9c)](Math['pow'](_0x3ce820,0x2)+Math['pow'](_0x548267,0x2));function _0x39c9f3(_0x223661,_0x471cfb){return _0x4e0b(_0x471cfb- -0xfb,_0x223661);}return _0x38c68d;}function getDirection(_0x23db74,_0x510508){let _0x297f13=Cesium$2[_0x55de7f(0x1e5,0x273)]['toDegrees'](Math[_0x40decb(0x164,0x19d)](_0x510508,_0x23db74));_0x297f13+=_0x297f13<0x0?0x168:0x0;function _0x40decb(_0x2aa3dd,_0x384f10){return _0x4e0b(_0x384f10-0x3c,_0x2aa3dd);}function _0x55de7f(_0x20da00,_0x4fc22b){return _0x4e0b(_0x4fc22b-0x10a,_0x20da00);}return _0x297f13;}const _0x81c5b4={};function _0x4d1e(){const _0x1e92c6=['keys','flipY','4932KqmrGi','bindEvent','createRawRenderState','commandToExecute','grid','_calcUV','isInExtent','outputTexture','EventType','onColorTableChange','displayRange','tlng','processWindData','framebuffer','lineWidth','clientHeight','min','worker','SRC_ALPHA','createCommand','forEach','speed','reCreateWindTextures','lineTo','createComputingPrimitives','abs','wheel','fixedHeight','steps','createRenderingFramebuffers','_onMouseMoveEvent','vertexShaderSource','sources','#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','destroy','lng','cos','speedFactor','container','execute','windData','viewport','2026-08-08\x2017:02','length','__esModule','windTextures','addEventListener','dropRateBump','scene','createSegmentsGeometry','particlesTextures','calculateSpeed','MAX_VALUE','redraw','frameRate','particlesSpeed','mouse_down','_pointerEvents','camera','bounds','blendEquation','visible','style','destination-in','UNSIGNED_INT','windField','getV','_bilinearInterpolation','width','particles','viewerParameters','primitives','max','minificationFilter','isDestroy','clearCommand','beginPath','udata','toGridXY','primitiveType','commandList','LayerUtil','_updateIng','_removedHook','attributeLocations','getDefaultRenderState','Cartesian2','preExecute','_mountedHook','_setOptionsHook','getParticles','options','globe','_onMouseUpEvent','segments','absolute','fillRect','ellipsoid','stroke','mouse_move','3623418oMdErm','atan2','previousParticlesPosition','colors','getUpdatePositionShader','Log','pixelDatatype','1132389DlEJHD','isDynamic','Math','_showHook','getCalculateSpeedShader','postMessage','lat','currentParticlesPosition','setDate','RGBA','12zMOHFc','pointerEvents','visibility','DEPTH_COMPONENT','color','SCENE3D','latRange','463665BErNFG','bind','interpolated','flatMap','onmessage','alt','east','age','normal','2968FIiZrj','BaseLayer','fill','366487hyWjkF','postProcessingPosition','height','xmax','474218LCXRoL','getRandomLatLng','requestRender','_drawLines','south','particleSystem','vdata','frameRateMonitor','cancelAnimationFrame','removeEventListener','getUVByPoint','rawRenderState','top','OPAQUE','updateWindData','sqrt','show','pixelFormat','requestAnimationFrame','#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','array','getPrimitives','534510tXMoIe','layer','canvas','createColorTableTexture','createParticlesTextures','particlesTextureSize','none','_addedHook','lighter','rows','nextParticlesPosition','bufferUsage','globalCompositeOperation','_map','componentsPerAttribute','framebuffers','MIN_VALUE','canvasWind','owner','clear','pickEllipsoid','_canrefresh','tlat','slice','resize','isDestroyed','getSegmentDrawFragmentShader','Compute','ymax','default','cols','floor','clearFramebuffers','shaderProgram','fromCssColorString','_onMapWhellEvent','getDirection','_calc_speedRate','push','geometry','now','canvasContext','textures','depthTest','create','commandType','mode','onParticlesTextureSizeChange','clientWidth','_randomParticle','NEAREST','computing','particlesNumber','updatePosition','umax','Cesium','dropRate','segmentsDepth','values','mouseMove','toDegrees','canvasWidth','colorTable','setData','dynamic','maxAge','off','logInfo','ymin','zIndex','mouseDown','createWindTextures','warn','renderState','data','stringify','initFrameRate','CanvasWindLayer','WindUtil','_tomap','mouseHidden','north','context','samplingWindow','fromDegrees','destoryRenderingFramebuffers','drawingBufferHeight','3.11.6','uniformMap','setOptions','vertexArray','getOwnPropertyDescriptor','position','xmin','LINEAR','add','_speedRate','update','lonRange','WindLayer','type','fragmentShaderSource','fromGeometry','550lVbRQm','CanvasWindField','lineLength','ColorRamp','magnificationFilter','getUVByXY','fromCache','applyViewerParameters','autoClear','isPointVisible','rendering','green','speedRate','_createCanvas','talt','STATIC_DRAW','pixelSize','updateViewerParameters','random','west','changed','_colorRamp','call','24yWitPg','_onMouseDownEvent'];_0x4d1e=function(){return _0x1e92c6;};return _0x4d1e();}_0x81c5b4['__proto__']=null,_0x81c5b4['getU']=getU,_0x81c5b4[_0x3fc01e(-0x1a2,-0x18d)]=getV,_0x81c5b4['getSpeed']=getSpeed,_0x81c5b4[_0x3fc01e(-0x242,-0x248)]=getDirection;var WindUtil=_0x81c5b4;const version=_0x38f528(0x24f,0x2d4),buildTime=_0x38f528(0x2a4,0x25f);var updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader=_0x3fc01e(-0x1c3,-0x254),renderParticlesFragmentShader=_0x38f528(0x319,0x2e4),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[_0x3fc01e(-0x22f,-0x1e8)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x262f37={};return _0x262f37['sources']=[calculateSpeedShader],new ShaderSource$1(_0x262f37);}static[_0x38f528(0x2e2,0x323)](){function _0x3d9fc8(_0x1b523e,_0x1a65b3){return _0x3fc01e(_0x1a65b3- -0xf6,_0x1b523e);}const _0x476aad={};return _0x476aad[_0x3d9fc8(-0x294,-0x2ba)]=[updatePositionShader],new ShaderSource$1(_0x476aad);}static['getSegmentDrawVertexShader'](){const _0x5f1155={};_0x5f1155[_0x5aa1a8(0x2f1,0x2e6)]=[renderParticlesVertexShader];function _0x5aa1a8(_0x45ba3b,_0x1d3a80){return _0x3fc01e(_0x1d3a80-0x4aa,_0x45ba3b);}return new ShaderSource$1(_0x5f1155);}static[_0x3fc01e(-0x24c,-0x29a)](){const _0x30e182={};return _0x30e182['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x30e182);}static['getPostProcessingPositionShader'](){const _0x2f6d4d={};return _0x2f6d4d['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x2f6d4d);}}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[_0x38f528(0x22f,0x2a2)];function _0x4e0b(_0x36a9b3,_0x14d125){_0x36a9b3=_0x36a9b3-0x7c;const _0x4d1eb6=_0x4d1e();let _0x4e0b2c=_0x4d1eb6[_0x36a9b3];return _0x4e0b2c;}class CustomPrimitive{constructor(_0x2ac23b){this['commandType']=_0x2ac23b['commandType'],this['geometry']=_0x2ac23b['geometry'],this['attributeLocations']=_0x2ac23b[_0xd782c4(-0x98,-0x45)],this[_0xbb552d(0x433,0x3a6)]=_0x2ac23b['primitiveType'],this['uniformMap']=_0x2ac23b['uniformMap']||{},this[_0xd782c4(-0xaa,-0x7a)]=_0x2ac23b['vertexShaderSource'],this[_0xbb552d(0x3c7,0x3d4)]=_0x2ac23b[_0xbb552d(0x3c7,0x3a2)],this[_0xd782c4(0x36,-0x2)]=_0x2ac23b['rawRenderState'],this['framebuffer']=_0x2ac23b[_0xbb552d(0x3f1,0x3a4)],this['outputTexture']=_0x2ac23b['outputTexture'],this[_0xd782c4(-0x9c,-0xac)]=_0x2ac23b['autoClear']??![],this[_0xbb552d(0x43b,0x3c7)]=_0x2ac23b['preExecute'],this[_0xbb552d(0x480,0x43a)]=!![],this[_0xd782c4(-0x45,-0x96)]=undefined,this['clearCommand']=undefined;function _0xbb552d(_0x4a81cc,_0x1e83ab){return _0x38f528(_0x4a81cc-0x16a,_0x1e83ab);}this['isDynamic']=_0x2ac23b[_0xd782c4(-0x34,-0x2d)]??(()=>!![]);function _0xd782c4(_0x14f829,_0x122b02){return _0x3fc01e(_0x122b02-0x14b,_0x14f829);}this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}[_0x38f528(0x28d,0x229)](_0x1ba861){function _0x223bc1(_0x2d362d,_0x252033){return _0x3fc01e(_0x252033-0x577,_0x2d362d);}function _0x27641b(_0x45ab62,_0x37ab71){return _0x3fc01e(_0x37ab71-0x36e,_0x45ab62);}if(this['commandType']==='Draw'){const _0x490d9b={};_0x490d9b['context']=_0x1ba861,_0x490d9b[_0x223bc1(0x35b,0x338)]=this['geometry'],_0x490d9b['attributeLocations']=this[_0x27641b(0x1c6,0x1de)],_0x490d9b[_0x27641b(0x165,0x113)]=BufferUsage$1[_0x27641b(0x115,0x17e)];const _0x56d087=VertexArray$1['fromGeometry'](_0x490d9b),_0x118668={};_0x118668[_0x27641b(0x137,0x15a)]=_0x1ba861,_0x118668['vertexShaderSource']=this['vertexShaderSource'],_0x118668['fragmentShaderSource']=this[_0x223bc1(0x362,0x376)],_0x118668['attributeLocations']=this['attributeLocations'];const _0x185374=ShaderProgram['fromCache'](_0x118668),_0x45a283=RenderState[_0x27641b(0x163,0x175)](this[_0x223bc1(0x3fe,0x42a)]),_0x422f40={};return _0x422f40['owner']=this,_0x422f40['vertexArray']=_0x56d087,_0x422f40[_0x27641b(0x22e,0x1d9)]=this['primitiveType'],_0x422f40['modelMatrix']=Matrix4['IDENTITY'],_0x422f40[_0x27641b(0x142,0x151)]=_0x45a283,_0x422f40[_0x27641b(0xbe,0x129)]=_0x185374,_0x422f40[_0x27641b(0x160,0x197)]=this[_0x27641b(0x137,0x197)],_0x422f40['uniformMap']=this[_0x27641b(0xd5,0x160)],_0x422f40['pass']=Pass$1[_0x223bc1(0x485,0x42c)],new DrawCommand(_0x422f40);}else{if(this[_0x223bc1(0x301,0x33e)]===_0x27641b(0xcf,0x123)){const _0x49bc6e={};return _0x49bc6e[_0x223bc1(0x315,0x323)]=this,_0x49bc6e['fragmentShaderSource']=this[_0x223bc1(0x3cb,0x376)],_0x49bc6e['uniformMap']=this[_0x27641b(0x1bb,0x160)],_0x49bc6e['outputTexture']=this[_0x27641b(0x1fc,0x191)],_0x49bc6e['persists']=!![],new ComputeCommand(_0x49bc6e);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x3fd077,_0x3fccf4){function _0x3a1a69(_0x6e0942,_0x5de3d5){return _0x38f528(_0x6e0942-0x23f,_0x5de3d5);}this['geometry']=_0x3fccf4;function _0x51be3b(_0x51459b,_0x1e63f5){return _0x38f528(_0x51459b- -0x261,_0x1e63f5);}defined(this[_0x51be3b(0x1c,0x63)])&&(this[_0x51be3b(0x1c,0x23)]['vertexArray']=VertexArray$1[_0x51be3b(-0x3,-0x2b)]({'context':_0x3fd077,'geometry':this['geometry'],'attributeLocations':this[_0x51be3b(0x6d,0x70)],'bufferUsage':BufferUsage$1[_0x3a1a69(0x4ad,0x506)]}));}[_0x38f528(0x259,0x2a5)](_0x4debe8){if(!this[_0x826788(0x509,0x52d)]())return;if(!this['show']||!defined(_0x4debe8))return;!defined(this['commandToExecute'])&&(this['commandToExecute']=this['createCommand'](_0x4debe8['context']));defined(this[_0x826788(0x4d7,0x518)])&&this[_0x25ae0d(0xa1,0x13)]();if(!_0x4debe8['commandList']){console[_0x826788(0x4d1,0x487)]('frameState.commandList\x20is\x20undefined');return;}defined(this[_0x826788(0x4ee,0x50c)])&&_0x4debe8[_0x25ae0d(0x9a,0x5a)][_0x25ae0d(-0x12,-0x92)](this['clearCommand']);function _0x826788(_0x481a44,_0x342d36){return _0x38f528(_0x342d36-0x247,_0x481a44);}function _0x25ae0d(_0x3bf822,_0x5caf8c){return _0x3fc01e(_0x3bf822-0x22e,_0x5caf8c);}defined(this['commandToExecute'])&&_0x4debe8['commandList']['push'](this['commandToExecute']);}[_0x38f528(0x211,0x1db)](){return![];}[_0x38f528(0x29c,0x2ae)](){function _0xd9017b(_0xd88f78,_0x382143){return _0x38f528(_0x382143- -0x2a0,_0xd88f78);}function _0x11edbd(_0x18d43c,_0x581e9b){return _0x3fc01e(_0x18d43c-0x489,_0x581e9b);}if(defined(this['commandToExecute'])){var _0x3bd8f5;(_0x3bd8f5=this['commandToExecute'][_0x11edbd(0x244,0x273)])===null||_0x3bd8f5===void 0x0||_0x3bd8f5[_0xd9017b(0x69,-0x4)](),this['commandToExecute']['shaderProgram']=undefined;}return destroyObject(this);}}function deepMerge(_0x261af4,_0x247f03){if(!_0x261af4)return _0x247f03;if(!_0x247f03)return _0x261af4;function _0x34939f(_0x5dcbce,_0x3dcb09){return _0x3fc01e(_0x3dcb09- -0x47,_0x5dcbce);}const _0x32534c={..._0x247f03},_0x4c487c=_0x32534c;function _0x1fc6e8(_0x46402d,_0x3635c3){return _0x38f528(_0x3635c3-0x18d,_0x46402d);}for(const _0x4011a1 in _0x261af4){if(Object['prototype']['hasOwnProperty'][_0x34939f(-0x28d,-0x230)](_0x261af4,_0x4011a1)){const _0x210590=_0x261af4[_0x4011a1],_0x3d04e3=_0x247f03[_0x4011a1];if(Array['isArray'](_0x210590)){_0x4c487c[_0x4011a1]=_0x210590[_0x34939f(-0x227,-0x296)]();continue;}if(_0x210590&&typeof _0x210590==='object'){_0x4c487c[_0x4011a1]=deepMerge(_0x210590,_0x3d04e3||{});continue;}_0x210590!==undefined&&(_0x4c487c[_0x4011a1]=_0x210590);}}return _0x4c487c;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x1e62dc,_0x3d14cb,_0x567a47,_0x5d86cf,_0x18dbe6){this[_0x67dbe9(-0x1e4,-0x229)]=_0x1e62dc,this['options']=_0x567a47,this['viewerParameters']=_0x5d86cf,this[_0x67dbe9(-0x18c,-0x108)]=_0x3d14cb,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x55a798={};_0x55a798['scene']=_0x18dbe6;function _0x67dbe9(_0x5a13c5,_0x47f1ea){return _0x38f528(_0x5a13c5- -0x42e,_0x47f1ea);}_0x55a798[_0x67dbe9(-0x1e3,-0x213)]=0x1,_0x55a798['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x55a798),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures']();function _0x49f672(_0x2e4004,_0x534761){return _0x3fc01e(_0x534761-0x267,_0x2e4004);}this['createComputingPrimitives']();}[_0x3fc01e(-0x21a,-0x2aa)](){function _0x46dbee(_0x4fa31c,_0x52023e){return _0x38f528(_0x4fa31c- -0x3ea,_0x52023e);}const _0x58d37a=()=>{function _0x505093(_0x5c0ff5,_0x498e0b){return _0x4e0b(_0x5c0ff5-0x2fe,_0x498e0b);}function _0x19cb7c(_0x46dfda,_0x70c37){return _0x4e0b(_0x70c37-0x74,_0x46dfda);}this[_0x19cb7c(0x225,0x203)]['lastFramesPerSecond']>0x14&&(this[_0x19cb7c(0x15e,0x1a6)]=this[_0x505093(0x48d,0x470)]['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0x58d37a();const _0x4abb0e=setInterval(_0x58d37a,0x3e8);function _0x5e54f8(_0x2fc483,_0x3f07c9){return _0x38f528(_0x3f07c9- -0x2c2,_0x2fc483);}const _0x395a8e=this[_0x46dbee(-0x14e,-0x1a0)]['bind'](this);this[_0x5e54f8(0x4f,-0x26)]=()=>{clearInterval(_0x4abb0e),_0x395a8e();};}[_0x38f528(0x23f,0x2cc)](){function _0xb36798(_0x3f3404,_0x11be36){return _0x3fc01e(_0x3f3404-0x279,_0x11be36);}const _0x1d50f0={};_0x1d50f0['minificationFilter']=TextureMinificationFilter$1['LINEAR'];function _0x4e4203(_0x589829,_0x17bdfa){return _0x3fc01e(_0x17bdfa- -0xb1,_0x589829);}_0x1d50f0['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x315534={'context':this['context'],'width':this['windData'][_0x4e4203(-0x2c5,-0x251)],'height':this[_0xb36798(0xbd,0x30)][_0x4e4203(-0x246,-0x20b)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x1d50f0)};this[_0xb36798(0xc2,0x123)]={'U':new Texture$1({..._0x315534,'source':{'arrayBufferView':new Float32Array(this[_0x4e4203(-0x2a4,-0x26d)]['u'][_0xb36798(0x135,0x1c4)])}}),'V':new Texture$1({..._0x315534,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}[_0x38f528(0x1fc,0x1d3)](){const _0x525f15={};function _0x5e2488(_0x5afe65,_0x2d9829){return _0x3fc01e(_0x2d9829-0x53d,_0x5afe65);}_0x525f15[_0x2ccf08(-0x18c,-0x108)]=TextureMinificationFilter$1['NEAREST'];function _0x2ccf08(_0xc62b5f,_0x254d21){return _0x3fc01e(_0x254d21-0x93,_0xc62b5f);}_0x525f15['magnificationFilter']=TextureMagnificationFilter$1[_0x2ccf08(-0x17d,-0x1a1)];const _0x2b59d0={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this[_0x5e2488(0x413,0x3b4)][_0x2ccf08(-0x172,-0x1ce)],'pixelFormat':PixelFormat$1[_0x2ccf08(-0x73,-0xdd)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this[_0x2ccf08(-0x88,-0xf6)]['particlesTextureSize']*0x4)[_0x2ccf08(-0x144,-0xca)](0x0)},'sampler':new Sampler$1(_0x525f15)};this[_0x5e2488(0x3b5,0x38b)]={'previousParticlesPosition':new Texture$1(_0x2b59d0),'currentParticlesPosition':new Texture$1(_0x2b59d0),'nextParticlesPosition':new Texture$1(_0x2b59d0),'postProcessingPosition':new Texture$1(_0x2b59d0),'particlesSpeed':new Texture$1(_0x2b59d0)};}['destroyParticlesTextures'](){Object['values'](this['particlesTextures'])['forEach'](_0x285f79=>_0x285f79['destroy']());}[_0x3fc01e(-0x1cc,-0x17f)](){function _0x6281b6(_0x2b86ce,_0x2bbbac){return _0x3fc01e(_0x2bbbac-0x242,_0x2b86ce);}function _0x5cca27(_0x15b4d7,_0x552350){return _0x38f528(_0x15b4d7-0x1a7,_0x552350);}this[_0x5cca27(0x468,0x457)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0x5cca27(0x44e,0x46b)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x6281b6(0x76,0x86)]['u']['min'],this['windData']['u'][_0x5cca27(0x469,0x4b1)]),'vRange':()=>new Cartesian2$1(this['windData']['v'][_0x5cca27(0x431,0x3c6)],this['windData']['v'][_0x6281b6(0xe9,0xa6)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed'][_0x5cca27(0x431,0x3d7)],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures'][_0x5cca27(0x493,0x514)],'speedScaleFactor':()=>{function _0xd2feff(_0x14ee20,_0x184934){return _0x5cca27(_0x184934- -0x509,_0x14ee20);}return(this[_0xd2feff(-0x63,-0xa2)]['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this['windData']['width'],this[_0x5cca27(0x449,0x4ad)]['height']),'minimum':()=>new Cartesian2$1(this[_0x5cca27(0x449,0x40a)][_0x6281b6(0xb1,0x99)]['west'],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds']['east'],this[_0x5cca27(0x449,0x40f)]['bounds'][_0x6281b6(-0x47,0x2d)])},'fragmentShaderSource':ShaderManager[_0x5cca27(0x490,0x465)](),'outputTexture':this['particlesTextures'][_0x6281b6(0x6a,0x95)],'preExecute':()=>{function _0x2e1a80(_0x3411c3,_0x40a217){return _0x6281b6(_0x3411c3,_0x40a217-0x19c);}const _0x9aea5a=this['particlesTextures']['previousParticlesPosition'];function _0x1863f4(_0x2f0504,_0x37ec0e){return _0x6281b6(_0x2f0504,_0x37ec0e-0x269);}this['particlesTextures'][_0x2e1a80(0x219,0x260)]=this[_0x2e1a80(0x281,0x22c)]['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this[_0x2e1a80(0x22a,0x22c)][_0x1863f4(0x3b6,0x350)],this[_0x1863f4(0x32c,0x2f9)]['postProcessingPosition']=_0x9aea5a,this[_0x2e1a80(0x1d3,0x241)]['calculateSpeed']['commandToExecute']&&(this['primitives'][_0x1863f4(0x26e,0x2fa)][_0x2e1a80(0x1b8,0x1fd)][_0x2e1a80(0x23e,0x201)]=this[_0x2e1a80(0x22f,0x22c)][_0x2e1a80(0x1ef,0x231)]);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x6281b6(0x8f,0x90)]['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x6281b6(0xa9,0x90)]['nextParticlesPosition'],'preExecute':()=>{function _0xb63950(_0x4fff5b,_0x50cd74){return _0x5cca27(_0x50cd74- -0x180,_0x4fff5b);}function _0x3d0370(_0x41734a,_0xf730ce){return _0x6281b6(_0xf730ce,_0x41734a- -0x236);}this['primitives'][_0x3d0370(-0x225,-0x1bb)]['commandToExecute']&&(this['primitives']['updatePosition']['commandToExecute'][_0x3d0370(-0x1d1,-0x177)]=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':_0x5cca27(0x3ba,0x3fe),'uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x6281b6(-0xab,-0x1a)],'particlesSpeed':()=>this[_0x5cca27(0x453,0x3dc)]['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this[_0x6281b6(0x115,0xa4)][_0x6281b6(0x68,0xd9)],'dataLonRange':()=>new Cartesian2$1(this[_0x6281b6(0x8d,0x86)]['bounds'][_0x6281b6(0x36,0x56)],this[_0x5cca27(0x449,0x47f)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this['windData'][_0x5cca27(0x45c,0x47f)][_0x6281b6(-0x18,0x2d)]),'randomCoefficient':function(){function _0x4a225a(_0x17bfd9,_0x5ca1f4){return _0x5cca27(_0x17bfd9- -0x350,_0x5ca1f4);}return Math[_0x4a225a(0xc8,0xa7)]();},'dropRate':()=>this['options'][_0x6281b6(-0x8,0x14)],'dropRateBump':()=>this[_0x5cca27(0x47c,0x4a8)]['dropRateBump'],'useViewerBounds':()=>this['options']['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x245543(_0x423d28,_0x1b1923){return _0x6281b6(_0x423d28,_0x1b1923- -0x279);}function _0x3e7fe6(_0x406da5,_0x5e38eb){return _0x5cca27(_0x406da5- -0x5b6,_0x5e38eb);}this[_0x245543(-0x24d,-0x1d4)]['postProcessingPosition'][_0x3e7fe6(-0x192,-0x217)]&&(this[_0x3e7fe6(-0x14e,-0x155)]['postProcessingPosition']['commandToExecute']['outputTexture']=this[_0x245543(-0x21a,-0x1e9)]['postProcessingPosition']);},'isDynamic':()=>this['options'][_0x6281b6(-0x69,0x1c)]})};}[_0x38f528(0x290,0x319)](){function _0x59514e(_0x5cf68f,_0x3bb6e4){return _0x38f528(_0x3bb6e4-0x3c,_0x5cf68f);}this['windTextures']['U']['destroy'](),this['windTextures']['V']['destroy'](),this[_0x59514e(0x297,0x27b)]();}[_0x3fc01e(-0x14a,-0xcd)](_0x2f1832){this[_0x1af3e3(0x16a,0x18a)]=_0x2f1832;function _0x1af3e3(_0x3b01e4,_0x44060a){return _0x3fc01e(_0x3b01e4-0x326,_0x44060a);}this['reCreateWindTextures']();}['updateOptions'](_0x2ddbb1){function _0x2c9c5b(_0x376b80,_0x461562){return _0x38f528(_0x461562- -0x4cc,_0x376b80);}const _0x55bb1c=_0x2ddbb1['flipY']!==undefined&&_0x2ddbb1['flipY']!==this['options'][_0x322c24(0x40c,0x443)];function _0x322c24(_0x8b3cab,_0x595216){return _0x3fc01e(_0x8b3cab-0x5f1,_0x595216);}this['options']=deepMerge(_0x2ddbb1,this[_0x2c9c5b(-0x236,-0x1f7)]),_0x55bb1c&&this['reCreateWindTextures']();}['processWindData'](_0x4ab95a){const {array:_0x401aef}=_0x4ab95a;function _0x4b6ef7(_0x4c69fa,_0x153ad1){return _0x38f528(_0x4c69fa- -0x1a,_0x153ad1);}let {min:_0x26775a,max:_0x513031}=_0x4ab95a;const _0x4e1ea6=new Float32Array(_0x401aef['length']);_0x26775a===undefined&&(console['warn']('min\x20is\x20undefined,\x20calculate\x20min'),_0x26775a=Math['min'](..._0x401aef));_0x513031===undefined&&(console['warn']('max\x20is\x20undefined,\x20calculate\x20max'),_0x513031=Math[_0x290931(0x2fc,0x2e9)](..._0x401aef));const _0x10acae=Math[_0x4b6ef7(0x2a8,0x2d9)](Math[_0x4b6ef7(0x279,0x2fe)](_0x26775a),Math['abs'](_0x513031));for(let _0x5b7d2b=0x0;_0x5b7d2b<_0x401aef[_0x290931(0x2df,0x2dd)];_0x5b7d2b++){const _0x22d611=_0x401aef[_0x5b7d2b]/_0x10acae;_0x4e1ea6[_0x5b7d2b]=_0x22d611;}function _0x290931(_0x3450dc,_0x195427){return _0x3fc01e(_0x3450dc-0x498,_0x195427);}return _0x4e1ea6;}[_0x3fc01e(-0x1c2,-0x1aa)](){function _0xb02bec(_0x5df766,_0x209a81){return _0x3fc01e(_0x5df766-0x461,_0x209a81);}Object[_0xb02bec(0x235,0x2bc)](this[_0x537d78(0x411,0x478)])[_0x537d78(0x442,0x45f)](_0x57a6f5=>_0x57a6f5[_0xb02bec(0x29f,0x311)]()),Object[_0xb02bec(0x235,0x26f)](this['particlesTextures'])['forEach'](_0x20e214=>_0x20e214['destroy']()),Object[_0xb02bec(0x235,0x294)](this['primitives'])['forEach'](_0x6c6736=>_0x6c6736[_0x537d78(0x4c3,0x46d)]());function _0x537d78(_0x431f8d,_0x39e776){return _0x38f528(_0x39e776-0x1d1,_0x431f8d);}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(_0x48c44e,_0x26283a,_0x23e796,_0x926b12){this[_0x33aa85(0x64,0xd9)]=_0x48c44e,this[_0x33aa85(0xef,0x175)]=_0x26283a,this[_0x33aa85(0xda,0x109)]=_0x23e796,this[_0x1875ac(-0x82,-0xb8)]=_0x926b12;function _0x33aa85(_0xd11026,_0x492b89){return _0x3fc01e(_0xd11026-0x278,_0x492b89);}(typeof this['options'][_0x33aa85(0x17,-0x6a)]!=='number'||this['options'][_0x1875ac(-0x12e,-0xe6)]<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x1875ac(-0x40,-0xe)]['particlesTextureSize']=0x100);function _0x1875ac(_0x1e459,_0x195f7f){return _0x3fc01e(_0x195f7f-0x17b,_0x1e459);}this['colorTable']=this[_0x33aa85(0x15,-0x2f)](),this[_0x33aa85(0x3c,0x89)]=this['createRenderingTextures'](),this['framebuffers']=this[_0x33aa85(0xb1,0xef)](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x5e6661={};_0x5e6661[_0x46b85d(-0x56,-0x37)]=this[_0xb2def(-0x278,-0x20e)],_0x5e6661['width']=this['context']['drawingBufferWidth'],_0x5e6661[_0x46b85d(0xd7,0x83)]=this['context'][_0xb2def(-0x1b9,-0x20a)],_0x5e6661['pixelFormat']=PixelFormat[_0x46b85d(0xe9,0x6d)];function _0x46b85d(_0x1afe3e,_0x2d7a8d){return _0x38f528(_0x2d7a8d- -0x281,_0x1afe3e);}_0x5e6661[_0xb2def(-0x201,-0x174)]=PixelDatatype['UNSIGNED_BYTE'];const _0x2ebf99=_0x5e6661,_0x44f4dd={};_0x44f4dd['context']=this['context'],_0x44f4dd['width']=this['context']['drawingBufferWidth'],_0x44f4dd['height']=this['context']['drawingBufferHeight'];function _0xb2def(_0x5642fa,_0xb47d75){return _0x3fc01e(_0xb47d75-0x6,_0x5642fa);}_0x44f4dd[_0xb2def(-0x130,-0x141)]=PixelFormat[_0x46b85d(0xcb,0x71)],_0x44f4dd[_0x46b85d(0x50,0x63)]=PixelDatatype[_0xb2def(-0x215,-0x19e)];const _0x2e7f5c=_0x44f4dd;return{'segmentsColor':new Texture(_0x2ebf99),'segmentsDepth':new Texture(_0x2e7f5c)};}['createRenderingFramebuffers'](){const _0xc811b9={};_0xc811b9[_0x18a8e3(0x39b,0x3d9)]=this['context'],_0xc811b9['colorTextures']=[this['textures']['segmentsColor']];function _0x38cd60(_0x438d0c,_0x1465cc){return _0x3fc01e(_0x1465cc-0x34d,_0x438d0c);}_0xc811b9['depthTexture']=this['textures'][_0x18a8e3(0x382,0x344)];function _0x18a8e3(_0x5aae07,_0x4421a6){return _0x3fc01e(_0x5aae07-0x5af,_0x4421a6);}return{'segments':new Framebuffer(_0xc811b9)};}[_0x38f528(0x24d,0x1c0)](){function _0x369a74(_0x1d2085,_0x44c7c5){return _0x38f528(_0x1d2085- -0x137,_0x44c7c5);}Object[_0x369a74(0xfb,0x104)](this['framebuffers'])['forEach'](_0x4f0d0d=>{_0x4f0d0d['destroy']();});}[_0x38f528(0x1fb,0x1f3)](){function _0x235c4d(_0x59a2d5,_0x427e9f){return _0x3fc01e(_0x427e9f-0x392,_0x59a2d5);}const _0x1f1048=new Float32Array(this['options'][_0x5c98be(0x3b2,0x441)][_0x235c4d(0x28f,0x22d)](_0x32dfb6=>{function _0x37d254(_0x522c76,_0x2d32be){return _0x5c98be(_0x522c76- -0xc7,_0x2d32be);}function _0x33fea6(_0x26fc73,_0x5e6be5){return _0x5c98be(_0x26fc73- -0x1ad,_0x5e6be5);}const _0x49872b=Color$1[_0x37d254(0x224,0x1d4)](_0x32dfb6);return[_0x49872b['red'],_0x49872b[_0x37d254(0x274,0x1ed)],_0x49872b['blue'],_0x49872b['alpha']];})),_0x235918={};_0x235918['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x235918[_0x235c4d(0x1a9,0x197)]=TextureMagnificationFilter[_0x5c98be(0x327,0x2b7)],_0x235918['wrapS']=TextureWrap['CLAMP_TO_EDGE'];function _0x5c98be(_0x100508,_0x215cba){return _0x3fc01e(_0x100508-0x52f,_0x215cba);}return _0x235918['wrapT']=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this['context'],'width':this['options'][_0x5c98be(0x3b2,0x34c)][_0x235c4d(0x18f,0x1d9)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x235918),'source':{'width':this['options']['colors']['length'],'height':0x1,'arrayBufferView':_0x1f1048}});}[_0x3fc01e(-0x1b3,-0x182)](){function _0x1b2344(_0x461093,_0x5226b7){return _0x3fc01e(_0x461093-0x297,_0x5226b7);}const _0x48e500=0x4,_0x4c130e=this[_0x226a58(-0x142,-0x1ca)]['particlesTextureSize'];let _0xc586ba=[];for(let _0xa2cac3=0x0;_0xa2cac3<_0x4c130e;_0xa2cac3++){for(let _0x933bd=0x0;_0x933bd<_0x4c130e;_0x933bd++){for(let _0x3c6423=0x0;_0x3c6423<_0x48e500;_0x3c6423++){_0xc586ba['push'](_0xa2cac3/_0x4c130e),_0xc586ba[_0x226a58(-0x28d,-0x281)](_0x933bd/_0x4c130e);}}}_0xc586ba=new Float32Array(_0xc586ba);const _0x31a9f1=this['options']['particlesTextureSize']**0x2;let _0xabcfb8=[];for(let _0x1951c5=0x0;_0x1951c5<_0x31a9f1;_0x1951c5++){_0xabcfb8[_0x226a58(-0x26f,-0x281)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0xabcfb8=new Float32Array(_0xabcfb8);function _0x226a58(_0x5711c2,_0x4a25e8){return _0x38f528(_0x4a25e8- -0x49f,_0x5711c2);}let _0x14836e=[];for(let _0x3ffa66=0x0,_0x26f400=0x0;_0x3ffa66<_0x31a9f1;_0x3ffa66++){_0x14836e[_0x226a58(-0x300,-0x281)](_0x26f400+0x0,_0x26f400+0x1,_0x26f400+0x2,_0x26f400+0x2,_0x26f400+0x1,_0x26f400+0x3),_0x26f400+=_0x48e500;}_0x14836e=new Uint32Array(_0x14836e);const _0x323b24={};_0x323b24['componentDatatype']=ComponentDatatype['FLOAT'],_0x323b24['componentsPerAttribute']=0x2,_0x323b24[_0x226a58(-0x252,-0x26d)]=_0xc586ba;const _0xaf1f2a={};_0xaf1f2a['componentDatatype']=ComponentDatatype['FLOAT'],_0xaf1f2a[_0x1b2344(0x3f,0xb7)]=0x3,_0xaf1f2a['values']=_0xabcfb8;const _0x1a2c84=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x323b24),'normal':new GeometryAttribute(_0xaf1f2a)}),'indices':_0x14836e});return _0x1a2c84;}[_0x38f528(0x27c,0x25a)](_0x4b9464){const _0x66a5d={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x4b9464};function _0x4f9246(_0x2afe3f,_0x8d7169){return _0x38f528(_0x2afe3f-0x15f,_0x8d7169);}return Appearance[_0x4f9246(0x42e,0x447)](!![],![],_0x66a5d);}['createPrimitives'](){const _0x14cf7e={};function _0x323a65(_0x5af9db,_0x45ab8c){return _0x38f528(_0x45ab8c- -0x1c9,_0x5af9db);}_0x14cf7e['st']=0x0,_0x14cf7e[_0x1b504e(-0x13b,-0xad)]=0x1;const _0x52a907={};_0x52a907['enabled']=!![];const _0x550144={};_0x550144['enabled']=!![],_0x550144[_0x1b504e(-0x9e,-0xf5)]=WebGLRenderingContext['FUNC_ADD'],_0x550144['blendFuncSource']=WebGLRenderingContext[_0x323a65(0xf1,0xc3)],_0x550144['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x56995c={};_0x56995c[_0x323a65(0x13c,0xda)]=undefined,_0x56995c[_0x323a65(0x88,0x5a)]=_0x52a907,_0x56995c['depthMask']=!![],_0x56995c['blending']=_0x550144;const _0x3a3b0c=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x14cf7e,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x323a65(0x166,0xe3)]['previousParticlesPosition'],'currentParticlesPosition':()=>this[_0x1b504e(-0x170,-0x180)]['particlesTextures'][_0x323a65(0x165,0x123)],'postProcessingPosition':()=>this['computing']['particlesTextures'][_0x323a65(0x1c3,0x13a)],'particlesSpeed':()=>this['computing'][_0x1b504e(-0x122,-0xff)]['particlesSpeed'],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{var _0x63e6d1,_0xa96da8;function _0x5d217f(_0x4a7302,_0x35e215){return _0x323a65(_0x35e215,_0x4a7302-0x3e0);}const _0x35faf7=new Cartesian2(((_0x63e6d1=this['options']['domain'])===null||_0x63e6d1===void 0x0?void 0x0:_0x63e6d1[_0x58856d(0x35d,0x36b)])??this['computing'][_0x5d217f(0x4b9,0x4f7)]['speed'][_0x5d217f(0x4a1,0x4b8)],((_0xa96da8=this['options']['domain'])===null||_0xa96da8===void 0x0?void 0x0:_0xa96da8['max'])??this['computing']['windData']['speed'][_0x5d217f(0x4d9,0x554)]);function _0x58856d(_0x61c5cf,_0x54d109){return _0x323a65(_0x61c5cf,_0x54d109-0x2aa);}return _0x35faf7;},'displayRange':()=>{var _0x1737ef,_0xc65993;function _0x4ffb00(_0x4e8d8e,_0x150fcd){return _0x1b504e(_0x4e8d8e,_0x150fcd- -0xa2);}function _0xd6e3dd(_0x1aa423,_0x4451df){return _0x1b504e(_0x1aa423,_0x4451df- -0xba);}const _0x520a4e=new Cartesian2(((_0x1737ef=this['options'][_0xd6e3dd(-0x25b,-0x1e1)])===null||_0x1737ef===void 0x0?void 0x0:_0x1737ef[_0xd6e3dd(-0x1f9,-0x1db)])??this[_0x4ffb00(-0x2a4,-0x222)]['windData']['speed']['min'],((_0xc65993=this['options'][_0xd6e3dd(-0x261,-0x1e1)])===null||_0xc65993===void 0x0?void 0x0:_0xc65993[_0x4ffb00(-0x1fb,-0x18b)])??this['computing']['windData']['speed']['max']);return _0x520a4e;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context'][_0x1b504e(-0x1cb,-0x15d)],'pixelSize':()=>this['viewerParameters'][_0x1b504e(-0x1a6,-0x13c)],'lineWidth':()=>{const _0x156903={};function _0x5b8a1d(_0x2f33fc,_0xf4de83){return _0x1b504e(_0xf4de83,_0x2f33fc- -0x1b1);}function _0x1725f3(_0x514d10,_0x4a55b1){return _0x1b504e(_0x514d10,_0x4a55b1-0xcf);}_0x156903[_0x5b8a1d(-0x2d2,-0x2f2)]=0x1,_0x156903[_0x5b8a1d(-0x29a,-0x2e8)]=0x2;const _0x261a1b=this['options'][_0x1725f3(-0xac,-0x54)]||_0x156903;return new Cartesian2(_0x261a1b['min'],_0x261a1b['max']);},'lineLength':()=>{const _0x1d860b={};_0x1d860b['min']=0x14,_0x1d860b[_0xce451(0x77,0x1c)]=0x64;function _0x4a1584(_0xbb89f7,_0x8aeecb){return _0x323a65(_0x8aeecb,_0xbb89f7-0x432);}function _0xce451(_0x111be4,_0x8547a4){return _0x1b504e(_0x111be4,_0x8547a4-0x105);}const _0x49c520=this['options'][_0x4a1584(0x4ca,0x4a2)]||_0x1d860b;return new Cartesian2(_0x49c520['min'],_0x49c520[_0x4a1584(0x52b,0x56e)]);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x1b504e(-0xe4,-0xb7)],'segmentsDepthTexture':()=>this[_0x323a65(-0x27,0x59)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager[_0x323a65(0xad,0x49)](),'rawRenderState':this[_0x1b504e(-0xa1,-0x12f)](_0x56995c)}),_0x672f42={};function _0x1b504e(_0x191ea6,_0x145482){return _0x38f528(_0x145482- -0x3ab,_0x191ea6);}return _0x672f42[_0x1b504e(-0x11f,-0xd3)]=_0x3a3b0c,_0x672f42;}['onParticlesTextureSizeChange'](){function _0x139f5a(_0x3f7a51,_0x4ad17f){return _0x3fc01e(_0x3f7a51-0x426,_0x4ad17f);}const _0x1b2558=this[_0x2f4ee7(-0x1b5,-0x21a)]();this[_0x139f5a(0x289,0x238)]['segments']['geometry']=_0x1b2558;const _0x23721d={};_0x23721d[_0x2f4ee7(-0x23c,-0x27b)]=this['context'],_0x23721d['geometry']=_0x1b2558,_0x23721d['attributeLocations']=this[_0x2f4ee7(-0x296,-0x204)][_0x139f5a(0x2a0,0x239)]['attributeLocations'],_0x23721d[_0x139f5a(0x1cb,0x1e6)]=BufferUsage['STATIC_DRAW'];const _0x31ebb8=VertexArray[_0x139f5a(0x226,0x29f)](_0x23721d);function _0x2f4ee7(_0x2aa1a4,_0x5d6349){return _0x38f528(_0x5d6349- -0x4c5,_0x2aa1a4);}this[_0x139f5a(0x289,0x301)]['segments'][_0x2f4ee7(-0x2a7,-0x248)]&&(this['primitives'][_0x2f4ee7(-0x15f,-0x1ed)][_0x2f4ee7(-0x20f,-0x248)][_0x2f4ee7(-0x2bf,-0x273)]=_0x31ebb8);}['onColorTableChange'](){function _0x30b0dd(_0x134ab0,_0x5de824){return _0x38f528(_0x134ab0-0x65,_0x5de824);}this[_0x30b0dd(0x29b,0x317)]['destroy'](),this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x4c808e){const _0x1cb53e=_0x4c808e['colors']&&JSON['stringify'](_0x4c808e[_0x29a08f(0x3a5,0x37d)])!==JSON[_0x226085(0x2f8,0x27c)](this['options'][_0x29a08f(0x3e7,0x37d)]);function _0x29a08f(_0x52ee24,_0x25cc57){return _0x3fc01e(_0x25cc57-0x4fa,_0x52ee24);}this['options']=deepMerge(_0x4c808e,this['options']);function _0x226085(_0x416c2c,_0x5ec1af){return _0x38f528(_0x5ec1af-0x39,_0x416c2c);}_0x1cb53e&&this[_0x29a08f(0x2d3,0x31f)]();}['destroy'](){function _0x43b1d7(_0x3d5dd6,_0x19d47d){return _0x38f528(_0x3d5dd6-0x63,_0x19d47d);}Object[_0x3cf8bc(0x331,0x332)](this[_0x3cf8bc(0x28c,0x307)])['forEach'](_0x2d2f5a=>{_0x2d2f5a['destroy']();});function _0x3cf8bc(_0x824217,_0x117b8a){return _0x38f528(_0x117b8a-0x100,_0x824217);}Object['values'](this[_0x3cf8bc(0x344,0x3c1)])['forEach'](_0x46dc05=>{function _0x4a15e0(_0x1f58a3,_0x23fe52){return _0x3cf8bc(_0x23fe52,_0x1f58a3- -0x240);}_0x46dc05[_0x4a15e0(0x15c,0x12b)]();}),this[_0x3cf8bc(0x2e4,0x336)][_0x43b1d7(0x2ff,0x2f7)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x432a5a,_0x54d886,_0x249d44,_0x306cc8,_0xb103b7){this[_0x1a54bf(-0x10a,-0xa9)]=_0x432a5a,this['options']=_0x249d44,this['viewerParameters']=_0x306cc8,this['computing']=new WindParticlesComputing(_0x432a5a,_0x54d886,_0x249d44,_0x306cc8,_0xb103b7);function _0x1a54bf(_0x2aaed7,_0x3771ec){return _0x38f528(_0x2aaed7- -0x354,_0x3771ec);}this[_0x1a54bf(-0xeb,-0x16c)]=new WindParticlesRendering(_0x432a5a,_0x249d44,_0x306cc8,this['computing']);function _0x136d51(_0x4c1a87,_0x997614){return _0x38f528(_0x4c1a87- -0x3c,_0x997614);}this['clearFramebuffers']();}[_0x38f528(0x31b,0x2ae)](){function _0x1536ab(_0x1a6445,_0x13858e){return _0x3fc01e(_0x1a6445- -0x34,_0x13858e);}function _0x2ff88f(_0x3eb9ad,_0x4d2a6c){return _0x38f528(_0x3eb9ad- -0x141,_0x4d2a6c);}const _0x5c3f78=[this['computing']['primitives']['calculateSpeed'],this['computing'][_0x1536ab(-0x1d1,-0x1b9)]['updatePosition'],this['computing'][_0x2ff88f(0x180,0xff)][_0x2ff88f(0x1c2,0x23f)],this['rendering']['primitives']['segments']];return _0x5c3f78;}[_0x3fc01e(-0x246,-0x248)](){const _0x4526a5=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x1eb4f4(_0x4dd773,_0x56b60f){return _0x38f528(_0x56b60f- -0x552,_0x4dd773);}function _0x596501(_0x3f5d04,_0x5761ce){return _0x38f528(_0x3f5d04- -0x503,_0x5761ce);}Object[_0x1eb4f4(-0x29b,-0x2da)](this[_0x596501(-0x29a,-0x27a)]['framebuffers'])['forEach'](_0x36c95a=>{_0x4526a5['framebuffer']=this['rendering']['framebuffers'][_0x36c95a];function _0x4da8f9(_0x3e001b,_0x2f56cb){return _0x596501(_0x3e001b-0x5e4,_0x2f56cb);}function _0x5d278e(_0x4b9670,_0x814786){return _0x1eb4f4(_0x814786,_0x4b9670-0x11f);}_0x4526a5[_0x5d278e(-0x192,-0x1d3)](this[_0x4da8f9(0x32b,0x2e7)]);});}['changeOptions'](_0xf11430){function _0x2d6b23(_0x339c6e,_0x11b19a){return _0x38f528(_0x11b19a-0x70,_0x339c6e);}let _0x364063=![];function _0x4b5dc2(_0x3f0db9,_0x240b4d){return _0x38f528(_0x240b4d-0x248,_0x3f0db9);}_0xf11430[_0x4b5dc2(0x464,0x445)]&&this['options'][_0x2d6b23(0x230,0x26d)]!==_0xf11430['particlesTextureSize']&&(_0x364063=!![]);const _0x47d950=deepMerge(_0xf11430,this['options']);if(_0x47d950[_0x2d6b23(0x237,0x26d)]<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x47d950,this['rendering']['updateOptions'](_0xf11430),this['computing']['updateOptions'](_0xf11430),_0x364063&&(this['computing']['destroyParticlesTextures'](),this[_0x4b5dc2(0x4da,0x473)]['createParticlesTextures'](),this['rendering'][_0x2d6b23(0x253,0x297)]());}[_0x38f528(0x266,0x27c)](_0x40aa9c){this[_0x11f44d(0x36e,0x386)]=_0x40aa9c,this[_0x11f44d(0x280,0x2f1)][_0x11f44d(0x402,0x386)]=_0x40aa9c;function _0xbb841b(_0x4b8f32,_0x2f487b){return _0x3fc01e(_0x2f487b-0x686,_0x4b8f32);}function _0x11f44d(_0xeb1482,_0x4c5fb4){return _0x3fc01e(_0x4c5fb4-0x524,_0xeb1482);}this['rendering'][_0x11f44d(0x3a8,0x386)]=_0x40aa9c;}['destroy'](){function _0x5607f4(_0x2df692,_0x57ea76){return _0x3fc01e(_0x2df692-0x459,_0x57ea76);}this['computing'][_0x5607f4(0x297,0x2eb)]();function _0x44c213(_0x56453a,_0x2e26e3){return _0x38f528(_0x56453a- -0x210,_0x2e26e3);}this['rendering'][_0x44c213(0x8c,0xcf)]();}}const Cesium$1=mars3d__namespace[_0x3fc01e(-0x22f,-0x1b2)],BaseLayer$1=mars3d__namespace[_0x3fc01e(-0x141,-0x17c)][_0x38f528(0x300,0x330)],_0x30d63f={};_0x30d63f['min']=0x1,_0x30d63f[_0x3fc01e(-0x19c,-0x160)]=0x2;const _0xc3d4e2={};_0xc3d4e2[_0x3fc01e(-0x1d4,-0x1f3)]=0x14,_0xc3d4e2[_0x38f528(0x2c2,0x337)]=0x64;const _0x2520fa={};_0x2520fa[_0x3fc01e(-0x261,-0x245)]=0x64,_0x2520fa[_0x38f528(0x295,0x324)]=0x0,_0x2520fa['lineWidth']=_0x30d63f,_0x2520fa[_0x38f528(0x261,0x2ac)]=_0xc3d4e2,_0x2520fa[_0x38f528(0x29f,0x28f)]=0x1,_0x2520fa['dropRate']=0.003,_0x2520fa[_0x38f528(0x2a9,0x23d)]=0.001,_0x2520fa[_0x38f528(0x2e1,0x28a)]=['rgb(206,255,255)'],_0x2520fa[_0x38f528(0x279,0x2b9)]=![],_0x2520fa['dynamic']=!![];const DEF_OPTIONS=_0x2520fa;class WindLayer extends BaseLayer$1{constructor(_0x78d367={}){_0x78d367={...DEF_OPTIONS,..._0x78d367},super(_0x78d367);function _0x256e48(_0xbdd36e,_0x151cb9){return _0x38f528(_0xbdd36e-0x200,_0x151cb9);}this[_0x256e48(0x4d3,0x526)](_0x78d367,_0x78d367);}get['layer'](){return this['primitives'];}get[_0x38f528(0x242,0x1b8)](){function _0x28f4b9(_0x4be5b1,_0x4cfac2){return _0x38f528(_0x4be5b1-0x11d,_0x4cfac2);}return this[_0x28f4b9(0x3f2,0x45a)]['data'];}set[_0x38f528(0x242,0x289)](_0x526557){function _0x5d92ee(_0x2b225a,_0x5b007a){return _0x3fc01e(_0x2b225a- -0xd5,_0x5b007a);}this['options'][_0x5d92ee(-0x2f1,-0x295)]=_0x526557,this['setData'](_0x526557);}get['colors'](){function _0x1d46ed(_0x28b4ec,_0x415473){return _0x38f528(_0x28b4ec-0x74,_0x415473);}return this[_0x1d46ed(0x349,0x39e)]['colors'];}set[_0x38f528(0x2e1,0x26b)](_0x59d253){function _0x400f2f(_0x53a716,_0x482637){return _0x38f528(_0x482637-0x1bd,_0x53a716);}function _0x303708(_0x3811b6,_0x213bbf){return _0x38f528(_0x213bbf- -0x1da,_0x3811b6);}this[_0x303708(0x79,0xfb)]['colors']=_0x59d253;const _0x1c67af={};_0x1c67af[_0x400f2f(0x501,0x49e)]=_0x59d253,this['_setOptionsHook'](this['options'],_0x1c67af);}[_0x3fc01e(-0x176,-0xea)](_0x2d2ae3){function _0x46bc1e(_0x17a9b8,_0x49bf39){return _0x38f528(_0x17a9b8- -0x1a6,_0x49bf39);}_0x2d2ae3?this['_addedHook']():this[_0x46bc1e(0x127,0x173)]();}[_0x3fc01e(-0x18c,-0x126)](){}[_0x38f528(0x1ff,0x170)](){this['scene']=this['_map'][_0x37b4e4(-0x186,-0x169)],this['camera']=this[_0x32aeb8(-0xcd,-0x10b)]['camera'];this[_0x37b4e4(-0x1aa,-0x13e)][_0x37b4e4(-0x16e,-0x1d1)]&&this['setData'](this['options']['data']);if(!this['windData']||!this[_0x37b4e4(-0xb8,-0xfd)])return;this[_0x37b4e4(-0x101,-0x153)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x37b4e4(-0x1b7,-0x169)][_0x32aeb8(-0x110,-0xea)]};function _0x32aeb8(_0x345c5b,_0x298a09){return _0x38f528(_0x298a09- -0x310,_0x345c5b);}this['updateViewerParameters']();function _0x37b4e4(_0x30f451,_0x1e6051){return _0x3fc01e(_0x1e6051-0x4b,_0x30f451);}this['particleSystem']=new WindParticleSystem(this['scene'][_0x37b4e4(-0x1df,-0x1c9)],this['windData'],this[_0x32aeb8(0x4b,-0x3b)],this[_0x32aeb8(-0x15,-0x50)],this['scene']),this['primitives']=this['particleSystem']['getPrimitives'](),this['primitives']['forEach'](_0x210685=>{function _0x46796d(_0x4d6d2c,_0x2f1753){return _0x37b4e4(_0x2f1753,_0x4d6d2c-0x3b6);}function _0x4b6085(_0x42c8cb,_0x3fa266){return _0x37b4e4(_0x3fa266,_0x42c8cb-0x4a);}this[_0x4b6085(-0x11f,-0xaa)]['primitives'][_0x46796d(0x1fa,0x19d)](_0x210685);}),this[_0x37b4e4(-0x135,-0x15f)]['percentageChanged']=0.01,this['camera'][_0x32aeb8(-0x38,-0x9d)][_0x37b4e4(-0x12e,-0x16b)](this[_0x37b4e4(-0x22d,-0x1a3)][_0x37b4e4(-0xd0,-0x11c)](this)),this['scene']['morphComplete']['addEventListener'](this[_0x32aeb8(-0x48,-0xa0)][_0x32aeb8(0x54,-0x19)](this)),window['addEventListener'](_0x32aeb8(-0x95,-0x100),this['updateViewerParameters']['bind'](this));}['_removedHook'](){function _0x252ca2(_0x4aa044,_0x5a7b5b){return _0x38f528(_0x4aa044- -0x8a,_0x5a7b5b);}this[_0x252ca2(0x22a,0x219)]['changed'][_0x252ca2(0x285,0x25f)](this['updateViewerParameters']['bind'](this)),this[_0x252ca2(0x220,0x1a5)]['morphComplete'][_0x252ca2(0x285,0x30e)](this[_0x252ca2(0x1e6,0x235)]['bind'](this)),window[_0x1a3a23(0x3b3,0x421)](_0x1a3a23(0x39f,0x322),this[_0x1a3a23(0x35a,0x382)]['bind'](this));function _0x1a3a23(_0x4b2fc9,_0x4674b5){return _0x38f528(_0x4674b5-0x112,_0x4b2fc9);}this['primitives']&&(this[_0x252ca2(0x237,0x1fb)][_0x252ca2(0x204,0x1cd)](_0x4585e4=>{this['scene']['primitives']['remove'](_0x4585e4);}),delete this['primitives']),this['particleSystem']&&(this[_0x252ca2(0x281,0x22f)]['destroy'](),delete this['particleSystem']);}['setData'](_0x24e772,_0xf9d517){this['windData']=this[_0x1d59ba(0x357,0x36b)](_0x24e772);if(_0xf9d517){this['_removedHook'](),this['_addedHook']();return;}function _0x1d59ba(_0x406aa3,_0x5eab58){return _0x38f528(_0x5eab58-0xe5,_0x406aa3);}function _0x1018f8(_0x17377a,_0x5236e9){return _0x3fc01e(_0x17377a-0x342,_0x5236e9);}this[_0x1018f8(0x1ef,0x1c7)]?(this[_0x1d59ba(0x399,0x3f0)]['computing']['updateWindData'](this['windData']),this[_0x1018f8(0x18e,0x1cb)][_0x1d59ba(0x39b,0x3ed)]()):this['_addedHook']();}['_setOptionsHook'](_0x517006,_0x15210a){function _0x424518(_0x44061b,_0x47f654){return _0x3fc01e(_0x47f654- -0xa1,_0x44061b);}function _0x5fe279(_0x9e68a4,_0x6682a7){return _0x38f528(_0x6682a7-0x59,_0x9e68a4);}this[_0x5fe279(0x32e,0x364)]&&(this[_0x424518(-0x170,-0x1f4)]['changeOptions'](_0x15210a),this['scene']['requestRender']());}['processWindData'](_0x251b7b){var _0x204e25,_0x583e48;const _0x445710={..._0x251b7b},_0x2b04c5=_0x445710;function _0x41cde3(_0x4f5945,_0x2b33e6){return _0x38f528(_0x4f5945- -0x17,_0x2b33e6);}!_0x2b04c5['height']&&_0x2b04c5[_0x41cde3(0x1ea,0x160)]&&(_0x2b04c5['height']=_0x2b04c5['rows']);!_0x2b04c5['width']&&_0x2b04c5['cols']&&(_0x2b04c5[_0x41cde3(0x2a7,0x234)]=_0x2b04c5[_0x59fb3a(-0x4,-0x37)]);!_0x2b04c5[_0x59fb3a(0x9b,0xa1)]&&(_0x2b04c5[_0x41cde3(0x29e,0x21f)]={'west':_0x2b04c5[_0x41cde3(0x23e,0x226)],'south':_0x2b04c5['ymin'],'east':_0x2b04c5['xmax'],'north':_0x2b04c5['ymax']});function _0x59fb3a(_0x7fe0d3,_0x2b63f6){return _0x3fc01e(_0x7fe0d3-0x244,_0x2b63f6);}if(!_0x2b04c5['u']){const _0x29889c={};_0x29889c[_0x41cde3(0x303,0x2d2)]=_0x251b7b['udata'],_0x29889c[_0x59fb3a(0x70,0x86)]=_0x251b7b['umin'],_0x29889c[_0x59fb3a(0xa8,0x136)]=_0x251b7b[_0x59fb3a(0x14,0x72)],_0x2b04c5['u']=_0x29889c;}if(!_0x2b04c5['v']){const _0x318a29={};_0x318a29['array']=_0x251b7b['vdata'],_0x318a29['min']=_0x251b7b['vmin'],_0x318a29[_0x41cde3(0x2ab,0x316)]=_0x251b7b['vmax'],_0x2b04c5['v']=_0x318a29;}if(((_0x204e25=_0x2b04c5['speed'])===null||_0x204e25===void 0x0?void 0x0:_0x204e25[_0x59fb3a(0x70,0x9)])===undefined||((_0x583e48=_0x2b04c5[_0x41cde3(0x278,0x22e)])===null||_0x583e48===void 0x0?void 0x0:_0x583e48[_0x41cde3(0x2ab,0x30e)])===undefined||_0x2b04c5['speed']['array']===undefined){const _0x26e37c={'array':new Float32Array(_0x2b04c5['u']['array']['length']),'min':Number[_0x41cde3(0x297,0x312)],'max':Number[_0x59fb3a(-0x12,0x58)]};for(let _0x2c5f01=0x0;_0x2c5f01<_0x2b04c5['u']['array'][_0x41cde3(0x28e,0x254)];_0x2c5f01++){_0x26e37c[_0x59fb3a(0x100,0x8a)][_0x2c5f01]=Math['sqrt'](_0x2b04c5['u']['array'][_0x2c5f01]*_0x2b04c5['u']['array'][_0x2c5f01]+_0x2b04c5['v'][_0x59fb3a(0x100,0xc7)][_0x2c5f01]*_0x2b04c5['v']['array'][_0x2c5f01]),_0x26e37c[_0x41cde3(0x303,0x28e)][_0x2c5f01]!==0x0&&(_0x26e37c[_0x41cde3(0x273,0x2bc)]=Math['min'](_0x26e37c['min'],_0x26e37c[_0x41cde3(0x303,0x34c)][_0x2c5f01]),_0x26e37c[_0x59fb3a(0xa8,0x119)]=Math['max'](_0x26e37c[_0x59fb3a(0xa8,0xfb)],_0x26e37c[_0x59fb3a(0x100,0x163)][_0x2c5f01]));}_0x2b04c5[_0x41cde3(0x278,0x271)]=_0x26e37c;}return _0x2b04c5;}['updateViewerParameters'](){var _0x468d37;const _0x10c3e4=this['scene'];if(!_0x10c3e4)return;const _0x565476=_0x10c3e4['canvas'],_0x23bf0d={};_0x23bf0d['x']=0x0,_0x23bf0d['y']=0x0;function _0x532bc2(_0xd34ab1,_0x353176){return _0x3fc01e(_0xd34ab1- -0x6f,_0x353176);}const _0xf5adb7={};_0xf5adb7['x']=0x0,_0xf5adb7['y']=_0x565476['clientHeight'];const _0x21ebfb={};_0x21ebfb['x']=_0x565476[_0x532bc2(-0x2a5,-0x270)],_0x21ebfb['y']=0x0;const _0x1214ff={};_0x1214ff['x']=_0x565476[_0xa5c520(0x213,0x22b)],_0x1214ff['y']=_0x565476['clientHeight'];const _0x263dfc=[_0x23bf0d,_0xf5adb7,_0x21ebfb,_0x1214ff];let _0x345b1e=0xb4,_0x70fc12=-0xb4,_0x4c2b4d=0x5a,_0x11e72f=-0x5a,_0x5ef7db=![];for(const _0x452664 of _0x263dfc){const _0x3f7dce=_0x10c3e4[_0x532bc2(-0x219,-0x1ce)][_0x532bc2(-0x2c1,-0x25e)](new Cesium$1['Cartesian2'](_0x452664['x'],_0x452664['y']),_0x10c3e4['globe'][_0xa5c520(0x2c6,0x34a)]);if(!_0x3f7dce){_0x5ef7db=!![];break;}const _0x4ddd8d=_0x10c3e4[_0xa5c520(0x2c1,0x2a8)]['ellipsoid']['cartesianToCartographic'](_0x3f7dce),_0x5bde54=Cesium$1['Math']['toDegrees'](_0x4ddd8d['longitude']),_0x1ac7e3=Cesium$1['Math'][_0xa5c520(0x21f,0x289)](_0x4ddd8d['latitude']);_0x345b1e=Math['min'](_0x345b1e,_0x5bde54),_0x70fc12=Math['max'](_0x70fc12,_0x5bde54),_0x4c2b4d=Math['min'](_0x4c2b4d,_0x1ac7e3),_0x11e72f=Math['max'](_0x11e72f,_0x1ac7e3);}function _0xa5c520(_0x306750,_0x243012){return _0x38f528(_0x306750- -0x15,_0x243012);}if(!_0x5ef7db){const _0x27bced=new Cesium$1[(_0x532bc2(-0x1fd,-0x228))](Math[_0x532bc2(-0x20b,-0x21d)](this['windData']['bounds'][_0xa5c520(0x25d,0x287)],_0x345b1e),Math[_0xa5c520(0x275,0x29d)](this[_0x532bc2(-0x22b,-0x264)]['bounds'][_0xa5c520(0x2e7,0x269)],_0x70fc12)),_0x2e9cc6=new Cesium$1['Cartesian2'](Math[_0x532bc2(-0x20b,-0x259)](this['windData'][_0x532bc2(-0x218,-0x2a0)][_0xa5c520(0x2f5,0x2bb)],_0x4c2b4d),Math['min'](this['windData']['bounds']['north'],_0x11e72f)),_0x3da4cb=(_0x27bced['y']-_0x27bced['x'])*0.05,_0x45315a=(_0x2e9cc6['y']-_0x2e9cc6['x'])*0.05;_0x27bced['x']=Math['max'](this['windData'][_0x532bc2(-0x218,-0x2a2)][_0x532bc2(-0x25b,-0x21a)],_0x27bced['x']-_0x3da4cb),_0x27bced['y']=Math['min'](this[_0xa5c520(0x28d,0x260)]['bounds'][_0xa5c520(0x2e7,0x2b6)],_0x27bced['y']+_0x3da4cb),_0x2e9cc6['x']=Math['max'](this[_0xa5c520(0x28d,0x2a6)][_0x532bc2(-0x218,-0x1a5)]['south'],_0x2e9cc6['x']-_0x45315a),_0x2e9cc6['y']=Math['min'](this['windData']['bounds']['north'],_0x2e9cc6['y']+_0x45315a),this[_0xa5c520(0x2ab,0x2f4)][_0xa5c520(0x245,0x1dd)]=_0x27bced,this['viewerParameters'][_0xa5c520(0x2e0,0x293)]=_0x2e9cc6;const _0x5c82b1=this['windData']['bounds']['east']-this[_0xa5c520(0x28d,0x2bb)]['bounds'][_0x532bc2(-0x25b,-0x213)],_0x4ec5e7=this[_0x532bc2(-0x22b,-0x1a3)][_0xa5c520(0x2a0,0x277)]['north']-this['windData'][_0xa5c520(0x2a0,0x2eb)][_0xa5c520(0x2f5,0x297)],_0x5ae1e5=(_0x27bced['y']-_0x27bced['x'])/_0x5c82b1,_0x422f26=(_0x2e9cc6['y']-_0x2e9cc6['x'])/_0x4ec5e7,_0x28c688=Math['min'](_0x5ae1e5,_0x422f26),_0x50a854=0x3e8*_0x28c688;_0x50a854>0x0&&(this['viewerParameters'][_0xa5c520(0x25a,0x2a4)]=Math['max'](0x0,Math[_0xa5c520(0x275,0x2f6)](0x3e8,_0x50a854)));}this[_0xa5c520(0x2ab,0x28e)]['sceneMode']=this['scene']['mode'],(_0x468d37=this['particleSystem'])===null||_0x468d37===void 0x0||_0x468d37[_0xa5c520(0x251,0x258)](this[_0x532bc2(-0x20d,-0x276)]);}['getDataAtLonLat'](_0x155dfa,_0x134e83){const {bounds:_0x1cc516,width:_0x8662df,height:_0x5edd6b,u:_0x2a2c39,v:_0x5b54ea,speed:_0x334eee}=this['windData'],{flipY:_0x3e3c17}=this['options'];if(_0x155dfa<_0x1cc516[_0x3297a9(0x1f0,0x1a3)]||_0x155dfa>_0x1cc516[_0x5053c6(-0x145,-0x1d2)]||_0x134e83<_0x1cc516[_0x3297a9(0x2c7,0x23b)]||_0x134e83>_0x1cc516['north'])return null;const _0x20408d=(_0x155dfa-_0x1cc516[_0x5053c6(-0x1cf,-0x1b2)])/(_0x1cc516['east']-_0x1cc516['west'])*(_0x8662df-0x1);let _0x1f1606=(_0x134e83-_0x1cc516['south'])/(_0x1cc516[_0x3297a9(0xff,0x17a)]-_0x1cc516['south'])*(_0x5edd6b-0x1);_0x3e3c17&&(_0x1f1606=_0x5edd6b-0x1-_0x1f1606);const _0x373598=Math['floor'](_0x20408d),_0x44a8da=Math[_0x5053c6(-0x22a,-0x29a)](_0x1f1606),_0x3c6002=Math['floor'](_0x20408d),_0x1b56df=Math[_0x5053c6(-0x1b7,-0x14e)](_0x3c6002+0x1,_0x8662df-0x1),_0x4e030d=Math[_0x5053c6(-0x22a,-0x226)](_0x1f1606),_0xbb6667=Math['min'](_0x4e030d+0x1,_0x5edd6b-0x1),_0x12f009=_0x20408d-_0x3c6002,_0x5c53af=_0x1f1606-_0x4e030d,_0x8790fa=_0x44a8da*_0x8662df+_0x373598;function _0x5053c6(_0xca66d7,_0x5e93e2){return _0x3fc01e(_0xca66d7-0x1d,_0x5e93e2);}const _0x530f04=_0x4e030d*_0x8662df+_0x3c6002,_0x1d1301=_0x4e030d*_0x8662df+_0x1b56df;function _0x3297a9(_0x3317cd,_0x3311d8){return _0x38f528(_0x3311d8- -0xcf,_0x3317cd);}const _0x330635=_0xbb6667*_0x8662df+_0x3c6002,_0x4e08fe=_0xbb6667*_0x8662df+_0x1b56df,_0x2e888e=_0x2a2c39['array'][_0x530f04],_0xba109c=_0x2a2c39['array'][_0x1d1301],_0x4d62cc=_0x2a2c39[_0x5053c6(-0x127,-0xce)][_0x330635],_0x356493=_0x2a2c39['array'][_0x4e08fe],_0xd803ab=(0x1-_0x12f009)*(0x1-_0x5c53af)*_0x2e888e+_0x12f009*(0x1-_0x5c53af)*_0xba109c+(0x1-_0x12f009)*_0x5c53af*_0x4d62cc+_0x12f009*_0x5c53af*_0x356493,_0x433479=_0x5b54ea['array'][_0x530f04],_0x51e7e0=_0x5b54ea['array'][_0x1d1301],_0x4e3d2c=_0x5b54ea['array'][_0x330635],_0x5479a4=_0x5b54ea['array'][_0x4e08fe],_0x118b40=(0x1-_0x12f009)*(0x1-_0x5c53af)*_0x433479+_0x12f009*(0x1-_0x5c53af)*_0x51e7e0+(0x1-_0x12f009)*_0x5c53af*_0x4e3d2c+_0x12f009*_0x5c53af*_0x5479a4,_0x1de44b=Math[_0x5053c6(-0x12c,-0x15e)](_0xd803ab*_0xd803ab+_0x118b40*_0x118b40),_0x41ba8c={};_0x41ba8c['u']=_0x2a2c39['array'][_0x8790fa],_0x41ba8c['v']=_0x5b54ea['array'][_0x8790fa],_0x41ba8c[_0x3297a9(0x24c,0x1c0)]=_0x334eee['array'][_0x8790fa];const _0x5d6ca0={};_0x5d6ca0['u']=_0xd803ab,_0x5d6ca0['v']=_0x118b40,_0x5d6ca0['speed']=_0x1de44b;const _0x582a40={};return _0x582a40['original']=_0x41ba8c,_0x582a40[_0x3297a9(0x29a,0x229)]=_0x5d6ca0,_0x582a40;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this['lat']=null,this['tlng']=null,this[_0x1bbd18(0x373,0x36f)]=null;function _0x1bbd18(_0xbe85d1,_0x20309d){return _0x38f528(_0xbe85d1-0x165,_0x20309d);}this[_0x1bbd18(0x462,0x477)]=null;function _0x46a657(_0x293894,_0x3032d7){return _0x3fc01e(_0x293894-0x25a,_0x3032d7);}this['speed']=null;}['destroy'](){for(const _0x155b7c in this){delete this[_0x155b7c];}}}class CanvasWindField{constructor(_0x2131a6){this['setOptions'](_0x2131a6);}get[_0x3fc01e(-0x1f3,-0x26f)](){function _0x5c3eae(_0x4e660e,_0x5a15aa){return _0x3fc01e(_0x5a15aa- -0x2d,_0x4e660e);}return this[_0x5c3eae(-0x1d4,-0x233)];}set['speedRate'](_0x22c8c7){function _0x7fc9b2(_0x23b8d3,_0x2b2a56){return _0x3fc01e(_0x23b8d3-0x55f,_0x2b2a56);}this[_0x3532d1(0x17c,0x113)]=(0x64-(_0x22c8c7>0x63?0x63:_0x22c8c7))*0x64;function _0x3532d1(_0x41f08d,_0x39b7f6){return _0x38f528(_0x39b7f6- -0x145,_0x41f08d);}this['_calc_speedRate']=[(this['xmax']-this[_0x3532d1(0x16d,0x110)])/this['_speedRate'],(this[_0x3532d1(0x15d,0xcf)]-this[_0x3532d1(0xa9,0xf7)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set[_0x3fc01e(-0x225,-0x269)](_0x352287){this['_maxAge']=_0x352287;}[_0x3fc01e(-0x20d,-0x188)](_0x58d8a6){this['options']=_0x58d8a6,this[_0x15eca5(0x320,0x36b)]=_0x58d8a6['maxAge']||0x78,this['speedRate']=_0x58d8a6[_0x418ebc(-0xe6,-0x174)]||0x32;function _0x15eca5(_0x152110,_0x4a780d){return _0x38f528(_0x4a780d-0x132,_0x152110);}this[_0x15eca5(0x383,0x3f1)]=[];const _0x142a2e=_0x58d8a6['particlesNumber']||0x1000;function _0x418ebc(_0x3137ca,_0xfbecba){return _0x38f528(_0x3137ca- -0x351,_0xfbecba);}for(let _0x12a15a=0x0;_0x12a15a<_0x142a2e;_0x12a15a++){const _0x379ae6=this[_0x418ebc(-0x128,-0x161)](new CanvasParticle());this['particles']['push'](_0x379ae6);}}[_0x3fc01e(-0x171,-0x1cb)](_0x224981){this[_0x3b9736(0x5f,0xba)]=_0x224981['rows'];function _0x2701aa(_0x321c15,_0x47cd80){return _0x3fc01e(_0x47cd80-0x262,_0x321c15);}this[_0x3b9736(0xa5,0xcf)]=_0x224981[_0x2701aa(0x68,0x1a)],this[_0x2701aa(0xac,0x59)]=_0x224981['xmin'],this[_0x2701aa(0xac,0x109)]=_0x224981[_0x2701aa(0x10d,0x109)],this[_0x3b9736(0xb4,0xf5)]=_0x224981['ymin'],this['ymax']=_0x224981[_0x2701aa(0x56,0x18)],this[_0x3b9736(0x15d,0x137)]=[];const _0x2678d7=_0x224981[_0x3b9736(0x175,0x180)],_0x2b2751=_0x224981[_0x2701aa(0x136,0x110)];let _0xf0792a=![];_0x2678d7['length']===this['rows']&&_0x2678d7[0x0][_0x2701aa(0x3f,0xa9)]===this['cols']&&(_0xf0792a=!![]);let _0xdf1b9f=0x0,_0x46923c=null,_0x2e337f=null;for(let _0x4a9b16=0x0;_0x4a9b16<this['rows'];_0x4a9b16++){_0x46923c=[];for(let _0x2cd8d0=0x0;_0x2cd8d0<this['cols'];_0x2cd8d0++,_0xdf1b9f++){_0xf0792a?_0x2e337f=this['_calcUV'](_0x2678d7[_0x4a9b16][_0x2cd8d0],_0x2b2751[_0x4a9b16][_0x2cd8d0]):_0x2e337f=this['_calcUV'](_0x2678d7[_0xdf1b9f],_0x2b2751[_0xdf1b9f]),_0x46923c['push'](_0x2e337f);}this[_0x3b9736(0x1a4,0x137)][_0x2701aa(0x2f,0x22)](_0x46923c);}function _0x3b9736(_0x2da1d9,_0x32b7ed){return _0x3fc01e(_0x32b7ed-0x317,_0x2da1d9);}!this['options'][_0x3b9736(0x170,0x132)]&&this[_0x2701aa(0x4a,0x82)]['reverse']();}['clear'](){delete this[_0x201838(-0x193,-0x11e)],delete this['cols'],delete this[_0xcf3d33(-0x240,-0x27d)],delete this[_0xcf3d33(-0x184,-0x1cd)],delete this['ymin'],delete this[_0x201838(-0xea,-0x10b)];function _0xcf3d33(_0x4480dd,_0x663d1c){return _0x3fc01e(_0x663d1c- -0x74,_0x4480dd);}delete this[_0xcf3d33(-0x2a6,-0x254)];function _0x201838(_0x100721,_0x1158e6){return _0x3fc01e(_0x1158e6-0x13f,_0x100721);}delete this['particles'];}['toGridXY'](_0x4fad0e,_0x2010a4){function _0x500f1a(_0x1286c4,_0xa6c94c){return _0x3fc01e(_0x1286c4-0x293,_0xa6c94c);}const _0x11ab0c=(_0x4fad0e-this['xmin'])/(this['xmax']-this['xmin'])*(this['cols']-0x1),_0x3a3053=(this[_0x500f1a(0x49,0x2f)]-_0x2010a4)/(this['ymax']-this['ymin'])*(this['rows']-0x1);return[_0x11ab0c,_0x3a3053];}['getUVByXY'](_0x41101c,_0x27a0ba){if(_0x41101c<0x0||_0x41101c>=this['cols']||_0x27a0ba>=this[_0x6ffc94(0xc8,0x120)])return[0x0,0x0,0x0];const _0x58b77b=Math['floor'](_0x41101c),_0x3b4abb=Math['floor'](_0x27a0ba);if(_0x58b77b===_0x41101c&&_0x3b4abb===_0x27a0ba)return this[_0xe7938d(0x1c1,0x136)][_0x27a0ba][_0x41101c];function _0x6ffc94(_0x4a428d,_0x73ab2d){return _0x38f528(_0x4a428d- -0x139,_0x73ab2d);}const _0x10e420=_0x58b77b+0x1,_0x523da6=_0x3b4abb+0x1,_0x46e6d4=this['getUVByXY'](_0x58b77b,_0x3b4abb);function _0xe7938d(_0x30c129,_0xf02881){return _0x3fc01e(_0xf02881-0x316,_0x30c129);}const _0x3967e5=this[_0x6ffc94(0x12b,0x148)](_0x10e420,_0x3b4abb),_0x55f43c=this[_0x6ffc94(0x12b,0x174)](_0x58b77b,_0x523da6),_0x772665=this['getUVByXY'](_0x10e420,_0x523da6);let _0x119998=null;try{_0x119998=this['_bilinearInterpolation'](_0x41101c-_0x58b77b,_0x27a0ba-_0x3b4abb,_0x46e6d4,_0x3967e5,_0x55f43c,_0x772665);}catch(_0x936f69){console['log'](_0x41101c,_0x27a0ba);}return _0x119998;}[_0x38f528(0x2bd,0x2bb)](_0x276c19,_0x11ad70,_0x431def,_0x5aa4d4,_0x4b9a93,_0x105617){const _0x20b9d9=0x1-_0x276c19,_0x2d8ed7=0x1-_0x11ad70;function _0x31054d(_0x151ba6,_0x1946e3){return _0x3fc01e(_0x1946e3- -0x108,_0x151ba6);}const _0x5ba8ac=_0x20b9d9*_0x2d8ed7,_0x551587=_0x276c19*_0x2d8ed7,_0x37be66=_0x20b9d9*_0x11ad70,_0x47f57e=_0x276c19*_0x11ad70,_0x5253c2=_0x431def[0x0]*_0x5ba8ac+_0x5aa4d4[0x0]*_0x551587+_0x4b9a93[0x0]*_0x37be66+_0x105617[0x0]*_0x47f57e,_0x342feb=_0x431def[0x1]*_0x5ba8ac+_0x5aa4d4[0x1]*_0x551587+_0x4b9a93[0x1]*_0x37be66+_0x105617[0x1]*_0x47f57e;return this[_0x31054d(-0x26d,-0x2e7)](_0x5253c2,_0x342feb);}['_calcUV'](_0x2e049b,_0x29d515){return[+_0x2e049b,+_0x29d515,Math['sqrt'](_0x2e049b*_0x2e049b+_0x29d515*_0x29d515)];}['getUVByPoint'](_0x5cf793,_0x30e16e){if(!this['isInExtent'](_0x5cf793,_0x30e16e))return null;function _0xbf4971(_0x4bbbe6,_0x1ce772){return _0x3fc01e(_0x1ce772-0x2e6,_0x4bbbe6);}const _0x7ba226=this[_0xbf4971(0x145,0x150)](_0x5cf793,_0x30e16e),_0x3c6401=this['getUVByXY'](_0x7ba226[0x0],_0x7ba226[0x1]);return _0x3c6401;}[_0x3fc01e(-0x1de,-0x1b3)](_0x332979,_0x5e0a57){function _0x1e228a(_0x5b851e,_0x17d709){return _0x38f528(_0x17d709-0x60,_0x5b851e);}function _0x4774c2(_0x238fd0,_0x3de0c9){return _0x3fc01e(_0x238fd0-0x26b,_0x3de0c9);}return _0x332979>=this[_0x1e228a(0x240,0x2b5)]&&_0x332979<=this['xmax']&&_0x5e0a57>=this['ymin']&&_0x5e0a57<=this[_0x4774c2(0x21,-0x38)]?!![]:![];}[_0x3fc01e(-0x157,-0x157)](){const _0x423a19=fRandomByfloat(this['xmin'],this['xmax']);function _0x3f243a(_0x13ddf2,_0x246206){return _0x3fc01e(_0x13ddf2-0x22f,_0x246206);}const _0x5f560d=fRandomByfloat(this[_0x3f243a(0xd,0x52)],this[_0x3f243a(-0x1b,0x77)]),_0x35ee06={};_0x35ee06['lat']=_0x5f560d;function _0x5a5f3b(_0x10a197,_0x3100b0){return _0x3fc01e(_0x3100b0-0x39c,_0x10a197);}return _0x35ee06['lng']=_0x423a19,_0x35ee06;}[_0x3fc01e(-0x18a,-0x110)](){function _0x56a8cb(_0x49f1f3,_0x39d94b){return _0x38f528(_0x49f1f3- -0x230,_0x39d94b);}let _0x39c05e,_0x4b67ab,_0x3fbb56;function _0x227bb1(_0x537fae,_0x506b82){return _0x3fc01e(_0x506b82-0x54c,_0x537fae);}for(let _0x16632d=0x0,_0x32918a=this[_0x56a8cb(0x8f,0xbf)][_0x227bb1(0x36d,0x393)];_0x16632d<_0x32918a;_0x16632d++){let _0x2c7983=this['particles'][_0x16632d];_0x2c7983['age']<=0x0&&(_0x2c7983=this[_0x227bb1(0x2d1,0x317)](_0x2c7983));if(_0x2c7983[_0x227bb1(0x45b,0x3eb)]>0x0){const _0x5bbf80=_0x2c7983[_0x227bb1(0x32a,0x373)],_0x15e884=_0x2c7983['tlat'];_0x3fbb56=this['getUVByPoint'](_0x5bbf80,_0x15e884),_0x3fbb56?(_0x39c05e=_0x5bbf80+this['_calc_speedRate'][0x0]*_0x3fbb56[0x0],_0x4b67ab=_0x15e884+this['_calc_speedRate'][0x1]*_0x3fbb56[0x1],_0x2c7983['lng']=_0x5bbf80,_0x2c7983['lat']=_0x15e884,_0x2c7983[_0x227bb1(0x392,0x373)]=_0x39c05e,_0x2c7983['tlat']=_0x4b67ab,_0x2c7983[_0x56a8cb(0x5f,-0x27)]=_0x3fbb56[0x2],_0x2c7983['age']--):_0x2c7983['age']=0x0;}}return this[_0x56a8cb(0x8f,0x57)];}['_randomParticle'](_0x5d368c){let _0x2e9d2c,_0x62c769;function _0x325b05(_0x17a8c2,_0x3e1737){return _0x3fc01e(_0x17a8c2-0x2b1,_0x3e1737);}for(let _0x26c6d4=0x0;_0x26c6d4<0x1e;_0x26c6d4++){_0x2e9d2c=this['getRandomLatLng'](),_0x62c769=this[_0x325b05(0x163,0x16e)](_0x2e9d2c[_0x325b05(0xf0,0x136)],_0x2e9d2c[_0x325b05(0x13e,0x189)]);if(_0x62c769&&_0x62c769[0x2]>0x0)break;}if(!_0x62c769)return _0x5d368c;const _0x1f7f62=_0x2e9d2c['lng']+this[_0x325b05(0x70,0x88)][0x0]*_0x62c769[0x0],_0x3400f6=_0x2e9d2c[_0x325b05(0x13e,0x10d)]+this['_calc_speedRate'][0x1]*_0x62c769[0x1];_0x5d368c['lng']=_0x2e9d2c['lng'],_0x5d368c['lat']=_0x2e9d2c[_0x11ee6d(0x2ac,0x227)];function _0x11ee6d(_0x3ad8fb,_0x5bd1ed){return _0x38f528(_0x3ad8fb- -0x3f,_0x5bd1ed);}return _0x5d368c['tlng']=_0x1f7f62,_0x5d368c[_0x325b05(0x61,0xd2)]=_0x3400f6,_0x5d368c[_0x325b05(0x150,0xfe)]=Math['round'](0xa+Math['random']()*this[_0x11ee6d(0x1fa,0x22a)]),_0x5d368c[_0x325b05(0xe2,0x82)]=_0x62c769[0x2],_0x5d368c;}['destroy'](){for(const _0x1d98f5 in this){delete this[_0x1d98f5];}}}function _0x38f528(_0x39d5ae,_0x37c397){return _0x4e0b(_0x39d5ae-0x17e,_0x37c397);}function fRandomByfloat(_0x5452d6,_0x97a602){return _0x5452d6+Math['random']()*(_0x97a602-_0x5452d6);}const Cesium=mars3d__namespace[_0x3fc01e(-0x22f,-0x1e9)],BaseLayer=mars3d__namespace[_0x3fc01e(-0x141,-0x1ca)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x366170={}){super(_0x366170),this['_setOptionsHook'](_0x366170);function _0x5715e6(_0x4a6805,_0x1753bd){return _0x3fc01e(_0x1753bd-0x59c,_0x4a6805);}this['canvas']=null;function _0x1be4ff(_0x2048f4,_0x248416){return _0x3fc01e(_0x248416-0x69d,_0x2048f4);}_0x366170['colors']&&_0x366170[_0x5715e6(0x3b4,0x3d4)]&&(this['_colorRamp']=new mars3d__namespace[(_0x1be4ff(0x4a3,0x4a1))](_0x366170));}['_setOptionsHook'](_0x174e93,_0x2eff33){this['frameTime']=0x3e8/(_0x174e93[_0x1ac377(-0xc1,-0xef)]||0xa);function _0x5aa7a4(_0x288d89,_0x186941){return _0x38f528(_0x288d89- -0x2a5,_0x186941);}function _0x1ac377(_0x3ee929,_0x1bbd6a){return _0x38f528(_0x1bbd6a- -0x39f,_0x3ee929);}this[_0x5aa7a4(0xe,0x10)]=this[_0x1ac377(-0x82,-0xca)]['pointerEvents']??![],this['color']=_0x174e93['color']||'#ffffff',this['lineWidth']=_0x174e93['lineWidth']||0x1,this[_0x1ac377(-0x145,-0x10a)]=_0x174e93['fixedHeight']??0x0,this[_0x5aa7a4(-0x2c,-0x3f)]=_0x174e93[_0x5aa7a4(-0x2c,-0x2a)]??![],this['windField']&&this['windField']['setOptions'](_0x174e93);}get[_0x3fc01e(-0x141,-0x110)](){function _0x1da788(_0x3fc567,_0x187e24){return _0x3fc01e(_0x3fc567-0x359,_0x187e24);}return this[_0x1da788(0xf5,0xe7)];}get[_0x38f528(0x235,0x218)](){function _0x4ea887(_0x10069a,_0x3e91e9){return _0x3fc01e(_0x10069a-0x15e,_0x3e91e9);}return this['_map']['scene'][_0x4ea887(-0x106,-0xa9)]['clientWidth'];}get['canvasHeight'](){function _0x8e70df(_0x5f12f9,_0x2ed1f7){return _0x38f528(_0x5f12f9- -0x4e3,_0x2ed1f7);}return this['_map']['scene'][_0x8e70df(-0x2e9,-0x27a)]['clientHeight'];}get[_0x38f528(0x2f0,0x2f4)](){return this['_pointerEvents'];}set['pointerEvents'](_0x4480eb){this[_0x18ec2c(0x276,0x27b)]=_0x4480eb;function _0x18ec2c(_0x5aabb7,_0x5b64b6){return _0x3fc01e(_0x5b64b6-0x426,_0x5aabb7);}if(!this['canvas'])return;_0x4480eb?this['canvas']['style']['pointer-events']='all':this['canvas']['style']['pointer-events']='none';}get[_0x3fc01e(-0x232,-0x1b5)](){function _0x3b542e(_0x583779,_0x50791c){return _0x3fc01e(_0x50791c-0x654,_0x583779);}return this[_0x3b542e(0x4ef,0x4cb)]['particlesNumber'];}set['particlesNumber'](_0x4fc457){this['options'][_0x3d561a(-0x2b7,-0x246)]=_0x4fc457;function _0x3d561a(_0x273ef4,_0x2712e8){return _0x38f528(_0x2712e8- -0x472,_0x273ef4);}clearTimeout(this[_0x3d561a(-0x219,-0x265)]);function _0x26d21b(_0x7b9301,_0x466a88){return _0x38f528(_0x7b9301- -0xa4,_0x466a88);}this['_canrefresh']=setTimeout(()=>{function _0x5e97bd(_0x318a36,_0x42f066){return _0x3d561a(_0x318a36,_0x42f066-0x471);}this[_0x5e97bd(0x324,0x2ae)]();},0x1f4);}get[_0x3fc01e(-0x1f3,-0x233)](){function _0x26e8c8(_0x319613,_0x923bf7){return _0x38f528(_0x319613- -0x463,_0x923bf7);}return this[_0x26e8c8(-0x18e,-0x1b5)]['speedRate'];}set[_0x3fc01e(-0x1f3,-0x26a)](_0x4a4343){function _0xe527d7(_0x50b343,_0xde8e65){return _0x3fc01e(_0xde8e65-0x3b7,_0x50b343);}this['options'][_0xe527d7(0x17e,0x1c4)]=_0x4a4343,this['windField']&&(this['windField']['speedRate']=_0x4a4343);}get[_0x3fc01e(-0x225,-0x1da)](){return this['options']['maxAge'];}set['maxAge'](_0x206b86){this[_0x14978c(0x122,0x17c)]['maxAge']=_0x206b86;function _0x14978c(_0x13a4a8,_0x3bb5bd){return _0x3fc01e(_0x3bb5bd-0x305,_0x13a4a8);}this['windField']&&(this['windField']['maxAge']=_0x206b86);}get[_0x38f528(0x242,0x209)](){return this['windData'];}set['data'](_0x1bbe98){this['setData'](_0x1bbe98);}get['rectangle'](){let _0x5c26b0=this[_0x335fee(0x11,-0x11)][_0x30ea98(0x310,0x2b9)],_0xdd3d1c=this[_0x335fee(-0x39,-0x11)]['xmax'],_0x14cb64=this[_0x30ea98(0x35d,0x3b9)]['ymin'],_0x4aa828=this['windData'][_0x335fee(-0x100,-0x9f)];_0xdd3d1c>=0x167&&_0x5c26b0===0x0&&(_0x5c26b0=-0xb4,_0xdd3d1c=0xb4);function _0x30ea98(_0x552045,_0x1d382d){return _0x3fc01e(_0x552045-0x519,_0x1d382d);}_0x5c26b0=Math[_0x30ea98(0x37d,0x3e2)](_0x5c26b0,-0xb4);function _0x335fee(_0xa8a703,_0x139116){return _0x38f528(_0x139116- -0x2b3,_0xa8a703);}return _0xdd3d1c=Math[_0x30ea98(0x345,0x36c)](_0xdd3d1c,0xb4),_0x14cb64=Math[_0x30ea98(0x37d,0x304)](_0x14cb64,-0x5a),_0x4aa828=Math['min'](_0x4aa828,0x5a),Cesium['Rectangle'][_0x335fee(0x2b,-0x67)](_0x5c26b0,_0x14cb64,_0xdd3d1c,_0x4aa828);}[_0x3fc01e(-0x176,-0xea)](_0x29772d){function _0x283321(_0x2f23dd,_0x30a989){return _0x3fc01e(_0x30a989-0x19c,_0x2f23dd);}function _0x32e6b6(_0x2778bd,_0x2fde4d){return _0x38f528(_0x2778bd- -0x26b,_0x2fde4d);}_0x29772d?this['_addedHook']():(this[_0x32e6b6(0x37,0x94)]&&(this[_0x283321(-0x2e,0x13)]['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x1fe8c1(_0x2f3021,_0xd3e8ef){return _0x3fc01e(_0xd3e8ef-0x95,_0x2f3021);}function _0x3cccfc(_0x4ec7a4,_0x3f42e1){return _0x38f528(_0x3f42e1- -0x73,_0x4ec7a4);}this['options'][_0x3cccfc(0x24b,0x218)]?this['initWorker']():this[_0x1fe8c1(-0x145,-0x10e)]=new CanvasWindField(this[_0x1fe8c1(-0x164,-0xf4)]);}['_addedHook'](){this[_0x3eb918(-0x2b0,-0x318)]=this[_0x3eb918(-0x23e,-0x1ae)]();const _0x5d3384={};_0x5d3384['willReadFrequently']=!![];function _0x3eb918(_0x5a4e94,_0x2ff634){return _0x38f528(_0x5a4e94- -0x4aa,_0x2ff634);}this[_0x3eb918(-0x289,-0x2c6)]=this['canvas']['getContext']('2d',_0x5d3384);function _0x47908e(_0x4dbd45,_0x4155e5){return _0x38f528(_0x4155e5-0x149,_0x4dbd45);}this[_0x3eb918(-0x22f,-0x2a3)](),this[_0x3eb918(-0x1d5,-0x159)]['data']&&this[_0x3eb918(-0x273,-0x2c1)](this['options']['data']);}[_0x3fc01e(-0x191,-0x1d5)](){this['clear']();function _0x33a96d(_0x5cecd6,_0x22a642){return _0x3fc01e(_0x22a642-0x66d,_0x5cecd6);}function _0x1bbe9a(_0x152a75,_0x59ef7e){return _0x3fc01e(_0x152a75-0x46e,_0x59ef7e);}this['unbindEvent'](),this['canvas']&&(this['_map'][_0x1bbe9a(0x2b0,0x295)]['removeChild'](this[_0x1bbe9a(0x20a,0x22a)]),delete this['canvas']);}[_0x3fc01e(-0x1f2,-0x1d3)](){function _0x5b8c3a(_0x36a4cd,_0x50a8b3){return _0x3fc01e(_0x50a8b3-0x335,_0x36a4cd);}const _0x3acb6f=mars3d__namespace['DomUtil'][_0x3d1517(0x340,0x2b2)]('canvas','mars3d-canvasWind',this['_map'][_0x5b8c3a(0x129,0x177)]);_0x3acb6f['style'][_0x3d1517(0x370,0x2fb)]=_0x3d1517(0x3f5,0x478);function _0x3d1517(_0x14a8b1,_0x5b8a43){return _0x3fc01e(_0x14a8b1-0x57a,_0x5b8a43);}return _0x3acb6f[_0x3d1517(0x3d4,0x3aa)][_0x5b8c3a(0x201,0x1e9)]='0px',_0x3acb6f['style']['left']='0px',_0x3acb6f[_0x3d1517(0x3d4,0x39e)]['width']=this['_map'][_0x3d1517(0x3c6,0x400)][_0x5b8c3a(0x8d,0xd1)][_0x5b8c3a(0xf5,0xff)]+'px',_0x3acb6f['style']['height']=this['_map']['scene']['canvas']['clientHeight']+'px',_0x3acb6f['style'][_0x3d1517(0x40c,0x440)]=this[_0x3d1517(0x3cf,0x3be)]?'auto':_0x5b8c3a(0x4b,0xd5),_0x3acb6f['style'][_0x3d1517(0x359,0x3e3)]=this[_0x5b8c3a(0x1a6,0x1ac)][_0x3d1517(0x359,0x3af)]??0x9,_0x3acb6f['width']=this[_0x5b8c3a(0x8a,0xdc)][_0x5b8c3a(0x12b,0x181)]['canvas'][_0x5b8c3a(0x101,0xff)],_0x3acb6f[_0x3d1517(0x420,0x43e)]=this[_0x5b8c3a(0x87,0xdc)]['scene']['canvas']['clientHeight'],_0x3acb6f;}['resize'](){function _0x151883(_0x1be9d6,_0x409027){return _0x3fc01e(_0x1be9d6-0x1a,_0x409027);}function _0x18d24e(_0x43a537,_0x248638){return _0x38f528(_0x248638- -0x3e3,_0x43a537);}this['canvas']&&(this[_0x18d24e(-0x229,-0x1e9)]['style'][_0x151883(-0x186,-0x146)]=this['_map']['scene']['canvas']['clientWidth']+'px',this['canvas']['style']['height']=this['_map'][_0x151883(-0x19a,-0x118)][_0x151883(-0x24a,-0x20a)][_0x151883(-0x1bb,-0x159)]+'px',this['canvas'][_0x151883(-0x186,-0x164)]=this[_0x18d24e(-0x24a,-0x1de)]['scene'][_0x151883(-0x24a,-0x1bd)][_0x18d24e(-0x218,-0x1bb)],this['canvas'][_0x151883(-0x140,-0x110)]=this['_map']['scene']['canvas'][_0x151883(-0x1bb,-0x16d)]);}['bindEvent'](){const _0x46c271=this;let _0x486fa7=Date[_0x1a6395(0xca,0x11a)]();(function _0x5a7f3b(){function _0x14d138(_0x556688,_0x52a4bf){return _0x1a6395(_0x52a4bf-0x235,_0x556688);}function _0x35a7ef(_0x367d9d,_0x374653){return _0x1a6395(_0x367d9d- -0x3fd,_0x374653);}if(_0x46c271[_0x14d138(0x361,0x3a3)])return;_0x46c271['_animateFrame']=window[_0x35a7ef(-0x23b,-0x293)](_0x5a7f3b);if(_0x46c271['show']&&_0x46c271['windField']){const _0x85fa0b=Date[_0x35a7ef(-0x333,-0x34f)](),_0x2cb035=_0x85fa0b-_0x486fa7;_0x2cb035>_0x46c271['frameTime']&&(_0x486fa7=_0x85fa0b-_0x2cb035%_0x46c271['frameTime'],_0x46c271['update']());}}(),window[_0x3e1556(0x4ba,0x44a)](_0x1a6395(0xba,0x29),this[_0x1a6395(0xba,0x5a)]['bind'](this),![]),this['mouse_down']=![],this['mouse_move']=![]);function _0x3e1556(_0xa6942a,_0x2a3ac7){return _0x3fc01e(_0xa6942a-0x670,_0x2a3ac7);}function _0x1a6395(_0x418e2f,_0x1befe0){return _0x3fc01e(_0x418e2f-0x308,_0x1befe0);}this['options'][_0x3e1556(0x45a,0x3e1)]&&(this['_map']['on'](mars3d__namespace['EventType'][_0x1a6395(0x13e,0x102)],this['_onMapWhellEvent'],this),this['_map']['on'](mars3d__namespace['EventType'][_0x1a6395(0xe8,0x99)],this['_onMouseDownEvent'],this),this['_map']['on'](mars3d__namespace['EventType']['mouseUp'],this[_0x1a6395(0x181,0x20a)],this));}['unbindEvent'](){function _0x10fe74(_0x101c16,_0x581f4b){return _0x3fc01e(_0x101c16-0x67,_0x581f4b);}window[_0x15207d(0x1ad,0x17f)](this['_animateFrame']);function _0x15207d(_0x589cde,_0xef9f09){return _0x38f528(_0x589cde- -0x161,_0xef9f09);}delete this['_animateFrame'],window['removeEventListener'](_0x15207d(0xaf,0xd0),this['resize']),this[_0x10fe74(-0x122,-0xea)]['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x10fe74(-0x175,-0x1d3)]['wheel'],this[_0x10fe74(-0x1dc,-0x264)],this),this['_map']['off'](mars3d__namespace[_0x10fe74(-0x175,-0x1df)]['mouseDown'],this['_onMouseDownEvent'],this),this['_map'][_0x15207d(0xd9,0x146)](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this));}[_0x38f528(0x21b,0x1f2)](_0x590342){clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas']['style']['visibility']='hidden',this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;this['redraw']();function _0x22ddce(_0x31e666,_0x26c7a9){return _0x4e0b(_0x26c7a9-0x1d,_0x31e666);}this['canvas']['style'][_0x22ddce(0xfe,0x190)]='visible';},0xc8);}[_0x38f528(0x277,0x20d)](_0x5986c9){function _0x4c468c(_0x44b946,_0x2f4f92){return _0x38f528(_0x2f4f92- -0x376,_0x44b946);}this[_0x4c468c(-0x8c,-0xc4)]=!![],this[_0x4c468c(-0xf8,-0x171)][_0x46d10e(-0x119,-0x91)](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x46d10e(_0x459d49,_0x3c0b4b){return _0x38f528(_0x459d49- -0x353,_0x3c0b4b);}this['_map']['on'](mars3d__namespace[_0x46d10e(-0xd1,-0x97)][_0x46d10e(-0x120,-0x13c)],this['_onMouseMoveEvent'],this);}[_0x38f528(0x298,0x21a)](_0x2652ab){function _0x55e81f(_0x4930ec,_0x44484e){return _0x3fc01e(_0x44484e-0x172,_0x4930ec);}function _0x2f2de0(_0x1ab9c4,_0x2840c0){return _0x38f528(_0x2840c0- -0x3ca,_0x1ab9c4);}if(!this[_0x55e81f(0xba,0x2a)]||!this[_0x2f2de0(-0x211,-0x1d0)])return;this['mouse_down']&&(this['canvas']['style']['visibility']='hidden',this[_0x55e81f(-0x2d,-0xf)]=!![]);}['_onMouseUpEvent'](_0x5b5492){if(!this['show']||!this['canvas'])return;function _0x10be7a(_0x19d735,_0x25562b){return _0x38f528(_0x19d735-0x15d,_0x25562b);}this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);this['mouse_down']&&this['mouse_move']&&this['redraw']();this[_0x10be7a(0x357,0x334)]['style'][_0x52dd8d(0x212,0x288)]=_0x52dd8d(0x1d8,0x1d7);function _0x52dd8d(_0x805c1f,_0x2186d8){return _0x3fc01e(_0x805c1f-0x37f,_0x2186d8);}this[_0x10be7a(0x40f,0x47f)]=![],this['mouse_move']=![];}['setData'](_0xdb65b6){this['clear']();function _0x434a43(_0x32d090,_0x2db1c2){return _0x3fc01e(_0x2db1c2- -0x46,_0x32d090);}function _0x513407(_0x355bea,_0x1db671){return _0x38f528(_0x1db671-0x1bc,_0x355bea);}this['windData']=_0xdb65b6,this['windField'][_0x434a43(-0x21a,-0x1b7)](_0xdb65b6),this[_0x434a43(-0x227,-0x1f5)]();}[_0x3fc01e(-0x1af,-0x1b9)](){if(!this['show'])return;this['windField']['setOptions'](this[_0x22de94(0x3de,0x3fe)]);function _0x22de94(_0x27c855,_0x1008cf){return _0x3fc01e(_0x27c855-0x567,_0x1008cf);}this['update']();}[_0x38f528(0x259,0x20c)](){if(this['_updateIng'])return;function _0x57cc5c(_0x2c8835,_0xfa1daa){return _0x38f528(_0x2c8835-0x1f2,_0xfa1daa);}this['_updateIng']=!![];if(this[_0x52baff(-0x238,-0x26f)])this['windField']['update']();else{const _0x447406=this['windField'][_0x57cc5c(0x4c6,0x54c)]();this[_0x52baff(-0x1ba,-0x195)](_0x447406);}function _0x52baff(_0x3e4f76,_0x55d548){return _0x3fc01e(_0x3e4f76- -0x65,_0x55d548);}this[_0x57cc5c(0x4be,0x49e)]=![];}[_0x3fc01e(-0x155,-0x1a3)](_0x3f451e){this['_canvasParticles']=_0x3f451e,this[_0x23c21e(0x411,0x485)][_0x23c21e(0x486,0x468)]=_0x387098(0x437,0x3fb),this[_0x387098(0x39f,0x39a)][_0x23c21e(0x57b,0x53e)](0x0,0x0,this[_0x23c21e(0x467,0x499)],this['canvasHeight']),this[_0x23c21e(0x442,0x485)]['globalCompositeOperation']=_0x387098(0x37e,0x336);function _0x23c21e(_0x446b1e,_0x3a11a7){return _0x38f528(_0x3a11a7-0x264,_0x446b1e);}this['canvasContext']['globalAlpha']=0.9;const _0x54065a=this[_0x387098(0x383,0x3d0)]['scene']['mode']!==Cesium['SceneMode'][_0x387098(0x472,0x4d1)];function _0x387098(_0x3bf490,_0xde174e){return _0x38f528(_0x3bf490-0x17e,_0xde174e);}const _0x19bf1b=this['canvasWidth']*0.25;if(this[_0x23c21e(0x54d,0x4d8)])for(let _0x5d9be5=0x0,_0x1218b8=_0x3f451e['length'];_0x5d9be5<_0x1218b8;_0x5d9be5++){const _0x6f080d=_0x3f451e[_0x5d9be5],_0x207c88=this[_0x387098(0x3c5,0x376)](_0x6f080d,_0x6f080d[_0x387098(0x41b,0x434)],_0x6f080d['lat'],_0x6f080d['alt']),_0xf6a5da=this[_0x387098(0x3c5,0x44d)](_0x6f080d,_0x6f080d[_0x387098(0x403,0x3c0)],_0x6f080d[_0x23c21e(0x4ec,0x472)],_0x6f080d[_0x23c21e(0x4b6,0x4d1)]);if(!_0x207c88||!_0xf6a5da)continue;if(_0x54065a&&Math['abs'](_0x207c88[0x0]-_0xf6a5da[0x0])>=_0x19bf1b)continue;this[_0x23c21e(0x4bc,0x485)][_0x387098(0x444,0x3d4)](),this['canvasContext']['lineWidth']=this[_0x387098(0x406,0x388)],this['canvasContext']['strokeStyle']=this[_0x23c21e(0x4a2,0x4d8)]['getColor'](_0x6f080d[_0x387098(0x40d,0x467)]),this['canvasContext']['moveTo'](_0x207c88[0x0],_0x207c88[0x1]),this['canvasContext'][_0x23c21e(0x4b4,0x4f5)](_0xf6a5da[0x0],_0xf6a5da[0x1]),this['canvasContext']['stroke']();}else{this[_0x387098(0x39f,0x42e)][_0x387098(0x444,0x406)](),this['canvasContext']['lineWidth']=this['lineWidth'],this[_0x387098(0x39f,0x3da)]['strokeStyle']=this[_0x387098(0x471,0x483)];for(let _0x4f56a2=0x0,_0x389f6a=_0x3f451e[_0x387098(0x423,0x3c8)];_0x4f56a2<_0x389f6a;_0x4f56a2++){const _0x423962=_0x3f451e[_0x4f56a2],_0x36ea18=this['_tomap'](_0x423962,_0x423962['lng'],_0x423962[_0x387098(0x469,0x459)],_0x423962[_0x387098(0x479,0x410)]),_0x33ea04=this['_tomap'](_0x423962,_0x423962['tlng'],_0x423962[_0x387098(0x38c,0x3ec)],_0x423962['talt']);if(!_0x36ea18||!_0x33ea04)continue;if(_0x54065a&&Math[_0x387098(0x411,0x3e2)](_0x36ea18[0x0]-_0x33ea04[0x0])>=_0x19bf1b)continue;this[_0x23c21e(0x42e,0x485)]['moveTo'](_0x36ea18[0x0],_0x36ea18[0x1]),this[_0x23c21e(0x43d,0x485)][_0x23c21e(0x4bc,0x4f5)](_0x33ea04[0x0],_0x33ea04[0x1]);}this[_0x387098(0x39f,0x3e2)][_0x387098(0x45a,0x449)]();}}['_tomap'](_0x3e48c6,_0x2024a2,_0x3faae5,_0xe5efb2){const _0x8108c1=Cesium['Cartesian3']['fromDegrees'](_0x2024a2,_0x3faae5,_0xe5efb2??this[_0x3f99fc(0x36b,0x2f8)]),_0x4abd15=this['_map'][_0x288a4e(-0x278,-0x2dd)];if(_0x4abd15['mode']===Cesium['SceneMode']['SCENE3D']){const _0x53d51c=new Cesium['EllipsoidalOccluder'](_0x4abd15[_0x3f99fc(0x309,0x339)]['ellipsoid'],_0x4abd15['camera']['positionWC']),_0x2f5bf7=_0x53d51c[_0x288a4e(-0x2ba,-0x329)](_0x8108c1);if(!_0x2f5bf7)return _0x3e48c6[_0x288a4e(-0x225,-0x1d4)]=0x0,null;}function _0x288a4e(_0x12ecc8,_0x566163){return _0x38f528(_0x12ecc8- -0x522,_0x566163);}const _0x417d9e=mars3d__namespace['PointTrans']['toWindowCoordinates'](this['_map'][_0x3f99fc(0x2a6,0x30d)],_0x8108c1);function _0x3f99fc(_0x3b458f,_0x5ac160){return _0x38f528(_0x5ac160-0x63,_0x3b458f);}return _0x417d9e?[_0x417d9e['x'],_0x417d9e['y']]:null;}['clear'](){function _0x158a59(_0x93add9,_0x233984){return _0x3fc01e(_0x233984-0x5d3,_0x93add9);}this[_0x2860e4(-0xb0,-0x89)][_0x158a59(0x411,0x380)]();function _0x2860e4(_0x28ecec,_0x8278b3){return _0x3fc01e(_0x28ecec-0xf3,_0x8278b3);}delete this['windData'];}['initWorker'](){this['worker']=new Worker(this['options']['worker']);function _0x729035(_0x3cf139,_0x5eda54){return _0x38f528(_0x3cf139-0x5,_0x5eda54);}this['worker'][_0x3c30e6(0x3f3,0x45c)]=_0x10baec=>{this['_drawLines'](_0x10baec[_0xad6077(-0x248,-0x2c7)]['particles']);function _0xad6077(_0x458044,_0x4e153a){return _0x3c30e6(_0x458044- -0x583,_0x4e153a);}this['_updateIng2']=![];};function _0x3c30e6(_0x23ad2f,_0x2efe76){return _0x3fc01e(_0x23ad2f-0x557,_0x2efe76);}this['windField']={'init':_0x4703a2=>{const _0x1e544c={};function _0x273180(_0x3254db,_0x38eebd){return _0x3c30e6(_0x38eebd-0xd,_0x3254db);}_0x1e544c['type']='init',_0x1e544c['options']=_0x4703a2,this[_0x273180(0x348,0x391)]['postMessage'](_0x1e544c);},'setOptions':_0x10daa5=>{const _0x33ba83={};_0x33ba83['type']='setOptions';function _0x27f6f5(_0x3bd37d,_0x31d596){return _0x3c30e6(_0x3bd37d-0xd9,_0x31d596);}function _0xf1f376(_0x3246de,_0xf21d39){return _0x3c30e6(_0x3246de- -0x365,_0xf21d39);}_0x33ba83[_0x27f6f5(0x4a7,0x448)]=_0x10daa5,this['worker'][_0xf1f376(0x7e,-0x2)](_0x33ba83);},'setDate':_0x1f0b32=>{const _0x4161ab={};function _0x5460d5(_0x4e4479,_0x2d9daa){return _0x3c30e6(_0x4e4479-0xd,_0x2d9daa);}function _0x2de094(_0x1bd9f2,_0x58b440){return _0x3c30e6(_0x1bd9f2- -0x377,_0x58b440);}_0x4161ab[_0x5460d5(0x362,0x3b9)]='setDate',_0x4161ab['data']=_0x1f0b32,this[_0x2de094(0xd,0xc)]['postMessage'](_0x4161ab);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x51fa8f={};_0x51fa8f['type']='update',this['worker']['postMessage'](_0x51fa8f);},'clear':()=>{const _0x1cf827={};function _0x528b76(_0x421820,_0x384802){return _0x3c30e6(_0x421820- -0x5c1,_0x384802);}function _0x499c58(_0x22841b,_0xa24595){return _0x3c30e6(_0x22841b- -0x523,_0xa24595);}_0x1cf827['type']=_0x499c58(-0x21f,-0x2a3),this[_0x528b76(-0x23d,-0x28b)]['postMessage'](_0x1cf827);}},this[_0x729035(0x2c0,0x2c5)]['init'](this['options']);}}mars3d__namespace[_0x38f528(0x2cb,0x348)]['register'](_0x3fc01e(-0x255,-0x208),CanvasWindLayer),mars3d__namespace['layer'][_0x3fc01e(-0x219,-0x18a)]=CanvasWindLayer,mars3d__namespace[_0x3fc01e(-0x1fe,-0x1a8)]=CanvasWindField,mars3d__namespace[_0x3fc01e(-0x17b,-0x1bf)][_0x3fc01e(-0x223,-0x207)]('mars3d-wind插件注册成功\x20\x20\x20\x20\x20版本:'+version+'\x20\x20\x20\x20编译日期:'+buildTime),mars3d__namespace['WindUtil']=WindUtil,exports[_0x38f528(0x260,0x20e)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x3fc01e(-0x203,-0x21d)]=WindLayer,exports[_0x3fc01e(-0x218,-0x194)]=WindUtil;const _0x39118d={};_0x39118d['value']=!![],Object['defineProperty'](exports,'__esModule',_0x39118d);
14
+ 'use strict';(function(_0x60b573,_0x23e3ab){const _0x3784e2=_0x60b573();function _0x4aa64d(_0x5e953d,_0x298d3){return _0x31c5(_0x5e953d-0x17a,_0x298d3);}function _0x14ab17(_0x3ab7f6,_0x2b07f0){return _0x31c5(_0x2b07f0- -0x80,_0x3ab7f6);}while(!![]){try{const _0x364d66=parseInt(_0x4aa64d(0x2a2,0x2d0))/0x1+-parseInt(_0x4aa64d(0x351,0x2d6))/0x2+-parseInt(_0x14ab17(0xd6,0xdb))/0x3*(-parseInt(_0x4aa64d(0x2fe,0x349))/0x4)+parseInt(_0x4aa64d(0x311,0x349))/0x5*(-parseInt(_0x14ab17(0xc4,0x99))/0x6)+-parseInt(_0x14ab17(0xe8,0x144))/0x7+parseInt(_0x4aa64d(0x356,0x2dc))/0x8+-parseInt(_0x14ab17(0x10c,0x151))/0x9*(-parseInt(_0x4aa64d(0x25f,0x253))/0xa);if(_0x364d66===_0x23e3ab)break;else _0x3784e2['push'](_0x3784e2['shift']());}catch(_0x20e6be){_0x3784e2['push'](_0x3784e2['shift']());}}}(_0x2731,0xcafe9));function _interopNamespace(_0xe2141e){function _0x5dc5ce(_0x495ca1,_0x3e5175){return _0x31c5(_0x495ca1-0x3dc,_0x3e5175);}if(_0xe2141e&&_0xe2141e['__esModule'])return _0xe2141e;var _0x2c9867=Object[_0x423120(0x489,0x486)](null);_0xe2141e&&Object['keys'](_0xe2141e)['forEach'](function(_0x4a48d3){function _0x44290d(_0x5a7597,_0x3834ba){return _0x423120(_0x5a7597- -0x164,_0x3834ba);}if(_0x4a48d3!==_0x44290d(0x3bb,0x325)){var _0x378caa=Object['getOwnPropertyDescriptor'](_0xe2141e,_0x4a48d3);Object['defineProperty'](_0x2c9867,_0x4a48d3,_0x378caa['get']?_0x378caa:{'enumerable':!![],'get':function(){return _0xe2141e[_0x4a48d3];}});}});function _0x423120(_0x34fe05,_0x49021c){return _0x31c5(_0x34fe05-0x344,_0x49021c);}return _0x2c9867[_0x423120(0x51f,0x597)]=_0xe2141e,_0x2c9867;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x35cf84(0x427,0x3b8)];function getU(_0x351472,_0x41517b){const _0x51201b=_0x351472*Math[_0x557d79(0x22c,0x215)](Cesium$2[_0x557d79(0x26d,0x2a3)]['toRadians'](_0x41517b));function _0x557d79(_0x193fec,_0xbbb71c){return _0x35cf84(_0x193fec,_0xbbb71c- -0xed);}function _0x45566c(_0x335a1d,_0x1f87f6){return _0x35cf84(_0x1f87f6,_0x335a1d- -0x4a4);}return _0x51201b;}function getV(_0x1fcef0,_0x3798b1){function _0x48c339(_0x253645,_0x5438f6){return _0x35cf84(_0x253645,_0x5438f6- -0x504);}const _0x495074=_0x1fcef0*Math[_0x48c339(-0x276,-0x21f)](Cesium$2['Math']['toRadians'](_0x3798b1));return _0x495074;}function getSpeed(_0x2f8aa8,_0x149b80){function _0x55e022(_0x9855a9,_0x353d81){return _0x35cf84(_0x9855a9,_0x353d81- -0xb2);}const _0x4cb2c4=Math[_0x4beebd(0x435,0x40e)](Math[_0x55e022(0x196,0x20e)](_0x2f8aa8,0x2)+Math['pow'](_0x149b80,0x2));function _0x4beebd(_0x555f70,_0x1ad349){return _0x35cf84(_0x1ad349,_0x555f70-0x140);}return _0x4cb2c4;}function getDirection(_0x52f41e,_0x487641){function _0x564f00(_0x22ddb2,_0x154a5e){return _0x35cf84(_0x22ddb2,_0x154a5e- -0x2ce);}let _0x2736bb=Cesium$2['Math'][_0x3491bd(0x1d4,0x1d5)](Math[_0x564f00(0xde,0x5b)](_0x487641,_0x52f41e));function _0x3491bd(_0x53ae8e,_0x18c081){return _0x35cf84(_0x53ae8e,_0x18c081- -0x1d5);}return _0x2736bb+=_0x2736bb<0x0?0x168:0x0,_0x2736bb;}const _0x580647={};_0x580647['__proto__']=null,_0x580647[_0xdfe442(0x5f,-0x21)]=getU,_0x580647[_0xdfe442(-0xf,-0xa6)]=getV;function _0x35cf84(_0x1c7fa3,_0x30a9a4){return _0x31c5(_0x30a9a4-0x1e2,_0x1c7fa3);}_0x580647['getSpeed']=getSpeed,_0x580647[_0x35cf84(0x365,0x380)]=getDirection;var WindUtil=_0x580647;const version='3.11.8',buildTime=_0x35cf84(0x2af,0x301);var updatePositionShader=_0x35cf84(0x332,0x2ef),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=_0xdfe442(0xa3,0xe8),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=_0x35cf84(0x385,0x306);const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x35cf84(0x35a,0x3b8)];class ShaderManager{static[_0x35cf84(0x2e6,0x318)](){const _0x2b11a9={};return _0x2b11a9['sources']=[calculateSpeedShader],new ShaderSource$1(_0x2b11a9);}static['getUpdatePositionShader'](){const _0x494e86={};return _0x494e86['sources']=[updatePositionShader],new ShaderSource$1(_0x494e86);}static['getSegmentDrawVertexShader'](){const _0xa9d3c={};return _0xa9d3c['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0xa9d3c);}static[_0x35cf84(0x427,0x3c9)](){const _0x791ffc={};return _0x791ffc['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x791ffc);}static['getPostProcessingPositionShader'](){const _0x460d52={};return _0x460d52['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x460d52);}}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(_0x5e415f){this['commandType']=_0x5e415f[_0x5f34e0(-0x76,-0x6d)],this[_0x3232fc(-0x102,-0xb9)]=_0x5e415f[_0x3232fc(-0x102,-0x18e)],this['attributeLocations']=_0x5e415f[_0x5f34e0(0x47,-0xb)],this['primitiveType']=_0x5e415f['primitiveType'],this['uniformMap']=_0x5e415f[_0x3232fc(-0xe6,-0x145)]||{},this['vertexShaderSource']=_0x5e415f['vertexShaderSource'],this['fragmentShaderSource']=_0x5e415f['fragmentShaderSource'];function _0x5f34e0(_0x58c9ea,_0x970003){return _0x35cf84(_0x58c9ea,_0x970003- -0x3d7);}this[_0x3232fc(-0x147,-0x1dc)]=_0x5e415f['rawRenderState'],this['framebuffer']=_0x5e415f['framebuffer'],this[_0x3232fc(-0x120,-0x134)]=_0x5e415f[_0x5f34e0(-0xe3,-0x78)],this[_0x5f34e0(-0xdb,-0xdb)]=_0x5e415f[_0x5f34e0(-0xa0,-0xdb)]??![],this[_0x3232fc(-0x1c1,-0x17d)]=_0x5e415f['preExecute'],this[_0x3232fc(-0x1c2,-0x1f7)]=!![],this[_0x3232fc(-0x17a,-0x1db)]=undefined;function _0x3232fc(_0x132abf,_0x5407aa){return _0x35cf84(_0x5407aa,_0x132abf- -0x47f);}this[_0x5f34e0(-0xb7,-0x112)]=undefined,this[_0x5f34e0(0x65,-0x12)]=_0x5e415f[_0x5f34e0(-0xa2,-0x12)]??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1[_0x3232fc(-0xce,-0x10a)]}));}[_0xdfe442(0xf2,0x152)](_0x18d2ef){function _0x4becce(_0x3e86c4,_0x29e33f){return _0xdfe442(_0x29e33f- -0x1cf,_0x3e86c4);}function _0x511612(_0x4f4435,_0x5418e4){return _0x35cf84(_0x5418e4,_0x4f4435- -0x476);}if(this[_0x511612(-0x10c,-0xed)]==='Draw'){const _0x417b95={};_0x417b95['context']=_0x18d2ef,_0x417b95['geometry']=this['geometry'],_0x417b95['attributeLocations']=this['attributeLocations'],_0x417b95['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x130643=VertexArray$1[_0x511612(-0x152,-0x1d8)](_0x417b95),_0x9e0c3b={};_0x9e0c3b['context']=_0x18d2ef,_0x9e0c3b[_0x511612(-0x11a,-0xaa)]=this[_0x511612(-0x11a,-0xdd)],_0x9e0c3b['fragmentShaderSource']=this['fragmentShaderSource'],_0x9e0c3b['attributeLocations']=this[_0x4becce(-0x6a,-0xdb)];const _0x507900=ShaderProgram[_0x4becce(-0x259,-0x1cf)](_0x9e0c3b),_0x3cfac9=RenderState['fromCache'](this[_0x511612(-0x13e,-0xb6)]),_0x1cb8dd={};return _0x1cb8dd['owner']=this,_0x1cb8dd[_0x511612(-0x16a,-0x1e9)]=_0x130643,_0x1cb8dd[_0x511612(-0xc9,-0xe8)]=this['primitiveType'],_0x1cb8dd[_0x4becce(-0x152,-0x161)]=Matrix4['IDENTITY'],_0x1cb8dd[_0x4becce(-0xf0,-0x13b)]=_0x3cfac9,_0x1cb8dd[_0x511612(-0xb2,-0x12b)]=_0x507900,_0x1cb8dd['framebuffer']=this['framebuffer'],_0x1cb8dd['uniformMap']=this[_0x4becce(-0xb8,-0x10e)],_0x1cb8dd['pass']=Pass$1[_0x511612(-0xc5,-0x41)],new DrawCommand(_0x1cb8dd);}else{if(this[_0x511612(-0x10c,-0xa7)]==='Compute'){const _0xc60268={};return _0xc60268[_0x4becce(-0x1e3,-0x199)]=this,_0xc60268['fragmentShaderSource']=this['fragmentShaderSource'],_0xc60268['uniformMap']=this['uniformMap'],_0xc60268[_0x4becce(-0x1df,-0x148)]=this[_0x4becce(-0x173,-0x148)],_0xc60268['persists']=!![],new ComputeCommand(_0xc60268);}else throw new Error(_0x511612(-0x1ab,-0x236));}}['setGeometry'](_0x4f0e8d,_0x1dec64){function _0x55c262(_0x5cd984,_0x2d034f){return _0x35cf84(_0x5cd984,_0x2d034f- -0x460);}this[_0x55c262(-0x124,-0xe3)]=_0x1dec64;function _0x372370(_0x5b2091,_0x34aedd){return _0x35cf84(_0x34aedd,_0x5b2091- -0x1db);}defined(this['commandToExecute'])&&(this[_0x372370(0x12a,0x195)][_0x372370(0x131,0x15d)]=VertexArray$1[_0x55c262(-0xb9,-0x13c)]({'context':_0x4f0e8d,'geometry':this[_0x55c262(-0x149,-0xe3)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x55c262(-0x1e3,-0x161)]}));}[_0xdfe442(0x76,0xae)](_0x4f19cf){if(!this['isDynamic']())return;if(!this[_0x141d9c(0x224,0x1a8)]||!defined(_0x4f19cf))return;function _0x82c944(_0x3b07e7,_0x54b36a){return _0xdfe442(_0x3b07e7-0x37e,_0x54b36a);}!defined(this[_0x141d9c(0x1e0,0x1f0)])&&(this['commandToExecute']=this['createCommand'](_0x4f19cf[_0x82c944(0x438,0x44b)]));defined(this[_0x82c944(0x364,0x2fa)])&&this['preExecute']();if(!_0x4f19cf['commandList']){console[_0x141d9c(0x22a,0x23a)]('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x4f19cf['commandList']['push'](this['clearCommand']);function _0x141d9c(_0x5ca5db,_0x437ad6){return _0xdfe442(_0x437ad6-0x1c3,_0x5ca5db);}defined(this['commandToExecute'])&&_0x4f19cf['commandList']['push'](this['commandToExecute']);}[_0xdfe442(0x2f,0x68)](){return![];}[_0x35cf84(0x3ab,0x369)](){function _0x5a2847(_0x2faf26,_0x3eeeda){return _0x35cf84(_0x3eeeda,_0x2faf26- -0x144);}function _0x3abd84(_0x184289,_0x3cbd20){return _0xdfe442(_0x3cbd20-0x124,_0x184289);}if(defined(this['commandToExecute'])){var _0x197d5d;(_0x197d5d=this[_0x5a2847(0x1c1,0x1e5)][_0x5a2847(0x280,0x1ee)])===null||_0x197d5d===void 0x0||_0x197d5d['destroy'](),this['commandToExecute'][_0x3abd84(0x1f5,0x210)]=undefined;}return destroyObject(this);}}function deepMerge(_0xf249f5,_0x2967ef){function _0x315ade(_0x140151,_0x6ff773){return _0xdfe442(_0x140151-0x10b,_0x6ff773);}if(!_0xf249f5)return _0x2967ef;if(!_0x2967ef)return _0xf249f5;const _0x41ce6e={..._0x2967ef},_0x55d297=_0x41ce6e;for(const _0x239659 in _0xf249f5){if(Object[_0x315ade(0x17c,0x129)][_0x33a22f(0x3fe,0x485)]['call'](_0xf249f5,_0x239659)){const _0x2f8e8d=_0xf249f5[_0x239659],_0x2f73ce=_0x2967ef[_0x239659];if(Array[_0x33a22f(0x4d1,0x4f6)](_0x2f8e8d)){_0x55d297[_0x239659]=_0x2f8e8d['slice']();continue;}if(_0x2f8e8d&&typeof _0x2f8e8d==='object'){_0x55d297[_0x239659]=deepMerge(_0x2f8e8d,_0x2f73ce||{});continue;}_0x2f8e8d!==undefined&&(_0x55d297[_0x239659]=_0x2f8e8d);}}function _0x33a22f(_0xfbabc1,_0xae7fd2){return _0xdfe442(_0xfbabc1-0x3ea,_0xae7fd2);}return _0x55d297;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x499a7b,_0x3cc3de,_0x5214d3,_0x476904,_0x98ee6c){this['context']=_0x499a7b,this['options']=_0x5214d3,this[_0x5bcae4(0x454,0x41f)]=_0x476904,this[_0x549799(-0x247,-0x2b2)]=_0x3cc3de,this[_0x549799(-0x295,-0x222)]=0x3c,this['frameRateAdjustment']=0x1;const _0x1b96a1={};function _0x549799(_0x3be3ff,_0x5984aa){return _0xdfe442(_0x5984aa- -0x2e5,_0x3be3ff);}function _0x5bcae4(_0x2ff77d,_0x729dbc){return _0x35cf84(_0x2ff77d,_0x729dbc-0x178);}_0x1b96a1['scene']=_0x98ee6c,_0x1b96a1[_0x549799(-0x1dd,-0x259)]=0x1,_0x1b96a1['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x1b96a1),this['initFrameRate'](),this[_0x549799(-0x2bd,-0x235)](),this['createParticlesTextures'](),this[_0x5bcae4(0x455,0x4c2)]();}[_0xdfe442(0xcb,0x13c)](){const _0x5d4f76=()=>{function _0x53d487(_0x568446,_0x410ce1){return _0x31c5(_0x410ce1-0x2f1,_0x568446);}function _0x3c1000(_0x4682c8,_0x1394be){return _0x31c5(_0x4682c8- -0x19c,_0x1394be);}this[_0x3c1000(-0x3f,-0x47)]['lastFramesPerSecond']>0x14&&(this[_0x53d487(0x53a,0x4aa)]=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math[_0x53d487(0x497,0x426)](this['frameRate'],0x1));};function _0x2ebd7f(_0x144c34,_0x1a6f87){return _0xdfe442(_0x144c34-0x2f7,_0x1a6f87);}_0x5d4f76();const _0x53c271=setInterval(_0x5d4f76,0x3e8),_0xf6bac3=this['destroy'][_0x2ebd7f(0x312,0x369)](this);this['destroy']=()=>{clearInterval(_0x53c271),_0xf6bac3();};}['createWindTextures'](){function _0x5c78b7(_0x2b8324,_0x113bca){return _0xdfe442(_0x2b8324-0x43,_0x113bca);}function _0xea6a48(_0x301ccc,_0x5690ee){return _0x35cf84(_0x301ccc,_0x5690ee- -0x424);}const _0x26c5c7={};_0x26c5c7['minificationFilter']=TextureMinificationFilter$1['LINEAR'],_0x26c5c7[_0x5c78b7(0x9d,0x107)]=TextureMagnificationFilter$1['LINEAR'];const _0x22cdb1={'context':this['context'],'width':this[_0x5c78b7(0x76,0x94)][_0xea6a48(-0x1d1,-0x176)],'height':this[_0xea6a48(-0x88,-0x119)][_0xea6a48(-0x11a,-0xf8)],'pixelFormat':PixelFormat$1[_0x5c78b7(0x1e,0x48)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x26c5c7)};this['windTextures']={'U':new Texture$1({..._0x22cdb1,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x22cdb1,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){const _0x28a9d8={};_0x28a9d8['minificationFilter']=TextureMinificationFilter$1['NEAREST'],_0x28a9d8['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];const _0x3f0f08={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this[_0x2def5b(-0x11d,-0xff)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x2def5b(-0xb9,-0x101)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options'][_0x2def5b(-0x114,-0xb7)]*this[_0x2def5b(-0x11d,-0x14c)][_0x2def5b(-0x114,-0x85)]*0x4)[_0x2def5b(-0x177,-0x1bd)](0x0)},'sampler':new Sampler$1(_0x28a9d8)};function _0x7bc4ec(_0x1d8354,_0x1b8c03){return _0xdfe442(_0x1b8c03-0x2c,_0x1d8354);}function _0x2def5b(_0x11ea41,_0x35dc10){return _0x35cf84(_0x35dc10,_0x11ea41- -0x426);}this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x3f0f08),'currentParticlesPosition':new Texture$1(_0x3f0f08),'nextParticlesPosition':new Texture$1(_0x3f0f08),'postProcessingPosition':new Texture$1(_0x3f0f08),'particlesSpeed':new Texture$1(_0x3f0f08)};}['destroyParticlesTextures'](){function _0xd431e8(_0x5eac0d,_0x3d8c6f){return _0x35cf84(_0x3d8c6f,_0x5eac0d-0x10b);}function _0x1e42f4(_0x3f64b8,_0x2401fa){return _0xdfe442(_0x3f64b8- -0xc9,_0x2401fa);}Object[_0x1e42f4(-0xf5,-0x6f)](this[_0x1e42f4(-0x67,-0x52)])['forEach'](_0x5850ef=>_0x5850ef['destroy']());}[_0xdfe442(0x72,0xb)](){function _0x5acc0a(_0x17f824,_0x321fbf){return _0xdfe442(_0x17f824-0x4b5,_0x321fbf);}function _0x327844(_0x5806d6,_0x24fbef){return _0xdfe442(_0x5806d6-0x247,_0x24fbef);}this[_0x327844(0x31d,0x319)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0x5acc0a(0x54d,0x4da)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this['windData']['u'][_0x5acc0a(0x548,0x4ea)],this[_0x327844(0x27a,0x27a)]['u'][_0x5acc0a(0x4f4,0x49a)]),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this['windData']['v']['max']),'speedRange':()=>new Cartesian2$1(this[_0x5acc0a(0x4e8,0x560)]['speed']['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures'][_0x5acc0a(0x5a3,0x55e)],'speedScaleFactor':()=>{function _0x32e16b(_0x4e58af,_0x5b4e38){return _0x327844(_0x4e58af- -0x204,_0x5b4e38);}return(this['viewerParameters']['pixelSize']+0x32)*this['options'][_0x32e16b(0xc9,0x8f)];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this[_0x327844(0x27a,0x290)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds']['west'],this['windData']['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData'][_0x327844(0x28a,0x215)][_0x5acc0a(0x50e,0x4a6)],this[_0x327844(0x27a,0x286)]['bounds'][_0x5acc0a(0x57c,0x567)])},'fragmentShaderSource':ShaderManager[_0x5acc0a(0x4f5,0x467)](),'outputTexture':this[_0x327844(0x2a9,0x227)]['particlesSpeed'],'preExecute':()=>{function _0x41af95(_0x40578e,_0x4919c4){return _0x327844(_0x40578e- -0x40e,_0x4919c4);}const _0x424a06=this[_0x41af95(-0x165,-0x132)][_0x41af95(-0x1a7,-0x141)];this[_0x15699f(0x2fd,0x28e)]['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'],this[_0x15699f(0x2a4,0x28e)]['currentParticlesPosition']=this['particlesTextures'][_0x41af95(-0x120,-0xc6)],this['particlesTextures'][_0x41af95(-0x120,-0x12b)]=_0x424a06;function _0x15699f(_0x2527cb,_0x3068d5){return _0x327844(_0x3068d5- -0x1b,_0x2527cb);}this[_0x15699f(0x285,0x302)]['calculateSpeed'][_0x41af95(-0x19a,-0x1ee)]&&(this['primitives'][_0x15699f(0x2fe,0x277)]['commandToExecute'][_0x41af95(-0x140,-0xcd)]=this[_0x15699f(0x24a,0x28e)][_0x41af95(-0x13a,-0x13f)]);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':_0x327844(0x250,0x2a3),'uniformMap':{'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x327844(0x2d4,0x363)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this[_0x327844(0x2a9,0x336)]['nextParticlesPosition'],'preExecute':()=>{function _0x16bf9f(_0xe6cae0,_0x1a764c){return _0x5acc0a(_0xe6cae0- -0x577,_0x1a764c);}function _0x2c1df5(_0x4fe775,_0xb18ad1){return _0x5acc0a(_0xb18ad1- -0x6c2,_0x4fe775);}this[_0x16bf9f(0x14,-0x1f)][_0x16bf9f(-0x52,-0x65)]['commandToExecute']&&(this['primitives'][_0x2c1df5(-0x189,-0x19d)]['commandToExecute'][_0x2c1df5(-0x1d0,-0x186)]=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this[_0x5acc0a(0x4e6,0x4db)]['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x327844(0x24b,0x2bc)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters'][_0x5acc0a(0x554,0x5a3)],'latRange':()=>this[_0x327844(0x216,0x1b5)][_0x5acc0a(0x55f,0x523)],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x327844(0x28a,0x221)][_0x5acc0a(0x4b4,0x44a)],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this['windData']['bounds']['north']),'randomCoefficient':function(){function _0x4cc8f1(_0x362808,_0x5e44bb){return _0x327844(_0x362808- -0x221,_0x5e44bb);}return Math[_0x4cc8f1(0x102,0x17d)]();},'dropRate':()=>this['options'][_0x5acc0a(0x528,0x4d8)],'dropRateBump':()=>this[_0x327844(0x278,0x25e)][_0x5acc0a(0x4ff,0x495)],'useViewerBounds':()=>this[_0x5acc0a(0x4e6,0x50b)][_0x5acc0a(0x536,0x5b5)]},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures'][_0x5acc0a(0x55c,0x5b7)],'preExecute':()=>{function _0x5855e9(_0x11e23c,_0x5c561c){return _0x327844(_0x11e23c- -0x139,_0x5c561c);}function _0x2f7bb0(_0x1fe902,_0x1d22e4){return _0x5acc0a(_0x1d22e4- -0x27b,_0x1fe902);}this['primitives'][_0x5855e9(0x1b5,0x1b3)]['commandToExecute']&&(this['primitives'][_0x2f7bb0(0x259,0x2e1)]['commandToExecute'][_0x2f7bb0(0x28a,0x2c1)]=this[_0x2f7bb0(0x299,0x29c)][_0x2f7bb0(0x274,0x2e1)]);},'isDynamic':()=>this['options'][_0x5acc0a(0x5a0,0x594)]})};}['reCreateWindTextures'](){this['windTextures']['U']['destroy'](),this['windTextures']['V']['destroy'](),this['createWindTextures']();}['updateWindData'](_0x4a7692){this['windData']=_0x4a7692,this['reCreateWindTextures']();}['updateOptions'](_0x4f8ec9){const _0x4af274=_0x4f8ec9['flipY']!==undefined&&_0x4f8ec9['flipY']!==this[_0xf26964(-0x9a,-0xd1)][_0x115295(-0x23e,-0x203)];this['options']=deepMerge(_0x4f8ec9,this['options']);function _0x115295(_0x2d4606,_0x297850){return _0xdfe442(_0x297850- -0x21b,_0x2d4606);}function _0xf26964(_0x1ab6ee,_0x4330fd){return _0xdfe442(_0x1ab6ee- -0xcb,_0x4330fd);}_0x4af274&&this[_0x115295(-0x211,-0x232)]();}[_0x35cf84(0x249,0x2c6)](_0xb14848){const {array:_0x46c966}=_0xb14848;function _0x14e588(_0x4e10b4,_0x12a31b){return _0xdfe442(_0x12a31b- -0x80,_0x4e10b4);}let {min:_0x16e81c,max:_0xb11920}=_0xb14848;const _0x38c7b5=new Float32Array(_0x46c966[_0x14e588(0x53,0x3d)]);function _0x43f46e(_0x5a938b,_0x4013ac){return _0x35cf84(_0x4013ac,_0x5a938b- -0x22c);}_0x16e81c===undefined&&(console['warn'](_0x14e588(0x6a,-0x1d)),_0x16e81c=Math['min'](..._0x46c966));_0xb11920===undefined&&(console[_0x14e588(-0x5b,-0x9)]('max\x20is\x20undefined,\x20calculate\x20max'),_0xb11920=Math[_0x43f46e(0xeb,0xaa)](..._0x46c966));const _0x4a7541=Math['max'](Math['abs'](_0x16e81c),Math['abs'](_0xb11920));for(let _0xe1ee17=0x0;_0xe1ee17<_0x46c966[_0x14e588(0x63,0x3d)];_0xe1ee17++){const _0x1317b1=_0x46c966[_0xe1ee17]/_0x4a7541;_0x38c7b5[_0xe1ee17]=_0x1317b1;}return _0x38c7b5;}[_0x35cf84(0x3a8,0x369)](){Object['values'](this[_0x20e297(0x1e1,0x193)])[_0x2bd2e8(0x22d,0x1bd)](_0x4a8b95=>_0x4a8b95[_0x2bd2e8(0x1e0,0x215)]()),Object['values'](this[_0x20e297(0x167,0x15d)])[_0x20e297(0x17f,0x134)](_0x4ad79b=>_0x4ad79b['destroy']()),Object['values'](this[_0x2bd2e8(0x250,0x25a)])[_0x20e297(0x18c,0x134)](_0x5dc58b=>_0x5dc58b['destroy']());function _0x20e297(_0xe5189b,_0x6de986){return _0x35cf84(_0xe5189b,_0x6de986- -0x1dd);}function _0x2bd2e8(_0x4d18df,_0x48f3d3){return _0xdfe442(_0x48f3d3-0x184,_0x4d18df);}this[_0x2bd2e8(0x17d,0x1eb)]['destroy']();}}function _0x31c5(_0x262a2a,_0x5a26e6){_0x262a2a=_0x262a2a-0xc0;const _0x273158=_0x2731();let _0x31c500=_0x273158[_0x262a2a];return _0x31c500;}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(_0x45cabd,_0xf34031,_0x13b2e7,_0x58189a){this['context']=_0x45cabd;function _0x3fc14f(_0x4c7dd4,_0x14b0d7){return _0xdfe442(_0x14b0d7-0x435,_0x4c7dd4);}this[_0x190bb8(0x23c,0x219)]=_0xf34031;function _0x190bb8(_0x26728a,_0x57798b){return _0x35cf84(_0x57798b,_0x26728a- -0xcd);}this[_0x3fc14f(0x3f0,0x404)]=_0x13b2e7,this['computing']=_0x58189a,(typeof this['options'][_0x3fc14f(0x474,0x46f)]!=='number'||this['options'][_0x3fc14f(0x46c,0x46f)]<=0x0)&&(console[_0x190bb8(0x252,0x245)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x190bb8(0x23c,0x20a)]['particlesTextureSize']=0x100),this[_0x190bb8(0x216,0x217)]=this[_0x3fc14f(0x451,0x44a)](),this[_0x3fc14f(0x475,0x4a1)]=this['createRenderingTextures'](),this['framebuffers']=this['createRenderingFramebuffers'](),this[_0x3fc14f(0x4eb,0x50b)]=this['createPrimitives']();}[_0x35cf84(0x3be,0x386)](){const _0x4a1ea3={};_0x4a1ea3['context']=this['context'];function _0x30b56e(_0x2a1b31,_0x204253){return _0x35cf84(_0x2a1b31,_0x204253- -0x25d);}_0x4a1ea3[_0x30b56e(-0xe,0x51)]=this[_0x30b56e(0xc8,0x135)][_0x30b56e(-0x3,0x77)],_0x4a1ea3[_0x5a7d4b(0x376,0x312)]=this['context'][_0x30b56e(0x29,0x5e)],_0x4a1ea3[_0x5a7d4b(0x418,0x403)]=PixelFormat[_0x5a7d4b(0x30d,0x34c)],_0x4a1ea3['pixelDatatype']=PixelDatatype[_0x5a7d4b(0x3c4,0x3bd)];const _0x59d9b4=_0x4a1ea3,_0x1e2f5b={};_0x1e2f5b[_0x5a7d4b(0x3dc,0x418)]=this[_0x30b56e(0x12e,0x135)];function _0x5a7d4b(_0xd22bb6,_0x36432c){return _0xdfe442(_0xd22bb6-0x322,_0x36432c);}_0x1e2f5b[_0x30b56e(0x23,0x51)]=this[_0x30b56e(0xea,0x135)]['drawingBufferWidth'],_0x1e2f5b[_0x30b56e(0xed,0xcf)]=this['context']['drawingBufferHeight'],_0x1e2f5b['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x1e2f5b[_0x30b56e(0x77,0x83)]=PixelDatatype[_0x30b56e(0x7c,0xab)];const _0x52080f=_0x1e2f5b;return{'segmentsColor':new Texture(_0x59d9b4),'segmentsDepth':new Texture(_0x52080f)};}[_0xdfe442(0xde,0x75)](){const _0x562b31={};_0x562b31[_0x351ad8(-0x7c,-0xb9)]=this['context'];function _0x351ad8(_0x1aa898,_0x4c9010){return _0xdfe442(_0x4c9010- -0x173,_0x1aa898);}_0x562b31['colorTextures']=[this[_0x351ad8(-0x127,-0x107)][_0x351ad8(-0x149,-0xf6)]],_0x562b31['depthTexture']=this[_0x8a5c94(0x3a2,0x323)][_0x351ad8(-0x1ae,-0x1a0)];function _0x8a5c94(_0x8c36ff,_0x3dc86e){return _0xdfe442(_0x3dc86e-0x2b7,_0x8c36ff);}return{'segments':new Framebuffer(_0x562b31)};}['destoryRenderingFramebuffers'](){function _0x8ded18(_0x3f0ae3,_0x325d89){return _0x35cf84(_0x325d89,_0x3f0ae3- -0x2f7);}Object['values'](this['framebuffers'])[_0x8ded18(0x1a,0x8c)](_0x5650c7=>{_0x5650c7['destroy']();});}['createColorTableTexture'](){const _0x4ba021=new Float32Array(this['options'][_0x3fa4a4(0x43d,0x3f5)]['flatMap'](_0x279550=>{function _0x117c83(_0x52a20b,_0x465ba3){return _0x3fa4a4(_0x52a20b- -0x1d5,_0x465ba3);}const _0x1804d7=Color$1[_0x45ae22(-0x8,-0x98)](_0x279550);function _0x45ae22(_0x2146a4,_0x37843a){return _0x3fa4a4(_0x37843a- -0x46e,_0x2146a4);}return[_0x1804d7[_0x117c83(0x23f,0x2c2)],_0x1804d7[_0x117c83(0x2e7,0x344)],_0x1804d7['blue'],_0x1804d7[_0x45ae22(-0x13,-0x4a)]];})),_0x11eb74={};_0x11eb74['minificationFilter']=TextureMinificationFilter[_0x3af235(-0x20,-0x92)],_0x11eb74[_0x3af235(0x1f,-0x6)]=TextureMagnificationFilter[_0x3af235(0x2,-0x92)],_0x11eb74[_0x3af235(0x1d,0x7d)]=TextureWrap[_0x3fa4a4(0x4bb,0x51c)];function _0x3af235(_0x4f9832,_0x10c7d1){return _0xdfe442(_0x10c7d1- -0x60,_0x4f9832);}function _0x3fa4a4(_0x14a177,_0x237b3b){return _0xdfe442(_0x14a177-0x406,_0x237b3b);}return _0x11eb74['wrapT']=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this['context'],'width':this[_0x3fa4a4(0x437,0x3a1)][_0x3fa4a4(0x43d,0x3e0)]['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x11eb74),'source':{'width':this[_0x3af235(-0x5a,-0x2f)]['colors'][_0x3fa4a4(0x4c3,0x4f2)],'height':0x1,'arrayBufferView':_0x4ba021}});}['createSegmentsGeometry'](){const _0x5c85c3=0x4,_0x28fb57=this[_0x5c34fa(0x425,0x4aa)]['particlesTextureSize'];let _0x118ef7=[];for(let _0xebc696=0x0;_0xebc696<_0x28fb57;_0xebc696++){for(let _0xfd9c3e=0x0;_0xfd9c3e<_0x28fb57;_0xfd9c3e++){for(let _0x5397b8=0x0;_0x5397b8<_0x5c85c3;_0x5397b8++){_0x118ef7['push'](_0xebc696/_0x28fb57),_0x118ef7[_0x43d333(-0x13a,-0x1c7)](_0xfd9c3e/_0x28fb57);}}}_0x118ef7=new Float32Array(_0x118ef7);const _0x560c0b=this[_0x5c34fa(0x465,0x4aa)]['particlesTextureSize']**0x2;let _0x9da97=[];for(let _0x4e639e=0x0;_0x4e639e<_0x560c0b;_0x4e639e++){_0x9da97['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x9da97=new Float32Array(_0x9da97);let _0x38a9e9=[];for(let _0x5288f5=0x0,_0x3a9104=0x0;_0x5288f5<_0x560c0b;_0x5288f5++){_0x38a9e9['push'](_0x3a9104+0x0,_0x3a9104+0x1,_0x3a9104+0x2,_0x3a9104+0x2,_0x3a9104+0x1,_0x3a9104+0x3),_0x3a9104+=_0x5c85c3;}_0x38a9e9=new Uint32Array(_0x38a9e9);function _0x43d333(_0x10c03c,_0x3cbfa2){return _0x35cf84(_0x10c03c,_0x3cbfa2- -0x4e5);}const _0x1a0e96={};function _0x5c34fa(_0x4ee1c2,_0x196b72){return _0xdfe442(_0x196b72-0x479,_0x4ee1c2);}_0x1a0e96[_0x43d333(-0x1d2,-0x14d)]=ComponentDatatype['FLOAT'],_0x1a0e96[_0x43d333(-0xbf,-0x147)]=0x2,_0x1a0e96['values']=_0x118ef7;const _0x22ead3={};_0x22ead3[_0x5c34fa(0x5ce,0x539)]=ComponentDatatype['FLOAT'],_0x22ead3['componentsPerAttribute']=0x3,_0x22ead3['values']=_0x9da97;const _0x141a2d=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x1a0e96),'normal':new GeometryAttribute(_0x22ead3)}),'indices':_0x38a9e9});return _0x141a2d;}['createRawRenderState'](_0x31648e){function _0x47aace(_0x5bb882,_0x5c8a33){return _0xdfe442(_0x5bb882-0x4d1,_0x5c8a33);}const _0x122b26={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x31648e};return Appearance[_0x47aace(0x554,0x5c6)](!![],![],_0x122b26);}[_0xdfe442(0x3e,0xca)](){const _0x1f3542={};_0x1f3542['st']=0x0,_0x1f3542['normal']=0x1;const _0x2cfce4={};_0x2cfce4[_0xf4ef6e(0x4ef,0x465)]=!![];const _0x22cfe4={};_0x22cfe4['enabled']=!![],_0x22cfe4['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x22cfe4['blendFuncSource']=WebGLRenderingContext[_0xf4ef6e(0x487,0x4d1)],_0x22cfe4[_0xf4ef6e(0x48f,0x403)]=WebGLRenderingContext[_0xf4ef6e(0x479,0x4a7)];const _0xca3d6d={};_0xca3d6d['viewport']=undefined,_0xca3d6d['depthTest']=_0x2cfce4,_0xca3d6d[_0xf4ef6e(0x4cd,0x4fc)]=!![];function _0x5d8fba(_0x5e9269,_0x27a4de){return _0x35cf84(_0x5e9269,_0x27a4de- -0x48c);}function _0xf4ef6e(_0x3279cf,_0x1fd89e){return _0x35cf84(_0x1fd89e,_0x3279cf-0x1ba);}_0xca3d6d['blending']=_0x22cfe4;const _0x1cdebd=new CustomPrimitive({'commandType':_0x5d8fba(-0x12b,-0x14a),'attributeLocations':_0x1f3542,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this[_0x5d8fba(-0xc4,-0x11b)][_0xf4ef6e(0x4f4,0x523)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing'][_0x5d8fba(-0xc3,-0x152)]['currentParticlesPosition'],'postProcessingPosition':()=>this[_0x5d8fba(-0xc7,-0x11b)]['particlesTextures'][_0x5d8fba(-0x166,-0x10d)],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x5d8fba(-0x122,-0x127)],'frameRateAdjustment':()=>this[_0xf4ef6e(0x52b,0x5af)][_0xf4ef6e(0x53b,0x56e)],'colorTable':()=>this['colorTable'],'domain':()=>{var _0x5ced55,_0x3e88e2;const _0x42362d=new Cartesian2(((_0x5ced55=this['options']['domain'])===null||_0x5ced55===void 0x0?void 0x0:_0x5ced55[_0x126293(-0x10f,-0x87)])??this[_0x126293(-0x109,-0x12c)]['windData'][_0x126293(-0x1a0,-0x1cc)][_0x126293(-0x10f,-0xe0)],((_0x3e88e2=this['options']['domain'])===null||_0x3e88e2===void 0x0?void 0x0:_0x3e88e2['max'])??this['computing'][_0x126293(-0x16f,-0x137)]['speed']['max']);function _0x18c132(_0x41b4bf,_0x205988){return _0x5d8fba(_0x205988,_0x41b4bf- -0xc0);}function _0x126293(_0x292a0d,_0x316226){return _0x5d8fba(_0x316226,_0x292a0d-0x12);}return _0x42362d;},'displayRange':()=>{function _0x8a1dc6(_0xc8f2e9,_0xd21d14){return _0x5d8fba(_0xd21d14,_0xc8f2e9-0x18);}var _0x219a45,_0x398be6;const _0x627a15=new Cartesian2(((_0x219a45=this['options'][_0x328275(-0xf4,-0x159)])===null||_0x219a45===void 0x0?void 0x0:_0x219a45['min'])??this['computing'][_0x328275(-0x105,-0x113)][_0x8a1dc6(-0x19a,-0x1d6)][_0x8a1dc6(-0x109,-0x74)],((_0x398be6=this['options']['displayRange'])===null||_0x398be6===void 0x0?void 0x0:_0x398be6['max'])??this['computing']['windData'][_0x8a1dc6(-0x19a,-0x1bd)][_0x8a1dc6(-0x15d,-0xf4)]);function _0x328275(_0x409d1a,_0x24ec8d){return _0xf4ef6e(_0x409d1a- -0x5ca,_0x24ec8d);}return _0x627a15;},'particleHeight':()=>this[_0x5d8fba(-0x1b4,-0x183)][_0x5d8fba(-0x166,-0xf5)]||0x0,'aspect':()=>this[_0xf4ef6e(0x54c,0x5aa)][_0xf4ef6e(0x48e,0x478)]/this[_0xf4ef6e(0x54c,0x4ef)]['drawingBufferHeight'],'pixelSize':()=>this[_0x5d8fba(-0x1be,-0x1e5)]['pixelSize'],'lineWidth':()=>{const _0x224bf8={};function _0x3407d2(_0x558f8a,_0x12f150){return _0xf4ef6e(_0x558f8a- -0x52b,_0x12f150);}_0x224bf8[_0x3407d2(-0x6,0x78)]=0x1,_0x224bf8[_0x1c4b11(0x9f,0xb6)]=0x2;function _0x1c4b11(_0x3f2f04,_0x17c2b8){return _0x5d8fba(_0x3f2f04,_0x17c2b8-0x22b);}const _0x58f23d=this['options']['lineWidth']||_0x224bf8;return new Cartesian2(_0x58f23d['min'],_0x58f23d[_0x3407d2(-0x5a,0x13)]);},'lineLength':()=>{const _0x14b97e={};_0x14b97e['min']=0x14;function _0x179fce(_0x3cd46c,_0x36ecb9){return _0x5d8fba(_0x3cd46c,_0x36ecb9-0x109);}_0x14b97e[_0x179fce(-0x52,-0x6c)]=0x64;function _0x19b475(_0x548e86,_0x3b1166){return _0x5d8fba(_0x548e86,_0x3b1166-0x54);}const _0x20f4dd=this[_0x179fce(-0xc3,-0x7a)]['lineLength']||_0x14b97e;return new Cartesian2(_0x20f4dd[_0x19b475(-0x84,-0xcd)],_0x20f4dd[_0x179fce(0x23,-0x6c)]);},'is3D':()=>this[_0xf4ef6e(0x461,0x43d)][_0x5d8fba(-0x1ef,-0x166)]===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this[_0x5d8fba(-0x16c,-0x148)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0xca3d6d)}),_0x5393fb={};return _0x5393fb[_0xf4ef6e(0x489,0x436)]=_0x1cdebd,_0x5393fb;}[_0xdfe442(-0x2b,0x31)](){const _0x475ea4=this[_0x2ad56d(0x3fd,0x40d)]();this['primitives'][_0x282bb9(0x1b0,0x18f)]['geometry']=_0x475ea4;const _0x16e7e8={};_0x16e7e8['context']=this['context'],_0x16e7e8['geometry']=_0x475ea4,_0x16e7e8[_0x282bb9(0x2ad,0x23b)]=this['primitives']['segments']['attributeLocations'];function _0x282bb9(_0x4f9fe8,_0x3d5ef4){return _0x35cf84(_0x3d5ef4,_0x4f9fe8- -0x11f);}_0x16e7e8[_0x2ad56d(0x3bd,0x3f5)]=BufferUsage['STATIC_DRAW'];const _0x5a8ec4=VertexArray['fromGeometry'](_0x16e7e8);function _0x2ad56d(_0x29b275,_0x269d1e){return _0xdfe442(_0x29b275-0x3eb,_0x269d1e);}this['primitives']['segments']['commandToExecute']&&(this['primitives'][_0x2ad56d(0x3e2,0x3b5)]['commandToExecute']['vertexArray']=_0x5a8ec4);}[_0x35cf84(0x336,0x372)](){function _0x4e1d92(_0x2ebf2f,_0x57be6a){return _0xdfe442(_0x57be6a- -0x4d,_0x2ebf2f);}this['colorTable']['destroy'](),this[_0x4e1d92(0x21,-0x42)]=this['createColorTableTexture']();}['updateOptions'](_0x3b9e8c){const _0x45715f=_0x3b9e8c[_0x223381(0x430,0x4ae)]&&JSON['stringify'](_0x3b9e8c[_0x223381(0x430,0x3d7)])!==JSON['stringify'](this[_0x2c7c28(0x4bb,0x49d)][_0x223381(0x430,0x3ab)]);function _0x2c7c28(_0x14529b,_0x1221b6){return _0xdfe442(_0x14529b-0x48a,_0x1221b6);}function _0x223381(_0x9fe599,_0x3c0af4){return _0xdfe442(_0x9fe599-0x3f9,_0x3c0af4);}this['options']=deepMerge(_0x3b9e8c,this['options']),_0x45715f&&this[_0x223381(0x493,0x46d)]();}['destroy'](){function _0x22e0a5(_0x2a59d5,_0x1013a2){return _0xdfe442(_0x1013a2-0x22d,_0x2a59d5);}Object['values'](this['framebuffers'])['forEach'](_0x40293d=>{function _0x404e7e(_0x4221c,_0x56aee6){return _0x31c5(_0x56aee6-0x31f,_0x4221c);}_0x40293d[_0x404e7e(0x500,0x4a6)]();});function _0x59eb45(_0x2c82a5,_0x1585e1){return _0x35cf84(_0x1585e1,_0x2c82a5- -0x26f);}Object['values'](this[_0x59eb45(0x13f,0xba)])['forEach'](_0x32b54b=>{_0x32b54b['destroy']();}),this['colorTable'][_0x59eb45(0xfa,0xda)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x5123b6,_0x530cd1,_0x1012af,_0x272917,_0x14bcdb){this['context']=_0x5123b6;function _0x9c3f20(_0x3b885b,_0x30688b){return _0x35cf84(_0x3b885b,_0x30688b-0x12d);}function _0x3c44f9(_0xfe4ccc,_0x53150b){return _0xdfe442(_0xfe4ccc-0x456,_0x53150b);}this['options']=_0x1012af,this['viewerParameters']=_0x272917,this[_0x9c3f20(0x465,0x49e)]=new WindParticlesComputing(_0x5123b6,_0x530cd1,_0x1012af,_0x272917,_0x14bcdb),this['rendering']=new WindParticlesRendering(_0x5123b6,_0x1012af,_0x272917,this[_0x3c44f9(0x4ef,0x57c)]),this['clearFramebuffers']();}[_0xdfe442(0xef,0x127)](){function _0x1bd018(_0x277710,_0x515139){return _0x35cf84(_0x515139,_0x277710- -0x53b);}function _0x2e7fcb(_0x696a32,_0x3b27a6){return _0xdfe442(_0x3b27a6-0x114,_0x696a32);}const _0x51b756=[this[_0x2e7fcb(0x119,0x1ad)]['primitives']['calculateSpeed'],this['computing'][_0x1bd018(-0x18d,-0x148)]['updatePosition'],this['computing'][_0x1bd018(-0x18d,-0x169)][_0x2e7fcb(0x1f0,0x1bb)],this['rendering']['primitives']['segments']];return _0x51b756;}['clearFramebuffers'](){function _0x340bf6(_0x35161c,_0x445248){return _0xdfe442(_0x445248- -0x290,_0x35161c);}const _0x144148=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x227af8(_0x36cee6,_0x4b6d99){return _0xdfe442(_0x36cee6-0x3,_0x4b6d99);}Object['keys'](this[_0x340bf6(-0x25c,-0x284)][_0x227af8(0x48,0x65)])['forEach'](_0x5c0492=>{function _0x526dcf(_0x35672c,_0x3cd11e){return _0x340bf6(_0x35672c,_0x3cd11e- -0xa);}function _0x3252d3(_0x4278ea,_0x396063){return _0x340bf6(_0x396063,_0x4278ea-0x51f);}_0x144148['framebuffer']=this['rendering']['framebuffers'][_0x5c0492],_0x144148[_0x526dcf(-0x152,-0x1e1)](this[_0x526dcf(-0x1d3,-0x1e0)]);});}[_0xdfe442(0xe4,0xe5)](_0x41ef4f){let _0x552db8=![];function _0x55ad33(_0x58148a,_0x586ba1){return _0xdfe442(_0x58148a- -0x236,_0x586ba1);}_0x41ef4f[_0x1ad95e(-0x186,-0x1aa)]&&this['options']['particlesTextureSize']!==_0x41ef4f[_0x1ad95e(-0x22f,-0x1aa)]&&(_0x552db8=!![]);function _0x1ad95e(_0x5ac4ac,_0x469d14){return _0x35cf84(_0x5ac4ac,_0x469d14- -0x4bc);}const _0x1d39f5=deepMerge(_0x41ef4f,this['options']);if(_0x1d39f5['particlesTextureSize']<0x1)throw new Error(_0x1ad95e(-0x17c,-0x10a));this['options']=_0x1d39f5,this['rendering']['updateOptions'](_0x41ef4f),this['computing']['updateOptions'](_0x41ef4f),_0x552db8&&(this[_0x1ad95e(-0x149,-0x14b)]['destroyParticlesTextures'](),this[_0x1ad95e(-0x1bd,-0x14b)][_0x1ad95e(-0xae,-0x110)](),this[_0x1ad95e(-0x23b,-0x1d8)]['onParticlesTextureSizeChange']());}[_0x35cf84(0x36b,0x357)](_0x337393){function _0x50e163(_0x185e68,_0x45290e){return _0x35cf84(_0x185e68,_0x45290e- -0x111);}this['viewerParameters']=_0x337393,this['computing']['viewerParameters']=_0x337393,this[_0x50e163(0x17d,0x1d3)]['viewerParameters']=_0x337393;}['destroy'](){function _0x3d600a(_0x1e59bf,_0x3fad8d){return _0xdfe442(_0x1e59bf-0x4d0,_0x3fad8d);}this['computing'][_0x1187f7(0x4d2,0x532)]();function _0x1187f7(_0x48f0ea,_0x201881){return _0x35cf84(_0x48f0ea,_0x201881-0x1c9);}this[_0x1187f7(0x518,0x4ad)]['destroy']();}}const Cesium$1=mars3d__namespace[_0x35cf84(0x37a,0x3b8)],BaseLayer$1=mars3d__namespace[_0x35cf84(0x30a,0x352)]['BaseLayer'],_0x38ef2d={};_0x38ef2d[_0x35cf84(0x34f,0x36b)]=0x1,_0x38ef2d[_0x35cf84(0x3a5,0x317)]=0x2;const _0x187329={};_0x187329['min']=0x14,_0x187329['max']=0x64;function _0xdfe442(_0x1ac50e,_0x2915d0){return _0x31c5(_0x1ac50e- -0xf6,_0x2915d0);}const _0x145c2e={};_0x145c2e[_0xdfe442(0x3a,-0x32)]=0x64,_0x145c2e['fixedHeight']=0x0,_0x145c2e[_0xdfe442(0x96,0xac)]=_0x38ef2d,_0x145c2e[_0xdfe442(0xf3,0x184)]=_0x187329,_0x145c2e['speedFactor']=0x1,_0x145c2e['dropRate']=0.003,_0x145c2e['dropRateBump']=0.001,_0x145c2e['colors']=[_0x35cf84(0x382,0x300)],_0x145c2e['flipY']=![],_0x145c2e[_0xdfe442(0xeb,0x15c)]=!![];const DEF_OPTIONS=_0x145c2e;class WindLayer extends BaseLayer$1{constructor(_0x5f4cb5={}){_0x5f4cb5={...DEF_OPTIONS,..._0x5f4cb5},super(_0x5f4cb5),this['_setOptionsHook'](_0x5f4cb5,_0x5f4cb5);}get['layer'](){return this['primitives'];}get[_0x35cf84(0x2eb,0x363)](){function _0x286a5f(_0x49d311,_0x4e65ad){return _0xdfe442(_0x4e65ad- -0x2af,_0x49d311);}function _0x57d26d(_0x3fd902,_0x430fc5){return _0xdfe442(_0x3fd902-0x184,_0x430fc5);}return this[_0x286a5f(-0x1fa,-0x27e)][_0x286a5f(-0x1a6,-0x224)];}set[_0xdfe442(0x8b,0xfe)](_0x28b0f8){function _0x175c08(_0x3001ac,_0x2a06a9){return _0x35cf84(_0x3001ac,_0x2a06a9-0x124);}this['options']['data']=_0x28b0f8,this[_0x175c08(0x441,0x462)](_0x28b0f8);}get['colors'](){function _0x53cafb(_0x15197e,_0x274b2d){return _0x35cf84(_0x274b2d,_0x15197e- -0x45b);}return this['options'][_0x53cafb(-0x14c,-0x193)];}set[_0xdfe442(0x37,-0x3a)](_0x236ce3){this['options']['colors']=_0x236ce3;const _0x1dba46={};function _0x5b3308(_0x997e77,_0x33bc4a){return _0xdfe442(_0x997e77-0x3fa,_0x33bc4a);}function _0x4cc298(_0x4f19a0,_0x4b62b1){return _0xdfe442(_0x4f19a0- -0x278,_0x4b62b1);}_0x1dba46[_0x5b3308(0x431,0x3eb)]=_0x236ce3,this['_setOptionsHook'](this[_0x5b3308(0x42b,0x426)],_0x1dba46);}['_showHook'](_0x4e136f){_0x4e136f?this['_addedHook']():this['_removedHook']();}['_mountedHook'](){}['_addedHook'](){this[_0x2c74e2(0x313,0x33d)]=this[_0x4a2d62(-0x7,0x58)]['scene'];function _0x4a2d62(_0x3ad6ee,_0x5b39b2){return _0xdfe442(_0x5b39b2-0x1b,_0x3ad6ee);}this['camera']=this['_map']['camera'];this[_0x4a2d62(0x7e,0x4c)]['data']&&this['setData'](this[_0x2c74e2(0x2ba,0x2ff)][_0x4a2d62(0x50,0xa6)]);if(!this['windData']||!this['show'])return;this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1[(_0x4a2d62(0xe4,0xe8))](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x4a2d62(0x80,0x8a)]['mode']},this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene'][_0x4a2d62(0x154,0xd5)],this['windData'],this[_0x4a2d62(0xce,0x4c)],this[_0x4a2d62(0x2d,-0x16)],this['scene']),this[_0x2c74e2(0x37c,0x3a4)]=this['particleSystem'][_0x2c74e2(0x32d,0x3bd)]();function _0x2c74e2(_0x56f867,_0x19655d){return _0xdfe442(_0x19655d-0x2ce,_0x56f867);}this['primitives']['forEach'](_0x120ee9=>{function _0x10535e(_0x53362b,_0x45f835){return _0x2c74e2(_0x45f835,_0x53362b- -0x3eb);}this['scene']['primitives'][_0x10535e(-0x11a,-0xf7)](_0x120ee9);}),this[_0x4a2d62(0xd7,0x5d)][_0x2c74e2(0x27c,0x2cf)]=0.01,this['camera']['changed']['addEventListener'](this[_0x2c74e2(0x267,0x2ea)]['bind'](this)),this[_0x2c74e2(0x2c6,0x33d)]['morphComplete']['addEventListener'](this['updateViewerParameters'][_0x2c74e2(0x301,0x2e9)](this)),window[_0x2c74e2(0x414,0x3b6)]('resize',this['updateViewerParameters']['bind'](this));}[_0x35cf84(0x36f,0x2f1)](){this[_0x2c930e(0xe9,0xe3)]['changed']['removeEventListener'](this[_0x2c930e(0xc3,0xb4)]['bind'](this)),this['scene']['morphComplete']['removeEventListener'](this[_0x2c930e(0xc3,0x31)]['bind'](this)),window['removeEventListener']('resize',this[_0x4e0955(0x13e,0x158)]['bind'](this));this[_0x2c930e(0x17d,0x19a)]&&(this['primitives'][_0x2c930e(0xe0,0x121)](_0x8fed32=>{function _0x27bea8(_0x3a37da,_0x5ae59c){return _0x2c930e(_0x5ae59c-0x1da,_0x3a37da);}this[_0x27bea8(0x25d,0x2f0)]['primitives']['remove'](_0x8fed32);}),delete this[_0x4e0955(0x294,0x212)]);function _0x2c930e(_0x3087ca,_0x2849c4){return _0xdfe442(_0x3087ca-0xa7,_0x2849c4);}function _0x4e0955(_0x8180f7,_0x380b6e){return _0x35cf84(_0x8180f7,_0x380b6e- -0x19c);}this['particleSystem']&&(this['particleSystem'][_0x4e0955(0x191,0x1cd)](),delete this['particleSystem']);}['setData'](_0x12ea92,_0x160629){function _0x19da6b(_0x28e43c,_0x2ba7eb){return _0x35cf84(_0x28e43c,_0x2ba7eb- -0x2f2);}this['windData']=this[_0xbe30e8(0x28d,0x234)](_0x12ea92);if(_0x160629){this['_removedHook'](),this['_addedHook']();return;}function _0xbe30e8(_0x3d7867,_0x1d96ed){return _0x35cf84(_0x3d7867,_0x1d96ed- -0x92);}this[_0xbe30e8(0x22a,0x230)]?(this['particleSystem'][_0xbe30e8(0x286,0x2df)][_0x19da6b(0xfa,0x99)](this['windData']),this[_0x19da6b(-0xd,0x55)]['requestRender']()):this[_0x19da6b(0x137,0xc5)]();}['_setOptionsHook'](_0x36c644,_0x9a73f){function _0x1bc1c8(_0x479b6c,_0x2c1bf9){return _0x35cf84(_0x2c1bf9,_0x479b6c- -0x3d7);}function _0x591b73(_0x4fa0a9,_0x2b9b54){return _0x35cf84(_0x2b9b54,_0x4fa0a9- -0x382);}this['particleSystem']&&(this['particleSystem'][_0x591b73(0x3a,0x9e)](_0x9a73f),this['scene'][_0x591b73(-0x22,-0x70)]());}[_0xdfe442(-0x12,-0x59)](_0x475105){var _0x47938c,_0x1ebd22;const _0x442dff={..._0x475105};function _0x517a83(_0x44b109,_0x35ef15){return _0xdfe442(_0x44b109-0x37e,_0x35ef15);}const _0x28662c=_0x442dff;!_0x28662c['height']&&_0x28662c['rows']&&(_0x28662c[_0x4b4a46(0x3fb,0x43c)]=_0x28662c[_0x517a83(0x3ba,0x327)]);!_0x28662c['width']&&_0x28662c['cols']&&(_0x28662c['width']=_0x28662c['cols']);!_0x28662c[_0x4b4a46(0x42d,0x42b)]&&(_0x28662c['bounds']={'west':_0x28662c['xmin'],'south':_0x28662c[_0x4b4a46(0x4d4,0x45d)],'east':_0x28662c[_0x4b4a46(0x3ee,0x451)],'north':_0x28662c[_0x517a83(0x3a9,0x388)]});if(!_0x28662c['u']){const _0x1cd137={};_0x1cd137['array']=_0x475105['udata'],_0x1cd137['min']=_0x475105[_0x517a83(0x362,0x2f1)],_0x1cd137[_0x4b4a46(0x42e,0x427)]=_0x475105[_0x4b4a46(0x488,0x486)],_0x28662c['u']=_0x1cd137;}if(!_0x28662c['v']){const _0x3dd99a={};_0x3dd99a[_0x517a83(0x42d,0x493)]=_0x475105['vdata'],_0x3dd99a[_0x4b4a46(0x3e6,0x47b)]=_0x475105[_0x517a83(0x3fc,0x461)],_0x3dd99a[_0x517a83(0x3bd,0x3ac)]=_0x475105[_0x517a83(0x3d6,0x45c)],_0x28662c['v']=_0x3dd99a;}if(((_0x47938c=_0x28662c['speed'])===null||_0x47938c===void 0x0?void 0x0:_0x47938c[_0x4b4a46(0x462,0x47b)])===undefined||((_0x1ebd22=_0x28662c[_0x4b4a46(0x408,0x3ea)])===null||_0x1ebd22===void 0x0?void 0x0:_0x1ebd22['max'])===undefined||_0x28662c['speed'][_0x517a83(0x42d,0x452)]===undefined){const _0x72150={'array':new Float32Array(_0x28662c['u']['array']['length']),'min':Number[_0x517a83(0x3e9,0x471)],'max':Number['MIN_VALUE']};for(let _0x3e3f47=0x0;_0x3e3f47<_0x28662c['u']['array']['length'];_0x3e3f47++){_0x72150['array'][_0x3e3f47]=Math['sqrt'](_0x28662c['u']['array'][_0x3e3f47]*_0x28662c['u'][_0x4b4a46(0x4e8,0x497)][_0x3e3f47]+_0x28662c['v'][_0x4b4a46(0x49a,0x497)][_0x3e3f47]*_0x28662c['v']['array'][_0x3e3f47]),_0x72150['array'][_0x3e3f47]!==0x0&&(_0x72150['min']=Math[_0x4b4a46(0x3f5,0x47b)](_0x72150['min'],_0x72150['array'][_0x3e3f47]),_0x72150['max']=Math[_0x4b4a46(0x456,0x427)](_0x72150[_0x4b4a46(0x455,0x427)],_0x72150['array'][_0x3e3f47]));}_0x28662c[_0x517a83(0x380,0x370)]=_0x72150;}function _0x4b4a46(_0x343d90,_0xea099e){return _0xdfe442(_0xea099e-0x3e8,_0x343d90);}return _0x28662c;}['updateViewerParameters'](){var _0x1ebf1f;const _0x441111=this['scene'];if(!_0x441111)return;const _0x5bac32=_0x441111['canvas'],_0x11e1bd={};_0x11e1bd['x']=0x0,_0x11e1bd['y']=0x0;const _0x13f212={};_0x13f212['x']=0x0,_0x13f212['y']=_0x5bac32[_0x215c0f(0x3e4,0x44b)];const _0x1d410f={};_0x1d410f['x']=_0x5bac32[_0x215c0f(0x382,0x3db)],_0x1d410f['y']=0x0;const _0x2b41b7={};_0x2b41b7['x']=_0x5bac32['clientWidth'],_0x2b41b7['y']=_0x5bac32['clientHeight'];const _0x58aa3f=[_0x11e1bd,_0x13f212,_0x1d410f,_0x2b41b7];let _0x4b0458=0xb4,_0x3dc493=-0xb4;function _0x215c0f(_0x149d35,_0x35df84){return _0x35cf84(_0x35df84,_0x149d35-0x61);}let _0x3b4bed=0x5a,_0x214e63=-0x5a;function _0x4579c3(_0x437a23,_0x33ae23){return _0xdfe442(_0x33ae23- -0x1d3,_0x437a23);}let _0x22d0fe=![];for(const _0xfd31a4 of _0x58aa3f){const _0x4a2388=_0x441111['camera'][_0x215c0f(0x3d9,0x360)](new Cesium$1['Cartesian2'](_0xfd31a4['x'],_0xfd31a4['y']),_0x441111[_0x4579c3(-0x161,-0x1b2)]['ellipsoid']);if(!_0x4a2388){_0x22d0fe=!![];break;}const _0x4b2305=_0x441111[_0x4579c3(-0x130,-0x1b2)]['ellipsoid']['cartesianToCartographic'](_0x4a2388),_0x430a62=Cesium$1[_0x215c0f(0x3f1,0x466)]['toDegrees'](_0x4b2305[_0x4579c3(-0x106,-0x172)]),_0x23ea83=Cesium$1['Math']['toDegrees'](_0x4b2305['latitude']);_0x4b0458=Math['min'](_0x4b0458,_0x430a62),_0x3dc493=Math['max'](_0x3dc493,_0x430a62),_0x3b4bed=Math['min'](_0x3b4bed,_0x23ea83),_0x214e63=Math[_0x4579c3(-0x1dd,-0x194)](_0x214e63,_0x23ea83);}if(!_0x22d0fe){const _0x4efea1=new Cesium$1['Cartesian2'](Math[_0x215c0f(0x378,0x359)](this[_0x215c0f(0x36c,0x313)]['bounds']['west'],_0x4b0458),Math[_0x215c0f(0x3cc,0x34b)](this['windData']['bounds']['east'],_0x3dc493)),_0x2e220f=new Cesium$1['Cartesian2'](Math['max'](this['windData']['bounds'][_0x4579c3(-0x15e,-0x178)],_0x3b4bed),Math[_0x4579c3(-0x19f,-0x140)](this[_0x4579c3(-0x159,-0x1a0)]['bounds'][_0x4579c3(-0x140,-0x10c)],_0x214e63)),_0x4edf4f=(_0x4efea1['y']-_0x4efea1['x'])*0.05,_0x21ab27=(_0x2e220f['y']-_0x2e220f['x'])*0.05;_0x4efea1['x']=Math['max'](this['windData']['bounds']['west'],_0x4efea1['x']-_0x4edf4f),_0x4efea1['y']=Math['min'](this['windData'][_0x215c0f(0x37c,0x39e)][_0x4579c3(-0xfd,-0x17a)],_0x4efea1['y']+_0x4edf4f),_0x2e220f['x']=Math[_0x215c0f(0x378,0x33d)](this[_0x4579c3(-0x1d2,-0x1a0)][_0x215c0f(0x37c,0x2ed)][_0x4579c3(-0x1ee,-0x178)],_0x2e220f['x']-_0x21ab27),_0x2e220f['y']=Math[_0x215c0f(0x3cc,0x463)](this['windData'][_0x215c0f(0x37c,0x3e4)][_0x215c0f(0x400,0x418)],_0x2e220f['y']+_0x21ab27),this['viewerParameters'][_0x215c0f(0x3d8,0x3a3)]=_0x4efea1,this[_0x215c0f(0x308,0x367)]['latRange']=_0x2e220f;const _0x64cb02=this['windData'][_0x215c0f(0x37c,0x313)][_0x215c0f(0x392,0x3ea)]-this['windData'][_0x4579c3(-0x226,-0x190)][_0x215c0f(0x338,0x2bc)],_0x2f9024=this['windData'][_0x4579c3(-0x154,-0x190)][_0x215c0f(0x400,0x420)]-this[_0x215c0f(0x36c,0x2de)]['bounds']['south'],_0x2bd77e=(_0x4efea1['y']-_0x4efea1['x'])/_0x64cb02,_0x992600=(_0x2e220f['y']-_0x2e220f['x'])/_0x2f9024,_0x4e89b8=Math['min'](_0x2bd77e,_0x992600),_0x108553=0x3e8*_0x4e89b8;_0x108553>0x0&&(this['viewerParameters']['pixelSize']=Math[_0x215c0f(0x378,0x30e)](0x0,Math[_0x4579c3(-0x1d0,-0x140)](0x3e8,_0x108553)));}this['viewerParameters']['sceneMode']=this[_0x4579c3(-0x135,-0x164)][_0x215c0f(0x348,0x372)],(_0x1ebf1f=this['particleSystem'])===null||_0x1ebf1f===void 0x0||_0x1ebf1f[_0x4579c3(-0xeb,-0x154)](this['viewerParameters']);}['getDataAtLonLat'](_0x28cbff,_0x138abc){const {bounds:_0x115d2d,width:_0x333729,height:_0x12e278,u:_0x56bfcb,v:_0xab8b4e,speed:_0x4ae218}=this[_0x1525a7(-0x16d,-0x1e8)],{flipY:_0x41f2e0}=this['options'];if(_0x28cbff<_0x115d2d[_0x3b149a(0x498,0x478)]||_0x28cbff>_0x115d2d[_0x1525a7(-0x147,-0xf0)]||_0x138abc<_0x115d2d['south']||_0x138abc>_0x115d2d[_0x3b149a(0x560,0x542)])return null;const _0x2b4a57=(_0x28cbff-_0x115d2d['west'])/(_0x115d2d[_0x1525a7(-0x147,-0x152)]-_0x115d2d[_0x1525a7(-0x1a1,-0x114)])*(_0x333729-0x1);let _0x5bc3b8=(_0x138abc-_0x115d2d[_0x1525a7(-0x145,-0x145)])/(_0x115d2d['north']-_0x115d2d['south'])*(_0x12e278-0x1);_0x41f2e0&&(_0x5bc3b8=_0x12e278-0x1-_0x5bc3b8);const _0x263c69=Math[_0x1525a7(-0xf4,-0x8f)](_0x2b4a57),_0x2c064e=Math['floor'](_0x5bc3b8),_0x4b5acb=Math['floor'](_0x2b4a57),_0x5643f4=Math[_0x1525a7(-0x10d,-0x115)](_0x4b5acb+0x1,_0x333729-0x1),_0x34cadf=Math['floor'](_0x5bc3b8),_0x1509d4=Math['min'](_0x34cadf+0x1,_0x12e278-0x1),_0x4554a4=_0x2b4a57-_0x4b5acb,_0x4dd778=_0x5bc3b8-_0x34cadf,_0x2658ed=_0x2c064e*_0x333729+_0x263c69,_0x48aedd=_0x34cadf*_0x333729+_0x4b5acb;function _0x3b149a(_0x6026df,_0x363adf){return _0x35cf84(_0x363adf,_0x6026df-0x1c1);}const _0xe24aa0=_0x34cadf*_0x333729+_0x5643f4,_0x46a947=_0x1509d4*_0x333729+_0x4b5acb,_0xa20336=_0x1509d4*_0x333729+_0x5643f4,_0x425d19=_0x56bfcb['array'][_0x48aedd],_0x9f64dc=_0x56bfcb[_0x3b149a(0x548,0x527)][_0xe24aa0];function _0x1525a7(_0x2dd141,_0x523d04){return _0x35cf84(_0x523d04,_0x2dd141- -0x478);}const _0x544e2d=_0x56bfcb['array'][_0x46a947],_0x29779c=_0x56bfcb['array'][_0xa20336],_0x4c84b2=(0x1-_0x4554a4)*(0x1-_0x4dd778)*_0x425d19+_0x4554a4*(0x1-_0x4dd778)*_0x9f64dc+(0x1-_0x4554a4)*_0x4dd778*_0x544e2d+_0x4554a4*_0x4dd778*_0x29779c,_0x2c3320=_0xab8b4e['array'][_0x48aedd],_0xb8db1f=_0xab8b4e[_0x1525a7(-0xf1,-0xd5)][_0xe24aa0],_0x14e7dd=_0xab8b4e[_0x1525a7(-0xf1,-0xcc)][_0x46a947],_0x1129a0=_0xab8b4e[_0x1525a7(-0xf1,-0x12f)][_0xa20336],_0x1e449d=(0x1-_0x4554a4)*(0x1-_0x4dd778)*_0x2c3320+_0x4554a4*(0x1-_0x4dd778)*_0xb8db1f+(0x1-_0x4554a4)*_0x4dd778*_0x14e7dd+_0x4554a4*_0x4dd778*_0x1129a0,_0x378383=Math['sqrt'](_0x4c84b2*_0x4c84b2+_0x1e449d*_0x1e449d),_0x3702e8={};_0x3702e8['u']=_0x56bfcb[_0x1525a7(-0xf1,-0x185)][_0x2658ed],_0x3702e8['v']=_0xab8b4e['array'][_0x2658ed],_0x3702e8[_0x3b149a(0x49b,0x4a1)]=_0x4ae218[_0x1525a7(-0xf1,-0xcc)][_0x2658ed];const _0x269bff={};_0x269bff['u']=_0x4c84b2,_0x269bff['v']=_0x1e449d,_0x269bff[_0x3b149a(0x49b,0x479)]=_0x378383;const _0x595361={};return _0x595361[_0x3b149a(0x529,0x56d)]=_0x3702e8,_0x595361['interpolated']=_0x269bff,_0x595361;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace[_0x35cf84(0x36e,0x352)][_0x35cf84(0x34f,0x3b0)]=WindLayer;class CanvasParticle{constructor(){this['lng']=null,this['lat']=null;function _0x48d59b(_0x553cf0,_0x2f4c3e){return _0xdfe442(_0x2f4c3e-0xff,_0x553cf0);}this[_0x415bdd(-0x226,-0x1d5)]=null,this['tlat']=null;function _0x415bdd(_0x52d2e4,_0x55ec21){return _0x35cf84(_0x55ec21,_0x52d2e4- -0x4f8);}this[_0x48d59b(0x208,0x1b1)]=null,this['speed']=null;}['destroy'](){for(const _0x227a57 in this){delete this[_0x227a57];}}}class CanvasWindField{constructor(_0x5e2ddd){this['setOptions'](_0x5e2ddd);}get[_0xdfe442(-0x14,-0x11)](){function _0x1e2b25(_0x590550,_0x473f88){return _0x35cf84(_0x473f88,_0x590550-0xfb);}return this[_0x1e2b25(0x3c3,0x3d7)];}set['speedRate'](_0x35bb49){function _0x2cd9bb(_0x1d07f1,_0x329944){return _0xdfe442(_0x1d07f1- -0x150,_0x329944);}this['_speedRate']=(0x64-(_0x35bb49>0x63?0x63:_0x35bb49))*0x64;function _0x37682f(_0x19c98b,_0x226975){return _0xdfe442(_0x19c98b-0x1d9,_0x226975);}this['_calc_speedRate']=[(this[_0x37682f(0x242,0x244)]-this['xmin'])/this['_speedRate'],(this[_0x37682f(0x204,0x1ec)]-this['ymin'])/this['_speedRate']];}get['maxAge'](){function _0x276ce6(_0x260ef7,_0x568b7b){return _0x35cf84(_0x568b7b,_0x260ef7-0x11e);}return this[_0x276ce6(0x476,0x41c)];}set['maxAge'](_0x48d5b0){function _0x352045(_0x50b83,_0x1f56be){return _0x35cf84(_0x1f56be,_0x50b83- -0xa9);}this[_0x352045(0x2af,0x2a3)]=_0x48d5b0;}[_0xdfe442(0x38,-0x42)](_0x451ff6){function _0x493b99(_0x181c2b,_0x1d02f5){return _0x35cf84(_0x181c2b,_0x1d02f5-0x1e4);}this['options']=_0x451ff6,this['maxAge']=_0x451ff6['maxAge']||0x78,this[_0x493b99(0x461,0x4a8)]=_0x451ff6['speedRate']||0x32,this['particles']=[];function _0x2a70c8(_0x53d937,_0x2c113f){return _0x35cf84(_0x2c113f,_0x53d937- -0x1cf);}const _0xee2135=_0x451ff6['particlesNumber']||0x1000;for(let _0x4124cf=0x0;_0x4124cf<_0xee2135;_0x4124cf++){const _0x4dc6b4=this[_0x2a70c8(0x1ad,0x195)](new CanvasParticle());this[_0x2a70c8(0xe8,0x96)]['push'](_0x4dc6b4);}}[_0x35cf84(0x405,0x3ba)](_0x50e913){this['rows']=_0x50e913['rows'],this['cols']=_0x50e913[_0x3972cd(-0x5e,-0xc3)],this['xmin']=_0x50e913['xmin'],this['xmax']=_0x50e913[_0x2d1261(0x1b5,0x1fb)];function _0x3972cd(_0x26f3d4,_0x2db1e0){return _0x35cf84(_0x26f3d4,_0x2db1e0- -0x377);}this[_0x2d1261(0x1c1,0x22d)]=_0x50e913[_0x2d1261(0x1c1,0x134)],this['ymax']=_0x50e913[_0x3972cd(-0xd2,-0x74)],this['grid']=[];const _0xe6a99b=_0x50e913[_0x3972cd(-0x5e,-0x41)],_0x4a483a=_0x50e913['vdata'];function _0x2d1261(_0x3b4fdd,_0x56f93d){return _0xdfe442(_0x3b4fdd-0x14c,_0x56f93d);}let _0x499560=![];_0xe6a99b['length']===this[_0x2d1261(0x188,0x1fe)]&&_0xe6a99b[0x0]['length']===this['cols']&&(_0x499560=!![]);let _0x47dead=0x0,_0x2eae96=null,_0x4d74b7=null;for(let _0x2327dd=0x0;_0x2327dd<this[_0x3972cd(-0x63,-0x63)];_0x2327dd++){_0x2eae96=[];for(let _0x579c41=0x0;_0x579c41<this[_0x2d1261(0x128,0xee)];_0x579c41++,_0x47dead++){_0x499560?_0x4d74b7=this['_calcUV'](_0xe6a99b[_0x2327dd][_0x579c41],_0x4a483a[_0x2327dd][_0x579c41]):_0x4d74b7=this['_calcUV'](_0xe6a99b[_0x47dead],_0x4a483a[_0x47dead]),_0x2eae96['push'](_0x4d74b7);}this['grid']['push'](_0x2eae96);}!this['options']['flipY']&&this['grid']['reverse']();}[_0xdfe442(0x16,0x11)](){delete this['rows'],delete this[_0x5cb945(0x33b,0x39d)];function _0x29c20d(_0xedbcfe,_0x10ed1e){return _0x35cf84(_0xedbcfe,_0x10ed1e-0xb6);}function _0x5cb945(_0x5e27c3,_0x2a8230){return _0xdfe442(_0x5e27c3-0x35f,_0x2a8230);}delete this['xmin'],delete this[_0x29c20d(0x47c,0x3f7)],delete this[_0x5cb945(0x3d4,0x408)],delete this['ymax'],delete this['grid'],delete this['particles'];}[_0x35cf84(0x39c,0x361)](_0x30fcad,_0x2b3c02){function _0x44e753(_0x11158a,_0x35f6ca){return _0x35cf84(_0x35f6ca,_0x11158a-0x42);}const _0x58f113=(_0x30fcad-this[_0x269147(0x281,0x2fc)])/(this['xmax']-this[_0x44e753(0x36f,0x3b2)])*(this['cols']-0x1),_0x331f6f=(this['ymax']-_0x2b3c02)/(this['ymax']-this['ymin'])*(this['rows']-0x1);function _0x269147(_0x2512ad,_0x24fd4e){return _0xdfe442(_0x2512ad-0x22c,_0x24fd4e);}return[_0x58f113,_0x331f6f];}['getUVByXY'](_0x49ae65,_0x7fb364){if(_0x49ae65<0x0||_0x49ae65>=this[_0x4a32ed(0x12,-0x9)]||_0x7fb364>=this['rows'])return[0x0,0x0,0x0];function _0x123210(_0x2a7019,_0x21e3f2){return _0xdfe442(_0x2a7019- -0x251,_0x21e3f2);}const _0x33221a=Math[_0x123210(-0x1a5,-0x225)](_0x49ae65),_0x111d34=Math[_0x4a32ed(0x128,0xc7)](_0x7fb364);if(_0x33221a===_0x49ae65&&_0x111d34===_0x7fb364)return this[_0x123210(-0x167,-0x1aa)][_0x7fb364][_0x49ae65];const _0x32ef29=_0x33221a+0x1,_0x3dd836=_0x111d34+0x1,_0x369c3d=this['getUVByXY'](_0x33221a,_0x111d34),_0x433a5b=this[_0x123210(-0x24a,-0x1f2)](_0x32ef29,_0x111d34),_0x54b287=this['getUVByXY'](_0x33221a,_0x3dd836);function _0x4a32ed(_0x134de1,_0x3582fd){return _0x35cf84(_0x134de1,_0x3582fd- -0x2bd);}const _0x34b4ee=this[_0x123210(-0x24a,-0x1c9)](_0x32ef29,_0x3dd836);let _0x21d55b=null;try{_0x21d55b=this['_bilinearInterpolation'](_0x49ae65-_0x33221a,_0x7fb364-_0x111d34,_0x369c3d,_0x433a5b,_0x54b287,_0x34b4ee);}catch(_0xc1c852){console[_0x123210(-0x23e,-0x1ed)](_0x49ae65,_0x7fb364);}return _0x21d55b;}['_bilinearInterpolation'](_0x29ed22,_0x1fca01,_0x37339b,_0x43bcdd,_0x5a410b,_0x2e3bab){const _0x145153=0x1-_0x29ed22,_0x5787dc=0x1-_0x1fca01,_0x5afff6=_0x145153*_0x5787dc,_0x5de2eb=_0x29ed22*_0x5787dc,_0x558697=_0x145153*_0x1fca01,_0x220570=_0x29ed22*_0x1fca01,_0x2ee326=_0x37339b[0x0]*_0x5afff6+_0x43bcdd[0x0]*_0x5de2eb+_0x5a410b[0x0]*_0x558697+_0x2e3bab[0x0]*_0x220570,_0x165085=_0x37339b[0x1]*_0x5afff6+_0x43bcdd[0x1]*_0x5de2eb+_0x5a410b[0x1]*_0x558697+_0x2e3bab[0x1]*_0x220570;return this['_calcUV'](_0x2ee326,_0x165085);}['_calcUV'](_0x1511ef,_0x50a668){function _0x7774e0(_0x1837f4,_0x209ac7){return _0x35cf84(_0x1837f4,_0x209ac7- -0x334);}return[+_0x1511ef,+_0x50a668,Math[_0x7774e0(-0xb1,-0x3f)](_0x1511ef*_0x1511ef+_0x50a668*_0x50a668)];}['getUVByPoint'](_0x219c71,_0x3ec958){function _0x405e94(_0x32e641,_0x4a9534){return _0x35cf84(_0x4a9534,_0x32e641- -0x4db);}if(!this[_0x405e94(-0x156,-0x194)](_0x219c71,_0x3ec958))return null;const _0x2c00bc=this['toGridXY'](_0x219c71,_0x3ec958),_0x4cfefe=this['getUVByXY'](_0x2c00bc[0x0],_0x2c00bc[0x1]);return _0x4cfefe;}[_0xdfe442(0xad,0x62)](_0x4a11ec,_0x40c6f5){function _0x428146(_0x2cbcd2,_0x70e6cf){return _0x35cf84(_0x2cbcd2,_0x70e6cf- -0x38f);}return _0x4a11ec>=this['xmin']&&_0x4a11ec<=this['xmax']&&_0x40c6f5>=this[_0x428146(-0x72,-0x42)]&&_0x40c6f5<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x39b7af=fRandomByfloat(this['xmin'],this[_0x8ccae1(0x57a,0x50f)]),_0x343b9e=fRandomByfloat(this['ymin'],this['ymax']),_0x1e8ca0={};function _0xf68006(_0x5d6040,_0x3b6e94){return _0xdfe442(_0x3b6e94-0x370,_0x5d6040);}_0x1e8ca0[_0xf68006(0x30f,0x362)]=_0x343b9e;function _0x8ccae1(_0x547eda,_0x5178b1){return _0x35cf84(_0x547eda,_0x5178b1-0x1ce);}return _0x1e8ca0['lng']=_0x39b7af,_0x1e8ca0;}['getParticles'](){function _0x3fa354(_0x416f7d,_0x3a7b33){return _0x35cf84(_0x416f7d,_0x3a7b33- -0x280);}let _0x422fa9,_0x274da,_0x485a6f;function _0x9432a6(_0x245e7a,_0x44c0a5){return _0xdfe442(_0x44c0a5- -0x19b,_0x245e7a);}for(let _0x3ded8d=0x0,_0x38abcb=this[_0x9432a6(-0x1d6,-0x1bc)]['length'];_0x3ded8d<_0x38abcb;_0x3ded8d++){let _0x63e257=this[_0x9432a6(-0x23d,-0x1bc)][_0x3ded8d];_0x63e257[_0x9432a6(-0x131,-0xe9)]<=0x0&&(_0x63e257=this['_randomParticle'](_0x63e257));if(_0x63e257['age']>0x0){const _0x229753=_0x63e257['tlng'],_0x438f71=_0x63e257['tlat'];_0x485a6f=this['getUVByPoint'](_0x229753,_0x438f71),_0x485a6f?(_0x422fa9=_0x229753+this[_0x3fa354(0x69,0x30)][0x0]*_0x485a6f[0x0],_0x274da=_0x438f71+this['_calc_speedRate'][0x1]*_0x485a6f[0x1],_0x63e257['lng']=_0x229753,_0x63e257['lat']=_0x438f71,_0x63e257[_0x9432a6(-0x211,-0x1a1)]=_0x422fa9,_0x63e257[_0x9432a6(-0x1a3,-0x13f)]=_0x274da,_0x63e257[_0x9432a6(-0x14f,-0x199)]=_0x485a6f[0x2],_0x63e257[_0x3fa354(0xae,0x10a)]--):_0x63e257[_0x3fa354(0xaf,0x10a)]=0x0;}}return this['particles'];}['_randomParticle'](_0x1aaf37){let _0x4bd6d1,_0x497017;for(let _0xeccddb=0x0;_0xeccddb<0x1e;_0xeccddb++){_0x4bd6d1=this['getRandomLatLng'](),_0x497017=this['getUVByPoint'](_0x4bd6d1['lng'],_0x4bd6d1['lat']);if(_0x497017&&_0x497017[0x2]>0x0)break;}if(!_0x497017)return _0x1aaf37;const _0x4df11b=_0x4bd6d1['lng']+this[_0x378339(-0xd0,-0xb3)][0x0]*_0x497017[0x0],_0x3e3509=_0x4bd6d1['lat']+this['_calc_speedRate'][0x1]*_0x497017[0x1];_0x1aaf37['lng']=_0x4bd6d1['lng'],_0x1aaf37[_0x378339(-0xef,-0x99)]=_0x4bd6d1[_0x5c1781(0x377,0x305)];function _0x378339(_0x3ec4a4,_0x5386d8){return _0x35cf84(_0x3ec4a4,_0x5386d8- -0x363);}_0x1aaf37[_0x5c1781(0x37f,0x3f7)]=_0x4df11b,_0x1aaf37[_0x5c1781(0x3e1,0x374)]=_0x3e3509;function _0x5c1781(_0x467e83,_0x453477){return _0x35cf84(_0x453477,_0x467e83-0xad);}return _0x1aaf37['age']=Math['round'](0xa+Math['random']()*this[_0x5c1781(0x44d,0x401)]),_0x1aaf37[_0x378339(-0xff,-0x89)]=_0x497017[0x2],_0x1aaf37;}['destroy'](){for(const _0x4a01db in this){delete this[_0x4a01db];}}}function fRandomByfloat(_0x5405ab,_0x280afe){return _0x5405ab+Math['random']()*(_0x280afe-_0x5405ab);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];function _0x2731(){const _0x2e10a5=['cos','ymax','_createCanvas','commandToExecute','#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','isDestroyed','UNSIGNED_INT','options','475925vhPWfF','windData','vertexArray','_animateFrame','owner','colors','setOptions','forEach','particlesTextureSize','depthMask','rows','_map','createPrimitives','max','getCalculateSpeedShader','positionWC','camera','bounds','displayRange','framebuffers','push','error','type','clientWidth','dropRateBump','calculateSpeed','fromGeometry','value','sceneMode','create','particlesNumber','atan2','canvas','postMessage','height','xmin','mouseDown','talt','vmax','east','magnificationFilter','south','tlat','enabled','udata','getU','rawRenderState','longitude','particlesTextures','min\x20is\x20undefined,\x20calculate\x20min','initWorker','64041AnFSPb','setData','frameRateMonitor','off','xmax','Draw','MAX_VALUE','textures','zIndex','modelMatrix','scene','updatePosition','prototype','createComputingPrimitives','dropRate','#ffffff','ymin','update','warn','windField','pointerEvents','layer','_onMouseMoveEvent','globalCompositeOperation','segmentsColor','vmin','applyViewerParameters','_maxAge','useViewerBounds','PointTrans','getDefaultRenderState','vertexShaderSource','fromDegrees','speedFactor','outputTexture','requestRender','toGridXY','strokeStyle','data','samplingWindow','particlesSpeed','36JGHEXG','_onMouseDownEvent','original','destroy','commandType','min','renderState','FLOAT','lineWidth','hidden','windTextures','computing','onColorTableChange','Cartesian3','_colorRamp','mouseHidden','umax','lonRange','pickEllipsoid','272230zZFukW','UNSIGNED_BYTE','#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','_randomParticle','geometry','canvasHeight','postProcessingPosition','getDirection','frameRateAdjustment','latRange','clientHeight','floor','isInExtent','createRenderingTextures','array','createWindTextures','_pointerEvents','age','updateWindData','visible','CLAMP_TO_EDGE','green','destination-in','Math','execute','context','_tomap','steps','length','resize','fixedHeight','componentDatatype','uniformMap','mouse_move','frameRate','register','0px','componentsPerAttribute','north','maxAge','frameTime','SCENE3D','initFrameRate','unbindEvent','Cartesian2','3505152XkotKr','style','getColor','lineTo','toDegrees','pointer-events','createParticlesTextures','primitiveType','primitives','_drawLines','WindLayer','OPAQUE','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','7173EJaRzS','random','wrapS','createRenderingFramebuffers','_addedHook','Cesium','1539778zUbEgK','setDate','beginPath','changeOptions','default','13170968gwuhYU','isArray','addEventListener','top','grid','dynamic','shaderProgram','isDynamic','currentParticlesPosition','getPrimitives','canvasContext','getSegmentDrawFragmentShader','createCommand','lineLength','attributeLocations','_updateIng2','pixelFormat','mouse_down','EventType','_setOptionsHook','now','LINEAR','viewerParameters','fromCssColorString','position','bufferUsage','segmentsDepth','values','onParticlesTextureSizeChange','width','fill','_calc_speedRate','stroke','mouseMove','RED','cols','_canrefresh','_updateIng','particles','lighter','_mountedHook','init','drawingBufferHeight','umin','show','preExecute','ONE_MINUS_SRC_ALPHA','pow','reCreateWindTextures','particleSystem','RGBA','speedRate','clearCommand','processWindData','17830zIhZye','_speedRate','getV','lat','Unknown\x20command\x20type','logInfo','SRC_ALPHA','bindEvent','segments','visibility','canvasWind','tlng','all','drawingBufferWidth','blendFuncDestination','moveTo','west','fromCache','percentageChanged','speed','add','nextParticlesPosition','requestAnimationFrame','worker','getUVByXY','pixelDatatype','Compute','none','colorTable','rendering','sin','red','mode','_canvasParticles','WindUtil','createSegmentsGeometry','log','hasOwnProperty','createColorTableTexture','clear','#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','flipY','_removedHook','mars3d-canvasWind','bind','updateViewerParameters','sqrt','alpha','color','previousParticlesPosition','globe','refreshTimer','180maEHxL','autoClear','Log','redraw','STATIC_DRAW','rgb(206,255,255)','2026-10-15\x2018:59'];_0x2731=function(){return _0x2e10a5;};return _0x2731();}class CanvasWindLayer extends BaseLayer{constructor(_0x234cc1={}){super(_0x234cc1),this['_setOptionsHook'](_0x234cc1);function _0x14481c(_0x1c6799,_0x288cf7){return _0xdfe442(_0x288cf7-0x48f,_0x1c6799);}function _0x3c378c(_0x1120a3,_0x3989ab){return _0xdfe442(_0x1120a3-0x36a,_0x3989ab);}this['canvas']=null,_0x234cc1['colors']&&_0x234cc1[_0x14481c(0x586,0x54b)]&&(this[_0x3c378c(0x406,0x3d0)]=new mars3d__namespace['ColorRamp'](_0x234cc1));}[_0x35cf84(0x2df,0x2a4)](_0x1a1333,_0xefafb6){this['frameTime']=0x3e8/(_0x1a1333['frameRate']||0xa),this['_pointerEvents']=this[_0x1f5166(0x40a,0x3ab)][_0x1f5166(0x3b5,0x3f3)]??![];function _0x1f5166(_0xb319f8,_0x20c61b){return _0xdfe442(_0x20c61b-0x37a,_0xb319f8);}function _0x326ee8(_0x12b354,_0xfc90a2){return _0x35cf84(_0x12b354,_0xfc90a2- -0x405);}this[_0x1f5166(0x3e5,0x399)]=_0x1a1333[_0x326ee8(-0x116,-0x10e)]||_0x1f5166(0x46d,0x3ee),this['lineWidth']=_0x1a1333[_0x326ee8(-0xc4,-0x97)]||0x1,this[_0x326ee8(-0x56,-0x6e)]=_0x1a1333[_0x1f5166(0x460,0x439)]??0x0,this[_0x326ee8(-0x100,-0x115)]=_0x1a1333['flipY']??![],this['windField']&&this[_0x1f5166(0x3ba,0x3f2)][_0x326ee8(-0x121,-0xf5)](_0x1a1333);}get[_0x35cf84(0x306,0x352)](){function _0x5c8375(_0x2af559,_0x18161b){return _0xdfe442(_0x18161b-0x3a8,_0x2af559);}return this[_0x5c8375(0x401,0x3fa)];}get['canvasWidth'](){function _0x42b125(_0x473e6c,_0x5e3471){return _0xdfe442(_0x473e6c-0x39c,_0x5e3471);}return this[_0x42b125(0x3d9,0x414)]['scene']['canvas']['clientWidth'];}get[_0x35cf84(0x309,0x37e)](){function _0x50fbfa(_0x334484,_0x2d3c95){return _0x35cf84(_0x2d3c95,_0x334484- -0x18e);}return this['_map']['scene'][_0x50fbfa(0x19c,0x201)]['clientHeight'];}get['pointerEvents'](){return this['_pointerEvents'];}set[_0xdfe442(0x79,0x96)](_0xc91b0b){this['_pointerEvents']=_0xc91b0b;if(!this['canvas'])return;function _0x3e9bb0(_0x259e2e,_0x5f4753){return _0xdfe442(_0x5f4753-0x11f,_0x259e2e);}function _0x33dff3(_0x1bf368,_0x4afe10){return _0x35cf84(_0x4afe10,_0x1bf368- -0x2b4);}_0xc91b0b?this['canvas']['style'][_0x33dff3(0xf7,0x99)]=_0x3e9bb0(0x173,0x11a):this['canvas']['style']['pointer-events']=_0x33dff3(0x2e,0xb8);}get[_0xdfe442(0x50,-0xf)](){return this['options']['particlesNumber'];}set['particlesNumber'](_0x7387a2){function _0x2490f4(_0x56f220,_0xdfff79){return _0x35cf84(_0xdfff79,_0x56f220-0x8b);}this[_0x2655c8(-0x183,-0x1a7)]['particlesNumber']=_0x7387a2,clearTimeout(this[_0x2655c8(-0x1d7,-0x1a0)]);function _0x2655c8(_0x2e1442,_0x3e6322){return _0x35cf84(_0x3e6322,_0x2e1442- -0x48c);}this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){return this['options']['speedRate'];}set['speedRate'](_0x3bd493){function _0x20e591(_0xf2c68e,_0x518af5){return _0x35cf84(_0xf2c68e,_0x518af5-0x3d);}function _0x23f80c(_0x4535f9,_0x38295a){return _0x35cf84(_0x4535f9,_0x38295a- -0x282);}this['options'][_0x23f80c(0x50,0x42)]=_0x3bd493,this[_0x20e591(0x301,0x38d)]&&(this[_0x23f80c(0xe8,0xce)][_0x20e591(0x2ad,0x301)]=_0x3bd493);}get['maxAge'](){return this['options']['maxAge'];}set['maxAge'](_0x1d1043){function _0x5dd245(_0x7823a1,_0x26e5da){return _0x35cf84(_0x7823a1,_0x26e5da- -0x1f2);}this[_0x55c052(0x4ce,0x546)]['maxAge']=_0x1d1043;function _0x55c052(_0x539873,_0x1667a2){return _0x35cf84(_0x1667a2,_0x539873-0x1c5);}this[_0x55c052(0x515,0x4c6)]&&(this['windField']['maxAge']=_0x1d1043);}get[_0x35cf84(0x309,0x363)](){function _0x26258e(_0x427d36,_0x368d2e){return _0xdfe442(_0x427d36- -0x2ac,_0x368d2e);}return this[_0x26258e(-0x279,-0x1eb)];}set['data'](_0x31ada3){this['setData'](_0x31ada3);}get['rectangle'](){let _0x13ac10=this[_0x5237e9(-0xd0,-0x9e)]['xmin'],_0x311444=this[_0x5237e9(-0x123,-0x9e)]['xmax'],_0x29401f=this['windData'][_0x13c24b(0x85,0x15)];function _0x5237e9(_0x5e9b44,_0x4eb7e9){return _0x35cf84(_0x5e9b44,_0x4eb7e9- -0x3a9);}let _0x2526cd=this['windData']['ymax'];_0x311444>=0x167&&_0x13ac10===0x0&&(_0x13ac10=-0xb4,_0x311444=0xb4);_0x13ac10=Math['max'](_0x13ac10,-0xb4),_0x311444=Math['min'](_0x311444,0xb4),_0x29401f=Math[_0x5237e9(-0xd5,-0x92)](_0x29401f,-0x5a),_0x2526cd=Math[_0x13c24b(0xa3,0x8b)](_0x2526cd,0x5a);function _0x13c24b(_0x5f4c2b,_0x383952){return _0x35cf84(_0x383952,_0x5f4c2b- -0x2c8);}return Cesium['Rectangle'][_0x13c24b(0x95,0x116)](_0x13ac10,_0x29401f,_0x311444,_0x2526cd);}['_showHook'](_0x5d63b6){function _0x4c1702(_0x2fb8ce,_0xbe501a){return _0xdfe442(_0xbe501a-0x16f,_0x2fb8ce);}function _0x18dad1(_0x34fa66,_0x542da3){return _0xdfe442(_0x542da3- -0xad,_0x34fa66);}_0x5d63b6?this['_addedHook']():(this['windData']&&(this['options'][_0x4c1702(0x1d7,0x1fa)]=this[_0x18dad1(-0x11,-0x7a)]),this[_0x4c1702(0x19a,0x188)]());}[_0xdfe442(-0x1f,0x58)](){function _0x42582f(_0x396cdf,_0x3cbc98){return _0x35cf84(_0x3cbc98,_0x396cdf- -0x4a0);}function _0x21d395(_0x338d5d,_0x4c01ea){return _0x35cf84(_0x338d5d,_0x4c01ea- -0x1d4);}this['options'][_0x42582f(-0x1c2,-0x1a5)]?this[_0x21d395(0x1d5,0x168)]():this[_0x21d395(0x144,0x17c)]=new CanvasWindField(this[_0x42582f(-0x197,-0x1fe)]);}['_addedHook'](){this['canvas']=this['_createCanvas']();function _0x40981b(_0x29939c,_0x14b24b){return _0x35cf84(_0x29939c,_0x14b24b- -0x55b);}const _0x459861={};function _0x3c8bcc(_0x4624e9,_0x2f4e1d){return _0xdfe442(_0x2f4e1d-0x414,_0x4624e9);}_0x459861['willReadFrequently']=!![],this[_0x3c8bcc(0x4ce,0x504)]=this['canvas']['getContext']('2d',_0x459861),this[_0x40981b(-0x2bd,-0x28d)](),this['options'][_0x3c8bcc(0x527,0x49f)]&&this['setData'](this['options']['data']);}[_0xdfe442(0x19,0x0)](){this['clear'](),this['unbindEvent']();function _0x1ef869(_0x5e4a53,_0xcd11c6){return _0x35cf84(_0xcd11c6,_0x5e4a53-0xe5);}this['canvas']&&(this['_map']['container']['removeChild'](this['canvas']),delete this[_0x1ef869(0x40f,0x409)]);}[_0x35cf84(0x34d,0x304)](){const _0x2ad9f2=mars3d__namespace['DomUtil'][_0x18fa08(-0x129,-0x17d)]('canvas',_0xeec9f5(0xc7,0x3c),this['_map']['container']);function _0x18fa08(_0x18acea,_0x47ff28){return _0xdfe442(_0x47ff28- -0x1cc,_0x18acea);}_0x2ad9f2['style'][_0x18fa08(-0x216,-0x1fb)]='absolute',_0x2ad9f2['style'][_0xeec9f5(0x106,0x10b)]=_0xeec9f5(0x107,0xe7),_0x2ad9f2[_0x18fa08(-0x14a,-0xfd)]['left']='0px',_0x2ad9f2[_0x18fa08(-0xd1,-0xfd)]['width']=this['_map']['scene']['canvas']['clientWidth']+'px';function _0xeec9f5(_0x364b2c,_0x316ca){return _0x35cf84(_0x364b2c,_0x316ca- -0x2b6);}return _0x2ad9f2['style']['height']=this[_0x18fa08(-0x1c2,-0x18f)][_0xeec9f5(0xdd,0x91)][_0x18fa08(-0xf4,-0x17a)]['clientHeight']+'px',_0x2ad9f2['style']['pointerEvents']=this[_0xeec9f5(0x77,0xd3)]?'auto':'none',_0x2ad9f2[_0x18fa08(-0x6b,-0xfd)][_0x18fa08(-0xd8,-0x15f)]=this[_0xeec9f5(0x9c,0x53)]['zIndex']??0x9,_0x2ad9f2['width']=this[_0x18fa08(-0x19b,-0x18f)]['scene']['canvas'][_0xeec9f5(0x5e,0x6b)],_0x2ad9f2[_0xeec9f5(0x2c,0x76)]=this[_0xeec9f5(-0x3,0x5f)]['scene']['canvas']['clientHeight'],_0x2ad9f2;}[_0x35cf84(0x383,0x396)](){function _0x1d76a8(_0x25556c,_0x2b3100){return _0x35cf84(_0x2b3100,_0x25556c- -0x285);}function _0x5c05ff(_0x5127b3,_0x4101eb){return _0x35cf84(_0x4101eb,_0x5127b3-0x1bf);}this['canvas']&&(this[_0x1d76a8(0xa5,0x126)]['style']['width']=this[_0x1d76a8(0x90,0x31)][_0x1d76a8(0xc2,0x116)][_0x1d76a8(0xa5,0x99)]['clientWidth']+'px',this[_0x1d76a8(0xa5,0xd9)][_0x5c05ff(0x566,0x5f8)][_0x1d76a8(0xa7,0x94)]=this[_0x1d76a8(0x90,0x126)]['scene']['canvas'][_0x5c05ff(0x542,0x4b4)]+'px',this['canvas'][_0x1d76a8(0x29,-0x15)]=this['_map']['scene'][_0x1d76a8(0xa5,0x60)][_0x5c05ff(0x4e0,0x4ef)],this['canvas']['height']=this['_map'][_0x5c05ff(0x506,0x48a)]['canvas']['clientHeight']);}['bindEvent'](){const _0x2ca230=this;let _0x3b1ba4=Date[_0x3aa5c4(0x136,0x10d)]();(function _0x1ae4ad(){function _0x52a396(_0x316449,_0x130ef3){return _0x3aa5c4(_0x130ef3- -0x122,_0x316449);}if(_0x2ca230['isDestroy'])return;_0x2ca230[_0x1629ac(-0x7e,-0xf6)]=window[_0x52a396(-0x1,0x4c)](_0x1ae4ad);function _0x1629ac(_0x19b4c6,_0x171450){return _0x3aa5c4(_0x19b4c6- -0x21c,_0x171450);}if(_0x2ca230[_0x1629ac(-0xce,-0x114)]&&_0x2ca230[_0x52a396(0x33,0xbf)]){const _0x1f10a8=Date['now'](),_0x1bb75c=_0x1f10a8-_0x3b1ba4;_0x1bb75c>_0x2ca230[_0x52a396(0x177,0x110)]&&(_0x3b1ba4=_0x1f10a8-_0x1bb75c%_0x2ca230['frameTime'],_0x2ca230[_0x52a396(0x8d,0xbd)]());}}(),window['addEventListener']('resize',this['resize'][_0x1b6ff4(-0x14f,-0x16e)](this),![]));function _0x1b6ff4(_0x270ad4,_0x3a1378){return _0x35cf84(_0x270ad4,_0x3a1378- -0x461);}this['mouse_down']=![],this[_0x1b6ff4(-0x13e,-0xc7)]=![];function _0x3aa5c4(_0x563138,_0x6c8e4c){return _0x35cf84(_0x6c8e4c,_0x563138- -0x16f);}this['options']['mouseHidden']&&(this[_0x3aa5c4(0x1a6,0x115)]['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x3aa5c4(0x1a6,0x141)]['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x3aa5c4(0x1f8,0x248)],this),this[_0x3aa5c4(0x1a6,0x1b6)]['on'](mars3d__namespace[_0x1b6ff4(-0x194,-0x1be)]['mouseUp'],this['_onMouseUpEvent'],this));}[_0x35cf84(0x323,0x3a4)](){window['cancelAnimationFrame'](this['_animateFrame']);function _0x5a53ea(_0x2e037b,_0x2281e5){return _0x35cf84(_0x2281e5,_0x2e037b- -0xe9);}function _0x54e28(_0x50028c,_0x536ef8){return _0x35cf84(_0x50028c,_0x536ef8- -0x576);}delete this['_animateFrame'],window['removeEventListener'](_0x54e28(-0x225,-0x1e0),this[_0x54e28(-0x244,-0x1e0)]),this['options'][_0x54e28(-0x1cb,-0x201)]&&(this['_map'][_0x54e28(-0x218,-0x236)](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this['_map'][_0x5a53ea(0x257,0x293)](mars3d__namespace['EventType'][_0x5a53ea(0x245,0x1db)],this['_onMouseDownEvent'],this),this[_0x5a53ea(0x22c,0x1cb)]['off'](mars3d__namespace[_0x5a53ea(0x1ba,0x157)]['mouseUp'],this['_onMouseUpEvent'],this),this[_0x5a53ea(0x22c,0x1e4)]['off'](mars3d__namespace['EventType'][_0x54e28(-0x313,-0x2c4)],this[_0x5a53ea(0x26a,0x28f)],this));}['_onMapWhellEvent'](_0x2d498c){function _0x5e7779(_0x1a4901,_0x5e96f8){return _0x35cf84(_0x1a4901,_0x5e96f8- -0x145);}clearTimeout(this['refreshTimer']);function _0x2c1314(_0xf5ec38,_0x186563){return _0xdfe442(_0x186563- -0x2d8,_0xf5ec38);}if(!this['show']||!this['canvas'])return;this['canvas']['style'][_0x5e7779(0x1af,0x18b)]='hidden',this[_0x2c1314(-0x2d4,-0x2b6)]=setTimeout(()=>{if(!this['show'])return;this['redraw']();function _0x5d4a16(_0x216aad,_0x59a99e){return _0x5e7779(_0x59a99e,_0x216aad-0x24f);}this['canvas']['style'][_0x5d4a16(0x3da,0x3e9)]='visible';},0xc8);}['_onMouseDownEvent'](_0xe3c77a){this['mouse_down']=!![],this['_map'][_0x1d8f19(0x189,0x1c6)](mars3d__namespace['EventType']['mouseMove'],this[_0x1d8f19(0x19c,0x190)],this);function _0x3145fb(_0x4f342c,_0x51c71d){return _0xdfe442(_0x4f342c-0x272,_0x51c71d);}function _0x1d8f19(_0x26f027,_0x5435a2){return _0x35cf84(_0x5435a2,_0x26f027- -0x1b7);}this[_0x3145fb(0x2af,0x323)]['on'](mars3d__namespace[_0x1d8f19(0xec,0x181)][_0x1d8f19(0xfb,0xe6)],this['_onMouseMoveEvent'],this);}[_0x35cf84(0x3e5,0x353)](_0x3ae592){function _0x5ef783(_0x56e317,_0x3be8e2){return _0xdfe442(_0x3be8e2- -0x2de,_0x56e317);}function _0x12af8f(_0x3cd22d,_0x22fcab){return _0x35cf84(_0x22fcab,_0x3cd22d-0xeb);}if(!this['show']||!this['canvas'])return;this[_0x5ef783(-0x36f,-0x314)]&&(this['canvas'][_0x12af8f(0x492,0x4e6)][_0x12af8f(0x3bb,0x3f1)]=_0x12af8f(0x45a,0x4c1),this[_0x12af8f(0x485,0x480)]=!![]);}['_onMouseUpEvent'](_0x4e3eaa){function _0xcc4131(_0x1b2d7f,_0x1c6ada){return _0x35cf84(_0x1c6ada,_0x1b2d7f- -0x51e);}if(!this['show']||!this['canvas'])return;function _0x263a44(_0x374e97,_0x1df748){return _0xdfe442(_0x374e97-0x16c,_0x1df748);}this[_0x263a44(0x1a9,0x131)][_0x263a44(0x1d4,0x195)](mars3d__namespace[_0x263a44(0x137,0x1b2)]['mouseMove'],this['_onMouseMoveEvent'],this),this['mouse_down']&&this['mouse_move']&&this['redraw'](),this['canvas']['style'][_0x263a44(0x164,0x16f)]=_0x263a44(0x220,0x272),this['mouse_down']=![],this[_0xcc4131(-0x184,-0x1df)]=![];}[_0x35cf84(0x2e3,0x33e)](_0x4c3fd4){this['clear'](),this['windData']=_0x4c3fd4;function _0x3ccc55(_0x159698,_0x54ccf7){return _0x35cf84(_0x159698,_0x54ccf7- -0x31c);}this[_0x3ccc55(-0x62,0x34)]['setDate'](_0x4c3fd4);function _0xbb9db5(_0x341b5b,_0x104e4b){return _0xdfe442(_0x104e4b- -0x154,_0x341b5b);}this[_0x3ccc55(0x5c,-0x1e)]();}['redraw'](){if(!this['show'])return;this['windField'][_0x570e95(0x49d,0x41a)](this['options']);function _0x570e95(_0x174190,_0x4ee6d){return _0x35cf84(_0x4ee6d,_0x174190-0x18d);}this['update']();}[_0x35cf84(0x33a,0x34e)](){if(this[_0x3e0ff2(0x92,0xd6)])return;this[_0x3e0ff2(0x92,0x10)]=!![];if(this['worker'])this['windField']['update']();else{const _0x4a0c09=this[_0x3e0ff2(0x12c,0x117)]['getParticles']();this['_drawLines'](_0x4a0c09);}function _0x3e0ff2(_0x1f23ed,_0x221387){return _0xdfe442(_0x1f23ed-0xb4,_0x221387);}function _0x33fac0(_0x1f6e90,_0x58bbbc){return _0x35cf84(_0x1f6e90,_0x58bbbc- -0x53a);}this['_updateIng']=![];}['_drawLines'](_0x27cc67){this[_0x1c815a(0x397,0x36e)]=_0x27cc67;function _0x4ed509(_0x97db07,_0x2efc5d){return _0xdfe442(_0x2efc5d-0x1fb,_0x97db07);}function _0x1c815a(_0x2f0d08,_0xa21f54){return _0xdfe442(_0xa21f54-0x35e,_0x2f0d08);}this['canvasContext'][_0x1c815a(0x450,0x3da)]=_0x1c815a(0x3d7,0x415),this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this['canvasContext'][_0x4ed509(0x24d,0x277)]=_0x1c815a(0x3b2,0x33e),this[_0x4ed509(0x31f,0x2eb)]['globalAlpha']=0.9;const _0x533dac=this['_map']['scene'][_0x1c815a(0x2dc,0x36d)]!==Cesium['SceneMode'][_0x1c815a(0x445,0x428)],_0x1aed18=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0xbf1f4f=0x0,_0x37c920=_0x27cc67['length'];_0xbf1f4f<_0x37c920;_0xbf1f4f++){const _0x388aac=_0x27cc67[_0xbf1f4f],_0x4eaa93=this[_0x4ed509(0x235,0x2b6)](_0x388aac,_0x388aac['lng'],_0x388aac['lat'],_0x388aac['alt']),_0x406057=this[_0x1c815a(0x39a,0x419)](_0x388aac,_0x388aac[_0x4ed509(0x256,0x1f5)],_0x388aac[_0x4ed509(0x1d4,0x257)],_0x388aac[_0x4ed509(0x24e,0x252)]);if(!_0x4eaa93||!_0x406057)continue;if(_0x533dac&&Math['abs'](_0x4eaa93[0x0]-_0x406057[0x0])>=_0x1aed18)continue;this[_0x4ed509(0x2fb,0x2eb)][_0x1c815a(0x483,0x441)](),this[_0x1c815a(0x4b2,0x44e)][_0x1c815a(0x3b6,0x3f4)]=this['lineWidth'],this[_0x1c815a(0x4de,0x44e)][_0x4ed509(0x1f8,0x285)]=this[_0x4ed509(0x307,0x297)][_0x1c815a(0x3e7,0x42e)](_0x388aac[_0x1c815a(0x367,0x360)]),this['canvasContext']['moveTo'](_0x4eaa93[0x0],_0x4eaa93[0x1]),this[_0x4ed509(0x2d3,0x2eb)]['lineTo'](_0x406057[0x0],_0x406057[0x1]),this[_0x4ed509(0x34d,0x2eb)][_0x1c815a(0x2e6,0x337)]();}else{this[_0x4ed509(0x287,0x2eb)][_0x1c815a(0x3dc,0x441)](),this[_0x1c815a(0x4ad,0x44e)][_0x4ed509(0x2c2,0x291)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this['color'];for(let _0x199f4e=0x0,_0x3526bd=_0x27cc67['length'];_0x199f4e<_0x3526bd;_0x199f4e++){const _0x81fa88=_0x27cc67[_0x199f4e],_0x296091=this[_0x1c815a(0x3c9,0x419)](_0x81fa88,_0x81fa88['lng'],_0x81fa88['lat'],_0x81fa88['alt']),_0x2752d8=this['_tomap'](_0x81fa88,_0x81fa88['tlng'],_0x81fa88['tlat'],_0x81fa88['talt']);if(!_0x296091||!_0x2752d8)continue;if(_0x533dac&&Math['abs'](_0x296091[0x0]-_0x2752d8[0x0])>=_0x1aed18)continue;this['canvasContext'][_0x1c815a(0x344,0x35c)](_0x296091[0x0],_0x296091[0x1]),this['canvasContext'][_0x1c815a(0x411,0x42f)](_0x2752d8[0x0],_0x2752d8[0x1]);}this['canvasContext'][_0x4ed509(0x140,0x1d4)]();}}['_tomap'](_0x53c5d0,_0x2a4b33,_0x5497c5,_0x3501b2){const _0x3173a5=Cesium[_0xbef4a(-0x229,-0x1fa)]['fromDegrees'](_0x2a4b33,_0x5497c5,_0x3501b2??this['fixedHeight']),_0x3ee406=this['_map'][_0xbef4a(-0x241,-0x226)];function _0xbef4a(_0x2891b7,_0x16d2da){return _0x35cf84(_0x2891b7,_0x16d2da- -0x56d);}if(_0x3ee406['mode']===Cesium['SceneMode']['SCENE3D']){const _0x1a6d51=new Cesium['EllipsoidalOccluder'](_0x3ee406[_0xbef4a(-0x1ef,-0x274)]['ellipsoid'],_0x3ee406[_0xbef4a(-0x265,-0x253)][_0xbef4a(-0x1dd,-0x254)]),_0x562b57=_0x1a6d51['isPointVisible'](_0x3173a5);if(!_0x562b57)return _0x53c5d0['age']=0x0,null;}const _0x1897db=mars3d__namespace[_0xbef4a(-0x286,-0x213)]['toWindowCoordinates'](this['_map']['scene'],_0x3173a5);function _0x4c0318(_0x55e418,_0x267970){return _0xdfe442(_0x267970- -0x162,_0x55e418);}return _0x1897db?[_0x1897db['x'],_0x1897db['y']]:null;}[_0x35cf84(0x33b,0x2ee)](){this['windField']['clear'](),delete this['windData'];}['initWorker'](){this[_0x53a3ba(0x79,0xef)]=new Worker(this[_0x53a3ba(0x19a,0x11a)]['worker']);function _0x53a3ba(_0x1d3201,_0x31febb){return _0x35cf84(_0x1d3201,_0x31febb- -0x1ef);}function _0x39838c(_0x15b44b,_0x3f34f5){return _0xdfe442(_0x3f34f5-0x46e,_0x15b44b);}this[_0x39838c(0x4ec,0x474)]['onmessage']=_0xd03cbe=>{this[_0x33138b(-0xf8,-0xcc)](_0xd03cbe[_0x33138b(-0x136,-0x118)][_0x33138b(-0x1df,-0x1c4)]);function _0x33138b(_0x1bb348,_0x1ecbb6){return _0x39838c(_0x1bb348,_0x1ecbb6- -0x611);}function _0x45b475(_0x5dbfc5,_0x416ada){return _0x39838c(_0x5dbfc5,_0x416ada- -0x39a);}this['_updateIng2']=![];},this['windField']={'init':_0x3f404b=>{function _0x2ff90f(_0x3f5d7e,_0x3e63c5){return _0x53a3ba(_0x3f5d7e,_0x3e63c5-0x311);}const _0x120508={};_0x120508[_0x1cff67(0x485,0x3f8)]='init';function _0x1cff67(_0x42abbe,_0x2bc823){return _0x39838c(_0x42abbe,_0x2bc823- -0xbe);}_0x120508['options']=_0x3f404b,this[_0x1cff67(0x422,0x3b6)][_0x2ff90f(0x42a,0x44d)](_0x120508);},'setOptions':_0x449635=>{const _0x2a513a={};_0x2a513a['type']=_0x3147fa(0x433,0x3a2),_0x2a513a['options']=_0x449635;function _0x3147fa(_0x448b16,_0x27c779){return _0x53a3ba(_0x448b16,_0x27c779-0x281);}this['worker']['postMessage'](_0x2a513a);},'setDate':_0x2d2b0d=>{const _0x3c9008={};_0x3c9008['type']=_0x1ca2fd(0x2d5,0x2da),_0x3c9008['data']=_0x2d2b0d;function _0x5160b8(_0x4b81d9,_0x1c9029){return _0x39838c(_0x1c9029,_0x4b81d9- -0x3e7);}function _0x1ca2fd(_0x3b58c1,_0x52ce08){return _0x53a3ba(_0x52ce08,_0x3b58c1-0x10a);}this[_0x1ca2fd(0x1f9,0x1af)][_0x5160b8(0xda,0xc2)](_0x3c9008);},'update':()=>{if(this[_0x198fc8(0x25c,0x25a)])return;this[_0x198fc8(0x263,0x25a)]=!![];function _0x16396e(_0x45b65c,_0xd414a3){return _0x39838c(_0xd414a3,_0x45b65c- -0x86);}const _0x239edf={};_0x239edf[_0x16396e(0x430,0x45d)]='update';function _0x198fc8(_0x3db478,_0x52fe73){return _0x39838c(_0x3db478,_0x52fe73- -0x309);}this['worker']['postMessage'](_0x239edf);},'clear':()=>{function _0x4a309d(_0xcfeb6,_0x21ba63){return _0x39838c(_0xcfeb6,_0x21ba63- -0x5ca);}const _0x475f31={};function _0xa06c6f(_0x50b738,_0x471f5a){return _0x39838c(_0x471f5a,_0x50b738- -0x116);}_0x475f31[_0xa06c6f(0x3a0,0x36f)]='clear',this[_0x4a309d(-0x16d,-0x156)]['postMessage'](_0x475f31);}},this[_0x53a3ba(0x102,0x161)][_0x53a3ba(0x108,0xcb)](this[_0x39838c(0x435,0x49f)]);}}mars3d__namespace['LayerUtil'][_0xdfe442(0xc4,0xd7)](_0xdfe442(-0x7,0x51),CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x35cf84(0x296,0x2fd)][_0x35cf84(0x306,0x2cc)]('mars3d-wind插件注册成功\x20\x20\x20\x20\x20版本:'+version+'\x20\x20\x20\x20编译日期:'+buildTime),mars3d__namespace[_0x35cf84(0x380,0x2e9)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x322657={};_0x322657[_0xdfe442(0x4d,0xca)]=!![],Object['defineProperty'](exports,'__esModule',_0x322657);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.11.6",
3
+ "version": "3.11.8",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.11.6"
8
+ "mars3d": "~3.11.8"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"