mars3d-wind 3.10.0 → 3.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mars3d-wind.js +3 -3
- 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.
|
|
5
|
-
* 编译日期:2025-
|
|
4
|
+
* 版本信息:v3.10.1
|
|
5
|
+
* 编译日期:2025-08-03 17:26
|
|
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(_0x2afb12,_0x201b15){function _0x2e724e(_0x441be3,_0x2a403f){return _0x2aa9(_0x441be3-0x115,_0x2a403f);}const _0x3524e8=_0x2afb12();function _0x5d5815(_0x583007,_0xfe8115){return _0x2aa9(_0x583007- -0x35c,_0xfe8115);}while(!![]){try{const _0x3719dc=parseInt(_0x2e724e(0x1f6,0x262))/0x1+-parseInt(_0x5d5815(-0x1fb,-0x24a))/0x2*(parseInt(_0x2e724e(0x224,0x22d))/0x3)+-parseInt(_0x2e724e(0x244,0x241))/0x4*(-parseInt(_0x2e724e(0x1d5,0x235))/0x5)+parseInt(_0x5d5815(-0x295,-0x292))/0x6*(parseInt(_0x5d5815(-0x24a,-0x25e))/0x7)+-parseInt(_0x5d5815(-0x2a3,-0x274))/0x8+-parseInt(_0x5d5815(-0x2c1,-0x241))/0x9*(-parseInt(_0x2e724e(0x1fb,0x21a))/0xa)+-parseInt(_0x2e724e(0x220,0x223))/0xb;if(_0x3719dc===_0x201b15)break;else _0x3524e8['push'](_0x3524e8['shift']());}catch(_0x2ec26b){_0x3524e8['push'](_0x3524e8['shift']());}}}(_0x4ce4,0xc32f2));function _interopNamespace(_0x480003){function _0x2a6f0f(_0x219fe5,_0x50d388){return _0x2aa9(_0x219fe5- -0x50,_0x50d388);}if(_0x480003&&_0x480003['__esModule'])return _0x480003;var _0x2a8c6b=Object['create'](null);return _0x480003&&Object[_0x2a6f0f(0x10d,0x18e)](_0x480003)['forEach'](function(_0x57d69f){function _0x57646c(_0xd6f477,_0x280c3b){return _0x2a6f0f(_0x280c3b-0x2b,_0xd6f477);}if(_0x57d69f!=='default'){var _0x1502be=Object[_0x57646c(0x11b,0xa8)](_0x480003,_0x57d69f);Object['defineProperty'](_0x2a8c6b,_0x57d69f,_0x1502be['get']?_0x1502be:{'enumerable':!![],'get':function(){return _0x480003[_0x57d69f];}});}}),_0x2a8c6b['default']=_0x480003,_0x2a8c6b;}function _0x2aa9(_0x4824a9,_0x2f2c94){const _0x4ce405=_0x4ce4();return _0x2aa9=function(_0x2aa925,_0x50a326){_0x2aa925=_0x2aa925-0x99;let _0x327c42=_0x4ce405[_0x2aa925];return _0x327c42;},_0x2aa9(_0x4824a9,_0x2f2c94);}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0x4510d9,_0x35990f){const _0x243809=_0x4510d9*Math['cos'](Cesium$2['Math']['toRadians'](_0x35990f));return _0x243809;}function getV(_0x2085ad,_0x2a56cb){const _0x36bfc8=_0x2085ad*Math[_0x2dc8a6(0x139,0x130)](Cesium$2[_0x2dc8a6(0xa8,0xe0)]['toRadians'](_0x2a56cb));function _0x22e9a2(_0x2b0021,_0x34be0b){return _0x2aa9(_0x2b0021- -0x1d0,_0x34be0b);}function _0x2dc8a6(_0x3b3a21,_0x3f81ba){return _0x2aa9(_0x3b3a21-0x2,_0x3f81ba);}return _0x36bfc8;}function getSpeed(_0x4db726,_0xf3b699){const _0x38ad07=Math['sqrt'](Math[_0x111e56(0x25,0x98)](_0x4db726,0x2)+Math[_0x111e56(0x25,0x2a)](_0xf3b699,0x2));function _0x22fb51(_0x16711a,_0x521476){return _0x2aa9(_0x16711a-0x306,_0x521476);}function _0x111e56(_0x2f5c93,_0x2a567d){return _0x2aa9(_0x2f5c93- -0x9f,_0x2a567d);}return _0x38ad07;}function _0x642db8(_0x406be0,_0x37bab0){return _0x2aa9(_0x406be0- -0x2b9,_0x37bab0);}function getDirection(_0x3e6ef8,_0x731e97){function _0x390223(_0x1e413e,_0x4d4f1d){return _0x2aa9(_0x1e413e- -0x3ba,_0x4d4f1d);}let _0x395ef9=Cesium$2['Math'][_0x390223(-0x2ef,-0x2a3)](Math[_0x390223(-0x268,-0x27b)](_0x731e97,_0x3e6ef8));function _0x303c5a(_0x8f5e11,_0x412b81){return _0x2aa9(_0x412b81-0x1f1,_0x8f5e11);}return _0x395ef9+=_0x395ef9<0x0?0x168:0x0,_0x395ef9;}const _0x3853e4={};_0x3853e4['__proto__']=null,_0x3853e4[_0x2a09d7(0x2a8,0x22b)]=getU,_0x3853e4['getV']=getV,_0x3853e4['getSpeed']=getSpeed,_0x3853e4[_0x2a09d7(0x306,0x295)]=getDirection;var WindUtil=_0x3853e4,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=_0x642db8(-0x14f,-0x13e),postProcessingPositionFragmentShader=_0x642db8(-0x20b,-0x1bf),renderParticlesFragmentShader=_0x2a09d7(0x2d9,0x35d),renderParticlesVertexShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a';const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static['getCalculateSpeedShader'](){const _0x42d957={};return _0x42d957['sources']=[calculateSpeedShader],new ShaderSource$1(_0x42d957);}static[_0x2a09d7(0x325,0x348)](){const _0x4152a6={};function _0x161505(_0x5ef9e2,_0x56fba7){return _0x642db8(_0x5ef9e2-0x558,_0x56fba7);}return _0x4152a6[_0x161505(0x3d1,0x37a)]=[updatePositionShader],new ShaderSource$1(_0x4152a6);}static[_0x2a09d7(0x29d,0x30f)](){const _0x172c58={};return _0x172c58['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x172c58);}static['getSegmentDrawFragmentShader'](){const _0x21b997={};function _0x532b73(_0x57a341,_0x5240e3){return _0x642db8(_0x5240e3- -0x1,_0x57a341);}return _0x21b997[_0x532b73(-0x17b,-0x188)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x21b997);}static[_0x2a09d7(0x2c8,0x2a0)](){const _0x3ad091={};return _0x3ad091['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x3ad091);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0x413d6e){this['commandType']=_0x413d6e[_0x206b84(0x4b8,0x45f)],this[_0x48bc36(0x11d,0x142)]=_0x413d6e['geometry'],this[_0x48bc36(0x1d7,0x164)]=_0x413d6e['attributeLocations'],this[_0x48bc36(0x169,0x1ce)]=_0x413d6e[_0x48bc36(0x199,0x1ce)],this['uniformMap']=_0x413d6e[_0x206b84(0x4a0,0x493)]||{},this[_0x206b84(0x4b3,0x4cd)]=_0x413d6e['vertexShaderSource'],this['fragmentShaderSource']=_0x413d6e['fragmentShaderSource'],this['rawRenderState']=_0x413d6e['rawRenderState'],this['framebuffer']=_0x413d6e['framebuffer'],this['outputTexture']=_0x413d6e['outputTexture'],this[_0x48bc36(0x9e,0x111)]=_0x413d6e['autoClear']??![],this[_0x206b84(0x3c4,0x41e)]=_0x413d6e['preExecute'],this[_0x206b84(0x3a3,0x425)]=!![];function _0x206b84(_0x9d8cb4,_0x444c24){return _0x642db8(_0x444c24-0x622,_0x9d8cb4);}this[_0x206b84(0x407,0x41c)]=undefined,this['clearCommand']=undefined,this[_0x206b84(0x47d,0x4a9)]=_0x413d6e['isDynamic']??(()=>!![]);function _0x48bc36(_0x1738c0,_0x11e4fc){return _0x2a09d7(_0x11e4fc- -0x1b4,_0x1738c0);}this['autoClear']&&(this[_0x206b84(0x44e,0x489)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x206b84(0x4b0,0x50c)],'pass':Pass$1['OPAQUE']}));}[_0x2a09d7(0x2b7,0x249)](_0x26af19){function _0x599622(_0x38574e,_0x268aef){return _0x2a09d7(_0x38574e-0xf8,_0x268aef);}function _0x1f2241(_0x526389,_0x5421e5){return _0x2a09d7(_0x526389- -0x4b8,_0x5421e5);}if(this['commandType']==='Draw'){const _0x33b915={};_0x33b915[_0x1f2241(-0x1cf,-0x1d0)]=_0x26af19,_0x33b915['geometry']=this[_0x599622(0x3ee,0x3ba)],_0x33b915['attributeLocations']=this[_0x599622(0x410,0x458)],_0x33b915['bufferUsage']=BufferUsage$1[_0x1f2241(-0x226,-0x208)];const _0x57cd8d=VertexArray$1['fromGeometry'](_0x33b915),_0x1b5b9b={};_0x1b5b9b['context']=_0x26af19,_0x1b5b9b['vertexShaderSource']=this[_0x1f2241(-0x162,-0x17a)],_0x1b5b9b['fragmentShaderSource']=this[_0x1f2241(-0x195,-0x140)],_0x1b5b9b['attributeLocations']=this['attributeLocations'];const _0x45b336=ShaderProgram['fromCache'](_0x1b5b9b),_0x28f9e4=RenderState[_0x1f2241(-0x1a2,-0x127)](this['rawRenderState']),_0xe32046={};return _0xe32046['owner']=this,_0xe32046['vertexArray']=_0x57cd8d,_0xe32046['primitiveType']=this['primitiveType'],_0xe32046['modelMatrix']=Matrix4['IDENTITY'],_0xe32046['renderState']=_0x28f9e4,_0xe32046['shaderProgram']=_0x45b336,_0xe32046[_0x599622(0x48d,0x411)]=this[_0x1f2241(-0x123,-0xfa)],_0xe32046['uniformMap']=this[_0x1f2241(-0x19c,-0x156)],_0xe32046['pass']=Pass$1['OPAQUE'],new DrawCommand(_0xe32046);}else{if(this['commandType']==='Compute'){const _0x5472ce={};return _0x5472ce[_0x1f2241(-0x164,-0xe9)]=this,_0x5472ce['fragmentShaderSource']=this['fragmentShaderSource'],_0x5472ce[_0x599622(0x414,0x488)]=this['uniformMap'],_0x5472ce['outputTexture']=this['outputTexture'],_0x5472ce['persists']=!![],new ComputeCommand(_0x5472ce);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x32dc78,_0x530c4b){function _0x5d23d0(_0x4d9792,_0x382e7a){return _0x642db8(_0x4d9792-0x8b,_0x382e7a);}function _0x2bc3ae(_0x151896,_0x2c33e8){return _0x642db8(_0x2c33e8-0xa8,_0x151896);}this['geometry']=_0x530c4b,defined(this[_0x2bc3ae(-0x153,-0x15e)])&&(this[_0x2bc3ae(-0x166,-0x15e)]['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x32dc78,'geometry':this[_0x2bc3ae(-0x91,-0x10d)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x2bc3ae(-0x106,-0x171)]}));}['update'](_0x4149f3){if(!this[_0x4f88fb(0x1c3,0x1a9)]())return;function _0xad8056(_0x49c777,_0x1db8c2){return _0x642db8(_0x49c777-0x513,_0x1db8c2);}if(!this['show']||!defined(_0x4149f3))return;!defined(this['commandToExecute'])&&(this[_0x4f88fb(0x136,0x193)]=this['createCommand'](_0x4149f3[_0xad8056(0x351,0x2e4)]));defined(this['preExecute'])&&this['preExecute']();if(!_0x4149f3['commandList']){console['warn']('frameState.commandList\x20is\x20undefined');return;}defined(this['clearCommand'])&&_0x4149f3[_0x4f88fb(0x16f,0x152)]['push'](this['clearCommand']);function _0x4f88fb(_0x423a40,_0x3ac439){return _0x2a09d7(_0x423a40- -0x16f,_0x3ac439);}defined(this['commandToExecute'])&&_0x4149f3['commandList'][_0xad8056(0x39b,0x352)](this[_0xad8056(0x30d,0x2cd)]);}['isDestroyed'](){return![];}['destroy'](){if(defined(this['commandToExecute'])){var _0x2ea2db;(_0x2ea2db=this['commandToExecute'][_0x128c59(0x1e1,0x249)])===null||_0x2ea2db===void 0x0||_0x2ea2db[_0x128c59(0x1ea,0x17e)](),this['commandToExecute'][_0x128c59(0x217,0x249)]=undefined;}function _0x128c59(_0x46109a,_0x209bbb){return _0x642db8(_0x209bbb-0x395,_0x46109a);}function _0x549dcd(_0x45fe99,_0x4c5981){return _0x2a09d7(_0x4c5981- -0x1a0,_0x45fe99);}return destroyObject(this);}}function deepMerge(_0x2f143d,_0x28fb0a){if(!_0x2f143d)return _0x28fb0a;if(!_0x28fb0a)return _0x2f143d;const _0x34aa10={..._0x28fb0a};function _0x275bd6(_0x3d96c1,_0x47c349){return _0x642db8(_0x47c349-0xd5,_0x3d96c1);}const _0x1dd009=_0x34aa10;for(const _0x3b5e37 in _0x2f143d){if(Object[_0x33fbfa(0x3cc,0x43b)][_0x275bd6(-0xca,-0x107)]['call'](_0x2f143d,_0x3b5e37)){const _0x51394e=_0x2f143d[_0x3b5e37],_0xff1507=_0x28fb0a[_0x3b5e37];if(Array['isArray'](_0x51394e)){_0x1dd009[_0x3b5e37]=_0x51394e['slice']();continue;}if(_0x51394e&&typeof _0x51394e===_0x33fbfa(0x36a,0x3cf)){_0x1dd009[_0x3b5e37]=deepMerge(_0x51394e,_0xff1507||{});continue;}_0x51394e!==undefined&&(_0x1dd009[_0x3b5e37]=_0x51394e);}}function _0x33fbfa(_0x3fe087,_0x13184c){return _0x642db8(_0x13184c-0x5d7,_0x3fe087);}return _0x1dd009;}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[_0x2a09d7(0x349,0x315)];class WindParticlesComputing{constructor(_0x4e6d5e,_0x24038c,_0x3799e7,_0x13534b,_0x3c933a){this[_0x212150(0xc0,0xec)]=_0x4e6d5e;function _0x212150(_0x4e8734,_0x2e0e4e){return _0x642db8(_0x2e0e4e-0x2ae,_0x4e8734);}function _0x2cf663(_0x137b2b,_0x34bb1a){return _0x2a09d7(_0x137b2b- -0x2ad,_0x34bb1a);}this[_0x212150(0x148,0x13e)]=_0x3799e7,this['viewerParameters']=_0x13534b,this['windData']=_0x24038c,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x41ef2f={};_0x41ef2f['scene']=_0x3c933a,_0x41ef2f['samplingWindow']=0x1,_0x41ef2f['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x41ef2f),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures'](),this['createComputingPrimitives']();}[_0x2a09d7(0x383,0x3cb)](){const _0x29bca5=()=>{function _0x1fb589(_0x1c19c4,_0x1a50db){return _0x2aa9(_0x1a50db-0x320,_0x1c19c4);}function _0x4fc629(_0x41999c,_0xc0db73){return _0x2aa9(_0x41999c-0x2bc,_0xc0db73);}this[_0x4fc629(0x442,0x400)]['lastFramesPerSecond']>0x14&&(this['frameRate']=this['frameRateMonitor'][_0x1fb589(0x3a5,0x3c5)],this[_0x1fb589(0x405,0x43c)]=0x3c/Math[_0x4fc629(0x390,0x350)](this['frameRate'],0x1));};function _0x1dc54e(_0x125626,_0x4a88e6){return _0x642db8(_0x4a88e6-0x31b,_0x125626);}_0x29bca5();const _0x165f7a=setInterval(_0x29bca5,0x3e8),_0x18f3b5=this['destroy'][_0x1dc54e(0x153,0x11a)](this);this['destroy']=()=>{clearInterval(_0x165f7a),_0x18f3b5();};}[_0x2a09d7(0x34e,0x326)](){const _0x545d0c={};_0x545d0c['minificationFilter']=TextureMinificationFilter$1['LINEAR'];function _0x4bec06(_0x3a4294,_0x41be38){return _0x2a09d7(_0x3a4294- -0xa1,_0x41be38);}_0x545d0c['magnificationFilter']=TextureMagnificationFilter$1[_0x5028ca(0x29e,0x2d0)];function _0x5028ca(_0x3d06ba,_0x1770c6){return _0x2a09d7(_0x1770c6- -0x2e,_0x3d06ba);}const _0x4a8aad={'context':this[_0x4bec06(0x248,0x2c2)],'width':this['windData'][_0x4bec06(0x1fa,0x1b5)],'height':this['windData']['height'],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1[_0x4bec06(0x267,0x24b)],'flipY':this[_0x5028ca(0x2be,0x30d)][_0x4bec06(0x2a0,0x297)]??![],'sampler':new Sampler$1(_0x545d0c)};this['windTextures']={'U':new Texture$1({..._0x4a8aad,'source':{'arrayBufferView':new Float32Array(this[_0x4bec06(0x1eb,0x1ff)]['u'][_0x4bec06(0x2ab,0x32e)])}}),'V':new Texture$1({..._0x4a8aad,'source':{'arrayBufferView':new Float32Array(this['windData']['v'][_0x5028ca(0x37c,0x31e)])}})};}['createParticlesTextures'](){function _0x5e3b69(_0x2de49d,_0x155206){return _0x642db8(_0x155206- -0x54,_0x2de49d);}function _0x16e2d7(_0x2e7294,_0x4de7e2){return _0x2a09d7(_0x2e7294-0x9,_0x4de7e2);}const _0x2b97d9={};_0x2b97d9['minificationFilter']=TextureMinificationFilter$1[_0x5e3b69(-0x29c,-0x225)],_0x2b97d9['magnificationFilter']=TextureMagnificationFilter$1[_0x5e3b69(-0x1f2,-0x225)];const _0x376570={'context':this[_0x5e3b69(-0x224,-0x216)],'width':this[_0x5e3b69(-0x1f3,-0x1c4)][_0x5e3b69(-0x1be,-0x1ce)],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1[_0x16e2d7(0x303,0x304)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x16e2d7(0x344,0x3bd)][_0x5e3b69(-0x252,-0x1ce)]*this[_0x5e3b69(-0x210,-0x1c4)][_0x5e3b69(-0x233,-0x1ce)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x2b97d9)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x376570),'currentParticlesPosition':new Texture$1(_0x376570),'nextParticlesPosition':new Texture$1(_0x376570),'postProcessingPosition':new Texture$1(_0x376570),'particlesSpeed':new Texture$1(_0x376570)};}[_0x642db8(-0x192,-0x122)](){function _0x4e100c(_0x543bbb,_0x1ff344){return _0x642db8(_0x1ff344-0x372,_0x543bbb);}function _0x433aea(_0x5970d3,_0x20fdaf){return _0x2a09d7(_0x20fdaf- -0x81,_0x5970d3);}Object['values'](this[_0x4e100c(0x207,0x1fe)])[_0x4e100c(0x145,0x1ae)](_0x497fe5=>_0x497fe5[_0x433aea(0x234,0x213)]());}[_0x2a09d7(0x393,0x3fa)](){function _0x3a56db(_0x2c7a1b,_0x53767c){return _0x2a09d7(_0x2c7a1b- -0x1fa,_0x53767c);}function _0x3de368(_0x17ce55,_0x2fb328){return _0x2a09d7(_0x2fb328- -0x3ee,_0x17ce55);}this[_0x3de368(-0xc,-0x85)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this[_0x3a56db(0x9c,0xdc)]['V'],'uRange':()=>new Cartesian2$1(this[_0x3de368(-0x173,-0x162)]['u'][_0x3a56db(0xba,0xc2)],this[_0x3a56db(0x92,0xec)]['u']['max']),'vRange':()=>new Cartesian2$1(this['windData']['v']['min'],this['windData']['v'][_0x3de368(-0x100,-0x128)]),'speedRange':()=>new Cartesian2$1(this['windData']['speed'][_0x3de368(-0x165,-0x13a)],this['windData']['speed']['max']),'currentParticlesPosition':()=>this[_0x3de368(-0xb3,-0xb7)]['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x357a98(_0x4926ae,_0x26a472){return _0x3a56db(_0x26a472- -0x61,_0x4926ae);}function _0x1aabcb(_0x230977,_0x50d070){return _0x3a56db(_0x50d070- -0xcc,_0x230977);}return(this[_0x357a98(0xc1,0x136)]['pixelSize']+0x32)*this[_0x357a98(0x13b,0xe0)]['speedFactor'];},'frameRateAdjustment':()=>this[_0x3a56db(0x114,0x148)],'dimension':()=>new Cartesian2$1(this['windData'][_0x3de368(-0x1d1,-0x153)],this['windData']['height']),'minimum':()=>new Cartesian2$1(this[_0x3de368(-0x17c,-0x162)][_0x3a56db(0x157,0x184)][_0x3a56db(0x12e,0x11a)],this[_0x3a56db(0x92,0x4b)]['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds']['east'],this[_0x3a56db(0x92,0xdc)]['bounds'][_0x3de368(-0x178,-0x121)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this['particlesTextures']['particlesSpeed'],'preExecute':()=>{function _0x1c8166(_0x578000,_0x210871){return _0x3a56db(_0x578000- -0x1c2,_0x210871);}function _0x279d9e(_0x2e72e5,_0x1e08f6){return _0x3a56db(_0x1e08f6-0x2d9,_0x2e72e5);}const _0x3bc19f=this['particlesTextures']['previousParticlesPosition'];this['particlesTextures']['previousParticlesPosition']=this[_0x279d9e(0x419,0x416)][_0x1c8166(-0x65,0x2)],this['particlesTextures']['currentParticlesPosition']=this[_0x279d9e(0x450,0x416)]['postProcessingPosition'],this[_0x1c8166(-0x85,-0x7)][_0x1c8166(-0xbc,-0x65)]=_0x3bc19f,this[_0x1c8166(-0x53,-0x78)]['calculateSpeed']['commandToExecute']&&(this[_0x279d9e(0x48a,0x448)]['calculateSpeed']['commandToExecute'][_0x279d9e(0x3ce,0x39f)]=this[_0x1c8166(-0x85,-0xb9)]['particlesSpeed']);},'isDynamic':()=>this['options']['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':_0x3de368(-0xa4,-0xf3),'uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0x3a56db(0x15d,0x1be)],'particlesSpeed':()=>this['particlesTextures'][_0x3de368(-0xc5,-0x5f)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures']['nextParticlesPosition'],'preExecute':()=>{function _0xca1819(_0x52eb79,_0x76b5f1){return _0x3a56db(_0x52eb79-0x5b,_0x76b5f1);}function _0x5c9449(_0x1d557b,_0x4c7b29){return _0x3de368(_0x1d557b,_0x4c7b29-0x18f);}this[_0xca1819(0x1ca,0x14e)][_0x5c9449(-0x4a,0x3a)]['commandToExecute']&&(this['primitives'][_0xca1819(0xfa,0x135)][_0xca1819(0x106,0x170)]['outputTexture']=this['particlesTextures'][_0xca1819(0x132,0xc7)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x3de368(-0x98,-0xb7)][_0x3de368(-0x18d,-0x11d)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this[_0x3de368(-0xde,-0x5d)]['latRange'],'dataLonRange':()=>new Cartesian2$1(this['windData']['bounds']['west'],this[_0x3a56db(0x92,0xc7)][_0x3de368(-0x114,-0x9d)]['east']),'dataLatRange':()=>new Cartesian2$1(this[_0x3a56db(0x92,0x69)][_0x3de368(-0x54,-0x9d)][_0x3a56db(0xb9,0x41)],this[_0x3de368(-0x1e5,-0x162)]['bounds']['north']),'randomCoefficient':function(){function _0x41d243(_0x37849b,_0xf2b404){return _0x3de368(_0x37849b,_0xf2b404-0x585);}return Math[_0x41d243(0x411,0x426)]();},'dropRate':()=>this[_0x3de368(-0xf6,-0xb3)][_0x3a56db(0xa8,0x8f)],'dropRateBump':()=>this['options']['dropRateBump'],'useViewerBounds':()=>this['options']['useViewerBounds']},'fragmentShaderSource':ShaderManager[_0x3a56db(0xce,0x14a)](),'outputTexture':this['particlesTextures'][_0x3a56db(0x106,0x135)],'preExecute':()=>{function _0x4e8e33(_0x4f3920,_0x4635c7){return _0x3a56db(_0x4f3920-0x304,_0x4635c7);}function _0x39e92b(_0x1dcc0a,_0x36c781){return _0x3de368(_0x1dcc0a,_0x36c781-0x299);}this['primitives']['postProcessingPosition'][_0x39e92b(0x10d,0x150)]&&(this['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=this[_0x4e8e33(0x441,0x3ff)][_0x39e92b(0x1d6,0x1ab)]);},'isDynamic':()=>this[_0x3de368(-0xe8,-0xb3)]['dynamic']})};}[_0x2a09d7(0x315,0x37c)](){this[_0x65a700(-0x188,-0x1bc)]['U'][_0x542729(-0x297,-0x27c)](),this['windTextures']['V'][_0x542729(-0x2b8,-0x27c)]();function _0x65a700(_0xba780d,_0x6a8523){return _0x2a09d7(_0xba780d- -0x41e,_0x6a8523);}function _0x542729(_0x42732d,_0x43fcb5){return _0x642db8(_0x43fcb5- -0x65,_0x42732d);}this['createWindTextures']();}[_0x2a09d7(0x2df,0x291)](_0x44adce){function _0x4286a2(_0x8a5240,_0x313f23){return _0x2a09d7(_0x313f23-0x187,_0x8a5240);}this[_0x4286a2(0x403,0x413)]=_0x44adce,this['reCreateWindTextures']();}[_0x642db8(-0x216,-0x1ae)](_0xb144da){const _0x2c74a9=_0xb144da['flipY']!==undefined&&_0xb144da['flipY']!==this[_0x10064f(0x439,0x453)]['flipY'];function _0x10064f(_0x2919d3,_0xb04cba){return _0x642db8(_0xb04cba-0x5c3,_0x2919d3);}this[_0x4d6a1a(-0x20a,-0x27c)]=deepMerge(_0xb144da,this[_0x10064f(0x457,0x453)]);function _0x4d6a1a(_0xd6ed74,_0x1a29d2){return _0x642db8(_0xd6ed74- -0x9a,_0x1a29d2);}_0x2c74a9&&this['reCreateWindTextures']();}[_0x642db8(-0x180,-0xfe)](_0x1e1133){function _0x116706(_0xf1d077,_0x53f093){return _0x642db8(_0x53f093- -0xc5,_0xf1d077);}const {array:_0xb18a88}=_0x1e1133;let {min:_0x454361,max:_0x3507a4}=_0x1e1133;function _0x35f858(_0x59947d,_0xc5e6ed){return _0x2a09d7(_0xc5e6ed-0x1ae,_0x59947d);}const _0x2f6f4e=new Float32Array(_0xb18a88['length']);_0x454361===undefined&&(console['warn'](_0x116706(-0x181,-0x1d9)),_0x454361=Math['min'](..._0xb18a88));_0x3507a4===undefined&&(console['warn'](_0x35f858(0x4c2,0x52d)),_0x3507a4=Math['max'](..._0xb18a88));const _0x1890ee=Math['max'](Math['abs'](_0x454361),Math[_0x116706(-0x1db,-0x1e3)](_0x3507a4));for(let _0x1131a9=0x0;_0x1131a9<_0xb18a88[_0x35f858(0x553,0x4d8)];_0x1131a9++){const _0x50a7e9=_0xb18a88[_0x1131a9]/_0x1890ee;_0x2f6f4e[_0x1131a9]=_0x50a7e9;}return _0x2f6f4e;}[_0x642db8(-0x217,-0x289)](){Object['values'](this[_0x2432c2(-0x16d,-0x16a)])['forEach'](_0xde4e8c=>_0xde4e8c['destroy']()),Object['values'](this[_0x437188(-0x258,-0x1d3)])['forEach'](_0x4f5489=>_0x4f5489['destroy']());function _0x437188(_0x247498,_0x9e2478){return _0x642db8(_0x247498- -0xe4,_0x9e2478);}Object['values'](this[_0x2432c2(-0x112,-0x97)])['forEach'](_0x109115=>_0x109115['destroy']());function _0x2432c2(_0xd7f761,_0x17b800){return _0x2a09d7(_0x17b800- -0x400,_0xd7f761);}this['frameRateMonitor']['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x642db8(-0x162,-0xee)];class WindParticlesRendering{constructor(_0x41c013,_0x5df346,_0x30b50b,_0x450266){this[_0xd9b488(-0x1f3,-0x215)]=_0x41c013,this['options']=_0x5df346,this[_0xd9b488(-0x14b,-0xcc)]=_0x30b50b,this['computing']=_0x450266;function _0xd9b488(_0x2edc35,_0x5f0193){return _0x2a09d7(_0x2edc35- -0x4dc,_0x5f0193);}function _0x436cf2(_0x5788ca,_0x1efb90){return _0x642db8(_0x5788ca- -0xad,_0x1efb90);}(typeof this['options'][_0xd9b488(-0x1ab,-0x1da)]!==_0x436cf2(-0x24e,-0x218)||this['options']['particlesTextureSize']<=0x0)&&(console['error'](_0x436cf2(-0x1fe,-0x189)),this[_0x436cf2(-0x21d,-0x26f)][_0xd9b488(-0x1ab,-0x20b)]=0x100),this[_0xd9b488(-0x238,-0x1b7)]=this[_0xd9b488(-0x1cc,-0x1cd)](),this['textures']=this[_0x436cf2(-0x2ab,-0x250)](),this['framebuffers']=this[_0xd9b488(-0x19f,-0x19b)](),this['primitives']=this['createPrimitives']();}[_0x2a09d7(0x2ad,0x2d5)](){const _0x184294={};_0x184294['context']=this[_0x5f35d9(0xae,0x36)],_0x184294[_0x5f35d9(0x60,0x24)]=this[_0x53c2bd(-0x191,-0x190)]['drawingBufferWidth'],_0x184294['height']=this['context']['drawingBufferHeight'],_0x184294['pixelFormat']=PixelFormat['RGBA'],_0x184294[_0x53c2bd(-0xf9,-0xec)]=PixelDatatype[_0x5f35d9(0x138,0xe8)];const _0x634b0d=_0x184294;function _0x5f35d9(_0x467eb3,_0x52ea4c){return _0x2a09d7(_0x467eb3- -0x23b,_0x52ea4c);}const _0x51e7a3={};_0x51e7a3['context']=this['context'],_0x51e7a3['width']=this[_0x5f35d9(0xae,0xf0)][_0x53c2bd(-0x1d9,-0x229)],_0x51e7a3['height']=this['context'][_0x53c2bd(-0x109,-0xc6)];function _0x53c2bd(_0x4656e2,_0x4cd651){return _0x642db8(_0x4656e2-0x31,_0x4cd651);}_0x51e7a3[_0x5f35d9(0xd6,0x67)]=PixelFormat[_0x5f35d9(0x153,0x133)],_0x51e7a3['pixelDatatype']=PixelDatatype['UNSIGNED_INT'];const _0x60c80e=_0x51e7a3;return{'segmentsColor':new Texture(_0x634b0d),'segmentsDepth':new Texture(_0x60c80e)};}[_0x642db8(-0x16e,-0x1ad)](){const _0x302974={};_0x302974['context']=this['context'],_0x302974[_0x5a6474(-0x16f,-0x194)]=[this['textures']['segmentsColor']];function _0x5a6474(_0x18d94b,_0x118b2c){return _0x2a09d7(_0x118b2c- -0x4cc,_0x18d94b);}function _0x2c6e0f(_0x3639bf,_0x28e337){return _0x2a09d7(_0x3639bf-0xe4,_0x28e337);}return _0x302974[_0x5a6474(-0x106,-0x151)]=this['textures'][_0x5a6474(-0x179,-0x1eb)],{'segments':new Framebuffer(_0x302974)};}['destoryRenderingFramebuffers'](){function _0x1dd386(_0x30f43a,_0x5e1bd3){return _0x2a09d7(_0x30f43a- -0x497,_0x5e1bd3);}Object[_0x1dd386(-0x151,-0x16e)](this['framebuffers'])['forEach'](_0x4709ef=>{_0x4709ef['destroy']();});}[_0x2a09d7(0x310,0x2df)](){const _0x132d91=new Float32Array(this['options']['colors']['flatMap'](_0x170161=>{function _0x16704d(_0x4e306b,_0x24b3b0){return _0x2aa9(_0x4e306b- -0x11,_0x24b3b0);}const _0x403d29=Color$1['fromCssColorString'](_0x170161);return[_0x403d29['red'],_0x403d29['green'],_0x403d29[_0x16704d(0xe2,0xbe)],_0x403d29['alpha']];})),_0x5f53a5={};function _0x443b0a(_0x3a3169,_0x4f0899){return _0x2a09d7(_0x3a3169-0x187,_0x4f0899);}_0x5f53a5['minificationFilter']=TextureMinificationFilter['LINEAR'];function _0x324486(_0x342136,_0x3ca5c9){return _0x642db8(_0x3ca5c9- -0x40,_0x342136);}return _0x5f53a5['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x5f53a5['wrapS']=TextureWrap[_0x443b0a(0x4bc,0x4be)],_0x5f53a5['wrapT']=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this['context'],'width':this[_0x324486(-0x20a,-0x1b0)]['colors']['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x5f53a5),'source':{'width':this['options'][_0x324486(-0x1b6,-0x1d1)]['length'],'height':0x1,'arrayBufferView':_0x132d91}});}['createSegmentsGeometry'](){const _0x3cc034=0x4,_0xfc36e4=this['options']['particlesTextureSize'];let _0x4ee51d=[];for(let _0x87bebc=0x0;_0x87bebc<_0xfc36e4;_0x87bebc++){for(let _0x53e571=0x0;_0x53e571<_0xfc36e4;_0x53e571++){for(let _0x29a196=0x0;_0x29a196<_0x3cc034;_0x29a196++){_0x4ee51d[_0x4ac4f4(0x1aa,0x21c)](_0x87bebc/_0xfc36e4),_0x4ee51d['push'](_0x53e571/_0xfc36e4);}}}_0x4ee51d=new Float32Array(_0x4ee51d);function _0x4ac4f4(_0x63cf0b,_0x1303e8){return _0x2a09d7(_0x63cf0b- -0x189,_0x1303e8);}const _0x2f441c=this[_0x4ac4f4(0x1b2,0x1c7)][_0x290454(0x11,-0x6e)]**0x2;function _0x290454(_0x1e9abe,_0x447016){return _0x2a09d7(_0x447016- -0x39f,_0x1e9abe);}let _0x51b122=[];for(let _0xbc1b52=0x0;_0xbc1b52<_0x2f441c;_0xbc1b52++){_0x51b122['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x51b122=new Float32Array(_0x51b122);let _0x3df3e7=[];for(let _0x25f973=0x0,_0x42079d=0x0;_0x25f973<_0x2f441c;_0x25f973++){_0x3df3e7['push'](_0x42079d+0x0,_0x42079d+0x1,_0x42079d+0x2,_0x42079d+0x2,_0x42079d+0x1,_0x42079d+0x3),_0x42079d+=_0x3cc034;}_0x3df3e7=new Uint32Array(_0x3df3e7);const _0x3b1ded={};_0x3b1ded['componentDatatype']=ComponentDatatype['FLOAT'],_0x3b1ded[_0x4ac4f4(0x1ec,0x1c6)]=0x2,_0x3b1ded[_0x290454(-0x8b,-0x59)]=_0x4ee51d;const _0x3a403c={};_0x3a403c['componentDatatype']=ComponentDatatype['FLOAT'],_0x3a403c[_0x290454(-0x26,-0x2a)]=0x3,_0x3a403c[_0x4ac4f4(0x1bd,0x1c7)]=_0x51b122;const _0x428638=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x3b1ded),'normal':new GeometryAttribute(_0x3a403c)}),'indices':_0x3df3e7});return _0x428638;}['createRawRenderState'](_0x2958b1){const _0xdbff6={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x2958b1};return Appearance['getDefaultRenderState'](!![],![],_0xdbff6);}['createPrimitives'](){const _0x2263aa={};_0x2263aa['st']=0x0,_0x2263aa['normal']=0x1;const _0x5ecc2e={};function _0x4148f0(_0x4269cb,_0x269e09){return _0x642db8(_0x4269cb- -0x6b,_0x269e09);}_0x5ecc2e[_0x4148f0(-0x24f,-0x2cf)]=!![];function _0x44054c(_0x171e3f,_0x1948cf){return _0x2a09d7(_0x171e3f- -0x545,_0x1948cf);}const _0x3fb27f={};_0x3fb27f[_0x4148f0(-0x24f,-0x1fb)]=!![],_0x3fb27f[_0x44054c(-0x2b7,-0x262)]=WebGLRenderingContext['FUNC_ADD'],_0x3fb27f[_0x44054c(-0x1de,-0x1ed)]=WebGLRenderingContext[_0x44054c(-0x26f,-0x294)],_0x3fb27f['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x453efb={};_0x453efb[_0x4148f0(-0x1e7,-0x171)]=undefined,_0x453efb['depthTest']=_0x5ecc2e,_0x453efb[_0x4148f0(-0x18d,-0x1e9)]=!![],_0x453efb[_0x44054c(-0x282,-0x2ac)]=_0x3fb27f;const _0x2da19b=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x2263aa,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType[_0x44054c(-0x24e,-0x27f)],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures']['previousParticlesPosition'],'currentParticlesPosition':()=>this[_0x4148f0(-0x232,-0x248)][_0x4148f0(-0x1df,-0x1bc)]['currentParticlesPosition'],'postProcessingPosition':()=>this['computing']['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this[_0x44054c(-0x261,-0x23e)]['particlesTextures'][_0x4148f0(-0x187,-0x128)],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this[_0x4148f0(-0x272,-0x215)],'domain':()=>{var _0x1d2ec2,_0x5980d7;function _0x3b204f(_0x3c1d76,_0x3ac336){return _0x4148f0(_0x3c1d76-0x5a7,_0x3ac336);}function _0x4e4111(_0x290d30,_0x4ac6df){return _0x4148f0(_0x4ac6df-0x1c6,_0x290d30);}const _0x3ef0e9=new Cartesian2(((_0x1d2ec2=this[_0x3b204f(0x3cc,0x43e)][_0x4e4111(-0xef,-0xa1)])===null||_0x1d2ec2===void 0x0?void 0x0:_0x1d2ec2['min'])??this['computing']['windData'][_0x3b204f(0x34d,0x318)]['min'],((_0x5980d7=this['options']['domain'])===null||_0x5980d7===void 0x0?void 0x0:_0x5980d7[_0x4e4111(-0x2a,-0x8a)])??this['computing']['windData'][_0x3b204f(0x34d,0x3c8)][_0x4e4111(-0x33,-0x8a)]);return _0x3ef0e9;},'displayRange':()=>{var _0x16a2fb,_0x1ecab2;function _0x5a9a57(_0xdc397b,_0x4feb55){return _0x4148f0(_0xdc397b-0x12f,_0x4feb55);}function _0x253a76(_0x563f0d,_0x1eb195){return _0x44054c(_0x1eb195-0x1c,_0x563f0d);}const _0x59c22e=new Cartesian2(((_0x16a2fb=this['options']['displayRange'])===null||_0x16a2fb===void 0x0?void 0x0:_0x16a2fb['min'])??this['computing'][_0x253a76(-0x26b,-0x29d)]['speed']['min'],((_0x1ecab2=this['options']['displayRange'])===null||_0x1ecab2===void 0x0?void 0x0:_0x1ecab2[_0x5a9a57(-0x121,-0x148)])??this['computing']['windData']['speed'][_0x253a76(-0x2c5,-0x263)]);return _0x59c22e;},'particleHeight':()=>this['options']['fixedHeight']||0x0,'aspect':()=>this['context'][_0x4148f0(-0x275,-0x27e)]/this['context']['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{function _0x20b945(_0xec11c7,_0x12c16f){return _0x44054c(_0x12c16f-0x53e,_0xec11c7);}const _0x1e77ae={};_0x1e77ae[_0x20b945(0x2bc,0x2ad)]=0x1,_0x1e77ae['max']=0x2;const _0x5c7739=this[_0x236b6c(0x298,0x244)]['lineWidth']||_0x1e77ae;function _0x236b6c(_0x19a635,_0x3c906b){return _0x44054c(_0x19a635-0x4a2,_0x3c906b);}return new Cartesian2(_0x5c7739['min'],_0x5c7739[_0x20b945(0x24a,0x2bf)]);},'lineLength':()=>{function _0x209cc1(_0x4fd12d,_0x380eff){return _0x44054c(_0x4fd12d-0x504,_0x380eff);}const _0x4649ce={};_0x4649ce[_0x209cc1(0x273,0x2da)]=0x14;function _0x2b067b(_0x41cde1,_0x404226){return _0x44054c(_0x41cde1-0x611,_0x404226);}_0x4649ce[_0x2b067b(0x392,0x3b4)]=0x64;const _0x585496=this['options']['lineLength']||_0x4649ce;return new Cartesian2(_0x585496['min'],_0x585496[_0x209cc1(0x285,0x2e6)]);},'is3D':()=>this['viewerParameters'][_0x44054c(-0x1d5,-0x1f0)]===SceneMode[_0x44054c(-0x1d6,-0x1a6)],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x44054c(-0x2a8,-0x2f1)](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x453efb)}),_0xb6cbb3={};return _0xb6cbb3[_0x44054c(-0x2a9,-0x2fc)]=_0x2da19b,_0xb6cbb3;}['onParticlesTextureSizeChange'](){const _0x2a2091=this['createSegmentsGeometry']();this['primitives']['segments']['geometry']=_0x2a2091;const _0x1889ea={};function _0x37bd47(_0x4d1439,_0x94c34f){return _0x642db8(_0x94c34f-0x59f,_0x4d1439);}_0x1889ea['context']=this['context'],_0x1889ea[_0x37bd47(0x3f6,0x3ea)]=_0x2a2091;function _0x11bfae(_0x5d2633,_0x44153e){return _0x642db8(_0x5d2633-0x609,_0x44153e);}_0x1889ea['attributeLocations']=this['primitives']['segments'][_0x37bd47(0x3c3,0x40c)],_0x1889ea['bufferUsage']=BufferUsage[_0x37bd47(0x3a0,0x386)];const _0x5754a7=VertexArray[_0x37bd47(0x3a8,0x407)](_0x1889ea);this[_0x37bd47(0x4a9,0x45d)]['segments']['commandToExecute']&&(this[_0x11bfae(0x4c7,0x53e)]['segments']['commandToExecute'][_0x37bd47(0x47b,0x432)]=_0x5754a7);}['onColorTableChange'](){this[_0x11aaf9(0x2c,0x16)][_0x21a076(0x164,0x131)]();function _0x11aaf9(_0x5ba2e2,_0x48731c){return _0x642db8(_0x5ba2e2-0x233,_0x48731c);}function _0x21a076(_0xf0eed5,_0x44e60a){return _0x2a09d7(_0xf0eed5- -0x130,_0x44e60a);}this[_0x21a076(0x174,0x15f)]=this[_0x21a076(0x1e0,0x15b)]();}['updateOptions'](_0xfcc6c5){const _0x3fbcbe=_0xfcc6c5['colors']&&JSON['stringify'](_0xfcc6c5[_0x4baf0e(0x2e4,0x2a3)])!==JSON['stringify'](this[_0x48ae68(0x22f,0x24f)]['colors']);this[_0x4baf0e(0x2ff,0x2c4)]=deepMerge(_0xfcc6c5,this[_0x48ae68(0x22f,0x210)]);function _0x48ae68(_0x2877ae,_0x4471a7){return _0x2a09d7(_0x2877ae- -0x10c,_0x4471a7);}function _0x4baf0e(_0x21c507,_0x26d05a){return _0x2a09d7(_0x26d05a- -0x77,_0x21c507);}_0x3fbcbe&&this[_0x4baf0e(0x25b,0x260)]();}[_0x642db8(-0x217,-0x1ca)](){function _0x3f21ff(_0x190c14,_0x4219ce){return _0x2a09d7(_0x190c14- -0x2dc,_0x4219ce);}Object[_0x3aea68(-0x7a,-0x28)](this[_0x3aea68(-0xf,-0x19)])['forEach'](_0x473113=>{function _0x35a1d3(_0x4a851e,_0x5e19e9){return _0x3f21ff(_0x5e19e9-0x454,_0x4a851e);}_0x473113[_0x35a1d3(0x3be,0x40c)]();});function _0x3aea68(_0x2e2d3c,_0x2cec10){return _0x642db8(_0x2cec10-0x13d,_0x2e2d3c);}Object[_0x3f21ff(0x6a,0xf0)](this['primitives'])[_0x3f21ff(0xb,-0x79)](_0x4c1865=>{_0x4c1865['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x642db8(-0x162,-0xe0)];class WindParticleSystem{constructor(_0x469d9f,_0x2a0e7e,_0x3d88d1,_0x2bc21f,_0x101035){this['context']=_0x469d9f;function _0x2195d5(_0x246216,_0x3f90a9){return _0x2a09d7(_0x3f90a9- -0x2ac,_0x246216);}this[_0x2195d5(0x87,0x8f)]=_0x3d88d1,this['viewerParameters']=_0x2bc21f,this['computing']=new WindParticlesComputing(_0x469d9f,_0x2a0e7e,_0x3d88d1,_0x2bc21f,_0x101035),this[_0x2195d5(0xc3,0x7a)]=new WindParticlesRendering(_0x469d9f,_0x3d88d1,_0x2bc21f,this['computing']);function _0x29260c(_0x6c49c7,_0x235d33){return _0x2a09d7(_0x235d33- -0xde,_0x6c49c7);}this['clearFramebuffers']();}[_0x2a09d7(0x30b,0x381)](){function _0x11e056(_0x91103c,_0x18dc6a){return _0x2a09d7(_0x91103c- -0x2b4,_0x18dc6a);}const _0x36fbb4=[this['computing'][_0x57fa3e(0x39b,0x419)]['calculateSpeed'],this['computing']['primitives'][_0x57fa3e(0x2cb,0x247)],this['computing'][_0x11e056(0xb5,0x12d)]['postProcessingPosition'],this[_0x57fa3e(0x358,0x3d9)]['primitives'][_0x57fa3e(0x2ce,0x274)]];function _0x57fa3e(_0xb68742,_0x73cf51){return _0x2a09d7(_0xb68742-0x32,_0x73cf51);}return _0x36fbb4;}['clearFramebuffers'](){function _0x5e2896(_0x3c819e,_0x5d30a1){return _0x642db8(_0x3c819e-0x180,_0x5d30a1);}const _0xc6f006=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass[_0x5e2896(0x33,0x38)]});function _0x28bacb(_0x5bdcec,_0x190906){return _0x642db8(_0x190906-0x435,_0x5bdcec);}Object['keys'](this['rendering']['framebuffers'])[_0x28bacb(0x2ef,0x271)](_0x2eb3a7=>{_0xc6f006['framebuffer']=this['rendering']['framebuffers'][_0x2eb3a7];function _0x57555b(_0x10aa15,_0x49e9f2){return _0x5e2896(_0x49e9f2- -0x1c9,_0x10aa15);}_0xc6f006['execute'](this[_0x57555b(-0x211,-0x20b)]);});}[_0x2a09d7(0x309,0x317)](_0x11c847){let _0x481835=![];_0x11c847[_0x2ed262(0x17c,0x17f)]&&this['options']['particlesTextureSize']!==_0x11c847[_0x7e0e0d(0x38f,0x3e4)]&&(_0x481835=!![]);function _0x7e0e0d(_0x26acef,_0x291de1){return _0x642db8(_0x291de1-0x55e,_0x26acef);}const _0x124b2b=deepMerge(_0x11c847,this['options']);if(_0x124b2b['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0x124b2b;function _0x2ed262(_0x2bacf9,_0x278506){return _0x642db8(_0x2bacf9-0x2f6,_0x278506);}this['rendering']['updateOptions'](_0x11c847),this['computing']['updateOptions'](_0x11c847),_0x481835&&(this['computing'][_0x7e0e0d(0x3dd,0x3cc)](),this['computing']['createParticlesTextures'](),this['rendering']['onParticlesTextureSizeChange']());}['applyViewerParameters'](_0x84cb39){function _0x3d2dcf(_0xa409f0,_0x2d0c5c){return _0x2a09d7(_0xa409f0- -0x4f9,_0x2d0c5c);}this['viewerParameters']=_0x84cb39,this['computing']['viewerParameters']=_0x84cb39,this['rendering'][_0x3d2dcf(-0x168,-0x154)]=_0x84cb39;}['destroy'](){function _0x24e341(_0x13f942,_0x4de483){return _0x642db8(_0x4de483-0x422,_0x13f942);}this[_0x24e341(0x266,0x25b)][_0x54a44c(0x338,0x37a)]();function _0x54a44c(_0x48e838,_0x1114c7){return _0x2a09d7(_0x1114c7-0xe6,_0x48e838);}this[_0x54a44c(0x399,0x40c)]['destroy']();}}function _0x4ce4(){const _0x5293bb=['getUpdatePositionShader','rendering','_setOptionsHook','west','sin','length','processWindData','xmax','rectangle','wheel','viewport','positionWC','particlesTextureSize','isDynamic','push','visible','CLAMP_TO_EDGE','MIN_VALUE','particlesTextures','colorTextures','fromDegrees','_canvasParticles','options','_colorRamp','createRenderingFramebuffers','vertexArray','frameRate','color','flipY','rgb(206,255,255)','log','atan2','morphComplete','values','mouse_down','BaseLayer','Cesium','particleSystem','speedRate','array','refreshTimer','createWindTextures','keys','lineWidth','bounds','onmessage','2214RBspvS','owner','framebuffers','vertexShaderSource','currentParticlesPosition','frameTime','getUVByXY','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','postMessage','#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','Log','OPAQUE','shaderProgram','resize','_removedHook','_calcUV','toWindowCoordinates','pickEllipsoid','maxAge','_updateIng','blendFuncSource','_calc_speedRate','primitives','xmin','particles','position','_onMapWhellEvent','fixedHeight','SCENE3D','sceneMode','drawingBufferHeight','init','UNSIGNED_BYTE','worker','componentsPerAttribute','_addedHook','all','frameRateMonitor','_onMouseDownEvent','camera','depthTexture','canvas','initWorker','dropRateBump','max\x20is\x20undefined,\x20calculate\x20max','rows','pixelDatatype','primitiveType','initFrameRate','lonRange','pixelSize','mouse_move','update','age','depthMask','_maxAge','bindEvent','stroke','abs','DEPTH_COMPONENT','particlesSpeed','latitude','viewerParameters','ColorRamp','createComputingPrimitives','cols','framebuffer','particlesNumber','min\x20is\x20undefined,\x20calculate\x20min','_map','windData','998379ZUfKJw','blendEquation','random','0px','_animateFrame','STATIC_DRAW','SceneMode','destroy','updateOptions','windTextures','lastFramesPerSecond','Math','updatePosition','clientHeight','width','segments','getSegmentDrawVertexShader','floor','globe','#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','drawingBufferWidth','dropRate','object','colorTable','commandToExecute','updateViewerParameters','preExecute','getU','mode','bind','4027776fZXiXm','mouseMove','createRenderingTextures','show','domain','height','_pointerEvents','15niRyil','south','min','zIndex','pow','createCommand','clear','13194ubqEAb','addEventListener','scene','speed','toDegrees','lineTo','getOwnPropertyDescriptor','outputTexture','absolute','type','blending','EllipsoidalOccluder','autoClear','max','enabled','getPostProcessingPositionShader','alt','windField','mouseUp','now','north','setDate','hasOwnProperty','requestAnimationFrame','nextParticlesPosition','_mountedHook','683556PjeZMW','clientWidth','Rectangle','SRC_ALPHA','onColorTableChange','50jPwzYr','#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','NEAREST','redraw','setData','pointer-events','commandList','updateWindData','_onMouseMoveEvent','segmentsDepth','lng','ellipsoid','computing','blue','east','forEach','commandType','context','visibility','EventType','_drawLines','ymax','grid','sqrt','none','layer','tlat','_bilinearInterpolation','lat','canvasWidth','geometry','TRIANGLES','WindUtil','data','RGBA','Compute','Cartesian3','19316968oQjKyE','LINEAR','pointerEvents','postProcessingPosition','393XgVfuP','getParticles','canvasContext','1393jqyIYv','off','getDirection','tlng','FLOAT','changeOptions','number','getPrimitives','mouseHidden','_randomParticle','frameRateAdjustment','prototype','createColorTableTexture','pixelFormat','clearCommand','fromGeometry','ymin','reCreateWindTextures','fromCache','removeEventListener','attributeLocations','destroyParticlesTextures','colors','_canrefresh','uniformMap','style','unbindEvent','setOptions','Cartesian2','2037652RfnGUR','lighter','fragmentShaderSource','sources'];_0x4ce4=function(){return _0x5293bb;};return _0x4ce4();}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace[_0x2a09d7(0x2f1,0x2f4)][_0x642db8(-0x163,-0x1e8)],_0x12be51={};_0x12be51['min']=0x1,_0x12be51[_0x2a09d7(0x2c6,0x27c)]=0x2;const _0x2a0660={};_0x2a0660['min']=0x14,_0x2a0660['max']=0x64;const _0x587446={};_0x587446[_0x642db8(-0x17a,-0x1f8)]=0x64,_0x587446['fixedHeight']=0x0,_0x587446[_0x2a09d7(0x350,0x388)]=_0x12be51,_0x587446['lineLength']=_0x2a0660,_0x587446['speedFactor']=0x1,_0x587446['dropRate']=0.003,_0x587446[_0x642db8(-0x12d,-0x171)]=0.001,_0x587446['colors']=[_0x2a09d7(0x342,0x32e)],_0x587446['flipY']=![],_0x587446['dynamic']=!![];function _0x2a09d7(_0x5543ed,_0x58987f){return _0x2aa9(_0x5543ed-0x1f2,_0x58987f);}const DEF_OPTIONS=_0x587446;class WindLayer extends BaseLayer$1{constructor(_0x1519a8={}){_0x1519a8={...DEF_OPTIONS,..._0x1519a8},super(_0x1519a8),this['_setOptionsHook'](_0x1519a8,_0x1519a8);}get['layer'](){function _0x3e653e(_0x2241f5,_0x49f86b){return _0x642db8(_0x2241f5-0x1e6,_0x49f86b);}return this[_0x3e653e(0xa4,0x50)];}get['data'](){return this['options']['data'];}set['data'](_0x441c98){this['options']['data']=_0x441c98;function _0x11ded8(_0x35aa15,_0x45dc6c){return _0x2a09d7(_0x35aa15- -0x171,_0x45dc6c);}this[_0x11ded8(0x16b,0x153)](_0x441c98);}get['colors'](){function _0x3b006d(_0x16f1cb,_0x21f634){return _0x2a09d7(_0x16f1cb-0xb5,_0x21f634);}function _0x479a5f(_0x8e82e8,_0x1936a4){return _0x642db8(_0x8e82e8-0x52e,_0x1936a4);}return this[_0x479a5f(0x3be,0x3ac)][_0x3b006d(0x3cf,0x350)];}set['colors'](_0x468ffa){this[_0x1b39a7(0x442,0x40f)]['colors']=_0x468ffa;const _0x1bbe4a={};_0x1bbe4a['colors']=_0x468ffa;function _0x1b39a7(_0x4838fb,_0xb252c7){return _0x642db8(_0x4838fb-0x5b2,_0xb252c7);}this['_setOptionsHook'](this['options'],_0x1bbe4a);}['_showHook'](_0x1bb7fa){_0x1bb7fa?this['_addedHook']():this['_removedHook']();}[_0x642db8(-0x1d9,-0x1b2)](){}['_addedHook'](){function _0x4ad56a(_0x54a95d,_0x5b59e2){return _0x2a09d7(_0x5b59e2- -0x163,_0x54a95d);}this[_0x4ad56a(0x147,0x158)]=this[_0x52d097(-0x170,-0x1a2)]['scene'],this['camera']=this['_map']['camera'];this['options']['data']&&this['setData'](this['options']['data']);if(!this['windData']||!this[_0x52d097(-0x14d,-0x199)])return;this['viewerParameters']={'lonRange':new Cesium$1[(_0x52d097(-0xdb,-0xd4))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x4ad56a(0x139,0x158)]['mode']},this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this['windData'],this['options'],this['viewerParameters'],this['scene']),this['primitives']=this['particleSystem']['getPrimitives'](),this[_0x52d097(-0x92,-0xb4)][_0x4ad56a(0x11b,0x184)](_0x5cbbcc=>{this['scene']['primitives']['add'](_0x5cbbcc);}),this[_0x52d097(-0x81,-0x9e)]['percentageChanged']=0.01,this['camera']['changed'][_0x52d097(-0x141,-0xf7)](this['updateViewerParameters'][_0x52d097(-0x151,-0x189)](this));function _0x52d097(_0x2b8447,_0x55d285){return _0x2a09d7(_0x2b8447- -0x3fb,_0x55d285);}this['scene'][_0x4ad56a(0x22e,0x1e2)]['addEventListener'](this['updateViewerParameters']['bind'](this)),window['addEventListener']('resize',this[_0x52d097(-0x155,-0xeb)]['bind'](this));}['_removedHook'](){this['camera']['changed'][_0x3ae3c7(-0x1b9,-0x185)](this['updateViewerParameters'][_0x1beefc(-0x126,-0x103)](this)),this['scene']['morphComplete']['removeEventListener'](this['updateViewerParameters']['bind'](this)),window[_0x3ae3c7(-0x1b9,-0x191)](_0x3ae3c7(-0x170,-0xf0),this['updateViewerParameters']['bind'](this));this['primitives']&&(this['primitives']['forEach'](_0x2363da=>{function _0x28f327(_0x33e97a,_0x506720){return _0x3ae3c7(_0x506720- -0xb3,_0x33e97a);}function _0x1fa7bc(_0x4cde26,_0x353e18){return _0x1beefc(_0x4cde26-0x9c,_0x353e18);}this[_0x28f327(-0x276,-0x2c8)][_0x1fa7bc(0x35,-0x6)]['remove'](_0x2363da);}),delete this[_0x3ae3c7(-0x167,-0x10f)]);function _0x1beefc(_0x507618,_0x59a3e3){return _0x2a09d7(_0x507618- -0x3d0,_0x59a3e3);}function _0x3ae3c7(_0x83839f,_0x2a8a7e){return _0x642db8(_0x83839f- -0x25,_0x2a8a7e);}this['particleSystem']&&(this['particleSystem'][_0x3ae3c7(-0x23c,-0x1cd)](),delete this[_0x1beefc(-0x86,-0x46)]);}['setData'](_0x1a904a,_0x1677d2){function _0x535188(_0x275a16,_0x40ece8){return _0x642db8(_0x40ece8- -0x3b,_0x275a16);}function _0x576c1f(_0x16888b,_0x4d943d){return _0x642db8(_0x16888b-0x100,_0x4d943d);}this[_0x535188(-0x20b,-0x25a)]=this[_0x535188(-0x18d,-0x1bb)](_0x1a904a);if(_0x1677d2){this[_0x576c1f(-0x4a,-0xb1)](),this['_addedHook']();return;}this['particleSystem']?(this['particleSystem']['computing'][_0x576c1f(-0xcc,-0xa2)](this[_0x576c1f(-0x11f,-0x124)]),this[_0x576c1f(-0xf0,-0x89)]['requestRender']()):this['_addedHook']();}[_0x2a09d7(0x327,0x352)](_0x834dbd,_0x58ced3){function _0x4b2ecb(_0x29a906,_0x414219){return _0x2a09d7(_0x29a906- -0x4ec,_0x414219);}function _0x54cc16(_0x1ee431,_0x47d4f1){return _0x642db8(_0x47d4f1-0x171,_0x1ee431);}this['particleSystem']&&(this['particleSystem'][_0x4b2ecb(-0x1e3,-0x195)](_0x58ced3),this[_0x4b2ecb(-0x231,-0x278)]['requestRender']());}['processWindData'](_0xe692cc){function _0x122b12(_0x2d8236,_0x227261){return _0x642db8(_0x2d8236-0x140,_0x227261);}var _0x5f091c,_0x103235;const _0x7ceb38={..._0xe692cc};function _0x2834ba(_0x11026f,_0x4bd0ae){return _0x2a09d7(_0x11026f-0x128,_0x4bd0ae);}const _0x43045e=_0x7ceb38;!_0x43045e['height']&&_0x43045e['rows']&&(_0x43045e[_0x2834ba(0x3d8,0x3f5)]=_0x43045e['rows']);!_0x43045e['width']&&_0x43045e[_0x2834ba(0x4bc,0x4e5)]&&(_0x43045e['width']=_0x43045e[_0x122b12(0x29,0xa7)]);!_0x43045e[_0x2834ba(0x479,0x413)]&&(_0x43045e['bounds']={'west':_0x43045e[_0x122b12(-0x1,0x16)],'south':_0x43045e['ymin'],'east':_0x43045e[_0x2834ba(0x454,0x43f)],'north':_0x43045e['ymax']});if(!_0x43045e['u']){const _0x140fa5={};_0x140fa5[_0x122b12(-0x1f,-0x36)]=_0xe692cc['udata'],_0x140fa5['min']=_0xe692cc['umin'],_0x140fa5['max']=_0xe692cc['umax'],_0x43045e['u']=_0x140fa5;}if(!_0x43045e['v']){const _0x19c0da={};_0x19c0da['array']=_0xe692cc['vdata'],_0x19c0da['min']=_0xe692cc['vmin'],_0x19c0da['max']=_0xe692cc['vmax'],_0x43045e['v']=_0x19c0da;}if(((_0x5f091c=_0x43045e[_0x122b12(-0xaf,-0xd4)])===null||_0x5f091c===void 0x0?void 0x0:_0x5f091c['min'])===undefined||((_0x103235=_0x43045e['speed'])===null||_0x103235===void 0x0?void 0x0:_0x103235['max'])===undefined||_0x43045e[_0x122b12(-0xaf,-0xb6)]['array']===undefined){const _0x1484be={'array':new Float32Array(_0x43045e['u'][_0x2834ba(0x474,0x3f6)]['length']),'min':Number['MAX_VALUE'],'max':Number[_0x2834ba(0x45e,0x4d2)]};for(let _0x41df9c=0x0;_0x41df9c<_0x43045e['u'][_0x122b12(-0x1f,0x36)]['length'];_0x41df9c++){_0x1484be[_0x2834ba(0x474,0x432)][_0x41df9c]=Math['sqrt'](_0x43045e['u']['array'][_0x41df9c]*_0x43045e['u']['array'][_0x41df9c]+_0x43045e['v'][_0x2834ba(0x474,0x49b)][_0x41df9c]*_0x43045e['v']['array'][_0x41df9c]),_0x1484be['array'][_0x41df9c]!==0x0&&(_0x1484be[_0x2834ba(0x3dc,0x404)]=Math['min'](_0x1484be['min'],_0x1484be[_0x122b12(-0x1f,0x61)][_0x41df9c]),_0x1484be['max']=Math[_0x122b12(-0xa5,-0x9d)](_0x1484be[_0x2834ba(0x3ee,0x368)],_0x1484be['array'][_0x41df9c]));}_0x43045e[_0x2834ba(0x3e4,0x39c)]=_0x1484be;}return _0x43045e;}['updateViewerParameters'](){var _0x417ed2;const _0x1ed9c4=this['scene'];if(!_0x1ed9c4)return;const _0x3311b4=_0x1ed9c4[_0x7c276b(0x338,0x395)],_0x9bf2bc={};_0x9bf2bc['x']=0x0,_0x9bf2bc['y']=0x0;const _0x20577c={};_0x20577c['x']=0x0,_0x20577c['y']=_0x3311b4[_0x1139fc(-0x2fd,-0x2d6)];const _0x213be1={};_0x213be1['x']=_0x3311b4['clientWidth'],_0x213be1['y']=0x0;const _0x10480d={};function _0x1139fc(_0x5ef66a,_0x43a11a){return _0x642db8(_0x5ef66a- -0xec,_0x43a11a);}_0x10480d['x']=_0x3311b4[_0x7c276b(0x290,0x2c3)];function _0x7c276b(_0x30a54a,_0x17449b){return _0x642db8(_0x30a54a-0x467,_0x17449b);}_0x10480d['y']=_0x3311b4[_0x1139fc(-0x2fd,-0x300)];const _0x490427=[_0x9bf2bc,_0x20577c,_0x213be1,_0x10480d];let _0x5b4f6b=0xb4,_0x2fc016=-0xb4,_0x3ec81e=0x5a,_0x4b25ee=-0x5a,_0x373f2e=![];for(const _0x8ba1da of _0x490427){const _0x2790e6=_0x1ed9c4[_0x7c276b(0x336,0x2fa)][_0x1139fc(-0x233,-0x1ba)](new Cesium$1[(_0x7c276b(0x2dc,0x270))](_0x8ba1da['x'],_0x8ba1da['y']),_0x1ed9c4[_0x1139fc(-0x2f8,-0x2ec)][_0x1139fc(-0x2b4,-0x25e)]);if(!_0x2790e6){_0x373f2e=!![];break;}const _0x1e5f02=_0x1ed9c4['globe'][_0x1139fc(-0x2b4,-0x2fc)]['cartesianToCartographic'](_0x2790e6),_0x354c28=Cesium$1['Math'][_0x1139fc(-0x2da,-0x351)](_0x1e5f02['longitude']),_0x4698f8=Cesium$1['Math'][_0x7c276b(0x279,0x299)](_0x1e5f02[_0x7c276b(0x34c,0x361)]);_0x5b4f6b=Math[_0x7c276b(0x270,0x241)](_0x5b4f6b,_0x354c28),_0x2fc016=Math['max'](_0x2fc016,_0x354c28),_0x3ec81e=Math[_0x7c276b(0x270,0x260)](_0x3ec81e,_0x4698f8),_0x4b25ee=Math['max'](_0x4b25ee,_0x4698f8);}if(!_0x373f2e){const _0x4c54e4=new Cesium$1[(_0x7c276b(0x2dc,0x27d))](Math[_0x7c276b(0x282,0x294)](this['windData']['bounds'][_0x7c276b(0x2e4,0x2dc)],_0x5b4f6b),Math['min'](this[_0x1139fc(-0x30b,-0x390)]['bounds']['east'],_0x2fc016)),_0x427780=new Cesium$1[(_0x7c276b(0x2dc,0x29e))](Math[_0x1139fc(-0x2d1,-0x26b)](this[_0x1139fc(-0x30b,-0x2ce)][_0x7c276b(0x30d,0x353)][_0x1139fc(-0x2e4,-0x31d)],_0x3ec81e),Math['min'](this['windData'][_0x1139fc(-0x246,-0x279)]['north'],_0x4b25ee)),_0x34799f=(_0x4c54e4['y']-_0x4c54e4['x'])*0.05,_0x41da37=(_0x427780['y']-_0x427780['x'])*0.05;_0x4c54e4['x']=Math['max'](this[_0x1139fc(-0x30b,-0x2cb)]['bounds'][_0x1139fc(-0x26f,-0x202)],_0x4c54e4['x']-_0x34799f),_0x4c54e4['y']=Math[_0x7c276b(0x270,0x275)](this['windData'][_0x1139fc(-0x246,-0x262)]['east'],_0x4c54e4['y']+_0x34799f),_0x427780['x']=Math['max'](this['windData']['bounds']['south'],_0x427780['x']-_0x41da37),_0x427780['y']=Math['min'](this['windData']['bounds']['north'],_0x427780['y']+_0x41da37),this[_0x1139fc(-0x206,-0x251)][_0x1139fc(-0x213,-0x231)]=_0x4c54e4,this['viewerParameters']['latRange']=_0x427780;const _0x328dd1=this[_0x1139fc(-0x30b,-0x32a)]['bounds'][_0x7c276b(0x2a2,0x318)]-this[_0x1139fc(-0x30b,-0x364)][_0x7c276b(0x30d,0x357)][_0x1139fc(-0x26f,-0x2e5)],_0x469112=this['windData'][_0x1139fc(-0x246,-0x288)][_0x7c276b(0x289,0x22b)]-this['windData'][_0x1139fc(-0x246,-0x261)]['south'],_0x39391c=(_0x4c54e4['y']-_0x4c54e4['x'])/_0x328dd1,_0x503620=(_0x427780['y']-_0x427780['x'])/_0x469112,_0x41a306=Math['min'](_0x39391c,_0x503620),_0x442caa=0x3e8*_0x41a306;_0x442caa>0x0&&(this[_0x7c276b(0x34d,0x321)][_0x1139fc(-0x212,-0x1cc)]=Math[_0x1139fc(-0x2d1,-0x2d4)](0x0,Math['min'](0x3e8,_0x442caa)));}this['viewerParameters']['sceneMode']=this['scene']['mode'],(_0x417ed2=this['particleSystem'])===null||_0x417ed2===void 0x0||_0x417ed2['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x132561,_0x81a1b0){const {bounds:_0x4174ef,width:_0x1fa1b3,height:_0x8a4707,u:_0x52cb21,v:_0x11a7af,speed:_0xe825dd}=this['windData'],{flipY:_0x36aabe}=this[_0x3e073a(-0x43,-0x2)];if(_0x132561<_0x4174ef['west']||_0x132561>_0x4174ef[_0x3e073a(-0x98,-0x85)]||_0x81a1b0<_0x4174ef['south']||_0x81a1b0>_0x4174ef['north'])return null;const _0x32ddc5=(_0x132561-_0x4174ef[_0x8d0eae(-0x13a,-0x111)])/(_0x4174ef['east']-_0x4174ef['west'])*(_0x1fa1b3-0x1);let _0x1488a3=(_0x81a1b0-_0x4174ef['south'])/(_0x4174ef['north']-_0x4174ef['south'])*(_0x8a4707-0x1);_0x36aabe&&(_0x1488a3=_0x8a4707-0x1-_0x1488a3);const _0x2c7789=Math[_0x8d0eae(-0x1c4,-0x1ae)](_0x32ddc5),_0x441f1e=Math[_0x3e073a(-0xe0,-0x159)](_0x1488a3),_0x377a5b=Math[_0x3e073a(-0xe0,-0x158)](_0x32ddc5);function _0x3e073a(_0x17dcbd,_0xedda29){return _0x2a09d7(_0x17dcbd- -0x37e,_0xedda29);}const _0x208ac6=Math['min'](_0x377a5b+0x1,_0x1fa1b3-0x1),_0x245ecd=Math['floor'](_0x1488a3),_0x5c4cff=Math['min'](_0x245ecd+0x1,_0x8a4707-0x1),_0x469939=_0x32ddc5-_0x377a5b,_0x18892a=_0x1488a3-_0x245ecd,_0x558750=_0x441f1e*_0x1fa1b3+_0x2c7789,_0x43fef0=_0x245ecd*_0x1fa1b3+_0x377a5b;function _0x8d0eae(_0xcdc678,_0x1bb90c){return _0x642db8(_0xcdc678-0x49,_0x1bb90c);}const _0x3de044=_0x245ecd*_0x1fa1b3+_0x208ac6,_0xb79a38=_0x5c4cff*_0x1fa1b3+_0x377a5b,_0x4f067f=_0x5c4cff*_0x1fa1b3+_0x208ac6,_0x4fe79f=_0x52cb21['array'][_0x43fef0],_0x5b75a0=_0x52cb21[_0x8d0eae(-0x116,-0x13c)][_0x3de044],_0xbc590f=_0x52cb21['array'][_0xb79a38],_0x3194f6=_0x52cb21['array'][_0x4f067f],_0x276118=(0x1-_0x469939)*(0x1-_0x18892a)*_0x4fe79f+_0x469939*(0x1-_0x18892a)*_0x5b75a0+(0x1-_0x469939)*_0x18892a*_0xbc590f+_0x469939*_0x18892a*_0x3194f6,_0x5f20b5=_0x11a7af['array'][_0x43fef0],_0x9956ec=_0x11a7af['array'][_0x3de044],_0x484a3f=_0x11a7af['array'][_0xb79a38],_0x5795cc=_0x11a7af['array'][_0x4f067f],_0xc1b00b=(0x1-_0x469939)*(0x1-_0x18892a)*_0x5f20b5+_0x469939*(0x1-_0x18892a)*_0x9956ec+(0x1-_0x469939)*_0x18892a*_0x484a3f+_0x469939*_0x18892a*_0x5795cc,_0x52e3e5=Math[_0x3e073a(-0x8f,-0x90)](_0x276118*_0x276118+_0xc1b00b*_0xc1b00b),_0x21c40d={};_0x21c40d['u']=_0x52cb21['array'][_0x558750],_0x21c40d['v']=_0x11a7af[_0x8d0eae(-0x116,-0x10b)][_0x558750],_0x21c40d['speed']=_0xe825dd['array'][_0x558750];const _0x1ad1f8={};_0x1ad1f8['u']=_0x276118,_0x1ad1f8['v']=_0xc1b00b,_0x1ad1f8['speed']=_0x52e3e5;const _0x430b47={};return _0x430b47['original']=_0x21c40d,_0x430b47['interpolated']=_0x1ad1f8,_0x430b47;}}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace[_0x2a09d7(0x2f1,0x361)]['WindLayer']=WindLayer;class CanvasParticle{constructor(){this[_0x464e88(0xc0,0x5f)]=null,this['lat']=null,this['tlng']=null;function _0x464e88(_0x16726a,_0x51ec53){return _0x642db8(_0x16726a-0x289,_0x51ec53);}this[_0x464e88(0xd0,0x11a)]=null,this['age']=null;function _0x30328d(_0x3b08f4,_0x542af2){return _0x642db8(_0x542af2-0x14d,_0x3b08f4);}this[_0x30328d(-0x107,-0xa2)]=null;}[_0x2a09d7(0x294,0x226)](){for(const _0x3ad074 in this){delete this[_0x3ad074];}}}class CanvasWindField{constructor(_0x1735c1){this['setOptions'](_0x1735c1);}get['speedRate'](){return this['_speedRate'];}set['speedRate'](_0x38460a){function _0x1ca810(_0x147efe,_0x5a4838){return _0x642db8(_0x5a4838-0x22a,_0x147efe);}function _0x1c9e90(_0x119041,_0x35dfed){return _0x642db8(_0x35dfed-0x5c0,_0x119041);}this['_speedRate']=(0x64-(_0x38460a>0x63?0x63:_0x38460a))*0x64,this[_0x1ca810(0x7b,0xe7)]=[(this[_0x1ca810(0x54,0xab)]-this['xmin'])/this['_speedRate'],(this['ymax']-this['ymin'])/this['_speedRate']];}get[_0x642db8(-0x146,-0x16d)](){function _0x142e1e(_0x573495,_0x5bea33){return _0x642db8(_0x573495-0x3bc,_0x5bea33);}return this[_0x142e1e(0x29b,0x2bb)];}set['maxAge'](_0x20118f){function _0x3d68a(_0x16bdbf,_0x42c157){return _0x2a09d7(_0x42c157-0x110,_0x16bdbf);}this[_0x3d68a(0x443,0x49a)]=_0x20118f;}[_0x642db8(-0x18c,-0x18b)](_0x4c4d2b){this['options']=_0x4c4d2b,this['maxAge']=_0x4c4d2b[_0x3bea26(0x37f,0x3e4)]||0x78,this['speedRate']=_0x4c4d2b['speedRate']||0x32;function _0x3bea26(_0x1e2cdd,_0xdcf96a){return _0x642db8(_0xdcf96a-0x52a,_0x1e2cdd);}this[_0x3bea26(0x45c,0x3ea)]=[];function _0x2019a7(_0x341984,_0x36ebf5){return _0x642db8(_0x341984- -0x11e,_0x36ebf5);}const _0x2b242a=_0x4c4d2b['particlesNumber']||0x1000;for(let _0x4e8c98=0x0;_0x4e8c98<_0x2b242a;_0x4e8c98++){const _0x3d9241=this[_0x3bea26(0x407,0x38c)](new CanvasParticle());this['particles']['push'](_0x3d9241);}}[_0x642db8(-0x1dd,-0x1ce)](_0xcab3cb){this[_0x98811a(-0x12d,-0x174)]=_0xcab3cb[_0x560c38(0x164,0x1b3)],this['cols']=_0xcab3cb['cols'],this['xmin']=_0xcab3cb['xmin'],this[_0x560c38(0x110,0x121)]=_0xcab3cb['xmax'];function _0x560c38(_0x4a807f,_0x593c46){return _0x2a09d7(_0x4a807f- -0x21c,_0x593c46);}this[_0x98811a(-0x251,-0x1e0)]=_0xcab3cb['ymin'],this[_0x560c38(0xd1,0x8b)]=_0xcab3cb['ymax'],this['grid']=[];const _0x50e6c0=_0xcab3cb['udata'],_0x1aa340=_0xcab3cb['vdata'];let _0x3f42f3=![];_0x50e6c0['length']===this[_0x98811a(-0x197,-0x174)]&&_0x50e6c0[0x0]['length']===this['cols']&&(_0x3f42f3=!![]);let _0x28bac7=0x0,_0x1cc0e1=null;function _0x98811a(_0x37b726,_0x282950){return _0x642db8(_0x282950- -0x49,_0x37b726);}let _0x216322=null;for(let _0x366584=0x0;_0x366584<this[_0x98811a(-0x1e1,-0x174)];_0x366584++){_0x1cc0e1=[];for(let _0x56d1bf=0x0;_0x56d1bf<this['cols'];_0x56d1bf++,_0x28bac7++){_0x3f42f3?_0x216322=this[_0x98811a(-0x15e,-0x192)](_0x50e6c0[_0x366584][_0x56d1bf],_0x1aa340[_0x366584][_0x56d1bf]):_0x216322=this['_calcUV'](_0x50e6c0[_0x28bac7],_0x1aa340[_0x28bac7]),_0x1cc0e1[_0x98811a(-0x1fc,-0x1c1)](_0x216322);}this[_0x98811a(-0x246,-0x206)]['push'](_0x1cc0e1);}!this['options']['flipY']&&this['grid']['reverse']();}['clear'](){delete this['rows'],delete this['cols'],delete this['xmin'],delete this['xmax'],delete this['ymin'],delete this['ymax'],delete this['grid'],delete this['particles'];}['toGridXY'](_0x1eb46b,_0x4e1959){function _0x4d3316(_0x3190e8,_0x9f43ac){return _0x2a09d7(_0x3190e8-0x151,_0x9f43ac);}const _0x5bacb6=(_0x1eb46b-this['xmin'])/(this['xmax']-this['xmin'])*(this['cols']-0x1),_0x2fb6e1=(this['ymax']-_0x4e1959)/(this[_0x4d3316(0x43e,0x418)]-this['ymin'])*(this['rows']-0x1);return[_0x5bacb6,_0x2fb6e1];}[_0x642db8(-0x152,-0xd5)](_0x349088,_0x365523){if(_0x349088<0x0||_0x349088>=this[_0xbde90c(0x5e4,0x573)]||_0x365523>=this[_0xbde90c(0x51a,0x55f)])return[0x0,0x0,0x0];const _0x4bdf3c=Math['floor'](_0x349088),_0x2f9c32=Math[_0xbde90c(0x4aa,0x47d)](_0x365523);if(_0x4bdf3c===_0x349088&&_0x2f9c32===_0x365523)return this['grid'][_0x365523][_0x349088];const _0x322db9=_0x4bdf3c+0x1,_0x157942=_0x2f9c32+0x1,_0x2c863d=this['getUVByXY'](_0x4bdf3c,_0x2f9c32),_0x1e042b=this[_0x3ac4ee(0x32d,0x2d5)](_0x322db9,_0x2f9c32),_0xb293d=this[_0xbde90c(0x597,0x538)](_0x4bdf3c,_0x157942),_0x457dea=this['getUVByXY'](_0x322db9,_0x157942);let _0x55b9c8=null;try{_0x55b9c8=this[_0xbde90c(0x4ea,0x4d2)](_0x349088-_0x4bdf3c,_0x365523-_0x2f9c32,_0x2c863d,_0x1e042b,_0xb293d,_0x457dea);}catch(_0xae4597){console[_0x3ac4ee(0x2cf,0x2bf)](_0x349088,_0x365523);}function _0xbde90c(_0x7289a0,_0x1407a7){return _0x642db8(_0x1407a7-0x68a,_0x7289a0);}function _0x3ac4ee(_0x214634,_0x32cc95){return _0x642db8(_0x32cc95-0x427,_0x214634);}return _0x55b9c8;}['_bilinearInterpolation'](_0x36e1e4,_0x43af2e,_0x441b2b,_0x371c65,_0x6c12d4,_0x1aafd4){const _0x663553=0x1-_0x36e1e4,_0x4f3b41=0x1-_0x43af2e,_0x5d5214=_0x663553*_0x4f3b41,_0x2598df=_0x36e1e4*_0x4f3b41,_0x3359da=_0x663553*_0x43af2e,_0x19264c=_0x36e1e4*_0x43af2e,_0x45f6c1=_0x441b2b[0x0]*_0x5d5214+_0x371c65[0x0]*_0x2598df+_0x6c12d4[0x0]*_0x3359da+_0x1aafd4[0x0]*_0x19264c,_0xdb506f=_0x441b2b[0x1]*_0x5d5214+_0x371c65[0x1]*_0x2598df+_0x6c12d4[0x1]*_0x3359da+_0x1aafd4[0x1]*_0x19264c;return this['_calcUV'](_0x45f6c1,_0xdb506f);}['_calcUV'](_0xa7f89a,_0x6fe0e2){function _0x134ead(_0x10f33f,_0x3c51bd){return _0x2a09d7(_0x3c51bd- -0x41a,_0x10f33f);}return[+_0xa7f89a,+_0x6fe0e2,Math[_0x134ead(-0xc7,-0x12b)](_0xa7f89a*_0xa7f89a+_0x6fe0e2*_0x6fe0e2)];}['getUVByPoint'](_0x240b70,_0x36df50){if(!this['isInExtent'](_0x240b70,_0x36df50))return null;const _0x40b372=this['toGridXY'](_0x240b70,_0x36df50),_0x4c213d=this['getUVByXY'](_0x40b372[0x0],_0x40b372[0x1]);return _0x4c213d;}['isInExtent'](_0x125757,_0x1e7922){function _0x262f22(_0x4cf6ec,_0x221547){return _0x2a09d7(_0x221547-0x62,_0x4cf6ec);}function _0x50936e(_0x12a375,_0x4f6e97){return _0x2a09d7(_0x4f6e97- -0x4fa,_0x12a375);}return _0x125757>=this[_0x50936e(-0x19e,-0x190)]&&_0x125757<=this[_0x50936e(-0x168,-0x1ce)]&&_0x1e7922>=this[_0x262f22(0x312,0x376)]&&_0x1e7922<=this['ymax']?!![]:![];}['getRandomLatLng'](){function _0x189c07(_0x504496,_0x51d94e){return _0x2a09d7(_0x51d94e- -0x205,_0x504496);}const _0x2fa9e5=fRandomByfloat(this['xmin'],this['xmax']),_0x20c01d=fRandomByfloat(this[_0x3c884d(-0x124,-0x168)],this['ymax']);function _0x3c884d(_0x1add8a,_0x33077e){return _0x642db8(_0x1add8a-0x73,_0x33077e);}const _0x7f2d5e={};return _0x7f2d5e['lat']=_0x20c01d,_0x7f2d5e[_0x3c884d(-0x156,-0x1a4)]=_0x2fa9e5,_0x7f2d5e;}['getParticles'](){let _0x1aba02,_0x51b32a,_0x234c85;function _0xd44996(_0x264602,_0x578abb){return _0x2a09d7(_0x578abb-0x88,_0x264602);}function _0x31c532(_0x55312c,_0x268238){return _0x642db8(_0x268238-0x324,_0x55312c);}for(let _0x5e585c=0x0,_0xa33cd0=this[_0x31c532(0x25f,0x1e4)][_0x31c532(0x141,0x1a3)];_0x5e585c<_0xa33cd0;_0x5e585c++){let _0x3f037d=this['particles'][_0x5e585c];_0x3f037d['age']<=0x0&&(_0x3f037d=this[_0xd44996(0x3d3,0x395)](_0x3f037d));if(_0x3f037d[_0xd44996(0x434,0x410)]>0x0){const _0x44b02f=_0x3f037d[_0x31c532(0x144,0x180)],_0x1da6e6=_0x3f037d['tlat'];_0x234c85=this['getUVByPoint'](_0x44b02f,_0x1da6e6),_0x234c85?(_0x1aba02=_0x44b02f+this['_calc_speedRate'][0x0]*_0x234c85[0x0],_0x51b32a=_0x1da6e6+this[_0x31c532(0x253,0x1e1)][0x1]*_0x234c85[0x1],_0x3f037d[_0xd44996(0x2f8,0x36a)]=_0x44b02f,_0x3f037d['lat']=_0x1da6e6,_0x3f037d['tlng']=_0x1aba02,_0x3f037d['tlat']=_0x51b32a,_0x3f037d[_0xd44996(0x355,0x344)]=_0x234c85[0x2],_0x3f037d['age']--):_0x3f037d[_0x31c532(0x1b2,0x201)]=0x0;}}return this['particles'];}['_randomParticle'](_0x5611fa){let _0x532d43,_0x282fb3;function _0x4d6e16(_0x8f68b3,_0x29657c){return _0x2a09d7(_0x8f68b3- -0x4da,_0x29657c);}for(let _0x40dc0b=0x0;_0x40dc0b<0x1e;_0x40dc0b++){_0x532d43=this['getRandomLatLng'](),_0x282fb3=this['getUVByPoint'](_0x532d43[_0x2e5bb5(0x14b,0x134)],_0x532d43['lat']);if(_0x282fb3&&_0x282fb3[0x2]>0x0)break;}if(!_0x282fb3)return _0x5611fa;const _0x28f08c=_0x532d43[_0x4d6e16(-0x1f8,-0x269)]+this[_0x2e5bb5(0x1a9,0x1ba)][0x0]*_0x282fb3[0x0],_0x44c931=_0x532d43['lat']+this['_calc_speedRate'][0x1]*_0x282fb3[0x1];_0x5611fa['lng']=_0x532d43[_0x4d6e16(-0x1f8,-0x1aa)],_0x5611fa[_0x2e5bb5(0x102,0x146)]=_0x532d43['lat'],_0x5611fa['tlng']=_0x28f08c;function _0x2e5bb5(_0x158cf3,_0x5608ee){return _0x2a09d7(_0x5608ee- -0x1ae,_0x158cf3);}return _0x5611fa['tlat']=_0x44c931,_0x5611fa[_0x2e5bb5(0x1cc,0x1da)]=Math['round'](0xa+Math[_0x2e5bb5(0xa3,0xe1)]()*this['maxAge']),_0x5611fa[_0x2e5bb5(0xef,0x10e)]=_0x282fb3[0x2],_0x5611fa;}['destroy'](){for(const _0x112650 in this){delete this[_0x112650];}}}function fRandomByfloat(_0x265844,_0x4849af){return _0x265844+Math['random']()*(_0x4849af-_0x265844);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace['layer'][_0x2a09d7(0x348,0x363)];class CanvasWindLayer extends BaseLayer{constructor(_0x3d6ce6={}){function _0x1f8bb0(_0x5598b1,_0x5aced2){return _0x642db8(_0x5598b1-0x320,_0x5aced2);}super(_0x3d6ce6),this['_setOptionsHook'](_0x3d6ce6),this['canvas']=null;function _0x28ee2c(_0x1c3b57,_0x2eca43){return _0x2a09d7(_0x1c3b57- -0x316,_0x2eca43);}_0x3d6ce6[_0x28ee2c(0x4,0x4c)]&&_0x3d6ce6['steps']&&(this[_0x28ee2c(0x26,0x1f)]=new mars3d__namespace[(_0x28ee2c(0x7c,0xb8))](_0x3d6ce6));}['_setOptionsHook'](_0x309934,_0x27fe00){this['frameTime']=0x3e8/(_0x309934[_0x2b21cc(-0x25d,-0x26c)]||0xa),this[_0x2b21cc(-0x2eb,-0x330)]=this['options']['pointerEvents']??![];function _0x17994f(_0x50afcb,_0x207106){return _0x642db8(_0x50afcb-0x230,_0x207106);}function _0x2b21cc(_0x177dfa,_0x26c917){return _0x2a09d7(_0x177dfa- -0x59c,_0x26c917);}this['color']=_0x309934[_0x17994f(0xc5,0xc1)]||'#ffffff',this[_0x17994f(0xd5,0x80)]=_0x309934[_0x2b21cc(-0x24c,-0x24b)]||0x1,this[_0x17994f(0xf3,0x14d)]=_0x309934['fixedHeight']??0x0,this['flipY']=_0x309934['flipY']??![],this['windField']&&this[_0x2b21cc(-0x2d2,-0x283)]['setOptions'](_0x309934);}get['layer'](){return this['canvas'];}get['canvasWidth'](){function _0x1924e9(_0x2f63fe,_0x117645){return _0x2a09d7(_0x117645- -0x4e5,_0x2f63fe);}function _0x3598d7(_0x1482ce,_0x4dd031){return _0x642db8(_0x4dd031-0x19,_0x1482ce);}return this[_0x1924e9(-0x2bc,-0x25a)][_0x3598d7(-0x1ee,-0x1d7)][_0x1924e9(-0x119,-0x169)][_0x1924e9(-0x1ac,-0x211)];}get['canvasHeight'](){function _0x1a875f(_0x5946ef,_0x2e5868){return _0x642db8(_0x2e5868-0x1b8,_0x5946ef);}function _0x463ed3(_0x32fe74,_0xbc78f8){return _0x642db8(_0xbc78f8-0x294,_0x32fe74);}return this[_0x1a875f(-0x4b,-0x68)][_0x463ed3(0xe5,0xa4)][_0x463ed3(0x15f,0x165)]['clientHeight'];}get[_0x2a09d7(0x2ff,0x2c7)](){function _0x4f47d2(_0x281dd0,_0x2bdd92){return _0x642db8(_0x2bdd92-0x412,_0x281dd0);}return this[_0x4f47d2(0x1ae,0x218)];}set[_0x2a09d7(0x2ff,0x2f2)](_0x3121fc){function _0x1d87b0(_0x1207a9,_0x51b177){return _0x642db8(_0x51b177-0x59c,_0x1207a9);}this['_pointerEvents']=_0x3121fc;if(!this[_0x1d87b0(0x49b,0x46d)])return;function _0x399698(_0x1b357c,_0x165de6){return _0x642db8(_0x165de6-0x53e,_0x1b357c);}_0x3121fc?this['canvas'][_0x1d87b0(0x3fe,0x40e)]['pointer-events']=_0x399698(0x458,0x40a):this['canvas']['style'][_0x399698(0x3ec,0x370)]='none';}get[_0x2a09d7(0x396,0x3b0)](){function _0x11bbca(_0x30012b,_0x4bf4dc){return _0x642db8(_0x4bf4dc-0x107,_0x30012b);}return this[_0x11bbca(-0x25,-0x69)]['particlesNumber'];}set['particlesNumber'](_0x5038a8){function _0x2f9468(_0x1ba037,_0x559452){return _0x2a09d7(_0x559452- -0x5cc,_0x1ba037);}this['options']['particlesNumber']=_0x5038a8,clearTimeout(this['_canrefresh']),this[_0x2f9468(-0x308,-0x2b1)]=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x3b8c33(_0x5b15b0,_0x249b71){return _0x642db8(_0x5b15b0-0x462,_0x249b71);}return this[_0x3b8c33(0x2f2,0x375)]['speedRate'];}set[_0x642db8(-0x160,-0x16e)](_0x358303){function _0x56dc64(_0x15d342,_0x5c4dca){return _0x2a09d7(_0x5c4dca- -0x3a,_0x15d342);}this['options']['speedRate']=_0x358303,this[_0x56dc64(0x2d1,0x290)]&&(this['windField']['speedRate']=_0x358303);}get[_0x2a09d7(0x365,0x347)](){function _0x2fb385(_0x38d82e,_0x425a82){return _0x2a09d7(_0x38d82e-0x134,_0x425a82);}return this['options'][_0x2fb385(0x499,0x4d2)];}set['maxAge'](_0x336d80){this['options']['maxAge']=_0x336d80,this['windField']&&(this['windField']['maxAge']=_0x336d80);}get[_0x2a09d7(0x2f9,0x2b4)](){function _0x3e2133(_0x3fae4b,_0x5c2187){return _0x2a09d7(_0x5c2187-0xe7,_0x3fae4b);}return this[_0x3e2133(0x3c1,0x373)];}set[_0x2a09d7(0x2f9,0x2da)](_0x1a5a40){this['setData'](_0x1a5a40);}get[_0x2a09d7(0x32d,0x34c)](){let _0xc290e7=this['windData']['xmin'],_0x45779e=this['windData'][_0x5bd172(0x17f,0x158)];function _0x5bd172(_0x4fd605,_0x2fb5ee){return _0x642db8(_0x2fb5ee-0x2d7,_0x4fd605);}let _0x1df215=this['windData']['ymin'],_0x588a24=this['windData']['ymax'];_0x45779e>=0x167&&_0xc290e7===0x0&&(_0xc290e7=-0xb4,_0x45779e=0xb4);_0xc290e7=Math['max'](_0xc290e7,-0xb4);function _0x49d8db(_0x5a79ba,_0x2716c5){return _0x642db8(_0x5a79ba-0x262,_0x2716c5);}return _0x45779e=Math['min'](_0x45779e,0xb4),_0x1df215=Math[_0x49d8db(0x7d,0xa6)](_0x1df215,-0x5a),_0x588a24=Math[_0x5bd172(0xfe,0xe0)](_0x588a24,0x5a),Cesium[_0x49d8db(0x8c,0x3c)][_0x49d8db(0xf0,0xd0)](_0xc290e7,_0x1df215,_0x45779e,_0x588a24);}['_showHook'](_0x55da75){function _0x3ee615(_0x17098f,_0x3e1ccc){return _0x2a09d7(_0x17098f- -0x72,_0x3e1ccc);}function _0x4226a6(_0x4c1631,_0x48ca73){return _0x2a09d7(_0x4c1631- -0x4e4,_0x48ca73);}_0x55da75?this[_0x4226a6(-0x16e,-0x16f)]():(this['windData']&&(this[_0x3ee615(0x2c9,0x339)]['data']=this[_0x3ee615(0x21a,0x1e0)]),this['_removedHook']());}[_0x642db8(-0x1d9,-0x241)](){function _0x43ac87(_0xdc7e43,_0x449b67){return _0x2a09d7(_0xdc7e43- -0x48f,_0x449b67);}function _0x5e7cec(_0x58c865,_0x5022ed){return _0x642db8(_0x5022ed-0x41,_0x58c865);}this[_0x5e7cec(-0xdc,-0x12f)][_0x43ac87(-0x11b,-0x110)]?this[_0x5e7cec(-0xeb,-0xed)]():this['windField']=new CanvasWindField(this['options']);}[_0x2a09d7(0x376,0x38f)](){function _0x2f742b(_0x33e479,_0x270795){return _0x642db8(_0x270795- -0x8c,_0x33e479);}this['canvas']=this['_createCanvas']();const _0xe4536f={};function _0xfc95a3(_0x1ffd94,_0x115cf1){return _0x2a09d7(_0x1ffd94- -0x218,_0x115cf1);}_0xe4536f['willReadFrequently']=!![],this['canvasContext']=this[_0xfc95a3(0x164,0x123)]['getContext']('2d',_0xe4536f),this['bindEvent'](),this['options']['data']&&this[_0x2f742b(-0x293,-0x25b)](this[_0x2f742b(-0x22b,-0x1fc)][_0x2f742b(-0x1ca,-0x23e)]);}['_removedHook'](){function _0x1d510e(_0x23c1f1,_0x3c7e0a){return _0x2a09d7(_0x3c7e0a- -0x52f,_0x23c1f1);}this['clear']();function _0x142d95(_0x5686e2,_0x450980){return _0x2a09d7(_0x450980- -0x11c,_0x5686e2);}this[_0x1d510e(-0x18f,-0x211)](),this['canvas']&&(this['_map']['container']['removeChild'](this[_0x1d510e(-0x203,-0x1b3)]),delete this['canvas']);}['_createCanvas'](){function _0x46c949(_0xb397f4,_0x3cb861){return _0x642db8(_0x3cb861-0x3de,_0xb397f4);}const _0x46ad4e=mars3d__namespace['DomUtil']['create']('canvas','mars3d-canvasWind',this[_0x3bc837(0x3c7,0x39f)]['container']);_0x46ad4e['style'][_0x46c949(0x26f,0x29f)]=_0x3bc837(0x3fd,0x37e),_0x46ad4e['style']['top']=_0x3bc837(0x3cc,0x3a3),_0x46ad4e['style']['left']='0px',_0x46ad4e['style']['width']=this[_0x3bc837(0x3c7,0x3ec)][_0x3bc837(0x3f7,0x45b)]['canvas']['clientWidth']+'px',_0x46ad4e['style']['height']=this['_map']['scene'][_0x3bc837(0x4b8,0x52a)]['clientHeight']+'px',_0x46ad4e[_0x3bc837(0x459,0x3e2)]['pointerEvents']=this['_pointerEvents']?'auto':_0x46c949(0x23d,0x223),_0x46ad4e['style'][_0x3bc837(0x3f1,0x400)]=this[_0x3bc837(0x477,0x4a1)][_0x3bc837(0x3f1,0x448)]??0x9;function _0x3bc837(_0x2087c9,_0xef56a5){return _0x2a09d7(_0x2087c9-0x13c,_0xef56a5);}return _0x46ad4e['width']=this['_map'][_0x3bc837(0x3f7,0x431)][_0x3bc837(0x4b8,0x482)][_0x46c949(0x1c3,0x207)],_0x46ad4e['height']=this['_map']['scene']['canvas']['clientHeight'],_0x46ad4e;}['resize'](){function _0x3114f4(_0x4c5056,_0x3751a8){return _0x642db8(_0x4c5056-0x3,_0x3751a8);}function _0x25a111(_0x26970e,_0xe7adf4){return _0x2a09d7(_0x26970e- -0x32b,_0xe7adf4);}this['canvas']&&(this[_0x25a111(0x51,0xc7)]['style']['width']=this['_map'][_0x25a111(-0x70,-0x9a)][_0x25a111(0x51,0x62)][_0x3114f4(-0x1d4,-0x1d5)]+'px',this['canvas']['style']['height']=this['_map'][_0x25a111(-0x70,-0x65)][_0x25a111(0x51,-0x2d)]['clientHeight']+'px',this[_0x3114f4(-0x12c,-0xec)]['width']=this['_map']['scene']['canvas'][_0x25a111(-0x57,-0x78)],this['canvas']['height']=this[_0x3114f4(-0x21d,-0x27b)]['scene'][_0x3114f4(-0x12c,-0x145)][_0x25a111(-0x91,-0xad)]);}[_0x2a09d7(0x38b,0x3f1)](){function _0x13160e(_0x2bc8ef,_0x5c0cf2){return _0x2a09d7(_0x5c0cf2- -0x4f,_0x2bc8ef);}const _0x591cdf=this;function _0x389033(_0x518f38,_0x4ba646){return _0x642db8(_0x4ba646-0x3e7,_0x518f38);}let _0x12c6be=Date[_0x13160e(0x2b1,0x27d)]();(function _0x2b812b(){if(_0x591cdf['isDestroy'])return;function _0x45aaa8(_0x576cec,_0x44129e){return _0x13160e(_0x576cec,_0x44129e-0xe2);}function _0x4a8417(_0x4bec80,_0x3bc178){return _0x13160e(_0x3bc178,_0x4bec80- -0x3a1);}_0x591cdf[_0x45aaa8(0x38a,0x324)]=window[_0x45aaa8(0x2eb,0x363)](_0x2b812b);if(_0x591cdf['show']&&_0x591cdf[_0x45aaa8(0x381,0x35d)]){const _0x1bcb0e=Date[_0x4a8417(-0x124,-0xe6)](),_0x42926e=_0x1bcb0e-_0x12c6be;_0x42926e>_0x591cdf[_0x4a8417(-0x98,-0x105)]&&(_0x12c6be=_0x1bcb0e-_0x42926e%_0x591cdf['frameTime'],_0x591cdf['update']());}}(),window['addEventListener']('resize',this['resize']['bind'](this),![]),this[_0x13160e(0x2f0,0x2f8)]=![],this['mouse_move']=![],this['options'][_0x389033(0x1e5,0x248)]&&(this[_0x389033(0x231,0x1c7)]['on'](mars3d__namespace[_0x13160e(0x268,0x29c)][_0x13160e(0x297,0x2df)],this[_0x389033(0x2c7,0x2a9)],this),this[_0x13160e(0x285,0x23c)]['on'](mars3d__namespace[_0x13160e(0x2ae,0x29c)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x389033(0x186,0x1c7)]['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this)));}['unbindEvent'](){window['cancelAnimationFrame'](this['_animateFrame']);function _0x5b2217(_0x470112,_0x5605d2){return _0x642db8(_0x5605d2-0x12,_0x470112);}delete this[_0x5b2217(-0x217,-0x208)];function _0x48d11b(_0x4bde38,_0x2e00a2){return _0x2a09d7(_0x2e00a2- -0x3f4,_0x4bde38);}window[_0x48d11b(-0xed,-0xdd)]('resize',this['resize']),this['options'][_0x48d11b(-0xf5,-0xe8)]&&(this[_0x48d11b(-0x1ec,-0x169)][_0x5b2217(-0x1b5,-0x194)](mars3d__namespace[_0x5b2217(-0x18a,-0x1ae)][_0x5b2217(-0x143,-0x16b)],this['_onMapWhellEvent'],this),this[_0x5b2217(-0x265,-0x20e)]['off'](mars3d__namespace[_0x48d11b(-0xd7,-0x109)]['mouseDown'],this[_0x48d11b(-0xcf,-0x7b)],this),this[_0x5b2217(-0x195,-0x20e)][_0x5b2217(-0x1c9,-0x194)](mars3d__namespace[_0x5b2217(-0x184,-0x1ae)][_0x48d11b(-0x14c,-0x129)],this['_onMouseUpEvent'],this),this['_map'][_0x5b2217(-0x146,-0x194)](mars3d__namespace['EventType']['mouseMove'],this[_0x48d11b(-0x107,-0x114)],this));}['_onMapWhellEvent'](_0x4b0109){clearTimeout(this['refreshTimer']);if(!this[_0x4d1830(-0xd0,-0x12e)]||!this[_0x4d1830(-0x2,0x4c)])return;function _0x4d1830(_0x18421e,_0x38fab3){return _0x2a09d7(_0x18421e- -0x37e,_0x38fab3);}this['canvas'][_0x4d1830(-0x61,0x2)][_0x4d1830(-0x94,-0x108)]='hidden';function _0x5df38f(_0x544050,_0x3f0d4a){return _0x642db8(_0x544050-0x5e5,_0x3f0d4a);}this[_0x5df38f(0x487,0x4da)]=setTimeout(()=>{if(!this['show'])return;this[_0x34437a(0x11f,0x17d)]();function _0x34437a(_0x12d5d5,_0x4c28da){return _0x5df38f(_0x4c28da- -0x298,_0x12d5d5);}this['canvas']['style']['visibility']='visible';},0xc8);}['_onMouseDownEvent'](_0x2eb7e0){this['mouse_down']=!![],this['_map']['off'](mars3d__namespace[_0x32506c(-0x1dd,-0x249)]['mouseMove'],this['_onMouseMoveEvent'],this);function _0x32506c(_0x42a357,_0x5c0f29){return _0x2a09d7(_0x5c0f29- -0x534,_0x42a357);}function _0x1a0ac3(_0x2d0347,_0x4e9548){return _0x642db8(_0x2d0347-0x149,_0x4e9548);}this[_0x1a0ac3(-0xd7,-0x12e)]['on'](mars3d__namespace[_0x1a0ac3(-0x77,-0x5f)]['mouseMove'],this[_0x32506c(-0x20b,-0x254)],this);}['_onMouseMoveEvent'](_0x1187b2){function _0x4df91d(_0x5cf9f8,_0x4fc019){return _0x642db8(_0x5cf9f8-0x162,_0x4fc019);}if(!this['show']||!this['canvas'])return;this['mouse_down']&&(this['canvas'][_0x4df91d(-0x2c,-0x76)]['visibility']='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x1de9c0){if(!this[_0x4902e3(-0x22a,-0x292)]||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType'][_0x323682(0xb5,0x107)],this[_0x4902e3(-0x2e3,-0x260)],this);this['mouse_down']&&this['mouse_move']&&this['redraw']();this[_0x4902e3(-0x182,-0x1c4)]['style']['visibility']=_0x323682(0x13d,0xbb),this[_0x323682(0x150,0x185)]=![];function _0x4902e3(_0x409c5c,_0x366075){return _0x642db8(_0x366075- -0x95,_0x409c5c);}function _0x323682(_0xaee3fc,_0x3708c4){return _0x642db8(_0xaee3fc-0x2b4,_0x3708c4);}this[_0x323682(0x18f,0x1c4)]=![];}['setData'](_0x3f7296){this['clear']();function _0x3aa5d4(_0x2ca668,_0x1f81ce){return _0x2a09d7(_0x1f81ce-0x1cf,_0x2ca668);}this['windData']=_0x3f7296,this[_0x3aa5d4(0x4b5,0x499)]['setDate'](_0x3f7296),this['redraw']();}['redraw'](){if(!this['show'])return;this['windField'][_0x5f196f(0x3df,0x3b9)](this['options']);function _0x5f196f(_0x2b3852,_0x55fede){return _0x2a09d7(_0x55fede-0x9a,_0x2b3852);}this['update']();}[_0x642db8(-0x124,-0x173)](){if(this[_0x6cc56d(0x13c,0x156)])return;function _0x6cc56d(_0x53d63b,_0x30e549){return _0x642db8(_0x53d63b-0x281,_0x30e549);}function _0x5796a9(_0x70a126,_0x2f6a2f){return _0x642db8(_0x2f6a2f-0x48b,_0x70a126);}this[_0x6cc56d(0x13c,0x11a)]=!![];if(this['worker'])this['windField']['update']();else{const _0x80e7d4=this['windField'][_0x6cc56d(0xd8,0xee)]();this[_0x6cc56d(0xc2,0x99)](_0x80e7d4);}this[_0x5796a9(0x319,0x346)]=![];}['_drawLines'](_0x5a41f8){this[_0x3dbf60(-0x14e,-0x1aa)]=_0x5a41f8,this['canvasContext']['globalCompositeOperation']='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this[_0x3dbf60(-0x273,-0x1ef)],this['canvasHeight']),this[_0x45c8d2(0x4e3,0x546)]['globalCompositeOperation']=_0x45c8d2(0x502,0x577),this[_0x45c8d2(0x4e3,0x47c)]['globalAlpha']=0.9;function _0x3dbf60(_0x5ba517,_0xe6dbb2){return _0x2a09d7(_0xe6dbb2- -0x4e4,_0x5ba517);}const _0x4c7f01=this['_map'][_0x45c8d2(0x49b,0x4f5)]['mode']!==Cesium[_0x45c8d2(0x473,0x411)][_0x45c8d2(0x54f,0x571)];function _0x45c8d2(_0x199392,_0xe2fad6){return _0x642db8(_0x199392-0x68b,_0xe2fad6);}const _0x473398=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x2ccc70=0x0,_0x3fafdc=_0x5a41f8['length'];_0x2ccc70<_0x3fafdc;_0x2ccc70++){const _0x41eb92=_0x5a41f8[_0x2ccc70],_0x11ad78=this['_tomap'](_0x41eb92,_0x41eb92['lng'],_0x41eb92[_0x3dbf60(-0x268,-0x1f0)],_0x41eb92['alt']),_0xab909e=this['_tomap'](_0x41eb92,_0x41eb92['tlng'],_0x41eb92['tlat'],_0x41eb92['talt']);if(!_0x11ad78||!_0xab909e)continue;if(_0x4c7f01&&Math[_0x3dbf60(-0x164,-0x157)](_0x11ad78[0x0]-_0xab909e[0x0])>=_0x473398)continue;this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this[_0x3dbf60(-0x178,-0x194)],this[_0x45c8d2(0x4e3,0x554)]['strokeStyle']=this['_colorRamp']['getColor'](_0x41eb92['speed']),this['canvasContext']['moveTo'](_0x11ad78[0x0],_0x11ad78[0x1]),this['canvasContext'][_0x3dbf60(-0x270,-0x226)](_0xab909e[0x0],_0xab909e[0x1]),this['canvasContext'][_0x3dbf60(-0x1c1,-0x158)]();}else{this['canvasContext']['beginPath'](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this['color'];for(let _0x4bebb5=0x0,_0x3f11b5=_0x5a41f8['length'];_0x4bebb5<_0x3f11b5;_0x4bebb5++){const _0x111e4c=_0x5a41f8[_0x4bebb5],_0x2a4e9e=this['_tomap'](_0x111e4c,_0x111e4c['lng'],_0x111e4c['lat'],_0x111e4c[_0x45c8d2(0x4a9,0x4c5)]),_0x1065a1=this['_tomap'](_0x111e4c,_0x111e4c[_0x45c8d2(0x4e7,0x4d9)],_0x111e4c['tlat'],_0x111e4c['talt']);if(!_0x2a4e9e||!_0x1065a1)continue;if(_0x4c7f01&&Math['abs'](_0x2a4e9e[0x0]-_0x1065a1[0x0])>=_0x473398)continue;this['canvasContext']['moveTo'](_0x2a4e9e[0x0],_0x2a4e9e[0x1]),this[_0x3dbf60(-0x174,-0x1e1)][_0x3dbf60(-0x1ad,-0x226)](_0x1065a1[0x0],_0x1065a1[0x1]);}this['canvasContext']['stroke']();}}['_tomap'](_0x130b02,_0x30dbdb,_0x28200f,_0x5ae735){const _0x5e9745=Cesium[_0x4663c3(0x2fb,0x31c)]['fromDegrees'](_0x30dbdb,_0x28200f,_0x5ae735??this['fixedHeight']);function _0x5621b9(_0x1cd29a,_0x46176d){return _0x642db8(_0x46176d-0x2a6,_0x1cd29a);}function _0x4663c3(_0x521166,_0x5d33fb){return _0x642db8(_0x5d33fb-0x4cb,_0x521166);}const _0xc21dd3=this[_0x5621b9(0x10a,0x86)]['scene'];if(_0xc21dd3[_0x5621b9(0x54,0xa4)]===Cesium[_0x5621b9(0xf4,0x8e)][_0x5621b9(0x179,0x16a)]){const _0x12ed13=new Cesium[(_0x5621b9(0xec,0xbf))](_0xc21dd3[_0x4663c3(0x332,0x2bf)]['ellipsoid'],_0xc21dd3['camera'][_0x4663c3(0x2fc,0x350)]),_0x4c0ed0=_0x12ed13['isPointVisible'](_0x5e9745);if(!_0x4c0ed0)return _0x130b02['age']=0x0,null;}const _0xa3db87=mars3d__namespace['PointTrans'][_0x4663c3(0x332,0x383)](this['_map']['scene'],_0x5e9745);return _0xa3db87?[_0xa3db87['x'],_0xa3db87['y']]:null;}[_0x642db8(-0x1f3,-0x278)](){function _0x54f2c9(_0xcf4625,_0x232f17){return _0x642db8(_0xcf4625-0x62c,_0x232f17);}this['windField']['clear'](),delete this[_0x54f2c9(0x40d,0x40a)];}['initWorker'](){function _0xac58f0(_0x48ba43,_0x1e902a){return _0x2a09d7(_0x48ba43- -0x3,_0x1e902a);}this['worker']=new Worker(this['options']['worker']),this[_0xac58f0(0x371,0x327)][_0x3472c6(-0xf3,-0xf9)]=_0x4f5e1c=>{this['_drawLines'](_0x4f5e1c['data']['particles']),this['_updateIng2']=![];},this[_0x3472c6(-0x17b,-0x153)]={'init':_0x211f86=>{function _0x4b1be4(_0x19e33e,_0x280906){return _0xac58f0(_0x280906- -0xca,_0x19e33e);}const _0x272d63={};function _0x5331e5(_0x51ed0a,_0x5d6d94){return _0x3472c6(_0x51ed0a- -0xa1,_0x5d6d94);}_0x272d63[_0x4b1be4(0x19b,0x1f5)]=_0x5331e5(-0x174,-0x12b),_0x272d63['options']=_0x211f86,this['worker']['postMessage'](_0x272d63);},'setOptions':_0x22de04=>{const _0x2ffffb={};_0x2ffffb['type']='setOptions';function _0x3c54ab(_0x58ce13,_0x39253f){return _0xac58f0(_0x58ce13- -0x4fc,_0x39253f);}_0x2ffffb['options']=_0x22de04;function _0x36226e(_0x1238be,_0x172aad){return _0xac58f0(_0x172aad- -0x594,_0x1238be);}this[_0x3c54ab(-0x18b,-0x15f)][_0x3c54ab(-0x1a4,-0x161)](_0x2ffffb);},'setDate':_0x54803d=>{function _0x4e5127(_0x43ef8b,_0x18e8a9){return _0x3472c6(_0x18e8a9-0x1af,_0x43ef8b);}function _0xec0e6d(_0xf19936,_0x23c6b0){return _0xac58f0(_0xf19936- -0x4b6,_0x23c6b0);}const _0x20cfa3={};_0x20cfa3[_0x4e5127(0x69,0x2c)]='setDate',_0x20cfa3[_0x4e5127(0xc6,0x63)]=_0x54803d,this[_0x4e5127(0x8f,0xde)]['postMessage'](_0x20cfa3);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x128e36={};_0x128e36['type']='update',this['worker']['postMessage'](_0x128e36);},'clear':()=>{function _0x5ccae0(_0x4f2f23,_0x3819af){return _0x3472c6(_0x4f2f23-0x174,_0x3819af);}function _0x158fdb(_0x41055b,_0x550cbd){return _0xac58f0(_0x550cbd- -0x2bc,_0x41055b);}const _0x162821={};_0x162821['type']=_0x5ccae0(-0x19,-0x40),this['worker'][_0x5ccae0(0x8a,0x22)](_0x162821);}};function _0x3472c6(_0x642df8,_0x2cfd30){return _0x642db8(_0x642df8-0x66,_0x2cfd30);}this['windField'][_0x3472c6(-0xd3,-0xfa)](this['options']);}}mars3d__namespace['LayerUtil']['register']('canvasWind',CanvasWindLayer),mars3d__namespace[_0x642db8(-0x1ba,-0x1e5)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField,mars3d__namespace[_0x2a09d7(0x35d,0x3d5)]['logInfo']('mars3d-wind插件\x20注册成功'),mars3d__namespace[_0x642db8(-0x1b3,-0x18b)]=WindUtil,exports['CanvasWindField']=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports['WindUtil']=WindUtil;const _0x5de8ca={};_0x5de8ca['value']=!![],Object['defineProperty'](exports,'__esModule',_0x5de8ca);
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.10.
|
|
3
|
+
"version": "3.10.1",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.10.
|
|
8
|
+
"mars3d": "~3.10.1"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|