mars3d-wind 3.10.0 → 3.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/mars3d-wind.js +3 -3
  2. package/package.json +2 -2
package/mars3d-wind.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.10.0
5
- * 编译日期:2025-07-06 18:32
4
+ * 版本信息:v3.10.2
5
+ * 编译日期:2025-08-11 22:12
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:火星科技免费公开版 ,2025-07-01
8
8
  */
@@ -11,5 +11,5 @@
11
11
  typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
12
12
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
13
13
  })(this, (function (exports, mars3d) {
14
- 'use strict';(function(_0x87f0f7,_0x8809cb){const _0x16960f=_0x87f0f7();function _0x40a75a(_0x4c980b,_0x4185f0){return _0x8b0c(_0x4c980b-0x31a,_0x4185f0);}function _0x2730d9(_0x353c8d,_0x530f79){return _0x8b0c(_0x530f79- -0x4e,_0x353c8d);}while(!![]){try{const _0x55a46f=-parseInt(_0x2730d9(0x15d,0x19c))/0x1*(-parseInt(_0x2730d9(0x2e,0xb3))/0x2)+-parseInt(_0x2730d9(0xae,0x110))/0x3+parseInt(_0x40a75a(0x4f7,0x579))/0x4*(parseInt(_0x2730d9(0x1f2,0x171))/0x5)+-parseInt(_0x2730d9(0x157,0xf8))/0x6*(parseInt(_0x40a75a(0x492,0x474))/0x7)+parseInt(_0x2730d9(0x19d,0x144))/0x8*(-parseInt(_0x40a75a(0x489,0x466))/0x9)+-parseInt(_0x40a75a(0x3f8,0x46e))/0xa+parseInt(_0x2730d9(0x114,0xd3))/0xb;if(_0x55a46f===_0x8809cb)break;else _0x16960f['push'](_0x16960f['shift']());}catch(_0x184e34){_0x16960f['push'](_0x16960f['shift']());}}}(_0x4cf2,0x90757));function _interopNamespace(_0x431709){if(_0x431709&&_0x431709['__esModule'])return _0x431709;function _0x3581a9(_0x4fc3cc,_0x477355){return _0x8b0c(_0x4fc3cc-0x15b,_0x477355);}var _0x2089c5=Object['create'](null);return _0x431709&&Object['keys'](_0x431709)['forEach'](function(_0x17be8d){function _0x4cda91(_0x556b1c,_0x65f06){return _0x8b0c(_0x556b1c-0x14f,_0x65f06);}if(_0x17be8d!=='default'){var _0x472f4c=Object['getOwnPropertyDescriptor'](_0x431709,_0x17be8d);Object['defineProperty'](_0x2089c5,_0x17be8d,_0x472f4c[_0x4cda91(0x30f,0x29e)]?_0x472f4c:{'enumerable':!![],'get':function(){return _0x431709[_0x17be8d];}});}}),_0x2089c5[_0x3581a9(0x25f,0x2e5)]=_0x431709,_0x2089c5;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x127255,_0x4a3270){function _0x658900(_0x65504e,_0x3aff02){return _0x8b0c(_0x65504e- -0xe6,_0x3aff02);}const _0x4ce5dc=_0x127255*Math[_0x658900(0x40,0x6c)](Cesium$2['Math']['toRadians'](_0x4a3270));return _0x4ce5dc;}function getV(_0x3067c6,_0x316d0c){const _0x326e8f=_0x3067c6*Math['sin'](Cesium$2[_0x189217(0x383,0x30d)]['toRadians'](_0x316d0c));function _0x189217(_0x4e2988,_0x194c62){return _0x8b0c(_0x194c62-0x160,_0x4e2988);}return _0x326e8f;}function getSpeed(_0x530e8f,_0x3144d4){const _0x1e4aa1=Math['sqrt'](Math['pow'](_0x530e8f,0x2)+Math['pow'](_0x3144d4,0x2));return _0x1e4aa1;}function _0x4cf2(){const _0x39c38a=['LayerUtil','refreshTimer','PointTrans','fixedHeight','CLAMP_TO_EDGE','16059505IyBMcY','updateOptions','destroyParticlesTextures','data','keys','cos','getU','LINEAR','layer','getPostProcessingPositionShader','clientWidth','MIN_VALUE','changed','ymin','rows','#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','reverse','min\x20is\x20undefined,\x20calculate\x20min','fillRect','dynamic','xmin','abs','lineWidth','requestRender','width','drawingBufferHeight','number','update','strokeStyle','fromDegrees','updateViewerParameters','IDENTITY','globalCompositeOperation','createParticlesTextures','calculateSpeed','geometry','_updateIng','78BrECeR','options','getUVByPoint','windData','clientHeight','colors','ONE_MINUS_SRC_ALPHA','primitiveType','WindUtil','vmin','outputTexture','_onMapWhellEvent','primitives','round','shaderProgram','green','frameTime','frameRateAdjustment','_setOptionsHook','clear','show','fromGeometry','isPointVisible','original','1015131kWjIWR','particles','remove','warn','vmax','SCENE3D','grid','_bilinearInterpolation','commandList','moveTo','fragmentShaderSource','_calcUV','fromCssColorString','alt','_calc_speedRate','_maxAge','FUNC_ADD','3025179gHdzcK','bind','_addedHook','particlesNumber','initFrameRate','sources','updateWindData','ellipsoid','slice','330981MnGkeZ','#ffffff','quietPeriod','camera','none','blue','create','NEAREST','_canrefresh','reCreateWindTextures','_createCanvas','__proto__','south','SceneMode','getCalculateSpeedShader','canvas','height','lng','componentDatatype','changeOptions','container','push','clearCommand','vertexShaderSource','_onMouseDownEvent','unbindEvent','8ybuSBU','getV','wrapT','removeChild','wind','hidden','pass','ymax','framebuffers','FLOAT','MAX_VALUE','vertexArray','pointer-events','forEach','umin','logInfo','register','_showHook','length','setDate','canvasHeight','lastFramesPerSecond','bounds','onParticlesTextureSizeChange','min','sqrt','visibility','Math','globe','magnificationFilter','lineLength','getDirection','add','commandToExecute','_onMouseMoveEvent','pointerEvents','postProcessingPosition','computing','wrapS','renderState','canvasWidth','getRandomLatLng','modelMatrix','_map','createCommand','205EtMYGY','get','Cartesian2','setData','preExecute','particlesTextureSize','onColorTableChange','getUVByXY','defineProperty','windTextures','frameRateMonitor','longitude','Cesium','age','initWorker','north','_drawLines','segmentsColor','mouseHidden','particlesSpeed','globalAlpha','#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','pixelDatatype','componentsPerAttribute','onmessage','EllipsoidalOccluder','windField','createWindTextures','displayRange','particleSystem','27740sXNbsy','xmax','values','east','latRange','Compute','isInExtent','bufferUsage','uniformMap','flipY','zIndex','_mountedHook','OPAQUE','25957FddSgN','mouseMove','setOptions','toDegrees','morphComplete','west','createRenderingFramebuffers','atan2','minificationFilter','udata','_removedHook','array','_randomParticle','canvasContext','frameRate','RED','pixelSize','mouse_move','colorTable','blendFuncSource','viewerParameters','worker','1489270YlXApG','framebuffer','viewport','redraw','segments','nextParticlesPosition','rawRenderState','lat','cols','getSegmentDrawFragmentShader','_pointerEvents','floor','applyViewerParameters','_tomap','TRIANGLES','mode','updatePosition','0px','type','currentParticlesPosition','owner','bindEvent','__esModule','dropRate','tlng','RGBA','resize','commandType','fromCache','flatMap','speed','WindLayer','talt','willReadFrequently','isDynamic','22DJaMTV','textures','speedFactor','default','style','maxAge','toGridXY','addEventListener','persists','destroy','max','scene','canvasWind','speedRate','EventType','createPrimitives','Draw','cancelAnimationFrame','context','removeEventListener','postMessage','rgb(206,255,255)','color','attributeLocations','rendering','particlesTextures','_updateIng2'];_0x4cf2=function(){return _0x39c38a;};return _0x4cf2();}function getDirection(_0x258a1e,_0x105d66){function _0x18cd8d(_0x42c28a,_0xffa041){return _0x8b0c(_0xffa041-0x306,_0x42c28a);}let _0x4cf530=Cesium$2['Math']['toDegrees'](Math[_0x18cd8d(0x533,0x4f7)](_0x105d66,_0x258a1e));return _0x4cf530+=_0x4cf530<0x0?0x168:0x0,_0x4cf530;}const _0x44aca9={};_0x44aca9[_0x1a7384(0x39f,0x383)]=null,_0x44aca9[_0x177c41(0x267,0x2c8)]=getU,_0x44aca9[_0x177c41(0x2d3,0x2f1)]=getV,_0x44aca9['getSpeed']=getSpeed,_0x44aca9[_0x1a7384(0x3d2,0x3b1)]=getDirection;var WindUtil=_0x44aca9,updatePositionShader=_0x1a7384(0x3c3,0x3d4),calculateSpeedShader=_0x1a7384(0x37c,0x330),postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a';const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x177c41(0x30b,0x2c1)];class ShaderManager{static[_0x1a7384(0x36e,0x386)](){const _0x5c3721={};return _0x5c3721['sources']=[calculateSpeedShader],new ShaderSource$1(_0x5c3721);}static['getUpdatePositionShader'](){const _0x130ce9={};return _0x130ce9['sources']=[updatePositionShader],new ShaderSource$1(_0x130ce9);}static['getSegmentDrawVertexShader'](){function _0x4bec5(_0xb9c3f7,_0x189f08){return _0x177c41(_0xb9c3f7- -0x72,_0x189f08);}const _0x370704={};return _0x370704[_0x4bec5(0x242,0x28a)]=[renderParticlesVertexShader],new ShaderSource$1(_0x370704);}static[_0x1a7384(0x361,0x2e7)](){const _0x1e5312={};return _0x1e5312['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x1e5312);}static[_0x177c41(0x26a,0x215)](){const _0x2d23c1={};return _0x2d23c1['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x2d23c1);}}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[_0x177c41(0x30b,0x346)];class CustomPrimitive{constructor(_0x115463){this['commandType']=_0x115463['commandType'],this['geometry']=_0x115463[_0xec3e70(0x1e6,0x21c)];function _0xec3e70(_0x549514,_0x40f61d){return _0x177c41(_0x549514- -0x9e,_0x40f61d);}this['attributeLocations']=_0x115463[_0xec3e70(0x1ba,0x14e)],this['primitiveType']=_0x115463['primitiveType'],this['uniformMap']=_0x115463['uniformMap']||{},this['vertexShaderSource']=_0x115463[_0x4af2e0(0x452,0x3d6)],this[_0x4af2e0(0x42b,0x458)]=_0x115463['fragmentShaderSource'];function _0x4af2e0(_0xa22d1d,_0x59388a){return _0x177c41(_0xa22d1d-0x183,_0x59388a);}this[_0xec3e70(0x186,0x194)]=_0x115463[_0xec3e70(0x186,0x216)],this['framebuffer']=_0x115463['framebuffer'],this[_0xec3e70(0x1f2,0x251)]=_0x115463[_0x4af2e0(0x413,0x383)],this['autoClear']=_0x115463['autoClear']??![],this[_0xec3e70(0x265,0x231)]=_0x115463['preExecute'],this[_0xec3e70(0x1fc,0x17f)]=!![],this['commandToExecute']=undefined,this['clearCommand']=undefined,this['isDynamic']=_0x115463['isDynamic']??(()=>!![]),this['autoClear']&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0xec3e70(0x181,0x1e7)],'pass':Pass$1['OPAQUE']}));}[_0x1a7384(0x43c,0x3be)](_0x1da76e){function _0x53d2bf(_0x467e23,_0x5e7de3){return _0x1a7384(_0x467e23,_0x5e7de3- -0xfb);}function _0x571fb3(_0x19f611,_0x194ea7){return _0x1a7384(_0x19f611,_0x194ea7-0x12a);}if(this[_0x571fb3(0x3b9,0x423)]===_0x53d2bf(0x281,0x216)){const _0x28c8a5={};_0x28c8a5['context']=_0x1da76e,_0x28c8a5['geometry']=this['geometry'],_0x28c8a5[_0x53d2bf(0x1a5,0x21d)]=this[_0x571fb3(0x46f,0x442)],_0x28c8a5['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x4b4a8c=VertexArray$1['fromGeometry'](_0x28c8a5),_0x2bccd2={};_0x2bccd2['context']=_0x1da76e,_0x2bccd2['vertexShaderSource']=this['vertexShaderSource'],_0x2bccd2[_0x53d2bf(0x2a7,0x26d)]=this['fragmentShaderSource'],_0x2bccd2[_0x53d2bf(0x1ab,0x21d)]=this[_0x53d2bf(0x193,0x21d)];const _0x7c6f35=ShaderProgram['fromCache'](_0x2bccd2),_0x2c685e=RenderState[_0x53d2bf(0x216,0x1ff)](this[_0x571fb3(0x48c,0x40e)]),_0x38b8bf={};return _0x38b8bf[_0x571fb3(0x3d5,0x41c)]=this,_0x38b8bf[_0x53d2bf(0x274,0x2a2)]=_0x4b4a8c,_0x38b8bf[_0x53d2bf(0x261,0x252)]=this['primitiveType'],_0x38b8bf[_0x571fb3(0x4ed,0x4e6)]=Matrix4[_0x571fb3(0x476,0x46a)],_0x38b8bf[_0x53d2bf(0x330,0x2be)]=_0x2c685e,_0x38b8bf['shaderProgram']=_0x7c6f35,_0x38b8bf['framebuffer']=this['framebuffer'],_0x38b8bf['uniformMap']=this[_0x571fb3(0x548,0x50f)],_0x38b8bf[_0x571fb3(0x4ab,0x4c2)]=Pass$1[_0x53d2bf(0x2f4,0x2ee)],new DrawCommand(_0x38b8bf);}else{if(this[_0x53d2bf(0x1e5,0x1fe)]==='Compute'){const _0x347ed7={};return _0x347ed7[_0x571fb3(0x40c,0x41c)]=this,_0x347ed7['fragmentShaderSource']=this[_0x53d2bf(0x2c3,0x26d)],_0x347ed7['uniformMap']=this[_0x571fb3(0x4c1,0x50f)],_0x347ed7[_0x571fb3(0x483,0x47a)]=this[_0x571fb3(0x415,0x47a)],_0x347ed7[_0x53d2bf(0x23e,0x20e)]=!![],new ComputeCommand(_0x347ed7);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x409718,_0x157ab7){this['geometry']=_0x157ab7;function _0xeadb43(_0x3fc243,_0x53af28){return _0x177c41(_0x53af28-0x114,_0x3fc243);}function _0xfe6959(_0xa82db2,_0x462fd6){return _0x1a7384(_0xa82db2,_0x462fd6-0x9f);}defined(this['commandToExecute'])&&(this[_0xfe6959(0x4c2,0x452)]['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x409718,'geometry':this[_0xfe6959(0x3b6,0x3e3)],'attributeLocations':this[_0xfe6959(0x3eb,0x3b7)],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}[_0x177c41(0x27c,0x265)](_0x120edc){if(!this[_0x137803(-0x223,-0x1d2)]())return;function _0x137803(_0x51f5c7,_0x2ffc50){return _0x1a7384(_0x2ffc50,_0x51f5c7- -0x523);}function _0x5c99d6(_0x9e0984,_0x7c6c1c){return _0x1a7384(_0x7c6c1c,_0x9e0984-0x2d);}if(!this['show']||!defined(_0x120edc))return;!defined(this[_0x5c99d6(0x3e0,0x467)])&&(this['commandToExecute']=this['createCommand'](_0x120edc['context']));defined(this[_0x137803(-0x160,-0x15a)])&&this[_0x5c99d6(0x3f0,0x367)]();if(!_0x120edc[_0x5c99d6(0x393,0x35d)]){console[_0x5c99d6(0x38e,0x32c)]('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x120edc['commandList']['push'](this[_0x5c99d6(0x3bb,0x3ed)]),defined(this['commandToExecute'])&&_0x120edc[_0x5c99d6(0x393,0x32d)][_0x137803(-0x196,-0x10e)](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){function _0x15a0c6(_0x139ed8,_0x1ff427){return _0x177c41(_0x139ed8-0xe,_0x1ff427);}if(defined(this[_0x210836(0x4a,0x64)])){var _0x4f326f;(_0x4f326f=this['commandToExecute'][_0x210836(-0x74,0x5)])===null||_0x4f326f===void 0x0||_0x4f326f[_0x210836(-0x5b,-0x45)](),this[_0x210836(0xee,0x64)]['shaderProgram']=undefined;}function _0x210836(_0x4d91cf,_0x23ab6b){return _0x1a7384(_0x4d91cf,_0x23ab6b- -0x34f);}return destroyObject(this);}}function deepMerge(_0x4d2ed4,_0x3a0467){if(!_0x4d2ed4)return _0x3a0467;function _0x203f60(_0x4b1e14,_0x183046){return _0x177c41(_0x4b1e14- -0x372,_0x183046);}if(!_0x3a0467)return _0x4d2ed4;const _0x57a724={..._0x3a0467},_0x4c6c34=_0x57a724;for(const _0x259d3f in _0x4d2ed4){if(Object['prototype']['hasOwnProperty']['call'](_0x4d2ed4,_0x259d3f)){const _0x1caded=_0x4d2ed4[_0x259d3f],_0x2f2057=_0x3a0467[_0x259d3f];if(Array['isArray'](_0x1caded)){_0x4c6c34[_0x259d3f]=_0x1caded[_0x203f60(-0xbb,-0x91)]();continue;}if(_0x1caded&&typeof _0x1caded==='object'){_0x4c6c34[_0x259d3f]=deepMerge(_0x1caded,_0x2f2057||{});continue;}_0x1caded!==undefined&&(_0x4c6c34[_0x259d3f]=_0x1caded);}}return _0x4c6c34;}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(_0x5ae948,_0x11bc7d,_0x330a31,_0x5410d9,_0x4555c0){this[_0x495348(0x469,0x44e)]=_0x5ae948,this[_0x41398c(0x26c,0x241)]=_0x330a31,this[_0x495348(0x432,0x414)]=_0x5410d9;function _0x41398c(_0x32d42f,_0x341908){return _0x1a7384(_0x341908,_0x32d42f- -0xdb);}this['windData']=_0x11bc7d,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x588b1c={};function _0x495348(_0x1363ce,_0x2e1a8d){return _0x1a7384(_0x2e1a8d,_0x1363ce-0x156);}_0x588b1c['scene']=_0x4555c0,_0x588b1c['samplingWindow']=0x1,_0x588b1c[_0x495348(0x4d0,0x462)]=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x588b1c),this[_0x41398c(0x298,0x2ff)](),this[_0x41398c(0x2ff,0x2c6)](),this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){function _0x1f7ffd(_0x49dbe0,_0x167583){return _0x177c41(_0x49dbe0- -0xe6,_0x167583);}const _0x334483=()=>{function _0x2ac9ad(_0x4eddb1,_0x5daf51){return _0x8b0c(_0x4eddb1-0x261,_0x5daf51);}function _0x1467f4(_0x411429,_0xe58869){return _0x8b0c(_0x411429- -0x4f,_0xe58869);}this['frameRateMonitor'][_0x1467f4(0x158,0x16e)]>0x14&&(this['frameRate']=this[_0x2ac9ad(0x42a,0x3f2)][_0x1467f4(0x158,0x1b7)],this[_0x2ac9ad(0x3b8,0x430)]=0x3c/Math['max'](this['frameRate'],0x1));};_0x334483();const _0x8425dd=setInterval(_0x334483,0x3e8),_0x58c524=this[_0x2b2332(0x94,0x3)]['bind'](this);function _0x2b2332(_0x4bc8d0,_0x553fac){return _0x177c41(_0x4bc8d0- -0x1b6,_0x553fac);}this[_0x1f7ffd(0x164,0x157)]=()=>{clearInterval(_0x8425dd),_0x58c524();};}['createWindTextures'](){const _0x1d06ea={};_0x1d06ea['minificationFilter']=TextureMinificationFilter$1[_0x1ca406(0x7b,0x4e)];function _0x4f4ae7(_0x2af05f,_0x4761f2){return _0x1a7384(_0x2af05f,_0x4761f2-0x1be);}function _0x1ca406(_0x316bd8,_0x4d5826){return _0x177c41(_0x4d5826- -0x21a,_0x316bd8);}_0x1d06ea['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x3b7c59={'context':this[_0x1ca406(0x78,0x39)],'width':this[_0x1ca406(0xf7,0x6f)]['width'],'height':this[_0x4f4ae7(0x4f5,0x507)][_0x4f4ae7(0x50e,0x546)],'pixelFormat':PixelFormat$1[_0x4f4ae7(0x50e,0x495)],'pixelDatatype':PixelDatatype$1[_0x4f4ae7(0x528,0x559)],'flipY':this[_0x4f4ae7(0x4fa,0x505)]['flipY']??![],'sampler':new Sampler$1(_0x1d06ea)};this[_0x1ca406(0x92,0xee)]={'U':new Texture$1({..._0x3b7c59,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x3b7c59,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){function _0x573347(_0x530994,_0x1f2129){return _0x177c41(_0x530994- -0x9c,_0x1f2129);}const _0x57023f={};_0x57023f[_0x26a402(-0x44,-0x6)]=TextureMinificationFilter$1['NEAREST'];function _0x26a402(_0x3c83f3,_0x345c22){return _0x1a7384(_0x3c83f3,_0x345c22- -0x3f8);}_0x57023f[_0x26a402(-0x11,-0x49)]=TextureMagnificationFilter$1[_0x573347(0x223,0x1e3)];const _0x28108a={'context':this['context'],'width':this[_0x26a402(-0xf2,-0xb1)]['particlesTextureSize'],'height':this[_0x573347(0x1eb,0x1e8)]['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x26a402(0x2d,-0x5d)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options']['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x57023f)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x28108a),'currentParticlesPosition':new Texture$1(_0x28108a),'nextParticlesPosition':new Texture$1(_0x28108a),'postProcessingPosition':new Texture$1(_0x28108a),'particlesSpeed':new Texture$1(_0x28108a)};}[_0x1a7384(0x35c,0x323)](){function _0x2595d7(_0x4de6d5,_0x527877){return _0x177c41(_0x527877-0x8c,_0x4de6d5);}function _0x22316b(_0x4231f2,_0x1bbf17){return _0x1a7384(_0x1bbf17,_0x4231f2- -0x456);}Object[_0x22316b(-0x77,-0x8a)](this['particlesTextures'])['forEach'](_0x3f74e3=>_0x3f74e3[_0x2595d7(0x304,0x2d6)]());}['createComputingPrimitives'](){function _0x27d96e(_0x29fcb5,_0x4254be){return _0x177c41(_0x29fcb5-0x111,_0x4254be);}function _0x197040(_0x2b0fe2,_0x1abc11){return _0x1a7384(_0x1abc11,_0x2b0fe2- -0x531);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x197040(-0x14f,-0x15b),'uniformMap':{'U':()=>this[_0x197040(-0x169,-0x1f4)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x27d96e(0x39a,0x3ff)]['u']['min'],this[_0x27d96e(0x39a,0x30d)]['u'][_0x27d96e(0x35c,0x3c7)]),'vRange':()=>new Cartesian2$1(this['windData']['v'][_0x27d96e(0x3fb,0x480)],this[_0x27d96e(0x39a,0x3b1)]['v'][_0x197040(-0x226,-0x291)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed']['min'],this['windData'][_0x197040(-0x235,-0x288)]['max']),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x421093(_0x58594d,_0x4c2161){return _0x197040(_0x58594d-0x44c,_0x4c2161);}function _0x3a7fb6(_0x828860,_0x4c5006){return _0x197040(_0x828860-0x161,_0x4c5006);}return(this[_0x421093(0x1f7,0x252)][_0x3a7fb6(-0xf8,-0xbd)]+0x32)*this[_0x3a7fb6(-0x89,-0x59)][_0x421093(0x21e,0x22f)];},'frameRateAdjustment':()=>this[_0x27d96e(0x3a8,0x381)],'dimension':()=>new Cartesian2$1(this[_0x197040(-0x1e8,-0x18c)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this[_0x27d96e(0x39a,0x3f8)][_0x27d96e(0x3f9,0x438)][_0x27d96e(0x440,0x3cf)],this['windData']['bounds'][_0x197040(-0x1ad,-0x1e4)]),'maximum':()=>new Cartesian2$1(this[_0x27d96e(0x39a,0x3b4)][_0x197040(-0x189,-0x1b9)]['east'],this['windData']['bounds']['north'])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures'][_0x27d96e(0x423,0x479)],'preExecute':()=>{const _0x115fc4=this['particlesTextures']['previousParticlesPosition'];this[_0x4f9157(0x1b9,0x221)]['previousParticlesPosition']=this[_0x484581(0x2e0,0x350)][_0x484581(0x2b7,0x2ea)],this[_0x4f9157(0x196,0x221)]['currentParticlesPosition']=this[_0x4f9157(0x1d0,0x221)][_0x4f9157(0x26e,0x2bd)];function _0x4f9157(_0x1b2259,_0x17aa33){return _0x197040(_0x17aa33-0x438,_0x1b2259);}this['particlesTextures']['postProcessingPosition']=_0x115fc4;function _0x484581(_0x314eab,_0x251ccb){return _0x197040(_0x314eab-0x4f7,_0x251ccb);}this['primitives'][_0x4f9157(0x24b,0x24a)]['commandToExecute']&&(this['primitives']['calculateSpeed'][_0x4f9157(0x2c7,0x2ba)][_0x484581(0x316,0x37f)]=this[_0x4f9157(0x25a,0x221)][_0x4f9157(0x34c,0x2d9)]);},'isDynamic':()=>this['options'][_0x27d96e(0x385,0x39a)]}),'updatePosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'currentParticlesPosition':()=>this[_0x27d96e(0x36b,0x3a2)]['currentParticlesPosition'],'particlesSpeed':()=>this[_0x197040(-0x217,-0x1ce)][_0x197040(-0x15f,-0x1de)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures'][_0x27d96e(0x334,0x2f7)],'preExecute':()=>{function _0x3504fe(_0x444d21,_0x3418a6){return _0x27d96e(_0x3418a6- -0x294,_0x444d21);}function _0x2fcb6e(_0x2ce483,_0x37fb96){return _0x197040(_0x2ce483-0xdb,_0x37fb96);}this['primitives'][_0x2fcb6e(-0x168,-0xe2)][_0x3504fe(0x139,0x170)]&&(this['primitives'][_0x3504fe(0x65,0xab)]['commandToExecute']['outputTexture']=this['particlesTextures']['nextParticlesPosition']);},'isDynamic':()=>this[_0x27d96e(0x398,0x356)][_0x27d96e(0x385,0x327)]}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x197040(-0x217,-0x23a)]['nextParticlesPosition'],'particlesSpeed':()=>this['particlesTextures'][_0x197040(-0x15f,-0x1d2)],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this['viewerParameters']['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData']['bounds'][_0x197040(-0x142,-0x1c0)],this[_0x27d96e(0x39a,0x314)]['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x27d96e(0x3f9,0x369)][_0x197040(-0x1ad,-0x216)],this[_0x197040(-0x1e8,-0x257)][_0x27d96e(0x3f9,0x3d3)]['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this[_0x197040(-0x1ea,-0x206)]['dropRate'],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this[_0x27d96e(0x398,0x3a7)]['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x2a606b(_0x5b827b,_0xe3924d){return _0x27d96e(_0xe3924d- -0x48f,_0x5b827b);}function _0x490b0d(_0x6dc6bf,_0x172eaf){return _0x197040(_0x172eaf-0x4a2,_0x6dc6bf);}this['primitives']['postProcessingPosition']['commandToExecute']&&(this[_0x2a606b(-0xd9,-0xec)][_0x490b0d(0x341,0x327)][_0x490b0d(0x345,0x324)]['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this['options']['dynamic']})};}['reCreateWindTextures'](){this['windTextures']['U']['destroy'](),this['windTextures']['V']['destroy'](),this['createWindTextures']();}[_0x1a7384(0x3ea,0x375)](_0x108576){function _0x2b6786(_0x422e52,_0x44aed1){return _0x1a7384(_0x44aed1,_0x422e52- -0x3a2);}function _0x329637(_0x4bd386,_0x2d7c01){return _0x1a7384(_0x2d7c01,_0x4bd386- -0x553);}this[_0x329637(-0x20a,-0x285)]=_0x108576,this[_0x329637(-0x1d2,-0x1cd)]();}['updateOptions'](_0x3bd41e){function _0x318539(_0x10b232,_0x15f142){return _0x177c41(_0x15f142-0x87,_0x10b232);}function _0x348190(_0xdbe3e7,_0x2eb05c){return _0x177c41(_0x2eb05c-0xd5,_0xdbe3e7);}const _0xafd84b=_0x3bd41e[_0x318539(0x342,0x3ad)]!==undefined&&_0x3bd41e[_0x348190(0x46c,0x3fb)]!==this[_0x318539(0x354,0x30e)]['flipY'];this['options']=deepMerge(_0x3bd41e,this['options']),_0xafd84b&&this['reCreateWindTextures']();}['processWindData'](_0xc5fe43){function _0x47e49c(_0x82e40e,_0x58587f){return _0x177c41(_0x58587f-0x98,_0x82e40e);}const {array:_0xb2d0ed}=_0xc5fe43;let {min:_0x4a76e7,max:_0xe53df2}=_0xc5fe43;const _0x429953=new Float32Array(_0xb2d0ed[_0x47e49c(0x363,0x37c)]);_0x4a76e7===undefined&&(console['warn'](_0x5c8171(0x27e,0x2d9)),_0x4a76e7=Math['min'](..._0xb2d0ed));_0xe53df2===undefined&&(console[_0x47e49c(0x3be,0x339)]('max\x20is\x20undefined,\x20calculate\x20max'),_0xe53df2=Math['max'](..._0xb2d0ed));const _0x663d43=Math[_0x5c8171(0x257,0x226)](Math[_0x5c8171(0x282,0x312)](_0x4a76e7),Math['abs'](_0xe53df2));for(let _0x3165f1=0x0;_0x3165f1<_0xb2d0ed['length'];_0x3165f1++){const _0x16d0bf=_0xb2d0ed[_0x3165f1]/_0x663d43;_0x429953[_0x3165f1]=_0x16d0bf;}function _0x5c8171(_0x594328,_0x350ef2){return _0x1a7384(_0x350ef2,_0x594328- -0xb4);}return _0x429953;}['destroy'](){function _0x2266ae(_0x403ad6,_0x649d52){return _0x1a7384(_0x649d52,_0x403ad6- -0x4b);}Object[_0x2266ae(0x394,0x3fd)](this['windTextures'])['forEach'](_0x2ef516=>_0x2ef516['destroy']());function _0x2facf9(_0x1f9965,_0x593abc){return _0x177c41(_0x1f9965- -0x2d1,_0x593abc);}Object[_0x2facf9(0x4e,0x39)](this['particlesTextures'])[_0x2facf9(0xe,0x14)](_0xb5eb45=>_0xb5eb45['destroy']()),Object['values'](this[_0x2266ae(0x307,0x311)])[_0x2266ae(0x354,0x33d)](_0x1d6bc2=>_0x1d6bc2['destroy']()),this[_0x2facf9(0x38,-0x15)]['destroy']();}}function _0x8b0c(_0x1eaab1,_0x12ffb3){const _0x4cf200=_0x4cf2();return _0x8b0c=function(_0x8b0c1c,_0x51c5f9){_0x8b0c1c=_0x8b0c1c-0xd2;let _0x5b205c=_0x4cf200[_0x8b0c1c];return _0x5b205c;},_0x8b0c(_0x1eaab1,_0x12ffb3);}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(_0x3eb830,_0x51df03,_0x1be1e5,_0x307e6a){function _0x59c331(_0x1ea728,_0x6bdadf){return _0x177c41(_0x1ea728-0x1ad,_0x6bdadf);}this['context']=_0x3eb830,this[_0x2e08d4(0x410,0x3b2)]=_0x51df03,this['viewerParameters']=_0x1be1e5,this['computing']=_0x307e6a;(typeof this[_0x59c331(0x434,0x3d8)][_0x59c331(0x4b1,0x487)]!==_0x59c331(0x428,0x4a3)||this['options'][_0x2e08d4(0x45c,0x42f)]<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x2e08d4(0x37b,0x3b2)]['particlesTextureSize']=0x100);function _0x2e08d4(_0xd1c0a6,_0x25eb01){return _0x177c41(_0x25eb01-0x12b,_0xd1c0a6);}this[_0x2e08d4(0x36d,0x345)]=this['createColorTableTexture'](),this['textures']=this['createRenderingTextures'](),this[_0x2e08d4(0x3e7,0x405)]=this['createRenderingFramebuffers'](),this[_0x59c331(0x43f,0x456)]=this[_0x59c331(0x3fd,0x444)]();}['createRenderingTextures'](){function _0xe87db7(_0x42ea05,_0xa7186c){return _0x177c41(_0xa7186c-0x132,_0x42ea05);}const _0x272ce3={};_0x272ce3[_0xe87db7(0x3e0,0x385)]=this['context'];function _0xeea94d(_0xa22529,_0x589781){return _0x1a7384(_0x589781,_0xa22529- -0x57f);}_0x272ce3['width']=this['context']['drawingBufferWidth'],_0x272ce3['height']=this['context'][_0xeea94d(-0x245,-0x2b3)],_0x272ce3['pixelFormat']=PixelFormat[_0xeea94d(-0x288,-0x1f9)],_0x272ce3[_0xeea94d(-0x1aa,-0x16c)]=PixelDatatype['UNSIGNED_BYTE'];const _0x35510c=_0x272ce3,_0x39e98c={};_0x39e98c['context']=this[_0xe87db7(0x3f0,0x385)],_0x39e98c['width']=this[_0xeea94d(-0x26c,-0x2d9)]['drawingBufferWidth'],_0x39e98c[_0xeea94d(-0x1f7,-0x182)]=this['context']['drawingBufferHeight'],_0x39e98c['pixelFormat']=PixelFormat['DEPTH_COMPONENT'],_0x39e98c['pixelDatatype']=PixelDatatype['UNSIGNED_INT'];const _0x3b41b3=_0x39e98c;return{'segmentsColor':new Texture(_0x35510c),'segmentsDepth':new Texture(_0x3b41b3)};}[_0x177c41(0x330,0x376)](){const _0x51cdb6={};function _0x1a1ad7(_0xb8ff43,_0x5d496f){return _0x1a7384(_0x5d496f,_0xb8ff43- -0x1e);}_0x51cdb6[_0x1a1ad7(0x2f5,0x37b)]=this['context'],_0x51cdb6['colorTextures']=[this[_0x1a1ad7(0x2e4,0x298)][_0x1a1ad7(0x3b2,0x37a)]],_0x51cdb6['depthTexture']=this['textures']['segmentsDepth'];function _0x698302(_0x1cbb5f,_0x2d3ddc){return _0x1a7384(_0x1cbb5f,_0x2d3ddc- -0x46a);}return{'segments':new Framebuffer(_0x51cdb6)};}['destoryRenderingFramebuffers'](){function _0x312bf3(_0x44407b,_0x494bd3){return _0x177c41(_0x44407b- -0x208,_0x494bd3);}function _0xb9ef97(_0x1cf43a,_0xed57e8){return _0x1a7384(_0xed57e8,_0x1cf43a- -0x538);}Object['values'](this[_0x312bf3(0xd2,0xdb)])[_0xb9ef97(-0x199,-0x142)](_0x32cb7a=>{function _0x4445d4(_0x290202,_0x7342a2){return _0xb9ef97(_0x290202-0x367,_0x7342a2);}_0x32cb7a[_0x4445d4(0x139,0x1ca)]();});}['createColorTableTexture'](){const _0x2d1763=new Float32Array(this['options'][_0x1309a9(0x3f7,0x38f)][_0x1309a9(0x3a7,0x330)](_0x1c3f94=>{function _0x2163c6(_0x169c31,_0x3a38ba){return _0x453201(_0x3a38ba,_0x169c31-0x11e);}function _0x1d7a11(_0x327247,_0x406772){return _0x453201(_0x327247,_0x406772-0x1a4);}const _0x30e73c=Color$1[_0x1d7a11(-0x63,-0x3c)](_0x1c3f94);return[_0x30e73c['red'],_0x30e73c[_0x2163c6(-0xd7,-0x8c)],_0x30e73c[_0x2163c6(-0xaf,-0x7d)],_0x30e73c['alpha']];})),_0x314857={};_0x314857['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x314857['magnificationFilter']=TextureMagnificationFilter[_0x453201(-0x203,-0x222)],_0x314857[_0x453201(-0x1a4,-0x192)]=TextureWrap[_0x1309a9(0x3cc,0x34e)];function _0x1309a9(_0x515f8,_0x5abad7){return _0x1a7384(_0x5abad7,_0x515f8-0xac);}_0x314857[_0x453201(-0x190,-0x1b6)]=TextureWrap[_0x453201(-0x1ba,-0x22a)];function _0x453201(_0x170356,_0x18d720){return _0x177c41(_0x18d720- -0x48a,_0x170356);}return new Texture({'context':this['context'],'width':this[_0x1309a9(0x3f3,0x3ad)][_0x1309a9(0x3f7,0x3a7)]['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x314857),'source':{'width':this[_0x1309a9(0x3f3,0x3f5)][_0x1309a9(0x3f7,0x47a)]['length'],'height':0x1,'arrayBufferView':_0x2d1763}});}['createSegmentsGeometry'](){const _0xaf7e86=0x4,_0x23965a=this['options'][_0x5d5837(0x2cd,0x279)];let _0x1c570e=[];for(let _0x323beb=0x0;_0x323beb<_0x23965a;_0x323beb++){for(let _0x2e9dd0=0x0;_0x2e9dd0<_0x23965a;_0x2e9dd0++){for(let _0x284ddf=0x0;_0x284ddf<_0xaf7e86;_0x284ddf++){_0x1c570e['push'](_0x323beb/_0x23965a),_0x1c570e[_0x5d5837(0x296,0x237)](_0x2e9dd0/_0x23965a);}}}_0x1c570e=new Float32Array(_0x1c570e);const _0x332ae8=this[_0x3d27d5(-0x2,0x23)][_0x5d5837(0x2cd,0x2d4)]**0x2;let _0x4b5a30=[];for(let _0x28c0c1=0x0;_0x28c0c1<_0x332ae8;_0x28c0c1++){_0x4b5a30[_0x5d5837(0x296,0x320)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x4b5a30=new Float32Array(_0x4b5a30);let _0x59a334=[];for(let _0x828170=0x0,_0x309d3a=0x0;_0x828170<_0x332ae8;_0x828170++){_0x59a334['push'](_0x309d3a+0x0,_0x309d3a+0x1,_0x309d3a+0x2,_0x309d3a+0x2,_0x309d3a+0x1,_0x309d3a+0x3),_0x309d3a+=_0xaf7e86;}_0x59a334=new Uint32Array(_0x59a334);const _0x4650e9={};function _0x3d27d5(_0x546586,_0x10a849){return _0x177c41(_0x10a849- -0x264,_0x546586);}_0x4650e9[_0x3d27d5(0x1c,0x66)]=ComponentDatatype['FLOAT'];function _0x5d5837(_0x45d14d,_0x1587d6){return _0x1a7384(_0x1587d6,_0x45d14d- -0xf7);}_0x4650e9[_0x3d27d5(0x115,0xb2)]=0x2,_0x4650e9[_0x3d27d5(0x10b,0xbb)]=_0x1c570e;const _0x154dd3={};_0x154dd3[_0x3d27d5(0x8e,0x66)]=ComponentDatatype[_0x5d5837(0x2a4,0x2e9)],_0x154dd3['componentsPerAttribute']=0x3,_0x154dd3['values']=_0x4b5a30;const _0x234e74=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x4650e9),'normal':new GeometryAttribute(_0x154dd3)}),'indices':_0x59a334});return _0x234e74;}['createRawRenderState'](_0x40aff6){const _0x50770a={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x40aff6};return Appearance['getDefaultRenderState'](!![],![],_0x50770a);}['createPrimitives'](){const _0x1f2df1={};_0x1f2df1['st']=0x0,_0x1f2df1['normal']=0x1;const _0x465158={};function _0x2d6b67(_0x79a23c,_0x55d076){return _0x1a7384(_0x55d076,_0x79a23c- -0x7a);}_0x465158['enabled']=!![];const _0x33071f={};_0x33071f['enabled']=!![],_0x33071f['blendEquation']=WebGLRenderingContext[_0x2d855e(0x203,0x1bc)],_0x33071f[_0x2d6b67(0x261,0x2e9)]=WebGLRenderingContext['SRC_ALPHA'],_0x33071f['blendFuncDestination']=WebGLRenderingContext[_0x2d6b67(0x2d2,0x2db)];const _0x1b3b73={};_0x1b3b73[_0x2d855e(0x175,0x200)]=undefined,_0x1b3b73['depthTest']=_0x465158;function _0x2d855e(_0x4a4a95,_0x1ad8e8){return _0x1a7384(_0x1ad8e8,_0x4a4a95- -0x16b);}_0x1b3b73['depthMask']=!![],_0x1b3b73['blending']=_0x33071f;const _0x28c150=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x1f2df1,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0x2d855e(0x181,0x16b)],'uniformMap':{'previousParticlesPosition':()=>this['computing'][_0x2d855e(0x1af,0x207)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing'][_0x2d6b67(0x2a0,0x276)]['currentParticlesPosition'],'postProcessingPosition':()=>this['computing']['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing'][_0x2d6b67(0x2a0,0x2aa)]['particlesSpeed'],'frameRateAdjustment':()=>this[_0x2d6b67(0x33d,0x2d0)][_0x2d6b67(0x2dd,0x260)],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x41c24b(_0x2de8e5,_0xfa7fa6){return _0x2d855e(_0x2de8e5-0x1fd,_0xfa7fa6);}function _0x5b7c53(_0x2e6444,_0x1f70a9){return _0x2d855e(_0x2e6444- -0x3ab,_0x1f70a9);}var _0x513a5c,_0x193bb5;const _0x48205d=new Cartesian2(((_0x513a5c=this[_0x5b7c53(-0x1cf,-0x220)]['domain'])===null||_0x513a5c===void 0x0?void 0x0:_0x513a5c[_0x5b7c53(-0x16c,-0x115)])??this[_0x41c24b(0x449,0x439)]['windData']['speed'][_0x41c24b(0x43c,0x477)],((_0x193bb5=this['options']['domain'])===null||_0x193bb5===void 0x0?void 0x0:_0x193bb5['max'])??this[_0x41c24b(0x449,0x4d8)]['windData']['speed'][_0x41c24b(0x39d,0x371)]);return _0x48205d;},'displayRange':()=>{function _0x1b90dd(_0x30a03c,_0xeb83a1){return _0x2d6b67(_0xeb83a1-0x19d,_0x30a03c);}function _0x56727a(_0x4d2d6b,_0x967ffd){return _0x2d855e(_0x4d2d6b-0xfb,_0x967ffd);}var _0xf82422,_0x59c236;const _0x1829c5=new Cartesian2(((_0xf82422=this[_0x56727a(0x2d7,0x357)][_0x1b90dd(0x4bc,0x4fe)])===null||_0xf82422===void 0x0?void 0x0:_0xf82422['min'])??this[_0x1b90dd(0x4a1,0x4da)]['windData'][_0x56727a(0x28c,0x319)][_0x56727a(0x33a,0x32d)],((_0x59c236=this['options']['displayRange'])===null||_0x59c236===void 0x0?void 0x0:_0x59c236[_0x56727a(0x29b,0x272)])??this[_0x56727a(0x347,0x33e)][_0x56727a(0x2d9,0x29d)]['speed']['max']);return _0x1829c5;},'particleHeight':()=>this[_0x2d855e(0x1dc,0x183)]['fixedHeight']||0x0,'aspect':()=>this[_0x2d6b67(0x299,0x28f)]['drawingBufferWidth']/this['context']['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{const _0x11c693={};_0x11c693['min']=0x1;function _0x2c49b5(_0x4a3a02,_0x382338){return _0x2d6b67(_0x382338- -0x2fb,_0x4a3a02);}function _0x3b6a36(_0x151b6b,_0x46abc3){return _0x2d855e(_0x151b6b- -0x3e4,_0x46abc3);}_0x11c693['max']=0x2;const _0x10273a=this[_0x2c49b5(-0x45,-0x2e)][_0x2c49b5(0x24,-0x3e)]||_0x11c693;return new Cartesian2(_0x10273a[_0x2c49b5(0x27,0x35)],_0x10273a['max']);},'lineLength':()=>{const _0x16e16d={};function _0x43df72(_0x333a8e,_0x24d96f){return _0x2d855e(_0x333a8e- -0x43a,_0x24d96f);}_0x16e16d['min']=0x14,_0x16e16d[_0x43df72(-0x29a,-0x277)]=0x64;const _0x5367e8=this['options']['lineLength']||_0x16e16d;return new Cartesian2(_0x5367e8['min'],_0x5367e8['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0x2d6b67(0x2e9,0x2c9)],'segmentsDepthTexture':()=>this[_0x2d855e(0x197,0x1c1)]['segmentsDepth']},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x1b3b73)}),_0x173223={};return _0x173223['segments']=_0x28c150,_0x173223;}['onParticlesTextureSizeChange'](){const _0x5957e2=this['createSegmentsGeometry']();this[_0x531034(-0x95,-0x73)][_0x5f45d9(0x380,0x320)][_0x5f45d9(0x387,0x382)]=_0x5957e2;function _0x5f45d9(_0x4fc9cc,_0x4dec4b){return _0x1a7384(_0x4fc9cc,_0x4dec4b-0x3e);}const _0x18b3cc={};_0x18b3cc['context']=this['context'],_0x18b3cc[_0x5f45d9(0x3b9,0x382)]=_0x5957e2,_0x18b3cc[_0x531034(-0x58,-0xad)]=this['primitives']['segments']['attributeLocations'],_0x18b3cc[_0x5f45d9(0x3e3,0x422)]=BufferUsage['STATIC_DRAW'];const _0x3ec456=VertexArray[_0x5f45d9(0x407,0x399)](_0x18b3cc);function _0x531034(_0x471077,_0x24476e){return _0x177c41(_0x24476e- -0x305,_0x471077);}this['primitives'][_0x531034(-0xf5,-0xe3)][_0x531034(-0x80,-0x12)]&&(this[_0x5f45d9(0x311,0x390)]['segments']['commandToExecute'][_0x5f45d9(0x3a7,0x3db)]=_0x3ec456);}[_0x1a7384(0x43a,0x3c5)](){this['colorTable']['destroy']();function _0x25a5f8(_0x186918,_0x494765){return _0x1a7384(_0x494765,_0x186918- -0x175);}this[_0x25a5f8(0x165,0x1df)]=this['createColorTableTexture']();}['updateOptions'](_0x39c7c7){function _0x536b1b(_0x26fffb,_0x24ca09){return _0x1a7384(_0x24ca09,_0x26fffb- -0x527);}const _0x1db119=_0x39c7c7['colors']&&JSON['stringify'](_0x39c7c7[_0xb51727(0x3df,0x3a9)])!==JSON['stringify'](this['options']['colors']);function _0xb51727(_0x50d8d0,_0x1fa21e){return _0x177c41(_0x1fa21e-0x11e,_0x50d8d0);}this[_0x536b1b(-0x1e0,-0x199)]=deepMerge(_0x39c7c7,this[_0xb51727(0x328,0x3a5)]),_0x1db119&&this[_0x536b1b(-0x162,-0x19e)]();}['destroy'](){Object['values'](this['framebuffers'])['forEach'](_0x45445a=>{_0x45445a['destroy']();});function _0x3115e2(_0x14d24a,_0x4f6a30){return _0x177c41(_0x14d24a-0x225,_0x4f6a30);}Object[_0x518ad2(-0x14c,-0x15a)](this[_0x518ad2(-0x1d9,-0x206)])[_0x518ad2(-0x18c,-0x138)](_0x27c736=>{function _0x2504cd(_0x529706,_0x26e97c){return _0x518ad2(_0x529706-0x419,_0x26e97c);}_0x27c736[_0x2504cd(0x1f8,0x1db)]();});function _0x518ad2(_0x4ad8a8,_0x2546c9){return _0x1a7384(_0x2546c9,_0x4ad8a8- -0x52b);}this['colorTable'][_0x3115e2(0x46f,0x478)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x1a7384(0x436,0x3cb)];class WindParticleSystem{constructor(_0x42543a,_0xb0fe56,_0x208d3c,_0x2f76b6,_0x610e01){this[_0x598a0a(-0x278,-0x2ae)]=_0x42543a,this[_0x598a0a(-0x244,-0x1be)]=_0x208d3c,this['viewerParameters']=_0x2f76b6;function _0x438088(_0x401559,_0x2f458a){return _0x1a7384(_0x401559,_0x2f458a-0x8b);}this['computing']=new WindParticlesComputing(_0x42543a,_0xb0fe56,_0x208d3c,_0x2f76b6,_0x610e01);function _0x598a0a(_0x1f866a,_0x6ef709){return _0x177c41(_0x1f866a- -0x4cb,_0x6ef709);}this['rendering']=new WindParticlesRendering(_0x42543a,_0x208d3c,_0x2f76b6,this['computing']),this['clearFramebuffers']();}['getPrimitives'](){function _0x2e2f18(_0x74d1f3,_0x5759e2){return _0x1a7384(_0x5759e2,_0x74d1f3-0x139);}function _0x454dcc(_0x4d0bc0,_0x1d17e9){return _0x177c41(_0x4d0bc0-0x60,_0x1d17e9);}const _0x3086b0=[this['computing'][_0x2e2f18(0x48b,0x474)][_0x454dcc(0x2e3,0x354)],this[_0x454dcc(0x357,0x315)]['primitives'][_0x2e2f18(0x427,0x42d)],this['computing']['primitives'][_0x2e2f18(0x4ef,0x4e6)],this['rendering']['primitives']['segments']];return _0x3086b0;}['clearFramebuffers'](){const _0x4aceb6=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x2a5f43(0xba,0x109)]});function _0x460636(_0x349158,_0xb03c8e){return _0x177c41(_0x349158- -0xb7,_0xb03c8e);}function _0x2a5f43(_0x10f01f,_0x23e34f){return _0x1a7384(_0x10f01f,_0x23e34f- -0x2e0);}Object[_0x460636(0x1ae,0x212)](this['rendering']['framebuffers'])['forEach'](_0x3654aa=>{_0x4aceb6['framebuffer']=this['rendering'][_0x25e54b(0xf2,0x7b)][_0x3654aa];function _0x25e54b(_0x500ee9,_0x464841){return _0x460636(_0x464841- -0x1a8,_0x500ee9);}_0x4aceb6['execute'](this['context']);});}[_0x1a7384(0x3cb,0x38b)](_0x403ec1){let _0x10b00b=![];_0x403ec1[_0x3619f6(-0x21f,-0x1ad)]&&this['options'][_0x121eec(0x42f,0x45f)]!==_0x403ec1['particlesTextureSize']&&(_0x10b00b=!![]);function _0x3619f6(_0x25364e,_0x28cd0f){return _0x177c41(_0x25364e- -0x523,_0x28cd0f);}function _0x121eec(_0x61a69f,_0x45c2f9){return _0x177c41(_0x45c2f9-0x15b,_0x61a69f);}const _0x9795cf=deepMerge(_0x403ec1,this['options']);if(_0x9795cf['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this[_0x3619f6(-0x29c,-0x299)]=_0x9795cf,this['rendering']['updateOptions'](_0x403ec1),this['computing'][_0x3619f6(-0x2c1,-0x350)](_0x403ec1),_0x10b00b&&(this['computing'][_0x121eec(0x3c4,0x3be)](),this[_0x3619f6(-0x22c,-0x26b)][_0x121eec(0x3f0,0x3dd)](),this[_0x3619f6(-0x2ca,-0x287)][_0x3619f6(-0x23a,-0x20c)]());}[_0x1a7384(0x37b,0x2ea)](_0x74bb85){this[_0x4afabc(0x38,-0x29)]=_0x74bb85;function _0x1b9772(_0xe9f21e,_0x312ecb){return _0x1a7384(_0xe9f21e,_0x312ecb- -0x591);}function _0x4afabc(_0x2b68b7,_0x4138bc){return _0x177c41(_0x4138bc- -0x245,_0x2b68b7);}this[_0x4afabc(0x33,0xb2)]['viewerParameters']=_0x74bb85,this['rendering'][_0x4afabc(-0x90,-0x29)]=_0x74bb85;}['destroy'](){function _0x2c6fc0(_0x16311e,_0x138528){return _0x177c41(_0x138528- -0x13f,_0x16311e);}this['computing'][_0x2c6fc0(0xd7,0x10b)](),this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x1a5023={};_0x1a5023['min']=0x1,_0x1a5023[_0x1a7384(0x2af,0x30b)]=0x2;const _0x3accd5={};_0x3accd5[_0x1a7384(0x43a,0x3aa)]=0x14,_0x3accd5['max']=0x64;const _0x58edc0={};_0x58edc0['particlesTextureSize']=0x64,_0x58edc0['fixedHeight']=0x0,_0x58edc0['lineWidth']=_0x1a5023,_0x58edc0[_0x177c41(0x2f0,0x294)]=_0x3accd5,_0x58edc0[_0x177c41(0x243,0x2cd)]=0x1,_0x58edc0[_0x177c41(0x235,0x2a7)]=0.003,_0x58edc0['dropRateBump']=0.001,_0x58edc0['colors']=[_0x1a7384(0x37f,0x316)],_0x58edc0['flipY']=![],_0x58edc0['dynamic']=!![];const DEF_OPTIONS=_0x58edc0;class WindLayer extends BaseLayer$1{constructor(_0xa38636={}){function _0x39bce0(_0xd478e3,_0x7dc4cb){return _0x177c41(_0xd478e3-0x1bf,_0x7dc4cb);}_0xa38636={...DEF_OPTIONS,..._0xa38636},super(_0xa38636),this[_0x39bce0(0x457,0x4a9)](_0xa38636,_0xa38636);}get[_0x177c41(0x269,0x2c4)](){function _0x408012(_0x35df7b,_0x54a1d5){return _0x1a7384(_0x35df7b,_0x54a1d5- -0x30e);}return this[_0x408012(0x92,0x44)];}get['data'](){return this['options']['data'];}set[_0x1a7384(0x35d,0x324)](_0x545c15){this['options'][_0x2e2a06(-0x180,-0x14c)]=_0x545c15;function _0x2e2a06(_0x51afb0,_0x3e2ec5){return _0x1a7384(_0x3e2ec5,_0x51afb0- -0x4a4);}this['setData'](_0x545c15);}get[_0x1a7384(0x2bb,0x34b)](){function _0x23210c(_0x3e8e7a,_0x5f21ae){return _0x177c41(_0x5f21ae- -0x202,_0x3e8e7a);}return this[_0x23210c(0x25,0x85)]['colors'];}set['colors'](_0x1dd677){function _0x3152c6(_0x2323b7,_0xd130fb){return _0x1a7384(_0xd130fb,_0x2323b7-0x45);}this[_0x3152c6(0x38c,0x40d)]['colors']=_0x1dd677;const _0x15b646={};_0x15b646[_0x3152c6(0x390,0x31e)]=_0x1dd677;function _0x2d0b5b(_0x55ce20,_0x173eb3){return _0x177c41(_0x173eb3-0x1b7,_0x55ce20);}this['_setOptionsHook'](this[_0x2d0b5b(0x4c6,0x43e)],_0x15b646);}['_showHook'](_0x126fd4){function _0x1d1d50(_0x292064,_0x1e2b87){return _0x1a7384(_0x292064,_0x1e2b87- -0x56e);}_0x126fd4?this['_addedHook']():this[_0x1d1d50(-0x25f,-0x29c)]();}['_mountedHook'](){}[_0x177c41(0x2b1,0x27c)](){function _0x25e0a6(_0xd86f60,_0x443a56){return _0x1a7384(_0xd86f60,_0x443a56- -0xb6);}this['scene']=this[_0x25e0a6(0x2d9,0x307)]['scene'],this[_0x25e0a6(0x278,0x2c5)]=this['_map'][_0x59f245(-0x1ba,-0x14f)];this['options']['data']&&this[_0x25e0a6(0x376,0x30c)](this['options']['data']);if(!this['windData']||!this[_0x59f245(-0x1db,-0x257)])return;this['viewerParameters']={'lonRange':new Cesium$1[(_0x59f245(-0x174,-0x118))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this['scene']['mode']},this[_0x59f245(-0x1f6,-0x229)](),this['particleSystem']=new WindParticleSystem(this[_0x25e0a6(0x1ee,0x256)]['context'],this['windData'],this['options'],this['viewerParameters'],this[_0x25e0a6(0x259,0x256)]),this[_0x25e0a6(0x248,0x29c)]=this['particleSystem']['getPrimitives'](),this[_0x59f245(-0x1e3,-0x167)]['forEach'](_0x2d16e0=>{function _0x30889d(_0xa44a52,_0x1a71e3){return _0x59f245(_0x1a71e3-0xc7,_0xa44a52);}function _0x57ab95(_0x1bcb86,_0x395d95){return _0x59f245(_0x1bcb86-0x1ba,_0x395d95);}this[_0x57ab95(-0x6f,-0x92)][_0x30889d(-0x10b,-0x11c)][_0x30889d(-0x81,-0xbc)](_0x2d16e0);}),this['camera']['percentageChanged']=0.01,this[_0x59f245(-0x1ba,-0x150)][_0x59f245(-0x208,-0x27a)][_0x59f245(-0x22d,-0x1c9)](this['updateViewerParameters'][_0x25e0a6(0x289,0x2ba)](this)),this['scene'][_0x25e0a6(0x378,0x338)][_0x25e0a6(0x1e4,0x252)](this['updateViewerParameters']['bind'](this));function _0x59f245(_0x1ab446,_0x2bc46d){return _0x1a7384(_0x2bc46d,_0x1ab446- -0x535);}window['addEventListener'](_0x25e0a6(0x252,0x242),this[_0x25e0a6(0x292,0x289)]['bind'](this));}['_removedHook'](){this['camera'][_0x96797c(-0xb9,-0xfb)]['removeEventListener'](this['updateViewerParameters'][_0x4019c6(0x19f,0x1f1)](this)),this['scene']['morphComplete']['removeEventListener'](this['updateViewerParameters']['bind'](this));function _0x96797c(_0x4d78bb,_0xf42e36){return _0x177c41(_0xf42e36- -0x368,_0x4d78bb);}window[_0x4019c6(0x16d,0x195)](_0x96797c(-0xba,-0x130),this['updateViewerParameters'][_0x96797c(-0x105,-0xb8)](this));this[_0x96797c(-0x117,-0xd6)]&&(this[_0x4019c6(0x1d1,0x1d3)][_0x4019c6(0x248,0x220)](_0xac102d=>{function _0x1f9831(_0x546d3c,_0x44172f){return _0x4019c6(_0x546d3c,_0x44172f- -0x327);}function _0x41ab77(_0x2ae82f,_0x2c71af){return _0x4019c6(_0x2c71af,_0x2ae82f- -0x2db);}this[_0x41ab77(-0x14e,-0xf5)][_0x41ab77(-0x108,-0x9a)][_0x1f9831(-0x1cb,-0x146)](_0xac102d);}),delete this['primitives']);function _0x4019c6(_0x220811,_0x578f34){return _0x177c41(_0x578f34- -0xbf,_0x220811);}this[_0x96797c(-0x20,-0x4c)]&&(this['particleSystem']['destroy'](),delete this[_0x4019c6(0x22a,0x25d)]);}['setData'](_0x36e6d3,_0x4cd1d7){function _0x4fe42e(_0x4239e8,_0x9bf520){return _0x177c41(_0x9bf520-0x246,_0x4239e8);}function _0x25c1a5(_0xe7c95,_0x1db929){return _0x1a7384(_0xe7c95,_0x1db929- -0x4c0);}this['windData']=this['processWindData'](_0x36e6d3);if(_0x4cd1d7){this[_0x25c1a5(-0x1f3,-0x1ee)](),this[_0x4fe42e(0x51c,0x4f7)]();return;}this['particleSystem']?(this['particleSystem']['computing']['updateWindData'](this['windData']),this['scene'][_0x4fe42e(0x4b1,0x4be)]()):this[_0x25c1a5(-0xc8,-0x14f)]();}['_setOptionsHook'](_0x2ed3cf,_0x2eee55){function _0x23f497(_0x59f44d,_0x420fc6){return _0x177c41(_0x420fc6- -0x46a,_0x59f44d);}function _0x18b794(_0x27b00b,_0x2e0fcc){return _0x1a7384(_0x27b00b,_0x2e0fcc- -0x1a1);}this['particleSystem']&&(this[_0x23f497(-0x1b3,-0x14e)]['changeOptions'](_0x2eee55),this[_0x18b794(0x17a,0x16b)][_0x23f497(-0x179,-0x1f2)]());}['processWindData'](_0xd61c29){var _0x2246b1,_0x3becb4;function _0x52d978(_0x29dd1b,_0x184122){return _0x177c41(_0x184122- -0x3bd,_0x29dd1b);}const _0x4282ae={..._0xd61c29},_0x590a5b=_0x4282ae;!_0x590a5b['height']&&_0x590a5b['rows']&&(_0x590a5b[_0x126b9c(0x449,0x4b1)]=_0x590a5b[_0x52d978(-0xfb,-0x14e)]);!_0x590a5b[_0x52d978(-0x11b,-0x144)]&&_0x590a5b['cols']&&(_0x590a5b[_0x52d978(-0x125,-0x144)]=_0x590a5b['cols']);!_0x590a5b['bounds']&&(_0x590a5b['bounds']={'west':_0x590a5b['xmin'],'south':_0x590a5b['ymin'],'east':_0x590a5b['xmax'],'north':_0x590a5b[_0x126b9c(0x49d,0x4c2)]});function _0x126b9c(_0xf271c4,_0x2dbd30){return _0x177c41(_0x2dbd30-0x1e9,_0xf271c4);}if(!_0x590a5b['u']){const _0x32c0b0={};_0x32c0b0['array']=_0xd61c29[_0x52d978(-0xd,-0x8a)],_0x32c0b0['min']=_0xd61c29[_0x52d978(-0x75,-0xdd)],_0x32c0b0[_0x126b9c(0x3fa,0x434)]=_0xd61c29['umax'],_0x590a5b['u']=_0x32c0b0;}if(!_0x590a5b['v']){const _0x4397c0={};_0x4397c0[_0x52d978(-0x122,-0x1aa)]=_0xd61c29['vdata'],_0x4397c0['min']=_0xd61c29[_0x126b9c(0x40c,0x478)],_0x4397c0['max']=_0xd61c29[_0x126b9c(0x498,0x48b)],_0x590a5b['v']=_0x4397c0;}if(((_0x2246b1=_0x590a5b['speed'])===null||_0x2246b1===void 0x0?void 0x0:_0x2246b1[_0x52d978(-0x7c,-0xd3)])===undefined||((_0x3becb4=_0x590a5b[_0x52d978(-0x18c,-0x181)])===null||_0x3becb4===void 0x0?void 0x0:_0x3becb4['max'])===undefined||_0x590a5b[_0x52d978(-0x15d,-0x181)][_0x126b9c(0x3e6,0x3fc)]===undefined){const _0x457106={'array':new Float32Array(_0x590a5b['u']['array']['length']),'min':Number[_0x52d978(-0x133,-0xe1)],'max':Number[_0x126b9c(0x3ed,0x455)]};for(let _0x223937=0x0;_0x223937<_0x590a5b['u']['array'][_0x126b9c(0x43e,0x4cd)];_0x223937++){_0x457106['array'][_0x223937]=Math['sqrt'](_0x590a5b['u']['array'][_0x223937]*_0x590a5b['u']['array'][_0x223937]+_0x590a5b['v']['array'][_0x223937]*_0x590a5b['v'][_0x52d978(-0x161,-0x1aa)][_0x223937]),_0x457106['array'][_0x223937]!==0x0&&(_0x457106[_0x126b9c(0x545,0x4d3)]=Math['min'](_0x457106[_0x52d978(-0x92,-0xd3)],_0x457106['array'][_0x223937]),_0x457106['max']=Math['max'](_0x457106[_0x126b9c(0x3c9,0x434)],_0x457106[_0x126b9c(0x3ba,0x3fc)][_0x223937]));}_0x590a5b['speed']=_0x457106;}return _0x590a5b;}[_0x177c41(0x27f,0x264)](){var _0x118d42;const _0x42f519=this['scene'];if(!_0x42f519)return;const _0x3cc770=_0x42f519['canvas'],_0x4323a7={};function _0x3755d0(_0x21cd5b,_0x3364ae){return _0x1a7384(_0x3364ae,_0x21cd5b- -0x162);}_0x4323a7['x']=0x0,_0x4323a7['y']=0x0;const _0x19b4d4={};_0x19b4d4['x']=0x0,_0x19b4d4['y']=_0x3cc770['clientHeight'];const _0x4b86f4={};_0x4b86f4['x']=_0x3cc770['clientWidth'],_0x4b86f4['y']=0x0;const _0x56e0f2={};_0x56e0f2['x']=_0x3cc770['clientWidth'],_0x56e0f2['y']=_0x3cc770[_0x3755d0(0x1e8,0x1bd)];const _0x398db7=[_0x4323a7,_0x19b4d4,_0x4b86f4,_0x56e0f2];let _0x57b3a6=0xb4,_0x3edd2f=-0xb4,_0x25ce78=0x5a;function _0x2534ef(_0x3ece1d,_0x1ab247){return _0x177c41(_0x1ab247-0x230,_0x3ece1d);}let _0x21acc8=-0x5a,_0x3ad56c=![];for(const _0x3007cb of _0x398db7){const _0x5c286d=_0x42f519['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x3007cb['x'],_0x3007cb['y']),_0x42f519['globe']['ellipsoid']);if(!_0x5c286d){_0x3ad56c=!![];break;}const _0x1b1491=_0x42f519[_0x3755d0(0x24c,0x27d)][_0x3755d0(0x214,0x294)]['cartesianToCartographic'](_0x5c286d),_0x3b413c=Cesium$1[_0x3755d0(0x24b,0x1c3)][_0x3755d0(0x28b,0x25a)](_0x1b1491[_0x3755d0(0x268,0x217)]),_0x44d01b=Cesium$1[_0x2534ef(0x59a,0x51d)]['toDegrees'](_0x1b1491['latitude']);_0x57b3a6=Math['min'](_0x57b3a6,_0x3b413c),_0x3edd2f=Math['max'](_0x3edd2f,_0x3b413c),_0x25ce78=Math['min'](_0x25ce78,_0x44d01b),_0x21acc8=Math[_0x3755d0(0x1a9,0x1fe)](_0x21acc8,_0x44d01b);}if(!_0x3ad56c){const _0x4075c9=new Cesium$1['Cartesian2'](Math[_0x2534ef(0x479,0x47b)](this['windData']['bounds']['west'],_0x57b3a6),Math[_0x3755d0(0x248,0x2c9)](this['windData'][_0x3755d0(0x246,0x268)]['east'],_0x3edd2f)),_0x51e01e=new Cesium$1[(_0x2534ef(0x5bc,0x531))](Math[_0x3755d0(0x1a9,0x1b2)](this['windData']['bounds']['south'],_0x25ce78),Math['min'](this['windData']['bounds']['north'],_0x21acc8)),_0x446001=(_0x4075c9['y']-_0x4075c9['x'])*0.05,_0x165cc7=(_0x51e01e['y']-_0x51e01e['x'])*0.05;_0x4075c9['x']=Math[_0x3755d0(0x1a9,0x199)](this[_0x3755d0(0x1e7,0x16c)]['bounds'][_0x3755d0(0x28d,0x271)],_0x4075c9['x']-_0x446001),_0x4075c9['y']=Math['min'](this['windData']['bounds'][_0x3755d0(0x27e,0x26f)],_0x4075c9['y']+_0x446001),_0x51e01e['x']=Math['max'](this['windData']['bounds']['south'],_0x51e01e['x']-_0x165cc7),_0x51e01e['y']=Math['min'](this['windData']['bounds']['north'],_0x51e01e['y']+_0x165cc7),this[_0x3755d0(0x17a,0x1d9)]['lonRange']=_0x4075c9,this['viewerParameters'][_0x3755d0(0x27f,0x250)]=_0x51e01e;const _0x391e07=this[_0x2534ef(0x431,0x4b9)]['bounds']['east']-this[_0x2534ef(0x451,0x4b9)]['bounds']['west'],_0x48582f=this['windData'][_0x2534ef(0x49e,0x518)][_0x2534ef(0x548,0x53e)]-this[_0x2534ef(0x474,0x4b9)]['bounds'][_0x2534ef(0x487,0x4f4)],_0x14390a=(_0x4075c9['y']-_0x4075c9['x'])/_0x391e07,_0x4a8596=(_0x51e01e['y']-_0x51e01e['x'])/_0x48582f,_0x5b7d97=Math['min'](_0x14390a,_0x4a8596),_0xea7635=0x3e8*_0x5b7d97;_0xea7635>0x0&&(this['viewerParameters']['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0xea7635)));}this['viewerParameters']['sceneMode']=this['scene'][_0x2534ef(0x472,0x45d)],(_0x118d42=this[_0x3755d0(0x27a,0x2cb)])===null||_0x118d42===void 0x0||_0x118d42['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x5791a1,_0x350ac0){const {bounds:_0x2376b3,width:_0x4bb0d6,height:_0x3edc1d,u:_0x3b582b,v:_0x21e5fa,speed:_0x4b5da0}=this[_0x1d64d9(0x35f,0x343)],{flipY:_0x489c02}=this['options'];if(_0x5791a1<_0x2376b3['west']||_0x5791a1>_0x2376b3['east']||_0x350ac0<_0x2376b3[_0x1d64d9(0x39a,0x3bd)]||_0x350ac0>_0x2376b3['north'])return null;const _0x27beda=(_0x5791a1-_0x2376b3['west'])/(_0x2376b3[_0x48360a(0x2d7,0x33b)]-_0x2376b3['west'])*(_0x4bb0d6-0x1);let _0x53cff2=(_0x350ac0-_0x2376b3[_0x1d64d9(0x39a,0x3e0)])/(_0x2376b3['north']-_0x2376b3[_0x1d64d9(0x39a,0x3da)])*(_0x3edc1d-0x1);function _0x48360a(_0x3faabe,_0x4b0dd5){return _0x1a7384(_0x4b0dd5,_0x3faabe- -0x109);}_0x489c02&&(_0x53cff2=_0x3edc1d-0x1-_0x53cff2);const _0x441800=Math['floor'](_0x27beda),_0x3ab57f=Math['floor'](_0x53cff2),_0x548f88=Math[_0x48360a(0x1e0,0x206)](_0x27beda),_0x1fc5b8=Math[_0x48360a(0x2a1,0x24d)](_0x548f88+0x1,_0x4bb0d6-0x1),_0x4ab909=Math['floor'](_0x53cff2),_0x5a2726=Math['min'](_0x4ab909+0x1,_0x3edc1d-0x1),_0x464a82=_0x27beda-_0x548f88,_0x3b4129=_0x53cff2-_0x4ab909,_0x553506=_0x3ab57f*_0x4bb0d6+_0x441800,_0xbb93c3=_0x4ab909*_0x4bb0d6+_0x548f88,_0x49ad63=_0x4ab909*_0x4bb0d6+_0x1fc5b8,_0x3acecd=_0x5a2726*_0x4bb0d6+_0x548f88,_0x2fd54c=_0x5a2726*_0x4bb0d6+_0x1fc5b8,_0x358023=_0x3b582b['array'][_0xbb93c3],_0x404d38=_0x3b582b['array'][_0x49ad63],_0x1085f0=_0x3b582b[_0x48360a(0x1ca,0x1a0)][_0x3acecd],_0x3ca6e7=_0x3b582b[_0x48360a(0x1ca,0x252)][_0x2fd54c],_0xe6b0b1=(0x1-_0x464a82)*(0x1-_0x3b4129)*_0x358023+_0x464a82*(0x1-_0x3b4129)*_0x404d38+(0x1-_0x464a82)*_0x3b4129*_0x1085f0+_0x464a82*_0x3b4129*_0x3ca6e7,_0xd5b587=_0x21e5fa['array'][_0xbb93c3],_0x174b8f=_0x21e5fa['array'][_0x49ad63],_0x2aa172=_0x21e5fa['array'][_0x3acecd],_0x5e49b7=_0x21e5fa['array'][_0x2fd54c],_0x4bb0c1=(0x1-_0x464a82)*(0x1-_0x3b4129)*_0xd5b587+_0x464a82*(0x1-_0x3b4129)*_0x174b8f+(0x1-_0x464a82)*_0x3b4129*_0x2aa172+_0x464a82*_0x3b4129*_0x5e49b7,_0x443ebc=Math['sqrt'](_0xe6b0b1*_0xe6b0b1+_0x4bb0c1*_0x4bb0c1);function _0x1d64d9(_0x266970,_0x11ccf2){return _0x177c41(_0x266970-0xd6,_0x11ccf2);}const _0x3efca2={};_0x3efca2['u']=_0x3b582b[_0x48360a(0x1ca,0x189)][_0x553506],_0x3efca2['v']=_0x21e5fa['array'][_0x553506],_0x3efca2['speed']=_0x4b5da0['array'][_0x553506];const _0x1de97b={};_0x1de97b['u']=_0xe6b0b1,_0x1de97b['v']=_0x4bb0c1,_0x1de97b[_0x48360a(0x1f3,0x1f4)]=_0x443ebc;const _0x3ff205={};return _0x3ff205[_0x48360a(0x254,0x26a)]=_0x3efca2,_0x3ff205['interpolated']=_0x1de97b,_0x3ff205;}}mars3d__namespace[_0x177c41(0x25c,0x274)][_0x177c41(0x2e2,0x309)](_0x177c41(0x2d6,0x2be),WindLayer),mars3d__namespace[_0x177c41(0x269,0x1e0)][_0x177c41(0x23d,0x1c1)]=WindLayer;class CanvasParticle{constructor(){this[_0x15b0f7(0x466,0x47a)]=null,this[_0x5132c2(0x398,0x314)]=null,this['tlng']=null;function _0x15b0f7(_0x56f5f9,_0x380fa2){return _0x177c41(_0x56f5f9-0x19d,_0x380fa2);}this['tlat']=null,this['age']=null;function _0x5132c2(_0x1af6a2,_0x3925e3){return _0x1a7384(_0x1af6a2,_0x3925e3-0x2f);}this['speed']=null;}['destroy'](){for(const _0x1a7e4f in this){delete this[_0x1a7e4f];}}}class CanvasWindField{constructor(_0x2fe658){this['setOptions'](_0x2fe658);}get[_0x177c41(0x24e,0x1da)](){return this['_speedRate'];}set['speedRate'](_0x5cca1d){this['_speedRate']=(0x64-(_0x5cca1d>0x63?0x63:_0x5cca1d))*0x64;function _0x20c73d(_0x444f34,_0x1fec79){return _0x177c41(_0x1fec79- -0x385,_0x444f34);}this['_calc_speedRate']=[(this['xmax']-this[_0x20c73d(-0x8a,-0x110)])/this['_speedRate'],(this['ymax']-this['ymin'])/this['_speedRate']];}get[_0x177c41(0x246,0x1e6)](){function _0x56ea47(_0x13c972,_0x145fe3){return _0x177c41(_0x145fe3-0x70,_0x13c972);}return this[_0x56ea47(0x2aa,0x31d)];}set['maxAge'](_0x36b4fe){function _0x5d7454(_0x319cf6,_0x960f2a){return _0x177c41(_0x319cf6-0x1a5,_0x960f2a);}this[_0x5d7454(0x452,0x407)]=_0x36b4fe;}['setOptions'](_0x19aca5){this['options']=_0x19aca5,this['maxAge']=_0x19aca5['maxAge']||0x78;function _0x5f3eff(_0x361d81,_0x11ea20){return _0x1a7384(_0x361d81,_0x11ea20-0x7e);}this['speedRate']=_0x19aca5['speedRate']||0x32,this['particles']=[];const _0x93a86d=_0x19aca5['particlesNumber']||0x1000;for(let _0x4ed899=0x0;_0x4ed899<_0x93a86d;_0x4ed899++){const _0x9f0bc6=this[_0x5f3eff(0x36b,0x352)](new CanvasParticle());this['particles']['push'](_0x9f0bc6);}}[_0x1a7384(0x3e8,0x3a5)](_0x5b30f9){this['rows']=_0x5b30f9['rows'],this[_0x6bb274(0x274,0x2a2)]=_0x5b30f9['cols'],this[_0x317c3c(0x49f,0x4d4)]=_0x5b30f9['xmin'],this[_0x317c3c(0x5a4,0x57d)]=_0x5b30f9[_0x317c3c(0x4fd,0x57d)],this[_0x6bb274(0x28f,0x2ea)]=_0x5b30f9[_0x6bb274(0x28f,0x2ea)];function _0x317c3c(_0x3734e8,_0x45d300){return _0x177c41(_0x45d300-0x25f,_0x3734e8);}this[_0x6bb274(0x2d2,0x355)]=_0x5b30f9['ymax'],this[_0x317c3c(0x4d1,0x503)]=[];const _0x17a0e2=_0x5b30f9[_0x317c3c(0x5fd,0x592)],_0x2503f5=_0x5b30f9['vdata'];let _0x14f80a=![];_0x17a0e2['length']===this[_0x317c3c(0x503,0x4ce)]&&_0x17a0e2[0x0]['length']===this[_0x6bb274(0x2fa,0x2a2)]&&(_0x14f80a=!![]);function _0x6bb274(_0xa3e27e,_0x5b4756){return _0x1a7384(_0xa3e27e,_0x5b4756- -0x44);}let _0x5e33af=0x0,_0x246c8f=null,_0x4157b5=null;for(let _0x2ca1ce=0x0;_0x2ca1ce<this['rows'];_0x2ca1ce++){_0x246c8f=[];for(let _0x58f465=0x0;_0x58f465<this[_0x317c3c(0x40a,0x485)];_0x58f465++,_0x5e33af++){_0x14f80a?_0x4157b5=this['_calcUV'](_0x17a0e2[_0x2ca1ce][_0x58f465],_0x2503f5[_0x2ca1ce][_0x58f465]):_0x4157b5=this[_0x317c3c(0x530,0x508)](_0x17a0e2[_0x5e33af],_0x2503f5[_0x5e33af]),_0x246c8f['push'](_0x4157b5);}this[_0x317c3c(0x4a6,0x503)]['push'](_0x246c8f);}!this['options'][_0x317c3c(0x616,0x585)]&&this['grid'][_0x317c3c(0x516,0x4d0)]();}['clear'](){delete this['rows'];function _0x513e46(_0x237a80,_0xfa48c0){return _0x177c41(_0xfa48c0- -0x218,_0x237a80);}delete this['cols'],delete this['xmin'],delete this['xmax'],delete this[_0x513e46(0xbd,0x56)];function _0x4de0a0(_0x4853de,_0x467446){return _0x177c41(_0x4853de- -0x211,_0x467446);}delete this[_0x513e46(0x7e,0xc1)],delete this[_0x4de0a0(0x93,0x117)],delete this['particles'];}[_0x1a7384(0x34f,0x307)](_0x2e0e48,_0x3776f2){function _0x5288d7(_0x5616cb,_0x3723dc){return _0x1a7384(_0x5616cb,_0x3723dc-0x1df);}const _0x2fa5af=(_0x2e0e48-this['xmin'])/(this[_0x5288d7(0x623,0x5bd)]-this['xmin'])*(this['cols']-0x1),_0x1edb4f=(this[_0x28f1d2(-0x79,-0xbf)]-_0x3776f2)/(this[_0x28f1d2(-0x3d,-0xbf)]-this['ymin'])*(this[_0x28f1d2(-0x153,-0x129)]-0x1);function _0x28f1d2(_0x3f3e47,_0x3a1909){return _0x1a7384(_0x3f3e47,_0x3a1909- -0x458);}return[_0x2fa5af,_0x1edb4f];}['getUVByXY'](_0x1ee065,_0x305791){if(_0x1ee065<0x0||_0x1ee065>=this['cols']||_0x305791>=this['rows'])return[0x0,0x0,0x0];const _0x536355=Math[_0x13f78e(0x2b2,0x2a9)](_0x1ee065),_0x5db309=Math['floor'](_0x305791);if(_0x536355===_0x1ee065&&_0x5db309===_0x305791)return this[_0x50ed93(0x1b6,0x242)][_0x305791][_0x1ee065];const _0x1684a7=_0x536355+0x1;function _0x50ed93(_0x1372e1,_0x3b47f4){return _0x177c41(_0x1372e1- -0xee,_0x3b47f4);}const _0x552bae=_0x5db309+0x1;function _0x13f78e(_0x378473,_0x17c7c6){return _0x177c41(_0x378473-0x89,_0x17c7c6);}const _0x102f96=this['getUVByXY'](_0x536355,_0x5db309),_0x251c46=this['getUVByXY'](_0x1684a7,_0x5db309),_0xf5e0a5=this['getUVByXY'](_0x536355,_0x552bae),_0x1ada34=this['getUVByXY'](_0x1684a7,_0x552bae);let _0x498018=null;try{_0x498018=this[_0x13f78e(0x32e,0x306)](_0x1ee065-_0x536355,_0x305791-_0x5db309,_0x102f96,_0x251c46,_0xf5e0a5,_0x1ada34);}catch(_0x4c55aa){console['log'](_0x1ee065,_0x305791);}return _0x498018;}[_0x177c41(0x2a5,0x27d)](_0x3aea2e,_0x2e5a55,_0x360c8d,_0xb8e4ee,_0x4572a,_0x4160f8){const _0x4e7537=0x1-_0x3aea2e,_0x49a7d3=0x1-_0x2e5a55,_0x5c25eb=_0x4e7537*_0x49a7d3,_0x5a84ed=_0x3aea2e*_0x49a7d3,_0xc534ee=_0x4e7537*_0x2e5a55,_0x12fe70=_0x3aea2e*_0x2e5a55,_0x314742=_0x360c8d[0x0]*_0x5c25eb+_0xb8e4ee[0x0]*_0x5a84ed+_0x4572a[0x0]*_0xc534ee+_0x4160f8[0x0]*_0x12fe70,_0x1fc5c6=_0x360c8d[0x1]*_0x5c25eb+_0xb8e4ee[0x1]*_0x5a84ed+_0x4572a[0x1]*_0xc534ee+_0x4160f8[0x1]*_0x12fe70;return this['_calcUV'](_0x314742,_0x1fc5c6);}['_calcUV'](_0x3a5277,_0x519cb6){function _0x261b2f(_0x4f1395,_0x5724d0){return _0x1a7384(_0x5724d0,_0x4f1395- -0x4fb);}return[+_0x3a5277,+_0x519cb6,Math[_0x261b2f(-0x150,-0x1ab)](_0x3a5277*_0x3a5277+_0x519cb6*_0x519cb6)];}['getUVByPoint'](_0x59d47f,_0xa61aad){if(!this['isInExtent'](_0x59d47f,_0xa61aad))return null;const _0x55e0af=this['toGridXY'](_0x59d47f,_0xa61aad),_0x2f4291=this[_0x933a53(0x13e,0x13b)](_0x55e0af[0x0],_0x55e0af[0x1]);function _0x933a53(_0x206fcb,_0x2e6b1e){return _0x177c41(_0x206fcb- -0x1c8,_0x2e6b1e);}return _0x2f4291;}[_0x1a7384(0x450,0x3e3)](_0x46980d,_0x42ae75){function _0x2c8db6(_0xa0828e,_0x4cb1fc){return _0x177c41(_0xa0828e-0x1b2,_0x4cb1fc);}function _0x29c37a(_0x44ec0b,_0x415901){return _0x1a7384(_0x44ec0b,_0x415901- -0x137);}return _0x46980d>=this[_0x29c37a(0x276,0x1fe)]&&_0x46980d<=this[_0x2c8db6(0x4d0,0x51f)]&&_0x42ae75>=this[_0x29c37a(0x235,0x1f7)]&&_0x42ae75<=this['ymax']?!![]:![];}[_0x1a7384(0x42c,0x3bb)](){const _0xc9aa79=fRandomByfloat(this[_0x2228f4(-0xaa,-0x62)],this['xmax']);function _0x2228f4(_0x15b1cd,_0x4dbe25){return _0x177c41(_0x4dbe25- -0x2d7,_0x15b1cd);}const _0x31b7e2=fRandomByfloat(this['ymin'],this['ymax']);function _0x32bb92(_0x4046b1,_0x5b9386){return _0x1a7384(_0x5b9386,_0x4046b1- -0xe6);}const _0x21a788={};return _0x21a788['lat']=_0x31b7e2,_0x21a788[_0x2228f4(-0x7b,-0xe)]=_0xc9aa79,_0x21a788;}['getParticles'](){let _0x594f2b,_0x5ea350,_0x4ac22b;function _0x1fb419(_0x10d50f,_0x12a401){return _0x177c41(_0x10d50f-0x142,_0x12a401);}for(let _0x2a267f=0x0,_0x4c092a=this[_0xe65d02(0x350,0x36a)]['length'];_0x2a267f<_0x4c092a;_0x2a267f++){let _0x3ddc7f=this[_0xe65d02(0x3f0,0x36a)][_0x2a267f];_0x3ddc7f['age']<=0x0&&(_0x3ddc7f=this['_randomParticle'](_0x3ddc7f));if(_0x3ddc7f[_0xe65d02(0x44f,0x3d7)]>0x0){const _0x41b5c4=_0x3ddc7f[_0x1fb419(0x378,0x34a)],_0x3271d0=_0x3ddc7f['tlat'];_0x4ac22b=this[_0x1fb419(0x3ca,0x3c6)](_0x41b5c4,_0x3271d0),_0x4ac22b?(_0x594f2b=_0x41b5c4+this['_calc_speedRate'][0x0]*_0x4ac22b[0x0],_0x5ea350=_0x3271d0+this['_calc_speedRate'][0x1]*_0x4ac22b[0x1],_0x3ddc7f[_0xe65d02(0x3c7,0x394)]=_0x41b5c4,_0x3ddc7f[_0x1fb419(0x367,0x3d6)]=_0x3271d0,_0x3ddc7f['tlng']=_0x594f2b,_0x3ddc7f['tlat']=_0x5ea350,_0x3ddc7f['speed']=_0x4ac22b[0x2],_0x3ddc7f['age']--):_0x3ddc7f['age']=0x0;}}function _0xe65d02(_0x45f09f,_0x514223){return _0x177c41(_0x514223-0xcb,_0x45f09f);}return this[_0x1fb419(0x3e1,0x40a)];}['_randomParticle'](_0x154827){let _0x15409a,_0x5dffe8;for(let _0x5ca4e6=0x0;_0x5ca4e6<0x1e;_0x5ca4e6++){_0x15409a=this['getRandomLatLng'](),_0x5dffe8=this[_0x2f8d22(0x3,0x5c)](_0x15409a['lng'],_0x15409a['lat']);if(_0x5dffe8&&_0x5dffe8[0x2]>0x0)break;}if(!_0x5dffe8)return _0x154827;const _0x28fc86=_0x15409a['lng']+this[_0x38b2bc(-0x1bc,-0x24b)][0x0]*_0x5dffe8[0x0],_0x3a8cac=_0x15409a[_0x2f8d22(0x1c,-0x7)]+this['_calc_speedRate'][0x1]*_0x5dffe8[0x1];_0x154827['lng']=_0x15409a['lng'],_0x154827['lat']=_0x15409a['lat'];function _0x38b2bc(_0x527372,_0x551693){return _0x1a7384(_0x551693,_0x527372- -0x528);}_0x154827[_0x38b2bc(-0x232,-0x1e2)]=_0x28fc86;function _0x2f8d22(_0x1c0c18,_0x5c8434){return _0x177c41(_0x5c8434- -0x22c,_0x1c0c18);}return _0x154827['tlat']=_0x3a8cac,_0x154827['age']=Math[_0x38b2bc(-0x1d5,-0x25d)](0xa+Math['random']()*this[_0x38b2bc(-0x222,-0x2a5)]),_0x154827['speed']=_0x5dffe8[0x2],_0x154827;}[_0x1a7384(0x384,0x30a)](){for(const _0x6634af in this){delete this[_0x6634af];}}}function _0x177c41(_0x538cb8,_0x36dab3){return _0x8b0c(_0x538cb8-0x140,_0x36dab3);}function fRandomByfloat(_0x5bb7c7,_0x5174c0){return _0x5bb7c7+Math['random']()*(_0x5174c0-_0x5bb7c7);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer']['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x35318e={}){super(_0x35318e),this['_setOptionsHook'](_0x35318e),this['canvas']=null,_0x35318e['colors']&&_0x35318e['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x35318e));}[_0x1a7384(0x2ec,0x358)](_0x124a1c,_0x39f144){this['frameTime']=0x3e8/(_0x124a1c[_0x31b0da(-0xe1,-0xae)]||0xa),this[_0x49e7c8(0x3e4,0x35f)]=this['options']['pointerEvents']??![],this[_0x49e7c8(0x304,0x38e)]=_0x124a1c['color']||_0x49e7c8(0x44b,0x3f0),this['lineWidth']=_0x124a1c[_0x31b0da(-0x2d,-0x4d)]||0x1;function _0x31b0da(_0x4a3a43,_0x4c2291){return _0x177c41(_0x4c2291- -0x2c4,_0x4a3a43);}this['fixedHeight']=_0x124a1c[_0x31b0da(-0x27,-0x65)]??0x0,this[_0x49e7c8(0x3d0,0x45d)]=_0x124a1c[_0x49e7c8(0x418,0x45d)]??![];function _0x49e7c8(_0x2e66f5,_0x3f29af){return _0x177c41(_0x3f29af-0x137,_0x2e66f5);}this['windField']&&this['windField']['setOptions'](_0x124a1c);}get['layer'](){return this['canvas'];}get[_0x1a7384(0x3c4,0x3ba)](){function _0x5dbebe(_0x51f11a,_0x526be7){return _0x1a7384(_0x526be7,_0x51f11a- -0x389);}return this['_map']['scene'][_0x5dbebe(-0x2,-0x5e)]['clientWidth'];}get['canvasHeight'](){function _0x109b01(_0x1ae446,_0x58e103){return _0x177c41(_0x58e103- -0x428,_0x1ae446);}return this['_map']['scene']['canvas'][_0x109b01(-0x21a,-0x19e)];}get[_0x1a7384(0x34c,0x3b5)](){return this['_pointerEvents'];}set[_0x177c41(0x2f5,0x315)](_0x459fdf){function _0x142864(_0x4163c6,_0x4d7741){return _0x177c41(_0x4163c6- -0x120,_0x4d7741);}this[_0x35459e(-0x316,-0x2b5)]=_0x459fdf;function _0x35459e(_0x83654,_0x5ca2f1){return _0x177c41(_0x5ca2f1- -0x4dd,_0x83654);}if(!this[_0x35459e(-0x1c3,-0x216)])return;_0x459fdf?this[_0x35459e(-0x257,-0x216)][_0x35459e(-0x294,-0x298)][_0x35459e(-0x27f,-0x1ff)]='all':this['canvas']['style'][_0x142864(0x1be,0x1bb)]='none';}get['particlesNumber'](){return this['options']['particlesNumber'];}set[_0x1a7384(0x300,0x372)](_0x529b85){this['options']['particlesNumber']=_0x529b85;function _0xb088f3(_0xcc7555,_0x4cc183){return _0x1a7384(_0x4cc183,_0xcc7555-0xea);}clearTimeout(this['_canrefresh']),this[_0xb088f3(0x46a,0x4e1)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x1a7384(0x2fe,0x30e)](){function _0x1419b3(_0xefc135,_0x2fc82e){return _0x1a7384(_0xefc135,_0x2fc82e- -0x164);}function _0x362f40(_0x3581b5,_0xec58a4){return _0x177c41(_0x3581b5- -0x3d7,_0xec58a4);}return this[_0x362f40(-0x150,-0x154)][_0x362f40(-0x189,-0x193)];}set['speedRate'](_0x412100){function _0x31850e(_0x53ad1c,_0x134b1b){return _0x1a7384(_0x53ad1c,_0x134b1b- -0x586);}this['options'][_0x31850e(-0x2f6,-0x278)]=_0x412100,this['windField']&&(this['windField']['speedRate']=_0x412100);}get[_0x1a7384(0x342,0x306)](){return this['options']['maxAge'];}set['maxAge'](_0x4a9a6a){function _0x3360a1(_0x2fed4b,_0x2aa3b4){return _0x177c41(_0x2fed4b- -0x17f,_0x2aa3b4);}function _0x4d536d(_0x2c270a,_0x105e4b){return _0x1a7384(_0x2c270a,_0x105e4b- -0x2e8);}this[_0x4d536d(0x43,0x5f)]['maxAge']=_0x4a9a6a,this['windField']&&(this[_0x3360a1(0x19a,0x21b)]['maxAge']=_0x4a9a6a);}get['data'](){function _0x55a9b8(_0x54d842,_0x4ed603){return _0x177c41(_0x4ed603-0x184,_0x54d842);}return this[_0x55a9b8(0x431,0x40d)];}set[_0x1a7384(0x38f,0x324)](_0x2b1c46){this['setData'](_0x2b1c46);}get['rectangle'](){let _0x162c33=this['windData'][_0x5b8294(0x329,0x2c2)],_0x115a9d=this['windData'][_0x5b8294(0x3d2,0x351)];function _0x5b8294(_0x1a7a3f,_0x58c6c3){return _0x177c41(_0x1a7a3f-0xb4,_0x58c6c3);}let _0x1d51f3=this['windData'][_0x5b8294(0x322,0x2d9)],_0x50ff99=this['windData']['ymax'];_0x115a9d>=0x167&&_0x162c33===0x0&&(_0x162c33=-0xb4,_0x115a9d=0xb4);function _0x42a3ef(_0x1c5d31,_0x3fc02f){return _0x177c41(_0x3fc02f-0x14,_0x1c5d31);}return _0x162c33=Math[_0x42a3ef(0x276,0x25f)](_0x162c33,-0xb4),_0x115a9d=Math['min'](_0x115a9d,0xb4),_0x1d51f3=Math[_0x42a3ef(0x2cf,0x25f)](_0x1d51f3,-0x5a),_0x50ff99=Math['min'](_0x50ff99,0x5a),Cesium['Rectangle'][_0x42a3ef(0x214,0x292)](_0x162c33,_0x1d51f3,_0x115a9d,_0x50ff99);}[_0x177c41(0x2e3,0x369)](_0x79d973){function _0x334d74(_0x4ec832,_0x2d1670){return _0x177c41(_0x4ec832- -0xa8,_0x2d1670);}function _0x201b54(_0x46627e,_0x3e29b9){return _0x177c41(_0x46627e- -0x2b7,_0x3e29b9);}_0x79d973?this[_0x201b54(-0x6,0x15)]():(this['windData']&&(this['options']['data']=this['windData']),this[_0x201b54(-0xa5,-0x115)]());}[_0x1a7384(0x44c,0x3e8)](){this['options']['worker']?this['initWorker']():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){function _0x580a4a(_0x5289bb,_0x2a95de){return _0x1a7384(_0x5289bb,_0x2a95de- -0x502);}this['canvas']=this[_0x4f3254(-0x147,-0x1d0)]();const _0xe37f0a={};_0xe37f0a[_0x580a4a(-0x19a,-0x203)]=!![],this['canvasContext']=this[_0x580a4a(-0x1af,-0x17b)]['getContext']('2d',_0xe37f0a);function _0x4f3254(_0x22c76f,_0x24d64a){return _0x1a7384(_0x24d64a,_0x22c76f- -0x4c9);}this[_0x580a4a(-0x193,-0x20f)](),this[_0x580a4a(-0x143,-0x1bb)]['data']&&this['setData'](this[_0x580a4a(-0x1f0,-0x1bb)]['data']);}[_0x177c41(0x212,0x24f)](){this['clear']();function _0x2e959a(_0x3ad8af,_0x729b0){return _0x177c41(_0x3ad8af-0x1bd,_0x729b0);}this['unbindEvent']();function _0x4796ea(_0x13315e,_0x27c5df){return _0x177c41(_0x13315e- -0x368,_0x27c5df);}this['canvas']&&(this['_map'][_0x4796ea(-0x9c,-0xb3)][_0x4796ea(-0x93,-0xd1)](this['canvas']),delete this[_0x4796ea(-0xa1,-0x1e)]);}['_createCanvas'](){const _0x6dd5=mars3d__namespace['DomUtil'][_0x16df24(0x30b,0x33f)]('canvas','mars3d-canvasWind',this['_map']['container']);_0x6dd5['style']['position']='absolute',_0x6dd5['style']['top']=_0x16df24(0x27c,0x1fe),_0x6dd5[_0x3292be(-0x1b3,-0x1b9)]['left']=_0x16df24(0x27c,0x2ad),_0x6dd5['style']['width']=this[_0x16df24(0x34a,0x365)]['scene']['canvas'][_0x16df24(0x2b8,0x296)]+'px',_0x6dd5[_0x16df24(0x292,0x23e)]['height']=this[_0x3292be(-0xfb,-0xb2)]['scene'][_0x16df24(0x314,0x31f)]['clientHeight']+'px',_0x6dd5[_0x3292be(-0x1b3,-0x165)]['pointerEvents']=this['_pointerEvents']?'auto':_0x16df24(0x309,0x38e),_0x6dd5[_0x16df24(0x292,0x2f4)][_0x16df24(0x374,0x3ff)]=this[_0x3292be(-0x171,-0x1ba)][_0x16df24(0x374,0x401)]??0x9;function _0x3292be(_0x10b26d,_0x1ba8f8){return _0x1a7384(_0x1ba8f8,_0x10b26d- -0x4b8);}function _0x16df24(_0x4bc0df,_0x5c5a34){return _0x177c41(_0x4bc0df-0x4d,_0x5c5a34);}return _0x6dd5['width']=this[_0x3292be(-0xfb,-0x11a)]['scene']['canvas'][_0x16df24(0x2b8,0x2ec)],_0x6dd5['height']=this['_map']['scene'][_0x16df24(0x314,0x395)][_0x16df24(0x2d7,0x363)],_0x6dd5;}['resize'](){function _0x579648(_0x297b52,_0x5c3257){return _0x177c41(_0x297b52-0x1b8,_0x5c3257);}function _0x56d4e0(_0x37ade7,_0x4e8cfc){return _0x177c41(_0x37ade7-0xce,_0x4e8cfc);}this['canvas']&&(this['canvas']['style']['width']=this[_0x579648(0x4b5,0x4d7)]['scene']['canvas'][_0x579648(0x423,0x495)]+'px',this[_0x579648(0x47f,0x48f)][_0x56d4e0(0x313,0x2eb)][_0x579648(0x480,0x4e7)]=this['_map']['scene']['canvas'][_0x579648(0x442,0x3e3)]+'px',this['canvas'][_0x579648(0x431,0x425)]=this[_0x579648(0x4b5,0x4e5)]['scene']['canvas'][_0x579648(0x423,0x3e7)],this[_0x56d4e0(0x395,0x33f)][_0x56d4e0(0x396,0x3b4)]=this['_map']['scene']['canvas']['clientHeight']);}['bindEvent'](){const _0x580503=this;let _0x51f18f=Date['now']();(function _0x2c5b6f(){if(_0x580503['isDestroy'])return;function _0x5a4c80(_0x1f591b,_0x1fe606){return _0x8b0c(_0x1f591b-0x38c,_0x1fe606);}_0x580503['_animateFrame']=window['requestAnimationFrame'](_0x2c5b6f);if(_0x580503['show']&&_0x580503['windField']){const _0x5e4a2b=Date['now'](),_0x42ed0b=_0x5e4a2b-_0x51f18f;_0x42ed0b>_0x580503['frameTime']&&(_0x51f18f=_0x5e4a2b-_0x42ed0b%_0x580503[_0x5a4c80(0x4e2,0x4b0)],_0x580503['update']());}}());function _0x27334f(_0x55b9a5,_0x184ddc){return _0x177c41(_0x55b9a5- -0xde,_0x184ddc);}function _0x2638bf(_0x4b9c2a,_0x1ed2ba){return _0x177c41(_0x1ed2ba- -0xcb,_0x4b9c2a);}window['addEventListener']('resize',this['resize'][_0x2638bf(0x26c,0x1e5)](this),![]),this['mouse_down']=![],this[_0x2638bf(0xf7,0x14e)]=![],this['options'][_0x27334f(0x233,0x238)]&&(this[_0x2638bf(0x22f,0x232)]['on'](mars3d__namespace['EventType']['wheel'],this[_0x27334f(0x1b3,0x178)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x27334f(0x1f2,0x1e0)],this),this['_map']['on'](mars3d__namespace[_0x2638bf(0x138,0x184)]['mouseUp'],this['_onMouseUpEvent'],this));}[_0x177c41(0x2d1,0x359)](){window[_0x115a09(-0x3f,0x11)](this['_animateFrame']),delete this['_animateFrame'];function _0x115a09(_0x41b59e,_0x12c776){return _0x177c41(_0x41b59e- -0x291,_0x12c776);}window[_0x115a09(-0x3d,-0x3b)](_0x26a6d9(0x3a6,0x423),this['resize']);function _0x26a6d9(_0x1b4008,_0x481760){return _0x177c41(_0x1b4008-0x16e,_0x481760);}this['options'][_0x115a09(0x80,0xc3)]&&(this['_map']['off'](mars3d__namespace[_0x26a6d9(0x3bd,0x434)]['wheel'],this[_0x26a6d9(0x3ff,0x415)],this),this[_0x26a6d9(0x46b,0x443)]['off'](mars3d__namespace['EventType']['mouseDown'],this[_0x115a09(0x3f,0x85)],this),this['_map']['off'](mars3d__namespace[_0x26a6d9(0x3bd,0x33b)]['mouseUp'],this['_onMouseUpEvent'],this),this[_0x115a09(0x6c,-0x14)]['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x26a6d9(0x462,0x4c5)],this));}[_0x1a7384(0x376,0x351)](_0x4b494d){function _0x4c8dcb(_0x166d3c,_0x2488de){return _0x177c41(_0x2488de- -0xe2,_0x166d3c);}function _0x496939(_0x13563f,_0x25b1ab){return _0x177c41(_0x25b1ab- -0x1a1,_0x13563f);}clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this[_0x4c8dcb(0x184,0x1e5)]['style']['visibility']=_0x496939(0x164,0x136),this[_0x4c8dcb(0x14e,0x17b)]=setTimeout(()=>{if(!this[_0x523ad4(0x82,0xb6)])return;function _0x113c62(_0x524315,_0x4a11fe){return _0x4c8dcb(_0x4a11fe,_0x524315- -0x255);}this[_0x113c62(-0x116,-0x141)]();function _0x523ad4(_0x85d5f6,_0x1494ec){return _0x4c8dcb(_0x85d5f6,_0x1494ec- -0x102);}this['canvas']['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x11d356){function _0x43adf2(_0x59ecc4,_0x5c62e6){return _0x177c41(_0x5c62e6- -0x238,_0x59ecc4);}this['mouse_down']=!![];function _0x16976f(_0x1403ac,_0x58bdf3){return _0x1a7384(_0x58bdf3,_0x1403ac- -0x263);}this[_0x16976f(0x15a,0x171)]['off'](mars3d__namespace[_0x16976f(0xac,0x4e)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x16976f(0x15a,0xf7)]['on'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x38301e){function _0x26d784(_0x435290,_0x1152b9){return _0x177c41(_0x435290- -0x1ec,_0x1152b9);}function _0x201edb(_0x7a201b,_0x3560ea){return _0x177c41(_0x3560ea- -0x243,_0x7a201b);}if(!this['show']||!this[_0x26d784(0xdb,0xcd)])return;this['mouse_down']&&(this['canvas'][_0x201edb(-0x72,0x2)][_0x201edb(0x10e,0xa9)]='hidden',this[_0x26d784(0x2d,0x90)]=!![]);}['_onMouseUpEvent'](_0x1959fa){if(!this[_0x720a9f(-0x61,-0x56)]||!this['canvas'])return;this[_0x720a9f(0x43,0xd)]['off'](mars3d__namespace['EventType'][_0x720a9f(-0x4d,0x3b)],this[_0x354269(-0x11e,-0x11f)],this);function _0x720a9f(_0x4f9166,_0x18e2e5){return _0x1a7384(_0x4f9166,_0x18e2e5- -0x3b0);}function _0x354269(_0x57f50f,_0x1eba13){return _0x1a7384(_0x1eba13,_0x57f50f- -0x4d2);}this['mouse_down']&&this[_0x720a9f(-0x75,-0xd7)]&&this[_0x354269(-0x1f1,-0x222)](),this[_0x720a9f(-0x8f,-0x29)]['style'][_0x354269(-0x126,-0x18a)]='visible',this['mouse_down']=![],this['mouse_move']=![];}[_0x177c41(0x302,0x335)](_0x34d5e0){this['clear'](),this[_0x43a555(-0xe8,-0x120)]=_0x34d5e0;function _0x5d09e8(_0x518f2b,_0x7fcb63){return _0x1a7384(_0x7fcb63,_0x518f2b- -0x408);}function _0x43a555(_0x51a426,_0x5d978e){return _0x1a7384(_0x5d978e,_0x51a426- -0x431);}this[_0x43a555(-0x58,-0x1f)]['setDate'](_0x34d5e0),this[_0x5d09e8(-0x127,-0x150)]();}[_0x177c41(0x221,0x245)](){function _0x48e86a(_0x747852,_0x20fc57){return _0x1a7384(_0x20fc57,_0x747852- -0x46c);}if(!this['show'])return;this[_0x48e86a(-0x93,-0x51)]['setOptions'](this['options']),this['update']();}[_0x1a7384(0x3a8,0x33c)](){if(this[_0x509c1f(-0x66,-0x32)])return;function _0xb26f82(_0x1dfc9a,_0xb3bb35){return _0x177c41(_0xb3bb35- -0x253,_0x1dfc9a);}this['_updateIng']=!![];if(this[_0x509c1f(-0x24,-0x9a)])this['windField'][_0xb26f82(0x55,0x29)]();else{const _0x20e9f4=this[_0x509c1f(0xe1,0x62)]['getParticles']();this[_0x509c1f(0xb4,0x58)](_0x20e9f4);}function _0x509c1f(_0x4403a8,_0x291969){return _0x177c41(_0x291969- -0x2b7,_0x4403a8);}this['_updateIng']=![];}[_0x177c41(0x30f,0x2d1)](_0x3ad5ec){this['_canvasParticles']=_0x3ad5ec,this['canvasContext'][_0x41f489(-0x147,-0x1b1)]='destination-in',this['canvasContext'][_0x41f489(-0x155,-0xd4)](0x0,0x0,this[_0x2cbc36(-0x159,-0x191)],this[_0x2cbc36(-0x16d,-0x17a)]);function _0x2cbc36(_0xb7e04e,_0x2e58bf){return _0x177c41(_0xb7e04e- -0x453,_0x2e58bf);}this['canvasContext']['globalCompositeOperation']='lighter';function _0x41f489(_0x38a8bb,_0x939c20){return _0x1a7384(_0x939c20,_0x38a8bb- -0x488);}this[_0x2cbc36(-0x23e,-0x1c9)][_0x2cbc36(-0x140,-0xf2)]=0.9;const _0x715b28=this[_0x41f489(-0xcb,-0x6e)]['scene']['mode']!==Cesium[_0x2cbc36(-0x18e,-0x1a5)]['SCENE3D'],_0x5a215d=this[_0x2cbc36(-0x159,-0x1b7)]*0.25;if(this['_colorRamp'])for(let _0x8c8e45=0x0,_0x1b492a=_0x3ad5ec['length'];_0x8c8e45<_0x1b492a;_0x8c8e45++){const _0x3abf59=_0x3ad5ec[_0x8c8e45],_0x471627=this[_0x2cbc36(-0x228,-0x197)](_0x3abf59,_0x3abf59[_0x2cbc36(-0x18a,-0x172)],_0x3abf59[_0x2cbc36(-0x22e,-0x1c5)],_0x3abf59['alt']),_0xa005d3=this['_tomap'](_0x3abf59,_0x3abf59['tlng'],_0x3abf59['tlat'],_0x3abf59['talt']);if(!_0x471627||!_0xa005d3)continue;if(_0x715b28&&Math['abs'](_0x471627[0x0]-_0xa005d3[0x0])>=_0x5a215d)continue;this['canvasContext']['beginPath'](),this[_0x2cbc36(-0x23e,-0x250)]['lineWidth']=this[_0x2cbc36(-0x1dc,-0x160)],this['canvasContext']['strokeStyle']=this['_colorRamp']['getColor'](_0x3abf59['speed']),this['canvasContext']['moveTo'](_0x471627[0x0],_0x471627[0x1]),this['canvasContext']['lineTo'](_0xa005d3[0x0],_0xa005d3[0x1]),this['canvasContext']['stroke']();}else{this['canvasContext']['beginPath'](),this['canvasContext'][_0x2cbc36(-0x1dc,-0x17e)]=this[_0x41f489(-0x151,-0x16a)],this['canvasContext'][_0x41f489(-0x14b,-0xe6)]=this[_0x2cbc36(-0x1fc,-0x253)];for(let _0x335c4b=0x0,_0x31dced=_0x3ad5ec[_0x41f489(-0xe4,-0xcb)];_0x335c4b<_0x31dced;_0x335c4b++){const _0xe02391=_0x3ad5ec[_0x335c4b],_0x3f8175=this[_0x2cbc36(-0x228,-0x21f)](_0xe02391,_0xe02391['lng'],_0xe02391[_0x2cbc36(-0x22e,-0x271)],_0xe02391[_0x2cbc36(-0x1a8,-0x188)]),_0x49c1f1=this['_tomap'](_0xe02391,_0xe02391[_0x41f489(-0x192,-0x1da)],_0xe02391['tlat'],_0xe02391[_0x2cbc36(-0x215,-0x204)]);if(!_0x3f8175||!_0x49c1f1)continue;if(_0x715b28&&Math['abs'](_0x3f8175[0x0]-_0x49c1f1[0x0])>=_0x5a215d)continue;this['canvasContext'][_0x2cbc36(-0x1ac,-0x1bd)](_0x3f8175[0x0],_0x3f8175[0x1]),this[_0x2cbc36(-0x23e,-0x281)]['lineTo'](_0x49c1f1[0x0],_0x49c1f1[0x1]);}this['canvasContext']['stroke']();}}[_0x177c41(0x22b,0x20f)](_0x599f34,_0x103ec7,_0x570e21,_0x5b4205){function _0x42bef1(_0x5263ae,_0x2fd33f){return _0x1a7384(_0x2fd33f,_0x5263ae-0x163);}const _0x5601f0=Cesium['Cartesian3']['fromDegrees'](_0x103ec7,_0x570e21,_0x5b4205??this[_0x42bef1(0x482,0x511)]),_0x13330c=this[_0x42bef1(0x520,0x544)][_0x42bef1(0x46f,0x42c)];if(_0x13330c['mode']===Cesium[_0x409507(0x1aa,0x19c)][_0x409507(0x123,0x17a)]){const _0x1bfa6e=new Cesium[(_0x42bef1(0x53b,0x546))](_0x13330c['globe'][_0x42bef1(0x4d9,0x52a)],_0x13330c[_0x42bef1(0x4de,0x4b9)]['positionWC']),_0x38535e=_0x1bfa6e[_0x409507(0x1be,0x173)](_0x5601f0);if(!_0x38535e)return _0x599f34[_0x42bef1(0x52f,0x501)]=0x0,null;}function _0x409507(_0x37f342,_0x33ff03){return _0x1a7384(_0x37f342,_0x33ff03- -0x1e9);}const _0x1cc0ba=mars3d__namespace[_0x409507(0xc3,0x135)]['toWindowCoordinates'](this[_0x409507(0x1c7,0x1d4)]['scene'],_0x5601f0);return _0x1cc0ba?[_0x1cc0ba['x'],_0x1cc0ba['y']]:null;}[_0x177c41(0x299,0x28a)](){this[_0x16001e(0x419,0x487)]['clear']();function _0x16001e(_0x196e0c,_0x2e77d5){return _0x1a7384(_0x2e77d5,_0x196e0c-0x40);}delete this['windData'];}[_0x177c41(0x30d,0x2f1)](){function _0x40c7a9(_0x4aa371,_0x3a1bd5){return _0x1a7384(_0x3a1bd5,_0x4aa371- -0x99);}function _0x176487(_0x26e8a8,_0x59ef8f){return _0x177c41(_0x59ef8f-0x29e,_0x26e8a8);}this[_0x40c7a9(0x244,0x2d4)]=new Worker(this[_0x40c7a9(0x2ae,0x21e)]['worker']),this['worker'][_0x40c7a9(0x33e,0x2b1)]=_0x3c707e=>{this['_drawLines'](_0x3c707e['data']['particles']),this['_updateIng2']=![];},this[_0x176487(0x567,0x5b7)]={'init':_0x1f32b0=>{const _0x542ab4={};function _0x3cfc7b(_0x246ad6,_0x5156d4){return _0x40c7a9(_0x246ad6-0x211,_0x5156d4);}_0x542ab4['type']='init',_0x542ab4['options']=_0x1f32b0,this['worker'][_0x3cfc7b(0x48d,0x445)](_0x542ab4);},'setOptions':_0xe7be91=>{const _0x255f23={};function _0x571a4d(_0xa845b3,_0xffa48d){return _0x40c7a9(_0xffa48d- -0x97,_0xa845b3);}_0x255f23['type']=_0x571a4d(0x2e6,0x2bc),_0x255f23['options']=_0xe7be91,this['worker']['postMessage'](_0x255f23);},'setDate':_0x32e44f=>{const _0x4a9ff4={};function _0x1d23ce(_0x108225,_0x22c51e){return _0x176487(_0x108225,_0x22c51e- -0x525);}function _0x6e4e53(_0x661142,_0x59f663){return _0x176487(_0x661142,_0x59f663- -0x258);}_0x4a9ff4['type']='setDate',_0x4a9ff4['data']=_0x32e44f,this[_0x1d23ce(-0x20,-0x6a)][_0x1d23ce(0x3,-0x32)](_0x4a9ff4);},'update':()=>{if(this['_updateIng2'])return;this[_0x4241f3(0x1b3,0x126)]=!![];function _0x25c598(_0x341d47,_0x4b2042){return _0x40c7a9(_0x341d47- -0x531,_0x4b2042);}const _0x1b538f={};function _0x4241f3(_0x5184f7,_0x5ae52d){return _0x176487(_0x5ae52d,_0x5184f7- -0x346);}_0x1b538f[_0x25c598(-0x2da,-0x2e0)]='update',this[_0x25c598(-0x2ed,-0x36d)]['postMessage'](_0x1b538f);},'clear':()=>{const _0x53eebe={};_0x53eebe[_0x5d41da(0x436,0x42c)]=_0x5094a4(-0xbd,-0xc9);function _0x5094a4(_0x38120d,_0x379d61){return _0x40c7a9(_0x379d61- -0x389,_0x38120d);}function _0x5d41da(_0x448cc8,_0x204944){return _0x40c7a9(_0x448cc8-0x1df,_0x204944);}this['worker']['postMessage'](_0x53eebe);}},this[_0x40c7a9(0x340,0x31a)]['init'](this['options']);}}mars3d__namespace[_0x177c41(0x25c,0x23b)]['register'](_0x177c41(0x24d,0x230),CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace['Log'][_0x1a7384(0x315,0x3a1)]('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x1a7384(0x3d3,0x34e)]=WindUtil;const _0x3e1e1d={};_0x3e1e1d['value']=!![];function _0x1a7384(_0x10c052,_0x46c94a){return _0x8b0c(_0x46c94a-0x200,_0x10c052);}Object[_0x177c41(0x307,0x299)](exports,_0x177c41(0x234,0x2a6),_0x3e1e1d);
14
+ 'use strict';(function(_0x792cc4,_0x119712){function _0x334217(_0x32dc9f,_0xa33938){return _0x3a79(_0x32dc9f- -0x22e,_0xa33938);}function _0x53abc4(_0x224d62,_0x180b19){return _0x3a79(_0x180b19-0x227,_0x224d62);}const _0x39008c=_0x792cc4();while(!![]){try{const _0x33b94d=-parseInt(_0x53abc4(0x27d,0x2e9))/0x1*(parseInt(_0x334217(-0x117,-0x92))/0x2)+parseInt(_0x334217(-0x180,-0x1ee))/0x3+parseInt(_0x53abc4(0x2d5,0x337))/0x4*(-parseInt(_0x334217(-0x146,-0x158))/0x5)+-parseInt(_0x53abc4(0x346,0x2cf))/0x6+-parseInt(_0x334217(-0x8c,-0xf))/0x7+parseInt(_0x53abc4(0x3d5,0x38f))/0x8+parseInt(_0x334217(-0x115,-0x138))/0x9*(parseInt(_0x334217(-0x116,-0x9c))/0xa);if(_0x33b94d===_0x119712)break;else _0x39008c['push'](_0x39008c['shift']());}catch(_0x21e0ed){_0x39008c['push'](_0x39008c['shift']());}}}(_0x4738,0xb663a));function _interopNamespace(_0xb86b64){if(_0xb86b64&&_0xb86b64['__esModule'])return _0xb86b64;function _0x547750(_0x3a9336,_0x5719d2){return _0x3a79(_0x5719d2-0x315,_0x3a9336);}var _0x1fdfd5=Object[_0x547750(0x3fc,0x477)](null);function _0x3287dc(_0xb6d35b,_0x45af60){return _0x3a79(_0x45af60- -0x22f,_0xb6d35b);}return _0xb86b64&&Object[_0x3287dc(-0x197,-0x127)](_0xb86b64)['forEach'](function(_0x4b6c3b){function _0x456b0b(_0x4b2c51,_0x258b0b){return _0x547750(_0x258b0b,_0x4b2c51- -0x332);}if(_0x4b6c3b!=='default'){var _0x23633d=Object[_0x456b0b(0x8e,0xb0)](_0xb86b64,_0x4b6c3b);Object['defineProperty'](_0x1fdfd5,_0x4b6c3b,_0x23633d['get']?_0x23633d:{'enumerable':!![],'get':function(){return _0xb86b64[_0x4b6c3b];}});}}),_0x1fdfd5[_0x3287dc(-0x2b,-0x9d)]=_0xb86b64,_0x1fdfd5;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x2e342d(0x2fa,0x348)];function getU(_0x1c62aa,_0x4cb508){function _0x1573c5(_0x3d08db,_0x49c7ea){return _0x2e342d(_0x49c7ea- -0x429,_0x3d08db);}const _0x21c076=_0x1c62aa*Math['cos'](Cesium$2[_0x1573c5(-0x132,-0xac)]['toRadians'](_0x4cb508));return _0x21c076;}function getV(_0x564e82,_0x10c1f4){const _0x4f3839=_0x564e82*Math[_0x2a363f(0x1bf,0x169)](Cesium$2['Math']['toRadians'](_0x10c1f4));function _0x2a363f(_0x42f49e,_0x1da87f){return _0x2e342d(_0x42f49e- -0xbe,_0x1da87f);}return _0x4f3839;}function getSpeed(_0x5ae56e,_0x4c94f9){const _0x42c8b1=Math['sqrt'](Math['pow'](_0x5ae56e,0x2)+Math['pow'](_0x4c94f9,0x2));return _0x42c8b1;}function getDirection(_0x344942,_0x4d616d){let _0x28509b=Cesium$2[_0x3bb67e(-0xfb,-0xd7)][_0x46f9ec(0xc4,0xa8)](Math['atan2'](_0x4d616d,_0x344942));function _0x46f9ec(_0x5b3294,_0x113e20){return _0x2e342d(_0x113e20- -0x24c,_0x5b3294);}_0x28509b+=_0x28509b<0x0?0x168:0x0;function _0x3bb67e(_0x32d612,_0x657962){return _0x2e342d(_0x32d612- -0x478,_0x657962);}return _0x28509b;}const _0x534c94={};_0x534c94[_0x3e2b6f(0x88,0x4f)]=null,_0x534c94['getU']=getU,_0x534c94[_0x2e342d(0x370,0x302)]=getV,_0x534c94['getSpeed']=getSpeed,_0x534c94[_0x2e342d(0x292,0x266)]=getDirection;var WindUtil=_0x534c94,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=_0x3e2b6f(0x67,0x18),postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a';const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];function _0x4738(){const _0x22c3ba=['NEAREST','postMessage','south','componentsPerAttribute','toGridXY','rectangle','_calc_speedRate','computing','isDynamic','0px','postProcessingPosition','grid','slice','bindEvent','particlesTextureSize','min','FLOAT','fromDegrees','max\x20is\x20undefined,\x20calculate\x20max','Unknown\x20command\x20type','_calcUV','MAX_VALUE','context','fromGeometry','visible','clear','unbindEvent','setData','abs','uniformMap','getPrimitives','getPostProcessingPositionShader','west','warn','style','__proto__','framebuffers','umax','mouse_move','frameTime','getRandomLatLng','Cartesian2','length','pass','off','particlesSpeed','setGeometry','flatMap','nextParticlesPosition','lng','left','vertexShaderSource','create','init','BaseLayer','particlesNumber','age','values','8942896lSpZbm','bind','_setOptionsHook','show','mouse_down','blendEquation','createCommand','minificationFilter','setOptions','_createCanvas','applyViewerParameters','dropRate','depthTexture','onColorTableChange','mouseMove','tlat','frameRate','rendering','max','EventType','camera','destination-in','bounds','clearCommand','resize','_removedHook','color','_onMouseUpEvent','createParticlesTextures','wrapT','commandType','viewport','height','_bilinearInterpolation','speedFactor','SCENE3D','_colorRamp','fromCssColorString','clientWidth','willReadFrequently','cartesianToCartographic','getV','default','umin','particles','pixelFormat','Compute','segments','speed','commandToExecute','getCalculateSpeedShader','mouseUp','toWindowCoordinates','pointerEvents','Math','type','canvasHeight','logInfo','4485089XVfaxD','sources','windData','error','samplingWindow','array','speedRate','frameRateAdjustment','worker','call','dropRateBump','domain','lighter','north','primitives','sin','particlesTextures','width','zIndex','requestRender','_canrefresh','push','_updateIng','viewerParameters','updateViewerParameters','2662560PdGZQC','getParticles','flipY','getOwnPropertyDescriptor','removeEventListener','now','2686746cidoJZ','primitiveType','globalAlpha','lineLength','scene','getDirection','udata','CanvasWindField','framebuffer','xmin','destroy','addEventListener','createColorTableTexture','onmessage','currentParticlesPosition','rows','isInExtent','mode','_onMapWhellEvent','segmentsDepth','1SoMsat','data','beginPath','shaderProgram','options','stringify','defineProperty','changed','getContext','Draw','textures','tlng','calculateSpeed','SceneMode','pointer-events','enabled','processWindData','frameRateMonitor','ymax','UNSIGNED_INT','fromCache','steps','layer','_map','_animateFrame','floor','colors','RGBA','particleSystem','displayRange','xmax','DEPTH_COMPONENT','geometry','rawRenderState','_addedHook','modelMatrix','setDate','ONE_MINUS_SRC_ALPHA','1180580erSRmY','interpolated','initWorker','depthMask','lineTo','clearFramebuffers','getUVByXY','drawingBufferHeight','attributeLocations','WindUtil','createWindTextures','clientHeight','drawingBufferWidth','blending','canvasContext','updateWindData','canvas','latRange','_speedRate','commandList','removeChild','createSegmentsGeometry','moveTo','previousParticlesPosition','hidden','ymin','fragmentShaderSource','createComputingPrimitives','outputTexture','update','maxAge','reCreateWindTextures','keys','colorTable','lat','_pointerEvents','pixelSize','preExecute','forEach','register','8KZwZVT','updatePosition','createRenderingFramebuffers','sceneMode','morphComplete','toDegrees','lineWidth','2109102cgOZys','13448920xYSEGN','9BtNSno','#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','Cesium','value','LayerUtil','LINEAR','stroke','_onMouseMoveEvent','red','windField','redraw','auto','cols','fixedHeight','sqrt','autoClear','windTextures','east','segmentsColor','remove','ellipsoid'];_0x4738=function(){return _0x22c3ba;};return _0x4738();}class ShaderManager{static['getCalculateSpeedShader'](){const _0x1e0cf2={};return _0x1e0cf2['sources']=[calculateSpeedShader],new ShaderSource$1(_0x1e0cf2);}static['getUpdatePositionShader'](){const _0x5d2537={};return _0x5d2537['sources']=[updatePositionShader],new ShaderSource$1(_0x5d2537);}static['getSegmentDrawVertexShader'](){function _0xb26c06(_0x20135a,_0x154783){return _0x2e342d(_0x20135a-0xcb,_0x154783);}const _0x41e137={};return _0x41e137[_0xb26c06(0x44d,0x434)]=[renderParticlesVertexShader],new ShaderSource$1(_0x41e137);}static['getSegmentDrawFragmentShader'](){const _0x22d5ea={};function _0x13d77d(_0x5a2d64,_0x842fd3){return _0x2e342d(_0x842fd3- -0x3f,_0x5a2d64);}return _0x22d5ea[_0x13d77d(0x2ea,0x343)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x22d5ea);}static[_0x3e2b6f(-0x22,0x4b)](){const _0x72797d={};return _0x72797d['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x72797d);}}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[_0x2e342d(0x2fa,0x2fe)];class CustomPrimitive{constructor(_0x465386){this['commandType']=_0x465386['commandType'],this['geometry']=_0x465386[_0x3d6a8e(-0xb8,-0x51)],this['attributeLocations']=_0x465386[_0x3d6a8e(-0xaa,-0xd5)],this[_0x3d6a8e(-0xeb,-0x116)]=_0x465386['primitiveType'],this['uniformMap']=_0x465386[_0x2c3a22(-0x133,-0x169)]||{};function _0x2c3a22(_0x3895a4,_0xc2adbb){return _0x2e342d(_0xc2adbb- -0x493,_0x3895a4);}this['vertexShaderSource']=_0x465386['vertexShaderSource'],this['fragmentShaderSource']=_0x465386['fragmentShaderSource'],this['rawRenderState']=_0x465386[_0x3d6a8e(-0xb7,-0xc9)],this['framebuffer']=_0x465386[_0x2c3a22(-0x17f,-0x1fe)],this[_0x3d6a8e(-0x96,-0x101)]=_0x465386['outputTexture'],this['autoClear']=_0x465386['autoClear']??![],this['preExecute']=_0x465386[_0x2c3a22(-0x21d,-0x1a7)],this['show']=!![],this['commandToExecute']=undefined,this[_0x3d6a8e(-0x1b,-0x34)]=undefined,this[_0x2c3a22(-0x13c,-0x17e)]=_0x465386[_0x2c3a22(-0x1a2,-0x17e)]??(()=>!![]);function _0x3d6a8e(_0x35619e,_0x53172f){return _0x3e2b6f(_0x53172f,_0x35619e- -0x98);}this[_0x2c3a22(-0x155,-0x18c)]&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}[_0x3e2b6f(0x73,0x6c)](_0x5174eb){function _0x55fa8(_0x589247,_0x452b8a){return _0x3e2b6f(_0x589247,_0x452b8a- -0x1e7);}function _0x2c380c(_0x19258f,_0x46f0f8){return _0x3e2b6f(_0x19258f,_0x46f0f8- -0x19);}if(this[_0x55fa8(-0x1e9,-0x163)]==='Draw'){const _0x2695b1={};_0x2695b1[_0x2c380c(-0x50,0x29)]=_0x5174eb,_0x2695b1[_0x55fa8(-0x1d2,-0x207)]=this['geometry'],_0x2695b1['attributeLocations']=this['attributeLocations'],_0x2695b1['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x6f522a=VertexArray$1['fromGeometry'](_0x2695b1),_0x25f70c={};_0x25f70c['context']=_0x5174eb,_0x25f70c[_0x2c380c(-0x32,0x46)]=this['vertexShaderSource'],_0x25f70c[_0x55fa8(-0x229,-0x1e7)]=this[_0x2c380c(0x62,-0x19)],_0x25f70c['attributeLocations']=this['attributeLocations'];const _0xa908e1=ShaderProgram['fromCache'](_0x25f70c),_0x5bec1d=RenderState[_0x2c380c(-0xa0,-0x45)](this['rawRenderState']),_0x2227df={};return _0x2227df['owner']=this,_0x2227df['vertexArray']=_0x6f522a,_0x2227df[_0x2c380c(-0xec,-0x6c)]=this[_0x2c380c(-0xd9,-0x6c)],_0x2227df[_0x55fa8(-0x264,-0x204)]=Matrix4['IDENTITY'],_0x2227df['renderState']=_0x5bec1d,_0x2227df['shaderProgram']=_0xa908e1,_0x2227df[_0x55fa8(-0x1ad,-0x233)]=this[_0x2c380c(-0x2b,-0x65)],_0x2227df['uniformMap']=this['uniformMap'],_0x2227df[_0x2c380c(-0x22,0x3e)]=Pass$1['OPAQUE'],new DrawCommand(_0x2227df);}else{if(this[_0x55fa8(-0x185,-0x163)]===_0x2c380c(0xfc,0x7b)){const _0x5e1f30={};return _0x5e1f30['owner']=this,_0x5e1f30[_0x2c380c(0x53,-0x19)]=this['fragmentShaderSource'],_0x5e1f30['uniformMap']=this[_0x55fa8(-0x13d,-0x19e)],_0x5e1f30['outputTexture']=this[_0x55fa8(-0x1fa,-0x1e5)],_0x5e1f30['persists']=!![],new ComputeCommand(_0x5e1f30);}else throw new Error(_0x2c380c(0xb0,0x26));}}[_0x2e342d(0x33b,0x2cf)](_0x2b3135,_0xf2f359){this['geometry']=_0xf2f359;function _0x15b175(_0x25ea21,_0xc5e9b2){return _0x2e342d(_0x25ea21-0x134,_0xc5e9b2);}function _0x30d9ba(_0x1f76fc,_0x3e9505){return _0x2e342d(_0x3e9505- -0x3b4,_0x1f76fc);}defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1[_0x30d9ba(-0xd8,-0x90)]({'context':_0x2b3135,'geometry':this[_0x30d9ba(-0x16d,-0xf3)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x3cf125){if(!this[_0x217e3c(-0x29,-0x50)]())return;if(!this[_0x217e3c(0x54,-0x1b)]||!defined(_0x3cf125))return;!defined(this['commandToExecute'])&&(this[_0x217e3c(0x45,0x13)]=this['createCommand'](_0x3cf125['context']));defined(this['preExecute'])&&this[_0x46bc82(-0x103,-0xd2)]();if(!_0x3cf125['commandList']){console['warn']('frameState.commandList\x20is\x20undefined');return;}function _0x46bc82(_0x257d7c,_0x4953bf){return _0x3e2b6f(_0x257d7c,_0x4953bf- -0xdd);}function _0x217e3c(_0x24752a,_0x5b05b9){return _0x2e342d(_0x5b05b9- -0x365,_0x24752a);}defined(this['clearCommand'])&&_0x3cf125['commandList'][_0x46bc82(-0xeb,-0x13b)](this['clearCommand']),defined(this['commandToExecute'])&&_0x3cf125[_0x46bc82(-0x142,-0xe4)]['push'](this[_0x46bc82(-0xb6,-0x46)]);}['isDestroyed'](){return![];}['destroy'](){function _0x3fb4f1(_0x4442c9,_0x4dab8d){return _0x3e2b6f(_0x4442c9,_0x4dab8d-0x1b8);}function _0x2b949a(_0x2f667d,_0x10cf03){return _0x2e342d(_0x10cf03- -0x323,_0x2f667d);}if(defined(this['commandToExecute'])){var _0x31514d;(_0x31514d=this['commandToExecute'][_0x3fb4f1(0x1bd,0x17b)])===null||_0x31514d===void 0x0||_0x31514d['destroy'](),this[_0x2b949a(0x60,0x55)][_0x3fb4f1(0x1dc,0x17b)]=undefined;}return destroyObject(this);}}function deepMerge(_0xcafe20,_0x2eaad9){if(!_0xcafe20)return _0x2eaad9;function _0x216c57(_0x10f9f2,_0x19265b){return _0x2e342d(_0x19265b-0xa0,_0x10f9f2);}if(!_0x2eaad9)return _0xcafe20;const _0x169cf3={..._0x2eaad9};function _0x2e3ead(_0x3a9c09,_0x785eb){return _0x2e342d(_0x3a9c09- -0x4c4,_0x785eb);}const _0x25d58d=_0x169cf3;for(const _0x4f49da in _0xcafe20){if(Object['prototype']['hasOwnProperty'][_0x2e3ead(-0x24d,-0x2d5)](_0xcafe20,_0x4f49da)){const _0x48958a=_0xcafe20[_0x4f49da],_0x56ec9a=_0x2eaad9[_0x4f49da];if(Array['isArray'](_0x48958a)){_0x25d58d[_0x4f49da]=_0x48958a[_0x2e3ead(-0x1ab,-0x1f1)]();continue;}if(_0x48958a&&typeof _0x48958a==='object'){_0x25d58d[_0x4f49da]=deepMerge(_0x48958a,_0x56ec9a||{});continue;}_0x48958a!==undefined&&(_0x25d58d[_0x4f49da]=_0x48958a);}}return _0x25d58d;}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(_0x4e59c9,_0x4afa18,_0x3af5f8,_0x18a9ed,_0x3320f3){this[_0x504891(0x3e9,0x3a2)]=_0x4e59c9,this['options']=_0x3af5f8;function _0x4b5bfd(_0x256737,_0x3d97f3){return _0x3e2b6f(_0x256737,_0x3d97f3- -0xac);}this['viewerParameters']=_0x18a9ed,this[_0x504891(0x449,0x3c8)]=_0x4afa18,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x5dd84b={};_0x5dd84b[_0x4b5bfd(-0x169,-0xfc)]=_0x3320f3;function _0x504891(_0x2b8d3c,_0x197db2){return _0x3e2b6f(_0x197db2,_0x2b8d3c-0x3a7);}_0x5dd84b[_0x504891(0x338,0x33a)]=0x1,_0x5dd84b['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x5dd84b),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x3a4316=()=>{function _0x26b9a5(_0x285aee,_0x4f81f1){return _0x3a79(_0x4f81f1- -0x1a8,_0x285aee);}function _0xcfe1f4(_0x3db6e0,_0x3cc962){return _0x3a79(_0x3db6e0- -0x279,_0x3cc962);}this[_0x26b9a5(-0x95,-0xd5)]['lastFramesPerSecond']>0x14&&(this['frameRate']=this[_0xcfe1f4(-0x1a6,-0x19d)]['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this[_0xcfe1f4(-0x101,-0x15b)],0x1));};_0x3a4316();const _0x15d91f=setInterval(_0x3a4316,0x3e8),_0x19297d=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x15d91f),_0x19297d();};}[_0x3e2b6f(0x5c,-0x10)](){function _0x35d0f2(_0x5d2d65,_0x563dda){return _0x3e2b6f(_0x563dda,_0x5d2d65- -0x204);}function _0x4b7ed0(_0x414335,_0x507a60){return _0x2e342d(_0x414335- -0x461,_0x507a60);}const _0x14ce9e={};_0x14ce9e[_0x4b7ed0(-0x113,-0xe0)]=TextureMinificationFilter$1['LINEAR'],_0x14ce9e['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x42d010={'context':this['context'],'width':this[_0x35d0f2(-0x162,-0x1d1)]['width'],'height':this['windData'][_0x4b7ed0(-0xfa,-0xc2)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1[_0x4b7ed0(-0x144,-0x187)],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x14ce9e)};this[_0x35d0f2(-0x1dd,-0x1d9)]={'U':new Texture$1({..._0x42d010,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x42d010,'source':{'arrayBufferView':new Float32Array(this[_0x35d0f2(-0x162,-0x15c)]['v'][_0x35d0f2(-0x272,-0x2f1)])}})};}['createParticlesTextures'](){const _0x9ec3a7={};_0x9ec3a7['minificationFilter']=TextureMinificationFilter$1[_0x29a612(-0x13a,-0x129)],_0x9ec3a7['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];function _0x29a612(_0x13d29d,_0x4a0f3e){return _0x2e342d(_0x13d29d- -0x447,_0x4a0f3e);}const _0x262e36={'context':this['context'],'width':this[_0x1f5467(0x41b,0x39a)]['particlesTextureSize'],'height':this['options'][_0x29a612(-0x12c,-0x154)],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options'][_0x1f5467(0x491,0x4a5)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x9ec3a7)};function _0x1f5467(_0x4367c0,_0xc0e1bb){return _0x3e2b6f(_0xc0e1bb,_0x4367c0-0x457);}this[_0x1f5467(0x3f4,0x470)]={'previousParticlesPosition':new Texture$1(_0x262e36),'currentParticlesPosition':new Texture$1(_0x262e36),'nextParticlesPosition':new Texture$1(_0x262e36),'postProcessingPosition':new Texture$1(_0x262e36),'particlesSpeed':new Texture$1(_0x262e36)};}['destroyParticlesTextures'](){Object['values'](this['particlesTextures'])['forEach'](_0xaa73a0=>_0xaa73a0['destroy']());}[_0x3e2b6f(-0x4e,0x1)](){function _0x371731(_0x2c1833,_0xef7787){return _0x2e342d(_0xef7787- -0x2f9,_0x2c1833);}function _0x1490d3(_0x1dec29,_0x4c4b38){return _0x2e342d(_0x4c4b38- -0xda,_0x1dec29);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0x1490d3(0x1cb,0x22e)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x1490d3(0x328,0x2a9)]['u']['min'],this[_0x1490d3(0x2e0,0x2a9)]['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x1490d3(0x251,0x2a9)]['v']['min'],this['windData']['v'][_0x371731(-0xa,0x60)]),'speedRange':()=>new Cartesian2$1(this['windData'][_0x1490d3(0x2a0,0x29d)]['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures'][_0x1490d3(0x15b,0x1c1)],'speedScaleFactor':()=>{function _0x4ef700(_0xc8fd06,_0x3a1063){return _0x1490d3(_0x3a1063,_0xc8fd06- -0x419);}function _0x1703ec(_0x4f873e,_0x4ea0d9){return _0x371731(_0x4ea0d9,_0x4f873e- -0x23);}return(this[_0x4ef700(-0x26e,-0x2c1)]['pixelSize']+0x32)*this[_0x1703ec(-0x77,-0xbd)][_0x1703ec(0x4d,0x1d)];},'frameRateAdjustment':()=>this[_0x1490d3(0x147,0x19b)],'dimension':()=>new Cartesian2$1(this[_0x371731(0x11,0x8a)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0x1490d3(0x278,0x253)],this[_0x1490d3(0x2f0,0x2a9)]['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData'][_0x371731(-0x25,0x64)][_0x1490d3(0x214,0x22f)],this[_0x1490d3(0x225,0x2a9)][_0x1490d3(0x30c,0x283)]['north'])},'fragmentShaderSource':ShaderManager[_0x1490d3(0x263,0x29f)](),'outputTexture':this[_0x371731(-0x74,-0x7b)]['particlesSpeed'],'preExecute':()=>{function _0x2f82c3(_0x2015a6,_0x29bf62){return _0x371731(_0x29bf62,_0x2015a6-0xf2);}const _0x3d15b1=this['particlesTextures'][_0x10319d(0x51,-0x30)];this[_0x2f82c3(0x77,0x51)]['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this['particlesTextures'][_0x2f82c3(0x110,0x14d)],this['particlesTextures'][_0x2f82c3(0x110,0x17b)]=_0x3d15b1;function _0x10319d(_0x4dcad4,_0x3e2c44){return _0x1490d3(_0x3e2c44,_0x4dcad4- -0x1b3);}this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives'][_0x2f82c3(0xa6,0xdd)]['commandToExecute']['outputTexture']=this[_0x2f82c3(0x77,0x51)]['particlesSpeed']);},'isDynamic':()=>this[_0x1490d3(0x1a3,0x1cb)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':_0x1490d3(0x26b,0x29b),'uniformMap':{'currentParticlesPosition':()=>this[_0x371731(-0x6,-0x7b)]['currentParticlesPosition'],'particlesSpeed':()=>this[_0x1490d3(0x1cd,0x1a4)][_0x1490d3(0x2e3,0x260)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures'][_0x1490d3(0x28d,0x263)],'preExecute':()=>{function _0x563fb2(_0x4eca03,_0x15009f){return _0x1490d3(_0x15009f,_0x4eca03-0x271);}function _0x122ea0(_0x53e7ef,_0x373e78){return _0x1490d3(_0x53e7ef,_0x373e78-0x22);}this[_0x122ea0(0x176,0x1c4)][_0x563fb2(0x487,0x4b4)]['commandToExecute']&&(this['primitives']['updatePosition']['commandToExecute']['outputTexture']=this['particlesTextures'][_0x563fb2(0x4d4,0x510)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x371731(-0xa3,-0x7b)][_0x1490d3(0x26b,0x263)],'particlesSpeed':()=>this[_0x1490d3(0x14e,0x1a4)]['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this[_0x371731(-0x1,-0x74)][_0x371731(-0x62,-0x21)],'dataLonRange':()=>new Cartesian2$1(this[_0x1490d3(0x2d4,0x2a9)]['bounds'][_0x371731(0x14,0x34)],this['windData'][_0x371731(0x75,0x64)]['east']),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x371731(0x5c,0x64)][_0x371731(-0x45,0x16)],this['windData'][_0x371731(0xdf,0x64)]['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this['options'][_0x371731(-0x23,-0x81)],'useViewerBounds':()=>this[_0x371731(-0x1c,-0x54)]['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x371731(-0xce,-0x7b)]['postProcessingPosition'],'preExecute':()=>{function _0x56f035(_0x524b03,_0x4fa432){return _0x371731(_0x524b03,_0x4fa432- -0x1bb);}function _0x4bbbbe(_0x4e5b4f,_0x38ea86){return _0x1490d3(_0x38ea86,_0x4e5b4f- -0x1f0);}this[_0x56f035(-0x1cc,-0x238)][_0x4bbbbe(0x4d,-0x2a)]['commandToExecute']&&(this['primitives'][_0x56f035(-0x1e2,-0x19d)]['commandToExecute']['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this['options']['dynamic']})};}[_0x3e2b6f(0x42,0x5)](){this[_0x104e56(-0xe3,-0x74)]['U']['destroy']();function _0x605878(_0x148093,_0x2ce946){return _0x3e2b6f(_0x2ce946,_0x148093-0x1fb);}function _0x104e56(_0x5cb91b,_0x87c858){return _0x3e2b6f(_0x5cb91b,_0x87c858- -0x9b);}this[_0x104e56(-0xb2,-0x74)]['V'][_0x104e56(-0xe4,-0xe5)](),this['createWindTextures']();}[_0x2e342d(0x2d6,0x32e)](_0x3d5634){this['windData']=_0x3d5634,this['reCreateWindTextures']();}['updateOptions'](_0x325098){function _0x2f2532(_0x2aa0ad,_0x535722){return _0x3e2b6f(_0x2aa0ad,_0x535722- -0x15f);}function _0x372f14(_0x2a02fa,_0x3949ef){return _0x2e342d(_0x3949ef- -0x1fc,_0x2a02fa);}const _0x22f02f=_0x325098[_0x2f2532(-0x183,-0x1b7)]!==undefined&&_0x325098[_0x372f14(0x45,0x8d)]!==this['options'][_0x2f2532(-0x18c,-0x1b7)];this['options']=deepMerge(_0x325098,this['options']),_0x22f02f&&this['reCreateWindTextures']();}[_0x2e342d(0x2b1,0x2b0)](_0x4fa3cc){const {array:_0x135451}=_0x4fa3cc;let {min:_0x3ceffb,max:_0x56c984}=_0x4fa3cc;const _0x188d38=new Float32Array(_0x135451['length']);_0x3ceffb===undefined&&(console[_0x3fb905(0xee,0xd7)]('min\x20is\x20undefined,\x20calculate\x20min'),_0x3ceffb=Math[_0x3fb905(0x109,0xc5)](..._0x135451));function _0x3fb905(_0x415c1f,_0x299d39){return _0x2e342d(_0x299d39- -0x257,_0x415c1f);}_0x56c984===undefined&&(console['warn'](_0x3fb905(0xbd,0xc8)),_0x56c984=Math['max'](..._0x135451));const _0x4de0d1=Math[_0x3fb905(0x187,0x102)](Math['abs'](_0x3ceffb),Math['abs'](_0x56c984));for(let _0x33df6b=0x0;_0x33df6b<_0x135451[_0x3fb905(0x120,0xe0)];_0x33df6b++){const _0x2c59c6=_0x135451[_0x33df6b]/_0x4de0d1;_0x188d38[_0x33df6b]=_0x2c59c6;}function _0x3d4a64(_0x610688,_0x37114d){return _0x2e342d(_0x37114d- -0x25b,_0x610688);}return _0x188d38;}[_0x2e342d(0x297,0x27a)](){Object[_0x472606(-0xec,-0xbb)](this[_0x472606(-0x12a,-0x183)])['forEach'](_0x1518d5=>_0x1518d5['destroy']()),Object['values'](this['particlesTextures'])['forEach'](_0x30c878=>_0x30c878['destroy']()),Object['values'](this['primitives'])[_0x472606(-0x145,-0x119)](_0x4825c4=>_0x4825c4[_0x1436ec(0x368,0x317)]());function _0x1436ec(_0x19087b,_0x4d58d2){return _0x2e342d(_0x19087b-0xd1,_0x4d58d2);}function _0x472606(_0xc7c384,_0x5a426d){return _0x3e2b6f(_0x5a426d,_0xc7c384- -0x151);}this[_0x472606(-0x180,-0x1f4)][_0x1436ec(0x368,0x3ac)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x3e2b6f(0x93,0x19)];class WindParticlesRendering{constructor(_0x162c2d,_0x1d294c,_0x39e39e,_0x3dad40){this[_0x2ce0c9(-0x272,-0x279)]=_0x162c2d,this['options']=_0x1d294c,this['viewerParameters']=_0x39e39e;function _0x2ce0c9(_0x2220e8,_0x5f42bc){return _0x2e342d(_0x2220e8- -0x595,_0x5f42bc);}this['computing']=_0x3dad40;(typeof this['options'][_0x4f4ac9(0x547,0x51c)]!=='number'||this['options'][_0x2ce0c9(-0x27a,-0x24d)]<=0x0)&&(console[_0x2ce0c9(-0x211,-0x236)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x2ce0c9(-0x2f0,-0x340)][_0x4f4ac9(0x531,0x51c)]=0x100);this['colorTable']=this[_0x4f4ac9(0x4b3,0x49a)](),this['textures']=this['createRenderingTextures'](),this[_0x4f4ac9(0x579,0x532)]=this[_0x2ce0c9(-0x2a4,-0x2eb)]();function _0x4f4ac9(_0x226a45,_0x5f48e5){return _0x2e342d(_0x5f48e5-0x201,_0x226a45);}this[_0x4f4ac9(0x479,0x47d)]=this['createPrimitives']();}['createRenderingTextures'](){const _0x3ae35a={};_0x3ae35a[_0x2da71f(-0x1e1,-0x261)]=this['context'];function _0x2da71f(_0x38db0e,_0x2c3bc5){return _0x3e2b6f(_0x38db0e,_0x2c3bc5- -0x2a3);}_0x3ae35a[_0x3b0219(-0x24,0x4)]=this['context']['drawingBufferWidth'],_0x3ae35a['height']=this['context']['drawingBufferHeight'],_0x3ae35a['pixelFormat']=PixelFormat[_0x2da71f(-0x2b9,-0x2c8)],_0x3ae35a['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x5d0911=_0x3ae35a,_0x1b7aa6={};_0x1b7aa6[_0x3b0219(0xbb,0xa8)]=this[_0x2da71f(-0x26f,-0x261)],_0x1b7aa6['width']=this['context']['drawingBufferWidth'],_0x1b7aa6['height']=this[_0x2da71f(-0x2c7,-0x261)]['drawingBufferHeight'],_0x1b7aa6[_0x3b0219(0x154,0xf9)]=PixelFormat[_0x3b0219(0x33,0x45)],_0x1b7aa6['pixelDatatype']=PixelDatatype[_0x3b0219(-0xf,0x39)];function _0x3b0219(_0xb19ffe,_0x4688bc){return _0x2e342d(_0x4688bc- -0x27b,_0xb19ffe);}const _0x21a641=_0x1b7aa6;return{'segmentsColor':new Texture(_0x5d0911),'segmentsDepth':new Texture(_0x21a641)};}['createRenderingFramebuffers'](){function _0x2e80cf(_0x1c9f46,_0x1ec9a0){return _0x2e342d(_0x1ec9a0- -0x543,_0x1c9f46);}const _0x463c49={};_0x463c49[_0x2e80cf(-0x281,-0x220)]=this[_0x1d7bde(-0x1aa,-0x1e5)],_0x463c49['colorTextures']=[this['textures'][_0x2e80cf(-0x1d1,-0x239)]];function _0x1d7bde(_0x10d9d3,_0x4caa4a){return _0x3e2b6f(_0x4caa4a,_0x10d9d3- -0x1ec);}return _0x463c49[_0x2e80cf(-0x249,-0x1f0)]=this[_0x1d7bde(-0x222,-0x1fb)][_0x2e80cf(-0x28b,-0x2a3)],{'segments':new Framebuffer(_0x463c49)};}['destoryRenderingFramebuffers'](){function _0x5e7291(_0x5cc29f,_0x340fc9){return _0x3e2b6f(_0x340fc9,_0x5cc29f- -0x1a9);}function _0x3b8321(_0x8174c,_0xff601c){return _0x3e2b6f(_0x8174c,_0xff601c-0x271);}Object[_0x3b8321(0x34a,0x2d6)](this['framebuffers'])[_0x5e7291(-0x19d,-0x170)](_0x3801bb=>{_0x3801bb['destroy']();});}['createColorTableTexture'](){const _0x4b8c37=new Float32Array(this[_0x1698bb(0x40c,0x3a7)]['colors'][_0x530d38(0x83,0xc)](_0x4c1320=>{function _0x485c67(_0x157cd6,_0x5ca712){return _0x1698bb(_0x5ca712- -0x59e,_0x157cd6);}const _0x4a33d4=Color$1[_0x485c67(-0xc0,-0xcb)](_0x4c1320);function _0x257efc(_0x1f3611,_0x365815){return _0x1698bb(_0x365815- -0x70,_0x1f3611);}return[_0x4a33d4[_0x485c67(-0x19c,-0x137)],_0x4a33d4['green'],_0x4a33d4['blue'],_0x4a33d4['alpha']];}));function _0x530d38(_0x4a6771,_0x251cb3){return _0x3e2b6f(_0x4a6771,_0x251cb3- -0x4f);}const _0x598bf3={};function _0x1698bb(_0x2c7b58,_0x51e4f0){return _0x2e342d(_0x2c7b58-0x167,_0x51e4f0);}return _0x598bf3[_0x530d38(0x1f,0x1e)]=TextureMinificationFilter[_0x1698bb(0x464,0x453)],_0x598bf3['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x598bf3['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x598bf3[_0x1698bb(0x4cb,0x54e)]=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this['context'],'width':this[_0x530d38(-0x38,-0x8b)][_0x1698bb(0x422,0x3d7)][_0x530d38(0x36,0x7)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype[_0x1698bb(0x484,0x438)],'sampler':new Sampler(_0x598bf3),'source':{'width':this['options']['colors'][_0x1698bb(0x49e,0x505)],'height':0x1,'arrayBufferView':_0x4b8c37}});}['createSegmentsGeometry'](){const _0x1d5627=0x4,_0x473511=this['options']['particlesTextureSize'];let _0x1dcb9f=[];for(let _0x92acc5=0x0;_0x92acc5<_0x473511;_0x92acc5++){for(let _0x5a9e2f=0x0;_0x5a9e2f<_0x473511;_0x5a9e2f++){for(let _0x3cf274=0x0;_0x3cf274<_0x1d5627;_0x3cf274++){_0x1dcb9f[_0x16ba02(0xc0,0x114)](_0x92acc5/_0x473511),_0x1dcb9f[_0x16ba02(0xca,0x114)](_0x5a9e2f/_0x473511);}}}_0x1dcb9f=new Float32Array(_0x1dcb9f);function _0x16ba02(_0x42db03,_0x31dcdb){return _0x2e342d(_0x31dcdb- -0x16f,_0x42db03);}const _0x1557e1=this['options'][_0x16ba02(0x201,0x1ac)]**0x2;let _0x3e8b5b=[];for(let _0x45f193=0x0;_0x45f193<_0x1557e1;_0x45f193++){_0x3e8b5b[_0x3b16d9(0x1d8,0x1b1)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x3e8b5b=new Float32Array(_0x3e8b5b);let _0x4a58a3=[];for(let _0x489e36=0x0,_0x7cc3cf=0x0;_0x489e36<_0x1557e1;_0x489e36++){_0x4a58a3['push'](_0x7cc3cf+0x0,_0x7cc3cf+0x1,_0x7cc3cf+0x2,_0x7cc3cf+0x2,_0x7cc3cf+0x1,_0x7cc3cf+0x3),_0x7cc3cf+=_0x1d5627;}_0x4a58a3=new Uint32Array(_0x4a58a3);const _0x4e1b02={};_0x4e1b02['componentDatatype']=ComponentDatatype['FLOAT'],_0x4e1b02[_0x3b16d9(0x1e5,0x23e)]=0x2,_0x4e1b02['values']=_0x1dcb9f;const _0x429dc8={};_0x429dc8['componentDatatype']=ComponentDatatype['FLOAT'],_0x429dc8['componentsPerAttribute']=0x3,_0x429dc8[_0x3b16d9(0x2be,0x274)]=_0x3e8b5b;function _0x3b16d9(_0x49309c,_0x12c0dd){return _0x3e2b6f(_0x49309c,_0x12c0dd-0x20f);}const _0x149dd1=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x4e1b02),'normal':new GeometryAttribute(_0x429dc8)}),'indices':_0x4a58a3});return _0x149dd1;}['createRawRenderState'](_0x40c17c){const _0x3caef1={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x40c17c};return Appearance['getDefaultRenderState'](!![],![],_0x3caef1);}['createPrimitives'](){const _0x3e160d={};_0x3e160d['st']=0x0,_0x3e160d['normal']=0x1;const _0x589c8e={};_0x589c8e['enabled']=!![];const _0x46c24a={};function _0xf21f7(_0x813dab,_0x2b2897){return _0x3e2b6f(_0x2b2897,_0x813dab-0xd8);}_0x46c24a[_0x22f48d(0x121,0xe5)]=!![],_0x46c24a[_0xf21f7(0x143,0x1cb)]=WebGLRenderingContext['FUNC_ADD'],_0x46c24a['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x46c24a['blendFuncDestination']=WebGLRenderingContext[_0x22f48d(0x133,0xfb)];const _0x5d50a6={};_0x5d50a6[_0x22f48d(0x168,0x19b)]=undefined,_0x5d50a6['depthTest']=_0x589c8e,_0x5d50a6[_0xf21f7(0xc1,0xfa)]=!![],_0x5d50a6[_0x22f48d(0x85,0x109)]=_0x46c24a;const _0x2a6db3=new CustomPrimitive({'commandType':_0x22f48d(0x11f,0xdf),'attributeLocations':_0x3e160d,'geometry':this[_0xf21f7(0xd3,0x127)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures']['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing'][_0x22f48d(0x87,0xb3)]['currentParticlesPosition'],'postProcessingPosition':()=>this['computing'][_0x22f48d(0x56,0xb3)]['postProcessingPosition'],'particlesSpeed':()=>this[_0xf21f7(0x10b,0x174)][_0x22f48d(0xfc,0xb3)][_0xf21f7(0x131,0x168)],'frameRateAdjustment':()=>this[_0xf21f7(0x10b,0x136)][_0x22f48d(0x2f,0xaa)],'colorTable':()=>this[_0x22f48d(0xbc,0x11d)],'domain':()=>{var _0xe62df3,_0xcda740;function _0x4f9cac(_0x410a52,_0x1b430a){return _0xf21f7(_0x410a52- -0x308,_0x1b430a);}function _0x32361c(_0x3b52a2,_0x2d31e2){return _0x22f48d(_0x3b52a2,_0x2d31e2- -0x319);}const _0x3abcb9=new Cartesian2(((_0xe62df3=this[_0x4f9cac(-0x26c,-0x270)]['domain'])===null||_0xe62df3===void 0x0?void 0x0:_0xe62df3[_0x4f9cac(-0x1f5,-0x1ce)])??this[_0x4f9cac(-0x1fd,-0x202)][_0x32361c(-0x117,-0x161)]['speed']['min'],((_0xcda740=this['options'][_0x4f9cac(-0x298,-0x2db)])===null||_0xcda740===void 0x0?void 0x0:_0xcda740[_0x32361c(-0x123,-0x18b)])??this['computing'][_0x32361c(-0x19d,-0x161)][_0x4f9cac(-0x19a,-0x1eb)][_0x4f9cac(-0x1b8,-0x1b0)]);return _0x3abcb9;},'displayRange':()=>{function _0x1ce227(_0x22bc1b,_0x547ac1){return _0xf21f7(_0x547ac1-0x31b,_0x22bc1b);}function _0x4c4c55(_0x5d3328,_0x6196cc){return _0x22f48d(_0x6196cc,_0x5d3328-0x269);}var _0x3fec45,_0x538ce9;const _0x143a7c=new Cartesian2(((_0x3fec45=this['options']['displayRange'])===null||_0x3fec45===void 0x0?void 0x0:_0x3fec45['min'])??this['computing'][_0x4c4c55(0x421,0x412)]['speed']['min'],((_0x538ce9=this[_0x4c4c55(0x343,0x365)][_0x1ce227(0x3dd,0x3d0)])===null||_0x538ce9===void 0x0?void 0x0:_0x538ce9[_0x4c4c55(0x3f7,0x3b7)])??this[_0x4c4c55(0x3b2,0x40b)]['windData'][_0x1ce227(0x436,0x489)]['max']);return _0x143a7c;},'particleHeight':()=>this[_0xf21f7(0x9c,0x10e)]['fixedHeight']||0x0,'aspect':()=>this['context'][_0x22f48d(0x135,0x108)]/this[_0x22f48d(0xd0,0x158)][_0xf21f7(0xc5,0xa2)],'pixelSize':()=>this['viewerParameters'][_0xf21f7(0xe2,0x107)],'lineWidth':()=>{function _0x59e2c3(_0x259b6e,_0x12814c){return _0xf21f7(_0x12814c- -0x2e1,_0x259b6e);}function _0x23daed(_0x45bfe5,_0x1cf1db){return _0x22f48d(_0x1cf1db,_0x45bfe5-0x38f);}const _0x4d3c26={};_0x4d3c26['min']=0x1,_0x4d3c26['max']=0x2;const _0x3940ac=this[_0x23daed(0x469,0x43a)][_0x59e2c3(-0x27b,-0x1f5)]||_0x4d3c26;return new Cartesian2(_0x3940ac['min'],_0x3940ac[_0x59e2c3(-0x145,-0x191)]);},'lineLength':()=>{const _0x3b4d0f={};function _0x30b69a(_0x5cda2a,_0x3a2cef){return _0xf21f7(_0x3a2cef-0x155,_0x5cda2a);}_0x3b4d0f[_0x30b69a(0x29d,0x268)]=0x14;function _0x14ed09(_0x2771df,_0x2aa3c4){return _0x22f48d(_0x2771df,_0x2aa3c4-0x39c);}_0x3b4d0f[_0x14ed09(0x4b9,0x52a)]=0x64;const _0xbb4316=this['options']['lineLength']||_0x3b4d0f;return new Cartesian2(_0xbb4316['min'],_0xbb4316['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0xf21f7(0x161,0xf2)],'segmentsDepthTexture':()=>this['textures'][_0x22f48d(0xe6,0xd5)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x5d50a6)});function _0x22f48d(_0x169ec8,_0x115f3a){return _0x2e342d(_0x115f3a- -0x1cb,_0x169ec8);}const _0x230c91={};return _0x230c91['segments']=_0x2a6db3,_0x230c91;}['onParticlesTextureSizeChange'](){const _0x2ffa40=this[_0x584501(-0x114,-0x13d)]();function _0x584501(_0xed47d3,_0x6812d5){return _0x2e342d(_0x6812d5- -0x419,_0xed47d3);}this['primitives'][_0x55014f(0x174,0x14f)]['geometry']=_0x2ffa40;const _0x34c6e8={};_0x34c6e8[_0x55014f(0x121,0x17d)]=this[_0x584501(-0x112,-0xf6)],_0x34c6e8['geometry']=_0x2ffa40,_0x34c6e8['attributeLocations']=this['primitives'][_0x55014f(0x174,0x1ed)]['attributeLocations'];function _0x55014f(_0x40381b,_0x3878a3){return _0x2e342d(_0x40381b- -0x202,_0x3878a3);}_0x34c6e8['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0x5c74f4=VertexArray[_0x584501(-0xef,-0xf5)](_0x34c6e8);this['primitives'][_0x584501(-0x87,-0xa3)][_0x584501(-0x47,-0xa1)]&&(this[_0x55014f(0x7a,-0xc)]['segments']['commandToExecute']['vertexArray']=_0x5c74f4);}['onColorTableChange'](){this[_0x24ffe0(0x75,0xd)]['destroy']();function _0x24ffe0(_0x4ad1b3,_0x4577d7){return _0x2e342d(_0x4ad1b3- -0x273,_0x4577d7);}this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x373492){const _0x439fbb=_0x373492['colors']&&JSON[_0x4a71a7(0x4ad,0x451)](_0x373492['colors'])!==JSON['stringify'](this[_0x197f3f(-0x21d,-0x1df)]['colors']);function _0x197f3f(_0x5e4fa6,_0x132d8b){return _0x3e2b6f(_0x132d8b,_0x5e4fa6- -0x1e1);}function _0x4a71a7(_0x2552ad,_0x49d1a6){return _0x2e342d(_0x49d1a6-0x1ab,_0x2552ad);}this['options']=deepMerge(_0x373492,this[_0x4a71a7(0x4a3,0x450)]),_0x439fbb&&this[_0x4a71a7(0x556,0x4ff)]();}['destroy'](){Object['values'](this['framebuffers'])['forEach'](_0x33b085=>{function _0x3a656b(_0x21e02,_0x4dafb4){return _0x3a79(_0x4dafb4-0x185,_0x21e02);}_0x33b085[_0x3a656b(0x1cd,0x23d)]();}),Object['values'](this['primitives'])['forEach'](_0x2c1ea0=>{_0x2c1ea0['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x4aa120,_0x5408c3,_0xe3a558,_0x7b864,_0x40abc5){this['context']=_0x4aa120,this[_0x242a76(0xd,0x69)]=_0xe3a558,this[_0x3a9bb3(0x129,0xfa)]=_0x7b864;function _0x3a9bb3(_0x39bad6,_0x359035){return _0x3e2b6f(_0x39bad6,_0x359035-0x156);}this[_0x242a76(0x145,0xd8)]=new WindParticlesComputing(_0x4aa120,_0x5408c3,_0xe3a558,_0x7b864,_0x40abc5),this['rendering']=new WindParticlesRendering(_0x4aa120,_0xe3a558,_0x7b864,this['computing']);function _0x242a76(_0x47b1d4,_0x15c9fe){return _0x2e342d(_0x15c9fe- -0x23c,_0x47b1d4);}this['clearFramebuffers']();}[_0x2e342d(0x32b,0x2d5)](){function _0x2c09f2(_0x2e57d0,_0x12cb5e){return _0x3e2b6f(_0x2e57d0,_0x12cb5e-0x158);}const _0x3b5e7e=[this[_0x2a6e30(0x495,0x4d9)]['primitives']['calculateSpeed'],this[_0x2c09f2(0x137,0x18b)][_0x2c09f2(0x142,0xf3)]['updatePosition'],this[_0x2a6e30(0x4ef,0x4d9)]['primitives'][_0x2c09f2(0x18b,0x18e)],this['rendering'][_0x2a6e30(0x43b,0x441)][_0x2c09f2(0x219,0x1ed)]];function _0x2a6e30(_0xe5892d,_0x40ee80){return _0x3e2b6f(_0xe5892d,_0x40ee80-0x4a6);}return _0x3b5e7e;}[_0x2e342d(0x2cc,0x30e)](){const _0x3139d7=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x5403f8(_0x296c2f,_0x5c63ac){return _0x2e342d(_0x5c63ac- -0x45a,_0x296c2f);}function _0x34b275(_0xd7eb74,_0x218447){return _0x2e342d(_0xd7eb74- -0x4d4,_0x218447);}Object[_0x5403f8(-0x1bb,-0x173)](this['rendering'][_0x5403f8(-0xf8,-0x129)])[_0x34b275(-0x1e7,-0x25e)](_0x2bc445=>{function _0x4a2ecc(_0x5e4410,_0x268e56){return _0x34b275(_0x268e56-0x320,_0x5e4410);}function _0x186b86(_0x11dc71,_0x5e246c){return _0x34b275(_0x5e246c-0xac,_0x11dc71);}_0x3139d7[_0x186b86(-0x10b,-0x193)]=this['rendering']['framebuffers'][_0x2bc445],_0x3139d7['execute'](this[_0x4a2ecc(0x1ca,0x16f)]);});}['changeOptions'](_0x3f0823){let _0x54d1c5=![];_0x3f0823['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x3f0823[_0x250efb(0x455,0x445)]&&(_0x54d1c5=!![]);const _0x1dce71=deepMerge(_0x3f0823,this['options']);if(_0x1dce71['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');function _0x250efb(_0x57b191,_0x5725df){return _0x2e342d(_0x5725df-0x12a,_0x57b191);}this[_0x250efb(0x37c,0x3cf)]=_0x1dce71,this[_0x2e2867(0x528,0x588)]['updateOptions'](_0x3f0823);function _0x2e2867(_0x4567f9,_0x50908c){return _0x2e342d(_0x4567f9-0x1d0,_0x50908c);}this[_0x2e2867(0x4e4,0x503)]['updateOptions'](_0x3f0823),_0x54d1c5&&(this['computing']['destroyParticlesTextures'](),this['computing'][_0x2e2867(0x533,0x52a)](),this['rendering']['onParticlesTextureSizeChange']());}[_0x3e2b6f(0x71,0x70)](_0xb4c6f8){function _0x45557c(_0x1931ba,_0x5a46d8){return _0x2e342d(_0x1931ba- -0x4c6,_0x5a46d8);}this[_0x45557c(-0x241,-0x23c)]=_0xb4c6f8,this['computing'][_0x3b0363(-0xd7,-0x123)]=_0xb4c6f8;function _0x3b0363(_0x56140f,_0xb75437){return _0x2e342d(_0x56140f- -0x35c,_0xb75437);}this['rendering']['viewerParameters']=_0xb4c6f8;}['destroy'](){this[_0x1e9ed0(0x1b5,0x1c0)][_0x51c155(-0x8d,-0x8c)]();function _0x51c155(_0xacacad,_0x120aea){return _0x2e342d(_0xacacad- -0x324,_0x120aea);}function _0x1e9ed0(_0x125d15,_0x579f1e){return _0x2e342d(_0x579f1e- -0x154,_0x125d15);}this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace[_0x2e342d(0x2fa,0x350)],BaseLayer$1=mars3d__namespace[_0x3e2b6f(0x36,-0x2a)]['BaseLayer'],_0x542785={};function _0x3a79(_0x2273dd,_0x29b68c){const _0x473875=_0x4738();return _0x3a79=function(_0x3a7940,_0x477111){_0x3a7940=_0x3a7940-0x93;let _0x34d451=_0x473875[_0x3a7940];return _0x34d451;},_0x3a79(_0x2273dd,_0x29b68c);}_0x542785['min']=0x1,_0x542785['max']=0x2;const _0x54e4eb={};_0x54e4eb['min']=0x14,_0x54e4eb[_0x2e342d(0x359,0x3b7)]=0x64;const _0x1e2fd2={};_0x1e2fd2[_0x2e342d(0x31b,0x344)]=0x64,_0x1e2fd2['fixedHeight']=0x0,_0x1e2fd2['lineWidth']=_0x542785,_0x1e2fd2[_0x2e342d(0x290,0x2e5)]=_0x54e4eb,_0x1e2fd2['speedFactor']=0x1,_0x1e2fd2[_0x3e2b6f(0xa0,0x71)]=0.003,_0x1e2fd2[_0x3e2b6f(0x1f,-0x69)]=0.001,_0x1e2fd2['colors']=['rgb(206,255,255)'],_0x1e2fd2[_0x2e342d(0x289,0x22c)]=![];function _0x3e2b6f(_0x690ac8,_0x269cfe){return _0x3a79(_0x269cfe- -0x102,_0x690ac8);}_0x1e2fd2['dynamic']=!![];const DEF_OPTIONS=_0x1e2fd2;class WindLayer extends BaseLayer$1{constructor(_0x2b5c7b={}){_0x2b5c7b={...DEF_OPTIONS,..._0x2b5c7b},super(_0x2b5c7b),this['_setOptionsHook'](_0x2b5c7b,_0x2b5c7b);}get[_0x3e2b6f(-0xb1,-0x2a)](){function _0x170f84(_0x50e552,_0x50b789){return _0x3e2b6f(_0x50e552,_0x50b789- -0x11);}return this[_0x170f84(-0x11,-0x76)];}get['data'](){return this['options']['data'];}set['data'](_0x30b1d4){this['options'][_0x3655b0(0xbc,0x145)]=_0x30b1d4;function _0x3655b0(_0x4a91fc,_0x4bc4c7){return _0x2e342d(_0x4a91fc- -0x1e6,_0x4bc4c7);}this['setData'](_0x30b1d4);}get['colors'](){function _0x4dface(_0x5b3a40,_0xc313ef){return _0x2e342d(_0xc313ef- -0x2cf,_0x5b3a40);}return this['options'][_0x4dface(-0x6d,-0x14)];}set['colors'](_0x434367){this[_0x3c68d4(0x4f,0x43)]['colors']=_0x434367;const _0x32d450={};_0x32d450['colors']=_0x434367;function _0x28e574(_0x4c4ba7,_0x22dc43){return _0x2e342d(_0x22dc43- -0x315,_0x4c4ba7);}function _0x3c68d4(_0x1b3c21,_0x400dbd){return _0x2e342d(_0x1b3c21- -0x256,_0x400dbd);}this['_setOptionsHook'](this[_0x3c68d4(0x4f,0x6b)],_0x32d450);}['_showHook'](_0x2dcdd6){_0x2dcdd6?this['_addedHook']():this['_removedHook']();}['_mountedHook'](){}[_0x3e2b6f(0x44,-0x1e)](){this['scene']=this['_map']['scene'],this[_0x5782b7(-0x23c,-0x1fd)]=this['_map'][_0x5782b7(-0x23c,-0x1b5)];this['options']['data']&&this[_0x5782b7(-0x26f,-0x288)](this['options']['data']);if(!this['windData']||!this['show'])return;this['viewerParameters']={'lonRange':new Cesium$1[(_0x5782b7(-0x261,-0x287))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x5782b7(-0x306,-0x38c)]['mode']},this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene'][_0x5782b7(-0x274,-0x27c)],this['windData'],this[_0x5782b7(-0x2f2,-0x26c)],this['viewerParameters'],this[_0x7508cf(0x321,0x30a)]);function _0x5782b7(_0x595369,_0x546b45){return _0x3e2b6f(_0x546b45,_0x595369- -0x2b6);}this['primitives']=this['particleSystem']['getPrimitives'](),this[_0x7508cf(0x316,0x2f5)][_0x5782b7(-0x2aa,-0x24f)](_0xef25a4=>{function _0x2fe552(_0x1e788d,_0x508575){return _0x7508cf(_0x508575,_0x1e788d- -0x2b6);}this[_0x2fe552(0x54,0x97)]['primitives']['add'](_0xef25a4);});function _0x7508cf(_0x356212,_0x39e3a9){return _0x3e2b6f(_0x356212,_0x39e3a9-0x35a);}this[_0x5782b7(-0x23c,-0x2a0)]['percentageChanged']=0.01,this['camera'][_0x7508cf(0x342,0x321)]['addEventListener'](this['updateViewerParameters'][_0x7508cf(0x3bf,0x3c1)](this)),this['scene'][_0x5782b7(-0x2a4,-0x263)]['addEventListener'](this[_0x7508cf(0x2d6,0x2ff)][_0x5782b7(-0x24f,-0x29c)](this)),window['addEventListener']('resize',this['updateViewerParameters']['bind'](this));}['_removedHook'](){function _0x2521e0(_0x101734,_0x245308){return _0x2e342d(_0x101734-0x84,_0x245308);}this['camera'][_0x423049(0x25,0x32)][_0x423049(0x8,0x5)](this['updateViewerParameters'][_0x423049(0xc5,0x64)](this)),this[_0x423049(0xe,0xf)]['morphComplete'][_0x2521e0(0x30f,0x361)](this['updateViewerParameters'][_0x2521e0(0x3cc,0x367)](this)),window['removeEventListener']('resize',this[_0x423049(0x3,-0xd)][_0x423049(0xc5,0xf4)](this));function _0x423049(_0x139ed1,_0x3f3a39){return _0x2e342d(_0x139ed1- -0x283,_0x3f3a39);}this['primitives']&&(this['primitives']['forEach'](_0x57edc0=>{function _0x2da249(_0x17a45a,_0x4761b5){return _0x423049(_0x4761b5- -0x265,_0x17a45a);}function _0xe308c4(_0x50c48e,_0x573150){return _0x2521e0(_0x50c48e- -0x1fc,_0x573150);}this[_0x2da249(-0x2c1,-0x257)]['primitives'][_0x2da249(-0x187,-0x1dd)](_0x57edc0);}),delete this['primitives']),this[_0x2521e0(0x341,0x315)]&&(this['particleSystem'][_0x2521e0(0x31b,0x34b)](),delete this[_0x423049(0x3a,0x2a)]);}[_0x3e2b6f(0x5f,0x47)](_0x3f570c,_0x5f0ad8){function _0x564b4a(_0x2a9b5e,_0x141771){return _0x2e342d(_0x141771-0x1a0,_0x2a9b5e);}function _0x53bcd6(_0x5c0948,_0x5629af){return _0x2e342d(_0x5629af- -0x3,_0x5c0948);}this['windData']=this[_0x564b4a(0x4ba,0x451)](_0x3f570c);if(_0x5f0ad8){this[_0x564b4a(0x478,0x500)](),this['_addedHook']();return;}this['particleSystem']?(this['particleSystem']['computing'][_0x564b4a(0x437,0x476)](this['windData']),this[_0x53bcd6(0x238,0x28e)][_0x564b4a(0x3f2,0x421)]()):this['_addedHook']();}[_0x2e342d(0x349,0x35f)](_0x117e9e,_0x48bfd4){function _0x1203fd(_0x3165dd,_0x281435){return _0x3e2b6f(_0x3165dd,_0x281435- -0xce);}this['particleSystem']&&(this['particleSystem']['changeOptions'](_0x48bfd4),this['scene'][_0x1203fd(-0xd6,-0x12e)]());}['processWindData'](_0x16163b){var _0x2b8dcd,_0x136dac;const _0x1a8b09={..._0x16163b};function _0x5e3edb(_0xcddc21,_0x53ed96){return _0x2e342d(_0x53ed96- -0x301,_0xcddc21);}function _0x178429(_0x361abc,_0xe89f7){return _0x3e2b6f(_0xe89f7,_0x361abc- -0xb7);}const _0x3e16a7=_0x1a8b09;!_0x3e16a7['height']&&_0x3e16a7[_0x5e3edb(-0x93,-0x65)]&&(_0x3e16a7['height']=_0x3e16a7['rows']);!_0x3e16a7['width']&&_0x3e16a7['cols']&&(_0x3e16a7['width']=_0x3e16a7[_0x178429(-0x94,-0xa2)]);!_0x3e16a7['bounds']&&(_0x3e16a7['bounds']={'west':_0x3e16a7[_0x178429(-0x102,-0x9d)],'south':_0x3e16a7[_0x5e3edb(0x47,-0x21)],'east':_0x3e16a7['xmax'],'north':_0x3e16a7['ymax']});if(!_0x3e16a7['u']){const _0x182446={};_0x182446['array']=_0x16163b[_0x178429(-0x105,-0xc0)],_0x182446[_0x5e3edb(-0x3,0x1b)]=_0x16163b[_0x178429(-0x26,0x58)],_0x182446['max']=_0x16163b[_0x178429(-0x66,-0x5)],_0x3e16a7['u']=_0x182446;}if(!_0x3e16a7['v']){const _0x43ccc3={};_0x43ccc3['array']=_0x16163b['vdata'],_0x43ccc3[_0x5e3edb(0x2c,0x1b)]=_0x16163b['vmin'],_0x43ccc3['max']=_0x16163b['vmax'],_0x3e16a7['v']=_0x43ccc3;}if(((_0x2b8dcd=_0x3e16a7[_0x5e3edb(0x51,0x76)])===null||_0x2b8dcd===void 0x0?void 0x0:_0x2b8dcd[_0x5e3edb(0x82,0x1b)])===undefined||((_0x136dac=_0x3e16a7['speed'])===null||_0x136dac===void 0x0?void 0x0:_0x136dac[_0x178429(-0x3f,-0xc5)])===undefined||_0x3e16a7[_0x178429(-0x21,0x66)]['array']===undefined){const _0x55f17a={'array':new Float32Array(_0x3e16a7['u']['array']['length']),'min':Number[_0x178429(-0x76,-0x76)],'max':Number['MIN_VALUE']};for(let _0x37b06d=0x0;_0x37b06d<_0x3e16a7['u']['array']['length'];_0x37b06d++){_0x55f17a['array'][_0x37b06d]=Math['sqrt'](_0x3e16a7['u'][_0x5e3edb(-0x52,-0x8e)][_0x37b06d]*_0x3e16a7['u'][_0x178429(-0x125,-0x167)][_0x37b06d]+_0x3e16a7['v']['array'][_0x37b06d]*_0x3e16a7['v']['array'][_0x37b06d]),_0x55f17a[_0x5e3edb(-0xbe,-0x8e)][_0x37b06d]!==0x0&&(_0x55f17a[_0x178429(-0x7c,-0x53)]=Math['min'](_0x55f17a[_0x5e3edb(-0x2a,0x1b)],_0x55f17a['array'][_0x37b06d]),_0x55f17a[_0x178429(-0x3f,-0x74)]=Math['max'](_0x55f17a['max'],_0x55f17a['array'][_0x37b06d]));}_0x3e16a7[_0x5e3edb(0x57,0x76)]=_0x55f17a;}return _0x3e16a7;}[_0x2e342d(0x286,0x2f5)](){var _0x2a9b71;const _0x260c7d=this[_0x26fe1c(0x3ac,0x336)];function _0x26fe1c(_0x290a1a,_0x1812db){return _0x3e2b6f(_0x1812db,_0x290a1a-0x3fc);}if(!_0x260c7d)return;const _0x3b8c56=_0x260c7d['canvas'],_0x256c09={};_0x256c09['x']=0x0,_0x256c09['y']=0x0;const _0x528c4e={};_0x528c4e['x']=0x0,_0x528c4e['y']=_0x3b8c56['clientHeight'];const _0x4860c9={};_0x4860c9['x']=_0x3b8c56['clientWidth'],_0x4860c9['y']=0x0;const _0x408c9f={};_0x408c9f['x']=_0x3b8c56['clientWidth'];function _0x1d988c(_0x23a5e4,_0x535498){return _0x3e2b6f(_0x535498,_0x23a5e4- -0x24f);}_0x408c9f['y']=_0x3b8c56[_0x1d988c(-0x25e,-0x201)];const _0x6d5680=[_0x256c09,_0x528c4e,_0x4860c9,_0x408c9f];let _0x38dcba=0xb4,_0x3df1aa=-0xb4,_0x1fc54e=0x5a,_0x125ebe=-0x5a,_0xef46b1=![];for(const _0x523f0a of _0x6d5680){const _0x39e248=_0x260c7d['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x523f0a['x'],_0x523f0a['y']),_0x260c7d['globe']['ellipsoid']);if(!_0x39e248){_0xef46b1=!![];break;}const _0x4a7207=_0x260c7d['globe']['ellipsoid'][_0x1d988c(-0x1c1,-0x1f5)](_0x39e248),_0xb07443=Cesium$1['Math'][_0x1d988c(-0x23c,-0x1b6)](_0x4a7207['longitude']),_0x5116c7=Cesium$1['Math'][_0x1d988c(-0x23c,-0x230)](_0x4a7207['latitude']);_0x38dcba=Math[_0x26fe1c(0x437,0x408)](_0x38dcba,_0xb07443),_0x3df1aa=Math['max'](_0x3df1aa,_0xb07443),_0x1fc54e=Math[_0x26fe1c(0x437,0x477)](_0x1fc54e,_0x5116c7),_0x125ebe=Math['max'](_0x125ebe,_0x5116c7);}if(!_0xef46b1){const _0x303142=new Cesium$1[(_0x1d988c(-0x1fa,-0x22d))](Math[_0x26fe1c(0x474,0x41e)](this['windData'][_0x1d988c(-0x1d3,-0x1b7)][_0x26fe1c(0x448,0x3d4)],_0x38dcba),Math['min'](this[_0x1d988c(-0x1ad,-0x15d)]['bounds'][_0x1d988c(-0x227,-0x24e)],_0x3df1aa)),_0x335100=new Cesium$1[(_0x26fe1c(0x451,0x493))](Math[_0x1d988c(-0x1d7,-0x156)](this[_0x26fe1c(0x49e,0x45d)]['bounds']['south'],_0x1fc54e),Math['min'](this['windData'][_0x26fe1c(0x478,0x41d)]['north'],_0x125ebe)),_0x8d7de3=(_0x303142['y']-_0x303142['x'])*0.05,_0x3dea07=(_0x335100['y']-_0x335100['x'])*0.05;_0x303142['x']=Math[_0x1d988c(-0x1d7,-0x18a)](this['windData']['bounds'][_0x1d988c(-0x203,-0x1b4)],_0x303142['x']-_0x8d7de3),_0x303142['y']=Math['min'](this[_0x1d988c(-0x1ad,-0x1ce)]['bounds']['east'],_0x303142['y']+_0x8d7de3),_0x335100['x']=Math[_0x26fe1c(0x474,0x403)](this['windData'][_0x1d988c(-0x1d3,-0x259)][_0x26fe1c(0x42a,0x432)],_0x335100['x']-_0x3dea07),_0x335100['y']=Math['min'](this['windData']['bounds']['north'],_0x335100['y']+_0x3dea07),this['viewerParameters']['lonRange']=_0x303142,this['viewerParameters'][_0x1d988c(-0x258,-0x265)]=_0x335100;const _0x263a4b=this[_0x26fe1c(0x49e,0x4ca)]['bounds']['east']-this['windData'][_0x26fe1c(0x478,0x4a4)]['west'],_0x563c79=this['windData']['bounds']['north']-this[_0x1d988c(-0x1ad,-0x236)]['bounds']['south'],_0xeb2ca5=(_0x303142['y']-_0x303142['x'])/_0x263a4b,_0x37a840=(_0x335100['y']-_0x335100['x'])/_0x563c79,_0x14c9ee=Math['min'](_0xeb2ca5,_0x37a840),_0x472a55=0x3e8*_0x14c9ee;_0x472a55>0x0&&(this[_0x26fe1c(0x3a0,0x34c)][_0x26fe1c(0x406,0x39b)]=Math['max'](0x0,Math[_0x26fe1c(0x437,0x465)](0x3e8,_0x472a55)));}this['viewerParameters'][_0x1d988c(-0x23e,-0x281)]=this[_0x1d988c(-0x29f,-0x21e)][_0x26fe1c(0x3b9,0x41d)],(_0x2a9b71=this[_0x1d988c(-0x273,-0x1fc)])===null||_0x2a9b71===void 0x0||_0x2a9b71[_0x26fe1c(0x46c,0x493)](this['viewerParameters']);}['getDataAtLonLat'](_0x32fffc,_0x1a3f35){const {bounds:_0x123c51,width:_0x1e7579,height:_0x3c2b9e,u:_0x42b46c,v:_0xb2657a,speed:_0x59a696}=this['windData'],{flipY:_0x36469f}=this['options'];if(_0x32fffc<_0x123c51[_0x524058(0x2fa,0x290)]||_0x32fffc>_0x123c51['east']||_0x1a3f35<_0x123c51['south']||_0x1a3f35>_0x123c51[_0x524058(0x1c3,0x1de)])return null;const _0x130c85=(_0x32fffc-_0x123c51[_0x18e0d6(-0xda,-0xfc)])/(_0x123c51[_0x524058(0x289,0x26c)]-_0x123c51['west'])*(_0x1e7579-0x1);let _0x38ff03=(_0x1a3f35-_0x123c51[_0x524058(0x28b,0x272)])/(_0x123c51['north']-_0x123c51['south'])*(_0x3c2b9e-0x1);_0x36469f&&(_0x38ff03=_0x3c2b9e-0x1-_0x38ff03);const _0x59ecdf=Math['floor'](_0x130c85),_0x3dd237=Math['floor'](_0x38ff03),_0x58a098=Math['floor'](_0x130c85),_0x2967ec=Math['min'](_0x58a098+0x1,_0x1e7579-0x1),_0x84bb56=Math[_0x18e0d6(-0x195,-0x16f)](_0x38ff03),_0xd68f2f=Math[_0x524058(0x285,0x27f)](_0x84bb56+0x1,_0x3c2b9e-0x1),_0x42ed4e=_0x130c85-_0x58a098,_0x390afa=_0x38ff03-_0x84bb56,_0x546331=_0x3dd237*_0x1e7579+_0x59ecdf,_0x13c744=_0x84bb56*_0x1e7579+_0x58a098,_0x57bfc8=_0x84bb56*_0x1e7579+_0x2967ec,_0x215803=_0xd68f2f*_0x1e7579+_0x58a098,_0x2238fa=_0xd68f2f*_0x1e7579+_0x2967ec,_0x49dcf7=_0x42b46c['array'][_0x13c744],_0x8e1ce5=_0x42b46c['array'][_0x57bfc8],_0x40b408=_0x42b46c[_0x18e0d6(-0x1a0,-0x1b6)][_0x215803];function _0x524058(_0x1db3aa,_0x4e0a6b){return _0x2e342d(_0x4e0a6b- -0x9d,_0x1db3aa);}const _0x56b9bb=_0x42b46c['array'][_0x2238fa],_0x3cbce4=(0x1-_0x42ed4e)*(0x1-_0x390afa)*_0x49dcf7+_0x42ed4e*(0x1-_0x390afa)*_0x8e1ce5+(0x1-_0x42ed4e)*_0x390afa*_0x40b408+_0x42ed4e*_0x390afa*_0x56b9bb,_0x4dc3a3=_0xb2657a[_0x524058(0x22f,0x1d6)][_0x13c744],_0x7ad4f3=_0xb2657a['array'][_0x57bfc8],_0x31f808=_0xb2657a[_0x18e0d6(-0x19d,-0x1b6)][_0x215803],_0x326860=_0xb2657a[_0x524058(0x179,0x1d6)][_0x2238fa],_0x1aa6fc=(0x1-_0x42ed4e)*(0x1-_0x390afa)*_0x4dc3a3+_0x42ed4e*(0x1-_0x390afa)*_0x7ad4f3+(0x1-_0x42ed4e)*_0x390afa*_0x31f808+_0x42ed4e*_0x390afa*_0x326860,_0x565e6b=Math['sqrt'](_0x3cbce4*_0x3cbce4+_0x1aa6fc*_0x1aa6fc),_0x303767={};_0x303767['u']=_0x42b46c[_0x18e0d6(-0x1c7,-0x1b6)][_0x546331],_0x303767['v']=_0xb2657a[_0x524058(0x18b,0x1d6)][_0x546331],_0x303767[_0x18e0d6(-0xc5,-0xb2)]=_0x59a696['array'][_0x546331];const _0x21be3b={};_0x21be3b['u']=_0x3cbce4,_0x21be3b['v']=_0x1aa6fc,_0x21be3b['speed']=_0x565e6b;const _0xa75a33={};_0xa75a33['original']=_0x303767,_0xa75a33[_0x524058(0x290,0x22b)]=_0x21be3b;function _0x18e0d6(_0x50eb4a,_0x2d5980){return _0x3e2b6f(_0x50eb4a,_0x2d5980- -0x148);}return _0xa75a33;}}function _0x2e342d(_0x34338a,_0x4f9727){return _0x3a79(_0x34338a-0x1df,_0x4f9727);}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this[_0x3a0e38(-0x1dc,-0x258)]=null;function _0x3a0e38(_0xace60,_0x582728){return _0x3e2b6f(_0xace60,_0x582728- -0x2b5);}this['lat']=null;function _0x4e02fa(_0x5a3cc7,_0x5eb326){return _0x2e342d(_0x5a3cc7- -0x58c,_0x5eb326);}this[_0x4e02fa(-0x2e0,-0x27c)]=null,this['tlat']=null,this['age']=null,this['speed']=null;}[_0x2e342d(0x297,0x2bf)](){for(const _0x144232 in this){delete this[_0x144232];}}}class CanvasWindField{constructor(_0x287e30){this['setOptions'](_0x287e30);}get['speedRate'](){return this['_speedRate'];}set[_0x2e342d(0x274,0x22e)](_0x27bbff){function _0x50c6e7(_0x5e8759,_0x3281eb){return _0x2e342d(_0x5e8759- -0x1,_0x3281eb);}function _0x5cb6d4(_0x10674a,_0x683af1){return _0x2e342d(_0x10674a- -0x489,_0x683af1);}this[_0x5cb6d4(-0x1b0,-0x207)]=(0x64-(_0x27bbff>0x63?0x63:_0x27bbff))*0x64,this[_0x5cb6d4(-0x176,-0x1b2)]=[(this['xmax']-this['xmin'])/this[_0x50c6e7(0x2d8,0x32a)],(this['ymax']-this[_0x50c6e7(0x2df,0x2fb)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0x1611b4){this['_maxAge']=_0x1611b4;}[_0x3e2b6f(0x3e,0x6e)](_0x28d8f7){this['options']=_0x28d8f7;function _0x41299b(_0x1af950,_0x213eb9){return _0x2e342d(_0x1af950- -0x5e,_0x213eb9);}this[_0x60995d(0x14,-0x67)]=_0x28d8f7['maxAge']||0x78,this['speedRate']=_0x28d8f7[_0x60995d(-0x131,-0xd8)]||0x32,this['particles']=[];function _0x60995d(_0x59f13f,_0x19b22f){return _0x2e342d(_0x19b22f- -0x34c,_0x59f13f);}const _0x337421=_0x28d8f7[_0x60995d(0x19,-0x8)]||0x1000;for(let _0x184160=0x0;_0x184160<_0x337421;_0x184160++){const _0x3ab867=this['_randomParticle'](new CanvasParticle());this['particles'][_0x60995d(-0x8c,-0xc9)](_0x3ab867);}}[_0x2e342d(0x2c5,0x34f)](_0x1a283c){this[_0x3e497b(0x6c,0xe4)]=_0x1a283c['rows'],this[_0x3e497b(0xd3,0x14c)]=_0x1a283c['cols'],this['xmin']=_0x1a283c['xmin'],this[_0x14d75a(0x108,0x13e)]=_0x1a283c[_0x14d75a(0x108,0x159)],this[_0x3e497b(0x115,0x128)]=_0x1a283c['ymin'];function _0x14d75a(_0x2761cc,_0x3aa68d){return _0x2e342d(_0x2761cc- -0x1b7,_0x3aa68d);}function _0x3e497b(_0x10aa1b,_0x982600){return _0x2e342d(_0x982600- -0x1b8,_0x10aa1b);}this['ymax']=_0x1a283c['ymax'],this['grid']=[];const _0x2285c1=_0x1a283c['udata'],_0x37d360=_0x1a283c['vdata'];let _0x1d3c51=![];_0x2285c1['length']===this['rows']&&_0x2285c1[0x0]['length']===this['cols']&&(_0x1d3c51=!![]);let _0x8e676f=0x0,_0x564ba9=null,_0x27efbf=null;for(let _0x5e916e=0x0;_0x5e916e<this['rows'];_0x5e916e++){_0x564ba9=[];for(let _0x4380a7=0x0;_0x4380a7<this['cols'];_0x4380a7++,_0x8e676f++){_0x1d3c51?_0x27efbf=this['_calcUV'](_0x2285c1[_0x5e916e][_0x4380a7],_0x37d360[_0x5e916e][_0x4380a7]):_0x27efbf=this[_0x3e497b(0x112,0x169)](_0x2285c1[_0x8e676f],_0x37d360[_0x8e676f]),_0x564ba9['push'](_0x27efbf);}this['grid']['push'](_0x564ba9);}!this['options']['flipY']&&this[_0x3e497b(0x17c,0x160)]['reverse']();}[_0x2e342d(0x326,0x34b)](){delete this['rows'],delete this['cols'],delete this['xmin'],delete this[_0xc5d204(-0xb7,-0x71)];function _0x5c15ad(_0x5186fd,_0x477514){return _0x2e342d(_0x5186fd- -0x1b3,_0x477514);}function _0xc5d204(_0x13ed72,_0x5cdaac){return _0x3e2b6f(_0x13ed72,_0x5cdaac- -0x4f);}delete this[_0x5c15ad(0x12d,0x18d)],delete this['ymax'],delete this['grid'],delete this['particles'];}['toGridXY'](_0x51d5e8,_0x2e44cf){function _0x2cddb0(_0x570598,_0x4ec70f){return _0x2e342d(_0x570598- -0x271,_0x4ec70f);}const _0x4ac62c=(_0x51d5e8-this['xmin'])/(this['xmax']-this['xmin'])*(this[_0x2cddb0(0x93,0x85)]-0x1);function _0x525e4e(_0x9a962c,_0x14e3a3){return _0x2e342d(_0x9a962c- -0xc9,_0x14e3a3);}const _0x59c19c=(this['ymax']-_0x2e44cf)/(this['ymax']-this[_0x525e4e(0x217,0x281)])*(this['rows']-0x1);return[_0x4ac62c,_0x59c19c];}[_0x3e2b6f(0x11,-0x14)](_0x1cb76c,_0x5aedc4){if(_0x1cb76c<0x0||_0x1cb76c>=this['cols']||_0x5aedc4>=this[_0x36d615(0x252,0x22c)])return[0x0,0x0,0x0];const _0xf684f=Math['floor'](_0x1cb76c),_0x1b2ffe=Math['floor'](_0x5aedc4);if(_0xf684f===_0x1cb76c&&_0x1b2ffe===_0x5aedc4)return this[_0x249d32(0xff,0xa9)][_0x5aedc4][_0x1cb76c];const _0x21f3c4=_0xf684f+0x1;function _0x249d32(_0x396769,_0x316592){return _0x2e342d(_0x396769- -0x219,_0x316592);}const _0x3d203d=_0x1b2ffe+0x1;function _0x36d615(_0x495830,_0x577710){return _0x2e342d(_0x577710- -0x70,_0x495830);}const _0x517b1d=this[_0x36d615(0x21a,0x25d)](_0xf684f,_0x1b2ffe),_0x16efef=this['getUVByXY'](_0x21f3c4,_0x1b2ffe),_0x33e9f9=this['getUVByXY'](_0xf684f,_0x3d203d),_0x3ab2c0=this[_0x249d32(0xb4,0x72)](_0x21f3c4,_0x3d203d);let _0x1690d2=null;try{_0x1690d2=this['_bilinearInterpolation'](_0x1cb76c-_0xf684f,_0x5aedc4-_0x1b2ffe,_0x517b1d,_0x16efef,_0x33e9f9,_0x3ab2c0);}catch(_0x3c9046){console['log'](_0x1cb76c,_0x5aedc4);}return _0x1690d2;}[_0x3e2b6f(0x24,0x87)](_0xc5b2cf,_0x4405c4,_0x4365af,_0x1912a0,_0x45f0f5,_0x20645e){const _0x4ddf04=0x1-_0xc5b2cf,_0x5af20=0x1-_0x4405c4,_0x3d3926=_0x4ddf04*_0x5af20,_0x16ff0d=_0xc5b2cf*_0x5af20,_0x181474=_0x4ddf04*_0x4405c4;function _0x3cffcd(_0x3a2080,_0x4d3ed7){return _0x2e342d(_0x3a2080- -0x24c,_0x4d3ed7);}const _0x2dfeb2=_0xc5b2cf*_0x4405c4,_0x308479=_0x4365af[0x0]*_0x3d3926+_0x1912a0[0x0]*_0x16ff0d+_0x45f0f5[0x0]*_0x181474+_0x20645e[0x0]*_0x2dfeb2,_0x5705c7=_0x4365af[0x1]*_0x3d3926+_0x1912a0[0x1]*_0x16ff0d+_0x45f0f5[0x1]*_0x181474+_0x20645e[0x1]*_0x2dfeb2;return this[_0x3cffcd(0xd5,0x7c)](_0x308479,_0x5705c7);}['_calcUV'](_0x2ada50,_0x1a96ee){function _0x23203d(_0x2d6e75,_0x13d16f){return _0x3e2b6f(_0x2d6e75,_0x13d16f-0x488);}return[+_0x2ada50,+_0x1a96ee,Math[_0x23203d(0x51c,0x4ad)](_0x2ada50*_0x2ada50+_0x1a96ee*_0x1a96ee)];}['getUVByPoint'](_0x39ffc9,_0x2f9f51){if(!this['isInExtent'](_0x39ffc9,_0x2f9f51))return null;function _0x4a36f8(_0x556301,_0x518d5c){return _0x2e342d(_0x518d5c- -0x530,_0x556301);}const _0xbc7da1=this[_0x5b4ba3(-0x7,-0x27)](_0x39ffc9,_0x2f9f51);function _0x5b4ba3(_0x414fe8,_0x56c6ca){return _0x3e2b6f(_0x414fe8,_0x56c6ca- -0x57);}const _0x28e8ec=this[_0x4a36f8(-0x23a,-0x263)](_0xbc7da1[0x0],_0xbc7da1[0x1]);return _0x28e8ec;}[_0x3e2b6f(-0x81,-0x44)](_0x229bdb,_0x47a2a8){function _0x12f089(_0x35f128,_0x12140b){return _0x2e342d(_0x12140b- -0x274,_0x35f128);}return _0x229bdb>=this['xmin']&&_0x229bdb<=this[_0x12f089(0x9d,0x4b)]&&_0x47a2a8>=this['ymin']&&_0x47a2a8<=this['ymax']?!![]:![];}[_0x2e342d(0x335,0x383)](){const _0x11569c=fRandomByfloat(this[_0x5e2e93(-0x1e1,-0x1ed)],this['xmax']),_0x4844f2=fRandomByfloat(this['ymin'],this[_0x5e2e93(-0x1c4,-0x230)]);function _0x5e2e93(_0x3c4056,_0x3c9015){return _0x3e2b6f(_0x3c9015,_0x3c4056- -0x196);}const _0x21bbc3={};_0x21bbc3['lat']=_0x4844f2,_0x21bbc3['lng']=_0x11569c;function _0x4f61d3(_0x22de7b,_0x2c5da1){return _0x2e342d(_0x2c5da1- -0x11c,_0x22de7b);}return _0x21bbc3;}[_0x3e2b6f(-0xd1,-0x59)](){let _0x3d9bcd,_0x5f27ab,_0x4f259a;function _0x3217c2(_0x3e04b0,_0x474e0d){return _0x2e342d(_0x474e0d- -0x16c,_0x3e04b0);}function _0x1ab447(_0x259b0d,_0x2afe58){return _0x3e2b6f(_0x259b0d,_0x2afe58- -0x1cb);}for(let _0xe354aa=0x0,_0x210c85=this[_0x1ab447(-0xf0,-0x139)]['length'];_0xe354aa<_0x210c85;_0xe354aa++){let _0x57b2da=this['particles'][_0xe354aa];_0x57b2da[_0x3217c2(0x176,0x1d9)]<=0x0&&(_0x57b2da=this['_randomParticle'](_0x57b2da));if(_0x57b2da['age']>0x0){const _0x506a74=_0x57b2da[_0x3217c2(0xf1,0x140)],_0x5efc1b=_0x57b2da[_0x1ab447(-0x109,-0x156)];_0x4f259a=this['getUVByPoint'](_0x506a74,_0x5efc1b),_0x4f259a?(_0x3d9bcd=_0x506a74+this['_calc_speedRate'][0x0]*_0x4f259a[0x0],_0x5f27ab=_0x5efc1b+this['_calc_speedRate'][0x1]*_0x4f259a[0x1],_0x57b2da['lng']=_0x506a74,_0x57b2da['lat']=_0x5efc1b,_0x57b2da[_0x3217c2(0x15e,0x140)]=_0x3d9bcd,_0x57b2da['tlat']=_0x5f27ab,_0x57b2da['speed']=_0x4f259a[0x2],_0x57b2da['age']--):_0x57b2da['age']=0x0;}}return this['particles'];}['_randomParticle'](_0x46d4b2){let _0x48de06,_0x5dfc13;for(let _0x17ff96=0x0;_0x17ff96<0x1e;_0x17ff96++){_0x48de06=this['getRandomLatLng'](),_0x5dfc13=this['getUVByPoint'](_0x48de06['lng'],_0x48de06['lat']);if(_0x5dfc13&&_0x5dfc13[0x2]>0x0)break;}if(!_0x5dfc13)return _0x46d4b2;const _0x1006ae=_0x48de06['lng']+this['_calc_speedRate'][0x0]*_0x5dfc13[0x0];function _0x3fb021(_0x5ae6ec,_0x1da54f){return _0x3e2b6f(_0x1da54f,_0x5ae6ec-0x481);}const _0x4830ff=_0x48de06['lat']+this['_calc_speedRate'][0x1]*_0x5dfc13[0x1];_0x46d4b2[_0x3fb021(0x4de,0x566)]=_0x48de06['lng'],_0x46d4b2['lat']=_0x48de06['lat'];function _0x1b6fd0(_0x28f4e7,_0xc0f495){return _0x3e2b6f(_0xc0f495,_0x28f4e7-0x377);}return _0x46d4b2[_0x3fb021(0x44c,0x3e8)]=_0x1006ae,_0x46d4b2['tlat']=_0x4830ff,_0x46d4b2['age']=Math['round'](0xa+Math['random']()*this['maxAge']),_0x46d4b2['speed']=_0x5dfc13[0x2],_0x46d4b2;}['destroy'](){for(const _0x3750a0 in this){delete this[_0x3750a0];}}}function fRandomByfloat(_0x106e4b,_0x50e893){return _0x106e4b+Math['random']()*(_0x50e893-_0x106e4b);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x3e2b6f(0x47,-0x2a)][_0x3e2b6f(0x2b,0x62)];class CanvasWindLayer extends BaseLayer{constructor(_0x35ac5f={}){function _0x35c30c(_0x14094e,_0x5833d7){return _0x3e2b6f(_0x5833d7,_0x14094e-0x42c);}super(_0x35ac5f),this[_0x35c30c(0x494,0x51a)](_0x35ac5f),this['canvas']=null;function _0x193cab(_0x3d890f,_0x5aa0cc){return _0x3e2b6f(_0x3d890f,_0x5aa0cc-0x388);}_0x35ac5f['colors']&&_0x35ac5f[_0x193cab(0x3d2,0x35d)]&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x35ac5f));}['_setOptionsHook'](_0x14c9b5,_0x12c1f1){this['frameTime']=0x3e8/(_0x14c9b5[_0x2af368(0x178,0x161)]||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![],this['color']=_0x14c9b5[_0x2af368(0x182,0x184)]||'#ffffff',this[_0x2af368(0x116,0xaf)]=_0x14c9b5[_0x2af368(0x116,0xf9)]||0x1;function _0x36227d(_0x4c7936,_0x3eaddc){return _0x3e2b6f(_0x4c7936,_0x3eaddc-0x258);}this['fixedHeight']=_0x14c9b5[_0x36227d(0x259,0x27c)]??0x0,this[_0x36227d(0x1e7,0x200)]=_0x14c9b5['flipY']??![];function _0x2af368(_0x35cbd4,_0x3c04ef){return _0x3e2b6f(_0x3c04ef,_0x35cbd4-0x102);}this['windField']&&this[_0x2af368(0x122,0x167)][_0x36227d(0x2f6,0x2c6)](_0x14c9b5);}get[_0x3e2b6f(-0x5a,-0x2a)](){function _0x501540(_0x26a028,_0x2b5145){return _0x2e342d(_0x26a028- -0x273,_0x2b5145);}return this[_0x501540(0x64,-0x22)];}get['canvasWidth'](){function _0x51d341(_0x555dd9,_0x3855f8){return _0x3e2b6f(_0x3855f8,_0x555dd9- -0x1e7);}function _0x385c46(_0x118267,_0x49ea05){return _0x2e342d(_0x118267- -0x37f,_0x49ea05);}return this['_map'][_0x385c46(-0xee,-0x106)][_0x385c46(-0xa8,-0x2e)][_0x51d341(-0x15b,-0x16b)];}get['canvasHeight'](){function _0xff6a78(_0x5378b0,_0x6b27e7){return _0x2e342d(_0x5378b0- -0x4d6,_0x6b27e7);}function _0x80aae3(_0x50e1bd,_0x2fa4d3){return _0x3e2b6f(_0x50e1bd,_0x2fa4d3- -0x115);}return this[_0x80aae3(-0xee,-0x13e)]['scene'][_0xff6a78(-0x1ff,-0x1b1)]['clientHeight'];}get[_0x2e342d(0x37c,0x3eb)](){return this['_pointerEvents'];}set[_0x3e2b6f(0xf7,0x9b)](_0x10291c){function _0x2e8b9e(_0xecc285,_0x9d404c){return _0x3e2b6f(_0xecc285,_0x9d404c- -0x1ee);}this['_pointerEvents']=_0x10291c;if(!this[_0x2e8b9e(-0x204,-0x1f8)])return;function _0x4889e6(_0x949b2,_0x2c20f7){return _0x3e2b6f(_0x949b2,_0x2c20f7- -0x254);}_0x10291c?this['canvas']['style'][_0x2e8b9e(-0x275,-0x220)]='all':this[_0x2e8b9e(-0x1ca,-0x1f8)]['style']['pointer-events']='none';}get[_0x2e342d(0x344,0x2d5)](){function _0x43d565(_0x32b6b1,_0x4c282a){return _0x3e2b6f(_0x4c282a,_0x32b6b1- -0x12);}return this[_0x43d565(-0x4e,-0x6f)]['particlesNumber'];}set['particlesNumber'](_0x54a8aa){this['options']['particlesNumber']=_0x54a8aa,clearTimeout(this['_canrefresh']);function _0x2557a2(_0x1a3dc0,_0x23b22d){return _0x3e2b6f(_0x23b22d,_0x1a3dc0-0x26a);}this[_0x2557a2(0x20b,0x1e8)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x3e2b6f(-0x50,-0x6d)](){function _0x420355(_0x155add,_0x493aa7){return _0x3e2b6f(_0x493aa7,_0x155add-0x4db);}return this[_0x420355(0x49f,0x43d)]['speedRate'];}set[_0x2e342d(0x274,0x2c8)](_0x515f2b){function _0x422132(_0x43bf83,_0x30187c){return _0x2e342d(_0x30187c-0x120,_0x43bf83);}function _0x41b5f7(_0x1001ac,_0x14b7cf){return _0x3e2b6f(_0x14b7cf,_0x1001ac- -0x1cd);}this[_0x422132(0x440,0x3c5)][_0x41b5f7(-0x23a,-0x1d8)]=_0x515f2b,this[_0x41b5f7(-0x1ad,-0x192)]&&(this['windField']['speedRate']=_0x515f2b);}get['maxAge'](){function _0x54b826(_0x13fab5,_0x4d1ddc){return _0x3e2b6f(_0x4d1ddc,_0x13fab5- -0x40);}function _0x2836c3(_0x5ba1e4,_0x2814cc){return _0x3e2b6f(_0x5ba1e4,_0x2814cc-0x16a);}return this[_0x2836c3(0x18d,0x12e)][_0x2836c3(0x163,0x16e)];}set['maxAge'](_0x373482){function _0x7ed3d4(_0x541cdf,_0x414302){return _0x3e2b6f(_0x414302,_0x541cdf-0x37a);}function _0xd8a869(_0x2dd169,_0x4afe49){return _0x3e2b6f(_0x2dd169,_0x4afe49-0x4b);}this['options'][_0x7ed3d4(0x37e,0x3d1)]=_0x373482,this[_0xd8a869(-0x5,0x6b)]&&(this['windField'][_0xd8a869(-0x5,0x4f)]=_0x373482);}get[_0x3e2b6f(-0x49,-0x3f)](){function _0xe7ec14(_0x84ff3d,_0xbfc2aa){return _0x3e2b6f(_0x84ff3d,_0xbfc2aa-0x294);}return this[_0xe7ec14(0x3bf,0x336)];}set['data'](_0xdbedb4){this['setData'](_0xdbedb4);}get[_0x2e342d(0x312,0x34a)](){function _0x236ab8(_0xd8dfc9,_0x23cea7){return _0x3e2b6f(_0x23cea7,_0xd8dfc9-0x330);}let _0x956391=this[_0x3c0f47(0x389,0x3e5)]['xmin'],_0x51dedf=this[_0x236ab8(0x3d2,0x40e)][_0x3c0f47(0x2b3,0x321)],_0xb388dd=this[_0x236ab8(0x3d2,0x453)][_0x236ab8(0x32f,0x347)];function _0x3c0f47(_0x21a31a,_0x198217){return _0x3e2b6f(_0x21a31a,_0x198217-0x343);}let _0x5401e7=this[_0x236ab8(0x3d2,0x35f)][_0x3c0f47(0x291,0x315)];return _0x51dedf>=0x167&&_0x956391===0x0&&(_0x956391=-0xb4,_0x51dedf=0xb4),_0x956391=Math['max'](_0x956391,-0xb4),_0x51dedf=Math['min'](_0x51dedf,0xb4),_0xb388dd=Math[_0x236ab8(0x3a8,0x412)](_0xb388dd,-0x5a),_0x5401e7=Math['min'](_0x5401e7,0x5a),Cesium['Rectangle'][_0x236ab8(0x36d,0x39d)](_0x956391,_0xb388dd,_0x51dedf,_0x5401e7);}['_showHook'](_0x4d5117){function _0x3fed3b(_0x4dc306,_0x2ea0d3){return _0x3e2b6f(_0x4dc306,_0x2ea0d3- -0x83);}function _0x18ffeb(_0x59ebd5,_0x1d03c8){return _0x2e342d(_0x59ebd5- -0x239,_0x1d03c8);}_0x4d5117?this[_0x18ffeb(0x8a,0x2)]():(this['windData']&&(this['options']['data']=this[_0x3fed3b(0xa9,0x1f)]),this[_0x18ffeb(0x127,0x140)]());}['_mountedHook'](){function _0x4b8e2e(_0x397380,_0x512c4c){return _0x3e2b6f(_0x512c4c,_0x397380- -0x42);}function _0x140d43(_0x11c95d,_0x11bede){return _0x2e342d(_0x11bede- -0x3d4,_0x11c95d);}this[_0x4b8e2e(-0x7e,-0x5)]['worker']?this['initWorker']():this[_0x140d43(-0x5b,-0xd3)]=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this[_0x515f1e(-0x56,0x13)]();const _0x440180={};function _0x35ec45(_0x10d07c,_0x10c730){return _0x3e2b6f(_0x10d07c,_0x10c730-0x145);}_0x440180[_0x35ec45(0x247,0x1d2)]=!![],this[_0x35ec45(0xcd,0x139)]=this[_0x35ec45(0x138,0x13b)][_0x35ec45(0xbe,0x10d)]('2d',_0x440180);function _0x515f1e(_0xdec9e9,_0x1fb275){return _0x2e342d(_0xdec9e9- -0x3a6,_0x1fb275);}this[_0x35ec45(0x203,0x17e)](),this[_0x35ec45(0xac,0x109)]['data']&&this[_0x35ec45(0x182,0x18c)](this[_0x515f1e(-0x101,-0x188)]['data']);}['_removedHook'](){function _0x1d6c03(_0x480c68,_0x4ced67){return _0x2e342d(_0x480c68-0x167,_0x4ced67);}this[_0x1d6c03(0x48d,0x515)]();function _0x3ab50f(_0x244f0b,_0x5ceddd){return _0x3e2b6f(_0x5ceddd,_0x244f0b- -0x82);}this[_0x3ab50f(-0x3c,-0x22)](),this['canvas']&&(this['_map']['container'][_0x1d6c03(0x442,0x446)](this['canvas']),delete this[_0x3ab50f(-0x8c,-0xcb)]);}[_0x2e342d(0x350,0x3b5)](){const _0xb01629=mars3d__namespace['DomUtil']['create']('canvas','mars3d-canvasWind',this[_0x4b2c01(0x213,0x224)]['container']);_0xb01629['style']['position']='absolute',_0xb01629['style']['top']=_0x4b2c01(0x24f,0x282),_0xb01629['style'][_0x58f3bd(0x359,0x30b)]='0px',_0xb01629['style']['width']=this[_0x4b2c01(0x262,0x224)]['scene'][_0x58f3bd(0x2f1,0x35a)]['clientWidth']+'px',_0xb01629['style']['height']=this['_map'][_0x58f3bd(0x2ab,0x2d0)]['canvas']['clientHeight']+'px';function _0x58f3bd(_0x2cd427,_0x1f7592){return _0x3e2b6f(_0x1f7592,_0x2cd427-0x2fb);}_0xb01629['style']['pointerEvents']=this[_0x4b2c01(0x262,0x256)]?_0x58f3bd(0x31d,0x31b):'none',_0xb01629[_0x4b2c01(0x2ee,0x29b)][_0x4b2c01(0x240,0x1ec)]=this[_0x58f3bd(0x2bf,0x330)]['zIndex']??0x9,_0xb01629['width']=this[_0x58f3bd(0x2d2,0x32f)][_0x4b2c01(0x1c2,0x1fd)]['canvas']['clientWidth'],_0xb01629['height']=this['_map'][_0x4b2c01(0x1ae,0x1fd)][_0x4b2c01(0x286,0x243)]['clientHeight'];function _0x4b2c01(_0x567dc2,_0x5e3738){return _0x2e342d(_0x5e3738- -0x94,_0x567dc2);}return _0xb01629;}[_0x2e342d(0x35f,0x2ec)](){function _0xef8842(_0x1e7403,_0x3e047d){return _0x3e2b6f(_0x1e7403,_0x3e047d-0x3e3);}function _0x55e9b1(_0x4d13a6,_0x457189){return _0x2e342d(_0x457189- -0x77,_0x4d13a6);}this['canvas']&&(this['canvas']['style']['width']=this['_map']['scene']['canvas'][_0x55e9b1(0x278,0x2f6)]+'px',this['canvas']['style'][_0x55e9b1(0x330,0x2f0)]=this[_0xef8842(0x37d,0x3ba)][_0x55e9b1(0x24a,0x21a)]['canvas']['clientHeight']+'px',this[_0x55e9b1(0x233,0x260)]['width']=this[_0x55e9b1(0x242,0x241)][_0xef8842(0x3ef,0x393)]['canvas']['clientWidth'],this[_0xef8842(0x3f3,0x3d9)][_0x55e9b1(0x35d,0x2f0)]=this[_0xef8842(0x41d,0x3ba)][_0x55e9b1(0x233,0x21a)][_0x55e9b1(0x238,0x260)][_0x55e9b1(0x2d6,0x25b)]);}[_0x2e342d(0x31a,0x371)](){const _0xe246cc=this;function _0x210808(_0x1e27fa,_0x3133a2){return _0x2e342d(_0x3133a2- -0x28f,_0x1e27fa);}let _0xac5465=Date[_0x455c23(0x367,0x359)]();function _0x455c23(_0x51bdf1,_0x522000){return _0x3e2b6f(_0x522000,_0x51bdf1-0x3bc);}(function _0x2e700b(){if(_0xe246cc['isDestroy'])return;function _0x2a8876(_0x9fcfa6,_0x2a851c){return _0x455c23(_0x2a851c- -0x5d,_0x9fcfa6);}function _0x411a8d(_0x4c2960,_0x1423f6){return _0x455c23(_0x1423f6-0x29,_0x4c2960);}_0xe246cc[_0x2a8876(0x35b,0x337)]=window['requestAnimationFrame'](_0x2e700b);if(_0xe246cc[_0x2a8876(0x44f,0x3c8)]&&_0xe246cc[_0x411a8d(0x42d,0x405)]){const _0x4b24e7=Date['now'](),_0x584116=_0x4b24e7-_0xac5465;_0x584116>_0xe246cc['frameTime']&&(_0xac5465=_0x4b24e7-_0x584116%_0xe246cc[_0x411a8d(0x411,0x438)],_0xe246cc['update']());}}(),window[_0x455c23(0x373,0x301)](_0x455c23(0x43a,0x4a0),this['resize']['bind'](this),![]),this[_0x210808(0x136,0xbc)]=![],this[_0x210808(0x8d,0xa4)]=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace[_0x210808(0x52,0xcb)]['wheel'],this['_onMapWhellEvent'],this),this[_0x455c23(0x393,0x3fa)]['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x455c23(0x393,0x3d3)]['on'](mars3d__namespace['EventType'][_0x210808(0x15b,0xeb)],this[_0x455c23(0x43d,0x3f3)],this)));}['unbindEvent'](){window['cancelAnimationFrame'](this['_animateFrame']);function _0x362302(_0x4369ff,_0x3a4bec){return _0x3e2b6f(_0x4369ff,_0x3a4bec- -0x283);}delete this[_0x362302(-0x2e6,-0x2ab)],window[_0x362302(-0x311,-0x2d9)]('resize',this['resize']);function _0x3d144a(_0x2af86f,_0x4b426a){return _0x2e342d(_0x4b426a- -0x450,_0x2af86f);}this[_0x362302(-0x341,-0x2bf)]['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x3d144a(-0x171,-0xf6)]['wheel'],this['_onMapWhellEvent'],this),this[_0x3d144a(-0x143,-0x198)][_0x3d144a(-0x142,-0x117)](mars3d__namespace[_0x3d144a(-0xc7,-0xf6)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x362302(-0x2ec,-0x2ac)][_0x362302(-0x1fb,-0x22b)](mars3d__namespace['EventType']['mouseUp'],this[_0x362302(-0x1d8,-0x202)],this),this[_0x362302(-0x2bf,-0x2ac)]['off'](mars3d__namespace['EventType'][_0x362302(-0x235,-0x20f)],this['_onMouseMoveEvent'],this));}[_0x3e2b6f(-0x2,-0x42)](_0x2f6757){clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas'][_0x4baa1f(0x37,0x47)]['visibility']=_0x4baa1f(0x61,-0x9);function _0x4baa1f(_0x5d4272,_0x5ac574){return _0x2e342d(_0x5ac574- -0x2e8,_0x5d4272);}function _0x9d6ad8(_0x254f8d,_0x3cfe11){return _0x3e2b6f(_0x3cfe11,_0x254f8d-0x475);}this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;function _0x415d01(_0x4027df,_0x49c400){return _0x4baa1f(_0x4027df,_0x49c400- -0x2a9);}this[_0x4ecda9(0xc6,0x139)]();function _0x4ecda9(_0x1a182c,_0x3bbc7e){return _0x9d6ad8(_0x1a182c- -0x3d0,_0x3bbc7e);}this[_0x4ecda9(0x9b,0xce)]['style']['visibility']=_0x415d01(-0x233,-0x26c);},0xc8);}['_onMouseDownEvent'](_0xdd5d24){function _0x6e1ea5(_0x3749f7,_0x4a17c4){return _0x3e2b6f(_0x4a17c4,_0x3749f7-0x456);}function _0x25c485(_0x49b422,_0x8a074f){return _0x3e2b6f(_0x8a074f,_0x49b422- -0x293);}this[_0x6e1ea5(0x4c0,0x468)]=!![],this['_map']['off'](mars3d__namespace[_0x6e1ea5(0x4cf,0x549)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x25c485(-0x2bc,-0x2ad)]['on'](mars3d__namespace[_0x25c485(-0x21a,-0x1bb)]['mouseMove'],this[_0x6e1ea5(0x474,0x40f)],this);}[_0x3e2b6f(0x2e,0x1e)](_0x3276f2){if(!this['show']||!this['canvas'])return;function _0x23a3c1(_0x490c03,_0x22143a){return _0x3e2b6f(_0x490c03,_0x22143a- -0x123);}this['mouse_down']&&(this[_0x23a3c1(-0xe1,-0x12d)]['style']['visibility']='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x41ab6d){if(!this['show']||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType'][_0x1af90b(-0x1aa,-0x19c)],this['_onMouseMoveEvent'],this);this['mouse_down']&&this['mouse_move']&&this['redraw']();function _0xd04b83(_0x52fbec,_0x9d7d98){return _0x2e342d(_0x9d7d98- -0x209,_0x52fbec);}this['canvas'][_0xd04b83(0x10d,0x126)]['visibility']='visible',this['mouse_down']=![];function _0x1af90b(_0x40e3c9,_0x539ff0){return _0x2e342d(_0x40e3c9- -0x4ff,_0x539ff0);}this['mouse_move']=![];}[_0x3e2b6f(-0x3,0x47)](_0x56f9c2){function _0x3fe6b1(_0x15fb82,_0x54bc24){return _0x2e342d(_0x15fb82- -0x2ed,_0x54bc24);}this['clear'](),this['windData']=_0x56f9c2;function _0x5d8e83(_0x31a8e9,_0x2a7882){return _0x3e2b6f(_0x2a7882,_0x31a8e9-0x32b);}this[_0x3fe6b1(0x14,0x82)]['setDate'](_0x56f9c2),this[_0x3fe6b1(0x15,0x75)]();}[_0x2e342d(0x302,0x383)](){if(!this[_0x4de31a(0x437,0x42c)])return;function _0x4c44f9(_0x46d957,_0x1ed477){return _0x3e2b6f(_0x1ed477,_0x46d957-0x424);}function _0x4de31a(_0x2f4b6a,_0x44ac44){return _0x3e2b6f(_0x44ac44,_0x2f4b6a-0x3ce);}this[_0x4c44f9(0x444,0x428)][_0x4c44f9(0x492,0x43c)](this['options']),this['update']();}['update'](){if(this['_updateIng'])return;this[_0x5bfea7(0x2d7,0x266)]=!![];function _0x5bfea7(_0x234013,_0x18340a){return _0x3e2b6f(_0x234013,_0x18340a-0x2c3);}function _0x3325d1(_0x2482bb,_0x34708b){return _0x2e342d(_0x2482bb-0x1ed,_0x34708b);}if(this[_0x3325d1(0x463,0x429)])this['windField'][_0x3325d1(0x4d1,0x485)]();else{const _0x2178ff=this['windField'][_0x5bfea7(0x236,0x26a)]();this['_drawLines'](_0x2178ff);}this['_updateIng']=![];}['_drawLines'](_0x5f5414){this['_canvasParticles']=_0x5f5414,this['canvasContext']['globalCompositeOperation']=_0x273d95(-0x204,-0x1b3),this[_0x273d95(-0x28a,-0x23a)]['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x110748(-0xdf,-0x64)]),this[_0x110748(-0xe6,-0x10e)]['globalCompositeOperation']=_0x273d95(-0x278,-0x295),this['canvasContext'][_0x110748(-0x103,-0x154)]=0.9;function _0x110748(_0x695088,_0x256970){return _0x3e2b6f(_0x695088,_0x256970- -0x102);}const _0x467c66=this[_0x273d95(-0x28c,-0x257)]['scene'][_0x110748(-0xfa,-0x145)]!==Cesium['SceneMode']['SCENE3D'];function _0x273d95(_0x34d965,_0x492d8f){return _0x2e342d(_0x492d8f- -0x50f,_0x34d965);}const _0xb32f7a=this['canvasWidth']*0.25;if(this[_0x110748(-0x29,-0x78)])for(let _0x17b7ec=0x0,_0x10f79f=_0x5f5414['length'];_0x17b7ec<_0x10f79f;_0x17b7ec++){const _0x1946cc=_0x5f5414[_0x17b7ec],_0x3c84d6=this['_tomap'](_0x1946cc,_0x1946cc['lng'],_0x1946cc[_0x110748(-0xee,-0xfa)],_0x1946cc['alt']),_0x39736d=this['_tomap'](_0x1946cc,_0x1946cc['tlng'],_0x1946cc[_0x110748(-0x9,-0x8d)],_0x1946cc['talt']);if(!_0x3c84d6||!_0x39736d)continue;if(_0x467c66&&Math[_0x273d95(-0x202,-0x1e6)](_0x3c84d6[0x0]-_0x39736d[0x0])>=_0xb32f7a)continue;this[_0x273d95(-0x27c,-0x23a)][_0x110748(-0x115,-0x140)](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x110748(-0xcd,-0x78)]['getColor'](_0x1946cc[_0x110748(-0xcc,-0x6c)]),this['canvasContext'][_0x110748(-0xc0,-0x106)](_0x3c84d6[0x0],_0x3c84d6[0x1]),this['canvasContext'][_0x273d95(-0x249,-0x244)](_0x39736d[0x0],_0x39736d[0x1]),this['canvasContext'][_0x110748(-0x148,-0xe5)]();}else{this[_0x110748(-0x17c,-0x10e)]['beginPath'](),this[_0x273d95(-0x207,-0x23a)]['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x110748(-0x2f,-0x82)];for(let _0x476fb6=0x0,_0x464815=_0x5f5414[_0x273d95(-0x1d8,-0x1d8)];_0x476fb6<_0x464815;_0x476fb6++){const _0x5a7be9=_0x5f5414[_0x476fb6],_0x554882=this['_tomap'](_0x5a7be9,_0x5a7be9['lng'],_0x5a7be9[_0x110748(-0xb0,-0xfa)],_0x5a7be9['alt']),_0x2ef3f7=this['_tomap'](_0x5a7be9,_0x5a7be9[_0x273d95(-0x256,-0x263)],_0x5a7be9['tlat'],_0x5a7be9['talt']);if(!_0x554882||!_0x2ef3f7)continue;if(_0x467c66&&Math['abs'](_0x554882[0x0]-_0x2ef3f7[0x0])>=_0xb32f7a)continue;this['canvasContext']['moveTo'](_0x554882[0x0],_0x554882[0x1]),this['canvasContext']['lineTo'](_0x2ef3f7[0x0],_0x2ef3f7[0x1]);}this['canvasContext'][_0x110748(-0x7e,-0xe5)]();}}['_tomap'](_0x2941c7,_0x29df49,_0x58be34,_0x552e12){const _0x8cd619=Cesium['Cartesian3']['fromDegrees'](_0x29df49,_0x58be34,_0x552e12??this['fixedHeight']),_0x5ed051=this['_map']['scene'];if(_0x5ed051['mode']===Cesium[_0x5996b8(-0x2a6,-0x23d)]['SCENE3D']){const _0x162d3b=new Cesium['EllipsoidalOccluder'](_0x5ed051['globe'][_0x5996b8(-0x15d,-0x1df)],_0x5ed051['camera']['positionWC']),_0x10c94f=_0x162d3b['isPointVisible'](_0x8cd619);if(!_0x10c94f)return _0x2941c7['age']=0x0,null;}const _0x19513c=mars3d__namespace['PointTrans'][_0x5996b8(-0x158,-0x170)](this[_0x151dcc(0x35d,0x39c)][_0x151dcc(0x336,0x380)],_0x8cd619);function _0x151dcc(_0x402fe3,_0x1ed6d6){return _0x3e2b6f(_0x1ed6d6,_0x402fe3-0x386);}function _0x5996b8(_0x2574dd,_0x4ec76a){return _0x3e2b6f(_0x2574dd,_0x4ec76a- -0x20a);}return _0x19513c?[_0x19513c['x'],_0x19513c['y']]:null;}['clear'](){this['windField'][_0x207b57(-0x34,0x3a)]();function _0x207b57(_0x573aba,_0x1de487){return _0x2e342d(_0x573aba- -0x35a,_0x1de487);}delete this['windData'];}[_0x2e342d(0x2c9,0x321)](){this['worker']=new Worker(this[_0x210f14(-0xe2,-0xdb)]['worker']);function _0x210f14(_0x205621,_0x4b3f8b){return _0x3e2b6f(_0x4b3f8b,_0x205621- -0xa6);}function _0x3e3d08(_0x2d06ea,_0x533651){return _0x2e342d(_0x533651- -0x9,_0x2d06ea);}this[_0x210f14(-0x111,-0x163)][_0x210f14(-0xed,-0x99)]=_0x12d700=>{function _0x23b853(_0x3c2077,_0x4e2515){return _0x210f14(_0x3c2077-0x51c,_0x4e2515);}this['_drawLines'](_0x12d700[_0x23b853(0x437,0x3f8)][_0x23b853(0x508,0x524)]);function _0x39d71d(_0x33f45d,_0x1282db){return _0x3e3d08(_0x33f45d,_0x1282db- -0x3e8);}this['_updateIng2']=![];},this[_0x3e3d08(0x29b,0x2f8)]={'init':_0x26d636=>{function _0x1510d9(_0x44cb8,_0x460c9d){return _0x3e3d08(_0x460c9d,_0x44cb8- -0x1ce);}function _0x3cd975(_0x1b7bb4,_0x18fca4){return _0x210f14(_0x18fca4-0x454,_0x1b7bb4);}const _0x9f2070={};_0x9f2070['type']=_0x1510d9(0x16b,0x132),_0x9f2070[_0x1510d9(0xce,0xa3)]=_0x26d636,this['worker'][_0x1510d9(0x137,0x164)](_0x9f2070);},'setOptions':_0x4af4a9=>{function _0x2f26d8(_0x4362dd,_0x59e9c5){return _0x3e3d08(_0x4362dd,_0x59e9c5- -0x45e);}function _0x28fc5b(_0x41c7fc,_0x2a6d3e){return _0x3e3d08(_0x2a6d3e,_0x41c7fc- -0x16e);}const _0x1fc631={};_0x1fc631[_0x28fc5b(0x207,0x1f5)]=_0x28fc5b(0x1d8,0x1c3),_0x1fc631[_0x28fc5b(0x12e,0x141)]=_0x4af4a9,this['worker']['postMessage'](_0x1fc631);},'setDate':_0x2d4534=>{const _0x2988ae={};_0x2988ae[_0x21cc66(0x1e2,0x1d5)]=_0x243666(-0x169,-0x10d);function _0x21cc66(_0x510575,_0x261ba1){return _0x3e3d08(_0x261ba1,_0x510575- -0x193);}_0x2988ae[_0x21cc66(0x106,0xf9)]=_0x2d4534;function _0x243666(_0x5da904,_0x2df917){return _0x3e3d08(_0x5da904,_0x2df917- -0x3c9);}this[_0x243666(-0x1ae,-0x15c)]['postMessage'](_0x2988ae);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x45dbee={};_0x45dbee['type']='update';function _0x305848(_0x101932,_0x18f6e6){return _0x3e3d08(_0x101932,_0x18f6e6- -0x513);}this['worker'][_0x305848(-0x1f0,-0x20e)](_0x45dbee);},'clear':()=>{const _0x1d72fb={};function _0x41852c(_0x177422,_0x4ada7e){return _0x3e3d08(_0x177422,_0x4ada7e- -0x1dc);}_0x1d72fb['type']='clear',this[_0x41852c(0xa2,0x91)]['postMessage'](_0x1d72fb);}},this['windField']['init'](this['options']);}}mars3d__namespace[_0x3e2b6f(-0x3a,0x1b)][_0x2e342d(0x2ee,0x273)]('canvasWind',CanvasWindLayer),mars3d__namespace[_0x2e342d(0x2b7,0x28d)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x3e2b6f(-0x47,-0x4d)]=CanvasWindField,mars3d__namespace['Log'][_0x3e2b6f(0x83,0x9f)]('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports[_0x3e2b6f(-0xd6,-0x4d)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x2e342d(0x2d0,0x2ef)]=WindUtil;const _0x4515e3={};_0x4515e3[_0x2e342d(0x2fb,0x37d)]=!![],Object[_0x2e342d(0x2a7,0x307)](exports,'__esModule',_0x4515e3);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.10.0",
3
+ "version": "3.10.2",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.10.0"
8
+ "mars3d": "~3.10.2"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"