mars3d-wind 3.10.1 → 3.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-08-
|
|
4
|
+
* 版本信息:v3.10.2
|
|
5
|
+
* 编译日期:2025-08-11 22:12
|
|
6
6
|
* 版权所有:Copyright by 火星科技 http://mars3d.cn
|
|
7
7
|
* 使用单位:火星科技免费公开版 ,2025-07-01
|
|
8
8
|
*/
|
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
typeof define === 'function' && define.amd ? define(['exports', 'mars3d'], factory) :
|
|
12
12
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["mars3d-wind"] = {}, global.mars3d));
|
|
13
13
|
})(this, (function (exports, mars3d) {
|
|
14
|
-
'use strict';(function(_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);
|
|
14
|
+
'use strict';(function(_0x792cc4,_0x119712){function _0x334217(_0x32dc9f,_0xa33938){return _0x3a79(_0x32dc9f- -0x22e,_0xa33938);}function _0x53abc4(_0x224d62,_0x180b19){return _0x3a79(_0x180b19-0x227,_0x224d62);}const _0x39008c=_0x792cc4();while(!![]){try{const _0x33b94d=-parseInt(_0x53abc4(0x27d,0x2e9))/0x1*(parseInt(_0x334217(-0x117,-0x92))/0x2)+parseInt(_0x334217(-0x180,-0x1ee))/0x3+parseInt(_0x53abc4(0x2d5,0x337))/0x4*(-parseInt(_0x334217(-0x146,-0x158))/0x5)+-parseInt(_0x53abc4(0x346,0x2cf))/0x6+-parseInt(_0x334217(-0x8c,-0xf))/0x7+parseInt(_0x53abc4(0x3d5,0x38f))/0x8+parseInt(_0x334217(-0x115,-0x138))/0x9*(parseInt(_0x334217(-0x116,-0x9c))/0xa);if(_0x33b94d===_0x119712)break;else _0x39008c['push'](_0x39008c['shift']());}catch(_0x21e0ed){_0x39008c['push'](_0x39008c['shift']());}}}(_0x4738,0xb663a));function _interopNamespace(_0xb86b64){if(_0xb86b64&&_0xb86b64['__esModule'])return _0xb86b64;function _0x547750(_0x3a9336,_0x5719d2){return _0x3a79(_0x5719d2-0x315,_0x3a9336);}var _0x1fdfd5=Object[_0x547750(0x3fc,0x477)](null);function _0x3287dc(_0xb6d35b,_0x45af60){return _0x3a79(_0x45af60- -0x22f,_0xb6d35b);}return _0xb86b64&&Object[_0x3287dc(-0x197,-0x127)](_0xb86b64)['forEach'](function(_0x4b6c3b){function _0x456b0b(_0x4b2c51,_0x258b0b){return _0x547750(_0x258b0b,_0x4b2c51- -0x332);}if(_0x4b6c3b!=='default'){var _0x23633d=Object[_0x456b0b(0x8e,0xb0)](_0xb86b64,_0x4b6c3b);Object['defineProperty'](_0x1fdfd5,_0x4b6c3b,_0x23633d['get']?_0x23633d:{'enumerable':!![],'get':function(){return _0xb86b64[_0x4b6c3b];}});}}),_0x1fdfd5[_0x3287dc(-0x2b,-0x9d)]=_0xb86b64,_0x1fdfd5;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace[_0x2e342d(0x2fa,0x348)];function getU(_0x1c62aa,_0x4cb508){function _0x1573c5(_0x3d08db,_0x49c7ea){return _0x2e342d(_0x49c7ea- -0x429,_0x3d08db);}const _0x21c076=_0x1c62aa*Math['cos'](Cesium$2[_0x1573c5(-0x132,-0xac)]['toRadians'](_0x4cb508));return _0x21c076;}function getV(_0x564e82,_0x10c1f4){const _0x4f3839=_0x564e82*Math[_0x2a363f(0x1bf,0x169)](Cesium$2['Math']['toRadians'](_0x10c1f4));function _0x2a363f(_0x42f49e,_0x1da87f){return _0x2e342d(_0x42f49e- -0xbe,_0x1da87f);}return _0x4f3839;}function getSpeed(_0x5ae56e,_0x4c94f9){const _0x42c8b1=Math['sqrt'](Math['pow'](_0x5ae56e,0x2)+Math['pow'](_0x4c94f9,0x2));return _0x42c8b1;}function getDirection(_0x344942,_0x4d616d){let _0x28509b=Cesium$2[_0x3bb67e(-0xfb,-0xd7)][_0x46f9ec(0xc4,0xa8)](Math['atan2'](_0x4d616d,_0x344942));function _0x46f9ec(_0x5b3294,_0x113e20){return _0x2e342d(_0x113e20- -0x24c,_0x5b3294);}_0x28509b+=_0x28509b<0x0?0x168:0x0;function _0x3bb67e(_0x32d612,_0x657962){return _0x2e342d(_0x32d612- -0x478,_0x657962);}return _0x28509b;}const _0x534c94={};_0x534c94[_0x3e2b6f(0x88,0x4f)]=null,_0x534c94['getU']=getU,_0x534c94[_0x2e342d(0x370,0x302)]=getV,_0x534c94['getSpeed']=getSpeed,_0x534c94[_0x2e342d(0x292,0x266)]=getDirection;var WindUtil=_0x534c94,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader=_0x3e2b6f(0x67,0x18),postProcessingPositionFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x20//\x20(u,\x20v,\x20norm)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20dataLonRange;\x0auniform\x20vec2\x20dataLatRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x0auniform\x20float\x20dropRate;\x0auniform\x20float\x20dropRateBump;\x0a\x0a//\x20添加新的\x20uniform\x20变量\x0auniform\x20bool\x20useViewerBounds;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898f,\x2078.233f,\x204375.85453f);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0f,\x201.0f);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec2\x20generateRandomParticle(vec2\x20seed)\x20{\x0a\x20\x20vec2\x20range;\x0a\x20\x20float\x20randomLon,\x20randomLat;\x0a\x0a\x20\x20if(useViewerBounds)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在当前视域范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20lonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20在数据范围内生成粒子\x0a\x20\x20\x20\x20randomLon\x20=\x20rand(seed,\x20dataLonRange);\x0a\x20\x20\x20\x20randomLat\x20=\x20rand(-seed,\x20dataLatRange);\x0a\x20\x20}\x0a\x0a\x20\x20return\x20vec2(randomLon,\x20randomLat);\x0a}\x0a\x0abool\x20particleOutbound(vec2\x20particle)\x20{\x0a\x20\x20return\x20particle.y\x20<\x20dataLatRange.x\x20||\x20particle.y\x20>\x20dataLatRange.y\x20||\x20particle.x\x20<\x20dataLonRange.x\x20||\x20particle.x\x20>\x20dataLonRange.y;\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20vec2\x20nextParticle\x20=\x20texture(nextParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec4\x20nextSpeed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20float\x20speedNorm\x20=\x20nextSpeed.a;\x0a\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20speedNorm;\x0a\x0a\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20seed2\x20=\x20nextSpeed.rg\x20+\x20v_textureCoordinates;\x0a\x20\x20vec2\x20randomParticle\x20=\x20generateRandomParticle(seed1);\x0a\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20if(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(randomParticle,\x200.0f,\x201.0f);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(nextParticle,\x200.0f,\x200.0f);\x0a\x20\x20}\x0a}\x0a',renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a';const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];function _0x4738(){const _0x22c3ba=['NEAREST','postMessage','south','componentsPerAttribute','toGridXY','rectangle','_calc_speedRate','computing','isDynamic','0px','postProcessingPosition','grid','slice','bindEvent','particlesTextureSize','min','FLOAT','fromDegrees','max\x20is\x20undefined,\x20calculate\x20max','Unknown\x20command\x20type','_calcUV','MAX_VALUE','context','fromGeometry','visible','clear','unbindEvent','setData','abs','uniformMap','getPrimitives','getPostProcessingPositionShader','west','warn','style','__proto__','framebuffers','umax','mouse_move','frameTime','getRandomLatLng','Cartesian2','length','pass','off','particlesSpeed','setGeometry','flatMap','nextParticlesPosition','lng','left','vertexShaderSource','create','init','BaseLayer','particlesNumber','age','values','8942896lSpZbm','bind','_setOptionsHook','show','mouse_down','blendEquation','createCommand','minificationFilter','setOptions','_createCanvas','applyViewerParameters','dropRate','depthTexture','onColorTableChange','mouseMove','tlat','frameRate','rendering','max','EventType','camera','destination-in','bounds','clearCommand','resize','_removedHook','color','_onMouseUpEvent','createParticlesTextures','wrapT','commandType','viewport','height','_bilinearInterpolation','speedFactor','SCENE3D','_colorRamp','fromCssColorString','clientWidth','willReadFrequently','cartesianToCartographic','getV','default','umin','particles','pixelFormat','Compute','segments','speed','commandToExecute','getCalculateSpeedShader','mouseUp','toWindowCoordinates','pointerEvents','Math','type','canvasHeight','logInfo','4485089XVfaxD','sources','windData','error','samplingWindow','array','speedRate','frameRateAdjustment','worker','call','dropRateBump','domain','lighter','north','primitives','sin','particlesTextures','width','zIndex','requestRender','_canrefresh','push','_updateIng','viewerParameters','updateViewerParameters','2662560PdGZQC','getParticles','flipY','getOwnPropertyDescriptor','removeEventListener','now','2686746cidoJZ','primitiveType','globalAlpha','lineLength','scene','getDirection','udata','CanvasWindField','framebuffer','xmin','destroy','addEventListener','createColorTableTexture','onmessage','currentParticlesPosition','rows','isInExtent','mode','_onMapWhellEvent','segmentsDepth','1SoMsat','data','beginPath','shaderProgram','options','stringify','defineProperty','changed','getContext','Draw','textures','tlng','calculateSpeed','SceneMode','pointer-events','enabled','processWindData','frameRateMonitor','ymax','UNSIGNED_INT','fromCache','steps','layer','_map','_animateFrame','floor','colors','RGBA','particleSystem','displayRange','xmax','DEPTH_COMPONENT','geometry','rawRenderState','_addedHook','modelMatrix','setDate','ONE_MINUS_SRC_ALPHA','1180580erSRmY','interpolated','initWorker','depthMask','lineTo','clearFramebuffers','getUVByXY','drawingBufferHeight','attributeLocations','WindUtil','createWindTextures','clientHeight','drawingBufferWidth','blending','canvasContext','updateWindData','canvas','latRange','_speedRate','commandList','removeChild','createSegmentsGeometry','moveTo','previousParticlesPosition','hidden','ymin','fragmentShaderSource','createComputingPrimitives','outputTexture','update','maxAge','reCreateWindTextures','keys','colorTable','lat','_pointerEvents','pixelSize','preExecute','forEach','register','8KZwZVT','updatePosition','createRenderingFramebuffers','sceneMode','morphComplete','toDegrees','lineWidth','2109102cgOZys','13448920xYSEGN','9BtNSno','#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a','Cesium','value','LayerUtil','LINEAR','stroke','_onMouseMoveEvent','red','windField','redraw','auto','cols','fixedHeight','sqrt','autoClear','windTextures','east','segmentsColor','remove','ellipsoid'];_0x4738=function(){return _0x22c3ba;};return _0x4738();}class ShaderManager{static['getCalculateSpeedShader'](){const _0x1e0cf2={};return _0x1e0cf2['sources']=[calculateSpeedShader],new ShaderSource$1(_0x1e0cf2);}static['getUpdatePositionShader'](){const _0x5d2537={};return _0x5d2537['sources']=[updatePositionShader],new ShaderSource$1(_0x5d2537);}static['getSegmentDrawVertexShader'](){function _0xb26c06(_0x20135a,_0x154783){return _0x2e342d(_0x20135a-0xcb,_0x154783);}const _0x41e137={};return _0x41e137[_0xb26c06(0x44d,0x434)]=[renderParticlesVertexShader],new ShaderSource$1(_0x41e137);}static['getSegmentDrawFragmentShader'](){const _0x22d5ea={};function _0x13d77d(_0x5a2d64,_0x842fd3){return _0x2e342d(_0x842fd3- -0x3f,_0x5a2d64);}return _0x22d5ea[_0x13d77d(0x2ea,0x343)]=[renderParticlesFragmentShader],new ShaderSource$1(_0x22d5ea);}static[_0x3e2b6f(-0x22,0x4b)](){const _0x72797d={};return _0x72797d['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x72797d);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defined,destroyObject}=mars3d__namespace[_0x2e342d(0x2fa,0x2fe)];class CustomPrimitive{constructor(_0x465386){this['commandType']=_0x465386['commandType'],this['geometry']=_0x465386[_0x3d6a8e(-0xb8,-0x51)],this['attributeLocations']=_0x465386[_0x3d6a8e(-0xaa,-0xd5)],this[_0x3d6a8e(-0xeb,-0x116)]=_0x465386['primitiveType'],this['uniformMap']=_0x465386[_0x2c3a22(-0x133,-0x169)]||{};function _0x2c3a22(_0x3895a4,_0xc2adbb){return _0x2e342d(_0xc2adbb- -0x493,_0x3895a4);}this['vertexShaderSource']=_0x465386['vertexShaderSource'],this['fragmentShaderSource']=_0x465386['fragmentShaderSource'],this['rawRenderState']=_0x465386[_0x3d6a8e(-0xb7,-0xc9)],this['framebuffer']=_0x465386[_0x2c3a22(-0x17f,-0x1fe)],this[_0x3d6a8e(-0x96,-0x101)]=_0x465386['outputTexture'],this['autoClear']=_0x465386['autoClear']??![],this['preExecute']=_0x465386[_0x2c3a22(-0x21d,-0x1a7)],this['show']=!![],this['commandToExecute']=undefined,this[_0x3d6a8e(-0x1b,-0x34)]=undefined,this[_0x2c3a22(-0x13c,-0x17e)]=_0x465386[_0x2c3a22(-0x1a2,-0x17e)]??(()=>!![]);function _0x3d6a8e(_0x35619e,_0x53172f){return _0x3e2b6f(_0x53172f,_0x35619e- -0x98);}this[_0x2c3a22(-0x155,-0x18c)]&&(this['clearCommand']=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}[_0x3e2b6f(0x73,0x6c)](_0x5174eb){function _0x55fa8(_0x589247,_0x452b8a){return _0x3e2b6f(_0x589247,_0x452b8a- -0x1e7);}function _0x2c380c(_0x19258f,_0x46f0f8){return _0x3e2b6f(_0x19258f,_0x46f0f8- -0x19);}if(this[_0x55fa8(-0x1e9,-0x163)]==='Draw'){const _0x2695b1={};_0x2695b1[_0x2c380c(-0x50,0x29)]=_0x5174eb,_0x2695b1[_0x55fa8(-0x1d2,-0x207)]=this['geometry'],_0x2695b1['attributeLocations']=this['attributeLocations'],_0x2695b1['bufferUsage']=BufferUsage$1['STATIC_DRAW'];const _0x6f522a=VertexArray$1['fromGeometry'](_0x2695b1),_0x25f70c={};_0x25f70c['context']=_0x5174eb,_0x25f70c[_0x2c380c(-0x32,0x46)]=this['vertexShaderSource'],_0x25f70c[_0x55fa8(-0x229,-0x1e7)]=this[_0x2c380c(0x62,-0x19)],_0x25f70c['attributeLocations']=this['attributeLocations'];const _0xa908e1=ShaderProgram['fromCache'](_0x25f70c),_0x5bec1d=RenderState[_0x2c380c(-0xa0,-0x45)](this['rawRenderState']),_0x2227df={};return _0x2227df['owner']=this,_0x2227df['vertexArray']=_0x6f522a,_0x2227df[_0x2c380c(-0xec,-0x6c)]=this[_0x2c380c(-0xd9,-0x6c)],_0x2227df[_0x55fa8(-0x264,-0x204)]=Matrix4['IDENTITY'],_0x2227df['renderState']=_0x5bec1d,_0x2227df['shaderProgram']=_0xa908e1,_0x2227df[_0x55fa8(-0x1ad,-0x233)]=this[_0x2c380c(-0x2b,-0x65)],_0x2227df['uniformMap']=this['uniformMap'],_0x2227df[_0x2c380c(-0x22,0x3e)]=Pass$1['OPAQUE'],new DrawCommand(_0x2227df);}else{if(this[_0x55fa8(-0x185,-0x163)]===_0x2c380c(0xfc,0x7b)){const _0x5e1f30={};return _0x5e1f30['owner']=this,_0x5e1f30[_0x2c380c(0x53,-0x19)]=this['fragmentShaderSource'],_0x5e1f30['uniformMap']=this[_0x55fa8(-0x13d,-0x19e)],_0x5e1f30['outputTexture']=this[_0x55fa8(-0x1fa,-0x1e5)],_0x5e1f30['persists']=!![],new ComputeCommand(_0x5e1f30);}else throw new Error(_0x2c380c(0xb0,0x26));}}[_0x2e342d(0x33b,0x2cf)](_0x2b3135,_0xf2f359){this['geometry']=_0xf2f359;function _0x15b175(_0x25ea21,_0xc5e9b2){return _0x2e342d(_0x25ea21-0x134,_0xc5e9b2);}function _0x30d9ba(_0x1f76fc,_0x3e9505){return _0x2e342d(_0x3e9505- -0x3b4,_0x1f76fc);}defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1[_0x30d9ba(-0xd8,-0x90)]({'context':_0x2b3135,'geometry':this[_0x30d9ba(-0x16d,-0xf3)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x3cf125){if(!this[_0x217e3c(-0x29,-0x50)]())return;if(!this[_0x217e3c(0x54,-0x1b)]||!defined(_0x3cf125))return;!defined(this['commandToExecute'])&&(this[_0x217e3c(0x45,0x13)]=this['createCommand'](_0x3cf125['context']));defined(this['preExecute'])&&this[_0x46bc82(-0x103,-0xd2)]();if(!_0x3cf125['commandList']){console['warn']('frameState.commandList\x20is\x20undefined');return;}function _0x46bc82(_0x257d7c,_0x4953bf){return _0x3e2b6f(_0x257d7c,_0x4953bf- -0xdd);}function _0x217e3c(_0x24752a,_0x5b05b9){return _0x2e342d(_0x5b05b9- -0x365,_0x24752a);}defined(this['clearCommand'])&&_0x3cf125['commandList'][_0x46bc82(-0xeb,-0x13b)](this['clearCommand']),defined(this['commandToExecute'])&&_0x3cf125[_0x46bc82(-0x142,-0xe4)]['push'](this[_0x46bc82(-0xb6,-0x46)]);}['isDestroyed'](){return![];}['destroy'](){function _0x3fb4f1(_0x4442c9,_0x4dab8d){return _0x3e2b6f(_0x4442c9,_0x4dab8d-0x1b8);}function _0x2b949a(_0x2f667d,_0x10cf03){return _0x2e342d(_0x10cf03- -0x323,_0x2f667d);}if(defined(this['commandToExecute'])){var _0x31514d;(_0x31514d=this['commandToExecute'][_0x3fb4f1(0x1bd,0x17b)])===null||_0x31514d===void 0x0||_0x31514d['destroy'](),this[_0x2b949a(0x60,0x55)][_0x3fb4f1(0x1dc,0x17b)]=undefined;}return destroyObject(this);}}function deepMerge(_0xcafe20,_0x2eaad9){if(!_0xcafe20)return _0x2eaad9;function _0x216c57(_0x10f9f2,_0x19265b){return _0x2e342d(_0x19265b-0xa0,_0x10f9f2);}if(!_0x2eaad9)return _0xcafe20;const _0x169cf3={..._0x2eaad9};function _0x2e3ead(_0x3a9c09,_0x785eb){return _0x2e342d(_0x3a9c09- -0x4c4,_0x785eb);}const _0x25d58d=_0x169cf3;for(const _0x4f49da in _0xcafe20){if(Object['prototype']['hasOwnProperty'][_0x2e3ead(-0x24d,-0x2d5)](_0xcafe20,_0x4f49da)){const _0x48958a=_0xcafe20[_0x4f49da],_0x56ec9a=_0x2eaad9[_0x4f49da];if(Array['isArray'](_0x48958a)){_0x25d58d[_0x4f49da]=_0x48958a[_0x2e3ead(-0x1ab,-0x1f1)]();continue;}if(_0x48958a&&typeof _0x48958a==='object'){_0x25d58d[_0x4f49da]=deepMerge(_0x48958a,_0x56ec9a||{});continue;}_0x48958a!==undefined&&(_0x25d58d[_0x4f49da]=_0x48958a);}}return _0x25d58d;}const {Cartesian2:Cartesian2$1,FrameRateMonitor,PixelDatatype:PixelDatatype$1,PixelFormat:PixelFormat$1,Sampler:Sampler$1,Texture:Texture$1,TextureMagnificationFilter:TextureMagnificationFilter$1,TextureMinificationFilter:TextureMinificationFilter$1}=mars3d__namespace['Cesium'];class WindParticlesComputing{constructor(_0x4e59c9,_0x4afa18,_0x3af5f8,_0x18a9ed,_0x3320f3){this[_0x504891(0x3e9,0x3a2)]=_0x4e59c9,this['options']=_0x3af5f8;function _0x4b5bfd(_0x256737,_0x3d97f3){return _0x3e2b6f(_0x256737,_0x3d97f3- -0xac);}this['viewerParameters']=_0x18a9ed,this[_0x504891(0x449,0x3c8)]=_0x4afa18,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;const _0x5dd84b={};_0x5dd84b[_0x4b5bfd(-0x169,-0xfc)]=_0x3320f3;function _0x504891(_0x2b8d3c,_0x197db2){return _0x3e2b6f(_0x197db2,_0x2b8d3c-0x3a7);}_0x5dd84b[_0x504891(0x338,0x33a)]=0x1,_0x5dd84b['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x5dd84b),this['initFrameRate'](),this['createWindTextures'](),this['createParticlesTextures'](),this['createComputingPrimitives']();}['initFrameRate'](){const _0x3a4316=()=>{function _0x26b9a5(_0x285aee,_0x4f81f1){return _0x3a79(_0x4f81f1- -0x1a8,_0x285aee);}function _0xcfe1f4(_0x3db6e0,_0x3cc962){return _0x3a79(_0x3db6e0- -0x279,_0x3cc962);}this[_0x26b9a5(-0x95,-0xd5)]['lastFramesPerSecond']>0x14&&(this['frameRate']=this[_0xcfe1f4(-0x1a6,-0x19d)]['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this[_0xcfe1f4(-0x101,-0x15b)],0x1));};_0x3a4316();const _0x15d91f=setInterval(_0x3a4316,0x3e8),_0x19297d=this['destroy']['bind'](this);this['destroy']=()=>{clearInterval(_0x15d91f),_0x19297d();};}[_0x3e2b6f(0x5c,-0x10)](){function _0x35d0f2(_0x5d2d65,_0x563dda){return _0x3e2b6f(_0x563dda,_0x5d2d65- -0x204);}function _0x4b7ed0(_0x414335,_0x507a60){return _0x2e342d(_0x414335- -0x461,_0x507a60);}const _0x14ce9e={};_0x14ce9e[_0x4b7ed0(-0x113,-0xe0)]=TextureMinificationFilter$1['LINEAR'],_0x14ce9e['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];const _0x42d010={'context':this['context'],'width':this[_0x35d0f2(-0x162,-0x1d1)]['width'],'height':this['windData'][_0x4b7ed0(-0xfa,-0xc2)],'pixelFormat':PixelFormat$1['RED'],'pixelDatatype':PixelDatatype$1[_0x4b7ed0(-0x144,-0x187)],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x14ce9e)};this[_0x35d0f2(-0x1dd,-0x1d9)]={'U':new Texture$1({..._0x42d010,'source':{'arrayBufferView':new Float32Array(this['windData']['u']['array'])}}),'V':new Texture$1({..._0x42d010,'source':{'arrayBufferView':new Float32Array(this[_0x35d0f2(-0x162,-0x15c)]['v'][_0x35d0f2(-0x272,-0x2f1)])}})};}['createParticlesTextures'](){const _0x9ec3a7={};_0x9ec3a7['minificationFilter']=TextureMinificationFilter$1[_0x29a612(-0x13a,-0x129)],_0x9ec3a7['magnificationFilter']=TextureMagnificationFilter$1['NEAREST'];function _0x29a612(_0x13d29d,_0x4a0f3e){return _0x2e342d(_0x13d29d- -0x447,_0x4a0f3e);}const _0x262e36={'context':this['context'],'width':this[_0x1f5467(0x41b,0x39a)]['particlesTextureSize'],'height':this['options'][_0x29a612(-0x12c,-0x154)],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options']['particlesTextureSize']*this['options'][_0x1f5467(0x491,0x4a5)]*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x9ec3a7)};function _0x1f5467(_0x4367c0,_0xc0e1bb){return _0x3e2b6f(_0xc0e1bb,_0x4367c0-0x457);}this[_0x1f5467(0x3f4,0x470)]={'previousParticlesPosition':new Texture$1(_0x262e36),'currentParticlesPosition':new Texture$1(_0x262e36),'nextParticlesPosition':new Texture$1(_0x262e36),'postProcessingPosition':new Texture$1(_0x262e36),'particlesSpeed':new Texture$1(_0x262e36)};}['destroyParticlesTextures'](){Object['values'](this['particlesTextures'])['forEach'](_0xaa73a0=>_0xaa73a0['destroy']());}[_0x3e2b6f(-0x4e,0x1)](){function _0x371731(_0x2c1833,_0xef7787){return _0x2e342d(_0xef7787- -0x2f9,_0x2c1833);}function _0x1490d3(_0x1dec29,_0x4c4b38){return _0x2e342d(_0x4c4b38- -0xda,_0x1dec29);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this[_0x1490d3(0x1cb,0x22e)]['U'],'V':()=>this['windTextures']['V'],'uRange':()=>new Cartesian2$1(this[_0x1490d3(0x328,0x2a9)]['u']['min'],this[_0x1490d3(0x2e0,0x2a9)]['u']['max']),'vRange':()=>new Cartesian2$1(this[_0x1490d3(0x251,0x2a9)]['v']['min'],this['windData']['v'][_0x371731(-0xa,0x60)]),'speedRange':()=>new Cartesian2$1(this['windData'][_0x1490d3(0x2a0,0x29d)]['min'],this['windData']['speed']['max']),'currentParticlesPosition':()=>this['particlesTextures'][_0x1490d3(0x15b,0x1c1)],'speedScaleFactor':()=>{function _0x4ef700(_0xc8fd06,_0x3a1063){return _0x1490d3(_0x3a1063,_0xc8fd06- -0x419);}function _0x1703ec(_0x4f873e,_0x4ea0d9){return _0x371731(_0x4ea0d9,_0x4f873e- -0x23);}return(this[_0x4ef700(-0x26e,-0x2c1)]['pixelSize']+0x32)*this[_0x1703ec(-0x77,-0xbd)][_0x1703ec(0x4d,0x1d)];},'frameRateAdjustment':()=>this[_0x1490d3(0x147,0x19b)],'dimension':()=>new Cartesian2$1(this[_0x371731(0x11,0x8a)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0x1490d3(0x278,0x253)],this[_0x1490d3(0x2f0,0x2a9)]['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData'][_0x371731(-0x25,0x64)][_0x1490d3(0x214,0x22f)],this[_0x1490d3(0x225,0x2a9)][_0x1490d3(0x30c,0x283)]['north'])},'fragmentShaderSource':ShaderManager[_0x1490d3(0x263,0x29f)](),'outputTexture':this[_0x371731(-0x74,-0x7b)]['particlesSpeed'],'preExecute':()=>{function _0x2f82c3(_0x2015a6,_0x29bf62){return _0x371731(_0x29bf62,_0x2015a6-0xf2);}const _0x3d15b1=this['particlesTextures'][_0x10319d(0x51,-0x30)];this[_0x2f82c3(0x77,0x51)]['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'],this['particlesTextures']['currentParticlesPosition']=this['particlesTextures'][_0x2f82c3(0x110,0x14d)],this['particlesTextures'][_0x2f82c3(0x110,0x17b)]=_0x3d15b1;function _0x10319d(_0x4dcad4,_0x3e2c44){return _0x1490d3(_0x3e2c44,_0x4dcad4- -0x1b3);}this['primitives']['calculateSpeed']['commandToExecute']&&(this['primitives'][_0x2f82c3(0xa6,0xdd)]['commandToExecute']['outputTexture']=this[_0x2f82c3(0x77,0x51)]['particlesSpeed']);},'isDynamic':()=>this[_0x1490d3(0x1a3,0x1cb)]['dynamic']}),'updatePosition':new CustomPrimitive({'commandType':_0x1490d3(0x26b,0x29b),'uniformMap':{'currentParticlesPosition':()=>this[_0x371731(-0x6,-0x7b)]['currentParticlesPosition'],'particlesSpeed':()=>this[_0x1490d3(0x1cd,0x1a4)][_0x1490d3(0x2e3,0x260)]},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures'][_0x1490d3(0x28d,0x263)],'preExecute':()=>{function _0x563fb2(_0x4eca03,_0x15009f){return _0x1490d3(_0x15009f,_0x4eca03-0x271);}function _0x122ea0(_0x53e7ef,_0x373e78){return _0x1490d3(_0x53e7ef,_0x373e78-0x22);}this[_0x122ea0(0x176,0x1c4)][_0x563fb2(0x487,0x4b4)]['commandToExecute']&&(this['primitives']['updatePosition']['commandToExecute']['outputTexture']=this['particlesTextures'][_0x563fb2(0x4d4,0x510)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x371731(-0xa3,-0x7b)][_0x1490d3(0x26b,0x263)],'particlesSpeed':()=>this[_0x1490d3(0x14e,0x1a4)]['particlesSpeed'],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this[_0x371731(-0x1,-0x74)][_0x371731(-0x62,-0x21)],'dataLonRange':()=>new Cartesian2$1(this[_0x1490d3(0x2d4,0x2a9)]['bounds'][_0x371731(0x14,0x34)],this['windData'][_0x371731(0x75,0x64)]['east']),'dataLatRange':()=>new Cartesian2$1(this['windData'][_0x371731(0x5c,0x64)][_0x371731(-0x45,0x16)],this['windData'][_0x371731(0xdf,0x64)]['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this['options'][_0x371731(-0x23,-0x81)],'useViewerBounds':()=>this[_0x371731(-0x1c,-0x54)]['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this[_0x371731(-0xce,-0x7b)]['postProcessingPosition'],'preExecute':()=>{function _0x56f035(_0x524b03,_0x4fa432){return _0x371731(_0x524b03,_0x4fa432- -0x1bb);}function _0x4bbbbe(_0x4e5b4f,_0x38ea86){return _0x1490d3(_0x38ea86,_0x4e5b4f- -0x1f0);}this[_0x56f035(-0x1cc,-0x238)][_0x4bbbbe(0x4d,-0x2a)]['commandToExecute']&&(this['primitives'][_0x56f035(-0x1e2,-0x19d)]['commandToExecute']['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this['options']['dynamic']})};}[_0x3e2b6f(0x42,0x5)](){this[_0x104e56(-0xe3,-0x74)]['U']['destroy']();function _0x605878(_0x148093,_0x2ce946){return _0x3e2b6f(_0x2ce946,_0x148093-0x1fb);}function _0x104e56(_0x5cb91b,_0x87c858){return _0x3e2b6f(_0x5cb91b,_0x87c858- -0x9b);}this[_0x104e56(-0xb2,-0x74)]['V'][_0x104e56(-0xe4,-0xe5)](),this['createWindTextures']();}[_0x2e342d(0x2d6,0x32e)](_0x3d5634){this['windData']=_0x3d5634,this['reCreateWindTextures']();}['updateOptions'](_0x325098){function _0x2f2532(_0x2aa0ad,_0x535722){return _0x3e2b6f(_0x2aa0ad,_0x535722- -0x15f);}function _0x372f14(_0x2a02fa,_0x3949ef){return _0x2e342d(_0x3949ef- -0x1fc,_0x2a02fa);}const _0x22f02f=_0x325098[_0x2f2532(-0x183,-0x1b7)]!==undefined&&_0x325098[_0x372f14(0x45,0x8d)]!==this['options'][_0x2f2532(-0x18c,-0x1b7)];this['options']=deepMerge(_0x325098,this['options']),_0x22f02f&&this['reCreateWindTextures']();}[_0x2e342d(0x2b1,0x2b0)](_0x4fa3cc){const {array:_0x135451}=_0x4fa3cc;let {min:_0x3ceffb,max:_0x56c984}=_0x4fa3cc;const _0x188d38=new Float32Array(_0x135451['length']);_0x3ceffb===undefined&&(console[_0x3fb905(0xee,0xd7)]('min\x20is\x20undefined,\x20calculate\x20min'),_0x3ceffb=Math[_0x3fb905(0x109,0xc5)](..._0x135451));function _0x3fb905(_0x415c1f,_0x299d39){return _0x2e342d(_0x299d39- -0x257,_0x415c1f);}_0x56c984===undefined&&(console['warn'](_0x3fb905(0xbd,0xc8)),_0x56c984=Math['max'](..._0x135451));const _0x4de0d1=Math[_0x3fb905(0x187,0x102)](Math['abs'](_0x3ceffb),Math['abs'](_0x56c984));for(let _0x33df6b=0x0;_0x33df6b<_0x135451[_0x3fb905(0x120,0xe0)];_0x33df6b++){const _0x2c59c6=_0x135451[_0x33df6b]/_0x4de0d1;_0x188d38[_0x33df6b]=_0x2c59c6;}function _0x3d4a64(_0x610688,_0x37114d){return _0x2e342d(_0x37114d- -0x25b,_0x610688);}return _0x188d38;}[_0x2e342d(0x297,0x27a)](){Object[_0x472606(-0xec,-0xbb)](this[_0x472606(-0x12a,-0x183)])['forEach'](_0x1518d5=>_0x1518d5['destroy']()),Object['values'](this['particlesTextures'])['forEach'](_0x30c878=>_0x30c878['destroy']()),Object['values'](this['primitives'])[_0x472606(-0x145,-0x119)](_0x4825c4=>_0x4825c4[_0x1436ec(0x368,0x317)]());function _0x1436ec(_0x19087b,_0x4d58d2){return _0x2e342d(_0x19087b-0xd1,_0x4d58d2);}function _0x472606(_0xc7c384,_0x5a426d){return _0x3e2b6f(_0x5a426d,_0xc7c384- -0x151);}this[_0x472606(-0x180,-0x1f4)][_0x1436ec(0x368,0x3ac)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace[_0x3e2b6f(0x93,0x19)];class WindParticlesRendering{constructor(_0x162c2d,_0x1d294c,_0x39e39e,_0x3dad40){this[_0x2ce0c9(-0x272,-0x279)]=_0x162c2d,this['options']=_0x1d294c,this['viewerParameters']=_0x39e39e;function _0x2ce0c9(_0x2220e8,_0x5f42bc){return _0x2e342d(_0x2220e8- -0x595,_0x5f42bc);}this['computing']=_0x3dad40;(typeof this['options'][_0x4f4ac9(0x547,0x51c)]!=='number'||this['options'][_0x2ce0c9(-0x27a,-0x24d)]<=0x0)&&(console[_0x2ce0c9(-0x211,-0x236)]('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this[_0x2ce0c9(-0x2f0,-0x340)][_0x4f4ac9(0x531,0x51c)]=0x100);this['colorTable']=this[_0x4f4ac9(0x4b3,0x49a)](),this['textures']=this['createRenderingTextures'](),this[_0x4f4ac9(0x579,0x532)]=this[_0x2ce0c9(-0x2a4,-0x2eb)]();function _0x4f4ac9(_0x226a45,_0x5f48e5){return _0x2e342d(_0x5f48e5-0x201,_0x226a45);}this[_0x4f4ac9(0x479,0x47d)]=this['createPrimitives']();}['createRenderingTextures'](){const _0x3ae35a={};_0x3ae35a[_0x2da71f(-0x1e1,-0x261)]=this['context'];function _0x2da71f(_0x38db0e,_0x2c3bc5){return _0x3e2b6f(_0x38db0e,_0x2c3bc5- -0x2a3);}_0x3ae35a[_0x3b0219(-0x24,0x4)]=this['context']['drawingBufferWidth'],_0x3ae35a['height']=this['context']['drawingBufferHeight'],_0x3ae35a['pixelFormat']=PixelFormat[_0x2da71f(-0x2b9,-0x2c8)],_0x3ae35a['pixelDatatype']=PixelDatatype['UNSIGNED_BYTE'];const _0x5d0911=_0x3ae35a,_0x1b7aa6={};_0x1b7aa6[_0x3b0219(0xbb,0xa8)]=this[_0x2da71f(-0x26f,-0x261)],_0x1b7aa6['width']=this['context']['drawingBufferWidth'],_0x1b7aa6['height']=this[_0x2da71f(-0x2c7,-0x261)]['drawingBufferHeight'],_0x1b7aa6[_0x3b0219(0x154,0xf9)]=PixelFormat[_0x3b0219(0x33,0x45)],_0x1b7aa6['pixelDatatype']=PixelDatatype[_0x3b0219(-0xf,0x39)];function _0x3b0219(_0xb19ffe,_0x4688bc){return _0x2e342d(_0x4688bc- -0x27b,_0xb19ffe);}const _0x21a641=_0x1b7aa6;return{'segmentsColor':new Texture(_0x5d0911),'segmentsDepth':new Texture(_0x21a641)};}['createRenderingFramebuffers'](){function _0x2e80cf(_0x1c9f46,_0x1ec9a0){return _0x2e342d(_0x1ec9a0- -0x543,_0x1c9f46);}const _0x463c49={};_0x463c49[_0x2e80cf(-0x281,-0x220)]=this[_0x1d7bde(-0x1aa,-0x1e5)],_0x463c49['colorTextures']=[this['textures'][_0x2e80cf(-0x1d1,-0x239)]];function _0x1d7bde(_0x10d9d3,_0x4caa4a){return _0x3e2b6f(_0x4caa4a,_0x10d9d3- -0x1ec);}return _0x463c49[_0x2e80cf(-0x249,-0x1f0)]=this[_0x1d7bde(-0x222,-0x1fb)][_0x2e80cf(-0x28b,-0x2a3)],{'segments':new Framebuffer(_0x463c49)};}['destoryRenderingFramebuffers'](){function _0x5e7291(_0x5cc29f,_0x340fc9){return _0x3e2b6f(_0x340fc9,_0x5cc29f- -0x1a9);}function _0x3b8321(_0x8174c,_0xff601c){return _0x3e2b6f(_0x8174c,_0xff601c-0x271);}Object[_0x3b8321(0x34a,0x2d6)](this['framebuffers'])[_0x5e7291(-0x19d,-0x170)](_0x3801bb=>{_0x3801bb['destroy']();});}['createColorTableTexture'](){const _0x4b8c37=new Float32Array(this[_0x1698bb(0x40c,0x3a7)]['colors'][_0x530d38(0x83,0xc)](_0x4c1320=>{function _0x485c67(_0x157cd6,_0x5ca712){return _0x1698bb(_0x5ca712- -0x59e,_0x157cd6);}const _0x4a33d4=Color$1[_0x485c67(-0xc0,-0xcb)](_0x4c1320);function _0x257efc(_0x1f3611,_0x365815){return _0x1698bb(_0x365815- -0x70,_0x1f3611);}return[_0x4a33d4[_0x485c67(-0x19c,-0x137)],_0x4a33d4['green'],_0x4a33d4['blue'],_0x4a33d4['alpha']];}));function _0x530d38(_0x4a6771,_0x251cb3){return _0x3e2b6f(_0x4a6771,_0x251cb3- -0x4f);}const _0x598bf3={};function _0x1698bb(_0x2c7b58,_0x51e4f0){return _0x2e342d(_0x2c7b58-0x167,_0x51e4f0);}return _0x598bf3[_0x530d38(0x1f,0x1e)]=TextureMinificationFilter[_0x1698bb(0x464,0x453)],_0x598bf3['magnificationFilter']=TextureMagnificationFilter['LINEAR'],_0x598bf3['wrapS']=TextureWrap['CLAMP_TO_EDGE'],_0x598bf3[_0x1698bb(0x4cb,0x54e)]=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this['context'],'width':this[_0x530d38(-0x38,-0x8b)][_0x1698bb(0x422,0x3d7)][_0x530d38(0x36,0x7)],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype[_0x1698bb(0x484,0x438)],'sampler':new Sampler(_0x598bf3),'source':{'width':this['options']['colors'][_0x1698bb(0x49e,0x505)],'height':0x1,'arrayBufferView':_0x4b8c37}});}['createSegmentsGeometry'](){const _0x1d5627=0x4,_0x473511=this['options']['particlesTextureSize'];let _0x1dcb9f=[];for(let _0x92acc5=0x0;_0x92acc5<_0x473511;_0x92acc5++){for(let _0x5a9e2f=0x0;_0x5a9e2f<_0x473511;_0x5a9e2f++){for(let _0x3cf274=0x0;_0x3cf274<_0x1d5627;_0x3cf274++){_0x1dcb9f[_0x16ba02(0xc0,0x114)](_0x92acc5/_0x473511),_0x1dcb9f[_0x16ba02(0xca,0x114)](_0x5a9e2f/_0x473511);}}}_0x1dcb9f=new Float32Array(_0x1dcb9f);function _0x16ba02(_0x42db03,_0x31dcdb){return _0x2e342d(_0x31dcdb- -0x16f,_0x42db03);}const _0x1557e1=this['options'][_0x16ba02(0x201,0x1ac)]**0x2;let _0x3e8b5b=[];for(let _0x45f193=0x0;_0x45f193<_0x1557e1;_0x45f193++){_0x3e8b5b[_0x3b16d9(0x1d8,0x1b1)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x3e8b5b=new Float32Array(_0x3e8b5b);let _0x4a58a3=[];for(let _0x489e36=0x0,_0x7cc3cf=0x0;_0x489e36<_0x1557e1;_0x489e36++){_0x4a58a3['push'](_0x7cc3cf+0x0,_0x7cc3cf+0x1,_0x7cc3cf+0x2,_0x7cc3cf+0x2,_0x7cc3cf+0x1,_0x7cc3cf+0x3),_0x7cc3cf+=_0x1d5627;}_0x4a58a3=new Uint32Array(_0x4a58a3);const _0x4e1b02={};_0x4e1b02['componentDatatype']=ComponentDatatype['FLOAT'],_0x4e1b02[_0x3b16d9(0x1e5,0x23e)]=0x2,_0x4e1b02['values']=_0x1dcb9f;const _0x429dc8={};_0x429dc8['componentDatatype']=ComponentDatatype['FLOAT'],_0x429dc8['componentsPerAttribute']=0x3,_0x429dc8[_0x3b16d9(0x2be,0x274)]=_0x3e8b5b;function _0x3b16d9(_0x49309c,_0x12c0dd){return _0x3e2b6f(_0x49309c,_0x12c0dd-0x20f);}const _0x149dd1=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x4e1b02),'normal':new GeometryAttribute(_0x429dc8)}),'indices':_0x4a58a3});return _0x149dd1;}['createRawRenderState'](_0x40c17c){const _0x3caef1={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x40c17c};return Appearance['getDefaultRenderState'](!![],![],_0x3caef1);}['createPrimitives'](){const _0x3e160d={};_0x3e160d['st']=0x0,_0x3e160d['normal']=0x1;const _0x589c8e={};_0x589c8e['enabled']=!![];const _0x46c24a={};function _0xf21f7(_0x813dab,_0x2b2897){return _0x3e2b6f(_0x2b2897,_0x813dab-0xd8);}_0x46c24a[_0x22f48d(0x121,0xe5)]=!![],_0x46c24a[_0xf21f7(0x143,0x1cb)]=WebGLRenderingContext['FUNC_ADD'],_0x46c24a['blendFuncSource']=WebGLRenderingContext['SRC_ALPHA'],_0x46c24a['blendFuncDestination']=WebGLRenderingContext[_0x22f48d(0x133,0xfb)];const _0x5d50a6={};_0x5d50a6[_0x22f48d(0x168,0x19b)]=undefined,_0x5d50a6['depthTest']=_0x589c8e,_0x5d50a6[_0xf21f7(0xc1,0xfa)]=!![],_0x5d50a6[_0x22f48d(0x85,0x109)]=_0x46c24a;const _0x2a6db3=new CustomPrimitive({'commandType':_0x22f48d(0x11f,0xdf),'attributeLocations':_0x3e160d,'geometry':this[_0xf21f7(0xd3,0x127)](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures']['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing'][_0x22f48d(0x87,0xb3)]['currentParticlesPosition'],'postProcessingPosition':()=>this['computing'][_0x22f48d(0x56,0xb3)]['postProcessingPosition'],'particlesSpeed':()=>this[_0xf21f7(0x10b,0x174)][_0x22f48d(0xfc,0xb3)][_0xf21f7(0x131,0x168)],'frameRateAdjustment':()=>this[_0xf21f7(0x10b,0x136)][_0x22f48d(0x2f,0xaa)],'colorTable':()=>this[_0x22f48d(0xbc,0x11d)],'domain':()=>{var _0xe62df3,_0xcda740;function _0x4f9cac(_0x410a52,_0x1b430a){return _0xf21f7(_0x410a52- -0x308,_0x1b430a);}function _0x32361c(_0x3b52a2,_0x2d31e2){return _0x22f48d(_0x3b52a2,_0x2d31e2- -0x319);}const _0x3abcb9=new Cartesian2(((_0xe62df3=this[_0x4f9cac(-0x26c,-0x270)]['domain'])===null||_0xe62df3===void 0x0?void 0x0:_0xe62df3[_0x4f9cac(-0x1f5,-0x1ce)])??this[_0x4f9cac(-0x1fd,-0x202)][_0x32361c(-0x117,-0x161)]['speed']['min'],((_0xcda740=this['options'][_0x4f9cac(-0x298,-0x2db)])===null||_0xcda740===void 0x0?void 0x0:_0xcda740[_0x32361c(-0x123,-0x18b)])??this['computing'][_0x32361c(-0x19d,-0x161)][_0x4f9cac(-0x19a,-0x1eb)][_0x4f9cac(-0x1b8,-0x1b0)]);return _0x3abcb9;},'displayRange':()=>{function _0x1ce227(_0x22bc1b,_0x547ac1){return _0xf21f7(_0x547ac1-0x31b,_0x22bc1b);}function _0x4c4c55(_0x5d3328,_0x6196cc){return _0x22f48d(_0x6196cc,_0x5d3328-0x269);}var _0x3fec45,_0x538ce9;const _0x143a7c=new Cartesian2(((_0x3fec45=this['options']['displayRange'])===null||_0x3fec45===void 0x0?void 0x0:_0x3fec45['min'])??this['computing'][_0x4c4c55(0x421,0x412)]['speed']['min'],((_0x538ce9=this[_0x4c4c55(0x343,0x365)][_0x1ce227(0x3dd,0x3d0)])===null||_0x538ce9===void 0x0?void 0x0:_0x538ce9[_0x4c4c55(0x3f7,0x3b7)])??this[_0x4c4c55(0x3b2,0x40b)]['windData'][_0x1ce227(0x436,0x489)]['max']);return _0x143a7c;},'particleHeight':()=>this[_0xf21f7(0x9c,0x10e)]['fixedHeight']||0x0,'aspect':()=>this['context'][_0x22f48d(0x135,0x108)]/this[_0x22f48d(0xd0,0x158)][_0xf21f7(0xc5,0xa2)],'pixelSize':()=>this['viewerParameters'][_0xf21f7(0xe2,0x107)],'lineWidth':()=>{function _0x59e2c3(_0x259b6e,_0x12814c){return _0xf21f7(_0x12814c- -0x2e1,_0x259b6e);}function _0x23daed(_0x45bfe5,_0x1cf1db){return _0x22f48d(_0x1cf1db,_0x45bfe5-0x38f);}const _0x4d3c26={};_0x4d3c26['min']=0x1,_0x4d3c26['max']=0x2;const _0x3940ac=this[_0x23daed(0x469,0x43a)][_0x59e2c3(-0x27b,-0x1f5)]||_0x4d3c26;return new Cartesian2(_0x3940ac['min'],_0x3940ac[_0x59e2c3(-0x145,-0x191)]);},'lineLength':()=>{const _0x3b4d0f={};function _0x30b69a(_0x5cda2a,_0x3a2cef){return _0xf21f7(_0x3a2cef-0x155,_0x5cda2a);}_0x3b4d0f[_0x30b69a(0x29d,0x268)]=0x14;function _0x14ed09(_0x2771df,_0x2aa3c4){return _0x22f48d(_0x2771df,_0x2aa3c4-0x39c);}_0x3b4d0f[_0x14ed09(0x4b9,0x52a)]=0x64;const _0xbb4316=this['options']['lineLength']||_0x3b4d0f;return new Cartesian2(_0xbb4316['min'],_0xbb4316['max']);},'is3D':()=>this['viewerParameters']['sceneMode']===SceneMode[_0xf21f7(0x161,0xf2)],'segmentsDepthTexture':()=>this['textures'][_0x22f48d(0xe6,0xd5)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x5d50a6)});function _0x22f48d(_0x169ec8,_0x115f3a){return _0x2e342d(_0x115f3a- -0x1cb,_0x169ec8);}const _0x230c91={};return _0x230c91['segments']=_0x2a6db3,_0x230c91;}['onParticlesTextureSizeChange'](){const _0x2ffa40=this[_0x584501(-0x114,-0x13d)]();function _0x584501(_0xed47d3,_0x6812d5){return _0x2e342d(_0x6812d5- -0x419,_0xed47d3);}this['primitives'][_0x55014f(0x174,0x14f)]['geometry']=_0x2ffa40;const _0x34c6e8={};_0x34c6e8[_0x55014f(0x121,0x17d)]=this[_0x584501(-0x112,-0xf6)],_0x34c6e8['geometry']=_0x2ffa40,_0x34c6e8['attributeLocations']=this['primitives'][_0x55014f(0x174,0x1ed)]['attributeLocations'];function _0x55014f(_0x40381b,_0x3878a3){return _0x2e342d(_0x40381b- -0x202,_0x3878a3);}_0x34c6e8['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0x5c74f4=VertexArray[_0x584501(-0xef,-0xf5)](_0x34c6e8);this['primitives'][_0x584501(-0x87,-0xa3)][_0x584501(-0x47,-0xa1)]&&(this[_0x55014f(0x7a,-0xc)]['segments']['commandToExecute']['vertexArray']=_0x5c74f4);}['onColorTableChange'](){this[_0x24ffe0(0x75,0xd)]['destroy']();function _0x24ffe0(_0x4ad1b3,_0x4577d7){return _0x2e342d(_0x4ad1b3- -0x273,_0x4577d7);}this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x373492){const _0x439fbb=_0x373492['colors']&&JSON[_0x4a71a7(0x4ad,0x451)](_0x373492['colors'])!==JSON['stringify'](this[_0x197f3f(-0x21d,-0x1df)]['colors']);function _0x197f3f(_0x5e4fa6,_0x132d8b){return _0x3e2b6f(_0x132d8b,_0x5e4fa6- -0x1e1);}function _0x4a71a7(_0x2552ad,_0x49d1a6){return _0x2e342d(_0x49d1a6-0x1ab,_0x2552ad);}this['options']=deepMerge(_0x373492,this[_0x4a71a7(0x4a3,0x450)]),_0x439fbb&&this[_0x4a71a7(0x556,0x4ff)]();}['destroy'](){Object['values'](this['framebuffers'])['forEach'](_0x33b085=>{function _0x3a656b(_0x21e02,_0x4dafb4){return _0x3a79(_0x4dafb4-0x185,_0x21e02);}_0x33b085[_0x3a656b(0x1cd,0x23d)]();}),Object['values'](this['primitives'])['forEach'](_0x2c1ea0=>{_0x2c1ea0['destroy']();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x4aa120,_0x5408c3,_0xe3a558,_0x7b864,_0x40abc5){this['context']=_0x4aa120,this[_0x242a76(0xd,0x69)]=_0xe3a558,this[_0x3a9bb3(0x129,0xfa)]=_0x7b864;function _0x3a9bb3(_0x39bad6,_0x359035){return _0x3e2b6f(_0x39bad6,_0x359035-0x156);}this[_0x242a76(0x145,0xd8)]=new WindParticlesComputing(_0x4aa120,_0x5408c3,_0xe3a558,_0x7b864,_0x40abc5),this['rendering']=new WindParticlesRendering(_0x4aa120,_0xe3a558,_0x7b864,this['computing']);function _0x242a76(_0x47b1d4,_0x15c9fe){return _0x2e342d(_0x15c9fe- -0x23c,_0x47b1d4);}this['clearFramebuffers']();}[_0x2e342d(0x32b,0x2d5)](){function _0x2c09f2(_0x2e57d0,_0x12cb5e){return _0x3e2b6f(_0x2e57d0,_0x12cb5e-0x158);}const _0x3b5e7e=[this[_0x2a6e30(0x495,0x4d9)]['primitives']['calculateSpeed'],this[_0x2c09f2(0x137,0x18b)][_0x2c09f2(0x142,0xf3)]['updatePosition'],this[_0x2a6e30(0x4ef,0x4d9)]['primitives'][_0x2c09f2(0x18b,0x18e)],this['rendering'][_0x2a6e30(0x43b,0x441)][_0x2c09f2(0x219,0x1ed)]];function _0x2a6e30(_0xe5892d,_0x40ee80){return _0x3e2b6f(_0xe5892d,_0x40ee80-0x4a6);}return _0x3b5e7e;}[_0x2e342d(0x2cc,0x30e)](){const _0x3139d7=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x5403f8(_0x296c2f,_0x5c63ac){return _0x2e342d(_0x5c63ac- -0x45a,_0x296c2f);}function _0x34b275(_0xd7eb74,_0x218447){return _0x2e342d(_0xd7eb74- -0x4d4,_0x218447);}Object[_0x5403f8(-0x1bb,-0x173)](this['rendering'][_0x5403f8(-0xf8,-0x129)])[_0x34b275(-0x1e7,-0x25e)](_0x2bc445=>{function _0x4a2ecc(_0x5e4410,_0x268e56){return _0x34b275(_0x268e56-0x320,_0x5e4410);}function _0x186b86(_0x11dc71,_0x5e246c){return _0x34b275(_0x5e246c-0xac,_0x11dc71);}_0x3139d7[_0x186b86(-0x10b,-0x193)]=this['rendering']['framebuffers'][_0x2bc445],_0x3139d7['execute'](this[_0x4a2ecc(0x1ca,0x16f)]);});}['changeOptions'](_0x3f0823){let _0x54d1c5=![];_0x3f0823['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x3f0823[_0x250efb(0x455,0x445)]&&(_0x54d1c5=!![]);const _0x1dce71=deepMerge(_0x3f0823,this['options']);if(_0x1dce71['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');function _0x250efb(_0x57b191,_0x5725df){return _0x2e342d(_0x5725df-0x12a,_0x57b191);}this[_0x250efb(0x37c,0x3cf)]=_0x1dce71,this[_0x2e2867(0x528,0x588)]['updateOptions'](_0x3f0823);function _0x2e2867(_0x4567f9,_0x50908c){return _0x2e342d(_0x4567f9-0x1d0,_0x50908c);}this[_0x2e2867(0x4e4,0x503)]['updateOptions'](_0x3f0823),_0x54d1c5&&(this['computing']['destroyParticlesTextures'](),this['computing'][_0x2e2867(0x533,0x52a)](),this['rendering']['onParticlesTextureSizeChange']());}[_0x3e2b6f(0x71,0x70)](_0xb4c6f8){function _0x45557c(_0x1931ba,_0x5a46d8){return _0x2e342d(_0x1931ba- -0x4c6,_0x5a46d8);}this[_0x45557c(-0x241,-0x23c)]=_0xb4c6f8,this['computing'][_0x3b0363(-0xd7,-0x123)]=_0xb4c6f8;function _0x3b0363(_0x56140f,_0xb75437){return _0x2e342d(_0x56140f- -0x35c,_0xb75437);}this['rendering']['viewerParameters']=_0xb4c6f8;}['destroy'](){this[_0x1e9ed0(0x1b5,0x1c0)][_0x51c155(-0x8d,-0x8c)]();function _0x51c155(_0xacacad,_0x120aea){return _0x2e342d(_0xacacad- -0x324,_0x120aea);}function _0x1e9ed0(_0x125d15,_0x579f1e){return _0x2e342d(_0x579f1e- -0x154,_0x125d15);}this['rendering']['destroy']();}}const Cesium$1=mars3d__namespace[_0x2e342d(0x2fa,0x350)],BaseLayer$1=mars3d__namespace[_0x3e2b6f(0x36,-0x2a)]['BaseLayer'],_0x542785={};function _0x3a79(_0x2273dd,_0x29b68c){const _0x473875=_0x4738();return _0x3a79=function(_0x3a7940,_0x477111){_0x3a7940=_0x3a7940-0x93;let _0x34d451=_0x473875[_0x3a7940];return _0x34d451;},_0x3a79(_0x2273dd,_0x29b68c);}_0x542785['min']=0x1,_0x542785['max']=0x2;const _0x54e4eb={};_0x54e4eb['min']=0x14,_0x54e4eb[_0x2e342d(0x359,0x3b7)]=0x64;const _0x1e2fd2={};_0x1e2fd2[_0x2e342d(0x31b,0x344)]=0x64,_0x1e2fd2['fixedHeight']=0x0,_0x1e2fd2['lineWidth']=_0x542785,_0x1e2fd2[_0x2e342d(0x290,0x2e5)]=_0x54e4eb,_0x1e2fd2['speedFactor']=0x1,_0x1e2fd2[_0x3e2b6f(0xa0,0x71)]=0.003,_0x1e2fd2[_0x3e2b6f(0x1f,-0x69)]=0.001,_0x1e2fd2['colors']=['rgb(206,255,255)'],_0x1e2fd2[_0x2e342d(0x289,0x22c)]=![];function _0x3e2b6f(_0x690ac8,_0x269cfe){return _0x3a79(_0x269cfe- -0x102,_0x690ac8);}_0x1e2fd2['dynamic']=!![];const DEF_OPTIONS=_0x1e2fd2;class WindLayer extends BaseLayer$1{constructor(_0x2b5c7b={}){_0x2b5c7b={...DEF_OPTIONS,..._0x2b5c7b},super(_0x2b5c7b),this['_setOptionsHook'](_0x2b5c7b,_0x2b5c7b);}get[_0x3e2b6f(-0xb1,-0x2a)](){function _0x170f84(_0x50e552,_0x50b789){return _0x3e2b6f(_0x50e552,_0x50b789- -0x11);}return this[_0x170f84(-0x11,-0x76)];}get['data'](){return this['options']['data'];}set['data'](_0x30b1d4){this['options'][_0x3655b0(0xbc,0x145)]=_0x30b1d4;function _0x3655b0(_0x4a91fc,_0x4bc4c7){return _0x2e342d(_0x4a91fc- -0x1e6,_0x4bc4c7);}this['setData'](_0x30b1d4);}get['colors'](){function _0x4dface(_0x5b3a40,_0xc313ef){return _0x2e342d(_0xc313ef- -0x2cf,_0x5b3a40);}return this['options'][_0x4dface(-0x6d,-0x14)];}set['colors'](_0x434367){this[_0x3c68d4(0x4f,0x43)]['colors']=_0x434367;const _0x32d450={};_0x32d450['colors']=_0x434367;function _0x28e574(_0x4c4ba7,_0x22dc43){return _0x2e342d(_0x22dc43- -0x315,_0x4c4ba7);}function _0x3c68d4(_0x1b3c21,_0x400dbd){return _0x2e342d(_0x1b3c21- -0x256,_0x400dbd);}this['_setOptionsHook'](this[_0x3c68d4(0x4f,0x6b)],_0x32d450);}['_showHook'](_0x2dcdd6){_0x2dcdd6?this['_addedHook']():this['_removedHook']();}['_mountedHook'](){}[_0x3e2b6f(0x44,-0x1e)](){this['scene']=this['_map']['scene'],this[_0x5782b7(-0x23c,-0x1fd)]=this['_map'][_0x5782b7(-0x23c,-0x1b5)];this['options']['data']&&this[_0x5782b7(-0x26f,-0x288)](this['options']['data']);if(!this['windData']||!this['show'])return;this['viewerParameters']={'lonRange':new Cesium$1[(_0x5782b7(-0x261,-0x287))](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x5782b7(-0x306,-0x38c)]['mode']},this['updateViewerParameters'](),this['particleSystem']=new WindParticleSystem(this['scene'][_0x5782b7(-0x274,-0x27c)],this['windData'],this[_0x5782b7(-0x2f2,-0x26c)],this['viewerParameters'],this[_0x7508cf(0x321,0x30a)]);function _0x5782b7(_0x595369,_0x546b45){return _0x3e2b6f(_0x546b45,_0x595369- -0x2b6);}this['primitives']=this['particleSystem']['getPrimitives'](),this[_0x7508cf(0x316,0x2f5)][_0x5782b7(-0x2aa,-0x24f)](_0xef25a4=>{function _0x2fe552(_0x1e788d,_0x508575){return _0x7508cf(_0x508575,_0x1e788d- -0x2b6);}this[_0x2fe552(0x54,0x97)]['primitives']['add'](_0xef25a4);});function _0x7508cf(_0x356212,_0x39e3a9){return _0x3e2b6f(_0x356212,_0x39e3a9-0x35a);}this[_0x5782b7(-0x23c,-0x2a0)]['percentageChanged']=0.01,this['camera'][_0x7508cf(0x342,0x321)]['addEventListener'](this['updateViewerParameters'][_0x7508cf(0x3bf,0x3c1)](this)),this['scene'][_0x5782b7(-0x2a4,-0x263)]['addEventListener'](this[_0x7508cf(0x2d6,0x2ff)][_0x5782b7(-0x24f,-0x29c)](this)),window['addEventListener']('resize',this['updateViewerParameters']['bind'](this));}['_removedHook'](){function _0x2521e0(_0x101734,_0x245308){return _0x2e342d(_0x101734-0x84,_0x245308);}this['camera'][_0x423049(0x25,0x32)][_0x423049(0x8,0x5)](this['updateViewerParameters'][_0x423049(0xc5,0x64)](this)),this[_0x423049(0xe,0xf)]['morphComplete'][_0x2521e0(0x30f,0x361)](this['updateViewerParameters'][_0x2521e0(0x3cc,0x367)](this)),window['removeEventListener']('resize',this[_0x423049(0x3,-0xd)][_0x423049(0xc5,0xf4)](this));function _0x423049(_0x139ed1,_0x3f3a39){return _0x2e342d(_0x139ed1- -0x283,_0x3f3a39);}this['primitives']&&(this['primitives']['forEach'](_0x57edc0=>{function _0x2da249(_0x17a45a,_0x4761b5){return _0x423049(_0x4761b5- -0x265,_0x17a45a);}function _0xe308c4(_0x50c48e,_0x573150){return _0x2521e0(_0x50c48e- -0x1fc,_0x573150);}this[_0x2da249(-0x2c1,-0x257)]['primitives'][_0x2da249(-0x187,-0x1dd)](_0x57edc0);}),delete this['primitives']),this[_0x2521e0(0x341,0x315)]&&(this['particleSystem'][_0x2521e0(0x31b,0x34b)](),delete this[_0x423049(0x3a,0x2a)]);}[_0x3e2b6f(0x5f,0x47)](_0x3f570c,_0x5f0ad8){function _0x564b4a(_0x2a9b5e,_0x141771){return _0x2e342d(_0x141771-0x1a0,_0x2a9b5e);}function _0x53bcd6(_0x5c0948,_0x5629af){return _0x2e342d(_0x5629af- -0x3,_0x5c0948);}this['windData']=this[_0x564b4a(0x4ba,0x451)](_0x3f570c);if(_0x5f0ad8){this[_0x564b4a(0x478,0x500)](),this['_addedHook']();return;}this['particleSystem']?(this['particleSystem']['computing'][_0x564b4a(0x437,0x476)](this['windData']),this[_0x53bcd6(0x238,0x28e)][_0x564b4a(0x3f2,0x421)]()):this['_addedHook']();}[_0x2e342d(0x349,0x35f)](_0x117e9e,_0x48bfd4){function _0x1203fd(_0x3165dd,_0x281435){return _0x3e2b6f(_0x3165dd,_0x281435- -0xce);}this['particleSystem']&&(this['particleSystem']['changeOptions'](_0x48bfd4),this['scene'][_0x1203fd(-0xd6,-0x12e)]());}['processWindData'](_0x16163b){var _0x2b8dcd,_0x136dac;const _0x1a8b09={..._0x16163b};function _0x5e3edb(_0xcddc21,_0x53ed96){return _0x2e342d(_0x53ed96- -0x301,_0xcddc21);}function _0x178429(_0x361abc,_0xe89f7){return _0x3e2b6f(_0xe89f7,_0x361abc- -0xb7);}const _0x3e16a7=_0x1a8b09;!_0x3e16a7['height']&&_0x3e16a7[_0x5e3edb(-0x93,-0x65)]&&(_0x3e16a7['height']=_0x3e16a7['rows']);!_0x3e16a7['width']&&_0x3e16a7['cols']&&(_0x3e16a7['width']=_0x3e16a7[_0x178429(-0x94,-0xa2)]);!_0x3e16a7['bounds']&&(_0x3e16a7['bounds']={'west':_0x3e16a7[_0x178429(-0x102,-0x9d)],'south':_0x3e16a7[_0x5e3edb(0x47,-0x21)],'east':_0x3e16a7['xmax'],'north':_0x3e16a7['ymax']});if(!_0x3e16a7['u']){const _0x182446={};_0x182446['array']=_0x16163b[_0x178429(-0x105,-0xc0)],_0x182446[_0x5e3edb(-0x3,0x1b)]=_0x16163b[_0x178429(-0x26,0x58)],_0x182446['max']=_0x16163b[_0x178429(-0x66,-0x5)],_0x3e16a7['u']=_0x182446;}if(!_0x3e16a7['v']){const _0x43ccc3={};_0x43ccc3['array']=_0x16163b['vdata'],_0x43ccc3[_0x5e3edb(0x2c,0x1b)]=_0x16163b['vmin'],_0x43ccc3['max']=_0x16163b['vmax'],_0x3e16a7['v']=_0x43ccc3;}if(((_0x2b8dcd=_0x3e16a7[_0x5e3edb(0x51,0x76)])===null||_0x2b8dcd===void 0x0?void 0x0:_0x2b8dcd[_0x5e3edb(0x82,0x1b)])===undefined||((_0x136dac=_0x3e16a7['speed'])===null||_0x136dac===void 0x0?void 0x0:_0x136dac[_0x178429(-0x3f,-0xc5)])===undefined||_0x3e16a7[_0x178429(-0x21,0x66)]['array']===undefined){const _0x55f17a={'array':new Float32Array(_0x3e16a7['u']['array']['length']),'min':Number[_0x178429(-0x76,-0x76)],'max':Number['MIN_VALUE']};for(let _0x37b06d=0x0;_0x37b06d<_0x3e16a7['u']['array']['length'];_0x37b06d++){_0x55f17a['array'][_0x37b06d]=Math['sqrt'](_0x3e16a7['u'][_0x5e3edb(-0x52,-0x8e)][_0x37b06d]*_0x3e16a7['u'][_0x178429(-0x125,-0x167)][_0x37b06d]+_0x3e16a7['v']['array'][_0x37b06d]*_0x3e16a7['v']['array'][_0x37b06d]),_0x55f17a[_0x5e3edb(-0xbe,-0x8e)][_0x37b06d]!==0x0&&(_0x55f17a[_0x178429(-0x7c,-0x53)]=Math['min'](_0x55f17a[_0x5e3edb(-0x2a,0x1b)],_0x55f17a['array'][_0x37b06d]),_0x55f17a[_0x178429(-0x3f,-0x74)]=Math['max'](_0x55f17a['max'],_0x55f17a['array'][_0x37b06d]));}_0x3e16a7[_0x5e3edb(0x57,0x76)]=_0x55f17a;}return _0x3e16a7;}[_0x2e342d(0x286,0x2f5)](){var _0x2a9b71;const _0x260c7d=this[_0x26fe1c(0x3ac,0x336)];function _0x26fe1c(_0x290a1a,_0x1812db){return _0x3e2b6f(_0x1812db,_0x290a1a-0x3fc);}if(!_0x260c7d)return;const _0x3b8c56=_0x260c7d['canvas'],_0x256c09={};_0x256c09['x']=0x0,_0x256c09['y']=0x0;const _0x528c4e={};_0x528c4e['x']=0x0,_0x528c4e['y']=_0x3b8c56['clientHeight'];const _0x4860c9={};_0x4860c9['x']=_0x3b8c56['clientWidth'],_0x4860c9['y']=0x0;const _0x408c9f={};_0x408c9f['x']=_0x3b8c56['clientWidth'];function _0x1d988c(_0x23a5e4,_0x535498){return _0x3e2b6f(_0x535498,_0x23a5e4- -0x24f);}_0x408c9f['y']=_0x3b8c56[_0x1d988c(-0x25e,-0x201)];const _0x6d5680=[_0x256c09,_0x528c4e,_0x4860c9,_0x408c9f];let _0x38dcba=0xb4,_0x3df1aa=-0xb4,_0x1fc54e=0x5a,_0x125ebe=-0x5a,_0xef46b1=![];for(const _0x523f0a of _0x6d5680){const _0x39e248=_0x260c7d['camera']['pickEllipsoid'](new Cesium$1['Cartesian2'](_0x523f0a['x'],_0x523f0a['y']),_0x260c7d['globe']['ellipsoid']);if(!_0x39e248){_0xef46b1=!![];break;}const _0x4a7207=_0x260c7d['globe']['ellipsoid'][_0x1d988c(-0x1c1,-0x1f5)](_0x39e248),_0xb07443=Cesium$1['Math'][_0x1d988c(-0x23c,-0x1b6)](_0x4a7207['longitude']),_0x5116c7=Cesium$1['Math'][_0x1d988c(-0x23c,-0x230)](_0x4a7207['latitude']);_0x38dcba=Math[_0x26fe1c(0x437,0x408)](_0x38dcba,_0xb07443),_0x3df1aa=Math['max'](_0x3df1aa,_0xb07443),_0x1fc54e=Math[_0x26fe1c(0x437,0x477)](_0x1fc54e,_0x5116c7),_0x125ebe=Math['max'](_0x125ebe,_0x5116c7);}if(!_0xef46b1){const _0x303142=new Cesium$1[(_0x1d988c(-0x1fa,-0x22d))](Math[_0x26fe1c(0x474,0x41e)](this['windData'][_0x1d988c(-0x1d3,-0x1b7)][_0x26fe1c(0x448,0x3d4)],_0x38dcba),Math['min'](this[_0x1d988c(-0x1ad,-0x15d)]['bounds'][_0x1d988c(-0x227,-0x24e)],_0x3df1aa)),_0x335100=new Cesium$1[(_0x26fe1c(0x451,0x493))](Math[_0x1d988c(-0x1d7,-0x156)](this[_0x26fe1c(0x49e,0x45d)]['bounds']['south'],_0x1fc54e),Math['min'](this['windData'][_0x26fe1c(0x478,0x41d)]['north'],_0x125ebe)),_0x8d7de3=(_0x303142['y']-_0x303142['x'])*0.05,_0x3dea07=(_0x335100['y']-_0x335100['x'])*0.05;_0x303142['x']=Math[_0x1d988c(-0x1d7,-0x18a)](this['windData']['bounds'][_0x1d988c(-0x203,-0x1b4)],_0x303142['x']-_0x8d7de3),_0x303142['y']=Math['min'](this[_0x1d988c(-0x1ad,-0x1ce)]['bounds']['east'],_0x303142['y']+_0x8d7de3),_0x335100['x']=Math[_0x26fe1c(0x474,0x403)](this['windData'][_0x1d988c(-0x1d3,-0x259)][_0x26fe1c(0x42a,0x432)],_0x335100['x']-_0x3dea07),_0x335100['y']=Math['min'](this['windData']['bounds']['north'],_0x335100['y']+_0x3dea07),this['viewerParameters']['lonRange']=_0x303142,this['viewerParameters'][_0x1d988c(-0x258,-0x265)]=_0x335100;const _0x263a4b=this[_0x26fe1c(0x49e,0x4ca)]['bounds']['east']-this['windData'][_0x26fe1c(0x478,0x4a4)]['west'],_0x563c79=this['windData']['bounds']['north']-this[_0x1d988c(-0x1ad,-0x236)]['bounds']['south'],_0xeb2ca5=(_0x303142['y']-_0x303142['x'])/_0x263a4b,_0x37a840=(_0x335100['y']-_0x335100['x'])/_0x563c79,_0x14c9ee=Math['min'](_0xeb2ca5,_0x37a840),_0x472a55=0x3e8*_0x14c9ee;_0x472a55>0x0&&(this[_0x26fe1c(0x3a0,0x34c)][_0x26fe1c(0x406,0x39b)]=Math['max'](0x0,Math[_0x26fe1c(0x437,0x465)](0x3e8,_0x472a55)));}this['viewerParameters'][_0x1d988c(-0x23e,-0x281)]=this[_0x1d988c(-0x29f,-0x21e)][_0x26fe1c(0x3b9,0x41d)],(_0x2a9b71=this[_0x1d988c(-0x273,-0x1fc)])===null||_0x2a9b71===void 0x0||_0x2a9b71[_0x26fe1c(0x46c,0x493)](this['viewerParameters']);}['getDataAtLonLat'](_0x32fffc,_0x1a3f35){const {bounds:_0x123c51,width:_0x1e7579,height:_0x3c2b9e,u:_0x42b46c,v:_0xb2657a,speed:_0x59a696}=this['windData'],{flipY:_0x36469f}=this['options'];if(_0x32fffc<_0x123c51[_0x524058(0x2fa,0x290)]||_0x32fffc>_0x123c51['east']||_0x1a3f35<_0x123c51['south']||_0x1a3f35>_0x123c51[_0x524058(0x1c3,0x1de)])return null;const _0x130c85=(_0x32fffc-_0x123c51[_0x18e0d6(-0xda,-0xfc)])/(_0x123c51[_0x524058(0x289,0x26c)]-_0x123c51['west'])*(_0x1e7579-0x1);let _0x38ff03=(_0x1a3f35-_0x123c51[_0x524058(0x28b,0x272)])/(_0x123c51['north']-_0x123c51['south'])*(_0x3c2b9e-0x1);_0x36469f&&(_0x38ff03=_0x3c2b9e-0x1-_0x38ff03);const _0x59ecdf=Math['floor'](_0x130c85),_0x3dd237=Math['floor'](_0x38ff03),_0x58a098=Math['floor'](_0x130c85),_0x2967ec=Math['min'](_0x58a098+0x1,_0x1e7579-0x1),_0x84bb56=Math[_0x18e0d6(-0x195,-0x16f)](_0x38ff03),_0xd68f2f=Math[_0x524058(0x285,0x27f)](_0x84bb56+0x1,_0x3c2b9e-0x1),_0x42ed4e=_0x130c85-_0x58a098,_0x390afa=_0x38ff03-_0x84bb56,_0x546331=_0x3dd237*_0x1e7579+_0x59ecdf,_0x13c744=_0x84bb56*_0x1e7579+_0x58a098,_0x57bfc8=_0x84bb56*_0x1e7579+_0x2967ec,_0x215803=_0xd68f2f*_0x1e7579+_0x58a098,_0x2238fa=_0xd68f2f*_0x1e7579+_0x2967ec,_0x49dcf7=_0x42b46c['array'][_0x13c744],_0x8e1ce5=_0x42b46c['array'][_0x57bfc8],_0x40b408=_0x42b46c[_0x18e0d6(-0x1a0,-0x1b6)][_0x215803];function _0x524058(_0x1db3aa,_0x4e0a6b){return _0x2e342d(_0x4e0a6b- -0x9d,_0x1db3aa);}const _0x56b9bb=_0x42b46c['array'][_0x2238fa],_0x3cbce4=(0x1-_0x42ed4e)*(0x1-_0x390afa)*_0x49dcf7+_0x42ed4e*(0x1-_0x390afa)*_0x8e1ce5+(0x1-_0x42ed4e)*_0x390afa*_0x40b408+_0x42ed4e*_0x390afa*_0x56b9bb,_0x4dc3a3=_0xb2657a[_0x524058(0x22f,0x1d6)][_0x13c744],_0x7ad4f3=_0xb2657a['array'][_0x57bfc8],_0x31f808=_0xb2657a[_0x18e0d6(-0x19d,-0x1b6)][_0x215803],_0x326860=_0xb2657a[_0x524058(0x179,0x1d6)][_0x2238fa],_0x1aa6fc=(0x1-_0x42ed4e)*(0x1-_0x390afa)*_0x4dc3a3+_0x42ed4e*(0x1-_0x390afa)*_0x7ad4f3+(0x1-_0x42ed4e)*_0x390afa*_0x31f808+_0x42ed4e*_0x390afa*_0x326860,_0x565e6b=Math['sqrt'](_0x3cbce4*_0x3cbce4+_0x1aa6fc*_0x1aa6fc),_0x303767={};_0x303767['u']=_0x42b46c[_0x18e0d6(-0x1c7,-0x1b6)][_0x546331],_0x303767['v']=_0xb2657a[_0x524058(0x18b,0x1d6)][_0x546331],_0x303767[_0x18e0d6(-0xc5,-0xb2)]=_0x59a696['array'][_0x546331];const _0x21be3b={};_0x21be3b['u']=_0x3cbce4,_0x21be3b['v']=_0x1aa6fc,_0x21be3b['speed']=_0x565e6b;const _0xa75a33={};_0xa75a33['original']=_0x303767,_0xa75a33[_0x524058(0x290,0x22b)]=_0x21be3b;function _0x18e0d6(_0x50eb4a,_0x2d5980){return _0x3e2b6f(_0x50eb4a,_0x2d5980- -0x148);}return _0xa75a33;}}function _0x2e342d(_0x34338a,_0x4f9727){return _0x3a79(_0x34338a-0x1df,_0x4f9727);}mars3d__namespace['LayerUtil']['register']('wind',WindLayer),mars3d__namespace['layer']['WindLayer']=WindLayer;class CanvasParticle{constructor(){this[_0x3a0e38(-0x1dc,-0x258)]=null;function _0x3a0e38(_0xace60,_0x582728){return _0x3e2b6f(_0xace60,_0x582728- -0x2b5);}this['lat']=null;function _0x4e02fa(_0x5a3cc7,_0x5eb326){return _0x2e342d(_0x5a3cc7- -0x58c,_0x5eb326);}this[_0x4e02fa(-0x2e0,-0x27c)]=null,this['tlat']=null,this['age']=null,this['speed']=null;}[_0x2e342d(0x297,0x2bf)](){for(const _0x144232 in this){delete this[_0x144232];}}}class CanvasWindField{constructor(_0x287e30){this['setOptions'](_0x287e30);}get['speedRate'](){return this['_speedRate'];}set[_0x2e342d(0x274,0x22e)](_0x27bbff){function _0x50c6e7(_0x5e8759,_0x3281eb){return _0x2e342d(_0x5e8759- -0x1,_0x3281eb);}function _0x5cb6d4(_0x10674a,_0x683af1){return _0x2e342d(_0x10674a- -0x489,_0x683af1);}this[_0x5cb6d4(-0x1b0,-0x207)]=(0x64-(_0x27bbff>0x63?0x63:_0x27bbff))*0x64,this[_0x5cb6d4(-0x176,-0x1b2)]=[(this['xmax']-this['xmin'])/this[_0x50c6e7(0x2d8,0x32a)],(this['ymax']-this[_0x50c6e7(0x2df,0x2fb)])/this['_speedRate']];}get['maxAge'](){return this['_maxAge'];}set['maxAge'](_0x1611b4){this['_maxAge']=_0x1611b4;}[_0x3e2b6f(0x3e,0x6e)](_0x28d8f7){this['options']=_0x28d8f7;function _0x41299b(_0x1af950,_0x213eb9){return _0x2e342d(_0x1af950- -0x5e,_0x213eb9);}this[_0x60995d(0x14,-0x67)]=_0x28d8f7['maxAge']||0x78,this['speedRate']=_0x28d8f7[_0x60995d(-0x131,-0xd8)]||0x32,this['particles']=[];function _0x60995d(_0x59f13f,_0x19b22f){return _0x2e342d(_0x19b22f- -0x34c,_0x59f13f);}const _0x337421=_0x28d8f7[_0x60995d(0x19,-0x8)]||0x1000;for(let _0x184160=0x0;_0x184160<_0x337421;_0x184160++){const _0x3ab867=this['_randomParticle'](new CanvasParticle());this['particles'][_0x60995d(-0x8c,-0xc9)](_0x3ab867);}}[_0x2e342d(0x2c5,0x34f)](_0x1a283c){this[_0x3e497b(0x6c,0xe4)]=_0x1a283c['rows'],this[_0x3e497b(0xd3,0x14c)]=_0x1a283c['cols'],this['xmin']=_0x1a283c['xmin'],this[_0x14d75a(0x108,0x13e)]=_0x1a283c[_0x14d75a(0x108,0x159)],this[_0x3e497b(0x115,0x128)]=_0x1a283c['ymin'];function _0x14d75a(_0x2761cc,_0x3aa68d){return _0x2e342d(_0x2761cc- -0x1b7,_0x3aa68d);}function _0x3e497b(_0x10aa1b,_0x982600){return _0x2e342d(_0x982600- -0x1b8,_0x10aa1b);}this['ymax']=_0x1a283c['ymax'],this['grid']=[];const _0x2285c1=_0x1a283c['udata'],_0x37d360=_0x1a283c['vdata'];let _0x1d3c51=![];_0x2285c1['length']===this['rows']&&_0x2285c1[0x0]['length']===this['cols']&&(_0x1d3c51=!![]);let _0x8e676f=0x0,_0x564ba9=null,_0x27efbf=null;for(let _0x5e916e=0x0;_0x5e916e<this['rows'];_0x5e916e++){_0x564ba9=[];for(let _0x4380a7=0x0;_0x4380a7<this['cols'];_0x4380a7++,_0x8e676f++){_0x1d3c51?_0x27efbf=this['_calcUV'](_0x2285c1[_0x5e916e][_0x4380a7],_0x37d360[_0x5e916e][_0x4380a7]):_0x27efbf=this[_0x3e497b(0x112,0x169)](_0x2285c1[_0x8e676f],_0x37d360[_0x8e676f]),_0x564ba9['push'](_0x27efbf);}this['grid']['push'](_0x564ba9);}!this['options']['flipY']&&this[_0x3e497b(0x17c,0x160)]['reverse']();}[_0x2e342d(0x326,0x34b)](){delete this['rows'],delete this['cols'],delete this['xmin'],delete this[_0xc5d204(-0xb7,-0x71)];function _0x5c15ad(_0x5186fd,_0x477514){return _0x2e342d(_0x5186fd- -0x1b3,_0x477514);}function _0xc5d204(_0x13ed72,_0x5cdaac){return _0x3e2b6f(_0x13ed72,_0x5cdaac- -0x4f);}delete this[_0x5c15ad(0x12d,0x18d)],delete this['ymax'],delete this['grid'],delete this['particles'];}['toGridXY'](_0x51d5e8,_0x2e44cf){function _0x2cddb0(_0x570598,_0x4ec70f){return _0x2e342d(_0x570598- -0x271,_0x4ec70f);}const _0x4ac62c=(_0x51d5e8-this['xmin'])/(this['xmax']-this['xmin'])*(this[_0x2cddb0(0x93,0x85)]-0x1);function _0x525e4e(_0x9a962c,_0x14e3a3){return _0x2e342d(_0x9a962c- -0xc9,_0x14e3a3);}const _0x59c19c=(this['ymax']-_0x2e44cf)/(this['ymax']-this[_0x525e4e(0x217,0x281)])*(this['rows']-0x1);return[_0x4ac62c,_0x59c19c];}[_0x3e2b6f(0x11,-0x14)](_0x1cb76c,_0x5aedc4){if(_0x1cb76c<0x0||_0x1cb76c>=this['cols']||_0x5aedc4>=this[_0x36d615(0x252,0x22c)])return[0x0,0x0,0x0];const _0xf684f=Math['floor'](_0x1cb76c),_0x1b2ffe=Math['floor'](_0x5aedc4);if(_0xf684f===_0x1cb76c&&_0x1b2ffe===_0x5aedc4)return this[_0x249d32(0xff,0xa9)][_0x5aedc4][_0x1cb76c];const _0x21f3c4=_0xf684f+0x1;function _0x249d32(_0x396769,_0x316592){return _0x2e342d(_0x396769- -0x219,_0x316592);}const _0x3d203d=_0x1b2ffe+0x1;function _0x36d615(_0x495830,_0x577710){return _0x2e342d(_0x577710- -0x70,_0x495830);}const _0x517b1d=this[_0x36d615(0x21a,0x25d)](_0xf684f,_0x1b2ffe),_0x16efef=this['getUVByXY'](_0x21f3c4,_0x1b2ffe),_0x33e9f9=this['getUVByXY'](_0xf684f,_0x3d203d),_0x3ab2c0=this[_0x249d32(0xb4,0x72)](_0x21f3c4,_0x3d203d);let _0x1690d2=null;try{_0x1690d2=this['_bilinearInterpolation'](_0x1cb76c-_0xf684f,_0x5aedc4-_0x1b2ffe,_0x517b1d,_0x16efef,_0x33e9f9,_0x3ab2c0);}catch(_0x3c9046){console['log'](_0x1cb76c,_0x5aedc4);}return _0x1690d2;}[_0x3e2b6f(0x24,0x87)](_0xc5b2cf,_0x4405c4,_0x4365af,_0x1912a0,_0x45f0f5,_0x20645e){const _0x4ddf04=0x1-_0xc5b2cf,_0x5af20=0x1-_0x4405c4,_0x3d3926=_0x4ddf04*_0x5af20,_0x16ff0d=_0xc5b2cf*_0x5af20,_0x181474=_0x4ddf04*_0x4405c4;function _0x3cffcd(_0x3a2080,_0x4d3ed7){return _0x2e342d(_0x3a2080- -0x24c,_0x4d3ed7);}const _0x2dfeb2=_0xc5b2cf*_0x4405c4,_0x308479=_0x4365af[0x0]*_0x3d3926+_0x1912a0[0x0]*_0x16ff0d+_0x45f0f5[0x0]*_0x181474+_0x20645e[0x0]*_0x2dfeb2,_0x5705c7=_0x4365af[0x1]*_0x3d3926+_0x1912a0[0x1]*_0x16ff0d+_0x45f0f5[0x1]*_0x181474+_0x20645e[0x1]*_0x2dfeb2;return this[_0x3cffcd(0xd5,0x7c)](_0x308479,_0x5705c7);}['_calcUV'](_0x2ada50,_0x1a96ee){function _0x23203d(_0x2d6e75,_0x13d16f){return _0x3e2b6f(_0x2d6e75,_0x13d16f-0x488);}return[+_0x2ada50,+_0x1a96ee,Math[_0x23203d(0x51c,0x4ad)](_0x2ada50*_0x2ada50+_0x1a96ee*_0x1a96ee)];}['getUVByPoint'](_0x39ffc9,_0x2f9f51){if(!this['isInExtent'](_0x39ffc9,_0x2f9f51))return null;function _0x4a36f8(_0x556301,_0x518d5c){return _0x2e342d(_0x518d5c- -0x530,_0x556301);}const _0xbc7da1=this[_0x5b4ba3(-0x7,-0x27)](_0x39ffc9,_0x2f9f51);function _0x5b4ba3(_0x414fe8,_0x56c6ca){return _0x3e2b6f(_0x414fe8,_0x56c6ca- -0x57);}const _0x28e8ec=this[_0x4a36f8(-0x23a,-0x263)](_0xbc7da1[0x0],_0xbc7da1[0x1]);return _0x28e8ec;}[_0x3e2b6f(-0x81,-0x44)](_0x229bdb,_0x47a2a8){function _0x12f089(_0x35f128,_0x12140b){return _0x2e342d(_0x12140b- -0x274,_0x35f128);}return _0x229bdb>=this['xmin']&&_0x229bdb<=this[_0x12f089(0x9d,0x4b)]&&_0x47a2a8>=this['ymin']&&_0x47a2a8<=this['ymax']?!![]:![];}[_0x2e342d(0x335,0x383)](){const _0x11569c=fRandomByfloat(this[_0x5e2e93(-0x1e1,-0x1ed)],this['xmax']),_0x4844f2=fRandomByfloat(this['ymin'],this[_0x5e2e93(-0x1c4,-0x230)]);function _0x5e2e93(_0x3c4056,_0x3c9015){return _0x3e2b6f(_0x3c9015,_0x3c4056- -0x196);}const _0x21bbc3={};_0x21bbc3['lat']=_0x4844f2,_0x21bbc3['lng']=_0x11569c;function _0x4f61d3(_0x22de7b,_0x2c5da1){return _0x2e342d(_0x2c5da1- -0x11c,_0x22de7b);}return _0x21bbc3;}[_0x3e2b6f(-0xd1,-0x59)](){let _0x3d9bcd,_0x5f27ab,_0x4f259a;function _0x3217c2(_0x3e04b0,_0x474e0d){return _0x2e342d(_0x474e0d- -0x16c,_0x3e04b0);}function _0x1ab447(_0x259b0d,_0x2afe58){return _0x3e2b6f(_0x259b0d,_0x2afe58- -0x1cb);}for(let _0xe354aa=0x0,_0x210c85=this[_0x1ab447(-0xf0,-0x139)]['length'];_0xe354aa<_0x210c85;_0xe354aa++){let _0x57b2da=this['particles'][_0xe354aa];_0x57b2da[_0x3217c2(0x176,0x1d9)]<=0x0&&(_0x57b2da=this['_randomParticle'](_0x57b2da));if(_0x57b2da['age']>0x0){const _0x506a74=_0x57b2da[_0x3217c2(0xf1,0x140)],_0x5efc1b=_0x57b2da[_0x1ab447(-0x109,-0x156)];_0x4f259a=this['getUVByPoint'](_0x506a74,_0x5efc1b),_0x4f259a?(_0x3d9bcd=_0x506a74+this['_calc_speedRate'][0x0]*_0x4f259a[0x0],_0x5f27ab=_0x5efc1b+this['_calc_speedRate'][0x1]*_0x4f259a[0x1],_0x57b2da['lng']=_0x506a74,_0x57b2da['lat']=_0x5efc1b,_0x57b2da[_0x3217c2(0x15e,0x140)]=_0x3d9bcd,_0x57b2da['tlat']=_0x5f27ab,_0x57b2da['speed']=_0x4f259a[0x2],_0x57b2da['age']--):_0x57b2da['age']=0x0;}}return this['particles'];}['_randomParticle'](_0x46d4b2){let _0x48de06,_0x5dfc13;for(let _0x17ff96=0x0;_0x17ff96<0x1e;_0x17ff96++){_0x48de06=this['getRandomLatLng'](),_0x5dfc13=this['getUVByPoint'](_0x48de06['lng'],_0x48de06['lat']);if(_0x5dfc13&&_0x5dfc13[0x2]>0x0)break;}if(!_0x5dfc13)return _0x46d4b2;const _0x1006ae=_0x48de06['lng']+this['_calc_speedRate'][0x0]*_0x5dfc13[0x0];function _0x3fb021(_0x5ae6ec,_0x1da54f){return _0x3e2b6f(_0x1da54f,_0x5ae6ec-0x481);}const _0x4830ff=_0x48de06['lat']+this['_calc_speedRate'][0x1]*_0x5dfc13[0x1];_0x46d4b2[_0x3fb021(0x4de,0x566)]=_0x48de06['lng'],_0x46d4b2['lat']=_0x48de06['lat'];function _0x1b6fd0(_0x28f4e7,_0xc0f495){return _0x3e2b6f(_0xc0f495,_0x28f4e7-0x377);}return _0x46d4b2[_0x3fb021(0x44c,0x3e8)]=_0x1006ae,_0x46d4b2['tlat']=_0x4830ff,_0x46d4b2['age']=Math['round'](0xa+Math['random']()*this['maxAge']),_0x46d4b2['speed']=_0x5dfc13[0x2],_0x46d4b2;}['destroy'](){for(const _0x3750a0 in this){delete this[_0x3750a0];}}}function fRandomByfloat(_0x106e4b,_0x50e893){return _0x106e4b+Math['random']()*(_0x50e893-_0x106e4b);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x3e2b6f(0x47,-0x2a)][_0x3e2b6f(0x2b,0x62)];class CanvasWindLayer extends BaseLayer{constructor(_0x35ac5f={}){function _0x35c30c(_0x14094e,_0x5833d7){return _0x3e2b6f(_0x5833d7,_0x14094e-0x42c);}super(_0x35ac5f),this[_0x35c30c(0x494,0x51a)](_0x35ac5f),this['canvas']=null;function _0x193cab(_0x3d890f,_0x5aa0cc){return _0x3e2b6f(_0x3d890f,_0x5aa0cc-0x388);}_0x35ac5f['colors']&&_0x35ac5f[_0x193cab(0x3d2,0x35d)]&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x35ac5f));}['_setOptionsHook'](_0x14c9b5,_0x12c1f1){this['frameTime']=0x3e8/(_0x14c9b5[_0x2af368(0x178,0x161)]||0xa),this['_pointerEvents']=this['options']['pointerEvents']??![],this['color']=_0x14c9b5[_0x2af368(0x182,0x184)]||'#ffffff',this[_0x2af368(0x116,0xaf)]=_0x14c9b5[_0x2af368(0x116,0xf9)]||0x1;function _0x36227d(_0x4c7936,_0x3eaddc){return _0x3e2b6f(_0x4c7936,_0x3eaddc-0x258);}this['fixedHeight']=_0x14c9b5[_0x36227d(0x259,0x27c)]??0x0,this[_0x36227d(0x1e7,0x200)]=_0x14c9b5['flipY']??![];function _0x2af368(_0x35cbd4,_0x3c04ef){return _0x3e2b6f(_0x3c04ef,_0x35cbd4-0x102);}this['windField']&&this[_0x2af368(0x122,0x167)][_0x36227d(0x2f6,0x2c6)](_0x14c9b5);}get[_0x3e2b6f(-0x5a,-0x2a)](){function _0x501540(_0x26a028,_0x2b5145){return _0x2e342d(_0x26a028- -0x273,_0x2b5145);}return this[_0x501540(0x64,-0x22)];}get['canvasWidth'](){function _0x51d341(_0x555dd9,_0x3855f8){return _0x3e2b6f(_0x3855f8,_0x555dd9- -0x1e7);}function _0x385c46(_0x118267,_0x49ea05){return _0x2e342d(_0x118267- -0x37f,_0x49ea05);}return this['_map'][_0x385c46(-0xee,-0x106)][_0x385c46(-0xa8,-0x2e)][_0x51d341(-0x15b,-0x16b)];}get['canvasHeight'](){function _0xff6a78(_0x5378b0,_0x6b27e7){return _0x2e342d(_0x5378b0- -0x4d6,_0x6b27e7);}function _0x80aae3(_0x50e1bd,_0x2fa4d3){return _0x3e2b6f(_0x50e1bd,_0x2fa4d3- -0x115);}return this[_0x80aae3(-0xee,-0x13e)]['scene'][_0xff6a78(-0x1ff,-0x1b1)]['clientHeight'];}get[_0x2e342d(0x37c,0x3eb)](){return this['_pointerEvents'];}set[_0x3e2b6f(0xf7,0x9b)](_0x10291c){function _0x2e8b9e(_0xecc285,_0x9d404c){return _0x3e2b6f(_0xecc285,_0x9d404c- -0x1ee);}this['_pointerEvents']=_0x10291c;if(!this[_0x2e8b9e(-0x204,-0x1f8)])return;function _0x4889e6(_0x949b2,_0x2c20f7){return _0x3e2b6f(_0x949b2,_0x2c20f7- -0x254);}_0x10291c?this['canvas']['style'][_0x2e8b9e(-0x275,-0x220)]='all':this[_0x2e8b9e(-0x1ca,-0x1f8)]['style']['pointer-events']='none';}get[_0x2e342d(0x344,0x2d5)](){function _0x43d565(_0x32b6b1,_0x4c282a){return _0x3e2b6f(_0x4c282a,_0x32b6b1- -0x12);}return this[_0x43d565(-0x4e,-0x6f)]['particlesNumber'];}set['particlesNumber'](_0x54a8aa){this['options']['particlesNumber']=_0x54a8aa,clearTimeout(this['_canrefresh']);function _0x2557a2(_0x1a3dc0,_0x23b22d){return _0x3e2b6f(_0x23b22d,_0x1a3dc0-0x26a);}this[_0x2557a2(0x20b,0x1e8)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x3e2b6f(-0x50,-0x6d)](){function _0x420355(_0x155add,_0x493aa7){return _0x3e2b6f(_0x493aa7,_0x155add-0x4db);}return this[_0x420355(0x49f,0x43d)]['speedRate'];}set[_0x2e342d(0x274,0x2c8)](_0x515f2b){function _0x422132(_0x43bf83,_0x30187c){return _0x2e342d(_0x30187c-0x120,_0x43bf83);}function _0x41b5f7(_0x1001ac,_0x14b7cf){return _0x3e2b6f(_0x14b7cf,_0x1001ac- -0x1cd);}this[_0x422132(0x440,0x3c5)][_0x41b5f7(-0x23a,-0x1d8)]=_0x515f2b,this[_0x41b5f7(-0x1ad,-0x192)]&&(this['windField']['speedRate']=_0x515f2b);}get['maxAge'](){function _0x54b826(_0x13fab5,_0x4d1ddc){return _0x3e2b6f(_0x4d1ddc,_0x13fab5- -0x40);}function _0x2836c3(_0x5ba1e4,_0x2814cc){return _0x3e2b6f(_0x5ba1e4,_0x2814cc-0x16a);}return this[_0x2836c3(0x18d,0x12e)][_0x2836c3(0x163,0x16e)];}set['maxAge'](_0x373482){function _0x7ed3d4(_0x541cdf,_0x414302){return _0x3e2b6f(_0x414302,_0x541cdf-0x37a);}function _0xd8a869(_0x2dd169,_0x4afe49){return _0x3e2b6f(_0x2dd169,_0x4afe49-0x4b);}this['options'][_0x7ed3d4(0x37e,0x3d1)]=_0x373482,this[_0xd8a869(-0x5,0x6b)]&&(this['windField'][_0xd8a869(-0x5,0x4f)]=_0x373482);}get[_0x3e2b6f(-0x49,-0x3f)](){function _0xe7ec14(_0x84ff3d,_0xbfc2aa){return _0x3e2b6f(_0x84ff3d,_0xbfc2aa-0x294);}return this[_0xe7ec14(0x3bf,0x336)];}set['data'](_0xdbedb4){this['setData'](_0xdbedb4);}get[_0x2e342d(0x312,0x34a)](){function _0x236ab8(_0xd8dfc9,_0x23cea7){return _0x3e2b6f(_0x23cea7,_0xd8dfc9-0x330);}let _0x956391=this[_0x3c0f47(0x389,0x3e5)]['xmin'],_0x51dedf=this[_0x236ab8(0x3d2,0x40e)][_0x3c0f47(0x2b3,0x321)],_0xb388dd=this[_0x236ab8(0x3d2,0x453)][_0x236ab8(0x32f,0x347)];function _0x3c0f47(_0x21a31a,_0x198217){return _0x3e2b6f(_0x21a31a,_0x198217-0x343);}let _0x5401e7=this[_0x236ab8(0x3d2,0x35f)][_0x3c0f47(0x291,0x315)];return _0x51dedf>=0x167&&_0x956391===0x0&&(_0x956391=-0xb4,_0x51dedf=0xb4),_0x956391=Math['max'](_0x956391,-0xb4),_0x51dedf=Math['min'](_0x51dedf,0xb4),_0xb388dd=Math[_0x236ab8(0x3a8,0x412)](_0xb388dd,-0x5a),_0x5401e7=Math['min'](_0x5401e7,0x5a),Cesium['Rectangle'][_0x236ab8(0x36d,0x39d)](_0x956391,_0xb388dd,_0x51dedf,_0x5401e7);}['_showHook'](_0x4d5117){function _0x3fed3b(_0x4dc306,_0x2ea0d3){return _0x3e2b6f(_0x4dc306,_0x2ea0d3- -0x83);}function _0x18ffeb(_0x59ebd5,_0x1d03c8){return _0x2e342d(_0x59ebd5- -0x239,_0x1d03c8);}_0x4d5117?this[_0x18ffeb(0x8a,0x2)]():(this['windData']&&(this['options']['data']=this[_0x3fed3b(0xa9,0x1f)]),this[_0x18ffeb(0x127,0x140)]());}['_mountedHook'](){function _0x4b8e2e(_0x397380,_0x512c4c){return _0x3e2b6f(_0x512c4c,_0x397380- -0x42);}function _0x140d43(_0x11c95d,_0x11bede){return _0x2e342d(_0x11bede- -0x3d4,_0x11c95d);}this[_0x4b8e2e(-0x7e,-0x5)]['worker']?this['initWorker']():this[_0x140d43(-0x5b,-0xd3)]=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this[_0x515f1e(-0x56,0x13)]();const _0x440180={};function _0x35ec45(_0x10d07c,_0x10c730){return _0x3e2b6f(_0x10d07c,_0x10c730-0x145);}_0x440180[_0x35ec45(0x247,0x1d2)]=!![],this[_0x35ec45(0xcd,0x139)]=this[_0x35ec45(0x138,0x13b)][_0x35ec45(0xbe,0x10d)]('2d',_0x440180);function _0x515f1e(_0xdec9e9,_0x1fb275){return _0x2e342d(_0xdec9e9- -0x3a6,_0x1fb275);}this[_0x35ec45(0x203,0x17e)](),this[_0x35ec45(0xac,0x109)]['data']&&this[_0x35ec45(0x182,0x18c)](this[_0x515f1e(-0x101,-0x188)]['data']);}['_removedHook'](){function _0x1d6c03(_0x480c68,_0x4ced67){return _0x2e342d(_0x480c68-0x167,_0x4ced67);}this[_0x1d6c03(0x48d,0x515)]();function _0x3ab50f(_0x244f0b,_0x5ceddd){return _0x3e2b6f(_0x5ceddd,_0x244f0b- -0x82);}this[_0x3ab50f(-0x3c,-0x22)](),this['canvas']&&(this['_map']['container'][_0x1d6c03(0x442,0x446)](this['canvas']),delete this[_0x3ab50f(-0x8c,-0xcb)]);}[_0x2e342d(0x350,0x3b5)](){const _0xb01629=mars3d__namespace['DomUtil']['create']('canvas','mars3d-canvasWind',this[_0x4b2c01(0x213,0x224)]['container']);_0xb01629['style']['position']='absolute',_0xb01629['style']['top']=_0x4b2c01(0x24f,0x282),_0xb01629['style'][_0x58f3bd(0x359,0x30b)]='0px',_0xb01629['style']['width']=this[_0x4b2c01(0x262,0x224)]['scene'][_0x58f3bd(0x2f1,0x35a)]['clientWidth']+'px',_0xb01629['style']['height']=this['_map'][_0x58f3bd(0x2ab,0x2d0)]['canvas']['clientHeight']+'px';function _0x58f3bd(_0x2cd427,_0x1f7592){return _0x3e2b6f(_0x1f7592,_0x2cd427-0x2fb);}_0xb01629['style']['pointerEvents']=this[_0x4b2c01(0x262,0x256)]?_0x58f3bd(0x31d,0x31b):'none',_0xb01629[_0x4b2c01(0x2ee,0x29b)][_0x4b2c01(0x240,0x1ec)]=this[_0x58f3bd(0x2bf,0x330)]['zIndex']??0x9,_0xb01629['width']=this[_0x58f3bd(0x2d2,0x32f)][_0x4b2c01(0x1c2,0x1fd)]['canvas']['clientWidth'],_0xb01629['height']=this['_map'][_0x4b2c01(0x1ae,0x1fd)][_0x4b2c01(0x286,0x243)]['clientHeight'];function _0x4b2c01(_0x567dc2,_0x5e3738){return _0x2e342d(_0x5e3738- -0x94,_0x567dc2);}return _0xb01629;}[_0x2e342d(0x35f,0x2ec)](){function _0xef8842(_0x1e7403,_0x3e047d){return _0x3e2b6f(_0x1e7403,_0x3e047d-0x3e3);}function _0x55e9b1(_0x4d13a6,_0x457189){return _0x2e342d(_0x457189- -0x77,_0x4d13a6);}this['canvas']&&(this['canvas']['style']['width']=this['_map']['scene']['canvas'][_0x55e9b1(0x278,0x2f6)]+'px',this['canvas']['style'][_0x55e9b1(0x330,0x2f0)]=this[_0xef8842(0x37d,0x3ba)][_0x55e9b1(0x24a,0x21a)]['canvas']['clientHeight']+'px',this[_0x55e9b1(0x233,0x260)]['width']=this[_0x55e9b1(0x242,0x241)][_0xef8842(0x3ef,0x393)]['canvas']['clientWidth'],this[_0xef8842(0x3f3,0x3d9)][_0x55e9b1(0x35d,0x2f0)]=this[_0xef8842(0x41d,0x3ba)][_0x55e9b1(0x233,0x21a)][_0x55e9b1(0x238,0x260)][_0x55e9b1(0x2d6,0x25b)]);}[_0x2e342d(0x31a,0x371)](){const _0xe246cc=this;function _0x210808(_0x1e27fa,_0x3133a2){return _0x2e342d(_0x3133a2- -0x28f,_0x1e27fa);}let _0xac5465=Date[_0x455c23(0x367,0x359)]();function _0x455c23(_0x51bdf1,_0x522000){return _0x3e2b6f(_0x522000,_0x51bdf1-0x3bc);}(function _0x2e700b(){if(_0xe246cc['isDestroy'])return;function _0x2a8876(_0x9fcfa6,_0x2a851c){return _0x455c23(_0x2a851c- -0x5d,_0x9fcfa6);}function _0x411a8d(_0x4c2960,_0x1423f6){return _0x455c23(_0x1423f6-0x29,_0x4c2960);}_0xe246cc[_0x2a8876(0x35b,0x337)]=window['requestAnimationFrame'](_0x2e700b);if(_0xe246cc[_0x2a8876(0x44f,0x3c8)]&&_0xe246cc[_0x411a8d(0x42d,0x405)]){const _0x4b24e7=Date['now'](),_0x584116=_0x4b24e7-_0xac5465;_0x584116>_0xe246cc['frameTime']&&(_0xac5465=_0x4b24e7-_0x584116%_0xe246cc[_0x411a8d(0x411,0x438)],_0xe246cc['update']());}}(),window[_0x455c23(0x373,0x301)](_0x455c23(0x43a,0x4a0),this['resize']['bind'](this),![]),this[_0x210808(0x136,0xbc)]=![],this[_0x210808(0x8d,0xa4)]=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace[_0x210808(0x52,0xcb)]['wheel'],this['_onMapWhellEvent'],this),this[_0x455c23(0x393,0x3fa)]['on'](mars3d__namespace['EventType']['mouseDown'],this['_onMouseDownEvent'],this),this[_0x455c23(0x393,0x3d3)]['on'](mars3d__namespace['EventType'][_0x210808(0x15b,0xeb)],this[_0x455c23(0x43d,0x3f3)],this)));}['unbindEvent'](){window['cancelAnimationFrame'](this['_animateFrame']);function _0x362302(_0x4369ff,_0x3a4bec){return _0x3e2b6f(_0x4369ff,_0x3a4bec- -0x283);}delete this[_0x362302(-0x2e6,-0x2ab)],window[_0x362302(-0x311,-0x2d9)]('resize',this['resize']);function _0x3d144a(_0x2af86f,_0x4b426a){return _0x2e342d(_0x4b426a- -0x450,_0x2af86f);}this[_0x362302(-0x341,-0x2bf)]['mouseHidden']&&(this['_map']['off'](mars3d__namespace[_0x3d144a(-0x171,-0xf6)]['wheel'],this['_onMapWhellEvent'],this),this[_0x3d144a(-0x143,-0x198)][_0x3d144a(-0x142,-0x117)](mars3d__namespace[_0x3d144a(-0xc7,-0xf6)]['mouseDown'],this['_onMouseDownEvent'],this),this[_0x362302(-0x2ec,-0x2ac)][_0x362302(-0x1fb,-0x22b)](mars3d__namespace['EventType']['mouseUp'],this[_0x362302(-0x1d8,-0x202)],this),this[_0x362302(-0x2bf,-0x2ac)]['off'](mars3d__namespace['EventType'][_0x362302(-0x235,-0x20f)],this['_onMouseMoveEvent'],this));}[_0x3e2b6f(-0x2,-0x42)](_0x2f6757){clearTimeout(this['refreshTimer']);if(!this['show']||!this['canvas'])return;this['canvas'][_0x4baa1f(0x37,0x47)]['visibility']=_0x4baa1f(0x61,-0x9);function _0x4baa1f(_0x5d4272,_0x5ac574){return _0x2e342d(_0x5ac574- -0x2e8,_0x5d4272);}function _0x9d6ad8(_0x254f8d,_0x3cfe11){return _0x3e2b6f(_0x3cfe11,_0x254f8d-0x475);}this['refreshTimer']=setTimeout(()=>{if(!this['show'])return;function _0x415d01(_0x4027df,_0x49c400){return _0x4baa1f(_0x4027df,_0x49c400- -0x2a9);}this[_0x4ecda9(0xc6,0x139)]();function _0x4ecda9(_0x1a182c,_0x3bbc7e){return _0x9d6ad8(_0x1a182c- -0x3d0,_0x3bbc7e);}this[_0x4ecda9(0x9b,0xce)]['style']['visibility']=_0x415d01(-0x233,-0x26c);},0xc8);}['_onMouseDownEvent'](_0xdd5d24){function _0x6e1ea5(_0x3749f7,_0x4a17c4){return _0x3e2b6f(_0x4a17c4,_0x3749f7-0x456);}function _0x25c485(_0x49b422,_0x8a074f){return _0x3e2b6f(_0x8a074f,_0x49b422- -0x293);}this[_0x6e1ea5(0x4c0,0x468)]=!![],this['_map']['off'](mars3d__namespace[_0x6e1ea5(0x4cf,0x549)]['mouseMove'],this['_onMouseMoveEvent'],this),this[_0x25c485(-0x2bc,-0x2ad)]['on'](mars3d__namespace[_0x25c485(-0x21a,-0x1bb)]['mouseMove'],this[_0x6e1ea5(0x474,0x40f)],this);}[_0x3e2b6f(0x2e,0x1e)](_0x3276f2){if(!this['show']||!this['canvas'])return;function _0x23a3c1(_0x490c03,_0x22143a){return _0x3e2b6f(_0x490c03,_0x22143a- -0x123);}this['mouse_down']&&(this[_0x23a3c1(-0xe1,-0x12d)]['style']['visibility']='hidden',this['mouse_move']=!![]);}['_onMouseUpEvent'](_0x41ab6d){if(!this['show']||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType'][_0x1af90b(-0x1aa,-0x19c)],this['_onMouseMoveEvent'],this);this['mouse_down']&&this['mouse_move']&&this['redraw']();function _0xd04b83(_0x52fbec,_0x9d7d98){return _0x2e342d(_0x9d7d98- -0x209,_0x52fbec);}this['canvas'][_0xd04b83(0x10d,0x126)]['visibility']='visible',this['mouse_down']=![];function _0x1af90b(_0x40e3c9,_0x539ff0){return _0x2e342d(_0x40e3c9- -0x4ff,_0x539ff0);}this['mouse_move']=![];}[_0x3e2b6f(-0x3,0x47)](_0x56f9c2){function _0x3fe6b1(_0x15fb82,_0x54bc24){return _0x2e342d(_0x15fb82- -0x2ed,_0x54bc24);}this['clear'](),this['windData']=_0x56f9c2;function _0x5d8e83(_0x31a8e9,_0x2a7882){return _0x3e2b6f(_0x2a7882,_0x31a8e9-0x32b);}this[_0x3fe6b1(0x14,0x82)]['setDate'](_0x56f9c2),this[_0x3fe6b1(0x15,0x75)]();}[_0x2e342d(0x302,0x383)](){if(!this[_0x4de31a(0x437,0x42c)])return;function _0x4c44f9(_0x46d957,_0x1ed477){return _0x3e2b6f(_0x1ed477,_0x46d957-0x424);}function _0x4de31a(_0x2f4b6a,_0x44ac44){return _0x3e2b6f(_0x44ac44,_0x2f4b6a-0x3ce);}this[_0x4c44f9(0x444,0x428)][_0x4c44f9(0x492,0x43c)](this['options']),this['update']();}['update'](){if(this['_updateIng'])return;this[_0x5bfea7(0x2d7,0x266)]=!![];function _0x5bfea7(_0x234013,_0x18340a){return _0x3e2b6f(_0x234013,_0x18340a-0x2c3);}function _0x3325d1(_0x2482bb,_0x34708b){return _0x2e342d(_0x2482bb-0x1ed,_0x34708b);}if(this[_0x3325d1(0x463,0x429)])this['windField'][_0x3325d1(0x4d1,0x485)]();else{const _0x2178ff=this['windField'][_0x5bfea7(0x236,0x26a)]();this['_drawLines'](_0x2178ff);}this['_updateIng']=![];}['_drawLines'](_0x5f5414){this['_canvasParticles']=_0x5f5414,this['canvasContext']['globalCompositeOperation']=_0x273d95(-0x204,-0x1b3),this[_0x273d95(-0x28a,-0x23a)]['fillRect'](0x0,0x0,this['canvasWidth'],this[_0x110748(-0xdf,-0x64)]),this[_0x110748(-0xe6,-0x10e)]['globalCompositeOperation']=_0x273d95(-0x278,-0x295),this['canvasContext'][_0x110748(-0x103,-0x154)]=0.9;function _0x110748(_0x695088,_0x256970){return _0x3e2b6f(_0x695088,_0x256970- -0x102);}const _0x467c66=this[_0x273d95(-0x28c,-0x257)]['scene'][_0x110748(-0xfa,-0x145)]!==Cesium['SceneMode']['SCENE3D'];function _0x273d95(_0x34d965,_0x492d8f){return _0x2e342d(_0x492d8f- -0x50f,_0x34d965);}const _0xb32f7a=this['canvasWidth']*0.25;if(this[_0x110748(-0x29,-0x78)])for(let _0x17b7ec=0x0,_0x10f79f=_0x5f5414['length'];_0x17b7ec<_0x10f79f;_0x17b7ec++){const _0x1946cc=_0x5f5414[_0x17b7ec],_0x3c84d6=this['_tomap'](_0x1946cc,_0x1946cc['lng'],_0x1946cc[_0x110748(-0xee,-0xfa)],_0x1946cc['alt']),_0x39736d=this['_tomap'](_0x1946cc,_0x1946cc['tlng'],_0x1946cc[_0x110748(-0x9,-0x8d)],_0x1946cc['talt']);if(!_0x3c84d6||!_0x39736d)continue;if(_0x467c66&&Math[_0x273d95(-0x202,-0x1e6)](_0x3c84d6[0x0]-_0x39736d[0x0])>=_0xb32f7a)continue;this[_0x273d95(-0x27c,-0x23a)][_0x110748(-0x115,-0x140)](),this['canvasContext']['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x110748(-0xcd,-0x78)]['getColor'](_0x1946cc[_0x110748(-0xcc,-0x6c)]),this['canvasContext'][_0x110748(-0xc0,-0x106)](_0x3c84d6[0x0],_0x3c84d6[0x1]),this['canvasContext'][_0x273d95(-0x249,-0x244)](_0x39736d[0x0],_0x39736d[0x1]),this['canvasContext'][_0x110748(-0x148,-0xe5)]();}else{this[_0x110748(-0x17c,-0x10e)]['beginPath'](),this[_0x273d95(-0x207,-0x23a)]['lineWidth']=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x110748(-0x2f,-0x82)];for(let _0x476fb6=0x0,_0x464815=_0x5f5414[_0x273d95(-0x1d8,-0x1d8)];_0x476fb6<_0x464815;_0x476fb6++){const _0x5a7be9=_0x5f5414[_0x476fb6],_0x554882=this['_tomap'](_0x5a7be9,_0x5a7be9['lng'],_0x5a7be9[_0x110748(-0xb0,-0xfa)],_0x5a7be9['alt']),_0x2ef3f7=this['_tomap'](_0x5a7be9,_0x5a7be9[_0x273d95(-0x256,-0x263)],_0x5a7be9['tlat'],_0x5a7be9['talt']);if(!_0x554882||!_0x2ef3f7)continue;if(_0x467c66&&Math['abs'](_0x554882[0x0]-_0x2ef3f7[0x0])>=_0xb32f7a)continue;this['canvasContext']['moveTo'](_0x554882[0x0],_0x554882[0x1]),this['canvasContext']['lineTo'](_0x2ef3f7[0x0],_0x2ef3f7[0x1]);}this['canvasContext'][_0x110748(-0x7e,-0xe5)]();}}['_tomap'](_0x2941c7,_0x29df49,_0x58be34,_0x552e12){const _0x8cd619=Cesium['Cartesian3']['fromDegrees'](_0x29df49,_0x58be34,_0x552e12??this['fixedHeight']),_0x5ed051=this['_map']['scene'];if(_0x5ed051['mode']===Cesium[_0x5996b8(-0x2a6,-0x23d)]['SCENE3D']){const _0x162d3b=new Cesium['EllipsoidalOccluder'](_0x5ed051['globe'][_0x5996b8(-0x15d,-0x1df)],_0x5ed051['camera']['positionWC']),_0x10c94f=_0x162d3b['isPointVisible'](_0x8cd619);if(!_0x10c94f)return _0x2941c7['age']=0x0,null;}const _0x19513c=mars3d__namespace['PointTrans'][_0x5996b8(-0x158,-0x170)](this[_0x151dcc(0x35d,0x39c)][_0x151dcc(0x336,0x380)],_0x8cd619);function _0x151dcc(_0x402fe3,_0x1ed6d6){return _0x3e2b6f(_0x1ed6d6,_0x402fe3-0x386);}function _0x5996b8(_0x2574dd,_0x4ec76a){return _0x3e2b6f(_0x2574dd,_0x4ec76a- -0x20a);}return _0x19513c?[_0x19513c['x'],_0x19513c['y']]:null;}['clear'](){this['windField'][_0x207b57(-0x34,0x3a)]();function _0x207b57(_0x573aba,_0x1de487){return _0x2e342d(_0x573aba- -0x35a,_0x1de487);}delete this['windData'];}[_0x2e342d(0x2c9,0x321)](){this['worker']=new Worker(this[_0x210f14(-0xe2,-0xdb)]['worker']);function _0x210f14(_0x205621,_0x4b3f8b){return _0x3e2b6f(_0x4b3f8b,_0x205621- -0xa6);}function _0x3e3d08(_0x2d06ea,_0x533651){return _0x2e342d(_0x533651- -0x9,_0x2d06ea);}this[_0x210f14(-0x111,-0x163)][_0x210f14(-0xed,-0x99)]=_0x12d700=>{function _0x23b853(_0x3c2077,_0x4e2515){return _0x210f14(_0x3c2077-0x51c,_0x4e2515);}this['_drawLines'](_0x12d700[_0x23b853(0x437,0x3f8)][_0x23b853(0x508,0x524)]);function _0x39d71d(_0x33f45d,_0x1282db){return _0x3e3d08(_0x33f45d,_0x1282db- -0x3e8);}this['_updateIng2']=![];},this[_0x3e3d08(0x29b,0x2f8)]={'init':_0x26d636=>{function _0x1510d9(_0x44cb8,_0x460c9d){return _0x3e3d08(_0x460c9d,_0x44cb8- -0x1ce);}function _0x3cd975(_0x1b7bb4,_0x18fca4){return _0x210f14(_0x18fca4-0x454,_0x1b7bb4);}const _0x9f2070={};_0x9f2070['type']=_0x1510d9(0x16b,0x132),_0x9f2070[_0x1510d9(0xce,0xa3)]=_0x26d636,this['worker'][_0x1510d9(0x137,0x164)](_0x9f2070);},'setOptions':_0x4af4a9=>{function _0x2f26d8(_0x4362dd,_0x59e9c5){return _0x3e3d08(_0x4362dd,_0x59e9c5- -0x45e);}function _0x28fc5b(_0x41c7fc,_0x2a6d3e){return _0x3e3d08(_0x2a6d3e,_0x41c7fc- -0x16e);}const _0x1fc631={};_0x1fc631[_0x28fc5b(0x207,0x1f5)]=_0x28fc5b(0x1d8,0x1c3),_0x1fc631[_0x28fc5b(0x12e,0x141)]=_0x4af4a9,this['worker']['postMessage'](_0x1fc631);},'setDate':_0x2d4534=>{const _0x2988ae={};_0x2988ae[_0x21cc66(0x1e2,0x1d5)]=_0x243666(-0x169,-0x10d);function _0x21cc66(_0x510575,_0x261ba1){return _0x3e3d08(_0x261ba1,_0x510575- -0x193);}_0x2988ae[_0x21cc66(0x106,0xf9)]=_0x2d4534;function _0x243666(_0x5da904,_0x2df917){return _0x3e3d08(_0x5da904,_0x2df917- -0x3c9);}this[_0x243666(-0x1ae,-0x15c)]['postMessage'](_0x2988ae);},'update':()=>{if(this['_updateIng2'])return;this['_updateIng2']=!![];const _0x45dbee={};_0x45dbee['type']='update';function _0x305848(_0x101932,_0x18f6e6){return _0x3e3d08(_0x101932,_0x18f6e6- -0x513);}this['worker'][_0x305848(-0x1f0,-0x20e)](_0x45dbee);},'clear':()=>{const _0x1d72fb={};function _0x41852c(_0x177422,_0x4ada7e){return _0x3e3d08(_0x177422,_0x4ada7e- -0x1dc);}_0x1d72fb['type']='clear',this[_0x41852c(0xa2,0x91)]['postMessage'](_0x1d72fb);}},this['windField']['init'](this['options']);}}mars3d__namespace[_0x3e2b6f(-0x3a,0x1b)][_0x2e342d(0x2ee,0x273)]('canvasWind',CanvasWindLayer),mars3d__namespace[_0x2e342d(0x2b7,0x28d)]['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x3e2b6f(-0x47,-0x4d)]=CanvasWindField,mars3d__namespace['Log'][_0x3e2b6f(0x83,0x9f)]('mars3d-wind插件\x20注册成功'),mars3d__namespace['WindUtil']=WindUtil,exports[_0x3e2b6f(-0xd6,-0x4d)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x2e342d(0x2d0,0x2ef)]=WindUtil;const _0x4515e3={};_0x4515e3[_0x2e342d(0x2fb,0x37d)]=!![],Object[_0x2e342d(0x2a7,0x307)](exports,'__esModule',_0x4515e3);
|
|
15
15
|
}));
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mars3d-wind",
|
|
3
|
-
"version": "3.10.
|
|
3
|
+
"version": "3.10.2",
|
|
4
4
|
"description": "Mars3D平台插件,支持气象 风向图 功能插件",
|
|
5
5
|
"main": "./mars3d-wind.js",
|
|
6
6
|
"peerDependencies": {},
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"mars3d": "~3.10.
|
|
8
|
+
"mars3d": "~3.10.2"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint ./src/**/*.{js,ts} --fix"
|