mars3d-wind 3.8.9 → 3.8.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -58,59 +58,41 @@ import "mars3d-wind";
58
58
 
59
59
 
60
60
 
61
- ## Mars3D 是什么
62
- > `Mars3D三维地球平台软件` 是[火星科技](http://marsgis.cn/)研发的一款基于 WebGL 技术实现的三维客户端开发平台,基于[Cesium](https://cesium.com/cesiumjs/)优化提升与B/S架构设计,支持多行业扩展的轻量级高效能GIS开发平台,能够免安装、无插件地在浏览器中高效运行,并可快速接入与使用多种GIS数据和三维模型,呈现三维空间的可视化,完成平台在不同行业的灵活应用。
63
-
64
- > Mars3D平台可用于构建无插件、跨操作系统、 跨浏览器的三维 GIS 应用程序。平台使用 WebGL 来进行硬件加速图形化,跨平台、跨浏览器来实现真正的动态大数据三维可视化。通过 Mars3D产品可快速实现浏览器和移动端上美观、流畅的三维地图呈现与空间分析。
65
-
66
- ## 相关网站
61
+ ## NetCDF文件(.nc)说明
62
+ NetCDF(network Common Data Form)网络通用数据格式是由美国大学大气研究协会(University Corporation for Atmospheric Research,UCAR)的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据的描述和编码标准。NetCDF广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。用户可以借助多种方式方便地管理和操作 NetCDF 数据集。
67
63
 
68
- - Mars3D官网:[http://mars3d.cn](http://mars3d.cn)
64
+ ### 如何获取NetCDF数据
65
+ - [美国大学大气研究协会 Unidata](https://www.unidata.ucar.edu/software/netcdf/examples/files.html)
66
+ - [全球天气预报系统(GFS)](https://www.ncdc.noaa.gov/data-access/model-data/model-datasets/global-forcast-system-gfs)
67
+ - [NASA Panoply](https://www.giss.nasa.gov/tools/panoply/)
68
+
69
+
70
+ ### 如何打开NetCDF文件
71
+ nc文件最好为NetCDF version 3形式,文件中必须至少包含U、V速度矩阵。
69
72
 
70
- - Mars3D开源项目列表:[https://github.com/marsgis/mars3d](https://github.com/marsgis/mars3d)
73
+ - [netcdf-java](https://downloads.unidata.ucar.edu/netcdf-java/)
71
74
 
72
75
 
73
76
 
74
77
 
75
78
  ## 参考来源
76
- CanvasWindLayer 参考了: https://blog.csdn.net/axiwang88/article/details/105737114
79
+ - CanvasWindLayer 参考了: https://blog.csdn.net/axiwang88/article/details/105737114
77
80
 
78
- WindLayer 参考了: https://github.com/RaymanNg/3D-Wind-Field
81
+ - WindLayer 参考了: https://github.com/RaymanNg/3D-Wind-Field
79
82
  https://github.com/hongfaqiu/cesium-wind-layer (主要)
80
83
 
81
84
 
82
85
 
83
- ## 数据说明
84
- 本例使用的demo.nc属于NetCDF version 3数据文件,文件分辨率28km,请参考这个网站上的数据 [Panoply](https://www.giss.nasa.gov/tools/panoply/)。
85
-
86
-
87
- ### 如何获取NetCDF文件(.nc)数据
88
- 演示数据来自NOAA全球预报系统。原始数据为GRIB2格式,我使用toolsUI将GRIB2文件转换为NetCDF V3文件。
89
- 下载数据:https://www.unidata.ucar.edu/software/netcdf/examples/files.html
90
- NOAA全球预报系统:https://www.ncdc.noaa.gov/data-access/model-data/model-datasets/global-forcast-system-gfs
91
-
92
- 您可以使用NCO(NetCDF运算符)来进一步处理NetCDF数据。我已经编写了一个PowerShell脚本,以通过使用NCO提取和转换数据。
93
-
94
- 您可以检查“ Util”文件夹以获取详细信息。
95
- https://www.unidata.ucar.edu/software/netcdf-java/v4.5/ToolsUI.html
96
-
97
-
98
-
99
- ### 怎样加载自己的.nc文件
100
-
101
- .nc文件最好为NetCDF version 3形式
86
+ ## Mars3D 是什么
87
+ > `Mars3D三维地球平台软件` 是[火星科技](http://marsgis.cn/)研发的一款基于 WebGL 技术实现的三维客户端开发平台,基于[Cesium](https://cesium.com/cesiumjs/)优化提升与B/S架构设计,支持多行业扩展的轻量级高效能GIS开发平台,能够免安装、无插件地在浏览器中高效运行,并可快速接入与使用多种GIS数据和三维模型,呈现三维空间的可视化,完成平台在不同行业的灵活应用。
102
88
 
103
- 文件中必须至少包含以下属性:
89
+ > Mars3D平台可用于构建无插件、跨操作系统、 跨浏览器的三维 GIS 应用程序。平台使用 WebGL 来进行硬件加速图形化,跨平台、跨浏览器来实现真正的动态大数据三维可视化。通过 Mars3D产品可快速实现浏览器和移动端上美观、流畅的三维地图呈现与空间分析。
104
90
 
105
- - 横向速度矩阵 U (lev, lat, lon)
106
- - 纵向速度矩阵 V (lev, lat, lon)
107
- - 经度维度 lon(0 - 360)
108
- - 纬度维度 lat
91
+ ## 相关网站
109
92
 
110
- 可使用`getFileFields()`方法读取.nc文件中的属性字段名、维度字段名
93
+ - Mars3D官网:[http://mars3d.cn](http://mars3d.cn)
111
94
 
112
- 并配合数据后按API传入的`fields`字段,尝试加载到地球上。
95
+ - Mars3D开源项目列表:[https://github.com/marsgis/mars3d](https://github.com/marsgis/mars3d)
113
96
 
114
- noData值设为0, 或者加载时配置valueRange属性。
115
97
 
116
- 如果经度范围不在(0, 360),纬度范围不在(-90, 90),需要配置offset属性。
98
+
package/mars3d-wind.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件 mars3d-wind
3
3
  *
4
- * 版本信息:v3.8.9
5
- * 编译日期:2024-12-10 22:22
4
+ * 版本信息:v3.8.11
5
+ * 编译日期:2024-12-24 10:46
6
6
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
7
7
  * 使用单位:免费公开版 ,2024-08-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(_0x3c6989,_0x264820){function _0x442324(_0x5104bf,_0x10226c){return _0x4308(_0x10226c-0x18b,_0x5104bf);}const _0x355a4c=_0x3c6989();function _0x247be7(_0xfa76e3,_0x6eee11){return _0x4308(_0x6eee11-0x222,_0xfa76e3);}while(!![]){try{const _0x27f97a=-parseInt(_0x442324(0x32b,0x38b))/0x1+-parseInt(_0x247be7(0x4cb,0x462))/0x2*(parseInt(_0x442324(0x338,0x3ab))/0x3)+-parseInt(_0x442324(0x307,0x31e))/0x4+-parseInt(_0x442324(0x3f3,0x399))/0x5*(parseInt(_0x442324(0x2fd,0x2b2))/0x6)+-parseInt(_0x247be7(0x412,0x445))/0x7*(-parseInt(_0x247be7(0x4b4,0x447))/0x8)+parseInt(_0x247be7(0x3b3,0x360))/0x9+parseInt(_0x442324(0x3ae,0x38a))/0xa;if(_0x27f97a===_0x264820)break;else _0x355a4c['push'](_0x355a4c['shift']());}catch(_0x258bf2){_0x355a4c['push'](_0x355a4c['shift']());}}}(_0x1e26,0x2e528));function _interopNamespace(_0x2078b5){if(_0x2078b5&&_0x2078b5['__esModule'])return _0x2078b5;var _0x165b3f=Object[_0x2dc856(0x5ee,0x5e7)](null);_0x2078b5&&Object[_0x44ea96(-0x87,-0x35)](_0x2078b5)['forEach'](function(_0x10c401){function _0x1eca87(_0x416d06,_0x1c9280){return _0x2dc856(_0x1c9280,_0x416d06- -0x30d);}if(_0x10c401!=='default'){var _0x38ade1=Object['getOwnPropertyDescriptor'](_0x2078b5,_0x10c401);Object['defineProperty'](_0x165b3f,_0x10c401,_0x38ade1[_0x1eca87(0x246,0x230)]?_0x38ade1:{'enumerable':!![],'get':function(){return _0x2078b5[_0x10c401];}});}});function _0x2dc856(_0x2792b6,_0x237822){return _0x4308(_0x237822-0x3b3,_0x2792b6);}_0x165b3f['default']=_0x2078b5;function _0x44ea96(_0x3e8a90,_0x43272d){return _0x4308(_0x43272d- -0x1c1,_0x3e8a90);}return _0x165b3f;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function getU(_0xa10d82,_0x1d4e1d){const _0x45be9c=_0xa10d82*Math[_0x5ab2fd(0x94,0x30)](Cesium$2['Math']['toRadians'](_0x1d4e1d));function _0x5ab2fd(_0x304c17,_0x331441){return _0x4308(_0x304c17- -0x186,_0x331441);}return _0x45be9c;}function getV(_0x353086,_0x4ce588){function _0x3105a8(_0x35e7c9,_0x5145b1){return _0x4308(_0x5145b1- -0x206,_0x35e7c9);}function _0x227ce1(_0x1bc9d3,_0x52d120){return _0x4308(_0x1bc9d3- -0x3e6,_0x52d120);}const _0x52b5d9=_0x353086*Math['sin'](Cesium$2[_0x227ce1(-0x22b,-0x219)][_0x227ce1(-0x21c,-0x23c)](_0x4ce588));return _0x52b5d9;}function getSpeed(_0x204aef,_0x1746d3){function _0x71622e(_0x2d44c2,_0x59dd18){return _0x4308(_0x59dd18- -0x130,_0x2d44c2);}function _0xa53d66(_0x31c44e,_0x21326d){return _0x4308(_0x31c44e-0x4e,_0x21326d);}const _0x1c43ab=Math['sqrt'](Math[_0x71622e(0xc1,0xab)](_0x204aef,0x2)+Math[_0x71622e(0x20,0xab)](_0x1746d3,0x2));return _0x1c43ab;}function getDirection(_0x2d67bc,_0x4bc987){function _0x47e752(_0x100576,_0x5a986a){return _0x4308(_0x5a986a-0x3d1,_0x100576);}let _0x371092=Cesium$2[_0x77446c(-0x79,0x17)][_0x47e752(0x56b,0x5e2)](Math[_0x77446c(-0xfa,-0x7f)](_0x4bc987,_0x2d67bc));function _0x77446c(_0x3d8fc5,_0x23209b){return _0x4308(_0x23209b- -0x1a4,_0x3d8fc5);}return _0x371092+=_0x371092<0x0?0x168:0x0,_0x371092;}const _0xce490a={};_0xce490a['__proto__']=null,_0xce490a['getU']=getU,_0xce490a['getV']=getV,_0xce490a[_0x5081bd(0x146,0xea)]=getSpeed,_0xce490a[_0x4de1f1(0x1be,0x221)]=getDirection;var WindUtil=_0xce490a,updatePositionShader=_0x5081bd(0x1cf,0x25c),calculateSpeedShader=_0x5081bd(0x17c,0x1e6),postProcessingPositionFragmentShader=_0x4de1f1(0x13f,0x17d),renderParticlesFragmentShader=_0x4de1f1(0x195,0x210),renderParticlesVertexShader=_0x5081bd(0xd0,0x11c);function _0x1e26(){const _0x26797e=['RGBA','rawRenderState','pixelFormat','south','currentParticlesPosition','init','getSpeed','isPointVisible','flipY','sqrt','lineLength','#ffffff','clientWidth','unbindEvent','moveTo','_onMouseMoveEvent','_removedHook','domain','tlng','resize','_colorRamp','absolute','processWindData','createComputingPrimitives','pass','Math','frameState.commandList\x20is\x20undefined','updateOptions','windData','_tomap','_map','strokeStyle','age','worker','getUpdatePositionShader','commandToExecute','autoClear','add','globalCompositeOperation','fragmentShaderSource','toRadians','windField','UNSIGNED_BYTE','max','blendEquation','colorTextures','ColorRamp','percentageChanged','vertexShaderSource','_calcUV','forEach','options','clearFramebuffers','_calc_speedRate','0px','refreshTimer','EventType','pow','_pointerEvents','frameRateMonitor','#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','defineProperty','particlesSpeed','setDate','scene','blendFuncSource','tlat','particles','original','values','windTextures','morphComplete','removeEventListener','clearCommand','geometry','#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','_updateIng','cols','toWindowCoordinates','primitiveType','dynamic','speed','canvasContext','alt','maxAge','primitives','pointerEvents','push','getPrimitives','mouseDown','_animateFrame','canvas','FUNC_ADD','7620430bbjmKE','370037yQEaDh','none','Draw','vertexArray','visibility','updatePosition','stroke','show','wrapS','xmax','_maxAge','frameTime','_showHook','mouseMove','5aoDggJ','getSegmentDrawFragmentShader','clientHeight','toDegrees','mode','drawingBufferHeight','canvasHeight','DEPTH_COMPONENT','getDirection','bind','segmentsColor','warn','cos','lineWidth','renderState','blending','frameRateAdjustment','postProcessingPosition','1497nUzMmx','UNSIGNED_INT','blendFuncDestination','322NNDqqA','lastFramesPerSecond','49656CYHsUk','_speedRate','particlesTextures','fixedHeight','rendering','Compute','Cesium','SRC_ALPHA','depthMask','_setOptionsHook','grid','destroyParticlesTextures','#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','call','WindLayer','create','owner','framebuffer','_onMouseUpEvent','clear','north','latitude','computing','initWorker','attributeLocations','STATIC_DRAW','height','834QmxDHY','log','uniformMap','lat','getRandomLatLng','data','changeOptions','udata','colors','IDENTITY','atan2','createRawRenderState','643254dJoukg','RED','style','getCalculateSpeedShader','beginPath','mouseUp','particlesTextureSize','previousParticlesPosition','ymax','random','length','#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','lng','LINEAR','Cartesian2','pixelDatatype','updateWindData','createPrimitives','applyViewerParameters','textures','update','CLAMP_TO_EDGE','min','512901UlvbAR','createRenderingFramebuffers','getDefaultRenderState','onColorTableChange','speedRate','createCommand','container','destroy','updateViewerParameters','mouse_down','createSegmentsGeometry','normal','getParticles','magnificationFilter','pointer-events','setData','layer','reCreateWindTextures','slice','round','off','bounds','width','mars3d-canvasWind','bindEvent','_drawLines','viewerParameters','Low\x20frame\x20rate\x20detected:\x20','componentDatatype','floor','postMessage','steps','addEventListener','flatMap','fromDegrees','minificationFilter','globe','shaderProgram','toGridXY','requestAnimationFrame','initFrameRate','array','east','CanvasWindField','DomUtil','pixelSize','preExecute','green','position','getUVByPoint','latRange','isInExtent','camera','min\x20is\x20undefined,\x20calculate\x20min','sources','setOptions','commandType','register','bufferUsage','NEAREST','alpha','_onMapWhellEvent','framebuffers','outputTexture','_updateIng2','FLOAT','redraw','xmin','colorTable','getUVByXY','umin','abs','particleSystem','createColorTableTexture','_mountedHook','fromGeometry','getSegmentDrawVertexShader','all','keys','ymin','mouse_move','drawingBufferWidth','changed','rows','context','917956WZRnRR','componentsPerAttribute','depthTest','nextParticlesPosition','#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','color','_onMouseDownEvent','displayRange','ellipsoid','isDynamic','canvasWidth','west','segments','get','EllipsoidalOccluder'];_0x1e26=function(){return _0x26797e;};return _0x1e26();}function _0x4308(_0x19957f,_0x5af39f){const _0x1e267c=_0x1e26();return _0x4308=function(_0x430894,_0x551860){_0x430894=_0x430894-0x120;let _0x3e8c5d=_0x1e267c[_0x430894];return _0x3e8c5d;},_0x4308(_0x19957f,_0x5af39f);}const {ShaderSource:ShaderSource$1}=mars3d__namespace[_0x5081bd(0x1c9,0x167)];class ShaderManager{static['getCalculateSpeedShader'](){const _0x2efe0b={};return _0x2efe0b['sources']=[calculateSpeedShader],new ShaderSource$1(_0x2efe0b);}static[_0x4de1f1(0x16c,0x1fd)](){const _0x27d277={};_0x27d277[_0x10135e(-0x20b,-0x1d1)]=[updatePositionShader];function _0x10135e(_0x2d52f1,_0x3f5bec){return _0x5081bd(_0x2d52f1- -0x31d,_0x3f5bec);}return new ShaderSource$1(_0x27d277);}static[_0x4de1f1(0x132,0x127)](){const _0x474c23={};_0x474c23[_0x1acff5(-0x168,-0x131)]=[renderParticlesVertexShader];function _0x1acff5(_0x4ba0a7,_0x218913){return _0x4de1f1(_0x4ba0a7- -0x284,_0x218913);}return new ShaderSource$1(_0x474c23);}static['getSegmentDrawFragmentShader'](){const _0x1feb60={};return _0x1feb60['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x1feb60);}static['getPostProcessingPositionShader'](){const _0x5959bb={};function _0x16ca50(_0xf2bc96,_0x3ae24e){return _0x5081bd(_0xf2bc96- -0x106,_0x3ae24e);}return _0x5959bb[_0x16ca50(0xc,-0x6b)]=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x5959bb);}}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defaultValue,defined,destroyObject}=mars3d__namespace[_0x4de1f1(0x1d3,0x145)];class CustomPrimitive{constructor(_0x42b232){this[_0x406ef7(0x54f,0x510)]=_0x42b232['commandType'],this['geometry']=_0x42b232['geometry'],this[_0x406ef7(0x616,0x655)]=_0x42b232[_0x406ef7(0x616,0x5e0)],this[_0x46290f(-0x161,-0xf4)]=_0x42b232['primitiveType'],this['uniformMap']=_0x42b232[_0x406ef7(0x61b,0x596)]||{},this[_0x406ef7(0x5ab,0x5d7)]=_0x42b232['vertexShaderSource'];function _0x406ef7(_0x5334f0,_0x47481c){return _0x4de1f1(_0x5334f0-0x431,_0x47481c);}this['fragmentShaderSource']=_0x42b232['fragmentShaderSource'];function _0x46290f(_0x486a8c,_0x3e39ee){return _0x5081bd(_0x3e39ee- -0x283,_0x486a8c);}this['rawRenderState']=_0x42b232['rawRenderState'],this['framebuffer']=_0x42b232[_0x406ef7(0x60f,0x5a2)],this[_0x46290f(-0x119,-0x168)]=_0x42b232['outputTexture'],this['autoClear']=defaultValue(_0x42b232[_0x406ef7(0x59f,0x59a)],![]),this['preExecute']=_0x42b232[_0x406ef7(0x545,0x5c4)],this['show']=!![],this[_0x46290f(-0x116,-0x120)]=undefined,this['clearCommand']=undefined,this[_0x406ef7(0x575,0x4f6)]=_0x42b232[_0x406ef7(0x575,0x5ad)]??(()=>!![]),this[_0x406ef7(0x59f,0x59f)]&&(this[_0x46290f(-0xe9,-0xfa)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this['framebuffer'],'pass':Pass$1['OPAQUE']}));}['createCommand'](_0x4b0672){function _0x3f9d21(_0x4c9288,_0x89c29e){return _0x4de1f1(_0x89c29e-0x3aa,_0x4c9288);}function _0x27a524(_0x59d84a,_0x4266dc){return _0x5081bd(_0x4266dc-0x21a,_0x59d84a);}if(this['commandType']===_0x27a524(0x3f6,0x3ba)){const _0x4b6ea4={};_0x4b6ea4[_0x27a524(0x2b9,0x34a)]=_0x4b0672,_0x4b6ea4['geometry']=this['geometry'],_0x4b6ea4[_0x27a524(0x418,0x3f5)]=this[_0x27a524(0x475,0x3f5)],_0x4b6ea4['bufferUsage']=BufferUsage$1[_0x27a524(0x36a,0x3f6)];const _0x9fd741=VertexArray$1['fromGeometry'](_0x4b6ea4),_0x557d39={};_0x557d39['context']=_0x4b0672,_0x557d39[_0x27a524(0x361,0x38a)]=this[_0x27a524(0x34e,0x38a)],_0x557d39['fragmentShaderSource']=this['fragmentShaderSource'],_0x557d39['attributeLocations']=this['attributeLocations'];const _0x6e25d6=ShaderProgram['fromCache'](_0x557d39),_0x558f3d=RenderState['fromCache'](this[_0x3f9d21(0x4f4,0x4f5)]),_0x550193={};return _0x550193[_0x27a524(0x3b8,0x3ed)]=this,_0x550193[_0x3f9d21(0x535,0x555)]=_0x9fd741,_0x550193['primitiveType']=this[_0x3f9d21(0x589,0x543)],_0x550193['modelMatrix']=Matrix4[_0x27a524(0x316,0x2dc)],_0x550193[_0x3f9d21(0x4fc,0x56e)]=_0x558f3d,_0x550193['shaderProgram']=_0x6e25d6,_0x550193['framebuffer']=this['framebuffer'],_0x550193[_0x3f9d21(0x5b4,0x594)]=this['uniformMap'],_0x550193[_0x3f9d21(0x4f5,0x50c)]=Pass$1['OPAQUE'],new DrawCommand(_0x550193);}else{if(this['commandType']==='Compute'){const _0x1157af={};return _0x1157af['owner']=this,_0x1157af['fragmentShaderSource']=this[_0x27a524(0x33f,0x381)],_0x1157af['uniformMap']=this[_0x3f9d21(0x520,0x594)],_0x1157af[_0x3f9d21(0x507,0x4cf)]=this[_0x3f9d21(0x4a5,0x4cf)],_0x1157af['persists']=!![],new ComputeCommand(_0x1157af);}else throw new Error('Unknown\x20command\x20type');}}['setGeometry'](_0x24e3a0,_0x464969){function _0x161680(_0x5cee60,_0x4a208f){return _0x5081bd(_0x4a208f- -0xdc,_0x5cee60);}function _0x4d2579(_0x424cc5,_0x5ac832){return _0x5081bd(_0x5ac832-0x141,_0x424cc5);}this['geometry']=_0x464969,defined(this['commandToExecute'])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x24e3a0,'geometry':this[_0x4d2579(0x324,0x2cb)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1[_0x161680(0x15a,0x100)]}));}['update'](_0x542c02){if(!this['isDynamic']())return;if(!this[_0xdfb268(0x5e8,0x65c)]||!defined(_0x542c02))return;!defined(this['commandToExecute'])&&(this[_0x26ab66(0x42d,0x484)]=this[_0xdfb268(0x524,0x4b4)](_0x542c02['context']));function _0x26ab66(_0x1f923d,_0x7dd522){return _0x4de1f1(_0x1f923d-0x2c0,_0x7dd522);}defined(this['preExecute'])&&this['preExecute']();if(!_0x542c02['commandList']){console['warn'](_0xdfb268(0x59d,0x515));return;}defined(this['clearCommand'])&&_0x542c02['commandList'][_0xdfb268(0x5da,0x62d)](this['clearCommand']);function _0xdfb268(_0x33e92d,_0x58ffd6){return _0x5081bd(_0x33e92d-0x443,_0x58ffd6);}defined(this[_0x26ab66(0x42d,0x44e)])&&_0x542c02['commandList']['push'](this[_0xdfb268(0x5a6,0x62d)]);}['isDestroyed'](){return![];}['destroy'](){function _0x2be93a(_0x40970b,_0xbd9586){return _0x4de1f1(_0xbd9586-0x1c3,_0x40970b);}function _0x4d11e2(_0x3e581f,_0x2f4b10){return _0x5081bd(_0x3e581f-0x221,_0x2f4b10);}if(defined(this[_0x2be93a(0x3ac,0x330)])){var _0x1499dc;(_0x1499dc=this['commandToExecute'][_0x4d11e2(0x322,0x33e)])===null||_0x1499dc===void 0x0||_0x1499dc['destroy'](),this['commandToExecute']['shaderProgram']=undefined;}return destroyObject(this);}}function deepMerge(_0x5d19d8,_0x5a8301){if(!_0x5d19d8)return _0x5a8301;if(!_0x5a8301)return _0x5d19d8;function _0x27f49c(_0x4e9624,_0xc393dc){return _0x5081bd(_0x4e9624- -0x130,_0xc393dc);}const _0x52d09b={..._0x5a8301},_0x43f947=_0x52d09b;function _0x1a8323(_0x3edf83,_0x4955d0){return _0x5081bd(_0x4955d0- -0xbd,_0x3edf83);}for(const _0x31837e in _0x5d19d8){if(Object['prototype']['hasOwnProperty'][_0x27f49c(0xa0,0x72)](_0x5d19d8,_0x31837e)){const _0x43bc6d=_0x5d19d8[_0x31837e],_0x5bb7ad=_0x5a8301[_0x31837e];if(Array['isArray'](_0x43bc6d)){_0x43f947[_0x31837e]=_0x43bc6d[_0x1a8323(0xaa,0x31)]();continue;}if(_0x43bc6d&&typeof _0x43bc6d==='object'){_0x43f947[_0x31837e]=deepMerge(_0x43bc6d,_0x5bb7ad||{});continue;}_0x43bc6d!==undefined&&(_0x43f947[_0x31837e]=_0x43bc6d);}}return _0x43f947;}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(_0x1a616d,_0x2dc7ff,_0x472a32,_0x367fc4,_0x108034){this[_0x67a6cb(-0x209,-0x232)]=_0x1a616d,this['options']=_0x472a32,this['viewerParameters']=_0x367fc4;function _0x1e5263(_0x33d153,_0x1d69c3){return _0x5081bd(_0x1d69c3-0x25c,_0x33d153);}this['windData']=_0x2dc7ff,this['frameRate']=0x3c,this['frameRateAdjustment']=0x1;function _0x67a6cb(_0x455fde,_0x68a56){return _0x4de1f1(_0x455fde- -0x343,_0x68a56);}const _0x2c81f2={};_0x2c81f2[_0x67a6cb(-0x1b9,-0x18e)]=_0x108034,_0x2c81f2['samplingWindow']=0x1,_0x2c81f2['quietPeriod']=0x0,this['frameRateMonitor']=new FrameRateMonitor(_0x2c81f2),this[_0x67a6cb(-0x235,-0x242)](),this['createWindTextures'](),this['createParticlesTextures'](),this[_0x1e5263(0x402,0x3b3)]();}['initFrameRate'](){const _0x298371=()=>{function _0x44e2fa(_0x1c1d4d,_0x57deaa){return _0x4308(_0x1c1d4d- -0x220,_0x57deaa);}function _0x3dd2c5(_0xa76b45,_0xdf5977){return _0x4308(_0xa76b45- -0x24a,_0xdf5977);}this['frameRateMonitor']['lastFramesPerSecond']>0x14&&(this['frameRate']=this[_0x44e2fa(-0x43,-0x38)][_0x3dd2c5(-0x26,-0x5e)],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0x298371();const _0x2fe883=setInterval(_0x298371,0x3e8);function _0x7a6d51(_0x1cd63d,_0x181220){return _0x4de1f1(_0x1cd63d- -0x26b,_0x181220);}this['frameRateMonitor']['lowFrameRate']['addEventListener']((_0x39bfad,_0x520dea)=>{function _0x22b69e(_0xe00356,_0x4af119){return _0x4308(_0x4af119-0x9d,_0xe00356);}function _0x274a95(_0x369d65,_0x2b69e0){return _0x4308(_0x369d65- -0x3cd,_0x2b69e0);}console[_0x22b69e(0x2be,0x2b6)](_0x274a95(-0x274,-0x216)+_0x520dea+'\x20FPS');}),this['frameRateMonitor']['nominalFrameRate']['addEventListener']((_0x57daf6,_0xeb9c24)=>{console['log']('Frame\x20rate\x20returned\x20to\x20normal:\x20'+_0xeb9c24+'\x20FPS');});const _0xdb3d7d=this['destroy'][_0x7a6d51(-0xac,-0x9c)](this);function _0x2ca899(_0xf6ff10,_0x4fd618){return _0x4de1f1(_0xf6ff10-0x17b,_0x4fd618);}this[_0x7a6d51(-0x17e,-0x136)]=()=>{clearInterval(_0x2fe883),_0xdb3d7d();};}['createWindTextures'](){const _0x676e4a={};function _0x2c683d(_0x50ec27,_0x3f035f){return _0x5081bd(_0x3f035f- -0xcd,_0x50ec27);}_0x676e4a['minificationFilter']=TextureMinificationFilter$1[_0x1a5797(-0xd8,-0xa7)],_0x676e4a['magnificationFilter']=TextureMagnificationFilter$1['LINEAR'];function _0x1a5797(_0x2241d0,_0x4ffc8e){return _0x4de1f1(_0x2241d0- -0x1b4,_0x4ffc8e);}const _0xb33ce6={'context':this['context'],'width':this['windData']['width'],'height':this['windData'][_0x1a5797(0x33,0x97)],'pixelFormat':PixelFormat$1[_0x1a5797(-0xe4,-0xa7)],'pixelDatatype':PixelDatatype$1[_0x2c683d(0x77,0x50)],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x676e4a)};this['windTextures']={'U':new Texture$1({..._0xb33ce6,'source':{'arrayBufferView':new Float32Array(this['windData']['u'][_0x2c683d(0x8a,0x38)])}}),'V':new Texture$1({..._0xb33ce6,'source':{'arrayBufferView':new Float32Array(this['windData']['v'][_0x1a5797(-0xa5,-0x1e)])}})};}['createParticlesTextures'](){function _0x2b24f3(_0xf09ad4,_0x3d29ca){return _0x5081bd(_0x3d29ca- -0x25d,_0xf09ad4);}const _0xec4775={};_0xec4775[_0x2b24f3(-0x14d,-0x15e)]=TextureMinificationFilter$1[_0x53dd85(0x1f4,0x1ce)];function _0x53dd85(_0x465cb2,_0x1f5cae){return _0x4de1f1(_0x465cb2-0xd3,_0x1f5cae);}_0xec4775[_0x2b24f3(-0x13a,-0x174)]=TextureMagnificationFilter$1[_0x53dd85(0x1f4,0x1b1)];const _0x5e2b02={'context':this['context'],'width':this[_0x2b24f3(-0x6c,-0xea)]['particlesTextureSize'],'height':this['options'][_0x2b24f3(-0x1b6,-0x192)],'pixelFormat':PixelFormat$1[_0x53dd85(0x21d,0x18b)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':![],'source':{'arrayBufferView':new Float32Array(this['options'][_0x53dd85(0x1a8,0x203)]*this['options']['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0xec4775)};this['particlesTextures']={'previousParticlesPosition':new Texture$1(_0x5e2b02),'currentParticlesPosition':new Texture$1(_0x5e2b02),'nextParticlesPosition':new Texture$1(_0x5e2b02),'postProcessingPosition':new Texture$1(_0x5e2b02),'particlesSpeed':new Texture$1(_0x5e2b02)};}[_0x5081bd(0x1ce,0x21c)](){function _0x1ab07f(_0x3c59e5,_0x39b0bc){return _0x4de1f1(_0x3c59e5- -0xf6,_0x39b0bc);}Object['values'](this[_0x1ab07f(0xd9,0x146)])['forEach'](_0x56649b=>_0x56649b['destroy']());}['createComputingPrimitives'](){function _0xde67eb(_0x17f07a,_0x1987d9){return _0x4de1f1(_0x1987d9-0x11,_0x17f07a);}function _0x433fa6(_0x16a8b9,_0x45be2d){return _0x5081bd(_0x45be2d-0xd6,_0x16a8b9);}this[_0x433fa6(0x2c2,0x26b)]={'calculateSpeed':new CustomPrimitive({'commandType':'Compute','uniformMap':{'U':()=>this['windTextures']['U'],'V':()=>this[_0x433fa6(0x1f6,0x25c)]['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this['windData']['u'][_0xde67eb(0x107,0x186)]),'vRange':()=>new Cartesian2$1(this['windData']['v'][_0xde67eb(0x100,0xf6)],this[_0xde67eb(0x16c,0x177)]['v']['max']),'speedRange':()=>new Cartesian2$1(this['windData'][_0x433fa6(0x208,0x267)][_0x433fa6(0x125,0x1b1)],this['windData']['speed'][_0x433fa6(0x2bf,0x241)]),'currentParticlesPosition':()=>this['particlesTextures']['currentParticlesPosition'],'speedScaleFactor':()=>{return(this['viewerParameters']['pixelSize']+0x32)*this['options']['speedFactor'];},'frameRateAdjustment':()=>this['frameRateAdjustment'],'dimension':()=>new Cartesian2$1(this[_0x433fa6(0x1fd,0x232)]['width'],this['windData']['height']),'minimum':()=>new Cartesian2$1(this['windData']['bounds'][_0xde67eb(0x159,0x157)],this['windData'][_0x433fa6(0x21f,0x1c7)]['south']),'maximum':()=>new Cartesian2$1(this[_0x433fa6(0x1ff,0x232)]['bounds']['east'],this[_0x433fa6(0x25a,0x232)]['bounds']['north'])},'fragmentShaderSource':ShaderManager[_0x433fa6(0x14c,0x19e)](),'outputTexture':this[_0x433fa6(0x26b,0x29b)][_0xde67eb(0x220,0x199)],'preExecute':()=>{const _0x56c494=this[_0x194ad7(0x5e6,0x571)]['previousParticlesPosition'];function _0x381373(_0x264f9f,_0x13e436){return _0xde67eb(_0x264f9f,_0x13e436-0xfa);}this['particlesTextures']['previousParticlesPosition']=this['particlesTextures']['currentParticlesPosition'];function _0x194ad7(_0x25641d,_0x3740ac){return _0x433fa6(_0x25641d,_0x3740ac-0x2d6);}this['particlesTextures']['currentParticlesPosition']=this['particlesTextures']['postProcessingPosition'],this[_0x381373(0x26e,0x2da)]['postProcessingPosition']=_0x56c494,this['primitives']['calculateSpeed']['commandToExecute']&&(this[_0x194ad7(0x4e4,0x541)]['calculateSpeed'][_0x381373(0x30a,0x278)]['outputTexture']=this['particlesTextures']['particlesSpeed']);},'isDynamic':()=>this['options'][_0x433fa6(0x218,0x266)]}),'updatePosition':new CustomPrimitive({'commandType':_0xde67eb(0x15a,0x1e3),'uniformMap':{'currentParticlesPosition':()=>this['particlesTextures'][_0xde67eb(0x1ac,0x15f)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed']},'fragmentShaderSource':ShaderManager['getUpdatePositionShader'](),'outputTexture':this['particlesTextures'][_0x433fa6(0x197,0x20a)],'preExecute':()=>{function _0x1f3c53(_0x2e7d21,_0x5f1391){return _0xde67eb(_0x2e7d21,_0x5f1391-0x2a3);}function _0x3ed6cf(_0x50a5a2,_0x1ebdf1){return _0x433fa6(_0x1ebdf1,_0x50a5a2- -0x400);}this[_0x1f3c53(0x411,0x453)][_0x3ed6cf(-0x187,-0x1f1)][_0x3ed6cf(-0x1c7,-0x1f3)]&&(this[_0x1f3c53(0x475,0x453)]['updatePosition'][_0x3ed6cf(-0x1c7,-0x1ca)]['outputTexture']=this[_0x1f3c53(0x4f1,0x483)][_0x3ed6cf(-0x1f6,-0x1ec)]);},'isDynamic':()=>this['options']['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this[_0x433fa6(0x224,0x29b)][_0x433fa6(0x1b9,0x20a)],'particlesSpeed':()=>this['particlesTextures'][_0x433fa6(0x1e4,0x254)],'lonRange':()=>this['viewerParameters']['lonRange'],'latRange':()=>this['viewerParameters'][_0xde67eb(0x19f,0x129)],'dataLonRange':()=>new Cartesian2$1(this['windData']['bounds']['west'],this['windData']['bounds']['east']),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds'][_0xde67eb(0xfd,0x15e)],this['windData'][_0xde67eb(0x11d,0x10c)]['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this['options']['dropRate'],'dropRateBump':()=>this[_0xde67eb(0x1c1,0x18e)]['dropRateBump'],'useViewerBounds':()=>this['options']['useViewerBounds']},'fragmentShaderSource':ShaderManager['getPostProcessingPositionShader'](),'outputTexture':this['particlesTextures']['postProcessingPosition'],'preExecute':()=>{function _0x330afe(_0x359906,_0x5754c3){return _0xde67eb(_0x359906,_0x5754c3- -0x32);}function _0x1eb496(_0xdb5eea,_0x3a1a25){return _0x433fa6(_0x3a1a25,_0xdb5eea-0x2e8);}this['primitives'][_0x330afe(0x1ce,0x1a6)][_0x1eb496(0x521,0x4ef)]&&(this['primitives']['postProcessingPosition']['commandToExecute']['outputTexture']=this['particlesTextures'][_0x1eb496(0x57b,0x57f)]);},'isDynamic':()=>this[_0xde67eb(0x147,0x18e)][_0xde67eb(0x1c0,0x1ab)]})};}[_0x5081bd(0xed,0xf1)](){this['windTextures']['U']['destroy'](),this['windTextures']['V']['destroy'](),this['createWindTextures']();}['updateWindData'](_0x5c22b4){function _0x578592(_0x1fd83a,_0x2c7b02){return _0x4de1f1(_0x1fd83a-0x70,_0x2c7b02);}function _0x34edfb(_0x178338,_0x2125f5){return _0x4de1f1(_0x2125f5-0x312,_0x178338);}this[_0x34edfb(0x40d,0x478)]=_0x5c22b4,this[_0x578592(0x167,0x11d)]();}['updateOptions'](_0x55c026){function _0x1f3736(_0x4db06b,_0xf849f2){return _0x4de1f1(_0xf849f2-0x154,_0x4db06b);}const _0x49b742=_0x55c026[_0x63dd8d(0x179,0x1ae)]!==undefined&&_0x55c026['flipY']!==this['options']['flipY'];this['options']=deepMerge(_0x55c026,this[_0x63dd8d(0x1a4,0x16d)]);function _0x63dd8d(_0x20a47b,_0x5372d1){return _0x4de1f1(_0x20a47b-0x27,_0x5372d1);}_0x49b742&&this[_0x1f3736(0x2bf,0x24b)]();}[_0x4de1f1(0x160,0x155)](_0x59fb69){function _0x2ad267(_0x4f8b2f,_0x820193){return _0x5081bd(_0x4f8b2f-0xa,_0x820193);}const {array:_0x350b4c}=_0x59fb69;let {min:_0x2c41d1,max:_0x4c7609}=_0x59fb69;function _0x3d0e43(_0xef1d8,_0x97365c){return _0x4de1f1(_0x97365c-0x396,_0xef1d8);}const _0x17b4ba=new Float32Array(_0x350b4c['length']);_0x2c41d1===undefined&&(console['warn'](_0x3d0e43(0x52f,0x4b1)),_0x2c41d1=Math[_0x2ad267(0xe5,0xae)](..._0x350b4c));_0x4c7609===undefined&&(console[_0x2ad267(0x1c1,0x15d)]('max\x20is\x20undefined,\x20calculate\x20max'),_0x4c7609=Math[_0x2ad267(0x175,0x1f2)](..._0x350b4c));const _0x38d17d=Math[_0x2ad267(0x175,0x1e6)](Math[_0x3d0e43(0x46f,0x4c3)](_0x2c41d1),Math[_0x2ad267(0x12d,0xc9)](_0x4c7609));for(let _0x32cd78=0x0;_0x32cd78<_0x350b4c['length'];_0x32cd78++){const _0x254a98=_0x350b4c[_0x32cd78]/_0x38d17d;_0x17b4ba[_0x32cd78]=_0x254a98;}return console['log'](_0x17b4ba),_0x17b4ba;}['destroy'](){Object[_0x46200e(0x113,0xf2)](this['windTextures'])['forEach'](_0x1c9bdf=>_0x1c9bdf[_0x46200e(0x71,0x2b)]());function _0x5795f2(_0x2ea300,_0x11ce9a){return _0x4de1f1(_0x2ea300- -0x385,_0x11ce9a);}function _0x46200e(_0x30428b,_0x27957b){return _0x5081bd(_0x30428b- -0x72,_0x27957b);}Object['values'](this['particlesTextures'])['forEach'](_0x25a331=>_0x25a331[_0x5795f2(-0x298,-0x25c)]()),Object['values'](this[_0x46200e(0x123,0xe9)])['forEach'](_0x33a296=>_0x33a296['destroy']()),this[_0x46200e(0x109,0x9f)]['destroy']();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];class WindParticlesRendering{constructor(_0x35bfed,_0x524185,_0x29528f,_0x23c9f5){this['context']=_0x35bfed;function _0x1210c1(_0x358953,_0x38b11d){return _0x5081bd(_0x38b11d- -0x1c2,_0x358953);}this[_0x1210c1(-0xb6,-0x4f)]=_0x524185,this[_0x5bb2d8(0x452,0x44c)]=_0x29528f,this[_0x5bb2d8(0x535,0x4c0)]=_0x23c9f5;(typeof this['options']['particlesTextureSize']!=='number'||this[_0x5bb2d8(0x4cf,0x478)]['particlesTextureSize']<=0x0)&&(console['error']('Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.'),this['options']['particlesTextureSize']=0x100);this['colorTable']=this[_0x5bb2d8(0x481,0x461)](),this[_0x5bb2d8(0x434,0x4b7)]=this['createRenderingTextures'](),this['framebuffers']=this['createRenderingFramebuffers']();function _0x5bb2d8(_0x556dae,_0x22485e){return _0x5081bd(_0x556dae-0x35c,_0x22485e);}this['primitives']=this[_0x5bb2d8(0x432,0x4a0)]();}['createRenderingTextures'](){function _0x9d1a91(_0x1d6c7e,_0x3287d3){return _0x5081bd(_0x3287d3- -0x16b,_0x1d6c7e);}const _0x14bc55={};_0x14bc55[_0x9d1a91(-0x12,-0x3b)]=this['context'],_0x14bc55[_0x9d1a91(-0x7f,-0x79)]=this['context'][_0x9d1a91(-0xc3,-0x3e)],_0x14bc55[_0x250556(0x564,0x5de)]=this[_0x250556(0x535,0x531)]['drawingBufferHeight'],_0x14bc55[_0x9d1a91(0x5c,-0x29)]=PixelFormat[_0x9d1a91(-0x27,-0x2b)],_0x14bc55['pixelDatatype']=PixelDatatype[_0x250556(0x5ab,0x56b)];const _0x2ddbb8=_0x14bc55,_0x4d9acc={};_0x4d9acc['context']=this['context'],_0x4d9acc[_0x9d1a91(-0xa,-0x79)]=this[_0x9d1a91(-0x89,-0x3b)]['drawingBufferWidth'],_0x4d9acc['height']=this['context'][_0x250556(0x5cc,0x5b2)],_0x4d9acc['pixelFormat']=PixelFormat[_0x250556(0x5cd,0x5b4)],_0x4d9acc[_0x9d1a91(-0xdb,-0x97)]=PixelDatatype[_0x250556(0x64e,0x5c0)];function _0x250556(_0x23e130,_0x2b847d){return _0x4de1f1(_0x2b847d-0x3f7,_0x23e130);}const _0x3470d0=_0x4d9acc;return{'segmentsColor':new Texture(_0x2ddbb8),'segmentsDepth':new Texture(_0x3470d0)};}[_0x4de1f1(0xe7,0x178)](){function _0x40cb10(_0x2d883c,_0x45d1fe){return _0x4de1f1(_0x2d883c- -0x30f,_0x45d1fe);}const _0x22485a={};_0x22485a[_0x153393(0x362,0x2da)]=this['context'],_0x22485a[_0x153393(0x39f,0x311)]=[this['textures'][_0x40cb10(-0x14f,-0x12c)]];function _0x153393(_0x980583,_0x22b76d){return _0x4de1f1(_0x980583-0x228,_0x22b76d);}return _0x22485a['depthTexture']=this[_0x153393(0x30a,0x38d)]['segmentsDepth'],{'segments':new Framebuffer(_0x22485a)};}['destoryRenderingFramebuffers'](){Object['values'](this['framebuffers'])['forEach'](_0xe2c7fe=>{_0xe2c7fe['destroy']();});}[_0x4de1f1(0x12f,0x10e)](){const _0xb5a80d=new Float32Array(this[_0xc3071b(0x37d,0x3e9)][_0xc3071b(0x2cb,0x23f)][_0x18f61e(-0xbc,-0x11c)](_0x322d2a=>{function _0x3360cc(_0x593513,_0x3576ca){return _0x18f61e(_0x593513,_0x3576ca-0x568);}function _0x5d81f5(_0x269631,_0x1713f5){return _0xc3071b(_0x269631- -0x4f0,_0x1713f5);}const _0x392229=Color$1['fromCssColorString'](_0x322d2a);return[_0x392229['red'],_0x392229[_0x3360cc(0x406,0x45a)],_0x392229['blue'],_0x392229[_0x3360cc(0x451,0x467)]];})),_0x56bcbf={};_0x56bcbf['minificationFilter']=TextureMinificationFilter[_0x18f61e(-0x15d,-0x147)];function _0x18f61e(_0x494afb,_0x380c7a){return _0x5081bd(_0x380c7a- -0x219,_0x494afb);}_0x56bcbf['magnificationFilter']=TextureMagnificationFilter[_0xc3071b(0x2dc,0x30a)],_0x56bcbf[_0x18f61e(-0x91,-0x73)]=TextureWrap['CLAMP_TO_EDGE'];function _0xc3071b(_0x1e83e7,_0x1e790e){return _0x4de1f1(_0x1e83e7-0x200,_0x1e790e);}return _0x56bcbf['wrapT']=TextureWrap[_0xc3071b(0x2e4,0x276)],new Texture({'context':this['context'],'width':this[_0xc3071b(0x37d,0x38c)][_0x18f61e(-0x12d,-0x158)]['length'],'height':0x1,'pixelFormat':PixelFormat['RGBA'],'pixelDatatype':PixelDatatype[_0xc3071b(0x327,0x2aa)],'sampler':new Sampler(_0x56bcbf),'source':{'width':this['options']['colors'][_0x18f61e(-0xe1,-0x14a)],'height':0x1,'arrayBufferView':_0xb5a80d}});}[_0x4de1f1(0xf0,0x87)](){const _0x422ff2=0x4,_0x23143e=this['options'][_0x749b92(0x3c8,0x3ed)];let _0x12dc82=[];for(let _0x2f335f=0x0;_0x2f335f<_0x23143e;_0x2f335f++){for(let _0x18085b=0x0;_0x18085b<_0x23143e;_0x18085b++){for(let _0x867129=0x0;_0x867129<_0x422ff2;_0x867129++){_0x12dc82['push'](_0x2f335f/_0x23143e),_0x12dc82['push'](_0x18085b/_0x23143e);}}}function _0x749b92(_0x19f22d,_0x54d53b){return _0x4de1f1(_0x19f22d-0x2f3,_0x54d53b);}_0x12dc82=new Float32Array(_0x12dc82);const _0x4c2085=this['options']['particlesTextureSize']**0x2;let _0x213596=[];for(let _0x599ca7=0x0;_0x599ca7<_0x4c2085;_0x599ca7++){_0x213596[_0x37ee86(0x562,0x579)](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x213596=new Float32Array(_0x213596);let _0x1bd17e=[];for(let _0x54d335=0x0,_0x8e7622=0x0;_0x54d335<_0x4c2085;_0x54d335++){_0x1bd17e[_0x749b92(0x494,0x411)](_0x8e7622+0x0,_0x8e7622+0x1,_0x8e7622+0x2,_0x8e7622+0x2,_0x8e7622+0x1,_0x8e7622+0x3),_0x8e7622+=_0x422ff2;}_0x1bd17e=new Uint32Array(_0x1bd17e);const _0x4f487f={};_0x4f487f['componentDatatype']=ComponentDatatype['FLOAT'],_0x4f487f[_0x37ee86(0x4dc,0x514)]=0x2,_0x4f487f['values']=_0x12dc82;const _0x329631={};_0x329631[_0x37ee86(0x50c,0x4da)]=ComponentDatatype[_0x37ee86(0x512,0x4ff)],_0x329631[_0x37ee86(0x525,0x514)]=0x3,_0x329631['values']=_0x213596;function _0x37ee86(_0x24fdbb,_0x3b2732){return _0x4de1f1(_0x3b2732-0x3d8,_0x24fdbb);}const _0x213317=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x4f487f),'normal':new GeometryAttribute(_0x329631)}),'indices':_0x1bd17e});return _0x213317;}[_0x4de1f1(0xce,0xdd)](_0x239057){function _0xed1efe(_0x406cf3,_0x461f2d){return _0x4de1f1(_0x406cf3-0x403,_0x461f2d);}const _0xf4fc58={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x239057};return Appearance[_0xed1efe(0x4eb,0x4b6)](!![],![],_0xf4fc58);}['createPrimitives'](){const _0x4ebea8={};_0x4ebea8['st']=0x0,_0x4ebea8[_0x39cf32(-0x101,-0x108)]=0x1;const _0x1f63f1={};function _0x20dd2f(_0x3c1e9a,_0x61053a){return _0x4de1f1(_0x3c1e9a- -0x1a8,_0x61053a);}_0x1f63f1['enabled']=!![];const _0x112181={};_0x112181['enabled']=!![],_0x112181[_0x39cf32(0xc,-0x83)]=WebGLRenderingContext[_0x39cf32(-0x7,-0x53)],_0x112181[_0x20dd2f(-0x1d,0x12)]=WebGLRenderingContext[_0x20dd2f(0x2c,0x26)],_0x112181[_0x39cf32(-0x77,-0x2f)]=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x10fadc={};_0x10fadc['viewport']=undefined,_0x10fadc[_0x39cf32(-0x8d,-0xbc)]=_0x1f63f1,_0x10fadc[_0x39cf32(0x40,-0x24)]=!![],_0x10fadc[_0x20dd2f(0x1d,-0x32)]=_0x112181;function _0x39cf32(_0x244458,_0x58af63){return _0x5081bd(_0x58af63- -0x1ef,_0x244458);}const _0x5d49cb=new CustomPrimitive({'commandType':_0x39cf32(-0xaa,-0x4f),'attributeLocations':_0x4ebea8,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this['computing']['particlesTextures'][_0x39cf32(-0x106,-0x123)],'currentParticlesPosition':()=>this[_0x20dd2f(0x3b,0x61)][_0x20dd2f(0x27,-0x4f)][_0x39cf32(-0x85,-0xab)],'postProcessingPosition':()=>this[_0x39cf32(0x7a,-0x16)]['particlesTextures']['postProcessingPosition'],'particlesSpeed':()=>this['computing']['particlesTextures']['particlesSpeed'],'frameRateAdjustment':()=>this[_0x20dd2f(0x3b,0x62)][_0x39cf32(0x1a,-0x33)],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x482974(_0x460492,_0x221439){return _0x39cf32(_0x221439,_0x460492- -0x13b);}var _0x3f1a0b,_0x13a002;const _0x3091c0=new Cartesian2(((_0x3f1a0b=this[_0x104c1d(0x299,0x268)][_0x104c1d(0x26a,0x246)])===null||_0x3f1a0b===void 0x0?void 0x0:_0x3f1a0b['min'])??this['computing']['windData']['speed']['min'],((_0x13a002=this[_0x482974(-0x1b7,-0x21f)][_0x104c1d(0x2a4,0x246)])===null||_0x13a002===void 0x0?void 0x0:_0x13a002['max'])??this[_0x482974(-0x151,-0x1ba)]['windData'][_0x104c1d(0x1fa,0x286)]['max']);function _0x104c1d(_0x350936,_0x45f078){return _0x39cf32(_0x350936,_0x45f078-0x2e4);}return _0x3091c0;},'displayRange':()=>{function _0x4d8010(_0x56404f,_0x1312a2){return _0x39cf32(_0x1312a2,_0x56404f- -0xa3);}var _0x2118f1,_0x537cb1;function _0x3230e4(_0x27378c,_0x154c40){return _0x39cf32(_0x154c40,_0x27378c-0x44a);}const _0x5d037c=new Cartesian2(((_0x2118f1=this[_0x3230e4(0x3ce,0x3e9)][_0x4d8010(-0x15a,-0x17d)])===null||_0x2118f1===void 0x0?void 0x0:_0x2118f1[_0x4d8010(-0x1b7,-0x13a)])??this['computing']['windData'][_0x4d8010(-0x101,-0x166)]['min'],((_0x537cb1=this[_0x3230e4(0x3ce,0x443)]['displayRange'])===null||_0x537cb1===void 0x0?void 0x0:_0x537cb1['max'])??this[_0x3230e4(0x434,0x417)][_0x4d8010(-0x136,-0x198)]['speed'][_0x3230e4(0x3c6,0x3d5)]);return _0x5d037c;},'particleHeight':()=>this['options']['particleHeight']||0x0,'aspect':()=>this['context']['drawingBufferWidth']/this['context']['drawingBufferHeight'],'pixelSize':()=>this['viewerParameters']['pixelSize'],'lineWidth':()=>{function _0x527ea8(_0x351c31,_0x5aad60){return _0x20dd2f(_0x5aad60-0x17d,_0x351c31);}const _0x30f835={};_0x30f835[_0x2de4e3(0x4e8,0x46b)]=0x1,_0x30f835['max']=0x2;function _0x2de4e3(_0x18e946,_0x5bfde4){return _0x20dd2f(_0x18e946-0x5ab,_0x5bfde4);}const _0x3595ab=this['options'][_0x2de4e3(0x5c6,0x5bb)]||_0x30f835;return new Cartesian2(_0x3595ab['min'],_0x3595ab[_0x527ea8(0x145,0x14a)]);},'lineLength':()=>{const _0x33f0eb={};function _0x477428(_0x198261,_0x1c3380){return _0x39cf32(_0x1c3380,_0x198261-0x2d4);}function _0x73103(_0x1f138a,_0x1eb12f){return _0x20dd2f(_0x1f138a-0x20a,_0x1eb12f);}_0x33f0eb['min']=0x14,_0x33f0eb[_0x477428(0x250,0x292)]=0x64;const _0x1dc677=this['options'][_0x477428(0x22f,0x2a0)]||_0x33f0eb;return new Cartesian2(_0x1dc677[_0x477428(0x1c0,0x14a)],_0x1dc677['max']);},'is3D':()=>this[_0x20dd2f(-0xa8,-0x76)]['sceneMode']===SceneMode['SCENE3D'],'segmentsDepthTexture':()=>this['textures']['segmentsDepth']},'vertexShaderSource':ShaderManager[_0x39cf32(-0x107,-0xc7)](),'fragmentShaderSource':ShaderManager[_0x39cf32(0xe,-0x42)](),'rawRenderState':this['createRawRenderState'](_0x10fadc)}),_0xca28f={};return _0xca28f['segments']=_0x5d49cb,_0xca28f;}['onParticlesTextureSizeChange'](){const _0x3b89bf=this[_0xd3e905(0x467,0x4dc)]();this[_0xd3e905(0x516,0x595)]['segments'][_0xd3e905(0x50b,0x4a6)]=_0x3b89bf;const _0x3a77fc={};function _0xd3e905(_0x8b399f,_0x5d13b0){return _0x5081bd(_0x8b399f-0x381,_0x5d13b0);}_0x3a77fc[_0xd3e905(0x4b1,0x489)]=this['context'],_0x3a77fc[_0xd3e905(0x50b,0x4e4)]=_0x3b89bf,_0x3a77fc[_0x78a54e(0x25e,0x1fc)]=this['primitives'][_0x78a54e(0x1c0,0x20f)][_0xd3e905(0x55c,0x504)],_0x3a77fc[_0xd3e905(0x497,0x507)]=BufferUsage[_0x78a54e(0x25f,0x20d)];const _0x4d212f=VertexArray[_0xd3e905(0x4a8,0x4f8)](_0x3a77fc);function _0x78a54e(_0x4bf5e4,_0x29994f){return _0x4de1f1(_0x4bf5e4-0x79,_0x29994f);}this[_0xd3e905(0x516,0x4d7)]['segments']['commandToExecute']&&(this['primitives']['segments'][_0xd3e905(0x4e4,0x525)][_0x78a54e(0x224,0x204)]=_0x4d212f);}[_0x5081bd(0xdf,0x64)](){function _0x1e77ae(_0x43c3a2,_0x385a30){return _0x5081bd(_0x43c3a2- -0x25d,_0x385a30);}this['colorTable'][_0x1fc13d(-0x23b,-0x24f)]();function _0x1fc13d(_0x2561cf,_0xba0978){return _0x4de1f1(_0x2561cf- -0x328,_0xba0978);}this[_0x1fc13d(-0x1fe,-0x232)]=this[_0x1fc13d(-0x1f9,-0x227)]();}[_0x5081bd(0x15b,0x148)](_0x5601ba){const _0x411af5=_0x5601ba[_0x226d4a(0x368,0x3d1)]&&JSON['stringify'](_0x5601ba['colors'])!==JSON['stringify'](this['options'][_0x328635(0x389,0x35e)]);this[_0x226d4a(0x42a,0x483)]=deepMerge(_0x5601ba,this['options']);function _0x226d4a(_0x799cb1,_0x44dfb9){return _0x5081bd(_0x44dfb9-0x310,_0x799cb1);}function _0x328635(_0x10443a,_0x593fc4){return _0x4de1f1(_0x10443a-0x2be,_0x593fc4);}_0x411af5&&this['onColorTableChange']();}['destroy'](){function _0x539af2(_0x1cd6e9,_0x540775){return _0x5081bd(_0x540775-0x227,_0x1cd6e9);}Object['values'](this[_0x5dd7a4(0x42f,0x3c8)])['forEach'](_0x3fd758=>{_0x3fd758['destroy']();}),Object[_0x539af2(0x402,0x3ac)](this[_0x5dd7a4(0x4d2,0x443)])['forEach'](_0x2229da=>{function _0xfe6e5d(_0x5da197,_0x126635){return _0x5dd7a4(_0x5da197,_0x126635- -0x24c);}_0x2229da[_0xfe6e5d(0x13f,0x145)]();});function _0x5dd7a4(_0x570103,_0x1f1712){return _0x4de1f1(_0x1f1712-0x2a4,_0x570103);}this['colorTable'][_0x5dd7a4(0x3fa,0x391)]();}}const {ClearCommand,Color,Pass}=mars3d__namespace['Cesium'];class WindParticleSystem{constructor(_0x37a5a9,_0x4e17f8,_0x2487df,_0x55b385,_0x5b753c){this['context']=_0x37a5a9;function _0x30c25d(_0x4afadd,_0x4425b2){return _0x5081bd(_0x4afadd-0x2e0,_0x4425b2);}function _0xe12de6(_0x17e81c,_0x40bfc8){return _0x5081bd(_0x17e81c- -0x16d,_0x40bfc8);}this['options']=_0x2487df,this[_0x30c25d(0x3d6,0x44d)]=_0x55b385,this['computing']=new WindParticlesComputing(_0x37a5a9,_0x4e17f8,_0x2487df,_0x55b385,_0x5b753c),this[_0xe12de6(0x5a,0x7c)]=new WindParticlesRendering(_0x37a5a9,_0x2487df,_0x55b385,this['computing']),this[_0xe12de6(0x7,-0x58)]();}[_0x5081bd(0x198,0x145)](){function _0x55e5f9(_0x35db44,_0x4891ca){return _0x5081bd(_0x4891ca-0xf7,_0x35db44);}const _0x8cbd77=[this['computing']['primitives']['calculateSpeed'],this[_0x55e5f9(0x240,0x2d0)]['primitives'][_0x33ed67(-0x8d,-0xde)],this[_0x55e5f9(0x26a,0x2d0)]['primitives'][_0x33ed67(-0x73,-0xc3)],this['rendering']['primitives'][_0x33ed67(-0xf3,-0xd4)]];function _0x33ed67(_0x3584a4,_0x4a5ebd){return _0x4de1f1(_0x3584a4- -0x23a,_0x4a5ebd);}return _0x8cbd77;}[_0x5081bd(0x174,0x171)](){function _0x1d4875(_0x1f7a9d,_0x1bce2d){return _0x5081bd(_0x1f7a9d-0x203,_0x1bce2d);}const _0x16e554=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});Object['keys'](this['rendering']['framebuffers'])[_0x1d4875(0x375,0x300)](_0x1f3c80=>{_0x16e554[_0x23e0b8(0x485,0x44a)]=this['rendering'][_0x23e0b8(0x3cb,0x423)][_0x1f3c80];function _0x5b0c57(_0x418cb3,_0xec5d47){return _0x1d4875(_0x418cb3- -0x4ec,_0xec5d47);}function _0x23e0b8(_0x3e7d21,_0x4fd208){return _0x1d4875(_0x3e7d21-0xae,_0x4fd208);}_0x16e554['execute'](this[_0x5b0c57(-0x1b9,-0x212)]);});}[_0x4de1f1(0xc9,0xcd)](_0x1f9b78){let _0x1ddc50=![];_0x1f9b78[_0x4937bf(-0x5f,0x20)]&&this[_0x545aee(0x7d,-0x13)]['particlesTextureSize']!==_0x1f9b78['particlesTextureSize']&&(_0x1ddc50=!![]);function _0x4937bf(_0x3fadc2,_0x4cd4ac){return _0x5081bd(_0x4cd4ac- -0xab,_0x3fadc2);}const _0xa57137=deepMerge(_0x1f9b78,this['options']);if(_0xa57137['particlesTextureSize']<0x1)throw new Error('particlesTextureSize\x20must\x20be\x20greater\x20than\x200');this['options']=_0xa57137;function _0x545aee(_0x64f24,_0x2877ef){return _0x4de1f1(_0x64f24- -0x100,_0x2877ef);}this[_0x4937bf(0x124,0x11c)][_0x4937bf(0xbf,0xb0)](_0x1f9b78),this['computing']['updateOptions'](_0x1f9b78),_0x1ddc50&&(this[_0x545aee(0xe3,0xb8)]['destroyParticlesTextures'](),this['computing']['createParticlesTextures'](),this['rendering']['onParticlesTextureSizeChange']());}[_0x4de1f1(0xe1,0x147)](_0x5045fe){function _0x2b6f9b(_0x52cecd,_0xcc252d){return _0x4de1f1(_0xcc252d-0x3e2,_0x52cecd);}this[_0x3fe738(0x511,0x537)]=_0x5045fe;function _0x3fe738(_0x199cee,_0x38eafb){return _0x5081bd(_0x199cee-0x41b,_0x38eafb);}this[_0x3fe738(0x5f4,0x5d4)][_0x2b6f9b(0x564,0x4e2)]=_0x5045fe,this[_0x2b6f9b(0x5e4,0x5b3)][_0x2b6f9b(0x50e,0x4e2)]=_0x5045fe;}['destroy'](){function _0x320322(_0x1f6f35,_0x4e1d58){return _0x4de1f1(_0x1f6f35- -0x17c,_0x4e1d58);}this['computing']['destroy'](),this[_0x320322(0x55,0x5e)]['destroy']();}}const Cesium$1=mars3d__namespace[_0x4de1f1(0x1d3,0x187)],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x5133dc={};function _0x5081bd(_0x877150,_0x14a87d){return _0x4308(_0x877150- -0x62,_0x14a87d);}_0x5133dc['min']=0x1,_0x5133dc['max']=0x2;const _0x457097={};_0x457097[_0x4de1f1(0xe5,0xa6)]=0x14,_0x457097['max']=0x64;const _0x5729de={};_0x5729de[_0x5081bd(0xcb,0xd3)]=0x64,_0x5729de['particleHeight']=0x3e8,_0x5729de[_0x4de1f1(0x1c3,0x1e6)]=_0x5133dc,_0x5729de[_0x4de1f1(0x154,0x1d5)]=_0x457097,_0x5729de['speedFactor']=0x1,_0x5729de['dropRate']=0.003,_0x5729de['dropRateBump']=0.001,_0x5729de['colors']=['rgb(206,255,255)'],_0x5729de[_0x4de1f1(0x152,0x10f)]=![],_0x5729de['dynamic']=!![];const DEF_OPTIONS=_0x5729de;class WindLayer extends BaseLayer$1{constructor(_0x118f49={}){_0x118f49={...DEF_OPTIONS,..._0x118f49},super(_0x118f49),this['_setOptionsHook'](_0x118f49,_0x118f49);}get['layer'](){function _0x24b466(_0x475f79,_0x4dee11){return _0x5081bd(_0x4dee11- -0x296,_0x475f79);}return this[_0x24b466(-0x15c,-0x101)];}get['data'](){return this['options']['data'];}set[_0x4de1f1(0xc8,0xe9)](_0x135c0f){function _0x420f15(_0x39dc1e,_0x21eee5){return _0x4de1f1(_0x21eee5-0x4e,_0x39dc1e);}this['options'][_0x420f15(0x136,0x116)]=_0x135c0f,this['setData'](_0x135c0f);}get[_0x5081bd(0xc1,0x82)](){return this['options']['colors'];}set['colors'](_0x4b9bc5){this['options'][_0x1e2bd5(0x47f,0x44a)]=_0x4b9bc5;function _0x147e5f(_0x4eea5a,_0x4f105c){return _0x4de1f1(_0x4f105c-0x149,_0x4eea5a);}const _0x396c1d={};_0x396c1d[_0x1e2bd5(0x47f,0x454)]=_0x4b9bc5;function _0x1e2bd5(_0x341ad8,_0x653b33){return _0x5081bd(_0x341ad8-0x3be,_0x653b33);}this['_setOptionsHook'](this['options'],_0x396c1d);}[_0x5081bd(0x126,0x139)](){}['_addedHook'](){this[_0x4a42fb(0x206,0x1b3)]=this['_map']['scene'],this['camera']=this['_map']['camera'];this['options'][_0x4a42fb(0x63,0xf1)]&&this[_0x2191e4(0x47,0x65)](this['options'][_0x4a42fb(0x108,0xf1)]);function _0x4a42fb(_0x5e8eca,_0x514455){return _0x4de1f1(_0x514455-0x29,_0x5e8eca);}if(!this['windData'])return;function _0x2191e4(_0x48084c,_0x5428f2){return _0x4de1f1(_0x48084c- -0xae,_0x5428f2);}this['viewerParameters']={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1[(_0x4a42fb(0x159,0x106))](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x2191e4(0xdc,0xf9)]['mode']},this['updateViewerParameters'](),this[_0x4a42fb(0x110,0x157)]=new WindParticleSystem(this['scene']['context'],this['windData'],this['options'],this[_0x2191e4(0x52,0x1f)],this['scene']),this['primitives']=this['particleSystem'][_0x4a42fb(0x1df,0x1cb)](),this['primitives'][_0x4a42fb(0x128,0x1a5)](_0x20b660=>{function _0x31e96a(_0x364643,_0x3aa5cf){return _0x4a42fb(_0x364643,_0x3aa5cf-0x40);}function _0x365060(_0x3fdbcc,_0x4e0f4b){return _0x2191e4(_0x4e0f4b- -0xd4,_0x3fdbcc);}this['scene'][_0x31e96a(0x252,0x208)][_0x365060(-0x73,-0x13)](_0x20b660);}),this['camera'][_0x4a42fb(0x1b7,0x1a2)]=0.01,this['camera'][_0x2191e4(0x8a,-0x5)][_0x2191e4(0x58,-0x34)](this['updateViewerParameters'][_0x4a42fb(0x183,0x1e8)](this)),this[_0x2191e4(0xdc,0x161)][_0x4a42fb(0x1fd,0x1ba)][_0x2191e4(0x58,0xb2)](this[_0x4a42fb(0xf9,0x117)]['bind'](this)),window[_0x4a42fb(0x168,0x12f)](_0x2191e4(0xaf,0x2e),this['updateViewerParameters']['bind'](this));}['_removedHook'](){function _0x421ccf(_0x3381ef,_0x385dec){return _0x5081bd(_0x385dec- -0x302,_0x3381ef);}function _0x15ad0d(_0x562a84,_0x4e4021){return _0x4de1f1(_0x4e4021-0x356,_0x562a84);}this['camera'][_0x15ad0d(0x44c,0x48e)]['removeEventListener'](this['updateViewerParameters'][_0x15ad0d(0x4e7,0x515)](this)),this['scene'][_0x421ccf(-0xf9,-0x17b)]['removeEventListener'](this[_0x421ccf(-0x205,-0x21e)]['bind'](this)),window[_0x421ccf(-0x1d5,-0x17a)](_0x15ad0d(0x50a,0x4b3),this['updateViewerParameters']['bind'](this)),this['primitives']&&(this['primitives'][_0x15ad0d(0x4df,0x4d2)](_0x5dae8d=>{function _0x576db7(_0x3b4ea7,_0x5116d8){return _0x15ad0d(_0x3b4ea7,_0x5116d8- -0x1e0);}this[_0x576db7(0x2b5,0x300)]['primitives']['remove'](_0x5dae8d);}),delete this[_0x15ad0d(0x4ca,0x4f5)]),this[_0x421ccf(-0x215,-0x1de)]&&(this['particleSystem'][_0x15ad0d(0x3b9,0x443)](),delete this['particleSystem']);}[_0x4de1f1(0xf5,0xa7)](_0x3ef72d,_0xe85679){this[_0x3a1533(0x16e,0x122)]=this['processWindData'](_0x3ef72d);function _0x4d9583(_0x455ebf,_0x22feac){return _0x4de1f1(_0x455ebf-0x3b4,_0x22feac);}if(_0xe85679){this[_0x3a1533(0x162,0x14b)](),this['_addedHook']();return;}function _0x3a1533(_0x4dfbdd,_0x5cb35d){return _0x5081bd(_0x4dfbdd-0x12,_0x5cb35d);}this['particleSystem']?(this['particleSystem']['computing'][_0x3a1533(0xe7,0x142)](this['windData']),this['scene']['requestRender']()):this['_addedHook']();}[_0x5081bd(0x1cc,0x18d)](_0x3e28a9,_0xb1f40d){function _0x1e39cf(_0x4304f3,_0x362314){return _0x5081bd(_0x362314-0xa,_0x4304f3);}this['particleSystem']&&(this['particleSystem'][_0x1e39cf(0xd7,0xc9)](_0xb1f40d),this['scene']['requestRender']());}['processWindData'](_0x5b55d4){var _0x16fff1,_0x38a04b;const _0x56f694={..._0x5b55d4},_0xa3e443=_0x56f694;!_0xa3e443['height']&&_0xa3e443[_0x389634(0x2b0,0x325)]&&(_0xa3e443['height']=_0xa3e443[_0x23c761(-0x125,-0x94)]);function _0x23c761(_0x258b5e,_0xa2f168){return _0x4de1f1(_0xa2f168- -0x1cd,_0x258b5e);}!_0xa3e443['width']&&_0xa3e443[_0x23c761(-0x10,-0x36)]&&(_0xa3e443['width']=_0xa3e443['cols']);!_0xa3e443[_0x23c761(-0x50,-0xd2)]&&(_0xa3e443[_0x389634(0x272,0x2b6)]={'west':_0xa3e443[_0x23c761(-0x81,-0xa4)],'south':_0xa3e443['ymin'],'east':_0xa3e443['xmax'],'north':_0xa3e443['ymax']});function _0x389634(_0x3bdb67,_0x398f29){return _0x5081bd(_0x3bdb67-0x181,_0x398f29);}if(!_0xa3e443['u']){const _0x5507a6={};_0x5507a6['array']=_0x5b55d4['udata'],_0x5507a6['min']=_0x5b55d4[_0x23c761(-0xed,-0xa1)],_0x5507a6['max']=_0x5b55d4['umax'],_0xa3e443['u']=_0x5507a6;}if(!_0xa3e443['v']){const _0x39c8c2={};_0x39c8c2[_0x23c761(-0xd0,-0xbe)]=_0x5b55d4['vdata'],_0x39c8c2[_0x23c761(-0xc3,-0xe8)]=_0x5b55d4['vmin'],_0x39c8c2['max']=_0x5b55d4['vmax'],_0xa3e443['v']=_0x39c8c2;}if(((_0x16fff1=_0xa3e443[_0x389634(0x312,0x365)])===null||_0x16fff1===void 0x0?void 0x0:_0x16fff1['min'])===undefined||((_0x38a04b=_0xa3e443['speed'])===null||_0x38a04b===void 0x0?void 0x0:_0x38a04b[_0x23c761(-0x14,-0x58)])===undefined||_0xa3e443[_0x389634(0x312,0x39b)][_0x23c761(-0x2c,-0xbe)]===undefined){const _0x46c92b={'array':new Float32Array(_0xa3e443['u']['array']['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x507aff=0x0;_0x507aff<_0xa3e443['u'][_0x23c761(-0xc1,-0xbe)][_0x389634(0x250,0x220)];_0x507aff++){_0x46c92b['array'][_0x507aff]=Math['sqrt'](_0xa3e443['u']['array'][_0x507aff]*_0xa3e443['u'][_0x389634(0x286,0x222)][_0x507aff]+_0xa3e443['v']['array'][_0x507aff]*_0xa3e443['v']['array'][_0x507aff]),_0x46c92b['array'][_0x507aff]!==0x0&&(_0x46c92b[_0x389634(0x25c,0x2c4)]=Math[_0x23c761(-0x10b,-0xe8)](_0x46c92b['min'],_0x46c92b['array'][_0x507aff]),_0x46c92b['max']=Math['max'](_0x46c92b['max'],_0x46c92b[_0x389634(0x286,0x229)][_0x507aff]));}_0xa3e443[_0x23c761(-0x8e,-0x32)]=_0x46c92b;}return _0xa3e443;}[_0x4de1f1(0xee,0x86)](){var _0x64431a;const _0x32b3f2=this[_0x520131(0xae,0x85)],_0x104cb9=_0x32b3f2['canvas'];function _0x551d24(_0x56675a,_0x5b438c){return _0x5081bd(_0x56675a-0x1a5,_0x5b438c);}const _0x2cf45a={};_0x2cf45a['x']=0x0,_0x2cf45a['y']=0x0;const _0x4c73e8={};_0x4c73e8['x']=0x0,_0x4c73e8['y']=_0x104cb9['clientHeight'];const _0x4e391a={};_0x4e391a['x']=_0x104cb9['clientWidth'],_0x4e391a['y']=0x0;const _0x2022e8={};function _0x520131(_0x15a9b3,_0x50d5e9){return _0x5081bd(_0x50d5e9- -0xfb,_0x15a9b3);}_0x2022e8['x']=_0x104cb9[_0x551d24(0x2f1,0x35e)],_0x2022e8['y']=_0x104cb9['clientHeight'];const _0x2002c0=[_0x2cf45a,_0x4c73e8,_0x4e391a,_0x2022e8];let _0x4f3144=0xb4,_0x6650a3=-0xb4,_0x301c2b=0x5a,_0x4fd73c=-0x5a,_0x386933=![];for(const _0x3f8c1a of _0x2002c0){const _0x577c64=_0x32b3f2['camera']['pickEllipsoid'](new Cesium$1[(_0x520131(0x67,-0x28))](_0x3f8c1a['x'],_0x3f8c1a['y']),_0x32b3f2['globe']['ellipsoid']);if(!_0x577c64){_0x386933=!![];break;}const _0x187748=_0x32b3f2['globe'][_0x551d24(0x2de,0x2a6)]['cartesianToCartographic'](_0x577c64),_0x5b4855=Cesium$1['Math'][_0x551d24(0x354,0x325)](_0x187748['longitude']),_0x111e27=Cesium$1[_0x551d24(0x2fe,0x36e)]['toDegrees'](_0x187748[_0x520131(0x88,0xdd)]);_0x4f3144=Math['min'](_0x4f3144,_0x5b4855),_0x6650a3=Math[_0x520131(0xa,0x70)](_0x6650a3,_0x5b4855),_0x301c2b=Math[_0x520131(0x45,-0x20)](_0x301c2b,_0x111e27),_0x4fd73c=Math['max'](_0x4fd73c,_0x111e27);}if(!_0x386933){const _0x42294f=new Cesium$1['Cartesian2'](Math[_0x551d24(0x310,0x294)](this[_0x520131(0xab,0x61)]['bounds'][_0x551d24(0x2e1,0x26b)],_0x4f3144),Math[_0x520131(0x68,-0x20)](this['windData']['bounds']['east'],_0x6650a3)),_0x4e60f3=new Cesium$1[(_0x520131(-0x46,-0x28))](Math[_0x520131(0xfe,0x70)](this[_0x551d24(0x301,0x2fa)][_0x520131(-0x5a,-0xa)]['south'],_0x301c2b),Math['min'](this['windData']['bounds'][_0x551d24(0x37c,0x399)],_0x4fd73c)),_0x435d50=(_0x42294f['y']-_0x42294f['x'])*0.05,_0x58f4fc=(_0x4e60f3['y']-_0x4e60f3['x'])*0.05;_0x42294f['x']=Math[_0x520131(-0xe,0x70)](this[_0x551d24(0x301,0x300)]['bounds']['west'],_0x42294f['x']-_0x435d50),_0x42294f['y']=Math[_0x551d24(0x280,0x2f9)](this['windData']['bounds']['east'],_0x42294f['y']+_0x435d50),_0x4e60f3['x']=Math['max'](this['windData']['bounds']['south'],_0x4e60f3['x']-_0x58f4fc),_0x4e60f3['y']=Math['min'](this['windData']['bounds']['north'],_0x4e60f3['y']+_0x58f4fc),this[_0x520131(-0x34,-0x5)]['lonRange']=_0x42294f,this[_0x551d24(0x29b,0x2cd)][_0x551d24(0x2b3,0x2cf)]=_0x4e60f3;const _0x2bc09e=this['windData'][_0x551d24(0x296,0x2cd)]['east']-this['windData'][_0x520131(0x29,-0xa)]['west'],_0x2ddd06=this[_0x520131(-0x23,0x61)]['bounds']['north']-this['windData']['bounds']['south'],_0x1fe403=(_0x42294f['y']-_0x42294f['x'])/_0x2bc09e,_0x2e928c=(_0x4e60f3['y']-_0x4e60f3['x'])/_0x2ddd06,_0x238a9d=Math['min'](_0x1fe403,_0x2e928c),_0x4f8dd7=0x3e8*_0x238a9d;_0x4f8dd7>0x0&&(this['viewerParameters'][_0x551d24(0x2ae,0x30c)]=Math['max'](0x0,Math['min'](0x3e8,_0x4f8dd7)));}this['viewerParameters']['sceneMode']=this['scene'][_0x551d24(0x355,0x3a7)],(_0x64431a=this[_0x520131(0xa2,0x29)])===null||_0x64431a===void 0x0||_0x64431a[_0x551d24(0x27c,0x238)](this['viewerParameters']);}['getDataAtLonLat'](_0x5ba0a9,_0x59b437){const {bounds:_0x202126,width:_0x50d337,height:_0x186cce,u:_0x4f496a,v:_0x4e97ae,speed:_0x3621c5}=this['windData'],{flipY:_0x344ef6}=this[_0x492ba7(0x34e,0x35b)];if(_0x5ba0a9<_0x202126['west']||_0x5ba0a9>_0x202126[_0x343989(0x1b4,0x1f6)]||_0x59b437<_0x202126[_0x343989(0x1f1,0x27b)]||_0x59b437>_0x202126['north'])return null;const _0x5ec900=(_0x5ba0a9-_0x202126['west'])/(_0x202126[_0x492ba7(0x2bd,0x2ee)]-_0x202126[_0x492ba7(0x2bf,0x324)])*(_0x50d337-0x1);let _0x25ca29=(_0x59b437-_0x202126['south'])/(_0x202126[_0x492ba7(0x405,0x3bf)]-_0x202126[_0x343989(0x1f1,0x1f7)])*(_0x186cce-0x1);_0x344ef6&&(_0x25ca29=_0x186cce-0x1-_0x25ca29);const _0x13f8ad=Math['floor'](_0x5ec900),_0x4655f4=Math['floor'](_0x25ca29),_0xea29c3=Math['floor'](_0x5ec900);function _0x343989(_0x4bc0b5,_0x5b2745){return _0x4de1f1(_0x4bc0b5-0xa4,_0x5b2745);}const _0x122989=Math['min'](_0xea29c3+0x1,_0x50d337-0x1),_0x4cec2a=Math[_0x492ba7(0x33d,0x2e1)](_0x25ca29),_0x5de7a3=Math[_0x343989(0x189,0x13d)](_0x4cec2a+0x1,_0x186cce-0x1),_0x3a0d52=_0x5ec900-_0xea29c3,_0x2e4ec2=_0x25ca29-_0x4cec2a,_0x129d49=_0x4655f4*_0x50d337+_0x13f8ad,_0x54eca6=_0x4cec2a*_0x50d337+_0xea29c3,_0x5a8469=_0x4cec2a*_0x50d337+_0x122989,_0x389f62=_0x5de7a3*_0x50d337+_0xea29c3,_0x43845f=_0x5de7a3*_0x50d337+_0x122989,_0xbf1c20=_0x4f496a['array'][_0x54eca6],_0x1a851b=_0x4f496a['array'][_0x5a8469],_0x503704=_0x4f496a[_0x492ba7(0x273,0x2ed)][_0x389f62],_0x1cb852=_0x4f496a['array'][_0x43845f],_0x3e379a=(0x1-_0x3a0d52)*(0x1-_0x2e4ec2)*_0xbf1c20+_0x3a0d52*(0x1-_0x2e4ec2)*_0x1a851b+(0x1-_0x3a0d52)*_0x2e4ec2*_0x503704+_0x3a0d52*_0x2e4ec2*_0x1cb852,_0x5017d4=_0x4e97ae[_0x343989(0x1b3,0x16e)][_0x54eca6],_0x56d3c5=_0x4e97ae['array'][_0x5a8469],_0x3b6ad2=_0x4e97ae[_0x343989(0x1b3,0x23e)][_0x389f62],_0x56f2ed=_0x4e97ae['array'][_0x43845f],_0x19f5f8=(0x1-_0x3a0d52)*(0x1-_0x2e4ec2)*_0x5017d4+_0x3a0d52*(0x1-_0x2e4ec2)*_0x56d3c5+(0x1-_0x3a0d52)*_0x2e4ec2*_0x3b6ad2+_0x3a0d52*_0x2e4ec2*_0x56f2ed;function _0x492ba7(_0x6b0336,_0x14f80e){return _0x5081bd(_0x14f80e-0x1e8,_0x6b0336);}const _0x108597=Math['sqrt'](_0x3e379a*_0x3e379a+_0x19f5f8*_0x19f5f8),_0x1e8f78={};_0x1e8f78['u']=_0x4f496a['array'][_0x129d49],_0x1e8f78['v']=_0x4e97ae['array'][_0x129d49],_0x1e8f78['speed']=_0x3621c5[_0x343989(0x1b3,0x1cc)][_0x129d49];const _0x4abd4d={};_0x4abd4d['u']=_0x3e379a,_0x4abd4d['v']=_0x19f5f8,_0x4abd4d[_0x343989(0x23f,0x21f)]=_0x108597;const _0x3a4c88={};return _0x3a4c88[_0x343989(0x232,0x28a)]=_0x1e8f78,_0x3a4c88['interpolated']=_0x4abd4d,_0x3a4c88;}}mars3d__namespace['LayerUtil'][_0x4de1f1(0x11f,0x1a3)]('wind',WindLayer),mars3d__namespace['layer'][_0x5081bd(0x1d1,0x21e)]=WindLayer;class CanvasParticle{constructor(){this[_0x448212(-0x1cb,-0x237)]=null,this['lat']=null;function _0x1096f7(_0x1adebc,_0xd02799){return _0x5081bd(_0x1adebc-0xf7,_0xd02799);}function _0x448212(_0x11c0a4,_0x26976b){return _0x5081bd(_0x26976b- -0x308,_0x11c0a4);}this['tlng']=null,this['tlat']=null,this[_0x1096f7(0x257,0x2ae)]=null,this[_0x1096f7(0x288,0x2ed)]=null;}[_0x4de1f1(0xed,0x13e)](){for(const _0xe5f9b6 in this){delete this[_0xe5f9b6];}}}class CanvasWindField{constructor(_0x5c901e){this['setOptions'](_0x5c901e);}get[_0x4de1f1(0xea,0x126)](){return this['_speedRate'];}set['speedRate'](_0x23117c){this[_0xdb2e6d(0x1be,0x224)]=(0x64-(_0x23117c>0x63?0x63:_0x23117c))*0x64;function _0xdb2e6d(_0x32a373,_0x4f39af){return _0x4de1f1(_0x4f39af-0x56,_0x32a373);}function _0x29071a(_0x486d78,_0x4fc518){return _0x4de1f1(_0x486d78-0x19a,_0x4fc518);}this[_0xdb2e6d(0x173,0x1d5)]=[(this['xmax']-this['xmin'])/this['_speedRate'],(this['ymax']-this['ymin'])/this[_0xdb2e6d(0x243,0x224)]];}get['maxAge'](){return this['_maxAge'];}set[_0x4de1f1(0x19e,0x20d)](_0x482bf7){function _0x14a74a(_0x45b225,_0xe57add){return _0x4de1f1(_0xe57add- -0x1c2,_0x45b225);}this[_0x14a74a(-0x35,-0x10)]=_0x482bf7;}['setOptions'](_0x15f494){this[_0x779d31(0x557,0x582)]=_0x15f494,this['maxAge']=_0x15f494['maxAge']||0x78;function _0x2ba054(_0x358154,_0x3a647a){return _0x5081bd(_0x358154- -0x335,_0x3a647a);}this[_0x2ba054(-0x255,-0x1e5)]=_0x15f494['speedRate']||0x32,this['particles']=[];function _0x779d31(_0x5e2ba0,_0x2016d3){return _0x5081bd(_0x2016d3-0x40f,_0x5e2ba0);}const _0x14a3cc=_0x15f494['particlesNumber']||0x1000;for(let _0x1a8bf2=0x0;_0x1a8bf2<_0x14a3cc;_0x1a8bf2++){const _0x170241=this['_randomParticle'](new CanvasParticle());this[_0x2ba054(-0x1b2,-0x12d)][_0x2ba054(-0x19e,-0x1d8)](_0x170241);}}['setDate'](_0x45a7bd){this[_0x4450f0(-0x14e,-0x1ba)]=_0x45a7bd['rows'],this[_0x4450f0(-0x195,-0x15c)]=_0x45a7bd['cols'],this[_0x4450f0(-0x1e4,-0x1ca)]=_0x45a7bd['xmin'],this['xmax']=_0x45a7bd['xmax'],this[_0x4cb7d3(-0x145,-0x124)]=_0x45a7bd[_0x4cb7d3(-0x17b,-0x124)],this['ymax']=_0x45a7bd[_0x4450f0(-0x21f,-0x21c)];function _0x4450f0(_0x168e70,_0x53fca6){return _0x4de1f1(_0x53fca6- -0x2f3,_0x168e70);}this['grid']=[];const _0x5148b5=_0x45a7bd[_0x4450f0(-0x20f,-0x229)],_0x4cd40a=_0x45a7bd['vdata'];let _0xf14da5=![];_0x5148b5['length']===this[_0x4cb7d3(-0xdc,-0x120)]&&_0x5148b5[0x0]['length']===this[_0x4cb7d3(-0xa9,-0xc2)]&&(_0xf14da5=!![]);function _0x4cb7d3(_0x44745c,_0x8a3b8e){return _0x5081bd(_0x8a3b8e- -0x24f,_0x44745c);}let _0x2a6d69=0x0,_0x46b8e8=null,_0x2aba9e=null;for(let _0x41848d=0x0;_0x41848d<this['rows'];_0x41848d++){_0x46b8e8=[];for(let _0x3fad10=0x0;_0x3fad10<this['cols'];_0x3fad10++,_0x2a6d69++){_0xf14da5?_0x2aba9e=this['_calcUV'](_0x5148b5[_0x41848d][_0x3fad10],_0x4cd40a[_0x41848d][_0x3fad10]):_0x2aba9e=this['_calcUV'](_0x5148b5[_0x2a6d69],_0x4cd40a[_0x2a6d69]),_0x46b8e8['push'](_0x2aba9e);}this['grid'][_0x4cb7d3(-0x70,-0xb8)](_0x46b8e8);}this['options']['reverseY']&&this['grid']['reverse']();}['clear'](){delete this['rows'];function _0x14db4b(_0x21b46b,_0xd55710){return _0x5081bd(_0x21b46b-0x396,_0xd55710);}delete this[_0x14db4b(0x523,0x509)],delete this[_0x14db4b(0x4b5,0x51a)],delete this[_0x14db4b(0x53d,0x4ec)],delete this['ymin'],delete this['ymax'],delete this[_0x1d3329(0xbc,0xb6)];function _0x1d3329(_0x1e845a,_0x41f0b7){return _0x4de1f1(_0x41f0b7- -0x121,_0x1e845a);}delete this['particles'];}[_0x5081bd(0x102,0x136)](_0x32d403,_0xb09ad9){const _0x59b934=(_0x32d403-this[_0x4fecac(0x2c1,0x313)])/(this['xmax']-this['xmin'])*(this[_0x307465(0x272,0x231)]-0x1);function _0x4fecac(_0x2a8f7c,_0x15a312){return _0x5081bd(_0x15a312-0x1f4,_0x2a8f7c);}function _0x307465(_0x4af306,_0x3d23de){return _0x5081bd(_0x3d23de-0xa4,_0x4af306);}const _0x1f8d41=(this['ymax']-_0xb09ad9)/(this[_0x4fecac(0x2bc,0x2c1)]-this[_0x307465(0x194,0x1cf)])*(this['rows']-0x1);return[_0x59b934,_0x1f8d41];}[_0x4de1f1(0x12b,0x177)](_0x53e4e3,_0x2571bd){if(_0x53e4e3<0x0||_0x53e4e3>=this[_0x54840e(0x42c,0x46c)]||_0x2571bd>=this['rows'])return[0x0,0x0,0x0];const _0x3deb47=Math[_0x54840e(0x41b,0x3d8)](_0x53e4e3),_0x4136c4=Math['floor'](_0x2571bd);if(_0x3deb47===_0x53e4e3&&_0x4136c4===_0x2571bd)return this['grid'][_0x2571bd][_0x53e4e3];const _0x4212b8=_0x3deb47+0x1,_0x4b4c5f=_0x4136c4+0x1;function _0x32a60f(_0x4bf9d7,_0x351838){return _0x5081bd(_0x351838-0x9,_0x4bf9d7);}const _0x2abd3d=this[_0x54840e(0x3dc,0x400)](_0x3deb47,_0x4136c4),_0x470769=this[_0x32a60f(0x140,0x12a)](_0x4212b8,_0x4136c4),_0x5e4905=this['getUVByXY'](_0x3deb47,_0x4b4c5f),_0x2afccb=this['getUVByXY'](_0x4212b8,_0x4b4c5f);function _0x54840e(_0x4022ae,_0xcc0c17){return _0x5081bd(_0xcc0c17-0x2df,_0x4022ae);}let _0x262103=null;try{_0x262103=this['_bilinearInterpolation'](_0x53e4e3-_0x3deb47,_0x2571bd-_0x4136c4,_0x2abd3d,_0x470769,_0x5e4905,_0x2afccb);}catch(_0x328f1a){console[_0x54840e(0x48c,0x4be)](_0x53e4e3,_0x2571bd);}return _0x262103;}['_bilinearInterpolation'](_0x20a93a,_0x435a1c,_0x4ae4de,_0x42a348,_0x15037e,_0x58bc55){function _0x2a03cb(_0x1f36c8,_0x37c3ef){return _0x4de1f1(_0x37c3ef-0x8c,_0x1f36c8);}const _0xc2ea35=0x1-_0x20a93a,_0x3d5f63=0x1-_0x435a1c,_0x3fd5d0=_0xc2ea35*_0x3d5f63,_0x403317=_0x20a93a*_0x3d5f63,_0x20ff7c=_0xc2ea35*_0x435a1c,_0x31901d=_0x20a93a*_0x435a1c,_0x3dc11d=_0x4ae4de[0x0]*_0x3fd5d0+_0x42a348[0x0]*_0x403317+_0x15037e[0x0]*_0x20ff7c+_0x58bc55[0x0]*_0x31901d,_0x447882=_0x4ae4de[0x1]*_0x3fd5d0+_0x42a348[0x1]*_0x403317+_0x15037e[0x1]*_0x20ff7c+_0x58bc55[0x1]*_0x31901d;return this[_0x2a03cb(0x1dc,0x207)](_0x3dc11d,_0x447882);}[_0x4de1f1(0x17b,0x149)](_0x300fa1,_0x5d26bb){function _0x262cef(_0x3e684e,_0x17b6f9){return _0x4de1f1(_0x17b6f9-0x25d,_0x3e684e);}return[+_0x300fa1,+_0x5d26bb,Math[_0x262cef(0x408,0x3b0)](_0x300fa1*_0x300fa1+_0x5d26bb*_0x5d26bb)];}[_0x4de1f1(0x117,0x10c)](_0x478367,_0x120989){if(!this['isInExtent'](_0x478367,_0x120989))return null;const _0x3fdf48=this['toGridXY'](_0x478367,_0x120989),_0x307ef0=this['getUVByXY'](_0x3fdf48[0x0],_0x3fdf48[0x1]);return _0x307ef0;}[_0x5081bd(0x10f,0xa9)](_0x277f9e,_0x5c83ca){function _0x340d21(_0x447c72,_0x4d2132){return _0x4de1f1(_0x447c72- -0x56,_0x4d2132);}function _0x485b62(_0x3d11fc,_0x4dd2fc){return _0x4de1f1(_0x4dd2fc- -0xdf,_0x3d11fc);}return _0x277f9e>=this['xmin']&&_0x277f9e<=this[_0x340d21(0x15b,0x183)]&&_0x5c83ca>=this[_0x485b62(0xba,0x56)]&&_0x5c83ca<=this['ymax']?!![]:![];}['getRandomLatLng'](){const _0x3b5a36=fRandomByfloat(this['xmin'],this[_0x4cccf3(0x209,0x1d4)]);function _0x1a5ca9(_0x3be7c3,_0x275a73){return _0x5081bd(_0x3be7c3-0x2ed,_0x275a73);}const _0x2da136=fRandomByfloat(this['ymin'],this[_0x4cccf3(0xa4,0xfa)]),_0x565a6f={};_0x565a6f['lat']=_0x2da136;function _0x4cccf3(_0x29b36c,_0x5ea677){return _0x5081bd(_0x5ea677-0x2d,_0x29b36c);}return _0x565a6f['lng']=_0x3b5a36,_0x565a6f;}[_0x4de1f1(0xf2,0x84)](){function _0x30e204(_0x1db015,_0x1412bf){return _0x4de1f1(_0x1412bf- -0x1a0,_0x1db015);}function _0x382644(_0x3d6100,_0x3c77c7){return _0x4de1f1(_0x3c77c7-0x32,_0x3d6100);}let _0x5016af,_0x1b5167,_0x216d54;for(let _0x37f422=0x0,_0x3ad5ed=this['particles']['length'];_0x37f422<_0x3ad5ed;_0x37f422++){let _0x2726f9=this['particles'][_0x37f422];_0x2726f9['age']<=0x0&&(_0x2726f9=this['_randomParticle'](_0x2726f9));if(_0x2726f9[_0x30e204(-0xba,-0x36)]>0x0){const _0x5a26e4=_0x2726f9[_0x30e204(-0x9c,-0x44)],_0x2f7448=_0x2726f9['tlat'];_0x216d54=this['getUVByPoint'](_0x5a26e4,_0x2f7448),_0x216d54?(_0x5016af=_0x5a26e4+this['_calc_speedRate'][0x0]*_0x216d54[0x0],_0x1b5167=_0x2f7448+this['_calc_speedRate'][0x1]*_0x216d54[0x1],_0x2726f9['lng']=_0x5a26e4,_0x2726f9[_0x382644(0x28b,0x21d)]=_0x2f7448,_0x2726f9['tlng']=_0x5016af,_0x2726f9[_0x382644(0x1bd,0x1be)]=_0x1b5167,_0x2726f9[_0x382644(0x256,0x1cd)]=_0x216d54[0x2],_0x2726f9[_0x30e204(-0x51,-0x36)]--):_0x2726f9['age']=0x0;}}return this['particles'];}['_randomParticle'](_0x2b83a5){let _0x2d4201,_0x336f20;for(let _0x5382aa=0x0;_0x5382aa<0x1e;_0x5382aa++){_0x2d4201=this[_0x5b2e76(0x216,0x1ac)](),_0x336f20=this['getUVByPoint'](_0x2d4201[_0x24d76f(0x2f,0x7e)],_0x2d4201['lat']);if(_0x336f20&&_0x336f20[0x2]>0x0)break;}if(!_0x336f20)return _0x2b83a5;const _0x4d13ef=_0x2d4201['lng']+this['_calc_speedRate'][0x0]*_0x336f20[0x0],_0x107c4c=_0x2d4201['lat']+this['_calc_speedRate'][0x1]*_0x336f20[0x1];_0x2b83a5['lng']=_0x2d4201['lng'],_0x2b83a5['lat']=_0x2d4201['lat'],_0x2b83a5['tlng']=_0x4d13ef,_0x2b83a5['tlat']=_0x107c4c;function _0x24d76f(_0x29d173,_0x2779da){return _0x4de1f1(_0x2779da- -0x5d,_0x29d173);}function _0x5b2e76(_0x100d3b,_0x3c62ff){return _0x5081bd(_0x3c62ff- -0x36,_0x100d3b);}return _0x2b83a5[_0x5b2e76(0xad,0x12a)]=Math[_0x24d76f(0x26,0x9c)](Math['random']()*this['maxAge']),_0x2b83a5['speed']=_0x336f20[0x2],_0x2b83a5;}[_0x4de1f1(0xed,0x176)](){for(const _0xa3308b in this){delete this[_0xa3308b];}}}function fRandomByfloat(_0xb9b6ec,_0x4679c3){function _0x249608(_0x52b8d6,_0x5477f8){return _0x4de1f1(_0x5477f8-0x340,_0x52b8d6);}return _0xb9b6ec+Math[_0x249608(0x442,0x418)]()*(_0x4679c3-_0xb9b6ec);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x5081bd(0xec,0xb4)]['BaseLayer'];class CanvasWindLayer extends BaseLayer{constructor(_0x9e8ab0={}){function _0x397e11(_0x5bc17e,_0xc12103){return _0x5081bd(_0xc12103- -0xba,_0x5bc17e);}super(_0x9e8ab0);function _0x3162be(_0x16458a,_0x6427c){return _0x4de1f1(_0x16458a- -0xa2,_0x6427c);}this['_setOptionsHook'](_0x9e8ab0),this['canvas']=null,_0x9e8ab0[_0x3162be(0x29,0x2b)]&&_0x9e8ab0[_0x397e11(0xa1,0x41)]&&(this['_colorRamp']=new mars3d__namespace[(_0x397e11(0x96,0xb4))](_0x9e8ab0));}[_0x4de1f1(0x1d6,0x24a)](_0x2f2ed3,_0x50f5b2){this[_0x28d630(0x24b,0x1cb)]=0x3e8/(_0x2f2ed3['frameRate']||0xa),this['_pointerEvents']=this[_0x1ed483(0x2c3,0x336)]['pointerEvents']??![],this['color']=_0x2f2ed3[_0x1ed483(0x286,0x2c0)]||_0x1ed483(0x29b,0x2da);function _0x1ed483(_0x186529,_0x1365cc){return _0x4de1f1(_0x186529-0x146,_0x1365cc);}this['lineWidth']=_0x2f2ed3[_0x28d630(0x249,0x1db)]||0x1;function _0x28d630(_0xbb4daa,_0x457ad2){return _0x4de1f1(_0x457ad2-0x18,_0xbb4daa);}this[_0x1ed483(0x316,0x2b6)]=_0x2f2ed3['fixedHeight']??0x0,this['reverseY']=_0x2f2ed3['reverseY']??![],this['windField']&&this[_0x28d630(0x1a4,0x18b)][_0x1ed483(0x263,0x2e4)](_0x2f2ed3);}get['layer'](){function _0x2006eb(_0x172090,_0x169980){return _0x4de1f1(_0x172090- -0x73,_0x169980);}return this[_0x2006eb(0x132,0x139)];}get[_0x5081bd(0x13b,0x11d)](){function _0x4fe36e(_0x155ba8,_0x13d3d9){return _0x5081bd(_0x155ba8- -0x2df,_0x13d3d9);}return this['_map']['scene'][_0x4fe36e(-0x144,-0x132)]['clientWidth'];}get[_0x4de1f1(0x1bc,0x13b)](){function _0xa3bc37(_0x5908ff,_0x5d3121){return _0x5081bd(_0x5d3121-0x52,_0x5908ff);}function _0x26e0a9(_0x1ce131,_0x2ac257){return _0x5081bd(_0x1ce131-0xa2,_0x2ac257);}return this['_map'][_0xa3bc37(0x1f9,0x1d2)][_0x26e0a9(0x23d,0x1b6)]['clientHeight'];}get[_0x5081bd(0x196,0x211)](){return this['_pointerEvents'];}set['pointerEvents'](_0x33eea5){function _0x38ad73(_0x133ecd,_0x4cf303){return _0x4de1f1(_0x133ecd- -0x2fd,_0x4cf303);}function _0x233993(_0x46decb,_0x246e72){return _0x5081bd(_0x46decb- -0x386,_0x246e72);}this['_pointerEvents']=_0x33eea5;if(!this['canvas'])return;_0x33eea5?this['canvas']['style'][_0x38ad73(-0x209,-0x23c)]=_0x38ad73(-0x1ca,-0x170):this['canvas']['style'][_0x38ad73(-0x209,-0x1cc)]='none';}get['particlesNumber'](){function _0x43878c(_0x42cecc,_0x3af972){return _0x4de1f1(_0x42cecc- -0x236,_0x3af972);}return this[_0x43878c(-0xb9,-0x98)]['particlesNumber'];}set['particlesNumber'](_0x2a2968){this['options']['particlesNumber']=_0x2a2968,clearTimeout(this['_canrefresh']),this['_canrefresh']=setTimeout(()=>{this['redraw']();},0x1f4);}get['speedRate'](){function _0x393e42(_0x42198e,_0x7aa950){return _0x4de1f1(_0x7aa950-0x28d,_0x42198e);}return this[_0x393e42(0x482,0x40a)]['speedRate'];}set['speedRate'](_0x212576){function _0x43d979(_0x13742c,_0x6960f6){return _0x4de1f1(_0x13742c- -0x215,_0x6960f6);}this[_0x43d979(-0x98,-0xa9)][_0x43f72c(0x4d2,0x520)]=_0x212576;function _0x43f72c(_0x30f140,_0x512230){return _0x5081bd(_0x512230-0x440,_0x30f140);}this['windField']&&(this['windField'][_0x43d979(-0x12b,-0xe1)]=_0x212576);}get[_0x5081bd(0x194,0x1db)](){return this['options']['maxAge'];}set[_0x5081bd(0x194,0x102)](_0x2eb406){this['options']['maxAge']=_0x2eb406;function _0x3b7bf(_0x1a6951,_0x191940){return _0x5081bd(_0x191940-0xb0,_0x1a6951);}this[_0x3b7bf(0x242,0x219)]&&(this['windField']['maxAge']=_0x2eb406);}get['data'](){function _0x3bea27(_0x3ec996,_0x3f00b8){return _0x4de1f1(_0x3ec996- -0x2f0,_0x3f00b8);}return this[_0x3bea27(-0x18a,-0x18b)];}set[_0x5081bd(0xbe,0x127)](_0x5f338d){function _0x2a01cd(_0x1223f5,_0x1abbbb){return _0x4de1f1(_0x1abbbb- -0x1c2,_0x1223f5);}this[_0x2a01cd(-0xa5,-0xcd)](_0x5f338d);}get['rectangle'](){let _0x5ed2d5=this[_0x131693(0x468,0x3e0)]['xmin'],_0x50db9c=this[_0xb669ab(0x47f,0x485)]['xmax'];function _0x131693(_0x2291d4,_0x33cedd){return _0x4de1f1(_0x33cedd-0x27a,_0x2291d4);}function _0xb669ab(_0x36f460,_0x285c72){return _0x5081bd(_0x36f460-0x323,_0x285c72);}let _0x3b7f16=this['windData']['ymin'],_0x35000c=this[_0xb669ab(0x47f,0x475)][_0xb669ab(0x3f0,0x44b)];return _0x50db9c>=0x167&&_0x5ed2d5===0x0&&(_0x5ed2d5=-0xb4,_0x50db9c=0xb4),_0x5ed2d5=Math[_0xb669ab(0x48e,0x407)](_0x5ed2d5,-0xb4),_0x50db9c=Math['min'](_0x50db9c,0xb4),_0x3b7f16=Math[_0x131693(0x45e,0x3ef)](_0x3b7f16,-0x5a),_0x35000c=Math[_0xb669ab(0x3fe,0x441)](_0x35000c,0x5a),Cesium['Rectangle']['fromDegrees'](_0x5ed2d5,_0x3b7f16,_0x50db9c,_0x35000c);}[_0x5081bd(0x1aa,0x13e)](_0x223c42){function _0xa5ff29(_0x5941a0,_0x1c4e4c){return _0x4de1f1(_0x5941a0-0xd9,_0x1c4e4c);}_0x223c42?this['_addedHook']():(this['windData']&&(this[_0xa5ff29(0x256,0x1d5)]['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x417b36(_0x434fe3,_0x43faee){return _0x4de1f1(_0x43faee- -0x193,_0x434fe3);}function _0x4a41c3(_0xa427ae,_0x2a90e3){return _0x5081bd(_0x2a90e3-0x40e,_0xa427ae);}this[_0x4a41c3(0x5d2,0x581)]['worker']?this[_0x417b36(-0x34,0x51)]():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){this['canvas']=this['_createCanvas']();const _0x4b207c={};function _0x1640ea(_0x497b84,_0x5e2d6d){return _0x5081bd(_0x5e2d6d-0x331,_0x497b84);}_0x4b207c['willReadFrequently']=!![];function _0xbd1f0a(_0x1d098c,_0x236e4c){return _0x4de1f1(_0x1d098c- -0x111,_0x236e4c);}this['canvasContext']=this[_0xbd1f0a(0x94,0x61)]['getContext']('2d',_0x4b207c),this[_0x1640ea(0x3f3,0x425)](),this[_0x1640ea(0x50a,0x4a4)][_0xbd1f0a(-0x49,-0x5a)]&&this['setData'](this['options']['data']);}['_removedHook'](){this['clear']();function _0x90e5af(_0x2dcb2c,_0x1147ca){return _0x5081bd(_0x1147ca-0x313,_0x2dcb2c);}function _0x5b385a(_0x4b653a,_0x13c766){return _0x4de1f1(_0x4b653a-0x129,_0x13c766);}this[_0x90e5af(0x4c7,0x460)](),this['canvas']&&(this['_map'][_0x90e5af(0x3b3,0x3f5)]['removeChild'](this['canvas']),delete this['canvas']);}['_createCanvas'](){const _0x4496c6=mars3d__namespace[_0x6b1172(0x1f0,0x1d2)]['create']('canvas',_0x6b1172(0x1db,0x1ca),this[_0x3ee3fd(-0x60,-0x30)][_0x6b1172(0x1ca,0x1ce)]);_0x4496c6['style'][_0x6b1172(0x1f4,0x23b)]=_0x3ee3fd(-0x69,-0x9a),_0x4496c6['style']['top']=_0x6b1172(0x25e,0x1d3),_0x4496c6['style']['left']='0px',_0x4496c6['style']['width']=this[_0x6b1172(0x246,0x1ff)][_0x3ee3fd(-0x3e,-0xf)][_0x6b1172(0x283,0x2f6)]['clientWidth']+'px',_0x4496c6[_0x6b1172(0x1af,0x1c4)][_0x6b1172(0x2c5,0x2bb)]=this[_0x6b1172(0x246,0x2a6)]['scene']['canvas']['clientHeight']+'px',_0x4496c6[_0x3ee3fd(-0xf7,-0x10c)]['pointerEvents']=this[_0x3ee3fd(-0x44,-0x57)]?'auto':_0x6b1172(0x287,0x204),_0x4496c6[_0x6b1172(0x1af,0x1a5)]['zIndex']=this['options']['zIndex']??0x9,_0x4496c6['width']=this['_map']['scene']['canvas']['clientWidth'],_0x4496c6[_0x6b1172(0x2c5,0x284)]=this[_0x3ee3fd(-0x60,-0xd1)]['scene'][_0x3ee3fd(-0x23,-0xa0)][_0x3ee3fd(-0x10,0x12)];function _0x6b1172(_0x494c2c,_0x5c62ec){return _0x5081bd(_0x494c2c-0xe8,_0x5c62ec);}function _0x3ee3fd(_0x4721e1,_0x5cc174){return _0x5081bd(_0x4721e1- -0x1be,_0x5cc174);}return _0x4496c6;}[_0x4de1f1(0x15d,0xcf)](){function _0x41ff52(_0x2182ee,_0x30d81d){return _0x5081bd(_0x30d81d-0x25,_0x2182ee);}function _0x1c5d9b(_0x30a450,_0x38b45f){return _0x5081bd(_0x30a450- -0x1fc,_0x38b45f);}this[_0x41ff52(0x228,0x1c0)]&&(this[_0x41ff52(0x1b8,0x1c0)]['style']['width']=this['_map'][_0x41ff52(0x177,0x1a5)]['canvas']['clientWidth']+'px',this['canvas']['style']['height']=this['_map'][_0x41ff52(0x1b2,0x1a5)]['canvas']['clientHeight']+'px',this['canvas'][_0x41ff52(0x147,0x117)]=this['_map'][_0x41ff52(0x19b,0x1a5)][_0x41ff52(0x196,0x1c0)][_0x1c5d9b(-0xb0,-0xa8)],this['canvas']['height']=this['_map'][_0x1c5d9b(-0x7c,0x14)]['canvas']['clientHeight']);}[_0x4de1f1(0xfe,0xd1)](){const _0x33868b=this;let _0xed7c80=Date['now']();function _0x1ae2b6(_0x9a42be,_0x48bc84){return _0x4de1f1(_0x9a42be- -0x1,_0x48bc84);}(function _0x4af6f9(){if(_0x33868b['isDestroy'])return;_0x33868b[_0x425162(-0x59,-0x2f)]=window[_0x425162(-0xf4,-0xc6)](_0x4af6f9);function _0x193c70(_0x4eebad,_0x30894b){return _0x4308(_0x30894b-0x260,_0x4eebad);}function _0x425162(_0x3e9a79,_0x4006b3){return _0x4308(_0x4006b3- -0x22b,_0x3e9a79);}if(_0x33868b['show']&&_0x33868b['windField']){const _0x2aa3bf=Date['now'](),_0x302a05=_0x2aa3bf-_0xed7c80;_0x302a05>_0x33868b[_0x193c70(0x41c,0x46b)]&&(_0xed7c80=_0x2aa3bf-_0x302a05%_0x33868b[_0x193c70(0x4ae,0x46b)],_0x33868b['update']());}}(),window['addEventListener']('resize',this['resize'][_0x1ae2b6(0x1be,0x1af)](this),![]),this['mouse_down']=![],this['mouse_move']=![]);function _0x485b09(_0x3c044c,_0x18a51e){return _0x5081bd(_0x18a51e- -0x2d4,_0x3c044c);}this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this[_0x485b09(-0x184,-0x1bb)],this),this['_map']['on'](mars3d__namespace['EventType']['mouseDown'],this[_0x1ae2b6(0x140,0x1cb)],this),this['_map']['on'](mars3d__namespace['EventType'][_0x1ae2b6(0xd3,0x11d)],this[_0x485b09(-0x85,-0xff)],this));}['unbindEvent'](){window['cancelAnimationFrame'](this['_animateFrame']),delete this[_0x289fb9(-0x81,-0xce)],window['removeEventListener']('resize',this[_0x289fb9(-0x100,-0x115)]);function _0x289fb9(_0x236f7c,_0x53b029){return _0x4de1f1(_0x53b029- -0x272,_0x236f7c);}function _0x35fb4d(_0x1dbaa0,_0xd40422){return _0x4de1f1(_0xd40422- -0x15a,_0x1dbaa0);}this[_0x289fb9(-0x8a,-0xf5)]['mouseHidden']&&(this['_map'][_0x35fb4d(-0xcf,-0x60)](mars3d__namespace[_0x289fb9(-0xb3,-0xf0)]['wheel'],this[_0x289fb9(-0xf9,-0x14f)],this),this['_map']['off'](mars3d__namespace['EventType'][_0x289fb9(-0x11e,-0xcf)],this[_0x35fb4d(-0x7a,-0x19)],this),this['_map']['off'](mars3d__namespace[_0x289fb9(-0x15b,-0xf0)][_0x289fb9(-0x225,-0x19e)],this[_0x289fb9(-0xa8,-0x93)],this),this[_0x35fb4d(0x97,0xe)]['off'](mars3d__namespace['EventType'][_0x35fb4d(0x9e,0x5b)],this['_onMouseMoveEvent'],this));}['_onMapWhellEvent'](_0x1fd88b){clearTimeout(this['refreshTimer']);if(!this['show']||!this[_0x4ce391(-0x106,-0x155)])return;function _0x1a0332(_0x431c40,_0x49c43d){return _0x4de1f1(_0x49c43d-0x17,_0x431c40);}function _0x4ce391(_0x3ec3b3,_0x1b4298){return _0x5081bd(_0x1b4298- -0x2f0,_0x3ec3b3);}this[_0x1a0332(0x20e,0x1bc)]['style'][_0x1a0332(0x13b,0x1c3)]='hidden',this[_0x1a0332(0x13c,0x198)]=setTimeout(()=>{function _0x59ce15(_0x6f65f4,_0x37a9b6){return _0x1a0332(_0x37a9b6,_0x6f65f4-0x2d);}if(!this[_0x59ce15(0x1f3,0x277)])return;this['redraw'](),this['canvas']['style']['visibility']='visible';},0xc8);}[_0x4de1f1(0x141,0x11f)](_0x437a6b){function _0x337a62(_0x30c8d6,_0xfcdaaa){return _0x5081bd(_0xfcdaaa- -0x90,_0x30c8d6);}this[_0x337a62(0x82,0x55)]=!![];function _0x1055cf(_0xa05640,_0x4c4f6d){return _0x4de1f1(_0x4c4f6d-0x39b,_0xa05640);}this['_map']['off'](mars3d__namespace[_0x337a62(0x8a,0xe8)]['mouseMove'],this[_0x1055cf(0x512,0x4f4)],this),this[_0x337a62(0x11b,0xce)]['on'](mars3d__namespace['EventType'][_0x1055cf(0x568,0x550)],this['_onMouseMoveEvent'],this);}[_0x4de1f1(0x159,0x1a8)](_0x2b6729){function _0x326af1(_0x2d9d94,_0x48a2b8){return _0x4de1f1(_0x48a2b8-0x41b,_0x2d9d94);}if(!this[_0x326af1(0x56a,0x5ca)]||!this['canvas'])return;function _0x56bcaf(_0x3d34b6,_0x11ee7c){return _0x4de1f1(_0x3d34b6-0x60,_0x11ee7c);}this[_0x326af1(0x4ff,0x50a)]&&(this['canvas']['style']['visibility']='hidden',this[_0x56bcaf(0x196,0x1cd)]=!![]);}[_0x5081bd(0x1d5,0x20e)](_0x1ffc8c){if(!this[_0x10836d(-0xa9,-0x124)]||!this['canvas'])return;this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x22f083(0x2dc,0x302)],this);function _0x10836d(_0x2775fc,_0x28b771){return _0x5081bd(_0x28b771- -0x2c9,_0x2775fc);}function _0x22f083(_0x14999b,_0x2b5b01){return _0x5081bd(_0x2b5b01-0x1b3,_0x14999b);}this[_0x22f083(0x2e8,0x298)]&&this[_0x10836d(-0x11c,-0x19d)]&&this['redraw'](),this['canvas']['style']['visibility']='visible',this['mouse_down']=![],this[_0x22f083(0x2ba,0x2df)]=![];}[_0x4de1f1(0xf5,0x151)](_0x30d749){this['clear'](),this[_0x5832a2(0x530,0x515)]=_0x30d749;function _0x412523(_0x30531c,_0x26eedc){return _0x5081bd(_0x30531c-0x336,_0x26eedc);}function _0x5832a2(_0x5611e4,_0xb09a64){return _0x4de1f1(_0xb09a64-0x3af,_0x5611e4);}this['windField']['setDate'](_0x30d749),this[_0x5832a2(0x533,0x4d7)]();}['redraw'](){if(!this['show'])return;function _0x2c3d3e(_0x1e20aa,_0x261c4b){return _0x4de1f1(_0x1e20aa- -0x389,_0x261c4b);}this[_0x8dd28d(0x570,0x5ae)][_0x8dd28d(0x4e8,0x558)](this['options']);function _0x8dd28d(_0x184b36,_0x5d2cfc){return _0x4de1f1(_0x5d2cfc-0x43b,_0x184b36);}this['update']();}[_0x5081bd(0xd9,0x58)](){function _0x4d6403(_0x542268,_0x5c8fa5){return _0x5081bd(_0x542268- -0x1c5,_0x5c8fa5);}if(this[_0x5d1e9b(0x426,0x4a7)])return;this['_updateIng']=!![];if(this[_0x5d1e9b(0x3fb,0x468)])this[_0x4d6403(-0x5c,-0x28)][_0x4d6403(-0xec,-0xd8)]();else{const _0x5ed622=this['windField']['getParticles']();this[_0x4d6403(-0xd0,-0x3f)](_0x5ed622);}function _0x5d1e9b(_0x3513fa,_0x1ab417){return _0x5081bd(_0x3513fa-0x29a,_0x1ab417);}this['_updateIng']=![];}['_drawLines'](_0xb94f80){this['_canvasParticles']=_0xb94f80;function _0x2bd22f(_0x368ba4,_0x2d5bc3){return _0x4de1f1(_0x368ba4- -0x99,_0x2d5bc3);}function _0xd35c30(_0x18fabd,_0x2a877b){return _0x5081bd(_0x18fabd-0x3fc,_0x2a877b);}this[_0xd35c30(0x58e,0x58f)]['globalCompositeOperation']='destination-in',this['canvasContext']['fillRect'](0x0,0x0,this['canvasWidth'],this['canvasHeight']),this[_0xd35c30(0x58e,0x5c9)][_0xd35c30(0x562,0x56e)]='lighter',this[_0xd35c30(0x58e,0x5f2)]['globalAlpha']=0.9;const _0x3d74ef=this['_map']['scene'][_0x2bd22f(0x121,0x19c)]!==Cesium['SceneMode']['SCENE3D'],_0x5094ae=this['canvasWidth']*0.25;if(this['_colorRamp'])for(let _0x208375=0x0,_0x37e5f1=_0xb94f80['length'];_0x208375<_0x37e5f1;_0x208375++){const _0x1dcaf9=_0xb94f80[_0x208375],_0x2973c2=this['_tomap'](_0x1dcaf9,_0x1dcaf9['lng'],_0x1dcaf9[_0xd35c30(0x5dd,0x66f)],_0x1dcaf9['alt']),_0x5e8c3b=this['_tomap'](_0x1dcaf9,_0x1dcaf9['tlng'],_0x1dcaf9['tlat'],_0x1dcaf9['talt']);if(!_0x2973c2||!_0x5e8c3b)continue;if(_0x3d74ef&&Math[_0x2bd22f(0x94,0xdc)](_0x2973c2[0x0]-_0x5e8c3b[0x0])>=_0x5094ae)continue;this['canvasContext'][_0x2bd22f(0x3a,0x36)](),this['canvasContext']['lineWidth']=this[_0x2bd22f(0x12a,0x14f)],this['canvasContext']['strokeStyle']=this[_0x2bd22f(0xc5,0x112)]['getColor'](_0x1dcaf9['speed']),this[_0x2bd22f(0x103,0xbf)]['moveTo'](_0x2973c2[0x0],_0x2973c2[0x1]),this['canvasContext']['lineTo'](_0x5e8c3b[0x0],_0x5e8c3b[0x1]),this['canvasContext'][_0x2bd22f(0x115,0xbd)]();}else{this[_0xd35c30(0x58e,0x5f2)][_0x2bd22f(0x3a,0xc4)](),this[_0x2bd22f(0x103,0x72)][_0x2bd22f(0x12a,0x11b)]=this[_0x2bd22f(0x12a,0xc3)],this[_0x2bd22f(0x103,0x116)][_0xd35c30(0x55b,0x558)]=this[_0x2bd22f(0xa7,0x6e)];for(let _0x1af6b8=0x0,_0x107f74=_0xb94f80[_0xd35c30(0x4cb,0x544)];_0x1af6b8<_0x107f74;_0x1af6b8++){const _0x7f751c=_0xb94f80[_0x1af6b8],_0x16c76f=this[_0xd35c30(0x559,0x56b)](_0x7f751c,_0x7f751c[_0x2bd22f(0x42,-0x1b)],_0x7f751c['lat'],_0x7f751c[_0x2bd22f(0x104,0xa6)]),_0x5932f0=this['_tomap'](_0x7f751c,_0x7f751c[_0xd35c30(0x54e,0x4f7)],_0x7f751c[_0xd35c30(0x57e,0x5fc)],_0x7f751c['talt']);if(!_0x16c76f||!_0x5932f0)continue;if(_0x3d74ef&&Math[_0x2bd22f(0x94,0xee)](_0x16c76f[0x0]-_0x5932f0[0x0])>=_0x5094ae)continue;this[_0xd35c30(0x58e,0x549)][_0x2bd22f(0xbf,0x113)](_0x16c76f[0x0],_0x16c76f[0x1]),this['canvasContext']['lineTo'](_0x5932f0[0x0],_0x5932f0[0x1]);}this[_0x2bd22f(0x103,0x15d)][_0x2bd22f(0x115,0x194)]();}}['_tomap'](_0x5bc32c,_0x106adf,_0x4f331f,_0x426f09){const _0x367af5=Cesium['Cartesian3'][_0x7b941f(-0xf8,-0x154)](_0x106adf,_0x4f331f,_0x426f09??this[_0x7b941f(-0x1d,-0x8c)]),_0x17554f=this['_map']['scene'];if(_0x17554f[_0x4ba6af(0x5e0,0x590)]===Cesium['SceneMode']['SCENE3D']){const _0x2765be=new Cesium[(_0x4ba6af(0x4e7,0x51f))](_0x17554f[_0x4ba6af(0x4bf,0x4e0)]['ellipsoid'],_0x17554f[_0x7b941f(-0x18f,-0x142)]['positionWC']),_0x2a9051=_0x2765be[_0x4ba6af(0x51c,0x527)](_0x367af5);if(!_0x2a9051)return _0x5bc32c['age']=0x0,null;}function _0x4ba6af(_0x22ebbb,_0x2339aa){return _0x5081bd(_0x2339aa-0x3e0,_0x22ebbb);}const _0x575ac9=mars3d__namespace['PointTrans'][_0x7b941f(-0x7e,-0xc4)](this[_0x4ba6af(0x516,0x53e)]['scene'],_0x367af5);function _0x7b941f(_0x4cdc9a,_0x178909){return _0x5081bd(_0x178909- -0x252,_0x4cdc9a);}return _0x575ac9?[_0x575ac9['x'],_0x575ac9['y']]:null;}[_0x5081bd(0x1d6,0x1dd)](){function _0x7d37e5(_0x4458ad,_0x4e1fbc){return _0x4de1f1(_0x4458ad- -0x4f,_0x4e1fbc);}function _0x188979(_0x17cfc9,_0x29ed02){return _0x5081bd(_0x17cfc9- -0x2de,_0x29ed02);}this[_0x7d37e5(0x124,0xbe)][_0x7d37e5(0x191,0x1d6)](),delete this['windData'];}[_0x5081bd(0x1da,0x212)](){this[_0x4eae82(0x356,0x3e9)]=new Worker(this[_0x5897e4(-0x173,-0x1a3)]['worker']),this['worker']['onmessage']=_0x53e0=>{function _0x7b64e4(_0x3cd23a,_0x8f5e60){return _0x4eae82(_0x3cd23a-0x1c0,_0x8f5e60);}this['_drawLines'](_0x53e0['data']['particles']),this[_0x7b64e4(0x4d1,0x4c3)]=![];},this['windField']={'init':_0x1ad4c6=>{const _0x465996={};_0x465996['type']=_0x32f50e(0x275,0x269),_0x465996[_0x32f50e(0x20f,0x297)]=_0x1ad4c6;function _0x32f50e(_0x5f1a6e,_0x346900){return _0x4eae82(_0x346900- -0xd1,_0x5f1a6e);}function _0x22b60a(_0x36371c,_0x143ec6){return _0x4eae82(_0x36371c-0x44,_0x143ec6);}this['worker'][_0x22b60a(0x333,0x366)](_0x465996);},'setOptions':_0x5a8701=>{const _0x3e933={};_0x3e933['type']=_0x41397c(0x1fa,0x1d4),_0x3e933['options']=_0x5a8701;function _0x41397c(_0xf15bf9,_0x31c962){return _0x5897e4(_0xf15bf9-0x3cd,_0x31c962);}function _0x121f8b(_0x27191c,_0x425930){return _0x5897e4(_0x27191c-0x4da,_0x425930);}this['worker'][_0x41397c(0x1e1,0x264)](_0x3e933);},'setDate':_0x26f65c=>{const _0x426912={};_0x426912['type']=_0x44f7db(0x1f5,0x233),_0x426912['data']=_0x26f65c;function _0x44f7db(_0x190838,_0x16618b){return _0x5897e4(_0x16618b-0x39a,_0x190838);}function _0x3a3c08(_0x57ba9f,_0x57f67b){return _0x5897e4(_0x57ba9f-0x44,_0x57f67b);}this[_0x3a3c08(-0x141,-0x15f)]['postMessage'](_0x426912);},'update':()=>{function _0x17d849(_0x1d1359,_0x5a56ae){return _0x5897e4(_0x5a56ae-0x4de,_0x1d1359);}if(this[_0x17d849(0x28a,0x314)])return;this['_updateIng2']=!![];function _0x22f0b4(_0x5f12ba,_0x4e2d9c){return _0x4eae82(_0x4e2d9c- -0x506,_0x5f12ba);}const _0x4c7100={};_0x4c7100['type']='update',this[_0x17d849(0x35e,0x359)][_0x22f0b4(-0x1d8,-0x217)](_0x4c7100);},'clear':()=>{const _0x789bc4={};_0x789bc4['type']='clear';function _0x4ee6d6(_0x4eace8,_0x13a3d4){return _0x4eae82(_0x13a3d4- -0xa8,_0x4eace8);}this['worker'][_0x4ee6d6(0x2af,0x247)](_0x789bc4);}};function _0x4eae82(_0x1d5994,_0x18c800){return _0x5081bd(_0x1d5994-0x1f5,_0x18c800);}function _0x5897e4(_0xc6e9eb,_0xfbf9e5){return _0x5081bd(_0xc6e9eb- -0x2e6,_0xfbf9e5);}this['windField']['init'](this[_0x4eae82(0x368,0x331)]);}}mars3d__namespace['LayerUtil'][_0x4de1f1(0x11f,0xab)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace['CanvasWindField']=CanvasWindField;function _0x4de1f1(_0x52a2e6,_0x13c62f){return _0x4308(_0x52a2e6- -0x58,_0x13c62f);}mars3d__namespace['WindUtil']=WindUtil,exports[_0x4de1f1(0x111,0xd7)]=CanvasWindField,exports['CanvasWindLayer']=CanvasWindLayer,exports[_0x5081bd(0x1d1,0x1e7)]=WindLayer,exports['WindUtil']=WindUtil;const _0x46f5b1={};_0x46f5b1['value']=!![],Object[_0x4de1f1(0x187,0x19b)](exports,'__esModule',_0x46f5b1);
14
+ 'use strict';(function(_0x291159,_0x22d5c4){const _0x5a6a96=_0x291159();function _0x760a11(_0x34ad88,_0x3dbfc1){return _0xac00(_0x3dbfc1-0x376,_0x34ad88);}function _0x178db5(_0xa57d09,_0x117609){return _0xac00(_0xa57d09-0x335,_0x117609);}while(!![]){try{const _0x512d8d=-parseInt(_0x178db5(0x558,0x55f))/0x1+parseInt(_0x178db5(0x519,0x56c))/0x2*(parseInt(_0x178db5(0x5e8,0x598))/0x3)+-parseInt(_0x178db5(0x508,0x56f))/0x4+-parseInt(_0x760a11(0x5ac,0x592))/0x5+-parseInt(_0x760a11(0x4e0,0x566))/0x6+-parseInt(_0x178db5(0x5d2,0x5e5))/0x7*(parseInt(_0x760a11(0x5f4,0x60c))/0x8)+parseInt(_0x178db5(0x567,0x513))/0x9;if(_0x512d8d===_0x22d5c4)break;else _0x5a6a96['push'](_0x5a6a96['shift']());}catch(_0x48f080){_0x5a6a96['push'](_0x5a6a96['shift']());}}}(_0x5aa1,0xbf4c0));function _interopNamespace(_0x32a06c){if(_0x32a06c&&_0x32a06c[_0x396c8d(0x10b,0xa5)])return _0x32a06c;var _0x2f3573=Object['create'](null);function _0x16d411(_0x59a9e7,_0x5903a0){return _0xac00(_0x5903a0- -0xd6,_0x59a9e7);}function _0x396c8d(_0x55c6e5,_0x247a84){return _0xac00(_0x247a84- -0x145,_0x55c6e5);}return _0x32a06c&&Object[_0x16d411(0x154,0x173)](_0x32a06c)[_0x396c8d(0x6a,0x9d)](function(_0xcc75e5){if(_0xcc75e5!=='default'){var _0x3d3cad=Object['getOwnPropertyDescriptor'](_0x32a06c,_0xcc75e5);Object['defineProperty'](_0x2f3573,_0xcc75e5,_0x3d3cad['get']?_0x3d3cad:{'enumerable':!![],'get':function(){return _0x32a06c[_0xcc75e5];}});}}),_0x2f3573['default']=_0x32a06c,_0x2f3573;}var mars3d__namespace=_interopNamespace(mars3d);const Cesium$2=mars3d__namespace['Cesium'];function _0x1b4f03(_0x215f20,_0x396281){return _0xac00(_0x215f20- -0x212,_0x396281);}function getU(_0x48c306,_0x518794){const _0x4301e1=_0x48c306*Math['cos'](Cesium$2['Math']['toRadians'](_0x518794));return _0x4301e1;}function getV(_0x547914,_0x1bd55d){function _0xf77f62(_0x1808c0,_0x4ce1c5){return _0xac00(_0x4ce1c5-0x56,_0x1808c0);}const _0x2f43dc=_0x547914*Math['sin'](Cesium$2[_0xf77f62(0x21e,0x25b)]['toRadians'](_0x1bd55d));return _0x2f43dc;}function getSpeed(_0x28eb2b,_0x564370){const _0x809247=Math['sqrt'](Math['pow'](_0x28eb2b,0x2)+Math['pow'](_0x564370,0x2));return _0x809247;}function getDirection(_0x3a6412,_0x567c96){function _0x404c72(_0x2d2c94,_0xb108b6){return _0xac00(_0x2d2c94-0x2ae,_0xb108b6);}let _0x525dd7=Cesium$2['Math'][_0x5ea718(0x283,0x21f)](Math[_0x404c72(0x562,0x529)](_0x567c96,_0x3a6412));_0x525dd7+=_0x525dd7<0x0?0x168:0x0;function _0x5ea718(_0x4cf569,_0x572366){return _0xac00(_0x4cf569-0x6c,_0x572366);}return _0x525dd7;}const _0x1994ea={};_0x1994ea['__proto__']=null,_0x1994ea[_0x3e9da2(0x271,0x200)]=getU,_0x1994ea['getV']=getV,_0x1994ea['getSpeed']=getSpeed,_0x1994ea[_0x1b4f03(0x47,0x47)]=getDirection;var WindUtil=_0x1994ea,updatePositionShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20获取当前粒子的位置\x0a\x20\x20vec2\x20currentPos\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20获取粒子的速度\x0a\x20\x20vec2\x20speed\x20=\x20texture(particlesSpeed,\x20v_textureCoordinates).rg;\x0a\x20\x20\x20\x20//\x20计算下一个位置\x0a\x20\x20vec2\x20nextPos\x20=\x20currentPos\x20+\x20speed;\x0a\x0a\x20\x20\x20\x20//\x20将新的位置写入\x20fragColor\x0a\x20\x20fragColor\x20=\x20vec4(nextPos,\x200.0f,\x201.0f);\x0a}\x0a',calculateSpeedShader='#version\x20300\x20es\x0a\x0a//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec2\x20uRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20vRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20speedRange;\x20//\x20(min,\x20max)\x0auniform\x20vec2\x20dimension;\x20//\x20(lon,\x20lat)\x0auniform\x20vec2\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec2\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0a\x0auniform\x20float\x20speedScaleFactor;\x0auniform\x20float\x20frameRateAdjustment;\x0a\x0ain\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20getInterval(vec2\x20maximum,\x20vec2\x20minimum,\x20vec2\x20dimension)\x20{\x0a\x20\x20return\x20(maximum\x20-\x20minimum)\x20/\x20(dimension\x20-\x201.0f);\x0a}\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20lonLat.x\x20=\x20clamp(lonLat.x,\x20minimum.x,\x20maximum.x);\x0a\x20\x20lonLat.y\x20=\x20clamp(lonLat.y,\x20minimum.y,\x20maximum.y);\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20vec2\x20index2D\x20=\x20vec2(0.0f);\x0a\x20\x20index2D.x\x20=\x20(lonLat.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20index2D.y\x20=\x20(lonLat.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20dimension.y);\x0a\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWindComponent(sampler2D\x20componentTexture,\x20vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20result\x20=\x20texture(componentTexture,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20result;\x0a}\x0a\x0avec2\x20getWindComponents(vec2\x20lonLat)\x20{\x0a\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLat);\x0a\x20\x20float\x20u\x20=\x20texture(U,\x20normalizedIndex2D).r;\x0a\x20\x20float\x20v\x20=\x20texture(V,\x20normalizedIndex2D).r;\x0a\x20\x20return\x20vec2(u,\x20v);\x0a}\x0a\x0avec2\x20bilinearInterpolation(vec2\x20lonLat)\x20{\x0a\x20\x20float\x20lon\x20=\x20lonLat.x;\x0a\x20\x20float\x20lat\x20=\x20lonLat.y;\x0a\x0a\x20\x20vec2\x20interval\x20=\x20getInterval(maximum,\x20minimum,\x20dimension);\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20grid\x20cell\x20coordinates\x0a\x20\x20float\x20lon0\x20=\x20floor(lon\x20/\x20interval.x)\x20*\x20interval.x;\x0a\x20\x20float\x20lon1\x20=\x20lon0\x20+\x20interval.x;\x0a\x20\x20float\x20lat0\x20=\x20floor(lat\x20/\x20interval.y)\x20*\x20interval.y;\x0a\x20\x20float\x20lat1\x20=\x20lat0\x20+\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Get\x20wind\x20vectors\x20at\x20four\x20corners\x0a\x20\x20vec2\x20v00\x20=\x20getWindComponents(vec2(lon0,\x20lat0));\x0a\x20\x20vec2\x20v10\x20=\x20getWindComponents(vec2(lon1,\x20lat0));\x0a\x20\x20vec2\x20v01\x20=\x20getWindComponents(vec2(lon0,\x20lat1));\x0a\x20\x20vec2\x20v11\x20=\x20getWindComponents(vec2(lon1,\x20lat1));\x0a\x0a\x20\x20\x20\x20//\x20Check\x20if\x20all\x20wind\x20vectors\x20are\x20zero\x0a\x20\x20if(length(v00)\x20==\x200.0f\x20&&\x20length(v10)\x20==\x200.0f\x20&&\x20length(v01)\x20==\x200.0f\x20&&\x20length(v11)\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f,\x200.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20interpolation\x20weights\x0a\x20\x20float\x20s\x20=\x20(lon\x20-\x20lon0)\x20/\x20interval.x;\x0a\x20\x20float\x20t\x20=\x20(lat\x20-\x20lat0)\x20/\x20interval.y;\x0a\x0a\x20\x20\x20\x20//\x20Perform\x20bilinear\x20interpolation\x20on\x20vector\x20components\x0a\x20\x20vec2\x20v0\x20=\x20mix(v00,\x20v10,\x20s);\x0a\x20\x20vec2\x20v1\x20=\x20mix(v01,\x20v11,\x20s);\x0a\x20\x20return\x20mix(v0,\x20v1,\x20t);\x0a}\x0a\x0avec2\x20lengthOfLonLat(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x0a\x20\x20float\x20term1\x20=\x20111132.92f;\x0a\x20\x20float\x20term2\x20=\x20559.82f\x20*\x20cos(2.0f\x20*\x20latitude);\x0a\x20\x20float\x20term3\x20=\x201.175f\x20*\x20cos(4.0f\x20*\x20latitude);\x0a\x20\x20float\x20term4\x20=\x200.0023f\x20*\x20cos(6.0f\x20*\x20latitude);\x0a\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20float\x20term5\x20=\x20111412.84f\x20*\x20cos(latitude);\x0a\x20\x20float\x20term6\x20=\x2093.5f\x20*\x20cos(3.0f\x20*\x20latitude);\x0a\x20\x20float\x20term7\x20=\x200.118f\x20*\x20cos(5.0f\x20*\x20latitude);\x0a\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avec2\x20convertSpeedUnitToLonLat(vec2\x20lonLat,\x20vec2\x20speed)\x20{\x0a\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLat);\x0a\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20vec2\x20windVectorInLonLat\x20=\x20vec2(u,\x20v);\x0a\x0a\x20\x20return\x20windVectorInLonLat;\x0a}\x0a\x0avec2\x20calculateSpeedByRungeKutta2(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Second-order_methods_with_two_stages\x20for\x20detail\x0a\x20\x20const\x20float\x20h\x20=\x200.5f;\x0a\x0a\x20\x20vec2\x20y_n\x20=\x20lonLat;\x0a\x20\x20vec2\x20f_n\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20midpoint\x20=\x20y_n\x20+\x200.5f\x20*\x20h\x20*\x20convertSpeedUnitToLonLat(y_n,\x20f_n)\x20*\x20speedScaleFactor;\x0a\x20\x20vec2\x20speed\x20=\x20h\x20*\x20bilinearInterpolation(midpoint)\x20*\x20speedScaleFactor;\x0a\x0a\x20\x20return\x20speed;\x0a}\x0a\x0avec2\x20calculateWindNorm(vec2\x20speed)\x20{\x0a\x20\x20float\x20speedLength\x20=\x20length(speed.xy);\x0a\x20\x20if(speedLength\x20==\x200.0f)\x20{\x0a\x20\x20\x20\x20return\x20vec2(0.0f);\x0a\x20\x20}\x0a\x0a\x20\x20\x20\x20//\x20Clamp\x20speedLength\x20to\x20range\x0a\x20\x20float\x20clampedSpeed\x20=\x20clamp(speedLength,\x20speedRange.x,\x20speedRange.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(clampedSpeed\x20-\x20speedRange.x)\x20/\x20(speedRange.y\x20-\x20speedRange.x);\x0a\x20\x20return\x20vec2(speedLength,\x20normalizedSpeed);\x0a}\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20vec2\x20lonLat\x20=\x20texture(currentParticlesPosition,\x20v_textureCoordinates).rg;\x0a\x20\x20vec2\x20speedOrigin\x20=\x20bilinearInterpolation(lonLat);\x0a\x20\x20vec2\x20speed\x20=\x20calculateSpeedByRungeKutta2(lonLat)\x20*\x20frameRateAdjustment;\x0a\x20\x20vec2\x20speedInLonLat\x20=\x20convertSpeedUnitToLonLat(lonLat,\x20speed);\x0a\x0a\x20\x20fragColor\x20=\x20vec4(speedInLonLat,\x20calculateWindNorm(speedOrigin));\x0a}\x0a',postProcessingPositionFragmentShader=_0x3e9da2(0x30d,0x28f),renderParticlesFragmentShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec4\x20speed;\x0ain\x20float\x20v_segmentPosition;\x0ain\x20vec2\x20textureCoordinate;\x0a\x0auniform\x20vec2\x20domain;\x0auniform\x20vec2\x20displayRange;\x0auniform\x20sampler2D\x20colorTable;\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0a\x0aout\x20vec4\x20fragColor;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20const\x20float\x20zero\x20=\x200.0f;\x0a\x20\x20if(speed.a\x20>\x20zero\x20&&\x20speed.b\x20>\x20displayRange.x\x20&&\x20speed.b\x20<\x20displayRange.y)\x20{\x0a\x20\x20\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x20\x20\x20\x20vec4\x20baseColor\x20=\x20texture(colorTable,\x20vec2(normalizedSpeed,\x20zero));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用更平滑的渐变效果\x0a\x20\x20\x20\x20float\x20alpha\x20=\x20smoothstep(0.0f,\x201.0f,\x20v_segmentPosition);\x0a\x20\x20\x20\x20alpha\x20=\x20pow(alpha,\x201.5f);\x20//\x20调整透明度渐变曲线\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20根据速度调整透明度\x0a\x20\x20\x20\x20float\x20speedAlpha\x20=\x20mix(0.3f,\x201.0f,\x20speed.a);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20组合颜色和透明度\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(baseColor.rgb,\x20baseColor.a\x20*\x20alpha\x20*\x20speedAlpha);\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a\x0a\x20\x20float\x20segmentsDepth\x20=\x20texture(segmentsDepthTexture,\x20textureCoordinate).r;\x0a\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture(czm_globeDepthTexture,\x20textureCoordinate));\x0a\x20\x20if(segmentsDepth\x20<\x20globeDepth)\x20{\x0a\x20\x20\x20\x20fragColor\x20=\x20vec4(zero);\x0a\x20\x20}\x0a}\x0a',renderParticlesVertexShader='#version\x20300\x20es\x0aprecision\x20highp\x20float;\x0a\x0ain\x20vec2\x20st;\x0ain\x20vec3\x20normal;\x0a\x0auniform\x20sampler2D\x20previousParticlesPosition;\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20particlesSpeed;\x0a\x0auniform\x20float\x20frameRateAdjustment;\x0auniform\x20float\x20particleHeight;\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20vec2\x20lineWidth;\x0auniform\x20vec2\x20lineLength;\x0auniform\x20vec2\x20domain;\x0auniform\x20bool\x20is3D;\x0a\x0a//\x20添加输出变量传递给片元着色器\x0aout\x20vec4\x20speed;\x0aout\x20float\x20v_segmentPosition;\x0aout\x20vec2\x20textureCoordinate;\x0a\x0a//\x20添加结构体定义\x0astruct\x20adjacentPoints\x20{\x0a\x20\x20vec4\x20previous;\x0a\x20\x20vec4\x20current;\x0a\x20\x20vec4\x20next;\x0a};\x0a\x0avec3\x20convertCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20read\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x0a\x20\x20float\x20a\x20=\x206378137.0f;\x20//\x20Semi-major\x20axis\x0a\x20\x20float\x20b\x20=\x206356752.3142f;\x20//\x20Semi-minor\x20axis\x0a\x20\x20float\x20e2\x20=\x206.69437999014e-3f;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20float\x20latitude\x20=\x20radians(lonLat.y);\x0a\x20\x20float\x20longitude\x20=\x20radians(lonLat.x);\x0a\x0a\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0f\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0f);\x0a\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calculateProjectedCoordinate(vec2\x20lonLat)\x20{\x0a\x20\x20if(is3D)\x20{\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLat);\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20使用\x20modelViewProjection\x20矩阵进行投影变换\x0a\x20\x20\x20\x20vec4\x20projectedPosition\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0f);\x0a\x20\x20\x20\x20return\x20projectedPosition;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20vec3\x20position2D\x20=\x20vec3(radians(lonLat.x),\x20radians(lonLat.y),\x200.0f);\x0a\x20\x20\x20\x20return\x20czm_modelViewProjection\x20*\x20vec4(position2D,\x201.0f);\x0a\x20\x20}\x0a}\x0a\x0avec4\x20calculateOffsetOnNormalDirection(vec4\x20pointA,\x20vec4\x20pointB,\x20float\x20offsetSign,\x20float\x20widthFactor)\x20{\x0a\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0f);\x0a\x20\x20vec2\x20pointA_XY\x20=\x20(pointA.xy\x20/\x20pointA.w)\x20*\x20aspectVec2;\x0a\x20\x20vec2\x20pointB_XY\x20=\x20(pointB.xy\x20/\x20pointB.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20//\x20计算方向向量\x0a\x20\x20vec2\x20direction\x20=\x20normalize(pointB_XY\x20-\x20pointA_XY);\x0a\x0a\x20\x20\x20\x20//\x20计算法向量\x0a\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x0a\x20\x20\x20\x20//\x20使用\x20widthFactor\x20调整宽度\x0a\x20\x20float\x20offsetLength\x20=\x20widthFactor\x20*\x20lineWidth.y;\x0a\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0f,\x200.0f);\x0a\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20翻转\x20Y\x20轴坐标\x0a\x20\x20vec2\x20flippedIndex\x20=\x20vec2(st.x,\x201.0f\x20-\x20st.y);\x0a\x0a\x20\x20vec2\x20particleIndex\x20=\x20flippedIndex;\x0a\x20\x20speed\x20=\x20texture(particlesSpeed,\x20particleIndex);\x0a\x0a\x20\x20vec2\x20previousPosition\x20=\x20texture(previousParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20currentPosition\x20=\x20texture(currentParticlesPosition,\x20particleIndex).rg;\x0a\x20\x20vec2\x20nextPosition\x20=\x20texture(postProcessingPosition,\x20particleIndex).rg;\x0a\x0a\x20\x20float\x20isAnyRandomPointUsed\x20=\x20texture(postProcessingPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(currentParticlesPosition,\x20particleIndex).a\x20+\x0a\x20\x20\x20\x20texture(previousParticlesPosition,\x20particleIndex).a;\x0a\x0a\x20\x20adjacentPoints\x20projectedCoordinates;\x0a\x20\x20if(isAnyRandomPointUsed\x20>\x200.0f)\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20projectedCoordinates.previous;\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20projectedCoordinates.previous;\x0a\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20projectedCoordinates.previous\x20=\x20calculateProjectedCoordinate(previousPosition);\x0a\x20\x20\x20\x20projectedCoordinates.current\x20=\x20calculateProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20projectedCoordinates.next\x20=\x20calculateProjectedCoordinate(nextPosition);\x0a\x20\x20}\x0a\x0a\x20\x20int\x20pointToUse\x20=\x20int(normal.x);\x0a\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x20\x20vec4\x20offset\x20=\x20vec4(0.0f);\x0a\x0a\x20\x20\x20\x20//\x20计算速度相关的宽度和长度因子\x0a\x20\x20float\x20speedLength\x20=\x20clamp(speed.b,\x20domain.x,\x20domain.y);\x0a\x20\x20float\x20normalizedSpeed\x20=\x20(speedLength\x20-\x20domain.x)\x20/\x20(domain.y\x20-\x20domain.x);\x0a\x0a\x20\x20\x20\x20//\x20根据速度计算宽度\x0a\x20\x20float\x20widthFactor\x20=\x20mix(lineWidth.x,\x20lineWidth.y,\x20normalizedSpeed);\x0a\x20\x20widthFactor\x20*=\x20(pointToUse\x20<\x200\x20?\x201.0f\x20:\x200.5f);\x20//\x20头部更宽,尾部更窄\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20length\x20based\x20on\x20speed\x0a\x20\x20float\x20lengthFactor\x20=\x20mix(lineLength.x,\x20lineLength.y,\x20normalizedSpeed)\x20*\x20pixelSize;\x0a\x0a\x20\x20if(pointToUse\x20==\x201)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20头部位置\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.previous,\x20projectedCoordinates.current,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20projectedCoordinates.previous\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x200.0f;\x20//\x20头部\x0a\x20\x20}\x20else\x20if(pointToUse\x20==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Get\x20direction\x20and\x20normalize\x20it\x20to\x20length\x201.0\x0a\x20\x20\x20\x20vec4\x20direction\x20=\x20normalize(projectedCoordinates.next\x20-\x20projectedCoordinates.current);\x0a\x20\x20\x20\x20vec4\x20extendedPosition\x20=\x20projectedCoordinates.current\x20+\x20direction\x20*\x20lengthFactor;\x0a\x0a\x20\x20\x20\x20offset\x20=\x20pixelSize\x20*\x20calculateOffsetOnNormalDirection(projectedCoordinates.current,\x20extendedPosition,\x20offsetSign,\x20widthFactor);\x0a\x20\x20\x20\x20gl_Position\x20=\x20extendedPosition\x20+\x20offset;\x0a\x20\x20\x20\x20v_segmentPosition\x20=\x201.0f;\x20//\x20尾部\x0a\x20\x20}\x0a\x0a\x20\x20textureCoordinate\x20=\x20st;\x0a}\x0a';const {ShaderSource:ShaderSource$1}=mars3d__namespace['Cesium'];class ShaderManager{static[_0x1b4f03(0x2f,-0x32)](){const _0x4dd04e={};return _0x4dd04e['sources']=[calculateSpeedShader],new ShaderSource$1(_0x4dd04e);}static[_0x1b4f03(0x70,0x7b)](){const _0x32a7ce={};return _0x32a7ce['sources']=[updatePositionShader],new ShaderSource$1(_0x32a7ce);}static['getSegmentDrawVertexShader'](){const _0x25ed11={};return _0x25ed11['sources']=[renderParticlesVertexShader],new ShaderSource$1(_0x25ed11);}static['getSegmentDrawFragmentShader'](){const _0x22c4f7={};return _0x22c4f7['sources']=[renderParticlesFragmentShader],new ShaderSource$1(_0x22c4f7);}static['getPostProcessingPositionShader'](){const _0x150cbc={};return _0x150cbc['sources']=[postProcessingPositionFragmentShader],new ShaderSource$1(_0x150cbc);}}function _0x5aa1(){const _0x36c967=['pixelDatatype','wheel','21176010lTVsMT','getUVByXY','processWindData','bounds','show','lineWidth','pointerEvents','geometry','vmax','min','ymin','left','positionWC','componentDatatype','isDestroy','getCalculateSpeedShader','createWindTextures','primitives','textures','FLOAT','CLAMP_TO_EDGE','vmin','canvas','keys','createParticlesTextures','_speedRate','type','mode','number','LINEAR','_calcUV','outputTexture','lat','postMessage','renderState','setDate','requestAnimationFrame','autoClear','frameRateAdjustment','getDirection','zIndex','warn','mouse_move','_bilinearInterpolation','shaderProgram','age','pixelSize','add','min\x20is\x20undefined,\x20calculate\x20min','frameRateMonitor','scene','particlesTextureSize\x20must\x20be\x20greater\x20than\x200','fragmentShaderSource','preExecute','create','frameTime','computing','west','bindEvent','_setOptionsHook','colorTable','requestRender','magnificationFilter','colors','onmessage','context','setGeometry','data','latRange','getPostProcessingPositionShader','stroke','mouseDown','frameRate','tlng','reCreateWindTextures','getRandomLatLng','createCommand','flatMap','execute','wrapT','getUpdatePositionShader','abs','_map','sqrt','commandToExecute','Unknown\x20command\x20type','tlat','_animateFrame','max\x20is\x20undefined,\x20calculate\x20max','Compute','update','refreshTimer','LayerUtil','globe','resize','push','commandType','#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','_addedHook','drawingBufferWidth','8jorYsT','setOptions','pass','floor','depthTexture','attributeLocations','_drawLines','4932487mWOedC','applyViewerParameters','clearCommand','udata','BaseLayer','rawRenderState','STATIC_DRAW','worker','xmax','isDynamic','camera','reverseY','globalAlpha','segmentsColor','prototype','mouse_down','RED','nextParticlesPosition','visible','rendering','cartesianToCartographic','random','3796347wXUmEK','atan2','uniformMap','ellipsoid','framebuffers','componentsPerAttribute','Cesium','_canrefresh','currentParticlesPosition','redraw','postProcessingPosition','maxAge','interpolated','moveTo','none','framebuffer','_onMouseUpEvent','max','SceneMode','dynamic','vdata','particleSystem','particlesTextures','destroyParticlesTextures','onParticlesTextureSizeChange','drawingBufferHeight','commandList','speed','cols','pixelFormat','canvasWidth','updateViewerParameters','EllipsoidalOccluder','CanvasWindLayer','style','isInExtent','particlesTextureSize','SCENE3D','SRC_ALPHA','wrapS','lng','primitiveType','fromCache','east','updatePosition','_colorRamp','ymax','destroy','flipY','xmin','calculateSpeed','5188320ZGuQdv','lineTo','particlesNumber','grid','minificationFilter','Invalid\x20particlesTextureSize.\x20Using\x20default\x20value\x20of\x20256.','fixedHeight','viewerParameters','array','values','_onMouseMoveEvent','_calc_speedRate','getUVByPoint','onColorTableChange','WindUtil','forEach','removeChild','2cygEXO','EventType','particles','CanvasWindField','segments','createPrimitives','__esModule','willReadFrequently','setData','RGBA','slice','length','454668UpixGS','_updateIng','options','alpha','reverse','bufferUsage','_onMapWhellEvent','persists','rows','dropRateBump','color','north','#ffffff','OPAQUE','layer','initFrameRate','windField','segmentsDepth','latitude','container','getU','Math','globalCompositeOperation','createRenderingFramebuffers','speedRate','_onMouseDownEvent','canvasContext','off','initWorker','sceneMode','_updateIng2','_pointerEvents','getPrimitives','stringify','Cartesian2','unbindEvent','width','now','call','toDegrees','NEAREST','all','visibility','cancelAnimationFrame','2379870JEDfEd','createSegmentsGeometry','height','bind','dropRate','particlesSpeed','log','281314Ckpfkf','remove','windData','clear','updateOptions','register','vertexShaderSource','south','removeEventListener','clientWidth','windTextures','UNSIGNED_INT','strokeStyle'];_0x5aa1=function(){return _0x36c967;};return _0x5aa1();}const {BufferUsage:BufferUsage$1,ClearCommand:ClearCommand$1,Color:Color$2,ComputeCommand,DrawCommand,Geometry:Geometry$1,Matrix4,Pass:Pass$1,PrimitiveType:PrimitiveType$1,RenderState,ShaderProgram,ShaderSource,VertexArray:VertexArray$1,defaultValue,defined,destroyObject}=mars3d__namespace['Cesium'];class CustomPrimitive{constructor(_0xea9577){this[_0x308ccb(0xa6,0x3a)]=_0xea9577[_0x5b3c75(0x488,0x478)],this[_0x5b3c75(0x413,0x41f)]=_0xea9577[_0x308ccb(-0x39,-0x1f)],this['attributeLocations']=_0xea9577['attributeLocations'],this['primitiveType']=_0xea9577[_0x308ccb(-0x61,-0x8f)],this['uniformMap']=_0xea9577['uniformMap']||{};function _0x308ccb(_0x23db93,_0x25b867){return _0x3e9da2(_0x23db93,_0x25b867- -0x254);}this['vertexShaderSource']=_0xea9577['vertexShaderSource'],this[_0x308ccb(0x8f,0xe)]=_0xea9577['fragmentShaderSource'],this[_0x5b3c75(0x47f,0x488)]=_0xea9577['rawRenderState'],this[_0x5b3c75(0x3b1,0x395)]=_0xea9577['framebuffer'],this['outputTexture']=_0xea9577['outputTexture'],this['autoClear']=defaultValue(_0xea9577['autoClear'],![]),this[_0x5b3c75(0x4ad,0x44d)]=_0xea9577['preExecute'],this[_0x308ccb(-0x31,-0x22)]=!![];function _0x5b3c75(_0x34720b,_0x19deeb){return _0x3e9da2(_0x34720b,_0x19deeb-0x1ea);}this['commandToExecute']=undefined,this[_0x308ccb(-0x25,0x47)]=undefined,this['isDynamic']=_0xea9577['isDynamic']??(()=>!![]),this[_0x308ccb(0x88,-0x1)]&&(this[_0x308ccb(0xc7,0x47)]=new ClearCommand$1({'color':new Color$2(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x5b3c75(0x3db,0x395)],'pass':Pass$1[_0x308ccb(-0x78,-0x5b)]}));}[_0x1b4f03(0x6c,0x1c)](_0x4b291c){function _0x31960e(_0x16dfc3,_0x368ce9){return _0x1b4f03(_0x368ce9- -0x4a,_0x16dfc3);}function _0x5b0527(_0x116fc7,_0x4a73e0){return _0x3e9da2(_0x4a73e0,_0x116fc7-0x64);}if(this[_0x31960e(0x27,0x36)]==='Draw'){const _0x4c8124={};_0x4c8124[_0x31960e(0x11,0x17)]=_0x4b291c,_0x4c8124[_0x31960e(0x67,-0x23)]=this[_0x5b0527(0x299,0x295)],_0x4c8124['attributeLocations']=this[_0x31960e(0x51,0x3f)],_0x4c8124[_0x5b0527(0x255,0x235)]=BufferUsage$1[_0x31960e(-0x1b,0x47)];const _0x3476ac=VertexArray$1['fromGeometry'](_0x4c8124),_0x55a4a2={};_0x55a4a2['context']=_0x4b291c,_0x55a4a2[_0x5b0527(0x289,0x287)]=this['vertexShaderSource'],_0x55a4a2['fragmentShaderSource']=this[_0x5b0527(0x2c6,0x2dc)],_0x55a4a2['attributeLocations']=this['attributeLocations'];const _0x45f937=ShaderProgram[_0x5b0527(0x22a,0x219)](_0x55a4a2),_0x48882b=RenderState['fromCache'](this['rawRenderState']),_0x4525a4={};return _0x4525a4['owner']=this,_0x4525a4['vertexArray']=_0x3476ac,_0x4525a4[_0x5b0527(0x229,0x243)]=this['primitiveType'],_0x4525a4['modelMatrix']=Matrix4['IDENTITY'],_0x4525a4[_0x5b0527(0x2b4,0x269)]=_0x48882b,_0x4525a4[_0x5b0527(0x2be,0x334)]=_0x45f937,_0x4525a4['framebuffer']=this['framebuffer'],_0x4525a4[_0x31960e(0x98,0x59)]=this['uniformMap'],_0x4525a4[_0x5b0527(0x2f8,0x2b9)]=Pass$1[_0x5b0527(0x25d,0x1fc)],new DrawCommand(_0x4525a4);}else{if(this['commandType']===_0x5b0527(0x2eb,0x2dc)){const _0x3d1450={};return _0x3d1450['owner']=this,_0x3d1450['fragmentShaderSource']=this['fragmentShaderSource'],_0x3d1450[_0x5b0527(0x315,0x381)]=this['uniformMap'],_0x3d1450['outputTexture']=this['outputTexture'],_0x3d1450[_0x31960e(-0x8f,-0x65)]=!![],new ComputeCommand(_0x3d1450);}else throw new Error(_0x31960e(0x7b,0x2b));}}[_0x3e9da2(0x2a8,0x270)](_0x18adc9,_0xdc3f9e){function _0x17672e(_0x1ae078,_0x587c76){return _0x3e9da2(_0x1ae078,_0x587c76- -0x157);}this['geometry']=_0xdc3f9e;function _0x31b1d3(_0x48839f,_0x2bfd18){return _0x1b4f03(_0x2bfd18- -0x3e,_0x48839f);}defined(this[_0x17672e(0x139,0x12b)])&&(this['commandToExecute']['vertexArray']=VertexArray$1['fromGeometry']({'context':_0x18adc9,'geometry':this[_0x31b1d3(-0x9e,-0x17)],'attributeLocations':this['attributeLocations'],'bufferUsage':BufferUsage$1['STATIC_DRAW']}));}['update'](_0x266176){if(!this[_0x125bef(0x683,0x65f)]())return;function _0x231282(_0x2f00b4,_0x45a3d0){return _0x3e9da2(_0x45a3d0,_0x2f00b4-0x22e);}if(!this[_0x125bef(0x613,0x59d)]||!defined(_0x266176))return;!defined(this[_0x125bef(0x663,0x5ed)])&&(this['commandToExecute']=this[_0x231282(0x4a8,0x472)](_0x266176['context']));defined(this[_0x231282(0x491,0x504)])&&this[_0x231282(0x491,0x415)]();if(!_0x266176['commandList']){console['warn']('frameState.commandList\x20is\x20undefined');return;}function _0x125bef(_0x4830ea,_0x2fd57c){return _0x3e9da2(_0x2fd57c,_0x4830ea-0x3e1);}defined(this['clearCommand'])&&_0x266176['commandList']['push'](this[_0x125bef(0x67c,0x61e)]),defined(this['commandToExecute'])&&_0x266176[_0x231282(0x3e4,0x442)][_0x125bef(0x66e,0x6ce)](this['commandToExecute']);}['isDestroyed'](){return![];}['destroy'](){if(defined(this['commandToExecute'])){var _0x4db4cf;(_0x4db4cf=this['commandToExecute'][_0x44c853(-0x2c,-0x41)])===null||_0x4db4cf===void 0x0||_0x4db4cf[_0x294b6e(0x9b,0xff)](),this['commandToExecute']['shaderProgram']=undefined;}function _0x294b6e(_0x283079,_0x304257){return _0x3e9da2(_0x283079,_0x304257- -0xcc);}function _0x44c853(_0x38feaa,_0xe78464){return _0x3e9da2(_0x38feaa,_0xe78464- -0x29b);}return destroyObject(this);}}function deepMerge(_0x5edb9b,_0x3c030f){if(!_0x5edb9b)return _0x3c030f;function _0x5d0c4f(_0x2d7259,_0x4176ee){return _0x3e9da2(_0x2d7259,_0x4176ee- -0x20e);}if(!_0x3c030f)return _0x5edb9b;const _0x55be27={..._0x3c030f},_0x1c0996=_0x55be27;function _0x6af55d(_0x33f35b,_0x59384f){return _0x1b4f03(_0x59384f-0x4f4,_0x33f35b);}for(const _0x13b2a6 in _0x5edb9b){if(Object[_0x5d0c4f(0x33,0x99)]['hasOwnProperty'][_0x5d0c4f(-0x7f,0x4)](_0x5edb9b,_0x13b2a6)){const _0x1b1f2b=_0x5edb9b[_0x13b2a6],_0x1db047=_0x3c030f[_0x13b2a6];if(Array['isArray'](_0x1b1f2b)){_0x1c0996[_0x13b2a6]=_0x1b1f2b[_0x5d0c4f(-0xb,-0x24)]();continue;}if(_0x1b1f2b&&typeof _0x1b1f2b==='object'){_0x1c0996[_0x13b2a6]=deepMerge(_0x1b1f2b,_0x1db047||{});continue;}_0x1b1f2b!==undefined&&(_0x1c0996[_0x13b2a6]=_0x1b1f2b);}}return _0x1c0996;}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(_0x16f8e9,_0x4f789a,_0x4781ea,_0x5300dd,_0x177cf3){this['context']=_0x16f8e9,this['options']=_0x4781ea,this['viewerParameters']=_0x5300dd,this['windData']=_0x4f789a,this[_0x3d06e8(-0x153,-0x1bd)]=0x3c;function _0x3d06e8(_0x525fa0,_0x1ee90c){return _0x3e9da2(_0x1ee90c,_0x525fa0- -0x3c9);}this[_0x3d06e8(-0x175,-0x190)]=0x1;const _0x2f824d={};_0x2f824d['scene']=_0x177cf3,_0x2f824d['samplingWindow']=0x1,_0x2f824d['quietPeriod']=0x0,this[_0x3d06e8(-0x16a,-0x19d)]=new FrameRateMonitor(_0x2f824d),this[_0x3d06e8(-0x1ce,-0x15a)](),this[_0x3d06e8(-0x18b,-0x189)]();function _0x585c6c(_0x1e1eb5,_0x12b807){return _0x3e9da2(_0x12b807,_0x1e1eb5-0x3d9);}this[_0x585c6c(0x61f,0x5a5)](),this['createComputingPrimitives']();}['initFrameRate'](){function _0x44e0b1(_0x554d6b,_0x2ab57a){return _0x1b4f03(_0x554d6b-0x21e,_0x2ab57a);}const _0x17ff18=()=>{function _0x3df1cc(_0x52bff6,_0x2668fc){return _0xac00(_0x2668fc- -0x22f,_0x52bff6);}function _0x5674f1(_0x38969b,_0x597a76){return _0xac00(_0x597a76-0x3d5,_0x38969b);}this[_0x5674f1(0x61b,0x638)]['lastFramesPerSecond']>0x14&&(this[_0x3df1cc(0x50,0x4b)]=this['frameRateMonitor']['lastFramesPerSecond'],this['frameRateAdjustment']=0x3c/Math['max'](this['frameRate'],0x1));};_0x17ff18();const _0x2d8120=setInterval(_0x17ff18,0x3e8),_0x2d2201=this['destroy'][_0x44e0b1(0x22b,0x288)](this);this['destroy']=()=>{clearInterval(_0x2d8120),_0x2d2201();};}['createWindTextures'](){const _0x51467b={};_0x51467b['minificationFilter']=TextureMinificationFilter$1[_0x14f504(-0x14c,-0x117)];function _0x14f504(_0x1febdd,_0x1a7e04){return _0x1b4f03(_0x1febdd- -0x189,_0x1a7e04);}_0x51467b[_0x14f504(-0x12b,-0xb9)]=TextureMagnificationFilter$1['LINEAR'];function _0x9d92a8(_0x5d3e4f,_0x105aa7){return _0x1b4f03(_0x105aa7-0x1f3,_0x5d3e4f);}const _0x15bb51={'context':this['context'],'width':this['windData']['width'],'height':this[_0x9d92a8(0x239,0x206)]['height'],'pixelFormat':PixelFormat$1[_0x14f504(-0xee,-0xb0)],'pixelDatatype':PixelDatatype$1['FLOAT'],'flipY':this['options']['flipY']??![],'sampler':new Sampler$1(_0x51467b)};this['windTextures']={'U':new Texture$1({..._0x15bb51,'source':{'arrayBufferView':new Float32Array(this['windData']['u'][_0x14f504(-0x1c0,-0x21e)])}}),'V':new Texture$1({..._0x15bb51,'source':{'arrayBufferView':new Float32Array(this['windData']['v']['array'])}})};}['createParticlesTextures'](){function _0x2ed456(_0x738723,_0x2ca6fa){return _0x1b4f03(_0x2ca6fa-0x1cc,_0x738723);}const _0x1758ac={};_0x1758ac[_0x23d091(0x27f,0x2a3)]=TextureMinificationFilter$1[_0x23d091(0x2c0,0x2d2)],_0x1758ac['magnificationFilter']=TextureMagnificationFilter$1[_0x23d091(0x2c0,0x26a)];function _0x23d091(_0x22fb39,_0x5804f4){return _0x3e9da2(_0x5804f4,_0x22fb39-0xac);}const _0x17837f={'context':this['context'],'width':this['options']['particlesTextureSize'],'height':this['options']['particlesTextureSize'],'pixelFormat':PixelFormat$1['RGBA'],'pixelDatatype':PixelDatatype$1[_0x2ed456(0x205,0x1ff)],'flipY':![],'source':{'arrayBufferView':new Float32Array(this[_0x23d091(0x29a,0x247)]['particlesTextureSize']*this[_0x2ed456(0x212,0x1ac)]['particlesTextureSize']*0x4)['fill'](0x0)},'sampler':new Sampler$1(_0x1758ac)};this[_0x23d091(0x25e,0x2a6)]={'previousParticlesPosition':new Texture$1(_0x17837f),'currentParticlesPosition':new Texture$1(_0x17837f),'nextParticlesPosition':new Texture$1(_0x17837f),'postProcessingPosition':new Texture$1(_0x17837f),'particlesSpeed':new Texture$1(_0x17837f)};}[_0x1b4f03(-0x5b,-0xd4)](){function _0x3ccb21(_0x81d3cf,_0x283926){return _0x1b4f03(_0x81d3cf-0x1db,_0x283926);}function _0x426b03(_0x587038,_0x3c3c7d){return _0x3e9da2(_0x3c3c7d,_0x587038-0x3ce);}Object[_0x426b03(0x5a6,0x557)](this[_0x426b03(0x580,0x60a)])[_0x3ccb21(0x1ab,0x183)](_0x32d078=>_0x32d078['destroy']());}['createComputingPrimitives'](){function _0xc019ff(_0x5b9f32,_0x5c3f59){return _0x3e9da2(_0x5b9f32,_0x5c3f59-0x245);}function _0x2ba255(_0x52b557,_0x107966){return _0x3e9da2(_0x52b557,_0x107966- -0x18f);}this['primitives']={'calculateSpeed':new CustomPrimitive({'commandType':_0x2ba255(0xdc,0xf8),'uniformMap':{'U':()=>this[_0xc019ff(0x48b,0x46e)]['U'],'V':()=>this[_0x2ba255(0xca,0x9a)]['V'],'uRange':()=>new Cartesian2$1(this['windData']['u']['min'],this['windData']['u'][_0x2ba255(-0x22,0x1e)]),'vRange':()=>new Cartesian2$1(this['windData']['v'][_0xc019ff(0x4bd,0x47c)],this[_0x2ba255(0x9e,0x92)]['v'][_0xc019ff(0x384,0x3f2)]),'speedRange':()=>new Cartesian2$1(this['windData'][_0x2ba255(0x55,0x28)][_0xc019ff(0x463,0x47c)],this['windData']['speed']['max']),'currentParticlesPosition':()=>this[_0xc019ff(0x3be,0x3f7)]['currentParticlesPosition'],'speedScaleFactor':()=>{function _0x37864f(_0x3441f2,_0x1517be){return _0x2ba255(_0x3441f2,_0x1517be- -0x173);}function _0x2f4a3e(_0x35f0f2,_0x4bf7f2){return _0xc019ff(_0x35f0f2,_0x4bf7f2- -0x46d);}return(this[_0x37864f(-0xc9,-0x12c)]['pixelSize']+0x32)*this[_0x37864f(-0x132,-0x114)]['speedFactor'];},'frameRateAdjustment':()=>this[_0x2ba255(0xed,0xc5)],'dimension':()=>new Cartesian2$1(this['windData'][_0x2ba255(0x53,0x81)],this['windData']['height']),'minimum':()=>new Cartesian2$1(this[_0x2ba255(0xcb,0x92)]['bounds']['west'],this[_0xc019ff(0x49e,0x466)]['bounds']['south']),'maximum':()=>new Cartesian2$1(this['windData']['bounds']['east'],this[_0xc019ff(0x43f,0x466)]['bounds'][_0x2ba255(0xd8,0x68)])},'fragmentShaderSource':ShaderManager['getCalculateSpeedShader'](),'outputTexture':this[_0xc019ff(0x38b,0x3f7)]['particlesSpeed'],'preExecute':()=>{const _0x16810d=this[_0x482b73(0x272,0x2b8)]['previousParticlesPosition'];this[_0x38da67(-0x7e,-0xf7)]['previousParticlesPosition']=this['particlesTextures'][_0x482b73(0x264,0x205)];function _0x482b73(_0x11cb0d,_0x43f053){return _0xc019ff(_0x43f053,_0x11cb0d- -0x185);}this['particlesTextures']['currentParticlesPosition']=this['particlesTextures']['postProcessingPosition'],this['particlesTextures'][_0x38da67(-0x116,-0x103)]=_0x16810d;function _0x38da67(_0xe2ec30,_0x148b7b){return _0xc019ff(_0xe2ec30,_0x148b7b- -0x4ee);}this[_0x482b73(0x2ff,0x333)]['calculateSpeed']['commandToExecute']&&(this[_0x482b73(0x2ff,0x2b9)]['calculateSpeed'][_0x38da67(-0x5d,-0x27)]['outputTexture']=this[_0x482b73(0x272,0x273)]['particlesSpeed']);},'isDynamic':()=>this[_0xc019ff(0x3fb,0x433)][_0xc019ff(0x391,0x3f4)]}),'updatePosition':new CustomPrimitive({'commandType':_0x2ba255(0x8a,0xf8),'uniformMap':{'currentParticlesPosition':()=>this[_0x2ba255(0x2,0x23)][_0x2ba255(0x32,0x15)],'particlesSpeed':()=>this[_0xc019ff(0x45d,0x3f7)][_0xc019ff(0x4aa,0x462)]},'fragmentShaderSource':ShaderManager[_0xc019ff(0x461,0x4c3)](),'outputTexture':this[_0x2ba255(0x25,0x23)][_0xc019ff(0x4b7,0x4ef)],'preExecute':()=>{function _0x53bdee(_0x26b60f,_0x1e7207){return _0xc019ff(_0x26b60f,_0x1e7207- -0x2a8);}function _0x36b5fe(_0xb9d540,_0x582064){return _0x2ba255(_0x582064,_0xb9d540-0x145);}this['primitives'][_0x36b5fe(0x17e,0x1d2)]['commandToExecute']&&(this[_0x36b5fe(0x1f5,0x23e)]['updatePosition'][_0x36b5fe(0x238,0x201)][_0x36b5fe(0x203,0x252)]=this[_0x53bdee(0x153,0x14f)]['nextParticlesPosition']);},'isDynamic':()=>this[_0xc019ff(0x413,0x433)]['dynamic']}),'postProcessingPosition':new CustomPrimitive({'commandType':'Compute','uniformMap':{'nextParticlesPosition':()=>this['particlesTextures'][_0x2ba255(0xe3,0x11b)],'particlesSpeed':()=>this['particlesTextures']['particlesSpeed'],'lonRange':()=>this[_0x2ba255(-0x34,0x47)]['lonRange'],'latRange':()=>this['viewerParameters'][_0xc019ff(0x52f,0x4b7)],'dataLonRange':()=>new Cartesian2$1(this['windData'][_0x2ba255(0xd6,0xa2)]['west'],this[_0x2ba255(0xdb,0x92)][_0x2ba255(0xc0,0xa2)][_0xc019ff(0x3a1,0x40c)]),'dataLatRange':()=>new Cartesian2$1(this['windData']['bounds']['south'],this['windData']['bounds']['north']),'randomCoefficient':function(){return Math['random']();},'dropRate':()=>this[_0x2ba255(0x7d,0x5f)]['dropRate'],'dropRateBump':()=>this['options'][_0xc019ff(0x3c6,0x43a)],'useViewerBounds':()=>this[_0x2ba255(0xd6,0x5f)]['useViewerBounds']},'fragmentShaderSource':ShaderManager[_0xc019ff(0x4d4,0x4b8)](),'outputTexture':this[_0x2ba255(-0x14,0x23)][_0x2ba255(-0x58,0x17)],'preExecute':()=>{function _0x77b0a9(_0x244e0b,_0x1994a6){return _0x2ba255(_0x244e0b,_0x1994a6-0xb7);}function _0x57b8ee(_0xa7c37c,_0x324712){return _0xc019ff(_0x324712,_0xa7c37c- -0x33e);}this[_0x57b8ee(0x146,0x142)]['postProcessingPosition'][_0x57b8ee(0x189,0x11c)]&&(this['primitives']['postProcessingPosition'][_0x57b8ee(0x189,0x15f)]['outputTexture']=this['particlesTextures']['postProcessingPosition']);},'isDynamic':()=>this[_0xc019ff(0x4a8,0x433)]['dynamic']})};}[_0x3e9da2(0x286,0x278)](){function _0x487b26(_0x1e4f58,_0x3bce1c){return _0x1b4f03(_0x3bce1c-0x2bb,_0x1e4f58);}function _0x223b10(_0x18545f,_0x1651b8){return _0x1b4f03(_0x1651b8-0x238,_0x18545f);}this[_0x487b26(0x30e,0x2d6)]['U'][_0x487b26(0x207,0x278)](),this[_0x223b10(0x248,0x253)]['V']['destroy'](),this[_0x487b26(0x283,0x2eb)]();}['updateWindData'](_0x5313d6){this[_0x3fda30(0x63,0x13)]=_0x5313d6;function _0x3fda30(_0x40be77,_0x5da0cb){return _0x3e9da2(_0x5da0cb,_0x40be77- -0x1be);}function _0x4922e4(_0x2aceb2,_0x5906bc){return _0x1b4f03(_0x5906bc-0x4b4,_0x2aceb2);}this[_0x3fda30(0xba,0x8f)]();}[_0x1b4f03(0x15,-0x5b)](_0x57cd1a){function _0x40c2be(_0x474daf,_0x3a7430){return _0x3e9da2(_0x474daf,_0x3a7430-0x2f4);}const _0x331177=_0x57cd1a['flipY']!==undefined&&_0x57cd1a['flipY']!==this['options']['flipY'];function _0x47032a(_0x286b0b,_0x145d15){return _0x1b4f03(_0x145d15-0x37d,_0x286b0b);}this[_0x47032a(0x389,0x35d)]=deepMerge(_0x57cd1a,this['options']),_0x331177&&this[_0x40c2be(0x593,0x56c)]();}['processWindData'](_0x19d29f){const {array:_0x138a70}=_0x19d29f;let {min:_0x1d1260,max:_0x5a390f}=_0x19d29f;function _0x328352(_0x228617,_0x5cf1dd){return _0x3e9da2(_0x5cf1dd,_0x228617- -0xb);}const _0x3c5289=new Float32Array(_0x138a70['length']);function _0x254dbc(_0xf5e040,_0x316338){return _0x3e9da2(_0x316338,_0xf5e040-0x346);}_0x1d1260===undefined&&(console[_0x328352(0x24c,0x27e)](_0x254dbc(0x5a4,0x555)),_0x1d1260=Math['min'](..._0x138a70));_0x5a390f===undefined&&(console['warn'](_0x254dbc(0x5cc,0x5f1)),_0x5a390f=Math['max'](..._0x138a70));const _0x796933=Math['max'](Math[_0x328352(0x274,0x2f5)](_0x1d1260),Math['abs'](_0x5a390f));for(let _0x5e1de5=0x0;_0x5e1de5<_0x138a70['length'];_0x5e1de5++){const _0x1d75a7=_0x138a70[_0x5e1de5]/_0x796933;_0x3c5289[_0x5e1de5]=_0x1d75a7;}return _0x3c5289;}['destroy'](){function _0x52c466(_0x5714b0,_0x12da29){return _0x3e9da2(_0x5714b0,_0x12da29- -0x199);}Object[_0x207b01(0x492,0x435)](this[_0x207b01(0x4e3,0x4bc)])['forEach'](_0x2c1121=>_0x2c1121[_0x207b01(0x485,0x46a)]()),Object[_0x207b01(0x492,0x4b6)](this[_0x52c466(-0x68,0x19)])['forEach'](_0x2e9176=>_0x2e9176[_0x207b01(0x485,0x498)]());function _0x207b01(_0x46f28c,_0x1a5a0c){return _0x3e9da2(_0x1a5a0c,_0x46f28c-0x2ba);}Object['values'](this['primitives'])[_0x207b01(0x498,0x495)](_0x4f554f=>_0x4f554f['destroy']()),this[_0x207b01(0x519,0x4e5)][_0x52c466(0x99,0x32)]();}}const {Appearance,BufferUsage,Cartesian2,Color:Color$1,ComponentDatatype,Framebuffer,Geometry,GeometryAttribute,GeometryAttributes,PixelDatatype,PixelFormat,PrimitiveType,Sampler,SceneMode,Texture,TextureMagnificationFilter,TextureMinificationFilter,TextureWrap,VertexArray}=mars3d__namespace['Cesium'];function _0xac00(_0x14db8c,_0x3cb93){const _0x5aa14a=_0x5aa1();return _0xac00=function(_0xac0029,_0x14676e){_0xac0029=_0xac0029-0x1a6;let _0x3c606a=_0x5aa14a[_0xac0029];return _0x3c606a;},_0xac00(_0x14db8c,_0x3cb93);}class WindParticlesRendering{constructor(_0x4f9637,_0x3a915d,_0x429c31,_0x11dc2d){this[_0x2c7484(0x3c3,0x3e0)]=_0x4f9637;function _0x2c7484(_0xbc5fcf,_0x5d206f){return _0x1b4f03(_0xbc5fcf-0x362,_0x5d206f);}this[_0x2c7484(0x342,0x32e)]=_0x3a915d,this['viewerParameters']=_0x429c31,this['computing']=_0x11dc2d;(typeof this[_0x2c7484(0x342,0x2d7)][_0x2c7484(0x314,0x391)]!==_0x2c7484(0x39e,0x36a)||this['options']['particlesTextureSize']<=0x0)&&(console['error'](_0x2c7484(0x328,0x34b)),this[_0x2c7484(0x342,0x340)][_0x2c7484(0x314,0x325)]=0x100);this[_0x2c7484(0x3be,0x390)]=this['createColorTableTexture'](),this[_0x380b83(-0x3a,-0x17)]=this['createRenderingTextures']();function _0x380b83(_0x5b9a1c,_0x1cf21c){return _0x3e9da2(_0x1cf21c,_0x5b9a1c- -0x27a);}this['framebuffers']=this[_0x380b83(-0x77,-0xe)](),this['primitives']=this['createPrimitives']();}['createRenderingTextures'](){const _0x3b78f6={};_0x3b78f6[_0x71839f(0x218,0x241)]=this['context'],_0x3b78f6['width']=this[_0x71839f(0x1ed,0x241)]['drawingBufferWidth'],_0x3b78f6[_0x47a24c(-0x127,-0x162)]=this[_0x71839f(0x285,0x241)][_0x71839f(0x1a3,0x187)];function _0x47a24c(_0x36f51e,_0x97e83){return _0x3e9da2(_0x97e83,_0x36f51e- -0x341);}_0x3b78f6[_0x47a24c(-0x188,-0x1e8)]=PixelFormat['RGBA'],_0x3b78f6[_0x47a24c(-0x115,-0xf8)]=PixelDatatype['UNSIGNED_BYTE'];const _0x11b561=_0x3b78f6,_0x109857={};_0x109857[_0x47a24c(-0xd2,-0xf6)]=this['context'],_0x109857['width']=this['context'][_0x47a24c(-0xb0,-0x126)],_0x109857[_0x47a24c(-0x127,-0x1a3)]=this['context']['drawingBufferHeight'];function _0x71839f(_0x2a552c,_0xdbf488){return _0x3e9da2(_0x2a552c,_0xdbf488- -0x2e);}_0x109857[_0x47a24c(-0x188,-0x1f0)]=PixelFormat['DEPTH_COMPONENT'],_0x109857['pixelDatatype']=PixelDatatype[_0x47a24c(-0x117,-0xc0)];const _0x85b349=_0x109857;return{'segmentsColor':new Texture(_0x11b561),'segmentsDepth':new Texture(_0x85b349)};}['createRenderingFramebuffers'](){function _0x3824ea(_0x2f3b10,_0x5a4bcd){return _0x1b4f03(_0x2f3b10- -0xdf,_0x5a4bcd);}const _0x213bf7={};_0x213bf7['context']=this['context'],_0x213bf7['colorTextures']=[this['textures'][_0x37081c(0x3d0,0x3f6)]],_0x213bf7[_0x37081c(0x3eb,0x3e6)]=this[_0x37081c(0x3f4,0x390)]['segmentsDepth'];function _0x37081c(_0x4533df,_0x3375b7){return _0x1b4f03(_0x3375b7-0x35e,_0x4533df);}return{'segments':new Framebuffer(_0x213bf7)};}['destoryRenderingFramebuffers'](){Object['values'](this['framebuffers'])['forEach'](_0x4772ac=>{_0x4772ac['destroy']();});}['createColorTableTexture'](){const _0x4f4c74=new Float32Array(this['options'][_0x4f2731(0x44b,0x45d)][_0x3bce21(0x31,0x49)](_0x270a03=>{function _0x1fd79b(_0x15d3a9,_0x207b84){return _0x4f2731(_0x15d3a9,_0x207b84-0x51);}const _0x58ffce=Color$1['fromCssColorString'](_0x270a03);return[_0x58ffce['red'],_0x58ffce['green'],_0x58ffce['blue'],_0x58ffce[_0x1fd79b(0x3ca,0x430)]];})),_0x2c7612={};_0x2c7612['minificationFilter']=TextureMinificationFilter['LINEAR'],_0x2c7612['magnificationFilter']=TextureMagnificationFilter[_0x4f2731(0x424,0x43b)],_0x2c7612[_0x4f2731(0x3f9,0x3b3)]=TextureWrap[_0x3bce21(0x47,0x10)];function _0x4f2731(_0x12667a,_0x39d53f){return _0x1b4f03(_0x39d53f-0x3fe,_0x12667a);}function _0x3bce21(_0x509e76,_0x4c7726){return _0x3e9da2(_0x509e76,_0x4c7726- -0x232);}return _0x2c7612[_0x3bce21(0x5a,0x4b)]=TextureWrap['CLAMP_TO_EDGE'],new Texture({'context':this[_0x3bce21(0x9d,0x3d)],'width':this['options']['colors']['length'],'height':0x1,'pixelFormat':PixelFormat[_0x3bce21(-0x59,-0x49)],'pixelDatatype':PixelDatatype['FLOAT'],'sampler':new Sampler(_0x2c7612),'source':{'width':this[_0x3bce21(-0x7a,-0x44)]['colors']['length'],'height':0x1,'arrayBufferView':_0x4f4c74}});}['createSegmentsGeometry'](){const _0xad1c8c=0x4,_0x379991=this['options']['particlesTextureSize'];let _0x1a8c40=[];for(let _0x5ef419=0x0;_0x5ef419<_0x379991;_0x5ef419++){for(let _0x3512ca=0x0;_0x3512ca<_0x379991;_0x3512ca++){for(let _0x4069bb=0x0;_0x4069bb<_0xad1c8c;_0x4069bb++){_0x1a8c40[_0x2100cc(0x558,0x5d3)](_0x5ef419/_0x379991),_0x1a8c40[_0x4a6997(0x4b7,0x4f7)](_0x3512ca/_0x379991);}}}_0x1a8c40=new Float32Array(_0x1a8c40);const _0x5bd988=this['options']['particlesTextureSize']**0x2;let _0x2dd07e=[];for(let _0x52aa65=0x0;_0x52aa65<_0x5bd988;_0x52aa65++){_0x2dd07e['push'](-0x1,-0x1,0x0,-0x1,0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0);}_0x2dd07e=new Float32Array(_0x2dd07e);let _0x176dc6=[];for(let _0x49b4ba=0x0,_0x3a1426=0x0;_0x49b4ba<_0x5bd988;_0x49b4ba++){_0x176dc6['push'](_0x3a1426+0x0,_0x3a1426+0x1,_0x3a1426+0x2,_0x3a1426+0x2,_0x3a1426+0x1,_0x3a1426+0x3),_0x3a1426+=_0xad1c8c;}function _0x4a6997(_0x63b3f0,_0x21d4bd){return _0x1b4f03(_0x21d4bd-0x478,_0x63b3f0);}_0x176dc6=new Uint32Array(_0x176dc6);const _0x57d91e={};_0x57d91e[_0x2100cc(0x520,0x581)]=ComponentDatatype['FLOAT'];function _0x2100cc(_0xaa2cba,_0x1f6d6a){return _0x3e9da2(_0xaa2cba,_0x1f6d6a-0x346);}_0x57d91e[_0x2100cc(0x5b4,0x5fa)]=0x2,_0x57d91e['values']=_0x1a8c40;const _0x3fbbc8={};_0x3fbbc8['componentDatatype']=ComponentDatatype['FLOAT'],_0x3fbbc8[_0x2100cc(0x60e,0x5fa)]=0x3,_0x3fbbc8['values']=_0x2dd07e;const _0x296f7f=new Geometry({'attributes':new GeometryAttributes({'st':new GeometryAttribute(_0x57d91e),'normal':new GeometryAttribute(_0x3fbbc8)}),'indices':_0x176dc6});return _0x296f7f;}['createRawRenderState'](_0x390d37){const _0x596154={'viewport':undefined,'depthTest':undefined,'depthMask':undefined,'blending':undefined,..._0x390d37};return Appearance['getDefaultRenderState'](!![],![],_0x596154);}[_0x3e9da2(0x169,0x1e5)](){const _0x1f7405={};function _0x30c8bc(_0xeca196,_0x4e6941){return _0x1b4f03(_0xeca196-0x471,_0x4e6941);}_0x1f7405['st']=0x0,_0x1f7405['normal']=0x1;const _0xf90ef6={};function _0x8fba0c(_0x249b76,_0x343baf){return _0x3e9da2(_0x249b76,_0x343baf- -0x1bd);}_0xf90ef6['enabled']=!![];const _0x12627b={};_0x12627b['enabled']=!![],_0x12627b['blendEquation']=WebGLRenderingContext['FUNC_ADD'],_0x12627b['blendFuncSource']=WebGLRenderingContext[_0x8fba0c(-0x61,0x5)],_0x12627b['blendFuncDestination']=WebGLRenderingContext['ONE_MINUS_SRC_ALPHA'];const _0x18b311={};_0x18b311['viewport']=undefined,_0x18b311['depthTest']=_0xf90ef6,_0x18b311['depthMask']=!![],_0x18b311['blending']=_0x12627b;const _0x3382db=new CustomPrimitive({'commandType':'Draw','attributeLocations':_0x1f7405,'geometry':this['createSegmentsGeometry'](),'primitiveType':PrimitiveType['TRIANGLES'],'uniformMap':{'previousParticlesPosition':()=>this[_0x8fba0c(0xb8,0xa9)][_0x8fba0c(0x75,-0xb)]['previousParticlesPosition'],'currentParticlesPosition':()=>this['computing']['particlesTextures']['currentParticlesPosition'],'postProcessingPosition':()=>this['computing'][_0x30c8bc(0x415,0x3f9)][_0x8fba0c(0x68,-0x17)],'particlesSpeed':()=>this['computing']['particlesTextures'][_0x30c8bc(0x480,0x422)],'frameRateAdjustment':()=>this['computing']['frameRateAdjustment'],'colorTable':()=>this['colorTable'],'domain':()=>{function _0x254f1f(_0xa55532,_0x15d2d9){return _0x30c8bc(_0x15d2d9- -0x1f4,_0xa55532);}function _0x2f8d7c(_0x1672e3,_0x435322){return _0x8fba0c(_0x1672e3,_0x435322-0x590);}var _0x3b48fd,_0x329270;const _0x493b0c=new Cartesian2(((_0x3b48fd=this['options']['domain'])===null||_0x3b48fd===void 0x0?void 0x0:_0x3b48fd[_0x2f8d7c(0x603,0x60a)])??this[_0x2f8d7c(0x6c2,0x639)]['windData'][_0x2f8d7c(0x58b,0x58a)]['min'],((_0x329270=this['options']['domain'])===null||_0x329270===void 0x0?void 0x0:_0x329270['max'])??this[_0x254f1f(0x2dd,0x2d5)][_0x2f8d7c(0x5bc,0x5f4)][_0x254f1f(0x2ae,0x226)]['max']);return _0x493b0c;},'displayRange':()=>{function _0x224905(_0x3bf356,_0x28cf19){return _0x8fba0c(_0x28cf19,_0x3bf356- -0x8e);}var _0x107f91,_0x2f894c;function _0x14ff6e(_0x56c72c,_0x30fc18){return _0x30c8bc(_0x30fc18- -0xc3,_0x56c72c);}const _0x462335=new Cartesian2(((_0x107f91=this['options']['displayRange'])===null||_0x107f91===void 0x0?void 0x0:_0x107f91['min'])??this[_0x14ff6e(0x3f6,0x406)][_0x224905(-0x2a,-0x76)]['speed']['min'],((_0x2f894c=this['options']['displayRange'])===null||_0x2f894c===void 0x0?void 0x0:_0x2f894c['max'])??this[_0x224905(0x1b,0x47)]['windData'][_0x224905(-0x94,-0xac)]['max']);return _0x462335;},'particleHeight':()=>this['options']['particleHeight']||0x0,'aspect':()=>this[_0x8fba0c(0x42,0xb2)]['drawingBufferWidth']/this['context'][_0x8fba0c(0x3,-0x8)],'pixelSize':()=>this['viewerParameters'][_0x8fba0c(0x79,0x9f)],'lineWidth':()=>{function _0x3d5c6e(_0x7f0a94,_0x3aa3c3){return _0x30c8bc(_0x3aa3c3- -0x1be,_0x7f0a94);}const _0x352574={};_0x352574['min']=0x1,_0x352574['max']=0x2;function _0x101cba(_0x10964c,_0x15fad3){return _0x30c8bc(_0x15fad3- -0x185,_0x10964c);}const _0x3b8438=this[_0x101cba(0x273,0x2cc)]['lineWidth']||_0x352574;return new Cartesian2(_0x3b8438[_0x3d5c6e(0x263,0x2dc)],_0x3b8438['max']);},'lineLength':()=>{const _0x16a1ba={};_0x16a1ba[_0x278c53(0x1b0,0x151)]=0x14;function _0x278c53(_0x484443,_0x43d050){return _0x30c8bc(_0x43d050- -0x349,_0x484443);}_0x16a1ba['max']=0x64;const _0x406ad7=this['options']['lineLength']||_0x16a1ba;return new Cartesian2(_0x406ad7['min'],_0x406ad7['max']);},'is3D':()=>this[_0x8fba0c(0xa,0x19)]['sceneMode']===SceneMode[_0x30c8bc(0x424,0x3ae)],'segmentsDepthTexture':()=>this[_0x8fba0c(0x6d,0x83)][_0x30c8bc(0x460,0x3f5)]},'vertexShaderSource':ShaderManager['getSegmentDrawVertexShader'](),'fragmentShaderSource':ShaderManager['getSegmentDrawFragmentShader'](),'rawRenderState':this['createRawRenderState'](_0x18b311)}),_0xa26c75={};return _0xa26c75[_0x8fba0c(0x51,0x27)]=_0x3382db,_0xa26c75;}[_0x1b4f03(-0x5a,-0x8f)](){const _0xa59c27=this[_0x385384(0x522,0x546)]();function _0x157425(_0x16337b,_0xa64db0){return _0x1b4f03(_0xa64db0-0x343,_0x16337b);}this['primitives']['segments']['geometry']=_0xa59c27;const _0x225f6c={};_0x225f6c[_0x385384(0x57a,0x59c)]=this[_0x157425(0x397,0x3a4)],_0x225f6c['geometry']=_0xa59c27;function _0x385384(_0x16b1dd,_0x34d00f){return _0x1b4f03(_0x34d00f-0x53b,_0x16b1dd);}_0x225f6c['attributeLocations']=this[_0x385384(0x559,0x56c)]['segments']['attributeLocations'],_0x225f6c['bufferUsage']=BufferUsage['STATIC_DRAW'];const _0x2a77f6=VertexArray['fromGeometry'](_0x225f6c);this['primitives'][_0x385384(0x4b6,0x511)]['commandToExecute']&&(this[_0x157425(0x3ac,0x374)]['segments'][_0x157425(0x33d,0x3b7)]['vertexArray']=_0x2a77f6);}['onColorTableChange'](){function _0x36eb33(_0x113853,_0x42d809){return _0x3e9da2(_0x42d809,_0x113853-0x15c);}this[_0x250a2b(0x5f5,0x5fe)][_0x36eb33(0x327,0x338)]();function _0x250a2b(_0x5848dd,_0x23fba0){return _0x1b4f03(_0x23fba0-0x5a2,_0x5848dd);}this['colorTable']=this['createColorTableTexture']();}['updateOptions'](_0x30433d){const _0x1ac2b0=_0x30433d['colors']&&JSON['stringify'](_0x30433d[_0xd94b77(0x45e,0x45b)])!==JSON[_0xd94b77(0x397,0x3fb)](this[_0xd94b77(0x3a0,0x3dc)][_0x3ace1d(0x2ac,0x27b)]);this['options']=deepMerge(_0x30433d,this[_0xd94b77(0x3ad,0x3dc)]);function _0xd94b77(_0x49a485,_0x55c24){return _0x1b4f03(_0x55c24-0x3fc,_0x49a485);}function _0x3ace1d(_0xc1a5ee,_0x1b7d77){return _0x3e9da2(_0x1b7d77,_0xc1a5ee-0x3f);}_0x1ac2b0&&this[_0x3ace1d(0x21b,0x235)]();}[_0x3e9da2(0x23c,0x1cb)](){function _0x35e3f4(_0x511c9e,_0xfc06f){return _0x1b4f03(_0xfc06f-0x3d9,_0x511c9e);}Object['values'](this[_0x35e3f4(0x48d,0x47e)])[_0x393ddd(0x74,0xb7)](_0x73ab9f=>{_0x73ab9f['destroy']();});function _0x393ddd(_0x4f7ade,_0x4249f5){return _0x1b4f03(_0x4f7ade-0xa4,_0x4249f5);}Object[_0x35e3f4(0x32d,0x3a3)](this['primitives'])['forEach'](_0x9ff02=>{function _0x26a5e6(_0x5a53ae,_0x1a8da1){return _0x35e3f4(_0x1a8da1,_0x5a53ae- -0x1ca);}_0x9ff02[_0x26a5e6(0x1cc,0x205)]();}),this['colorTable']['destroy']();}}const {ClearCommand,Color,Pass}=mars3d__namespace[_0x1b4f03(-0x6c,-0xf1)];class WindParticleSystem{constructor(_0x229977,_0xe81c54,_0x5799e7,_0x1f253e,_0x4b4164){this[_0x19cce5(0x581,0x533)]=_0x229977,this[_0x19cce5(0x48a,0x4b2)]=_0x5799e7,this[_0x19cce5(0x439,0x49a)]=_0x1f253e;function _0x19cce5(_0x22a9b3,_0x2454f1){return _0x1b4f03(_0x2454f1-0x4d2,_0x22a9b3);}this['computing']=new WindParticlesComputing(_0x229977,_0xe81c54,_0x5799e7,_0x1f253e,_0x4b4164),this['rendering']=new WindParticlesRendering(_0x229977,_0x5799e7,_0x1f253e,this['computing']);function _0xd47cf8(_0x557dc2,_0x132a88){return _0x1b4f03(_0x132a88-0x2b5,_0x557dc2);}this['clearFramebuffers']();}['getPrimitives'](){function _0x5a5ed2(_0x2a5d54,_0x7f2bf0){return _0x3e9da2(_0x2a5d54,_0x7f2bf0-0xb7);}const _0x498987=[this[_0x1b0a2c(0x160,0x1ac)]['primitives'][_0x5a5ed2(0x2ee,0x285)],this['computing'][_0x1b0a2c(0x139,0xe5)][_0x5a5ed2(0x2d6,0x27f)],this['computing'][_0x5a5ed2(0x2fd,0x2f6)]['postProcessingPosition'],this['rendering'][_0x5a5ed2(0x2d6,0x2f6)][_0x1b0a2c(0xde,0xa7)]];function _0x1b0a2c(_0x1c385e,_0x153390){return _0x1b4f03(_0x1c385e-0x108,_0x153390);}return _0x498987;}['clearFramebuffers'](){const _0x4cffbc=new ClearCommand({'color':new Color(0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':undefined,'pass':Pass['OPAQUE']});function _0x89313a(_0x13604f,_0x59323c){return _0x3e9da2(_0x59323c,_0x13604f-0x1a4);}function _0x44e768(_0x1977ef,_0x57b357){return _0x1b4f03(_0x1977ef-0x41f,_0x57b357);}Object['keys'](this[_0x44e768(0x4bd,0x4c5)]['framebuffers'])[_0x89313a(0x382,0x311)](_0x236245=>{_0x4cffbc[_0x5d2d96(0x578,0x541)]=this[_0x34864d(-0x158,-0xec)]['framebuffers'][_0x236245];function _0x34864d(_0x599014,_0x40eefd){return _0x89313a(_0x40eefd- -0x53c,_0x599014);}function _0x5d2d96(_0x236fc0,_0x55bc37){return _0x89313a(_0x55bc37-0x1f2,_0x236fc0);}_0x4cffbc[_0x34864d(-0x95,-0x11c)](this['context']);});}['changeOptions'](_0x2f0ead){let _0x4d38e0=![];_0x2f0ead['particlesTextureSize']&&this['options']['particlesTextureSize']!==_0x2f0ead['particlesTextureSize']&&(_0x4d38e0=!![]);const _0x1622d7=deepMerge(_0x2f0ead,this['options']);if(_0x1622d7[_0x1f11f7(0xbf,0xb7)]<0x1)throw new Error(_0x1f11f7(0x182,0x158));function _0xd4521a(_0x4ecdaf,_0x283a75){return _0x3e9da2(_0x4ecdaf,_0x283a75-0xee);}this[_0x1f11f7(0x144,0xe5)]=_0x1622d7;function _0x1f11f7(_0xeb10e3,_0x476218){return _0x3e9da2(_0xeb10e3,_0x476218- -0x109);}this[_0xd4521a(0x345,0x39a)][_0xd4521a(0x2a9,0x311)](_0x2f0ead),this['computing'][_0x1f11f7(0x179,0x11a)](_0x2f0ead),_0x4d38e0&&(this['computing'][_0xd4521a(0x2f8,0x2a1)](),this[_0xd4521a(0x2f9,0x354)][_0x1f11f7(0x1bd,0x13d)](),this['rendering']['onParticlesTextureSizeChange']());}[_0x3e9da2(0x27b,0x29a)](_0x2307c6){this['viewerParameters']=_0x2307c6,this['computing']['viewerParameters']=_0x2307c6;function _0x420f6d(_0xbad05c,_0x1c9d10){return _0x3e9da2(_0x1c9d10,_0xbad05c-0x1ac);}this['rendering'][_0x420f6d(0x382,0x39d)]=_0x2307c6;}['destroy'](){this['computing']['destroy']();function _0x3919a8(_0x3ca722,_0x4ebe20){return _0x3e9da2(_0x4ebe20,_0x3ca722- -0x220);}function _0x418756(_0x35319a,_0x3ea402){return _0x1b4f03(_0x35319a-0x119,_0x3ea402);}this[_0x418756(0x1b7,0x133)][_0x3919a8(-0x55,-0x86)]();}}const Cesium$1=mars3d__namespace['Cesium'],BaseLayer$1=mars3d__namespace['layer']['BaseLayer'],_0x2b6ca6={};_0x2b6ca6['min']=0x1,_0x2b6ca6[_0x3e9da2(0x209,0x1ad)]=0x2;const _0x38b544={};_0x38b544['min']=0x14,_0x38b544['max']=0x64;const _0x24b20b={};_0x24b20b[_0x1b4f03(-0x4e,-0xc8)]=0x64,_0x24b20b['particleHeight']=0x3e8,_0x24b20b['lineWidth']=_0x2b6ca6,_0x24b20b['lineLength']=_0x38b544,_0x24b20b['speedFactor']=0x1,_0x24b20b[_0x3e9da2(0x1cc,0x21c)]=0.003,_0x24b20b['dropRateBump']=0.001,_0x24b20b['colors']=['rgb(206,255,255)'],_0x24b20b[_0x1b4f03(-0x42,-0x26)]=![],_0x24b20b['dynamic']=!![];const DEF_OPTIONS=_0x24b20b;class WindLayer extends BaseLayer$1{constructor(_0x32b08d={}){_0x32b08d={...DEF_OPTIONS,..._0x32b08d},super(_0x32b08d);function _0x4cfcce(_0x37b486,_0x37a1b9){return _0x3e9da2(_0x37a1b9,_0x37b486-0x231);}this[_0x4cfcce(0x49a,0x460)](_0x32b08d,_0x32b08d);}get['layer'](){function _0x46e5fd(_0x4cc64f,_0x48c1d7){return _0x1b4f03(_0x48c1d7-0x1f8,_0x4cc64f);}return this[_0x46e5fd(0x243,0x229)];}get['data'](){function _0x5da574(_0xaa66c,_0x4e080f){return _0x1b4f03(_0xaa66c-0x551,_0x4e080f);}return this[_0x5da574(0x531,0x591)]['data'];}set['data'](_0x22689a){this['options']['data']=_0x22689a;function _0x5f031d(_0x4041ff,_0x377167){return _0x1b4f03(_0x4041ff-0x168,_0x377167);}this[_0x5f031d(0x142,0xd8)](_0x22689a);}get[_0x1b4f03(0x5f,0x8)](){function _0x4b43e3(_0x41d8ff,_0x315779){return _0x1b4f03(_0x41d8ff-0x1a2,_0x315779);}return this[_0x4b43e3(0x182,0x1df)]['colors'];}set['colors'](_0x309a86){this['options']['colors']=_0x309a86;const _0x36ac9d={};_0x36ac9d['colors']=_0x309a86;function _0x20fe3d(_0x2a495b,_0x2441a1){return _0x1b4f03(_0x2a495b- -0x8d,_0x2441a1);}this['_setOptionsHook'](this[_0x20fe3d(-0xad,-0x55)],_0x36ac9d);}['_mountedHook'](){}[_0x3e9da2(0x2e2,0x290)](){function _0x5d2970(_0x1f571e,_0x4345fd){return _0x3e9da2(_0x1f571e,_0x4345fd- -0x2d3);}this[_0x5d2970(-0x68,-0x73)]=this[_0x418495(0x3fe,0x42d)]['scene'],this['camera']=this[_0x5d2970(-0x89,-0x53)][_0x418495(0x421,0x3df)];this[_0x5d2970(-0xc7,-0xe5)]['data']&&this[_0x5d2970(-0x12b,-0xeb)](this['options']['data']);if(!this['windData'])return;this[_0x5d2970(-0x167,-0xfd)]={'lonRange':new Cesium$1['Cartesian2'](-0xb4,0xb4),'latRange':new Cesium$1['Cartesian2'](-0x5a,0x5a),'pixelSize':0x3e8,'sceneMode':this[_0x418495(0x3de,0x3d1)][_0x5d2970(-0x86,-0x8a)]},this[_0x418495(0x339,0x362)](),this['particleSystem']=new WindParticleSystem(this['scene']['context'],this['windData'],this[_0x5d2970(-0x112,-0xe5)],this['viewerParameters'],this[_0x418495(0x3de,0x44c)]),this[_0x5d2970(-0x89,-0x94)]=this[_0x418495(0x32f,0x39d)][_0x418495(0x38a,0x3b6)](),this['primitives']['forEach'](_0xf595a6=>{function _0x480c8a(_0x38ec1e,_0x2cfc47){return _0x5d2970(_0x38ec1e,_0x2cfc47-0x132);}function _0x1332d6(_0x369567,_0x9052e2){return _0x5d2970(_0x9052e2,_0x369567-0x3b8);}this['scene'][_0x480c8a(0xd7,0x9e)][_0x480c8a(0x8d,0xbc)](_0xf595a6);}),this[_0x5d2970(0x3c,-0x30)]['percentageChanged']=0.01,this['camera']['changed']['addEventListener'](this[_0x418495(0x339,0x35c)]['bind'](this)),this['scene']['morphComplete']['addEventListener'](this['updateViewerParameters'][_0x5d2970(-0x46,-0xb8)](this));function _0x418495(_0x4ac4a4,_0x208ecf){return _0x3e9da2(_0x208ecf,_0x4ac4a4-0x17e);}window['addEventListener'](_0x418495(0x40a,0x47a),this['updateViewerParameters']['bind'](this));}['_removedHook'](){this[_0x56a8bd(0x703,0x68c)]['changed']['removeEventListener'](this['updateViewerParameters'][_0x56a8bd(0x653,0x604)](this)),this[_0x9629c2(0x182,0x11e)]['morphComplete'][_0x9629c2(0x163,0xe5)](this[_0x9629c2(0x1b,0x79)]['bind'](this));function _0x56a8bd(_0x2211e2,_0x2ee9bf){return _0x1b4f03(_0x2ee9bf-0x5f7,_0x2211e2);}window[_0x9629c2(0x7c,0xe5)]('resize',this[_0x56a8bd(0x578,0x5a4)][_0x56a8bd(0x5ff,0x604)](this));this[_0x56a8bd(0x684,0x628)]&&(this['primitives']['forEach'](_0x47140d=>{function _0x2ae9bd(_0x4c9214,_0x5a02f5){return _0x56a8bd(_0x4c9214,_0x5a02f5- -0x6e1);}function _0x44d70e(_0x16489a,_0x2bdf30){return _0x56a8bd(_0x2bdf30,_0x16489a- -0xcf);}this[_0x2ae9bd(-0xec,-0x98)][_0x2ae9bd(-0x57,-0xb9)][_0x44d70e(0x53a,0x595)](_0x47140d);}),delete this[_0x9629c2(0x133,0xfd)]);function _0x9629c2(_0x18b427,_0x1b3bfa){return _0x1b4f03(_0x1b3bfa-0xcc,_0x18b427);}this['particleSystem']&&(this['particleSystem']['destroy'](),delete this['particleSystem']);}['setData'](_0x17c1b9,_0x2dd4d7){function _0x41cd85(_0x3b7202,_0x4bc433){return _0x3e9da2(_0x3b7202,_0x4bc433- -0x24e);}this[_0x25e106(0x460,0x3e8)]=this['processWindData'](_0x17c1b9);if(_0x2dd4d7){this['_removedHook'](),this['_addedHook']();return;}function _0x25e106(_0x2a3392,_0x56927d){return _0x1b4f03(_0x2a3392-0x44d,_0x56927d);}this[_0x41cd85(-0x1a,-0x9d)]?(this[_0x25e106(0x3f0,0x3cf)][_0x25e106(0x4a5,0x435)]['updateWindData'](this['windData']),this['scene'][_0x25e106(0x4aa,0x4ab)]()):this['_addedHook']();}[_0x3e9da2(0x262,0x269)](_0x4423c6,_0x11e550){function _0x212e5c(_0x1d6196,_0x44a314){return _0x3e9da2(_0x44a314,_0x1d6196-0x15f);}function _0x162ccb(_0x3c0f65,_0x405274){return _0x1b4f03(_0x3c0f65-0xf7,_0x405274);}this[_0x162ccb(0x9a,0x53)]&&(this['particleSystem']['changeOptions'](_0x11e550),this['scene'][_0x162ccb(0x154,0x1c9)]());}[_0x3e9da2(0x210,0x230)](_0x258ab5){var _0x2dd799,_0x421dda;function _0x37f6a9(_0x61e315,_0x504c8b){return _0x1b4f03(_0x61e315- -0x187,_0x504c8b);}function _0x167897(_0x32d94e,_0x1d5a77){return _0x3e9da2(_0x1d5a77,_0x32d94e-0x151);}const _0x5923d7={..._0x258ab5},_0xacfc01=_0x5923d7;!_0xacfc01['height']&&_0xacfc01['rows']&&(_0xacfc01['height']=_0xacfc01[_0x167897(0x345,0x31f)]);!_0xacfc01['width']&&_0xacfc01['cols']&&(_0xacfc01[_0x167897(0x361,0x34a)]=_0xacfc01[_0x37f6a9(-0x1dd,-0x1cb)]);!_0xacfc01['bounds']&&(_0xacfc01['bounds']={'west':_0xacfc01[_0x37f6a9(-0x1c8,-0x230)],'south':_0xacfc01[_0x167897(0x389,0x369)],'east':_0xacfc01[_0x167897(0x3f2,0x423)],'north':_0xacfc01[_0x37f6a9(-0x1cb,-0x142)]});if(!_0xacfc01['u']){const _0x9eb308={};_0x9eb308['array']=_0x258ab5['udata'],_0x9eb308[_0x167897(0x388,0x3bc)]=_0x258ab5['umin'],_0x9eb308['max']=_0x258ab5['umax'],_0xacfc01['u']=_0x9eb308;}if(!_0xacfc01['v']){const _0x168aaf={};_0x168aaf['array']=_0x258ab5[_0x167897(0x301,0x2f9)],_0x168aaf['min']=_0x258ab5[_0x167897(0x394,0x319)],_0x168aaf['max']=_0x258ab5[_0x37f6a9(-0x15f,-0xd9)],_0xacfc01['v']=_0x168aaf;}if(((_0x2dd799=_0xacfc01['speed'])===null||_0x2dd799===void 0x0?void 0x0:_0x2dd799[_0x167897(0x388,0x3e4)])===undefined||((_0x421dda=_0xacfc01['speed'])===null||_0x421dda===void 0x0?void 0x0:_0x421dda['max'])===undefined||_0xacfc01[_0x37f6a9(-0x1de,-0x230)][_0x37f6a9(-0x1be,-0x1e8)]===undefined){const _0x130146={'array':new Float32Array(_0xacfc01['u'][_0x37f6a9(-0x1be,-0x241)]['length']),'min':Number['MAX_VALUE'],'max':Number['MIN_VALUE']};for(let _0x400fe9=0x0;_0x400fe9<_0xacfc01['u']['array']['length'];_0x400fe9++){_0x130146['array'][_0x400fe9]=Math[_0x37f6a9(-0x114,-0xf6)](_0xacfc01['u'][_0x167897(0x328,0x2ed)][_0x400fe9]*_0xacfc01['u'][_0x167897(0x328,0x331)][_0x400fe9]+_0xacfc01['v']['array'][_0x400fe9]*_0xacfc01['v']['array'][_0x400fe9]),_0x130146['array'][_0x400fe9]!==0x0&&(_0x130146['min']=Math[_0x37f6a9(-0x15e,-0x1d6)](_0x130146['min'],_0x130146['array'][_0x400fe9]),_0x130146['max']=Math[_0x37f6a9(-0x1e8,-0x262)](_0x130146['max'],_0x130146['array'][_0x400fe9]));}_0xacfc01['speed']=_0x130146;}return _0xacfc01;}['updateViewerParameters'](){var _0x2d61fa;const _0x514246=this['scene'],_0x303daf=_0x514246[_0x476948(0x568,0x5a2)],_0x2fe451={};_0x2fe451['x']=0x0,_0x2fe451['y']=0x0;const _0x1a2517={};_0x1a2517['x']=0x0,_0x1a2517['y']=_0x303daf['clientHeight'];const _0xc87c99={};_0xc87c99['x']=_0x303daf['clientWidth'],_0xc87c99['y']=0x0;const _0x26e35e={};function _0x476948(_0x1f1b1d,_0x5c457b){return _0x3e9da2(_0x1f1b1d,_0x5c457b-0x35e);}_0x26e35e['x']=_0x303daf[_0x476948(0x521,0x586)],_0x26e35e['y']=_0x303daf['clientHeight'];const _0x6807a7=[_0x2fe451,_0x1a2517,_0xc87c99,_0x26e35e];let _0x3e62cc=0xb4,_0x2709ab=-0xb4,_0x1bac23=0x5a,_0x2eac6d=-0x5a,_0x5e6a39=![];for(const _0x2a20b7 of _0x6807a7){const _0x17dd43=_0x514246[_0x476948(0x605,0x601)]['pickEllipsoid'](new Cesium$1[(_0x1ecc44(0x11c,0xe0))](_0x2a20b7['x'],_0x2a20b7['y']),_0x514246[_0x476948(0x571,0x5e9)]['ellipsoid']);if(!_0x17dd43){_0x5e6a39=!![];break;}const _0xa4bdec=_0x514246['globe'][_0x1ecc44(0x1c0,0x1dd)][_0x476948(0x59e,0x60b)](_0x17dd43),_0x238727=Cesium$1[_0x476948(0x4e1,0x55f)]['toDegrees'](_0xa4bdec['longitude']),_0x781104=Cesium$1[_0x1ecc44(0x10f,0x194)]['toDegrees'](_0xa4bdec[_0x476948(0x540,0x55c)]);_0x3e62cc=Math['min'](_0x3e62cc,_0x238727),_0x2709ab=Math['max'](_0x2709ab,_0x238727),_0x1bac23=Math['min'](_0x1bac23,_0x781104),_0x2eac6d=Math[_0x1ecc44(0xbb,0x12f)](_0x2eac6d,_0x781104);}function _0x1ecc44(_0x353f43,_0x274106){return _0x3e9da2(_0x274106,_0x353f43- -0xf2);}if(!_0x5e6a39){const _0x6644ab=new Cesium$1['Cartesian2'](Math['max'](this['windData']['bounds'][_0x1ecc44(0x175,0xf9)],_0x3e62cc),Math['min'](this['windData']['bounds']['east'],_0x2709ab)),_0x17ecff=new Cesium$1[(_0x476948(0x4ef,0x56c))](Math[_0x476948(0x4c2,0x50b)](this['windData']['bounds']['south'],_0x1bac23),Math[_0x476948(0x572,0x595)](this[_0x476948(0x594,0x57f)]['bounds'][_0x1ecc44(0x105,0x182)],_0x2eac6d)),_0x5c8fc8=(_0x6644ab['y']-_0x6644ab['x'])*0.05,_0x1c3873=(_0x17ecff['y']-_0x17ecff['x'])*0.05;_0x6644ab['x']=Math['max'](this['windData'][_0x1ecc44(0x13f,0x172)]['west'],_0x6644ab['x']-_0x5c8fc8),_0x6644ab['y']=Math['min'](this[_0x476948(0x57d,0x57f)]['bounds']['east'],_0x6644ab['y']+_0x5c8fc8),_0x17ecff['x']=Math[_0x476948(0x482,0x50b)](this[_0x476948(0x57e,0x57f)]['bounds']['south'],_0x17ecff['x']-_0x1c3873),_0x17ecff['y']=Math['min'](this['windData'][_0x476948(0x58b,0x58f)]['north'],_0x17ecff['y']+_0x1c3873),this['viewerParameters']['lonRange']=_0x6644ab,this[_0x1ecc44(0xe4,0xce)]['latRange']=_0x17ecff;const _0x4fed2e=this['windData']['bounds']['east']-this['windData'][_0x476948(0x5c7,0x58f)]['west'],_0x26af64=this['windData'][_0x476948(0x540,0x58f)]['north']-this[_0x476948(0x600,0x57f)]['bounds']['south'],_0x3b649c=(_0x6644ab['y']-_0x6644ab['x'])/_0x4fed2e,_0x5c444f=(_0x17ecff['y']-_0x17ecff['x'])/_0x26af64,_0xf0b7ef=Math['min'](_0x3b649c,_0x5c444f),_0x13ee96=0x3e8*_0xf0b7ef;_0x13ee96>0x0&&(this[_0x1ecc44(0xe4,0x149)]['pixelSize']=Math['max'](0x0,Math['min'](0x3e8,_0x13ee96)));}this[_0x476948(0x4ae,0x534)][_0x476948(0x548,0x567)]=this['scene']['mode'],(_0x2d61fa=this[_0x1ecc44(0xbf,0x117)])===null||_0x2d61fa===void 0x0||_0x2d61fa['applyViewerParameters'](this['viewerParameters']);}['getDataAtLonLat'](_0x552caa,_0x84e91a){const {bounds:_0x5c5309,width:_0x53f1ce,height:_0x2350a5,u:_0x58baa5,v:_0x3a3012,speed:_0x2ba68e}=this['windData'],{flipY:_0x99a533}=this['options'];if(_0x552caa<_0x5c5309['west']||_0x552caa>_0x5c5309[_0x20569d(0x1df,0x230)]||_0x84e91a<_0x5c5309['south']||_0x84e91a>_0x5c5309[_0x20569d(0x254,0x260)])return null;const _0x5796ce=(_0x552caa-_0x5c5309['west'])/(_0x5c5309['east']-_0x5c5309[_0x4d8cd7(0x571,0x5a0)])*(_0x53f1ce-0x1);let _0x5ba217=(_0x84e91a-_0x5c5309[_0x20569d(0x272,0x28f)])/(_0x5c5309['north']-_0x5c5309[_0x20569d(0x24c,0x28f)])*(_0x2350a5-0x1);_0x99a533&&(_0x5ba217=_0x2350a5-0x1-_0x5ba217);const _0x4bdb85=Math['floor'](_0x5796ce),_0x262fa2=Math['floor'](_0x5ba217),_0x4798ab=Math['floor'](_0x5796ce),_0x3ec22e=Math[_0x20569d(0x2a4,0x2a0)](_0x4798ab+0x1,_0x53f1ce-0x1),_0x218f45=Math['floor'](_0x5ba217),_0x5511e0=Math['min'](_0x218f45+0x1,_0x2350a5-0x1),_0x512616=_0x5796ce-_0x4798ab,_0x2ba7a0=_0x5ba217-_0x218f45,_0x5d2d14=_0x262fa2*_0x53f1ce+_0x4bdb85,_0x4791d8=_0x218f45*_0x53f1ce+_0x4798ab,_0x3676eb=_0x218f45*_0x53f1ce+_0x3ec22e,_0x90d5a1=_0x5511e0*_0x53f1ce+_0x4798ab,_0x8df2e3=_0x5511e0*_0x53f1ce+_0x3ec22e,_0x12ec59=_0x58baa5[_0x20569d(0x258,0x240)][_0x4791d8],_0x4161e7=_0x58baa5[_0x20569d(0x1ef,0x240)][_0x3676eb],_0x49504a=_0x58baa5['array'][_0x90d5a1],_0x10389a=_0x58baa5[_0x20569d(0x2b3,0x240)][_0x8df2e3],_0xf099dc=(0x1-_0x512616)*(0x1-_0x2ba7a0)*_0x12ec59+_0x512616*(0x1-_0x2ba7a0)*_0x4161e7+(0x1-_0x512616)*_0x2ba7a0*_0x49504a+_0x512616*_0x2ba7a0*_0x10389a,_0x3d8916=_0x3a3012['array'][_0x4791d8];function _0x20569d(_0x5c0cb5,_0x86087f){return _0x1b4f03(_0x86087f-0x277,_0x5c0cb5);}const _0x3b2981=_0x3a3012[_0x20569d(0x1d2,0x240)][_0x3676eb],_0x3fcfa5=_0x3a3012['array'][_0x90d5a1],_0x503359=_0x3a3012['array'][_0x8df2e3],_0x54f8d0=(0x1-_0x512616)*(0x1-_0x2ba7a0)*_0x3d8916+_0x512616*(0x1-_0x2ba7a0)*_0x3b2981+(0x1-_0x512616)*_0x2ba7a0*_0x3fcfa5+_0x512616*_0x2ba7a0*_0x503359,_0x13ece8=Math['sqrt'](_0xf099dc*_0xf099dc+_0x54f8d0*_0x54f8d0),_0x4a0685={};_0x4a0685['u']=_0x58baa5['array'][_0x5d2d14],_0x4a0685['v']=_0x3a3012['array'][_0x5d2d14],_0x4a0685[_0x4d8cd7(0x4c1,0x483)]=_0x2ba68e['array'][_0x5d2d14];const _0x568199={};_0x568199['u']=_0xf099dc,_0x568199['v']=_0x54f8d0,_0x568199['speed']=_0x13ece8;const _0x4fda39={};_0x4fda39['original']=_0x4a0685,_0x4fda39[_0x4d8cd7(0x4b2,0x51f)]=_0x568199;function _0x4d8cd7(_0x4a8af6,_0x125aeb){return _0x3e9da2(_0x125aeb,_0x4a8af6-0x30a);}return _0x4fda39;}}function _0x3e9da2(_0x4d1795,_0x186b27){return _0xac00(_0x186b27- -0x4,_0x4d1795);}mars3d__namespace[_0x1b4f03(0x7c,0xf7)][_0x1b4f03(0x16,0x49)]('wind',WindLayer),mars3d__namespace[_0x1b4f03(-0x14,0x39)]['WindLayer']=WindLayer;class CanvasParticle{constructor(){function _0x362fa4(_0x4f1cc4,_0x21c9e9){return _0x3e9da2(_0x21c9e9,_0x4f1cc4- -0x23d);}this[_0x362fa4(-0x79,-0xe3)]=null,this['lat']=null,this[_0x3609ee(0x409,0x431)]=null,this['tlat']=null,this[_0x3609ee(0x3ed,0x464)]=null;function _0x3609ee(_0x4a8047,_0x23a037){return _0x1b4f03(_0x4a8047-0x3a0,_0x23a037);}this['speed']=null;}['destroy'](){for(const _0x4a048e in this){delete this[_0x4a048e];}}}class CanvasWindField{constructor(_0x2a5ad8){function _0x530b17(_0x4abce2,_0x5abd0a){return _0x1b4f03(_0x4abce2-0x535,_0x5abd0a);}this[_0x530b17(0x5ba,0x5c1)](_0x2a5ad8);}get['speedRate'](){function _0x3ee1c0(_0x50dafb,_0x271f4e){return _0x3e9da2(_0x50dafb,_0x271f4e- -0x1d4);}return this[_0x3ee1c0(0x21,0x73)];}set['speedRate'](_0x7e3965){function _0x5c8c36(_0x301c5d,_0x35b9f9){return _0x1b4f03(_0x301c5d- -0x11a,_0x35b9f9);}this[_0x5c8c36(-0xe1,-0xcd)]=(0x64-(_0x7e3965>0x63?0x63:_0x7e3965))*0x64;function _0x1e2e29(_0x3c9ed0,_0xa96655){return _0x3e9da2(_0xa96655,_0x3c9ed0-0x1ad);}this['_calc_speedRate']=[(this[_0x5c8c36(-0x87,-0xad)]-this[_0x5c8c36(-0x15b,-0x147)])/this['_speedRate'],(this[_0x5c8c36(-0x15e,-0x18c)]-this[_0x5c8c36(-0xf0,-0x10a)])/this[_0x5c8c36(-0xe1,-0xf9)]];}get['maxAge'](){return this['_maxAge'];}set[_0x1b4f03(-0x67,0x9)](_0x3505cf){this['_maxAge']=_0x3505cf;}['setOptions'](_0x3a50b3){this[_0x492b0a(0x7d,0x74)]=_0x3a50b3,this['maxAge']=_0x3a50b3[_0x492b0a(0x2a,0x2d)]||0x78;function _0x492b0a(_0x4f9a10,_0x338b48){return _0x3e9da2(_0x4f9a10,_0x338b48- -0x17a);}this['speedRate']=_0x3a50b3[_0x49319d(-0xe0,-0xed)]||0x32,this[_0x49319d(-0x102,-0xe7)]=[];function _0x49319d(_0x12091c,_0x1b02eb){return _0x3e9da2(_0x1b02eb,_0x12091c- -0x2e4);}const _0x495930=_0x3a50b3['particlesNumber']||0x1000;for(let _0x5c5ebf=0x0;_0x5c5ebf<_0x495930;_0x5c5ebf++){const _0x5d3bce=this['_randomParticle'](new CanvasParticle());this['particles']['push'](_0x5d3bce);}}[_0x1b4f03(0x43,0xc6)](_0x7ec939){this[_0x517070(-0x1bb,-0x177)]=_0x7ec939['rows'];function _0x3091c6(_0x4cad8d,_0x17e019){return _0x1b4f03(_0x4cad8d-0x59a,_0x17e019);}this[_0x517070(-0x12d,-0x1b3)]=_0x7ec939['cols'],this[_0x3091c6(0x559,0x5d1)]=_0x7ec939['xmin'],this['xmax']=_0x7ec939['xmax'],this['ymin']=_0x7ec939[_0x517070(-0x18c,-0x133)],this['ymax']=_0x7ec939['ymax'],this['grid']=[];const _0x294c99=_0x7ec939[_0x517070(-0x63,-0xcf)],_0xf20f47=_0x7ec939[_0x517070(-0x1e2,-0x1bb)];let _0x2de0c9=![];_0x294c99[_0x3091c6(0x577,0x54d)]===this['rows']&&_0x294c99[0x0]['length']===this['cols']&&(_0x2de0c9=!![]);let _0x5c9c81=0x0;function _0x517070(_0x41cf27,_0x26fd3d){return _0x1b4f03(_0x26fd3d- -0x15d,_0x41cf27);}let _0xdc454=null,_0xb02f40=null;for(let _0x54d703=0x0;_0x54d703<this[_0x517070(-0x14c,-0x177)];_0x54d703++){_0xdc454=[];for(let _0x492392=0x0;_0x492392<this['cols'];_0x492392++,_0x5c9c81++){_0x2de0c9?_0xb02f40=this['_calcUV'](_0x294c99[_0x54d703][_0x492392],_0xf20f47[_0x54d703][_0x492392]):_0xb02f40=this[_0x3091c6(0x5d8,0x653)](_0x294c99[_0x5c9c81],_0xf20f47[_0x5c9c81]),_0xdc454[_0x517070(-0xff,-0xde)](_0xb02f40);}this[_0x3091c6(0x55e,0x51c)][_0x517070(-0x146,-0xde)](_0xdc454);}this[_0x517070(-0x174,-0x17d)][_0x517070(-0xdd,-0xc7)]&&this['grid'][_0x517070(-0x1ce,-0x17b)]();}['clear'](){delete this['rows'],delete this['cols'],delete this['xmin'],delete this[_0x2039c5(-0x2,0x5a)],delete this['ymin'],delete this['ymax'],delete this['grid'];function _0x2039c5(_0x6d113d,_0x3e639c){return _0x1b4f03(_0x6d113d- -0x95,_0x3e639c);}delete this['particles'];}['toGridXY'](_0x17232e,_0x456243){function _0x3d4420(_0x4e4c47,_0x5a20e5){return _0x3e9da2(_0x4e4c47,_0x5a20e5-0x2a4);}function _0x42f2e6(_0x29faab,_0x962f81){return _0x3e9da2(_0x29faab,_0x962f81- -0x6a);}const _0xfe0b0f=(_0x17232e-this['xmin'])/(this[_0x3d4420(0x595,0x545)]-this['xmin'])*(this['cols']-0x1),_0x2b63ae=(this[_0x3d4420(0x4b9,0x46e)]-_0x456243)/(this[_0x3d4420(0x4ba,0x46e)]-this['ymin'])*(this[_0x3d4420(0x511,0x498)]-0x1);return[_0xfe0b0f,_0x2b63ae];}['getUVByXY'](_0x52a5b5,_0xabad62){function _0x33916d(_0x1bfeb8,_0x19c322){return _0x1b4f03(_0x1bfeb8-0x90,_0x19c322);}if(_0x52a5b5<0x0||_0x52a5b5>=this['cols']||_0xabad62>=this['rows'])return[0x0,0x0,0x0];const _0x51dbc6=Math['floor'](_0x52a5b5),_0x5c16c2=Math[_0x33916d(0x117,0x8d)](_0xabad62);if(_0x51dbc6===_0x52a5b5&&_0x5c16c2===_0xabad62)return this[_0xb768e3(-0x4f,-0xa7)][_0xabad62][_0x52a5b5];const _0x20a961=_0x51dbc6+0x1,_0x45363b=_0x5c16c2+0x1,_0x196a7a=this['getUVByXY'](_0x51dbc6,_0x5c16c2),_0x2a658f=this['getUVByXY'](_0x20a961,_0x5c16c2),_0x3f19d3=this[_0x33916d(0xb1,0x81)](_0x51dbc6,_0x45363b),_0x488df4=this[_0xb768e3(0xe,0xb)](_0x20a961,_0x45363b);let _0x23a58d=null;try{_0x23a58d=this['_bilinearInterpolation'](_0x52a5b5-_0x51dbc6,_0xabad62-_0x5c16c2,_0x196a7a,_0x2a658f,_0x3f19d3,_0x488df4);}catch(_0x343bc9){console[_0xb768e3(-0x3,0x34)](_0x52a5b5,_0xabad62);}function _0xb768e3(_0x3ffd0d,_0x48b8ae){return _0x1b4f03(_0x3ffd0d- -0x13,_0x48b8ae);}return _0x23a58d;}[_0x3e9da2(0x1f9,0x259)](_0x3ba006,_0x41d1ed,_0x3a779c,_0xf344b,_0x3ee16f,_0x4e5020){const _0x4c15c1=0x1-_0x3ba006,_0xaed071=0x1-_0x41d1ed,_0x59e5e4=_0x4c15c1*_0xaed071,_0x5e18f5=_0x3ba006*_0xaed071,_0x12416d=_0x4c15c1*_0x41d1ed,_0x51bc21=_0x3ba006*_0x41d1ed,_0x3758f0=_0x3a779c[0x0]*_0x59e5e4+_0xf344b[0x0]*_0x5e18f5+_0x3ee16f[0x0]*_0x12416d+_0x4e5020[0x0]*_0x51bc21,_0x2c35d4=_0x3a779c[0x1]*_0x59e5e4+_0xf344b[0x1]*_0x5e18f5+_0x3ee16f[0x1]*_0x12416d+_0x4e5020[0x1]*_0x51bc21;function _0x4f03ef(_0x2ead8e,_0x210511){return _0x3e9da2(_0x210511,_0x2ead8e- -0xdd);}return this[_0x4f03ef(0x16f,0x1c0)](_0x3758f0,_0x2c35d4);}['_calcUV'](_0x47a67a,_0x59cb11){function _0x4f69ab(_0x4f7c03,_0x13f862){return _0x3e9da2(_0x13f862,_0x4f7c03-0x27b);}return[+_0x47a67a,+_0x59cb11,Math[_0x4f69ab(0x4fc,0x551)](_0x47a67a*_0x47a67a+_0x59cb11*_0x59cb11)];}[_0x3e9da2(0x191,0x1db)](_0xe6d6ea,_0x94056d){if(!this[_0xb9f08a(0x48f,0x4ce)](_0xe6d6ea,_0x94056d))return null;function _0x226f66(_0x481efb,_0x52c7f2){return _0x1b4f03(_0x52c7f2-0x3d0,_0x481efb);}const _0x1c594e=this['toGridXY'](_0xe6d6ea,_0x94056d),_0x3238c3=this[_0x226f66(0x3ba,0x3f1)](_0x1c594e[0x0],_0x1c594e[0x1]);function _0xb9f08a(_0x1b37ed,_0x436e91){return _0x3e9da2(_0x1b37ed,_0x436e91-0x30f);}return _0x3238c3;}['isInExtent'](_0xce5884,_0x22d39e){function _0xc97d40(_0x463738,_0x64706d){return _0x1b4f03(_0x463738-0xae,_0x64706d);}return _0xce5884>=this['xmin']&&_0xce5884<=this['xmax']&&_0x22d39e>=this['ymin']&&_0x22d39e<=this[_0xc97d40(0x6a,0x77)]?!![]:![];}['getRandomLatLng'](){const _0x5d8d92=fRandomByfloat(this['xmin'],this['xmax']),_0x18b00f=fRandomByfloat(this['ymin'],this['ymax']),_0x58465a={};function _0xde50ec(_0x334db2,_0xcf5d0d){return _0x3e9da2(_0x334db2,_0xcf5d0d- -0x2dc);}_0x58465a[_0x461afa(0x4c7,0x530)]=_0x18b00f;function _0x461afa(_0x21646d,_0x469a47){return _0x1b4f03(_0x21646d-0x487,_0x469a47);}return _0x58465a[_0x461afa(0x43d,0x48e)]=_0x5d8d92,_0x58465a;}['getParticles'](){function _0x3d1433(_0x42a74f,_0x896c3d){return _0x1b4f03(_0x896c3d-0x5cc,_0x42a74f);}let _0x523877,_0x42adf9,_0x3a0160;function _0x3baa03(_0x53e468,_0x1f1b14){return _0x1b4f03(_0x1f1b14-0x205,_0x53e468);}for(let _0x6f6535=0x0,_0x575ad7=this['particles']['length'];_0x6f6535<_0x575ad7;_0x6f6535++){let _0x3c869f=this[_0x3d1433(0x605,0x5a0)][_0x6f6535];_0x3c869f['age']<=0x0&&(_0x3c869f=this['_randomParticle'](_0x3c869f));if(_0x3c869f['age']>0x0){const _0x4f20af=_0x3c869f[_0x3d1433(0x676,0x635)],_0xbe28c=_0x3c869f[_0x3baa03(0x2b8,0x27b)];_0x3a0160=this[_0x3baa03(0x165,0x1d2)](_0x4f20af,_0xbe28c),_0x3a0160?(_0x523877=_0x4f20af+this[_0x3d1433(0x514,0x598)][0x0]*_0x3a0160[0x0],_0x42adf9=_0xbe28c+this['_calc_speedRate'][0x1]*_0x3a0160[0x1],_0x3c869f['lng']=_0x4f20af,_0x3c869f[_0x3baa03(0x1ed,0x245)]=_0xbe28c,_0x3c869f[_0x3d1433(0x5da,0x635)]=_0x523877,_0x3c869f['tlat']=_0x42adf9,_0x3c869f['speed']=_0x3a0160[0x2],_0x3c869f[_0x3baa03(0x254,0x252)]--):_0x3c869f[_0x3baa03(0x206,0x252)]=0x0;}}return this['particles'];}['_randomParticle'](_0x1f425){let _0x5898f5,_0x43aef9;for(let _0x22dc77=0x0;_0x22dc77<0x1e;_0x22dc77++){_0x5898f5=this[_0x1c2312(0x1d8,0x1b5)](),_0x43aef9=this['getUVByPoint'](_0x5898f5['lng'],_0x5898f5[_0x287b02(-0x10,0x38)]);if(_0x43aef9&&_0x43aef9[0x2]>0x0)break;}if(!_0x43aef9)return _0x1f425;function _0x287b02(_0x17a6d1,_0x1c49cf){return _0x3e9da2(_0x17a6d1,_0x1c49cf- -0x216);}const _0x1255da=_0x5898f5['lng']+this['_calc_speedRate'][0x0]*_0x43aef9[0x0],_0x3eba85=_0x5898f5['lat']+this['_calc_speedRate'][0x1]*_0x43aef9[0x1];_0x1f425['lng']=_0x5898f5[_0x287b02(-0x6,-0x52)],_0x1f425[_0x287b02(0x9b,0x38)]=_0x5898f5[_0x287b02(0x78,0x38)],_0x1f425['tlng']=_0x1255da,_0x1f425[_0x1c2312(0x1e3,0x205)]=_0x3eba85,_0x1f425['age']=Math['round'](0xa+Math[_0x287b02(0x52,0x98)]()*this[_0x1c2312(0x106,0xfe)]),_0x1f425[_0x1c2312(0x116,0x143)]=_0x43aef9[0x2];function _0x1c2312(_0x4418dd,_0x529cd9){return _0x3e9da2(_0x529cd9,_0x4418dd- -0xa1);}return _0x1f425;}['destroy'](){for(const _0x47c676 in this){delete this[_0x47c676];}}}function fRandomByfloat(_0x277957,_0x322fa6){function _0xc65275(_0x2da810,_0x407c54){return _0x1b4f03(_0x2da810-0x30a,_0x407c54);}return _0x277957+Math[_0xc65275(0x3aa,0x351)]()*(_0x322fa6-_0x277957);}const Cesium=mars3d__namespace['Cesium'],BaseLayer=mars3d__namespace[_0x1b4f03(-0x14,-0x89)][_0x1b4f03(0x8f,0x94)];class CanvasWindLayer extends BaseLayer{constructor(_0x54cb0a={}){function _0x3c1021(_0x3d7ff2,_0xeebed9){return _0x3e9da2(_0xeebed9,_0x3d7ff2-0x29);}super(_0x54cb0a),this[_0x3c1021(0x292,0x292)](_0x54cb0a),this['canvas']=null;function _0x1cd2c0(_0x2e5bb3,_0x1db0c2){return _0x1b4f03(_0x2e5bb3-0x1ab,_0x1db0c2);}_0x54cb0a[_0x3c1021(0x296,0x2f4)]&&_0x54cb0a['steps']&&(this['_colorRamp']=new mars3d__namespace['ColorRamp'](_0x54cb0a));}['_setOptionsHook'](_0x45839f,_0x267c2c){this['frameTime']=0x3e8/(_0x45839f[_0x539add(-0x88,-0x57)]||0xa);function _0x36266b(_0xe42c16,_0x457083){return _0x3e9da2(_0x457083,_0xe42c16- -0x392);}this[_0x36266b(-0x187,-0x1b2)]=this[_0x36266b(-0x1a4,-0x1d5)]['pointerEvents']??![],this[_0x36266b(-0x19c,-0x21f)]=_0x45839f['color']||_0x539add(-0x9a,-0xd5);function _0x539add(_0x27469b,_0x542ae4){return _0x1b4f03(_0x542ae4- -0xbf,_0x27469b);}this[_0x539add(-0x102,-0x9a)]=_0x45839f['lineWidth']||0x1,this['fixedHeight']=_0x45839f['fixedHeight']??0x0,this['reverseY']=_0x45839f['reverseY']??![],this[_0x539add(-0xf5,-0xd1)]&&this[_0x539add(-0x8e,-0xd1)][_0x36266b(-0xff,-0xab)](_0x45839f);}get['layer'](){function _0x391202(_0x3b937b,_0x414334){return _0x1b4f03(_0x3b937b- -0xb4,_0x414334);}return this[_0x391202(-0x7e,-0x2c)];}get['canvasWidth'](){return this['_map']['scene']['canvas']['clientWidth'];}get['canvasHeight'](){return this['_map']['scene']['canvas']['clientHeight'];}get[_0x1b4f03(0x26,0xac)](){function _0x4616bd(_0x141748,_0x2c5307){return _0x3e9da2(_0x2c5307,_0x141748- -0x398);}return this[_0x4616bd(-0x18d,-0x1ea)];}set['pointerEvents'](_0x5f57bb){function _0x1207c8(_0x473322,_0x56503f){return _0x3e9da2(_0x473322,_0x56503f- -0x212);}this['_pointerEvents']=_0x5f57bb;if(!this['canvas'])return;function _0x16962a(_0x3f1c93,_0x38a724){return _0x3e9da2(_0x38a724,_0x3f1c93- -0x22d);}_0x5f57bb?this[_0x16962a(0x17,0x4a)]['style']['pointer-events']=_0x1207c8(0x49,0x3):this['canvas']['style']['pointer-events']=_0x16962a(-0x83,-0x79);}get[_0x3e9da2(0x1fc,0x1d1)](){return this['options']['particlesNumber'];}set['particlesNumber'](_0x391f58){this[_0x47770e(0x224,0x2a8)][_0x270ab5(0x189,0x113)]=_0x391f58;function _0x270ab5(_0x44acd6,_0x11a0aa){return _0x1b4f03(_0x44acd6-0x1c6,_0x11a0aa);}function _0x47770e(_0x387c0c,_0x3bf458){return _0x1b4f03(_0x387c0c-0x244,_0x3bf458);}clearTimeout(this['_canrefresh']),this[_0x47770e(0x1d9,0x1ff)]=setTimeout(()=>{this['redraw']();},0x1f4);}get[_0x3e9da2(0x27a,0x204)](){return this['options']['speedRate'];}set['speedRate'](_0x145e89){this['options']['speedRate']=_0x145e89;function _0x4ec0da(_0x5a0e8b,_0x1973e){return _0x3e9da2(_0x5a0e8b,_0x1973e-0x238);}this['windField']&&(this[_0x4ec0da(0x3fb,0x434)]['speedRate']=_0x145e89);}get[_0x1b4f03(-0x67,-0x67)](){function _0x27b045(_0x357f1d,_0xcbc24){return _0x1b4f03(_0x357f1d-0x1df,_0xcbc24);}function _0x397a53(_0x1096fb,_0x52979b){return _0x3e9da2(_0x52979b,_0x1096fb- -0x1d2);}return this[_0x397a53(0x1c,-0x7)][_0x27b045(0x178,0x1c0)];}set['maxAge'](_0x4c20f3){function _0x4799eb(_0x7a5b22,_0x365d95){return _0x3e9da2(_0x365d95,_0x7a5b22-0x2b);}this['options']['maxAge']=_0x4c20f3;function _0x2f7a45(_0x1941c7,_0x475507){return _0x3e9da2(_0x475507,_0x1941c7- -0x71);}this['windField']&&(this[_0x2f7a45(0x18b,0x152)][_0x2f7a45(0x136,0x16d)]=_0x4c20f3);}get[_0x1b4f03(0x63,0x9a)](){return this['windData'];}set['data'](_0x3c1c0d){this['setData'](_0x3c1c0d);}get['rectangle'](){function _0x3c02e3(_0x5dd652,_0x4a294e){return _0x1b4f03(_0x5dd652-0xa2,_0x4a294e);}let _0x42ea15=this[_0x5a1be9(0x3d7,0x413)][_0x5a1be9(0x33a,0x3bf)],_0x59dd4b=this['windData']['xmax'];function _0x5a1be9(_0x448c21,_0x2129f6){return _0x3e9da2(_0x448c21,_0x2129f6-0x1f2);}let _0x1cd640=this[_0x5a1be9(0x470,0x413)][_0x5a1be9(0x3a6,0x42a)],_0x3ef369=this[_0x3c02e3(0xb5,0xc9)]['ymax'];return _0x59dd4b>=0x167&&_0x42ea15===0x0&&(_0x42ea15=-0xb4,_0x59dd4b=0xb4),_0x42ea15=Math[_0x5a1be9(0x41d,0x39f)](_0x42ea15,-0xb4),_0x59dd4b=Math['min'](_0x59dd4b,0xb4),_0x1cd640=Math['max'](_0x1cd640,-0x5a),_0x3ef369=Math[_0x3c02e3(0xcb,0x108)](_0x3ef369,0x5a),Cesium['Rectangle']['fromDegrees'](_0x42ea15,_0x1cd640,_0x59dd4b,_0x3ef369);}['_showHook'](_0x454d29){function _0x139b9e(_0x133b96,_0x486a32){return _0x3e9da2(_0x486a32,_0x133b96- -0x327);}function _0x5e78fd(_0x56fcf3,_0x166065){return _0x1b4f03(_0x56fcf3-0x373,_0x166065);}_0x454d29?this['_addedHook']():(this[_0x139b9e(-0x106,-0x184)]&&(this[_0x139b9e(-0x139,-0x14b)]['data']=this['windData']),this['_removedHook']());}['_mountedHook'](){function _0x496ba0(_0x1daae1,_0x12a455){return _0x1b4f03(_0x12a455- -0x2,_0x1daae1);}function _0x16062c(_0x322b47,_0x127a6b){return _0x3e9da2(_0x322b47,_0x127a6b-0x1e5);}this[_0x496ba0(0x5d,-0x22)][_0x496ba0(0x7c,0x90)]?this[_0x16062c(0x38c,0x3ed)]():this['windField']=new CanvasWindField(this['options']);}['_addedHook'](){this[_0x3ffc52(0x12,0x6e)]=this['_createCanvas']();const _0x5a3c85={};_0x5a3c85[_0x3ffc52(-0x4b,0x26)]=!![],this[_0x3ffc52(-0x2c,-0x9f)]=this['canvas']['getContext']('2d',_0x5a3c85);function _0x3ffc52(_0x1cd59e,_0x4d5e09){return _0x3e9da2(_0x4d5e09,_0x1cd59e- -0x232);}this['bindEvent']();function _0x2fb5fd(_0x1c7416,_0x26a877){return _0x1b4f03(_0x1c7416-0x144,_0x26a877);}this[_0x2fb5fd(0x124,0x170)]['data']&&this[_0x2fb5fd(0x11e,0x172)](this['options']['data']);}['_removedHook'](){this['clear'](),this[_0x298918(0x186,0x1b8)]();function _0x4b6332(_0x593c37,_0xc8836c){return _0x3e9da2(_0x593c37,_0xc8836c-0x28);}function _0x298918(_0x1787ed,_0x4c1fd1){return _0x3e9da2(_0x1787ed,_0x4c1fd1- -0x57);}this[_0x298918(0x1b9,0x1ed)]&&(this['_map'][_0x4b6332(0x299,0x227)][_0x4b6332(0x219,0x207)](this[_0x4b6332(0x24b,0x26c)]),delete this[_0x4b6332(0x2b1,0x26c)]);}['_createCanvas'](){const _0x43541c=mars3d__namespace['DomUtil'][_0x4fa92f(0x516,0x538)](_0x5ea73b(-0xf9,-0xc7),'mars3d-canvasWind',this['_map'][_0x5ea73b(-0x13e,-0xb8)]);_0x43541c[_0x4fa92f(0x4d0,0x492)]['position']='absolute',_0x43541c[_0x5ea73b(-0x17f,-0x1e2)]['top']='0px',_0x43541c[_0x4fa92f(0x43d,0x492)][_0x4fa92f(0x4a7,0x50d)]='0px',_0x43541c['style'][_0x4fa92f(0x512,0x4e4)]=this[_0x4fa92f(0x59d,0x554)]['scene']['canvas']['clientWidth']+'px';function _0x4fa92f(_0x284d87,_0x5d157a){return _0x1b4f03(_0x5d157a-0x4e2,_0x284d87);}_0x43541c[_0x5ea73b(-0x17f,-0x1a5)]['height']=this['_map'][_0x5ea73b(-0xdd,-0x156)]['canvas']['clientHeight']+'px',_0x43541c['style']['pointerEvents']=this[_0x4fa92f(0x4c9,0x4df)]?'auto':_0x4fa92f(0x48c,0x47e),_0x43541c['style'][_0x4fa92f(0x546,0x52a)]=this['options'][_0x5ea73b(-0xe7,-0x145)]??0x9,_0x43541c[_0x5ea73b(-0x12d,-0x1b7)]=this['_map']['scene']['canvas']['clientWidth'];function _0x5ea73b(_0x42823e,_0x2c60e9){return _0x3e9da2(_0x2c60e9,_0x42823e- -0x33d);}return _0x43541c['height']=this[_0x5ea73b(-0xbd,-0xdf)][_0x5ea73b(-0xdd,-0x111)]['canvas']['clientHeight'],_0x43541c;}['resize'](){function _0x28dd33(_0x4c3bc0,_0x1bf334){return _0x1b4f03(_0x4c3bc0-0x11a,_0x1bf334);}function _0x1855fa(_0x11d60f,_0x4b7e57){return _0x1b4f03(_0x4b7e57- -0x145,_0x11d60f);}this['canvas']&&(this['canvas'][_0x1855fa(-0x201,-0x195)]['width']=this['_map']['scene']['canvas']['clientWidth']+'px',this['canvas']['style']['height']=this['_map'][_0x28dd33(0x16c,0x122)]['canvas']['clientHeight']+'px',this[_0x28dd33(0x150,0x178)]['width']=this['_map']['scene']['canvas']['clientWidth'],this['canvas'][_0x28dd33(0x126,0xa8)]=this[_0x1855fa(-0xee,-0xd3)][_0x1855fa(-0x10e,-0xf3)]['canvas']['clientHeight']);}[_0x3e9da2(0x25d,0x268)](){function _0x153a13(_0x1243af,_0x52af6e){return _0x3e9da2(_0x52af6e,_0x1243af-0x1e6);}const _0x1a8ed4=this;let _0x3b2db0=Date[_0x153a13(0x3f7,0x430)]();function _0x23d54e(_0xa08383,_0x4a5d56){return _0x3e9da2(_0xa08383,_0x4a5d56-0x2a8);}(function _0x28abd4(){if(_0x1a8ed4[_0x4a6fc8(0x2da,0x312)])return;_0x1a8ed4['_animateFrame']=window[_0x4b15be(0x514,0x584)](_0x28abd4);function _0x4b15be(_0x327c16,_0x58f279){return _0x153a13(_0x58f279-0x14c,_0x327c16);}function _0x4a6fc8(_0x21f0be,_0x204f46){return _0x153a13(_0x21f0be- -0x148,_0x204f46);}if(_0x1a8ed4['show']&&_0x1a8ed4[_0x4a6fc8(0x29a,0x2ad)]){const _0x47b281=Date['now'](),_0x24492e=_0x47b281-_0x3b2db0;_0x24492e>_0x1a8ed4[_0x4b15be(0x5a6,0x597)]&&(_0x3b2db0=_0x47b281-_0x24492e%_0x1a8ed4[_0x4b15be(0x527,0x597)],_0x1a8ed4['update']());}}(),window['addEventListener'](_0x153a13(0x472,0x496),this['resize'][_0x23d54e(0x490,0x4c3)](this),![]),this['mouse_down']=![],this[_0x153a13(0x43e,0x44a)]=![],this['options']['mouseHidden']&&(this['_map']['on'](mars3d__namespace['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x153a13(0x466,0x458)]['on'](mars3d__namespace['EventType'][_0x23d54e(0x52f,0x51d)],this['_onMouseDownEvent'],this),this[_0x23d54e(0x527,0x528)]['on'](mars3d__namespace['EventType']['mouseUp'],this['_onMouseUpEvent'],this)));}[_0x1b4f03(0x1,0x1f)](){function _0x34ebf8(_0x2e00ea,_0x4c8e02){return _0x3e9da2(_0x2e00ea,_0x4c8e02-0x2fc);}window[_0x2711bd(0xf5,0xf8)](this[_0x2711bd(0x163,0xfe)]),delete this['_animateFrame'],window['removeEventListener']('resize',this[_0x2711bd(0x16a,0xf7)]);function _0x2711bd(_0x3a7860,_0x3a63da){return _0x1b4f03(_0x3a7860-0xec,_0x3a63da);}this['options']['mouseHidden']&&(this[_0x2711bd(0x15e,0xf7)]['off'](mars3d__namespace['EventType'][_0x2711bd(0x10b,0x110)],this[_0x34ebf8(0x473,0x4ee)],this),this[_0x2711bd(0x15e,0x193)]['off'](mars3d__namespace[_0x2711bd(0xbf,0x11a)]['mouseDown'],this[_0x2711bd(0xe3,0x16b)],this),this['_map'][_0x2711bd(0xe5,0xd3)](mars3d__namespace['EventType']['mouseUp'],this[_0x2711bd(0x8a,0xf1)],this),this['_map']['off'](mars3d__namespace['EventType']['mouseMove'],this[_0x34ebf8(0x54d,0x4d5)],this));}[_0x3e9da2(0x16c,0x1f2)](_0xed2b23){clearTimeout(this[_0x273143(0x555,0x591)]);if(!this['show']||!this['canvas'])return;function _0x273143(_0x45d946,_0x2e5abf){return _0x1b4f03(_0x45d946-0x4da,_0x2e5abf);}this['canvas']['style'][_0x273143(0x4e2,0x559)]='hidden';function _0x39b84d(_0x1e7221,_0x2365d1){return _0x3e9da2(_0x2365d1,_0x1e7221-0x245);}this['refreshTimer']=setTimeout(()=>{function _0x3c5e0f(_0x4654c8,_0x1997bf){return _0x273143(_0x4654c8- -0x3a9,_0x1997bf);}if(!this[_0x3c5e0f(0x155,0x1d9)])return;function _0x1e09fa(_0x1b5053,_0x2cb51e){return _0x39b84d(_0x2cb51e- -0x46d,_0x1b5053);}this[_0x1e09fa(-0xe8,-0x83)](),this['canvas']['style'][_0x1e09fa(-0x7d,-0x12)]='visible';},0xc8);}['_onMouseDownEvent'](_0x3ee32f){this[_0x291ab8(0x376,0x2f5)]=!![];function _0x291ab8(_0x504afe,_0xcd7d54){return _0x3e9da2(_0x504afe,_0xcd7d54-0x4d);}this[_0x291ab8(0x301,0x2cd)]['off'](mars3d__namespace['EventType']['mouseMove'],this['_onMouseMoveEvent'],this);function _0x8aa210(_0x4030c7,_0x4d8350){return _0x3e9da2(_0x4d8350,_0x4030c7- -0x2dc);}this['_map']['on'](mars3d__namespace[_0x8aa210(-0xfb,-0x75)]['mouseMove'],this['_onMouseMoveEvent'],this);}['_onMouseMoveEvent'](_0x53f3ae){function _0x2c87ef(_0x527c6c,_0x3d7b05){return _0x3e9da2(_0x527c6c,_0x3d7b05-0x1d6);}if(!this['show']||!this[_0x2c87ef(0x3ec,0x41a)])return;function _0x314c42(_0x5da886,_0x359511){return _0x1b4f03(_0x359511- -0xa0,_0x5da886);}this['mouse_down']&&(this['canvas'][_0x2c87ef(0x334,0x394)]['visibility']='hidden',this[_0x2c87ef(0x3ea,0x42e)]=!![]);}['_onMouseUpEvent'](_0x2e9a20){if(!this[_0x2276e0(-0x12c,-0x175)]||!this['canvas'])return;this['_map']['off'](mars3d__namespace[_0x2dfe0(-0x115,-0xaa)]['mouseMove'],this['_onMouseMoveEvent'],this);this[_0x2dfe0(0x77,0x1d)]&&this[_0x2276e0(-0x166,-0x14f)]&&this['redraw']();function _0x2276e0(_0x2c6b7d,_0x50b89a){return _0x3e9da2(_0x2c6b7d,_0x50b89a- -0x3a7);}function _0x2dfe0(_0x311ff2,_0x46d5fd){return _0x3e9da2(_0x311ff2,_0x46d5fd- -0x28b);}this[_0x2dfe0(0xb,-0x47)][_0x2dfe0(-0x55,-0xcd)]['visibility']=_0x2dfe0(0xa7,0x20),this[_0x2276e0(-0xe0,-0xff)]=![],this['mouse_move']=![];}['setData'](_0x955540){this['clear'](),this[_0x51151e(0x4be,0x4ac)]=_0x955540;function _0x426ce3(_0x1dfab4,_0x1ab29b){return _0x3e9da2(_0x1dfab4,_0x1ab29b-0x2bf);}function _0x51151e(_0x1de9d7,_0x887ee){return _0x1b4f03(_0x887ee-0x499,_0x1de9d7);}this[_0x426ce3(0x516,0x4bb)]['setDate'](_0x955540),this['redraw']();}[_0x3e9da2(0x1ab,0x1a5)](){if(!this['show'])return;this[_0x43520f(-0x17f,-0x177)]['setOptions'](this['options']);function _0x5d2fa4(_0x503b44,_0x250c9b){return _0x3e9da2(_0x250c9b,_0x503b44- -0x2c2);}function _0x43520f(_0x34e85c,_0x1cbf8a){return _0x3e9da2(_0x34e85c,_0x1cbf8a- -0x373);}this[_0x5d2fa4(-0x3a,-0x7d)]();}[_0x1b4f03(0x7a,0x23)](){function _0x399d6f(_0x57f2c8,_0x4fba86){return _0x1b4f03(_0x57f2c8- -0xda,_0x4fba86);}if(this['_updateIng'])return;this['_updateIng']=!![];if(this[_0x4008ef(0x2db,0x31d)])this['windField']['update']();else{const _0x19be05=this[_0x4008ef(0x277,0x279)]['getParticles']();this['_drawLines'](_0x19be05);}function _0x4008ef(_0x387cda,_0x282004){return _0x3e9da2(_0x387cda,_0x282004-0x7d);}this[_0x4008ef(0x2d0,0x26a)]=![];}[_0x1b4f03(0x8a,0x68)](_0x3808d5){function _0x1850ce(_0x141593,_0x54d800){return _0x1b4f03(_0x54d800- -0x14e,_0x141593);}this['_canvasParticles']=_0x3808d5,this['canvasContext'][_0x1b7961(0x29,-0x1b)]='destination-in';function _0x1b7961(_0x462858,_0x437ee3){return _0x1b4f03(_0x462858-0x35,_0x437ee3);}this['canvasContext']['fillRect'](0x0,0x0,this[_0x1850ce(-0x1be,-0x1a2)],this['canvasHeight']),this[_0x1850ce(-0xd5,-0x156)]['globalCompositeOperation']='lighter',this['canvasContext'][_0x1b7961(0xcc,0xec)]=0.9;const _0x4ec449=this[_0x1850ce(-0xe8,-0xdc)]['scene']['mode']!==Cesium[_0x1850ce(-0x1f4,-0x1ae)]['SCENE3D'],_0x180c85=this[_0x1850ce(-0x17e,-0x1a2)]*0.25;if(this['_colorRamp'])for(let _0x134199=0x0,_0x4dd496=_0x3808d5['length'];_0x134199<_0x4dd496;_0x134199++){const _0xf74cf3=_0x3808d5[_0x134199],_0x58a153=this['_tomap'](_0xf74cf3,_0xf74cf3['lng'],_0xf74cf3[_0x1850ce(-0xb2,-0x10e)],_0xf74cf3['alt']),_0xd294cc=this['_tomap'](_0xf74cf3,_0xf74cf3['tlng'],_0xf74cf3['tlat'],_0xf74cf3['talt']);if(!_0x58a153||!_0xd294cc)continue;if(_0x4ec449&&Math['abs'](_0x58a153[0x0]-_0xd294cc[0x0])>=_0x180c85)continue;this['canvasContext']['beginPath'](),this[_0x1b7961(0x2d,0x35)]['lineWidth']=this[_0x1850ce(-0x178,-0x129)],this[_0x1b7961(0x2d,0x5f)][_0x1b7961(0x52,-0x25)]=this[_0x1b7961(-0x10,-0x18)]['getColor'](_0xf74cf3[_0x1b7961(-0x22,-0xb)]),this['canvasContext'][_0x1850ce(-0x1f3,-0x1b3)](_0x58a153[0x0],_0x58a153[0x1]),this[_0x1b7961(0x2d,-0x17)]['lineTo'](_0xd294cc[0x0],_0xd294cc[0x1]),this[_0x1850ce(-0x105,-0x156)][_0x1850ce(-0xf6,-0xe8)]();}else{this[_0x1b7961(0x2d,0x32)]['beginPath'](),this['canvasContext'][_0x1b7961(0x5a,0x4e)]=this['lineWidth'],this['canvasContext']['strokeStyle']=this[_0x1b7961(0x1d,-0x16)];for(let _0x30642f=0x0,_0xdba5bf=_0x3808d5['length'];_0x30642f<_0xdba5bf;_0x30642f++){const _0x3e3c06=_0x3808d5[_0x30642f],_0x19aad3=this['_tomap'](_0x3e3c06,_0x3e3c06['lng'],_0x3e3c06['lat'],_0x3e3c06['alt']),_0x163d2f=this['_tomap'](_0x3e3c06,_0x3e3c06['tlng'],_0x3e3c06[_0x1850ce(-0x14d,-0xd8)],_0x3e3c06['talt']);if(!_0x19aad3||!_0x163d2f)continue;if(_0x4ec449&&Math['abs'](_0x19aad3[0x0]-_0x163d2f[0x0])>=_0x180c85)continue;this['canvasContext']['moveTo'](_0x19aad3[0x0],_0x19aad3[0x1]),this['canvasContext'][_0x1b7961(-0x9,-0x55)](_0x163d2f[0x0],_0x163d2f[0x1]);}this['canvasContext'][_0x1850ce(-0xd1,-0xe8)]();}}['_tomap'](_0x37f2f6,_0x22eedd,_0x186616,_0x55910f){const _0x123bf6=Cesium['Cartesian3']['fromDegrees'](_0x22eedd,_0x186616,_0x55910f??this[_0x346f75(0x1ba,0x186)]);function _0x346f75(_0x42c63e,_0x5110da){return _0x1b4f03(_0x42c63e-0x1f3,_0x5110da);}const _0x4dd4f5=this['_map']['scene'];if(_0x4dd4f5['mode']===Cesium[_0x346f75(0x193,0x1e8)]['SCENE3D']){const _0x5b3eb3=new Cesium[(_0x346f75(0x1a1,0x14d))](_0x4dd4f5['globe']['ellipsoid'],_0x4dd4f5['camera'][_0x362f9c(0x1fa,0x17c)]),_0x49a746=_0x5b3eb3['isPointVisible'](_0x123bf6);if(!_0x49a746)return _0x37f2f6['age']=0x0,null;}function _0x362f9c(_0x4eddf1,_0x241eac){return _0x3e9da2(_0x4eddf1,_0x241eac- -0xbe);}const _0x44434d=mars3d__namespace['PointTrans']['toWindowCoordinates'](this[_0x362f9c(0x1cb,0x1c2)]['scene'],_0x123bf6);return _0x44434d?[_0x44434d['x'],_0x44434d['y']]:null;}['clear'](){this[_0x32faaf(0x56f,0x560)]['clear']();function _0x30bb5a(_0x5db37b,_0x2fe6f0){return _0x1b4f03(_0x5db37b-0x50,_0x2fe6f0);}function _0x32faaf(_0x2df537,_0x3abe20){return _0x1b4f03(_0x2df537-0x581,_0x3abe20);}delete this[_0x30bb5a(0x63,0xc0)];}[_0x1b4f03(-0x6,-0x72)](){this[_0x5362ce(0x469,0x46b)]=new Worker(this['options']['worker']);function _0x13ea9b(_0x3c361f,_0x19849d){return _0x1b4f03(_0x19849d-0x107,_0x3c361f);}function _0x5362ce(_0x4ba813,_0x18759f){return _0x3e9da2(_0x4ba813,_0x18759f-0x1cb);}this[_0x5362ce(0x3fc,0x46b)][_0x13ea9b(0x1e0,0x167)]=_0x3727d4=>{function _0xa63166(_0x40921f,_0x5b890a){return _0x13ea9b(_0x5b890a,_0x40921f-0x228);}this['_drawLines'](_0x3727d4[_0x47075e(-0x11,-0x91)][_0x47075e(-0xa0,-0xeb)]);function _0x47075e(_0x56d0c0,_0xb39db){return _0x13ea9b(_0xb39db,_0x56d0c0- -0x17b);}this['_updateIng2']=![];},this['windField']={'init':_0x4e99a7=>{const _0x414bca={};_0x414bca['type']='init';function _0x270286(_0x465f1d,_0x2e4b5e){return _0x13ea9b(_0x465f1d,_0x2e4b5e-0x17c);}function _0x361505(_0x5a2f50,_0x5ddb90){return _0x5362ce(_0x5ddb90,_0x5a2f50- -0x395);}_0x414bca[_0x361505(0x24,-0x3d)]=_0x4e99a7,this[_0x270286(0x385,0x315)]['postMessage'](_0x414bca);},'setOptions':_0x8cb4b0=>{function _0x4c4cc9(_0x82e5c8,_0x353fe8){return _0x13ea9b(_0x353fe8,_0x82e5c8- -0x192);}const _0x56e32e={};function _0xdf55c9(_0x4d604e,_0x47b97b){return _0x13ea9b(_0x47b97b,_0x4d604e-0x11a);}_0x56e32e[_0xdf55c9(0x25b,0x241)]='setOptions',_0x56e32e['options']=_0x8cb4b0,this['worker'][_0x4c4cc9(-0x4a,-0xf)](_0x56e32e);},'setDate':_0x1fb0d2=>{function _0x141a10(_0x1a0325,_0x513aa6){return _0x13ea9b(_0x513aa6,_0x1a0325- -0xd3);}const _0x49dd57={};function _0x395803(_0x4d0f21,_0x44a410){return _0x5362ce(_0x44a410,_0x4d0f21- -0x402);}_0x49dd57[_0x141a10(0x6e,-0x1a)]='setDate',_0x49dd57['data']=_0x1fb0d2,this['worker'][_0x141a10(0x75,0x78)](_0x49dd57);},'update':()=>{if(this['_updateIng2'])return;function _0x58b350(_0x5d734d,_0x50384){return _0x13ea9b(_0x50384,_0x5d734d- -0x59);}this[_0x58b350(0xaa,0x24)]=!![];const _0x6fedec={};function _0x3b004d(_0x55670f,_0x51e668){return _0x13ea9b(_0x51e668,_0x55670f-0x16b);}_0x6fedec['type']='update',this[_0x3b004d(0x304,0x377)][_0x58b350(0xef,0x8f)](_0x6fedec);},'clear':()=>{function _0x1fefe8(_0x26c825,_0x2df5d2){return _0x13ea9b(_0x2df5d2,_0x26c825-0x21e);}function _0x7c8202(_0x5e018b,_0x338df3){return _0x13ea9b(_0x5e018b,_0x338df3-0x1ad);}const _0x12e67c={};_0x12e67c[_0x1fefe8(0x35f,0x378)]=_0x7c8202(0x2cc,0x2c8),this['worker']['postMessage'](_0x12e67c);}},this[_0x13ea9b(0xb6,0xf5)]['init'](this[_0x13ea9b(0xfc,0xe7)]);}}mars3d__namespace['LayerUtil'][_0x3e9da2(0x1fc,0x224)]('canvasWind',CanvasWindLayer),mars3d__namespace['layer']['CanvasWindLayer']=CanvasWindLayer,mars3d__namespace[_0x3e9da2(0x1f7,0x1e3)]=CanvasWindField,mars3d__namespace['WindUtil']=WindUtil,exports['CanvasWindField']=CanvasWindField,exports[_0x3e9da2(0x1a0,0x1bd)]=CanvasWindLayer,exports['WindLayer']=WindLayer,exports[_0x3e9da2(0x1e9,0x1dd)]=WindUtil;const _0x5c1edd={};_0x5c1edd['value']=!![],Object['defineProperty'](exports,'__esModule',_0x5c1edd);
15
15
  }));
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.8.9",
3
+ "version": "3.8.11",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "./mars3d-wind.js",
6
6
  "peerDependencies": {},
7
7
  "devDependencies": {
8
- "mars3d": "~3.8.9"
8
+ "mars3d": "~3.8.11"
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./src/**/*.{js,ts} --fix"